commit d5f038faeaa8f361838c7836793fdaa01accb91b Author: Kurdistan Tech Ministry Date: Wed Jan 7 02:29:40 2026 +0300 Rebrand: polkadot → pezkuwi, substrate → bizinikiwi, kusama → dicle diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..3c229b5 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,10 @@ +root = true +[*] +indent_style=space +indent_size=2 +tab_width=2 +end_of_line=lf +charset=utf-8 +trim_trailing_whitespace=true +max_line_length=120 +insert_final_newline=true diff --git a/.github/issue_template.md b/.github/issue_template.md new file mode 100644 index 0000000..0a20f9b --- /dev/null +++ b/.github/issue_template.md @@ -0,0 +1,86 @@ + + + +* **I'm submitting a ...** + + + + - [ ] Bug report + - [ ] Feature request + - [ ] Support request + - [ ] Other + + +* **What is the current behavior and expected behavior?** + + + + +* **What is the motivation for changing the behavior?** + + + + +* **Please tell us about your environment:** + + + + - Version: + - Environment: + + - [ ] Node.js + - [ ] Browser + - [ ] Other (limited support for other environments) + + - Language: + + - [ ] JavaScript + - [ ] TypeScript (include tsc --version) + - [ ] Other diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml new file mode 100644 index 0000000..566790f --- /dev/null +++ b/.github/workflows/auto-approve.yml @@ -0,0 +1,16 @@ +name: bot + +on: + pull_request: + types: [labeled] + +jobs: + approve: + if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && (!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository)" + runs-on: ubuntu-latest + steps: + - uses: jacogr/action-approve@795afd1dd096a2071d7ec98740661af4e853b7da + with: + authors: jacogr, TarikGul + labels: -auto + token: ${{ secrets.GH_PAT_BOT }} diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml new file mode 100644 index 0000000..caf5da1 --- /dev/null +++ b/.github/workflows/auto-merge.yml @@ -0,0 +1,16 @@ +name: bot + +on: + pull_request: + types: [labeled] + +jobs: + merge: + runs-on: ubuntu-latest + steps: + - uses: jacogr/action-merge@d2d64b4545acd93b0a9575177d3d215ae3f92029 + with: + checks: pr (build),pr (lint),pr (test) + labels: -auto + strategy: squash + token: ${{ secrets.GH_PAT_BOT }} diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml new file mode 100644 index 0000000..0c8cf68 --- /dev/null +++ b/.github/workflows/lock.yml @@ -0,0 +1,25 @@ +name: 'Lock Threads' + +on: + schedule: + - cron: '10 1/3 * * *' + +jobs: + lock: + runs-on: ubuntu-latest + env: + YARN_ENABLE_SCRIPTS: false + steps: + - uses: dessant/lock-threads@c1b35aecc5cdb1a34539d14196df55838bb2f836 + with: + github-token: ${{ secrets.GH_PAT_BOT }} + issue-inactive-days: '7' + issue-comment: > + This thread has been automatically locked since there has not been + any recent activity after it was closed. Please open a new issue + if you think you have a related problem or query. + pr-inactive-days: '2' + pr-comment: > + This pull request has been automatically locked since there + has not been any recent activity after it was closed. + Please open a new issue for related bugs. diff --git a/.github/workflows/pr-any.yml b/.github/workflows/pr-any.yml new file mode 100644 index 0000000..b212596 --- /dev/null +++ b/.github/workflows/pr-any.yml @@ -0,0 +1,25 @@ +name: PR +on: [pull_request] + +jobs: + pr: + continue-on-error: true + strategy: + matrix: + step: ['lint', 'test', 'build', 'deno'] + runs-on: ubuntu-latest + env: + YARN_ENABLE_SCRIPTS: false + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - uses: denoland/setup-deno@v1 + with: + deno-version: v1.46.3 + - name: ${{ matrix.step }} + if: always() + run: | + yarn install --immutable + yarn ${{ matrix.step }} diff --git a/.github/workflows/push-master.yml b/.github/workflows/push-master.yml new file mode 100644 index 0000000..4082c93 --- /dev/null +++ b/.github/workflows/push-master.yml @@ -0,0 +1,31 @@ +name: Master +on: + push: + branches: + - master + +jobs: + master: + if: "! startsWith(github.event.head_commit.message, '[CI Skip]')" + strategy: + matrix: + step: ['build:release'] + runs-on: ubuntu-latest + env: + YARN_ENABLE_SCRIPTS: false + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} + GH_PAT: ${{ secrets.GH_PAT_BOT }} + GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT_BOT }} + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + token: ${{ secrets.GH_PAT_BOT }} + - uses: actions/setup-node@v4 + with: + node-version: 'lts/*' + - name: ${{ matrix.step }} + run: | + yarn install --immutable + yarn ${{ matrix.step }} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9e2def --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +_book/ +build/ +build-*/ +coverage/ +node_modules/ +tmp/ +/import_map.json +/mod.ts +NOTES.md +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local +.npmrc +.rpt2_cache +.yarn/* +!.yarn/releases +!.yarn/plugins +.pnp.* +.vscode/ +.idea/ +cc-test-reporter +lerna-debug.log* +npm-debug.log* +package-lock.json +tsconfig*buildinfo +yarn-debug.log* +yarn-error.log* diff --git a/.mailmap b/.mailmap new file mode 100644 index 0000000..414c6ab --- /dev/null +++ b/.mailmap @@ -0,0 +1,3 @@ +Jaco +github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> +github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Github Actions diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/.npmignore @@ -0,0 +1 @@ + diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..5d39ee0 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v18.15 diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000..c832fc9 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,3 @@ +build +coverage +packages diff --git a/.prettierrc.cjs b/.prettierrc.cjs new file mode 100644 index 0000000..322d04f --- /dev/null +++ b/.prettierrc.cjs @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @polkadot/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +module.exports = require('@polkadot/dev/config/prettier.cjs'); diff --git a/.yarn/plugins/.keep b/.yarn/plugins/.keep new file mode 100644 index 0000000..e69de29 diff --git a/.yarn/releases/yarn-4.6.0.cjs b/.yarn/releases/yarn-4.6.0.cjs new file mode 100755 index 0000000..fe63e51 --- /dev/null +++ b/.yarn/releases/yarn-4.6.0.cjs @@ -0,0 +1,934 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var j3e=Object.create;var gT=Object.defineProperty;var G3e=Object.getOwnPropertyDescriptor;var W3e=Object.getOwnPropertyNames;var Y3e=Object.getPrototypeOf,K3e=Object.prototype.hasOwnProperty;var ve=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var It=(t,e)=>()=>(t&&(e=t(t=0)),e);var _=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports),Kt=(t,e)=>{for(var r in e)gT(t,r,{get:e[r],enumerable:!0})},V3e=(t,e,r,o)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of W3e(e))!K3e.call(t,a)&&a!==r&&gT(t,a,{get:()=>e[a],enumerable:!(o=G3e(e,a))||o.enumerable});return t};var et=(t,e,r)=>(r=t!=null?j3e(Y3e(t)):{},V3e(e||!t||!t.__esModule?gT(r,"default",{value:t,enumerable:!0}):r,t));var Pi={};Kt(Pi,{SAFE_TIME:()=>cW,S_IFDIR:()=>VD,S_IFLNK:()=>JD,S_IFMT:()=>Hu,S_IFREG:()=>ow});var Hu,VD,ow,JD,cW,uW=It(()=>{Hu=61440,VD=16384,ow=32768,JD=40960,cW=456789e3});var sr={};Kt(sr,{EBADF:()=>ho,EBUSY:()=>J3e,EEXIST:()=>t8e,EINVAL:()=>X3e,EISDIR:()=>e8e,ENOENT:()=>Z3e,ENOSYS:()=>z3e,ENOTDIR:()=>$3e,ENOTEMPTY:()=>n8e,EOPNOTSUPP:()=>i8e,EROFS:()=>r8e,ERR_DIR_CLOSED:()=>dT});function Ll(t,e){return Object.assign(new Error(`${t}: ${e}`),{code:t})}function J3e(t){return Ll("EBUSY",t)}function z3e(t,e){return Ll("ENOSYS",`${t}, ${e}`)}function X3e(t){return Ll("EINVAL",`invalid argument, ${t}`)}function ho(t){return Ll("EBADF",`bad file descriptor, ${t}`)}function Z3e(t){return Ll("ENOENT",`no such file or directory, ${t}`)}function $3e(t){return Ll("ENOTDIR",`not a directory, ${t}`)}function e8e(t){return Ll("EISDIR",`illegal operation on a directory, ${t}`)}function t8e(t){return Ll("EEXIST",`file already exists, ${t}`)}function r8e(t){return Ll("EROFS",`read-only filesystem, ${t}`)}function n8e(t){return Ll("ENOTEMPTY",`directory not empty, ${t}`)}function i8e(t){return Ll("EOPNOTSUPP",`operation not supported, ${t}`)}function dT(){return Ll("ERR_DIR_CLOSED","Directory handle was closed")}var zD=It(()=>{});var wa={};Kt(wa,{BigIntStatsEntry:()=>cm,DEFAULT_MODE:()=>ET,DirEntry:()=>mT,StatEntry:()=>lm,areStatsEqual:()=>CT,clearStats:()=>XD,convertToBigIntStats:()=>o8e,makeDefaultStats:()=>AW,makeEmptyStats:()=>s8e});function AW(){return new lm}function s8e(){return XD(AW())}function XD(t){for(let e in t)if(Object.hasOwn(t,e)){let r=t[e];typeof r=="number"?t[e]=0:typeof r=="bigint"?t[e]=BigInt(0):yT.types.isDate(r)&&(t[e]=new Date(0))}return t}function o8e(t){let e=new cm;for(let r in t)if(Object.hasOwn(t,r)){let o=t[r];typeof o=="number"?e[r]=BigInt(o):yT.types.isDate(o)&&(e[r]=new Date(o))}return e.atimeNs=e.atimeMs*BigInt(1e6),e.mtimeNs=e.mtimeMs*BigInt(1e6),e.ctimeNs=e.ctimeMs*BigInt(1e6),e.birthtimeNs=e.birthtimeMs*BigInt(1e6),e}function CT(t,e){if(t.atimeMs!==e.atimeMs||t.birthtimeMs!==e.birthtimeMs||t.blksize!==e.blksize||t.blocks!==e.blocks||t.ctimeMs!==e.ctimeMs||t.dev!==e.dev||t.gid!==e.gid||t.ino!==e.ino||t.isBlockDevice()!==e.isBlockDevice()||t.isCharacterDevice()!==e.isCharacterDevice()||t.isDirectory()!==e.isDirectory()||t.isFIFO()!==e.isFIFO()||t.isFile()!==e.isFile()||t.isSocket()!==e.isSocket()||t.isSymbolicLink()!==e.isSymbolicLink()||t.mode!==e.mode||t.mtimeMs!==e.mtimeMs||t.nlink!==e.nlink||t.rdev!==e.rdev||t.size!==e.size||t.uid!==e.uid)return!1;let r=t,o=e;return!(r.atimeNs!==o.atimeNs||r.mtimeNs!==o.mtimeNs||r.ctimeNs!==o.ctimeNs||r.birthtimeNs!==o.birthtimeNs)}var yT,ET,mT,lm,cm,IT=It(()=>{yT=et(ve("util")),ET=33188,mT=class{constructor(){this.name="";this.path="";this.mode=0}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},lm=class{constructor(){this.uid=0;this.gid=0;this.size=0;this.blksize=0;this.atimeMs=0;this.mtimeMs=0;this.ctimeMs=0;this.birthtimeMs=0;this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=0;this.ino=0;this.mode=ET;this.nlink=1;this.rdev=0;this.blocks=1}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&61440)===16384}isFIFO(){return!1}isFile(){return(this.mode&61440)===32768}isSocket(){return!1}isSymbolicLink(){return(this.mode&61440)===40960}},cm=class{constructor(){this.uid=BigInt(0);this.gid=BigInt(0);this.size=BigInt(0);this.blksize=BigInt(0);this.atimeMs=BigInt(0);this.mtimeMs=BigInt(0);this.ctimeMs=BigInt(0);this.birthtimeMs=BigInt(0);this.atimeNs=BigInt(0);this.mtimeNs=BigInt(0);this.ctimeNs=BigInt(0);this.birthtimeNs=BigInt(0);this.atime=new Date(0);this.mtime=new Date(0);this.ctime=new Date(0);this.birthtime=new Date(0);this.dev=BigInt(0);this.ino=BigInt(0);this.mode=BigInt(ET);this.nlink=BigInt(1);this.rdev=BigInt(0);this.blocks=BigInt(1)}isBlockDevice(){return!1}isCharacterDevice(){return!1}isDirectory(){return(this.mode&BigInt(61440))===BigInt(16384)}isFIFO(){return!1}isFile(){return(this.mode&BigInt(61440))===BigInt(32768)}isSocket(){return!1}isSymbolicLink(){return(this.mode&BigInt(61440))===BigInt(40960)}}});function A8e(t){let e,r;if(e=t.match(c8e))t=e[1];else if(r=t.match(u8e))t=`\\\\${r[1]?".\\":""}${r[2]}`;else return t;return t.replace(/\//g,"\\")}function f8e(t){t=t.replace(/\\/g,"/");let e,r;return(e=t.match(a8e))?t=`/${e[1]}`:(r=t.match(l8e))&&(t=`/unc/${r[1]?".dot/":""}${r[2]}`),t}function ZD(t,e){return t===Ae?pW(e):wT(e)}var aw,Bt,mr,Ae,K,fW,a8e,l8e,c8e,u8e,wT,pW,Ba=It(()=>{aw=et(ve("path")),Bt={root:"/",dot:".",parent:".."},mr={home:"~",nodeModules:"node_modules",manifest:"package.json",lockfile:"yarn.lock",virtual:"__virtual__",pnpJs:".pnp.js",pnpCjs:".pnp.cjs",pnpData:".pnp.data.json",pnpEsmLoader:".pnp.loader.mjs",rc:".yarnrc.yml",env:".env"},Ae=Object.create(aw.default),K=Object.create(aw.default.posix);Ae.cwd=()=>process.cwd();K.cwd=process.platform==="win32"?()=>wT(process.cwd()):process.cwd;process.platform==="win32"&&(K.resolve=(...t)=>t.length>0&&K.isAbsolute(t[0])?aw.default.posix.resolve(...t):aw.default.posix.resolve(K.cwd(),...t));fW=function(t,e,r){return e=t.normalize(e),r=t.normalize(r),e===r?".":(e.endsWith(t.sep)||(e=e+t.sep),r.startsWith(e)?r.slice(e.length):null)};Ae.contains=(t,e)=>fW(Ae,t,e);K.contains=(t,e)=>fW(K,t,e);a8e=/^([a-zA-Z]:.*)$/,l8e=/^\/\/(\.\/)?(.*)$/,c8e=/^\/([a-zA-Z]:.*)$/,u8e=/^\/unc\/(\.dot\/)?(.*)$/;wT=process.platform==="win32"?f8e:t=>t,pW=process.platform==="win32"?A8e:t=>t;Ae.fromPortablePath=pW;Ae.toPortablePath=wT});async function $D(t,e){let r="0123456789abcdef";await t.mkdirPromise(e.indexPath,{recursive:!0});let o=[];for(let a of r)for(let n of r)o.push(t.mkdirPromise(t.pathUtils.join(e.indexPath,`${a}${n}`),{recursive:!0}));return await Promise.all(o),e.indexPath}async function hW(t,e,r,o,a){let n=t.pathUtils.normalize(e),u=r.pathUtils.normalize(o),A=[],p=[],{atime:h,mtime:E}=a.stableTime?{atime:H0,mtime:H0}:await r.lstatPromise(u);await t.mkdirpPromise(t.pathUtils.dirname(e),{utimes:[h,E]}),await BT(A,p,t,n,r,u,{...a,didParentExist:!0});for(let w of A)await w();await Promise.all(p.map(w=>w()))}async function BT(t,e,r,o,a,n,u){let A=u.didParentExist?await gW(r,o):null,p=await a.lstatPromise(n),{atime:h,mtime:E}=u.stableTime?{atime:H0,mtime:H0}:p,w;switch(!0){case p.isDirectory():w=await h8e(t,e,r,o,A,a,n,p,u);break;case p.isFile():w=await m8e(t,e,r,o,A,a,n,p,u);break;case p.isSymbolicLink():w=await y8e(t,e,r,o,A,a,n,p,u);break;default:throw new Error(`Unsupported file type (${p.mode})`)}return(u.linkStrategy?.type!=="HardlinkFromIndex"||!p.isFile())&&((w||A?.mtime?.getTime()!==E.getTime()||A?.atime?.getTime()!==h.getTime())&&(e.push(()=>r.lutimesPromise(o,h,E)),w=!0),(A===null||(A.mode&511)!==(p.mode&511))&&(e.push(()=>r.chmodPromise(o,p.mode&511)),w=!0)),w}async function gW(t,e){try{return await t.lstatPromise(e)}catch{return null}}async function h8e(t,e,r,o,a,n,u,A,p){if(a!==null&&!a.isDirectory())if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;let h=!1;a===null&&(t.push(async()=>{try{await r.mkdirPromise(o,{mode:A.mode})}catch(D){if(D.code!=="EEXIST")throw D}}),h=!0);let E=await n.readdirPromise(u),w=p.didParentExist&&!a?{...p,didParentExist:!1}:p;if(p.stableSort)for(let D of E.sort())await BT(t,e,r,r.pathUtils.join(o,D),n,n.pathUtils.join(u,D),w)&&(h=!0);else(await Promise.all(E.map(async x=>{await BT(t,e,r,r.pathUtils.join(o,x),n,n.pathUtils.join(u,x),w)}))).some(x=>x)&&(h=!0);return h}async function g8e(t,e,r,o,a,n,u,A,p,h){let E=await n.checksumFilePromise(u,{algorithm:"sha1"}),w=420,D=A.mode&511,x=`${E}${D!==w?D.toString(8):""}`,C=r.pathUtils.join(h.indexPath,E.slice(0,2),`${x}.dat`),T;(ue=>(ue[ue.Lock=0]="Lock",ue[ue.Rename=1]="Rename"))(T||={});let L=1,U=await gW(r,C);if(a){let le=U&&a.dev===U.dev&&a.ino===U.ino,ce=U?.mtimeMs!==p8e;if(le&&ce&&h.autoRepair&&(L=0,U=null),!le)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1}let J=!U&&L===1?`${C}.${Math.floor(Math.random()*4294967296).toString(16).padStart(8,"0")}`:null,te=!1;return t.push(async()=>{if(!U&&(L===0&&await r.lockPromise(C,async()=>{let le=await n.readFilePromise(u);await r.writeFilePromise(C,le)}),L===1&&J)){let le=await n.readFilePromise(u);await r.writeFilePromise(J,le);try{await r.linkPromise(J,C)}catch(ce){if(ce.code==="EEXIST")te=!0,await r.unlinkPromise(J);else throw ce}}a||await r.linkPromise(C,o)}),e.push(async()=>{U||(await r.lutimesPromise(C,H0,H0),D!==w&&await r.chmodPromise(C,D)),J&&!te&&await r.unlinkPromise(J)}),!1}async function d8e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{let h=await n.readFilePromise(u);await r.writeFilePromise(o,h)}),!0}async function m8e(t,e,r,o,a,n,u,A,p){return p.linkStrategy?.type==="HardlinkFromIndex"?g8e(t,e,r,o,a,n,u,A,p,p.linkStrategy):d8e(t,e,r,o,a,n,u,A,p)}async function y8e(t,e,r,o,a,n,u,A,p){if(a!==null)if(p.overwrite)t.push(async()=>r.removePromise(o)),a=null;else return!1;return t.push(async()=>{await r.symlinkPromise(ZD(r.pathUtils,await n.readlinkPromise(u)),o)}),!0}var H0,p8e,vT=It(()=>{Ba();H0=new Date(456789e3*1e3),p8e=H0.getTime()});function eP(t,e,r,o){let a=()=>{let n=r.shift();if(typeof n>"u")return null;let u=t.pathUtils.join(e,n);return Object.assign(t.statSync(u),{name:n,path:void 0})};return new lw(e,a,o)}var lw,dW=It(()=>{zD();lw=class{constructor(e,r,o={}){this.path=e;this.nextDirent=r;this.opts=o;this.closed=!1}throwIfClosed(){if(this.closed)throw dT()}async*[Symbol.asyncIterator](){try{let e;for(;(e=await this.read())!==null;)yield e}finally{await this.close()}}read(e){let r=this.readSync();return typeof e<"u"?e(null,r):Promise.resolve(r)}readSync(){return this.throwIfClosed(),this.nextDirent()}close(e){return this.closeSync(),typeof e<"u"?e(null):Promise.resolve()}closeSync(){this.throwIfClosed(),this.opts.onClose?.(),this.closed=!0}}});function mW(t,e){if(t!==e)throw new Error(`Invalid StatWatcher status: expected '${e}', got '${t}'`)}var yW,tP,EW=It(()=>{yW=ve("events");IT();tP=class t extends yW.EventEmitter{constructor(r,o,{bigint:a=!1}={}){super();this.status="ready";this.changeListeners=new Map;this.startTimeout=null;this.fakeFs=r,this.path=o,this.bigint=a,this.lastStats=this.stat()}static create(r,o,a){let n=new t(r,o,a);return n.start(),n}start(){mW(this.status,"ready"),this.status="running",this.startTimeout=setTimeout(()=>{this.startTimeout=null,this.fakeFs.existsSync(this.path)||this.emit("change",this.lastStats,this.lastStats)},3)}stop(){mW(this.status,"running"),this.status="stopped",this.startTimeout!==null&&(clearTimeout(this.startTimeout),this.startTimeout=null),this.emit("stop")}stat(){try{return this.fakeFs.statSync(this.path,{bigint:this.bigint})}catch{let o=this.bigint?new cm:new lm;return XD(o)}}makeInterval(r){let o=setInterval(()=>{let a=this.stat(),n=this.lastStats;CT(a,n)||(this.lastStats=a,this.emit("change",a,n))},r.interval);return r.persistent?o:o.unref()}registerChangeListener(r,o){this.addListener("change",r),this.changeListeners.set(r,this.makeInterval(o))}unregisterChangeListener(r){this.removeListener("change",r);let o=this.changeListeners.get(r);typeof o<"u"&&clearInterval(o),this.changeListeners.delete(r)}unregisterAllChangeListeners(){for(let r of this.changeListeners.keys())this.unregisterChangeListener(r)}hasChangeListeners(){return this.changeListeners.size>0}ref(){for(let r of this.changeListeners.values())r.ref();return this}unref(){for(let r of this.changeListeners.values())r.unref();return this}}});function um(t,e,r,o){let a,n,u,A;switch(typeof r){case"function":a=!1,n=!0,u=5007,A=r;break;default:({bigint:a=!1,persistent:n=!0,interval:u=5007}=r),A=o;break}let p=rP.get(t);typeof p>"u"&&rP.set(t,p=new Map);let h=p.get(e);return typeof h>"u"&&(h=tP.create(t,e,{bigint:a}),p.set(e,h)),h.registerChangeListener(A,{persistent:n,interval:u}),h}function q0(t,e,r){let o=rP.get(t);if(typeof o>"u")return;let a=o.get(e);typeof a>"u"||(typeof r>"u"?a.unregisterAllChangeListeners():a.unregisterChangeListener(r),a.hasChangeListeners()||(a.stop(),o.delete(e)))}function j0(t){let e=rP.get(t);if(!(typeof e>"u"))for(let r of e.keys())q0(t,r)}var rP,DT=It(()=>{EW();rP=new WeakMap});function E8e(t){let e=t.match(/\r?\n/g);if(e===null)return IW.EOL;let r=e.filter(a=>a===`\r +`).length,o=e.length-r;return r>o?`\r +`:` +`}function G0(t,e){return e.replace(/\r?\n/g,E8e(t))}var CW,IW,hf,qu,W0=It(()=>{CW=ve("crypto"),IW=ve("os");vT();Ba();hf=class{constructor(e){this.pathUtils=e}async*genTraversePromise(e,{stableSort:r=!1}={}){let o=[e];for(;o.length>0;){let a=o.shift();if((await this.lstatPromise(a)).isDirectory()){let u=await this.readdirPromise(a);if(r)for(let A of u.sort())o.push(this.pathUtils.join(a,A));else throw new Error("Not supported")}else yield a}}async checksumFilePromise(e,{algorithm:r="sha512"}={}){let o=await this.openPromise(e,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,CW.createHash)(r),A=0;for(;(A=await this.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await this.closePromise(o)}}async removePromise(e,{recursive:r=!0,maxRetries:o=5}={}){let a;try{a=await this.lstatPromise(e)}catch(n){if(n.code==="ENOENT")return;throw n}if(a.isDirectory()){if(r){let n=await this.readdirPromise(e);await Promise.all(n.map(u=>this.removePromise(this.pathUtils.resolve(e,u))))}for(let n=0;n<=o;n++)try{await this.rmdirPromise(e);break}catch(u){if(u.code!=="EBUSY"&&u.code!=="ENOTEMPTY")throw u;nsetTimeout(A,n*100))}}else await this.unlinkPromise(e)}removeSync(e,{recursive:r=!0}={}){let o;try{o=this.lstatSync(e)}catch(a){if(a.code==="ENOENT")return;throw a}if(o.isDirectory()){if(r)for(let a of this.readdirSync(e))this.removeSync(this.pathUtils.resolve(e,a));this.rmdirSync(e)}else this.unlinkSync(e)}async mkdirpPromise(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{await this.mkdirPromise(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&await this.chmodPromise(A,r),o!=null)await this.utimesPromise(A,o[0],o[1]);else{let p=await this.statPromise(this.pathUtils.dirname(A));await this.utimesPromise(A,p.atime,p.mtime)}}}return n}mkdirpSync(e,{chmod:r,utimes:o}={}){if(e=this.resolve(e),e===this.pathUtils.dirname(e))return;let a=e.split(this.pathUtils.sep),n;for(let u=2;u<=a.length;++u){let A=a.slice(0,u).join(this.pathUtils.sep);if(!this.existsSync(A)){try{this.mkdirSync(A)}catch(p){if(p.code==="EEXIST")continue;throw p}if(n??=A,r!=null&&this.chmodSync(A,r),o!=null)this.utimesSync(A,o[0],o[1]);else{let p=this.statSync(this.pathUtils.dirname(A));this.utimesSync(A,p.atime,p.mtime)}}}return n}async copyPromise(e,r,{baseFs:o=this,overwrite:a=!0,stableSort:n=!1,stableTime:u=!1,linkStrategy:A=null}={}){return await hW(this,e,o,r,{overwrite:a,stableSort:n,stableTime:u,linkStrategy:A})}copySync(e,r,{baseFs:o=this,overwrite:a=!0}={}){let n=o.lstatSync(r),u=this.existsSync(e);if(n.isDirectory()){this.mkdirpSync(e);let p=o.readdirSync(r);for(let h of p)this.copySync(this.pathUtils.join(e,h),o.pathUtils.join(r,h),{baseFs:o,overwrite:a})}else if(n.isFile()){if(!u||a){u&&this.removeSync(e);let p=o.readFileSync(r);this.writeFileSync(e,p)}}else if(n.isSymbolicLink()){if(!u||a){u&&this.removeSync(e);let p=o.readlinkSync(r);this.symlinkSync(ZD(this.pathUtils,p),e)}}else throw new Error(`Unsupported file type (file: ${r}, mode: 0o${n.mode.toString(8).padStart(6,"0")})`);let A=n.mode&511;this.chmodSync(e,A)}async changeFilePromise(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferPromise(e,r,o):this.changeFileTextPromise(e,r,o)}async changeFileBufferPromise(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=await this.readFilePromise(e)}catch{}Buffer.compare(a,r)!==0&&await this.writeFilePromise(e,r,{mode:o})}async changeFileTextPromise(e,r,{automaticNewlines:o,mode:a}={}){let n="";try{n=await this.readFilePromise(e,"utf8")}catch{}let u=o?G0(n,r):r;n!==u&&await this.writeFilePromise(e,u,{mode:a})}changeFileSync(e,r,o={}){return Buffer.isBuffer(r)?this.changeFileBufferSync(e,r,o):this.changeFileTextSync(e,r,o)}changeFileBufferSync(e,r,{mode:o}={}){let a=Buffer.alloc(0);try{a=this.readFileSync(e)}catch{}Buffer.compare(a,r)!==0&&this.writeFileSync(e,r,{mode:o})}changeFileTextSync(e,r,{automaticNewlines:o=!1,mode:a}={}){let n="";try{n=this.readFileSync(e,"utf8")}catch{}let u=o?G0(n,r):r;n!==u&&this.writeFileSync(e,u,{mode:a})}async movePromise(e,r){try{await this.renamePromise(e,r)}catch(o){if(o.code==="EXDEV")await this.copyPromise(r,e),await this.removePromise(e);else throw o}}moveSync(e,r){try{this.renameSync(e,r)}catch(o){if(o.code==="EXDEV")this.copySync(r,e),this.removeSync(e);else throw o}}async lockPromise(e,r){let o=`${e}.flock`,a=1e3/60,n=Date.now(),u=null,A=async()=>{let p;try{[p]=await this.readJsonPromise(o)}catch{return Date.now()-n<500}try{return process.kill(p,0),!0}catch{return!1}};for(;u===null;)try{u=await this.openPromise(o,"wx")}catch(p){if(p.code==="EEXIST"){if(!await A())try{await this.unlinkPromise(o);continue}catch{}if(Date.now()-n<60*1e3)await new Promise(h=>setTimeout(h,a));else throw new Error(`Couldn't acquire a lock in a reasonable time (via ${o})`)}else throw p}await this.writePromise(u,JSON.stringify([process.pid]));try{return await r()}finally{try{await this.closePromise(u),await this.unlinkPromise(o)}catch{}}}async readJsonPromise(e){let r=await this.readFilePromise(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}readJsonSync(e){let r=this.readFileSync(e,"utf8");try{return JSON.parse(r)}catch(o){throw o.message+=` (in ${e})`,o}}async writeJsonPromise(e,r,{compact:o=!1}={}){let a=o?0:2;return await this.writeFilePromise(e,`${JSON.stringify(r,null,a)} +`)}writeJsonSync(e,r,{compact:o=!1}={}){let a=o?0:2;return this.writeFileSync(e,`${JSON.stringify(r,null,a)} +`)}async preserveTimePromise(e,r){let o=await this.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await this.lutimesPromise(e,o.atime,o.mtime)}async preserveTimeSync(e,r){let o=this.lstatSync(e),a=r();typeof a<"u"&&(e=a),this.lutimesSync(e,o.atime,o.mtime)}},qu=class extends hf{constructor(){super(K)}}});var ws,gf=It(()=>{W0();ws=class extends hf{getExtractHint(e){return this.baseFs.getExtractHint(e)}resolve(e){return this.mapFromBase(this.baseFs.resolve(this.mapToBase(e)))}getRealPath(){return this.mapFromBase(this.baseFs.getRealPath())}async openPromise(e,r,o){return this.baseFs.openPromise(this.mapToBase(e),r,o)}openSync(e,r,o){return this.baseFs.openSync(this.mapToBase(e),r,o)}async opendirPromise(e,r){return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(e),r),{path:e})}opendirSync(e,r){return Object.assign(this.baseFs.opendirSync(this.mapToBase(e),r),{path:e})}async readPromise(e,r,o,a,n){return await this.baseFs.readPromise(e,r,o,a,n)}readSync(e,r,o,a,n){return this.baseFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return typeof r=="string"?await this.baseFs.writePromise(e,r,o):await this.baseFs.writePromise(e,r,o,a,n)}writeSync(e,r,o,a,n){return typeof r=="string"?this.baseFs.writeSync(e,r,o):this.baseFs.writeSync(e,r,o,a,n)}async closePromise(e){return this.baseFs.closePromise(e)}closeSync(e){this.baseFs.closeSync(e)}createReadStream(e,r){return this.baseFs.createReadStream(e!==null?this.mapToBase(e):e,r)}createWriteStream(e,r){return this.baseFs.createWriteStream(e!==null?this.mapToBase(e):e,r)}async realpathPromise(e){return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(e)))}realpathSync(e){return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(e)))}async existsPromise(e){return this.baseFs.existsPromise(this.mapToBase(e))}existsSync(e){return this.baseFs.existsSync(this.mapToBase(e))}accessSync(e,r){return this.baseFs.accessSync(this.mapToBase(e),r)}async accessPromise(e,r){return this.baseFs.accessPromise(this.mapToBase(e),r)}async statPromise(e,r){return this.baseFs.statPromise(this.mapToBase(e),r)}statSync(e,r){return this.baseFs.statSync(this.mapToBase(e),r)}async fstatPromise(e,r){return this.baseFs.fstatPromise(e,r)}fstatSync(e,r){return this.baseFs.fstatSync(e,r)}lstatPromise(e,r){return this.baseFs.lstatPromise(this.mapToBase(e),r)}lstatSync(e,r){return this.baseFs.lstatSync(this.mapToBase(e),r)}async fchmodPromise(e,r){return this.baseFs.fchmodPromise(e,r)}fchmodSync(e,r){return this.baseFs.fchmodSync(e,r)}async chmodPromise(e,r){return this.baseFs.chmodPromise(this.mapToBase(e),r)}chmodSync(e,r){return this.baseFs.chmodSync(this.mapToBase(e),r)}async fchownPromise(e,r,o){return this.baseFs.fchownPromise(e,r,o)}fchownSync(e,r,o){return this.baseFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return this.baseFs.chownPromise(this.mapToBase(e),r,o)}chownSync(e,r,o){return this.baseFs.chownSync(this.mapToBase(e),r,o)}async renamePromise(e,r){return this.baseFs.renamePromise(this.mapToBase(e),this.mapToBase(r))}renameSync(e,r){return this.baseFs.renameSync(this.mapToBase(e),this.mapToBase(r))}async copyFilePromise(e,r,o=0){return this.baseFs.copyFilePromise(this.mapToBase(e),this.mapToBase(r),o)}copyFileSync(e,r,o=0){return this.baseFs.copyFileSync(this.mapToBase(e),this.mapToBase(r),o)}async appendFilePromise(e,r,o){return this.baseFs.appendFilePromise(this.fsMapToBase(e),r,o)}appendFileSync(e,r,o){return this.baseFs.appendFileSync(this.fsMapToBase(e),r,o)}async writeFilePromise(e,r,o){return this.baseFs.writeFilePromise(this.fsMapToBase(e),r,o)}writeFileSync(e,r,o){return this.baseFs.writeFileSync(this.fsMapToBase(e),r,o)}async unlinkPromise(e){return this.baseFs.unlinkPromise(this.mapToBase(e))}unlinkSync(e){return this.baseFs.unlinkSync(this.mapToBase(e))}async utimesPromise(e,r,o){return this.baseFs.utimesPromise(this.mapToBase(e),r,o)}utimesSync(e,r,o){return this.baseFs.utimesSync(this.mapToBase(e),r,o)}async lutimesPromise(e,r,o){return this.baseFs.lutimesPromise(this.mapToBase(e),r,o)}lutimesSync(e,r,o){return this.baseFs.lutimesSync(this.mapToBase(e),r,o)}async mkdirPromise(e,r){return this.baseFs.mkdirPromise(this.mapToBase(e),r)}mkdirSync(e,r){return this.baseFs.mkdirSync(this.mapToBase(e),r)}async rmdirPromise(e,r){return this.baseFs.rmdirPromise(this.mapToBase(e),r)}rmdirSync(e,r){return this.baseFs.rmdirSync(this.mapToBase(e),r)}async rmPromise(e,r){return this.baseFs.rmPromise(this.mapToBase(e),r)}rmSync(e,r){return this.baseFs.rmSync(this.mapToBase(e),r)}async linkPromise(e,r){return this.baseFs.linkPromise(this.mapToBase(e),this.mapToBase(r))}linkSync(e,r){return this.baseFs.linkSync(this.mapToBase(e),this.mapToBase(r))}async symlinkPromise(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkPromise(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkPromise(u,a,o)}symlinkSync(e,r,o){let a=this.mapToBase(r);if(this.pathUtils.isAbsolute(e))return this.baseFs.symlinkSync(this.mapToBase(e),a,o);let n=this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(r),e)),u=this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(a),n);return this.baseFs.symlinkSync(u,a,o)}async readFilePromise(e,r){return this.baseFs.readFilePromise(this.fsMapToBase(e),r)}readFileSync(e,r){return this.baseFs.readFileSync(this.fsMapToBase(e),r)}readdirPromise(e,r){return this.baseFs.readdirPromise(this.mapToBase(e),r)}readdirSync(e,r){return this.baseFs.readdirSync(this.mapToBase(e),r)}async readlinkPromise(e){return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(e)))}readlinkSync(e){return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(e)))}async truncatePromise(e,r){return this.baseFs.truncatePromise(this.mapToBase(e),r)}truncateSync(e,r){return this.baseFs.truncateSync(this.mapToBase(e),r)}async ftruncatePromise(e,r){return this.baseFs.ftruncatePromise(e,r)}ftruncateSync(e,r){return this.baseFs.ftruncateSync(e,r)}watch(e,r,o){return this.baseFs.watch(this.mapToBase(e),r,o)}watchFile(e,r,o){return this.baseFs.watchFile(this.mapToBase(e),r,o)}unwatchFile(e,r){return this.baseFs.unwatchFile(this.mapToBase(e),r)}fsMapToBase(e){return typeof e=="number"?e:this.mapToBase(e)}}});var ju,wW=It(()=>{gf();ju=class extends ws{constructor(e,{baseFs:r,pathUtils:o}){super(o),this.target=e,this.baseFs=r}getRealPath(){return this.target}getBaseFs(){return this.baseFs}mapFromBase(e){return e}mapToBase(e){return e}}});function BW(t){let e=t;return typeof t.path=="string"&&(e.path=Ae.toPortablePath(t.path)),e}var vW,_n,Y0=It(()=>{vW=et(ve("fs"));W0();Ba();_n=class extends qu{constructor(e=vW.default){super(),this.realFs=e}getExtractHint(){return!1}getRealPath(){return Bt.root}resolve(e){return K.resolve(e)}async openPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.open(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}openSync(e,r,o){return this.realFs.openSync(Ae.fromPortablePath(e),r,o)}async opendirPromise(e,r){return await new Promise((o,a)=>{typeof r<"u"?this.realFs.opendir(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.opendir(Ae.fromPortablePath(e),this.makeCallback(o,a))}).then(o=>{let a=o;return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a})}opendirSync(e,r){let a=typeof r<"u"?this.realFs.opendirSync(Ae.fromPortablePath(e),r):this.realFs.opendirSync(Ae.fromPortablePath(e));return Object.defineProperty(a,"path",{value:e,configurable:!0,writable:!0}),a}async readPromise(e,r,o=0,a=0,n=-1){return await new Promise((u,A)=>{this.realFs.read(e,r,o,a,n,(p,h)=>{p?A(p):u(h)})})}readSync(e,r,o,a,n){return this.realFs.readSync(e,r,o,a,n)}async writePromise(e,r,o,a,n){return await new Promise((u,A)=>typeof r=="string"?this.realFs.write(e,r,o,this.makeCallback(u,A)):this.realFs.write(e,r,o,a,n,this.makeCallback(u,A)))}writeSync(e,r,o,a,n){return typeof r=="string"?this.realFs.writeSync(e,r,o):this.realFs.writeSync(e,r,o,a,n)}async closePromise(e){await new Promise((r,o)=>{this.realFs.close(e,this.makeCallback(r,o))})}closeSync(e){this.realFs.closeSync(e)}createReadStream(e,r){let o=e!==null?Ae.fromPortablePath(e):e;return this.realFs.createReadStream(o,r)}createWriteStream(e,r){let o=e!==null?Ae.fromPortablePath(e):e;return this.realFs.createWriteStream(o,r)}async realpathPromise(e){return await new Promise((r,o)=>{this.realFs.realpath(Ae.fromPortablePath(e),{},this.makeCallback(r,o))}).then(r=>Ae.toPortablePath(r))}realpathSync(e){return Ae.toPortablePath(this.realFs.realpathSync(Ae.fromPortablePath(e),{}))}async existsPromise(e){return await new Promise(r=>{this.realFs.exists(Ae.fromPortablePath(e),r)})}accessSync(e,r){return this.realFs.accessSync(Ae.fromPortablePath(e),r)}async accessPromise(e,r){return await new Promise((o,a)=>{this.realFs.access(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}existsSync(e){return this.realFs.existsSync(Ae.fromPortablePath(e))}async statPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.stat(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.stat(Ae.fromPortablePath(e),this.makeCallback(o,a))})}statSync(e,r){return r?this.realFs.statSync(Ae.fromPortablePath(e),r):this.realFs.statSync(Ae.fromPortablePath(e))}async fstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.fstat(e,r,this.makeCallback(o,a)):this.realFs.fstat(e,this.makeCallback(o,a))})}fstatSync(e,r){return r?this.realFs.fstatSync(e,r):this.realFs.fstatSync(e)}async lstatPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.lstat(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.lstat(Ae.fromPortablePath(e),this.makeCallback(o,a))})}lstatSync(e,r){return r?this.realFs.lstatSync(Ae.fromPortablePath(e),r):this.realFs.lstatSync(Ae.fromPortablePath(e))}async fchmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.fchmod(e,r,this.makeCallback(o,a))})}fchmodSync(e,r){return this.realFs.fchmodSync(e,r)}async chmodPromise(e,r){return await new Promise((o,a)=>{this.realFs.chmod(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}chmodSync(e,r){return this.realFs.chmodSync(Ae.fromPortablePath(e),r)}async fchownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.fchown(e,r,o,this.makeCallback(a,n))})}fchownSync(e,r,o){return this.realFs.fchownSync(e,r,o)}async chownPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.chown(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}chownSync(e,r,o){return this.realFs.chownSync(Ae.fromPortablePath(e),r,o)}async renamePromise(e,r){return await new Promise((o,a)=>{this.realFs.rename(Ae.fromPortablePath(e),Ae.fromPortablePath(r),this.makeCallback(o,a))})}renameSync(e,r){return this.realFs.renameSync(Ae.fromPortablePath(e),Ae.fromPortablePath(r))}async copyFilePromise(e,r,o=0){return await new Promise((a,n)=>{this.realFs.copyFile(Ae.fromPortablePath(e),Ae.fromPortablePath(r),o,this.makeCallback(a,n))})}copyFileSync(e,r,o=0){return this.realFs.copyFileSync(Ae.fromPortablePath(e),Ae.fromPortablePath(r),o)}async appendFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.appendFile(u,r,o,this.makeCallback(a,n)):this.realFs.appendFile(u,r,this.makeCallback(a,n))})}appendFileSync(e,r,o){let a=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.appendFileSync(a,r,o):this.realFs.appendFileSync(a,r)}async writeFilePromise(e,r,o){return await new Promise((a,n)=>{let u=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.writeFile(u,r,o,this.makeCallback(a,n)):this.realFs.writeFile(u,r,this.makeCallback(a,n))})}writeFileSync(e,r,o){let a=typeof e=="string"?Ae.fromPortablePath(e):e;o?this.realFs.writeFileSync(a,r,o):this.realFs.writeFileSync(a,r)}async unlinkPromise(e){return await new Promise((r,o)=>{this.realFs.unlink(Ae.fromPortablePath(e),this.makeCallback(r,o))})}unlinkSync(e){return this.realFs.unlinkSync(Ae.fromPortablePath(e))}async utimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.utimes(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}utimesSync(e,r,o){this.realFs.utimesSync(Ae.fromPortablePath(e),r,o)}async lutimesPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.lutimes(Ae.fromPortablePath(e),r,o,this.makeCallback(a,n))})}lutimesSync(e,r,o){this.realFs.lutimesSync(Ae.fromPortablePath(e),r,o)}async mkdirPromise(e,r){return await new Promise((o,a)=>{this.realFs.mkdir(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}mkdirSync(e,r){return this.realFs.mkdirSync(Ae.fromPortablePath(e),r)}async rmdirPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rmdir(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rmdir(Ae.fromPortablePath(e),this.makeCallback(o,a))})}rmdirSync(e,r){return this.realFs.rmdirSync(Ae.fromPortablePath(e),r)}async rmPromise(e,r){return await new Promise((o,a)=>{r?this.realFs.rm(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.rm(Ae.fromPortablePath(e),this.makeCallback(o,a))})}rmSync(e,r){return this.realFs.rmSync(Ae.fromPortablePath(e),r)}async linkPromise(e,r){return await new Promise((o,a)=>{this.realFs.link(Ae.fromPortablePath(e),Ae.fromPortablePath(r),this.makeCallback(o,a))})}linkSync(e,r){return this.realFs.linkSync(Ae.fromPortablePath(e),Ae.fromPortablePath(r))}async symlinkPromise(e,r,o){return await new Promise((a,n)=>{this.realFs.symlink(Ae.fromPortablePath(e.replace(/\/+$/,"")),Ae.fromPortablePath(r),o,this.makeCallback(a,n))})}symlinkSync(e,r,o){return this.realFs.symlinkSync(Ae.fromPortablePath(e.replace(/\/+$/,"")),Ae.fromPortablePath(r),o)}async readFilePromise(e,r){return await new Promise((o,a)=>{let n=typeof e=="string"?Ae.fromPortablePath(e):e;this.realFs.readFile(n,r,this.makeCallback(o,a))})}readFileSync(e,r){let o=typeof e=="string"?Ae.fromPortablePath(e):e;return this.realFs.readFileSync(o,r)}async readdirPromise(e,r){return await new Promise((o,a)=>{r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdir(Ae.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(BW)),a)):this.realFs.readdir(Ae.fromPortablePath(e),r,this.makeCallback(n=>o(n.map(Ae.toPortablePath)),a)):this.realFs.readdir(Ae.fromPortablePath(e),r,this.makeCallback(o,a)):this.realFs.readdir(Ae.fromPortablePath(e),this.makeCallback(o,a))})}readdirSync(e,r){return r?r.recursive&&process.platform==="win32"?r.withFileTypes?this.realFs.readdirSync(Ae.fromPortablePath(e),r).map(BW):this.realFs.readdirSync(Ae.fromPortablePath(e),r).map(Ae.toPortablePath):this.realFs.readdirSync(Ae.fromPortablePath(e),r):this.realFs.readdirSync(Ae.fromPortablePath(e))}async readlinkPromise(e){return await new Promise((r,o)=>{this.realFs.readlink(Ae.fromPortablePath(e),this.makeCallback(r,o))}).then(r=>Ae.toPortablePath(r))}readlinkSync(e){return Ae.toPortablePath(this.realFs.readlinkSync(Ae.fromPortablePath(e)))}async truncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.truncate(Ae.fromPortablePath(e),r,this.makeCallback(o,a))})}truncateSync(e,r){return this.realFs.truncateSync(Ae.fromPortablePath(e),r)}async ftruncatePromise(e,r){return await new Promise((o,a)=>{this.realFs.ftruncate(e,r,this.makeCallback(o,a))})}ftruncateSync(e,r){return this.realFs.ftruncateSync(e,r)}watch(e,r,o){return this.realFs.watch(Ae.fromPortablePath(e),r,o)}watchFile(e,r,o){return this.realFs.watchFile(Ae.fromPortablePath(e),r,o)}unwatchFile(e,r){return this.realFs.unwatchFile(Ae.fromPortablePath(e),r)}makeCallback(e,r){return(o,a)=>{o?r(o):e(a)}}}});var En,DW=It(()=>{Y0();gf();Ba();En=class extends ws{constructor(e,{baseFs:r=new _n}={}){super(K),this.target=this.pathUtils.normalize(e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.target)}resolve(e){return this.pathUtils.isAbsolute(e)?K.normalize(e):this.baseFs.resolve(K.join(this.target,e))}mapFromBase(e){return e}mapToBase(e){return this.pathUtils.isAbsolute(e)?e:this.pathUtils.join(this.target,e)}}});var PW,Gu,SW=It(()=>{Y0();gf();Ba();PW=Bt.root,Gu=class extends ws{constructor(e,{baseFs:r=new _n}={}){super(K),this.target=this.pathUtils.resolve(Bt.root,e),this.baseFs=r}getRealPath(){return this.pathUtils.resolve(this.baseFs.getRealPath(),this.pathUtils.relative(Bt.root,this.target))}getTarget(){return this.target}getBaseFs(){return this.baseFs}mapToBase(e){let r=this.pathUtils.normalize(e);if(this.pathUtils.isAbsolute(e))return this.pathUtils.resolve(this.target,this.pathUtils.relative(PW,e));if(r.match(/^\.\.\/?/))throw new Error(`Resolving this path (${e}) would escape the jail`);return this.pathUtils.resolve(this.target,e)}mapFromBase(e){return this.pathUtils.resolve(PW,this.pathUtils.relative(this.target,e))}}});var Am,bW=It(()=>{gf();Am=class extends ws{constructor(r,o){super(o);this.instance=null;this.factory=r}get baseFs(){return this.instance||(this.instance=this.factory()),this.instance}set baseFs(r){this.instance=r}mapFromBase(r){return r}mapToBase(r){return r}}});var K0,va,Gp,xW=It(()=>{K0=ve("fs");W0();Y0();DT();zD();Ba();va=4278190080,Gp=class extends qu{constructor({baseFs:r=new _n,filter:o=null,magicByte:a=42,maxOpenFiles:n=1/0,useCache:u=!0,maxAge:A=5e3,typeCheck:p=K0.constants.S_IFREG,getMountPoint:h,factoryPromise:E,factorySync:w}){if(Math.floor(a)!==a||!(a>1&&a<=127))throw new Error("The magic byte must be set to a round value between 1 and 127 included");super();this.fdMap=new Map;this.nextFd=3;this.isMount=new Set;this.notMount=new Set;this.realPaths=new Map;this.limitOpenFilesTimeout=null;this.baseFs=r,this.mountInstances=u?new Map:null,this.factoryPromise=E,this.factorySync=w,this.filter=o,this.getMountPoint=h,this.magic=a<<24,this.maxAge=A,this.maxOpenFiles=n,this.typeCheck=p}getExtractHint(r){return this.baseFs.getExtractHint(r)}getRealPath(){return this.baseFs.getRealPath()}saveAndClose(){if(j0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.saveAndClose?.(),this.mountInstances.delete(r)}discardAndClose(){if(j0(this),this.mountInstances)for(let[r,{childFs:o}]of this.mountInstances.entries())o.discardAndClose?.(),this.mountInstances.delete(r)}resolve(r){return this.baseFs.resolve(r)}remapFd(r,o){let a=this.nextFd++|this.magic;return this.fdMap.set(a,[r,o]),a}async openPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.openPromise(r,o,a),async(n,{subPath:u})=>this.remapFd(n,await n.openPromise(u,o,a)))}openSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.openSync(r,o,a),(n,{subPath:u})=>this.remapFd(n,n.openSync(u,o,a)))}async opendirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.opendirPromise(r,o),async(a,{subPath:n})=>await a.opendirPromise(n,o),{requireSubpath:!1})}opendirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.opendirSync(r,o),(a,{subPath:n})=>a.opendirSync(n,o),{requireSubpath:!1})}async readPromise(r,o,a,n,u){if((r&va)!==this.magic)return await this.baseFs.readPromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("read");let[p,h]=A;return await p.readPromise(h,o,a,n,u)}readSync(r,o,a,n,u){if((r&va)!==this.magic)return this.baseFs.readSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("readSync");let[p,h]=A;return p.readSync(h,o,a,n,u)}async writePromise(r,o,a,n,u){if((r&va)!==this.magic)return typeof o=="string"?await this.baseFs.writePromise(r,o,a):await this.baseFs.writePromise(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("write");let[p,h]=A;return typeof o=="string"?await p.writePromise(h,o,a):await p.writePromise(h,o,a,n,u)}writeSync(r,o,a,n,u){if((r&va)!==this.magic)return typeof o=="string"?this.baseFs.writeSync(r,o,a):this.baseFs.writeSync(r,o,a,n,u);let A=this.fdMap.get(r);if(typeof A>"u")throw ho("writeSync");let[p,h]=A;return typeof o=="string"?p.writeSync(h,o,a):p.writeSync(h,o,a,n,u)}async closePromise(r){if((r&va)!==this.magic)return await this.baseFs.closePromise(r);let o=this.fdMap.get(r);if(typeof o>"u")throw ho("close");this.fdMap.delete(r);let[a,n]=o;return await a.closePromise(n)}closeSync(r){if((r&va)!==this.magic)return this.baseFs.closeSync(r);let o=this.fdMap.get(r);if(typeof o>"u")throw ho("closeSync");this.fdMap.delete(r);let[a,n]=o;return a.closeSync(n)}createReadStream(r,o){return r===null?this.baseFs.createReadStream(r,o):this.makeCallSync(r,()=>this.baseFs.createReadStream(r,o),(a,{archivePath:n,subPath:u})=>{let A=a.createReadStream(u,o);return A.path=Ae.fromPortablePath(this.pathUtils.join(n,u)),A})}createWriteStream(r,o){return r===null?this.baseFs.createWriteStream(r,o):this.makeCallSync(r,()=>this.baseFs.createWriteStream(r,o),(a,{subPath:n})=>a.createWriteStream(n,o))}async realpathPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.realpathPromise(r),async(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=await this.baseFs.realpathPromise(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,await o.realpathPromise(n)))})}realpathSync(r){return this.makeCallSync(r,()=>this.baseFs.realpathSync(r),(o,{archivePath:a,subPath:n})=>{let u=this.realPaths.get(a);return typeof u>"u"&&(u=this.baseFs.realpathSync(a),this.realPaths.set(a,u)),this.pathUtils.join(u,this.pathUtils.relative(Bt.root,o.realpathSync(n)))})}async existsPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.existsPromise(r),async(o,{subPath:a})=>await o.existsPromise(a))}existsSync(r){return this.makeCallSync(r,()=>this.baseFs.existsSync(r),(o,{subPath:a})=>o.existsSync(a))}async accessPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.accessPromise(r,o),async(a,{subPath:n})=>await a.accessPromise(n,o))}accessSync(r,o){return this.makeCallSync(r,()=>this.baseFs.accessSync(r,o),(a,{subPath:n})=>a.accessSync(n,o))}async statPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.statPromise(r,o),async(a,{subPath:n})=>await a.statPromise(n,o))}statSync(r,o){return this.makeCallSync(r,()=>this.baseFs.statSync(r,o),(a,{subPath:n})=>a.statSync(n,o))}async fstatPromise(r,o){if((r&va)!==this.magic)return this.baseFs.fstatPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fstat");let[n,u]=a;return n.fstatPromise(u,o)}fstatSync(r,o){if((r&va)!==this.magic)return this.baseFs.fstatSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fstatSync");let[n,u]=a;return n.fstatSync(u,o)}async lstatPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.lstatPromise(r,o),async(a,{subPath:n})=>await a.lstatPromise(n,o))}lstatSync(r,o){return this.makeCallSync(r,()=>this.baseFs.lstatSync(r,o),(a,{subPath:n})=>a.lstatSync(n,o))}async fchmodPromise(r,o){if((r&va)!==this.magic)return this.baseFs.fchmodPromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fchmod");let[n,u]=a;return n.fchmodPromise(u,o)}fchmodSync(r,o){if((r&va)!==this.magic)return this.baseFs.fchmodSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("fchmodSync");let[n,u]=a;return n.fchmodSync(u,o)}async chmodPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.chmodPromise(r,o),async(a,{subPath:n})=>await a.chmodPromise(n,o))}chmodSync(r,o){return this.makeCallSync(r,()=>this.baseFs.chmodSync(r,o),(a,{subPath:n})=>a.chmodSync(n,o))}async fchownPromise(r,o,a){if((r&va)!==this.magic)return this.baseFs.fchownPromise(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw ho("fchown");let[u,A]=n;return u.fchownPromise(A,o,a)}fchownSync(r,o,a){if((r&va)!==this.magic)return this.baseFs.fchownSync(r,o,a);let n=this.fdMap.get(r);if(typeof n>"u")throw ho("fchownSync");let[u,A]=n;return u.fchownSync(A,o,a)}async chownPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.chownPromise(r,o,a),async(n,{subPath:u})=>await n.chownPromise(u,o,a))}chownSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.chownSync(r,o,a),(n,{subPath:u})=>n.chownSync(u,o,a))}async renamePromise(r,o){return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.renamePromise(r,o),async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),async(a,{subPath:n})=>await this.makeCallPromise(o,async()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},async(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return await a.renamePromise(n,A)}))}renameSync(r,o){return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.renameSync(r,o),()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})}),(a,{subPath:n})=>this.makeCallSync(o,()=>{throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"})},(u,{subPath:A})=>{if(a!==u)throw Object.assign(new Error("EEXDEV: cross-device link not permitted"),{code:"EEXDEV"});return a.renameSync(n,A)}))}async copyFilePromise(r,o,a=0){let n=async(u,A,p,h)=>{if(a&K0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&K0.constants.COPYFILE_EXCL&&await this.existsPromise(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=await u.readFilePromise(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}await p.writeFilePromise(h,E)};return await this.makeCallPromise(r,async()=>await this.makeCallPromise(o,async()=>await this.baseFs.copyFilePromise(r,o,a),async(u,{subPath:A})=>await n(this.baseFs,r,u,A)),async(u,{subPath:A})=>await this.makeCallPromise(o,async()=>await n(u,A,this.baseFs,o),async(p,{subPath:h})=>u!==p?await n(u,A,p,h):await u.copyFilePromise(A,h,a)))}copyFileSync(r,o,a=0){let n=(u,A,p,h)=>{if(a&K0.constants.COPYFILE_FICLONE_FORCE)throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${A}' -> ${h}'`),{code:"EXDEV"});if(a&K0.constants.COPYFILE_EXCL&&this.existsSync(A))throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${A}' -> '${h}'`),{code:"EEXIST"});let E;try{E=u.readFileSync(A)}catch{throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${A}' -> '${h}'`),{code:"EINVAL"})}p.writeFileSync(h,E)};return this.makeCallSync(r,()=>this.makeCallSync(o,()=>this.baseFs.copyFileSync(r,o,a),(u,{subPath:A})=>n(this.baseFs,r,u,A)),(u,{subPath:A})=>this.makeCallSync(o,()=>n(u,A,this.baseFs,o),(p,{subPath:h})=>u!==p?n(u,A,p,h):u.copyFileSync(A,h,a)))}async appendFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.appendFilePromise(r,o,a),async(n,{subPath:u})=>await n.appendFilePromise(u,o,a))}appendFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.appendFileSync(r,o,a),(n,{subPath:u})=>n.appendFileSync(u,o,a))}async writeFilePromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.writeFilePromise(r,o,a),async(n,{subPath:u})=>await n.writeFilePromise(u,o,a))}writeFileSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.writeFileSync(r,o,a),(n,{subPath:u})=>n.writeFileSync(u,o,a))}async unlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.unlinkPromise(r),async(o,{subPath:a})=>await o.unlinkPromise(a))}unlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.unlinkSync(r),(o,{subPath:a})=>o.unlinkSync(a))}async utimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.utimesPromise(r,o,a),async(n,{subPath:u})=>await n.utimesPromise(u,o,a))}utimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.utimesSync(r,o,a),(n,{subPath:u})=>n.utimesSync(u,o,a))}async lutimesPromise(r,o,a){return await this.makeCallPromise(r,async()=>await this.baseFs.lutimesPromise(r,o,a),async(n,{subPath:u})=>await n.lutimesPromise(u,o,a))}lutimesSync(r,o,a){return this.makeCallSync(r,()=>this.baseFs.lutimesSync(r,o,a),(n,{subPath:u})=>n.lutimesSync(u,o,a))}async mkdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.mkdirPromise(r,o),async(a,{subPath:n})=>await a.mkdirPromise(n,o))}mkdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.mkdirSync(r,o),(a,{subPath:n})=>a.mkdirSync(n,o))}async rmdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmdirPromise(r,o),async(a,{subPath:n})=>await a.rmdirPromise(n,o))}rmdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmdirSync(r,o),(a,{subPath:n})=>a.rmdirSync(n,o))}async rmPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.rmPromise(r,o),async(a,{subPath:n})=>await a.rmPromise(n,o))}rmSync(r,o){return this.makeCallSync(r,()=>this.baseFs.rmSync(r,o),(a,{subPath:n})=>a.rmSync(n,o))}async linkPromise(r,o){return await this.makeCallPromise(o,async()=>await this.baseFs.linkPromise(r,o),async(a,{subPath:n})=>await a.linkPromise(r,n))}linkSync(r,o){return this.makeCallSync(o,()=>this.baseFs.linkSync(r,o),(a,{subPath:n})=>a.linkSync(r,n))}async symlinkPromise(r,o,a){return await this.makeCallPromise(o,async()=>await this.baseFs.symlinkPromise(r,o,a),async(n,{subPath:u})=>await n.symlinkPromise(r,u))}symlinkSync(r,o,a){return this.makeCallSync(o,()=>this.baseFs.symlinkSync(r,o,a),(n,{subPath:u})=>n.symlinkSync(r,u))}async readFilePromise(r,o){return this.makeCallPromise(r,async()=>await this.baseFs.readFilePromise(r,o),async(a,{subPath:n})=>await a.readFilePromise(n,o))}readFileSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readFileSync(r,o),(a,{subPath:n})=>a.readFileSync(n,o))}async readdirPromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.readdirPromise(r,o),async(a,{subPath:n})=>await a.readdirPromise(n,o),{requireSubpath:!1})}readdirSync(r,o){return this.makeCallSync(r,()=>this.baseFs.readdirSync(r,o),(a,{subPath:n})=>a.readdirSync(n,o),{requireSubpath:!1})}async readlinkPromise(r){return await this.makeCallPromise(r,async()=>await this.baseFs.readlinkPromise(r),async(o,{subPath:a})=>await o.readlinkPromise(a))}readlinkSync(r){return this.makeCallSync(r,()=>this.baseFs.readlinkSync(r),(o,{subPath:a})=>o.readlinkSync(a))}async truncatePromise(r,o){return await this.makeCallPromise(r,async()=>await this.baseFs.truncatePromise(r,o),async(a,{subPath:n})=>await a.truncatePromise(n,o))}truncateSync(r,o){return this.makeCallSync(r,()=>this.baseFs.truncateSync(r,o),(a,{subPath:n})=>a.truncateSync(n,o))}async ftruncatePromise(r,o){if((r&va)!==this.magic)return this.baseFs.ftruncatePromise(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("ftruncate");let[n,u]=a;return n.ftruncatePromise(u,o)}ftruncateSync(r,o){if((r&va)!==this.magic)return this.baseFs.ftruncateSync(r,o);let a=this.fdMap.get(r);if(typeof a>"u")throw ho("ftruncateSync");let[n,u]=a;return n.ftruncateSync(u,o)}watch(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watch(r,o,a),(n,{subPath:u})=>n.watch(u,o,a))}watchFile(r,o,a){return this.makeCallSync(r,()=>this.baseFs.watchFile(r,o,a),()=>um(this,r,o,a))}unwatchFile(r,o){return this.makeCallSync(r,()=>this.baseFs.unwatchFile(r,o),()=>q0(this,r,o))}async makeCallPromise(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return await o();let u=this.resolve(r),A=this.findMount(u);return A?n&&A.subPath==="/"?await o():await this.getMountPromise(A.archivePath,async p=>await a(p,A)):await o()}makeCallSync(r,o,a,{requireSubpath:n=!0}={}){if(typeof r!="string")return o();let u=this.resolve(r),A=this.findMount(u);return!A||n&&A.subPath==="/"?o():this.getMountSync(A.archivePath,p=>a(p,A))}findMount(r){if(this.filter&&!this.filter.test(r))return null;let o="";for(;;){let a=r.substring(o.length),n=this.getMountPoint(a,o);if(!n)return null;if(o=this.pathUtils.join(o,n),!this.isMount.has(o)){if(this.notMount.has(o))continue;try{if(this.typeCheck!==null&&(this.baseFs.statSync(o).mode&K0.constants.S_IFMT)!==this.typeCheck){this.notMount.add(o);continue}}catch{return null}this.isMount.add(o)}return{archivePath:o,subPath:this.pathUtils.join(Bt.root,r.substring(o.length))}}}limitOpenFiles(r){if(this.mountInstances===null)return;let o=Date.now(),a=o+this.maxAge,n=r===null?0:this.mountInstances.size-r;for(let[u,{childFs:A,expiresAt:p,refCount:h}]of this.mountInstances.entries())if(!(h!==0||A.hasOpenFileHandles?.())){if(o>=p){A.saveAndClose?.(),this.mountInstances.delete(u),n-=1;continue}else if(r===null||n<=0){a=p;break}A.saveAndClose?.(),this.mountInstances.delete(u),n-=1}this.limitOpenFilesTimeout===null&&(r===null&&this.mountInstances.size>0||r!==null)&&isFinite(a)&&(this.limitOpenFilesTimeout=setTimeout(()=>{this.limitOpenFilesTimeout=null,this.limitOpenFiles(null)},a-o).unref())}async getMountPromise(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);if(!a){let n=await this.factoryPromise(this.baseFs,r);a=this.mountInstances.get(r),a||(a={childFs:n(),expiresAt:0,refCount:0})}this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,a.refCount+=1;try{return await o(a.childFs)}finally{a.refCount-=1}}else{let a=(await this.factoryPromise(this.baseFs,r))();try{return await o(a)}finally{a.saveAndClose?.()}}}getMountSync(r,o){if(this.mountInstances){let a=this.mountInstances.get(r);return a||(a={childFs:this.factorySync(this.baseFs,r),expiresAt:0,refCount:0}),this.mountInstances.delete(r),this.limitOpenFiles(this.maxOpenFiles-1),this.mountInstances.set(r,a),a.expiresAt=Date.now()+this.maxAge,o(a.childFs)}else{let a=this.factorySync(this.baseFs,r);try{return o(a)}finally{a.saveAndClose?.()}}}}});var $t,nP,kW=It(()=>{W0();Ba();$t=()=>Object.assign(new Error("ENOSYS: unsupported filesystem access"),{code:"ENOSYS"}),nP=class t extends hf{static{this.instance=new t}constructor(){super(K)}getExtractHint(){throw $t()}getRealPath(){throw $t()}resolve(){throw $t()}async openPromise(){throw $t()}openSync(){throw $t()}async opendirPromise(){throw $t()}opendirSync(){throw $t()}async readPromise(){throw $t()}readSync(){throw $t()}async writePromise(){throw $t()}writeSync(){throw $t()}async closePromise(){throw $t()}closeSync(){throw $t()}createWriteStream(){throw $t()}createReadStream(){throw $t()}async realpathPromise(){throw $t()}realpathSync(){throw $t()}async readdirPromise(){throw $t()}readdirSync(){throw $t()}async existsPromise(e){throw $t()}existsSync(e){throw $t()}async accessPromise(){throw $t()}accessSync(){throw $t()}async statPromise(){throw $t()}statSync(){throw $t()}async fstatPromise(e){throw $t()}fstatSync(e){throw $t()}async lstatPromise(e){throw $t()}lstatSync(e){throw $t()}async fchmodPromise(){throw $t()}fchmodSync(){throw $t()}async chmodPromise(){throw $t()}chmodSync(){throw $t()}async fchownPromise(){throw $t()}fchownSync(){throw $t()}async chownPromise(){throw $t()}chownSync(){throw $t()}async mkdirPromise(){throw $t()}mkdirSync(){throw $t()}async rmdirPromise(){throw $t()}rmdirSync(){throw $t()}async rmPromise(){throw $t()}rmSync(){throw $t()}async linkPromise(){throw $t()}linkSync(){throw $t()}async symlinkPromise(){throw $t()}symlinkSync(){throw $t()}async renamePromise(){throw $t()}renameSync(){throw $t()}async copyFilePromise(){throw $t()}copyFileSync(){throw $t()}async appendFilePromise(){throw $t()}appendFileSync(){throw $t()}async writeFilePromise(){throw $t()}writeFileSync(){throw $t()}async unlinkPromise(){throw $t()}unlinkSync(){throw $t()}async utimesPromise(){throw $t()}utimesSync(){throw $t()}async lutimesPromise(){throw $t()}lutimesSync(){throw $t()}async readFilePromise(){throw $t()}readFileSync(){throw $t()}async readlinkPromise(){throw $t()}readlinkSync(){throw $t()}async truncatePromise(){throw $t()}truncateSync(){throw $t()}async ftruncatePromise(e,r){throw $t()}ftruncateSync(e,r){throw $t()}watch(){throw $t()}watchFile(){throw $t()}unwatchFile(){throw $t()}}});var Wp,QW=It(()=>{gf();Ba();Wp=class extends ws{constructor(e){super(Ae),this.baseFs=e}mapFromBase(e){return Ae.fromPortablePath(e)}mapToBase(e){return Ae.toPortablePath(e)}}});var C8e,PT,I8e,qs,FW=It(()=>{Y0();gf();Ba();C8e=/^[0-9]+$/,PT=/^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/,I8e=/^([^/]+-)?[a-f0-9]+$/,qs=class t extends ws{static makeVirtualPath(e,r,o){if(K.basename(e)!=="__virtual__")throw new Error('Assertion failed: Virtual folders must be named "__virtual__"');if(!K.basename(r).match(I8e))throw new Error("Assertion failed: Virtual components must be ended by an hexadecimal hash");let n=K.relative(K.dirname(e),o).split("/"),u=0;for(;u{ST=et(ve("buffer")),RW=ve("url"),TW=ve("util");gf();Ba();iP=class extends ws{constructor(e){super(Ae),this.baseFs=e}mapFromBase(e){return e}mapToBase(e){if(typeof e=="string")return e;if(e instanceof URL)return(0,RW.fileURLToPath)(e);if(Buffer.isBuffer(e)){let r=e.toString();if(!w8e(e,r))throw new Error("Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942");return r}throw new Error(`Unsupported path type: ${(0,TW.inspect)(e)}`)}}});var _W,go,df,Yp,sP,oP,fm,_c,Hc,LW,OW,MW,UW,cw,HW=It(()=>{_W=ve("readline"),go=Symbol("kBaseFs"),df=Symbol("kFd"),Yp=Symbol("kClosePromise"),sP=Symbol("kCloseResolve"),oP=Symbol("kCloseReject"),fm=Symbol("kRefs"),_c=Symbol("kRef"),Hc=Symbol("kUnref"),cw=class{constructor(e,r){this[UW]=1;this[MW]=void 0;this[OW]=void 0;this[LW]=void 0;this[go]=r,this[df]=e}get fd(){return this[df]}async appendFile(e,r){try{this[_c](this.appendFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;return await this[go].appendFilePromise(this.fd,e,o?{encoding:o}:void 0)}finally{this[Hc]()}}async chown(e,r){try{return this[_c](this.chown),await this[go].fchownPromise(this.fd,e,r)}finally{this[Hc]()}}async chmod(e){try{return this[_c](this.chmod),await this[go].fchmodPromise(this.fd,e)}finally{this[Hc]()}}createReadStream(e){return this[go].createReadStream(null,{...e,fd:this.fd})}createWriteStream(e){return this[go].createWriteStream(null,{...e,fd:this.fd})}datasync(){throw new Error("Method not implemented.")}sync(){throw new Error("Method not implemented.")}async read(e,r,o,a){try{this[_c](this.read);let n;return Buffer.isBuffer(e)?n=e:(e??={},n=e.buffer??Buffer.alloc(16384),r=e.offset||0,o=e.length??n.byteLength,a=e.position??null),r??=0,o??=0,o===0?{bytesRead:o,buffer:n}:{bytesRead:await this[go].readPromise(this.fd,n,r,o,a),buffer:n}}finally{this[Hc]()}}async readFile(e){try{this[_c](this.readFile);let r=(typeof e=="string"?e:e?.encoding)??void 0;return await this[go].readFilePromise(this.fd,r)}finally{this[Hc]()}}readLines(e){return(0,_W.createInterface)({input:this.createReadStream(e),crlfDelay:1/0})}async stat(e){try{return this[_c](this.stat),await this[go].fstatPromise(this.fd,e)}finally{this[Hc]()}}async truncate(e){try{return this[_c](this.truncate),await this[go].ftruncatePromise(this.fd,e)}finally{this[Hc]()}}utimes(e,r){throw new Error("Method not implemented.")}async writeFile(e,r){try{this[_c](this.writeFile);let o=(typeof r=="string"?r:r?.encoding)??void 0;await this[go].writeFilePromise(this.fd,e,o)}finally{this[Hc]()}}async write(...e){try{if(this[_c](this.write),ArrayBuffer.isView(e[0])){let[r,o,a,n]=e;return{bytesWritten:await this[go].writePromise(this.fd,r,o??void 0,a??void 0,n??void 0),buffer:r}}else{let[r,o,a]=e;return{bytesWritten:await this[go].writePromise(this.fd,r,o,a),buffer:r}}}finally{this[Hc]()}}async writev(e,r){try{this[_c](this.writev);let o=0;if(typeof r<"u")for(let a of e){let n=await this.write(a,void 0,void 0,r);o+=n.bytesWritten,r+=n.bytesWritten}else for(let a of e){let n=await this.write(a);o+=n.bytesWritten}return{buffers:e,bytesWritten:o}}finally{this[Hc]()}}readv(e,r){throw new Error("Method not implemented.")}close(){if(this[df]===-1)return Promise.resolve();if(this[Yp])return this[Yp];if(this[fm]--,this[fm]===0){let e=this[df];this[df]=-1,this[Yp]=this[go].closePromise(e).finally(()=>{this[Yp]=void 0})}else this[Yp]=new Promise((e,r)=>{this[sP]=e,this[oP]=r}).finally(()=>{this[Yp]=void 0,this[oP]=void 0,this[sP]=void 0});return this[Yp]}[(go,df,UW=fm,MW=Yp,OW=sP,LW=oP,_c)](e){if(this[df]===-1){let r=new Error("file closed");throw r.code="EBADF",r.syscall=e.name,r}this[fm]++}[Hc](){if(this[fm]--,this[fm]===0){let e=this[df];this[df]=-1,this[go].closePromise(e).then(this[sP],this[oP])}}}});function uw(t,e){e=new iP(e);let r=(o,a,n)=>{let u=o[a];o[a]=n,typeof u?.[pm.promisify.custom]<"u"&&(n[pm.promisify.custom]=u[pm.promisify.custom])};{r(t,"exists",(o,...a)=>{let u=typeof a[a.length-1]=="function"?a.pop():()=>{};process.nextTick(()=>{e.existsPromise(o).then(A=>{u(A)},()=>{u(!1)})})}),r(t,"read",(...o)=>{let[a,n,u,A,p,h]=o;if(o.length<=3){let E={};o.length<3?h=o[1]:(E=o[1],h=o[2]),{buffer:n=Buffer.alloc(16384),offset:u=0,length:A=n.byteLength,position:p}=E}if(u==null&&(u=0),A|=0,A===0){process.nextTick(()=>{h(null,0,n)});return}p==null&&(p=-1),process.nextTick(()=>{e.readPromise(a,n,u,A,p).then(E=>{h(null,E,n)},E=>{h(E,0,n)})})});for(let o of qW){let a=o.replace(/Promise$/,"");if(typeof t[a]>"u")continue;let n=e[o];if(typeof n>"u")continue;r(t,a,(...A)=>{let h=typeof A[A.length-1]=="function"?A.pop():()=>{};process.nextTick(()=>{n.apply(e,A).then(E=>{h(null,E)},E=>{h(E)})})})}t.realpath.native=t.realpath}{r(t,"existsSync",o=>{try{return e.existsSync(o)}catch{return!1}}),r(t,"readSync",(...o)=>{let[a,n,u,A,p]=o;return o.length<=3&&({offset:u=0,length:A=n.byteLength,position:p}=o[2]||{}),u==null&&(u=0),A|=0,A===0?0:(p==null&&(p=-1),e.readSync(a,n,u,A,p))});for(let o of B8e){let a=o;if(typeof t[a]>"u")continue;let n=e[o];typeof n>"u"||r(t,a,n.bind(e))}t.realpathSync.native=t.realpathSync}{let o=t.promises;for(let a of qW){let n=a.replace(/Promise$/,"");if(typeof o[n]>"u")continue;let u=e[a];typeof u>"u"||a!=="open"&&r(o,n,(A,...p)=>A instanceof cw?A[n].apply(A,p):u.call(e,A,...p))}r(o,"open",async(...a)=>{let n=await e.openPromise(...a);return new cw(n,e)})}t.read[pm.promisify.custom]=async(o,a,...n)=>({bytesRead:await e.readPromise(o,a,...n),buffer:a}),t.write[pm.promisify.custom]=async(o,a,...n)=>({bytesWritten:await e.writePromise(o,a,...n),buffer:a})}function aP(t,e){let r=Object.create(t);return uw(r,e),r}var pm,B8e,qW,jW=It(()=>{pm=ve("util");NW();HW();B8e=new Set(["accessSync","appendFileSync","createReadStream","createWriteStream","chmodSync","fchmodSync","chownSync","fchownSync","closeSync","copyFileSync","linkSync","lstatSync","fstatSync","lutimesSync","mkdirSync","openSync","opendirSync","readlinkSync","readFileSync","readdirSync","readlinkSync","realpathSync","renameSync","rmdirSync","rmSync","statSync","symlinkSync","truncateSync","ftruncateSync","unlinkSync","unwatchFile","utimesSync","watch","watchFile","writeFileSync","writeSync"]),qW=new Set(["accessPromise","appendFilePromise","fchmodPromise","chmodPromise","fchownPromise","chownPromise","closePromise","copyFilePromise","linkPromise","fstatPromise","lstatPromise","lutimesPromise","mkdirPromise","openPromise","opendirPromise","readdirPromise","realpathPromise","readFilePromise","readdirPromise","readlinkPromise","renamePromise","rmdirPromise","rmPromise","statPromise","symlinkPromise","truncatePromise","ftruncatePromise","unlinkPromise","utimesPromise","writeFilePromise","writeSync"])});function GW(t){let e=Math.ceil(Math.random()*4294967296).toString(16).padStart(8,"0");return`${t}${e}`}function WW(){if(bT)return bT;let t=Ae.toPortablePath(YW.default.tmpdir()),e=ae.realpathSync(t);return process.once("exit",()=>{ae.rmtempSync()}),bT={tmpdir:t,realTmpdir:e}}var YW,qc,bT,ae,KW=It(()=>{YW=et(ve("os"));Y0();Ba();qc=new Set,bT=null;ae=Object.assign(new _n,{detachTemp(t){qc.delete(t)},mktempSync(t){let{tmpdir:e,realTmpdir:r}=WW();for(;;){let o=GW("xfs-");try{this.mkdirSync(K.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,o);if(qc.add(a),typeof t>"u")return a;try{return t(a)}finally{if(qc.has(a)){qc.delete(a);try{this.removeSync(a)}catch{}}}}},async mktempPromise(t){let{tmpdir:e,realTmpdir:r}=WW();for(;;){let o=GW("xfs-");try{await this.mkdirPromise(K.join(e,o))}catch(n){if(n.code==="EEXIST")continue;throw n}let a=K.join(r,o);if(qc.add(a),typeof t>"u")return a;try{return await t(a)}finally{if(qc.has(a)){qc.delete(a);try{await this.removePromise(a)}catch{}}}}},async rmtempPromise(){await Promise.all(Array.from(qc.values()).map(async t=>{try{await ae.removePromise(t,{maxRetries:0}),qc.delete(t)}catch{}}))},rmtempSync(){for(let t of qc)try{ae.removeSync(t),qc.delete(t)}catch{}}})});var Aw={};Kt(Aw,{AliasFS:()=>ju,BasePortableFakeFS:()=>qu,CustomDir:()=>lw,CwdFS:()=>En,FakeFS:()=>hf,Filename:()=>mr,JailFS:()=>Gu,LazyFS:()=>Am,MountFS:()=>Gp,NoFS:()=>nP,NodeFS:()=>_n,PortablePath:()=>Bt,PosixFS:()=>Wp,ProxiedFS:()=>ws,VirtualFS:()=>qs,constants:()=>Pi,errors:()=>sr,extendFs:()=>aP,normalizeLineEndings:()=>G0,npath:()=>Ae,opendir:()=>eP,patchFs:()=>uw,ppath:()=>K,setupCopyIndex:()=>$D,statUtils:()=>wa,unwatchAllFiles:()=>j0,unwatchFile:()=>q0,watchFile:()=>um,xfs:()=>ae});var Pt=It(()=>{uW();zD();IT();vT();dW();DT();W0();Ba();Ba();wW();W0();DW();SW();bW();xW();kW();Y0();QW();gf();FW();jW();KW()});var ZW=_((qSt,XW)=>{XW.exports=zW;zW.sync=D8e;var VW=ve("fs");function v8e(t,e){var r=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!r||(r=r.split(";"),r.indexOf("")!==-1))return!0;for(var o=0;o{rY.exports=eY;eY.sync=P8e;var $W=ve("fs");function eY(t,e,r){$W.stat(t,function(o,a){r(o,o?!1:tY(a,e))})}function P8e(t,e){return tY($W.statSync(t),e)}function tY(t,e){return t.isFile()&&S8e(t,e)}function S8e(t,e){var r=t.mode,o=t.uid,a=t.gid,n=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),u=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),A=parseInt("100",8),p=parseInt("010",8),h=parseInt("001",8),E=A|p,w=r&h||r&p&&a===u||r&A&&o===n||r&E&&n===0;return w}});var sY=_((WSt,iY)=>{var GSt=ve("fs"),lP;process.platform==="win32"||global.TESTING_WINDOWS?lP=ZW():lP=nY();iY.exports=xT;xT.sync=b8e;function xT(t,e,r){if(typeof e=="function"&&(r=e,e={}),!r){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(o,a){xT(t,e||{},function(n,u){n?a(n):o(u)})})}lP(t,e||{},function(o,a){o&&(o.code==="EACCES"||e&&e.ignoreErrors)&&(o=null,a=!1),r(o,a)})}function b8e(t,e){try{return lP.sync(t,e||{})}catch(r){if(e&&e.ignoreErrors||r.code==="EACCES")return!1;throw r}}});var fY=_((YSt,AY)=>{var hm=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",oY=ve("path"),x8e=hm?";":":",aY=sY(),lY=t=>Object.assign(new Error(`not found: ${t}`),{code:"ENOENT"}),cY=(t,e)=>{let r=e.colon||x8e,o=t.match(/\//)||hm&&t.match(/\\/)?[""]:[...hm?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(r)],a=hm?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",n=hm?a.split(r):[""];return hm&&t.indexOf(".")!==-1&&n[0]!==""&&n.unshift(""),{pathEnv:o,pathExt:n,pathExtExe:a}},uY=(t,e,r)=>{typeof e=="function"&&(r=e,e={}),e||(e={});let{pathEnv:o,pathExt:a,pathExtExe:n}=cY(t,e),u=[],A=h=>new Promise((E,w)=>{if(h===o.length)return e.all&&u.length?E(u):w(lY(t));let D=o[h],x=/^".*"$/.test(D)?D.slice(1,-1):D,C=oY.join(x,t),T=!x&&/^\.[\\\/]/.test(t)?t.slice(0,2)+C:C;E(p(T,h,0))}),p=(h,E,w)=>new Promise((D,x)=>{if(w===a.length)return D(A(E+1));let C=a[w];aY(h+C,{pathExt:n},(T,L)=>{if(!T&&L)if(e.all)u.push(h+C);else return D(h+C);return D(p(h,E,w+1))})});return r?A(0).then(h=>r(null,h),r):A(0)},k8e=(t,e)=>{e=e||{};let{pathEnv:r,pathExt:o,pathExtExe:a}=cY(t,e),n=[];for(let u=0;u{"use strict";var pY=(t={})=>{let e=t.env||process.env;return(t.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(o=>o.toUpperCase()==="PATH")||"Path"};kT.exports=pY;kT.exports.default=pY});var yY=_((VSt,mY)=>{"use strict";var gY=ve("path"),Q8e=fY(),F8e=hY();function dY(t,e){let r=t.options.env||process.env,o=process.cwd(),a=t.options.cwd!=null,n=a&&process.chdir!==void 0&&!process.chdir.disabled;if(n)try{process.chdir(t.options.cwd)}catch{}let u;try{u=Q8e.sync(t.command,{path:r[F8e({env:r})],pathExt:e?gY.delimiter:void 0})}catch{}finally{n&&process.chdir(o)}return u&&(u=gY.resolve(a?t.options.cwd:"",u)),u}function R8e(t){return dY(t)||dY(t,!0)}mY.exports=R8e});var EY=_((JSt,FT)=>{"use strict";var QT=/([()\][%!^"`<>&|;, *?])/g;function T8e(t){return t=t.replace(QT,"^$1"),t}function N8e(t,e){return t=`${t}`,t=t.replace(/(\\*)"/g,'$1$1\\"'),t=t.replace(/(\\*)$/,"$1$1"),t=`"${t}"`,t=t.replace(QT,"^$1"),e&&(t=t.replace(QT,"^$1")),t}FT.exports.command=T8e;FT.exports.argument=N8e});var IY=_((zSt,CY)=>{"use strict";CY.exports=/^#!(.*)/});var BY=_((XSt,wY)=>{"use strict";var L8e=IY();wY.exports=(t="")=>{let e=t.match(L8e);if(!e)return null;let[r,o]=e[0].replace(/#! ?/,"").split(" "),a=r.split("/").pop();return a==="env"?o:o?`${a} ${o}`:a}});var DY=_((ZSt,vY)=>{"use strict";var RT=ve("fs"),O8e=BY();function M8e(t){let r=Buffer.alloc(150),o;try{o=RT.openSync(t,"r"),RT.readSync(o,r,0,150,0),RT.closeSync(o)}catch{}return O8e(r.toString())}vY.exports=M8e});var xY=_(($St,bY)=>{"use strict";var U8e=ve("path"),PY=yY(),SY=EY(),_8e=DY(),H8e=process.platform==="win32",q8e=/\.(?:com|exe)$/i,j8e=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function G8e(t){t.file=PY(t);let e=t.file&&_8e(t.file);return e?(t.args.unshift(t.file),t.command=e,PY(t)):t.file}function W8e(t){if(!H8e)return t;let e=G8e(t),r=!q8e.test(e);if(t.options.forceShell||r){let o=j8e.test(e);t.command=U8e.normalize(t.command),t.command=SY.command(t.command),t.args=t.args.map(n=>SY.argument(n,o));let a=[t.command].concat(t.args).join(" ");t.args=["/d","/s","/c",`"${a}"`],t.command=process.env.comspec||"cmd.exe",t.options.windowsVerbatimArguments=!0}return t}function Y8e(t,e,r){e&&!Array.isArray(e)&&(r=e,e=null),e=e?e.slice(0):[],r=Object.assign({},r);let o={command:t,args:e,options:r,file:void 0,original:{command:t,args:e}};return r.shell?o:W8e(o)}bY.exports=Y8e});var FY=_((ebt,QY)=>{"use strict";var TT=process.platform==="win32";function NT(t,e){return Object.assign(new Error(`${e} ${t.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${t.command}`,path:t.command,spawnargs:t.args})}function K8e(t,e){if(!TT)return;let r=t.emit;t.emit=function(o,a){if(o==="exit"){let n=kY(a,e,"spawn");if(n)return r.call(t,"error",n)}return r.apply(t,arguments)}}function kY(t,e){return TT&&t===1&&!e.file?NT(e.original,"spawn"):null}function V8e(t,e){return TT&&t===1&&!e.file?NT(e.original,"spawnSync"):null}QY.exports={hookChildProcess:K8e,verifyENOENT:kY,verifyENOENTSync:V8e,notFoundError:NT}});var MT=_((tbt,gm)=>{"use strict";var RY=ve("child_process"),LT=xY(),OT=FY();function TY(t,e,r){let o=LT(t,e,r),a=RY.spawn(o.command,o.args,o.options);return OT.hookChildProcess(a,o),a}function J8e(t,e,r){let o=LT(t,e,r),a=RY.spawnSync(o.command,o.args,o.options);return a.error=a.error||OT.verifyENOENTSync(a.status,o),a}gm.exports=TY;gm.exports.spawn=TY;gm.exports.sync=J8e;gm.exports._parse=LT;gm.exports._enoent=OT});var LY=_((rbt,NY)=>{"use strict";function z8e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function V0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,V0)}z8e(V0,Error);V0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;w>",S=cr(">>",!1),y=">&",R=cr(">&",!1),z=">",X=cr(">",!1),$="<<<",se=cr("<<<",!1),xe="<&",Fe=cr("<&",!1),lt="<",Et=cr("<",!1),qt=function(N){return{type:"argument",segments:[].concat(...N)}},nr=function(N){return N},St="$'",cn=cr("$'",!1),Pr="'",yr=cr("'",!1),Rr=function(N){return[{type:"text",text:N}]},Xr='""',$n=cr('""',!1),Xs=function(){return{type:"text",text:""}},Hi='"',Qs=cr('"',!1),Zs=function(N){return N},xi=function(N){return{type:"arithmetic",arithmetic:N,quoted:!0}},Fs=function(N){return{type:"shell",shell:N,quoted:!0}},$s=function(N){return{type:"variable",...N,quoted:!0}},SA=function(N){return{type:"text",text:N}},gu=function(N){return{type:"arithmetic",arithmetic:N,quoted:!1}},op=function(N){return{type:"shell",shell:N,quoted:!1}},ap=function(N){return{type:"variable",...N,quoted:!1}},Rs=function(N){return{type:"glob",pattern:N}},Ln=/^[^']/,hs=Li(["'"],!0,!1),Ts=function(N){return N.join("")},pc=/^[^$"]/,hc=Li(["$",'"'],!0,!1),gc=`\\ +`,bA=cr(`\\ +`,!1),xA=function(){return""},Ro="\\",To=cr("\\",!1),kA=/^[\\$"`]/,pr=Li(["\\","$",'"',"`"],!1,!1),Me=function(N){return N},ia="\\a",dc=cr("\\a",!1),Er=function(){return"a"},du="\\b",QA=cr("\\b",!1),FA=function(){return"\b"},mc=/^[Ee]/,yc=Li(["E","e"],!1,!1),Il=function(){return"\x1B"},we="\\f",Tt=cr("\\f",!1),wl=function(){return"\f"},Bi="\\n",Ns=cr("\\n",!1),Ft=function(){return` +`},Bn="\\r",No=cr("\\r",!1),ki=function(){return"\r"},vi="\\t",sa=cr("\\t",!1),un=function(){return" "},qn="\\v",Ec=cr("\\v",!1),lp=function(){return"\v"},oa=/^[\\'"?]/,aa=Li(["\\","'",'"',"?"],!1,!1),la=function(N){return String.fromCharCode(parseInt(N,16))},Ze="\\x",ca=cr("\\x",!1),mu="\\u",Bl=cr("\\u",!1),dn="\\U",Lo=cr("\\U",!1),RA=function(N){return String.fromCodePoint(parseInt(N,16))},TA=/^[0-7]/,Oo=Li([["0","7"]],!1,!1),qa=/^[0-9a-fA-f]/,Ot=Li([["0","9"],["a","f"],["A","f"]],!1,!1),vn=Iu(),Mo="{}",ua=cr("{}",!1),qi=function(){return"{}"},vl="-",Cc=cr("-",!1),Dl="+",Aa=cr("+",!1),Di=".",rs=cr(".",!1),ja=function(N,V,re){return{type:"number",value:(N==="-"?-1:1)*parseFloat(V.join("")+"."+re.join(""))}},yu=function(N,V){return{type:"number",value:(N==="-"?-1:1)*parseInt(V.join(""))}},Pl=function(N){return{type:"variable",...N}},pi=function(N){return{type:"variable",name:N}},Dn=function(N){return N},Sl="*",Je=cr("*",!1),st="/",vt=cr("/",!1),ar=function(N,V,re){return{type:V==="*"?"multiplication":"division",right:re}},ee=function(N,V){return V.reduce((re,ge)=>({left:re,...ge}),N)},ye=function(N,V,re){return{type:V==="+"?"addition":"subtraction",right:re}},Le="$((",gt=cr("$((",!1),mt="))",Dt=cr("))",!1),er=function(N){return N},sn="$(",ei=cr("$(",!1),Qi=function(N){return N},Pn="${",fa=cr("${",!1),wd=":-",BI=cr(":-",!1),eo=function(N,V){return{name:N,defaultValue:V}},Bd=":-}",cp=cr(":-}",!1),vI=function(N){return{name:N,defaultValue:[]}},to=":+",up=cr(":+",!1),Ap=function(N,V){return{name:N,alternativeValue:V}},Ic=":+}",fp=cr(":+}",!1),s0=function(N){return{name:N,alternativeValue:[]}},o0=function(N){return{name:N}},a0="$",vd=cr("$",!1),Eu=function(N){return e.isGlobPattern(N)},ro=function(N){return N},Ga=/^[a-zA-Z0-9_]/,pp=Li([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),l0=function(){return bd()},Wa=/^[$@*?#a-zA-Z0-9_\-]/,Ya=Li(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),Dd=/^[()}<>$|&; \t"']/,NA=Li(["(",")","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Pd=/^[<>&; \t"']/,Sd=Li(["<",">","&",";"," "," ",'"',"'"],!1,!1),LA=/^[ \t]/,OA=Li([" "," "],!1,!1),W=0,bt=0,MA=[{line:1,column:1}],no=0,Cu=[],dt=0,wc;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function bd(){return t.substring(bt,W)}function c0(){return wu(bt,W)}function DI(N,V){throw V=V!==void 0?V:wu(bt,W),UA([u0(N)],t.substring(bt,W),V)}function hp(N,V){throw V=V!==void 0?V:wu(bt,W),oi(N,V)}function cr(N,V){return{type:"literal",text:N,ignoreCase:V}}function Li(N,V,re){return{type:"class",parts:N,inverted:V,ignoreCase:re}}function Iu(){return{type:"any"}}function pa(){return{type:"end"}}function u0(N){return{type:"other",description:N}}function Bc(N){var V=MA[N],re;if(V)return V;for(re=N-1;!MA[re];)re--;for(V=MA[re],V={line:V.line,column:V.column};reno&&(no=W,Cu=[]),Cu.push(N))}function oi(N,V){return new V0(N,null,null,V)}function UA(N,V,re){return new V0(V0.buildMessage(N,V),N,V,re)}function ha(){var N,V,re;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();return V!==r?(re=Uo(),re===r&&(re=null),re!==r?(bt=N,V=n(re),N=V):(W=N,N=r)):(W=N,N=r),N}function Uo(){var N,V,re,ge,Ye;if(N=W,V=gp(),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();re!==r?(ge=A0(),ge!==r?(Ye=ga(),Ye===r&&(Ye=null),Ye!==r?(bt=N,V=u(V,ge,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;if(N===r)if(N=W,V=gp(),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();re!==r?(ge=A0(),ge===r&&(ge=null),ge!==r?(bt=N,V=A(V,ge),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;return N}function ga(){var N,V,re,ge,Ye;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(re=Uo(),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=p(re),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r;return N}function A0(){var N;return t.charCodeAt(W)===59?(N=h,W++):(N=r,dt===0&&wt(E)),N===r&&(t.charCodeAt(W)===38?(N=w,W++):(N=r,dt===0&&wt(D))),N}function gp(){var N,V,re;return N=W,V=_A(),V!==r?(re=f0(),re===r&&(re=null),re!==r?(bt=N,V=x(V,re),N=V):(W=N,N=r)):(W=N,N=r),N}function f0(){var N,V,re,ge,Ye,At,hr;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(re=xd(),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=gp(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();At!==r?(bt=N,V=C(re,Ye),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;return N}function xd(){var N;return t.substr(W,2)===T?(N=T,W+=2):(N=r,dt===0&&wt(L)),N===r&&(t.substr(W,2)===U?(N=U,W+=2):(N=r,dt===0&&wt(J))),N}function _A(){var N,V,re;return N=W,V=Bu(),V!==r?(re=p0(),re===r&&(re=null),re!==r?(bt=N,V=te(V,re),N=V):(W=N,N=r)):(W=N,N=r),N}function p0(){var N,V,re,ge,Ye,At,hr;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(re=vc(),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=_A(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();At!==r?(bt=N,V=le(re,Ye),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;return N}function vc(){var N;return t.substr(W,2)===ce?(N=ce,W+=2):(N=r,dt===0&&wt(ue)),N===r&&(t.charCodeAt(W)===124?(N=Ie,W++):(N=r,dt===0&&wt(he))),N}function Dc(){var N,V,re,ge,Ye,At;if(N=W,V=yp(),V!==r)if(t.charCodeAt(W)===61?(re=De,W++):(re=r,dt===0&&wt(Ee)),re!==r)if(ge=HA(),ge!==r){for(Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();Ye!==r?(bt=N,V=g(V,ge),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r;else W=N,N=r;if(N===r)if(N=W,V=yp(),V!==r)if(t.charCodeAt(W)===61?(re=De,W++):(re=r,dt===0&&wt(Ee)),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=me(V),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r;return N}function Bu(){var N,V,re,ge,Ye,At,hr,Ir,Rn,ai,ns;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(t.charCodeAt(W)===40?(re=Ce,W++):(re=r,dt===0&&wt(fe)),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=Uo(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();if(At!==r)if(t.charCodeAt(W)===41?(hr=ie,W++):(hr=r,dt===0&&wt(Z)),hr!==r){for(Ir=[],Rn=xt();Rn!==r;)Ir.push(Rn),Rn=xt();if(Ir!==r){for(Rn=[],ai=On();ai!==r;)Rn.push(ai),ai=On();if(Rn!==r){for(ai=[],ns=xt();ns!==r;)ai.push(ns),ns=xt();ai!==r?(bt=N,V=Pe(Ye,Rn),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;if(N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r)if(t.charCodeAt(W)===123?(re=Re,W++):(re=r,dt===0&&wt(ht)),re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r)if(Ye=Uo(),Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();if(At!==r)if(t.charCodeAt(W)===125?(hr=q,W++):(hr=r,dt===0&&wt(nt)),hr!==r){for(Ir=[],Rn=xt();Rn!==r;)Ir.push(Rn),Rn=xt();if(Ir!==r){for(Rn=[],ai=On();ai!==r;)Rn.push(ai),ai=On();if(Rn!==r){for(ai=[],ns=xt();ns!==r;)ai.push(ns),ns=xt();ai!==r?(bt=N,V=Ne(Ye,Rn),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r}else W=N,N=r;else W=N,N=r;if(N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r){for(re=[],ge=Dc();ge!==r;)re.push(ge),ge=Dc();if(re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();if(ge!==r){if(Ye=[],At=Pc(),At!==r)for(;At!==r;)Ye.push(At),At=Pc();else Ye=r;if(Ye!==r){for(At=[],hr=xt();hr!==r;)At.push(hr),hr=xt();At!==r?(bt=N,V=Te(re,Ye),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}else W=N,N=r}else W=N,N=r;if(N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r){if(re=[],ge=Dc(),ge!==r)for(;ge!==r;)re.push(ge),ge=Dc();else re=r;if(re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=ke(re),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r}}}return N}function gs(){var N,V,re,ge,Ye;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r){if(re=[],ge=Ci(),ge!==r)for(;ge!==r;)re.push(ge),ge=Ci();else re=r;if(re!==r){for(ge=[],Ye=xt();Ye!==r;)ge.push(Ye),Ye=xt();ge!==r?(bt=N,V=Ve(re),N=V):(W=N,N=r)}else W=N,N=r}else W=N,N=r;return N}function Pc(){var N,V,re;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();if(V!==r?(re=On(),re!==r?(bt=N,V=be(re),N=V):(W=N,N=r)):(W=N,N=r),N===r){for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();V!==r?(re=Ci(),re!==r?(bt=N,V=be(re),N=V):(W=N,N=r)):(W=N,N=r)}return N}function On(){var N,V,re,ge,Ye;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();return V!==r?(tt.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(He)),re===r&&(re=null),re!==r?(ge=ji(),ge!==r?(Ye=Ci(),Ye!==r?(bt=N,V=b(re,ge,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function ji(){var N;return t.substr(W,2)===I?(N=I,W+=2):(N=r,dt===0&&wt(S)),N===r&&(t.substr(W,2)===y?(N=y,W+=2):(N=r,dt===0&&wt(R)),N===r&&(t.charCodeAt(W)===62?(N=z,W++):(N=r,dt===0&&wt(X)),N===r&&(t.substr(W,3)===$?(N=$,W+=3):(N=r,dt===0&&wt(se)),N===r&&(t.substr(W,2)===xe?(N=xe,W+=2):(N=r,dt===0&&wt(Fe)),N===r&&(t.charCodeAt(W)===60?(N=lt,W++):(N=r,dt===0&&wt(Et))))))),N}function Ci(){var N,V,re;for(N=W,V=[],re=xt();re!==r;)V.push(re),re=xt();return V!==r?(re=HA(),re!==r?(bt=N,V=be(re),N=V):(W=N,N=r)):(W=N,N=r),N}function HA(){var N,V,re;if(N=W,V=[],re=vu(),re!==r)for(;re!==r;)V.push(re),re=vu();else V=r;return V!==r&&(bt=N,V=qt(V)),N=V,N}function vu(){var N,V;return N=W,V=An(),V!==r&&(bt=N,V=nr(V)),N=V,N===r&&(N=W,V=h0(),V!==r&&(bt=N,V=nr(V)),N=V,N===r&&(N=W,V=g0(),V!==r&&(bt=N,V=nr(V)),N=V,N===r&&(N=W,V=Gi(),V!==r&&(bt=N,V=nr(V)),N=V))),N}function An(){var N,V,re,ge;return N=W,t.substr(W,2)===St?(V=St,W+=2):(V=r,dt===0&&wt(cn)),V!==r?(re=fn(),re!==r?(t.charCodeAt(W)===39?(ge=Pr,W++):(ge=r,dt===0&&wt(yr)),ge!==r?(bt=N,V=Rr(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function h0(){var N,V,re,ge;return N=W,t.charCodeAt(W)===39?(V=Pr,W++):(V=r,dt===0&&wt(yr)),V!==r?(re=Du(),re!==r?(t.charCodeAt(W)===39?(ge=Pr,W++):(ge=r,dt===0&&wt(yr)),ge!==r?(bt=N,V=Rr(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function g0(){var N,V,re,ge;if(N=W,t.substr(W,2)===Xr?(V=Xr,W+=2):(V=r,dt===0&&wt($n)),V!==r&&(bt=N,V=Xs()),N=V,N===r)if(N=W,t.charCodeAt(W)===34?(V=Hi,W++):(V=r,dt===0&&wt(Qs)),V!==r){for(re=[],ge=Ka();ge!==r;)re.push(ge),ge=Ka();re!==r?(t.charCodeAt(W)===34?(ge=Hi,W++):(ge=r,dt===0&&wt(Qs)),ge!==r?(bt=N,V=Zs(re),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;return N}function Gi(){var N,V,re;if(N=W,V=[],re=io(),re!==r)for(;re!==r;)V.push(re),re=io();else V=r;return V!==r&&(bt=N,V=Zs(V)),N=V,N}function Ka(){var N,V;return N=W,V=Kr(),V!==r&&(bt=N,V=xi(V)),N=V,N===r&&(N=W,V=mp(),V!==r&&(bt=N,V=Fs(V)),N=V,N===r&&(N=W,V=jA(),V!==r&&(bt=N,V=$s(V)),N=V,N===r&&(N=W,V=Pu(),V!==r&&(bt=N,V=SA(V)),N=V))),N}function io(){var N,V;return N=W,V=Kr(),V!==r&&(bt=N,V=gu(V)),N=V,N===r&&(N=W,V=mp(),V!==r&&(bt=N,V=op(V)),N=V,N===r&&(N=W,V=jA(),V!==r&&(bt=N,V=ap(V)),N=V,N===r&&(N=W,V=kd(),V!==r&&(bt=N,V=Rs(V)),N=V,N===r&&(N=W,V=dp(),V!==r&&(bt=N,V=SA(V)),N=V)))),N}function Du(){var N,V,re;for(N=W,V=[],Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs));re!==r;)V.push(re),Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs));return V!==r&&(bt=N,V=Ts(V)),N=V,N}function Pu(){var N,V,re;if(N=W,V=[],re=Va(),re===r&&(pc.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hc))),re!==r)for(;re!==r;)V.push(re),re=Va(),re===r&&(pc.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hc)));else V=r;return V!==r&&(bt=N,V=Ts(V)),N=V,N}function Va(){var N,V,re;return N=W,t.substr(W,2)===gc?(V=gc,W+=2):(V=r,dt===0&&wt(bA)),V!==r&&(bt=N,V=xA()),N=V,N===r&&(N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(kA.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(pr)),re!==r?(bt=N,V=Me(re),N=V):(W=N,N=r)):(W=N,N=r)),N}function fn(){var N,V,re;for(N=W,V=[],re=so(),re===r&&(Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs)));re!==r;)V.push(re),re=so(),re===r&&(Ln.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(hs)));return V!==r&&(bt=N,V=Ts(V)),N=V,N}function so(){var N,V,re;return N=W,t.substr(W,2)===ia?(V=ia,W+=2):(V=r,dt===0&&wt(dc)),V!==r&&(bt=N,V=Er()),N=V,N===r&&(N=W,t.substr(W,2)===du?(V=du,W+=2):(V=r,dt===0&&wt(QA)),V!==r&&(bt=N,V=FA()),N=V,N===r&&(N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(mc.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(yc)),re!==r?(bt=N,V=Il(),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===we?(V=we,W+=2):(V=r,dt===0&&wt(Tt)),V!==r&&(bt=N,V=wl()),N=V,N===r&&(N=W,t.substr(W,2)===Bi?(V=Bi,W+=2):(V=r,dt===0&&wt(Ns)),V!==r&&(bt=N,V=Ft()),N=V,N===r&&(N=W,t.substr(W,2)===Bn?(V=Bn,W+=2):(V=r,dt===0&&wt(No)),V!==r&&(bt=N,V=ki()),N=V,N===r&&(N=W,t.substr(W,2)===vi?(V=vi,W+=2):(V=r,dt===0&&wt(sa)),V!==r&&(bt=N,V=un()),N=V,N===r&&(N=W,t.substr(W,2)===qn?(V=qn,W+=2):(V=r,dt===0&&wt(Ec)),V!==r&&(bt=N,V=lp()),N=V,N===r&&(N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(oa.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(aa)),re!==r?(bt=N,V=Me(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=Sc()))))))))),N}function Sc(){var N,V,re,ge,Ye,At,hr,Ir,Rn,ai,ns,GA;return N=W,t.charCodeAt(W)===92?(V=Ro,W++):(V=r,dt===0&&wt(To)),V!==r?(re=_o(),re!==r?(bt=N,V=la(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Ze?(V=Ze,W+=2):(V=r,dt===0&&wt(ca)),V!==r?(re=W,ge=W,Ye=_o(),Ye!==r?(At=ds(),At!==r?(Ye=[Ye,At],ge=Ye):(W=ge,ge=r)):(W=ge,ge=r),ge===r&&(ge=_o()),ge!==r?re=t.substring(re,W):re=ge,re!==r?(bt=N,V=la(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===mu?(V=mu,W+=2):(V=r,dt===0&&wt(Bl)),V!==r?(re=W,ge=W,Ye=ds(),Ye!==r?(At=ds(),At!==r?(hr=ds(),hr!==r?(Ir=ds(),Ir!==r?(Ye=[Ye,At,hr,Ir],ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r),ge!==r?re=t.substring(re,W):re=ge,re!==r?(bt=N,V=la(re),N=V):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===dn?(V=dn,W+=2):(V=r,dt===0&&wt(Lo)),V!==r?(re=W,ge=W,Ye=ds(),Ye!==r?(At=ds(),At!==r?(hr=ds(),hr!==r?(Ir=ds(),Ir!==r?(Rn=ds(),Rn!==r?(ai=ds(),ai!==r?(ns=ds(),ns!==r?(GA=ds(),GA!==r?(Ye=[Ye,At,hr,Ir,Rn,ai,ns,GA],ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r)):(W=ge,ge=r),ge!==r?re=t.substring(re,W):re=ge,re!==r?(bt=N,V=RA(re),N=V):(W=N,N=r)):(W=N,N=r)))),N}function _o(){var N;return TA.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(Oo)),N}function ds(){var N;return qa.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(Ot)),N}function dp(){var N,V,re,ge,Ye;if(N=W,V=[],re=W,t.charCodeAt(W)===92?(ge=Ro,W++):(ge=r,dt===0&&wt(To)),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r),re===r&&(re=W,t.substr(W,2)===Mo?(ge=Mo,W+=2):(ge=r,dt===0&&wt(ua)),ge!==r&&(bt=re,ge=qi()),re=ge,re===r&&(re=W,ge=W,dt++,Ye=Qd(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r))),re!==r)for(;re!==r;)V.push(re),re=W,t.charCodeAt(W)===92?(ge=Ro,W++):(ge=r,dt===0&&wt(To)),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r),re===r&&(re=W,t.substr(W,2)===Mo?(ge=Mo,W+=2):(ge=r,dt===0&&wt(ua)),ge!==r&&(bt=re,ge=qi()),re=ge,re===r&&(re=W,ge=W,dt++,Ye=Qd(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r)));else V=r;return V!==r&&(bt=N,V=Ts(V)),N=V,N}function qA(){var N,V,re,ge,Ye,At;if(N=W,t.charCodeAt(W)===45?(V=vl,W++):(V=r,dt===0&&wt(Cc)),V===r&&(t.charCodeAt(W)===43?(V=Dl,W++):(V=r,dt===0&&wt(Aa))),V===r&&(V=null),V!==r){if(re=[],tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He)),ge!==r)for(;ge!==r;)re.push(ge),tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He));else re=r;if(re!==r)if(t.charCodeAt(W)===46?(ge=Di,W++):(ge=r,dt===0&&wt(rs)),ge!==r){if(Ye=[],tt.test(t.charAt(W))?(At=t.charAt(W),W++):(At=r,dt===0&&wt(He)),At!==r)for(;At!==r;)Ye.push(At),tt.test(t.charAt(W))?(At=t.charAt(W),W++):(At=r,dt===0&&wt(He));else Ye=r;Ye!==r?(bt=N,V=ja(V,re,Ye),N=V):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;if(N===r){if(N=W,t.charCodeAt(W)===45?(V=vl,W++):(V=r,dt===0&&wt(Cc)),V===r&&(t.charCodeAt(W)===43?(V=Dl,W++):(V=r,dt===0&&wt(Aa))),V===r&&(V=null),V!==r){if(re=[],tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He)),ge!==r)for(;ge!==r;)re.push(ge),tt.test(t.charAt(W))?(ge=t.charAt(W),W++):(ge=r,dt===0&&wt(He));else re=r;re!==r?(bt=N,V=yu(V,re),N=V):(W=N,N=r)}else W=N,N=r;if(N===r&&(N=W,V=jA(),V!==r&&(bt=N,V=Pl(V)),N=V,N===r&&(N=W,V=bl(),V!==r&&(bt=N,V=pi(V)),N=V,N===r)))if(N=W,t.charCodeAt(W)===40?(V=Ce,W++):(V=r,dt===0&&wt(fe)),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();if(re!==r)if(ge=Ls(),ge!==r){for(Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();Ye!==r?(t.charCodeAt(W)===41?(At=ie,W++):(At=r,dt===0&&wt(Z)),At!==r?(bt=N,V=Dn(ge),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r}return N}function Su(){var N,V,re,ge,Ye,At,hr,Ir;if(N=W,V=qA(),V!==r){for(re=[],ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===42?(At=Sl,W++):(At=r,dt===0&&wt(Je)),At===r&&(t.charCodeAt(W)===47?(At=st,W++):(At=r,dt===0&&wt(vt))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=qA(),Ir!==r?(bt=ge,Ye=ar(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r;for(;ge!==r;){for(re.push(ge),ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===42?(At=Sl,W++):(At=r,dt===0&&wt(Je)),At===r&&(t.charCodeAt(W)===47?(At=st,W++):(At=r,dt===0&&wt(vt))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=qA(),Ir!==r?(bt=ge,Ye=ar(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r}re!==r?(bt=N,V=ee(V,re),N=V):(W=N,N=r)}else W=N,N=r;return N}function Ls(){var N,V,re,ge,Ye,At,hr,Ir;if(N=W,V=Su(),V!==r){for(re=[],ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===43?(At=Dl,W++):(At=r,dt===0&&wt(Aa)),At===r&&(t.charCodeAt(W)===45?(At=vl,W++):(At=r,dt===0&&wt(Cc))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=Su(),Ir!==r?(bt=ge,Ye=ye(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r;for(;ge!==r;){for(re.push(ge),ge=W,Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();if(Ye!==r)if(t.charCodeAt(W)===43?(At=Dl,W++):(At=r,dt===0&&wt(Aa)),At===r&&(t.charCodeAt(W)===45?(At=vl,W++):(At=r,dt===0&&wt(Cc))),At!==r){for(hr=[],Ir=xt();Ir!==r;)hr.push(Ir),Ir=xt();hr!==r?(Ir=Su(),Ir!==r?(bt=ge,Ye=ye(V,At,Ir),ge=Ye):(W=ge,ge=r)):(W=ge,ge=r)}else W=ge,ge=r;else W=ge,ge=r}re!==r?(bt=N,V=ee(V,re),N=V):(W=N,N=r)}else W=N,N=r;return N}function Kr(){var N,V,re,ge,Ye,At;if(N=W,t.substr(W,3)===Le?(V=Le,W+=3):(V=r,dt===0&&wt(gt)),V!==r){for(re=[],ge=xt();ge!==r;)re.push(ge),ge=xt();if(re!==r)if(ge=Ls(),ge!==r){for(Ye=[],At=xt();At!==r;)Ye.push(At),At=xt();Ye!==r?(t.substr(W,2)===mt?(At=mt,W+=2):(At=r,dt===0&&wt(Dt)),At!==r?(bt=N,V=er(ge),N=V):(W=N,N=r)):(W=N,N=r)}else W=N,N=r;else W=N,N=r}else W=N,N=r;return N}function mp(){var N,V,re,ge;return N=W,t.substr(W,2)===sn?(V=sn,W+=2):(V=r,dt===0&&wt(ei)),V!==r?(re=Uo(),re!==r?(t.charCodeAt(W)===41?(ge=ie,W++):(ge=r,dt===0&&wt(Z)),ge!==r?(bt=N,V=Qi(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N}function jA(){var N,V,re,ge,Ye,At;return N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,2)===wd?(ge=wd,W+=2):(ge=r,dt===0&&wt(BI)),ge!==r?(Ye=gs(),Ye!==r?(t.charCodeAt(W)===125?(At=q,W++):(At=r,dt===0&&wt(nt)),At!==r?(bt=N,V=eo(re,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,3)===Bd?(ge=Bd,W+=3):(ge=r,dt===0&&wt(cp)),ge!==r?(bt=N,V=vI(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,2)===to?(ge=to,W+=2):(ge=r,dt===0&&wt(up)),ge!==r?(Ye=gs(),Ye!==r?(t.charCodeAt(W)===125?(At=q,W++):(At=r,dt===0&&wt(nt)),At!==r?(bt=N,V=Ap(re,Ye),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.substr(W,3)===Ic?(ge=Ic,W+=3):(ge=r,dt===0&&wt(fp)),ge!==r?(bt=N,V=s0(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.substr(W,2)===Pn?(V=Pn,W+=2):(V=r,dt===0&&wt(fa)),V!==r?(re=bl(),re!==r?(t.charCodeAt(W)===125?(ge=q,W++):(ge=r,dt===0&&wt(nt)),ge!==r?(bt=N,V=o0(re),N=V):(W=N,N=r)):(W=N,N=r)):(W=N,N=r),N===r&&(N=W,t.charCodeAt(W)===36?(V=a0,W++):(V=r,dt===0&&wt(vd)),V!==r?(re=bl(),re!==r?(bt=N,V=o0(re),N=V):(W=N,N=r)):(W=N,N=r)))))),N}function kd(){var N,V,re;return N=W,V=d0(),V!==r?(bt=W,re=Eu(V),re?re=void 0:re=r,re!==r?(bt=N,V=ro(V),N=V):(W=N,N=r)):(W=N,N=r),N}function d0(){var N,V,re,ge,Ye;if(N=W,V=[],re=W,ge=W,dt++,Ye=Ep(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r),re!==r)for(;re!==r;)V.push(re),re=W,ge=W,dt++,Ye=Ep(),dt--,Ye===r?ge=void 0:(W=ge,ge=r),ge!==r?(t.length>W?(Ye=t.charAt(W),W++):(Ye=r,dt===0&&wt(vn)),Ye!==r?(bt=re,ge=Me(Ye),re=ge):(W=re,re=r)):(W=re,re=r);else V=r;return V!==r&&(bt=N,V=Ts(V)),N=V,N}function yp(){var N,V,re;if(N=W,V=[],Ga.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(pp)),re!==r)for(;re!==r;)V.push(re),Ga.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(pp));else V=r;return V!==r&&(bt=N,V=l0()),N=V,N}function bl(){var N,V,re;if(N=W,V=[],Wa.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(Ya)),re!==r)for(;re!==r;)V.push(re),Wa.test(t.charAt(W))?(re=t.charAt(W),W++):(re=r,dt===0&&wt(Ya));else V=r;return V!==r&&(bt=N,V=l0()),N=V,N}function Qd(){var N;return Dd.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(NA)),N}function Ep(){var N;return Pd.test(t.charAt(W))?(N=t.charAt(W),W++):(N=r,dt===0&&wt(Sd)),N}function xt(){var N,V;if(N=[],LA.test(t.charAt(W))?(V=t.charAt(W),W++):(V=r,dt===0&&wt(OA)),V!==r)for(;V!==r;)N.push(V),LA.test(t.charAt(W))?(V=t.charAt(W),W++):(V=r,dt===0&&wt(OA));else N=r;return N}if(wc=a(),wc!==r&&W===t.length)return wc;throw wc!==r&&W!1}){try{return(0,OY.parse)(t,e)}catch(r){throw r.location&&(r.message=r.message.replace(/(\.)?$/,` (line ${r.location.start.line}, column ${r.location.start.column})$1`)),r}}function dm(t,{endSemicolon:e=!1}={}){return t.map(({command:r,type:o},a)=>`${AP(r)}${o===";"?a!==t.length-1||e?";":"":" &"}`).join(" ")}function AP(t){return`${mm(t.chain)}${t.then?` ${UT(t.then)}`:""}`}function UT(t){return`${t.type} ${AP(t.line)}`}function mm(t){return`${HT(t)}${t.then?` ${_T(t.then)}`:""}`}function _T(t){return`${t.type} ${mm(t.chain)}`}function HT(t){switch(t.type){case"command":return`${t.envs.length>0?`${t.envs.map(e=>cP(e)).join(" ")} `:""}${t.args.map(e=>qT(e)).join(" ")}`;case"subshell":return`(${dm(t.subshell)})${t.args.length>0?` ${t.args.map(e=>fw(e)).join(" ")}`:""}`;case"group":return`{ ${dm(t.group,{endSemicolon:!0})} }${t.args.length>0?` ${t.args.map(e=>fw(e)).join(" ")}`:""}`;case"envs":return t.envs.map(e=>cP(e)).join(" ");default:throw new Error(`Unsupported command type: "${t.type}"`)}}function cP(t){return`${t.name}=${t.args[0]?J0(t.args[0]):""}`}function qT(t){switch(t.type){case"redirection":return fw(t);case"argument":return J0(t);default:throw new Error(`Unsupported argument type: "${t.type}"`)}}function fw(t){return`${t.subtype} ${t.args.map(e=>J0(e)).join(" ")}`}function J0(t){return t.segments.map(e=>jT(e)).join("")}function jT(t){let e=(o,a)=>a?`"${o}"`:o,r=o=>o===""?"''":o.match(/[()}<>$|&;"'\n\t ]/)?o.match(/['\t\p{C}]/u)?o.match(/'/)?`"${o.replace(/["$\t\p{C}]/u,$8e)}"`:`$'${o.replace(/[\t\p{C}]/u,UY)}'`:`'${o}'`:o;switch(t.type){case"text":return r(t.text);case"glob":return t.pattern;case"shell":return e(`$(${dm(t.shell)})`,t.quoted);case"variable":return e(typeof t.defaultValue>"u"?typeof t.alternativeValue>"u"?`\${${t.name}}`:t.alternativeValue.length===0?`\${${t.name}:+}`:`\${${t.name}:+${t.alternativeValue.map(o=>J0(o)).join(" ")}}`:t.defaultValue.length===0?`\${${t.name}:-}`:`\${${t.name}:-${t.defaultValue.map(o=>J0(o)).join(" ")}}`,t.quoted);case"arithmetic":return`$(( ${fP(t.arithmetic)} ))`;default:throw new Error(`Unsupported argument segment type: "${t.type}"`)}}function fP(t){let e=a=>{switch(a){case"addition":return"+";case"subtraction":return"-";case"multiplication":return"*";case"division":return"/";default:throw new Error(`Can't extract operator from arithmetic expression of type "${a}"`)}},r=(a,n)=>n?`( ${a} )`:a,o=a=>r(fP(a),!["number","variable"].includes(a.type));switch(t.type){case"number":return String(t.value);case"variable":return t.name;default:return`${o(t.left)} ${e(t.type)} ${o(t.right)}`}}var OY,MY,Z8e,UY,$8e,_Y=It(()=>{OY=et(LY());MY=new Map([["\f","\\f"],[` +`,"\\n"],["\r","\\r"],[" ","\\t"],["\v","\\v"],["\0","\\0"]]),Z8e=new Map([["\\","\\\\"],["$","\\$"],['"','\\"'],...Array.from(MY,([t,e])=>[t,`"$'${e}'"`])]),UY=t=>MY.get(t)??`\\x${t.charCodeAt(0).toString(16).padStart(2,"0")}`,$8e=t=>Z8e.get(t)??`"$'${UY(t)}'"`});var qY=_((dbt,HY)=>{"use strict";function e_e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function z0(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,z0)}e_e(z0,Error);z0.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;wce&&(ce=J,ue=[]),ue.push(He))}function nt(He,b){return new z0(He,null,null,b)}function Ne(He,b,I){return new z0(z0.buildMessage(He,b),He,b,I)}function Te(){var He,b,I,S;return He=J,b=ke(),b!==r?(t.charCodeAt(J)===47?(I=n,J++):(I=r,Ie===0&&q(u)),I!==r?(S=ke(),S!==r?(te=He,b=A(b,S),He=b):(J=He,He=r)):(J=He,He=r)):(J=He,He=r),He===r&&(He=J,b=ke(),b!==r&&(te=He,b=p(b)),He=b),He}function ke(){var He,b,I,S;return He=J,b=Ve(),b!==r?(t.charCodeAt(J)===64?(I=h,J++):(I=r,Ie===0&&q(E)),I!==r?(S=tt(),S!==r?(te=He,b=w(b,S),He=b):(J=He,He=r)):(J=He,He=r)):(J=He,He=r),He===r&&(He=J,b=Ve(),b!==r&&(te=He,b=D(b)),He=b),He}function Ve(){var He,b,I,S,y;return He=J,t.charCodeAt(J)===64?(b=h,J++):(b=r,Ie===0&&q(E)),b!==r?(I=be(),I!==r?(t.charCodeAt(J)===47?(S=n,J++):(S=r,Ie===0&&q(u)),S!==r?(y=be(),y!==r?(te=He,b=x(),He=b):(J=He,He=r)):(J=He,He=r)):(J=He,He=r)):(J=He,He=r),He===r&&(He=J,b=be(),b!==r&&(te=He,b=x()),He=b),He}function be(){var He,b,I;if(He=J,b=[],C.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(T)),I!==r)for(;I!==r;)b.push(I),C.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(T));else b=r;return b!==r&&(te=He,b=x()),He=b,He}function tt(){var He,b,I;if(He=J,b=[],L.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(U)),I!==r)for(;I!==r;)b.push(I),L.test(t.charAt(J))?(I=t.charAt(J),J++):(I=r,Ie===0&&q(U));else b=r;return b!==r&&(te=He,b=x()),He=b,He}if(he=a(),he!==r&&J===t.length)return he;throw he!==r&&J{jY=et(qY())});var Z0=_((ybt,X0)=>{"use strict";function WY(t){return typeof t>"u"||t===null}function r_e(t){return typeof t=="object"&&t!==null}function n_e(t){return Array.isArray(t)?t:WY(t)?[]:[t]}function i_e(t,e){var r,o,a,n;if(e)for(n=Object.keys(e),r=0,o=n.length;r{"use strict";function pw(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}pw.prototype=Object.create(Error.prototype);pw.prototype.constructor=pw;pw.prototype.toString=function(e){var r=this.name+": ";return r+=this.reason||"(unknown reason)",!e&&this.mark&&(r+=" "+this.mark.toString()),r};YY.exports=pw});var JY=_((Cbt,VY)=>{"use strict";var KY=Z0();function GT(t,e,r,o,a){this.name=t,this.buffer=e,this.position=r,this.line=o,this.column=a}GT.prototype.getSnippet=function(e,r){var o,a,n,u,A;if(!this.buffer)return null;for(e=e||4,r=r||75,o="",a=this.position;a>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(a-1))===-1;)if(a-=1,this.position-a>r/2-1){o=" ... ",a+=5;break}for(n="",u=this.position;ur/2-1){n=" ... ",u-=5;break}return A=this.buffer.slice(a,u),KY.repeat(" ",e)+o+A+n+` +`+KY.repeat(" ",e+this.position-a+o.length)+"^"};GT.prototype.toString=function(e){var r,o="";return this.name&&(o+='in "'+this.name+'" '),o+="at line "+(this.line+1)+", column "+(this.column+1),e||(r=this.getSnippet(),r&&(o+=`: +`+r)),o};VY.exports=GT});var as=_((Ibt,XY)=>{"use strict";var zY=ym(),a_e=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],l_e=["scalar","sequence","mapping"];function c_e(t){var e={};return t!==null&&Object.keys(t).forEach(function(r){t[r].forEach(function(o){e[String(o)]=r})}),e}function u_e(t,e){if(e=e||{},Object.keys(e).forEach(function(r){if(a_e.indexOf(r)===-1)throw new zY('Unknown option "'+r+'" is met in definition of "'+t+'" YAML type.')}),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(r){return r},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=c_e(e.styleAliases||null),l_e.indexOf(this.kind)===-1)throw new zY('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}XY.exports=u_e});var $0=_((wbt,$Y)=>{"use strict";var ZY=Z0(),gP=ym(),A_e=as();function WT(t,e,r){var o=[];return t.include.forEach(function(a){r=WT(a,e,r)}),t[e].forEach(function(a){r.forEach(function(n,u){n.tag===a.tag&&n.kind===a.kind&&o.push(u)}),r.push(a)}),r.filter(function(a,n){return o.indexOf(n)===-1})}function f_e(){var t={scalar:{},sequence:{},mapping:{},fallback:{}},e,r;function o(a){t[a.kind][a.tag]=t.fallback[a.tag]=a}for(e=0,r=arguments.length;e{"use strict";var p_e=as();eK.exports=new p_e("tag:yaml.org,2002:str",{kind:"scalar",construct:function(t){return t!==null?t:""}})});var nK=_((vbt,rK)=>{"use strict";var h_e=as();rK.exports=new h_e("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(t){return t!==null?t:[]}})});var sK=_((Dbt,iK)=>{"use strict";var g_e=as();iK.exports=new g_e("tag:yaml.org,2002:map",{kind:"mapping",construct:function(t){return t!==null?t:{}}})});var dP=_((Pbt,oK)=>{"use strict";var d_e=$0();oK.exports=new d_e({explicit:[tK(),nK(),sK()]})});var lK=_((Sbt,aK)=>{"use strict";var m_e=as();function y_e(t){if(t===null)return!0;var e=t.length;return e===1&&t==="~"||e===4&&(t==="null"||t==="Null"||t==="NULL")}function E_e(){return null}function C_e(t){return t===null}aK.exports=new m_e("tag:yaml.org,2002:null",{kind:"scalar",resolve:y_e,construct:E_e,predicate:C_e,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var uK=_((bbt,cK)=>{"use strict";var I_e=as();function w_e(t){if(t===null)return!1;var e=t.length;return e===4&&(t==="true"||t==="True"||t==="TRUE")||e===5&&(t==="false"||t==="False"||t==="FALSE")}function B_e(t){return t==="true"||t==="True"||t==="TRUE"}function v_e(t){return Object.prototype.toString.call(t)==="[object Boolean]"}cK.exports=new I_e("tag:yaml.org,2002:bool",{kind:"scalar",resolve:w_e,construct:B_e,predicate:v_e,represent:{lowercase:function(t){return t?"true":"false"},uppercase:function(t){return t?"TRUE":"FALSE"},camelcase:function(t){return t?"True":"False"}},defaultStyle:"lowercase"})});var fK=_((xbt,AK)=>{"use strict";var D_e=Z0(),P_e=as();function S_e(t){return 48<=t&&t<=57||65<=t&&t<=70||97<=t&&t<=102}function b_e(t){return 48<=t&&t<=55}function x_e(t){return 48<=t&&t<=57}function k_e(t){if(t===null)return!1;var e=t.length,r=0,o=!1,a;if(!e)return!1;if(a=t[r],(a==="-"||a==="+")&&(a=t[++r]),a==="0"){if(r+1===e)return!0;if(a=t[++r],a==="b"){for(r++;r=0?"0b"+t.toString(2):"-0b"+t.toString(2).slice(1)},octal:function(t){return t>=0?"0"+t.toString(8):"-0"+t.toString(8).slice(1)},decimal:function(t){return t.toString(10)},hexadecimal:function(t){return t>=0?"0x"+t.toString(16).toUpperCase():"-0x"+t.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var gK=_((kbt,hK)=>{"use strict";var pK=Z0(),R_e=as(),T_e=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function N_e(t){return!(t===null||!T_e.test(t)||t[t.length-1]==="_")}function L_e(t){var e,r,o,a;return e=t.replace(/_/g,"").toLowerCase(),r=e[0]==="-"?-1:1,a=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?r===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(n){a.unshift(parseFloat(n,10))}),e=0,o=1,a.forEach(function(n){e+=n*o,o*=60}),r*e):r*parseFloat(e,10)}var O_e=/^[-+]?[0-9]+e/;function M_e(t,e){var r;if(isNaN(t))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===t)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===t)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(pK.isNegativeZero(t))return"-0.0";return r=t.toString(10),O_e.test(r)?r.replace("e",".e"):r}function U_e(t){return Object.prototype.toString.call(t)==="[object Number]"&&(t%1!==0||pK.isNegativeZero(t))}hK.exports=new R_e("tag:yaml.org,2002:float",{kind:"scalar",resolve:N_e,construct:L_e,predicate:U_e,represent:M_e,defaultStyle:"lowercase"})});var YT=_((Qbt,dK)=>{"use strict";var __e=$0();dK.exports=new __e({include:[dP()],implicit:[lK(),uK(),fK(),gK()]})});var KT=_((Fbt,mK)=>{"use strict";var H_e=$0();mK.exports=new H_e({include:[YT()]})});var IK=_((Rbt,CK)=>{"use strict";var q_e=as(),yK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),EK=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function j_e(t){return t===null?!1:yK.exec(t)!==null||EK.exec(t)!==null}function G_e(t){var e,r,o,a,n,u,A,p=0,h=null,E,w,D;if(e=yK.exec(t),e===null&&(e=EK.exec(t)),e===null)throw new Error("Date resolve error");if(r=+e[1],o=+e[2]-1,a=+e[3],!e[4])return new Date(Date.UTC(r,o,a));if(n=+e[4],u=+e[5],A=+e[6],e[7]){for(p=e[7].slice(0,3);p.length<3;)p+="0";p=+p}return e[9]&&(E=+e[10],w=+(e[11]||0),h=(E*60+w)*6e4,e[9]==="-"&&(h=-h)),D=new Date(Date.UTC(r,o,a,n,u,A,p)),h&&D.setTime(D.getTime()-h),D}function W_e(t){return t.toISOString()}CK.exports=new q_e("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:j_e,construct:G_e,instanceOf:Date,represent:W_e})});var BK=_((Tbt,wK)=>{"use strict";var Y_e=as();function K_e(t){return t==="<<"||t===null}wK.exports=new Y_e("tag:yaml.org,2002:merge",{kind:"scalar",resolve:K_e})});var PK=_((Nbt,DK)=>{"use strict";var eg;try{vK=ve,eg=vK("buffer").Buffer}catch{}var vK,V_e=as(),VT=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function J_e(t){if(t===null)return!1;var e,r,o=0,a=t.length,n=VT;for(r=0;r64)){if(e<0)return!1;o+=6}return o%8===0}function z_e(t){var e,r,o=t.replace(/[\r\n=]/g,""),a=o.length,n=VT,u=0,A=[];for(e=0;e>16&255),A.push(u>>8&255),A.push(u&255)),u=u<<6|n.indexOf(o.charAt(e));return r=a%4*6,r===0?(A.push(u>>16&255),A.push(u>>8&255),A.push(u&255)):r===18?(A.push(u>>10&255),A.push(u>>2&255)):r===12&&A.push(u>>4&255),eg?eg.from?eg.from(A):new eg(A):A}function X_e(t){var e="",r=0,o,a,n=t.length,u=VT;for(o=0;o>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]),r=(r<<8)+t[o];return a=n%3,a===0?(e+=u[r>>18&63],e+=u[r>>12&63],e+=u[r>>6&63],e+=u[r&63]):a===2?(e+=u[r>>10&63],e+=u[r>>4&63],e+=u[r<<2&63],e+=u[64]):a===1&&(e+=u[r>>2&63],e+=u[r<<4&63],e+=u[64],e+=u[64]),e}function Z_e(t){return eg&&eg.isBuffer(t)}DK.exports=new V_e("tag:yaml.org,2002:binary",{kind:"scalar",resolve:J_e,construct:z_e,predicate:Z_e,represent:X_e})});var bK=_((Obt,SK)=>{"use strict";var $_e=as(),eHe=Object.prototype.hasOwnProperty,tHe=Object.prototype.toString;function rHe(t){if(t===null)return!0;var e=[],r,o,a,n,u,A=t;for(r=0,o=A.length;r{"use strict";var iHe=as(),sHe=Object.prototype.toString;function oHe(t){if(t===null)return!0;var e,r,o,a,n,u=t;for(n=new Array(u.length),e=0,r=u.length;e{"use strict";var lHe=as(),cHe=Object.prototype.hasOwnProperty;function uHe(t){if(t===null)return!0;var e,r=t;for(e in r)if(cHe.call(r,e)&&r[e]!==null)return!1;return!0}function AHe(t){return t!==null?t:{}}QK.exports=new lHe("tag:yaml.org,2002:set",{kind:"mapping",resolve:uHe,construct:AHe})});var Cm=_((_bt,RK)=>{"use strict";var fHe=$0();RK.exports=new fHe({include:[KT()],implicit:[IK(),BK()],explicit:[PK(),bK(),kK(),FK()]})});var NK=_((Hbt,TK)=>{"use strict";var pHe=as();function hHe(){return!0}function gHe(){}function dHe(){return""}function mHe(t){return typeof t>"u"}TK.exports=new pHe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:hHe,construct:gHe,predicate:mHe,represent:dHe})});var OK=_((qbt,LK)=>{"use strict";var yHe=as();function EHe(t){if(t===null||t.length===0)return!1;var e=t,r=/\/([gim]*)$/.exec(t),o="";return!(e[0]==="/"&&(r&&(o=r[1]),o.length>3||e[e.length-o.length-1]!=="/"))}function CHe(t){var e=t,r=/\/([gim]*)$/.exec(t),o="";return e[0]==="/"&&(r&&(o=r[1]),e=e.slice(1,e.length-o.length-1)),new RegExp(e,o)}function IHe(t){var e="/"+t.source+"/";return t.global&&(e+="g"),t.multiline&&(e+="m"),t.ignoreCase&&(e+="i"),e}function wHe(t){return Object.prototype.toString.call(t)==="[object RegExp]"}LK.exports=new yHe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:EHe,construct:CHe,predicate:wHe,represent:IHe})});var _K=_((jbt,UK)=>{"use strict";var mP;try{MK=ve,mP=MK("esprima")}catch{typeof window<"u"&&(mP=window.esprima)}var MK,BHe=as();function vHe(t){if(t===null)return!1;try{var e="("+t+")",r=mP.parse(e,{range:!0});return!(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function DHe(t){var e="("+t+")",r=mP.parse(e,{range:!0}),o=[],a;if(r.type!=="Program"||r.body.length!==1||r.body[0].type!=="ExpressionStatement"||r.body[0].expression.type!=="ArrowFunctionExpression"&&r.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return r.body[0].expression.params.forEach(function(n){o.push(n.name)}),a=r.body[0].expression.body.range,r.body[0].expression.body.type==="BlockStatement"?new Function(o,e.slice(a[0]+1,a[1]-1)):new Function(o,"return "+e.slice(a[0],a[1]))}function PHe(t){return t.toString()}function SHe(t){return Object.prototype.toString.call(t)==="[object Function]"}UK.exports=new BHe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:vHe,construct:DHe,predicate:SHe,represent:PHe})});var hw=_((Wbt,qK)=>{"use strict";var HK=$0();qK.exports=HK.DEFAULT=new HK({include:[Cm()],explicit:[NK(),OK(),_K()]})});var aV=_((Ybt,gw)=>{"use strict";var mf=Z0(),JK=ym(),bHe=JY(),zK=Cm(),xHe=hw(),Vp=Object.prototype.hasOwnProperty,yP=1,XK=2,ZK=3,EP=4,JT=1,kHe=2,jK=3,QHe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,FHe=/[\x85\u2028\u2029]/,RHe=/[,\[\]\{\}]/,$K=/^(?:!|!!|![a-z\-]+!)$/i,eV=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function GK(t){return Object.prototype.toString.call(t)}function Wu(t){return t===10||t===13}function rg(t){return t===9||t===32}function Da(t){return t===9||t===32||t===10||t===13}function Im(t){return t===44||t===91||t===93||t===123||t===125}function THe(t){var e;return 48<=t&&t<=57?t-48:(e=t|32,97<=e&&e<=102?e-97+10:-1)}function NHe(t){return t===120?2:t===117?4:t===85?8:0}function LHe(t){return 48<=t&&t<=57?t-48:-1}function WK(t){return t===48?"\0":t===97?"\x07":t===98?"\b":t===116||t===9?" ":t===110?` +`:t===118?"\v":t===102?"\f":t===114?"\r":t===101?"\x1B":t===32?" ":t===34?'"':t===47?"/":t===92?"\\":t===78?"\x85":t===95?"\xA0":t===76?"\u2028":t===80?"\u2029":""}function OHe(t){return t<=65535?String.fromCharCode(t):String.fromCharCode((t-65536>>10)+55296,(t-65536&1023)+56320)}var tV=new Array(256),rV=new Array(256);for(tg=0;tg<256;tg++)tV[tg]=WK(tg)?1:0,rV[tg]=WK(tg);var tg;function MHe(t,e){this.input=t,this.filename=e.filename||null,this.schema=e.schema||xHe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=t.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function nV(t,e){return new JK(e,new bHe(t.filename,t.input,t.position,t.line,t.position-t.lineStart))}function Qr(t,e){throw nV(t,e)}function CP(t,e){t.onWarning&&t.onWarning.call(null,nV(t,e))}var YK={YAML:function(e,r,o){var a,n,u;e.version!==null&&Qr(e,"duplication of %YAML directive"),o.length!==1&&Qr(e,"YAML directive accepts exactly one argument"),a=/^([0-9]+)\.([0-9]+)$/.exec(o[0]),a===null&&Qr(e,"ill-formed argument of the YAML directive"),n=parseInt(a[1],10),u=parseInt(a[2],10),n!==1&&Qr(e,"unacceptable YAML version of the document"),e.version=o[0],e.checkLineBreaks=u<2,u!==1&&u!==2&&CP(e,"unsupported YAML version of the document")},TAG:function(e,r,o){var a,n;o.length!==2&&Qr(e,"TAG directive accepts exactly two arguments"),a=o[0],n=o[1],$K.test(a)||Qr(e,"ill-formed tag handle (first argument) of the TAG directive"),Vp.call(e.tagMap,a)&&Qr(e,'there is a previously declared suffix for "'+a+'" tag handle'),eV.test(n)||Qr(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[a]=n}};function Kp(t,e,r,o){var a,n,u,A;if(e1&&(t.result+=mf.repeat(` +`,e-1))}function UHe(t,e,r){var o,a,n,u,A,p,h,E,w=t.kind,D=t.result,x;if(x=t.input.charCodeAt(t.position),Da(x)||Im(x)||x===35||x===38||x===42||x===33||x===124||x===62||x===39||x===34||x===37||x===64||x===96||(x===63||x===45)&&(a=t.input.charCodeAt(t.position+1),Da(a)||r&&Im(a)))return!1;for(t.kind="scalar",t.result="",n=u=t.position,A=!1;x!==0;){if(x===58){if(a=t.input.charCodeAt(t.position+1),Da(a)||r&&Im(a))break}else if(x===35){if(o=t.input.charCodeAt(t.position-1),Da(o))break}else{if(t.position===t.lineStart&&IP(t)||r&&Im(x))break;if(Wu(x))if(p=t.line,h=t.lineStart,E=t.lineIndent,Yi(t,!1,-1),t.lineIndent>=e){A=!0,x=t.input.charCodeAt(t.position);continue}else{t.position=u,t.line=p,t.lineStart=h,t.lineIndent=E;break}}A&&(Kp(t,n,u,!1),XT(t,t.line-p),n=u=t.position,A=!1),rg(x)||(u=t.position+1),x=t.input.charCodeAt(++t.position)}return Kp(t,n,u,!1),t.result?!0:(t.kind=w,t.result=D,!1)}function _He(t,e){var r,o,a;if(r=t.input.charCodeAt(t.position),r!==39)return!1;for(t.kind="scalar",t.result="",t.position++,o=a=t.position;(r=t.input.charCodeAt(t.position))!==0;)if(r===39)if(Kp(t,o,t.position,!0),r=t.input.charCodeAt(++t.position),r===39)o=t.position,t.position++,a=t.position;else return!0;else Wu(r)?(Kp(t,o,a,!0),XT(t,Yi(t,!1,e)),o=a=t.position):t.position===t.lineStart&&IP(t)?Qr(t,"unexpected end of the document within a single quoted scalar"):(t.position++,a=t.position);Qr(t,"unexpected end of the stream within a single quoted scalar")}function HHe(t,e){var r,o,a,n,u,A;if(A=t.input.charCodeAt(t.position),A!==34)return!1;for(t.kind="scalar",t.result="",t.position++,r=o=t.position;(A=t.input.charCodeAt(t.position))!==0;){if(A===34)return Kp(t,r,t.position,!0),t.position++,!0;if(A===92){if(Kp(t,r,t.position,!0),A=t.input.charCodeAt(++t.position),Wu(A))Yi(t,!1,e);else if(A<256&&tV[A])t.result+=rV[A],t.position++;else if((u=NHe(A))>0){for(a=u,n=0;a>0;a--)A=t.input.charCodeAt(++t.position),(u=THe(A))>=0?n=(n<<4)+u:Qr(t,"expected hexadecimal character");t.result+=OHe(n),t.position++}else Qr(t,"unknown escape sequence");r=o=t.position}else Wu(A)?(Kp(t,r,o,!0),XT(t,Yi(t,!1,e)),r=o=t.position):t.position===t.lineStart&&IP(t)?Qr(t,"unexpected end of the document within a double quoted scalar"):(t.position++,o=t.position)}Qr(t,"unexpected end of the stream within a double quoted scalar")}function qHe(t,e){var r=!0,o,a=t.tag,n,u=t.anchor,A,p,h,E,w,D={},x,C,T,L;if(L=t.input.charCodeAt(t.position),L===91)p=93,w=!1,n=[];else if(L===123)p=125,w=!0,n={};else return!1;for(t.anchor!==null&&(t.anchorMap[t.anchor]=n),L=t.input.charCodeAt(++t.position);L!==0;){if(Yi(t,!0,e),L=t.input.charCodeAt(t.position),L===p)return t.position++,t.tag=a,t.anchor=u,t.kind=w?"mapping":"sequence",t.result=n,!0;r||Qr(t,"missed comma between flow collection entries"),C=x=T=null,h=E=!1,L===63&&(A=t.input.charCodeAt(t.position+1),Da(A)&&(h=E=!0,t.position++,Yi(t,!0,e))),o=t.line,Bm(t,e,yP,!1,!0),C=t.tag,x=t.result,Yi(t,!0,e),L=t.input.charCodeAt(t.position),(E||t.line===o)&&L===58&&(h=!0,L=t.input.charCodeAt(++t.position),Yi(t,!0,e),Bm(t,e,yP,!1,!0),T=t.result),w?wm(t,n,D,C,x,T):h?n.push(wm(t,null,D,C,x,T)):n.push(x),Yi(t,!0,e),L=t.input.charCodeAt(t.position),L===44?(r=!0,L=t.input.charCodeAt(++t.position)):r=!1}Qr(t,"unexpected end of the stream within a flow collection")}function jHe(t,e){var r,o,a=JT,n=!1,u=!1,A=e,p=0,h=!1,E,w;if(w=t.input.charCodeAt(t.position),w===124)o=!1;else if(w===62)o=!0;else return!1;for(t.kind="scalar",t.result="";w!==0;)if(w=t.input.charCodeAt(++t.position),w===43||w===45)JT===a?a=w===43?jK:kHe:Qr(t,"repeat of a chomping mode identifier");else if((E=LHe(w))>=0)E===0?Qr(t,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?Qr(t,"repeat of an indentation width identifier"):(A=e+E-1,u=!0);else break;if(rg(w)){do w=t.input.charCodeAt(++t.position);while(rg(w));if(w===35)do w=t.input.charCodeAt(++t.position);while(!Wu(w)&&w!==0)}for(;w!==0;){for(zT(t),t.lineIndent=0,w=t.input.charCodeAt(t.position);(!u||t.lineIndentA&&(A=t.lineIndent),Wu(w)){p++;continue}if(t.lineIndente)&&p!==0)Qr(t,"bad indentation of a sequence entry");else if(t.lineIndente)&&(Bm(t,e,EP,!0,a)&&(C?D=t.result:x=t.result),C||(wm(t,h,E,w,D,x,n,u),w=D=x=null),Yi(t,!0,-1),L=t.input.charCodeAt(t.position)),t.lineIndent>e&&L!==0)Qr(t,"bad indentation of a mapping entry");else if(t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndente?p=1:t.lineIndent===e?p=0:t.lineIndent tag; it should be "scalar", not "'+t.kind+'"'),w=0,D=t.implicitTypes.length;w tag; it should be "'+x.kind+'", not "'+t.kind+'"'),x.resolve(t.result)?(t.result=x.construct(t.result),t.anchor!==null&&(t.anchorMap[t.anchor]=t.result)):Qr(t,"cannot resolve a node with !<"+t.tag+"> explicit tag")):Qr(t,"unknown tag !<"+t.tag+">");return t.listener!==null&&t.listener("close",t),t.tag!==null||t.anchor!==null||E}function VHe(t){var e=t.position,r,o,a,n=!1,u;for(t.version=null,t.checkLineBreaks=t.legacy,t.tagMap={},t.anchorMap={};(u=t.input.charCodeAt(t.position))!==0&&(Yi(t,!0,-1),u=t.input.charCodeAt(t.position),!(t.lineIndent>0||u!==37));){for(n=!0,u=t.input.charCodeAt(++t.position),r=t.position;u!==0&&!Da(u);)u=t.input.charCodeAt(++t.position);for(o=t.input.slice(r,t.position),a=[],o.length<1&&Qr(t,"directive name must not be less than one character in length");u!==0;){for(;rg(u);)u=t.input.charCodeAt(++t.position);if(u===35){do u=t.input.charCodeAt(++t.position);while(u!==0&&!Wu(u));break}if(Wu(u))break;for(r=t.position;u!==0&&!Da(u);)u=t.input.charCodeAt(++t.position);a.push(t.input.slice(r,t.position))}u!==0&&zT(t),Vp.call(YK,o)?YK[o](t,o,a):CP(t,'unknown document directive "'+o+'"')}if(Yi(t,!0,-1),t.lineIndent===0&&t.input.charCodeAt(t.position)===45&&t.input.charCodeAt(t.position+1)===45&&t.input.charCodeAt(t.position+2)===45?(t.position+=3,Yi(t,!0,-1)):n&&Qr(t,"directives end mark is expected"),Bm(t,t.lineIndent-1,EP,!1,!0),Yi(t,!0,-1),t.checkLineBreaks&&FHe.test(t.input.slice(e,t.position))&&CP(t,"non-ASCII line breaks are interpreted as content"),t.documents.push(t.result),t.position===t.lineStart&&IP(t)){t.input.charCodeAt(t.position)===46&&(t.position+=3,Yi(t,!0,-1));return}if(t.position"u"&&(r=e,e=null);var o=iV(t,r);if(typeof e!="function")return o;for(var a=0,n=o.length;a"u"&&(r=e,e=null),sV(t,e,mf.extend({schema:zK},r))}function zHe(t,e){return oV(t,mf.extend({schema:zK},e))}gw.exports.loadAll=sV;gw.exports.load=oV;gw.exports.safeLoadAll=JHe;gw.exports.safeLoad=zHe});var kV=_((Kbt,tN)=>{"use strict";var mw=Z0(),yw=ym(),XHe=hw(),ZHe=Cm(),gV=Object.prototype.toString,dV=Object.prototype.hasOwnProperty,$He=9,dw=10,e6e=13,t6e=32,r6e=33,n6e=34,mV=35,i6e=37,s6e=38,o6e=39,a6e=42,yV=44,l6e=45,EV=58,c6e=61,u6e=62,A6e=63,f6e=64,CV=91,IV=93,p6e=96,wV=123,h6e=124,BV=125,mo={};mo[0]="\\0";mo[7]="\\a";mo[8]="\\b";mo[9]="\\t";mo[10]="\\n";mo[11]="\\v";mo[12]="\\f";mo[13]="\\r";mo[27]="\\e";mo[34]='\\"';mo[92]="\\\\";mo[133]="\\N";mo[160]="\\_";mo[8232]="\\L";mo[8233]="\\P";var g6e=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function d6e(t,e){var r,o,a,n,u,A,p;if(e===null)return{};for(r={},o=Object.keys(e),a=0,n=o.length;a0?t.charCodeAt(n-1):null,D=D&&uV(u,A)}else{for(n=0;no&&t[w+1]!==" ",w=n);else if(!vm(u))return wP;A=n>0?t.charCodeAt(n-1):null,D=D&&uV(u,A)}h=h||E&&n-w-1>o&&t[w+1]!==" "}return!p&&!h?D&&!a(t)?DV:PV:r>9&&vV(t)?wP:h?bV:SV}function w6e(t,e,r,o){t.dump=function(){if(e.length===0)return"''";if(!t.noCompatMode&&g6e.indexOf(e)!==-1)return"'"+e+"'";var a=t.indent*Math.max(1,r),n=t.lineWidth===-1?-1:Math.max(Math.min(t.lineWidth,40),t.lineWidth-a),u=o||t.flowLevel>-1&&r>=t.flowLevel;function A(p){return y6e(t,p)}switch(I6e(e,u,t.indent,n,A)){case DV:return e;case PV:return"'"+e.replace(/'/g,"''")+"'";case SV:return"|"+AV(e,t.indent)+fV(cV(e,a));case bV:return">"+AV(e,t.indent)+fV(cV(B6e(e,n),a));case wP:return'"'+v6e(e,n)+'"';default:throw new yw("impossible error: invalid scalar style")}}()}function AV(t,e){var r=vV(t)?String(e):"",o=t[t.length-1]===` +`,a=o&&(t[t.length-2]===` +`||t===` +`),n=a?"+":o?"":"-";return r+n+` +`}function fV(t){return t[t.length-1]===` +`?t.slice(0,-1):t}function B6e(t,e){for(var r=/(\n+)([^\n]*)/g,o=function(){var h=t.indexOf(` +`);return h=h!==-1?h:t.length,r.lastIndex=h,pV(t.slice(0,h),e)}(),a=t[0]===` +`||t[0]===" ",n,u;u=r.exec(t);){var A=u[1],p=u[2];n=p[0]===" ",o+=A+(!a&&!n&&p!==""?` +`:"")+pV(p,e),a=n}return o}function pV(t,e){if(t===""||t[0]===" ")return t;for(var r=/ [^ ]/g,o,a=0,n,u=0,A=0,p="";o=r.exec(t);)A=o.index,A-a>e&&(n=u>a?u:A,p+=` +`+t.slice(a,n),a=n+1),u=A;return p+=` +`,t.length-a>e&&u>a?p+=t.slice(a,u)+` +`+t.slice(u+1):p+=t.slice(a),p.slice(1)}function v6e(t){for(var e="",r,o,a,n=0;n=55296&&r<=56319&&(o=t.charCodeAt(n+1),o>=56320&&o<=57343)){e+=lV((r-55296)*1024+o-56320+65536),n++;continue}a=mo[r],e+=!a&&vm(r)?t[n]:a||lV(r)}return e}function D6e(t,e,r){var o="",a=t.tag,n,u;for(n=0,u=r.length;n1024&&(E+="? "),E+=t.dump+(t.condenseFlow?'"':"")+":"+(t.condenseFlow?"":" "),ng(t,e,h,!1,!1)&&(E+=t.dump,o+=E));t.tag=a,t.dump="{"+o+"}"}function b6e(t,e,r,o){var a="",n=t.tag,u=Object.keys(r),A,p,h,E,w,D;if(t.sortKeys===!0)u.sort();else if(typeof t.sortKeys=="function")u.sort(t.sortKeys);else if(t.sortKeys)throw new yw("sortKeys must be a boolean or a function");for(A=0,p=u.length;A1024,w&&(t.dump&&dw===t.dump.charCodeAt(0)?D+="?":D+="? "),D+=t.dump,w&&(D+=ZT(t,e)),ng(t,e+1,E,!0,w)&&(t.dump&&dw===t.dump.charCodeAt(0)?D+=":":D+=": ",D+=t.dump,a+=D));t.tag=n,t.dump=a||"{}"}function hV(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function ng(t,e,r,o,a,n){t.tag=null,t.dump=r,hV(t,r,!1)||hV(t,r,!0);var u=gV.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(b6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(S6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var E=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(P6e(t,E,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(D6e(t,E,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&w6e(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new yw("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function x6e(t,e){var r=[],o=[],a,n;for($T(t,r,o),a=0,n=o.length;a{"use strict";var BP=aV(),QV=kV();function vP(t){return function(){throw new Error("Function "+t+" is deprecated and cannot be used.")}}Fi.exports.Type=as();Fi.exports.Schema=$0();Fi.exports.FAILSAFE_SCHEMA=dP();Fi.exports.JSON_SCHEMA=YT();Fi.exports.CORE_SCHEMA=KT();Fi.exports.DEFAULT_SAFE_SCHEMA=Cm();Fi.exports.DEFAULT_FULL_SCHEMA=hw();Fi.exports.load=BP.load;Fi.exports.loadAll=BP.loadAll;Fi.exports.safeLoad=BP.safeLoad;Fi.exports.safeLoadAll=BP.safeLoadAll;Fi.exports.dump=QV.dump;Fi.exports.safeDump=QV.safeDump;Fi.exports.YAMLException=ym();Fi.exports.MINIMAL_SCHEMA=dP();Fi.exports.SAFE_SCHEMA=Cm();Fi.exports.DEFAULT_SCHEMA=hw();Fi.exports.scan=vP("scan");Fi.exports.parse=vP("parse");Fi.exports.compose=vP("compose");Fi.exports.addConstructor=vP("addConstructor")});var TV=_((Jbt,RV)=>{"use strict";var Q6e=FV();RV.exports=Q6e});var LV=_((zbt,NV)=>{"use strict";function F6e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function ig(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,ig)}F6e(ig,Error);ig.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;w({[gt]:Le})))},ce=function(ee){return ee},ue=function(ee){return ee},Ie=oa("correct indentation"),he=" ",De=un(" ",!1),Ee=function(ee){return ee.length===ar*vt},g=function(ee){return ee.length===(ar+1)*vt},me=function(){return ar++,!0},Ce=function(){return ar--,!0},fe=function(){return No()},ie=oa("pseudostring"),Z=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,Pe=qn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),Re=/^[^\r\n\t ,\][{}:#"']/,ht=qn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),q=function(){return No().replace(/^ *| *$/g,"")},nt="--",Ne=un("--",!1),Te=/^[a-zA-Z\/0-9]/,ke=qn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),Ve=/^[^\r\n\t :,]/,be=qn(["\r",` +`," "," ",":",","],!0,!1),tt="null",He=un("null",!1),b=function(){return null},I="true",S=un("true",!1),y=function(){return!0},R="false",z=un("false",!1),X=function(){return!1},$=oa("string"),se='"',xe=un('"',!1),Fe=function(){return""},lt=function(ee){return ee},Et=function(ee){return ee.join("")},qt=/^[^"\\\0-\x1F\x7F]/,nr=qn(['"',"\\",["\0",""],"\x7F"],!0,!1),St='\\"',cn=un('\\"',!1),Pr=function(){return'"'},yr="\\\\",Rr=un("\\\\",!1),Xr=function(){return"\\"},$n="\\/",Xs=un("\\/",!1),Hi=function(){return"/"},Qs="\\b",Zs=un("\\b",!1),xi=function(){return"\b"},Fs="\\f",$s=un("\\f",!1),SA=function(){return"\f"},gu="\\n",op=un("\\n",!1),ap=function(){return` +`},Rs="\\r",Ln=un("\\r",!1),hs=function(){return"\r"},Ts="\\t",pc=un("\\t",!1),hc=function(){return" "},gc="\\u",bA=un("\\u",!1),xA=function(ee,ye,Le,gt){return String.fromCharCode(parseInt(`0x${ee}${ye}${Le}${gt}`))},Ro=/^[0-9a-fA-F]/,To=qn([["0","9"],["a","f"],["A","F"]],!1,!1),kA=oa("blank space"),pr=/^[ \t]/,Me=qn([" "," "],!1,!1),ia=oa("white space"),dc=/^[ \t\n\r]/,Er=qn([" "," ",` +`,"\r"],!1,!1),du=`\r +`,QA=un(`\r +`,!1),FA=` +`,mc=un(` +`,!1),yc="\r",Il=un("\r",!1),we=0,Tt=0,wl=[{line:1,column:1}],Bi=0,Ns=[],Ft=0,Bn;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function No(){return t.substring(Tt,we)}function ki(){return la(Tt,we)}function vi(ee,ye){throw ye=ye!==void 0?ye:la(Tt,we),mu([oa(ee)],t.substring(Tt,we),ye)}function sa(ee,ye){throw ye=ye!==void 0?ye:la(Tt,we),ca(ee,ye)}function un(ee,ye){return{type:"literal",text:ee,ignoreCase:ye}}function qn(ee,ye,Le){return{type:"class",parts:ee,inverted:ye,ignoreCase:Le}}function Ec(){return{type:"any"}}function lp(){return{type:"end"}}function oa(ee){return{type:"other",description:ee}}function aa(ee){var ye=wl[ee],Le;if(ye)return ye;for(Le=ee-1;!wl[Le];)Le--;for(ye=wl[Le],ye={line:ye.line,column:ye.column};LeBi&&(Bi=we,Ns=[]),Ns.push(ee))}function ca(ee,ye){return new ig(ee,null,null,ye)}function mu(ee,ye,Le){return new ig(ig.buildMessage(ee,ye),ee,ye,Le)}function Bl(){var ee;return ee=RA(),ee}function dn(){var ee,ye,Le;for(ee=we,ye=[],Le=Lo();Le!==r;)ye.push(Le),Le=Lo();return ye!==r&&(Tt=ee,ye=n(ye)),ee=ye,ee}function Lo(){var ee,ye,Le,gt,mt;return ee=we,ye=qa(),ye!==r?(t.charCodeAt(we)===45?(Le=u,we++):(Le=r,Ft===0&&Ze(A)),Le!==r?(gt=Dn(),gt!==r?(mt=Oo(),mt!==r?(Tt=ee,ye=p(mt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee}function RA(){var ee,ye,Le;for(ee=we,ye=[],Le=TA();Le!==r;)ye.push(Le),Le=TA();return ye!==r&&(Tt=ee,ye=h(ye)),ee=ye,ee}function TA(){var ee,ye,Le,gt,mt,Dt,er,sn,ei;if(ee=we,ye=Dn(),ye===r&&(ye=null),ye!==r){if(Le=we,t.charCodeAt(we)===35?(gt=E,we++):(gt=r,Ft===0&&Ze(w)),gt!==r){if(mt=[],Dt=we,er=we,Ft++,sn=st(),Ft--,sn===r?er=void 0:(we=er,er=r),er!==r?(t.length>we?(sn=t.charAt(we),we++):(sn=r,Ft===0&&Ze(D)),sn!==r?(er=[er,sn],Dt=er):(we=Dt,Dt=r)):(we=Dt,Dt=r),Dt!==r)for(;Dt!==r;)mt.push(Dt),Dt=we,er=we,Ft++,sn=st(),Ft--,sn===r?er=void 0:(we=er,er=r),er!==r?(t.length>we?(sn=t.charAt(we),we++):(sn=r,Ft===0&&Ze(D)),sn!==r?(er=[er,sn],Dt=er):(we=Dt,Dt=r)):(we=Dt,Dt=r);else mt=r;mt!==r?(gt=[gt,mt],Le=gt):(we=Le,Le=r)}else we=Le,Le=r;if(Le===r&&(Le=null),Le!==r){if(gt=[],mt=Je(),mt!==r)for(;mt!==r;)gt.push(mt),mt=Je();else gt=r;gt!==r?(Tt=ee,ye=x(),ee=ye):(we=ee,ee=r)}else we=ee,ee=r}else we=ee,ee=r;if(ee===r&&(ee=we,ye=qa(),ye!==r?(Le=ua(),Le!==r?(gt=Dn(),gt===r&&(gt=null),gt!==r?(t.charCodeAt(we)===58?(mt=C,we++):(mt=r,Ft===0&&Ze(T)),mt!==r?(Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(er=Oo(),er!==r?(Tt=ee,ye=L(Le,er),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r&&(ee=we,ye=qa(),ye!==r?(Le=qi(),Le!==r?(gt=Dn(),gt===r&&(gt=null),gt!==r?(t.charCodeAt(we)===58?(mt=C,we++):(mt=r,Ft===0&&Ze(T)),mt!==r?(Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(er=Oo(),er!==r?(Tt=ee,ye=L(Le,er),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r))){if(ee=we,ye=qa(),ye!==r)if(Le=qi(),Le!==r)if(gt=Dn(),gt!==r)if(mt=Cc(),mt!==r){if(Dt=[],er=Je(),er!==r)for(;er!==r;)Dt.push(er),er=Je();else Dt=r;Dt!==r?(Tt=ee,ye=L(Le,mt),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;else we=ee,ee=r;else we=ee,ee=r;else we=ee,ee=r;if(ee===r)if(ee=we,ye=qa(),ye!==r)if(Le=qi(),Le!==r){if(gt=[],mt=we,Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(t.charCodeAt(we)===44?(er=U,we++):(er=r,Ft===0&&Ze(J)),er!==r?(sn=Dn(),sn===r&&(sn=null),sn!==r?(ei=qi(),ei!==r?(Tt=mt,Dt=te(Le,ei),mt=Dt):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r),mt!==r)for(;mt!==r;)gt.push(mt),mt=we,Dt=Dn(),Dt===r&&(Dt=null),Dt!==r?(t.charCodeAt(we)===44?(er=U,we++):(er=r,Ft===0&&Ze(J)),er!==r?(sn=Dn(),sn===r&&(sn=null),sn!==r?(ei=qi(),ei!==r?(Tt=mt,Dt=te(Le,ei),mt=Dt):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r)):(we=mt,mt=r);else gt=r;gt!==r?(mt=Dn(),mt===r&&(mt=null),mt!==r?(t.charCodeAt(we)===58?(Dt=C,we++):(Dt=r,Ft===0&&Ze(T)),Dt!==r?(er=Dn(),er===r&&(er=null),er!==r?(sn=Oo(),sn!==r?(Tt=ee,ye=le(Le,gt,sn),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)}else we=ee,ee=r;else we=ee,ee=r}return ee}function Oo(){var ee,ye,Le,gt,mt,Dt,er;if(ee=we,ye=we,Ft++,Le=we,gt=st(),gt!==r?(mt=Ot(),mt!==r?(t.charCodeAt(we)===45?(Dt=u,we++):(Dt=r,Ft===0&&Ze(A)),Dt!==r?(er=Dn(),er!==r?(gt=[gt,mt,Dt,er],Le=gt):(we=Le,Le=r)):(we=Le,Le=r)):(we=Le,Le=r)):(we=Le,Le=r),Ft--,Le!==r?(we=ye,ye=void 0):ye=r,ye!==r?(Le=Je(),Le!==r?(gt=vn(),gt!==r?(mt=dn(),mt!==r?(Dt=Mo(),Dt!==r?(Tt=ee,ye=ce(mt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r&&(ee=we,ye=st(),ye!==r?(Le=vn(),Le!==r?(gt=RA(),gt!==r?(mt=Mo(),mt!==r?(Tt=ee,ye=ce(gt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r),ee===r))if(ee=we,ye=vl(),ye!==r){if(Le=[],gt=Je(),gt!==r)for(;gt!==r;)Le.push(gt),gt=Je();else Le=r;Le!==r?(Tt=ee,ye=ue(ye),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;return ee}function qa(){var ee,ye,Le;for(Ft++,ee=we,ye=[],t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));Le!==r;)ye.push(Le),t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));return ye!==r?(Tt=we,Le=Ee(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(we=ee,ee=r)):(we=ee,ee=r),Ft--,ee===r&&(ye=r,Ft===0&&Ze(Ie)),ee}function Ot(){var ee,ye,Le;for(ee=we,ye=[],t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));Le!==r;)ye.push(Le),t.charCodeAt(we)===32?(Le=he,we++):(Le=r,Ft===0&&Ze(De));return ye!==r?(Tt=we,Le=g(ye),Le?Le=void 0:Le=r,Le!==r?(ye=[ye,Le],ee=ye):(we=ee,ee=r)):(we=ee,ee=r),ee}function vn(){var ee;return Tt=we,ee=me(),ee?ee=void 0:ee=r,ee}function Mo(){var ee;return Tt=we,ee=Ce(),ee?ee=void 0:ee=r,ee}function ua(){var ee;return ee=ja(),ee===r&&(ee=Dl()),ee}function qi(){var ee,ye,Le;if(ee=ja(),ee===r){if(ee=we,ye=[],Le=Aa(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Aa();else ye=r;ye!==r&&(Tt=ee,ye=fe()),ee=ye}return ee}function vl(){var ee;return ee=Di(),ee===r&&(ee=rs(),ee===r&&(ee=ja(),ee===r&&(ee=Dl()))),ee}function Cc(){var ee;return ee=Di(),ee===r&&(ee=ja(),ee===r&&(ee=Aa())),ee}function Dl(){var ee,ye,Le,gt,mt,Dt;if(Ft++,ee=we,Z.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Pe)),ye!==r){for(Le=[],gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Re.test(t.charAt(we))?(Dt=t.charAt(we),we++):(Dt=r,Ft===0&&Ze(ht)),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);gt!==r;)Le.push(gt),gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Re.test(t.charAt(we))?(Dt=t.charAt(we),we++):(Dt=r,Ft===0&&Ze(ht)),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);Le!==r?(Tt=ee,ye=q(),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;return Ft--,ee===r&&(ye=r,Ft===0&&Ze(ie)),ee}function Aa(){var ee,ye,Le,gt,mt;if(ee=we,t.substr(we,2)===nt?(ye=nt,we+=2):(ye=r,Ft===0&&Ze(Ne)),ye===r&&(ye=null),ye!==r)if(Te.test(t.charAt(we))?(Le=t.charAt(we),we++):(Le=r,Ft===0&&Ze(ke)),Le!==r){for(gt=[],Ve.test(t.charAt(we))?(mt=t.charAt(we),we++):(mt=r,Ft===0&&Ze(be));mt!==r;)gt.push(mt),Ve.test(t.charAt(we))?(mt=t.charAt(we),we++):(mt=r,Ft===0&&Ze(be));gt!==r?(Tt=ee,ye=q(),ee=ye):(we=ee,ee=r)}else we=ee,ee=r;else we=ee,ee=r;return ee}function Di(){var ee,ye;return ee=we,t.substr(we,4)===tt?(ye=tt,we+=4):(ye=r,Ft===0&&Ze(He)),ye!==r&&(Tt=ee,ye=b()),ee=ye,ee}function rs(){var ee,ye;return ee=we,t.substr(we,4)===I?(ye=I,we+=4):(ye=r,Ft===0&&Ze(S)),ye!==r&&(Tt=ee,ye=y()),ee=ye,ee===r&&(ee=we,t.substr(we,5)===R?(ye=R,we+=5):(ye=r,Ft===0&&Ze(z)),ye!==r&&(Tt=ee,ye=X()),ee=ye),ee}function ja(){var ee,ye,Le,gt;return Ft++,ee=we,t.charCodeAt(we)===34?(ye=se,we++):(ye=r,Ft===0&&Ze(xe)),ye!==r?(t.charCodeAt(we)===34?(Le=se,we++):(Le=r,Ft===0&&Ze(xe)),Le!==r?(Tt=ee,ye=Fe(),ee=ye):(we=ee,ee=r)):(we=ee,ee=r),ee===r&&(ee=we,t.charCodeAt(we)===34?(ye=se,we++):(ye=r,Ft===0&&Ze(xe)),ye!==r?(Le=yu(),Le!==r?(t.charCodeAt(we)===34?(gt=se,we++):(gt=r,Ft===0&&Ze(xe)),gt!==r?(Tt=ee,ye=lt(Le),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)),Ft--,ee===r&&(ye=r,Ft===0&&Ze($)),ee}function yu(){var ee,ye,Le;if(ee=we,ye=[],Le=Pl(),Le!==r)for(;Le!==r;)ye.push(Le),Le=Pl();else ye=r;return ye!==r&&(Tt=ee,ye=Et(ye)),ee=ye,ee}function Pl(){var ee,ye,Le,gt,mt,Dt;return qt.test(t.charAt(we))?(ee=t.charAt(we),we++):(ee=r,Ft===0&&Ze(nr)),ee===r&&(ee=we,t.substr(we,2)===St?(ye=St,we+=2):(ye=r,Ft===0&&Ze(cn)),ye!==r&&(Tt=ee,ye=Pr()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===yr?(ye=yr,we+=2):(ye=r,Ft===0&&Ze(Rr)),ye!==r&&(Tt=ee,ye=Xr()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===$n?(ye=$n,we+=2):(ye=r,Ft===0&&Ze(Xs)),ye!==r&&(Tt=ee,ye=Hi()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Qs?(ye=Qs,we+=2):(ye=r,Ft===0&&Ze(Zs)),ye!==r&&(Tt=ee,ye=xi()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Fs?(ye=Fs,we+=2):(ye=r,Ft===0&&Ze($s)),ye!==r&&(Tt=ee,ye=SA()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===gu?(ye=gu,we+=2):(ye=r,Ft===0&&Ze(op)),ye!==r&&(Tt=ee,ye=ap()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Rs?(ye=Rs,we+=2):(ye=r,Ft===0&&Ze(Ln)),ye!==r&&(Tt=ee,ye=hs()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===Ts?(ye=Ts,we+=2):(ye=r,Ft===0&&Ze(pc)),ye!==r&&(Tt=ee,ye=hc()),ee=ye,ee===r&&(ee=we,t.substr(we,2)===gc?(ye=gc,we+=2):(ye=r,Ft===0&&Ze(bA)),ye!==r?(Le=pi(),Le!==r?(gt=pi(),gt!==r?(mt=pi(),mt!==r?(Dt=pi(),Dt!==r?(Tt=ee,ye=xA(Le,gt,mt,Dt),ee=ye):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)):(we=ee,ee=r)))))))))),ee}function pi(){var ee;return Ro.test(t.charAt(we))?(ee=t.charAt(we),we++):(ee=r,Ft===0&&Ze(To)),ee}function Dn(){var ee,ye;if(Ft++,ee=[],pr.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Me)),ye!==r)for(;ye!==r;)ee.push(ye),pr.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Me));else ee=r;return Ft--,ee===r&&(ye=r,Ft===0&&Ze(kA)),ee}function Sl(){var ee,ye;if(Ft++,ee=[],dc.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Er)),ye!==r)for(;ye!==r;)ee.push(ye),dc.test(t.charAt(we))?(ye=t.charAt(we),we++):(ye=r,Ft===0&&Ze(Er));else ee=r;return Ft--,ee===r&&(ye=r,Ft===0&&Ze(ia)),ee}function Je(){var ee,ye,Le,gt,mt,Dt;if(ee=we,ye=st(),ye!==r){for(Le=[],gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Dt=st(),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);gt!==r;)Le.push(gt),gt=we,mt=Dn(),mt===r&&(mt=null),mt!==r?(Dt=st(),Dt!==r?(mt=[mt,Dt],gt=mt):(we=gt,gt=r)):(we=gt,gt=r);Le!==r?(ye=[ye,Le],ee=ye):(we=ee,ee=r)}else we=ee,ee=r;return ee}function st(){var ee;return t.substr(we,2)===du?(ee=du,we+=2):(ee=r,Ft===0&&Ze(QA)),ee===r&&(t.charCodeAt(we)===10?(ee=FA,we++):(ee=r,Ft===0&&Ze(mc)),ee===r&&(t.charCodeAt(we)===13?(ee=yc,we++):(ee=r,Ft===0&&Ze(Il)))),ee}let vt=2,ar=0;if(Bn=a(),Bn!==r&&we===t.length)return Bn;throw Bn!==r&&we"u"?!0:typeof t=="object"&&t!==null&&!Array.isArray(t)?Object.keys(t).every(e=>_V(t[e])):!1}function rN(t,e,r){if(t===null)return`null +`;if(typeof t=="number"||typeof t=="boolean")return`${t.toString()} +`;if(typeof t=="string")return`${MV(t)} +`;if(Array.isArray(t)){if(t.length===0)return`[] +`;let o=" ".repeat(e);return` +${t.map(n=>`${o}- ${rN(n,e+1,!1)}`).join("")}`}if(typeof t=="object"&&t){let[o,a]=t instanceof DP?[t.data,!1]:[t,!0],n=" ".repeat(e),u=Object.keys(o);a&&u.sort((p,h)=>{let E=OV.indexOf(p),w=OV.indexOf(h);return E===-1&&w===-1?ph?1:0:E!==-1&&w===-1?-1:E===-1&&w!==-1?1:E-w});let A=u.filter(p=>!_V(o[p])).map((p,h)=>{let E=o[p],w=MV(p),D=rN(E,e+1,!0),x=h>0||r?n:"",C=w.length>1024?`? ${w} +${x}:`:`${w}:`,T=D.startsWith(` +`)?D:` ${D}`;return`${x}${C}${T}`}).join(e===0?` +`:"")||` +`;return r?` +${A}`:`${A}`}throw new Error(`Unsupported value type (${t})`)}function Pa(t){try{let e=rN(t,0,!1);return e!==` +`?e:""}catch(e){throw e.location&&(e.message=e.message.replace(/(\.)?$/,` (line ${e.location.start.line}, column ${e.location.start.column})$1`)),e}}function N6e(t){return t.endsWith(` +`)||(t+=` +`),(0,UV.parse)(t)}function O6e(t){if(L6e.test(t))return N6e(t);let e=(0,PP.safeLoad)(t,{schema:PP.FAILSAFE_SCHEMA,json:!0});if(e==null)return{};if(typeof e!="object")throw new Error(`Expected an indexed object, got a ${typeof e} instead. Does your file follow Yaml's rules?`);if(Array.isArray(e))throw new Error("Expected an indexed object, got an array instead. Does your file follow Yaml's rules?");return e}function Ki(t){return O6e(t)}var PP,UV,T6e,OV,DP,L6e,HV=It(()=>{PP=et(TV()),UV=et(LV()),T6e=/^(?![-?:,\][{}#&*!|>'"%@` \t\r\n]).([ \t]*(?![,\][{}:# \t\r\n]).)*$/,OV=["__metadata","version","resolution","dependencies","peerDependencies","dependenciesMeta","peerDependenciesMeta","binaries"],DP=class{constructor(e){this.data=e}};Pa.PreserveOrdering=DP;L6e=/^(#.*(\r?\n))*?#\s+yarn\s+lockfile\s+v1\r?\n/i});var Ew={};Kt(Ew,{parseResolution:()=>pP,parseShell:()=>uP,parseSyml:()=>Ki,stringifyArgument:()=>qT,stringifyArgumentSegment:()=>jT,stringifyArithmeticExpression:()=>fP,stringifyCommand:()=>HT,stringifyCommandChain:()=>mm,stringifyCommandChainThen:()=>_T,stringifyCommandLine:()=>AP,stringifyCommandLineThen:()=>UT,stringifyEnvSegment:()=>cP,stringifyRedirectArgument:()=>fw,stringifyResolution:()=>hP,stringifyShell:()=>dm,stringifyShellLine:()=>dm,stringifySyml:()=>Pa,stringifyValueArgument:()=>J0});var Ol=It(()=>{_Y();GY();HV()});var jV=_((txt,nN)=>{"use strict";var M6e=t=>{let e=!1,r=!1,o=!1;for(let a=0;a{if(!(typeof t=="string"||Array.isArray(t)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let r=a=>e.pascalCase?a.charAt(0).toUpperCase()+a.slice(1):a;return Array.isArray(t)?t=t.map(a=>a.trim()).filter(a=>a.length).join("-"):t=t.trim(),t.length===0?"":t.length===1?e.pascalCase?t.toUpperCase():t.toLowerCase():(t!==t.toLowerCase()&&(t=M6e(t)),t=t.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(a,n)=>n.toUpperCase()).replace(/\d+(\w|$)/g,a=>a.toUpperCase()),r(t))};nN.exports=qV;nN.exports.default=qV});var GV=_((rxt,U6e)=>{U6e.exports=[{name:"Agola CI",constant:"AGOLA",env:"AGOLA_GIT_REF",pr:"AGOLA_PULL_REQUEST_ID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"TF_BUILD",pr:{BUILD_REASON:"PullRequest"}},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codemagic",constant:"CODEMAGIC",env:"CM_BUILD_ID",pr:"CM_PULL_REQUEST"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"Earthly",constant:"EARTHLY",env:"EARTHLY_CI"},{name:"Expo Application Services",constant:"EAS",env:"EAS_BUILD"},{name:"Gerrit",constant:"GERRIT",env:"GERRIT_PROJECT"},{name:"Gitea Actions",constant:"GITEA_ACTIONS",env:"GITEA_ACTIONS"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Google Cloud Build",constant:"GOOGLE_CLOUD_BUILD",env:"BUILDER_OUTPUT"},{name:"Harness CI",constant:"HARNESS",env:"HARNESS_BUILD_ID"},{name:"Heroku",constant:"HEROKU",env:{env:"NODE",includes:"/app/.heroku/node/bin/node"}},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Prow",constant:"PROW",env:"PROW_JOB_ID"},{name:"ReleaseHub",constant:"RELEASEHUB",env:"RELEASE_BUILD_ID"},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Sourcehut",constant:"SOURCEHUT",env:{CI_NAME:"sourcehut"}},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vela",constant:"VELA",env:"VELA",pr:{VELA_PULL_REQUEST:"1"}},{name:"Vercel",constant:"VERCEL",env:{any:["NOW_BUILDER","VERCEL"]},pr:"VERCEL_GIT_PULL_REQUEST_ID"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"},{name:"Woodpecker",constant:"WOODPECKER",env:{CI:"woodpecker"},pr:{CI_BUILD_EVENT:"pull_request"}},{name:"Xcode Cloud",constant:"XCODE_CLOUD",env:"CI_XCODE_PROJECT",pr:"CI_PULL_REQUEST_NUMBER"},{name:"Xcode Server",constant:"XCODE_SERVER",env:"XCS"}]});var sg=_(nl=>{"use strict";var YV=GV(),ls=process.env;Object.defineProperty(nl,"_vendors",{value:YV.map(function(t){return t.constant})});nl.name=null;nl.isPR=null;YV.forEach(function(t){let r=(Array.isArray(t.env)?t.env:[t.env]).every(function(o){return WV(o)});if(nl[t.constant]=r,!!r)switch(nl.name=t.name,typeof t.pr){case"string":nl.isPR=!!ls[t.pr];break;case"object":"env"in t.pr?nl.isPR=t.pr.env in ls&&ls[t.pr.env]!==t.pr.ne:"any"in t.pr?nl.isPR=t.pr.any.some(function(o){return!!ls[o]}):nl.isPR=WV(t.pr);break;default:nl.isPR=null}});nl.isCI=!!(ls.CI!=="false"&&(ls.BUILD_ID||ls.BUILD_NUMBER||ls.CI||ls.CI_APP_ID||ls.CI_BUILD_ID||ls.CI_BUILD_NUMBER||ls.CI_NAME||ls.CONTINUOUS_INTEGRATION||ls.RUN_ID||nl.name));function WV(t){return typeof t=="string"?!!ls[t]:"env"in t?ls[t.env]&&ls[t.env].includes(t.includes):"any"in t?t.any.some(function(e){return!!ls[e]}):Object.keys(t).every(function(e){return ls[e]===t[e]})}});var Kn,pn,og,iN,SP,KV,sN,oN,bP=It(()=>{(function(t){t.StartOfInput="\0",t.EndOfInput="",t.EndOfPartialInput=""})(Kn||(Kn={}));(function(t){t[t.InitialNode=0]="InitialNode",t[t.SuccessNode=1]="SuccessNode",t[t.ErrorNode=2]="ErrorNode",t[t.CustomNode=3]="CustomNode"})(pn||(pn={}));og=-1,iN=/^(-h|--help)(?:=([0-9]+))?$/,SP=/^(--[a-z]+(?:-[a-z]+)*|-[a-zA-Z]+)$/,KV=/^-[a-zA-Z]{2,}$/,sN=/^([^=]+)=([\s\S]*)$/,oN=process.env.DEBUG_CLI==="1"});var it,Dm,xP,aN,kP=It(()=>{bP();it=class extends Error{constructor(e){super(e),this.clipanion={type:"usage"},this.name="UsageError"}},Dm=class extends Error{constructor(e,r){if(super(),this.input=e,this.candidates=r,this.clipanion={type:"none"},this.name="UnknownSyntaxError",this.candidates.length===0)this.message="Command not found, but we're not sure what's the alternative.";else if(this.candidates.every(o=>o.reason!==null&&o.reason===r[0].reason)){let[{reason:o}]=this.candidates;this.message=`${o} + +${this.candidates.map(({usage:a})=>`$ ${a}`).join(` +`)}`}else if(this.candidates.length===1){let[{usage:o}]=this.candidates;this.message=`Command not found; did you mean: + +$ ${o} +${aN(e)}`}else this.message=`Command not found; did you mean one of: + +${this.candidates.map(({usage:o},a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${aN(e)}`}},xP=class extends Error{constructor(e,r){super(),this.input=e,this.usages=r,this.clipanion={type:"none"},this.name="AmbiguousSyntaxError",this.message=`Cannot find which to pick amongst the following alternatives: + +${this.usages.map((o,a)=>`${`${a}.`.padStart(4)} ${o}`).join(` +`)} + +${aN(e)}`}},aN=t=>`While running ${t.filter(e=>e!==Kn.EndOfInput&&e!==Kn.EndOfPartialInput).map(e=>{let r=JSON.stringify(e);return e.match(/\s/)||e.length===0||r!==`"${e}"`?r:e}).join(" ")}`});function _6e(t){let e=t.split(` +`),r=e.filter(a=>a.match(/\S/)),o=r.length>0?r.reduce((a,n)=>Math.min(a,n.length-n.trimStart().length),Number.MAX_VALUE):0;return e.map(a=>a.slice(o).trimRight()).join(` +`)}function yo(t,{format:e,paragraphs:r}){return t=t.replace(/\r\n?/g,` +`),t=_6e(t),t=t.replace(/^\n+|\n+$/g,""),t=t.replace(/^(\s*)-([^\n]*?)\n+/gm,`$1-$2 + +`),t=t.replace(/\n(\n)?\n*/g,(o,a)=>a||" "),r&&(t=t.split(/\n/).map(o=>{let a=o.match(/^\s*[*-][\t ]+(.*)/);if(!a)return o.match(/(.{1,80})(?: |$)/g).join(` +`);let n=o.length-o.trimStart().length;return a[1].match(new RegExp(`(.{1,${78-n}})(?: |$)`,"g")).map((u,A)=>" ".repeat(n)+(A===0?"- ":" ")+u).join(` +`)}).join(` + +`)),t=t.replace(/(`+)((?:.|[\n])*?)\1/g,(o,a,n)=>e.code(a+n+a)),t=t.replace(/(\*\*)((?:.|[\n])*?)\1/g,(o,a,n)=>e.bold(a+n+a)),t?`${t} +`:""}var lN,VV,JV,cN=It(()=>{lN=Array(80).fill("\u2501");for(let t=0;t<=24;++t)lN[lN.length-t]=`\x1B[38;5;${232+t}m\u2501`;VV={header:t=>`\x1B[1m\u2501\u2501\u2501 ${t}${t.length<75?` ${lN.slice(t.length+5).join("")}`:":"}\x1B[0m`,bold:t=>`\x1B[1m${t}\x1B[22m`,error:t=>`\x1B[31m\x1B[1m${t}\x1B[22m\x1B[39m`,code:t=>`\x1B[36m${t}\x1B[39m`},JV={header:t=>t,bold:t=>t,error:t=>t,code:t=>t}});function Wo(t){return{...t,[Cw]:!0}}function Yu(t,e){return typeof t>"u"?[t,e]:typeof t=="object"&&t!==null&&!Array.isArray(t)?[void 0,t]:[t,e]}function QP(t,{mergeName:e=!1}={}){let r=t.match(/^([^:]+): (.*)$/m);if(!r)return"validation failed";let[,o,a]=r;return e&&(a=a[0].toLowerCase()+a.slice(1)),a=o!=="."||!e?`${o.replace(/^\.(\[|$)/,"$1")}: ${a}`:`: ${a}`,a}function Iw(t,e){return e.length===1?new it(`${t}${QP(e[0],{mergeName:!0})}`):new it(`${t}: +${e.map(r=>` +- ${QP(r)}`).join("")}`)}function ag(t,e,r){if(typeof r>"u")return e;let o=[],a=[],n=A=>{let p=e;return e=A,n.bind(null,p)};if(!r(e,{errors:o,coercions:a,coercion:n}))throw Iw(`Invalid value for ${t}`,o);for(let[,A]of a)A();return e}var Cw,yf=It(()=>{kP();Cw=Symbol("clipanion/isOption")});var Yo={};Kt(Yo,{KeyRelationship:()=>Ku,TypeAssertionError:()=>zp,applyCascade:()=>vw,as:()=>sqe,assert:()=>rqe,assertWithErrors:()=>nqe,cascade:()=>NP,fn:()=>oqe,hasAtLeastOneKey:()=>dN,hasExactLength:()=>eJ,hasForbiddenKeys:()=>Dqe,hasKeyRelationship:()=>Pw,hasMaxLength:()=>lqe,hasMinLength:()=>aqe,hasMutuallyExclusiveKeys:()=>Pqe,hasRequiredKeys:()=>vqe,hasUniqueItems:()=>cqe,isArray:()=>FP,isAtLeast:()=>hN,isAtMost:()=>fqe,isBase64:()=>Cqe,isBoolean:()=>V6e,isDate:()=>z6e,isDict:()=>$6e,isEnum:()=>js,isHexColor:()=>Eqe,isISO8601:()=>yqe,isInExclusiveRange:()=>hqe,isInInclusiveRange:()=>pqe,isInstanceOf:()=>tqe,isInteger:()=>gN,isJSON:()=>Iqe,isLiteral:()=>XV,isLowerCase:()=>gqe,isMap:()=>Z6e,isNegative:()=>uqe,isNullable:()=>Bqe,isNumber:()=>fN,isObject:()=>ZV,isOneOf:()=>pN,isOptional:()=>wqe,isPartial:()=>eqe,isPayload:()=>J6e,isPositive:()=>Aqe,isRecord:()=>TP,isSet:()=>X6e,isString:()=>Sm,isTuple:()=>RP,isUUID4:()=>mqe,isUnknown:()=>AN,isUpperCase:()=>dqe,makeTrait:()=>$V,makeValidator:()=>qr,matchesRegExp:()=>Bw,softAssert:()=>iqe});function Vn(t){return t===null?"null":t===void 0?"undefined":t===""?"an empty string":typeof t=="symbol"?`<${t.toString()}>`:Array.isArray(t)?"an array":JSON.stringify(t)}function Pm(t,e){if(t.length===0)return"nothing";if(t.length===1)return Vn(t[0]);let r=t.slice(0,-1),o=t[t.length-1],a=t.length>2?`, ${e} `:` ${e} `;return`${r.map(n=>Vn(n)).join(", ")}${a}${Vn(o)}`}function Jp(t,e){var r,o,a;return typeof e=="number"?`${(r=t?.p)!==null&&r!==void 0?r:"."}[${e}]`:H6e.test(e)?`${(o=t?.p)!==null&&o!==void 0?o:""}.${e}`:`${(a=t?.p)!==null&&a!==void 0?a:"."}[${JSON.stringify(e)}]`}function uN(t,e,r){return t===1?e:r}function gr({errors:t,p:e}={},r){return t?.push(`${e??"."}: ${r}`),!1}function Y6e(t,e){return r=>{t[e]=r}}function Vu(t,e){return r=>{let o=t[e];return t[e]=r,Vu(t,e).bind(null,o)}}function ww(t,e,r){let o=()=>(t(r()),a),a=()=>(t(e),o);return o}function AN(){return qr({test:(t,e)=>!0})}function XV(t){return qr({test:(e,r)=>e!==t?gr(r,`Expected ${Vn(t)} (got ${Vn(e)})`):!0})}function Sm(){return qr({test:(t,e)=>typeof t!="string"?gr(e,`Expected a string (got ${Vn(t)})`):!0})}function js(t){let e=Array.isArray(t)?t:Object.values(t),r=e.every(a=>typeof a=="string"||typeof a=="number"),o=new Set(e);return o.size===1?XV([...o][0]):qr({test:(a,n)=>o.has(a)?!0:r?gr(n,`Expected one of ${Pm(e,"or")} (got ${Vn(a)})`):gr(n,`Expected a valid enumeration value (got ${Vn(a)})`)})}function V6e(){return qr({test:(t,e)=>{var r;if(typeof t!="boolean"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return gr(e,"Unbound coercion result");let o=K6e.get(t);if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return gr(e,`Expected a boolean (got ${Vn(t)})`)}return!0}})}function fN(){return qr({test:(t,e)=>{var r;if(typeof t!="number"){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return gr(e,"Unbound coercion result");let o;if(typeof t=="string"){let a;try{a=JSON.parse(t)}catch{}if(typeof a=="number")if(JSON.stringify(a)===t)o=a;else return gr(e,`Received a number that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return gr(e,`Expected a number (got ${Vn(t)})`)}return!0}})}function J6e(t){return qr({test:(e,r)=>{var o;if(typeof r?.coercions>"u")return gr(r,"The isPayload predicate can only be used with coercion enabled");if(typeof r.coercion>"u")return gr(r,"Unbound coercion result");if(typeof e!="string")return gr(r,`Expected a string (got ${Vn(e)})`);let a;try{a=JSON.parse(e)}catch{return gr(r,`Expected a JSON string (got ${Vn(e)})`)}let n={value:a};return t(a,Object.assign(Object.assign({},r),{coercion:Vu(n,"value")}))?(r.coercions.push([(o=r.p)!==null&&o!==void 0?o:".",r.coercion.bind(null,n.value)]),!0):!1}})}function z6e(){return qr({test:(t,e)=>{var r;if(!(t instanceof Date)){if(typeof e?.coercions<"u"){if(typeof e?.coercion>"u")return gr(e,"Unbound coercion result");let o;if(typeof t=="string"&&zV.test(t))o=new Date(t);else{let a;if(typeof t=="string"){let n;try{n=JSON.parse(t)}catch{}typeof n=="number"&&(a=n)}else typeof t=="number"&&(a=t);if(typeof a<"u")if(Number.isSafeInteger(a)||!Number.isSafeInteger(a*1e3))o=new Date(a*1e3);else return gr(e,`Received a timestamp that can't be safely represented by the runtime (${t})`)}if(typeof o<"u")return e.coercions.push([(r=e.p)!==null&&r!==void 0?r:".",e.coercion.bind(null,o)]),!0}return gr(e,`Expected a date (got ${Vn(t)})`)}return!0}})}function FP(t,{delimiter:e}={}){return qr({test:(r,o)=>{var a;let n=r;if(typeof r=="string"&&typeof e<"u"&&typeof o?.coercions<"u"){if(typeof o?.coercion>"u")return gr(o,"Unbound coercion result");r=r.split(e)}if(!Array.isArray(r))return gr(o,`Expected an array (got ${Vn(r)})`);let u=!0;for(let A=0,p=r.length;A{var n,u;if(Object.getPrototypeOf(o).toString()==="[object Set]")if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");let A=[...o],p=[...o];if(!r(p,Object.assign(Object.assign({},a),{coercion:void 0})))return!1;let h=()=>p.some((E,w)=>E!==A[w])?new Set(p):o;return a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",ww(a.coercion,o,h)]),!0}else{let A=!0;for(let p of o)if(A=t(p,Object.assign({},a))&&A,!A&&a?.errors==null)break;return A}if(typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");let A={value:o};return r(o,Object.assign(Object.assign({},a),{coercion:Vu(A,"value")}))?(a.coercions.push([(u=a.p)!==null&&u!==void 0?u:".",ww(a.coercion,o,()=>new Set(A.value))]),!0):!1}return gr(a,`Expected a set (got ${Vn(o)})`)}})}function Z6e(t,e){let r=FP(RP([t,e])),o=TP(e,{keys:t});return qr({test:(a,n)=>{var u,A,p;if(Object.getPrototypeOf(a).toString()==="[object Map]")if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return gr(n,"Unbound coercion result");let h=[...a],E=[...a];if(!r(E,Object.assign(Object.assign({},n),{coercion:void 0})))return!1;let w=()=>E.some((D,x)=>D[0]!==h[x][0]||D[1]!==h[x][1])?new Map(E):a;return n.coercions.push([(u=n.p)!==null&&u!==void 0?u:".",ww(n.coercion,a,w)]),!0}else{let h=!0;for(let[E,w]of a)if(h=t(E,Object.assign({},n))&&h,!h&&n?.errors==null||(h=e(w,Object.assign(Object.assign({},n),{p:Jp(n,E)}))&&h,!h&&n?.errors==null))break;return h}if(typeof n?.coercions<"u"){if(typeof n?.coercion>"u")return gr(n,"Unbound coercion result");let h={value:a};return Array.isArray(a)?r(a,Object.assign(Object.assign({},n),{coercion:void 0}))?(n.coercions.push([(A=n.p)!==null&&A!==void 0?A:".",ww(n.coercion,a,()=>new Map(h.value))]),!0):!1:o(a,Object.assign(Object.assign({},n),{coercion:Vu(h,"value")}))?(n.coercions.push([(p=n.p)!==null&&p!==void 0?p:".",ww(n.coercion,a,()=>new Map(Object.entries(h.value)))]),!0):!1}return gr(n,`Expected a map (got ${Vn(a)})`)}})}function RP(t,{delimiter:e}={}){let r=eJ(t.length);return qr({test:(o,a)=>{var n;if(typeof o=="string"&&typeof e<"u"&&typeof a?.coercions<"u"){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");o=o.split(e),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)])}if(!Array.isArray(o))return gr(a,`Expected a tuple (got ${Vn(o)})`);let u=r(o,Object.assign({},a));for(let A=0,p=o.length;A{var n;if(Array.isArray(o)&&typeof a?.coercions<"u")return typeof a?.coercion>"u"?gr(a,"Unbound coercion result"):r(o,Object.assign(Object.assign({},a),{coercion:void 0}))?(o=Object.fromEntries(o),a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,o)]),!0):!1;if(typeof o!="object"||o===null)return gr(a,`Expected an object (got ${Vn(o)})`);let u=Object.keys(o),A=!0;for(let p=0,h=u.length;p{if(typeof a!="object"||a===null)return gr(n,`Expected an object (got ${Vn(a)})`);let u=new Set([...r,...Object.keys(a)]),A={},p=!0;for(let h of u){if(h==="constructor"||h==="__proto__")p=gr(Object.assign(Object.assign({},n),{p:Jp(n,h)}),"Unsafe property name");else{let E=Object.prototype.hasOwnProperty.call(t,h)?t[h]:void 0,w=Object.prototype.hasOwnProperty.call(a,h)?a[h]:void 0;typeof E<"u"?p=E(w,Object.assign(Object.assign({},n),{p:Jp(n,h),coercion:Vu(a,h)}))&&p:e===null?p=gr(Object.assign(Object.assign({},n),{p:Jp(n,h)}),`Extraneous property (got ${Vn(w)})`):Object.defineProperty(A,h,{enumerable:!0,get:()=>w,set:Y6e(a,h)})}if(!p&&n?.errors==null)break}return e!==null&&(p||n?.errors!=null)&&(p=e(A,n)&&p),p}});return Object.assign(o,{properties:t})}function eqe(t){return ZV(t,{extra:TP(AN())})}function $V(t){return()=>t}function qr({test:t}){return $V(t)()}function rqe(t,e){if(!e(t))throw new zp}function nqe(t,e){let r=[];if(!e(t,{errors:r}))throw new zp({errors:r})}function iqe(t,e){}function sqe(t,e,{coerce:r=!1,errors:o,throw:a}={}){let n=o?[]:void 0;if(!r){if(e(t,{errors:n}))return a?t:{value:t,errors:void 0};if(a)throw new zp({errors:n});return{value:void 0,errors:n??!0}}let u={value:t},A=Vu(u,"value"),p=[];if(!e(t,{errors:n,coercion:A,coercions:p})){if(a)throw new zp({errors:n});return{value:void 0,errors:n??!0}}for(let[,h]of p)h();return a?u.value:{value:u.value,errors:void 0}}function oqe(t,e){let r=RP(t);return(...o)=>{if(!r(o))throw new zp;return e(...o)}}function aqe(t){return qr({test:(e,r)=>e.length>=t?!0:gr(r,`Expected to have a length of at least ${t} elements (got ${e.length})`)})}function lqe(t){return qr({test:(e,r)=>e.length<=t?!0:gr(r,`Expected to have a length of at most ${t} elements (got ${e.length})`)})}function eJ(t){return qr({test:(e,r)=>e.length!==t?gr(r,`Expected to have a length of exactly ${t} elements (got ${e.length})`):!0})}function cqe({map:t}={}){return qr({test:(e,r)=>{let o=new Set,a=new Set;for(let n=0,u=e.length;nt<=0?!0:gr(e,`Expected to be negative (got ${t})`)})}function Aqe(){return qr({test:(t,e)=>t>=0?!0:gr(e,`Expected to be positive (got ${t})`)})}function hN(t){return qr({test:(e,r)=>e>=t?!0:gr(r,`Expected to be at least ${t} (got ${e})`)})}function fqe(t){return qr({test:(e,r)=>e<=t?!0:gr(r,`Expected to be at most ${t} (got ${e})`)})}function pqe(t,e){return qr({test:(r,o)=>r>=t&&r<=e?!0:gr(o,`Expected to be in the [${t}; ${e}] range (got ${r})`)})}function hqe(t,e){return qr({test:(r,o)=>r>=t&&re!==Math.round(e)?gr(r,`Expected to be an integer (got ${e})`):!t&&!Number.isSafeInteger(e)?gr(r,`Expected to be a safe integer (got ${e})`):!0})}function Bw(t){return qr({test:(e,r)=>t.test(e)?!0:gr(r,`Expected to match the pattern ${t.toString()} (got ${Vn(e)})`)})}function gqe(){return qr({test:(t,e)=>t!==t.toLowerCase()?gr(e,`Expected to be all-lowercase (got ${t})`):!0})}function dqe(){return qr({test:(t,e)=>t!==t.toUpperCase()?gr(e,`Expected to be all-uppercase (got ${t})`):!0})}function mqe(){return qr({test:(t,e)=>W6e.test(t)?!0:gr(e,`Expected to be a valid UUID v4 (got ${Vn(t)})`)})}function yqe(){return qr({test:(t,e)=>zV.test(t)?!0:gr(e,`Expected to be a valid ISO 8601 date string (got ${Vn(t)})`)})}function Eqe({alpha:t=!1}){return qr({test:(e,r)=>(t?q6e.test(e):j6e.test(e))?!0:gr(r,`Expected to be a valid hexadecimal color string (got ${Vn(e)})`)})}function Cqe(){return qr({test:(t,e)=>G6e.test(t)?!0:gr(e,`Expected to be a valid base 64 string (got ${Vn(t)})`)})}function Iqe(t=AN()){return qr({test:(e,r)=>{let o;try{o=JSON.parse(e)}catch{return gr(r,`Expected to be a valid JSON string (got ${Vn(e)})`)}return t(o,r)}})}function NP(t,...e){let r=Array.isArray(e[0])?e[0]:e;return qr({test:(o,a)=>{var n,u;let A={value:o},p=typeof a?.coercions<"u"?Vu(A,"value"):void 0,h=typeof a?.coercions<"u"?[]:void 0;if(!t(o,Object.assign(Object.assign({},a),{coercion:p,coercions:h})))return!1;let E=[];if(typeof h<"u")for(let[,w]of h)E.push(w());try{if(typeof a?.coercions<"u"){if(A.value!==o){if(typeof a?.coercion>"u")return gr(a,"Unbound coercion result");a.coercions.push([(n=a.p)!==null&&n!==void 0?n:".",a.coercion.bind(null,A.value)])}(u=a?.coercions)===null||u===void 0||u.push(...h)}return r.every(w=>w(A.value,a))}finally{for(let w of E)w()}}})}function vw(t,...e){let r=Array.isArray(e[0])?e[0]:e;return NP(t,r)}function wqe(t){return qr({test:(e,r)=>typeof e>"u"?!0:t(e,r)})}function Bqe(t){return qr({test:(e,r)=>e===null?!0:t(e,r)})}function vqe(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)||p.push(h);return p.length>0?gr(u,`Missing required ${uN(p.length,"property","properties")} ${Pm(p,"and")}`):!0}})}function dN(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>Object.keys(n).some(h=>a(o,h,n))?!0:gr(u,`Missing at least one property from ${Pm(Array.from(o),"or")}`)})}function Dqe(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>0?gr(u,`Forbidden ${uN(p.length,"property","properties")} ${Pm(p,"and")}`):!0}})}function Pqe(t,e){var r;let o=new Set(t),a=Dw[(r=e?.missingIf)!==null&&r!==void 0?r:"missing"];return qr({test:(n,u)=>{let A=new Set(Object.keys(n)),p=[];for(let h of o)a(A,h,n)&&p.push(h);return p.length>1?gr(u,`Mutually exclusive properties ${Pm(p,"and")}`):!0}})}function Pw(t,e,r,o){var a,n;let u=new Set((a=o?.ignore)!==null&&a!==void 0?a:[]),A=Dw[(n=o?.missingIf)!==null&&n!==void 0?n:"missing"],p=new Set(r),h=Sqe[e],E=e===Ku.Forbids?"or":"and";return qr({test:(w,D)=>{let x=new Set(Object.keys(w));if(!A(x,t,w)||u.has(w[t]))return!0;let C=[];for(let T of p)(A(x,T,w)&&!u.has(w[T]))!==h.expect&&C.push(T);return C.length>=1?gr(D,`Property "${t}" ${h.message} ${uN(C.length,"property","properties")} ${Pm(C,E)}`):!0}})}var H6e,q6e,j6e,G6e,W6e,zV,K6e,tqe,pN,zp,Dw,Ku,Sqe,il=It(()=>{H6e=/^[a-zA-Z_][a-zA-Z0-9_]*$/;q6e=/^#[0-9a-f]{6}$/i,j6e=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,G6e=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,W6e=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,zV=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/;K6e=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]);tqe=t=>qr({test:(e,r)=>e instanceof t?!0:gr(r,`Expected an instance of ${t.name} (got ${Vn(e)})`)}),pN=(t,{exclusive:e=!1}={})=>qr({test:(r,o)=>{var a,n,u;let A=[],p=typeof o?.errors<"u"?[]:void 0;for(let h=0,E=t.length;h1?gr(o,`Expected to match exactly a single predicate (matched ${A.join(", ")})`):(u=o?.errors)===null||u===void 0||u.push(...p),!1}});zp=class extends Error{constructor({errors:e}={}){let r="Type mismatch";if(e&&e.length>0){r+=` +`;for(let o of e)r+=` +- ${o}`}super(r)}};Dw={missing:(t,e)=>t.has(e),undefined:(t,e,r)=>t.has(e)&&typeof r[e]<"u",nil:(t,e,r)=>t.has(e)&&r[e]!=null,falsy:(t,e,r)=>t.has(e)&&!!r[e]};(function(t){t.Forbids="Forbids",t.Requires="Requires"})(Ku||(Ku={}));Sqe={[Ku.Forbids]:{expect:!1,message:"forbids using"},[Ku.Requires]:{expect:!0,message:"requires using"}}});var ot,Xp=It(()=>{yf();ot=class{constructor(){this.help=!1}static Usage(e){return e}async catch(e){throw e}async validateAndExecute(){let r=this.constructor.schema;if(Array.isArray(r)){let{isDict:a,isUnknown:n,applyCascade:u}=await Promise.resolve().then(()=>(il(),Yo)),A=u(a(n()),r),p=[],h=[];if(!A(this,{errors:p,coercions:h}))throw Iw("Invalid option schema",p);for(let[,w]of h)w()}else if(r!=null)throw new Error("Invalid command schema");let o=await this.execute();return typeof o<"u"?o:0}};ot.isOption=Cw;ot.Default=[]});function Sa(t){oN&&console.log(t)}function rJ(){let t={nodes:[]};for(let e=0;e{if(e.has(o))return;e.add(o);let a=t.nodes[o];for(let u of Object.values(a.statics))for(let{to:A}of u)r(A);for(let[,{to:u}]of a.dynamics)r(u);for(let{to:u}of a.shortcuts)r(u);let n=new Set(a.shortcuts.map(({to:u})=>u));for(;a.shortcuts.length>0;){let{to:u}=a.shortcuts.shift(),A=t.nodes[u];for(let[p,h]of Object.entries(A.statics)){let E=Object.prototype.hasOwnProperty.call(a.statics,p)?a.statics[p]:a.statics[p]=[];for(let w of h)E.some(({to:D})=>w.to===D)||E.push(w)}for(let[p,h]of A.dynamics)a.dynamics.some(([E,{to:w}])=>p===E&&h.to===w)||a.dynamics.push([p,h]);for(let p of A.shortcuts)n.has(p.to)||(a.shortcuts.push(p),n.add(p.to))}};r(pn.InitialNode)}function kqe(t,{prefix:e=""}={}){if(oN){Sa(`${e}Nodes are:`);for(let r=0;rE!==pn.ErrorNode).map(({state:E})=>({usage:E.candidateUsage,reason:null})));if(h.every(({node:E})=>E===pn.ErrorNode))throw new Dm(e,h.map(({state:E})=>({usage:E.candidateUsage,reason:E.errorMessage})));o=Rqe(h)}if(o.length>0){Sa(" Results:");for(let n of o)Sa(` - ${n.node} -> ${JSON.stringify(n.state)}`)}else Sa(" No results");return o}function Fqe(t,e,{endToken:r=Kn.EndOfInput}={}){let o=Qqe(t,[...e,r]);return Tqe(e,o.map(({state:a})=>a))}function Rqe(t){let e=0;for(let{state:r}of t)r.path.length>e&&(e=r.path.length);return t.filter(({state:r})=>r.path.length===e)}function Tqe(t,e){let r=e.filter(D=>D.selectedIndex!==null),o=r.filter(D=>!D.partial);if(o.length>0&&(r=o),r.length===0)throw new Error;let a=r.filter(D=>D.selectedIndex===og||D.requiredOptions.every(x=>x.some(C=>D.options.find(T=>T.name===C))));if(a.length===0)throw new Dm(t,r.map(D=>({usage:D.candidateUsage,reason:null})));let n=0;for(let D of a)D.path.length>n&&(n=D.path.length);let u=a.filter(D=>D.path.length===n),A=D=>D.positionals.filter(({extra:x})=>!x).length+D.options.length,p=u.map(D=>({state:D,positionalCount:A(D)})),h=0;for(let{positionalCount:D}of p)D>h&&(h=D);let E=p.filter(({positionalCount:D})=>D===h).map(({state:D})=>D),w=Nqe(E);if(w.length>1)throw new xP(t,w.map(D=>D.candidateUsage));return w[0]}function Nqe(t){let e=[],r=[];for(let o of t)o.selectedIndex===og?r.push(o):e.push(o);return r.length>0&&e.push({...tJ,path:nJ(...r.map(o=>o.path)),options:r.reduce((o,a)=>o.concat(a.options),[])}),e}function nJ(t,e,...r){return e===void 0?Array.from(t):nJ(t.filter((o,a)=>o===e[a]),...r)}function sl(){return{dynamics:[],shortcuts:[],statics:{}}}function iJ(t){return t===pn.SuccessNode||t===pn.ErrorNode}function mN(t,e=0){return{to:iJ(t.to)?t.to:t.to>=pn.CustomNode?t.to+e-pn.CustomNode+1:t.to+e,reducer:t.reducer}}function Lqe(t,e=0){let r=sl();for(let[o,a]of t.dynamics)r.dynamics.push([o,mN(a,e)]);for(let o of t.shortcuts)r.shortcuts.push(mN(o,e));for(let[o,a]of Object.entries(t.statics))r.statics[o]=a.map(n=>mN(n,e));return r}function Bs(t,e,r,o,a){t.nodes[e].dynamics.push([r,{to:o,reducer:a}])}function bm(t,e,r,o){t.nodes[e].shortcuts.push({to:r,reducer:o})}function Ko(t,e,r,o,a){(Object.prototype.hasOwnProperty.call(t.nodes[e].statics,r)?t.nodes[e].statics[r]:t.nodes[e].statics[r]=[]).push({to:o,reducer:a})}function LP(t,e,r,o,a){if(Array.isArray(e)){let[n,...u]=e;return t[n](r,o,a,...u)}else return t[e](r,o,a)}var tJ,Oqe,yN,ol,EN,OP,MP=It(()=>{bP();kP();tJ={candidateUsage:null,requiredOptions:[],errorMessage:null,ignoreOptions:!1,path:[],positionals:[],options:[],remainder:null,selectedIndex:og,partial:!1,tokens:[]};Oqe={always:()=>!0,isOptionLike:(t,e)=>!t.ignoreOptions&&e!=="-"&&e.startsWith("-"),isNotOptionLike:(t,e)=>t.ignoreOptions||e==="-"||!e.startsWith("-"),isOption:(t,e,r,o)=>!t.ignoreOptions&&e===o,isBatchOption:(t,e,r,o)=>!t.ignoreOptions&&KV.test(e)&&[...e.slice(1)].every(a=>o.has(`-${a}`)),isBoundOption:(t,e,r,o,a)=>{let n=e.match(sN);return!t.ignoreOptions&&!!n&&SP.test(n[1])&&o.has(n[1])&&a.filter(u=>u.nameSet.includes(n[1])).every(u=>u.allowBinding)},isNegatedOption:(t,e,r,o)=>!t.ignoreOptions&&e===`--no-${o.slice(2)}`,isHelp:(t,e)=>!t.ignoreOptions&&iN.test(e),isUnsupportedOption:(t,e,r,o)=>!t.ignoreOptions&&e.startsWith("-")&&SP.test(e)&&!o.has(e),isInvalidOption:(t,e)=>!t.ignoreOptions&&e.startsWith("-")&&!SP.test(e)},yN={setCandidateState:(t,e,r,o)=>({...t,...o}),setSelectedIndex:(t,e,r,o)=>({...t,selectedIndex:o}),setPartialIndex:(t,e,r,o)=>({...t,selectedIndex:o,partial:!0}),pushBatch:(t,e,r,o)=>{let a=t.options.slice(),n=t.tokens.slice();for(let u=1;u{let[,o,a]=e.match(sN),n=t.options.concat({name:o,value:a}),u=t.tokens.concat([{segmentIndex:r,type:"option",slice:[0,o.length],option:o},{segmentIndex:r,type:"assign",slice:[o.length,o.length+1]},{segmentIndex:r,type:"value",slice:[o.length+1,o.length+a.length+1]}]);return{...t,options:n,tokens:u}},pushPath:(t,e,r)=>{let o=t.path.concat(e),a=t.tokens.concat({segmentIndex:r,type:"path"});return{...t,path:o,tokens:a}},pushPositional:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!1}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtra:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:!0}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushExtraNoLimits:(t,e,r)=>{let o=t.positionals.concat({value:e,extra:ol}),a=t.tokens.concat({segmentIndex:r,type:"positional"});return{...t,positionals:o,tokens:a}},pushTrue:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushFalse:(t,e,r,o)=>{let a=t.options.concat({name:o,value:!1}),n=t.tokens.concat({segmentIndex:r,type:"option",option:o});return{...t,options:a,tokens:n}},pushUndefined:(t,e,r,o)=>{let a=t.options.concat({name:e,value:void 0}),n=t.tokens.concat({segmentIndex:r,type:"option",option:e});return{...t,options:a,tokens:n}},pushStringValue:(t,e,r)=>{var o;let a=t.options[t.options.length-1],n=t.options.slice(),u=t.tokens.concat({segmentIndex:r,type:"value"});return a.value=((o=a.value)!==null&&o!==void 0?o:[]).concat([e]),{...t,options:n,tokens:u}},setStringValue:(t,e,r)=>{let o=t.options[t.options.length-1],a=t.options.slice(),n=t.tokens.concat({segmentIndex:r,type:"value"});return o.value=e,{...t,options:a,tokens:n}},inhibateOptions:t=>({...t,ignoreOptions:!0}),useHelp:(t,e,r,o)=>{let[,,a]=e.match(iN);return typeof a<"u"?{...t,options:[{name:"-c",value:String(o)},{name:"-i",value:a}]}:{...t,options:[{name:"-c",value:String(o)}]}},setError:(t,e,r,o)=>e===Kn.EndOfInput||e===Kn.EndOfPartialInput?{...t,errorMessage:`${o}.`}:{...t,errorMessage:`${o} ("${e}").`},setOptionArityError:(t,e)=>{let r=t.options[t.options.length-1];return{...t,errorMessage:`Not enough arguments to option ${r.name}.`}}},ol=Symbol(),EN=class{constructor(e,r){this.allOptionNames=new Map,this.arity={leading:[],trailing:[],extra:[],proxy:!1},this.options=[],this.paths=[],this.cliIndex=e,this.cliOpts=r}addPath(e){this.paths.push(e)}setArity({leading:e=this.arity.leading,trailing:r=this.arity.trailing,extra:o=this.arity.extra,proxy:a=this.arity.proxy}){Object.assign(this.arity,{leading:e,trailing:r,extra:o,proxy:a})}addPositional({name:e="arg",required:r=!0}={}){if(!r&&this.arity.extra===ol)throw new Error("Optional parameters cannot be declared when using .rest() or .proxy()");if(!r&&this.arity.trailing.length>0)throw new Error("Optional parameters cannot be declared after the required trailing positional arguments");!r&&this.arity.extra!==ol?this.arity.extra.push(e):this.arity.extra!==ol&&this.arity.extra.length===0?this.arity.leading.push(e):this.arity.trailing.push(e)}addRest({name:e="arg",required:r=0}={}){if(this.arity.extra===ol)throw new Error("Infinite lists cannot be declared multiple times in the same command");if(this.arity.trailing.length>0)throw new Error("Infinite lists cannot be declared after the required trailing positional arguments");for(let o=0;o1)throw new Error("The arity cannot be higher than 1 when the option only supports the --arg=value syntax");if(!Number.isInteger(o))throw new Error(`The arity must be an integer, got ${o}`);if(o<0)throw new Error(`The arity must be positive, got ${o}`);let A=e.reduce((p,h)=>h.length>p.length?h:p,"");for(let p of e)this.allOptionNames.set(p,A);this.options.push({preferredName:A,nameSet:e,description:r,arity:o,hidden:a,required:n,allowBinding:u})}setContext(e){this.context=e}usage({detailed:e=!0,inlineOptions:r=!0}={}){let o=[this.cliOpts.binaryName],a=[];if(this.paths.length>0&&o.push(...this.paths[0]),e){for(let{preferredName:u,nameSet:A,arity:p,hidden:h,description:E,required:w}of this.options){if(h)continue;let D=[];for(let C=0;C`:`[${x}]`)}o.push(...this.arity.leading.map(u=>`<${u}>`)),this.arity.extra===ol?o.push("..."):o.push(...this.arity.extra.map(u=>`[${u}]`)),o.push(...this.arity.trailing.map(u=>`<${u}>`))}return{usage:o.join(" "),options:a}}compile(){if(typeof this.context>"u")throw new Error("Assertion failed: No context attached");let e=rJ(),r=pn.InitialNode,o=this.usage().usage,a=this.options.filter(A=>A.required).map(A=>A.nameSet);r=jc(e,sl()),Ko(e,pn.InitialNode,Kn.StartOfInput,r,["setCandidateState",{candidateUsage:o,requiredOptions:a}]);let n=this.arity.proxy?"always":"isNotOptionLike",u=this.paths.length>0?this.paths:[[]];for(let A of u){let p=r;if(A.length>0){let D=jc(e,sl());bm(e,p,D),this.registerOptions(e,D),p=D}for(let D=0;D0||!this.arity.proxy){let D=jc(e,sl());Bs(e,p,"isHelp",D,["useHelp",this.cliIndex]),Bs(e,D,"always",D,"pushExtra"),Ko(e,D,Kn.EndOfInput,pn.SuccessNode,["setSelectedIndex",og]),this.registerOptions(e,p)}this.arity.leading.length>0&&(Ko(e,p,Kn.EndOfInput,pn.ErrorNode,["setError","Not enough positional arguments"]),Ko(e,p,Kn.EndOfPartialInput,pn.SuccessNode,["setPartialIndex",this.cliIndex]));let h=p;for(let D=0;D0||D+1!==this.arity.leading.length)&&(Ko(e,x,Kn.EndOfInput,pn.ErrorNode,["setError","Not enough positional arguments"]),Ko(e,x,Kn.EndOfPartialInput,pn.SuccessNode,["setPartialIndex",this.cliIndex])),Bs(e,h,"isNotOptionLike",x,"pushPositional"),h=x}let E=h;if(this.arity.extra===ol||this.arity.extra.length>0){let D=jc(e,sl());if(bm(e,h,D),this.arity.extra===ol){let x=jc(e,sl());this.arity.proxy||this.registerOptions(e,x),Bs(e,h,n,x,"pushExtraNoLimits"),Bs(e,x,n,x,"pushExtraNoLimits"),bm(e,x,D)}else for(let x=0;x0)&&this.registerOptions(e,C),Bs(e,E,n,C,"pushExtra"),bm(e,C,D),E=C}E=D}this.arity.trailing.length>0&&(Ko(e,E,Kn.EndOfInput,pn.ErrorNode,["setError","Not enough positional arguments"]),Ko(e,E,Kn.EndOfPartialInput,pn.SuccessNode,["setPartialIndex",this.cliIndex]));let w=E;for(let D=0;D=0&&e{let u=n?Kn.EndOfPartialInput:Kn.EndOfInput;return Fqe(o,a,{endToken:u})}}}}});function oJ(){return UP.default&&"getColorDepth"in UP.default.WriteStream.prototype?UP.default.WriteStream.prototype.getColorDepth():process.env.FORCE_COLOR==="0"?1:process.env.FORCE_COLOR==="1"||typeof process.stdout<"u"&&process.stdout.isTTY?8:1}function aJ(t){let e=sJ;if(typeof e>"u"){if(t.stdout===process.stdout&&t.stderr===process.stderr)return null;let{AsyncLocalStorage:r}=ve("async_hooks");e=sJ=new r;let o=process.stdout._write;process.stdout._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?o.call(this,n,u,A):p.stdout.write(n,u,A)};let a=process.stderr._write;process.stderr._write=function(n,u,A){let p=e.getStore();return typeof p>"u"?a.call(this,n,u,A):p.stderr.write(n,u,A)}}return r=>e.run(t,r)}var UP,sJ,lJ=It(()=>{UP=et(ve("tty"),1)});var _P,cJ=It(()=>{Xp();_P=class t extends ot{constructor(e){super(),this.contexts=e,this.commands=[]}static from(e,r){let o=new t(r);o.path=e.path;for(let a of e.options)switch(a.name){case"-c":o.commands.push(Number(a.value));break;case"-i":o.index=Number(a.value);break}return o}async execute(){let e=this.commands;if(typeof this.index<"u"&&this.index>=0&&this.index1){this.context.stdout.write(`Multiple commands match your selection: +`),this.context.stdout.write(` +`);let r=0;for(let o of this.commands)this.context.stdout.write(this.cli.usage(this.contexts[o].commandClass,{prefix:`${r++}. `.padStart(5)}));this.context.stdout.write(` +`),this.context.stdout.write(`Run again with -h= to see the longer details of any of those commands. +`)}}}});async function fJ(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=hJ(t);return Vo.from(r,e).runExit(o,a)}async function pJ(...t){let{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}=hJ(t);return Vo.from(r,e).run(o,a)}function hJ(t){let e,r,o,a;switch(typeof process<"u"&&typeof process.argv<"u"&&(o=process.argv.slice(2)),t.length){case 1:r=t[0];break;case 2:t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],Array.isArray(t[1])?o=t[1]:a=t[1]):(e=t[0],r=t[1]);break;case 3:Array.isArray(t[2])?(e=t[0],r=t[1],o=t[2]):t[0]&&t[0].prototype instanceof ot||Array.isArray(t[0])?(r=t[0],o=t[1],a=t[2]):(e=t[0],r=t[1],a=t[2]);break;default:e=t[0],r=t[1],o=t[2],a=t[3];break}if(typeof o>"u")throw new Error("The argv parameter must be provided when running Clipanion outside of a Node context");return{resolvedOptions:e,resolvedCommandClasses:r,resolvedArgv:o,resolvedContext:a}}function AJ(t){return t()}var uJ,Vo,gJ=It(()=>{bP();MP();cN();lJ();Xp();cJ();uJ=Symbol("clipanion/errorCommand");Vo=class t{constructor({binaryLabel:e,binaryName:r="...",binaryVersion:o,enableCapture:a=!1,enableColors:n}={}){this.registrations=new Map,this.builder=new OP({binaryName:r}),this.binaryLabel=e,this.binaryName=r,this.binaryVersion=o,this.enableCapture=a,this.enableColors=n}static from(e,r={}){let o=new t(r),a=Array.isArray(e)?e:[e];for(let n of a)o.register(n);return o}register(e){var r;let o=new Map,a=new e;for(let p in a){let h=a[p];typeof h=="object"&&h!==null&&h[ot.isOption]&&o.set(p,h)}let n=this.builder.command(),u=n.cliIndex,A=(r=e.paths)!==null&&r!==void 0?r:a.paths;if(typeof A<"u")for(let p of A)n.addPath(p);this.registrations.set(e,{specs:o,builder:n,index:u});for(let[p,{definition:h}]of o.entries())h(n,p);n.setContext({commandClass:e})}process(e,r){let{input:o,context:a,partial:n}=typeof e=="object"&&Array.isArray(e)?{input:e,context:r}:e,{contexts:u,process:A}=this.builder.compile(),p=A(o,{partial:n}),h={...t.defaultContext,...a};switch(p.selectedIndex){case og:{let E=_P.from(p,u);return E.context=h,E.tokens=p.tokens,E}default:{let{commandClass:E}=u[p.selectedIndex],w=this.registrations.get(E);if(typeof w>"u")throw new Error("Assertion failed: Expected the command class to have been registered.");let D=new E;D.context=h,D.tokens=p.tokens,D.path=p.path;try{for(let[x,{transformer:C}]of w.specs.entries())D[x]=C(w.builder,x,p,h);return D}catch(x){throw x[uJ]=D,x}}break}}async run(e,r){var o,a;let n,u={...t.defaultContext,...r},A=(o=this.enableColors)!==null&&o!==void 0?o:u.colorDepth>1;if(!Array.isArray(e))n=e;else try{n=this.process(e,u)}catch(E){return u.stdout.write(this.error(E,{colored:A})),1}if(n.help)return u.stdout.write(this.usage(n,{colored:A,detailed:!0})),0;n.context=u,n.cli={binaryLabel:this.binaryLabel,binaryName:this.binaryName,binaryVersion:this.binaryVersion,enableCapture:this.enableCapture,enableColors:this.enableColors,definitions:()=>this.definitions(),definition:E=>this.definition(E),error:(E,w)=>this.error(E,w),format:E=>this.format(E),process:(E,w)=>this.process(E,{...u,...w}),run:(E,w)=>this.run(E,{...u,...w}),usage:(E,w)=>this.usage(E,w)};let p=this.enableCapture&&(a=aJ(u))!==null&&a!==void 0?a:AJ,h;try{h=await p(()=>n.validateAndExecute().catch(E=>n.catch(E).then(()=>0)))}catch(E){return u.stdout.write(this.error(E,{colored:A,command:n})),1}return h}async runExit(e,r){process.exitCode=await this.run(e,r)}definition(e,{colored:r=!1}={}){if(!e.usage)return null;let{usage:o}=this.getUsageByRegistration(e,{detailed:!1}),{usage:a,options:n}=this.getUsageByRegistration(e,{detailed:!0,inlineOptions:!1}),u=typeof e.usage.category<"u"?yo(e.usage.category,{format:this.format(r),paragraphs:!1}):void 0,A=typeof e.usage.description<"u"?yo(e.usage.description,{format:this.format(r),paragraphs:!1}):void 0,p=typeof e.usage.details<"u"?yo(e.usage.details,{format:this.format(r),paragraphs:!0}):void 0,h=typeof e.usage.examples<"u"?e.usage.examples.map(([E,w])=>[yo(E,{format:this.format(r),paragraphs:!1}),w.replace(/\$0/g,this.binaryName)]):void 0;return{path:o,usage:a,category:u,description:A,details:p,examples:h,options:n}}definitions({colored:e=!1}={}){let r=[];for(let o of this.registrations.keys()){let a=this.definition(o,{colored:e});a&&r.push(a)}return r}usage(e=null,{colored:r,detailed:o=!1,prefix:a="$ "}={}){var n;if(e===null){for(let p of this.registrations.keys()){let h=p.paths,E=typeof p.usage<"u";if(!h||h.length===0||h.length===1&&h[0].length===0||((n=h?.some(x=>x.length===0))!==null&&n!==void 0?n:!1))if(e){e=null;break}else e=p;else if(E){e=null;continue}}e&&(o=!0)}let u=e!==null&&e instanceof ot?e.constructor:e,A="";if(u)if(o){let{description:p="",details:h="",examples:E=[]}=u.usage||{};p!==""&&(A+=yo(p,{format:this.format(r),paragraphs:!1}).replace(/^./,x=>x.toUpperCase()),A+=` +`),(h!==""||E.length>0)&&(A+=`${this.format(r).header("Usage")} +`,A+=` +`);let{usage:w,options:D}=this.getUsageByRegistration(u,{inlineOptions:!1});if(A+=`${this.format(r).bold(a)}${w} +`,D.length>0){A+=` +`,A+=`${this.format(r).header("Options")} +`;let x=D.reduce((C,T)=>Math.max(C,T.definition.length),0);A+=` +`;for(let{definition:C,description:T}of D)A+=` ${this.format(r).bold(C.padEnd(x))} ${yo(T,{format:this.format(r),paragraphs:!1})}`}if(h!==""&&(A+=` +`,A+=`${this.format(r).header("Details")} +`,A+=` +`,A+=yo(h,{format:this.format(r),paragraphs:!0})),E.length>0){A+=` +`,A+=`${this.format(r).header("Examples")} +`;for(let[x,C]of E)A+=` +`,A+=yo(x,{format:this.format(r),paragraphs:!1}),A+=`${C.replace(/^/m,` ${this.format(r).bold(a)}`).replace(/\$0/g,this.binaryName)} +`}}else{let{usage:p}=this.getUsageByRegistration(u);A+=`${this.format(r).bold(a)}${p} +`}else{let p=new Map;for(let[D,{index:x}]of this.registrations.entries()){if(typeof D.usage>"u")continue;let C=typeof D.usage.category<"u"?yo(D.usage.category,{format:this.format(r),paragraphs:!1}):null,T=p.get(C);typeof T>"u"&&p.set(C,T=[]);let{usage:L}=this.getUsageByIndex(x);T.push({commandClass:D,usage:L})}let h=Array.from(p.keys()).sort((D,x)=>D===null?-1:x===null?1:D.localeCompare(x,"en",{usage:"sort",caseFirst:"upper"})),E=typeof this.binaryLabel<"u",w=typeof this.binaryVersion<"u";E||w?(E&&w?A+=`${this.format(r).header(`${this.binaryLabel} - ${this.binaryVersion}`)} + +`:E?A+=`${this.format(r).header(`${this.binaryLabel}`)} +`:A+=`${this.format(r).header(`${this.binaryVersion}`)} +`,A+=` ${this.format(r).bold(a)}${this.binaryName} +`):A+=`${this.format(r).bold(a)}${this.binaryName} +`;for(let D of h){let x=p.get(D).slice().sort((T,L)=>T.usage.localeCompare(L.usage,"en",{usage:"sort",caseFirst:"upper"})),C=D!==null?D.trim():"General commands";A+=` +`,A+=`${this.format(r).header(`${C}`)} +`;for(let{commandClass:T,usage:L}of x){let U=T.usage.description||"undocumented";A+=` +`,A+=` ${this.format(r).bold(L)} +`,A+=` ${yo(U,{format:this.format(r),paragraphs:!1})}`}}A+=` +`,A+=yo("You can also print more details about any of these commands by calling them with the `-h,--help` flag right after the command name.",{format:this.format(r),paragraphs:!0})}return A}error(e,r){var o,{colored:a,command:n=(o=e[uJ])!==null&&o!==void 0?o:null}=r===void 0?{}:r;(!e||typeof e!="object"||!("stack"in e))&&(e=new Error(`Execution failed with a non-error rejection (rejected value: ${JSON.stringify(e)})`));let u="",A=e.name.replace(/([a-z])([A-Z])/g,"$1 $2");A==="Error"&&(A="Internal Error"),u+=`${this.format(a).error(A)}: ${e.message} +`;let p=e.clipanion;return typeof p<"u"?p.type==="usage"&&(u+=` +`,u+=this.usage(n)):e.stack&&(u+=`${e.stack.replace(/^.*\n/,"")} +`),u}format(e){var r;return((r=e??this.enableColors)!==null&&r!==void 0?r:t.defaultContext.colorDepth>1)?VV:JV}getUsageByRegistration(e,r){let o=this.registrations.get(e);if(typeof o>"u")throw new Error("Assertion failed: Unregistered command");return this.getUsageByIndex(o.index,r)}getUsageByIndex(e,r){return this.builder.getBuilderByIndex(e).usage(r)}};Vo.defaultContext={env:process.env,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr,colorDepth:oJ()}});var Sw,dJ=It(()=>{Xp();Sw=class extends ot{async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.definitions(),null,2)} +`)}};Sw.paths=[["--clipanion=definitions"]]});var bw,mJ=It(()=>{Xp();bw=class extends ot{async execute(){this.context.stdout.write(this.cli.usage())}};bw.paths=[["-h"],["--help"]]});function HP(t={}){return Wo({definition(e,r){var o;e.addProxy({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){return o.positionals.map(({value:a})=>a)}})}var CN=It(()=>{yf()});var xw,yJ=It(()=>{Xp();CN();xw=class extends ot{constructor(){super(...arguments),this.args=HP()}async execute(){this.context.stdout.write(`${JSON.stringify(this.cli.process(this.args).tokens,null,2)} +`)}};xw.paths=[["--clipanion=tokens"]]});var kw,EJ=It(()=>{Xp();kw=class extends ot{async execute(){var e;this.context.stdout.write(`${(e=this.cli.binaryVersion)!==null&&e!==void 0?e:""} +`)}};kw.paths=[["-v"],["--version"]]});var IN={};Kt(IN,{DefinitionsCommand:()=>Sw,HelpCommand:()=>bw,TokensCommand:()=>xw,VersionCommand:()=>kw});var CJ=It(()=>{dJ();mJ();yJ();EJ()});function IJ(t,e,r){let[o,a]=Yu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Wo({definition(p){p.addOption({names:u,arity:n,hidden:a?.hidden,description:a?.description,required:a.required})},transformer(p,h,E){let w,D=typeof o<"u"?[...o]:void 0;for(let{name:x,value:C}of E.options)A.has(x)&&(w=x,D=D??[],D.push(C));return typeof D<"u"?ag(w??h,D,a.validator):D}})}var wJ=It(()=>{yf()});function BJ(t,e,r){let[o,a]=Yu(e,r??{}),n=t.split(","),u=new Set(n);return Wo({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:w,value:D}of h.options)u.has(w)&&(E=D);return E}})}var vJ=It(()=>{yf()});function DJ(t,e,r){let[o,a]=Yu(e,r??{}),n=t.split(","),u=new Set(n);return Wo({definition(A){A.addOption({names:n,allowBinding:!1,arity:0,hidden:a.hidden,description:a.description,required:a.required})},transformer(A,p,h){let E=o;for(let{name:w,value:D}of h.options)u.has(w)&&(E??(E=0),D?E+=1:E=0);return E}})}var PJ=It(()=>{yf()});function SJ(t={}){return Wo({definition(e,r){var o;e.addRest({name:(o=t.name)!==null&&o!==void 0?o:r,required:t.required})},transformer(e,r,o){let a=u=>{let A=o.positionals[u];return A.extra===ol||A.extra===!1&&uu)}})}var bJ=It(()=>{MP();yf()});function Mqe(t,e,r){let[o,a]=Yu(e,r??{}),{arity:n=1}=a,u=t.split(","),A=new Set(u);return Wo({definition(p){p.addOption({names:u,arity:a.tolerateBoolean?0:n,hidden:a.hidden,description:a.description,required:a.required})},transformer(p,h,E,w){let D,x=o;typeof a.env<"u"&&w.env[a.env]&&(D=a.env,x=w.env[a.env]);for(let{name:C,value:T}of E.options)A.has(C)&&(D=C,x=T);return typeof x=="string"?ag(D??h,x,a.validator):x}})}function Uqe(t={}){let{required:e=!0}=t;return Wo({definition(r,o){var a;r.addPositional({name:(a=t.name)!==null&&a!==void 0?a:o,required:t.required})},transformer(r,o,a){var n;for(let u=0;u{MP();yf()});var de={};Kt(de,{Array:()=>IJ,Boolean:()=>BJ,Counter:()=>DJ,Proxy:()=>HP,Rest:()=>SJ,String:()=>xJ,applyValidator:()=>ag,cleanValidationError:()=>QP,formatError:()=>Iw,isOptionSymbol:()=>Cw,makeCommandOption:()=>Wo,rerouteArguments:()=>Yu});var QJ=It(()=>{yf();CN();wJ();vJ();PJ();bJ();kJ()});var Qw={};Kt(Qw,{Builtins:()=>IN,Cli:()=>Vo,Command:()=>ot,Option:()=>de,UsageError:()=>it,formatMarkdownish:()=>yo,run:()=>pJ,runExit:()=>fJ});var Gt=It(()=>{kP();cN();Xp();gJ();CJ();QJ()});var FJ=_((ckt,_qe)=>{_qe.exports={name:"dotenv",version:"16.3.1",description:"Loads environment variables from .env file",main:"lib/main.js",types:"lib/main.d.ts",exports:{".":{types:"./lib/main.d.ts",require:"./lib/main.js",default:"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},scripts:{"dts-check":"tsc --project tests/types/tsconfig.json",lint:"standard","lint-readme":"standard-markdown",pretest:"npm run lint && npm run dts-check",test:"tap tests/*.js --100 -Rspec",prerelease:"npm test",release:"standard-version"},repository:{type:"git",url:"git://github.com/motdotla/dotenv.git"},funding:"https://github.com/motdotla/dotenv?sponsor=1",keywords:["dotenv","env",".env","environment","variables","config","settings"],readmeFilename:"README.md",license:"BSD-2-Clause",devDependencies:{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3",decache:"^4.6.1",sinon:"^14.0.1",standard:"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0",tap:"^16.3.0",tar:"^6.1.11",typescript:"^4.8.4"},engines:{node:">=12"},browser:{fs:!1}}});var LJ=_((ukt,Ef)=>{var RJ=ve("fs"),BN=ve("path"),Hqe=ve("os"),qqe=ve("crypto"),jqe=FJ(),vN=jqe.version,Gqe=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/mg;function Wqe(t){let e={},r=t.toString();r=r.replace(/\r\n?/mg,` +`);let o;for(;(o=Gqe.exec(r))!=null;){let a=o[1],n=o[2]||"";n=n.trim();let u=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/mg,"$2"),u==='"'&&(n=n.replace(/\\n/g,` +`),n=n.replace(/\\r/g,"\r")),e[a]=n}return e}function Yqe(t){let e=NJ(t),r=vs.configDotenv({path:e});if(!r.parsed)throw new Error(`MISSING_DATA: Cannot parse ${e} for an unknown reason`);let o=TJ(t).split(","),a=o.length,n;for(let u=0;u=a)throw A}return vs.parse(n)}function Kqe(t){console.log(`[dotenv@${vN}][INFO] ${t}`)}function Vqe(t){console.log(`[dotenv@${vN}][WARN] ${t}`)}function wN(t){console.log(`[dotenv@${vN}][DEBUG] ${t}`)}function TJ(t){return t&&t.DOTENV_KEY&&t.DOTENV_KEY.length>0?t.DOTENV_KEY:process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0?process.env.DOTENV_KEY:""}function Jqe(t,e){let r;try{r=new URL(e)}catch(A){throw A.code==="ERR_INVALID_URL"?new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development"):A}let o=r.password;if(!o)throw new Error("INVALID_DOTENV_KEY: Missing key part");let a=r.searchParams.get("environment");if(!a)throw new Error("INVALID_DOTENV_KEY: Missing environment part");let n=`DOTENV_VAULT_${a.toUpperCase()}`,u=t.parsed[n];if(!u)throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${n} in your .env.vault file.`);return{ciphertext:u,key:o}}function NJ(t){let e=BN.resolve(process.cwd(),".env");return t&&t.path&&t.path.length>0&&(e=t.path),e.endsWith(".vault")?e:`${e}.vault`}function zqe(t){return t[0]==="~"?BN.join(Hqe.homedir(),t.slice(1)):t}function Xqe(t){Kqe("Loading env from encrypted .env.vault");let e=vs._parseVault(t),r=process.env;return t&&t.processEnv!=null&&(r=t.processEnv),vs.populate(r,e,t),{parsed:e}}function Zqe(t){let e=BN.resolve(process.cwd(),".env"),r="utf8",o=!!(t&&t.debug);t&&(t.path!=null&&(e=zqe(t.path)),t.encoding!=null&&(r=t.encoding));try{let a=vs.parse(RJ.readFileSync(e,{encoding:r})),n=process.env;return t&&t.processEnv!=null&&(n=t.processEnv),vs.populate(n,a,t),{parsed:a}}catch(a){return o&&wN(`Failed to load ${e} ${a.message}`),{error:a}}}function $qe(t){let e=NJ(t);return TJ(t).length===0?vs.configDotenv(t):RJ.existsSync(e)?vs._configVault(t):(Vqe(`You set DOTENV_KEY but you are missing a .env.vault file at ${e}. Did you forget to build it?`),vs.configDotenv(t))}function eje(t,e){let r=Buffer.from(e.slice(-64),"hex"),o=Buffer.from(t,"base64"),a=o.slice(0,12),n=o.slice(-16);o=o.slice(12,-16);try{let u=qqe.createDecipheriv("aes-256-gcm",r,a);return u.setAuthTag(n),`${u.update(o)}${u.final()}`}catch(u){let A=u instanceof RangeError,p=u.message==="Invalid key length",h=u.message==="Unsupported state or unable to authenticate data";if(A||p){let E="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(E)}else if(h){let E="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(E)}else throw console.error("Error: ",u.code),console.error("Error: ",u.message),u}}function tje(t,e,r={}){let o=!!(r&&r.debug),a=!!(r&&r.override);if(typeof e!="object")throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate");for(let n of Object.keys(e))Object.prototype.hasOwnProperty.call(t,n)?(a===!0&&(t[n]=e[n]),o&&wN(a===!0?`"${n}" is already defined and WAS overwritten`:`"${n}" is already defined and was NOT overwritten`)):t[n]=e[n]}var vs={configDotenv:Zqe,_configVault:Xqe,_parseVault:Yqe,config:$qe,decrypt:eje,parse:Wqe,populate:tje};Ef.exports.configDotenv=vs.configDotenv;Ef.exports._configVault=vs._configVault;Ef.exports._parseVault=vs._parseVault;Ef.exports.config=vs.config;Ef.exports.decrypt=vs.decrypt;Ef.exports.parse=vs.parse;Ef.exports.populate=vs.populate;Ef.exports=vs});var MJ=_((Akt,OJ)=>{"use strict";OJ.exports=(t,...e)=>new Promise(r=>{r(t(...e))})});var lg=_((fkt,DN)=>{"use strict";var rje=MJ(),UJ=t=>{if(t<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],r=0,o=()=>{r--,e.length>0&&e.shift()()},a=(A,p,...h)=>{r++;let E=rje(A,...h);p(E),E.then(o,o)},n=(A,p,...h)=>{rnew Promise(h=>n(A,h,...p));return Object.defineProperties(u,{activeCount:{get:()=>r},pendingCount:{get:()=>e.length}}),u};DN.exports=UJ;DN.exports.default=UJ});function Ju(t){return`YN${t.toString(10).padStart(4,"0")}`}function qP(t){let e=Number(t.slice(2));if(typeof vr[e]>"u")throw new Error(`Unknown message name: "${t}"`);return e}var vr,jP=It(()=>{vr=(Me=>(Me[Me.UNNAMED=0]="UNNAMED",Me[Me.EXCEPTION=1]="EXCEPTION",Me[Me.MISSING_PEER_DEPENDENCY=2]="MISSING_PEER_DEPENDENCY",Me[Me.CYCLIC_DEPENDENCIES=3]="CYCLIC_DEPENDENCIES",Me[Me.DISABLED_BUILD_SCRIPTS=4]="DISABLED_BUILD_SCRIPTS",Me[Me.BUILD_DISABLED=5]="BUILD_DISABLED",Me[Me.SOFT_LINK_BUILD=6]="SOFT_LINK_BUILD",Me[Me.MUST_BUILD=7]="MUST_BUILD",Me[Me.MUST_REBUILD=8]="MUST_REBUILD",Me[Me.BUILD_FAILED=9]="BUILD_FAILED",Me[Me.RESOLVER_NOT_FOUND=10]="RESOLVER_NOT_FOUND",Me[Me.FETCHER_NOT_FOUND=11]="FETCHER_NOT_FOUND",Me[Me.LINKER_NOT_FOUND=12]="LINKER_NOT_FOUND",Me[Me.FETCH_NOT_CACHED=13]="FETCH_NOT_CACHED",Me[Me.YARN_IMPORT_FAILED=14]="YARN_IMPORT_FAILED",Me[Me.REMOTE_INVALID=15]="REMOTE_INVALID",Me[Me.REMOTE_NOT_FOUND=16]="REMOTE_NOT_FOUND",Me[Me.RESOLUTION_PACK=17]="RESOLUTION_PACK",Me[Me.CACHE_CHECKSUM_MISMATCH=18]="CACHE_CHECKSUM_MISMATCH",Me[Me.UNUSED_CACHE_ENTRY=19]="UNUSED_CACHE_ENTRY",Me[Me.MISSING_LOCKFILE_ENTRY=20]="MISSING_LOCKFILE_ENTRY",Me[Me.WORKSPACE_NOT_FOUND=21]="WORKSPACE_NOT_FOUND",Me[Me.TOO_MANY_MATCHING_WORKSPACES=22]="TOO_MANY_MATCHING_WORKSPACES",Me[Me.CONSTRAINTS_MISSING_DEPENDENCY=23]="CONSTRAINTS_MISSING_DEPENDENCY",Me[Me.CONSTRAINTS_INCOMPATIBLE_DEPENDENCY=24]="CONSTRAINTS_INCOMPATIBLE_DEPENDENCY",Me[Me.CONSTRAINTS_EXTRANEOUS_DEPENDENCY=25]="CONSTRAINTS_EXTRANEOUS_DEPENDENCY",Me[Me.CONSTRAINTS_INVALID_DEPENDENCY=26]="CONSTRAINTS_INVALID_DEPENDENCY",Me[Me.CANT_SUGGEST_RESOLUTIONS=27]="CANT_SUGGEST_RESOLUTIONS",Me[Me.FROZEN_LOCKFILE_EXCEPTION=28]="FROZEN_LOCKFILE_EXCEPTION",Me[Me.CROSS_DRIVE_VIRTUAL_LOCAL=29]="CROSS_DRIVE_VIRTUAL_LOCAL",Me[Me.FETCH_FAILED=30]="FETCH_FAILED",Me[Me.DANGEROUS_NODE_MODULES=31]="DANGEROUS_NODE_MODULES",Me[Me.NODE_GYP_INJECTED=32]="NODE_GYP_INJECTED",Me[Me.AUTHENTICATION_NOT_FOUND=33]="AUTHENTICATION_NOT_FOUND",Me[Me.INVALID_CONFIGURATION_KEY=34]="INVALID_CONFIGURATION_KEY",Me[Me.NETWORK_ERROR=35]="NETWORK_ERROR",Me[Me.LIFECYCLE_SCRIPT=36]="LIFECYCLE_SCRIPT",Me[Me.CONSTRAINTS_MISSING_FIELD=37]="CONSTRAINTS_MISSING_FIELD",Me[Me.CONSTRAINTS_INCOMPATIBLE_FIELD=38]="CONSTRAINTS_INCOMPATIBLE_FIELD",Me[Me.CONSTRAINTS_EXTRANEOUS_FIELD=39]="CONSTRAINTS_EXTRANEOUS_FIELD",Me[Me.CONSTRAINTS_INVALID_FIELD=40]="CONSTRAINTS_INVALID_FIELD",Me[Me.AUTHENTICATION_INVALID=41]="AUTHENTICATION_INVALID",Me[Me.PROLOG_UNKNOWN_ERROR=42]="PROLOG_UNKNOWN_ERROR",Me[Me.PROLOG_SYNTAX_ERROR=43]="PROLOG_SYNTAX_ERROR",Me[Me.PROLOG_EXISTENCE_ERROR=44]="PROLOG_EXISTENCE_ERROR",Me[Me.STACK_OVERFLOW_RESOLUTION=45]="STACK_OVERFLOW_RESOLUTION",Me[Me.AUTOMERGE_FAILED_TO_PARSE=46]="AUTOMERGE_FAILED_TO_PARSE",Me[Me.AUTOMERGE_IMMUTABLE=47]="AUTOMERGE_IMMUTABLE",Me[Me.AUTOMERGE_SUCCESS=48]="AUTOMERGE_SUCCESS",Me[Me.AUTOMERGE_REQUIRED=49]="AUTOMERGE_REQUIRED",Me[Me.DEPRECATED_CLI_SETTINGS=50]="DEPRECATED_CLI_SETTINGS",Me[Me.PLUGIN_NAME_NOT_FOUND=51]="PLUGIN_NAME_NOT_FOUND",Me[Me.INVALID_PLUGIN_REFERENCE=52]="INVALID_PLUGIN_REFERENCE",Me[Me.CONSTRAINTS_AMBIGUITY=53]="CONSTRAINTS_AMBIGUITY",Me[Me.CACHE_OUTSIDE_PROJECT=54]="CACHE_OUTSIDE_PROJECT",Me[Me.IMMUTABLE_INSTALL=55]="IMMUTABLE_INSTALL",Me[Me.IMMUTABLE_CACHE=56]="IMMUTABLE_CACHE",Me[Me.INVALID_MANIFEST=57]="INVALID_MANIFEST",Me[Me.PACKAGE_PREPARATION_FAILED=58]="PACKAGE_PREPARATION_FAILED",Me[Me.INVALID_RANGE_PEER_DEPENDENCY=59]="INVALID_RANGE_PEER_DEPENDENCY",Me[Me.INCOMPATIBLE_PEER_DEPENDENCY=60]="INCOMPATIBLE_PEER_DEPENDENCY",Me[Me.DEPRECATED_PACKAGE=61]="DEPRECATED_PACKAGE",Me[Me.INCOMPATIBLE_OS=62]="INCOMPATIBLE_OS",Me[Me.INCOMPATIBLE_CPU=63]="INCOMPATIBLE_CPU",Me[Me.FROZEN_ARTIFACT_EXCEPTION=64]="FROZEN_ARTIFACT_EXCEPTION",Me[Me.TELEMETRY_NOTICE=65]="TELEMETRY_NOTICE",Me[Me.PATCH_HUNK_FAILED=66]="PATCH_HUNK_FAILED",Me[Me.INVALID_CONFIGURATION_VALUE=67]="INVALID_CONFIGURATION_VALUE",Me[Me.UNUSED_PACKAGE_EXTENSION=68]="UNUSED_PACKAGE_EXTENSION",Me[Me.REDUNDANT_PACKAGE_EXTENSION=69]="REDUNDANT_PACKAGE_EXTENSION",Me[Me.AUTO_NM_SUCCESS=70]="AUTO_NM_SUCCESS",Me[Me.NM_CANT_INSTALL_EXTERNAL_SOFT_LINK=71]="NM_CANT_INSTALL_EXTERNAL_SOFT_LINK",Me[Me.NM_PRESERVE_SYMLINKS_REQUIRED=72]="NM_PRESERVE_SYMLINKS_REQUIRED",Me[Me.UPDATE_LOCKFILE_ONLY_SKIP_LINK=73]="UPDATE_LOCKFILE_ONLY_SKIP_LINK",Me[Me.NM_HARDLINKS_MODE_DOWNGRADED=74]="NM_HARDLINKS_MODE_DOWNGRADED",Me[Me.PROLOG_INSTANTIATION_ERROR=75]="PROLOG_INSTANTIATION_ERROR",Me[Me.INCOMPATIBLE_ARCHITECTURE=76]="INCOMPATIBLE_ARCHITECTURE",Me[Me.GHOST_ARCHITECTURE=77]="GHOST_ARCHITECTURE",Me[Me.RESOLUTION_MISMATCH=78]="RESOLUTION_MISMATCH",Me[Me.PROLOG_LIMIT_EXCEEDED=79]="PROLOG_LIMIT_EXCEEDED",Me[Me.NETWORK_DISABLED=80]="NETWORK_DISABLED",Me[Me.NETWORK_UNSAFE_HTTP=81]="NETWORK_UNSAFE_HTTP",Me[Me.RESOLUTION_FAILED=82]="RESOLUTION_FAILED",Me[Me.AUTOMERGE_GIT_ERROR=83]="AUTOMERGE_GIT_ERROR",Me[Me.CONSTRAINTS_CHECK_FAILED=84]="CONSTRAINTS_CHECK_FAILED",Me[Me.UPDATED_RESOLUTION_RECORD=85]="UPDATED_RESOLUTION_RECORD",Me[Me.EXPLAIN_PEER_DEPENDENCIES_CTA=86]="EXPLAIN_PEER_DEPENDENCIES_CTA",Me[Me.MIGRATION_SUCCESS=87]="MIGRATION_SUCCESS",Me[Me.VERSION_NOTICE=88]="VERSION_NOTICE",Me[Me.TIPS_NOTICE=89]="TIPS_NOTICE",Me[Me.OFFLINE_MODE_ENABLED=90]="OFFLINE_MODE_ENABLED",Me))(vr||{})});var Fw=_((hkt,_J)=>{var nje="2.0.0",ije=Number.MAX_SAFE_INTEGER||9007199254740991,sje=16,oje=250,aje=["major","premajor","minor","preminor","patch","prepatch","prerelease"];_J.exports={MAX_LENGTH:256,MAX_SAFE_COMPONENT_LENGTH:sje,MAX_SAFE_BUILD_LENGTH:oje,MAX_SAFE_INTEGER:ije,RELEASE_TYPES:aje,SEMVER_SPEC_VERSION:nje,FLAG_INCLUDE_PRERELEASE:1,FLAG_LOOSE:2}});var Rw=_((gkt,HJ)=>{var lje=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...t)=>console.error("SEMVER",...t):()=>{};HJ.exports=lje});var xm=_((Cf,qJ)=>{var{MAX_SAFE_COMPONENT_LENGTH:PN,MAX_SAFE_BUILD_LENGTH:cje,MAX_LENGTH:uje}=Fw(),Aje=Rw();Cf=qJ.exports={};var fje=Cf.re=[],pje=Cf.safeRe=[],tr=Cf.src=[],rr=Cf.t={},hje=0,SN="[a-zA-Z0-9-]",gje=[["\\s",1],["\\d",uje],[SN,cje]],dje=t=>{for(let[e,r]of gje)t=t.split(`${e}*`).join(`${e}{0,${r}}`).split(`${e}+`).join(`${e}{1,${r}}`);return t},Gr=(t,e,r)=>{let o=dje(e),a=hje++;Aje(t,a,e),rr[t]=a,tr[a]=e,fje[a]=new RegExp(e,r?"g":void 0),pje[a]=new RegExp(o,r?"g":void 0)};Gr("NUMERICIDENTIFIER","0|[1-9]\\d*");Gr("NUMERICIDENTIFIERLOOSE","\\d+");Gr("NONNUMERICIDENTIFIER",`\\d*[a-zA-Z-]${SN}*`);Gr("MAINVERSION",`(${tr[rr.NUMERICIDENTIFIER]})\\.(${tr[rr.NUMERICIDENTIFIER]})\\.(${tr[rr.NUMERICIDENTIFIER]})`);Gr("MAINVERSIONLOOSE",`(${tr[rr.NUMERICIDENTIFIERLOOSE]})\\.(${tr[rr.NUMERICIDENTIFIERLOOSE]})\\.(${tr[rr.NUMERICIDENTIFIERLOOSE]})`);Gr("PRERELEASEIDENTIFIER",`(?:${tr[rr.NUMERICIDENTIFIER]}|${tr[rr.NONNUMERICIDENTIFIER]})`);Gr("PRERELEASEIDENTIFIERLOOSE",`(?:${tr[rr.NUMERICIDENTIFIERLOOSE]}|${tr[rr.NONNUMERICIDENTIFIER]})`);Gr("PRERELEASE",`(?:-(${tr[rr.PRERELEASEIDENTIFIER]}(?:\\.${tr[rr.PRERELEASEIDENTIFIER]})*))`);Gr("PRERELEASELOOSE",`(?:-?(${tr[rr.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${tr[rr.PRERELEASEIDENTIFIERLOOSE]})*))`);Gr("BUILDIDENTIFIER",`${SN}+`);Gr("BUILD",`(?:\\+(${tr[rr.BUILDIDENTIFIER]}(?:\\.${tr[rr.BUILDIDENTIFIER]})*))`);Gr("FULLPLAIN",`v?${tr[rr.MAINVERSION]}${tr[rr.PRERELEASE]}?${tr[rr.BUILD]}?`);Gr("FULL",`^${tr[rr.FULLPLAIN]}$`);Gr("LOOSEPLAIN",`[v=\\s]*${tr[rr.MAINVERSIONLOOSE]}${tr[rr.PRERELEASELOOSE]}?${tr[rr.BUILD]}?`);Gr("LOOSE",`^${tr[rr.LOOSEPLAIN]}$`);Gr("GTLT","((?:<|>)?=?)");Gr("XRANGEIDENTIFIERLOOSE",`${tr[rr.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);Gr("XRANGEIDENTIFIER",`${tr[rr.NUMERICIDENTIFIER]}|x|X|\\*`);Gr("XRANGEPLAIN",`[v=\\s]*(${tr[rr.XRANGEIDENTIFIER]})(?:\\.(${tr[rr.XRANGEIDENTIFIER]})(?:\\.(${tr[rr.XRANGEIDENTIFIER]})(?:${tr[rr.PRERELEASE]})?${tr[rr.BUILD]}?)?)?`);Gr("XRANGEPLAINLOOSE",`[v=\\s]*(${tr[rr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tr[rr.XRANGEIDENTIFIERLOOSE]})(?:\\.(${tr[rr.XRANGEIDENTIFIERLOOSE]})(?:${tr[rr.PRERELEASELOOSE]})?${tr[rr.BUILD]}?)?)?`);Gr("XRANGE",`^${tr[rr.GTLT]}\\s*${tr[rr.XRANGEPLAIN]}$`);Gr("XRANGELOOSE",`^${tr[rr.GTLT]}\\s*${tr[rr.XRANGEPLAINLOOSE]}$`);Gr("COERCEPLAIN",`(^|[^\\d])(\\d{1,${PN}})(?:\\.(\\d{1,${PN}}))?(?:\\.(\\d{1,${PN}}))?`);Gr("COERCE",`${tr[rr.COERCEPLAIN]}(?:$|[^\\d])`);Gr("COERCEFULL",tr[rr.COERCEPLAIN]+`(?:${tr[rr.PRERELEASE]})?(?:${tr[rr.BUILD]})?(?:$|[^\\d])`);Gr("COERCERTL",tr[rr.COERCE],!0);Gr("COERCERTLFULL",tr[rr.COERCEFULL],!0);Gr("LONETILDE","(?:~>?)");Gr("TILDETRIM",`(\\s*)${tr[rr.LONETILDE]}\\s+`,!0);Cf.tildeTrimReplace="$1~";Gr("TILDE",`^${tr[rr.LONETILDE]}${tr[rr.XRANGEPLAIN]}$`);Gr("TILDELOOSE",`^${tr[rr.LONETILDE]}${tr[rr.XRANGEPLAINLOOSE]}$`);Gr("LONECARET","(?:\\^)");Gr("CARETTRIM",`(\\s*)${tr[rr.LONECARET]}\\s+`,!0);Cf.caretTrimReplace="$1^";Gr("CARET",`^${tr[rr.LONECARET]}${tr[rr.XRANGEPLAIN]}$`);Gr("CARETLOOSE",`^${tr[rr.LONECARET]}${tr[rr.XRANGEPLAINLOOSE]}$`);Gr("COMPARATORLOOSE",`^${tr[rr.GTLT]}\\s*(${tr[rr.LOOSEPLAIN]})$|^$`);Gr("COMPARATOR",`^${tr[rr.GTLT]}\\s*(${tr[rr.FULLPLAIN]})$|^$`);Gr("COMPARATORTRIM",`(\\s*)${tr[rr.GTLT]}\\s*(${tr[rr.LOOSEPLAIN]}|${tr[rr.XRANGEPLAIN]})`,!0);Cf.comparatorTrimReplace="$1$2$3";Gr("HYPHENRANGE",`^\\s*(${tr[rr.XRANGEPLAIN]})\\s+-\\s+(${tr[rr.XRANGEPLAIN]})\\s*$`);Gr("HYPHENRANGELOOSE",`^\\s*(${tr[rr.XRANGEPLAINLOOSE]})\\s+-\\s+(${tr[rr.XRANGEPLAINLOOSE]})\\s*$`);Gr("STAR","(<|>)?=?\\s*\\*");Gr("GTE0","^\\s*>=\\s*0\\.0\\.0\\s*$");Gr("GTE0PRE","^\\s*>=\\s*0\\.0\\.0-0\\s*$")});var GP=_((dkt,jJ)=>{var mje=Object.freeze({loose:!0}),yje=Object.freeze({}),Eje=t=>t?typeof t!="object"?mje:t:yje;jJ.exports=Eje});var bN=_((mkt,YJ)=>{var GJ=/^[0-9]+$/,WJ=(t,e)=>{let r=GJ.test(t),o=GJ.test(e);return r&&o&&(t=+t,e=+e),t===e?0:r&&!o?-1:o&&!r?1:tWJ(e,t);YJ.exports={compareIdentifiers:WJ,rcompareIdentifiers:Cje}});var Eo=_((ykt,zJ)=>{var WP=Rw(),{MAX_LENGTH:KJ,MAX_SAFE_INTEGER:YP}=Fw(),{safeRe:VJ,t:JJ}=xm(),Ije=GP(),{compareIdentifiers:km}=bN(),xN=class t{constructor(e,r){if(r=Ije(r),e instanceof t){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid version. Must be a string. Got type "${typeof e}".`);if(e.length>KJ)throw new TypeError(`version is longer than ${KJ} characters`);WP("SemVer",e,r),this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease;let o=e.trim().match(r.loose?VJ[JJ.LOOSE]:VJ[JJ.FULL]);if(!o)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+o[1],this.minor=+o[2],this.patch=+o[3],this.major>YP||this.major<0)throw new TypeError("Invalid major version");if(this.minor>YP||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>YP||this.patch<0)throw new TypeError("Invalid patch version");o[4]?this.prerelease=o[4].split(".").map(a=>{if(/^[0-9]+$/.test(a)){let n=+a;if(n>=0&&n=0;)typeof this.prerelease[n]=="number"&&(this.prerelease[n]++,n=-2);if(n===-1){if(r===this.prerelease.join(".")&&o===!1)throw new Error("invalid increment argument: identifier already exists");this.prerelease.push(a)}}if(r){let n=[r,a];o===!1&&(n=[r]),km(this.prerelease[0],r)===0?isNaN(this.prerelease[1])&&(this.prerelease=n):this.prerelease=n}break}default:throw new Error(`invalid increment argument: ${e}`)}return this.raw=this.format(),this.build.length&&(this.raw+=`+${this.build.join(".")}`),this}};zJ.exports=xN});var cg=_((Ekt,ZJ)=>{var XJ=Eo(),wje=(t,e,r=!1)=>{if(t instanceof XJ)return t;try{return new XJ(t,e)}catch(o){if(!r)return null;throw o}};ZJ.exports=wje});var ez=_((Ckt,$J)=>{var Bje=cg(),vje=(t,e)=>{let r=Bje(t,e);return r?r.version:null};$J.exports=vje});var rz=_((Ikt,tz)=>{var Dje=cg(),Pje=(t,e)=>{let r=Dje(t.trim().replace(/^[=v]+/,""),e);return r?r.version:null};tz.exports=Pje});var sz=_((wkt,iz)=>{var nz=Eo(),Sje=(t,e,r,o,a)=>{typeof r=="string"&&(a=o,o=r,r=void 0);try{return new nz(t instanceof nz?t.version:t,r).inc(e,o,a).version}catch{return null}};iz.exports=Sje});var lz=_((Bkt,az)=>{var oz=cg(),bje=(t,e)=>{let r=oz(t,null,!0),o=oz(e,null,!0),a=r.compare(o);if(a===0)return null;let n=a>0,u=n?r:o,A=n?o:r,p=!!u.prerelease.length;if(!!A.prerelease.length&&!p)return!A.patch&&!A.minor?"major":u.patch?"patch":u.minor?"minor":"major";let E=p?"pre":"";return r.major!==o.major?E+"major":r.minor!==o.minor?E+"minor":r.patch!==o.patch?E+"patch":"prerelease"};az.exports=bje});var uz=_((vkt,cz)=>{var xje=Eo(),kje=(t,e)=>new xje(t,e).major;cz.exports=kje});var fz=_((Dkt,Az)=>{var Qje=Eo(),Fje=(t,e)=>new Qje(t,e).minor;Az.exports=Fje});var hz=_((Pkt,pz)=>{var Rje=Eo(),Tje=(t,e)=>new Rje(t,e).patch;pz.exports=Tje});var dz=_((Skt,gz)=>{var Nje=cg(),Lje=(t,e)=>{let r=Nje(t,e);return r&&r.prerelease.length?r.prerelease:null};gz.exports=Lje});var Ml=_((bkt,yz)=>{var mz=Eo(),Oje=(t,e,r)=>new mz(t,r).compare(new mz(e,r));yz.exports=Oje});var Cz=_((xkt,Ez)=>{var Mje=Ml(),Uje=(t,e,r)=>Mje(e,t,r);Ez.exports=Uje});var wz=_((kkt,Iz)=>{var _je=Ml(),Hje=(t,e)=>_je(t,e,!0);Iz.exports=Hje});var KP=_((Qkt,vz)=>{var Bz=Eo(),qje=(t,e,r)=>{let o=new Bz(t,r),a=new Bz(e,r);return o.compare(a)||o.compareBuild(a)};vz.exports=qje});var Pz=_((Fkt,Dz)=>{var jje=KP(),Gje=(t,e)=>t.sort((r,o)=>jje(r,o,e));Dz.exports=Gje});var bz=_((Rkt,Sz)=>{var Wje=KP(),Yje=(t,e)=>t.sort((r,o)=>Wje(o,r,e));Sz.exports=Yje});var Tw=_((Tkt,xz)=>{var Kje=Ml(),Vje=(t,e,r)=>Kje(t,e,r)>0;xz.exports=Vje});var VP=_((Nkt,kz)=>{var Jje=Ml(),zje=(t,e,r)=>Jje(t,e,r)<0;kz.exports=zje});var kN=_((Lkt,Qz)=>{var Xje=Ml(),Zje=(t,e,r)=>Xje(t,e,r)===0;Qz.exports=Zje});var QN=_((Okt,Fz)=>{var $je=Ml(),e5e=(t,e,r)=>$je(t,e,r)!==0;Fz.exports=e5e});var JP=_((Mkt,Rz)=>{var t5e=Ml(),r5e=(t,e,r)=>t5e(t,e,r)>=0;Rz.exports=r5e});var zP=_((Ukt,Tz)=>{var n5e=Ml(),i5e=(t,e,r)=>n5e(t,e,r)<=0;Tz.exports=i5e});var FN=_((_kt,Nz)=>{var s5e=kN(),o5e=QN(),a5e=Tw(),l5e=JP(),c5e=VP(),u5e=zP(),A5e=(t,e,r,o)=>{switch(e){case"===":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t===r;case"!==":return typeof t=="object"&&(t=t.version),typeof r=="object"&&(r=r.version),t!==r;case"":case"=":case"==":return s5e(t,r,o);case"!=":return o5e(t,r,o);case">":return a5e(t,r,o);case">=":return l5e(t,r,o);case"<":return c5e(t,r,o);case"<=":return u5e(t,r,o);default:throw new TypeError(`Invalid operator: ${e}`)}};Nz.exports=A5e});var Oz=_((Hkt,Lz)=>{var f5e=Eo(),p5e=cg(),{safeRe:XP,t:ZP}=xm(),h5e=(t,e)=>{if(t instanceof f5e)return t;if(typeof t=="number"&&(t=String(t)),typeof t!="string")return null;e=e||{};let r=null;if(!e.rtl)r=t.match(e.includePrerelease?XP[ZP.COERCEFULL]:XP[ZP.COERCE]);else{let p=e.includePrerelease?XP[ZP.COERCERTLFULL]:XP[ZP.COERCERTL],h;for(;(h=p.exec(t))&&(!r||r.index+r[0].length!==t.length);)(!r||h.index+h[0].length!==r.index+r[0].length)&&(r=h),p.lastIndex=h.index+h[1].length+h[2].length;p.lastIndex=-1}if(r===null)return null;let o=r[2],a=r[3]||"0",n=r[4]||"0",u=e.includePrerelease&&r[5]?`-${r[5]}`:"",A=e.includePrerelease&&r[6]?`+${r[6]}`:"";return p5e(`${o}.${a}.${n}${u}${A}`,e)};Lz.exports=h5e});var Uz=_((qkt,Mz)=>{"use strict";Mz.exports=function(t){t.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var $P=_((jkt,_z)=>{"use strict";_z.exports=bn;bn.Node=ug;bn.create=bn;function bn(t){var e=this;if(e instanceof bn||(e=new bn),e.tail=null,e.head=null,e.length=0,t&&typeof t.forEach=="function")t.forEach(function(a){e.push(a)});else if(arguments.length>0)for(var r=0,o=arguments.length;r1)r=e;else if(this.head)o=this.head.next,r=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=0;o!==null;a++)r=t(r,o.value,a),o=o.next;return r};bn.prototype.reduceReverse=function(t,e){var r,o=this.tail;if(arguments.length>1)r=e;else if(this.tail)o=this.tail.prev,r=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var a=this.length-1;o!==null;a--)r=t(r,o.value,a),o=o.prev;return r};bn.prototype.toArray=function(){for(var t=new Array(this.length),e=0,r=this.head;r!==null;e++)t[e]=r.value,r=r.next;return t};bn.prototype.toArrayReverse=function(){for(var t=new Array(this.length),e=0,r=this.tail;r!==null;e++)t[e]=r.value,r=r.prev;return t};bn.prototype.slice=function(t,e){e=e||this.length,e<0&&(e+=this.length),t=t||0,t<0&&(t+=this.length);var r=new bn;if(ethis.length&&(e=this.length);for(var o=0,a=this.head;a!==null&&othis.length&&(e=this.length);for(var o=this.length,a=this.tail;a!==null&&o>e;o--)a=a.prev;for(;a!==null&&o>t;o--,a=a.prev)r.push(a.value);return r};bn.prototype.splice=function(t,e,...r){t>this.length&&(t=this.length-1),t<0&&(t=this.length+t);for(var o=0,a=this.head;a!==null&&o{"use strict";var y5e=$P(),Ag=Symbol("max"),wf=Symbol("length"),Qm=Symbol("lengthCalculator"),Lw=Symbol("allowStale"),fg=Symbol("maxAge"),If=Symbol("dispose"),Hz=Symbol("noDisposeOnSet"),Ds=Symbol("lruList"),Gc=Symbol("cache"),jz=Symbol("updateAgeOnGet"),RN=()=>1,NN=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let r=this[Ag]=e.max||1/0,o=e.length||RN;if(this[Qm]=typeof o!="function"?RN:o,this[Lw]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[fg]=e.maxAge||0,this[If]=e.dispose,this[Hz]=e.noDisposeOnSet||!1,this[jz]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[Ag]=e||1/0,Nw(this)}get max(){return this[Ag]}set allowStale(e){this[Lw]=!!e}get allowStale(){return this[Lw]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[fg]=e,Nw(this)}get maxAge(){return this[fg]}set lengthCalculator(e){typeof e!="function"&&(e=RN),e!==this[Qm]&&(this[Qm]=e,this[wf]=0,this[Ds].forEach(r=>{r.length=this[Qm](r.value,r.key),this[wf]+=r.length})),Nw(this)}get lengthCalculator(){return this[Qm]}get length(){return this[wf]}get itemCount(){return this[Ds].length}rforEach(e,r){r=r||this;for(let o=this[Ds].tail;o!==null;){let a=o.prev;qz(this,e,o,r),o=a}}forEach(e,r){r=r||this;for(let o=this[Ds].head;o!==null;){let a=o.next;qz(this,e,o,r),o=a}}keys(){return this[Ds].toArray().map(e=>e.key)}values(){return this[Ds].toArray().map(e=>e.value)}reset(){this[If]&&this[Ds]&&this[Ds].length&&this[Ds].forEach(e=>this[If](e.key,e.value)),this[Gc]=new Map,this[Ds]=new y5e,this[wf]=0}dump(){return this[Ds].map(e=>eS(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[Ds]}set(e,r,o){if(o=o||this[fg],o&&typeof o!="number")throw new TypeError("maxAge must be a number");let a=o?Date.now():0,n=this[Qm](r,e);if(this[Gc].has(e)){if(n>this[Ag])return Fm(this,this[Gc].get(e)),!1;let p=this[Gc].get(e).value;return this[If]&&(this[Hz]||this[If](e,p.value)),p.now=a,p.maxAge=o,p.value=r,this[wf]+=n-p.length,p.length=n,this.get(e),Nw(this),!0}let u=new LN(e,r,n,a,o);return u.length>this[Ag]?(this[If]&&this[If](e,r),!1):(this[wf]+=u.length,this[Ds].unshift(u),this[Gc].set(e,this[Ds].head),Nw(this),!0)}has(e){if(!this[Gc].has(e))return!1;let r=this[Gc].get(e).value;return!eS(this,r)}get(e){return TN(this,e,!0)}peek(e){return TN(this,e,!1)}pop(){let e=this[Ds].tail;return e?(Fm(this,e),e.value):null}del(e){Fm(this,this[Gc].get(e))}load(e){this.reset();let r=Date.now();for(let o=e.length-1;o>=0;o--){let a=e[o],n=a.e||0;if(n===0)this.set(a.k,a.v);else{let u=n-r;u>0&&this.set(a.k,a.v,u)}}}prune(){this[Gc].forEach((e,r)=>TN(this,r,!1))}},TN=(t,e,r)=>{let o=t[Gc].get(e);if(o){let a=o.value;if(eS(t,a)){if(Fm(t,o),!t[Lw])return}else r&&(t[jz]&&(o.value.now=Date.now()),t[Ds].unshiftNode(o));return a.value}},eS=(t,e)=>{if(!e||!e.maxAge&&!t[fg])return!1;let r=Date.now()-e.now;return e.maxAge?r>e.maxAge:t[fg]&&r>t[fg]},Nw=t=>{if(t[wf]>t[Ag])for(let e=t[Ds].tail;t[wf]>t[Ag]&&e!==null;){let r=e.prev;Fm(t,e),e=r}},Fm=(t,e)=>{if(e){let r=e.value;t[If]&&t[If](r.key,r.value),t[wf]-=r.length,t[Gc].delete(r.key),t[Ds].removeNode(e)}},LN=class{constructor(e,r,o,a,n){this.key=e,this.value=r,this.length=o,this.now=a,this.maxAge=n||0}},qz=(t,e,r,o)=>{let a=r.value;eS(t,a)&&(Fm(t,r),t[Lw]||(a=void 0)),a&&e.call(o,a.value,a.key,t)};Gz.exports=NN});var Ul=_((Wkt,Jz)=>{var ON=class t{constructor(e,r){if(r=C5e(r),e instanceof t)return e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease?e:new t(e.raw,r);if(e instanceof MN)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=r,this.loose=!!r.loose,this.includePrerelease=!!r.includePrerelease,this.raw=e.trim().split(/\s+/).join(" "),this.set=this.raw.split("||").map(o=>this.parseRange(o.trim())).filter(o=>o.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${this.raw}`);if(this.set.length>1){let o=this.set[0];if(this.set=this.set.filter(a=>!Kz(a[0])),this.set.length===0)this.set=[o];else if(this.set.length>1){for(let a of this.set)if(a.length===1&&S5e(a[0])){this.set=[a];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){let o=((this.options.includePrerelease&&D5e)|(this.options.loose&&P5e))+":"+e,a=Yz.get(o);if(a)return a;let n=this.options.loose,u=n?ba[Jo.HYPHENRANGELOOSE]:ba[Jo.HYPHENRANGE];e=e.replace(u,O5e(this.options.includePrerelease)),gi("hyphen replace",e),e=e.replace(ba[Jo.COMPARATORTRIM],w5e),gi("comparator trim",e),e=e.replace(ba[Jo.TILDETRIM],B5e),gi("tilde trim",e),e=e.replace(ba[Jo.CARETTRIM],v5e),gi("caret trim",e);let A=e.split(" ").map(w=>b5e(w,this.options)).join(" ").split(/\s+/).map(w=>L5e(w,this.options));n&&(A=A.filter(w=>(gi("loose invalid filter",w,this.options),!!w.match(ba[Jo.COMPARATORLOOSE])))),gi("range list",A);let p=new Map,h=A.map(w=>new MN(w,this.options));for(let w of h){if(Kz(w))return[w];p.set(w.value,w)}p.size>1&&p.has("")&&p.delete("");let E=[...p.values()];return Yz.set(o,E),E}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Range is required");return this.set.some(o=>Vz(o,r)&&e.set.some(a=>Vz(a,r)&&o.every(n=>a.every(u=>n.intersects(u,r)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new I5e(e,this.options)}catch{return!1}for(let r=0;rt.value==="<0.0.0-0",S5e=t=>t.value==="",Vz=(t,e)=>{let r=!0,o=t.slice(),a=o.pop();for(;r&&o.length;)r=o.every(n=>a.intersects(n,e)),a=o.pop();return r},b5e=(t,e)=>(gi("comp",t,e),t=Q5e(t,e),gi("caret",t),t=x5e(t,e),gi("tildes",t),t=R5e(t,e),gi("xrange",t),t=N5e(t,e),gi("stars",t),t),zo=t=>!t||t.toLowerCase()==="x"||t==="*",x5e=(t,e)=>t.trim().split(/\s+/).map(r=>k5e(r,e)).join(" "),k5e=(t,e)=>{let r=e.loose?ba[Jo.TILDELOOSE]:ba[Jo.TILDE];return t.replace(r,(o,a,n,u,A)=>{gi("tilde",t,o,a,n,u,A);let p;return zo(a)?p="":zo(n)?p=`>=${a}.0.0 <${+a+1}.0.0-0`:zo(u)?p=`>=${a}.${n}.0 <${a}.${+n+1}.0-0`:A?(gi("replaceTilde pr",A),p=`>=${a}.${n}.${u}-${A} <${a}.${+n+1}.0-0`):p=`>=${a}.${n}.${u} <${a}.${+n+1}.0-0`,gi("tilde return",p),p})},Q5e=(t,e)=>t.trim().split(/\s+/).map(r=>F5e(r,e)).join(" "),F5e=(t,e)=>{gi("caret",t,e);let r=e.loose?ba[Jo.CARETLOOSE]:ba[Jo.CARET],o=e.includePrerelease?"-0":"";return t.replace(r,(a,n,u,A,p)=>{gi("caret",t,a,n,u,A,p);let h;return zo(n)?h="":zo(u)?h=`>=${n}.0.0${o} <${+n+1}.0.0-0`:zo(A)?n==="0"?h=`>=${n}.${u}.0${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.0${o} <${+n+1}.0.0-0`:p?(gi("replaceCaret pr",p),n==="0"?u==="0"?h=`>=${n}.${u}.${A}-${p} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}-${p} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A}-${p} <${+n+1}.0.0-0`):(gi("no pr"),n==="0"?u==="0"?h=`>=${n}.${u}.${A}${o} <${n}.${u}.${+A+1}-0`:h=`>=${n}.${u}.${A}${o} <${n}.${+u+1}.0-0`:h=`>=${n}.${u}.${A} <${+n+1}.0.0-0`),gi("caret return",h),h})},R5e=(t,e)=>(gi("replaceXRanges",t,e),t.split(/\s+/).map(r=>T5e(r,e)).join(" ")),T5e=(t,e)=>{t=t.trim();let r=e.loose?ba[Jo.XRANGELOOSE]:ba[Jo.XRANGE];return t.replace(r,(o,a,n,u,A,p)=>{gi("xRange",t,o,a,n,u,A,p);let h=zo(n),E=h||zo(u),w=E||zo(A),D=w;return a==="="&&D&&(a=""),p=e.includePrerelease?"-0":"",h?a===">"||a==="<"?o="<0.0.0-0":o="*":a&&D?(E&&(u=0),A=0,a===">"?(a=">=",E?(n=+n+1,u=0,A=0):(u=+u+1,A=0)):a==="<="&&(a="<",E?n=+n+1:u=+u+1),a==="<"&&(p="-0"),o=`${a+n}.${u}.${A}${p}`):E?o=`>=${n}.0.0${p} <${+n+1}.0.0-0`:w&&(o=`>=${n}.${u}.0${p} <${n}.${+u+1}.0-0`),gi("xRange return",o),o})},N5e=(t,e)=>(gi("replaceStars",t,e),t.trim().replace(ba[Jo.STAR],"")),L5e=(t,e)=>(gi("replaceGTE0",t,e),t.trim().replace(ba[e.includePrerelease?Jo.GTE0PRE:Jo.GTE0],"")),O5e=t=>(e,r,o,a,n,u,A,p,h,E,w,D,x)=>(zo(o)?r="":zo(a)?r=`>=${o}.0.0${t?"-0":""}`:zo(n)?r=`>=${o}.${a}.0${t?"-0":""}`:u?r=`>=${r}`:r=`>=${r}${t?"-0":""}`,zo(h)?p="":zo(E)?p=`<${+h+1}.0.0-0`:zo(w)?p=`<${h}.${+E+1}.0-0`:D?p=`<=${h}.${E}.${w}-${D}`:t?p=`<${h}.${E}.${+w+1}-0`:p=`<=${p}`,`${r} ${p}`.trim()),M5e=(t,e,r)=>{for(let o=0;o0){let a=t[o].semver;if(a.major===e.major&&a.minor===e.minor&&a.patch===e.patch)return!0}return!1}return!0}});var Ow=_((Ykt,tX)=>{var Mw=Symbol("SemVer ANY"),HN=class t{static get ANY(){return Mw}constructor(e,r){if(r=zz(r),e instanceof t){if(e.loose===!!r.loose)return e;e=e.value}e=e.trim().split(/\s+/).join(" "),_N("comparator",e,r),this.options=r,this.loose=!!r.loose,this.parse(e),this.semver===Mw?this.value="":this.value=this.operator+this.semver.version,_N("comp",this)}parse(e){let r=this.options.loose?Xz[Zz.COMPARATORLOOSE]:Xz[Zz.COMPARATOR],o=e.match(r);if(!o)throw new TypeError(`Invalid comparator: ${e}`);this.operator=o[1]!==void 0?o[1]:"",this.operator==="="&&(this.operator=""),o[2]?this.semver=new $z(o[2],this.options.loose):this.semver=Mw}toString(){return this.value}test(e){if(_N("Comparator.test",e,this.options.loose),this.semver===Mw||e===Mw)return!0;if(typeof e=="string")try{e=new $z(e,this.options)}catch{return!1}return UN(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof t))throw new TypeError("a Comparator is required");return this.operator===""?this.value===""?!0:new eX(e.value,r).test(this.value):e.operator===""?e.value===""?!0:new eX(this.value,r).test(e.semver):(r=zz(r),r.includePrerelease&&(this.value==="<0.0.0-0"||e.value==="<0.0.0-0")||!r.includePrerelease&&(this.value.startsWith("<0.0.0")||e.value.startsWith("<0.0.0"))?!1:!!(this.operator.startsWith(">")&&e.operator.startsWith(">")||this.operator.startsWith("<")&&e.operator.startsWith("<")||this.semver.version===e.semver.version&&this.operator.includes("=")&&e.operator.includes("=")||UN(this.semver,"<",e.semver,r)&&this.operator.startsWith(">")&&e.operator.startsWith("<")||UN(this.semver,">",e.semver,r)&&this.operator.startsWith("<")&&e.operator.startsWith(">")))}};tX.exports=HN;var zz=GP(),{safeRe:Xz,t:Zz}=xm(),UN=FN(),_N=Rw(),$z=Eo(),eX=Ul()});var Uw=_((Kkt,rX)=>{var U5e=Ul(),_5e=(t,e,r)=>{try{e=new U5e(e,r)}catch{return!1}return e.test(t)};rX.exports=_5e});var iX=_((Vkt,nX)=>{var H5e=Ul(),q5e=(t,e)=>new H5e(t,e).set.map(r=>r.map(o=>o.value).join(" ").trim().split(" "));nX.exports=q5e});var oX=_((Jkt,sX)=>{var j5e=Eo(),G5e=Ul(),W5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new G5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===-1)&&(o=u,a=new j5e(o,r))}),o};sX.exports=W5e});var lX=_((zkt,aX)=>{var Y5e=Eo(),K5e=Ul(),V5e=(t,e,r)=>{let o=null,a=null,n=null;try{n=new K5e(e,r)}catch{return null}return t.forEach(u=>{n.test(u)&&(!o||a.compare(u)===1)&&(o=u,a=new Y5e(o,r))}),o};aX.exports=V5e});var AX=_((Xkt,uX)=>{var qN=Eo(),J5e=Ul(),cX=Tw(),z5e=(t,e)=>{t=new J5e(t,e);let r=new qN("0.0.0");if(t.test(r)||(r=new qN("0.0.0-0"),t.test(r)))return r;r=null;for(let o=0;o{let A=new qN(u.semver.version);switch(u.operator){case">":A.prerelease.length===0?A.patch++:A.prerelease.push(0),A.raw=A.format();case"":case">=":(!n||cX(A,n))&&(n=A);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${u.operator}`)}}),n&&(!r||cX(r,n))&&(r=n)}return r&&t.test(r)?r:null};uX.exports=z5e});var pX=_((Zkt,fX)=>{var X5e=Ul(),Z5e=(t,e)=>{try{return new X5e(t,e).range||"*"}catch{return null}};fX.exports=Z5e});var tS=_(($kt,mX)=>{var $5e=Eo(),dX=Ow(),{ANY:eGe}=dX,tGe=Ul(),rGe=Uw(),hX=Tw(),gX=VP(),nGe=zP(),iGe=JP(),sGe=(t,e,r,o)=>{t=new $5e(t,o),e=new tGe(e,o);let a,n,u,A,p;switch(r){case">":a=hX,n=nGe,u=gX,A=">",p=">=";break;case"<":a=gX,n=iGe,u=hX,A="<",p="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(rGe(t,e,o))return!1;for(let h=0;h{x.semver===eGe&&(x=new dX(">=0.0.0")),w=w||x,D=D||x,a(x.semver,w.semver,o)?w=x:u(x.semver,D.semver,o)&&(D=x)}),w.operator===A||w.operator===p||(!D.operator||D.operator===A)&&n(t,D.semver))return!1;if(D.operator===p&&u(t,D.semver))return!1}return!0};mX.exports=sGe});var EX=_((eQt,yX)=>{var oGe=tS(),aGe=(t,e,r)=>oGe(t,e,">",r);yX.exports=aGe});var IX=_((tQt,CX)=>{var lGe=tS(),cGe=(t,e,r)=>lGe(t,e,"<",r);CX.exports=cGe});var vX=_((rQt,BX)=>{var wX=Ul(),uGe=(t,e,r)=>(t=new wX(t,r),e=new wX(e,r),t.intersects(e,r));BX.exports=uGe});var PX=_((nQt,DX)=>{var AGe=Uw(),fGe=Ml();DX.exports=(t,e,r)=>{let o=[],a=null,n=null,u=t.sort((E,w)=>fGe(E,w,r));for(let E of u)AGe(E,e,r)?(n=E,a||(a=E)):(n&&o.push([a,n]),n=null,a=null);a&&o.push([a,null]);let A=[];for(let[E,w]of o)E===w?A.push(E):!w&&E===u[0]?A.push("*"):w?E===u[0]?A.push(`<=${w}`):A.push(`${E} - ${w}`):A.push(`>=${E}`);let p=A.join(" || "),h=typeof e.raw=="string"?e.raw:String(e);return p.length{var SX=Ul(),GN=Ow(),{ANY:jN}=GN,_w=Uw(),WN=Ml(),pGe=(t,e,r={})=>{if(t===e)return!0;t=new SX(t,r),e=new SX(e,r);let o=!1;e:for(let a of t.set){for(let n of e.set){let u=gGe(a,n,r);if(o=o||u!==null,u)continue e}if(o)return!1}return!0},hGe=[new GN(">=0.0.0-0")],bX=[new GN(">=0.0.0")],gGe=(t,e,r)=>{if(t===e)return!0;if(t.length===1&&t[0].semver===jN){if(e.length===1&&e[0].semver===jN)return!0;r.includePrerelease?t=hGe:t=bX}if(e.length===1&&e[0].semver===jN){if(r.includePrerelease)return!0;e=bX}let o=new Set,a,n;for(let x of t)x.operator===">"||x.operator===">="?a=xX(a,x,r):x.operator==="<"||x.operator==="<="?n=kX(n,x,r):o.add(x.semver);if(o.size>1)return null;let u;if(a&&n){if(u=WN(a.semver,n.semver,r),u>0)return null;if(u===0&&(a.operator!==">="||n.operator!=="<="))return null}for(let x of o){if(a&&!_w(x,String(a),r)||n&&!_w(x,String(n),r))return null;for(let C of e)if(!_w(x,String(C),r))return!1;return!0}let A,p,h,E,w=n&&!r.includePrerelease&&n.semver.prerelease.length?n.semver:!1,D=a&&!r.includePrerelease&&a.semver.prerelease.length?a.semver:!1;w&&w.prerelease.length===1&&n.operator==="<"&&w.prerelease[0]===0&&(w=!1);for(let x of e){if(E=E||x.operator===">"||x.operator===">=",h=h||x.operator==="<"||x.operator==="<=",a){if(D&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===D.major&&x.semver.minor===D.minor&&x.semver.patch===D.patch&&(D=!1),x.operator===">"||x.operator===">="){if(A=xX(a,x,r),A===x&&A!==a)return!1}else if(a.operator===">="&&!_w(a.semver,String(x),r))return!1}if(n){if(w&&x.semver.prerelease&&x.semver.prerelease.length&&x.semver.major===w.major&&x.semver.minor===w.minor&&x.semver.patch===w.patch&&(w=!1),x.operator==="<"||x.operator==="<="){if(p=kX(n,x,r),p===x&&p!==n)return!1}else if(n.operator==="<="&&!_w(n.semver,String(x),r))return!1}if(!x.operator&&(n||a)&&u!==0)return!1}return!(a&&h&&!n&&u!==0||n&&E&&!a&&u!==0||D||w)},xX=(t,e,r)=>{if(!t)return e;let o=WN(t.semver,e.semver,r);return o>0?t:o<0||e.operator===">"&&t.operator===">="?e:t},kX=(t,e,r)=>{if(!t)return e;let o=WN(t.semver,e.semver,r);return o<0?t:o>0||e.operator==="<"&&t.operator==="<="?e:t};QX.exports=pGe});var ni=_((sQt,NX)=>{var YN=xm(),RX=Fw(),dGe=Eo(),TX=bN(),mGe=cg(),yGe=ez(),EGe=rz(),CGe=sz(),IGe=lz(),wGe=uz(),BGe=fz(),vGe=hz(),DGe=dz(),PGe=Ml(),SGe=Cz(),bGe=wz(),xGe=KP(),kGe=Pz(),QGe=bz(),FGe=Tw(),RGe=VP(),TGe=kN(),NGe=QN(),LGe=JP(),OGe=zP(),MGe=FN(),UGe=Oz(),_Ge=Ow(),HGe=Ul(),qGe=Uw(),jGe=iX(),GGe=oX(),WGe=lX(),YGe=AX(),KGe=pX(),VGe=tS(),JGe=EX(),zGe=IX(),XGe=vX(),ZGe=PX(),$Ge=FX();NX.exports={parse:mGe,valid:yGe,clean:EGe,inc:CGe,diff:IGe,major:wGe,minor:BGe,patch:vGe,prerelease:DGe,compare:PGe,rcompare:SGe,compareLoose:bGe,compareBuild:xGe,sort:kGe,rsort:QGe,gt:FGe,lt:RGe,eq:TGe,neq:NGe,gte:LGe,lte:OGe,cmp:MGe,coerce:UGe,Comparator:_Ge,Range:HGe,satisfies:qGe,toComparators:jGe,maxSatisfying:GGe,minSatisfying:WGe,minVersion:YGe,validRange:KGe,outside:VGe,gtr:JGe,ltr:zGe,intersects:XGe,simplifyRange:ZGe,subset:$Ge,SemVer:dGe,re:YN.re,src:YN.src,tokens:YN.t,SEMVER_SPEC_VERSION:RX.SEMVER_SPEC_VERSION,RELEASE_TYPES:RX.RELEASE_TYPES,compareIdentifiers:TX.compareIdentifiers,rcompareIdentifiers:TX.rcompareIdentifiers}});var OX=_((oQt,LX)=>{"use strict";function e9e(t,e){function r(){this.constructor=t}r.prototype=e.prototype,t.prototype=new r}function pg(t,e,r,o){this.message=t,this.expected=e,this.found=r,this.location=o,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,pg)}e9e(pg,Error);pg.buildMessage=function(t,e){var r={literal:function(h){return'"'+a(h.text)+'"'},class:function(h){var E="",w;for(w=0;w0){for(w=1,D=1;w{switch(Fe[1]){case"|":return xe|Fe[3];case"&":return xe&Fe[3];case"^":return xe^Fe[3]}},$)},D="!",x=Ne("!",!1),C=function($){return!$},T="(",L=Ne("(",!1),U=")",J=Ne(")",!1),te=function($){return $},le=/^[^ \t\n\r()!|&\^]/,ce=Te([" "," ",` +`,"\r","(",")","!","|","&","^"],!0,!1),ue=function($){return e.queryPattern.test($)},Ie=function($){return e.checkFn($)},he=be("whitespace"),De=/^[ \t\n\r]/,Ee=Te([" "," ",` +`,"\r"],!1,!1),g=0,me=0,Ce=[{line:1,column:1}],fe=0,ie=[],Z=0,Pe;if("startRule"in e){if(!(e.startRule in o))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');a=o[e.startRule]}function Re(){return t.substring(me,g)}function ht(){return He(me,g)}function q($,se){throw se=se!==void 0?se:He(me,g),S([be($)],t.substring(me,g),se)}function nt($,se){throw se=se!==void 0?se:He(me,g),I($,se)}function Ne($,se){return{type:"literal",text:$,ignoreCase:se}}function Te($,se,xe){return{type:"class",parts:$,inverted:se,ignoreCase:xe}}function ke(){return{type:"any"}}function Ve(){return{type:"end"}}function be($){return{type:"other",description:$}}function tt($){var se=Ce[$],xe;if(se)return se;for(xe=$-1;!Ce[xe];)xe--;for(se=Ce[xe],se={line:se.line,column:se.column};xe<$;)t.charCodeAt(xe)===10?(se.line++,se.column=1):se.column++,xe++;return Ce[$]=se,se}function He($,se){var xe=tt($),Fe=tt(se);return{start:{offset:$,line:xe.line,column:xe.column},end:{offset:se,line:Fe.line,column:Fe.column}}}function b($){gfe&&(fe=g,ie=[]),ie.push($))}function I($,se){return new pg($,null,null,se)}function S($,se,xe){return new pg(pg.buildMessage($,se),$,se,xe)}function y(){var $,se,xe,Fe,lt,Et,qt,nr;if($=g,se=R(),se!==r){for(xe=[],Fe=g,lt=X(),lt!==r?(t.charCodeAt(g)===124?(Et=n,g++):(Et=r,Z===0&&b(u)),Et===r&&(t.charCodeAt(g)===38?(Et=A,g++):(Et=r,Z===0&&b(p)),Et===r&&(t.charCodeAt(g)===94?(Et=h,g++):(Et=r,Z===0&&b(E)))),Et!==r?(qt=X(),qt!==r?(nr=R(),nr!==r?(lt=[lt,Et,qt,nr],Fe=lt):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r);Fe!==r;)xe.push(Fe),Fe=g,lt=X(),lt!==r?(t.charCodeAt(g)===124?(Et=n,g++):(Et=r,Z===0&&b(u)),Et===r&&(t.charCodeAt(g)===38?(Et=A,g++):(Et=r,Z===0&&b(p)),Et===r&&(t.charCodeAt(g)===94?(Et=h,g++):(Et=r,Z===0&&b(E)))),Et!==r?(qt=X(),qt!==r?(nr=R(),nr!==r?(lt=[lt,Et,qt,nr],Fe=lt):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r)):(g=Fe,Fe=r);xe!==r?(me=$,se=w(se,xe),$=se):(g=$,$=r)}else g=$,$=r;return $}function R(){var $,se,xe,Fe,lt,Et;return $=g,t.charCodeAt(g)===33?(se=D,g++):(se=r,Z===0&&b(x)),se!==r?(xe=R(),xe!==r?(me=$,se=C(xe),$=se):(g=$,$=r)):(g=$,$=r),$===r&&($=g,t.charCodeAt(g)===40?(se=T,g++):(se=r,Z===0&&b(L)),se!==r?(xe=X(),xe!==r?(Fe=y(),Fe!==r?(lt=X(),lt!==r?(t.charCodeAt(g)===41?(Et=U,g++):(Et=r,Z===0&&b(J)),Et!==r?(me=$,se=te(Fe),$=se):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r)):(g=$,$=r),$===r&&($=z())),$}function z(){var $,se,xe,Fe,lt;if($=g,se=X(),se!==r){if(xe=g,Fe=[],le.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,Z===0&&b(ce)),lt!==r)for(;lt!==r;)Fe.push(lt),le.test(t.charAt(g))?(lt=t.charAt(g),g++):(lt=r,Z===0&&b(ce));else Fe=r;Fe!==r?xe=t.substring(xe,g):xe=Fe,xe!==r?(me=g,Fe=ue(xe),Fe?Fe=void 0:Fe=r,Fe!==r?(me=$,se=Ie(xe),$=se):(g=$,$=r)):(g=$,$=r)}else g=$,$=r;return $}function X(){var $,se;for(Z++,$=[],De.test(t.charAt(g))?(se=t.charAt(g),g++):(se=r,Z===0&&b(Ee));se!==r;)$.push(se),De.test(t.charAt(g))?(se=t.charAt(g),g++):(se=r,Z===0&&b(Ee));return Z--,$===r&&(se=r,Z===0&&b(he)),$}if(Pe=a(),Pe!==r&&g===t.length)return Pe;throw Pe!==r&&g{var{parse:r9e}=OX();rS.makeParser=(t=/[a-z]+/)=>(e,r)=>r9e(e,{queryPattern:t,checkFn:r});rS.parse=rS.makeParser()});var _X=_((lQt,UX)=>{"use strict";UX.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var KN=_((cQt,qX)=>{var Hw=_X(),HX={};for(let t of Object.keys(Hw))HX[Hw[t]]=t;var fr={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};qX.exports=fr;for(let t of Object.keys(fr)){if(!("channels"in fr[t]))throw new Error("missing channels property: "+t);if(!("labels"in fr[t]))throw new Error("missing channel labels property: "+t);if(fr[t].labels.length!==fr[t].channels)throw new Error("channel and label counts mismatch: "+t);let{channels:e,labels:r}=fr[t];delete fr[t].channels,delete fr[t].labels,Object.defineProperty(fr[t],"channels",{value:e}),Object.defineProperty(fr[t],"labels",{value:r})}fr.rgb.hsl=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(e,r,o),n=Math.max(e,r,o),u=n-a,A,p;n===a?A=0:e===n?A=(r-o)/u:r===n?A=2+(o-e)/u:o===n&&(A=4+(e-r)/u),A=Math.min(A*60,360),A<0&&(A+=360);let h=(a+n)/2;return n===a?p=0:h<=.5?p=u/(n+a):p=u/(2-n-a),[A,p*100,h*100]};fr.rgb.hsv=function(t){let e,r,o,a,n,u=t[0]/255,A=t[1]/255,p=t[2]/255,h=Math.max(u,A,p),E=h-Math.min(u,A,p),w=function(D){return(h-D)/6/E+1/2};return E===0?(a=0,n=0):(n=E/h,e=w(u),r=w(A),o=w(p),u===h?a=o-r:A===h?a=1/3+e-o:p===h&&(a=2/3+r-e),a<0?a+=1:a>1&&(a-=1)),[a*360,n*100,h*100]};fr.rgb.hwb=function(t){let e=t[0],r=t[1],o=t[2],a=fr.rgb.hsl(t)[0],n=1/255*Math.min(e,Math.min(r,o));return o=1-1/255*Math.max(e,Math.max(r,o)),[a,n*100,o*100]};fr.rgb.cmyk=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(1-e,1-r,1-o),n=(1-e-a)/(1-a)||0,u=(1-r-a)/(1-a)||0,A=(1-o-a)/(1-a)||0;return[n*100,u*100,A*100,a*100]};function n9e(t,e){return(t[0]-e[0])**2+(t[1]-e[1])**2+(t[2]-e[2])**2}fr.rgb.keyword=function(t){let e=HX[t];if(e)return e;let r=1/0,o;for(let a of Object.keys(Hw)){let n=Hw[a],u=n9e(t,n);u.04045?((e+.055)/1.055)**2.4:e/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,o=o>.04045?((o+.055)/1.055)**2.4:o/12.92;let a=e*.4124+r*.3576+o*.1805,n=e*.2126+r*.7152+o*.0722,u=e*.0193+r*.1192+o*.9505;return[a*100,n*100,u*100]};fr.rgb.lab=function(t){let e=fr.rgb.xyz(t),r=e[0],o=e[1],a=e[2];r/=95.047,o/=100,a/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116,a=a>.008856?a**(1/3):7.787*a+16/116;let n=116*o-16,u=500*(r-o),A=200*(o-a);return[n,u,A]};fr.hsl.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a,n,u;if(r===0)return u=o*255,[u,u,u];o<.5?a=o*(1+r):a=o+r-o*r;let A=2*o-a,p=[0,0,0];for(let h=0;h<3;h++)n=e+1/3*-(h-1),n<0&&n++,n>1&&n--,6*n<1?u=A+(a-A)*6*n:2*n<1?u=a:3*n<2?u=A+(a-A)*(2/3-n)*6:u=A,p[h]=u*255;return p};fr.hsl.hsv=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=r,n=Math.max(o,.01);o*=2,r*=o<=1?o:2-o,a*=n<=1?n:2-n;let u=(o+r)/2,A=o===0?2*a/(n+a):2*r/(o+r);return[e,A*100,u*100]};fr.hsv.rgb=function(t){let e=t[0]/60,r=t[1]/100,o=t[2]/100,a=Math.floor(e)%6,n=e-Math.floor(e),u=255*o*(1-r),A=255*o*(1-r*n),p=255*o*(1-r*(1-n));switch(o*=255,a){case 0:return[o,p,u];case 1:return[A,o,u];case 2:return[u,o,p];case 3:return[u,A,o];case 4:return[p,u,o];case 5:return[o,u,A]}};fr.hsv.hsl=function(t){let e=t[0],r=t[1]/100,o=t[2]/100,a=Math.max(o,.01),n,u;u=(2-r)*o;let A=(2-r)*a;return n=r*a,n/=A<=1?A:2-A,n=n||0,u/=2,[e,n*100,u*100]};fr.hwb.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100,a=r+o,n;a>1&&(r/=a,o/=a);let u=Math.floor(6*e),A=1-o;n=6*e-u,u&1&&(n=1-n);let p=r+n*(A-r),h,E,w;switch(u){default:case 6:case 0:h=A,E=p,w=r;break;case 1:h=p,E=A,w=r;break;case 2:h=r,E=A,w=p;break;case 3:h=r,E=p,w=A;break;case 4:h=p,E=r,w=A;break;case 5:h=A,E=r,w=p;break}return[h*255,E*255,w*255]};fr.cmyk.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a=t[3]/100,n=1-Math.min(1,e*(1-a)+a),u=1-Math.min(1,r*(1-a)+a),A=1-Math.min(1,o*(1-a)+a);return[n*255,u*255,A*255]};fr.xyz.rgb=function(t){let e=t[0]/100,r=t[1]/100,o=t[2]/100,a,n,u;return a=e*3.2406+r*-1.5372+o*-.4986,n=e*-.9689+r*1.8758+o*.0415,u=e*.0557+r*-.204+o*1.057,a=a>.0031308?1.055*a**(1/2.4)-.055:a*12.92,n=n>.0031308?1.055*n**(1/2.4)-.055:n*12.92,u=u>.0031308?1.055*u**(1/2.4)-.055:u*12.92,a=Math.min(Math.max(0,a),1),n=Math.min(Math.max(0,n),1),u=Math.min(Math.max(0,u),1),[a*255,n*255,u*255]};fr.xyz.lab=function(t){let e=t[0],r=t[1],o=t[2];e/=95.047,r/=100,o/=108.883,e=e>.008856?e**(1/3):7.787*e+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,o=o>.008856?o**(1/3):7.787*o+16/116;let a=116*r-16,n=500*(e-r),u=200*(r-o);return[a,n,u]};fr.lab.xyz=function(t){let e=t[0],r=t[1],o=t[2],a,n,u;n=(e+16)/116,a=r/500+n,u=n-o/200;let A=n**3,p=a**3,h=u**3;return n=A>.008856?A:(n-16/116)/7.787,a=p>.008856?p:(a-16/116)/7.787,u=h>.008856?h:(u-16/116)/7.787,a*=95.047,n*=100,u*=108.883,[a,n,u]};fr.lab.lch=function(t){let e=t[0],r=t[1],o=t[2],a;a=Math.atan2(o,r)*360/2/Math.PI,a<0&&(a+=360);let u=Math.sqrt(r*r+o*o);return[e,u,a]};fr.lch.lab=function(t){let e=t[0],r=t[1],a=t[2]/360*2*Math.PI,n=r*Math.cos(a),u=r*Math.sin(a);return[e,n,u]};fr.rgb.ansi16=function(t,e=null){let[r,o,a]=t,n=e===null?fr.rgb.hsv(t)[2]:e;if(n=Math.round(n/50),n===0)return 30;let u=30+(Math.round(a/255)<<2|Math.round(o/255)<<1|Math.round(r/255));return n===2&&(u+=60),u};fr.hsv.ansi16=function(t){return fr.rgb.ansi16(fr.hsv.rgb(t),t[2])};fr.rgb.ansi256=function(t){let e=t[0],r=t[1],o=t[2];return e===r&&r===o?e<8?16:e>248?231:Math.round((e-8)/247*24)+232:16+36*Math.round(e/255*5)+6*Math.round(r/255*5)+Math.round(o/255*5)};fr.ansi16.rgb=function(t){let e=t%10;if(e===0||e===7)return t>50&&(e+=3.5),e=e/10.5*255,[e,e,e];let r=(~~(t>50)+1)*.5,o=(e&1)*r*255,a=(e>>1&1)*r*255,n=(e>>2&1)*r*255;return[o,a,n]};fr.ansi256.rgb=function(t){if(t>=232){let n=(t-232)*10+8;return[n,n,n]}t-=16;let e,r=Math.floor(t/36)/5*255,o=Math.floor((e=t%36)/6)/5*255,a=e%6/5*255;return[r,o,a]};fr.rgb.hex=function(t){let r=(((Math.round(t[0])&255)<<16)+((Math.round(t[1])&255)<<8)+(Math.round(t[2])&255)).toString(16).toUpperCase();return"000000".substring(r.length)+r};fr.hex.rgb=function(t){let e=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!e)return[0,0,0];let r=e[0];e[0].length===3&&(r=r.split("").map(A=>A+A).join(""));let o=parseInt(r,16),a=o>>16&255,n=o>>8&255,u=o&255;return[a,n,u]};fr.rgb.hcg=function(t){let e=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.max(Math.max(e,r),o),n=Math.min(Math.min(e,r),o),u=a-n,A,p;return u<1?A=n/(1-u):A=0,u<=0?p=0:a===e?p=(r-o)/u%6:a===r?p=2+(o-e)/u:p=4+(e-r)/u,p/=6,p%=1,[p*360,u*100,A*100]};fr.hsl.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=r<.5?2*e*r:2*e*(1-r),a=0;return o<1&&(a=(r-.5*o)/(1-o)),[t[0],o*100,a*100]};fr.hsv.hcg=function(t){let e=t[1]/100,r=t[2]/100,o=e*r,a=0;return o<1&&(a=(r-o)/(1-o)),[t[0],o*100,a*100]};fr.hcg.rgb=function(t){let e=t[0]/360,r=t[1]/100,o=t[2]/100;if(r===0)return[o*255,o*255,o*255];let a=[0,0,0],n=e%1*6,u=n%1,A=1-u,p=0;switch(Math.floor(n)){case 0:a[0]=1,a[1]=u,a[2]=0;break;case 1:a[0]=A,a[1]=1,a[2]=0;break;case 2:a[0]=0,a[1]=1,a[2]=u;break;case 3:a[0]=0,a[1]=A,a[2]=1;break;case 4:a[0]=u,a[1]=0,a[2]=1;break;default:a[0]=1,a[1]=0,a[2]=A}return p=(1-r)*o,[(r*a[0]+p)*255,(r*a[1]+p)*255,(r*a[2]+p)*255]};fr.hcg.hsv=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e),a=0;return o>0&&(a=e/o),[t[0],a*100,o*100]};fr.hcg.hsl=function(t){let e=t[1]/100,o=t[2]/100*(1-e)+.5*e,a=0;return o>0&&o<.5?a=e/(2*o):o>=.5&&o<1&&(a=e/(2*(1-o))),[t[0],a*100,o*100]};fr.hcg.hwb=function(t){let e=t[1]/100,r=t[2]/100,o=e+r*(1-e);return[t[0],(o-e)*100,(1-o)*100]};fr.hwb.hcg=function(t){let e=t[1]/100,o=1-t[2]/100,a=o-e,n=0;return a<1&&(n=(o-a)/(1-a)),[t[0],a*100,n*100]};fr.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]};fr.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]};fr.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]};fr.gray.hsl=function(t){return[0,0,t[0]]};fr.gray.hsv=fr.gray.hsl;fr.gray.hwb=function(t){return[0,100,t[0]]};fr.gray.cmyk=function(t){return[0,0,0,t[0]]};fr.gray.lab=function(t){return[t[0],0,0]};fr.gray.hex=function(t){let e=Math.round(t[0]/100*255)&255,o=((e<<16)+(e<<8)+e).toString(16).toUpperCase();return"000000".substring(o.length)+o};fr.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]}});var GX=_((uQt,jX)=>{var nS=KN();function i9e(){let t={},e=Object.keys(nS);for(let r=e.length,o=0;o{var VN=KN(),l9e=GX(),Rm={},c9e=Object.keys(VN);function u9e(t){let e=function(...r){let o=r[0];return o==null?o:(o.length>1&&(r=o),t(r))};return"conversion"in t&&(e.conversion=t.conversion),e}function A9e(t){let e=function(...r){let o=r[0];if(o==null)return o;o.length>1&&(r=o);let a=t(r);if(typeof a=="object")for(let n=a.length,u=0;u{Rm[t]={},Object.defineProperty(Rm[t],"channels",{value:VN[t].channels}),Object.defineProperty(Rm[t],"labels",{value:VN[t].labels});let e=l9e(t);Object.keys(e).forEach(o=>{let a=e[o];Rm[t][o]=A9e(a),Rm[t][o].raw=u9e(a)})});WX.exports=Rm});var qw=_((fQt,XX)=>{"use strict";var KX=(t,e)=>(...r)=>`\x1B[${t(...r)+e}m`,VX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};5;${o}m`},JX=(t,e)=>(...r)=>{let o=t(...r);return`\x1B[${38+e};2;${o[0]};${o[1]};${o[2]}m`},iS=t=>t,zX=(t,e,r)=>[t,e,r],Tm=(t,e,r)=>{Object.defineProperty(t,e,{get:()=>{let o=r();return Object.defineProperty(t,e,{value:o,enumerable:!0,configurable:!0}),o},enumerable:!0,configurable:!0})},JN,Nm=(t,e,r,o)=>{JN===void 0&&(JN=YX());let a=o?10:0,n={};for(let[u,A]of Object.entries(JN)){let p=u==="ansi16"?"ansi":u;u===e?n[p]=t(r,a):typeof A=="object"&&(n[p]=t(A[e],a))}return n};function f9e(){let t=new Map,e={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};e.color.gray=e.color.blackBright,e.bgColor.bgGray=e.bgColor.bgBlackBright,e.color.grey=e.color.blackBright,e.bgColor.bgGrey=e.bgColor.bgBlackBright;for(let[r,o]of Object.entries(e)){for(let[a,n]of Object.entries(o))e[a]={open:`\x1B[${n[0]}m`,close:`\x1B[${n[1]}m`},o[a]=e[a],t.set(n[0],n[1]);Object.defineProperty(e,r,{value:o,enumerable:!1})}return Object.defineProperty(e,"codes",{value:t,enumerable:!1}),e.color.close="\x1B[39m",e.bgColor.close="\x1B[49m",Tm(e.color,"ansi",()=>Nm(KX,"ansi16",iS,!1)),Tm(e.color,"ansi256",()=>Nm(VX,"ansi256",iS,!1)),Tm(e.color,"ansi16m",()=>Nm(JX,"rgb",zX,!1)),Tm(e.bgColor,"ansi",()=>Nm(KX,"ansi16",iS,!0)),Tm(e.bgColor,"ansi256",()=>Nm(VX,"ansi256",iS,!0)),Tm(e.bgColor,"ansi16m",()=>Nm(JX,"rgb",zX,!0)),e}Object.defineProperty(XX,"exports",{enumerable:!0,get:f9e})});var $X=_((pQt,ZX)=>{"use strict";ZX.exports=(t,e=process.argv)=>{let r=t.startsWith("-")?"":t.length===1?"-":"--",o=e.indexOf(r+t),a=e.indexOf("--");return o!==-1&&(a===-1||o{"use strict";var p9e=ve("os"),eZ=ve("tty"),_l=$X(),{env:cs}=process,Zp;_l("no-color")||_l("no-colors")||_l("color=false")||_l("color=never")?Zp=0:(_l("color")||_l("colors")||_l("color=true")||_l("color=always"))&&(Zp=1);"FORCE_COLOR"in cs&&(cs.FORCE_COLOR==="true"?Zp=1:cs.FORCE_COLOR==="false"?Zp=0:Zp=cs.FORCE_COLOR.length===0?1:Math.min(parseInt(cs.FORCE_COLOR,10),3));function zN(t){return t===0?!1:{level:t,hasBasic:!0,has256:t>=2,has16m:t>=3}}function XN(t,e){if(Zp===0)return 0;if(_l("color=16m")||_l("color=full")||_l("color=truecolor"))return 3;if(_l("color=256"))return 2;if(t&&!e&&Zp===void 0)return 0;let r=Zp||0;if(cs.TERM==="dumb")return r;if(process.platform==="win32"){let o=p9e.release().split(".");return Number(o[0])>=10&&Number(o[2])>=10586?Number(o[2])>=14931?3:2:1}if("CI"in cs)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI"].some(o=>o in cs)||cs.CI_NAME==="codeship"?1:r;if("TEAMCITY_VERSION"in cs)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(cs.TEAMCITY_VERSION)?1:0;if("GITHUB_ACTIONS"in cs)return 1;if(cs.COLORTERM==="truecolor")return 3;if("TERM_PROGRAM"in cs){let o=parseInt((cs.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(cs.TERM_PROGRAM){case"iTerm.app":return o>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(cs.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(cs.TERM)||"COLORTERM"in cs?1:r}function h9e(t){let e=XN(t,t&&t.isTTY);return zN(e)}tZ.exports={supportsColor:h9e,stdout:zN(XN(!0,eZ.isatty(1))),stderr:zN(XN(!0,eZ.isatty(2)))}});var nZ=_((gQt,rZ)=>{"use strict";var g9e=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},d9e=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};rZ.exports={stringReplaceAll:g9e,stringEncaseCRLFWithFirstIndex:d9e}});var lZ=_((dQt,aZ)=>{"use strict";var m9e=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,iZ=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,y9e=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,E9e=/\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.)|([^\\])/gi,C9e=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function oZ(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):C9e.get(t)||t}function I9e(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(y9e))r.push(a[2].replace(E9e,(A,p,h)=>p?oZ(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function w9e(t){iZ.lastIndex=0;let e=[],r;for(;(r=iZ.exec(t))!==null;){let o=r[1];if(r[2]){let a=I9e(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function sZ(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}aZ.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(m9e,(n,u,A,p,h,E)=>{if(u)a.push(oZ(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:sZ(t,r)(w)),r.push({inverse:A,styles:w9e(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(sZ(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var iL=_((mQt,fZ)=>{"use strict";var jw=qw(),{stdout:eL,stderr:tL}=ZN(),{stringReplaceAll:B9e,stringEncaseCRLFWithFirstIndex:v9e}=nZ(),cZ=["ansi","ansi","ansi256","ansi16m"],Lm=Object.create(null),D9e=(t,e={})=>{if(e.level>3||e.level<0)throw new Error("The `level` option should be an integer from 0 to 3");let r=eL?eL.level:0;t.level=e.level===void 0?r:e.level},rL=class{constructor(e){return uZ(e)}},uZ=t=>{let e={};return D9e(e,t),e.template=(...r)=>b9e(e.template,...r),Object.setPrototypeOf(e,sS.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=rL,e.template};function sS(t){return uZ(t)}for(let[t,e]of Object.entries(jw))Lm[t]={get(){let r=oS(this,nL(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};Lm.visible={get(){let t=oS(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var AZ=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of AZ)Lm[t]={get(){let{level:e}=this;return function(...r){let o=nL(jw.color[cZ[e]][t](...r),jw.color.close,this._styler);return oS(this,o,this._isEmpty)}}};for(let t of AZ){let e="bg"+t[0].toUpperCase()+t.slice(1);Lm[e]={get(){let{level:r}=this;return function(...o){let a=nL(jw.bgColor[cZ[r]][t](...o),jw.bgColor.close,this._styler);return oS(this,a,this._isEmpty)}}}}var P9e=Object.defineProperties(()=>{},{...Lm,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),nL=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},oS=(t,e,r)=>{let o=(...a)=>S9e(o,a.length===1?""+a[0]:a.join(" "));return o.__proto__=P9e,o._generator=t,o._styler=e,o._isEmpty=r,o},S9e=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=B9e(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=v9e(e,a,o,n)),o+e+a},$N,b9e=(t,...e)=>{let[r]=e;if(!Array.isArray(r))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";Hl.isInteger=t=>typeof t=="number"?Number.isInteger(t):typeof t=="string"&&t.trim()!==""?Number.isInteger(Number(t)):!1;Hl.find=(t,e)=>t.nodes.find(r=>r.type===e);Hl.exceedsLimit=(t,e,r=1,o)=>o===!1||!Hl.isInteger(t)||!Hl.isInteger(e)?!1:(Number(e)-Number(t))/Number(r)>=o;Hl.escapeNode=(t,e=0,r)=>{let o=t.nodes[e];o&&(r&&o.type===r||o.type==="open"||o.type==="close")&&o.escaped!==!0&&(o.value="\\"+o.value,o.escaped=!0)};Hl.encloseBrace=t=>t.type!=="brace"||t.commas>>0+t.ranges>>0?!1:(t.invalid=!0,!0);Hl.isInvalidBrace=t=>t.type!=="brace"?!1:t.invalid===!0||t.dollar?!0:!(t.commas>>0+t.ranges>>0)||t.open!==!0||t.close!==!0?(t.invalid=!0,!0):!1;Hl.isOpenOrClose=t=>t.type==="open"||t.type==="close"?!0:t.open===!0||t.close===!0;Hl.reduce=t=>t.reduce((e,r)=>(r.type==="text"&&e.push(r.value),r.type==="range"&&(r.type="text"),e),[]);Hl.flatten=(...t)=>{let e=[],r=o=>{for(let a=0;a{"use strict";var pZ=aS();hZ.exports=(t,e={})=>{let r=(o,a={})=>{let n=e.escapeInvalid&&pZ.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A="";if(o.value)return(n||u)&&pZ.isOpenOrClose(o)?"\\"+o.value:o.value;if(o.value)return o.value;if(o.nodes)for(let p of o.nodes)A+=r(p);return A};return r(t)}});var dZ=_((CQt,gZ)=>{"use strict";gZ.exports=function(t){return typeof t=="number"?t-t===0:typeof t=="string"&&t.trim()!==""?Number.isFinite?Number.isFinite(+t):isFinite(+t):!1}});var DZ=_((IQt,vZ)=>{"use strict";var mZ=dZ(),hg=(t,e,r)=>{if(mZ(t)===!1)throw new TypeError("toRegexRange: expected the first argument to be a number");if(e===void 0||t===e)return String(t);if(mZ(e)===!1)throw new TypeError("toRegexRange: expected the second argument to be a number.");let o={relaxZeros:!0,...r};typeof o.strictZeros=="boolean"&&(o.relaxZeros=o.strictZeros===!1);let a=String(o.relaxZeros),n=String(o.shorthand),u=String(o.capture),A=String(o.wrap),p=t+":"+e+"="+a+n+u+A;if(hg.cache.hasOwnProperty(p))return hg.cache[p].result;let h=Math.min(t,e),E=Math.max(t,e);if(Math.abs(h-E)===1){let T=t+"|"+e;return o.capture?`(${T})`:o.wrap===!1?T:`(?:${T})`}let w=BZ(t)||BZ(e),D={min:t,max:e,a:h,b:E},x=[],C=[];if(w&&(D.isPadded=w,D.maxLen=String(D.max).length),h<0){let T=E<0?Math.abs(E):1;C=yZ(T,Math.abs(h),D,o),h=D.a=0}return E>=0&&(x=yZ(h,E,D,o)),D.negatives=C,D.positives=x,D.result=x9e(C,x,o),o.capture===!0?D.result=`(${D.result})`:o.wrap!==!1&&x.length+C.length>1&&(D.result=`(?:${D.result})`),hg.cache[p]=D,D.result};function x9e(t,e,r){let o=sL(t,e,"-",!1,r)||[],a=sL(e,t,"",!1,r)||[],n=sL(t,e,"-?",!0,r)||[];return o.concat(n).concat(a).join("|")}function k9e(t,e){let r=1,o=1,a=CZ(t,r),n=new Set([e]);for(;t<=a&&a<=e;)n.add(a),r+=1,a=CZ(t,r);for(a=IZ(e+1,o)-1;t1&&A.count.pop(),A.count.push(E.count[0]),A.string=A.pattern+wZ(A.count),u=h+1;continue}r.isPadded&&(w=N9e(h,r,o)),E.string=w+E.pattern+wZ(E.count),n.push(E),u=h+1,A=E}return n}function sL(t,e,r,o,a){let n=[];for(let u of t){let{string:A}=u;!o&&!EZ(e,"string",A)&&n.push(r+A),o&&EZ(e,"string",A)&&n.push(r+A)}return n}function F9e(t,e){let r=[];for(let o=0;oe?1:e>t?-1:0}function EZ(t,e,r){return t.some(o=>o[e]===r)}function CZ(t,e){return Number(String(t).slice(0,-e)+"9".repeat(e))}function IZ(t,e){return t-t%Math.pow(10,e)}function wZ(t){let[e=0,r=""]=t;return r||e>1?`{${e+(r?","+r:"")}}`:""}function T9e(t,e,r){return`[${t}${e-t===1?"":"-"}${e}]`}function BZ(t){return/^-?(0+)\d/.test(t)}function N9e(t,e,r){if(!e.isPadded)return t;let o=Math.abs(e.maxLen-String(t).length),a=r.relaxZeros!==!1;switch(o){case 0:return"";case 1:return a?"0?":"0";case 2:return a?"0{0,2}":"00";default:return a?`0{0,${o}}`:`0{${o}}`}}hg.cache={};hg.clearCache=()=>hg.cache={};vZ.exports=hg});var lL=_((wQt,RZ)=>{"use strict";var L9e=ve("util"),bZ=DZ(),PZ=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),O9e=t=>e=>t===!0?Number(e):String(e),oL=t=>typeof t=="number"||typeof t=="string"&&t!=="",Ww=t=>Number.isInteger(+t),aL=t=>{let e=`${t}`,r=-1;if(e[0]==="-"&&(e=e.slice(1)),e==="0")return!1;for(;e[++r]==="0";);return r>0},M9e=(t,e,r)=>typeof t=="string"||typeof e=="string"?!0:r.stringify===!0,U9e=(t,e,r)=>{if(e>0){let o=t[0]==="-"?"-":"";o&&(t=t.slice(1)),t=o+t.padStart(o?e-1:e,"0")}return r===!1?String(t):t},SZ=(t,e)=>{let r=t[0]==="-"?"-":"";for(r&&(t=t.slice(1),e--);t.length{t.negatives.sort((u,A)=>uA?1:0),t.positives.sort((u,A)=>uA?1:0);let r=e.capture?"":"?:",o="",a="",n;return t.positives.length&&(o=t.positives.join("|")),t.negatives.length&&(a=`-(${r}${t.negatives.join("|")})`),o&&a?n=`${o}|${a}`:n=o||a,e.wrap?`(${r}${n})`:n},xZ=(t,e,r,o)=>{if(r)return bZ(t,e,{wrap:!1,...o});let a=String.fromCharCode(t);if(t===e)return a;let n=String.fromCharCode(e);return`[${a}-${n}]`},kZ=(t,e,r)=>{if(Array.isArray(t)){let o=r.wrap===!0,a=r.capture?"":"?:";return o?`(${a}${t.join("|")})`:t.join("|")}return bZ(t,e,r)},QZ=(...t)=>new RangeError("Invalid range arguments: "+L9e.inspect(...t)),FZ=(t,e,r)=>{if(r.strictRanges===!0)throw QZ([t,e]);return[]},H9e=(t,e)=>{if(e.strictRanges===!0)throw new TypeError(`Expected step "${t}" to be a number`);return[]},q9e=(t,e,r=1,o={})=>{let a=Number(t),n=Number(e);if(!Number.isInteger(a)||!Number.isInteger(n)){if(o.strictRanges===!0)throw QZ([t,e]);return[]}a===0&&(a=0),n===0&&(n=0);let u=a>n,A=String(t),p=String(e),h=String(r);r=Math.max(Math.abs(r),1);let E=aL(A)||aL(p)||aL(h),w=E?Math.max(A.length,p.length,h.length):0,D=E===!1&&M9e(t,e,o)===!1,x=o.transform||O9e(D);if(o.toRegex&&r===1)return xZ(SZ(t,w),SZ(e,w),!0,o);let C={negatives:[],positives:[]},T=J=>C[J<0?"negatives":"positives"].push(Math.abs(J)),L=[],U=0;for(;u?a>=n:a<=n;)o.toRegex===!0&&r>1?T(a):L.push(U9e(x(a,U),w,D)),a=u?a-r:a+r,U++;return o.toRegex===!0?r>1?_9e(C,o):kZ(L,null,{wrap:!1,...o}):L},j9e=(t,e,r=1,o={})=>{if(!Ww(t)&&t.length>1||!Ww(e)&&e.length>1)return FZ(t,e,o);let a=o.transform||(D=>String.fromCharCode(D)),n=`${t}`.charCodeAt(0),u=`${e}`.charCodeAt(0),A=n>u,p=Math.min(n,u),h=Math.max(n,u);if(o.toRegex&&r===1)return xZ(p,h,!1,o);let E=[],w=0;for(;A?n>=u:n<=u;)E.push(a(n,w)),n=A?n-r:n+r,w++;return o.toRegex===!0?kZ(E,null,{wrap:!1,options:o}):E},cS=(t,e,r,o={})=>{if(e==null&&oL(t))return[t];if(!oL(t)||!oL(e))return FZ(t,e,o);if(typeof r=="function")return cS(t,e,1,{transform:r});if(PZ(r))return cS(t,e,0,r);let a={...o};return a.capture===!0&&(a.wrap=!0),r=r||a.step||1,Ww(r)?Ww(t)&&Ww(e)?q9e(t,e,r,a):j9e(t,e,Math.max(Math.abs(r),1),a):r!=null&&!PZ(r)?H9e(r,a):cS(t,e,1,r)};RZ.exports=cS});var LZ=_((BQt,NZ)=>{"use strict";var G9e=lL(),TZ=aS(),W9e=(t,e={})=>{let r=(o,a={})=>{let n=TZ.isInvalidBrace(a),u=o.invalid===!0&&e.escapeInvalid===!0,A=n===!0||u===!0,p=e.escapeInvalid===!0?"\\":"",h="";if(o.isOpen===!0||o.isClose===!0)return p+o.value;if(o.type==="open")return A?p+o.value:"(";if(o.type==="close")return A?p+o.value:")";if(o.type==="comma")return o.prev.type==="comma"?"":A?o.value:"|";if(o.value)return o.value;if(o.nodes&&o.ranges>0){let E=TZ.reduce(o.nodes),w=G9e(...E,{...e,wrap:!1,toRegex:!0});if(w.length!==0)return E.length>1&&w.length>1?`(${w})`:w}if(o.nodes)for(let E of o.nodes)h+=r(E,o);return h};return r(t)};NZ.exports=W9e});var UZ=_((vQt,MZ)=>{"use strict";var Y9e=lL(),OZ=lS(),Om=aS(),gg=(t="",e="",r=!1)=>{let o=[];if(t=[].concat(t),e=[].concat(e),!e.length)return t;if(!t.length)return r?Om.flatten(e).map(a=>`{${a}}`):e;for(let a of t)if(Array.isArray(a))for(let n of a)o.push(gg(n,e,r));else for(let n of e)r===!0&&typeof n=="string"&&(n=`{${n}}`),o.push(Array.isArray(n)?gg(a,n,r):a+n);return Om.flatten(o)},K9e=(t,e={})=>{let r=e.rangeLimit===void 0?1e3:e.rangeLimit,o=(a,n={})=>{a.queue=[];let u=n,A=n.queue;for(;u.type!=="brace"&&u.type!=="root"&&u.parent;)u=u.parent,A=u.queue;if(a.invalid||a.dollar){A.push(gg(A.pop(),OZ(a,e)));return}if(a.type==="brace"&&a.invalid!==!0&&a.nodes.length===2){A.push(gg(A.pop(),["{}"]));return}if(a.nodes&&a.ranges>0){let w=Om.reduce(a.nodes);if(Om.exceedsLimit(...w,e.step,r))throw new RangeError("expanded array length exceeds range limit. Use options.rangeLimit to increase or disable the limit.");let D=Y9e(...w,e);D.length===0&&(D=OZ(a,e)),A.push(gg(A.pop(),D)),a.nodes=[];return}let p=Om.encloseBrace(a),h=a.queue,E=a;for(;E.type!=="brace"&&E.type!=="root"&&E.parent;)E=E.parent,h=E.queue;for(let w=0;w{"use strict";_Z.exports={MAX_LENGTH:1024*64,CHAR_0:"0",CHAR_9:"9",CHAR_UPPERCASE_A:"A",CHAR_LOWERCASE_A:"a",CHAR_UPPERCASE_Z:"Z",CHAR_LOWERCASE_Z:"z",CHAR_LEFT_PARENTHESES:"(",CHAR_RIGHT_PARENTHESES:")",CHAR_ASTERISK:"*",CHAR_AMPERSAND:"&",CHAR_AT:"@",CHAR_BACKSLASH:"\\",CHAR_BACKTICK:"`",CHAR_CARRIAGE_RETURN:"\r",CHAR_CIRCUMFLEX_ACCENT:"^",CHAR_COLON:":",CHAR_COMMA:",",CHAR_DOLLAR:"$",CHAR_DOT:".",CHAR_DOUBLE_QUOTE:'"',CHAR_EQUAL:"=",CHAR_EXCLAMATION_MARK:"!",CHAR_FORM_FEED:"\f",CHAR_FORWARD_SLASH:"/",CHAR_HASH:"#",CHAR_HYPHEN_MINUS:"-",CHAR_LEFT_ANGLE_BRACKET:"<",CHAR_LEFT_CURLY_BRACE:"{",CHAR_LEFT_SQUARE_BRACKET:"[",CHAR_LINE_FEED:` +`,CHAR_NO_BREAK_SPACE:"\xA0",CHAR_PERCENT:"%",CHAR_PLUS:"+",CHAR_QUESTION_MARK:"?",CHAR_RIGHT_ANGLE_BRACKET:">",CHAR_RIGHT_CURLY_BRACE:"}",CHAR_RIGHT_SQUARE_BRACKET:"]",CHAR_SEMICOLON:";",CHAR_SINGLE_QUOTE:"'",CHAR_SPACE:" ",CHAR_TAB:" ",CHAR_UNDERSCORE:"_",CHAR_VERTICAL_LINE:"|",CHAR_ZERO_WIDTH_NOBREAK_SPACE:"\uFEFF"}});var YZ=_((PQt,WZ)=>{"use strict";var V9e=lS(),{MAX_LENGTH:qZ,CHAR_BACKSLASH:cL,CHAR_BACKTICK:J9e,CHAR_COMMA:z9e,CHAR_DOT:X9e,CHAR_LEFT_PARENTHESES:Z9e,CHAR_RIGHT_PARENTHESES:$9e,CHAR_LEFT_CURLY_BRACE:e7e,CHAR_RIGHT_CURLY_BRACE:t7e,CHAR_LEFT_SQUARE_BRACKET:jZ,CHAR_RIGHT_SQUARE_BRACKET:GZ,CHAR_DOUBLE_QUOTE:r7e,CHAR_SINGLE_QUOTE:n7e,CHAR_NO_BREAK_SPACE:i7e,CHAR_ZERO_WIDTH_NOBREAK_SPACE:s7e}=HZ(),o7e=(t,e={})=>{if(typeof t!="string")throw new TypeError("Expected a string");let r=e||{},o=typeof r.maxLength=="number"?Math.min(qZ,r.maxLength):qZ;if(t.length>o)throw new SyntaxError(`Input length (${t.length}), exceeds max characters (${o})`);let a={type:"root",input:t,nodes:[]},n=[a],u=a,A=a,p=0,h=t.length,E=0,w=0,D,x={},C=()=>t[E++],T=L=>{if(L.type==="text"&&A.type==="dot"&&(A.type="text"),A&&A.type==="text"&&L.type==="text"){A.value+=L.value;return}return u.nodes.push(L),L.parent=u,L.prev=A,A=L,L};for(T({type:"bos"});E0){if(u.ranges>0){u.ranges=0;let L=u.nodes.shift();u.nodes=[L,{type:"text",value:V9e(u)}]}T({type:"comma",value:D}),u.commas++;continue}if(D===X9e&&w>0&&u.commas===0){let L=u.nodes;if(w===0||L.length===0){T({type:"text",value:D});continue}if(A.type==="dot"){if(u.range=[],A.value+=D,A.type="range",u.nodes.length!==3&&u.nodes.length!==5){u.invalid=!0,u.ranges=0,A.type="text";continue}u.ranges++,u.args=[];continue}if(A.type==="range"){L.pop();let U=L[L.length-1];U.value+=A.value+D,A=U,u.ranges--;continue}T({type:"dot",value:D});continue}T({type:"text",value:D})}do if(u=n.pop(),u.type!=="root"){u.nodes.forEach(J=>{J.nodes||(J.type==="open"&&(J.isOpen=!0),J.type==="close"&&(J.isClose=!0),J.nodes||(J.type="text"),J.invalid=!0)});let L=n[n.length-1],U=L.nodes.indexOf(u);L.nodes.splice(U,1,...u.nodes)}while(n.length>0);return T({type:"eos"}),a};WZ.exports=o7e});var JZ=_((SQt,VZ)=>{"use strict";var KZ=lS(),a7e=LZ(),l7e=UZ(),c7e=YZ(),al=(t,e={})=>{let r=[];if(Array.isArray(t))for(let o of t){let a=al.create(o,e);Array.isArray(a)?r.push(...a):r.push(a)}else r=[].concat(al.create(t,e));return e&&e.expand===!0&&e.nodupes===!0&&(r=[...new Set(r)]),r};al.parse=(t,e={})=>c7e(t,e);al.stringify=(t,e={})=>KZ(typeof t=="string"?al.parse(t,e):t,e);al.compile=(t,e={})=>(typeof t=="string"&&(t=al.parse(t,e)),a7e(t,e));al.expand=(t,e={})=>{typeof t=="string"&&(t=al.parse(t,e));let r=l7e(t,e);return e.noempty===!0&&(r=r.filter(Boolean)),e.nodupes===!0&&(r=[...new Set(r)]),r};al.create=(t,e={})=>t===""||t.length<3?[t]:e.expand!==!0?al.compile(t,e):al.expand(t,e);VZ.exports=al});var Yw=_((bQt,e$)=>{"use strict";var u7e=ve("path"),zu="\\\\/",zZ=`[^${zu}]`,Bf="\\.",A7e="\\+",f7e="\\?",uS="\\/",p7e="(?=.)",XZ="[^/]",uL=`(?:${uS}|$)`,ZZ=`(?:^|${uS})`,AL=`${Bf}{1,2}${uL}`,h7e=`(?!${Bf})`,g7e=`(?!${ZZ}${AL})`,d7e=`(?!${Bf}{0,1}${uL})`,m7e=`(?!${AL})`,y7e=`[^.${uS}]`,E7e=`${XZ}*?`,$Z={DOT_LITERAL:Bf,PLUS_LITERAL:A7e,QMARK_LITERAL:f7e,SLASH_LITERAL:uS,ONE_CHAR:p7e,QMARK:XZ,END_ANCHOR:uL,DOTS_SLASH:AL,NO_DOT:h7e,NO_DOTS:g7e,NO_DOT_SLASH:d7e,NO_DOTS_SLASH:m7e,QMARK_NO_DOT:y7e,STAR:E7e,START_ANCHOR:ZZ},C7e={...$Z,SLASH_LITERAL:`[${zu}]`,QMARK:zZ,STAR:`${zZ}*?`,DOTS_SLASH:`${Bf}{1,2}(?:[${zu}]|$)`,NO_DOT:`(?!${Bf})`,NO_DOTS:`(?!(?:^|[${zu}])${Bf}{1,2}(?:[${zu}]|$))`,NO_DOT_SLASH:`(?!${Bf}{0,1}(?:[${zu}]|$))`,NO_DOTS_SLASH:`(?!${Bf}{1,2}(?:[${zu}]|$))`,QMARK_NO_DOT:`[^.${zu}]`,START_ANCHOR:`(?:^|[${zu}])`,END_ANCHOR:`(?:[${zu}]|$)`},I7e={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};e$.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:I7e,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,SEP:u7e.sep,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===!0?C7e:$Z}}});var Kw=_(xa=>{"use strict";var w7e=ve("path"),B7e=process.platform==="win32",{REGEX_BACKSLASH:v7e,REGEX_REMOVE_BACKSLASH:D7e,REGEX_SPECIAL_CHARS:P7e,REGEX_SPECIAL_CHARS_GLOBAL:S7e}=Yw();xa.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);xa.hasRegexChars=t=>P7e.test(t);xa.isRegexChar=t=>t.length===1&&xa.hasRegexChars(t);xa.escapeRegex=t=>t.replace(S7e,"\\$1");xa.toPosixSlashes=t=>t.replace(v7e,"/");xa.removeBackslashes=t=>t.replace(D7e,e=>e==="\\"?"":e);xa.supportsLookbehinds=()=>{let t=process.version.slice(1).split(".").map(Number);return t.length===3&&t[0]>=9||t[0]===8&&t[1]>=10};xa.isWindows=t=>t&&typeof t.windows=="boolean"?t.windows:B7e===!0||w7e.sep==="\\";xa.escapeLast=(t,e,r)=>{let o=t.lastIndexOf(e,r);return o===-1?t:t[o-1]==="\\"?xa.escapeLast(t,e,o-1):`${t.slice(0,o)}\\${t.slice(o)}`};xa.removePrefix=(t,e={})=>{let r=t;return r.startsWith("./")&&(r=r.slice(2),e.prefix="./"),r};xa.wrapOutput=(t,e={},r={})=>{let o=r.contains?"":"^",a=r.contains?"":"$",n=`${o}(?:${t})${a}`;return e.negated===!0&&(n=`(?:^(?!${n}).*$)`),n}});var l$=_((kQt,a$)=>{"use strict";var t$=Kw(),{CHAR_ASTERISK:fL,CHAR_AT:b7e,CHAR_BACKWARD_SLASH:Vw,CHAR_COMMA:x7e,CHAR_DOT:pL,CHAR_EXCLAMATION_MARK:hL,CHAR_FORWARD_SLASH:o$,CHAR_LEFT_CURLY_BRACE:gL,CHAR_LEFT_PARENTHESES:dL,CHAR_LEFT_SQUARE_BRACKET:k7e,CHAR_PLUS:Q7e,CHAR_QUESTION_MARK:r$,CHAR_RIGHT_CURLY_BRACE:F7e,CHAR_RIGHT_PARENTHESES:n$,CHAR_RIGHT_SQUARE_BRACKET:R7e}=Yw(),i$=t=>t===o$||t===Vw,s$=t=>{t.isPrefix!==!0&&(t.depth=t.isGlobstar?1/0:1)},T7e=(t,e)=>{let r=e||{},o=t.length-1,a=r.parts===!0||r.scanToEnd===!0,n=[],u=[],A=[],p=t,h=-1,E=0,w=0,D=!1,x=!1,C=!1,T=!1,L=!1,U=!1,J=!1,te=!1,le=!1,ce=!1,ue=0,Ie,he,De={value:"",depth:0,isGlob:!1},Ee=()=>h>=o,g=()=>p.charCodeAt(h+1),me=()=>(Ie=he,p.charCodeAt(++h));for(;h0&&(fe=p.slice(0,E),p=p.slice(E),w-=E),Ce&&C===!0&&w>0?(Ce=p.slice(0,w),ie=p.slice(w)):C===!0?(Ce="",ie=p):Ce=p,Ce&&Ce!==""&&Ce!=="/"&&Ce!==p&&i$(Ce.charCodeAt(Ce.length-1))&&(Ce=Ce.slice(0,-1)),r.unescape===!0&&(ie&&(ie=t$.removeBackslashes(ie)),Ce&&J===!0&&(Ce=t$.removeBackslashes(Ce)));let Z={prefix:fe,input:t,start:E,base:Ce,glob:ie,isBrace:D,isBracket:x,isGlob:C,isExtglob:T,isGlobstar:L,negated:te,negatedExtglob:le};if(r.tokens===!0&&(Z.maxDepth=0,i$(he)||u.push(De),Z.tokens=u),r.parts===!0||r.tokens===!0){let Pe;for(let Re=0;Re{"use strict";var AS=Yw(),ll=Kw(),{MAX_LENGTH:fS,POSIX_REGEX_SOURCE:N7e,REGEX_NON_SPECIAL_CHARS:L7e,REGEX_SPECIAL_CHARS_BACKREF:O7e,REPLACEMENTS:c$}=AS,M7e=(t,e)=>{if(typeof e.expandRange=="function")return e.expandRange(...t,e);t.sort();let r=`[${t.join("-")}]`;try{new RegExp(r)}catch{return t.map(a=>ll.escapeRegex(a)).join("..")}return r},Mm=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`,mL=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");t=c$[t]||t;let r={...e},o=typeof r.maxLength=="number"?Math.min(fS,r.maxLength):fS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);let n={type:"bos",value:"",output:r.prepend||""},u=[n],A=r.capture?"":"?:",p=ll.isWindows(e),h=AS.globChars(p),E=AS.extglobChars(h),{DOT_LITERAL:w,PLUS_LITERAL:D,SLASH_LITERAL:x,ONE_CHAR:C,DOTS_SLASH:T,NO_DOT:L,NO_DOT_SLASH:U,NO_DOTS_SLASH:J,QMARK:te,QMARK_NO_DOT:le,STAR:ce,START_ANCHOR:ue}=h,Ie=b=>`(${A}(?:(?!${ue}${b.dot?T:w}).)*?)`,he=r.dot?"":L,De=r.dot?te:le,Ee=r.bash===!0?Ie(r):ce;r.capture&&(Ee=`(${Ee})`),typeof r.noext=="boolean"&&(r.noextglob=r.noext);let g={input:t,index:-1,start:0,dot:r.dot===!0,consumed:"",output:"",prefix:"",backtrack:!1,negated:!1,brackets:0,braces:0,parens:0,quotes:0,globstar:!1,tokens:u};t=ll.removePrefix(t,g),a=t.length;let me=[],Ce=[],fe=[],ie=n,Z,Pe=()=>g.index===a-1,Re=g.peek=(b=1)=>t[g.index+b],ht=g.advance=()=>t[++g.index]||"",q=()=>t.slice(g.index+1),nt=(b="",I=0)=>{g.consumed+=b,g.index+=I},Ne=b=>{g.output+=b.output!=null?b.output:b.value,nt(b.value)},Te=()=>{let b=1;for(;Re()==="!"&&(Re(2)!=="("||Re(3)==="?");)ht(),g.start++,b++;return b%2===0?!1:(g.negated=!0,g.start++,!0)},ke=b=>{g[b]++,fe.push(b)},Ve=b=>{g[b]--,fe.pop()},be=b=>{if(ie.type==="globstar"){let I=g.braces>0&&(b.type==="comma"||b.type==="brace"),S=b.extglob===!0||me.length&&(b.type==="pipe"||b.type==="paren");b.type!=="slash"&&b.type!=="paren"&&!I&&!S&&(g.output=g.output.slice(0,-ie.output.length),ie.type="star",ie.value="*",ie.output=Ee,g.output+=ie.output)}if(me.length&&b.type!=="paren"&&(me[me.length-1].inner+=b.value),(b.value||b.output)&&Ne(b),ie&&ie.type==="text"&&b.type==="text"){ie.value+=b.value,ie.output=(ie.output||"")+b.value;return}b.prev=ie,u.push(b),ie=b},tt=(b,I)=>{let S={...E[I],conditions:1,inner:""};S.prev=ie,S.parens=g.parens,S.output=g.output;let y=(r.capture?"(":"")+S.open;ke("parens"),be({type:b,value:I,output:g.output?"":C}),be({type:"paren",extglob:!0,value:ht(),output:y}),me.push(S)},He=b=>{let I=b.close+(r.capture?")":""),S;if(b.type==="negate"){let y=Ee;if(b.inner&&b.inner.length>1&&b.inner.includes("/")&&(y=Ie(r)),(y!==Ee||Pe()||/^\)+$/.test(q()))&&(I=b.close=`)$))${y}`),b.inner.includes("*")&&(S=q())&&/^\.[^\\/.]+$/.test(S)){let R=mL(S,{...e,fastpaths:!1}).output;I=b.close=`)${R})${y})`}b.prev.type==="bos"&&(g.negatedExtglob=!0)}be({type:"paren",extglob:!0,value:Z,output:I}),Ve("parens")};if(r.fastpaths!==!1&&!/(^[*!]|[/()[\]{}"])/.test(t)){let b=!1,I=t.replace(O7e,(S,y,R,z,X,$)=>z==="\\"?(b=!0,S):z==="?"?y?y+z+(X?te.repeat(X.length):""):$===0?De+(X?te.repeat(X.length):""):te.repeat(R.length):z==="."?w.repeat(R.length):z==="*"?y?y+z+(X?Ee:""):Ee:y?S:`\\${S}`);return b===!0&&(r.unescape===!0?I=I.replace(/\\/g,""):I=I.replace(/\\+/g,S=>S.length%2===0?"\\\\":S?"\\":"")),I===t&&r.contains===!0?(g.output=t,g):(g.output=ll.wrapOutput(I,g,e),g)}for(;!Pe();){if(Z=ht(),Z==="\0")continue;if(Z==="\\"){let S=Re();if(S==="/"&&r.bash!==!0||S==="."||S===";")continue;if(!S){Z+="\\",be({type:"text",value:Z});continue}let y=/^\\+/.exec(q()),R=0;if(y&&y[0].length>2&&(R=y[0].length,g.index+=R,R%2!==0&&(Z+="\\")),r.unescape===!0?Z=ht():Z+=ht(),g.brackets===0){be({type:"text",value:Z});continue}}if(g.brackets>0&&(Z!=="]"||ie.value==="["||ie.value==="[^")){if(r.posix!==!1&&Z===":"){let S=ie.value.slice(1);if(S.includes("[")&&(ie.posix=!0,S.includes(":"))){let y=ie.value.lastIndexOf("["),R=ie.value.slice(0,y),z=ie.value.slice(y+2),X=N7e[z];if(X){ie.value=R+X,g.backtrack=!0,ht(),!n.output&&u.indexOf(ie)===1&&(n.output=C);continue}}}(Z==="["&&Re()!==":"||Z==="-"&&Re()==="]")&&(Z=`\\${Z}`),Z==="]"&&(ie.value==="["||ie.value==="[^")&&(Z=`\\${Z}`),r.posix===!0&&Z==="!"&&ie.value==="["&&(Z="^"),ie.value+=Z,Ne({value:Z});continue}if(g.quotes===1&&Z!=='"'){Z=ll.escapeRegex(Z),ie.value+=Z,Ne({value:Z});continue}if(Z==='"'){g.quotes=g.quotes===1?0:1,r.keepQuotes===!0&&be({type:"text",value:Z});continue}if(Z==="("){ke("parens"),be({type:"paren",value:Z});continue}if(Z===")"){if(g.parens===0&&r.strictBrackets===!0)throw new SyntaxError(Mm("opening","("));let S=me[me.length-1];if(S&&g.parens===S.parens+1){He(me.pop());continue}be({type:"paren",value:Z,output:g.parens?")":"\\)"}),Ve("parens");continue}if(Z==="["){if(r.nobracket===!0||!q().includes("]")){if(r.nobracket!==!0&&r.strictBrackets===!0)throw new SyntaxError(Mm("closing","]"));Z=`\\${Z}`}else ke("brackets");be({type:"bracket",value:Z});continue}if(Z==="]"){if(r.nobracket===!0||ie&&ie.type==="bracket"&&ie.value.length===1){be({type:"text",value:Z,output:`\\${Z}`});continue}if(g.brackets===0){if(r.strictBrackets===!0)throw new SyntaxError(Mm("opening","["));be({type:"text",value:Z,output:`\\${Z}`});continue}Ve("brackets");let S=ie.value.slice(1);if(ie.posix!==!0&&S[0]==="^"&&!S.includes("/")&&(Z=`/${Z}`),ie.value+=Z,Ne({value:Z}),r.literalBrackets===!1||ll.hasRegexChars(S))continue;let y=ll.escapeRegex(ie.value);if(g.output=g.output.slice(0,-ie.value.length),r.literalBrackets===!0){g.output+=y,ie.value=y;continue}ie.value=`(${A}${y}|${ie.value})`,g.output+=ie.value;continue}if(Z==="{"&&r.nobrace!==!0){ke("braces");let S={type:"brace",value:Z,output:"(",outputIndex:g.output.length,tokensIndex:g.tokens.length};Ce.push(S),be(S);continue}if(Z==="}"){let S=Ce[Ce.length-1];if(r.nobrace===!0||!S){be({type:"text",value:Z,output:Z});continue}let y=")";if(S.dots===!0){let R=u.slice(),z=[];for(let X=R.length-1;X>=0&&(u.pop(),R[X].type!=="brace");X--)R[X].type!=="dots"&&z.unshift(R[X].value);y=M7e(z,r),g.backtrack=!0}if(S.comma!==!0&&S.dots!==!0){let R=g.output.slice(0,S.outputIndex),z=g.tokens.slice(S.tokensIndex);S.value=S.output="\\{",Z=y="\\}",g.output=R;for(let X of z)g.output+=X.output||X.value}be({type:"brace",value:Z,output:y}),Ve("braces"),Ce.pop();continue}if(Z==="|"){me.length>0&&me[me.length-1].conditions++,be({type:"text",value:Z});continue}if(Z===","){let S=Z,y=Ce[Ce.length-1];y&&fe[fe.length-1]==="braces"&&(y.comma=!0,S="|"),be({type:"comma",value:Z,output:S});continue}if(Z==="/"){if(ie.type==="dot"&&g.index===g.start+1){g.start=g.index+1,g.consumed="",g.output="",u.pop(),ie=n;continue}be({type:"slash",value:Z,output:x});continue}if(Z==="."){if(g.braces>0&&ie.type==="dot"){ie.value==="."&&(ie.output=w);let S=Ce[Ce.length-1];ie.type="dots",ie.output+=Z,ie.value+=Z,S.dots=!0;continue}if(g.braces+g.parens===0&&ie.type!=="bos"&&ie.type!=="slash"){be({type:"text",value:Z,output:w});continue}be({type:"dot",value:Z,output:w});continue}if(Z==="?"){if(!(ie&&ie.value==="(")&&r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){tt("qmark",Z);continue}if(ie&&ie.type==="paren"){let y=Re(),R=Z;if(y==="<"&&!ll.supportsLookbehinds())throw new Error("Node.js v10 or higher is required for regex lookbehinds");(ie.value==="("&&!/[!=<:]/.test(y)||y==="<"&&!/<([!=]|\w+>)/.test(q()))&&(R=`\\${Z}`),be({type:"text",value:Z,output:R});continue}if(r.dot!==!0&&(ie.type==="slash"||ie.type==="bos")){be({type:"qmark",value:Z,output:le});continue}be({type:"qmark",value:Z,output:te});continue}if(Z==="!"){if(r.noextglob!==!0&&Re()==="("&&(Re(2)!=="?"||!/[!=<:]/.test(Re(3)))){tt("negate",Z);continue}if(r.nonegate!==!0&&g.index===0){Te();continue}}if(Z==="+"){if(r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){tt("plus",Z);continue}if(ie&&ie.value==="("||r.regex===!1){be({type:"plus",value:Z,output:D});continue}if(ie&&(ie.type==="bracket"||ie.type==="paren"||ie.type==="brace")||g.parens>0){be({type:"plus",value:Z});continue}be({type:"plus",value:D});continue}if(Z==="@"){if(r.noextglob!==!0&&Re()==="("&&Re(2)!=="?"){be({type:"at",extglob:!0,value:Z,output:""});continue}be({type:"text",value:Z});continue}if(Z!=="*"){(Z==="$"||Z==="^")&&(Z=`\\${Z}`);let S=L7e.exec(q());S&&(Z+=S[0],g.index+=S[0].length),be({type:"text",value:Z});continue}if(ie&&(ie.type==="globstar"||ie.star===!0)){ie.type="star",ie.star=!0,ie.value+=Z,ie.output=Ee,g.backtrack=!0,g.globstar=!0,nt(Z);continue}let b=q();if(r.noextglob!==!0&&/^\([^?]/.test(b)){tt("star",Z);continue}if(ie.type==="star"){if(r.noglobstar===!0){nt(Z);continue}let S=ie.prev,y=S.prev,R=S.type==="slash"||S.type==="bos",z=y&&(y.type==="star"||y.type==="globstar");if(r.bash===!0&&(!R||b[0]&&b[0]!=="/")){be({type:"star",value:Z,output:""});continue}let X=g.braces>0&&(S.type==="comma"||S.type==="brace"),$=me.length&&(S.type==="pipe"||S.type==="paren");if(!R&&S.type!=="paren"&&!X&&!$){be({type:"star",value:Z,output:""});continue}for(;b.slice(0,3)==="/**";){let se=t[g.index+4];if(se&&se!=="/")break;b=b.slice(3),nt("/**",3)}if(S.type==="bos"&&Pe()){ie.type="globstar",ie.value+=Z,ie.output=Ie(r),g.output=ie.output,g.globstar=!0,nt(Z);continue}if(S.type==="slash"&&S.prev.type!=="bos"&&!z&&Pe()){g.output=g.output.slice(0,-(S.output+ie.output).length),S.output=`(?:${S.output}`,ie.type="globstar",ie.output=Ie(r)+(r.strictSlashes?")":"|$)"),ie.value+=Z,g.globstar=!0,g.output+=S.output+ie.output,nt(Z);continue}if(S.type==="slash"&&S.prev.type!=="bos"&&b[0]==="/"){let se=b[1]!==void 0?"|$":"";g.output=g.output.slice(0,-(S.output+ie.output).length),S.output=`(?:${S.output}`,ie.type="globstar",ie.output=`${Ie(r)}${x}|${x}${se})`,ie.value+=Z,g.output+=S.output+ie.output,g.globstar=!0,nt(Z+ht()),be({type:"slash",value:"/",output:""});continue}if(S.type==="bos"&&b[0]==="/"){ie.type="globstar",ie.value+=Z,ie.output=`(?:^|${x}|${Ie(r)}${x})`,g.output=ie.output,g.globstar=!0,nt(Z+ht()),be({type:"slash",value:"/",output:""});continue}g.output=g.output.slice(0,-ie.output.length),ie.type="globstar",ie.output=Ie(r),ie.value+=Z,g.output+=ie.output,g.globstar=!0,nt(Z);continue}let I={type:"star",value:Z,output:Ee};if(r.bash===!0){I.output=".*?",(ie.type==="bos"||ie.type==="slash")&&(I.output=he+I.output),be(I);continue}if(ie&&(ie.type==="bracket"||ie.type==="paren")&&r.regex===!0){I.output=Z,be(I);continue}(g.index===g.start||ie.type==="slash"||ie.type==="dot")&&(ie.type==="dot"?(g.output+=U,ie.output+=U):r.dot===!0?(g.output+=J,ie.output+=J):(g.output+=he,ie.output+=he),Re()!=="*"&&(g.output+=C,ie.output+=C)),be(I)}for(;g.brackets>0;){if(r.strictBrackets===!0)throw new SyntaxError(Mm("closing","]"));g.output=ll.escapeLast(g.output,"["),Ve("brackets")}for(;g.parens>0;){if(r.strictBrackets===!0)throw new SyntaxError(Mm("closing",")"));g.output=ll.escapeLast(g.output,"("),Ve("parens")}for(;g.braces>0;){if(r.strictBrackets===!0)throw new SyntaxError(Mm("closing","}"));g.output=ll.escapeLast(g.output,"{"),Ve("braces")}if(r.strictSlashes!==!0&&(ie.type==="star"||ie.type==="bracket")&&be({type:"maybe_slash",value:"",output:`${x}?`}),g.backtrack===!0){g.output="";for(let b of g.tokens)g.output+=b.output!=null?b.output:b.value,b.suffix&&(g.output+=b.suffix)}return g};mL.fastpaths=(t,e)=>{let r={...e},o=typeof r.maxLength=="number"?Math.min(fS,r.maxLength):fS,a=t.length;if(a>o)throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${o}`);t=c$[t]||t;let n=ll.isWindows(e),{DOT_LITERAL:u,SLASH_LITERAL:A,ONE_CHAR:p,DOTS_SLASH:h,NO_DOT:E,NO_DOTS:w,NO_DOTS_SLASH:D,STAR:x,START_ANCHOR:C}=AS.globChars(n),T=r.dot?w:E,L=r.dot?D:E,U=r.capture?"":"?:",J={negated:!1,prefix:""},te=r.bash===!0?".*?":x;r.capture&&(te=`(${te})`);let le=he=>he.noglobstar===!0?te:`(${U}(?:(?!${C}${he.dot?h:u}).)*?)`,ce=he=>{switch(he){case"*":return`${T}${p}${te}`;case".*":return`${u}${p}${te}`;case"*.*":return`${T}${te}${u}${p}${te}`;case"*/*":return`${T}${te}${A}${p}${L}${te}`;case"**":return T+le(r);case"**/*":return`(?:${T}${le(r)}${A})?${L}${p}${te}`;case"**/*.*":return`(?:${T}${le(r)}${A})?${L}${te}${u}${p}${te}`;case"**/.*":return`(?:${T}${le(r)}${A})?${u}${p}${te}`;default:{let De=/^(.*?)\.(\w+)$/.exec(he);if(!De)return;let Ee=ce(De[1]);return Ee?Ee+u+De[2]:void 0}}},ue=ll.removePrefix(t,J),Ie=ce(ue);return Ie&&r.strictSlashes!==!0&&(Ie+=`${A}?`),Ie};u$.exports=mL});var p$=_((FQt,f$)=>{"use strict";var U7e=ve("path"),_7e=l$(),yL=A$(),EL=Kw(),H7e=Yw(),q7e=t=>t&&typeof t=="object"&&!Array.isArray(t),Mi=(t,e,r=!1)=>{if(Array.isArray(t)){let E=t.map(D=>Mi(D,e,r));return D=>{for(let x of E){let C=x(D);if(C)return C}return!1}}let o=q7e(t)&&t.tokens&&t.input;if(t===""||typeof t!="string"&&!o)throw new TypeError("Expected pattern to be a non-empty string");let a=e||{},n=EL.isWindows(e),u=o?Mi.compileRe(t,e):Mi.makeRe(t,e,!1,!0),A=u.state;delete u.state;let p=()=>!1;if(a.ignore){let E={...e,ignore:null,onMatch:null,onResult:null};p=Mi(a.ignore,E,r)}let h=(E,w=!1)=>{let{isMatch:D,match:x,output:C}=Mi.test(E,u,e,{glob:t,posix:n}),T={glob:t,state:A,regex:u,posix:n,input:E,output:C,match:x,isMatch:D};return typeof a.onResult=="function"&&a.onResult(T),D===!1?(T.isMatch=!1,w?T:!1):p(E)?(typeof a.onIgnore=="function"&&a.onIgnore(T),T.isMatch=!1,w?T:!1):(typeof a.onMatch=="function"&&a.onMatch(T),w?T:!0)};return r&&(h.state=A),h};Mi.test=(t,e,r,{glob:o,posix:a}={})=>{if(typeof t!="string")throw new TypeError("Expected input to be a string");if(t==="")return{isMatch:!1,output:""};let n=r||{},u=n.format||(a?EL.toPosixSlashes:null),A=t===o,p=A&&u?u(t):t;return A===!1&&(p=u?u(t):t,A=p===o),(A===!1||n.capture===!0)&&(n.matchBase===!0||n.basename===!0?A=Mi.matchBase(t,e,r,a):A=e.exec(p)),{isMatch:!!A,match:A,output:p}};Mi.matchBase=(t,e,r,o=EL.isWindows(r))=>(e instanceof RegExp?e:Mi.makeRe(e,r)).test(U7e.basename(t));Mi.isMatch=(t,e,r)=>Mi(e,r)(t);Mi.parse=(t,e)=>Array.isArray(t)?t.map(r=>Mi.parse(r,e)):yL(t,{...e,fastpaths:!1});Mi.scan=(t,e)=>_7e(t,e);Mi.compileRe=(t,e,r=!1,o=!1)=>{if(r===!0)return t.output;let a=e||{},n=a.contains?"":"^",u=a.contains?"":"$",A=`${n}(?:${t.output})${u}`;t&&t.negated===!0&&(A=`^(?!${A}).*$`);let p=Mi.toRegex(A,e);return o===!0&&(p.state=t),p};Mi.makeRe=(t,e={},r=!1,o=!1)=>{if(!t||typeof t!="string")throw new TypeError("Expected a non-empty string");let a={negated:!1,fastpaths:!0};return e.fastpaths!==!1&&(t[0]==="."||t[0]==="*")&&(a.output=yL.fastpaths(t,e)),a.output||(a=yL(t,e)),Mi.compileRe(a,e,r,o)};Mi.toRegex=(t,e)=>{try{let r=e||{};return new RegExp(t,r.flags||(r.nocase?"i":""))}catch(r){if(e&&e.debug===!0)throw r;return/$^/}};Mi.constants=H7e;f$.exports=Mi});var g$=_((RQt,h$)=>{"use strict";h$.exports=p$()});var Xo=_((TQt,E$)=>{"use strict";var m$=ve("util"),y$=JZ(),Xu=g$(),CL=Kw(),d$=t=>t===""||t==="./",Ii=(t,e,r)=>{e=[].concat(e),t=[].concat(t);let o=new Set,a=new Set,n=new Set,u=0,A=E=>{n.add(E.output),r&&r.onResult&&r.onResult(E)};for(let E=0;E!o.has(E));if(r&&h.length===0){if(r.failglob===!0)throw new Error(`No matches found for "${e.join(", ")}"`);if(r.nonull===!0||r.nullglob===!0)return r.unescape?e.map(E=>E.replace(/\\/g,"")):e}return h};Ii.match=Ii;Ii.matcher=(t,e)=>Xu(t,e);Ii.isMatch=(t,e,r)=>Xu(e,r)(t);Ii.any=Ii.isMatch;Ii.not=(t,e,r={})=>{e=[].concat(e).map(String);let o=new Set,a=[],n=A=>{r.onResult&&r.onResult(A),a.push(A.output)},u=new Set(Ii(t,e,{...r,onResult:n}));for(let A of a)u.has(A)||o.add(A);return[...o]};Ii.contains=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${m$.inspect(t)}"`);if(Array.isArray(e))return e.some(o=>Ii.contains(t,o,r));if(typeof e=="string"){if(d$(t)||d$(e))return!1;if(t.includes(e)||t.startsWith("./")&&t.slice(2).includes(e))return!0}return Ii.isMatch(t,e,{...r,contains:!0})};Ii.matchKeys=(t,e,r)=>{if(!CL.isObject(t))throw new TypeError("Expected the first argument to be an object");let o=Ii(Object.keys(t),e,r),a={};for(let n of o)a[n]=t[n];return a};Ii.some=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Xu(String(a),r);if(o.some(u=>n(u)))return!0}return!1};Ii.every=(t,e,r)=>{let o=[].concat(t);for(let a of[].concat(e)){let n=Xu(String(a),r);if(!o.every(u=>n(u)))return!1}return!0};Ii.all=(t,e,r)=>{if(typeof t!="string")throw new TypeError(`Expected a string: "${m$.inspect(t)}"`);return[].concat(e).every(o=>Xu(o,r)(t))};Ii.capture=(t,e,r)=>{let o=CL.isWindows(r),n=Xu.makeRe(String(t),{...r,capture:!0}).exec(o?CL.toPosixSlashes(e):e);if(n)return n.slice(1).map(u=>u===void 0?"":u)};Ii.makeRe=(...t)=>Xu.makeRe(...t);Ii.scan=(...t)=>Xu.scan(...t);Ii.parse=(t,e)=>{let r=[];for(let o of[].concat(t||[]))for(let a of y$(String(o),e))r.push(Xu.parse(a,e));return r};Ii.braces=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return e&&e.nobrace===!0||!/\{.*\}/.test(t)?[t]:y$(t,e)};Ii.braceExpand=(t,e)=>{if(typeof t!="string")throw new TypeError("Expected a string");return Ii.braces(t,{...e,expand:!0})};E$.exports=Ii});var I$=_((NQt,C$)=>{"use strict";C$.exports=({onlyFirst:t=!1}={})=>{let e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,t?void 0:"g")}});var pS=_((LQt,w$)=>{"use strict";var j7e=I$();w$.exports=t=>typeof t=="string"?t.replace(j7e(),""):t});var v$=_((OQt,B$)=>{function G7e(){this.__data__=[],this.size=0}B$.exports=G7e});var Um=_((MQt,D$)=>{function W7e(t,e){return t===e||t!==t&&e!==e}D$.exports=W7e});var Jw=_((UQt,P$)=>{var Y7e=Um();function K7e(t,e){for(var r=t.length;r--;)if(Y7e(t[r][0],e))return r;return-1}P$.exports=K7e});var b$=_((_Qt,S$)=>{var V7e=Jw(),J7e=Array.prototype,z7e=J7e.splice;function X7e(t){var e=this.__data__,r=V7e(e,t);if(r<0)return!1;var o=e.length-1;return r==o?e.pop():z7e.call(e,r,1),--this.size,!0}S$.exports=X7e});var k$=_((HQt,x$)=>{var Z7e=Jw();function $7e(t){var e=this.__data__,r=Z7e(e,t);return r<0?void 0:e[r][1]}x$.exports=$7e});var F$=_((qQt,Q$)=>{var eWe=Jw();function tWe(t){return eWe(this.__data__,t)>-1}Q$.exports=tWe});var T$=_((jQt,R$)=>{var rWe=Jw();function nWe(t,e){var r=this.__data__,o=rWe(r,t);return o<0?(++this.size,r.push([t,e])):r[o][1]=e,this}R$.exports=nWe});var zw=_((GQt,N$)=>{var iWe=v$(),sWe=b$(),oWe=k$(),aWe=F$(),lWe=T$();function _m(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var cWe=zw();function uWe(){this.__data__=new cWe,this.size=0}L$.exports=uWe});var U$=_((YQt,M$)=>{function AWe(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}M$.exports=AWe});var H$=_((KQt,_$)=>{function fWe(t){return this.__data__.get(t)}_$.exports=fWe});var j$=_((VQt,q$)=>{function pWe(t){return this.__data__.has(t)}q$.exports=pWe});var IL=_((JQt,G$)=>{var hWe=typeof global=="object"&&global&&global.Object===Object&&global;G$.exports=hWe});var ql=_((zQt,W$)=>{var gWe=IL(),dWe=typeof self=="object"&&self&&self.Object===Object&&self,mWe=gWe||dWe||Function("return this")();W$.exports=mWe});var dg=_((XQt,Y$)=>{var yWe=ql(),EWe=yWe.Symbol;Y$.exports=EWe});var z$=_((ZQt,J$)=>{var K$=dg(),V$=Object.prototype,CWe=V$.hasOwnProperty,IWe=V$.toString,Xw=K$?K$.toStringTag:void 0;function wWe(t){var e=CWe.call(t,Xw),r=t[Xw];try{t[Xw]=void 0;var o=!0}catch{}var a=IWe.call(t);return o&&(e?t[Xw]=r:delete t[Xw]),a}J$.exports=wWe});var Z$=_(($Qt,X$)=>{var BWe=Object.prototype,vWe=BWe.toString;function DWe(t){return vWe.call(t)}X$.exports=DWe});var mg=_((eFt,tee)=>{var $$=dg(),PWe=z$(),SWe=Z$(),bWe="[object Null]",xWe="[object Undefined]",eee=$$?$$.toStringTag:void 0;function kWe(t){return t==null?t===void 0?xWe:bWe:eee&&eee in Object(t)?PWe(t):SWe(t)}tee.exports=kWe});var cl=_((tFt,ree)=>{function QWe(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}ree.exports=QWe});var hS=_((rFt,nee)=>{var FWe=mg(),RWe=cl(),TWe="[object AsyncFunction]",NWe="[object Function]",LWe="[object GeneratorFunction]",OWe="[object Proxy]";function MWe(t){if(!RWe(t))return!1;var e=FWe(t);return e==NWe||e==LWe||e==TWe||e==OWe}nee.exports=MWe});var see=_((nFt,iee)=>{var UWe=ql(),_We=UWe["__core-js_shared__"];iee.exports=_We});var lee=_((iFt,aee)=>{var wL=see(),oee=function(){var t=/[^.]+$/.exec(wL&&wL.keys&&wL.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();function HWe(t){return!!oee&&oee in t}aee.exports=HWe});var BL=_((sFt,cee)=>{var qWe=Function.prototype,jWe=qWe.toString;function GWe(t){if(t!=null){try{return jWe.call(t)}catch{}try{return t+""}catch{}}return""}cee.exports=GWe});var Aee=_((oFt,uee)=>{var WWe=hS(),YWe=lee(),KWe=cl(),VWe=BL(),JWe=/[\\^$.*+?()[\]{}|]/g,zWe=/^\[object .+?Constructor\]$/,XWe=Function.prototype,ZWe=Object.prototype,$We=XWe.toString,eYe=ZWe.hasOwnProperty,tYe=RegExp("^"+$We.call(eYe).replace(JWe,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function rYe(t){if(!KWe(t)||YWe(t))return!1;var e=WWe(t)?tYe:zWe;return e.test(VWe(t))}uee.exports=rYe});var pee=_((aFt,fee)=>{function nYe(t,e){return t?.[e]}fee.exports=nYe});var $p=_((lFt,hee)=>{var iYe=Aee(),sYe=pee();function oYe(t,e){var r=sYe(t,e);return iYe(r)?r:void 0}hee.exports=oYe});var gS=_((cFt,gee)=>{var aYe=$p(),lYe=ql(),cYe=aYe(lYe,"Map");gee.exports=cYe});var Zw=_((uFt,dee)=>{var uYe=$p(),AYe=uYe(Object,"create");dee.exports=AYe});var Eee=_((AFt,yee)=>{var mee=Zw();function fYe(){this.__data__=mee?mee(null):{},this.size=0}yee.exports=fYe});var Iee=_((fFt,Cee)=>{function pYe(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}Cee.exports=pYe});var Bee=_((pFt,wee)=>{var hYe=Zw(),gYe="__lodash_hash_undefined__",dYe=Object.prototype,mYe=dYe.hasOwnProperty;function yYe(t){var e=this.__data__;if(hYe){var r=e[t];return r===gYe?void 0:r}return mYe.call(e,t)?e[t]:void 0}wee.exports=yYe});var Dee=_((hFt,vee)=>{var EYe=Zw(),CYe=Object.prototype,IYe=CYe.hasOwnProperty;function wYe(t){var e=this.__data__;return EYe?e[t]!==void 0:IYe.call(e,t)}vee.exports=wYe});var See=_((gFt,Pee)=>{var BYe=Zw(),vYe="__lodash_hash_undefined__";function DYe(t,e){var r=this.__data__;return this.size+=this.has(t)?0:1,r[t]=BYe&&e===void 0?vYe:e,this}Pee.exports=DYe});var xee=_((dFt,bee)=>{var PYe=Eee(),SYe=Iee(),bYe=Bee(),xYe=Dee(),kYe=See();function Hm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var kee=xee(),QYe=zw(),FYe=gS();function RYe(){this.size=0,this.__data__={hash:new kee,map:new(FYe||QYe),string:new kee}}Qee.exports=RYe});var Tee=_((yFt,Ree)=>{function TYe(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}Ree.exports=TYe});var $w=_((EFt,Nee)=>{var NYe=Tee();function LYe(t,e){var r=t.__data__;return NYe(e)?r[typeof e=="string"?"string":"hash"]:r.map}Nee.exports=LYe});var Oee=_((CFt,Lee)=>{var OYe=$w();function MYe(t){var e=OYe(this,t).delete(t);return this.size-=e?1:0,e}Lee.exports=MYe});var Uee=_((IFt,Mee)=>{var UYe=$w();function _Ye(t){return UYe(this,t).get(t)}Mee.exports=_Ye});var Hee=_((wFt,_ee)=>{var HYe=$w();function qYe(t){return HYe(this,t).has(t)}_ee.exports=qYe});var jee=_((BFt,qee)=>{var jYe=$w();function GYe(t,e){var r=jYe(this,t),o=r.size;return r.set(t,e),this.size+=r.size==o?0:1,this}qee.exports=GYe});var dS=_((vFt,Gee)=>{var WYe=Fee(),YYe=Oee(),KYe=Uee(),VYe=Hee(),JYe=jee();function qm(t){var e=-1,r=t==null?0:t.length;for(this.clear();++e{var zYe=zw(),XYe=gS(),ZYe=dS(),$Ye=200;function eKe(t,e){var r=this.__data__;if(r instanceof zYe){var o=r.__data__;if(!XYe||o.length<$Ye-1)return o.push([t,e]),this.size=++r.size,this;r=this.__data__=new ZYe(o)}return r.set(t,e),this.size=r.size,this}Wee.exports=eKe});var mS=_((PFt,Kee)=>{var tKe=zw(),rKe=O$(),nKe=U$(),iKe=H$(),sKe=j$(),oKe=Yee();function jm(t){var e=this.__data__=new tKe(t);this.size=e.size}jm.prototype.clear=rKe;jm.prototype.delete=nKe;jm.prototype.get=iKe;jm.prototype.has=sKe;jm.prototype.set=oKe;Kee.exports=jm});var Jee=_((SFt,Vee)=>{var aKe="__lodash_hash_undefined__";function lKe(t){return this.__data__.set(t,aKe),this}Vee.exports=lKe});var Xee=_((bFt,zee)=>{function cKe(t){return this.__data__.has(t)}zee.exports=cKe});var $ee=_((xFt,Zee)=>{var uKe=dS(),AKe=Jee(),fKe=Xee();function yS(t){var e=-1,r=t==null?0:t.length;for(this.__data__=new uKe;++e{function pKe(t,e){for(var r=-1,o=t==null?0:t.length;++r{function hKe(t,e){return t.has(e)}rte.exports=hKe});var vL=_((FFt,ite)=>{var gKe=$ee(),dKe=tte(),mKe=nte(),yKe=1,EKe=2;function CKe(t,e,r,o,a,n){var u=r&yKe,A=t.length,p=e.length;if(A!=p&&!(u&&p>A))return!1;var h=n.get(t),E=n.get(e);if(h&&E)return h==e&&E==t;var w=-1,D=!0,x=r&EKe?new gKe:void 0;for(n.set(t,e),n.set(e,t);++w{var IKe=ql(),wKe=IKe.Uint8Array;ste.exports=wKe});var ate=_((TFt,ote)=>{function BKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o,a){r[++e]=[a,o]}),r}ote.exports=BKe});var cte=_((NFt,lte)=>{function vKe(t){var e=-1,r=Array(t.size);return t.forEach(function(o){r[++e]=o}),r}lte.exports=vKe});var hte=_((LFt,pte)=>{var ute=dg(),Ate=DL(),DKe=Um(),PKe=vL(),SKe=ate(),bKe=cte(),xKe=1,kKe=2,QKe="[object Boolean]",FKe="[object Date]",RKe="[object Error]",TKe="[object Map]",NKe="[object Number]",LKe="[object RegExp]",OKe="[object Set]",MKe="[object String]",UKe="[object Symbol]",_Ke="[object ArrayBuffer]",HKe="[object DataView]",fte=ute?ute.prototype:void 0,PL=fte?fte.valueOf:void 0;function qKe(t,e,r,o,a,n,u){switch(r){case HKe:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset)return!1;t=t.buffer,e=e.buffer;case _Ke:return!(t.byteLength!=e.byteLength||!n(new Ate(t),new Ate(e)));case QKe:case FKe:case NKe:return DKe(+t,+e);case RKe:return t.name==e.name&&t.message==e.message;case LKe:case MKe:return t==e+"";case TKe:var A=SKe;case OKe:var p=o&xKe;if(A||(A=bKe),t.size!=e.size&&!p)return!1;var h=u.get(t);if(h)return h==e;o|=kKe,u.set(t,e);var E=PKe(A(t),A(e),o,a,n,u);return u.delete(t),E;case UKe:if(PL)return PL.call(t)==PL.call(e)}return!1}pte.exports=qKe});var ES=_((OFt,gte)=>{function jKe(t,e){for(var r=-1,o=e.length,a=t.length;++r{var GKe=Array.isArray;dte.exports=GKe});var SL=_((UFt,mte)=>{var WKe=ES(),YKe=jl();function KKe(t,e,r){var o=e(t);return YKe(t)?o:WKe(o,r(t))}mte.exports=KKe});var Ete=_((_Ft,yte)=>{function VKe(t,e){for(var r=-1,o=t==null?0:t.length,a=0,n=[];++r{function JKe(){return[]}Cte.exports=JKe});var CS=_((qFt,wte)=>{var zKe=Ete(),XKe=bL(),ZKe=Object.prototype,$Ke=ZKe.propertyIsEnumerable,Ite=Object.getOwnPropertySymbols,eVe=Ite?function(t){return t==null?[]:(t=Object(t),zKe(Ite(t),function(e){return $Ke.call(t,e)}))}:XKe;wte.exports=eVe});var vte=_((jFt,Bte)=>{function tVe(t,e){for(var r=-1,o=Array(t);++r{function rVe(t){return t!=null&&typeof t=="object"}Dte.exports=rVe});var Ste=_((WFt,Pte)=>{var nVe=mg(),iVe=Zu(),sVe="[object Arguments]";function oVe(t){return iVe(t)&&nVe(t)==sVe}Pte.exports=oVe});var e1=_((YFt,kte)=>{var bte=Ste(),aVe=Zu(),xte=Object.prototype,lVe=xte.hasOwnProperty,cVe=xte.propertyIsEnumerable,uVe=bte(function(){return arguments}())?bte:function(t){return aVe(t)&&lVe.call(t,"callee")&&!cVe.call(t,"callee")};kte.exports=uVe});var Fte=_((KFt,Qte)=>{function AVe(){return!1}Qte.exports=AVe});var r1=_((t1,Gm)=>{var fVe=ql(),pVe=Fte(),Nte=typeof t1=="object"&&t1&&!t1.nodeType&&t1,Rte=Nte&&typeof Gm=="object"&&Gm&&!Gm.nodeType&&Gm,hVe=Rte&&Rte.exports===Nte,Tte=hVe?fVe.Buffer:void 0,gVe=Tte?Tte.isBuffer:void 0,dVe=gVe||pVe;Gm.exports=dVe});var n1=_((VFt,Lte)=>{var mVe=9007199254740991,yVe=/^(?:0|[1-9]\d*)$/;function EVe(t,e){var r=typeof t;return e=e??mVe,!!e&&(r=="number"||r!="symbol"&&yVe.test(t))&&t>-1&&t%1==0&&t{var CVe=9007199254740991;function IVe(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=CVe}Ote.exports=IVe});var Ute=_((zFt,Mte)=>{var wVe=mg(),BVe=IS(),vVe=Zu(),DVe="[object Arguments]",PVe="[object Array]",SVe="[object Boolean]",bVe="[object Date]",xVe="[object Error]",kVe="[object Function]",QVe="[object Map]",FVe="[object Number]",RVe="[object Object]",TVe="[object RegExp]",NVe="[object Set]",LVe="[object String]",OVe="[object WeakMap]",MVe="[object ArrayBuffer]",UVe="[object DataView]",_Ve="[object Float32Array]",HVe="[object Float64Array]",qVe="[object Int8Array]",jVe="[object Int16Array]",GVe="[object Int32Array]",WVe="[object Uint8Array]",YVe="[object Uint8ClampedArray]",KVe="[object Uint16Array]",VVe="[object Uint32Array]",di={};di[_Ve]=di[HVe]=di[qVe]=di[jVe]=di[GVe]=di[WVe]=di[YVe]=di[KVe]=di[VVe]=!0;di[DVe]=di[PVe]=di[MVe]=di[SVe]=di[UVe]=di[bVe]=di[xVe]=di[kVe]=di[QVe]=di[FVe]=di[RVe]=di[TVe]=di[NVe]=di[LVe]=di[OVe]=!1;function JVe(t){return vVe(t)&&BVe(t.length)&&!!di[wVe(t)]}Mte.exports=JVe});var wS=_((XFt,_te)=>{function zVe(t){return function(e){return t(e)}}_te.exports=zVe});var BS=_((i1,Wm)=>{var XVe=IL(),Hte=typeof i1=="object"&&i1&&!i1.nodeType&&i1,s1=Hte&&typeof Wm=="object"&&Wm&&!Wm.nodeType&&Wm,ZVe=s1&&s1.exports===Hte,xL=ZVe&&XVe.process,$Ve=function(){try{var t=s1&&s1.require&&s1.require("util").types;return t||xL&&xL.binding&&xL.binding("util")}catch{}}();Wm.exports=$Ve});var vS=_((ZFt,Gte)=>{var eJe=Ute(),tJe=wS(),qte=BS(),jte=qte&&qte.isTypedArray,rJe=jte?tJe(jte):eJe;Gte.exports=rJe});var kL=_(($Ft,Wte)=>{var nJe=vte(),iJe=e1(),sJe=jl(),oJe=r1(),aJe=n1(),lJe=vS(),cJe=Object.prototype,uJe=cJe.hasOwnProperty;function AJe(t,e){var r=sJe(t),o=!r&&iJe(t),a=!r&&!o&&oJe(t),n=!r&&!o&&!a&&lJe(t),u=r||o||a||n,A=u?nJe(t.length,String):[],p=A.length;for(var h in t)(e||uJe.call(t,h))&&!(u&&(h=="length"||a&&(h=="offset"||h=="parent")||n&&(h=="buffer"||h=="byteLength"||h=="byteOffset")||aJe(h,p)))&&A.push(h);return A}Wte.exports=AJe});var DS=_((eRt,Yte)=>{var fJe=Object.prototype;function pJe(t){var e=t&&t.constructor,r=typeof e=="function"&&e.prototype||fJe;return t===r}Yte.exports=pJe});var QL=_((tRt,Kte)=>{function hJe(t,e){return function(r){return t(e(r))}}Kte.exports=hJe});var Jte=_((rRt,Vte)=>{var gJe=QL(),dJe=gJe(Object.keys,Object);Vte.exports=dJe});var Xte=_((nRt,zte)=>{var mJe=DS(),yJe=Jte(),EJe=Object.prototype,CJe=EJe.hasOwnProperty;function IJe(t){if(!mJe(t))return yJe(t);var e=[];for(var r in Object(t))CJe.call(t,r)&&r!="constructor"&&e.push(r);return e}zte.exports=IJe});var o1=_((iRt,Zte)=>{var wJe=hS(),BJe=IS();function vJe(t){return t!=null&&BJe(t.length)&&!wJe(t)}Zte.exports=vJe});var PS=_((sRt,$te)=>{var DJe=kL(),PJe=Xte(),SJe=o1();function bJe(t){return SJe(t)?DJe(t):PJe(t)}$te.exports=bJe});var FL=_((oRt,ere)=>{var xJe=SL(),kJe=CS(),QJe=PS();function FJe(t){return xJe(t,QJe,kJe)}ere.exports=FJe});var nre=_((aRt,rre)=>{var tre=FL(),RJe=1,TJe=Object.prototype,NJe=TJe.hasOwnProperty;function LJe(t,e,r,o,a,n){var u=r&RJe,A=tre(t),p=A.length,h=tre(e),E=h.length;if(p!=E&&!u)return!1;for(var w=p;w--;){var D=A[w];if(!(u?D in e:NJe.call(e,D)))return!1}var x=n.get(t),C=n.get(e);if(x&&C)return x==e&&C==t;var T=!0;n.set(t,e),n.set(e,t);for(var L=u;++w{var OJe=$p(),MJe=ql(),UJe=OJe(MJe,"DataView");ire.exports=UJe});var are=_((cRt,ore)=>{var _Je=$p(),HJe=ql(),qJe=_Je(HJe,"Promise");ore.exports=qJe});var cre=_((uRt,lre)=>{var jJe=$p(),GJe=ql(),WJe=jJe(GJe,"Set");lre.exports=WJe});var Are=_((ARt,ure)=>{var YJe=$p(),KJe=ql(),VJe=YJe(KJe,"WeakMap");ure.exports=VJe});var a1=_((fRt,yre)=>{var RL=sre(),TL=gS(),NL=are(),LL=cre(),OL=Are(),mre=mg(),Ym=BL(),fre="[object Map]",JJe="[object Object]",pre="[object Promise]",hre="[object Set]",gre="[object WeakMap]",dre="[object DataView]",zJe=Ym(RL),XJe=Ym(TL),ZJe=Ym(NL),$Je=Ym(LL),eze=Ym(OL),yg=mre;(RL&&yg(new RL(new ArrayBuffer(1)))!=dre||TL&&yg(new TL)!=fre||NL&&yg(NL.resolve())!=pre||LL&&yg(new LL)!=hre||OL&&yg(new OL)!=gre)&&(yg=function(t){var e=mre(t),r=e==JJe?t.constructor:void 0,o=r?Ym(r):"";if(o)switch(o){case zJe:return dre;case XJe:return fre;case ZJe:return pre;case $Je:return hre;case eze:return gre}return e});yre.exports=yg});var Pre=_((pRt,Dre)=>{var ML=mS(),tze=vL(),rze=hte(),nze=nre(),Ere=a1(),Cre=jl(),Ire=r1(),ize=vS(),sze=1,wre="[object Arguments]",Bre="[object Array]",SS="[object Object]",oze=Object.prototype,vre=oze.hasOwnProperty;function aze(t,e,r,o,a,n){var u=Cre(t),A=Cre(e),p=u?Bre:Ere(t),h=A?Bre:Ere(e);p=p==wre?SS:p,h=h==wre?SS:h;var E=p==SS,w=h==SS,D=p==h;if(D&&Ire(t)){if(!Ire(e))return!1;u=!0,E=!1}if(D&&!E)return n||(n=new ML),u||ize(t)?tze(t,e,r,o,a,n):rze(t,e,p,r,o,a,n);if(!(r&sze)){var x=E&&vre.call(t,"__wrapped__"),C=w&&vre.call(e,"__wrapped__");if(x||C){var T=x?t.value():t,L=C?e.value():e;return n||(n=new ML),a(T,L,r,o,n)}}return D?(n||(n=new ML),nze(t,e,r,o,a,n)):!1}Dre.exports=aze});var kre=_((hRt,xre)=>{var lze=Pre(),Sre=Zu();function bre(t,e,r,o,a){return t===e?!0:t==null||e==null||!Sre(t)&&!Sre(e)?t!==t&&e!==e:lze(t,e,r,o,bre,a)}xre.exports=bre});var Fre=_((gRt,Qre)=>{var cze=kre();function uze(t,e){return cze(t,e)}Qre.exports=uze});var UL=_((dRt,Rre)=>{var Aze=$p(),fze=function(){try{var t=Aze(Object,"defineProperty");return t({},"",{}),t}catch{}}();Rre.exports=fze});var bS=_((mRt,Nre)=>{var Tre=UL();function pze(t,e,r){e=="__proto__"&&Tre?Tre(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}Nre.exports=pze});var _L=_((yRt,Lre)=>{var hze=bS(),gze=Um();function dze(t,e,r){(r!==void 0&&!gze(t[e],r)||r===void 0&&!(e in t))&&hze(t,e,r)}Lre.exports=dze});var Mre=_((ERt,Ore)=>{function mze(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}Ore.exports=mze});var _re=_((CRt,Ure)=>{var yze=Mre(),Eze=yze();Ure.exports=Eze});var HL=_((l1,Km)=>{var Cze=ql(),Gre=typeof l1=="object"&&l1&&!l1.nodeType&&l1,Hre=Gre&&typeof Km=="object"&&Km&&!Km.nodeType&&Km,Ize=Hre&&Hre.exports===Gre,qre=Ize?Cze.Buffer:void 0,jre=qre?qre.allocUnsafe:void 0;function wze(t,e){if(e)return t.slice();var r=t.length,o=jre?jre(r):new t.constructor(r);return t.copy(o),o}Km.exports=wze});var xS=_((IRt,Yre)=>{var Wre=DL();function Bze(t){var e=new t.constructor(t.byteLength);return new Wre(e).set(new Wre(t)),e}Yre.exports=Bze});var qL=_((wRt,Kre)=>{var vze=xS();function Dze(t,e){var r=e?vze(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}Kre.exports=Dze});var kS=_((BRt,Vre)=>{function Pze(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r{var Sze=cl(),Jre=Object.create,bze=function(){function t(){}return function(e){if(!Sze(e))return{};if(Jre)return Jre(e);t.prototype=e;var r=new t;return t.prototype=void 0,r}}();zre.exports=bze});var QS=_((DRt,Zre)=>{var xze=QL(),kze=xze(Object.getPrototypeOf,Object);Zre.exports=kze});var jL=_((PRt,$re)=>{var Qze=Xre(),Fze=QS(),Rze=DS();function Tze(t){return typeof t.constructor=="function"&&!Rze(t)?Qze(Fze(t)):{}}$re.exports=Tze});var tne=_((SRt,ene)=>{var Nze=o1(),Lze=Zu();function Oze(t){return Lze(t)&&Nze(t)}ene.exports=Oze});var WL=_((bRt,nne)=>{var Mze=mg(),Uze=QS(),_ze=Zu(),Hze="[object Object]",qze=Function.prototype,jze=Object.prototype,rne=qze.toString,Gze=jze.hasOwnProperty,Wze=rne.call(Object);function Yze(t){if(!_ze(t)||Mze(t)!=Hze)return!1;var e=Uze(t);if(e===null)return!0;var r=Gze.call(e,"constructor")&&e.constructor;return typeof r=="function"&&r instanceof r&&rne.call(r)==Wze}nne.exports=Yze});var YL=_((xRt,ine)=>{function Kze(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}ine.exports=Kze});var RS=_((kRt,sne)=>{var Vze=bS(),Jze=Um(),zze=Object.prototype,Xze=zze.hasOwnProperty;function Zze(t,e,r){var o=t[e];(!(Xze.call(t,e)&&Jze(o,r))||r===void 0&&!(e in t))&&Vze(t,e,r)}sne.exports=Zze});var Eg=_((QRt,one)=>{var $ze=RS(),eXe=bS();function tXe(t,e,r,o){var a=!r;r||(r={});for(var n=-1,u=e.length;++n{function rXe(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}ane.exports=rXe});var une=_((RRt,cne)=>{var nXe=cl(),iXe=DS(),sXe=lne(),oXe=Object.prototype,aXe=oXe.hasOwnProperty;function lXe(t){if(!nXe(t))return sXe(t);var e=iXe(t),r=[];for(var o in t)o=="constructor"&&(e||!aXe.call(t,o))||r.push(o);return r}cne.exports=lXe});var Vm=_((TRt,Ane)=>{var cXe=kL(),uXe=une(),AXe=o1();function fXe(t){return AXe(t)?cXe(t,!0):uXe(t)}Ane.exports=fXe});var pne=_((NRt,fne)=>{var pXe=Eg(),hXe=Vm();function gXe(t){return pXe(t,hXe(t))}fne.exports=gXe});var Ene=_((LRt,yne)=>{var hne=_L(),dXe=HL(),mXe=qL(),yXe=kS(),EXe=jL(),gne=e1(),dne=jl(),CXe=tne(),IXe=r1(),wXe=hS(),BXe=cl(),vXe=WL(),DXe=vS(),mne=YL(),PXe=pne();function SXe(t,e,r,o,a,n,u){var A=mne(t,r),p=mne(e,r),h=u.get(p);if(h){hne(t,r,h);return}var E=n?n(A,p,r+"",t,e,u):void 0,w=E===void 0;if(w){var D=dne(p),x=!D&&IXe(p),C=!D&&!x&&DXe(p);E=p,D||x||C?dne(A)?E=A:CXe(A)?E=yXe(A):x?(w=!1,E=dXe(p,!0)):C?(w=!1,E=mXe(p,!0)):E=[]:vXe(p)||gne(p)?(E=A,gne(A)?E=PXe(A):(!BXe(A)||wXe(A))&&(E=EXe(p))):w=!1}w&&(u.set(p,E),a(E,p,o,n,u),u.delete(p)),hne(t,r,E)}yne.exports=SXe});var wne=_((ORt,Ine)=>{var bXe=mS(),xXe=_L(),kXe=_re(),QXe=Ene(),FXe=cl(),RXe=Vm(),TXe=YL();function Cne(t,e,r,o,a){t!==e&&kXe(e,function(n,u){if(a||(a=new bXe),FXe(n))QXe(t,e,u,r,Cne,o,a);else{var A=o?o(TXe(t,u),n,u+"",t,e,a):void 0;A===void 0&&(A=n),xXe(t,u,A)}},RXe)}Ine.exports=Cne});var KL=_((MRt,Bne)=>{function NXe(t){return t}Bne.exports=NXe});var Dne=_((URt,vne)=>{function LXe(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}vne.exports=LXe});var VL=_((_Rt,Sne)=>{var OXe=Dne(),Pne=Math.max;function MXe(t,e,r){return e=Pne(e===void 0?t.length-1:e,0),function(){for(var o=arguments,a=-1,n=Pne(o.length-e,0),u=Array(n);++a{function UXe(t){return function(){return t}}bne.exports=UXe});var Fne=_((qRt,Qne)=>{var _Xe=xne(),kne=UL(),HXe=KL(),qXe=kne?function(t,e){return kne(t,"toString",{configurable:!0,enumerable:!1,value:_Xe(e),writable:!0})}:HXe;Qne.exports=qXe});var Tne=_((jRt,Rne)=>{var jXe=800,GXe=16,WXe=Date.now;function YXe(t){var e=0,r=0;return function(){var o=WXe(),a=GXe-(o-r);if(r=o,a>0){if(++e>=jXe)return arguments[0]}else e=0;return t.apply(void 0,arguments)}}Rne.exports=YXe});var JL=_((GRt,Nne)=>{var KXe=Fne(),VXe=Tne(),JXe=VXe(KXe);Nne.exports=JXe});var One=_((WRt,Lne)=>{var zXe=KL(),XXe=VL(),ZXe=JL();function $Xe(t,e){return ZXe(XXe(t,e,zXe),t+"")}Lne.exports=$Xe});var Une=_((YRt,Mne)=>{var eZe=Um(),tZe=o1(),rZe=n1(),nZe=cl();function iZe(t,e,r){if(!nZe(r))return!1;var o=typeof e;return(o=="number"?tZe(r)&&rZe(e,r.length):o=="string"&&e in r)?eZe(r[e],t):!1}Mne.exports=iZe});var Hne=_((KRt,_ne)=>{var sZe=One(),oZe=Une();function aZe(t){return sZe(function(e,r){var o=-1,a=r.length,n=a>1?r[a-1]:void 0,u=a>2?r[2]:void 0;for(n=t.length>3&&typeof n=="function"?(a--,n):void 0,u&&oZe(r[0],r[1],u)&&(n=a<3?void 0:n,a=1),e=Object(e);++o{var lZe=wne(),cZe=Hne(),uZe=cZe(function(t,e,r,o){lZe(t,e,r,o)});qne.exports=uZe});var qe={};Kt(qe,{AsyncActions:()=>ZL,BufferStream:()=>XL,CachingStrategy:()=>tie,DefaultStream:()=>$L,allSettledSafe:()=>Wc,assertNever:()=>tO,bufferStream:()=>Xm,buildIgnorePattern:()=>mZe,convertMapsToIndexableObjects:()=>NS,dynamicRequire:()=>vf,escapeRegExp:()=>fZe,getArrayWithDefault:()=>u1,getFactoryWithDefault:()=>Al,getMapWithDefault:()=>A1,getSetWithDefault:()=>Jm,groupBy:()=>CZe,isIndexableObject:()=>zL,isPathLike:()=>yZe,isTaggedYarnVersion:()=>AZe,makeDeferred:()=>Zne,mapAndFilter:()=>ul,mapAndFind:()=>eh,mergeIntoTarget:()=>nie,overrideType:()=>pZe,parseBoolean:()=>f1,parseInt:()=>Zm,parseOptionalBoolean:()=>rie,plural:()=>TS,prettifyAsyncErrors:()=>zm,prettifySyncErrors:()=>rO,releaseAfterUseAsync:()=>gZe,replaceEnvVariables:()=>LS,sortMap:()=>Ps,toMerged:()=>EZe,tryParseOptionalBoolean:()=>nO,validateEnum:()=>hZe});function AZe(t){return!!(Jne.default.valid(t)&&t.match(/^[^-]+(-rc\.[0-9]+)?$/))}function TS(t,{one:e,more:r,zero:o=r}){return t===0?o:t===1?e:r}function fZe(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function pZe(t){}function tO(t){throw new Error(`Assertion failed: Unexpected object '${t}'`)}function hZe(t,e){let r=Object.values(t);if(!r.includes(e))throw new it(`Invalid value for enumeration: ${JSON.stringify(e)} (expected one of ${r.map(o=>JSON.stringify(o)).join(", ")})`);return e}function ul(t,e){let r=[];for(let o of t){let a=e(o);a!==zne&&r.push(a)}return r}function eh(t,e){for(let r of t){let o=e(r);if(o!==Xne)return o}}function zL(t){return typeof t=="object"&&t!==null}async function Wc(t){let e=await Promise.allSettled(t),r=[];for(let o of e){if(o.status==="rejected")throw o.reason;r.push(o.value)}return r}function NS(t){if(t instanceof Map&&(t=Object.fromEntries(t)),zL(t))for(let e of Object.keys(t)){let r=t[e];zL(r)&&(t[e]=NS(r))}return t}function Al(t,e,r){let o=t.get(e);return typeof o>"u"&&t.set(e,o=r()),o}function u1(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=[]),r}function Jm(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Set),r}function A1(t,e){let r=t.get(e);return typeof r>"u"&&t.set(e,r=new Map),r}async function gZe(t,e){if(e==null)return await t();try{return await t()}finally{await e()}}async function zm(t,e){try{return await t()}catch(r){throw r.message=e(r.message),r}}function rO(t,e){try{return t()}catch(r){throw r.message=e(r.message),r}}async function Xm(t){return await new Promise((e,r)=>{let o=[];t.on("error",a=>{r(a)}),t.on("data",a=>{o.push(a)}),t.on("end",()=>{e(Buffer.concat(o))})})}function Zne(){let t,e;return{promise:new Promise((o,a)=>{t=o,e=a}),resolve:t,reject:e}}function $ne(t){return c1(Ae.fromPortablePath(t))}function eie(path){let physicalPath=Ae.fromPortablePath(path),currentCacheEntry=c1.cache[physicalPath];delete c1.cache[physicalPath];let result;try{result=$ne(physicalPath);let freshCacheEntry=c1.cache[physicalPath],dynamicModule=eval("module"),freshCacheIndex=dynamicModule.children.indexOf(freshCacheEntry);freshCacheIndex!==-1&&dynamicModule.children.splice(freshCacheIndex,1)}finally{c1.cache[physicalPath]=currentCacheEntry}return result}function dZe(t){let e=Gne.get(t),r=ae.statSync(t);if(e?.mtime===r.mtimeMs)return e.instance;let o=eie(t);return Gne.set(t,{mtime:r.mtimeMs,instance:o}),o}function vf(t,{cachingStrategy:e=2}={}){switch(e){case 0:return eie(t);case 1:return dZe(t);case 2:return $ne(t);default:throw new Error("Unsupported caching strategy")}}function Ps(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function mZe(t){return t.length===0?null:t.map(e=>`(${Kne.default.makeRe(e,{windows:!1,dot:!0}).source})`).join("|")}function LS(t,{env:e}){let r=/\${(?[\d\w_]+)(?:)?(?:-(?[^}]*))?}/g;return t.replace(r,(...o)=>{let{variableName:a,colon:n,fallback:u}=o[o.length-1],A=Object.hasOwn(e,a),p=e[a];if(p||A&&!n)return p;if(u!=null)return u;throw new it(`Environment variable not found (${a})`)})}function f1(t){switch(t){case"true":case"1":case 1:case!0:return!0;case"false":case"0":case 0:case!1:return!1;default:throw new Error(`Couldn't parse "${t}" as a boolean`)}}function rie(t){return typeof t>"u"?t:f1(t)}function nO(t){try{return rie(t)}catch{return null}}function yZe(t){return!!(Ae.isAbsolute(t)||t.match(/^(\.{1,2}|~)\//))}function nie(t,...e){let r=u=>({value:u}),o=r(t),a=e.map(u=>r(u)),{value:n}=(0,Yne.default)(o,...a,(u,A)=>{if(Array.isArray(u)&&Array.isArray(A)){for(let p of A)u.find(h=>(0,Wne.default)(h,p))||u.push(p);return u}});return n}function EZe(...t){return nie({},...t)}function CZe(t,e){let r=Object.create(null);for(let o of t){let a=o[e];r[a]??=[],r[a].push(o)}return r}function Zm(t){return typeof t=="string"?Number.parseInt(t,10):t}var Wne,Yne,Kne,Vne,Jne,eO,zne,Xne,XL,ZL,$L,c1,Gne,tie,Gl=It(()=>{Pt();Gt();Wne=et(Fre()),Yne=et(jne()),Kne=et(Xo()),Vne=et(lg()),Jne=et(ni()),eO=ve("stream");zne=Symbol();ul.skip=zne;Xne=Symbol();eh.skip=Xne;XL=class extends eO.Transform{constructor(){super(...arguments);this.chunks=[]}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: BufferStream only accept buffers");this.chunks.push(r),a(null,null)}_flush(r){r(null,Buffer.concat(this.chunks))}};ZL=class{constructor(e){this.deferred=new Map;this.promises=new Map;this.limit=(0,Vne.default)(e)}set(e,r){let o=this.deferred.get(e);typeof o>"u"&&this.deferred.set(e,o=Zne());let a=this.limit(()=>r());return this.promises.set(e,a),a.then(()=>{this.promises.get(e)===a&&o.resolve()},n=>{this.promises.get(e)===a&&o.reject(n)}),o.promise}reduce(e,r){let o=this.promises.get(e)??Promise.resolve();this.set(e,()=>r(o))}async wait(){await Promise.all(this.promises.values())}},$L=class extends eO.Transform{constructor(r=Buffer.alloc(0)){super();this.active=!0;this.ifEmpty=r}_transform(r,o,a){if(o!=="buffer"||!Buffer.isBuffer(r))throw new Error("Assertion failed: DefaultStream only accept buffers");this.active=!1,a(null,r)}_flush(r){this.active&&this.ifEmpty.length>0?r(null,this.ifEmpty):r(null)}},c1=eval("require");Gne=new Map;tie=(o=>(o[o.NoCache=0]="NoCache",o[o.FsTime=1]="FsTime",o[o.Node=2]="Node",o))(tie||{})});var $m,iO,sO,iie=It(()=>{$m=(r=>(r.HARD="HARD",r.SOFT="SOFT",r))($m||{}),iO=(o=>(o.Dependency="Dependency",o.PeerDependency="PeerDependency",o.PeerDependencyMeta="PeerDependencyMeta",o))(iO||{}),sO=(o=>(o.Inactive="inactive",o.Redundant="redundant",o.Active="active",o))(sO||{})});var pe={};Kt(pe,{LogLevel:()=>HS,Style:()=>MS,Type:()=>Ct,addLogFilterSupport:()=>g1,applyColor:()=>Gs,applyHyperlink:()=>ty,applyStyle:()=>Cg,json:()=>Ig,jsonOrPretty:()=>BZe,mark:()=>uO,pretty:()=>Ut,prettyField:()=>$u,prettyList:()=>cO,prettyTruncatedLocatorList:()=>_S,stripAnsi:()=>ey.default,supportsColor:()=>US,supportsHyperlinks:()=>lO,tuple:()=>Yc});function sie(t){let e=["KiB","MiB","GiB","TiB"],r=e.length;for(;r>1&&t<1024**r;)r-=1;let o=1024**r;return`${Math.floor(t*100/o)/100} ${e[r-1]}`}function Yc(t,e){return[e,t]}function Cg(t,e,r){return t.get("enableColors")&&r&2&&(e=h1.default.bold(e)),e}function Gs(t,e,r){if(!t.get("enableColors"))return e;let o=IZe.get(r);if(o===null)return e;let a=typeof o>"u"?r:aO.level>=3?o[0]:o[1],n=typeof a=="number"?oO.ansi256(a):a.startsWith("#")?oO.hex(a):oO[a];if(typeof n!="function")throw new Error(`Invalid format type ${a}`);return n(e)}function ty(t,e,r){return t.get("enableHyperlinks")?wZe?`\x1B]8;;${r}\x1B\\${e}\x1B]8;;\x1B\\`:`\x1B]8;;${r}\x07${e}\x1B]8;;\x07`:e}function Ut(t,e,r){if(e===null)return Gs(t,"null",Ct.NULL);if(Object.hasOwn(OS,r))return OS[r].pretty(t,e);if(typeof e!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof e}`);return Gs(t,e,r)}function cO(t,e,r,{separator:o=", "}={}){return[...e].map(a=>Ut(t,a,r)).join(o)}function Ig(t,e){if(t===null)return null;if(Object.hasOwn(OS,e))return OS[e].json(t);if(typeof t!="string")throw new Error(`Assertion failed: Expected the value to be a string, got ${typeof t}`);return t}function BZe(t,e,[r,o]){return t?Ig(r,o):Ut(e,r,o)}function uO(t){return{Check:Gs(t,"\u2713","green"),Cross:Gs(t,"\u2718","red"),Question:Gs(t,"?","cyan")}}function $u(t,{label:e,value:[r,o]}){return`${Ut(t,e,Ct.CODE)}: ${Ut(t,r,o)}`}function _S(t,e,r){let o=[],a=[...e],n=r;for(;a.length>0;){let h=a[0],E=`${jr(t,h)}, `,w=AO(h).length+2;if(o.length>0&&nh).join("").slice(0,-2);let u="X".repeat(a.length.toString().length),A=`and ${u} more.`,p=a.length;for(;o.length>1&&nh).join(""),A.replace(u,Ut(t,p,Ct.NUMBER))].join("")}function g1(t,{configuration:e}){let r=e.get("logFilters"),o=new Map,a=new Map,n=[];for(let w of r){let D=w.get("level");if(typeof D>"u")continue;let x=w.get("code");typeof x<"u"&&o.set(x,D);let C=w.get("text");typeof C<"u"&&a.set(C,D);let T=w.get("pattern");typeof T<"u"&&n.push([oie.default.matcher(T,{contains:!0}),D])}n.reverse();let u=(w,D,x)=>{if(w===null||w===0)return x;let C=a.size>0||n.length>0?(0,ey.default)(D):D;if(a.size>0){let T=a.get(C);if(typeof T<"u")return T??x}if(n.length>0){for(let[T,L]of n)if(T(C))return L??x}if(o.size>0){let T=o.get(Ju(w));if(typeof T<"u")return T??x}return x},A=t.reportInfo,p=t.reportWarning,h=t.reportError,E=function(w,D,x,C){switch(u(D,x,C)){case"info":A.call(w,D,x);break;case"warning":p.call(w,D??0,x);break;case"error":h.call(w,D??0,x);break}};t.reportInfo=function(...w){return E(this,...w,"info")},t.reportWarning=function(...w){return E(this,...w,"warning")},t.reportError=function(...w){return E(this,...w,"error")}}var h1,p1,oie,ey,aie,Ct,MS,aO,US,lO,oO,IZe,Co,OS,wZe,HS,Wl=It(()=>{Pt();h1=et(iL()),p1=et(sg());Gt();oie=et(Xo()),ey=et(pS()),aie=ve("util");jP();Io();Ct={NO_HINT:"NO_HINT",ID:"ID",NULL:"NULL",SCOPE:"SCOPE",NAME:"NAME",RANGE:"RANGE",REFERENCE:"REFERENCE",NUMBER:"NUMBER",PATH:"PATH",URL:"URL",ADDED:"ADDED",REMOVED:"REMOVED",CODE:"CODE",INSPECT:"INSPECT",DURATION:"DURATION",SIZE:"SIZE",SIZE_DIFF:"SIZE_DIFF",IDENT:"IDENT",DESCRIPTOR:"DESCRIPTOR",LOCATOR:"LOCATOR",RESOLUTION:"RESOLUTION",DEPENDENT:"DEPENDENT",PACKAGE_EXTENSION:"PACKAGE_EXTENSION",SETTING:"SETTING",MARKDOWN:"MARKDOWN",MARKDOWN_INLINE:"MARKDOWN_INLINE"},MS=(e=>(e[e.BOLD=2]="BOLD",e))(MS||{}),aO=p1.default.GITHUB_ACTIONS?{level:2}:h1.default.supportsColor?{level:h1.default.supportsColor.level}:{level:0},US=aO.level!==0,lO=US&&!p1.default.GITHUB_ACTIONS&&!p1.default.CIRCLE&&!p1.default.GITLAB,oO=new h1.default.Instance(aO),IZe=new Map([[Ct.NO_HINT,null],[Ct.NULL,["#a853b5",129]],[Ct.SCOPE,["#d75f00",166]],[Ct.NAME,["#d7875f",173]],[Ct.RANGE,["#00afaf",37]],[Ct.REFERENCE,["#87afff",111]],[Ct.NUMBER,["#ffd700",220]],[Ct.PATH,["#d75fd7",170]],[Ct.URL,["#d75fd7",170]],[Ct.ADDED,["#5faf00",70]],[Ct.REMOVED,["#ff3131",160]],[Ct.CODE,["#87afff",111]],[Ct.SIZE,["#ffd700",220]]]),Co=t=>t;OS={[Ct.ID]:Co({pretty:(t,e)=>typeof e=="number"?Gs(t,`${e}`,Ct.NUMBER):Gs(t,e,Ct.CODE),json:t=>t}),[Ct.INSPECT]:Co({pretty:(t,e)=>(0,aie.inspect)(e,{depth:1/0,colors:t.get("enableColors"),compact:!0,breakLength:1/0}),json:t=>t}),[Ct.NUMBER]:Co({pretty:(t,e)=>Gs(t,`${e}`,Ct.NUMBER),json:t=>t}),[Ct.IDENT]:Co({pretty:(t,e)=>Ui(t,e),json:t=>rn(t)}),[Ct.LOCATOR]:Co({pretty:(t,e)=>jr(t,e),json:t=>Qa(t)}),[Ct.DESCRIPTOR]:Co({pretty:(t,e)=>Jn(t,e),json:t=>ka(t)}),[Ct.RESOLUTION]:Co({pretty:(t,{descriptor:e,locator:r})=>d1(t,e,r),json:({descriptor:t,locator:e})=>({descriptor:ka(t),locator:e!==null?Qa(e):null})}),[Ct.DEPENDENT]:Co({pretty:(t,{locator:e,descriptor:r})=>fO(t,e,r),json:({locator:t,descriptor:e})=>({locator:Qa(t),descriptor:ka(e)})}),[Ct.PACKAGE_EXTENSION]:Co({pretty:(t,e)=>{switch(e.type){case"Dependency":return`${Ui(t,e.parentDescriptor)} \u27A4 ${Gs(t,"dependencies",Ct.CODE)} \u27A4 ${Ui(t,e.descriptor)}`;case"PeerDependency":return`${Ui(t,e.parentDescriptor)} \u27A4 ${Gs(t,"peerDependencies",Ct.CODE)} \u27A4 ${Ui(t,e.descriptor)}`;case"PeerDependencyMeta":return`${Ui(t,e.parentDescriptor)} \u27A4 ${Gs(t,"peerDependenciesMeta",Ct.CODE)} \u27A4 ${Ui(t,Zo(e.selector))} \u27A4 ${Gs(t,e.key,Ct.CODE)}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${e.type}`)}},json:t=>{switch(t.type){case"Dependency":return`${rn(t.parentDescriptor)} > ${rn(t.descriptor)}`;case"PeerDependency":return`${rn(t.parentDescriptor)} >> ${rn(t.descriptor)}`;case"PeerDependencyMeta":return`${rn(t.parentDescriptor)} >> ${t.selector} / ${t.key}`;default:throw new Error(`Assertion failed: Unsupported package extension type: ${t.type}`)}}}),[Ct.SETTING]:Co({pretty:(t,e)=>(t.get(e),ty(t,Gs(t,e,Ct.CODE),`https://yarnpkg.com/configuration/yarnrc#${e}`)),json:t=>t}),[Ct.DURATION]:Co({pretty:(t,e)=>{if(e>1e3*60){let r=Math.floor(e/1e3/60),o=Math.ceil((e-r*60*1e3)/1e3);return o===0?`${r}m`:`${r}m ${o}s`}else{let r=Math.floor(e/1e3),o=e-r*1e3;return o===0?`${r}s`:`${r}s ${o}ms`}},json:t=>t}),[Ct.SIZE]:Co({pretty:(t,e)=>Gs(t,sie(e),Ct.NUMBER),json:t=>t}),[Ct.SIZE_DIFF]:Co({pretty:(t,e)=>{let r=e>=0?"+":"-",o=r==="+"?Ct.REMOVED:Ct.ADDED;return Gs(t,`${r} ${sie(Math.max(Math.abs(e),1))}`,o)},json:t=>t}),[Ct.PATH]:Co({pretty:(t,e)=>Gs(t,Ae.fromPortablePath(e),Ct.PATH),json:t=>Ae.fromPortablePath(t)}),[Ct.MARKDOWN]:Co({pretty:(t,{text:e,format:r,paragraphs:o})=>yo(e,{format:r,paragraphs:o}),json:({text:t})=>t}),[Ct.MARKDOWN_INLINE]:Co({pretty:(t,e)=>(e=e.replace(/(`+)((?:.|[\n])*?)\1/g,(r,o,a)=>Ut(t,o+a+o,Ct.CODE)),e=e.replace(/(\*\*)((?:.|[\n])*?)\1/g,(r,o,a)=>Cg(t,a,2)),e),json:t=>t})};wZe=!!process.env.KONSOLE_VERSION;HS=(a=>(a.Error="error",a.Warning="warning",a.Info="info",a.Discard="discard",a))(HS||{})});var lie=_(ry=>{"use strict";Object.defineProperty(ry,"__esModule",{value:!0});ry.splitWhen=ry.flatten=void 0;function vZe(t){return t.reduce((e,r)=>[].concat(e,r),[])}ry.flatten=vZe;function DZe(t,e){let r=[[]],o=0;for(let a of t)e(a)?(o++,r[o]=[]):r[o].push(a);return r}ry.splitWhen=DZe});var cie=_(qS=>{"use strict";Object.defineProperty(qS,"__esModule",{value:!0});qS.isEnoentCodeError=void 0;function PZe(t){return t.code==="ENOENT"}qS.isEnoentCodeError=PZe});var uie=_(jS=>{"use strict";Object.defineProperty(jS,"__esModule",{value:!0});jS.createDirentFromStats=void 0;var pO=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function SZe(t,e){return new pO(t,e)}jS.createDirentFromStats=SZe});var hie=_(Vi=>{"use strict";Object.defineProperty(Vi,"__esModule",{value:!0});Vi.convertPosixPathToPattern=Vi.convertWindowsPathToPattern=Vi.convertPathToPattern=Vi.escapePosixPath=Vi.escapeWindowsPath=Vi.escape=Vi.removeLeadingDotSegment=Vi.makeAbsolute=Vi.unixify=void 0;var bZe=ve("os"),xZe=ve("path"),Aie=bZe.platform()==="win32",kZe=2,QZe=/(\\?)([()*?[\]{|}]|^!|[!+@](?=\()|\\(?![!()*+?@[\]{|}]))/g,FZe=/(\\?)([()[\]{}]|^!|[!+@](?=\())/g,RZe=/^\\\\([.?])/,TZe=/\\(?![!()+@[\]{}])/g;function NZe(t){return t.replace(/\\/g,"/")}Vi.unixify=NZe;function LZe(t,e){return xZe.resolve(t,e)}Vi.makeAbsolute=LZe;function OZe(t){if(t.charAt(0)==="."){let e=t.charAt(1);if(e==="/"||e==="\\")return t.slice(kZe)}return t}Vi.removeLeadingDotSegment=OZe;Vi.escape=Aie?hO:gO;function hO(t){return t.replace(FZe,"\\$2")}Vi.escapeWindowsPath=hO;function gO(t){return t.replace(QZe,"\\$2")}Vi.escapePosixPath=gO;Vi.convertPathToPattern=Aie?fie:pie;function fie(t){return hO(t).replace(RZe,"//$1").replace(TZe,"/")}Vi.convertWindowsPathToPattern=fie;function pie(t){return gO(t)}Vi.convertPosixPathToPattern=pie});var die=_((cTt,gie)=>{gie.exports=function(e){if(typeof e!="string"||e==="")return!1;for(var r;r=/(\\).|([@?!+*]\(.*\))/g.exec(e);){if(r[2])return!0;e=e.slice(r.index+r[0].length)}return!1}});var Eie=_((uTt,yie)=>{var MZe=die(),mie={"{":"}","(":")","[":"]"},UZe=function(t){if(t[0]==="!")return!0;for(var e=0,r=-2,o=-2,a=-2,n=-2,u=-2;ee&&(u===-1||u>o||(u=t.indexOf("\\",e),u===-1||u>o)))||a!==-1&&t[e]==="{"&&t[e+1]!=="}"&&(a=t.indexOf("}",e),a>e&&(u=t.indexOf("\\",e),u===-1||u>a))||n!==-1&&t[e]==="("&&t[e+1]==="?"&&/[:!=]/.test(t[e+2])&&t[e+3]!==")"&&(n=t.indexOf(")",e),n>e&&(u=t.indexOf("\\",e),u===-1||u>n))||r!==-1&&t[e]==="("&&t[e+1]!=="|"&&(rr&&(u=t.indexOf("\\",r),u===-1||u>n))))return!0;if(t[e]==="\\"){var A=t[e+1];e+=2;var p=mie[A];if(p){var h=t.indexOf(p,e);h!==-1&&(e=h+1)}if(t[e]==="!")return!0}else e++}return!1},_Ze=function(t){if(t[0]==="!")return!0;for(var e=0;e{"use strict";var HZe=Eie(),qZe=ve("path").posix.dirname,jZe=ve("os").platform()==="win32",dO="/",GZe=/\\/g,WZe=/[\{\[].*[\}\]]$/,YZe=/(^|[^\\])([\{\[]|\([^\)]+$)/,KZe=/\\([\!\*\?\|\[\]\(\)\{\}])/g;Cie.exports=function(e,r){var o=Object.assign({flipBackslashes:!0},r);o.flipBackslashes&&jZe&&e.indexOf(dO)<0&&(e=e.replace(GZe,dO)),WZe.test(e)&&(e+=dO),e+="a";do e=qZe(e);while(HZe(e)||YZe.test(e));return e.replace(KZe,"$1")}});var xie=_(Mr=>{"use strict";Object.defineProperty(Mr,"__esModule",{value:!0});Mr.removeDuplicateSlashes=Mr.matchAny=Mr.convertPatternsToRe=Mr.makeRe=Mr.getPatternParts=Mr.expandBraceExpansion=Mr.expandPatternsWithBraceExpansion=Mr.isAffectDepthOfReadingPattern=Mr.endsWithSlashGlobStar=Mr.hasGlobStar=Mr.getBaseDirectory=Mr.isPatternRelatedToParentDirectory=Mr.getPatternsOutsideCurrentDirectory=Mr.getPatternsInsideCurrentDirectory=Mr.getPositivePatterns=Mr.getNegativePatterns=Mr.isPositivePattern=Mr.isNegativePattern=Mr.convertToNegativePattern=Mr.convertToPositivePattern=Mr.isDynamicPattern=Mr.isStaticPattern=void 0;var VZe=ve("path"),JZe=Iie(),mO=Xo(),wie="**",zZe="\\",XZe=/[*?]|^!/,ZZe=/\[[^[]*]/,$Ze=/(?:^|[^!*+?@])\([^(]*\|[^|]*\)/,e$e=/[!*+?@]\([^(]*\)/,t$e=/,|\.\./,r$e=/(?!^)\/{2,}/g;function Bie(t,e={}){return!vie(t,e)}Mr.isStaticPattern=Bie;function vie(t,e={}){return t===""?!1:!!(e.caseSensitiveMatch===!1||t.includes(zZe)||XZe.test(t)||ZZe.test(t)||$Ze.test(t)||e.extglob!==!1&&e$e.test(t)||e.braceExpansion!==!1&&n$e(t))}Mr.isDynamicPattern=vie;function n$e(t){let e=t.indexOf("{");if(e===-1)return!1;let r=t.indexOf("}",e+1);if(r===-1)return!1;let o=t.slice(e,r);return t$e.test(o)}function i$e(t){return GS(t)?t.slice(1):t}Mr.convertToPositivePattern=i$e;function s$e(t){return"!"+t}Mr.convertToNegativePattern=s$e;function GS(t){return t.startsWith("!")&&t[1]!=="("}Mr.isNegativePattern=GS;function Die(t){return!GS(t)}Mr.isPositivePattern=Die;function o$e(t){return t.filter(GS)}Mr.getNegativePatterns=o$e;function a$e(t){return t.filter(Die)}Mr.getPositivePatterns=a$e;function l$e(t){return t.filter(e=>!yO(e))}Mr.getPatternsInsideCurrentDirectory=l$e;function c$e(t){return t.filter(yO)}Mr.getPatternsOutsideCurrentDirectory=c$e;function yO(t){return t.startsWith("..")||t.startsWith("./..")}Mr.isPatternRelatedToParentDirectory=yO;function u$e(t){return JZe(t,{flipBackslashes:!1})}Mr.getBaseDirectory=u$e;function A$e(t){return t.includes(wie)}Mr.hasGlobStar=A$e;function Pie(t){return t.endsWith("/"+wie)}Mr.endsWithSlashGlobStar=Pie;function f$e(t){let e=VZe.basename(t);return Pie(t)||Bie(e)}Mr.isAffectDepthOfReadingPattern=f$e;function p$e(t){return t.reduce((e,r)=>e.concat(Sie(r)),[])}Mr.expandPatternsWithBraceExpansion=p$e;function Sie(t){let e=mO.braces(t,{expand:!0,nodupes:!0,keepEscaping:!0});return e.sort((r,o)=>r.length-o.length),e.filter(r=>r!=="")}Mr.expandBraceExpansion=Sie;function h$e(t,e){let{parts:r}=mO.scan(t,Object.assign(Object.assign({},e),{parts:!0}));return r.length===0&&(r=[t]),r[0].startsWith("/")&&(r[0]=r[0].slice(1),r.unshift("")),r}Mr.getPatternParts=h$e;function bie(t,e){return mO.makeRe(t,e)}Mr.makeRe=bie;function g$e(t,e){return t.map(r=>bie(r,e))}Mr.convertPatternsToRe=g$e;function d$e(t,e){return e.some(r=>r.test(t))}Mr.matchAny=d$e;function m$e(t){return t.replace(r$e,"/")}Mr.removeDuplicateSlashes=m$e});var Rie=_((pTt,Fie)=>{"use strict";var y$e=ve("stream"),kie=y$e.PassThrough,E$e=Array.prototype.slice;Fie.exports=C$e;function C$e(){let t=[],e=E$e.call(arguments),r=!1,o=e[e.length-1];o&&!Array.isArray(o)&&o.pipe==null?e.pop():o={};let a=o.end!==!1,n=o.pipeError===!0;o.objectMode==null&&(o.objectMode=!0),o.highWaterMark==null&&(o.highWaterMark=64*1024);let u=kie(o);function A(){for(let E=0,w=arguments.length;E0||(r=!1,p())}function x(C){function T(){C.removeListener("merge2UnpipeEnd",T),C.removeListener("end",T),n&&C.removeListener("error",L),D()}function L(U){u.emit("error",U)}if(C._readableState.endEmitted)return D();C.on("merge2UnpipeEnd",T),C.on("end",T),n&&C.on("error",L),C.pipe(u,{end:!1}),C.resume()}for(let C=0;C{"use strict";Object.defineProperty(WS,"__esModule",{value:!0});WS.merge=void 0;var I$e=Rie();function w$e(t){let e=I$e(t);return t.forEach(r=>{r.once("error",o=>e.emit("error",o))}),e.once("close",()=>Tie(t)),e.once("end",()=>Tie(t)),e}WS.merge=w$e;function Tie(t){t.forEach(e=>e.emit("close"))}});var Lie=_(ny=>{"use strict";Object.defineProperty(ny,"__esModule",{value:!0});ny.isEmpty=ny.isString=void 0;function B$e(t){return typeof t=="string"}ny.isString=B$e;function v$e(t){return t===""}ny.isEmpty=v$e});var Df=_(wo=>{"use strict";Object.defineProperty(wo,"__esModule",{value:!0});wo.string=wo.stream=wo.pattern=wo.path=wo.fs=wo.errno=wo.array=void 0;var D$e=lie();wo.array=D$e;var P$e=cie();wo.errno=P$e;var S$e=uie();wo.fs=S$e;var b$e=hie();wo.path=b$e;var x$e=xie();wo.pattern=x$e;var k$e=Nie();wo.stream=k$e;var Q$e=Lie();wo.string=Q$e});var _ie=_(Bo=>{"use strict";Object.defineProperty(Bo,"__esModule",{value:!0});Bo.convertPatternGroupToTask=Bo.convertPatternGroupsToTasks=Bo.groupPatternsByBaseDirectory=Bo.getNegativePatternsAsPositive=Bo.getPositivePatterns=Bo.convertPatternsToTasks=Bo.generate=void 0;var Kc=Df();function F$e(t,e){let r=Oie(t,e),o=Oie(e.ignore,e),a=Mie(r),n=Uie(r,o),u=a.filter(E=>Kc.pattern.isStaticPattern(E,e)),A=a.filter(E=>Kc.pattern.isDynamicPattern(E,e)),p=EO(u,n,!1),h=EO(A,n,!0);return p.concat(h)}Bo.generate=F$e;function Oie(t,e){let r=t;return e.braceExpansion&&(r=Kc.pattern.expandPatternsWithBraceExpansion(r)),e.baseNameMatch&&(r=r.map(o=>o.includes("/")?o:`**/${o}`)),r.map(o=>Kc.pattern.removeDuplicateSlashes(o))}function EO(t,e,r){let o=[],a=Kc.pattern.getPatternsOutsideCurrentDirectory(t),n=Kc.pattern.getPatternsInsideCurrentDirectory(t),u=CO(a),A=CO(n);return o.push(...IO(u,e,r)),"."in A?o.push(wO(".",n,e,r)):o.push(...IO(A,e,r)),o}Bo.convertPatternsToTasks=EO;function Mie(t){return Kc.pattern.getPositivePatterns(t)}Bo.getPositivePatterns=Mie;function Uie(t,e){return Kc.pattern.getNegativePatterns(t).concat(e).map(Kc.pattern.convertToPositivePattern)}Bo.getNegativePatternsAsPositive=Uie;function CO(t){let e={};return t.reduce((r,o)=>{let a=Kc.pattern.getBaseDirectory(o);return a in r?r[a].push(o):r[a]=[o],r},e)}Bo.groupPatternsByBaseDirectory=CO;function IO(t,e,r){return Object.keys(t).map(o=>wO(o,t[o],e,r))}Bo.convertPatternGroupsToTasks=IO;function wO(t,e,r,o){return{dynamic:o,positive:e,negative:r,base:t,patterns:[].concat(e,r.map(Kc.pattern.convertToNegativePattern))}}Bo.convertPatternGroupToTask=wO});var qie=_(YS=>{"use strict";Object.defineProperty(YS,"__esModule",{value:!0});YS.read=void 0;function R$e(t,e,r){e.fs.lstat(t,(o,a)=>{if(o!==null){Hie(r,o);return}if(!a.isSymbolicLink()||!e.followSymbolicLink){BO(r,a);return}e.fs.stat(t,(n,u)=>{if(n!==null){if(e.throwErrorOnBrokenSymbolicLink){Hie(r,n);return}BO(r,a);return}e.markSymbolicLink&&(u.isSymbolicLink=()=>!0),BO(r,u)})})}YS.read=R$e;function Hie(t,e){t(e)}function BO(t,e){t(null,e)}});var jie=_(KS=>{"use strict";Object.defineProperty(KS,"__esModule",{value:!0});KS.read=void 0;function T$e(t,e){let r=e.fs.lstatSync(t);if(!r.isSymbolicLink()||!e.followSymbolicLink)return r;try{let o=e.fs.statSync(t);return e.markSymbolicLink&&(o.isSymbolicLink=()=>!0),o}catch(o){if(!e.throwErrorOnBrokenSymbolicLink)return r;throw o}}KS.read=T$e});var Gie=_(th=>{"use strict";Object.defineProperty(th,"__esModule",{value:!0});th.createFileSystemAdapter=th.FILE_SYSTEM_ADAPTER=void 0;var VS=ve("fs");th.FILE_SYSTEM_ADAPTER={lstat:VS.lstat,stat:VS.stat,lstatSync:VS.lstatSync,statSync:VS.statSync};function N$e(t){return t===void 0?th.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},th.FILE_SYSTEM_ADAPTER),t)}th.createFileSystemAdapter=N$e});var Wie=_(DO=>{"use strict";Object.defineProperty(DO,"__esModule",{value:!0});var L$e=Gie(),vO=class{constructor(e={}){this._options=e,this.followSymbolicLink=this._getValue(this._options.followSymbolicLink,!0),this.fs=L$e.createFileSystemAdapter(this._options.fs),this.markSymbolicLink=this._getValue(this._options.markSymbolicLink,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0)}_getValue(e,r){return e??r}};DO.default=vO});var wg=_(rh=>{"use strict";Object.defineProperty(rh,"__esModule",{value:!0});rh.statSync=rh.stat=rh.Settings=void 0;var Yie=qie(),O$e=jie(),PO=Wie();rh.Settings=PO.default;function M$e(t,e,r){if(typeof e=="function"){Yie.read(t,SO(),e);return}Yie.read(t,SO(e),r)}rh.stat=M$e;function U$e(t,e){let r=SO(e);return O$e.read(t,r)}rh.statSync=U$e;function SO(t={}){return t instanceof PO.default?t:new PO.default(t)}});var Jie=_((BTt,Vie)=>{var Kie;Vie.exports=typeof queueMicrotask=="function"?queueMicrotask.bind(typeof window<"u"?window:global):t=>(Kie||(Kie=Promise.resolve())).then(t).catch(e=>setTimeout(()=>{throw e},0))});var Xie=_((vTt,zie)=>{zie.exports=H$e;var _$e=Jie();function H$e(t,e){let r,o,a,n=!0;Array.isArray(t)?(r=[],o=t.length):(a=Object.keys(t),r={},o=a.length);function u(p){function h(){e&&e(p,r),e=null}n?_$e(h):h()}function A(p,h,E){r[p]=E,(--o===0||h)&&u(h)}o?a?a.forEach(function(p){t[p](function(h,E){A(p,h,E)})}):t.forEach(function(p,h){p(function(E,w){A(h,E,w)})}):u(null),n=!1}});var bO=_(zS=>{"use strict";Object.defineProperty(zS,"__esModule",{value:!0});zS.IS_SUPPORT_READDIR_WITH_FILE_TYPES=void 0;var JS=process.versions.node.split(".");if(JS[0]===void 0||JS[1]===void 0)throw new Error(`Unexpected behavior. The 'process.versions.node' variable has invalid value: ${process.versions.node}`);var Zie=Number.parseInt(JS[0],10),q$e=Number.parseInt(JS[1],10),$ie=10,j$e=10,G$e=Zie>$ie,W$e=Zie===$ie&&q$e>=j$e;zS.IS_SUPPORT_READDIR_WITH_FILE_TYPES=G$e||W$e});var ese=_(XS=>{"use strict";Object.defineProperty(XS,"__esModule",{value:!0});XS.createDirentFromStats=void 0;var xO=class{constructor(e,r){this.name=e,this.isBlockDevice=r.isBlockDevice.bind(r),this.isCharacterDevice=r.isCharacterDevice.bind(r),this.isDirectory=r.isDirectory.bind(r),this.isFIFO=r.isFIFO.bind(r),this.isFile=r.isFile.bind(r),this.isSocket=r.isSocket.bind(r),this.isSymbolicLink=r.isSymbolicLink.bind(r)}};function Y$e(t,e){return new xO(t,e)}XS.createDirentFromStats=Y$e});var kO=_(ZS=>{"use strict";Object.defineProperty(ZS,"__esModule",{value:!0});ZS.fs=void 0;var K$e=ese();ZS.fs=K$e});var QO=_($S=>{"use strict";Object.defineProperty($S,"__esModule",{value:!0});$S.joinPathSegments=void 0;function V$e(t,e,r){return t.endsWith(r)?t+e:t+r+e}$S.joinPathSegments=V$e});var ose=_(nh=>{"use strict";Object.defineProperty(nh,"__esModule",{value:!0});nh.readdir=nh.readdirWithFileTypes=nh.read=void 0;var J$e=wg(),tse=Xie(),z$e=bO(),rse=kO(),nse=QO();function X$e(t,e,r){if(!e.stats&&z$e.IS_SUPPORT_READDIR_WITH_FILE_TYPES){ise(t,e,r);return}sse(t,e,r)}nh.read=X$e;function ise(t,e,r){e.fs.readdir(t,{withFileTypes:!0},(o,a)=>{if(o!==null){eb(r,o);return}let n=a.map(A=>({dirent:A,name:A.name,path:nse.joinPathSegments(t,A.name,e.pathSegmentSeparator)}));if(!e.followSymbolicLinks){FO(r,n);return}let u=n.map(A=>Z$e(A,e));tse(u,(A,p)=>{if(A!==null){eb(r,A);return}FO(r,p)})})}nh.readdirWithFileTypes=ise;function Z$e(t,e){return r=>{if(!t.dirent.isSymbolicLink()){r(null,t);return}e.fs.stat(t.path,(o,a)=>{if(o!==null){if(e.throwErrorOnBrokenSymbolicLink){r(o);return}r(null,t);return}t.dirent=rse.fs.createDirentFromStats(t.name,a),r(null,t)})}}function sse(t,e,r){e.fs.readdir(t,(o,a)=>{if(o!==null){eb(r,o);return}let n=a.map(u=>{let A=nse.joinPathSegments(t,u,e.pathSegmentSeparator);return p=>{J$e.stat(A,e.fsStatSettings,(h,E)=>{if(h!==null){p(h);return}let w={name:u,path:A,dirent:rse.fs.createDirentFromStats(u,E)};e.stats&&(w.stats=E),p(null,w)})}});tse(n,(u,A)=>{if(u!==null){eb(r,u);return}FO(r,A)})})}nh.readdir=sse;function eb(t,e){t(e)}function FO(t,e){t(null,e)}});var Ase=_(ih=>{"use strict";Object.defineProperty(ih,"__esModule",{value:!0});ih.readdir=ih.readdirWithFileTypes=ih.read=void 0;var $$e=wg(),eet=bO(),ase=kO(),lse=QO();function tet(t,e){return!e.stats&&eet.IS_SUPPORT_READDIR_WITH_FILE_TYPES?cse(t,e):use(t,e)}ih.read=tet;function cse(t,e){return e.fs.readdirSync(t,{withFileTypes:!0}).map(o=>{let a={dirent:o,name:o.name,path:lse.joinPathSegments(t,o.name,e.pathSegmentSeparator)};if(a.dirent.isSymbolicLink()&&e.followSymbolicLinks)try{let n=e.fs.statSync(a.path);a.dirent=ase.fs.createDirentFromStats(a.name,n)}catch(n){if(e.throwErrorOnBrokenSymbolicLink)throw n}return a})}ih.readdirWithFileTypes=cse;function use(t,e){return e.fs.readdirSync(t).map(o=>{let a=lse.joinPathSegments(t,o,e.pathSegmentSeparator),n=$$e.statSync(a,e.fsStatSettings),u={name:o,path:a,dirent:ase.fs.createDirentFromStats(o,n)};return e.stats&&(u.stats=n),u})}ih.readdir=use});var fse=_(sh=>{"use strict";Object.defineProperty(sh,"__esModule",{value:!0});sh.createFileSystemAdapter=sh.FILE_SYSTEM_ADAPTER=void 0;var iy=ve("fs");sh.FILE_SYSTEM_ADAPTER={lstat:iy.lstat,stat:iy.stat,lstatSync:iy.lstatSync,statSync:iy.statSync,readdir:iy.readdir,readdirSync:iy.readdirSync};function ret(t){return t===void 0?sh.FILE_SYSTEM_ADAPTER:Object.assign(Object.assign({},sh.FILE_SYSTEM_ADAPTER),t)}sh.createFileSystemAdapter=ret});var pse=_(TO=>{"use strict";Object.defineProperty(TO,"__esModule",{value:!0});var net=ve("path"),iet=wg(),set=fse(),RO=class{constructor(e={}){this._options=e,this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!1),this.fs=set.createFileSystemAdapter(this._options.fs),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,net.sep),this.stats=this._getValue(this._options.stats,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!0),this.fsStatSettings=new iet.Settings({followSymbolicLink:this.followSymbolicLinks,fs:this.fs,throwErrorOnBrokenSymbolicLink:this.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};TO.default=RO});var tb=_(oh=>{"use strict";Object.defineProperty(oh,"__esModule",{value:!0});oh.Settings=oh.scandirSync=oh.scandir=void 0;var hse=ose(),oet=Ase(),NO=pse();oh.Settings=NO.default;function aet(t,e,r){if(typeof e=="function"){hse.read(t,LO(),e);return}hse.read(t,LO(e),r)}oh.scandir=aet;function cet(t,e){let r=LO(e);return oet.read(t,r)}oh.scandirSync=cet;function LO(t={}){return t instanceof NO.default?t:new NO.default(t)}});var dse=_((TTt,gse)=>{"use strict";function uet(t){var e=new t,r=e;function o(){var n=e;return n.next?e=n.next:(e=new t,r=e),n.next=null,n}function a(n){r.next=n,r=n}return{get:o,release:a}}gse.exports=uet});var yse=_((NTt,OO)=>{"use strict";var Aet=dse();function mse(t,e,r){if(typeof t=="function"&&(r=e,e=t,t=null),!(r>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");var o=Aet(fet),a=null,n=null,u=0,A=null,p={push:T,drain:Yl,saturated:Yl,pause:E,paused:!1,get concurrency(){return r},set concurrency(ce){if(!(ce>=1))throw new Error("fastqueue concurrency must be equal to or greater than 1");if(r=ce,!p.paused)for(;a&&u=r||p.paused?n?(n.next=Ie,n=Ie):(a=Ie,n=Ie,p.saturated()):(u++,e.call(t,Ie.value,Ie.worked))}function L(ce,ue){var Ie=o.get();Ie.context=t,Ie.release=U,Ie.value=ce,Ie.callback=ue||Yl,Ie.errorHandler=A,u>=r||p.paused?a?(Ie.next=a,a=Ie):(a=Ie,n=Ie,p.saturated()):(u++,e.call(t,Ie.value,Ie.worked))}function U(ce){ce&&o.release(ce);var ue=a;ue&&u<=r?p.paused?u--:(n===a&&(n=null),a=ue.next,ue.next=null,e.call(t,ue.value,ue.worked),n===null&&p.empty()):--u===0&&p.drain()}function J(){a=null,n=null,p.drain=Yl}function te(){a=null,n=null,p.drain(),p.drain=Yl}function le(ce){A=ce}}function Yl(){}function fet(){this.value=null,this.callback=Yl,this.next=null,this.release=Yl,this.context=null,this.errorHandler=null;var t=this;this.worked=function(r,o){var a=t.callback,n=t.errorHandler,u=t.value;t.value=null,t.callback=Yl,t.errorHandler&&n(r,u),a.call(t.context,r,o),t.release(t)}}function pet(t,e,r){typeof t=="function"&&(r=e,e=t,t=null);function o(E,w){e.call(this,E).then(function(D){w(null,D)},w)}var a=mse(t,o,r),n=a.push,u=a.unshift;return a.push=A,a.unshift=p,a.drained=h,a;function A(E){var w=new Promise(function(D,x){n(E,function(C,T){if(C){x(C);return}D(T)})});return w.catch(Yl),w}function p(E){var w=new Promise(function(D,x){u(E,function(C,T){if(C){x(C);return}D(T)})});return w.catch(Yl),w}function h(){if(a.idle())return new Promise(function(D){D()});var E=a.drain,w=new Promise(function(D){a.drain=function(){E(),D()}});return w}}OO.exports=mse;OO.exports.promise=pet});var rb=_(eA=>{"use strict";Object.defineProperty(eA,"__esModule",{value:!0});eA.joinPathSegments=eA.replacePathSegmentSeparator=eA.isAppliedFilter=eA.isFatalError=void 0;function het(t,e){return t.errorFilter===null?!0:!t.errorFilter(e)}eA.isFatalError=het;function get(t,e){return t===null||t(e)}eA.isAppliedFilter=get;function det(t,e){return t.split(/[/\\]/).join(e)}eA.replacePathSegmentSeparator=det;function met(t,e,r){return t===""?e:t.endsWith(r)?t+e:t+r+e}eA.joinPathSegments=met});var _O=_(UO=>{"use strict";Object.defineProperty(UO,"__esModule",{value:!0});var yet=rb(),MO=class{constructor(e,r){this._root=e,this._settings=r,this._root=yet.replacePathSegmentSeparator(e,r.pathSegmentSeparator)}};UO.default=MO});var jO=_(qO=>{"use strict";Object.defineProperty(qO,"__esModule",{value:!0});var Eet=ve("events"),Cet=tb(),Iet=yse(),nb=rb(),wet=_O(),HO=class extends wet.default{constructor(e,r){super(e,r),this._settings=r,this._scandir=Cet.scandir,this._emitter=new Eet.EventEmitter,this._queue=Iet(this._worker.bind(this),this._settings.concurrency),this._isFatalError=!1,this._isDestroyed=!1,this._queue.drain=()=>{this._isFatalError||this._emitter.emit("end")}}read(){return this._isFatalError=!1,this._isDestroyed=!1,setImmediate(()=>{this._pushToQueue(this._root,this._settings.basePath)}),this._emitter}get isDestroyed(){return this._isDestroyed}destroy(){if(this._isDestroyed)throw new Error("The reader is already destroyed");this._isDestroyed=!0,this._queue.killAndDrain()}onEntry(e){this._emitter.on("entry",e)}onError(e){this._emitter.once("error",e)}onEnd(e){this._emitter.once("end",e)}_pushToQueue(e,r){let o={directory:e,base:r};this._queue.push(o,a=>{a!==null&&this._handleError(a)})}_worker(e,r){this._scandir(e.directory,this._settings.fsScandirSettings,(o,a)=>{if(o!==null){r(o,void 0);return}for(let n of a)this._handleEntry(n,e.base);r(null,void 0)})}_handleError(e){this._isDestroyed||!nb.isFatalError(this._settings,e)||(this._isFatalError=!0,this._isDestroyed=!0,this._emitter.emit("error",e))}_handleEntry(e,r){if(this._isDestroyed||this._isFatalError)return;let o=e.path;r!==void 0&&(e.path=nb.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),nb.isAppliedFilter(this._settings.entryFilter,e)&&this._emitEntry(e),e.dirent.isDirectory()&&nb.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_emitEntry(e){this._emitter.emit("entry",e)}};qO.default=HO});var Ese=_(WO=>{"use strict";Object.defineProperty(WO,"__esModule",{value:!0});var Bet=jO(),GO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Bet.default(this._root,this._settings),this._storage=[]}read(e){this._reader.onError(r=>{vet(e,r)}),this._reader.onEntry(r=>{this._storage.push(r)}),this._reader.onEnd(()=>{Det(e,this._storage)}),this._reader.read()}};WO.default=GO;function vet(t,e){t(e)}function Det(t,e){t(null,e)}});var Cse=_(KO=>{"use strict";Object.defineProperty(KO,"__esModule",{value:!0});var Pet=ve("stream"),bet=jO(),YO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new bet.default(this._root,this._settings),this._stream=new Pet.Readable({objectMode:!0,read:()=>{},destroy:()=>{this._reader.isDestroyed||this._reader.destroy()}})}read(){return this._reader.onError(e=>{this._stream.emit("error",e)}),this._reader.onEntry(e=>{this._stream.push(e)}),this._reader.onEnd(()=>{this._stream.push(null)}),this._reader.read(),this._stream}};KO.default=YO});var Ise=_(JO=>{"use strict";Object.defineProperty(JO,"__esModule",{value:!0});var xet=tb(),ib=rb(),ket=_O(),VO=class extends ket.default{constructor(){super(...arguments),this._scandir=xet.scandirSync,this._storage=[],this._queue=new Set}read(){return this._pushToQueue(this._root,this._settings.basePath),this._handleQueue(),this._storage}_pushToQueue(e,r){this._queue.add({directory:e,base:r})}_handleQueue(){for(let e of this._queue.values())this._handleDirectory(e.directory,e.base)}_handleDirectory(e,r){try{let o=this._scandir(e,this._settings.fsScandirSettings);for(let a of o)this._handleEntry(a,r)}catch(o){this._handleError(o)}}_handleError(e){if(ib.isFatalError(this._settings,e))throw e}_handleEntry(e,r){let o=e.path;r!==void 0&&(e.path=ib.joinPathSegments(r,e.name,this._settings.pathSegmentSeparator)),ib.isAppliedFilter(this._settings.entryFilter,e)&&this._pushToStorage(e),e.dirent.isDirectory()&&ib.isAppliedFilter(this._settings.deepFilter,e)&&this._pushToQueue(o,r===void 0?void 0:e.path)}_pushToStorage(e){this._storage.push(e)}};JO.default=VO});var wse=_(XO=>{"use strict";Object.defineProperty(XO,"__esModule",{value:!0});var Qet=Ise(),zO=class{constructor(e,r){this._root=e,this._settings=r,this._reader=new Qet.default(this._root,this._settings)}read(){return this._reader.read()}};XO.default=zO});var Bse=_($O=>{"use strict";Object.defineProperty($O,"__esModule",{value:!0});var Fet=ve("path"),Ret=tb(),ZO=class{constructor(e={}){this._options=e,this.basePath=this._getValue(this._options.basePath,void 0),this.concurrency=this._getValue(this._options.concurrency,Number.POSITIVE_INFINITY),this.deepFilter=this._getValue(this._options.deepFilter,null),this.entryFilter=this._getValue(this._options.entryFilter,null),this.errorFilter=this._getValue(this._options.errorFilter,null),this.pathSegmentSeparator=this._getValue(this._options.pathSegmentSeparator,Fet.sep),this.fsScandirSettings=new Ret.Settings({followSymbolicLinks:this._options.followSymbolicLinks,fs:this._options.fs,pathSegmentSeparator:this._options.pathSegmentSeparator,stats:this._options.stats,throwErrorOnBrokenSymbolicLink:this._options.throwErrorOnBrokenSymbolicLink})}_getValue(e,r){return e??r}};$O.default=ZO});var ob=_(tA=>{"use strict";Object.defineProperty(tA,"__esModule",{value:!0});tA.Settings=tA.walkStream=tA.walkSync=tA.walk=void 0;var vse=Ese(),Tet=Cse(),Net=wse(),eM=Bse();tA.Settings=eM.default;function Let(t,e,r){if(typeof e=="function"){new vse.default(t,sb()).read(e);return}new vse.default(t,sb(e)).read(r)}tA.walk=Let;function Oet(t,e){let r=sb(e);return new Net.default(t,r).read()}tA.walkSync=Oet;function Met(t,e){let r=sb(e);return new Tet.default(t,r).read()}tA.walkStream=Met;function sb(t={}){return t instanceof eM.default?t:new eM.default(t)}});var ab=_(rM=>{"use strict";Object.defineProperty(rM,"__esModule",{value:!0});var Uet=ve("path"),_et=wg(),Dse=Df(),tM=class{constructor(e){this._settings=e,this._fsStatSettings=new _et.Settings({followSymbolicLink:this._settings.followSymbolicLinks,fs:this._settings.fs,throwErrorOnBrokenSymbolicLink:this._settings.followSymbolicLinks})}_getFullEntryPath(e){return Uet.resolve(this._settings.cwd,e)}_makeEntry(e,r){let o={name:r,path:r,dirent:Dse.fs.createDirentFromStats(r,e)};return this._settings.stats&&(o.stats=e),o}_isFatalError(e){return!Dse.errno.isEnoentCodeError(e)&&!this._settings.suppressErrors}};rM.default=tM});var sM=_(iM=>{"use strict";Object.defineProperty(iM,"__esModule",{value:!0});var Het=ve("stream"),qet=wg(),jet=ob(),Get=ab(),nM=class extends Get.default{constructor(){super(...arguments),this._walkStream=jet.walkStream,this._stat=qet.stat}dynamic(e,r){return this._walkStream(e,r)}static(e,r){let o=e.map(this._getFullEntryPath,this),a=new Het.PassThrough({objectMode:!0});a._write=(n,u,A)=>this._getEntry(o[n],e[n],r).then(p=>{p!==null&&r.entryFilter(p)&&a.push(p),n===o.length-1&&a.end(),A()}).catch(A);for(let n=0;nthis._makeEntry(a,r)).catch(a=>{if(o.errorFilter(a))return null;throw a})}_getStat(e){return new Promise((r,o)=>{this._stat(e,this._fsStatSettings,(a,n)=>a===null?r(n):o(a))})}};iM.default=nM});var Pse=_(aM=>{"use strict";Object.defineProperty(aM,"__esModule",{value:!0});var Wet=ob(),Yet=ab(),Ket=sM(),oM=class extends Yet.default{constructor(){super(...arguments),this._walkAsync=Wet.walk,this._readerStream=new Ket.default(this._settings)}dynamic(e,r){return new Promise((o,a)=>{this._walkAsync(e,r,(n,u)=>{n===null?o(u):a(n)})})}async static(e,r){let o=[],a=this._readerStream.static(e,r);return new Promise((n,u)=>{a.once("error",u),a.on("data",A=>o.push(A)),a.once("end",()=>n(o))})}};aM.default=oM});var Sse=_(cM=>{"use strict";Object.defineProperty(cM,"__esModule",{value:!0});var m1=Df(),lM=class{constructor(e,r,o){this._patterns=e,this._settings=r,this._micromatchOptions=o,this._storage=[],this._fillStorage()}_fillStorage(){for(let e of this._patterns){let r=this._getPatternSegments(e),o=this._splitSegmentsIntoSections(r);this._storage.push({complete:o.length<=1,pattern:e,segments:r,sections:o})}}_getPatternSegments(e){return m1.pattern.getPatternParts(e,this._micromatchOptions).map(o=>m1.pattern.isDynamicPattern(o,this._settings)?{dynamic:!0,pattern:o,patternRe:m1.pattern.makeRe(o,this._micromatchOptions)}:{dynamic:!1,pattern:o})}_splitSegmentsIntoSections(e){return m1.array.splitWhen(e,r=>r.dynamic&&m1.pattern.hasGlobStar(r.pattern))}};cM.default=lM});var bse=_(AM=>{"use strict";Object.defineProperty(AM,"__esModule",{value:!0});var Vet=Sse(),uM=class extends Vet.default{match(e){let r=e.split("/"),o=r.length,a=this._storage.filter(n=>!n.complete||n.segments.length>o);for(let n of a){let u=n.sections[0];if(!n.complete&&o>u.length||r.every((p,h)=>{let E=n.segments[h];return!!(E.dynamic&&E.patternRe.test(p)||!E.dynamic&&E.pattern===p)}))return!0}return!1}};AM.default=uM});var xse=_(pM=>{"use strict";Object.defineProperty(pM,"__esModule",{value:!0});var lb=Df(),Jet=bse(),fM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r}getFilter(e,r,o){let a=this._getMatcher(r),n=this._getNegativePatternsRe(o);return u=>this._filter(e,u,a,n)}_getMatcher(e){return new Jet.default(e,this._settings,this._micromatchOptions)}_getNegativePatternsRe(e){let r=e.filter(lb.pattern.isAffectDepthOfReadingPattern);return lb.pattern.convertPatternsToRe(r,this._micromatchOptions)}_filter(e,r,o,a){if(this._isSkippedByDeep(e,r.path)||this._isSkippedSymbolicLink(r))return!1;let n=lb.path.removeLeadingDotSegment(r.path);return this._isSkippedByPositivePatterns(n,o)?!1:this._isSkippedByNegativePatterns(n,a)}_isSkippedByDeep(e,r){return this._settings.deep===1/0?!1:this._getEntryLevel(e,r)>=this._settings.deep}_getEntryLevel(e,r){let o=r.split("/").length;if(e==="")return o;let a=e.split("/").length;return o-a}_isSkippedSymbolicLink(e){return!this._settings.followSymbolicLinks&&e.dirent.isSymbolicLink()}_isSkippedByPositivePatterns(e,r){return!this._settings.baseNameMatch&&!r.match(e)}_isSkippedByNegativePatterns(e,r){return!lb.pattern.matchAny(e,r)}};pM.default=fM});var kse=_(gM=>{"use strict";Object.defineProperty(gM,"__esModule",{value:!0});var Bg=Df(),hM=class{constructor(e,r){this._settings=e,this._micromatchOptions=r,this.index=new Map}getFilter(e,r){let o=Bg.pattern.convertPatternsToRe(e,this._micromatchOptions),a=Bg.pattern.convertPatternsToRe(r,Object.assign(Object.assign({},this._micromatchOptions),{dot:!0}));return n=>this._filter(n,o,a)}_filter(e,r,o){let a=Bg.path.removeLeadingDotSegment(e.path);if(this._settings.unique&&this._isDuplicateEntry(a)||this._onlyFileFilter(e)||this._onlyDirectoryFilter(e)||this._isSkippedByAbsoluteNegativePatterns(a,o))return!1;let n=e.dirent.isDirectory(),u=this._isMatchToPatterns(a,r,n)&&!this._isMatchToPatterns(a,o,n);return this._settings.unique&&u&&this._createIndexRecord(a),u}_isDuplicateEntry(e){return this.index.has(e)}_createIndexRecord(e){this.index.set(e,void 0)}_onlyFileFilter(e){return this._settings.onlyFiles&&!e.dirent.isFile()}_onlyDirectoryFilter(e){return this._settings.onlyDirectories&&!e.dirent.isDirectory()}_isSkippedByAbsoluteNegativePatterns(e,r){if(!this._settings.absolute)return!1;let o=Bg.path.makeAbsolute(this._settings.cwd,e);return Bg.pattern.matchAny(o,r)}_isMatchToPatterns(e,r,o){let a=Bg.pattern.matchAny(e,r);return!a&&o?Bg.pattern.matchAny(e+"/",r):a}};gM.default=hM});var Qse=_(mM=>{"use strict";Object.defineProperty(mM,"__esModule",{value:!0});var zet=Df(),dM=class{constructor(e){this._settings=e}getFilter(){return e=>this._isNonFatalError(e)}_isNonFatalError(e){return zet.errno.isEnoentCodeError(e)||this._settings.suppressErrors}};mM.default=dM});var Rse=_(EM=>{"use strict";Object.defineProperty(EM,"__esModule",{value:!0});var Fse=Df(),yM=class{constructor(e){this._settings=e}getTransformer(){return e=>this._transform(e)}_transform(e){let r=e.path;return this._settings.absolute&&(r=Fse.path.makeAbsolute(this._settings.cwd,r),r=Fse.path.unixify(r)),this._settings.markDirectories&&e.dirent.isDirectory()&&(r+="/"),this._settings.objectMode?Object.assign(Object.assign({},e),{path:r}):r}};EM.default=yM});var ub=_(IM=>{"use strict";Object.defineProperty(IM,"__esModule",{value:!0});var Xet=ve("path"),Zet=xse(),$et=kse(),ett=Qse(),ttt=Rse(),CM=class{constructor(e){this._settings=e,this.errorFilter=new ett.default(this._settings),this.entryFilter=new $et.default(this._settings,this._getMicromatchOptions()),this.deepFilter=new Zet.default(this._settings,this._getMicromatchOptions()),this.entryTransformer=new ttt.default(this._settings)}_getRootDirectory(e){return Xet.resolve(this._settings.cwd,e.base)}_getReaderOptions(e){let r=e.base==="."?"":e.base;return{basePath:r,pathSegmentSeparator:"/",concurrency:this._settings.concurrency,deepFilter:this.deepFilter.getFilter(r,e.positive,e.negative),entryFilter:this.entryFilter.getFilter(e.positive,e.negative),errorFilter:this.errorFilter.getFilter(),followSymbolicLinks:this._settings.followSymbolicLinks,fs:this._settings.fs,stats:this._settings.stats,throwErrorOnBrokenSymbolicLink:this._settings.throwErrorOnBrokenSymbolicLink,transform:this.entryTransformer.getTransformer()}}_getMicromatchOptions(){return{dot:this._settings.dot,matchBase:this._settings.baseNameMatch,nobrace:!this._settings.braceExpansion,nocase:!this._settings.caseSensitiveMatch,noext:!this._settings.extglob,noglobstar:!this._settings.globstar,posix:!0,strictSlashes:!1}}};IM.default=CM});var Tse=_(BM=>{"use strict";Object.defineProperty(BM,"__esModule",{value:!0});var rtt=Pse(),ntt=ub(),wM=class extends ntt.default{constructor(){super(...arguments),this._reader=new rtt.default(this._settings)}async read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return(await this.api(r,e,o)).map(n=>o.transform(n))}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};BM.default=wM});var Nse=_(DM=>{"use strict";Object.defineProperty(DM,"__esModule",{value:!0});var itt=ve("stream"),stt=sM(),ott=ub(),vM=class extends ott.default{constructor(){super(...arguments),this._reader=new stt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e),a=this.api(r,e,o),n=new itt.Readable({objectMode:!0,read:()=>{}});return a.once("error",u=>n.emit("error",u)).on("data",u=>n.emit("data",o.transform(u))).once("end",()=>n.emit("end")),n.once("close",()=>a.destroy()),n}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};DM.default=vM});var Lse=_(SM=>{"use strict";Object.defineProperty(SM,"__esModule",{value:!0});var att=wg(),ltt=ob(),ctt=ab(),PM=class extends ctt.default{constructor(){super(...arguments),this._walkSync=ltt.walkSync,this._statSync=att.statSync}dynamic(e,r){return this._walkSync(e,r)}static(e,r){let o=[];for(let a of e){let n=this._getFullEntryPath(a),u=this._getEntry(n,a,r);u===null||!r.entryFilter(u)||o.push(u)}return o}_getEntry(e,r,o){try{let a=this._getStat(e);return this._makeEntry(a,r)}catch(a){if(o.errorFilter(a))return null;throw a}}_getStat(e){return this._statSync(e,this._fsStatSettings)}};SM.default=PM});var Ose=_(xM=>{"use strict";Object.defineProperty(xM,"__esModule",{value:!0});var utt=Lse(),Att=ub(),bM=class extends Att.default{constructor(){super(...arguments),this._reader=new utt.default(this._settings)}read(e){let r=this._getRootDirectory(e),o=this._getReaderOptions(e);return this.api(r,e,o).map(o.transform)}api(e,r,o){return r.dynamic?this._reader.dynamic(e,o):this._reader.static(r.patterns,o)}};xM.default=bM});var Mse=_(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.DEFAULT_FILE_SYSTEM_ADAPTER=void 0;var sy=ve("fs"),ftt=ve("os"),ptt=Math.max(ftt.cpus().length,1);oy.DEFAULT_FILE_SYSTEM_ADAPTER={lstat:sy.lstat,lstatSync:sy.lstatSync,stat:sy.stat,statSync:sy.statSync,readdir:sy.readdir,readdirSync:sy.readdirSync};var kM=class{constructor(e={}){this._options=e,this.absolute=this._getValue(this._options.absolute,!1),this.baseNameMatch=this._getValue(this._options.baseNameMatch,!1),this.braceExpansion=this._getValue(this._options.braceExpansion,!0),this.caseSensitiveMatch=this._getValue(this._options.caseSensitiveMatch,!0),this.concurrency=this._getValue(this._options.concurrency,ptt),this.cwd=this._getValue(this._options.cwd,process.cwd()),this.deep=this._getValue(this._options.deep,1/0),this.dot=this._getValue(this._options.dot,!1),this.extglob=this._getValue(this._options.extglob,!0),this.followSymbolicLinks=this._getValue(this._options.followSymbolicLinks,!0),this.fs=this._getFileSystemMethods(this._options.fs),this.globstar=this._getValue(this._options.globstar,!0),this.ignore=this._getValue(this._options.ignore,[]),this.markDirectories=this._getValue(this._options.markDirectories,!1),this.objectMode=this._getValue(this._options.objectMode,!1),this.onlyDirectories=this._getValue(this._options.onlyDirectories,!1),this.onlyFiles=this._getValue(this._options.onlyFiles,!0),this.stats=this._getValue(this._options.stats,!1),this.suppressErrors=this._getValue(this._options.suppressErrors,!1),this.throwErrorOnBrokenSymbolicLink=this._getValue(this._options.throwErrorOnBrokenSymbolicLink,!1),this.unique=this._getValue(this._options.unique,!0),this.onlyDirectories&&(this.onlyFiles=!1),this.stats&&(this.objectMode=!0),this.ignore=[].concat(this.ignore)}_getValue(e,r){return e===void 0?r:e}_getFileSystemMethods(e={}){return Object.assign(Object.assign({},oy.DEFAULT_FILE_SYSTEM_ADAPTER),e)}};oy.default=kM});var Ab=_((oNt,_se)=>{"use strict";var Use=_ie(),htt=Tse(),gtt=Nse(),dtt=Ose(),QM=Mse(),Kl=Df();async function FM(t,e){Vc(t);let r=RM(t,htt.default,e),o=await Promise.all(r);return Kl.array.flatten(o)}(function(t){t.glob=t,t.globSync=e,t.globStream=r,t.async=t;function e(h,E){Vc(h);let w=RM(h,dtt.default,E);return Kl.array.flatten(w)}t.sync=e;function r(h,E){Vc(h);let w=RM(h,gtt.default,E);return Kl.stream.merge(w)}t.stream=r;function o(h,E){Vc(h);let w=[].concat(h),D=new QM.default(E);return Use.generate(w,D)}t.generateTasks=o;function a(h,E){Vc(h);let w=new QM.default(E);return Kl.pattern.isDynamicPattern(h,w)}t.isDynamicPattern=a;function n(h){return Vc(h),Kl.path.escape(h)}t.escapePath=n;function u(h){return Vc(h),Kl.path.convertPathToPattern(h)}t.convertPathToPattern=u;let A;(function(h){function E(D){return Vc(D),Kl.path.escapePosixPath(D)}h.escapePath=E;function w(D){return Vc(D),Kl.path.convertPosixPathToPattern(D)}h.convertPathToPattern=w})(A=t.posix||(t.posix={}));let p;(function(h){function E(D){return Vc(D),Kl.path.escapeWindowsPath(D)}h.escapePath=E;function w(D){return Vc(D),Kl.path.convertWindowsPathToPattern(D)}h.convertPathToPattern=w})(p=t.win32||(t.win32={}))})(FM||(FM={}));function RM(t,e,r){let o=[].concat(t),a=new QM.default(r),n=Use.generate(o,a),u=new e(a);return n.map(u.read,u)}function Vc(t){if(![].concat(t).every(o=>Kl.string.isString(o)&&!Kl.string.isEmpty(o)))throw new TypeError("Patterns must be a string (non empty) or an array of strings")}_se.exports=FM});var xn={};Kt(xn,{checksumFile:()=>pb,checksumPattern:()=>hb,makeHash:()=>Ji});function Ji(...t){let e=(0,fb.createHash)("sha512"),r="";for(let o of t)typeof o=="string"?r+=o:o&&(r&&(e.update(r),r=""),e.update(o));return r&&e.update(r),e.digest("hex")}async function pb(t,{baseFs:e,algorithm:r}={baseFs:ae,algorithm:"sha512"}){let o=await e.openPromise(t,"r");try{let n=Buffer.allocUnsafeSlow(65536),u=(0,fb.createHash)(r),A=0;for(;(A=await e.readPromise(o,n,0,65536))!==0;)u.update(A===65536?n:n.slice(0,A));return u.digest("hex")}finally{await e.closePromise(o)}}async function hb(t,{cwd:e}){let o=(await(0,TM.default)(t,{cwd:Ae.fromPortablePath(e),onlyDirectories:!0})).map(A=>`${A}/**/*`),a=await(0,TM.default)([t,...o],{cwd:Ae.fromPortablePath(e),onlyFiles:!1});a.sort();let n=await Promise.all(a.map(async A=>{let p=[Buffer.from(A)],h=K.join(e,Ae.toPortablePath(A)),E=await ae.lstatPromise(h);return E.isSymbolicLink()?p.push(Buffer.from(await ae.readlinkPromise(h))):E.isFile()&&p.push(await ae.readFilePromise(h)),p.join("\0")})),u=(0,fb.createHash)("sha512");for(let A of n)u.update(A);return u.digest("hex")}var fb,TM,ah=It(()=>{Pt();fb=ve("crypto"),TM=et(Ab())});var G={};Kt(G,{allPeerRequests:()=>S1,areDescriptorsEqual:()=>Wse,areIdentsEqual:()=>w1,areLocatorsEqual:()=>B1,areVirtualPackagesEquivalent:()=>Dtt,bindDescriptor:()=>Btt,bindLocator:()=>vtt,convertDescriptorToLocator:()=>gb,convertLocatorToDescriptor:()=>LM,convertPackageToLocator:()=>Ctt,convertToIdent:()=>Ett,convertToManifestRange:()=>Ntt,copyPackage:()=>E1,devirtualizeDescriptor:()=>C1,devirtualizeLocator:()=>I1,ensureDevirtualizedDescriptor:()=>Itt,ensureDevirtualizedLocator:()=>wtt,getIdentVendorPath:()=>_M,isPackageCompatible:()=>Cb,isVirtualDescriptor:()=>Pf,isVirtualLocator:()=>Jc,makeDescriptor:()=>kn,makeIdent:()=>rA,makeLocator:()=>Ss,makeRange:()=>yb,parseDescriptor:()=>lh,parseFileStyleRange:()=>Rtt,parseIdent:()=>Zo,parseLocator:()=>Sf,parseRange:()=>vg,prettyDependent:()=>fO,prettyDescriptor:()=>Jn,prettyIdent:()=>Ui,prettyLocator:()=>jr,prettyLocatorNoColors:()=>AO,prettyRange:()=>cy,prettyReference:()=>D1,prettyResolution:()=>d1,prettyWorkspace:()=>P1,renamePackage:()=>OM,slugifyIdent:()=>NM,slugifyLocator:()=>ly,sortDescriptors:()=>uy,stringifyDescriptor:()=>ka,stringifyIdent:()=>rn,stringifyLocator:()=>Qa,tryParseDescriptor:()=>v1,tryParseIdent:()=>Yse,tryParseLocator:()=>mb,tryParseRange:()=>Ftt,virtualizeDescriptor:()=>MM,virtualizePackage:()=>UM});function rA(t,e){if(t?.startsWith("@"))throw new Error("Invalid scope: don't prefix it with '@'");return{identHash:Ji(t,e),scope:t,name:e}}function kn(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:Ji(t.identHash,e),range:e}}function Ss(t,e){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:Ji(t.identHash,e),reference:e}}function Ett(t){return{identHash:t.identHash,scope:t.scope,name:t.name}}function gb(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.descriptorHash,reference:t.range}}function LM(t){return{identHash:t.identHash,scope:t.scope,name:t.name,descriptorHash:t.locatorHash,range:t.reference}}function Ctt(t){return{identHash:t.identHash,scope:t.scope,name:t.name,locatorHash:t.locatorHash,reference:t.reference}}function OM(t,e){return{identHash:e.identHash,scope:e.scope,name:e.name,locatorHash:e.locatorHash,reference:e.reference,version:t.version,languageName:t.languageName,linkType:t.linkType,conditions:t.conditions,dependencies:new Map(t.dependencies),peerDependencies:new Map(t.peerDependencies),dependenciesMeta:new Map(t.dependenciesMeta),peerDependenciesMeta:new Map(t.peerDependenciesMeta),bin:new Map(t.bin)}}function E1(t){return OM(t,t)}function MM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return kn(t,`virtual:${e}#${t.range}`)}function UM(t,e){if(e.includes("#"))throw new Error("Invalid entropy");return OM(t,Ss(t,`virtual:${e}#${t.reference}`))}function Pf(t){return t.range.startsWith(y1)}function Jc(t){return t.reference.startsWith(y1)}function C1(t){if(!Pf(t))throw new Error("Not a virtual descriptor");return kn(t,t.range.replace(db,""))}function I1(t){if(!Jc(t))throw new Error("Not a virtual descriptor");return Ss(t,t.reference.replace(db,""))}function Itt(t){return Pf(t)?kn(t,t.range.replace(db,"")):t}function wtt(t){return Jc(t)?Ss(t,t.reference.replace(db,"")):t}function Btt(t,e){return t.range.includes("::")?t:kn(t,`${t.range}::${ay.default.stringify(e)}`)}function vtt(t,e){return t.reference.includes("::")?t:Ss(t,`${t.reference}::${ay.default.stringify(e)}`)}function w1(t,e){return t.identHash===e.identHash}function Wse(t,e){return t.descriptorHash===e.descriptorHash}function B1(t,e){return t.locatorHash===e.locatorHash}function Dtt(t,e){if(!Jc(t))throw new Error("Invalid package type");if(!Jc(e))throw new Error("Invalid package type");if(!w1(t,e)||t.dependencies.size!==e.dependencies.size)return!1;for(let r of t.dependencies.values()){let o=e.dependencies.get(r.identHash);if(!o||!Wse(r,o))return!1}return!0}function Zo(t){let e=Yse(t);if(!e)throw new Error(`Invalid ident (${t})`);return e}function Yse(t){let e=t.match(Ptt);if(!e)return null;let[,r,o]=e;return rA(typeof r<"u"?r:null,o)}function lh(t,e=!1){let r=v1(t,e);if(!r)throw new Error(`Invalid descriptor (${t})`);return r}function v1(t,e=!1){let r=e?t.match(Stt):t.match(btt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid range (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return kn(rA(u,a),A)}function Sf(t,e=!1){let r=mb(t,e);if(!r)throw new Error(`Invalid locator (${t})`);return r}function mb(t,e=!1){let r=e?t.match(xtt):t.match(ktt);if(!r)return null;let[,o,a,n]=r;if(n==="unknown")throw new Error(`Invalid reference (${t})`);let u=typeof o<"u"?o:null,A=typeof n<"u"?n:"unknown";return Ss(rA(u,a),A)}function vg(t,e){let r=t.match(Qtt);if(r===null)throw new Error(`Invalid range (${t})`);let o=typeof r[1]<"u"?r[1]:null;if(typeof e?.requireProtocol=="string"&&o!==e.requireProtocol)throw new Error(`Invalid protocol (${o})`);if(e?.requireProtocol&&o===null)throw new Error(`Missing protocol (${o})`);let a=typeof r[3]<"u"?decodeURIComponent(r[2]):null;if(e?.requireSource&&a===null)throw new Error(`Missing source (${t})`);let n=typeof r[3]<"u"?decodeURIComponent(r[3]):decodeURIComponent(r[2]),u=e?.parseSelector?ay.default.parse(n):n,A=typeof r[4]<"u"?ay.default.parse(r[4]):null;return{protocol:o,source:a,selector:u,params:A}}function Ftt(t,e){try{return vg(t,e)}catch{return null}}function Rtt(t,{protocol:e}){let{selector:r,params:o}=vg(t,{requireProtocol:e,requireBindings:!0});if(typeof o.locator!="string")throw new Error(`Assertion failed: Invalid bindings for ${t}`);return{parentLocator:Sf(o.locator,!0),path:r}}function Hse(t){return t=t.replaceAll("%","%25"),t=t.replaceAll(":","%3A"),t=t.replaceAll("#","%23"),t}function Ttt(t){return t===null?!1:Object.entries(t).length>0}function yb({protocol:t,source:e,selector:r,params:o}){let a="";return t!==null&&(a+=`${t}`),e!==null&&(a+=`${Hse(e)}#`),a+=Hse(r),Ttt(o)&&(a+=`::${ay.default.stringify(o)}`),a}function Ntt(t){let{params:e,protocol:r,source:o,selector:a}=vg(t);for(let n in e)n.startsWith("__")&&delete e[n];return yb({protocol:r,source:o,params:e,selector:a})}function rn(t){return t.scope?`@${t.scope}/${t.name}`:`${t.name}`}function ka(t){return t.scope?`@${t.scope}/${t.name}@${t.range}`:`${t.name}@${t.range}`}function Qa(t){return t.scope?`@${t.scope}/${t.name}@${t.reference}`:`${t.name}@${t.reference}`}function NM(t){return t.scope!==null?`@${t.scope}-${t.name}`:t.name}function ly(t){let{protocol:e,selector:r}=vg(t.reference),o=e!==null?e.replace(Ltt,""):"exotic",a=qse.default.valid(r),n=a!==null?`${o}-${a}`:`${o}`,u=10;return t.scope?`${NM(t)}-${n}-${t.locatorHash.slice(0,u)}`:`${NM(t)}-${n}-${t.locatorHash.slice(0,u)}`}function Ui(t,e){return e.scope?`${Ut(t,`@${e.scope}/`,Ct.SCOPE)}${Ut(t,e.name,Ct.NAME)}`:`${Ut(t,e.name,Ct.NAME)}`}function Eb(t){if(t.startsWith(y1)){let e=Eb(t.substring(t.indexOf("#")+1)),r=t.substring(y1.length,y1.length+mtt);return`${e} [${r}]`}else return t.replace(Ott,"?[...]")}function cy(t,e){return`${Ut(t,Eb(e),Ct.RANGE)}`}function Jn(t,e){return`${Ui(t,e)}${Ut(t,"@",Ct.RANGE)}${cy(t,e.range)}`}function D1(t,e){return`${Ut(t,Eb(e),Ct.REFERENCE)}`}function jr(t,e){return`${Ui(t,e)}${Ut(t,"@",Ct.REFERENCE)}${D1(t,e.reference)}`}function AO(t){return`${rn(t)}@${Eb(t.reference)}`}function uy(t){return Ps(t,[e=>rn(e),e=>e.range])}function P1(t,e){return Ui(t,e.anchoredLocator)}function d1(t,e,r){let o=Pf(e)?C1(e):e;return r===null?`${Jn(t,o)} \u2192 ${uO(t).Cross}`:o.identHash===r.identHash?`${Jn(t,o)} \u2192 ${D1(t,r.reference)}`:`${Jn(t,o)} \u2192 ${jr(t,r)}`}function fO(t,e,r){return r===null?`${jr(t,e)}`:`${jr(t,e)} (via ${cy(t,r.range)})`}function _M(t){return`node_modules/${rn(t)}`}function Cb(t,e){return t.conditions?ytt(t.conditions,r=>{let[,o,a]=r.match(Gse),n=e[o];return n?n.includes(a):!0}):!0}function S1(t){let e=new Set;if("children"in t)e.add(t);else for(let r of t.requests.values())e.add(r);for(let r of e)for(let o of r.children.values())e.add(o);return e}var ay,qse,jse,y1,mtt,Gse,ytt,db,Ptt,Stt,btt,xtt,ktt,Qtt,Ltt,Ott,Io=It(()=>{ay=et(ve("querystring")),qse=et(ni()),jse=et(MX());Wl();ah();Gl();Io();y1="virtual:",mtt=5,Gse=/(os|cpu|libc)=([a-z0-9_-]+)/,ytt=(0,jse.makeParser)(Gse);db=/^[^#]*#/;Ptt=/^(?:@([^/]+?)\/)?([^@/]+)$/;Stt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,btt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;xtt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))$/,ktt=/^(?:@([^/]+?)\/)?([^@/]+?)(?:@(.+))?$/;Qtt=/^([^#:]*:)?((?:(?!::)[^#])*)(?:#((?:(?!::).)*))?(?:::(.*))?$/;Ltt=/:$/;Ott=/\?.*/});var Kse,Vse=It(()=>{Io();Kse={hooks:{reduceDependency:(t,e,r,o,{resolver:a,resolveOptions:n})=>{for(let{pattern:u,reference:A}of e.topLevelWorkspace.manifest.resolutions){if(u.from&&(u.from.fullName!==rn(r)||e.configuration.normalizeLocator(Ss(Zo(u.from.fullName),u.from.description??r.reference)).locatorHash!==r.locatorHash)||u.descriptor.fullName!==rn(t)||e.configuration.normalizeDependency(kn(Sf(u.descriptor.fullName),u.descriptor.description??t.range)).descriptorHash!==t.descriptorHash)continue;return a.bindDescriptor(e.configuration.normalizeDependency(kn(t,A)),e.topLevelWorkspace.anchoredLocator,n)}return t},validateProject:async(t,e)=>{for(let r of t.workspaces){let o=P1(t.configuration,r);await t.configuration.triggerHook(a=>a.validateWorkspace,r,{reportWarning:(a,n)=>e.reportWarning(a,`${o}: ${n}`),reportError:(a,n)=>e.reportError(a,`${o}: ${n}`)})}},validateWorkspace:async(t,e)=>{let{manifest:r}=t;r.resolutions.length&&t.cwd!==t.project.cwd&&r.errors.push(new Error("Resolutions field will be ignored"));for(let o of r.errors)e.reportWarning(57,o.message)}}}});var ci,Dg=It(()=>{ci=class t{static{this.protocol="workspace:"}supportsDescriptor(e,r){return!!(e.range.startsWith(t.protocol)||r.project.tryWorkspaceByDescriptor(e)!==null)}supportsLocator(e,r){return!!e.reference.startsWith(t.protocol)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[o.project.getWorkspaceByDescriptor(e).anchoredLocator]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.getWorkspaceByCwd(e.reference.slice(t.protocol.length));return{...e,version:o.manifest.version||"0.0.0",languageName:"unknown",linkType:"SOFT",conditions:null,dependencies:r.project.configuration.normalizeDependencyMap(new Map([...o.manifest.dependencies,...o.manifest.devDependencies])),peerDependencies:new Map([...o.manifest.peerDependencies]),dependenciesMeta:o.manifest.dependenciesMeta,peerDependenciesMeta:o.manifest.peerDependenciesMeta,bin:o.manifest.bin}}}});var Ur={};Kt(Ur,{SemVer:()=>$se.SemVer,clean:()=>Utt,getComparator:()=>Xse,mergeComparators:()=>HM,satisfiesWithPrereleases:()=>nA,simplifyRanges:()=>qM,stringifyComparator:()=>Zse,validRange:()=>Fa});function nA(t,e,r=!1){if(!t)return!1;let o=`${e}${r}`,a=Jse.get(o);if(typeof a>"u")try{a=new bf.default.Range(e,{includePrerelease:!0,loose:r})}catch{return!1}finally{Jse.set(o,a||null)}else if(a===null)return!1;let n;try{n=new bf.default.SemVer(t,a)}catch{return!1}return a.test(n)?!0:(n.prerelease&&(n.prerelease=[]),a.set.some(u=>{for(let A of u)A.semver.prerelease&&(A.semver.prerelease=[]);return u.every(A=>A.test(n))}))}function Fa(t){if(t.indexOf(":")!==-1)return null;let e=zse.get(t);if(typeof e<"u")return e;try{e=new bf.default.Range(t)}catch{e=null}return zse.set(t,e),e}function Utt(t){let e=Mtt.exec(t);return e?e[1]:null}function Xse(t){if(t.semver===bf.default.Comparator.ANY)return{gt:null,lt:null};switch(t.operator){case"":return{gt:[">=",t.semver],lt:["<=",t.semver]};case">":case">=":return{gt:[t.operator,t.semver],lt:null};case"<":case"<=":return{gt:null,lt:[t.operator,t.semver]};default:throw new Error(`Assertion failed: Unexpected comparator operator (${t.operator})`)}}function HM(t){if(t.length===0)return null;let e=null,r=null;for(let o of t){if(o.gt){let a=e!==null?bf.default.compare(o.gt[1],e[1]):null;(a===null||a>0||a===0&&o.gt[0]===">")&&(e=o.gt)}if(o.lt){let a=r!==null?bf.default.compare(o.lt[1],r[1]):null;(a===null||a<0||a===0&&o.lt[0]==="<")&&(r=o.lt)}}if(e&&r){let o=bf.default.compare(e[1],r[1]);if(o===0&&(e[0]===">"||r[0]==="<")||o>0)return null}return{gt:e,lt:r}}function Zse(t){if(t.gt&&t.lt){if(t.gt[0]===">="&&t.lt[0]==="<="&&t.gt[1].version===t.lt[1].version)return t.gt[1].version;if(t.gt[0]===">="&&t.lt[0]==="<"){if(t.lt[1].version===`${t.gt[1].major+1}.0.0-0`)return`^${t.gt[1].version}`;if(t.lt[1].version===`${t.gt[1].major}.${t.gt[1].minor+1}.0-0`)return`~${t.gt[1].version}`}}let e=[];return t.gt&&e.push(t.gt[0]+t.gt[1].version),t.lt&&e.push(t.lt[0]+t.lt[1].version),e.length?e.join(" "):"*"}function qM(t){let e=t.map(_tt).map(o=>Fa(o).set.map(a=>a.map(n=>Xse(n)))),r=e.shift().map(o=>HM(o)).filter(o=>o!==null);for(let o of e){let a=[];for(let n of r)for(let u of o){let A=HM([n,...u]);A!==null&&a.push(A)}r=a}return r.length===0?null:r.map(o=>Zse(o)).join(" || ")}function _tt(t){let e=t.split("||");if(e.length>1){let r=new Set;for(let o of e)e.some(a=>a!==o&&bf.default.subset(o,a))||r.add(o);if(r.size{bf=et(ni()),$se=et(ni()),Jse=new Map;zse=new Map;Mtt=/^(?:[\sv=]*?)((0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)(?:\s*)$/});function eoe(t){let e=t.match(/^[ \t]+/m);return e?e[0]:" "}function toe(t){return t.charCodeAt(0)===65279?t.slice(1):t}function $o(t){return t.replace(/\\/g,"/")}function Ib(t,{yamlCompatibilityMode:e}){return e?nO(t):typeof t>"u"||typeof t=="boolean"?t:null}function roe(t,e){let r=e.search(/[^!]/);if(r===-1)return"invalid";let o=r%2===0?"":"!",a=e.slice(r);return`${o}${t}=${a}`}function jM(t,e){return e.length===1?roe(t,e[0]):`(${e.map(r=>roe(t,r)).join(" | ")})`}var noe,_t,Ay=It(()=>{Pt();Ol();noe=et(ni());Dg();Gl();xf();Io();_t=class t{constructor(){this.indent=" ";this.name=null;this.version=null;this.os=null;this.cpu=null;this.libc=null;this.type=null;this.packageManager=null;this.private=!1;this.license=null;this.main=null;this.module=null;this.browser=null;this.languageName=null;this.bin=new Map;this.scripts=new Map;this.dependencies=new Map;this.devDependencies=new Map;this.peerDependencies=new Map;this.workspaceDefinitions=[];this.dependenciesMeta=new Map;this.peerDependenciesMeta=new Map;this.resolutions=[];this.files=null;this.publishConfig=null;this.installConfig=null;this.preferUnplugged=null;this.raw={};this.errors=[]}static{this.fileName="package.json"}static{this.allDependencies=["dependencies","devDependencies","peerDependencies"]}static{this.hardDependencies=["dependencies","devDependencies"]}static async tryFind(e,{baseFs:r=new _n}={}){let o=K.join(e,"package.json");try{return await t.fromFile(o,{baseFs:r})}catch(a){if(a.code==="ENOENT")return null;throw a}}static async find(e,{baseFs:r}={}){let o=await t.tryFind(e,{baseFs:r});if(o===null)throw new Error("Manifest not found");return o}static async fromFile(e,{baseFs:r=new _n}={}){let o=new t;return await o.loadFile(e,{baseFs:r}),o}static fromText(e){let r=new t;return r.loadFromText(e),r}loadFromText(e){let r;try{r=JSON.parse(toe(e)||"{}")}catch(o){throw o.message+=` (when parsing ${e})`,o}this.load(r),this.indent=eoe(e)}async loadFile(e,{baseFs:r=new _n}){let o=await r.readFilePromise(e,"utf8"),a;try{a=JSON.parse(toe(o)||"{}")}catch(n){throw n.message+=` (when parsing ${e})`,n}this.load(a),this.indent=eoe(o)}load(e,{yamlCompatibilityMode:r=!1}={}){if(typeof e!="object"||e===null)throw new Error(`Utterly invalid manifest data (${e})`);this.raw=e;let o=[];if(this.name=null,typeof e.name=="string")try{this.name=Zo(e.name)}catch{o.push(new Error("Parsing failed for the 'name' field"))}if(typeof e.version=="string"?this.version=e.version:this.version=null,Array.isArray(e.os)){let n=[];this.os=n;for(let u of e.os)typeof u!="string"?o.push(new Error("Parsing failed for the 'os' field")):n.push(u)}else this.os=null;if(Array.isArray(e.cpu)){let n=[];this.cpu=n;for(let u of e.cpu)typeof u!="string"?o.push(new Error("Parsing failed for the 'cpu' field")):n.push(u)}else this.cpu=null;if(Array.isArray(e.libc)){let n=[];this.libc=n;for(let u of e.libc)typeof u!="string"?o.push(new Error("Parsing failed for the 'libc' field")):n.push(u)}else this.libc=null;if(typeof e.type=="string"?this.type=e.type:this.type=null,typeof e.packageManager=="string"?this.packageManager=e.packageManager:this.packageManager=null,typeof e.private=="boolean"?this.private=e.private:this.private=!1,typeof e.license=="string"?this.license=e.license:this.license=null,typeof e.languageName=="string"?this.languageName=e.languageName:this.languageName=null,typeof e.main=="string"?this.main=$o(e.main):this.main=null,typeof e.module=="string"?this.module=$o(e.module):this.module=null,e.browser!=null)if(typeof e.browser=="string")this.browser=$o(e.browser);else{this.browser=new Map;for(let[n,u]of Object.entries(e.browser))this.browser.set($o(n),typeof u=="string"?$o(u):u)}else this.browser=null;if(this.bin=new Map,typeof e.bin=="string")e.bin.trim()===""?o.push(new Error("Invalid bin field")):this.name!==null?this.bin.set(this.name.name,$o(e.bin)):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.bin=="object"&&e.bin!==null)for(let[n,u]of Object.entries(e.bin)){if(typeof u!="string"||u.trim()===""){o.push(new Error(`Invalid bin definition for '${n}'`));continue}let A=Zo(n);this.bin.set(A.name,$o(u))}if(this.scripts=new Map,typeof e.scripts=="object"&&e.scripts!==null)for(let[n,u]of Object.entries(e.scripts)){if(typeof u!="string"){o.push(new Error(`Invalid script definition for '${n}'`));continue}this.scripts.set(n,u)}if(this.dependencies=new Map,typeof e.dependencies=="object"&&e.dependencies!==null)for(let[n,u]of Object.entries(e.dependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=kn(A,u);this.dependencies.set(p.identHash,p)}if(this.devDependencies=new Map,typeof e.devDependencies=="object"&&e.devDependencies!==null)for(let[n,u]of Object.entries(e.devDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=kn(A,u);this.devDependencies.set(p.identHash,p)}if(this.peerDependencies=new Map,typeof e.peerDependencies=="object"&&e.peerDependencies!==null)for(let[n,u]of Object.entries(e.peerDependencies)){let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}(typeof u!="string"||!u.startsWith(ci.protocol)&&!Fa(u))&&(o.push(new Error(`Invalid dependency range for '${n}'`)),u="*");let p=kn(A,u);this.peerDependencies.set(p.identHash,p)}typeof e.workspaces=="object"&&e.workspaces!==null&&e.workspaces.nohoist&&o.push(new Error("'nohoist' is deprecated, please use 'installConfig.hoistingLimits' instead"));let a=Array.isArray(e.workspaces)?e.workspaces:typeof e.workspaces=="object"&&e.workspaces!==null&&Array.isArray(e.workspaces.packages)?e.workspaces.packages:[];this.workspaceDefinitions=[];for(let n of a){if(typeof n!="string"){o.push(new Error(`Invalid workspace definition for '${n}'`));continue}this.workspaceDefinitions.push({pattern:n})}if(this.dependenciesMeta=new Map,typeof e.dependenciesMeta=="object"&&e.dependenciesMeta!==null)for(let[n,u]of Object.entries(e.dependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}`));continue}let A=lh(n),p=this.ensureDependencyMeta(A),h=Ib(u.built,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid built meta field for '${n}'`));continue}let E=Ib(u.optional,{yamlCompatibilityMode:r});if(E===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}let w=Ib(u.unplugged,{yamlCompatibilityMode:r});if(w===null){o.push(new Error(`Invalid unplugged meta field for '${n}'`));continue}Object.assign(p,{built:h,optional:E,unplugged:w})}if(this.peerDependenciesMeta=new Map,typeof e.peerDependenciesMeta=="object"&&e.peerDependenciesMeta!==null)for(let[n,u]of Object.entries(e.peerDependenciesMeta)){if(typeof u!="object"||u===null){o.push(new Error(`Invalid meta field for '${n}'`));continue}let A=lh(n),p=this.ensurePeerDependencyMeta(A),h=Ib(u.optional,{yamlCompatibilityMode:r});if(h===null){o.push(new Error(`Invalid optional meta field for '${n}'`));continue}Object.assign(p,{optional:h})}if(this.resolutions=[],typeof e.resolutions=="object"&&e.resolutions!==null)for(let[n,u]of Object.entries(e.resolutions)){if(typeof u!="string"){o.push(new Error(`Invalid resolution entry for '${n}'`));continue}try{this.resolutions.push({pattern:pP(n),reference:u})}catch(A){o.push(A);continue}}if(Array.isArray(e.files)){this.files=new Set;for(let n of e.files){if(typeof n!="string"){o.push(new Error(`Invalid files entry for '${n}'`));continue}this.files.add(n)}}else this.files=null;if(typeof e.publishConfig=="object"&&e.publishConfig!==null){if(this.publishConfig={},typeof e.publishConfig.access=="string"&&(this.publishConfig.access=e.publishConfig.access),typeof e.publishConfig.main=="string"&&(this.publishConfig.main=$o(e.publishConfig.main)),typeof e.publishConfig.module=="string"&&(this.publishConfig.module=$o(e.publishConfig.module)),e.publishConfig.browser!=null)if(typeof e.publishConfig.browser=="string")this.publishConfig.browser=$o(e.publishConfig.browser);else{this.publishConfig.browser=new Map;for(let[n,u]of Object.entries(e.publishConfig.browser))this.publishConfig.browser.set($o(n),typeof u=="string"?$o(u):u)}if(typeof e.publishConfig.registry=="string"&&(this.publishConfig.registry=e.publishConfig.registry),typeof e.publishConfig.bin=="string")this.name!==null?this.publishConfig.bin=new Map([[this.name.name,$o(e.publishConfig.bin)]]):o.push(new Error("String bin field, but no attached package name"));else if(typeof e.publishConfig.bin=="object"&&e.publishConfig.bin!==null){this.publishConfig.bin=new Map;for(let[n,u]of Object.entries(e.publishConfig.bin)){if(typeof u!="string"){o.push(new Error(`Invalid bin definition for '${n}'`));continue}this.publishConfig.bin.set(n,$o(u))}}if(Array.isArray(e.publishConfig.executableFiles)){this.publishConfig.executableFiles=new Set;for(let n of e.publishConfig.executableFiles){if(typeof n!="string"){o.push(new Error("Invalid executable file definition"));continue}this.publishConfig.executableFiles.add($o(n))}}}else this.publishConfig=null;if(typeof e.installConfig=="object"&&e.installConfig!==null){this.installConfig={};for(let n of Object.keys(e.installConfig))n==="hoistingLimits"?typeof e.installConfig.hoistingLimits=="string"?this.installConfig.hoistingLimits=e.installConfig.hoistingLimits:o.push(new Error("Invalid hoisting limits definition")):n=="selfReferences"?typeof e.installConfig.selfReferences=="boolean"?this.installConfig.selfReferences=e.installConfig.selfReferences:o.push(new Error("Invalid selfReferences definition, must be a boolean value")):o.push(new Error(`Unrecognized installConfig key: ${n}`))}else this.installConfig=null;if(typeof e.optionalDependencies=="object"&&e.optionalDependencies!==null)for(let[n,u]of Object.entries(e.optionalDependencies)){if(typeof u!="string"){o.push(new Error(`Invalid dependency range for '${n}'`));continue}let A;try{A=Zo(n)}catch{o.push(new Error(`Parsing failed for the dependency name '${n}'`));continue}let p=kn(A,u);this.dependencies.set(p.identHash,p);let h=kn(A,"unknown"),E=this.ensureDependencyMeta(h);Object.assign(E,{optional:!0})}typeof e.preferUnplugged=="boolean"?this.preferUnplugged=e.preferUnplugged:this.preferUnplugged=null,this.errors=o}getForScope(e){switch(e){case"dependencies":return this.dependencies;case"devDependencies":return this.devDependencies;case"peerDependencies":return this.peerDependencies;default:throw new Error(`Unsupported value ("${e}")`)}}hasConsumerDependency(e){return!!(this.dependencies.has(e.identHash)||this.peerDependencies.has(e.identHash))}hasHardDependency(e){return!!(this.dependencies.has(e.identHash)||this.devDependencies.has(e.identHash))}hasSoftDependency(e){return!!this.peerDependencies.has(e.identHash)}hasDependency(e){return!!(this.hasHardDependency(e)||this.hasSoftDependency(e))}getConditions(){let e=[];return this.os&&this.os.length>0&&e.push(jM("os",this.os)),this.cpu&&this.cpu.length>0&&e.push(jM("cpu",this.cpu)),this.libc&&this.libc.length>0&&e.push(jM("libc",this.libc)),e.length>0?e.join(" & "):null}ensureDependencyMeta(e){if(e.range!=="unknown"&&!noe.default.valid(e.range))throw new Error(`Invalid meta field range for '${ka(e)}'`);let r=rn(e),o=e.range!=="unknown"?e.range:null,a=this.dependenciesMeta.get(r);a||this.dependenciesMeta.set(r,a=new Map);let n=a.get(o);return n||a.set(o,n={}),n}ensurePeerDependencyMeta(e){if(e.range!=="unknown")throw new Error(`Invalid meta field range for '${ka(e)}'`);let r=rn(e),o=this.peerDependenciesMeta.get(r);return o||this.peerDependenciesMeta.set(r,o={}),o}setRawField(e,r,{after:o=[]}={}){let a=new Set(o.filter(n=>Object.hasOwn(this.raw,n)));if(a.size===0||Object.hasOwn(this.raw,e))this.raw[e]=r;else{let n=this.raw,u=this.raw={},A=!1;for(let p of Object.keys(n))u[p]=n[p],A||(a.delete(p),a.size===0&&(u[e]=r,A=!0))}}exportTo(e,{compatibilityMode:r=!0}={}){if(Object.assign(e,this.raw),this.name!==null?e.name=rn(this.name):delete e.name,this.version!==null?e.version=this.version:delete e.version,this.os!==null?e.os=this.os:delete e.os,this.cpu!==null?e.cpu=this.cpu:delete e.cpu,this.type!==null?e.type=this.type:delete e.type,this.packageManager!==null?e.packageManager=this.packageManager:delete e.packageManager,this.private?e.private=!0:delete e.private,this.license!==null?e.license=this.license:delete e.license,this.languageName!==null?e.languageName=this.languageName:delete e.languageName,this.main!==null?e.main=this.main:delete e.main,this.module!==null?e.module=this.module:delete e.module,this.browser!==null){let n=this.browser;typeof n=="string"?e.browser=n:n instanceof Map&&(e.browser=Object.assign({},...Array.from(n.keys()).sort().map(u=>({[u]:n.get(u)}))))}else delete e.browser;this.bin.size===1&&this.name!==null&&this.bin.has(this.name.name)?e.bin=this.bin.get(this.name.name):this.bin.size>0?e.bin=Object.assign({},...Array.from(this.bin.keys()).sort().map(n=>({[n]:this.bin.get(n)}))):delete e.bin,this.workspaceDefinitions.length>0?this.raw.workspaces&&!Array.isArray(this.raw.workspaces)?e.workspaces={...this.raw.workspaces,packages:this.workspaceDefinitions.map(({pattern:n})=>n)}:e.workspaces=this.workspaceDefinitions.map(({pattern:n})=>n):this.raw.workspaces&&!Array.isArray(this.raw.workspaces)&&Object.keys(this.raw.workspaces).length>0?e.workspaces=this.raw.workspaces:delete e.workspaces;let o=[],a=[];for(let n of this.dependencies.values()){let u=this.dependenciesMeta.get(rn(n)),A=!1;if(r&&u){let p=u.get(null);p&&p.optional&&(A=!0)}A?a.push(n):o.push(n)}o.length>0?e.dependencies=Object.assign({},...uy(o).map(n=>({[rn(n)]:n.range}))):delete e.dependencies,a.length>0?e.optionalDependencies=Object.assign({},...uy(a).map(n=>({[rn(n)]:n.range}))):delete e.optionalDependencies,this.devDependencies.size>0?e.devDependencies=Object.assign({},...uy(this.devDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.devDependencies,this.peerDependencies.size>0?e.peerDependencies=Object.assign({},...uy(this.peerDependencies.values()).map(n=>({[rn(n)]:n.range}))):delete e.peerDependencies,e.dependenciesMeta={};for(let[n,u]of Ps(this.dependenciesMeta.entries(),([A,p])=>A))for(let[A,p]of Ps(u.entries(),([h,E])=>h!==null?`0${h}`:"1")){let h=A!==null?ka(kn(Zo(n),A)):n,E={...p};r&&A===null&&delete E.optional,Object.keys(E).length!==0&&(e.dependenciesMeta[h]=E)}if(Object.keys(e.dependenciesMeta).length===0&&delete e.dependenciesMeta,this.peerDependenciesMeta.size>0?e.peerDependenciesMeta=Object.assign({},...Ps(this.peerDependenciesMeta.entries(),([n,u])=>n).map(([n,u])=>({[n]:u}))):delete e.peerDependenciesMeta,this.resolutions.length>0?e.resolutions=Object.assign({},...this.resolutions.map(({pattern:n,reference:u})=>({[hP(n)]:u}))):delete e.resolutions,this.files!==null?e.files=Array.from(this.files):delete e.files,this.preferUnplugged!==null?e.preferUnplugged=this.preferUnplugged:delete e.preferUnplugged,this.scripts!==null&&this.scripts.size>0){e.scripts??={};for(let n of Object.keys(e.scripts))this.scripts.has(n)||delete e.scripts[n];for(let[n,u]of this.scripts.entries())e.scripts[n]=u}else delete e.scripts;return e}}});var soe=_((INt,ioe)=>{var Htt=ql(),qtt=function(){return Htt.Date.now()};ioe.exports=qtt});var aoe=_((wNt,ooe)=>{var jtt=/\s/;function Gtt(t){for(var e=t.length;e--&&jtt.test(t.charAt(e)););return e}ooe.exports=Gtt});var coe=_((BNt,loe)=>{var Wtt=aoe(),Ytt=/^\s+/;function Ktt(t){return t&&t.slice(0,Wtt(t)+1).replace(Ytt,"")}loe.exports=Ktt});var fy=_((vNt,uoe)=>{var Vtt=mg(),Jtt=Zu(),ztt="[object Symbol]";function Xtt(t){return typeof t=="symbol"||Jtt(t)&&Vtt(t)==ztt}uoe.exports=Xtt});var hoe=_((DNt,poe)=>{var Ztt=coe(),Aoe=cl(),$tt=fy(),foe=NaN,ert=/^[-+]0x[0-9a-f]+$/i,trt=/^0b[01]+$/i,rrt=/^0o[0-7]+$/i,nrt=parseInt;function irt(t){if(typeof t=="number")return t;if($tt(t))return foe;if(Aoe(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Aoe(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Ztt(t);var r=trt.test(t);return r||rrt.test(t)?nrt(t.slice(2),r?2:8):ert.test(t)?foe:+t}poe.exports=irt});var moe=_((PNt,doe)=>{var srt=cl(),GM=soe(),goe=hoe(),ort="Expected a function",art=Math.max,lrt=Math.min;function crt(t,e,r){var o,a,n,u,A,p,h=0,E=!1,w=!1,D=!0;if(typeof t!="function")throw new TypeError(ort);e=goe(e)||0,srt(r)&&(E=!!r.leading,w="maxWait"in r,n=w?art(goe(r.maxWait)||0,e):n,D="trailing"in r?!!r.trailing:D);function x(ue){var Ie=o,he=a;return o=a=void 0,h=ue,u=t.apply(he,Ie),u}function C(ue){return h=ue,A=setTimeout(U,e),E?x(ue):u}function T(ue){var Ie=ue-p,he=ue-h,De=e-Ie;return w?lrt(De,n-he):De}function L(ue){var Ie=ue-p,he=ue-h;return p===void 0||Ie>=e||Ie<0||w&&he>=n}function U(){var ue=GM();if(L(ue))return J(ue);A=setTimeout(U,T(ue))}function J(ue){return A=void 0,D&&o?x(ue):(o=a=void 0,u)}function te(){A!==void 0&&clearTimeout(A),h=0,o=p=a=A=void 0}function le(){return A===void 0?u:J(GM())}function ce(){var ue=GM(),Ie=L(ue);if(o=arguments,a=this,p=ue,Ie){if(A===void 0)return C(p);if(w)return clearTimeout(A),A=setTimeout(U,e),x(p)}return A===void 0&&(A=setTimeout(U,e)),u}return ce.cancel=te,ce.flush=le,ce}doe.exports=crt});var WM=_((SNt,yoe)=>{var urt=moe(),Art=cl(),frt="Expected a function";function prt(t,e,r){var o=!0,a=!0;if(typeof t!="function")throw new TypeError(frt);return Art(r)&&(o="leading"in r?!!r.leading:o,a="trailing"in r?!!r.trailing:a),urt(t,e,{leading:o,maxWait:e,trailing:a})}yoe.exports=prt});function grt(t){return typeof t.reportCode<"u"}var Eoe,Coe,Ioe,hrt,Jt,Ws,Vl=It(()=>{Eoe=et(WM()),Coe=ve("stream"),Ioe=ve("string_decoder"),hrt=15,Jt=class extends Error{constructor(r,o,a){super(o);this.reportExtra=a;this.reportCode=r}};Ws=class{constructor(){this.cacheHits=new Set;this.cacheMisses=new Set;this.reportedInfos=new Set;this.reportedWarnings=new Set;this.reportedErrors=new Set}getRecommendedLength(){return 180}reportCacheHit(e){this.cacheHits.add(e.locatorHash)}reportCacheMiss(e,r){this.cacheMisses.add(e.locatorHash)}static progressViaCounter(e){let r=0,o,a=new Promise(p=>{o=p}),n=p=>{let h=o;a=new Promise(E=>{o=E}),r=p,h()},u=(p=0)=>{n(r+1)},A=async function*(){for(;r{r=u}),a=(0,Eoe.default)(u=>{let A=r;o=new Promise(p=>{r=p}),e=u,A()},1e3/hrt),n=async function*(){for(;;)await o,yield{title:e}}();return{[Symbol.asyncIterator](){return n},hasProgress:!1,hasTitle:!0,setTitle:a}}async startProgressPromise(e,r){let o=this.reportProgress(e);try{return await r(e)}finally{o.stop()}}startProgressSync(e,r){let o=this.reportProgress(e);try{return r(e)}finally{o.stop()}}reportInfoOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedInfos.has(a)||(this.reportedInfos.add(a),this.reportInfo(e,r),o?.reportExtra?.(this))}reportWarningOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedWarnings.has(a)||(this.reportedWarnings.add(a),this.reportWarning(e,r),o?.reportExtra?.(this))}reportErrorOnce(e,r,o){let a=o&&o.key?o.key:r;this.reportedErrors.has(a)||(this.reportedErrors.add(a),this.reportError(e,r),o?.reportExtra?.(this))}reportExceptionOnce(e){grt(e)?this.reportErrorOnce(e.reportCode,e.message,{key:e,reportExtra:e.reportExtra}):this.reportErrorOnce(1,e.stack||e.message,{key:e})}createStreamReporter(e=null){let r=new Coe.PassThrough,o=new Ioe.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",e!==null?this.reportInfo(null,`${e} ${p}`):this.reportInfo(null,p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&(e!==null?this.reportInfo(null,`${e} ${n}`):this.reportInfo(null,n))}),r}}});var py,YM=It(()=>{Vl();Io();py=class{constructor(e){this.fetchers=e}supports(e,r){return!!this.tryFetcher(e,r)}getLocalPath(e,r){return this.getFetcher(e,r).getLocalPath(e,r)}async fetch(e,r){return await this.getFetcher(e,r).fetch(e,r)}tryFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));return o||null}getFetcher(e,r){let o=this.fetchers.find(a=>a.supports(e,r));if(!o)throw new Jt(11,`${jr(r.project.configuration,e)} isn't supported by any available fetcher`);return o}}});var Pg,KM=It(()=>{Io();Pg=class{constructor(e){this.resolvers=e.filter(r=>r)}supportsDescriptor(e,r){return!!this.tryResolverByDescriptor(e,r)}supportsLocator(e,r){return!!this.tryResolverByLocator(e,r)}shouldPersistResolution(e,r){return this.getResolverByLocator(e,r).shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.getResolverByDescriptor(e,o).bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.getResolverByDescriptor(e,r).getResolutionDependencies(e,r)}async getCandidates(e,r,o){return await this.getResolverByDescriptor(e,o).getCandidates(e,r,o)}async getSatisfying(e,r,o,a){return this.getResolverByDescriptor(e,a).getSatisfying(e,r,o,a)}async resolve(e,r){return await this.getResolverByLocator(e,r).resolve(e,r)}tryResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));return o||null}getResolverByDescriptor(e,r){let o=this.resolvers.find(a=>a.supportsDescriptor(e,r));if(!o)throw new Error(`${Jn(r.project.configuration,e)} isn't supported by any available resolver`);return o}tryResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));return o||null}getResolverByLocator(e,r){let o=this.resolvers.find(a=>a.supportsLocator(e,r));if(!o)throw new Error(`${jr(r.project.configuration,e)} isn't supported by any available resolver`);return o}}});var hy,VM=It(()=>{Pt();Io();hy=class{supports(e){return!!e.reference.startsWith("virtual:")}getLocalPath(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Ss(e,a);return r.fetcher.getLocalPath(n,r)}async fetch(e,r){let o=e.reference.indexOf("#");if(o===-1)throw new Error("Invalid virtual package reference");let a=e.reference.slice(o+1),n=Ss(e,a),u=await r.fetcher.fetch(n,r);return await this.ensureVirtualLink(e,u,r)}getLocatorFilename(e){return ly(e)}async ensureVirtualLink(e,r,o){let a=r.packageFs.getRealPath(),n=o.project.configuration.get("virtualFolder"),u=this.getLocatorFilename(e),A=qs.makeVirtualPath(n,u,a),p=new ju(A,{baseFs:r.packageFs,pathUtils:K});return{...r,packageFs:p}}}});var wb,woe=It(()=>{wb=class t{static{this.protocol="virtual:"}static isVirtualDescriptor(e){return!!e.range.startsWith(t.protocol)}static isVirtualLocator(e){return!!e.reference.startsWith(t.protocol)}supportsDescriptor(e,r){return t.isVirtualDescriptor(e)}supportsLocator(e,r){return t.isVirtualLocator(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){throw new Error('Assertion failed: calling "bindDescriptor" on a virtual descriptor is unsupported')}getResolutionDependencies(e,r){throw new Error('Assertion failed: calling "getResolutionDependencies" on a virtual descriptor is unsupported')}async getCandidates(e,r,o){throw new Error('Assertion failed: calling "getCandidates" on a virtual descriptor is unsupported')}async getSatisfying(e,r,o,a){throw new Error('Assertion failed: calling "getSatisfying" on a virtual descriptor is unsupported')}async resolve(e,r){throw new Error('Assertion failed: calling "resolve" on a virtual locator is unsupported')}}});var gy,JM=It(()=>{Pt();Dg();gy=class{supports(e){return!!e.reference.startsWith(ci.protocol)}getLocalPath(e,r){return this.getWorkspace(e,r).cwd}async fetch(e,r){let o=this.getWorkspace(e,r).cwd;return{packageFs:new En(o),prefixPath:Bt.dot,localPath:o}}getWorkspace(e,r){return r.project.getWorkspaceByCwd(e.reference.slice(ci.protocol.length))}}});function b1(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}function Boe(t){return typeof t>"u"?3:b1(t)?0:Array.isArray(t)?1:2}function ZM(t,e){return Object.hasOwn(t,e)}function mrt(t){return b1(t)&&ZM(t,"onConflict")&&typeof t.onConflict=="string"}function yrt(t){if(typeof t>"u")return{onConflict:"default",value:t};if(!mrt(t))return{onConflict:"default",value:t};if(ZM(t,"value"))return t;let{onConflict:e,...r}=t;return{onConflict:e,value:r}}function voe(t,e){let r=b1(t)&&ZM(t,e)?t[e]:void 0;return yrt(r)}function dy(t,e){return[t,e,Doe]}function $M(t){return Array.isArray(t)?t[2]===Doe:!1}function zM(t,e){if(b1(t)){let r={};for(let o of Object.keys(t))r[o]=zM(t[o],e);return dy(e,r)}return Array.isArray(t)?dy(e,t.map(r=>zM(r,e))):dy(e,t)}function XM(t,e,r,o,a){let n,u=[],A=a,p=0;for(let E=a-1;E>=o;--E){let[w,D]=t[E],{onConflict:x,value:C}=voe(D,r),T=Boe(C);if(T!==3){if(n??=T,T!==n||x==="hardReset"){p=A;break}if(T===2)return dy(w,C);if(u.unshift([w,C]),x==="reset"){p=E;break}x==="extend"&&E===o&&(o=0),A=E}}if(typeof n>"u")return null;let h=u.map(([E])=>E).join(", ");switch(n){case 1:return dy(h,new Array().concat(...u.map(([E,w])=>w.map(D=>zM(D,E)))));case 0:{let E=Object.assign({},...u.map(([,T])=>T)),w=Object.keys(E),D={},x=t.map(([T,L])=>[T,voe(L,r).value]),C=drt(x,([T,L])=>{let U=Boe(L);return U!==0&&U!==3});if(C!==-1){let T=x.slice(C+1);for(let L of w)D[L]=XM(T,e,L,0,T.length)}else for(let T of w)D[T]=XM(x,e,T,p,x.length);return dy(h,D)}default:throw new Error("Assertion failed: Non-extendable value type")}}function Poe(t){return XM(t.map(([e,r])=>[e,{".":r}]),[],".",0,t.length)}function x1(t){return $M(t)?t[1]:t}function Bb(t){let e=$M(t)?t[1]:t;if(Array.isArray(e))return e.map(r=>Bb(r));if(b1(e)){let r={};for(let[o,a]of Object.entries(e))r[o]=Bb(a);return r}return e}function eU(t){return $M(t)?t[0]:null}var drt,Doe,Soe=It(()=>{drt=(t,e,r)=>{let o=[...t];return o.reverse(),o.findIndex(e,r)};Doe=Symbol()});var vb={};Kt(vb,{getDefaultGlobalFolder:()=>rU,getHomeFolder:()=>my,isFolderInside:()=>nU});function rU(){if(process.platform==="win32"){let t=Ae.toPortablePath(process.env.LOCALAPPDATA||Ae.join((0,tU.homedir)(),"AppData","Local"));return K.resolve(t,"Yarn/Berry")}if(process.env.XDG_DATA_HOME){let t=Ae.toPortablePath(process.env.XDG_DATA_HOME);return K.resolve(t,"yarn/berry")}return K.resolve(my(),".yarn/berry")}function my(){return Ae.toPortablePath((0,tU.homedir)()||"/usr/local/share")}function nU(t,e){let r=K.relative(e,t);return r&&!r.startsWith("..")&&!K.isAbsolute(r)}var tU,Db=It(()=>{Pt();tU=ve("os")});var Qoe=_(yy=>{"use strict";var _Nt=ve("net"),Crt=ve("tls"),iU=ve("http"),boe=ve("https"),Irt=ve("events"),HNt=ve("assert"),wrt=ve("util");yy.httpOverHttp=Brt;yy.httpsOverHttp=vrt;yy.httpOverHttps=Drt;yy.httpsOverHttps=Prt;function Brt(t){var e=new kf(t);return e.request=iU.request,e}function vrt(t){var e=new kf(t);return e.request=iU.request,e.createSocket=xoe,e.defaultPort=443,e}function Drt(t){var e=new kf(t);return e.request=boe.request,e}function Prt(t){var e=new kf(t);return e.request=boe.request,e.createSocket=xoe,e.defaultPort=443,e}function kf(t){var e=this;e.options=t||{},e.proxyOptions=e.options.proxy||{},e.maxSockets=e.options.maxSockets||iU.Agent.defaultMaxSockets,e.requests=[],e.sockets=[],e.on("free",function(o,a,n,u){for(var A=koe(a,n,u),p=0,h=e.requests.length;p=this.maxSockets){n.requests.push(u);return}n.createSocket(u,function(A){A.on("free",p),A.on("close",h),A.on("agentRemove",h),e.onSocket(A);function p(){n.emit("free",A,u)}function h(E){n.removeSocket(A),A.removeListener("free",p),A.removeListener("close",h),A.removeListener("agentRemove",h)}})};kf.prototype.createSocket=function(e,r){var o=this,a={};o.sockets.push(a);var n=sU({},o.proxyOptions,{method:"CONNECT",path:e.host+":"+e.port,agent:!1,headers:{host:e.host+":"+e.port}});e.localAddress&&(n.localAddress=e.localAddress),n.proxyAuth&&(n.headers=n.headers||{},n.headers["Proxy-Authorization"]="Basic "+new Buffer(n.proxyAuth).toString("base64")),ch("making CONNECT request");var u=o.request(n);u.useChunkedEncodingByDefault=!1,u.once("response",A),u.once("upgrade",p),u.once("connect",h),u.once("error",E),u.end();function A(w){w.upgrade=!0}function p(w,D,x){process.nextTick(function(){h(w,D,x)})}function h(w,D,x){if(u.removeAllListeners(),D.removeAllListeners(),w.statusCode!==200){ch("tunneling socket could not be established, statusCode=%d",w.statusCode),D.destroy();var C=new Error("tunneling socket could not be established, statusCode="+w.statusCode);C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}if(x.length>0){ch("got illegal response body from proxy"),D.destroy();var C=new Error("got illegal response body from proxy");C.code="ECONNRESET",e.request.emit("error",C),o.removeSocket(a);return}return ch("tunneling connection has established"),o.sockets[o.sockets.indexOf(a)]=D,r(D)}function E(w){u.removeAllListeners(),ch(`tunneling socket could not be established, cause=%s +`,w.message,w.stack);var D=new Error("tunneling socket could not be established, cause="+w.message);D.code="ECONNRESET",e.request.emit("error",D),o.removeSocket(a)}};kf.prototype.removeSocket=function(e){var r=this.sockets.indexOf(e);if(r!==-1){this.sockets.splice(r,1);var o=this.requests.shift();o&&this.createSocket(o,function(a){o.request.onSocket(a)})}};function xoe(t,e){var r=this;kf.prototype.createSocket.call(r,t,function(o){var a=t.request.getHeader("host"),n=sU({},r.options,{socket:o,servername:a?a.replace(/:.*$/,""):t.host}),u=Crt.connect(0,n);r.sockets[r.sockets.indexOf(o)]=u,e(u)})}function koe(t,e,r){return typeof t=="string"?{host:t,port:e,localAddress:r}:t}function sU(t){for(var e=1,r=arguments.length;e{Foe.exports=Qoe()});var Ff=_((Qf,Pb)=>{"use strict";Object.defineProperty(Qf,"__esModule",{value:!0});var Toe=["Int8Array","Uint8Array","Uint8ClampedArray","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigInt64Array","BigUint64Array"];function Srt(t){return Toe.includes(t)}var brt=["Function","Generator","AsyncGenerator","GeneratorFunction","AsyncGeneratorFunction","AsyncFunction","Observable","Array","Buffer","Blob","Object","RegExp","Date","Error","Map","Set","WeakMap","WeakSet","ArrayBuffer","SharedArrayBuffer","DataView","Promise","URL","FormData","URLSearchParams","HTMLElement",...Toe];function xrt(t){return brt.includes(t)}var krt=["null","undefined","string","number","bigint","boolean","symbol"];function Qrt(t){return krt.includes(t)}function Ey(t){return e=>typeof e===t}var{toString:Noe}=Object.prototype,k1=t=>{let e=Noe.call(t).slice(8,-1);if(/HTML\w+Element/.test(e)&&Se.domElement(t))return"HTMLElement";if(xrt(e))return e},ii=t=>e=>k1(e)===t;function Se(t){if(t===null)return"null";switch(typeof t){case"undefined":return"undefined";case"string":return"string";case"number":return"number";case"boolean":return"boolean";case"function":return"Function";case"bigint":return"bigint";case"symbol":return"symbol";default:}if(Se.observable(t))return"Observable";if(Se.array(t))return"Array";if(Se.buffer(t))return"Buffer";let e=k1(t);if(e)return e;if(t instanceof String||t instanceof Boolean||t instanceof Number)throw new TypeError("Please don't use object wrappers for primitive types");return"Object"}Se.undefined=Ey("undefined");Se.string=Ey("string");var Frt=Ey("number");Se.number=t=>Frt(t)&&!Se.nan(t);Se.bigint=Ey("bigint");Se.function_=Ey("function");Se.null_=t=>t===null;Se.class_=t=>Se.function_(t)&&t.toString().startsWith("class ");Se.boolean=t=>t===!0||t===!1;Se.symbol=Ey("symbol");Se.numericString=t=>Se.string(t)&&!Se.emptyStringOrWhitespace(t)&&!Number.isNaN(Number(t));Se.array=(t,e)=>Array.isArray(t)?Se.function_(e)?t.every(e):!0:!1;Se.buffer=t=>{var e,r,o,a;return(a=(o=(r=(e=t)===null||e===void 0?void 0:e.constructor)===null||r===void 0?void 0:r.isBuffer)===null||o===void 0?void 0:o.call(r,t))!==null&&a!==void 0?a:!1};Se.blob=t=>ii("Blob")(t);Se.nullOrUndefined=t=>Se.null_(t)||Se.undefined(t);Se.object=t=>!Se.null_(t)&&(typeof t=="object"||Se.function_(t));Se.iterable=t=>{var e;return Se.function_((e=t)===null||e===void 0?void 0:e[Symbol.iterator])};Se.asyncIterable=t=>{var e;return Se.function_((e=t)===null||e===void 0?void 0:e[Symbol.asyncIterator])};Se.generator=t=>{var e,r;return Se.iterable(t)&&Se.function_((e=t)===null||e===void 0?void 0:e.next)&&Se.function_((r=t)===null||r===void 0?void 0:r.throw)};Se.asyncGenerator=t=>Se.asyncIterable(t)&&Se.function_(t.next)&&Se.function_(t.throw);Se.nativePromise=t=>ii("Promise")(t);var Rrt=t=>{var e,r;return Se.function_((e=t)===null||e===void 0?void 0:e.then)&&Se.function_((r=t)===null||r===void 0?void 0:r.catch)};Se.promise=t=>Se.nativePromise(t)||Rrt(t);Se.generatorFunction=ii("GeneratorFunction");Se.asyncGeneratorFunction=t=>k1(t)==="AsyncGeneratorFunction";Se.asyncFunction=t=>k1(t)==="AsyncFunction";Se.boundFunction=t=>Se.function_(t)&&!t.hasOwnProperty("prototype");Se.regExp=ii("RegExp");Se.date=ii("Date");Se.error=ii("Error");Se.map=t=>ii("Map")(t);Se.set=t=>ii("Set")(t);Se.weakMap=t=>ii("WeakMap")(t);Se.weakSet=t=>ii("WeakSet")(t);Se.int8Array=ii("Int8Array");Se.uint8Array=ii("Uint8Array");Se.uint8ClampedArray=ii("Uint8ClampedArray");Se.int16Array=ii("Int16Array");Se.uint16Array=ii("Uint16Array");Se.int32Array=ii("Int32Array");Se.uint32Array=ii("Uint32Array");Se.float32Array=ii("Float32Array");Se.float64Array=ii("Float64Array");Se.bigInt64Array=ii("BigInt64Array");Se.bigUint64Array=ii("BigUint64Array");Se.arrayBuffer=ii("ArrayBuffer");Se.sharedArrayBuffer=ii("SharedArrayBuffer");Se.dataView=ii("DataView");Se.enumCase=(t,e)=>Object.values(e).includes(t);Se.directInstanceOf=(t,e)=>Object.getPrototypeOf(t)===e.prototype;Se.urlInstance=t=>ii("URL")(t);Se.urlString=t=>{if(!Se.string(t))return!1;try{return new URL(t),!0}catch{return!1}};Se.truthy=t=>!!t;Se.falsy=t=>!t;Se.nan=t=>Number.isNaN(t);Se.primitive=t=>Se.null_(t)||Qrt(typeof t);Se.integer=t=>Number.isInteger(t);Se.safeInteger=t=>Number.isSafeInteger(t);Se.plainObject=t=>{if(Noe.call(t)!=="[object Object]")return!1;let e=Object.getPrototypeOf(t);return e===null||e===Object.getPrototypeOf({})};Se.typedArray=t=>Srt(k1(t));var Trt=t=>Se.safeInteger(t)&&t>=0;Se.arrayLike=t=>!Se.nullOrUndefined(t)&&!Se.function_(t)&&Trt(t.length);Se.inRange=(t,e)=>{if(Se.number(e))return t>=Math.min(0,e)&&t<=Math.max(e,0);if(Se.array(e)&&e.length===2)return t>=Math.min(...e)&&t<=Math.max(...e);throw new TypeError(`Invalid range: ${JSON.stringify(e)}`)};var Nrt=1,Lrt=["innerHTML","ownerDocument","style","attributes","nodeValue"];Se.domElement=t=>Se.object(t)&&t.nodeType===Nrt&&Se.string(t.nodeName)&&!Se.plainObject(t)&&Lrt.every(e=>e in t);Se.observable=t=>{var e,r,o,a;return t?t===((r=(e=t)[Symbol.observable])===null||r===void 0?void 0:r.call(e))||t===((a=(o=t)["@@observable"])===null||a===void 0?void 0:a.call(o)):!1};Se.nodeStream=t=>Se.object(t)&&Se.function_(t.pipe)&&!Se.observable(t);Se.infinite=t=>t===1/0||t===-1/0;var Loe=t=>e=>Se.integer(e)&&Math.abs(e%2)===t;Se.evenInteger=Loe(0);Se.oddInteger=Loe(1);Se.emptyArray=t=>Se.array(t)&&t.length===0;Se.nonEmptyArray=t=>Se.array(t)&&t.length>0;Se.emptyString=t=>Se.string(t)&&t.length===0;var Ort=t=>Se.string(t)&&!/\S/.test(t);Se.emptyStringOrWhitespace=t=>Se.emptyString(t)||Ort(t);Se.nonEmptyString=t=>Se.string(t)&&t.length>0;Se.nonEmptyStringAndNotWhitespace=t=>Se.string(t)&&!Se.emptyStringOrWhitespace(t);Se.emptyObject=t=>Se.object(t)&&!Se.map(t)&&!Se.set(t)&&Object.keys(t).length===0;Se.nonEmptyObject=t=>Se.object(t)&&!Se.map(t)&&!Se.set(t)&&Object.keys(t).length>0;Se.emptySet=t=>Se.set(t)&&t.size===0;Se.nonEmptySet=t=>Se.set(t)&&t.size>0;Se.emptyMap=t=>Se.map(t)&&t.size===0;Se.nonEmptyMap=t=>Se.map(t)&&t.size>0;Se.propertyKey=t=>Se.any([Se.string,Se.number,Se.symbol],t);Se.formData=t=>ii("FormData")(t);Se.urlSearchParams=t=>ii("URLSearchParams")(t);var Ooe=(t,e,r)=>{if(!Se.function_(e))throw new TypeError(`Invalid predicate: ${JSON.stringify(e)}`);if(r.length===0)throw new TypeError("Invalid number of values");return t.call(r,e)};Se.any=(t,...e)=>(Se.array(t)?t:[t]).some(o=>Ooe(Array.prototype.some,o,e));Se.all=(t,...e)=>Ooe(Array.prototype.every,t,e);var Mt=(t,e,r,o={})=>{if(!t){let{multipleValues:a}=o,n=a?`received values of types ${[...new Set(r.map(u=>`\`${Se(u)}\``))].join(", ")}`:`received value of type \`${Se(r)}\``;throw new TypeError(`Expected value which is \`${e}\`, ${n}.`)}};Qf.assert={undefined:t=>Mt(Se.undefined(t),"undefined",t),string:t=>Mt(Se.string(t),"string",t),number:t=>Mt(Se.number(t),"number",t),bigint:t=>Mt(Se.bigint(t),"bigint",t),function_:t=>Mt(Se.function_(t),"Function",t),null_:t=>Mt(Se.null_(t),"null",t),class_:t=>Mt(Se.class_(t),"Class",t),boolean:t=>Mt(Se.boolean(t),"boolean",t),symbol:t=>Mt(Se.symbol(t),"symbol",t),numericString:t=>Mt(Se.numericString(t),"string with a number",t),array:(t,e)=>{Mt(Se.array(t),"Array",t),e&&t.forEach(e)},buffer:t=>Mt(Se.buffer(t),"Buffer",t),blob:t=>Mt(Se.blob(t),"Blob",t),nullOrUndefined:t=>Mt(Se.nullOrUndefined(t),"null or undefined",t),object:t=>Mt(Se.object(t),"Object",t),iterable:t=>Mt(Se.iterable(t),"Iterable",t),asyncIterable:t=>Mt(Se.asyncIterable(t),"AsyncIterable",t),generator:t=>Mt(Se.generator(t),"Generator",t),asyncGenerator:t=>Mt(Se.asyncGenerator(t),"AsyncGenerator",t),nativePromise:t=>Mt(Se.nativePromise(t),"native Promise",t),promise:t=>Mt(Se.promise(t),"Promise",t),generatorFunction:t=>Mt(Se.generatorFunction(t),"GeneratorFunction",t),asyncGeneratorFunction:t=>Mt(Se.asyncGeneratorFunction(t),"AsyncGeneratorFunction",t),asyncFunction:t=>Mt(Se.asyncFunction(t),"AsyncFunction",t),boundFunction:t=>Mt(Se.boundFunction(t),"Function",t),regExp:t=>Mt(Se.regExp(t),"RegExp",t),date:t=>Mt(Se.date(t),"Date",t),error:t=>Mt(Se.error(t),"Error",t),map:t=>Mt(Se.map(t),"Map",t),set:t=>Mt(Se.set(t),"Set",t),weakMap:t=>Mt(Se.weakMap(t),"WeakMap",t),weakSet:t=>Mt(Se.weakSet(t),"WeakSet",t),int8Array:t=>Mt(Se.int8Array(t),"Int8Array",t),uint8Array:t=>Mt(Se.uint8Array(t),"Uint8Array",t),uint8ClampedArray:t=>Mt(Se.uint8ClampedArray(t),"Uint8ClampedArray",t),int16Array:t=>Mt(Se.int16Array(t),"Int16Array",t),uint16Array:t=>Mt(Se.uint16Array(t),"Uint16Array",t),int32Array:t=>Mt(Se.int32Array(t),"Int32Array",t),uint32Array:t=>Mt(Se.uint32Array(t),"Uint32Array",t),float32Array:t=>Mt(Se.float32Array(t),"Float32Array",t),float64Array:t=>Mt(Se.float64Array(t),"Float64Array",t),bigInt64Array:t=>Mt(Se.bigInt64Array(t),"BigInt64Array",t),bigUint64Array:t=>Mt(Se.bigUint64Array(t),"BigUint64Array",t),arrayBuffer:t=>Mt(Se.arrayBuffer(t),"ArrayBuffer",t),sharedArrayBuffer:t=>Mt(Se.sharedArrayBuffer(t),"SharedArrayBuffer",t),dataView:t=>Mt(Se.dataView(t),"DataView",t),enumCase:(t,e)=>Mt(Se.enumCase(t,e),"EnumCase",t),urlInstance:t=>Mt(Se.urlInstance(t),"URL",t),urlString:t=>Mt(Se.urlString(t),"string with a URL",t),truthy:t=>Mt(Se.truthy(t),"truthy",t),falsy:t=>Mt(Se.falsy(t),"falsy",t),nan:t=>Mt(Se.nan(t),"NaN",t),primitive:t=>Mt(Se.primitive(t),"primitive",t),integer:t=>Mt(Se.integer(t),"integer",t),safeInteger:t=>Mt(Se.safeInteger(t),"integer",t),plainObject:t=>Mt(Se.plainObject(t),"plain object",t),typedArray:t=>Mt(Se.typedArray(t),"TypedArray",t),arrayLike:t=>Mt(Se.arrayLike(t),"array-like",t),domElement:t=>Mt(Se.domElement(t),"HTMLElement",t),observable:t=>Mt(Se.observable(t),"Observable",t),nodeStream:t=>Mt(Se.nodeStream(t),"Node.js Stream",t),infinite:t=>Mt(Se.infinite(t),"infinite number",t),emptyArray:t=>Mt(Se.emptyArray(t),"empty array",t),nonEmptyArray:t=>Mt(Se.nonEmptyArray(t),"non-empty array",t),emptyString:t=>Mt(Se.emptyString(t),"empty string",t),emptyStringOrWhitespace:t=>Mt(Se.emptyStringOrWhitespace(t),"empty string or whitespace",t),nonEmptyString:t=>Mt(Se.nonEmptyString(t),"non-empty string",t),nonEmptyStringAndNotWhitespace:t=>Mt(Se.nonEmptyStringAndNotWhitespace(t),"non-empty string and not whitespace",t),emptyObject:t=>Mt(Se.emptyObject(t),"empty object",t),nonEmptyObject:t=>Mt(Se.nonEmptyObject(t),"non-empty object",t),emptySet:t=>Mt(Se.emptySet(t),"empty set",t),nonEmptySet:t=>Mt(Se.nonEmptySet(t),"non-empty set",t),emptyMap:t=>Mt(Se.emptyMap(t),"empty map",t),nonEmptyMap:t=>Mt(Se.nonEmptyMap(t),"non-empty map",t),propertyKey:t=>Mt(Se.propertyKey(t),"PropertyKey",t),formData:t=>Mt(Se.formData(t),"FormData",t),urlSearchParams:t=>Mt(Se.urlSearchParams(t),"URLSearchParams",t),evenInteger:t=>Mt(Se.evenInteger(t),"even integer",t),oddInteger:t=>Mt(Se.oddInteger(t),"odd integer",t),directInstanceOf:(t,e)=>Mt(Se.directInstanceOf(t,e),"T",t),inRange:(t,e)=>Mt(Se.inRange(t,e),"in range",t),any:(t,...e)=>Mt(Se.any(t,...e),"predicate returns truthy for any value",e,{multipleValues:!0}),all:(t,...e)=>Mt(Se.all(t,...e),"predicate returns truthy for all values",e,{multipleValues:!0})};Object.defineProperties(Se,{class:{value:Se.class_},function:{value:Se.function_},null:{value:Se.null_}});Object.defineProperties(Qf.assert,{class:{value:Qf.assert.class_},function:{value:Qf.assert.function_},null:{value:Qf.assert.null_}});Qf.default=Se;Pb.exports=Se;Pb.exports.default=Se;Pb.exports.assert=Qf.assert});var Moe=_((GNt,oU)=>{"use strict";var Sb=class extends Error{constructor(e){super(e||"Promise was canceled"),this.name="CancelError"}get isCanceled(){return!0}},bb=class t{static fn(e){return(...r)=>new t((o,a,n)=>{r.push(n),e(...r).then(o,a)})}constructor(e){this._cancelHandlers=[],this._isPending=!0,this._isCanceled=!1,this._rejectOnCancel=!0,this._promise=new Promise((r,o)=>{this._reject=o;let a=A=>{this._isPending=!1,r(A)},n=A=>{this._isPending=!1,o(A)},u=A=>{if(!this._isPending)throw new Error("The `onCancel` handler was attached after the promise settled.");this._cancelHandlers.push(A)};return Object.defineProperties(u,{shouldReject:{get:()=>this._rejectOnCancel,set:A=>{this._rejectOnCancel=A}}}),e(a,n,u)})}then(e,r){return this._promise.then(e,r)}catch(e){return this._promise.catch(e)}finally(e){return this._promise.finally(e)}cancel(e){if(!(!this._isPending||this._isCanceled)){if(this._cancelHandlers.length>0)try{for(let r of this._cancelHandlers)r()}catch(r){this._reject(r)}this._isCanceled=!0,this._rejectOnCancel&&this._reject(new Sb(e))}}get isCanceled(){return this._isCanceled}};Object.setPrototypeOf(bb.prototype,Promise.prototype);oU.exports=bb;oU.exports.CancelError=Sb});var Uoe=_((lU,cU)=>{"use strict";Object.defineProperty(lU,"__esModule",{value:!0});function Mrt(t){return t.encrypted}var aU=(t,e)=>{let r;typeof e=="function"?r={connect:e}:r=e;let o=typeof r.connect=="function",a=typeof r.secureConnect=="function",n=typeof r.close=="function",u=()=>{o&&r.connect(),Mrt(t)&&a&&(t.authorized?r.secureConnect():t.authorizationError||t.once("secureConnect",r.secureConnect)),n&&t.once("close",r.close)};t.writable&&!t.connecting?u():t.connecting?t.once("connect",u):t.destroyed&&n&&r.close(t._hadError)};lU.default=aU;cU.exports=aU;cU.exports.default=aU});var _oe=_((AU,fU)=>{"use strict";Object.defineProperty(AU,"__esModule",{value:!0});var Urt=Uoe(),_rt=Number(process.versions.node.split(".")[0]),uU=t=>{let e={start:Date.now(),socket:void 0,lookup:void 0,connect:void 0,secureConnect:void 0,upload:void 0,response:void 0,end:void 0,error:void 0,abort:void 0,phases:{wait:void 0,dns:void 0,tcp:void 0,tls:void 0,request:void 0,firstByte:void 0,download:void 0,total:void 0}};t.timings=e;let r=u=>{let A=u.emit.bind(u);u.emit=(p,...h)=>(p==="error"&&(e.error=Date.now(),e.phases.total=e.error-e.start,u.emit=A),A(p,...h))};r(t),t.prependOnceListener("abort",()=>{e.abort=Date.now(),(!e.response||_rt>=13)&&(e.phases.total=Date.now()-e.start)});let o=u=>{e.socket=Date.now(),e.phases.wait=e.socket-e.start;let A=()=>{e.lookup=Date.now(),e.phases.dns=e.lookup-e.socket};u.prependOnceListener("lookup",A),Urt.default(u,{connect:()=>{e.connect=Date.now(),e.lookup===void 0&&(u.removeListener("lookup",A),e.lookup=e.connect,e.phases.dns=e.lookup-e.socket),e.phases.tcp=e.connect-e.lookup},secureConnect:()=>{e.secureConnect=Date.now(),e.phases.tls=e.secureConnect-e.connect}})};t.socket?o(t.socket):t.prependOnceListener("socket",o);let a=()=>{var u;e.upload=Date.now(),e.phases.request=e.upload-(u=e.secureConnect,u??e.connect)};return(typeof t.writableFinished=="boolean"?t.writableFinished:t.finished&&t.outputSize===0&&(!t.socket||t.socket.writableLength===0))?a():t.prependOnceListener("finish",a),t.prependOnceListener("response",u=>{e.response=Date.now(),e.phases.firstByte=e.response-e.upload,u.timings=e,r(u),u.prependOnceListener("end",()=>{e.end=Date.now(),e.phases.download=e.end-e.response,e.phases.total=e.end-e.start})}),e};AU.default=uU;fU.exports=uU;fU.exports.default=uU});var Koe=_((WNt,gU)=>{"use strict";var{V4MAPPED:Hrt,ADDRCONFIG:qrt,ALL:Yoe,promises:{Resolver:Hoe},lookup:jrt}=ve("dns"),{promisify:pU}=ve("util"),Grt=ve("os"),Cy=Symbol("cacheableLookupCreateConnection"),hU=Symbol("cacheableLookupInstance"),qoe=Symbol("expires"),Wrt=typeof Yoe=="number",joe=t=>{if(!(t&&typeof t.createConnection=="function"))throw new Error("Expected an Agent instance as the first argument")},Yrt=t=>{for(let e of t)e.family!==6&&(e.address=`::ffff:${e.address}`,e.family=6)},Goe=()=>{let t=!1,e=!1;for(let r of Object.values(Grt.networkInterfaces()))for(let o of r)if(!o.internal&&(o.family==="IPv6"?e=!0:t=!0,t&&e))return{has4:t,has6:e};return{has4:t,has6:e}},Krt=t=>Symbol.iterator in t,Woe={ttl:!0},Vrt={all:!0},xb=class{constructor({cache:e=new Map,maxTtl:r=1/0,fallbackDuration:o=3600,errorTtl:a=.15,resolver:n=new Hoe,lookup:u=jrt}={}){if(this.maxTtl=r,this.errorTtl=a,this._cache=e,this._resolver=n,this._dnsLookup=pU(u),this._resolver instanceof Hoe?(this._resolve4=this._resolver.resolve4.bind(this._resolver),this._resolve6=this._resolver.resolve6.bind(this._resolver)):(this._resolve4=pU(this._resolver.resolve4.bind(this._resolver)),this._resolve6=pU(this._resolver.resolve6.bind(this._resolver))),this._iface=Goe(),this._pending={},this._nextRemovalTime=!1,this._hostnamesToFallback=new Set,o<1)this._fallback=!1;else{this._fallback=!0;let A=setInterval(()=>{this._hostnamesToFallback.clear()},o*1e3);A.unref&&A.unref()}this.lookup=this.lookup.bind(this),this.lookupAsync=this.lookupAsync.bind(this)}set servers(e){this.clear(),this._resolver.setServers(e)}get servers(){return this._resolver.getServers()}lookup(e,r,o){if(typeof r=="function"?(o=r,r={}):typeof r=="number"&&(r={family:r}),!o)throw new Error("Callback must be a function.");this.lookupAsync(e,r).then(a=>{r.all?o(null,a):o(null,a.address,a.family,a.expires,a.ttl)},o)}async lookupAsync(e,r={}){typeof r=="number"&&(r={family:r});let o=await this.query(e);if(r.family===6){let a=o.filter(n=>n.family===6);r.hints&Hrt&&(Wrt&&r.hints&Yoe||a.length===0)?Yrt(o):o=a}else r.family===4&&(o=o.filter(a=>a.family===4));if(r.hints&qrt){let{_iface:a}=this;o=o.filter(n=>n.family===6?a.has6:a.has4)}if(o.length===0){let a=new Error(`cacheableLookup ENOTFOUND ${e}`);throw a.code="ENOTFOUND",a.hostname=e,a}return r.all?o:o[0]}async query(e){let r=await this._cache.get(e);if(!r){let o=this._pending[e];if(o)r=await o;else{let a=this.queryAndCache(e);this._pending[e]=a,r=await a}}return r=r.map(o=>({...o})),r}async _resolve(e){let r=async h=>{try{return await h}catch(E){if(E.code==="ENODATA"||E.code==="ENOTFOUND")return[];throw E}},[o,a]=await Promise.all([this._resolve4(e,Woe),this._resolve6(e,Woe)].map(h=>r(h))),n=0,u=0,A=0,p=Date.now();for(let h of o)h.family=4,h.expires=p+h.ttl*1e3,n=Math.max(n,h.ttl);for(let h of a)h.family=6,h.expires=p+h.ttl*1e3,u=Math.max(u,h.ttl);return o.length>0?a.length>0?A=Math.min(n,u):A=n:A=u,{entries:[...o,...a],cacheTtl:A}}async _lookup(e){try{return{entries:await this._dnsLookup(e,{all:!0}),cacheTtl:0}}catch{return{entries:[],cacheTtl:0}}}async _set(e,r,o){if(this.maxTtl>0&&o>0){o=Math.min(o,this.maxTtl)*1e3,r[qoe]=Date.now()+o;try{await this._cache.set(e,r,o)}catch(a){this.lookupAsync=async()=>{let n=new Error("Cache Error. Please recreate the CacheableLookup instance.");throw n.cause=a,n}}Krt(this._cache)&&this._tick(o)}}async queryAndCache(e){if(this._hostnamesToFallback.has(e))return this._dnsLookup(e,Vrt);try{let r=await this._resolve(e);r.entries.length===0&&this._fallback&&(r=await this._lookup(e),r.entries.length!==0&&this._hostnamesToFallback.add(e));let o=r.entries.length===0?this.errorTtl:r.cacheTtl;return await this._set(e,r.entries,o),delete this._pending[e],r.entries}catch(r){throw delete this._pending[e],r}}_tick(e){let r=this._nextRemovalTime;(!r||e{this._nextRemovalTime=!1;let o=1/0,a=Date.now();for(let[n,u]of this._cache){let A=u[qoe];a>=A?this._cache.delete(n):A("lookup"in r||(r.lookup=this.lookup),e[Cy](r,o))}uninstall(e){if(joe(e),e[Cy]){if(e[hU]!==this)throw new Error("The agent is not owned by this CacheableLookup instance");e.createConnection=e[Cy],delete e[Cy],delete e[hU]}}updateInterfaceInfo(){let{_iface:e}=this;this._iface=Goe(),(e.has4&&!this._iface.has4||e.has6&&!this._iface.has6)&&this._cache.clear()}clear(e){if(e){this._cache.delete(e);return}this._cache.clear()}};gU.exports=xb;gU.exports.default=xb});var zoe=_((YNt,dU)=>{"use strict";var Jrt=typeof URL>"u"?ve("url").URL:URL,zrt="text/plain",Xrt="us-ascii",Voe=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),Zrt=(t,{stripHash:e})=>{let r=t.match(/^data:([^,]*?),([^#]*?)(?:#(.*))?$/);if(!r)throw new Error(`Invalid URL: ${t}`);let o=r[1].split(";"),a=r[2],n=e?"":r[3],u=!1;o[o.length-1]==="base64"&&(o.pop(),u=!0);let A=(o.shift()||"").toLowerCase(),h=[...o.map(E=>{let[w,D=""]=E.split("=").map(x=>x.trim());return w==="charset"&&(D=D.toLowerCase(),D===Xrt)?"":`${w}${D?`=${D}`:""}`}).filter(Boolean)];return u&&h.push("base64"),(h.length!==0||A&&A!==zrt)&&h.unshift(A),`data:${h.join(";")},${u?a.trim():a}${n?`#${n}`:""}`},Joe=(t,e)=>{if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},Reflect.has(e,"normalizeHttps"))throw new Error("options.normalizeHttps is renamed to options.forceHttp");if(Reflect.has(e,"normalizeHttp"))throw new Error("options.normalizeHttp is renamed to options.forceHttps");if(Reflect.has(e,"stripFragment"))throw new Error("options.stripFragment is renamed to options.stripHash");if(t=t.trim(),/^data:/i.test(t))return Zrt(t,e);let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new Jrt(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash&&(a.hash=""),a.pathname&&(a.pathname=a.pathname.replace(/((?!:).|^)\/{2,}/g,(n,u)=>/^(?!\/)/g.test(u)?`${u}/`:"/")),a.pathname&&(a.pathname=decodeURI(a.pathname)),e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let n=a.pathname.split("/"),u=n[n.length-1];Voe(u,e.removeDirectoryIndex)&&(n=n.slice(0,n.length-1),a.pathname=n.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.([a-z\-\d]{2,63})\.([a-z.]{2,5})$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let n of[...a.searchParams.keys()])Voe(n,e.removeQueryParameters)&&a.searchParams.delete(n);return e.sortQueryParameters&&a.searchParams.sort(),e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,"")),t=a.toString(),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t};dU.exports=Joe;dU.exports.default=Joe});var $oe=_((KNt,Zoe)=>{Zoe.exports=Xoe;function Xoe(t,e){if(t&&e)return Xoe(t)(e);if(typeof t!="function")throw new TypeError("need wrapper function");return Object.keys(t).forEach(function(o){r[o]=t[o]}),r;function r(){for(var o=new Array(arguments.length),a=0;a{var eae=$oe();mU.exports=eae(kb);mU.exports.strict=eae(tae);kb.proto=kb(function(){Object.defineProperty(Function.prototype,"once",{value:function(){return kb(this)},configurable:!0}),Object.defineProperty(Function.prototype,"onceStrict",{value:function(){return tae(this)},configurable:!0})});function kb(t){var e=function(){return e.called?e.value:(e.called=!0,e.value=t.apply(this,arguments))};return e.called=!1,e}function tae(t){var e=function(){if(e.called)throw new Error(e.onceError);return e.called=!0,e.value=t.apply(this,arguments)},r=t.name||"Function wrapped with `once`";return e.onceError=r+" shouldn't be called more than once",e.called=!1,e}});var EU=_((JNt,nae)=>{var $rt=yU(),ent=function(){},tnt=function(t){return t.setHeader&&typeof t.abort=="function"},rnt=function(t){return t.stdio&&Array.isArray(t.stdio)&&t.stdio.length===3},rae=function(t,e,r){if(typeof e=="function")return rae(t,null,e);e||(e={}),r=$rt(r||ent);var o=t._writableState,a=t._readableState,n=e.readable||e.readable!==!1&&t.readable,u=e.writable||e.writable!==!1&&t.writable,A=function(){t.writable||p()},p=function(){u=!1,n||r.call(t)},h=function(){n=!1,u||r.call(t)},E=function(C){r.call(t,C?new Error("exited with error code: "+C):null)},w=function(C){r.call(t,C)},D=function(){if(n&&!(a&&a.ended))return r.call(t,new Error("premature close"));if(u&&!(o&&o.ended))return r.call(t,new Error("premature close"))},x=function(){t.req.on("finish",p)};return tnt(t)?(t.on("complete",p),t.on("abort",D),t.req?x():t.on("request",x)):u&&!o&&(t.on("end",A),t.on("close",A)),rnt(t)&&t.on("exit",E),t.on("end",h),t.on("finish",p),e.error!==!1&&t.on("error",w),t.on("close",D),function(){t.removeListener("complete",p),t.removeListener("abort",D),t.removeListener("request",x),t.req&&t.req.removeListener("finish",p),t.removeListener("end",A),t.removeListener("close",A),t.removeListener("finish",p),t.removeListener("exit",E),t.removeListener("end",h),t.removeListener("error",w),t.removeListener("close",D)}};nae.exports=rae});var oae=_((zNt,sae)=>{var nnt=yU(),int=EU(),CU=ve("fs"),Q1=function(){},snt=/^v?\.0/.test(process.version),Qb=function(t){return typeof t=="function"},ont=function(t){return!snt||!CU?!1:(t instanceof(CU.ReadStream||Q1)||t instanceof(CU.WriteStream||Q1))&&Qb(t.close)},ant=function(t){return t.setHeader&&Qb(t.abort)},lnt=function(t,e,r,o){o=nnt(o);var a=!1;t.on("close",function(){a=!0}),int(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,ont(t))return t.close(Q1);if(ant(t))return t.abort();if(Qb(t.destroy))return t.destroy();o(u||new Error("stream was destroyed"))}}},iae=function(t){t()},cnt=function(t,e){return t.pipe(e)},unt=function(){var t=Array.prototype.slice.call(arguments),e=Qb(t[t.length-1]||Q1)&&t.pop()||Q1;if(Array.isArray(t[0])&&(t=t[0]),t.length<2)throw new Error("pump requires two streams per minimum");var r,o=t.map(function(a,n){var u=n0;return lnt(a,u,A,function(p){r||(r=p),p&&o.forEach(iae),!u&&(o.forEach(iae),e(r))})});return t.reduce(cnt)};sae.exports=unt});var lae=_((XNt,aae)=>{"use strict";var{PassThrough:Ant}=ve("stream");aae.exports=t=>{t={...t};let{array:e}=t,{encoding:r}=t,o=r==="buffer",a=!1;e?a=!(r||o):r=r||"utf8",o&&(r=null);let n=new Ant({objectMode:a});r&&n.setEncoding(r);let u=0,A=[];return n.on("data",p=>{A.push(p),a?u=A.length:u+=p.length}),n.getBufferedValue=()=>e?A:o?Buffer.concat(A,u):A.join(""),n.getBufferedLength=()=>u,n}});var cae=_((ZNt,Iy)=>{"use strict";var fnt=oae(),pnt=lae(),Fb=class extends Error{constructor(){super("maxBuffer exceeded"),this.name="MaxBufferError"}};async function Rb(t,e){if(!t)return Promise.reject(new Error("Expected a stream"));e={maxBuffer:1/0,...e};let{maxBuffer:r}=e,o;return await new Promise((a,n)=>{let u=A=>{A&&(A.bufferedData=o.getBufferedValue()),n(A)};o=fnt(t,pnt(e),A=>{if(A){u(A);return}a()}),o.on("data",()=>{o.getBufferedLength()>r&&u(new Fb)})}),o.getBufferedValue()}Iy.exports=Rb;Iy.exports.default=Rb;Iy.exports.buffer=(t,e)=>Rb(t,{...e,encoding:"buffer"});Iy.exports.array=(t,e)=>Rb(t,{...e,array:!0});Iy.exports.MaxBufferError=Fb});var Aae=_((eLt,uae)=>{"use strict";var hnt=new Set([200,203,204,206,300,301,308,404,405,410,414,501]),gnt=new Set([200,203,204,300,301,302,303,307,308,404,405,410,414,501]),dnt=new Set([500,502,503,504]),mnt={date:!0,connection:!0,"keep-alive":!0,"proxy-authenticate":!0,"proxy-authorization":!0,te:!0,trailer:!0,"transfer-encoding":!0,upgrade:!0},ynt={"content-length":!0,"content-encoding":!0,"transfer-encoding":!0,"content-range":!0};function Sg(t){let e=parseInt(t,10);return isFinite(e)?e:0}function Ent(t){return t?dnt.has(t.status):!0}function IU(t){let e={};if(!t)return e;let r=t.trim().split(/,/);for(let o of r){let[a,n]=o.split(/=/,2);e[a.trim()]=n===void 0?!0:n.trim().replace(/^"|"$/g,"")}return e}function Cnt(t){let e=[];for(let r in t){let o=t[r];e.push(o===!0?r:r+"="+o)}if(e.length)return e.join(", ")}uae.exports=class{constructor(e,r,{shared:o,cacheHeuristic:a,immutableMinTimeToLive:n,ignoreCargoCult:u,_fromObject:A}={}){if(A){this._fromObject(A);return}if(!r||!r.headers)throw Error("Response headers missing");this._assertRequestHasHeaders(e),this._responseTime=this.now(),this._isShared=o!==!1,this._cacheHeuristic=a!==void 0?a:.1,this._immutableMinTtl=n!==void 0?n:24*3600*1e3,this._status="status"in r?r.status:200,this._resHeaders=r.headers,this._rescc=IU(r.headers["cache-control"]),this._method="method"in e?e.method:"GET",this._url=e.url,this._host=e.headers.host,this._noAuthorization=!e.headers.authorization,this._reqHeaders=r.headers.vary?e.headers:null,this._reqcc=IU(e.headers["cache-control"]),u&&"pre-check"in this._rescc&&"post-check"in this._rescc&&(delete this._rescc["pre-check"],delete this._rescc["post-check"],delete this._rescc["no-cache"],delete this._rescc["no-store"],delete this._rescc["must-revalidate"],this._resHeaders=Object.assign({},this._resHeaders,{"cache-control":Cnt(this._rescc)}),delete this._resHeaders.expires,delete this._resHeaders.pragma),r.headers["cache-control"]==null&&/no-cache/.test(r.headers.pragma)&&(this._rescc["no-cache"]=!0)}now(){return Date.now()}storable(){return!!(!this._reqcc["no-store"]&&(this._method==="GET"||this._method==="HEAD"||this._method==="POST"&&this._hasExplicitExpiration())&&gnt.has(this._status)&&!this._rescc["no-store"]&&(!this._isShared||!this._rescc.private)&&(!this._isShared||this._noAuthorization||this._allowsStoringAuthenticated())&&(this._resHeaders.expires||this._rescc["max-age"]||this._isShared&&this._rescc["s-maxage"]||this._rescc.public||hnt.has(this._status)))}_hasExplicitExpiration(){return this._isShared&&this._rescc["s-maxage"]||this._rescc["max-age"]||this._resHeaders.expires}_assertRequestHasHeaders(e){if(!e||!e.headers)throw Error("Request headers missing")}satisfiesWithoutRevalidation(e){this._assertRequestHasHeaders(e);let r=IU(e.headers["cache-control"]);return r["no-cache"]||/no-cache/.test(e.headers.pragma)||r["max-age"]&&this.age()>r["max-age"]||r["min-fresh"]&&this.timeToLive()<1e3*r["min-fresh"]||this.stale()&&!(r["max-stale"]&&!this._rescc["must-revalidate"]&&(r["max-stale"]===!0||r["max-stale"]>this.age()-this.maxAge()))?!1:this._requestMatches(e,!1)}_requestMatches(e,r){return(!this._url||this._url===e.url)&&this._host===e.headers.host&&(!e.method||this._method===e.method||r&&e.method==="HEAD")&&this._varyMatches(e)}_allowsStoringAuthenticated(){return this._rescc["must-revalidate"]||this._rescc.public||this._rescc["s-maxage"]}_varyMatches(e){if(!this._resHeaders.vary)return!0;if(this._resHeaders.vary==="*")return!1;let r=this._resHeaders.vary.trim().toLowerCase().split(/\s*,\s*/);for(let o of r)if(e.headers[o]!==this._reqHeaders[o])return!1;return!0}_copyWithoutHopByHopHeaders(e){let r={};for(let o in e)mnt[o]||(r[o]=e[o]);if(e.connection){let o=e.connection.trim().split(/\s*,\s*/);for(let a of o)delete r[a]}if(r.warning){let o=r.warning.split(/,/).filter(a=>!/^\s*1[0-9][0-9]/.test(a));o.length?r.warning=o.join(",").trim():delete r.warning}return r}responseHeaders(){let e=this._copyWithoutHopByHopHeaders(this._resHeaders),r=this.age();return r>3600*24&&!this._hasExplicitExpiration()&&this.maxAge()>3600*24&&(e.warning=(e.warning?`${e.warning}, `:"")+'113 - "rfc7234 5.5.4"'),e.age=`${Math.round(r)}`,e.date=new Date(this.now()).toUTCString(),e}date(){let e=Date.parse(this._resHeaders.date);return isFinite(e)?e:this._responseTime}age(){let e=this._ageValue(),r=(this.now()-this._responseTime)/1e3;return e+r}_ageValue(){return Sg(this._resHeaders.age)}maxAge(){if(!this.storable()||this._rescc["no-cache"]||this._isShared&&this._resHeaders["set-cookie"]&&!this._rescc.public&&!this._rescc.immutable||this._resHeaders.vary==="*")return 0;if(this._isShared){if(this._rescc["proxy-revalidate"])return 0;if(this._rescc["s-maxage"])return Sg(this._rescc["s-maxage"])}if(this._rescc["max-age"])return Sg(this._rescc["max-age"]);let e=this._rescc.immutable?this._immutableMinTtl:0,r=this.date();if(this._resHeaders.expires){let o=Date.parse(this._resHeaders.expires);return Number.isNaN(o)||oo)return Math.max(e,(r-o)/1e3*this._cacheHeuristic)}return e}timeToLive(){let e=this.maxAge()-this.age(),r=e+Sg(this._rescc["stale-if-error"]),o=e+Sg(this._rescc["stale-while-revalidate"]);return Math.max(0,e,r,o)*1e3}stale(){return this.maxAge()<=this.age()}_useStaleIfError(){return this.maxAge()+Sg(this._rescc["stale-if-error"])>this.age()}useStaleWhileRevalidate(){return this.maxAge()+Sg(this._rescc["stale-while-revalidate"])>this.age()}static fromObject(e){return new this(void 0,void 0,{_fromObject:e})}_fromObject(e){if(this._responseTime)throw Error("Reinitialized");if(!e||e.v!==1)throw Error("Invalid serialization");this._responseTime=e.t,this._isShared=e.sh,this._cacheHeuristic=e.ch,this._immutableMinTtl=e.imm!==void 0?e.imm:24*3600*1e3,this._status=e.st,this._resHeaders=e.resh,this._rescc=e.rescc,this._method=e.m,this._url=e.u,this._host=e.h,this._noAuthorization=e.a,this._reqHeaders=e.reqh,this._reqcc=e.reqcc}toObject(){return{v:1,t:this._responseTime,sh:this._isShared,ch:this._cacheHeuristic,imm:this._immutableMinTtl,st:this._status,resh:this._resHeaders,rescc:this._rescc,m:this._method,u:this._url,h:this._host,a:this._noAuthorization,reqh:this._reqHeaders,reqcc:this._reqcc}}revalidationHeaders(e){this._assertRequestHasHeaders(e);let r=this._copyWithoutHopByHopHeaders(e.headers);if(delete r["if-range"],!this._requestMatches(e,!0)||!this.storable())return delete r["if-none-match"],delete r["if-modified-since"],r;if(this._resHeaders.etag&&(r["if-none-match"]=r["if-none-match"]?`${r["if-none-match"]}, ${this._resHeaders.etag}`:this._resHeaders.etag),r["accept-ranges"]||r["if-match"]||r["if-unmodified-since"]||this._method&&this._method!="GET"){if(delete r["if-modified-since"],r["if-none-match"]){let a=r["if-none-match"].split(/,/).filter(n=>!/^\s*W\//.test(n));a.length?r["if-none-match"]=a.join(",").trim():delete r["if-none-match"]}}else this._resHeaders["last-modified"]&&!r["if-modified-since"]&&(r["if-modified-since"]=this._resHeaders["last-modified"]);return r}revalidatedPolicy(e,r){if(this._assertRequestHasHeaders(e),this._useStaleIfError()&&Ent(r))return{modified:!1,matches:!1,policy:this};if(!r||!r.headers)throw Error("Response headers missing");let o=!1;if(r.status!==void 0&&r.status!=304?o=!1:r.headers.etag&&!/^\s*W\//.test(r.headers.etag)?o=this._resHeaders.etag&&this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag:this._resHeaders.etag&&r.headers.etag?o=this._resHeaders.etag.replace(/^\s*W\//,"")===r.headers.etag.replace(/^\s*W\//,""):this._resHeaders["last-modified"]?o=this._resHeaders["last-modified"]===r.headers["last-modified"]:!this._resHeaders.etag&&!this._resHeaders["last-modified"]&&!r.headers.etag&&!r.headers["last-modified"]&&(o=!0),!o)return{policy:new this.constructor(e,r),modified:r.status!=304,matches:!1};let a={};for(let u in this._resHeaders)a[u]=u in r.headers&&!ynt[u]?r.headers[u]:this._resHeaders[u];let n=Object.assign({},r,{status:this._status,method:this._method,headers:a});return{policy:new this.constructor(e,n,{shared:this._isShared,cacheHeuristic:this._cacheHeuristic,immutableMinTimeToLive:this._immutableMinTtl}),modified:!1,matches:!0}}}});var Tb=_((tLt,fae)=>{"use strict";fae.exports=t=>{let e={};for(let[r,o]of Object.entries(t))e[r.toLowerCase()]=o;return e}});var hae=_((rLt,pae)=>{"use strict";var Int=ve("stream").Readable,wnt=Tb(),wU=class extends Int{constructor(e,r,o,a){if(typeof e!="number")throw new TypeError("Argument `statusCode` should be a number");if(typeof r!="object")throw new TypeError("Argument `headers` should be an object");if(!(o instanceof Buffer))throw new TypeError("Argument `body` should be a buffer");if(typeof a!="string")throw new TypeError("Argument `url` should be a string");super(),this.statusCode=e,this.headers=wnt(r),this.body=o,this.url=a}_read(){this.push(this.body),this.push(null)}};pae.exports=wU});var dae=_((nLt,gae)=>{"use strict";var Bnt=["destroy","setTimeout","socket","headers","trailers","rawHeaders","statusCode","httpVersion","httpVersionMinor","httpVersionMajor","rawTrailers","statusMessage"];gae.exports=(t,e)=>{let r=new Set(Object.keys(t).concat(Bnt));for(let o of r)o in e||(e[o]=typeof t[o]=="function"?t[o].bind(t):t[o])}});var yae=_((iLt,mae)=>{"use strict";var vnt=ve("stream").PassThrough,Dnt=dae(),Pnt=t=>{if(!(t&&t.pipe))throw new TypeError("Parameter `response` must be a response stream.");let e=new vnt;return Dnt(t,e),t.pipe(e)};mae.exports=Pnt});var Eae=_(BU=>{BU.stringify=function t(e){if(typeof e>"u")return e;if(e&&Buffer.isBuffer(e))return JSON.stringify(":base64:"+e.toString("base64"));if(e&&e.toJSON&&(e=e.toJSON()),e&&typeof e=="object"){var r="",o=Array.isArray(e);r=o?"[":"{";var a=!0;for(var n in e){var u=typeof e[n]=="function"||!o&&typeof e[n]>"u";Object.hasOwnProperty.call(e,n)&&!u&&(a||(r+=","),a=!1,o?e[n]==null?r+="null":r+=t(e[n]):e[n]!==void 0&&(r+=t(n)+":"+t(e[n])))}return r+=o?"]":"}",r}else return typeof e=="string"?JSON.stringify(/^:/.test(e)?":"+e:e):typeof e>"u"?"null":JSON.stringify(e)};BU.parse=function(t){return JSON.parse(t,function(e,r){return typeof r=="string"?/^:base64:/.test(r)?Buffer.from(r.substring(8),"base64"):/^:/.test(r)?r.substring(1):r:r})}});var Bae=_((oLt,wae)=>{"use strict";var Snt=ve("events"),Cae=Eae(),bnt=t=>{let e={redis:"@keyv/redis",rediss:"@keyv/redis",mongodb:"@keyv/mongo",mongo:"@keyv/mongo",sqlite:"@keyv/sqlite",postgresql:"@keyv/postgres",postgres:"@keyv/postgres",mysql:"@keyv/mysql",etcd:"@keyv/etcd",offline:"@keyv/offline",tiered:"@keyv/tiered"};if(t.adapter||t.uri){let r=t.adapter||/^[^:+]*/.exec(t.uri)[0];return new(ve(e[r]))(t)}return new Map},Iae=["sqlite","postgres","mysql","mongo","redis","tiered"],vU=class extends Snt{constructor(e,{emitErrors:r=!0,...o}={}){if(super(),this.opts={namespace:"keyv",serialize:Cae.stringify,deserialize:Cae.parse,...typeof e=="string"?{uri:e}:e,...o},!this.opts.store){let n={...this.opts};this.opts.store=bnt(n)}if(this.opts.compression){let n=this.opts.compression;this.opts.serialize=n.serialize.bind(n),this.opts.deserialize=n.deserialize.bind(n)}typeof this.opts.store.on=="function"&&r&&this.opts.store.on("error",n=>this.emit("error",n)),this.opts.store.namespace=this.opts.namespace;let a=n=>async function*(){for await(let[u,A]of typeof n=="function"?n(this.opts.store.namespace):n){let p=await this.opts.deserialize(A);if(!(this.opts.store.namespace&&!u.includes(this.opts.store.namespace))){if(typeof p.expires=="number"&&Date.now()>p.expires){this.delete(u);continue}yield[this._getKeyUnprefix(u),p.value]}}};typeof this.opts.store[Symbol.iterator]=="function"&&this.opts.store instanceof Map?this.iterator=a(this.opts.store):typeof this.opts.store.iterator=="function"&&this.opts.store.opts&&this._checkIterableAdaptar()&&(this.iterator=a(this.opts.store.iterator.bind(this.opts.store)))}_checkIterableAdaptar(){return Iae.includes(this.opts.store.opts.dialect)||Iae.findIndex(e=>this.opts.store.opts.url.includes(e))>=0}_getKeyPrefix(e){return`${this.opts.namespace}:${e}`}_getKeyPrefixArray(e){return e.map(r=>`${this.opts.namespace}:${r}`)}_getKeyUnprefix(e){return e.split(":").splice(1).join(":")}get(e,r){let{store:o}=this.opts,a=Array.isArray(e),n=a?this._getKeyPrefixArray(e):this._getKeyPrefix(e);if(a&&o.getMany===void 0){let u=[];for(let A of n)u.push(Promise.resolve().then(()=>o.get(A)).then(p=>typeof p=="string"?this.opts.deserialize(p):this.opts.compression?this.opts.deserialize(p):p).then(p=>{if(p!=null)return typeof p.expires=="number"&&Date.now()>p.expires?this.delete(A).then(()=>{}):r&&r.raw?p:p.value}));return Promise.allSettled(u).then(A=>{let p=[];for(let h of A)p.push(h.value);return p})}return Promise.resolve().then(()=>a?o.getMany(n):o.get(n)).then(u=>typeof u=="string"?this.opts.deserialize(u):this.opts.compression?this.opts.deserialize(u):u).then(u=>{if(u!=null)return a?u.map((A,p)=>{if(typeof A=="string"&&(A=this.opts.deserialize(A)),A!=null){if(typeof A.expires=="number"&&Date.now()>A.expires){this.delete(e[p]).then(()=>{});return}return r&&r.raw?A:A.value}}):typeof u.expires=="number"&&Date.now()>u.expires?this.delete(e).then(()=>{}):r&&r.raw?u:u.value})}set(e,r,o){let a=this._getKeyPrefix(e);typeof o>"u"&&(o=this.opts.ttl),o===0&&(o=void 0);let{store:n}=this.opts;return Promise.resolve().then(()=>{let u=typeof o=="number"?Date.now()+o:null;return typeof r=="symbol"&&this.emit("error","symbol cannot be serialized"),r={value:r,expires:u},this.opts.serialize(r)}).then(u=>n.set(a,u,o)).then(()=>!0)}delete(e){let{store:r}=this.opts;if(Array.isArray(e)){let a=this._getKeyPrefixArray(e);if(r.deleteMany===void 0){let n=[];for(let u of a)n.push(r.delete(u));return Promise.allSettled(n).then(u=>u.every(A=>A.value===!0))}return Promise.resolve().then(()=>r.deleteMany(a))}let o=this._getKeyPrefix(e);return Promise.resolve().then(()=>r.delete(o))}clear(){let{store:e}=this.opts;return Promise.resolve().then(()=>e.clear())}has(e){let r=this._getKeyPrefix(e),{store:o}=this.opts;return Promise.resolve().then(async()=>typeof o.has=="function"?o.has(r):await o.get(r)!==void 0)}disconnect(){let{store:e}=this.opts;if(typeof e.disconnect=="function")return e.disconnect()}};wae.exports=vU});var Pae=_((lLt,Dae)=>{"use strict";var xnt=ve("events"),Nb=ve("url"),knt=zoe(),Qnt=cae(),DU=Aae(),vae=hae(),Fnt=Tb(),Rnt=yae(),Tnt=Bae(),F1=class t{constructor(e,r){if(typeof e!="function")throw new TypeError("Parameter `request` must be a function");return this.cache=new Tnt({uri:typeof r=="string"&&r,store:typeof r!="string"&&r,namespace:"cacheable-request"}),this.createCacheableRequest(e)}createCacheableRequest(e){return(r,o)=>{let a;if(typeof r=="string")a=PU(Nb.parse(r)),r={};else if(r instanceof Nb.URL)a=PU(Nb.parse(r.toString())),r={};else{let[w,...D]=(r.path||"").split("?"),x=D.length>0?`?${D.join("?")}`:"";a=PU({...r,pathname:w,search:x})}r={headers:{},method:"GET",cache:!0,strictTtl:!1,automaticFailover:!1,...r,...Nnt(a)},r.headers=Fnt(r.headers);let n=new xnt,u=knt(Nb.format(a),{stripWWW:!1,removeTrailingSlash:!1,stripAuthentication:!1}),A=`${r.method}:${u}`,p=!1,h=!1,E=w=>{h=!0;let D=!1,x,C=new Promise(L=>{x=()=>{D||(D=!0,L())}}),T=L=>{if(p&&!w.forceRefresh){L.status=L.statusCode;let J=DU.fromObject(p.cachePolicy).revalidatedPolicy(w,L);if(!J.modified){let te=J.policy.responseHeaders();L=new vae(p.statusCode,te,p.body,p.url),L.cachePolicy=J.policy,L.fromCache=!0}}L.fromCache||(L.cachePolicy=new DU(w,L,w),L.fromCache=!1);let U;w.cache&&L.cachePolicy.storable()?(U=Rnt(L),(async()=>{try{let J=Qnt.buffer(L);if(await Promise.race([C,new Promise(ue=>L.once("end",ue))]),D)return;let te=await J,le={cachePolicy:L.cachePolicy.toObject(),url:L.url,statusCode:L.fromCache?p.statusCode:L.statusCode,body:te},ce=w.strictTtl?L.cachePolicy.timeToLive():void 0;w.maxTtl&&(ce=ce?Math.min(ce,w.maxTtl):w.maxTtl),await this.cache.set(A,le,ce)}catch(J){n.emit("error",new t.CacheError(J))}})()):w.cache&&p&&(async()=>{try{await this.cache.delete(A)}catch(J){n.emit("error",new t.CacheError(J))}})(),n.emit("response",U||L),typeof o=="function"&&o(U||L)};try{let L=e(w,T);L.once("error",x),L.once("abort",x),n.emit("request",L)}catch(L){n.emit("error",new t.RequestError(L))}};return(async()=>{let w=async x=>{await Promise.resolve();let C=x.cache?await this.cache.get(A):void 0;if(typeof C>"u")return E(x);let T=DU.fromObject(C.cachePolicy);if(T.satisfiesWithoutRevalidation(x)&&!x.forceRefresh){let L=T.responseHeaders(),U=new vae(C.statusCode,L,C.body,C.url);U.cachePolicy=T,U.fromCache=!0,n.emit("response",U),typeof o=="function"&&o(U)}else p=C,x.headers=T.revalidationHeaders(x),E(x)},D=x=>n.emit("error",new t.CacheError(x));this.cache.once("error",D),n.on("response",()=>this.cache.removeListener("error",D));try{await w(r)}catch(x){r.automaticFailover&&!h&&E(r),n.emit("error",new t.CacheError(x))}})(),n}}};function Nnt(t){let e={...t};return e.path=`${t.pathname||"/"}${t.search||""}`,delete e.pathname,delete e.search,e}function PU(t){return{protocol:t.protocol,auth:t.auth,hostname:t.hostname||t.host||"localhost",port:t.port,pathname:t.pathname,search:t.search}}F1.RequestError=class extends Error{constructor(t){super(t.message),this.name="RequestError",Object.assign(this,t)}};F1.CacheError=class extends Error{constructor(t){super(t.message),this.name="CacheError",Object.assign(this,t)}};Dae.exports=F1});var bae=_((ALt,Sae)=>{"use strict";var Lnt=["aborted","complete","headers","httpVersion","httpVersionMinor","httpVersionMajor","method","rawHeaders","rawTrailers","setTimeout","socket","statusCode","statusMessage","trailers","url"];Sae.exports=(t,e)=>{if(e._readableState.autoDestroy)throw new Error("The second stream must have the `autoDestroy` option set to `false`");let r=new Set(Object.keys(t).concat(Lnt)),o={};for(let a of r)a in e||(o[a]={get(){let n=t[a];return typeof n=="function"?n.bind(t):n},set(n){t[a]=n},enumerable:!0,configurable:!1});return Object.defineProperties(e,o),t.once("aborted",()=>{e.destroy(),e.emit("aborted")}),t.once("close",()=>{t.complete&&e.readable?e.once("end",()=>{e.emit("close")}):e.emit("close")}),e}});var kae=_((fLt,xae)=>{"use strict";var{Transform:Ont,PassThrough:Mnt}=ve("stream"),SU=ve("zlib"),Unt=bae();xae.exports=t=>{let e=(t.headers["content-encoding"]||"").toLowerCase();if(!["gzip","deflate","br"].includes(e))return t;let r=e==="br";if(r&&typeof SU.createBrotliDecompress!="function")return t.destroy(new Error("Brotli is not supported on Node.js < 12")),t;let o=!0,a=new Ont({transform(A,p,h){o=!1,h(null,A)},flush(A){A()}}),n=new Mnt({autoDestroy:!1,destroy(A,p){t.destroy(),p(A)}}),u=r?SU.createBrotliDecompress():SU.createUnzip();return u.once("error",A=>{if(o&&!t.readable){n.end();return}n.destroy(A)}),Unt(t,n),t.pipe(a).pipe(u).pipe(n),n}});var xU=_((pLt,Qae)=>{"use strict";var bU=class{constructor(e={}){if(!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");this.maxSize=e.maxSize,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_set(e,r){if(this.cache.set(e,r),this._size++,this._size>=this.maxSize){if(this._size=0,typeof this.onEviction=="function")for(let[o,a]of this.oldCache.entries())this.onEviction(o,a);this.oldCache=this.cache,this.cache=new Map}}get(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e)){let r=this.oldCache.get(e);return this.oldCache.delete(e),this._set(e,r),r}}set(e,r){return this.cache.has(e)?this.cache.set(e,r):this._set(e,r),this}has(e){return this.cache.has(e)||this.oldCache.has(e)}peek(e){if(this.cache.has(e))return this.cache.get(e);if(this.oldCache.has(e))return this.oldCache.get(e)}delete(e){let r=this.cache.delete(e);return r&&this._size--,this.oldCache.delete(e)||r}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache)yield e;for(let e of this.oldCache){let[r]=e;this.cache.has(r)||(yield e)}}get size(){let e=0;for(let r of this.oldCache.keys())this.cache.has(r)||e++;return Math.min(this._size+e,this.maxSize)}};Qae.exports=bU});var QU=_((hLt,Nae)=>{"use strict";var _nt=ve("events"),Hnt=ve("tls"),qnt=ve("http2"),jnt=xU(),ea=Symbol("currentStreamsCount"),Fae=Symbol("request"),Jl=Symbol("cachedOriginSet"),wy=Symbol("gracefullyClosing"),Gnt=["maxDeflateDynamicTableSize","maxSessionMemory","maxHeaderListPairs","maxOutstandingPings","maxReservedRemoteStreams","maxSendHeaderBlockLength","paddingStrategy","localAddress","path","rejectUnauthorized","minDHSize","ca","cert","clientCertEngine","ciphers","key","pfx","servername","minVersion","maxVersion","secureProtocol","crl","honorCipherOrder","ecdhCurve","dhparam","secureOptions","sessionIdContext"],Wnt=(t,e,r)=>{let o=0,a=t.length;for(;o>>1;r(t[n],e)?o=n+1:a=n}return o},Ynt=(t,e)=>t.remoteSettings.maxConcurrentStreams>e.remoteSettings.maxConcurrentStreams,kU=(t,e)=>{for(let r of t)r[Jl].lengthe[Jl].includes(o))&&r[ea]+e[ea]<=e.remoteSettings.maxConcurrentStreams&&Tae(r)},Knt=(t,e)=>{for(let r of t)e[Jl].lengthr[Jl].includes(o))&&e[ea]+r[ea]<=r.remoteSettings.maxConcurrentStreams&&Tae(e)},Rae=({agent:t,isFree:e})=>{let r={};for(let o in t.sessions){let n=t.sessions[o].filter(u=>{let A=u[bg.kCurrentStreamsCount]{t[wy]=!0,t[ea]===0&&t.close()},bg=class t extends _nt{constructor({timeout:e=6e4,maxSessions:r=1/0,maxFreeSessions:o=10,maxCachedTlsSessions:a=100}={}){super(),this.sessions={},this.queue={},this.timeout=e,this.maxSessions=r,this.maxFreeSessions=o,this._freeSessionsCount=0,this._sessionsCount=0,this.settings={enablePush:!1},this.tlsSessionCache=new jnt({maxSize:a})}static normalizeOrigin(e,r){return typeof e=="string"&&(e=new URL(e)),r&&e.hostname!==r&&(e.hostname=r),e.origin}normalizeOptions(e){let r="";if(e)for(let o of Gnt)e[o]&&(r+=`:${e[o]}`);return r}_tryToCreateNewSession(e,r){if(!(e in this.queue)||!(r in this.queue[e]))return;let o=this.queue[e][r];this._sessionsCount{Array.isArray(o)?(o=[...o],a()):o=[{resolve:a,reject:n}];let u=this.normalizeOptions(r),A=t.normalizeOrigin(e,r&&r.servername);if(A===void 0){for(let{reject:E}of o)E(new TypeError("The `origin` argument needs to be a string or an URL object"));return}if(u in this.sessions){let E=this.sessions[u],w=-1,D=-1,x;for(let C of E){let T=C.remoteSettings.maxConcurrentStreams;if(T=T||C[wy]||C.destroyed)continue;x||(w=T),L>D&&(x=C,D=L)}}if(x){if(o.length!==1){for(let{reject:C}of o){let T=new Error(`Expected the length of listeners to be 1, got ${o.length}. +Please report this to https://github.com/szmarczak/http2-wrapper/`);C(T)}return}o[0].resolve(x);return}}if(u in this.queue){if(A in this.queue[u]){this.queue[u][A].listeners.push(...o),this._tryToCreateNewSession(u,A);return}}else this.queue[u]={};let p=()=>{u in this.queue&&this.queue[u][A]===h&&(delete this.queue[u][A],Object.keys(this.queue[u]).length===0&&delete this.queue[u])},h=()=>{let E=`${A}:${u}`,w=!1;try{let D=qnt.connect(e,{createConnection:this.createConnection,settings:this.settings,session:this.tlsSessionCache.get(E),...r});D[ea]=0,D[wy]=!1;let x=()=>D[ea]{this.tlsSessionCache.set(E,L)}),D.once("error",L=>{for(let{reject:U}of o)U(L);this.tlsSessionCache.delete(E)}),D.setTimeout(this.timeout,()=>{D.destroy()}),D.once("close",()=>{if(w){C&&this._freeSessionsCount--,this._sessionsCount--;let L=this.sessions[u];L.splice(L.indexOf(D),1),L.length===0&&delete this.sessions[u]}else{let L=new Error("Session closed without receiving a SETTINGS frame");L.code="HTTP2WRAPPER_NOSETTINGS";for(let{reject:U}of o)U(L);p()}this._tryToCreateNewSession(u,A)});let T=()=>{if(!(!(u in this.queue)||!x())){for(let L of D[Jl])if(L in this.queue[u]){let{listeners:U}=this.queue[u][L];for(;U.length!==0&&x();)U.shift().resolve(D);let J=this.queue[u];if(J[L].listeners.length===0&&(delete J[L],Object.keys(J).length===0)){delete this.queue[u];break}if(!x())break}}};D.on("origin",()=>{D[Jl]=D.originSet,x()&&(T(),kU(this.sessions[u],D))}),D.once("remoteSettings",()=>{if(D.ref(),D.unref(),this._sessionsCount++,h.destroyed){let L=new Error("Agent has been destroyed");for(let U of o)U.reject(L);D.destroy();return}D[Jl]=D.originSet;{let L=this.sessions;if(u in L){let U=L[u];U.splice(Wnt(U,D,Ynt),0,D)}else L[u]=[D]}this._freeSessionsCount+=1,w=!0,this.emit("session",D),T(),p(),D[ea]===0&&this._freeSessionsCount>this.maxFreeSessions&&D.close(),o.length!==0&&(this.getSession(A,r,o),o.length=0),D.on("remoteSettings",()=>{T(),kU(this.sessions[u],D)})}),D[Fae]=D.request,D.request=(L,U)=>{if(D[wy])throw new Error("The session is gracefully closing. No new streams are allowed.");let J=D[Fae](L,U);return D.ref(),++D[ea],D[ea]===D.remoteSettings.maxConcurrentStreams&&this._freeSessionsCount--,J.once("close",()=>{if(C=x(),--D[ea],!D.destroyed&&!D.closed&&(Knt(this.sessions[u],D),x()&&!D.closed)){C||(this._freeSessionsCount++,C=!0);let te=D[ea]===0;te&&D.unref(),te&&(this._freeSessionsCount>this.maxFreeSessions||D[wy])?D.close():(kU(this.sessions[u],D),T())}}),J}}catch(D){for(let x of o)x.reject(D);p()}};h.listeners=o,h.completed=!1,h.destroyed=!1,this.queue[u][A]=h,this._tryToCreateNewSession(u,A)})}request(e,r,o,a){return new Promise((n,u)=>{this.getSession(e,r,[{reject:u,resolve:A=>{try{n(A.request(o,a))}catch(p){u(p)}}}])})}createConnection(e,r){return t.connect(e,r)}static connect(e,r){r.ALPNProtocols=["h2"];let o=e.port||443,a=e.hostname||e.host;return typeof r.servername>"u"&&(r.servername=a),Hnt.connect(o,a,r)}closeFreeSessions(){for(let e of Object.values(this.sessions))for(let r of e)r[ea]===0&&r.close()}destroy(e){for(let r of Object.values(this.sessions))for(let o of r)o.destroy(e);for(let r of Object.values(this.queue))for(let o of Object.values(r))o.destroyed=!0;this.queue={}}get freeSessions(){return Rae({agent:this,isFree:!0})}get busySessions(){return Rae({agent:this,isFree:!1})}};bg.kCurrentStreamsCount=ea;bg.kGracefullyClosing=wy;Nae.exports={Agent:bg,globalAgent:new bg}});var RU=_((gLt,Lae)=>{"use strict";var{Readable:Vnt}=ve("stream"),FU=class extends Vnt{constructor(e,r){super({highWaterMark:r,autoDestroy:!1}),this.statusCode=null,this.statusMessage="",this.httpVersion="2.0",this.httpVersionMajor=2,this.httpVersionMinor=0,this.headers={},this.trailers={},this.req=null,this.aborted=!1,this.complete=!1,this.upgrade=null,this.rawHeaders=[],this.rawTrailers=[],this.socket=e,this.connection=e,this._dumped=!1}_destroy(e){this.req._request.destroy(e)}setTimeout(e,r){return this.req.setTimeout(e,r),this}_dump(){this._dumped||(this._dumped=!0,this.removeAllListeners("data"),this.resume())}_read(){this.req&&this.req._request.resume()}};Lae.exports=FU});var TU=_((dLt,Oae)=>{"use strict";Oae.exports=t=>{let e={protocol:t.protocol,hostname:typeof t.hostname=="string"&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return typeof t.port=="string"&&t.port.length!==0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var Uae=_((mLt,Mae)=>{"use strict";Mae.exports=(t,e,r)=>{for(let o of r)t.on(o,(...a)=>e.emit(o,...a))}});var Hae=_((yLt,_ae)=>{"use strict";_ae.exports=t=>{switch(t){case":method":case":scheme":case":authority":case":path":return!0;default:return!1}}});var jae=_((CLt,qae)=>{"use strict";var By=(t,e,r)=>{qae.exports[e]=class extends t{constructor(...a){super(typeof r=="string"?r:r(a)),this.name=`${super.name} [${e}]`,this.code=e}}};By(TypeError,"ERR_INVALID_ARG_TYPE",t=>{let e=t[0].includes(".")?"property":"argument",r=t[1],o=Array.isArray(r);return o&&(r=`${r.slice(0,-1).join(", ")} or ${r.slice(-1)}`),`The "${t[0]}" ${e} must be ${o?"one of":"of"} type ${r}. Received ${typeof t[2]}`});By(TypeError,"ERR_INVALID_PROTOCOL",t=>`Protocol "${t[0]}" not supported. Expected "${t[1]}"`);By(Error,"ERR_HTTP_HEADERS_SENT",t=>`Cannot ${t[0]} headers after they are sent to the client`);By(TypeError,"ERR_INVALID_HTTP_TOKEN",t=>`${t[0]} must be a valid HTTP token [${t[1]}]`);By(TypeError,"ERR_HTTP_INVALID_HEADER_VALUE",t=>`Invalid value "${t[0]} for header "${t[1]}"`);By(TypeError,"ERR_INVALID_CHAR",t=>`Invalid character in ${t[0]} [${t[1]}]`)});var UU=_((ILt,zae)=>{"use strict";var Jnt=ve("http2"),{Writable:znt}=ve("stream"),{Agent:Gae,globalAgent:Xnt}=QU(),Znt=RU(),$nt=TU(),eit=Uae(),tit=Hae(),{ERR_INVALID_ARG_TYPE:NU,ERR_INVALID_PROTOCOL:rit,ERR_HTTP_HEADERS_SENT:Wae,ERR_INVALID_HTTP_TOKEN:nit,ERR_HTTP_INVALID_HEADER_VALUE:iit,ERR_INVALID_CHAR:sit}=jae(),{HTTP2_HEADER_STATUS:Yae,HTTP2_HEADER_METHOD:Kae,HTTP2_HEADER_PATH:Vae,HTTP2_METHOD_CONNECT:oit}=Jnt.constants,vo=Symbol("headers"),LU=Symbol("origin"),OU=Symbol("session"),Jae=Symbol("options"),Lb=Symbol("flushedHeaders"),R1=Symbol("jobs"),ait=/^[\^`\-\w!#$%&*+.|~]+$/,lit=/[^\t\u0020-\u007E\u0080-\u00FF]/,MU=class extends znt{constructor(e,r,o){super({autoDestroy:!1});let a=typeof e=="string"||e instanceof URL;if(a&&(e=$nt(e instanceof URL?e:new URL(e))),typeof r=="function"||r===void 0?(o=r,r=a?e:{...e}):r={...e,...r},r.h2session)this[OU]=r.h2session;else if(r.agent===!1)this.agent=new Gae({maxFreeSessions:0});else if(typeof r.agent>"u"||r.agent===null)typeof r.createConnection=="function"?(this.agent=new Gae({maxFreeSessions:0}),this.agent.createConnection=r.createConnection):this.agent=Xnt;else if(typeof r.agent.request=="function")this.agent=r.agent;else throw new NU("options.agent",["Agent-like Object","undefined","false"],r.agent);if(r.protocol&&r.protocol!=="https:")throw new rit(r.protocol,"https:");let n=r.port||r.defaultPort||this.agent&&this.agent.defaultPort||443,u=r.hostname||r.host||"localhost";delete r.hostname,delete r.host,delete r.port;let{timeout:A}=r;if(r.timeout=void 0,this[vo]=Object.create(null),this[R1]=[],this.socket=null,this.connection=null,this.method=r.method||"GET",this.path=r.path,this.res=null,this.aborted=!1,this.reusedSocket=!1,r.headers)for(let[p,h]of Object.entries(r.headers))this.setHeader(p,h);r.auth&&!("authorization"in this[vo])&&(this[vo].authorization="Basic "+Buffer.from(r.auth).toString("base64")),r.session=r.tlsSession,r.path=r.socketPath,this[Jae]=r,n===443?(this[LU]=`https://${u}`,":authority"in this[vo]||(this[vo][":authority"]=u)):(this[LU]=`https://${u}:${n}`,":authority"in this[vo]||(this[vo][":authority"]=`${u}:${n}`)),A&&this.setTimeout(A),o&&this.once("response",o),this[Lb]=!1}get method(){return this[vo][Kae]}set method(e){e&&(this[vo][Kae]=e.toUpperCase())}get path(){return this[vo][Vae]}set path(e){e&&(this[vo][Vae]=e)}get _mustNotHaveABody(){return this.method==="GET"||this.method==="HEAD"||this.method==="DELETE"}_write(e,r,o){if(this._mustNotHaveABody){o(new Error("The GET, HEAD and DELETE methods must NOT have a body"));return}this.flushHeaders();let a=()=>this._request.write(e,r,o);this._request?a():this[R1].push(a)}_final(e){if(this.destroyed)return;this.flushHeaders();let r=()=>{if(this._mustNotHaveABody){e();return}this._request.end(e)};this._request?r():this[R1].push(r)}abort(){this.res&&this.res.complete||(this.aborted||process.nextTick(()=>this.emit("abort")),this.aborted=!0,this.destroy())}_destroy(e,r){this.res&&this.res._dump(),this._request&&this._request.destroy(),r(e)}async flushHeaders(){if(this[Lb]||this.destroyed)return;this[Lb]=!0;let e=this.method===oit,r=o=>{if(this._request=o,this.destroyed){o.destroy();return}e||eit(o,this,["timeout","continue","close","error"]);let a=u=>(...A)=>{!this.writable&&!this.destroyed?u(...A):this.once("finish",()=>{u(...A)})};o.once("response",a((u,A,p)=>{let h=new Znt(this.socket,o.readableHighWaterMark);this.res=h,h.req=this,h.statusCode=u[Yae],h.headers=u,h.rawHeaders=p,h.once("end",()=>{this.aborted?(h.aborted=!0,h.emit("aborted")):(h.complete=!0,h.socket=null,h.connection=null)}),e?(h.upgrade=!0,this.emit("connect",h,o,Buffer.alloc(0))?this.emit("close"):o.destroy()):(o.on("data",E=>{!h._dumped&&!h.push(E)&&o.pause()}),o.once("end",()=>{h.push(null)}),this.emit("response",h)||h._dump())})),o.once("headers",a(u=>this.emit("information",{statusCode:u[Yae]}))),o.once("trailers",a((u,A,p)=>{let{res:h}=this;h.trailers=u,h.rawTrailers=p}));let{socket:n}=o.session;this.socket=n,this.connection=n;for(let u of this[R1])u();this.emit("socket",this.socket)};if(this[OU])try{r(this[OU].request(this[vo]))}catch(o){this.emit("error",o)}else{this.reusedSocket=!0;try{r(await this.agent.request(this[LU],this[Jae],this[vo]))}catch(o){this.emit("error",o)}}}getHeader(e){if(typeof e!="string")throw new NU("name","string",e);return this[vo][e.toLowerCase()]}get headersSent(){return this[Lb]}removeHeader(e){if(typeof e!="string")throw new NU("name","string",e);if(this.headersSent)throw new Wae("remove");delete this[vo][e.toLowerCase()]}setHeader(e,r){if(this.headersSent)throw new Wae("set");if(typeof e!="string"||!ait.test(e)&&!tit(e))throw new nit("Header name",e);if(typeof r>"u")throw new iit(r,e);if(lit.test(r))throw new sit("header content",e);this[vo][e.toLowerCase()]=r}setNoDelay(){}setSocketKeepAlive(){}setTimeout(e,r){let o=()=>this._request.setTimeout(e,r);return this._request?o():this[R1].push(o),this}get maxHeadersCount(){if(!this.destroyed&&this._request)return this._request.session.localSettings.maxHeaderListSize}set maxHeadersCount(e){}};zae.exports=MU});var Zae=_((wLt,Xae)=>{"use strict";var cit=ve("tls");Xae.exports=(t={},e=cit.connect)=>new Promise((r,o)=>{let a=!1,n,u=async()=>{await p,n.off("timeout",A),n.off("error",o),t.resolveSocket?(r({alpnProtocol:n.alpnProtocol,socket:n,timeout:a}),a&&(await Promise.resolve(),n.emit("timeout"))):(n.destroy(),r({alpnProtocol:n.alpnProtocol,timeout:a}))},A=async()=>{a=!0,u()},p=(async()=>{try{n=await e(t,u),n.on("error",o),n.once("timeout",A)}catch(h){o(h)}})()})});var ele=_((BLt,$ae)=>{"use strict";var uit=ve("net");$ae.exports=t=>{let e=t.host,r=t.headers&&t.headers.host;return r&&(r.startsWith("[")?r.indexOf("]")===-1?e=r:e=r.slice(1,-1):e=r.split(":",1)[0]),uit.isIP(e)?"":e}});var nle=_((vLt,HU)=>{"use strict";var tle=ve("http"),_U=ve("https"),Ait=Zae(),fit=xU(),pit=UU(),hit=ele(),git=TU(),Ob=new fit({maxSize:100}),T1=new Map,rle=(t,e,r)=>{e._httpMessage={shouldKeepAlive:!0};let o=()=>{t.emit("free",e,r)};e.on("free",o);let a=()=>{t.removeSocket(e,r)};e.on("close",a);let n=()=>{t.removeSocket(e,r),e.off("close",a),e.off("free",o),e.off("agentRemove",n)};e.on("agentRemove",n),t.emit("free",e,r)},dit=async t=>{let e=`${t.host}:${t.port}:${t.ALPNProtocols.sort()}`;if(!Ob.has(e)){if(T1.has(e))return(await T1.get(e)).alpnProtocol;let{path:r,agent:o}=t;t.path=t.socketPath;let a=Ait(t);T1.set(e,a);try{let{socket:n,alpnProtocol:u}=await a;if(Ob.set(e,u),t.path=r,u==="h2")n.destroy();else{let{globalAgent:A}=_U,p=_U.Agent.prototype.createConnection;o?o.createConnection===p?rle(o,n,t):n.destroy():A.createConnection===p?rle(A,n,t):n.destroy()}return T1.delete(e),u}catch(n){throw T1.delete(e),n}}return Ob.get(e)};HU.exports=async(t,e,r)=>{if((typeof t=="string"||t instanceof URL)&&(t=git(new URL(t))),typeof e=="function"&&(r=e,e=void 0),e={ALPNProtocols:["h2","http/1.1"],...t,...e,resolveSocket:!0},!Array.isArray(e.ALPNProtocols)||e.ALPNProtocols.length===0)throw new Error("The `ALPNProtocols` option must be an Array with at least one entry");e.protocol=e.protocol||"https:";let o=e.protocol==="https:";e.host=e.hostname||e.host||"localhost",e.session=e.tlsSession,e.servername=e.servername||hit(e),e.port=e.port||(o?443:80),e._defaultAgent=o?_U.globalAgent:tle.globalAgent;let a=e.agent;if(a){if(a.addRequest)throw new Error("The `options.agent` object can contain only `http`, `https` or `http2` properties");e.agent=a[o?"https":"http"]}return o&&await dit(e)==="h2"?(a&&(e.agent=a.http2),new pit(e,r)):tle.request(e,r)};HU.exports.protocolCache=Ob});var sle=_((DLt,ile)=>{"use strict";var mit=ve("http2"),yit=QU(),qU=UU(),Eit=RU(),Cit=nle(),Iit=(t,e,r)=>new qU(t,e,r),wit=(t,e,r)=>{let o=new qU(t,e,r);return o.end(),o};ile.exports={...mit,ClientRequest:qU,IncomingMessage:Eit,...yit,request:Iit,get:wit,auto:Cit}});var GU=_(jU=>{"use strict";Object.defineProperty(jU,"__esModule",{value:!0});var ole=Ff();jU.default=t=>ole.default.nodeStream(t)&&ole.default.function_(t.getBoundary)});var ule=_(WU=>{"use strict";Object.defineProperty(WU,"__esModule",{value:!0});var lle=ve("fs"),cle=ve("util"),ale=Ff(),Bit=GU(),vit=cle.promisify(lle.stat);WU.default=async(t,e)=>{if(e&&"content-length"in e)return Number(e["content-length"]);if(!t)return 0;if(ale.default.string(t))return Buffer.byteLength(t);if(ale.default.buffer(t))return t.length;if(Bit.default(t))return cle.promisify(t.getLength.bind(t))();if(t instanceof lle.ReadStream){let{size:r}=await vit(t.path);return r===0?void 0:r}}});var KU=_(YU=>{"use strict";Object.defineProperty(YU,"__esModule",{value:!0});function Dit(t,e,r){let o={};for(let a of r)o[a]=(...n)=>{e.emit(a,...n)},t.on(a,o[a]);return()=>{for(let a of r)t.off(a,o[a])}}YU.default=Dit});var Ale=_(VU=>{"use strict";Object.defineProperty(VU,"__esModule",{value:!0});VU.default=()=>{let t=[];return{once(e,r,o){e.once(r,o),t.push({origin:e,event:r,fn:o})},unhandleAll(){for(let e of t){let{origin:r,event:o,fn:a}=e;r.removeListener(o,a)}t.length=0}}}});var ple=_(N1=>{"use strict";Object.defineProperty(N1,"__esModule",{value:!0});N1.TimeoutError=void 0;var Pit=ve("net"),Sit=Ale(),fle=Symbol("reentry"),bit=()=>{},Mb=class extends Error{constructor(e,r){super(`Timeout awaiting '${r}' for ${e}ms`),this.event=r,this.name="TimeoutError",this.code="ETIMEDOUT"}};N1.TimeoutError=Mb;N1.default=(t,e,r)=>{if(fle in t)return bit;t[fle]=!0;let o=[],{once:a,unhandleAll:n}=Sit.default(),u=(w,D,x)=>{var C;let T=setTimeout(D,w,w,x);(C=T.unref)===null||C===void 0||C.call(T);let L=()=>{clearTimeout(T)};return o.push(L),L},{host:A,hostname:p}=r,h=(w,D)=>{t.destroy(new Mb(w,D))},E=()=>{for(let w of o)w();n()};if(t.once("error",w=>{if(E(),t.listenerCount("error")===0)throw w}),t.once("close",E),a(t,"response",w=>{a(w,"end",E)}),typeof e.request<"u"&&u(e.request,h,"request"),typeof e.socket<"u"){let w=()=>{h(e.socket,"socket")};t.setTimeout(e.socket,w),o.push(()=>{t.removeListener("timeout",w)})}return a(t,"socket",w=>{var D;let{socketPath:x}=t;if(w.connecting){let C=!!(x??Pit.isIP((D=p??A)!==null&&D!==void 0?D:"")!==0);if(typeof e.lookup<"u"&&!C&&typeof w.address().address>"u"){let T=u(e.lookup,h,"lookup");a(w,"lookup",T)}if(typeof e.connect<"u"){let T=()=>u(e.connect,h,"connect");C?a(w,"connect",T()):a(w,"lookup",L=>{L===null&&a(w,"connect",T())})}typeof e.secureConnect<"u"&&r.protocol==="https:"&&a(w,"connect",()=>{let T=u(e.secureConnect,h,"secureConnect");a(w,"secureConnect",T)})}if(typeof e.send<"u"){let C=()=>u(e.send,h,"send");w.connecting?a(w,"connect",()=>{a(t,"upload-complete",C())}):a(t,"upload-complete",C())}}),typeof e.response<"u"&&a(t,"upload-complete",()=>{let w=u(e.response,h,"response");a(t,"response",w)}),E}});var gle=_(JU=>{"use strict";Object.defineProperty(JU,"__esModule",{value:!0});var hle=Ff();JU.default=t=>{t=t;let e={protocol:t.protocol,hostname:hle.default.string(t.hostname)&&t.hostname.startsWith("[")?t.hostname.slice(1,-1):t.hostname,host:t.host,hash:t.hash,search:t.search,pathname:t.pathname,href:t.href,path:`${t.pathname||""}${t.search||""}`};return hle.default.string(t.port)&&t.port.length>0&&(e.port=Number(t.port)),(t.username||t.password)&&(e.auth=`${t.username||""}:${t.password||""}`),e}});var dle=_(zU=>{"use strict";Object.defineProperty(zU,"__esModule",{value:!0});var xit=ve("url"),kit=["protocol","host","hostname","port","pathname","search"];zU.default=(t,e)=>{var r,o;if(e.path){if(e.pathname)throw new TypeError("Parameters `path` and `pathname` are mutually exclusive.");if(e.search)throw new TypeError("Parameters `path` and `search` are mutually exclusive.");if(e.searchParams)throw new TypeError("Parameters `path` and `searchParams` are mutually exclusive.")}if(e.search&&e.searchParams)throw new TypeError("Parameters `search` and `searchParams` are mutually exclusive.");if(!t){if(!e.protocol)throw new TypeError("No URL protocol specified");t=`${e.protocol}//${(o=(r=e.hostname)!==null&&r!==void 0?r:e.host)!==null&&o!==void 0?o:""}`}let a=new xit.URL(t);if(e.path){let n=e.path.indexOf("?");n===-1?e.pathname=e.path:(e.pathname=e.path.slice(0,n),e.search=e.path.slice(n+1)),delete e.path}for(let n of kit)e[n]&&(a[n]=e[n].toString());return a}});var mle=_(ZU=>{"use strict";Object.defineProperty(ZU,"__esModule",{value:!0});var XU=class{constructor(){this.weakMap=new WeakMap,this.map=new Map}set(e,r){typeof e=="object"?this.weakMap.set(e,r):this.map.set(e,r)}get(e){return typeof e=="object"?this.weakMap.get(e):this.map.get(e)}has(e){return typeof e=="object"?this.weakMap.has(e):this.map.has(e)}};ZU.default=XU});var e4=_($U=>{"use strict";Object.defineProperty($U,"__esModule",{value:!0});var Qit=async t=>{let e=[],r=0;for await(let o of t)e.push(o),r+=Buffer.byteLength(o);return Buffer.isBuffer(e[0])?Buffer.concat(e,r):Buffer.from(e.join(""))};$U.default=Qit});var Ele=_(xg=>{"use strict";Object.defineProperty(xg,"__esModule",{value:!0});xg.dnsLookupIpVersionToFamily=xg.isDnsLookupIpVersion=void 0;var yle={auto:0,ipv4:4,ipv6:6};xg.isDnsLookupIpVersion=t=>t in yle;xg.dnsLookupIpVersionToFamily=t=>{if(xg.isDnsLookupIpVersion(t))return yle[t];throw new Error("Invalid DNS lookup IP version")}});var t4=_(Ub=>{"use strict";Object.defineProperty(Ub,"__esModule",{value:!0});Ub.isResponseOk=void 0;Ub.isResponseOk=t=>{let{statusCode:e}=t,r=t.request.options.followRedirect?299:399;return e>=200&&e<=r||e===304}});var Ile=_(r4=>{"use strict";Object.defineProperty(r4,"__esModule",{value:!0});var Cle=new Set;r4.default=t=>{Cle.has(t)||(Cle.add(t),process.emitWarning(`Got: ${t}`,{type:"DeprecationWarning"}))}});var wle=_(n4=>{"use strict";Object.defineProperty(n4,"__esModule",{value:!0});var mi=Ff(),Fit=(t,e)=>{if(mi.default.null_(t.encoding))throw new TypeError("To get a Buffer, set `options.responseType` to `buffer` instead");mi.assert.any([mi.default.string,mi.default.undefined],t.encoding),mi.assert.any([mi.default.boolean,mi.default.undefined],t.resolveBodyOnly),mi.assert.any([mi.default.boolean,mi.default.undefined],t.methodRewriting),mi.assert.any([mi.default.boolean,mi.default.undefined],t.isStream),mi.assert.any([mi.default.string,mi.default.undefined],t.responseType),t.responseType===void 0&&(t.responseType="text");let{retry:r}=t;if(e?t.retry={...e.retry}:t.retry={calculateDelay:o=>o.computedValue,limit:0,methods:[],statusCodes:[],errorCodes:[],maxRetryAfter:void 0},mi.default.object(r)?(t.retry={...t.retry,...r},t.retry.methods=[...new Set(t.retry.methods.map(o=>o.toUpperCase()))],t.retry.statusCodes=[...new Set(t.retry.statusCodes)],t.retry.errorCodes=[...new Set(t.retry.errorCodes)]):mi.default.number(r)&&(t.retry.limit=r),mi.default.undefined(t.retry.maxRetryAfter)&&(t.retry.maxRetryAfter=Math.min(...[t.timeout.request,t.timeout.connect].filter(mi.default.number))),mi.default.object(t.pagination)){e&&(t.pagination={...e.pagination,...t.pagination});let{pagination:o}=t;if(!mi.default.function_(o.transform))throw new Error("`options.pagination.transform` must be implemented");if(!mi.default.function_(o.shouldContinue))throw new Error("`options.pagination.shouldContinue` must be implemented");if(!mi.default.function_(o.filter))throw new TypeError("`options.pagination.filter` must be implemented");if(!mi.default.function_(o.paginate))throw new Error("`options.pagination.paginate` must be implemented")}return t.responseType==="json"&&t.headers.accept===void 0&&(t.headers.accept="application/json"),t};n4.default=Fit});var Ble=_(L1=>{"use strict";Object.defineProperty(L1,"__esModule",{value:!0});L1.retryAfterStatusCodes=void 0;L1.retryAfterStatusCodes=new Set([413,429,503]);var Rit=({attemptCount:t,retryOptions:e,error:r,retryAfter:o})=>{if(t>e.limit)return 0;let a=e.methods.includes(r.options.method),n=e.errorCodes.includes(r.code),u=r.response&&e.statusCodes.includes(r.response.statusCode);if(!a||!n&&!u)return 0;if(r.response){if(o)return e.maxRetryAfter===void 0||o>e.maxRetryAfter?0:o;if(r.response.statusCode===413)return 0}let A=Math.random()*100;return 2**(t-1)*1e3+A};L1.default=Rit});var U1=_(Qn=>{"use strict";Object.defineProperty(Qn,"__esModule",{value:!0});Qn.UnsupportedProtocolError=Qn.ReadError=Qn.TimeoutError=Qn.UploadError=Qn.CacheError=Qn.HTTPError=Qn.MaxRedirectsError=Qn.RequestError=Qn.setNonEnumerableProperties=Qn.knownHookEvents=Qn.withoutBody=Qn.kIsNormalizedAlready=void 0;var vle=ve("util"),Dle=ve("stream"),Tit=ve("fs"),uh=ve("url"),Ple=ve("http"),i4=ve("http"),Nit=ve("https"),Lit=_oe(),Oit=Koe(),Sle=Pae(),Mit=kae(),Uit=sle(),_it=Tb(),at=Ff(),Hit=ule(),ble=GU(),qit=KU(),xle=ple(),jit=gle(),kle=dle(),Git=mle(),Wit=e4(),Qle=Ele(),Yit=t4(),Ah=Ile(),Kit=wle(),Vit=Ble(),s4,Ys=Symbol("request"),qb=Symbol("response"),vy=Symbol("responseSize"),Dy=Symbol("downloadedSize"),Py=Symbol("bodySize"),Sy=Symbol("uploadedSize"),_b=Symbol("serverResponsesPiped"),Fle=Symbol("unproxyEvents"),Rle=Symbol("isFromCache"),o4=Symbol("cancelTimeouts"),Tle=Symbol("startedReading"),by=Symbol("stopReading"),Hb=Symbol("triggerRead"),fh=Symbol("body"),O1=Symbol("jobs"),Nle=Symbol("originalResponse"),Lle=Symbol("retryTimeout");Qn.kIsNormalizedAlready=Symbol("isNormalizedAlready");var Jit=at.default.string(process.versions.brotli);Qn.withoutBody=new Set(["GET","HEAD"]);Qn.knownHookEvents=["init","beforeRequest","beforeRedirect","beforeError","beforeRetry","afterResponse"];function zit(t){for(let e in t){let r=t[e];if(!at.default.string(r)&&!at.default.number(r)&&!at.default.boolean(r)&&!at.default.null_(r)&&!at.default.undefined(r))throw new TypeError(`The \`searchParams\` value '${String(r)}' must be a string, number, boolean or null`)}}function Xit(t){return at.default.object(t)&&!("statusCode"in t)}var a4=new Git.default,Zit=async t=>new Promise((e,r)=>{let o=a=>{r(a)};t.pending||e(),t.once("error",o),t.once("ready",()=>{t.off("error",o),e()})}),$it=new Set([300,301,302,303,304,307,308]),est=["context","body","json","form"];Qn.setNonEnumerableProperties=(t,e)=>{let r={};for(let o of t)if(o)for(let a of est)a in o&&(r[a]={writable:!0,configurable:!0,enumerable:!1,value:o[a]});Object.defineProperties(e,r)};var zi=class extends Error{constructor(e,r,o){var a;if(super(e),Error.captureStackTrace(this,this.constructor),this.name="RequestError",this.code=r.code,o instanceof Jb?(Object.defineProperty(this,"request",{enumerable:!1,value:o}),Object.defineProperty(this,"response",{enumerable:!1,value:o[qb]}),Object.defineProperty(this,"options",{enumerable:!1,value:o.options})):Object.defineProperty(this,"options",{enumerable:!1,value:o}),this.timings=(a=this.request)===null||a===void 0?void 0:a.timings,at.default.string(r.stack)&&at.default.string(this.stack)){let n=this.stack.indexOf(this.message)+this.message.length,u=this.stack.slice(n).split(` +`).reverse(),A=r.stack.slice(r.stack.indexOf(r.message)+r.message.length).split(` +`).reverse();for(;A.length!==0&&A[0]===u[0];)u.shift();this.stack=`${this.stack.slice(0,n)}${u.reverse().join(` +`)}${A.reverse().join(` +`)}`}}};Qn.RequestError=zi;var jb=class extends zi{constructor(e){super(`Redirected ${e.options.maxRedirects} times. Aborting.`,{},e),this.name="MaxRedirectsError"}};Qn.MaxRedirectsError=jb;var Gb=class extends zi{constructor(e){super(`Response code ${e.statusCode} (${e.statusMessage})`,{},e.request),this.name="HTTPError"}};Qn.HTTPError=Gb;var Wb=class extends zi{constructor(e,r){super(e.message,e,r),this.name="CacheError"}};Qn.CacheError=Wb;var Yb=class extends zi{constructor(e,r){super(e.message,e,r),this.name="UploadError"}};Qn.UploadError=Yb;var Kb=class extends zi{constructor(e,r,o){super(e.message,e,o),this.name="TimeoutError",this.event=e.event,this.timings=r}};Qn.TimeoutError=Kb;var M1=class extends zi{constructor(e,r){super(e.message,e,r),this.name="ReadError"}};Qn.ReadError=M1;var Vb=class extends zi{constructor(e){super(`Unsupported protocol "${e.url.protocol}"`,{},e),this.name="UnsupportedProtocolError"}};Qn.UnsupportedProtocolError=Vb;var tst=["socket","connect","continue","information","upgrade","timeout"],Jb=class extends Dle.Duplex{constructor(e,r={},o){super({autoDestroy:!1,highWaterMark:0}),this[Dy]=0,this[Sy]=0,this.requestInitialized=!1,this[_b]=new Set,this.redirects=[],this[by]=!1,this[Hb]=!1,this[O1]=[],this.retryCount=0,this._progressCallbacks=[];let a=()=>this._unlockWrite(),n=()=>this._lockWrite();this.on("pipe",h=>{h.prependListener("data",a),h.on("data",n),h.prependListener("end",a),h.on("end",n)}),this.on("unpipe",h=>{h.off("data",a),h.off("data",n),h.off("end",a),h.off("end",n)}),this.on("pipe",h=>{h instanceof i4.IncomingMessage&&(this.options.headers={...h.headers,...this.options.headers})});let{json:u,body:A,form:p}=r;if((u||A||p)&&this._lockWrite(),Qn.kIsNormalizedAlready in r)this.options=r;else try{this.options=this.constructor.normalizeArguments(e,r,o)}catch(h){at.default.nodeStream(r.body)&&r.body.destroy(),this.destroy(h);return}(async()=>{var h;try{this.options.body instanceof Tit.ReadStream&&await Zit(this.options.body);let{url:E}=this.options;if(!E)throw new TypeError("Missing `url` property");if(this.requestUrl=E.toString(),decodeURI(this.requestUrl),await this._finalizeBody(),await this._makeRequest(),this.destroyed){(h=this[Ys])===null||h===void 0||h.destroy();return}for(let w of this[O1])w();this[O1].length=0,this.requestInitialized=!0}catch(E){if(E instanceof zi){this._beforeError(E);return}this.destroyed||this.destroy(E)}})()}static normalizeArguments(e,r,o){var a,n,u,A,p;let h=r;if(at.default.object(e)&&!at.default.urlInstance(e))r={...o,...e,...r};else{if(e&&r&&r.url!==void 0)throw new TypeError("The `url` option is mutually exclusive with the `input` argument");r={...o,...r},e!==void 0&&(r.url=e),at.default.urlInstance(r.url)&&(r.url=new uh.URL(r.url.toString()))}if(r.cache===!1&&(r.cache=void 0),r.dnsCache===!1&&(r.dnsCache=void 0),at.assert.any([at.default.string,at.default.undefined],r.method),at.assert.any([at.default.object,at.default.undefined],r.headers),at.assert.any([at.default.string,at.default.urlInstance,at.default.undefined],r.prefixUrl),at.assert.any([at.default.object,at.default.undefined],r.cookieJar),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.searchParams),at.assert.any([at.default.object,at.default.string,at.default.undefined],r.cache),at.assert.any([at.default.object,at.default.number,at.default.undefined],r.timeout),at.assert.any([at.default.object,at.default.undefined],r.context),at.assert.any([at.default.object,at.default.undefined],r.hooks),at.assert.any([at.default.boolean,at.default.undefined],r.decompress),at.assert.any([at.default.boolean,at.default.undefined],r.ignoreInvalidCookies),at.assert.any([at.default.boolean,at.default.undefined],r.followRedirect),at.assert.any([at.default.number,at.default.undefined],r.maxRedirects),at.assert.any([at.default.boolean,at.default.undefined],r.throwHttpErrors),at.assert.any([at.default.boolean,at.default.undefined],r.http2),at.assert.any([at.default.boolean,at.default.undefined],r.allowGetBody),at.assert.any([at.default.string,at.default.undefined],r.localAddress),at.assert.any([Qle.isDnsLookupIpVersion,at.default.undefined],r.dnsLookupIpVersion),at.assert.any([at.default.object,at.default.undefined],r.https),at.assert.any([at.default.boolean,at.default.undefined],r.rejectUnauthorized),r.https&&(at.assert.any([at.default.boolean,at.default.undefined],r.https.rejectUnauthorized),at.assert.any([at.default.function_,at.default.undefined],r.https.checkServerIdentity),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificateAuthority),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.key),at.assert.any([at.default.string,at.default.object,at.default.array,at.default.undefined],r.https.certificate),at.assert.any([at.default.string,at.default.undefined],r.https.passphrase),at.assert.any([at.default.string,at.default.buffer,at.default.array,at.default.undefined],r.https.pfx)),at.assert.any([at.default.object,at.default.undefined],r.cacheOptions),at.default.string(r.method)?r.method=r.method.toUpperCase():r.method="GET",r.headers===o?.headers?r.headers={...r.headers}:r.headers=_it({...o?.headers,...r.headers}),"slashes"in r)throw new TypeError("The legacy `url.Url` has been deprecated. Use `URL` instead.");if("auth"in r)throw new TypeError("Parameter `auth` is deprecated. Use `username` / `password` instead.");if("searchParams"in r&&r.searchParams&&r.searchParams!==o?.searchParams){let x;if(at.default.string(r.searchParams)||r.searchParams instanceof uh.URLSearchParams)x=new uh.URLSearchParams(r.searchParams);else{zit(r.searchParams),x=new uh.URLSearchParams;for(let C in r.searchParams){let T=r.searchParams[C];T===null?x.append(C,""):T!==void 0&&x.append(C,T)}}(a=o?.searchParams)===null||a===void 0||a.forEach((C,T)=>{x.has(T)||x.append(T,C)}),r.searchParams=x}if(r.username=(n=r.username)!==null&&n!==void 0?n:"",r.password=(u=r.password)!==null&&u!==void 0?u:"",at.default.undefined(r.prefixUrl)?r.prefixUrl=(A=o?.prefixUrl)!==null&&A!==void 0?A:"":(r.prefixUrl=r.prefixUrl.toString(),r.prefixUrl!==""&&!r.prefixUrl.endsWith("/")&&(r.prefixUrl+="/")),at.default.string(r.url)){if(r.url.startsWith("/"))throw new Error("`input` must not start with a slash when using `prefixUrl`");r.url=kle.default(r.prefixUrl+r.url,r)}else(at.default.undefined(r.url)&&r.prefixUrl!==""||r.protocol)&&(r.url=kle.default(r.prefixUrl,r));if(r.url){"port"in r&&delete r.port;let{prefixUrl:x}=r;Object.defineProperty(r,"prefixUrl",{set:T=>{let L=r.url;if(!L.href.startsWith(T))throw new Error(`Cannot change \`prefixUrl\` from ${x} to ${T}: ${L.href}`);r.url=new uh.URL(T+L.href.slice(x.length)),x=T},get:()=>x});let{protocol:C}=r.url;if(C==="unix:"&&(C="http:",r.url=new uh.URL(`http://unix${r.url.pathname}${r.url.search}`)),r.searchParams&&(r.url.search=r.searchParams.toString()),C!=="http:"&&C!=="https:")throw new Vb(r);r.username===""?r.username=r.url.username:r.url.username=r.username,r.password===""?r.password=r.url.password:r.url.password=r.password}let{cookieJar:E}=r;if(E){let{setCookie:x,getCookieString:C}=E;at.assert.function_(x),at.assert.function_(C),x.length===4&&C.length===0&&(x=vle.promisify(x.bind(r.cookieJar)),C=vle.promisify(C.bind(r.cookieJar)),r.cookieJar={setCookie:x,getCookieString:C})}let{cache:w}=r;if(w&&(a4.has(w)||a4.set(w,new Sle((x,C)=>{let T=x[Ys](x,C);return at.default.promise(T)&&(T.once=(L,U)=>{if(L==="error")T.catch(U);else if(L==="abort")(async()=>{try{(await T).once("abort",U)}catch{}})();else throw new Error(`Unknown HTTP2 promise event: ${L}`);return T}),T},w))),r.cacheOptions={...r.cacheOptions},r.dnsCache===!0)s4||(s4=new Oit.default),r.dnsCache=s4;else if(!at.default.undefined(r.dnsCache)&&!r.dnsCache.lookup)throw new TypeError(`Parameter \`dnsCache\` must be a CacheableLookup instance or a boolean, got ${at.default(r.dnsCache)}`);at.default.number(r.timeout)?r.timeout={request:r.timeout}:o&&r.timeout!==o.timeout?r.timeout={...o.timeout,...r.timeout}:r.timeout={...r.timeout},r.context||(r.context={});let D=r.hooks===o?.hooks;r.hooks={...r.hooks};for(let x of Qn.knownHookEvents)if(x in r.hooks)if(at.default.array(r.hooks[x]))r.hooks[x]=[...r.hooks[x]];else throw new TypeError(`Parameter \`${x}\` must be an Array, got ${at.default(r.hooks[x])}`);else r.hooks[x]=[];if(o&&!D)for(let x of Qn.knownHookEvents)o.hooks[x].length>0&&(r.hooks[x]=[...o.hooks[x],...r.hooks[x]]);if("family"in r&&Ah.default('"options.family" was never documented, please use "options.dnsLookupIpVersion"'),o?.https&&(r.https={...o.https,...r.https}),"rejectUnauthorized"in r&&Ah.default('"options.rejectUnauthorized" is now deprecated, please use "options.https.rejectUnauthorized"'),"checkServerIdentity"in r&&Ah.default('"options.checkServerIdentity" was never documented, please use "options.https.checkServerIdentity"'),"ca"in r&&Ah.default('"options.ca" was never documented, please use "options.https.certificateAuthority"'),"key"in r&&Ah.default('"options.key" was never documented, please use "options.https.key"'),"cert"in r&&Ah.default('"options.cert" was never documented, please use "options.https.certificate"'),"passphrase"in r&&Ah.default('"options.passphrase" was never documented, please use "options.https.passphrase"'),"pfx"in r&&Ah.default('"options.pfx" was never documented, please use "options.https.pfx"'),"followRedirects"in r)throw new TypeError("The `followRedirects` option does not exist. Use `followRedirect` instead.");if(r.agent){for(let x in r.agent)if(x!=="http"&&x!=="https"&&x!=="http2")throw new TypeError(`Expected the \`options.agent\` properties to be \`http\`, \`https\` or \`http2\`, got \`${x}\``)}return r.maxRedirects=(p=r.maxRedirects)!==null&&p!==void 0?p:0,Qn.setNonEnumerableProperties([o,h],r),Kit.default(r,o)}_lockWrite(){let e=()=>{throw new TypeError("The payload has been already provided")};this.write=e,this.end=e}_unlockWrite(){this.write=super.write,this.end=super.end}async _finalizeBody(){let{options:e}=this,{headers:r}=e,o=!at.default.undefined(e.form),a=!at.default.undefined(e.json),n=!at.default.undefined(e.body),u=o||a||n,A=Qn.withoutBody.has(e.method)&&!(e.method==="GET"&&e.allowGetBody);if(this._cannotHaveBody=A,u){if(A)throw new TypeError(`The \`${e.method}\` method cannot be used with a body`);if([n,o,a].filter(p=>p).length>1)throw new TypeError("The `body`, `json` and `form` options are mutually exclusive");if(n&&!(e.body instanceof Dle.Readable)&&!at.default.string(e.body)&&!at.default.buffer(e.body)&&!ble.default(e.body))throw new TypeError("The `body` option must be a stream.Readable, string or Buffer");if(o&&!at.default.object(e.form))throw new TypeError("The `form` option must be an Object");{let p=!at.default.string(r["content-type"]);n?(ble.default(e.body)&&p&&(r["content-type"]=`multipart/form-data; boundary=${e.body.getBoundary()}`),this[fh]=e.body):o?(p&&(r["content-type"]="application/x-www-form-urlencoded"),this[fh]=new uh.URLSearchParams(e.form).toString()):(p&&(r["content-type"]="application/json"),this[fh]=e.stringifyJson(e.json));let h=await Hit.default(this[fh],e.headers);at.default.undefined(r["content-length"])&&at.default.undefined(r["transfer-encoding"])&&!A&&!at.default.undefined(h)&&(r["content-length"]=String(h))}}else A?this._lockWrite():this._unlockWrite();this[Py]=Number(r["content-length"])||void 0}async _onResponseBase(e){let{options:r}=this,{url:o}=r;this[Nle]=e,r.decompress&&(e=Mit(e));let a=e.statusCode,n=e;n.statusMessage=n.statusMessage?n.statusMessage:Ple.STATUS_CODES[a],n.url=r.url.toString(),n.requestUrl=this.requestUrl,n.redirectUrls=this.redirects,n.request=this,n.isFromCache=e.fromCache||!1,n.ip=this.ip,n.retryCount=this.retryCount,this[Rle]=n.isFromCache,this[vy]=Number(e.headers["content-length"])||void 0,this[qb]=e,e.once("end",()=>{this[vy]=this[Dy],this.emit("downloadProgress",this.downloadProgress)}),e.once("error",A=>{e.destroy(),this._beforeError(new M1(A,this))}),e.once("aborted",()=>{this._beforeError(new M1({name:"Error",message:"The server aborted pending request",code:"ECONNRESET"},this))}),this.emit("downloadProgress",this.downloadProgress);let u=e.headers["set-cookie"];if(at.default.object(r.cookieJar)&&u){let A=u.map(async p=>r.cookieJar.setCookie(p,o.toString()));r.ignoreInvalidCookies&&(A=A.map(async p=>p.catch(()=>{})));try{await Promise.all(A)}catch(p){this._beforeError(p);return}}if(r.followRedirect&&e.headers.location&&$it.has(a)){if(e.resume(),this[Ys]&&(this[o4](),delete this[Ys],this[Fle]()),(a===303&&r.method!=="GET"&&r.method!=="HEAD"||!r.methodRewriting)&&(r.method="GET","body"in r&&delete r.body,"json"in r&&delete r.json,"form"in r&&delete r.form,this[fh]=void 0,delete r.headers["content-length"]),this.redirects.length>=r.maxRedirects){this._beforeError(new jb(this));return}try{let p=Buffer.from(e.headers.location,"binary").toString(),h=new uh.URL(p,o),E=h.toString();decodeURI(E),h.hostname!==o.hostname||h.port!==o.port?("host"in r.headers&&delete r.headers.host,"cookie"in r.headers&&delete r.headers.cookie,"authorization"in r.headers&&delete r.headers.authorization,(r.username||r.password)&&(r.username="",r.password="")):(h.username=r.username,h.password=r.password),this.redirects.push(E),r.url=h;for(let w of r.hooks.beforeRedirect)await w(r,n);this.emit("redirect",n,r),await this._makeRequest()}catch(p){this._beforeError(p);return}return}if(r.isStream&&r.throwHttpErrors&&!Yit.isResponseOk(n)){this._beforeError(new Gb(n));return}e.on("readable",()=>{this[Hb]&&this._read()}),this.on("resume",()=>{e.resume()}),this.on("pause",()=>{e.pause()}),e.once("end",()=>{this.push(null)}),this.emit("response",e);for(let A of this[_b])if(!A.headersSent){for(let p in e.headers){let h=r.decompress?p!=="content-encoding":!0,E=e.headers[p];h&&A.setHeader(p,E)}A.statusCode=a}}async _onResponse(e){try{await this._onResponseBase(e)}catch(r){this._beforeError(r)}}_onRequest(e){let{options:r}=this,{timeout:o,url:a}=r;Lit.default(e),this[o4]=xle.default(e,o,a);let n=r.cache?"cacheableResponse":"response";e.once(n,p=>{this._onResponse(p)}),e.once("error",p=>{var h;e.destroy(),(h=e.res)===null||h===void 0||h.removeAllListeners("end"),p=p instanceof xle.TimeoutError?new Kb(p,this.timings,this):new zi(p.message,p,this),this._beforeError(p)}),this[Fle]=qit.default(e,this,tst),this[Ys]=e,this.emit("uploadProgress",this.uploadProgress);let u=this[fh],A=this.redirects.length===0?this:e;at.default.nodeStream(u)?(u.pipe(A),u.once("error",p=>{this._beforeError(new Yb(p,this))})):(this._unlockWrite(),at.default.undefined(u)?(this._cannotHaveBody||this._noPipe)&&(A.end(),this._lockWrite()):(this._writeRequest(u,void 0,()=>{}),A.end(),this._lockWrite())),this.emit("request",e)}async _createCacheableRequest(e,r){return new Promise((o,a)=>{Object.assign(r,jit.default(e)),delete r.url;let n,u=a4.get(r.cache)(r,async A=>{A._readableState.autoDestroy=!1,n&&(await n).emit("cacheableResponse",A),o(A)});r.url=e,u.once("error",a),u.once("request",async A=>{n=A,o(n)})})}async _makeRequest(){var e,r,o,a,n;let{options:u}=this,{headers:A}=u;for(let U in A)if(at.default.undefined(A[U]))delete A[U];else if(at.default.null_(A[U]))throw new TypeError(`Use \`undefined\` instead of \`null\` to delete the \`${U}\` header`);if(u.decompress&&at.default.undefined(A["accept-encoding"])&&(A["accept-encoding"]=Jit?"gzip, deflate, br":"gzip, deflate"),u.cookieJar){let U=await u.cookieJar.getCookieString(u.url.toString());at.default.nonEmptyString(U)&&(u.headers.cookie=U)}for(let U of u.hooks.beforeRequest){let J=await U(u);if(!at.default.undefined(J)){u.request=()=>J;break}}u.body&&this[fh]!==u.body&&(this[fh]=u.body);let{agent:p,request:h,timeout:E,url:w}=u;if(u.dnsCache&&!("lookup"in u)&&(u.lookup=u.dnsCache.lookup),w.hostname==="unix"){let U=/(?.+?):(?.+)/.exec(`${w.pathname}${w.search}`);if(U?.groups){let{socketPath:J,path:te}=U.groups;Object.assign(u,{socketPath:J,path:te,host:""})}}let D=w.protocol==="https:",x;u.http2?x=Uit.auto:x=D?Nit.request:Ple.request;let C=(e=u.request)!==null&&e!==void 0?e:x,T=u.cache?this._createCacheableRequest:C;p&&!u.http2&&(u.agent=p[D?"https":"http"]),u[Ys]=C,delete u.request,delete u.timeout;let L=u;if(L.shared=(r=u.cacheOptions)===null||r===void 0?void 0:r.shared,L.cacheHeuristic=(o=u.cacheOptions)===null||o===void 0?void 0:o.cacheHeuristic,L.immutableMinTimeToLive=(a=u.cacheOptions)===null||a===void 0?void 0:a.immutableMinTimeToLive,L.ignoreCargoCult=(n=u.cacheOptions)===null||n===void 0?void 0:n.ignoreCargoCult,u.dnsLookupIpVersion!==void 0)try{L.family=Qle.dnsLookupIpVersionToFamily(u.dnsLookupIpVersion)}catch{throw new Error("Invalid `dnsLookupIpVersion` option value")}u.https&&("rejectUnauthorized"in u.https&&(L.rejectUnauthorized=u.https.rejectUnauthorized),u.https.checkServerIdentity&&(L.checkServerIdentity=u.https.checkServerIdentity),u.https.certificateAuthority&&(L.ca=u.https.certificateAuthority),u.https.certificate&&(L.cert=u.https.certificate),u.https.key&&(L.key=u.https.key),u.https.passphrase&&(L.passphrase=u.https.passphrase),u.https.pfx&&(L.pfx=u.https.pfx));try{let U=await T(w,L);at.default.undefined(U)&&(U=x(w,L)),u.request=h,u.timeout=E,u.agent=p,u.https&&("rejectUnauthorized"in u.https&&delete L.rejectUnauthorized,u.https.checkServerIdentity&&delete L.checkServerIdentity,u.https.certificateAuthority&&delete L.ca,u.https.certificate&&delete L.cert,u.https.key&&delete L.key,u.https.passphrase&&delete L.passphrase,u.https.pfx&&delete L.pfx),Xit(U)?this._onRequest(U):this.writable?(this.once("finish",()=>{this._onResponse(U)}),this._unlockWrite(),this.end(),this._lockWrite()):this._onResponse(U)}catch(U){throw U instanceof Sle.CacheError?new Wb(U,this):new zi(U.message,U,this)}}async _error(e){try{for(let r of this.options.hooks.beforeError)e=await r(e)}catch(r){e=new zi(r.message,r,this)}this.destroy(e)}_beforeError(e){if(this[by])return;let{options:r}=this,o=this.retryCount+1;this[by]=!0,e instanceof zi||(e=new zi(e.message,e,this));let a=e,{response:n}=a;(async()=>{if(n&&!n.body){n.setEncoding(this._readableState.encoding);try{n.rawBody=await Wit.default(n),n.body=n.rawBody.toString()}catch{}}if(this.listenerCount("retry")!==0){let u;try{let A;n&&"retry-after"in n.headers&&(A=Number(n.headers["retry-after"]),Number.isNaN(A)?(A=Date.parse(n.headers["retry-after"])-Date.now(),A<=0&&(A=1)):A*=1e3),u=await r.retry.calculateDelay({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:Vit.default({attemptCount:o,retryOptions:r.retry,error:a,retryAfter:A,computedValue:0})})}catch(A){this._error(new zi(A.message,A,this));return}if(u){let A=async()=>{try{for(let p of this.options.hooks.beforeRetry)await p(this.options,a,o)}catch(p){this._error(new zi(p.message,e,this));return}this.destroyed||(this.destroy(),this.emit("retry",o,e))};this[Lle]=setTimeout(A,u);return}}this._error(a)})()}_read(){this[Hb]=!0;let e=this[qb];if(e&&!this[by]){e.readableLength&&(this[Hb]=!1);let r;for(;(r=e.read())!==null;){this[Dy]+=r.length,this[Tle]=!0;let o=this.downloadProgress;o.percent<1&&this.emit("downloadProgress",o),this.push(r)}}}_write(e,r,o){let a=()=>{this._writeRequest(e,r,o)};this.requestInitialized?a():this[O1].push(a)}_writeRequest(e,r,o){this[Ys].destroyed||(this._progressCallbacks.push(()=>{this[Sy]+=Buffer.byteLength(e,r);let a=this.uploadProgress;a.percent<1&&this.emit("uploadProgress",a)}),this[Ys].write(e,r,a=>{!a&&this._progressCallbacks.length>0&&this._progressCallbacks.shift()(),o(a)}))}_final(e){let r=()=>{for(;this._progressCallbacks.length!==0;)this._progressCallbacks.shift()();if(!(Ys in this)){e();return}if(this[Ys].destroyed){e();return}this[Ys].end(o=>{o||(this[Py]=this[Sy],this.emit("uploadProgress",this.uploadProgress),this[Ys].emit("upload-complete")),e(o)})};this.requestInitialized?r():this[O1].push(r)}_destroy(e,r){var o;this[by]=!0,clearTimeout(this[Lle]),Ys in this&&(this[o4](),!((o=this[qb])===null||o===void 0)&&o.complete||this[Ys].destroy()),e!==null&&!at.default.undefined(e)&&!(e instanceof zi)&&(e=new zi(e.message,e,this)),r(e)}get _isAboutToError(){return this[by]}get ip(){var e;return(e=this.socket)===null||e===void 0?void 0:e.remoteAddress}get aborted(){var e,r,o;return((r=(e=this[Ys])===null||e===void 0?void 0:e.destroyed)!==null&&r!==void 0?r:this.destroyed)&&!(!((o=this[Nle])===null||o===void 0)&&o.complete)}get socket(){var e,r;return(r=(e=this[Ys])===null||e===void 0?void 0:e.socket)!==null&&r!==void 0?r:void 0}get downloadProgress(){let e;return this[vy]?e=this[Dy]/this[vy]:this[vy]===this[Dy]?e=1:e=0,{percent:e,transferred:this[Dy],total:this[vy]}}get uploadProgress(){let e;return this[Py]?e=this[Sy]/this[Py]:this[Py]===this[Sy]?e=1:e=0,{percent:e,transferred:this[Sy],total:this[Py]}}get timings(){var e;return(e=this[Ys])===null||e===void 0?void 0:e.timings}get isFromCache(){return this[Rle]}pipe(e,r){if(this[Tle])throw new Error("Failed to pipe. The response has been emitted already.");return e instanceof i4.ServerResponse&&this[_b].add(e),super.pipe(e,r)}unpipe(e){return e instanceof i4.ServerResponse&&this[_b].delete(e),super.unpipe(e),this}};Qn.default=Jb});var _1=_(zc=>{"use strict";var rst=zc&&zc.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),nst=zc&&zc.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&rst(e,t,r)};Object.defineProperty(zc,"__esModule",{value:!0});zc.CancelError=zc.ParseError=void 0;var Ole=U1(),l4=class extends Ole.RequestError{constructor(e,r){let{options:o}=r.request;super(`${e.message} in "${o.url.toString()}"`,e,r.request),this.name="ParseError"}};zc.ParseError=l4;var c4=class extends Ole.RequestError{constructor(e){super("Promise was canceled",{},e),this.name="CancelError"}get isCanceled(){return!0}};zc.CancelError=c4;nst(U1(),zc)});var Ule=_(u4=>{"use strict";Object.defineProperty(u4,"__esModule",{value:!0});var Mle=_1(),ist=(t,e,r,o)=>{let{rawBody:a}=t;try{if(e==="text")return a.toString(o);if(e==="json")return a.length===0?"":r(a.toString());if(e==="buffer")return a;throw new Mle.ParseError({message:`Unknown body type '${e}'`,name:"Error"},t)}catch(n){throw new Mle.ParseError(n,t)}};u4.default=ist});var A4=_(ph=>{"use strict";var sst=ph&&ph.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ost=ph&&ph.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&sst(e,t,r)};Object.defineProperty(ph,"__esModule",{value:!0});var ast=ve("events"),lst=Ff(),cst=Moe(),zb=_1(),_le=Ule(),Hle=U1(),ust=KU(),Ast=e4(),qle=t4(),fst=["request","response","redirect","uploadProgress","downloadProgress"];function jle(t){let e,r,o=new ast.EventEmitter,a=new cst((u,A,p)=>{let h=E=>{let w=new Hle.default(void 0,t);w.retryCount=E,w._noPipe=!0,p(()=>w.destroy()),p.shouldReject=!1,p(()=>A(new zb.CancelError(w))),e=w,w.once("response",async C=>{var T;if(C.retryCount=E,C.request.aborted)return;let L;try{L=await Ast.default(w),C.rawBody=L}catch{return}if(w._isAboutToError)return;let U=((T=C.headers["content-encoding"])!==null&&T!==void 0?T:"").toLowerCase(),J=["gzip","deflate","br"].includes(U),{options:te}=w;if(J&&!te.decompress)C.body=L;else try{C.body=_le.default(C,te.responseType,te.parseJson,te.encoding)}catch(le){if(C.body=L.toString(),qle.isResponseOk(C)){w._beforeError(le);return}}try{for(let[le,ce]of te.hooks.afterResponse.entries())C=await ce(C,async ue=>{let Ie=Hle.default.normalizeArguments(void 0,{...ue,retry:{calculateDelay:()=>0},throwHttpErrors:!1,resolveBodyOnly:!1},te);Ie.hooks.afterResponse=Ie.hooks.afterResponse.slice(0,le);for(let De of Ie.hooks.beforeRetry)await De(Ie);let he=jle(Ie);return p(()=>{he.catch(()=>{}),he.cancel()}),he})}catch(le){w._beforeError(new zb.RequestError(le.message,le,w));return}if(!qle.isResponseOk(C)){w._beforeError(new zb.HTTPError(C));return}r=C,u(w.options.resolveBodyOnly?C.body:C)});let D=C=>{if(a.isCanceled)return;let{options:T}=w;if(C instanceof zb.HTTPError&&!T.throwHttpErrors){let{response:L}=C;u(w.options.resolveBodyOnly?L.body:L);return}A(C)};w.once("error",D);let x=w.options.body;w.once("retry",(C,T)=>{var L,U;if(x===((L=T.request)===null||L===void 0?void 0:L.options.body)&&lst.default.nodeStream((U=T.request)===null||U===void 0?void 0:U.options.body)){D(T);return}h(C)}),ust.default(w,o,fst)};h(0)});a.on=(u,A)=>(o.on(u,A),a);let n=u=>{let A=(async()=>{await a;let{options:p}=r.request;return _le.default(r,u,p.parseJson,p.encoding)})();return Object.defineProperties(A,Object.getOwnPropertyDescriptors(a)),A};return a.json=()=>{let{headers:u}=e.options;return!e.writableFinished&&u.accept===void 0&&(u.accept="application/json"),n("json")},a.buffer=()=>n("buffer"),a.text=()=>n("text"),a}ph.default=jle;ost(_1(),ph)});var Gle=_(f4=>{"use strict";Object.defineProperty(f4,"__esModule",{value:!0});var pst=_1();function hst(t,...e){let r=(async()=>{if(t instanceof pst.RequestError)try{for(let a of e)if(a)for(let n of a)t=await n(t)}catch(a){t=a}throw t})(),o=()=>r;return r.json=o,r.text=o,r.buffer=o,r.on=o,r}f4.default=hst});var Kle=_(p4=>{"use strict";Object.defineProperty(p4,"__esModule",{value:!0});var Wle=Ff();function Yle(t){for(let e of Object.values(t))(Wle.default.plainObject(e)||Wle.default.array(e))&&Yle(e);return Object.freeze(t)}p4.default=Yle});var Jle=_(Vle=>{"use strict";Object.defineProperty(Vle,"__esModule",{value:!0})});var h4=_(Xl=>{"use strict";var gst=Xl&&Xl.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),dst=Xl&&Xl.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&gst(e,t,r)};Object.defineProperty(Xl,"__esModule",{value:!0});Xl.defaultHandler=void 0;var zle=Ff(),zl=A4(),mst=Gle(),Zb=U1(),yst=Kle(),Est={RequestError:zl.RequestError,CacheError:zl.CacheError,ReadError:zl.ReadError,HTTPError:zl.HTTPError,MaxRedirectsError:zl.MaxRedirectsError,TimeoutError:zl.TimeoutError,ParseError:zl.ParseError,CancelError:zl.CancelError,UnsupportedProtocolError:zl.UnsupportedProtocolError,UploadError:zl.UploadError},Cst=async t=>new Promise(e=>{setTimeout(e,t)}),{normalizeArguments:Xb}=Zb.default,Xle=(...t)=>{let e;for(let r of t)e=Xb(void 0,r,e);return e},Ist=t=>t.isStream?new Zb.default(void 0,t):zl.default(t),wst=t=>"defaults"in t&&"options"in t.defaults,Bst=["get","post","put","patch","head","delete"];Xl.defaultHandler=(t,e)=>e(t);var Zle=(t,e)=>{if(t)for(let r of t)r(e)},$le=t=>{t._rawHandlers=t.handlers,t.handlers=t.handlers.map(o=>(a,n)=>{let u,A=o(a,p=>(u=n(p),u));if(A!==u&&!a.isStream&&u){let p=A,{then:h,catch:E,finally:w}=p;Object.setPrototypeOf(p,Object.getPrototypeOf(u)),Object.defineProperties(p,Object.getOwnPropertyDescriptors(u)),p.then=h,p.catch=E,p.finally=w}return A});let e=(o,a={},n)=>{var u,A;let p=0,h=E=>t.handlers[p++](E,p===t.handlers.length?Ist:h);if(zle.default.plainObject(o)){let E={...o,...a};Zb.setNonEnumerableProperties([o,a],E),a=E,o=void 0}try{let E;try{Zle(t.options.hooks.init,a),Zle((u=a.hooks)===null||u===void 0?void 0:u.init,a)}catch(D){E=D}let w=Xb(o,a,n??t.options);if(w[Zb.kIsNormalizedAlready]=!0,E)throw new zl.RequestError(E.message,E,w);return h(w)}catch(E){if(a.isStream)throw E;return mst.default(E,t.options.hooks.beforeError,(A=a.hooks)===null||A===void 0?void 0:A.beforeError)}};e.extend=(...o)=>{let a=[t.options],n=[...t._rawHandlers],u;for(let A of o)wst(A)?(a.push(A.defaults.options),n.push(...A.defaults._rawHandlers),u=A.defaults.mutableDefaults):(a.push(A),"handlers"in A&&n.push(...A.handlers),u=A.mutableDefaults);return n=n.filter(A=>A!==Xl.defaultHandler),n.length===0&&n.push(Xl.defaultHandler),$le({options:Xle(...a),handlers:n,mutableDefaults:!!u})};let r=async function*(o,a){let n=Xb(o,a,t.options);n.resolveBodyOnly=!1;let u=n.pagination;if(!zle.default.object(u))throw new TypeError("`options.pagination` must be implemented");let A=[],{countLimit:p}=u,h=0;for(;h{let n=[];for await(let u of r(o,a))n.push(u);return n},e.paginate.each=r,e.stream=(o,a)=>e(o,{...a,isStream:!0});for(let o of Bst)e[o]=(a,n)=>e(a,{...n,method:o}),e.stream[o]=(a,n)=>e(a,{...n,method:o,isStream:!0});return Object.assign(e,Est),Object.defineProperty(e,"defaults",{value:t.mutableDefaults?t:yst.default(t),writable:t.mutableDefaults,configurable:t.mutableDefaults,enumerable:!0}),e.mergeOptions=Xle,e};Xl.default=$le;dst(Jle(),Xl)});var rce=_((Rf,$b)=>{"use strict";var vst=Rf&&Rf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ece=Rf&&Rf.__exportStar||function(t,e){for(var r in t)r!=="default"&&!Object.prototype.hasOwnProperty.call(e,r)&&vst(e,t,r)};Object.defineProperty(Rf,"__esModule",{value:!0});var Dst=ve("url"),tce=h4(),Pst={options:{method:"GET",retry:{limit:2,methods:["GET","PUT","HEAD","DELETE","OPTIONS","TRACE"],statusCodes:[408,413,429,500,502,503,504,521,522,524],errorCodes:["ETIMEDOUT","ECONNRESET","EADDRINUSE","ECONNREFUSED","EPIPE","ENOTFOUND","ENETUNREACH","EAI_AGAIN"],maxRetryAfter:void 0,calculateDelay:({computedValue:t})=>t},timeout:{},headers:{"user-agent":"got (https://github.com/sindresorhus/got)"},hooks:{init:[],beforeRequest:[],beforeRedirect:[],beforeRetry:[],beforeError:[],afterResponse:[]},cache:void 0,dnsCache:void 0,decompress:!0,throwHttpErrors:!0,followRedirect:!0,isStream:!1,responseType:"text",resolveBodyOnly:!1,maxRedirects:10,prefixUrl:"",methodRewriting:!0,ignoreInvalidCookies:!1,context:{},http2:!1,allowGetBody:!1,https:void 0,pagination:{transform:t=>t.request.options.responseType==="json"?t.body:JSON.parse(t.body),paginate:t=>{if(!Reflect.has(t.headers,"link"))return!1;let e=t.headers.link.split(","),r;for(let o of e){let a=o.split(";");if(a[1].includes("next")){r=a[0].trimStart().trim(),r=r.slice(1,-1);break}}return r?{url:new Dst.URL(r)}:!1},filter:()=>!0,shouldContinue:()=>!0,countLimit:1/0,backoff:0,requestLimit:1e4,stackAllItems:!0},parseJson:t=>JSON.parse(t),stringifyJson:t=>JSON.stringify(t),cacheOptions:{}},handlers:[tce.defaultHandler],mutableDefaults:!1},g4=tce.default(Pst);Rf.default=g4;$b.exports=g4;$b.exports.default=g4;$b.exports.__esModule=!0;ece(h4(),Rf);ece(A4(),Rf)});var on={};Kt(on,{Method:()=>cce,del:()=>Qst,get:()=>E4,getNetworkSettings:()=>lce,post:()=>C4,put:()=>kst,request:()=>H1});function sce(t){let e=new URL(t),r={host:e.hostname,headers:{}};return e.port&&(r.port=Number(e.port)),e.username&&e.password&&(r.proxyAuth=`${e.username}:${e.password}`),{proxy:r}}async function d4(t){return Al(ice,t,()=>ae.readFilePromise(t).then(e=>(ice.set(t,e),e)))}function xst({statusCode:t,statusMessage:e},r){let o=Ut(r,t,Ct.NUMBER),a=`https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/${t}`;return ty(r,`${o}${e?` (${e})`:""}`,a)}async function ex(t,{configuration:e,customErrorMessage:r}){try{return await t}catch(o){if(o.name!=="HTTPError")throw o;let a=r?.(o,e)??o.response.body?.error;a==null&&(o.message.startsWith("Response code")?a="The remote server failed to provide the requested resource":a=o.message),o.code==="ETIMEDOUT"&&o.event==="socket"&&(a+=`(can be increased via ${Ut(e,"httpTimeout",Ct.SETTING)})`);let n=new Jt(35,a,u=>{o.response&&u.reportError(35,` ${$u(e,{label:"Response Code",value:Yc(Ct.NO_HINT,xst(o.response,e))})}`),o.request&&(u.reportError(35,` ${$u(e,{label:"Request Method",value:Yc(Ct.NO_HINT,o.request.options.method)})}`),u.reportError(35,` ${$u(e,{label:"Request URL",value:Yc(Ct.URL,o.request.requestUrl)})}`)),o.request.redirects.length>0&&u.reportError(35,` ${$u(e,{label:"Request Redirects",value:Yc(Ct.NO_HINT,cO(e,o.request.redirects,Ct.URL))})}`),o.request.retryCount===o.request.options.retry.limit&&u.reportError(35,` ${$u(e,{label:"Request Retry Count",value:Yc(Ct.NO_HINT,`${Ut(e,o.request.retryCount,Ct.NUMBER)} (can be increased via ${Ut(e,"httpRetry",Ct.SETTING)})`)})}`)});throw n.originalError=o,n}}function lce(t,e){let r=[...e.configuration.get("networkSettings")].sort(([u],[A])=>A.length-u.length),o={enableNetwork:void 0,httpsCaFilePath:void 0,httpProxy:void 0,httpsProxy:void 0,httpsKeyFilePath:void 0,httpsCertFilePath:void 0},a=Object.keys(o),n=typeof t=="string"?new URL(t):t;for(let[u,A]of r)if(y4.default.isMatch(n.hostname,u))for(let p of a){let h=A.get(p);h!==null&&typeof o[p]>"u"&&(o[p]=h)}for(let u of a)typeof o[u]>"u"&&(o[u]=e.configuration.get(u));return o}async function H1(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET",wrapNetworkRequest:A}){let p={target:t,body:e,configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u},h=async()=>await Fst(t,e,p),E=typeof A<"u"?await A(h,p):h;return await(await r.reduceHook(D=>D.wrapNetworkRequest,E,p))()}async function E4(t,{configuration:e,jsonResponse:r,customErrorMessage:o,wrapNetworkRequest:a,...n}){let u=()=>ex(H1(t,null,{configuration:e,wrapNetworkRequest:a,...n}),{configuration:e,customErrorMessage:o}).then(p=>p.body),A=await(typeof a<"u"?u():Al(nce,t,()=>u().then(p=>(nce.set(t,p),p))));return r?JSON.parse(A.toString()):A}async function kst(t,e,{customErrorMessage:r,...o}){return(await ex(H1(t,e,{...o,method:"PUT"}),{customErrorMessage:r,configuration:o.configuration})).body}async function C4(t,e,{customErrorMessage:r,...o}){return(await ex(H1(t,e,{...o,method:"POST"}),{customErrorMessage:r,configuration:o.configuration})).body}async function Qst(t,{customErrorMessage:e,...r}){return(await ex(H1(t,null,{...r,method:"DELETE"}),{customErrorMessage:e,configuration:r.configuration})).body}async function Fst(t,e,{configuration:r,headers:o,jsonRequest:a,jsonResponse:n,method:u="GET"}){let A=typeof t=="string"?new URL(t):t,p=lce(A,{configuration:r});if(p.enableNetwork===!1)throw new Jt(80,`Request to '${A.href}' has been blocked because of your configuration settings`);if(A.protocol==="http:"&&!y4.default.isMatch(A.hostname,r.get("unsafeHttpWhitelist")))throw new Jt(81,`Unsafe http requests must be explicitly whitelisted in your configuration (${A.hostname})`);let E={agent:{http:p.httpProxy?m4.default.httpOverHttp(sce(p.httpProxy)):Sst,https:p.httpsProxy?m4.default.httpsOverHttp(sce(p.httpsProxy)):bst},headers:o,method:u};E.responseType=n?"json":"buffer",e!==null&&(Buffer.isBuffer(e)||!a&&typeof e=="string"?E.body=e:E.json=e);let w=r.get("httpTimeout"),D=r.get("httpRetry"),x=r.get("enableStrictSsl"),C=p.httpsCaFilePath,T=p.httpsCertFilePath,L=p.httpsKeyFilePath,{default:U}=await Promise.resolve().then(()=>et(rce())),J=C?await d4(C):void 0,te=T?await d4(T):void 0,le=L?await d4(L):void 0,ce=U.extend({timeout:{socket:w},retry:D,https:{rejectUnauthorized:x,certificateAuthority:J,certificate:te,key:le},...E});return r.getLimit("networkConcurrency")(()=>ce(A))}var oce,ace,y4,m4,nce,ice,Sst,bst,cce,tx=It(()=>{Pt();oce=ve("https"),ace=ve("http"),y4=et(Xo()),m4=et(Roe());Vl();Wl();Gl();nce=new Map,ice=new Map,Sst=new ace.Agent({keepAlive:!0}),bst=new oce.Agent({keepAlive:!0});cce=(a=>(a.GET="GET",a.PUT="PUT",a.POST="POST",a.DELETE="DELETE",a))(cce||{})});var Xi={};Kt(Xi,{availableParallelism:()=>w4,getArchitecture:()=>q1,getArchitectureName:()=>Ost,getArchitectureSet:()=>I4,getCaller:()=>Hst,major:()=>Rst,openUrl:()=>Tst});function Lst(){if(process.platform==="darwin"||process.platform==="win32")return null;let t;try{t=ae.readFileSync(Nst)}catch{}if(typeof t<"u"){if(t&&(t.includes("GLIBC")||t.includes("libc")))return"glibc";if(t&&t.includes("musl"))return"musl"}let r=(process.report?.getReport()??{}).sharedObjects??[],o=/\/(?:(ld-linux-|[^/]+-linux-gnu\/)|(libc.musl-|ld-musl-))/;return eh(r,a=>{let n=a.match(o);if(!n)return eh.skip;if(n[1])return"glibc";if(n[2])return"musl";throw new Error("Assertion failed: Expected the libc variant to have been detected")})??null}function q1(){return Ace=Ace??{os:process.platform,cpu:process.arch,libc:Lst()}}function Ost(t=q1()){return t.libc?`${t.os}-${t.cpu}-${t.libc}`:`${t.os}-${t.cpu}`}function I4(){let t=q1();return fce=fce??{os:[t.os],cpu:[t.cpu],libc:t.libc?[t.libc]:[]}}function _st(t){let e=Mst.exec(t);if(!e)return null;let r=e[2]&&e[2].indexOf("native")===0,o=e[2]&&e[2].indexOf("eval")===0,a=Ust.exec(e[2]);return o&&a!=null&&(e[2]=a[1],e[3]=a[2],e[4]=a[3]),{file:r?null:e[2],methodName:e[1]||"",arguments:r?[e[2]]:[],line:e[3]?+e[3]:null,column:e[4]?+e[4]:null}}function Hst(){let e=new Error().stack.split(` +`)[3];return _st(e)}function w4(){return typeof rx.default.availableParallelism<"u"?rx.default.availableParallelism():Math.max(1,rx.default.cpus().length)}var rx,Rst,uce,Tst,Nst,Ace,fce,Mst,Ust,nx=It(()=>{Pt();rx=et(ve("os"));ix();Gl();Rst=Number(process.versions.node.split(".")[0]),uce=new Map([["darwin","open"],["linux","xdg-open"],["win32","explorer.exe"]]).get(process.platform),Tst=typeof uce<"u"?async t=>{try{return await B4(uce,[t],{cwd:K.cwd()}),!0}catch{return!1}}:void 0,Nst="/usr/bin/ldd";Mst=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i,Ust=/\((\S*)(?::(\d+))(?::(\d+))\)/});function b4(t,e,r,o,a){let n=x1(r);if(o.isArray||o.type==="ANY"&&Array.isArray(n))return Array.isArray(n)?n.map((u,A)=>v4(t,`${e}[${A}]`,u,o,a)):String(n).split(/,/).map(u=>v4(t,e,u,o,a));if(Array.isArray(n))throw new Error(`Non-array configuration settings "${e}" cannot be an array`);return v4(t,e,r,o,a)}function v4(t,e,r,o,a){let n=x1(r);switch(o.type){case"ANY":return Bb(n);case"SHAPE":return Wst(t,e,r,o,a);case"MAP":return Yst(t,e,r,o,a)}if(n===null&&!o.isNullable&&o.default!==null)throw new Error(`Non-nullable configuration settings "${e}" cannot be set to null`);if(o.values?.includes(n))return n;let A=(()=>{if(o.type==="BOOLEAN"&&typeof n!="string")return f1(n);if(typeof n!="string")throw new Error(`Expected configuration setting "${e}" to be a string, got ${typeof n}`);let p=LS(n,{env:t.env});switch(o.type){case"ABSOLUTE_PATH":{let h=a,E=eU(r);return E&&E[0]!=="<"&&(h=K.dirname(E)),K.resolve(h,Ae.toPortablePath(p))}case"LOCATOR_LOOSE":return Sf(p,!1);case"NUMBER":return parseInt(p);case"LOCATOR":return Sf(p);case"BOOLEAN":return f1(p);default:return p}})();if(o.values&&!o.values.includes(A))throw new Error(`Invalid value, expected one of ${o.values.join(", ")}`);return A}function Wst(t,e,r,o,a){let n=x1(r);if(typeof n!="object"||Array.isArray(n))throw new it(`Object configuration settings "${e}" must be an object`);let u=x4(t,o,{ignoreArrays:!0});if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=`${e}.${A}`;if(!o.properties[A])throw new it(`Unrecognized configuration settings found: ${e}.${A} - run "yarn config -v" to see the list of settings supported in Yarn`);u.set(A,b4(t,h,p,o.properties[A],a))}return u}function Yst(t,e,r,o,a){let n=x1(r),u=new Map;if(typeof n!="object"||Array.isArray(n))throw new it(`Map configuration settings "${e}" must be an object`);if(n===null)return u;for(let[A,p]of Object.entries(n)){let h=o.normalizeKeys?o.normalizeKeys(A):A,E=`${e}['${h}']`,w=o.valueDefinition;u.set(h,b4(t,E,p,w,a))}return u}function x4(t,e,{ignoreArrays:r=!1}={}){switch(e.type){case"SHAPE":{if(e.isArray&&!r)return[];let o=new Map;for(let[a,n]of Object.entries(e.properties))o.set(a,x4(t,n));return o}case"MAP":return e.isArray&&!r?[]:new Map;case"ABSOLUTE_PATH":return e.default===null?null:t.projectCwd===null?Array.isArray(e.default)?e.default.map(o=>K.normalize(o)):K.isAbsolute(e.default)?K.normalize(e.default):e.isNullable?null:void 0:Array.isArray(e.default)?e.default.map(o=>K.resolve(t.projectCwd,o)):K.resolve(t.projectCwd,e.default);default:return e.default}}function ox(t,e,r){if(e.type==="SECRET"&&typeof t=="string"&&r.hideSecrets)return Gst;if(e.type==="ABSOLUTE_PATH"&&typeof t=="string"&&r.getNativePaths)return Ae.fromPortablePath(t);if(e.isArray&&Array.isArray(t)){let o=[];for(let a of t)o.push(ox(a,e,r));return o}if(e.type==="MAP"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=ox(n,e.valueDefinition,r);typeof u<"u"&&o.set(a,u)}return o}if(e.type==="SHAPE"&&t instanceof Map){if(t.size===0)return;let o=new Map;for(let[a,n]of t.entries()){let u=e.properties[a],A=ox(n,u,r);typeof A<"u"&&o.set(a,A)}return o}return t}function Kst(){let t={};for(let[e,r]of Object.entries(process.env))e=e.toLowerCase(),e.startsWith(ax)&&(e=(0,hce.default)(e.slice(ax.length)),t[e]=r);return t}function P4(){let t=`${ax}rc_filename`;for(let[e,r]of Object.entries(process.env))if(e.toLowerCase()===t&&typeof r=="string")return r;return S4}async function pce(t){try{return await ae.readFilePromise(t)}catch{return Buffer.of()}}async function Vst(t,e){return Buffer.compare(...await Promise.all([pce(t),pce(e)]))===0}async function Jst(t,e){let[r,o]=await Promise.all([ae.statPromise(t),ae.statPromise(e)]);return r.dev===o.dev&&r.ino===o.ino}async function Xst({configuration:t,selfPath:e}){let r=t.get("yarnPath");return t.get("ignorePath")||r===null||r===e||await zst(r,e)?null:r}var hce,Tf,gce,dce,mce,D4,qst,j1,jst,xy,ax,S4,Gst,G1,yce,lx,sx,zst,ze,W1=It(()=>{Pt();Ol();hce=et(jV()),Tf=et(sg());Gt();gce=et(LJ()),dce=ve("module"),mce=et(lg()),D4=ve("stream");Vse();Ay();YM();KM();VM();woe();JM();Dg();Soe();Db();Wl();ah();tx();Gl();nx();xf();Io();qst=function(){if(!Tf.GITHUB_ACTIONS||!process.env.GITHUB_EVENT_PATH)return!1;let t=Ae.toPortablePath(process.env.GITHUB_EVENT_PATH),e;try{e=ae.readJsonSync(t)}catch{return!1}return!(!("repository"in e)||!e.repository||(e.repository.private??!0))}(),j1=new Set(["@yarnpkg/plugin-constraints","@yarnpkg/plugin-exec","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]),jst=new Set(["isTestEnv","injectNpmUser","injectNpmPassword","injectNpm2FaToken","zipDataEpilogue","cacheCheckpointOverride","cacheVersionOverride","lockfileVersionOverride","binFolder","version","flags","profile","gpg","ignoreNode","wrapOutput","home","confDir","registry","ignoreCwd"]),xy=/^(?!v)[a-z0-9._-]+$/i,ax="yarn_",S4=".yarnrc.yml",Gst="********",G1=(E=>(E.ANY="ANY",E.BOOLEAN="BOOLEAN",E.ABSOLUTE_PATH="ABSOLUTE_PATH",E.LOCATOR="LOCATOR",E.LOCATOR_LOOSE="LOCATOR_LOOSE",E.NUMBER="NUMBER",E.STRING="STRING",E.SECRET="SECRET",E.SHAPE="SHAPE",E.MAP="MAP",E))(G1||{}),yce=Ct,lx=(r=>(r.JUNCTIONS="junctions",r.SYMLINKS="symlinks",r))(lx||{}),sx={lastUpdateCheck:{description:"Last timestamp we checked whether new Yarn versions were available",type:"STRING",default:null},yarnPath:{description:"Path to the local executable that must be used over the global one",type:"ABSOLUTE_PATH",default:null},ignorePath:{description:"If true, the local executable will be ignored when using the global one",type:"BOOLEAN",default:!1},globalFolder:{description:"Folder where all system-global files are stored",type:"ABSOLUTE_PATH",default:rU()},cacheFolder:{description:"Folder where the cache files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/cache"},compressionLevel:{description:"Zip files compression level, from 0 to 9 or mixed (a variant of 9, which stores some files uncompressed, when compression doesn't yield good results)",type:"NUMBER",values:["mixed",0,1,2,3,4,5,6,7,8,9],default:0},virtualFolder:{description:"Folder where the virtual packages (cf doc) will be mapped on the disk (must be named __virtual__)",type:"ABSOLUTE_PATH",default:"./.yarn/__virtual__"},installStatePath:{description:"Path of the file where the install state will be persisted",type:"ABSOLUTE_PATH",default:"./.yarn/install-state.gz"},immutablePatterns:{description:"Array of glob patterns; files matching them won't be allowed to change during immutable installs",type:"STRING",default:[],isArray:!0},rcFilename:{description:"Name of the files where the configuration can be found",type:"STRING",default:P4()},enableGlobalCache:{description:"If true, the system-wide cache folder will be used regardless of `cache-folder`",type:"BOOLEAN",default:!0},cacheMigrationMode:{description:"Defines the conditions under which Yarn upgrades should cause the cache archives to be regenerated.",type:"STRING",values:["always","match-spec","required-only"],default:"always"},enableColors:{description:"If true, the CLI is allowed to use colors in its output",type:"BOOLEAN",default:US,defaultText:""},enableHyperlinks:{description:"If true, the CLI is allowed to use hyperlinks in its output",type:"BOOLEAN",default:lO,defaultText:""},enableInlineBuilds:{description:"If true, the CLI will print the build output on the command line",type:"BOOLEAN",default:Tf.isCI,defaultText:""},enableMessageNames:{description:"If true, the CLI will prefix most messages with codes suitable for search engines",type:"BOOLEAN",default:!0},enableProgressBars:{description:"If true, the CLI is allowed to show a progress bar for long-running events",type:"BOOLEAN",default:!Tf.isCI,defaultText:""},enableTimers:{description:"If true, the CLI is allowed to print the time spent executing commands",type:"BOOLEAN",default:!0},enableTips:{description:"If true, installs will print a helpful message every day of the week",type:"BOOLEAN",default:!Tf.isCI,defaultText:""},preferInteractive:{description:"If true, the CLI will automatically use the interactive mode when called from a TTY",type:"BOOLEAN",default:!1},preferTruncatedLines:{description:"If true, the CLI will truncate lines that would go beyond the size of the terminal",type:"BOOLEAN",default:!1},progressBarStyle:{description:"Which style of progress bar should be used (only when progress bars are enabled)",type:"STRING",default:void 0,defaultText:""},defaultLanguageName:{description:"Default language mode that should be used when a package doesn't offer any insight",type:"STRING",default:"node"},defaultProtocol:{description:"Default resolution protocol used when resolving pure semver and tag ranges",type:"STRING",default:"npm:"},enableTransparentWorkspaces:{description:"If false, Yarn won't automatically resolve workspace dependencies unless they use the `workspace:` protocol",type:"BOOLEAN",default:!0},supportedArchitectures:{description:"Architectures that Yarn will fetch and inject into the resolver",type:"SHAPE",properties:{os:{description:"Array of supported process.platform strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},cpu:{description:"Array of supported process.arch strings, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]},libc:{description:"Array of supported libc libraries, or null to target them all",type:"STRING",isArray:!0,isNullable:!0,default:["current"]}}},enableMirror:{description:"If true, the downloaded packages will be retrieved and stored in both the local and global folders",type:"BOOLEAN",default:!0},enableNetwork:{description:"If false, Yarn will refuse to use the network if required to",type:"BOOLEAN",default:!0},enableOfflineMode:{description:"If true, Yarn will attempt to retrieve files and metadata from the global cache rather than the network",type:"BOOLEAN",default:!1},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},unsafeHttpWhitelist:{description:"List of the hostnames for which http queries are allowed (glob patterns are supported)",type:"STRING",default:[],isArray:!0},httpTimeout:{description:"Timeout of each http request in milliseconds",type:"NUMBER",default:6e4},httpRetry:{description:"Retry times on http failure",type:"NUMBER",default:3},networkConcurrency:{description:"Maximal number of concurrent requests",type:"NUMBER",default:50},taskPoolConcurrency:{description:"Maximal amount of concurrent heavy task processing",type:"NUMBER",default:w4()},taskPoolMode:{description:"Execution strategy for heavy tasks",type:"STRING",values:["async","workers"],default:"workers"},networkSettings:{description:"Network settings per hostname (glob patterns are supported)",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{httpsCaFilePath:{description:"Path to file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},enableNetwork:{description:"If false, the package manager will refuse to use the network if required to",type:"BOOLEAN",default:null},httpProxy:{description:"URL of the http proxy that must be used for outgoing http requests",type:"STRING",default:null},httpsProxy:{description:"URL of the http proxy that must be used for outgoing https requests",type:"STRING",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null}}}},httpsCaFilePath:{description:"A path to a file containing one or multiple Certificate Authority signing certificates",type:"ABSOLUTE_PATH",default:null},httpsKeyFilePath:{description:"Path to file containing private key in PEM format",type:"ABSOLUTE_PATH",default:null},httpsCertFilePath:{description:"Path to file containing certificate chain in PEM format",type:"ABSOLUTE_PATH",default:null},enableStrictSsl:{description:"If false, SSL certificate errors will be ignored",type:"BOOLEAN",default:!0},logFilters:{description:"Overrides for log levels",type:"SHAPE",isArray:!0,concatenateValues:!0,properties:{code:{description:"Code of the messages covered by this override",type:"STRING",default:void 0},text:{description:"Code of the texts covered by this override",type:"STRING",default:void 0},pattern:{description:"Code of the patterns covered by this override",type:"STRING",default:void 0},level:{description:"Log level override, set to null to remove override",type:"STRING",values:Object.values(HS),isNullable:!0,default:void 0}}},enableTelemetry:{description:"If true, telemetry will be periodically sent, following the rules in https://yarnpkg.com/advanced/telemetry",type:"BOOLEAN",default:!0},telemetryInterval:{description:"Minimal amount of time between two telemetry uploads, in days",type:"NUMBER",default:7},telemetryUserId:{description:"If you desire to tell us which project you are, you can set this field. Completely optional and opt-in.",type:"STRING",default:null},enableHardenedMode:{description:"If true, automatically enable --check-resolutions --refresh-lockfile on installs",type:"BOOLEAN",default:Tf.isPR&&qst,defaultText:""},enableScripts:{description:"If true, packages are allowed to have install scripts by default",type:"BOOLEAN",default:!0},enableStrictSettings:{description:"If true, unknown settings will cause Yarn to abort",type:"BOOLEAN",default:!0},enableImmutableCache:{description:"If true, the cache is reputed immutable and actions that would modify it will throw",type:"BOOLEAN",default:!1},enableCacheClean:{description:"If false, disallows the `cache clean` command",type:"BOOLEAN",default:!0},checksumBehavior:{description:"Enumeration defining what to do when a checksum doesn't match expectations",type:"STRING",default:"throw"},injectEnvironmentFiles:{description:"List of all the environment files that Yarn should inject inside the process when it starts",type:"ABSOLUTE_PATH",default:[".env.yarn?"],isArray:!0},packageExtensions:{description:"Map of package corrections to apply on the dependency tree",type:"MAP",valueDefinition:{description:"The extension that will be applied to any package whose version matches the specified range",type:"SHAPE",properties:{dependencies:{description:"The set of dependencies that must be made available to the current package in order for it to work properly",type:"MAP",valueDefinition:{description:"A range",type:"STRING"}},peerDependencies:{description:"Inherited dependencies - the consumer of the package will be tasked to provide them",type:"MAP",valueDefinition:{description:"A semver range",type:"STRING"}},peerDependenciesMeta:{description:"Extra information related to the dependencies listed in the peerDependencies field",type:"MAP",valueDefinition:{description:"The peerDependency meta",type:"SHAPE",properties:{optional:{description:"If true, the selected peer dependency will be marked as optional by the package manager and the consumer omitting it won't be reported as an error",type:"BOOLEAN",default:!1}}}}}}}};zst=process.platform==="win32"?Vst:Jst;ze=class t{constructor(e){this.isCI=Tf.isCI;this.projectCwd=null;this.plugins=new Map;this.settings=new Map;this.values=new Map;this.sources=new Map;this.invalid=new Map;this.env={};this.limits=new Map;this.packageExtensions=null;this.startingCwd=e}static{this.deleteProperty=Symbol()}static{this.telemetry=null}static create(e,r,o){let a=new t(e);typeof r<"u"&&!(r instanceof Map)&&(a.projectCwd=r),a.importSettings(sx);let n=typeof o<"u"?o:r instanceof Map?r:new Map;for(let[u,A]of n)a.activatePlugin(u,A);return a}static async find(e,r,{strict:o=!0,usePathCheck:a=null,useRc:n=!0}={}){let u=Kst();delete u.rcFilename;let A=new t(e),p=await t.findRcFiles(e),h=await t.findFolderRcFile(my());h&&(p.find(Ie=>Ie.path===h.path)||p.unshift(h));let E=Poe(p.map(ue=>[ue.path,ue.data])),w=Bt.dot,D=new Set(Object.keys(sx)),x=({yarnPath:ue,ignorePath:Ie,injectEnvironmentFiles:he})=>({yarnPath:ue,ignorePath:Ie,injectEnvironmentFiles:he}),C=({yarnPath:ue,ignorePath:Ie,injectEnvironmentFiles:he,...De})=>{let Ee={};for(let[g,me]of Object.entries(De))D.has(g)&&(Ee[g]=me);return Ee},T=({yarnPath:ue,ignorePath:Ie,...he})=>{let De={};for(let[Ee,g]of Object.entries(he))D.has(Ee)||(De[Ee]=g);return De};if(A.importSettings(x(sx)),A.useWithSource("",x(u),e,{strict:!1}),E){let[ue,Ie]=E;A.useWithSource(ue,x(Ie),w,{strict:!1})}if(a){if(await Xst({configuration:A,selfPath:a})!==null)return A;A.useWithSource("",{ignorePath:!0},e,{strict:!1,overwrite:!0})}let L=await t.findProjectCwd(e);A.startingCwd=e,A.projectCwd=L;let U=Object.assign(Object.create(null),process.env);A.env=U;let J=await Promise.all(A.get("injectEnvironmentFiles").map(async ue=>{let Ie=ue.endsWith("?")?await ae.readFilePromise(ue.slice(0,-1),"utf8").catch(()=>""):await ae.readFilePromise(ue,"utf8");return(0,gce.parse)(Ie)}));for(let ue of J)for(let[Ie,he]of Object.entries(ue))A.env[Ie]=LS(he,{env:U});if(A.importSettings(C(sx)),A.useWithSource("",C(u),e,{strict:o}),E){let[ue,Ie]=E;A.useWithSource(ue,C(Ie),w,{strict:o})}let te=ue=>"default"in ue?ue.default:ue,le=new Map([["@@core",Kse]]);if(r!==null)for(let ue of r.plugins.keys())le.set(ue,te(r.modules.get(ue)));for(let[ue,Ie]of le)A.activatePlugin(ue,Ie);let ce=new Map([]);if(r!==null){let ue=new Map;for(let[De,Ee]of r.modules)ue.set(De,()=>Ee);let Ie=new Set,he=async(De,Ee)=>{let{factory:g,name:me}=vf(De);if(!g||Ie.has(me))return;let Ce=new Map(ue),fe=Z=>{if((0,dce.isBuiltin)(Z))return vf(Z);if(Ce.has(Z))return Ce.get(Z)();throw new it(`This plugin cannot access the package referenced via ${Z} which is neither a builtin, nor an exposed entry`)},ie=await zm(async()=>te(await g(fe)),Z=>`${Z} (when initializing ${me}, defined in ${Ee})`);ue.set(me,()=>ie),Ie.add(me),ce.set(me,ie)};if(u.plugins)for(let De of u.plugins.split(";")){let Ee=K.resolve(e,Ae.toPortablePath(De));await he(Ee,"")}for(let{path:De,cwd:Ee,data:g}of p)if(n&&Array.isArray(g.plugins))for(let me of g.plugins){let Ce=typeof me!="string"?me.path:me,fe=me?.spec??"",ie=me?.checksum??"";if(j1.has(fe))continue;let Z=K.resolve(Ee,Ae.toPortablePath(Ce));if(!await ae.existsPromise(Z)){if(!fe){let ht=Ut(A,K.basename(Z,".cjs"),Ct.NAME),q=Ut(A,".gitignore",Ct.NAME),nt=Ut(A,A.values.get("rcFilename"),Ct.NAME),Ne=Ut(A,"https://yarnpkg.com/getting-started/qa#which-files-should-be-gitignored",Ct.URL);throw new it(`Missing source for the ${ht} plugin - please try to remove the plugin from ${nt} then reinstall it manually. This error usually occurs because ${q} is incorrect, check ${Ne} to make sure your plugin folder isn't gitignored.`)}if(!fe.match(/^https?:/)){let ht=Ut(A,K.basename(Z,".cjs"),Ct.NAME),q=Ut(A,A.values.get("rcFilename"),Ct.NAME);throw new it(`Failed to recognize the source for the ${ht} plugin - please try to delete the plugin from ${q} then reinstall it manually.`)}let Pe=await E4(fe,{configuration:A}),Re=Ji(Pe);if(ie&&ie!==Re){let ht=Ut(A,K.basename(Z,".cjs"),Ct.NAME),q=Ut(A,A.values.get("rcFilename"),Ct.NAME),nt=Ut(A,`yarn plugin import ${fe}`,Ct.CODE);throw new it(`Failed to fetch the ${ht} plugin from its remote location: its checksum seems to have changed. If this is expected, please remove the plugin from ${q} then run ${nt} to reimport it.`)}await ae.mkdirPromise(K.dirname(Z),{recursive:!0}),await ae.writeFilePromise(Z,Pe)}await he(Z,De)}}for(let[ue,Ie]of ce)A.activatePlugin(ue,Ie);if(A.useWithSource("",T(u),e,{strict:o}),E){let[ue,Ie]=E;A.useWithSource(ue,T(Ie),w,{strict:o})}return A.get("enableGlobalCache")&&(A.values.set("cacheFolder",`${A.get("globalFolder")}/cache`),A.sources.set("cacheFolder","")),A}static async findRcFiles(e){let r=P4(),o=[],a=e,n=null;for(;a!==n;){n=a;let u=K.join(n,r);if(ae.existsSync(u)){let A=await ae.readFilePromise(u,"utf8"),p;try{p=Ki(A)}catch{let E="";throw A.match(/^\s+(?!-)[^:]+\s+\S+/m)&&(E=" (in particular, make sure you list the colons after each key name)"),new it(`Parse error when loading ${u}; please check it's proper Yaml${E}`)}o.unshift({path:u,cwd:n,data:p})}a=K.dirname(n)}return o}static async findFolderRcFile(e){let r=K.join(e,mr.rc),o;try{o=await ae.readFilePromise(r,"utf8")}catch(n){if(n.code==="ENOENT")return null;throw n}let a=Ki(o);return{path:r,cwd:e,data:a}}static async findProjectCwd(e){let r=null,o=e,a=null;for(;o!==a;){if(a=o,ae.existsSync(K.join(a,mr.lockfile)))return a;ae.existsSync(K.join(a,mr.manifest))&&(r=a),o=K.dirname(a)}return r}static async updateConfiguration(e,r,o={}){let a=P4(),n=K.join(e,a),u=ae.existsSync(n)?Ki(await ae.readFilePromise(n,"utf8")):{},A=!1,p;if(typeof r=="function"){try{p=r(u)}catch{p=r({})}if(p===u)return!1}else{p=u;for(let h of Object.keys(r)){let E=u[h],w=r[h],D;if(typeof w=="function")try{D=w(E)}catch{D=w(void 0)}else D=w;E!==D&&(D===t.deleteProperty?delete p[h]:p[h]=D,A=!0)}if(!A)return!1}return await ae.changeFilePromise(n,Pa(p),{automaticNewlines:!0}),!0}static async addPlugin(e,r){r.length!==0&&await t.updateConfiguration(e,o=>{let a=o.plugins??[];if(a.length===0)return{...o,plugins:r};let n=[],u=[...r];for(let A of a){let p=typeof A!="string"?A.path:A,h=u.find(E=>E.path===p);h?(n.push(h),u=u.filter(E=>E!==h)):n.push(A)}return n.push(...u),{...o,plugins:n}})}static async updateHomeConfiguration(e){let r=my();return await t.updateConfiguration(r,e)}activatePlugin(e,r){this.plugins.set(e,r),typeof r.configuration<"u"&&this.importSettings(r.configuration)}importSettings(e){for(let[r,o]of Object.entries(e))if(o!=null){if(this.settings.has(r))throw new Error(`Cannot redefine settings "${r}"`);this.settings.set(r,o),this.values.set(r,x4(this,o))}}useWithSource(e,r,o,a){try{this.use(e,r,o,a)}catch(n){throw n.message+=` (in ${Ut(this,e,Ct.PATH)})`,n}}use(e,r,o,{strict:a=!0,overwrite:n=!1}={}){a=a&&this.get("enableStrictSettings");for(let u of["enableStrictSettings",...Object.keys(r)]){let A=r[u],p=eU(A);if(p&&(e=p),typeof A>"u"||u==="plugins"||e===""&&jst.has(u))continue;if(u==="rcFilename")throw new it(`The rcFilename settings can only be set via ${`${ax}RC_FILENAME`.toUpperCase()}, not via a rc file`);let h=this.settings.get(u);if(!h){let w=my(),D=e[0]!=="<"?K.dirname(e):null;if(a&&!(D!==null?w===D:!1))throw new it(`Unrecognized or legacy configuration settings found: ${u} - run "yarn config -v" to see the list of settings supported in Yarn`);this.invalid.set(u,e);continue}if(this.sources.has(u)&&!(n||h.type==="MAP"||h.isArray&&h.concatenateValues))continue;let E;try{E=b4(this,u,A,h,o)}catch(w){throw w.message+=` in ${Ut(this,e,Ct.PATH)}`,w}if(u==="enableStrictSettings"&&e!==""){a=E;continue}if(h.type==="MAP"){let w=this.values.get(u);this.values.set(u,new Map(n?[...w,...E]:[...E,...w])),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else if(h.isArray&&h.concatenateValues){let w=this.values.get(u);this.values.set(u,n?[...w,...E]:[...E,...w]),this.sources.set(u,`${this.sources.get(u)}, ${e}`)}else this.values.set(u,E),this.sources.set(u,e)}}get(e){if(!this.values.has(e))throw new Error(`Invalid configuration key "${e}"`);return this.values.get(e)}getSpecial(e,{hideSecrets:r=!1,getNativePaths:o=!1}){let a=this.get(e),n=this.settings.get(e);if(typeof n>"u")throw new it(`Couldn't find a configuration settings named "${e}"`);return ox(a,n,{hideSecrets:r,getNativePaths:o})}getSubprocessStreams(e,{header:r,prefix:o,report:a}){let n,u,A=ae.createWriteStream(e);if(this.get("enableInlineBuilds")){let p=a.createStreamReporter(`${o} ${Ut(this,"STDOUT","green")}`),h=a.createStreamReporter(`${o} ${Ut(this,"STDERR","red")}`);n=new D4.PassThrough,n.pipe(p),n.pipe(A),u=new D4.PassThrough,u.pipe(h),u.pipe(A)}else n=A,u=A,typeof r<"u"&&n.write(`${r} +`);return{stdout:n,stderr:u}}makeResolver(){let e=[];for(let r of this.plugins.values())for(let o of r.resolvers||[])e.push(new o);return new Pg([new wb,new ci,...e])}makeFetcher(){let e=[];for(let r of this.plugins.values())for(let o of r.fetchers||[])e.push(new o);return new py([new hy,new gy,...e])}getLinkers(){let e=[];for(let r of this.plugins.values())for(let o of r.linkers||[])e.push(new o);return e}getSupportedArchitectures(){let e=q1(),r=this.get("supportedArchitectures"),o=r.get("os");o!==null&&(o=o.map(u=>u==="current"?e.os:u));let a=r.get("cpu");a!==null&&(a=a.map(u=>u==="current"?e.cpu:u));let n=r.get("libc");return n!==null&&(n=ul(n,u=>u==="current"?e.libc??ul.skip:u)),{os:o,cpu:a,libc:n}}isInteractive({interactive:e,stdout:r}){return r.isTTY?e??this.get("preferInteractive"):!1}async getPackageExtensions(){if(this.packageExtensions!==null)return this.packageExtensions;this.packageExtensions=new Map;let e=this.packageExtensions,r=(o,a,{userProvided:n=!1}={})=>{if(!Fa(o.range))throw new Error("Only semver ranges are allowed as keys for the packageExtensions setting");let u=new _t;u.load(a,{yamlCompatibilityMode:!0});let A=u1(e,o.identHash),p=[];A.push([o.range,p]);let h={status:"inactive",userProvided:n,parentDescriptor:o};for(let E of u.dependencies.values())p.push({...h,type:"Dependency",descriptor:E});for(let E of u.peerDependencies.values())p.push({...h,type:"PeerDependency",descriptor:E});for(let[E,w]of u.peerDependenciesMeta)for(let[D,x]of Object.entries(w))p.push({...h,type:"PeerDependencyMeta",selector:E,key:D,value:x})};await this.triggerHook(o=>o.registerPackageExtensions,this,r);for(let[o,a]of this.get("packageExtensions"))r(lh(o,!0),NS(a),{userProvided:!0});return e}normalizeLocator(e){return Fa(e.reference)?Ss(e,`${this.get("defaultProtocol")}${e.reference}`):xy.test(e.reference)?Ss(e,`${this.get("defaultProtocol")}${e.reference}`):e}normalizeDependency(e){return Fa(e.range)?kn(e,`${this.get("defaultProtocol")}${e.range}`):xy.test(e.range)?kn(e,`${this.get("defaultProtocol")}${e.range}`):e}normalizeDependencyMap(e){return new Map([...e].map(([r,o])=>[r,this.normalizeDependency(o)]))}normalizePackage(e,{packageExtensions:r}){let o=E1(e),a=r.get(e.identHash);if(typeof a<"u"){let u=e.version;if(u!==null){for(let[A,p]of a)if(nA(u,A))for(let h of p)switch(h.status==="inactive"&&(h.status="redundant"),h.type){case"Dependency":typeof o.dependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.dependencies.set(h.descriptor.identHash,this.normalizeDependency(h.descriptor)));break;case"PeerDependency":typeof o.peerDependencies.get(h.descriptor.identHash)>"u"&&(h.status="active",o.peerDependencies.set(h.descriptor.identHash,h.descriptor));break;case"PeerDependencyMeta":{let E=o.peerDependenciesMeta.get(h.selector);(typeof E>"u"||!Object.hasOwn(E,h.key)||E[h.key]!==h.value)&&(h.status="active",Al(o.peerDependenciesMeta,h.selector,()=>({}))[h.key]=h.value)}break;default:tO(h)}}}let n=u=>u.scope?`${u.scope}__${u.name}`:`${u.name}`;for(let u of o.peerDependenciesMeta.keys()){let A=Zo(u);o.peerDependencies.has(A.identHash)||o.peerDependencies.set(A.identHash,kn(A,"*"))}for(let u of o.peerDependencies.values()){if(u.scope==="types")continue;let A=n(u),p=rA("types",A),h=rn(p);o.peerDependencies.has(p.identHash)||o.peerDependenciesMeta.has(h)||(o.peerDependencies.set(p.identHash,kn(p,"*")),o.peerDependenciesMeta.set(h,{optional:!0}))}return o.dependencies=new Map(Ps(o.dependencies,([,u])=>ka(u))),o.peerDependencies=new Map(Ps(o.peerDependencies,([,u])=>ka(u))),o}getLimit(e){return Al(this.limits,e,()=>(0,mce.default)(this.get(e)))}async triggerHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);n&&await n(...r)}}async triggerMultipleHooks(e,r){for(let o of r)await this.triggerHook(e,...o)}async reduceHook(e,r,...o){let a=r;for(let n of this.plugins.values()){let u=n.hooks;if(!u)continue;let A=e(u);A&&(a=await A(a,...o))}return a}async firstHook(e,...r){for(let o of this.plugins.values()){let a=o.hooks;if(!a)continue;let n=e(a);if(!n)continue;let u=await n(...r);if(typeof u<"u")return u}return null}}});var Hr={};Kt(Hr,{EndStrategy:()=>R4,ExecError:()=>cx,PipeError:()=>Y1,execvp:()=>B4,pipevp:()=>Xc});function kg(t){return t!==null&&typeof t.fd=="number"}function k4(){}function Q4(){for(let t of Qg)t.kill()}async function Xc(t,e,{cwd:r,env:o=process.env,strict:a=!1,stdin:n=null,stdout:u,stderr:A,end:p=2}){let h=["pipe","pipe","pipe"];n===null?h[0]="ignore":kg(n)&&(h[0]=n),kg(u)&&(h[1]=u),kg(A)&&(h[2]=A);let E=(0,F4.default)(t,e,{cwd:Ae.fromPortablePath(r),env:{...o,PWD:Ae.fromPortablePath(r)},stdio:h});Qg.add(E),Qg.size===1&&(process.on("SIGINT",k4),process.on("SIGTERM",Q4)),!kg(n)&&n!==null&&n.pipe(E.stdin),kg(u)||E.stdout.pipe(u,{end:!1}),kg(A)||E.stderr.pipe(A,{end:!1});let w=()=>{for(let D of new Set([u,A]))kg(D)||D.end()};return new Promise((D,x)=>{E.on("error",C=>{Qg.delete(E),Qg.size===0&&(process.off("SIGINT",k4),process.off("SIGTERM",Q4)),(p===2||p===1)&&w(),x(C)}),E.on("close",(C,T)=>{Qg.delete(E),Qg.size===0&&(process.off("SIGINT",k4),process.off("SIGTERM",Q4)),(p===2||p===1&&C!==0)&&w(),C===0||!a?D({code:T4(C,T)}):x(new Y1({fileName:t,code:C,signal:T}))})})}async function B4(t,e,{cwd:r,env:o=process.env,encoding:a="utf8",strict:n=!1}){let u=["ignore","pipe","pipe"],A=[],p=[],h=Ae.fromPortablePath(r);typeof o.PWD<"u"&&(o={...o,PWD:h});let E=(0,F4.default)(t,e,{cwd:h,env:o,stdio:u});return E.stdout.on("data",w=>{A.push(w)}),E.stderr.on("data",w=>{p.push(w)}),await new Promise((w,D)=>{E.on("error",x=>{let C=ze.create(r),T=Ut(C,t,Ct.PATH);D(new Jt(1,`Process ${T} failed to spawn`,L=>{L.reportError(1,` ${$u(C,{label:"Thrown Error",value:Yc(Ct.NO_HINT,x.message)})}`)}))}),E.on("close",(x,C)=>{let T=a==="buffer"?Buffer.concat(A):Buffer.concat(A).toString(a),L=a==="buffer"?Buffer.concat(p):Buffer.concat(p).toString(a);x===0||!n?w({code:T4(x,C),stdout:T,stderr:L}):D(new cx({fileName:t,code:x,signal:C,stdout:T,stderr:L}))})})}function T4(t,e){let r=Zst.get(e);return typeof r<"u"?128+r:t??1}function $st(t,e,{configuration:r,report:o}){o.reportError(1,` ${$u(r,t!==null?{label:"Exit Code",value:Yc(Ct.NUMBER,t)}:{label:"Exit Signal",value:Yc(Ct.CODE,e)})}`)}var F4,R4,Y1,cx,Qg,Zst,ix=It(()=>{Pt();F4=et(MT());W1();Vl();Wl();R4=(o=>(o[o.Never=0]="Never",o[o.ErrorCode=1]="ErrorCode",o[o.Always=2]="Always",o))(R4||{}),Y1=class extends Jt{constructor({fileName:e,code:r,signal:o}){let a=ze.create(K.cwd()),n=Ut(a,e,Ct.PATH);super(1,`Child ${n} reported an error`,u=>{$st(r,o,{configuration:a,report:u})}),this.code=T4(r,o)}},cx=class extends Y1{constructor({fileName:e,code:r,signal:o,stdout:a,stderr:n}){super({fileName:e,code:r,signal:o}),this.stdout=a,this.stderr=n}};Qg=new Set;Zst=new Map([["SIGINT",2],["SIGQUIT",3],["SIGKILL",9],["SIGTERM",15]])});function Cce(t){Ece=t}function K1(){return typeof N4>"u"&&(N4=Ece()),N4}var N4,Ece,L4=It(()=>{Ece=()=>{throw new Error("Assertion failed: No libzip instance is available, and no factory was configured")}});var Ice=_((ux,M4)=>{var eot=Object.assign({},ve("fs")),O4=function(){var t=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(t=t||__filename),function(e){e=e||{};var r=typeof e<"u"?e:{},o,a;r.ready=new Promise(function(Je,st){o=Je,a=st});var n={},u;for(u in r)r.hasOwnProperty(u)&&(n[u]=r[u]);var A=[],p="./this.program",h=function(Je,st){throw st},E=!1,w=!0,D="";function x(Je){return r.locateFile?r.locateFile(Je,D):D+Je}var C,T,L,U;w&&(E?D=ve("path").dirname(D)+"/":D=__dirname+"/",C=function(st,vt){var ar=ia(st);return ar?vt?ar:ar.toString():(L||(L=eot),U||(U=ve("path")),st=U.normalize(st),L.readFileSync(st,vt?null:"utf8"))},T=function(st){var vt=C(st,!0);return vt.buffer||(vt=new Uint8Array(vt)),me(vt.buffer),vt},process.argv.length>1&&(p=process.argv[1].replace(/\\/g,"/")),A=process.argv.slice(2),h=function(Je){process.exit(Je)},r.inspect=function(){return"[Emscripten Module object]"});var J=r.print||console.log.bind(console),te=r.printErr||console.warn.bind(console);for(u in n)n.hasOwnProperty(u)&&(r[u]=n[u]);n=null,r.arguments&&(A=r.arguments),r.thisProgram&&(p=r.thisProgram),r.quit&&(h=r.quit);var le=0,ce=function(Je){le=Je},ue;r.wasmBinary&&(ue=r.wasmBinary);var Ie=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Hi("no native wasm support detected");function he(Je,st,vt){switch(st=st||"i8",st.charAt(st.length-1)==="*"&&(st="i32"),st){case"i1":return Ve[Je>>0];case"i8":return Ve[Je>>0];case"i16":return ap((Je>>1)*2);case"i32":return Rs((Je>>2)*4);case"i64":return Rs((Je>>2)*4);case"float":return gu((Je>>2)*4);case"double":return op((Je>>3)*8);default:Hi("invalid type for getValue: "+st)}return null}var De,Ee=!1,g;function me(Je,st){Je||Hi("Assertion failed: "+st)}function Ce(Je){var st=r["_"+Je];return me(st,"Cannot call unknown function "+Je+", make sure it is exported"),st}function fe(Je,st,vt,ar,ee){var ye={string:function(Qi){var Pn=0;if(Qi!=null&&Qi!==0){var fa=(Qi.length<<2)+1;Pn=pi(fa),ht(Qi,Pn,fa)}return Pn},array:function(Qi){var Pn=pi(Qi.length);return Ne(Qi,Pn),Pn}};function Le(Qi){return st==="string"?Pe(Qi):st==="boolean"?!!Qi:Qi}var gt=Ce(Je),mt=[],Dt=0;if(ar)for(var er=0;er=vt)&&be[ar];)++ar;return Z.decode(be.subarray(Je,ar))}function Re(Je,st,vt,ar){if(!(ar>0))return 0;for(var ee=vt,ye=vt+ar-1,Le=0;Le=55296&><=57343){var mt=Je.charCodeAt(++Le);gt=65536+((gt&1023)<<10)|mt&1023}if(gt<=127){if(vt>=ye)break;st[vt++]=gt}else if(gt<=2047){if(vt+1>=ye)break;st[vt++]=192|gt>>6,st[vt++]=128|gt&63}else if(gt<=65535){if(vt+2>=ye)break;st[vt++]=224|gt>>12,st[vt++]=128|gt>>6&63,st[vt++]=128|gt&63}else{if(vt+3>=ye)break;st[vt++]=240|gt>>18,st[vt++]=128|gt>>12&63,st[vt++]=128|gt>>6&63,st[vt++]=128|gt&63}}return st[vt]=0,vt-ee}function ht(Je,st,vt){return Re(Je,be,st,vt)}function q(Je){for(var st=0,vt=0;vt=55296&&ar<=57343&&(ar=65536+((ar&1023)<<10)|Je.charCodeAt(++vt)&1023),ar<=127?++st:ar<=2047?st+=2:ar<=65535?st+=3:st+=4}return st}function nt(Je){var st=q(Je)+1,vt=aa(st);return vt&&Re(Je,Ve,vt,st),vt}function Ne(Je,st){Ve.set(Je,st)}function Te(Je,st){return Je%st>0&&(Je+=st-Je%st),Je}var ke,Ve,be,tt,He,b,I,S,y,R;function z(Je){ke=Je,r.HEAP_DATA_VIEW=R=new DataView(Je),r.HEAP8=Ve=new Int8Array(Je),r.HEAP16=tt=new Int16Array(Je),r.HEAP32=b=new Int32Array(Je),r.HEAPU8=be=new Uint8Array(Je),r.HEAPU16=He=new Uint16Array(Je),r.HEAPU32=I=new Uint32Array(Je),r.HEAPF32=S=new Float32Array(Je),r.HEAPF64=y=new Float64Array(Je)}var X=r.INITIAL_MEMORY||16777216,$,se=[],xe=[],Fe=[],lt=!1;function Et(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)St(r.preRun.shift());hs(se)}function qt(){lt=!0,hs(xe)}function nr(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Pr(r.postRun.shift());hs(Fe)}function St(Je){se.unshift(Je)}function cn(Je){xe.unshift(Je)}function Pr(Je){Fe.unshift(Je)}var yr=0,Rr=null,Xr=null;function $n(Je){yr++,r.monitorRunDependencies&&r.monitorRunDependencies(yr)}function Xs(Je){if(yr--,r.monitorRunDependencies&&r.monitorRunDependencies(yr),yr==0&&(Rr!==null&&(clearInterval(Rr),Rr=null),Xr)){var st=Xr;Xr=null,st()}}r.preloadedImages={},r.preloadedAudios={};function Hi(Je){r.onAbort&&r.onAbort(Je),Je+="",te(Je),Ee=!0,g=1,Je="abort("+Je+"). Build with -s ASSERTIONS=1 for more info.";var st=new WebAssembly.RuntimeError(Je);throw a(st),st}var Qs="data:application/octet-stream;base64,";function Zs(Je){return Je.startsWith(Qs)}var xi="data:application/octet-stream;base64,AGFzbQEAAAAB/wEkYAN/f38Bf2ABfwF/YAJ/fwF/YAF/AGAEf39/fwF/YAN/f38AYAV/f39/fwF/YAJ/fwBgBH9/f38AYAABf2AFf39/fn8BfmAEf35/fwF/YAR/f35/AX5gAn9+AX9gA398fwBgA39/fgF/YAF/AX5gBn9/f39/fwF/YAN/fn8Bf2AEf39/fwF+YAV/f35/fwF/YAR/f35/AX9gA39/fgF+YAJ/fgBgAn9/AX5gBX9/f39/AGADf35/AX5gBX5+f35/AX5gA39/fwF+YAZ/fH9/f38Bf2AAAGAHf35/f39+fwF/YAV/fn9/fwF/YAV/f39/fwF+YAJ+fwF/YAJ/fAACJQYBYQFhAAMBYQFiAAEBYQFjAAABYQFkAAEBYQFlAAIBYQFmAAED5wHlAQMAAwEDAwEHDAgDFgcNEgEDDRcFAQ8DEAUQAwIBAhgECxkEAQMBBQsFAwMDARACBAMAAggLBwEAAwADGgQDGwYGABwBBgMTFBEHBwcVCx4ABAgHBAICAgAfAQICAgIGFSAAIQAiAAIBBgIHAg0LEw0FAQUCACMDAQAUAAAGBQECBQUDCwsSAgEDBQIHAQEICAACCQQEAQABCAEBCQoBAwkBAQEBBgEGBgYABAIEBAQGEQQEAAARAAEDCQEJAQAJCQkBAQECCgoAAAMPAQEBAwACAgICBQIABwAKBgwHAAADAgICBQEEBQFwAT8/BQcBAYACgIACBgkBfwFBgInBAgsH+gEzAWcCAAFoAFQBaQDqAQFqALsBAWsAwQEBbACpAQFtAKgBAW4ApwEBbwClAQFwAKMBAXEAoAEBcgCbAQFzAMABAXQAugEBdQC5AQF2AEsBdwDiAQF4AMgBAXkAxwEBegDCAQFBAMkBAUIAuAEBQwAGAUQACQFFAKYBAUYAtwEBRwC2AQFIALUBAUkAtAEBSgCzAQFLALIBAUwAsQEBTQCwAQFOAK8BAU8AvAEBUACuAQFRAK0BAVIArAEBUwAaAVQACwFVAKQBAVYAMgFXAQABWACrAQFZAKoBAVoAxgEBXwDFAQEkAMQBAmFhAL8BAmJhAL4BAmNhAL0BCXgBAEEBCz6iAeMBjgGQAVpbjwFYnwGdAVeeAV1coQFZVlWcAZoBmQGYAZcBlgGVAZQBkwGSAZEB6QHoAecB5gHlAeQB4QHfAeAB3gHdAdwB2gHbAYUB2QHYAdcB1gHVAdQB0wHSAdEB0AHPAc4BzQHMAcsBygE4wwEK1N8G5QHMDAEHfwJAIABFDQAgAEEIayIDIABBBGsoAgAiAUF4cSIAaiEFAkAgAUEBcQ0AIAFBA3FFDQEgAyADKAIAIgFrIgNBxIQBKAIASQ0BIAAgAWohACADQciEASgCAEcEQCABQf8BTQRAIAMoAggiAiABQQN2IgRBA3RB3IQBakYaIAIgAygCDCIBRgRAQbSEAUG0hAEoAgBBfiAEd3E2AgAMAwsgAiABNgIMIAEgAjYCCAwCCyADKAIYIQYCQCADIAMoAgwiAUcEQCADKAIIIgIgATYCDCABIAI2AggMAQsCQCADQRRqIgIoAgAiBA0AIANBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAQJAIAMgAygCHCICQQJ0QeSGAWoiBCgCAEYEQCAEIAE2AgAgAQ0BQbiEAUG4hAEoAgBBfiACd3E2AgAMAwsgBkEQQRQgBigCECADRhtqIAE2AgAgAUUNAgsgASAGNgIYIAMoAhAiAgRAIAEgAjYCECACIAE2AhgLIAMoAhQiAkUNASABIAI2AhQgAiABNgIYDAELIAUoAgQiAUEDcUEDRw0AQbyEASAANgIAIAUgAUF+cTYCBCADIABBAXI2AgQgACADaiAANgIADwsgAyAFTw0AIAUoAgQiAUEBcUUNAAJAIAFBAnFFBEAgBUHMhAEoAgBGBEBBzIQBIAM2AgBBwIQBQcCEASgCACAAaiIANgIAIAMgAEEBcjYCBCADQciEASgCAEcNA0G8hAFBADYCAEHIhAFBADYCAA8LIAVByIQBKAIARgRAQciEASADNgIAQbyEAUG8hAEoAgAgAGoiADYCACADIABBAXI2AgQgACADaiAANgIADwsgAUF4cSAAaiEAAkAgAUH/AU0EQCAFKAIIIgIgAUEDdiIEQQN0QdyEAWpGGiACIAUoAgwiAUYEQEG0hAFBtIQBKAIAQX4gBHdxNgIADAILIAIgATYCDCABIAI2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgFHBEAgBSgCCCICQcSEASgCAEkaIAIgATYCDCABIAI2AggMAQsCQCAFQRRqIgIoAgAiBA0AIAVBEGoiAigCACIEDQBBACEBDAELA0AgAiEHIAQiAUEUaiICKAIAIgQNACABQRBqIQIgASgCECIEDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCICQQJ0QeSGAWoiBCgCAEYEQCAEIAE2AgAgAQ0BQbiEAUG4hAEoAgBBfiACd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAE2AgAgAUUNAQsgASAGNgIYIAUoAhAiAgRAIAEgAjYCECACIAE2AhgLIAUoAhQiAkUNACABIAI2AhQgAiABNgIYCyADIABBAXI2AgQgACADaiAANgIAIANByIQBKAIARw0BQbyEASAANgIADwsgBSABQX5xNgIEIAMgAEEBcjYCBCAAIANqIAA2AgALIABB/wFNBEAgAEEDdiIBQQN0QdyEAWohAAJ/QbSEASgCACICQQEgAXQiAXFFBEBBtIQBIAEgAnI2AgAgAAwBCyAAKAIICyECIAAgAzYCCCACIAM2AgwgAyAANgIMIAMgAjYCCA8LQR8hAiADQgA3AhAgAEH///8HTQRAIABBCHYiASABQYD+P2pBEHZBCHEiAXQiAiACQYDgH2pBEHZBBHEiAnQiBCAEQYCAD2pBEHZBAnEiBHRBD3YgASACciAEcmsiAUEBdCAAIAFBFWp2QQFxckEcaiECCyADIAI2AhwgAkECdEHkhgFqIQECQAJAAkBBuIQBKAIAIgRBASACdCIHcUUEQEG4hAEgBCAHcjYCACABIAM2AgAgAyABNgIYDAELIABBAEEZIAJBAXZrIAJBH0YbdCECIAEoAgAhAQNAIAEiBCgCBEF4cSAARg0CIAJBHXYhASACQQF0IQIgBCABQQRxaiIHQRBqKAIAIgENAAsgByADNgIQIAMgBDYCGAsgAyADNgIMIAMgAzYCCAwBCyAEKAIIIgAgAzYCDCAEIAM2AgggA0EANgIYIAMgBDYCDCADIAA2AggLQdSEAUHUhAEoAgBBAWsiAEF/IAAbNgIACwuDBAEDfyACQYAETwRAIAAgASACEAIaIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAEEDcUUEQCAAIQIMAQsgAkEBSARAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAkEDcUUNASACIANJDQALCwJAIANBfHEiBEHAAEkNACACIARBQGoiBUsNAANAIAIgASgCADYCACACIAEoAgQ2AgQgAiABKAIINgIIIAIgASgCDDYCDCACIAEoAhA2AhAgAiABKAIUNgIUIAIgASgCGDYCGCACIAEoAhw2AhwgAiABKAIgNgIgIAIgASgCJDYCJCACIAEoAig2AiggAiABKAIsNgIsIAIgASgCMDYCMCACIAEoAjQ2AjQgAiABKAI4NgI4IAIgASgCPDYCPCABQUBrIQEgAkFAayICIAVNDQALCyACIARPDQEDQCACIAEoAgA2AgAgAUEEaiEBIAJBBGoiAiAESQ0ACwwBCyADQQRJBEAgACECDAELIAAgA0EEayIESwRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAiABLQABOgABIAIgAS0AAjoAAiACIAEtAAM6AAMgAUEEaiEBIAJBBGoiAiAETQ0ACwsgAiADSQRAA0AgAiABLQAAOgAAIAFBAWohASACQQFqIgIgA0cNAAsLIAALGgAgAARAIAAtAAEEQCAAKAIEEAYLIAAQBgsLoi4BDH8jAEEQayIMJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH0AU0EQEG0hAEoAgAiBUEQIABBC2pBeHEgAEELSRsiCEEDdiICdiIBQQNxBEAgAUF/c0EBcSACaiIDQQN0IgFB5IQBaigCACIEQQhqIQACQCAEKAIIIgIgAUHchAFqIgFGBEBBtIQBIAVBfiADd3E2AgAMAQsgAiABNgIMIAEgAjYCCAsgBCADQQN0IgFBA3I2AgQgASAEaiIBIAEoAgRBAXI2AgQMDQsgCEG8hAEoAgAiCk0NASABBEACQEECIAJ0IgBBACAAa3IgASACdHEiAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqIgNBA3QiAEHkhAFqKAIAIgQoAggiASAAQdyEAWoiAEYEQEG0hAEgBUF+IAN3cSIFNgIADAELIAEgADYCDCAAIAE2AggLIARBCGohACAEIAhBA3I2AgQgBCAIaiICIANBA3QiASAIayIDQQFyNgIEIAEgBGogAzYCACAKBEAgCkEDdiIBQQN0QdyEAWohB0HIhAEoAgAhBAJ/IAVBASABdCIBcUUEQEG0hAEgASAFcjYCACAHDAELIAcoAggLIQEgByAENgIIIAEgBDYCDCAEIAc2AgwgBCABNgIIC0HIhAEgAjYCAEG8hAEgAzYCAAwNC0G4hAEoAgAiBkUNASAGQQAgBmtxQQFrIgAgAEEMdkEQcSICdiIBQQV2QQhxIgAgAnIgASAAdiIBQQJ2QQRxIgByIAEgAHYiAUEBdkECcSIAciABIAB2IgFBAXZBAXEiAHIgASAAdmpBAnRB5IYBaigCACIBKAIEQXhxIAhrIQMgASECA0ACQCACKAIQIgBFBEAgAigCFCIARQ0BCyAAKAIEQXhxIAhrIgIgAyACIANJIgIbIQMgACABIAIbIQEgACECDAELCyABIAhqIgkgAU0NAiABKAIYIQsgASABKAIMIgRHBEAgASgCCCIAQcSEASgCAEkaIAAgBDYCDCAEIAA2AggMDAsgAUEUaiICKAIAIgBFBEAgASgCECIARQ0EIAFBEGohAgsDQCACIQcgACIEQRRqIgIoAgAiAA0AIARBEGohAiAEKAIQIgANAAsgB0EANgIADAsLQX8hCCAAQb9/Sw0AIABBC2oiAEF4cSEIQbiEASgCACIJRQ0AQQAgCGshAwJAAkACQAJ/QQAgCEGAAkkNABpBHyAIQf///wdLDQAaIABBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCAIIABBFWp2QQFxckEcagsiBUECdEHkhgFqKAIAIgJFBEBBACEADAELQQAhACAIQQBBGSAFQQF2ayAFQR9GG3QhAQNAAkAgAigCBEF4cSAIayIHIANPDQAgAiEEIAciAw0AQQAhAyACIQAMAwsgACACKAIUIgcgByACIAFBHXZBBHFqKAIQIgJGGyAAIAcbIQAgAUEBdCEBIAINAAsLIAAgBHJFBEBBAiAFdCIAQQAgAGtyIAlxIgBFDQMgAEEAIABrcUEBayIAIABBDHZBEHEiAnYiAUEFdkEIcSIAIAJyIAEgAHYiAUECdkEEcSIAciABIAB2IgFBAXZBAnEiAHIgASAAdiIBQQF2QQFxIgByIAEgAHZqQQJ0QeSGAWooAgAhAAsgAEUNAQsDQCAAKAIEQXhxIAhrIgEgA0khAiABIAMgAhshAyAAIAQgAhshBCAAKAIQIgEEfyABBSAAKAIUCyIADQALCyAERQ0AIANBvIQBKAIAIAhrTw0AIAQgCGoiBiAETQ0BIAQoAhghBSAEIAQoAgwiAUcEQCAEKAIIIgBBxIQBKAIASRogACABNgIMIAEgADYCCAwKCyAEQRRqIgIoAgAiAEUEQCAEKAIQIgBFDQQgBEEQaiECCwNAIAIhByAAIgFBFGoiAigCACIADQAgAUEQaiECIAEoAhAiAA0ACyAHQQA2AgAMCQsgCEG8hAEoAgAiAk0EQEHIhAEoAgAhAwJAIAIgCGsiAUEQTwRAQbyEASABNgIAQciEASADIAhqIgA2AgAgACABQQFyNgIEIAIgA2ogATYCACADIAhBA3I2AgQMAQtByIQBQQA2AgBBvIQBQQA2AgAgAyACQQNyNgIEIAIgA2oiACAAKAIEQQFyNgIECyADQQhqIQAMCwsgCEHAhAEoAgAiBkkEQEHAhAEgBiAIayIBNgIAQcyEAUHMhAEoAgAiAiAIaiIANgIAIAAgAUEBcjYCBCACIAhBA3I2AgQgAkEIaiEADAsLQQAhACAIQS9qIgkCf0GMiAEoAgAEQEGUiAEoAgAMAQtBmIgBQn83AgBBkIgBQoCggICAgAQ3AgBBjIgBIAxBDGpBcHFB2KrVqgVzNgIAQaCIAUEANgIAQfCHAUEANgIAQYAgCyIBaiIFQQAgAWsiB3EiAiAITQ0KQeyHASgCACIEBEBB5IcBKAIAIgMgAmoiASADTQ0LIAEgBEsNCwtB8IcBLQAAQQRxDQUCQAJAQcyEASgCACIDBEBB9IcBIQADQCADIAAoAgAiAU8EQCABIAAoAgRqIANLDQMLIAAoAggiAA0ACwtBABApIgFBf0YNBiACIQVBkIgBKAIAIgNBAWsiACABcQRAIAIgAWsgACABakEAIANrcWohBQsgBSAITQ0GIAVB/v///wdLDQZB7IcBKAIAIgQEQEHkhwEoAgAiAyAFaiIAIANNDQcgACAESw0HCyAFECkiACABRw0BDAgLIAUgBmsgB3EiBUH+////B0sNBSAFECkiASAAKAIAIAAoAgRqRg0EIAEhAAsCQCAAQX9GDQAgCEEwaiAFTQ0AQZSIASgCACIBIAkgBWtqQQAgAWtxIgFB/v///wdLBEAgACEBDAgLIAEQKUF/RwRAIAEgBWohBSAAIQEMCAtBACAFaxApGgwFCyAAIgFBf0cNBgwECwALQQAhBAwHC0EAIQEMBQsgAUF/Rw0CC0HwhwFB8IcBKAIAQQRyNgIACyACQf7///8HSw0BIAIQKSEBQQAQKSEAIAFBf0YNASAAQX9GDQEgACABTQ0BIAAgAWsiBSAIQShqTQ0BC0HkhwFB5IcBKAIAIAVqIgA2AgBB6IcBKAIAIABJBEBB6IcBIAA2AgALAkACQAJAQcyEASgCACIHBEBB9IcBIQADQCABIAAoAgAiAyAAKAIEIgJqRg0CIAAoAggiAA0ACwwCC0HEhAEoAgAiAEEAIAAgAU0bRQRAQcSEASABNgIAC0EAIQBB+IcBIAU2AgBB9IcBIAE2AgBB1IQBQX82AgBB2IQBQYyIASgCADYCAEGAiAFBADYCAANAIABBA3QiA0HkhAFqIANB3IQBaiICNgIAIANB6IQBaiACNgIAIABBAWoiAEEgRw0AC0HAhAEgBUEoayIDQXggAWtBB3FBACABQQhqQQdxGyIAayICNgIAQcyEASAAIAFqIgA2AgAgACACQQFyNgIEIAEgA2pBKDYCBEHQhAFBnIgBKAIANgIADAILIAAtAAxBCHENACADIAdLDQAgASAHTQ0AIAAgAiAFajYCBEHMhAEgB0F4IAdrQQdxQQAgB0EIakEHcRsiAGoiAjYCAEHAhAFBwIQBKAIAIAVqIgEgAGsiADYCACACIABBAXI2AgQgASAHakEoNgIEQdCEAUGciAEoAgA2AgAMAQtBxIQBKAIAIAFLBEBBxIQBIAE2AgALIAEgBWohAkH0hwEhAAJAAkACQAJAAkACQANAIAIgACgCAEcEQCAAKAIIIgANAQwCCwsgAC0ADEEIcUUNAQtB9IcBIQADQCAHIAAoAgAiAk8EQCACIAAoAgRqIgQgB0sNAwsgACgCCCEADAALAAsgACABNgIAIAAgACgCBCAFajYCBCABQXggAWtBB3FBACABQQhqQQdxG2oiCSAIQQNyNgIEIAJBeCACa0EHcUEAIAJBCGpBB3EbaiIFIAggCWoiBmshAiAFIAdGBEBBzIQBIAY2AgBBwIQBQcCEASgCACACaiIANgIAIAYgAEEBcjYCBAwDCyAFQciEASgCAEYEQEHIhAEgBjYCAEG8hAFBvIQBKAIAIAJqIgA2AgAgBiAAQQFyNgIEIAAgBmogADYCAAwDCyAFKAIEIgBBA3FBAUYEQCAAQXhxIQcCQCAAQf8BTQRAIAUoAggiAyAAQQN2IgBBA3RB3IQBakYaIAMgBSgCDCIBRgRAQbSEAUG0hAEoAgBBfiAAd3E2AgAMAgsgAyABNgIMIAEgAzYCCAwBCyAFKAIYIQgCQCAFIAUoAgwiAUcEQCAFKAIIIgAgATYCDCABIAA2AggMAQsCQCAFQRRqIgAoAgAiAw0AIAVBEGoiACgCACIDDQBBACEBDAELA0AgACEEIAMiAUEUaiIAKAIAIgMNACABQRBqIQAgASgCECIDDQALIARBADYCAAsgCEUNAAJAIAUgBSgCHCIDQQJ0QeSGAWoiACgCAEYEQCAAIAE2AgAgAQ0BQbiEAUG4hAEoAgBBfiADd3E2AgAMAgsgCEEQQRQgCCgCECAFRhtqIAE2AgAgAUUNAQsgASAINgIYIAUoAhAiAARAIAEgADYCECAAIAE2AhgLIAUoAhQiAEUNACABIAA2AhQgACABNgIYCyAFIAdqIQUgAiAHaiECCyAFIAUoAgRBfnE2AgQgBiACQQFyNgIEIAIgBmogAjYCACACQf8BTQRAIAJBA3YiAEEDdEHchAFqIQICf0G0hAEoAgAiAUEBIAB0IgBxRQRAQbSEASAAIAFyNgIAIAIMAQsgAigCCAshACACIAY2AgggACAGNgIMIAYgAjYCDCAGIAA2AggMAwtBHyEAIAJB////B00EQCACQQh2IgAgAEGA/j9qQRB2QQhxIgN0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgA3IgAHJrIgBBAXQgAiAAQRVqdkEBcXJBHGohAAsgBiAANgIcIAZCADcCECAAQQJ0QeSGAWohBAJAQbiEASgCACIDQQEgAHQiAXFFBEBBuIQBIAEgA3I2AgAgBCAGNgIAIAYgBDYCGAwBCyACQQBBGSAAQQF2ayAAQR9GG3QhACAEKAIAIQEDQCABIgMoAgRBeHEgAkYNAyAAQR12IQEgAEEBdCEAIAMgAUEEcWoiBCgCECIBDQALIAQgBjYCECAGIAM2AhgLIAYgBjYCDCAGIAY2AggMAgtBwIQBIAVBKGsiA0F4IAFrQQdxQQAgAUEIakEHcRsiAGsiAjYCAEHMhAEgACABaiIANgIAIAAgAkEBcjYCBCABIANqQSg2AgRB0IQBQZyIASgCADYCACAHIARBJyAEa0EHcUEAIARBJ2tBB3EbakEvayIAIAAgB0EQakkbIgJBGzYCBCACQfyHASkCADcCECACQfSHASkCADcCCEH8hwEgAkEIajYCAEH4hwEgBTYCAEH0hwEgATYCAEGAiAFBADYCACACQRhqIQADQCAAQQc2AgQgAEEIaiEBIABBBGohACABIARJDQALIAIgB0YNAyACIAIoAgRBfnE2AgQgByACIAdrIgRBAXI2AgQgAiAENgIAIARB/wFNBEAgBEEDdiIAQQN0QdyEAWohAgJ/QbSEASgCACIBQQEgAHQiAHFFBEBBtIQBIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBzYCCCAAIAc2AgwgByACNgIMIAcgADYCCAwEC0EfIQAgB0IANwIQIARB////B00EQCAEQQh2IgAgAEGA/j9qQRB2QQhxIgJ0IgAgAEGA4B9qQRB2QQRxIgF0IgAgAEGAgA9qQRB2QQJxIgB0QQ92IAEgAnIgAHJrIgBBAXQgBCAAQRVqdkEBcXJBHGohAAsgByAANgIcIABBAnRB5IYBaiEDAkBBuIQBKAIAIgJBASAAdCIBcUUEQEG4hAEgASACcjYCACADIAc2AgAgByADNgIYDAELIARBAEEZIABBAXZrIABBH0YbdCEAIAMoAgAhAQNAIAEiAigCBEF4cSAERg0EIABBHXYhASAAQQF0IQAgAiABQQRxaiIDKAIQIgENAAsgAyAHNgIQIAcgAjYCGAsgByAHNgIMIAcgBzYCCAwDCyADKAIIIgAgBjYCDCADIAY2AgggBkEANgIYIAYgAzYCDCAGIAA2AggLIAlBCGohAAwFCyACKAIIIgAgBzYCDCACIAc2AgggB0EANgIYIAcgAjYCDCAHIAA2AggLQcCEASgCACIAIAhNDQBBwIQBIAAgCGsiATYCAEHMhAFBzIQBKAIAIgIgCGoiADYCACAAIAFBAXI2AgQgAiAIQQNyNgIEIAJBCGohAAwDC0GEhAFBMDYCAEEAIQAMAgsCQCAFRQ0AAkAgBCgCHCICQQJ0QeSGAWoiACgCACAERgRAIAAgATYCACABDQFBuIQBIAlBfiACd3EiCTYCAAwCCyAFQRBBFCAFKAIQIARGG2ogATYCACABRQ0BCyABIAU2AhggBCgCECIABEAgASAANgIQIAAgATYCGAsgBCgCFCIARQ0AIAEgADYCFCAAIAE2AhgLAkAgA0EPTQRAIAQgAyAIaiIAQQNyNgIEIAAgBGoiACAAKAIEQQFyNgIEDAELIAQgCEEDcjYCBCAGIANBAXI2AgQgAyAGaiADNgIAIANB/wFNBEAgA0EDdiIAQQN0QdyEAWohAgJ/QbSEASgCACIBQQEgAHQiAHFFBEBBtIQBIAAgAXI2AgAgAgwBCyACKAIICyEAIAIgBjYCCCAAIAY2AgwgBiACNgIMIAYgADYCCAwBC0EfIQAgA0H///8HTQRAIANBCHYiACAAQYD+P2pBEHZBCHEiAnQiACAAQYDgH2pBEHZBBHEiAXQiACAAQYCAD2pBEHZBAnEiAHRBD3YgASACciAAcmsiAEEBdCADIABBFWp2QQFxckEcaiEACyAGIAA2AhwgBkIANwIQIABBAnRB5IYBaiECAkACQCAJQQEgAHQiAXFFBEBBuIQBIAEgCXI2AgAgAiAGNgIAIAYgAjYCGAwBCyADQQBBGSAAQQF2ayAAQR9GG3QhACACKAIAIQgDQCAIIgEoAgRBeHEgA0YNAiAAQR12IQIgAEEBdCEAIAEgAkEEcWoiAigCECIIDQALIAIgBjYCECAGIAE2AhgLIAYgBjYCDCAGIAY2AggMAQsgASgCCCIAIAY2AgwgASAGNgIIIAZBADYCGCAGIAE2AgwgBiAANgIICyAEQQhqIQAMAQsCQCALRQ0AAkAgASgCHCICQQJ0QeSGAWoiACgCACABRgRAIAAgBDYCACAEDQFBuIQBIAZBfiACd3E2AgAMAgsgC0EQQRQgCygCECABRhtqIAQ2AgAgBEUNAQsgBCALNgIYIAEoAhAiAARAIAQgADYCECAAIAQ2AhgLIAEoAhQiAEUNACAEIAA2AhQgACAENgIYCwJAIANBD00EQCABIAMgCGoiAEEDcjYCBCAAIAFqIgAgACgCBEEBcjYCBAwBCyABIAhBA3I2AgQgCSADQQFyNgIEIAMgCWogAzYCACAKBEAgCkEDdiIAQQN0QdyEAWohBEHIhAEoAgAhAgJ/QQEgAHQiACAFcUUEQEG0hAEgACAFcjYCACAEDAELIAQoAggLIQAgBCACNgIIIAAgAjYCDCACIAQ2AgwgAiAANgIIC0HIhAEgCTYCAEG8hAEgAzYCAAsgAUEIaiEACyAMQRBqJAAgAAuJAQEDfyAAKAIcIgEQMAJAIAAoAhAiAiABKAIQIgMgAiADSRsiAkUNACAAKAIMIAEoAgggAhAHGiAAIAAoAgwgAmo2AgwgASABKAIIIAJqNgIIIAAgACgCFCACajYCFCAAIAAoAhAgAms2AhAgASABKAIQIAJrIgA2AhAgAA0AIAEgASgCBDYCCAsLzgEBBX8CQCAARQ0AIAAoAjAiAQRAIAAgAUEBayIBNgIwIAENAQsgACgCIARAIABBATYCICAAEBoaCyAAKAIkQQFGBEAgABBDCwJAIAAoAiwiAUUNACAALQAoDQACQCABKAJEIgNFDQAgASgCTCEEA0AgACAEIAJBAnRqIgUoAgBHBEAgAyACQQFqIgJHDQEMAgsLIAUgBCADQQFrIgJBAnRqKAIANgIAIAEgAjYCRAsLIABBAEIAQQUQDhogACgCACIBBEAgARALCyAAEAYLC1oCAn4BfwJ/AkACQCAALQAARQ0AIAApAxAiAUJ9Vg0AIAFCAnwiAiAAKQMIWA0BCyAAQQA6AABBAAwBC0EAIAAoAgQiA0UNABogACACNwMQIAMgAadqLwAACwthAgJ+AX8CQAJAIAAtAABFDQAgACkDECICQn1WDQAgAkICfCIDIAApAwhYDQELIABBADoAAA8LIAAoAgQiBEUEQA8LIAAgAzcDECAEIAKnaiIAIAFBCHY6AAEgACABOgAAC8wCAQJ/IwBBEGsiBCQAAkAgACkDGCADrYinQQFxRQRAIABBDGoiAARAIABBADYCBCAAQRw2AgALQn8hAgwBCwJ+IAAoAgAiBUUEQCAAKAIIIAEgAiADIAAoAgQRDAAMAQsgBSAAKAIIIAEgAiADIAAoAgQRCgALIgJCf1UNAAJAIANBBGsOCwEAAAAAAAAAAAABAAsCQAJAIAAtABhBEHFFBEAgAEEMaiIBBEAgAUEANgIEIAFBHDYCAAsMAQsCfiAAKAIAIgFFBEAgACgCCCAEQQhqQghBBCAAKAIEEQwADAELIAEgACgCCCAEQQhqQghBBCAAKAIEEQoAC0J/VQ0BCyAAQQxqIgAEQCAAQQA2AgQgAEEUNgIACwwBCyAEKAIIIQEgBCgCDCEDIABBDGoiAARAIAAgAzYCBCAAIAE2AgALCyAEQRBqJAAgAguTFQIOfwN+AkACQAJAAkACQAJAAkACQAJAAkACQCAAKALwLQRAIAAoAogBQQFIDQEgACgCACIEKAIsQQJHDQQgAC8B5AENAyAALwHoAQ0DIAAvAewBDQMgAC8B8AENAyAALwH0AQ0DIAAvAfgBDQMgAC8B/AENAyAALwGcAg0DIAAvAaACDQMgAC8BpAINAyAALwGoAg0DIAAvAawCDQMgAC8BsAINAyAALwG0Ag0DIAAvAbgCDQMgAC8BvAINAyAALwHAAg0DIAAvAcQCDQMgAC8ByAINAyAALwHUAg0DIAAvAdgCDQMgAC8B3AINAyAALwHgAg0DIAAvAYgCDQIgAC8BjAINAiAALwGYAg0CQSAhBgNAIAAgBkECdCIFai8B5AENAyAAIAVBBHJqLwHkAQ0DIAAgBUEIcmovAeQBDQMgACAFQQxyai8B5AENAyAGQQRqIgZBgAJHDQALDAMLIABBBzYC/C0gAkF8Rw0FIAFFDQUMBgsgAkEFaiIEIQcMAwtBASEHCyAEIAc2AiwLIAAgAEHoFmoQUSAAIABB9BZqEFEgAC8B5gEhBCAAIABB7BZqKAIAIgxBAnRqQf//AzsB6gEgAEGQFmohECAAQZQWaiERIABBjBZqIQdBACEGIAxBAE4EQEEHQYoBIAQbIQ1BBEEDIAQbIQpBfyEJA0AgBCEIIAAgCyIOQQFqIgtBAnRqLwHmASEEAkACQCAGQQFqIgVB//8DcSIPIA1B//8DcU8NACAEIAhHDQAgBSEGDAELAn8gACAIQQJ0akHMFWogCkH//wNxIA9LDQAaIAgEQEEBIQUgByAIIAlGDQEaIAAgCEECdGpBzBVqIgYgBi8BAEEBajsBACAHDAELQQEhBSAQIBEgBkH//wNxQQpJGwsiBiAGLwEAIAVqOwEAQQAhBgJ/IARFBEBBAyEKQYoBDAELQQNBBCAEIAhGIgUbIQpBBkEHIAUbCyENIAghCQsgDCAORw0ACwsgAEHaE2ovAQAhBCAAIABB+BZqKAIAIgxBAnRqQd4TakH//wM7AQBBACEGIAxBAE4EQEEHQYoBIAQbIQ1BBEEDIAQbIQpBfyEJQQAhCwNAIAQhCCAAIAsiDkEBaiILQQJ0akHaE2ovAQAhBAJAAkAgBkEBaiIFQf//A3EiDyANQf//A3FPDQAgBCAIRw0AIAUhBgwBCwJ/IAAgCEECdGpBzBVqIApB//8DcSAPSw0AGiAIBEBBASEFIAcgCCAJRg0BGiAAIAhBAnRqQcwVaiIGIAYvAQBBAWo7AQAgBwwBC0EBIQUgECARIAZB//8DcUEKSRsLIgYgBi8BACAFajsBAEEAIQYCfyAERQRAQQMhCkGKAQwBC0EDQQQgBCAIRiIFGyEKQQZBByAFGwshDSAIIQkLIAwgDkcNAAsLIAAgAEGAF2oQUSAAIAAoAvgtAn9BEiAAQYoWai8BAA0AGkERIABB0hVqLwEADQAaQRAgAEGGFmovAQANABpBDyAAQdYVai8BAA0AGkEOIABBghZqLwEADQAaQQ0gAEHaFWovAQANABpBDCAAQf4Vai8BAA0AGkELIABB3hVqLwEADQAaQQogAEH6FWovAQANABpBCSAAQeIVai8BAA0AGkEIIABB9hVqLwEADQAaQQcgAEHmFWovAQANABpBBiAAQfIVai8BAA0AGkEFIABB6hVqLwEADQAaQQQgAEHuFWovAQANABpBA0ECIABBzhVqLwEAGwsiBkEDbGoiBEERajYC+C0gACgC/C1BCmpBA3YiByAEQRtqQQN2IgRNBEAgByEEDAELIAAoAowBQQRHDQAgByEECyAEIAJBBGpPQQAgARsNASAEIAdHDQQLIANBAmqtIRIgACkDmC4hFCAAKAKgLiIBQQNqIgdBP0sNASASIAGthiAUhCESDAILIAAgASACIAMQOQwDCyABQcAARgRAIAAoAgQgACgCEGogFDcAACAAIAAoAhBBCGo2AhBBAyEHDAELIAAoAgQgACgCEGogEiABrYYgFIQ3AAAgACAAKAIQQQhqNgIQIAFBPWshByASQcAAIAFrrYghEgsgACASNwOYLiAAIAc2AqAuIABBgMEAQYDKABCHAQwBCyADQQRqrSESIAApA5guIRQCQCAAKAKgLiIBQQNqIgRBP00EQCASIAGthiAUhCESDAELIAFBwABGBEAgACgCBCAAKAIQaiAUNwAAIAAgACgCEEEIajYCEEEDIQQMAQsgACgCBCAAKAIQaiASIAGthiAUhDcAACAAIAAoAhBBCGo2AhAgAUE9ayEEIBJBwAAgAWutiCESCyAAIBI3A5guIAAgBDYCoC4gAEHsFmooAgAiC6xCgAJ9IRMgAEH4FmooAgAhCQJAAkACfwJ+AkACfwJ/IARBOk0EQCATIASthiAShCETIARBBWoMAQsgBEHAAEYEQCAAKAIEIAAoAhBqIBI3AAAgACAAKAIQQQhqNgIQIAmsIRJCBSEUQQoMAgsgACgCBCAAKAIQaiATIASthiAShDcAACAAIAAoAhBBCGo2AhAgE0HAACAEa62IIRMgBEE7awshBSAJrCESIAVBOksNASAFrSEUIAVBBWoLIQcgEiAUhiAThAwBCyAFQcAARgRAIAAoAgQgACgCEGogEzcAACAAIAAoAhBBCGo2AhAgBq1CA30hE0IFIRRBCQwCCyAAKAIEIAAoAhBqIBIgBa2GIBOENwAAIAAgACgCEEEIajYCECAFQTtrIQcgEkHAACAFa62ICyESIAatQgN9IRMgB0E7Sw0BIAetIRQgB0EEagshBCATIBSGIBKEIRMMAQsgB0HAAEYEQCAAKAIEIAAoAhBqIBI3AAAgACAAKAIQQQhqNgIQQQQhBAwBCyAAKAIEIAAoAhBqIBMgB62GIBKENwAAIAAgACgCEEEIajYCECAHQTxrIQQgE0HAACAHa62IIRMLQQAhBQNAIAAgBSIBQZDWAGotAABBAnRqQc4VajMBACEUAn8gBEE8TQRAIBQgBK2GIBOEIRMgBEEDagwBCyAEQcAARgRAIAAoAgQgACgCEGogEzcAACAAIAAoAhBBCGo2AhAgFCETQQMMAQsgACgCBCAAKAIQaiAUIASthiAThDcAACAAIAAoAhBBCGo2AhAgFEHAACAEa62IIRMgBEE9awshBCABQQFqIQUgASAGRw0ACyAAIAQ2AqAuIAAgEzcDmC4gACAAQeQBaiICIAsQhgEgACAAQdgTaiIBIAkQhgEgACACIAEQhwELIAAQiAEgAwRAAkAgACgCoC4iBEE5TgRAIAAoAgQgACgCEGogACkDmC43AAAgACAAKAIQQQhqNgIQDAELIARBGU4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgQ2AqAuCyAEQQlOBH8gACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACgCoC5BEGsFIAQLQQFIDQAgACAAKAIQIgFBAWo2AhAgASAAKAIEaiAAKQOYLjwAAAsgAEEANgKgLiAAQgA3A5guCwsZACAABEAgACgCABAGIAAoAgwQBiAAEAYLC6wBAQJ+Qn8hAwJAIAAtACgNAAJAAkAgACgCIEUNACACQgBTDQAgAlANASABDQELIABBDGoiAARAIABBADYCBCAAQRI2AgALQn8PCyAALQA1DQBCACEDIAAtADQNACACUA0AA0AgACABIAOnaiACIAN9QQEQDiIEQn9XBEAgAEEBOgA1Qn8gAyADUBsPCyAEUEUEQCADIAR8IgMgAloNAgwBCwsgAEEBOgA0CyADC3UCAn4BfwJAAkAgAC0AAEUNACAAKQMQIgJCe1YNACACQgR8IgMgACkDCFgNAQsgAEEAOgAADwsgACgCBCIERQRADwsgACADNwMQIAQgAqdqIgAgAUEYdjoAAyAAIAFBEHY6AAIgACABQQh2OgABIAAgAToAAAtUAgF+AX8CQAJAIAAtAABFDQAgASAAKQMQIgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADwsgACgCBCIDRQRAQQAPCyAAIAI3AxAgAyABp2oLdwECfyMAQRBrIgMkAEF/IQQCQCAALQAoDQAgACgCIEEAIAJBA0kbRQRAIABBDGoiAARAIABBADYCBCAAQRI2AgALDAELIAMgAjYCCCADIAE3AwAgACADQhBBBhAOQgBTDQBBACEEIABBADoANAsgA0EQaiQAIAQLVwICfgF/AkACQCAALQAARQ0AIAApAxAiAUJ7Vg0AIAFCBHwiAiAAKQMIWA0BCyAAQQA6AABBAA8LIAAoAgQiA0UEQEEADwsgACACNwMQIAMgAadqKAAAC1UCAX4BfyAABEACQCAAKQMIUA0AQgEhAQNAIAAoAgAgAkEEdGoQPiABIAApAwhaDQEgAachAiABQgF8IQEMAAsACyAAKAIAEAYgACgCKBAQIAAQBgsLZAECfwJAAkACQCAARQRAIAGnEAkiA0UNAkEYEAkiAkUNAQwDCyAAIQNBGBAJIgINAkEADwsgAxAGC0EADwsgAkIANwMQIAIgATcDCCACIAM2AgQgAkEBOgAAIAIgAEU6AAEgAgudAQICfgF/AkACQCAALQAARQ0AIAApAxAiAkJ3Vg0AIAJCCHwiAyAAKQMIWA0BCyAAQQA6AAAPCyAAKAIEIgRFBEAPCyAAIAM3AxAgBCACp2oiACABQjiIPAAHIAAgAUIwiDwABiAAIAFCKIg8AAUgACABQiCIPAAEIAAgAUIYiDwAAyAAIAFCEIg8AAIgACABQgiIPAABIAAgATwAAAvwAgICfwF+AkAgAkUNACAAIAJqIgNBAWsgAToAACAAIAE6AAAgAkEDSQ0AIANBAmsgAToAACAAIAE6AAEgA0EDayABOgAAIAAgAToAAiACQQdJDQAgA0EEayABOgAAIAAgAToAAyACQQlJDQAgAEEAIABrQQNxIgRqIgMgAUH/AXFBgYKECGwiADYCACADIAIgBGtBfHEiAmoiAUEEayAANgIAIAJBCUkNACADIAA2AgggAyAANgIEIAFBCGsgADYCACABQQxrIAA2AgAgAkEZSQ0AIAMgADYCGCADIAA2AhQgAyAANgIQIAMgADYCDCABQRBrIAA2AgAgAUEUayAANgIAIAFBGGsgADYCACABQRxrIAA2AgAgAiADQQRxQRhyIgFrIgJBIEkNACAArUKBgICAEH4hBSABIANqIQEDQCABIAU3AxggASAFNwMQIAEgBTcDCCABIAU3AwAgAUEgaiEBIAJBIGsiAkEfSw0ACwsLbwEDfyAAQQxqIQICQAJ/IAAoAiAiAUUEQEF/IQFBEgwBCyAAIAFBAWsiAzYCIEEAIQEgAw0BIABBAEIAQQIQDhogACgCACIARQ0BIAAQGkF/Sg0BQRQLIQAgAgRAIAJBADYCBCACIAA2AgALCyABC58BAgF/AX4CfwJAAn4gACgCACIDKAIkQQFGQQAgAkJ/VRtFBEAgA0EMaiIBBEAgAUEANgIEIAFBEjYCAAtCfwwBCyADIAEgAkELEA4LIgRCf1cEQCAAKAIAIQEgAEEIaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAsMAQtBACACIARRDQEaIABBCGoEQCAAQRs2AgwgAEEGNgIICwtBfwsLJAEBfyAABEADQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsLC5gBAgJ+AX8CQAJAIAAtAABFDQAgACkDECIBQndWDQAgAUIIfCICIAApAwhYDQELIABBADoAAEIADwsgACgCBCIDRQRAQgAPCyAAIAI3AxAgAyABp2oiADEABkIwhiAAMQAHQjiGhCAAMQAFQiiGhCAAMQAEQiCGhCAAMQADQhiGhCAAMQACQhCGhCAAMQABQgiGhCAAMQAAfAsjACAAQShGBEAgAhAGDwsgAgRAIAEgAkEEaygCACAAEQcACwsyACAAKAIkQQFHBEAgAEEMaiIABEAgAEEANgIEIABBEjYCAAtCfw8LIABBAEIAQQ0QDgsPACAABEAgABA2IAAQBgsLgAEBAX8gAC0AKAR/QX8FIAFFBEAgAEEMagRAIABBADYCECAAQRI2AgwLQX8PCyABECoCQCAAKAIAIgJFDQAgAiABECFBf0oNACAAKAIAIQEgAEEMaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAtBfw8LIAAgAUI4QQMQDkI/h6cLC38BA38gACEBAkAgAEEDcQRAA0AgAS0AAEUNAiABQQFqIgFBA3ENAAsLA0AgASICQQRqIQEgAigCACIDQX9zIANBgYKECGtxQYCBgoR4cUUNAAsgA0H/AXFFBEAgAiAAaw8LA0AgAi0AASEDIAJBAWoiASECIAMNAAsLIAEgAGsL3wIBCH8gAEUEQEEBDwsCQCAAKAIIIgINAEEBIQQgAC8BBCIHRQRAQQEhAgwBCyAAKAIAIQgDQAJAIAMgCGoiBS0AACICQSBPBEAgAkEYdEEYdUF/Sg0BCyACQQ1NQQBBASACdEGAzABxGw0AAn8CfyACQeABcUHAAUYEQEEBIQYgA0EBagwBCyACQfABcUHgAUYEQCADQQJqIQNBACEGQQEMAgsgAkH4AXFB8AFHBEBBBCECDAULQQAhBiADQQNqCyEDQQALIQlBBCECIAMgB08NAiAFLQABQcABcUGAAUcNAkEDIQQgBg0AIAUtAAJBwAFxQYABRw0CIAkNACAFLQADQcABcUGAAUcNAgsgBCECIANBAWoiAyAHSQ0ACwsgACACNgIIAn8CQCABRQ0AAkAgAUECRw0AIAJBA0cNAEECIQIgAEECNgIICyABIAJGDQBBBSACQQFHDQEaCyACCwtIAgJ+An8jAEEQayIEIAE2AgxCASAArYYhAgNAIAQgAUEEaiIANgIMIAIiA0IBIAEoAgAiBa2GhCECIAAhASAFQX9KDQALIAMLhwUBB38CQAJAIABFBEBBxRQhAiABRQ0BIAFBADYCAEHFFA8LIAJBwABxDQEgACgCCEUEQCAAQQAQIxoLIAAoAgghBAJAIAJBgAFxBEAgBEEBa0ECTw0BDAMLIARBBEcNAgsCQCAAKAIMIgINACAAAn8gACgCACEIIABBEGohCUEAIQICQAJAAkACQCAALwEEIgUEQEEBIQQgBUEBcSEHIAVBAUcNAQwCCyAJRQ0CIAlBADYCAEEADAQLIAVBfnEhBgNAIARBAUECQQMgAiAIai0AAEEBdEHQFGovAQAiCkGAEEkbIApBgAFJG2pBAUECQQMgCCACQQFyai0AAEEBdEHQFGovAQAiBEGAEEkbIARBgAFJG2ohBCACQQJqIQIgBkECayIGDQALCwJ/IAcEQCAEQQFBAkEDIAIgCGotAABBAXRB0BRqLwEAIgJBgBBJGyACQYABSRtqIQQLIAQLEAkiB0UNASAFQQEgBUEBSxshCkEAIQVBACEGA0AgBSAHaiEDAn8gBiAIai0AAEEBdEHQFGovAQAiAkH/AE0EQCADIAI6AAAgBUEBagwBCyACQf8PTQRAIAMgAkE/cUGAAXI6AAEgAyACQQZ2QcABcjoAACAFQQJqDAELIAMgAkE/cUGAAXI6AAIgAyACQQx2QeABcjoAACADIAJBBnZBP3FBgAFyOgABIAVBA2oLIQUgBkEBaiIGIApHDQALIAcgBEEBayICakEAOgAAIAlFDQAgCSACNgIACyAHDAELIAMEQCADQQA2AgQgA0EONgIAC0EACyICNgIMIAINAEEADwsgAUUNACABIAAoAhA2AgALIAIPCyABBEAgASAALwEENgIACyAAKAIAC4MBAQR/QRIhBQJAAkAgACkDMCABWA0AIAGnIQYgACgCQCEEIAJBCHEiB0UEQCAEIAZBBHRqKAIEIgINAgsgBCAGQQR0aiIEKAIAIgJFDQAgBC0ADEUNAUEXIQUgBw0BC0EAIQIgAyAAQQhqIAMbIgAEQCAAQQA2AgQgACAFNgIACwsgAgtuAQF/IwBBgAJrIgUkAAJAIARBgMAEcQ0AIAIgA0wNACAFIAFB/wFxIAIgA2siAkGAAiACQYACSSIBGxAZIAFFBEADQCAAIAVBgAIQLiACQYACayICQf8BSw0ACwsgACAFIAIQLgsgBUGAAmokAAuBAQEBfyMAQRBrIgQkACACIANsIQICQCAAQSdGBEAgBEEMaiACEIwBIQBBACAEKAIMIAAbIQAMAQsgAUEBIAJBxABqIAARAAAiAUUEQEEAIQAMAQtBwAAgAUE/cWsiACABakHAAEEAIABBBEkbaiIAQQRrIAE2AAALIARBEGokACAAC1IBAn9BhIEBKAIAIgEgAEEDakF8cSICaiEAAkAgAkEAIAAgAU0bDQAgAD8AQRB0SwRAIAAQA0UNAQtBhIEBIAA2AgAgAQ8LQYSEAUEwNgIAQX8LNwAgAEJ/NwMQIABBADYCCCAAQgA3AwAgAEEANgIwIABC/////w83AyggAEIANwMYIABCADcDIAulAQEBf0HYABAJIgFFBEBBAA8LAkAgAARAIAEgAEHYABAHGgwBCyABQgA3AyAgAUEANgIYIAFC/////w83AxAgAUEAOwEMIAFBv4YoNgIIIAFBAToABiABQQA6AAQgAUIANwNIIAFBgIDYjXg2AkQgAUIANwMoIAFCADcDMCABQgA3AzggAUFAa0EAOwEAIAFCADcDUAsgAUEBOgAFIAFBADYCACABC1gCAn4BfwJAAkAgAC0AAEUNACAAKQMQIgMgAq18IgQgA1QNACAEIAApAwhYDQELIABBADoAAA8LIAAoAgQiBUUEQA8LIAAgBDcDECAFIAOnaiABIAIQBxoLlgEBAn8CQAJAIAJFBEAgAacQCSIFRQ0BQRgQCSIEDQIgBRAGDAELIAIhBUEYEAkiBA0BCyADBEAgA0EANgIEIANBDjYCAAtBAA8LIARCADcDECAEIAE3AwggBCAFNgIEIARBAToAACAEIAJFOgABIAAgBSABIAMQZUEASAR/IAQtAAEEQCAEKAIEEAYLIAQQBkEABSAECwubAgEDfyAALQAAQSBxRQRAAkAgASEDAkAgAiAAIgEoAhAiAAR/IAAFAn8gASABLQBKIgBBAWsgAHI6AEogASgCACIAQQhxBEAgASAAQSByNgIAQX8MAQsgAUIANwIEIAEgASgCLCIANgIcIAEgADYCFCABIAAgASgCMGo2AhBBAAsNASABKAIQCyABKAIUIgVrSwRAIAEgAyACIAEoAiQRAAAaDAILAn8gASwAS0F/SgRAIAIhAANAIAIgACIERQ0CGiADIARBAWsiAGotAABBCkcNAAsgASADIAQgASgCJBEAACAESQ0CIAMgBGohAyABKAIUIQUgAiAEawwBCyACCyEAIAUgAyAAEAcaIAEgASgCFCAAajYCFAsLCwvNBQEGfyAAKAIwIgNBhgJrIQYgACgCPCECIAMhAQNAIAAoAkQgAiAAKAJoIgRqayECIAEgBmogBE0EQCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQIAEgACgCBGogACkDmC48AAAgACAAKQOYLkIIiDcDmC4gACgCoC5BCGsLNgKgLgsLEAAgACgCCBAGIABBADYCCAvwAQECf0F/IQECQCAALQAoDQAgACgCJEEDRgRAIABBDGoEQCAAQQA2AhAgAEEXNgIMC0F/DwsCQCAAKAIgBEAgACkDGELAAINCAFINASAAQQxqBEAgAEEANgIQIABBHTYCDAtBfw8LAkAgACgCACICRQ0AIAIQMkF/Sg0AIAAoAgAhASAAQQxqIgAEQCAAIAEoAgw2AgAgACABKAIQNgIEC0F/DwsgAEEAQgBBABAOQn9VDQAgACgCACIARQ0BIAAQGhpBfw8LQQAhASAAQQA7ATQgAEEMagRAIABCADcCDAsgACAAKAIgQQFqNgIgCyABCzsAIAAtACgEfkJ/BSAAKAIgRQRAIABBDGoiAARAIABBADYCBCAAQRI2AgALQn8PCyAAQQBCAEEHEA4LC5oIAQt/IABFBEAgARAJDwsgAUFATwRAQYSEAUEwNgIAQQAPCwJ/QRAgAUELakF4cSABQQtJGyEGIABBCGsiBSgCBCIJQXhxIQQCQCAJQQNxRQRAQQAgBkGAAkkNAhogBkEEaiAETQRAIAUhAiAEIAZrQZSIASgCAEEBdE0NAgtBAAwCCyAEIAVqIQcCQCAEIAZPBEAgBCAGayIDQRBJDQEgBSAJQQFxIAZyQQJyNgIEIAUgBmoiAiADQQNyNgIEIAcgBygCBEEBcjYCBCACIAMQOwwBCyAHQcyEASgCAEYEQEHAhAEoAgAgBGoiBCAGTQ0CIAUgCUEBcSAGckECcjYCBCAFIAZqIgMgBCAGayICQQFyNgIEQcCEASACNgIAQcyEASADNgIADAELIAdByIQBKAIARgRAQbyEASgCACAEaiIDIAZJDQICQCADIAZrIgJBEE8EQCAFIAlBAXEgBnJBAnI2AgQgBSAGaiIEIAJBAXI2AgQgAyAFaiIDIAI2AgAgAyADKAIEQX5xNgIEDAELIAUgCUEBcSADckECcjYCBCADIAVqIgIgAigCBEEBcjYCBEEAIQJBACEEC0HIhAEgBDYCAEG8hAEgAjYCAAwBCyAHKAIEIgNBAnENASADQXhxIARqIgogBkkNASAKIAZrIQwCQCADQf8BTQRAIAcoAggiBCADQQN2IgJBA3RB3IQBakYaIAQgBygCDCIDRgRAQbSEAUG0hAEoAgBBfiACd3E2AgAMAgsgBCADNgIMIAMgBDYCCAwBCyAHKAIYIQsCQCAHIAcoAgwiCEcEQCAHKAIIIgJBxIQBKAIASRogAiAINgIMIAggAjYCCAwBCwJAIAdBFGoiBCgCACICDQAgB0EQaiIEKAIAIgINAEEAIQgMAQsDQCAEIQMgAiIIQRRqIgQoAgAiAg0AIAhBEGohBCAIKAIQIgINAAsgA0EANgIACyALRQ0AAkAgByAHKAIcIgNBAnRB5IYBaiICKAIARgRAIAIgCDYCACAIDQFBuIQBQbiEASgCAEF+IAN3cTYCAAwCCyALQRBBFCALKAIQIAdGG2ogCDYCACAIRQ0BCyAIIAs2AhggBygCECICBEAgCCACNgIQIAIgCDYCGAsgBygCFCICRQ0AIAggAjYCFCACIAg2AhgLIAxBD00EQCAFIAlBAXEgCnJBAnI2AgQgBSAKaiICIAIoAgRBAXI2AgQMAQsgBSAJQQFxIAZyQQJyNgIEIAUgBmoiAyAMQQNyNgIEIAUgCmoiAiACKAIEQQFyNgIEIAMgDBA7CyAFIQILIAILIgIEQCACQQhqDwsgARAJIgVFBEBBAA8LIAUgAEF8QXggAEEEaygCACICQQNxGyACQXhxaiICIAEgASACSxsQBxogABAGIAUL6QEBA38CQCABRQ0AIAJBgDBxIgIEfwJ/IAJBgCBHBEBBAiACQYAQRg0BGiADBEAgA0EANgIEIANBEjYCAAtBAA8LQQQLIQJBAAVBAQshBkEUEAkiBEUEQCADBEAgA0EANgIEIANBDjYCAAtBAA8LIAQgAUEBahAJIgU2AgAgBUUEQCAEEAZBAA8LIAUgACABEAcgAWpBADoAACAEQQA2AhAgBEIANwMIIAQgATsBBCAGDQAgBCACECNBBUcNACAEKAIAEAYgBCgCDBAGIAQQBkEAIQQgAwRAIANBADYCBCADQRI2AgALCyAEC7UBAQJ/AkACQAJAAkACQAJAAkAgAC0ABQRAIAAtAABBAnFFDQELIAAoAjAQECAAQQA2AjAgAC0ABUUNAQsgAC0AAEEIcUUNAQsgACgCNBAcIABBADYCNCAALQAFRQ0BCyAALQAAQQRxRQ0BCyAAKAI4EBAgAEEANgI4IAAtAAVFDQELIAAtAABBgAFxRQ0BCyAAKAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASELIAMhBQsgBkIuEBciA0UEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyAFEBwMAgsgA0GjEkGoEiACQYACcSIHG0EEECwgB0UEQCADIAkEf0EtBSABLwEIC0H//wNxEA0LIAMgCQR/QS0FIAEvAQoLQf//A3EQDSADIAEvAQwQDSADIAsEf0HjAAUgASgCEAtB//8DcRANIAYgASgCFDYCPAJ/IAZBPGoQjQEiCEUEQEEAIQlBIQwBCwJ/IAgoAhQiBEHQAE4EQCAEQQl0DAELIAhB0AA2AhRBgMACCyEEIAgoAgRBBXQgCCgCCEELdGogCCgCAEEBdmohCSAIKAIMIAQgCCgCEEEFdGpqQaDAAWoLIQQgAyAJQf//A3EQDSADIARB//8DcRANIAMCfyALBEBBACABKQMoQhRUDQEaCyABKAIYCxASIAEpAyAhDCADAn8gAwJ/AkAgBwRAIAxC/v///w9YBEAgASkDKEL/////D1QNAgsgA0F/EBJBfwwDC0F/IAxC/v///w9WDQEaCyAMpwsQEiABKQMoIgxC/////w8gDEL/////D1QbpwsQEiADIAEoAjAiBAR/IAQvAQQFQQALQf//A3EQDSADIAEoAjQgAhBsIAVBgAYQbGpB//8DcRANIAdFBEAgAyABKAI4IgQEfyAELwEEBUEAC0H//wNxEA0gAyABLwE8EA0gAyABLwFAEA0gAyABKAJEEBIgAyABKQNIIgxC/////w8gDEL/////D1QbpxASCyADLQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAMQCCAFEBwMAgsgACAGIAMtAAAEfiADKQMQBUIACxAbIQQgAxAIIARBf0wNACABKAIwIgMEQCAAIAMQYUF/TA0BCyAFBEAgACAFQYAGEGtBf0wNAQsgBRAcIAEoAjQiBQRAIAAgBSACEGtBAEgNAgsgBw0CIAEoAjgiAUUNAiAAIAEQYUEATg0CDAELIAUQHAtBfyEKCyAGQUBrJAAgCgtNAQJ/IAEtAAAhAgJAIAAtAAAiA0UNACACIANHDQADQCABLQABIQIgAC0AASIDRQ0BIAFBAWohASAAQQFqIQAgAiADRg0ACwsgAyACawvcAwICfgF/IAOtIQQgACkDmC4hBQJAIAACfyAAAn4gACgCoC4iBkEDaiIDQT9NBEAgBCAGrYYgBYQMAQsgBkHAAEYEQCAAKAIEIAAoAhBqIAU3AAAgACgCEEEIagwCCyAAKAIEIAAoAhBqIAQgBq2GIAWENwAAIAAgACgCEEEIajYCECAGQT1rIQMgBEHAACAGa62ICyIENwOYLiAAIAM2AqAuIANBOU4EQCAAKAIEIAAoAhBqIAQ3AAAgACAAKAIQQQhqNgIQDAILIANBGU4EQCAAKAIEIAAoAhBqIAQ+AAAgACAAKAIQQQRqNgIQIAAgACkDmC5CIIgiBDcDmC4gACAAKAKgLkEgayIDNgKgLgsgA0EJTgR/IAAoAgQgACgCEGogBD0AACAAIAAoAhBBAmo2AhAgACkDmC5CEIghBCAAKAKgLkEQawUgAwtBAUgNASAAKAIQCyIDQQFqNgIQIAAoAgQgA2ogBDwAAAsgAEEANgKgLiAAQgA3A5guIAAoAgQgACgCEGogAjsAACAAIAAoAhBBAmoiAzYCECAAKAIEIANqIAJBf3M7AAAgACAAKAIQQQJqIgM2AhAgAgRAIAAoAgQgA2ogASACEAcaIAAgACgCECACajYCEAsLrAQCAX8BfgJAIAANACABUA0AIAMEQCADQQA2AgQgA0ESNgIAC0EADwsCQAJAIAAgASACIAMQiQEiBEUNAEEYEAkiAkUEQCADBEAgA0EANgIEIANBDjYCAAsCQCAEKAIoIgBFBEAgBCkDGCEBDAELIABBADYCKCAEKAIoQgA3AyAgBCAEKQMYIgUgBCkDICIBIAEgBVQbIgE3AxgLIAQpAwggAVYEQANAIAQoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAQpAwhUDQALCyAEKAIAEAYgBCgCBBAGIAQQBgwBCyACQQA2AhQgAiAENgIQIAJBABABNgIMIAJBADYCCCACQgA3AgACf0E4EAkiAEUEQCADBEAgA0EANgIEIANBDjYCAAtBAAwBCyAAQQA2AgggAEIANwMAIABCADcDICAAQoCAgIAQNwIsIABBADoAKCAAQQA2AhQgAEIANwIMIABBADsBNCAAIAI2AgggAEEkNgIEIABCPyACQQBCAEEOQSQRDAAiASABQgBTGzcDGCAACyIADQEgAigCECIDBEACQCADKAIoIgBFBEAgAykDGCEBDAELIABBADYCKCADKAIoQgA3AyAgAyADKQMYIgUgAykDICIBIAEgBVQbIgE3AxgLIAMpAwggAVYEQANAIAMoAgAgAadBBHRqKAIAEAYgAUIBfCIBIAMpAwhUDQALCyADKAIAEAYgAygCBBAGIAMQBgsgAhAGC0EAIQALIAALiwwBBn8gACABaiEFAkACQCAAKAIEIgJBAXENACACQQNxRQ0BIAAoAgAiAiABaiEBAkAgACACayIAQciEASgCAEcEQCACQf8BTQRAIAAoAggiBCACQQN2IgJBA3RB3IQBakYaIAAoAgwiAyAERw0CQbSEAUG0hAEoAgBBfiACd3E2AgAMAwsgACgCGCEGAkAgACAAKAIMIgNHBEAgACgCCCICQcSEASgCAEkaIAIgAzYCDCADIAI2AggMAQsCQCAAQRRqIgIoAgAiBA0AIABBEGoiAigCACIEDQBBACEDDAELA0AgAiEHIAQiA0EUaiICKAIAIgQNACADQRBqIQIgAygCECIEDQALIAdBADYCAAsgBkUNAgJAIAAgACgCHCIEQQJ0QeSGAWoiAigCAEYEQCACIAM2AgAgAw0BQbiEAUG4hAEoAgBBfiAEd3E2AgAMBAsgBkEQQRQgBigCECAARhtqIAM2AgAgA0UNAwsgAyAGNgIYIAAoAhAiAgRAIAMgAjYCECACIAM2AhgLIAAoAhQiAkUNAiADIAI2AhQgAiADNgIYDAILIAUoAgQiAkEDcUEDRw0BQbyEASABNgIAIAUgAkF+cTYCBCAAIAFBAXI2AgQgBSABNgIADwsgBCADNgIMIAMgBDYCCAsCQCAFKAIEIgJBAnFFBEAgBUHMhAEoAgBGBEBBzIQBIAA2AgBBwIQBQcCEASgCACABaiIBNgIAIAAgAUEBcjYCBCAAQciEASgCAEcNA0G8hAFBADYCAEHIhAFBADYCAA8LIAVByIQBKAIARgRAQciEASAANgIAQbyEAUG8hAEoAgAgAWoiATYCACAAIAFBAXI2AgQgACABaiABNgIADwsgAkF4cSABaiEBAkAgAkH/AU0EQCAFKAIIIgQgAkEDdiICQQN0QdyEAWpGGiAEIAUoAgwiA0YEQEG0hAFBtIQBKAIAQX4gAndxNgIADAILIAQgAzYCDCADIAQ2AggMAQsgBSgCGCEGAkAgBSAFKAIMIgNHBEAgBSgCCCICQcSEASgCAEkaIAIgAzYCDCADIAI2AggMAQsCQCAFQRRqIgQoAgAiAg0AIAVBEGoiBCgCACICDQBBACEDDAELA0AgBCEHIAIiA0EUaiIEKAIAIgINACADQRBqIQQgAygCECICDQALIAdBADYCAAsgBkUNAAJAIAUgBSgCHCIEQQJ0QeSGAWoiAigCAEYEQCACIAM2AgAgAw0BQbiEAUG4hAEoAgBBfiAEd3E2AgAMAgsgBkEQQRQgBigCECAFRhtqIAM2AgAgA0UNAQsgAyAGNgIYIAUoAhAiAgRAIAMgAjYCECACIAM2AhgLIAUoAhQiAkUNACADIAI2AhQgAiADNgIYCyAAIAFBAXI2AgQgACABaiABNgIAIABByIQBKAIARw0BQbyEASABNgIADwsgBSACQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgALIAFB/wFNBEAgAUEDdiICQQN0QdyEAWohAQJ/QbSEASgCACIDQQEgAnQiAnFFBEBBtIQBIAIgA3I2AgAgAQwBCyABKAIICyECIAEgADYCCCACIAA2AgwgACABNgIMIAAgAjYCCA8LQR8hAiAAQgA3AhAgAUH///8HTQRAIAFBCHYiAiACQYD+P2pBEHZBCHEiBHQiAiACQYDgH2pBEHZBBHEiA3QiAiACQYCAD2pBEHZBAnEiAnRBD3YgAyAEciACcmsiAkEBdCABIAJBFWp2QQFxckEcaiECCyAAIAI2AhwgAkECdEHkhgFqIQcCQAJAQbiEASgCACIEQQEgAnQiA3FFBEBBuIQBIAMgBHI2AgAgByAANgIAIAAgBzYCGAwBCyABQQBBGSACQQF2ayACQR9GG3QhAiAHKAIAIQMDQCADIgQoAgRBeHEgAUYNAiACQR12IQMgAkEBdCECIAQgA0EEcWoiB0EQaigCACIDDQALIAcgADYCECAAIAQ2AhgLIAAgADYCDCAAIAA2AggPCyAEKAIIIgEgADYCDCAEIAA2AgggAEEANgIYIAAgBDYCDCAAIAE2AggLC1gCAX8BfgJAAn9BACAARQ0AGiAArUIChiICpyIBIABBBHJBgIAESQ0AGkF/IAEgAkIgiKcbCyIBEAkiAEUNACAAQQRrLQAAQQNxRQ0AIABBACABEBkLIAALQwEDfwJAIAJFDQADQCAALQAAIgQgAS0AACIFRgRAIAFBAWohASAAQQFqIQAgAkEBayICDQEMAgsLIAQgBWshAwsgAwsUACAAEEAgACgCABAgIAAoAgQQIAutBAIBfgV/IwBBEGsiBCQAIAAgAWshBgJAAkAgAUEBRgRAIAAgBi0AACACEBkMAQsgAUEJTwRAIAAgBikAADcAACAAIAJBAWtBB3FBAWoiBWohACACIAVrIgFFDQIgBSAGaiECA0AgACACKQAANwAAIAJBCGohAiAAQQhqIQAgAUEIayIBDQALDAILAkACQAJAAkAgAUEEaw4FAAICAgECCyAEIAYoAAAiATYCBCAEIAE2AgAMAgsgBCAGKQAANwMADAELQQghByAEQQhqIQgDQCAIIAYgByABIAEgB0sbIgUQByAFaiEIIAcgBWsiBw0ACyAEIAQpAwg3AwALAkAgBQ0AIAJBEEkNACAEKQMAIQMgAkEQayIGQQR2QQFqQQdxIgEEQANAIAAgAzcACCAAIAM3AAAgAkEQayECIABBEGohACABQQFrIgENAAsLIAZB8ABJDQADQCAAIAM3AHggACADNwBwIAAgAzcAaCAAIAM3AGAgACADNwBYIAAgAzcAUCAAIAM3AEggACADNwBAIAAgAzcAOCAAIAM3ADAgACADNwAoIAAgAzcAICAAIAM3ABggACADNwAQIAAgAzcACCAAIAM3AAAgAEGAAWohACACQYABayICQQ9LDQALCyACQQhPBEBBCCAFayEBA0AgACAEKQMANwAAIAAgAWohACACIAFrIgJBB0sNAAsLIAJFDQEgACAEIAIQBxoLIAAgAmohAAsgBEEQaiQAIAALXwECfyAAKAIIIgEEQCABEAsgAEEANgIICwJAIAAoAgQiAUUNACABKAIAIgJBAXFFDQAgASgCEEF+Rw0AIAEgAkF+cSICNgIAIAINACABECAgAEEANgIECyAAQQA6AAwL1wICBH8BfgJAAkAgACgCQCABp0EEdGooAgAiA0UEQCACBEAgAkEANgIEIAJBFDYCAAsMAQsgACgCACADKQNIIgdBABAUIQMgACgCACEAIANBf0wEQCACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAQtCACEBIwBBEGsiBiQAQX8hAwJAIABCGkEBEBRBf0wEQCACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAQsgAEIEIAZBCmogAhAtIgRFDQBBHiEAQQEhBQNAIAQQDCAAaiEAIAVBAkcEQCAFQQFqIQUMAQsLIAQtAAAEfyAEKQMQIAQpAwhRBUEAC0UEQCACBEAgAkEANgIEIAJBFDYCAAsgBBAIDAELIAQQCCAAIQMLIAZBEGokACADIgBBAEgNASAHIACtfCIBQn9VDQEgAgRAIAJBFjYCBCACQQQ2AgALC0IAIQELIAELYAIBfgF/AkAgAEUNACAAQQhqEF8iAEUNACABIAEoAjBBAWo2AjAgACADNgIIIAAgAjYCBCAAIAE2AgAgAEI/IAEgA0EAQgBBDiACEQoAIgQgBEIAUxs3AxggACEFCyAFCyIAIAAoAiRBAWtBAU0EQCAAQQBCAEEKEA4aIABBADYCJAsLbgACQAJAAkAgA0IQVA0AIAJFDQECfgJAAkACQCACKAIIDgMCAAEECyACKQMAIAB8DAILIAIpAwAgAXwMAQsgAikDAAsiA0IAUw0AIAEgA1oNAgsgBARAIARBADYCBCAEQRI2AgALC0J/IQMLIAMLggICAX8CfgJAQQEgAiADGwRAIAIgA2oQCSIFRQRAIAQEQCAEQQA2AgQgBEEONgIAC0EADwsgAq0hBgJAAkAgAARAIAAgBhATIgBFBEAgBARAIARBADYCBCAEQQ42AgALDAULIAUgACACEAcaIAMNAQwCCyABIAUgBhARIgdCf1cEQCAEBEAgBCABKAIMNgIAIAQgASgCEDYCBAsMBAsgBiAHVQRAIAQEQCAEQQA2AgQgBEERNgIACwwECyADRQ0BCyACIAVqIgBBADoAACACQQFIDQAgBSECA0AgAi0AAEUEQCACQSA6AAALIAJBAWoiAiAASQ0ACwsLIAUPCyAFEAZBAAuBAQEBfwJAIAAEQCADQYAGcSEFQQAhAwNAAkAgAC8BCCACRw0AIAUgACgCBHFFDQAgA0EATg0DIANBAWohAwsgACgCACIADQALCyAEBEAgBEEANgIEIARBCTYCAAtBAA8LIAEEQCABIAAvAQo7AQALIAAvAQpFBEBBwBQPCyAAKAIMC1cBAX9BEBAJIgNFBEBBAA8LIAMgATsBCiADIAA7AQggA0GABjYCBCADQQA2AgACQCABBEAgAyACIAEQYyIANgIMIAANASADEAZBAA8LIANBADYCDAsgAwvuBQIEfwV+IwBB4ABrIgQkACAEQQhqIgNCADcDICADQQA2AhggA0L/////DzcDECADQQA7AQwgA0G/hig2AgggA0EBOgAGIANBADsBBCADQQA2AgAgA0IANwNIIANBgIDYjXg2AkQgA0IANwMoIANCADcDMCADQgA3AzggA0FAa0EAOwEAIANCADcDUCABKQMIUCIDRQRAIAEoAgAoAgApA0ghBwsCfgJAIAMEQCAHIQkMAQsgByEJA0AgCqdBBHQiBSABKAIAaigCACIDKQNIIgggCSAIIAlUGyIJIAEpAyBWBEAgAgRAIAJBADYCBCACQRM2AgALQn8MAwsgAygCMCIGBH8gBi8BBAVBAAtB//8Dca0gCCADKQMgfHxCHnwiCCAHIAcgCFQbIgcgASkDIFYEQCACBEAgAkEANgIEIAJBEzYCAAtCfwwDCyAAKAIAIAEoAgAgBWooAgApA0hBABAUIQYgACgCACEDIAZBf0wEQCACBEAgAiADKAIMNgIAIAIgAygCEDYCBAtCfwwDCyAEQQhqIANBAEEBIAIQaEJ/UQRAIARBCGoQNkJ/DAMLAkACQCABKAIAIAVqKAIAIgMvAQogBC8BEkkNACADKAIQIAQoAhhHDQAgAygCFCAEKAIcRw0AIAMoAjAgBCgCOBBiRQ0AAkAgBCgCICIGIAMoAhhHBEAgBCkDKCEIDAELIAMpAyAiCyAEKQMoIghSDQAgCyEIIAMpAyggBCkDMFENAgsgBC0AFEEIcUUNACAGDQAgCEIAUg0AIAQpAzBQDQELIAIEQCACQQA2AgQgAkEVNgIACyAEQQhqEDZCfwwDCyABKAIAIAVqKAIAKAI0IAQoAjwQbyEDIAEoAgAgBWooAgAiBUEBOgAEIAUgAzYCNCAEQQA2AjwgBEEIahA2IApCAXwiCiABKQMIVA0ACwsgByAJfSIHQv///////////wAgB0L///////////8AVBsLIQcgBEHgAGokACAHC8YBAQJ/QdgAEAkiAUUEQCAABEAgAEEANgIEIABBDjYCAAtBAA8LIAECf0EYEAkiAkUEQCAABEAgAEEANgIEIABBDjYCAAtBAAwBCyACQQA2AhAgAkIANwMIIAJBADYCACACCyIANgJQIABFBEAgARAGQQAPCyABQgA3AwAgAUEANgIQIAFCADcCCCABQgA3AhQgAUEANgJUIAFCADcCHCABQgA3ACEgAUIANwMwIAFCADcDOCABQUBrQgA3AwAgAUIANwNIIAELgBMCD38CfiMAQdAAayIFJAAgBSABNgJMIAVBN2ohEyAFQThqIRBBACEBA0ACQCAOQQBIDQBB/////wcgDmsgAUgEQEGEhAFBPTYCAEF/IQ4MAQsgASAOaiEOCyAFKAJMIgchAQJAAkACQAJAAkACQAJAAkAgBQJ/AkAgBy0AACIGBEADQAJAAkAgBkH/AXEiBkUEQCABIQYMAQsgBkElRw0BIAEhBgNAIAEtAAFBJUcNASAFIAFBAmoiCDYCTCAGQQFqIQYgAS0AAiEMIAghASAMQSVGDQALCyAGIAdrIQEgAARAIAAgByABEC4LIAENDSAFKAJMIQEgBSgCTCwAAUEwa0EKTw0DIAEtAAJBJEcNAyABLAABQTBrIQ9BASERIAFBA2oMBAsgBSABQQFqIgg2AkwgAS0AASEGIAghAQwACwALIA4hDSAADQggEUUNAkEBIQEDQCAEIAFBAnRqKAIAIgAEQCADIAFBA3RqIAAgAhB4QQEhDSABQQFqIgFBCkcNAQwKCwtBASENIAFBCk8NCANAIAQgAUECdGooAgANCCABQQFqIgFBCkcNAAsMCAtBfyEPIAFBAWoLIgE2AkxBACEIAkAgASwAACIKQSBrIgZBH0sNAEEBIAZ0IgZBidEEcUUNAANAAkAgBSABQQFqIgg2AkwgASwAASIKQSBrIgFBIE8NAEEBIAF0IgFBidEEcUUNACABIAZyIQYgCCEBDAELCyAIIQEgBiEICwJAIApBKkYEQCAFAn8CQCABLAABQTBrQQpPDQAgBSgCTCIBLQACQSRHDQAgASwAAUECdCAEakHAAWtBCjYCACABLAABQQN0IANqQYADaygCACELQQEhESABQQNqDAELIBENCEEAIRFBACELIAAEQCACIAIoAgAiAUEEajYCACABKAIAIQsLIAUoAkxBAWoLIgE2AkwgC0F/Sg0BQQAgC2shCyAIQYDAAHIhCAwBCyAFQcwAahB3IgtBAEgNBiAFKAJMIQELQX8hCQJAIAEtAABBLkcNACABLQABQSpGBEACQCABLAACQTBrQQpPDQAgBSgCTCIBLQADQSRHDQAgASwAAkECdCAEakHAAWtBCjYCACABLAACQQN0IANqQYADaygCACEJIAUgAUEEaiIBNgJMDAILIBENByAABH8gAiACKAIAIgFBBGo2AgAgASgCAAVBAAshCSAFIAUoAkxBAmoiATYCTAwBCyAFIAFBAWo2AkwgBUHMAGoQdyEJIAUoAkwhAQtBACEGA0AgBiESQX8hDSABLAAAQcEAa0E5Sw0HIAUgAUEBaiIKNgJMIAEsAAAhBiAKIQEgBiASQTpsakGf7ABqLQAAIgZBAWtBCEkNAAsgBkETRg0CIAZFDQYgD0EATgRAIAQgD0ECdGogBjYCACAFIAMgD0EDdGopAwA3A0AMBAsgAA0BC0EAIQ0MBQsgBUFAayAGIAIQeCAFKAJMIQoMAgsgD0F/Sg0DC0EAIQEgAEUNBAsgCEH//3txIgwgCCAIQYDAAHEbIQZBACENQaQIIQ8gECEIAkACQAJAAn8CQAJAAkACQAJ/AkACQAJAAkACQAJAAkAgCkEBaywAACIBQV9xIAEgAUEPcUEDRhsgASASGyIBQdgAaw4hBBISEhISEhISDhIPBg4ODhIGEhISEgIFAxISCRIBEhIEAAsCQCABQcEAaw4HDhILEg4ODgALIAFB0wBGDQkMEQsgBSkDQCEUQaQIDAULQQAhAQJAAkACQAJAAkACQAJAIBJB/wFxDggAAQIDBBcFBhcLIAUoAkAgDjYCAAwWCyAFKAJAIA42AgAMFQsgBSgCQCAOrDcDAAwUCyAFKAJAIA47AQAMEwsgBSgCQCAOOgAADBILIAUoAkAgDjYCAAwRCyAFKAJAIA6sNwMADBALIAlBCCAJQQhLGyEJIAZBCHIhBkH4ACEBCyAQIQcgAUEgcSEMIAUpA0AiFFBFBEADQCAHQQFrIgcgFKdBD3FBsPAAai0AACAMcjoAACAUQg9WIQogFEIEiCEUIAoNAAsLIAUpA0BQDQMgBkEIcUUNAyABQQR2QaQIaiEPQQIhDQwDCyAQIQEgBSkDQCIUUEUEQANAIAFBAWsiASAUp0EHcUEwcjoAACAUQgdWIQcgFEIDiCEUIAcNAAsLIAEhByAGQQhxRQ0CIAkgECAHayIBQQFqIAEgCUgbIQkMAgsgBSkDQCIUQn9XBEAgBUIAIBR9IhQ3A0BBASENQaQIDAELIAZBgBBxBEBBASENQaUIDAELQaYIQaQIIAZBAXEiDRsLIQ8gECEBAkAgFEKAgICAEFQEQCAUIRUMAQsDQCABQQFrIgEgFCAUQgqAIhVCCn59p0EwcjoAACAUQv////+fAVYhByAVIRQgBw0ACwsgFaciBwRAA0AgAUEBayIBIAcgB0EKbiIMQQpsa0EwcjoAACAHQQlLIQogDCEHIAoNAAsLIAEhBwsgBkH//3txIAYgCUF/ShshBgJAIAUpA0AiFEIAUg0AIAkNAEEAIQkgECEHDAoLIAkgFFAgECAHa2oiASABIAlIGyEJDAkLIAUoAkAiAUGKEiABGyIHQQAgCRB6IgEgByAJaiABGyEIIAwhBiABIAdrIAkgARshCQwICyAJBEAgBSgCQAwCC0EAIQEgAEEgIAtBACAGECcMAgsgBUEANgIMIAUgBSkDQD4CCCAFIAVBCGo2AkBBfyEJIAVBCGoLIQhBACEBAkADQCAIKAIAIgdFDQECQCAFQQRqIAcQeSIHQQBIIgwNACAHIAkgAWtLDQAgCEEEaiEIIAkgASAHaiIBSw0BDAILC0F/IQ0gDA0FCyAAQSAgCyABIAYQJyABRQRAQQAhAQwBC0EAIQggBSgCQCEKA0AgCigCACIHRQ0BIAVBBGogBxB5IgcgCGoiCCABSg0BIAAgBUEEaiAHEC4gCkEEaiEKIAEgCEsNAAsLIABBICALIAEgBkGAwABzECcgCyABIAEgC0gbIQEMBQsgACAFKwNAIAsgCSAGIAFBABEdACEBDAQLIAUgBSkDQDwAN0EBIQkgEyEHIAwhBgwCC0F/IQ0LIAVB0ABqJAAgDQ8LIABBICANIAggB2siDCAJIAkgDEgbIgpqIgggCyAIIAtKGyIBIAggBhAnIAAgDyANEC4gAEEwIAEgCCAGQYCABHMQJyAAQTAgCiAMQQAQJyAAIAcgDBAuIABBICABIAggBkGAwABzECcMAAsAC54DAgR/AX4gAARAIAAoAgAiAQRAIAEQGhogACgCABALCyAAKAIcEAYgACgCIBAQIAAoAiQQECAAKAJQIgMEQCADKAIQIgIEQCADKAIAIgEEfwNAIAIgBEECdGooAgAiAgRAA0AgAigCGCEBIAIQBiABIgINAAsgAygCACEBCyABIARBAWoiBEsEQCADKAIQIQIMAQsLIAMoAhAFIAILEAYLIAMQBgsgACgCQCIBBEAgACkDMFAEfyABBSABED5CAiEFAkAgACkDMEICVA0AQQEhAgNAIAAoAkAgAkEEdGoQPiAFIAApAzBaDQEgBachAiAFQgF8IQUMAAsACyAAKAJACxAGCwJAIAAoAkRFDQBBACECQgEhBQNAIAAoAkwgAkECdGooAgAiAUEBOgAoIAFBDGoiASgCAEUEQCABBEAgAUEANgIEIAFBCDYCAAsLIAUgADUCRFoNASAFpyECIAVCAXwhBQwACwALIAAoAkwQBiAAKAJUIgIEQCACKAIIIgEEQCACKAIMIAERAwALIAIQBgsgAEEIahAxIAAQBgsL6gMCAX4EfwJAIAAEfiABRQRAIAMEQCADQQA2AgQgA0ESNgIAC0J/DwsgAkGDIHEEQAJAIAApAzBQDQBBPEE9IAJBAXEbIQcgAkECcUUEQANAIAAgBCACIAMQUyIFBEAgASAFIAcRAgBFDQYLIARCAXwiBCAAKQMwVA0ADAILAAsDQCAAIAQgAiADEFMiBQRAIAECfyAFECJBAWohBgNAQQAgBkUNARogBSAGQQFrIgZqIggtAABBL0cNAAsgCAsiBkEBaiAFIAYbIAcRAgBFDQULIARCAXwiBCAAKQMwVA0ACwsgAwRAIANBADYCBCADQQk2AgALQn8PC0ESIQYCQAJAIAAoAlAiBUUNACABRQ0AQQkhBiAFKQMIUA0AIAUoAhAgAS0AACIHBH9CpesKIQQgASEAA0AgBCAHrUL/AYN8IQQgAC0AASIHBEAgAEEBaiEAIARC/////w+DQiF+IQQMAQsLIASnBUGFKgsgBSgCAHBBAnRqKAIAIgBFDQADQCABIAAoAgAQOEUEQCACQQhxBEAgACkDCCIEQn9RDQMMBAsgACkDECIEQn9RDQIMAwsgACgCGCIADQALCyADBEAgA0EANgIEIAMgBjYCAAtCfyEECyAEBUJ/Cw8LIAMEQCADQgA3AgALIAQL3AQCB38BfgJAAkAgAEUNACABRQ0AIAJCf1UNAQsgBARAIARBADYCBCAEQRI2AgALQQAPCwJAIAAoAgAiB0UEQEGAAiEHQYACEDwiBkUNASAAKAIQEAYgAEGAAjYCACAAIAY2AhALAkACQCAAKAIQIAEtAAAiBQR/QqXrCiEMIAEhBgNAIAwgBa1C/wGDfCEMIAYtAAEiBQRAIAZBAWohBiAMQv////8Pg0IhfiEMDAELCyAMpwVBhSoLIgYgB3BBAnRqIggoAgAiBQRAA0ACQCAFKAIcIAZHDQAgASAFKAIAEDgNAAJAIANBCHEEQCAFKQMIQn9SDQELIAUpAxBCf1ENBAsgBARAIARBADYCBCAEQQo2AgALQQAPCyAFKAIYIgUNAAsLQSAQCSIFRQ0CIAUgATYCACAFIAgoAgA2AhggCCAFNgIAIAVCfzcDCCAFIAY2AhwgACAAKQMIQgF8Igw3AwggDLogB7hEAAAAAAAA6D+iZEUNACAHQQBIDQAgByAHQQF0IghGDQAgCBA8IgpFDQECQCAMQgAgBxtQBEAgACgCECEJDAELIAAoAhAhCUEAIQQDQCAJIARBAnRqKAIAIgYEQANAIAYoAhghASAGIAogBigCHCAIcEECdGoiCygCADYCGCALIAY2AgAgASIGDQALCyAEQQFqIgQgB0cNAAsLIAkQBiAAIAg2AgAgACAKNgIQCyADQQhxBEAgBSACNwMICyAFIAI3AxBBAQ8LIAQEQCAEQQA2AgQgBEEONgIAC0EADwsgBARAIARBADYCBCAEQQ42AgALQQAL3Q8BF38jAEFAaiIHQgA3AzAgB0IANwM4IAdCADcDICAHQgA3AygCQAJAAkACQAJAIAIEQCACQQNxIQggAkEBa0EDTwRAIAJBfHEhBgNAIAdBIGogASAJQQF0IgxqLwEAQQF0aiIKIAovAQBBAWo7AQAgB0EgaiABIAxBAnJqLwEAQQF0aiIKIAovAQBBAWo7AQAgB0EgaiABIAxBBHJqLwEAQQF0aiIKIAovAQBBAWo7AQAgB0EgaiABIAxBBnJqLwEAQQF0aiIKIAovAQBBAWo7AQAgCUEEaiEJIAZBBGsiBg0ACwsgCARAA0AgB0EgaiABIAlBAXRqLwEAQQF0aiIGIAYvAQBBAWo7AQAgCUEBaiEJIAhBAWsiCA0ACwsgBCgCACEJQQ8hCyAHLwE+IhENAgwBCyAEKAIAIQkLQQ4hC0EAIREgBy8BPA0AQQ0hCyAHLwE6DQBBDCELIAcvATgNAEELIQsgBy8BNg0AQQohCyAHLwE0DQBBCSELIAcvATINAEEIIQsgBy8BMA0AQQchCyAHLwEuDQBBBiELIAcvASwNAEEFIQsgBy8BKg0AQQQhCyAHLwEoDQBBAyELIAcvASYNAEECIQsgBy8BJA0AIAcvASJFBEAgAyADKAIAIgBBBGo2AgAgAEHAAjYBACADIAMoAgAiAEEEajYCACAAQcACNgEAQQEhDQwDCyAJQQBHIRtBASELQQEhCQwBCyALIAkgCSALSxshG0EBIQ5BASEJA0AgB0EgaiAJQQF0ai8BAA0BIAlBAWoiCSALRw0ACyALIQkLQX8hCCAHLwEiIg9BAksNAUEEIAcvASQiECAPQQF0amsiBkEASA0BIAZBAXQgBy8BJiISayIGQQBIDQEgBkEBdCAHLwEoIhNrIgZBAEgNASAGQQF0IAcvASoiFGsiBkEASA0BIAZBAXQgBy8BLCIVayIGQQBIDQEgBkEBdCAHLwEuIhZrIgZBAEgNASAGQQF0IAcvATAiF2siBkEASA0BIAZBAXQgBy8BMiIZayIGQQBIDQEgBkEBdCAHLwE0IhxrIgZBAEgNASAGQQF0IAcvATYiDWsiBkEASA0BIAZBAXQgBy8BOCIYayIGQQBIDQEgBkEBdCAHLwE6IgxrIgZBAEgNASAGQQF0IAcvATwiCmsiBkEASA0BIAZBAXQgEWsiBkEASA0BIAZBACAARSAOchsNASAJIBtLIRpBACEIIAdBADsBAiAHIA87AQQgByAPIBBqIgY7AQYgByAGIBJqIgY7AQggByAGIBNqIgY7AQogByAGIBRqIgY7AQwgByAGIBVqIgY7AQ4gByAGIBZqIgY7ARAgByAGIBdqIgY7ARIgByAGIBlqIgY7ARQgByAGIBxqIgY7ARYgByAGIA1qIgY7ARggByAGIBhqIgY7ARogByAGIAxqIgY7ARwgByAGIApqOwEeAkAgAkUNACACQQFHBEAgAkF+cSEGA0AgASAIQQF0ai8BACIKBEAgByAKQQF0aiIKIAovAQAiCkEBajsBACAFIApBAXRqIAg7AQALIAEgCEEBciIMQQF0ai8BACIKBEAgByAKQQF0aiIKIAovAQAiCkEBajsBACAFIApBAXRqIAw7AQALIAhBAmohCCAGQQJrIgYNAAsLIAJBAXFFDQAgASAIQQF0ai8BACICRQ0AIAcgAkEBdGoiAiACLwEAIgJBAWo7AQAgBSACQQF0aiAIOwEACyAJIBsgGhshDUEUIRBBACEWIAUiCiEYQQAhEgJAAkACQCAADgICAAELQQEhCCANQQpLDQNBgQIhEEHw2QAhGEGw2QAhCkEBIRIMAQsgAEECRiEWQQAhEEHw2gAhGEGw2gAhCiAAQQJHBEAMAQtBASEIIA1BCUsNAgtBASANdCITQQFrIRwgAygCACEUQQAhFSANIQZBACEPQQAhDkF/IQIDQEEBIAZ0IRoCQANAIAkgD2shFwJAIAUgFUEBdGovAQAiCCAQTwRAIAogCCAQa0EBdCIAai8BACERIAAgGGotAAAhAAwBC0EAQeAAIAhBAWogEEkiBhshACAIQQAgBhshEQsgDiAPdiEMQX8gF3QhBiAaIQgDQCAUIAYgCGoiCCAMakECdGoiGSAROwECIBkgFzoAASAZIAA6AAAgCA0AC0EBIAlBAWt0IQYDQCAGIgBBAXYhBiAAIA5xDQALIAdBIGogCUEBdGoiBiAGLwEAQQFrIgY7AQAgAEEBayAOcSAAakEAIAAbIQ4gFUEBaiEVIAZB//8DcUUEQCAJIAtGDQIgASAFIBVBAXRqLwEAQQF0ai8BACEJCyAJIA1NDQAgDiAccSIAIAJGDQALQQEgCSAPIA0gDxsiD2siBnQhAiAJIAtJBEAgCyAPayEMIAkhCAJAA0AgAiAHQSBqIAhBAXRqLwEAayICQQFIDQEgAkEBdCECIAZBAWoiBiAPaiIIIAtJDQALIAwhBgtBASAGdCECC0EBIQggEiACIBNqIhNBtApLcQ0DIBYgE0HQBEtxDQMgAygCACICIABBAnRqIgggDToAASAIIAY6AAAgCCAUIBpBAnRqIhQgAmtBAnY7AQIgACECDAELCyAOBEAgFCAOQQJ0aiIAQQA7AQIgACAXOgABIABBwAA6AAALIAMgAygCACATQQJ0ajYCAAsgBCANNgIAQQAhCAsgCAusAQICfgF/IAFBAmqtIQIgACkDmC4hAwJAIAAoAqAuIgFBA2oiBEE/TQRAIAIgAa2GIAOEIQIMAQsgAUHAAEYEQCAAKAIEIAAoAhBqIAM3AAAgACAAKAIQQQhqNgIQQQMhBAwBCyAAKAIEIAAoAhBqIAIgAa2GIAOENwAAIAAgACgCEEEIajYCECABQT1rIQQgAkHAACABa62IIQILIAAgAjcDmC4gACAENgKgLguXAwICfgN/QYDJADMBACECIAApA5guIQMCQCAAKAKgLiIFQYLJAC8BACIGaiIEQT9NBEAgAiAFrYYgA4QhAgwBCyAFQcAARgRAIAAoAgQgACgCEGogAzcAACAAIAAoAhBBCGo2AhAgBiEEDAELIAAoAgQgACgCEGogAiAFrYYgA4Q3AAAgACAAKAIQQQhqNgIQIARBQGohBCACQcAAIAVrrYghAgsgACACNwOYLiAAIAQ2AqAuIAEEQAJAIARBOU4EQCAAKAIEIAAoAhBqIAI3AAAgACAAKAIQQQhqNgIQDAELIARBGU4EQCAAKAIEIAAoAhBqIAI+AAAgACAAKAIQQQRqNgIQIAAgACkDmC5CIIgiAjcDmC4gACAAKAKgLkEgayIENgKgLgsgBEEJTgR/IAAoAgQgACgCEGogAj0AACAAIAAoAhBBAmo2AhAgACkDmC5CEIghAiAAKAKgLkEQawUgBAtBAUgNACAAIAAoAhAiAUEBajYCECABIAAoAgRqIAI8AAALIABBADYCoC4gAEIANwOYLgsL8hQBEn8gASgCCCICKAIAIQUgAigCDCEHIAEoAgAhCCAAQoCAgIDQxwA3A6ApQQAhAgJAAkAgB0EASgRAQX8hDANAAkAgCCACQQJ0aiIDLwEABEAgACAAKAKgKUEBaiIDNgKgKSAAIANBAnRqQawXaiACNgIAIAAgAmpBqClqQQA6AAAgAiEMDAELIANBADsBAgsgAkEBaiICIAdHDQALIABB/C1qIQ8gAEH4LWohESAAKAKgKSIEQQFKDQIMAQsgAEH8LWohDyAAQfgtaiERQX8hDAsDQCAAIARBAWoiAjYCoCkgACACQQJ0akGsF2ogDEEBaiIDQQAgDEECSCIGGyICNgIAIAggAkECdCIEakEBOwEAIAAgAmpBqClqQQA6AAAgACAAKAL4LUEBazYC+C0gBQRAIA8gDygCACAEIAVqLwECazYCAAsgAyAMIAYbIQwgACgCoCkiBEECSA0ACwsgASAMNgIEIARBAXYhBgNAIAAgBkECdGpBrBdqKAIAIQkCQCAGIgJBAXQiAyAESg0AIAggCUECdGohCiAAIAlqQagpaiENIAYhBQNAAkAgAyAETgRAIAMhAgwBCyAIIABBrBdqIgIgA0EBciIEQQJ0aigCACILQQJ0ai8BACIOIAggAiADQQJ0aigCACIQQQJ0ai8BACICTwRAIAIgDkcEQCADIQIMAgsgAyECIABBqClqIgMgC2otAAAgAyAQai0AAEsNAQsgBCECCyAKLwEAIgQgCCAAIAJBAnRqQawXaigCACIDQQJ0ai8BACILSQRAIAUhAgwCCwJAIAQgC0cNACANLQAAIAAgA2pBqClqLQAASw0AIAUhAgwCCyAAIAVBAnRqQawXaiADNgIAIAIhBSACQQF0IgMgACgCoCkiBEwNAAsLIAAgAkECdGpBrBdqIAk2AgAgBkECTgRAIAZBAWshBiAAKAKgKSEEDAELCyAAKAKgKSEDA0AgByEGIAAgA0EBayIENgKgKSAAKAKwFyEKIAAgACADQQJ0akGsF2ooAgAiCTYCsBdBASECAkAgA0EDSA0AIAggCUECdGohDSAAIAlqQagpaiELQQIhA0EBIQUDQAJAIAMgBE4EQCADIQIMAQsgCCAAQawXaiICIANBAXIiB0ECdGooAgAiBEECdGovAQAiDiAIIAIgA0ECdGooAgAiEEECdGovAQAiAk8EQCACIA5HBEAgAyECDAILIAMhAiAAQagpaiIDIARqLQAAIAMgEGotAABLDQELIAchAgsgDS8BACIHIAggACACQQJ0akGsF2ooAgAiA0ECdGovAQAiBEkEQCAFIQIMAgsCQCAEIAdHDQAgCy0AACAAIANqQagpai0AAEsNACAFIQIMAgsgACAFQQJ0akGsF2ogAzYCACACIQUgAkEBdCIDIAAoAqApIgRMDQALC0ECIQMgAEGsF2oiByACQQJ0aiAJNgIAIAAgACgCpClBAWsiBTYCpCkgACgCsBchAiAHIAVBAnRqIAo2AgAgACAAKAKkKUEBayIFNgKkKSAHIAVBAnRqIAI2AgAgCCAGQQJ0aiINIAggAkECdGoiBS8BACAIIApBAnRqIgQvAQBqOwEAIABBqClqIgkgBmoiCyACIAlqLQAAIgIgCSAKai0AACIKIAIgCksbQQFqOgAAIAUgBjsBAiAEIAY7AQIgACAGNgKwF0EBIQVBASECAkAgACgCoCkiBEECSA0AA0AgDS8BACIKIAggAAJ/IAMgAyAETg0AGiAIIAcgA0EBciICQQJ0aigCACIEQQJ0ai8BACIOIAggByADQQJ0aigCACIQQQJ0ai8BACISTwRAIAMgDiASRw0BGiADIAQgCWotAAAgCSAQai0AAEsNARoLIAILIgJBAnRqQawXaigCACIDQQJ0ai8BACIESQRAIAUhAgwCCwJAIAQgCkcNACALLQAAIAAgA2pBqClqLQAASw0AIAUhAgwCCyAAIAVBAnRqQawXaiADNgIAIAIhBSACQQF0IgMgACgCoCkiBEwNAAsLIAZBAWohByAAIAJBAnRqQawXaiAGNgIAIAAoAqApIgNBAUoNAAsgACAAKAKkKUEBayICNgKkKSAAQawXaiIDIAJBAnRqIAAoArAXNgIAIAEoAgQhCSABKAIIIgIoAhAhBiACKAIIIQogAigCBCEQIAIoAgAhDSABKAIAIQcgAEGkF2pCADcBACAAQZwXakIANwEAIABBlBdqQgA3AQAgAEGMF2oiAUIANwEAQQAhBSAHIAMgACgCpClBAnRqKAIAQQJ0akEAOwECAkAgACgCpCkiAkG7BEoNACACQQFqIQIDQCAHIAAgAkECdGpBrBdqKAIAIgRBAnQiEmoiCyAHIAsvAQJBAnRqLwECIgNBAWogBiADIAZJGyIOOwECIAMgBk8hEwJAIAQgCUoNACAAIA5BAXRqQYwXaiIDIAMvAQBBAWo7AQBBACEDIAQgCk4EQCAQIAQgCmtBAnRqKAIAIQMLIBEgESgCACALLwEAIgQgAyAOamxqNgIAIA1FDQAgDyAPKAIAIAMgDSASai8BAmogBGxqNgIACyAFIBNqIQUgAkEBaiICQb0ERw0ACyAFRQ0AIAAgBkEBdGpBjBdqIQQDQCAGIQIDQCAAIAIiA0EBayICQQF0akGMF2oiDy8BACIKRQ0ACyAPIApBAWs7AQAgACADQQF0akGMF2oiAiACLwEAQQJqOwEAIAQgBC8BAEEBayIDOwEAIAVBAkohAiAFQQJrIQUgAg0ACyAGRQ0AQb0EIQIDQCADQf//A3EiBQRAA0AgACACQQFrIgJBAnRqQawXaigCACIDIAlKDQAgByADQQJ0aiIDLwECIAZHBEAgESARKAIAIAYgAy8BAGxqIgQ2AgAgESAEIAMvAQAgAy8BAmxrNgIAIAMgBjsBAgsgBUEBayIFDQALCyAGQQFrIgZFDQEgACAGQQF0akGMF2ovAQAhAwwACwALIwBBIGsiAiABIgAvAQBBAXQiATsBAiACIAEgAC8BAmpBAXQiATsBBCACIAEgAC8BBGpBAXQiATsBBiACIAEgAC8BBmpBAXQiATsBCCACIAEgAC8BCGpBAXQiATsBCiACIAEgAC8BCmpBAXQiATsBDCACIAEgAC8BDGpBAXQiATsBDiACIAEgAC8BDmpBAXQiATsBECACIAEgAC8BEGpBAXQiATsBEiACIAEgAC8BEmpBAXQiATsBFCACIAEgAC8BFGpBAXQiATsBFiACIAEgAC8BFmpBAXQiATsBGCACIAEgAC8BGGpBAXQiATsBGiACIAEgAC8BGmpBAXQiATsBHCACIAAvARwgAWpBAXQ7AR5BACEAIAxBAE4EQANAIAggAEECdGoiAy8BAiIBBEAgAiABQQF0aiIFIAUvAQAiBUEBajsBACADIAWtQoD+A4NCCIhCgpCAgQh+QpDCiKKIAYNCgYKEiBB+QiCIp0H/AXEgBUH/AXGtQoKQgIEIfkKQwoiiiAGDQoGChIgQfkIYiKdBgP4DcXJBECABa3Y7AQALIAAgDEchASAAQQFqIQAgAQ0ACwsLcgEBfyMAQRBrIgQkAAJ/QQAgAEUNABogAEEIaiEAIAFFBEAgAlBFBEAgAARAIABBADYCBCAAQRI2AgALQQAMAgtBAEIAIAMgABA6DAELIAQgAjcDCCAEIAE2AgAgBEIBIAMgABA6CyEAIARBEGokACAACyIAIAAgASACIAMQJiIARQRAQQAPCyAAKAIwQQAgAiADECULAwABC8gFAQR/IABB//8DcSEDIABBEHYhBEEBIQAgAkEBRgRAIAMgAS0AAGpB8f8DcCIAIARqQfH/A3BBEHQgAHIPCwJAIAEEfyACQRBJDQECQCACQa8rSwRAA0AgAkGwK2shAkG1BSEFIAEhAANAIAMgAC0AAGoiAyAEaiADIAAtAAFqIgNqIAMgAC0AAmoiA2ogAyAALQADaiIDaiADIAAtAARqIgNqIAMgAC0ABWoiA2ogAyAALQAGaiIDaiADIAAtAAdqIgNqIQQgBQRAIABBCGohACAFQQFrIQUMAQsLIARB8f8DcCEEIANB8f8DcCEDIAFBsCtqIQEgAkGvK0sNAAsgAkEISQ0BCwNAIAMgAS0AAGoiACAEaiAAIAEtAAFqIgBqIAAgAS0AAmoiAGogACABLQADaiIAaiAAIAEtAARqIgBqIAAgAS0ABWoiAGogACABLQAGaiIAaiAAIAEtAAdqIgNqIQQgAUEIaiEBIAJBCGsiAkEHSw0ACwsCQCACRQ0AIAJBAWshBiACQQNxIgUEQCABIQADQCACQQFrIQIgAyAALQAAaiIDIARqIQQgAEEBaiIBIQAgBUEBayIFDQALCyAGQQNJDQADQCADIAEtAABqIgAgAS0AAWoiBSABLQACaiIGIAEtAANqIgMgBiAFIAAgBGpqamohBCABQQRqIQEgAkEEayICDQALCyADQfH/A3AgBEHx/wNwQRB0cgVBAQsPCwJAIAJFDQAgAkEBayEGIAJBA3EiBQRAIAEhAANAIAJBAWshAiADIAAtAABqIgMgBGohBCAAQQFqIgEhACAFQQFrIgUNAAsLIAZBA0kNAANAIAMgAS0AAGoiACABLQABaiIFIAEtAAJqIgYgAS0AA2oiAyAGIAUgACAEampqaiEEIAFBBGohASACQQRrIgINAAsLIANB8f8DcCAEQfH/A3BBEHRyCx8AIAAgAiADQcCAASgCABEAACEAIAEgAiADEAcaIAALIwAgACAAKAJAIAIgA0HUgAEoAgARAAA2AkAgASACIAMQBxoLzSoCGH8HfiAAKAIMIgIgACgCECIDaiEQIAMgAWshASAAKAIAIgUgACgCBGohA0F/IAAoAhwiBygCpAF0IQRBfyAHKAKgAXQhCyAHKAI4IQwCf0EAIAcoAiwiEUUNABpBACACIAxJDQAaIAJBhAJqIAwgEWpNCyEWIBBBgwJrIRMgASACaiEXIANBDmshFCAEQX9zIRggC0F/cyESIAcoApwBIRUgBygCmAEhDSAHKAKIASEIIAc1AoQBIR0gBygCNCEOIAcoAjAhGSAQQQFqIQ8DQCAIQThyIQYgBSAIQQN2QQdxayELAn8gAiANIAUpAAAgCK2GIB2EIh2nIBJxQQJ0IgFqIgMtAAAiBA0AGiACIAEgDWoiAS0AAjoAACAGIAEtAAEiAWshBiACQQFqIA0gHSABrYgiHacgEnFBAnQiAWoiAy0AACIEDQAaIAIgASANaiIDLQACOgABIAYgAy0AASIDayEGIA0gHSADrYgiHacgEnFBAnRqIgMtAAAhBCACQQJqCyEBIAtBB2ohBSAGIAMtAAEiAmshCCAdIAKtiCEdAkACQAJAIARB/wFxRQ0AAkACQAJAAkACQANAIARBEHEEQCAVIB0gBK1CD4OIIhqnIBhxQQJ0aiECAn8gCCAEQQ9xIgZrIgRBG0sEQCAEIQggBQwBCyAEQThyIQggBSkAACAErYYgGoQhGiAFIARBA3ZrQQdqCyELIAMzAQIhGyAIIAItAAEiA2shCCAaIAOtiCEaIAItAAAiBEEQcQ0CA0AgBEHAAHFFBEAgCCAVIAIvAQJBAnRqIBqnQX8gBHRBf3NxQQJ0aiICLQABIgNrIQggGiADrYghGiACLQAAIgRBEHFFDQEMBAsLIAdB0f4ANgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsiAw0ACwsgAUEHSQ0BA0AgACACLQAAOgAAIAAgAi0AAToAASAAIAItAAI6AAIgACACLQADOgADIAAgAi0ABDoABCAAIAItAAU6AAUgACACLQAGOgAGIAAgAi0ABzoAByAAQQhqIQAgAkEIaiECIARBCGsiBA0ACwwBCyAERQ0AIAAgASAEED8hAAsgAAvyCAEXfyAAKAJoIgwgACgCMEGGAmsiBWtBACAFIAxJGyENIAAoAnQhAiAAKAKQASEPIAAoAkgiDiAMaiIJIAAoAnAiBUECIAUbIgVBAWsiBmoiAy0AASESIAMtAAAhEyAGIA5qIQZBAyEDIAAoApQBIRYgACgCPCEUIAAoAkwhECAAKAI4IRECQAJ/IAVBA0kEQCANIQggDgwBCyAAIABBACAJLQABIAAoAnwRAAAgCS0AAiAAKAJ8EQAAIQoDQCAAIAogAyAJai0AACAAKAJ8EQAAIQogACgCUCAKQQF0ai8BACIIIAEgCCABQf//A3FJIggbIQEgA0ECayAHIAgbIQcgA0EBaiIDIAVNDQALIAFB//8DcSAHIA1qIghB//8DcU0NASAGIAdB//8DcSIDayEGIA4gA2sLIQMCQAJAIAwgAUH//wNxTQ0AIAIgAkECdiAFIA9JGyEKIA1B//8DcSEVIAlBAmohDyAJQQRrIRcDQAJAAkAgBiABQf//A3EiC2otAAAgE0cNACAGIAtBAWoiAWotAAAgEkcNACADIAtqIgItAAAgCS0AAEcNACABIANqLQAAIAktAAFGDQELIApBAWsiCkUNAiAQIAsgEXFBAXRqLwEAIgEgCEH//wNxSw0BDAILIAJBAmohAUEAIQQgDyECAkADQCACLQAAIAEtAABHDQEgAi0AASABLQABRwRAIARBAXIhBAwCCyACLQACIAEtAAJHBEAgBEECciEEDAILIAItAAMgAS0AA0cEQCAEQQNyIQQMAgsgAi0ABCABLQAERwRAIARBBHIhBAwCCyACLQAFIAEtAAVHBEAgBEEFciEEDAILIAItAAYgAS0ABkcEQCAEQQZyIQQMAgsgAi0AByABLQAHRwRAIARBB3IhBAwCCyABQQhqIQEgAkEIaiECIARB+AFJIRggBEEIaiEEIBgNAAtBgAIhBAsCQAJAIAUgBEECaiICSQRAIAAgCyAHQf//A3FrIgY2AmwgAiAUSwRAIBQPCyACIBZPBEAgAg8LIAkgBEEBaiIFaiIBLQABIRIgAS0AACETAkAgAkEESQ0AIAIgBmogDE8NACAGQf//A3EhCCAEQQFrIQtBACEDQQAhBwNAIBAgAyAIaiARcUEBdGovAQAiASAGQf//A3FJBEAgAyAVaiABTw0IIAMhByABIQYLIANBAWoiAyALTQ0ACyAAIAAgAEEAIAIgF2oiAS0AACAAKAJ8EQAAIAEtAAEgACgCfBEAACABLQACIAAoAnwRAAAhASAAKAJQIAFBAXRqLwEAIgEgBkH//wNxTwRAIAdB//8DcSEDIAYhAQwDCyAEQQJrIgdB//8DcSIDIBVqIAFPDQYMAgsgAyAFaiEGIAIhBQsgCkEBayIKRQ0DIBAgCyARcUEBdGovAQAiASAIQf//A3FNDQMMAQsgByANaiEIIA4gA2siAyAFaiEGIAIhBQsgDCABQf//A3FLDQALCyAFDwsgAiEFCyAFIAAoAjwiACAAIAVLGwuGBQETfyAAKAJ0IgMgA0ECdiAAKAJwIgNBAiADGyIDIAAoApABSRshByAAKAJoIgogACgCMEGGAmsiBWtB//8DcUEAIAUgCkkbIQwgACgCSCIIIApqIgkgA0EBayICaiIFLQABIQ0gBS0AACEOIAlBAmohBSACIAhqIQsgACgClAEhEiAAKAI8IQ8gACgCTCEQIAAoAjghESAAKAKIAUEFSCETA0ACQCAKIAFB//8DcU0NAANAAkACQCALIAFB//8DcSIGai0AACAORw0AIAsgBkEBaiIBai0AACANRw0AIAYgCGoiAi0AACAJLQAARw0AIAEgCGotAAAgCS0AAUYNAQsgB0EBayIHRQ0CIAwgECAGIBFxQQF0ai8BACIBSQ0BDAILCyACQQJqIQRBACECIAUhAQJAA0AgAS0AACAELQAARw0BIAEtAAEgBC0AAUcEQCACQQFyIQIMAgsgAS0AAiAELQACRwRAIAJBAnIhAgwCCyABLQADIAQtAANHBEAgAkEDciECDAILIAEtAAQgBC0ABEcEQCACQQRyIQIMAgsgAS0ABSAELQAFRwRAIAJBBXIhAgwCCyABLQAGIAQtAAZHBEAgAkEGciECDAILIAEtAAcgBC0AB0cEQCACQQdyIQIMAgsgBEEIaiEEIAFBCGohASACQfgBSSEUIAJBCGohAiAUDQALQYACIQILAkAgAyACQQJqIgFJBEAgACAGNgJsIAEgD0sEQCAPDwsgASASTwRAIAEPCyAIIAJBAWoiA2ohCyADIAlqIgMtAAEhDSADLQAAIQ4gASEDDAELIBMNAQsgB0EBayIHRQ0AIAwgECAGIBFxQQF0ai8BACIBSQ0BCwsgAwvLAQECfwJAA0AgAC0AACABLQAARw0BIAAtAAEgAS0AAUcEQCACQQFyDwsgAC0AAiABLQACRwRAIAJBAnIPCyAALQADIAEtAANHBEAgAkEDcg8LIAAtAAQgAS0ABEcEQCACQQRyDwsgAC0ABSABLQAFRwRAIAJBBXIPCyAALQAGIAEtAAZHBEAgAkEGcg8LIAAtAAcgAS0AB0cEQCACQQdyDwsgAUEIaiEBIABBCGohACACQfgBSSEDIAJBCGohAiADDQALQYACIQILIAIL5wwBB38gAEF/cyEAIAJBF08EQAJAIAFBA3FFDQAgAS0AACAAQf8BcXNBAnRB0BhqKAIAIABBCHZzIQAgAkEBayIEQQAgAUEBaiIDQQNxG0UEQCAEIQIgAyEBDAELIAEtAAEgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBAmohAwJAIAJBAmsiBEUNACADQQNxRQ0AIAEtAAIgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBA2ohAwJAIAJBA2siBEUNACADQQNxRQ0AIAEtAAMgAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBBGohASACQQRrIQIMAgsgBCECIAMhAQwBCyAEIQIgAyEBCyACQRRuIgNBbGwhCQJAIANBAWsiCEUEQEEAIQQMAQsgA0EUbCABakEUayEDQQAhBANAIAEoAhAgB3MiB0EWdkH8B3FB0DhqKAIAIAdBDnZB/AdxQdAwaigCACAHQQZ2QfwHcUHQKGooAgAgB0H/AXFBAnRB0CBqKAIAc3NzIQcgASgCDCAGcyIGQRZ2QfwHcUHQOGooAgAgBkEOdkH8B3FB0DBqKAIAIAZBBnZB/AdxQdAoaigCACAGQf8BcUECdEHQIGooAgBzc3MhBiABKAIIIAVzIgVBFnZB/AdxQdA4aigCACAFQQ52QfwHcUHQMGooAgAgBUEGdkH8B3FB0ChqKAIAIAVB/wFxQQJ0QdAgaigCAHNzcyEFIAEoAgQgBHMiBEEWdkH8B3FB0DhqKAIAIARBDnZB/AdxQdAwaigCACAEQQZ2QfwHcUHQKGooAgAgBEH/AXFBAnRB0CBqKAIAc3NzIQQgASgCACAAcyIAQRZ2QfwHcUHQOGooAgAgAEEOdkH8B3FB0DBqKAIAIABBBnZB/AdxQdAoaigCACAAQf8BcUECdEHQIGooAgBzc3MhACABQRRqIQEgCEEBayIIDQALIAMhAQsgAiAJaiECIAEoAhAgASgCDCABKAIIIAEoAgQgASgCACAAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQf8BcUECdEHQGGooAgAgBHNzIABBCHZzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBB/wFxQQJ0QdAYaigCACAFc3MgAEEIdnMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEH/AXFBAnRB0BhqKAIAIAZzcyAAQQh2cyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQf8BcUECdEHQGGooAgAgB3NzIABBCHZzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyIAQQh2IABB/wFxQQJ0QdAYaigCAHMiAEEIdiAAQf8BcUECdEHQGGooAgBzIgBBCHYgAEH/AXFBAnRB0BhqKAIAcyEAIAFBFGohAQsgAkEHSwRAA0AgAS0AByABLQAGIAEtAAUgAS0ABCABLQADIAEtAAIgAS0AASABLQAAIABB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyIAQf8BcXNBAnRB0BhqKAIAIABBCHZzIgBB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyIAQf8BcXNBAnRB0BhqKAIAIABBCHZzIgBB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBCGohASACQQhrIgJBB0sNAAsLAkAgAkUNACACQQFxBH8gAS0AACAAQf8BcXNBAnRB0BhqKAIAIABBCHZzIQAgAUEBaiEBIAJBAWsFIAILIQMgAkEBRg0AA0AgAS0AASABLQAAIABB/wFxc0ECdEHQGGooAgAgAEEIdnMiAEH/AXFzQQJ0QdAYaigCACAAQQh2cyEAIAFBAmohASADQQJrIgMNAAsLIABBf3MLwgIBA38jAEEQayIIJAACfwJAIAAEQCAEDQEgBVANAQsgBgRAIAZBADYCBCAGQRI2AgALQQAMAQtBgAEQCSIHRQRAIAYEQCAGQQA2AgQgBkEONgIAC0EADAELIAcgATcDCCAHQgA3AwAgB0EoaiIJECogByAFNwMYIAcgBDYCECAHIAM6AGAgB0EANgJsIAdCADcCZCAAKQMYIQEgCEF/NgIIIAhCjoCAgPAANwMAIAdBECAIECQgAUL/gQGDhCIBNwNwIAcgAadBBnZBAXE6AHgCQCACRQ0AIAkgAhBgQX9KDQAgBxAGQQAMAQsgBhBfIgIEQCAAIAAoAjBBAWo2AjAgAiAHNgIIIAJBATYCBCACIAA2AgAgAkI/IAAgB0EAQgBBDkEBEQoAIgEgAUIAUxs3AxgLIAILIQAgCEEQaiQAIAALYgEBf0E4EAkiAUUEQCAABEAgAEEANgIEIABBDjYCAAtBAA8LIAFBADYCCCABQgA3AwAgAUIANwMgIAFCgICAgBA3AiwgAUEAOgAoIAFBADYCFCABQgA3AgwgAUEAOwE0IAELuwEBAX4gASkDACICQgKDUEUEQCAAIAEpAxA3AxALIAJCBINQRQRAIAAgASkDGDcDGAsgAkIIg1BFBEAgACABKQMgNwMgCyACQhCDUEUEQCAAIAEoAig2AigLIAJCIINQRQRAIAAgASgCLDYCLAsgAkLAAINQRQRAIAAgAS8BMDsBMAsgAkKAAYNQRQRAIAAgAS8BMjsBMgsgAkKAAoNQRQRAIAAgASgCNDYCNAsgACAAKQMAIAKENwMAQQALGQAgAUUEQEEADwsgACABKAIAIAEzAQQQGws3AQJ/IABBACABG0UEQCAAIAFGDwsgAC8BBCIDIAEvAQRGBH8gACgCACABKAIAIAMQPQVBAQtFCyIBAX8gAUUEQEEADwsgARAJIgJFBEBBAA8LIAIgACABEAcLKQAgACABIAIgAyAEEEUiAEUEQEEADwsgACACQQAgBBA1IQEgABAGIAELcQEBfgJ/AkAgAkJ/VwRAIAMEQCADQQA2AgQgA0EUNgIACwwBCyAAIAEgAhARIgRCf1cEQCADBEAgAyAAKAIMNgIAIAMgACgCEDYCBAsMAQtBACACIARXDQEaIAMEQCADQQA2AgQgA0ERNgIACwtBfwsLNQAgACABIAJBABAmIgBFBEBBfw8LIAMEQCADIAAtAAk6AAALIAQEQCAEIAAoAkQ2AgALQQAL/AECAn8BfiMAQRBrIgMkAAJAIAAgA0EOaiABQYAGQQAQRiIARQRAIAIhAAwBCyADLwEOIgFBBUkEQCACIQAMAQsgAC0AAEEBRwRAIAIhAAwBCyAAIAGtQv//A4MQFyIBRQRAIAIhAAwBCyABEH0aAkAgARAVIAIEfwJ/IAIvAQQhAEEAIAIoAgAiBEUNABpBACAEIABB1IABKAIAEQAACwVBAAtHBEAgAiEADAELIAEgAS0AAAR+IAEpAwggASkDEH0FQgALIgVC//8DgxATIAWnQf//A3FBgBBBABA1IgBFBEAgAiEADAELIAIQEAsgARAICyADQRBqJAAgAAvmDwIIfwJ+IwBB4ABrIgckAEEeQS4gAxshCwJAAkAgAgRAIAIiBSIGLQAABH4gBikDCCAGKQMQfQVCAAsgC61aDQEgBARAIARBADYCBCAEQRM2AgALQn8hDQwCCyABIAutIAcgBBAtIgUNAEJ/IQ0MAQsgBUIEEBMoAABBoxJBqBIgAxsoAABHBEAgBARAIARBADYCBCAEQRM2AgALQn8hDSACDQEgBRAIDAELIABCADcDICAAQQA2AhggAEL/////DzcDECAAQQA7AQwgAEG/hig2AgggAEEBOgAGIABBADsBBCAAQQA2AgAgAEIANwNIIABBgIDYjXg2AkQgAEIANwMoIABCADcDMCAAQgA3AzggAEFAa0EAOwEAIABCADcDUCAAIAMEf0EABSAFEAwLOwEIIAAgBRAMOwEKIAAgBRAMOwEMIAAgBRAMNgIQIAUQDCEGIAUQDCEJIAdBADYCWCAHQgA3A1AgB0IANwNIIAcgCUEfcTYCPCAHIAZBC3Y2AjggByAGQQV2QT9xNgI0IAcgBkEBdEE+cTYCMCAHIAlBCXZB0ABqNgJEIAcgCUEFdkEPcUEBazYCQCAAIAdBMGoQBTYCFCAAIAUQFTYCGCAAIAUQFa03AyAgACAFEBWtNwMoIAUQDCEIIAUQDCEGIAACfiADBEBBACEJIABBADYCRCAAQQA7AUAgAEEANgI8QgAMAQsgBRAMIQkgACAFEAw2AjwgACAFEAw7AUAgACAFEBU2AkQgBRAVrQs3A0ggBS0AAEUEQCAEBEAgBEEANgIEIARBFDYCAAtCfyENIAINASAFEAgMAQsCQCAALwEMIgpBAXEEQCAKQcAAcQRAIABB//8DOwFSDAILIABBATsBUgwBCyAAQQA7AVILIABBADYCOCAAQgA3AzAgBiAIaiAJaiEKAkAgAgRAIAUtAAAEfiAFKQMIIAUpAxB9BUIACyAKrVoNASAEBEAgBEEANgIEIARBFTYCAAtCfyENDAILIAUQCCABIAqtQQAgBBAtIgUNAEJ/IQ0MAQsCQCAIRQ0AIAAgBSABIAhBASAEEGQiCDYCMCAIRQRAIAQoAgBBEUYEQCAEBEAgBEEANgIEIARBFTYCAAsLQn8hDSACDQIgBRAIDAILIAAtAA1BCHFFDQAgCEECECNBBUcNACAEBEAgBEEANgIEIARBFTYCAAtCfyENIAINASAFEAgMAQsgAEE0aiEIAkAgBkUNACAFIAEgBkEAIAQQRSIMRQRAQn8hDSACDQIgBRAIDAILIAwgBkGAAkGABCADGyAIIAQQbiEGIAwQBiAGRQRAQn8hDSACDQIgBRAIDAILIANFDQAgAEEBOgAECwJAIAlFDQAgACAFIAEgCUEAIAQQZCIBNgI4IAFFBEBCfyENIAINAiAFEAgMAgsgAC0ADUEIcUUNACABQQIQI0EFRw0AIAQEQCAEQQA2AgQgBEEVNgIAC0J/IQ0gAg0BIAUQCAwBCyAAIAAoAjRB9eABIAAoAjAQZzYCMCAAIAAoAjRB9cYBIAAoAjgQZzYCOAJAAkAgACkDKEL/////D1ENACAAKQMgQv////8PUQ0AIAApA0hC/////w9SDQELAkACQAJAIAgoAgAgB0EwakEBQYACQYAEIAMbIAQQRiIBRQRAIAJFDQEMAgsgASAHMwEwEBciAUUEQCAEBEAgBEEANgIEIARBDjYCAAsgAkUNAQwCCwJAIAApAyhC/////w9RBEAgACABEB03AygMAQsgA0UNAEEAIQYCQCABKQMQIg5CCHwiDSAOVA0AIAEpAwggDVQNACABIA03AxBBASEGCyABIAY6AAALIAApAyBC/////w9RBEAgACABEB03AyALAkAgAw0AIAApA0hC/////w9RBEAgACABEB03A0gLIAAoAjxB//8DRw0AIAAgARAVNgI8CyABLQAABH8gASkDECABKQMIUQVBAAsNAiAEBEAgBEEANgIEIARBFTYCAAsgARAIIAINAQsgBRAIC0J/IQ0MAgsgARAICyAFLQAARQRAIAQEQCAEQQA2AgQgBEEUNgIAC0J/IQ0gAg0BIAUQCAwBCyACRQRAIAUQCAtCfyENIAApA0hCf1cEQCAEBEAgBEEWNgIEIARBBDYCAAsMAQsjAEEQayIDJABBASEBAkAgACgCEEHjAEcNAEEAIQECQCAAKAI0IANBDmpBgbICQYAGQQAQRiICBEAgAy8BDiIFQQZLDQELIAQEQCAEQQA2AgQgBEEVNgIACwwBCyACIAWtQv//A4MQFyICRQRAIAQEQCAEQQA2AgQgBEEUNgIACwwBC0EBIQECQAJAAkAgAhAMQQFrDgICAQALQQAhASAEBEAgBEEANgIEIARBGDYCAAsgAhAIDAILIAApAyhCE1YhAQsgAkICEBMvAABBwYoBRwRAQQAhASAEBEAgBEEANgIEIARBGDYCAAsgAhAIDAELIAIQfUEBayIFQf8BcUEDTwRAQQAhASAEBEAgBEEANgIEIARBGDYCAAsgAhAIDAELIAMvAQ5BB0cEQEEAIQEgBARAIARBADYCBCAEQRU2AgALIAIQCAwBCyAAIAE6AAYgACAFQf8BcUGBAmo7AVIgACACEAw2AhAgAhAIQQEhAQsgA0EQaiQAIAFFDQAgCCAIKAIAEG02AgAgCiALaq0hDQsgB0HgAGokACANC4ECAQR/IwBBEGsiBCQAAkAgASAEQQxqQcAAQQAQJSIGRQ0AIAQoAgxBBWoiA0GAgARPBEAgAgRAIAJBADYCBCACQRI2AgALDAELQQAgA60QFyIDRQRAIAIEQCACQQA2AgQgAkEONgIACwwBCyADQQEQcCADIAEEfwJ/IAEvAQQhBUEAIAEoAgAiAUUNABpBACABIAVB1IABKAIAEQAACwVBAAsQEiADIAYgBCgCDBAsAn8gAy0AAEUEQCACBEAgAkEANgIEIAJBFDYCAAtBAAwBCyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwDCwJAAkBBEBAJIgUEQCAFIAY7AQogBSAHOwEIIAUgAjYCBCAFQQA2AgAgBkUNASAFIAggBhBjIgY2AgwgBg0CIAUQBgtBACECIAQEQCAEQQA2AgQgBEEONgIACyABEAggAEUNBANAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwECyAFQQA2AgwLAkAgAEUEQCAFIQAMAQsgCSAFNgIACyAFIQkgAS0AAA0ACwsCQCABLQAABH8gASkDECABKQMIUQVBAAsNACABIAEtAAAEfiABKQMIIAEpAxB9BUIACyIKQv////8PgxATIQICQCAKpyIFQQNLDQAgAkUNACACQcEUIAUQPUUNAQtBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAQNAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwBCyABEAggAwRAIAMgADYCAEEBDwtBASECIABFDQADQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsLIAILvgEBBX8gAAR/IAAhAgNAIAIiBCgCACICDQALIAEEQANAIAEiAy8BCCEGIAMoAgAhASAAIQICQAJAA0ACQCACLwEIIAZHDQAgAi8BCiIFIAMvAQpHDQAgBUUNAiACKAIMIAMoAgwgBRA9RQ0CCyACKAIAIgINAAsgA0EANgIAIAQgAzYCACADIQQMAQsgAiACKAIEIAMoAgRBgAZxcjYCBCADQQA2AgAgAygCDBAGIAMQBgsgAQ0ACwsgAAUgAQsLVQICfgF/AkACQCAALQAARQ0AIAApAxAiAkIBfCIDIAJUDQAgAyAAKQMIWA0BCyAAQQA6AAAPCyAAKAIEIgRFBEAPCyAAIAM3AxAgBCACp2ogAToAAAt9AQN/IwBBEGsiAiQAIAIgATYCDEF/IQMCQCAALQAoDQACQCAAKAIAIgRFDQAgBCABEHFBf0oNACAAKAIAIQEgAEEMaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAsMAQsgACACQQxqQgRBExAOQj+HpyEDCyACQRBqJAAgAwvdAQEDfyABIAApAzBaBEAgAEEIagRAIABBADYCDCAAQRI2AggLQX8PCyAAQQhqIQIgAC0AGEECcQRAIAIEQCACQQA2AgQgAkEZNgIAC0F/DwtBfyEDAkAgACABQQAgAhBTIgRFDQAgACgCUCAEIAIQfkUNAAJ/IAEgACkDMFoEQCAAQQhqBEAgAEEANgIMIABBEjYCCAtBfwwBCyABp0EEdCICIAAoAkBqKAIEECAgACgCQCACaiICQQA2AgQgAhBAQQALDQAgACgCQCABp0EEdGpBAToADEEAIQMLIAMLpgIBBX9BfyEFAkAgACABQQBBABAmRQ0AIAAtABhBAnEEQCAAQQhqIgAEQCAAQQA2AgQgAEEZNgIAC0F/DwsCfyAAKAJAIgQgAaciBkEEdGooAgAiBUUEQCADQYCA2I14RyEHQQMMAQsgBSgCRCADRyEHIAUtAAkLIQggBCAGQQR0aiIEIQYgBCgCBCEEQQAgAiAIRiAHG0UEQAJAIAQNACAGIAUQKyIENgIEIAQNACAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0F/DwsgBCADNgJEIAQgAjoACSAEIAQoAgBBEHI2AgBBAA8LQQAhBSAERQ0AIAQgBCgCAEFvcSIANgIAIABFBEAgBBAgIAZBADYCBEEADwsgBCADNgJEIAQgCDoACQsgBQvjCAIFfwR+IAAtABhBAnEEQCAAQQhqBEAgAEEANgIMIABBGTYCCAtCfw8LIAApAzAhCwJAIANBgMAAcQRAIAAgASADQQAQTCIJQn9SDQELAn4CQAJAIAApAzAiCUIBfCIMIAApAzgiClQEQCAAKAJAIQQMAQsgCkIBhiIJQoAIIAlCgAhUGyIJQhAgCUIQVhsgCnwiCadBBHQiBK0gCkIEhkLw////D4NUDQEgACgCQCAEEDQiBEUNASAAIAk3AzggACAENgJAIAApAzAiCUIBfCEMCyAAIAw3AzAgBCAJp0EEdGoiBEIANwIAIARCADcABSAJDAELIABBCGoEQCAAQQA2AgwgAEEONgIIC0J/CyIJQgBZDQBCfw8LAkAgAUUNAAJ/QQAhBCAJIAApAzBaBEAgAEEIagRAIABBADYCDCAAQRI2AggLQX8MAQsgAC0AGEECcQRAIABBCGoEQCAAQQA2AgwgAEEZNgIIC0F/DAELAkAgAUUNACABLQAARQ0AQX8gASABECJB//8DcSADIABBCGoQNSIERQ0BGiADQYAwcQ0AIARBABAjQQNHDQAgBEECNgIICwJAIAAgAUEAQQAQTCIKQgBTIgENACAJIApRDQAgBBAQIABBCGoEQCAAQQA2AgwgAEEKNgIIC0F/DAELAkAgAUEBIAkgClEbRQ0AAkACfwJAIAAoAkAiASAJpyIFQQR0aiIGKAIAIgMEQCADKAIwIAQQYg0BCyAEIAYoAgQNARogBiAGKAIAECsiAzYCBCAEIAMNARogAEEIagRAIABBADYCDCAAQQ42AggLDAILQQEhByAGKAIAKAIwC0EAQQAgAEEIaiIDECUiCEUNAAJAAkAgASAFQQR0aiIFKAIEIgENACAGKAIAIgENAEEAIQEMAQsgASgCMCIBRQRAQQAhAQwBCyABQQBBACADECUiAUUNAQsgACgCUCAIIAlBACADEE1FDQAgAQRAIAAoAlAgAUEAEH4aCyAFKAIEIQMgBwRAIANFDQIgAy0AAEECcUUNAiADKAIwEBAgBSgCBCIBIAEoAgBBfXEiAzYCACADRQRAIAEQICAFQQA2AgQgBBAQQQAMBAsgASAGKAIAKAIwNgIwIAQQEEEADAMLIAMoAgAiAUECcQRAIAMoAjAQECAFKAIEIgMoAgAhAQsgAyAENgIwIAMgAUECcjYCAEEADAILIAQQEEF/DAELIAQQEEEAC0UNACALIAApAzBRBEBCfw8LIAAoAkAgCadBBHRqED4gACALNwMwQn8PCyAJpyIGQQR0IgEgACgCQGoQQAJAAkAgACgCQCIEIAFqIgMoAgAiBUUNAAJAIAMoAgQiAwRAIAMoAgAiAEEBcUUNAQwCCyAFECshAyAAKAJAIgQgBkEEdGogAzYCBCADRQ0CIAMoAgAhAAsgA0F+NgIQIAMgAEEBcjYCAAsgASAEaiACNgIIIAkPCyAAQQhqBEAgAEEANgIMIABBDjYCCAtCfwteAQF/IwBBEGsiAiQAAn8gACgCJEEBRwRAIABBDGoiAARAIABBADYCBCAAQRI2AgALQX8MAQsgAkEANgIIIAIgATcDACAAIAJCEEEMEA5CP4enCyEAIAJBEGokACAAC9oDAQZ/IwBBEGsiBSQAIAUgAjYCDCMAQaABayIEJAAgBEEIakHA8ABBkAEQBxogBCAANgI0IAQgADYCHCAEQX4gAGsiA0H/////ByADQf////8HSRsiBjYCOCAEIAAgBmoiADYCJCAEIAA2AhggBEEIaiEAIwBB0AFrIgMkACADIAI2AswBIANBoAFqQQBBKBAZIAMgAygCzAE2AsgBAkBBACABIANByAFqIANB0ABqIANBoAFqEEpBAEgNACAAKAJMQQBOIQcgACgCACECIAAsAEpBAEwEQCAAIAJBX3E2AgALIAJBIHEhCAJ/IAAoAjAEQCAAIAEgA0HIAWogA0HQAGogA0GgAWoQSgwBCyAAQdAANgIwIAAgA0HQAGo2AhAgACADNgIcIAAgAzYCFCAAKAIsIQIgACADNgIsIAAgASADQcgBaiADQdAAaiADQaABahBKIAJFDQAaIABBAEEAIAAoAiQRAAAaIABBADYCMCAAIAI2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAIcjYCACAHRQ0ACyADQdABaiQAIAYEQCAEKAIcIgAgACAEKAIYRmtBADoAAAsgBEGgAWokACAFQRBqJAALUwEDfwJAIAAoAgAsAABBMGtBCk8NAANAIAAoAgAiAiwAACEDIAAgAkEBajYCACABIANqQTBrIQEgAiwAAUEwa0EKTw0BIAFBCmwhAQwACwALIAELuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQcACwubAgAgAEUEQEEADwsCfwJAIAAEfyABQf8ATQ0BAkBB9IIBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDAQLIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMMBAsgAUGAgARrQf//P00EQCAAIAFBP3FBgAFyOgADIAAgAUESdkHwAXI6AAAgACABQQZ2QT9xQYABcjoAAiAAIAFBDHZBP3FBgAFyOgABQQQMBAsLQYSEAUEZNgIAQX8FQQELDAELIAAgAToAAEEBCwvjAQECfyACQQBHIQMCQAJAAkAgAEEDcUUNACACRQ0AIAFB/wFxIQQDQCAALQAAIARGDQIgAkEBayICQQBHIQMgAEEBaiIAQQNxRQ0BIAINAAsLIANFDQELAkAgAC0AACABQf8BcUYNACACQQRJDQAgAUH/AXFBgYKECGwhAwNAIAAoAgAgA3MiBEF/cyAEQYGChAhrcUGAgYKEeHENASAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0AIAFB/wFxIQEDQCABIAAtAABGBEAgAA8LIABBAWohACACQQFrIgINAAsLQQALeQEBfAJAIABFDQAgACsDECAAKwMgIgIgAUQAAAAAAAAAACABRAAAAAAAAAAAZBsiAUQAAAAAAADwPyABRAAAAAAAAPA/YxsgACsDKCACoaKgIgEgACsDGKFjRQ0AIAAoAgAgASAAKAIMIAAoAgQRDgAgACABOQMYCwtIAQF8AkAgAEUNACAAKwMQIAArAyAiASAAKwMoIAGhoCIBIAArAxihY0UNACAAKAIAIAEgACgCDCAAKAIEEQ4AIAAgATkDGAsLWgICfgF/An8CQAJAIAAtAABFDQAgACkDECIBQgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADAELQQAgACgCBCIDRQ0AGiAAIAI3AxAgAyABp2otAAALC4IEAgZ/AX4gAEEAIAEbRQRAIAIEQCACQQA2AgQgAkESNgIAC0EADwsCQAJAIAApAwhQDQAgACgCECABLQAAIgQEf0Kl6wohCSABIQMDQCAJIAStQv8Bg3whCSADLQABIgQEQCADQQFqIQMgCUL/////D4NCIX4hCQwBCwsgCacFQYUqCyIEIAAoAgBwQQJ0aiIGKAIAIgNFDQADQAJAIAMoAhwgBEcNACABIAMoAgAQOA0AAkAgAykDCEJ/UQRAIAMoAhghAQJAIAUEQCAFIAE2AhgMAQsgBiABNgIACyADEAYgACAAKQMIQgF9Igk3AwggCbogACgCACIBuER7FK5H4XqEP6JjRQ0BIAFBgQJJDQECf0EAIQMgACgCACIGIAFBAXYiBUcEQCAFEDwiB0UEQCACBEAgAkEANgIEIAJBDjYCAAtBAAwCCwJAIAApAwhCACAGG1AEQCAAKAIQIQQMAQsgACgCECEEA0AgBCADQQJ0aigCACIBBEADQCABKAIYIQIgASAHIAEoAhwgBXBBAnRqIggoAgA2AhggCCABNgIAIAIiAQ0ACwsgA0EBaiIDIAZHDQALCyAEEAYgACAFNgIAIAAgBzYCEAtBAQsNAQwFCyADQn83AxALQQEPCyADIgUoAhgiAw0ACwsgAgRAIAJBADYCBCACQQk2AgALC0EAC6UGAgl/AX4jAEHwAGsiBSQAAkACQCAARQ0AAkAgAQRAIAEpAzAgAlYNAQtBACEDIABBCGoEQCAAQQA2AgwgAEESNgIICwwCCwJAIANBCHENACABKAJAIAKnQQR0aiIGKAIIRQRAIAYtAAxFDQELQQAhAyAAQQhqBEAgAEEANgIMIABBDzYCCAsMAgsgASACIANBCHIgBUE4ahCKAUF/TARAQQAhAyAAQQhqBEAgAEEANgIMIABBFDYCCAsMAgsgA0EDdkEEcSADciIGQQRxIQcgBSkDUCEOIAUvAWghCQJAIANBIHFFIAUvAWpBAEdxIgtFDQAgBA0AIAAoAhwiBA0AQQAhAyAAQQhqBEAgAEEANgIMIABBGjYCCAsMAgsgBSkDWFAEQCAAQQBCAEEAEFIhAwwCCwJAIAdFIgwgCUEAR3EiDUEBckUEQEEAIQMgBUEAOwEwIAUgDjcDICAFIA43AxggBSAFKAJgNgIoIAVC3AA3AwAgASgCACAOIAVBACABIAIgAEEIahBeIgYNAQwDC0EAIQMgASACIAYgAEEIaiIGECYiB0UNAiABKAIAIAUpA1ggBUE4aiAHLwEMQQF2QQNxIAEgAiAGEF4iBkUNAgsCfyAGIAE2AiwCQCABKAJEIghBAWoiCiABKAJIIgdJBEAgASgCTCEHDAELIAEoAkwgB0EKaiIIQQJ0EDQiB0UEQCABQQhqBEAgAUEANgIMIAFBDjYCCAtBfwwCCyABIAc2AkwgASAINgJIIAEoAkQiCEEBaiEKCyABIAo2AkQgByAIQQJ0aiAGNgIAQQALQX9MBEAgBhALDAELAkAgC0UEQCAGIQEMAQtBJkEAIAUvAWpBAUYbIgFFBEAgAEEIagRAIABBADYCDCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcNAQsCfwJ/An8gASgCBCICBEAgBCAAKAIoIAIQHiAAKAIcIQELIAEoAlAiAgsEQCAAKAIkIAAoAiggAhAeIAAoAhwhAQsgASgCTCICCwRAIAAoAiQgACgCKCACEB4gACgCHCEBCyABKAJIIgILBEAgACgCJCAAKAIoIAIQHiAAKAIcIQELIAAoAiQgACgCKCABEB4gAEEANgIcQX1BACADQfEARhshAgsgAgvrCQEIfyAAKAIwIgMgACgCDEEFayICIAIgA0sbIQggACgCACIEKAIEIQkgAUEERiEHAkADQCAEKAIQIgMgACgCoC5BKmpBA3UiAkkEQEEBIQYMAgsgCCADIAJrIgMgACgCaCAAKAJYayICIAQoAgRqIgVB//8DIAVB//8DSRsiBiADIAZJGyIDSwRAQQEhBiADQQBHIAdyRQ0CIAFFDQIgAyAFRw0CCyAAQQBBACAHIAMgBUZxIgUQOSAAIAAoAhBBBGsiBDYCECAAKAIEIARqIAM7AAAgACAAKAIQQQJqIgQ2AhAgACgCBCAEaiADQX9zOwAAIAAgACgCEEECajYCECAAKAIAEAoCfyACBEAgACgCACgCDCAAKAJIIAAoAlhqIAMgAiACIANLGyICEAcaIAAoAgAiBCAEKAIMIAJqNgIMIAQgBCgCECACazYCECAEIAQoAhQgAmo2AhQgACAAKAJYIAJqNgJYIAMgAmshAwsgAwsEQCAAKAIAIgIgAigCDCADEIMBIAAoAgAiAiACKAIMIANqNgIMIAIgAigCECADazYCECACIAIoAhQgA2o2AhQLIAAoAgAhBCAFRQ0AC0EAIQYLAkAgCSAEKAIEayICRQRAIAAoAmghAwwBCwJAIAAoAjAiAyACTQRAIABBAjYCgC4gACgCSCAEKAIAIANrIAMQBxogACAAKAIwIgM2AoQuIAAgAzYCaAwBCyACIAAoAkQgACgCaCIFa08EQCAAIAUgA2siBDYCaCAAKAJIIgUgAyAFaiAEEAcaIAAoAoAuIgNBAU0EQCAAIANBAWo2AoAuCyAAIAAoAmgiBSAAKAKELiIDIAMgBUsbNgKELiAAKAIAIQQLIAAoAkggBWogBCgCACACayACEAcaIAAgACgCaCACaiIDNgJoIAAgACgCMCAAKAKELiIEayIFIAIgAiAFSxsgBGo2AoQuCyAAIAM2AlgLIAAgAyAAKAJAIgIgAiADSRs2AkBBAyECAkAgBkUNACAAKAIAIgUoAgQhAgJAAkAgAUF7cUUNACACDQBBASECIAMgACgCWEYNAiAAKAJEIANrIQRBACECDAELIAIgACgCRCADayIETQ0AIAAoAlgiByAAKAIwIgZIDQAgACADIAZrIgM2AmggACAHIAZrNgJYIAAoAkgiAiACIAZqIAMQBxogACgCgC4iA0EBTQRAIAAgA0EBajYCgC4LIAAgACgCaCIDIAAoAoQuIgIgAiADSxs2AoQuIAAoAjAgBGohBCAAKAIAIgUoAgQhAgsCQCACIAQgAiAESRsiAkUEQCAAKAIwIQUMAQsgBSAAKAJIIANqIAIQgwEgACAAKAJoIAJqIgM2AmggACAAKAIwIgUgACgChC4iBGsiBiACIAIgBksbIARqNgKELgsgACADIAAoAkAiAiACIANJGzYCQCADIAAoAlgiBmsiAyAFIAAoAgwgACgCoC5BKmpBA3VrIgJB//8DIAJB//8DSRsiBCAEIAVLG0kEQEEAIQIgAUEERiADQQBHckUNASABRQ0BIAAoAgAoAgQNASADIARLDQELQQAhAiABQQRGBEAgACgCACgCBEUgAyAETXEhAgsgACAAKAJIIAZqIAQgAyADIARLGyIBIAIQOSAAIAAoAlggAWo2AlggACgCABAKQQJBACACGw8LIAIL/woCCn8DfiAAKQOYLiENIAAoAqAuIQQgAkEATgRAQQRBAyABLwECIggbIQlBB0GKASAIGyEFQX8hCgNAIAghByABIAsiDEEBaiILQQJ0ai8BAiEIAkACQCAGQQFqIgMgBU4NACAHIAhHDQAgAyEGDAELAkAgAyAJSARAIAAgB0ECdGoiBkHOFWohCSAGQcwVaiEKA0AgCjMBACEPAn8gBCAJLwEAIgZqIgVBP00EQCAPIASthiANhCENIAUMAQsgBEHAAEYEQCAAKAIEIAAoAhBqIA03AAAgACAAKAIQQQhqNgIQIA8hDSAGDAELIAAoAgQgACgCEGogDyAErYYgDYQ3AAAgACAAKAIQQQhqNgIQIA9BwAAgBGutiCENIAVBQGoLIQQgA0EBayIDDQALDAELIAcEQAJAIAcgCkYEQCANIQ8gBCEFIAMhBgwBCyAAIAdBAnRqIgNBzBVqMwEAIQ8gBCADQc4Vai8BACIDaiIFQT9NBEAgDyAErYYgDYQhDwwBCyAEQcAARgRAIAAoAgQgACgCEGogDTcAACAAIAAoAhBBCGo2AhAgAyEFDAELIAAoAgQgACgCEGogDyAErYYgDYQ3AAAgACAAKAIQQQhqNgIQIAVBQGohBSAPQcAAIARrrYghDwsgADMBjBYhDgJAIAUgAC8BjhYiBGoiA0E/TQRAIA4gBa2GIA+EIQ4MAQsgBUHAAEYEQCAAKAIEIAAoAhBqIA83AAAgACAAKAIQQQhqNgIQIAQhAwwBCyAAKAIEIAAoAhBqIA4gBa2GIA+ENwAAIAAgACgCEEEIajYCECADQUBqIQMgDkHAACAFa62IIQ4LIAasQgN9IQ0gA0E9TQRAIANBAmohBCANIAOthiAOhCENDAILIANBwABGBEAgACgCBCAAKAIQaiAONwAAIAAgACgCEEEIajYCEEECIQQMAgsgACgCBCAAKAIQaiANIAOthiAOhDcAACAAIAAoAhBBCGo2AhAgA0E+ayEEIA1BwAAgA2utiCENDAELIAZBCUwEQCAAMwGQFiEOAkAgBCAALwGSFiIFaiIDQT9NBEAgDiAErYYgDYQhDgwBCyAEQcAARgRAIAAoAgQgACgCEGogDTcAACAAIAAoAhBBCGo2AhAgBSEDDAELIAAoAgQgACgCEGogDiAErYYgDYQ3AAAgACAAKAIQQQhqNgIQIANBQGohAyAOQcAAIARrrYghDgsgBqxCAn0hDSADQTxNBEAgA0EDaiEEIA0gA62GIA6EIQ0MAgsgA0HAAEYEQCAAKAIEIAAoAhBqIA43AAAgACAAKAIQQQhqNgIQQQMhBAwCCyAAKAIEIAAoAhBqIA0gA62GIA6ENwAAIAAgACgCEEEIajYCECADQT1rIQQgDUHAACADa62IIQ0MAQsgADMBlBYhDgJAIAQgAC8BlhYiBWoiA0E/TQRAIA4gBK2GIA2EIQ4MAQsgBEHAAEYEQCAAKAIEIAAoAhBqIA03AAAgACAAKAIQQQhqNgIQIAUhAwwBCyAAKAIEIAAoAhBqIA4gBK2GIA2ENwAAIAAgACgCEEEIajYCECADQUBqIQMgDkHAACAEa62IIQ4LIAatQgp9IQ0gA0E4TQRAIANBB2ohBCANIAOthiAOhCENDAELIANBwABGBEAgACgCBCAAKAIQaiAONwAAIAAgACgCEEEIajYCEEEHIQQMAQsgACgCBCAAKAIQaiANIAOthiAOhDcAACAAIAAoAhBBCGo2AhAgA0E5ayEEIA1BwAAgA2utiCENC0EAIQYCfyAIRQRAQYoBIQVBAwwBC0EGQQcgByAIRiIDGyEFQQNBBCADGwshCSAHIQoLIAIgDEcNAAsLIAAgBDYCoC4gACANNwOYLgv5BQIIfwJ+AkAgACgC8C1FBEAgACkDmC4hCyAAKAKgLiEDDAELA0AgCSIDQQNqIQkgAyAAKALsLWoiAy0AAiEFIAApA5guIQwgACgCoC4hBAJAIAMvAAAiB0UEQCABIAVBAnRqIgMzAQAhCyAEIAMvAQIiBWoiA0E/TQRAIAsgBK2GIAyEIQsMAgsgBEHAAEYEQCAAKAIEIAAoAhBqIAw3AAAgACAAKAIQQQhqNgIQIAUhAwwCCyAAKAIEIAAoAhBqIAsgBK2GIAyENwAAIAAgACgCEEEIajYCECADQUBqIQMgC0HAACAEa62IIQsMAQsgBUGAzwBqLQAAIghBAnQiBiABaiIDQYQIajMBACELIANBhghqLwEAIQMgCEEIa0ETTQRAIAUgBkGA0QBqKAIAa60gA62GIAuEIQsgBkHA0wBqKAIAIANqIQMLIAMgAiAHQQFrIgcgB0EHdkGAAmogB0GAAkkbQYDLAGotAAAiBUECdCIIaiIKLwECaiEGIAozAQAgA62GIAuEIQsgBCAFQQRJBH8gBgUgByAIQYDSAGooAgBrrSAGrYYgC4QhCyAIQcDUAGooAgAgBmoLIgVqIgNBP00EQCALIASthiAMhCELDAELIARBwABGBEAgACgCBCAAKAIQaiAMNwAAIAAgACgCEEEIajYCECAFIQMMAQsgACgCBCAAKAIQaiALIASthiAMhDcAACAAIAAoAhBBCGo2AhAgA0FAaiEDIAtBwAAgBGutiCELCyAAIAs3A5guIAAgAzYCoC4gCSAAKALwLUkNAAsLIAFBgAhqMwEAIQwCQCADIAFBgghqLwEAIgJqIgFBP00EQCAMIAOthiALhCEMDAELIANBwABGBEAgACgCBCAAKAIQaiALNwAAIAAgACgCEEEIajYCECACIQEMAQsgACgCBCAAKAIQaiAMIAOthiALhDcAACAAIAAoAhBBCGo2AhAgAUFAaiEBIAxBwAAgA2utiCEMCyAAIAw3A5guIAAgATYCoC4L8AQBA38gAEHkAWohAgNAIAIgAUECdCIDakEAOwEAIAIgA0EEcmpBADsBACABQQJqIgFBngJHDQALIABBADsBzBUgAEEAOwHYEyAAQZQWakEAOwEAIABBkBZqQQA7AQAgAEGMFmpBADsBACAAQYgWakEAOwEAIABBhBZqQQA7AQAgAEGAFmpBADsBACAAQfwVakEAOwEAIABB+BVqQQA7AQAgAEH0FWpBADsBACAAQfAVakEAOwEAIABB7BVqQQA7AQAgAEHoFWpBADsBACAAQeQVakEAOwEAIABB4BVqQQA7AQAgAEHcFWpBADsBACAAQdgVakEAOwEAIABB1BVqQQA7AQAgAEHQFWpBADsBACAAQcwUakEAOwEAIABByBRqQQA7AQAgAEHEFGpBADsBACAAQcAUakEAOwEAIABBvBRqQQA7AQAgAEG4FGpBADsBACAAQbQUakEAOwEAIABBsBRqQQA7AQAgAEGsFGpBADsBACAAQagUakEAOwEAIABBpBRqQQA7AQAgAEGgFGpBADsBACAAQZwUakEAOwEAIABBmBRqQQA7AQAgAEGUFGpBADsBACAAQZAUakEAOwEAIABBjBRqQQA7AQAgAEGIFGpBADsBACAAQYQUakEAOwEAIABBgBRqQQA7AQAgAEH8E2pBADsBACAAQfgTakEAOwEAIABB9BNqQQA7AQAgAEHwE2pBADsBACAAQewTakEAOwEAIABB6BNqQQA7AQAgAEHkE2pBADsBACAAQeATakEAOwEAIABB3BNqQQA7AQAgAEIANwL8LSAAQeQJakEBOwEAIABBADYC+C0gAEEANgLwLQuKAwIGfwR+QcgAEAkiBEUEQEEADwsgBEIANwMAIARCADcDMCAEQQA2AiggBEIANwMgIARCADcDGCAEQgA3AxAgBEIANwMIIARCADcDOCABUARAIARBCBAJIgA2AgQgAEUEQCAEEAYgAwRAIANBADYCBCADQQ42AgALQQAPCyAAQgA3AwAgBA8LAkAgAaciBUEEdBAJIgZFDQAgBCAGNgIAIAVBA3RBCGoQCSIFRQ0AIAQgATcDECAEIAU2AgQDQCAAIAynIghBBHRqIgcpAwgiDVBFBEAgBygCACIHRQRAIAMEQCADQQA2AgQgA0ESNgIACyAGEAYgBRAGIAQQBkEADwsgBiAKp0EEdGoiCSANNwMIIAkgBzYCACAFIAhBA3RqIAs3AwAgCyANfCELIApCAXwhCgsgDEIBfCIMIAFSDQALIAQgCjcDCCAEQgAgCiACGzcDGCAFIAqnQQN0aiALNwMAIAQgCzcDMCAEDwsgAwRAIANBADYCBCADQQ42AgALIAYQBiAEEAZBAAvlAQIDfwF+QX8hBQJAIAAgASACQQAQJiIERQ0AIAAgASACEIsBIgZFDQACfgJAIAJBCHENACAAKAJAIAGnQQR0aigCCCICRQ0AIAIgAxAhQQBOBEAgAykDAAwCCyAAQQhqIgAEQCAAQQA2AgQgAEEPNgIAC0F/DwsgAxAqIAMgBCgCGDYCLCADIAQpAyg3AxggAyAEKAIUNgIoIAMgBCkDIDcDICADIAQoAhA7ATAgAyAELwFSOwEyQvwBQtwBIAQtAAYbCyEHIAMgBjYCCCADIAE3AxAgAyAHQgOENwMAQQAhBQsgBQspAQF/IAAgASACIABBCGoiABAmIgNFBEBBAA8LIAMoAjBBACACIAAQJQuAAwEGfwJ/An9BMCABQYB/Sw0BGgJ/IAFBgH9PBEBBhIQBQTA2AgBBAAwBC0EAQRAgAUELakF4cSABQQtJGyIFQcwAahAJIgFFDQAaIAFBCGshAgJAIAFBP3FFBEAgAiEBDAELIAFBBGsiBigCACIHQXhxIAFBP2pBQHFBCGsiASABQUBrIAEgAmtBD0sbIgEgAmsiA2shBCAHQQNxRQRAIAIoAgAhAiABIAQ2AgQgASACIANqNgIADAELIAEgBCABKAIEQQFxckECcjYCBCABIARqIgQgBCgCBEEBcjYCBCAGIAMgBigCAEEBcXJBAnI2AgAgAiADaiIEIAQoAgRBAXI2AgQgAiADEDsLAkAgASgCBCICQQNxRQ0AIAJBeHEiAyAFQRBqTQ0AIAEgBSACQQFxckECcjYCBCABIAVqIgIgAyAFayIFQQNyNgIEIAEgA2oiAyADKAIEQQFyNgIEIAIgBRA7CyABQQhqCyIBRQsEQEEwDwsgACABNgIAQQALCwoAIABBiIQBEAQL6AIBBX8gACgCUCEBIAAvATAhBEEEIQUDQCABQQAgAS8BACICIARrIgMgAiADSRs7AQAgAUEAIAEvAQIiAiAEayIDIAIgA0kbOwECIAFBACABLwEEIgIgBGsiAyACIANJGzsBBCABQQAgAS8BBiICIARrIgMgAiADSRs7AQYgBUGAgARGRQRAIAFBCGohASAFQQRqIQUMAQsLAkAgBEUNACAEQQNxIQUgACgCTCEBIARBAWtBA08EQCAEIAVrIQADQCABQQAgAS8BACICIARrIgMgAiADSRs7AQAgAUEAIAEvAQIiAiAEayIDIAIgA0kbOwECIAFBACABLwEEIgIgBGsiAyACIANJGzsBBCABQQAgAS8BBiICIARrIgMgAiADSRs7AQYgAUEIaiEBIABBBGsiAA0ACwsgBUUNAANAIAFBACABLwEAIgAgBGsiAiAAIAJJGzsBACABQQJqIQEgBUEBayIFDQALCwuDAQEEfyACQQFOBEAgAiAAKAJIIAFqIgJqIQMgACgCUCEEA0AgBCACKAAAQbHz3fF5bEEPdkH+/wdxaiIFLwEAIgYgAUH//wNxRwRAIAAoAkwgASAAKAI4cUH//wNxQQF0aiAGOwEAIAUgATsBAAsgAUEBaiEBIAJBAWoiAiADSQ0ACwsLUAECfyABIAAoAlAgACgCSCABaigAAEGx893xeWxBD3ZB/v8HcWoiAy8BACICRwRAIAAoAkwgACgCOCABcUEBdGogAjsBACADIAE7AQALIAILugEBAX8jAEEQayICJAAgAkEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgARBYIAJBEGokAAu9AQEBfyMAQRBrIgEkACABQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgAEEANgJAIAFBEGokAEEAC70BAQF/IwBBEGsiASQAIAFBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAKAJAIQAgAUEQaiQAIAALvgEBAX8jAEEQayIEJAAgBEEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgASACIAMQVyAEQRBqJAALygEAIwBBEGsiAyQAIANBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAAoAkAgASACQdSAASgCABEAADYCQCADQRBqJAALwAEBAX8jAEEQayIDJAAgA0EAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgASACEF0hACADQRBqJAAgAAu+AQEBfyMAQRBrIgIkACACQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABEFwhACACQRBqJAAgAAu2AQEBfyMAQRBrIgAkACAAQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgAEEQaiQAQQgLwgEBAX8jAEEQayIEJAAgBEEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAgASACIAMQWSEAIARBEGokACAAC8IBAQF/IwBBEGsiBCQAIARBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAEgAiADEFYhACAEQRBqJAAgAAsHACAALwEwC8ABAQF/IwBBEGsiAyQAIANBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAEgAhBVIQAgA0EQaiQAIAALBwAgACgCQAsaACAAIAAoAkAgASACQdSAASgCABEAADYCQAsLACAAQQA2AkBBAAsHACAAKAIgCwQAQQgLzgUCA34BfyMAQYBAaiIIJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCAEDhECAwwFAAEECAkJCQkJCQcJBgkLIANCCFoEfiACIAEoAmQ2AgAgAiABKAJoNgIEQggFQn8LIQYMCwsgARAGDAoLIAEoAhAiAgRAIAIgASkDGCABQeQAaiICEEEiA1ANCCABKQMIIgVCf4UgA1QEQCACBEAgAkEANgIEIAJBFTYCAAsMCQsgAUEANgIQIAEgAyAFfDcDCCABIAEpAwAgA3w3AwALIAEtAHgEQCABKQMAIQUMCQtCACEDIAEpAwAiBVAEQCABQgA3AyAMCgsDQCAAIAggBSADfSIFQoDAACAFQoDAAFQbEBEiB0J/VwRAIAFB5ABqIgEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwJCyAHUEUEQCABKQMAIgUgAyAHfCIDWA0KDAELCyABQeQAagRAIAFBADYCaCABQRE2AmQLDAcLIAEpAwggASkDICIFfSIHIAMgAyAHVhsiA1ANCAJAIAEtAHhFDQAgACAFQQAQFEF/Sg0AIAFB5ABqIgEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwHCyAAIAIgAxARIgZCf1cEQCABQeQAagRAIAFBADYCaCABQRE2AmQLDAcLIAEgASkDICAGfCIDNwMgIAZCAFINCEIAIQYgAyABKQMIWg0IIAFB5ABqBEAgAUEANgJoIAFBETYCZAsMBgsgASkDICABKQMAIgV9IAEpAwggBX0gAiADIAFB5ABqEEQiA0IAUw0FIAEgASkDACADfDcDIAwHCyACIAFBKGoQYEEfdawhBgwGCyABMABgIQYMBQsgASkDcCEGDAQLIAEpAyAgASkDAH0hBgwDCyABQeQAagRAIAFBADYCaCABQRw2AmQLC0J/IQYMAQsgASAFNwMgCyAIQYBAayQAIAYLBwAgACgCAAsPACAAIAAoAjBBAWo2AjALGABB+IMBQgA3AgBBgIQBQQA2AgBB+IMBCwcAIABBDGoLBwAgACgCLAsHACAAKAIoCwcAIAAoAhgLFQAgACABrSACrUIghoQgAyAEEIoBCxMBAX4gABAzIgFCIIinEAAgAacLbwEBfiABrSACrUIghoQhBSMAQRBrIgEkAAJ/IABFBEAgBVBFBEAgBARAIARBADYCBCAEQRI2AgALQQAMAgtBAEIAIAMgBBA6DAELIAEgBTcDCCABIAA2AgAgAUIBIAMgBBA6CyEAIAFBEGokACAACxQAIAAgASACrSADrUIghoQgBBBSC9oCAgJ/AX4CfyABrSACrUIghoQiByAAKQMwVEEAIARBCkkbRQRAIABBCGoEQCAAQQA2AgwgAEESNgIIC0F/DAELIAAtABhBAnEEQCAAQQhqBEAgAEEANgIMIABBGTYCCAtBfwwBCyADBH8gA0H//wNxQQhGIANBfUtyBUEBC0UEQCAAQQhqBEAgAEEANgIMIABBEDYCCAtBfwwBCyAAKAJAIgEgB6ciBUEEdGooAgAiAgR/IAIoAhAgA0YFIANBf0YLIQYgASAFQQR0aiIBIQUgASgCBCEBAkAgBgRAIAFFDQEgAUEAOwFQIAEgASgCAEF+cSIANgIAIAANASABECAgBUEANgIEQQAMAgsCQCABDQAgBSACECsiATYCBCABDQAgAEEIagRAIABBADYCDCAAQQ42AggLQX8MAgsgASAEOwFQIAEgAzYCECABIAEoAgBBAXI2AgALQQALCxwBAX4gACABIAIgAEEIahBMIgNCIIinEAAgA6cLHwEBfiAAIAEgAq0gA61CIIaEEBEiBEIgiKcQACAEpwteAQF+An5CfyAARQ0AGiAAKQMwIgIgAUEIcUUNABpCACACUA0AGiAAKAJAIQADQCACIAKnQQR0IABqQRBrKAIADQEaIAJCAX0iAkIAUg0AC0IACyICQiCIpxAAIAKnCxMAIAAgAa0gAq1CIIaEIAMQiwELnwEBAn4CfiACrSADrUIghoQhBUJ/IQQCQCAARQ0AIAAoAgQNACAAQQRqIQIgBUJ/VwRAIAIEQCACQQA2AgQgAkESNgIAC0J/DAILQgAhBCAALQAQDQAgBVANACAAKAIUIAEgBRARIgRCf1UNACAAKAIUIQAgAgRAIAIgACgCDDYCACACIAAoAhA2AgQLQn8hBAsgBAsiBEIgiKcQACAEpwueAQEBfwJ/IAAgACABrSACrUIghoQgAyAAKAIcEH8iAQRAIAEQMkF/TARAIABBCGoEQCAAIAEoAgw2AgggACABKAIQNgIMCyABEAtBAAwCC0EYEAkiBEUEQCAAQQhqBEAgAEEANgIMIABBDjYCCAsgARALQQAMAgsgBCAANgIAIARBADYCDCAEQgA3AgQgBCABNgIUIARBADoAEAsgBAsLsQICAX8BfgJ/QX8hBAJAIAAgAa0gAq1CIIaEIgZBAEEAECZFDQAgAC0AGEECcQRAIABBCGoEQCAAQQA2AgwgAEEZNgIIC0F/DAILIAAoAkAiASAGpyICQQR0aiIEKAIIIgUEQEEAIQQgBSADEHFBf0oNASAAQQhqBEAgAEEANgIMIABBDzYCCAtBfwwCCwJAIAQoAgAiBQRAIAUoAhQgA0YNAQsCQCABIAJBBHRqIgEoAgQiBA0AIAEgBRArIgQ2AgQgBA0AIABBCGoEQCAAQQA2AgwgAEEONgIIC0F/DAMLIAQgAzYCFCAEIAQoAgBBIHI2AgBBAAwCC0EAIQQgASACQQR0aiIBKAIEIgBFDQAgACAAKAIAQV9xIgI2AgAgAg0AIAAQICABQQA2AgQLIAQLCxQAIAAgAa0gAq1CIIaEIAQgBRBzCxIAIAAgAa0gAq1CIIaEIAMQFAtBAQF+An4gAUEAIAIbRQRAIABBCGoEQCAAQQA2AgwgAEESNgIIC0J/DAELIAAgASACIAMQdAsiBEIgiKcQACAEpwvGAwIFfwF+An4CQAJAIAAiBC0AGEECcQRAIARBCGoEQCAEQQA2AgwgBEEZNgIICwwBCyABRQRAIARBCGoEQCAEQQA2AgwgBEESNgIICwwBCyABECIiByABakEBay0AAEEvRwRAIAdBAmoQCSIARQRAIARBCGoEQCAEQQA2AgwgBEEONgIICwwCCwJAAkAgACIGIAEiBXNBA3ENACAFQQNxBEADQCAGIAUtAAAiAzoAACADRQ0DIAZBAWohBiAFQQFqIgVBA3ENAAsLIAUoAgAiA0F/cyADQYGChAhrcUGAgYKEeHENAANAIAYgAzYCACAFKAIEIQMgBkEEaiEGIAVBBGohBSADQYGChAhrIANBf3NxQYCBgoR4cUUNAAsLIAYgBS0AACIDOgAAIANFDQADQCAGIAUtAAEiAzoAASAGQQFqIQYgBUEBaiEFIAMNAAsLIAcgACIDakEvOwAACyAEQQBCAEEAEFIiAEUEQCADEAYMAQsgBCADIAEgAxsgACACEHQhCCADEAYgCEJ/VwRAIAAQCyAIDAMLIAQgCEEDQYCA/I8EEHNBf0oNASAEIAgQchoLQn8hCAsgCAsiCEIgiKcQACAIpwsQACAAIAGtIAKtQiCGhBByCxYAIAAgAa0gAq1CIIaEIAMgBCAFEGYL3iMDD38IfgF8IwBB8ABrIgkkAAJAIAFBAE5BACAAG0UEQCACBEAgAkEANgIEIAJBEjYCAAsMAQsgACkDGCISAn5BsIMBKQMAIhNCf1EEQCAJQoOAgIBwNwMwIAlChoCAgPAANwMoIAlCgYCAgCA3AyBBsIMBQQAgCUEgahAkNwMAIAlCj4CAgHA3AxAgCUKJgICAoAE3AwAgCUKMgICA0AE3AwhBuIMBQQggCRAkNwMAQbCDASkDACETCyATC4MgE1IEQCACBEAgAkEANgIEIAJBHDYCAAsMAQsgASABQRByQbiDASkDACITIBKDIBNRGyIKQRhxQRhGBEAgAgRAIAJBADYCBCACQRk2AgALDAELIAlBOGoQKgJAIAAgCUE4ahAhBEACQCAAKAIMQQVGBEAgACgCEEEsRg0BCyACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAgsgCkEBcUUEQCACBEAgAkEANgIEIAJBCTYCAAsMAwsgAhBJIgVFDQEgBSAKNgIEIAUgADYCACAKQRBxRQ0CIAUgBSgCFEECcjYCFCAFIAUoAhhBAnI2AhgMAgsgCkECcQRAIAIEQCACQQA2AgQgAkEKNgIACwwCCyAAEDJBf0wEQCACBEAgAiAAKAIMNgIAIAIgACgCEDYCBAsMAQsCfyAKQQhxBEACQCACEEkiAUUNACABIAo2AgQgASAANgIAIApBEHFFDQAgASABKAIUQQJyNgIUIAEgASgCGEECcjYCGAsgAQwBCyMAQUBqIg4kACAOQQhqECoCQCAAIA5BCGoQIUF/TARAIAIEQCACIAAoAgw2AgAgAiAAKAIQNgIECwwBCyAOLQAIQQRxRQRAIAIEQCACQYoBNgIEIAJBBDYCAAsMAQsgDikDICETIAIQSSIFRQRAQQAhBQwBCyAFIAo2AgQgBSAANgIAIApBEHEEQCAFIAUoAhRBAnI2AhQgBSAFKAIYQQJyNgIYCwJAAkACQCATUARAAn8gACEBAkADQCABKQMYQoCAEINCAFINASABKAIAIgENAAtBAQwBCyABQQBCAEESEA6nCw0EIAVBCGoEQCAFQQA2AgwgBUETNgIICwwBCyMAQdAAayIBJAACQCATQhVYBEAgBUEIagRAIAVBADYCDCAFQRM2AggLDAELAkACQCAFKAIAQgAgE0KqgAQgE0KqgARUGyISfUECEBRBf0oNACAFKAIAIgMoAgxBBEYEQCADKAIQQRZGDQELIAVBCGoEQCAFIAMoAgw2AgggBSADKAIQNgIMCwwBCyAFKAIAEDMiE0J/VwRAIAUoAgAhAyAFQQhqIggEQCAIIAMoAgw2AgAgCCADKAIQNgIECwwBCyAFKAIAIBJBACAFQQhqIg8QLSIERQ0BIBJCqoAEWgRAAkAgBCkDCEIUVARAIARBADoAAAwBCyAEQhQ3AxAgBEEBOgAACwsgAQRAIAFBADYCBCABQRM2AgALIARCABATIQwCQCAELQAABH4gBCkDCCAEKQMQfQVCAAunIgdBEmtBA0sEQEJ/IRcDQCAMQQFrIQMgByAMakEVayEGAkADQCADQQFqIgNB0AAgBiADaxB6IgNFDQEgA0EBaiIMQZ8SQQMQPQ0ACwJAIAMgBCgCBGusIhIgBCkDCFYEQCAEQQA6AAAMAQsgBCASNwMQIARBAToAAAsgBC0AAAR+IAQpAxAFQgALIRICQCAELQAABH4gBCkDCCAEKQMQfQVCAAtCFVgEQCABBEAgAUEANgIEIAFBEzYCAAsMAQsgBEIEEBMoAABB0JaVMEcEQCABBEAgAUEANgIEIAFBEzYCAAsMAQsCQAJAAkAgEkIUVA0AIAQoAgQgEqdqQRRrKAAAQdCWmThHDQACQCASQhR9IhQgBCIDKQMIVgRAIANBADoAAAwBCyADIBQ3AxAgA0EBOgAACyAFKAIUIRAgBSgCACEGIAMtAAAEfiAEKQMQBUIACyEWIARCBBATGiAEEAwhCyAEEAwhDSAEEB0iFEJ/VwRAIAEEQCABQRY2AgQgAUEENgIACwwECyAUQjh8IhUgEyAWfCIWVgRAIAEEQCABQQA2AgQgAUEVNgIACwwECwJAAkAgEyAUVg0AIBUgEyAEKQMIfFYNAAJAIBQgE30iFSAEKQMIVgRAIANBADoAAAwBCyADIBU3AxAgA0EBOgAAC0EAIQcMAQsgBiAUQQAQFEF/TARAIAEEQCABIAYoAgw2AgAgASAGKAIQNgIECwwFC0EBIQcgBkI4IAFBEGogARAtIgNFDQQLIANCBBATKAAAQdCWmTBHBEAgAQRAIAFBADYCBCABQRU2AgALIAdFDQQgAxAIDAQLIAMQHSEVAkAgEEEEcSIGRQ0AIBQgFXxCDHwgFlENACABBEAgAUEANgIEIAFBFTYCAAsgB0UNBCADEAgMBAsgA0IEEBMaIAMQFSIQIAsgC0H//wNGGyELIAMQFSIRIA0gDUH//wNGGyENAkAgBkUNACANIBFGQQAgCyAQRhsNACABBEAgAUEANgIEIAFBFTYCAAsgB0UNBCADEAgMBAsgCyANcgRAIAEEQCABQQA2AgQgAUEBNgIACyAHRQ0EIAMQCAwECyADEB0iGCADEB1SBEAgAQRAIAFBADYCBCABQQE2AgALIAdFDQQgAxAIDAQLIAMQHSEVIAMQHSEWIAMtAABFBEAgAQRAIAFBADYCBCABQRQ2AgALIAdFDQQgAxAIDAQLIAcEQCADEAgLAkAgFkIAWQRAIBUgFnwiGSAWWg0BCyABBEAgAUEWNgIEIAFBBDYCAAsMBAsgEyAUfCIUIBlUBEAgAQRAIAFBADYCBCABQRU2AgALDAQLAkAgBkUNACAUIBlRDQAgAQRAIAFBADYCBCABQRU2AgALDAQLIBggFUIugFgNASABBEAgAUEANgIEIAFBFTYCAAsMAwsCQCASIAQpAwhWBEAgBEEAOgAADAELIAQgEjcDECAEQQE6AAALIAUoAhQhAyAELQAABH4gBCkDCCAEKQMQfQVCAAtCFVgEQCABBEAgAUEANgIEIAFBFTYCAAsMAwsgBC0AAAR+IAQpAxAFQgALIRQgBEIEEBMaIAQQFQRAIAEEQCABQQA2AgQgAUEBNgIACwwDCyAEEAwgBBAMIgZHBEAgAQRAIAFBADYCBCABQRM2AgALDAMLIAQQFSEHIAQQFa0iFiAHrSIVfCIYIBMgFHwiFFYEQCABBEAgAUEANgIEIAFBFTYCAAsMAwsCQCADQQRxRQ0AIBQgGFENACABBEAgAUEANgIEIAFBFTYCAAsMAwsgBq0gARBqIgNFDQIgAyAWNwMgIAMgFTcDGCADQQA6ACwMAQsgGCABEGoiA0UNASADIBY3AyAgAyAVNwMYIANBAToALAsCQCASQhR8IhQgBCkDCFYEQCAEQQA6AAAMAQsgBCAUNwMQIARBAToAAAsgBBAMIQYCQCADKQMYIAMpAyB8IBIgE3xWDQACQCAGRQRAIAUtAARBBHFFDQELAkAgEkIWfCISIAQpAwhWBEAgBEEAOgAADAELIAQgEjcDECAEQQE6AAALIAQtAAAEfiAEKQMIIAQpAxB9BUIACyIUIAatIhJUDQEgBS0ABEEEcUEAIBIgFFIbDQEgBkUNACADIAQgEhATIAZBACABEDUiBjYCKCAGDQAgAxAWDAILAkAgEyADKQMgIhJYBEACQCASIBN9IhIgBCkDCFYEQCAEQQA6AAAMAQsgBCASNwMQIARBAToAAAsgBCADKQMYEBMiBkUNAiAGIAMpAxgQFyIHDQEgAQRAIAFBADYCBCABQQ42AgALIAMQFgwDCyAFKAIAIBJBABAUIQcgBSgCACEGIAdBf0wEQCABBEAgASAGKAIMNgIAIAEgBigCEDYCBAsgAxAWDAMLQQAhByAGEDMgAykDIFENACABBEAgAUEANgIEIAFBEzYCAAsgAxAWDAILQgAhFAJAAkAgAykDGCIWUEUEQANAIBQgAykDCFIiC0UEQCADLQAsDQMgFkIuVA0DAn8CQCADKQMQIhVCgIAEfCISIBVaQQAgEkKAgICAAVQbRQ0AIAMoAgAgEqdBBHQQNCIGRQ0AIAMgBjYCAAJAIAMpAwgiFSASWg0AIAYgFadBBHRqIgZCADcCACAGQgA3AAUgFUIBfCIVIBJRDQADQCADKAIAIBWnQQR0aiIGQgA3AgAgBkIANwAFIBVCAXwiFSASUg0ACwsgAyASNwMIIAMgEjcDEEEBDAELIAEEQCABQQA2AgQgAUEONgIAC0EAC0UNBAtB2AAQCSIGBH8gBkIANwMgIAZBADYCGCAGQv////8PNwMQIAZBADsBDCAGQb+GKDYCCCAGQQE6AAYgBkEAOwEEIAZBADYCACAGQgA3A0ggBkGAgNiNeDYCRCAGQgA3AyggBkIANwMwIAZCADcDOCAGQUBrQQA7AQAgBkIANwNQIAYFQQALIQYgAygCACAUp0EEdGogBjYCAAJAIAYEQCAGIAUoAgAgB0EAIAEQaCISQn9VDQELIAsNBCABKAIAQRNHDQQgAQRAIAFBADYCBCABQRU2AgALDAQLIBRCAXwhFCAWIBJ9IhZCAFINAAsLIBQgAykDCFINAAJAIAUtAARBBHFFDQAgBwRAIActAAAEfyAHKQMQIAcpAwhRBUEAC0UNAgwBCyAFKAIAEDMiEkJ/VwRAIAUoAgAhBiABBEAgASAGKAIMNgIAIAEgBigCEDYCBAsgAxAWDAULIBIgAykDGCADKQMgfFINAQsgBxAIAn4gCARAAn8gF0IAVwRAIAUgCCABEEghFwsgBSADIAEQSCISIBdVCwRAIAgQFiASDAILIAMQFgwFC0IAIAUtAARBBHFFDQAaIAUgAyABEEgLIRcgAyEIDAMLIAEEQCABQQA2AgQgAUEVNgIACyAHEAggAxAWDAILIAMQFiAHEAgMAQsgAQRAIAFBADYCBCABQRU2AgALIAMQFgsCQCAMIAQoAgRrrCISIAQpAwhWBEAgBEEAOgAADAELIAQgEjcDECAEQQE6AAALIAQtAAAEfiAEKQMIIAQpAxB9BUIAC6ciB0ESa0EDSw0BCwsgBBAIIBdCf1UNAwwBCyAEEAgLIA8iAwRAIAMgASgCADYCACADIAEoAgQ2AgQLIAgQFgtBACEICyABQdAAaiQAIAgNAQsgAgRAIAIgBSgCCDYCACACIAUoAgw2AgQLDAELIAUgCCgCADYCQCAFIAgpAwg3AzAgBSAIKQMQNwM4IAUgCCgCKDYCICAIEAYgBSgCUCEIIAVBCGoiBCEBQQAhBwJAIAUpAzAiE1ANAEGAgICAeCEGAn8gE7pEAAAAAAAA6D+jRAAA4P///+9BpCIaRAAAAAAAAPBBYyAaRAAAAAAAAAAAZnEEQCAaqwwBC0EACyIDQYCAgIB4TQRAIANBAWsiA0EBdiADciIDQQJ2IANyIgNBBHYgA3IiA0EIdiADciIDQRB2IANyQQFqIQYLIAYgCCgCACIMTQ0AIAYQPCILRQRAIAEEQCABQQA2AgQgAUEONgIACwwBCwJAIAgpAwhCACAMG1AEQCAIKAIQIQ8MAQsgCCgCECEPA0AgDyAHQQJ0aigCACIBBEADQCABKAIYIQMgASALIAEoAhwgBnBBAnRqIg0oAgA2AhggDSABNgIAIAMiAQ0ACwsgB0EBaiIHIAxHDQALCyAPEAYgCCAGNgIAIAggCzYCEAsCQCAFKQMwUA0AQgAhEwJAIApBBHFFBEADQCAFKAJAIBOnQQR0aigCACgCMEEAQQAgAhAlIgFFDQQgBSgCUCABIBNBCCAEEE1FBEAgBCgCAEEKRw0DCyATQgF8IhMgBSkDMFQNAAwDCwALA0AgBSgCQCATp0EEdGooAgAoAjBBAEEAIAIQJSIBRQ0DIAUoAlAgASATQQggBBBNRQ0BIBNCAXwiEyAFKQMwVA0ACwwBCyACBEAgAiAEKAIANgIAIAIgBCgCBDYCBAsMAQsgBSAFKAIUNgIYDAELIAAgACgCMEEBajYCMCAFEEtBACEFCyAOQUBrJAAgBQsiBQ0BIAAQGhoLQQAhBQsgCUHwAGokACAFCxAAIwAgAGtBcHEiACQAIAALBgAgACQACwQAIwAL4CoDEX8IfgN8IwBBwMAAayIHJABBfyECAkAgAEUNAAJ/IAAtAChFBEBBACAAKAIYIAAoAhRGDQEaC0EBCyEBAkACQCAAKQMwIhRQRQRAIAAoAkAhCgNAIAogEqdBBHRqIgMtAAwhCwJAAkAgAygCCA0AIAsNACADKAIEIgNFDQEgAygCAEUNAQtBASEBCyAXIAtBAXOtQv8Bg3whFyASQgF8IhIgFFINAAsgF0IAUg0BCyAAKAIEQQhxIAFyRQ0BAn8gACgCACIDKAIkIgFBA0cEQCADKAIgBH9BfyADEBpBAEgNAhogAygCJAUgAQsEQCADEEMLQX8gA0EAQgBBDxAOQgBTDQEaIANBAzYCJAtBAAtBf0oNASAAKAIAKAIMQRZGBEAgACgCACgCEEEsRg0CCyAAKAIAIQEgAEEIagRAIAAgASgCDDYCCCAAIAEoAhA2AgwLDAILIAFFDQAgFCAXVARAIABBCGoEQCAAQQA2AgwgAEEUNgIICwwCCyAXp0EDdBAJIgtFDQFCfyEWQgAhEgNAAkAgCiASp0EEdGoiBigCACIDRQ0AAkAgBigCCA0AIAYtAAwNACAGKAIEIgFFDQEgASgCAEUNAQsgFiADKQNIIhMgEyAWVhshFgsgBi0ADEUEQCAXIBlYBEAgCxAGIABBCGoEQCAAQQA2AgwgAEEUNgIICwwECyALIBmnQQN0aiASNwMAIBlCAXwhGQsgEkIBfCISIBRSDQALIBcgGVYEQCALEAYgAEEIagRAIABBADYCDCAAQRQ2AggLDAILAkACQCAAKAIAKQMYQoCACINQDQACQAJAIBZCf1INACAAKQMwIhNQDQIgE0IBgyEVIAAoAkAhAwJAIBNCAVEEQEJ/IRRCACESQgAhFgwBCyATQn6DIRlCfyEUQgAhEkIAIRYDQCADIBKnQQR0aigCACIBBEAgFiABKQNIIhMgEyAWVCIBGyEWIBQgEiABGyEUCyADIBJCAYQiGKdBBHRqKAIAIgEEQCAWIAEpA0giEyATIBZUIgEbIRYgFCAYIAEbIRQLIBJCAnwhEiAZQgJ9IhlQRQ0ACwsCQCAVUA0AIAMgEqdBBHRqKAIAIgFFDQAgFiABKQNIIhMgEyAWVCIBGyEWIBQgEiABGyEUCyAUQn9RDQBCACETIwBBEGsiBiQAAkAgACAUIABBCGoiCBBBIhVQDQAgFSAAKAJAIBSnQQR0aigCACIKKQMgIhh8IhQgGFpBACAUQn9VG0UEQCAIBEAgCEEWNgIEIAhBBDYCAAsMAQsgCi0ADEEIcUUEQCAUIRMMAQsgACgCACAUQQAQFCEBIAAoAgAhAyABQX9MBEAgCARAIAggAygCDDYCACAIIAMoAhA2AgQLDAELIAMgBkEMakIEEBFCBFIEQCAAKAIAIQEgCARAIAggASgCDDYCACAIIAEoAhA2AgQLDAELIBRCBHwgFCAGKAAMQdCWncAARhtCFEIMAn9BASEBAkAgCikDKEL+////D1YNACAKKQMgQv7///8PVg0AQQAhAQsgAQsbfCIUQn9XBEAgCARAIAhBFjYCBCAIQQQ2AgALDAELIBQhEwsgBkEQaiQAIBMiFkIAUg0BIAsQBgwFCyAWUA0BCwJ/IAAoAgAiASgCJEEBRgRAIAFBDGoEQCABQQA2AhAgAUESNgIMC0F/DAELQX8gAUEAIBZBERAOQgBTDQAaIAFBATYCJEEAC0F/Sg0BC0IAIRYCfyAAKAIAIgEoAiRBAUYEQCABQQxqBEAgAUEANgIQIAFBEjYCDAtBfwwBC0F/IAFBAEIAQQgQDkIAUw0AGiABQQE2AiRBAAtBf0oNACAAKAIAIQEgAEEIagRAIAAgASgCDDYCCCAAIAEoAhA2AgwLIAsQBgwCCyAAKAJUIgIEQCACQgA3AxggAigCAEQAAAAAAAAAACACKAIMIAIoAgQRDgALIABBCGohBCAXuiEcQgAhFAJAAkACQANAIBcgFCITUgRAIBO6IByjIRsgE0IBfCIUuiAcoyEaAkAgACgCVCICRQ0AIAIgGjkDKCACIBs5AyAgAisDECAaIBuhRAAAAAAAAAAAoiAboCIaIAIrAxihY0UNACACKAIAIBogAigCDCACKAIEEQ4AIAIgGjkDGAsCfwJAIAAoAkAgCyATp0EDdGopAwAiE6dBBHRqIg0oAgAiAQRAIAEpA0ggFlQNAQsgDSgCBCEFAkACfwJAIA0oAggiAkUEQCAFRQ0BQQEgBSgCACICQQFxDQIaIAJBwABxQQZ2DAILQQEgBQ0BGgsgDSABECsiBTYCBCAFRQ0BIAJBAEcLIQZBACEJIwBBEGsiDCQAAkAgEyAAKQMwWgRAIABBCGoEQCAAQQA2AgwgAEESNgIIC0F/IQkMAQsgACgCQCIKIBOnIgNBBHRqIg8oAgAiAkUNACACLQAEDQACQCACKQNIQhp8IhhCf1cEQCAAQQhqBEAgAEEWNgIMIABBBDYCCAsMAQtBfyEJIAAoAgAgGEEAEBRBf0wEQCAAKAIAIQIgAEEIagRAIAAgAigCDDYCCCAAIAIoAhA2AgwLDAILIAAoAgBCBCAMQQxqIABBCGoiDhAtIhBFDQEgEBAMIQEgEBAMIQggEC0AAAR/IBApAxAgECkDCFEFQQALIQIgEBAIIAJFBEAgDgRAIA5BADYCBCAOQRQ2AgALDAILAkAgCEUNACAAKAIAIAGtQQEQFEF/TARAQYSEASgCACECIA4EQCAOIAI2AgQgDkEENgIACwwDC0EAIAAoAgAgCEEAIA4QRSIBRQ0BIAEgCEGAAiAMQQhqIA4QbiECIAEQBiACRQ0BIAwoAggiAkUNACAMIAIQbSICNgIIIA8oAgAoAjQgAhBvIQIgDygCACACNgI0CyAPKAIAIgJBAToABEEAIQkgCiADQQR0aigCBCIBRQ0BIAEtAAQNASACKAI0IQIgAUEBOgAEIAEgAjYCNAwBC0F/IQkLIAxBEGokACAJQQBIDQUgACgCABAfIhhCAFMNBSAFIBg3A0ggBgRAQQAhDCANKAIIIg0hASANRQRAIAAgACATQQhBABB/IgwhASAMRQ0HCwJAAkAgASAHQQhqECFBf0wEQCAEBEAgBCABKAIMNgIAIAQgASgCEDYCBAsMAQsgBykDCCISQsAAg1AEQCAHQQA7ATggByASQsAAhCISNwMICwJAAkAgBSgCECICQX5PBEAgBy8BOCIDRQ0BIAUgAzYCECADIQIMAgsgAg0AIBJCBINQDQAgByAHKQMgNwMoIAcgEkIIhCISNwMIQQAhAgwBCyAHIBJC9////w+DIhI3AwgLIBJCgAGDUARAIAdBADsBOiAHIBJCgAGEIhI3AwgLAn8gEkIEg1AEQEJ/IRVBgAoMAQsgBSAHKQMgIhU3AyggEkIIg1AEQAJAAkACQAJAQQggAiACQX1LG0H//wNxDg0CAwMDAwMDAwEDAwMAAwtBgApBgAIgFUKUwuTzD1YbDAQLQYAKQYACIBVCg4Ow/w9WGwwDC0GACkGAAiAVQv////8PVhsMAgtBgApBgAIgFUIAUhsMAQsgBSAHKQMoNwMgQYACCyEPIAAoAgAQHyITQn9XBEAgACgCACECIAQEQCAEIAIoAgw2AgAgBCACKAIQNgIECwwBCyAFIAUvAQxB9/8DcTsBDCAAIAUgDxA3IgpBAEgNACAHLwE4IghBCCAFKAIQIgMgA0F9SxtB//8DcSICRyEGAkACQAJAAkACQAJAAkAgAiAIRwRAIANBAEchAwwBC0EAIQMgBS0AAEGAAXFFDQELIAUvAVIhCSAHLwE6IQIMAQsgBS8BUiIJIAcvAToiAkYNAQsgASABKAIwQQFqNgIwIAJB//8DcQ0BIAEhAgwCCyABIAEoAjBBAWo2AjBBACEJDAILQSZBACAHLwE6QQFGGyICRQRAIAQEQCAEQQA2AgQgBEEYNgIACyABEAsMAwsgACABIAcvATpBACAAKAIcIAIRBgAhAiABEAsgAkUNAgsgCUEARyEJIAhBAEcgBnFFBEAgAiEBDAELIAAgAiAHLwE4EIEBIQEgAhALIAFFDQELAkAgCEUgBnJFBEAgASECDAELIAAgAUEAEIABIQIgARALIAJFDQELAkAgA0UEQCACIQMMAQsgACACIAUoAhBBASAFLwFQEIIBIQMgAhALIANFDQELAkAgCUUEQCADIQEMAQsgBSgCVCIBRQRAIAAoAhwhAQsCfyAFLwFSGkEBCwRAIAQEQCAEQQA2AgQgBEEYNgIACyADEAsMAgsgACADIAUvAVJBASABQQARBgAhASADEAsgAUUNAQsgACgCABAfIhhCf1cEQCAAKAIAIQIgBARAIAQgAigCDDYCACAEIAIoAhA2AgQLDAELAkAgARAyQQBOBEACfwJAAkAgASAHQUBrQoDAABARIhJCAVMNAEIAIRkgFUIAVQRAIBW5IRoDQCAAIAdBQGsgEhAbQQBIDQMCQCASQoDAAFINACAAKAJUIgJFDQAgAiAZQoBAfSIZuSAaoxB7CyABIAdBQGtCgMAAEBEiEkIAVQ0ACwwBCwNAIAAgB0FAayASEBtBAEgNAiABIAdBQGtCgMAAEBEiEkIAVQ0ACwtBACASQn9VDQEaIAQEQCAEIAEoAgw2AgAgBCABKAIQNgIECwtBfwshAiABEBoaDAELIAQEQCAEIAEoAgw2AgAgBCABKAIQNgIEC0F/IQILIAEgB0EIahAhQX9MBEAgBARAIAQgASgCDDYCACAEIAEoAhA2AgQLQX8hAgsCf0EAIQkCQCABIgNFDQADQCADLQAaQQFxBEBB/wEhCSADQQBCAEEQEA4iFUIAUw0CIBVCBFkEQCADQQxqBEAgA0EANgIQIANBFDYCDAsMAwsgFachCQwCCyADKAIAIgMNAAsLIAlBGHRBGHUiA0F/TAsEQCAEBEAgBCABKAIMNgIAIAQgASgCEDYCBAsgARALDAELIAEQCyACQQBIDQAgACgCABAfIRUgACgCACECIBVCf1cEQCAEBEAgBCACKAIMNgIAIAQgAigCEDYCBAsMAQsgAiATEHVBf0wEQCAAKAIAIQIgBARAIAQgAigCDDYCACAEIAIoAhA2AgQLDAELIAcpAwgiE0LkAINC5ABSBEAgBARAIARBADYCBCAEQRQ2AgALDAELAkAgBS0AAEEgcQ0AIBNCEINQRQRAIAUgBygCMDYCFAwBCyAFQRRqEAEaCyAFIAcvATg2AhAgBSAHKAI0NgIYIAcpAyAhEyAFIBUgGH03AyAgBSATNwMoIAUgBS8BDEH5/wNxIANB/wFxQQF0cjsBDCAPQQp2IQNBPyEBAkACQAJAAkAgBSgCECICQQxrDgMAAQIBCyAFQS47AQoMAgtBLSEBIAMNACAFKQMoQv7///8PVg0AIAUpAyBC/v///w9WDQBBFCEBIAJBCEYNACAFLwFSQQFGDQAgBSgCMCICBH8gAi8BBAVBAAtB//8DcSICBEAgAiAFKAIwKAIAakEBay0AAEEvRg0BC0EKIQELIAUgATsBCgsgACAFIA8QNyICQQBIDQAgAiAKRwRAIAQEQCAEQQA2AgQgBEEUNgIACwwBCyAAKAIAIBUQdUF/Sg0BIAAoAgAhAiAEBEAgBCACKAIMNgIAIAQgAigCEDYCBAsLIA0NByAMEAsMBwsgDQ0CIAwQCwwCCyAFIAUvAQxB9/8DcTsBDCAAIAVBgAIQN0EASA0FIAAgEyAEEEEiE1ANBSAAKAIAIBNBABAUQX9MBEAgACgCACECIAQEQCAEIAIoAgw2AgAgBCACKAIQNgIECwwGCyAFKQMgIRIjAEGAQGoiAyQAAkAgElBFBEAgAEEIaiECIBK6IRoDQEF/IQEgACgCACADIBJCgMAAIBJCgMAAVBsiEyACEGVBAEgNAiAAIAMgExAbQQBIDQIgACgCVCAaIBIgE30iErqhIBqjEHsgEkIAUg0ACwtBACEBCyADQYBAayQAIAFBf0oNAUEBIREgAUEcdkEIcUEIRgwCCyAEBEAgBEEANgIEIARBDjYCAAsMBAtBAAtFDQELCyARDQBBfyECAkAgACgCABAfQgBTDQAgFyEUQQAhCkIAIRcjAEHwAGsiESQAAkAgACgCABAfIhVCAFkEQCAUUEUEQANAIAAgACgCQCALIBenQQN0aigCAEEEdGoiAygCBCIBBH8gAQUgAygCAAtBgAQQNyIBQQBIBEBCfyEXDAQLIAFBAEcgCnIhCiAXQgF8IhcgFFINAAsLQn8hFyAAKAIAEB8iGEJ/VwRAIAAoAgAhASAAQQhqBEAgACABKAIMNgIIIAAgASgCEDYCDAsMAgsgEULiABAXIgZFBEAgAEEIagRAIABBADYCDCAAQQ42AggLDAILIBggFX0hEyAVQv////8PViAUQv//A1ZyIApyQQFxBEAgBkGZEkEEECwgBkIsEBggBkEtEA0gBkEtEA0gBkEAEBIgBkEAEBIgBiAUEBggBiAUEBggBiATEBggBiAVEBggBkGUEkEEECwgBkEAEBIgBiAYEBggBkEBEBILIAZBnhJBBBAsIAZBABASIAYgFEL//wMgFEL//wNUG6dB//8DcSIBEA0gBiABEA0gBkF/IBOnIBNC/v///w9WGxASIAZBfyAVpyAVQv7///8PVhsQEiAGIABBJEEgIAAtACgbaigCACIDBH8gAy8BBAVBAAtB//8DcRANIAYtAABFBEAgAEEIagRAIABBADYCDCAAQRQ2AggLIAYQCAwCCyAAIAYoAgQgBi0AAAR+IAYpAxAFQgALEBshASAGEAggAUEASA0BIAMEQCAAIAMoAgAgAzMBBBAbQQBIDQILIBMhFwwBCyAAKAIAIQEgAEEIagRAIAAgASgCDDYCCCAAIAEoAhA2AgwLQn8hFwsgEUHwAGokACAXQgBTDQAgACgCABAfQj+HpyECCyALEAYgAkEASA0BAn8gACgCACIBKAIkQQFHBEAgAUEMagRAIAFBADYCECABQRI2AgwLQX8MAQsgASgCICICQQJPBEAgAUEMagRAIAFBADYCECABQR02AgwLQX8MAQsCQCACQQFHDQAgARAaQQBODQBBfwwBCyABQQBCAEEJEA5Cf1cEQCABQQI2AiRBfwwBCyABQQA2AiRBAAtFDQIgACgCACECIAQEQCAEIAIoAgw2AgAgBCACKAIQNgIECwwBCyALEAYLIAAoAlQQfCAAKAIAEENBfyECDAILIAAoAlQQfAsgABBLQQAhAgsgB0HAwABqJAAgAgtFAEHwgwFCADcDAEHogwFCADcDAEHggwFCADcDAEHYgwFCADcDAEHQgwFCADcDAEHIgwFCADcDAEHAgwFCADcDAEHAgwELoQMBCH8jAEGgAWsiAiQAIAAQMQJAAn8CQCAAKAIAIgFBAE4EQCABQbATKAIASA0BCyACIAE2AhAgAkEgakH2ESACQRBqEHZBASEGIAJBIGohBCACQSBqECIhA0EADAELIAFBAnQiAUGwEmooAgAhBQJ/AkACQCABQcATaigCAEEBaw4CAAEECyAAKAIEIQNB9IIBKAIAIQdBACEBAkACQANAIAMgAUHQ8QBqLQAARwRAQdcAIQQgAUEBaiIBQdcARw0BDAILCyABIgQNAEGw8gAhAwwBC0Gw8gAhAQNAIAEtAAAhCCABQQFqIgMhASAIDQAgAyEBIARBAWsiBA0ACwsgBygCFBogAwwBC0EAIAAoAgRrQQJ0QdjAAGooAgALIgRFDQEgBBAiIQMgBUUEQEEAIQVBASEGQQAMAQsgBRAiQQJqCyEBIAEgA2pBAWoQCSIBRQRAQegSKAIAIQUMAQsgAiAENgIIIAJBrBJBkRIgBhs2AgQgAkGsEiAFIAYbNgIAIAFBqwogAhB2IAAgATYCCCABIQULIAJBoAFqJAAgBQszAQF/IAAoAhQiAyABIAIgACgCECADayIBIAEgAksbIgEQBxogACAAKAIUIAFqNgIUIAILBgBBsIgBCwYAQayIAQsGAEGkiAELBwAgAEEEagsHACAAQQhqCyYBAX8gACgCFCIBBEAgARALCyAAKAIEIQEgAEEEahAxIAAQBiABC6kBAQN/AkAgAC0AACICRQ0AA0AgAS0AACIERQRAIAIhAwwCCwJAIAIgBEYNACACQSByIAIgAkHBAGtBGkkbIAEtAAAiAkEgciACIAJBwQBrQRpJG0YNACAALQAAIQMMAgsgAUEBaiEBIAAtAAEhAiAAQQFqIQAgAg0ACwsgA0H/AXEiAEEgciAAIABBwQBrQRpJGyABLQAAIgBBIHIgACAAQcEAa0EaSRtrC8sGAgJ+An8jAEHgAGsiByQAAkACQAJAAkACQAJAAkACQAJAAkACQCAEDg8AAQoCAwQGBwgICAgICAUICyABQgA3AyAMCQsgACACIAMQESIFQn9XBEAgAUEIaiIBBEAgASAAKAIMNgIAIAEgACgCEDYCBAsMCAsCQCAFUARAIAEpAygiAyABKQMgUg0BIAEgAzcDGCABQQE2AgQgASgCAEUNASAAIAdBKGoQIUF/TARAIAFBCGoiAQRAIAEgACgCDDYCACABIAAoAhA2AgQLDAoLAkAgBykDKCIDQiCDUA0AIAcoAlQgASgCMEYNACABQQhqBEAgAUEANgIMIAFBBzYCCAsMCgsgA0IEg1ANASAHKQNAIAEpAxhRDQEgAUEIagRAIAFBADYCDCABQRU2AggLDAkLIAEoAgQNACABKQMoIgMgASkDICIGVA0AIAUgAyAGfSIDWA0AIAEoAjAhBANAIAECfyAFIAN9IgZC/////w8gBkL/////D1QbIganIQBBACACIAOnaiIIRQ0AGiAEIAggAEHUgAEoAgARAAALIgQ2AjAgASABKQMoIAZ8NwMoIAUgAyAGfCIDVg0ACwsgASABKQMgIAV8NwMgDAgLIAEoAgRFDQcgAiABKQMYIgM3AxggASgCMCEAIAJBADYCMCACIAM3AyAgAiAANgIsIAIgAikDAELsAYQ3AwAMBwsgA0IIWgR+IAIgASgCCDYCACACIAEoAgw2AgRCCAVCfwshBQwGCyABEAYMBQtCfyEFIAApAxgiA0J/VwRAIAFBCGoiAQRAIAEgACgCDDYCACABIAAoAhA2AgQLDAULIAdBfzYCGCAHQo+AgICAAjcDECAHQoyAgIDQATcDCCAHQomAgICgATcDACADQQggBxAkQn+FgyEFDAQLIANCD1gEQCABQQhqBEAgAUEANgIMIAFBEjYCCAsMAwsgAkUNAgJAIAAgAikDACACKAIIEBRBAE4EQCAAEDMiA0J/VQ0BCyABQQhqIgEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwDCyABIAM3AyAMAwsgASkDICEFDAILIAFBCGoEQCABQQA2AgwgAUEcNgIICwtCfyEFCyAHQeAAaiQAIAULjAcCAn4CfyMAQRBrIgckAAJAAkACQAJAAkACQAJAAkACQAJAIAQOEQABAgMFBggICAgICAgIBwgECAsgAUJ/NwMgIAFBADoADyABQQA7AQwgAUIANwMYIAEoAqxAIAEoAqhAKAIMEQEArUIBfSEFDAgLQn8hBSABKAIADQdCACEFIANQDQcgAS0ADQ0HIAFBKGohBAJAA0ACQCAHIAMgBX03AwggASgCrEAgAiAFp2ogB0EIaiABKAKoQCgCHBEAACEIQgAgBykDCCAIQQJGGyAFfCEFAkACQAJAIAhBAWsOAwADAQILIAFBAToADSABKQMgIgNCf1cEQCABBEAgAUEANgIEIAFBFDYCAAsMBQsgAS0ADkUNBCADIAVWDQQgASADNwMYIAFBAToADyACIAQgA6cQBxogASkDGCEFDAwLIAEtAAwNAyAAIARCgMAAEBEiBkJ/VwRAIAEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwECyAGUARAIAFBAToADCABKAKsQCABKAKoQCgCGBEDACABKQMgQn9VDQEgAUIANwMgDAELAkAgASkDIEIAWQRAIAFBADoADgwBCyABIAY3AyALIAEoAqxAIAQgBiABKAKoQCgCFBEPABoLIAMgBVYNAQwCCwsgASgCAA0AIAEEQCABQQA2AgQgAUEUNgIACwsgBVBFBEAgAUEAOgAOIAEgASkDGCAFfDcDGAwIC0J/QgAgASgCABshBQwHCyABKAKsQCABKAKoQCgCEBEBAK1CAX0hBQwGCyABLQAQBEAgAS0ADQRAIAIgAS0ADwR/QQAFQQggASgCFCIAIABBfUsbCzsBMCACIAEpAxg3AyAgAiACKQMAQsgAhDcDAAwHCyACIAIpAwBCt////w+DNwMADAYLIAJBADsBMCACKQMAIQMgAS0ADQRAIAEpAxghBSACIANCxACENwMAIAIgBTcDGEIAIQUMBgsgAiADQrv///8Pg0LAAIQ3AwAMBQsgAS0ADw0EIAEoAqxAIAEoAqhAKAIIEQEArCEFDAQLIANCCFoEfiACIAEoAgA2AgAgAiABKAIENgIEQggFQn8LIQUMAwsgAUUNAiABKAKsQCABKAKoQCgCBBEDACABEDEgARAGDAILIAdBfzYCAEEQIAcQJEI/hCEFDAELIAEEQCABQQA2AgQgAUEUNgIAC0J/IQULIAdBEGokACAFC2MAQcgAEAkiAEUEQEGEhAEoAgAhASACBEAgAiABNgIEIAJBATYCAAsgAA8LIABBADoADCAAQQA6AAQgACACNgIAIABBADYCOCAAQgA3AzAgACABQQkgAUEBa0EJSRs2AgggAAu3fAIefwZ+IAIpAwAhIiAAIAE2AhwgACAiQv////8PICJC/////w9UGz4CICAAQRBqIQECfyAALQAEBEACfyAALQAMQQJ0IQpBfiEEAkACQAJAIAEiBUUNACAFKAIgRQ0AIAUoAiRFDQAgBSgCHCIDRQ0AIAMoAgAgBUcNAAJAAkAgAygCICIGQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyAGQZoFRg0AIAZBKkcNAQsgCkEFSw0AAkACQCAFKAIMRQ0AIAUoAgQiAQRAIAUoAgBFDQELIAZBmgVHDQEgCkEERg0BCyAFQeDAACgCADYCGEF+DAQLIAUoAhBFDQEgAygCJCEEIAMgCjYCJAJAIAMoAhAEQCADEDACQCAFKAIQIgYgAygCECIIIAYgCEkbIgFFDQAgBSgCDCADKAIIIAEQBxogBSAFKAIMIAFqNgIMIAMgAygCCCABajYCCCAFIAUoAhQgAWo2AhQgBSAFKAIQIAFrIgY2AhAgAyADKAIQIAFrIgg2AhAgCA0AIAMgAygCBDYCCEEAIQgLIAYEQCADKAIgIQYMAgsMBAsgAQ0AIApBAXRBd0EAIApBBEsbaiAEQQF0QXdBACAEQQRKG2pKDQAgCkEERg0ADAILAkACQAJAAkACQCAGQSpHBEAgBkGaBUcNASAFKAIERQ0DDAcLIAMoAhRFBEAgA0HxADYCIAwCCyADKAI0QQx0QYDwAWshBAJAIAMoAowBQQJODQAgAygCiAEiAUEBTA0AIAFBBUwEQCAEQcAAciEEDAELQYABQcABIAFBBkYbIARyIQQLIAMoAgQgCGogBEEgciAEIAMoAmgbIgFBH3AgAXJBH3NBCHQgAUGA/gNxQQh2cjsAACADIAMoAhBBAmoiATYCECADKAJoBEAgAygCBCABaiAFKAIwIgFBGHQgAUEIdEGAgPwHcXIgAUEIdkGA/gNxIAFBGHZycjYAACADIAMoAhBBBGo2AhALIAVBATYCMCADQfEANgIgIAUQCiADKAIQDQcgAygCICEGCwJAAkACQAJAIAZBOUYEfyADQaABakHkgAEoAgARAQAaIAMgAygCECIBQQFqNgIQIAEgAygCBGpBHzoAACADIAMoAhAiAUEBajYCECABIAMoAgRqQYsBOgAAIAMgAygCECIBQQFqNgIQIAEgAygCBGpBCDoAAAJAIAMoAhwiAUUEQCADKAIEIAMoAhBqQQA2AAAgAyADKAIQIgFBBWo2AhAgASADKAIEakEAOgAEQQIhBCADKAKIASIBQQlHBEBBBCABQQJIQQJ0IAMoAowBQQFKGyEECyADIAMoAhAiAUEBajYCECABIAMoAgRqIAQ6AAAgAyADKAIQIgFBAWo2AhAgASADKAIEakEDOgAAIANB8QA2AiAgBRAKIAMoAhBFDQEMDQsgASgCJCELIAEoAhwhCSABKAIQIQggASgCLCENIAEoAgAhBiADIAMoAhAiAUEBajYCEEECIQQgASADKAIEaiANQQBHQQF0IAZBAEdyIAhBAEdBAnRyIAlBAEdBA3RyIAtBAEdBBHRyOgAAIAMoAgQgAygCEGogAygCHCgCBDYAACADIAMoAhAiDUEEaiIGNgIQIAMoAogBIgFBCUcEQEEEIAFBAkhBAnQgAygCjAFBAUobIQQLIAMgDUEFajYCECADKAIEIAZqIAQ6AAAgAygCHCgCDCEEIAMgAygCECIBQQFqNgIQIAEgAygCBGogBDoAACADKAIcIgEoAhAEfyADKAIEIAMoAhBqIAEoAhQ7AAAgAyADKAIQQQJqNgIQIAMoAhwFIAELKAIsBEAgBQJ/IAUoAjAhBiADKAIQIQRBACADKAIEIgFFDQAaIAYgASAEQdSAASgCABEAAAs2AjALIANBxQA2AiAgA0EANgIYDAILIAMoAiAFIAYLQcUAaw4jAAQEBAEEBAQEBAQEBAQEBAQEBAQEBAIEBAQEBAQEBAQEBAMECyADKAIcIgEoAhAiBgRAIAMoAgwiCCADKAIQIgQgAS8BFCADKAIYIg1rIglqSQRAA0AgAygCBCAEaiAGIA1qIAggBGsiCBAHGiADIAMoAgwiDTYCEAJAIAMoAhwoAixFDQAgBCANTw0AIAUCfyAFKAIwIQZBACADKAIEIARqIgFFDQAaIAYgASANIARrQdSAASgCABEAAAs2AjALIAMgAygCGCAIajYCGCAFKAIcIgYQMAJAIAUoAhAiBCAGKAIQIgEgASAESxsiAUUNACAFKAIMIAYoAgggARAHGiAFIAUoAgwgAWo2AgwgBiAGKAIIIAFqNgIIIAUgBSgCFCABajYCFCAFIAUoAhAgAWs2AhAgBiAGKAIQIAFrIgE2AhAgAQ0AIAYgBigCBDYCCAsgAygCEA0MIAMoAhghDSADKAIcKAIQIQZBACEEIAkgCGsiCSADKAIMIghLDQALCyADKAIEIARqIAYgDWogCRAHGiADIAMoAhAgCWoiDTYCEAJAIAMoAhwoAixFDQAgBCANTw0AIAUCfyAFKAIwIQZBACADKAIEIARqIgFFDQAaIAYgASANIARrQdSAASgCABEAAAs2AjALIANBADYCGAsgA0HJADYCIAsgAygCHCgCHARAIAMoAhAiBCEJA0ACQCAEIAMoAgxHDQACQCADKAIcKAIsRQ0AIAQgCU0NACAFAn8gBSgCMCEGQQAgAygCBCAJaiIBRQ0AGiAGIAEgBCAJa0HUgAEoAgARAAALNgIwCyAFKAIcIgYQMAJAIAUoAhAiBCAGKAIQIgEgASAESxsiAUUNACAFKAIMIAYoAgggARAHGiAFIAUoAgwgAWo2AgwgBiAGKAIIIAFqNgIIIAUgBSgCFCABajYCFCAFIAUoAhAgAWs2AhAgBiAGKAIQIAFrIgE2AhAgAQ0AIAYgBigCBDYCCAtBACEEQQAhCSADKAIQRQ0ADAsLIAMoAhwoAhwhBiADIAMoAhgiAUEBajYCGCABIAZqLQAAIQEgAyAEQQFqNgIQIAMoAgQgBGogAToAACABBEAgAygCECEEDAELCwJAIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0EANgIYCyADQdsANgIgCwJAIAMoAhwoAiRFDQAgAygCECIEIQkDQAJAIAQgAygCDEcNAAJAIAMoAhwoAixFDQAgBCAJTQ0AIAUCfyAFKAIwIQZBACADKAIEIAlqIgFFDQAaIAYgASAEIAlrQdSAASgCABEAAAs2AjALIAUoAhwiBhAwAkAgBSgCECIEIAYoAhAiASABIARLGyIBRQ0AIAUoAgwgBigCCCABEAcaIAUgBSgCDCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQLDAILAn8CQANAAkACQAJAAkACQCADKAI8Ig1BggJLDQAgAxAvAkAgAygCPCINQYICSw0AIAoNAEEADAgLIA1FDQQgDUECSw0AIAMoAmghCAwBCyADKAJoIghFBEBBACEIDAELIAMoAkggCGoiAUEBayIELQAAIgYgAS0AAEcNACAGIAQtAAJHDQAgBEEDaiEEQQAhCQJAA0AgBiAELQAARw0BIAQtAAEgBkcEQCAJQQFyIQkMAgsgBC0AAiAGRwRAIAlBAnIhCQwCCyAELQADIAZHBEAgCUEDciEJDAILIAQtAAQgBkcEQCAJQQRyIQkMAgsgBC0ABSAGRwRAIAlBBXIhCQwCCyAELQAGIAZHBEAgCUEGciEJDAILIAQtAAcgBkcEQCAJQQdyIQkMAgsgBEEIaiEEIAlB+AFJIQEgCUEIaiEJIAENAAtBgAIhCQtBggIhBCANIAlBAmoiASABIA1LGyIBQYECSw0BIAEiBEECSw0BCyADKAJIIAhqLQAAIQQgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtakEAOgAAIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qIAQ6AAAgAyAEQQJ0aiIBIAEvAeQBQQFqOwHkASADIAMoAjxBAWs2AjwgAyADKAJoQQFqIgQ2AmgMAQsgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtakEBOgAAIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qIARBA2s6AAAgAyADKAKALkEBajYCgC4gBEH9zgBqLQAAQQJ0IANqQegJaiIBIAEvAQBBAWo7AQAgA0GAywAtAABBAnRqQdgTaiIBIAEvAQBBAWo7AQAgAyADKAI8IARrNgI8IAMgAygCaCAEaiIENgJoCyADKALwLSADKAL0LUcNAUEAIQggAyADKAJYIgFBAE4EfyADKAJIIAFqBUEACyAEIAFrQQAQDyADIAMoAmg2AlggAygCABAKIAMoAgAoAhANAQwCCwsgA0EANgKELiAKQQRGBEAgAyADKAJYIgFBAE4EfyADKAJIIAFqBUEACyADKAJoIAFrQQEQDyADIAMoAmg2AlggAygCABAKQQNBAiADKAIAKAIQGwwCCyADKALwLQRAQQAhCCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEEUNAQtBASEICyAICwwBCyADIAogAUEMbEG42ABqKAIAEQIACyIBQX5xQQJGBEAgA0GaBTYCIAsgAUF9cUUEQEEAIQQgBSgCEA0CDAQLIAFBAUcNAAJAAkACQCAKQQFrDgUAAQEBAgELIAMpA5guISICfwJ+IAMoAqAuIgFBA2oiCUE/TQRAQgIgAa2GICKEDAELIAFBwABGBEAgAygCBCADKAIQaiAiNwAAIAMgAygCEEEIajYCEEICISJBCgwCCyADKAIEIAMoAhBqQgIgAa2GICKENwAAIAMgAygCEEEIajYCECABQT1rIQlCAkHAACABa62ICyEiIAlBB2ogCUE5SQ0AGiADKAIEIAMoAhBqICI3AAAgAyADKAIQQQhqNgIQQgAhIiAJQTlrCyEBIAMgIjcDmC4gAyABNgKgLiADEDAMAQsgA0EAQQBBABA5IApBA0cNACADKAJQQQBBgIAIEBkgAygCPA0AIANBADYChC4gA0EANgJYIANBADYCaAsgBRAKIAUoAhANAAwDC0EAIQQgCkEERw0AAkACfwJAAkAgAygCFEEBaw4CAQADCyAFIANBoAFqQeCAASgCABEBACIBNgIwIAMoAgQgAygCEGogATYAACADIAMoAhBBBGoiATYCECADKAIEIAFqIQQgBSgCCAwBCyADKAIEIAMoAhBqIQQgBSgCMCIBQRh0IAFBCHRBgID8B3FyIAFBCHZBgP4DcSABQRh2cnILIQEgBCABNgAAIAMgAygCEEEEajYCEAsgBRAKIAMoAhQiAUEBTgRAIANBACABazYCFAsgAygCEEUhBAsgBAwCCyAFQezAACgCADYCGEF7DAELIANBfzYCJEEACwwBCyMAQRBrIhQkAEF+IRcCQCABIgxFDQAgDCgCIEUNACAMKAIkRQ0AIAwoAhwiB0UNACAHKAIAIAxHDQAgBygCBCIIQbT+AGtBH0sNACAMKAIMIhBFDQAgDCgCACIBRQRAIAwoAgQNAQsgCEG//gBGBEAgB0HA/gA2AgRBwP4AIQgLIAdBpAFqIR8gB0G8BmohGSAHQbwBaiEcIAdBoAFqIR0gB0G4AWohGiAHQfwKaiEYIAdBQGshHiAHKAKIASEFIAwoAgQiICEGIAcoAoQBIQogDCgCECIPIRYCfwJAAkACQANAAkBBfSEEQQEhCQJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIAhBtP4Aaw4fBwYICQolJicoBSwtLQsZGgQMAjIzATUANw0OAzlISUwLIAcoApQBIQMgASEEIAYhCAw1CyAHKAKUASEDIAEhBCAGIQgMMgsgBygCtAEhCAwuCyAHKAIMIQgMQQsgBUEOTw0pIAZFDUEgBUEIaiEIIAFBAWohBCAGQQFrIQkgAS0AACAFdCAKaiEKIAVBBkkNDCAEIQEgCSEGIAghBQwpCyAFQSBPDSUgBkUNQCABQQFqIQQgBkEBayEIIAEtAAAgBXQgCmohCiAFQRhJDQ0gBCEBIAghBgwlCyAFQRBPDRUgBkUNPyAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEISQ0NIAQhASAJIQYgCCEFDBULIAcoAgwiC0UNByAFQRBPDSIgBkUNPiAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEISQ0NIAQhASAJIQYgCCEFDCILIAVBH0sNFQwUCyAFQQ9LDRYMFQsgBygCFCIEQYAIcUUEQCAFIQgMFwsgCiEIIAVBD0sNGAwXCyAKIAVBB3F2IQogBUF4cSIFQR9LDQwgBkUNOiAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEYSQ0GIAQhASAJIQYgCCEFDAwLIAcoArQBIgggBygCqAEiC08NIwwiCyAPRQ0qIBAgBygCjAE6AAAgB0HI/gA2AgQgD0EBayEPIBBBAWohECAHKAIEIQgMOQsgBygCDCIDRQRAQQAhCAwJCyAFQR9LDQcgBkUNNyAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEYSQ0BIAQhASAJIQYgCCEFDAcLIAdBwP4ANgIEDCoLIAlFBEAgBCEBQQAhBiAIIQUgDSEEDDgLIAVBEGohCSABQQJqIQQgBkECayELIAEtAAEgCHQgCmohCiAFQQ9LBEAgBCEBIAshBiAJIQUMBgsgC0UEQCAEIQFBACEGIAkhBSANIQQMOAsgBUEYaiEIIAFBA2ohBCAGQQNrIQsgAS0AAiAJdCAKaiEKIAVBB0sEQCAEIQEgCyEGIAghBQwGCyALRQRAIAQhAUEAIQYgCCEFIA0hBAw4CyAFQSBqIQUgBkEEayEGIAEtAAMgCHQgCmohCiABQQRqIQEMBQsgCUUEQCAEIQFBACEGIAghBSANIQQMNwsgBUEQaiEFIAZBAmshBiABLQABIAh0IApqIQogAUECaiEBDBwLIAlFBEAgBCEBQQAhBiAIIQUgDSEEDDYLIAVBEGohCSABQQJqIQQgBkECayELIAEtAAEgCHQgCmohCiAFQQ9LBEAgBCEBIAshBiAJIQUMBgsgC0UEQCAEIQFBACEGIAkhBSANIQQMNgsgBUEYaiEIIAFBA2ohBCAGQQNrIQsgAS0AAiAJdCAKaiEKIAUEQCAEIQEgCyEGIAghBQwGCyALRQRAIAQhAUEAIQYgCCEFIA0hBAw2CyAFQSBqIQUgBkEEayEGIAEtAAMgCHQgCmohCiABQQRqIQEMBQsgBUEIaiEJIAhFBEAgBCEBQQAhBiAJIQUgDSEEDDULIAFBAmohBCAGQQJrIQggAS0AASAJdCAKaiEKIAVBD0sEQCAEIQEgCCEGDBgLIAVBEGohCSAIRQRAIAQhAUEAIQYgCSEFIA0hBAw1CyABQQNqIQQgBkEDayEIIAEtAAIgCXQgCmohCiAFQQdLBEAgBCEBIAghBgwYCyAFQRhqIQUgCEUEQCAEIQFBACEGIA0hBAw1CyAGQQRrIQYgAS0AAyAFdCAKaiEKIAFBBGohAQwXCyAJDQYgBCEBQQAhBiAIIQUgDSEEDDMLIAlFBEAgBCEBQQAhBiAIIQUgDSEEDDMLIAVBEGohBSAGQQJrIQYgAS0AASAIdCAKaiEKIAFBAmohAQwUCyAMIBYgD2siCSAMKAIUajYCFCAHIAcoAiAgCWo2AiACQCADQQRxRQ0AIAkEQAJAIBAgCWshBCAMKAIcIggoAhQEQCAIQUBrIAQgCUEAQdiAASgCABEIAAwBCyAIIAgoAhwgBCAJQcCAASgCABEAACIENgIcIAwgBDYCMAsLIAcoAhRFDQAgByAeQeCAASgCABEBACIENgIcIAwgBDYCMAsCQCAHKAIMIghBBHFFDQAgBygCHCAKIApBCHRBgID8B3EgCkEYdHIgCkEIdkGA/gNxIApBGHZyciAHKAIUG0YNACAHQdH+ADYCBCAMQaQMNgIYIA8hFiAHKAIEIQgMMQtBACEKQQAhBSAPIRYLIAdBz/4ANgIEDC0LIApB//8DcSIEIApBf3NBEHZHBEAgB0HR/gA2AgQgDEGOCjYCGCAHKAIEIQgMLwsgB0HC/gA2AgQgByAENgKMAUEAIQpBACEFCyAHQcP+ADYCBAsgBygCjAEiBARAIA8gBiAEIAQgBksbIgQgBCAPSxsiCEUNHiAQIAEgCBAHIQQgByAHKAKMASAIazYCjAEgBCAIaiEQIA8gCGshDyABIAhqIQEgBiAIayEGIAcoAgQhCAwtCyAHQb/+ADYCBCAHKAIEIQgMLAsgBUEQaiEFIAZBAmshBiABLQABIAh0IApqIQogAUECaiEBCyAHIAo2AhQgCkH/AXFBCEcEQCAHQdH+ADYCBCAMQYIPNgIYIAcoAgQhCAwrCyAKQYDAA3EEQCAHQdH+ADYCBCAMQY0JNgIYIAcoAgQhCAwrCyAHKAIkIgQEQCAEIApBCHZBAXE2AgALAkAgCkGABHFFDQAgBy0ADEEEcUUNACAUIAo7AAwgBwJ/IAcoAhwhBUEAIBRBDGoiBEUNABogBSAEQQJB1IABKAIAEQAACzYCHAsgB0G2/gA2AgRBACEFQQAhCgsgBkUNKCABQQFqIQQgBkEBayEIIAEtAAAgBXQgCmohCiAFQRhPBEAgBCEBIAghBgwBCyAFQQhqIQkgCEUEQCAEIQFBACEGIAkhBSANIQQMKwsgAUECaiEEIAZBAmshCCABLQABIAl0IApqIQogBUEPSwRAIAQhASAIIQYMAQsgBUEQaiEJIAhFBEAgBCEBQQAhBiAJIQUgDSEEDCsLIAFBA2ohBCAGQQNrIQggAS0AAiAJdCAKaiEKIAVBB0sEQCAEIQEgCCEGDAELIAVBGGohBSAIRQRAIAQhAUEAIQYgDSEEDCsLIAZBBGshBiABLQADIAV0IApqIQogAUEEaiEBCyAHKAIkIgQEQCAEIAo2AgQLAkAgBy0AFUECcUUNACAHLQAMQQRxRQ0AIBQgCjYADCAHAn8gBygCHCEFQQAgFEEMaiIERQ0AGiAFIARBBEHUgAEoAgARAAALNgIcCyAHQbf+ADYCBEEAIQVBACEKCyAGRQ0mIAFBAWohBCAGQQFrIQggAS0AACAFdCAKaiEKIAVBCE8EQCAEIQEgCCEGDAELIAVBCGohBSAIRQRAIAQhAUEAIQYgDSEEDCkLIAZBAmshBiABLQABIAV0IApqIQogAUECaiEBCyAHKAIkIgQEQCAEIApBCHY2AgwgBCAKQf8BcTYCCAsCQCAHLQAVQQJxRQ0AIActAAxBBHFFDQAgFCAKOwAMIAcCfyAHKAIcIQVBACAUQQxqIgRFDQAaIAUgBEECQdSAASgCABEAAAs2AhwLIAdBuP4ANgIEQQAhCEEAIQVBACEKIAcoAhQiBEGACHENAQsgBygCJCIEBEAgBEEANgIQCyAIIQUMAgsgBkUEQEEAIQYgCCEKIA0hBAwmCyABQQFqIQkgBkEBayELIAEtAAAgBXQgCGohCiAFQQhPBEAgCSEBIAshBgwBCyAFQQhqIQUgC0UEQCAJIQFBACEGIA0hBAwmCyAGQQJrIQYgAS0AASAFdCAKaiEKIAFBAmohAQsgByAKQf//A3EiCDYCjAEgBygCJCIFBEAgBSAINgIUC0EAIQUCQCAEQYAEcUUNACAHLQAMQQRxRQ0AIBQgCjsADCAHAn8gBygCHCEIQQAgFEEMaiIERQ0AGiAIIARBAkHUgAEoAgARAAALNgIcC0EAIQoLIAdBuf4ANgIECyAHKAIUIglBgAhxBEAgBiAHKAKMASIIIAYgCEkbIg4EQAJAIAcoAiQiA0UNACADKAIQIgRFDQAgAygCGCILIAMoAhQgCGsiCE0NACAEIAhqIAEgCyAIayAOIAggDmogC0sbEAcaIAcoAhQhCQsCQCAJQYAEcUUNACAHLQAMQQRxRQ0AIAcCfyAHKAIcIQRBACABRQ0AGiAEIAEgDkHUgAEoAgARAAALNgIcCyAHIAcoAowBIA5rIgg2AowBIAYgDmshBiABIA5qIQELIAgNEwsgB0G6/gA2AgQgB0EANgKMAQsCQCAHLQAVQQhxBEBBACEIIAZFDQQDQCABIAhqLQAAIQMCQCAHKAIkIgtFDQAgCygCHCIERQ0AIAcoAowBIgkgCygCIE8NACAHIAlBAWo2AowBIAQgCWogAzoAAAsgA0EAIAYgCEEBaiIISxsNAAsCQCAHLQAVQQJxRQ0AIActAAxBBHFFDQAgBwJ/IAcoAhwhBEEAIAFFDQAaIAQgASAIQdSAASgCABEAAAs2AhwLIAEgCGohASAGIAhrIQYgA0UNAQwTCyAHKAIkIgRFDQAgBEEANgIcCyAHQbv+ADYCBCAHQQA2AowBCwJAIActABVBEHEEQEEAIQggBkUNAwNAIAEgCGotAAAhAwJAIAcoAiQiC0UNACALKAIkIgRFDQAgBygCjAEiCSALKAIoTw0AIAcgCUEBajYCjAEgBCAJaiADOgAACyADQQAgBiAIQQFqIghLGw0ACwJAIActABVBAnFFDQAgBy0ADEEEcUUNACAHAn8gBygCHCEEQQAgAUUNABogBCABIAhB1IABKAIAEQAACzYCHAsgASAIaiEBIAYgCGshBiADRQ0BDBILIAcoAiQiBEUNACAEQQA2AiQLIAdBvP4ANgIECyAHKAIUIgtBgARxBEACQCAFQQ9LDQAgBkUNHyAFQQhqIQggAUEBaiEEIAZBAWshCSABLQAAIAV0IApqIQogBUEITwRAIAQhASAJIQYgCCEFDAELIAlFBEAgBCEBQQAhBiAIIQUgDSEEDCILIAVBEGohBSAGQQJrIQYgAS0AASAIdCAKaiEKIAFBAmohAQsCQCAHLQAMQQRxRQ0AIAogBy8BHEYNACAHQdH+ADYCBCAMQdcMNgIYIAcoAgQhCAwgC0EAIQpBACEFCyAHKAIkIgQEQCAEQQE2AjAgBCALQQl2QQFxNgIsCwJAIActAAxBBHFFDQAgC0UNACAHIB5B5IABKAIAEQEAIgQ2AhwgDCAENgIwCyAHQb/+ADYCBCAHKAIEIQgMHgtBACEGDA4LAkAgC0ECcUUNACAKQZ+WAkcNACAHKAIoRQRAIAdBDzYCKAtBACEKIAdBADYCHCAUQZ+WAjsADCAHIBRBDGoiBAR/QQAgBEECQdSAASgCABEAAAVBAAs2AhwgB0G1/gA2AgRBACEFIAcoAgQhCAwdCyAHKAIkIgQEQCAEQX82AjALAkAgC0EBcQRAIApBCHRBgP4DcSAKQQh2akEfcEUNAQsgB0HR/gA2AgQgDEH2CzYCGCAHKAIEIQgMHQsgCkEPcUEIRwRAIAdB0f4ANgIEIAxBgg82AhggBygCBCEIDB0LIApBBHYiBEEPcSIJQQhqIQsgCUEHTUEAIAcoAigiCAR/IAgFIAcgCzYCKCALCyALTxtFBEAgBUEEayEFIAdB0f4ANgIEIAxB+gw2AhggBCEKIAcoAgQhCAwdCyAHQQE2AhxBACEFIAdBADYCFCAHQYACIAl0NgIYIAxBATYCMCAHQb3+AEG//gAgCkGAwABxGzYCBEEAIQogBygCBCEIDBwLIAcgCkEIdEGAgPwHcSAKQRh0ciAKQQh2QYD+A3EgCkEYdnJyIgQ2AhwgDCAENgIwIAdBvv4ANgIEQQAhCkEAIQULIAcoAhBFBEAgDCAPNgIQIAwgEDYCDCAMIAY2AgQgDCABNgIAIAcgBTYCiAEgByAKNgKEAUECIRcMIAsgB0EBNgIcIAxBATYCMCAHQb/+ADYCBAsCfwJAIAcoAghFBEAgBUEDSQ0BIAUMAgsgB0HO/gA2AgQgCiAFQQdxdiEKIAVBeHEhBSAHKAIEIQgMGwsgBkUNGSAGQQFrIQYgAS0AACAFdCAKaiEKIAFBAWohASAFQQhqCyEEIAcgCkEBcTYCCAJAAkACQAJAAkAgCkEBdkEDcUEBaw4DAQIDAAsgB0HB/gA2AgQMAwsgB0Gw2wA2ApgBIAdCiYCAgNAANwOgASAHQbDrADYCnAEgB0HH/gA2AgQMAgsgB0HE/gA2AgQMAQsgB0HR/gA2AgQgDEHXDTYCGAsgBEEDayEFIApBA3YhCiAHKAIEIQgMGQsgByAKQR9xIghBgQJqNgKsASAHIApBBXZBH3EiBEEBajYCsAEgByAKQQp2QQ9xQQRqIgs2AqgBIAVBDmshBSAKQQ52IQogCEEdTUEAIARBHkkbRQRAIAdB0f4ANgIEIAxB6gk2AhggBygCBCEIDBkLIAdBxf4ANgIEQQAhCCAHQQA2ArQBCyAIIQQDQCAFQQJNBEAgBkUNGCAGQQFrIQYgAS0AACAFdCAKaiEKIAVBCGohBSABQQFqIQELIAcgBEEBaiIINgK0ASAHIARBAXRBsOwAai8BAEEBdGogCkEHcTsBvAEgBUEDayEFIApBA3YhCiALIAgiBEsNAAsLIAhBEk0EQEESIAhrIQ1BAyAIa0EDcSIEBEADQCAHIAhBAXRBsOwAai8BAEEBdGpBADsBvAEgCEEBaiEIIARBAWsiBA0ACwsgDUEDTwRAA0AgB0G8AWoiDSAIQQF0IgRBsOwAai8BAEEBdGpBADsBACANIARBsuwAai8BAEEBdGpBADsBACANIARBtOwAai8BAEEBdGpBADsBACANIARBtuwAai8BAEEBdGpBADsBACAIQQRqIghBE0cNAAsLIAdBEzYCtAELIAdBBzYCoAEgByAYNgKYASAHIBg2ArgBQQAhCEEAIBxBEyAaIB0gGRBOIg0EQCAHQdH+ADYCBCAMQfQINgIYIAcoAgQhCAwXCyAHQcb+ADYCBCAHQQA2ArQBQQAhDQsgBygCrAEiFSAHKAKwAWoiESAISwRAQX8gBygCoAF0QX9zIRIgBygCmAEhGwNAIAYhCSABIQsCQCAFIgMgGyAKIBJxIhNBAnRqLQABIg5PBEAgBSEEDAELA0AgCUUNDSALLQAAIAN0IQ4gC0EBaiELIAlBAWshCSADQQhqIgQhAyAEIBsgCiAOaiIKIBJxIhNBAnRqLQABIg5JDQALIAshASAJIQYLAkAgGyATQQJ0ai8BAiIFQQ9NBEAgByAIQQFqIgk2ArQBIAcgCEEBdGogBTsBvAEgBCAOayEFIAogDnYhCiAJIQgMAQsCfwJ/AkACQAJAIAVBEGsOAgABAgsgDkECaiIFIARLBEADQCAGRQ0bIAZBAWshBiABLQAAIAR0IApqIQogAUEBaiEBIARBCGoiBCAFSQ0ACwsgBCAOayEFIAogDnYhBCAIRQRAIAdB0f4ANgIEIAxBvAk2AhggBCEKIAcoAgQhCAwdCyAFQQJrIQUgBEECdiEKIARBA3FBA2ohCSAIQQF0IAdqLwG6AQwDCyAOQQNqIgUgBEsEQANAIAZFDRogBkEBayEGIAEtAAAgBHQgCmohCiABQQFqIQEgBEEIaiIEIAVJDQALCyAEIA5rQQNrIQUgCiAOdiIEQQN2IQogBEEHcUEDagwBCyAOQQdqIgUgBEsEQANAIAZFDRkgBkEBayEGIAEtAAAgBHQgCmohCiABQQFqIQEgBEEIaiIEIAVJDQALCyAEIA5rQQdrIQUgCiAOdiIEQQd2IQogBEH/AHFBC2oLIQlBAAshAyAIIAlqIBFLDRMgCUEBayEEIAlBA3EiCwRAA0AgByAIQQF0aiADOwG8ASAIQQFqIQggCUEBayEJIAtBAWsiCw0ACwsgBEEDTwRAA0AgByAIQQF0aiIEIAM7Ab4BIAQgAzsBvAEgBCADOwHAASAEIAM7AcIBIAhBBGohCCAJQQRrIgkNAAsLIAcgCDYCtAELIAggEUkNAAsLIAcvAbwFRQRAIAdB0f4ANgIEIAxB0Qs2AhggBygCBCEIDBYLIAdBCjYCoAEgByAYNgKYASAHIBg2ArgBQQEgHCAVIBogHSAZEE4iDQRAIAdB0f4ANgIEIAxB2Ag2AhggBygCBCEIDBYLIAdBCTYCpAEgByAHKAK4ATYCnAFBAiAHIAcoAqwBQQF0akG8AWogBygCsAEgGiAfIBkQTiINBEAgB0HR/gA2AgQgDEGmCTYCGCAHKAIEIQgMFgsgB0HH/gA2AgRBACENCyAHQcj+ADYCBAsCQCAGQQ9JDQAgD0GEAkkNACAMIA82AhAgDCAQNgIMIAwgBjYCBCAMIAE2AgAgByAFNgKIASAHIAo2AoQBIAwgFkHogAEoAgARBwAgBygCiAEhBSAHKAKEASEKIAwoAgQhBiAMKAIAIQEgDCgCECEPIAwoAgwhECAHKAIEQb/+AEcNByAHQX82ApBHIAcoAgQhCAwUCyAHQQA2ApBHIAUhCSAGIQggASEEAkAgBygCmAEiEiAKQX8gBygCoAF0QX9zIhVxIg5BAnRqLQABIgsgBU0EQCAFIQMMAQsDQCAIRQ0PIAQtAAAgCXQhCyAEQQFqIQQgCEEBayEIIAlBCGoiAyEJIAMgEiAKIAtqIgogFXEiDkECdGotAAEiC0kNAAsLIBIgDkECdGoiAS8BAiETAkBBACABLQAAIhEgEUHwAXEbRQRAIAshBgwBCyAIIQYgBCEBAkAgAyIFIAsgEiAKQX8gCyARanRBf3MiFXEgC3YgE2oiEUECdGotAAEiDmpPBEAgAyEJDAELA0AgBkUNDyABLQAAIAV0IQ4gAUEBaiEBIAZBAWshBiAFQQhqIgkhBSALIBIgCiAOaiIKIBVxIAt2IBNqIhFBAnRqLQABIg5qIAlLDQALIAEhBCAGIQgLIBIgEUECdGoiAS0AACERIAEvAQIhEyAHIAs2ApBHIAsgDmohBiAJIAtrIQMgCiALdiEKIA4hCwsgByAGNgKQRyAHIBNB//8DcTYCjAEgAyALayEFIAogC3YhCiARRQRAIAdBzf4ANgIEDBALIBFBIHEEQCAHQb/+ADYCBCAHQX82ApBHDBALIBFBwABxBEAgB0HR/gA2AgQgDEHQDjYCGAwQCyAHQcn+ADYCBCAHIBFBD3EiAzYClAELAkAgA0UEQCAHKAKMASELIAQhASAIIQYMAQsgBSEJIAghBiAEIQsCQCADIAVNBEAgBCEBDAELA0AgBkUNDSAGQQFrIQYgCy0AACAJdCAKaiEKIAtBAWoiASELIAlBCGoiCSADSQ0ACwsgByAHKAKQRyADajYCkEcgByAHKAKMASAKQX8gA3RBf3NxaiILNgKMASAJIANrIQUgCiADdiEKCyAHQcr+ADYCBCAHIAs2ApRHCyAFIQkgBiEIIAEhBAJAIAcoApwBIhIgCkF/IAcoAqQBdEF/cyIVcSIOQQJ0ai0AASIDIAVNBEAgBSELDAELA0AgCEUNCiAELQAAIAl0IQMgBEEBaiEEIAhBAWshCCAJQQhqIgshCSALIBIgAyAKaiIKIBVxIg5BAnRqLQABIgNJDQALCyASIA5BAnRqIgEvAQIhEwJAIAEtAAAiEUHwAXEEQCAHKAKQRyEGIAMhCQwBCyAIIQYgBCEBAkAgCyIFIAMgEiAKQX8gAyARanRBf3MiFXEgA3YgE2oiEUECdGotAAEiCWpPBEAgCyEODAELA0AgBkUNCiABLQAAIAV0IQkgAUEBaiEBIAZBAWshBiAFQQhqIg4hBSADIBIgCSAKaiIKIBVxIAN2IBNqIhFBAnRqLQABIglqIA5LDQALIAEhBCAGIQgLIBIgEUECdGoiAS0AACERIAEvAQIhEyAHIAcoApBHIANqIgY2ApBHIA4gA2shCyAKIAN2IQoLIAcgBiAJajYCkEcgCyAJayEFIAogCXYhCiARQcAAcQRAIAdB0f4ANgIEIAxB7A42AhggBCEBIAghBiAHKAIEIQgMEgsgB0HL/gA2AgQgByARQQ9xIgM2ApQBIAcgE0H//wNxNgKQAQsCQCADRQRAIAQhASAIIQYMAQsgBSEJIAghBiAEIQsCQCADIAVNBEAgBCEBDAELA0AgBkUNCCAGQQFrIQYgCy0AACAJdCAKaiEKIAtBAWoiASELIAlBCGoiCSADSQ0ACwsgByAHKAKQRyADajYCkEcgByAHKAKQASAKQX8gA3RBf3NxajYCkAEgCSADayEFIAogA3YhCgsgB0HM/gA2AgQLIA9FDQACfyAHKAKQASIIIBYgD2siBEsEQAJAIAggBGsiCCAHKAIwTQ0AIAcoAoxHRQ0AIAdB0f4ANgIEIAxBuQw2AhggBygCBCEIDBILAn8CQAJ/IAcoAjQiBCAISQRAIAcoAjggBygCLCAIIARrIghragwBCyAHKAI4IAQgCGtqCyILIBAgDyAQaiAQa0EBaqwiISAPIAcoAowBIgQgCCAEIAhJGyIEIAQgD0sbIgitIiIgISAiVBsiIqciCWoiBEkgCyAQT3ENACALIBBNIAkgC2ogEEtxDQAgECALIAkQBxogBAwBCyAQIAsgCyAQayIEIARBH3UiBGogBHMiCRAHIAlqIQQgIiAJrSIkfSIjUEUEQCAJIAtqIQkDQAJAICMgJCAjICRUGyIiQiBUBEAgIiEhDAELICIiIUIgfSImQgWIQgF8QgODIiVQRQRAA0AgBCAJKQAANwAAIAQgCSkAGDcAGCAEIAkpABA3ABAgBCAJKQAINwAIICFCIH0hISAJQSBqIQkgBEEgaiEEICVCAX0iJUIAUg0ACwsgJkLgAFQNAANAIAQgCSkAADcAACAEIAkpABg3ABggBCAJKQAQNwAQIAQgCSkACDcACCAEIAkpADg3ADggBCAJKQAwNwAwIAQgCSkAKDcAKCAEIAkpACA3ACAgBCAJKQBYNwBYIAQgCSkAUDcAUCAEIAkpAEg3AEggBCAJKQBANwBAIAQgCSkAYDcAYCAEIAkpAGg3AGggBCAJKQBwNwBwIAQgCSkAeDcAeCAJQYABaiEJIARBgAFqIQQgIUKAAX0iIUIfVg0ACwsgIUIQWgRAIAQgCSkAADcAACAEIAkpAAg3AAggIUIQfSEhIAlBEGohCSAEQRBqIQQLICFCCFoEQCAEIAkpAAA3AAAgIUIIfSEhIAlBCGohCSAEQQhqIQQLICFCBFoEQCAEIAkoAAA2AAAgIUIEfSEhIAlBBGohCSAEQQRqIQQLICFCAloEQCAEIAkvAAA7AAAgIUICfSEhIAlBAmohCSAEQQJqIQQLICMgIn0hIyAhUEUEQCAEIAktAAA6AAAgCUEBaiEJIARBAWohBAsgI0IAUg0ACwsgBAsMAQsgECAIIA8gBygCjAEiBCAEIA9LGyIIIA9ByIABKAIAEQQACyEQIAcgBygCjAEgCGsiBDYCjAEgDyAIayEPIAQNAiAHQcj+ADYCBCAHKAIEIQgMDwsgDSEJCyAJIQQMDgsgBygCBCEIDAwLIAEgBmohASAFIAZBA3RqIQUMCgsgBCAIaiEBIAUgCEEDdGohBQwJCyAEIAhqIQEgCyAIQQN0aiEFDAgLIAEgBmohASAFIAZBA3RqIQUMBwsgBCAIaiEBIAUgCEEDdGohBQwGCyAEIAhqIQEgAyAIQQN0aiEFDAULIAEgBmohASAFIAZBA3RqIQUMBAsgB0HR/gA2AgQgDEG8CTYCGCAHKAIEIQgMBAsgBCEBIAghBiAHKAIEIQgMAwtBACEGIAQhBSANIQQMAwsCQAJAIAhFBEAgCiEJDAELIAcoAhRFBEAgCiEJDAELAkAgBUEfSw0AIAZFDQMgBUEIaiEJIAFBAWohBCAGQQFrIQsgAS0AACAFdCAKaiEKIAVBGE8EQCAEIQEgCyEGIAkhBQwBCyALRQRAIAQhAUEAIQYgCSEFIA0hBAwGCyAFQRBqIQsgAUECaiEEIAZBAmshAyABLQABIAl0IApqIQogBUEPSwRAIAQhASADIQYgCyEFDAELIANFBEAgBCEBQQAhBiALIQUgDSEEDAYLIAVBGGohCSABQQNqIQQgBkEDayEDIAEtAAIgC3QgCmohCiAFQQdLBEAgBCEBIAMhBiAJIQUMAQsgA0UEQCAEIQFBACEGIAkhBSANIQQMBgsgBUEgaiEFIAZBBGshBiABLQADIAl0IApqIQogAUEEaiEBC0EAIQkgCEEEcQRAIAogBygCIEcNAgtBACEFCyAHQdD+ADYCBEEBIQQgCSEKDAMLIAdB0f4ANgIEIAxBjQw2AhggBygCBCEIDAELC0EAIQYgDSEECyAMIA82AhAgDCAQNgIMIAwgBjYCBCAMIAE2AgAgByAFNgKIASAHIAo2AoQBAkAgBygCLA0AIA8gFkYNAiAHKAIEIgFB0P4ASw0CIAFBzv4ASQ0ACwJ/IBYgD2shCiAHKAIMQQRxIQkCQAJAAkAgDCgCHCIDKAI4Ig1FBEBBASEIIAMgAygCACIBKAIgIAEoAiggAygCmEdBASADKAIodGpBARAoIg02AjggDUUNAQsgAygCLCIGRQRAIANCADcDMCADQQEgAygCKHQiBjYCLAsgBiAKTQRAAkAgCQRAAkAgBiAKTw0AIAogBmshBSAQIAprIQEgDCgCHCIGKAIUBEAgBkFAayABIAVBAEHYgAEoAgARCAAMAQsgBiAGKAIcIAEgBUHAgAEoAgARAAAiATYCHCAMIAE2AjALIAMoAiwiDUUNASAQIA1rIQUgAygCOCEBIAwoAhwiBigCFARAIAZBQGsgASAFIA1B3IABKAIAEQgADAILIAYgBigCHCABIAUgDUHEgAEoAgARBAAiATYCHCAMIAE2AjAMAQsgDSAQIAZrIAYQBxoLIANBADYCNCADIAMoAiw2AjBBAAwECyAKIAYgAygCNCIFayIBIAEgCksbIQsgECAKayEGIAUgDWohBQJAIAkEQAJAIAtFDQAgDCgCHCIBKAIUBEAgAUFAayAFIAYgC0HcgAEoAgARCAAMAQsgASABKAIcIAUgBiALQcSAASgCABEEACIBNgIcIAwgATYCMAsgCiALayIFRQ0BIBAgBWshBiADKAI4IQEgDCgCHCINKAIUBEAgDUFAayABIAYgBUHcgAEoAgARCAAMBQsgDSANKAIcIAEgBiAFQcSAASgCABEEACIBNgIcIAwgATYCMAwECyAFIAYgCxAHGiAKIAtrIgUNAgtBACEIIANBACADKAI0IAtqIgUgBSADKAIsIgFGGzYCNCABIAMoAjAiAU0NACADIAEgC2o2AjALIAgMAgsgAygCOCAQIAVrIAUQBxoLIAMgBTYCNCADIAMoAiw2AjBBAAtFBEAgDCgCECEPIAwoAgQhFyAHKAKIAQwDCyAHQdL+ADYCBAtBfCEXDAILIAYhFyAFCyEFIAwgICAXayIBIAwoAghqNgIIIAwgFiAPayIGIAwoAhRqNgIUIAcgBygCICAGajYCICAMIAcoAghBAEdBBnQgBWogBygCBCIFQb/+AEZBB3RqQYACIAVBwv4ARkEIdCAFQcf+AEYbajYCLCAEIARBeyAEGyABIAZyGyEXCyAUQRBqJAAgFwshASACIAIpAwAgADUCIH03AwACQAJAAkACQCABQQVqDgcBAgICAgMAAgtBAQ8LIAAoAhQNAEEDDwsgACgCACIABEAgACABNgIEIABBDTYCAAtBAiEBCyABCwkAIABBAToADAtEAAJAIAJC/////w9YBEAgACgCFEUNAQsgACgCACIABEAgAEEANgIEIABBEjYCAAtBAA8LIAAgATYCECAAIAI+AhRBAQu5AQEEfyAAQRBqIQECfyAALQAEBEAgARCEAQwBC0F+IQMCQCABRQ0AIAEoAiBFDQAgASgCJCIERQ0AIAEoAhwiAkUNACACKAIAIAFHDQAgAigCBEG0/gBrQR9LDQAgAigCOCIDBEAgBCABKAIoIAMQHiABKAIkIQQgASgCHCECCyAEIAEoAiggAhAeQQAhAyABQQA2AhwLIAMLIgEEQCAAKAIAIgAEQCAAIAE2AgQgAEENNgIACwsgAUUL0gwBBn8gAEIANwIQIABCADcCHCAAQRBqIQICfyAALQAEBEAgACgCCCEBQesMLQAAQTFGBH8Cf0F+IQMCQCACRQ0AIAJBADYCGCACKAIgIgRFBEAgAkEANgIoIAJBJzYCIEEnIQQLIAIoAiRFBEAgAkEoNgIkC0EGIAEgAUF/RhsiBUEASA0AIAVBCUoNAEF8IQMgBCACKAIoQQFB0C4QKCIBRQ0AIAIgATYCHCABIAI2AgAgAUEPNgI0IAFCgICAgKAFNwIcIAFBADYCFCABQYCAAjYCMCABQf//ATYCOCABIAIoAiAgAigCKEGAgAJBAhAoNgJIIAEgAigCICACKAIoIAEoAjBBAhAoIgM2AkwgA0EAIAEoAjBBAXQQGSACKAIgIAIoAihBgIAEQQIQKCEDIAFBgIACNgLoLSABQQA2AkAgASADNgJQIAEgAigCICACKAIoQYCAAkEEECgiAzYCBCABIAEoAugtIgRBAnQ2AgwCQAJAIAEoAkhFDQAgASgCTEUNACABKAJQRQ0AIAMNAQsgAUGaBTYCICACQejAACgCADYCGCACEIQBGkF8DAILIAFBADYCjAEgASAFNgKIASABQgA3AyggASADIARqNgLsLSABIARBA2xBA2s2AvQtQX4hAwJAIAJFDQAgAigCIEUNACACKAIkRQ0AIAIoAhwiAUUNACABKAIAIAJHDQACQAJAIAEoAiAiBEE5aw45AQICAgICAgICAgICAQICAgECAgICAgICAgICAgICAgICAgECAgICAgICAgICAgECAgICAgICAgIBAAsgBEGaBUYNACAEQSpHDQELIAJBAjYCLCACQQA2AgggAkIANwIUIAFBADYCECABIAEoAgQ2AgggASgCFCIDQX9MBEAgAUEAIANrIgM2AhQLIAFBOUEqIANBAkYbNgIgIAIgA0ECRgR/IAFBoAFqQeSAASgCABEBAAVBAQs2AjAgAUF+NgIkIAFBADYCoC4gAUIANwOYLiABQYgXakGg0wA2AgAgASABQcwVajYCgBcgAUH8FmpBjNMANgIAIAEgAUHYE2o2AvQWIAFB8BZqQfjSADYCACABIAFB5AFqNgLoFiABEIgBQQAhAwsgAw0AIAIoAhwiAiACKAIwQQF0NgJEQQAhAyACKAJQQQBBgIAIEBkgAiACKAKIASIEQQxsIgFBtNgAai8BADYClAEgAiABQbDYAGovAQA2ApABIAIgAUGy2ABqLwEANgJ4IAIgAUG22ABqLwEANgJ0QfiAASgCACEFQeyAASgCACEGQYCBASgCACEBIAJCADcCbCACQgA3AmQgAkEANgI8IAJBADYChC4gAkIANwJUIAJBKSABIARBCUYiARs2AnwgAkEqIAYgARs2AoABIAJBKyAFIAEbNgKEAQsgAwsFQXoLDAELAn9BekHrDC0AAEExRw0AGkF+IAJFDQAaIAJBADYCGCACKAIgIgNFBEAgAkEANgIoIAJBJzYCIEEnIQMLIAIoAiRFBEAgAkEoNgIkC0F8IAMgAigCKEEBQaDHABAoIgRFDQAaIAIgBDYCHCAEQQA2AjggBCACNgIAIARBtP4ANgIEIARBzIABKAIAEQkANgKYR0F+IQMCQCACRQ0AIAIoAiBFDQAgAigCJCIFRQ0AIAIoAhwiAUUNACABKAIAIAJHDQAgASgCBEG0/gBrQR9LDQACQAJAIAEoAjgiBgRAIAEoAihBD0cNAQsgAUEPNgIoIAFBADYCDAwBCyAFIAIoAiggBhAeIAFBADYCOCACKAIgIQUgAUEPNgIoIAFBADYCDCAFRQ0BCyACKAIkRQ0AIAIoAhwiAUUNACABKAIAIAJHDQAgASgCBEG0/gBrQR9LDQBBACEDIAFBADYCNCABQgA3AiwgAUEANgIgIAJBADYCCCACQgA3AhQgASgCDCIFBEAgAiAFQQFxNgIwCyABQrT+ADcCBCABQgA3AoQBIAFBADYCJCABQoCAgoAQNwMYIAFCgICAgHA3AxAgAUKBgICAcDcCjEcgASABQfwKaiIFNgK4ASABIAU2ApwBIAEgBTYCmAELQQAgA0UNABogAigCJCACKAIoIAQQHiACQQA2AhwgAwsLIgIEQCAAKAIAIgAEQCAAIAI2AgQgAEENNgIACwsgAkULKQEBfyAALQAERQRAQQAPC0ECIQEgACgCCCIAQQNOBH8gAEEHSgVBAgsLBgAgABAGC2MAQcgAEAkiAEUEQEGEhAEoAgAhASACBEAgAiABNgIEIAJBATYCAAsgAA8LIABBADoADCAAQQE6AAQgACACNgIAIABBADYCOCAAQgA3AzAgACABQQkgAUEBa0EJSRs2AgggAAukCgIIfwF+QfCAAUH0gAEgACgCdEGBCEkbIQYCQANAAkACfwJAIAAoAjxBhQJLDQAgABAvAkAgACgCPCICQYUCSw0AIAENAEEADwsgAkUNAiACQQRPDQBBAAwBCyAAIAAoAmggACgChAERAgALIQMgACAAKAJsOwFgQQIhAgJAIAA1AmggA619IgpCAVMNACAKIAAoAjBBhgJrrVUNACAAKAJwIAAoAnhPDQAgA0UNACAAIAMgBigCABECACICQQVLDQBBAiACIAAoAowBQQFGGyECCwJAIAAoAnAiA0EDSQ0AIAIgA0sNACAAIAAoAvAtIgJBAWo2AvAtIAAoAjwhBCACIAAoAuwtaiAAKAJoIgcgAC8BYEF/c2oiAjoAACAAIAAoAvAtIgVBAWo2AvAtIAUgACgC7C1qIAJBCHY6AAAgACAAKALwLSIFQQFqNgLwLSAFIAAoAuwtaiADQQNrOgAAIAAgACgCgC5BAWo2AoAuIANB/c4Aai0AAEECdCAAakHoCWoiAyADLwEAQQFqOwEAIAAgAkEBayICIAJBB3ZBgAJqIAJBgAJJG0GAywBqLQAAQQJ0akHYE2oiAiACLwEAQQFqOwEAIAAgACgCcCIFQQFrIgM2AnAgACAAKAI8IANrNgI8IAAoAvQtIQggACgC8C0hCSAEIAdqQQNrIgQgACgCaCICSwRAIAAgAkEBaiAEIAJrIgIgBUECayIEIAIgBEkbIAAoAoABEQUAIAAoAmghAgsgAEEANgJkIABBADYCcCAAIAIgA2oiBDYCaCAIIAlHDQJBACECIAAgACgCWCIDQQBOBH8gACgCSCADagVBAAsgBCADa0EAEA8gACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQDQIMAwsgACgCZARAIAAoAmggACgCSGpBAWstAAAhAyAAIAAoAvAtIgRBAWo2AvAtIAQgACgC7C1qQQA6AAAgACAAKALwLSIEQQFqNgLwLSAEIAAoAuwtakEAOgAAIAAgACgC8C0iBEEBajYC8C0gBCAAKALsLWogAzoAACAAIANBAnRqIgMgAy8B5AFBAWo7AeQBIAAoAvAtIAAoAvQtRgRAIAAgACgCWCIDQQBOBH8gACgCSCADagVBAAsgACgCaCADa0EAEA8gACAAKAJoNgJYIAAoAgAQCgsgACACNgJwIAAgACgCaEEBajYCaCAAIAAoAjxBAWs2AjwgACgCACgCEA0CQQAPBSAAQQE2AmQgACACNgJwIAAgACgCaEEBajYCaCAAIAAoAjxBAWs2AjwMAgsACwsgACgCZARAIAAoAmggACgCSGpBAWstAAAhAiAAIAAoAvAtIgNBAWo2AvAtIAMgACgC7C1qQQA6AAAgACAAKALwLSIDQQFqNgLwLSADIAAoAuwtakEAOgAAIAAgACgC8C0iA0EBajYC8C0gAyAAKALsLWogAjoAACAAIAJBAnRqIgIgAi8B5AFBAWo7AeQBIAAoAvAtIAAoAvQtRhogAEEANgJkCyAAIAAoAmgiA0ECIANBAkkbNgKELiABQQRGBEAgACAAKAJYIgFBAE4EfyAAKAJIIAFqBUEACyADIAFrQQEQDyAAIAAoAmg2AlggACgCABAKQQNBAiAAKAIAKAIQGw8LIAAoAvAtBEBBACECIAAgACgCWCIBQQBOBH8gACgCSCABagVBAAsgAyABa0EAEA8gACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQRQ0BC0EBIQILIAIL2BACEH8BfiAAKAKIAUEFSCEOA0ACQAJ/AkACQAJAAn8CQAJAIAAoAjxBhQJNBEAgABAvIAAoAjwiA0GFAksNASABDQFBAA8LIA4NASAIIQMgBSEHIAohDSAGQf//A3FFDQEMAwsgA0UNA0EAIANBBEkNARoLIAAgACgCaEH4gAEoAgARAgALIQZBASECQQAhDSAAKAJoIgOtIAatfSISQgFTDQIgEiAAKAIwQYYCa61VDQIgBkUNAiAAIAZB8IABKAIAEQIAIgZBASAGQfz/A3EbQQEgACgCbCINQf//A3EgA0H//wNxSRshBiADIQcLAkAgACgCPCIEIAZB//8DcSICQQRqTQ0AIAZB//8DcUEDTQRAQQEgBkEBa0H//wNxIglFDQQaIANB//8DcSIEIAdBAWpB//8DcSIDSw0BIAAgAyAJIAQgA2tBAWogAyAJaiAESxtB7IABKAIAEQUADAELAkAgACgCeEEEdCACSQ0AIARBBEkNACAGQQFrQf//A3EiDCAHQQFqQf//A3EiBGohCSAEIANB//8DcSIDTwRAQeyAASgCACELIAMgCUkEQCAAIAQgDCALEQUADAMLIAAgBCADIARrQQFqIAsRBQAMAgsgAyAJTw0BIAAgAyAJIANrQeyAASgCABEFAAwBCyAGIAdqQf//A3EiA0UNACAAIANBAWtB+IABKAIAEQIAGgsgBgwCCyAAIAAoAmgiBUECIAVBAkkbNgKELiABQQRGBEBBACEDIAAgACgCWCIBQQBOBH8gACgCSCABagVBAAsgBSABa0EBEA8gACAAKAJoNgJYIAAoAgAQCkEDQQIgACgCACgCEBsPCyAAKALwLQRAQQAhAkEAIQMgACAAKAJYIgFBAE4EfyAAKAJIIAFqBUEACyAFIAFrQQAQDyAAIAAoAmg2AlggACgCABAKIAAoAgAoAhBFDQMLQQEhAgwCCyADIQdBAQshBEEAIQYCQCAODQAgACgCPEGHAkkNACACIAdB//8DcSIQaiIDIAAoAkRBhgJrTw0AIAAgAzYCaEEAIQogACADQfiAASgCABECACEFAn8CQCAAKAJoIgitIAWtfSISQgFTDQAgEiAAKAIwQYYCa61VDQAgBUUNACAAIAVB8IABKAIAEQIAIQYgAC8BbCIKIAhB//8DcSIFTw0AIAZB//8DcSIDQQRJDQAgCCAEQf//A3FBAkkNARogCCACIApBAWpLDQEaIAggAiAFQQFqSw0BGiAIIAAoAkgiCSACa0EBaiICIApqLQAAIAIgBWotAABHDQEaIAggCUEBayICIApqIgwtAAAgAiAFaiIPLQAARw0BGiAIIAUgCCAAKAIwQYYCayICa0H//wNxQQAgAiAFSRsiEU0NARogCCADQf8BSw0BGiAGIQUgCCECIAQhAyAIIAoiCUECSQ0BGgNAAkAgA0EBayEDIAVBAWohCyAJQQFrIQkgAkEBayECIAxBAWsiDC0AACAPQQFrIg8tAABHDQAgA0H//wNxRQ0AIBEgAkH//wNxTw0AIAVB//8DcUH+AUsNACALIQUgCUH//wNxQQFLDQELCyAIIANB//8DcUEBSw0BGiAIIAtB//8DcUECRg0BGiAIQQFqIQggAyEEIAshBiAJIQogAgwBC0EBIQYgCAshBSAAIBA2AmgLAn8gBEH//wNxIgNBA00EQCAEQf//A3EiA0UNAyAAKAJIIAdB//8DcWotAAAhBCAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qQQA6AAAgACAAKALwLSICQQFqNgLwLSACIAAoAuwtakEAOgAAIAAgACgC8C0iAkEBajYC8C0gAiAAKALsLWogBDoAACAAIARBAnRqIgRB5AFqIAQvAeQBQQFqOwEAIAAgACgCPEEBazYCPCAAKALwLSICIAAoAvQtRiIEIANBAUYNARogACgCSCAHQQFqQf//A3FqLQAAIQkgACACQQFqNgLwLSAAKALsLSACakEAOgAAIAAgACgC8C0iAkEBajYC8C0gAiAAKALsLWpBADoAACAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qIAk6AAAgACAJQQJ0aiICQeQBaiACLwHkAUEBajsBACAAIAAoAjxBAWs2AjwgBCAAKALwLSICIAAoAvQtRmoiBCADQQJGDQEaIAAoAkggB0ECakH//wNxai0AACEHIAAgAkEBajYC8C0gACgC7C0gAmpBADoAACAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qQQA6AAAgACAAKALwLSICQQFqNgLwLSACIAAoAuwtaiAHOgAAIAAgB0ECdGoiB0HkAWogBy8B5AFBAWo7AQAgACAAKAI8QQFrNgI8IAQgACgC8C0gACgC9C1GagwBCyAAIAAoAvAtIgJBAWo2AvAtIAIgACgC7C1qIAdB//8DcSANQf//A3FrIgc6AAAgACAAKALwLSICQQFqNgLwLSACIAAoAuwtaiAHQQh2OgAAIAAgACgC8C0iAkEBajYC8C0gAiAAKALsLWogBEEDazoAACAAIAAoAoAuQQFqNgKALiADQf3OAGotAABBAnQgAGpB6AlqIgQgBC8BAEEBajsBACAAIAdBAWsiBCAEQQd2QYACaiAEQYACSRtBgMsAai0AAEECdGpB2BNqIgQgBC8BAEEBajsBACAAIAAoAjwgA2s2AjwgACgC8C0gACgC9C1GCyEEIAAgACgCaCADaiIHNgJoIARFDQFBACECQQAhBCAAIAAoAlgiA0EATgR/IAAoAkggA2oFQQALIAcgA2tBABAPIAAgACgCaDYCWCAAKAIAEAogACgCACgCEA0BCwsgAgu0BwIEfwF+AkADQAJAAkACQAJAIAAoAjxBhQJNBEAgABAvAkAgACgCPCICQYUCSw0AIAENAEEADwsgAkUNBCACQQRJDQELIAAgACgCaEH4gAEoAgARAgAhAiAANQJoIAKtfSIGQgFTDQAgBiAAKAIwQYYCa61VDQAgAkUNACAAIAJB8IABKAIAEQIAIgJBBEkNACAAIAAoAvAtIgNBAWo2AvAtIAMgACgC7C1qIAAoAmggACgCbGsiAzoAACAAIAAoAvAtIgRBAWo2AvAtIAQgACgC7C1qIANBCHY6AAAgACAAKALwLSIEQQFqNgLwLSAEIAAoAuwtaiACQQNrOgAAIAAgACgCgC5BAWo2AoAuIAJB/c4Aai0AAEECdCAAakHoCWoiBCAELwEAQQFqOwEAIAAgA0EBayIDIANBB3ZBgAJqIANBgAJJG0GAywBqLQAAQQJ0akHYE2oiAyADLwEAQQFqOwEAIAAgACgCPCACayIFNgI8IAAoAvQtIQMgACgC8C0hBCAAKAJ4IAJPQQAgBUEDSxsNASAAIAAoAmggAmoiAjYCaCAAIAJBAWtB+IABKAIAEQIAGiADIARHDQQMAgsgACgCSCAAKAJoai0AACECIAAgACgC8C0iA0EBajYC8C0gAyAAKALsLWpBADoAACAAIAAoAvAtIgNBAWo2AvAtIAMgACgC7C1qQQA6AAAgACAAKALwLSIDQQFqNgLwLSADIAAoAuwtaiACOgAAIAAgAkECdGoiAkHkAWogAi8B5AFBAWo7AQAgACAAKAI8QQFrNgI8IAAgACgCaEEBajYCaCAAKALwLSAAKAL0LUcNAwwBCyAAIAAoAmhBAWoiBTYCaCAAIAUgAkEBayICQeyAASgCABEFACAAIAAoAmggAmo2AmggAyAERw0CC0EAIQNBACECIAAgACgCWCIEQQBOBH8gACgCSCAEagVBAAsgACgCaCAEa0EAEA8gACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQDQEMAgsLIAAgACgCaCIEQQIgBEECSRs2AoQuIAFBBEYEQEEAIQIgACAAKAJYIgFBAE4EfyAAKAJIIAFqBUEACyAEIAFrQQEQDyAAIAAoAmg2AlggACgCABAKQQNBAiAAKAIAKAIQGw8LIAAoAvAtBEBBACEDQQAhAiAAIAAoAlgiAUEATgR/IAAoAkggAWoFQQALIAQgAWtBABAPIAAgACgCaDYCWCAAKAIAEAogACgCACgCEEUNAQtBASEDCyADC80JAgl/An4gAUEERiEGIAAoAiwhAgJAAkACQCABQQRGBEAgAkECRg0CIAIEQCAAQQAQUCAAQQA2AiwgACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQRQ0ECyAAIAYQTyAAQQI2AiwMAQsgAg0BIAAoAjxFDQEgACAGEE8gAEEBNgIsCyAAIAAoAmg2AlgLQQJBASABQQRGGyEKA0ACQCAAKAIMIAAoAhBBCGpLDQAgACgCABAKIAAoAgAiAigCEA0AQQAhAyABQQRHDQIgAigCBA0CIAAoAqAuDQIgACgCLEVBAXQPCwJAAkAgACgCPEGFAk0EQCAAEC8CQCAAKAI8IgNBhQJLDQAgAQ0AQQAPCyADRQ0CIAAoAiwEfyADBSAAIAYQTyAAIAo2AiwgACAAKAJoNgJYIAAoAjwLQQRJDQELIAAgACgCaEH4gAEoAgARAgAhBCAAKAJoIgKtIAStfSILQgFTDQAgCyAAKAIwQYYCa61VDQAgAiAAKAJIIgJqIgMvAAAgAiAEaiICLwAARw0AIANBAmogAkECakHQgAEoAgARAgBBAmoiA0EESQ0AIAAoAjwiAiADIAIgA0kbIgJBggIgAkGCAkkbIgdB/c4Aai0AACICQQJ0IgRBhMkAajMBACEMIARBhskAai8BACEDIAJBCGtBE00EQCAHQQNrIARBgNEAaigCAGutIAOthiAMhCEMIARBsNYAaigCACADaiEDCyAAKAKgLiEFIAMgC6dBAWsiCCAIQQd2QYACaiAIQYACSRtBgMsAai0AACICQQJ0IglBgsoAai8BAGohBCAJQYDKAGozAQAgA62GIAyEIQsgACkDmC4hDAJAIAUgAkEESQR/IAQFIAggCUGA0gBqKAIAa60gBK2GIAuEIQsgCUGw1wBqKAIAIARqCyICaiIDQT9NBEAgCyAFrYYgDIQhCwwBCyAFQcAARgRAIAAoAgQgACgCEGogDDcAACAAIAAoAhBBCGo2AhAgAiEDDAELIAAoAgQgACgCEGogCyAFrYYgDIQ3AAAgACAAKAIQQQhqNgIQIANBQGohAyALQcAAIAVrrYghCwsgACALNwOYLiAAIAM2AqAuIAAgACgCPCAHazYCPCAAIAAoAmggB2o2AmgMAgsgACgCSCAAKAJoai0AAEECdCICQYDBAGozAQAhCyAAKQOYLiEMAkAgACgCoC4iBCACQYLBAGovAQAiAmoiA0E/TQRAIAsgBK2GIAyEIQsMAQsgBEHAAEYEQCAAKAIEIAAoAhBqIAw3AAAgACAAKAIQQQhqNgIQIAIhAwwBCyAAKAIEIAAoAhBqIAsgBK2GIAyENwAAIAAgACgCEEEIajYCECADQUBqIQMgC0HAACAEa62IIQsLIAAgCzcDmC4gACADNgKgLiAAIAAoAmhBAWo2AmggACAAKAI8QQFrNgI8DAELCyAAIAAoAmgiAkECIAJBAkkbNgKELiAAKAIsIQIgAUEERgRAAkAgAkUNACAAQQEQUCAAQQA2AiwgACAAKAJoNgJYIAAoAgAQCiAAKAIAKAIQDQBBAg8LQQMPCyACBEBBACEDIABBABBQIABBADYCLCAAIAAoAmg2AlggACgCABAKIAAoAgAoAhBFDQELQQEhAwsgAwucAQEFfyACQQFOBEAgAiAAKAJIIAFqIgNqQQJqIQQgA0ECaiECIAAoAlQhAyAAKAJQIQUDQCAAIAItAAAgA0EFdEHg/wFxcyIDNgJUIAUgA0EBdGoiBi8BACIHIAFB//8DcUcEQCAAKAJMIAEgACgCOHFB//8DcUEBdGogBzsBACAGIAE7AQALIAFBAWohASACQQFqIgIgBEkNAAsLC1sBAn8gACAAKAJIIAFqLQACIAAoAlRBBXRB4P8BcXMiAjYCVCABIAAoAlAgAkEBdGoiAy8BACICRwRAIAAoAkwgACgCOCABcUEBdGogAjsBACADIAE7AQALIAILEwAgAUEFdEHg/wFxIAJB/wFxcwsGACABEAYLLwAjAEEQayIAJAAgAEEMaiABIAJsEIwBIQEgACgCDCECIABBEGokAEEAIAIgARsLjAoCAX4CfyMAQfAAayIGJAACQAJAAkACQAJAAkACQAJAIAQODwABBwIEBQYGBgYGBgYGAwYLQn8hBQJAIAAgBkHkAGpCDBARIgNCf1cEQCABBEAgASAAKAIMNgIAIAEgACgCEDYCBAsMAQsCQCADQgxSBEAgAQRAIAFBADYCBCABQRE2AgALDAELIAEoAhQhBEEAIQJCASEFA0AgBkHkAGogAmoiAiACLQAAIARB/f8DcSICQQJyIAJBA3NsQQh2cyICOgAAIAYgAjoAKCABAn8gASgCDEF/cyECQQAgBkEoaiIERQ0AGiACIARBAUHUgAEoAgARAAALQX9zIgI2AgwgASABKAIQIAJB/wFxakGFiKLAAGxBAWoiAjYCECAGIAJBGHY6ACggAQJ/IAEoAhRBf3MhAkEAIAZBKGoiBEUNABogAiAEQQFB1IABKAIAEQAAC0F/cyIENgIUIAVCDFIEQCAFpyECIAVCAXwhBQwBCwtCACEFIAAgBkEoahAhQQBIDQEgBigCUCEAIwBBEGsiAiQAIAIgADYCDCAGAn8gAkEMahCNASIARQRAIAZBITsBJEEADAELAn8gACgCFCIEQdAATgRAIARBCXQMAQsgAEHQADYCFEGAwAILIQQgBiAAKAIMIAQgACgCEEEFdGpqQaDAAWo7ASQgACgCBEEFdCAAKAIIQQt0aiAAKAIAQQF2ags7ASYgAkEQaiQAIAYtAG8iACAGLQBXRg0BIAYtACcgAEYNASABBEAgAUEANgIEIAFBGzYCAAsLQn8hBQsgBkHwAGokACAFDwtCfyEFIAAgAiADEBEiA0J/VwRAIAEEQCABIAAoAgw2AgAgASAAKAIQNgIECwwGCyMAQRBrIgAkAAJAIANQDQAgASgCFCEEIAJFBEBCASEFA0AgACACIAdqLQAAIARB/f8DcSIEQQJyIARBA3NsQQh2czoADyABAn8gASgCDEF/cyEEQQAgAEEPaiIHRQ0AGiAEIAdBAUHUgAEoAgARAAALQX9zIgQ2AgwgASABKAIQIARB/wFxakGFiKLAAGxBAWoiBDYCECAAIARBGHY6AA8gAQJ/IAEoAhRBf3MhBEEAIABBD2oiB0UNABogBCAHQQFB1IABKAIAEQAAC0F/cyIENgIUIAMgBVENAiAFpyEHIAVCAXwhBQwACwALQgEhBQNAIAAgAiAHai0AACAEQf3/A3EiBEECciAEQQNzbEEIdnMiBDoADyACIAdqIAQ6AAAgAQJ/IAEoAgxBf3MhBEEAIABBD2oiB0UNABogBCAHQQFB1IABKAIAEQAAC0F/cyIENgIMIAEgASgCECAEQf8BcWpBhYiiwABsQQFqIgQ2AhAgACAEQRh2OgAPIAECfyABKAIUQX9zIQRBACAAQQ9qIgdFDQAaIAQgB0EBQdSAASgCABEAAAtBf3MiBDYCFCADIAVRDQEgBachByAFQgF8IQUMAAsACyAAQRBqJAAgAyEFDAULIAJBADsBMiACIAIpAwAiA0KAAYQ3AwAgA0IIg1ANBCACIAIpAyBCDH03AyAMBAsgBkKFgICAcDcDECAGQoOAgIDAADcDCCAGQoGAgIAgNwMAQQAgBhAkIQUMAwsgA0IIWgR+IAIgASgCADYCACACIAEoAgQ2AgRCCAVCfwshBQwCCyABEAYMAQsgAQRAIAFBADYCBCABQRI2AgALQn8hBQsgBkHwAGokACAFC60DAgJ/An4jAEEQayIGJAACQAJAAkAgBEUNACABRQ0AIAJBAUYNAQtBACEDIABBCGoiAARAIABBADYCBCAAQRI2AgALDAELIANBAXEEQEEAIQMgAEEIaiIABEAgAEEANgIEIABBGDYCAAsMAQtBGBAJIgVFBEBBACEDIABBCGoiAARAIABBADYCBCAAQQ42AgALDAELIAVBADYCCCAFQgA3AgAgBUGQ8dmiAzYCFCAFQvis0ZGR8dmiIzcCDAJAIAQQIiICRQ0AIAKtIQhBACEDQYfTru5+IQJCASEHA0AgBiADIARqLQAAOgAPIAUgBkEPaiIDBH8gAiADQQFB1IABKAIAEQAABUEAC0F/cyICNgIMIAUgBSgCECACQf8BcWpBhYiiwABsQQFqIgI2AhAgBiACQRh2OgAPIAUCfyAFKAIUQX9zIQJBACAGQQ9qIgNFDQAaIAIgA0EBQdSAASgCABEAAAtBf3M2AhQgByAIUQ0BIAUoAgxBf3MhAiAHpyEDIAdCAXwhBwwACwALIAAgAUElIAUQQiIDDQAgBRAGQQAhAwsgBkEQaiQAIAMLnRoCBn4FfyMAQdAAayILJAACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCADDhQFBhULAwQJDgACCBAKDw0HEQERDBELAkBByAAQCSIBBEAgAUIANwMAIAFCADcDMCABQQA2AiggAUIANwMgIAFCADcDGCABQgA3AxAgAUIANwMIIAFCADcDOCABQQgQCSIDNgIEIAMNASABEAYgAARAIABBADYCBCAAQQ42AgALCyAAQQA2AhQMFAsgA0IANwMAIAAgATYCFCABQUBrQgA3AwAgAUIANwM4DBQLAkACQCACUARAQcgAEAkiA0UNFCADQgA3AwAgA0IANwMwIANBADYCKCADQgA3AyAgA0IANwMYIANCADcDECADQgA3AwggA0IANwM4IANBCBAJIgE2AgQgAQ0BIAMQBiAABEAgAEEANgIEIABBDjYCAAsMFAsgAiAAKAIQIgEpAzBWBEAgAARAIABBADYCBCAAQRI2AgALDBQLIAEoAigEQCAABEAgAEEANgIEIABBHTYCAAsMFAsgASgCBCEDAkAgASkDCCIGQgF9IgdQDQADQAJAIAIgAyAHIAR9QgGIIAR8IgWnQQN0aikDAFQEQCAFQgF9IQcMAQsgBSAGUQRAIAYhBQwDCyADIAVCAXwiBKdBA3RqKQMAIAJWDQILIAQhBSAEIAdUDQALCwJAIAIgAyAFpyIKQQN0aikDAH0iBFBFBEAgASgCACIDIApBBHRqKQMIIQcMAQsgASgCACIDIAVCAX0iBadBBHRqKQMIIgchBAsgAiAHIAR9VARAIAAEQCAAQQA2AgQgAEEcNgIACwwUCyADIAVCAXwiBUEAIAAQiQEiA0UNEyADKAIAIAMoAggiCkEEdGpBCGsgBDcDACADKAIEIApBA3RqIAI3AwAgAyACNwMwIAMgASkDGCIGIAMpAwgiBEIBfSIHIAYgB1QbNwMYIAEgAzYCKCADIAE2AiggASAENwMgIAMgBTcDIAwBCyABQgA3AwALIAAgAzYCFCADIAQ3A0AgAyACNwM4QgAhBAwTCyAAKAIQIgEEQAJAIAEoAigiA0UEQCABKQMYIQIMAQsgA0EANgIoIAEoAihCADcDICABIAEpAxgiAiABKQMgIgUgAiAFVhsiAjcDGAsgASkDCCACVgRAA0AgASgCACACp0EEdGooAgAQBiACQgF8IgIgASkDCFQNAAsLIAEoAgAQBiABKAIEEAYgARAGCyAAKAIUIQEgAEEANgIUIAAgATYCEAwSCyACQghaBH4gASAAKAIANgIAIAEgACgCBDYCBEIIBUJ/CyEEDBELIAAoAhAiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKnQQR0aigCABAGIAJCAXwiAiABKQMIVA0ACwsgASgCABAGIAEoAgQQBiABEAYLIAAoAhQiAQRAAkAgASgCKCIDRQRAIAEpAxghAgwBCyADQQA2AiggASgCKEIANwMgIAEgASkDGCICIAEpAyAiBSACIAVWGyICNwMYCyABKQMIIAJWBEADQCABKAIAIAKnQQR0aigCABAGIAJCAXwiAiABKQMIVA0ACwsgASgCABAGIAEoAgQQBiABEAYLIAAQBgwQCyAAKAIQIgBCADcDOCAAQUBrQgA3AwAMDwsgAkJ/VwRAIAAEQCAAQQA2AgQgAEESNgIACwwOCyACIAAoAhAiAykDMCADKQM4IgZ9IgUgAiAFVBsiBVANDiABIAMpA0AiB6ciAEEEdCIBIAMoAgBqIgooAgAgBiADKAIEIABBA3RqKQMAfSICp2ogBSAKKQMIIAJ9IgYgBSAGVBsiBKcQByEKIAcgBCADKAIAIgAgAWopAwggAn1RrXwhAiAFIAZWBEADQCAKIASnaiAAIAKnQQR0IgFqIgAoAgAgBSAEfSIGIAApAwgiByAGIAdUGyIGpxAHGiACIAYgAygCACIAIAFqKQMIUa18IQIgBSAEIAZ8IgRWDQALCyADIAI3A0AgAyADKQM4IAR8NwM4DA4LQn8hBEHIABAJIgNFDQ0gA0IANwMAIANCADcDMCADQQA2AiggA0IANwMgIANCADcDGCADQgA3AxAgA0IANwMIIANCADcDOCADQQgQCSIBNgIEIAFFBEAgAxAGIAAEQCAAQQA2AgQgAEEONgIACwwOCyABQgA3AwAgACgCECIBBEACQCABKAIoIgpFBEAgASkDGCEEDAELIApBADYCKCABKAIoQgA3AyAgASABKQMYIgIgASkDICIFIAIgBVYbIgQ3AxgLIAEpAwggBFYEQANAIAEoAgAgBKdBBHRqKAIAEAYgBEIBfCIEIAEpAwhUDQALCyABKAIAEAYgASgCBBAGIAEQBgsgACADNgIQQgAhBAwNCyAAKAIUIgEEQAJAIAEoAigiA0UEQCABKQMYIQIMAQsgA0EANgIoIAEoAihCADcDICABIAEpAxgiAiABKQMgIgUgAiAFVhsiAjcDGAsgASkDCCACVgRAA0AgASgCACACp0EEdGooAgAQBiACQgF8IgIgASkDCFQNAAsLIAEoAgAQBiABKAIEEAYgARAGCyAAQQA2AhQMDAsgACgCECIDKQM4IAMpAzAgASACIAAQRCIHQgBTDQogAyAHNwM4AkAgAykDCCIGQgF9IgJQDQAgAygCBCEAA0ACQCAHIAAgAiAEfUIBiCAEfCIFp0EDdGopAwBUBEAgBUIBfSECDAELIAUgBlEEQCAGIQUMAwsgACAFQgF8IgSnQQN0aikDACAHVg0CCyAEIQUgAiAEVg0ACwsgAyAFNwNAQgAhBAwLCyAAKAIUIgMpAzggAykDMCABIAIgABBEIgdCAFMNCSADIAc3AzgCQCADKQMIIgZCAX0iAlANACADKAIEIQADQAJAIAcgACACIAR9QgGIIAR8IgWnQQN0aikDAFQEQCAFQgF9IQIMAQsgBSAGUQRAIAYhBQwDCyAAIAVCAXwiBKdBA3RqKQMAIAdWDQILIAQhBSACIARWDQALCyADIAU3A0BCACEEDAoLIAJCN1gEQCAABEAgAEEANgIEIABBEjYCAAsMCQsgARAqIAEgACgCDDYCKCAAKAIQKQMwIQIgAUEANgIwIAEgAjcDICABIAI3AxggAULcATcDAEI4IQQMCQsgACABKAIANgIMDAgLIAtBQGtBfzYCACALQouAgICwAjcDOCALQoyAgIDQATcDMCALQo+AgICgATcDKCALQpGAgICQATcDICALQoeAgICAATcDGCALQoWAgIDgADcDECALQoOAgIDAADcDCCALQoGAgIAgNwMAQQAgCxAkIQQMBwsgACgCECkDOCIEQn9VDQYgAARAIABBPTYCBCAAQR42AgALDAULIAAoAhQpAzgiBEJ/VQ0FIAAEQCAAQT02AgQgAEEeNgIACwwEC0J/IQQgAkJ/VwRAIAAEQCAAQQA2AgQgAEESNgIACwwFCyACIAAoAhQiAykDOCACfCIFQv//A3wiBFYEQCAABEAgAEEANgIEIABBEjYCAAsMBAsCQCAFIAMoAgQiCiADKQMIIganQQN0aikDACIHWA0AAkAgBCAHfUIQiCAGfCIIIAMpAxAiCVgNAEIQIAkgCVAbIQUDQCAFIgRCAYYhBSAEIAhUDQALIAQgCVQNACADKAIAIASnIgpBBHQQNCIMRQ0DIAMgDDYCACADKAIEIApBA3RBCGoQNCIKRQ0DIAMgBDcDECADIAo2AgQgAykDCCEGCyAGIAhaDQAgAygCACEMA0AgDCAGp0EEdGoiDUGAgAQQCSIONgIAIA5FBEAgAARAIABBADYCBCAAQQ42AgALDAYLIA1CgIAENwMIIAMgBkIBfCIFNwMIIAogBadBA3RqIAdCgIAEfCIHNwMAIAMpAwgiBiAIVA0ACwsgAykDQCEFIAMpAzghBwJAIAJQBEBCACEEDAELIAWnIgBBBHQiDCADKAIAaiINKAIAIAcgCiAAQQN0aikDAH0iBqdqIAEgAiANKQMIIAZ9IgcgAiAHVBsiBKcQBxogBSAEIAMoAgAiACAMaikDCCAGfVGtfCEFIAIgB1YEQANAIAAgBadBBHQiCmoiACgCACABIASnaiACIAR9IgYgACkDCCIHIAYgB1QbIganEAcaIAUgBiADKAIAIgAgCmopAwhRrXwhBSAEIAZ8IgQgAlQNAAsLIAMpAzghBwsgAyAFNwNAIAMgBCAHfCICNwM4IAIgAykDMFgNBCADIAI3AzAMBAsgAARAIABBADYCBCAAQRw2AgALDAILIAAEQCAAQQA2AgQgAEEONgIACyAABEAgAEEANgIEIABBDjYCAAsMAQsgAEEANgIUC0J/IQQLIAtB0ABqJAAgBAtIAQF/IABCADcCBCAAIAE2AgACQCABQQBIDQBBsBMoAgAgAUwNACABQQJ0QcATaigCAEEBRw0AQYSEASgCACECCyAAIAI2AgQLDgAgAkGx893xeWxBEHYLvgEAIwBBEGsiACQAIABBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAQRBqJAAgAkGx893xeWxBEHYLuQEBAX8jAEEQayIBJAAgAUEAOgAIQYCBAUECNgIAQfyAAUEDNgIAQfiAAUEENgIAQfSAAUEFNgIAQfCAAUEGNgIAQeyAAUEHNgIAQeiAAUEINgIAQeSAAUEJNgIAQeCAAUEKNgIAQdyAAUELNgIAQdiAAUEMNgIAQdSAAUENNgIAQdCAAUEONgIAQcyAAUEPNgIAQciAAUEQNgIAQcSAAUERNgIAQcCAAUESNgIAIAAQjgEgAUEQaiQAC78BAQF/IwBBEGsiAiQAIAJBADoACEGAgQFBAjYCAEH8gAFBAzYCAEH4gAFBBDYCAEH0gAFBBTYCAEHwgAFBBjYCAEHsgAFBBzYCAEHogAFBCDYCAEHkgAFBCTYCAEHggAFBCjYCAEHcgAFBCzYCAEHYgAFBDDYCAEHUgAFBDTYCAEHQgAFBDjYCAEHMgAFBDzYCAEHIgAFBEDYCAEHEgAFBETYCAEHAgAFBEjYCACAAIAEQkAEhACACQRBqJAAgAAu+AQEBfyMAQRBrIgIkACACQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABEFohACACQRBqJAAgAAu+AQEBfyMAQRBrIgIkACACQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABEFshACACQRBqJAAgAAu9AQEBfyMAQRBrIgMkACADQQA6AAhBgIEBQQI2AgBB/IABQQM2AgBB+IABQQQ2AgBB9IABQQU2AgBB8IABQQY2AgBB7IABQQc2AgBB6IABQQg2AgBB5IABQQk2AgBB4IABQQo2AgBB3IABQQs2AgBB2IABQQw2AgBB1IABQQ02AgBB0IABQQ42AgBBzIABQQ82AgBByIABQRA2AgBBxIABQRE2AgBBwIABQRI2AgAgACABIAIQjwEgA0EQaiQAC4UBAgR/AX4jAEEQayIBJAACQCAAKQMwUARADAELA0ACQCAAIAVBACABQQ9qIAFBCGoQZiIEQX9GDQAgAS0AD0EDRw0AIAIgASgCCEGAgICAf3FBgICAgHpGaiECC0F/IQMgBEF/Rg0BIAIhAyAFQgF8IgUgACkDMFQNAAsLIAFBEGokACADCwuMdSUAQYAIC7ELaW5zdWZmaWNpZW50IG1lbW9yeQBuZWVkIGRpY3Rpb25hcnkALSsgICAwWDB4AFppcCBhcmNoaXZlIGluY29uc2lzdGVudABJbnZhbGlkIGFyZ3VtZW50AGludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRlZABPcGVyYXRpb24gbm90IHN1cHBvcnRlZABFbmNyeXB0aW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAENvbXByZXNzaW9uIG1ldGhvZCBub3Qgc3VwcG9ydGVkAEVudHJ5IGhhcyBiZWVuIGRlbGV0ZWQAQ29udGFpbmluZyB6aXAgYXJjaGl2ZSB3YXMgY2xvc2VkAENsb3NpbmcgemlwIGFyY2hpdmUgZmFpbGVkAFJlbmFtaW5nIHRlbXBvcmFyeSBmaWxlIGZhaWxlZABFbnRyeSBoYXMgYmVlbiBjaGFuZ2VkAE5vIHBhc3N3b3JkIHByb3ZpZGVkAFdyb25nIHBhc3N3b3JkIHByb3ZpZGVkAFVua25vd24gZXJyb3IgJWQAQUUAKG51bGwpADogAFBLBgcAUEsGBgBQSwUGAFBLAwQAUEsBAgAAAAA/BQAAwAcAAJMIAAB4CAAAbwUAAJEFAAB6BQAAsgUAAFYIAAAbBwAA1gQAAAsHAADqBgAAnAUAAMgGAACyCAAAHggAACgHAABHBAAAoAYAAGAFAAAuBAAAPgcAAD8IAAD+BwAAjgYAAMkIAADeCAAA5gcAALIGAABVBQAAqAcAACAAQcgTCxEBAAAAAQAAAAEAAAABAAAAAQBB7BMLCQEAAAABAAAAAgBBmBQLAQEAQbgUCwEBAEHSFAukLDomOyZlJmYmYyZgJiIg2CXLJdklQiZAJmomayY8JrolxCWVITwgtgCnAKwlqCGRIZMhkiGQIR8ilCGyJbwlIAAhACIAIwAkACUAJgAnACgAKQAqACsALAAtAC4ALwAwADEAMgAzADQANQA2ADcAOAA5ADoAOwA8AD0APgA/AEAAQQBCAEMARABFAEYARwBIAEkASgBLAEwATQBOAE8AUABRAFIAUwBUAFUAVgBXAFgAWQBaAFsAXABdAF4AXwBgAGEAYgBjAGQAZQBmAGcAaABpAGoAawBsAG0AbgBvAHAAcQByAHMAdAB1AHYAdwB4AHkAegB7AHwAfQB+AAIjxwD8AOkA4gDkAOAA5QDnAOoA6wDoAO8A7gDsAMQAxQDJAOYAxgD0APYA8gD7APkA/wDWANwAogCjAKUApyCSAeEA7QDzAPoA8QDRAKoAugC/ABAjrAC9ALwAoQCrALsAkSWSJZMlAiUkJWElYiVWJVUlYyVRJVclXSVcJVslECUUJTQlLCUcJQAlPCVeJV8lWiVUJWklZiVgJVAlbCVnJWglZCVlJVklWCVSJVMlayVqJRglDCWIJYQljCWQJYAlsQPfAJMDwAOjA8MDtQDEA6YDmAOpA7QDHiLGA7UDKSJhIrEAZSJkIiAjISP3AEgisAAZIrcAGiJ/ILIAoCWgAAAAAACWMAd3LGEO7rpRCZkZxG0Hj/RqcDWlY+mjlWSeMojbDqS43Hke6dXgiNnSlytMtgm9fLF+By2455Edv5BkELcd8iCwakhxufPeQb6EfdTaGuvk3W1RtdT0x4XTg1aYbBPAqGtkevli/ezJZYpPXAEU2WwGY2M9D/r1DQiNyCBuO14QaUzkQWDVcnFnotHkAzxH1ARL/YUN0mu1CqX6qLU1bJiyQtbJu9tA+bys42zYMnVc30XPDdbcWT3Rq6ww2SY6AN5RgFHXyBZh0L+19LQhI8SzVpmVus8Ppb24nrgCKAiIBV+y2QzGJOkLsYd8by8RTGhYqx1hwT0tZraQQdx2BnHbAbwg0pgqENXviYWxcR+1tgal5L+fM9S46KLJB3g0+QAPjqgJlhiYDuG7DWp/LT1tCJdsZJEBXGPm9FFra2JhbBzYMGWFTgBi8u2VBmx7pQEbwfQIglfED/XG2bBlUOm3Euq4vot8iLn83x3dYkkt2hXzfNOMZUzU+1hhsk3OUbU6dAC8o+Iwu9RBpd9K15XYPW3E0aT79NbTaulpQ/zZbjRGiGet0Lhg2nMtBETlHQMzX0wKqsl8Dd08cQVQqkECJxAQC76GIAzJJbVoV7OFbyAJ1Ga5n+Rhzg753l6YydkpIpjQsLSo18cXPbNZgQ20LjtcvbetbLrAIIO47bazv5oM4rYDmtKxdDlH1eqvd9KdFSbbBIMW3HMSC2PjhDtklD5qbQ2oWmp6C88O5J3/CZMnrgAKsZ4HfUSTD/DSowiHaPIBHv7CBmldV2L3y2dlgHE2bBnnBmtudhvU/uAr04laetoQzErdZ2/fufn5776OQ763F9WOsGDoo9bWfpPRocTC2DhS8t9P8We70WdXvKbdBrU/SzaySNorDdhMGwqv9koDNmB6BEHD72DfVd9nqO+ObjF5vmlGjLNhyxqDZryg0m8lNuJoUpV3DMwDRwu7uRYCIi8mBVW+O7rFKAu9spJatCsEarNcp//XwjHP0LWLntksHa7eW7DCZJsm8mPsnKNqdQqTbQKpBgmcPzYO64VnB3ITVwAFgkq/lRR6uOKuK7F7OBu2DJuO0pINvtXlt+/cfCHf2wvU0tOGQuLU8fiz3Whug9ofzRa+gVsmufbhd7Bvd0e3GOZaCIhwag//yjsGZlwLARH/nmWPaa5i+NP/a2FFz2wWeOIKoO7SDddUgwROwrMDOWEmZ6f3FmDQTUdpSdt3bj5KatGu3FrW2WYL30DwO9g3U668qcWeu95/z7JH6f+1MBzyvb2KwrrKMJOzU6ajtCQFNtC6kwbXzSlX3lS/Z9kjLnpms7hKYcQCG2hdlCtvKje+C7ShjgzDG98FWo3vAi0AAAAARjtnZYx2zsrKTamvWevtTh/QiivVnSOEk6ZE4bLW25307bz4PqAVV3ibcjLrPTbTrQZRtmdL+BkhcJ98JavG4GOQoYWp3Qgq7+ZvT3xAK646e0zL8DblZLYNggGXfR190UZ6GBsL07ddMLTSzpbwM4itl1ZC4D75BNtZnAtQ/BpNa5t/hyYy0MEdVbVSuxFUFIB2Md7N356Y9rj7uYYnh/+9QOI18OlNc8uOKOBtysmmVq2sbBsEAyogY2Yu+zr6aMBdn6KN9DDktpNVdxDXtDErsNH7Zhl+vV1+G5wt4WfaFoYCEFsvrVZgSMjFxgwpg/1rTEmwwuMPi6WGFqD4NVCbn1Ca1jb/3O1Rmk9LFXsJcHIewz3bsYUGvNSkdiOo4k1EzSgA7WJuO4oH/Z3O5rumqYNx6wAsN9BnSTMLPtV1MFmwv33wH/lGl3pq4NObLNu0/uaWHVGgrXo0gd3lSMfmgi0NqyuCS5BM59g2CAaeDW9jVEDGzBJ7oakd8AQvW8tjSpGGyuXXva2ARBvpYQIgjgTIbSerjlZAzq8m37LpHbjXI1AReGVrdh32zTL8sPZVmXq7/DY8gJtTOFvCz35gpaq0LQwF8hZrYGGwL4Eni0jk7cbhS6v9hi6KjRlSzLZ+Nwb715hAwLD902b0HJVdk3lfEDrWGStdsyxA8Wtqe5YOoDY/oeYNWMR1qxwlM5B7QPnd0u+/5rWKnpYq9titTZMS4OQ8VNuDWcd9x7iBRqDdSwsJcg0wbhcJ6zeLT9BQ7oWd+UHDpp4kUADaxRY7vaDcdhQPmk1zars97Bb9BotzN0si3HFwRbni1gFYpO1mPW6gz5Iom6j3JxANcWErahSrZsO77V2k3n774D84wIda8o0u9bS2SZCVxtbs0/2xiRmwGCZfi39DzC07oooWXMdAW/VoBmCSDQK7y5FEgKz0js0FW8j2Yj5bUCbfHWtButcm6BWRHY9wsG0QDPZWd2k8G97GeiC5o+mG/UKvvZonZfAziCPLVO064AlefNtuO7aWx5TwraDxYwvkECUwg3XvfSraqUZNv4g20sPODbWmBEAcCUJ7e2zR3T+Nl+ZY6F2r8UcbkJYiH0vPvllwqNuTPQF01QZmEUagIvAAm0WVytbsOozti1+tnRQj66ZzRiHr2uln0L2M9Hb5bbJNngh4ADenPjtQwjGw9UR3i5IhvcY7jvv9XOtoWxgKLmB/b+Qt1sCiFrGlg2Yu2cVdSbwPEOATSSuHdtqNw5ectqTyVvsNXRDAajgUGzOkUiBUwZht/W7eVpoLTfDe6gvLuY/BhhAgh713RabN6Dng9o9cKrsm82yAQZb/JgV3uR1iEnNQy701a6zYAAAAAFiA4tfxBrR0qYZWo+INaOm6jYo+EwvcnUuLPkqFHaEJ3Z1D3nQbFX0sm/eqZxDJ4D+QKzeWFn2UzpafQwo7QhNSu6DE+z32Z6O9FLDoNir6sLbILRkwno5BsHxZjybjGtemAc1+IFduJqC1uW0ri/M1q2kknC0/h8St3VAUdoQmTPZm8eVwMFK98NKF9nvsz677DhgHfVi7X/26bJFrJS/J68f4YG2RWzjtc4xzZk3GK+avEYJg+bLa4BtlHk3GNUbNJOLvS3JBt8uQlvxArtykwEwLDUYaqFXG+H+bUGc8w9CF62pW00gy1jGfeV0P1SHd7QKIW7uh0NtZdijsCE1wbOqa2eq8OYFqXu7K4WCkkmGCczvn1NBjZzYHrfGpRPVxS5Nc9x0wBHf/50/8wa0XfCN6vvp12eZ6lw4i10peeleoidPR/iqLURz9wNoit5hawGAx3JbDaVx0FKfK61f/SgmAVsxfIw5MvfRFx4O+HUdhabTBN8rsQdUdPJqMa2QabrzNnDgflRzayN6X5IKGFwZVL5FQ9ncRsiG5hy1i4QfPtUiBmRYQAXvBW4pFiwMKp1yqjPH/8gwTKDahznhuISyvx6d6DJ8nmNvUrKaRjCxERiWqEuV9KvAys7xvces8jaZCutsFGjo50lGxB5gJMeVPoLez7Pg3UTtQ2BGaCFjzTaHepe75Xkc5stV5c+pVm6RD080HG1Mv0NXFsJONRVJEJMME53xD5jA3yNh6b0g6rcbObA6eTo7ZWuNTiQJjsV6r5ef982UFKrjuO2Dgbtm3SeiPFBFobcPf/vKAh34QVy74RvR2eKQjPfOaaWVzeL7M9S4dlHXMykSulbwcLndrtaghyO0owx+mo/1V/iMfglelSSEPJav2wbM0tZkz1mIwtYDBaDViFiO+XFx7Pr6L0rjoKIo4Cv9OldevFhU1eL+TY9vnE4EMrJi/RvQYXZFdngsyBR7p5cuIdqaTCJRxOo7C0mIOIAUphR5PcQX8mNiDqjuAA0jseDQZ1yC0+wCJMq2j0bJPdJo5cT7CuZPpaz/FSjO/J539KbjepalaCQwvDKpUr+59HyTQN0ekMuDuImRDtqKGlHIPW8Qqj7kTgwnvsNuJDWeQAjMtyILR+mEEh1k5hGWO9xL6za+SGBoGFE65XpSsbhUfkiRNn3Dz5BkmULyZxIdsQp3xNMJ/Jp1EKYXFxMtSjk/1GNbPF89/SUFsJ8mju+lfPPix394vGFmIjEDZalsLUlQRU9K2xvpU4GWi1AKyZnnf4j75PTWXf2uWz/+JQYR0twvc9FXcdXIDfy3y4ajjZH7ru+ScPBJiyp9K4ihIAWkWAlnp9NXwb6J2qO9AoQAAAADhtlLvg2vUBWLdhuoG16gL52H65IW8fA5kCi7hDK5RF+0YA/iPxYUSbnPX/Qp5+Rzrz6vziRItGWikf/YYXKMu+erxwZs3dyt6gSXEHosLJf89Wcqd4N8gfFaNzxTy8jn1RKDWl5kmPHYvdNMSJVoy85MI3ZFOjjdw+NzYMLhGXdEOFLKz05JYUmXAtzZv7lbX2by5tQQ6U1SyaLw8FhdK3aBFpb99w09ey5GgOsG/Qdt37a65qmtEWBw5qyjk5XPJUrecq48xdko5Y5kuM014z4Ufl61YmX1M7suSJEq0ZMX85ounIWBhRpcyjiKdHG/DK06AofbIakBAmoVgcI26gcbfVeMbWb8CrQtQZqclsYcRd17lzPG0BHqjW2ze3K2NaI5C77UIqA4DWkdqCXSmi78mSelioKMI1PJMeCwulJmafHv7R/qRGvGofn77hp+fTdRw/ZBSmhwmAHV0gn+DlTQtbPfpq4YWX/lpclXXiJPjhWfxPgONEIhRYlDIy+exfpkI06Mf4jIVTQ1WH2Pst6kxA9V0t+k0wuUGXGaa8L3QyB/fDU71PrscGlqxMvu7B2AU2drm/jhstBFIlGjJqSI6Jsv/vMwqSe4jTkPAwq/1ki3NKBTHLJ5GKEQ6Od6ljGsxx1Ht2ybnvzRC7ZHVo1vDOsGGRdAgMBc/geZrrmBQOUECjb+r4zvtRIcxw6Vmh5FKBFoXoOXsRU+NSDq5bP5oVg4j7rzvlbxTi5+SsmopwF0I9Ea36UIUWJm6yIB4DJpvGtEchftnTmqfbWCLftsyZBwGtI79sOZhlRSZl3Siy3gWf02S98kffZPDMZxydWNzEKjlmfEet3axXi3zUOh/HDI1+fbTg6sZt4mF+FY/1xc04lH91VQDEr3wfORcRi4LPpuo4d8t+g67J9TvWpGGADhMAOrZ+lIFqQKO3Ui03DIqaVrYy98IN6/VJtZOY3Q5LL7y080IoDylrN/KRBqNJSbHC8/HcVkgo3t3wULNJS4gEKPEwabxK+GW5hQAILT7Yv0yEYNLYP7nQU4fBvcc8GQqmhqFnMj17Ti3AwyO5exuU2MGj+Ux6evvHwgKWU3naITLDYkymeL5ykU6GHwX1XqhkT+bF8PQ/x3tMR6rv958djk0ncBr2/VkFC0U0kbCdg/AKJe5ksfzs7wmEgXuyXDYaCORbjrM0S6gSTCY8qZSRXRMs/Mmo9f5CEI2T1qtVJLcR7UkjqjdgPFePDajsV7rJVu/XXe021dZVTrhC7pYPI1QuYrfv8lyA2coxFGIShnXYquvhY3PpatsLhP5g0zOf2mteC2GxdxScCRqAJ9Gt4Z1pwHUmsML+nsivaiUQGAufqHWfJEAAAAAQ8umh8eQPNSEW5pTzycIc4zsrvQItzSnS3ySIJ5PEObdhLZhWd8sMhoUirVRaBiVEqO+Epb4JEHVM4LGfZlRFz5S95C6CW3D+cLLRLK+WWTxdf/jdS5lsDblwzfj1kHxoB3ndiRGfSVnjduiLPFJgm867wXrYXVWqKrT0foyoy65+QWpPaKf+n5pOX01Fatddt4N2vKFl4mxTjEOZH2zyCe2FU+j7Y8c4CYpm6tau7vokR08bMqHby8BIeiHq/I5xGBUvkA7zu0D8GhqSIz6SgtHXM2PHMaezNdgGRnk4t9aL0RY3nTeC52/eIzWw+qslQhMKxFT1nhSmHD/9GVGXbeu4Noz9XqJcD7cDjtCTi54ieip/NJy+r8Z1H1qKla7KeHwPK26am/ucczopQ1eyObG+E9inWIcIVbEm4n8F0rKN7HNTmwrng2njRlG2x85BRC5voFLI+3CgIVqF7MHrFR4oSvQIzt4k+id/9iUD9+bX6lYHwQzC1zPlYwOV+VzTZxD9MnH2aeKDH8gwXDtAIK7S4cG4NHURSt3U5AY9ZXT01MSV4jJQRRDb8ZfP/3mHPRbYZivwTLbZGe1c860ZDAFEuO0Xoiw95UuN7zpvBf/IhqQe3mAwziyJkTtgaSCrkoCBSoRmFZp2j7RIqas8WFtCnblNpAlpv02oujLjLqrACo9L1uwbmyQFukn7ITJZCciTuB8uB2jtx6adoScXDVPOtuxFKCI8t8GD7mjlC/6aDKofjOo+z34DnyVUt2t1pl7KlLC4XkRCUf+WnXV3hm+c1md5ekK3i5PjQsdzUtI1mvMzI3xn49GVxjEOsU4h/FjvwOq+exAYV9rEvkvlFEyiRPVaRNAlqK1x93eJ+eeFYFgGk4bM1mFvbSMtj9yz32Z9UsmA6YI7aUhQ5E3AQBakYaEAQvVx8qtUm9gfoMsq9gEqPBCV+s75NCgR3bw44zQd2fXSiQkHOyj8S9uZbLkyOI2v1KxdXT0Nj4IZhZ9w8CR+ZhawrpT/EUcrsrnX2VsYNs+9jOY9VC004nClJBCZBMUGf5AV9JYx4Lh2gHBKnyGRXHm1Qa6QFJNxtJyDg109YpW7qbJnUghYTeb8CL8PXemp6ck5WwBo64Qk4Pt2zUEaYCvVypLCdD/eIsWvLMtkTjot8J7IxFFMF+DZXOUJeL3z7+xtAQZNuacacmlV89OIQxVHWLH85opu2G6anDHPe4rXW6t4PvpeNN5LzsY36i/Q0X7/IjjfLf0cVz0P9fbcGRNiDOv6w+bBTje2M6eWVyVBAofXqKNVCIwrRfpliqTsgx50Hmq/gVKKDhGgY6/wtoU7IERsmvKbSBLiaaGzA39HJ9ONroYFAQAAJ0HAAAsCQAAhgUAAEgFAACnBQAAAAQAADIFAAC8BQAALAkAQYDBAAv3CQwACACMAAgATAAIAMwACAAsAAgArAAIAGwACADsAAgAHAAIAJwACABcAAgA3AAIADwACAC8AAgAfAAIAPwACAACAAgAggAIAEIACADCAAgAIgAIAKIACABiAAgA4gAIABIACACSAAgAUgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkAvwEJAH8ACQB/AQkA/wAJAP8BCQAAAAcAQAAHACAABwBgAAcAEAAHAFAABwAwAAcAcAAHAAgABwBIAAcAKAAHAGgABwAYAAcAWAAHADgABwB4AAcABAAHAEQABwAkAAcAZAAHABQABwBUAAcANAAHAHQABwADAAgAgwAIAEMACADDAAgAIwAIAKMACABjAAgA4wAIAAAABQAQAAUACAAFABgABQAEAAUAFAAFAAwABQAcAAUAAgAFABIABQAKAAUAGgAFAAYABQAWAAUADgAFAB4ABQABAAUAEQAFAAkABQAZAAUABQAFABUABQANAAUAHQAFAAMABQATAAUACwAFABsABQAHAAUAFwAFAEGBywAL7AYBAgMEBAUFBgYGBgcHBwcICAgICAgICAkJCQkJCQkJCgoKCgoKCgoKCgoKCgoKCgsLCwsLCwsLCwsLCwsLCwsMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8PDw8AABAREhITExQUFBQVFRUVFhYWFhYWFhYXFxcXFxcXFxgYGBgYGBgYGBgYGBgYGBgZGRkZGRkZGRkZGRkZGRkZGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwcHBwdHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dAAECAwQFBgcICAkJCgoLCwwMDAwNDQ0NDg4ODg8PDw8QEBAQEBAQEBEREREREREREhISEhISEhITExMTExMTExQUFBQUFBQUFBQUFBQUFBQVFRUVFRUVFRUVFRUVFRUVFhYWFhYWFhYWFhYWFhYWFhcXFxcXFxcXFxcXFxcXFxcYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhoaGhobGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbGxsbHAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAoAAAAMAAAADgAAABAAAAAUAAAAGAAAABwAAAAgAAAAKAAAADAAAAA4AAAAQAAAAFAAAABgAAAAcAAAAIAAAACgAAAAwAAAAOAAQYTSAAutAQEAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAQAAAAGAAAACAAAAAwAAAAAABAACAAQAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAAIAAAADAAAABAAAAAYAAAgCAAAMApAAABAQAAHgEAAA8AAAAAJQAAQCoAAAAAAAAeAAAADwAAAAAAAADAKgAAAAAAABMAAAAHAEHg0wALTQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAEHQ1AALZQEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAEGA1gALIwIAAAADAAAABwAAAAAAAAAQERIACAcJBgoFCwQMAw0CDgEPAEHQ1gALTQEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAAQAAAAEAAAABAAAAAQAAAAFAAAABQAAAAUAAAAFAEHA1wALZQEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAUAAAAGAAAABgAAAAcAAAAHAAAACAAAAAgAAAAJAAAACQAAAAoAAAAKAAAACwAAAAsAAAAMAAAADAAAAA0AAAANAEG42AALASwAQcTYAAthLQAAAAQABAAIAAQALgAAAAQABgAQAAYALwAAAAQADAAgABgALwAAAAgAEAAgACAALwAAAAgAEACAAIAALwAAAAgAIACAAAABMAAAACAAgAACAQAEMAAAACAAAgECAQAQMABBsNkAC6UTAwAEAAUABgAHAAgACQAKAAsADQAPABEAEwAXABsAHwAjACsAMwA7AEMAUwBjAHMAgwCjAMMA4wACAQAAAAAAABAAEAAQABAAEAAQABAAEAARABEAEQARABIAEgASABIAEwATABMAEwAUABQAFAAUABUAFQAVABUAEABNAMoAAAABAAIAAwAEAAUABwAJAA0AEQAZACEAMQBBAGEAgQDBAAEBgQEBAgEDAQQBBgEIAQwBEAEYASABMAFAAWAAAAAAEAAQABAAEAARABEAEgASABMAEwAUABQAFQAVABYAFgAXABcAGAAYABkAGQAaABoAGwAbABwAHAAdAB0AQABAAGAHAAAACFAAAAgQABQIcwASBx8AAAhwAAAIMAAACcAAEAcKAAAIYAAACCAAAAmgAAAIAAAACIAAAAhAAAAJ4AAQBwYAAAhYAAAIGAAACZAAEwc7AAAIeAAACDgAAAnQABEHEQAACGgAAAgoAAAJsAAACAgAAAiIAAAISAAACfAAEAcEAAAIVAAACBQAFQjjABMHKwAACHQAAAg0AAAJyAARBw0AAAhkAAAIJAAACagAAAgEAAAIhAAACEQAAAnoABAHCAAACFwAAAgcAAAJmAAUB1MAAAh8AAAIPAAACdgAEgcXAAAIbAAACCwAAAm4AAAIDAAACIwAAAhMAAAJ+AAQBwMAAAhSAAAIEgAVCKMAEwcjAAAIcgAACDIAAAnEABEHCwAACGIAAAgiAAAJpAAACAIAAAiCAAAIQgAACeQAEAcHAAAIWgAACBoAAAmUABQHQwAACHoAAAg6AAAJ1AASBxMAAAhqAAAIKgAACbQAAAgKAAAIigAACEoAAAn0ABAHBQAACFYAAAgWAEAIAAATBzMAAAh2AAAINgAACcwAEQcPAAAIZgAACCYAAAmsAAAIBgAACIYAAAhGAAAJ7AAQBwkAAAheAAAIHgAACZwAFAdjAAAIfgAACD4AAAncABIHGwAACG4AAAguAAAJvAAACA4AAAiOAAAITgAACfwAYAcAAAAIUQAACBEAFQiDABIHHwAACHEAAAgxAAAJwgAQBwoAAAhhAAAIIQAACaIAAAgBAAAIgQAACEEAAAniABAHBgAACFkAAAgZAAAJkgATBzsAAAh5AAAIOQAACdIAEQcRAAAIaQAACCkAAAmyAAAICQAACIkAAAhJAAAJ8gAQBwQAAAhVAAAIFQAQCAIBEwcrAAAIdQAACDUAAAnKABEHDQAACGUAAAglAAAJqgAACAUAAAiFAAAIRQAACeoAEAcIAAAIXQAACB0AAAmaABQHUwAACH0AAAg9AAAJ2gASBxcAAAhtAAAILQAACboAAAgNAAAIjQAACE0AAAn6ABAHAwAACFMAAAgTABUIwwATByMAAAhzAAAIMwAACcYAEQcLAAAIYwAACCMAAAmmAAAIAwAACIMAAAhDAAAJ5gAQBwcAAAhbAAAIGwAACZYAFAdDAAAIewAACDsAAAnWABIHEwAACGsAAAgrAAAJtgAACAsAAAiLAAAISwAACfYAEAcFAAAIVwAACBcAQAgAABMHMwAACHcAAAg3AAAJzgARBw8AAAhnAAAIJwAACa4AAAgHAAAIhwAACEcAAAnuABAHCQAACF8AAAgfAAAJngAUB2MAAAh/AAAIPwAACd4AEgcbAAAIbwAACC8AAAm+AAAIDwAACI8AAAhPAAAJ/gBgBwAAAAhQAAAIEAAUCHMAEgcfAAAIcAAACDAAAAnBABAHCgAACGAAAAggAAAJoQAACAAAAAiAAAAIQAAACeEAEAcGAAAIWAAACBgAAAmRABMHOwAACHgAAAg4AAAJ0QARBxEAAAhoAAAIKAAACbEAAAgIAAAIiAAACEgAAAnxABAHBAAACFQAAAgUABUI4wATBysAAAh0AAAINAAACckAEQcNAAAIZAAACCQAAAmpAAAIBAAACIQAAAhEAAAJ6QAQBwgAAAhcAAAIHAAACZkAFAdTAAAIfAAACDwAAAnZABIHFwAACGwAAAgsAAAJuQAACAwAAAiMAAAITAAACfkAEAcDAAAIUgAACBIAFQijABMHIwAACHIAAAgyAAAJxQARBwsAAAhiAAAIIgAACaUAAAgCAAAIggAACEIAAAnlABAHBwAACFoAAAgaAAAJlQAUB0MAAAh6AAAIOgAACdUAEgcTAAAIagAACCoAAAm1AAAICgAACIoAAAhKAAAJ9QAQBwUAAAhWAAAIFgBACAAAEwczAAAIdgAACDYAAAnNABEHDwAACGYAAAgmAAAJrQAACAYAAAiGAAAIRgAACe0AEAcJAAAIXgAACB4AAAmdABQHYwAACH4AAAg+AAAJ3QASBxsAAAhuAAAILgAACb0AAAgOAAAIjgAACE4AAAn9AGAHAAAACFEAAAgRABUIgwASBx8AAAhxAAAIMQAACcMAEAcKAAAIYQAACCEAAAmjAAAIAQAACIEAAAhBAAAJ4wAQBwYAAAhZAAAIGQAACZMAEwc7AAAIeQAACDkAAAnTABEHEQAACGkAAAgpAAAJswAACAkAAAiJAAAISQAACfMAEAcEAAAIVQAACBUAEAgCARMHKwAACHUAAAg1AAAJywARBw0AAAhlAAAIJQAACasAAAgFAAAIhQAACEUAAAnrABAHCAAACF0AAAgdAAAJmwAUB1MAAAh9AAAIPQAACdsAEgcXAAAIbQAACC0AAAm7AAAIDQAACI0AAAhNAAAJ+wAQBwMAAAhTAAAIEwAVCMMAEwcjAAAIcwAACDMAAAnHABEHCwAACGMAAAgjAAAJpwAACAMAAAiDAAAIQwAACecAEAcHAAAIWwAACBsAAAmXABQHQwAACHsAAAg7AAAJ1wASBxMAAAhrAAAIKwAACbcAAAgLAAAIiwAACEsAAAn3ABAHBQAACFcAAAgXAEAIAAATBzMAAAh3AAAINwAACc8AEQcPAAAIZwAACCcAAAmvAAAIBwAACIcAAAhHAAAJ7wAQBwkAAAhfAAAIHwAACZ8AFAdjAAAIfwAACD8AAAnfABIHGwAACG8AAAgvAAAJvwAACA8AAAiPAAAITwAACf8AEAUBABcFAQETBREAGwUBEBEFBQAZBQEEFQVBAB0FAUAQBQMAGAUBAhQFIQAcBQEgEgUJABoFAQgWBYEAQAUAABAFAgAXBYEBEwUZABsFARgRBQcAGQUBBhUFYQAdBQFgEAUEABgFAQMUBTEAHAUBMBIFDQAaBQEMFgXBAEAFAAAQABEAEgAAAAgABwAJAAYACgAFAAsABAAMAAMADQACAA4AAQAPAEHg7AALQREACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABAAkLCwAACQYLAAALAAYRAAAAERERAEGx7QALIQsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwBB6+0ACwEMAEH37QALFQwAAAAADAAAAAAJDAAAAAAADAAADABBpe4ACwEOAEGx7gALFQ0AAAAEDQAAAAAJDgAAAAAADgAADgBB3+4ACwEQAEHr7gALHg8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgBBou8ACw4SAAAAEhISAAAAAAAACQBB0+8ACwELAEHf7wALFQoAAAAACgAAAAAJCwAAAAAACwAACwBBjfAACwEMAEGZ8AALJwwAAAAADAAAAAAJDAAAAAAADAAADAAAMDEyMzQ1Njc4OUFCQ0RFRgBB5PAACwE+AEGL8QALBf//////AEHQ8QALVxkSRDsCPyxHFD0zMAobBkZLRTcPSQ6OFwNAHTxpKzYfSi0cASAlKSEIDBUWIi4QOD4LNDEYZHR1di9BCX85ESNDMkKJiosFBCYoJw0qHjWMBxpIkxOUlQBBsPIAC4oOSWxsZWdhbCBieXRlIHNlcXVlbmNlAERvbWFpbiBlcnJvcgBSZXN1bHQgbm90IHJlcHJlc2VudGFibGUATm90IGEgdHR5AFBlcm1pc3Npb24gZGVuaWVkAE9wZXJhdGlvbiBub3QgcGVybWl0dGVkAE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkATm8gc3VjaCBwcm9jZXNzAEZpbGUgZXhpc3RzAFZhbHVlIHRvbyBsYXJnZSBmb3IgZGF0YSB0eXBlAE5vIHNwYWNlIGxlZnQgb24gZGV2aWNlAE91dCBvZiBtZW1vcnkAUmVzb3VyY2UgYnVzeQBJbnRlcnJ1cHRlZCBzeXN0ZW0gY2FsbABSZXNvdXJjZSB0ZW1wb3JhcmlseSB1bmF2YWlsYWJsZQBJbnZhbGlkIHNlZWsAQ3Jvc3MtZGV2aWNlIGxpbmsAUmVhZC1vbmx5IGZpbGUgc3lzdGVtAERpcmVjdG9yeSBub3QgZW1wdHkAQ29ubmVjdGlvbiByZXNldCBieSBwZWVyAE9wZXJhdGlvbiB0aW1lZCBvdXQAQ29ubmVjdGlvbiByZWZ1c2VkAEhvc3QgaXMgZG93bgBIb3N0IGlzIHVucmVhY2hhYmxlAEFkZHJlc3MgaW4gdXNlAEJyb2tlbiBwaXBlAEkvTyBlcnJvcgBObyBzdWNoIGRldmljZSBvciBhZGRyZXNzAEJsb2NrIGRldmljZSByZXF1aXJlZABObyBzdWNoIGRldmljZQBOb3QgYSBkaXJlY3RvcnkASXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w==";Zs(xi)||(xi=x(xi));function Fs(Je){try{if(Je==xi&&ue)return new Uint8Array(ue);var st=ia(Je);if(st)return st;if(T)return T(Je);throw"sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"}catch(vt){Hi(vt)}}function $s(Je,st){var vt,ar,ee;try{ee=Fs(Je),ar=new WebAssembly.Module(ee),vt=new WebAssembly.Instance(ar,st)}catch(Le){var ye=Le.toString();throw te("failed to compile wasm module: "+ye),(ye.includes("imported Memory")||ye.includes("memory import"))&&te("Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)."),Le}return[vt,ar]}function SA(){var Je={a:dc};function st(ee,ye){var Le=ee.exports;r.asm=Le,De=r.asm.g,z(De.buffer),$=r.asm.W,cn(r.asm.h),Xs("wasm-instantiate")}if($n("wasm-instantiate"),r.instantiateWasm)try{var vt=r.instantiateWasm(Je,st);return vt}catch(ee){return te("Module.instantiateWasm callback failed with error: "+ee),!1}var ar=$s(xi,Je);return st(ar[0]),r.asm}function gu(Je){return R.getFloat32(Je,!0)}function op(Je){return R.getFloat64(Je,!0)}function ap(Je){return R.getInt16(Je,!0)}function Rs(Je){return R.getInt32(Je,!0)}function Ln(Je,st){R.setInt32(Je,st,!0)}function hs(Je){for(;Je.length>0;){var st=Je.shift();if(typeof st=="function"){st(r);continue}var vt=st.func;typeof vt=="number"?st.arg===void 0?$.get(vt)():$.get(vt)(st.arg):vt(st.arg===void 0?null:st.arg)}}function Ts(Je,st){var vt=new Date(Rs((Je>>2)*4)*1e3);Ln((st>>2)*4,vt.getUTCSeconds()),Ln((st+4>>2)*4,vt.getUTCMinutes()),Ln((st+8>>2)*4,vt.getUTCHours()),Ln((st+12>>2)*4,vt.getUTCDate()),Ln((st+16>>2)*4,vt.getUTCMonth()),Ln((st+20>>2)*4,vt.getUTCFullYear()-1900),Ln((st+24>>2)*4,vt.getUTCDay()),Ln((st+36>>2)*4,0),Ln((st+32>>2)*4,0);var ar=Date.UTC(vt.getUTCFullYear(),0,1,0,0,0,0),ee=(vt.getTime()-ar)/(1e3*60*60*24)|0;return Ln((st+28>>2)*4,ee),Ts.GMTString||(Ts.GMTString=nt("GMT")),Ln((st+40>>2)*4,Ts.GMTString),st}function pc(Je,st){return Ts(Je,st)}function hc(Je,st,vt){be.copyWithin(Je,st,st+vt)}function gc(Je){try{return De.grow(Je-ke.byteLength+65535>>>16),z(De.buffer),1}catch{}}function bA(Je){var st=be.length;Je=Je>>>0;var vt=2147483648;if(Je>vt)return!1;for(var ar=1;ar<=4;ar*=2){var ee=st*(1+.2/ar);ee=Math.min(ee,Je+100663296);var ye=Math.min(vt,Te(Math.max(Je,ee),65536)),Le=gc(ye);if(Le)return!0}return!1}function xA(Je){ce(Je)}function Ro(Je){var st=Date.now()/1e3|0;return Je&&Ln((Je>>2)*4,st),st}function To(){if(To.called)return;To.called=!0;var Je=new Date().getFullYear(),st=new Date(Je,0,1),vt=new Date(Je,6,1),ar=st.getTimezoneOffset(),ee=vt.getTimezoneOffset(),ye=Math.max(ar,ee);Ln((ja()>>2)*4,ye*60),Ln((rs()>>2)*4,+(ar!=ee));function Le(sn){var ei=sn.toTimeString().match(/\(([A-Za-z ]+)\)$/);return ei?ei[1]:"GMT"}var gt=Le(st),mt=Le(vt),Dt=nt(gt),er=nt(mt);ee>2)*4,Dt),Ln((Di()+4>>2)*4,er)):(Ln((Di()>>2)*4,er),Ln((Di()+4>>2)*4,Dt))}function kA(Je){To();var st=Date.UTC(Rs((Je+20>>2)*4)+1900,Rs((Je+16>>2)*4),Rs((Je+12>>2)*4),Rs((Je+8>>2)*4),Rs((Je+4>>2)*4),Rs((Je>>2)*4),0),vt=new Date(st);Ln((Je+24>>2)*4,vt.getUTCDay());var ar=Date.UTC(vt.getUTCFullYear(),0,1,0,0,0,0),ee=(vt.getTime()-ar)/(1e3*60*60*24)|0;return Ln((Je+28>>2)*4,ee),vt.getTime()/1e3|0}var pr=typeof atob=="function"?atob:function(Je){var st="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",vt="",ar,ee,ye,Le,gt,mt,Dt,er=0;Je=Je.replace(/[^A-Za-z0-9\+\/\=]/g,"");do Le=st.indexOf(Je.charAt(er++)),gt=st.indexOf(Je.charAt(er++)),mt=st.indexOf(Je.charAt(er++)),Dt=st.indexOf(Je.charAt(er++)),ar=Le<<2|gt>>4,ee=(gt&15)<<4|mt>>2,ye=(mt&3)<<6|Dt,vt=vt+String.fromCharCode(ar),mt!==64&&(vt=vt+String.fromCharCode(ee)),Dt!==64&&(vt=vt+String.fromCharCode(ye));while(er0||(Et(),yr>0))return;function st(){Dn||(Dn=!0,r.calledRun=!0,!Ee&&(qt(),o(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),nr()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),st()},1)):st()}if(r.run=Sl,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return Sl(),e}}();typeof ux=="object"&&typeof M4=="object"?M4.exports=O4:typeof define=="function"&&define.amd?define([],function(){return O4}):typeof ux=="object"&&(ux.createModule=O4)});var Nf,wce,Bce,vce=It(()=>{Nf=["number","number"],wce=(Z=>(Z[Z.ZIP_ER_OK=0]="ZIP_ER_OK",Z[Z.ZIP_ER_MULTIDISK=1]="ZIP_ER_MULTIDISK",Z[Z.ZIP_ER_RENAME=2]="ZIP_ER_RENAME",Z[Z.ZIP_ER_CLOSE=3]="ZIP_ER_CLOSE",Z[Z.ZIP_ER_SEEK=4]="ZIP_ER_SEEK",Z[Z.ZIP_ER_READ=5]="ZIP_ER_READ",Z[Z.ZIP_ER_WRITE=6]="ZIP_ER_WRITE",Z[Z.ZIP_ER_CRC=7]="ZIP_ER_CRC",Z[Z.ZIP_ER_ZIPCLOSED=8]="ZIP_ER_ZIPCLOSED",Z[Z.ZIP_ER_NOENT=9]="ZIP_ER_NOENT",Z[Z.ZIP_ER_EXISTS=10]="ZIP_ER_EXISTS",Z[Z.ZIP_ER_OPEN=11]="ZIP_ER_OPEN",Z[Z.ZIP_ER_TMPOPEN=12]="ZIP_ER_TMPOPEN",Z[Z.ZIP_ER_ZLIB=13]="ZIP_ER_ZLIB",Z[Z.ZIP_ER_MEMORY=14]="ZIP_ER_MEMORY",Z[Z.ZIP_ER_CHANGED=15]="ZIP_ER_CHANGED",Z[Z.ZIP_ER_COMPNOTSUPP=16]="ZIP_ER_COMPNOTSUPP",Z[Z.ZIP_ER_EOF=17]="ZIP_ER_EOF",Z[Z.ZIP_ER_INVAL=18]="ZIP_ER_INVAL",Z[Z.ZIP_ER_NOZIP=19]="ZIP_ER_NOZIP",Z[Z.ZIP_ER_INTERNAL=20]="ZIP_ER_INTERNAL",Z[Z.ZIP_ER_INCONS=21]="ZIP_ER_INCONS",Z[Z.ZIP_ER_REMOVE=22]="ZIP_ER_REMOVE",Z[Z.ZIP_ER_DELETED=23]="ZIP_ER_DELETED",Z[Z.ZIP_ER_ENCRNOTSUPP=24]="ZIP_ER_ENCRNOTSUPP",Z[Z.ZIP_ER_RDONLY=25]="ZIP_ER_RDONLY",Z[Z.ZIP_ER_NOPASSWD=26]="ZIP_ER_NOPASSWD",Z[Z.ZIP_ER_WRONGPASSWD=27]="ZIP_ER_WRONGPASSWD",Z[Z.ZIP_ER_OPNOTSUPP=28]="ZIP_ER_OPNOTSUPP",Z[Z.ZIP_ER_INUSE=29]="ZIP_ER_INUSE",Z[Z.ZIP_ER_TELL=30]="ZIP_ER_TELL",Z[Z.ZIP_ER_COMPRESSED_DATA=31]="ZIP_ER_COMPRESSED_DATA",Z))(wce||{}),Bce=t=>({get HEAPU8(){return t.HEAPU8},errors:wce,SEEK_SET:0,SEEK_CUR:1,SEEK_END:2,ZIP_CHECKCONS:4,ZIP_EXCL:2,ZIP_RDONLY:16,ZIP_FL_OVERWRITE:8192,ZIP_FL_COMPRESSED:4,ZIP_OPSYS_DOS:0,ZIP_OPSYS_AMIGA:1,ZIP_OPSYS_OPENVMS:2,ZIP_OPSYS_UNIX:3,ZIP_OPSYS_VM_CMS:4,ZIP_OPSYS_ATARI_ST:5,ZIP_OPSYS_OS_2:6,ZIP_OPSYS_MACINTOSH:7,ZIP_OPSYS_Z_SYSTEM:8,ZIP_OPSYS_CPM:9,ZIP_OPSYS_WINDOWS_NTFS:10,ZIP_OPSYS_MVS:11,ZIP_OPSYS_VSE:12,ZIP_OPSYS_ACORN_RISC:13,ZIP_OPSYS_VFAT:14,ZIP_OPSYS_ALTERNATE_MVS:15,ZIP_OPSYS_BEOS:16,ZIP_OPSYS_TANDEM:17,ZIP_OPSYS_OS_400:18,ZIP_OPSYS_OS_X:19,ZIP_CM_DEFAULT:-1,ZIP_CM_STORE:0,ZIP_CM_DEFLATE:8,uint08S:t._malloc(1),uint32S:t._malloc(4),malloc:t._malloc,free:t._free,getValue:t.getValue,openFromSource:t.cwrap("zip_open_from_source","number",["number","number","number"]),close:t.cwrap("zip_close","number",["number"]),discard:t.cwrap("zip_discard",null,["number"]),getError:t.cwrap("zip_get_error","number",["number"]),getName:t.cwrap("zip_get_name","string",["number","number","number"]),getNumEntries:t.cwrap("zip_get_num_entries","number",["number","number"]),delete:t.cwrap("zip_delete","number",["number","number"]),statIndex:t.cwrap("zip_stat_index","number",["number",...Nf,"number","number"]),fopenIndex:t.cwrap("zip_fopen_index","number",["number",...Nf,"number"]),fread:t.cwrap("zip_fread","number",["number","number","number","number"]),fclose:t.cwrap("zip_fclose","number",["number"]),dir:{add:t.cwrap("zip_dir_add","number",["number","string"])},file:{add:t.cwrap("zip_file_add","number",["number","string","number","number"]),getError:t.cwrap("zip_file_get_error","number",["number"]),getExternalAttributes:t.cwrap("zip_file_get_external_attributes","number",["number",...Nf,"number","number","number"]),setExternalAttributes:t.cwrap("zip_file_set_external_attributes","number",["number",...Nf,"number","number","number"]),setMtime:t.cwrap("zip_file_set_mtime","number",["number",...Nf,"number","number"]),setCompression:t.cwrap("zip_set_file_compression","number",["number",...Nf,"number","number"])},ext:{countSymlinks:t.cwrap("zip_ext_count_symlinks","number",["number"])},error:{initWithCode:t.cwrap("zip_error_init_with_code",null,["number","number"]),strerror:t.cwrap("zip_error_strerror","string",["number"])},name:{locate:t.cwrap("zip_name_locate","number",["number","string","number"])},source:{fromUnattachedBuffer:t.cwrap("zip_source_buffer_create","number",["number",...Nf,"number","number"]),fromBuffer:t.cwrap("zip_source_buffer","number",["number","number",...Nf,"number"]),free:t.cwrap("zip_source_free",null,["number"]),keep:t.cwrap("zip_source_keep",null,["number"]),open:t.cwrap("zip_source_open","number",["number"]),close:t.cwrap("zip_source_close","number",["number"]),seek:t.cwrap("zip_source_seek","number",["number",...Nf,"number"]),tell:t.cwrap("zip_source_tell","number",["number"]),read:t.cwrap("zip_source_read","number",["number","number","number"]),error:t.cwrap("zip_source_error","number",["number"])},struct:{statS:t.cwrap("zipstruct_statS","number",[]),statSize:t.cwrap("zipstruct_stat_size","number",["number"]),statCompSize:t.cwrap("zipstruct_stat_comp_size","number",["number"]),statCompMethod:t.cwrap("zipstruct_stat_comp_method","number",["number"]),statMtime:t.cwrap("zipstruct_stat_mtime","number",["number"]),statCrc:t.cwrap("zipstruct_stat_crc","number",["number"]),errorS:t.cwrap("zipstruct_errorS","number",[]),errorCodeZip:t.cwrap("zipstruct_error_code_zip","number",["number"])}})});function U4(t,e){let r=t.indexOf(e);if(r<=0)return null;let o=r;for(;r>=0&&(o=r+e.length,t[o]!==K.sep);){if(t[r-1]===K.sep)return null;r=t.indexOf(e,o)}return t.length>o&&t[o]!==K.sep?null:t.slice(0,o)}var iA,Dce=It(()=>{Pt();Pt();sA();iA=class t extends Gp{static async openPromise(e,r){let o=new t(r);try{return await e(o)}finally{o.saveAndClose()}}constructor(e={}){let r=e.fileExtensions,o=e.readOnlyArchives,a=typeof r>"u"?A=>U4(A,".zip"):A=>{for(let p of r){let h=U4(A,p);if(h)return h}return null},n=(A,p)=>new Zi(p,{baseFs:A,readOnly:o,stats:A.statSync(p)}),u=async(A,p)=>{let h={baseFs:A,readOnly:o,stats:await A.statPromise(p)};return()=>new Zi(p,h)};super({...e,factorySync:n,factoryPromise:u,getMountPoint:a})}}});function tot(t){if(typeof t=="string"&&String(+t)===t)return+t;if(typeof t=="number"&&Number.isFinite(t))return t<0?Date.now()/1e3:t;if(Pce.types.isDate(t))return t.getTime()/1e3;throw new Error("Invalid time")}function Ax(){return Buffer.from([80,75,5,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])}var ta,_4,Pce,H4,Sce,fx,Zi,q4=It(()=>{Pt();Pt();Pt();Pt();Pt();Pt();ta=ve("fs"),_4=ve("stream"),Pce=ve("util"),H4=et(ve("zlib"));L4();Sce="mixed";fx=class extends Error{constructor(e,r){super(e),this.name="Libzip Error",this.code=r}},Zi=class extends qu{constructor(r,o={}){super();this.listings=new Map;this.entries=new Map;this.fileSources=new Map;this.fds=new Map;this.nextFd=0;this.ready=!1;this.readOnly=!1;let a=o;if(this.level=typeof a.level<"u"?a.level:Sce,r??=Ax(),typeof r=="string"){let{baseFs:A=new _n}=a;this.baseFs=A,this.path=r}else this.path=null,this.baseFs=null;if(o.stats)this.stats=o.stats;else if(typeof r=="string")try{this.stats=this.baseFs.statSync(r)}catch(A){if(A.code==="ENOENT"&&a.create)this.stats=wa.makeDefaultStats();else throw A}else this.stats=wa.makeDefaultStats();this.libzip=K1();let n=this.libzip.malloc(4);try{let A=0;o.readOnly&&(A|=this.libzip.ZIP_RDONLY,this.readOnly=!0),typeof r=="string"&&(r=a.create?Ax():this.baseFs.readFileSync(r));let p=this.allocateUnattachedSource(r);try{this.zip=this.libzip.openFromSource(p,A,n),this.lzSource=p}catch(h){throw this.libzip.source.free(p),h}if(this.zip===0){let h=this.libzip.struct.errorS();throw this.libzip.error.initWithCode(h,this.libzip.getValue(n,"i32")),this.makeLibzipError(h)}}finally{this.libzip.free(n)}this.listings.set(Bt.root,new Set);let u=this.libzip.getNumEntries(this.zip,0);for(let A=0;Ar)throw new Error("Overread");let n=Buffer.from(this.libzip.HEAPU8.subarray(o,o+r));return process.env.YARN_IS_TEST_ENV&&process.env.YARN_ZIP_DATA_EPILOGUE&&(n=Buffer.concat([n,Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)])),n}finally{this.libzip.free(o)}}finally{this.libzip.source.close(this.lzSource),this.libzip.source.free(this.lzSource),this.ready=!1}}discardAndClose(){this.prepareClose(),this.libzip.discard(this.zip),this.ready=!1}saveAndClose(){if(!this.path||!this.baseFs)throw new Error("ZipFS cannot be saved and must be discarded when loaded from a buffer");if(this.readOnly){this.discardAndClose();return}let r=this.baseFs.existsSync(this.path)||this.stats.mode===wa.DEFAULT_MODE?void 0:this.stats.mode;this.baseFs.writeFileSync(this.path,this.getBufferAndClose(),{mode:r}),this.ready=!1}resolve(r){return K.resolve(Bt.root,r)}async openPromise(r,o,a){return this.openSync(r,o,a)}openSync(r,o,a){let n=this.nextFd++;return this.fds.set(n,{cursor:0,p:r}),n}hasOpenFileHandles(){return!!this.fds.size}async opendirPromise(r,o){return this.opendirSync(r,o)}opendirSync(r,o={}){let a=this.resolveFilename(`opendir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`opendir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`opendir '${r}'`);let u=[...n],A=this.openSync(a,"r");return eP(this,a,u,{onClose:()=>{this.closeSync(A)}})}async readPromise(r,o,a,n,u){return this.readSync(r,o,a,n,u)}readSync(r,o,a=0,n=o.byteLength,u=-1){let A=this.fds.get(r);if(typeof A>"u")throw sr.EBADF("read");let p=u===-1||u===null?A.cursor:u,h=this.readFileSync(A.p);h.copy(o,a,p,p+n);let E=Math.max(0,Math.min(h.length-p,n));return(u===-1||u===null)&&(A.cursor+=E),E}async writePromise(r,o,a,n,u){return typeof o=="string"?this.writeSync(r,o,u):this.writeSync(r,o,a,n,u)}writeSync(r,o,a,n,u){throw typeof this.fds.get(r)>"u"?sr.EBADF("read"):new Error("Unimplemented")}async closePromise(r){return this.closeSync(r)}closeSync(r){if(typeof this.fds.get(r)>"u")throw sr.EBADF("read");this.fds.delete(r)}createReadStream(r,{encoding:o}={}){if(r===null)throw new Error("Unimplemented");let a=this.openSync(r,"r"),n=Object.assign(new _4.PassThrough({emitClose:!0,autoDestroy:!0,destroy:(A,p)=>{clearImmediate(u),this.closeSync(a),p(A)}}),{close(){n.destroy()},bytesRead:0,path:r,pending:!1}),u=setImmediate(async()=>{try{let A=await this.readFilePromise(r,o);n.bytesRead=A.length,n.end(A)}catch(A){n.destroy(A)}});return n}createWriteStream(r,{encoding:o}={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);if(r===null)throw new Error("Unimplemented");let a=[],n=this.openSync(r,"w"),u=Object.assign(new _4.PassThrough({autoDestroy:!0,emitClose:!0,destroy:(A,p)=>{try{A?p(A):(this.writeFileSync(r,Buffer.concat(a),o),p(null))}catch(h){p(h)}finally{this.closeSync(n)}}}),{close(){u.destroy()},bytesWritten:0,path:r,pending:!1});return u.on("data",A=>{let p=Buffer.from(A);u.bytesWritten+=p.length,a.push(p)}),u}async realpathPromise(r){return this.realpathSync(r)}realpathSync(r){let o=this.resolveFilename(`lstat '${r}'`,r);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`lstat '${r}'`);return o}async existsPromise(r){return this.existsSync(r)}existsSync(r){if(!this.ready)throw sr.EBUSY(`archive closed, existsSync '${r}'`);if(this.symlinkCount===0){let a=K.resolve(Bt.root,r);return this.entries.has(a)||this.listings.has(a)}let o;try{o=this.resolveFilename(`stat '${r}'`,r,void 0,!1)}catch{return!1}return o===void 0?!1:this.entries.has(o)||this.listings.has(o)}async accessPromise(r,o){return this.accessSync(r,o)}accessSync(r,o=ta.constants.F_OK){let a=this.resolveFilename(`access '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`access '${r}'`);if(this.readOnly&&o&ta.constants.W_OK)throw sr.EROFS(`access '${r}'`)}async statPromise(r,o={bigint:!1}){return o.bigint?this.statSync(r,{bigint:!0}):this.statSync(r)}statSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`stat '${r}'`,r,void 0,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`stat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`stat '${r}'`);return this.statImpl(`stat '${r}'`,a,o)}}async fstatPromise(r,o){return this.fstatSync(r,o)}fstatSync(r,o){let a=this.fds.get(r);if(typeof a>"u")throw sr.EBADF("fstatSync");let{p:n}=a,u=this.resolveFilename(`stat '${n}'`,n);if(!this.entries.has(u)&&!this.listings.has(u))throw sr.ENOENT(`stat '${n}'`);if(n[n.length-1]==="/"&&!this.listings.has(u))throw sr.ENOTDIR(`stat '${n}'`);return this.statImpl(`fstat '${n}'`,u,o)}async lstatPromise(r,o={bigint:!1}){return o.bigint?this.lstatSync(r,{bigint:!0}):this.lstatSync(r)}lstatSync(r,o={bigint:!1,throwIfNoEntry:!0}){let a=this.resolveFilename(`lstat '${r}'`,r,!1,o.throwIfNoEntry);if(a!==void 0){if(!this.entries.has(a)&&!this.listings.has(a)){if(o.throwIfNoEntry===!1)return;throw sr.ENOENT(`lstat '${r}'`)}if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`lstat '${r}'`);return this.statImpl(`lstat '${r}'`,a,o)}}statImpl(r,o,a={}){let n=this.entries.get(o);if(typeof n<"u"){let u=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,n,0,0,u)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let p=this.stats.uid,h=this.stats.gid,E=this.libzip.struct.statSize(u)>>>0,w=512,D=Math.ceil(E/w),x=(this.libzip.struct.statMtime(u)>>>0)*1e3,C=x,T=x,L=x,U=new Date(C),J=new Date(T),te=new Date(L),le=new Date(x),ce=this.listings.has(o)?ta.constants.S_IFDIR:this.isSymbolicLink(n)?ta.constants.S_IFLNK:ta.constants.S_IFREG,ue=ce===ta.constants.S_IFDIR?493:420,Ie=ce|this.getUnixMode(n,ue)&511,he=this.libzip.struct.statCrc(u),De=Object.assign(new wa.StatEntry,{uid:p,gid:h,size:E,blksize:w,blocks:D,atime:U,birthtime:J,ctime:te,mtime:le,atimeMs:C,birthtimeMs:T,ctimeMs:L,mtimeMs:x,mode:Ie,crc:he});return a.bigint===!0?wa.convertToBigIntStats(De):De}if(this.listings.has(o)){let u=this.stats.uid,A=this.stats.gid,p=0,h=512,E=0,w=this.stats.mtimeMs,D=this.stats.mtimeMs,x=this.stats.mtimeMs,C=this.stats.mtimeMs,T=new Date(w),L=new Date(D),U=new Date(x),J=new Date(C),te=ta.constants.S_IFDIR|493,ce=Object.assign(new wa.StatEntry,{uid:u,gid:A,size:p,blksize:h,blocks:E,atime:T,birthtime:L,ctime:U,mtime:J,atimeMs:w,birthtimeMs:D,ctimeMs:x,mtimeMs:C,mode:te,crc:0});return a.bigint===!0?wa.convertToBigIntStats(ce):ce}throw new Error("Unreachable")}getUnixMode(r,o){if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?o:this.libzip.getValue(this.libzip.uint32S,"i32")>>>16}registerListing(r){let o=this.listings.get(r);if(o)return o;this.registerListing(K.dirname(r)).add(K.basename(r));let n=new Set;return this.listings.set(r,n),n}registerEntry(r,o){this.registerListing(K.dirname(r)).add(K.basename(r)),this.entries.set(r,o)}unregisterListing(r){this.listings.delete(r),this.listings.get(K.dirname(r))?.delete(K.basename(r))}unregisterEntry(r){this.unregisterListing(r);let o=this.entries.get(r);this.entries.delete(r),!(typeof o>"u")&&(this.fileSources.delete(o),this.isSymbolicLink(o)&&this.symlinkCount--)}deleteEntry(r,o){if(this.unregisterEntry(r),this.libzip.delete(this.zip,o)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}resolveFilename(r,o,a=!0,n=!0){if(!this.ready)throw sr.EBUSY(`archive closed, ${r}`);let u=K.resolve(Bt.root,o);if(u==="/")return Bt.root;let A=this.entries.get(u);if(a&&A!==void 0)if(this.symlinkCount!==0&&this.isSymbolicLink(A)){let p=this.getFileSource(A).toString();return this.resolveFilename(r,K.resolve(K.dirname(u),p),!0,n)}else return u;for(;;){let p=this.resolveFilename(r,K.dirname(u),!0,n);if(p===void 0)return p;let h=this.listings.has(p),E=this.entries.has(p);if(!h&&!E){if(n===!1)return;throw sr.ENOENT(r)}if(!h)throw sr.ENOTDIR(r);if(u=K.resolve(p,K.basename(u)),!a||this.symlinkCount===0)break;let w=this.libzip.name.locate(this.zip,u.slice(1),0);if(w===-1)break;if(this.isSymbolicLink(w)){let D=this.getFileSource(w).toString();u=K.resolve(K.dirname(u),D)}else break}return u}allocateBuffer(r){Buffer.isBuffer(r)||(r=Buffer.from(r));let o=this.libzip.malloc(r.byteLength);if(!o)throw new Error("Couldn't allocate enough memory");return new Uint8Array(this.libzip.HEAPU8.buffer,o,r.byteLength).set(r),{buffer:o,byteLength:r.byteLength}}allocateUnattachedSource(r){let o=this.libzip.struct.errorS(),{buffer:a,byteLength:n}=this.allocateBuffer(r),u=this.libzip.source.fromUnattachedBuffer(a,n,0,1,o);if(u===0)throw this.libzip.free(o),this.makeLibzipError(o);return u}allocateSource(r){let{buffer:o,byteLength:a}=this.allocateBuffer(r),n=this.libzip.source.fromBuffer(this.zip,o,a,0,1);if(n===0)throw this.libzip.free(o),this.makeLibzipError(this.libzip.getError(this.zip));return n}setFileSource(r,o){let a=Buffer.isBuffer(o)?o:Buffer.from(o),n=K.relative(Bt.root,r),u=this.allocateSource(o);try{let A=this.libzip.file.add(this.zip,n,u,this.libzip.ZIP_FL_OVERWRITE);if(A===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));if(this.level!=="mixed"){let p=this.level===0?this.libzip.ZIP_CM_STORE:this.libzip.ZIP_CM_DEFLATE;if(this.libzip.file.setCompression(this.zip,A,0,p,this.level)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}return this.fileSources.set(A,a),A}catch(A){throw this.libzip.source.free(u),A}}isSymbolicLink(r){if(this.symlinkCount===0)return!1;if(this.libzip.file.getExternalAttributes(this.zip,r,0,0,this.libzip.uint08S,this.libzip.uint32S)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.libzip.getValue(this.libzip.uint08S,"i8")>>>0!==this.libzip.ZIP_OPSYS_UNIX?!1:(this.libzip.getValue(this.libzip.uint32S,"i32")>>>16&ta.constants.S_IFMT)===ta.constants.S_IFLNK}getFileSource(r,o={asyncDecompress:!1}){let a=this.fileSources.get(r);if(typeof a<"u")return a;let n=this.libzip.struct.statS();if(this.libzip.statIndex(this.zip,r,0,0,n)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));let A=this.libzip.struct.statCompSize(n),p=this.libzip.struct.statCompMethod(n),h=this.libzip.malloc(A);try{let E=this.libzip.fopenIndex(this.zip,r,0,this.libzip.ZIP_FL_COMPRESSED);if(E===0)throw this.makeLibzipError(this.libzip.getError(this.zip));try{let w=this.libzip.fread(E,h,A,0);if(w===-1)throw this.makeLibzipError(this.libzip.file.getError(E));if(wA)throw new Error("Overread");let D=this.libzip.HEAPU8.subarray(h,h+A),x=Buffer.from(D);if(p===0)return this.fileSources.set(r,x),x;if(o.asyncDecompress)return new Promise((C,T)=>{H4.default.inflateRaw(x,(L,U)=>{L?T(L):(this.fileSources.set(r,U),C(U))})});{let C=H4.default.inflateRawSync(x);return this.fileSources.set(r,C),C}}finally{this.libzip.fclose(E)}}finally{this.libzip.free(h)}}async fchmodPromise(r,o){return this.chmodPromise(this.fdToPath(r,"fchmod"),o)}fchmodSync(r,o){return this.chmodSync(this.fdToPath(r,"fchmodSync"),o)}async chmodPromise(r,o){return this.chmodSync(r,o)}chmodSync(r,o){if(this.readOnly)throw sr.EROFS(`chmod '${r}'`);o&=493;let a=this.resolveFilename(`chmod '${r}'`,r,!1),n=this.entries.get(a);if(typeof n>"u")throw new Error(`Assertion failed: The entry should have been registered (${a})`);let A=this.getUnixMode(n,ta.constants.S_IFREG|0)&-512|o;if(this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,A<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async fchownPromise(r,o,a){return this.chownPromise(this.fdToPath(r,"fchown"),o,a)}fchownSync(r,o,a){return this.chownSync(this.fdToPath(r,"fchownSync"),o,a)}async chownPromise(r,o,a){return this.chownSync(r,o,a)}chownSync(r,o,a){throw new Error("Unimplemented")}async renamePromise(r,o){return this.renameSync(r,o)}renameSync(r,o){throw new Error("Unimplemented")}async copyFilePromise(r,o,a){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=await this.getFileSource(n,{asyncDecompress:!0}),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}copyFileSync(r,o,a=0){let{indexSource:n,indexDest:u,resolvedDestP:A}=this.prepareCopyFile(r,o,a),p=this.getFileSource(n),h=this.setFileSource(A,p);h!==u&&this.registerEntry(A,h)}prepareCopyFile(r,o,a=0){if(this.readOnly)throw sr.EROFS(`copyfile '${r} -> '${o}'`);if(a&ta.constants.COPYFILE_FICLONE_FORCE)throw sr.ENOSYS("unsupported clone operation",`copyfile '${r}' -> ${o}'`);let n=this.resolveFilename(`copyfile '${r} -> ${o}'`,r),u=this.entries.get(n);if(typeof u>"u")throw sr.EINVAL(`copyfile '${r}' -> '${o}'`);let A=this.resolveFilename(`copyfile '${r}' -> ${o}'`,o),p=this.entries.get(A);if(a&(ta.constants.COPYFILE_EXCL|ta.constants.COPYFILE_FICLONE_FORCE)&&typeof p<"u")throw sr.EEXIST(`copyfile '${r}' -> '${o}'`);return{indexSource:u,resolvedDestP:A,indexDest:p}}async appendFilePromise(r,o,a){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFilePromise(r,o,a)}appendFileSync(r,o,a={}){if(this.readOnly)throw sr.EROFS(`open '${r}'`);return typeof a>"u"?a={flag:"a"}:typeof a=="string"?a={flag:"a",encoding:a}:typeof a.flag>"u"&&(a={flag:"a",...a}),this.writeFileSync(r,o,a)}fdToPath(r,o){let a=this.fds.get(r)?.p;if(typeof a>"u")throw sr.EBADF(o);return a}async writeFilePromise(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([await this.getFileSource(A,{asyncDecompress:!0}),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&await this.chmodPromise(p,u)}writeFileSync(r,o,a){let{encoding:n,mode:u,index:A,resolvedP:p}=this.prepareWriteFile(r,a);A!==void 0&&typeof a=="object"&&a.flag&&a.flag.includes("a")&&(o=Buffer.concat([this.getFileSource(A),Buffer.from(o)])),n!==null&&(o=o.toString(n));let h=this.setFileSource(p,o);h!==A&&this.registerEntry(p,h),u!==null&&this.chmodSync(p,u)}prepareWriteFile(r,o){if(typeof r=="number"&&(r=this.fdToPath(r,"read")),this.readOnly)throw sr.EROFS(`open '${r}'`);let a=this.resolveFilename(`open '${r}'`,r);if(this.listings.has(a))throw sr.EISDIR(`open '${r}'`);let n=null,u=null;typeof o=="string"?n=o:typeof o=="object"&&({encoding:n=null,mode:u=null}=o);let A=this.entries.get(a);return{encoding:n,mode:u,resolvedP:a,index:A}}async unlinkPromise(r){return this.unlinkSync(r)}unlinkSync(r){if(this.readOnly)throw sr.EROFS(`unlink '${r}'`);let o=this.resolveFilename(`unlink '${r}'`,r);if(this.listings.has(o))throw sr.EISDIR(`unlink '${r}'`);let a=this.entries.get(o);if(typeof a>"u")throw sr.EINVAL(`unlink '${r}'`);this.deleteEntry(o,a)}async utimesPromise(r,o,a){return this.utimesSync(r,o,a)}utimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`utimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r);this.utimesImpl(n,a)}async lutimesPromise(r,o,a){return this.lutimesSync(r,o,a)}lutimesSync(r,o,a){if(this.readOnly)throw sr.EROFS(`lutimes '${r}'`);let n=this.resolveFilename(`utimes '${r}'`,r,!1);this.utimesImpl(n,a)}utimesImpl(r,o){this.listings.has(r)&&(this.entries.has(r)||this.hydrateDirectory(r));let a=this.entries.get(r);if(a===void 0)throw new Error("Unreachable");if(this.libzip.file.setMtime(this.zip,a,0,tot(o),0)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip))}async mkdirPromise(r,o){return this.mkdirSync(r,o)}mkdirSync(r,{mode:o=493,recursive:a=!1}={}){if(a)return this.mkdirpSync(r,{chmod:o});if(this.readOnly)throw sr.EROFS(`mkdir '${r}'`);let n=this.resolveFilename(`mkdir '${r}'`,r);if(this.entries.has(n)||this.listings.has(n))throw sr.EEXIST(`mkdir '${r}'`);this.hydrateDirectory(n),this.chmodSync(n,o)}async rmdirPromise(r,o){return this.rmdirSync(r,o)}rmdirSync(r,{recursive:o=!1}={}){if(this.readOnly)throw sr.EROFS(`rmdir '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rmdir '${r}'`,r),n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`rmdir '${r}'`);if(n.size>0)throw sr.ENOTEMPTY(`rmdir '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw sr.EINVAL(`rmdir '${r}'`);this.deleteEntry(r,u)}async rmPromise(r,o){return this.rmSync(r,o)}rmSync(r,{recursive:o=!1}={}){if(this.readOnly)throw sr.EROFS(`rm '${r}'`);if(o){this.removeSync(r);return}let a=this.resolveFilename(`rm '${r}'`,r),n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`rm '${r}'`);if(n.size>0)throw sr.ENOTEMPTY(`rm '${r}'`);let u=this.entries.get(a);if(typeof u>"u")throw sr.EINVAL(`rm '${r}'`);this.deleteEntry(r,u)}hydrateDirectory(r){let o=this.libzip.dir.add(this.zip,K.relative(Bt.root,r));if(o===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));return this.registerListing(r),this.registerEntry(r,o),o}async linkPromise(r,o){return this.linkSync(r,o)}linkSync(r,o){throw sr.EOPNOTSUPP(`link '${r}' -> '${o}'`)}async symlinkPromise(r,o){return this.symlinkSync(r,o)}symlinkSync(r,o){if(this.readOnly)throw sr.EROFS(`symlink '${r}' -> '${o}'`);let a=this.resolveFilename(`symlink '${r}' -> '${o}'`,o);if(this.listings.has(a))throw sr.EISDIR(`symlink '${r}' -> '${o}'`);if(this.entries.has(a))throw sr.EEXIST(`symlink '${r}' -> '${o}'`);let n=this.setFileSource(a,r);if(this.registerEntry(a,n),this.libzip.file.setExternalAttributes(this.zip,n,0,0,this.libzip.ZIP_OPSYS_UNIX,(ta.constants.S_IFLNK|511)<<16)===-1)throw this.makeLibzipError(this.libzip.getError(this.zip));this.symlinkCount+=1}async readFilePromise(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=await this.readFileBuffer(r,{asyncDecompress:!0});return o?a.toString(o):a}readFileSync(r,o){typeof o=="object"&&(o=o?o.encoding:void 0);let a=this.readFileBuffer(r);return o?a.toString(o):a}readFileBuffer(r,o={asyncDecompress:!1}){typeof r=="number"&&(r=this.fdToPath(r,"read"));let a=this.resolveFilename(`open '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`open '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(a))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(a))throw sr.EISDIR("read");let n=this.entries.get(a);if(n===void 0)throw new Error("Unreachable");return this.getFileSource(n,o)}async readdirPromise(r,o){return this.readdirSync(r,o)}readdirSync(r,o){let a=this.resolveFilename(`scandir '${r}'`,r);if(!this.entries.has(a)&&!this.listings.has(a))throw sr.ENOENT(`scandir '${r}'`);let n=this.listings.get(a);if(!n)throw sr.ENOTDIR(`scandir '${r}'`);if(o?.recursive)if(o?.withFileTypes){let u=Array.from(n,A=>Object.assign(this.statImpl("lstat",K.join(r,A)),{name:A,path:Bt.dot}));for(let A of u){if(!A.isDirectory())continue;let p=K.join(A.path,A.name),h=this.listings.get(K.join(a,p));for(let E of h)u.push(Object.assign(this.statImpl("lstat",K.join(r,p,E)),{name:E,path:p}))}return u}else{let u=[...n];for(let A of u){let p=this.listings.get(K.join(a,A));if(!(typeof p>"u"))for(let h of p)u.push(K.join(A,h))}return u}else return o?.withFileTypes?Array.from(n,u=>Object.assign(this.statImpl("lstat",K.join(r,u)),{name:u,path:void 0})):[...n]}async readlinkPromise(r){let o=this.prepareReadlink(r);return(await this.getFileSource(o,{asyncDecompress:!0})).toString()}readlinkSync(r){let o=this.prepareReadlink(r);return this.getFileSource(o).toString()}prepareReadlink(r){let o=this.resolveFilename(`readlink '${r}'`,r,!1);if(!this.entries.has(o)&&!this.listings.has(o))throw sr.ENOENT(`readlink '${r}'`);if(r[r.length-1]==="/"&&!this.listings.has(o))throw sr.ENOTDIR(`open '${r}'`);if(this.listings.has(o))throw sr.EINVAL(`readlink '${r}'`);let a=this.entries.get(o);if(a===void 0)throw new Error("Unreachable");if(!this.isSymbolicLink(a))throw sr.EINVAL(`readlink '${r}'`);return a}async truncatePromise(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=await this.getFileSource(n,{asyncDecompress:!0}),A=Buffer.alloc(o,0);return u.copy(A),await this.writeFilePromise(r,A)}truncateSync(r,o=0){let a=this.resolveFilename(`open '${r}'`,r),n=this.entries.get(a);if(typeof n>"u")throw sr.EINVAL(`open '${r}'`);let u=this.getFileSource(n),A=Buffer.alloc(o,0);return u.copy(A),this.writeFileSync(r,A)}async ftruncatePromise(r,o){return this.truncatePromise(this.fdToPath(r,"ftruncate"),o)}ftruncateSync(r,o){return this.truncateSync(this.fdToPath(r,"ftruncateSync"),o)}watch(r,o,a){let n;switch(typeof o){case"function":case"string":case"undefined":n=!0;break;default:({persistent:n=!0}=o);break}if(!n)return{on:()=>{},close:()=>{}};let u=setInterval(()=>{},24*60*60*1e3);return{on:()=>{},close:()=>{clearInterval(u)}}}watchFile(r,o,a){let n=K.resolve(Bt.root,r);return um(this,n,o,a)}unwatchFile(r,o){let a=K.resolve(Bt.root,r);return q0(this,a,o)}}});function xce(t,e,r=Buffer.alloc(0),o){let a=new Zi(r),n=w=>w===e||w.startsWith(`${e}/`)?w.slice(0,e.length):null,u=async(w,D)=>()=>a,A=(w,D)=>a,p={...t},h=new _n(p),E=new Gp({baseFs:h,getMountPoint:n,factoryPromise:u,factorySync:A,magicByte:21,maxAge:1/0,typeCheck:o?.typeCheck});return uw(bce.default,new Wp(E)),a}var bce,kce=It(()=>{Pt();bce=et(ve("fs"));q4()});var Qce=It(()=>{Dce();q4();kce()});var V1={};Kt(V1,{DEFAULT_COMPRESSION_LEVEL:()=>Sce,LibzipError:()=>fx,ZipFS:()=>Zi,ZipOpenFS:()=>iA,getArchivePart:()=>U4,getLibzipPromise:()=>not,getLibzipSync:()=>rot,makeEmptyArchive:()=>Ax,mountMemoryDrive:()=>xce});function rot(){return K1()}async function not(){return K1()}var Fce,sA=It(()=>{L4();Fce=et(Ice());vce();Qce();Cce(()=>{let t=(0,Fce.default)();return Bce(t)})});var J1,Rce=It(()=>{Pt();Gt();z1();J1=class extends ot{constructor(){super(...arguments);this.cwd=de.String("--cwd",process.cwd(),{description:"The directory to run the command in"});this.commandName=de.String();this.args=de.Proxy()}static{this.usage={description:"run a command using yarn's portable shell",details:` + This command will run a command using Yarn's portable shell. + + Make sure to escape glob patterns, redirections, and other features that might be expanded by your own shell. + + Note: To escape something from Yarn's shell, you might have to escape it twice, the first time from your own shell. + + Note: Don't use this command in Yarn scripts, as Yarn's shell is automatically used. + + For a list of features, visit: https://github.com/yarnpkg/berry/blob/master/packages/yarnpkg-shell/README.md. + `,examples:[["Run a simple command","$0 echo Hello"],["Run a command with a glob pattern","$0 echo '*.js'"],["Run a command with a redirection","$0 echo Hello World '>' hello.txt"],["Run a command with an escaped glob pattern (The double escape is needed in Unix shells)",`$0 echo '"*.js"'`],["Run a command with a variable (Double quotes are needed in Unix shells, to prevent them from expanding the variable)",'$0 "GREETING=Hello echo $GREETING World"']]}}async execute(){let r=this.args.length>0?`${this.commandName} ${this.args.join(" ")}`:this.commandName;return await ky(r,[],{cwd:Ae.toPortablePath(this.cwd),stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}}});var fl,Tce=It(()=>{fl=class extends Error{constructor(e){super(e),this.name="ShellError"}}});var gx={};Kt(gx,{fastGlobOptions:()=>Oce,isBraceExpansion:()=>j4,isGlobPattern:()=>iot,match:()=>sot,micromatchOptions:()=>hx});function iot(t){if(!px.default.scan(t,hx).isGlob)return!1;try{px.default.parse(t,hx)}catch{return!1}return!0}function sot(t,{cwd:e,baseFs:r}){return(0,Nce.default)(t,{...Oce,cwd:Ae.fromPortablePath(e),fs:aP(Lce.default,new Wp(r))})}function j4(t){return px.default.scan(t,hx).isBrace}var Nce,Lce,px,hx,Oce,Mce=It(()=>{Pt();Nce=et(Ab()),Lce=et(ve("fs")),px=et(Xo()),hx={strictBrackets:!0},Oce={onlyDirectories:!1,onlyFiles:!1}});function G4(){}function W4(){for(let t of Fg)t.kill()}function qce(t,e,r,o){return a=>{let n=a[0]instanceof oA.Transform?"pipe":a[0],u=a[1]instanceof oA.Transform?"pipe":a[1],A=a[2]instanceof oA.Transform?"pipe":a[2],p=(0,_ce.default)(t,e,{...o,stdio:[n,u,A]});return Fg.add(p),Fg.size===1&&(process.on("SIGINT",G4),process.on("SIGTERM",W4)),a[0]instanceof oA.Transform&&a[0].pipe(p.stdin),a[1]instanceof oA.Transform&&p.stdout.pipe(a[1],{end:!1}),a[2]instanceof oA.Transform&&p.stderr.pipe(a[2],{end:!1}),{stdin:p.stdin,promise:new Promise(h=>{p.on("error",E=>{switch(Fg.delete(p),Fg.size===0&&(process.off("SIGINT",G4),process.off("SIGTERM",W4)),E.code){case"ENOENT":a[2].write(`command not found: ${t} +`),h(127);break;case"EACCES":a[2].write(`permission denied: ${t} +`),h(128);break;default:a[2].write(`uncaught error: ${E.message} +`),h(1);break}}),p.on("close",E=>{Fg.delete(p),Fg.size===0&&(process.off("SIGINT",G4),process.off("SIGTERM",W4)),h(E!==null?E:129)})})}}}function jce(t){return e=>{let r=e[0]==="pipe"?new oA.PassThrough:e[0];return{stdin:r,promise:Promise.resolve().then(()=>t({stdin:r,stdout:e[1],stderr:e[2]}))}}}function dx(t,e){return K4.start(t,e)}function Uce(t,e=null){let r=new oA.PassThrough,o=new Hce.StringDecoder,a="";return r.on("data",n=>{let u=o.write(n),A;do if(A=u.indexOf(` +`),A!==-1){let p=a+u.substring(0,A);u=u.substring(A+1),a="",t(e!==null?`${e} ${p}`:p)}while(A!==-1);a+=u}),r.on("end",()=>{let n=o.end();n!==""&&t(e!==null?`${e} ${n}`:n)}),r}function Gce(t,{prefix:e}){return{stdout:Uce(r=>t.stdout.write(`${r} +`),t.stdout.isTTY?e:null),stderr:Uce(r=>t.stderr.write(`${r} +`),t.stderr.isTTY?e:null)}}var _ce,oA,Hce,Fg,Zl,Y4,K4,V4=It(()=>{_ce=et(MT()),oA=ve("stream"),Hce=ve("string_decoder"),Fg=new Set;Zl=class{constructor(e){this.stream=e}close(){}get(){return this.stream}},Y4=class{constructor(){this.stream=null}close(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");this.stream.end()}attach(e){this.stream=e}get(){if(this.stream===null)throw new Error("Assertion failed: No stream attached");return this.stream}},K4=class t{constructor(e,r){this.stdin=null;this.stdout=null;this.stderr=null;this.pipe=null;this.ancestor=e,this.implementation=r}static start(e,{stdin:r,stdout:o,stderr:a}){let n=new t(null,e);return n.stdin=r,n.stdout=o,n.stderr=a,n}pipeTo(e,r=1){let o=new t(this,e),a=new Y4;return o.pipe=a,o.stdout=this.stdout,o.stderr=this.stderr,(r&1)===1?this.stdout=a:this.ancestor!==null&&(this.stderr=this.ancestor.stdout),(r&2)===2?this.stderr=a:this.ancestor!==null&&(this.stderr=this.ancestor.stderr),o}async exec(){let e=["ignore","ignore","ignore"];if(this.pipe)e[0]="pipe";else{if(this.stdin===null)throw new Error("Assertion failed: No input stream registered");e[0]=this.stdin.get()}let r;if(this.stdout===null)throw new Error("Assertion failed: No output stream registered");r=this.stdout,e[1]=r.get();let o;if(this.stderr===null)throw new Error("Assertion failed: No error stream registered");o=this.stderr,e[2]=o.get();let a=this.implementation(e);return this.pipe&&this.pipe.attach(a.stdin),await a.promise.then(n=>(r.close(),o.close(),n))}async run(){let e=[];for(let o=this;o;o=o.ancestor)e.push(o.exec());return(await Promise.all(e))[0]}}});var e2={};Kt(e2,{EntryCommand:()=>J1,ShellError:()=>fl,execute:()=>ky,globUtils:()=>gx});function Wce(t,e,r){let o=new pl.PassThrough({autoDestroy:!0});switch(t){case 0:(e&1)===1&&r.stdin.pipe(o,{end:!1}),(e&2)===2&&r.stdin instanceof pl.Writable&&o.pipe(r.stdin,{end:!1});break;case 1:(e&1)===1&&r.stdout.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stdout,{end:!1});break;case 2:(e&1)===1&&r.stderr.pipe(o,{end:!1}),(e&2)===2&&o.pipe(r.stderr,{end:!1});break;default:throw new fl(`Bad file descriptor: "${t}"`)}return o}function yx(t,e={}){let r={...t,...e};return r.environment={...t.environment,...e.environment},r.variables={...t.variables,...e.variables},r}async function aot(t,e,r){let o=[],a=new pl.PassThrough;return a.on("data",n=>o.push(n)),await Ex(t,e,yx(r,{stdout:a})),Buffer.concat(o).toString().replace(/[\r\n]+$/,"")}async function Yce(t,e,r){let o=t.map(async n=>{let u=await Rg(n.args,e,r);return{name:n.name,value:u.join(" ")}});return(await Promise.all(o)).reduce((n,u)=>(n[u.name]=u.value,n),{})}function mx(t){return t.match(/[^ \r\n\t]+/g)||[]}async function Zce(t,e,r,o,a=o){switch(t.name){case"$":o(String(process.pid));break;case"#":o(String(e.args.length));break;case"@":if(t.quoted)for(let n of e.args)a(n);else for(let n of e.args){let u=mx(n);for(let A=0;A=0&&n"u"&&(t.defaultValue?u=(await Rg(t.defaultValue,e,r)).join(" "):t.alternativeValue&&(u="")),typeof u>"u")throw A?new fl(`Unbound argument #${n}`):new fl(`Unbound variable "${t.name}"`);if(t.quoted)o(u);else{let p=mx(u);for(let E=0;Eo.push(n));let a=Number(o.join(" "));return Number.isNaN(a)?X1({type:"variable",name:o.join(" ")},e,r):X1({type:"number",value:a},e,r)}else return lot[t.type](await X1(t.left,e,r),await X1(t.right,e,r))}async function Rg(t,e,r){let o=new Map,a=[],n=[],u=E=>{n.push(E)},A=()=>{n.length>0&&a.push(n.join("")),n=[]},p=E=>{u(E),A()},h=(E,w,D)=>{let x=JSON.stringify({type:E,fd:w}),C=o.get(x);typeof C>"u"&&o.set(x,C=[]),C.push(D)};for(let E of t){let w=!1;switch(E.type){case"redirection":{let D=await Rg(E.args,e,r);for(let x of D)h(E.subtype,E.fd,x)}break;case"argument":for(let D of E.segments)switch(D.type){case"text":u(D.text);break;case"glob":u(D.pattern),w=!0;break;case"shell":{let x=await aot(D.shell,e,r);if(D.quoted)u(x);else{let C=mx(x);for(let T=0;T"u")throw new Error("Assertion failed: Expected a glob pattern to have been set");let x=await e.glob.match(D,{cwd:r.cwd,baseFs:e.baseFs});if(x.length===0){let C=j4(D)?". Note: Brace expansion of arbitrary strings isn't currently supported. For more details, please read this issue: https://github.com/yarnpkg/berry/issues/22":"";throw new fl(`No matches found: "${D}"${C}`)}for(let C of x.sort())p(C)}}if(o.size>0){let E=[];for(let[w,D]of o.entries())E.splice(E.length,0,w,String(D.length),...D);a.splice(0,0,"__ysh_set_redirects",...E,"--")}return a}function Z1(t,e,r){e.builtins.has(t[0])||(t=["command",...t]);let o=Ae.fromPortablePath(r.cwd),a=r.environment;typeof a.PWD<"u"&&(a={...a,PWD:o});let[n,...u]=t;if(n==="command")return qce(u[0],u.slice(1),e,{cwd:o,env:a});let A=e.builtins.get(n);if(typeof A>"u")throw new Error(`Assertion failed: A builtin should exist for "${n}"`);return jce(async({stdin:p,stdout:h,stderr:E})=>{let{stdin:w,stdout:D,stderr:x}=r;r.stdin=p,r.stdout=h,r.stderr=E;try{return await A(u,e,r)}finally{r.stdin=w,r.stdout=D,r.stderr=x}})}function cot(t,e,r){return o=>{let a=new pl.PassThrough,n=Ex(t,e,yx(r,{stdin:a}));return{stdin:a,promise:n}}}function uot(t,e,r){return o=>{let a=new pl.PassThrough,n=Ex(t,e,r);return{stdin:a,promise:n}}}function Kce(t,e,r,o){if(e.length===0)return t;{let a;do a=String(Math.random());while(Object.hasOwn(o.procedures,a));return o.procedures={...o.procedures},o.procedures[a]=t,Z1([...e,"__ysh_run_procedure",a],r,o)}}async function Vce(t,e,r){let o=t,a=null,n=null;for(;o;){let u=o.then?{...r}:r,A;switch(o.type){case"command":{let p=await Rg(o.args,e,r),h=await Yce(o.envs,e,r);A=o.envs.length?Z1(p,e,yx(u,{environment:h})):Z1(p,e,u)}break;case"subshell":{let p=await Rg(o.args,e,r),h=cot(o.subshell,e,u);A=Kce(h,p,e,u)}break;case"group":{let p=await Rg(o.args,e,r),h=uot(o.group,e,u);A=Kce(h,p,e,u)}break;case"envs":{let p=await Yce(o.envs,e,r);u.environment={...u.environment,...p},A=Z1(["true"],e,u)}break}if(typeof A>"u")throw new Error("Assertion failed: An action should have been generated");if(a===null)n=dx(A,{stdin:new Zl(u.stdin),stdout:new Zl(u.stdout),stderr:new Zl(u.stderr)});else{if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");switch(a){case"|":n=n.pipeTo(A,1);break;case"|&":n=n.pipeTo(A,3);break}}o.then?(a=o.then.type,o=o.then.chain):o=null}if(n===null)throw new Error("Assertion failed: The execution pipeline should have been setup");return await n.run()}async function Aot(t,e,r,{background:o=!1}={}){function a(n){let u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[n%u.length];return Jce.default.hex(A)}if(o){let n=r.nextBackgroundJobIndex++,u=a(n),A=`[${n}]`,p=u(A),{stdout:h,stderr:E}=Gce(r,{prefix:p});return r.backgroundJobs.push(Vce(t,e,yx(r,{stdout:h,stderr:E})).catch(w=>E.write(`${w.message} +`)).finally(()=>{r.stdout.isTTY&&r.stdout.write(`Job ${p}, '${u(mm(t))}' has ended +`)})),0}return await Vce(t,e,r)}async function fot(t,e,r,{background:o=!1}={}){let a,n=A=>{a=A,r.variables["?"]=String(A)},u=async A=>{try{return await Aot(A.chain,e,r,{background:o&&typeof A.then>"u"})}catch(p){if(!(p instanceof fl))throw p;return r.stderr.write(`${p.message} +`),1}};for(n(await u(t));t.then;){if(r.exitCode!==null)return r.exitCode;switch(t.then.type){case"&&":a===0&&n(await u(t.then.line));break;case"||":a!==0&&n(await u(t.then.line));break;default:throw new Error(`Assertion failed: Unsupported command type: "${t.then.type}"`)}t=t.then.line}return a}async function Ex(t,e,r){let o=r.backgroundJobs;r.backgroundJobs=[];let a=0;for(let{command:n,type:u}of t){if(a=await fot(n,e,r,{background:u==="&"}),r.exitCode!==null)return r.exitCode;r.variables["?"]=String(a)}return await Promise.all(r.backgroundJobs),r.backgroundJobs=o,a}function $ce(t){switch(t.type){case"variable":return t.name==="@"||t.name==="#"||t.name==="*"||Number.isFinite(parseInt(t.name,10))||"defaultValue"in t&&!!t.defaultValue&&t.defaultValue.some(e=>$1(e))||"alternativeValue"in t&&!!t.alternativeValue&&t.alternativeValue.some(e=>$1(e));case"arithmetic":return J4(t.arithmetic);case"shell":return z4(t.shell);default:return!1}}function $1(t){switch(t.type){case"redirection":return t.args.some(e=>$1(e));case"argument":return t.segments.some(e=>$ce(e));default:throw new Error(`Assertion failed: Unsupported argument type: "${t.type}"`)}}function J4(t){switch(t.type){case"variable":return $ce(t);case"number":return!1;default:return J4(t.left)||J4(t.right)}}function z4(t){return t.some(({command:e})=>{for(;e;){let r=e.chain;for(;r;){let o;switch(r.type){case"subshell":o=z4(r.subshell);break;case"command":o=r.envs.some(a=>a.args.some(n=>$1(n)))||r.args.some(a=>$1(a));break}if(o)return!0;if(!r.then)break;r=r.then.chain}if(!e.then)break;e=e.then.line}return!1})}async function ky(t,e=[],{baseFs:r=new _n,builtins:o={},cwd:a=Ae.toPortablePath(process.cwd()),env:n=process.env,stdin:u=process.stdin,stdout:A=process.stdout,stderr:p=process.stderr,variables:h={},glob:E=gx}={}){let w={};for(let[C,T]of Object.entries(n))typeof T<"u"&&(w[C]=T);let D=new Map(oot);for(let[C,T]of Object.entries(o))D.set(C,T);u===null&&(u=new pl.PassThrough,u.end());let x=uP(t,E);if(!z4(x)&&x.length>0&&e.length>0){let{command:C}=x[x.length-1];for(;C.then;)C=C.then.line;let T=C.chain;for(;T.then;)T=T.then.chain;T.type==="command"&&(T.args=T.args.concat(e.map(L=>({type:"argument",segments:[{type:"text",text:L}]}))))}return await Ex(x,{args:e,baseFs:r,builtins:D,initialStdin:u,initialStdout:A,initialStderr:p,glob:E},{cwd:a,environment:w,exitCode:null,procedures:{},stdin:u,stdout:A,stderr:p,variables:Object.assign({},h,{"?":0}),nextBackgroundJobIndex:1,backgroundJobs:[]})}var Jce,zce,pl,Xce,oot,lot,z1=It(()=>{Pt();Ol();Jce=et(iL()),zce=ve("os"),pl=ve("stream"),Xce=ve("timers/promises");Rce();Tce();Mce();V4();V4();oot=new Map([["cd",async([t=(0,zce.homedir)(),...e],r,o)=>{let a=K.resolve(o.cwd,Ae.toPortablePath(t));if(!(await r.baseFs.statPromise(a).catch(u=>{throw u.code==="ENOENT"?new fl(`cd: no such file or directory: ${t}`):u})).isDirectory())throw new fl(`cd: not a directory: ${t}`);return o.cwd=a,0}],["pwd",async(t,e,r)=>(r.stdout.write(`${Ae.fromPortablePath(r.cwd)} +`),0)],[":",async(t,e,r)=>0],["true",async(t,e,r)=>0],["false",async(t,e,r)=>1],["exit",async([t,...e],r,o)=>o.exitCode=parseInt(t??o.variables["?"],10)],["echo",async(t,e,r)=>(r.stdout.write(`${t.join(" ")} +`),0)],["sleep",async([t],e,r)=>{if(typeof t>"u")throw new fl("sleep: missing operand");let o=Number(t);if(Number.isNaN(o))throw new fl(`sleep: invalid time interval '${t}'`);return await(0,Xce.setTimeout)(1e3*o,0)}],["unset",async(t,e,r)=>{for(let o of t)delete r.environment[o],delete r.variables[o];return 0}],["__ysh_run_procedure",async(t,e,r)=>{let o=r.procedures[t[0]];return await dx(o,{stdin:new Zl(r.stdin),stdout:new Zl(r.stdout),stderr:new Zl(r.stderr)}).run()}],["__ysh_set_redirects",async(t,e,r)=>{let o=r.stdin,a=r.stdout,n=r.stderr,u=[],A=[],p=[],h=0;for(;t[h]!=="--";){let w=t[h++],{type:D,fd:x}=JSON.parse(w),C=J=>{switch(x){case null:case 0:u.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},T=J=>{switch(x){case null:case 1:A.push(J);break;case 2:p.push(J);break;default:throw new Error(`Unsupported file descriptor: "${x}"`)}},L=Number(t[h++]),U=h+L;for(let J=h;Je.baseFs.createReadStream(K.resolve(r.cwd,Ae.toPortablePath(t[J]))));break;case"<<<":C(()=>{let te=new pl.PassThrough;return process.nextTick(()=>{te.write(`${t[J]} +`),te.end()}),te});break;case"<&":C(()=>Wce(Number(t[J]),1,r));break;case">":case">>":{let te=K.resolve(r.cwd,Ae.toPortablePath(t[J]));T(te==="/dev/null"?new pl.Writable({autoDestroy:!0,emitClose:!0,write(le,ce,ue){setImmediate(ue)}}):e.baseFs.createWriteStream(te,D===">>"?{flags:"a"}:void 0))}break;case">&":T(Wce(Number(t[J]),2,r));break;default:throw new Error(`Assertion failed: Unsupported redirection type: "${D}"`)}}if(u.length>0){let w=new pl.PassThrough;o=w;let D=x=>{if(x===u.length)w.end();else{let C=u[x]();C.pipe(w,{end:!1}),C.on("end",()=>{D(x+1)})}};D(0)}if(A.length>0){let w=new pl.PassThrough;a=w;for(let D of A)w.pipe(D)}if(p.length>0){let w=new pl.PassThrough;n=w;for(let D of p)w.pipe(D)}let E=await dx(Z1(t.slice(h+1),e,r),{stdin:new Zl(o),stdout:new Zl(a),stderr:new Zl(n)}).run();return await Promise.all(A.map(w=>new Promise((D,x)=>{w.on("error",C=>{x(C)}),w.on("close",()=>{D()}),w.end()}))),await Promise.all(p.map(w=>new Promise((D,x)=>{w.on("error",C=>{x(C)}),w.on("close",()=>{D()}),w.end()}))),E}]]);lot={addition:(t,e)=>t+e,subtraction:(t,e)=>t-e,multiplication:(t,e)=>t*e,division:(t,e)=>Math.trunc(t/e)}});var Cx=_((MMt,eue)=>{function pot(t,e){for(var r=-1,o=t==null?0:t.length,a=Array(o);++r{var tue=dg(),hot=Cx(),got=jl(),dot=fy(),mot=1/0,rue=tue?tue.prototype:void 0,nue=rue?rue.toString:void 0;function iue(t){if(typeof t=="string")return t;if(got(t))return hot(t,iue)+"";if(dot(t))return nue?nue.call(t):"";var e=t+"";return e=="0"&&1/t==-mot?"-0":e}sue.exports=iue});var t2=_((_Mt,aue)=>{var yot=oue();function Eot(t){return t==null?"":yot(t)}aue.exports=Eot});var X4=_((HMt,lue)=>{function Cot(t,e,r){var o=-1,a=t.length;e<0&&(e=-e>a?0:a+e),r=r>a?a:r,r<0&&(r+=a),a=e>r?0:r-e>>>0,e>>>=0;for(var n=Array(a);++o{var Iot=X4();function wot(t,e,r){var o=t.length;return r=r===void 0?o:r,!e&&r>=o?t:Iot(t,e,r)}cue.exports=wot});var Z4=_((jMt,Aue)=>{var Bot="\\ud800-\\udfff",vot="\\u0300-\\u036f",Dot="\\ufe20-\\ufe2f",Pot="\\u20d0-\\u20ff",Sot=vot+Dot+Pot,bot="\\ufe0e\\ufe0f",xot="\\u200d",kot=RegExp("["+xot+Bot+Sot+bot+"]");function Qot(t){return kot.test(t)}Aue.exports=Qot});var pue=_((GMt,fue)=>{function Fot(t){return t.split("")}fue.exports=Fot});var Iue=_((WMt,Cue)=>{var hue="\\ud800-\\udfff",Rot="\\u0300-\\u036f",Tot="\\ufe20-\\ufe2f",Not="\\u20d0-\\u20ff",Lot=Rot+Tot+Not,Oot="\\ufe0e\\ufe0f",Mot="["+hue+"]",$4="["+Lot+"]",e3="\\ud83c[\\udffb-\\udfff]",Uot="(?:"+$4+"|"+e3+")",gue="[^"+hue+"]",due="(?:\\ud83c[\\udde6-\\uddff]){2}",mue="[\\ud800-\\udbff][\\udc00-\\udfff]",_ot="\\u200d",yue=Uot+"?",Eue="["+Oot+"]?",Hot="(?:"+_ot+"(?:"+[gue,due,mue].join("|")+")"+Eue+yue+")*",qot=Eue+yue+Hot,jot="(?:"+[gue+$4+"?",$4,due,mue,Mot].join("|")+")",Got=RegExp(e3+"(?="+e3+")|"+jot+qot,"g");function Wot(t){return t.match(Got)||[]}Cue.exports=Wot});var Bue=_((YMt,wue)=>{var Yot=pue(),Kot=Z4(),Vot=Iue();function Jot(t){return Kot(t)?Vot(t):Yot(t)}wue.exports=Jot});var Due=_((KMt,vue)=>{var zot=uue(),Xot=Z4(),Zot=Bue(),$ot=t2();function eat(t){return function(e){e=$ot(e);var r=Xot(e)?Zot(e):void 0,o=r?r[0]:e.charAt(0),a=r?zot(r,1).join(""):e.slice(1);return o[t]()+a}}vue.exports=eat});var Sue=_((VMt,Pue)=>{var tat=Due(),rat=tat("toUpperCase");Pue.exports=rat});var t3=_((JMt,bue)=>{var nat=t2(),iat=Sue();function sat(t){return iat(nat(t).toLowerCase())}bue.exports=sat});var xue=_((zMt,Ix)=>{function oat(){var t=0,e=1,r=2,o=3,a=4,n=5,u=6,A=7,p=8,h=9,E=10,w=11,D=12,x=13,C=14,T=15,L=16,U=17,J=0,te=1,le=2,ce=3,ue=4;function Ie(g,me){return 55296<=g.charCodeAt(me)&&g.charCodeAt(me)<=56319&&56320<=g.charCodeAt(me+1)&&g.charCodeAt(me+1)<=57343}function he(g,me){me===void 0&&(me=0);var Ce=g.charCodeAt(me);if(55296<=Ce&&Ce<=56319&&me=1){var fe=g.charCodeAt(me-1),ie=Ce;return 55296<=fe&&fe<=56319?(fe-55296)*1024+(ie-56320)+65536:ie}return Ce}function De(g,me,Ce){var fe=[g].concat(me).concat([Ce]),ie=fe[fe.length-2],Z=Ce,Pe=fe.lastIndexOf(C);if(Pe>1&&fe.slice(1,Pe).every(function(q){return q==o})&&[o,x,U].indexOf(g)==-1)return le;var Re=fe.lastIndexOf(a);if(Re>0&&fe.slice(1,Re).every(function(q){return q==a})&&[D,a].indexOf(ie)==-1)return fe.filter(function(q){return q==a}).length%2==1?ce:ue;if(ie==t&&Z==e)return J;if(ie==r||ie==t||ie==e)return Z==C&&me.every(function(q){return q==o})?le:te;if(Z==r||Z==t||Z==e)return te;if(ie==u&&(Z==u||Z==A||Z==h||Z==E))return J;if((ie==h||ie==A)&&(Z==A||Z==p))return J;if((ie==E||ie==p)&&Z==p)return J;if(Z==o||Z==T)return J;if(Z==n)return J;if(ie==D)return J;var ht=fe.indexOf(o)!=-1?fe.lastIndexOf(o)-1:fe.length-2;return[x,U].indexOf(fe[ht])!=-1&&fe.slice(ht+1,-1).every(function(q){return q==o})&&Z==C||ie==T&&[L,U].indexOf(Z)!=-1?J:me.indexOf(a)!=-1?le:ie==a&&Z==a?J:te}this.nextBreak=function(g,me){if(me===void 0&&(me=0),me<0)return 0;if(me>=g.length-1)return g.length;for(var Ce=Ee(he(g,me)),fe=[],ie=me+1;ie{var aat=/^(.*?)(\x1b\[[^m]+m|\x1b\]8;;.*?(\x1b\\|\u0007))/,wx;function lat(){if(wx)return wx;if(typeof Intl.Segmenter<"u"){let t=new Intl.Segmenter("en",{granularity:"grapheme"});return wx=e=>Array.from(t.segment(e),({segment:r})=>r)}else{let t=xue(),e=new t;return wx=r=>e.splitGraphemes(r)}}kue.exports=(t,e=0,r=t.length)=>{if(e<0||r<0)throw new RangeError("Negative indices aren't supported by this implementation");let o=r-e,a="",n=0,u=0;for(;t.length>0;){let A=t.match(aat)||[t,t,void 0],p=lat()(A[1]),h=Math.min(e-n,p.length);p=p.slice(h);let E=Math.min(o-u,p.length);a+=p.slice(0,E).join(""),n+=h,u+=E,typeof A[2]<"u"&&(a+=A[2]),t=t.slice(A[0].length)}return a}});var nn,r2=It(()=>{nn=process.env.YARN_IS_TEST_ENV?"0.0.0":"4.6.0"});function Oue(t,{configuration:e,json:r}){if(!e.get("enableMessageNames"))return"";let a=Ju(t===null?0:t);return!r&&t===null?Ut(e,a,"grey"):a}function r3(t,{configuration:e,json:r}){let o=Oue(t,{configuration:e,json:r});if(!o||t===null||t===0)return o;let a=vr[t],n=`https://yarnpkg.com/advanced/error-codes#${o}---${a}`.toLowerCase();return ty(e,o,n)}async function Qy({configuration:t,stdout:e,forceError:r},o){let a=await Nt.start({configuration:t,stdout:e,includeFooter:!1},async n=>{let u=!1,A=!1;for(let p of o)typeof p.option<"u"&&(p.error||r?(A=!0,n.reportError(50,p.message)):(u=!0,n.reportWarning(50,p.message)),p.callback?.());u&&!A&&n.reportSeparator()});return a.hasErrors()?a.exitCode():null}var Nue,Bx,cat,Fue,Rue,hh,Lue,Tue,uat,Aat,vx,fat,Nt,n2=It(()=>{Nue=et(Que()),Bx=et(sg());jP();Vl();r2();Wl();cat="\xB7",Fue=["\u280B","\u2819","\u2839","\u2838","\u283C","\u2834","\u2826","\u2827","\u2807","\u280F"],Rue=80,hh=Bx.default.GITHUB_ACTIONS?{start:t=>`::group::${t} +`,end:t=>`::endgroup:: +`}:Bx.default.TRAVIS?{start:t=>`travis_fold:start:${t} +`,end:t=>`travis_fold:end:${t} +`}:Bx.default.GITLAB?{start:t=>`section_start:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}[collapsed=true]\r\x1B[0K${t} +`,end:t=>`section_end:${Math.floor(Date.now()/1e3)}:${t.toLowerCase().replace(/\W+/g,"_")}\r\x1B[0K`}:null,Lue=hh!==null,Tue=new Date,uat=["iTerm.app","Apple_Terminal","WarpTerminal","vscode"].includes(process.env.TERM_PROGRAM)||!!process.env.WT_SESSION,Aat=t=>t,vx=Aat({patrick:{date:[17,3],chars:["\u{1F340}","\u{1F331}"],size:40},simba:{date:[19,7],chars:["\u{1F981}","\u{1F334}"],size:40},jack:{date:[31,10],chars:["\u{1F383}","\u{1F987}"],size:40},hogsfather:{date:[31,12],chars:["\u{1F389}","\u{1F384}"],size:40},default:{chars:["=","-"],size:80}}),fat=uat&&Object.keys(vx).find(t=>{let e=vx[t];return!(e.date&&(e.date[0]!==Tue.getDate()||e.date[1]!==Tue.getMonth()+1))})||"default";Nt=class extends Ws{constructor({configuration:r,stdout:o,json:a=!1,forceSectionAlignment:n=!1,includeNames:u=!0,includePrefix:A=!0,includeFooter:p=!0,includeLogs:h=!a,includeInfos:E=h,includeWarnings:w=h}){super();this.uncommitted=new Set;this.warningCount=0;this.errorCount=0;this.timerFooter=[];this.startTime=Date.now();this.indent=0;this.level=0;this.progress=new Map;this.progressTime=0;this.progressFrame=0;this.progressTimeout=null;this.progressStyle=null;this.progressMaxScaledSize=null;if(g1(this,{configuration:r}),this.configuration=r,this.forceSectionAlignment=n,this.includeNames=u,this.includePrefix=A,this.includeFooter=p,this.includeInfos=E,this.includeWarnings=w,this.json=a,this.stdout=o,r.get("enableProgressBars")&&!a&&o.isTTY&&o.columns>22){let D=r.get("progressBarStyle")||fat;if(!Object.hasOwn(vx,D))throw new Error("Assertion failed: Invalid progress bar style");this.progressStyle=vx[D];let x=Math.min(this.getRecommendedLength(),80);this.progressMaxScaledSize=Math.floor(this.progressStyle.size*x/80)}}static async start(r,o){let a=new this(r),n=process.emitWarning;process.emitWarning=(u,A)=>{if(typeof u!="string"){let h=u;u=h.message,A=A??h.name}let p=typeof A<"u"?`${A}: ${u}`:u;a.reportWarning(0,p)},r.includeVersion&&a.reportInfo(0,Cg(r.configuration,`Yarn ${nn}`,2));try{await o(a)}catch(u){a.reportExceptionOnce(u)}finally{await a.finalize(),process.emitWarning=n}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}getRecommendedLength(){let o=this.progressStyle!==null?this.stdout.columns-1:super.getRecommendedLength();return Math.max(40,o-12-this.indent*2)}startSectionSync({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}async startSectionPromise({reportHeader:r,reportFooter:o,skipIfEmpty:a},n){let u={committed:!1,action:()=>{r?.()}};a?this.uncommitted.add(u):(u.action(),u.committed=!0);let A=Date.now();try{return await n()}catch(p){throw this.reportExceptionOnce(p),p}finally{let p=Date.now();this.uncommitted.delete(u),u.committed&&o?.(p-A)}}startTimerImpl(r,o,a){return{cb:typeof o=="function"?o:a,reportHeader:()=>{this.level+=1,this.reportInfo(null,`\u250C ${r}`),this.indent+=1,hh!==null&&!this.json&&this.includeInfos&&this.stdout.write(hh.start(r))},reportFooter:A=>{if(this.indent-=1,hh!==null&&!this.json&&this.includeInfos){this.stdout.write(hh.end(r));for(let p of this.timerFooter)p()}this.configuration.get("enableTimers")&&A>200?this.reportInfo(null,`\u2514 Completed in ${Ut(this.configuration,A,Ct.DURATION)}`):this.reportInfo(null,"\u2514 Completed"),this.level-=1},skipIfEmpty:(typeof o=="function"?{}:o).skipIfEmpty}}startTimerSync(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionSync(u,n)}async startTimerPromise(r,o,a){let{cb:n,...u}=this.startTimerImpl(r,o,a);return this.startSectionPromise(u,n)}reportSeparator(){this.indent===0?this.writeLine(""):this.reportInfo(null,"")}reportInfo(r,o){if(!this.includeInfos)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"",u=`${this.formatPrefix(n,"blueBright")}${o}`;this.json?this.reportJson({type:"info",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(u)}reportWarning(r,o){if(this.warningCount+=1,!this.includeWarnings)return;this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"warning",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"yellowBright")}${o}`)}reportError(r,o){this.errorCount+=1,this.timerFooter.push(()=>this.reportErrorImpl(r,o)),this.reportErrorImpl(r,o)}reportErrorImpl(r,o){this.commit();let a=this.formatNameWithHyperlink(r),n=a?`${a}: `:"";this.json?this.reportJson({type:"error",name:r,displayName:this.formatName(r),indent:this.formatIndent(),data:o}):this.writeLine(`${this.formatPrefix(n,"redBright")}${o}`,{truncate:!1})}reportFold(r,o){if(!hh)return;let a=`${hh.start(r)}${o}${hh.end(r)}`;this.timerFooter.push(()=>this.stdout.write(a))}reportProgress(r){if(this.progressStyle===null)return{...Promise.resolve(),stop:()=>{}};if(r.hasProgress&&r.hasTitle)throw new Error("Unimplemented: Progress bars can't have both progress and titles.");let o=!1,a=Promise.resolve().then(async()=>{let u={progress:r.hasProgress?0:void 0,title:r.hasTitle?"":void 0};this.progress.set(r,{definition:u,lastScaledSize:r.hasProgress?-1:void 0,lastTitle:void 0}),this.refreshProgress({delta:-1});for await(let{progress:A,title:p}of r)o||u.progress===A&&u.title===p||(u.progress=A,u.title=p,this.refreshProgress());n()}),n=()=>{o||(o=!0,this.progress.delete(r),this.refreshProgress({delta:1}))};return{...a,stop:n}}reportJson(r){this.json&&this.writeLine(`${JSON.stringify(r)}`)}async finalize(){if(!this.includeFooter)return;let r="";this.errorCount>0?r="Failed with errors":this.warningCount>0?r="Done with warnings":r="Done";let o=Ut(this.configuration,Date.now()-this.startTime,Ct.DURATION),a=this.configuration.get("enableTimers")?`${r} in ${o}`:r;this.errorCount>0?this.reportError(0,a):this.warningCount>0?this.reportWarning(0,a):this.reportInfo(0,a)}writeLine(r,{truncate:o}={}){this.clearProgress({clear:!0}),this.stdout.write(`${this.truncate(r,{truncate:o})} +`),this.writeProgress()}writeLines(r,{truncate:o}={}){this.clearProgress({delta:r.length});for(let a of r)this.stdout.write(`${this.truncate(a,{truncate:o})} +`);this.writeProgress()}commit(){let r=this.uncommitted;this.uncommitted=new Set;for(let o of r)o.committed=!0,o.action()}clearProgress({delta:r=0,clear:o=!1}){this.progressStyle!==null&&this.progress.size+r>0&&(this.stdout.write(`\x1B[${this.progress.size+r}A`),(r>0||o)&&this.stdout.write("\x1B[0J"))}writeProgress(){if(this.progressStyle===null||(this.progressTimeout!==null&&clearTimeout(this.progressTimeout),this.progressTimeout=null,this.progress.size===0))return;let r=Date.now();r-this.progressTime>Rue&&(this.progressFrame=(this.progressFrame+1)%Fue.length,this.progressTime=r);let o=Fue[this.progressFrame];for(let a of this.progress.values()){let n="";if(typeof a.lastScaledSize<"u"){let h=this.progressStyle.chars[0].repeat(a.lastScaledSize),E=this.progressStyle.chars[1].repeat(this.progressMaxScaledSize-a.lastScaledSize);n=` ${h}${E}`}let u=this.formatName(null),A=u?`${u}: `:"",p=a.definition.title?` ${a.definition.title}`:"";this.stdout.write(`${Ut(this.configuration,"\u27A4","blueBright")} ${A}${o}${n}${p} +`)}this.progressTimeout=setTimeout(()=>{this.refreshProgress({force:!0})},Rue)}refreshProgress({delta:r=0,force:o=!1}={}){let a=!1,n=!1;if(o||this.progress.size===0)a=!0;else for(let u of this.progress.values()){let A=typeof u.definition.progress<"u"?Math.trunc(this.progressMaxScaledSize*u.definition.progress):void 0,p=u.lastScaledSize;u.lastScaledSize=A;let h=u.lastTitle;if(u.lastTitle=u.definition.title,A!==p||(n=h!==u.definition.title)){a=!0;break}}a&&(this.clearProgress({delta:r,clear:n}),this.writeProgress())}truncate(r,{truncate:o}={}){return this.progressStyle===null&&(o=!1),typeof o>"u"&&(o=this.configuration.get("preferTruncatedLines")),o&&(r=(0,Nue.default)(r,0,this.stdout.columns-1)),r}formatName(r){return this.includeNames?Oue(r,{configuration:this.configuration,json:this.json}):""}formatPrefix(r,o){return this.includePrefix?`${Ut(this.configuration,"\u27A4",o)} ${r}${this.formatIndent()}`:""}formatNameWithHyperlink(r){return this.includeNames?r3(r,{configuration:this.configuration,json:this.json}):""}formatIndent(){return this.level>0||!this.forceSectionAlignment?"\u2502 ".repeat(this.indent):`${cat} `}}});var hn={};Kt(hn,{PackageManager:()=>_ue,detectPackageManager:()=>Hue,executePackageAccessibleBinary:()=>Yue,executePackageScript:()=>Dx,executePackageShellcode:()=>n3,executeWorkspaceAccessibleBinary:()=>Eat,executeWorkspaceLifecycleScript:()=>Gue,executeWorkspaceScript:()=>jue,getPackageAccessibleBinaries:()=>Px,getWorkspaceAccessibleBinaries:()=>Wue,hasPackageScript:()=>dat,hasWorkspaceScript:()=>i3,isNodeScript:()=>s3,makeScriptEnv:()=>i2,maybeExecuteWorkspaceLifecycleScript:()=>yat,prepareExternalProject:()=>gat});async function gh(t,e,r,o=[]){if(process.platform==="win32"){let a=`@goto #_undefined_# 2>NUL || @title %COMSPEC% & @setlocal & @"${r}" ${o.map(n=>`"${n.replace('"','""')}"`).join(" ")} %*`;await ae.writeFilePromise(K.format({dir:t,name:e,ext:".cmd"}),a)}await ae.writeFilePromise(K.join(t,e),`#!/bin/sh +exec "${r}" ${o.map(a=>`'${a.replace(/'/g,`'"'"'`)}'`).join(" ")} "$@" +`,{mode:493})}async function Hue(t){let e=await _t.tryFind(t);if(e?.packageManager){let o=mb(e.packageManager);if(o?.name){let a=`found ${JSON.stringify({packageManager:e.packageManager})} in manifest`,[n]=o.reference.split(".");switch(o.name){case"yarn":return{packageManagerField:!0,packageManager:Number(n)===1?"Yarn Classic":"Yarn",reason:a};case"npm":return{packageManagerField:!0,packageManager:"npm",reason:a};case"pnpm":return{packageManagerField:!0,packageManager:"pnpm",reason:a}}}}let r;try{r=await ae.readFilePromise(K.join(t,mr.lockfile),"utf8")}catch{}return r!==void 0?r.match(/^__metadata:$/m)?{packageManager:"Yarn",reason:'"__metadata" key found in yarn.lock'}:{packageManager:"Yarn Classic",reason:'"__metadata" key not found in yarn.lock, must be a Yarn classic lockfile'}:ae.existsSync(K.join(t,"package-lock.json"))?{packageManager:"npm",reason:`found npm's "package-lock.json" lockfile`}:ae.existsSync(K.join(t,"pnpm-lock.yaml"))?{packageManager:"pnpm",reason:`found pnpm's "pnpm-lock.yaml" lockfile`}:null}async function i2({project:t,locator:e,binFolder:r,ignoreCorepack:o,lifecycleScript:a,baseEnv:n=t?.configuration.env??process.env}){let u={};for(let[E,w]of Object.entries(n))typeof w<"u"&&(u[E.toLowerCase()!=="path"?E:"PATH"]=w);let A=Ae.fromPortablePath(r);u.BERRY_BIN_FOLDER=Ae.fromPortablePath(A);let p=process.env.COREPACK_ROOT&&!o?Ae.join(process.env.COREPACK_ROOT,"dist/yarn.js"):process.argv[1];if(await Promise.all([gh(r,"node",process.execPath),...nn!==null?[gh(r,"run",process.execPath,[p,"run"]),gh(r,"yarn",process.execPath,[p]),gh(r,"yarnpkg",process.execPath,[p]),gh(r,"node-gyp",process.execPath,[p,"run","--top-level","node-gyp"])]:[]]),t&&(u.INIT_CWD=Ae.fromPortablePath(t.configuration.startingCwd),u.PROJECT_CWD=Ae.fromPortablePath(t.cwd)),u.PATH=u.PATH?`${A}${Ae.delimiter}${u.PATH}`:`${A}`,u.npm_execpath=`${A}${Ae.sep}yarn`,u.npm_node_execpath=`${A}${Ae.sep}node`,e){if(!t)throw new Error("Assertion failed: Missing project");let E=t.tryWorkspaceByLocator(e),w=E?E.manifest.version??"":t.storedPackages.get(e.locatorHash).version??"";u.npm_package_name=rn(e),u.npm_package_version=w;let D;if(E)D=E.cwd;else{let x=t.storedPackages.get(e.locatorHash);if(!x)throw new Error(`Package for ${jr(t.configuration,e)} not found in the project`);let C=t.configuration.getLinkers(),T={project:t,report:new Nt({stdout:new dh.PassThrough,configuration:t.configuration})},L=C.find(U=>U.supportsPackage(x,T));if(!L)throw new Error(`The package ${jr(t.configuration,x)} isn't supported by any of the available linkers`);D=await L.findPackageLocation(x,T)}u.npm_package_json=Ae.fromPortablePath(K.join(D,mr.manifest))}let h=nn!==null?`yarn/${nn}`:`yarn/${vf("@yarnpkg/core").version}-core`;return u.npm_config_user_agent=`${h} npm/? node/${process.version} ${process.platform} ${process.arch}`,a&&(u.npm_lifecycle_event=a),t&&await t.configuration.triggerHook(E=>E.setupScriptEnvironment,t,u,async(E,w,D)=>await gh(r,E,w,D)),u}async function gat(t,e,{configuration:r,report:o,workspace:a=null,locator:n=null}){await hat(async()=>{await ae.mktempPromise(async u=>{let A=K.join(u,"pack.log"),p=null,{stdout:h,stderr:E}=r.getSubprocessStreams(A,{prefix:Ae.fromPortablePath(t),report:o}),w=n&&Jc(n)?I1(n):n,D=w?Qa(w):"an external project";h.write(`Packing ${D} from sources +`);let x=await Hue(t),C;x!==null?(h.write(`Using ${x.packageManager} for bootstrap. Reason: ${x.reason} + +`),C=x.packageManager):(h.write(`No package manager configuration detected; defaulting to Yarn + +`),C="Yarn");let T=C==="Yarn"&&!x?.packageManagerField;await ae.mktempPromise(async L=>{let U=await i2({binFolder:L,ignoreCorepack:T,baseEnv:{...process.env,COREPACK_ENABLE_AUTO_PIN:"0"}}),te=new Map([["Yarn Classic",async()=>{let ce=a!==null?["workspace",a]:[],ue=K.join(t,mr.manifest),Ie=await ae.readFilePromise(ue),he=await Xc(process.execPath,[process.argv[1],"set","version","classic","--only-if-needed","--yarn-path"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(he.code!==0)return he.code;await ae.writeFilePromise(ue,Ie),await ae.appendFilePromise(K.join(t,".npmignore"),`/.yarn +`),h.write(` +`),delete U.NODE_ENV;let De=await Xc("yarn",["install"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(De.code!==0)return De.code;h.write(` +`);let Ee=await Xc("yarn",[...ce,"pack","--filename",Ae.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ee.code!==0?Ee.code:0}],["Yarn",async()=>{let ce=a!==null?["workspace",a]:[];U.YARN_ENABLE_INLINE_BUILDS="1";let ue=K.join(t,mr.lockfile);await ae.existsPromise(ue)||await ae.writeFilePromise(ue,"");let Ie=await Xc("yarn",[...ce,"pack","--install-if-needed","--filename",Ae.fromPortablePath(e)],{cwd:t,env:U,stdin:p,stdout:h,stderr:E});return Ie.code!==0?Ie.code:0}],["npm",async()=>{if(a!==null){let me=new dh.PassThrough,Ce=Xm(me);me.pipe(h,{end:!1});let fe=await Xc("npm",["--version"],{cwd:t,env:U,stdin:p,stdout:me,stderr:E,end:0});if(me.end(),fe.code!==0)return h.end(),E.end(),fe.code;let ie=(await Ce).toString().trim();if(!nA(ie,">=7.x")){let Z=rA(null,"npm"),Pe=kn(Z,ie),Re=kn(Z,">=7.x");throw new Error(`Workspaces aren't supported by ${Jn(r,Pe)}; please upgrade to ${Jn(r,Re)} (npm has been detected as the primary package manager for ${Ut(r,t,Ct.PATH)})`)}}let ce=a!==null?["--workspace",a]:[];delete U.npm_config_user_agent,delete U.npm_config_production,delete U.NPM_CONFIG_PRODUCTION,delete U.NODE_ENV;let ue=await Xc("npm",["install","--legacy-peer-deps"],{cwd:t,env:U,stdin:p,stdout:h,stderr:E,end:1});if(ue.code!==0)return ue.code;let Ie=new dh.PassThrough,he=Xm(Ie);Ie.pipe(h);let De=await Xc("npm",["pack","--silent",...ce],{cwd:t,env:U,stdin:p,stdout:Ie,stderr:E});if(De.code!==0)return De.code;let Ee=(await he).toString().trim().replace(/^.*\n/s,""),g=K.resolve(t,Ae.toPortablePath(Ee));return await ae.renamePromise(g,e),0}]]).get(C);if(typeof te>"u")throw new Error("Assertion failed: Unsupported workflow");let le=await te();if(!(le===0||typeof le>"u"))throw ae.detachTemp(u),new Jt(58,`Packing the package failed (exit code ${le}, logs can be found here: ${Ut(r,A,Ct.PATH)})`)})})})}async function dat(t,e,{project:r}){let o=r.tryWorkspaceByLocator(t);if(o!==null)return i3(o,e);let a=r.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${jr(r.configuration,t)} not found in the project`);return await iA.openPromise(async n=>{let u=r.configuration,A=r.configuration.getLinkers(),p={project:r,report:new Nt({stdout:new dh.PassThrough,configuration:u})},h=A.find(x=>x.supportsPackage(a,p));if(!h)throw new Error(`The package ${jr(r.configuration,a)} isn't supported by any of the available linkers`);let E=await h.findPackageLocation(a,p),w=new En(E,{baseFs:n});return(await _t.find(Bt.dot,{baseFs:w})).scripts.has(e)})}async function Dx(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await ae.mktempPromise(async p=>{let{manifest:h,env:E,cwd:w}=await que(t,{project:a,binFolder:p,cwd:o,lifecycleScript:e}),D=h.scripts.get(e);if(typeof D>"u")return 1;let x=async()=>await ky(D,r,{cwd:w,env:E,stdin:n,stdout:u,stderr:A});return await(await a.configuration.reduceHook(T=>T.wrapScriptExecution,x,a,t,e,{script:D,args:r,cwd:w,env:E,stdin:n,stdout:u,stderr:A}))()})}async function n3(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A}){return await ae.mktempPromise(async p=>{let{env:h,cwd:E}=await que(t,{project:a,binFolder:p,cwd:o});return await ky(e,r,{cwd:E,env:h,stdin:n,stdout:u,stderr:A})})}async function mat(t,{binFolder:e,cwd:r,lifecycleScript:o}){let a=await i2({project:t.project,locator:t.anchoredLocator,binFolder:e,lifecycleScript:o});return await o3(e,await Wue(t)),typeof r>"u"&&(r=K.dirname(await ae.realpathPromise(K.join(t.cwd,"package.json")))),{manifest:t.manifest,binFolder:e,env:a,cwd:r}}async function que(t,{project:e,binFolder:r,cwd:o,lifecycleScript:a}){let n=e.tryWorkspaceByLocator(t);if(n!==null)return mat(n,{binFolder:r,cwd:o,lifecycleScript:a});let u=e.storedPackages.get(t.locatorHash);if(!u)throw new Error(`Package for ${jr(e.configuration,t)} not found in the project`);return await iA.openPromise(async A=>{let p=e.configuration,h=e.configuration.getLinkers(),E={project:e,report:new Nt({stdout:new dh.PassThrough,configuration:p})},w=h.find(L=>L.supportsPackage(u,E));if(!w)throw new Error(`The package ${jr(e.configuration,u)} isn't supported by any of the available linkers`);let D=await i2({project:e,locator:t,binFolder:r,lifecycleScript:a});await o3(r,await Px(t,{project:e}));let x=await w.findPackageLocation(u,E),C=new En(x,{baseFs:A}),T=await _t.find(Bt.dot,{baseFs:C});return typeof o>"u"&&(o=x),{manifest:T,binFolder:r,env:D,cwd:o}})}async function jue(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u}){return await Dx(t.anchoredLocator,e,r,{cwd:o,project:t.project,stdin:a,stdout:n,stderr:u})}function i3(t,e){return t.manifest.scripts.has(e)}async function Gue(t,e,{cwd:r,report:o}){let{configuration:a}=t.project,n=null;await ae.mktempPromise(async u=>{let A=K.join(u,`${e}.log`),p=`# This file contains the result of Yarn calling the "${e}" lifecycle script inside a workspace ("${Ae.fromPortablePath(t.cwd)}") +`,{stdout:h,stderr:E}=a.getSubprocessStreams(A,{report:o,prefix:jr(a,t.anchoredLocator),header:p});o.reportInfo(36,`Calling the "${e}" lifecycle script`);let w=await jue(t,e,[],{cwd:r,stdin:n,stdout:h,stderr:E});if(h.end(),E.end(),w!==0)throw ae.detachTemp(u),new Jt(36,`${(0,Mue.default)(e)} script failed (exit code ${Ut(a,w,Ct.NUMBER)}, logs can be found here: ${Ut(a,A,Ct.PATH)}); run ${Ut(a,`yarn ${e}`,Ct.CODE)} to investigate`)})}async function yat(t,e,r){i3(t,e)&&await Gue(t,e,r)}function s3(t){let e=K.extname(t);if(e.match(/\.[cm]?[jt]sx?$/))return!0;if(e===".exe"||e===".bin")return!1;let r=Buffer.alloc(4),o;try{o=ae.openSync(t,"r")}catch{return!0}try{ae.readSync(o,r,0,r.length,0)}finally{ae.closeSync(o)}let a=r.readUint32BE();return!(a===3405691582||a===3489328638||a===2135247942||(a&4294901760)===1297743872)}async function Px(t,{project:e}){let r=e.configuration,o=new Map,a=e.storedPackages.get(t.locatorHash);if(!a)throw new Error(`Package for ${jr(r,t)} not found in the project`);let n=new dh.Writable,u=r.getLinkers(),A={project:e,report:new Nt({configuration:r,stdout:n})},p=new Set([t.locatorHash]);for(let E of a.dependencies.values()){let w=e.storedResolutions.get(E.descriptorHash);if(!w)throw new Error(`Assertion failed: The resolution (${Jn(r,E)}) should have been registered`);p.add(w)}let h=await Promise.all(Array.from(p,async E=>{let w=e.storedPackages.get(E);if(!w)throw new Error(`Assertion failed: The package (${E}) should have been registered`);if(w.bin.size===0)return ul.skip;let D=u.find(C=>C.supportsPackage(w,A));if(!D)return ul.skip;let x=null;try{x=await D.findPackageLocation(w,A)}catch(C){if(C.code==="LOCATOR_NOT_INSTALLED")return ul.skip;throw C}return{dependency:w,packageLocation:x}}));for(let E of h){if(E===ul.skip)continue;let{dependency:w,packageLocation:D}=E;for(let[x,C]of w.bin){let T=K.resolve(D,C);o.set(x,[w,Ae.fromPortablePath(T),s3(T)])}}return o}async function Wue(t){return await Px(t.anchoredLocator,{project:t.project})}async function o3(t,e){await Promise.all(Array.from(e,([r,[,o,a]])=>a?gh(t,r,process.execPath,[o]):gh(t,r,o,[])))}async function Yue(t,e,r,{cwd:o,project:a,stdin:n,stdout:u,stderr:A,nodeArgs:p=[],packageAccessibleBinaries:h}){h??=await Px(t,{project:a});let E=h.get(e);if(!E)throw new Error(`Binary not found (${e}) for ${jr(a.configuration,t)}`);return await ae.mktempPromise(async w=>{let[,D]=E,x=await i2({project:a,locator:t,binFolder:w});await o3(x.BERRY_BIN_FOLDER,h);let C=s3(Ae.toPortablePath(D))?Xc(process.execPath,[...p,D,...r],{cwd:o,env:x,stdin:n,stdout:u,stderr:A}):Xc(D,r,{cwd:o,env:x,stdin:n,stdout:u,stderr:A}),T;try{T=await C}finally{await ae.removePromise(x.BERRY_BIN_FOLDER)}return T.code})}async function Eat(t,e,r,{cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A}){return await Yue(t.anchoredLocator,e,r,{project:t.project,cwd:o,stdin:a,stdout:n,stderr:u,packageAccessibleBinaries:A})}var Mue,Uue,dh,_ue,pat,hat,a3=It(()=>{Pt();Pt();sA();z1();Mue=et(t3()),Uue=et(lg()),dh=ve("stream");Ay();Vl();n2();r2();ix();Wl();Gl();xf();Io();_ue=(a=>(a.Yarn1="Yarn Classic",a.Yarn2="Yarn",a.Npm="npm",a.Pnpm="pnpm",a))(_ue||{});pat=2,hat=(0,Uue.default)(pat)});var Fy=_((yUt,Vue)=>{"use strict";var Kue=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"]]);Vue.exports=t=>t?Object.keys(t).map(e=>[Kue.has(e)?Kue.get(e):e,t[e]]).reduce((e,r)=>(e[r[0]]=r[1],e),Object.create(null)):{}});var Ty=_((EUt,nAe)=>{"use strict";var Jue=typeof process=="object"&&process?process:{stdout:null,stderr:null},Cat=ve("events"),zue=ve("stream"),Xue=ve("string_decoder").StringDecoder,Lf=Symbol("EOF"),Of=Symbol("maybeEmitEnd"),mh=Symbol("emittedEnd"),Sx=Symbol("emittingEnd"),s2=Symbol("emittedError"),bx=Symbol("closed"),Zue=Symbol("read"),xx=Symbol("flush"),$ue=Symbol("flushChunk"),Ra=Symbol("encoding"),Mf=Symbol("decoder"),kx=Symbol("flowing"),o2=Symbol("paused"),Ry=Symbol("resume"),bs=Symbol("bufferLength"),l3=Symbol("bufferPush"),c3=Symbol("bufferShift"),Do=Symbol("objectMode"),Po=Symbol("destroyed"),u3=Symbol("emitData"),eAe=Symbol("emitEnd"),A3=Symbol("emitEnd2"),Uf=Symbol("async"),a2=t=>Promise.resolve().then(t),tAe=global._MP_NO_ITERATOR_SYMBOLS_!=="1",Iat=tAe&&Symbol.asyncIterator||Symbol("asyncIterator not implemented"),wat=tAe&&Symbol.iterator||Symbol("iterator not implemented"),Bat=t=>t==="end"||t==="finish"||t==="prefinish",vat=t=>t instanceof ArrayBuffer||typeof t=="object"&&t.constructor&&t.constructor.name==="ArrayBuffer"&&t.byteLength>=0,Dat=t=>!Buffer.isBuffer(t)&&ArrayBuffer.isView(t),Qx=class{constructor(e,r,o){this.src=e,this.dest=r,this.opts=o,this.ondrain=()=>e[Ry](),r.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},f3=class extends Qx{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,r,o){super(e,r,o),this.proxyErrors=a=>r.emit("error",a),e.on("error",this.proxyErrors)}};nAe.exports=class rAe extends zue{constructor(e){super(),this[kx]=!1,this[o2]=!1,this.pipes=[],this.buffer=[],this[Do]=e&&e.objectMode||!1,this[Do]?this[Ra]=null:this[Ra]=e&&e.encoding||null,this[Ra]==="buffer"&&(this[Ra]=null),this[Uf]=e&&!!e.async||!1,this[Mf]=this[Ra]?new Xue(this[Ra]):null,this[Lf]=!1,this[mh]=!1,this[Sx]=!1,this[bx]=!1,this[s2]=null,this.writable=!0,this.readable=!0,this[bs]=0,this[Po]=!1}get bufferLength(){return this[bs]}get encoding(){return this[Ra]}set encoding(e){if(this[Do])throw new Error("cannot set encoding in objectMode");if(this[Ra]&&e!==this[Ra]&&(this[Mf]&&this[Mf].lastNeed||this[bs]))throw new Error("cannot change encoding");this[Ra]!==e&&(this[Mf]=e?new Xue(e):null,this.buffer.length&&(this.buffer=this.buffer.map(r=>this[Mf].write(r)))),this[Ra]=e}setEncoding(e){this.encoding=e}get objectMode(){return this[Do]}set objectMode(e){this[Do]=this[Do]||!!e}get async(){return this[Uf]}set async(e){this[Uf]=this[Uf]||!!e}write(e,r,o){if(this[Lf])throw new Error("write after end");if(this[Po])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof r=="function"&&(o=r,r="utf8"),r||(r="utf8");let a=this[Uf]?a2:n=>n();return!this[Do]&&!Buffer.isBuffer(e)&&(Dat(e)?e=Buffer.from(e.buffer,e.byteOffset,e.byteLength):vat(e)?e=Buffer.from(e):typeof e!="string"&&(this.objectMode=!0)),this[Do]?(this.flowing&&this[bs]!==0&&this[xx](!0),this.flowing?this.emit("data",e):this[l3](e),this[bs]!==0&&this.emit("readable"),o&&a(o),this.flowing):e.length?(typeof e=="string"&&!(r===this[Ra]&&!this[Mf].lastNeed)&&(e=Buffer.from(e,r)),Buffer.isBuffer(e)&&this[Ra]&&(e=this[Mf].write(e)),this.flowing&&this[bs]!==0&&this[xx](!0),this.flowing?this.emit("data",e):this[l3](e),this[bs]!==0&&this.emit("readable"),o&&a(o),this.flowing):(this[bs]!==0&&this.emit("readable"),o&&a(o),this.flowing)}read(e){if(this[Po])return null;if(this[bs]===0||e===0||e>this[bs])return this[Of](),null;this[Do]&&(e=null),this.buffer.length>1&&!this[Do]&&(this.encoding?this.buffer=[this.buffer.join("")]:this.buffer=[Buffer.concat(this.buffer,this[bs])]);let r=this[Zue](e||null,this.buffer[0]);return this[Of](),r}[Zue](e,r){return e===r.length||e===null?this[c3]():(this.buffer[0]=r.slice(e),r=r.slice(0,e),this[bs]-=e),this.emit("data",r),!this.buffer.length&&!this[Lf]&&this.emit("drain"),r}end(e,r,o){return typeof e=="function"&&(o=e,e=null),typeof r=="function"&&(o=r,r="utf8"),e&&this.write(e,r),o&&this.once("end",o),this[Lf]=!0,this.writable=!1,(this.flowing||!this[o2])&&this[Of](),this}[Ry](){this[Po]||(this[o2]=!1,this[kx]=!0,this.emit("resume"),this.buffer.length?this[xx]():this[Lf]?this[Of]():this.emit("drain"))}resume(){return this[Ry]()}pause(){this[kx]=!1,this[o2]=!0}get destroyed(){return this[Po]}get flowing(){return this[kx]}get paused(){return this[o2]}[l3](e){this[Do]?this[bs]+=1:this[bs]+=e.length,this.buffer.push(e)}[c3](){return this.buffer.length&&(this[Do]?this[bs]-=1:this[bs]-=this.buffer[0].length),this.buffer.shift()}[xx](e){do;while(this[$ue](this[c3]()));!e&&!this.buffer.length&&!this[Lf]&&this.emit("drain")}[$ue](e){return e?(this.emit("data",e),this.flowing):!1}pipe(e,r){if(this[Po])return;let o=this[mh];return r=r||{},e===Jue.stdout||e===Jue.stderr?r.end=!1:r.end=r.end!==!1,r.proxyErrors=!!r.proxyErrors,o?r.end&&e.end():(this.pipes.push(r.proxyErrors?new f3(this,e,r):new Qx(this,e,r)),this[Uf]?a2(()=>this[Ry]()):this[Ry]()),e}unpipe(e){let r=this.pipes.find(o=>o.dest===e);r&&(this.pipes.splice(this.pipes.indexOf(r),1),r.unpipe())}addListener(e,r){return this.on(e,r)}on(e,r){let o=super.on(e,r);return e==="data"&&!this.pipes.length&&!this.flowing?this[Ry]():e==="readable"&&this[bs]!==0?super.emit("readable"):Bat(e)&&this[mh]?(super.emit(e),this.removeAllListeners(e)):e==="error"&&this[s2]&&(this[Uf]?a2(()=>r.call(this,this[s2])):r.call(this,this[s2])),o}get emittedEnd(){return this[mh]}[Of](){!this[Sx]&&!this[mh]&&!this[Po]&&this.buffer.length===0&&this[Lf]&&(this[Sx]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[bx]&&this.emit("close"),this[Sx]=!1)}emit(e,r,...o){if(e!=="error"&&e!=="close"&&e!==Po&&this[Po])return;if(e==="data")return r?this[Uf]?a2(()=>this[u3](r)):this[u3](r):!1;if(e==="end")return this[eAe]();if(e==="close"){if(this[bx]=!0,!this[mh]&&!this[Po])return;let n=super.emit("close");return this.removeAllListeners("close"),n}else if(e==="error"){this[s2]=r;let n=super.emit("error",r);return this[Of](),n}else if(e==="resume"){let n=super.emit("resume");return this[Of](),n}else if(e==="finish"||e==="prefinish"){let n=super.emit(e);return this.removeAllListeners(e),n}let a=super.emit(e,r,...o);return this[Of](),a}[u3](e){for(let o of this.pipes)o.dest.write(e)===!1&&this.pause();let r=super.emit("data",e);return this[Of](),r}[eAe](){this[mh]||(this[mh]=!0,this.readable=!1,this[Uf]?a2(()=>this[A3]()):this[A3]())}[A3](){if(this[Mf]){let r=this[Mf].end();if(r){for(let o of this.pipes)o.dest.write(r);super.emit("data",r)}}for(let r of this.pipes)r.end();let e=super.emit("end");return this.removeAllListeners("end"),e}collect(){let e=[];this[Do]||(e.dataLength=0);let r=this.promise();return this.on("data",o=>{e.push(o),this[Do]||(e.dataLength+=o.length)}),r.then(()=>e)}concat(){return this[Do]?Promise.reject(new Error("cannot concat in objectMode")):this.collect().then(e=>this[Do]?Promise.reject(new Error("cannot concat in objectMode")):this[Ra]?e.join(""):Buffer.concat(e,e.dataLength))}promise(){return new Promise((e,r)=>{this.on(Po,()=>r(new Error("stream destroyed"))),this.on("error",o=>r(o)),this.on("end",()=>e())})}[Iat](){return{next:()=>{let r=this.read();if(r!==null)return Promise.resolve({done:!1,value:r});if(this[Lf])return Promise.resolve({done:!0});let o=null,a=null,n=h=>{this.removeListener("data",u),this.removeListener("end",A),a(h)},u=h=>{this.removeListener("error",n),this.removeListener("end",A),this.pause(),o({value:h,done:!!this[Lf]})},A=()=>{this.removeListener("error",n),this.removeListener("data",u),o({done:!0})},p=()=>n(new Error("stream destroyed"));return new Promise((h,E)=>{a=E,o=h,this.once(Po,p),this.once("error",n),this.once("end",A),this.once("data",u)})}}}[wat](){return{next:()=>{let r=this.read();return{value:r,done:r===null}}}}destroy(e){return this[Po]?(e?this.emit("error",e):this.emit(Po),this):(this[Po]=!0,this.buffer.length=0,this[bs]=0,typeof this.close=="function"&&!this[bx]&&this.close(),e?this.emit("error",e):this.emit(Po),this)}static isStream(e){return!!e&&(e instanceof rAe||e instanceof zue||e instanceof Cat&&(typeof e.pipe=="function"||typeof e.write=="function"&&typeof e.end=="function"))}}});var sAe=_((CUt,iAe)=>{var Pat=ve("zlib").constants||{ZLIB_VERNUM:4736};iAe.exports=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},Pat))});var b3=_(hl=>{"use strict";var m3=ve("assert"),yh=ve("buffer").Buffer,lAe=ve("zlib"),Tg=hl.constants=sAe(),Sat=Ty(),oAe=yh.concat,Ng=Symbol("_superWrite"),Ly=class extends Error{constructor(e){super("zlib: "+e.message),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,this.constructor)}get name(){return"ZlibError"}},bat=Symbol("opts"),l2=Symbol("flushFlag"),aAe=Symbol("finishFlushFlag"),S3=Symbol("fullFlushFlag"),ui=Symbol("handle"),Fx=Symbol("onError"),Ny=Symbol("sawError"),p3=Symbol("level"),h3=Symbol("strategy"),g3=Symbol("ended"),IUt=Symbol("_defaultFullFlush"),Rx=class extends Sat{constructor(e,r){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");super(e),this[Ny]=!1,this[g3]=!1,this[bat]=e,this[l2]=e.flush,this[aAe]=e.finishFlush;try{this[ui]=new lAe[r](e)}catch(o){throw new Ly(o)}this[Fx]=o=>{this[Ny]||(this[Ny]=!0,this.close(),this.emit("error",o))},this[ui].on("error",o=>this[Fx](new Ly(o))),this.once("end",()=>this.close)}close(){this[ui]&&(this[ui].close(),this[ui]=null,this.emit("close"))}reset(){if(!this[Ny])return m3(this[ui],"zlib binding closed"),this[ui].reset()}flush(e){this.ended||(typeof e!="number"&&(e=this[S3]),this.write(Object.assign(yh.alloc(0),{[l2]:e})))}end(e,r,o){return e&&this.write(e,r),this.flush(this[aAe]),this[g3]=!0,super.end(null,null,o)}get ended(){return this[g3]}write(e,r,o){if(typeof r=="function"&&(o=r,r="utf8"),typeof e=="string"&&(e=yh.from(e,r)),this[Ny])return;m3(this[ui],"zlib binding closed");let a=this[ui]._handle,n=a.close;a.close=()=>{};let u=this[ui].close;this[ui].close=()=>{},yh.concat=h=>h;let A;try{let h=typeof e[l2]=="number"?e[l2]:this[l2];A=this[ui]._processChunk(e,h),yh.concat=oAe}catch(h){yh.concat=oAe,this[Fx](new Ly(h))}finally{this[ui]&&(this[ui]._handle=a,a.close=n,this[ui].close=u,this[ui].removeAllListeners("error"))}this[ui]&&this[ui].on("error",h=>this[Fx](new Ly(h)));let p;if(A)if(Array.isArray(A)&&A.length>0){p=this[Ng](yh.from(A[0]));for(let h=1;h{this.flush(a),n()};try{this[ui].params(e,r)}finally{this[ui].flush=o}this[ui]&&(this[p3]=e,this[h3]=r)}}}},y3=class extends _f{constructor(e){super(e,"Deflate")}},E3=class extends _f{constructor(e){super(e,"Inflate")}},d3=Symbol("_portable"),C3=class extends _f{constructor(e){super(e,"Gzip"),this[d3]=e&&!!e.portable}[Ng](e){return this[d3]?(this[d3]=!1,e[9]=255,super[Ng](e)):super[Ng](e)}},I3=class extends _f{constructor(e){super(e,"Gunzip")}},w3=class extends _f{constructor(e){super(e,"DeflateRaw")}},B3=class extends _f{constructor(e){super(e,"InflateRaw")}},v3=class extends _f{constructor(e){super(e,"Unzip")}},Tx=class extends Rx{constructor(e,r){e=e||{},e.flush=e.flush||Tg.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||Tg.BROTLI_OPERATION_FINISH,super(e,r),this[S3]=Tg.BROTLI_OPERATION_FLUSH}},D3=class extends Tx{constructor(e){super(e,"BrotliCompress")}},P3=class extends Tx{constructor(e){super(e,"BrotliDecompress")}};hl.Deflate=y3;hl.Inflate=E3;hl.Gzip=C3;hl.Gunzip=I3;hl.DeflateRaw=w3;hl.InflateRaw=B3;hl.Unzip=v3;typeof lAe.BrotliCompress=="function"?(hl.BrotliCompress=D3,hl.BrotliDecompress=P3):hl.BrotliCompress=hl.BrotliDecompress=class{constructor(){throw new Error("Brotli is not supported in this version of Node.js")}}});var Oy=_((vUt,cAe)=>{var xat=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;cAe.exports=xat!=="win32"?t=>t:t=>t&&t.replace(/\\/g,"/")});var Nx=_((PUt,uAe)=>{"use strict";var kat=Ty(),x3=Oy(),k3=Symbol("slurp");uAe.exports=class extends kat{constructor(e,r,o){switch(super(),this.pause(),this.extended=r,this.globalExtended=o,this.header=e,this.startBlockSize=512*Math.ceil(e.size/512),this.blockRemain=this.startBlockSize,this.remain=e.size,this.type=e.type,this.meta=!1,this.ignore=!1,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}this.path=x3(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=e.size,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=x3(e.linkpath),this.uname=e.uname,this.gname=e.gname,r&&this[k3](r),o&&this[k3](o,!0)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");let o=this.remain,a=this.blockRemain;return this.remain=Math.max(0,o-r),this.blockRemain=Math.max(0,a-r),this.ignore?!0:o>=r?super.write(e):super.write(e.slice(0,o))}[k3](e,r){for(let o in e)e[o]!==null&&e[o]!==void 0&&!(r&&o==="path")&&(this[o]=o==="path"||o==="linkpath"?x3(e[o]):e[o])}}});var Q3=_(Lx=>{"use strict";Lx.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);Lx.code=new Map(Array.from(Lx.name).map(t=>[t[1],t[0]]))});var hAe=_((bUt,pAe)=>{"use strict";var Qat=(t,e)=>{if(Number.isSafeInteger(t))t<0?Rat(t,e):Fat(t,e);else throw Error("cannot encode number outside of javascript safe integer range");return e},Fat=(t,e)=>{e[0]=128;for(var r=e.length;r>1;r--)e[r-1]=t&255,t=Math.floor(t/256)},Rat=(t,e)=>{e[0]=255;var r=!1;t=t*-1;for(var o=e.length;o>1;o--){var a=t&255;t=Math.floor(t/256),r?e[o-1]=AAe(a):a===0?e[o-1]=0:(r=!0,e[o-1]=fAe(a))}},Tat=t=>{let e=t[0],r=e===128?Lat(t.slice(1,t.length)):e===255?Nat(t):null;if(r===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(r))throw Error("parsed number outside of javascript safe integer range");return r},Nat=t=>{for(var e=t.length,r=0,o=!1,a=e-1;a>-1;a--){var n=t[a],u;o?u=AAe(n):n===0?u=n:(o=!0,u=fAe(n)),u!==0&&(r-=u*Math.pow(256,e-a-1))}return r},Lat=t=>{for(var e=t.length,r=0,o=e-1;o>-1;o--){var a=t[o];a!==0&&(r+=a*Math.pow(256,e-o-1))}return r},AAe=t=>(255^t)&255,fAe=t=>(255^t)+1&255;pAe.exports={encode:Qat,parse:Tat}});var Uy=_((xUt,dAe)=>{"use strict";var F3=Q3(),My=ve("path").posix,gAe=hAe(),R3=Symbol("slurp"),gl=Symbol("type"),L3=class{constructor(e,r,o,a){this.cksumValid=!1,this.needPax=!1,this.nullBlock=!1,this.block=null,this.path=null,this.mode=null,this.uid=null,this.gid=null,this.size=null,this.mtime=null,this.cksum=null,this[gl]="0",this.linkpath=null,this.uname=null,this.gname=null,this.devmaj=0,this.devmin=0,this.atime=null,this.ctime=null,Buffer.isBuffer(e)?this.decode(e,r||0,o,a):e&&this.set(e)}decode(e,r,o,a){if(r||(r=0),!e||!(e.length>=r+512))throw new Error("need 512 bytes for header");if(this.path=Lg(e,r,100),this.mode=Eh(e,r+100,8),this.uid=Eh(e,r+108,8),this.gid=Eh(e,r+116,8),this.size=Eh(e,r+124,12),this.mtime=T3(e,r+136,12),this.cksum=Eh(e,r+148,12),this[R3](o),this[R3](a,!0),this[gl]=Lg(e,r+156,1),this[gl]===""&&(this[gl]="0"),this[gl]==="0"&&this.path.substr(-1)==="/"&&(this[gl]="5"),this[gl]==="5"&&(this.size=0),this.linkpath=Lg(e,r+157,100),e.slice(r+257,r+265).toString()==="ustar\x0000")if(this.uname=Lg(e,r+265,32),this.gname=Lg(e,r+297,32),this.devmaj=Eh(e,r+329,8),this.devmin=Eh(e,r+337,8),e[r+475]!==0){let u=Lg(e,r+345,155);this.path=u+"/"+this.path}else{let u=Lg(e,r+345,130);u&&(this.path=u+"/"+this.path),this.atime=T3(e,r+476,12),this.ctime=T3(e,r+488,12)}let n=8*32;for(let u=r;u=r+512))throw new Error("need 512 bytes for header");let o=this.ctime||this.atime?130:155,a=Oat(this.path||"",o),n=a[0],u=a[1];this.needPax=a[2],this.needPax=Og(e,r,100,n)||this.needPax,this.needPax=Ch(e,r+100,8,this.mode)||this.needPax,this.needPax=Ch(e,r+108,8,this.uid)||this.needPax,this.needPax=Ch(e,r+116,8,this.gid)||this.needPax,this.needPax=Ch(e,r+124,12,this.size)||this.needPax,this.needPax=N3(e,r+136,12,this.mtime)||this.needPax,e[r+156]=this[gl].charCodeAt(0),this.needPax=Og(e,r+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",r+257,8),this.needPax=Og(e,r+265,32,this.uname)||this.needPax,this.needPax=Og(e,r+297,32,this.gname)||this.needPax,this.needPax=Ch(e,r+329,8,this.devmaj)||this.needPax,this.needPax=Ch(e,r+337,8,this.devmin)||this.needPax,this.needPax=Og(e,r+345,o,u)||this.needPax,e[r+475]!==0?this.needPax=Og(e,r+345,155,u)||this.needPax:(this.needPax=Og(e,r+345,130,u)||this.needPax,this.needPax=N3(e,r+476,12,this.atime)||this.needPax,this.needPax=N3(e,r+488,12,this.ctime)||this.needPax);let A=8*32;for(let p=r;p{let o=t,a="",n,u=My.parse(t).root||".";if(Buffer.byteLength(o)<100)n=[o,a,!1];else{a=My.dirname(o),o=My.basename(o);do Buffer.byteLength(o)<=100&&Buffer.byteLength(a)<=e?n=[o,a,!1]:Buffer.byteLength(o)>100&&Buffer.byteLength(a)<=e?n=[o.substr(0,99),a,!0]:(o=My.join(My.basename(a),o),a=My.dirname(a));while(a!==u&&!n);n||(n=[t.substr(0,99),"",!0])}return n},Lg=(t,e,r)=>t.slice(e,e+r).toString("utf8").replace(/\0.*/,""),T3=(t,e,r)=>Mat(Eh(t,e,r)),Mat=t=>t===null?null:new Date(t*1e3),Eh=(t,e,r)=>t[e]&128?gAe.parse(t.slice(e,e+r)):_at(t,e,r),Uat=t=>isNaN(t)?null:t,_at=(t,e,r)=>Uat(parseInt(t.slice(e,e+r).toString("utf8").replace(/\0.*$/,"").trim(),8)),Hat={12:8589934591,8:2097151},Ch=(t,e,r,o)=>o===null?!1:o>Hat[r]||o<0?(gAe.encode(o,t.slice(e,e+r)),!0):(qat(t,e,r,o),!1),qat=(t,e,r,o)=>t.write(jat(o,r),e,r,"ascii"),jat=(t,e)=>Gat(Math.floor(t).toString(8),e),Gat=(t,e)=>(t.length===e-1?t:new Array(e-t.length-1).join("0")+t+" ")+"\0",N3=(t,e,r,o)=>o===null?!1:Ch(t,e,r,o.getTime()/1e3),Wat=new Array(156).join("\0"),Og=(t,e,r,o)=>o===null?!1:(t.write(o+Wat,e,r,"utf8"),o.length!==Buffer.byteLength(o)||o.length>r);dAe.exports=L3});var Ox=_((kUt,mAe)=>{"use strict";var Yat=Uy(),Kat=ve("path"),c2=class{constructor(e,r){this.atime=e.atime||null,this.charset=e.charset||null,this.comment=e.comment||null,this.ctime=e.ctime||null,this.gid=e.gid||null,this.gname=e.gname||null,this.linkpath=e.linkpath||null,this.mtime=e.mtime||null,this.path=e.path||null,this.size=e.size||null,this.uid=e.uid||null,this.uname=e.uname||null,this.dev=e.dev||null,this.ino=e.ino||null,this.nlink=e.nlink||null,this.global=r||!1}encode(){let e=this.encodeBody();if(e==="")return null;let r=Buffer.byteLength(e),o=512*Math.ceil(1+r/512),a=Buffer.allocUnsafe(o);for(let n=0;n<512;n++)a[n]=0;new Yat({path:("PaxHeader/"+Kat.basename(this.path)).slice(0,99),mode:this.mode||420,uid:this.uid||null,gid:this.gid||null,size:r,mtime:this.mtime||null,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime||null,ctime:this.ctime||null}).encode(a),a.write(e,512,r,"utf8");for(let n=r+512;n=Math.pow(10,n)&&(n+=1),n+a+o}};c2.parse=(t,e,r)=>new c2(Vat(Jat(t),e),r);var Vat=(t,e)=>e?Object.keys(t).reduce((r,o)=>(r[o]=t[o],r),e):t,Jat=t=>t.replace(/\n$/,"").split(` +`).reduce(zat,Object.create(null)),zat=(t,e)=>{let r=parseInt(e,10);if(r!==Buffer.byteLength(e)+1)return t;e=e.substr((r+" ").length);let o=e.split("="),a=o.shift().replace(/^SCHILY\.(dev|ino|nlink)/,"$1");if(!a)return t;let n=o.join("=");return t[a]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(a)?new Date(n*1e3):/^[0-9]+$/.test(n)?+n:n,t};mAe.exports=c2});var _y=_((QUt,yAe)=>{yAe.exports=t=>{let e=t.length-1,r=-1;for(;e>-1&&t.charAt(e)==="/";)r=e,e--;return r===-1?t:t.slice(0,r)}});var Mx=_((FUt,EAe)=>{"use strict";EAe.exports=t=>class extends t{warn(e,r,o={}){this.file&&(o.file=this.file),this.cwd&&(o.cwd=this.cwd),o.code=r instanceof Error&&r.code||e,o.tarCode=e,!this.strict&&o.recoverable!==!1?(r instanceof Error&&(o=Object.assign(r,o),r=r.message),this.emit("warn",o.tarCode,r,o)):r instanceof Error?this.emit("error",Object.assign(r,o)):this.emit("error",Object.assign(new Error(`${e}: ${r}`),o))}}});var M3=_((TUt,CAe)=>{"use strict";var Ux=["|","<",">","?",":"],O3=Ux.map(t=>String.fromCharCode(61440+t.charCodeAt(0))),Xat=new Map(Ux.map((t,e)=>[t,O3[e]])),Zat=new Map(O3.map((t,e)=>[t,Ux[e]]));CAe.exports={encode:t=>Ux.reduce((e,r)=>e.split(r).join(Xat.get(r)),t),decode:t=>O3.reduce((e,r)=>e.split(r).join(Zat.get(r)),t)}});var U3=_((NUt,wAe)=>{var{isAbsolute:$at,parse:IAe}=ve("path").win32;wAe.exports=t=>{let e="",r=IAe(t);for(;$at(t)||r.root;){let o=t.charAt(0)==="/"&&t.slice(0,4)!=="//?/"?"/":r.root;t=t.substr(o.length),e+=o,r=IAe(t)}return[e,t]}});var vAe=_((LUt,BAe)=>{"use strict";BAe.exports=(t,e,r)=>(t&=4095,r&&(t=(t|384)&-19),e&&(t&256&&(t|=64),t&32&&(t|=8),t&4&&(t|=1)),t)});var J3=_((UUt,MAe)=>{"use strict";var QAe=Ty(),FAe=Ox(),RAe=Uy(),lA=ve("fs"),DAe=ve("path"),aA=Oy(),elt=_y(),TAe=(t,e)=>e?(t=aA(t).replace(/^\.(\/|$)/,""),elt(e)+"/"+t):aA(t),tlt=16*1024*1024,PAe=Symbol("process"),SAe=Symbol("file"),bAe=Symbol("directory"),H3=Symbol("symlink"),xAe=Symbol("hardlink"),u2=Symbol("header"),_x=Symbol("read"),q3=Symbol("lstat"),Hx=Symbol("onlstat"),j3=Symbol("onread"),G3=Symbol("onreadlink"),W3=Symbol("openfile"),Y3=Symbol("onopenfile"),Ih=Symbol("close"),qx=Symbol("mode"),K3=Symbol("awaitDrain"),_3=Symbol("ondrain"),cA=Symbol("prefix"),kAe=Symbol("hadError"),NAe=Mx(),rlt=M3(),LAe=U3(),OAe=vAe(),jx=NAe(class extends QAe{constructor(e,r){if(r=r||{},super(r),typeof e!="string")throw new TypeError("path is required");this.path=aA(e),this.portable=!!r.portable,this.myuid=process.getuid&&process.getuid()||0,this.myuser=process.env.USER||"",this.maxReadSize=r.maxReadSize||tlt,this.linkCache=r.linkCache||new Map,this.statCache=r.statCache||new Map,this.preservePaths=!!r.preservePaths,this.cwd=aA(r.cwd||process.cwd()),this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.mtime=r.mtime||null,this.prefix=r.prefix?aA(r.prefix):null,this.fd=null,this.blockLen=null,this.blockRemain=null,this.buf=null,this.offset=null,this.length=null,this.pos=null,this.remain=null,typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=LAe(this.path);a&&(this.path=n,o=a)}this.win32=!!r.win32||process.platform==="win32",this.win32&&(this.path=rlt.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=aA(r.absolute||DAe.resolve(this.cwd,e)),this.path===""&&(this.path="./"),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.statCache.has(this.absolute)?this[Hx](this.statCache.get(this.absolute)):this[q3]()}emit(e,...r){return e==="error"&&(this[kAe]=!0),super.emit(e,...r)}[q3](){lA.lstat(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[Hx](r)})}[Hx](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=ilt(e),this.emit("stat",e),this[PAe]()}[PAe](){switch(this.type){case"File":return this[SAe]();case"Directory":return this[bAe]();case"SymbolicLink":return this[H3]();default:return this.end()}}[qx](e){return OAe(e,this.type==="Directory",this.portable)}[cA](e){return TAe(e,this.prefix)}[u2](){this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.header=new RAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this[qx](this.stat.mode),uid:this.portable?null:this.stat.uid,gid:this.portable?null:this.stat.gid,size:this.stat.size,mtime:this.noMtime?null:this.mtime||this.stat.mtime,type:this.type,uname:this.portable?null:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?null:this.stat.atime,ctime:this.portable?null:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new FAe({atime:this.portable?null:this.header.atime,ctime:this.portable?null:this.header.ctime,gid:this.portable?null:this.header.gid,mtime:this.noMtime?null:this.mtime||this.header.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?null:this.header.uid,uname:this.portable?null:this.header.uname,dev:this.portable?null:this.stat.dev,ino:this.portable?null:this.stat.ino,nlink:this.portable?null:this.stat.nlink}).encode()),super.write(this.header.block)}[bAe](){this.path.substr(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[u2](),this.end()}[H3](){lA.readlink(this.absolute,(e,r)=>{if(e)return this.emit("error",e);this[G3](r)})}[G3](e){this.linkpath=aA(e),this[u2](),this.end()}[xAe](e){this.type="Link",this.linkpath=aA(DAe.relative(this.cwd,e)),this.stat.size=0,this[u2](),this.end()}[SAe](){if(this.stat.nlink>1){let e=this.stat.dev+":"+this.stat.ino;if(this.linkCache.has(e)){let r=this.linkCache.get(e);if(r.indexOf(this.cwd)===0)return this[xAe](r)}this.linkCache.set(e,this.absolute)}if(this[u2](),this.stat.size===0)return this.end();this[W3]()}[W3](){lA.open(this.absolute,"r",(e,r)=>{if(e)return this.emit("error",e);this[Y3](r)})}[Y3](e){if(this.fd=e,this[kAe])return this[Ih]();this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let r=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(r),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[_x]()}[_x](){let{fd:e,buf:r,offset:o,length:a,pos:n}=this;lA.read(e,r,o,a,n,(u,A)=>{if(u)return this[Ih](()=>this.emit("error",u));this[j3](A)})}[Ih](e){lA.close(this.fd,e)}[j3](e){if(e<=0&&this.remain>0){let a=new Error("encountered unexpected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[Ih](()=>this.emit("error",a))}if(e>this.remain){let a=new Error("did not encounter expected EOF");return a.path=this.absolute,a.syscall="read",a.code="EOF",this[Ih](()=>this.emit("error",a))}if(e===this.remain)for(let a=e;athis[_3]())}[K3](e){this.once("drain",e)}write(e){if(this.blockRemaine?this.emit("error",e):this.end());this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[_x]()}}),V3=class extends jx{[q3](){this[Hx](lA.lstatSync(this.absolute))}[H3](){this[G3](lA.readlinkSync(this.absolute))}[W3](){this[Y3](lA.openSync(this.absolute,"r"))}[_x](){let e=!0;try{let{fd:r,buf:o,offset:a,length:n,pos:u}=this,A=lA.readSync(r,o,a,n,u);this[j3](A),e=!1}finally{if(e)try{this[Ih](()=>{})}catch{}}}[K3](e){e()}[Ih](e){lA.closeSync(this.fd),e()}},nlt=NAe(class extends QAe{constructor(e,r){r=r||{},super(r),this.preservePaths=!!r.preservePaths,this.portable=!!r.portable,this.strict=!!r.strict,this.noPax=!!r.noPax,this.noMtime=!!r.noMtime,this.readEntry=e,this.type=e.type,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=r.prefix||null,this.path=aA(e.path),this.mode=this[qx](e.mode),this.uid=this.portable?null:e.uid,this.gid=this.portable?null:e.gid,this.uname=this.portable?null:e.uname,this.gname=this.portable?null:e.gname,this.size=e.size,this.mtime=this.noMtime?null:r.mtime||e.mtime,this.atime=this.portable?null:e.atime,this.ctime=this.portable?null:e.ctime,this.linkpath=aA(e.linkpath),typeof r.onwarn=="function"&&this.on("warn",r.onwarn);let o=!1;if(!this.preservePaths){let[a,n]=LAe(this.path);a&&(this.path=n,o=a)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.header=new RAe({path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?null:this.uid,gid:this.portable?null:this.gid,size:this.size,mtime:this.noMtime?null:this.mtime,type:this.type,uname:this.portable?null:this.uname,atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime}),o&&this.warn("TAR_ENTRY_INFO",`stripping ${o} from absolute path`,{entry:this,path:o+this.path}),this.header.encode()&&!this.noPax&&super.write(new FAe({atime:this.portable?null:this.atime,ctime:this.portable?null:this.ctime,gid:this.portable?null:this.gid,mtime:this.noMtime?null:this.mtime,path:this[cA](this.path),linkpath:this.type==="Link"?this[cA](this.linkpath):this.linkpath,size:this.size,uid:this.portable?null:this.uid,uname:this.portable?null:this.uname,dev:this.portable?null:this.readEntry.dev,ino:this.portable?null:this.readEntry.ino,nlink:this.portable?null:this.readEntry.nlink}).encode()),super.write(this.header.block),e.pipe(this)}[cA](e){return TAe(e,this.prefix)}[qx](e){return OAe(e,this.type==="Directory",this.portable)}write(e){let r=e.length;if(r>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=r,super.write(e)}end(){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),super.end()}});jx.Sync=V3;jx.Tar=nlt;var ilt=t=>t.isFile()?"File":t.isDirectory()?"Directory":t.isSymbolicLink()?"SymbolicLink":"Unsupported";MAe.exports=jx});var Zx=_((HUt,WAe)=>{"use strict";var zx=class{constructor(e,r){this.path=e||"./",this.absolute=r,this.entry=null,this.stat=null,this.readdir=null,this.pending=!1,this.ignore=!1,this.piped=!1}},slt=Ty(),olt=b3(),alt=Nx(),i8=J3(),llt=i8.Sync,clt=i8.Tar,ult=$P(),UAe=Buffer.alloc(1024),Yx=Symbol("onStat"),Gx=Symbol("ended"),uA=Symbol("queue"),Hy=Symbol("current"),Mg=Symbol("process"),Wx=Symbol("processing"),_Ae=Symbol("processJob"),AA=Symbol("jobs"),z3=Symbol("jobDone"),Kx=Symbol("addFSEntry"),HAe=Symbol("addTarEntry"),e8=Symbol("stat"),t8=Symbol("readdir"),Vx=Symbol("onreaddir"),Jx=Symbol("pipe"),qAe=Symbol("entry"),X3=Symbol("entryOpt"),r8=Symbol("writeEntryClass"),GAe=Symbol("write"),Z3=Symbol("ondrain"),Xx=ve("fs"),jAe=ve("path"),Alt=Mx(),$3=Oy(),s8=Alt(class extends slt{constructor(e){super(e),e=e||Object.create(null),this.opt=e,this.file=e.file||"",this.cwd=e.cwd||process.cwd(),this.maxReadSize=e.maxReadSize,this.preservePaths=!!e.preservePaths,this.strict=!!e.strict,this.noPax=!!e.noPax,this.prefix=$3(e.prefix||""),this.linkCache=e.linkCache||new Map,this.statCache=e.statCache||new Map,this.readdirCache=e.readdirCache||new Map,this[r8]=i8,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),this.portable=!!e.portable,this.zip=null,e.gzip?(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new olt.Gzip(e.gzip),this.zip.on("data",r=>super.write(r)),this.zip.on("end",r=>super.end()),this.zip.on("drain",r=>this[Z3]()),this.on("resume",r=>this.zip.resume())):this.on("drain",this[Z3]),this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,this.mtime=e.mtime||null,this.filter=typeof e.filter=="function"?e.filter:r=>!0,this[uA]=new ult,this[AA]=0,this.jobs=+e.jobs||4,this[Wx]=!1,this[Gx]=!1}[GAe](e){return super.write(e)}add(e){return this.write(e),this}end(e){return e&&this.write(e),this[Gx]=!0,this[Mg](),this}write(e){if(this[Gx])throw new Error("write after end");return e instanceof alt?this[HAe](e):this[Kx](e),this.flowing}[HAe](e){let r=$3(jAe.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let o=new zx(e.path,r,!1);o.entry=new clt(e,this[X3](o)),o.entry.on("end",a=>this[z3](o)),this[AA]+=1,this[uA].push(o)}this[Mg]()}[Kx](e){let r=$3(jAe.resolve(this.cwd,e));this[uA].push(new zx(e,r)),this[Mg]()}[e8](e){e.pending=!0,this[AA]+=1;let r=this.follow?"stat":"lstat";Xx[r](e.absolute,(o,a)=>{e.pending=!1,this[AA]-=1,o?this.emit("error",o):this[Yx](e,a)})}[Yx](e,r){this.statCache.set(e.absolute,r),e.stat=r,this.filter(e.path,r)||(e.ignore=!0),this[Mg]()}[t8](e){e.pending=!0,this[AA]+=1,Xx.readdir(e.absolute,(r,o)=>{if(e.pending=!1,this[AA]-=1,r)return this.emit("error",r);this[Vx](e,o)})}[Vx](e,r){this.readdirCache.set(e.absolute,r),e.readdir=r,this[Mg]()}[Mg](){if(!this[Wx]){this[Wx]=!0;for(let e=this[uA].head;e!==null&&this[AA]this.warn(r,o,a),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix}}[qAe](e){this[AA]+=1;try{return new this[r8](e.path,this[X3](e)).on("end",()=>this[z3](e)).on("error",r=>this.emit("error",r))}catch(r){this.emit("error",r)}}[Z3](){this[Hy]&&this[Hy].entry&&this[Hy].entry.resume()}[Jx](e){e.piped=!0,e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[Kx](u+a)});let r=e.entry,o=this.zip;o?r.on("data",a=>{o.write(a)||r.pause()}):r.on("data",a=>{super.write(a)||r.pause()})}pause(){return this.zip&&this.zip.pause(),super.pause()}}),n8=class extends s8{constructor(e){super(e),this[r8]=llt}pause(){}resume(){}[e8](e){let r=this.follow?"statSync":"lstatSync";this[Yx](e,Xx[r](e.absolute))}[t8](e,r){this[Vx](e,Xx.readdirSync(e.absolute))}[Jx](e){let r=e.entry,o=this.zip;e.readdir&&e.readdir.forEach(a=>{let n=e.path,u=n==="./"?"":n.replace(/\/*$/,"/");this[Kx](u+a)}),o?r.on("data",a=>{o.write(a)}):r.on("data",a=>{super[GAe](a)})}};s8.Sync=n8;WAe.exports=s8});var Jy=_(f2=>{"use strict";var flt=Ty(),plt=ve("events").EventEmitter,Ta=ve("fs"),l8=Ta.writev;if(!l8){let t=process.binding("fs"),e=t.FSReqWrap||t.FSReqCallback;l8=(r,o,a,n)=>{let u=(p,h)=>n(p,h,o),A=new e;A.oncomplete=u,t.writeBuffers(r,o,a,A)}}var Ky=Symbol("_autoClose"),Zc=Symbol("_close"),A2=Symbol("_ended"),zn=Symbol("_fd"),YAe=Symbol("_finished"),Bh=Symbol("_flags"),o8=Symbol("_flush"),c8=Symbol("_handleChunk"),u8=Symbol("_makeBuf"),nk=Symbol("_mode"),$x=Symbol("_needDrain"),Wy=Symbol("_onerror"),Vy=Symbol("_onopen"),a8=Symbol("_onread"),jy=Symbol("_onwrite"),vh=Symbol("_open"),Hf=Symbol("_path"),Ug=Symbol("_pos"),fA=Symbol("_queue"),Gy=Symbol("_read"),KAe=Symbol("_readSize"),wh=Symbol("_reading"),ek=Symbol("_remain"),VAe=Symbol("_size"),tk=Symbol("_write"),qy=Symbol("_writing"),rk=Symbol("_defaultFlag"),Yy=Symbol("_errored"),ik=class extends flt{constructor(e,r){if(r=r||{},super(r),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[Yy]=!1,this[zn]=typeof r.fd=="number"?r.fd:null,this[Hf]=e,this[KAe]=r.readSize||16*1024*1024,this[wh]=!1,this[VAe]=typeof r.size=="number"?r.size:1/0,this[ek]=this[VAe],this[Ky]=typeof r.autoClose=="boolean"?r.autoClose:!0,typeof this[zn]=="number"?this[Gy]():this[vh]()}get fd(){return this[zn]}get path(){return this[Hf]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[vh](){Ta.open(this[Hf],"r",(e,r)=>this[Vy](e,r))}[Vy](e,r){e?this[Wy](e):(this[zn]=r,this.emit("open",r),this[Gy]())}[u8](){return Buffer.allocUnsafe(Math.min(this[KAe],this[ek]))}[Gy](){if(!this[wh]){this[wh]=!0;let e=this[u8]();if(e.length===0)return process.nextTick(()=>this[a8](null,0,e));Ta.read(this[zn],e,0,e.length,null,(r,o,a)=>this[a8](r,o,a))}}[a8](e,r,o){this[wh]=!1,e?this[Wy](e):this[c8](r,o)&&this[Gy]()}[Zc](){if(this[Ky]&&typeof this[zn]=="number"){let e=this[zn];this[zn]=null,Ta.close(e,r=>r?this.emit("error",r):this.emit("close"))}}[Wy](e){this[wh]=!0,this[Zc](),this.emit("error",e)}[c8](e,r){let o=!1;return this[ek]-=e,e>0&&(o=super.write(ethis[Vy](e,r))}[Vy](e,r){this[rk]&&this[Bh]==="r+"&&e&&e.code==="ENOENT"?(this[Bh]="w",this[vh]()):e?this[Wy](e):(this[zn]=r,this.emit("open",r),this[o8]())}end(e,r){return e&&this.write(e,r),this[A2]=!0,!this[qy]&&!this[fA].length&&typeof this[zn]=="number"&&this[jy](null,0),this}write(e,r){return typeof e=="string"&&(e=Buffer.from(e,r)),this[A2]?(this.emit("error",new Error("write() after end()")),!1):this[zn]===null||this[qy]||this[fA].length?(this[fA].push(e),this[$x]=!0,!1):(this[qy]=!0,this[tk](e),!0)}[tk](e){Ta.write(this[zn],e,0,e.length,this[Ug],(r,o)=>this[jy](r,o))}[jy](e,r){e?this[Wy](e):(this[Ug]!==null&&(this[Ug]+=r),this[fA].length?this[o8]():(this[qy]=!1,this[A2]&&!this[YAe]?(this[YAe]=!0,this[Zc](),this.emit("finish")):this[$x]&&(this[$x]=!1,this.emit("drain"))))}[o8](){if(this[fA].length===0)this[A2]&&this[jy](null,0);else if(this[fA].length===1)this[tk](this[fA].pop());else{let e=this[fA];this[fA]=[],l8(this[zn],e,this[Ug],(r,o)=>this[jy](r,o))}}[Zc](){if(this[Ky]&&typeof this[zn]=="number"){let e=this[zn];this[zn]=null,Ta.close(e,r=>r?this.emit("error",r):this.emit("close"))}}},f8=class extends sk{[vh](){let e;if(this[rk]&&this[Bh]==="r+")try{e=Ta.openSync(this[Hf],this[Bh],this[nk])}catch(r){if(r.code==="ENOENT")return this[Bh]="w",this[vh]();throw r}else e=Ta.openSync(this[Hf],this[Bh],this[nk]);this[Vy](null,e)}[Zc](){if(this[Ky]&&typeof this[zn]=="number"){let e=this[zn];this[zn]=null,Ta.closeSync(e),this.emit("close")}}[tk](e){let r=!0;try{this[jy](null,Ta.writeSync(this[zn],e,0,e.length,this[Ug])),r=!1}finally{if(r)try{this[Zc]()}catch{}}}};f2.ReadStream=ik;f2.ReadStreamSync=A8;f2.WriteStream=sk;f2.WriteStreamSync=f8});var fk=_((GUt,tfe)=>{"use strict";var hlt=Mx(),glt=Uy(),dlt=ve("events"),mlt=$P(),ylt=1024*1024,Elt=Nx(),JAe=Ox(),Clt=b3(),p8=Buffer.from([31,139]),$l=Symbol("state"),_g=Symbol("writeEntry"),qf=Symbol("readEntry"),h8=Symbol("nextEntry"),zAe=Symbol("processEntry"),ec=Symbol("extendedHeader"),p2=Symbol("globalExtendedHeader"),Dh=Symbol("meta"),XAe=Symbol("emitMeta"),yi=Symbol("buffer"),jf=Symbol("queue"),Hg=Symbol("ended"),ZAe=Symbol("emittedEnd"),qg=Symbol("emit"),Na=Symbol("unzip"),ok=Symbol("consumeChunk"),ak=Symbol("consumeChunkSub"),g8=Symbol("consumeBody"),$Ae=Symbol("consumeMeta"),efe=Symbol("consumeHeader"),lk=Symbol("consuming"),d8=Symbol("bufferConcat"),m8=Symbol("maybeEnd"),h2=Symbol("writing"),Ph=Symbol("aborted"),ck=Symbol("onDone"),jg=Symbol("sawValidEntry"),uk=Symbol("sawNullBlock"),Ak=Symbol("sawEOF"),Ilt=t=>!0;tfe.exports=hlt(class extends dlt{constructor(e){e=e||{},super(e),this.file=e.file||"",this[jg]=null,this.on(ck,r=>{(this[$l]==="begin"||this[jg]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")}),e.ondone?this.on(ck,e.ondone):this.on(ck,r=>{this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close")}),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||ylt,this.filter=typeof e.filter=="function"?e.filter:Ilt,this.writable=!0,this.readable=!1,this[jf]=new mlt,this[yi]=null,this[qf]=null,this[_g]=null,this[$l]="begin",this[Dh]="",this[ec]=null,this[p2]=null,this[Hg]=!1,this[Na]=null,this[Ph]=!1,this[uk]=!1,this[Ak]=!1,typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onentry=="function"&&this.on("entry",e.onentry)}[efe](e,r){this[jg]===null&&(this[jg]=!1);let o;try{o=new glt(e,r,this[ec],this[p2])}catch(a){return this.warn("TAR_ENTRY_INVALID",a)}if(o.nullBlock)this[uk]?(this[Ak]=!0,this[$l]==="begin"&&(this[$l]="header"),this[qg]("eof")):(this[uk]=!0,this[qg]("nullBlock"));else if(this[uk]=!1,!o.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:o});else if(!o.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:o});else{let a=o.type;if(/^(Symbolic)?Link$/.test(a)&&!o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:o});else if(!/^(Symbolic)?Link$/.test(a)&&o.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:o});else{let n=this[_g]=new Elt(o,this[ec],this[p2]);if(!this[jg])if(n.remain){let u=()=>{n.invalid||(this[jg]=!0)};n.on("end",u)}else this[jg]=!0;n.meta?n.size>this.maxMetaEntrySize?(n.ignore=!0,this[qg]("ignoredEntry",n),this[$l]="ignore",n.resume()):n.size>0&&(this[Dh]="",n.on("data",u=>this[Dh]+=u),this[$l]="meta"):(this[ec]=null,n.ignore=n.ignore||!this.filter(n.path,n),n.ignore?(this[qg]("ignoredEntry",n),this[$l]=n.remain?"ignore":"header",n.resume()):(n.remain?this[$l]="body":(this[$l]="header",n.end()),this[qf]?this[jf].push(n):(this[jf].push(n),this[h8]())))}}}[zAe](e){let r=!0;return e?Array.isArray(e)?this.emit.apply(this,e):(this[qf]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",o=>this[h8]()),r=!1)):(this[qf]=null,r=!1),r}[h8](){do;while(this[zAe](this[jf].shift()));if(!this[jf].length){let e=this[qf];!e||e.flowing||e.size===e.remain?this[h2]||this.emit("drain"):e.once("drain",o=>this.emit("drain"))}}[g8](e,r){let o=this[_g],a=o.blockRemain,n=a>=e.length&&r===0?e:e.slice(r,r+a);return o.write(n),o.blockRemain||(this[$l]="header",this[_g]=null,o.end()),n.length}[$Ae](e,r){let o=this[_g],a=this[g8](e,r);return this[_g]||this[XAe](o),a}[qg](e,r,o){!this[jf].length&&!this[qf]?this.emit(e,r,o):this[jf].push([e,r,o])}[XAe](e){switch(this[qg]("meta",this[Dh]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[ec]=JAe.parse(this[Dh],this[ec],!1);break;case"GlobalExtendedHeader":this[p2]=JAe.parse(this[Dh],this[p2],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":this[ec]=this[ec]||Object.create(null),this[ec].path=this[Dh].replace(/\0.*/,"");break;case"NextFileHasLongLinkpath":this[ec]=this[ec]||Object.create(null),this[ec].linkpath=this[Dh].replace(/\0.*/,"");break;default:throw new Error("unknown meta: "+e.type)}}abort(e){this[Ph]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e){if(this[Ph])return;if(this[Na]===null&&e){if(this[yi]&&(e=Buffer.concat([this[yi],e]),this[yi]=null),e.lengththis[ok](n)),this[Na].on("error",n=>this.abort(n)),this[Na].on("end",n=>{this[Hg]=!0,this[ok]()}),this[h2]=!0;let a=this[Na][o?"end":"write"](e);return this[h2]=!1,a}}this[h2]=!0,this[Na]?this[Na].write(e):this[ok](e),this[h2]=!1;let r=this[jf].length?!1:this[qf]?this[qf].flowing:!0;return!r&&!this[jf].length&&this[qf].once("drain",o=>this.emit("drain")),r}[d8](e){e&&!this[Ph]&&(this[yi]=this[yi]?Buffer.concat([this[yi],e]):e)}[m8](){if(this[Hg]&&!this[ZAe]&&!this[Ph]&&!this[lk]){this[ZAe]=!0;let e=this[_g];if(e&&e.blockRemain){let r=this[yi]?this[yi].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${r} available)`,{entry:e}),this[yi]&&e.write(this[yi]),e.end()}this[qg](ck)}}[ok](e){if(this[lk])this[d8](e);else if(!e&&!this[yi])this[m8]();else{if(this[lk]=!0,this[yi]){this[d8](e);let r=this[yi];this[yi]=null,this[ak](r)}else this[ak](e);for(;this[yi]&&this[yi].length>=512&&!this[Ph]&&!this[Ak];){let r=this[yi];this[yi]=null,this[ak](r)}this[lk]=!1}(!this[yi]||this[Hg])&&this[m8]()}[ak](e){let r=0,o=e.length;for(;r+512<=o&&!this[Ph]&&!this[Ak];)switch(this[$l]){case"begin":case"header":this[efe](e,r),r+=512;break;case"ignore":case"body":r+=this[g8](e,r);break;case"meta":r+=this[$Ae](e,r);break;default:throw new Error("invalid state: "+this[$l])}r{"use strict";var wlt=Fy(),nfe=fk(),zy=ve("fs"),Blt=Jy(),rfe=ve("path"),y8=_y();sfe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=wlt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&Dlt(o,e),o.noResume||vlt(o),o.file&&o.sync?Plt(o):o.file?Slt(o,r):ife(o)};var vlt=t=>{let e=t.onentry;t.onentry=e?r=>{e(r),r.resume()}:r=>r.resume()},Dlt=(t,e)=>{let r=new Map(e.map(n=>[y8(n),!0])),o=t.filter,a=(n,u)=>{let A=u||rfe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(rfe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(y8(n)):n=>a(y8(n))},Plt=t=>{let e=ife(t),r=t.file,o=!0,a;try{let n=zy.statSync(r),u=t.maxReadSize||16*1024*1024;if(n.size{let r=new nfe(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("end",u),zy.stat(a,(p,h)=>{if(p)A(p);else{let E=new Blt.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},ife=t=>new nfe(t)});var Afe=_((YUt,ufe)=>{"use strict";var blt=Fy(),hk=Zx(),ofe=Jy(),afe=pk(),lfe=ve("path");ufe.exports=(t,e,r)=>{if(typeof e=="function"&&(r=e),Array.isArray(t)&&(e=t,t={}),!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");e=Array.from(e);let o=blt(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return o.file&&o.sync?xlt(o,e):o.file?klt(o,e,r):o.sync?Qlt(o,e):Flt(o,e)};var xlt=(t,e)=>{let r=new hk.Sync(t),o=new ofe.WriteStreamSync(t.file,{mode:t.mode||438});r.pipe(o),cfe(r,e)},klt=(t,e,r)=>{let o=new hk(t),a=new ofe.WriteStream(t.file,{mode:t.mode||438});o.pipe(a);let n=new Promise((u,A)=>{a.on("error",A),a.on("close",u),o.on("error",A)});return E8(o,e),r?n.then(r,r):n},cfe=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?afe({file:lfe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},E8=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return afe({file:lfe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>E8(t,e));t.add(r)}t.end()},Qlt=(t,e)=>{let r=new hk.Sync(t);return cfe(r,e),r},Flt=(t,e)=>{let r=new hk(t);return E8(r,e),r}});var C8=_((KUt,yfe)=>{"use strict";var Rlt=Fy(),ffe=Zx(),dl=ve("fs"),pfe=Jy(),hfe=pk(),gfe=ve("path"),dfe=Uy();yfe.exports=(t,e,r)=>{let o=Rlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),o.sync?Tlt(o,e):Llt(o,e,r)};var Tlt=(t,e)=>{let r=new ffe.Sync(t),o=!0,a,n;try{try{a=dl.openSync(t.file,"r+")}catch(p){if(p.code==="ENOENT")a=dl.openSync(t.file,"w+");else throw p}let u=dl.fstatSync(a),A=Buffer.alloc(512);e:for(n=0;nu.size)break;n+=h,t.mtimeCache&&t.mtimeCache.set(p.path,p.mtime)}o=!1,Nlt(t,r,n,a,e)}finally{if(o)try{dl.closeSync(a)}catch{}}},Nlt=(t,e,r,o,a)=>{let n=new pfe.WriteStreamSync(t.file,{fd:o,start:r});e.pipe(n),Olt(e,a)},Llt=(t,e,r)=>{e=Array.from(e);let o=new ffe(t),a=(u,A,p)=>{let h=(C,T)=>{C?dl.close(u,L=>p(C)):p(null,T)},E=0;if(A===0)return h(null,0);let w=0,D=Buffer.alloc(512),x=(C,T)=>{if(C)return h(C);if(w+=T,w<512&&T)return dl.read(u,D,w,D.length-w,E+w,x);if(E===0&&D[0]===31&&D[1]===139)return h(new Error("cannot append to compressed archives"));if(w<512)return h(null,E);let L=new dfe(D);if(!L.cksumValid)return h(null,E);let U=512*Math.ceil(L.size/512);if(E+U+512>A||(E+=U+512,E>=A))return h(null,E);t.mtimeCache&&t.mtimeCache.set(L.path,L.mtime),w=0,dl.read(u,D,0,512,E,x)};dl.read(u,D,0,512,E,x)},n=new Promise((u,A)=>{o.on("error",A);let p="r+",h=(E,w)=>{if(E&&E.code==="ENOENT"&&p==="r+")return p="w+",dl.open(t.file,p,h);if(E)return A(E);dl.fstat(w,(D,x)=>{if(D)return dl.close(w,()=>A(D));a(w,x.size,(C,T)=>{if(C)return A(C);let L=new pfe.WriteStream(t.file,{fd:w,start:T});o.pipe(L),L.on("error",A),L.on("close",u),mfe(o,e)})})};dl.open(t.file,p,h)});return r?n.then(r,r):n},Olt=(t,e)=>{e.forEach(r=>{r.charAt(0)==="@"?hfe({file:gfe.resolve(t.cwd,r.substr(1)),sync:!0,noResume:!0,onentry:o=>t.add(o)}):t.add(r)}),t.end()},mfe=(t,e)=>{for(;e.length;){let r=e.shift();if(r.charAt(0)==="@")return hfe({file:gfe.resolve(t.cwd,r.substr(1)),noResume:!0,onentry:o=>t.add(o)}).then(o=>mfe(t,e));t.add(r)}t.end()}});var Cfe=_((VUt,Efe)=>{"use strict";var Mlt=Fy(),Ult=C8();Efe.exports=(t,e,r)=>{let o=Mlt(t);if(!o.file)throw new TypeError("file is required");if(o.gzip)throw new TypeError("cannot append to compressed archives");if(!e||!Array.isArray(e)||!e.length)throw new TypeError("no files or directories specified");return e=Array.from(e),_lt(o),Ult(o,e,r)};var _lt=t=>{let e=t.filter;t.mtimeCache||(t.mtimeCache=new Map),t.filter=e?(r,o)=>e(r,o)&&!(t.mtimeCache.get(r)>o.mtime):(r,o)=>!(t.mtimeCache.get(r)>o.mtime)}});var Bfe=_((JUt,wfe)=>{var{promisify:Ife}=ve("util"),Sh=ve("fs"),Hlt=t=>{if(!t)t={mode:511,fs:Sh};else if(typeof t=="object")t={mode:511,fs:Sh,...t};else if(typeof t=="number")t={mode:t,fs:Sh};else if(typeof t=="string")t={mode:parseInt(t,8),fs:Sh};else throw new TypeError("invalid options argument");return t.mkdir=t.mkdir||t.fs.mkdir||Sh.mkdir,t.mkdirAsync=Ife(t.mkdir),t.stat=t.stat||t.fs.stat||Sh.stat,t.statAsync=Ife(t.stat),t.statSync=t.statSync||t.fs.statSync||Sh.statSync,t.mkdirSync=t.mkdirSync||t.fs.mkdirSync||Sh.mkdirSync,t};wfe.exports=Hlt});var Dfe=_((zUt,vfe)=>{var qlt=process.platform,{resolve:jlt,parse:Glt}=ve("path"),Wlt=t=>{if(/\0/.test(t))throw Object.assign(new TypeError("path must be a string without null bytes"),{path:t,code:"ERR_INVALID_ARG_VALUE"});if(t=jlt(t),qlt==="win32"){let e=/[*|"<>?:]/,{root:r}=Glt(t);if(e.test(t.substr(r.length)))throw Object.assign(new Error("Illegal characters in path."),{path:t,code:"EINVAL"})}return t};vfe.exports=Wlt});var kfe=_((XUt,xfe)=>{var{dirname:Pfe}=ve("path"),Sfe=(t,e,r=void 0)=>r===e?Promise.resolve():t.statAsync(e).then(o=>o.isDirectory()?r:void 0,o=>o.code==="ENOENT"?Sfe(t,Pfe(e),e):void 0),bfe=(t,e,r=void 0)=>{if(r!==e)try{return t.statSync(e).isDirectory()?r:void 0}catch(o){return o.code==="ENOENT"?bfe(t,Pfe(e),e):void 0}};xfe.exports={findMade:Sfe,findMadeSync:bfe}});var B8=_((ZUt,Ffe)=>{var{dirname:Qfe}=ve("path"),I8=(t,e,r)=>{e.recursive=!1;let o=Qfe(t);return o===t?e.mkdirAsync(t,e).catch(a=>{if(a.code!=="EISDIR")throw a}):e.mkdirAsync(t,e).then(()=>r||t,a=>{if(a.code==="ENOENT")return I8(o,e).then(n=>I8(t,e,n));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;return e.statAsync(t).then(n=>{if(n.isDirectory())return r;throw a},()=>{throw a})})},w8=(t,e,r)=>{let o=Qfe(t);if(e.recursive=!1,o===t)try{return e.mkdirSync(t,e)}catch(a){if(a.code!=="EISDIR")throw a;return}try{return e.mkdirSync(t,e),r||t}catch(a){if(a.code==="ENOENT")return w8(t,e,w8(o,e,r));if(a.code!=="EEXIST"&&a.code!=="EROFS")throw a;try{if(!e.statSync(t).isDirectory())throw a}catch{throw a}}};Ffe.exports={mkdirpManual:I8,mkdirpManualSync:w8}});var Nfe=_(($Ut,Tfe)=>{var{dirname:Rfe}=ve("path"),{findMade:Ylt,findMadeSync:Klt}=kfe(),{mkdirpManual:Vlt,mkdirpManualSync:Jlt}=B8(),zlt=(t,e)=>(e.recursive=!0,Rfe(t)===t?e.mkdirAsync(t,e):Ylt(e,t).then(o=>e.mkdirAsync(t,e).then(()=>o).catch(a=>{if(a.code==="ENOENT")return Vlt(t,e);throw a}))),Xlt=(t,e)=>{if(e.recursive=!0,Rfe(t)===t)return e.mkdirSync(t,e);let o=Klt(e,t);try{return e.mkdirSync(t,e),o}catch(a){if(a.code==="ENOENT")return Jlt(t,e);throw a}};Tfe.exports={mkdirpNative:zlt,mkdirpNativeSync:Xlt}});var Ufe=_((e4t,Mfe)=>{var Lfe=ve("fs"),Zlt=process.version,v8=Zlt.replace(/^v/,"").split("."),Ofe=+v8[0]>10||+v8[0]==10&&+v8[1]>=12,$lt=Ofe?t=>t.mkdir===Lfe.mkdir:()=>!1,ect=Ofe?t=>t.mkdirSync===Lfe.mkdirSync:()=>!1;Mfe.exports={useNative:$lt,useNativeSync:ect}});var Wfe=_((t4t,Gfe)=>{var Xy=Bfe(),Zy=Dfe(),{mkdirpNative:_fe,mkdirpNativeSync:Hfe}=Nfe(),{mkdirpManual:qfe,mkdirpManualSync:jfe}=B8(),{useNative:tct,useNativeSync:rct}=Ufe(),$y=(t,e)=>(t=Zy(t),e=Xy(e),tct(e)?_fe(t,e):qfe(t,e)),nct=(t,e)=>(t=Zy(t),e=Xy(e),rct(e)?Hfe(t,e):jfe(t,e));$y.sync=nct;$y.native=(t,e)=>_fe(Zy(t),Xy(e));$y.manual=(t,e)=>qfe(Zy(t),Xy(e));$y.nativeSync=(t,e)=>Hfe(Zy(t),Xy(e));$y.manualSync=(t,e)=>jfe(Zy(t),Xy(e));Gfe.exports=$y});var Zfe=_((r4t,Xfe)=>{"use strict";var tc=ve("fs"),Gg=ve("path"),ict=tc.lchown?"lchown":"chown",sct=tc.lchownSync?"lchownSync":"chownSync",Kfe=tc.lchown&&!process.version.match(/v1[1-9]+\./)&&!process.version.match(/v10\.[6-9]/),Yfe=(t,e,r)=>{try{return tc[sct](t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},oct=(t,e,r)=>{try{return tc.chownSync(t,e,r)}catch(o){if(o.code!=="ENOENT")throw o}},act=Kfe?(t,e,r,o)=>a=>{!a||a.code!=="EISDIR"?o(a):tc.chown(t,e,r,o)}:(t,e,r,o)=>o,D8=Kfe?(t,e,r)=>{try{return Yfe(t,e,r)}catch(o){if(o.code!=="EISDIR")throw o;oct(t,e,r)}}:(t,e,r)=>Yfe(t,e,r),lct=process.version,Vfe=(t,e,r)=>tc.readdir(t,e,r),cct=(t,e)=>tc.readdirSync(t,e);/^v4\./.test(lct)&&(Vfe=(t,e,r)=>tc.readdir(t,r));var gk=(t,e,r,o)=>{tc[ict](t,e,r,act(t,e,r,a=>{o(a&&a.code!=="ENOENT"?a:null)}))},Jfe=(t,e,r,o,a)=>{if(typeof e=="string")return tc.lstat(Gg.resolve(t,e),(n,u)=>{if(n)return a(n.code!=="ENOENT"?n:null);u.name=e,Jfe(t,u,r,o,a)});if(e.isDirectory())P8(Gg.resolve(t,e.name),r,o,n=>{if(n)return a(n);let u=Gg.resolve(t,e.name);gk(u,r,o,a)});else{let n=Gg.resolve(t,e.name);gk(n,r,o,a)}},P8=(t,e,r,o)=>{Vfe(t,{withFileTypes:!0},(a,n)=>{if(a){if(a.code==="ENOENT")return o();if(a.code!=="ENOTDIR"&&a.code!=="ENOTSUP")return o(a)}if(a||!n.length)return gk(t,e,r,o);let u=n.length,A=null,p=h=>{if(!A){if(h)return o(A=h);if(--u===0)return gk(t,e,r,o)}};n.forEach(h=>Jfe(t,h,e,r,p))})},uct=(t,e,r,o)=>{if(typeof e=="string")try{let a=tc.lstatSync(Gg.resolve(t,e));a.name=e,e=a}catch(a){if(a.code==="ENOENT")return;throw a}e.isDirectory()&&zfe(Gg.resolve(t,e.name),r,o),D8(Gg.resolve(t,e.name),r,o)},zfe=(t,e,r)=>{let o;try{o=cct(t,{withFileTypes:!0})}catch(a){if(a.code==="ENOENT")return;if(a.code==="ENOTDIR"||a.code==="ENOTSUP")return D8(t,e,r);throw a}return o&&o.length&&o.forEach(a=>uct(t,a,e,r)),D8(t,e,r)};Xfe.exports=P8;P8.sync=zfe});var rpe=_((n4t,S8)=>{"use strict";var $fe=Wfe(),rc=ve("fs"),dk=ve("path"),epe=Zfe(),$c=Oy(),mk=class extends Error{constructor(e,r){super("Cannot extract through symbolic link"),this.path=r,this.symlink=e}get name(){return"SylinkError"}},yk=class extends Error{constructor(e,r){super(r+": Cannot cd into '"+e+"'"),this.path=e,this.code=r}get name(){return"CwdError"}},Ek=(t,e)=>t.get($c(e)),g2=(t,e,r)=>t.set($c(e),r),Act=(t,e)=>{rc.stat(t,(r,o)=>{(r||!o.isDirectory())&&(r=new yk(t,r&&r.code||"ENOTDIR")),e(r)})};S8.exports=(t,e,r)=>{t=$c(t);let o=e.umask,a=e.mode|448,n=(a&o)!==0,u=e.uid,A=e.gid,p=typeof u=="number"&&typeof A=="number"&&(u!==e.processUid||A!==e.processGid),h=e.preserve,E=e.unlink,w=e.cache,D=$c(e.cwd),x=(L,U)=>{L?r(L):(g2(w,t,!0),U&&p?epe(U,u,A,J=>x(J)):n?rc.chmod(t,a,r):r())};if(w&&Ek(w,t)===!0)return x();if(t===D)return Act(t,x);if(h)return $fe(t,{mode:a}).then(L=>x(null,L),x);let T=$c(dk.relative(D,t)).split("/");Ck(D,T,a,w,E,D,null,x)};var Ck=(t,e,r,o,a,n,u,A)=>{if(!e.length)return A(null,u);let p=e.shift(),h=$c(dk.resolve(t+"/"+p));if(Ek(o,h))return Ck(h,e,r,o,a,n,u,A);rc.mkdir(h,r,tpe(h,e,r,o,a,n,u,A))},tpe=(t,e,r,o,a,n,u,A)=>p=>{p?rc.lstat(t,(h,E)=>{if(h)h.path=h.path&&$c(h.path),A(h);else if(E.isDirectory())Ck(t,e,r,o,a,n,u,A);else if(a)rc.unlink(t,w=>{if(w)return A(w);rc.mkdir(t,r,tpe(t,e,r,o,a,n,u,A))});else{if(E.isSymbolicLink())return A(new mk(t,t+"/"+e.join("/")));A(p)}}):(u=u||t,Ck(t,e,r,o,a,n,u,A))},fct=t=>{let e=!1,r="ENOTDIR";try{e=rc.statSync(t).isDirectory()}catch(o){r=o.code}finally{if(!e)throw new yk(t,r)}};S8.exports.sync=(t,e)=>{t=$c(t);let r=e.umask,o=e.mode|448,a=(o&r)!==0,n=e.uid,u=e.gid,A=typeof n=="number"&&typeof u=="number"&&(n!==e.processUid||u!==e.processGid),p=e.preserve,h=e.unlink,E=e.cache,w=$c(e.cwd),D=L=>{g2(E,t,!0),L&&A&&epe.sync(L,n,u),a&&rc.chmodSync(t,o)};if(E&&Ek(E,t)===!0)return D();if(t===w)return fct(w),D();if(p)return D($fe.sync(t,o));let C=$c(dk.relative(w,t)).split("/"),T=null;for(let L=C.shift(),U=w;L&&(U+="/"+L);L=C.shift())if(U=$c(dk.resolve(U)),!Ek(E,U))try{rc.mkdirSync(U,o),T=T||U,g2(E,U,!0)}catch{let te=rc.lstatSync(U);if(te.isDirectory()){g2(E,U,!0);continue}else if(h){rc.unlinkSync(U),rc.mkdirSync(U,o),T=T||U,g2(E,U,!0);continue}else if(te.isSymbolicLink())return new mk(U,U+"/"+C.join("/"))}return D(T)}});var x8=_((i4t,npe)=>{var b8=Object.create(null),{hasOwnProperty:pct}=Object.prototype;npe.exports=t=>(pct.call(b8,t)||(b8[t]=t.normalize("NFKD")),b8[t])});var ape=_((s4t,ope)=>{var ipe=ve("assert"),hct=x8(),gct=_y(),{join:spe}=ve("path"),dct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,mct=dct==="win32";ope.exports=()=>{let t=new Map,e=new Map,r=h=>h.split("/").slice(0,-1).reduce((w,D)=>(w.length&&(D=spe(w[w.length-1],D)),w.push(D||"/"),w),[]),o=new Set,a=h=>{let E=e.get(h);if(!E)throw new Error("function does not have any path reservations");return{paths:E.paths.map(w=>t.get(w)),dirs:[...E.dirs].map(w=>t.get(w))}},n=h=>{let{paths:E,dirs:w}=a(h);return E.every(D=>D[0]===h)&&w.every(D=>D[0]instanceof Set&&D[0].has(h))},u=h=>o.has(h)||!n(h)?!1:(o.add(h),h(()=>A(h)),!0),A=h=>{if(!o.has(h))return!1;let{paths:E,dirs:w}=e.get(h),D=new Set;return E.forEach(x=>{let C=t.get(x);ipe.equal(C[0],h),C.length===1?t.delete(x):(C.shift(),typeof C[0]=="function"?D.add(C[0]):C[0].forEach(T=>D.add(T)))}),w.forEach(x=>{let C=t.get(x);ipe(C[0]instanceof Set),C[0].size===1&&C.length===1?t.delete(x):C[0].size===1?(C.shift(),D.add(C[0])):C[0].delete(h)}),o.delete(h),D.forEach(x=>u(x)),!0};return{check:n,reserve:(h,E)=>{h=mct?["win32 parallelization disabled"]:h.map(D=>hct(gct(spe(D))).toLowerCase());let w=new Set(h.map(D=>r(D)).reduce((D,x)=>D.concat(x)));return e.set(E,{dirs:w,paths:h}),h.forEach(D=>{let x=t.get(D);x?x.push(E):t.set(D,[E])}),w.forEach(D=>{let x=t.get(D);x?x[x.length-1]instanceof Set?x[x.length-1].add(E):x.push(new Set([E])):t.set(D,[new Set([E])])}),u(E)}}}});var upe=_((o4t,cpe)=>{var yct=process.platform,Ect=yct==="win32",Cct=global.__FAKE_TESTING_FS__||ve("fs"),{O_CREAT:Ict,O_TRUNC:wct,O_WRONLY:Bct,UV_FS_O_FILEMAP:lpe=0}=Cct.constants,vct=Ect&&!!lpe,Dct=512*1024,Pct=lpe|wct|Ict|Bct;cpe.exports=vct?t=>t"w"});var M8=_((a4t,vpe)=>{"use strict";var Sct=ve("assert"),bct=fk(),Fn=ve("fs"),xct=Jy(),Gf=ve("path"),Ipe=rpe(),Ape=M3(),kct=ape(),Qct=U3(),ml=Oy(),Fct=_y(),Rct=x8(),fpe=Symbol("onEntry"),F8=Symbol("checkFs"),ppe=Symbol("checkFs2"),Bk=Symbol("pruneCache"),R8=Symbol("isReusable"),nc=Symbol("makeFs"),T8=Symbol("file"),N8=Symbol("directory"),vk=Symbol("link"),hpe=Symbol("symlink"),gpe=Symbol("hardlink"),dpe=Symbol("unsupported"),mpe=Symbol("checkPath"),bh=Symbol("mkdir"),So=Symbol("onError"),Ik=Symbol("pending"),ype=Symbol("pend"),eE=Symbol("unpend"),k8=Symbol("ended"),Q8=Symbol("maybeClose"),L8=Symbol("skip"),d2=Symbol("doChown"),m2=Symbol("uid"),y2=Symbol("gid"),E2=Symbol("checkedCwd"),wpe=ve("crypto"),Bpe=upe(),Tct=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,C2=Tct==="win32",Nct=(t,e)=>{if(!C2)return Fn.unlink(t,e);let r=t+".DELETE."+wpe.randomBytes(16).toString("hex");Fn.rename(t,r,o=>{if(o)return e(o);Fn.unlink(r,e)})},Lct=t=>{if(!C2)return Fn.unlinkSync(t);let e=t+".DELETE."+wpe.randomBytes(16).toString("hex");Fn.renameSync(t,e),Fn.unlinkSync(e)},Epe=(t,e,r)=>t===t>>>0?t:e===e>>>0?e:r,Cpe=t=>Rct(Fct(ml(t))).toLowerCase(),Oct=(t,e)=>{e=Cpe(e);for(let r of t.keys()){let o=Cpe(r);(o===e||o.indexOf(e+"/")===0)&&t.delete(r)}},Mct=t=>{for(let e of t.keys())t.delete(e)},I2=class extends bct{constructor(e){if(e||(e={}),e.ondone=r=>{this[k8]=!0,this[Q8]()},super(e),this[E2]=!1,this.reservations=kct(),this.transform=typeof e.transform=="function"?e.transform:null,this.writable=!0,this.readable=!1,this[Ik]=0,this[k8]=!1,this.dirCache=e.dirCache||new Map,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=null,this.gid=null,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=process.getuid&&process.getuid()===0:this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():null,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():null,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||C2,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=ml(Gf.resolve(e.cwd||process.cwd())),this.strip=+e.strip||0,this.processUmask=e.noChmod?0:process.umask(),this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",r=>this[fpe](r))}warn(e,r,o={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(o.recoverable=!1),super.warn(e,r,o)}[Q8](){this[k8]&&this[Ik]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"),this.emit("close"))}[mpe](e){if(this.strip){let r=ml(e.path).split("/");if(r.length=this.strip)e.linkpath=o.slice(this.strip).join("/");else return!1}}if(!this.preservePaths){let r=ml(e.path),o=r.split("/");if(o.includes("..")||C2&&/^[a-z]:\.\.$/i.test(o[0]))return this.warn("TAR_ENTRY_ERROR","path contains '..'",{entry:e,path:r}),!1;let[a,n]=Qct(r);a&&(e.path=n,this.warn("TAR_ENTRY_INFO",`stripping ${a} from absolute path`,{entry:e,path:r}))}if(Gf.isAbsolute(e.path)?e.absolute=ml(Gf.resolve(e.path)):e.absolute=ml(Gf.resolve(this.cwd,e.path)),!this.preservePaths&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:ml(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:r}=Gf.win32.parse(e.absolute);e.absolute=r+Ape.encode(e.absolute.substr(r.length));let{root:o}=Gf.win32.parse(e.path);e.path=o+Ape.encode(e.path.substr(o.length))}return!0}[fpe](e){if(!this[mpe](e))return e.resume();switch(Sct.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[F8](e);case"CharacterDevice":case"BlockDevice":case"FIFO":default:return this[dpe](e)}}[So](e,r){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:r}),this[eE](),r.resume())}[bh](e,r,o){Ipe(ml(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r,noChmod:this.noChmod},o)}[d2](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[m2](e){return Epe(this.uid,e.uid,this.processUid)}[y2](e){return Epe(this.gid,e.gid,this.processGid)}[T8](e,r){let o=e.mode&4095||this.fmode,a=new xct.WriteStream(e.absolute,{flags:Bpe(e.size),mode:o,autoClose:!1});a.on("error",p=>{a.fd&&Fn.close(a.fd,()=>{}),a.write=()=>!0,this[So](p,e),r()});let n=1,u=p=>{if(p){a.fd&&Fn.close(a.fd,()=>{}),this[So](p,e),r();return}--n===0&&Fn.close(a.fd,h=>{h?this[So](h,e):this[eE](),r()})};a.on("finish",p=>{let h=e.absolute,E=a.fd;if(e.mtime&&!this.noMtime){n++;let w=e.atime||new Date,D=e.mtime;Fn.futimes(E,w,D,x=>x?Fn.utimes(h,w,D,C=>u(C&&x)):u())}if(this[d2](e)){n++;let w=this[m2](e),D=this[y2](e);Fn.fchown(E,w,D,x=>x?Fn.chown(h,w,D,C=>u(C&&x)):u())}u()});let A=this.transform&&this.transform(e)||e;A!==e&&(A.on("error",p=>{this[So](p,e),r()}),e.pipe(A)),A.pipe(a)}[N8](e,r){let o=e.mode&4095||this.dmode;this[bh](e.absolute,o,a=>{if(a){this[So](a,e),r();return}let n=1,u=A=>{--n===0&&(r(),this[eE](),e.resume())};e.mtime&&!this.noMtime&&(n++,Fn.utimes(e.absolute,e.atime||new Date,e.mtime,u)),this[d2](e)&&(n++,Fn.chown(e.absolute,this[m2](e),this[y2](e),u)),u()})}[dpe](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[hpe](e,r){this[vk](e,e.linkpath,"symlink",r)}[gpe](e,r){let o=ml(Gf.resolve(this.cwd,e.linkpath));this[vk](e,o,"link",r)}[ype](){this[Ik]++}[eE](){this[Ik]--,this[Q8]()}[L8](e){this[eE](),e.resume()}[R8](e,r){return e.type==="File"&&!this.unlink&&r.isFile()&&r.nlink<=1&&!C2}[F8](e){this[ype]();let r=[e.path];e.linkpath&&r.push(e.linkpath),this.reservations.reserve(r,o=>this[ppe](e,o))}[Bk](e){e.type==="SymbolicLink"?Mct(this.dirCache):e.type!=="Directory"&&Oct(this.dirCache,e.absolute)}[ppe](e,r){this[Bk](e);let o=A=>{this[Bk](e),r(A)},a=()=>{this[bh](this.cwd,this.dmode,A=>{if(A){this[So](A,e),o();return}this[E2]=!0,n()})},n=()=>{if(e.absolute!==this.cwd){let A=ml(Gf.dirname(e.absolute));if(A!==this.cwd)return this[bh](A,this.dmode,p=>{if(p){this[So](p,e),o();return}u()})}u()},u=()=>{Fn.lstat(e.absolute,(A,p)=>{if(p&&(this.keep||this.newer&&p.mtime>e.mtime)){this[L8](e),o();return}if(A||this[R8](e,p))return this[nc](null,e,o);if(p.isDirectory()){if(e.type==="Directory"){let h=!this.noChmod&&e.mode&&(p.mode&4095)!==e.mode,E=w=>this[nc](w,e,o);return h?Fn.chmod(e.absolute,e.mode,E):E()}if(e.absolute!==this.cwd)return Fn.rmdir(e.absolute,h=>this[nc](h,e,o))}if(e.absolute===this.cwd)return this[nc](null,e,o);Nct(e.absolute,h=>this[nc](h,e,o))})};this[E2]?n():a()}[nc](e,r,o){if(e){this[So](e,r),o();return}switch(r.type){case"File":case"OldFile":case"ContiguousFile":return this[T8](r,o);case"Link":return this[gpe](r,o);case"SymbolicLink":return this[hpe](r,o);case"Directory":case"GNUDumpDir":return this[N8](r,o)}}[vk](e,r,o,a){Fn[o](r,e.absolute,n=>{n?this[So](n,e):(this[eE](),e.resume()),a()})}},wk=t=>{try{return[null,t()]}catch(e){return[e,null]}},O8=class extends I2{[nc](e,r){return super[nc](e,r,()=>{})}[F8](e){if(this[Bk](e),!this[E2]){let n=this[bh](this.cwd,this.dmode);if(n)return this[So](n,e);this[E2]=!0}if(e.absolute!==this.cwd){let n=ml(Gf.dirname(e.absolute));if(n!==this.cwd){let u=this[bh](n,this.dmode);if(u)return this[So](u,e)}}let[r,o]=wk(()=>Fn.lstatSync(e.absolute));if(o&&(this.keep||this.newer&&o.mtime>e.mtime))return this[L8](e);if(r||this[R8](e,o))return this[nc](null,e);if(o.isDirectory()){if(e.type==="Directory"){let u=!this.noChmod&&e.mode&&(o.mode&4095)!==e.mode,[A]=u?wk(()=>{Fn.chmodSync(e.absolute,e.mode)}):[];return this[nc](A,e)}let[n]=wk(()=>Fn.rmdirSync(e.absolute));this[nc](n,e)}let[a]=e.absolute===this.cwd?[]:wk(()=>Lct(e.absolute));this[nc](a,e)}[T8](e,r){let o=e.mode&4095||this.fmode,a=A=>{let p;try{Fn.closeSync(n)}catch(h){p=h}(A||p)&&this[So](A||p,e),r()},n;try{n=Fn.openSync(e.absolute,Bpe(e.size),o)}catch(A){return a(A)}let u=this.transform&&this.transform(e)||e;u!==e&&(u.on("error",A=>this[So](A,e)),e.pipe(u)),u.on("data",A=>{try{Fn.writeSync(n,A,0,A.length)}catch(p){a(p)}}),u.on("end",A=>{let p=null;if(e.mtime&&!this.noMtime){let h=e.atime||new Date,E=e.mtime;try{Fn.futimesSync(n,h,E)}catch(w){try{Fn.utimesSync(e.absolute,h,E)}catch{p=w}}}if(this[d2](e)){let h=this[m2](e),E=this[y2](e);try{Fn.fchownSync(n,h,E)}catch(w){try{Fn.chownSync(e.absolute,h,E)}catch{p=p||w}}}a(p)})}[N8](e,r){let o=e.mode&4095||this.dmode,a=this[bh](e.absolute,o);if(a){this[So](a,e),r();return}if(e.mtime&&!this.noMtime)try{Fn.utimesSync(e.absolute,e.atime||new Date,e.mtime)}catch{}if(this[d2](e))try{Fn.chownSync(e.absolute,this[m2](e),this[y2](e))}catch{}r(),e.resume()}[bh](e,r){try{return Ipe.sync(ml(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cache:this.dirCache,cwd:this.cwd,mode:r})}catch(o){return o}}[vk](e,r,o,a){try{Fn[o+"Sync"](r,e.absolute),a(),e.resume()}catch(n){return this[So](n,e)}}};I2.Sync=O8;vpe.exports=I2});var xpe=_((l4t,bpe)=>{"use strict";var Uct=Fy(),Dk=M8(),Ppe=ve("fs"),Spe=Jy(),Dpe=ve("path"),U8=_y();bpe.exports=(t,e,r)=>{typeof t=="function"?(r=t,e=null,t={}):Array.isArray(t)&&(e=t,t={}),typeof e=="function"&&(r=e,e=null),e?e=Array.from(e):e=[];let o=Uct(t);if(o.sync&&typeof r=="function")throw new TypeError("callback not supported for sync tar functions");if(!o.file&&typeof r=="function")throw new TypeError("callback only supported with file option");return e.length&&_ct(o,e),o.file&&o.sync?Hct(o):o.file?qct(o,r):o.sync?jct(o):Gct(o)};var _ct=(t,e)=>{let r=new Map(e.map(n=>[U8(n),!0])),o=t.filter,a=(n,u)=>{let A=u||Dpe.parse(n).root||".",p=n===A?!1:r.has(n)?r.get(n):a(Dpe.dirname(n),A);return r.set(n,p),p};t.filter=o?(n,u)=>o(n,u)&&a(U8(n)):n=>a(U8(n))},Hct=t=>{let e=new Dk.Sync(t),r=t.file,o=Ppe.statSync(r),a=t.maxReadSize||16*1024*1024;new Spe.ReadStreamSync(r,{readSize:a,size:o.size}).pipe(e)},qct=(t,e)=>{let r=new Dk(t),o=t.maxReadSize||16*1024*1024,a=t.file,n=new Promise((u,A)=>{r.on("error",A),r.on("close",u),Ppe.stat(a,(p,h)=>{if(p)A(p);else{let E=new Spe.ReadStream(a,{readSize:o,size:h.size});E.on("error",A),E.pipe(r)}})});return e?n.then(e,e):n},jct=t=>new Dk.Sync(t),Gct=t=>new Dk(t)});var kpe=_(us=>{"use strict";us.c=us.create=Afe();us.r=us.replace=C8();us.t=us.list=pk();us.u=us.update=Cfe();us.x=us.extract=xpe();us.Pack=Zx();us.Unpack=M8();us.Parse=fk();us.ReadEntry=Nx();us.WriteEntry=J3();us.Header=Uy();us.Pax=Ox();us.types=Q3()});var _8,Qpe,xh,w2,B2,Fpe=It(()=>{_8=et(lg()),Qpe=ve("worker_threads"),xh=Symbol("kTaskInfo"),w2=class{constructor(e,r){this.fn=e;this.limit=(0,_8.default)(r.poolSize)}run(e){return this.limit(()=>this.fn(e))}},B2=class{constructor(e,r){this.source=e;this.workers=[];this.limit=(0,_8.default)(r.poolSize),this.cleanupInterval=setInterval(()=>{if(this.limit.pendingCount===0&&this.limit.activeCount===0){let o=this.workers.pop();o?o.terminate():clearInterval(this.cleanupInterval)}},5e3).unref()}createWorker(){this.cleanupInterval.refresh();let e=new Qpe.Worker(this.source,{eval:!0,execArgv:[...process.execArgv,"--unhandled-rejections=strict"]});return e.on("message",r=>{if(!e[xh])throw new Error("Assertion failed: Worker sent a result without having a task assigned");e[xh].resolve(r),e[xh]=null,e.unref(),this.workers.push(e)}),e.on("error",r=>{e[xh]?.reject(r),e[xh]=null}),e.on("exit",r=>{r!==0&&e[xh]?.reject(new Error(`Worker exited with code ${r}`)),e[xh]=null}),e}run(e){return this.limit(()=>{let r=this.workers.pop()??this.createWorker();return r.ref(),new Promise((o,a)=>{r[xh]={resolve:o,reject:a},r.postMessage(e)})})}}});var Tpe=_((f4t,Rpe)=>{var H8;Rpe.exports.getContent=()=>(typeof H8>"u"&&(H8=ve("zlib").brotliDecompressSync(Buffer.from("W2xFdgBPZrjSneDvVbLecg9fIhuy4cX6GuF9CJQpmu4RdNt2tSIi3YZAPJzO1Ju/O0dV1bTkYsgCLThVdbatry9HdhTU1geV2ROjsMltUFBZJKzSZoSLXaDMA7MJtfXUZJlq3aQXKbUKncLmJdo5ByJUTvhIXveNwEBNvBd2oxvnpn4bPkVdGHlvHIlNFxsdCpFJELoRwnbMYlM4po2Z06KXwCi1p2pjs9id3NE2aovZB2yHbSj773jMlfchfy8YwvdDUZ/vn38/MrcgKXdhPVyCRIJINOTc+nvG10A05G5fDWBJlRYRLcZ2SJ9KXzV9P+t4bZ/4ta/XzPq/ny+h1gFHGaDHLBUStJHA1I6ePGRc71wTQyYfc9XD5lW9lkNwtRR9fQNnHnpZTidToeBJ1Jm1RF0pyQsV2LW+fcW218zX0zX/IxA45ZhdTxJH79h9EQSUiPkborYYSHZWctm7f//rd+ZPtVfMU6BpdkJgCVQmfvqm+fVbEgYxqmR7xsfeTPDsKih7u8clJ/eEIKB1UIl7ilvT1LKqXzCI9eUZcoOKhSFnla7zhX1BzrDkzGO57PXtznEtQ5DI6RoVcQbKVsRC1v/6verXL2YYcm90hZP2vehoS2TLcW3ZHklOOlVVgmElU0lA2ZUfMcB//6lpq63QR6LxhEs0eyZXsfAPJnM1aQnRmWpTsunAngg8P3/llEf/LfOOuZqsQdCgcRCUxFQtq9rYCAxxd6DQ1POB53uacqH73VQR/fjG1vHQQUpr8fjmM+CgUANS0Y0wBrINE3e/ZGGx+Xz4MEVr7XN2s8kFODQXAtIf2roXIqLa9ogq2qqyBS5z7CeYnNVZchZhFsDSTev96F0FZpBgFPCIpvrj8NtZ6eMDCElwZ9JHVxBmuu6Hpnl4+nDr+/x4u6vOw5XfU7e701UkJJXQQvzDoBWIBB0ce3RguzkawgT8AMPzlHgdDw5idYnj+5NJM9XBL7HSG0M/wsbK7v5iUUOt5+PuLthWduVnVU8PNAbsQUGJ/JPlTUOUBMvIGWn96Efznz4/dnfvRE2e+TxVXd0UA2iBjTJ/E+ZaENTxhknQ/K5h3/EKWn6Wo8yMRhKZla5AvalupPqw5Kso3q/5ebzuH7bEI/DiYAraB7m1PH5xtjTj/2+m9u366oab8TLrfeSCpGGktTbc8Adh1zXvEuWaaAeyuwEMAYLUgJQ4BCGNce++V01VVUOaBsDZA0DaORiOMSZa+fUuC5wNNwyMTcL9/3vTrLb3/R8IBAgmBTJZEqgsk1WebctvO2CkSqmMPX3Uzq16sRHevfe/k/+990OK/yPQiv8j0EJEAEeIAHkKEQCrCYD5fwBkBUBmDpiZVYOkpDqUqTOUqTkse7KqfRKkZpSZ0jmVmVKbVHvVGONSY6xdOXf2bfxYs+r97Gaz7/VidrNczmo5i+X4/79WaRtnVo6UQAk7u1v/33o7HGQdPSpQj/7rqqYgCstG5MTLOF+dsIv//2aWtasTQFXXSGVKy0Ch0FwtLAv5xL+sjMzIJeSZkqQ+090j9RMRiYjIRDMBVHEBdLMPuzhK9ArtKWmta6w91npmkeMIbXl7nz+t0qqu7mqNZH8NgWcOML8gqf5fsvkoWoqCW/Uv9a31Jb231iAdAFq2b0f2AXJIgEFCSX5xeJctKHDjpJQ3m3Urk0iC5/t7U/875277i6mGdxYoptsKpVKptp46HgxpRCOeWYxBRAIkEfH8P2f4vnxABfSq3okFhW7Sh7EOU6Zknm9b/2dQZl1CfrShJVuQKkmDUKRlwEAYpohyd7/uuRO4vjhiW92oa7DifsWphJQsLIonVqN9+X6G95E9gJv1/aVCu6Vysu/NbAvVQJAIkgSLIIEgCcE1iBZvi3Talbv/B95N+2tvY1Qof7OKQVArLUEjJSQhhBgSgWJaCGz+exJ5As24WxMMguChXfbB3r3z09qdsMUgWww4SIpBUgwSMGCKKVKkSDFoiimmuGKFLRY8P+/j/1z/z8vcC0/38z9ixBEjRoTHiLRERESEEhFKHk1poFts2iWWWCLiyP783Pr/f3p9jjDzv+KKLbZo0QLRAoEgGQSZIMgEgSCZEogSJUqUWJmUwG/uv3/60+facZ/fES1atGixxRZhCENEGEpElAhMifCIiMh7RNRARD0osUTmQzS53d7gIWweY/AMx+gtFBHZ+QKBsEAgEAiEnXyTePKGdLaKJm1heyFaU3uzbTmJnADDv5s+/2iBsQLt8213mBZIEC+iwULwYIFUkDqt7977a5EjE/PA5Kn3lAZJ2jN6FtU6hpJswxeRU8EDzmheRavGU+8SAXcv9hs2VHFHpGFd2uSqhHfl+2vjalI8eXtMfadrWGGNgIrP+vNSPghBQhnaYRowg/SWg6qitd+w5dduV3M/w+v7ZmNa2EHT7PCw7b26WSDoIaI+BqiP5p2zrxStV+M2GSTNwLZe7+NuQ2yBmwrOzjTUkFHwTV/eBa16T3gA4/213h/1KeX+30V2dZfwJfquaEB6xymhDz3/VMrY5GD9qnZSnAOdHwOrSiaW52B2t2N16zP70evD5mkQyIw0SkzGfUSC0v6MnmPjA/zDgnWuNgwjo7uqtquP5iVWyxtfYeRFHYCX8Ri+J5QLlWqdxq/rU5NcBfWU0gwJLQozOPn8AKW8O8tlag5jTBhcLinjQ3x+ROz+sC1XeAEFjsiL/RBz5ZaHIRt1Zbw7BI/oqy9GqIvPir/AVOOYmyvYsW4S+OjA6lAao99TaXVi1/zOSY7OsRX/YRjJGmdyzupZMt8/DVsorPED2dvEHJaq3K/NE3bKc+Ilrb/azbMvPOIR2+6+xdd8ma/RzeYh23z26tLr9RU6lUdspWd2NAZvk1KsuWtCCp0djmdRFF8HywmTO5KH5Q7JmWezwwKTluDzWDDEEErDdtCCr0a3/GLiI1+HFJKGSB6KtqRHbbS4nsotDPyRz6MFVsQZEL/84gHTA3INdbmG+IoQeUnuY9jGbwRzWSQPASvKFzPQ8sMX+Ty0xAooDSUYEg2rB2Asi8sg++mGqyPPdcZaQiV7O4lZKh/GtbLxz6f2bTsRiLCS7YyUlJjXyQfUAqv97xnph6+1be14kuOkiiW9yBJa3qGJc/jQpCNb/vnTbiO8xEL8sWjHbz2Bnbw/6u0defDAf0FGLaQbLe/+iCD19fZdW4gLDjOLrMbQ2T9vzdtlMqbVl3aCRT/5cB8G8CCpn5B9Lf3jpPZHybpehwzVihnKVbsZkH26pXEqhZl3TmBX61DuBRGWyjOcuBvMT14I2t2ppPMw9ZDpZixooFP9mAgeVVq/i0VyO1POaBTOdukyymNgYmnefdg99y0VvJTipQXLHiIB+GYJk6iLBUtXC5Eut2DpuKRTvuBkW3pv6b3l9xr3/tvyL7GOfiZJ5G+M1aBLJ8TSrpD/ib7xQ9H4b9AfOQ/uEcDmZB6cL2xC41vkwfpiTmh85keSHMtuqSwHp3CQjy0hCN4mosrShflH0n4J1MoTLAROsfy6R7DbEVIUplDwMc4bwsJzphym5GmaVt3+FVff00PZlpU7E5+eHCn5OBo5v0P3QHYrsHNk0PZ7klsowDlcZtJdJgvEbmwvROEM44XY0SuLhahpubgq3SzjsieuutCgAA3qM4rw/MfmzN6HiA++fyU4Rojl44Jb3lXXiQdVSyENix+uraEeD7BibuDCZyFx7aSSW3MA55ymmgAwipqWKus8ykE9HSnJ7CAcn4q4rnO13Ll54POTEjqOxF+FpSAggq+iW01ABNH0JIpBemwUz1pq6GW5MeY0mCE5NtDFSzPrukTra4iNQgyYuZRHSsz72UwNvCA042mO1PKJUG7b896RNyXM88mIr7W1lyhCT8uigfq1LwQ1zXpPQsUrUocxVC+No06fCYUsGWWUjl0/D4tExtJmp4w1SYeaLpnQJ7CNbVODe+nUys2PIKLyxnBq0kHPfRWcq+THl5c2JS2fQeZBVxYtIn74wmnVXuTeFKjE4apGeJAQWnr5Jum5VD/KXuOoyZRPRtrgkZfqvDIhmlbcO6TcjEIhK7mkfR/ad7WeqFjihp7L40OITvp037LNCGX/L6y51MCmkxcpjKCpzBA0noqXTJW2WtDBHUAiBTBi4eBW4rLSC2L+o208CmJ/sxGolgvDgv6hwNsfmxveCnGodx1iKVgEsUO1vE1JKVnT4SgRTO2dgh9K+H599CAmLZE8YvfNp3nhge3MhwAfna99yEZihxv/XwtnAneD0/eEOhyhBTIjd37wBrwuGTKcNBm0/Mx8mIj73As7n47h25bDP3X6UH6TyhtoUa+4M/rKf5ClWLs9Y21CYGxQE809XrP2Jk3orKEJ6hOiL28/33rVJeS5dVpluNegSJcPZfWrG3wDPe1BG6B5cHPnHbNBlhNozcJdZMyFTFG7UPzgl+oUCXRn+ISQ1WnXACLe4kbKtvvthKJhtUPPc2w70asPUj6hAjfITl0GnlA+vRox2VZA9LnskDs68Tk16hXuKd1zfFgC7b6qnLKaoEVXr+2g/BhWXIgw+GVBoqgnDnVuAp2qiUC6qOG4x6GNRVF5WUi7Odw/iUrK/gQUFTBttWGE+ceQumw2t+2dqUrzOrsHSaolipYpBpeLVPvA+1LureB631Tl56A1Wd0ryu96SzibapY3Nz1TXxbMfhInq7WkbUrgGfVaH2vd/tsicD5w5CYV+eISjPH/omyb0wzec5XMokuSw+38AZ2b9rNMawsYSIHvehmbPWUWUuFHVW7var3Am1LM8YFd+G9VDZuKFOvxqm68LDL8bNbjxFevGsFlTyXE1FAbwNZcd6k29dl6ub5BZ6V/O5cTFBmJtgRrraPr7PoqJUnMj6QIpMIodZLDE57k2i6TROku8ZdH3m6Y1vYJFSWTeioWMDaeNqyKHeN8tlp4nDWkSQxHMqbaON4f71KnQF1IwiOkHHPCMrVw/D5W089eWX3/j60UkkuvoRPJTsumkpFd6wW09GwYBwLMgvEZcBgHED3tGu6bESdiXTBcD8W+EIsfaJeutJZ5THXopIx6YVJDbcsMGmYsZtIXb8bsVjewXzc88FcTZ5lYYoFhIrBcO6ljLt5+dp5HmzXv1Kg2MwCJDrRr7qVlXdraGTP828XfilNRkEJ1GwtTE3I1t/aITjVWiTHgXNljdnMXh5wdZpZcKzszsONMKEJhMh0NK+bDGn+rAJDC3mgiOZxq1OUUXNsxkQWhYW1GFtRiWFZNcNDeLLlIQll0jLYPjE2ynxKXI4lcBwCNsxFW85dwAN0PW2KmOMcI6cTvka8d0LYiqm5TNUQfQJPIoralnyMJ4bt6oiIaYBwZu+k4MkkXTQfL1e90rIWXSgjgUBMgCXkoTn9Rr9HCuegYSj1NaIXnzEQUfbtnz7/FkaUwrNSQpHIL+Jj0VvXs5zg6Gn4hCOMevrvMmTvdBdt6DOzxoF88Zp3bG+juT/Zl9hHsXlZY/IeRVTezaepfT0+FNz8u+rCFX+1LykI9/PPmJIfH8/IRAejJVADY7rGj+r8PWPt4mhxDEd6+n9rB/NPcTe2dTs3pXtOjtNyFndrtwLPSz6s+d+vOkWnztCqcbmMfyfd0LcFRcVF8kjkoWIncdj9IKIfZhh+PP+DeY7TVAGAK++IgvZUF6PTLIJT9EhxpprSPCoWuxThGwP8vmEbDs6kDehX0zWXz47U9+/Hqajad+simdjof8lRabLnIvfxoaVOQL907ZBofU7FPER91ifRhlz9nXfSHyGA+c9sQnfOh/SDUqx+vRyM4oJLJXEyfaISzIFoC6MDWR2JB9vBLhhchIiznCQbr7n4zxaEcvphNcZfivwbIKk4C7kb+IcPA8u66nd2Gb/vUiilkp7G6ydQXj82jFjlebJ0yyezuSSbikTcg/iPlGxcWL0JnPmnSbXtHfKBGopIcI3lir17wt8hz8Tw0UHbloVh1oDnNdFBZVkteweiH42CzircC5ZTif9eeYhieGEnmUuVH7ai/JO7HRhjYEPIibvKkVqM3z0jfZE3TOv0ECUC8NkRhCWEHvAOZQ2Di9cpB1UFmdoTca81BmGHQHV52E9WYKITgpIkjtau2nj2g+/51uj2O1NqXpe7/et2u+ywiRJcxClnpB8zPWr8KpuDNG1On7P5XzL7w4LaThoWCyw51tg67gUiQxAvac5QMfVAg7A9hcPddIYKqXNqHKVTRL1cI18UOJxu71LHOStvahBLKaojwKBgRA37Txbt+RZS2SV8fnhjPK3JtIrQYXS/KbLS+FL65SGQrNoZCPoQ3jPPJ5oGmhVQ7p1HPtUJWZUSK9u52UhHSn7Fz4LaB7f232yKKRJk07LL/FidQB0163aXVWAUV+9Uo0KWhJRPowfH1uqYdJztTXYWif3SQ2veJvBWruwtw9FsVjhQC7panWsvhWmb/auexdM60b7dpZ6YWOyOJa0qT+G9zC+cUTlJul16NOjStrdI5+HmW42OyTZigq9e6wSExmEs9irgKnyuV2XcQjptcAhXGxzo0uId2qEuEZLPpPSpkxKQDdnY2nESOYlFBYmNWyWgXWU1cgMEOrISgwBaXV58jMLxLhTFsomEXb26Cnyiq2J2giU9Fm2absgPt4Rbymjjkcd7KgXAtHaXNVLic47oHHBk8ARny/M5iBziv+H09TI7cjX/4l1dt0YkbjOG67cwvyDnwimukP5zYBXBFF7hxXAov2L5b2RfPdccCG3yiboYvK/mEAdstGcwwoUpM2weBoiRPCYEpRZxbEcXZdI3lGC5+PAl0a9AOvplhycISXApYj/Cb6zYy1K01G+osg1+ehGE0m/zhJpyLJ7Z57DmuoP90ZNkReZoycA3m5rCOFZTV8N6IbLjf5BqGMUl4znKQZT8ehgTTt5IvwXbnJLz/7W2WXCWlXpiwfXydTi/zOvfh/iZZU5gT/fCx3nc4PpiXjU8MdqGAs84cdBbTDHTs/YbHBvUVFzcLVURv20/zNCLGxwIchrqFeEBiuug3jSpTTTU7nE2FRDhL0LYczn6cZASeq3qNqi1zQVYub8kofKMm6437UYd5b3/SO7CKivw4FWFPLCLc4Z8CBcULyQE9K8kclUkMZwxwWqSVYIrnqhl3jFaMYj9xzk4XxZQBOZeTHSYKTGcyN0fb56s9a6UvmqOL8RLP5maDP0skmaEs2VciXWCWkS8gbAyh6gHDIsnXCmDhDERh10JM1UdBGKpt3XYeJrw/+Ox5PFGyCLErC+uRMXw76JlFhorQtT6lEItxakSkm2joAbmHfVOulpr1LyuY5qrCVm7ZV8y6SBu2UYc1R9GKlgLZ0FCB7GyxzUfoiunzAJUkS4CwDLnKYZlJE5rs6JF008a55Dco1ZmpojV5KSQyO3RGmuIu6MJqCkKcv/VWPC5Cmzr77J8L2amlHANFA8v4MLWPFTxCuY9+llLIkHb9KqC6drvO76U/HhzYd4TCrtX3hIMtbCl4wpA/crGvRH0eb0k3lkNxfNADxb3kdLBtYQIKSVtpVDXnukN6/Jdmoy9bYx2lx/ziK38opmSgnSmwC8vM2i8fKZ8MSMatN+ll9Va3rQptqQeOiUWdB5P8j67+kp4MWQFGUJgq/jA2SU0WLYbL3FznrYOcZUA2pFzq8l+c26QbiCbAl8Ch0La9zRiLDPy2srfCpXRVcMOatjv3XJEqv6lQBhL4ygI3GKN8DSMNoacSezvDfw84MD+EGYUFiyxXhVwAcjhmct3ea/nmTEyFPJL03efr5cMR1jXApiV6KATnd6csvUBQIDUUE/gF87lpIhcASzc3FNkongQzQBhyilusxM5JCHhq1vsAHUSGlgfPu3T1LMf8fUvu+nWo1UBLM6eduqghd2CF8y4g+jxwScriC7to9zCH1oCqa+AO4eXSC2V6Ayu3vW127r3ABmlmG7suJd51EhqnAydEaetoL5Z+Ih9DtWAiYG1DSpjkcYPAD5smccfdVDpabrJdAdk1Bwhk2f/0XFt+gZ89z9cWBxBadW17CYPkcnfxboTMe+1Gm9uLOdI72/ZEW8/y0dSUqGtJdXZHqbBgpaZqxg9gdyvqrqrbu6pWaCOvqGZ9bS2aNQDDcttEfa7PXefhfw+AEl08ngtUlua0VZbiX43A5T84leaUEbC5JWu0ClotsUtMv9U9Ma8XonMcneCouY74ROyoXJb2qJ3JxdQ0t2Q4GJsnrM6NKuEQsucEeknJx9Kow/RNlZAi5gmhVfd9kZGBWxrcGjGGclP8Dlyf/begmrKtRtKZ5yBT8yKmq5BbFMBNJ3ipr7VHfJAIAEVxbHyfCVVxhN4Ea+KJOX1kmZaTU/zPKeIuHT9RFhcximF6rOEch4CCeVy0QojIiYrbkxQjbaoz5+dTT2lV8Rvem+gxY85I+O944aZIxHzaH3mJ0YT77dfahgwJEN+Ecac7wiCCIbmkaWV98mdvPxjT8bb5DRzhJR3z2dolyrlyaNktNUvWxPOjxcke/OgOG/FwhyIXgS9DOAEITNdNLXNtuKDHc8plFH43V4UF92UVd917U4OC+UYmM9htdQeQb5I/FQp+3cw6YsWkTBNupvHaX4FOeZk90YqUGUsSz1gWzC1geFSSiYQeEdS0CY6LXPM4KVsvR61UCB4pu70JHkvpAE4e0B7PIba/7aQvUbAr9ZlScVQ3ZXzHatAGkBg+fO4eawSGac8km+CpXbCs+fb7FJ8xW/0Fy3TDoZwOwb6pW+BIv8uCG5EDbNrUSRJ/WUcQn4nnt35rFYyt6GLoroOfLw+6Gcj0pO2fsa+AtutLPb9/jmtx+rXd6t3Ls22SglWOFNbJHGG8r7Q9xIThX+tITsfORZ/N/tf/jGqe2ikQDYq2celmNH7OnXLzSvuO9YNSrDOoTSTs3LlGKochkEZlMW/XAAMt7Yp/jbjIlVq2TSg8sewqPiwvBC23Zm/dTcmPDerVVzsUQcHhB+nzht1kaCTCdTNhdvoWKwvYZ4oSsaqOGGcbb5Fl+rid+q6arHmMR20GI6+uWKihVOIb707/PrT1cPyirhOh3NZKdbTbl0cuJuRSqmEV3BOkAGkr3zd0DUr+L5QTewxGAetWpDipU3AdliEJHg0sdyYLdHyNYQueZGb6g0jlOWQQ5J5v3aM199JVy3Uf/1Ge3bkUt13caf0uBvT8mPeOg705fTxlxlV8YqKpH3Ky0eqPaZDkVLcckyXL+x/Se8g56COoCA+vP5ov6o+Gq0F+INLDEJbG6H7QTc1uS8BzgI5xdRrVjdzNfNl7xrtUcdNhwEyTmciqsCw9t2xIe+RMCZTaG6rH0HSa8IzUrSafJqsbmtZwLNfIT+ipGbS6EDg/AOjP2S0Q7NpnkskF6On9uZfJBNMc/vRuPPO+CgdQfjClqSgsCSMKIdCVJSvc5lo7XijOtAu1+cAnisoJqanxLtNhMiZquTYxAg0RznpnCrQ1N8m5SKv/9Ka54quCMo1bPbNcYTa/iO3IWD+FCky5gplE7yvElfoQPOiy3GB0tsPgZH0HbIeEcx5cI6QO00aSWe8+aiLcg8lMxFwL5rRyH2XFwnT+ZpIDbUYiKNB/G0P3n75pLoHkRmfle8JmO5BO2juC2oc1qe6HJ/TC45AjhJ6czzOtLg0Q99Zri3cs+gIfZMwKN+ZARqPe540Aj0bGZso2NHB1O1t5/RkeDdikWUxkEFPKEMbII7WtZuIc1sFeyNo0fo+No1AljZ40n68sAS64VLmvZ4P5++PAqbMkRjyKYh3PXfxynQI1lAg/kz1Ky+RNG2hK0Lu+tIqLD7o9+gSk4ACGxLoKeLU1+YaI1HXJtoNRuw1pMGcuWfZTpIvUyIatl1l45Elm6xNdbDS02RGC7HxTMmZULCwdGyYXsYp4/RJgdqBWINVf7FKIaio4QYm6H5aZIpV+2XsVIn2ATFIBBq739vS8O10e1CI9Zros+/6UQ2nmCDXg6z3adf3sV9bEp8t+e7piPl0Vn6K+O0ZwZDjsWLVv1mgXeNI1bBh6kk8iojUn7nRitqTJ7o+xfs6NZTQfilDoypCeK/kaNg0+yScxuUa3HXBSpNCIkv8gbspwrErL08UpBDJieyBraCuOA1hAPfmkPFJZ9wWq4uR4fB3I6YYRqJERQ5cGX7At+5Np41bUzSNyjseRMm+HeG/Y4AOTh4sFQ6eZrtDMr6g0N5x4Qj/WEqGJ53g3lPIgwX/BjbkvAN63C4acLsxgdIE6mJCCXUZhvDTnr7Nxa6EAYH4AlflhCVNGE6TM10ypmFEoUVr30VFr5dMlvj1dIZ+iXWpUQpswhGTZ0rUdIE1uAB2ho3IZCUkoAETlgWTYTpeHTq+R59HnIeee8yLnEKghPA6gPynJCqv9EmBxl5DHixNZwGIC+ISIP596tmySz1lKWOfJSzCNvSCsphu1WSjnZ5BhOFZrKuj4Q5BJTEAqjd5FcdDoy7EPgtGmeNT6dAtdPT5oKKNBnrUNt1bmp3X8dGpblRXKqVL6+ReHnjdSY3QaLY1HU/FmqVXaPTFvxYHJxUlqTNMfb/OJaIMHrSXQ6d5QHmVpnSy8xGXfAcd6FdokA1MKAzBqB+j85xb7scozV4FTownJXNbX9hsG6i8VjLYfYfFVwvqdoWg8d49fazKaITx5BOo3bIcHKBdMaTC3DrBju3cwmjGERPEz67R4I+AEDzJIO3z0q/ZjUo9uI6WejbnyrEJp+V/2TkToGvLmdDxPqLdErgttfHueQZ4wRk42tDr1WI8ZUpkTvHvSi0wss9WMPTuTccFYOp7Vc+65+JKgOZUryMKe4H6cmOM0m3GsQxeaOPGNKY9TnaotMkhqAptsqyevZ4uGBuo0ZWacIsUxWpCQz+DT7IwKbQRnd1CSfDDOh1mmV0VZj9xygoOSlrf3TxLf8QylmirPfJRzz0bzs5Rn15+jMml2WhWeddU8AM4eATCKiVf/80RzQzE/HS7HcZBCA7w7y8fl0m+8fuf2BIEPdXRYvXUac2yxwkuOKA77mLoxfFbWKQndw7U8GDJShjJxBIgNBGN+UU14ox0YgJ+IM7vYX5ObmNF8NKUC4CN00gHk+OEuqpI3rCNei6d1kR6KzxyHsQ2bruIRx1VHoFq+zW9Ig0WemXUnkWLSlgPd0Dm+ARifyFS0uujurMDt1a8HpqbYz911nQb4TwHyRqdLsFgm3PLoUmOnDL4udj7Z/97w1eaPfyMtBP0ewBq4l/Xnypqpl4el6OnUYFt4SecDUJjh5B0Hg3uQayutsdsj6iRMwO2hMuVSyPagTWUEh5No3x8CE/QRkQHzxmWErQwksxqj7aIQyRA0obK2FRuX67Fs04IxIWOrytjmMZpyMlZdOQowSjQ2jstNQt9dyGFTjTwsdzQsyj4OQ1SOojVrNBLDUtOyjB36Q88MyXlKDihQT1mhoAElDZhpRAJ1KJkLj2EwzWYaI+3SN/5dVpV5LZftFyzcztT2sLCjuGuAKPgaNxY7Nc2bn2UgA3xIlzlUPE0x5wMiNMa7b4KpKq1kS2RcZXz1l0RJajkZzj5iiSqvqYNE0wvIytCMEQBK8fuOzqNBwV/CBCcfhfuwuq64o6mT4miwYCeoAblNBALa6rhaPPQTiijH4KaYg2bD9IUkWwtoDFhpw2/q+paPxEU3jCQGs/LnZKbNxJoqZecAyVC18y6st4me59Qnfco59MewM7GFrp8eZChAKRvXk1tLx+HFdBacQZHR0oXoXdscR+45nbBRMdY0Jt1QH04iAHUwDO7Iku+pHtupJ/XuNcuDeCgbKlpbAd1u91zwSjAOoE80NFnZX8q1YRnYpbffDudICa6eWt5NSVcKLfl+cbdk+sUIOibTNqBNJjyYHkBbLOfADZHkSI8CCggwbr9goMPQZcvj6cKiR+uOQ4/HK/GAOIzNcVLj8a5bVHwJIbNgV+IosU8kQnt/O6JN4z08ORoYvyN5iOfg4xJgMRceOc3anQf65YOrZTSP0Zq+Rcsyms8Itz+PxKCKxZkYMeVFOKfGYbISW3i7P5Iax0nQH+BW/QAjDik9AJDdDqTFQb1zfgQv2wJ/FO2jTAh2jL6lLnM2dnbL/7BygCU0AWKvBHJbwu+CED04ZVad3yNuNpb93gn+XsopRH5LteJEwkqG+Ekrqy7OJlRyn5UJ4BnpxLRCksfT+YhG57Ay0Ivh6rmqT+9J7yZXr58Eus52M4TYBYndTj3HkRS7OBJ7dUkfcRDKiLrgSRcxZxD1MikpUfnjLYoBgonb3gcE2R/otu25r2+sl8+C/eTRvq4+dTSetKZnL4qG/6D/Im0MDe3VQRr+lkROZBeXPhUhu7hVT5NL512dVCWx71GZo3MherjBXD2vePP+q3poRAc6+bB6IvVW+xcbAVAujruIz8OE3RbaOl1Ugqs/uDJjqJRpZPQ0SlQ9Ivo1WkaqU6R68Mvrt3lPeOvET1iGUQXgTMyshouibO3A/wuZoOjc2hD3B/OdIjSXYkhPII7JCPu3QKMV80nSyM/n4VKY7pdIb6qZhR2JvplYrasbD6F/cIKnNGHvZkbINmSUNy0sdlwHbCEExifPCp+l5HM/2kKUEJzMZluCjiXCNENLG7iyYGLvnhldiknwSxYHZN3NzDk9D8kbcCT2woGofSJem943nDYcmMtyZCpzEMdwsO/loCxz+grJ4MZitO6rDKDHIacWBxibAWoc9BWWwTyoy/kNdOVEloQkyII9AVU18e871tLqGS3CaI3folUwms9IXwEaXE/cqv9yRW4ESOkBgOxmgJYM/6tyrZOHVK8w4pDSA+DB6ZW0ZOhTtGRUjoZEfVEetd9rNOYClETrOvfURb1BWPYd9e9lMmN9edm6qA3CfC/S4BpRLTvrhQw5kfcdLVg/ig29gUiTiPdeo+VHCmwWnCxcl0ZNLYmYOGTBPoLkfUd5/fRqQQVr2ToqcEtoKAc1mT1AXDno0x4vt+vn5WzkXyHLXjI38zzj4ty/MLhuiLqYb0FXHHmQRABZsAOpKkB3CYy8rp6YggkRGyElTkgUR4gqkhCxE57jta3ILH4Gn+nru/dQmojvt1k+R06Ba4lIkp9IDHJ5VWdBdyIFINaQgHe9u1B7PKcdQhGKWcg4sJTW6K90F0JTZChHDNkce5itjJb5yr8O89zqdb632zyIPe0df+TBW2qNtJQt+7585WbdQ2dOlTAnHsQSz002FRKZvcPR8/Qc/fK4lhzqXcgkRtdPoTN7kXOMGRXItT0fr4Zi1GSJvOeB9SzIa1APrT+tTPeDxfHZpd1itV1vgdSXkiUlzxzTS+hJfUoD2UoZphAnfXB5uXoUI8EF2hcXj820hev769o1gsGYtEa1tFPgATELWqPyeV2ZYIzyAl7J+Qo4F/a1N3LqV/OjrnJGpoZo0uI4Y1DW1jf3DRqEzWv7RRdVv5yG4Lnyh7agT/tf+tktBzkd0sPdHFLfP3ZBpI74T8AdJc1Tf2g4TN06i6ziXBnwpqSoypI3u7D/aPNAz/D6tI4YyGUT+cOzJ71ReWL1AerHHOeqeO7CeqEBneqw3DHPhYutpNg4VQ+NMwDTWTzmnjE/97qTUKzdmxox9WPjwyr8/58Bdi4dU5JylYkp9ubriWgYgJYJBF9Qw//H4tSwBgDEJRALURops49OS5z6RZtluLDJ0x9lA799/c34tDHsfWLhDLX8IklPe7Wtp/V4NO89nFMo7i9+6RC8gWUx0FyZIMGGOR/WjiMQ9paDOkxFdRTBSfaVVDA2Gsr0lxDsbwrR863VdxY6i6KQQBLJJV2nGQjU/Mjtwp7+AekN3fW3A/7Dexq8poXDXB3kGW19YXa47n+n9gMpu//ZPwFzWR62lY6J/Tm8pVlB305Smnkl6In+9yEVNsbk1wRrxY7077fU9sjDB6ntBtBpgd2hEdKrv+kraxOWGwjTjOhRX6IQXE17xq3LixEEvQkMM+Ye0BFpOg5jWMCwStz5yGye48bVSa3WvB19O1p7nRv6tXlp9IpT58bvHtjrXsWLLe4QSmL14mnfcL2GmS7BYK/vjDkt4lm8AN3zWxix275LeB7nitYSH3boqqh84JEUlRdUCSqMLxf5cfwC+0KEBfU01o0U2ddbRNFuQICKoT+p8MeYhwZi35FzW5c3BatsW/X09ZfOw2K/XY8NNZ7bW3hPd09j+DhJoFopL2Td1KTEJV199pnPzC1Mv7csySdSqxt52wPq1/vxEY94I+PF/p4w7nn2/maWKq4ij//uPUbPPtz7Iet8uu9+34heqvtT6XaMBcCQA5dmE6YdznFrpM1jhceli/E/VkZsWyo9dL+wWwvPYJeLud2MkvsCQBaTjuwjPqTReNJIMrJAKcvsIuCR1x45zt00mwAMdDhr0uwmz5o/E672l6mxa5uSvi7g6dVUyiyjl+Ki4M8PdC8vnIdK695dhKM/IU1YflL554i+KIFsmpa+vhg1dPxi4pPRf47NVb4nh/b+1BZZyXt8m1BEkHM6OzTEEb7jhtlIZMb1tOgRe12nWf0kp1iu7Y3Zjwtxxi9cscph6+Wpdek9k2NZe6t15LBAOMAA9bM02pYzOjsovPhIrf7cfs7Pa1Or4UaRtUAbKlhl5F/unfqvPMiBnAOil/djhSc4rS0c3Ji1evkgvKI4lyivNmGl70MPpN63Gk1Mix9dtf7pivhKe1Ib1LmcwTNoFNQS2XxhhNIA1gDKgwua/CzrXHScGUBOTb361NcszobHMitEj7TzDDB2266FC1hc0XliJvE0ltDflTsPLq32TMqeA0njyEngPyfkyRXqv39HpwJQZsRBHPrD0Fx2UhF7UTSH675ZD1i9ETygY3cFWcZM6IUJ+J3v5jc0jwzjp0Yr1DTOT4vezCVrqO3TJVoEswD42nl73LYLP03itFGb20YFwZ7zi3SiVmeqwt45dMeut02k0c0o0Lot9LMq64I1WzlSzuXGc45veEqE3SHDeM2WZ1kQRmnpGBpUi9bv+8NbQo7Th+8W2d63Fw42nFzatdTjhWEak2mQF8tkhmhwJYuzf2v33iN68SJPVkzcqiR3znKD1ZXD/ydzLbUdwLltd1Mfbc9w/P9S+4qyDsQ20e/3mfbvRAtCzNLQRm4cN4p2KGwDTxGdnkbSnUOI7uM1LiKXvqWXrOoKc+rxbDC09VyntHsFxIEmCUlRhHU/YTOyP74+KouFO1OF1LfmUzwkF/i1U4/8yTtIqbJKPRltRFFLn7Ld4PjOGFYGNAmd+EGG2P5pFEtTglQu9qPaQg8ZtHIFXQAukCgCpPde4xQoIzaxP+yPQxTA5riD/0FwJ4hED9uhk0W6/Wchrrgw82nl/xaCX8uKIUgLKoacHY+ZmBtbX4JSrV/vUalha6YBUOAH1tMAG7W4VAmCoWNQDLkBMzH49fMDlIO/b6jYig6JCXyhfTiyFGjymkPiyM3p5hvXg0mpQTJsYPtjTjqu1mbeYSWrYh80f90OJHOHOHJahZCL1EEuhUSUR9FiUXNaRpX89llNu8DXdA4xj7doINu8Q6kXN3lvp3fost3vHV7KMdYhtGIpvpx1pVimIu2Gm39hPpK/m6KMKVvhT91EOxJSgQ1TxNtzmt8WV+IfeiutIrRxznlCMrRB9aYamZ0sdMVm2pbCCBeLeArNOWnRQ8r44uYvXqV0MMHl6r8fCp/XFpGYVC6/gNOBclOa1pZkwbmU87FR0wh3DFIvsMqzO8g86q92AVgXKlCDBtZOfX+3SW0vXa/92dBx5L3PMRjFFkbhJRAXzIDOLgv3CZuOiQqD10pHQb7FoqtUS4xfsVCxKgAnW+72X+7PkgNFjPE8WgUgh8eX6W1gvY/UcjnbfPzAd5vjl6DB/TISaX1DFWUWFEkzvM3jer1BwAtKx0B2AOPYGL2DtxvhiW/TuwocAXO/UKtnTvGLWPJCWbwN0f5yTlkUIGNIo707TNY/KbbRWsvKVjYTm2CO/BAtV0XWnW15YA7T+B92yN5IUvGvXl94bN5x49vD5JKuS4yjdcrx+g6JyTxZL1NTFHTkOfIfWUseh69la1YBzdgi7a9WXyzxQrEVDzC1YWqh8rN39vtEbeIBDVEHgH56nsgYq/fauFgbD6u+q1RzO6zaA6D2RAxNGAePqVW0nDzqiZtPCGp8P/GPmID82P9wS/UHKxXbJxfAWsYCENQGbsfydLYzy8vhkTksn3XgNShDELREsxG2VjPi6AJZOwyV8xOO+EqHDmtt/jw/hCIg3XsVvgXPPsTybLbfbbzS0EZ/2+b9zj+1PA87FNYgYrlvvx/V3lMqQ8Hz+s8bnDiSUu2vIL00oMn81NaO1WxIIixPWxlo9WvX8dsw7aNR7kDgCsJppKHso1VBGmvmHqAhiana1+i3yYFETyE1vtPpc6J1QXLUwboWe5/R7cJkOisw6fCPiJBghYzyKL6zc9nahDl+l/xFNCfSJimbUCCP7wp+vDzeCuQ7S4VAPoD9S1dwJHZp3fng8+GCfP7vBIMn7GbdIQRpHv05T2a9+2kp84hZ1Nn6Tc18ueBdXfHcV0C9lPxtPc08HucFChZoyXjCIAsErejHgtEusvRrFk3HA7jXY6EZEL/S29ZFrZ6Km/CGs+fj3M8qkWzMJFb5HyWNCtfBCryU7wQnVm3bIYK3jqBPkkt9nF3sY+f1wTYtgvRA58uqvY1pf8TLanzsaDA3IEhQM12NiVlqFuNwizzh7/6bwIxnzOza9VAeILoQDrVZzVG0+IDA8jNTJ9fKJuwx99dq9p37ZhlqHJeZeMXo8yFEfdE2jZCaou76IAWa9H4dhts7MWKZZ74O0z/f7BoanEpX/aIq/EEKHvPDlKHLSXo145vg7QBkxFSvXmpf+lO/M09T9aPbfIgziu7rnKrRj+4d6kb1zorI6B0nJ8qhMc7+7M7zSh3XSAuQLtWWUSsLXGoSkGMWK3VgT3BOy3F02Gg/9wMw1p9wa6SwkrafkmrpfgN7L2GJbR72nAClVbtye8V8a4DPyQIu0EhmSgo1Oltrp4RVWpS0Xx/UqzodyprcKVDqpERN9RliKi608b1uKy1UyO8G54ZoWIoP3OTJzFh5aCU3ZceHeqFTMzja5JbLsh51q1IIq4MQFyaT1Hq9aojBzuMDlvwwJD6TKp6+rWlSfKUNWYVIQmBkGlgo+CFyfygBgmKKuzxTIxSJdsZf1+FqPFugGUHKZjm8ZP72tG55AIUZpcWdiQ/iE8lKqIKrajmMvGXyzTO3bjaQCZ3rMJaJaap54V9QPftcmAkl2lZfLmS9tbn5mBnkCIRY8tvSowaesopFhUnUOclWirztsmmtqu93W0fRf41ucwSLGiMtgStPNm3WNxtMSHLsMeq8jaFSHZ9kOvZJ6wuT7FEyLD8Yv+uzisUw68n3H5TQQsaL/tjUTwYIkkBML99VKpPdISLwCENHAOANUmcwqI0g+IMUjpy+Nn9Fx1Yr2b0mvqZSEdEm4lBwNgdeuPyhlGru8p5SvbNUDA6YP2MF/TB7xkwIeDIEzqYH5UKymipf76wlfWXxhDxYSjrdnuAGg30N6qzifM8DvBdcRryjmrU+CDMJtLhGuoKZVMBSscgJk9Y/l5ZctkwNwPmKJtRcd4lIq5g1qIu+sefQmeuUmleU0WG3YXalHaQqxdlY80WdMzsp0FtN2Q2UlDsLV1i6fhnTUre7pq0kcQ7hmtpU8VJUsxEMOngMNVuEibhaNZLMr8x11LZoeJ0dpEIvtywIwo4YvPktiRepoD8PLoi0IDzu7ubGEvms6twDJy3JnenAR24eKHclGnNwXEbn8uyxfgTABY3pz+GPQbaWgDyWTY++zP/jg3fRHy7Kxrh6TxvZsC2K0T071qArULYam2hKmhnOCoWJGXXxi9VPOadzx5lj43GN/7fYAFRFNDubI4Eh9vxm01VOZFEI0fHJzHHmuHl9bVjDr6rk/P8cb9c4JhW6vBtXLFJDy/GMplr8MaHAyknKnf2/1CFf6Jo1kW9+iFXItI6Dcw0u8hKZqJWt6QiY6riwjCKlNbBwDI6uYwtYdJTCRt5GE/PO/XBaI6fZHr2+NuiZDiFbkXMCWUwsVe3gDJeyZ66raXNpnzff0JBDH+dQnV5JpeTYqz7nQFDpUdkP9YAM6ZCby+tO3fZDHLobrKhJqsaj5tvBnDDiRXEsLzX6IK2djp9wKKH3vbjd5OZ5wxTRYFWmnCmAHmN8+2zO7mWQANUwBvDpxx44kS2x2d461wJgzA+hnt+VYujuO9J8ab1bz7g08J+XxtrdHMU2Q11sWGtb1ajdvRX7Ycf13NOJlfWdUBpxoN4kfMEmgC4l/4py7Xm9nnkuaWf2o9CJOVLNTWS/X/aOtXoph3sNY27ym0FqAug2/kj7jZJ28dOPYrD5RrnfdXjbU+pSi3VZyj8LJLzZCqYtRB1bOo1Sue/XF3F3pc2dVBq+FHZuod0Rivt3zsE98h99arUCUaYEBPvjmCZqeXtTGQiT0Yeh0iLEnGAfH0dUht9WKOViaxVrqsh+izP6oFdT0ouFvQjVQDFcl+mpeEcUdOpFoHg0JJy3c11gAvurWC8gzBPdtiSewge+BiFZA4AJUlAyZdkO7YFtBxiLmN4l6oTbCAJdv3OspEXBV8vYxoFEjJyMWACi5XM8QmQIoC3oqf+IkHD8SdUhWI1jcxhqk27jbLYY4yox5OIp8XavBwDYAr2Rb6Wc884TqFDh3qYjC3El2lk/AqyCRRnh7siTEuH3VB7Kaqyt8GQ/lzeN5SViIgrDCtM8hvbhCmFPpSH99dE1IS62QU3eflbvuA1SEeClfhqvC/i7YQgOFc7GRfmRyzsgTUAXLPcD8ND34Km5UzfowwTQMWAiu5h1CZ7aN6DhlIDy4iqkSoPlppfyXq5UWgl/baz8ATbywzL5mEAJ6JnGJ6xaCFwnFNkAnDzFnQZqIAPICL9OKyHzSsOEUrYHGHjQelWQEjGojkIZ8ji9sIB7w7xlMd3APfhNODKB51feEbINNvfm7b9oUONTI1dybZxzm9n2kmJgvcw5sF8kJhN3kemSjhZibMxV27jV75hATdrH15J6CroCWB+DOkVH+EOiCdyb6yMTbufK9guzqSbeuJK4hLOmnKIwcTQspZUClg2K7Mf0JtGTeQ/HqZpC7PNYxCzeU0mt5tbrlti1J0MdOQZ33QVJf/n7PbOsAbCO2d06CNQbtAyAdSQrNMXC0NWpnPmSCRoUFFlRJaeZ+Z4SOR6gQAqo/U4DoE5Sbb3AZx4vgZhyrFy6PbzhlkTxWCgrhcDezEZKldMgzVOrPSAsbAHowadGZDEuniZpVvfnPdGL+KZ00NGg1Vs1N40WVs1va07fSuDovh6mAjuCGmXjqCIULnVPsStWPWUq456n6IMmHXOn9vTIb0AV+ERrADpOHYglvFGNj3JJ8hVKSynUPqAclHrQNnkCyX6WtXTJ/GdiBA2HcX4/UA3GpNF70urARZWnYBv1wuaAUqU54MFwvl3KsEPVH8rq9rFPKR0dqm3aLUbZSRhkCUxKCYBicPVYuqQo0V93Aoqo+mkUJzRgqj6RqIVWw+n2kXts59IRMd/wVOYTaEhD1DnfGOmTGNus1E5edrHH/Y+UaerZUTEuEgoFEyTSAAD3IAwNUZ/nm/tKwfIr/2bG1XjYK1a4YhFg+BbjYpXxfvEHngADkXfSAeOQXULQGVY8O4nRqnxFYPZHtdm0DBPlLu/H96SoJ2wT05u1ye8xkVRGQmnwLzNiUdb7UC7sc0oQO1No54IgN2tFG0ZMmOoYlhgmV8+xFl0cL6eCq1lcSntZAd6Q+kZk0ls0fVD08fDVu8Kzem7zfET94w8YcJK41b5/DKVDevEFJPsliIBqUMj+mpnH5Ht6ccyltm8CnB/ZJWECv5StR6y2FqniG7V/26IMzRPd0+UMruS+naD0z7DCdStVfdu+wN7YKxb7YCtilZrWSNJKZG9fjkNx77fRbomr0j7W4w6Z/IVl9Icc8IPfApB+OF2PG66NK731jLUGYWb9HgEazE6l8b5tzCqZ7Z2heyMdgOE8V5pvT99gHP8y++9t0IoYnMJASKHDGM13KGwG8dhLjno6k4A1mXpfQO+N+1oNP1wCZqTLpJ61+jy5jCJb8sGP3NPC5dp2Wc09GKpX/WBq1CWj8906tTk+lB9ytk+A5ZHFhabqGin1lQRN4wmxNEd1CSuiy0k+hg5RORQJF4f8CMXsXxR3E1Dm6F+40ajj8hkCx2ARwO9rw1rnp/kspFw9Y6H71m8FsW9fbNsYt3bCM/g9P+cvNwcSHdwwa3yCAz3t9lUag/6sKdbcBqaqLy9BExuvW8eOcyv7uKMJFlKycAGdjCNCC0h1+mcJqbaf5lrIHJEhTOR5+scW2FzN9kZQZaMsgAbpmEiYy6pej/RnhPesKTP61hCKcR5ERR2f0xWT/JbZev3QBAZ7Z4DjWzlvxIVMVvqTS71FWaobdBnVmW+ZeFXiUUYJ+wJlf2hEGySkL6qtk0yNG8CL/AC9704eCnBepEB9scj9OrJX3kfdaChUHK2UV7F2dOeQuB9I5i9vANRw457YlljMHIeJaDbWe+TiaJ26riL3f1329f3Q2FucOurSIWWQ2jCJ52j6ZSSn/+sYAtocRfTp50EQ8tDUZjFOrVF8OEPWv5xrPf6G4kFNhxzFco+09JikmOpFjTjKWh27NQZiGqlrf5jvkkN+2szHUX8DgE3XbY7OTf5ldJP3zFOGogsH4rsJSstLjxZnSazmsMNQQsm0sjinT+eaNm7PG0j0NSNlGeQ4qPjasFM8y+RnBwGKcbSiNFr2PzsE6I8fFdYJ4IWnjWotZtBZtDqukcucDohIqXMoWhJF4eJcU6Ff9iDCw176pIzLKfh+WyJr7fZm5/tJvyC6nSPyxBT+dgdgUMOnMaz/fH7IZqehJvh2a2T6ZEhnNrqFRny3DkgMal0Z7sGS3Jw58rf1Tf1Uhsk31rItwgsotYpCHuucOO3f4TxC9gMEg9X6GM0AxUBhUa3l+hCXvXDSCSNTOiHxnUH2/MN+rNIWygUiPlmORqhYZ0tvGhJavnaPJTCCxggvqEsul7zhE/JVNAn9C7IVRwkvI/PFAYY7lEAGxpdeDQ+EHWlrM/glBLgb8+VTQmsDrkDsGcKUDFHUpOxbqlg3kJ6ej+y234ABf4gpjGJTr/NtpjBhmC3MarGDlAxpakIsaeoPBZiATv/rhJY6gyIneE80q0E0D3gXlbtZKVcXaYS9rQgRU8B5HIlYFqUfQsbm3oeAkUDBE++iIe0zqrQEPhCA86AsBvWFdEMgzgV0nBnV0bARuDOZhbZa59eN0Ar7ZzsrpNoV8gd9ZJlv5TwyuSu6DMJxAu8nZno/XBFGEm2e+MWiJZYFYfmg4XE/5rMzFLbZ9XiIYp92cBmdYmkwDJN8Pq+TU3T00JmGEbcduvzw+P/a4tY8VM65gdFAIpPNMcLoq6HbY+03j2qA+r+psSEyIUWU3Hv/We8dR3+seisFnkWi0cfgp1NXhh7Aa3QLpIz0wjlGSqdxQIRMioFv7uduNcltFYnu0HLS4MQTTgg2qXkRoc/PQZ5PaZYXQiJlS2H/1EaLUD4oPVGPNTex/ED6/k32yHB+SB6Dwdj80C+uhfT60+lI5NXc8moC9WB7oR5LAfcZRIi1cxTimeIpdJ98kJQF0PjHQhAQ5clWTFamAOqVG8wzCu7RadNvQqM1Mu5rTRqsSgMwVJJnx6RWra+kuT3YIIsALStrOFb9MFInjnh+ZOQGyi8Y7979auPp/EF+x0KKmAaIByCjiQePNoeo4IvljmG6Th6MrmVjtiBgC7RyKnHCNcLKw7x5UeLzcZDhSGcE8NhqXgCfC8DvAZchyih6JxiQLAHp7plvSyAdNQkcJhIm3PLAiHLiqDOuGLpbPaHIGzJfN2k7zgfWBo2R1fX6FHEQSDebBhhMqNVbH8/atmoReisrOgCuVeLgc4ZLesQ5obNElBQbQFBQRpYTFADoNRmwgMF4zGesJb+Skf5bqYg6KOomQZcNLWbnNBpFtrrdwwJKf4tC8133rLcwPbmheDZHfjnJIOz96sr8FKcIR35n5yA++nosoJR2U77fRxwfKlSEtiUxgzh/rhVEk813AY57CS4w/5l4iBxyUQFpWP+ILPgWOHpMiSWTZ5M6rg3WuWIKqG2GBAFIAa81WmDiCRd6g2P/NAAaPEySnz2AffbGZ/PuMlKx+CYQDs/iV3US5w73T8PFVWLcMMWjBY12DM/L2GaGGdxNQXVLmMEhVKi5oyW3eHF1ZzjMlozYk6g7Jk2TEAP5h72HUe+/H4cP+sKY8IJJL2pQT7T/kmIA5UoLZraDBPXY8oFEnRTy01TbC0PYGV++2L0oceQypwwEquHXJSUNPuU+KeChw3qQUIwmbCTULskc+m1FtHQDJxC7Rw5l/Jf/cirjF7/nAHAr91yKyD6ECzge6PiL3fd0aMW+UF0fdMxqd5h5Xyauxv7+rKpEq8oQKlQyouG6u5XKaGg66ZRUgnokQtJKJm8G2/aDkg23ZBXSwV70MAONVIExLPZGWV/d1TW4OatRa4FjL7/F9+2L7GH+N/4NusigrwXcoEqYqCVSTLlxi6LBtvew+9YrLNxfo773YTuhCh1eSGemgpjQVEGN6mq8SvDpffNaNuQHRIMA7oAPuTO/b0v6RgHy6AEG3ZQ2uyF3F/f7B97cPwNLZyFNoOVovg1sUQuM9/uJ2HWiYJsKc6vAyJgo50PFK41+5MXKQYrNCATVspR+lMxyOI6coxpqbLaoRVF4deS3rVy7bTxVxUm7qriOr2jiExdDj3/htp0zKpaQEeTZrIWtJ6p3QBihnzvMMLRbWSHr5CpDNUDeiFJ9kXeSJ7lEo/2R3XBlxSBzv5SoSTKlFAH2MWNofhf4L5qwD+rGgp2FI7/SquPiw2+x9fi8ofZeKbbKjnXuNLejn6mlDlDb4L1VKIea5lxExFFlj2Fo1b4Huozuk1mTiQ9WEYKTNYoE8A+qXFekEXF0Ho300UnSta4RBoO1swiEekYYNJf689Z4eruKWefoYM5mc2OIpqYb1shI+Eb5b82V4h6iDGI+JFb3XooGueQA5Mk9wrjKwSD+k0KbF7aA5L/wejFYxcMvZ3DH1urC+xog3W/1/2oyySIrT6iPRqFMFRtbwhgVc8rAUVkvgQUC6e26yaroEXGhIS5/edUT17dmc2sTePHCnsxLlhfx7KHzu7VXq0zH02j6PVqk5OW172tQJ72Lg4BDXZeKr8mlDAgLIKoGw+RdarEVEYMUqcASNY0vZsJmnXeazGFbJuXSkjEsEf+B5lHhYopRgSFYVD7l2/rmh+sLB+GxSXG8tBobHAjncV5gjGn6o6l4dBe6/85SkRIBBKRQtmCi/kHgh+uzVQczrsAMjd5OVdq2E3r6+cbfA88Oyqp8Q0Qv0Cq9nQptRq4xmfUoy1zr88LmKmH0HFUWdV+HL0aby3yD6BHAanRufB2bz0puq+G56TtfHBiWIVdt/Ggs1oQrLFV5pVJIIheyapbxVMeL6cHg7fGHR7bYJDfaKdZHVuEWasDvkFRR7KY1g4RXDzDOg57exUYPVTnRjk6DvmG3L4Y+ory30leorypJmM4Wf6EUAB7wWOX34s1VcCtB6L6UuDzRSD9hLAWUFdBMUzZywBu3jEuHqVyVXBaov6qr2vfYRN8Xdk91XrcUnOlRqCi6tSA7HLqrAG8izlmvOsogVF8i2kaSTJDAnuo8rVTq8G4K/ZjxwAkYmtw/eYBtI7WjJYzq6921FWhIhV7TUmuOxmgezAAkpGPAWfFofuSTQMgCx/1m2GUaU+WSlbPwP+fLJiVeVrwLaUpzTJWeeekRBvK7JIc5T854+ZEQQP8pr2I1VVkqPHHKX/lDHSD1MCeoWIpoj1gnTqFYwFk6OR85WMSqvGK1uT6ppX7rxo6eZHb2gspPWQ+kIfNGPSnDGNdmC2wYJ8oyhVzNaNOCx1RUxpTteGoGnC50456n3aC7xs+ugeGJpLR5QaofOCf2qjAKzmZYnDnvF/1WWW0nKZMFo1Lf3MT+PeO8zirLRZMzOyu8/VPQ7WYzpzEUrLYHmUvPFBkmrIaHkIQxxR4xJ1oOahd5jLZ9kOoHThbs5z66lR7WUp1ocp8cpPculdPKkRdYgrMRRqaaIVCDp4Cw+JbjbjaEj8yIQEIcjKHN0Tp2muBYroVGXXji14U5Zt8FTzbkqHMp4byJRc0FcF2L+rjRslgumUaNi1PMZ7xVJi3c8IhbyTT2sS9X1NdtwuPjX3EcXeiJhrIZLW3yN6NhyYhVsOch4AuRG6yJMjZlHW46PULXjuPtgYnsjAK5wMzlIU7CIapAZuNGaCWbXgseFqngcRjFa6ZbHnHR4pMgVVyjheGcYeqZ7lv+yjVhKusjsYgGsfEg91ioNKbsFNQCJ7/Pw06iSqz92tvwwxUyr2fECoqDSLUmJgUV/TSeWw00hlsD5hD73UzkL3ACWJ0tsKT0QnhP8WgCmUGVbAUK9wvhN9smcoZwEbCGCkHQzor941LOpfkJdM32c3EuzozmR/lHP4v/MfcO/2lSbN+Vfe0xUMN9JcU0BO32/PCOJ5C2mYgsKKqawVF2UMFgPp8fn6GzMTOtyzIhWeXcJUMXVBLpFaJq6lEI9cYltaBcMtjtgQsO/26ZZOjLdPVjhLYDxvp8YYFofLgAkjmbQhsQcDa38qBcSli22uYA0iTlg+4Pws5FB2vKDFgK3r4Bv2YpwaBwQ5wIk3TxH5JhMw9SPqUAXGpjQ9GG6hC4eGTGR/3Woh4Xwkas4DiLhdHMEQEtUuZo5e4USnZj1k6dFsu8X2cRtbX2aK7Wo7BXpvCN5YdLFAIykmyBw0YiRus7lUx6lR/mafZ1ekJal9iThy7Q0H1SdCIJqthItA4aedoB45I2UJ4NpV2YGOECTc8Iz9CcYZ8g4H62rryPso2tKbEfAxkIZ27Lno2U9jcONseDH+vSz6Y26JbBsIwyYL8KVSg/OefVfOQJVqgWcTyd3su2ZG1quF1SpdWE+eNlMKaN9b9SVQJidb1OS7TSH82J9mf/GNn92SxUnLEkdFJRRPwwGdzRgBa+V4tw7rqmVWXWJdUnyj8vgxkgJ0Xa0Y/jMB72C2aF3LveEPOJpIPQn3bMgqwBGc3CslNoSDEdqgt8n3Y+4ACfZEnZDTrOBEB+8cadmvk8Ci6xW4ek/KrOMHIaQIWyNVMyx7m7RSbIYuokoTetUAtcUpWnTMrNFLntX6FAXlBvJhPls8gi5DgKtmMC5rgECl0X4tyjhC7U9FVkogMpBH1/pEcd+l334uTDgqAGzK13yVFn0gHaXbrGWU+0Shi2K/kx7sTmXEzNjg0usmC9Kvj0nSWuqf+E4HBunQ8wIF0OW/gE9glOykYo3rfStrcYRlcfSs5FRpUap9CcIiCikzNLd4k4LOR69veGmSOds+ZFNz4ShbftUfnw8wvM27bPzeV6H8zE+pIqO1Gz8mzFcqhw6DANr8VL6Lh67tI8lAPMlmNOnI5lOpCUYXpvI/FarqxN2bHMsQdgG6/JjL1Py+D7js6M5WdrrkZ2ovqIHEQvqUlpa6XLumFpayUgXScAr+V5jFa7L4vzEitaOTIO8QR5lKyzNrATn9AsmkC0bRKP1j5YB7a9SP66YtWJL4dbDrdsL+PF57kAZooIyheTMhwOcMBayIGj+bsaNOW87s0DZlzqrslkFa2c7fPaAMtV3ncWpztjTzi97c8Odfa12wtx3UyzMicoZiUxt7DF5tD7bxkfLoyKfdCapQNk4EzvbN0FVO0JGePRaN5/dODIBVJmGhN8qHDlDBRfG2mXefC4eahBFojRskKPUpXa1ArYqHIdaHN5QO4KQ4BDzQwGVk0KmDKAMAYQsTDclQTjfyTIAHhIDWog8s5SUVLHHY0Wo4AzqwTpgyHxABhQP1QAvoNG2+BFjhDhAMxGoXRg9/1WpwEgjvJfjMPYC9gyA9cXzGD1XGtPA0AnONL9jhWI5VlnHYsGdTN2Feq5HXXWZYhQsCslwhLAVDhVU5bdUMXjFUnNjeOpGB530QdqbdDaj6UlPExmeBQkc40IPwlwkg5SKz4HH4qyc8b2nF0qyXuSn5SKVqPxWFFJfkKEqkurmKBsTI2woYiISrv3SGZL4+MU8mZvI6LjzzfBvtjuYXQ67SdRSyU8RnrHS01sKyR2fITg1knC+II82444iVk9UeGDxiTJz1XAfCh8bG0Hw9vcmMJi2MPVs1jq6LqdLPocnn06PYd19D65mB2a7LhTxN6V6eMZwKFoyQm0UY3wXijyjoifO/BlIKxK6GiFqjpVeEfAKAeR/WwkoaZH4ZzeO0SUMEtcxM5gswrFAOIIh9CVDlRaAoaHqWTZLt7g9j5pa6v2w8MfYMUMIAk3v4jSATueDk9U3MLdUH0/qjh1ywHEOLOUohk+FuS9js5qHTsIyRcsODsq7X8kovdbHWzgbBOftCoVdMkxnZN1uied4oK7Brc60QzHQuMlIeq2eazCgCDmSTcx8NGdVO+0+7T1jxQbMkWp5CNjT2PqgaQ0JfQzgeG24P7p/asg0Lp8anDZYjPJ88ddRxe7ExgNs7YI3B34Fhat+fdW2KHjB7SaW81dKXZAhRs3rOaCAlc2jJvuKnTBETKpGW67xwbbnLt09ipyNfzAYlsJ6yGQNnnHgHpvtfx2J7rAaqi/2uMc5XRptsyNFJOhgQb5VebV/SD7io2MejwNLCJRQGBgmc1vNHVAdcBtL6Du13XggvEgZ34I9veqmrgVYWg09zw2hlHuIKbSeGxIZ7Fwz6qjmsx2BiwVJ9rJiopl7cfnE6iFIUBY0dKR6WVaTxUB8QOaLbIu2GINk27++FwOtgVap0bMzCVI8KJK7eTkTBmwL0Jfeby1y1vrpfKF2UeqI0S7ocPrHO4m3kWgtu/YFGYnGIdoOjicp52CNi7P7EzZMjMmG3bjynaGg7xz4MrxKZlQAm5GJRxUlHqE9LFsNQkCByxqxGEG+j2y+aHBnyAI8qQDw4uBJrm4aCWQ33C5no5vsfgzdiYCCsoR7gLwHScxgLAmPxOTJlDSQail9rcC+0n14FIdo0qrSmoyPNBOox7Wv+zIS7qL6DNn9dz5e7Hjn3bjchqBH/sKnNy7dg/WKy40/rrTKywLwjbftwovOqUgClosgqFpHeCAOQlillefGI+/Sf6XUi2CH+ynjHFUf+8ik9q0O93ebMcdkQ9HsU7NEOQ+9xFhvzPRM9E90fvwHPhH2IiTk2BvOvH2ys/qW9z6fwTy06bwMJitnR8HXp3V4pJ2GcbDzmRWuT6J/sgHV98j4v8ATmQ2sLrhCR15j+YCfLhaJIU7YkyRrJn6ZcGF8aZ3oCXTG+IeJiIzCyjFiHOZrDkVLOoc/BiLdUUpskucvq5Fzmlv6qkS6I3HhL6vryG6XViEfsyvqsxA+Mq208JOGGbbk09+0OkFR/YvAeCpChuIC95zYVW+ExMRJLF2Ix0U2W6A2Lun5+Rnf/PMxl82gO8r/y2EyvTXpHLefzU/7wYbCuogUYtisx9L7PoDVapgg/emvB7EOXwXrI2U67GzXF/I27qKEkCF7mCDMsKGap9Rwwxh12yrR1XGlexnIlsHSPYXyOp7jokuht6TNDnijSUVgZykbs4IluMUUnWd7vQlkf3yBCqgTP30Q8cEVQ58PuubMGPjIjaDW23AR4xFs0WiAGByugzWDXx+VTxRIdm5f1B2XEmPUPD0lll6BWeN/4NGWRPZouiP1KBC+oW+a7reSgAqRL9MWWV436LOQh67IXPTTYsSHq1uljwXMkFIB1fUaX5ym0Kc1YUfOtUaCUr6gbvIBcqduJicG89qt1Lm1pzdC5Vl7TAWUAlSOdxtuIAQf5gD+BMm6MES83MeAB8Bl8z6yo1U4vd84IxJaZTXqWTv+aYN9lrBxjyklm0PwML/ulXg7Zv0WWvVwJN9WzqxagM6Kk12OTA+OYJIrXOHYtxOklzBtrqq1AoH4qvokdysJ60/+v/zAMmJGLqWuFn3wgB2G9V/Uh/m32M3XT9Qf7vwx8nZiyJ+WNqcsi8VbsotHVSENJC1DaY4XgL2U8ddj+8H2PGq9v319qaup+9XmUHbblm0paZJ82T+AsJhY4fwjpUtmTmUouTJFm/kl/il2ht9wIFCI7z6EHNX3Gia5/BQK0yRimbJujfZeUDzQusaqDMggRTo5DKIjsZDh3HqK8K5eHwCMK2ee1FdxNnbZxLjbT3/FVj5suDMPhoLGSg+PaeRqmAn6ifao66xcxTxUQG9nCAvmuFTxcL+2dNBwJ6yaBUZPMy0tePe9scNtOIRrj6RquPqJ7W5v+1U76/yQkEF7teG4cDGOj5sWbOdq4OHWlfX2kr+q8dq6T9GquFSFbZbzBBvmArbfp+gn5l6T7Ai/9bOAITxxhn8b1jTQPgdFtvLbKcIhLuIUvkt7pHNFZNLlmrI1j//4iP0TYSomqi/PZ4EIXlvLa99PTKWZ+FkhPFup80IFmpoEybwX0AEfTYho5gmbmIt40QOkxA8fJD+tVl13N4O98sgaH3eZInMJMmI5U+UJ8b0/z5Zo5gtnGpHdl9SQK1xKg5CpBISxYgbnC+02vb4D2VRICQ+rV2l56BFRWQl2jNqYZG/xAH2RYPQmp3F6sM2OO1fnwISvKa1DEhrVfH82JyhEFfAkjLuHVWFjmWba6O7EewTCA35G1Lk+QEsTUmk7hO/9IsYhVSmV9Ri+JwmhAuNVWqaq0YRe+4RoXN9iEuHs0jCWpmm6IM4EO/Mo3So5iM6uGxTDds5WLEEfa76zFyEcr6Iqx4mV9VVO+h568MkU9CXoOLE8YnhF30GY0sdKCoczpvQxCsKTgUQ6qPx8EgWNJIZbFxXizVNcVTTKbqovZFfW0FvdLmniEVM4/5/QrpYXAFbVCEEu0J0pfCGk1vK4jHal8pCM82+shClbWhRbP4ziOiGl66/I4jV3uJJEeu6IK/Df9ygqOtovnmMaSaICNfWeKMgEiKtYKJZ2WZZQZgQVYEdObRP9sEmz1UVBt48Wqv6AJYHqDIvJYk8v1OEXhvJlKo2i+ZfT71l+S4TiDJLNhydJURrLQQlwHNZMKakMwxVi24V61JyvW0p+037zm2yCCPGqJU8NK6NFAKy+enGJpLDC4DHCWAMEEBiApYIRmtgbc7cK8t0LZP10wjlQRqlZrvj+NMJMSUHMwu41YQUAVUX+H4KGj9ZLutUKP9yWk5PIlkc8nRQrOt3jrX5zi6KDcVEv32++o6D0QQwCEsn68NEum5DvwR8kvgHXTlcZdDCkBCwWRPZA5PdXnDG1Y6dT98lu+O+Z4NejVSMWhI54GOCZT7vw3EBjKXl8Q2p7w6g7SX8ZnDMrp8IzRDcQGNxGkzP14FRvxVJnDamGL0a1sEIFsdieRLPQU++q7RwICGpdvYG/fEDWDmeCbCSJGjmmtis6Ma409c+kJGwiCKOLsL12hOX6b3EaU9Z6C32lk8GdFj2YjQuJVKrk3Uam+HDBVous5xZJYhciFGWG/R10+oxfEHerfWDLGFXg2TfPQl9DhYbzpvnyjl4nWxiBMpipIyJackA5h8VPqkiuEJZf0woD/qeFnJ7k6DGDJAhcNwIsy2SSiDOsrHJya8HOZJIYVFNpY15i4yiNMxvqLnFE1ppEEJPAoFfhPnTpmS15GYqqf4Yq47WHhRB3Yi+wfpBTCexINpsDWc9Vwj4E4VN1y3UVz7s9cvrWfSVepMo+hgj/UDHVLTw1qPcE+OUU+1IvUWMNl5bZUE2xGtyLl8ZWxE9hQC8ssihqH0uwUFC7/vTzqBkbfjx6fYrpdfn14cfj3SnnpubC3bNQXsJeot4YUO9urxJdrfQ/CrMaA8Zd+e97v8W6y/DRQlY4FOh3OHumblV29Hm+IZ7pZV7GeXh6fO10N0kIh9e95w/E/9kYKQKRHlCPNvqaBXFTJ3c4TcVyh2EjwTHxmABGNDfkEjrU9lpSUHUYiJP2Nt6fNKvG3X7ppsODhgcQfRW1TmQigS0EgYb+iIG6z/NPL4COclYWIDVRXDFEWpgaYECwggrpC2KgnAdaslISl5KLZa+vdp73X+OV7OFqM+pjueu9XG7fIyh3/XSPidzk1L3r44R6NK7wcJ+XJdmYfr1kvLLQSdNC8XvK79vgAU40yCLy1IFyY9v4qgETv0qlP61A6vIs5yY1ahNFp2wfDFwAlLxntFWt6qCD+RRnNO/fGHnSN32HfVSr4o1Z1dTID4oz+7r5XpgOUYB2T4oWHFUxfZYxc11uRCORyixMI7vKR/UyTM0AIglNvYAzQKb+HQW76Z2yYPnMd4kCowCuxjpQHcfpnmL52IAx95ytVEv5//LlV9OjYMtvXmFOOCmBFisc9xRdAulCODb8T0/z3JgqnnqtHwAaU/7bD0eKoBuQzei1OyXfB81j+4wOi/egyoHoRunYwD6A3jnVaFBOfo0Ds3yph7JwHVP9/bwku0xxwqsXZgRWNogv6r5vKOdS916kmgc6LDQ+mBYuTKuQxAwyHtQz6SAGTtwIk2Qc/tz+qBUxI9Jr/taZPYR4yxNmXGy6YXU2XLh5+68Uw7o0rhKjxfD4V1ROLxL2lC+MbRTCXZ1dEoLiSzllw+ghs2HBSVthh8hNXeCc+3ZEnvuTrtPf5ufwdR+AXnzq3UeOyy03jhcHKsmzWGiP2rONY0VgUNaVEvG/N0bhIvv1bgPiKVQO3Ls0usuYCOtB1WUSsAchHQQTk2I7UoYsuGploBQeKIWmhXG1WJFMc24fONjOn85KxjFlLh80dgtBhv0QiK56iDnJyCdnlcSYGb6UWJImqbQWuGO1W2Z4XZSAkLRtd83wZvfpKYBGUJ3AGJ7spEbwPO2sFnjMqlUhHp9FZMPic7lgJ72/sWbOATLXUb8wVWYJw4XZV5M1DbskjvUdu+qIluO/qdsk+TrbF16zc69gWWf6/hABsERZndhgw6eACxIGTycQS7a9Ew5jOAHGHzQYcuWj+8u9/cjMfqhf46hisR2xqoeLO1CZV1VY+LDSaLojJc5yXwVbvMYMcA8CIscca+CYTmvvXyFvrTX6u7iLjD5VUClfgq8Al8ubHV3ceePWyhiIW2UquAPImGK22ZmHbe7h/iWMHo46hLC2JrXh9kDCH5BRBwS74y8tycMd+zvCVMci16R3kKfF96zzx+9vAIcJiVCPKBCDr7Uc3eDqwHkxgagAz33NAC6hgyCvmjuwJAV8ztii3O5AYZfX/JZoisZ/qF4td8ub+R2zI0kbdIS1GvejepoScGs7V5P1RD1ZJU0JERoi/nrweld1YfaAP8IF/Up3y/v5eGbt9Se/PHuTYOPnthgU5xd46ejr1PYWrLO4VSelbBjVeQxB5vyh9zn8FKO5Gi+0OhDyeSbC3fdsFGPo+ywqW3Ww4kDv3VCom3Y18plV11sZsu0dPuGswyoDQF4nKFm0Cy53tv2+ndXcb/JZ9CINPy04x+uyeGuB+2lVP8OJFsg8h4FRKvYHYHl0hpYD0VFegsd3nYNL7Ulzrc5m8kPrkhVTUE5C/8yQXTuZWBICE6Fbp8g6r4iR0yuB6K9zr5vrwReYOoCaVLWTp86KG4aWOFEdo7hO93sCIfJla7vrIC8wBQRrd5mwFag47us79GwAgrPfTwdmMNFeUfQeH5So1Vgk0M5DAsGoSk0FLhsJ/XF0lcX7447xSN5+Pn00s4PBD/Sl2pbFznqL0Y166wybWbKy1+s7zs1I6+oRvTf0tBxpWZzkn4cGLNezhTnGLJnJ2iogZ1qHA7e3uTf2sMlWwfHh784XJRXsu/jMfEx7tx7ViCeU3GzrjL0AFazslaqRo/Qatkb8IHiPfHu47Ad3wiqvI494lke8TAH0lWkfC9ytdV6PfpnVJJ6ktD9JLsH845XQGX24sUmXyj6gSFc9kwikQ6V+vhfr949YvKgdEKCZZTWAzIjLGZNToY3lnTZJWzmV32SYlP82haTbsU5xSZF1nac+RCmvTwP3qDb6hGOOQrFaQ7cBmFm7FDnGFl2ACmLX0j6QSfWD47WsG0KQubHAt9JvrsJKDag+gPRsQpFYq4QucRAA6mP95Sf9RfTqXA7VrSeBg/cfzEfd/weIl45yeqmVjNVUAY+ENiUyhpbEppm9YbVF6ljKQkSbKOUfdxPCqR0vwG5amMMN9XscvyKb3LRSxE8VN+kjmH62/s/GplOfxCVmpRhFDemyqTuJtkvmhDZmr2QjIV8W8sX/Ci1Jelsr6j9RX6JEihAxROfuG9zm7jgY0YkajA8ANj48JkdZ4QQ/EV//JcdmlsgWCF0fHFU1eHuGSGTw8fxzubYySuRo637fJmpId6imVh4Dul0Xxkw+XRWo5FNLzpbw7TipeuS/iV/iVqzcUJrKcVNHK10tufaJ9do5m5+RvRWfUR0fok5Hha50OBURRedWObHT6qw1BjqnJQIlYu5MhvFQeAY23jMIx4HSzzmgOOgxjWr3ilj8ODrS9D7g6HxgnvJ2hGBteRTbH/7sVYpKnx1EcA+DmwJfe8zzyvlPI8fOLhMvM7fykrCAXXCATmd5cr5zymxK9t3zm0T2LopDGkPI71130tCDoAe018dbCUzpV8m290WI67TwnrfpaBGFUwwFAkyT7H3xG7WEQobVs/lMsbMzz3aoukkFOgemQIVKTqGGOba7EF6fjEHwQoTOU6PvYNc4vxw6lLcdweccmHD/EKxIiPKj8J06UwybFTQ1ltvqx2CqMj06uxuW82a8ViKUfJB31csKMOCq2SjDJ/Z5EHsLs+2bN+k5+pMvn7FedIwOAYoJzXV+/7U/NSwlchc1RiNREtHNOOF3D8uyk+wVKTpvM36vOrq0PUlv/SRmbcy5KIY3/drDL5JUJWvn33LVXbL40mFjIwivr2FaKHDlZFY1apOb+GIMfjmt7tZCoiOCjufSx9uZU/zIbDfe/LO6lLu9d0judEFDsooN2jb0437G6WHd0tCy1hwvnMStPzeWtaHxSCIvgjT40S3/BML47tivCg3anAOFE5WakeID9iCgrGBBlTksuMSm6LTp4icidpU4ZBpnhqYrVzIsLUzua0lBUzzExgDImsy0qKF2oiUuw6MbcOwWnKb+tZh/uKWjqga6EJv59C1DcO04Dauf2MK+lscYbwn1FTqyqDbMAiUqtBChYe7hT2iLwmt3s5hAKwk5OWOy+hvQV1F9/SW8Kejk9+MxQTorcuH3gXI1lmFZJx8Ac4X0u6F6QMhXqnEQekVviAWK3wBaykqAEEdw1SuugAdYuCEHJRqYxbVZPNUE9g8IRekR8z0mlySHqmTSOOwt21ex8D38HBgvH5l84zv2aLnhNY7st55Ch10borHIJZOuuYg1gTnQCPUsUlMQq004Qu2owdInYCvrtnh2GvUJ6zZeDJV9igdXCVh3Bp5A9QbaL1Gnutdgh0VY7S4G1B7EjNyycpOdGqGmbbNPeGVsmxcS8kq1q6BxWukRwBTFiWg+hjgyjX+mB4BTOmTHBummeG6JBWKaMQJHP9xdJQtzLPSMIK2eoFRsxKAH4N+eyT5skyuIMt8AQdbXOcgrA9xugiqLyi8VMlH3ItsZa0rArKdLHi7lEO0g5cq6x7cdiIx+ComcliJA3E4iSzreVhxFtloGDYchPqFVJ3UbXlH8vV3zIJujcFiX7Otw5RWJMMTh9f4+CVbuVWHxIye1lqoqR6muCK0bglwMPhJW03aB6XRNC9Caj961DJt2syzZbIj+RP9+yTX2jsneeA1B7r/UFFd0Nq4qMOiP2QF+t/b+VJWyoZRZV0d8OfiCI/bEMgcgIZAx7G81nq3kt/V53NoO8BhdwVEqLbL92pyforF3ahaX5bh3pv2dFgf25ypJ0dWQKMsM0sfCLq/U13ER21xsdBcLzhtPaBs9P+QNJjfscNTJ8gDo2qQwzbUbLhmwza+cjXQCUlrGIsVII60OtOmbsq1YXrxBFJrotDiJbDJMKBivZFTXHHN+YeL2HSzffjnMccpHJT4whVizD9hIbwagSPzxT4Nyn/IHUMSUQ/sCoo0ieaMNcOH0ulIm5f7eBTgFoG5C3PMgIw7hhy5dkL1n7uBgyRkcW2sBBfcx2z4UeJE/Za+zhz3EiRIrLkID+4hTSHSQYFuHVyDYg3HOjCNjNOI4wzhPdijRkGtFNkoPWcLgqUANyM2OA2Pbjt5co05nA0ATReWW1IC085Dj6+L7i9xzxeUP1yVbhKQhBAn6bOFuHmOXe8cKev+jDY9Bo7byXfHiKwdhC1QXoQ6LqiFjV87Ic/3CljDWoEteGuzPC/6AmbIbQ7KK7ynejfyTokUJjeVKNAL6Uy14lXQKJop7tYdySAu7wML0EdWA7fzGP5mic5TNFTjmrsAGTaOVadL74fdFB1TCUh2y/To5BTJQzuWTvTdFKhJtmCZVhBlpUOjQGs1fZCw4IWBGhmlvKWsUL7yD5wkp9h/clGdYN592+M97VoiZ+H1YOE62Vy7ZEhFM4BJrZjDqjgje29swXPd2VDlejd3CUeCpmNdi8wQNVNcFxjD64ofaTzZVPRh82yyBi53cS+4NLJq7OGpU4ZUixVBzIzAj7VsS+b5cZOn98ftPC71c+Kx9pUqzp/3OMaain4tFxcv+/33qM19LPkMfv/OTBDDO/uDAH9ARZpeJKwReUBxwPYXx3ofbR5NGkAFt976AKs9Wbiy9uRSMnjyEbK2Zynapfke4GVV5RcFsh0Odg8qLv2xXV385xV9Qefhu8DcTnEXmimI1o4ZPvvydergaWdWcW1tzpUeRMlCv01dCEmDiYaxj1tQvYKJCok6IdBctLa5XL10+A+gQr5/OO2KTgvHJ+F3w/JL9Qu0a1njElxJVXgzK1orXSes0rhakFHP8oK2C261nDsTiALuCLo4avykuBkMx4QzpGlgtIjzCFMXhWxI1PBhT/KcaT5LwFz9YqTK9tbnuB2U1FaY/nJ1dg0UThFmfJLUkG3SyxVoUAjrL5RmA4zElppDiDV9Q2Co0OSM6K23ffGYIfhaEGrZa+iTY9KN/xQYGvUq1jKdX7eoblJtBTP2KKFp0o6d2cNJd5fzsvcQdjQV9/GLZ4zCdwuPyaoU32LBWTQhTRZ8+iuGoAzKhVM1tw2MoD5zf4x5ql0E3J6aULhC8NQ/GZooz4R6fA5PpcfsrxByGKc2nVMXUwHUmAvhs0kr7kGU6QT2lRP2r8JNI/pAMJsDw81XNJqQOZRI0V4H5Fjcc4zLTVZtytMfF6bChVg3kILIyJakQr06XrdwYqyfpFBrvTHrsAIDh8ELs6mZTvNNFfxRAvnz+HDqRucTB6YyylRLVYgFDjOt0NMIllIi5UyEEIWP5xW/j7RiH+qZjFNEWvoCiyA2w9lIseiMzisyObBH2ppURL9auW0hmmYFgzinZdiGeNjT4BkmMkywLE0tv0Qu96KQPVqZU7Giir3K8iaVejG/CpZOkGIYNs8hoy4aRT9+c0TDQvmQLzPjMTcy9PtAywWPRCX9lcML3J5uBll6JzvXzZpW+ARXnmFvMg5JLVBqFx+ksEOCS3rEKaWdGUzYc7lzYnqpzb4wD+bsLZPCiMEi9ey1VgfZ7twhZt/aje2NNiRSiWyjy4QBFWktrYr85JFwdPyY4oEWliUDDEknpVn7iAPOAs7+sWUlW3Eu5R+5CirwejT6kiO3cXCGn3agkTHzc1SP25yEp0ZPCJbuDLcFaHE1kzgVLeFDK0AmaSlEsLBHGHEYLOnqYrGd6/B2A5jvkz9GvcmcMOlY5q+bT6YcNj0OBwKrQfB1fHzb/j8RseMumdWe/dsdihuynyzeLJBSAPwMj73b6g3W+uRP6IeXUGAThGvUKWPV9dek/Stzg9jBpoOUu3NR61T4VU09HOCVyPQKwhatlIjGibdAG64yeLdAvNv7KkGzlugUFEelerd5VkX6LzKHEb7WKbykFMLz4v9LAkchdMQkVrQgChs6I4QAJqa3mZGC7CgazReEMF8dKlT601GcMB3ElEKyjJ40Xlf2F46IzW4qiBjTRbPjKIbCaqk9kAxasHslTKnhRVsbwFcgbk0iINOhoVwjlkbEUV6R0DLimAkOEitBcAtMEopViSEXGldzHuf7K4zSYLM3TGJVuIBILtiiOOH9sIZPVx4DWxqqwm3tZ9lOgWJ43fVWnpN//s4mn+wWbD9vHJiQebYDCpSY4Wyaz7js+GRCkE9yWg0EaxxBym+lo1WPRDHv1b943jn0JCMcNeZMdQdtKkEpK8NiZ7yqRKcLlvNbzlCTD++/2bhbwainlm9jHBYT/7oARrT4oHxckgA9hTYKTCYX3L9Vadg1t8LfV6N19vsKDodSgZ8+if579G12SwnMij0CqIjtZQcMKbUSipj7aPYv47+zPf+pNtErza0vs8Z/LQA0gbz7Y0VuJXdrWqrR/7JOb/GW1EfH8vC9bKpZ1Z+MDv9pZ/BniKZviEWxFi7oRvXj6mVHAHmCk6wy9mXasMKKxSVNo6kF87c5VKuBHpby6oBC7iP74aEPjte4fJaqbe2BFhhj7Fs0vL9/FrVX3t0NuHW4fyz73UiiMeWnmqsfy3S+weHtGSX9Ahwx3hPo3obYHtNujr4iMNtOCTRkYXHOvDaDjnPgBgoKEIfnmU6laDHJA91VF1/LHmRQFoIF+z+xu+BwfRjz0eCzHJ2Yq2a+9MlQE9/GWlvH2Pr21+6inbtCMySmwmL+T3Z0GjX9ojoBque9MaEvlUJ7zI0r9PLJMiW5EkuqOLlJGBthHY3YbSL/ZE4T1GhnzLhwA37aPonY4Ek9g7cc8nxTIId+eYUArHKwbZs40512ve4v+btfh6xrqj9tmPTUCLXap/EVVv3O30Z/xHW7dQOsSr72rFVO3EvHqXNtf+M/6TjXqXDFn7ziXreZmtb1LhTH3EM0pt/5W+KFC/zW1OGwb0z28Ik6vONc3UoVWPCBUs+n0s0ZHvS2+x2MN3/I7ffjHYbyx9Ll6IseAir+tpPDm+zWZ8JvUXPmTk1egQLl58RW/pB00e5dMEVH4RhYvp0tKbUDrPcSGqsKk39aW/hEpfytKQVGmGkP9tfqhs/uJ39ZFyhmkED161KVXhT5qbEh3cbV8QTcYl+CT1NcZwhq68Oz3fDF0Yc7kmKcwlq9eSXnWha4v12YXy1jzU6QqZzZbTESuFWYrZCww2Klx2+r34yjowqskqTv8K2DyNYtNTaszvP1ebTgx2h+RSaXvz21xDKv+1OTptqS6OfoezVb12oiDc3FTIACpfjTC9eqKX7kyFYm8eqi1WFl+44ZmQPTU2/zdnYQRQcY1Nn7siFNlUmM3qVlbnRDnbB334QvZdem8y5rIPWoav/L3C8ckxHBafJYBR7vLNJvzov+rhyMV0e81h/8jWe+kQe+kT6wc/DxmQm9lkSZ5ZfLN+9eBDacOtCHktpvsAHvMdXxc93Vl/WjRtRfZeN5hAOW39dOkjdJ4Rt86u8hT/UsScuHa4/jsxJiqODB6ef+mk9qB5ZwtDp+ODBtKhoLYB+KvA2UaMMcpRVzeQeyR8Zcwm8vK88VD7m+4xhpzcf3iFw6NFntNP0KaT+I1PUsHDTomU14ep7aSTz4JAjtvvPjWYgR3Qw6Hrm4knXGl0W8STZn4fOdP3Aap4HgdqLt9l2+8Mt+U52Yy9NIhIoWpWk02ySyq61XXWtwqOqo9rXqavKbrnV/OnUs9tAwpM8+DfHf29GWSdWOzwk+VV1n7Z+q+Q/mzTcy4WYBG9qJ6ex+czepnguyWvy1fhCr1bQpXH2fA29+Dwqc+CBv7Ee+Z/9a323nszyzPtHp38h0hMHB2ETgew0Pxg/5Mp74xWD+HYQY+3uF4LbLPyo4/b0DZ6ez+Iexu6NNzQQPn34ArI9cJGmTulBOSVub8gqfveI1v39ztNk4C2L0UdwUvh5/hX18T5aL3tdHTa2k88+9z+rk7UvMLnzw/2oXmImFbRRXU76hgmnzm1j+FIZvb5tBn56QPtmhnPko/Qi/GrMw6q6nVXza8+eXGuz95pwpwyW/5sf5nMO/GsOH7FmvGM7MzWTvcpRXAu0fkPcLewAk8e9LEgCghee6Q7Polmt2t6Aux8sa5WJfYq+tcYEE8nx3n1B2FQP6Rcr5VSq79dEHSMfMyvea3S/AyGdo5/xR8XrveL3/D17Xjqv79TaGK221mAGma0wDK93imAuMgeBgDdIXaGAFvCIw99BEgpDHdP7+P0gKDAdsg5UPY4hCls1/6qCXeN6uirbMQPlRAE61plrjHqhfMDgCnw7sMYEvR8XfyXCfq/8vnTEDNrXYtIvgwdmhE1cbFW2EhYGRDZsRJle+HhWWEekUsbUWLZhQA+4NeQU22MSSTfzOgzzJ2nVMXJA/bPm6AsErgjIcz4jCcPNxCahhBkpk1sGLhrciwioGZxEMGUAiZSatgvPLBq6WVAoYKwPsVBkGchByOgq2I2FMZOrJdiCoECxhUwbQAhKccglD6fRIGLOzGaB+gjFhA8ONSQXksSDLFYAANyZlIY091uEn0pYYwGZgsiOfcySzV8KX6sL4C9tWgDjilJpqfxDjHywn4nHClITewSfE+IKFEY8rvGel9ywviLHHIiM8Mc4ItS6PiPEvehCeFL9D6ZD4HhbfQVb+zqEQ4xVqI56OOGeljwgMiwn1kciK3wiph0c2sMYx9jUhD7hkpcLLDBYLqoqQF/yFUGnyhRjvUAkhb/hMQnt1HjF+xD4k8i3+QKgC/yPGBfYB0Qt+QajasGejYB832Cuhr1FbfICBXsBnxPgN+1HQj5xd6dUHB+MFvRJe44hlSLzWI5Yr4rUbsQzoXo0QIff718SfM/r0MqI/vfzIcfedy9/YfNyxuT3M1b09f319wq9RjsnXOLR88XKDg9IxlwkHpoe0Gflzw+9eveBPpVXadPgDLb36jd+ZM68esavoLm1qnA785tUGp0RBrhJOSgGKJ4wr/qYuw7iwuV7nrIvbLizv0yaLIEWXaygojhQOET1OswIiSqYZRSHH1WETcExzWKDIQm0yUETCdYwjZUeD3UKhHj9MO7papC0UnQYUwLEdGxhB28nQmUBGjQ6k3Zp7LaCoR9QnCqSa35n3hOuelmbU9N3eoY7mYp1QYT3sfSPIKRghZ5TUTcjpTq/g6LEtjgLlZr1AHIcdO2zCM+wWOojVTh2CoB7RPJFHjQ5hC1V1U6xrFzmQQK/g3sImiQ5Bi+LH1E4oimAHRUOcxqSEgEWCEoGZIkiFHRzFOoENZMnHdN5CoZ5WYJAW9GNRHMlEWCQoKsGJCLUDVmcdVrAUitrQXDonrJoG6eOdx+OYwiaQgc1BFHIFhyIG1PfJkNOKzBT+pFg1aqHGEiKMUPTnE+DZcm7giyMh5WY7QoURDe1BsskMLiSTNxlIEtd2xKpTol/YRXMEWeh/kmYJ7SCh8AXs/arogMYMiuzI8abd7xw5BAERnuQKnhSM0CRozBD84mhwe18ACtTNDVDKCG/biOHMRUbgRXtiol+LJKjv4CRvkbQVCdcxcExHgfoLRKj9kRV1S4ddGY5wfBakkH0bbhtBT7PsKCYWVxBys6aSRy6sQSGLfF7OkzrnIIeVYoFqx7sUJX2xWcJhcjHNg3S4Kh5PpR9gOiIvDmzckbqjC+Ime105u8Ol6kNDK4Hsz+ZMJt5xwgJlqoW6EztiHNezE9Z2Q+j9W/aO3swQ/yTuv3CgM+p3/za9Tx+n2OuSi/IM/CTdLMchRSNb3RfskhJnLRNIX+8Z7ydCy/LijwHYz7YUEC18vCKGQ0TKE6r6Z0C50PcNUryIHQ868NAxTUJhu+jVni8HG3kG9lDlWVkAx9eOnQN3ry87GqDkkfpl3DZahCMKVg1XmKCQYrE4rEcjPEjkNrVIz1ZHN093b5TijdyGZ5y3Fbjus8oheJ0UhnyWQyjg7Q+4dAVFy50hgdsJGX8tE1noIIAiUvxyuk0aXw9HfdqnMQfJBvJLrsoH7Y6jx3eLzIoSWEj/WKCp7tyBDxKKdshiLNKKk1HQB7B+3gOKpsY/4EQQOQhKwtPb2VDSJti9v4qwQM4oRsQcCpmFTYi10GytkPzLfa17JLBqHJiJk0GqxXWf3mlBP3ihrrqhm5L8SL9A+3CSOYieeBFHR2J1PFqRg+CDnzIKguARgoNaEw82PlFUf53F4zQhcSHAj04N7D8KQUJ3BWsNefA9FHAkMEOPDty7GVCUPxYzpw5QxN8U82sfC2CBQiQQlo/QRFU9qEolYLUJ2gCfUdDO9V8AfAOcpdmkEe3O45hUmLQWcG+TRorKedCnsaGuklmkAGTpwGBBS5qMKXntgAYKdSQTlTMvk7azC7SFahCyR0fLUW1ENgEzZ/Q+wcwZnRXnnNZKZHPgyp/Yc1Y7pOxnwhu+xnt4+t1IKzpbZEeNOE5jQZ+T6c0UXuwpUg7aGBHJsrjZMUo2F6TTAOx5HG1Vi5QYDmaW3odIP3pynCadZ4fIX22noEcHXRIAP2cwZ0V99RrFfZhcHAXKBWAHFAD4UQavR9JS/0WSwhw6YG0CUCUGBVoocAFEzAF7qAiGnQBGtjSnfM5oE/6AiDXT+hRgRQksL9ScDmwesL/2oEgWU97cH/1nLw6RqiymSfVsWdH6SvNTynHRBkrtBtykW9U8MI90b0aNVV+RaX+yCFYHcYbFoh3R9ED0Gvd7243aq5o7n1+djKoKrs00kSCRkxBBb6wL+0gnF/GeZtFa+OFfR4nBysKCMjAngYHjM3Mk8KGSGREo6HwYhJppUBBFmzfigmded4Us8XDUMG4CFOVsEEd3EOzI5DhBId2hmif9h3Q1BhR1rPq6KQHP9PZj2hGu04DmAewcNEbqCbDiUiIDt6OdOd4ImuVhE6JPCQFxLcARv9EHuLBBpaWJ3hkyFJjrw4TR1VKNZ3t3xOlHDQN+OHtiuFRTt2kqIb0yEuWC6TZ0oIMEspETfA4Soilww3FGLBvbQQgEIZ72xaizVeTRcBUKYcCX8C7E1nFQrkSmIfC7klThPJ4vKcZnUyhE6sNRY7uRuef5Lml/Oe55ZSTS0YIZC5qZi5/u8euNeOvp3oYuSN192sVe+4thereYGRIzdmB14C3UxOmI4SghzglaDVwmXSyomWaKprg9gtDqci+x3t7uZtCAExzredfpNhrEDw15tNvnMA2GwUBjew+L1V1YIUPKia8qG+MU6aLQH8xaB4u4t4vTQouQ9gZ+QGZ/cQhYm/gajsKAvd9/Kn0BLcVz4h/nRO198sKPVxYawBQufhoxaU4v0t8dScBy7EAndjOCdZ8Wh35orOLodt82A+L122YAHoBpMQ0uXAGdhm6JZZLsc0RU1DhAHLxDFRN2wfRMUiLe8W4/4bRYl8kyOdnPhAWKQt3t7QTNU6TjBQRGPdHRkzjWggRJB7l2cB5WEGnz2hBxhIU+8aDC+ELecuwggVqp7uyQz55xBwn4v5cOf7kaXi6mdJFmptL00CJ/7WB1yDi6YYiuV6BNcxxR1VsbxmVEe217gUxUJlSeY6IyWc08G7wkkVYDjP3v4hJMcaBmJs5GHnBnCmxk9JEJsqeCT06GGKtuLcYAG1BbN3Yesp2qSgYYIz+hRm3j4aTvsDKxAQSH4rELQLaYZSfEfvbyjE4VFt7PGRQ4pMaq13BVX7vnTzDp0zwEBakAQTpCKLZK2UV+D2a93oaDmZo97DIwCUeTLqOhBp+imkOqCVuGk/ehf9Rq55ucKHBK6lEgdpbuMDJcVbCpoXBUUQYwmvewRU+iquxu0Vou1wruk+eizAagtKCtdmw4cTQ99b2+849bc1T13/XrmIrPFxTwQZuc+FQ5uns4b999+4U70WgIBc/XdNK9wBouzahJd6pwbKdJrrTNtgcNHvRjVurcJsRE9zaOxz+wreI4Jwlhr0EjEKesHfszb23kUgHT4hpixYqSFoGcINatYAgxU0DAuTWUHNG/G5pdpNku0S6crHipILybRuqKXU4DLPZMR1M00424Hga1aXjOheMnm6615nxwEIxF2HJjKehp8V/1C2/0Z6slMe3azPhUg+somjyy1V8hkM4XlZvhmI8TDCp8wQjeBGTncXFe6Sy5uFkcHh5KsHRU5kkNAdp+2notVCETsEp0gL2uy0jhIrLtE7fXAPZWCsWtJFic28uJ2/nLxTS24OHCKFvEtlVcFD7q+Gz/chKgxrXDhWDE5hFvpebIM0AWDj2WlT0E7SW2igMtSXIawM2FuKDyY47MTy2gsk8CTdbu7yAyWfqCF6ttSyZVvBIo+FXRNdXMiLTHEp6doFb2pxpdwGEoyldBr4gF0kPaopQ48WLRDbFAvumKUWJ/qqnXPPYR6fzctsRdr4h0fHH30sdw6mwcIlIx0Q2KyFwZQvaf/taM9DV07qJ65oqB9jUJc6GBIc82xvETQzMrNNI5qumHZISIyPm3ifdTAQ60dTLLedHqq8kyQVqSWjf3pxQPl7LZcFZak4Jch6jhIhYy+cZFtJ240B6OvvuXirNH4AJ8kDfcqBodasWRUIhsdCDHrnmA6AxzrYkrw+kdCT38Tkb12LVr+88pPosDavhWR96iCOdU4ac4PZXPTiiarqcHxQ4ijdROEYC1WjrDOnFHTAkH0mDZmZ84amXGrCOGMUeVEs9CFhGqs4J5GfG9HCCwaLS5zi7yjRa6qm+Ua5pUFxqA2IQ97xwqYLU8QONYIUfyXXMgxrebzakJasF/85f0oeBm0aIdBIqSXHIiLfXHPt0J3GU7phyXEQUnOM0RMw5FXDTUsAU9qkkCh+h4IWqQDTsXKpXSvQkLOBvO4xywgFJfayS0DfNAHz0tjq3sap7DsXl/A/J412tj8kD3bSw+Vm4zBjHINkoEsJFQZ7I9cX7YzSxcW8iWYYNv37LI1BAEQTsI7JTI8oVDdSCbDxYLZt4o5faTxcpR6MI3k+/21P3WWLGnqMuoRBQThliQh0uFu2FOsBqaylFcTEUuQFAnMOdZ+e57DAVcgANUXwhjHVVkhvicMJIwMOjDNpL6W2xndnMHyRH84vmFrNrf3kUS/vlcn9JA0aHamcP4DXkrxe2EQ6T/CUmTdH1rEMeVObr0bErCkxoKsOL55/Wo1H6b0yYZG7A6C2jMngwHh9CKMCCIjDXDGNM6TCxFXf5f7sqQgAAHfOyM5aE6glHQOGlBjQ095q3p42Kz7lbI993emrEP5rpAQ6oepzIUP0eJGWesB5KgRhTFIjeA2ykq+luboI1G4xsg5yfIyF2y3j9agT6/+UnJnranwIz0zfZogA0tpTNExZhEd+ct6fp/BKMNwTYdX0xrSn7hNdbOzc2REyajm37mIhyzDg3C9VePkOvdCQSyziEh9aI/2akF09aiiYgGaodM62TUpoRBteHyXlig/cOU6p7TuyUjXygIqWE741mGCJUIu6ADuAdSx4D96gTQCLQ8GMfxz1YO9NkinMbQeIto67rYosxRnfO6HDK3SYqDb8HshGdqREDHkcAQaAQK61pHTICwblJQQJksHgBHucf+wOY7gO1mRscBaLv9oxMDW+2nCxecdYsK9V9lpJ7CSw/jZciQMgtcjRsbGOnABZmUx2CIaXdWSQen4BKs+77g6Jf8IVNZRACK4t7iWh7iSuCgZIiflQoiXUMNdwAZhHqwQMlGnp7PYkhrPXmEQD3SWLfBy+wfz7p2JEc6WhDF/oFiH0iScGIpFtNAqU/u2jQItBHADTCyLnFkVsYujiV+C0bvjdoyQwshKRITcA6OLiTjhJnYoE2RmCaCwEdYbbDzzf0R5gs+2IELD8w3g5n8/+ebMGzD+IYATzjFqrJxbQDH6eB1Km09JQ/zUJo4tGotGwMVioZnKSC2NihWpbYop2yaIRIrXbBAuPdAWz+BKEfEkwLPmBe77j2ourc8JKYGrRA6jHuwM9QskU1RZsiopEhzFogUEp39q8hWN0hQayn1KY34ciiuG2XIbRQk31USJrw7r022IYTUoEmud2fEzbMVZ4D9DB5AzcA20Lb9PCjgjcmaJiarPfD74TNWYwt+H8M4dEEHxrM0ZihBxJMCWcq0E3u1mBZNGlMXtvL9m2aXDBQRqXqcZTtFW8yXP/hn2MRJ36rErjQ2ApYTE4S1zqZILXTaTCakl7uvzZcr0Wso6qDbR+LMAYVYBGWOz83JIELJeh0kmiTCg5C20Hg1B3aWFONEm6tEkfMkCmWY3LpbKc5lcgcqlFzvXDQgW2vHMjgFFkvC21AVg+EcGLQFwlequ0i5hts8uxfiM5W8OMTTfIELXhEdqTCtLOrnAKsbwXqYSp4fgmHnbmfF24pdri9VtoBKCZ18x3kll+utJS83OrzliQL2mskjdnQzYIpvABEUThQKmoTxqf53BJz7Ngpqw/721EwA+/MIrS/AhASqXrA0vhMfg7Cwft98TSarcacDUt807qxywySMLC2psiOSxRK5Urr/ECTaf0dlP1qk8oBR8TIeHeAwCyxdiCdxmiZhBRaEi7xDOO/KdxvYfnU2ESWjJwME8kvtY1ai3+vFSuLrCySAyCS+UOwE47aHCFhU7iJzD2dYitfc3QQFv1ld3/rIXvHtTQSsBJvUU4xM03rUJHOeI7RMixQqZP398jwlUC9RDCOVn0s6kpYtVfNLht3mLhnhoF48qxT+VY9Gxk4eJq++0ouys4ydbNdxoEwcabtfIbKkVPT3Vv1471TunnN3saoxzCCpfNPze545BaPGEpR7IVFqa4o9Q/nb1cAh7yENPoHKVydiEAT4gz+DVrOMCL1pPrtfHC+foAf38METgjj5ISZvmo/u/zcrNJ+SmH1u/nax9Gp2JObTzLvKHcUtoiUmamdquXo8LyE2SQqD2jbapD/NVFUid3Vm0fHX/Ad/KpnbIqper8WaV1Xe4jMZ6HdQRai7LQfGp3nhAkeNt70voiDGkVY12eKo6pp0UWtbbGei48LNy5RoHv1/kVKM2+NccwcoiNZ8+1HHfLuuI/kg/lAH9EWlco3w1xt+F964KiRp/HduyoC96UuTNgiIPvnrx+KBYE6CD0Ju1FgKrUcJsHeLtySWsL/IE5+vOscOTmZVwKXZndb9c62ktnpEYpHVpOPRW1os6q7dhHvBl70y3LqKP9HqOBOnYDn2ti5D/erBfa/6+K4htbpceH42fF9W+I75U09ilbMhKF5Kq3x0wEWED+Ubv7j5Md0py2tChJqHhaugu6vyxAQTYif82VI81d4vkxT8zutc8LIeJ4UpJmp9KWhjYiJ86kLrUUBJTtSiWQYfCH0KdNROkH9I05XAR4mTB8Zd61d6H0GKxmbzH0Swm/am+Xv1pUH78y/7ASM+Epmm+TPWCx+FdSpVqUlfUk0j8FLPMKOdMP1LnUvDag/jE58WQ9v3CNFEK+x/SbuCd85/YHBf+gJpIBAToeMoGF0YZWEFkwEopqZrnvJ2n+7r+v+2+Di+QqVUqgkYTyqjtQdpLpB9WUwN21OMSAM5rl23lrhjAdOsl1ouYKBWUNUWpq4N7hKGf7y+Ec1wiV/GkKBqxyZg81BXkWWUORXvevd34cx/P+P1njwDq8dP+3xNYId07NLvGIzb92ZSBMWxDnBISuK/pOM6COynwg67TdHcPZaNz7ticNui2W7RLehWZvnYy3FrxuBhF5cLPtyEcG3a4O8uGsLOuPDBaPDvGnbKWfcb+3Stqn1fqLiZmkjru/GNCyzVe+lu6f6+hXQtFqxcTm+hKPJFTf0fDSdGodjQAfWI69e/zE9PUeEYpg4dRHGqrOpO0BBeT2cbxMHHcJTrMTKwx96a4qSa/5i+8j4oQneXdBkn8iTSzZHG19LNWh8tNl1C2gKt9S6ILR4paYxoW8DhP5/kkhE1gaoZWHh+LdB5t7MYbAnAsf6R/kER5dMS6ellGtmQtAUU8fy+01F1cTC63D/udkOkjP/DP4E+ciuwOtqC3Aa2Ru78vG+kc8yf8Hf/8EGdUhD9z7dQc0I2RPKgxKMsoV7YJLnxmBPPiIjKVyuI6djOFtLwnWmhz01+3099oZSSBxzbf+uk0rkZUJLrBjyoa6Nei9ea4nFe3D7DzUUU87W12WFklYwSfanV5frihQqP6XFpDA9OJ5L/cIjpZcSnNXxpWEAzrn5H2ZnZP+yviw2po5Kz6XgGJ6DqdrX9DUNNBTDk+PLWtM2MIv/bj2VkQnkW6QQ9PS5Lhw7xvJGs6IlextNgrWshTxPrflbclahfr3790x7K9xvBdTGqsShtQU698Nz+19+535RCj8K/lxF1f3lH0rWNE8s84/cc16Tdz2ZgaN3xln/XcDSWYyzgjnwQKhOhLWubsXg9Gvkdh4pBhcXMeIM/qy0U4grqGluwoCWLjZ74PElI36IXpHEFyF6wWvvQEpiztzQpchv3uqTGBTFmmoQmBsIVZfTDjcwPqlm3IDvdrNaPH0Us9zst5GgOjROSm9AikbXiA0mqc8wR2ceCpF+wptE1PXnwL0D5ZQ5AdNbepA1IZerHp2/dlRZ4oq9f2rOmd2brzQ83TqobGTy9VS71eRdJbXOcj+DQhuI9IlgvW/bVRGfTxhT6PujXI21Cyj8u9vo47D4LwsfxWgFnOkeLQyHGbf3v47sbA2w3zFLNQvG3GF7kERiSKsgXY3WIoDFV14G1mdRpea4CSm6DkEJTPdEQPnofMmHpzXC304AO2ca2x8KEONhhNa7Rwhc4OZMFNhC7MQJ5Qbp0x0rxJSg5MIcnodXQdoUd7A/QS7x72ycsaNZJ2aLBxb7vvy35j0qPjm/pe+1osBVNwZFkaPpgELRhX6t4mc8NRLDc+WbcGm45GB5Odn8AoMXZpuI1fxztknLYV+Vj4Ng6mEADwbdKy2ykU4RgdsDg3Rj96Q6HHzPLMI7E1sVV6fyI7AAK6/FHAJcBHi1QkCJuibfmpthkt/PXdSJfTqia0rGWXuOD2P2Lc7qdT39n5e7awgo6m7YVEhei6tTWcfkEB2Lsjgjtsgqn9jFhxGI6co0NOW3RnkQ97qqECyWQ+P9svcLqMGpNVihs9+yNO482Lv/nG0ibjBkbw3BOA7/GHnD07cB4WrG7AsSPZSjkFszUV2IYOviz5VSe6v1AZYj9XLX2ZkSBtLD1xjWwYmBk4zDXpQXBiFTrF4RrSQ8p5276VizmMF509xKVpuUzQi2nhFCK2wUlWj3Du+A7qYZ0oIfWbWCmkHRthcZ7JNkE/kD04xYx89O1vjpVOjdjm8f9mPq+fL36ufUZMlhnC376z8nvgWJz1m0qE2hoy1dzW/E1kMuDXo6IMxzHp8s5HbPJa5XwhT+5bKyrYOPZvkujzngX20fnpnwDSu3aUgOsgYEXIGDqzUSGBgfin5VDbRXH9OJ8Ol+KHkiqpg3gmZauv8LXmGy3YE48f++o01+4JQJoncPZcN+uJFctHYipbLaym22XTB7UJdXr+xUmzP3S9UWQBJyYUhDf/ej+IQU1suQI8smUpLjQZUn0X9PQX03tfCgStx+/hgWZ/UuRiAmuKIDTg3yND6dYVN/T4qR3vcUInDFOSJq+sOrzZtrQPGa1nXENo1Ab8hAOoVjHNWJiThkhAu7oa9dztzN2TAWdwRSRbRB8KZYc42VpBbXQnRgciruCAPADWNo15O7XRKui11XLq2+rwCB4kzHV9bW+fC4u0TvvbKyP8c/6RZ7pKDvOj7Rk3DTiPXc3MJTSIKixPv7Eq6g8OnyJjAY8uRB/SlPYMJyDGJZYMfmoUMR93ov9mc95aeaQnoTZHp7eYBM7M55pNECE6vNp+N7pOYDs656supWBK9Bi+10Ty6CjTeMEakWhn9NulNehqAMI64mg/QTMcoLUJmV7Fp7x+QOJlf3SjUf4WPPae+fe43QB46f3C9gvV7AnG954CRd5GaaSh9fuCoIFW56mXINwNR6gTcJTOGd692gX+hpaYvVkKEZ6lP3M2GRu54l51AIjrwuZKJCE8zAPqNTrWEcXxv8ycGS9geyTOdpl/3BoeLkmrtcOZuLqHju2aY6ZeWUQo9VaH7oIhS25jGILCFz3uv7X0HTnHS6XtHNk89trAI1zAruV+WIXHMc6bGNZgI4DdZ/TwLY2eCB39lNzlY3cJnTIZBDkZQW63lYQIfEkLXJSTK0SU22FFRoo4cx9SSl93heU9ET8dt0d9G6GTiGs2L3tVElL+Kjq8Rd0LacCeFtLd9H/AbVDB7lExoC6bpSWYszafbuGflRqATo3wUbd6YqjVteDUw5Rx61E5Jgj5OWK/X3n/EeaWlVUYl8XMsVHoVl3mHE7BWn7qODRHDssFud31qgFFPkClOThrmkHKnwhgqUD304JMg6Fm6aIpYauJOns7EO8eWqHWFU6xYWHUlL0ugijD7whcNBfJpESEVv3N70m82k6f7YeKn1zdBZOnv8i6IBfu10P7aAwLm9d41jSGcO4yyhWQ/fRj8CEhKiv6wdYckm96/NAtOy5kGLo39/HHgUaECXkhHE8TWVeVbp6uAZzdoVLJh8zSULjLq/bBnfFjD3ULMp7BiTqZkvEuXpVdesyoz48OmhykbjWJMsPWT/YV3kV9cpjoZKV9W6kEPRUGFkeyVrbInhJ8vmCAPN7kMl+bLIl5JZqZlQtXIByOtppnJjfT2rWWkJkeTG8U+HS5O7tzgoD2fH2hMhI2zc3MrjqWrxcu5nmtQq4tCOwDGOq6hLUxcb0PBUUsLDOW9VrMlKa6Bv/BQiVxeVkUXcC2zGWSczQoENUZWcWKq/LKFWh9kxgTtjBmVA0aRZva2fy9dTqErxbrFpn53XMDbZr3AZ1XPWyLf7TpRUEEb7dtUguyxojJleLK3szonAd/cDeW0vfz/S0jBmaeYUu9oQrMxhUTqfrBe9Vrc1Yt/5p3HTFtNUvQ9GWBGZYtouByZTnvt/o3USgqBi3qdSs1FJG93D21B2tw4SHSbXEEO7Vj8erlmDFQguZGFOkAH2TXrBbTpHFlZVExzCyvOECWTSSKA6hSEGUewgdrB/41MwQapKantwgy1M+yVSQXWG+Gsjrxqjf/f5pRty8OPT8QYxhhTaUEw8VbYY2aSFCXEcdJvdkTRDxoTnzUVg6tQTmWm7nshRKrvg18ElQ55y7hmC7K1l/JAc8i7WHyguZVNbjlbzOHfgtMKb1D0mzddFTL+C8cQ+ao38XmHVjMCI0v1oL8AO4JY48ycMr7FqjBSZ3JLgyF0O/mOWf9guJZKXCGuoS8fKCOMPi3Ml1oKL4MtrR4FsjvN2zN6GCtM6HRzQ93h42gQWwocrlcMqstyGsoEBRiQ07GoVBaq28nBg2WpeMLFunBnsNm9xDIeVihdB8clxkOGiyiansFj97i4c19um4umE3SQ6hGfD7a9b9RVWDUOISMhIY2WMpWi6iIukBTY/Ep5thVxTNx9uZu037Lv1f7UYcdkQkPIzQAC3xRTPkSLp7v4eZrT+/6S2Wt7H2hFErvXs69tebEcflQYCLKKPk6NEr6q2+d8fdulE7ulW836zNk+Jb8vaXBZeK8jitjVYQ6J5qdJ1PX1wJbyMrSh/WZSVxKfGoaWGvrRJUnANSP7V0YjYpRoyFtWuL5/fphqJTBJLWIYIRgzXhThOvKy2ZAV++PZNHi/betb5Vgg7tQmAqTpGAHX1UUAlh/3ENXa3ImA+UJDlBwt+eL0AdcMIiRBz0LQm0U9qKJHWpo5NvkHMAc8kHqEcx2M715sYi3g0EBdaXTgiAAtcBzfqgd5MNrB0ulDUlpSHafrQLx4m1JfnH6MOxQKuoix4pmLjycl4nHQrt6dZAkgEraJc4D7NxPt040TcmOh1BDDCk02COSuzOUZhnRXJcxoaRtc49vSQY90mbzgFwUi7S9f5PR8oJb8K2oaPe64/xgHv5SBk/bI5frgvluNi/7+eFFuqlOej4DqI1usTk8jmWqNs7TIzKiex0zp3Wn/WkzojkkV3iE3mx0VRnePWzre+CHT5bGuV7HbiY24P0fAj5m0v/GcWAzcaQuAC1x0BtstcKfppMtVtQpwk4lyazsdtw01g5bnJNmhPIpd+gtDQyY5ULadSn4lioGSuBgd0MsQZqEicQe1qtnqJGDqiZK9beDLnKPgRFFzViqafJfJ0KQjyburfAsgFKt3wYN4u337JEdDOYNrdvsSDPC68nErgxgAWcwVe304iY3/rXniyNT7lzNcARmKPv6fJOQdf3zD2AK7ykHjZ3lHWip+sgLRyAtrXnaoiJmPXSfDib9i7Symi7E6rprI6H5YeQCVR1tZux5youfVH6/ImwuklPPKkWWO+RAgi71WUd5aIeeBftdwIDNl4ltydzRJqtNh0sLh0IWb2NieHzYEBiXjNqbbQrbIy8iFKsKolqRqYPHn5TxQcs0xHis4UmllssWLr7QmC2WsVFDzmsAGFnL+cclCPbCSQEiPzfORF/mNdJ0oK+uRkMNHRdtbIPXL0wi3bYMRZyFRsDBCOPUy4V1tkH+wY/Cc424ZVGQpeZkGaSNO6FyH5hWvdnlwTzhVCYQ0rN5rMnKESe3tq787RtqTsFIR/NFaCNQ5QGneVN2zMnFjZ7iBx6zW6BhbsuVsvMrWpFMAZ5E556BRGzZ7iEWYmFz+5pRgLhzr7vt8mydjjs3yJUVR+cx//woDbO6/tRW1EvRasxrv4uDrZfn4/1JZVX7N4u37W+ZFNyECkYN427nx12+SSgGLzbUs/VUHEy87emuF/NoRYzM66azvG2kuql9rN6M5xMkwyIKRm8o0GpUBZMK6yyVXmaFyVIBSHy8YSywoKzMEILeZ3p4GeSMl8AJfF6vMbOBeokS9ypoDRSdiaUutI6HOYUU1Li50GOEovFZxiHG0uxDmjRXLip0/YqBiiJhxgZSJj2kyPOLjZkHVJ7VA6CqA8Oh+MpAk7Ubw+Ui6Eg4O1zkpCr71fZQEifFRzSaIXJF/qTDsut2sMHX4gnXn2tCW9K3smEBLKn5GzGhWE1PHU8EPWWoqhUxQGC6G82RckNl9yGlMAsTOahtM6BMqVlvaYjvOkqOdbEh+uSdfCPZ71PFkafMsXj9agn0J0RRsirwai1EgJ+E7Lc2qStusNMUNDYULHFDrV0tb8QwOlQcTh7J7WqIWy4RpMsQmmJASet1b3WRI3YyIPCYJNRMz21kaHnZKUP78N+JEJWMUVvzDnRu5POlYo/vpKFNlBClhh9X0TGdXzTLW1lTilADwh2pWb4mDA4PtSDmmVwOgCTRzHqzYOizjmCe+DtqmUCXoPG72no09mI64oLXPs0N2sGwv/mozbVe6kSNwVBn3rRH1b66FaGNSEx1E4C8Tpl4b5bLBu43hiZKXStvC4L1QSyeUSuHhITrg02GdxaoOtjCQvxFApZeLY81qDz4HVazE1V3TXyTugJNo2smpftr5JkMWeMd/ktrRnIoMl2TIhK3scgxjjzTFi73lgbmg4dwtavJ5JDwt73ZuacqBo7MAQ8BPSCvH7RneCUDJoRy4e/x90M4T8DwdKFDNvkANQZFqAOtxVsRdiqkWeF/XlNIgi+StBxaIIvrQjjkJp8rthY+wCqWFq7XLhRmhzmOoLpn3OcwwZ3Uy0rmY+wcRXzlPU3xa1iTTTEfYaXtHTr3MJ/uuKf6A9IxDHdS7mkFOME2f7TdEtYnmmq6BtnoD8rX0kS2SVEvrhJTNNzshwmzw2tXNqurdDOa1/BTvtjoe0uyDLvL6D79B9X+j/YlWCOgqYprfU/UDTexVhpfDPNBgSdhZgj03ACP8YeoCerF/487EKKPezc7cSAUaipVYk9iDX296ceRwpZqXIhbRJkaqNMUZ+8o40il5m1a+5JxxCkEtOCBn7Va4h6vYa2movddA7rzTOK3ei0Zm4W+hHmKYF5fPPvWPNNtQR/RzKbrhl0tsqSC7e2/eis9qTUNpeN8g5UzL07YoZl8i3pFFzdsAHHUwtvKknl0pTxX5XZvBUZbFFjOKnS7rTl0FoQhos6xjBw7IWGY1b5BT94cHS9iJepy4uJ93jSL1Fzwvp1Iyd1lutEsSV/URz0y4j51tcwUAnpR2IYri7OSaXAPJ7ZubpBYOpcjsil9N7nfEIcAGhvBHbCGU4Ny1OJ6zFoMau7t1GoRxfAtYx7poaZXbR1B0dXPMAnqvNOnt+NzFpv9neLmLD6ba2/1C/zWU5fgDxxOs4KyYTm/b8A9OC+OKoRNOo2rZMZVbtEIzYIalyCjtOU41RL5983HuO4Mfg2U35qLU/mIo5uN6FIAhVh7ww7IggWfS70wgZXAmcdK3YN98Xt3K0MokD+II6nrKhrUYlwtv61ftXnovqEKUoEF+bT06MRDN8yB/1kBu55oKdkrIcks4qXWPpiMI6knb93RQrF4u+K6VfRV/FEg6PQ10izCKJ9nkT0KlD1Mkt1KE8vwFY6/JqbJKgnoSsQiL1vp7QvAMDHmb7PPOFwm8KvfT8qcV7bWnXss8smMXnZXZFaGzK8owFdDpXjGnz03ekdMSxyC0hY2m8tLphS6nIOrNN39uuzH2p/ykuSufGHQg9h9v3K2iGIitjvp/2PqLEqivS++5Ji5Ke/unWn7+VbenOqNyVdvDFPI/r0UnkVqgS1was5a+j2dSLi7C1KFpJMj+wU/8ELkpuvUJeIOl19Ep/+AFwAyPOE3WqmVCn4ikeLajgjKFrqHJ8h22xb47C+1rqKi/24sFncErVG4nS5M9YVnJ0t82fFmcBXExAXfnoqxDi5h/muCrG6EjxYIavvp8o2uPD5qgs3w2tF5xpw0XMHSxcCuQCYoEDLAKCSH6xsIskSLWdkMquSToL9UFsBLtjqVQpzkdK6tsefA1DvhYK7i0WlViHjU1l9RnKM/+OqVvBv7NedCZAUqsLdMriWSj7GkZXdu1oQlQJMvH+D8AhJ3D6QGSWXDpiQqpH6nTf0yA2uxYiCUNHsfDfNjVvUBcjsh/NdRH0SAyh01P5QjZZ76y/pxBPT2kUVDnzdSKsYj0GJcSW7uU3UnMTP0fiBPwvfJUcYGOXbxGFBjGk5E9rj+SGU1N21fw5pkk0b+7D2iMB7Kc5Ij9gBHM1Ymw9Eh6eQXcWxke+rwg5wId/NB68KKN7XHKrMykogMHvXyytYNybgTMPt02iyhfd6xm6vPP/r89SjWS0+3Ogg8YJ8mjb6bqpX+PAmwE6Y3LGp2dBAYSMKxf4WOTA4789KnQT6royDDp5daHnyIIpVFHy6IEslgUTKoPTiLvc6uCv0Jo/LW6H4wEXJvfkonosBGxVusNzbZ0aFEb67b0oyiqCJias2FBpYkWUKAZ/pnmawDf0H76zUIgJmEkiN6+T3ELwDeDYEVIii6H9bKGxptCCcQINdFlpe3U4d1GwzNKxBegGoBFM0dlm6w8gkDi9VppxT6rA0L9jrZG2HAplYlxtBsYIxiRA7YYtQ8ADGrpDLi8gEVgUBbv0btjcB76nNgAHqlgOmr7xQgELKD/nGh1ab8WNwcCBNCrCtiyeWxQkWtkaDGzcJWbta4LFnrLHvEkE3CH119OQrwMc+r95q8Oa1lOdS/ba+P1gIJEsAn+cSxcAtrQFBRPJEFYkot0KimsdeWjAL8DppVX997Gi9S0GbH5TmoQ1hxxzqZFAyVozZAEqtHb71jdn82PAIrJ08fowfemxej/IoJEmCAUHG6EREyiGHkQK+Bq+g7oqiIBC2FvsZlAuPINv4eAu8HOmqq7cNj2le9zQIMVWgwrIFYDsuBw8ln21Xx/Ha2O1vAMB/OXLseX+hMxkEkTDvn2HIqAKDWVO6orI4RbabqXyT2MoymHjaHgRla8HCAJBc5lufvnqjhJQW6ttfIWkAv4bA/eR8uhoJiGiTkhmk0wDpGC8F4qim08nTizSjmVdogGCTTLmT02LuYRDTcYq01KvdTXbKILBC7EfiEH7s5J3Xo6noOKW9gUmMI/v3aaZlAAPCmnP+maco+L0SSp1vNTPee6iP1K8DWcRFxjsNpiNobZR7/w5dUfn5ktR7WaSMjQ3a3p9No4tUnCxuaB1zJAqsSxZabbFqnvZspiAt+z7rOp4nixzHKgLKcHXjnWEEGCggkKzzNOmZbXea6jZSolRqZh8GY8M0HTNLPETyxQUL/phxNAnrt7IuFu+wIVpF6bDkX7EN1olFxf0I7muqRUNxByAx1YlL+lwd7AgogG6qyhSBiCLEFVWC03egEJRWhm8rhRHrKqfQ/B4Sv+d3+XxCPI/83X0BJ3DKhxNkV48p2pKA8ltag/x/dd1sQWpFYhNEbjU2U6kOICPZAhz1ISKZULBkgG3RfOOBVzzsUWsOhEg/iOrVK2/KYu7LDsTr+4AF9BckhTGlOc8/xfpiSyTesBojMy8odz+03h1gNswp6rtta75lY9p0S3UB0orpVNDopR8oTLJl8hRAK2ZLrYQKgAmmbvsrQchq2ZvhzdEDRQ4yZSFwTPAsZ8Q/z6r9UKr2Khv8pkUuOSoxFYEyU610YIv7OwdG/IV524k2g8GUtY+WaeT2qBcUvediMSOuYT1GpvDUFcKL3PRmc/dZsc0PxGXI9mFbGMm3gjht4FEdCgFfvksgpFRiono8/jytqiuBQS00lqruTQZ1quPP9yd14T6CcpCVx9GxXoegqu6hLYdIdDyMQVMvJhpgtpHgSSmK/LFw35fKHN0M52aDAmfKW8LjhXPaw0xiH+zX91tTkGHvy/XG7Bk7tMdwJdWGYVODtX9hFHjG7qqDwm3vbe+YoHjwuwoTPWDDhDHkRkTfZsMqjfAJtCCuSOmRylipd+Y2tI5EpoplO/E9tsAYqMuTMdfAxulNKXJ3k+O9GCqLIWqMWBuJwXHGddWIkP09W7CgZluLJMghMASvVFhLWJZyFptZl+j7UeieY9tWsBRqrfs2DIgCogHgSixKX4n5pZG6P0JLfANQUcx6AQRQJtH3jmkBByIr1Glk656nRmo3ElUxYeo6aCKksyzOEXC0m67TxoTbwA3nzrzuUXt5lIlyae/RktvDiUA2w+I/iNqcqV76NCsbnlE+uEPtbg/E05rMPka7WFCDCcO66RH/g5nDlKD2sIHE6gak3qLFD2aKqIGqFNRgQIGY8GNPfz4kijzn7YV40gq0h2dARTvDxo/86Tm7ECnE4puM5filRT/EprX8Nv7ZwYlRGwpDTKZp8ibfjIYpJteQ56pIJt2Mu+UvN73B+MhpaRWb2qQQm2qWomRZ3g1aXQdB4DyveVCa7pKkx+7gZ5t7s/fBLTHdb2iRQUqyUtB6eyeJNqEaeI7QE3xjZ7+4sPU7wr5XZ+m+86SorObiDnPw208c626f57+cvxTIMFsIIKe34xjmawjTHqbafFPhWAEs8PlESKDW2HxRaYHt3e11dawvI9S73lSbV7z3IyvfG+SQvMw/+dDYZiQKnPjUOINtxvbpGoT8OGSTO6JhdwCCNJd479lwWOR0TX1CQ4lNzrE8bh60pGl4135T72Ome40AEfUwQtLyz8DCAuOafDG6ea2HMvz3V91wPnW1b3ll08tSYAdWPuS/y+9nC4qKsCj5Y9GuBHlHHvuZn0uPDTPDu+DJT1pqHvVwYsDuvNuEAj7wz1oOZSv56NR6msS2LqUwjH2ncOGODEB8cCwyAlw7QYNshzW4K5zFZd1kPEAATSYIbRHQrpcO1hEW6wSIPcI2uolIezHWvd83pRN1zndjzPjQTkcl3G2vp4K97nnpUhl7Fy3X0k1nsANwnOZSwEqW636OnZXfzU1bYd+bYeOKN4633pmSBCUq4OLWw3FxZDdzDvtPI4BySLACUd27Y9rdFtdvgDITP4yIO+YVRiev29o9n4gR3gu1ar3yLGW0Sax2mrG+9EDL49Sb5QJESquRIMeC6MoKaoO9khvFelE/32y9wEck1Fo+J8Om/T7OgchzAuWHbatGIE1UJmkaOyX25/BAlm2/6H7vixABSmD07C8SIN3T2eKa6LgVRMLVPBeCpDfIITA51v0dp08lerDHUnAzhgQENdecGyxKAgxIKSrujE50OMP1RzbAMfI6KU/hkYlcrGX+gQXkWiP4Xl53DpTf8hq50cq52xbWlp24vbcQ+pRo6AW5GaV4fR5g2fON7jNtgkV/qOEQnJLhVsGYwQzZIQfhvYAvjiRyK2JRLDNC/bnMQIhOPCMUUym25prvXBwHxUYZQRWSpHgSd7HETUI7BWupn2IMzCIWCL1dfLyQ2+4FxJoHFCfZISBXko61pmHC80zEjWOBtjFd8BRjrGugE3Eo2TGccfqcp8q2nV2MnrNW4TJbxpSPtDoCCplEo9ySsW+8MgcO8zTUlPa3KzFtxiTR7ohJhG4oTyUxspkNTw2zW2bipVKQdQjsmDiC5tOkGSBz9QJL8v1EybiBr2zEuoC2JMRssMljrDk511BmhY6khjT+g6+Z39ySR8SLNlArlvIIQ4p7d1irOC76deOLKqYgZ3GkQFYAEwuLSj0HSfenZd/L579BP1YufKYMpOEhB2XW+6S9hzjS2sKEZpynTatoW5FgnDyLIBfV2VfYoSYEIPM6gIs+eTF2UlvtQ0tl/dSEaphwo3mFyhBfPrtx6fHPi2l24br805R/WHwjMDfa1KAWujIr+uTTzpBYi2HEdt+Z9Hl9MYgjy73/0n3Xv5gumY304NiP1UiSjqdfQvSOe7LV46j9+fncHD4suUKIJxPvv0ja6v2aKuptyTds9jcHmT7SYysuZ+IYop+TsMKy86DESqkM8HxBHTAJRG2k/tCyCDrele3rMMVQrMKwj59oG7un/RWeArANVxN/wx7CGwqHj0sSXNSH3xbLGBF2sZD/xH3jqyrtf00mCjO/i8zkZkSx1pHFDxupBfkdBvPWkWBgCvv3XAePiwPtMtL0BByNrK3ViheVze6/io0RRWVWyYqzLcPAbdRIM2Odgmjuy8VdppPHtPtEpqDmQbSceShZjTyARgFrJeT3fbyh7bF4ddpcGBl9savCS/MNMrG4topmWv/3QlyyvywVcO+pJ1k+G7NCqVjblK6w43BRBbRYnQ1GulLe3A9Nbb6Euht86KBdhqmpvqADGuHtNjaHrG1FT5RhDTWmekUnhGnL7vvz/VuRlqboysEOmzqd3ki7rEi8gri/mWTqgd02DBrjexrdv0/eq56WfRiW+sq+mmBjBOZCcM4NP9bDjS5gkPKR6a28qoea8HYhNDJfqWKLc3fx6JC33pDUFRK8WP0aEZba/k4WctryDCWzdapwGejBXJUN8+btDhoU28gCzaMClnsN0yjRG8+Ye9SbIjbppETcdqxbibktliYu9CaXnEQrgcKm13TDhbI+n/pOg/VEYWjkaSj0q7UiWwjFCsb05130O5Co5w6MImJ9e2l2ukFCC2cUZ+pOJUhGxPmpaOABu+hmwEq4NJBg0HQGEb32hOi72VrzQ94vaVrOfmFzZGygTcEzv5sfBKs7K4NKKyiAcwQ30TGvXGosvah+ICa7TSS8bXxELbGBfpXbSPJywfjLzrccg38xfAfF6pKQBJFAfAIzRbBdxj0eq0CpFtCwxLpmSY6uPwqwi9IIMYwBDfjfUWbLVBilYPEg/mL6djJ1l4aguDz42UjgzhGvBnhoWDGvHCKbQVwYSWsH2mSazoDt4VLoVWHpDChGD4Tf30BTnBTQNferAO+ZhzfHaT6R9ahaog22CZXblfLE0FzoO1NqZJK/pOLth5yEeS9AR+U5dz/MUyZwvaAtPquEeMdWlT7HIsfMMVSSaT3XvKxP+EMx/KGlPjiBVqoF1CyYB3FbCZd6gI8p9BGHewFGovd1rPyMnZrmKQtZVdV141/MMeeKq9uU4Cs8Zyc7/9OBmdX4jVyxyoPWO5xMZLX1ZGImB8uLBRfx4Gxy2IqLeFxj+uSy1vcOT37kwuFnSaKBAXExgoV6r55aIC1ujOZHxiA4y36TN95ydaXWM3qeGrxLrFioF8hDClYmxMAZQuwjemL5zkTlfNJtHtV2GMEqnMYm1actepyqdx57OF2k9U7QmowzwoDj0VtWsLo6AhJ1jhlSRj8VO2a7i2s2MQUACdvRldIwSUZrfM6LQPaAxgYEixEHhvcoM1U0UoNJ2QE9sug40O4zWxY1ab+gyOqiD3r4xzEInPTLQMTz1M9d0GYtp38OD8HUkBgI5t4ozsNygToPzRRDe7oj0KpB0aLz7TeRDtsLUW3Qlu6bOcVbm16HUNDyxaTZDwNU46Mxb2h/aVfITsZu9pFmc1ueR2VIUJ0y3ANR5unaWJHnfYwLqSoXzq8lL8adqKDddglztPR9Q5JhRbHPdY3mSpiXq95DFvI8nIDZOq3BHPzHWLD7XJMXMqa3lVmdYCkFrIF1WbmnW+jPtw8p1puTl7Y590ey8IntRGrBcAGknuZQy/kCPdpmhU3fJ+uX95b+lLfUb06bMZUrbtIJx4dtYAfYhhvWvCjxtAwJtlXmuzYaV69++77fRMrT9dfvTO5utCHk9iod1eZ76MOwJrGES2KazlgNIsZDs29EKgL09q779xD4wgxYhkVr7NLQs2y0PSzH4I9R8bPut3AzoGCcIrShgnMdgnAsvzYQbs3f5sultRqU53MCm8vCXG6ZVEaIg75WG8rhtvIehtXDB0QAkPQZckEX6Thgq6nNRSw21R6nQCCWy4h1WUjKzwnppYcbChcdJva58ec7mCWiAO6HnEmPjUmYDrt2dDsWll9dUi1TyHi5Zpymcx/e9nOhvQ5OLobeH+fTl56y1ZIRCkPpEQL5impXVbx5Ykjg3ZTF6ItkKF9y+d9AcN5G8o2cLJBbUY9Nff1NRZvX4dvIB5RgLg71aRIeEgoapcKIh+8pDvDTDjnS04KLFAehRblnBeHdGrqd1wvpdSWz5qTn2ERdjTO40PI92ppP2ME0uHvBN0GJIseVYPyDtXUQqcSma5h6bjwak7nSCGs9A7fm3zQN9eQ51rfGak4ZPk3NTLaQgt5YQFMfyxuieSpL0aFA3ifuACUxdf2wFpwbYuCVfNRclTbSXojOAhqBg7i+FiWhki91OcP9+6uhsjiqIu8/yRJxQso72gpB9sqf58GEk8X1vn9ZOmSRND06GOM+SH+bAV102HH1Gk0eD57AEXYTMAI7yqzmYzcpPAjhpyAKfj/G3PrAX5idkx7+zeK5sMYsZr8w2eC/wMzm8gtRD2X7C/PIMnyHbsx/AX7S4776ZDMDbYm7cdTdji6FLk1oTwSzot1Pz0TMdILbv2FqbLgXoh/T3Q9YbWzwQumJiDOXu9EVzrtnt7Jv0y3cwYn7cuqutp7Gl24E27t2gBvnV9/3+Sb/bAL0WeVW/FQa1icjQSv9dJY9ccTJRb+pZJs2Aq9HwXt3XTQ4EHh+cRGh1pLckjC3nZsIXhq9T0cS7e+GLmGuDWOrxFGNCLX88NeAtdvU4U9Ylv9Awt2m4BlzocnLcRlDluzM/otHQZ612E4VkwIbDusRzBjoi98JRqN6aqzmZClMKoW/TZhKSb+VCevSCqraKlwMtlXF5YgLP7IA03RDjBpce4sqvtBVqxTU26E5SHhYENXBL1c/h7ViQmOHpf0DSMS6pBLU21Ta0f8VMCVbFg+zZYwTjx7GnBMVkTBscOXb3jOwZkkkINtebgXwUldYxWT6bdkHGKPtY6gsk4wLkqkM31+yxslD4f4wWa+vocer1LOw5zNF9ihLVDdL9dOSu4T2cVMWOnr8mkGHgwDfALhgBw60a1cuhVkNMgl74NfwS6H4egkR1VwwklKZKjFDbCOvlnjiDlQInRSvycrj0A5tTIpRlhnXvZRWZSleT8+DzVnpsk4hvijl2qHwhGnC2fbRVdkl4V6w83BepqLUzmsaUcKRwj2fNNw3U3vBMgpKevFIOi3pxzC9Zf0SdqSLivDMF7ly36QHKOWRbCNrBCkStkWCxQXurxc/dnTBW/OUTBCqTU2lxJdLiMBIgXnBIog9rIsBzQ2SZ0Snm4vHpDieiTfKewTBheo3HTfoKA30txZ3EZ6UoktEHoyU9z7Ew4OnEKgzGnVXOMlyXvp9QBRsTbQZEvMxcpBjqrzDuJrzkvyzxwt1rrUBEhzvdcpy7etS29SKs7HwrVxAdNtAJeqbVXF4EF0rkVt/5sdnbMadd5daRynC75CthQti9kRHsOtxL0ZdVlcmPoqC+wLgOvVQE15LeG/FxNg4Fr6V60JLqn2q+KLeQrCzLtV5XVrR+A2tJrTXX6+lObAsg7JCHBZBmSbSY0nryqqMgZ0epLcAHH6BCIbHUJHdPWxpbsdE/LYGHGj+Da2in2CDAo9YEuH0+axeM67wDe8pYgLp2ESj6KzH3so7f1sY3FzfKmiBGPmYh+3Vt1v/QwIUjfXv0H58wxMdCcfxje/yckqx0y3og8faGRieBRk2lDJI8ix3e7IYbitWzcvYNL3WSf8TbaP2yowToj12ovNzZEMKJnZMeMsc6EH1Um3t5WeczREkSU0V+zYunaRktgTguJ2L8CGVHjdNxbmcqlaNebK4EoFJbj10WiwK66vPGYZ86J76VaLXAECVCB7pqyfUjCYNXcbGvb584wd/n1aekUEUtVYRlfSPvptQME6NF6F4OaV9vO3TVoKhZyxZFmjzDup+aAYFvSAEIU47EJGOhZjqL3aNvsvpcMHeFJvhiZGoB1Zch94VTnIEZnkH01ZlNq9AJBONAmYlbaR6NYtJlyQVQUXVjd8Wh2pVahgrmpXATTMxDIVoqMTcDJqb0PnigezmmTrnbFWnGSmRU6UNbUbkdDmhgcxiYdW90TgxeVWOWEZSfeiwMutNPYzRIWoY3r3Fx3YXhxmhxs0fKKAi2yb+JjpmPMgNQokqvGFIfUtVmWCRVgaXQ5SbosBawkAWFWdIyMIsZmPA2nqTMikF6GT6ZtQyKCf7FbtQVVYMtVBAtI5bQVuMRDKqy2b1kB6HIwyp6PdaCLzRLGOk3p4SWUysHmkKuGsaLq27bZMLV0890G6XeqEQF20Wq2ZYJYS5AW+LfR/pWn5MOTbIUyOldel1zKFR8Zu8UB158is+Sf0MP7kBBV0NIwPl4O51jyenOaiZW1dBbOrtYNVhOIcxtwKUZ1tZU2hCg3uqifqoGiTGndqxSd1UEvb5/K6z7AXqUpeXFOOfRwUU2XlYiBlRTMBepNwepliv4LmWg7uugR3KFHtWHNu6l8iQ3lCMPVTM08o3jC3XQd0tpMKrB7EXzLZ3Hiqp0o7axN33zMzi1j8pq38U0ceAKaXrVRVXOkI+lwZWJ8eq1YENwuf4Aw8XzgZIHswjdKPbFZaNL7RxYgCBuWrC/SLUWvHh+FLeBKElGLA3/23fDU3dml/8faLCZcMTsmhO3pUxAVjtoG6JoujUROTqVaXE20Zq+YN8phz2Bw+6b9HLCujaekvFqg5dc/2DmAMONBkTZZjXaGoXk9nuKrEfl+p61LJ1/pHjExdaNe0yHaoJLgvlVA/sVm1/q8dzKhKcWsSuGoCgGrr1aLg7frto3vUX8tEMDfdPUmZIWEd5mt/4W+n2uO7mYzWr2vpeKJmUc4o3IxwSB94rbMoNUNF5fIiYmF5QVFpTJUQOVuyS6HFa1YcZ4V4RmLpp2jHa2PoQEuzbJ8ljr50bylh6jh0a7vsaic6xbFBreZuU9aKvem5pW/DysOUM2/nq83z1IDFcoWWQjWzlp3DWTDP4t5ECDa7G6+UdgxzxMFctO5g2GbXvejLjcMpCguoTps082mhyJFsg1gQnm173J7AEyFqCw7eveeTmUyKH9Q+SpZMsnbQyklZGUiRLkSydjKWTsfQykV4m1D0K/mDwju2r/0F7TzADAzFCM+V1Y4vFdq2TFwtEJ8FRbkqG8E97vKRTucCqc04m0TeBp/E/ego8nCwEQ+5st+BZ6EYHDe9FtcArO/PrP5Nc0ukkmok+Hx+inzMTH+m44940PR9tN5z8pj5dh/bbnJhBzbMdBf0M8CCjKK7C2Ft6cqORIjtHEHiL4rKGsCOOXvhnSzr1NQXWawSp+k0QvgmYkUhMMo75SRSluw+XWWEvevPZ9FEflg4OKzMi7IPNgPBRmKsKG8iFHmGD2hKMgkAol3BR9xQhQd4UC4VYhXekE2+/84oEKG74gMpfllbV0Mn+jkpayxp1zVvjUvP6fcP3vchaTg+zZUQtv7HkKJAJaN4IxqrIU+WCGBegf+a79xvxKn2QFLqobkvdo4ftQnrJSfb0IVGNWr5Rg1Arzv02dU1k0PyN0sDuSf7eG7nVjf8PZhn9V64aOg3o/OUSMcAJEuAS+gMMmsB92C6kF5nGrychi1psrXOdhLAU5ip4GfEeHKgo0kDQrq9GydBiIdALWu8yv1M3B7lcz3KHnHQogUAoKb5g429Ek7RKJmub059O+28zBkAUnvG0YvzG2Pp9onBKcf3k8ykNFBx8S7DpiZUQSvMQqk/LQ8a1UxmUUAtDUZCacQccUP09oMMc/KC7YweUjMkE5Zwoze4SV7gPhdnrsPnb22mfJgqOn/HDY8WZ3qi6HYA0bUsxy3kNRZsb2oq5xqB7tXyxnm6pkg1mHzbAzVeVuec8cIWlN1ADsP1rc1K/CatOVgdh1kJ2J7SYVhLT6QbgDnLT0Hsa2HmgbX6DC8wK6nTy6/aGB+31+HDz03l5LhRQUNIJyPQSfdSIllpJPcEXiM11e+p41q0QkeX6w4Ys+tz5D6Q+P/q7jBFtreFgAkiznTW9WPuWGdrKscIjxB6JZGTzecd4g3MFN2iuHN899R8wlgk2ADpkaWPb9+KMITzRvztDUdlPEExcWDE3TcAF1wB3a6fb30bp1YVq5lEsYoka2GFU/dBnD9J8mpGqMrcSI7wA7LxKoPNOp/3+xvU1zmifsmgJi2SGW4luZle/gh8dNLVIoYktoLBpQtDHU5bLi6UpCS6ky5fIy5g6GhzvKYyTYX+ZVE5MCQPo5FJ9J1Bk0hIzSi+uFwqci1uJVo+q0+m3UX+ZimVjkgQdaq4vpmaiRUqCpTgpakacgJEihK05AgwJ4J3yVMeyPy5uCdfP5xQPLWDZW/8iylSSNaOXO4Ojc2eOX0hTeq1NRrDrlQoAO/IFfR66VN5idHJeW8+uoO6uS2DcylTz7gMvLEvOEkseAJICauTDmtp9/kTzfSVF+n/eUvhTMbLfumbKNDI1txKX2XEPCZOa3sb8fmtduQzEjw7DzOLCBU8EpUW835rgXl3arQYV/WqJlcQprTPlYmFAZn5w5ggeMxfwDYxluu33J+UP6hbtw20Quqxt+vhusSoyncnF8msI97byUeam0OG9G9ceWsLMnugxXF30ePG762/TO7cDsZ7Iib7ZWeWWNg/6O/5dMFURuyXpPhgiMOIWwToy+jgE+muREKBdOpz3qYn/gsFCLbbXghvn8XxS0uM93tSPy/QVG5OpxQLCqtToCIaVrT5V3Dq2/w42zsH3Yto17J0ug59t//NqnuKFuzZE1N05kNeA3qU2YNAXQb00ow6M3XD3iqlDWqxvOmUz4q+pRZq78GOS0Bh4L6b9azHtHZS6uMhJ7rnYe1V4MrrHuvNjKpKJ4WXTfSa/WzRNu2r6fRM86ddgFm+TPVqZ7lNh0M7ohj5pcZQOH7XwDiTQdxCuQbdCNwWlk4QiaENFS9VhksVjn1kLntrGkFmtfpPK4HRcnVzfIDzQ2NAG8RaZGa0PuPGEC17UGNOMGtUZd5g518QzcQQDd7xD7xN6nvDP4I/S53waG8tqcBCvlfUBNB62q/a8vdtV1NVvlgUC0Mmd7zYymIqKVjRnh+uLn4Tj0eITwoADu6b2gvDsrlg8+aKJF/zj/sec4dWlj+y9vCrG6knHD5Kf8dJFMqScSh3dh0xeSVVeMRTzgm2E8m6UStBJxUFrTT6wv2sDNS/ztCv48yb8MBqj/Jbex+ek/txZOtM7QMWdtXIOqJ6a2pOvC4yxJeXHBSuQnV4GWZ5fN4GKF9ur2Uxi0l+4d6SLjZ/vbbokqzA2Jin8u4xGK68Y/37sHphX2qKF0jQaWs8/2ticnz25aBwsUKch2NWe80r4+bIWeqV2xCtdoD59Vcda5Ke1I3Ihxn7gc9L48+a9IM7QF2ZyK1A155FTjfQNDrxDGcotOjve8DX23CN7RmfFLW9rDtMRNZKMASNH9D7hyCd84qdRZ9qvflZtTaZm7qaTdGg85E26210nraQZm2aR+o7FF8Z+hJuxrzruRZ4QBsyZ9kJFj7DmiQshvq7t/NTdluGNU8c/5Mnocm+t95JajAPtsew22MXDa1W6o1gB/dkZzxXzzSXeGAjBSNdk2pexLa2qLzjVYQfO1+eKyEITztNPJY0EiaPppFSBjHq2Pm5VJYhutcEoEYaKPD2nyEpwXEBrMRjm14q3KxrYzzvQywsodz9xlqxrek+Z1j4jIXew42wUiVju+3Pw/STy9VgFAvUJmEVvN74sAVNtnW9NB+mP/uilF6hPwCx66aWXXsBe9EIw9AJm0UsvvfRyBOTKlmXTLO7TC3hWBXhWBXhOBLgNueQo1kxubRrn7/OlFV/ay43oVqmS8NMibZbDIP4BgYdsYEAhxWnTX/Hf+00YB+xofh3MePg4wLF9qy8auHCWIDbDDzOuOmYczJ89C1PdC56ugpt22H/ryVsyih36Vqs4vhNpHv/Ayhh1m/CclIl2fQtp+gd67Jqut3jHd2h9wDOfMAzD8KKxoXLExAnFCxor7v0ekS5cbbuewk9CLTGjztUTNB52rOP917u9M0d045lDY0dUjg1OsWEbN7dTynTkIJwQNFdzzyJIMIZu4pp5Cq+/pGL8+L6R0eiUBn3GIKnuusPN9KRBcgNMpEBjYmuO7wvMmBcomvu6mHHngoZGGjLLg+2r+fbMk3nQOM5pbx5GYNE4UdnZ8XKPELm53ycMuXjI/1ika9J2QiiSBRnAYfJ6bV+XEc3khkdFa1gyVsIEuabSBZF72LNi1z4xl/iCgqFHQhTLTBKnYT5HRixtuD1vYxXQTmc2jPoS3NKUBxtPoGd8Z2zCTnbMFkMNLWJzaO2AQczuUFyaEDmfUm8Rb7lOFNmemLRMWhYP7Rkg4/NQUGtkQWuoymzNjMoeRgyxOkM4LQ7tXJlPzgtlBZTUyXFRHNt5MSU/F6d2/pqB34qLdu7MzAfUoR3MYapoBGT2pALX84RpFG4uxNjUiTY41zTWYf19jgQy3OEtR8WBsy/hLFWoi6m++qLdBCFGIEtgupEX4rGLUOnL3KgcuGpnDumU1vnQgPgC5FVvUVhqtM+oxIEHLHbosjS95myaVP6ssWSr6jzzsu5hBA4hp3mTNHXEiuMBc1Jc7EmUW0pcprxlqbIdgJMcpqc9pWGqHOQjHwTlOe0yhw4ISYH2Dft3RnL7Yft0mGKGczBg9CqXCwFfxmN92df9DcZK7qblD5LaAHGT551AsCO5ikBmKZ2FlOtqKHLY0wkXVX0F41vZbRmUFo5jsmVT4w6wB32DC4HSJSlEi4oJAHaQhxSHdq7MJxeFsgJK6uT4uTi282JKfitO7fw1Ax+Ki3buzIy9yVBBKrpy+Cib4hoZSStvjfSzAEthK/J862Kx7VPV7lM9qSfQWkv+GR13Jn7OULWNVhxL5HITQr0vhNngSfDCUgOGICsRxAJqQ1AHeouBbUX10AszZ0ze936zR3Sj2fA8TYszKMEtqSSFxQnSQYAHgT9XaTx1V8wIiRYrPacEs1plexFQ/Y+7D8wKsxEkUaej6Pj+c7L6VDp9kz6/4BVkCwvyD9Mtwx0cd88Wd4ItWytrEX49SZrY94/AmbdE0sJLbNbonBqVN+qNtczq7lPeHbcLGjHzADkDuhGjxHd0XVKA6NvLUA1QG3lOe94V5mAqY4ybM2Mv0lpVQFmCrcapuL6Kp08BnUxES1PM84JqCCJs1RSishk/ksF0qgtzuhQH4N/4W7sJlu33rc2Rjae0cRpld3FT978zgkXwhRODXr8s1kpok+bA0Cpng5KgqrNUYlT+aCXBRQay2y+3iiCnmNLfPLX8ANlGROhbzkBMZqp+L92oZQzi+dX1IZY0+9RVRdJ4yjJFuEgPsmqhKevRDL8QUqANDznxSV0qfA8BCAQhA/iQYxSHcSha7WTyqqEX8EDBDgTVyWeL2icSbtwgx7KQNjZynxNpyOiY80azL3hpB0UQs03uv0GcSmu9KvJisg64UFH0jJR+zgBHzqsBhVnb1RTOK7sZXvNWzl01KeoTFgJVrIWuG8ECESRvhsB8K9KSjQbzg5LLdPXDbdyEeWJTnaqTjDnpSXVg1ddNHZSAcz/M0MrVUnyvSayu2LxpEtr7wjYD0Q5bvUOBjS331HQP0BerRwVgtsFcGS0t7nmmAHwNcy/YCZ4COqCex1lJihg+sZeVoUcXGhHvU61FnYGPW3dNXTbZdMCv6sQ4aUaRD/cDEZCBeYzofB6NmFwKVSz0wb5T6FDoomA3h1H9ZYpJg9EuMKFMsX2X+I8dKT90PgSmFZGoGxG+g6aKymx9fCGoLKaRAzH9zKBerOGC1KOsp1Nf6ndhxuPlpVxYrc+2wBncdZXmbiQmPQWce4FMiqAJLfxsrR1bqsBlx+2CLLF0/LBNwX4odmsFzd6c6eAopL4nTHFBwdAtS19uwxK+5hMHxeDXkVQXRnmQ8Cil6UjAK9xcGUkovo5HnUrVMwbzvjdZEBjXlIlSO1fZysuAV4scwO2DQGQsX9GDOwPbXnqxJtEQq0q2GTICotXRTCuewo3JMuKwaFDJcSG92sSHHG9HDviApDotu6Ru3zlTyZlEyFn7ZKW1tc3Cy89ob5BIFdafLAGxaNF9RCxYavJFd0Ewi8hpgcCE9oWpC2VitnD0YeUt2celrNhZI3TevPFgA2PmMlGJBREWQYqRe1xkHnXweyhxEUjs7R4KXIikgbG8HEoXpbHi0mVHDuwhUSJLQy5MhsA+TaDV/QVaXHLUwntilCQO1vRb+XBy9dmhJWq/gUbigL0AhG8Pb95+bXBLYgqypi3Cg1FnxEKTNl2NgBb8n/61SyYH7EQYnM7mNhbT/WSqMUWYmgErox2GvR60+GpWV69zneWOVXsUSApnr0qN3VIrin8qT97LSY9OK0WBBxSwuGU0//BTqufjHGsAOwJ8IsqrdhCjj4djdctlpCCU8Twn2u9nWuBwSb8xxdYFRm5Ll6unodOt2BorTUIqc1yoOd51vxMZ/WeeBqm9mtfiOf94qOrd+xH6FgeikZNOtSFXsVDl5xJ+He7angXNf7v+13RL8fPI9XJUvf/JZ6/Jku6TXve8J5flam+R/x6u6nIraBLdjDJjO7PMSlwFCMyIrxcyI80KBPgknv+MiJATqHLIggzPfby4SMqas8hExTo/xUD55XY/gWxARE9TnJEkNPVeK7O0xHWCBMdPPwDKLv/ti8YBpxst/v2+jNjetfa4+u/f0/tNfz+oOPz+Fj63Mv9zdHX6v9qTs3jPFXnGIDLnNFM2ZJo/t9ytsKVfjK5GxAsORVIU27yzz2Dj9duShl+koNneQhnp0X6WruzCsfYemdWkiS4m3MPCWInTLiAeclBiEQOFfPp0O8KFO+9GuAZf3hpKgE1yWqhgtMH0YyUFy4BTE5ivP2RK7GdNMQBKSRNaVNkf0YP3BoW5aJFGz8FsC/MYbHBYQD0ae4GhaNYPSLcGExd1oZH80raauqOjuLAubp/kMCv8CYCCl3eiMFRYDblamPqol0C57ybDiAzQ3/aAm7+hMNFs3eIYqYjN2HlORWu0PvJZYf1eoID98XShe6AkPADn4NRXw3n6qPR5qsimqcdhuFhNl2tTwiRcvtkqiBgFl6obDFJCGTwzV2PziATab3rKx9a/JzY1PVL9G0qa9rulYwALqz3YXVlA3gozcYWP9YLSkTRMiMZDx0dt8LJhYsF5pMBBNhILJ9vBXgKVoyheRYKXWOrd9dQG+P7pQ2bRxB4ephvE54jtcw4VKyenaq1AsWeJOqaokhZnkMw49AJb/yKqJn65w4KQ7bmaBEmimDwgiJXBLtUiQeSlgo6u9UmfCXaJPBte1nupEE7FdaAYpflmgaED/fEbRCTPSNy7siqchC9mDHGakKqVp6vhkqG9V/Uq9ayTBe2qaMzM9054EzQA6qszpNd93eGN2zKit7RKtLkkEF5NmXy403DTQju//AVATcxoO6UdDheQtA6zmzDXHlpjs9G7Y0JaNzuyQkBmjKFsi+JS9049EpfEPo4pNNNTqfAPK1Cky+nsGqv2NxP7UWCLuAjgg90BvQA7RaJWRXuCx5ocJReCtIhurSZniQHsI1zWalB6FSRIYB+QcPLWxVIEcJ9F8S0Hn212wVrw+E3KFslIhN0v2cCmGqN2vpJQTh1fFn9+hcnCcG3ThMNFIv/WtHLcf+qhJ7Wm/3esWZKknQK0WTlLD+yQtppplzYOWF1ubvYlsiJdWSfnx2BrDX+vwxATLmJrn5QL0aCX/zUiqwhlIyAaH2v6YXCclxnQhhgv4gSOYQabcAbdoaygU+UwHlJYmDxYcoiFySMQptjS7/hcKKhEZGwNQHguOAfUlgvudSZS2K3LFjlOf4ISoBC8jLHzxYu6ZnTJ8nzbBDxB8eCB3HJnfipl0cO0vF/fbADGjJqQmsr/KbgZvISvb+aRVqe1BKI/ZuW+VZ9RR15yYp+MlfbuNm/LFjufRM0CCelnRKaXS16YYEgT3QncTVhiIiRzKSiKKuWhjG+TtRhzScSOwSE2OyX/xQd6qauSPgYH9Of0eYedO5Opdwcz7nwcmQP0yhKOBaUAHn7F5BPxN+KJxRz22gJjGqA0qD9u0ZmhnwgPE/OWRykavVTJSo81MQDV0hIdWjQvyPAe4ayo9f+R+slKwTMW5+3pHF2Coj1FibLJaR/8v3OKaB4nC3RTBZLXUE8HkaQ2Rp3d2ALhkpAYYLyb98NrI3OifAbFFyJkh0QEVLZz2O6K2OoQ2e3Tgm2SNnyy8Rj9f2islVIj7yKK3RB/uvwfkiTdxPRd7PowEw34Z93E555YFvY1GNeLcVxy680JYcoQ5pBKMjJb9xocqXx+9onJTiOZH6zqz/VYXMehBculYeIZa3u0mIM4vv2Wl/q+77BzvfQIT8sAmkCfwgCy61hlADCM1XI2KRHbOiHbotu+K2mNDUNAbhlmZkGexZxp/N/jKDKvk1I7kduoMFmMg9eSuUQZbUE/Q8tMmuGKNMzQ+I8YnahNFf8Me7+kJNz12GFkTQDnA5mdJaHecTJL4TShl7OhwaIcmjLa+TbZeZO9vvQEFUwzQipNVtLAmnD0PWv0myXoXekwN4QHHi/qRKsVgVaNv+/gu7GzX2uuleYn/KAmckqejSpW/nGI4APeKgWLuQak73qbSNF2LMhhthHrRj10s74YTzrD03TrmtHgTvWNG925HWriAu95nHHXzumVV8sQW/drI/rp9ysFNYah2rFvK0lUAox4cT3r8mVHcO5szJT9B4j87jQ3Lz+MJ5ztFCdMkr63wj6AtFbhPbcPynunCeVWhwXaJUb4wArjte8jhLSXTDUPrZ5ygmA4qXIb4H5nA1wiKVAUbiosm1/FGDYoZXt+sHEr5asUbk4vMUFMr6f0BJjC0lJSocEA6QtH9hsAU8IxPNnOXWGn30XHTSGCa3cwZrt3ylk7YWsVMjzvXTnG7MqryEAz9R4aTAEBwxVuD2p67IhhyCKSdoZ3BQ8bPaEnY5ERNv0eOCN4M/Ux/ndEP4ANuoe5sgWO5Ol6ZPvLzjbsUI0IeN9ix9OarwJXoUMqDzfKw3FKbxfwd4pF4Hyg8DNkq0aTGcDzT6yeSjVgYEhjA8Bt2Ja1DxdtA9Dyo6xTS+qwLggcGTfAXSYOhWoM/sdB9ceVcb0yR5Lfnkk7J0R4wg7ojhk30v0mVm/Z8OuqVEUyq3AGBG6a1EzMzcZAs+kqNM4DCgyxEv3CFNIRmr9ufyVwdPYSU5uR5CkoJDE/bBvyXgORRe6tYCVsWBUmeBlsngceK04BRpBoWazHIa2ewPwoNjfoW90HGaqARVhGJdiTPFyqLIGeAplZlbXyPROWh5g0LWEMAxtwKewRNpGLYAVMTkjFiOk4d+RO3azjsMyFxnfhH8CnMPMBZ7kfHEJYhQGom927fr3EtslAB0e5rtIEYS33Es8GPHt38sQElWGOg2gDTiBq58YLgAbZa3D3NiZzXwix5t46H0cqoqMvQrHm6ECMjUH6GBCLnKRzjwfx0X/62nhU9fzflnRzB7cOGEu0qMEYaBQXGeVAECyREHZAcbI5JUko1m6QYR0mvuU573TgqyMPpg6BWo1g75eRneNOe/eNJzSU5wgmt9pKZCZFy5IQVZsVO1IapTS7jOmmOXOvyw0tuWKp2mJmI9khHOsr3Z+u5lTzXaR7RdxqFlbYgfbKlPa6W4lPrM5lAH1EkX3e8jkQl+/EILVg/nvYWYddswlzj6JSqaNpp0dNo3YkoFTHVYh7dye4FIx0D5dxcnAntYKfhvKSzy0p6C7ZOeB7r4F4Ku4LgKqHkBJQPAGF5ET3Hb/PAbJBR0RkoGI29thvNGRHnJqNc8hZRp2EoKtE302X59myfA/L51SBok5ZQOTBngwtnHZjcPsx8tdJYdbsgHG6fTLaE3/gzj7/szld1boZTCDr059Xt8CALKhq1NJOD6NR3ksQU34DcIDEwu2kc38hbBjH0Nj1wVjRxsh1amaitcxtwlvBworhtTQiIdNDG/QuE77bsDmMwkkkML1GViER4Rcmev2mIoYj9wiIBqFyym9kuWRZgG6B0yLR67pFkdNE1LFO7IP3ruJNQZOZTObkXEXZnxT7m0mstBmXvY8btHa4si+rftZONUN5LQ4OISU69YFLE8yA+RU1cF3dsag/LwntQJcEgxzMXHacbau6j0w+dxd/9E4BzKJaVKWTM1wqKoXgKZoLrJS2show1npI/H/YhNYzNmaC4LnDDVnwZkxsWSenfvCHQOPj9Re571yRsWTPrhtU8ypG18jz1gLjZoWdst72Tkr9pirjbyt+jIqC6Uz9AV59SSBzxT+9EKlG/eRzHQmKF1GMIJSXoD1Ustpzv7i85kn3mJTyIih1ZDo2E/XZsOqqoFzJlkjQDQOnt1lINhpqBkaLpO4k2Ny/SXkqZvwJkXzL1kxk7tJF5zPSC9+hX2j8FSk57LTJ7ZRsZc2V6g7MaEBn7BzBOWDVDkDeNhjU3aiLuyCBmNMVxmH9dVWKtKqZb2mNTU7f2hIIP1PMx+mwCMOVcJfl8mt7NS3FukK68L1/eFcIFneGfShkMWy86KMOsdRZo/tQSChnBTbV+O5Xhu1HbgbT2gpCrCJNJuOwcN8WniZPQxBdf++c/biuEgv1yTMtQNaEYhJ762XVMlezR7O3+r2IwlnJhOMGSoyUuyj0Geu7Qo3FYIQPg+ENMzeDvo2o1QNA/8xLGctSrPZO1JFl0FAkvlaWeyQsR1NubSU4FrtKAndrfJN5TvDiLpjk4zoSTBUQMZTyiTotgYDm2P9MGrzaBjUAmPOhmcTwNyF2WtDkrItBoBhKVfFeGF7htmoRDNQ0rktFBWy4qHblWXmvCuG7sUaOr5j3xQckY40AUjVFFNpRHhQqmBJBwlyVrVNTprQN3tYxTyPGiYfJRvVYSOfkAidNvHHj/SJE2VqxEUHwF/Sde/pE9PkB53+I8XRSXiFmvhFfJk6cu4aJThDclACA5ygdi9SMr/K0+ue7RruovGA9F9hbhIIkbx31Ri6DNTDCSQlw5nfoFW5BdISAnGtk1AbGfxU2WqB9sk1oqv8jHcms1EeX+E4xTXLYoDwncCdLqR+rknN8YMUB4u6usHifyJoZ0NCI+0mRaEs4WNze9gWBzU4sJDBuxSxfEwGIHxOVd8pAQ3ZJpkqPai0ECDjGiruTm0bQBr0uV/aFJUnBkyDuLX4uFoepBI/j65QivbW0qNa0wyUHoC0B7hY2mLBX7hN8mXgCwxrId+lzsNe2zn1iYfKFBdUbF+pnezx1A1CCM4JXG5GNKarzqGPw9G34bSOnYbM+3xOwYj8BgR74QEYGjAEUVGbLCJ47geJveyj+nj0kmqtT8pAsbZzjlapCzPFC3PQJEGXJBRnjQOEpNwyAObhZiyYPuz4NY2/B1QDPR3J/M46G+KOKYbC+H7nzxUkWvwtZymasHgBhbMmRHYx1PA1QTx7UTWXWCKMYd3k3ttZvRBtmqOQ7YvyR+XyPq/8yA7+HQneva/aNBICvTHwxuUcutguxFu4WAfyAHCiogb6e9QLQQcvba1MaMd6Yni+SVT8vaecWCHY5FlLK/QUwXf7WDDJCLzGsr0HYBxo8plSI8M4PL/01olkvGMD0MVBYgM47gn/WI3of0kPm3tpXX9QdjtU0hNj+vi2/y81vNNo4OtPGxWTusBNVeaOg4jD5Djn/53/1SYc7TTeyrDo/pNeAbxSflqmo+MDnoE0iFanEhBhtfgEoUtG9p/GWK3IP7T4Mxo7VUdzp8VUcSWBb8bYCZZhXgViduB7jOxfIb/y7F6eBrBC6E4mW5oKfK41oLwIY14UUvlCtR/FedPUp1I8cFdVHFeowhzpXiekrAnvfqqnNG/7ll2JQgZsONE03bxr8U+u5xz/1dQmExRker060frT8Nv6MzjkwWVPet8Zq8hEfLaudPxssDmEJFO9OUYBfaCikDzj1pH7WQF+r56ntzP08lKSXrIetXTV+2zF4rM3WaNO1fjtoXQnHOrWbKQ8tVMcP/D1yBVC5lQn8Gf0xJvJk5MfONhidyxEg0TsrawtRzJ3i4euvjI22BJF8xlLQXdL/Ne0uH0xQn9vEIepYl92WXC0Wbb+Tp9Uo0ZXvy8n+Jsa6+i8yKelWTimma8h0dNObq8tjdgrhpoZKVLCzJybHwMgwvrfu0UHkmL2riZosFAg4fh0GoAL8dI8H5NHb+GP+s+FP3N5Xq28/ev9Qf+KT+y3N00jZXlC17MEk0bdeD3KQAEIjdoHtS7PFaZYCpvVgpOQWVOGEGpbC7srAjGktIMUNOQe8VhzJSHbBg0E4i3bI0bzOpFQpBaqHDXSBc9oTwZo+Y5dtGgoiNq1+rxnlRVW+T2riAwelrRi8B4/rUcp3Ez8MCSKfFB6TW20yvJ6tXjJ0LCledsT9WsIid7vAZxs0hy0YMmAc3H8vb6uMffMCfPQvLthdrRTnN1iZGcPhdxJnlpt9kwWA1U+6RchD4ygxGg7eKCDgmmteLbYAGZ3l5fP5D7Ym2rWkiONP6ePyxI450+IF7GDdePLYRXhV8omvnrKNgR+8ABJlQn7hKWKY7p0F7VLnkoXao+iXZEaWHaZm9nDYoSej4Kby4VDYI0vr1E6O3i3BzLO81b5T9KskUIg9/DE770BqFuccDJQCvF93yjtyhCA/0TcvQCdUwPRHeEBOFpSW57jCfminreRQfnAebthmxCPo8gGy9FoTu2J7jqwgYc0IIWggnEsDDdruEmWdz0FctECPtbUj0qsP2lgdQpNUFHBiFnfi7CmUqmlgFSybjtp7rFtiOEcsSZORCCaRmAsunB8VFZnIw/uTjI7KuUaEQ8O6c27n43vaH3qshhq/JJZEy9vxkEukbk4YdB1pSZNMaCAG98U847qyKFG3cGlFjWhnb5pBhBp8crOSpBNVqN3rufCcCoTCQBA/ecT9PeuxoPeeRtcc0OXZPTeY4YIePBCM+QCxUEN6qoG977y3P2fpR9hPjjPZ+bWZizaDTc7B/h2g8/LaKdpg1Eq3pG74nITMnb/Ljgdqv9fGfpKTz5II44g9SuL3LYyg0D/+IMhpjCSO83KL/0YK0owdojwkiCQXuBd9MtF+vyBDjT83s/n2ywk74FStjaUEu/8JmDEn8eTox4QE9Tuz8wh1m+G/CzhTHTjydy25OWHxHWc/OQaHUHwlGfRRcz8l/gPj05gQcQC/kD2ruwfUq6STC/8eMscXOcnUDuzXe3Jao7UvHQSVTpc8whXwhXp4sxQLLC0ZJWtkkH15aG573kJ5CQm1wuaoIAU2VUTiODcGIdb93jve8J8D29XQ15VyS21u80Gm7Z5li2t3Tkgmp0gHZaTDiCt85UH3X+/hcCTc+N/pw7Udrmu2yyhJSd7GLR+SNLR1h0A/XgvLuiAGZQqsPzvUNkMJNnb2thcUdNGYDnMRpT7iz1gGI72G9QQ7T3emenOuc2CmVR5LTG4eiHFbAl/bPEI2SJAiTBPp4RaNml1F2y8W/tvpn3eJrI5QNCu11bZFxjWE5bpo/uRaGIj1WaQdrNMZWfHAVy49euuwfG6YqUePP/L6J0e34Hxv9+5P9BKRwcqJOxL8QVqZsrImtvQugjLFdZvgdCXDNpJ6H+tpI+1NiCAefiRjPlxNh/jYGfsJ6bLHgtxFuyPG3UncUKTL6Ge4zyP2AFiFNSE4r3ivuNR6i0rZHR5nPGkIA4O9EzlnFzV2fgr6HdOKm1SFefsMx9Q6/MOZ0pN8YHcwKlhVM4ADzSXWIbDW9DbFTtjmolshfAHn1J3Z5XNlpEKPppSp54JOKSpyZHDZO0r6nkPl5d9o4LOPpPIjkxaYlAOg0pxNcXNSlT03w7n+I7a2YZZZHuOKdUJslnVypY592LJXRMUHrdE8kn94QjfBQFe+yuPm0NCGFI1JkqNU5LZii+tLpwnnbC2fcvVLEFieg30m4F7sCVRwsD71ModjfsYVcRGuvC5OjzNSu/UdXryT1XYS2BkDCDQDlFiSUBVADLlCICwhxz9kqR4p8T7UUn9rej2Hay6CFT/MKOOdPwiyNE0eiMjyi0/SLebZ9Vc5/wSt95dfJFhVygoriEpfVbZvMqCZmCrC+k2qyVCTYxRCeVC9DOCKH1QzNisO/CUjJeOurBxYcFzMbibOg06fq40GNcvaNmdUqVQ9S4N3F/ZMWOjUAqvclM9YwgjpR5A0aSJUlUKW5qjJYi5xUM/qrdhOnVlUxgzRY+mggwFGept707ZHXaVx9LT5kqtFsFulrK3ek/RYQpxN7fErT7/cJirOtyOGEDhtSDs3fnFvkn0ZlDsS9qopgcHJ/ngvrRZ+VP5eh84TqzHYCvRBeA5CGrZNC/KjMKwrfJYvUlBu0UHTrA7hg7yZduYRXd9HhTRHN5gtuNjLHpsbkBy714+jeZqmZF6ihkCy63dqdRdfKJVJzu4MjSP/afc+YZQaNv08bkyZ7b2ndG3VS8tHkT27vyHYoaB01QT0eG1okG9Q2G36Tg84vVf4w82FpIg7oy3Lan/tyO+sji51p6iU7UKOWjulqrQn8qM79/lWOylu5WzGru5o9Ky4Q4pkosZ9mK5ZyTcgrP88QFOXg+mv0wn3bjsWpi02o0/u+oD3o7MEauOunMAFGJVy/41T/B93NTvOfPurKbAekwrf1dUMWhH1NOHKRbEKjwe/8EkLHMH3Yy0MzLaLjeBOPueOpbZdeaVdy53XusvTuwrf3XW/0f9zHF/cWdDgECNXbb7bal/GeLA7dXwfKl+mWOVYsvU5UVnmQO+ciUNbhZrbo+EO9JH5fhG8FS+WEHR/PVqj1MNd2zlu2J7+ppLWlrzOl4Mbk+XKWPhWLgh02wjZhBilstr7LzLzlbc1C7q6Bd312vM1Fn5fXFJg5Te+WZLuZl2omH0r/HraBecMUBjVI5yit12QoKWGFhzkex0CCBQ4glqxTtYHP2E0WJjWn89U2d/jdC68ldtIDDhPVRomJ+VBEEsSV1pcfHjTqKbG/HtoNofR8WaJvbadyfduJZBKBdXw9SKujzrGFuwn1RpZxSdMs/ZZbzOICr+86w3E2KnXlxL+ZkgqjH1vqUhB1ZfUKr7zVKu491G7imGyIln0ISHkbi2xSxqzN8trq/+78VxDlcs4NYkBPmQoiNAeGi0OR8/Rf9sJmhJYji9pF+2QxhXALFn4IEGP6YudV27SvOD8hIh3hLHUKfy5pYMSKRuVUFQlH+8bD5lErhNgNmlD/kZeSJ6iwJHnOTNSiZ4nwzW17Zq5n2DEGTMVvsvry0Qc0+zwZdJ4VoGh1VvQfDWjIukkikpeWrMayTDOlZNeIn6C03QTdT5C7dyJ5aOpu2Tm5QSDZ2QVvrtL57RAez4uU19Fm7vubUIY4RrTUzjCEzAiR1VsQHXQZ49RGX+9UVVAQqrJG99e43zwe80Xs0OK7WrHn4dJqKA+oiN//Wg1GPmhQuf447c26Ynp8vZ+Q8+vIogvhPzh2I8qK7Y9uNxSp83DzByGY0Lwf9Oq70kmTm1CTrS+efkrFSGflNZKexahXk3nX2bNnL4fQx7kSK7lp3D5m9umrMMxP0kKIQLiiMmp/FdyrPl3gs386n9ZW4eHnCcKKL8btw16Eas6x3dehWeR1rvyAe7qVAEsjsKctzV47nJXGwCY2f2oBA0b+9ei2CGyBCJUJHMgT6snXOPIGdsIEOY5wfoZgW0C8iq6HpngmunhZAJMLE/YBmrdNdyzNsM3qHJwpOP8GoWFKNDShCYTvWz+KQuM39sbk22ThlUnUoHDN46iiwcRI6qxPKnHCl7DmHRu2YVnaxT89zvFPOjmsMU9fIleIu0q4w2CQWnwx1vz5yeihHfVMjIcYHQnQkn95OCiPtusK/Nn4HtQsgE5jCRCXNEz6MYzxhTp0c/n/QU22aOG7wUZ+USyHJHPZIMdhI6d0Hwn/0pokD000239GAKcnohyBz/wgJ+XU/mYHjdt6X9mvGQG2AUY3qUpVc8cIEBs0FKn9qhbI+eyJE5vGxflonbHGxFe8fio4GM2aaul+g9s6neYl3DPzIG0pkXpCyZWX7KG6CKxvrdIuof8w2C5nT0vreGrC5ibyOuSTz7SUGb/PI1WjqJIFI/qjs6PMtu5e2PcPNcn0nFuAs3jmdY/Q+56QR8Ag8Ih04PzFFAaAjvXyTJ1H4ZVyZLj4fDVYRJItG+alEyeXtpiyjT45p14FhQFCzLF8CvkoMNUG1dK57ylpI+9zDRWmMiuEUzf4EiiN0bSJWHlqnhGHLNvo8FOqnPw7BBaFGsbJo0s257qMQgvxPmZAKLBIzFs9wAVSknoMOwr0LvGRBGR7z3Bj3BJwAfb8zkxNACkccAFQgbo1OZK4J9mJDBdBLnZlN7X9ebfhfTm66UhqY1cqUkKVypSiKXCl2Iei13KCIYzqIwAQOwJQfsFiLyo9KcFJMyq0zHAw2kyFD39BpDDRAFuCfCMv1nAifwX4T0AY4k07sCgEGaIvpZsVgHFpr083gKw9+rr7nv8/qJyfzhWFws/XPbpLkZpZ5op9Y63Qd62KzeHb4YiOp7wqR98IrAeh4d5MMwmymAqlEhE29XceKEBSLqu7+8u/3w60y6fafE/rNoVTQWm4tCPdAE2aMwHMDpWcDiP0OpfKOFJ9/qvUPjI4S0+/D8Ja0IWPiWsc8Uq/GUKYRMRMdUfMwoylHdRou7rwzUqpqjZRIN4V7fXuGcKYxMtUrqxGumYaklm6PTd403RiQv2q4lqQqry5/5CQMvsrzeqaytDa//Y+qB579GVo0sn7/TeGhi48teQuVvAq6wvMmaKxmM0TP+xCPhPQUGpSiPN68sR5gRPbjsd+THfOsLfv6y6FBm4148emIIYw3EMh4WjDUcdEVVEaERkESHBcDAorH+paURdprS5e/5XX4lQfyRyMYpm6Fnnc76aXVG+0/5LR/MP9yFP6tLBjdrBkjqETK73qIRj/0cKzD+3cAxGZPBBHPj9Vyc69l8++J9fw6BzfDFPs3HwXz7wD2uW/s+WqTVTFz7eSwnOuj60MTwm/F8+2n8Uqqkc6w4USbJWUNG2JrlFJn9kMxB8xSM3E6HIVMjL5+8e1v2Q1LE2fUGMFOfZt4e6TE3r//KBcb3qmFpNWOBf7qmLf4WwOkjolbHlCIgwlpr1WLO2NdmxCWici0d7nmCBnDmmlY6sJ53rttY8xu91s5osOK/h+C/Ow+L1ZlTHv8aB9KMiHsEsMvMNjbv+XiHqW+5Wg+Nb0g2avaoTOO2yomXJV7pwSsf9kPfWVb6DwNt3QWca3/gYs8Y5Sdlw3yyywQ27IzZ6ZyBPFDSODN0mRB0LwPhzadR3JZ7FqOvjSPcYLuUklPIWf00C3uZzfctdJTkSM31bu05CeMHuAZvEOZkIN2AAqW/j17QEJaV164uBJX5chqEXre65X7JNUCKDUq/77VOFxexdfqWii4pJnzzBn3++7Kgcs4zUkggzHI6O0jhWqNWGVoH2oxUWKy2K1OuTt6v/DWtLtgSqDKvbn3nEfAj6xwtpqJg7VBCjAPwgSxiQCvhlR9omY92xPL/ux0jNJc+gDGQW64z0Zf+TSIpg2Y831FAEhWsMhblenoiRMBcVROuEDk3F/isNnQCAp8F2j9oygQ9AdspwddIsCtBXw/mD8kGFDS27wpxvvhLOjN44ffGg8wZ8HoKPc1U0iOhZ+NqaNv6pJ/w1jSw6f1fAsb9pHrNSNz0eHpkW7jxKr/UnwY0b1a4wd3lmDybRuI4jj7Iovuqals4bhERHkah061nh9dEje6/R60UaVt/IWMurmdfYq3amdFdIp6R0W9rq9pSn8j/6+jKgoW74e2UWcsEQ9FAOipltqfJmL0m7JJhL1hkQm138olzstJzR1NRJTPXJnhp1aq/AtWxcGYsxcD/xlH7KQMlYYhnmgNiJZRWK4NKo3RFr/tylcodVR8IXEuQ1cdtKTzOPp8q0KnfN9RwgxEE/1FUVbtyOx/dlvReOmxsRPZoQzyLq08lTAkPeNSqLN/j+LAg7+FE1+KjUSEdtrpA6V7hpoAT6zhMlFw3004XWAxSmEV2CcO6j6kCdqBlfWLsAxUTObX27+8XxHhN9Vj/zocvvrIS3lXRTtZdH5vIQmpTM7enIGPtj8jDtUmgO64XuqGAgCR9/0LrESg9sYjDYVoaGrwWDD7rhk0Bd5BB6UukTon+/NXPxETEpinfsIXasmO9CB4soO8qiqpnZUwCmuOl1kCwLs1vTuMhudTo4WbiTgkVNo3pLRNS7fjoKyuVkRFIuNZ8p+Bzqy50NMLBYQqG3BMLb5hXUex3USosl0ggLAVVWSZwsSol4bZ2gy72iQKjKo4BdK6VGPDGxTYJyTzV6CEUdO1QEftEmRJ87Jym6E3VguhqlwcsJF0e/AC+lIJCDdOf7aDjiWF2cOGcOwUSbLKtKu3HINuzX34wD/crZ2teKcWEv2NU28Wh1GPK1WoH7H+r/Zf6U2MxhuKcTuH6WKuTbvOTJWpJrLG6ndD3MMksziwKtLwCRP71JO8Trjn6tCBu5C8SqQ+J+v8zykBOgQTYeO4ooUzZ/9M18zUB9NRy8Hqw7DgufGUHFAF7UcMxsyUOBVadpzRkBcsC7/QGmABy+x73rjmfxGxCfvdIOjw5NWiZ+ToY6hyvDHQWcrUOS0cEhwX8LXzElhCvX3grDHYv2kNCh5OgHc6G93DRMpKc3wNyM0I5YRFSWG/+RUKXIm7xJFJ6exrlfhQgpUtD6kqBnbhr2lwNlfpikWc67qiNT97vGqd4tpzMbLdf27PHWNlIIOpsejzAD/waRrwQDSdHgsFKpyoG3VTq8feZk/UQvT92nKmR5a6njBdzIu4QdepHRluefkjHd+TLCNAOMeiW8w/cNlRyMHVai8j+O/fvUjHE+M0gmTubu4pH/QsDMENCyd7Er4O95fnAz1m7Vmn6zZA/ZRATJW6U5PU6//ywhD0LbSCgvktkWWvSXNPSl1n/0uFnwwrs01sVegunEzfJIwUEsC6rPbF5HRNZecXi5XozgoVQ93c6J7nN7sYUjTxXg0xbM/i7Ix/HA3pBHETvB+k5RLDXTQJhxr69M/np3Wlt3wYzr95mE1PNReplduGH4XLqJZZkOSjHnN+qMX/uORlSHu9l8SkGQJ631SeoJVv/WsAVHu1ZXRzDubOmdbxMrvvJGJugqVLrsSp5aBDt3lUJPCshk0qhHKWKYqvUxQ+khMD8I1MpSohoyx8ClnMoFFvsd6YPknGuH1MM7Z/z2Q4VWD6hch2Q/b1PrqJADJ4boeNuDF+opP6aDSMf49lumQhX9YIzGQ1kexkd5vwFRhLb2251Ez2sg3z8QtchIWlIOJ3eFGVTNw48j/vGH87CXpG4QZiqUz26MvDVsEHstQsu0eENQpCPXBXV5RHb4yvWeK0o9G+yHR6o7osGxTI4PadDnQYWnyAallMCP9XXa6Vbnqul+ZoBUJIrI0zxnNPfgaVkBxJCoT/wdmZtIFePEfDSUoYGHTZ3wwASXxHzncpG86N/fTV8pr2dit2jkciFFG6Kzx+DA6uY8sLpppvrKmDDgz9FRADgLtnnkjYIoYC3O0b2+hRvVTJ80wLQkrqtMyU1jxuKYWPvHqnBvKE137AqfePLEWE8AeHeklXQf+iLu2ZyBxvkvvRwSY9+PVlA3H3sen5TSrKyVl2d1eYlJ9f31lIbi/ADADrL9+2WsVOVxp71TVkfJElwDA2P2VMmnrdBxGK5QM2uL/n0KmH3mR6U265a7oMVkQC4lgOCfsZDaFEzbmaGMIieKelhcMf+ZnO1zXNs0qDZsOwmPz2ZdKfVP1udRaBCm6VniteQ57vSpf28kNb0qpm2CpJ9a0fwPWg2VzbSSO9ijlFOG4mSiEWld66x2TYk6gQGXqtKZZJhZqiwyNO7QqpGqforWGZ/oX0+tm5L79EsiMhp+/hEhtfhwFbvxHl90hTop85U8zdNPDoHhOj9t6qib9bG+FBOs7tS/6pNZl1/Qft7OQx5eCdJJI3RY0o89aYhFv0T4MKRh1Rbukp7VnUYNKuQWKuXyd5B3TrebDL/hyvyn9GiH2bmE2WgyavxFJq03VsOjFjXcHF/ztEt4fJlNKof8oze+BYKUd/JZQn7SX0MNZG06b1n4he+t4h9BIfOY9XdE7dCVoeYYdgV7x5qvdqyMaee1Zno4AcFRGhvTle7C7Ptd9eySGqWWYNeq9aj7HHrnN4iTUIs/N8rNeOV0NC65+POCm2XaFrrzJvSdhEEos9j5aTsSl5UdHRrlNfAHVDpukFjGwPJAJvPUG2a7SbRqi2s1EQ7TOHsoyVOdwVQNodot3mysUroZLFh6nS9udz100+c6oTb+iWBqr8678NZIXK8uX8eE2cw4XwChoYMteJCktq9kjfbYoLyHKMzusjUrjquNdV4ItQCku9ogwJqMTn4E3AgdXtRHrP1lmsShUjWbrf+n7C5sjcbVLWW/2VjviEdyQii/ovOA82oyZUOUeMZn13f25GbD6QzuJXeFnXrYcphq7HQ63A5ucLpc+hYJ6XPFWeyakA9G62vwHDLffFXJnWcFP4KCmTgv8Fr2Th7RoiHpZ5tjmXeCTyjsFGuImcVq/z5iF/C2rs9mlWnLZpBKrNBzU6Mg5KEXo1fNvue4f0zf26q5GzHln1Up4cUv7Z10L4ZwsVGx3jB9VmDpREZbyB5tD+d6obSATFO+wYtGkO4rjpMi0VEFnPZvStUhCVg2BFPX1gjTvmsjms9Ga+HCma4L7eb05rpWD4H0jEVzlYunJtq3v/8n2ZLjjFoEDUWcQAJUWrNziHuHd+X8T+UL55MdSU/g4CSWePim0MVoiM/GCGqHFJulknQBlYHJlGco3Q6FWKOhc0herQRrx9zXYMW1hkejo4SeZoUxPuJRKF3b9AwSTVeN5lu2a7zzIoLRlTnXTRnnbtCKmqZ+r7C0aTVXQtIG9rm10RQKZxlmrSzadjSGN0e4MIjFxwic9QMxUXaEDlu+u9STG0gRtAfea+TA0vpH2Djalia0raMpndvVJO6Z0TE8vgrXwyd22G5K4Rg4HLYWHf478/He5XIi7BjtmgV+ikrZfhJU6bDpsLpio8CbgFvLQeYg6uKglxmSyUwrGUgOAM+ivRxvFyowjTLkcc3q4BbDL0Ah+q4asrDUElQsdPLiW7EAaapgCG5nZl303RRmgi2xqyJ89do3NJDUeYv/qiRJnqI/3jzK1n4WAG6e/rTG25ylk4SjOvkHJapn7FXLtPFGx19yu7Qj0tm6G8n6DA/rGKXDpCcF+9HTO0Mzm3ZEm9pwZZlRHS+IKTOS6TPCJqaWVn7EB31yUpkvlY4qcB3uoVxtlUIr5v4uhobOZL7iV19kIfnaEjr+MPcgNu1zF8+ayirObcaftmbhp6Dfm0dx2Gdznh4FM0IuRQIDVgEvIlqtw4MgobzrICJ6ADIm/dTIvvBFcDPWavHWplaZjqGPNQe2wB5L7ODXOfTgRk7MBWMI5PVWQRAg65fu2vqgak6inOTofMBusgbnvbcn01oheQjmCYyJ3VA+5TSCJyZdVE/mEFkaJ2JwdwzGecZpkmNzqvOptDYk+s+XEt0V0A0Kf+FTJTPMnTm2omCfMmuXKxmLPMV/twt9S+6gI2Oo0n+TtaJxAZsX5xTg5ATdn7W4RY2Sm5UoHu/oC2MfNWqVCsWRPc8PD1I+tMEN1jYXxg52A4hghTLhN8Yh/yhJ+hEPggvx9KjYbsWGVHpiGscNR+Jg9nOkHS3HmaNUROb4swtMI2F3qHvN2V0xa8MymT/CaY5i5rY8vK2x1EuGlFd5cD1SrsNHR8Mv+ilqBZc9B6MQ7X9V8ZYm/iCDDkMbCiiGsIHbwc1ogKThobH+EYuMp2dslk5mIt99OBUaZFtx9uNr2XrbTqtePQuFZMYyJSvlDh2UsvyBo2SWS7mYT+3JY3GJD6eWMh393C9j1MVZFoTdbOVJ6Gv3+P7IGT6+0KWl0F851k0hfU2cWhmnUeRSRIVk26HWy82sen8qxqD6HdE96jQYgJQDNzRS91e5gFuwBlWXx3uIqzGyq24q38RUoysqPZPWnsKBuZv9NJkuWuv3X0HaL/pu7qsGbWsfgIA03Kq3Jc2p1HRCCfZ+RU0Lu8l07WlSh0GH3eLICmb94PF3SN5hfLKGtdBbpa6PNtQWGYPgKZ1xMnV4+2m08Ett+Wca1CBq+5M2uM38Asu/MjFNdmP0icqeBz98tgYGWbzdpEQk0zaGJwkYiuIykv2y1OMC7yndieAXdrtdOloS6/uUacGlnDTMrq5Oxs1kEknyprcJBKSa1tK2ZXc0HgZ0tKZ+x936M+6bbiIUO4rlFDgVMiVNI4tUOAqM2LQy6oD58b4PQNufxbHWeLs31n8QKT0sTpQxexiB+3f0bPpzmqiN6eW7C61KFExu+nmlGHXt9Yh7nH9dyoZt7diuYE0EmW1tK+yOXFHnRrGVyjEnpqbNsQmisz1jR50K+WdReiNuBSCKhwYLvJVDFzTGO11AgJz1K3l4s+eqHXei4FzkEyRTOvUNTDbCwyuZZB6Y3/b3Y8jdzLmAZN1D2U5u3XSTNX2wzjRQI0ewhH4BO0//0p76I+MM8G96aj2yPFTeQ+nxm9H8w4bJ1Rh1EvLv5GmeuqdCwSYbaT8uD0dLyD8lQtNnfEJRDkEYR6d/bQp/JufkcdZwdKjlw+UCjW7JM4XjlTH6+aq8oZOXcqPYzRQoFd6t3E9Njy9pPEzgFUXkMJkPXHtJ53JVlOmNFtl7KUQ5nrgmL96w2W+tMwZMDFoGLRUd4RBZaEPGxlUuKDvpeGGrzOj38KtyouxD79nl/L3X1k27tO7aMyS3dwqhfD5rc4P1b2ubsApZhiv/GJAdoWIXn10fj/NaiuBIA1XXaWRKGVXFma1VMjnU3fE6eLKM+Ks57OeVUMsfMKLIr10IIVQleZYphy/ZQA8B0yFG8HUNw52rHiEcEs02gWbmI29AaCIiQgeMjjpwR2qAaqibFlsROBMhXcVNKuY80MjB47WZnqw8mndEV9dogO/sVjGMU6glsvfzFSBged5ZMkv/LYo3l8xUjXjvhF7TSku+xEtSsGMF5MXpvQCWo2uO3hWl/OXpwCWRc6WWmoAP7tmUNvyg0pL6z8LEiNm52ImQkSqjPEErMBpOcEMxIqGxUJG73MU9QbQQy0eo54NqjicJBRNh4kpd7jkFYzAZkrY46XQCfJWa4nApxLvgVzxJIH38DtvryIbX+ydieDaakJXJXHDGyQt3R4IeeS6kjDn6TifH6CrvTdp473clu/Z/7ZXJrrD51LnE4KMKLRwbxR1/BXyLNCGuJqlwzq0+k+G05ijCT2/jcIVPx9u0bMN6/3Osr7eN4n9L0EKwtfbfhRZafP6ZirffX8Fj3lfbx/uv8G33HmA7rbHXGiz07Gz1uH3y669J7Zsl+Fjt0ubUnw/olxYeVlPkNBXZHyOpBLbdrPetORc3s63ngDIbKuRQSffXNyGDMWN206ld+fPSLHn7ECR+9Ywr8xVFrpRwfcFIdogq9g0mrjfXMw7xQ3MxqzfsLRVCq76JZNQykgmFgTStBDxtJBhpdSOTJD/LyCQDOqfIzN0swzGPZR6ys8P4RBmYTBmJGsvgwoGnOxD8BkfGL+1B7/D0o10iPtyBLCDeyeqGIgWnhQ1jXVtSrwQMSol8Mc3Y2bX0g8rofFXAyJ2ybqoKTRZlKAm4b+dmrn5NYl7NAtEzcfyhNFp6x1GkrSaCySVPd2aUbZFVSSx7WdTszWYTbL3d2HCVaQC5Lwz6kU/JUcn5/FzrugllT6SEFqkiu4HGFNWZamDVSIbEOzWQgCIRiXOoD/hUHR3kri+R9v/UnApAaGWqGX2WQxTaHj1mRa8FlF7urQWvPuLEmEyuI24CNzEMqUZRLg1XBxA+6y8dBc+bcPj3Dscfj1TSUNAzXkRbQIhnq3VMoyq+0z+j53spISmueX48dyYYW8PQsf1TJE8Mp6KaRjQC/C/niUZNiJGjvxsN46JSRUxJoyIX9mgpqhbqlBeQCY03Mn0Est1NiBaeR0kIHBtYeDN1YbgVPRpTfKylWgl5c6ahOOJ2tuP+ZjxTVNghgNY2v9BvCko2Fcv8bu+xDiU2i7etrrkZXIEhVPTAUPXv49LzORRTuagUYIDWmovn0b6SFadd5x8FPplpjgiNuweVEper3Aru3lDcIL5MuWMUGbnkPNxPE3M/eGzLokKOO7vcstYYfXfs7qhnPNHI19xXpcrLLrjDp31AOGGPtyIu7k05tgHthXFwNhQ6y2483Zrl9EQl98PcOEKv70FbwCSaX368Xo+j2VyWTNw3UevhcTnT3nCw8ZSjiIgO2NIwRB0mDeCdHAA9Hfc28LCI6ibQYuEmtgdkmX2tvv6wr3Kl9zHceRBvuU35bPX5gRQWhQfj2PmnQZUdnKioxqMrFbu4Cdh1NKNXb4G8CchSk4jizhNAneEX5oHnLERcU00Rkc2mSmUsnW/x3AVXbH44JU6wTYP8hCSY2w0vtz0v+JQeY6HtQw8jLsLyKyJm8lfC+yM/GrLRGpjTc28S8QrOna3lGTZw1MK7HW0fp9Ho54d2kysZ4U41jLRRwicLOp0sJK14p8dj81uDaDszdoVKilqiyTYitBeGSGm96hDvEFI/RkVQV0qtPTBn6UFMtow+THv4K+hDuxL6oK2tEAgRLtCANFW7FitP5FZTRDEdYkBU8GDGPRIyurzaKIUHUp8/oNhgY0VXhcJpxy+qKyMzpfoVwihsNAk6mqsB/Ix4flSw/hOzdetDMGqb0GZw8N/C7fNseL+OCh6pVv/Fy4lS/xCqfSqZs+pfxe7Pm0BIJgp5io2sxUZC8zn95O4mqpIW1fxF32NNRFj3JggdmyFvoKp49mchzwnbEwaKExV+4hovScQ85f21mFyRYJ3uis0pfe7vbr8kmUl8O2Xx89uCF3c5LD1ofZY9ekoxfbum7KsBgzpFJMMNGsrCo40ONaaJ/cbEcEf2JPbrh2JZJvDVlqiVfZVQ1se+u2K0jip407S4bmn2qUmqKQwDAeYtwdRY6S1pLznrgWJCzqzCXVbYl8oKAcKHyarp06cpQUOiQ5REIXWOk0GJsrN9KIe+LvVDlT4z9U7jiXjy2Enb4wSoM1p9SbGT4laksfgZ0td+fDqIdk2cMGirG5CUw3NUeJiMijEHw+NPsRXXxVos06BXl2PtyZ0csZQMW7uUNixTkAYOjsPfMblZIX3HOpVslSVPNMH1pNurmXZaH0TSaXScnHAispfGeWWZYBzJ/lntnLxi5gKdBd6DlrjKMH91iJALUsq3yhn0WNNHZZ3UKjRMinc0tKofDnBZAyo7JfODNx2+K4mnFST5taM1808j5kCmSmFc+G33SCyCpnf0TMYZlW2BxmjfITBhISPMyg+o1+tLccPzmDA3dLZKZNfKlNVkY8Ds0sXA+PJRr1zaUtQ+YvNgFaUH4OSEu505p2MfnOOyOqqXn+qp76GYTvzkuTFyphqXTcl5RpdmBzys23+1r3JhK0qJVkm0F0XhdFWlZra94qzoDCC/PK3ISJMp2e9gzTTYVELScULUDF8kIscgnWh9R1CE7nEA1ooEzZ8UREDPALmHo2mS2kDnXj9lrhyJCHhmpzZWp6AiqXqOd7daEdKF/nh8ocCfRW8eJrhD35zonIZT7YOPPmQj2/eMYvIsXACZUmbu3qSPPAPjGbkKKCK2RzO6AF5wMJjF9uO74fIut0sJwyndxbGCtMvT2US2/n/IPbclT/6fTbw5K8+KF9VfrKuVO4mdF2tCA5+qFSO7TvMAlSoVBot680ljUrCBSCGNM8/hh9Igbrr2X1qsy5Ry1RtAMsv6KZREODcu3QDPukEHtUNsa5x5uWP6nHfe27W0zeywNn1m2KAPNHmU+nnsVRB7tIbcyFbCBAtNw9LoaEGrojFpHePnLfbdRmtj0Jkps2HseS4UNGvzZwCwh7C2TfffYSsNQ0NWPOgZjDgyZt3sWpV42pO1KVCCQ9gUOQgIu+h478CcvqUBHgl51Wwd5U2rFm9HOmxwJV51mowcmoIvFHBcyLOWHiDVhJ0usaGnAqA/i3uRncaNyJqeHXoXUCJG9UwPY8hIzeVc1zr7xCLtSpES5mrGrP+dv96h0PEvmDEwIZSJmJNW8eCy+HaMDaDD1GnTGTW9/ie2rSphH17jolvfcnaZ+8wUwBQlQwKxpEJF1eJMtATINl29XBWRCJYywHtEnsQEpYTSszknixECpYpG7sHHfLEnV594EtWGUvPBYbfarH+QCnsUA8FbR/ZPuk54V6lGRMoMVHe6bGeQsWWQbdT65Mz7BX/UI2uei43xawjUbSRGcI0GrzLbQQ8CPKeV0vUpQNCg0hdVG22jvO3Q7kNwh41e+9ExJKfbuW9rJLTvCx1gldUMw00IhamTJ7UOicTYZtrr7WywsKTJ+sgrU6SdaO64wMhFBVIMbo4LpK6gf4lUDyakwlc9R6jw5lCzkrHrxWZkboTNodT2lyWZG18eQUKNZzffrDvQ7nGeXE/xuAv18rPaexF5RtZHKu/AcNVxKTK0zPqwGZMH17oHjdOQ6qY+C4Fq4gmxm37mcrColTxzWrizkhJp0GKPTUmRqOGiJr5AtUNUkEcQ9reCp4BB/TuFESOvtFfPlwu+v1RFJLI+rnMCBVE3fL7I10JHMXEe+0QBpn+w+aOXK+XWen3HRL4McYSjFA07xtIlhkxSIfgy28mvadwVzEWUGvl2x7AcjpO1rZ7/ADK0GkCZrAh8Z77QArpqhHeDtXcPVbwRlVNVDbLsGZyyJZrqHFiNV1I+3xkiJhjTnPWf/v6Oa4eM7SKxPZCpZ+Ouxc6Hy3xilPdSmqKq9fk4HpSdBlKrNKSBAb9eFbafGqHMUfyai5YlQi74Ufj97DvCv/f5+SLfBKPplzzchmDuVRaEUzS8bel3JcKA45VlcM8lIcaPXw8KhPA+NJnwKBAoChMRHhmHwpRd7nGmXHDrhzK77U/G9FXk84fzLlWdOQwFH60jTZWOP5rdniz/tH9920XKVjQQ65x+FGBCv5hwvJEVP7ojzVM/omNR1CaHHadmGAZz1VII0DTx3YdJYVEYfLneXoopBvZUIs/Yx6Tg3HaC3p4nZofJsnBKH3TddtQS1E3gv2AnFAX17PqSYIeLOG/BlohdkZrj8iY3rWbrMQDGQJMOhf48H/H6sk/ENA7S68Fp5dJim9y9PVhFknuAOqX2VOvlqer39J4WDI6LfRM0hrhZT+ytmerKYF4wCG3eJb0WqY68owilztDdY+kjRosL8j8Aoz3Ui4Z2I7WYuLKzfKh1L6DpzRHH3aOhnS1qAK3nkETBNqXluXx0bhO0Wb4ND+l4x47cRg054R9TzUW3B9A3CEW1u4bQLUcRJC9Z8hAhoTq5dLToST38aaqevoUnc7xeNuQ+8G0+/NjdMLT9heoFWSWyUDshAG1lc8N3PdK2jO/ByXnB2nagxzzw89VSaKFXVfYbhiMpg+E0nXbuxO53DrSTq7xbx2k3Lc4v69oYR6pEiGbvEWkl8uR7ihgG2Td5JEKhdgNtHmwVU5nICE6lstZ+Ye/6kEUL8xQ9SbxNEDh2H+e9GuwhwAzwtEdlCpFhbnPAPgbarR6LFBniLUE8r+qKSe1PLh03VhZdA4OpndXU7b5kpUpIGf04EOR0nS3g7u6czr041+6lQBvOh/ZN3YZ/NN2KIpuxKfA34COL6b3oYPBIrho1sogiEpaReLvmH5J6Pl8Xq2MhSwyvsg0Oqaq73w/rWGg5NQbpih1xWJHizC9K9rr0I7M3v5vSu7Ec+6stdKVgBSWC3J65OLRnzpfVJhBqHveKOjjEqg6V3N0rD9wKlw1q6sr+GbXTdsBxrH4AxgQRgv12P316z5p5jtwuon12S3lSJpKgDE38BEP55v0zkXRsj+IPCMNBhPD9lUuUUCQD9qJftJUq49JMedwIs82xTtgt0A760FtKN0L7k9SHbgTtOS3OedE7qBSQmBjR7k4EgKQ8I4wE+qAE6a6UbbQDDeBsttsZFjzFpFq6jQM15YO25adUnaR1RGksD8byTZQ2sGstb6KQcsLPNG89SxSLi9HXpVp8NBtSqUlwJ2zHkBiqcG9RuT/48/C2zcIEXaKf7iCqlGc6tOBMKlw2YCPE2IuGRcUP1s24ruRdB6whHuexi/ZIhLLi1DeBD8Wf91k6p/+LmptN0ujQl/zbppiy963pcsDaZHlwzGwfdZNAGNGeLIpmFcJBj9VyG8c6IKmIhMXm8Z2nhd/8hCQJXjqrvKuL4DISR+ay94/Bh4ft3ou9rHxnCJliHFmG+cu+j96f8nZV1I6h18Fn2iXemezvcLnXaV9AZvNisoHO4RHTJMUItskYSkA2AqolIBkk20uMcU/FiIXIJrKYpJIvDPmRz47Ak+VP/PCkcIEiJcrIpL2iMGgYKoXhJtTOynjT3HHip6pIZxfxiHLBpgYsJ1n2G3oMC2qNq39wU0N8GfnOMsOj+KB1YhW9vm0QK3lKsAIcb0D89CSaTDugntp2ltrH1SbJqqDAaGw6EmyLsKLkw3u0INX8ykHGCww0o1SSyVuXP5jJKA4GiYnvVjNk4fHxYbbFpXJUSt1Kat1F1Ldtqq4FjQDx26Y2Qe42KVlq3ErAEbmzGC5UUwMYyrxp/MdfccUfFqvaD7l17KJvS5VvEmHyySK88d847xOReoY+wDLh6QPsyt74DhEvuB2Lz8Ft2PbehACZglMo+mMz/e2nyNHEwGQ5QWYP+vKpXF10XD0Q9RecCcL9dTJdZyxC94yDUgkDbduqwv4ieFfZqXtvhHwcW3xyju/XhWhvEuY+9yFSWv+x1ov5HhSi3PS2wIYA3SnfLdTEloD1ukxWFoUgQ9mjEQfd8OgNQDBpuUjJywDBOGIPaOGUyzbzG5rXS3VM6T+F65w0WguerjljNSfwBhsANMrySokQWhSHS9vikmE0p4hDCm35FaSizT3lVOU59QSlBWU9NFmf7AgE/WYsfkBk6hsFJcZ0rJFvYMbP83ovXkANiVZKbdKaZCcgO7eWLobFPCoX0qtMOUmO9uBsWQcg8+I59YXGLvnz5gJ5q8QRvE1G44vEdeV+CbXOAdiSWeSHH21RTPLwKLXIp7viDw6OZFqyFYOyTSSQP/hTQ/iPmrDpUny4UKzmf2bCZQ5HRvOq9bjcGH+S0detLeFq4eEcLx3NUjY5pVj/60xatkTLwfqfqONmoWZuB1PiMwM//53/9i9vmZffhqE9qRBHSpoG/rEdNNVogxxYgkE9sSk9E7Eaf5gFNW9jPKcIi7qO6OjGJbmWZldqKKkbhbmMXdieXOY9zpNuzo5vVc0JHFtOfJaYrGh9LIXPl18HKb2B0PnAoOhwPipL/a5+dQv6ERiQcLbDzJIU0wRWTdnIuiV9QI7rw6CFx7opyRRTdeLka0XW6IUBTSY4J8mUIU7Czg3XowYqOa75PrMb85aPJnDbSMgVqKe0LcrSpeQs5Uxfkrm+82cFVPIGX9LkWQsb9R2uSvR10+ay19+LsVz3MG4fqo0X/nweoDlSozaDFqk3EJ7mkuUAfyMLs93WV8M7fjjJkK+HC82gQkeR8lptvZdriqv17rne8CmWuRzA8Mxofx14Q1YlZxnQZRFKznCz9Md1H4gPAxnYqe277m4z3TAbkTI9XKmZFNXrlt4JadEX8IhHFGRmQy7j/GTe0BDKG+S23R5+21KMtxSyubqiUhC1SZ25pw7l5lKPsX6yeWci2mQcmfIEf4ToZmiDlCfwPPIXxrRO4o0U7YLEuRzwYHrl1OybRY1NmxdRWChvIucM+p5q718ukFzYBcvn5VomXi1h6VTaJL4s8ol4KkuLpoKf+2pP/ul6/Kid+MahMIQ/GVOG/Du3MqHQ98x92lPGPTnByRUeRTnZ5Qe7WxgtjFVx+LcxQFi8sW0eZ06VxMaQIEv30taEsaQtkrqN+wj2Xv4w+8e/zBQT/z5d4zhW3zntAuv4tS43syR/buL07C31+GlfWFdofPGIvz8tVVuTErzRGL3Cohj8Em4wVVFBsOK32LK2t3lk7S8km/soa30ci9qb5e7BF2+AY61KnKIFAWsfL0kdK2PvNYx4EDCFxfP1RMdjZx1EjV0Q14DmbcHSoaeorNSMNCBzgQn0wIaJ3wt3PqjJcW5ScFr0tdXAyUzX7tf8UxS5InjSX1ejzf4CASIpiTNQ2AeecWEcY012GnTrrEdCiad2LkZUVbjDqO3zbh0vBYaf82NOdF/GplM/RJrQdbNcZ7GCCC+J1VB++JGRcU6lfiiL6IzH9o2ST5bx7i4aiW6KWqybSH3w1/OjGKYvLYgTH6F70O/6DpnVrDt5MW25LzQ4GcHt/6eBfAOQFxM8Px+4FyKjzPKlob2LP2QPKJCSipojue03fT7PQDHqE9MQOHnMjfplRFX6tucrBLXKQ2IJkTXImXiroZoSLDi3/Dxx6TBb7+IpwRrMpyAlcVGz8eEed15GJjRimj1iDa7Kl78SeW761jPzzw0WjaNNlKhrwwRenQXbBLuR2FblPPVjER1FjY9TXCsHbVPrvAaGH/Xx3AvzHZsCXsdZyALxlHzV35+IfPL/H/XXozW3N3hOfdZvh2y9O05piTlW98SqGxxTazt0xAQR8JtHRPjOGsEnvHkSqeZZoLUBNHjwB2W43fX6+G9RJI90o++9Wcvwhz7hkpd1ZODHMo+0Juf1ycjyGVDT4tqrJlqB18/fC9UWZuMU1v08ekABI5RVGcdvYUYBPcJie1UjlJ6oVT3O6GIIydsVc1DbCW3r+YYdJkFuKABJI/M69/0DoCgiEePhk5tTZ4OJGHly9JSGP8K90wecZvLQltKqYn9+K/aCd3HGyc/i7lCFV3pukXvX0yWbJ/mrhR6qi1Vut9am9r37TbdjLOw3vQWo3dulS89DNp/4+iSC4H015sve93zXERddUgaOAcLJR/5MV0tt6Zdc3tEpc9FDT3ZwUhi2Om2fwlaxVlgyC+Bx+lkQhdmm0daafz+dFVTizcDQ3hRCUQiSL8jeCv1HIEF8Sl3ZIuyc+GkMh8YF8bAzFt6yJuvpc6Dj758ycR5D8FWCIsHcKZJqm+vBVWfzOV3LvQoh3vXCDPiJrvXD1xPUGNQu9rBGyEF/MO/ssFtUagnCUGsm5FiDRZxfQUoC2KexT3IKqbDEtoIywnjGg8cSsWnTlHdNBbNFiTAKiPoYbaVzvyduuXQ0f9y5Qgpbz+kHktEJ4dEX4Op96XtIidAoA+dfNyu4aXA95S37mJbGISKZgeoGYWspuiBM6fOSyZz3gHgBsq5ArITzNcVcUunw5fqvg+BQjNzQoHOiiV4EvmQ9AIzHJx63zVNBct9LDOpv9+AtV/nVWGa2d+74NqHZOzgOLt8M/c6FYPeKmLE3QrZfsGMpJeidlHXWpQ8eHx0Z+8cNvWCU58tmjB0hY5SXej30e6cID7vhlLl6/N8lFiOdHBWuJxWRBJsalnGYZ5beOlZRy6oapVoQY7kZ2cMvr2j549TliM/pMUnTrVC5ZrRUNwbX9bSRIsxj4a9rLIs5lhtPJuj5zIECOOFdrCHUTrvMpE74erDQLTNmkbtnSiC3f1IBTBaUCslMX81KIFAy+BgiNfymZgPgTfUwaUJTll1WS90Ajkkr4O4I93CcQ8zyMtgjAZVRTF93l0SWQKcYouXT+yEealmpz4ER4eusFn/qg4USkd+xFCX2Tir7VeXD/Uaxx4pS7S+jGfYVZGs9RENOkElNsNj1asmNslKBQj++xEFu4zJAGAe0djRTdcZtAzOhIfZHNXTXpUN5s5UmJMAUw7GralnZH5Zh0/REO+beMP+FLV72EpriYumPNNBgi4M6hVpHz8QFl1ZbLT4FW+cqe2jCRFlOh6t7SoxCTS/mPKeqjy7jEcsOlJpJJw/HKDk0Uv0gY+N9gVBPiDchyBbNkQGTiatPAhAiiRbSNS5e25lCg6SKNiairKJ0LeQb/f8kzs5QZ3UdDUPUPdabzunn/+B7fA8gDeWb0gnTmC2sPuvqnmjDQj52OGQl7qkuRoqzFRab8oqxl4xK9QvWtt2pfeaZpZ7puaAQuud9VhHD+rSVPbBfwa5Et9PZmahke2NIrGTikr2+3bxgOfTd5lzT+rQbDFuqNPZ3g43OH5jfSiY11kI71WWlpxLK55TbdFL7v6Zz7DX0wtKxe9yceGCY2Kuu7rs+H7TTA5rLz6e4k99Cp0ac4FgplwE8+YIPqq+552+xBmpK34k29SByGm9CSaoETWYp9lxuCPSHCT2WV5LTbl7ZXu6vZ5tgdlUfdPf0hXlMeUAiSEg0XdLiDCBGqDvpv0Sb/ZjdS/ZwhyMDNYMNG+hafgnd8BgNvEQdqnN/TLRb9MVhSlb+K3kDtNMb/q4baVjy4T/y41RbNeWAoChyBEFMNtdVsVxDUkbKtFuPoOTxgAiGnHm3IgtL27bh8EVBe56iKsKVbhbGqo5Jm9BPslQ1TPVIBXcolcurrNY+9qICRUjkfbOpJqXkzlQrL34T1/wVlTRZPncAjtQHzGMc7iA0JQDBRijqUdEn/W1+Qe/OgJOULwzvgMY/KkagcvhoXfuGlPMbjhnw005FOPka7Q9ida7H44YO91Lie4LnF1e245E6Uy8/fNZjCba+vtFmqbNINcFEH2p6uv1XtmC35utNzAVn2JOIYEn1fZfeEpFTYZKWNuYFgwv4bd34EY5zlTgr0rwqTn4lkudIo0rppjkxMpy1U21EQX0ghSwhrcYeTGzdro2S6XECRzNivIToA50vn/yPMWdgohcsBT4JvuIRE2Up1Fg66ajdEs54eNGALwDF1aZ7rTci3GIT7n2DlsMG17IYOwyGPpbajM/2JMwvasx55uxZflzr5eMsLkYJWBgp8Hv6tH0VXyA/gsxITWeX28Mu5QvJbvHL2Z7+GUBXyif2ToGXAz2qF13Jt9WlYL71TbmXFCF42Ybm1f2AzFvYHN+TEhZ2HhQMv1snXICjUxIIHV3KnB3s7kkB8RzirZYNC6H0aiMqGBnes8p2IbHYSZ7LuYlKcKlOE5it6ixsUlQ8wTFhCU8bf39PKk0uhbtj+h3GUwtW8ZGGlEiltTGsvFs1p0CWRH1MBFnFJAek+DTj7rXnCK8SXLXWLNrjGYmTvN/6GKgVqjLiT9TuSMauIHgRtxMs+TatELHtpk8F0VBrcJD3SYZyYvw/dqxMBfXUoghzvtUSrrudQIrh4//7q1Le+KTDXSH/kSWzatDk+KkWY9Me9dkRwYl5Sidc99nQvEl89XMUzJJPj0UOAgtFi2cS0f2ZDl+Xx+kO7gH9lmGj3cEgd/gisI5oCFP2zRTvoiIzybflptnyPb7UG4J1GNh2eYuOrGq0TzDXFz4d1+kEJXMhdDGXTn6saIXgUSjBYxXozdhoeholAkGBmNfjJn9VLFuW3TW/fMg/eMyRmhuZNFWLWz9p/uTSP5PYK0YvNEaVcGC5mcr178AMDnv3hNx56wqbdd9whLm9wzumoju78cI/Yp8QLwvPRse0HnzVx38bf2U97mx4I9amYWLuRwWrPbC/FmWbB1MylqPqXDovipowpy/w4JIQzE/+O7/GA+SQF/WCzWOtThbmxjdZKCxU6/aMjvfzEwRe9NRsNmxU0WspD9YodTUeO2Io/4ff2RVcDNBZvOhsM0w9JC7FPW5/8NkKC67fZtyeTT+zFEfJ4R1+fmUKbpnwpK10RjCOAum4T4iYFyULUl+urZKABvrniA88F9CwcMWQz3TWSfwlTpLVMazbJDAno0k1dMGDl4Tq7ypBxzjZ8muhmROsvlYahuZ7/8HifzDD9oFdrnamszkth4jL8a2aJLL3GGM9PYPcXvE5xXDjvrGPxxipb3hOcLmFutsTK6p5Mrwsy9IzGfzMoRgLoMKt/V00KXIXZ+uvEY36+RCXbXLpVcTz6GZUkSHeWDkWxYjyEct86UqW0LCsESNCFgyPka9yoDZJTLKrn2nLijzvnRxQO5TwTKHRZ4ItFS33G9swxGbpVnT9FxTa3EE+PlcDhZ9E8r21FclAuASvx8jmlm4m49KKSudi8g5ROq/JAI9ZhMn51uGfctSnYW1oD0zkdzfpxcvcXhZKQZ2BjWwRO//O+VX7zjtOU1StrOIZl6l/MpUaL9kXJzp4mKzapt0EeD0CWFLRX524Koi03IDQKl4eyIwC4k6fLYxyTvPj89CwyJY/6CpTJN69YxobUw0tGheyIeaSw8XTO+klFtOV0Xo6zITjugWZcvcGbpjt0Vm54Vsk7GdqxM/X99fj44yYiFgOBjEw41QKxYYaVKMwJwukNC9i7gG1BztUqIJdUuNgupUaqbfh3dBsBjSlVjvDu9Ba3VaQWrAoEJX+u6lo/91z7mtaxTc1iAO8xMZwRdFHstZS8N3OU12qis4mSB6h9FbUVKnz25de3n+85j44+Rv9q5O4eEsd7tdrh1Q8XHT0RO9bSwe1bYzGd5FlsKp/M8BM/OUkzZZC8NAQmyQ2i1LzK0+ecD8SQKIRRd672RWFmY3mC5lWK66WMH+kafL3w6T4pXJWqCBi13QqIcoXzd3ZHCo4Rb4eIizqEo1gtK0vUfCObhFsCuIL7FwVLxNqJuZiWfg5CKxh6bQW3cyZ1YyfxkYSQUF2YXPMio0PYZk9h6/N+eNtyCgfy0xAeFH3qmpwPGMJ5bGjU46J8vO849ysa9ogPNDIEg2yZaWUUkpFSimlFIKQlJRSSrkS5q6dUbM8z3PD8qYnkoZlmOhlRhIENONYJ0AdYGVuai8oUiyefNHES6SYM7y69Epm9uq4NYwgvHhQpr9s6laBOGDmIKvibQdobfPQLc7Bb/8777ogKL5zdg1NBc9ylXeNPtSKB26GhoBQz8NyzOsj6yB8a6xs+vdofItpgKn+MXB04zwSxDHXnxDFPgzYQ0HWsicmUSDU7GJzkcRy0vR2FfgNIz+lnIpZZsCglTZdSFc7DVwd29nFlwy8ANi4kNGOpEx3BmjZMy4fk//vpcjbljLUuAPYmHkaTRhcHsMyM0eTWzrFDkDnG4cmQvrfYWXfxtuNLscxiARkIJIctbO6KtVYtQCbLXIk/CoO7MzwYoO9r0kRGckPov+G8YCfIVz1EGAN0KSaJNoYHzDK0x5ugVQugDJ/LvG82r2VLH/Ska0/F+tuhTq+GI8UPK3Q+UIEkX7/rDBpKvXl1PB8AbrQBYtHxxEF1tdwBkR+Q2+hI+qjhHTrd4ZxrMfn9lF/Uxmkzz1yT4uza+H7HYTtHpQNIxYMGcBsXr8vLjY6NI92sDS2+8N2jPyRnq0fbGmMeNAE7+8BhxYJq1zzROYxkCb1eOYQGzDWI5gR+6Za4I2HwA4bUXtKGQQ7cwrehS+8l7B8x0zrom4JcYAOaGkyOVuu9sWBJRgQVpFZB0P2XxkcgALrcBsOZQxOpNQq8mfJAWnHKsGmIq+H76WVk6i9doRqwt/HSLwvlXIgpvNbVMkrCgJKdBzZd+D3KqZqH5+NBIL81MLyXJwGC81px7EmL+No2m5ji+BsQkRdKtN8czxkifBGmAVByDWOzN5hShyndUaXdD7wHgwlN7pWw0Bm1wcFg21O32oafYKSbcmPMCooaXRIujKbyUGzIiZFPqCvIGf4C6yNaxqXB/RqSRpjU+gKzAcG5Zr1uPBZ5IksmfWdhmXbpjGe8scruI70w+FMLNy7/tjYB1kEFgMjjZi2MOoRlpRe7e+k7DVb5CT2e30HomX/M17/JHvyf1ZojxpOgqjt9/+Ah3cY7FDWOx8TknK8x2Eumz64GdksMooTdJWCQy/bypWfeodNMbCNVJ9/gh6Uj2GLzKoWHjFw2xVEQgRQ7m2NKOCCkT3ND7eQ80cEkEa2iYuiBEpxGex2bIybJKjLu3Yw8hT1hvc54f/09QT798IweEddJv59jhm2FWlvplkpJ52gnNVGc0P1Mj/mDVJaNLpxDKWfU/DJ6GMVRM/yGqPatUKXG6cWBIvVAzU9EPuSOOSwYxWQxfTq1nonrl4vyoPQM8N2G1Kq1qvAT1MoybGdDNPtpTFV+CzbfxJIPw7tUgHbxwltQunSEax03iLBSjqsvTOmck4mPaDMvOkrlvVMeSdOcRUzytAZvq1+mWSjBMcxBDeMJYYdFd2RZwQuoEBWaesMVFFndkAgjmwcWjJICj/4A2Lu7QlHQf7KoCEAoaNIiHikkJTZyoITvGV9wsmjCl9sCMMbhvgmcW2dqxaM4qX7pJqU6dBleaPqGKRiW8w9+Ytal1tzOk0ZM2LVe82tjjcxNG7cBObkqele/V+ckRPlcjd1qMp8HcltrDl7iVnVulKhbF6834bB+vGw/n0OB2Y1So7xNkAf3E7mkWQoIHMPVhPJMw65z2dpCVcX4mq5xZ/01wfJmXLlaHGY86RSuTlHTpmK9feGQhGRr/ux+qySdXWH316zPqGaJaD+p8aQc6akkU1KAkdLfOyEU6+zvC+TsrxQaudS2OEyGQcMKQmnlGbymAUuXS8bG4EiWupCg2DjAn30HR8iQ4p+nf03oQ5FINCR7A9yX2rf9r3UIkPf7dMnVVBz8Xx8cuQijH/feOh6bDPIdLHmq5mXvwX74Y3+7ecfG6jxyQYTNR0Tp21ZYnU6cx3ElF+9wPufEFRq4de+vOant1Kio0VMr4tppEunUwgd+n6Z6yN9DzugwtSv8L4n0pPTfAvyNIDGXj8X362a1E1sHS9F/Zg/X5y0dmTJZ/yEPFZfE7/ErdIMUOairpe0pfssVw0DQ/ktl1D1h0/xGXqLgqPFDQiL1jctMb6OPfyWt3t+9OojIDTAx1sLVMGFR+YObJ1tN5usEENbs+zLCWlTOlBqhg9K80OGXQdX6up6S5dfci/9CnT5iFl3/6IKhrQm3XKtsdD0mDZljqCxrsHUws3IBgpoZnvptKmhcMG11qWg9xo8pvcEsfoYuDNsmD9XNiwjT/JFyA+RGsQFFXrQkRx22uPkab+BzZ+9TkzPkJ6/QOtda5wr3XBSeefdyZlod9WmDO4ADvWP4UkO+lR4VBj4rmrnuinIV8NRCBFf+9f1kM8bpexUtfnmJpaF44xjWmayGRTq0laZhEKBMDYC5a3AfnYC01yP9f+EiBSlbQm+NGRQEJKS/euMH+yiFqJ4YUzcKgJHhOZv9bR4mIi126dx7l09XDgm/dYIuQw8UuXE2/nAtMPiiazD2OgblTlTamkplnkXXTI9TlFTlENT9Jf3fTc39+Zvu7kJYx8IuN7rj/dtbj5r/xK/jk8hjXkoi/wKsQGAeSZ9YoYD6JRFog63GuNVm3mohTcYX7PQMI3W6owrwxdZN8cQO+JQC1nPmMndnHBQmUvF26XsYJ2TLc8+dWChkyqOEHNgJCcFmHQBm6h8d7zC/dOkXQEFFOHUBaKTQv0Yi5s5EqdOfJAYvbR8JsM8UMcwTxM1VEojFe57vWI9Dr7UYZMnCU2CELzFkRYyjTIKk4BUiebxooP+Wi6vcBpVUu8tw50gBzyZiDlDikXCo01NnfJirrdAbJWfV1UXC/WglgVa7+QBz6Hr3qp4qaymBGaOAdtSUN65nA8+d0939y0YyCOPDPD0U3+hLUKYEogjWoHsaYQU96N2wxRBR7GMitKlAXL8EJHPJgO8tGE/MPabwR3H5B5R+dX4t1IwL7vvb689kuIcLyctD9FWW5HpE4fVzfc+0K+VWJP45UUV91QCwN9rr+mSDCnfY3A2U0pxN+u6OMw6PATzULT8YaQEe13K/DgTn+aurDEs5+bodpb14Xo8QJE2LdJ6NEARpnIRuENRKslssaZS9vE9Bz2yGkkhn7FWdwRzEbKb4InEXRYWngfsTL2dzokVyNE6U8ZYltMkbdzD+DeJUaMAxFI/0AKQEkFQwIYVRHh6LSJeMFYVkZVu1TVyBeJe5CKrAsb18WIe/xqO6/dN6NTiOlJxjX7xlna1a17ebFM2HMN+uBQKrREcegwm/q3rjyQp8GiasCU1Do42Q096s1jbVHtJAIn5yD+aCvCzXJSDJqY8Q+Vrr9T0Z7SqjaPRBpw7EY+nhwkqSHIQQ7bp2VTCQyP05daD0o845ysESLAtf0zkJOB6Nm26PFypQ1MJKT74efKG1HQonJymG5SMTw+Y5EU+WoFR3We3S81dgH8GrzesPSl62Kdivo8035y/68RRfMCXToFSciJVcvjCi+zayRa3QlHFPSZ5+p5L9TqHcabZ0W2OalWFrXTU5R6oDTWWO48640XOzQ58m5XR8kY2ZdBg7EFLh6aR2Bn1u6Bk1jltZqnDjHG1ak26xURHMaRBh136eNXUBiM0aBbCgFH+uXRiKn6cCQCRHZ6mD60Wvo3vEvaCKZyJYVSZguAg3BaGsCMmLJyQqWGYq+jUGBYE3qqinw34bBD88gqaTGNZJUsoZow0iAhXfIGn1/TunGk+42DxWvp9ybaX2ZRMRZZPr9hRig/5GbvE8i4sn8HFwbSf/yHnrU3GUQcp+xoxsUZKg6G5vZz5WWvG8ikUK1pPXULMuH9T0XWsAOzidXiJgR0o6VzfGrobOH7qKljKiYNgC0/OCPz+gFC6weX5NBfmTdhvQlNRGi2NAUXWqNUmh60JUMIVXo1AqhQu1jvCadRZDnBxFMmY3buGiW3jmlU2inn2XFyLygnakVb3/VjDYDrcrOBH94ylMvwUQklIWJy5MfJACzEpw2Yb1+L+8ZEOz4G+jxL4warcy03u1YYlKLE56fTS62Ad+NUgnVdl1PpxTpdgNN3ick46jTKZrD6HApCKQKHkwx6//6DJ/tVJp/z+Jk11xHVBsbd2Las9BwP2QrZ+ym054bvchBWXD6CB7XpsDqHlm9IrQSytFIeekpM/ii7P+fxBTwfuHk9c7U0Kf+LNHoNCvE3nbU6LuZCxhLko1eAmkdftyuJCbT9b9G3LN86YXxpIzQPZMRucJK1AlSulCLkuaeNoamJZJ/8AFDiBcXECs88dHTPAKI+iiMklec3HQm8SgNI6/13J8OV3PePkIL0WllxqUOVGm/p7w+bTTDyBOk1Z8Vr4LrONZZpc/bH8NI++zHbNZ11fgYb9biTcv8yu/PkLQ1wDtriZbbNzj8OZ+TD4Pq5rGc0MpWf9ylA+qa6h9bXtqBaMGnfVnPcvZZWPADy4idwJ3aT2Hh4dt1z1+IOlYb8mYVsfpvLvG4GyY2/ACvNR7Nn6THJfrso6qVLu0bJNYC8nqzd/5KONaLq1b96Qp5P9pFN5jKR/Aj7gSznxOh0NUC0Lr9BzkYgHv87Llvw/p6UTOBxU+5WsMn06PGz6snmX1aWL0LEuLGpH7ur3yvVW+1/LZYyAC0n3IbrK37II9NjLoLK5gvlyewmr9hI13c9FR2jSVNeCrFXQwiHLYKBJ6TEgzUYT1VrHLyL1oQV2Ntgpnzo5FvZFu6IDvVMu23ysMB9F18BOXETxGXjLknvCkz7twKjGBXFcqP1GWTHA7VA3COh4x96fymIlXdTsH6AyiXdBcU7w3TrkpkJKbGniweny1dcjTXk2jXkdtf9bzxhyP++855AZB6qsDcWbvIVpDKSb6oQOFlyWTX2eYL4OvfKejC1wWd/u2wqfQqihrS5HlHQGGUsulHbgFzaRuZPWyboQpH+rQ1+l7y8kU7d7RXk4aNZ1EZdFkdyIDGixTh9UyO5P6jKHIlMJXR5MvCd5Fjqfyq+xEVCyriad9jWyuGnelLBzH8RXcSGP8/7m4bfvP/aw++YD0uAgjMs0OzcL+/WjZK5f1iO3dHvqhp8A1XFcqmZt0YAU38c520UlguiDSPkRbfaHVG6we/sDfdEMvLEjwMNd69Et8vVujrr8ugeWd0jOBDZhEyFTlZjO4NqV3LJdtVOLSwXXQAw/bD3AswCPHTMaB8BX4utGNXtyM7hL20AEIh2JYHe5/ZXDPBn5Efy4QeTo+1Xt3hXKYzD1NDYh8ZAojHqfKZxDme3Eg3YGroVHgdH/yVOFgYFnQG4FKueZS1XLzAKhele8stKBnMWC5OK1438ZifspS51vF4OVVJR6ExH8zj3Ra0Grp5Dtt14W4dnQqwVi/XeTH5jhQ1pUAlIKTOJj5KUEgxjDbufhDyTAsCc4Vzk/adgIuoJyVSIHLWT59mFqDjgpngwPdGe4CX6XdgeF4I8gb0JaJ2S/vQ223VK//fl8+ubt/UksobUfuDxzjHHYhxHULhtT5hH2dnht6kkvSR06jtjdN6O8e2C+gOqi6/KjdMY7rnQTWhjLsh7GJlgE5AhuLAZcjVXBB/WkWnR5mowL+uvUjlAPLLej9r10w8kSSNdVpDrzvVZSMrgKbElMF9FwEYudM26lpxW0x1Cmif0ANTKZHCe9iwwaB549AbRnUwaOtNAwIv3rYhC7P6BZhI0dUipvXtAvyAp+DK/gQPIwcc6CM7t5Q2D1ADyYQ0P1VYHXfQXeK+aEDaES0wZs6hY6+Hi45BW6F4eInaDJpdh/pNPl3xpLFGrPvPGFYLjAhxOMtFN6Lazg8w+bW4cM1tnjyS+TjP6myhjVRnYUHpTyjxkmnjFWDVB69hQuyFRCQNKKWAwAS0Qx9/v7nejNSVFr/jWoGESsI2cgcj/SgczmNF2auR0XC8i1bxy3xyhniKK7nPmFJqMgywdgPT+KO0AVy0M0OH3diQR2ye4doRmuR0zz3xeAs6pYU4rSad9Mhf1m0QtVCiQtAf7Br9l+feO4KzlAU4qxV3oTYkWXZ+6NTvCizoknsaDaPr8+mb7qOH8+NEr+BRWTN/ECOyhO5fh62JRLlGkrPGUMURrm/1+pYB6AQdG+ZJ3foCH3ptXIkUkYnzlWeXDzs24QRvKTeJsFNi6LXQXuBtlxjqiBdjI7mYppU152YYTsyo7FXOseigCvhy3XYLa+Hkd5+MWNCRl9YfeHMMutgSeGStgdEkEpsSVdvtDTIYuXceuhugr6WaEb0cphXdLw9dfkg3Jx1P/ToXhOirTlXwdpIUumMhtrdvYXi/3dbVp3Xz4+XvynGt1ivoDxTmQ2s7Nygoylbliw9DeokgLkWO3kXgM/XHsTFtjJRc5Jc2mk+w6og0wZWg0hqwpVgWMUEHISwYkZ7uRZ+t3zxZBNB7eRAmbgugl2pndCvfvuT0rfqyg/7qFoeaX/+Gl2CFGfHPXDEluaRwZ2hH3ki4qN24i4wkKaAXOl1JDnnJqPeTqBnI95OoE8GiNVoAQi09ZARE9qMPrmSA7N1McoLoXhpc3V4xOD1rXXgXQXeYkrtLNOHPXkT6Q+uCaYVnXB9nX0s7TDUlIf8y6u2Z81p0jBh1UrDRxUSFFK5b+ZxYf9hi9u0cRlG17l7Az3Nr/ZX/bckERglKNIEvrFgdcEjfHS1NHQCdp1sjIo2tD8qyFapwdElTP86PkctBJSBUghlSiCtVXYnGRxWFATeltf+RKpVCtorHUzeFZ6t6VF521x75YimMT919IAmKBpxYuBBOBXvgsB7NW7lh9GpoqxyJ54sLOqOz7V5yE8LiRasKEOvoZ38lx01SetQD4xJ9NxsqnNcPvuCusqwDBJZFIkvGfh/nYRJfCLrcVv6Z0qcmWCrQhUptMJMlkb1wcDjqslduAnN162JXa3F6+T4S03fFFklWTWDoWW0mxGNG+yf4i/8F3QcKUs2brYyaQITA/TAvQSMweIOaLrEvCz9cAuv4NgG+vVSAOM/0EfqrGeVuO9sXTgLJq1cPjhjOIU5KIfydg2PIPVxj04E77fg5bmUMyqh5vUZhWdqbML1AG0dZPFhhZH9exCreUavQuYbYFkCgxSaMBBdE3/kszGPK3zH5Pyp6280wAb3kHguqRuP05ripDeUDJuqjOG8H9aTl+3GFlORAasgWEwG1USjEe3Y2lHOvEYcJ7ytvhcf35l/vyTUKBNskETDVD5agbzJ7vGkEQClbrJd9NfoF6ZS8Sw5vMmsGlRPWGfTHNtvmMg3ugs2kSzrhL/WpgWHVxHPm/P83rTn79NIwpOcEgV/5ejpe99kiwDiRsEqSXI5JoIwAyao8nzNJE/rZQDXnUDmlBE9jXz8Wj9t4us3XAIzfutBQQIM4KTitGG1RjhRlT7pRAQSsEZDqpVrfMVVfyaV+FVzedNvhkJOWKz0Xd2hs84f5dmnTrV1TsdiU4DzL25KSf596l0OoHA3ARRqKhHkisn6Fx5I1yMU0CmyCjlkyuMdmMjk0e6Px3nLyVfEHnZMFGmRiqheUjXCieFbZ8e5ULKRprDjIRArUwtSmw8xc35LHkeAg03PUuIlsmkZzI0qwrYQj/hizoWeI3OcuM84BuRaTGKZxvzQM7sHepdFcBVOmRV1Mhm4MgZXv31ELH6q6EvuMkgGOf/OrBXrP4sJYd4gfW6ki0Yfy4weFYyC0w5AWcYIHJMh7KI8/tRuvxWII/zzzHWpwz4z0zMbkcJtCSvRumk9PSOIEweIIE2kavWQKxP9MZML9YZVNWmV/l0L4zJxZ4J6rsxKh3/R409DO62VWZjvf5p+NdjdbHVT6VRE+rjnQF5/HTYGizJeC+QW9XlvFszciomvO8Y7ljEGivVTO572ueKRoRc0VKYeBIxIStFzp3YByP/GjWAetRaeUXRTXDnczfQaDJe5oldu83TkuGcB2BU1ULr8L4gS1K84ESwfhTdEGzwPDTq4/ESUHRjHURNsLhs8GP82BbFe8ZQS747vU1gsUBL4MN6DdM3Tw1RO6EQ7CCRlgFC5vJ7y8bFu1nMkojTVLs67R8AURc8BMl0fm3JCY5oIXEHcL/usuMQQ/OLmAm4G8hA3sQnOJt98RqGk6OH1FwJkl8tSBGGhWgiJ607LiyVSlxIISuP36akUxlKYq1j+iq5H3R0KaAlRe+vxUwKKzERB31oPepBlk8lgU6qMWqAz1z7tv7yXaQKg2+156MZhjigx/8yDywrwLqVnzIYkmowUiJlMTJUJOiYHPUoQCkpaSXFS9WoRNIMxrRPMgrBcG2Uv6uxdeRExvzt/HZoyDk/Bt3VmaK7bOIFmNc0uJzIKO/spBZxMaNElNfMEXMoJt7JYZWJJpv1vHWe0XsCM8inFr6w307BA9fSMioOVWfnD5Ci3v1373X4v2zQl+qEBydw/b/qHOvQ//hA/lq2T1fv5Bvwn7VXq1P+S0n5Jf+Iv3Ls/SMwx+D/MjcmMO00zRun/S8l4etCgdpnVq9cBL+hI6sy/FM+HjJkk9qYnj1YHhwqyJyxW38NLv8lT9gA0AT/7XmUwST7tbSe7yKpHPTbsYpyRiEddxQXY/SSTmityg4waV6VK3/Tv/UH5z/Ofm8yrIbyH61gtK6SO6l1QcJDE1QiBhKNrWcHtFqs0nsqPYFYPd/k/dyGzc72+s0eWe1XSTMrtp9wLVhhvyb0EMA5ozpSDu8X3hJh2jSPSNX+DCUPZ/jrZK63oHrqr3jRGm6p6fbrron23ChgF/l/d4qAoilEdSCVHx3qhqmzXMlfcpX2Y/WBzheYssAdzz6tJoESlVFofaj88EQJVrlPzRR+ktMw8XJC5yj76T2xKa6v0+JKGxm0ro9jqiy/02DFls83tUUrjcZAfyGWbMEUpK88cLw9VJL8O1b+i937FUXoenJ3/F6Tbdjv7i5/Hcv9xVTZunYOrotWFcVVLDyE/X+yFGiYL5YjAz3/Ciqq8fratk9u+3yIXB//JCMAeht6wyNFKZeU+8Tm2C3ezT58p/8cnLr7Fr8NVLbfpMjRa/m7uX0//y9FqGQm4NON9O6OW2MLerae8LAwR79VCbbRbsVeAiY5Ff/ll2+aum+ab4n4W4K6XRQvc2rP/Z7Y2Zpssi8veIQWqMRPKXK+657ZHKjm2JUn26DnX+BpPWmr88p/1tlaGXgo55Kye2umpHHKZ91/KQDbRPEp18/X9/fN9T3e/unfYfxHkzW4v0oSYO8LmpZG+Mbzmrmz+MKB/P+hxDx6YleZ5zW5R1TiT2m87efojrffFCpqTVGCPyk8h4EeUzoBhZMlXv2qe3sN2+w4yFVYl2QDB1+zoiUH1qwi5gJqL0KtxicFT9svAcwxfD/jY03NglAd1gSk5r89PUwSag7NXNA1k2ERGts0KuLJgNxPhFcPttoheT6XsV6+VoEuuz77fCjzTCRHLeEEemky4xnMCyqqI4CEhMfkCd1lOMQzF48gKdS90yUPUjuQ9U0fem9xI63ZujibjNoSl10hft+FQ/3pPrPihs+BcNWaaiJXqDQCDx8s6HkAZOrfQT8yUrxD45nzfm5jcwx1lR5F/TKJtvdfNYra5D83nkIaE9VSsIGORRhxt+f0zIaTEu0oHeoN7aggoalQq4f+3Xgk5p68ffkhd36y9GWqyZOrTyCONmaXDY981d48hb82HOgvtweR1ZRbHQviOrYxgsWmrd3GweXFcE5/JCuuA15Sq+UHZLJcL0hmJUTaX/PFZJGi9VheHE8RBLtqKOdeYcrly9g7N7P8XRDcv58r+lj3gvzR12LF1L8uk0m99n5x/BSz/lmFaMAbUcwcUHIiLQJ89okSB6QTUbzaxDAkfJYZ70zx2tH9kYYzEytbEl8BoxlhHakTeGGPBQP8I9hYoasT3YE4nmzPakx0TwHvrbBMC6RbUfzggEAtdhP7mIAKejj2tCKnktdBQw/QPv9d6po/66wPNoXHRD9et/wzLrvpff17+231PDwPv7dt9Zjaj7hbrx7Hb/Vxq7xP7/df+8vV5/T2b9zephu3ny3OXPnbj1hs0qf8PD4ua9rWL2+x+Fp99m+ZI5HkmRPRK8aZMK6UH8TMEj+JBUtnpotWxh865Vr5i66w5j3dxHrmkq5iY7whUlUC/YotqaXfs3XJ+hM7kyX9zI3Kpf6SSdowJNMsk6H30eSOwbhVuWeYuSM9Miy4c2kfLgU8TSif/n9/xTuLwj3pg8XEvadXFhWfLf1ixEHTF2PmgXTEOPDg6YJx5IulD4zOV00HkJ/2c3fJ+sSFNSfWvNfmN+sX/t+bF9aXfLDmlZXyr3Yr1nv+te4tm4FLaz6wGXnj5ZZr58Xiiave96/Y8SX6oM03m4lLbTZcTfxj8QaBB6r9znA0oz/M4nA7ox/M4EWemhoj0wWDGglj0oWRGgZj8oWuGhZj7IWFGh6jwAWB6jujzgWF6jCjzYWVGlJj1IWBGg1j2oWNGjJjzoWzGjVjyoWjGg5jxIWeGhpj9oWb6jYjz0WKmjhjz0WOmjDj4dg1oxr8w1g9Qxn86fACQyT8xFgrQzq83OkSQwa85qmtsgtM6qmD0jG94tkoIzTdwTCpsheM1KmgoivMwkUNwzAMw3CRwZSoLgkWua8ulw7pK0FyD7pbwUdjAkz9GHmVsfQ5v3kYKg8VUcZNZ87e+J3G2Ux0rYsA+yEYjgvljbODoBcl1XFPNrTvVduVkxNCXfqZdN0DGsHuWfrQi8V+A2dJztrMJp1DdY8dWP1qmqx2zAgBEj1Sghg0D+4w73Tmx7GXBWNOFvyDE/FhMYvzcsoD878yzLg6mAQmNF0wt8XEpgdwrnafc+bqRZ8MkH8HhvyJMYcFCsU2X+ZF5KPuRjwP4iUEY+JuI8rxx6YtpAMwrTutQnl/uE7hdVD2miPYvDecxnQKGwIf4vySag36kZRU/lGuL7XJ9sLt40NnumeOU74IO8s5kz8NtDabYMZ3l0Rv4QLw2WQjrgO1QXsYoekqizYQ4DB2vzXq2HYJf0kkH62g7sMnp5ZHqgpsLNkTLYp7hqhtzv6JIUWi37AddSEhO73k6gj5UztKM9YCD8YSkrNjYE2ocG3YvZxUp88U+qJlMgwn0sZ/bVpGGvwBALftMaBWkAdEyXDUAijPRbvsWtIajMeJHaEClPkkbeZ+do2rA/5p3rtSJ1UnpLcNMhsnK/ij7Bh/DD3adowUX0JU4YTONgic+jIORxKSwvyqmodLSFpi/jEqLGX4DLjt35A4OhLJVw6rsvbOoXsLTBWxnZtp4yCQ3p/FnVdnru+MolgYmWf/jS8Gtif8dGpvyY8yXG13SWul6OU5qxgRKhseh9h9y5/DyONb7iBLNK0ER1EWrqIglxrz3jDakWJyHXg+D/Le8nRyZiusfJMcO41liOjoh5RjIwtIzs4zO51X2d4BeDE7hI1ZdS7OL+xlioD1Vc84SRKWQxKoSEfWIfHLQudRvdruUvgcwrceddI2FVUkFJXxreUluweg92efZy47X7aG9Gw3PSy8ObEEK8g8ifB1WNLzZgFW3ov4PY1Sr5vt9258un8NNFGjealLsIYobzy8+1zk5Sac0lETG0aARe6ixlz0sarZyR1CtpvFCoLm6WUb0iN9PodDzsgqInkuVY+Jmuxj1sytdDY/d7SVbabC/hOLwMKZRRU/fBixGTZwdF3isrRLI0XSYi+EVy8LWhXzPuPxBMCh5uQaee4AOi3JufSAqrsfjdqroZf6dzOgCY/pqvO2JNm7hCpUstKMU9ona0Aw9oeUjo/OuDI4T5GdZXgHmDaYIaL4I09UWYq2WKTHl2XQPK717AZvRcKUEjUqTrzjB+XqlSea97iWndKFinuERImOQvxj0Q0aEAS1FVF10Tj4k6pM1ABssP9354j27LtmqNYfEFl/co5onhwxPHn8e2OMjh6Y0kOvz+t0kK2WFA4nIW05cuet9RXAkV7bNz8v0ZQYLejNdBDDMAzj9uecJi/yH7vmZ9MdVffpt6DTdXc4e5YwEKmA5XqE4ChE5j9mb0wYol1e9Ppu+7m/O6l7TqUOsENbqDSlZreESZazJNGKOs1GAuntoy+jERhRQb9O8fmY6onZNFJcuzANBSkhsYcOkWVp6L73r/ljYN05wimH8STOmmc6M6cDsquZ4SfYfskHGUIZ5qF3vWIgKixilKSJ4kRC7z15JcncggB1LAWmrNEsqMvSLPb8jmkKN+TI2UNgvqVJkOQC/p3IDLacCc2keX44VzMsXz4+eWE/TJlM2xG4QxiQ8OfEojoTl4QTxOPew7TxjF58m2dtQHj3hel5LsPuiEgSNx4zQy6fYS6D+xxELdidBloX40MtZKV6fjQ/kkC6TW8oO2vBBlj4vYYhI/WysEUGU9TC92vaEvMlHuYwaXb2fEO3zxA2xOm5UfSRwVEa0XXDTCvXzQsCryySQ6nZ4wVqSnT0jHpqOsjcvovzcNbA6QbhmKziI7oPBV76WZVcsqGkGOeOqLP3Vkn6rji+M4Rx2XtNHKXpG1/JvWrvx5T5N2pCSX2V8z5WYMatpHAvWxT5fZ067DSc4o0E+YRq1NO3xJv7UbxZsw3SnUek2nRPJOnRMWHuoH4gi7z1iJtuO0Lr3dH79RQwn5yE8ZZ5dJ6GkByS1bAc0LEW+D2SvLM8vpehonOr8MRa+ARcqsSMDBfe3mc0cJZ07LmELgAke6TNa7LRZ3f6qeFhlkOF5sVHRUm/ZMe6G196z6EWDfTkbaESf6X7NOuQS1QCgcyvKzYEDJ+9bkLeGV+UrWNPA/xn+0GTbE6zy/mb0NGhsvi4+dzBjZisFjzZEdH8uLJMRI+qL2MWkbBnrbenh0WSITKgM0liPIU9SplRC3TRuYd4KRe+Z35AIPJ27vRIXFp3KM3/HEQuyxLFRslEYLiwE+fxjkZ+uCg02g/1ByRGVI8kPZ4HXF7L0cleZzERbOTKCf0cEuTwdhqVyEBJNClVHYcvwCSBgXbf6TKnNfN3nK2HFkRgzFjV5nlZZBa9uP/sGf8mzz0IXPA0aHzX3p5tQWreWINAh23xeTSxAlNwgUpWyO+iPmCOQJoQIrJTQZEPatLJ0G3f4/hs5uXbjgjBTjoJQdYoN8NMUBR+Z35Yy392MHDOrtMTRPq7nbwj1zhDOmLQco7nuWrOTYsxfDXb/ek8vfTQgYt2uNLeRUL2903H1rlEb6PpEwvmgHPCB9eJuzQ2SHIhRVh6+WMLFuN73iWX52Y+eFWcm/+F92HGLs9kfRNIvzUEHRs8aXuCEVmF66L7NV8Rza1fCci2LdO0JIy6WW4S/NzQC11o+zFRyMc4aQ6qTYheLtwJs+l8JARnxJ8wDMMwYsdgZ/2yuwttSRotgGJm1kT0yQIIz13MwaXbwybKmaCiKcyjs5OLMXRMYLWlL69iPOBofxWJMxL8a1Y7z0I6reldBC8AP4qkhEWLOr+Y3U4ceq7o7vDMC84e8pv2X95LZzUxBQwoYnmpGwdfEbR3oAFvyDDMHAS2lHeiIROUizP5djpRVfgYokZTpibS8338BEnybSPXYUfGIELkqrirHqgSVI0lEuJGf38W2PunAyppQHYLidoAuZ5h7DnKAyqZQW6qln57qMqe1OWM98vs5zc8wqPzQZJtYiwBMpAHUkE9NCcSyBpBUPPBvVRXIWTDnlySjqZE5NVC5pmWXX9wAvzk1pYh1UZZibjFF6lhETcMk8QV/z3DJtunfyLvtbS6dvh6uFnQL/Swcg3iEEg9GRTXnEnc9wojVUqMD9bB0FpVY7V0pe2C3aYH7k8/5tKdeJs9EvOias5n4QuJWq0RcA16zcSEx1srD27ctSu+mAXIQdlmuc+a1H44ZVDa6mZkiJPl+2/OfFOP7p99JhHjiiaJTxrquOjQc+EenYS3H9xhTm2fQcdObuIw8c1G2Cp2j6Gt8Lf1tgxSzeNrfNb+c3sp3ne/REnwKjVP5h3sWub23Cu4XbQJV0hrN/Md5HsX1UH1Wcpd5yFK/YJDo/SyeKMaVWgvevWTdoMG/ukgrJRxYv/7mVytFYnHQ4EfZ4gXwBpOhMtDFCRLsHFDZiweqmW6oSqohiHg6MvjPYN+ZkvkUEPsRW7lDFH5C5lGl+l3jtofIbHjVU1TSCBqe39ZCN/k54R6VWeLrLjkhV2Dt8a0KOaEH4m5t4tUmtPbtZVlUfhXOmnQHlaOcmx8g3eN+VPoc7mfWdN+FrQ8LzAtIByCnVE3YzV6nmCr2Y08uQGd6fDDk/KcCc9mfNiJnQXE4kvaO6FDe79oyoJxN22NZXWLbQBXOuAn9D0LmGDsage6t5PEqVjOzfGxLrnixaWUW+ZzqvtaC8lBk2IpTLC2Lm4XTkxNZsdv/cUwUH9UvJPCHwcBD6caG9JDuWqX6oIXPsldqb1mPyh6vQWqOEpreV+t2ZhxznPz2hrsAE7Ln++YUDUYF38pk8ufmyaNsmJHlLP15OA3z3wf5qXyUeUwvXF+iu4CkyC08IC3UmTRr078GeBJ7CKJAoHHq3fkbVAPnWvOKP/j7DAF+pe+Snk4K/qahgqqKyxoSSy+xun1AwhLZm6LFA16gXio1NRfwFjbdveiNHZL4qT0Ap9m46EHo+MGtIa89xpgUtTBjPal81xjPYnbfhTXyBX9IMCdxIXO5y5oMS7KWOHrD/2wrO9TmdwvwCtsVu2+ldawrlWYaIiYcV5pM35yQkU2i2YWh2EYhm/PUb8b5A7YSC/ba5FgotFxRCZwJaJqBh+4jmx5DXdFAEoYsLPfJPDy2Y5BZ8UB999/4v47VzmlqBtqMElizbiAan+f9EDL7yQaLxbk5dDVmqKjYisxk2pqMTP/1/+ofoZdjY9GfJhsOblL0/DUcPko3FDQVLT6vnwA808MvZXiUrBEXfshXE2CKWbOP73JMY+R/MNPxyEC2Psy/aHEttTQjBXXnKYfiK4+XGqsQwKd8kTJjMC36RQi9sG3rx/w2FaDvSo2jHrLYcETfLgMCMZ+LKhHAk6mGDbI4/JUYYNSI6bw5ZqViG3dtfj6TitlCeQ1iGCWOleygWWmJWwKBSGaIq/DysijnOJ253TSrRiPpHBLmBx/W4JYeesj5K9QDTEzBedIMlA2BuOjody42Js6kpq8auwWzVBgWzUq7rlGdcpq+SZdcHOlW1rqmSTbFaj90n3AlPWm9pkYOYSaGeBH3zlzu143LIlicFyLMY471e7bqH7txjIFpXWTkVc+oHrrdVAgwqixXgl9B45kxD5OYngZOoROYICeK5BiKcsoHXU+Fqz5gITt/SikcXuN+yJZhAmQcp/Avj1OVlRGqVc3TyHU4wZv49m8Cuv9wWaeDYSHDjU11pd1FZc0wSGskhh76XhfWD6RL5/v3+XIVA4X+OatQ5LckmkMtgCbKt33iXWsQOD6HNix/z5dpXgfIpxaXNRYcYkXKz7cADA9fsNzG1/CBuvJ/b/H/PU7HPCOaVkfEVJoIUOJQAkidSI+hcV4db2lUyja+pz9aavziNPr8/hS9pFOhaQPK21H10tH1Os+tIlqCPFoaqjr1OaN9P3KyPwFrR+nWqhONHvjDv0DqwVlXoGBOvcb4khPbBIBMQHht4CwUabh0OGFHX1qyy3cDtPt9VqwkjqBhiBV2r+jVZIYvjUYa0+BURE3R7PQoINQXtmycE8+mlJMAgzVM7US1MF1nfwgClIW/ht3E9RcdjNVL5c5CpSLcGgW9ESfQDdVD2sEzRaeLH81QIrw1mEU3SeTG/qExNQTm5ydAKvZuygoydmmdhNno4dJv0OZ57Pw6r0CxJB6IHiJ6r7lp9GiAJ0zxdf5ZPimSse/ISAk+YnheGsHH8hFynbAFz0Nl9hvGqfKfoDmgt0RMBxEDgqgIefKBmQ0tcKHo/4P8pmEJr6+mE8yznLzfjcgj2g8n0uoLfXc2DUO0JgWusY5QUF8eDtDVS9cMhj6rS8bW6xsPuuPkNzV8ALjuIIQuExDf285ck1sBXauZK9vavwYpFheUVK8do6T7brbBLXX7Dz01sYb6LdqZDorDpHe8vUKzt0YlZZOLIXXRw6mw9CB+ejurAscibnqTY5qVWAYhmEc6ppaqnJs0xMifPX/r1AK7D/221HO35s99PMUFbcFKy9bPW2jkjqMdgm6PXQztguFzQKENcdUQQ4NTJfqdHTFH/donCO4COWBQtddXQOiyH/LGuxLDx8PPh+fv+7hQX4XFp3LzpVqL5z78up0W1SbiSLIJ96TOIw2bfehevmWj8ABJ1rtTKuBGV+tGILF7CzLEzORWxNHbHr9XrBSGfk/rkLEAOjJhCowLlkn4swu8l4GF6JyY5Pzj2KVqpM3UMFfiQ3ugSH/C+Ipqd085Se85pRjA7FlI6t+s2wkdx6wk850yE3Q2a84HAEr5Y8eYDtGpzW0V/ThufUmmQdpKZTivLowc/npeFMLniz4/uT8Dse6qltBU/2AnUphGd60MSO1Sn5sDSGyCbyK4l9WB64+K5cAge7mSCmUMBcmbKZEaNdMUjb96dnnBpl7d5SQl8JZl8PvRdQVAOUaJdxE0pB30cUW73aU/8QGoCtBugt4GshjYkzkx/k5+LfH5LFCIPz99OVpY5aRrNJ4mWqemD8ZRSM9rJAwUw5c70QDnEnoNPYh2PBCrFcd1+VzKq1tEJ1k282TtLsfX89TqYILioBSnhGFy4LipXtoPLhM8l9vtgaVdnMqdGKev/vUwT+bzOP2YeFYb3EnMV2RnnSVLTuoSDy5OR/NlRnXG0KWq9d7fdsZbqF1+Hry6XPEa5hJxVdTruj8i6UuFunPl8jKxStiPrSt83pFjVOok5J4cupHDiQyXlvq3lqAH8X4+QuDEznhdSS1UeeweHC5oAaiOQ7RdgIKeCrxatDQDrd75yj/4FTg6TZ+BX1njJbCtxesI8BaUOzvx9qA6mWSkN6Fe7hHUfg61w4z12TGTYNfGq1UoKrERGykAcsNeBLv3DPOnv5+FEnp4JgYIlHILGgdXEAZh82GJBMY5w5fajuDiW7qxTg2uhE2m+VC4CBxk2tcNH8w7HdKpI69zhlk6+spj77SXB8+S0FuWHvL2IfMHlPSNqUfinOBtM2effVBISj2Y59jJDwS8wDo3krokIMgbOZGleVS1gikGmdCWk1eTG+RRma1+ZPcWJ5gJyMcUTXfU/34BoboZI3ILVfnoGkTv8opTqfsuJpWohjw6GEXAnMGzD6RPxCyhLvDb9W5kgcr5Yhu3TgHv19OSiWVVxQNEeDT2ArUSkd/EnhPxknNKyuyYhpDirYU5w3lSJcpfFkvRCKymZftCtvjiDgx+14r08T1/0hQogMdKCZBpe9rvYaK8Idsus4LyTU73rqJB8hZv68Qg6ii8AtZZqnjTTNDTnl2t17HbvOP5sUhedrAJtQ0vpWahACfcwlIRXCP6dZyj9W7LJN+BqVllbbMfUn0KGSgolQdvIaKo030rSV+SwUVXRoQtSiWnKhDI/h1HOoEkdG4QbZyAq9o/I1s4QTdjMaIrDhBKmj8F1nnBFGj8RXZxgkEGs1kfRZ0AY3cyK6SIL2gcWFkKQniGo2pkV0ngd9ovJpsTILuC40wsvxCkM7R+G2ymAjiDxr3Jlu/ELhH49lkw0TQ3aOxbmTLiSCdoPEfI7MniCUaWyNbDQSe0fhussVA0L2jMRhZGQjSLzTeGVk3EMQPNB5MthkIrGk8may/IOguaSyN7GpBkP6h8cHI0oIgntC4M7LrBYH/QOOXycYFQXcADZUs94IkaMwqiyiIZzT2SrbuBbZonFQ2REG3QWOlZMsoSHs0LpXMiSBWaOyUbDUS+I7GD5UtRoLuA42FkpWRIG3R+EvJupEgfqLxRWWbkcCAxlFl/SToWjSKkl31gvSGxnslS70gbtH4qGTXvcA7NH6qbOwF3REanZLltwTpAo0/KouKIP6i8Vll67cEHtA4q2yoCLpHNDZKtqwI0hkab5QsZUK5oY6cXKFkCSo3ODHNsXCdCW1uqCMrp9BlCRq+ceLV+8KYCZVv6silU9hkCcoSJ8JjIb8SGtbUkZ1T6F8ltFnjxG/vCzETyt/UkR+ucDVLqHzixL33hfUroc0ndWThFNIsoeEBJ569LwwzofJAHfnLKVzPEsoHnFjPsbCcCQ2n1JEvrjDOEtqc4sR/3AoOhDJSR46ukA8SKh1ObD0WVoXQpqOOFKcQRULDb5z47n1hUQiV39SR905hfZBQ7nBi8FgohdBwRx356BSGIqHNHU6881joCqH8lzry0xWWRULlGCcevC9sCqHNMXWkcwouJWi4wokn7wv9JaFyRR354wqrWoLyCyeWHgtXNaHhP3Xksyssagna/MeJDx4LqSaUr9SRsyuUWoLKDifuPBaua0KbHXVk4xS6WoKGQzjxy/vCWBMqh+jIG6ewqSUoOFAxEkguDQd6RgYkZ8aBA0Y0kkvmwBVGFkZy9jhwi5HOSC4XOJAw0leSc8KBTxhJSnKZOHCNkVFJTodGc1m/IugaNPJMdpUJ0isaF06GpFRMAgPJSErPZMCAmaQcMNEYSElSrjBZGAP2JOUWk84YSAuSkjDpKwNOJOUTJkkZSL2kXGMyKgNWJOUGk3AG0kxSRkwGZ6BfyJdbnrIXWu4T0yA2LMTKmLw8PiZ9cjV0+Nux6fznPy/Df3GsOuZfHG8vGv3fmC3Wa39m1ZvG1146iW08ppv4r06D6G276T+2z8Pt2ufctfuCNT8QfgHbxWb8ufE83f/ieFj8O2tv9T+Y4M+sx3FbrWU//VeNT9bW4cnInYuwXWpfV8VJ3B7UbzVYuqbKh6WLHKDLPKALYyhd6UGgPSwdu9s6f2j4wOGROxjKg6HVzREd9feAM+rIOPoy35mxMzmL+eTWnCunO+bCqc5wLJlzcLITGsD6TnW4ucY/f9WYwUVZeewXAlVVG0En6w5crlxwrIVTK77jZsk39x67pFD0VA2ToL/YQI7o6lfGBpncvJf0o1Uzy5s7e6pSFPVO25NLpTpiUNkHUg0N3WmmtKftRz3CcutSudiZMcuw36Id9xsL6hZHnRd9RRzf77Xgzlt8d/m3eWcs0+yBm6gkLzhuk+CwSja14bpirqKxuIn9qWNN938cvPO1icUPnoOdU8vNHj+flzUIyc+sytLSvoxRsXeddmcqyeBUo39o8CaBDFn1WzonOimoXuCUFqEemWS+OBEn/Q3zkqeZjDEPXOL8VfdKp2xIUT9zR5oZnSdiZuV8oF8xzfLEmGkeT6wyF05QGcVOP+C43jL6FaAH2UGYmLlxMu8qAdmbGFSy1vfSBavJ8nzmMS6J/bdm/vvJJyJaqQiLqGkn6JNpn2ixo6qIxay69Po9O1JmwC3wkDxTHv3Ljj358oHBuCMVFtiTRhbKPWli4XwmOSMeSBWVhIXv2PbXG9Z0cDvZ1zg68gqioHc4R95DBPBsQ4LEsV0WN1V82C/DYV6oqbY3/Vw+AHwZTvn/QDurFMdYEUuDNkGZIWjwmJB3EDv0DhH5I4Qog76+Srk7d0Sn0CqUL2zFKxxH5AJxb2gR+QgRK5wnEmOAaB1aQXnHlI4yHGvkDcSj6Vu5Q/4MERyeF8gdRJrhmFEOoIpnHK+R+8bHcJ7p5/KEfDCiSThHKY7BEcuE9gLlA4KMx4BcDfGkeocO+dYQMsFzL2mnjugmaCcoR9jJPuP4B/nKEA+Kdo78aER8gXMlMYoi2gHaL72MG/nOOP5AvjZEcX0tV8ifDBEGeJ6RkyHSHo5LlFNU8RHHJ8ijIbbOwMMr8lcjmgWci5TGpSOWC2j/oPyH4AIeL5FvDLFzew4gTxUh0aAvjZTGzhFdRNujuKniExyfkXNF3Cc0QW5KxB7nFxKjGKIdoW1RRnMj3zOOP5HXFfGY9LVskO+VCCM8fyGHItIJjiuU2qjiiuMt8qDUQE5xLn8jPyjR9DifS3FsFLHs0d5Q/hjBhMcWeauIp4neISHfKUIqeL4nadfPiK6Cdobyw9jJvuD4F3mpiIcJ2gXykxLxLZxPJEZmRJuh3Uh9nt2NfGUcv5FXjiiDvpY18t4RIcPzO7IZkVZwbFB+GlW84PiAvHDEdmDgoUH+4kQzw/mXlMY4I5YztE+Uv0bwCo9r5J0jdoPeoUX+6AgpVBpS7rIjugLtGOXbbMVrHH8jF0fcL9A65KMT8QDnfyTGoIi2hrZD+W2m9CPD8RDyxhGPC30rn5E/OxFqeD6A3DkiXcLxCuXQpMkMjorcM0WX6Vv5inyAaMBZJMZgiCVohjIpATyCXCGeot5hiXwLIQbPGyl3lzOiM2gLlErZyj7iOEG+gniIaAn5ESI2OO8lRoFoFVov9fnCuZGvGccK+RqijPpaLpA/QQSF5w/kBJEqHCPKiVLFDceCPEJsRwYebpC/QjQO562UxtYRS4c2o/xTghkeM/INxG7UOzTIU0NIMujLq5S7NCO6hPaFsldb8RnHF8i5Ie57tIDcjIgZ5zeJURzRTtDuobypKVUZjifI64Z47PWt3CDfGxEmeD5CDkOkFzieo5wpVbzH8RfyYCKgn8sf5AcjmgHOF1IcG0csB2jvKJ9KsIfHJfLWEE+V3mGFfGcIWcDzo6Td4IhuAe0AyrGyk/2M4z/IS0M8VGiXyE9GxAs4ny0BiNXmQJ+bezRllOgrlV5puVs0ZZQx3TD6gXNyhaaMHvc+CoEJ0HvUct9QZluUKX1S+dhyz9A0o1Seorz1ouXelDlnnJw6sq84Kxs8FZw53TF72nI/cYprnNd0TOl15zGeapzif5yDXcvd4anGqdOO2v84l17hf2ytNyVSadV4I5to4X2KKQ6ifBKN/aC3QqpaJlU0s2BKHHVIlYPU2GLrC2lqVfuVhqgykRho3MkQU5z7T6S5tbVN0sJC+yTP/TAoD1Jbi6ZeslbNfbqJRqaUJQ2Nci81rlq7S/QGqEv0e7QLAN+wJ4wBrySssKJTAheobOhHO2WpmyiMbdxGF/iG3LsTF+Dwa/SVTXiO21jzuTgJp3U4Qoc1LLHfgH4bt/SL/WllmepMs0j2MY0uNVk3SnCowz+RdHJQCY8r+vHYjK1Wne6cchyir+1I8vG00KPXLv0GONVn9Z2OmDCw8eMDqMfGz6SzWsM4BLG63mFpxttT2sXzk9O/OlzsNMJjOk4XeldEqoPabLGs7U5ntzgTVTVv1Ge97kwutjXf4JX/TrFq4u/8R99dvJaL9TQErTbtxiT9vGIS/5lY1xrL7pD4K/L3BXns/yXf7sfdtpnD5ms/Dk31nb08pNN2ubkpVzs9uRz8wniz/7j6M3y9fqwO7Ph2vou5k/42PS7qZbdYXzRxv+02R48vZync1T/j7qLJ43l5meYhhWFazdWP7unXSvYf+bRfT980yXyVxWK63H260NfW63EUNXs3J8EUIKeAbKEwBFLueaEO64zA/Uf91nqNg9bLoN4cP/QmMoLvlEaSrJ4NPvk37L8sCnUEqRrVCTvWJUIfL2+qSzZRI7hYpDe+1wn8SqYhlagFXd7ml4jhA2TQ8w0KrJzian4D3mMbNRgLGS65S1pLoygDbJfyFU/mKErmsIr+/2QgXDldCyAQbb/+npQhGRPgY2jQi/fTDo0VMlxhja/d3XpU4g+mVvDwIYF0TDYnEKBOkm+U9j4wpOMzTvgnl7ePfyPD/bxOXhq2q+YbanqipRtby0l5kKh2LVR9b6vIHxSCDIQSPKWzFwaPL7pIYxtNS3GcZnnb3+d58iCBQBkygh/ayE5oFT0toq7iUe8jpKvvTnSLKcDv73OfRD2FqyYUNO2HqozXApUI50Z1iBfriR2t7rhJ6gVUYbiiFCu/ImF/+z88w83yrZ9ifBf/xpO6k8SHFrSTt2sYXYtCxgCIfqQbc1XOcThPhKyjVrNfK4/jz7hu/Jrq+IavUI/xGRc8I8fD9VIeY2drDOo8393UwGRoBBS9VpxPfUU2JbZf02zDFF6YEhhUStBLHWHi9+ISkQbJKaQSKchwav3VP+c6B86nZv8DKD/ayDZ+jbrtxX4tGa4lsB9O6nLxywlEDMfQwxyz0S19vXSd3L0WGDGLtz0jjumKT9DFFcog3NWy3oEX5bKcDXcrzR88j0gauZCbt8E+YDi5EQ/Pjic3BIKi8FOTDsXD3OomrqXTRcc+y+dWzVOFaMroVaukJJAQId5cPKRWD/NM7kDxcFIhgUA9diiPnjEIAYq3FqMzRfIjUYNsKGl1rb2W1C3I12WAtCQT+0QXU5LhvZGjlsDnwcPNtnThJVKsgrRHcCfvNKFG3Vyj0CbOoJIGQ+oFZUgqvUunVKESqTNQsuyqSSVqqbsQzrMHzG8rB+jHJFBJm4A0c0mF+isRqLMi72rYO6lZEYouE/Xdt9H8eGHCmh/Lk32W5fx4I1BXiV2VJc5E6JSpWuFEVLoWSVP40ahGVyLIYF6HQgZP6GZCD7Z6p8A9RpEeQTZVQLqL4ti+07HSosdPmIHOAQr1+/BK9S9N0b07rSUVu/JoqqLFoCcnXbcaf3eTr9OSDA+JdCac5Wi5eDxJx6B/CR4gzdgn/qjq9q83Ep1M+Lu4ZwP5oVo4udDdZJL+g0Re0HhFY+zqu78iB7TgMt38rUeRC42SSdSViP5LEnpBKfUpIFPsid3o87exlmxjAE2qsepK3MLibhiFBiqOo3AWvIrA3MersfLehEjRbBdpjaIZMvWxKdrexzVZ0vptZ+52CumYlx05Vgqp2g0nN5OTsbp72yehELdxP+/p1XYgp2yeXsKpPSa0xxPwk9olRrMw0hsByAf98ZYN1R82dV3zeuP+wGFZhmOcnOTaoG3UtLNcf2jnaVMtbpUuwm+wcugUvAPXBl35v/RwXe13F4k/9TX0/oX/VKPuroM6h7tYqQ+ho8765rc2ctFNOBqT7a9pxHp2MSpB0NCyBDnZ9cbXPjh3K0Dv9mgFPyyBt1NBmjeibL5YEKBMfMCFPju7/LGstqRPBPjcFIxtMlu7JA/U9BLL9MMJ1pxTq39AgrP77kxuQ4P9q5i6yH4e8jzK70jiZXBTPerpgnyBa1oMRzcCBbWkjuleTn/y64R/9tXvHm+3j0eopqSmoCVquGMFi6BlGQEfoXWzCDB70nDc9O5dYvMWm5NTfz4R0/2PfWuXRdC6FbMQr//Tv+zMGW0lCXHvCyX8GF/auZNLyZGdXH6WZvkVor8Zi9i0mGC5DB/AOHBneetJcl5BdSW6HSw01Kk1tU4O+91QijXnSoz0t8MOiQamt1aN4eamLWV8TdkaCp0wLVjOX4jsGqH4DcbiLq311fUtpDvIIzDwokRLyW55RygeQUGOjkBMYBL8P62Eyccbp+lqsAr6s7+CMvPIB6DMCForJYS85p8lsPSNxjhe1iixkLp6e4SfttoAXu8E+i7uUf8QjnCpCe+g6GZSZICFXHDzi1+eCg5u/Pir/E5PH4Rp+hlJ+bGkzjZR7cb9if+LK2t6Zjk6mJ84LUqlWFyABH+U6yjECy1RrsUZqeLHdv3+ZCB7HyB35Ha3tx10K2lVrKU4e2a10EtnhY48ZvGEsDjhVVXX6DHc0SdI1zRlz1TKSOzj8fexT3p8keP9y2Liy3F91vaK052T7BpuXcLibpCpq3YqjRfQ4CsNBvnoRBq0p7H/hNLgeADUzUtfLh/8lIl/0wm8ooVhD7PnSfdTByfP5Humb+3zepcCtrsno3h0xh6YApdVhGGiE1Tk9eebKvYPkIEL/ZeXkTH8eWNaDnjXXRK2PIffU+fffc6POGDpn0q2/oob6qpZml5XE+SJm0MQv67o1tXa/FFZaUe1UMLcD5sFqHiRP2RmRaql56BYo5hN58IMoVvmbBAWQRhRu7f+hk969spX76rXy6U0pG7GbAPLwR6f4ScO3uJLjOKaOFIjXvMZyYoBiBB0BBLKNYs7Iy7QeFFSnSjHU0DKuXNECIThIhfaJrtHN3HhtW25Dv5MB8TPlg8vHWKw0MzpX18xJTZa8oYEFo5lAPeHSfzav2pjgOWVTrSHmusR46LxGS/FRCNUqL7KYXUf5gbTooWzTZK9yu6MJdaQYz3G4VT8LqbqaTqZ0gqd+683DI/j0+Ef1V2BH1+lt2F4LkqOSEjrEkZ29fhbYRDmnIO0THxF+i8z2pYr/WNAhd5QYPWzqYwBl906tTcBwwTyWc/OUdbOnfvI685qU7H6ske5f1oIed3auW8fAG140BzltoT+p/QkKEcjXRp8Grc1HL4p1O+ULIrFUn7hWbQhX7nfP1Ku/ck40Z+/A/uJQWLMsF0w8/uKpv79dqhtjV/78/diWhZX+teIbYT7AeLf1J5KshUhjuX0QblxLnG31fMLA8oKwmWBctEvZnDGLBL7X9a8ylnIpipMlZfGhqLv0C+WGXXjl0F+XBkbn8efW/Fc1D8atzuX8UfDb1Nj9NgfX2bOfAU78FnljoPD5TFAmK5LT+LOLIYYaohDexGQrfA8HcA2K5v99BMdGojWlLFfAUDYezbeX18/hUdpcZ30avoe134PPc2Dn0uTtv86FpBJU7vyhQTz9In3ZW/SKbuURmKqU34AgpRzHwkAvnFqPbThYZlFlD4mh8flGLhtAcTl4tXrnrMlBEcAypuUYvbSay1MIIxMyoXCY7Rp0KE+uYl7Y0I+p4B23shmy0yKAM0FcaHslTY9f51xvpKFtYNybuC67s230qVjCk2GgubH3pTbE6rKaSZEXzEXubncWmfrcy7T7HJTEDWyvjR43E2KeHlvWft/LQ2dhsGg91biXEQnMlJzfdWOubZks8PyWjWHW+ZN5XpKmQOtDf2t2pgqtZe+sFvYHOwmq39pa6Q6X1Pu8rZ6435IzZ82JFU7LeaC5naxkDi9kiG/+T1sBTxVUE6InduHhlMXbJaaCXnVQWV01IVq8qGWUBsL+VccpZDFVnUcwxNWdSL88k/ZNEucYidCWOrsl695v5+7wGUvfR5fzofBf/mDH/u0t74f5q0r+VMzvKVXOpkJ+an75vvU9EgL4UefNT8TAtbbMMhvwBfyo5dJ/ypsgraP2Zsmy2/apeslSg5KUfwNwnXrf5vTf9Uw7Hl9MK/iXL2zbv2VvmC+Z9y2Md3m79YWwxi9jCIUV5HOHPRExrFzoTviJyAffGgl3lQoadaxv99aK71i30/rc6nNh/M6n116Cc74V0f+lT5j953kj6ZtUk3Ne9DdeCgFCXBPAgkkkFsLpBRh2a/rX8f40OJTmN06SloyojQX29GHnxO2Dd2qjuSJ0iUBB1DgR1XiboeKGBYchHPcm9Y+6zSQjR9tQ5vdKxlTlMT3gef8q42wBLh6Ap9vHMwH9M5nB4WTSxD4ump85W5hI7z6JZMDlL1kuFBktXC3bPmbXTBUvZAUouG9wQvwvkrlz2X3kDXeXL4+UboNfsPN+LjfFkzTYWa8VtYOhd0j5uYT8fXnV3zMTpQGSuci138VvfZLKSVF9JBLEt+bDVYQTRPK1yVnKcRVgeN73/NLnLkMfi6WglP4zgQlgbzPTJ/D05CxlQJlXQU3ez7H8TGLVR1r7NHngCZtv94rcH63DfBQyLW1JB6J9AdFEkgkt/2jTNRk7hCW4U5hfY7AEA8PzAJmrdDGCl4V9IRYQBKTNpH5fOOXqPtVnXFL1i5LZK4Vw7axXhsLRiD98GakVo70TiKy6R1xkGwdrwSusTpcGp28o8SAjykDIlcR4vuQrpMgUi0ATT22nT2icpa3g8GlT1w6hEzt+F5XJDpasq3etU8UOhQOWL9TwU1c0ejkSPoZXbdJRaqTETGc9x2GWpQ6IRC0Y5ORW6Q60ajlLVinqN2/3ndLvFQzEqmO0FfnpqpbKXWYieq8Seup1Q6xXzJZyzTj9XLHOEbkcol1vUWlI2jf1k1RH1vuGvrw1XMQxa2dhqYfpxz9onElfp8vUlkdSqlDZOcZTahTubWT+AL9UqB1abVjIDbF68C9l1Yxjgb8ulAkXeuplNp5t5QNaz3ThRKNFpFDIU2aertjXCtUGrwwonMO/pVeqa6vLdcRoJLIrtPkiNS5spjo1RElsc1EHf7Y8HQ0yR1yiAld3juFN0GyjTU/3a4vWDwUxFpneRdBPvzn92ISVVgkpw/YsloX4v43+a6AfSQBeBqEtA0Jc2YIPoGNi0/RNE5DQIUGMRkZQ+KB9AwMlhGrTVzMv2jZ6rVaKBVC9e0x84oAP2z/y6fsbSTwleQ0yPO+UzaPuvB/CWyobLVB5vnl1fbPCgwyet6NvFgP0OHuzWgkfRrGf9lvm4YV8mf5TtJiBUTeq6d5Ix45VWrkvzT6omLK1QN68hURG8AjvBpJBTfm1YXKsrE+oKEEyryiu33l8whYYi5dyMxu+GzENbMJF5zI3JE0PhyvnXBcETPuz3yYbxgyvEPfooE4h9vSnGb0VO6MwBYtQQq6mYsfvFiaOVhJlqQPAkYT+VEzmGL0u0fSearp/ocYD/ihwUxC+eHJsWngD45RPkagFwvFqxF3DKWFm1LgA/yLOCh4JRwIDZUME2EQIseGqUNAezNF5C9HLl4ecHFJA5MFnoCImLfyTtPqyaXS+eEm27k/T97VejSXp44XRjLCbLcYLQjygkoQGJsuoBb5vaxKneFe9Qtbta1nFfhnqS9UgA+fZbgvGQGyaaW19o0pFiRb19oCrk3zhNOVk8qXxBZcEzylLSIKvxmX/7g+K2WTjfl6iwwF/lvwd/KHOe9t0UGxLMo8dGrjfM8WShdayhcPdQiMqWeyLeje/4r3J+iJ5Qu+oJ1pJig3Nw1I7V219lEiZrnXCkfTkfALne0aCQhyzzJW1M9cdC84VSXnUn0YOXdz8RRA4bULJg+8Ld1bbsiSZdaT0cJq7oP2MwUx4lxB+1msMRDnHht3oLTonu+R5cIGAVoOzv2j/SZRQN8RKlp3IThENY+1RZfXOTlTsydI21sQ8Beg3IH2yQSdUE4Zn55KQxXfzJAak+CD1n4Jmos1/YBzT031cdsbn05rHpdn1DwBl+25dxRZmuei8NpyDNHDC/6mRpSfqmtS3uctAVSoE1GAPlSnVzk1MVh4paLednMce+HCPBQE0pAFw06kjn/NNwGb+15aOz8+HAlmhDCf/b2xxAmzLD1hH3qHIlmAVXI3XgcJXFaszSGYJ7WQr+TBz2UWExyAvgFA4KDI+lYGfgQe0CvW8jOZy15RCJl3CVIHcJRxbnrEAQ0acM13scEshB+dEEVKy+VdVqS/t+mLdVZm+ykq7A8o7MEVF0xMkPGxQ7EBt9cv7yoWGpDE1PQnUNoAAlHFWUPZAhwFOQYTf6CiRYzXTuKlL7Qg4AAS7+7+LZqbEswEdZ9IF7SlcQmTyhMg0AHjkEeEPTwWCzMr+0mXYDA7c3853ARWVMAA79UgJrK6OusHXgA1jtCtMhDkTchGDyQm2mzHegGO/bXBZtIOyKLHjcO9HO892GQy2PlbbIZk03JnNiCY02GYntKqYhRuFdh3318y/plw/Tt8jr6edbH6jLvOsUBTZCMWvvXhWK6+pAqqZHoJ9ggLGTl26luSH1egvbG3QHYEWeKfxjVMcIKFa9Yktjo8vucEVDGwB9UxcgwBYxF0cgszar7izZgrSzuZVLsXxrdnCxgJ+zyoWoAJRmo3f41ywOAAixMEM8hMHSfQiqyXGM70p9VU5f4lZti5L+olVGalHaU+dgklCe96VEzoiLCpBcxcZKWwMeSRnPMCIbzmRrxv2V5+m8G0iok0FEUv6836f6YIPkxe6Z50bv5B1YEuH5ZsgvQ7OKmGrsQfqWA9/IVBO+nMh7M64llJbzI6spBEzkn/6TRYv3kzfE/JUlN7BrkEIUeFJaVLdLGvGLIfPgSUKOD4XsmcmaMI1dOFa5QIpd3FOeCs/QByGtWYS127EFGo350/MmQleE2e+Jk8yACshFi6tj7ClmY0jYZOXDQRabHtRRPKawQ6gihuHIqniS0GM1gmRlUN3b4lIbF+LNhc2hE6856JULb+PdV7Sd2Gf57bVtOJX5We0Ltkg3uG2iV9EtFFP+PHQ7Dv9UPIznHCrA2G48GqI0vBlFUfwK/CWAz+84MA2JlTJZGG8Y6n11lDbFOha67t9OkYt/1oKQFJOmAkNiYmoK06L7gog8QC/uKEuIO+kC2APKtR8dzQnPuuJap5ZYnBXCnkYzhMbyRDRLUE7DJxEl1QTOAsJP5XhDaIQybEymbHJ7NaMAhiJd15mYBkIYVVFOkfgS4tYJ8DSeKmEqXeXCcUNQC+EMNgkSWNZbEqmaIDsFbA8IS3lMtBmhCPZwtyOQJiFWfZNI0g9s8V/UMe3KUn1FMj9wQ6VAJ52kerxy9BfiHwWY/fRjIH0LBBXaJVzBk6TBlTFsBTLuhzkKLTAqdJ2LEAyxYkdB/0jDYTuQJE5kF8Y1RcWEJ3USTbO+mcCZGZPVNHszTuOU2mmZ1WHYWM1Sbx4T4nUrQPDYFIi4q0zcOl5aBAwWNe57yc0XwJEoMBL1HQglKgMPH/rY/MkFO+L41iGYdVTQGgBag+oiyNAAuk4A6laNB2xYnh5hul9SqJ7Hkp8votIiINBk2ieClQnN9rJlDSEle6PONmby4hcmHe/I1R02UtFvg/nHxa/zrWmqOKcbVGtRnJ6cULJ0c3/puL/jG0cSprp6Wg4G+S+5q4Zy9GqSWZf47TWUKs1ohwkOQyOh+nWIWhZu6yTNeWGYQ4ZEzXk1dvoGMhUbdMFPZONE0xY/QmAxWAsYnxxqtIP6PG4NlNMXBpx44JRY//GrrzfsIxIkSzEb7LYNokgCt0Hh4diSD2I4HTFWMxwgd5yc1sMFSsORkhyvIciUWaj3DbgrMIhxMhicOQzbCs5aHZIUJjh8qqbxI3/Dx72OPhJC5RFybyDokUiwYgvXs7MHJAnD18NwzZ0OHTixcddIoHs2+zK28FrWlmDe314w0Zyqmon2MmpDZaqWVuHpMMps3wLZcrS3jTFAjA5qiRtjKZCvxFrlZc5XU1mMZuGoAKS+PHaNyQvEbkbNtoC4qxtAAuB5/pOayIwNxgoIi7+VHRUCQCa4Y308KVwyOvSqZ9RDC86Mtji6GavZUxA6fJ9/OQkfnfwp+i/J2V1c8EO+WGwpMeVxvWeWX104XqQkQe1CDgi/etLaEfDKoMC+bA4tAeqERCaGu40RBW7ZC3AXkY5m+epTEDXr/fkEquCYg1+IrgoUrEGSw2SnAn62WaQJ9IvaHN7JzCwq4V4XmAEwLPMWo1W4j/UcWJlENYpQ/4A1O//2be2HgtXXMinNF5fHc1HsiRyezmN5wCIHHyALCl32Qg/x4GSPZ3WmzXA6d+x2g96EwzmtjMOFQ9jN3UEARxlrP5H4JpzC6UEDR6NO0tAA2FRtfzEJH5uzmfaNHDYycKYifxNtPqFEka8mLzg7OUnKBOktA9o1l8EX+W7hUq5Y3n951FRYti93tPjJ7T/85m0RmiBScUP2zkQn8IPIldzt37/vDDvwCzHHwl2dkU6+PyjyiqQfvrO5eci66Hp8sSHNn54O84X0XyR0Co5PkwJG6Q8lYXpb2IzJCIBgMzo3hCO90uuCN9gMiZsxDEGRLAd+nZqPlyyI5Xxrun9uX9wh8yqN3wDknK8ufSrSg/4W+z2w2hQQEEyik79bfLRiRUzgHBzZtCiWmLHg3sVVwYVi8wawTbFT+jtfTnb1lACexlOAgJJvOSZwtFQuIn5zF2jDHyswmsNMyEYTbU4pFxNaEUBzMSzS94GPFQOHDY0OBJzwATOwc3iTPOfiBnF1aJLmAIzI4ABUSeFpj/4oNGhqH/QNQZV0A+asyxF9mgf4oFN9OtMsML2fScoSBPGV6AgnyYBOU2xksS+MNODLV7E+Q8RlgLR4+Gb3x7GNWfh1aAm1pFjWIXtqPBT9Yh4/9OtGh3tlv1H5Pg4LBhwS1ndVb1WPWb5FvVUK/6I93I4W+WXnXmXrWsV8EJpJYNHAmbeuBHhMuk1XWOlYtvhVecYWzON6ceK/GEP2ng/2NObzlGv6CWQtyQag0PVxNM/9DtbzRN0wFZ21Mwp31Vl8s91Y+fgRn3LptE/sjGQNaiGByuyXKvrYXT3WUuTMy9UbA03AVrw3Uwn3jUAH+Y1uUxcjJRY3KBxczh5fULSXIEmM5ov8AEYozQ/+bfbVroT4Xxh/oWz/PgxMH6KADu9++T+IL5rRjaE235J3GeYAhI8fw9y3YuhTJ6KZSzlu9GVb6+7L4EGYFpaaQKkbNo/UQ8T9pR97zWp3cgWpRcu9udmZo+kFG86OHLL175Jphh4fCD/+D1nqvf5gEkXVCmg/PDINP2GXFu4N7ClGbkrLhLkSBwBWolCTGicsHxPFGyxbJl2bkwVb6gFhajIDesQSmfqPQHcK9NC6tm/ADnOzGui/ZAgqUXm3M5ucWt/hRWn3ML3c/aHVy3xVx23efSjHRVhAd763LNF1YjpYkEYX35dSymjdyC86qXvHlzPTitThS9R77iJU0A3Q6BGd7AlrLgsshP5zsdA0UKdFUN3z9wyFaE+BluzPuN7xWbbymR6Z8FxhsSZTix4tMKRYtlEN2Cg+yxETsBuu/3dS5S4qcXjT4DsATXIbz3+IzxUQux2yLPsDgmj5PmOUsMQkYaVZ3GCPvxMGIEb47oLmGmi42Txu2IWffGHIt4tv/R4b7ysWGZJOnJxykaKQ4/aWxag2ZJVSSov42hxwK5HiqXiLIlsO0GLIwta2scsUsttnv4zKCBYS6FVHmM6UuY72NvWkLnHXWXSc+nBTwOuDsYu7qW5JtPcUTFlS0FUrZ2ALY4gIYAJKApaQSmGj8BNIwFGZYO6KV79pwame2xONGZecJyTQweAnYfjfGlloYlfhHZWEc2QY6Scw6Y/E3Jawr6ubaTH7Ibpq30cxPirDX6ZjLLhCimaZGPsjjC8CYr97vz85jK9grgUi2bM2SZlehRBO42IlmDA+DDtlkXYi+sndYKkfxeptmGCuxs2mfw0sk/ApuLkTLqnnL+jL033KK2N970inDuikN1X3E2X4ptd0mvSVRk8JkNHU/VqyU7k60ZTbbNjstxgUcpzLNptUjDriSubCe/z0gB1LvVqY2wrqu/twi/DJVhFc66jhWaolCr2TRFVwyUXJSRfYLGT8yO0ojEzcz7xmaGO2m4TWSnuHZPr6iRgUUvYTAV+hyrXU+T9PeGiC1xm4jVPo6/g5udg6H3JkuMTimV6Jdi9gbDyDcFq903LYIuKvLa7NQHbiP8+W0KQrF8maYfoajtvek0F2mDvgSjarG40n/0gcLP5CXU47NwEz3zTNEJhJSSYntQIk2np70Ut4U/58pjhMt5BYqeVnOHuFyX9Etr172ircnErTqi1Dl38e4/aPtP8RIBxGsHyebQd7HSWKozKzLfUsVaWss7oWhrQf+2NZ8wMmy8/ZNW+7x7BGV0Nc859xyOTm5UpuWmroj6i89cCA48wG3V0SfAIeMPNXMYqRCmUg5k6F+1ShuNkTGbXPm/5zm4tAqHL0B8GgWZxhFX4SU/usm08c1Ao9oKy2EyTAPSM1ZHy4SGUQDAjAzZMnxAsM0OoRVCErO2SnNxzZu0WqnCHox2n8OC4hnGxRz4guIy4oLF9thU26tfDn5/hItBQacxg7d3BljGZi2a66Cz+6zz7Sn87ufoF2f9bU6b9s2vwrYp7//+lZotfjhkZt4W8WKEMNykFRMgmJGiW0YeWJPKCXslpjFsrfQrcONotN6+1xy4MXIo6AnM2oXUHP0tVF293fJAdyE7EI1obdVjZWwlk8LkF9796b02nytZ9fMcdQObG58Q1Sa6EePigvfw/ZwVmTdyZlf6vQ1nhsuKlytNaXJOK9FRRDhqxcwUPCrkSA82+UlMKLBQLPFaT0dwBxLArwDGHA4RBz0c4orpnKF6z0aJeWTAWHfQbVPM8sriQl+cdrfuvUM74j1q1/P2zAG7LN7MexHYpc+6ppTvH9tCIW2Dr+JxtbZV/jlqh8yKxW30jCEe5LWwVRMyIn+WlD1aFP+8mzmrTK9EDyKTsEfceeOchVdZrqJohCwVIaxWYJPB58tkuYEDXVLjdUNvty0eP3Y4knRr3Jt1+EjBVBcqp0Y5J8r3b7j7s9LI+qu/cvcWw7u/dBBBDpfc0E/uiX+H2eNt0KMrtJp1H7txv3jFN2sVUYbmMCz8DM01f8zp99dU8t4+qiC+oqGAUV3X/aOEP69le5rfn5s5G7D8kqVZTqxM+VqOR3cyD/3UCKbQ8vqjSNN0E5XgRFgYSiwVnMviy01ePEvHYh6xS1VJyAg1KTAXgRYkFc5WtFlUvmxqcwbj3kUKNUjOqBUDFvdhlt+b0LfS78BGIa0ea89AV8FyJKSYhDv7i9kCAPKioVYcOW1o3CoDxUeo2I2gg8LGhTfmdZSCsx1VS1j1pn6r+qT0KszHmxwZM6ETSS25FNjm/greq39XtJkzoHD0rADl7Izm23WaT8VlYx8m3xsR7vb1c03Qz7Zz8L3AITsx00xnIje1TshB6QBIlUaxKVLwnkuXo0zSp9GVVYS9LkAHD759iEt4U54axMqPuePg80pB876omzqrgKBGktC/5i5MYmBa2pRWdYkJQIeNSRjLxnBP1GJQg7/Qvmlc/ur9cLJaWR+cA17IoPeFnE0Edx2eUE6br4BWNk01TnNqmpdIc0qaxWhOXdNKk9HVfA3BDb60Z4bbnoI2+78puCExWW+2jGGrLMY3xWwMkCQHpobByHDsHEyWTa7cJBP+DBQx8shk3x5Fhq2qsRyTRqN5hW3q+VPQcHTcOPKcrg8E826b+KWam7ydIO4f9odUWDYnpN06wzql+0mdFtY9LCoViIxojBwZ+Txjn8JmGkwjiqjqN7xBGati8sm6fRi0kY0PRk4vjxkZpxStPD6tQobrphfNFzjVbD2BfHluXWE0p3eZjyfWvv5Gt3tY+AUyzyajvFKOe3tkuAEVeHYrMmx3HeQflhfZ7UVA8rQUIOLHGR3DTZtDXg09QNqY/tbeoW5fBCKh4EqJ4FKurTTz+2FgjlQB5qtb9L3yC3x1vXiRbkriNtCgWlR8l8dNK6FNdXudfQU91nD4fLJergct5M2oXbZvFpvUp8b4cCuuWpf4gGBTm+zokshHqDo6k+I+YnS5W5SUrxbP7thrZACjWfkSlvxvNl3kEl0q52mkvyFWbGieeB7mbO7SMOTVaKF3F3Rbej0ObCwo0jxETzo6vuVuByU6foHiFO96ALKLZ+zvc27SDe9JsXj+WXtOSL62+2yRCBRlQ0zewIXfhXTB7bd1+ITlvOI32c54DzhiN3X5GP+p3f3o03GATk4B6m98DmdCmv5FpLQBXje1Bz8cPt47yjeIqHZijtpBHI5z0pQctjAFWLvBS/tFFF+VZSxP98XTZqswkSV/1RkcvqbLdiLpee224HXFbojP3zOsaDx+O21oPCEPnFGD2oWUwWvWw0fxRgjPjEnEY0MWv3hJM8TfiIB0o9XVQ61QGgd2C/JXLjuHDLZEKKLlHrKLq4GCx0g+VIMA4WE5FaklP25a2+0BdnGekfb7NPFJ+ZvCRwWKhzdaThBRK74/sH1fNuKOYYMJo6utlbinMwvSBCvDgWYI+JcTOMHUcnCIiRLuf3tpeHj02bT4SRQTbpTiIRom9hD2uAlT23ABLiy/DPDMOS0nnSujA7m4LnGjfqeqwy8GDptik1cbt2MVfu2aIE8OFcVHE5LUFsBFP0Q/wtFtdrjmQEMeuv3yOoCBVslSjOYKdzLiXmwQpKQPnX+WxKwztC4vPUecNwO+0ySgNq6voBS8Y+mYIF2R6k/wjKPrRX100I0T6sdN237PPXVfpWd7tGCaZyK7dvkdNmghOFr40agJUuhZFFNuymqJYkK4RnaB0pq+/7qQUea7rraCA4T/sLtXI5Vz8V5wc7ZR+JgEjECxdeezrCqoMQ4yCG/Lzg84nggVPaNZnBgYd7vDEWFIvJmbfhBrqdeDxTMdH+1R9VX8ocvR9v2TvsouYjCSWdRm0SGUb1+hAsXRApI5/lE4sYl269HXmQPsif4lGeqvrT0Tw3NpyL+rpR4jqTiu0w1JdDmSuDt361V96q6aGhGT2aVCFMXvip8eErgLqiio5g5mycdEEJJZNAKamlRgsEuuLisAH3yy1yXNlCLWlXvV6g8UgZxZNIjqmohmZyQFpG5E/CIUyFhF6GraLLRtf7i6xyWYiIN0d5NWyyE3ktbh1L6PShIL0dgkqtsROTEUcAI70nmiZB/f9EivsTwUBKspsEOWfn2EjnMpSvt40ihVNYSyHIlF+2AyAmZpH4VJWwagwLsWVGHbPiw7aZRTSLlOh2I9YQTKBU7O4TjrxrhzxtXHAqRbBWIyobtxMsyTW7aEoz5B/o0BrxE9guxthPju+p4DSqiODnQK468Ht6LNygqAQ0ct7NboO3gnPbRvXfd95zQEIZBI50jE/xhYu3KfLG6E8iDp8Qd8/PGyFWRKoCaOtCvjWijBsIc1+6Q7d37iwUGcH4UcsiGOYtc8h8gm6oB5dA+itMxZy87UIPaHyrC6AKYXIqkh7jeNIj2yhXv3+5VNZi1OcI5USbcVlHEAek+zFS0lESQTQ+k8cTCJUtSxQPMglV5NOiumdjCKsqETiXMPHVbNsDD8zhAlfpgrqdINyH1sn0p6aB2BF1lhEBLVk2Omw/4+MgadjImZDixDY79q94cYOgtY5KtcFDxomzyz3XFkMU4HWulPjZkfgCX2mJ3xcJtuKQAuqzPsrXotiDm7diMSDssLuxvE3FEYCHso+R45Rkac890hNh35Qk44EnrLcvJdkBATlUWXKcKSvQwPpe0Kb7zxSpbuS8L4xEs6P8GVlDDB8T8z7BjIkOkBUmHox4WqMkflQOvwALSAemO/QmCIPdmC8E4iz9xhs6Dc754rSYNWIpAVZbPVFaIvIdEbx6SPW3JoOBZTEwo3IhsEWpmQ5kMlijpov4p/cqJu4xJaVVJQ7IERmo/6Z1CLre1+HYxnoI2wosUL2o0LZ7riR6RH5j+A/gsDHZ38xKTMLQHTHfyTrTDEi2xCPecRJXI1FdJ4JUb+VA7yqWos2IbqzHPmpFjyeyTEowLavBztmqC1MJBDLMdenOdQx0Sc6Lfe6UqVN9QlIKUWDwDiUkfrQDuHqMFq4+apw/7on3XmvHZ1Ycu9eq8C4Ve17b9NgCBAonSslY94AzckF+HNWYz4LtEh6W+1FR2QVjBtU3wPC+H7p2O2mPE9C8QsfjslSz/ZrV9AGbOsPYgFTTcNUe6n8kuhFczdhWt2wXScWFsOPKrYUkxgPcDojQT3LDPefDve1+Mra6Ai9Ptun8/hKthQbm2XSboGzht+p6vp++PZY4hlCbB4KrXIhRN2f2Jh7oRE43tY3OmuZse/yOi7aIOtS34+iaMIA9o5MkvS0d7beKrtM/sRE9u/iIF41BkGpYfmBn5RNWvLt3AMlnN7ej9DrUaPx1VaJzVHuZHfoQsCbOUgs4A3CJpm7th0OamslMim00/IemtTYZ9LaLTvZwMdzmUslKSKnm5f1rs4mRVa/JZEURzKwURjC6Rg4gUcctJmxlIxm4Ku2xH0WcAuNU+9DkGIjsMOCCHEIdPI4XWgS6rvZx380K1KL+NyGNJeFDQfJCZnOdsmYnOfWQX1Uon6Qi+vsFT5UJL+6Ka+wd2EhG84fZeNvul/REpU24U21Z4Dd3I1iZGH78HCPoOn5G8XpB4XW+NJXekMFToVjoAQm06jpeS9LTTCT+YVU4TYaXX//HDz44fzwvn+eWPMDiW8y+y3KmglJuBSJbwPnoNEvAyDpSh1ODGmF4uhppyvCercTVIYHgOujT8/L4mDpN6OWF0WW8YwQpV0EQ5V8kWdMR7zzu8iNefCybqM5mbZg4xm2/OLBraNRbL8olZacFIpqq6/N6Gj6vmhkBl5UDIajaaqFlY8VqljEREjOF+L1hsdG8AC15WE9+hR9jFAMX2RqGR8AsnZtCxFMv6k0DPPVLxtXMXlf0DQQ5xZcDQxTOoSd/ZL1sUQyXp4hmnQQ2kBxB1F36iGKYyw++JJozMEHzewgcZxavy4VJ/O2YC/s092CPAX4I5Gy3KrEwJqcB8DkixBZXSJiDAFc4sqdG9Tmzblcp5gT82p8uZEmnMGB648peTIncRa9JQmkzmS0cNNScpQt2HnOkMzdXnqRpt5o0Den6Dnq0Yt5aEtZ2Ti9Tng2FYiwZBHtAlBOGp/0Pg8AsK4i2dDvkzAuor37QIFtoremjpVpE/1Bb2s+K6W0rZj2qkNQ9myJZkK9MWtEnKLYBYxYxgmRbYgurr0beUUGPSBaddGoHRMtQ0FeBvqo6WuNM/AKO+WZjat2SR2grICebUe79u1HnFKOv2ZOMMJkexBJYtKDwghYSpkdgM8a9SfoUcftntY0gZrPPzoLIRhHpikYAJHpxel7GhnYpnaNuRkdtrZycl/qUs4uxJIuNSsUxBkisHRpZcmFH9KYY5J/EDM2s+BmULvX4dcXr7eP+urQJa8R0c7nUcALp7Cx7Q8TCwrhyInRdQJWy9UUvuzSxS1En/h1sxDJm8wme5X/FjIeINIMdmBJryg/JnbTa1kDavGjYoY5Nt4PmbDDQ1ZyHCCGT2SZlh8Dk8q7VsacCLZcN/byr3GXCNCyMqzSOsY5lPoYHNL0uFGNVODK8onowsWaTN5RIFu1bNcKWSVpLqt/EPVkgI5GLYCrlfYIJ5Oh+yADonlGvbO2otGHfr8hCxWji94Al8jPsBnaQQ7Z9DDEgU8SOx1UgYy6JGikeoquECXvcExuS1yLuyGWWIk1u8sdcR25rdbOZJ9zqDMozCKBFxDFE62M5PjIgvaHDVOp9wv7rMu7dxWusBcOrB4vksVgKVJmnbrw9Y/9vi4vNVg+nuZTW7SyrObXyo38H5q8EJ2IDG4P6X0DG6VwPNWAaJDHKeHfKvMBnw6XMuC3Ad4M7HUfipx2LgGYIx8WONm7MlJTdciC081I5h4r0FipxzJ8VmkIUk4bAu9dNuAfTuA8ewdKXDBLY1wm8saYeRmdDWtZ3KBofV7PAjSCBmyMQ0KTsp+OxCMUbQ83RsR0RsUZKLc1db3ZiEUT/oetOHjP+rQY8wo9o5uEOcNTZQhyeVN3MQ/AwzfmxDnfc92cL7kS1i+9rrxhoNXl8+Z3d1WPEN+JINuHWcf2+dDS0tsI7U+jNk7SPAkNjLLW7QBEn63YUx/P7xMI2Op7ZgALkNtQPl4MjmN93fHkjkiHCF5hHLC1zDpAo7lDUOfvbCYzb5o6kuVaOBI0wto+p7Zj9PNxRC2oOBYpzV2mFoZun84U8MKeAxyRGOlmf3k4khosCJs/JZIcEjAAW6CcA8Eh29Ouf5g31iLL8fLhYA/sbUt6qmVnwvM738ZLRJlGbqp5T2iimtABsnIAC6tXEPdXs5FGDaDVjjywZkjbcHRB9LaIythIR3MgPQfDFyR1ySuwzP7icPhMH+xxLJCXL5b5RvZgfyNDVIzSNM/UPYTAcLEXyzyBdpOfkFyTFPUCdTUfjZxlC6tEk70FxUHWRDqGWXC37BclLIY2dLU8YPSm2onRRk20YUd6r2ZzDEmhAiP45vmTxznZ5GS3GapbJm+ticlQU/tZyzn/97o0hdSlGbCy5KIbuQ+CqKF04DTmrQwBwRBceWi7+AcGSgQaMSvLNSKT5rfVzFTaeXZ8UkugMPoykvIkoeVt7SiEW72/aLTzK18qOUz0Bxcep95kjbYPzhCJXglHvpXDgtqxUO6Yqp2MBQrF/+i8UDyPn1YV9uvPA0Ui4e4fNlJapvIdxnUoMnIXH7PzS0OBuHizfAfAgMbvGaU4GHFAPQfjw0OxmF/pVTUE8JKU9Oi1ffqSanafqVNNQylSxriDyf4h6DodAH38QRb9fkwVxtDc+WGm+4FjOmaXD9xxyAFjNVrdcLSiyME12Dof0dqTB46kakd8x/j802xszefa4FWRgmumizF1IibLs0cyIHXxne+w+p4aw6poad4pi81la+3naSE8mtllzet6fJrTFX4fzH8/uGntqoBrXEnHFH1MUkTHikrPStRAl6C4CqJm/6cMrAstx0vFUAHSjCItyDXAl+5iC0RSG3tv0DX5LDKGllEBiTBiHxDB8G1J6xhTC6E+z08dQg76/qt7vu9Wq2gE2hBhBsxIcuDp1uCoVUz0t4wpmeVGIqWnwmCQzaiw4JhjdgrhnTECNVor4RhM19V6HW0cFCqZnAEofHCzQKt4JsBb+yr8BSPEG0QwLWpsqIGuWDWUZSkGGMuZiApgynd8boaDYolChAurClWoH1CzValJeZqoZTz6yuet21lnhRIRy40XtNb3CGTsw+jZcQ/3hZDjpJarsvEMZSPBuEP9vG7RBJ1SecD/nzMcjx8VhRFLq4hqf6WiDZjRSQ0EoOgTZR+lZqCMAfhVeAJ1duXmMzlHcKAOnBh2x7HVdGTMTEvDqaXYoC93fVU41DqUqpeGE+2c2yoRm3C56U+WnKaDaxiq6S2AWwOC9GPGF0qxQzNSHYLCWTASAEB33Ef5rY9wpqp6oWMsENCG5To+y6GHDwoWf3IRm6AgWfxB2l7nj/O5p1BKLe3kwG0i+8jiAHqU5keal+fcgkxs48r9X67NBjk58Ksj6STOnkaIYMwTkRK9w3eae3hTEIIsAZIi3KuH59A5PqlRnYO+a1cuSdUC7voshGfKl77RSqu7+kfX7mqWsvA/PX2z3JRGMbognUPzZPak9TtV2xjKMGwUcZIT/hY9tzWNpo+tE7IL3Qd2T6s9J9vQRmLHePR86PHqD0T2ox/hzUhMqUO3FubecRMe3F/poGeInpPRUQshEiQN61C++UNMmZxLRwL0V3+KDfAsJC9nE97LSLJMaX1Bm4AeZqN5REDmMmBinpcIEBrskexv9PRUxIyWaEDZMlrYFYvxV+XdvTssmd04yq10gSThU5k/ymfwKk7hESyLL7eR2dtqUf5KzEkTFF3LB4Qk9Tvy6NXMYCEGAFoboaC7gcv8tpH3t6gsfIYJDdzv7x8quwWwJdf3lRgKDpvElwyLoNTrl7uR611FOS88CwIlgmr/Mr6ZvNBZHpBowDvBv84LO/P2qU0RENrlyokaK535uVdqkPqiR+11TsxhzEGk4iApT2J4U36rhID96H/D0x77fblzNroqo22i2zOsOB5t8GNJ0F1y9NMotoiaVZrgWFYf+/sWXCMMAWPi0e0l8xwfC7CL9m8CVigNDbBgUmVvlrhmJWYHtjBKZcLVBCwUJ2y8tFsnwqcSxyIGuxEB5pAOIAU4ypsoEGsfyYOuw1ZuN18u2RPBSWGdF9MN3P6WxxWYhXRPhhMLnD3oCIe1dcC09cl018Ko/+M/Z6oXSRHMjhqP74Xl8U7nwOHQMupiE07qEbc6BASvVvq4RzyN53iVaLEjTkYG3drgXLWKBIi/ZaBaZjvKd9cd914JN9oL8e24QTSig6+B6xeu65qG5HL6ujPPZBm4LfYqIEQmhswvxAQ2KnPrW6FIKzlOoDrfgwxjYxLqZ94dsrjLTEU2xjvnxrlqghyLDiquwwExOFU3YgfBqS3VBLJC+/uxGU32iuUHMOEnOqtrOg2Qbpr1dW/flsY0b3c9NDc3Q2mEfY16hHH1RvjdpGqI1RrLERo58ifvz3WRxvy9/zzTQ//x6ZYBJufFQSbqPLKYq/ZdZJtdBgq3JaGE6ogJl03XcjRov/nghNwuVTbaA9+hUfI5mR3L5vndGjfWxQUXQAITgtLuLWbEYY6FBMH3/WUWzrUeuxr9VoA/6fVkU1ewaq+3uoUn9SZmt5BpiBfleTPOpnik5jehm1w22053B87Tims3gyO2oxTTW3c1dzwGZpX8ftGlHnX4Ip4GAJ9MGFranAFOI3HCXpz5TmOhO/1Fn8vPauOOnijqCLB1NE4dS84dnOcWiv3jja11phKxPz5F8zFNtPshwmua2QUCEBOyZAoxkvIsp7tyRKrKGjChDZUccO6X13hfl6LtSxmtlTFrGtFTmQOFP/3wKadEelg76dQb1e47Yy7/ZpQwQeiRaDt+qJlffCR9KAIfhC9WAQ/OvV4FPwkemNe+1n0qAt+IT0YBL+69GgTbP3tBjqovfj2aslrLGrO2tImy8k0OFM0DhS1y+uXt7qIKLjKxejkFmpuPdtns/h3quPEVvTBjd0Jio/aIl5INLw4r30BDGUl9Ou1Tyb5i4gzpaOzOMUk5WnvVEtFzXdsqyHGjmtw/zWoqGlfRbh+0Q4ZDvyhkJcYBlxgtYSsnZuy5h0QAULMcAvKNS3k7NyoaQMA5SRK69PKtyImMga/VzE2SZgbnGA1zwqo4EhiPuTSS0+dLZN3GZnSMOYnYKuIL68oDdPALz8ACpLAnoXHVcoUhCREKfBYupshyvl+6a3IGhYUWU2B+I9qIcVyCVcGthfFCdBOE8an8A5l+GwIYznse/vWGWyyGW9qt9DMsQYR+thYtBjlLhByAt8reut7tXSqMIik5i3FLiVHQNTsdGK/c9pcuE5LwZtLnPkh5R1V8tWWpQJj/CkqKsogOgeYYs56u+vhN+6LG+Gs3dtj2PS/pij2nFWQHMRTalOWz9bVut2uY6vMLng+BzXluXC3KU7Vx43/Qbk+0y5lcD/uheQovpAHJcatrnmxeLdDSHX7E/pqS80mCRAeVK8wuJ1+Qrkjdr2npzrdVVr6g/yoqEYWG5UTBaWqIpkpCtKHFAwCd6vmP6FFRbWDcchKguohPJkkhOoJ2xRgQeGBXySd26WBgW+FqhmSARmAXDGk/qGSTXEHkxnVYu5/2BgDPs67ubdYxtDOmoylPbiDGLbJPnSqRQyNYrJK7/6oftYP1VyQ0icbfWT2r/H56ZD9h179ZWU1CDHAXnb3kVnzZ5a/3c7DzTln1wM4fXEFsjNIDJ/sbEPokCfQuakXDB4Uh5lTMrojLPYcHxm0xeQctkzLpMMwpfDoJud3zeQwrw7Mo3JyIDWJFBvDGi5H37H2Tr0HftGZUYih9qFEzABRrORIXsCbdF8eshRySOLLYxUWcI/1w0R+jyBHFUi9BFKlP3pPkCoBDokp+Io09g1+UMntzJGrit1FL6J3hAhs/rzjzx3KGI0mKmp8NC3FtJ+O02KSn/aKY1QGmL3QBsfPczndCp5OPZnq7vwW90/wRAovdfRFrbjWEBXBI5VWwGgioaMvCoXa2h+KhYOVdAXgUIT4r9OYMKRESaWTEFLC+cCML2I1DuALA2ve5oFofIehpv0FVhIXk6qT99ajkUU34zTBJqkmMrIzHJyGOYVzQ9WM3FG99YqwU51ZDRFzPn/udd8YyiplGbAimlvzFOilUcucRvotnOoSlP+wzN3fGZ35OVyjHf06PU0pdFM+a52X5P9UI3AfUoKqvtqXTjjMDRWQoFkLCruwABrvuz70c/CqBSUMML6It86R8eDAuQp9xAzT0NTW3p0OHW17z9AVxfsI0QGDQbeKctg+m4479n6Apfp3J9NzsgsoB458dhDQxjgUXQjwe1OY4YqXYYD5maFAu7THbaPmd1vfcYfpOtS2e56ZOmbbZi9sI28KujfPmFdrBMCcY/1zqdbjFwVuTVWgxZZJt/WOQyju5eSa1tVr+/0q73AHfhdGJi+s5O1D95J1uZgZRd/NAtwejn5v4+YJnaIWBUykvd7kBg+f80QC26zYSF72Xx6JgeaomSQG8HzlKswfrZvbd4qmEKV+oUiotB3twIFEeBUKRY3z15Zex3BV8XBgLrD/gsQKuJL/9rVmWgSMfaDnJRB3rooEFFZ6I3vfxf8NmY6Ba+0NZwNvll0PzL08U9fs3KtCEXbi5MRJiFwTyw1fYwt6afg+y6Qs48nXerzfiNSIe2005Rr4NNr7jkuW46SKbYFRnAN/gIqC101SClkXLtgj3P3kqzADHgnDLoOCAmBB+dt7muGnbtCzZ70esX8DTjXKWhkyr9/uh2VqzGAf1f7LRZEr+A3IH6Xh/zTapxB+mMA//CT1qB+TNjdGrfHx3lekjN6Sxof+7dyn6uYb6VAg2uYQUqwDTz5E1c8JMUcXl0GTmQpotXFwSdhS8v9GenbbIP0y1dZCTO3EZd9xK2c6je44GFWwT7Y/1ESE2TwWb3XJCx3TXSSOWEZEr7W8pRGBMxR89HHgIy6D8Runr1y2Ty4/y5odVUk09K/64rDU/w//kIpbqx7x6WyWVZcvK1acFq9gK/cx8ncUrzr027B29g+XKpDhMPpA0nR43xv27T9DBelCGmQfMrcogz//Yp9An/616kJ9PKQcHAUhOYWkZsVTMuxAQ2A8MFUFqrUjSg4TFxA8BnS5aDZmEAr6zLU04GiOqWKHqiq4TumZg74+qQxd/8I0BWQr6NvE3DCXMTmnrXHqLlDmU73pBPCAmrqjQ6cepMJWMyeNJ+c5zqAibN9z0qrP6/Gdg56Htkcvpe7aqTLFoJwAtDsE7AOHjiUk5nOKY0ijnb3CR9/Lk1g0CUaRIaZ5q4NM+Y9Q2cE7ljFJUQ1m9Fz+cHju5aRR8UKK2TJQ6WgDH7ouOM8pU5TEd+A2hHtvtOkum/Rw/dFpN0BFQ7FM83wmgiQ0iDdoRzNqD2mrlA/P1+KqLYTaD15B2Q+jmv1Lue8Knv+RoG3urqKV4qFyqwaxSINNcHFLQFrwY2Ob30Fh9Q9U//ELy6qzpmw7dK7vbHMnvQg2EYcySJ52Njkj0XD5IszqHH+vka5wUJcDaiJuTyNj04tbtKLpkuEmJzA/2V321kV+svyty1vNFSE/VBKT2/Q4P3jrbSnucWHltlLiuX21w+MSDOYnqxwTcevY843YgD+trdB2g8vmL2ESEwHkNfR2Gch5aTTMZPpMucr/pvivs5gcOF3fPFGJNq6iyH7by5MAlUz1HUctmPZjoKjBaVIQl4xbw7BpO37+YK5bCjy+fdOBSYOM8PNUL2BCg7SIwx0NdSDkvWew+mZTKWLoHOYKB2923Jt/r00E6F6dGbs3S6OHoQPDR1ReXrElG2ZRqK3+H7k2LEBIGwFCBt5QDemKThycmHIPyBgJkD2Bjg/0b7hVxJFbIBJ+EtqiMtKUPl6QHzuIJj2N9Z09DWPfaYMFEkWk+U+oBqVjNBOt1ig7BCmDHxe8FgOqhXDU5se/UHN++VgZYt1wiRcqQIEICkD85YJoJ2heczgusNH+TcrX2yuHZh1KptbZ4HnQWVMb5p8bEYgf9ImOVsfRCQDf6bygGsR4qhxiIu/pstrK9z7BSKeNuSR9xJnkzgcUQWh+OKl8w9Ghsrvm6Mh+L9D6nxU2xOqTVzO/pbaa0VRWYTk23bWxOrDf50beiQum8Pi5BVPDKWi/KRzApwyG4ZFWHah7CNECalOkejPrKpxJWWSztuBtt2XuxhAQe/4xZ4Ft2RN0YC9IP+wBp2YTwun4IHGKvie2J3A+hSKiu5bbV/ZKpJCpBT+1NFuUTZ6ALRI7+9RZFH1YS+N7TX+YSmt+KxU8sjWD2HTctpFOeJMx4enp0Se4lXRZ4s36lWTNhxDietteEAI8eY/c/9I5jKHpVISfwAqk3tAHEeK6IeoLYNMoROJ6jF86N9yUUw6MGj37DyKmqTATgLDHUWBClYLzsfD2TWb06eoHp52Nxi2wmCxshIYIrpMqsh5GqdfgQEcO2rPCpdcYAe6OArAUV/Ns99RgLy/Pm/qJqZNXn1JzpyqAFpCNap2kAQm51Akwf4r+IwQ49jxnShOaQsS7lYiI3DR/NdQ70g56UuOCREN+/y7lA+ITsfnnkXgiRjcuiafqeMhk55bfBra/yoLefUgvMobOOHv7Am6P4AK3hDTFW3GxthSvQLHcoM0EZ14mmojI/IMHqxc9FVD+o14GEAAopZ1lmVW9ow5j6Khzc2eh8IPQCbIDxXrhjx9yKUXOjGsU7M3OjBH4bfEqUrYldKJhJ9/JBLatwLf0nuju8TX/JBHYH/kVE0L5sA3UoAJkZDX7RwgfmqiWpJD0sY2h+lt3asOGx5O/QOyL3VqSDxIQDkQvB5yoyF4V9Lt1Ul4YJw+zET35xp5RQK+PofRKsvLPUpzGxyj+F5ozcguKLCp+qHN1djd5Co0drD97fzArDuTXqwsaqUmc33hIJg7wgExq67khoIutB0k6yg7o5hIwm8ugDKi07DlaeIXrjBRwTmoNcRW3an4pdxaQzfLA/pw3Acw+kvmVh9AMd9E7aBRip1dSyf3t1UBs9+M7voTWC2Lm49UFoagIekLmfMx1a9qbH+gXuoBmq+LINcKeGq13rjR8F5HG8Ll+HUd14DM4canu8DVU+KcKy0k6Y4yLXO5MqLigc/wddaMeJiW/ic1rUu9gUsoXOdBH94pevjqu0b1UzlzM9HNfJ0rM3cPL6m4LE86Z33AdxBQrov1jY6yRiBN0jAU21vBqrna/qwTzu0Tup43i8dyUMqoqlgXNLhTcHZJyWuMVAieyOtcFZ+d8YkMGDYX17hPCMlD2y5dnXQXMCIwnT1A7AqyvgnWKDKOfHQg64cdoKnxFg9Vh570sbpdbauVjATYPIXIfS0WXAc1vng1M0pVG/At7MLEf2K4DrnLxI01ZbVFvUX+vGA194ikffttt38sVpBb6YCsL3RgYM6DKJi/mfNr0JZ1SoItG7+Nvhtnpizs9LkvxkwWLnvpVFSp6C7xO80HM6K3zPnegk5W1ERXmg+jPSavJeRquQ3cdyKdSw3Rort0ErI+6o60Lsu9dAGHUQgfQP6v8axFXy65QL5QwFcfKSuBZKOfcJYyzajAWyXW8Uq3N3oZyKpF3Cl4HwNGYJW9X1kdOlTV0jsp6rpOFA3DTe5VuXiEwPlT0eBRfU1FeC9V3oRj+8RwBn44TwldRFjWJQp4hnAjEofrmMzf6zEqhb5MAEDeDo6xcl7PMhb1E+yoeznNcMdJqBR/gSvoAQXKNdEhnIgBF9fpWpxtIUGmv0hXIugEW51lpGLzJRdsWTp8g0W6RTAWRcB1dzVGQWByi7YbBMNBzyrVjPuj3eVtE4ax6Bmr0vZmbDlSkgG8XbksQgoWtJbDYGhYTHLOtdb44X2J72VEVMKSRi+2M57SNanM0gWN2SN0dLfJ57PoZiLb6zzFUInZsAchApqtk1Dm0sHEUbuscm3Ay7mEpQpNhvLgzGbRDWIrh/g7nDRHrUpWaKhc1XhHcTtOOFqG14yrsFF4iVDSOt2n+SkCo+QT2ViNo4Y+wzSl3ssBsA+2j7IhKOTR4LEAm1qArHnXoDHEGW+RNRFMAYNVg4y2MYxMtiGBd0bjMokKIQtu0gLHErEL2ySm8IHeGmSJrvmsznngKXABkUYM+gqp3OLWPh8Z/HOCqNzdeLzoDZPkQA5bbJz7Dt3qijmakv9U4cPgDRRe+KZMHiJuwJQWX3jcvss8TrasOt6T6bA1S6ptgJQq9NpdVQLmk9KPulHFy+20NvvL1fSORPlJBr/tKI5geKushVnGxZnqYEcWZZjdmyItn4/NkA4WrXmeAI5b8lDw+EVQppej3Eb+ErAXN2viAjXYYtzUDtkYL617Nf40vg6RpFLHiHw72zv7HISTfyXeGJTnJ+5tAehnL1jEnNLcUo2yL1P7W81IqlR82o9c9NuDNW86FiJghZqJHIfDqih6V76/pNfgajmF8tsrWwOEG2tfJwXKtr83VTZGvW/eu/MwGeETrXAibRSSIzUuNDBEgClzSmTslCMRckNi7Qo3p7yBKPnfwL/fqISAf+U7rpfCod8BBGxhIi3SJR753hpMPfQL9XZCc3uAqQGvt0TJrFmxYqBLRo3qIzgJe2RHEOBMvYKHy+4FN1kpBTSWEBqk/Py4UXpkIMch5mJQhQcwhJtkrEzHuDoEDwlx7uiPkv/wFfE8CtPu6tuHOZ5tFIG4w0gsKIBKfhOxfzLd5bjD3x1P6mEaj5ve+Uft3RYGkb9CB4QXSUBvli8jBIrN+WarerU0Kr7Z1eb1yswLIyDJrmVJVMTbPaJ8+/J8EXcb4DwBHobgKQy8z+ArIzSL7GpagknzB6hdL+0Tz8VLoxkw+czDTTZy0RBZls3ZuicHX5mxpSjs6sSyLdiYt1KKdifO3qK7kpVN0m3uJF6VxfkWrvPiLHpY8J4zu1DNLzB793ZLU8zmXFD69C4s0bbo0juDVLN/wtb1xmZtT2lZcvJacOKRnblEVtZv1uKshUiwX/6CuQrMX06aJ23xSNqd8zdu2RrUFideczknC5rSVlbM9Bjavy7cLdgjEKiA2aXEsxFVh9jvJvOd99cQz6fnXCPOsC1vruNaJPxsEi9sH0ItOMgXvpM1E7eDiHq7oDJu1LqpIp9P2mmIqMae0Q00Z1U2atnPq93xDMnpIIsai/JI67nZ/pvYdxm7s3+8drFEXbmmpsf8E0aYdElcwQNwarUAXLNhk1EBO0pWfuWoExbUNNLClStDZiRwV45CebHjU8AUvE0UhR6nlBHsUmWD0QHOQQyBatg6fjIhsAROUTtT9aLrY5W/BxYXP9vA2fgGHnXoXK6bb18TWrdwN+yDp17WgtWIQso6oLEMdyqHmb/p9Wb7yz9SOTWMykZxfkaTv14X7+eAsiTNfb0KI9e4Hwevgi+mxz4mamxsq+8kSlO39a2ogVXmeBlZAk5FAaUERHPCvHPDm0PEfifYD+znGFpkbytZ+7t9mJ/AcUtg35+iqT5jLBpbYAJur88CFGaKVWGiA4as+7161ZG18dTFgC/zuCux3SJV8bBfPjVptO8B+kXle7jgbVo8tS2njSfpaV7DqYCc5vAwYSJT0hroLDRqJ9wSagvfGNqBRZnLtyOE6JXqQ+129WuwOCqEKiCuJfWiFeN1BgFLBZVd4BXHreSc8+VwazaV0H/XFOqzeIzdpYC1/pL71QcC4a2NaY4qC0ik4m5dmVjfGUfRNNYPavC+XTDJxrLQ5PmNsE5uTfLIFrwnXPRAIIIKQG+RYGE0Xog+tFoR95Ix0vptSAbG7KECieh47kM9he8QdNB5BCY17mKOC3K/1RzGcF5JopS6Bif25BcL3Yykx0OFD1PhwvfPNABuvrorSMbo4NaRt+qqKm744F7PX4z4HKJvjNNoYZxCR9jlppVMzFFXDU3t1nFITpAWWQloith6bj4UWmPrhulfZZKj3BB7ZkR2p6rOebtJAwiximrcqH7ouwC+7UBi4AjDlVseFL2NHnqkpGuan1IC0hNeYipcAy9il1v183BXs3DD4AcX0r2JcX38yBzYNZb7VzrmFg0fawMOwPSiwBpGPFT3VOuA/B/iR0HljMXeqOZJZ9CqfZA3OG36ZtuAyhc0Fvl1G+8vAtv0Rlaho6o4YncG4uJTD6lzs72c3hfUyJbxM2bsOs0RnOaPcVBs7sy6FeqUZQBWvsb1ht/gdIjkAB647uyakoV0dqd2nGedQ6HgiJ5EE1V6XR/165PPaX0hJl6R7fiSpRzH0lFPNVZPhvmGSh2D6gDS/UC7UdwT3Xo82Qdc3na0TbBUfwT+8NGJlJR6giCeJISgfmda+Z/4xTtESeL7cpy5mTbU2WzVbop3+IHzNLp+TyXWYYCUQIUJS77SMpQwgLi145LpHdH5GqoDrsVW3kvo9m0Ur2IobNS2Y+KvOgR2fZ32Bh2FFZc5OBmEFoSqYzdwVFuiO2Y4v6JxdBm0Gez2eBfVYrjRNrK9szto4xcabff5Ek+dqHWTqG3G42Bx3JIzgzFKvGqfTN5Z3rqaRQTarlyu4/02lDYFPXL8pFG0pj9ZV5MQLGQLsr7oxVALgGi4ihMg9Oa+FQQ7EgLUIF3oPV2pBFzsIVW7efF9ntngJBp1AJpflfNbnHls9iQ91SFbeGlHKErIQI3i1O0LOYQPJKm75YA0oLPOX/1DIk8Wjj+AQXBEky2+AMZkbymYr6o1bg8R7DJ9h2Fu84fzU3Kg07kDMQs41X4URlxx9LZuOxNzigXzvIHAcWimeSKjKfVEc1hpGJ2tYH29FVwuhoIbDOch05mHmz54n5yZe+aRuFL/D+7olLSRJGcQHIltoJDpo17Kl0JAwo0aXZduacWbkXbgzPR/Kajdh2QiPJHyFx4Ge36GgoyAAPU1L8HMHmlYGZpoiCZpvsoMRKUmRape81sn+j/IdTp7i9tiQ+qLpcYItLKSG7KsQb/BmCexn6OVirIBlTvHW/hO0TP05d8YKZ5ipfYfCwVOqkUxR9Z9aW+jvn75q1nQuVKgy5Cw2v0uUl8fR3J99xo0BOn8xDB4xe2YmMGV4TGkInlmDOhV9HE0z/DMmXFsuxHm85/69oohhbGaAwiKFzuPeWBvE1E6DiorgE5dsa3+KGNBdgyUsg5Sa4ZJCiZMidQ/ept1lQ00RZsW1WniJRYhDwy/yS6yQN+KC8vpuIzzhyru04KmEyFIqA6A7AnDYgFuEmeuNLCBlRvBYhGU6NfhIiHjcQA9AxAgI3FPA2VAxABeiqoRiKzhFWDi9g6+xhOz3RzNno3mRpwFqR1sgq/ZoJvNjlUNKORwaPjmKMEa0N1O4j5uVW7/Q6wliSieQt8A3fofe0OWykocWl1sk4fcfZzFc39cYdWd9YAkm5SQBJJUIxzGw4+XNXbxLLxdqeBobObRyPklP9RETYyI6JMr3lDVAZZGN7PX4d9rudCZCxXrnQsNiOXyi05yNnqScOsYLITbPdqpCK8uS7zg+fEya5sbHPLx0e+0poa+4a9Z+K+5idYqzFWL/lR5u8jz15HT7oVZmuO2Ci0crQKPESBqBBnX8QFXyCjUOkZkUrBJHKxS36KPpESyABg5Rg4ccA6imp7jGp24ih00NpmCgJ2/wy0lw+wL9N5223rYgk9i5bEz7Ye8MbrpjMmcfONCQK3HTbwU0BKa3iAkJT5esWJQWibyxFKpay6XO7VxR0BuuWTXrQix6xp17Pgx7gavz/CQKFMoGmAHSNn15/Ur4eHg8UXymxACP0KB/dAAG9wvoGOPB66Hp9b0H8UvqnQ81GuZRs9g4NSar0Hp4uudM7x/9pDp8BjKHxDr50AmhYlyqRciEZdGV8OSCX5lPXsKsGAUVlXg3fQuo6ih61AMK9cgi58CusI+khxN5IwC8qtjQQyssuTudN1Llhw0HRAnwhQHIITkbUo/gIopEIXSMM3xkOfEgWWdCQDAzUGK/BvXmqT51cmATnJMEmdUsx94aBnUgJgFntAd++St5MdCpSZkGEtifRwFn1DBKuKEW1h3lmRi8jDJ14Y4orAUMt73O/z0EYCfM4HMWyh99w9taGPvzO9LFN7SF2j+XKC6tNlDp2zrTHxDyqbA6Q7ERMzWxP2i2HcU4e5YWOFbXp4EbSZoMPr9kXe6etDw6xwySniAB0y35C/cA2IwwxSRpuZGe0+HPUtqDChSj1VI+bMdzeTA6eFkcI5aAf3/nSlIyHTGw+SqINS3teR0K8t3p+ZHi+cek4PNEaOYTVfOiucU/m0Oczee28lxit5CxqhqIn7orgm3hy5xS3CWq+e4tIguSKhkYFHzYnb5G3buPUvfAmtAJzwUS3PaRJUrc0P2jZgSs4liWtZCKE5L8ial0stcEVvm4UQ2F6iJBUwkKJ7jctLkQ4yFil3DhZPCIEeSEhzH3sCmRR+cepD5Scu5iC05SAKH6n8luJDmuP+It0I45Eo1v/Js93QAnPkdjY/a8Vh/8UrfOkfyIdom2pMXhYNZ9Iv5zCLEgNPh81bDw7EjMkuJeeiJDT9pXu2pWgTyr2p4KLMA43p7Bq76hVc4YYRaflGXJd/9RB9hJT7pkzLLy7ynWoGqTYNtVb7ScZjSRcBuRAX4KYccKgE5EUWumg8/LxRErFYIrzrFFxS7OMyD4GV1Tlk96t9pesToZqsbsns8h9FKiDO+G5fse12nGyLqqBMcDZf7ThSe7Tk9zGlCUQO6VbkCCdBR3+Fvtj3MVDrR/PZ/7xO6b3scZ5LF2j4YK8AvnHyJ0adSQIwC6f0Pg+EVwQhegHwbmH9vdlQ2CBAJVhEsZuCeRM3soCuBS4GLGEdF0I0qf+AAEBP3O7xXH0uaLyPCy4y3j3QeuYrLxYSBZLoI7brDIi8IA3vWHV/fWtS8/ryxq+5Mo/nXEYaQARhkCyAIsAIABUT1fgh589PqHMuGIX49j1zy24MYEccqcPZLpehyJj5lqPvaF9x7NUrSRxmNo/4nn/RsDR0l2P3qMZ5vMWBAXHxqM8LqEK2oJYYtg/OVU1jeIGJVzjUpUIYsPeV1SyoCENcxGDa8tR+Dlq9SGDQw/GkK2D42kVx6SbB79jMkfpNW1SuS5v5QH+fofC8atOTfsoq28X/iPdslR/0+fQViLGGqArZT+W7b8Efxr7RNBmT3tHshcwuHKBRIYnBMnDIG4ozFkfly4DkP8ws53F9wXmhJCu9kouO6svqe0w4PTRu58lQ87KRTc4JrwnlUSEEnK7ONWRc7lv/QMvORqgWfK/Zx1OWWaAQ0QpB6rIOmFhRf/PkEjrdrjBlyWYK7IX2cvXmFkzImo1WRv5ZUAAkh0j9Khv92Vm/Q8QdDIVgPS5LcUbTJ2l6Nh0QZxfWbN16WctRc1soxYSnmoKnmfUEH4EaeG8/cafTJ1I4Ct0JZgn113KgJomkrN8t+ugzhhl9K/3HCpPK2zinW8XE2TCPe5vTOGXo6amGb6bYsMrJNLM+fyIdtTX1HR4716E+OC31D1Vz2Yz+3kEGmOMRV64OpSCuiBnDqGQ8rNIcx+pDvIgpm3eabOYZgMI581fQAzDppv5GHMiJc61MOXcsxJaE8P9PYoI7eUtl4HIE3qZGyZ8S/TiEm6hxzJivU5gHHyosEDgQv3p2gN3IaEmoGty80kBziX5619mkqh1PrR6sA4/4Tz1mVApIknkxTjOoKAIiugAZ1GPSCx0mD8DXUPBp2khjBBv22QPF7A3J+2DqRod2DVPvT+AAOkJX6+wQldfRVqkRgji9B/LH66VsvTuzqyD4YBRbeGwKHzQGw/+iTOMG2yopqMqLA4uAa723hn9/5JbV5hKHmtco/b8QJXUQImudu9GiN/6LOYo5CBEcmUhc63hn8+sOgWcsA7FXmTFSj6Q3X4mLjRtlGclTYduj4XBv2T3rFyr6W0mlZBxaTXDQQEohaUkUYcUKk0M4saD8Fko9WBXA0fG6mMjt223CWKeagJjiEFSf6Kx+bPdbX3o7uK2jTIrsPsY8ZpjVjIoOX6ngosRb2oPeCAiD7+KpvWVjWhmrrrXCOKb2y0l4V2hpdvq5dv7/ACVd9BgsvHfNowkq6LvyEZ2Sa2Z8n9+Sw8ajAZzaNvZeyf62TaAqiwJ+pMSvjAbggTYjg+PexKY4eoySweZx9jc53bKlL8nTKj0Y4I3W+7Hnw1WgwnO+cJLRp0AQVf6RouXgxWCUHWkKZ1RjKuqBeRd/tusGEzepQmcIn6Ca05dqXzowN9FTd8S2sgf2rDm/nG1OrZsqLSNepdubsp/+NkQTLewXnKxz4IdOTAoIFDazI3OYwQjWzUMGa4Vy9y4uFCC34WMxRQfGNCinFjF3aH6lLabedml0BZAodhMRMsMyrLOpYtIMYxeS41LR5gRqAWRL19Dcv8g5OTyfgQVa6hkinyAb3dhbM0bJpEx0KRssFmS7qEaaSZS0YKuia3MW7R+eKDRkLPLM0BuKPswJQgTe6CZu/bVv2QSx1d/f4VB6tCy5RPW3NZfv6vdbhVv9iPqB9BWmefVq0zJtNgzrNjXYBOhCj5AnvuVi0OvWMKzLIt8E0GMZH1Lhf5IIQBNFdlyBsiTANBWYGrBsGm4F4l5UyRnPlk9E3F1AlWdwuyzF3C1jDGLIMuL9FwPb8WntoR4mzqyCO4ihAlum8qhWS/87LEYaLRYkhgHwbSjjfqZRUCWqUdjBxYXeHXRLqjbE/3G34qFW89gD6XLeeCFilfEGHzWejZXOtT2EgAhxx0Kw4F+xni7iXiUdzDVTaYxqtR2Q/5A7QWgkqp7DE8AlB6xsR8kAgSOVURL5dHSwNBc6g5VLBp/+5iPDvclzmsxIDZU8efSv2pe/QMZYTROES7lDOdjjIPz66TW2dvOVfxE5WE3lWsS3U6UypHrdpX89liJb+v41AI3fLt+ys4aP7dfcQvXtHTfZ/XCTVvB1arZdAdO3zV6+vvqnx/8230VFj5b4gQ/+dZUHD0/SehYeB1/doqdZ0sPCKhEvifVYX8VLVxOz5HAH6CAGhBtcqJhkeiFb0fSp2LgY46l0zDAD88EUihgGSiC84Yc8tDBADusLoFk7g0dpSxcFHAXl0pSMPn8afxD0TOdBo/JqbeD8Ne6fM44YbF2PS0wy1wOcSUXlC8Seqx1C1ykVhQEw0+FajP9nrxMXFhJwXz2IZG2XLGkTmf+Ll2WIO8hiY7pXJDlVji8bVINrsaQoqLgkv4RFmR3Dpn8seDmWzMeGonHfa1ocMm5GDfhROsxhK9CuqCU34UD6Fu5RKdj4wqLtUT+xEYj0mVw8vQGVChpTYHd13NCxoHFf6WaweIYTpNAgabIOL/lsYelUDC+yDbaty+3I58YYeGTj08yGx/sJ395mM5CQZ5IJNzZCvklYu6Uc4dwYrhbYjry1+4lhFRFCMAPQXIpymtx3DH6wtj5pebZ/Jt+5yMi9WWa/IrHbFVwMs/pLCPHrNn8g9cZo+OqHXF4n16D8OzhlAuBAUR00Gtgw7cznKQ7+qWu/R+7IUuCJ3ZdWQqIiIMb2u+Zd9nB/SDTW1Y4KyiPiFqqje/2JwoMD5ymnP8frnCf9UN71ZSdY63/s5C/4iohhSUsZ2Q78zdYlBtnS/rQ67ROeqVIOi8UgrCzb3eEMazMagDp2aEmfob45XtPny/UE0Zz8PrAuuZwE3tYqaiV2U7pCQ1wHc4pXjswhrH4ZZqQ5smVcdOtmk64IBsfblwGF2eapLkfGEL6qjkXxWMKP3I8AFO3T9Mf5hpHqyOvd/yrMv0gFOF1Zi7qoIVuwKg11JTPOiHZSsMCZ2rbV+x9lfDFrmm+GyauEM8DFIpDR3FYmeIxtxvLy+J3xaQ2LV4iO3RMv76bWRGEYJetQ+eAI8CacPz0BbOUaohqvJxsTUNKQvmfGJvGbffg8XyvEFuUPRJ+L1l16Y9F9XCtYCKpv2Jw7FbRNXXgMjRba9I1CqZxKupJ+x5UH4oD5qduewd1fQ6Urz7UtYryK+IvszAo5I59kQualULXKq3mp8VS+Ecj+nvRBsiU8EXrg34lAZEwwgXh7/V5xb18Z+JcTCbzzrbhADhxzuT3wklVvlLta4T/eCejyxWvrGydgdjArNGWAf3jDL1SawYieMqP5EJ/gJ+P26geYB+12PV+jdVYiP381BCO/ffbXLRiCJT+448PHSXfXiOKLtyvVbcr8IU7p1lzvXM2P0D87mtZ/olU8QzZU0deo6ZF086CeUSNFKYzpdXDGcxz2DXrZSTf1JBQjDHUddu3WW2AUVGvc/ROsYZzej14e1Z7zEftk7hL7XlgNNqNttTMLJbllA04coA+6izvfGf3TRPUWvTvmIE99gh1Icos4T7f5x2tZUxWeDb3EJ29DwXDChPJ4Zh+DuyBZdNq4T58wkVGp9hAbniA2NnZ+P6wck5ZRlu9SQQZQVb1mEeR6zY8hy3T0JOZXZ9ROj9szrCrW1UCjvbqBJFVjF/IEUkzsnuKJBKUPp9q6+z1Ch/rfcOgJGs/SU6FRvfa6H7heUn7GlUIRHRYu38luMVPXDt0LJsqqDbd418Di3Yun1Sbw/dv8LYkxfz4/Vo3ddb74bPddQGi29NtybRsl2AKpPFBz1C32cRI66U99+w+kJC0gANCe4AC3k5dmX4dtmotzTK/VzG5Bq42VE49kTqN22hpmXJsbtXw0bGdgdblMVZfkvYH20s99Q91PwBPuk6DSx3JNzjDjgpYuKYoxNz79bk7HdW+IMrrbRzEtMzVBg4CxCJVVUz2TqCwL3JzBWYDOs50seRCq2YXD5Q/1bvSb/F/tF0JSezmOM2czri1osaoD35fUQi3UtZfn49rmE/e7l57RsP2+PzBEnAoC81wToWBeZLjYajJl/P+pFmtbb3n53dIBMVPOteyXlXbmIaW+K2hkU8eE2duUiGoWldlO+VxbHSCkO02VNeknXSQZi5vGOoItmnZzhm6Lv6OCflAsyEJ1kLQmBGchg2WY7EKDkTDgGqLjRFZAqHs1ZzJsZBTIwEUJymGnHuPGJ1QqJg3aOhP0qRCEJcu+/W4/vrHz/kx6vAugF7ZsI6lK2gVDxk8tjqUVS4ZEjdpgDBnVPb0tbDdBWK2k/3fukhQAsW1mVuxNyF3XxoKtu+PmXBbesQidi0GE7Ajwy0w3902f1vsaOP2qtXjw29PD+M/sxQC+AZPVRuGaCRGA29qN7T75qA2VYjGNl54iEw6lKN5RrZdKEAcgpg9vasZaaO2xCJUwkF21wDz/QDdZgLeqeZoUDj2bF3I+mvE6eXF6IkmmcqQEl3SPsYsBUdbfsY4WLK9Y8J3XM5kmJ75tDZiodTj5/MwC/JcROn4Zd9UI25G2F9U3dOe7gULWNRT+cd5U1/JQPK9FUs8l4FZBlcZBu7cMwpsLtSPF7TtepEMNnRtCAmQKurOaIwOC3xIWXsi2BE7wndGL9ZCgPsLAcp//w4aM0kBHLf3uIOPEP3eFuxii4Ao8EKSOlzbY+WQpfeVRTOnVsRw8bgW4BXg1jsaP2WmFObwqxCgovePjQ4XF2IZGHA7g9CqkJouGSsARuSZuhNNAwV9eqqvWETQkaN3LS2Alwe72ZyU4XNIncx0lRHU+1OKOpNEBRhSX3eoZQCncSAikGx85co70QpskU6xPXu0/haX1nCqnDTqwQVAv4yiz4wYhaO1jDl490M0/beILUjN/pMIpHymqfsOQqI4Ujdu4wKPE1Ro6AHbech5PO5pyhxBTurIJajQdBFC1/h6pk2dG/H2H2EXkPMBKAAJAZUOMaB4NX42wQ1WJwlPgLojAtaVPSIFmNi3ny2sqcGsEEfS7SFhJ1EVP89YW1UbDm+S8wBaFbrJCqo9AVPfE1YJY93TkgYotJ3Cc6HScowibq+lLL8vh89LUIHqiV7U6oRgZNrJvliAITVEI4iMUj3IdRRjorsgmwUKlrcnqP8XUq/XDETUR8DtotmGY4VZhtxLhHnCcYDm2LNhgBZh0lhxz0cKbPR1iug4g10jme95j7JNhxf6jrUAmK15XuHOlsgGdsE/rHySriDpwPL5yLdF3zV/RVYVxmwI91VtBKAdUYLAFa7QAi9tggnhKYgGBoCNtt5kkLNNLnGmQ2d4O71e382OZSzOAMPPK9B2KHujr/Gj6TqaPExTi25XdTLuehRYEIPcCnP6JfTw+kWuojjCqbyW6Dsv/+UTt8Q/nrPbCql789dH3DP+yuPFc6wlTN7RyC7Oy9v6Eth6TBEOfVEPys2zL26hfJkCEzxrWEXbF1N1CiVtt9vXakggtXRjoCW9w45g8OI7tU6KTQzK/MrXOV4dYMqs96lixXrLG4as9hcpiE0/S/3OIQ8t8EUxE4whT2uMsUgFUN0OZW+LPED3rt6/wUt6i6s7dRjqpV184DhwZfiqSqYTWya0Hwoq7g8mHTdiIV3utlAd925FMWWvKC9It+JmK/e+Do5SepknyQP8DSgu1HHhnXOLb81zXL9wjvqpDHerlM/HITMJl5UXxbAGWxkxSY8Y+ttLM9UpVtiV4ec4fsGnsn1vuLHxqk+Ek1o97clkqHpyH6CtrV+iW0esqZqrQDNuPdPTbJ6Q+BDI6ddMp9pKlfwbp2/zkunZLnwnOS54x4VVc1PmjZw32jJZc294N3vzEczEk0ea+ktRCO5cOeqoHSg+cTp27kb8t2a6Jl4SgakcfWJMuLeO0hlRuodJcfDnWM723J+D7lkSx0IhuD24Cn8tyt40iSF/DT03F3yCQkXHHcOQBJAfDniRA2kuQhNNkwFjk7z8FcTCtk2XQXTpXokWp+k0OurHidStDO+JrFVyzcKVukrG2fWcs3uKTbVcJJBj3xvKBIL3aDvdnMixNDN2IAHpcD9+mUmmNXhTWYe5oAx6TOfmm2XAdMV3P/nqzz47Lp3an4uXPYd9J16C9i/Pv89BlT/IHEc/XcO6mED2rN9sVr25Z7X+ZIyvlXzszDjv0IJQgzTX2NVOxrdqHlEiqeTsagRoJCXrt8b0JyEadRNCN9OqHgZAuSAgIuDpgmkkwcSkN20Kw8WhhSG2oxqJtMoTXemo3l+8w3rNbM7MW1iXUNYv66LN9/akEAlAfRdyfSg/gQpg1pPqh+JhDWlJopFzyWc6H6UmFIrGlxcYGZMgGRXJuhmia3JMuH3xrK0Oj4hwaI3TyIyQ2V45ydqI+M6LQJG+zgaZMj145Y+idKoX8n33WE6bqFgqCx0YPRbmrzdmS6UTKt7/aWJUn+anO5wq7CzVdKEb4jxSUnFXL8i68GVWQs7uYSH3twUp4go3V8lXfcW3lOnVoKo1uCUQno1tV7jnsZFJllpauvUmkzKKiu1VhcalOe62ybZVVl1UaF0QTiJ2XVyk0B8K5OhUoSB9kvFmV1aNbsjzgjAC0LcCZ62c7favizvvZLop/ILhWeLM9Njs0wYHsnvUz4dTYdyKSR+lcle6SCumkp1fAlLQfR0DPZTnAVuUiwvlGAtF+82YklI0Y6c46Qs32IqCOyCG4yjaDD0ajI4HUhpf+RWDa9HPlFjczDDuROVaywiSt9uRHIYXkphybr89dt2vTaXVKQPoVrFTWeWdjyca7Wi/jE5BQuxSDP2iIZ1zufqMnk5r9WlfelxUWmYF6bllvaqPkiYXc1NAbO22Iaej6mrE1L6PMmppFJC+4umxqlhXWohUzYWRl2h6KP8ChxA9hifPvQpX1pqIar57qAiaVuop6zkNnWI8ScW0eRMW6mEKS1qzpwGb7dp4+GAkCStjMW14rE28na3uTKI65SEqcrjjfqSRNIicmWORapTMW8h2zXDl32hOMlt3OHiWneDj5NsfGo5Clv3Wb9U9qhPkH+O3A4aTjKhp9Q6ehZivOUTQOFQ0WundUlwWNsWlFsckmdXWMm1/V66mR5DqcWt0jU92ScCMSPsnW62X1n+gxvbli0wx2gVk94UnxLO6cw7pBYqaUWTsc36aczZB6KaFyZ1Rk3u/CzaC9EMc55iI2Rp5KiinLtcPLBKnftM9Nm5Nl589UtnFXdvxwtk/stO8HCtXt247hU2ergVW6twjGUEms+4/7J7ZCOkJuFsyVod3assY4lxjN6OZj3EPZTpxdlIwdPgx1lhOma6qVhlGvh19x4v9eqbJZLVJMx09aMAaAesnouGnCU/dqUKkuh1lDPNBfItH1X2W3l9IVqd2pUcBap4vc64zn/RiVXQryMhN/F1IEboDJstO+5QmKYv+wkNQCPP0dm+4tA4Y4TZH72uzIztzaguvNhFcItDSYF7Dj9bKO72arvaE9a5ylaNUw31AzFS7TxSn0KstnjI97jHSrwhzxWDWe4q8x1eHbv79teDVbZJg7JNqCjZTWKLbO7Sc9lJRTkwOSKgvHcDep2Psn1jYL/vyWlvm3iX+bJ3ZDONHBU9FJvdhlZxe5Wu3AE9DNanFArMMbrHSq4NTZ/Og1xI+jNaypqmc+w+dCZ1XoXDNrHlJIx0yRwEjHqd3GuNyjO6/rUlPOYTWqSovY9nYWEJatq3djs5ccXEElUyTb+7MSDntCDfWzXn3xNcnzPMTRUSw8ttYz9Wfos6nx/+5cK8ErZ5/KamXfzBWT8lwv7pyZBJmb/9j6KMm2Mre81Cmr9Dul3I38WULtxMU62MDGDVwoTFvs9WotQqzOOiRspnd7fM7m6r724qlG2HXwdg7dYF3IE9/9aiWltByKi483o8+jt+G1BeRHejnLxa7IzdQ542oyeSazI6vJDDG/YQhHPckXOwVHjbYU29C0BnUga6YF8GnD9OMtQ8/0E3J7HKch66NjVgcM+ufkSlcEMXIguITOkDZ8uUAfH1zarU5+MONa+RzUPNYgn4zF08ksWEVI85lMyaEVidg7QHkPeAdXVTMAVPTmUL+4LArutl8Rei2PoBlyJoLBgCxXirXmDso0RHg1c404Ot7BZcxcxBZf0eO1E4cJzwBS5ECAoyA+BcbfgF7jZ9rcAAfsQWZUZYIM/C4df7aflRlOzv8t6E9rrropsowfNPQcH8Ofz4sPGT8SL5Qh2YNHcPNcj60DMaZpeVoOh9ymAGTqXqdtGUKLIg9NlOxRqNO74n1kfhbfSfIKfDJ4OrVOZmP/kExX2VhjzFECGx7FUaqOQuu0abqMO5kntiO1tn8RaUdTMaaVoBEfNJPlW+6VcW2vOY8GfdsfXg1FJFa0H7oQsj9RYf6RjMtuUTV2G+yblcaatHeR7q0bPKVoeCB+F4MWVBQHfSN2MIn7thmbSOYqq1TxZyXlawNeUq+FPeShGXaq/e4GavG+cEf+JInzZC34h1zta1al7Qh0DucBlZVATZUwQyiwEMmmlAUwgQbwCsFGyaNXDNVtY72ZS049ualMOhMCq6+hxwLVsjotCCUQjzgdfgUItNUoJJUtyEp3MoyRRGGNLZxFzX3V3zd8we1uy+4hZ4m0PMeeSdy993YNwVCi3nl+2rudFFuZp+ogrlCT6jnrHcfDNhnlc5f81xnp1BCDa5NrvlzOigrSNUnia6opwpLYKQY686xiidTAyxSl8SeoEJFUQFMA21l4C0nu/8KgZ58urD2npcPhp8F238DtsdtrxtLfENt0JTbheifcFg/BUg2y9Te5o+B4qcitSHF9k0u3zSBvOm9lhmSWHPgJwlk2WX+to7WArs2S37ow1qnBTM4RGO1KDP9YUfmPTysT51aantlzxJhbJpiYv0TB8PK+M1S5EFocpO1a2L+Ox/k6HudjfvRu1JACB+8bhXYVyBmyTPzULu1PFAsoJPjxkFm4Qp38dsKjS3BFF8MPoCONt3dwVJWT6Lpaavlwfl0VN5KSNjpFmEdYLpko534TsNqO6/DLBt9PtVMhat2Fwiq9Q0hs/BqLDCXuoA8ENHzJsf6+NiGzZ0t+E+q00oZR4YLyKkTurGMpTS70VmU/+HQ1leUX7XD67xn8W1ZgwJVprRGsP74ScSRa1Rtg+J7/pH0GP+yMOCu+IRO+VTBOnEjauu/MzkeJCo+ZQE4gW5S3lHcJcwzVrc1C0k0DqNOJUm+RBUP6+CHROhtYxwlCIhjEwIeOYi4trOKRsXiuKCIkeZwpr0r+GKlm5tXJFfxUlJPTQppKzH/aR/OHLluoLfGKeuhzLhwk5HdtbczFoh51OpuWNpbJd3TEeUwBbFMtgm7F/ndMvH1f9+gQMk5DD0gmFSt920ZDehEw5VRAswvMgnL7ka+irncnFgDeBzOqQ2DFsKEnYndVlao48bEyKj9BGMkGLA57NZGtdYrLCc8LPuLTwH5wyT8ykgg98Yk3ttBtqTy8HurppNiMWTFOKYrAhOAEUlOTI9QTZA4rtymyFmiPWcLand9bYCOfB/ug1SIwwQnjDgnh5lKdtjgky5RIyKo0pCAvI7XWxcNCpilAIjnTiTlJ9EVs7labivqjg+xQq2qYdkZUgVVKjq7/9ag+MmIheVL6WYGlbUV6DHpj2zfOsN/NU1qk6Jpp1xdLGM2SUcZIT29pZB5x3MbfwF/fLd18EvpFZi7kLeVocM7/1c3OXLLdwJty6o1jJA5iPTiC4feTSlSDs85V0wudwYGE7zTDWF6bwQyhS15kTBLL90gx+mSl5YfBi6M6TIDEM+kXAtGBFjVlcTsEpdATLsUXCK+7VWMN0yPEd9G73keW0sS43n6iIVkAyBPRyMEE9cErbfj+u+uLNyEKCSOkSrEgJ1v8oK+9VEkIHvUR26yqtNWhuLTdMZIVHYqV5pBpt15AD8A5VHRUvOPN29FSO+8ew4SA/DNddt8oG7XgP7WYnGYUUAVeKm2i9Q6zFH5Bpyqmdfw6sFQV2OpihI8PPxx5jqiqkN15jWKO7gg8L363Sr9jQB/nZpZdNzzQWycxOVNwbbuNgwrkk8vqMt4/g3SjcT3Z1kO1bI+MILxFrfNmHu3JjEHwUPxVKFD3+Yhwi0HB8bHMgWcTg1DAjp79UVQWEBEVtYqxqPZJhnrSfdeyyRW9FYe/Sp269H4nIJ+85225Qo14yQNJfOl3W47f8AGtry4/D3OiujuxJMUWhx9teW7v5Qgyu/e+l+LiudLN0jnKkJnAAEpovL/3piwoah5ckoBEq/15r/RhbonG/sj0aFLFp1857pQjzEYrVErvCu3XVLFDoBzmZW0q6rF8oygI7D6+z39WCUe5yMgDtE+uZa3N0nxuUZOJoOkNNHProiBAw5QZoF3oaOF+Aj70L7vn8MiZQ5eTOsIN/OxCR8eJXezKkQ56qqLkVKe3CLu+AdboSWaXp/iCWdcYP0Y462m3hbVI1BzIevHzp55ul0/q7D8fzBiwOA3EgCP534E6H1gDzLC1vZbwE0Vl5qcPMtCmQyGEU9BDmlVRtdjrU9CaXJw9RiK1WMVnSqtR8BO1CJg0OhBvttBAVeUbYnwl09NkjokELchjbZZV7atY5KGJxYUfNGS64LNsvBX0nG6UBhHB7Rj6lgc0NIovm5PJYiZHaEAzSFa8LBwoTU+PvJcDnTk1hQRd0Cp62/mwzcNG94e++Om5EJvUKNMPmPsXf/FU58fsvIlDgvnjFaRkRPMfVIdUrweWB88nQFaTe67rzJ9+EK2oSv725Gv309dDz2Pks52Mmqu214fJBrtPcmBxfTwJepCtrA8XNwwnAOub8ZjeSDV4ltSHBzxlRKUfWZbl35KYNNDbmP99onATfE9686N6zidx1sed9Gczy+Q+ZhgTcULUc6K2H3JyDuVCloPac09RPltr6JLSD22UFkR0Aj5bYX6NevIgpD5FsdbGqBooN+nlRrms580rOlFl4Teh+6IF8sQES+UYQ1EfA5tH3TO8zM7rI8lEJ0IyaM1x4BYoLWguVtv9tHTLDcNCk3fNh3eKjgkHYNOfC7PXFZw+2TEhDWGt2gM6mmDSUEraUDmiQcqm0cKikZGWx448Du3GxgokXAcrlBa5mBxIbDFikCUOPjh7n5kUwsXWzTXuKZ24SfbFCF9iTYNy2oLHfbC+h2Anqe4UkutRfWXdD9C3V3cmopBjc5UqZd/UZBbL2kk45hcE6Axw+/wneWAZ+NYobI5SLIAulEo1ICQXlrCUcnKS8iIOqyOnNrqDNjKgbg9DuVo3eC/KQlGHYzXgQSxYagtAF+/hH8BggsoEd5pWFjuABVVrgAoa1oETGHQtHaukBUh4sETwF8WcAUFBDBlwg4ECRNcqp26A4nAmPGwzbcnWknjIWbJ/os7LxbdltSEhmgC5NwAvDSwQjkCp/yF8l6mUH4TQm1LKpUWVGCgAoZMBE+58lHrih//Zv1ML8rxYO4NkE/Fu8Z/31XwU+cyDn2sZJNAp/k4W12bz3O4Nv41HnyAiyNezA76pU/JS/73eBuEPXX18LqPLp1t9weEcW4VmdNkx6b32eZXlX6YsmjT8x3A+yBUb3PpEdL8AVcB5Q77kcHip+GhH7XI7OkccRp+pmPGLEO+rClBNSOQPKAmqk3EnybUKU6B1VM1LLAiRDVdCYIuyWo/PLZObqTL99ogi6f8w/Zt+JAFgZSFW387WeqEM8p9GYlrcIyd82D0RMLeqwesdS7U98qUCoouJPlQdsbny6XsU5z7U7JayX135INNTzZCpTbjWP0QNh0G/3skJvN+cYv34bpM58zg/SZQzI5gnoxf2C4WovXcFlo4byite4FpF0/bz7zESslMfq4NsJ1gEGbwG3/8ay+/Wc4yOtz9x9xwHyQSqsGZY4GPWJ6XBfz/sNdaZR1lcxpjc3Ll2oC3/WJ+Xz6rmHxcdxZHpClKgqiWbmZEYBPnjRhytlL4kos67A6SfIUz6COPvWOS4hrSF8Wl/u19O54W+AkK56NnWmW5pmqY5TbHTgdClLDAg92AslKZcu4X3qsiluFx62lA5XZqgqDRo5YYWsqdyk9Vn0Y+5BFggcC5MZ4D5FEs0V4sEK8EA/wPcpDFlWMyvg8WKeNgWb7EbHbqR1d92dlSn0E8nRsdOo+z3J7tbSAC3f9e3SzDJB5xVXbt+Zq3ayiGJzf4KV4Mfkf","base64")).toString()),H8)});var $i={};Kt($i,{convertToZip:()=>Vct,convertToZipWorker:()=>G8,extractArchiveTo:()=>Upe,getDefaultTaskPool:()=>Ope,getTaskPoolForConfiguration:()=>Mpe,makeArchiveFromDirectory:()=>Kct});function Wct(t,e){switch(t){case"async":return new w2(G8,{poolSize:e});case"workers":return new B2((0,j8.getContent)(),{poolSize:e});default:throw new Error(`Assertion failed: Unknown value ${t} for taskPoolMode`)}}function Ope(){return typeof q8>"u"&&(q8=Wct("workers",Xi.availableParallelism())),q8}function Mpe(t){return typeof t>"u"?Ope():Al(Yct,t,()=>{let e=t.get("taskPoolMode"),r=t.get("taskPoolConcurrency");switch(e){case"async":return new w2(G8,{poolSize:r});case"workers":return new B2((0,j8.getContent)(),{poolSize:r});default:throw new Error(`Assertion failed: Unknown value ${e} for taskPoolMode`)}})}async function G8(t){let{tmpFile:e,tgz:r,compressionLevel:o,extractBufferOpts:a}=t,n=new Zi(e,{create:!0,level:o,stats:wa.makeDefaultStats()}),u=Buffer.from(r.buffer,r.byteOffset,r.byteLength);return await Upe(u,n,a),n.saveAndClose(),e}async function Kct(t,{baseFs:e=new _n,prefixPath:r=Bt.root,compressionLevel:o,inMemory:a=!1}={}){let n;if(a)n=new Zi(null,{level:o});else{let A=await ae.mktempPromise(),p=K.join(A,"archive.zip");n=new Zi(p,{create:!0,level:o})}let u=K.resolve(Bt.root,r);return await n.copyPromise(u,t,{baseFs:e,stableTime:!0,stableSort:!0}),n}async function Vct(t,e={}){let r=await ae.mktempPromise(),o=K.join(r,"archive.zip"),a=e.compressionLevel??e.configuration?.get("compressionLevel")??"mixed",n={prefixPath:e.prefixPath,stripComponents:e.stripComponents};return await(e.taskPool??Mpe(e.configuration)).run({tmpFile:o,tgz:t,compressionLevel:a,extractBufferOpts:n}),new Zi(o,{level:e.compressionLevel})}async function*Jct(t){let e=new Lpe.default.Parse,r=new Npe.PassThrough({objectMode:!0,autoDestroy:!0,emitClose:!0});e.on("entry",o=>{r.write(o)}),e.on("error",o=>{r.destroy(o)}),e.on("close",()=>{r.destroyed||r.end()}),e.end(t);for await(let o of r){let a=o;yield a,a.resume()}}async function Upe(t,e,{stripComponents:r=0,prefixPath:o=Bt.dot}={}){function a(n){if(n.path[0]==="/")return!0;let u=n.path.split(/\//g);return!!(u.some(A=>A==="..")||u.length<=r)}for await(let n of Jct(t)){if(a(n))continue;let u=K.normalize(Ae.toPortablePath(n.path)).replace(/\/$/,"").split(/\//g);if(u.length<=r)continue;let A=u.slice(r).join("/"),p=K.join(o,A),h=420;switch((n.type==="Directory"||(n.mode??0)&73)&&(h|=73),n.type){case"Directory":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),e.mkdirSync(p,{mode:h}),e.utimesSync(p,Pi.SAFE_TIME,Pi.SAFE_TIME);break;case"OldFile":case"File":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),e.writeFileSync(p,await Xm(n),{mode:h}),e.utimesSync(p,Pi.SAFE_TIME,Pi.SAFE_TIME);break;case"SymbolicLink":e.mkdirpSync(K.dirname(p),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),e.symlinkSync(n.linkpath,p),e.lutimesSync(p,Pi.SAFE_TIME,Pi.SAFE_TIME);break}}return e}var Npe,Lpe,j8,q8,Yct,_pe=It(()=>{Ke();Pt();sA();Npe=ve("stream"),Lpe=et(kpe());Fpe();Gl();j8=et(Tpe());Yct=new WeakMap});var qpe=_((W8,Hpe)=>{(function(t,e){typeof W8=="object"?Hpe.exports=e():typeof define=="function"&&define.amd?define(e):t.treeify=e()})(W8,function(){function t(a,n){var u=n?"\u2514":"\u251C";return a?u+="\u2500 ":u+="\u2500\u2500\u2510",u}function e(a,n){var u=[];for(var A in a)a.hasOwnProperty(A)&&(n&&typeof a[A]=="function"||u.push(A));return u}function r(a,n,u,A,p,h,E){var w="",D=0,x,C,T=A.slice(0);if(T.push([n,u])&&A.length>0&&(A.forEach(function(U,J){J>0&&(w+=(U[1]?" ":"\u2502")+" "),!C&&U[0]===n&&(C=!0)}),w+=t(a,u)+a,p&&(typeof n!="object"||n instanceof Date)&&(w+=": "+n),C&&(w+=" (circular ref.)"),E(w)),!C&&typeof n=="object"){var L=e(n,h);L.forEach(function(U){x=++D===L.length,r(U,n[U],x,T,p,h,E)})}}var o={};return o.asLines=function(a,n,u,A){var p=typeof u!="function"?u:!1;r(".",a,!1,[],n,p,A||u)},o.asTree=function(a,n,u){var A="";return r(".",a,!1,[],n,u,function(p){A+=p+` +`}),A},o})});var As={};Kt(As,{emitList:()=>zct,emitTree:()=>Ype,treeNodeToJson:()=>Wpe,treeNodeToTreeify:()=>Gpe});function Gpe(t,{configuration:e}){let r={},o=0,a=(n,u)=>{let A=Array.isArray(n)?n.entries():Object.entries(n);for(let[p,h]of A){if(!h)continue;let{label:E,value:w,children:D}=h,x=[];typeof E<"u"&&x.push(Cg(e,E,2)),typeof w<"u"&&x.push(Ut(e,w[0],w[1])),x.length===0&&x.push(Cg(e,`${p}`,2));let C=x.join(": ").trim(),T=`\0${o++}\0`,L=u[`${T}${C}`]={};typeof D<"u"&&a(D,L)}};if(typeof t.children>"u")throw new Error("The root node must only contain children");return a(t.children,r),r}function Wpe(t){let e=r=>{if(typeof r.children>"u"){if(typeof r.value>"u")throw new Error("Assertion failed: Expected a value to be set if the children are missing");return Ig(r.value[0],r.value[1])}let o=Array.isArray(r.children)?r.children.entries():Object.entries(r.children??{}),a=Array.isArray(r.children)?[]:{};for(let[n,u]of o)u&&(a[Xct(n)]=e(u));return typeof r.value>"u"?a:{value:Ig(r.value[0],r.value[1]),children:a}};return e(t)}function zct(t,{configuration:e,stdout:r,json:o}){let a=t.map(n=>({value:n}));Ype({children:a},{configuration:e,stdout:r,json:o})}function Ype(t,{configuration:e,stdout:r,json:o,separators:a=0}){if(o){let u=Array.isArray(t.children)?t.children.values():Object.values(t.children??{});for(let A of u)A&&r.write(`${JSON.stringify(Wpe(A))} +`);return}let n=(0,jpe.asTree)(Gpe(t,{configuration:e}),!1,!1);if(n=n.replace(/\0[0-9]+\0/g,""),a>=1&&(n=n.replace(/^([├└]─)/gm,`\u2502 +$1`).replace(/^│\n/,"")),a>=2)for(let u=0;u<2;++u)n=n.replace(/^([│ ].{2}[├│ ].{2}[^\n]+\n)(([│ ]).{2}[├└].{2}[^\n]*\n[│ ].{2}[│ ].{2}[├└]─)/gm,`$1$3 \u2502 +$2`).replace(/^│\n/,"");if(a>=3)throw new Error("Only the first two levels are accepted by treeUtils.emitTree");r.write(n)}function Xct(t){return typeof t=="string"?t.replace(/^\0[0-9]+\0/,""):t}var jpe,Kpe=It(()=>{jpe=et(qpe());Wl()});function v2(t){let e=t.match(Zct);if(!e?.groups)throw new Error("Assertion failed: Expected the checksum to match the requested pattern");let r=e.groups.cacheVersion?parseInt(e.groups.cacheVersion):null;return{cacheKey:e.groups.cacheKey??null,cacheVersion:r,cacheSpec:e.groups.cacheSpec??null,hash:e.groups.hash}}var Vpe,Y8,K8,Pk,Wr,Zct,V8=It(()=>{Ke();Pt();Pt();sA();Vpe=ve("crypto"),Y8=et(ve("fs"));Vl();ah();Gl();Io();K8=Zm(process.env.YARN_CACHE_CHECKPOINT_OVERRIDE??process.env.YARN_CACHE_VERSION_OVERRIDE??9),Pk=Zm(process.env.YARN_CACHE_VERSION_OVERRIDE??10),Wr=class t{constructor(e,{configuration:r,immutable:o=r.get("enableImmutableCache"),check:a=!1}){this.markedFiles=new Set;this.mutexes=new Map;this.cacheId=`-${(0,Vpe.randomBytes)(8).toString("hex")}.tmp`;this.configuration=r,this.cwd=e,this.immutable=o,this.check=a;let{cacheSpec:n,cacheKey:u}=t.getCacheKey(r);this.cacheSpec=n,this.cacheKey=u}static async find(e,{immutable:r,check:o}={}){let a=new t(e.get("cacheFolder"),{configuration:e,immutable:r,check:o});return await a.setup(),a}static getCacheKey(e){let r=e.get("compressionLevel"),o=r!=="mixed"?`c${r}`:"";return{cacheKey:[Pk,o].join(""),cacheSpec:o}}get mirrorCwd(){if(!this.configuration.get("enableMirror"))return null;let e=`${this.configuration.get("globalFolder")}/cache`;return e!==this.cwd?e:null}getVersionFilename(e){return`${ly(e)}-${this.cacheKey}.zip`}getChecksumFilename(e,r){let a=v2(r).hash.slice(0,10);return`${ly(e)}-${a}.zip`}isChecksumCompatible(e){if(e===null)return!1;let{cacheVersion:r,cacheSpec:o}=v2(e);if(r===null||r{let he=new Zi,De=K.join(Bt.root,_M(e));return he.mkdirSync(De,{recursive:!0}),he.writeJsonSync(K.join(De,mr.manifest),{name:rn(e),mocked:!0}),he},E=async(he,{isColdHit:De,controlPath:Ee=null})=>{if(Ee===null&&u.unstablePackages?.has(e.locatorHash))return{isValid:!0,hash:null};let g=r&&!De?v2(r).cacheKey:this.cacheKey,me=!u.skipIntegrityCheck||!r?`${g}/${await pb(he)}`:r;if(Ee!==null){let fe=!u.skipIntegrityCheck||!r?`${this.cacheKey}/${await pb(Ee)}`:r;if(me!==fe)throw new Jt(18,"The remote archive doesn't match the local checksum - has the local cache been corrupted?")}let Ce=null;switch(r!==null&&me!==r&&(this.check?Ce="throw":v2(r).cacheKey!==v2(me).cacheKey?Ce="update":Ce=this.configuration.get("checksumBehavior")),Ce){case null:case"update":return{isValid:!0,hash:me};case"ignore":return{isValid:!0,hash:r};case"reset":return{isValid:!1,hash:r};default:case"throw":throw new Jt(18,"The remote archive doesn't match the expected checksum")}},w=async he=>{if(!n)throw new Error(`Cache check required but no loader configured for ${jr(this.configuration,e)}`);let De=await n(),Ee=De.getRealPath();De.saveAndClose(),await ae.chmodPromise(Ee,420);let g=await E(he,{controlPath:Ee,isColdHit:!1});if(!g.isValid)throw new Error("Assertion failed: Expected a valid checksum");return g.hash},D=async()=>{if(A===null||!await ae.existsPromise(A)){let he=await n(),De=he.getRealPath();return he.saveAndClose(),{source:"loader",path:De}}return{source:"mirror",path:A}},x=async()=>{if(!n)throw new Error(`Cache entry required but missing for ${jr(this.configuration,e)}`);if(this.immutable)throw new Jt(56,`Cache entry required but missing for ${jr(this.configuration,e)}`);let{path:he,source:De}=await D(),{hash:Ee}=await E(he,{isColdHit:!0}),g=this.getLocatorPath(e,Ee),me=[];De!=="mirror"&&A!==null&&me.push(async()=>{let fe=`${A}${this.cacheId}`;await ae.copyFilePromise(he,fe,Y8.default.constants.COPYFILE_FICLONE),await ae.chmodPromise(fe,420),await ae.renamePromise(fe,A)}),(!u.mirrorWriteOnly||A===null)&&me.push(async()=>{let fe=`${g}${this.cacheId}`;await ae.copyFilePromise(he,fe,Y8.default.constants.COPYFILE_FICLONE),await ae.chmodPromise(fe,420),await ae.renamePromise(fe,g)});let Ce=u.mirrorWriteOnly?A??g:g;return await Promise.all(me.map(fe=>fe())),[!1,Ce,Ee]},C=async()=>{let De=(async()=>{let Ee=u.unstablePackages?.has(e.locatorHash),g=Ee||!r||this.isChecksumCompatible(r)?this.getLocatorPath(e,r):null,me=g!==null?this.markedFiles.has(g)||await p.existsPromise(g):!1,Ce=!!u.mockedPackages?.has(e.locatorHash)&&(!this.check||!me),fe=Ce||me,ie=fe?o:a;if(ie&&ie(),fe){let Z=null,Pe=g;if(!Ce)if(this.check)Z=await w(Pe);else{let Re=await E(Pe,{isColdHit:!1});if(Re.isValid)Z=Re.hash;else return x()}return[Ce,Pe,Z]}else{if(this.immutable&&Ee)throw new Jt(56,`Cache entry required but missing for ${jr(this.configuration,e)}; consider defining ${pe.pretty(this.configuration,"supportedArchitectures",pe.Type.CODE)} to cache packages for multiple systems`);return x()}})();this.mutexes.set(e.locatorHash,De);try{return await De}finally{this.mutexes.delete(e.locatorHash)}};for(let he;he=this.mutexes.get(e.locatorHash);)await he;let[T,L,U]=await C();T||this.markedFiles.add(L);let J,te=T?()=>h():()=>new Zi(L,{baseFs:p,readOnly:!0}),le=new Am(()=>rO(()=>J=te(),he=>`Failed to open the cache entry for ${jr(this.configuration,e)}: ${he}`),K),ce=new ju(L,{baseFs:le,pathUtils:K}),ue=()=>{J?.discardAndClose()},Ie=u.unstablePackages?.has(e.locatorHash)?null:U;return[ce,ue,Ie]}},Zct=/^(?:(?(?[0-9]+)(?.*))\/)?(?.*)$/});var Sk,Jpe=It(()=>{Sk=(r=>(r[r.SCRIPT=0]="SCRIPT",r[r.SHELLCODE=1]="SHELLCODE",r))(Sk||{})});var $ct,tE,J8=It(()=>{Pt();Ol();xf();Io();$ct=[[/^(git(?:\+(?:https|ssh))?:\/\/.*(?:\.git)?)#(.*)$/,(t,e,r,o)=>`${r}#commit=${o}`],[/^https:\/\/((?:[^/]+?)@)?codeload\.github\.com\/([^/]+\/[^/]+)\/tar\.gz\/([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https:\/\/((?:[^/]+?)@)?github\.com\/([^/]+\/[^/]+?)(?:\.git)?#([0-9a-f]+)$/,(t,e,r="",o,a)=>`https://${r}github.com/${o}.git#commit=${a}`],[/^https?:\/\/[^/]+\/(?:[^/]+\/)*(?:@.+(?:\/|(?:%2f)))?([^/]+)\/(?:-|download)\/\1-[^/]+\.tgz(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.pkg\.github\.com\/download\/(?:@[^/]+)\/(?:[^/]+)\/(?:[^/]+)\/(?:[0-9a-f]+)(?:#|$)/,t=>`npm:${t}`],[/^https:\/\/npm\.fontawesome\.com\/(?:@[^/]+)\/([^/]+)\/-\/([^/]+)\/\1-\2.tgz(?:#|$)/,t=>`npm:${t}`],[/^https?:\/\/[^/]+\/.*\/(@[^/]+)\/([^/]+)\/-\/\1\/\2-(?:[.\d\w-]+)\.tgz(?:#|$)/,(t,e)=>yb({protocol:"npm:",source:null,selector:t,params:{__archiveUrl:e}})],[/^[^/]+\.tgz#[0-9a-f]+$/,t=>`npm:${t}`]],tE=class{constructor(e){this.resolver=e;this.resolutions=null}async setup(e,{report:r}){let o=K.join(e.cwd,mr.lockfile);if(!ae.existsSync(o))return;let a=await ae.readFilePromise(o,"utf8"),n=Ki(a);if(Object.hasOwn(n,"__metadata"))return;let u=this.resolutions=new Map;for(let A of Object.keys(n)){let p=v1(A);if(!p){r.reportWarning(14,`Failed to parse the string "${A}" into a proper descriptor`);continue}let h=Fa(p.range)?kn(p,`npm:${p.range}`):p,{version:E,resolved:w}=n[A];if(!w)continue;let D;for(let[C,T]of $ct){let L=w.match(C);if(L){D=T(E,...L);break}}if(!D){r.reportWarning(14,`${Jn(e.configuration,h)}: Only some patterns can be imported from legacy lockfiles (not "${w}")`);continue}let x=h;try{let C=vg(h.range),T=v1(C.selector,!0);T&&(x=T)}catch{}u.set(h.descriptorHash,Ss(x,D))}}supportsDescriptor(e,r){return this.resolutions?this.resolutions.has(e.descriptorHash):!1}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!this.resolutions)throw new Error("Assertion failed: The resolution store should have been setup");let a=this.resolutions.get(e.descriptorHash);if(!a)throw new Error("Assertion failed: The resolution should have been registered");let n=LM(a),u=o.project.configuration.normalizeDependency(n);return await this.resolver.getCandidates(u,r,o)}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){throw new Error("Assertion failed: This resolver doesn't support resolving locators to packages")}}});var pA,zpe=It(()=>{Vl();n2();Wl();pA=class extends Ws{constructor({configuration:r,stdout:o,suggestInstall:a=!0}){super();this.errorCount=0;g1(this,{configuration:r}),this.configuration=r,this.stdout=o,this.suggestInstall=a}static async start(r,o){let a=new this(r);try{await o(a)}catch(n){a.reportExceptionOnce(n)}finally{await a.finalize()}return a}hasErrors(){return this.errorCount>0}exitCode(){return this.hasErrors()?1:0}reportCacheHit(r){}reportCacheMiss(r){}startSectionSync(r,o){return o()}async startSectionPromise(r,o){return await o()}startTimerSync(r,o,a){return(typeof o=="function"?o:a)()}async startTimerPromise(r,o,a){return await(typeof o=="function"?o:a)()}reportSeparator(){}reportInfo(r,o){}reportWarning(r,o){}reportError(r,o){this.errorCount+=1,this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} ${this.formatNameWithHyperlink(r)}: ${o} +`)}reportProgress(r){return{...Promise.resolve().then(async()=>{for await(let{}of r);}),stop:()=>{}}}reportJson(r){}reportFold(r,o){}async finalize(){this.errorCount>0&&(this.stdout.write(` +`),this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} Errors happened when preparing the environment required to run this command. +`),this.suggestInstall&&this.stdout.write(`${Ut(this.configuration,"\u27A4","redBright")} This might be caused by packages being missing from the lockfile, in which case running "yarn install" might help. +`))}formatNameWithHyperlink(r){return r3(r,{configuration:this.configuration,json:!1})}}});var rE,z8=It(()=>{Io();rE=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return!!(r.project.storedResolutions.get(e.descriptorHash)||r.project.originalPackages.has(gb(e).locatorHash))}supportsLocator(e,r){return!!(r.project.originalPackages.has(e.locatorHash)&&!r.project.lockfileNeedsRefresh)}shouldPersistResolution(e,r){throw new Error("The shouldPersistResolution method shouldn't be called on the lockfile resolver, which would always answer yes")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){let a=o.project.storedResolutions.get(e.descriptorHash);if(a){let u=o.project.originalPackages.get(a);if(u)return[u]}let n=o.project.originalPackages.get(gb(e).locatorHash);if(n)return[n];throw new Error("Resolution expected from the lockfile data")}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let o=r.project.originalPackages.get(e.locatorHash);if(!o)throw new Error("The lockfile resolver isn't meant to resolve packages - they should already have been stored into a cache");return o}}});function Wf(){}function eut(t,e,r,o,a){for(var n=0,u=e.length,A=0,p=0;nx.length?T:x}),h.value=t.join(E)}else h.value=t.join(r.slice(A,A+h.count));A+=h.count,h.added||(p+=h.count)}}var D=e[u-1];return u>1&&typeof D.value=="string"&&(D.added||D.removed)&&t.equals("",D.value)&&(e[u-2].value+=D.value,e.pop()),e}function tut(t){return{newPos:t.newPos,components:t.components.slice(0)}}function rut(t,e){if(typeof t=="function")e.callback=t;else if(t)for(var r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function $pe(t,e,r){return r=rut(r,{ignoreWhitespace:!0}),t_.diff(t,e,r)}function nut(t,e,r){return r_.diff(t,e,r)}function bk(t){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?bk=function(e){return typeof e}:bk=function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},bk(t)}function X8(t){return out(t)||aut(t)||lut(t)||cut()}function out(t){if(Array.isArray(t))return Z8(t)}function aut(t){if(typeof Symbol<"u"&&Symbol.iterator in Object(t))return Array.from(t)}function lut(t,e){if(t){if(typeof t=="string")return Z8(t,e);var r=Object.prototype.toString.call(t).slice(8,-1);if(r==="Object"&&t.constructor&&(r=t.constructor.name),r==="Map"||r==="Set")return Array.from(t);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Z8(t,e)}}function Z8(t,e){(e==null||e>t.length)&&(e=t.length);for(var r=0,o=new Array(e);r"u"&&(u.context=4);var A=nut(r,o,u);if(!A)return;A.push({value:"",lines:[]});function p(U){return U.map(function(J){return" "+J})}for(var h=[],E=0,w=0,D=[],x=1,C=1,T=function(J){var te=A[J],le=te.lines||te.value.replace(/\n$/,"").split(` +`);if(te.lines=le,te.added||te.removed){var ce;if(!E){var ue=A[J-1];E=x,w=C,ue&&(D=u.context>0?p(ue.lines.slice(-u.context)):[],E-=D.length,w-=D.length)}(ce=D).push.apply(ce,X8(le.map(function(fe){return(te.added?"+":"-")+fe}))),te.added?C+=le.length:x+=le.length}else{if(E)if(le.length<=u.context*2&&J=A.length-2&&le.length<=u.context){var g=/\n$/.test(r),me=/\n$/.test(o),Ce=le.length==0&&D.length>Ee.oldLines;!g&&Ce&&r.length>0&&D.splice(Ee.oldLines,0,"\\ No newline at end of file"),(!g&&!Ce||!me)&&D.push("\\ No newline at end of file")}h.push(Ee),E=0,w=0,D=[]}x+=le.length,C+=le.length}},L=0;L{Wf.prototype={diff:function(e,r){var o=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=o.callback;typeof o=="function"&&(a=o,o={}),this.options=o;var n=this;function u(T){return a?(setTimeout(function(){a(void 0,T)},0),!0):T}e=this.castInput(e),r=this.castInput(r),e=this.removeEmpty(this.tokenize(e)),r=this.removeEmpty(this.tokenize(r));var A=r.length,p=e.length,h=1,E=A+p;o.maxEditLength&&(E=Math.min(E,o.maxEditLength));var w=[{newPos:-1,components:[]}],D=this.extractCommon(w[0],r,e,0);if(w[0].newPos+1>=A&&D+1>=p)return u([{value:this.join(r),count:r.length}]);function x(){for(var T=-1*h;T<=h;T+=2){var L=void 0,U=w[T-1],J=w[T+1],te=(J?J.newPos:0)-T;U&&(w[T-1]=void 0);var le=U&&U.newPos+1=A&&te+1>=p)return u(eut(n,L.components,r,e,n.useLongestToken));w[T]=L}h++}if(a)(function T(){setTimeout(function(){if(h>E)return a();x()||T()},0)})();else for(;h<=E;){var C=x();if(C)return C}},pushComponent:function(e,r,o){var a=e[e.length-1];a&&a.added===r&&a.removed===o?e[e.length-1]={count:a.count+1,added:r,removed:o}:e.push({count:1,added:r,removed:o})},extractCommon:function(e,r,o,a){for(var n=r.length,u=o.length,A=e.newPos,p=A-a,h=0;A+1"u"?r:u}:o;return typeof t=="string"?t:JSON.stringify($8(t,null,null,a),a," ")};D2.equals=function(t,e){return Wf.prototype.equals.call(D2,t.replace(/,([\r\n])/g,"$1"),e.replace(/,([\r\n])/g,"$1"))};e_=new Wf;e_.tokenize=function(t){return t.slice()};e_.join=e_.removeEmpty=function(t){return t}});var rhe=_((H4t,the)=>{var Aut=jl(),fut=fy(),put=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,hut=/^\w*$/;function gut(t,e){if(Aut(t))return!1;var r=typeof t;return r=="number"||r=="symbol"||r=="boolean"||t==null||fut(t)?!0:hut.test(t)||!put.test(t)||e!=null&&t in Object(e)}the.exports=gut});var she=_((q4t,ihe)=>{var nhe=dS(),dut="Expected a function";function i_(t,e){if(typeof t!="function"||e!=null&&typeof e!="function")throw new TypeError(dut);var r=function(){var o=arguments,a=e?e.apply(this,o):o[0],n=r.cache;if(n.has(a))return n.get(a);var u=t.apply(this,o);return r.cache=n.set(a,u)||n,u};return r.cache=new(i_.Cache||nhe),r}i_.Cache=nhe;ihe.exports=i_});var ahe=_((j4t,ohe)=>{var mut=she(),yut=500;function Eut(t){var e=mut(t,function(o){return r.size===yut&&r.clear(),o}),r=e.cache;return e}ohe.exports=Eut});var s_=_((G4t,lhe)=>{var Cut=ahe(),Iut=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,wut=/\\(\\)?/g,But=Cut(function(t){var e=[];return t.charCodeAt(0)===46&&e.push(""),t.replace(Iut,function(r,o,a,n){e.push(a?n.replace(wut,"$1"):o||r)}),e});lhe.exports=But});var Wg=_((W4t,che)=>{var vut=jl(),Dut=rhe(),Put=s_(),Sut=t2();function but(t,e){return vut(t)?t:Dut(t,e)?[t]:Put(Sut(t))}che.exports=but});var nE=_((Y4t,uhe)=>{var xut=fy(),kut=1/0;function Qut(t){if(typeof t=="string"||xut(t))return t;var e=t+"";return e=="0"&&1/t==-kut?"-0":e}uhe.exports=Qut});var xk=_((K4t,Ahe)=>{var Fut=Wg(),Rut=nE();function Tut(t,e){e=Fut(e,t);for(var r=0,o=e.length;t!=null&&r{var Nut=RS(),Lut=Wg(),Out=n1(),fhe=cl(),Mut=nE();function Uut(t,e,r,o){if(!fhe(t))return t;e=Lut(e,t);for(var a=-1,n=e.length,u=n-1,A=t;A!=null&&++a{var _ut=xk(),Hut=o_(),qut=Wg();function jut(t,e,r){for(var o=-1,a=e.length,n={};++o{function Gut(t,e){return t!=null&&e in Object(t)}dhe.exports=Gut});var a_=_((X4t,yhe)=>{var Wut=Wg(),Yut=e1(),Kut=jl(),Vut=n1(),Jut=IS(),zut=nE();function Xut(t,e,r){e=Wut(e,t);for(var o=-1,a=e.length,n=!1;++o{var Zut=mhe(),$ut=a_();function eAt(t,e){return t!=null&&$ut(t,e,Zut)}Ehe.exports=eAt});var whe=_(($4t,Ihe)=>{var tAt=ghe(),rAt=Che();function nAt(t,e){return tAt(t,e,function(r,o){return rAt(t,o)})}Ihe.exports=nAt});var Phe=_((e3t,Dhe)=>{var Bhe=dg(),iAt=e1(),sAt=jl(),vhe=Bhe?Bhe.isConcatSpreadable:void 0;function oAt(t){return sAt(t)||iAt(t)||!!(vhe&&t&&t[vhe])}Dhe.exports=oAt});var xhe=_((t3t,bhe)=>{var aAt=ES(),lAt=Phe();function She(t,e,r,o,a){var n=-1,u=t.length;for(r||(r=lAt),a||(a=[]);++n0&&r(A)?e>1?She(A,e-1,r,o,a):aAt(a,A):o||(a[a.length]=A)}return a}bhe.exports=She});var Qhe=_((r3t,khe)=>{var cAt=xhe();function uAt(t){var e=t==null?0:t.length;return e?cAt(t,1):[]}khe.exports=uAt});var l_=_((n3t,Fhe)=>{var AAt=Qhe(),fAt=VL(),pAt=JL();function hAt(t){return pAt(fAt(t,void 0,AAt),t+"")}Fhe.exports=hAt});var c_=_((i3t,Rhe)=>{var gAt=whe(),dAt=l_(),mAt=dAt(function(t,e){return t==null?{}:gAt(t,e)});Rhe.exports=mAt});var kk,The=It(()=>{Vl();kk=class{constructor(e){this.resolver=e}supportsDescriptor(e,r){return this.resolver.supportsDescriptor(e,r)}supportsLocator(e,r){return this.resolver.supportsLocator(e,r)}shouldPersistResolution(e,r){return this.resolver.shouldPersistResolution(e,r)}bindDescriptor(e,r,o){return this.resolver.bindDescriptor(e,r,o)}getResolutionDependencies(e,r){return this.resolver.getResolutionDependencies(e,r)}async getCandidates(e,r,o){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async getSatisfying(e,r,o,a){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}async resolve(e,r){throw new Jt(20,`This package doesn't seem to be present in your lockfile; run "yarn install" to update the lockfile`)}}});var Ri,u_=It(()=>{Vl();Ri=class extends Ws{reportCacheHit(e){}reportCacheMiss(e){}startSectionSync(e,r){return r()}async startSectionPromise(e,r){return await r()}startTimerSync(e,r,o){return(typeof r=="function"?r:o)()}async startTimerPromise(e,r,o){return await(typeof r=="function"?r:o)()}reportSeparator(){}reportInfo(e,r){}reportWarning(e,r){}reportError(e,r){}reportProgress(e){return{...Promise.resolve().then(async()=>{for await(let{}of e);}),stop:()=>{}}}reportJson(e){}reportFold(e,r){}async finalize(){}}});var Nhe,iE,A_=It(()=>{Pt();Nhe=et(Ab());Ay();Dg();Wl();ah();xf();Io();iE=class{constructor(e,{project:r}){this.workspacesCwds=new Set;this.project=r,this.cwd=e}async setup(){this.manifest=await _t.tryFind(this.cwd)??new _t,this.relativeCwd=K.relative(this.project.cwd,this.cwd)||Bt.dot;let e=this.manifest.name?this.manifest.name:rA(null,`${this.computeCandidateName()}-${Ji(this.relativeCwd).substring(0,6)}`);this.anchoredDescriptor=kn(e,`${ci.protocol}${this.relativeCwd}`),this.anchoredLocator=Ss(e,`${ci.protocol}${this.relativeCwd}`);let r=this.manifest.workspaceDefinitions.map(({pattern:a})=>a);if(r.length===0)return;let o=await(0,Nhe.default)(r,{cwd:Ae.fromPortablePath(this.cwd),onlyDirectories:!0,ignore:["**/node_modules","**/.git","**/.yarn"]});o.sort(),await o.reduce(async(a,n)=>{let u=K.resolve(this.cwd,Ae.toPortablePath(n)),A=await ae.existsPromise(K.join(u,"package.json"));await a,A&&this.workspacesCwds.add(u)},Promise.resolve())}get anchoredPackage(){let e=this.project.storedPackages.get(this.anchoredLocator.locatorHash);if(!e)throw new Error(`Assertion failed: Expected workspace ${P1(this.project.configuration,this)} (${Ut(this.project.configuration,K.join(this.cwd,mr.manifest),Ct.PATH)}) to have been resolved. Run "yarn install" to update the lockfile`);return e}accepts(e){let r=e.indexOf(":"),o=r!==-1?e.slice(0,r+1):null,a=r!==-1?e.slice(r+1):e;if(o===ci.protocol&&K.normalize(a)===this.relativeCwd||o===ci.protocol&&(a==="*"||a==="^"||a==="~"))return!0;let n=Fa(a);return n?o===ci.protocol?n.test(this.manifest.version??"0.0.0"):this.project.configuration.get("enableTransparentWorkspaces")&&this.manifest.version!==null?n.test(this.manifest.version):!1:!1}computeCandidateName(){return this.cwd===this.project.cwd?"root-workspace":`${K.basename(this.cwd)}`||"unnamed-workspace"}getRecursiveWorkspaceDependencies({dependencies:e=_t.hardDependencies}={}){let r=new Set,o=a=>{for(let n of e)for(let u of a.manifest[n].values()){let A=this.project.tryWorkspaceByDescriptor(u);A===null||r.has(A)||(r.add(A),o(A))}};return o(this),r}getRecursiveWorkspaceDependents({dependencies:e=_t.hardDependencies}={}){let r=new Set,o=a=>{for(let n of this.project.workspaces)e.some(A=>[...n.manifest[A].values()].some(p=>{let h=this.project.tryWorkspaceByDescriptor(p);return h!==null&&B1(h.anchoredLocator,a.anchoredLocator)}))&&!r.has(n)&&(r.add(n),o(n))};return o(this),r}getRecursiveWorkspaceChildren(){let e=new Set([this]);for(let r of e)for(let o of r.workspacesCwds){let a=this.project.workspacesByCwd.get(o);a&&e.add(a)}return e.delete(this),Array.from(e)}async persistManifest(){let e={};this.manifest.exportTo(e);let r=K.join(this.cwd,_t.fileName),o=`${JSON.stringify(e,null,this.manifest.indent)} +`;await ae.changeFilePromise(r,o,{automaticNewlines:!0}),this.manifest.raw=e}}});function BAt({project:t,allDescriptors:e,allResolutions:r,allPackages:o,accessibleLocators:a=new Set,optionalBuilds:n=new Set,peerRequirements:u=new Map,peerWarnings:A=[],peerRequirementNodes:p=new Map,volatileDescriptors:h=new Set}){let E=new Map,w=[],D=new Map,x=new Map,C=new Map,T=new Map,L=new Map(t.workspaces.map(ce=>{let ue=ce.anchoredLocator.locatorHash,Ie=o.get(ue);if(typeof Ie>"u")throw new Error("Assertion failed: The workspace should have an associated package");return[ue,E1(Ie)]})),U=()=>{let ce=ae.mktempSync(),ue=K.join(ce,"stacktrace.log"),Ie=String(w.length+1).length,he=w.map((De,Ee)=>`${`${Ee+1}.`.padStart(Ie," ")} ${Qa(De)} +`).join("");throw ae.writeFileSync(ue,he),ae.detachTemp(ce),new Jt(45,`Encountered a stack overflow when resolving peer dependencies; cf ${Ae.fromPortablePath(ue)}`)},J=ce=>{let ue=r.get(ce.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ie=o.get(ue);if(!Ie)throw new Error("Assertion failed: The package could not be found");return Ie},te=(ce,ue,Ie,{top:he,optional:De})=>{w.length>1e3&&U(),w.push(ue);let Ee=le(ce,ue,Ie,{top:he,optional:De});return w.pop(),Ee},le=(ce,ue,Ie,{top:he,optional:De})=>{if(De||n.delete(ue.locatorHash),a.has(ue.locatorHash))return;a.add(ue.locatorHash);let Ee=o.get(ue.locatorHash);if(!Ee)throw new Error(`Assertion failed: The package (${jr(t.configuration,ue)}) should have been registered`);let g=[],me=new Map,Ce=[],fe=[],ie=[],Z=[];for(let Re of Array.from(Ee.dependencies.values())){if(Ee.peerDependencies.has(Re.identHash)&&Ee.locatorHash!==he)continue;if(Pf(Re))throw new Error("Assertion failed: Virtual packages shouldn't be encountered when virtualizing a branch");h.delete(Re.descriptorHash);let ht=De;if(!ht){let be=Ee.dependenciesMeta.get(rn(Re));if(typeof be<"u"){let tt=be.get(null);typeof tt<"u"&&tt.optional&&(ht=!0)}}let q=r.get(Re.descriptorHash);if(!q)throw new Error(`Assertion failed: The resolution (${Jn(t.configuration,Re)}) should have been registered`);let nt=L.get(q)||o.get(q);if(!nt)throw new Error(`Assertion failed: The package (${q}, resolved from ${Jn(t.configuration,Re)}) should have been registered`);if(nt.peerDependencies.size===0){te(Re,nt,new Map,{top:he,optional:ht});continue}let Ne,Te,ke=new Set,Ve=new Map;Ce.push(()=>{Ne=MM(Re,ue.locatorHash),Te=UM(nt,ue.locatorHash),Ee.dependencies.delete(Re.identHash),Ee.dependencies.set(Ne.identHash,Ne),r.set(Ne.descriptorHash,Te.locatorHash),e.set(Ne.descriptorHash,Ne),o.set(Te.locatorHash,Te),g.push([nt,Ne,Te])}),fe.push(()=>{T.set(Te.locatorHash,Ve);for(let be of Te.peerDependencies.values()){let He=Al(me,be.identHash,()=>{let b=Ie.get(be.identHash)??null,I=Ee.dependencies.get(be.identHash);return!I&&w1(ue,be)&&(ce.identHash===ue.identHash?I=ce:(I=kn(ue,ce.range),e.set(I.descriptorHash,I),r.set(I.descriptorHash,ue.locatorHash),h.delete(I.descriptorHash),b=null)),I||(I=kn(be,"missing:")),{subject:ue,ident:be,provided:I,root:!b,requests:new Map,hash:`p${Ji(ue.locatorHash,be.identHash).slice(0,5)}`}}).provided;if(He.range==="missing:"&&Te.dependencies.has(be.identHash)){Te.peerDependencies.delete(be.identHash);continue}Ve.set(be.identHash,{requester:Te,descriptor:be,meta:Te.peerDependenciesMeta.get(rn(be)),children:new Map}),Te.dependencies.set(be.identHash,He),Pf(He)&&Jm(C,He.descriptorHash).add(Te.locatorHash),D.set(He.identHash,He),He.range==="missing:"&&ke.add(He.identHash)}Te.dependencies=new Map(Ps(Te.dependencies,([be,tt])=>rn(tt)))}),ie.push(()=>{if(!o.has(Te.locatorHash))return;let be=E.get(nt.locatorHash);typeof be=="number"&&be>=2&&U();let tt=E.get(nt.locatorHash),He=typeof tt<"u"?tt+1:1;E.set(nt.locatorHash,He),te(Ne,Te,Ve,{top:he,optional:ht}),E.set(nt.locatorHash,He-1)}),Z.push(()=>{let be=Ee.dependencies.get(Re.identHash);if(typeof be>"u")throw new Error("Assertion failed: Expected the peer dependency to have been turned into a dependency");let tt=r.get(be.descriptorHash);if(typeof tt>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let He=T.get(tt);if(typeof He>"u")throw new Error("Assertion failed: Expected the peer requests to be registered");for(let b of me.values()){let I=He.get(b.ident.identHash);I&&(b.requests.set(be.descriptorHash,I),p.set(b.hash,b),b.root||Ie.get(b.ident.identHash)?.children.set(be.descriptorHash,I))}if(o.has(Te.locatorHash))for(let b of ke)Te.dependencies.delete(b)})}for(let Re of[...Ce,...fe])Re();let Pe;do{Pe=!0;for(let[Re,ht,q]of g){let nt=A1(x,Re.locatorHash),Ne=Ji(...[...q.dependencies.values()].map(be=>{let tt=be.range!=="missing:"?r.get(be.descriptorHash):"missing:";if(typeof tt>"u")throw new Error(`Assertion failed: Expected the resolution for ${Jn(t.configuration,be)} to have been registered`);return tt===he?`${tt} (top)`:tt}),ht.identHash),Te=nt.get(Ne);if(typeof Te>"u"){nt.set(Ne,ht);continue}if(Te===ht)continue;o.delete(q.locatorHash),e.delete(ht.descriptorHash),r.delete(ht.descriptorHash),a.delete(q.locatorHash);let ke=C.get(ht.descriptorHash)||[],Ve=[Ee.locatorHash,...ke];C.delete(ht.descriptorHash);for(let be of Ve){let tt=o.get(be);typeof tt>"u"||(tt.dependencies.get(ht.identHash).descriptorHash!==Te.descriptorHash&&(Pe=!1),tt.dependencies.set(ht.identHash,Te))}for(let be of me.values())be.provided.descriptorHash===ht.descriptorHash&&(be.provided=Te)}}while(!Pe);for(let Re of[...ie,...Z])Re()};for(let ce of t.workspaces){let ue=ce.anchoredLocator;h.delete(ce.anchoredDescriptor.descriptorHash),te(ce.anchoredDescriptor,ue,new Map,{top:ue.locatorHash,optional:!1})}for(let ce of p.values()){if(!ce.root)continue;let ue=o.get(ce.subject.locatorHash);if(typeof ue>"u")continue;for(let he of ce.requests.values()){let De=`p${Ji(ce.subject.locatorHash,rn(ce.ident),he.requester.locatorHash).slice(0,5)}`;u.set(De,{subject:ce.subject.locatorHash,requested:ce.ident,rootRequester:he.requester.locatorHash,allRequesters:Array.from(S1(he),Ee=>Ee.requester.locatorHash)})}let Ie=[...S1(ce)];if(ce.provided.range!=="missing:"){let he=J(ce.provided),De=he.version??"0.0.0",Ee=me=>{if(me.startsWith(ci.protocol)){if(!t.tryWorkspaceByLocator(he))return null;me=me.slice(ci.protocol.length),(me==="^"||me==="~")&&(me="*")}return me},g=!0;for(let me of Ie){let Ce=Ee(me.descriptor.range);if(Ce===null){g=!1;continue}if(!nA(De,Ce)){g=!1;let fe=`p${Ji(ce.subject.locatorHash,rn(ce.ident),me.requester.locatorHash).slice(0,5)}`;A.push({type:1,subject:ue,requested:ce.ident,requester:me.requester,version:De,hash:fe,requirementCount:Ie.length})}}if(!g){let me=Ie.map(Ce=>Ee(Ce.descriptor.range));A.push({type:3,node:ce,range:me.includes(null)?null:qM(me),hash:ce.hash})}}else{let he=!0;for(let De of Ie)if(!De.meta?.optional){he=!1;let Ee=`p${Ji(ce.subject.locatorHash,rn(ce.ident),De.requester.locatorHash).slice(0,5)}`;A.push({type:0,subject:ue,requested:ce.ident,requester:De.requester,hash:Ee})}he||A.push({type:2,node:ce,hash:ce.hash})}}}function*vAt(t){let e=new Map;if("children"in t)e.set(t,t);else for(let r of t.requests.values())e.set(r,r);for(let[r,o]of e){yield{request:r,root:o};for(let a of r.children.values())e.has(a)||e.set(a,o)}}function DAt(t,e){let r=[],o=[],a=!1;for(let n of t.peerWarnings)if(!(n.type===1||n.type===0)){if(!t.tryWorkspaceByLocator(n.node.subject)){a=!0;continue}if(n.type===3){let u=t.storedResolutions.get(n.node.provided.descriptorHash);if(typeof u>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let A=t.storedPackages.get(u);if(typeof A>"u")throw new Error("Assertion failed: Expected the package to be registered");let p=eh(vAt(n.node),({request:w,root:D})=>nA(A.version??"0.0.0",w.descriptor.range)?eh.skip:w===D?Ui(t.configuration,w.requester):`${Ui(t.configuration,w.requester)} (via ${Ui(t.configuration,D.requester)})`),h=[...S1(n.node)].length>1?"and other dependencies request":"requests",E=n.range?cy(t.configuration,n.range):Ut(t.configuration,"but they have non-overlapping ranges!","redBright");r.push(`${Ui(t.configuration,n.node.ident)} is listed by your project with version ${D1(t.configuration,A.version??"0.0.0")} (${Ut(t.configuration,n.hash,Ct.CODE)}), which doesn't satisfy what ${p} ${h} (${E}).`)}if(n.type===2){let u=n.node.requests.size>1?" and other dependencies":"";o.push(`${jr(t.configuration,n.node.subject)} doesn't provide ${Ui(t.configuration,n.node.ident)} (${Ut(t.configuration,n.hash,Ct.CODE)}), requested by ${Ui(t.configuration,n.node.requests.values().next().value.requester)}${u}.`)}}e.startSectionSync({reportFooter:()=>{e.reportWarning(86,`Some peer dependencies are incorrectly met by your project; run ${Ut(t.configuration,"yarn explain peer-requirements ",Ct.CODE)} for details, where ${Ut(t.configuration,"",Ct.CODE)} is the six-letter p-prefixed code.`)},skipIfEmpty:!0},()=>{for(let n of Ps(r,u=>ey.default(u)))e.reportWarning(60,n);for(let n of Ps(o,u=>ey.default(u)))e.reportWarning(2,n)}),a&&e.reportWarning(86,`Some peer dependencies are incorrectly met by dependencies; run ${Ut(t.configuration,"yarn explain peer-requirements",Ct.CODE)} for details.`)}var Qk,Fk,Rk,Mhe,h_,p_,g_,Tk,yAt,EAt,Lhe,CAt,IAt,wAt,yl,f_,Nk,Ohe,Qt,Uhe=It(()=>{Pt();Pt();Ol();Gt();Qk=ve("crypto");n_();Fk=et(c_()),Rk=et(lg()),Mhe=et(ni()),h_=ve("util"),p_=et(ve("v8")),g_=et(ve("zlib"));V8();W1();J8();z8();Ay();KM();Vl();The();n2();u_();Dg();A_();Db();Wl();ah();Gl();nx();a3();xf();Io();Tk=Zm(process.env.YARN_LOCKFILE_VERSION_OVERRIDE??8),yAt=3,EAt=/ *, */g,Lhe=/\/$/,CAt=32,IAt=(0,h_.promisify)(g_.default.gzip),wAt=(0,h_.promisify)(g_.default.gunzip),yl=(r=>(r.UpdateLockfile="update-lockfile",r.SkipBuild="skip-build",r))(yl||{}),f_={restoreLinkersCustomData:["linkersCustomData"],restoreResolutions:["accessibleLocators","conditionalLocators","disabledLocators","optionalBuilds","storedDescriptors","storedResolutions","storedPackages","lockFileChecksum"],restoreBuildState:["skippedBuilds","storedBuildState"]},Nk=(a=>(a[a.NotProvided=0]="NotProvided",a[a.NotCompatible=1]="NotCompatible",a[a.NodeNotProvided=2]="NodeNotProvided",a[a.NodeNotCompatible=3]="NodeNotCompatible",a))(Nk||{}),Ohe=t=>Ji(`${yAt}`,t),Qt=class t{constructor(e,{configuration:r}){this.resolutionAliases=new Map;this.workspaces=[];this.workspacesByCwd=new Map;this.workspacesByIdent=new Map;this.storedResolutions=new Map;this.storedDescriptors=new Map;this.storedPackages=new Map;this.storedChecksums=new Map;this.storedBuildState=new Map;this.accessibleLocators=new Set;this.conditionalLocators=new Set;this.disabledLocators=new Set;this.originalPackages=new Map;this.optionalBuilds=new Set;this.skippedBuilds=new Set;this.lockfileLastVersion=null;this.lockfileNeedsRefresh=!1;this.peerRequirements=new Map;this.peerWarnings=[];this.peerRequirementNodes=new Map;this.linkersCustomData=new Map;this.lockFileChecksum=null;this.installStateChecksum=null;this.configuration=r,this.cwd=e}static async find(e,r){if(!e.projectCwd)throw new it(`No project found in ${r}`);let o=e.projectCwd,a=r,n=null;for(;n!==e.projectCwd;){if(n=a,ae.existsSync(K.join(n,mr.manifest))){o=n;break}a=K.dirname(n)}let u=new t(e.projectCwd,{configuration:e});ze.telemetry?.reportProject(u.cwd),await u.setupResolutions(),await u.setupWorkspaces(),ze.telemetry?.reportWorkspaceCount(u.workspaces.length),ze.telemetry?.reportDependencyCount(u.workspaces.reduce((C,T)=>C+T.manifest.dependencies.size+T.manifest.devDependencies.size,0));let A=u.tryWorkspaceByCwd(o);if(A)return{project:u,workspace:A,locator:A.anchoredLocator};let p=await u.findLocatorForLocation(`${o}/`,{strict:!0});if(p)return{project:u,locator:p,workspace:null};let h=Ut(e,u.cwd,Ct.PATH),E=Ut(e,K.relative(u.cwd,o),Ct.PATH),w=`- If ${h} isn't intended to be a project, remove any yarn.lock and/or package.json file there.`,D=`- If ${h} is intended to be a project, it might be that you forgot to list ${E} in its workspace configuration.`,x=`- Finally, if ${h} is fine and you intend ${E} to be treated as a completely separate project (not even a workspace), create an empty yarn.lock file in it.`;throw new it(`The nearest package directory (${Ut(e,o,Ct.PATH)}) doesn't seem to be part of the project declared in ${Ut(e,u.cwd,Ct.PATH)}. + +${[w,D,x].join(` +`)}`)}async setupResolutions(){this.storedResolutions=new Map,this.storedDescriptors=new Map,this.storedPackages=new Map,this.lockFileChecksum=null;let e=K.join(this.cwd,mr.lockfile),r=this.configuration.get("defaultLanguageName");if(ae.existsSync(e)){let o=await ae.readFilePromise(e,"utf8");this.lockFileChecksum=Ohe(o);let a=Ki(o);if(a.__metadata){let n=a.__metadata.version,u=a.__metadata.cacheKey;this.lockfileLastVersion=n,this.lockfileNeedsRefresh=n"u")throw new Error(`Assertion failed: Expected the lockfile entry to have a resolution field (${A})`);let h=Sf(p.resolution,!0),E=new _t;E.load(p,{yamlCompatibilityMode:!0});let w=E.version,D=E.languageName||r,x=p.linkType.toUpperCase(),C=p.conditions??null,T=E.dependencies,L=E.peerDependencies,U=E.dependenciesMeta,J=E.peerDependenciesMeta,te=E.bin;if(p.checksum!=null){let ce=typeof u<"u"&&!p.checksum.includes("/")?`${u}/${p.checksum}`:p.checksum;this.storedChecksums.set(h.locatorHash,ce)}let le={...h,version:w,languageName:D,linkType:x,conditions:C,dependencies:T,peerDependencies:L,dependenciesMeta:U,peerDependenciesMeta:J,bin:te};this.originalPackages.set(le.locatorHash,le);for(let ce of A.split(EAt)){let ue=lh(ce);n<=6&&(ue=this.configuration.normalizeDependency(ue),ue=kn(ue,ue.range.replace(/^patch:[^@]+@(?!npm(:|%3A))/,"$1npm%3A"))),this.storedDescriptors.set(ue.descriptorHash,ue),this.storedResolutions.set(ue.descriptorHash,h.locatorHash)}}}else o.includes("yarn lockfile v1")&&(this.lockfileLastVersion=-1)}}async setupWorkspaces(){this.workspaces=[],this.workspacesByCwd=new Map,this.workspacesByIdent=new Map;let e=new Set,r=(0,Rk.default)(4),o=async(a,n)=>{if(e.has(n))return a;e.add(n);let u=new iE(n,{project:this});await r(()=>u.setup());let A=a.then(()=>{this.addWorkspace(u)});return Array.from(u.workspacesCwds).reduce(o,A)};await o(Promise.resolve(),this.cwd)}addWorkspace(e){let r=this.workspacesByIdent.get(e.anchoredLocator.identHash);if(typeof r<"u")throw new Error(`Duplicate workspace name ${Ui(this.configuration,e.anchoredLocator)}: ${Ae.fromPortablePath(e.cwd)} conflicts with ${Ae.fromPortablePath(r.cwd)}`);this.workspaces.push(e),this.workspacesByCwd.set(e.cwd,e),this.workspacesByIdent.set(e.anchoredLocator.identHash,e)}get topLevelWorkspace(){return this.getWorkspaceByCwd(this.cwd)}tryWorkspaceByCwd(e){K.isAbsolute(e)||(e=K.resolve(this.cwd,e)),e=K.normalize(e).replace(/\/+$/,"");let r=this.workspacesByCwd.get(e);return r||null}getWorkspaceByCwd(e){let r=this.tryWorkspaceByCwd(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByFilePath(e){let r=null;for(let o of this.workspaces)K.relative(o.cwd,e).startsWith("../")||r&&r.cwd.length>=o.cwd.length||(r=o);return r||null}getWorkspaceByFilePath(e){let r=this.tryWorkspaceByFilePath(e);if(!r)throw new Error(`Workspace not found (${e})`);return r}tryWorkspaceByIdent(e){let r=this.workspacesByIdent.get(e.identHash);return typeof r>"u"?null:r}getWorkspaceByIdent(e){let r=this.tryWorkspaceByIdent(e);if(!r)throw new Error(`Workspace not found (${Ui(this.configuration,e)})`);return r}tryWorkspaceByDescriptor(e){if(e.range.startsWith(ci.protocol)){let o=e.range.slice(ci.protocol.length);if(o!=="^"&&o!=="~"&&o!=="*"&&!Fa(o))return this.tryWorkspaceByCwd(o)}let r=this.tryWorkspaceByIdent(e);return r===null||(Pf(e)&&(e=C1(e)),!r.accepts(e.range))?null:r}getWorkspaceByDescriptor(e){let r=this.tryWorkspaceByDescriptor(e);if(r===null)throw new Error(`Workspace not found (${Jn(this.configuration,e)})`);return r}tryWorkspaceByLocator(e){let r=this.tryWorkspaceByIdent(e);return r===null||(Jc(e)&&(e=I1(e)),r.anchoredLocator.locatorHash!==e.locatorHash)?null:r}getWorkspaceByLocator(e){let r=this.tryWorkspaceByLocator(e);if(!r)throw new Error(`Workspace not found (${jr(this.configuration,e)})`);return r}deleteDescriptor(e){this.storedResolutions.delete(e),this.storedDescriptors.delete(e)}deleteLocator(e){this.originalPackages.delete(e),this.storedPackages.delete(e),this.accessibleLocators.delete(e)}forgetResolution(e){if("descriptorHash"in e){let r=this.storedResolutions.get(e.descriptorHash);this.deleteDescriptor(e.descriptorHash);let o=new Set(this.storedResolutions.values());typeof r<"u"&&!o.has(r)&&this.deleteLocator(r)}if("locatorHash"in e){this.deleteLocator(e.locatorHash);for(let[r,o]of this.storedResolutions)o===e.locatorHash&&this.deleteDescriptor(r)}}forgetTransientResolutions(){let e=this.configuration.makeResolver(),r=new Map;for(let[o,a]of this.storedResolutions.entries()){let n=r.get(a);n||r.set(a,n=new Set),n.add(o)}for(let o of this.originalPackages.values()){let a;try{a=e.shouldPersistResolution(o,{project:this,resolver:e})}catch{a=!1}if(!a){this.deleteLocator(o.locatorHash);let n=r.get(o.locatorHash);if(n){r.delete(o.locatorHash);for(let u of n)this.deleteDescriptor(u)}}}}forgetVirtualResolutions(){for(let e of this.storedPackages.values())for(let[r,o]of e.dependencies)Pf(o)&&e.dependencies.set(r,C1(o))}getDependencyMeta(e,r){let o={},n=this.topLevelWorkspace.manifest.dependenciesMeta.get(rn(e));if(!n)return o;let u=n.get(null);if(u&&Object.assign(o,u),r===null||!Mhe.default.valid(r))return o;for(let[A,p]of n)A!==null&&A===r&&Object.assign(o,p);return o}async findLocatorForLocation(e,{strict:r=!1}={}){let o=new Ri,a=this.configuration.getLinkers(),n={project:this,report:o};for(let u of a){let A=await u.findPackageLocator(e,n);if(A){if(r&&(await u.findPackageLocation(A,n)).replace(Lhe,"")!==e.replace(Lhe,""))continue;return A}}return null}async loadUserConfig(){let e=K.join(this.cwd,".pnp.cjs");await ae.existsPromise(e)&&vf(e).setup();let r=K.join(this.cwd,"yarn.config.cjs");return await ae.existsPromise(r)?vf(r):null}async preparePackage(e,{resolver:r,resolveOptions:o}){let a=await this.configuration.getPackageExtensions(),n=this.configuration.normalizePackage(e,{packageExtensions:a});for(let[u,A]of n.dependencies){let p=await this.configuration.reduceHook(E=>E.reduceDependency,A,this,n,A,{resolver:r,resolveOptions:o});if(!w1(A,p))throw new Error("Assertion failed: The descriptor ident cannot be changed through aliases");let h=r.bindDescriptor(p,n,o);n.dependencies.set(u,h)}return n}async resolveEverything(e){if(!this.workspacesByCwd||!this.workspacesByIdent)throw new Error("Workspaces must have been setup before calling this function");this.forgetVirtualResolutions();let r=new Map(this.originalPackages),o=[];e.lockfileOnly||this.forgetTransientResolutions();let a=e.resolver||this.configuration.makeResolver(),n=new tE(a);await n.setup(this,{report:e.report});let u=e.lockfileOnly?[new kk(a)]:[n,a],A=new Pg([new rE(a),...u]),p=new Pg([...u]),h=this.configuration.makeFetcher(),E=e.lockfileOnly?{project:this,report:e.report,resolver:A}:{project:this,report:e.report,resolver:A,fetchOptions:{project:this,cache:e.cache,checksums:this.storedChecksums,report:e.report,fetcher:h,cacheOptions:{mirrorWriteOnly:!0}}},w=new Map,D=new Map,x=new Map,C=new Map,T=new Map,L=new Map,U=this.topLevelWorkspace.anchoredLocator,J=new Set,te=[],le=I4(),ce=this.configuration.getSupportedArchitectures();await e.report.startProgressPromise(Ws.progressViaTitle(),async ie=>{let Z=async nt=>{let Ne=await zm(async()=>await A.resolve(nt,E),be=>`${jr(this.configuration,nt)}: ${be}`);if(!B1(nt,Ne))throw new Error(`Assertion failed: The locator cannot be changed by the resolver (went from ${jr(this.configuration,nt)} to ${jr(this.configuration,Ne)})`);C.set(Ne.locatorHash,Ne),!r.delete(Ne.locatorHash)&&!this.tryWorkspaceByLocator(Ne)&&o.push(Ne);let ke=await this.preparePackage(Ne,{resolver:A,resolveOptions:E}),Ve=Wc([...ke.dependencies.values()].map(be=>q(be)));return te.push(Ve),Ve.catch(()=>{}),D.set(ke.locatorHash,ke),ke},Pe=async nt=>{let Ne=T.get(nt.locatorHash);if(typeof Ne<"u")return Ne;let Te=Promise.resolve().then(()=>Z(nt));return T.set(nt.locatorHash,Te),Te},Re=async(nt,Ne)=>{let Te=await q(Ne);return w.set(nt.descriptorHash,nt),x.set(nt.descriptorHash,Te.locatorHash),Te},ht=async nt=>{ie.setTitle(Jn(this.configuration,nt));let Ne=this.resolutionAliases.get(nt.descriptorHash);if(typeof Ne<"u")return Re(nt,this.storedDescriptors.get(Ne));let Te=A.getResolutionDependencies(nt,E),ke=Object.fromEntries(await Wc(Object.entries(Te).map(async([tt,He])=>{let b=A.bindDescriptor(He,U,E),I=await q(b);return J.add(I.locatorHash),[tt,I]}))),be=(await zm(async()=>await A.getCandidates(nt,ke,E),tt=>`${Jn(this.configuration,nt)}: ${tt}`))[0];if(typeof be>"u")throw new Jt(82,`${Jn(this.configuration,nt)}: No candidates found`);if(e.checkResolutions){let{locators:tt}=await p.getSatisfying(nt,ke,[be],{...E,resolver:p});if(!tt.find(He=>He.locatorHash===be.locatorHash))throw new Jt(78,`Invalid resolution ${d1(this.configuration,nt,be)}`)}return w.set(nt.descriptorHash,nt),x.set(nt.descriptorHash,be.locatorHash),Pe(be)},q=nt=>{let Ne=L.get(nt.descriptorHash);if(typeof Ne<"u")return Ne;w.set(nt.descriptorHash,nt);let Te=Promise.resolve().then(()=>ht(nt));return L.set(nt.descriptorHash,Te),Te};for(let nt of this.workspaces){let Ne=nt.anchoredDescriptor;te.push(q(Ne))}for(;te.length>0;){let nt=[...te];te.length=0,await Wc(nt)}});let ue=ul(r.values(),ie=>this.tryWorkspaceByLocator(ie)?ul.skip:ie);if(o.length>0||ue.length>0){let ie=new Set(this.workspaces.flatMap(nt=>{let Ne=D.get(nt.anchoredLocator.locatorHash);if(!Ne)throw new Error("Assertion failed: The workspace should have been resolved");return Array.from(Ne.dependencies.values(),Te=>{let ke=x.get(Te.descriptorHash);if(!ke)throw new Error("Assertion failed: The resolution should have been registered");return ke})})),Z=nt=>ie.has(nt.locatorHash)?"0":"1",Pe=nt=>Qa(nt),Re=Ps(o,[Z,Pe]),ht=Ps(ue,[Z,Pe]),q=e.report.getRecommendedLength();Re.length>0&&e.report.reportInfo(85,`${Ut(this.configuration,"+",Ct.ADDED)} ${_S(this.configuration,Re,q)}`),ht.length>0&&e.report.reportInfo(85,`${Ut(this.configuration,"-",Ct.REMOVED)} ${_S(this.configuration,ht,q)}`)}let Ie=new Set(this.resolutionAliases.values()),he=new Set(D.keys()),De=new Set,Ee=new Map,g=[],me=new Map;BAt({project:this,accessibleLocators:De,volatileDescriptors:Ie,optionalBuilds:he,peerRequirements:Ee,peerWarnings:g,peerRequirementNodes:me,allDescriptors:w,allResolutions:x,allPackages:D});for(let ie of J)he.delete(ie);for(let ie of Ie)w.delete(ie),x.delete(ie);let Ce=new Set,fe=new Set;for(let ie of D.values())ie.conditions!=null&&he.has(ie.locatorHash)&&(Cb(ie,ce)||(Cb(ie,le)&&e.report.reportWarningOnce(77,`${jr(this.configuration,ie)}: Your current architecture (${process.platform}-${process.arch}) is supported by this package, but is missing from the ${Ut(this.configuration,"supportedArchitectures",Ct.SETTING)} setting`),fe.add(ie.locatorHash)),Ce.add(ie.locatorHash));this.storedResolutions=x,this.storedDescriptors=w,this.storedPackages=D,this.accessibleLocators=De,this.conditionalLocators=Ce,this.disabledLocators=fe,this.originalPackages=C,this.optionalBuilds=he,this.peerRequirements=Ee,this.peerWarnings=g,this.peerRequirementNodes=me}async fetchEverything({cache:e,report:r,fetcher:o,mode:a,persistProject:n=!0}){let u={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators},A=o||this.configuration.makeFetcher(),p={checksums:this.storedChecksums,project:this,cache:e,fetcher:A,report:r,cacheOptions:u},h=Array.from(new Set(Ps(this.storedResolutions.values(),[C=>{let T=this.storedPackages.get(C);if(!T)throw new Error("Assertion failed: The locator should have been registered");return Qa(T)}])));a==="update-lockfile"&&(h=h.filter(C=>!this.storedChecksums.has(C)));let E=!1,w=Ws.progressViaCounter(h.length);await r.reportProgress(w);let D=(0,Rk.default)(CAt);if(await Wc(h.map(C=>D(async()=>{let T=this.storedPackages.get(C);if(!T)throw new Error("Assertion failed: The locator should have been registered");if(Jc(T))return;let L;try{L=await A.fetch(T,p)}catch(U){U.message=`${jr(this.configuration,T)}: ${U.message}`,r.reportExceptionOnce(U),E=U;return}L.checksum!=null?this.storedChecksums.set(T.locatorHash,L.checksum):this.storedChecksums.delete(T.locatorHash),L.releaseFs&&L.releaseFs()}).finally(()=>{w.tick()}))),E)throw E;let x=n&&a!=="update-lockfile"?await this.cacheCleanup({cache:e,report:r}):null;if(r.cacheMisses.size>0||x){let T=(await Promise.all([...r.cacheMisses].map(async ue=>{let Ie=this.storedPackages.get(ue),he=this.storedChecksums.get(ue)??null,De=e.getLocatorPath(Ie,he);return(await ae.statPromise(De)).size}))).reduce((ue,Ie)=>ue+Ie,0)-(x?.size??0),L=r.cacheMisses.size,U=x?.count??0,J=`${TS(L,{zero:"No new packages",one:"A package was",more:`${Ut(this.configuration,L,Ct.NUMBER)} packages were`})} added to the project`,te=`${TS(U,{zero:"none were",one:"one was",more:`${Ut(this.configuration,U,Ct.NUMBER)} were`})} removed`,le=T!==0?` (${Ut(this.configuration,T,Ct.SIZE_DIFF)})`:"",ce=U>0?L>0?`${J}, and ${te}${le}.`:`${J}, but ${te}${le}.`:`${J}${le}.`;r.reportInfo(13,ce)}}async linkEverything({cache:e,report:r,fetcher:o,mode:a}){let n={mockedPackages:this.disabledLocators,unstablePackages:this.conditionalLocators,skipIntegrityCheck:!0},u=o||this.configuration.makeFetcher(),A={checksums:this.storedChecksums,project:this,cache:e,fetcher:u,report:r,cacheOptions:n},p=this.configuration.getLinkers(),h={project:this,report:r},E=new Map(p.map(Ce=>{let fe=Ce.makeInstaller(h),ie=Ce.getCustomDataKey(),Z=this.linkersCustomData.get(ie);return typeof Z<"u"&&fe.attachCustomData(Z),[Ce,fe]})),w=new Map,D=new Map,x=new Map,C=new Map(await Wc([...this.accessibleLocators].map(async Ce=>{let fe=this.storedPackages.get(Ce);if(!fe)throw new Error("Assertion failed: The locator should have been registered");return[Ce,await u.fetch(fe,A)]}))),T=[],L=new Set,U=[];for(let Ce of this.accessibleLocators){let fe=this.storedPackages.get(Ce);if(typeof fe>"u")throw new Error("Assertion failed: The locator should have been registered");let ie=C.get(fe.locatorHash);if(typeof ie>"u")throw new Error("Assertion failed: The fetch result should have been registered");let Z=[],Pe=ht=>{Z.push(ht)},Re=this.tryWorkspaceByLocator(fe);if(Re!==null){let ht=[],{scripts:q}=Re.manifest;for(let Ne of["preinstall","install","postinstall"])q.has(Ne)&&ht.push({type:0,script:Ne});try{for(let[Ne,Te]of E)if(Ne.supportsPackage(fe,h)&&(await Te.installPackage(fe,ie,{holdFetchResult:Pe})).buildRequest!==null)throw new Error("Assertion failed: Linkers can't return build directives for workspaces; this responsibility befalls to the Yarn core")}finally{Z.length===0?ie.releaseFs?.():T.push(Wc(Z).catch(()=>{}).then(()=>{ie.releaseFs?.()}))}let nt=K.join(ie.packageFs.getRealPath(),ie.prefixPath);D.set(fe.locatorHash,nt),!Jc(fe)&&ht.length>0&&x.set(fe.locatorHash,{buildDirectives:ht,buildLocations:[nt]})}else{let ht=p.find(Ne=>Ne.supportsPackage(fe,h));if(!ht)throw new Jt(12,`${jr(this.configuration,fe)} isn't supported by any available linker`);let q=E.get(ht);if(!q)throw new Error("Assertion failed: The installer should have been registered");let nt;try{nt=await q.installPackage(fe,ie,{holdFetchResult:Pe})}finally{Z.length===0?ie.releaseFs?.():T.push(Wc(Z).then(()=>{}).then(()=>{ie.releaseFs?.()}))}w.set(fe.locatorHash,ht),D.set(fe.locatorHash,nt.packageLocation),nt.buildRequest&&nt.packageLocation&&(nt.buildRequest.skipped?(L.add(fe.locatorHash),this.skippedBuilds.has(fe.locatorHash)||U.push([fe,nt.buildRequest.explain])):x.set(fe.locatorHash,{buildDirectives:nt.buildRequest.directives,buildLocations:[nt.packageLocation]}))}}let J=new Map;for(let Ce of this.accessibleLocators){let fe=this.storedPackages.get(Ce);if(!fe)throw new Error("Assertion failed: The locator should have been registered");let ie=this.tryWorkspaceByLocator(fe)!==null,Z=async(Pe,Re)=>{let ht=D.get(fe.locatorHash);if(typeof ht>"u")throw new Error(`Assertion failed: The package (${jr(this.configuration,fe)}) should have been registered`);let q=[];for(let nt of fe.dependencies.values()){let Ne=this.storedResolutions.get(nt.descriptorHash);if(typeof Ne>"u")throw new Error(`Assertion failed: The resolution (${Jn(this.configuration,nt)}, from ${jr(this.configuration,fe)})should have been registered`);let Te=this.storedPackages.get(Ne);if(typeof Te>"u")throw new Error(`Assertion failed: The package (${Ne}, resolved from ${Jn(this.configuration,nt)}) should have been registered`);let ke=this.tryWorkspaceByLocator(Te)===null?w.get(Ne):null;if(typeof ke>"u")throw new Error(`Assertion failed: The package (${Ne}, resolved from ${Jn(this.configuration,nt)}) should have been registered`);ke===Pe||ke===null?D.get(Te.locatorHash)!==null&&q.push([nt,Te]):!ie&&ht!==null&&u1(J,Ne).push(ht)}ht!==null&&await Re.attachInternalDependencies(fe,q)};if(ie)for(let[Pe,Re]of E)Pe.supportsPackage(fe,h)&&await Z(Pe,Re);else{let Pe=w.get(fe.locatorHash);if(!Pe)throw new Error("Assertion failed: The linker should have been found");let Re=E.get(Pe);if(!Re)throw new Error("Assertion failed: The installer should have been registered");await Z(Pe,Re)}}for(let[Ce,fe]of J){let ie=this.storedPackages.get(Ce);if(!ie)throw new Error("Assertion failed: The package should have been registered");let Z=w.get(ie.locatorHash);if(!Z)throw new Error("Assertion failed: The linker should have been found");let Pe=E.get(Z);if(!Pe)throw new Error("Assertion failed: The installer should have been registered");await Pe.attachExternalDependents(ie,fe)}let te=new Map;for(let[Ce,fe]of E){let ie=await fe.finalizeInstall();for(let Z of ie?.records??[])Z.buildRequest.skipped?(L.add(Z.locator.locatorHash),this.skippedBuilds.has(Z.locator.locatorHash)||U.push([Z.locator,Z.buildRequest.explain])):x.set(Z.locator.locatorHash,{buildDirectives:Z.buildRequest.directives,buildLocations:Z.buildLocations});typeof ie?.customData<"u"&&te.set(Ce.getCustomDataKey(),ie.customData)}if(this.linkersCustomData=te,await Wc(T),a==="skip-build")return;for(let[,Ce]of Ps(U,([fe])=>Qa(fe)))Ce(r);let le=new Set(x.keys()),ce=(0,Qk.createHash)("sha512");ce.update(process.versions.node),await this.configuration.triggerHook(Ce=>Ce.globalHashGeneration,this,Ce=>{ce.update("\0"),ce.update(Ce)});let ue=ce.digest("hex"),Ie=new Map,he=Ce=>{let fe=Ie.get(Ce.locatorHash);if(typeof fe<"u")return fe;let ie=this.storedPackages.get(Ce.locatorHash);if(typeof ie>"u")throw new Error("Assertion failed: The package should have been registered");let Z=(0,Qk.createHash)("sha512");Z.update(Ce.locatorHash),Ie.set(Ce.locatorHash,"");for(let Pe of ie.dependencies.values()){let Re=this.storedResolutions.get(Pe.descriptorHash);if(typeof Re>"u")throw new Error(`Assertion failed: The resolution (${Jn(this.configuration,Pe)}) should have been registered`);let ht=this.storedPackages.get(Re);if(typeof ht>"u")throw new Error("Assertion failed: The package should have been registered");Z.update(he(ht))}return fe=Z.digest("hex"),Ie.set(Ce.locatorHash,fe),fe},De=(Ce,fe)=>{let ie=(0,Qk.createHash)("sha512");ie.update(ue),ie.update(he(Ce));for(let Z of fe)ie.update(Z);return ie.digest("hex")},Ee=new Map,g=!1,me=Ce=>{let fe=new Set([Ce.locatorHash]);for(let ie of fe){let Z=this.storedPackages.get(ie);if(!Z)throw new Error("Assertion failed: The package should have been registered");for(let Pe of Z.dependencies.values()){let Re=this.storedResolutions.get(Pe.descriptorHash);if(!Re)throw new Error(`Assertion failed: The resolution (${Jn(this.configuration,Pe)}) should have been registered`);if(Re!==Ce.locatorHash&&le.has(Re))return!1;let ht=this.storedPackages.get(Re);if(!ht)throw new Error("Assertion failed: The package should have been registered");let q=this.tryWorkspaceByLocator(ht);if(q){if(q.anchoredLocator.locatorHash!==Ce.locatorHash&&le.has(q.anchoredLocator.locatorHash))return!1;fe.add(q.anchoredLocator.locatorHash)}fe.add(Re)}}return!0};for(;le.size>0;){let Ce=le.size,fe=[];for(let ie of le){let Z=this.storedPackages.get(ie);if(!Z)throw new Error("Assertion failed: The package should have been registered");if(!me(Z))continue;let Pe=x.get(Z.locatorHash);if(!Pe)throw new Error("Assertion failed: The build directive should have been registered");let Re=De(Z,Pe.buildLocations);if(this.storedBuildState.get(Z.locatorHash)===Re){Ee.set(Z.locatorHash,Re),le.delete(ie);continue}g||(await this.persistInstallStateFile(),g=!0),this.storedBuildState.has(Z.locatorHash)?r.reportInfo(8,`${jr(this.configuration,Z)} must be rebuilt because its dependency tree changed`):r.reportInfo(7,`${jr(this.configuration,Z)} must be built because it never has been before or the last one failed`);let ht=Pe.buildLocations.map(async q=>{if(!K.isAbsolute(q))throw new Error(`Assertion failed: Expected the build location to be absolute (not ${q})`);for(let nt of Pe.buildDirectives){let Ne=`# This file contains the result of Yarn building a package (${Qa(Z)}) +`;switch(nt.type){case 0:Ne+=`# Script name: ${nt.script} +`;break;case 1:Ne+=`# Script code: ${nt.script} +`;break}let Te=null;if(!await ae.mktempPromise(async Ve=>{let be=K.join(Ve,"build.log"),{stdout:tt,stderr:He}=this.configuration.getSubprocessStreams(be,{header:Ne,prefix:jr(this.configuration,Z),report:r}),b;try{switch(nt.type){case 0:b=await Dx(Z,nt.script,[],{cwd:q,project:this,stdin:Te,stdout:tt,stderr:He});break;case 1:b=await n3(Z,nt.script,[],{cwd:q,project:this,stdin:Te,stdout:tt,stderr:He});break}}catch(y){He.write(y.stack),b=1}if(tt.end(),He.end(),b===0)return!0;ae.detachTemp(Ve);let I=`${jr(this.configuration,Z)} couldn't be built successfully (exit code ${Ut(this.configuration,b,Ct.NUMBER)}, logs can be found here: ${Ut(this.configuration,be,Ct.PATH)})`,S=this.optionalBuilds.has(Z.locatorHash);return S?r.reportInfo(9,I):r.reportError(9,I),Lue&&r.reportFold(Ae.fromPortablePath(be),ae.readFileSync(be,"utf8")),S}))return!1}return!0});fe.push(...ht,Promise.allSettled(ht).then(q=>{le.delete(ie),q.every(nt=>nt.status==="fulfilled"&&nt.value===!0)&&Ee.set(Z.locatorHash,Re)}))}if(await Wc(fe),Ce===le.size){let ie=Array.from(le).map(Z=>{let Pe=this.storedPackages.get(Z);if(!Pe)throw new Error("Assertion failed: The package should have been registered");return jr(this.configuration,Pe)}).join(", ");r.reportError(3,`Some packages have circular dependencies that make their build order unsatisfiable - as a result they won't be built (affected packages are: ${ie})`);break}}this.storedBuildState=Ee,this.skippedBuilds=L}async installWithNewReport(e,r){return(await Nt.start({configuration:this.configuration,json:e.json,stdout:e.stdout,forceSectionAlignment:!0,includeLogs:!e.json&&!e.quiet,includeVersion:!0},async a=>{await this.install({...r,report:a})})).exitCode()}async install(e){let r=this.configuration.get("nodeLinker");ze.telemetry?.reportInstall(r);let o=!1;if(await e.report.startTimerPromise("Project validation",{skipIfEmpty:!0},async()=>{this.configuration.get("enableOfflineMode")&&e.report.reportWarning(90,"Offline work is enabled; Yarn won't fetch packages from the remote registry if it can avoid it"),await this.configuration.triggerHook(E=>E.validateProject,this,{reportWarning:(E,w)=>{e.report.reportWarning(E,w)},reportError:(E,w)=>{e.report.reportError(E,w),o=!0}})}),o)return;let a=await this.configuration.getPackageExtensions();for(let E of a.values())for(let[,w]of E)for(let D of w)D.status="inactive";let n=K.join(this.cwd,mr.lockfile),u=null;if(e.immutable)try{u=await ae.readFilePromise(n,"utf8")}catch(E){throw E.code==="ENOENT"?new Jt(28,"The lockfile would have been created by this install, which is explicitly forbidden."):E}await e.report.startTimerPromise("Resolution step",async()=>{await this.resolveEverything(e)}),await e.report.startTimerPromise("Post-resolution validation",{skipIfEmpty:!0},async()=>{DAt(this,e.report);for(let[,E]of a)for(let[,w]of E)for(let D of w)if(D.userProvided){let x=Ut(this.configuration,D,Ct.PACKAGE_EXTENSION);switch(D.status){case"inactive":e.report.reportWarning(68,`${x}: No matching package in the dependency tree; you may not need this rule anymore.`);break;case"redundant":e.report.reportWarning(69,`${x}: This rule seems redundant when applied on the original package; the extension may have been applied upstream.`);break}}if(u!==null){let E=G0(u,this.generateLockfile());if(E!==u){let w=ehe(n,n,u,E,void 0,void 0,{maxEditLength:100});if(w){e.report.reportSeparator();for(let D of w.hunks){e.report.reportInfo(null,`@@ -${D.oldStart},${D.oldLines} +${D.newStart},${D.newLines} @@`);for(let x of D.lines)x.startsWith("+")?e.report.reportError(28,Ut(this.configuration,x,Ct.ADDED)):x.startsWith("-")?e.report.reportError(28,Ut(this.configuration,x,Ct.REMOVED)):e.report.reportInfo(null,Ut(this.configuration,x,"grey"))}e.report.reportSeparator()}throw new Jt(28,"The lockfile would have been modified by this install, which is explicitly forbidden.")}}});for(let E of a.values())for(let[,w]of E)for(let D of w)D.userProvided&&D.status==="active"&&ze.telemetry?.reportPackageExtension(Ig(D,Ct.PACKAGE_EXTENSION));await e.report.startTimerPromise("Fetch step",async()=>{await this.fetchEverything(e)});let A=e.immutable?[...new Set(this.configuration.get("immutablePatterns"))].sort():[],p=await Promise.all(A.map(async E=>hb(E,{cwd:this.cwd})));(typeof e.persistProject>"u"||e.persistProject)&&await this.persist(),await e.report.startTimerPromise("Link step",async()=>{if(e.mode==="update-lockfile"){e.report.reportWarning(73,`Skipped due to ${Ut(this.configuration,"mode=update-lockfile",Ct.CODE)}`);return}await this.linkEverything(e);let E=await Promise.all(A.map(async w=>hb(w,{cwd:this.cwd})));for(let w=0;w{await this.configuration.triggerHook(E=>E.validateProjectAfterInstall,this,{reportWarning:(E,w)=>{e.report.reportWarning(E,w)},reportError:(E,w)=>{e.report.reportError(E,w),h=!0}})}),!h&&await this.configuration.triggerHook(E=>E.afterAllInstalled,this,e)}generateLockfile(){let e=new Map;for(let[n,u]of this.storedResolutions.entries()){let A=e.get(u);A||e.set(u,A=new Set),A.add(n)}let r={},{cacheKey:o}=Wr.getCacheKey(this.configuration);r.__metadata={version:Tk,cacheKey:o};for(let[n,u]of e.entries()){let A=this.originalPackages.get(n);if(!A)continue;let p=[];for(let w of u){let D=this.storedDescriptors.get(w);if(!D)throw new Error("Assertion failed: The descriptor should have been registered");p.push(D)}let h=p.map(w=>ka(w)).sort().join(", "),E=new _t;E.version=A.linkType==="HARD"?A.version:"0.0.0-use.local",E.languageName=A.languageName,E.dependencies=new Map(A.dependencies),E.peerDependencies=new Map(A.peerDependencies),E.dependenciesMeta=new Map(A.dependenciesMeta),E.peerDependenciesMeta=new Map(A.peerDependenciesMeta),E.bin=new Map(A.bin),r[h]={...E.exportTo({},{compatibilityMode:!1}),linkType:A.linkType.toLowerCase(),resolution:Qa(A),checksum:this.storedChecksums.get(A.locatorHash),conditions:A.conditions||void 0}}return`${[`# This file is generated by running "yarn install" inside your project. +`,`# Manual changes might be lost - proceed with caution! +`].join("")} +`+Pa(r)}async persistLockfile(){let e=K.join(this.cwd,mr.lockfile),r="";try{r=await ae.readFilePromise(e,"utf8")}catch{}let o=this.generateLockfile(),a=G0(r,o);a!==r&&(await ae.writeFilePromise(e,a),this.lockFileChecksum=Ohe(a),this.lockfileNeedsRefresh=!1)}async persistInstallStateFile(){let e=[];for(let u of Object.values(f_))e.push(...u);let r=(0,Fk.default)(this,e),o=p_.default.serialize(r),a=Ji(o);if(this.installStateChecksum===a)return;let n=this.configuration.get("installStatePath");await ae.mkdirPromise(K.dirname(n),{recursive:!0}),await ae.writeFilePromise(n,await IAt(o)),this.installStateChecksum=a}async restoreInstallState({restoreLinkersCustomData:e=!0,restoreResolutions:r=!0,restoreBuildState:o=!0}={}){let a=this.configuration.get("installStatePath"),n;try{let u=await wAt(await ae.readFilePromise(a));n=p_.default.deserialize(u),this.installStateChecksum=Ji(u)}catch{r&&await this.applyLightResolution();return}e&&typeof n.linkersCustomData<"u"&&(this.linkersCustomData=n.linkersCustomData),o&&Object.assign(this,(0,Fk.default)(n,f_.restoreBuildState)),r&&(n.lockFileChecksum===this.lockFileChecksum?Object.assign(this,(0,Fk.default)(n,f_.restoreResolutions)):await this.applyLightResolution())}async applyLightResolution(){await this.resolveEverything({lockfileOnly:!0,report:new Ri}),await this.persistInstallStateFile()}async persist(){let e=(0,Rk.default)(4);await Promise.all([this.persistLockfile(),...this.workspaces.map(r=>e(()=>r.persistManifest()))])}async cacheCleanup({cache:e,report:r}){if(this.configuration.get("enableGlobalCache"))return null;let o=new Set([".gitignore"]);if(!nU(e.cwd,this.cwd)||!await ae.existsPromise(e.cwd))return null;let a=[];for(let u of await ae.readdirPromise(e.cwd)){if(o.has(u))continue;let A=K.resolve(e.cwd,u);e.markedFiles.has(A)||(e.immutable?r.reportError(56,`${Ut(this.configuration,K.basename(A),"magenta")} appears to be unused and would be marked for deletion, but the cache is immutable`):a.push(ae.lstatPromise(A).then(async p=>(await ae.removePromise(A),p.size))))}if(a.length===0)return null;let n=await Promise.all(a);return{count:a.length,size:n.reduce((u,A)=>u+A,0)}}}});function PAt(t){let o=Math.floor(t.timeNow/864e5),a=t.updateInterval*864e5,n=t.state.lastUpdate??t.timeNow+a+Math.floor(a*t.randomInitialInterval),u=n+a,A=t.state.lastTips??o*864e5,p=A+864e5+8*36e5-t.timeZone,h=u<=t.timeNow,E=p<=t.timeNow,w=null;return(h||E||!t.state.lastUpdate||!t.state.lastTips)&&(w={},w.lastUpdate=h?t.timeNow:n,w.lastTips=A,w.blocks=h?{}:t.state.blocks,w.displayedTips=t.state.displayedTips),{nextState:w,triggerUpdate:h,triggerTips:E,nextTips:E?o*864e5:A}}var sE,_he=It(()=>{Pt();r2();ah();tx();Gl();xf();sE=class{constructor(e,r){this.values=new Map;this.hits=new Map;this.enumerators=new Map;this.nextTips=0;this.displayedTips=[];this.shouldCommitTips=!1;this.configuration=e;let o=this.getRegistryPath();this.isNew=!ae.existsSync(o),this.shouldShowTips=!1,this.sendReport(r),this.startBuffer()}commitTips(){this.shouldShowTips&&(this.shouldCommitTips=!0)}selectTip(e){let r=new Set(this.displayedTips),o=A=>A&&nn?nA(nn,A):!1,a=e.map((A,p)=>p).filter(A=>e[A]&&o(e[A]?.selector));if(a.length===0)return null;let n=a.filter(A=>!r.has(A));if(n.length===0){let A=Math.floor(a.length*.2);this.displayedTips=A>0?this.displayedTips.slice(-A):[],n=a.filter(p=>!r.has(p))}let u=n[Math.floor(Math.random()*n.length)];return this.displayedTips.push(u),this.commitTips(),e[u]}reportVersion(e){this.reportValue("version",e.replace(/-git\..*/,"-git"))}reportCommandName(e){this.reportValue("commandName",e||"")}reportPluginName(e){this.reportValue("pluginName",e)}reportProject(e){this.reportEnumerator("projectCount",e)}reportInstall(e){this.reportHit("installCount",e)}reportPackageExtension(e){this.reportValue("packageExtension",e)}reportWorkspaceCount(e){this.reportValue("workspaceCount",String(e))}reportDependencyCount(e){this.reportValue("dependencyCount",String(e))}reportValue(e,r){Jm(this.values,e).add(r)}reportEnumerator(e,r){Jm(this.enumerators,e).add(Ji(r))}reportHit(e,r="*"){let o=A1(this.hits,e),a=Al(o,r,()=>0);o.set(r,a+1)}getRegistryPath(){let e=this.configuration.get("globalFolder");return K.join(e,"telemetry.json")}sendReport(e){let r=this.getRegistryPath(),o;try{o=ae.readJsonSync(r)}catch{o={}}let{nextState:a,triggerUpdate:n,triggerTips:u,nextTips:A}=PAt({state:o,timeNow:Date.now(),timeZone:new Date().getTimezoneOffset()*60*1e3,randomInitialInterval:Math.random(),updateInterval:this.configuration.get("telemetryInterval")});if(this.nextTips=A,this.displayedTips=o.displayedTips??[],a!==null)try{ae.mkdirSync(K.dirname(r),{recursive:!0}),ae.writeJsonSync(r,a)}catch{return!1}if(u&&this.configuration.get("enableTips")&&(this.shouldShowTips=!0),n){let p=o.blocks??{};if(Object.keys(p).length===0){let h=`https://browser-http-intake.logs.datadoghq.eu/v1/input/${e}?ddsource=yarn`,E=w=>C4(h,w,{configuration:this.configuration}).catch(()=>{});for(let[w,D]of Object.entries(o.blocks??{})){if(Object.keys(D).length===0)continue;let x=D;x.userId=w,x.reportType="primary";for(let L of Object.keys(x.enumerators??{}))x.enumerators[L]=x.enumerators[L].length;E(x);let C=new Map,T=20;for(let[L,U]of Object.entries(x.values))U.length>0&&C.set(L,U.slice(0,T));for(;C.size>0;){let L={};L.userId=w,L.reportType="secondary",L.metrics={};for(let[U,J]of C)L.metrics[U]=J.shift(),J.length===0&&C.delete(U);E(L)}}}}return!0}applyChanges(){let e=this.getRegistryPath(),r;try{r=ae.readJsonSync(e)}catch{r={}}let o=this.configuration.get("telemetryUserId")??"*",a=r.blocks=r.blocks??{},n=a[o]=a[o]??{};for(let u of this.hits.keys()){let A=n.hits=n.hits??{},p=A[u]=A[u]??{};for(let[h,E]of this.hits.get(u))p[h]=(p[h]??0)+E}for(let u of["values","enumerators"])for(let A of this[u].keys()){let p=n[u]=n[u]??{};p[A]=[...new Set([...p[A]??[],...this[u].get(A)??[]])]}this.shouldCommitTips&&(r.lastTips=this.nextTips,r.displayedTips=this.displayedTips),ae.mkdirSync(K.dirname(e),{recursive:!0}),ae.writeJsonSync(e,r)}startBuffer(){process.on("exit",()=>{try{this.applyChanges()}catch{}})}}});var P2={};Kt(P2,{BuildDirectiveType:()=>Sk,CACHE_CHECKPOINT:()=>K8,CACHE_VERSION:()=>Pk,Cache:()=>Wr,Configuration:()=>ze,DEFAULT_RC_FILENAME:()=>S4,FormatType:()=>yce,InstallMode:()=>yl,LEGACY_PLUGINS:()=>j1,LOCKFILE_VERSION:()=>Tk,LegacyMigrationResolver:()=>tE,LightReport:()=>pA,LinkType:()=>$m,LockfileResolver:()=>rE,Manifest:()=>_t,MessageName:()=>vr,MultiFetcher:()=>py,PackageExtensionStatus:()=>sO,PackageExtensionType:()=>iO,PeerWarningType:()=>Nk,Project:()=>Qt,Report:()=>Ws,ReportError:()=>Jt,SettingsType:()=>G1,StreamReport:()=>Nt,TAG_REGEXP:()=>xy,TelemetryManager:()=>sE,ThrowReport:()=>Ri,VirtualFetcher:()=>hy,WindowsLinkType:()=>lx,Workspace:()=>iE,WorkspaceFetcher:()=>gy,WorkspaceResolver:()=>ci,YarnVersion:()=>nn,execUtils:()=>Hr,folderUtils:()=>vb,formatUtils:()=>pe,hashUtils:()=>xn,httpUtils:()=>on,miscUtils:()=>qe,nodeUtils:()=>Xi,parseMessageName:()=>qP,reportOptionDeprecations:()=>Qy,scriptUtils:()=>hn,semverUtils:()=>Ur,stringifyMessageName:()=>Ju,structUtils:()=>G,tgzUtils:()=>$i,treeUtils:()=>As});var Ke=It(()=>{ix();Db();Wl();ah();tx();Gl();nx();a3();xf();Io();_pe();Kpe();V8();W1();W1();Jpe();J8();zpe();z8();Ay();jP();YM();Uhe();Vl();n2();_he();u_();VM();JM();Dg();A_();r2();iie()});var Yhe=_((x8t,b2)=>{"use strict";var bAt=process.env.TERM_PROGRAM==="Hyper",xAt=process.platform==="win32",jhe=process.platform==="linux",d_={ballotDisabled:"\u2612",ballotOff:"\u2610",ballotOn:"\u2611",bullet:"\u2022",bulletWhite:"\u25E6",fullBlock:"\u2588",heart:"\u2764",identicalTo:"\u2261",line:"\u2500",mark:"\u203B",middot:"\xB7",minus:"\uFF0D",multiplication:"\xD7",obelus:"\xF7",pencilDownRight:"\u270E",pencilRight:"\u270F",pencilUpRight:"\u2710",percent:"%",pilcrow2:"\u2761",pilcrow:"\xB6",plusMinus:"\xB1",section:"\xA7",starsOff:"\u2606",starsOn:"\u2605",upDownArrow:"\u2195"},Ghe=Object.assign({},d_,{check:"\u221A",cross:"\xD7",ellipsisLarge:"...",ellipsis:"...",info:"i",question:"?",questionSmall:"?",pointer:">",pointerSmall:"\xBB",radioOff:"( )",radioOn:"(*)",warning:"\u203C"}),Whe=Object.assign({},d_,{ballotCross:"\u2718",check:"\u2714",cross:"\u2716",ellipsisLarge:"\u22EF",ellipsis:"\u2026",info:"\u2139",question:"?",questionFull:"\uFF1F",questionSmall:"\uFE56",pointer:jhe?"\u25B8":"\u276F",pointerSmall:jhe?"\u2023":"\u203A",radioOff:"\u25EF",radioOn:"\u25C9",warning:"\u26A0"});b2.exports=xAt&&!bAt?Ghe:Whe;Reflect.defineProperty(b2.exports,"common",{enumerable:!1,value:d_});Reflect.defineProperty(b2.exports,"windows",{enumerable:!1,value:Ghe});Reflect.defineProperty(b2.exports,"other",{enumerable:!1,value:Whe})});var eu=_((k8t,m_)=>{"use strict";var kAt=t=>t!==null&&typeof t=="object"&&!Array.isArray(t),QAt=/[\u001b\u009b][[\]#;?()]*(?:(?:(?:[^\W_]*;?[^\W_]*)\u0007)|(?:(?:[0-9]{1,4}(;[0-9]{0,4})*)?[~0-9=<>cf-nqrtyA-PRZ]))/g,Khe=()=>{let t={enabled:!0,visible:!0,styles:{},keys:{}};"FORCE_COLOR"in process.env&&(t.enabled=process.env.FORCE_COLOR!=="0");let e=n=>{let u=n.open=`\x1B[${n.codes[0]}m`,A=n.close=`\x1B[${n.codes[1]}m`,p=n.regex=new RegExp(`\\u001b\\[${n.codes[1]}m`,"g");return n.wrap=(h,E)=>{h.includes(A)&&(h=h.replace(p,A+u));let w=u+h+A;return E?w.replace(/\r*\n/g,`${A}$&${u}`):w},n},r=(n,u,A)=>typeof n=="function"?n(u):n.wrap(u,A),o=(n,u)=>{if(n===""||n==null)return"";if(t.enabled===!1)return n;if(t.visible===!1)return"";let A=""+n,p=A.includes(` +`),h=u.length;for(h>0&&u.includes("unstyle")&&(u=[...new Set(["unstyle",...u])].reverse());h-- >0;)A=r(t.styles[u[h]],A,p);return A},a=(n,u,A)=>{t.styles[n]=e({name:n,codes:u}),(t.keys[A]||(t.keys[A]=[])).push(n),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(h){t.alias(n,h)},get(){let h=E=>o(E,h.stack);return Reflect.setPrototypeOf(h,t),h.stack=this.stack?this.stack.concat(n):[n],h}})};return a("reset",[0,0],"modifier"),a("bold",[1,22],"modifier"),a("dim",[2,22],"modifier"),a("italic",[3,23],"modifier"),a("underline",[4,24],"modifier"),a("inverse",[7,27],"modifier"),a("hidden",[8,28],"modifier"),a("strikethrough",[9,29],"modifier"),a("black",[30,39],"color"),a("red",[31,39],"color"),a("green",[32,39],"color"),a("yellow",[33,39],"color"),a("blue",[34,39],"color"),a("magenta",[35,39],"color"),a("cyan",[36,39],"color"),a("white",[37,39],"color"),a("gray",[90,39],"color"),a("grey",[90,39],"color"),a("bgBlack",[40,49],"bg"),a("bgRed",[41,49],"bg"),a("bgGreen",[42,49],"bg"),a("bgYellow",[43,49],"bg"),a("bgBlue",[44,49],"bg"),a("bgMagenta",[45,49],"bg"),a("bgCyan",[46,49],"bg"),a("bgWhite",[47,49],"bg"),a("blackBright",[90,39],"bright"),a("redBright",[91,39],"bright"),a("greenBright",[92,39],"bright"),a("yellowBright",[93,39],"bright"),a("blueBright",[94,39],"bright"),a("magentaBright",[95,39],"bright"),a("cyanBright",[96,39],"bright"),a("whiteBright",[97,39],"bright"),a("bgBlackBright",[100,49],"bgBright"),a("bgRedBright",[101,49],"bgBright"),a("bgGreenBright",[102,49],"bgBright"),a("bgYellowBright",[103,49],"bgBright"),a("bgBlueBright",[104,49],"bgBright"),a("bgMagentaBright",[105,49],"bgBright"),a("bgCyanBright",[106,49],"bgBright"),a("bgWhiteBright",[107,49],"bgBright"),t.ansiRegex=QAt,t.hasColor=t.hasAnsi=n=>(t.ansiRegex.lastIndex=0,typeof n=="string"&&n!==""&&t.ansiRegex.test(n)),t.alias=(n,u)=>{let A=typeof u=="string"?t[u]:u;if(typeof A!="function")throw new TypeError("Expected alias to be the name of an existing color (string) or a function");A.stack||(Reflect.defineProperty(A,"name",{value:n}),t.styles[n]=A,A.stack=[n]),Reflect.defineProperty(t,n,{configurable:!0,enumerable:!0,set(p){t.alias(n,p)},get(){let p=h=>o(h,p.stack);return Reflect.setPrototypeOf(p,t),p.stack=this.stack?this.stack.concat(A.stack):A.stack,p}})},t.theme=n=>{if(!kAt(n))throw new TypeError("Expected theme to be an object");for(let u of Object.keys(n))t.alias(u,n[u]);return t},t.alias("unstyle",n=>typeof n=="string"&&n!==""?(t.ansiRegex.lastIndex=0,n.replace(t.ansiRegex,"")):""),t.alias("noop",n=>n),t.none=t.clear=t.noop,t.stripColor=t.unstyle,t.symbols=Yhe(),t.define=a,t};m_.exports=Khe();m_.exports.create=Khe});var bo=_(an=>{"use strict";var FAt=Object.prototype.toString,ic=eu(),Vhe=!1,y_=[],Jhe={yellow:"blue",cyan:"red",green:"magenta",black:"white",blue:"yellow",red:"cyan",magenta:"green",white:"black"};an.longest=(t,e)=>t.reduce((r,o)=>Math.max(r,e?o[e].length:o.length),0);an.hasColor=t=>!!t&&ic.hasColor(t);var Ok=an.isObject=t=>t!==null&&typeof t=="object"&&!Array.isArray(t);an.nativeType=t=>FAt.call(t).slice(8,-1).toLowerCase().replace(/\s/g,"");an.isAsyncFn=t=>an.nativeType(t)==="asyncfunction";an.isPrimitive=t=>t!=null&&typeof t!="object"&&typeof t!="function";an.resolve=(t,e,...r)=>typeof e=="function"?e.call(t,...r):e;an.scrollDown=(t=[])=>[...t.slice(1),t[0]];an.scrollUp=(t=[])=>[t.pop(),...t];an.reorder=(t=[])=>{let e=t.slice();return e.sort((r,o)=>r.index>o.index?1:r.index{let o=t.length,a=r===o?0:r<0?o-1:r,n=t[e];t[e]=t[a],t[a]=n};an.width=(t,e=80)=>{let r=t&&t.columns?t.columns:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[0]),process.platform==="win32"?r-1:r};an.height=(t,e=20)=>{let r=t&&t.rows?t.rows:e;return t&&typeof t.getWindowSize=="function"&&(r=t.getWindowSize()[1]),r};an.wordWrap=(t,e={})=>{if(!t)return t;typeof e=="number"&&(e={width:e});let{indent:r="",newline:o=` +`+r,width:a=80}=e,n=(o+r).match(/[^\S\n]/g)||[];a-=n.length;let u=`.{1,${a}}([\\s\\u200B]+|$)|[^\\s\\u200B]+?([\\s\\u200B]+|$)`,A=t.trim(),p=new RegExp(u,"g"),h=A.match(p)||[];return h=h.map(E=>E.replace(/\n$/,"")),e.padEnd&&(h=h.map(E=>E.padEnd(a," "))),e.padStart&&(h=h.map(E=>E.padStart(a," "))),r+h.join(o)};an.unmute=t=>{let e=t.stack.find(o=>ic.keys.color.includes(o));return e?ic[e]:t.stack.find(o=>o.slice(2)==="bg")?ic[e.slice(2)]:o=>o};an.pascal=t=>t?t[0].toUpperCase()+t.slice(1):"";an.inverse=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>ic.keys.color.includes(o));if(e){let o=ic["bg"+an.pascal(e)];return o?o.black:t}let r=t.stack.find(o=>o.slice(0,2)==="bg");return r?ic[r.slice(2).toLowerCase()]||t:ic.none};an.complement=t=>{if(!t||!t.stack)return t;let e=t.stack.find(o=>ic.keys.color.includes(o)),r=t.stack.find(o=>o.slice(0,2)==="bg");if(e&&!r)return ic[Jhe[e]||e];if(r){let o=r.slice(2).toLowerCase(),a=Jhe[o];return a&&ic["bg"+an.pascal(a)]||t}return ic.none};an.meridiem=t=>{let e=t.getHours(),r=t.getMinutes(),o=e>=12?"pm":"am";e=e%12;let a=e===0?12:e,n=r<10?"0"+r:r;return a+":"+n+" "+o};an.set=(t={},e="",r)=>e.split(".").reduce((o,a,n,u)=>{let A=u.length-1>n?o[a]||{}:r;return!an.isObject(A)&&n{let o=t[e]==null?e.split(".").reduce((a,n)=>a&&a[n],t):t[e];return o??r};an.mixin=(t,e)=>{if(!Ok(t))return e;if(!Ok(e))return t;for(let r of Object.keys(e)){let o=Object.getOwnPropertyDescriptor(e,r);if(o.hasOwnProperty("value"))if(t.hasOwnProperty(r)&&Ok(o.value)){let a=Object.getOwnPropertyDescriptor(t,r);Ok(a.value)?t[r]=an.merge({},t[r],e[r]):Reflect.defineProperty(t,r,o)}else Reflect.defineProperty(t,r,o);else Reflect.defineProperty(t,r,o)}return t};an.merge=(...t)=>{let e={};for(let r of t)an.mixin(e,r);return e};an.mixinEmitter=(t,e)=>{let r=e.constructor.prototype;for(let o of Object.keys(r)){let a=r[o];typeof a=="function"?an.define(t,o,a.bind(e)):an.define(t,o,a)}};an.onExit=t=>{let e=(r,o)=>{Vhe||(Vhe=!0,y_.forEach(a=>a()),r===!0&&process.exit(128+o))};y_.length===0&&(process.once("SIGTERM",e.bind(null,!0,15)),process.once("SIGINT",e.bind(null,!0,2)),process.once("exit",e)),y_.push(t)};an.define=(t,e,r)=>{Reflect.defineProperty(t,e,{value:r})};an.defineExport=(t,e,r)=>{let o;Reflect.defineProperty(t,e,{enumerable:!0,configurable:!0,set(a){o=a},get(){return o?o():r()}})}});var zhe=_(cE=>{"use strict";cE.ctrl={a:"first",b:"backward",c:"cancel",d:"deleteForward",e:"last",f:"forward",g:"reset",i:"tab",k:"cutForward",l:"reset",n:"newItem",m:"cancel",j:"submit",p:"search",r:"remove",s:"save",u:"undo",w:"cutLeft",x:"toggleCursor",v:"paste"};cE.shift={up:"shiftUp",down:"shiftDown",left:"shiftLeft",right:"shiftRight",tab:"prev"};cE.fn={up:"pageUp",down:"pageDown",left:"pageLeft",right:"pageRight",delete:"deleteForward"};cE.option={b:"backward",f:"forward",d:"cutRight",left:"cutLeft",up:"altUp",down:"altDown"};cE.keys={pageup:"pageUp",pagedown:"pageDown",home:"home",end:"end",cancel:"cancel",delete:"deleteForward",backspace:"delete",down:"down",enter:"submit",escape:"cancel",left:"left",space:"space",number:"number",return:"submit",right:"right",tab:"next",up:"up"}});var $he=_((R8t,Zhe)=>{"use strict";var Xhe=ve("readline"),RAt=zhe(),TAt=/^(?:\x1b)([a-zA-Z0-9])$/,NAt=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,LAt={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"};function OAt(t){return["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"].includes(t)}function MAt(t){return["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"].includes(t)}var Mk=(t="",e={})=>{let r,o={name:e.name,ctrl:!1,meta:!1,shift:!1,option:!1,sequence:t,raw:t,...e};if(Buffer.isBuffer(t)?t[0]>127&&t[1]===void 0?(t[0]-=128,t="\x1B"+String(t)):t=String(t):t!==void 0&&typeof t!="string"?t=String(t):t||(t=o.sequence||""),o.sequence=o.sequence||t||o.name,t==="\r")o.raw=void 0,o.name="return";else if(t===` +`)o.name="enter";else if(t===" ")o.name="tab";else if(t==="\b"||t==="\x7F"||t==="\x1B\x7F"||t==="\x1B\b")o.name="backspace",o.meta=t.charAt(0)==="\x1B";else if(t==="\x1B"||t==="\x1B\x1B")o.name="escape",o.meta=t.length===2;else if(t===" "||t==="\x1B ")o.name="space",o.meta=t.length===2;else if(t<="")o.name=String.fromCharCode(t.charCodeAt(0)+97-1),o.ctrl=!0;else if(t.length===1&&t>="0"&&t<="9")o.name="number";else if(t.length===1&&t>="a"&&t<="z")o.name=t;else if(t.length===1&&t>="A"&&t<="Z")o.name=t.toLowerCase(),o.shift=!0;else if(r=TAt.exec(t))o.meta=!0,o.shift=/^[A-Z]$/.test(r[1]);else if(r=NAt.exec(t)){let a=[...t];a[0]==="\x1B"&&a[1]==="\x1B"&&(o.option=!0);let n=[r[1],r[2],r[4],r[6]].filter(Boolean).join(""),u=(r[3]||r[5]||1)-1;o.ctrl=!!(u&4),o.meta=!!(u&10),o.shift=!!(u&1),o.code=n,o.name=LAt[n],o.shift=OAt(n)||o.shift,o.ctrl=MAt(n)||o.ctrl}return o};Mk.listen=(t={},e)=>{let{stdin:r}=t;if(!r||r!==process.stdin&&!r.isTTY)throw new Error("Invalid stream passed");let o=Xhe.createInterface({terminal:!0,input:r});Xhe.emitKeypressEvents(r,o);let a=(A,p)=>e(A,Mk(A,p),o),n=r.isRaw;return r.isTTY&&r.setRawMode(!0),r.on("keypress",a),o.resume(),()=>{r.isTTY&&r.setRawMode(n),r.removeListener("keypress",a),o.pause(),o.close()}};Mk.action=(t,e,r)=>{let o={...RAt,...r};return e.ctrl?(e.action=o.ctrl[e.name],e):e.option&&o.option?(e.action=o.option[e.name],e):e.shift?(e.action=o.shift[e.name],e):(e.action=o.keys[e.name],e)};Zhe.exports=Mk});var t0e=_((T8t,e0e)=>{"use strict";e0e.exports=t=>{t.timers=t.timers||{};let e=t.options.timers;if(e)for(let r of Object.keys(e)){let o=e[r];typeof o=="number"&&(o={interval:o}),UAt(t,r,o)}};function UAt(t,e,r={}){let o=t.timers[e]={name:e,start:Date.now(),ms:0,tick:0},a=r.interval||120;o.frames=r.frames||[],o.loading=!0;let n=setInterval(()=>{o.ms=Date.now()-o.start,o.tick++,t.render()},a);return o.stop=()=>{o.loading=!1,clearInterval(n)},Reflect.defineProperty(o,"interval",{value:n}),t.once("close",()=>o.stop()),o.stop}});var n0e=_((N8t,r0e)=>{"use strict";var{define:_At,width:HAt}=bo(),E_=class{constructor(e){let r=e.options;_At(this,"_prompt",e),this.type=e.type,this.name=e.name,this.message="",this.header="",this.footer="",this.error="",this.hint="",this.input="",this.cursor=0,this.index=0,this.lines=0,this.tick=0,this.prompt="",this.buffer="",this.width=HAt(r.stdout||process.stdout),Object.assign(this,r),this.name=this.name||this.message,this.message=this.message||this.name,this.symbols=e.symbols,this.styles=e.styles,this.required=new Set,this.cancelled=!1,this.submitted=!1}clone(){let e={...this};return e.status=this.status,e.buffer=Buffer.from(e.buffer),delete e.clone,e}set color(e){this._color=e}get color(){let e=this.prompt.styles;if(this.cancelled)return e.cancelled;if(this.submitted)return e.submitted;let r=this._color||e[this.status];return typeof r=="function"?r:e.pending}set loading(e){this._loading=e}get loading(){return typeof this._loading=="boolean"?this._loading:this.loadingChoices?"choices":!1}get status(){return this.cancelled?"cancelled":this.submitted?"submitted":"pending"}};r0e.exports=E_});var s0e=_((L8t,i0e)=>{"use strict";var C_=bo(),Ks=eu(),I_={default:Ks.noop,noop:Ks.noop,set inverse(t){this._inverse=t},get inverse(){return this._inverse||C_.inverse(this.primary)},set complement(t){this._complement=t},get complement(){return this._complement||C_.complement(this.primary)},primary:Ks.cyan,success:Ks.green,danger:Ks.magenta,strong:Ks.bold,warning:Ks.yellow,muted:Ks.dim,disabled:Ks.gray,dark:Ks.dim.gray,underline:Ks.underline,set info(t){this._info=t},get info(){return this._info||this.primary},set em(t){this._em=t},get em(){return this._em||this.primary.underline},set heading(t){this._heading=t},get heading(){return this._heading||this.muted.underline},set pending(t){this._pending=t},get pending(){return this._pending||this.primary},set submitted(t){this._submitted=t},get submitted(){return this._submitted||this.success},set cancelled(t){this._cancelled=t},get cancelled(){return this._cancelled||this.danger},set typing(t){this._typing=t},get typing(){return this._typing||this.dim},set placeholder(t){this._placeholder=t},get placeholder(){return this._placeholder||this.primary.dim},set highlight(t){this._highlight=t},get highlight(){return this._highlight||this.inverse}};I_.merge=(t={})=>{t.styles&&typeof t.styles.enabled=="boolean"&&(Ks.enabled=t.styles.enabled),t.styles&&typeof t.styles.visible=="boolean"&&(Ks.visible=t.styles.visible);let e=C_.merge({},I_,t.styles);delete e.merge;for(let r of Object.keys(Ks))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Ks[r]});for(let r of Object.keys(Ks.styles))e.hasOwnProperty(r)||Reflect.defineProperty(e,r,{get:()=>Ks[r]});return e};i0e.exports=I_});var a0e=_((O8t,o0e)=>{"use strict";var w_=process.platform==="win32",Yf=eu(),qAt=bo(),B_={...Yf.symbols,upDownDoubleArrow:"\u21D5",upDownDoubleArrow2:"\u2B0D",upDownArrow:"\u2195",asterisk:"*",asterism:"\u2042",bulletWhite:"\u25E6",electricArrow:"\u2301",ellipsisLarge:"\u22EF",ellipsisSmall:"\u2026",fullBlock:"\u2588",identicalTo:"\u2261",indicator:Yf.symbols.check,leftAngle:"\u2039",mark:"\u203B",minus:"\u2212",multiplication:"\xD7",obelus:"\xF7",percent:"%",pilcrow:"\xB6",pilcrow2:"\u2761",pencilUpRight:"\u2710",pencilDownRight:"\u270E",pencilRight:"\u270F",plus:"+",plusMinus:"\xB1",pointRight:"\u261E",rightAngle:"\u203A",section:"\xA7",hexagon:{off:"\u2B21",on:"\u2B22",disabled:"\u2B22"},ballot:{on:"\u2611",off:"\u2610",disabled:"\u2612"},stars:{on:"\u2605",off:"\u2606",disabled:"\u2606"},folder:{on:"\u25BC",off:"\u25B6",disabled:"\u25B6"},prefix:{pending:Yf.symbols.question,submitted:Yf.symbols.check,cancelled:Yf.symbols.cross},separator:{pending:Yf.symbols.pointerSmall,submitted:Yf.symbols.middot,cancelled:Yf.symbols.middot},radio:{off:w_?"( )":"\u25EF",on:w_?"(*)":"\u25C9",disabled:w_?"(|)":"\u24BE"},numbers:["\u24EA","\u2460","\u2461","\u2462","\u2463","\u2464","\u2465","\u2466","\u2467","\u2468","\u2469","\u246A","\u246B","\u246C","\u246D","\u246E","\u246F","\u2470","\u2471","\u2472","\u2473","\u3251","\u3252","\u3253","\u3254","\u3255","\u3256","\u3257","\u3258","\u3259","\u325A","\u325B","\u325C","\u325D","\u325E","\u325F","\u32B1","\u32B2","\u32B3","\u32B4","\u32B5","\u32B6","\u32B7","\u32B8","\u32B9","\u32BA","\u32BB","\u32BC","\u32BD","\u32BE","\u32BF"]};B_.merge=t=>{let e=qAt.merge({},Yf.symbols,B_,t.symbols);return delete e.merge,e};o0e.exports=B_});var c0e=_((M8t,l0e)=>{"use strict";var jAt=s0e(),GAt=a0e(),WAt=bo();l0e.exports=t=>{t.options=WAt.merge({},t.options.theme,t.options),t.symbols=GAt.merge(t.options),t.styles=jAt.merge(t.options)}});var h0e=_((f0e,p0e)=>{"use strict";var u0e=process.env.TERM_PROGRAM==="Apple_Terminal",YAt=eu(),v_=bo(),tu=p0e.exports=f0e,Si="\x1B[",A0e="\x07",D_=!1,kh=tu.code={bell:A0e,beep:A0e,beginning:`${Si}G`,down:`${Si}J`,esc:Si,getPosition:`${Si}6n`,hide:`${Si}?25l`,line:`${Si}2K`,lineEnd:`${Si}K`,lineStart:`${Si}1K`,restorePosition:Si+(u0e?"8":"u"),savePosition:Si+(u0e?"7":"s"),screen:`${Si}2J`,show:`${Si}?25h`,up:`${Si}1J`},Yg=tu.cursor={get hidden(){return D_},hide(){return D_=!0,kh.hide},show(){return D_=!1,kh.show},forward:(t=1)=>`${Si}${t}C`,backward:(t=1)=>`${Si}${t}D`,nextLine:(t=1)=>`${Si}E`.repeat(t),prevLine:(t=1)=>`${Si}F`.repeat(t),up:(t=1)=>t?`${Si}${t}A`:"",down:(t=1)=>t?`${Si}${t}B`:"",right:(t=1)=>t?`${Si}${t}C`:"",left:(t=1)=>t?`${Si}${t}D`:"",to(t,e){return e?`${Si}${e+1};${t+1}H`:`${Si}${t+1}G`},move(t=0,e=0){let r="";return r+=t<0?Yg.left(-t):t>0?Yg.right(t):"",r+=e<0?Yg.up(-e):e>0?Yg.down(e):"",r},restore(t={}){let{after:e,cursor:r,initial:o,input:a,prompt:n,size:u,value:A}=t;if(o=v_.isPrimitive(o)?String(o):"",a=v_.isPrimitive(a)?String(a):"",A=v_.isPrimitive(A)?String(A):"",u){let p=tu.cursor.up(u)+tu.cursor.to(n.length),h=a.length-r;return h>0&&(p+=tu.cursor.left(h)),p}if(A||e){let p=!a&&o?-o.length:-a.length+r;return e&&(p-=e.length),a===""&&o&&!n.includes(o)&&(p+=o.length),tu.cursor.move(p)}}},P_=tu.erase={screen:kh.screen,up:kh.up,down:kh.down,line:kh.line,lineEnd:kh.lineEnd,lineStart:kh.lineStart,lines(t){let e="";for(let r=0;r{if(!e)return P_.line+Yg.to(0);let r=n=>[...YAt.unstyle(n)].length,o=t.split(/\r?\n/),a=0;for(let n of o)a+=1+Math.floor(Math.max(r(n)-1,0)/e);return(P_.line+Yg.prevLine()).repeat(a-1)+P_.line+Yg.to(0)}});var uE=_((U8t,d0e)=>{"use strict";var KAt=ve("events"),g0e=eu(),S_=$he(),VAt=t0e(),JAt=n0e(),zAt=c0e(),La=bo(),Kg=h0e(),b_=class t extends KAt{constructor(e={}){super(),this.name=e.name,this.type=e.type,this.options=e,zAt(this),VAt(this),this.state=new JAt(this),this.initial=[e.initial,e.default].find(r=>r!=null),this.stdout=e.stdout||process.stdout,this.stdin=e.stdin||process.stdin,this.scale=e.scale||1,this.term=this.options.term||process.env.TERM_PROGRAM,this.margin=ZAt(this.options.margin),this.setMaxListeners(0),XAt(this)}async keypress(e,r={}){this.keypressed=!0;let o=S_.action(e,S_(e,r),this.options.actions);this.state.keypress=o,this.emit("keypress",e,o),this.emit("state",this.state.clone());let a=this.options[o.action]||this[o.action]||this.dispatch;if(typeof a=="function")return await a.call(this,e,o);this.alert()}alert(){delete this.state.alert,this.options.show===!1?this.emit("alert"):this.stdout.write(Kg.code.beep)}cursorHide(){this.stdout.write(Kg.cursor.hide()),La.onExit(()=>this.cursorShow())}cursorShow(){this.stdout.write(Kg.cursor.show())}write(e){e&&(this.stdout&&this.state.show!==!1&&this.stdout.write(e),this.state.buffer+=e)}clear(e=0){let r=this.state.buffer;this.state.buffer="",!(!r&&!e||this.options.show===!1)&&this.stdout.write(Kg.cursor.down(e)+Kg.clear(r,this.width))}restore(){if(this.state.closed||this.options.show===!1)return;let{prompt:e,after:r,rest:o}=this.sections(),{cursor:a,initial:n="",input:u="",value:A=""}=this,p=this.state.size=o.length,h={after:r,cursor:a,initial:n,input:u,prompt:e,size:p,value:A},E=Kg.cursor.restore(h);E&&this.stdout.write(E)}sections(){let{buffer:e,input:r,prompt:o}=this.state;o=g0e.unstyle(o);let a=g0e.unstyle(e),n=a.indexOf(o),u=a.slice(0,n),p=a.slice(n).split(` +`),h=p[0],E=p[p.length-1],D=(o+(r?" "+r:"")).length,x=De.call(this,this.value),this.result=()=>o.call(this,this.value),typeof r.initial=="function"&&(this.initial=await r.initial.call(this,this)),typeof r.onRun=="function"&&await r.onRun.call(this,this),typeof r.onSubmit=="function"){let a=r.onSubmit.bind(this),n=this.submit.bind(this);delete this.options.onSubmit,this.submit=async()=>(await a(this.name,this.value,this),n())}await this.start(),await this.render()}render(){throw new Error("expected prompt to have a custom render method")}run(){return new Promise(async(e,r)=>{if(this.once("submit",e),this.once("cancel",r),await this.skip())return this.render=()=>{},this.submit();await this.initialize(),this.emit("run")})}async element(e,r,o){let{options:a,state:n,symbols:u,timers:A}=this,p=A&&A[e];n.timer=p;let h=a[e]||n[e]||u[e],E=r&&r[e]!=null?r[e]:await h;if(E==="")return E;let w=await this.resolve(E,n,r,o);return!w&&r&&r[e]?this.resolve(h,n,r,o):w}async prefix(){let e=await this.element("prefix")||this.symbols,r=this.timers&&this.timers.prefix,o=this.state;return o.timer=r,La.isObject(e)&&(e=e[o.status]||e.pending),La.hasColor(e)?e:(this.styles[o.status]||this.styles.pending)(e)}async message(){let e=await this.element("message");return La.hasColor(e)?e:this.styles.strong(e)}async separator(){let e=await this.element("separator")||this.symbols,r=this.timers&&this.timers.separator,o=this.state;o.timer=r;let a=e[o.status]||e.pending||o.separator,n=await this.resolve(a,o);return La.isObject(n)&&(n=n[o.status]||n.pending),La.hasColor(n)?n:this.styles.muted(n)}async pointer(e,r){let o=await this.element("pointer",e,r);if(typeof o=="string"&&La.hasColor(o))return o;if(o){let a=this.styles,n=this.index===r,u=n?a.primary:h=>h,A=await this.resolve(o[n?"on":"off"]||o,this.state),p=La.hasColor(A)?A:u(A);return n?p:" ".repeat(A.length)}}async indicator(e,r){let o=await this.element("indicator",e,r);if(typeof o=="string"&&La.hasColor(o))return o;if(o){let a=this.styles,n=e.enabled===!0,u=n?a.success:a.dark,A=o[n?"on":"off"]||o;return La.hasColor(A)?A:u(A)}return""}body(){return null}footer(){if(this.state.status==="pending")return this.element("footer")}header(){if(this.state.status==="pending")return this.element("header")}async hint(){if(this.state.status==="pending"&&!this.isValue(this.state.input)){let e=await this.element("hint");return La.hasColor(e)?e:this.styles.muted(e)}}error(e){return this.state.submitted?"":e||this.state.error}format(e){return e}result(e){return e}validate(e){return this.options.required===!0?this.isValue(e):!0}isValue(e){return e!=null&&e!==""}resolve(e,...r){return La.resolve(this,e,...r)}get base(){return t.prototype}get style(){return this.styles[this.state.status]}get height(){return this.options.rows||La.height(this.stdout,25)}get width(){return this.options.columns||La.width(this.stdout,80)}get size(){return{width:this.width,height:this.height}}set cursor(e){this.state.cursor=e}get cursor(){return this.state.cursor}set input(e){this.state.input=e}get input(){return this.state.input}set value(e){this.state.value=e}get value(){let{input:e,value:r}=this.state,o=[r,e].find(this.isValue.bind(this));return this.isValue(o)?o:this.initial}static get prompt(){return e=>new this(e).run()}};function XAt(t){let e=a=>t[a]===void 0||typeof t[a]=="function",r=["actions","choices","initial","margin","roles","styles","symbols","theme","timers","value"],o=["body","footer","error","header","hint","indicator","message","prefix","separator","skip"];for(let a of Object.keys(t.options)){if(r.includes(a)||/^on[A-Z]/.test(a))continue;let n=t.options[a];typeof n=="function"&&e(a)?o.includes(a)||(t[a]=n.bind(t)):typeof t[a]!="function"&&(t[a]=n)}}function ZAt(t){typeof t=="number"&&(t=[t,t,t,t]);let e=[].concat(t||[]),r=a=>a%2===0?` +`:" ",o=[];for(let a=0;a<4;a++){let n=r(a);e[a]?o.push(n.repeat(e[a])):o.push("")}return o}d0e.exports=b_});var E0e=_((_8t,y0e)=>{"use strict";var $At=bo(),m0e={default(t,e){return e},checkbox(t,e){throw new Error("checkbox role is not implemented yet")},editable(t,e){throw new Error("editable role is not implemented yet")},expandable(t,e){throw new Error("expandable role is not implemented yet")},heading(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||"",e},input(t,e){throw new Error("input role is not implemented yet")},option(t,e){return m0e.default(t,e)},radio(t,e){throw new Error("radio role is not implemented yet")},separator(t,e){return e.disabled="",e.indicator=[e.indicator," "].find(r=>r!=null),e.message=e.message||t.symbols.line.repeat(5),e},spacer(t,e){return e}};y0e.exports=(t,e={})=>{let r=$At.merge({},m0e,e.roles);return r[t]||r.default}});var x2=_((H8t,w0e)=>{"use strict";var eft=eu(),tft=uE(),rft=E0e(),Uk=bo(),{reorder:x_,scrollUp:nft,scrollDown:ift,isObject:C0e,swap:sft}=Uk,k_=class extends tft{constructor(e){super(e),this.cursorHide(),this.maxSelected=e.maxSelected||1/0,this.multiple=e.multiple||!1,this.initial=e.initial||0,this.delay=e.delay||0,this.longest=0,this.num=""}async initialize(){typeof this.options.initial=="function"&&(this.initial=await this.options.initial.call(this)),await this.reset(!0),await super.initialize()}async reset(){let{choices:e,initial:r,autofocus:o,suggest:a}=this.options;if(this.state._choices=[],this.state.choices=[],this.choices=await Promise.all(await this.toChoices(e)),this.choices.forEach(n=>n.enabled=!1),typeof a!="function"&&this.selectable.length===0)throw new Error("At least one choice must be selectable");C0e(r)&&(r=Object.keys(r)),Array.isArray(r)?(o!=null&&(this.index=this.findIndex(o)),r.forEach(n=>this.enable(this.find(n))),await this.render()):(o!=null&&(r=o),typeof r=="string"&&(r=this.findIndex(r)),typeof r=="number"&&r>-1&&(this.index=Math.max(0,Math.min(r,this.choices.length)),this.enable(this.find(this.index)))),this.isDisabled(this.focused)&&await this.down()}async toChoices(e,r){this.state.loadingChoices=!0;let o=[],a=0,n=async(u,A)=>{typeof u=="function"&&(u=await u.call(this)),u instanceof Promise&&(u=await u);for(let p=0;p(this.state.loadingChoices=!1,u))}async toChoice(e,r,o){if(typeof e=="function"&&(e=await e.call(this,this)),e instanceof Promise&&(e=await e),typeof e=="string"&&(e={name:e}),e.normalized)return e;e.normalized=!0;let a=e.value;if(e=rft(e.role,this.options)(this,e),typeof e.disabled=="string"&&!e.hint&&(e.hint=e.disabled,e.disabled=!0),e.disabled===!0&&e.hint==null&&(e.hint="(disabled)"),e.index!=null)return e;e.name=e.name||e.key||e.title||e.value||e.message,e.message=e.message||e.name||"",e.value=[e.value,e.name].find(this.isValue.bind(this)),e.input="",e.index=r,e.cursor=0,Uk.define(e,"parent",o),e.level=o?o.level+1:1,e.indent==null&&(e.indent=o?o.indent+" ":e.indent||""),e.path=o?o.path+"."+e.name:e.name,e.enabled=!!(this.multiple&&!this.isDisabled(e)&&(e.enabled||this.isSelected(e))),this.isDisabled(e)||(this.longest=Math.max(this.longest,eft.unstyle(e.message).length));let u={...e};return e.reset=(A=u.input,p=u.value)=>{for(let h of Object.keys(u))e[h]=u[h];e.input=A,e.value=p},a==null&&typeof e.initial=="function"&&(e.input=await e.initial.call(this,this.state,e,r)),e}async onChoice(e,r){this.emit("choice",e,r,this),typeof e.onChoice=="function"&&await e.onChoice.call(this,this.state,e,r)}async addChoice(e,r,o){let a=await this.toChoice(e,r,o);return this.choices.push(a),this.index=this.choices.length-1,this.limit=this.choices.length,a}async newItem(e,r,o){let a={name:"New choice name?",editable:!0,newChoice:!0,...e},n=await this.addChoice(a,r,o);return n.updateChoice=()=>{delete n.newChoice,n.name=n.message=n.input,n.input="",n.cursor=0},this.render()}indent(e){return e.indent==null?e.level>1?" ".repeat(e.level-1):"":e.indent}dispatch(e,r){if(this.multiple&&this[r.name])return this[r.name]();this.alert()}focus(e,r){return typeof r!="boolean"&&(r=e.enabled),r&&!e.enabled&&this.selected.length>=this.maxSelected?this.alert():(this.index=e.index,e.enabled=r&&!this.isDisabled(e),e)}space(){return this.multiple?(this.toggle(this.focused),this.render()):this.alert()}a(){if(this.maxSelectedr.enabled);return this.choices.forEach(r=>r.enabled=!e),this.render()}i(){return this.choices.length-this.selected.length>this.maxSelected?this.alert():(this.choices.forEach(e=>e.enabled=!e.enabled),this.render())}g(e=this.focused){return this.choices.some(r=>!!r.parent)?(this.toggle(e.parent&&!e.choices?e.parent:e),this.render()):this.a()}toggle(e,r){if(!e.enabled&&this.selected.length>=this.maxSelected)return this.alert();typeof r!="boolean"&&(r=!e.enabled),e.enabled=r,e.choices&&e.choices.forEach(a=>this.toggle(a,r));let o=e.parent;for(;o;){let a=o.choices.filter(n=>this.isDisabled(n));o.enabled=a.every(n=>n.enabled===!0),o=o.parent}return I0e(this,this.choices),this.emit("toggle",e,this),e}enable(e){return this.selected.length>=this.maxSelected?this.alert():(e.enabled=!this.isDisabled(e),e.choices&&e.choices.forEach(this.enable.bind(this)),e)}disable(e){return e.enabled=!1,e.choices&&e.choices.forEach(this.disable.bind(this)),e}number(e){this.num+=e;let r=o=>{let a=Number(o);if(a>this.choices.length-1)return this.alert();let n=this.focused,u=this.choices.find(A=>a===A.index);if(!u.enabled&&this.selected.length>=this.maxSelected)return this.alert();if(this.visible.indexOf(u)===-1){let A=x_(this.choices),p=A.indexOf(u);if(n.index>p){let h=A.slice(p,p+this.limit),E=A.filter(w=>!h.includes(w));this.choices=h.concat(E)}else{let h=p-this.limit+1;this.choices=A.slice(h).concat(A.slice(0,h))}}return this.index=this.choices.indexOf(u),this.toggle(this.focused),this.render()};return clearTimeout(this.numberTimeout),new Promise(o=>{let a=this.choices.length,n=this.num,u=(A=!1,p)=>{clearTimeout(this.numberTimeout),A&&(p=r(n)),this.num="",o(p)};if(n==="0"||n.length===1&&+(n+"0")>a)return u(!0);if(Number(n)>a)return u(!1,this.alert());this.numberTimeout=setTimeout(()=>u(!0),this.delay)})}home(){return this.choices=x_(this.choices),this.index=0,this.render()}end(){let e=this.choices.length-this.limit,r=x_(this.choices);return this.choices=r.slice(e).concat(r.slice(0,e)),this.index=this.limit-1,this.render()}first(){return this.index=0,this.render()}last(){return this.index=this.visible.length-1,this.render()}prev(){return this.visible.length<=1?this.alert():this.up()}next(){return this.visible.length<=1?this.alert():this.down()}right(){return this.cursor>=this.input.length?this.alert():(this.cursor++,this.render())}left(){return this.cursor<=0?this.alert():(this.cursor--,this.render())}up(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===0?this.alert():e>r&&o===0?this.scrollUp():(this.index=(o-1%e+e)%e,this.isDisabled()?this.up():this.render())}down(){let e=this.choices.length,r=this.visible.length,o=this.index;return this.options.scroll===!1&&o===r-1?this.alert():e>r&&o===r-1?this.scrollDown():(this.index=(o+1)%e,this.isDisabled()?this.down():this.render())}scrollUp(e=0){return this.choices=nft(this.choices),this.index=e,this.isDisabled()?this.up():this.render()}scrollDown(e=this.visible.length-1){return this.choices=ift(this.choices),this.index=e,this.isDisabled()?this.down():this.render()}async shiftUp(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index-1),await this.up(),this.sorting=!1;return}return this.scrollUp(this.index)}async shiftDown(){if(this.options.sort===!0){this.sorting=!0,this.swap(this.index+1),await this.down(),this.sorting=!1;return}return this.scrollDown(this.index)}pageUp(){return this.visible.length<=1?this.alert():(this.limit=Math.max(this.limit-1,0),this.index=Math.min(this.limit-1,this.index),this._limit=this.limit,this.isDisabled()?this.up():this.render())}pageDown(){return this.visible.length>=this.choices.length?this.alert():(this.index=Math.max(0,this.index),this.limit=Math.min(this.limit+1,this.choices.length),this._limit=this.limit,this.isDisabled()?this.down():this.render())}swap(e){sft(this.choices,this.index,e)}isDisabled(e=this.focused){return e&&["disabled","collapsed","hidden","completing","readonly"].some(o=>e[o]===!0)?!0:e&&e.role==="heading"}isEnabled(e=this.focused){if(Array.isArray(e))return e.every(r=>this.isEnabled(r));if(e.choices){let r=e.choices.filter(o=>!this.isDisabled(o));return e.enabled&&r.every(o=>this.isEnabled(o))}return e.enabled&&!this.isDisabled(e)}isChoice(e,r){return e.name===r||e.index===Number(r)}isSelected(e){return Array.isArray(this.initial)?this.initial.some(r=>this.isChoice(e,r)):this.isChoice(e,this.initial)}map(e=[],r="value"){return[].concat(e||[]).reduce((o,a)=>(o[a]=this.find(a,r),o),{})}filter(e,r){let a=typeof e=="function"?e:(A,p)=>[A.name,p].includes(e),u=(this.options.multiple?this.state._choices:this.choices).filter(a);return r?u.map(A=>A[r]):u}find(e,r){if(C0e(e))return r?e[r]:e;let a=typeof e=="function"?e:(u,A)=>[u.name,A].includes(e),n=this.choices.find(a);if(n)return r?n[r]:n}findIndex(e){return this.choices.indexOf(this.find(e))}async submit(){let e=this.focused;if(!e)return this.alert();if(e.newChoice)return e.input?(e.updateChoice(),this.render()):this.alert();if(this.choices.some(u=>u.newChoice))return this.alert();let{reorder:r,sort:o}=this.options,a=this.multiple===!0,n=this.selected;return n===void 0?this.alert():(Array.isArray(n)&&r!==!1&&o!==!0&&(n=Uk.reorder(n)),this.value=a?n.map(u=>u.name):n.name,super.submit())}set choices(e=[]){this.state._choices=this.state._choices||[],this.state.choices=e;for(let r of e)this.state._choices.some(o=>o.name===r.name)||this.state._choices.push(r);if(!this._initial&&this.options.initial){this._initial=!0;let r=this.initial;if(typeof r=="string"||typeof r=="number"){let o=this.find(r);o&&(this.initial=o.index,this.focus(o,!0))}}}get choices(){return I0e(this,this.state.choices||[])}set visible(e){this.state.visible=e}get visible(){return(this.state.visible||this.choices).slice(0,this.limit)}set limit(e){this.state.limit=e}get limit(){let{state:e,options:r,choices:o}=this,a=e.limit||this._limit||r.limit||o.length;return Math.min(a,this.height)}set value(e){super.value=e}get value(){return typeof super.value!="string"&&super.value===this.initial?this.input:super.value}set index(e){this.state.index=e}get index(){return Math.max(0,this.state?this.state.index:0)}get enabled(){return this.filter(this.isEnabled.bind(this))}get focused(){let e=this.choices[this.index];return e&&this.state.submitted&&this.multiple!==!0&&(e.enabled=!0),e}get selectable(){return this.choices.filter(e=>!this.isDisabled(e))}get selected(){return this.multiple?this.enabled:this.focused}};function I0e(t,e){if(e instanceof Promise)return e;if(typeof e=="function"){if(Uk.isAsyncFn(e))return e;e=e.call(t,t)}for(let r of e){if(Array.isArray(r.choices)){let o=r.choices.filter(a=>!t.isDisabled(a));r.enabled=o.every(a=>a.enabled===!0)}t.isDisabled(r)===!0&&delete r.enabled}return e}w0e.exports=k_});var Qh=_((q8t,B0e)=>{"use strict";var oft=x2(),Q_=bo(),F_=class extends oft{constructor(e){super(e),this.emptyError=this.options.emptyError||"No items were selected"}async dispatch(e,r){if(this.multiple)return this[r.name]?await this[r.name](e,r):await super.dispatch(e,r);this.alert()}separator(){if(this.options.separator)return super.separator();let e=this.styles.muted(this.symbols.ellipsis);return this.state.submitted?super.separator():e}pointer(e,r){return!this.multiple||this.options.pointer?super.pointer(e,r):""}indicator(e,r){return this.multiple?super.indicator(e,r):""}choiceMessage(e,r){let o=this.resolve(e.message,this.state,e,r);return e.role==="heading"&&!Q_.hasColor(o)&&(o=this.styles.strong(o)),this.resolve(o,this.state,e,r)}choiceSeparator(){return":"}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await this.indicator(e,r)+(e.pad||""),u=await this.resolve(e.hint,this.state,e,r);u&&!Q_.hasColor(u)&&(u=this.styles.muted(u));let A=this.indent(e),p=await this.choiceMessage(e,r),h=()=>[this.margin[3],A+a+n,p,this.margin[1],u].filter(Boolean).join(" ");return e.role==="heading"?h():e.disabled?(Q_.hasColor(p)||(p=this.styles.disabled(p)),h()):(o&&(p=this.styles.em(p)),h())}async renderChoices(){if(this.state.loading==="choices")return this.styles.warning("Loading choices");if(this.state.submitted)return"";let e=this.visible.map(async(n,u)=>await this.renderChoice(n,u)),r=await Promise.all(e);r.length||r.push(this.styles.danger("No matching choices"));let o=this.margin[0]+r.join(` +`),a;return this.options.choicesHeader&&(a=await this.resolve(this.options.choicesHeader,this.state)),[a,o].filter(Boolean).join(` +`)}format(){return!this.state.submitted||this.state.cancelled?"":Array.isArray(this.selected)?this.selected.map(e=>this.styles.primary(e.name)).join(", "):this.styles.primary(this.selected.name)}async render(){let{submitted:e,size:r}=this.state,o="",a=await this.header(),n=await this.prefix(),u=await this.separator(),A=await this.message();this.options.promptLine!==!1&&(o=[n,A,u,""].join(" "),this.state.prompt=o);let p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),w=await this.footer();p&&(o+=p),h&&!o.includes(h)&&(o+=" "+h),e&&!p&&!E.trim()&&this.multiple&&this.emptyError!=null&&(o+=this.styles.danger(this.emptyError)),this.clear(r),this.write([a,o,E,w].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};B0e.exports=F_});var D0e=_((j8t,v0e)=>{"use strict";var aft=Qh(),lft=(t,e)=>{let r=t.toLowerCase();return o=>{let n=o.toLowerCase().indexOf(r),u=e(o.slice(n,n+r.length));return n>=0?o.slice(0,n)+u+o.slice(n+r.length):o}},R_=class extends aft{constructor(e){super(e),this.cursorShow()}moveCursor(e){this.state.cursor+=e}dispatch(e){return this.append(e)}space(e){return this.options.multiple?super.space(e):this.append(e)}append(e){let{cursor:r,input:o}=this.state;return this.input=o.slice(0,r)+e+o.slice(r),this.moveCursor(1),this.complete()}delete(){let{cursor:e,input:r}=this.state;return r?(this.input=r.slice(0,e-1)+r.slice(e),this.moveCursor(-1),this.complete()):this.alert()}deleteForward(){let{cursor:e,input:r}=this.state;return r[e]===void 0?this.alert():(this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.complete())}number(e){return this.append(e)}async complete(){this.completing=!0,this.choices=await this.suggest(this.input,this.state._choices),this.state.limit=void 0,this.index=Math.min(Math.max(this.visible.length-1,0),this.index),await this.render(),this.completing=!1}suggest(e=this.input,r=this.state._choices){if(typeof this.options.suggest=="function")return this.options.suggest.call(this,e,r);let o=e.toLowerCase();return r.filter(a=>a.message.toLowerCase().includes(o))}pointer(){return""}format(){if(!this.focused)return this.input;if(this.options.multiple&&this.state.submitted)return this.selected.map(e=>this.styles.primary(e.message)).join(", ");if(this.state.submitted){let e=this.value=this.input=this.focused.value;return this.styles.primary(e)}return this.input}async render(){if(this.state.status!=="pending")return super.render();let e=this.options.highlight?this.options.highlight.bind(this):this.styles.placeholder,r=lft(this.input,e),o=this.choices;this.choices=o.map(a=>({...a,message:r(a.message)})),await super.render(),this.choices=o}submit(){return this.options.multiple&&(this.value=this.selected.map(e=>e.name)),super.submit()}};v0e.exports=R_});var N_=_((G8t,P0e)=>{"use strict";var T_=bo();P0e.exports=(t,e={})=>{t.cursorHide();let{input:r="",initial:o="",pos:a,showCursor:n=!0,color:u}=e,A=u||t.styles.placeholder,p=T_.inverse(t.styles.primary),h=T=>p(t.styles.black(T)),E=r,w=" ",D=h(w);if(t.blink&&t.blink.off===!0&&(h=T=>T,D=""),n&&a===0&&o===""&&r==="")return h(w);if(n&&a===0&&(r===o||r===""))return h(o[0])+A(o.slice(1));o=T_.isPrimitive(o)?`${o}`:"",r=T_.isPrimitive(r)?`${r}`:"";let x=o&&o.startsWith(r)&&o!==r,C=x?h(o[r.length]):D;if(a!==r.length&&n===!0&&(E=r.slice(0,a)+h(r[a])+r.slice(a+1),C=""),n===!1&&(C=""),x){let T=t.styles.unstyle(E+C);return E+C+A(o.slice(T.length))}return E+C}});var _k=_((W8t,S0e)=>{"use strict";var cft=eu(),uft=Qh(),Aft=N_(),L_=class extends uft{constructor(e){super({...e,multiple:!0}),this.type="form",this.initial=this.options.initial,this.align=[this.options.align,"right"].find(r=>r!=null),this.emptyError="",this.values={}}async reset(e){return await super.reset(),e===!0&&(this._index=this.index),this.index=this._index,this.values={},this.choices.forEach(r=>r.reset&&r.reset()),this.render()}dispatch(e){return!!e&&this.append(e)}append(e){let r=this.focused;if(!r)return this.alert();let{cursor:o,input:a}=r;return r.value=r.input=a.slice(0,o)+e+a.slice(o),r.cursor++,this.render()}delete(){let e=this.focused;if(!e||e.cursor<=0)return this.alert();let{cursor:r,input:o}=e;return e.value=e.input=o.slice(0,r-1)+o.slice(r),e.cursor--,this.render()}deleteForward(){let e=this.focused;if(!e)return this.alert();let{cursor:r,input:o}=e;if(o[r]===void 0)return this.alert();let a=`${o}`.slice(0,r)+`${o}`.slice(r+1);return e.value=e.input=a,this.render()}right(){let e=this.focused;return e?e.cursor>=e.input.length?this.alert():(e.cursor++,this.render()):this.alert()}left(){let e=this.focused;return e?e.cursor<=0?this.alert():(e.cursor--,this.render()):this.alert()}space(e,r){return this.dispatch(e,r)}number(e,r){return this.dispatch(e,r)}next(){let e=this.focused;if(!e)return this.alert();let{initial:r,input:o}=e;return r&&r.startsWith(o)&&o!==r?(e.value=e.input=r,e.cursor=e.value.length,this.render()):super.next()}prev(){let e=this.focused;return e?e.cursor===0?super.prev():(e.value=e.input="",e.cursor=0,this.render()):this.alert()}separator(){return""}format(e){return this.state.submitted?"":super.format(e)}pointer(){return""}indicator(e){return e.input?"\u29BF":"\u2299"}async choiceSeparator(e,r){let o=await this.resolve(e.separator,this.state,e,r)||":";return o?" "+this.styles.disabled(o):""}async renderChoice(e,r){await this.onChoice(e,r);let{state:o,styles:a}=this,{cursor:n,initial:u="",name:A,hint:p,input:h=""}=e,{muted:E,submitted:w,primary:D,danger:x}=a,C=p,T=this.index===r,L=e.validate||(()=>!0),U=await this.choiceSeparator(e,r),J=e.message;this.align==="right"&&(J=J.padStart(this.longest+1," ")),this.align==="left"&&(J=J.padEnd(this.longest+1," "));let te=this.values[A]=h||u,le=h?"success":"dark";await L.call(e,te,this.state)!==!0&&(le="danger");let ce=a[le],ue=ce(await this.indicator(e,r))+(e.pad||""),Ie=this.indent(e),he=()=>[Ie,ue,J+U,h,C].filter(Boolean).join(" ");if(o.submitted)return J=cft.unstyle(J),h=w(h),C="",he();if(e.format)h=await e.format.call(this,h,e,r);else{let De=this.styles.muted;h=Aft(this,{input:h,initial:u,pos:n,showCursor:T,color:De})}return this.isValue(h)||(h=this.styles.muted(this.symbols.ellipsis)),e.result&&(this.values[A]=await e.result.call(this,te,e,r)),T&&(J=D(J)),e.error?h+=(h?" ":"")+x(e.error.trim()):e.hint&&(h+=(h?" ":"")+E(e.hint.trim())),he()}async submit(){return this.value=this.values,super.base.submit.call(this)}};S0e.exports=L_});var O_=_((Y8t,x0e)=>{"use strict";var fft=_k(),pft=()=>{throw new Error("expected prompt to have a custom authenticate method")},b0e=(t=pft)=>{class e extends fft{constructor(o){super(o)}async submit(){this.value=await t.call(this,this.values,this.state),super.base.submit.call(this)}static create(o){return b0e(o)}}return e};x0e.exports=b0e()});var F0e=_((K8t,Q0e)=>{"use strict";var hft=O_();function gft(t,e){return t.username===this.options.username&&t.password===this.options.password}var k0e=(t=gft)=>{let e=[{name:"username",message:"username"},{name:"password",message:"password",format(o){return this.options.showPassword?o:(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(o.length))}}];class r extends hft.create(t){constructor(a){super({...a,choices:e})}static create(a){return k0e(a)}}return r};Q0e.exports=k0e()});var Hk=_((V8t,R0e)=>{"use strict";var dft=uE(),{isPrimitive:mft,hasColor:yft}=bo(),M_=class extends dft{constructor(e){super(e),this.cursorHide()}async initialize(){let e=await this.resolve(this.initial,this.state);this.input=await this.cast(e),await super.initialize()}dispatch(e){return this.isValue(e)?(this.input=e,this.submit()):this.alert()}format(e){let{styles:r,state:o}=this;return o.submitted?r.success(e):r.primary(e)}cast(e){return this.isTrue(e)}isTrue(e){return/^[ty1]/i.test(e)}isFalse(e){return/^[fn0]/i.test(e)}isValue(e){return mft(e)&&(this.isTrue(e)||this.isFalse(e))}async hint(){if(this.state.status==="pending"){let e=await this.element("hint");return yft(e)?e:this.styles.muted(e)}}async render(){let{input:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=this.styles.muted(this.default),A=[o,n,u,a].filter(Boolean).join(" ");this.state.prompt=A;let p=await this.header(),h=this.value=this.cast(e),E=await this.format(h),w=await this.error()||await this.hint(),D=await this.footer();w&&!A.includes(w)&&(E+=" "+w),A+=" "+E,this.clear(r),this.write([p,A,D].filter(Boolean).join(` +`)),this.restore()}set value(e){super.value=e}get value(){return this.cast(super.value)}};R0e.exports=M_});var N0e=_((J8t,T0e)=>{"use strict";var Eft=Hk(),U_=class extends Eft{constructor(e){super(e),this.default=this.options.default||(this.initial?"(Y/n)":"(y/N)")}};T0e.exports=U_});var O0e=_((z8t,L0e)=>{"use strict";var Cft=Qh(),Ift=_k(),AE=Ift.prototype,__=class extends Cft{constructor(e){super({...e,multiple:!0}),this.align=[this.options.align,"left"].find(r=>r!=null),this.emptyError="",this.values={}}dispatch(e,r){let o=this.focused,a=o.parent||{};return!o.editable&&!a.editable&&(e==="a"||e==="i")?super[e]():AE.dispatch.call(this,e,r)}append(e,r){return AE.append.call(this,e,r)}delete(e,r){return AE.delete.call(this,e,r)}space(e){return this.focused.editable?this.append(e):super.space()}number(e){return this.focused.editable?this.append(e):super.number(e)}next(){return this.focused.editable?AE.next.call(this):super.next()}prev(){return this.focused.editable?AE.prev.call(this):super.prev()}async indicator(e,r){let o=e.indicator||"",a=e.editable?o:super.indicator(e,r);return await this.resolve(a,this.state,e,r)||""}indent(e){return e.role==="heading"?"":e.editable?" ":" "}async renderChoice(e,r){return e.indent="",e.editable?AE.renderChoice.call(this,e,r):super.renderChoice(e,r)}error(){return""}footer(){return this.state.error}async validate(){let e=!0;for(let r of this.choices){if(typeof r.validate!="function"||r.role==="heading")continue;let o=r.parent?this.value[r.parent.name]:this.value;if(r.editable?o=r.value===r.name?r.initial||"":r.value:this.isDisabled(r)||(o=r.enabled===!0),e=await r.validate(o,this.state),e!==!0)break}return e!==!0&&(this.state.error=typeof e=="string"?e:"Invalid Input"),e}submit(){if(this.focused.newChoice===!0)return super.submit();if(this.choices.some(e=>e.newChoice))return this.alert();this.value={};for(let e of this.choices){let r=e.parent?this.value[e.parent.name]:this.value;if(e.role==="heading"){this.value[e.name]={};continue}e.editable?r[e.name]=e.value===e.name?e.initial||"":e.value:this.isDisabled(e)||(r[e.name]=e.enabled===!0)}return this.base.submit.call(this)}};L0e.exports=__});var Vg=_((X8t,M0e)=>{"use strict";var wft=uE(),Bft=N_(),{isPrimitive:vft}=bo(),H_=class extends wft{constructor(e){super(e),this.initial=vft(this.initial)?String(this.initial):"",this.initial&&this.cursorHide(),this.state.prevCursor=0,this.state.clipboard=[]}async keypress(e,r={}){let o=this.state.prevKeypress;return this.state.prevKeypress=r,this.options.multiline===!0&&r.name==="return"&&(!o||o.name!=="return")?this.append(` +`,r):super.keypress(e,r)}moveCursor(e){this.cursor+=e}reset(){return this.input=this.value="",this.cursor=0,this.render()}dispatch(e,r){if(!e||r.ctrl||r.code)return this.alert();this.append(e)}append(e){let{cursor:r,input:o}=this.state;this.input=`${o}`.slice(0,r)+e+`${o}`.slice(r),this.moveCursor(String(e).length),this.render()}insert(e){this.append(e)}delete(){let{cursor:e,input:r}=this.state;if(e<=0)return this.alert();this.input=`${r}`.slice(0,e-1)+`${r}`.slice(e),this.moveCursor(-1),this.render()}deleteForward(){let{cursor:e,input:r}=this.state;if(r[e]===void 0)return this.alert();this.input=`${r}`.slice(0,e)+`${r}`.slice(e+1),this.render()}cutForward(){let e=this.cursor;if(this.input.length<=e)return this.alert();this.state.clipboard.push(this.input.slice(e)),this.input=this.input.slice(0,e),this.render()}cutLeft(){let e=this.cursor;if(e===0)return this.alert();let r=this.input.slice(0,e),o=this.input.slice(e),a=r.split(" ");this.state.clipboard.push(a.pop()),this.input=a.join(" "),this.cursor=this.input.length,this.input+=o,this.render()}paste(){if(!this.state.clipboard.length)return this.alert();this.insert(this.state.clipboard.pop()),this.render()}toggleCursor(){this.state.prevCursor?(this.cursor=this.state.prevCursor,this.state.prevCursor=0):(this.state.prevCursor=this.cursor,this.cursor=0),this.render()}first(){this.cursor=0,this.render()}last(){this.cursor=this.input.length-1,this.render()}next(){let e=this.initial!=null?String(this.initial):"";if(!e||!e.startsWith(this.input))return this.alert();this.input=this.initial,this.cursor=this.initial.length,this.render()}prev(){if(!this.input)return this.alert();this.reset()}backward(){return this.left()}forward(){return this.right()}right(){return this.cursor>=this.input.length?this.alert():(this.moveCursor(1),this.render())}left(){return this.cursor<=0?this.alert():(this.moveCursor(-1),this.render())}isValue(e){return!!e}async format(e=this.value){let r=await this.resolve(this.initial,this.state);return this.state.submitted?this.styles.submitted(e||r):Bft(this,{input:e,initial:r,pos:this.cursor})}async render(){let e=this.state.size,r=await this.prefix(),o=await this.separator(),a=await this.message(),n=[r,a,o].filter(Boolean).join(" ");this.state.prompt=n;let u=await this.header(),A=await this.format(),p=await this.error()||await this.hint(),h=await this.footer();p&&!A.includes(p)&&(A+=" "+p),n+=" "+A,this.clear(e),this.write([u,n,h].filter(Boolean).join(` +`)),this.restore()}};M0e.exports=H_});var _0e=_((Z8t,U0e)=>{"use strict";var Dft=t=>t.filter((e,r)=>t.lastIndexOf(e)===r),qk=t=>Dft(t).filter(Boolean);U0e.exports=(t,e={},r="")=>{let{past:o=[],present:a=""}=e,n,u;switch(t){case"prev":case"undo":return n=o.slice(0,o.length-1),u=o[o.length-1]||"",{past:qk([r,...n]),present:u};case"next":case"redo":return n=o.slice(1),u=o[0]||"",{past:qk([...n,r]),present:u};case"save":return{past:qk([...o,r]),present:""};case"remove":return u=qk(o.filter(A=>A!==r)),a="",u.length&&(a=u.pop()),{past:u,present:a};default:throw new Error(`Invalid action: "${t}"`)}}});var j_=_(($8t,q0e)=>{"use strict";var Pft=Vg(),H0e=_0e(),q_=class extends Pft{constructor(e){super(e);let r=this.options.history;if(r&&r.store){let o=r.values||this.initial;this.autosave=!!r.autosave,this.store=r.store,this.data=this.store.get("values")||{past:[],present:o},this.initial=this.data.present||this.data.past[this.data.past.length-1]}}completion(e){return this.store?(this.data=H0e(e,this.data,this.input),this.data.present?(this.input=this.data.present,this.cursor=this.input.length,this.render()):this.alert()):this.alert()}altUp(){return this.completion("prev")}altDown(){return this.completion("next")}prev(){return this.save(),super.prev()}save(){this.store&&(this.data=H0e("save",this.data,this.input),this.store.set("values",this.data))}submit(){return this.store&&this.autosave===!0&&this.save(),super.submit()}};q0e.exports=q_});var G0e=_((e_t,j0e)=>{"use strict";var Sft=Vg(),G_=class extends Sft{format(){return""}};j0e.exports=G_});var Y0e=_((t_t,W0e)=>{"use strict";var bft=Vg(),W_=class extends bft{constructor(e={}){super(e),this.sep=this.options.separator||/, */,this.initial=e.initial||""}split(e=this.value){return e?String(e).split(this.sep):[]}format(){let e=this.state.submitted?this.styles.primary:r=>r;return this.list.map(e).join(", ")}async submit(e){let r=this.state.error||await this.validate(this.list,this.state);return r!==!0?(this.state.error=r,super.submit()):(this.value=this.list,super.submit())}get list(){return this.split()}};W0e.exports=W_});var V0e=_((r_t,K0e)=>{"use strict";var xft=Qh(),Y_=class extends xft{constructor(e){super({...e,multiple:!0})}};K0e.exports=Y_});var V_=_((n_t,J0e)=>{"use strict";var kft=Vg(),K_=class extends kft{constructor(e={}){super({style:"number",...e}),this.min=this.isValue(e.min)?this.toNumber(e.min):-1/0,this.max=this.isValue(e.max)?this.toNumber(e.max):1/0,this.delay=e.delay!=null?e.delay:1e3,this.float=e.float!==!1,this.round=e.round===!0||e.float===!1,this.major=e.major||10,this.minor=e.minor||1,this.initial=e.initial!=null?e.initial:"",this.input=String(this.initial),this.cursor=this.input.length,this.cursorShow()}append(e){return!/[-+.]/.test(e)||e==="."&&this.input.includes(".")?this.alert("invalid number"):super.append(e)}number(e){return super.append(e)}next(){return this.input&&this.input!==this.initial?this.alert():this.isValue(this.initial)?(this.input=this.initial,this.cursor=String(this.initial).length,this.render()):this.alert()}up(e){let r=e||this.minor,o=this.toNumber(this.input);return o>this.max+r?this.alert():(this.input=`${o+r}`,this.render())}down(e){let r=e||this.minor,o=this.toNumber(this.input);return othis.isValue(r));return this.value=this.toNumber(e||0),super.submit()}};J0e.exports=K_});var X0e=_((i_t,z0e)=>{z0e.exports=V_()});var $0e=_((s_t,Z0e)=>{"use strict";var Qft=Vg(),J_=class extends Qft{constructor(e){super(e),this.cursorShow()}format(e=this.input){return this.keypressed?(this.state.submitted?this.styles.primary:this.styles.muted)(this.symbols.asterisk.repeat(e.length)):""}};Z0e.exports=J_});var rge=_((o_t,tge)=>{"use strict";var Fft=eu(),Rft=x2(),ege=bo(),z_=class extends Rft{constructor(e={}){super(e),this.widths=[].concat(e.messageWidth||50),this.align=[].concat(e.align||"left"),this.linebreak=e.linebreak||!1,this.edgeLength=e.edgeLength||3,this.newline=e.newline||` + `;let r=e.startNumber||1;typeof this.scale=="number"&&(this.scaleKey=!1,this.scale=Array(this.scale).fill(0).map((o,a)=>({name:a+r})))}async reset(){return this.tableized=!1,await super.reset(),this.render()}tableize(){if(this.tableized===!0)return;this.tableized=!0;let e=0;for(let r of this.choices){e=Math.max(e,r.message.length),r.scaleIndex=r.initial||2,r.scale=[];for(let o=0;o=this.scale.length-1?this.alert():(e.scaleIndex++,this.render())}left(){let e=this.focused;return e.scaleIndex<=0?this.alert():(e.scaleIndex--,this.render())}indent(){return""}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.index)).join(", "):""}pointer(){return""}renderScaleKey(){return this.scaleKey===!1||this.state.submitted?"":["",...this.scale.map(o=>` ${o.name} - ${o.message}`)].map(o=>this.styles.muted(o)).join(` +`)}renderScaleHeading(e){let r=this.scale.map(p=>p.name);typeof this.options.renderScaleHeading=="function"&&(r=this.options.renderScaleHeading.call(this,e));let o=this.scaleLength-r.join("").length,a=Math.round(o/(r.length-1)),u=r.map(p=>this.styles.strong(p)).join(" ".repeat(a)),A=" ".repeat(this.widths[0]);return this.margin[3]+A+this.margin[1]+u}scaleIndicator(e,r,o){if(typeof this.options.scaleIndicator=="function")return this.options.scaleIndicator.call(this,e,r,o);let a=e.scaleIndex===r.index;return r.disabled?this.styles.hint(this.symbols.radio.disabled):a?this.styles.success(this.symbols.radio.on):this.symbols.radio.off}renderScale(e,r){let o=e.scale.map(n=>this.scaleIndicator(e,n,r)),a=this.term==="Hyper"?"":" ";return o.join(a+this.symbols.line.repeat(this.edgeLength))}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=await this.pointer(e,r),n=await e.hint;n&&!ege.hasColor(n)&&(n=this.styles.muted(n));let u=C=>this.margin[3]+C.replace(/\s+$/,"").padEnd(this.widths[0]," "),A=this.newline,p=this.indent(e),h=await this.resolve(e.message,this.state,e,r),E=await this.renderScale(e,r),w=this.margin[1]+this.margin[3];this.scaleLength=Fft.unstyle(E).length,this.widths[0]=Math.min(this.widths[0],this.width-this.scaleLength-w.length);let x=ege.wordWrap(h,{width:this.widths[0],newline:A}).split(` +`).map(C=>u(C)+this.margin[1]);return o&&(E=this.styles.info(E),x=x.map(C=>this.styles.info(C))),x[0]+=E,this.linebreak&&x.push(""),[p+a,x.join(` +`)].filter(Boolean)}async renderChoices(){if(this.state.submitted)return"";this.tableize();let e=this.visible.map(async(a,n)=>await this.renderChoice(a,n)),r=await Promise.all(e),o=await this.renderScaleHeading();return this.margin[0]+[o,...r.map(a=>a.join(" "))].join(` +`)}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u="";this.options.promptLine!==!1&&(u=[o,n,a,""].join(" "),this.state.prompt=u);let A=await this.header(),p=await this.format(),h=await this.renderScaleKey(),E=await this.error()||await this.hint(),w=await this.renderChoices(),D=await this.footer(),x=this.emptyError;p&&(u+=p),E&&!u.includes(E)&&(u+=" "+E),e&&!p&&!w.trim()&&this.multiple&&x!=null&&(u+=this.styles.danger(x)),this.clear(r),this.write([A,u,h,w,D].filter(Boolean).join(` +`)),this.state.submitted||this.write(this.margin[2]),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIndex;return this.base.submit.call(this)}};tge.exports=z_});var sge=_((a_t,ige)=>{"use strict";var nge=eu(),Tft=(t="")=>typeof t=="string"?t.replace(/^['"]|['"]$/g,""):"",Z_=class{constructor(e){this.name=e.key,this.field=e.field||{},this.value=Tft(e.initial||this.field.initial||""),this.message=e.message||this.name,this.cursor=0,this.input="",this.lines=[]}},Nft=async(t={},e={},r=o=>o)=>{let o=new Set,a=t.fields||[],n=t.template,u=[],A=[],p=[],h=1;typeof n=="function"&&(n=await n());let E=-1,w=()=>n[++E],D=()=>n[E+1],x=C=>{C.line=h,u.push(C)};for(x({type:"bos",value:""});Ele.name===U.key);U.field=a.find(le=>le.name===U.key),te||(te=new Z_(U),A.push(te)),te.lines.push(U.line-1);continue}let T=u[u.length-1];T.type==="text"&&T.line===h?T.value+=C:x({type:"text",value:C})}return x({type:"eos",value:""}),{input:n,tabstops:u,unique:o,keys:p,items:A}};ige.exports=async t=>{let e=t.options,r=new Set(e.required===!0?[]:e.required||[]),o={...e.values,...e.initial},{tabstops:a,items:n,keys:u}=await Nft(e,o),A=X_("result",t,e),p=X_("format",t,e),h=X_("validate",t,e,!0),E=t.isValue.bind(t);return async(w={},D=!1)=>{let x=0;w.required=r,w.items=n,w.keys=u,w.output="";let C=async(J,te,le,ce)=>{let ue=await h(J,te,le,ce);return ue===!1?"Invalid field "+le.name:ue};for(let J of a){let te=J.value,le=J.key;if(J.type!=="template"){te&&(w.output+=te);continue}if(J.type==="template"){let ce=n.find(Ee=>Ee.name===le);e.required===!0&&w.required.add(ce.name);let ue=[ce.input,w.values[ce.value],ce.value,te].find(E),he=(ce.field||{}).message||J.inner;if(D){let Ee=await C(w.values[le],w,ce,x);if(Ee&&typeof Ee=="string"||Ee===!1){w.invalid.set(le,Ee);continue}w.invalid.delete(le);let g=await A(w.values[le],w,ce,x);w.output+=nge.unstyle(g);continue}ce.placeholder=!1;let De=te;te=await p(te,w,ce,x),ue!==te?(w.values[le]=ue,te=t.styles.typing(ue),w.missing.delete(he)):(w.values[le]=void 0,ue=`<${he}>`,te=t.styles.primary(ue),ce.placeholder=!0,w.required.has(le)&&w.missing.add(he)),w.missing.has(he)&&w.validating&&(te=t.styles.warning(ue)),w.invalid.has(le)&&w.validating&&(te=t.styles.danger(ue)),x===w.index&&(De!==te?te=t.styles.underline(te):te=t.styles.heading(nge.unstyle(te))),x++}te&&(w.output+=te)}let T=w.output.split(` +`).map(J=>" "+J),L=n.length,U=0;for(let J of n)w.invalid.has(J.name)&&J.lines.forEach(te=>{T[te][0]===" "&&(T[te]=w.styles.danger(w.symbols.bullet)+T[te].slice(1))}),t.isValue(w.values[J.name])&&U++;return w.completed=(U/L*100).toFixed(0),w.output=T.join(` +`),w.output}};function X_(t,e,r,o){return(a,n,u,A)=>typeof u.field[t]=="function"?u.field[t].call(e,a,n,u,A):[o,a].find(p=>e.isValue(p))}});var age=_((l_t,oge)=>{"use strict";var Lft=eu(),Oft=sge(),Mft=uE(),$_=class extends Mft{constructor(e){super(e),this.cursorHide(),this.reset(!0)}async initialize(){this.interpolate=await Oft(this),await super.initialize()}async reset(e){this.state.keys=[],this.state.invalid=new Map,this.state.missing=new Set,this.state.completed=0,this.state.values={},e!==!0&&(await this.initialize(),await this.render())}moveCursor(e){let r=this.getItem();this.cursor+=e,r.cursor+=e}dispatch(e,r){if(!r.code&&!r.ctrl&&e!=null&&this.getItem()){this.append(e,r);return}this.alert()}append(e,r){let o=this.getItem(),a=o.input.slice(0,this.cursor),n=o.input.slice(this.cursor);this.input=o.input=`${a}${e}${n}`,this.moveCursor(1),this.render()}delete(){let e=this.getItem();if(this.cursor<=0||!e.input)return this.alert();let r=e.input.slice(this.cursor),o=e.input.slice(0,this.cursor-1);this.input=e.input=`${o}${r}`,this.moveCursor(-1),this.render()}increment(e){return e>=this.state.keys.length-1?0:e+1}decrement(e){return e<=0?this.state.keys.length-1:e-1}first(){this.state.index=0,this.render()}last(){this.state.index=this.state.keys.length-1,this.render()}right(){if(this.cursor>=this.input.length)return this.alert();this.moveCursor(1),this.render()}left(){if(this.cursor<=0)return this.alert();this.moveCursor(-1),this.render()}prev(){this.state.index=this.decrement(this.state.index),this.getItem(),this.render()}next(){this.state.index=this.increment(this.state.index),this.getItem(),this.render()}up(){this.prev()}down(){this.next()}format(e){let r=this.state.completed<100?this.styles.warning:this.styles.success;return this.state.submitted===!0&&this.state.completed!==100&&(r=this.styles.danger),r(`${this.state.completed}% completed`)}async render(){let{index:e,keys:r=[],submitted:o,size:a}=this.state,n=[this.options.newline,` +`].find(J=>J!=null),u=await this.prefix(),A=await this.separator(),p=await this.message(),h=[u,p,A].filter(Boolean).join(" ");this.state.prompt=h;let E=await this.header(),w=await this.error()||"",D=await this.hint()||"",x=o?"":await this.interpolate(this.state),C=this.state.key=r[e]||"",T=await this.format(C),L=await this.footer();T&&(h+=" "+T),D&&!T&&this.state.completed===0&&(h+=" "+D),this.clear(a);let U=[E,h,x,L,w.trim()];this.write(U.filter(Boolean).join(n)),this.restore()}getItem(e){let{items:r,keys:o,index:a}=this.state,n=r.find(u=>u.name===o[a]);return n&&n.input!=null&&(this.input=n.input,this.cursor=n.cursor),n}async submit(){typeof this.interpolate!="function"&&await this.initialize(),await this.interpolate(this.state,!0);let{invalid:e,missing:r,output:o,values:a}=this.state;if(e.size){let A="";for(let[p,h]of e)A+=`Invalid ${p}: ${h} +`;return this.state.error=A,super.submit()}if(r.size)return this.state.error="Required: "+[...r.keys()].join(", "),super.submit();let u=Lft.unstyle(o).split(` +`).map(A=>A.slice(1)).join(` +`);return this.value={values:a,result:u},super.submit()}};oge.exports=$_});var cge=_((c_t,lge)=>{"use strict";var Uft="(Use + to sort)",_ft=Qh(),eH=class extends _ft{constructor(e){super({...e,reorder:!1,sort:!0,multiple:!0}),this.state.hint=[this.options.hint,Uft].find(this.isValue.bind(this))}indicator(){return""}async renderChoice(e,r){let o=await super.renderChoice(e,r),a=this.symbols.identicalTo+" ",n=this.index===r&&this.sorting?this.styles.muted(a):" ";return this.options.drag===!1&&(n=""),this.options.numbered===!0?n+`${r+1} - `+o:n+o}get selected(){return this.choices}submit(){return this.value=this.choices.map(e=>e.value),super.submit()}};lge.exports=eH});var Age=_((u_t,uge)=>{"use strict";var Hft=x2(),tH=class extends Hft{constructor(e={}){if(super(e),this.emptyError=e.emptyError||"No items were selected",this.term=process.env.TERM_PROGRAM,!this.options.header){let r=["","4 - Strongly Agree","3 - Agree","2 - Neutral","1 - Disagree","0 - Strongly Disagree",""];r=r.map(o=>this.styles.muted(o)),this.state.header=r.join(` + `)}}async toChoices(...e){if(this.createdScales)return!1;this.createdScales=!0;let r=await super.toChoices(...e);for(let o of r)o.scale=qft(5,this.options),o.scaleIdx=2;return r}dispatch(){this.alert()}space(){let e=this.focused,r=e.scale[e.scaleIdx],o=r.selected;return e.scale.forEach(a=>a.selected=!1),r.selected=!o,this.render()}indicator(){return""}pointer(){return""}separator(){return this.styles.muted(this.symbols.ellipsis)}right(){let e=this.focused;return e.scaleIdx>=e.scale.length-1?this.alert():(e.scaleIdx++,this.render())}left(){let e=this.focused;return e.scaleIdx<=0?this.alert():(e.scaleIdx--,this.render())}indent(){return" "}async renderChoice(e,r){await this.onChoice(e,r);let o=this.index===r,a=this.term==="Hyper",n=a?9:8,u=a?"":" ",A=this.symbols.line.repeat(n),p=" ".repeat(n+(a?0:1)),h=te=>(te?this.styles.success("\u25C9"):"\u25EF")+u,E=r+1+".",w=o?this.styles.heading:this.styles.noop,D=await this.resolve(e.message,this.state,e,r),x=this.indent(e),C=x+e.scale.map((te,le)=>h(le===e.scaleIdx)).join(A),T=te=>te===e.scaleIdx?w(te):te,L=x+e.scale.map((te,le)=>T(le)).join(p),U=()=>[E,D].filter(Boolean).join(" "),J=()=>[U(),C,L," "].filter(Boolean).join(` +`);return o&&(C=this.styles.cyan(C),L=this.styles.cyan(L)),J()}async renderChoices(){if(this.state.submitted)return"";let e=this.visible.map(async(o,a)=>await this.renderChoice(o,a)),r=await Promise.all(e);return r.length||r.push(this.styles.danger("No matching choices")),r.join(` +`)}format(){return this.state.submitted?this.choices.map(r=>this.styles.info(r.scaleIdx)).join(", "):""}async render(){let{submitted:e,size:r}=this.state,o=await this.prefix(),a=await this.separator(),n=await this.message(),u=[o,n,a].filter(Boolean).join(" ");this.state.prompt=u;let A=await this.header(),p=await this.format(),h=await this.error()||await this.hint(),E=await this.renderChoices(),w=await this.footer();(p||!h)&&(u+=" "+p),h&&!u.includes(h)&&(u+=" "+h),e&&!p&&!E&&this.multiple&&this.type!=="form"&&(u+=this.styles.danger(this.emptyError)),this.clear(r),this.write([u,A,E,w].filter(Boolean).join(` +`)),this.restore()}submit(){this.value={};for(let e of this.choices)this.value[e.name]=e.scaleIdx;return this.base.submit.call(this)}};function qft(t,e={}){if(Array.isArray(e.scale))return e.scale.map(o=>({...o}));let r=[];for(let o=1;o{fge.exports=j_()});var gge=_((f_t,hge)=>{"use strict";var jft=Hk(),rH=class extends jft{async initialize(){await super.initialize(),this.value=this.initial=!!this.options.initial,this.disabled=this.options.disabled||"no",this.enabled=this.options.enabled||"yes",await this.render()}reset(){this.value=this.initial,this.render()}delete(){this.alert()}toggle(){this.value=!this.value,this.render()}enable(){if(this.value===!0)return this.alert();this.value=!0,this.render()}disable(){if(this.value===!1)return this.alert();this.value=!1,this.render()}up(){this.toggle()}down(){this.toggle()}right(){this.toggle()}left(){this.toggle()}next(){this.toggle()}prev(){this.toggle()}dispatch(e="",r){switch(e.toLowerCase()){case" ":return this.toggle();case"1":case"y":case"t":return this.enable();case"0":case"n":case"f":return this.disable();default:return this.alert()}}format(){let e=o=>this.styles.primary.underline(o);return[this.value?this.disabled:e(this.disabled),this.value?e(this.enabled):this.enabled].join(this.styles.muted(" / "))}async render(){let{size:e}=this.state,r=await this.header(),o=await this.prefix(),a=await this.separator(),n=await this.message(),u=await this.format(),A=await this.error()||await this.hint(),p=await this.footer(),h=[o,n,a,u].join(" ");this.state.prompt=h,A&&!h.includes(A)&&(h+=" "+A),this.clear(e),this.write([r,h,p].filter(Boolean).join(` +`)),this.write(this.margin[2]),this.restore()}};hge.exports=rH});var mge=_((p_t,dge)=>{"use strict";var Gft=Qh(),nH=class extends Gft{constructor(e){if(super(e),typeof this.options.correctChoice!="number"||this.options.correctChoice<0)throw new Error("Please specify the index of the correct answer from the list of choices")}async toChoices(e,r){let o=await super.toChoices(e,r);if(o.length<2)throw new Error("Please give at least two choices to the user");if(this.options.correctChoice>o.length)throw new Error("Please specify the index of the correct answer from the list of choices");return o}check(e){return e.index===this.options.correctChoice}async result(e){return{selectedAnswer:e,correctAnswer:this.options.choices[this.options.correctChoice].value,correct:await this.check(this.state)}}};dge.exports=nH});var Ege=_(iH=>{"use strict";var yge=bo(),fs=(t,e)=>{yge.defineExport(iH,t,e),yge.defineExport(iH,t.toLowerCase(),e)};fs("AutoComplete",()=>D0e());fs("BasicAuth",()=>F0e());fs("Confirm",()=>N0e());fs("Editable",()=>O0e());fs("Form",()=>_k());fs("Input",()=>j_());fs("Invisible",()=>G0e());fs("List",()=>Y0e());fs("MultiSelect",()=>V0e());fs("Numeral",()=>X0e());fs("Password",()=>$0e());fs("Scale",()=>rge());fs("Select",()=>Qh());fs("Snippet",()=>age());fs("Sort",()=>cge());fs("Survey",()=>Age());fs("Text",()=>pge());fs("Toggle",()=>gge());fs("Quiz",()=>mge())});var Ige=_((g_t,Cge)=>{Cge.exports={ArrayPrompt:x2(),AuthPrompt:O_(),BooleanPrompt:Hk(),NumberPrompt:V_(),StringPrompt:Vg()}});var Q2=_((d_t,Bge)=>{"use strict";var wge=ve("assert"),oH=ve("events"),Fh=bo(),ru=class extends oH{constructor(e,r){super(),this.options=Fh.merge({},e),this.answers={...r}}register(e,r){if(Fh.isObject(e)){for(let a of Object.keys(e))this.register(a,e[a]);return this}wge.equal(typeof r,"function","expected a function");let o=e.toLowerCase();return r.prototype instanceof this.Prompt?this.prompts[o]=r:this.prompts[o]=r(this.Prompt,this),this}async prompt(e=[]){for(let r of[].concat(e))try{typeof r=="function"&&(r=await r.call(this)),await this.ask(Fh.merge({},this.options,r))}catch(o){return Promise.reject(o)}return this.answers}async ask(e){typeof e=="function"&&(e=await e.call(this));let r=Fh.merge({},this.options,e),{type:o,name:a}=e,{set:n,get:u}=Fh;if(typeof o=="function"&&(o=await o.call(this,e,this.answers)),!o)return this.answers[a];wge(this.prompts[o],`Prompt "${o}" is not registered`);let A=new this.prompts[o](r),p=u(this.answers,a);A.state.answers=this.answers,A.enquirer=this,a&&A.on("submit",E=>{this.emit("answer",a,E,A),n(this.answers,a,E)});let h=A.emit.bind(A);return A.emit=(...E)=>(this.emit.call(this,...E),h(...E)),this.emit("prompt",A,this),r.autofill&&p!=null?(A.value=A.input=p,r.autofill==="show"&&await A.submit()):p=A.value=await A.run(),p}use(e){return e.call(this,this),this}set Prompt(e){this._Prompt=e}get Prompt(){return this._Prompt||this.constructor.Prompt}get prompts(){return this.constructor.prompts}static set Prompt(e){this._Prompt=e}static get Prompt(){return this._Prompt||uE()}static get prompts(){return Ege()}static get types(){return Ige()}static get prompt(){let e=(r,...o)=>{let a=new this(...o),n=a.emit.bind(a);return a.emit=(...u)=>(e.emit(...u),n(...u)),a.prompt(r)};return Fh.mixinEmitter(e,new oH),e}};Fh.mixinEmitter(ru,new oH);var sH=ru.prompts;for(let t of Object.keys(sH)){let e=t.toLowerCase(),r=o=>new sH[t](o).run();ru.prompt[e]=r,ru[e]=r,ru[t]||Reflect.defineProperty(ru,t,{get:()=>sH[t]})}var k2=t=>{Fh.defineExport(ru,t,()=>ru.types[t])};k2("ArrayPrompt");k2("AuthPrompt");k2("BooleanPrompt");k2("NumberPrompt");k2("StringPrompt");Bge.exports=ru});var N2=_((Z_t,kge)=>{var zft=xk();function Xft(t,e,r){var o=t==null?void 0:zft(t,e);return o===void 0?r:o}kge.exports=Xft});var Rge=_((iHt,Fge)=>{function Zft(t,e){for(var r=-1,o=t==null?0:t.length;++r{var $ft=Eg(),ept=PS();function tpt(t,e){return t&&$ft(e,ept(e),t)}Tge.exports=tpt});var Oge=_((oHt,Lge)=>{var rpt=Eg(),npt=Vm();function ipt(t,e){return t&&rpt(e,npt(e),t)}Lge.exports=ipt});var Uge=_((aHt,Mge)=>{var spt=Eg(),opt=CS();function apt(t,e){return spt(t,opt(t),e)}Mge.exports=apt});var fH=_((lHt,_ge)=>{var lpt=ES(),cpt=QS(),upt=CS(),Apt=bL(),fpt=Object.getOwnPropertySymbols,ppt=fpt?function(t){for(var e=[];t;)lpt(e,upt(t)),t=cpt(t);return e}:Apt;_ge.exports=ppt});var qge=_((cHt,Hge)=>{var hpt=Eg(),gpt=fH();function dpt(t,e){return hpt(t,gpt(t),e)}Hge.exports=dpt});var pH=_((uHt,jge)=>{var mpt=SL(),ypt=fH(),Ept=Vm();function Cpt(t){return mpt(t,Ept,ypt)}jge.exports=Cpt});var Wge=_((AHt,Gge)=>{var Ipt=Object.prototype,wpt=Ipt.hasOwnProperty;function Bpt(t){var e=t.length,r=new t.constructor(e);return e&&typeof t[0]=="string"&&wpt.call(t,"index")&&(r.index=t.index,r.input=t.input),r}Gge.exports=Bpt});var Kge=_((fHt,Yge)=>{var vpt=xS();function Dpt(t,e){var r=e?vpt(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.byteLength)}Yge.exports=Dpt});var Jge=_((pHt,Vge)=>{var Ppt=/\w*$/;function Spt(t){var e=new t.constructor(t.source,Ppt.exec(t));return e.lastIndex=t.lastIndex,e}Vge.exports=Spt});var ede=_((hHt,$ge)=>{var zge=dg(),Xge=zge?zge.prototype:void 0,Zge=Xge?Xge.valueOf:void 0;function bpt(t){return Zge?Object(Zge.call(t)):{}}$ge.exports=bpt});var rde=_((gHt,tde)=>{var xpt=xS(),kpt=Kge(),Qpt=Jge(),Fpt=ede(),Rpt=qL(),Tpt="[object Boolean]",Npt="[object Date]",Lpt="[object Map]",Opt="[object Number]",Mpt="[object RegExp]",Upt="[object Set]",_pt="[object String]",Hpt="[object Symbol]",qpt="[object ArrayBuffer]",jpt="[object DataView]",Gpt="[object Float32Array]",Wpt="[object Float64Array]",Ypt="[object Int8Array]",Kpt="[object Int16Array]",Vpt="[object Int32Array]",Jpt="[object Uint8Array]",zpt="[object Uint8ClampedArray]",Xpt="[object Uint16Array]",Zpt="[object Uint32Array]";function $pt(t,e,r){var o=t.constructor;switch(e){case qpt:return xpt(t);case Tpt:case Npt:return new o(+t);case jpt:return kpt(t,r);case Gpt:case Wpt:case Ypt:case Kpt:case Vpt:case Jpt:case zpt:case Xpt:case Zpt:return Rpt(t,r);case Lpt:return new o;case Opt:case _pt:return new o(t);case Mpt:return Qpt(t);case Upt:return new o;case Hpt:return Fpt(t)}}tde.exports=$pt});var ide=_((dHt,nde)=>{var eht=a1(),tht=Zu(),rht="[object Map]";function nht(t){return tht(t)&&eht(t)==rht}nde.exports=nht});var lde=_((mHt,ade)=>{var iht=ide(),sht=wS(),sde=BS(),ode=sde&&sde.isMap,oht=ode?sht(ode):iht;ade.exports=oht});var ude=_((yHt,cde)=>{var aht=a1(),lht=Zu(),cht="[object Set]";function uht(t){return lht(t)&&aht(t)==cht}cde.exports=uht});var hde=_((EHt,pde)=>{var Aht=ude(),fht=wS(),Ade=BS(),fde=Ade&&Ade.isSet,pht=fde?fht(fde):Aht;pde.exports=pht});var hH=_((CHt,yde)=>{var hht=mS(),ght=Rge(),dht=RS(),mht=Nge(),yht=Oge(),Eht=HL(),Cht=kS(),Iht=Uge(),wht=qge(),Bht=FL(),vht=pH(),Dht=a1(),Pht=Wge(),Sht=rde(),bht=jL(),xht=jl(),kht=r1(),Qht=lde(),Fht=cl(),Rht=hde(),Tht=PS(),Nht=Vm(),Lht=1,Oht=2,Mht=4,gde="[object Arguments]",Uht="[object Array]",_ht="[object Boolean]",Hht="[object Date]",qht="[object Error]",dde="[object Function]",jht="[object GeneratorFunction]",Ght="[object Map]",Wht="[object Number]",mde="[object Object]",Yht="[object RegExp]",Kht="[object Set]",Vht="[object String]",Jht="[object Symbol]",zht="[object WeakMap]",Xht="[object ArrayBuffer]",Zht="[object DataView]",$ht="[object Float32Array]",e0t="[object Float64Array]",t0t="[object Int8Array]",r0t="[object Int16Array]",n0t="[object Int32Array]",i0t="[object Uint8Array]",s0t="[object Uint8ClampedArray]",o0t="[object Uint16Array]",a0t="[object Uint32Array]",Ai={};Ai[gde]=Ai[Uht]=Ai[Xht]=Ai[Zht]=Ai[_ht]=Ai[Hht]=Ai[$ht]=Ai[e0t]=Ai[t0t]=Ai[r0t]=Ai[n0t]=Ai[Ght]=Ai[Wht]=Ai[mde]=Ai[Yht]=Ai[Kht]=Ai[Vht]=Ai[Jht]=Ai[i0t]=Ai[s0t]=Ai[o0t]=Ai[a0t]=!0;Ai[qht]=Ai[dde]=Ai[zht]=!1;function Gk(t,e,r,o,a,n){var u,A=e&Lht,p=e&Oht,h=e&Mht;if(r&&(u=a?r(t,o,a,n):r(t)),u!==void 0)return u;if(!Fht(t))return t;var E=xht(t);if(E){if(u=Pht(t),!A)return Cht(t,u)}else{var w=Dht(t),D=w==dde||w==jht;if(kht(t))return Eht(t,A);if(w==mde||w==gde||D&&!a){if(u=p||D?{}:bht(t),!A)return p?wht(t,yht(u,t)):Iht(t,mht(u,t))}else{if(!Ai[w])return a?t:{};u=Sht(t,w,A)}}n||(n=new hht);var x=n.get(t);if(x)return x;n.set(t,u),Rht(t)?t.forEach(function(L){u.add(Gk(L,e,r,L,t,n))}):Qht(t)&&t.forEach(function(L,U){u.set(U,Gk(L,e,r,U,t,n))});var C=h?p?vht:Bht:p?Nht:Tht,T=E?void 0:C(t);return ght(T||t,function(L,U){T&&(U=L,L=t[U]),dht(u,U,Gk(L,e,r,U,t,n))}),u}yde.exports=Gk});var gH=_((IHt,Ede)=>{var l0t=hH(),c0t=1,u0t=4;function A0t(t){return l0t(t,c0t|u0t)}Ede.exports=A0t});var dH=_((wHt,Cde)=>{var f0t=o_();function p0t(t,e,r){return t==null?t:f0t(t,e,r)}Cde.exports=p0t});var Dde=_((bHt,vde)=>{var h0t=Object.prototype,g0t=h0t.hasOwnProperty;function d0t(t,e){return t!=null&&g0t.call(t,e)}vde.exports=d0t});var Sde=_((xHt,Pde)=>{var m0t=Dde(),y0t=a_();function E0t(t,e){return t!=null&&y0t(t,e,m0t)}Pde.exports=E0t});var xde=_((kHt,bde)=>{function C0t(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}bde.exports=C0t});var Qde=_((QHt,kde)=>{var I0t=xk(),w0t=X4();function B0t(t,e){return e.length<2?t:I0t(t,w0t(e,0,-1))}kde.exports=B0t});var yH=_((FHt,Fde)=>{var v0t=Wg(),D0t=xde(),P0t=Qde(),S0t=nE();function b0t(t,e){return e=v0t(e,t),t=P0t(t,e),t==null||delete t[S0t(D0t(e))]}Fde.exports=b0t});var EH=_((RHt,Rde)=>{var x0t=yH();function k0t(t,e){return t==null?!0:x0t(t,e)}Rde.exports=k0t});var Mde=_((l6t,R0t)=>{R0t.exports={name:"@yarnpkg/cli",version:"4.6.0",license:"BSD-2-Clause",main:"./sources/index.ts",exports:{".":"./sources/index.ts","./polyfills":"./sources/polyfills.ts","./package.json":"./package.json"},dependencies:{"@yarnpkg/core":"workspace:^","@yarnpkg/fslib":"workspace:^","@yarnpkg/libzip":"workspace:^","@yarnpkg/parsers":"workspace:^","@yarnpkg/plugin-compat":"workspace:^","@yarnpkg/plugin-constraints":"workspace:^","@yarnpkg/plugin-dlx":"workspace:^","@yarnpkg/plugin-essentials":"workspace:^","@yarnpkg/plugin-exec":"workspace:^","@yarnpkg/plugin-file":"workspace:^","@yarnpkg/plugin-git":"workspace:^","@yarnpkg/plugin-github":"workspace:^","@yarnpkg/plugin-http":"workspace:^","@yarnpkg/plugin-init":"workspace:^","@yarnpkg/plugin-interactive-tools":"workspace:^","@yarnpkg/plugin-link":"workspace:^","@yarnpkg/plugin-nm":"workspace:^","@yarnpkg/plugin-npm":"workspace:^","@yarnpkg/plugin-npm-cli":"workspace:^","@yarnpkg/plugin-pack":"workspace:^","@yarnpkg/plugin-patch":"workspace:^","@yarnpkg/plugin-pnp":"workspace:^","@yarnpkg/plugin-pnpm":"workspace:^","@yarnpkg/plugin-stage":"workspace:^","@yarnpkg/plugin-typescript":"workspace:^","@yarnpkg/plugin-version":"workspace:^","@yarnpkg/plugin-workspace-tools":"workspace:^","@yarnpkg/shell":"workspace:^","ci-info":"^4.0.0",clipanion:"^4.0.0-rc.2",semver:"^7.1.2",tslib:"^2.4.0",typanion:"^3.14.0"},devDependencies:{"@types/semver":"^7.1.0","@yarnpkg/builder":"workspace:^","@yarnpkg/monorepo":"workspace:^","@yarnpkg/pnpify":"workspace:^"},peerDependencies:{"@yarnpkg/core":"workspace:^"},scripts:{postpack:"rm -rf lib",prepack:'run build:compile "$(pwd)"',"build:cli+hook":"run build:pnp:hook && builder build bundle","build:cli":"builder build bundle","run:cli":"builder run","update-local":"run build:cli --no-git-hash && rsync -a --delete bundles/ bin/"},publishConfig:{main:"./lib/index.js",bin:null,exports:{".":"./lib/index.js","./package.json":"./package.json"}},files:["/lib/**/*","!/lib/pluginConfiguration.*","!/lib/cli.*"],"@yarnpkg/builder":{bundles:{standard:["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"]}},repository:{type:"git",url:"ssh://git@github.com/yarnpkg/berry.git",directory:"packages/yarnpkg-cli"},engines:{node:">=18.12.0"}}});var bH=_((U5t,zde)=>{"use strict";zde.exports=function(e,r){r===!0&&(r=0);var o="";if(typeof e=="string")try{o=new URL(e).protocol}catch{}else e&&e.constructor===URL&&(o=e.protocol);var a=o.split(/\:|\+/).filter(Boolean);return typeof r=="number"?a[r]:a}});var Zde=_((_5t,Xde)=>{"use strict";var $0t=bH();function egt(t){var e={protocols:[],protocol:null,port:null,resource:"",host:"",user:"",password:"",pathname:"",hash:"",search:"",href:t,query:{},parse_failed:!1};try{var r=new URL(t);e.protocols=$0t(r),e.protocol=e.protocols[0],e.port=r.port,e.resource=r.hostname,e.host=r.host,e.user=r.username||"",e.password=r.password||"",e.pathname=r.pathname,e.hash=r.hash.slice(1),e.search=r.search.slice(1),e.href=r.href,e.query=Object.fromEntries(r.searchParams)}catch{e.protocols=["file"],e.protocol=e.protocols[0],e.port="",e.resource="",e.user="",e.pathname="",e.hash="",e.search="",e.href=t,e.query={},e.parse_failed=!0}return e}Xde.exports=egt});var tme=_((H5t,eme)=>{"use strict";var tgt=Zde();function rgt(t){return t&&typeof t=="object"&&"default"in t?t:{default:t}}var ngt=rgt(tgt),igt="text/plain",sgt="us-ascii",$de=(t,e)=>e.some(r=>r instanceof RegExp?r.test(t):r===t),ogt=(t,{stripHash:e})=>{let r=/^data:(?[^,]*?),(?[^#]*?)(?:#(?.*))?$/.exec(t);if(!r)throw new Error(`Invalid URL: ${t}`);let{type:o,data:a,hash:n}=r.groups,u=o.split(";");n=e?"":n;let A=!1;u[u.length-1]==="base64"&&(u.pop(),A=!0);let p=(u.shift()||"").toLowerCase(),E=[...u.map(w=>{let[D,x=""]=w.split("=").map(C=>C.trim());return D==="charset"&&(x=x.toLowerCase(),x===sgt)?"":`${D}${x?`=${x}`:""}`}).filter(Boolean)];return A&&E.push("base64"),(E.length>0||p&&p!==igt)&&E.unshift(p),`data:${E.join(";")},${A?a.trim():a}${n?`#${n}`:""}`};function agt(t,e){if(e={defaultProtocol:"http:",normalizeProtocol:!0,forceHttp:!1,forceHttps:!1,stripAuthentication:!0,stripHash:!1,stripTextFragment:!0,stripWWW:!0,removeQueryParameters:[/^utm_\w+/i],removeTrailingSlash:!0,removeSingleSlash:!0,removeDirectoryIndex:!1,sortQueryParameters:!0,...e},t=t.trim(),/^data:/i.test(t))return ogt(t,e);if(/^view-source:/i.test(t))throw new Error("`view-source:` is not supported as it is a non-standard protocol");let r=t.startsWith("//");!r&&/^\.*\//.test(t)||(t=t.replace(/^(?!(?:\w+:)?\/\/)|^\/\//,e.defaultProtocol));let a=new URL(t);if(e.forceHttp&&e.forceHttps)throw new Error("The `forceHttp` and `forceHttps` options cannot be used together");if(e.forceHttp&&a.protocol==="https:"&&(a.protocol="http:"),e.forceHttps&&a.protocol==="http:"&&(a.protocol="https:"),e.stripAuthentication&&(a.username="",a.password=""),e.stripHash?a.hash="":e.stripTextFragment&&(a.hash=a.hash.replace(/#?:~:text.*?$/i,"")),a.pathname){let u=/\b[a-z][a-z\d+\-.]{1,50}:\/\//g,A=0,p="";for(;;){let E=u.exec(a.pathname);if(!E)break;let w=E[0],D=E.index,x=a.pathname.slice(A,D);p+=x.replace(/\/{2,}/g,"/"),p+=w,A=D+w.length}let h=a.pathname.slice(A,a.pathname.length);p+=h.replace(/\/{2,}/g,"/"),a.pathname=p}if(a.pathname)try{a.pathname=decodeURI(a.pathname)}catch{}if(e.removeDirectoryIndex===!0&&(e.removeDirectoryIndex=[/^index\.[a-z]+$/]),Array.isArray(e.removeDirectoryIndex)&&e.removeDirectoryIndex.length>0){let u=a.pathname.split("/"),A=u[u.length-1];$de(A,e.removeDirectoryIndex)&&(u=u.slice(0,-1),a.pathname=u.slice(1).join("/")+"/")}if(a.hostname&&(a.hostname=a.hostname.replace(/\.$/,""),e.stripWWW&&/^www\.(?!www\.)[a-z\-\d]{1,63}\.[a-z.\-\d]{2,63}$/.test(a.hostname)&&(a.hostname=a.hostname.replace(/^www\./,""))),Array.isArray(e.removeQueryParameters))for(let u of[...a.searchParams.keys()])$de(u,e.removeQueryParameters)&&a.searchParams.delete(u);if(e.removeQueryParameters===!0&&(a.search=""),e.sortQueryParameters){a.searchParams.sort();try{a.search=decodeURIComponent(a.search)}catch{}}e.removeTrailingSlash&&(a.pathname=a.pathname.replace(/\/$/,""));let n=t;return t=a.toString(),!e.removeSingleSlash&&a.pathname==="/"&&!n.endsWith("/")&&a.hash===""&&(t=t.replace(/\/$/,"")),(e.removeTrailingSlash||a.pathname==="/")&&a.hash===""&&e.removeSingleSlash&&(t=t.replace(/\/$/,"")),r&&!e.normalizeProtocol&&(t=t.replace(/^http:\/\//,"//")),e.stripProtocol&&(t=t.replace(/^(?:https?:)?\/\//,"")),t}var xH=(t,e=!1)=>{let r=/^(?:([a-z_][a-z0-9_-]{0,31})@|https?:\/\/)([\w\.\-@]+)[\/:]([\~,\.\w,\-,\_,\/]+?(?:\.git|\/)?)$/,o=n=>{let u=new Error(n);throw u.subject_url=t,u};(typeof t!="string"||!t.trim())&&o("Invalid url."),t.length>xH.MAX_INPUT_LENGTH&&o("Input exceeds maximum length. If needed, change the value of parseUrl.MAX_INPUT_LENGTH."),e&&(typeof e!="object"&&(e={stripHash:!1}),t=agt(t,e));let a=ngt.default(t);if(a.parse_failed){let n=a.href.match(r);n?(a.protocols=["ssh"],a.protocol="ssh",a.resource=n[2],a.host=n[2],a.user=n[1],a.pathname=`/${n[3]}`,a.parse_failed=!1):o("URL parsing failed.")}return a};xH.MAX_INPUT_LENGTH=2048;eme.exports=xH});var ime=_((q5t,nme)=>{"use strict";var lgt=bH();function rme(t){if(Array.isArray(t))return t.indexOf("ssh")!==-1||t.indexOf("rsync")!==-1;if(typeof t!="string")return!1;var e=lgt(t);if(t=t.substring(t.indexOf("://")+3),rme(e))return!0;var r=new RegExp(".([a-zA-Z\\d]+):(\\d+)/");return!t.match(r)&&t.indexOf("@"){"use strict";var cgt=tme(),sme=ime();function ugt(t){var e=cgt(t);return e.token="",e.password==="x-oauth-basic"?e.token=e.user:e.user==="x-token-auth"&&(e.token=e.password),sme(e.protocols)||e.protocols.length===0&&sme(t)?e.protocol="ssh":e.protocols.length?e.protocol=e.protocols[0]:(e.protocol="file",e.protocols=["file"]),e.href=e.href.replace(/\/$/,""),e}ome.exports=ugt});var cme=_((G5t,lme)=>{"use strict";var Agt=ame();function kH(t){if(typeof t!="string")throw new Error("The url must be a string.");var e=/^([a-z\d-]{1,39})\/([-\.\w]{1,100})$/i;e.test(t)&&(t="https://github.com/"+t);var r=Agt(t),o=r.resource.split("."),a=null;switch(r.toString=function(L){return kH.stringify(this,L)},r.source=o.length>2?o.slice(1-o.length).join("."):r.source=r.resource,r.git_suffix=/\.git$/.test(r.pathname),r.name=decodeURIComponent((r.pathname||r.href).replace(/(^\/)|(\/$)/g,"").replace(/\.git$/,"")),r.owner=decodeURIComponent(r.user),r.source){case"git.cloudforge.com":r.owner=r.user,r.organization=o[0],r.source="cloudforge.com";break;case"visualstudio.com":if(r.resource==="vs-ssh.visualstudio.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3],r.full_name=a[2]+"/"+a[3]);break}else{a=r.name.split("/"),a.length===2?(r.owner=a[1],r.name=a[1],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name);break}case"dev.azure.com":case"azure.com":if(r.resource==="ssh.dev.azure.com"){a=r.name.split("/"),a.length===4&&(r.organization=a[1],r.owner=a[2],r.name=a[3]);break}else{a=r.name.split("/"),a.length===5?(r.organization=a[0],r.owner=a[1],r.name=a[4],r.full_name="_git/"+r.name):a.length===3?(r.name=a[2],a[0]==="DefaultCollection"?(r.owner=a[2],r.organization=a[0],r.full_name=r.organization+"/_git/"+r.name):(r.owner=a[0],r.full_name=r.owner+"/_git/"+r.name)):a.length===4&&(r.organization=a[0],r.owner=a[1],r.name=a[3],r.full_name=r.organization+"/"+r.owner+"/_git/"+r.name),r.query&&r.query.path&&(r.filepath=r.query.path.replace(/^\/+/g,"")),r.query&&r.query.version&&(r.ref=r.query.version.replace(/^GB/,""));break}default:a=r.name.split("/");var n=a.length-1;if(a.length>=2){var u=a.indexOf("-",2),A=a.indexOf("blob",2),p=a.indexOf("tree",2),h=a.indexOf("commit",2),E=a.indexOf("src",2),w=a.indexOf("raw",2),D=a.indexOf("edit",2);n=u>0?u-1:A>0?A-1:p>0?p-1:h>0?h-1:E>0?E-1:w>0?w-1:D>0?D-1:n,r.owner=a.slice(0,n).join("/"),r.name=a[n],h&&(r.commit=a[n+2])}r.ref="",r.filepathtype="",r.filepath="";var x=a.length>n&&a[n+1]==="-"?n+1:n;a.length>x+2&&["raw","src","blob","tree","edit"].indexOf(a[x+1])>=0&&(r.filepathtype=a[x+1],r.ref=a[x+2],a.length>x+3&&(r.filepath=a.slice(x+3).join("/"))),r.organization=r.owner;break}r.full_name||(r.full_name=r.owner,r.name&&(r.full_name&&(r.full_name+="/"),r.full_name+=r.name)),r.owner.startsWith("scm/")&&(r.source="bitbucket-server",r.owner=r.owner.replace("scm/",""),r.organization=r.owner,r.full_name=r.owner+"/"+r.name);var C=/(projects|users)\/(.*?)\/repos\/(.*?)((\/.*$)|$)/,T=C.exec(r.pathname);return T!=null&&(r.source="bitbucket-server",T[1]==="users"?r.owner="~"+T[2]:r.owner=T[2],r.organization=r.owner,r.name=T[3],a=T[4].split("/"),a.length>1&&(["raw","browse"].indexOf(a[1])>=0?(r.filepathtype=a[1],a.length>2&&(r.filepath=a.slice(2).join("/"))):a[1]==="commits"&&a.length>2&&(r.commit=a[2])),r.full_name=r.owner+"/"+r.name,r.query.at?r.ref=r.query.at:r.ref=""),r}kH.stringify=function(t,e){e=e||(t.protocols&&t.protocols.length?t.protocols.join("+"):t.protocol);var r=t.port?":"+t.port:"",o=t.user||"git",a=t.git_suffix?".git":"";switch(e){case"ssh":return r?"ssh://"+o+"@"+t.resource+r+"/"+t.full_name+a:o+"@"+t.resource+":"+t.full_name+a;case"git+ssh":case"ssh+git":case"ftp":case"ftps":return e+"://"+o+"@"+t.resource+r+"/"+t.full_name+a;case"http":case"https":var n=t.token?fgt(t):t.user&&(t.protocols.includes("http")||t.protocols.includes("https"))?t.user+"@":"";return e+"://"+n+t.resource+r+"/"+pgt(t)+a;default:return t.href}};function fgt(t){switch(t.source){case"bitbucket.org":return"x-token-auth:"+t.token+"@";default:return t.token+"@"}}function pgt(t){switch(t.source){case"bitbucket-server":return"scm/"+t.full_name;default:return""+t.full_name}}lme.exports=kH});var Dme=_((B9t,vme)=>{var vgt=Cx(),Dgt=kS(),Pgt=jl(),Sgt=fy(),bgt=s_(),xgt=nE(),kgt=t2();function Qgt(t){return Pgt(t)?vgt(t,xgt):Sgt(t)?[t]:Dgt(bgt(kgt(t)))}vme.exports=Qgt});function Ngt(t,e){return e===1&&Tgt.has(t[0])}function q2(t){let e=Array.isArray(t)?t:(0,bme.default)(t);return e.map((o,a)=>Fgt.test(o)?`[${o}]`:Rgt.test(o)&&!Ngt(e,a)?`.${o}`:`[${JSON.stringify(o)}]`).join("").replace(/^\./,"")}function Lgt(t,e){let r=[];if(e.methodName!==null&&r.push(pe.pretty(t,e.methodName,pe.Type.CODE)),e.file!==null){let o=[];o.push(pe.pretty(t,e.file,pe.Type.PATH)),e.line!==null&&(o.push(pe.pretty(t,e.line,pe.Type.NUMBER)),e.column!==null&&o.push(pe.pretty(t,e.column,pe.Type.NUMBER))),r.push(`(${o.join(pe.pretty(t,":","grey"))})`)}return r.join(" ")}function Vk(t,{manifestUpdates:e,reportedErrors:r},{fix:o}={}){let a=new Map,n=new Map,u=[...r.keys()].map(A=>[A,new Map]);for(let[A,p]of[...u,...e]){let h=r.get(A)?.map(x=>({text:x,fixable:!1}))??[],E=!1,w=t.getWorkspaceByCwd(A),D=w.manifest.exportTo({});for(let[x,C]of p){if(C.size>1){let T=[...C].map(([L,U])=>{let J=pe.pretty(t.configuration,L,pe.Type.INSPECT),te=U.size>0?Lgt(t.configuration,U.values().next().value):null;return te!==null?` +${J} at ${te}`:` +${J}`}).join("");h.push({text:`Conflict detected in constraint targeting ${pe.pretty(t.configuration,x,pe.Type.CODE)}; conflicting values are:${T}`,fixable:!1})}else{let[[T]]=C,L=(0,Pme.default)(D,x);if(JSON.stringify(L)===JSON.stringify(T))continue;if(!o){let U=typeof L>"u"?`Missing field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,T,pe.Type.INSPECT)}`:typeof T>"u"?`Extraneous field ${pe.pretty(t.configuration,x,pe.Type.CODE)} currently set to ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`:`Invalid field ${pe.pretty(t.configuration,x,pe.Type.CODE)}; expected ${pe.pretty(t.configuration,T,pe.Type.INSPECT)}, found ${pe.pretty(t.configuration,L,pe.Type.INSPECT)}`;h.push({text:U,fixable:!0});continue}typeof T>"u"?(0,xme.default)(D,x):(0,Sme.default)(D,x,T),E=!0}E&&a.set(w,D)}h.length>0&&n.set(w,h)}return{changedWorkspaces:a,remainingErrors:n}}function kme(t,{configuration:e}){let r={children:[]};for(let[o,a]of t){let n=[];for(let A of a){let p=A.text.split(/\n/);A.fixable&&(p[0]=`${pe.pretty(e,"\u2699","gray")} ${p[0]}`),n.push({value:pe.tuple(pe.Type.NO_HINT,p[0]),children:p.slice(1).map(h=>({value:pe.tuple(pe.Type.NO_HINT,h)}))})}let u={value:pe.tuple(pe.Type.LOCATOR,o.anchoredLocator),children:qe.sortMap(n,A=>A.value[1])};r.children.push(u)}return r.children=qe.sortMap(r.children,o=>o.value[1]),r}var Pme,Sme,bme,xme,ZE,Fgt,Rgt,Tgt,j2=It(()=>{Ke();Pme=et(N2()),Sme=et(dH()),bme=et(Dme()),xme=et(EH()),ZE=class{constructor(e){this.indexedFields=e;this.items=[];this.indexes={};this.clear()}clear(){this.items=[];for(let e of this.indexedFields)this.indexes[e]=new Map}insert(e){this.items.push(e);for(let r of this.indexedFields){let o=Object.hasOwn(e,r)?e[r]:void 0;if(typeof o>"u")continue;qe.getArrayWithDefault(this.indexes[r],o).push(e)}return e}find(e){if(typeof e>"u")return this.items;let r=Object.entries(e);if(r.length===0)return this.items;let o=[],a;for(let[u,A]of r){let p=u,h=Object.hasOwn(this.indexes,p)?this.indexes[p]:void 0;if(typeof h>"u"){o.push([p,A]);continue}let E=new Set(h.get(A)??[]);if(E.size===0)return[];if(typeof a>"u")a=E;else for(let w of a)E.has(w)||a.delete(w);if(a.size===0)break}let n=[...a??[]];return o.length>0&&(n=n.filter(u=>{for(let[A,p]of o)if(!(typeof p<"u"?Object.hasOwn(u,A)&&u[A]===p:Object.hasOwn(u,A)===!1))return!1;return!0})),n}},Fgt=/^[0-9]+$/,Rgt=/^[a-zA-Z0-9_]+$/,Tgt=new Set(["scripts",..._t.allDependencies])});var Qme=_((N9t,GH)=>{var Ogt;(function(t){var e=function(){return{"append/2":[new t.type.Rule(new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("L")]),new t.type.Term("foldl",[new t.type.Term("append",[]),new t.type.Var("X"),new t.type.Term("[]",[]),new t.type.Var("L")]))],"append/3":[new t.type.Rule(new t.type.Term("append",[new t.type.Term("[]",[]),new t.type.Var("X"),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("append",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("append",[new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("S")]))],"member/2":[new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("_")])]),null),new t.type.Rule(new t.type.Term("member",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")])]),new t.type.Term("member",[new t.type.Var("X"),new t.type.Var("Xs")]))],"permutation/2":[new t.type.Rule(new t.type.Term("permutation",[new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("permutation",[new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("permutation",[new t.type.Var("T"),new t.type.Var("P")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("P")]),new t.type.Term("append",[new t.type.Var("X"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("Y")]),new t.type.Var("S")])])]))],"maplist/2":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("X")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("Xs")])]))],"maplist/3":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs")])]))],"maplist/4":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs")])]))],"maplist/5":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds")])]))],"maplist/6":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es")])]))],"maplist/7":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs")])]))],"maplist/8":[new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("A"),new t.type.Var("As")]),new t.type.Term(".",[new t.type.Var("B"),new t.type.Var("Bs")]),new t.type.Term(".",[new t.type.Var("C"),new t.type.Var("Cs")]),new t.type.Term(".",[new t.type.Var("D"),new t.type.Var("Ds")]),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Es")]),new t.type.Term(".",[new t.type.Var("F"),new t.type.Var("Fs")]),new t.type.Term(".",[new t.type.Var("G"),new t.type.Var("Gs")])]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P"),new t.type.Var("A"),new t.type.Var("B"),new t.type.Var("C"),new t.type.Var("D"),new t.type.Var("E"),new t.type.Var("F"),new t.type.Var("G")]),new t.type.Term("maplist",[new t.type.Var("P"),new t.type.Var("As"),new t.type.Var("Bs"),new t.type.Var("Cs"),new t.type.Var("Ds"),new t.type.Var("Es"),new t.type.Var("Fs"),new t.type.Var("Gs")])]))],"include/3":[new t.type.Rule(new t.type.Term("include",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("include",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("A")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("A"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("F"),new t.type.Var("B")]),new t.type.Term(",",[new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("F")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("S")])]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("L"),new t.type.Var("S")])]),new t.type.Term("include",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("S")])])])])]))],"exclude/3":[new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Term("[]",[])]),null),new t.type.Rule(new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("exclude",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("E")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term("[]",[])]),new t.type.Var("Q")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("R"),new t.type.Var("Q")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("!",[]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("E")])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("E")])])])])])])]))],"foldl/4":[new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("_"),new t.type.Term("[]",[]),new t.type.Var("I"),new t.type.Var("I")]),null),new t.type.Rule(new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Var("T")]),new t.type.Var("I"),new t.type.Var("R")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P"),new t.type.Var("L")]),new t.type.Term(",",[new t.type.Term("append",[new t.type.Var("L"),new t.type.Term(".",[new t.type.Var("I"),new t.type.Term(".",[new t.type.Var("H"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])])])]),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("=..",[new t.type.Var("P2"),new t.type.Var("L2")]),new t.type.Term(",",[new t.type.Term("call",[new t.type.Var("P2")]),new t.type.Term("foldl",[new t.type.Var("P"),new t.type.Var("T"),new t.type.Var("X"),new t.type.Var("R")])])])])]))],"select/3":[new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("E"),new t.type.Var("Xs")]),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("select",[new t.type.Var("E"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term("select",[new t.type.Var("E"),new t.type.Var("Xs"),new t.type.Var("Ys")]))],"sum_list/2":[new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term("[]",[]),new t.type.Num(0,!1)]),null),new t.type.Rule(new t.type.Term("sum_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("sum_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("+",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"max_list/2":[new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("max_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("max_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"min_list/2":[new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("min_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("min_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term(";",[new t.type.Term(",",[new t.type.Term("=<",[new t.type.Var("X"),new t.type.Var("Y")]),new t.type.Term(",",[new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("X")]),new t.type.Term("!",[])])]),new t.type.Term("=",[new t.type.Var("S"),new t.type.Var("Y")])])]))],"prod_list/2":[new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term("[]",[]),new t.type.Num(1,!1)]),null),new t.type.Rule(new t.type.Term("prod_list",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("S")]),new t.type.Term(",",[new t.type.Term("prod_list",[new t.type.Var("Xs"),new t.type.Var("Y")]),new t.type.Term("is",[new t.type.Var("S"),new t.type.Term("*",[new t.type.Var("X"),new t.type.Var("Y")])])]))],"last/2":[new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("X"),new t.type.Term("[]",[])]),new t.type.Var("X")]),null),new t.type.Rule(new t.type.Term("last",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("Xs")]),new t.type.Var("X")]),new t.type.Term("last",[new t.type.Var("Xs"),new t.type.Var("X")]))],"prefix/2":[new t.type.Rule(new t.type.Term("prefix",[new t.type.Var("Part"),new t.type.Var("Whole")]),new t.type.Term("append",[new t.type.Var("Part"),new t.type.Var("_"),new t.type.Var("Whole")]))],"nth0/3":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth1/3":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("_")]),new t.type.Term("!",[])])])]))],"nth0/4":[new t.type.Rule(new t.type.Term("nth0",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">=",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(0,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth1/4":[new t.type.Rule(new t.type.Term("nth1",[new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term(";",[new t.type.Term("->",[new t.type.Term("var",[new t.type.Var("X")]),new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")])]),new t.type.Term(",",[new t.type.Term(">",[new t.type.Var("X"),new t.type.Num(0,!1)]),new t.type.Term(",",[new t.type.Term("nth",[new t.type.Num(1,!1),new t.type.Var("X"),new t.type.Var("Y"),new t.type.Var("Z"),new t.type.Var("W")]),new t.type.Term("!",[])])])]))],"nth/5":[new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("N"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("X"),new t.type.Var("Xs")]),null),new t.type.Rule(new t.type.Term("nth",[new t.type.Var("N"),new t.type.Var("O"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Xs")]),new t.type.Var("Y"),new t.type.Term(".",[new t.type.Var("X"),new t.type.Var("Ys")])]),new t.type.Term(",",[new t.type.Term("is",[new t.type.Var("M"),new t.type.Term("+",[new t.type.Var("N"),new t.type.Num(1,!1)])]),new t.type.Term("nth",[new t.type.Var("M"),new t.type.Var("O"),new t.type.Var("Xs"),new t.type.Var("Y"),new t.type.Var("Ys")])]))],"length/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(!t.type.is_variable(A)&&!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(t.type.is_integer(A)&&A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else{var p=new t.type.Term("length",[u,new t.type.Num(0,!1),A]);t.type.is_integer(A)&&(p=new t.type.Term(",",[p,new t.type.Term("!",[])])),o.prepend([new t.type.State(a.goal.replace(p),a.substitution,a)])}},"length/3":[new t.type.Rule(new t.type.Term("length",[new t.type.Term("[]",[]),new t.type.Var("N"),new t.type.Var("N")]),null),new t.type.Rule(new t.type.Term("length",[new t.type.Term(".",[new t.type.Var("_"),new t.type.Var("X")]),new t.type.Var("A"),new t.type.Var("N")]),new t.type.Term(",",[new t.type.Term("succ",[new t.type.Var("A"),new t.type.Var("B")]),new t.type.Term("length",[new t.type.Var("X"),new t.type.Var("B"),new t.type.Var("N")])]))],"replicate/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_integer(A))o.throw_error(t.error.type("integer",A,n.indicator));else if(A.value<0)o.throw_error(t.error.domain("not_less_than_zero",A,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=new t.type.Term("[]"),E=0;E0;w--)E[w].equals(E[w-1])&&E.splice(w,1);for(var D=new t.type.Term("[]"),w=E.length-1;w>=0;w--)D=new t.type.Term(".",[E[w],D]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[D,A])),a.substitution,a)])}}},"msort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h=u;h.indicator==="./2";)p.push(h.args[0]),h=h.args[1];if(t.type.is_variable(h))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(h))o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=p.sort(t.compare),w=new t.type.Term("[]"),D=E.length-1;D>=0;D--)w=new t.type.Term(".",[E[D],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,A])),a.substitution,a)])}}},"keysort/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else{for(var p=[],h,E=u;E.indicator==="./2";){if(h=E.args[0],t.type.is_variable(h)){o.throw_error(t.error.instantiation(n.indicator));return}else if(!t.type.is_term(h)||h.indicator!=="-/2"){o.throw_error(t.error.type("pair",h,n.indicator));return}h.args[0].pair=h.args[1],p.push(h.args[0]),E=E.args[1]}if(t.type.is_variable(E))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_empty_list(E))o.throw_error(t.error.type("list",u,n.indicator));else{for(var w=p.sort(t.compare),D=new t.type.Term("[]"),x=w.length-1;x>=0;x--)D=new t.type.Term(".",[new t.type.Term("-",[w[x],w[x].pair]),D]),delete w[x].pair;o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[D,A])),a.substitution,a)])}}},"take/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],w=A;h>0&&w.indicator==="./2";)E.push(w.args[0]),w=w.args[1],h--;if(h===0){for(var D=new t.type.Term("[]"),h=E.length-1;h>=0;h--)D=new t.type.Term(".",[E[h],D]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[D,p])),a.substitution,a)])}}},"drop/3":function(o,a,n){var u=n.args[0],A=n.args[1],p=n.args[2];if(t.type.is_variable(A)||t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!t.type.is_integer(u))o.throw_error(t.error.type("integer",u,n.indicator));else if(!t.type.is_variable(p)&&!t.type.is_list(p))o.throw_error(t.error.type("list",p,n.indicator));else{for(var h=u.value,E=[],w=A;h>0&&w.indicator==="./2";)E.push(w.args[0]),w=w.args[1],h--;h===0&&o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p])),a.substitution,a)])}},"reverse/2":function(o,a,n){var u=n.args[0],A=n.args[1],p=t.type.is_instantiated_list(u),h=t.type.is_instantiated_list(A);if(t.type.is_variable(u)&&t.type.is_variable(A))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_variable(u)&&!t.type.is_fully_list(u))o.throw_error(t.error.type("list",u,n.indicator));else if(!t.type.is_variable(A)&&!t.type.is_fully_list(A))o.throw_error(t.error.type("list",A,n.indicator));else if(!p&&!h)o.throw_error(t.error.instantiation(n.indicator));else{for(var E=p?u:A,w=new t.type.Term("[]",[]);E.indicator==="./2";)w=new t.type.Term(".",[E.args[0],w]),E=E.args[1];o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[w,p?A:u])),a.substitution,a)])}},"list_to_set/2":function(o,a,n){var u=n.args[0],A=n.args[1];if(t.type.is_variable(u))o.throw_error(t.error.instantiation(n.indicator));else{for(var p=u,h=[];p.indicator==="./2";)h.push(p.args[0]),p=p.args[1];if(t.type.is_variable(p))o.throw_error(t.error.instantiation(n.indicator));else if(!t.type.is_term(p)||p.indicator!=="[]/0")o.throw_error(t.error.type("list",u,n.indicator));else{for(var E=[],w=new t.type.Term("[]",[]),D,x=0;x=0;x--)w=new t.type.Term(".",[E[x],w]);o.prepend([new t.type.State(a.goal.replace(new t.type.Term("=",[A,w])),a.substitution,a)])}}}}},r=["append/2","append/3","member/2","permutation/2","maplist/2","maplist/3","maplist/4","maplist/5","maplist/6","maplist/7","maplist/8","include/3","exclude/3","foldl/4","sum_list/2","max_list/2","min_list/2","prod_list/2","last/2","prefix/2","nth0/3","nth1/3","nth0/4","nth1/4","length/2","replicate/3","select/3","sort/2","msort/2","keysort/2","take/3","drop/3","reverse/2","list_to_set/2"];typeof GH<"u"?GH.exports=function(o){t=o,new t.type.Module("lists",e(),r)}:new t.type.Module("lists",e(),r)})(Ogt)});var Yme=_(Vr=>{"use strict";var Xg=process.platform==="win32",WH="aes-256-cbc",Mgt="sha256",Tme="The current environment doesn't support interactive reading from TTY.",Xn=ve("fs"),Fme=process.binding("tty_wrap").TTY,KH=ve("child_process"),Nh=ve("path"),VH={prompt:"> ",hideEchoBack:!1,mask:"*",limit:[],limitMessage:"Input another, please.$<( [)limit(])>",defaultInput:"",trueValue:[],falseValue:[],caseSensitive:!1,keepWhitespace:!1,encoding:"utf8",bufferSize:1024,print:void 0,history:!0,cd:!1,phContent:void 0,preCheck:void 0},Kf="none",iu,eC,Rme=!1,Th,zk,YH,Ugt=0,$H="",zg=[],Xk,Nme=!1,JH=!1,G2=!1;function Lme(t){function e(r){return r.replace(/[^\w\u0080-\uFFFF]/g,function(o){return"#"+o.charCodeAt(0)+";"})}return zk.concat(function(r){var o=[];return Object.keys(r).forEach(function(a){r[a]==="boolean"?t[a]&&o.push("--"+a):r[a]==="string"&&t[a]&&o.push("--"+a,e(t[a]))}),o}({display:"string",displayOnly:"boolean",keyIn:"boolean",hideEchoBack:"boolean",mask:"string",limit:"string",caseSensitive:"boolean"}))}function _gt(t,e){function r(U){var J,te="",le;for(YH=YH||ve("os").tmpdir();;){J=Nh.join(YH,U+te);try{le=Xn.openSync(J,"wx")}catch(ce){if(ce.code==="EEXIST"){te++;continue}else throw ce}Xn.closeSync(le);break}return J}var o,a,n,u={},A,p,h=r("readline-sync.stdout"),E=r("readline-sync.stderr"),w=r("readline-sync.exit"),D=r("readline-sync.done"),x=ve("crypto"),C,T,L;C=x.createHash(Mgt),C.update(""+process.pid+Ugt+++Math.random()),L=C.digest("hex"),T=x.createDecipher(WH,L),o=Lme(t),Xg?(a=process.env.ComSpec||"cmd.exe",process.env.Q='"',n=["/V:ON","/S","/C","(%Q%"+a+"%Q% /V:ON /S /C %Q%%Q%"+Th+"%Q%"+o.map(function(U){return" %Q%"+U+"%Q%"}).join("")+" & (echo !ERRORLEVEL!)>%Q%"+w+"%Q%%Q%) 2>%Q%"+E+"%Q% |%Q%"+process.execPath+"%Q% %Q%"+__dirname+"\\encrypt.js%Q% %Q%"+WH+"%Q% %Q%"+L+"%Q% >%Q%"+h+"%Q% & (echo 1)>%Q%"+D+"%Q%"]):(a="/bin/sh",n=["-c",'("'+Th+'"'+o.map(function(U){return" '"+U.replace(/'/g,"'\\''")+"'"}).join("")+'; echo $?>"'+w+'") 2>"'+E+'" |"'+process.execPath+'" "'+__dirname+'/encrypt.js" "'+WH+'" "'+L+'" >"'+h+'"; echo 1 >"'+D+'"']),G2&&G2("_execFileSync",o);try{KH.spawn(a,n,e)}catch(U){u.error=new Error(U.message),u.error.method="_execFileSync - spawn",u.error.program=a,u.error.args=n}for(;Xn.readFileSync(D,{encoding:t.encoding}).trim()!=="1";);return(A=Xn.readFileSync(w,{encoding:t.encoding}).trim())==="0"?u.input=T.update(Xn.readFileSync(h,{encoding:"binary"}),"hex",t.encoding)+T.final(t.encoding):(p=Xn.readFileSync(E,{encoding:t.encoding}).trim(),u.error=new Error(Tme+(p?` +`+p:"")),u.error.method="_execFileSync",u.error.program=a,u.error.args=n,u.error.extMessage=p,u.error.exitCode=+A),Xn.unlinkSync(h),Xn.unlinkSync(E),Xn.unlinkSync(w),Xn.unlinkSync(D),u}function Hgt(t){var e,r={},o,a={env:process.env,encoding:t.encoding};if(Th||(Xg?process.env.PSModulePath?(Th="powershell.exe",zk=["-ExecutionPolicy","Bypass","-File",__dirname+"\\read.ps1"]):(Th="cscript.exe",zk=["//nologo",__dirname+"\\read.cs.js"]):(Th="/bin/sh",zk=[__dirname+"/read.sh"])),Xg&&!process.env.PSModulePath&&(a.stdio=[process.stdin]),KH.execFileSync){e=Lme(t),G2&&G2("execFileSync",e);try{r.input=KH.execFileSync(Th,e,a)}catch(n){o=n.stderr?(n.stderr+"").trim():"",r.error=new Error(Tme+(o?` +`+o:"")),r.error.method="execFileSync",r.error.program=Th,r.error.args=e,r.error.extMessage=o,r.error.exitCode=n.status,r.error.code=n.code,r.error.signal=n.signal}}else r=_gt(t,a);return r.error||(r.input=r.input.replace(/^\s*'|'\s*$/g,""),t.display=""),r}function zH(t){var e="",r=t.display,o=!t.display&&t.keyIn&&t.hideEchoBack&&!t.mask;function a(){var n=Hgt(t);if(n.error)throw n.error;return n.input}return JH&&JH(t),function(){var n,u,A;function p(){return n||(n=process.binding("fs"),u=process.binding("constants")),n}if(typeof Kf=="string")if(Kf=null,Xg){if(A=function(h){var E=h.replace(/^\D+/,"").split("."),w=0;return(E[0]=+E[0])&&(w+=E[0]*1e4),(E[1]=+E[1])&&(w+=E[1]*100),(E[2]=+E[2])&&(w+=E[2]),w}(process.version),!(A>=20302&&A<40204||A>=5e4&&A<50100||A>=50600&&A<60200)&&process.stdin.isTTY)process.stdin.pause(),Kf=process.stdin.fd,eC=process.stdin._handle;else try{Kf=p().open("CONIN$",u.O_RDWR,parseInt("0666",8)),eC=new Fme(Kf,!0)}catch{}if(process.stdout.isTTY)iu=process.stdout.fd;else{try{iu=Xn.openSync("\\\\.\\CON","w")}catch{}if(typeof iu!="number")try{iu=p().open("CONOUT$",u.O_RDWR,parseInt("0666",8))}catch{}}}else{if(process.stdin.isTTY){process.stdin.pause();try{Kf=Xn.openSync("/dev/tty","r"),eC=process.stdin._handle}catch{}}else try{Kf=Xn.openSync("/dev/tty","r"),eC=new Fme(Kf,!1)}catch{}if(process.stdout.isTTY)iu=process.stdout.fd;else try{iu=Xn.openSync("/dev/tty","w")}catch{}}}(),function(){var n,u,A=!t.hideEchoBack&&!t.keyIn,p,h,E,w,D;Xk="";function x(C){return C===Rme?!0:eC.setRawMode(C)!==0?!1:(Rme=C,!0)}if(Nme||!eC||typeof iu!="number"&&(t.display||!A)){e=a();return}if(t.display&&(Xn.writeSync(iu,t.display),t.display=""),!t.displayOnly){if(!x(!A)){e=a();return}for(h=t.keyIn?1:t.bufferSize,p=Buffer.allocUnsafe&&Buffer.alloc?Buffer.alloc(h):new Buffer(h),t.keyIn&&t.limit&&(u=new RegExp("[^"+t.limit+"]","g"+(t.caseSensitive?"":"i")));;){E=0;try{E=Xn.readSync(Kf,p,0,h)}catch(C){if(C.code!=="EOF"){x(!1),e+=a();return}}if(E>0?(w=p.toString(t.encoding,0,E),Xk+=w):(w=` +`,Xk+="\0"),w&&typeof(D=(w.match(/^(.*?)[\r\n]/)||[])[1])=="string"&&(w=D,n=!0),w&&(w=w.replace(/[\x00-\x08\x0b\x0c\x0e-\x1f\x7f]/g,"")),w&&u&&(w=w.replace(u,"")),w&&(A||(t.hideEchoBack?t.mask&&Xn.writeSync(iu,new Array(w.length+1).join(t.mask)):Xn.writeSync(iu,w)),e+=w),!t.keyIn&&n||t.keyIn&&e.length>=h)break}!A&&!o&&Xn.writeSync(iu,` +`),x(!1)}}(),t.print&&!o&&t.print(r+(t.displayOnly?"":(t.hideEchoBack?new Array(e.length+1).join(t.mask):e)+` +`),t.encoding),t.displayOnly?"":$H=t.keepWhitespace||t.keyIn?e:e.trim()}function qgt(t,e){var r=[];function o(a){a!=null&&(Array.isArray(a)?a.forEach(o):(!e||e(a))&&r.push(a))}return o(t),r}function e6(t){return t.replace(/[\x00-\x7f]/g,function(e){return"\\x"+("00"+e.charCodeAt().toString(16)).substr(-2)})}function xs(){var t=Array.prototype.slice.call(arguments),e,r;return t.length&&typeof t[0]=="boolean"&&(r=t.shift(),r&&(e=Object.keys(VH),t.unshift(VH))),t.reduce(function(o,a){return a==null||(a.hasOwnProperty("noEchoBack")&&!a.hasOwnProperty("hideEchoBack")&&(a.hideEchoBack=a.noEchoBack,delete a.noEchoBack),a.hasOwnProperty("noTrim")&&!a.hasOwnProperty("keepWhitespace")&&(a.keepWhitespace=a.noTrim,delete a.noTrim),r||(e=Object.keys(a)),e.forEach(function(n){var u;if(a.hasOwnProperty(n))switch(u=a[n],n){case"mask":case"limitMessage":case"defaultInput":case"encoding":u=u!=null?u+"":"",u&&n!=="limitMessage"&&(u=u.replace(/[\r\n]/g,"")),o[n]=u;break;case"bufferSize":!isNaN(u=parseInt(u,10))&&typeof u=="number"&&(o[n]=u);break;case"displayOnly":case"keyIn":case"hideEchoBack":case"caseSensitive":case"keepWhitespace":case"history":case"cd":o[n]=!!u;break;case"limit":case"trueValue":case"falseValue":o[n]=qgt(u,function(A){var p=typeof A;return p==="string"||p==="number"||p==="function"||A instanceof RegExp}).map(function(A){return typeof A=="string"?A.replace(/[\r\n]/g,""):A});break;case"print":case"phContent":case"preCheck":o[n]=typeof u=="function"?u:void 0;break;case"prompt":case"display":o[n]=u??"";break}})),o},{})}function XH(t,e,r){return e.some(function(o){var a=typeof o;return a==="string"?r?t===o:t.toLowerCase()===o.toLowerCase():a==="number"?parseFloat(t)===o:a==="function"?o(t):o instanceof RegExp?o.test(t):!1})}function t6(t,e){var r=Nh.normalize(Xg?(process.env.HOMEDRIVE||"")+(process.env.HOMEPATH||""):process.env.HOME||"").replace(/[\/\\]+$/,"");return t=Nh.normalize(t),e?t.replace(/^~(?=\/|\\|$)/,r):t.replace(new RegExp("^"+e6(r)+"(?=\\/|\\\\|$)",Xg?"i":""),"~")}function tC(t,e){var r="(?:\\(([\\s\\S]*?)\\))?(\\w+|.-.)(?:\\(([\\s\\S]*?)\\))?",o=new RegExp("(\\$)?(\\$<"+r+">)","g"),a=new RegExp("(\\$)?(\\$\\{"+r+"\\})","g");function n(u,A,p,h,E,w){var D;return A||typeof(D=e(E))!="string"?p:D?(h||"")+D+(w||""):""}return t.replace(o,n).replace(a,n)}function Ome(t,e,r){var o,a=[],n=-1,u=0,A="",p;function h(E,w){return w.length>3?(E.push(w[0]+"..."+w[w.length-1]),p=!0):w.length&&(E=E.concat(w)),E}return o=t.reduce(function(E,w){return E.concat((w+"").split(""))},[]).reduce(function(E,w){var D,x;return e||(w=w.toLowerCase()),D=/^\d$/.test(w)?1:/^[A-Z]$/.test(w)?2:/^[a-z]$/.test(w)?3:0,r&&D===0?A+=w:(x=w.charCodeAt(0),D&&D===n&&x===u+1?a.push(w):(E=h(E,a),a=[w],n=D),u=x),E},[]),o=h(o,a),A&&(o.push(A),p=!0),{values:o,suppressed:p}}function Mme(t,e){return t.join(t.length>2?", ":e?" / ":"/")}function Ume(t,e){var r,o,a={},n;if(e.phContent&&(r=e.phContent(t,e)),typeof r!="string")switch(t){case"hideEchoBack":case"mask":case"defaultInput":case"caseSensitive":case"keepWhitespace":case"encoding":case"bufferSize":case"history":case"cd":r=e.hasOwnProperty(t)?typeof e[t]=="boolean"?e[t]?"on":"off":e[t]+"":"";break;case"limit":case"trueValue":case"falseValue":o=e[e.hasOwnProperty(t+"Src")?t+"Src":t],e.keyIn?(a=Ome(o,e.caseSensitive),o=a.values):o=o.filter(function(u){var A=typeof u;return A==="string"||A==="number"}),r=Mme(o,a.suppressed);break;case"limitCount":case"limitCountNotZero":r=e[e.hasOwnProperty("limitSrc")?"limitSrc":"limit"].length,r=r||t!=="limitCountNotZero"?r+"":"";break;case"lastInput":r=$H;break;case"cwd":case"CWD":case"cwdHome":r=process.cwd(),t==="CWD"?r=Nh.basename(r):t==="cwdHome"&&(r=t6(r));break;case"date":case"time":case"localeDate":case"localeTime":r=new Date()["to"+t.replace(/^./,function(u){return u.toUpperCase()})+"String"]();break;default:typeof(n=(t.match(/^history_m(\d+)$/)||[])[1])=="string"&&(r=zg[zg.length-n]||"")}return r}function _me(t){var e=/^(.)-(.)$/.exec(t),r="",o,a,n,u;if(!e)return null;for(o=e[1].charCodeAt(0),a=e[2].charCodeAt(0),u=o +And the length must be: $`,trueValue:null,falseValue:null,caseSensitive:!0},e,{history:!1,cd:!1,phContent:function(x){return x==="charlist"?r.text:x==="length"?o+"..."+a:null}}),u,A,p,h,E,w,D;for(e=e||{},u=tC(e.charlist?e.charlist+"":"$",_me),(isNaN(o=parseInt(e.min,10))||typeof o!="number")&&(o=12),(isNaN(a=parseInt(e.max,10))||typeof a!="number")&&(a=24),h=new RegExp("^["+e6(u)+"]{"+o+","+a+"}$"),r=Ome([u],n.caseSensitive,!0),r.text=Mme(r.values,r.suppressed),A=e.confirmMessage!=null?e.confirmMessage:"Reinput a same one to confirm it: ",p=e.unmatchMessage!=null?e.unmatchMessage:"It differs from first one. Hit only the Enter key if you want to retry from first one.",t==null&&(t="Input new password: "),E=n.limitMessage;!D;)n.limit=h,n.limitMessage=E,w=Vr.question(t,n),n.limit=[w,""],n.limitMessage=p,D=Vr.question(A,n);return w};function jme(t,e,r){var o;function a(n){return o=r(n),!isNaN(o)&&typeof o=="number"}return Vr.question(t,xs({limitMessage:"Input valid number, please."},e,{limit:a,cd:!1})),o}Vr.questionInt=function(t,e){return jme(t,e,function(r){return parseInt(r,10)})};Vr.questionFloat=function(t,e){return jme(t,e,parseFloat)};Vr.questionPath=function(t,e){var r,o="",a=xs({hideEchoBack:!1,limitMessage:`$Input valid path, please.$<( Min:)min>$<( Max:)max>`,history:!0,cd:!0},e,{keepWhitespace:!1,limit:function(n){var u,A,p;n=t6(n,!0),o="";function h(E){E.split(/\/|\\/).reduce(function(w,D){var x=Nh.resolve(w+=D+Nh.sep);if(!Xn.existsSync(x))Xn.mkdirSync(x);else if(!Xn.statSync(x).isDirectory())throw new Error("Non directory already exists: "+x);return w},"")}try{if(u=Xn.existsSync(n),r=u?Xn.realpathSync(n):Nh.resolve(n),!e.hasOwnProperty("exists")&&!u||typeof e.exists=="boolean"&&e.exists!==u)return o=(u?"Already exists":"No such file or directory")+": "+r,!1;if(!u&&e.create&&(e.isDirectory?h(r):(h(Nh.dirname(r)),Xn.closeSync(Xn.openSync(r,"w"))),r=Xn.realpathSync(r)),u&&(e.min||e.max||e.isFile||e.isDirectory)){if(A=Xn.statSync(r),e.isFile&&!A.isFile())return o="Not file: "+r,!1;if(e.isDirectory&&!A.isDirectory())return o="Not directory: "+r,!1;if(e.min&&A.size<+e.min||e.max&&A.size>+e.max)return o="Size "+A.size+" is out of range: "+r,!1}if(typeof e.validate=="function"&&(p=e.validate(r))!==!0)return typeof p=="string"&&(o=p),!1}catch(E){return o=E+"",!1}return!0},phContent:function(n){return n==="error"?o:n!=="min"&&n!=="max"?null:e.hasOwnProperty(n)?e[n]+"":""}});return e=e||{},t==null&&(t='Input path (you can "cd" and "pwd"): '),Vr.question(t,a),r};function Gme(t,e){var r={},o={};return typeof t=="object"?(Object.keys(t).forEach(function(a){typeof t[a]=="function"&&(o[e.caseSensitive?a:a.toLowerCase()]=t[a])}),r.preCheck=function(a){var n;return r.args=ZH(a),n=r.args[0]||"",e.caseSensitive||(n=n.toLowerCase()),r.hRes=n!=="_"&&o.hasOwnProperty(n)?o[n].apply(a,r.args.slice(1)):o.hasOwnProperty("_")?o._.apply(a,r.args):null,{res:a,forceNext:!1}},o.hasOwnProperty("_")||(r.limit=function(){var a=r.args[0]||"";return e.caseSensitive||(a=a.toLowerCase()),o.hasOwnProperty(a)})):r.preCheck=function(a){return r.args=ZH(a),r.hRes=typeof t=="function"?t.apply(a,r.args):!0,{res:a,forceNext:!1}},r}Vr.promptCL=function(t,e){var r=xs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Gme(t,r);return r.limit=o.limit,r.preCheck=o.preCheck,Vr.prompt(r),o.args};Vr.promptLoop=function(t,e){for(var r=xs({hideEchoBack:!1,trueValue:null,falseValue:null,caseSensitive:!1,history:!0},e);!t(Vr.prompt(r)););};Vr.promptCLLoop=function(t,e){var r=xs({hideEchoBack:!1,limitMessage:"Requested command is not available.",caseSensitive:!1,history:!0},e),o=Gme(t,r);for(r.limit=o.limit,r.preCheck=o.preCheck;Vr.prompt(r),!o.hRes;);};Vr.promptSimShell=function(t){return Vr.prompt(xs({hideEchoBack:!1,history:!0},t,{prompt:function(){return Xg?"$>":(process.env.USER||"")+(process.env.HOSTNAME?"@"+process.env.HOSTNAME.replace(/\..*$/,""):"")+":$$ "}()}))};function Wme(t,e,r){var o;return t==null&&(t="Are you sure? "),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s*:?\s*$/,"")+" [y/n]: "),o=Vr.keyIn(t,xs(e,{hideEchoBack:!1,limit:r,trueValue:"y",falseValue:"n",caseSensitive:!1})),typeof o=="boolean"?o:""}Vr.keyInYN=function(t,e){return Wme(t,e)};Vr.keyInYNStrict=function(t,e){return Wme(t,e,"yn")};Vr.keyInPause=function(t,e){t==null&&(t="Continue..."),(!e||e.guide!==!1)&&(t+="")&&(t=t.replace(/\s+$/,"")+" (Hit any key)"),Vr.keyIn(t,xs({limit:null},e,{hideEchoBack:!0,mask:""}))};Vr.keyInSelect=function(t,e,r){var o=xs({hideEchoBack:!1},r,{trueValue:null,falseValue:null,caseSensitive:!1,phContent:function(p){return p==="itemsCount"?t.length+"":p==="firstItem"?(t[0]+"").trim():p==="lastItem"?(t[t.length-1]+"").trim():null}}),a="",n={},u=49,A=` +`;if(!Array.isArray(t)||!t.length||t.length>35)throw"`items` must be Array (max length: 35).";return t.forEach(function(p,h){var E=String.fromCharCode(u);a+=E,n[E]=h,A+="["+E+"] "+(p+"").trim()+` +`,u=u===57?97:u+1}),(!r||r.cancel!==!1)&&(a+="0",n[0]=-1,A+="[0] "+(r&&r.cancel!=null&&typeof r.cancel!="boolean"?(r.cancel+"").trim():"CANCEL")+` +`),o.limit=a,A+=` +`,e==null&&(e="Choose one from list: "),(e+="")&&((!r||r.guide!==!1)&&(e=e.replace(/\s*:?\s*$/,"")+" [$]: "),A+=e),n[Vr.keyIn(A,o).toLowerCase()]};Vr.getRawInput=function(){return Xk};function W2(t,e){var r;return e.length&&(r={},r[t]=e[0]),Vr.setDefaultOptions(r)[t]}Vr.setPrint=function(){return W2("print",arguments)};Vr.setPrompt=function(){return W2("prompt",arguments)};Vr.setEncoding=function(){return W2("encoding",arguments)};Vr.setMask=function(){return W2("mask",arguments)};Vr.setBufferSize=function(){return W2("bufferSize",arguments)}});var r6=_((O9t,El)=>{(function(){var t={major:0,minor:2,patch:66,status:"beta"};tau_file_system={files:{},open:function(I,S,y){var R=tau_file_system.files[I];if(!R){if(y==="read")return null;R={path:I,text:"",type:S,get:function(z,X){return X===this.text.length||X>this.text.length?"end_of_file":this.text.substring(X,X+z)},put:function(z,X){return X==="end_of_file"?(this.text+=z,!0):X==="past_end_of_file"?null:(this.text=this.text.substring(0,X)+z+this.text.substring(X+z.length),!0)},get_byte:function(z){if(z==="end_of_stream")return-1;var X=Math.floor(z/2);if(this.text.length<=X)return-1;var $=n(this.text[Math.floor(z/2)],0);return z%2===0?$&255:$/256>>>0},put_byte:function(z,X){var $=X==="end_of_stream"?this.text.length:Math.floor(X/2);if(this.text.length<$)return null;var se=this.text.length===$?-1:n(this.text[Math.floor(X/2)],0);return X%2===0?(se=se/256>>>0,se=(se&255)<<8|z&255):(se=se&255,se=(z&255)<<8|se&255),this.text.length===$?this.text+=u(se):this.text=this.text.substring(0,$)+u(se)+this.text.substring($+1),!0},flush:function(){return!0},close:function(){var z=tau_file_system.files[this.path];return z?!0:null}},tau_file_system.files[I]=R}return y==="write"&&(R.text=""),R}},tau_user_input={buffer:"",get:function(I,S){for(var y;tau_user_input.buffer.length\?\@\^\~\\]+|'(?:[^']*?(?:\\(?:x?\d+)?\\)*(?:'')*(?:\\')*)*')/,number:/^(?:0o[0-7]+|0x[0-9a-fA-F]+|0b[01]+|0'(?:''|\\[abfnrtv\\'"`]|\\x?\d+\\|[^\\])|\d+(?:\.\d+(?:[eE][+-]?\d+)?)?)/,string:/^(?:"([^"]|""|\\")*"|`([^`]|``|\\`)*`)/,l_brace:/^(?:\[)/,r_brace:/^(?:\])/,l_bracket:/^(?:\{)/,r_bracket:/^(?:\})/,bar:/^(?:\|)/,l_paren:/^(?:\()/,r_paren:/^(?:\))/};function L(I,S){return I.get_flag("char_conversion").id==="on"?S.replace(/./g,function(y){return I.get_char_conversion(y)}):S}function U(I){this.thread=I,this.text="",this.tokens=[]}U.prototype.set_last_tokens=function(I){return this.tokens=I},U.prototype.new_text=function(I){this.text=I,this.tokens=[]},U.prototype.get_tokens=function(I){var S,y=0,R=0,z=0,X=[],$=!1;if(I){var se=this.tokens[I-1];y=se.len,S=L(this.thread,this.text.substr(se.len)),R=se.line,z=se.start}else S=this.text;if(/^\s*$/.test(S))return null;for(;S!=="";){var xe=[],Fe=!1;if(/^\n/.exec(S)!==null){R++,z=0,y++,S=S.replace(/\n/,""),$=!0;continue}for(var lt in T)if(T.hasOwnProperty(lt)){var Et=T[lt].exec(S);Et&&xe.push({value:Et[0],name:lt,matches:Et})}if(!xe.length)return this.set_last_tokens([{value:S,matches:[],name:"lexical",line:R,start:z}]);var se=r(xe,function(Pr,yr){return Pr.value.length>=yr.value.length?Pr:yr});switch(se.start=z,se.line=R,S=S.replace(se.value,""),z+=se.value.length,y+=se.value.length,se.name){case"atom":se.raw=se.value,se.value.charAt(0)==="'"&&(se.value=D(se.value.substr(1,se.value.length-2),"'"),se.value===null&&(se.name="lexical",se.value="unknown escape sequence"));break;case"number":se.float=se.value.substring(0,2)!=="0x"&&se.value.match(/[.eE]/)!==null&&se.value!=="0'.",se.value=C(se.value),se.blank=Fe;break;case"string":var qt=se.value.charAt(0);se.value=D(se.value.substr(1,se.value.length-2),qt),se.value===null&&(se.name="lexical",se.value="unknown escape sequence");break;case"whitespace":var nr=X[X.length-1];nr&&(nr.space=!0),Fe=!0;continue;case"r_bracket":X.length>0&&X[X.length-1].name==="l_bracket"&&(se=X.pop(),se.name="atom",se.value="{}",se.raw="{}",se.space=!1);break;case"r_brace":X.length>0&&X[X.length-1].name==="l_brace"&&(se=X.pop(),se.name="atom",se.value="[]",se.raw="[]",se.space=!1);break}se.len=y,X.push(se),Fe=!1}var St=this.set_last_tokens(X);return St.length===0?null:St};function J(I,S,y,R,z){if(!S[y])return{type:A,value:b.error.syntax(S[y-1],"expression expected",!0)};var X;if(R==="0"){var $=S[y];switch($.name){case"number":return{type:p,len:y+1,value:new b.type.Num($.value,$.float)};case"variable":return{type:p,len:y+1,value:new b.type.Var($.value)};case"string":var se;switch(I.get_flag("double_quotes").id){case"atom":se=new q($.value,[]);break;case"codes":se=new q("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)se=new q(".",[new b.type.Num(n($.value,xe),!1),se]);break;case"chars":se=new q("[]",[]);for(var xe=$.value.length-1;xe>=0;xe--)se=new q(".",[new b.type.Term($.value.charAt(xe),[]),se]);break}return{type:p,len:y+1,value:se};case"l_paren":var St=J(I,S,y+1,I.__get_max_priority(),!0);return St.type!==p?St:S[St.len]&&S[St.len].name==="r_paren"?(St.len++,St):{type:A,derived:!0,value:b.error.syntax(S[St.len]?S[St.len]:S[St.len-1],") or operator expected",!S[St.len])};case"l_bracket":var St=J(I,S,y+1,I.__get_max_priority(),!0);return St.type!==p?St:S[St.len]&&S[St.len].name==="r_bracket"?(St.len++,St.value=new q("{}",[St.value]),St):{type:A,derived:!0,value:b.error.syntax(S[St.len]?S[St.len]:S[St.len-1],"} or operator expected",!S[St.len])}}var Fe=te(I,S,y,z);return Fe.type===p||Fe.derived||(Fe=le(I,S,y),Fe.type===p||Fe.derived)?Fe:{type:A,derived:!1,value:b.error.syntax(S[y],"unexpected token")}}var lt=I.__get_max_priority(),Et=I.__get_next_priority(R),qt=y;if(S[y].name==="atom"&&S[y+1]&&(S[y].space||S[y+1].name!=="l_paren")){var $=S[y++],nr=I.__lookup_operator_classes(R,$.value);if(nr&&nr.indexOf("fy")>-1){var St=J(I,S,y,R,z);if(St.type!==A)return $.value==="-"&&!$.space&&b.type.is_number(St.value)?{value:new b.type.Num(-St.value.value,St.value.is_float),len:St.len,type:p}:{value:new b.type.Term($.value,[St.value]),len:St.len,type:p};X=St}else if(nr&&nr.indexOf("fx")>-1){var St=J(I,S,y,Et,z);if(St.type!==A)return{value:new b.type.Term($.value,[St.value]),len:St.len,type:p};X=St}}y=qt;var St=J(I,S,y,Et,z);if(St.type===p){y=St.len;var $=S[y];if(S[y]&&(S[y].name==="atom"&&I.__lookup_operator_classes(R,$.value)||S[y].name==="bar"&&I.__lookup_operator_classes(R,"|"))){var cn=Et,Pr=R,nr=I.__lookup_operator_classes(R,$.value);if(nr.indexOf("xf")>-1)return{value:new b.type.Term($.value,[St.value]),len:++St.len,type:p};if(nr.indexOf("xfx")>-1){var yr=J(I,S,y+1,cn,z);return yr.type===p?{value:new b.type.Term($.value,[St.value,yr.value]),len:yr.len,type:p}:(yr.derived=!0,yr)}else if(nr.indexOf("xfy")>-1){var yr=J(I,S,y+1,Pr,z);return yr.type===p?{value:new b.type.Term($.value,[St.value,yr.value]),len:yr.len,type:p}:(yr.derived=!0,yr)}else if(St.type!==A)for(;;){y=St.len;var $=S[y];if($&&$.name==="atom"&&I.__lookup_operator_classes(R,$.value)){var nr=I.__lookup_operator_classes(R,$.value);if(nr.indexOf("yf")>-1)St={value:new b.type.Term($.value,[St.value]),len:++y,type:p};else if(nr.indexOf("yfx")>-1){var yr=J(I,S,++y,cn,z);if(yr.type===A)return yr.derived=!0,yr;y=yr.len,St={value:new b.type.Term($.value,[St.value,yr.value]),len:y,type:p}}else break}else break}}else X={type:A,value:b.error.syntax(S[St.len-1],"operator expected")};return St}return St}function te(I,S,y,R){if(!S[y]||S[y].name==="atom"&&S[y].raw==="."&&!R&&(S[y].space||!S[y+1]||S[y+1].name!=="l_paren"))return{type:A,derived:!1,value:b.error.syntax(S[y-1],"unfounded token")};var z=S[y],X=[];if(S[y].name==="atom"&&S[y].raw!==","){if(y++,S[y-1].space)return{type:p,len:y,value:new b.type.Term(z.value,X)};if(S[y]&&S[y].name==="l_paren"){if(S[y+1]&&S[y+1].name==="r_paren")return{type:A,derived:!0,value:b.error.syntax(S[y+1],"argument expected")};var $=J(I,S,++y,"999",!0);if($.type===A)return $.derived?$:{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],"argument expected",!S[y])};for(X.push($.value),y=$.len;S[y]&&S[y].name==="atom"&&S[y].value===",";){if($=J(I,S,y+1,"999",!0),$.type===A)return $.derived?$:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};X.push($.value),y=$.len}if(S[y]&&S[y].name==="r_paren")y++;else return{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],", or ) expected",!S[y])}}return{type:p,len:y,value:new b.type.Term(z.value,X)}}return{type:A,derived:!1,value:b.error.syntax(S[y],"term expected")}}function le(I,S,y){if(!S[y])return{type:A,derived:!1,value:b.error.syntax(S[y-1],"[ expected")};if(S[y]&&S[y].name==="l_brace"){var R=J(I,S,++y,"999",!0),z=[R.value],X=void 0;if(R.type===A)return S[y]&&S[y].name==="r_brace"?{type:p,len:y+1,value:new b.type.Term("[]",[])}:{type:A,derived:!0,value:b.error.syntax(S[y],"] expected")};for(y=R.len;S[y]&&S[y].name==="atom"&&S[y].value===",";){if(R=J(I,S,y+1,"999",!0),R.type===A)return R.derived?R:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};z.push(R.value),y=R.len}var $=!1;if(S[y]&&S[y].name==="bar"){if($=!0,R=J(I,S,y+1,"999",!0),R.type===A)return R.derived?R:{type:A,derived:!0,value:b.error.syntax(S[y+1]?S[y+1]:S[y],"argument expected",!S[y+1])};X=R.value,y=R.len}return S[y]&&S[y].name==="r_brace"?{type:p,len:y+1,value:g(z,X)}:{type:A,derived:!0,value:b.error.syntax(S[y]?S[y]:S[y-1],$?"] expected":", or | or ] expected",!S[y])}}return{type:A,derived:!1,value:b.error.syntax(S[y],"list expected")}}function ce(I,S,y){var R=S[y].line,z=J(I,S,y,I.__get_max_priority(),!1),X=null,$;if(z.type!==A)if(y=z.len,S[y]&&S[y].name==="atom"&&S[y].raw===".")if(y++,b.type.is_term(z.value)){if(z.value.indicator===":-/2"?(X=new b.type.Rule(z.value.args[0],Ee(z.value.args[1])),$={value:X,len:y,type:p}):z.value.indicator==="-->/2"?(X=he(new b.type.Rule(z.value.args[0],z.value.args[1]),I),X.body=Ee(X.body),$={value:X,len:y,type:b.type.is_rule(X)?p:A}):(X=new b.type.Rule(z.value,null),$={value:X,len:y,type:p}),X){var se=X.singleton_variables();se.length>0&&I.throw_warning(b.warning.singleton(se,X.head.indicator,R))}return $}else return{type:A,value:b.error.syntax(S[y],"callable expected")};else return{type:A,value:b.error.syntax(S[y]?S[y]:S[y-1],". or operator expected")};return z}function ue(I,S,y){y=y||{},y.from=y.from?y.from:"$tau-js",y.reconsult=y.reconsult!==void 0?y.reconsult:!0;var R=new U(I),z={},X;R.new_text(S);var $=0,se=R.get_tokens($);do{if(se===null||!se[$])break;var xe=ce(I,se,$);if(xe.type===A)return new q("throw",[xe.value]);if(xe.value.body===null&&xe.value.head.indicator==="?-/1"){var Fe=new tt(I.session);Fe.add_goal(xe.value.head.args[0]),Fe.answer(function(Et){b.type.is_error(Et)?I.throw_warning(Et.args[0]):(Et===!1||Et===null)&&I.throw_warning(b.warning.failed_goal(xe.value.head.args[0],xe.len))}),$=xe.len;var lt=!0}else if(xe.value.body===null&&xe.value.head.indicator===":-/1"){var lt=I.run_directive(xe.value.head.args[0]);$=xe.len,xe.value.head.args[0].indicator==="char_conversion/2"&&(se=R.get_tokens($),$=0)}else{X=xe.value.head.indicator,y.reconsult!==!1&&z[X]!==!0&&!I.is_multifile_predicate(X)&&(I.session.rules[X]=a(I.session.rules[X]||[],function(qt){return qt.dynamic}),z[X]=!0);var lt=I.add_rule(xe.value,y);$=xe.len}if(!lt)return lt}while(!0);return!0}function Ie(I,S){var y=new U(I);y.new_text(S);var R=0;do{var z=y.get_tokens(R);if(z===null)break;var X=J(I,z,0,I.__get_max_priority(),!1);if(X.type!==A){var $=X.len,se=$;if(z[$]&&z[$].name==="atom"&&z[$].raw===".")I.add_goal(Ee(X.value));else{var xe=z[$];return new q("throw",[b.error.syntax(xe||z[$-1],". or operator expected",!xe)])}R=X.len+1}else return new q("throw",[X.value])}while(!0);return!0}function he(I,S){I=I.rename(S);var y=S.next_free_variable(),R=De(I.body,y,S);return R.error?R.value:(I.body=R.value,I.head.args=I.head.args.concat([y,R.variable]),I.head=new q(I.head.id,I.head.args),I)}function De(I,S,y){var R;if(b.type.is_term(I)&&I.indicator==="!/0")return{value:I,variable:S,error:!1};if(b.type.is_term(I)&&I.indicator===",/2"){var z=De(I.args[0],S,y);if(z.error)return z;var X=De(I.args[1],z.variable,y);return X.error?X:{value:new q(",",[z.value,X.value]),variable:X.variable,error:!1}}else{if(b.type.is_term(I)&&I.indicator==="{}/1")return{value:I.args[0],variable:S,error:!1};if(b.type.is_empty_list(I))return{value:new q("true",[]),variable:S,error:!1};if(b.type.is_list(I)){R=y.next_free_variable();for(var $=I,se;$.indicator==="./2";)se=$,$=$.args[1];return b.type.is_variable($)?{value:b.error.instantiation("DCG"),variable:S,error:!0}:b.type.is_empty_list($)?(se.args[1]=R,{value:new q("=",[S,I]),variable:R,error:!1}):{value:b.error.type("list",I,"DCG"),variable:S,error:!0}}else return b.type.is_callable(I)?(R=y.next_free_variable(),I.args=I.args.concat([S,R]),I=new q(I.id,I.args),{value:I,variable:R,error:!1}):{value:b.error.type("callable",I,"DCG"),variable:S,error:!0}}}function Ee(I){return b.type.is_variable(I)?new q("call",[I]):b.type.is_term(I)&&[",/2",";/2","->/2"].indexOf(I.indicator)!==-1?new q(I.id,[Ee(I.args[0]),Ee(I.args[1])]):I}function g(I,S){for(var y=S||new b.type.Term("[]",[]),R=I.length-1;R>=0;R--)y=new b.type.Term(".",[I[R],y]);return y}function me(I,S){for(var y=I.length-1;y>=0;y--)I[y]===S&&I.splice(y,1)}function Ce(I){for(var S={},y=[],R=0;R=0;S--)if(I.charAt(S)==="/")return new q("/",[new q(I.substring(0,S)),new Re(parseInt(I.substring(S+1)),!1)])}function Pe(I){this.id=I}function Re(I,S){this.is_float=S!==void 0?S:parseInt(I)!==I,this.value=this.is_float?I:parseInt(I)}var ht=0;function q(I,S,y){this.ref=y||++ht,this.id=I,this.args=S||[],this.indicator=I+"/"+this.args.length}var nt=0;function Ne(I,S,y,R,z,X){this.id=nt++,this.stream=I,this.mode=S,this.alias=y,this.type=R!==void 0?R:"text",this.reposition=z!==void 0?z:!0,this.eof_action=X!==void 0?X:"eof_code",this.position=this.mode==="append"?"end_of_stream":0,this.output=this.mode==="write"||this.mode==="append",this.input=this.mode==="read"}function Te(I){I=I||{},this.links=I}function ke(I,S,y){S=S||new Te,y=y||null,this.goal=I,this.substitution=S,this.parent=y}function Ve(I,S,y){this.head=I,this.body=S,this.dynamic=y||!1}function be(I){I=I===void 0||I<=0?1e3:I,this.rules={},this.src_predicates={},this.rename=0,this.modules=[],this.thread=new tt(this),this.total_threads=1,this.renamed_variables={},this.public_predicates={},this.multifile_predicates={},this.limit=I,this.streams={user_input:new Ne(typeof El<"u"&&El.exports?nodejs_user_input:tau_user_input,"read","user_input","text",!1,"reset"),user_output:new Ne(typeof El<"u"&&El.exports?nodejs_user_output:tau_user_output,"write","user_output","text",!1,"eof_code")},this.file_system=typeof El<"u"&&El.exports?nodejs_file_system:tau_file_system,this.standard_input=this.streams.user_input,this.standard_output=this.streams.user_output,this.current_input=this.streams.user_input,this.current_output=this.streams.user_output,this.format_success=function(S){return S.substitution},this.format_error=function(S){return S.goal},this.flag={bounded:b.flag.bounded.value,max_integer:b.flag.max_integer.value,min_integer:b.flag.min_integer.value,integer_rounding_function:b.flag.integer_rounding_function.value,char_conversion:b.flag.char_conversion.value,debug:b.flag.debug.value,max_arity:b.flag.max_arity.value,unknown:b.flag.unknown.value,double_quotes:b.flag.double_quotes.value,occurs_check:b.flag.occurs_check.value,dialect:b.flag.dialect.value,version_data:b.flag.version_data.value,nodejs:b.flag.nodejs.value},this.__loaded_modules=[],this.__char_conversion={},this.__operators={1200:{":-":["fx","xfx"],"-->":["xfx"],"?-":["fx"]},1100:{";":["xfy"]},1050:{"->":["xfy"]},1e3:{",":["xfy"]},900:{"\\+":["fy"]},700:{"=":["xfx"],"\\=":["xfx"],"==":["xfx"],"\\==":["xfx"],"@<":["xfx"],"@=<":["xfx"],"@>":["xfx"],"@>=":["xfx"],"=..":["xfx"],is:["xfx"],"=:=":["xfx"],"=\\=":["xfx"],"<":["xfx"],"=<":["xfx"],">":["xfx"],">=":["xfx"]},600:{":":["xfy"]},500:{"+":["yfx"],"-":["yfx"],"/\\":["yfx"],"\\/":["yfx"]},400:{"*":["yfx"],"/":["yfx"],"//":["yfx"],rem:["yfx"],mod:["yfx"],"<<":["yfx"],">>":["yfx"]},200:{"**":["xfx"],"^":["xfy"],"-":["fy"],"+":["fy"],"\\":["fy"]}}}function tt(I){this.epoch=Date.now(),this.session=I,this.session.total_threads++,this.total_steps=0,this.cpu_time=0,this.cpu_time_last=0,this.points=[],this.debugger=!1,this.debugger_states=[],this.level="top_level/0",this.__calls=[],this.current_limit=this.session.limit,this.warnings=[]}function He(I,S,y){this.id=I,this.rules=S,this.exports=y,b.module[I]=this}He.prototype.exports_predicate=function(I){return this.exports.indexOf(I)!==-1},Pe.prototype.unify=function(I,S){if(S&&e(I.variables(),this.id)!==-1&&!b.type.is_variable(I))return null;var y={};return y[this.id]=I,new Te(y)},Re.prototype.unify=function(I,S){return b.type.is_number(I)&&this.value===I.value&&this.is_float===I.is_float?new Te:null},q.prototype.unify=function(I,S){if(b.type.is_term(I)&&this.indicator===I.indicator){for(var y=new Te,R=0;R=0){var R=this.args[0].value,z=Math.floor(R/26),X=R%26;return"ABCDEFGHIJKLMNOPQRSTUVWXYZ"[X]+(z!==0?z:"")}switch(this.indicator){case"[]/0":case"{}/0":case"!/0":return this.id;case"{}/1":return"{"+this.args[0].toString(I)+"}";case"./2":for(var $="["+this.args[0].toString(I),se=this.args[1];se.indicator==="./2";)$+=", "+se.args[0].toString(I),se=se.args[1];return se.indicator!=="[]/0"&&($+="|"+se.toString(I)),$+="]",$;case",/2":return"("+this.args[0].toString(I)+", "+this.args[1].toString(I)+")";default:var xe=this.id,Fe=I.session?I.session.lookup_operator(this.id,this.args.length):null;if(I.session===void 0||I.ignore_ops||Fe===null)return I.quoted&&!/^(!|,|;|[a-z][0-9a-zA-Z_]*)$/.test(xe)&&xe!=="{}"&&xe!=="[]"&&(xe="'"+x(xe)+"'"),xe+(this.args.length?"("+o(this.args,function(nr){return nr.toString(I)}).join(", ")+")":"");var lt=Fe.priority>S.priority||Fe.priority===S.priority&&(Fe.class==="xfy"&&this.indicator!==S.indicator||Fe.class==="yfx"&&this.indicator!==S.indicator||this.indicator===S.indicator&&Fe.class==="yfx"&&y==="right"||this.indicator===S.indicator&&Fe.class==="xfy"&&y==="left");Fe.indicator=this.indicator;var Et=lt?"(":"",qt=lt?")":"";return this.args.length===0?"("+this.id+")":["fy","fx"].indexOf(Fe.class)!==-1?Et+xe+" "+this.args[0].toString(I,Fe)+qt:["yf","xf"].indexOf(Fe.class)!==-1?Et+this.args[0].toString(I,Fe)+" "+xe+qt:Et+this.args[0].toString(I,Fe,"left")+" "+this.id+" "+this.args[1].toString(I,Fe,"right")+qt}},Ne.prototype.toString=function(I){return"("+this.id+")"},Te.prototype.toString=function(I){var S="{";for(var y in this.links)this.links.hasOwnProperty(y)&&(S!=="{"&&(S+=", "),S+=y+"/"+this.links[y].toString(I));return S+="}",S},ke.prototype.toString=function(I){return this.goal===null?"<"+this.substitution.toString(I)+">":"<"+this.goal.toString(I)+", "+this.substitution.toString(I)+">"},Ve.prototype.toString=function(I){return this.body?this.head.toString(I)+" :- "+this.body.toString(I)+".":this.head.toString(I)+"."},be.prototype.toString=function(I){for(var S="",y=0;y=0;z--)R=new q(".",[S[z],R]);return R}return new q(this.id,o(this.args,function(X){return X.apply(I)}),this.ref)},Ne.prototype.apply=function(I){return this},Ve.prototype.apply=function(I){return new Ve(this.head.apply(I),this.body!==null?this.body.apply(I):null)},Te.prototype.apply=function(I){var S,y={};for(S in this.links)this.links.hasOwnProperty(S)&&(y[S]=this.links[S].apply(I));return new Te(y)},q.prototype.select=function(){for(var I=this;I.indicator===",/2";)I=I.args[0];return I},q.prototype.replace=function(I){return this.indicator===",/2"?this.args[0].indicator===",/2"?new q(",",[this.args[0].replace(I),this.args[1]]):I===null?this.args[1]:new q(",",[I,this.args[1]]):I},q.prototype.search=function(I){if(b.type.is_term(I)&&I.ref!==void 0&&this.ref===I.ref)return!0;for(var S=0;SS&&R0&&(S=this.head_point().substitution.domain());e(S,b.format_variable(this.session.rename))!==-1;)this.session.rename++;if(I.id==="_")return new Pe(b.format_variable(this.session.rename));this.session.renamed_variables[I.id]=b.format_variable(this.session.rename)}return new Pe(this.session.renamed_variables[I.id])},be.prototype.next_free_variable=function(){return this.thread.next_free_variable()},tt.prototype.next_free_variable=function(){this.session.rename++;var I=[];for(this.points.length>0&&(I=this.head_point().substitution.domain());e(I,b.format_variable(this.session.rename))!==-1;)this.session.rename++;return new Pe(b.format_variable(this.session.rename))},be.prototype.is_public_predicate=function(I){return!this.public_predicates.hasOwnProperty(I)||this.public_predicates[I]===!0},tt.prototype.is_public_predicate=function(I){return this.session.is_public_predicate(I)},be.prototype.is_multifile_predicate=function(I){return this.multifile_predicates.hasOwnProperty(I)&&this.multifile_predicates[I]===!0},tt.prototype.is_multifile_predicate=function(I){return this.session.is_multifile_predicate(I)},be.prototype.prepend=function(I){return this.thread.prepend(I)},tt.prototype.prepend=function(I){for(var S=I.length-1;S>=0;S--)this.points.push(I[S])},be.prototype.success=function(I,S){return this.thread.success(I,S)},tt.prototype.success=function(I,y){var y=typeof y>"u"?I:y;this.prepend([new ke(I.goal.replace(null),I.substitution,y)])},be.prototype.throw_error=function(I){return this.thread.throw_error(I)},tt.prototype.throw_error=function(I){this.prepend([new ke(new q("throw",[I]),new Te,null,null)])},be.prototype.step_rule=function(I,S){return this.thread.step_rule(I,S)},tt.prototype.step_rule=function(I,S){var y=S.indicator;if(I==="user"&&(I=null),I===null&&this.session.rules.hasOwnProperty(y))return this.session.rules[y];for(var R=I===null?this.session.modules:e(this.session.modules,I)===-1?[]:[I],z=0;z1)&&this.again()},be.prototype.answers=function(I,S,y){return this.thread.answers(I,S,y)},tt.prototype.answers=function(I,S,y){var R=S||1e3,z=this;if(S<=0){y&&y();return}this.answer(function(X){I(X),X!==!1?setTimeout(function(){z.answers(I,S-1,y)},1):y&&y()})},be.prototype.again=function(I){return this.thread.again(I)},tt.prototype.again=function(I){for(var S,y=Date.now();this.__calls.length>0;){for(this.warnings=[],I!==!1&&(this.current_limit=this.session.limit);this.current_limit>0&&this.points.length>0&&this.head_point().goal!==null&&!b.type.is_error(this.head_point().goal);)if(this.current_limit--,this.step()===!0)return;var R=Date.now();this.cpu_time_last=R-y,this.cpu_time+=this.cpu_time_last;var z=this.__calls.shift();this.current_limit<=0?z(null):this.points.length===0?z(!1):b.type.is_error(this.head_point().goal)?(S=this.session.format_error(this.points.pop()),this.points=[],z(S)):(this.debugger&&this.debugger_states.push(this.head_point()),S=this.session.format_success(this.points.pop()),z(S))}},be.prototype.unfold=function(I){if(I.body===null)return!1;var S=I.head,y=I.body,R=y.select(),z=new tt(this),X=[];z.add_goal(R),z.step();for(var $=z.points.length-1;$>=0;$--){var se=z.points[$],xe=S.apply(se.substitution),Fe=y.replace(se.goal);Fe!==null&&(Fe=Fe.apply(se.substitution)),X.push(new Ve(xe,Fe))}var lt=this.rules[S.indicator],Et=e(lt,I);return X.length>0&&Et!==-1?(lt.splice.apply(lt,[Et,1].concat(X)),!0):!1},tt.prototype.unfold=function(I){return this.session.unfold(I)},Pe.prototype.interpret=function(I){return b.error.instantiation(I.level)},Re.prototype.interpret=function(I){return this},q.prototype.interpret=function(I){return b.type.is_unitary_list(this)?this.args[0].interpret(I):b.operate(I,this)},Pe.prototype.compare=function(I){return this.idI.id?1:0},Re.prototype.compare=function(I){if(this.value===I.value&&this.is_float===I.is_float)return 0;if(this.valueI.value)return 1},q.prototype.compare=function(I){if(this.args.lengthI.args.length||this.args.length===I.args.length&&this.id>I.id)return 1;for(var S=0;SR)return 1;if(I.constructor===Re){if(I.is_float&&S.is_float)return 0;if(I.is_float)return-1;if(S.is_float)return 1}return 0},is_substitution:function(I){return I instanceof Te},is_state:function(I){return I instanceof ke},is_rule:function(I){return I instanceof Ve},is_variable:function(I){return I instanceof Pe},is_stream:function(I){return I instanceof Ne},is_anonymous_var:function(I){return I instanceof Pe&&I.id==="_"},is_callable:function(I){return I instanceof q},is_number:function(I){return I instanceof Re},is_integer:function(I){return I instanceof Re&&!I.is_float},is_float:function(I){return I instanceof Re&&I.is_float},is_term:function(I){return I instanceof q},is_atom:function(I){return I instanceof q&&I.args.length===0},is_ground:function(I){if(I instanceof Pe)return!1;if(I instanceof q){for(var S=0;S0},is_list:function(I){return I instanceof q&&(I.indicator==="[]/0"||I.indicator==="./2")},is_empty_list:function(I){return I instanceof q&&I.indicator==="[]/0"},is_non_empty_list:function(I){return I instanceof q&&I.indicator==="./2"},is_fully_list:function(I){for(;I instanceof q&&I.indicator==="./2";)I=I.args[1];return I instanceof Pe||I instanceof q&&I.indicator==="[]/0"},is_instantiated_list:function(I){for(;I instanceof q&&I.indicator==="./2";)I=I.args[1];return I instanceof q&&I.indicator==="[]/0"},is_unitary_list:function(I){return I instanceof q&&I.indicator==="./2"&&I.args[1]instanceof q&&I.args[1].indicator==="[]/0"},is_character:function(I){return I instanceof q&&(I.id.length===1||I.id.length>0&&I.id.length<=2&&n(I.id,0)>=65536)},is_character_code:function(I){return I instanceof Re&&!I.is_float&&I.value>=0&&I.value<=1114111},is_byte:function(I){return I instanceof Re&&!I.is_float&&I.value>=0&&I.value<=255},is_operator:function(I){return I instanceof q&&b.arithmetic.evaluation[I.indicator]},is_directive:function(I){return I instanceof q&&b.directive[I.indicator]!==void 0},is_builtin:function(I){return I instanceof q&&b.predicate[I.indicator]!==void 0},is_error:function(I){return I instanceof q&&I.indicator==="throw/1"},is_predicate_indicator:function(I){return I instanceof q&&I.indicator==="//2"&&I.args[0]instanceof q&&I.args[0].args.length===0&&I.args[1]instanceof Re&&I.args[1].is_float===!1},is_flag:function(I){return I instanceof q&&I.args.length===0&&b.flag[I.id]!==void 0},is_value_flag:function(I,S){if(!b.type.is_flag(I))return!1;for(var y in b.flag[I.id].allowed)if(b.flag[I.id].allowed.hasOwnProperty(y)&&b.flag[I.id].allowed[y].equals(S))return!0;return!1},is_io_mode:function(I){return b.type.is_atom(I)&&["read","write","append"].indexOf(I.id)!==-1},is_stream_option:function(I){return b.type.is_term(I)&&(I.indicator==="alias/1"&&b.type.is_atom(I.args[0])||I.indicator==="reposition/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="type/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary")||I.indicator==="eof_action/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))},is_stream_position:function(I){return b.type.is_integer(I)&&I.value>=0||b.type.is_atom(I)&&(I.id==="end_of_stream"||I.id==="past_end_of_stream")},is_stream_property:function(I){return b.type.is_term(I)&&(I.indicator==="input/0"||I.indicator==="output/0"||I.indicator==="alias/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0]))||I.indicator==="file_name/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0]))||I.indicator==="position/1"&&(b.type.is_variable(I.args[0])||b.type.is_stream_position(I.args[0]))||I.indicator==="reposition/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))||I.indicator==="type/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="text"||I.args[0].id==="binary"))||I.indicator==="mode/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="read"||I.args[0].id==="write"||I.args[0].id==="append"))||I.indicator==="eof_action/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="error"||I.args[0].id==="eof_code"||I.args[0].id==="reset"))||I.indicator==="end_of_stream/1"&&(b.type.is_variable(I.args[0])||b.type.is_atom(I.args[0])&&(I.args[0].id==="at"||I.args[0].id==="past"||I.args[0].id==="not")))},is_streamable:function(I){return I.__proto__.stream!==void 0},is_read_option:function(I){return b.type.is_term(I)&&["variables/1","variable_names/1","singletons/1"].indexOf(I.indicator)!==-1},is_write_option:function(I){return b.type.is_term(I)&&(I.indicator==="quoted/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="ignore_ops/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")||I.indicator==="numbervars/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false"))},is_close_option:function(I){return b.type.is_term(I)&&I.indicator==="force/1"&&b.type.is_atom(I.args[0])&&(I.args[0].id==="true"||I.args[0].id==="false")},is_modifiable_flag:function(I){return b.type.is_flag(I)&&b.flag[I.id].changeable},is_module:function(I){return I instanceof q&&I.indicator==="library/1"&&I.args[0]instanceof q&&I.args[0].args.length===0&&b.module[I.args[0].id]!==void 0}},arithmetic:{evaluation:{"e/0":{type_args:null,type_result:!0,fn:function(I){return Math.E}},"pi/0":{type_args:null,type_result:!0,fn:function(I){return Math.PI}},"tau/0":{type_args:null,type_result:!0,fn:function(I){return 2*Math.PI}},"epsilon/0":{type_args:null,type_result:!0,fn:function(I){return Number.EPSILON}},"+/1":{type_args:null,type_result:null,fn:function(I,S){return I}},"-/1":{type_args:null,type_result:null,fn:function(I,S){return-I}},"\\/1":{type_args:!1,type_result:!1,fn:function(I,S){return~I}},"abs/1":{type_args:null,type_result:null,fn:function(I,S){return Math.abs(I)}},"sign/1":{type_args:null,type_result:null,fn:function(I,S){return Math.sign(I)}},"float_integer_part/1":{type_args:!0,type_result:!1,fn:function(I,S){return parseInt(I)}},"float_fractional_part/1":{type_args:!0,type_result:!0,fn:function(I,S){return I-parseInt(I)}},"float/1":{type_args:null,type_result:!0,fn:function(I,S){return parseFloat(I)}},"floor/1":{type_args:!0,type_result:!1,fn:function(I,S){return Math.floor(I)}},"truncate/1":{type_args:!0,type_result:!1,fn:function(I,S){return parseInt(I)}},"round/1":{type_args:!0,type_result:!1,fn:function(I,S){return Math.round(I)}},"ceiling/1":{type_args:!0,type_result:!1,fn:function(I,S){return Math.ceil(I)}},"sin/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.sin(I)}},"cos/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.cos(I)}},"tan/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.tan(I)}},"asin/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.asin(I)}},"acos/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.acos(I)}},"atan/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.atan(I)}},"atan2/2":{type_args:null,type_result:!0,fn:function(I,S,y){return Math.atan2(I,S)}},"exp/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.exp(I)}},"sqrt/1":{type_args:null,type_result:!0,fn:function(I,S){return Math.sqrt(I)}},"log/1":{type_args:null,type_result:!0,fn:function(I,S){return I>0?Math.log(I):b.error.evaluation("undefined",S.__call_indicator)}},"+/2":{type_args:null,type_result:null,fn:function(I,S,y){return I+S}},"-/2":{type_args:null,type_result:null,fn:function(I,S,y){return I-S}},"*/2":{type_args:null,type_result:null,fn:function(I,S,y){return I*S}},"//2":{type_args:null,type_result:!0,fn:function(I,S,y){return S?I/S:b.error.evaluation("zero_division",y.__call_indicator)}},"///2":{type_args:!1,type_result:!1,fn:function(I,S,y){return S?parseInt(I/S):b.error.evaluation("zero_division",y.__call_indicator)}},"**/2":{type_args:null,type_result:!0,fn:function(I,S,y){return Math.pow(I,S)}},"^/2":{type_args:null,type_result:null,fn:function(I,S,y){return Math.pow(I,S)}},"<>/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I>>S}},"/\\/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I&S}},"\\//2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I|S}},"xor/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return I^S}},"rem/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return S?I%S:b.error.evaluation("zero_division",y.__call_indicator)}},"mod/2":{type_args:!1,type_result:!1,fn:function(I,S,y){return S?I-parseInt(I/S)*S:b.error.evaluation("zero_division",y.__call_indicator)}},"max/2":{type_args:null,type_result:null,fn:function(I,S,y){return Math.max(I,S)}},"min/2":{type_args:null,type_result:null,fn:function(I,S,y){return Math.min(I,S)}}}},directive:{"dynamic/1":function(I,S){var y=S.args[0];if(b.type.is_variable(y))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_compound(y)||y.indicator!=="//2")I.throw_error(b.error.type("predicate_indicator",y,S.indicator));else if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_atom(y.args[0]))I.throw_error(b.error.type("atom",y.args[0],S.indicator));else if(!b.type.is_integer(y.args[1]))I.throw_error(b.error.type("integer",y.args[1],S.indicator));else{var R=S.args[0].args[0].id+"/"+S.args[0].args[1].value;I.session.public_predicates[R]=!0,I.session.rules[R]||(I.session.rules[R]=[])}},"multifile/1":function(I,S){var y=S.args[0];b.type.is_variable(y)?I.throw_error(b.error.instantiation(S.indicator)):!b.type.is_compound(y)||y.indicator!=="//2"?I.throw_error(b.error.type("predicate_indicator",y,S.indicator)):b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1])?I.throw_error(b.error.instantiation(S.indicator)):b.type.is_atom(y.args[0])?b.type.is_integer(y.args[1])?I.session.multifile_predicates[S.args[0].args[0].id+"/"+S.args[0].args[1].value]=!0:I.throw_error(b.error.type("integer",y.args[1],S.indicator)):I.throw_error(b.error.type("atom",y.args[0],S.indicator))},"set_prolog_flag/2":function(I,S){var y=S.args[0],R=S.args[1];b.type.is_variable(y)||b.type.is_variable(R)?I.throw_error(b.error.instantiation(S.indicator)):b.type.is_atom(y)?b.type.is_flag(y)?b.type.is_value_flag(y,R)?b.type.is_modifiable_flag(y)?I.session.flag[y.id]=R:I.throw_error(b.error.permission("modify","flag",y)):I.throw_error(b.error.domain("flag_value",new q("+",[y,R]),S.indicator)):I.throw_error(b.error.domain("prolog_flag",y,S.indicator)):I.throw_error(b.error.type("atom",y,S.indicator))},"use_module/1":function(I,S){var y=S.args[0];if(b.type.is_variable(y))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_term(y))I.throw_error(b.error.type("term",y,S.indicator));else if(b.type.is_module(y)){var R=y.args[0].id;e(I.session.modules,R)===-1&&I.session.modules.push(R)}},"char_conversion/2":function(I,S){var y=S.args[0],R=S.args[1];b.type.is_variable(y)||b.type.is_variable(R)?I.throw_error(b.error.instantiation(S.indicator)):b.type.is_character(y)?b.type.is_character(R)?y.id===R.id?delete I.session.__char_conversion[y.id]:I.session.__char_conversion[y.id]=R.id:I.throw_error(b.error.type("character",R,S.indicator)):I.throw_error(b.error.type("character",y,S.indicator))},"op/3":function(I,S){var y=S.args[0],R=S.args[1],z=S.args[2];if(b.type.is_variable(y)||b.type.is_variable(R)||b.type.is_variable(z))I.throw_error(b.error.instantiation(S.indicator));else if(!b.type.is_integer(y))I.throw_error(b.error.type("integer",y,S.indicator));else if(!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,S.indicator));else if(!b.type.is_atom(z))I.throw_error(b.error.type("atom",z,S.indicator));else if(y.value<0||y.value>1200)I.throw_error(b.error.domain("operator_priority",y,S.indicator));else if(z.id===",")I.throw_error(b.error.permission("modify","operator",z,S.indicator));else if(z.id==="|"&&(y.value<1001||R.id.length!==3))I.throw_error(b.error.permission("modify","operator",z,S.indicator));else if(["fy","fx","yf","xf","xfx","yfx","xfy"].indexOf(R.id)===-1)I.throw_error(b.error.domain("operator_specifier",R,S.indicator));else{var X={prefix:null,infix:null,postfix:null};for(var $ in I.session.__operators)if(I.session.__operators.hasOwnProperty($)){var se=I.session.__operators[$][z.id];se&&(e(se,"fx")!==-1&&(X.prefix={priority:$,type:"fx"}),e(se,"fy")!==-1&&(X.prefix={priority:$,type:"fy"}),e(se,"xf")!==-1&&(X.postfix={priority:$,type:"xf"}),e(se,"yf")!==-1&&(X.postfix={priority:$,type:"yf"}),e(se,"xfx")!==-1&&(X.infix={priority:$,type:"xfx"}),e(se,"xfy")!==-1&&(X.infix={priority:$,type:"xfy"}),e(se,"yfx")!==-1&&(X.infix={priority:$,type:"yfx"}))}var xe;switch(R.id){case"fy":case"fx":xe="prefix";break;case"yf":case"xf":xe="postfix";break;default:xe="infix";break}if(((X.prefix&&xe==="prefix"||X.postfix&&xe==="postfix"||X.infix&&xe==="infix")&&X[xe].type!==R.id||X.infix&&xe==="postfix"||X.postfix&&xe==="infix")&&y.value!==0)I.throw_error(b.error.permission("create","operator",z,S.indicator));else return X[xe]&&(me(I.session.__operators[X[xe].priority][z.id],R.id),I.session.__operators[X[xe].priority][z.id].length===0&&delete I.session.__operators[X[xe].priority][z.id]),y.value>0&&(I.session.__operators[y.value]||(I.session.__operators[y.value.toString()]={}),I.session.__operators[y.value][z.id]||(I.session.__operators[y.value][z.id]=[]),I.session.__operators[y.value][z.id].push(R.id)),!0}}},predicate:{"op/3":function(I,S,y){b.directive["op/3"](I,y)&&I.success(S)},"current_op/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2],$=[];for(var se in I.session.__operators)for(var xe in I.session.__operators[se])for(var Fe=0;Fe/2"){var R=I.points,z=I.session.format_success,X=I.session.format_error;I.session.format_success=function(Fe){return Fe.substitution},I.session.format_error=function(Fe){return Fe.goal},I.points=[new ke(y.args[0].args[0],S.substitution,S)];var $=function(Fe){I.points=R,I.session.format_success=z,I.session.format_error=X,Fe===!1?I.prepend([new ke(S.goal.replace(y.args[1]),S.substitution,S)]):b.type.is_error(Fe)?I.throw_error(Fe.args[0]):Fe===null?(I.prepend([S]),I.__calls.shift()(null)):I.prepend([new ke(S.goal.replace(y.args[0].args[1]).apply(Fe),S.substitution.apply(Fe),S)])};I.__calls.unshift($)}else{var se=new ke(S.goal.replace(y.args[0]),S.substitution,S),xe=new ke(S.goal.replace(y.args[1]),S.substitution,S);I.prepend([se,xe])}},"!/0":function(I,S,y){var R,z,X=[];for(R=S,z=null;R.parent!==null&&R.parent.goal.search(y);)if(z=R,R=R.parent,R.goal!==null){var $=R.goal.select();if($&&$.id==="call"&&$.search(y)){R=z;break}}for(var se=I.points.length-1;se>=0;se--){for(var xe=I.points[se],Fe=xe.parent;Fe!==null&&Fe!==R.parent;)Fe=Fe.parent;Fe===null&&Fe!==R.parent&&X.push(xe)}I.points=X.reverse(),I.success(S)},"\\+/1":function(I,S,y){var R=y.args[0];b.type.is_variable(R)?I.throw_error(b.error.instantiation(I.level)):b.type.is_callable(R)?I.prepend([new ke(S.goal.replace(new q(",",[new q(",",[new q("call",[R]),new q("!",[])]),new q("fail",[])])),S.substitution,S),new ke(S.goal.replace(null),S.substitution,S)]):I.throw_error(b.error.type("callable",R,I.level))},"->/2":function(I,S,y){var R=S.goal.replace(new q(",",[y.args[0],new q(",",[new q("!"),y.args[1]])]));I.prepend([new ke(R,S.substitution,S)])},"fail/0":function(I,S,y){},"false/0":function(I,S,y){},"true/0":function(I,S,y){I.success(S)},"call/1":ie(1),"call/2":ie(2),"call/3":ie(3),"call/4":ie(4),"call/5":ie(5),"call/6":ie(6),"call/7":ie(7),"call/8":ie(8),"once/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("call",[R]),new q("!",[])])),S.substitution,S)])},"forall/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("\\+",[new q(",",[new q("call",[R]),new q("\\+",[new q("call",[z])])])])),S.substitution,S)])},"repeat/0":function(I,S,y){I.prepend([new ke(S.goal.replace(null),S.substitution,S),S])},"throw/1":function(I,S,y){b.type.is_variable(y.args[0])?I.throw_error(b.error.instantiation(I.level)):I.throw_error(y.args[0])},"catch/3":function(I,S,y){var R=I.points;I.points=[],I.prepend([new ke(y.args[0],S.substitution,S)]);var z=I.session.format_success,X=I.session.format_error;I.session.format_success=function(se){return se.substitution},I.session.format_error=function(se){return se.goal};var $=function(se){var xe=I.points;if(I.points=R,I.session.format_success=z,I.session.format_error=X,b.type.is_error(se)){for(var Fe=[],lt=I.points.length-1;lt>=0;lt--){for(var nr=I.points[lt],Et=nr.parent;Et!==null&&Et!==S.parent;)Et=Et.parent;Et===null&&Et!==S.parent&&Fe.push(nr)}I.points=Fe;var qt=I.get_flag("occurs_check").indicator==="true/0",nr=new ke,St=b.unify(se.args[0],y.args[1],qt);St!==null?(nr.substitution=S.substitution.apply(St),nr.goal=S.goal.replace(y.args[2]).apply(St),nr.parent=S,I.prepend([nr])):I.throw_error(se.args[0])}else if(se!==!1){for(var cn=se===null?[]:[new ke(S.goal.apply(se).replace(null),S.substitution.apply(se),S)],Pr=[],lt=xe.length-1;lt>=0;lt--){Pr.push(xe[lt]);var yr=xe[lt].goal!==null?xe[lt].goal.select():null;if(b.type.is_term(yr)&&yr.indicator==="!/0")break}var Rr=o(Pr,function(Xr){return Xr.goal===null&&(Xr.goal=new q("true",[])),Xr=new ke(S.goal.replace(new q("catch",[Xr.goal,y.args[1],y.args[2]])),S.substitution.apply(Xr.substitution),Xr.parent),Xr.exclude=y.args[0].variables(),Xr}).reverse();I.prepend(Rr),I.prepend(cn),se===null&&(this.current_limit=0,I.__calls.shift()(null))}};I.__calls.unshift($)},"=/2":function(I,S,y){var R=I.get_flag("occurs_check").indicator==="true/0",z=new ke,X=b.unify(y.args[0],y.args[1],R);X!==null&&(z.goal=S.goal.apply(X).replace(null),z.substitution=S.substitution.apply(X),z.parent=S,I.prepend([z]))},"unify_with_occurs_check/2":function(I,S,y){var R=new ke,z=b.unify(y.args[0],y.args[1],!0);z!==null&&(R.goal=S.goal.apply(z).replace(null),R.substitution=S.substitution.apply(z),R.parent=S,I.prepend([R]))},"\\=/2":function(I,S,y){var R=I.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[0],y.args[1],R);z===null&&I.success(S)},"subsumes_term/2":function(I,S,y){var R=I.get_flag("occurs_check").indicator==="true/0",z=b.unify(y.args[1],y.args[0],R);z!==null&&y.args[1].apply(z).equals(y.args[1])&&I.success(S)},"findall/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(z))I.throw_error(b.error.type("callable",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else{var $=I.next_free_variable(),se=new q(",",[z,new q("=",[$,R])]),xe=I.points,Fe=I.session.limit,lt=I.session.format_success;I.session.format_success=function(nr){return nr.substitution},I.add_goal(se,!0,S);var Et=[],qt=function(nr){if(nr!==!1&&nr!==null&&!b.type.is_error(nr))I.__calls.unshift(qt),Et.push(nr.links[$.id]),I.session.limit=I.current_limit;else if(I.points=xe,I.session.limit=Fe,I.session.format_success=lt,b.type.is_error(nr))I.throw_error(nr.args[0]);else if(I.current_limit>0){for(var St=new q("[]"),cn=Et.length-1;cn>=0;cn--)St=new q(".",[Et[cn],St]);I.prepend([new ke(S.goal.replace(new q("=",[X,St])),S.substitution,S)])}};I.__calls.unshift(qt)}},"bagof/3":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))I.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_list($))I.throw_error(b.error.type("list",$,y.indicator));else{var se=I.next_free_variable(),xe;X.indicator==="^/2"?(xe=X.args[0].variables(),X=X.args[1]):xe=[],xe=xe.concat(z.variables());for(var Fe=X.variables().filter(function(Rr){return e(xe,Rr)===-1}),lt=new q("[]"),Et=Fe.length-1;Et>=0;Et--)lt=new q(".",[new Pe(Fe[Et]),lt]);var qt=new q(",",[X,new q("=",[se,new q(",",[lt,z])])]),nr=I.points,St=I.session.limit,cn=I.session.format_success;I.session.format_success=function(Rr){return Rr.substitution},I.add_goal(qt,!0,S);var Pr=[],yr=function(Rr){if(Rr!==!1&&Rr!==null&&!b.type.is_error(Rr)){I.__calls.unshift(yr);var Xr=!1,$n=Rr.links[se.id].args[0],Xs=Rr.links[se.id].args[1];for(var Hi in Pr)if(Pr.hasOwnProperty(Hi)){var Qs=Pr[Hi];if(Qs.variables.equals($n)){Qs.answers.push(Xs),Xr=!0;break}}Xr||Pr.push({variables:$n,answers:[Xs]}),I.session.limit=I.current_limit}else if(I.points=nr,I.session.limit=St,I.session.format_success=cn,b.type.is_error(Rr))I.throw_error(Rr.args[0]);else if(I.current_limit>0){for(var Zs=[],xi=0;xi=0;$s--)Fs=new q(".",[Rr[$s],Fs]);Zs.push(new ke(S.goal.replace(new q(",",[new q("=",[lt,Pr[xi].variables]),new q("=",[$,Fs])])),S.substitution,S))}I.prepend(Zs)}};I.__calls.unshift(yr)}},"setof/3":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(X))I.throw_error(b.error.type("callable",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_list($))I.throw_error(b.error.type("list",$,y.indicator));else{var se=I.next_free_variable(),xe;X.indicator==="^/2"?(xe=X.args[0].variables(),X=X.args[1]):xe=[],xe=xe.concat(z.variables());for(var Fe=X.variables().filter(function(Rr){return e(xe,Rr)===-1}),lt=new q("[]"),Et=Fe.length-1;Et>=0;Et--)lt=new q(".",[new Pe(Fe[Et]),lt]);var qt=new q(",",[X,new q("=",[se,new q(",",[lt,z])])]),nr=I.points,St=I.session.limit,cn=I.session.format_success;I.session.format_success=function(Rr){return Rr.substitution},I.add_goal(qt,!0,S);var Pr=[],yr=function(Rr){if(Rr!==!1&&Rr!==null&&!b.type.is_error(Rr)){I.__calls.unshift(yr);var Xr=!1,$n=Rr.links[se.id].args[0],Xs=Rr.links[se.id].args[1];for(var Hi in Pr)if(Pr.hasOwnProperty(Hi)){var Qs=Pr[Hi];if(Qs.variables.equals($n)){Qs.answers.push(Xs),Xr=!0;break}}Xr||Pr.push({variables:$n,answers:[Xs]}),I.session.limit=I.current_limit}else if(I.points=nr,I.session.limit=St,I.session.format_success=cn,b.type.is_error(Rr))I.throw_error(Rr.args[0]);else if(I.current_limit>0){for(var Zs=[],xi=0;xi=0;$s--)Fs=new q(".",[Rr[$s],Fs]);Zs.push(new ke(S.goal.replace(new q(",",[new q("=",[lt,Pr[xi].variables]),new q("=",[$,Fs])])),S.substitution,S))}I.prepend(Zs)}};I.__calls.unshift(yr)}},"functor/3":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2];if(b.type.is_variable(z)&&(b.type.is_variable(X)||b.type.is_variable($)))I.throw_error(b.error.instantiation("functor/3"));else if(!b.type.is_variable($)&&!b.type.is_integer($))I.throw_error(b.error.type("integer",y.args[2],"functor/3"));else if(!b.type.is_variable(X)&&!b.type.is_atomic(X))I.throw_error(b.error.type("atomic",y.args[1],"functor/3"));else if(b.type.is_integer(X)&&b.type.is_integer($)&&$.value!==0)I.throw_error(b.error.type("atom",y.args[1],"functor/3"));else if(b.type.is_variable(z)){if(y.args[2].value>=0){for(var se=[],xe=0;xe<$.value;xe++)se.push(I.next_free_variable());var Fe=b.type.is_integer(X)?X:new q(X.id,se);I.prepend([new ke(S.goal.replace(new q("=",[z,Fe])),S.substitution,S)])}}else{var lt=b.type.is_integer(z)?z:new q(z.id,[]),Et=b.type.is_integer(z)?new Re(0,!1):new Re(z.args.length,!1),qt=new q(",",[new q("=",[lt,X]),new q("=",[Et,$])]);I.prepend([new ke(S.goal.replace(qt),S.substitution,S)])}},"arg/3":function(I,S,y){if(b.type.is_variable(y.args[0])||b.type.is_variable(y.args[1]))I.throw_error(b.error.instantiation(y.indicator));else if(y.args[0].value<0)I.throw_error(b.error.domain("not_less_than_zero",y.args[0],y.indicator));else if(!b.type.is_compound(y.args[1]))I.throw_error(b.error.type("compound",y.args[1],y.indicator));else{var R=y.args[0].value;if(R>0&&R<=y.args[1].args.length){var z=new q("=",[y.args[1].args[R-1],y.args[2]]);I.prepend([new ke(S.goal.replace(z),S.substitution,S)])}}},"=../2":function(I,S,y){var R;if(b.type.is_variable(y.args[0])&&(b.type.is_variable(y.args[1])||b.type.is_non_empty_list(y.args[1])&&b.type.is_variable(y.args[1].args[0])))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_fully_list(y.args[1]))I.throw_error(b.error.type("list",y.args[1],y.indicator));else if(b.type.is_variable(y.args[0])){if(!b.type.is_variable(y.args[1])){var X=[];for(R=y.args[1].args[1];R.indicator==="./2";)X.push(R.args[0]),R=R.args[1];b.type.is_variable(y.args[0])&&b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):X.length===0&&b.type.is_compound(y.args[1].args[0])?I.throw_error(b.error.type("atomic",y.args[1].args[0],y.indicator)):X.length>0&&(b.type.is_compound(y.args[1].args[0])||b.type.is_number(y.args[1].args[0]))?I.throw_error(b.error.type("atom",y.args[1].args[0],y.indicator)):X.length===0?I.prepend([new ke(S.goal.replace(new q("=",[y.args[1].args[0],y.args[0]],S)),S.substitution,S)]):I.prepend([new ke(S.goal.replace(new q("=",[new q(y.args[1].args[0].id,X),y.args[0]])),S.substitution,S)])}}else{if(b.type.is_atomic(y.args[0]))R=new q(".",[y.args[0],new q("[]")]);else{R=new q("[]");for(var z=y.args[0].args.length-1;z>=0;z--)R=new q(".",[y.args[0].args[z],R]);R=new q(".",[new q(y.args[0].id),R])}I.prepend([new ke(S.goal.replace(new q("=",[R,y.args[1]])),S.substitution,S)])}},"copy_term/2":function(I,S,y){var R=y.args[0].rename(I);I.prepend([new ke(S.goal.replace(new q("=",[R,y.args[1]])),S.substitution,S.parent)])},"term_variables/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(!b.type.is_fully_list(z))I.throw_error(b.error.type("list",z,y.indicator));else{var X=g(o(Ce(R.variables()),function($){return new Pe($)}));I.prepend([new ke(S.goal.replace(new q("=",[z,X])),S.substitution,S)])}},"clause/2":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_callable(y.args[1]))I.throw_error(b.error.type("callable",y.args[1],y.indicator));else if(I.session.rules[y.args[0].indicator]!==void 0)if(I.is_public_predicate(y.args[0].indicator)){var R=[];for(var z in I.session.rules[y.args[0].indicator])if(I.session.rules[y.args[0].indicator].hasOwnProperty(z)){var X=I.session.rules[y.args[0].indicator][z];I.session.renamed_variables={},X=X.rename(I),X.body===null&&(X.body=new q("true"));var $=new q(",",[new q("=",[X.head,y.args[0]]),new q("=",[X.body,y.args[1]])]);R.push(new ke(S.goal.replace($),S.substitution,S))}I.prepend(R)}else I.throw_error(b.error.permission("access","private_procedure",y.args[0].indicator,y.indicator))},"current_predicate/1":function(I,S,y){var R=y.args[0];if(!b.type.is_variable(R)&&(!b.type.is_compound(R)||R.indicator!=="//2"))I.throw_error(b.error.type("predicate_indicator",R,y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_variable(R.args[0])&&!b.type.is_atom(R.args[0]))I.throw_error(b.error.type("atom",R.args[0],y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_variable(R.args[1])&&!b.type.is_integer(R.args[1]))I.throw_error(b.error.type("integer",R.args[1],y.indicator));else{var z=[];for(var X in I.session.rules)if(I.session.rules.hasOwnProperty(X)){var $=X.lastIndexOf("/"),se=X.substr(0,$),xe=parseInt(X.substr($+1,X.length-($+1))),Fe=new q("/",[new q(se),new Re(xe,!1)]),lt=new q("=",[Fe,R]);z.push(new ke(S.goal.replace(lt),S.substitution,S))}I.prepend(z)}},"asserta/1":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var R,z;y.args[0].indicator===":-/2"?(R=y.args[0].args[0],z=Ee(y.args[0].args[1])):(R=y.args[0],z=null),b.type.is_callable(R)?z!==null&&!b.type.is_callable(z)?I.throw_error(b.error.type("callable",z,y.indicator)):I.is_public_predicate(R.indicator)?(I.session.rules[R.indicator]===void 0&&(I.session.rules[R.indicator]=[]),I.session.public_predicates[R.indicator]=!0,I.session.rules[R.indicator]=[new Ve(R,z,!0)].concat(I.session.rules[R.indicator]),I.success(S)):I.throw_error(b.error.permission("modify","static_procedure",R.indicator,y.indicator)):I.throw_error(b.error.type("callable",R,y.indicator))}},"assertz/1":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var R,z;y.args[0].indicator===":-/2"?(R=y.args[0].args[0],z=Ee(y.args[0].args[1])):(R=y.args[0],z=null),b.type.is_callable(R)?z!==null&&!b.type.is_callable(z)?I.throw_error(b.error.type("callable",z,y.indicator)):I.is_public_predicate(R.indicator)?(I.session.rules[R.indicator]===void 0&&(I.session.rules[R.indicator]=[]),I.session.public_predicates[R.indicator]=!0,I.session.rules[R.indicator].push(new Ve(R,z,!0)),I.success(S)):I.throw_error(b.error.permission("modify","static_procedure",R.indicator,y.indicator)):I.throw_error(b.error.type("callable",R,y.indicator))}},"retract/1":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_callable(y.args[0]))I.throw_error(b.error.type("callable",y.args[0],y.indicator));else{var R,z;if(y.args[0].indicator===":-/2"?(R=y.args[0].args[0],z=y.args[0].args[1]):(R=y.args[0],z=new q("true")),typeof S.retract>"u")if(I.is_public_predicate(R.indicator)){if(I.session.rules[R.indicator]!==void 0){for(var X=[],$=0;$I.get_flag("max_arity").value)I.throw_error(b.error.representation("max_arity",y.indicator));else{var R=y.args[0].args[0].id+"/"+y.args[0].args[1].value;I.is_public_predicate(R)?(delete I.session.rules[R],I.success(S)):I.throw_error(b.error.permission("modify","static_procedure",R,y.indicator))}},"atom_length/2":function(I,S,y){if(b.type.is_variable(y.args[0]))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_atom(y.args[0]))I.throw_error(b.error.type("atom",y.args[0],y.indicator));else if(!b.type.is_variable(y.args[1])&&!b.type.is_integer(y.args[1]))I.throw_error(b.error.type("integer",y.args[1],y.indicator));else if(b.type.is_integer(y.args[1])&&y.args[1].value<0)I.throw_error(b.error.domain("not_less_than_zero",y.args[1],y.indicator));else{var R=new Re(y.args[0].id.length,!1);I.prepend([new ke(S.goal.replace(new q("=",[R,y.args[1]])),S.substitution,S)])}},"atom_concat/3":function(I,S,y){var R,z,X=y.args[0],$=y.args[1],se=y.args[2];if(b.type.is_variable(se)&&(b.type.is_variable(X)||b.type.is_variable($)))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))I.throw_error(b.error.type("atom",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_atom($))I.throw_error(b.error.type("atom",$,y.indicator));else if(!b.type.is_variable(se)&&!b.type.is_atom(se))I.throw_error(b.error.type("atom",se,y.indicator));else{var xe=b.type.is_variable(X),Fe=b.type.is_variable($);if(!xe&&!Fe)z=new q("=",[se,new q(X.id+$.id)]),I.prepend([new ke(S.goal.replace(z),S.substitution,S)]);else if(xe&&!Fe)R=se.id.substr(0,se.id.length-$.id.length),R+$.id===se.id&&(z=new q("=",[X,new q(R)]),I.prepend([new ke(S.goal.replace(z),S.substitution,S)]));else if(Fe&&!xe)R=se.id.substr(X.id.length),X.id+R===se.id&&(z=new q("=",[$,new q(R)]),I.prepend([new ke(S.goal.replace(z),S.substitution,S)]));else{for(var lt=[],Et=0;Et<=se.id.length;Et++){var qt=new q(se.id.substr(0,Et)),nr=new q(se.id.substr(Et));z=new q(",",[new q("=",[qt,X]),new q("=",[nr,$])]),lt.push(new ke(S.goal.replace(z),S.substitution,S))}I.prepend(lt)}}},"sub_atom/5":function(I,S,y){var R,z=y.args[0],X=y.args[1],$=y.args[2],se=y.args[3],xe=y.args[4];if(b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))I.throw_error(b.error.type("integer",X,y.indicator));else if(!b.type.is_variable($)&&!b.type.is_integer($))I.throw_error(b.error.type("integer",$,y.indicator));else if(!b.type.is_variable(se)&&!b.type.is_integer(se))I.throw_error(b.error.type("integer",se,y.indicator));else if(b.type.is_integer(X)&&X.value<0)I.throw_error(b.error.domain("not_less_than_zero",X,y.indicator));else if(b.type.is_integer($)&&$.value<0)I.throw_error(b.error.domain("not_less_than_zero",$,y.indicator));else if(b.type.is_integer(se)&&se.value<0)I.throw_error(b.error.domain("not_less_than_zero",se,y.indicator));else{var Fe=[],lt=[],Et=[];if(b.type.is_variable(X))for(R=0;R<=z.id.length;R++)Fe.push(R);else Fe.push(X.value);if(b.type.is_variable($))for(R=0;R<=z.id.length;R++)lt.push(R);else lt.push($.value);if(b.type.is_variable(se))for(R=0;R<=z.id.length;R++)Et.push(R);else Et.push(se.value);var qt=[];for(var nr in Fe)if(Fe.hasOwnProperty(nr)){R=Fe[nr];for(var St in lt)if(lt.hasOwnProperty(St)){var cn=lt[St],Pr=z.id.length-R-cn;if(e(Et,Pr)!==-1&&R+cn+Pr===z.id.length){var yr=z.id.substr(R,cn);if(z.id===z.id.substr(0,R)+yr+z.id.substr(R+cn,Pr)){var Rr=new q("=",[new q(yr),xe]),Xr=new q("=",[X,new Re(R)]),$n=new q("=",[$,new Re(cn)]),Xs=new q("=",[se,new Re(Pr)]),Hi=new q(",",[new q(",",[new q(",",[Xr,$n]),Xs]),Rr]);qt.push(new ke(S.goal.replace(Hi),S.substitution,S))}}}}I.prepend(qt)}},"atom_chars/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(b.type.is_variable(R)&&b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(b.type.is_variable(R)){for(var se=z,xe=b.type.is_variable(R),Fe="";se.indicator==="./2";){if(b.type.is_character(se.args[0]))Fe+=se.args[0].id;else if(b.type.is_variable(se.args[0])&&xe){I.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.type("character",se.args[0],y.indicator));return}se=se.args[1]}b.type.is_variable(se)&&xe?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(se)&&!b.type.is_variable(se)?I.throw_error(b.error.type("list",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[new q(Fe),R])),S.substitution,S)])}else{for(var X=new q("[]"),$=R.id.length-1;$>=0;$--)X=new q(".",[new q(R.id.charAt($)),X]);I.prepend([new ke(S.goal.replace(new q("=",[z,X])),S.substitution,S)])}},"atom_codes/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(b.type.is_variable(R)&&b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(b.type.is_variable(R)){for(var se=z,xe=b.type.is_variable(R),Fe="";se.indicator==="./2";){if(b.type.is_character_code(se.args[0]))Fe+=u(se.args[0].value);else if(b.type.is_variable(se.args[0])&&xe){I.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.representation("character_code",y.indicator));return}se=se.args[1]}b.type.is_variable(se)&&xe?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_empty_list(se)&&!b.type.is_variable(se)?I.throw_error(b.error.type("list",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[new q(Fe),R])),S.substitution,S)])}else{for(var X=new q("[]"),$=R.id.length-1;$>=0;$--)X=new q(".",[new Re(n(R.id,$),!1),X]);I.prepend([new ke(S.goal.replace(new q("=",[z,X])),S.substitution,S)])}},"char_code/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(b.type.is_variable(R)&&b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_character(R))I.throw_error(b.error.type("character",R,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_integer(z))I.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_character_code(z))I.throw_error(b.error.representation("character_code",y.indicator));else if(b.type.is_variable(z)){var X=new Re(n(R.id,0),!1);I.prepend([new ke(S.goal.replace(new q("=",[X,z])),S.substitution,S)])}else{var $=new q(u(z.value));I.prepend([new ke(S.goal.replace(new q("=",[$,R])),S.substitution,S)])}},"number_chars/2":function(I,S,y){var R,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))I.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else{var $=b.type.is_variable(z);if(!b.type.is_variable(X)){var se=X,xe=!0;for(R="";se.indicator==="./2";){if(b.type.is_character(se.args[0]))R+=se.args[0].id;else if(b.type.is_variable(se.args[0]))xe=!1;else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.type("character",se.args[0],y.indicator));return}se=se.args[1]}if(xe=xe&&b.type.is_empty_list(se),!b.type.is_empty_list(se)&&!b.type.is_variable(se)){I.throw_error(b.error.type("list",X,y.indicator));return}if(!xe&&$){I.throw_error(b.error.instantiation(y.indicator));return}else if(xe)if(b.type.is_variable(se)&&$){I.throw_error(b.error.instantiation(y.indicator));return}else{var Fe=I.parse(R),lt=Fe.value;!b.type.is_number(lt)||Fe.tokens[Fe.tokens.length-1].space?I.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,lt])),S.substitution,S)]);return}}if(!$){R=z.toString();for(var Et=new q("[]"),qt=R.length-1;qt>=0;qt--)Et=new q(".",[new q(R.charAt(qt)),Et]);I.prepend([new ke(S.goal.replace(new q("=",[X,Et])),S.substitution,S)])}}},"number_codes/2":function(I,S,y){var R,z=y.args[0],X=y.args[1];if(b.type.is_variable(z)&&b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(z)&&!b.type.is_number(z))I.throw_error(b.error.type("number",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else{var $=b.type.is_variable(z);if(!b.type.is_variable(X)){var se=X,xe=!0;for(R="";se.indicator==="./2";){if(b.type.is_character_code(se.args[0]))R+=u(se.args[0].value);else if(b.type.is_variable(se.args[0]))xe=!1;else if(!b.type.is_variable(se.args[0])){I.throw_error(b.error.type("character_code",se.args[0],y.indicator));return}se=se.args[1]}if(xe=xe&&b.type.is_empty_list(se),!b.type.is_empty_list(se)&&!b.type.is_variable(se)){I.throw_error(b.error.type("list",X,y.indicator));return}if(!xe&&$){I.throw_error(b.error.instantiation(y.indicator));return}else if(xe)if(b.type.is_variable(se)&&$){I.throw_error(b.error.instantiation(y.indicator));return}else{var Fe=I.parse(R),lt=Fe.value;!b.type.is_number(lt)||Fe.tokens[Fe.tokens.length-1].space?I.throw_error(b.error.syntax_by_predicate("parseable_number",y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,lt])),S.substitution,S)]);return}}if(!$){R=z.toString();for(var Et=new q("[]"),qt=R.length-1;qt>=0;qt--)Et=new q(".",[new Re(n(R,qt),!1),Et]);I.prepend([new ke(S.goal.replace(new q("=",[X,Et])),S.substitution,S)])}}},"upcase_atom/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(R)?!b.type.is_variable(z)&&!b.type.is_atom(z)?I.throw_error(b.error.type("atom",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,new q(R.id.toUpperCase(),[])])),S.substitution,S)]):I.throw_error(b.error.type("atom",R,y.indicator))},"downcase_atom/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(R)?!b.type.is_variable(z)&&!b.type.is_atom(z)?I.throw_error(b.error.type("atom",z,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[z,new q(R.id.toLowerCase(),[])])),S.substitution,S)]):I.throw_error(b.error.type("atom",R,y.indicator))},"atomic_list_concat/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("atomic_list_concat",[R,new q("",[]),z])),S.substitution,S)])},"atomic_list_concat/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(z)||b.type.is_variable(R)&&b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_list(R))I.throw_error(b.error.type("list",R,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_atom(X))I.throw_error(b.error.type("atom",X,y.indicator));else if(b.type.is_variable(X)){for(var se="",xe=R;b.type.is_term(xe)&&xe.indicator==="./2";){if(!b.type.is_atom(xe.args[0])&&!b.type.is_number(xe.args[0])){I.throw_error(b.error.type("atomic",xe.args[0],y.indicator));return}se!==""&&(se+=z.id),b.type.is_atom(xe.args[0])?se+=xe.args[0].id:se+=""+xe.args[0].value,xe=xe.args[1]}se=new q(se,[]),b.type.is_variable(xe)?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_term(xe)||xe.indicator!=="[]/0"?I.throw_error(b.error.type("list",R,y.indicator)):I.prepend([new ke(S.goal.replace(new q("=",[se,X])),S.substitution,S)])}else{var $=g(o(X.id.split(z.id),function(Fe){return new q(Fe,[])}));I.prepend([new ke(S.goal.replace(new q("=",[$,R])),S.substitution,S)])}},"@=/2":function(I,S,y){b.compare(y.args[0],y.args[1])>0&&I.success(S)},"@>=/2":function(I,S,y){b.compare(y.args[0],y.args[1])>=0&&I.success(S)},"compare/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(b.type.is_atom(R)&&["<",">","="].indexOf(R.id)===-1)I.throw_error(b.type.domain("order",R,y.indicator));else{var $=b.compare(z,X);$=$===0?"=":$===-1?"<":">",I.prepend([new ke(S.goal.replace(new q("=",[R,new q($,[])])),S.substitution,S)])}},"is/2":function(I,S,y){var R=y.args[1].interpret(I);b.type.is_number(R)?I.prepend([new ke(S.goal.replace(new q("=",[y.args[0],R],I.level)),S.substitution,S)]):I.throw_error(R)},"between/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2];if(b.type.is_variable(R)||b.type.is_variable(z))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_integer(R))I.throw_error(b.error.type("integer",R,y.indicator));else if(!b.type.is_integer(z))I.throw_error(b.error.type("integer",z,y.indicator));else if(!b.type.is_variable(X)&&!b.type.is_integer(X))I.throw_error(b.error.type("integer",X,y.indicator));else if(b.type.is_variable(X)){var $=[new ke(S.goal.replace(new q("=",[X,R])),S.substitution,S)];R.value=X.value&&I.success(S)},"succ/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)&&b.type.is_variable(z)?I.throw_error(b.error.instantiation(y.indicator)):!b.type.is_variable(R)&&!b.type.is_integer(R)?I.throw_error(b.error.type("integer",R,y.indicator)):!b.type.is_variable(z)&&!b.type.is_integer(z)?I.throw_error(b.error.type("integer",z,y.indicator)):!b.type.is_variable(R)&&R.value<0?I.throw_error(b.error.domain("not_less_than_zero",R,y.indicator)):!b.type.is_variable(z)&&z.value<0?I.throw_error(b.error.domain("not_less_than_zero",z,y.indicator)):(b.type.is_variable(z)||z.value>0)&&(b.type.is_variable(R)?I.prepend([new ke(S.goal.replace(new q("=",[R,new Re(z.value-1,!1)])),S.substitution,S)]):I.prepend([new ke(S.goal.replace(new q("=",[z,new Re(R.value+1,!1)])),S.substitution,S)]))},"=:=/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R===0&&I.success(S)},"=\\=/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R!==0&&I.success(S)},"/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R>0&&I.success(S)},">=/2":function(I,S,y){var R=b.arithmetic_compare(I,y.args[0],y.args[1]);b.type.is_term(R)?I.throw_error(R):R>=0&&I.success(S)},"var/1":function(I,S,y){b.type.is_variable(y.args[0])&&I.success(S)},"atom/1":function(I,S,y){b.type.is_atom(y.args[0])&&I.success(S)},"atomic/1":function(I,S,y){b.type.is_atomic(y.args[0])&&I.success(S)},"compound/1":function(I,S,y){b.type.is_compound(y.args[0])&&I.success(S)},"integer/1":function(I,S,y){b.type.is_integer(y.args[0])&&I.success(S)},"float/1":function(I,S,y){b.type.is_float(y.args[0])&&I.success(S)},"number/1":function(I,S,y){b.type.is_number(y.args[0])&&I.success(S)},"nonvar/1":function(I,S,y){b.type.is_variable(y.args[0])||I.success(S)},"ground/1":function(I,S,y){y.variables().length===0&&I.success(S)},"acyclic_term/1":function(I,S,y){for(var R=S.substitution.apply(S.substitution),z=y.args[0].variables(),X=0;X0?St[St.length-1]:null,St!==null&&(qt=J(I,St,0,I.__get_max_priority(),!1))}if(qt.type===p&&qt.len===St.length-1&&cn.value==="."){qt=qt.value.rename(I);var Pr=new q("=",[z,qt]);if(se.variables){var yr=g(o(Ce(qt.variables()),function(Rr){return new Pe(Rr)}));Pr=new q(",",[Pr,new q("=",[se.variables,yr])])}if(se.variable_names){var yr=g(o(Ce(qt.variables()),function(Xr){var $n;for($n in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty($n)&&I.session.renamed_variables[$n]===Xr)break;return new q("=",[new q($n,[]),new Pe(Xr)])}));Pr=new q(",",[Pr,new q("=",[se.variable_names,yr])])}if(se.singletons){var yr=g(o(new Ve(qt,null).singleton_variables(),function(Xr){var $n;for($n in I.session.renamed_variables)if(I.session.renamed_variables.hasOwnProperty($n)&&I.session.renamed_variables[$n]===Xr)break;return new q("=",[new q($n,[]),new Pe(Xr)])}));Pr=new q(",",[Pr,new q("=",[se.singletons,yr])])}I.prepend([new ke(S.goal.replace(Pr),S.substitution,S)])}else qt.type===p?I.throw_error(b.error.syntax(St[qt.len],"unexpected token",!1)):I.throw_error(qt.value)}}},"write/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("write",[new Pe("S"),R])])),S.substitution,S)])},"write/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("write_term",[R,z,new q(".",[new q("quoted",[new q("false",[])]),new q(".",[new q("ignore_ops",[new q("false")]),new q(".",[new q("numbervars",[new q("true")]),new q("[]",[])])])])])),S.substitution,S)])},"writeq/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("writeq",[new Pe("S"),R])])),S.substitution,S)])},"writeq/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("write_term",[R,z,new q(".",[new q("quoted",[new q("true",[])]),new q(".",[new q("ignore_ops",[new q("false")]),new q(".",[new q("numbervars",[new q("true")]),new q("[]",[])])])])])),S.substitution,S)])},"write_canonical/1":function(I,S,y){var R=y.args[0];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("write_canonical",[new Pe("S"),R])])),S.substitution,S)])},"write_canonical/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q("write_term",[R,z,new q(".",[new q("quoted",[new q("true",[])]),new q(".",[new q("ignore_ops",[new q("true")]),new q(".",[new q("numbervars",[new q("false")]),new q("[]",[])])])])])),S.substitution,S)])},"write_term/2":function(I,S,y){var R=y.args[0],z=y.args[1];I.prepend([new ke(S.goal.replace(new q(",",[new q("current_output",[new Pe("S")]),new q("write_term",[new Pe("S"),R,z])])),S.substitution,S)])},"write_term/3":function(I,S,y){var R=y.args[0],z=y.args[1],X=y.args[2],$=b.type.is_stream(R)?R:I.get_stream_by_alias(R.id);if(b.type.is_variable(R)||b.type.is_variable(X))I.throw_error(b.error.instantiation(y.indicator));else if(!b.type.is_list(X))I.throw_error(b.error.type("list",X,y.indicator));else if(!b.type.is_stream(R)&&!b.type.is_atom(R))I.throw_error(b.error.domain("stream_or_alias",R,y.indicator));else if(!b.type.is_stream($)||$.stream===null)I.throw_error(b.error.existence("stream",R,y.indicator));else if($.input)I.throw_error(b.error.permission("output","stream",R,y.indicator));else if($.type==="binary")I.throw_error(b.error.permission("output","binary_stream",R,y.indicator));else if($.position==="past_end_of_stream"&&$.eof_action==="error")I.throw_error(b.error.permission("output","past_end_of_stream",R,y.indicator));else{for(var se={},xe=X,Fe;b.type.is_term(xe)&&xe.indicator==="./2";){if(Fe=xe.args[0],b.type.is_variable(Fe)){I.throw_error(b.error.instantiation(y.indicator));return}else if(!b.type.is_write_option(Fe)){I.throw_error(b.error.domain("write_option",Fe,y.indicator));return}se[Fe.id]=Fe.args[0].id==="true",xe=xe.args[1]}if(xe.indicator!=="[]/0"){b.type.is_variable(xe)?I.throw_error(b.error.instantiation(y.indicator)):I.throw_error(b.error.type("list",X,y.indicator));return}else{se.session=I.session;var lt=z.toString(se);$.stream.put(lt,$.position),typeof $.position=="number"&&($.position+=lt.length),I.success(S)}}},"halt/0":function(I,S,y){I.points=[]},"halt/1":function(I,S,y){var R=y.args[0];b.type.is_variable(R)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_integer(R)?I.points=[]:I.throw_error(b.error.type("integer",R,y.indicator))},"current_prolog_flag/2":function(I,S,y){var R=y.args[0],z=y.args[1];if(!b.type.is_variable(R)&&!b.type.is_atom(R))I.throw_error(b.error.type("atom",R,y.indicator));else if(!b.type.is_variable(R)&&!b.type.is_flag(R))I.throw_error(b.error.domain("prolog_flag",R,y.indicator));else{var X=[];for(var $ in b.flag)if(b.flag.hasOwnProperty($)){var se=new q(",",[new q("=",[new q($),R]),new q("=",[I.get_flag($),z])]);X.push(new ke(S.goal.replace(se),S.substitution,S))}I.prepend(X)}},"set_prolog_flag/2":function(I,S,y){var R=y.args[0],z=y.args[1];b.type.is_variable(R)||b.type.is_variable(z)?I.throw_error(b.error.instantiation(y.indicator)):b.type.is_atom(R)?b.type.is_flag(R)?b.type.is_value_flag(R,z)?b.type.is_modifiable_flag(R)?(I.session.flag[R.id]=z,I.success(S)):I.throw_error(b.error.permission("modify","flag",R)):I.throw_error(b.error.domain("flag_value",new q("+",[R,z]),y.indicator)):I.throw_error(b.error.domain("prolog_flag",R,y.indicator)):I.throw_error(b.error.type("atom",R,y.indicator))}},flag:{bounded:{allowed:[new q("true"),new q("false")],value:new q("true"),changeable:!1},max_integer:{allowed:[new Re(Number.MAX_SAFE_INTEGER)],value:new Re(Number.MAX_SAFE_INTEGER),changeable:!1},min_integer:{allowed:[new Re(Number.MIN_SAFE_INTEGER)],value:new Re(Number.MIN_SAFE_INTEGER),changeable:!1},integer_rounding_function:{allowed:[new q("down"),new q("toward_zero")],value:new q("toward_zero"),changeable:!1},char_conversion:{allowed:[new q("on"),new q("off")],value:new q("on"),changeable:!0},debug:{allowed:[new q("on"),new q("off")],value:new q("off"),changeable:!0},max_arity:{allowed:[new q("unbounded")],value:new q("unbounded"),changeable:!1},unknown:{allowed:[new q("error"),new q("fail"),new q("warning")],value:new q("error"),changeable:!0},double_quotes:{allowed:[new q("chars"),new q("codes"),new q("atom")],value:new q("codes"),changeable:!0},occurs_check:{allowed:[new q("false"),new q("true")],value:new q("false"),changeable:!0},dialect:{allowed:[new q("tau")],value:new q("tau"),changeable:!1},version_data:{allowed:[new q("tau",[new Re(t.major,!1),new Re(t.minor,!1),new Re(t.patch,!1),new q(t.status)])],value:new q("tau",[new Re(t.major,!1),new Re(t.minor,!1),new Re(t.patch,!1),new q(t.status)]),changeable:!1},nodejs:{allowed:[new q("yes"),new q("no")],value:new q(typeof El<"u"&&El.exports?"yes":"no"),changeable:!1}},unify:function(I,S,y){y=y===void 0?!1:y;for(var R=[{left:I,right:S}],z={};R.length!==0;){var X=R.pop();if(I=X.left,S=X.right,b.type.is_term(I)&&b.type.is_term(S)){if(I.indicator!==S.indicator)return null;for(var $=0;$z.value?1:0:z}else return R},operate:function(I,S){if(b.type.is_operator(S)){for(var y=b.type.is_operator(S),R=[],z,X=!1,$=0;$I.get_flag("max_integer").value||z0?I.start+I.matches[0].length:I.start,z=y?new q("token_not_found"):new q("found",[new q(I.value.toString())]),X=new q(".",[new q("line",[new Re(I.line+1)]),new q(".",[new q("column",[new Re(R+1)]),new q(".",[z,new q("[]",[])])])]);return new q("error",[new q("syntax_error",[new q(S)]),X])},syntax_by_predicate:function(I,S){return new q("error",[new q("syntax_error",[new q(I)]),Z(S)])}},warning:{singleton:function(I,S,y){for(var R=new q("[]"),z=I.length-1;z>=0;z--)R=new q(".",[new Pe(I[z]),R]);return new q("warning",[new q("singleton_variables",[R,Z(S)]),new q(".",[new q("line",[new Re(y,!1)]),new q("[]")])])},failed_goal:function(I,S){return new q("warning",[new q("failed_goal",[I]),new q(".",[new q("line",[new Re(S,!1)]),new q("[]")])])}},format_variable:function(I){return"_"+I},format_answer:function(I,S,R){S instanceof be&&(S=S.thread);var R=R||{};if(R.session=S?S.session:void 0,b.type.is_error(I))return"uncaught exception: "+I.args[0].toString();if(I===!1)return"false.";if(I===null)return"limit exceeded ;";var z=0,X="";if(b.type.is_substitution(I)){var $=I.domain(!0);I=I.filter(function(Fe,lt){return!b.type.is_variable(lt)||$.indexOf(lt.id)!==-1&&Fe!==lt.id})}for(var se in I.links)I.links.hasOwnProperty(se)&&(z++,X!==""&&(X+=", "),X+=se.toString(R)+" = "+I.links[se].toString(R));var xe=typeof S>"u"||S.points.length>0?" ;":".";return z===0?"true"+xe:X+xe},flatten_error:function(I){if(!b.type.is_error(I))return null;I=I.args[0];var S={};return S.type=I.args[0].id,S.thrown=S.type==="syntax_error"?null:I.args[1].id,S.expected=null,S.found=null,S.representation=null,S.existence=null,S.existence_type=null,S.line=null,S.column=null,S.permission_operation=null,S.permission_type=null,S.evaluation_type=null,S.type==="type_error"||S.type==="domain_error"?(S.expected=I.args[0].args[0].id,S.found=I.args[0].args[1].toString()):S.type==="syntax_error"?I.args[1].indicator==="./2"?(S.expected=I.args[0].args[0].id,S.found=I.args[1].args[1].args[1].args[0],S.found=S.found.id==="token_not_found"?S.found.id:S.found.args[0].id,S.line=I.args[1].args[0].args[0].value,S.column=I.args[1].args[1].args[0].args[0].value):S.thrown=I.args[1].id:S.type==="permission_error"?(S.found=I.args[0].args[2].toString(),S.permission_operation=I.args[0].args[0].id,S.permission_type=I.args[0].args[1].id):S.type==="evaluation_error"?S.evaluation_type=I.args[0].args[0].id:S.type==="representation_error"?S.representation=I.args[0].args[0].id:S.type==="existence_error"&&(S.existence=I.args[0].args[1].toString(),S.existence_type=I.args[0].args[0].id),S},create:function(I){return new b.type.Session(I)}};typeof El<"u"?El.exports=b:window.pl=b})()});function Kme(t,e,r){t.prepend(r.map(o=>new Oa.default.type.State(e.goal.replace(o),e.substitution,e)))}function n6(t){let e=Jme.get(t.session);if(e==null)throw new Error("Assertion failed: A project should have been registered for the active session");return e}function zme(t,e){Jme.set(t,e),t.consult(`:- use_module(library(${Wgt.id})).`)}var i6,Oa,Vme,Lh,jgt,Ggt,Jme,Wgt,Xme=It(()=>{Ke();i6=et(N2()),Oa=et(r6()),Vme=et(ve("vm")),{is_atom:Lh,is_variable:jgt,is_instantiated_list:Ggt}=Oa.default.type;Jme=new WeakMap;Wgt=new Oa.default.type.Module("constraints",{"project_workspaces_by_descriptor/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Lh(o)||!Lh(a)){t.throw_error(Oa.default.error.instantiation(r.indicator));return}let u=G.parseIdent(o.id),A=G.makeDescriptor(u,a.id),h=n6(t).tryWorkspaceByDescriptor(A);jgt(n)&&h!==null&&Kme(t,e,[new Oa.default.type.Term("=",[n,new Oa.default.type.Term(String(h.relativeCwd))])]),Lh(n)&&h!==null&&h.relativeCwd===n.id&&t.success(e)},"workspace_field/3":(t,e,r)=>{let[o,a,n]=r.args;if(!Lh(o)||!Lh(a)){t.throw_error(Oa.default.error.instantiation(r.indicator));return}let A=n6(t).tryWorkspaceByCwd(o.id);if(A==null)return;let p=(0,i6.default)(A.manifest.raw,a.id);typeof p>"u"||Kme(t,e,[new Oa.default.type.Term("=",[n,new Oa.default.type.Term(typeof p=="object"?JSON.stringify(p):p)])])},"workspace_field_test/3":(t,e,r)=>{let[o,a,n]=r.args;t.prepend([new Oa.default.type.State(e.goal.replace(new Oa.default.type.Term("workspace_field_test",[o,a,n,new Oa.default.type.Term("[]",[])])),e.substitution,e)])},"workspace_field_test/4":(t,e,r)=>{let[o,a,n,u]=r.args;if(!Lh(o)||!Lh(a)||!Lh(n)||!Ggt(u)){t.throw_error(Oa.default.error.instantiation(r.indicator));return}let p=n6(t).tryWorkspaceByCwd(o.id);if(p==null)return;let h=(0,i6.default)(p.manifest.raw,a.id);if(typeof h>"u")return;let E={$$:h};for(let[D,x]of u.toJavaScript().entries())E[`$${D}`]=x;Vme.default.runInNewContext(n.id,E)&&t.success(e)}},["project_workspaces_by_descriptor/3","workspace_field/3","workspace_field_test/3","workspace_field_test/4"])});var Y2={};Kt(Y2,{Constraints:()=>o6,DependencyType:()=>tye});function Vs(t){if(t instanceof rC.default.type.Num)return t.value;if(t instanceof rC.default.type.Term)switch(t.indicator){case"throw/1":return Vs(t.args[0]);case"error/1":return Vs(t.args[0]);case"error/2":if(t.args[0]instanceof rC.default.type.Term&&t.args[0].indicator==="syntax_error/1")return Object.assign(Vs(t.args[0]),...Vs(t.args[1]));{let e=Vs(t.args[0]);return e.message+=` (in ${Vs(t.args[1])})`,e}case"syntax_error/1":return new Jt(43,`Syntax error: ${Vs(t.args[0])}`);case"existence_error/2":return new Jt(44,`Existence error: ${Vs(t.args[0])} ${Vs(t.args[1])} not found`);case"instantiation_error/0":return new Jt(75,"Instantiation error: an argument is variable when an instantiated argument was expected");case"line/1":return{line:Vs(t.args[0])};case"column/1":return{column:Vs(t.args[0])};case"found/1":return{found:Vs(t.args[0])};case"./2":return[Vs(t.args[0])].concat(Vs(t.args[1]));case"//2":return`${Vs(t.args[0])}/${Vs(t.args[1])}`;default:return t.id}throw`couldn't pretty print because of unsupported node ${t}`}function $me(t){let e;try{e=Vs(t)}catch(r){throw typeof r=="string"?new Jt(42,`Unknown error: ${t} (note: ${r})`):r}return typeof e.line<"u"&&typeof e.column<"u"&&(e.message+=` at line ${e.line}, column ${e.column}`),e}function Zg(t){return t.id==="null"?null:`${t.toJavaScript()}`}function Ygt(t){if(t.id==="null")return null;{let e=t.toJavaScript();if(typeof e!="string")return JSON.stringify(e);try{return JSON.stringify(JSON.parse(e))}catch{return JSON.stringify(e)}}}function Oh(t){return typeof t=="string"?`'${t}'`:"[]"}var eye,rC,tye,Zme,s6,o6,K2=It(()=>{Ke();Ke();Pt();eye=et(Qme()),rC=et(r6());j2();Xme();(0,eye.default)(rC.default);tye=(o=>(o.Dependencies="dependencies",o.DevDependencies="devDependencies",o.PeerDependencies="peerDependencies",o))(tye||{}),Zme=["dependencies","devDependencies","peerDependencies"];s6=class{constructor(e,r){let o=1e3*e.workspaces.length;this.session=rC.default.create(o),zme(this.session,e),this.session.consult(":- use_module(library(lists))."),this.session.consult(r)}fetchNextAnswer(){return new Promise(e=>{this.session.answer(r=>{e(r)})})}async*makeQuery(e){let r=this.session.query(e);if(r!==!0)throw $me(r);for(;;){let o=await this.fetchNextAnswer();if(o===null)throw new Jt(79,"Resolution limit exceeded");if(!o)break;if(o.id==="throw")throw $me(o);yield o}}};o6=class t{constructor(e){this.source="";this.project=e;let r=e.configuration.get("constraintsPath");ae.existsSync(r)&&(this.source=ae.readFileSync(r,"utf8"))}static async find(e){return new t(e)}getProjectDatabase(){let e="";for(let r of Zme)e+=`dependency_type(${r}). +`;for(let r of this.project.workspacesByCwd.values()){let o=r.relativeCwd;e+=`workspace(${Oh(o)}). +`,e+=`workspace_ident(${Oh(o)}, ${Oh(G.stringifyIdent(r.anchoredLocator))}). +`,e+=`workspace_version(${Oh(o)}, ${Oh(r.manifest.version)}). +`;for(let a of Zme)for(let n of r.manifest[a].values())e+=`workspace_has_dependency(${Oh(o)}, ${Oh(G.stringifyIdent(n))}, ${Oh(n.range)}, ${a}). +`}return e+=`workspace(_) :- false. +`,e+=`workspace_ident(_, _) :- false. +`,e+=`workspace_version(_, _) :- false. +`,e+=`workspace_has_dependency(_, _, _, _) :- false. +`,e}getDeclarations(){let e="";return e+=`gen_enforced_dependency(_, _, _, _) :- false. +`,e+=`gen_enforced_field(_, _, _) :- false. +`,e}get fullSource(){return`${this.getProjectDatabase()} +${this.source} +${this.getDeclarations()}`}createSession(){return new s6(this.project,this.fullSource)}async processClassic(){let e=this.createSession();return{enforcedDependencies:await this.genEnforcedDependencies(e),enforcedFields:await this.genEnforcedFields(e)}}async process(){let{enforcedDependencies:e,enforcedFields:r}=await this.processClassic(),o=new Map;for(let{workspace:a,dependencyIdent:n,dependencyRange:u,dependencyType:A}of e){let p=q2([A,G.stringifyIdent(n)]),h=qe.getMapWithDefault(o,a.cwd);qe.getMapWithDefault(h,p).set(u??void 0,new Set)}for(let{workspace:a,fieldPath:n,fieldValue:u}of r){let A=q2(n),p=qe.getMapWithDefault(o,a.cwd);qe.getMapWithDefault(p,A).set(JSON.parse(u)??void 0,new Set)}return{manifestUpdates:o,reportedErrors:new Map}}async genEnforcedDependencies(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), dependency_type(DependencyType), gen_enforced_dependency(WorkspaceCwd, DependencyIdent, DependencyRange, DependencyType).")){let a=K.resolve(this.project.cwd,Zg(o.links.WorkspaceCwd)),n=Zg(o.links.DependencyIdent),u=Zg(o.links.DependencyRange),A=Zg(o.links.DependencyType);if(a===null||n===null)throw new Error("Invalid rule");let p=this.project.getWorkspaceByCwd(a),h=G.parseIdent(n);r.push({workspace:p,dependencyIdent:h,dependencyRange:u,dependencyType:A})}return qe.sortMap(r,[({dependencyRange:o})=>o!==null?"0":"1",({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({dependencyIdent:o})=>G.stringifyIdent(o)])}async genEnforcedFields(e){let r=[];for await(let o of e.makeQuery("workspace(WorkspaceCwd), gen_enforced_field(WorkspaceCwd, FieldPath, FieldValue).")){let a=K.resolve(this.project.cwd,Zg(o.links.WorkspaceCwd)),n=Zg(o.links.FieldPath),u=Ygt(o.links.FieldValue);if(a===null||n===null)throw new Error("Invalid rule");let A=this.project.getWorkspaceByCwd(a);r.push({workspace:A,fieldPath:n,fieldValue:u})}return qe.sortMap(r,[({workspace:o})=>G.stringifyIdent(o.anchoredLocator),({fieldPath:o})=>o])}async*query(e){let r=this.createSession();for await(let o of r.makeQuery(e)){let a={};for(let[n,u]of Object.entries(o.links))n!=="_"&&(a[n]=Zg(u));yield a}}}});var uye=_(tQ=>{"use strict";Object.defineProperty(tQ,"__esModule",{value:!0});function lB(t){let e=[...t.caches],r=e.shift();return r===void 0?cye():{get(o,a,n={miss:()=>Promise.resolve()}){return r.get(o,a,n).catch(()=>lB({caches:e}).get(o,a,n))},set(o,a){return r.set(o,a).catch(()=>lB({caches:e}).set(o,a))},delete(o){return r.delete(o).catch(()=>lB({caches:e}).delete(o))},clear(){return r.clear().catch(()=>lB({caches:e}).clear())}}}function cye(){return{get(t,e,r={miss:()=>Promise.resolve()}){return e().then(a=>Promise.all([a,r.miss(a)])).then(([a])=>a)},set(t,e){return Promise.resolve(e)},delete(t){return Promise.resolve()},clear(){return Promise.resolve()}}}tQ.createFallbackableCache=lB;tQ.createNullCache=cye});var fye=_((pYt,Aye)=>{Aye.exports=uye()});var pye=_(C6=>{"use strict";Object.defineProperty(C6,"__esModule",{value:!0});function Adt(t={serializable:!0}){let e={};return{get(r,o,a={miss:()=>Promise.resolve()}){let n=JSON.stringify(r);if(n in e)return Promise.resolve(t.serializable?JSON.parse(e[n]):e[n]);let u=o(),A=a&&a.miss||(()=>Promise.resolve());return u.then(p=>A(p)).then(()=>u)},set(r,o){return e[JSON.stringify(r)]=t.serializable?JSON.stringify(o):o,Promise.resolve(o)},delete(r){return delete e[JSON.stringify(r)],Promise.resolve()},clear(){return e={},Promise.resolve()}}}C6.createInMemoryCache=Adt});var gye=_((gYt,hye)=>{hye.exports=pye()});var mye=_(su=>{"use strict";Object.defineProperty(su,"__esModule",{value:!0});function fdt(t,e,r){let o={"x-algolia-api-key":r,"x-algolia-application-id":e};return{headers(){return t===I6.WithinHeaders?o:{}},queryParameters(){return t===I6.WithinQueryParameters?o:{}}}}function pdt(t){let e=0,r=()=>(e++,new Promise(o=>{setTimeout(()=>{o(t(r))},Math.min(100*e,1e3))}));return t(r)}function dye(t,e=(r,o)=>Promise.resolve()){return Object.assign(t,{wait(r){return dye(t.then(o=>Promise.all([e(o,r),o])).then(o=>o[1]))}})}function hdt(t){let e=t.length-1;for(e;e>0;e--){let r=Math.floor(Math.random()*(e+1)),o=t[e];t[e]=t[r],t[r]=o}return t}function gdt(t,e){return e&&Object.keys(e).forEach(r=>{t[r]=e[r](t)}),t}function ddt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}var mdt="4.22.1",ydt=t=>()=>t.transporter.requester.destroy(),I6={WithinQueryParameters:0,WithinHeaders:1};su.AuthMode=I6;su.addMethods=gdt;su.createAuth=fdt;su.createRetryablePromise=pdt;su.createWaitablePromise=dye;su.destroy=ydt;su.encode=ddt;su.shuffle=hdt;su.version=mdt});var cB=_((mYt,yye)=>{yye.exports=mye()});var Eye=_(w6=>{"use strict";Object.defineProperty(w6,"__esModule",{value:!0});var Edt={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};w6.MethodEnum=Edt});var uB=_((EYt,Cye)=>{Cye.exports=Eye()});var Nye=_(Ti=>{"use strict";Object.defineProperty(Ti,"__esModule",{value:!0});var wye=uB();function B6(t,e){let r=t||{},o=r.data||{};return Object.keys(r).forEach(a=>{["timeout","headers","queryParameters","data","cacheable"].indexOf(a)===-1&&(o[a]=r[a])}),{data:Object.entries(o).length>0?o:void 0,timeout:r.timeout||e,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var AB={Read:1,Write:2,Any:3},fC={Up:1,Down:2,Timeouted:3},Bye=2*60*1e3;function D6(t,e=fC.Up){return{...t,status:e,lastUpdate:Date.now()}}function vye(t){return t.status===fC.Up||Date.now()-t.lastUpdate>Bye}function Dye(t){return t.status===fC.Timeouted&&Date.now()-t.lastUpdate<=Bye}function P6(t){return typeof t=="string"?{protocol:"https",url:t,accept:AB.Any}:{protocol:t.protocol||"https",url:t.url,accept:t.accept||AB.Any}}function Cdt(t,e){return Promise.all(e.map(r=>t.get(r,()=>Promise.resolve(D6(r))))).then(r=>{let o=r.filter(A=>vye(A)),a=r.filter(A=>Dye(A)),n=[...o,...a],u=n.length>0?n.map(A=>P6(A)):e;return{getTimeout(A,p){return(a.length===0&&A===0?1:a.length+3+A)*p},statelessHosts:u}})}var Idt=({isTimedOut:t,status:e})=>!t&&~~e===0,wdt=t=>{let e=t.status;return t.isTimedOut||Idt(t)||~~(e/100)!==2&&~~(e/100)!==4},Bdt=({status:t})=>~~(t/100)===2,vdt=(t,e)=>wdt(t)?e.onRetry(t):Bdt(t)?e.onSuccess(t):e.onFail(t);function Iye(t,e,r,o){let a=[],n=kye(r,o),u=Qye(t,o),A=r.method,p=r.method!==wye.MethodEnum.Get?{}:{...r.data,...o.data},h={"x-algolia-agent":t.userAgent.value,...t.queryParameters,...p,...o.queryParameters},E=0,w=(D,x)=>{let C=D.pop();if(C===void 0)throw Tye(v6(a));let T={data:n,headers:u,method:A,url:bye(C,r.path,h),connectTimeout:x(E,t.timeouts.connect),responseTimeout:x(E,o.timeout)},L=J=>{let te={request:T,response:J,host:C,triesLeft:D.length};return a.push(te),te},U={onSuccess:J=>Pye(J),onRetry(J){let te=L(J);return J.isTimedOut&&E++,Promise.all([t.logger.info("Retryable failure",S6(te)),t.hostsCache.set(C,D6(C,J.isTimedOut?fC.Timeouted:fC.Down))]).then(()=>w(D,x))},onFail(J){throw L(J),Sye(J,v6(a))}};return t.requester.send(T).then(J=>vdt(J,U))};return Cdt(t.hostsCache,e).then(D=>w([...D.statelessHosts].reverse(),D.getTimeout))}function Ddt(t){let{hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,hosts:p,queryParameters:h,headers:E}=t,w={hostsCache:e,logger:r,requester:o,requestsCache:a,responsesCache:n,timeouts:u,userAgent:A,headers:E,queryParameters:h,hosts:p.map(D=>P6(D)),read(D,x){let C=B6(x,w.timeouts.read),T=()=>Iye(w,w.hosts.filter(J=>(J.accept&AB.Read)!==0),D,C);if((C.cacheable!==void 0?C.cacheable:D.cacheable)!==!0)return T();let U={request:D,mappedRequestOptions:C,transporter:{queryParameters:w.queryParameters,headers:w.headers}};return w.responsesCache.get(U,()=>w.requestsCache.get(U,()=>w.requestsCache.set(U,T()).then(J=>Promise.all([w.requestsCache.delete(U),J]),J=>Promise.all([w.requestsCache.delete(U),Promise.reject(J)])).then(([J,te])=>te)),{miss:J=>w.responsesCache.set(U,J)})},write(D,x){return Iye(w,w.hosts.filter(C=>(C.accept&AB.Write)!==0),D,B6(x,w.timeouts.write))}};return w}function Pdt(t){let e={value:`Algolia for JavaScript (${t})`,add(r){let o=`; ${r.segment}${r.version!==void 0?` (${r.version})`:""}`;return e.value.indexOf(o)===-1&&(e.value=`${e.value}${o}`),e}};return e}function Pye(t){try{return JSON.parse(t.content)}catch(e){throw Rye(e.message,t)}}function Sye({content:t,status:e},r){let o=t;try{o=JSON.parse(t).message}catch{}return Fye(o,e,r)}function Sdt(t,...e){let r=0;return t.replace(/%s/g,()=>encodeURIComponent(e[r++]))}function bye(t,e,r){let o=xye(r),a=`${t.protocol}://${t.url}/${e.charAt(0)==="/"?e.substr(1):e}`;return o.length&&(a+=`?${o}`),a}function xye(t){let e=r=>Object.prototype.toString.call(r)==="[object Object]"||Object.prototype.toString.call(r)==="[object Array]";return Object.keys(t).map(r=>Sdt("%s=%s",r,e(t[r])?JSON.stringify(t[r]):t[r])).join("&")}function kye(t,e){if(t.method===wye.MethodEnum.Get||t.data===void 0&&e.data===void 0)return;let r=Array.isArray(t.data)?t.data:{...t.data,...e.data};return JSON.stringify(r)}function Qye(t,e){let r={...t.headers,...e.headers},o={};return Object.keys(r).forEach(a=>{let n=r[a];o[a.toLowerCase()]=n}),o}function v6(t){return t.map(e=>S6(e))}function S6(t){let e=t.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...t,request:{...t.request,headers:{...t.request.headers,...e}}}}function Fye(t,e,r){return{name:"ApiError",message:t,status:e,transporterStackTrace:r}}function Rye(t,e){return{name:"DeserializationError",message:t,response:e}}function Tye(t){return{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:t}}Ti.CallEnum=AB;Ti.HostStatusEnum=fC;Ti.createApiError=Fye;Ti.createDeserializationError=Rye;Ti.createMappedRequestOptions=B6;Ti.createRetryError=Tye;Ti.createStatefulHost=D6;Ti.createStatelessHost=P6;Ti.createTransporter=Ddt;Ti.createUserAgent=Pdt;Ti.deserializeFailure=Sye;Ti.deserializeSuccess=Pye;Ti.isStatefulHostTimeouted=Dye;Ti.isStatefulHostUp=vye;Ti.serializeData=kye;Ti.serializeHeaders=Qye;Ti.serializeQueryParameters=xye;Ti.serializeUrl=bye;Ti.stackFrameWithoutCredentials=S6;Ti.stackTraceWithoutCredentials=v6});var fB=_((IYt,Lye)=>{Lye.exports=Nye()});var Oye=_(Mh=>{"use strict";Object.defineProperty(Mh,"__esModule",{value:!0});var pC=cB(),bdt=fB(),pB=uB(),xdt=t=>{let e=t.region||"us",r=pC.createAuth(pC.AuthMode.WithinHeaders,t.appId,t.apiKey),o=bdt.createTransporter({hosts:[{url:`analytics.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a=t.appId;return pC.addMethods({appId:a,transporter:o},t.methods)},kdt=t=>(e,r)=>t.transporter.write({method:pB.MethodEnum.Post,path:"2/abtests",data:e},r),Qdt=t=>(e,r)=>t.transporter.write({method:pB.MethodEnum.Delete,path:pC.encode("2/abtests/%s",e)},r),Fdt=t=>(e,r)=>t.transporter.read({method:pB.MethodEnum.Get,path:pC.encode("2/abtests/%s",e)},r),Rdt=t=>e=>t.transporter.read({method:pB.MethodEnum.Get,path:"2/abtests"},e),Tdt=t=>(e,r)=>t.transporter.write({method:pB.MethodEnum.Post,path:pC.encode("2/abtests/%s/stop",e)},r);Mh.addABTest=kdt;Mh.createAnalyticsClient=xdt;Mh.deleteABTest=Qdt;Mh.getABTest=Fdt;Mh.getABTests=Rdt;Mh.stopABTest=Tdt});var Uye=_((BYt,Mye)=>{Mye.exports=Oye()});var Hye=_(hB=>{"use strict";Object.defineProperty(hB,"__esModule",{value:!0});var b6=cB(),Ndt=fB(),_ye=uB(),Ldt=t=>{let e=t.region||"us",r=b6.createAuth(b6.AuthMode.WithinHeaders,t.appId,t.apiKey),o=Ndt.createTransporter({hosts:[{url:`personalization.${e}.algolia.com`}],...t,headers:{...r.headers(),"content-type":"application/json",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}});return b6.addMethods({appId:t.appId,transporter:o},t.methods)},Odt=t=>e=>t.transporter.read({method:_ye.MethodEnum.Get,path:"1/strategies/personalization"},e),Mdt=t=>(e,r)=>t.transporter.write({method:_ye.MethodEnum.Post,path:"1/strategies/personalization",data:e},r);hB.createPersonalizationClient=Ldt;hB.getPersonalizationStrategy=Odt;hB.setPersonalizationStrategy=Mdt});var jye=_((DYt,qye)=>{qye.exports=Hye()});var nEe=_(Rt=>{"use strict";Object.defineProperty(Rt,"__esModule",{value:!0});var Wt=cB(),Ma=fB(),Dr=uB(),Udt=ve("crypto");function rQ(t){let e=r=>t.request(r).then(o=>{if(t.batch!==void 0&&t.batch(o.hits),!t.shouldStop(o))return o.cursor?e({cursor:o.cursor}):e({page:(r.page||0)+1})});return e({})}var _dt=t=>{let e=t.appId,r=Wt.createAuth(t.authMode!==void 0?t.authMode:Wt.AuthMode.WithinHeaders,e,t.apiKey),o=Ma.createTransporter({hosts:[{url:`${e}-dsn.algolia.net`,accept:Ma.CallEnum.Read},{url:`${e}.algolia.net`,accept:Ma.CallEnum.Write}].concat(Wt.shuffle([{url:`${e}-1.algolianet.com`},{url:`${e}-2.algolianet.com`},{url:`${e}-3.algolianet.com`}])),...t,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...t.headers},queryParameters:{...r.queryParameters(),...t.queryParameters}}),a={transporter:o,appId:e,addAlgoliaAgent(n,u){o.userAgent.add({segment:n,version:u})},clearCache(){return Promise.all([o.requestsCache.clear(),o.responsesCache.clear()]).then(()=>{})}};return Wt.addMethods(a,t.methods)};function Gye(){return{name:"MissingObjectIDError",message:"All objects must have an unique objectID (like a primary key) to be valid. Algolia is also able to generate objectIDs automatically but *it's not recommended*. To do it, use the `{'autoGenerateObjectIDIfNotExist': true}` option."}}function Wye(){return{name:"ObjectNotFoundError",message:"Object not found."}}function Yye(){return{name:"ValidUntilNotFoundError",message:"ValidUntil not found in given secured api key."}}var Hdt=t=>(e,r)=>{let{queryParameters:o,...a}=r||{},n={acl:e,...o!==void 0?{queryParameters:o}:{}},u=(A,p)=>Wt.createRetryablePromise(h=>gB(t)(A.key,p).catch(E=>{if(E.status!==404)throw E;return h()}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:"1/keys",data:n},a),u)},qdt=t=>(e,r,o)=>{let a=Ma.createMappedRequestOptions(o);return a.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Dr.MethodEnum.Post,path:"1/clusters/mapping",data:{cluster:r}},a)},jdt=t=>(e,r,o)=>t.transporter.write({method:Dr.MethodEnum.Post,path:"1/clusters/mapping/batch",data:{users:e,cluster:r}},o),Gdt=t=>(e,r)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:{action:"addEntry",body:[]}}},r),(o,a)=>hC(t)(o.taskID,a)),nQ=t=>(e,r,o)=>{let a=(n,u)=>dB(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",e),data:{operation:"copy",destination:r}},o),a)},Wdt=t=>(e,r,o)=>nQ(t)(e,r,{...o,scope:[sQ.Rules]}),Ydt=t=>(e,r,o)=>nQ(t)(e,r,{...o,scope:[sQ.Settings]}),Kdt=t=>(e,r,o)=>nQ(t)(e,r,{...o,scope:[sQ.Synonyms]}),Vdt=t=>(e,r)=>e.method===Dr.MethodEnum.Get?t.transporter.read(e,r):t.transporter.write(e,r),Jdt=t=>(e,r)=>{let o=(a,n)=>Wt.createRetryablePromise(u=>gB(t)(e,n).then(u).catch(A=>{if(A.status!==404)throw A}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/keys/%s",e)},r),o)},zdt=t=>(e,r,o)=>{let a=r.map(n=>({action:"deleteEntry",body:{objectID:n}}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>hC(t)(n.taskID,u))},Xdt=()=>(t,e)=>{let r=Ma.serializeQueryParameters(e),o=Udt.createHmac("sha256",t).update(r).digest("hex");return Buffer.from(o+r).toString("base64")},gB=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/keys/%s",e)},r),Kye=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/task/%s",e.toString())},r),Zdt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"/1/dictionaries/*/settings"},e),$dt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/logs"},e),emt=()=>t=>{let e=Buffer.from(t,"base64").toString("ascii"),r=/validUntil=(\d+)/,o=e.match(r);if(o===null)throw Yye();return parseInt(o[1],10)-Math.round(new Date().getTime()/1e3)},tmt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters/mapping/top"},e),rmt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/clusters/mapping/%s",e)},r),nmt=t=>e=>{let{retrieveMappings:r,...o}=e||{};return r===!0&&(o.getClusters=!0),t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters/mapping/pending"},o)},dB=t=>(e,r={})=>{let o={transporter:t.transporter,appId:t.appId,indexName:e};return Wt.addMethods(o,r.methods)},imt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/keys"},e),smt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters"},e),omt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/indexes"},e),amt=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:"1/clusters/mapping"},e),lmt=t=>(e,r,o)=>{let a=(n,u)=>dB(t)(e,{methods:{waitTask:es}}).waitTask(n.taskID,u);return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",e),data:{operation:"move",destination:r}},o),a)},cmt=t=>(e,r)=>{let o=(a,n)=>Promise.all(Object.keys(a.taskID).map(u=>dB(t)(u,{methods:{waitTask:es}}).waitTask(a.taskID[u],n)));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:"1/indexes/*/batch",data:{requests:e}},r),o)},umt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:e}},r),Amt=t=>(e,r)=>{let o=e.map(a=>({...a,params:Ma.serializeQueryParameters(a.params||{})}));return t.transporter.read({method:Dr.MethodEnum.Post,path:"1/indexes/*/queries",data:{requests:o},cacheable:!0},r)},fmt=t=>(e,r)=>Promise.all(e.map(o=>{let{facetName:a,facetQuery:n,...u}=o.params;return dB(t)(o.indexName,{methods:{searchForFacetValues:eEe}}).searchForFacetValues(a,n,{...r,...u})})),pmt=t=>(e,r)=>{let o=Ma.createMappedRequestOptions(r);return o.queryParameters["X-Algolia-User-ID"]=e,t.transporter.write({method:Dr.MethodEnum.Delete,path:"1/clusters/mapping"},o)},hmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!0,requests:a}},o),(n,u)=>hC(t)(n.taskID,u))},gmt=t=>(e,r)=>{let o=(a,n)=>Wt.createRetryablePromise(u=>gB(t)(e,n).catch(A=>{if(A.status!==404)throw A;return u()}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/keys/%s/restore",e)},r),o)},dmt=t=>(e,r,o)=>{let a=r.map(n=>({action:"addEntry",body:n}));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/batch",e),data:{clearExistingDictionaryEntries:!1,requests:a}},o),(n,u)=>hC(t)(n.taskID,u))},mmt=t=>(e,r,o)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("/1/dictionaries/%s/search",e),data:{query:r},cacheable:!0},o),ymt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:"1/clusters/mapping/search",data:{query:e}},r),Emt=t=>(e,r)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Put,path:"/1/dictionaries/*/settings",data:e},r),(o,a)=>hC(t)(o.taskID,a)),Cmt=t=>(e,r)=>{let o=Object.assign({},r),{queryParameters:a,...n}=r||{},u=a?{queryParameters:a}:{},A=["acl","indexes","referers","restrictSources","queryParameters","description","maxQueriesPerIPPerHour","maxHitsPerQuery"],p=E=>Object.keys(o).filter(w=>A.indexOf(w)!==-1).every(w=>{if(Array.isArray(E[w])&&Array.isArray(o[w])){let D=E[w];return D.length===o[w].length&&D.every((x,C)=>x===o[w][C])}else return E[w]===o[w]}),h=(E,w)=>Wt.createRetryablePromise(D=>gB(t)(e,w).then(x=>p(x)?Promise.resolve():D()));return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Put,path:Wt.encode("1/keys/%s",e),data:u},n),h)},hC=t=>(e,r)=>Wt.createRetryablePromise(o=>Kye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),Vye=t=>(e,r)=>{let o=(a,n)=>es(t)(a.taskID,n);return Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/batch",t.indexName),data:{requests:e}},r),o)},Imt=t=>e=>rQ({shouldStop:r=>r.cursor===void 0,...e,request:r=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/browse",t.indexName),data:r},e)}),wmt=t=>e=>{let r={hitsPerPage:1e3,...e};return rQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},Bmt=t=>e=>{let r={hitsPerPage:1e3,...e};return rQ({shouldStop:o=>o.hits.length({...a,hits:a.hits.map(n=>(delete n._highlightResult,n))}))}})},iQ=t=>(e,r,o)=>{let{batchSize:a,...n}=o||{},u={taskIDs:[],objectIDs:[]},A=(p=0)=>{let h=[],E;for(E=p;E({action:r,body:w})),n).then(w=>(u.objectIDs=u.objectIDs.concat(w.objectIDs),u.taskIDs.push(w.taskID),E++,A(E)))};return Wt.createWaitablePromise(A(),(p,h)=>Promise.all(p.taskIDs.map(E=>es(t)(E,h))))},vmt=t=>e=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/clear",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),Dmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Pmt=t=>e=>{let{forwardToReplicas:r,...o}=e||{},a=Ma.createMappedRequestOptions(o);return r&&(a.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/clear",t.indexName)},a),(n,u)=>es(t)(n.taskID,u))},Smt=t=>(e,r)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/deleteByQuery",t.indexName),data:e},r),(o,a)=>es(t)(o.taskID,a)),bmt=t=>e=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/indexes/%s",t.indexName)},e),(r,o)=>es(t)(r.taskID,o)),xmt=t=>(e,r)=>Wt.createWaitablePromise(Jye(t)([e],r).then(o=>({taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),Jye=t=>(e,r)=>{let o=e.map(a=>({objectID:a}));return iQ(t)(o,ed.DeleteObject,r)},kmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/indexes/%s/rules/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},Qmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Delete,path:Wt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},n),(u,A)=>es(t)(u.taskID,A))},Fmt=t=>e=>zye(t)(e).then(()=>!0).catch(r=>{if(r.status!==404)throw r;return!1}),Rmt=t=>(e,r,o)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/answers/%s/prediction",t.indexName),data:{query:e,queryLanguages:r},cacheable:!0},o),Tmt=t=>(e,r)=>{let{query:o,paginate:a,...n}=r||{},u=0,A=()=>$ye(t)(o||"",{...n,page:u}).then(p=>{for(let[h,E]of Object.entries(p.hits))if(e(E))return{object:E,position:parseInt(h,10),page:u};if(u++,a===!1||u>=p.nbPages)throw Wye();return A()});return A()},Nmt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/%s",t.indexName,e)},r),Lmt=()=>(t,e)=>{for(let[r,o]of Object.entries(t.hits))if(o.objectID===e)return parseInt(r,10);return-1},Omt=t=>(e,r)=>{let{attributesToRetrieve:o,...a}=r||{},n=e.map(u=>({indexName:t.indexName,objectID:u,...o?{attributesToRetrieve:o}:{}}));return t.transporter.read({method:Dr.MethodEnum.Post,path:"1/indexes/*/objects",data:{requests:n}},a)},Mmt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/rules/%s",t.indexName,e)},r),zye=t=>e=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/settings",t.indexName),data:{getVersion:2}},e),Umt=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/synonyms/%s",t.indexName,e)},r),Xye=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Get,path:Wt.encode("1/indexes/%s/task/%s",t.indexName,e.toString())},r),_mt=t=>(e,r)=>Wt.createWaitablePromise(Zye(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),Zye=t=>(e,r)=>{let{createIfNotExists:o,...a}=r||{},n=o?ed.PartialUpdateObject:ed.PartialUpdateObjectNoCreate;return iQ(t)(e,n,a)},Hmt=t=>(e,r)=>{let{safe:o,autoGenerateObjectIDIfNotExist:a,batchSize:n,...u}=r||{},A=(C,T,L,U)=>Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/operation",C),data:{operation:L,destination:T}},U),(J,te)=>es(t)(J.taskID,te)),p=Math.random().toString(36).substring(7),h=`${t.indexName}_tmp_${p}`,E=x6({appId:t.appId,transporter:t.transporter,indexName:h}),w=[],D=A(t.indexName,h,"copy",{...u,scope:["settings","synonyms","rules"]});w.push(D);let x=(o?D.wait(u):D).then(()=>{let C=E(e,{...u,autoGenerateObjectIDIfNotExist:a,batchSize:n});return w.push(C),o?C.wait(u):C}).then(()=>{let C=A(h,t.indexName,"move",u);return w.push(C),o?C.wait(u):C}).then(()=>Promise.all(w)).then(([C,T,L])=>({objectIDs:T.objectIDs,taskIDs:[C.taskID,...T.taskIDs,L.taskID]}));return Wt.createWaitablePromise(x,(C,T)=>Promise.all(w.map(L=>L.wait(T))))},qmt=t=>(e,r)=>k6(t)(e,{...r,clearExistingRules:!0}),jmt=t=>(e,r)=>Q6(t)(e,{...r,clearExistingSynonyms:!0}),Gmt=t=>(e,r)=>Wt.createWaitablePromise(x6(t)([e],r).then(o=>({objectID:o.objectIDs[0],taskID:o.taskIDs[0]})),(o,a)=>es(t)(o.taskID,a)),x6=t=>(e,r)=>{let{autoGenerateObjectIDIfNotExist:o,...a}=r||{},n=o?ed.AddObject:ed.UpdateObject;if(n===ed.UpdateObject){for(let u of e)if(u.objectID===void 0)return Wt.createWaitablePromise(Promise.reject(Gye()))}return iQ(t)(e,n,a)},Wmt=t=>(e,r)=>k6(t)([e],r),k6=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingRules:a,...n}=r||{},u=Ma.createMappedRequestOptions(n);return o&&(u.queryParameters.forwardToReplicas=1),a&&(u.queryParameters.clearExistingRules=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/batch",t.indexName),data:e},u),(A,p)=>es(t)(A.taskID,p))},Ymt=t=>(e,r)=>Q6(t)([e],r),Q6=t=>(e,r)=>{let{forwardToReplicas:o,clearExistingSynonyms:a,replaceExistingSynonyms:n,...u}=r||{},A=Ma.createMappedRequestOptions(u);return o&&(A.queryParameters.forwardToReplicas=1),(n||a)&&(A.queryParameters.replaceExistingSynonyms=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/batch",t.indexName),data:e},A),(p,h)=>es(t)(p.taskID,h))},$ye=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/query",t.indexName),data:{query:e},cacheable:!0},r),eEe=t=>(e,r,o)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/facets/%s/query",t.indexName,e),data:{facetQuery:r},cacheable:!0},o),tEe=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/rules/search",t.indexName),data:{query:e}},r),rEe=t=>(e,r)=>t.transporter.read({method:Dr.MethodEnum.Post,path:Wt.encode("1/indexes/%s/synonyms/search",t.indexName),data:{query:e}},r),Kmt=t=>(e,r)=>{let{forwardToReplicas:o,...a}=r||{},n=Ma.createMappedRequestOptions(a);return o&&(n.queryParameters.forwardToReplicas=1),Wt.createWaitablePromise(t.transporter.write({method:Dr.MethodEnum.Put,path:Wt.encode("1/indexes/%s/settings",t.indexName),data:e},n),(u,A)=>es(t)(u.taskID,A))},es=t=>(e,r)=>Wt.createRetryablePromise(o=>Xye(t)(e,r).then(a=>a.status!=="published"?o():void 0)),Vmt={AddObject:"addObject",Analytics:"analytics",Browser:"browse",DeleteIndex:"deleteIndex",DeleteObject:"deleteObject",EditSettings:"editSettings",Inference:"inference",ListIndexes:"listIndexes",Logs:"logs",Personalization:"personalization",Recommendation:"recommendation",Search:"search",SeeUnretrievableAttributes:"seeUnretrievableAttributes",Settings:"settings",Usage:"usage"},ed={AddObject:"addObject",UpdateObject:"updateObject",PartialUpdateObject:"partialUpdateObject",PartialUpdateObjectNoCreate:"partialUpdateObjectNoCreate",DeleteObject:"deleteObject",DeleteIndex:"delete",ClearIndex:"clear"},sQ={Settings:"settings",Synonyms:"synonyms",Rules:"rules"},Jmt={None:"none",StopIfEnoughMatches:"stopIfEnoughMatches"},zmt={Synonym:"synonym",OneWaySynonym:"oneWaySynonym",AltCorrection1:"altCorrection1",AltCorrection2:"altCorrection2",Placeholder:"placeholder"};Rt.ApiKeyACLEnum=Vmt;Rt.BatchActionEnum=ed;Rt.ScopeEnum=sQ;Rt.StrategyEnum=Jmt;Rt.SynonymEnum=zmt;Rt.addApiKey=Hdt;Rt.assignUserID=qdt;Rt.assignUserIDs=jdt;Rt.batch=Vye;Rt.browseObjects=Imt;Rt.browseRules=wmt;Rt.browseSynonyms=Bmt;Rt.chunkedBatch=iQ;Rt.clearDictionaryEntries=Gdt;Rt.clearObjects=vmt;Rt.clearRules=Dmt;Rt.clearSynonyms=Pmt;Rt.copyIndex=nQ;Rt.copyRules=Wdt;Rt.copySettings=Ydt;Rt.copySynonyms=Kdt;Rt.createBrowsablePromise=rQ;Rt.createMissingObjectIDError=Gye;Rt.createObjectNotFoundError=Wye;Rt.createSearchClient=_dt;Rt.createValidUntilNotFoundError=Yye;Rt.customRequest=Vdt;Rt.deleteApiKey=Jdt;Rt.deleteBy=Smt;Rt.deleteDictionaryEntries=zdt;Rt.deleteIndex=bmt;Rt.deleteObject=xmt;Rt.deleteObjects=Jye;Rt.deleteRule=kmt;Rt.deleteSynonym=Qmt;Rt.exists=Fmt;Rt.findAnswers=Rmt;Rt.findObject=Tmt;Rt.generateSecuredApiKey=Xdt;Rt.getApiKey=gB;Rt.getAppTask=Kye;Rt.getDictionarySettings=Zdt;Rt.getLogs=$dt;Rt.getObject=Nmt;Rt.getObjectPosition=Lmt;Rt.getObjects=Omt;Rt.getRule=Mmt;Rt.getSecuredApiKeyRemainingValidity=emt;Rt.getSettings=zye;Rt.getSynonym=Umt;Rt.getTask=Xye;Rt.getTopUserIDs=tmt;Rt.getUserID=rmt;Rt.hasPendingMappings=nmt;Rt.initIndex=dB;Rt.listApiKeys=imt;Rt.listClusters=smt;Rt.listIndices=omt;Rt.listUserIDs=amt;Rt.moveIndex=lmt;Rt.multipleBatch=cmt;Rt.multipleGetObjects=umt;Rt.multipleQueries=Amt;Rt.multipleSearchForFacetValues=fmt;Rt.partialUpdateObject=_mt;Rt.partialUpdateObjects=Zye;Rt.removeUserID=pmt;Rt.replaceAllObjects=Hmt;Rt.replaceAllRules=qmt;Rt.replaceAllSynonyms=jmt;Rt.replaceDictionaryEntries=hmt;Rt.restoreApiKey=gmt;Rt.saveDictionaryEntries=dmt;Rt.saveObject=Gmt;Rt.saveObjects=x6;Rt.saveRule=Wmt;Rt.saveRules=k6;Rt.saveSynonym=Ymt;Rt.saveSynonyms=Q6;Rt.search=$ye;Rt.searchDictionaryEntries=mmt;Rt.searchForFacetValues=eEe;Rt.searchRules=tEe;Rt.searchSynonyms=rEe;Rt.searchUserIDs=ymt;Rt.setDictionarySettings=Emt;Rt.setSettings=Kmt;Rt.updateApiKey=Cmt;Rt.waitAppTask=hC;Rt.waitTask=es});var sEe=_((SYt,iEe)=>{iEe.exports=nEe()});var oEe=_(oQ=>{"use strict";Object.defineProperty(oQ,"__esModule",{value:!0});function Xmt(){return{debug(t,e){return Promise.resolve()},info(t,e){return Promise.resolve()},error(t,e){return Promise.resolve()}}}var Zmt={Debug:1,Info:2,Error:3};oQ.LogLevelEnum=Zmt;oQ.createNullLogger=Xmt});var lEe=_((xYt,aEe)=>{aEe.exports=oEe()});var fEe=_(F6=>{"use strict";Object.defineProperty(F6,"__esModule",{value:!0});var cEe=ve("http"),uEe=ve("https"),$mt=ve("url"),AEe={keepAlive:!0},eyt=new cEe.Agent(AEe),tyt=new uEe.Agent(AEe);function ryt({agent:t,httpAgent:e,httpsAgent:r,requesterOptions:o={}}={}){let a=e||t||eyt,n=r||t||tyt;return{send(u){return new Promise(A=>{let p=$mt.parse(u.url),h=p.query===null?p.pathname:`${p.pathname}?${p.query}`,E={...o,agent:p.protocol==="https:"?n:a,hostname:p.hostname,path:h,method:u.method,headers:{...o&&o.headers?o.headers:{},...u.headers},...p.port!==void 0?{port:p.port||""}:{}},w=(p.protocol==="https:"?uEe:cEe).request(E,T=>{let L=[];T.on("data",U=>{L=L.concat(U)}),T.on("end",()=>{clearTimeout(x),clearTimeout(C),A({status:T.statusCode||0,content:Buffer.concat(L).toString(),isTimedOut:!1})})}),D=(T,L)=>setTimeout(()=>{w.abort(),A({status:0,content:L,isTimedOut:!0})},T*1e3),x=D(u.connectTimeout,"Connection timeout"),C;w.on("error",T=>{clearTimeout(x),clearTimeout(C),A({status:0,content:T.message,isTimedOut:!1})}),w.once("response",()=>{clearTimeout(x),C=D(u.responseTimeout,"Socket timeout")}),u.data!==void 0&&w.write(u.data),w.end()})},destroy(){return a.destroy(),n.destroy(),Promise.resolve()}}}F6.createNodeHttpRequester=ryt});var hEe=_((QYt,pEe)=>{pEe.exports=fEe()});var yEe=_((FYt,mEe)=>{"use strict";var gEe=fye(),nyt=gye(),gC=Uye(),T6=cB(),R6=jye(),Ht=sEe(),iyt=lEe(),syt=hEe(),oyt=fB();function dEe(t,e,r){let o={appId:t,apiKey:e,timeouts:{connect:2,read:5,write:30},requester:syt.createNodeHttpRequester(),logger:iyt.createNullLogger(),responsesCache:gEe.createNullCache(),requestsCache:gEe.createNullCache(),hostsCache:nyt.createInMemoryCache(),userAgent:oyt.createUserAgent(T6.version).add({segment:"Node.js",version:process.versions.node})},a={...o,...r},n=()=>u=>R6.createPersonalizationClient({...o,...u,methods:{getPersonalizationStrategy:R6.getPersonalizationStrategy,setPersonalizationStrategy:R6.setPersonalizationStrategy}});return Ht.createSearchClient({...a,methods:{search:Ht.multipleQueries,searchForFacetValues:Ht.multipleSearchForFacetValues,multipleBatch:Ht.multipleBatch,multipleGetObjects:Ht.multipleGetObjects,multipleQueries:Ht.multipleQueries,copyIndex:Ht.copyIndex,copySettings:Ht.copySettings,copyRules:Ht.copyRules,copySynonyms:Ht.copySynonyms,moveIndex:Ht.moveIndex,listIndices:Ht.listIndices,getLogs:Ht.getLogs,listClusters:Ht.listClusters,multipleSearchForFacetValues:Ht.multipleSearchForFacetValues,getApiKey:Ht.getApiKey,addApiKey:Ht.addApiKey,listApiKeys:Ht.listApiKeys,updateApiKey:Ht.updateApiKey,deleteApiKey:Ht.deleteApiKey,restoreApiKey:Ht.restoreApiKey,assignUserID:Ht.assignUserID,assignUserIDs:Ht.assignUserIDs,getUserID:Ht.getUserID,searchUserIDs:Ht.searchUserIDs,listUserIDs:Ht.listUserIDs,getTopUserIDs:Ht.getTopUserIDs,removeUserID:Ht.removeUserID,hasPendingMappings:Ht.hasPendingMappings,generateSecuredApiKey:Ht.generateSecuredApiKey,getSecuredApiKeyRemainingValidity:Ht.getSecuredApiKeyRemainingValidity,destroy:T6.destroy,clearDictionaryEntries:Ht.clearDictionaryEntries,deleteDictionaryEntries:Ht.deleteDictionaryEntries,getDictionarySettings:Ht.getDictionarySettings,getAppTask:Ht.getAppTask,replaceDictionaryEntries:Ht.replaceDictionaryEntries,saveDictionaryEntries:Ht.saveDictionaryEntries,searchDictionaryEntries:Ht.searchDictionaryEntries,setDictionarySettings:Ht.setDictionarySettings,waitAppTask:Ht.waitAppTask,customRequest:Ht.customRequest,initIndex:u=>A=>Ht.initIndex(u)(A,{methods:{batch:Ht.batch,delete:Ht.deleteIndex,findAnswers:Ht.findAnswers,getObject:Ht.getObject,getObjects:Ht.getObjects,saveObject:Ht.saveObject,saveObjects:Ht.saveObjects,search:Ht.search,searchForFacetValues:Ht.searchForFacetValues,waitTask:Ht.waitTask,setSettings:Ht.setSettings,getSettings:Ht.getSettings,partialUpdateObject:Ht.partialUpdateObject,partialUpdateObjects:Ht.partialUpdateObjects,deleteObject:Ht.deleteObject,deleteObjects:Ht.deleteObjects,deleteBy:Ht.deleteBy,clearObjects:Ht.clearObjects,browseObjects:Ht.browseObjects,getObjectPosition:Ht.getObjectPosition,findObject:Ht.findObject,exists:Ht.exists,saveSynonym:Ht.saveSynonym,saveSynonyms:Ht.saveSynonyms,getSynonym:Ht.getSynonym,searchSynonyms:Ht.searchSynonyms,browseSynonyms:Ht.browseSynonyms,deleteSynonym:Ht.deleteSynonym,clearSynonyms:Ht.clearSynonyms,replaceAllObjects:Ht.replaceAllObjects,replaceAllSynonyms:Ht.replaceAllSynonyms,searchRules:Ht.searchRules,getRule:Ht.getRule,deleteRule:Ht.deleteRule,saveRule:Ht.saveRule,saveRules:Ht.saveRules,replaceAllRules:Ht.replaceAllRules,browseRules:Ht.browseRules,clearRules:Ht.clearRules}}),initAnalytics:()=>u=>gC.createAnalyticsClient({...o,...u,methods:{addABTest:gC.addABTest,getABTest:gC.getABTest,getABTests:gC.getABTests,stopABTest:gC.stopABTest,deleteABTest:gC.deleteABTest}}),initPersonalization:n,initRecommendation:()=>u=>(a.logger.info("The `initRecommendation` method is deprecated. Use `initPersonalization` instead."),n()(u))}})}dEe.version=T6.version;mEe.exports=dEe});var L6=_((RYt,N6)=>{var EEe=yEe();N6.exports=EEe;N6.exports.default=EEe});var U6=_((NYt,wEe)=>{"use strict";var IEe=Object.getOwnPropertySymbols,lyt=Object.prototype.hasOwnProperty,cyt=Object.prototype.propertyIsEnumerable;function uyt(t){if(t==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}function Ayt(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de",Object.getOwnPropertyNames(t)[0]==="5")return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;var o=Object.getOwnPropertyNames(e).map(function(n){return e[n]});if(o.join("")!=="0123456789")return!1;var a={};return"abcdefghijklmnopqrst".split("").forEach(function(n){a[n]=n}),Object.keys(Object.assign({},a)).join("")==="abcdefghijklmnopqrst"}catch{return!1}}wEe.exports=Ayt()?Object.assign:function(t,e){for(var r,o=uyt(t),a,n=1;n{"use strict";var H6=U6(),dC=60103,DEe=60106;Cn.Fragment=60107;Cn.StrictMode=60108;Cn.Profiler=60114;var PEe=60109,SEe=60110,bEe=60112;Cn.Suspense=60113;var xEe=60115,kEe=60116;typeof Symbol=="function"&&Symbol.for&&(sc=Symbol.for,dC=sc("react.element"),DEe=sc("react.portal"),Cn.Fragment=sc("react.fragment"),Cn.StrictMode=sc("react.strict_mode"),Cn.Profiler=sc("react.profiler"),PEe=sc("react.provider"),SEe=sc("react.context"),bEe=sc("react.forward_ref"),Cn.Suspense=sc("react.suspense"),xEe=sc("react.memo"),kEe=sc("react.lazy"));var sc,BEe=typeof Symbol=="function"&&Symbol.iterator;function fyt(t){return t===null||typeof t!="object"?null:(t=BEe&&t[BEe]||t["@@iterator"],typeof t=="function"?t:null)}function mB(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,r=1;r{"use strict";UEe.exports=MEe()});var K6=_((MYt,Y6)=>{"use strict";var gn=Y6.exports;Y6.exports.default=gn;var Gn="\x1B[",yB="\x1B]",yC="\x07",cQ=";",_Ee=process.env.TERM_PROGRAM==="Apple_Terminal";gn.cursorTo=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");return typeof e!="number"?Gn+(t+1)+"G":Gn+(e+1)+";"+(t+1)+"H"};gn.cursorMove=(t,e)=>{if(typeof t!="number")throw new TypeError("The `x` argument is required");let r="";return t<0?r+=Gn+-t+"D":t>0&&(r+=Gn+t+"C"),e<0?r+=Gn+-e+"A":e>0&&(r+=Gn+e+"B"),r};gn.cursorUp=(t=1)=>Gn+t+"A";gn.cursorDown=(t=1)=>Gn+t+"B";gn.cursorForward=(t=1)=>Gn+t+"C";gn.cursorBackward=(t=1)=>Gn+t+"D";gn.cursorLeft=Gn+"G";gn.cursorSavePosition=_Ee?"\x1B7":Gn+"s";gn.cursorRestorePosition=_Ee?"\x1B8":Gn+"u";gn.cursorGetPosition=Gn+"6n";gn.cursorNextLine=Gn+"E";gn.cursorPrevLine=Gn+"F";gn.cursorHide=Gn+"?25l";gn.cursorShow=Gn+"?25h";gn.eraseLines=t=>{let e="";for(let r=0;r[yB,"8",cQ,cQ,e,yC,t,yB,"8",cQ,cQ,yC].join("");gn.image=(t,e={})=>{let r=`${yB}1337;File=inline=1`;return e.width&&(r+=`;width=${e.width}`),e.height&&(r+=`;height=${e.height}`),e.preserveAspectRatio===!1&&(r+=";preserveAspectRatio=0"),r+":"+t.toString("base64")+yC};gn.iTerm={setCwd:(t=process.cwd())=>`${yB}50;CurrentDir=${t}${yC}`,annotation:(t,e={})=>{let r=`${yB}1337;`,o=typeof e.x<"u",a=typeof e.y<"u";if((o||a)&&!(o&&a&&typeof e.length<"u"))throw new Error("`x`, `y` and `length` must be defined when `x` or `y` is defined");return t=t.replace(/\|/g,""),r+=e.isHidden?"AddHiddenAnnotation=":"AddAnnotation=",e.length>0?r+=(o?[t,e.length,e.x,e.y]:[e.length,t]).join("|"):r+=t,r+yC}}});var qEe=_((UYt,V6)=>{"use strict";var HEe=(t,e)=>{for(let r of Reflect.ownKeys(e))Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r));return t};V6.exports=HEe;V6.exports.default=HEe});var GEe=_((_Yt,AQ)=>{"use strict";var myt=qEe(),uQ=new WeakMap,jEe=(t,e={})=>{if(typeof t!="function")throw new TypeError("Expected a function");let r,o=0,a=t.displayName||t.name||"",n=function(...u){if(uQ.set(n,++o),o===1)r=t.apply(this,u),t=null;else if(e.throw===!0)throw new Error(`Function \`${a}\` can only be called once`);return r};return myt(n,t),uQ.set(n,o),n};AQ.exports=jEe;AQ.exports.default=jEe;AQ.exports.callCount=t=>{if(!uQ.has(t))throw new Error(`The given function \`${t.name}\` is not wrapped by the \`onetime\` package`);return uQ.get(t)}});var WEe=_((HYt,fQ)=>{fQ.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"];process.platform!=="win32"&&fQ.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT");process.platform==="linux"&&fQ.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")});var X6=_((qYt,IC)=>{var wi=global.process,td=function(t){return t&&typeof t=="object"&&typeof t.removeListener=="function"&&typeof t.emit=="function"&&typeof t.reallyExit=="function"&&typeof t.listeners=="function"&&typeof t.kill=="function"&&typeof t.pid=="number"&&typeof t.on=="function"};td(wi)?(YEe=ve("assert"),EC=WEe(),KEe=/^win/i.test(wi.platform),EB=ve("events"),typeof EB!="function"&&(EB=EB.EventEmitter),wi.__signal_exit_emitter__?ks=wi.__signal_exit_emitter__:(ks=wi.__signal_exit_emitter__=new EB,ks.count=0,ks.emitted={}),ks.infinite||(ks.setMaxListeners(1/0),ks.infinite=!0),IC.exports=function(t,e){if(!td(global.process))return function(){};YEe.equal(typeof t,"function","a callback must be provided for exit handler"),CC===!1&&J6();var r="exit";e&&e.alwaysLast&&(r="afterexit");var o=function(){ks.removeListener(r,t),ks.listeners("exit").length===0&&ks.listeners("afterexit").length===0&&pQ()};return ks.on(r,t),o},pQ=function(){!CC||!td(global.process)||(CC=!1,EC.forEach(function(e){try{wi.removeListener(e,hQ[e])}catch{}}),wi.emit=gQ,wi.reallyExit=z6,ks.count-=1)},IC.exports.unload=pQ,rd=function(e,r,o){ks.emitted[e]||(ks.emitted[e]=!0,ks.emit(e,r,o))},hQ={},EC.forEach(function(t){hQ[t]=function(){if(td(global.process)){var r=wi.listeners(t);r.length===ks.count&&(pQ(),rd("exit",null,t),rd("afterexit",null,t),KEe&&t==="SIGHUP"&&(t="SIGINT"),wi.kill(wi.pid,t))}}}),IC.exports.signals=function(){return EC},CC=!1,J6=function(){CC||!td(global.process)||(CC=!0,ks.count+=1,EC=EC.filter(function(e){try{return wi.on(e,hQ[e]),!0}catch{return!1}}),wi.emit=JEe,wi.reallyExit=VEe)},IC.exports.load=J6,z6=wi.reallyExit,VEe=function(e){td(global.process)&&(wi.exitCode=e||0,rd("exit",wi.exitCode,null),rd("afterexit",wi.exitCode,null),z6.call(wi,wi.exitCode))},gQ=wi.emit,JEe=function(e,r){if(e==="exit"&&td(global.process)){r!==void 0&&(wi.exitCode=r);var o=gQ.apply(this,arguments);return rd("exit",wi.exitCode,null),rd("afterexit",wi.exitCode,null),o}else return gQ.apply(this,arguments)}):IC.exports=function(){return function(){}};var YEe,EC,KEe,EB,ks,pQ,rd,hQ,CC,J6,z6,VEe,gQ,JEe});var XEe=_((jYt,zEe)=>{"use strict";var yyt=GEe(),Eyt=X6();zEe.exports=yyt(()=>{Eyt(()=>{process.stderr.write("\x1B[?25h")},{alwaysLast:!0})})});var Z6=_(wC=>{"use strict";var Cyt=XEe(),dQ=!1;wC.show=(t=process.stderr)=>{t.isTTY&&(dQ=!1,t.write("\x1B[?25h"))};wC.hide=(t=process.stderr)=>{t.isTTY&&(Cyt(),dQ=!0,t.write("\x1B[?25l"))};wC.toggle=(t,e)=>{t!==void 0&&(dQ=t),dQ?wC.show(e):wC.hide(e)}});var tCe=_(CB=>{"use strict";var eCe=CB&&CB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(CB,"__esModule",{value:!0});var ZEe=eCe(K6()),$Ee=eCe(Z6()),Iyt=(t,{showCursor:e=!1}={})=>{let r=0,o="",a=!1,n=u=>{!e&&!a&&($Ee.default.hide(),a=!0);let A=u+` +`;A!==o&&(o=A,t.write(ZEe.default.eraseLines(r)+A),r=A.split(` +`).length)};return n.clear=()=>{t.write(ZEe.default.eraseLines(r)),o="",r=0},n.done=()=>{o="",r=0,e||($Ee.default.show(),a=!1)},n};CB.default={create:Iyt}});var rCe=_((YYt,wyt)=>{wyt.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY_BUILD_BASE",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}}]});var sCe=_(Cl=>{"use strict";var iCe=rCe(),gA=process.env;Object.defineProperty(Cl,"_vendors",{value:iCe.map(function(t){return t.constant})});Cl.name=null;Cl.isPR=null;iCe.forEach(function(t){var e=Array.isArray(t.env)?t.env:[t.env],r=e.every(function(o){return nCe(o)});if(Cl[t.constant]=r,r)switch(Cl.name=t.name,typeof t.pr){case"string":Cl.isPR=!!gA[t.pr];break;case"object":"env"in t.pr?Cl.isPR=t.pr.env in gA&&gA[t.pr.env]!==t.pr.ne:"any"in t.pr?Cl.isPR=t.pr.any.some(function(o){return!!gA[o]}):Cl.isPR=nCe(t.pr);break;default:Cl.isPR=null}});Cl.isCI=!!(gA.CI||gA.CONTINUOUS_INTEGRATION||gA.BUILD_NUMBER||gA.RUN_ID||Cl.name);function nCe(t){return typeof t=="string"?!!gA[t]:Object.keys(t).every(function(e){return gA[e]===t[e]})}});var aCe=_((VYt,oCe)=>{"use strict";oCe.exports=sCe().isCI});var cCe=_((JYt,lCe)=>{"use strict";var Byt=t=>{let e=new Set;do for(let r of Reflect.ownKeys(t))e.add([t,r]);while((t=Reflect.getPrototypeOf(t))&&t!==Object.prototype);return e};lCe.exports=(t,{include:e,exclude:r}={})=>{let o=a=>{let n=u=>typeof u=="string"?a===u:u.test(a);return e?e.some(n):r?!r.some(n):!0};for(let[a,n]of Byt(t.constructor.prototype)){if(n==="constructor"||!o(n))continue;let u=Reflect.getOwnPropertyDescriptor(a,n);u&&typeof u.value=="function"&&(t[n]=t[n].bind(t))}return t}});var gCe=_(Hn=>{"use strict";var vC,BB,CQ,sq;typeof performance=="object"&&typeof performance.now=="function"?(uCe=performance,Hn.unstable_now=function(){return uCe.now()}):($6=Date,ACe=$6.now(),Hn.unstable_now=function(){return $6.now()-ACe});var uCe,$6,ACe;typeof window>"u"||typeof MessageChannel!="function"?(BC=null,eq=null,tq=function(){if(BC!==null)try{var t=Hn.unstable_now();BC(!0,t),BC=null}catch(e){throw setTimeout(tq,0),e}},vC=function(t){BC!==null?setTimeout(vC,0,t):(BC=t,setTimeout(tq,0))},BB=function(t,e){eq=setTimeout(t,e)},CQ=function(){clearTimeout(eq)},Hn.unstable_shouldYield=function(){return!1},sq=Hn.unstable_forceFrameRate=function(){}):(fCe=window.setTimeout,pCe=window.clearTimeout,typeof console<"u"&&(hCe=window.cancelAnimationFrame,typeof window.requestAnimationFrame!="function"&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),typeof hCe!="function"&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")),IB=!1,wB=null,mQ=-1,rq=5,nq=0,Hn.unstable_shouldYield=function(){return Hn.unstable_now()>=nq},sq=function(){},Hn.unstable_forceFrameRate=function(t){0>t||125>>1,a=t[o];if(a!==void 0&&0EQ(u,r))p!==void 0&&0>EQ(p,u)?(t[o]=p,t[A]=r,o=A):(t[o]=u,t[n]=r,o=n);else if(p!==void 0&&0>EQ(p,r))t[o]=p,t[A]=r,o=A;else break e}}return e}return null}function EQ(t,e){var r=t.sortIndex-e.sortIndex;return r!==0?r:t.id-e.id}var dA=[],Uh=[],vyt=1,oc=null,xo=3,wQ=!1,nd=!1,vB=!1;function aq(t){for(var e=ou(Uh);e!==null;){if(e.callback===null)IQ(Uh);else if(e.startTime<=t)IQ(Uh),e.sortIndex=e.expirationTime,oq(dA,e);else break;e=ou(Uh)}}function lq(t){if(vB=!1,aq(t),!nd)if(ou(dA)!==null)nd=!0,vC(cq);else{var e=ou(Uh);e!==null&&BB(lq,e.startTime-t)}}function cq(t,e){nd=!1,vB&&(vB=!1,CQ()),wQ=!0;var r=xo;try{for(aq(e),oc=ou(dA);oc!==null&&(!(oc.expirationTime>e)||t&&!Hn.unstable_shouldYield());){var o=oc.callback;if(typeof o=="function"){oc.callback=null,xo=oc.priorityLevel;var a=o(oc.expirationTime<=e);e=Hn.unstable_now(),typeof a=="function"?oc.callback=a:oc===ou(dA)&&IQ(dA),aq(e)}else IQ(dA);oc=ou(dA)}if(oc!==null)var n=!0;else{var u=ou(Uh);u!==null&&BB(lq,u.startTime-e),n=!1}return n}finally{oc=null,xo=r,wQ=!1}}var Dyt=sq;Hn.unstable_IdlePriority=5;Hn.unstable_ImmediatePriority=1;Hn.unstable_LowPriority=4;Hn.unstable_NormalPriority=3;Hn.unstable_Profiling=null;Hn.unstable_UserBlockingPriority=2;Hn.unstable_cancelCallback=function(t){t.callback=null};Hn.unstable_continueExecution=function(){nd||wQ||(nd=!0,vC(cq))};Hn.unstable_getCurrentPriorityLevel=function(){return xo};Hn.unstable_getFirstCallbackNode=function(){return ou(dA)};Hn.unstable_next=function(t){switch(xo){case 1:case 2:case 3:var e=3;break;default:e=xo}var r=xo;xo=e;try{return t()}finally{xo=r}};Hn.unstable_pauseExecution=function(){};Hn.unstable_requestPaint=Dyt;Hn.unstable_runWithPriority=function(t,e){switch(t){case 1:case 2:case 3:case 4:case 5:break;default:t=3}var r=xo;xo=t;try{return e()}finally{xo=r}};Hn.unstable_scheduleCallback=function(t,e,r){var o=Hn.unstable_now();switch(typeof r=="object"&&r!==null?(r=r.delay,r=typeof r=="number"&&0o?(t.sortIndex=r,oq(Uh,t),ou(dA)===null&&t===ou(Uh)&&(vB?CQ():vB=!0,BB(lq,r-o))):(t.sortIndex=a,oq(dA,t),nd||wQ||(nd=!0,vC(cq))),t};Hn.unstable_wrapCallback=function(t){var e=xo;return function(){var r=xo;xo=e;try{return t.apply(this,arguments)}finally{xo=r}}}});var uq=_((XYt,dCe)=>{"use strict";dCe.exports=gCe()});var mCe=_((ZYt,DB)=>{DB.exports=function(e){var r={},o=U6(),a=ln(),n=uq();function u(v){for(var P="https://reactjs.org/docs/error-decoder.html?invariant="+v,Q=1;QUe||Y[Be]!==ne[Ue])return` +`+Y[Be].replace(" at new "," at ");while(1<=Be&&0<=Ue);break}}}finally{we=!1,Error.prepareStackTrace=Q}return(v=v?v.displayName||v.name:"")?Il(v):""}var wl=[],Bi=-1;function Ns(v){return{current:v}}function Ft(v){0>Bi||(v.current=wl[Bi],wl[Bi]=null,Bi--)}function Bn(v,P){Bi++,wl[Bi]=v.current,v.current=P}var No={},ki=Ns(No),vi=Ns(!1),sa=No;function un(v,P){var Q=v.type.contextTypes;if(!Q)return No;var H=v.stateNode;if(H&&H.__reactInternalMemoizedUnmaskedChildContext===P)return H.__reactInternalMemoizedMaskedChildContext;var Y={},ne;for(ne in Q)Y[ne]=P[ne];return H&&(v=v.stateNode,v.__reactInternalMemoizedUnmaskedChildContext=P,v.__reactInternalMemoizedMaskedChildContext=Y),Y}function qn(v){return v=v.childContextTypes,v!=null}function Ec(){Ft(vi),Ft(ki)}function lp(v,P,Q){if(ki.current!==No)throw Error(u(168));Bn(ki,P),Bn(vi,Q)}function oa(v,P,Q){var H=v.stateNode;if(v=P.childContextTypes,typeof H.getChildContext!="function")return Q;H=H.getChildContext();for(var Y in H)if(!(Y in v))throw Error(u(108,g(P)||"Unknown",Y));return o({},Q,H)}function aa(v){return v=(v=v.stateNode)&&v.__reactInternalMemoizedMergedChildContext||No,sa=ki.current,Bn(ki,v),Bn(vi,vi.current),!0}function la(v,P,Q){var H=v.stateNode;if(!H)throw Error(u(169));Q?(v=oa(v,P,sa),H.__reactInternalMemoizedMergedChildContext=v,Ft(vi),Ft(ki),Bn(ki,v)):Ft(vi),Bn(vi,Q)}var Ze=null,ca=null,mu=n.unstable_now;mu();var Bl=0,dn=8;function Lo(v){if(1&v)return dn=15,1;if(2&v)return dn=14,2;if(4&v)return dn=13,4;var P=24&v;return P!==0?(dn=12,P):v&32?(dn=11,32):(P=192&v,P!==0?(dn=10,P):v&256?(dn=9,256):(P=3584&v,P!==0?(dn=8,P):v&4096?(dn=7,4096):(P=4186112&v,P!==0?(dn=6,P):(P=62914560&v,P!==0?(dn=5,P):v&67108864?(dn=4,67108864):v&134217728?(dn=3,134217728):(P=805306368&v,P!==0?(dn=2,P):1073741824&v?(dn=1,1073741824):(dn=8,v))))))}function RA(v){switch(v){case 99:return 15;case 98:return 10;case 97:case 96:return 8;case 95:return 2;default:return 0}}function TA(v){switch(v){case 15:case 14:return 99;case 13:case 12:case 11:case 10:return 98;case 9:case 8:case 7:case 6:case 4:case 5:return 97;case 3:case 2:case 1:return 95;case 0:return 90;default:throw Error(u(358,v))}}function Oo(v,P){var Q=v.pendingLanes;if(Q===0)return dn=0;var H=0,Y=0,ne=v.expiredLanes,Be=v.suspendedLanes,Ue=v.pingedLanes;if(ne!==0)H=ne,Y=dn=15;else if(ne=Q&134217727,ne!==0){var ft=ne&~Be;ft!==0?(H=Lo(ft),Y=dn):(Ue&=ne,Ue!==0&&(H=Lo(Ue),Y=dn))}else ne=Q&~Be,ne!==0?(H=Lo(ne),Y=dn):Ue!==0&&(H=Lo(Ue),Y=dn);if(H===0)return 0;if(H=31-qi(H),H=Q&((0>H?0:1<Q;Q++)P.push(v);return P}function ua(v,P,Q){v.pendingLanes|=P;var H=P-1;v.suspendedLanes&=H,v.pingedLanes&=H,v=v.eventTimes,P=31-qi(P),v[P]=Q}var qi=Math.clz32?Math.clz32:Dl,vl=Math.log,Cc=Math.LN2;function Dl(v){return v===0?32:31-(vl(v)/Cc|0)|0}var Aa=n.unstable_runWithPriority,Di=n.unstable_scheduleCallback,rs=n.unstable_cancelCallback,ja=n.unstable_shouldYield,yu=n.unstable_requestPaint,Pl=n.unstable_now,pi=n.unstable_getCurrentPriorityLevel,Dn=n.unstable_ImmediatePriority,Sl=n.unstable_UserBlockingPriority,Je=n.unstable_NormalPriority,st=n.unstable_LowPriority,vt=n.unstable_IdlePriority,ar={},ee=yu!==void 0?yu:function(){},ye=null,Le=null,gt=!1,mt=Pl(),Dt=1e4>mt?Pl:function(){return Pl()-mt};function er(){switch(pi()){case Dn:return 99;case Sl:return 98;case Je:return 97;case st:return 96;case vt:return 95;default:throw Error(u(332))}}function sn(v){switch(v){case 99:return Dn;case 98:return Sl;case 97:return Je;case 96:return st;case 95:return vt;default:throw Error(u(332))}}function ei(v,P){return v=sn(v),Aa(v,P)}function Qi(v,P,Q){return v=sn(v),Di(v,P,Q)}function Pn(){if(Le!==null){var v=Le;Le=null,rs(v)}fa()}function fa(){if(!gt&&ye!==null){gt=!0;var v=0;try{var P=ye;ei(99,function(){for(;vSn?(Tn=br,br=null):Tn=br.sibling;var Yr=Xt($e,br,pt[Sn],zt);if(Yr===null){br===null&&(br=Tn);break}v&&br&&Yr.alternate===null&&P($e,br),je=ne(Yr,je,Sn),Wn===null?Br=Yr:Wn.sibling=Yr,Wn=Yr,br=Tn}if(Sn===pt.length)return Q($e,br),Br;if(br===null){for(;SnSn?(Tn=br,br=null):Tn=br.sibling;var ti=Xt($e,br,Yr.value,zt);if(ti===null){br===null&&(br=Tn);break}v&&br&&ti.alternate===null&&P($e,br),je=ne(ti,je,Sn),Wn===null?Br=ti:Wn.sibling=ti,Wn=ti,br=Tn}if(Yr.done)return Q($e,br),Br;if(br===null){for(;!Yr.done;Sn++,Yr=pt.next())Yr=Tr($e,Yr.value,zt),Yr!==null&&(je=ne(Yr,je,Sn),Wn===null?Br=Yr:Wn.sibling=Yr,Wn=Yr);return Br}for(br=H($e,br);!Yr.done;Sn++,Yr=pt.next())Yr=jn(br,$e,Sn,Yr.value,zt),Yr!==null&&(v&&Yr.alternate!==null&&br.delete(Yr.key===null?Sn:Yr.key),je=ne(Yr,je,Sn),Wn===null?Br=Yr:Wn.sibling=Yr,Wn=Yr);return v&&br.forEach(function(Rc){return P($e,Rc)}),Br}return function($e,je,pt,zt){var Br=typeof pt=="object"&&pt!==null&&pt.type===E&&pt.key===null;Br&&(pt=pt.props.children);var Wn=typeof pt=="object"&&pt!==null;if(Wn)switch(pt.$$typeof){case p:e:{for(Wn=pt.key,Br=je;Br!==null;){if(Br.key===Wn){switch(Br.tag){case 7:if(pt.type===E){Q($e,Br.sibling),je=Y(Br,pt.props.children),je.return=$e,$e=je;break e}break;default:if(Br.elementType===pt.type){Q($e,Br.sibling),je=Y(Br,pt.props),je.ref=dt($e,Br,pt),je.return=$e,$e=je;break e}}Q($e,Br);break}else P($e,Br);Br=Br.sibling}pt.type===E?(je=Ru(pt.props.children,$e.mode,zt,pt.key),je.return=$e,$e=je):(zt=k0(pt.type,pt.key,pt.props,null,$e.mode,zt),zt.ref=dt($e,je,pt),zt.return=$e,$e=zt)}return Be($e);case h:e:{for(Br=pt.key;je!==null;){if(je.key===Br)if(je.tag===4&&je.stateNode.containerInfo===pt.containerInfo&&je.stateNode.implementation===pt.implementation){Q($e,je.sibling),je=Y(je,pt.children||[]),je.return=$e,$e=je;break e}else{Q($e,je);break}else P($e,je);je=je.sibling}je=ao(pt,$e.mode,zt),je.return=$e,$e=je}return Be($e)}if(typeof pt=="string"||typeof pt=="number")return pt=""+pt,je!==null&&je.tag===6?(Q($e,je.sibling),je=Y(je,pt),je.return=$e,$e=je):(Q($e,je),je=ZI(pt,$e.mode,zt),je.return=$e,$e=je),Be($e);if(Cu(pt))return li($e,je,pt,zt);if(Ee(pt))return Ea($e,je,pt,zt);if(Wn&&wc($e,pt),typeof pt>"u"&&!Br)switch($e.tag){case 1:case 22:case 0:case 11:case 15:throw Error(u(152,g($e.type)||"Component"))}return Q($e,je)}}var c0=bd(!0),DI=bd(!1),hp={},cr=Ns(hp),Li=Ns(hp),Iu=Ns(hp);function pa(v){if(v===hp)throw Error(u(174));return v}function u0(v,P){Bn(Iu,P),Bn(Li,v),Bn(cr,hp),v=ht(P),Ft(cr),Bn(cr,v)}function Bc(){Ft(cr),Ft(Li),Ft(Iu)}function wu(v){var P=pa(Iu.current),Q=pa(cr.current);P=q(Q,v.type,P),Q!==P&&(Bn(Li,v),Bn(cr,P))}function wt(v){Li.current===v&&(Ft(cr),Ft(Li))}var oi=Ns(0);function UA(v){for(var P=v;P!==null;){if(P.tag===13){var Q=P.memoizedState;if(Q!==null&&(Q=Q.dehydrated,Q===null||pr(Q)||Me(Q)))return P}else if(P.tag===19&&P.memoizedProps.revealOrder!==void 0){if(P.flags&64)return P}else if(P.child!==null){P.child.return=P,P=P.child;continue}if(P===v)break;for(;P.sibling===null;){if(P.return===null||P.return===v)return null;P=P.return}P.sibling.return=P.return,P=P.sibling}return null}var ha=null,Uo=null,ga=!1;function A0(v,P){var Q=ya(5,null,null,0);Q.elementType="DELETED",Q.type="DELETED",Q.stateNode=P,Q.return=v,Q.flags=8,v.lastEffect!==null?(v.lastEffect.nextEffect=Q,v.lastEffect=Q):v.firstEffect=v.lastEffect=Q}function gp(v,P){switch(v.tag){case 5:return P=To(P,v.type,v.pendingProps),P!==null?(v.stateNode=P,!0):!1;case 6:return P=kA(P,v.pendingProps),P!==null?(v.stateNode=P,!0):!1;case 13:return!1;default:return!1}}function f0(v){if(ga){var P=Uo;if(P){var Q=P;if(!gp(v,P)){if(P=ia(Q),!P||!gp(v,P)){v.flags=v.flags&-1025|2,ga=!1,ha=v;return}A0(ha,Q)}ha=v,Uo=dc(P)}else v.flags=v.flags&-1025|2,ga=!1,ha=v}}function xd(v){for(v=v.return;v!==null&&v.tag!==5&&v.tag!==3&&v.tag!==13;)v=v.return;ha=v}function _A(v){if(!X||v!==ha)return!1;if(!ga)return xd(v),ga=!0,!1;var P=v.type;if(v.tag!==5||P!=="head"&&P!=="body"&&!tt(P,v.memoizedProps))for(P=Uo;P;)A0(v,P),P=ia(P);if(xd(v),v.tag===13){if(!X)throw Error(u(316));if(v=v.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(u(317));Uo=QA(v)}else Uo=ha?ia(v.stateNode):null;return!0}function p0(){X&&(Uo=ha=null,ga=!1)}var vc=[];function Dc(){for(var v=0;vne))throw Error(u(301));ne+=1,Ci=ji=null,P.updateQueue=null,Bu.current=re,v=Q(H,Y)}while(vu)}if(Bu.current=xt,P=ji!==null&&ji.next!==null,Pc=0,Ci=ji=On=null,HA=!1,P)throw Error(u(300));return v}function Gi(){var v={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Ci===null?On.memoizedState=Ci=v:Ci=Ci.next=v,Ci}function Ka(){if(ji===null){var v=On.alternate;v=v!==null?v.memoizedState:null}else v=ji.next;var P=Ci===null?On.memoizedState:Ci.next;if(P!==null)Ci=P,ji=v;else{if(v===null)throw Error(u(310));ji=v,v={memoizedState:ji.memoizedState,baseState:ji.baseState,baseQueue:ji.baseQueue,queue:ji.queue,next:null},Ci===null?On.memoizedState=Ci=v:Ci=Ci.next=v}return Ci}function io(v,P){return typeof P=="function"?P(v):P}function Du(v){var P=Ka(),Q=P.queue;if(Q===null)throw Error(u(311));Q.lastRenderedReducer=v;var H=ji,Y=H.baseQueue,ne=Q.pending;if(ne!==null){if(Y!==null){var Be=Y.next;Y.next=ne.next,ne.next=Be}H.baseQueue=Y=ne,Q.pending=null}if(Y!==null){Y=Y.next,H=H.baseState;var Ue=Be=ne=null,ft=Y;do{var jt=ft.lane;if((Pc&jt)===jt)Ue!==null&&(Ue=Ue.next={lane:0,action:ft.action,eagerReducer:ft.eagerReducer,eagerState:ft.eagerState,next:null}),H=ft.eagerReducer===v?ft.eagerState:v(H,ft.action);else{var wr={lane:jt,action:ft.action,eagerReducer:ft.eagerReducer,eagerState:ft.eagerState,next:null};Ue===null?(Be=Ue=wr,ne=H):Ue=Ue.next=wr,On.lanes|=jt,B0|=jt}ft=ft.next}while(ft!==null&&ft!==Y);Ue===null?ne=H:Ue.next=Be,eo(H,P.memoizedState)||(Ye=!0),P.memoizedState=H,P.baseState=ne,P.baseQueue=Ue,Q.lastRenderedState=H}return[P.memoizedState,Q.dispatch]}function Pu(v){var P=Ka(),Q=P.queue;if(Q===null)throw Error(u(311));Q.lastRenderedReducer=v;var H=Q.dispatch,Y=Q.pending,ne=P.memoizedState;if(Y!==null){Q.pending=null;var Be=Y=Y.next;do ne=v(ne,Be.action),Be=Be.next;while(Be!==Y);eo(ne,P.memoizedState)||(Ye=!0),P.memoizedState=ne,P.baseQueue===null&&(P.baseState=ne),Q.lastRenderedState=ne}return[ne,H]}function Va(v,P,Q){var H=P._getVersion;H=H(P._source);var Y=y?P._workInProgressVersionPrimary:P._workInProgressVersionSecondary;if(Y!==null?v=Y===H:(v=v.mutableReadLanes,(v=(Pc&v)===v)&&(y?P._workInProgressVersionPrimary=H:P._workInProgressVersionSecondary=H,vc.push(P))),v)return Q(P._source);throw vc.push(P),Error(u(350))}function fn(v,P,Q,H){var Y=Os;if(Y===null)throw Error(u(349));var ne=P._getVersion,Be=ne(P._source),Ue=Bu.current,ft=Ue.useState(function(){return Va(Y,P,Q)}),jt=ft[1],wr=ft[0];ft=Ci;var Tr=v.memoizedState,Xt=Tr.refs,jn=Xt.getSnapshot,li=Tr.source;Tr=Tr.subscribe;var Ea=On;return v.memoizedState={refs:Xt,source:P,subscribe:H},Ue.useEffect(function(){Xt.getSnapshot=Q,Xt.setSnapshot=jt;var $e=ne(P._source);if(!eo(Be,$e)){$e=Q(P._source),eo(wr,$e)||(jt($e),$e=ss(Ea),Y.mutableReadLanes|=$e&Y.pendingLanes),$e=Y.mutableReadLanes,Y.entangledLanes|=$e;for(var je=Y.entanglements,pt=$e;0Q?98:Q,function(){v(!0)}),ei(97qI&&(P.flags|=64,Y=!0,KA(H,!1),P.lanes=33554432)}else{if(!Y)if(v=UA(ne),v!==null){if(P.flags|=64,Y=!0,v=v.updateQueue,v!==null&&(P.updateQueue=v,P.flags|=4),KA(H,!0),H.tail===null&&H.tailMode==="hidden"&&!ne.alternate&&!ga)return P=P.lastEffect=H.lastEffect,P!==null&&(P.nextEffect=null),null}else 2*Dt()-H.renderingStartTime>qI&&Q!==1073741824&&(P.flags|=64,Y=!0,KA(H,!1),P.lanes=33554432);H.isBackwards?(ne.sibling=P.child,P.child=ne):(v=H.last,v!==null?v.sibling=ne:P.child=ne,H.last=ne)}return H.tail!==null?(v=H.tail,H.rendering=v,H.tail=v.sibling,H.lastEffect=P.lastEffect,H.renderingStartTime=Dt(),v.sibling=null,P=oi.current,Bn(oi,Y?P&1|2:P&1),v):null;case 23:case 24:return VI(),v!==null&&v.memoizedState!==null!=(P.memoizedState!==null)&&H.mode!=="unstable-defer-without-hiding"&&(P.flags|=4),null}throw Error(u(156,P.tag))}function qF(v){switch(v.tag){case 1:qn(v.type)&&Ec();var P=v.flags;return P&4096?(v.flags=P&-4097|64,v):null;case 3:if(Bc(),Ft(vi),Ft(ki),Dc(),P=v.flags,P&64)throw Error(u(285));return v.flags=P&-4097|64,v;case 5:return wt(v),null;case 13:return Ft(oi),P=v.flags,P&4096?(v.flags=P&-4097|64,v):null;case 19:return Ft(oi),null;case 4:return Bc(),null;case 10:return a0(v),null;case 23:case 24:return VI(),null;default:return null}}function m0(v,P){try{var Q="",H=P;do Q+=vI(H),H=H.return;while(H);var Y=Q}catch(ne){Y=` +Error generating stack: `+ne.message+` +`+ne.stack}return{value:v,source:P,stack:Y}}function y0(v,P){try{console.error(P.value)}catch(Q){setTimeout(function(){throw Q})}}var jF=typeof WeakMap=="function"?WeakMap:Map;function xI(v,P,Q){Q=Wa(-1,Q),Q.tag=3,Q.payload={element:null};var H=P.value;return Q.callback=function(){Wd||(Wd=!0,jI=H),y0(v,P)},Q}function E0(v,P,Q){Q=Wa(-1,Q),Q.tag=3;var H=v.type.getDerivedStateFromError;if(typeof H=="function"){var Y=P.value;Q.payload=function(){return y0(v,P),H(Y)}}var ne=v.stateNode;return ne!==null&&typeof ne.componentDidCatch=="function"&&(Q.callback=function(){typeof H!="function"&&(xl===null?xl=new Set([this]):xl.add(this),y0(v,P));var Be=P.stack;this.componentDidCatch(P.value,{componentStack:Be!==null?Be:""})}),Q}var GF=typeof WeakSet=="function"?WeakSet:Set;function kI(v){var P=v.ref;if(P!==null)if(typeof P=="function")try{P(null)}catch(Q){Fu(v,Q)}else P.current=null}function Td(v,P){switch(P.tag){case 0:case 11:case 15:case 22:return;case 1:if(P.flags&256&&v!==null){var Q=v.memoizedProps,H=v.memoizedState;v=P.stateNode,P=v.getSnapshotBeforeUpdate(P.elementType===P.type?Q:to(P.type,Q),H),v.__reactInternalSnapshotBeforeUpdate=P}return;case 3:R&&P.flags&256&&hs(P.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(u(163))}function wp(v,P){if(P=P.updateQueue,P=P!==null?P.lastEffect:null,P!==null){var Q=P=P.next;do{if((Q.tag&v)===v){var H=Q.destroy;Q.destroy=void 0,H!==void 0&&H()}Q=Q.next}while(Q!==P)}}function uD(v,P,Q){switch(Q.tag){case 0:case 11:case 15:case 22:if(P=Q.updateQueue,P=P!==null?P.lastEffect:null,P!==null){v=P=P.next;do{if((v.tag&3)===3){var H=v.create;v.destroy=H()}v=v.next}while(v!==P)}if(P=Q.updateQueue,P=P!==null?P.lastEffect:null,P!==null){v=P=P.next;do{var Y=v;H=Y.next,Y=Y.tag,Y&4&&Y&1&&(vD(Q,v),$F(Q,v)),v=H}while(v!==P)}return;case 1:v=Q.stateNode,Q.flags&4&&(P===null?v.componentDidMount():(H=Q.elementType===Q.type?P.memoizedProps:to(Q.type,P.memoizedProps),v.componentDidUpdate(H,P.memoizedState,v.__reactInternalSnapshotBeforeUpdate))),P=Q.updateQueue,P!==null&&Pd(Q,P,v);return;case 3:if(P=Q.updateQueue,P!==null){if(v=null,Q.child!==null)switch(Q.child.tag){case 5:v=Re(Q.child.stateNode);break;case 1:v=Q.child.stateNode}Pd(Q,P,v)}return;case 5:v=Q.stateNode,P===null&&Q.flags&4&&Qs(v,Q.type,Q.memoizedProps,Q);return;case 6:return;case 4:return;case 12:return;case 13:X&&Q.memoizedState===null&&(Q=Q.alternate,Q!==null&&(Q=Q.memoizedState,Q!==null&&(Q=Q.dehydrated,Q!==null&&mc(Q))));return;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(u(163))}function AD(v,P){if(R)for(var Q=v;;){if(Q.tag===5){var H=Q.stateNode;P?op(H):Rs(Q.stateNode,Q.memoizedProps)}else if(Q.tag===6)H=Q.stateNode,P?ap(H):Ln(H,Q.memoizedProps);else if((Q.tag!==23&&Q.tag!==24||Q.memoizedState===null||Q===v)&&Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===v)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===v)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}}function Nd(v,P){if(ca&&typeof ca.onCommitFiberUnmount=="function")try{ca.onCommitFiberUnmount(Ze,P)}catch{}switch(P.tag){case 0:case 11:case 14:case 15:case 22:if(v=P.updateQueue,v!==null&&(v=v.lastEffect,v!==null)){var Q=v=v.next;do{var H=Q,Y=H.destroy;if(H=H.tag,Y!==void 0)if(H&4)vD(P,Q);else{H=P;try{Y()}catch(ne){Fu(H,ne)}}Q=Q.next}while(Q!==v)}break;case 1:if(kI(P),v=P.stateNode,typeof v.componentWillUnmount=="function")try{v.props=P.memoizedProps,v.state=P.memoizedState,v.componentWillUnmount()}catch(ne){Fu(P,ne)}break;case 5:kI(P);break;case 4:R?gD(v,P):z&&z&&(P=P.stateNode.containerInfo,v=pc(P),bA(P,v))}}function fD(v,P){for(var Q=P;;)if(Nd(v,Q),Q.child===null||R&&Q.tag===4){if(Q===P)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===P)return;Q=Q.return}Q.sibling.return=Q.return,Q=Q.sibling}else Q.child.return=Q,Q=Q.child}function Ld(v){v.alternate=null,v.child=null,v.dependencies=null,v.firstEffect=null,v.lastEffect=null,v.memoizedProps=null,v.memoizedState=null,v.pendingProps=null,v.return=null,v.updateQueue=null}function pD(v){return v.tag===5||v.tag===3||v.tag===4}function hD(v){if(R){e:{for(var P=v.return;P!==null;){if(pD(P))break e;P=P.return}throw Error(u(160))}var Q=P;switch(P=Q.stateNode,Q.tag){case 5:var H=!1;break;case 3:P=P.containerInfo,H=!0;break;case 4:P=P.containerInfo,H=!0;break;default:throw Error(u(161))}Q.flags&16&&(gu(P),Q.flags&=-17);e:t:for(Q=v;;){for(;Q.sibling===null;){if(Q.return===null||pD(Q.return)){Q=null;break e}Q=Q.return}for(Q.sibling.return=Q.return,Q=Q.sibling;Q.tag!==5&&Q.tag!==6&&Q.tag!==18;){if(Q.flags&2||Q.child===null||Q.tag===4)continue t;Q.child.return=Q,Q=Q.child}if(!(Q.flags&2)){Q=Q.stateNode;break e}}H?QI(v,Q,P):FI(v,Q,P)}}function QI(v,P,Q){var H=v.tag,Y=H===5||H===6;if(Y)v=Y?v.stateNode:v.stateNode.instance,P?Fs(Q,v,P):Xs(Q,v);else if(H!==4&&(v=v.child,v!==null))for(QI(v,P,Q),v=v.sibling;v!==null;)QI(v,P,Q),v=v.sibling}function FI(v,P,Q){var H=v.tag,Y=H===5||H===6;if(Y)v=Y?v.stateNode:v.stateNode.instance,P?xi(Q,v,P):$n(Q,v);else if(H!==4&&(v=v.child,v!==null))for(FI(v,P,Q),v=v.sibling;v!==null;)FI(v,P,Q),v=v.sibling}function gD(v,P){for(var Q=P,H=!1,Y,ne;;){if(!H){H=Q.return;e:for(;;){if(H===null)throw Error(u(160));switch(Y=H.stateNode,H.tag){case 5:ne=!1;break e;case 3:Y=Y.containerInfo,ne=!0;break e;case 4:Y=Y.containerInfo,ne=!0;break e}H=H.return}H=!0}if(Q.tag===5||Q.tag===6)fD(v,Q),ne?SA(Y,Q.stateNode):$s(Y,Q.stateNode);else if(Q.tag===4){if(Q.child!==null){Y=Q.stateNode.containerInfo,ne=!0,Q.child.return=Q,Q=Q.child;continue}}else if(Nd(v,Q),Q.child!==null){Q.child.return=Q,Q=Q.child;continue}if(Q===P)break;for(;Q.sibling===null;){if(Q.return===null||Q.return===P)return;Q=Q.return,Q.tag===4&&(H=!1)}Q.sibling.return=Q.return,Q=Q.sibling}}function RI(v,P){if(R){switch(P.tag){case 0:case 11:case 14:case 15:case 22:wp(3,P);return;case 1:return;case 5:var Q=P.stateNode;if(Q!=null){var H=P.memoizedProps;v=v!==null?v.memoizedProps:H;var Y=P.type,ne=P.updateQueue;P.updateQueue=null,ne!==null&&Zs(Q,ne,Y,v,H,P)}return;case 6:if(P.stateNode===null)throw Error(u(162));Q=P.memoizedProps,Hi(P.stateNode,v!==null?v.memoizedProps:Q,Q);return;case 3:X&&(P=P.stateNode,P.hydrate&&(P.hydrate=!1,FA(P.containerInfo)));return;case 12:return;case 13:dD(P),C0(P);return;case 19:C0(P);return;case 17:return;case 23:case 24:AD(P,P.memoizedState!==null);return}throw Error(u(163))}switch(P.tag){case 0:case 11:case 14:case 15:case 22:wp(3,P);return;case 12:return;case 13:dD(P),C0(P);return;case 19:C0(P);return;case 3:X&&(Q=P.stateNode,Q.hydrate&&(Q.hydrate=!1,FA(Q.containerInfo)));break;case 23:case 24:return}e:if(z){switch(P.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:P=P.stateNode,bA(P.containerInfo,P.pendingChildren);break e}throw Error(u(163))}}function dD(v){v.memoizedState!==null&&(HI=Dt(),R&&AD(v.child,!0))}function C0(v){var P=v.updateQueue;if(P!==null){v.updateQueue=null;var Q=v.stateNode;Q===null&&(Q=v.stateNode=new GF),P.forEach(function(H){var Y=tR.bind(null,v,H);Q.has(H)||(Q.add(H),H.then(Y,Y))})}}function WF(v,P){return v!==null&&(v=v.memoizedState,v===null||v.dehydrated!==null)?(P=P.memoizedState,P!==null&&P.dehydrated===null):!1}var Od=0,Md=1,Ud=2,I0=3,_d=4;if(typeof Symbol=="function"&&Symbol.for){var w0=Symbol.for;Od=w0("selector.component"),Md=w0("selector.has_pseudo_class"),Ud=w0("selector.role"),I0=w0("selector.test_id"),_d=w0("selector.text")}function Hd(v){var P=$(v);if(P!=null){if(typeof P.memoizedProps["data-testname"]!="string")throw Error(u(364));return P}if(v=nr(v),v===null)throw Error(u(362));return v.stateNode.current}function bu(v,P){switch(P.$$typeof){case Od:if(v.type===P.value)return!0;break;case Md:e:{P=P.value,v=[v,0];for(var Q=0;Q";case Md:return":has("+(xu(v)||"")+")";case Ud:return'[role="'+v.value+'"]';case _d:return'"'+v.value+'"';case I0:return'[data-testname="'+v.value+'"]';default:throw Error(u(365,v))}}function TI(v,P){var Q=[];v=[v,0];for(var H=0;HY&&(Y=Be),Q&=~ne}if(Q=Y,Q=Dt()-Q,Q=(120>Q?120:480>Q?480:1080>Q?1080:1920>Q?1920:3e3>Q?3e3:4320>Q?4320:1960*KF(Q/1960))-Q,10 component higher in the tree to provide a loading indicator or placeholder to display.`)}is!==5&&(is=2),ft=m0(ft,Ue),Xt=Be;do{switch(Xt.tag){case 3:ne=ft,Xt.flags|=4096,P&=-P,Xt.lanes|=P;var Wn=xI(Xt,ne,P);Dd(Xt,Wn);break e;case 1:ne=ft;var br=Xt.type,Sn=Xt.stateNode;if(!(Xt.flags&64)&&(typeof br.getDerivedStateFromError=="function"||Sn!==null&&typeof Sn.componentDidCatch=="function"&&(xl===null||!xl.has(Sn)))){Xt.flags|=4096,P&=-P,Xt.lanes|=P;var Tn=E0(Xt,ne,P);Dd(Xt,Tn);break e}}Xt=Xt.return}while(Xt!==null)}BD(Q)}catch(Yr){P=Yr,Oi===Q&&Q!==null&&(Oi=Q=Q.return);continue}break}while(!0)}function ID(){var v=jd.current;return jd.current=xt,v===null?xt:v}function x0(v,P){var Q=Sr;Sr|=16;var H=ID();Os===v&&ms===P||Pp(v,P);do try{JF();break}catch(Y){CD(v,Y)}while(!0);if(s0(),Sr=Q,jd.current=H,Oi!==null)throw Error(u(261));return Os=null,ms=0,is}function JF(){for(;Oi!==null;)wD(Oi)}function zF(){for(;Oi!==null&&!ja();)wD(Oi)}function wD(v){var P=SD(v.alternate,v,VA);v.memoizedProps=v.pendingProps,P===null?BD(v):Oi=P,LI.current=null}function BD(v){var P=v;do{var Q=P.alternate;if(v=P.return,P.flags&2048){if(Q=qF(P),Q!==null){Q.flags&=2047,Oi=Q;return}v!==null&&(v.firstEffect=v.lastEffect=null,v.flags|=2048)}else{if(Q=HF(Q,P,VA),Q!==null){Oi=Q;return}if(Q=P,Q.tag!==24&&Q.tag!==23||Q.memoizedState===null||VA&1073741824||!(Q.mode&4)){for(var H=0,Y=Q.child;Y!==null;)H|=Y.lanes|Y.childLanes,Y=Y.sibling;Q.childLanes=H}v!==null&&!(v.flags&2048)&&(v.firstEffect===null&&(v.firstEffect=P.firstEffect),P.lastEffect!==null&&(v.lastEffect!==null&&(v.lastEffect.nextEffect=P.firstEffect),v.lastEffect=P.lastEffect),1Dt()-HI?Pp(v,0):UI|=Q),qo(v,P)}function tR(v,P){var Q=v.stateNode;Q!==null&&Q.delete(P),P=0,P===0&&(P=v.mode,P&2?P&4?(kc===0&&(kc=Bp),P=vn(62914560&~kc),P===0&&(P=4194304)):P=er()===99?1:2:P=1),Q=oo(),v=Vd(v,P),v!==null&&(ua(v,P,Q),qo(v,Q))}var SD;SD=function(v,P,Q){var H=P.lanes;if(v!==null)if(v.memoizedProps!==P.pendingProps||vi.current)Ye=!0;else if(Q&H)Ye=!!(v.flags&16384);else{switch(Ye=!1,P.tag){case 3:Fd(P),p0();break;case 5:wu(P);break;case 1:qn(P.type)&&aa(P);break;case 4:u0(P,P.stateNode.containerInfo);break;case 10:o0(P,P.memoizedProps.value);break;case 13:if(P.memoizedState!==null)return Q&P.child.childLanes?SI(v,P,Q):(Bn(oi,oi.current&1),P=Mn(v,P,Q),P!==null?P.sibling:null);Bn(oi,oi.current&1);break;case 19:if(H=(Q&P.childLanes)!==0,v.flags&64){if(H)return cD(v,P,Q);P.flags|=64}var Y=P.memoizedState;if(Y!==null&&(Y.rendering=null,Y.tail=null,Y.lastEffect=null),Bn(oi,oi.current),H)break;return null;case 23:case 24:return P.lanes=0,ai(v,P,Q)}return Mn(v,P,Q)}else Ye=!1;switch(P.lanes=0,P.tag){case 2:if(H=P.type,v!==null&&(v.alternate=null,P.alternate=null,P.flags|=2),v=P.pendingProps,Y=un(P,ki.current),Eu(P,Q),Y=g0(null,P,H,v,Y,Q),P.flags|=1,typeof Y=="object"&&Y!==null&&typeof Y.render=="function"&&Y.$$typeof===void 0){if(P.tag=1,P.memoizedState=null,P.updateQueue=null,qn(H)){var ne=!0;aa(P)}else ne=!1;P.memoizedState=Y.state!==null&&Y.state!==void 0?Y.state:null,pp(P);var Be=H.getDerivedStateFromProps;typeof Be=="function"&&LA(P,H,Be,v),Y.updater=OA,P.stateNode=Y,Y._reactInternals=P,no(P,H,v,Q),P=PI(null,P,H,!0,ne,Q)}else P.tag=0,At(null,P,Y,Q),P=P.child;return P;case 16:Y=P.elementType;e:{switch(v!==null&&(v.alternate=null,P.alternate=null,P.flags|=2),v=P.pendingProps,ne=Y._init,Y=ne(Y._payload),P.type=Y,ne=P.tag=nR(Y),v=to(Y,v),ne){case 0:P=GA(null,P,Y,v,Q);break e;case 1:P=lD(null,P,Y,v,Q);break e;case 11:P=hr(null,P,Y,v,Q);break e;case 14:P=Ir(null,P,Y,to(Y.type,v),H,Q);break e}throw Error(u(306,Y,""))}return P;case 0:return H=P.type,Y=P.pendingProps,Y=P.elementType===H?Y:to(H,Y),GA(v,P,H,Y,Q);case 1:return H=P.type,Y=P.pendingProps,Y=P.elementType===H?Y:to(H,Y),lD(v,P,H,Y,Q);case 3:if(Fd(P),H=P.updateQueue,v===null||H===null)throw Error(u(282));if(H=P.pendingProps,Y=P.memoizedState,Y=Y!==null?Y.element:null,l0(v,P),NA(P,H,null,Q),H=P.memoizedState.element,H===Y)p0(),P=Mn(v,P,Q);else{if(Y=P.stateNode,(ne=Y.hydrate)&&(X?(Uo=dc(P.stateNode.containerInfo),ha=P,ne=ga=!0):ne=!1),ne){if(X&&(v=Y.mutableSourceEagerHydrationData,v!=null))for(Y=0;Y=jt&&ne>=Tr&&Y<=wr&&Be<=Xt){v.splice(P,1);break}else if(H!==jt||Q.width!==ft.width||XtBe){if(!(ne!==Tr||Q.height!==ft.height||wrY)){jt>H&&(ft.width+=jt-H,ft.x=H),wrne&&(ft.height+=Tr-ne,ft.y=ne),XtQ&&(Q=Be)),Be ")+` + +No matching component was found for: + `)+v.join(" > ")}return null},r.getPublicRootInstance=function(v){if(v=v.current,!v.child)return null;switch(v.child.tag){case 5:return Re(v.child.stateNode);default:return v.child.stateNode}},r.injectIntoDevTools=function(v){if(v={bundleType:v.bundleType,version:v.version,rendererPackageName:v.rendererPackageName,rendererConfig:v.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:A.ReactCurrentDispatcher,findHostInstanceByFiber:sR,findFiberByHostInstance:v.findFiberByHostInstance||oR,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u")v=!1;else{var P=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!P.isDisabled&&P.supportsFiber)try{Ze=P.inject(v),ca=P}catch{}v=!0}return v},r.observeVisibleRects=function(v,P,Q,H){if(!qt)throw Error(u(363));v=NI(v,P);var Y=Xr(v,Q,H).disconnect;return{disconnect:function(){Y()}}},r.registerMutableSourceForHydration=function(v,P){var Q=P._getVersion;Q=Q(P._source),v.mutableSourceEagerHydrationData==null?v.mutableSourceEagerHydrationData=[P,Q]:v.mutableSourceEagerHydrationData.push(P,Q)},r.runWithPriority=function(v,P){var Q=Bl;try{return Bl=v,P()}finally{Bl=Q}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(v,P){var Q=Sr;Sr&=-2,Sr|=8;try{return v(P)}finally{Sr=Q,Sr===0&&(ku(),Pn())}},r.updateContainer=function(v,P,Q,H){var Y=P.current,ne=oo(),Be=ss(Y);e:if(Q){Q=Q._reactInternals;t:{if(me(Q)!==Q||Q.tag!==1)throw Error(u(170));var Ue=Q;do{switch(Ue.tag){case 3:Ue=Ue.stateNode.context;break t;case 1:if(qn(Ue.type)){Ue=Ue.stateNode.__reactInternalMemoizedMergedChildContext;break t}}Ue=Ue.return}while(Ue!==null);throw Error(u(171))}if(Q.tag===1){var ft=Q.type;if(qn(ft)){Q=oa(Q,ft,Ue);break e}}Q=Ue}else Q=No;return P.context===null?P.context=Q:P.pendingContext=Q,P=Wa(ne,Be),P.payload={element:v},H=H===void 0?null:H,H!==null&&(P.callback=H),Ya(Y,P),Xa(Y,Be,ne),Be},r}});var ECe=_(($Yt,yCe)=>{"use strict";yCe.exports=mCe()});var ICe=_((eKt,CCe)=>{"use strict";var Pyt={ALIGN_COUNT:8,ALIGN_AUTO:0,ALIGN_FLEX_START:1,ALIGN_CENTER:2,ALIGN_FLEX_END:3,ALIGN_STRETCH:4,ALIGN_BASELINE:5,ALIGN_SPACE_BETWEEN:6,ALIGN_SPACE_AROUND:7,DIMENSION_COUNT:2,DIMENSION_WIDTH:0,DIMENSION_HEIGHT:1,DIRECTION_COUNT:3,DIRECTION_INHERIT:0,DIRECTION_LTR:1,DIRECTION_RTL:2,DISPLAY_COUNT:2,DISPLAY_FLEX:0,DISPLAY_NONE:1,EDGE_COUNT:9,EDGE_LEFT:0,EDGE_TOP:1,EDGE_RIGHT:2,EDGE_BOTTOM:3,EDGE_START:4,EDGE_END:5,EDGE_HORIZONTAL:6,EDGE_VERTICAL:7,EDGE_ALL:8,EXPERIMENTAL_FEATURE_COUNT:1,EXPERIMENTAL_FEATURE_WEB_FLEX_BASIS:0,FLEX_DIRECTION_COUNT:4,FLEX_DIRECTION_COLUMN:0,FLEX_DIRECTION_COLUMN_REVERSE:1,FLEX_DIRECTION_ROW:2,FLEX_DIRECTION_ROW_REVERSE:3,JUSTIFY_COUNT:6,JUSTIFY_FLEX_START:0,JUSTIFY_CENTER:1,JUSTIFY_FLEX_END:2,JUSTIFY_SPACE_BETWEEN:3,JUSTIFY_SPACE_AROUND:4,JUSTIFY_SPACE_EVENLY:5,LOG_LEVEL_COUNT:6,LOG_LEVEL_ERROR:0,LOG_LEVEL_WARN:1,LOG_LEVEL_INFO:2,LOG_LEVEL_DEBUG:3,LOG_LEVEL_VERBOSE:4,LOG_LEVEL_FATAL:5,MEASURE_MODE_COUNT:3,MEASURE_MODE_UNDEFINED:0,MEASURE_MODE_EXACTLY:1,MEASURE_MODE_AT_MOST:2,NODE_TYPE_COUNT:2,NODE_TYPE_DEFAULT:0,NODE_TYPE_TEXT:1,OVERFLOW_COUNT:3,OVERFLOW_VISIBLE:0,OVERFLOW_HIDDEN:1,OVERFLOW_SCROLL:2,POSITION_TYPE_COUNT:2,POSITION_TYPE_RELATIVE:0,POSITION_TYPE_ABSOLUTE:1,PRINT_OPTIONS_COUNT:3,PRINT_OPTIONS_LAYOUT:1,PRINT_OPTIONS_STYLE:2,PRINT_OPTIONS_CHILDREN:4,UNIT_COUNT:4,UNIT_UNDEFINED:0,UNIT_POINT:1,UNIT_PERCENT:2,UNIT_AUTO:3,WRAP_COUNT:3,WRAP_NO_WRAP:0,WRAP_WRAP:1,WRAP_WRAP_REVERSE:2};CCe.exports=Pyt});var DCe=_((tKt,vCe)=>{"use strict";var Syt=Object.assign||function(t){for(var e=1;e"}}]),t}(),wCe=function(){BQ(t,null,[{key:"fromJS",value:function(r){var o=r.width,a=r.height;return new t(o,a)}}]);function t(e,r){fq(this,t),this.width=e,this.height=r}return BQ(t,[{key:"fromJS",value:function(r){r(this.width,this.height)}},{key:"toString",value:function(){return""}}]),t}(),BCe=function(){function t(e,r){fq(this,t),this.unit=e,this.value=r}return BQ(t,[{key:"fromJS",value:function(r){r(this.unit,this.value)}},{key:"toString",value:function(){switch(this.unit){case au.UNIT_POINT:return String(this.value);case au.UNIT_PERCENT:return this.value+"%";case au.UNIT_AUTO:return"auto";default:return this.value+"?"}}},{key:"valueOf",value:function(){return this.value}}]),t}();vCe.exports=function(t,e){function r(u,A,p){var h=u[A];u[A]=function(){for(var E=arguments.length,w=Array(E),D=0;D1?w-1:0),x=1;x1&&arguments[1]!==void 0?arguments[1]:NaN,p=arguments.length>2&&arguments[2]!==void 0?arguments[2]:NaN,h=arguments.length>3&&arguments[3]!==void 0?arguments[3]:au.DIRECTION_LTR;return u.call(this,A,p,h)}),Syt({Config:e.Config,Node:e.Node,Layout:t("Layout",byt),Size:t("Size",wCe),Value:t("Value",BCe),getInstanceCount:function(){return e.getInstanceCount.apply(e,arguments)}},au)}});var PCe=_((exports,module)=>{(function(t,e){typeof define=="function"&&define.amd?define([],function(){return e}):typeof module=="object"&&module.exports?module.exports=e:(t.nbind=t.nbind||{}).init=e})(exports,function(Module,cb){typeof Module=="function"&&(cb=Module,Module={}),Module.onRuntimeInitialized=function(t,e){return function(){t&&t.apply(this,arguments);try{Module.ccall("nbind_init")}catch(r){e(r);return}e(null,{bind:Module._nbind_value,reflect:Module.NBind.reflect,queryType:Module.NBind.queryType,toggleLightGC:Module.toggleLightGC,lib:Module})}}(Module.onRuntimeInitialized,cb);var Module;Module||(Module=(typeof Module<"u"?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if(Module.ENVIRONMENT==="WEB")ENVIRONMENT_IS_WEB=!0;else if(Module.ENVIRONMENT==="WORKER")ENVIRONMENT_IS_WORKER=!0;else if(Module.ENVIRONMENT==="NODE")ENVIRONMENT_IS_NODE=!0;else if(Module.ENVIRONMENT==="SHELL")ENVIRONMENT_IS_SHELL=!0;else throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else ENVIRONMENT_IS_WEB=typeof window=="object",ENVIRONMENT_IS_WORKER=typeof importScripts=="function",ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof ve=="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS={}("")),nodePath||(nodePath={}("")),e=nodePath.normalize(e);var o=nodeFS.readFileSync(e);return r?o:o.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),typeof module<"u"&&(module.exports=Module),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),typeof printErr<"u"&&(Module.printErr=printErr),typeof read<"u"?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if(typeof readbuffer=="function")return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert(typeof r=="object"),r},typeof scriptArgs<"u"?Module.arguments=scriptArgs:typeof arguments<"u"&&(Module.arguments=arguments),typeof quit=="function"&&(Module.quit=function(t,e){quit(t)});else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,o){var a=new XMLHttpRequest;a.open("GET",e,!0),a.responseType="arraybuffer",a.onload=function(){a.status==200||a.status==0&&a.response?r(a.response):o()},a.onerror=o,a.send(null)},typeof arguments<"u"&&(Module.arguments=arguments),typeof console<"u")Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&typeof dump<"u"?function(t){dump(t)}:function(t){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),typeof Module.setWindowTitle>"u"&&(Module.setWindowTitle=function(t){document.title=t})}else throw"Unknown runtime environment. Where are we?";function globalEval(t){eval.call(null,t)}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(t,e){throw e}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(t){return tempRet0=t,t},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(t){STACKTOP=t},getNativeTypeSize:function(t){switch(t){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(t[t.length-1]==="*")return Runtime.QUANTUM_SIZE;if(t[0]==="i"){var e=parseInt(t.substr(1));return assert(e%8===0),e/8}else return 0}}},getNativeFieldSize:function(t){return Math.max(Runtime.getNativeTypeSize(t),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(t,e){return e==="double"||e==="i64"?t&7&&(assert((t&7)===4),t+=4):assert((t&3)===0),t},getAlignSize:function(t,e,r){return!r&&(t=="i64"||t=="double")?8:t?Math.min(e||(t?Runtime.getNativeFieldSize(t):0),Runtime.QUANTUM_SIZE):Math.min(e,8)},dynCall:function(t,e,r){return r&&r.length?Module["dynCall_"+t].apply(null,[e].concat(r)):Module["dynCall_"+t].call(null,e)},functionPointers:[],addFunction:function(t){for(var e=0;e>2],r=(e+t+15|0)&-16;if(HEAP32[DYNAMICTOP_PTR>>2]=r,r>=TOTAL_MEMORY){var o=enlargeMemory();if(!o)return HEAP32[DYNAMICTOP_PTR>>2]=e,0}return e},alignMemory:function(t,e){var r=t=Math.ceil(t/(e||16))*(e||16);return r},makeBigInt:function(t,e,r){var o=r?+(t>>>0)+ +(e>>>0)*4294967296:+(t>>>0)+ +(e|0)*4294967296;return o},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0;function assert(t,e){t||abort("Assertion failed: "+e)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(t){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}var cwrap,ccall;(function(){var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(t){var e=Runtime.stackAlloc(t.length);return writeArrayToMemory(t,e),e},stringToC:function(t){var e=0;if(t!=null&&t!==0){var r=(t.length<<2)+1;e=Runtime.stackAlloc(r),stringToUTF8(t,e,r)}return e}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,o,a,n){var u=getCFunc(e),A=[],p=0;if(a)for(var h=0;h>0]=e;break;case"i8":HEAP8[t>>0]=e;break;case"i16":HEAP16[t>>1]=e;break;case"i32":HEAP32[t>>2]=e;break;case"i64":tempI64=[e>>>0,(tempDouble=e,+Math_abs(tempDouble)>=1?tempDouble>0?(Math_min(+Math_floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[t>>2]=tempI64[0],HEAP32[t+4>>2]=tempI64[1];break;case"float":HEAPF32[t>>2]=e;break;case"double":HEAPF64[t>>3]=e;break;default:abort("invalid type for setValue: "+r)}}Module.setValue=setValue;function getValue(t,e,r){switch(e=e||"i8",e.charAt(e.length-1)==="*"&&(e="i32"),e){case"i1":return HEAP8[t>>0];case"i8":return HEAP8[t>>0];case"i16":return HEAP16[t>>1];case"i32":return HEAP32[t>>2];case"i64":return HEAP32[t>>2];case"float":return HEAPF32[t>>2];case"double":return HEAPF64[t>>3];default:abort("invalid type for setValue: "+e)}return null}Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE;function allocate(t,e,r,o){var a,n;typeof t=="number"?(a=!0,n=t):(a=!1,n=t.length);var u=typeof e=="string"?e:null,A;if(r==ALLOC_NONE?A=o:A=[typeof _malloc=="function"?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][r===void 0?ALLOC_STATIC:r](Math.max(n,u?1:e.length)),a){var o=A,p;for(assert((A&3)==0),p=A+(n&-4);o>2]=0;for(p=A+n;o>0]=0;return A}if(u==="i8")return t.subarray||t.slice?HEAPU8.set(t,A):HEAPU8.set(new Uint8Array(t),A),A;for(var h=0,E,w,D;h>0],r|=o,!(o==0&&!e||(a++,e&&a==e)););e||(e=a);var n="";if(r<128){for(var u=1024,A;e>0;)A=String.fromCharCode.apply(String,HEAPU8.subarray(t,t+Math.min(e,u))),n=n?n+A:A,t+=u,e-=u;return n}return Module.UTF8ToString(t)}Module.Pointer_stringify=Pointer_stringify;function AsciiToString(t){for(var e="";;){var r=HEAP8[t++>>0];if(!r)return e;e+=String.fromCharCode(r)}}Module.AsciiToString=AsciiToString;function stringToAscii(t,e){return writeAsciiToMemory(t,e,!1)}Module.stringToAscii=stringToAscii;var UTF8Decoder=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function UTF8ArrayToString(t,e){for(var r=e;t[r];)++r;if(r-e>16&&t.subarray&&UTF8Decoder)return UTF8Decoder.decode(t.subarray(e,r));for(var o,a,n,u,A,p,h="";;){if(o=t[e++],!o)return h;if(!(o&128)){h+=String.fromCharCode(o);continue}if(a=t[e++]&63,(o&224)==192){h+=String.fromCharCode((o&31)<<6|a);continue}if(n=t[e++]&63,(o&240)==224?o=(o&15)<<12|a<<6|n:(u=t[e++]&63,(o&248)==240?o=(o&7)<<18|a<<12|n<<6|u:(A=t[e++]&63,(o&252)==248?o=(o&3)<<24|a<<18|n<<12|u<<6|A:(p=t[e++]&63,o=(o&1)<<30|a<<24|n<<18|u<<12|A<<6|p))),o<65536)h+=String.fromCharCode(o);else{var E=o-65536;h+=String.fromCharCode(55296|E>>10,56320|E&1023)}}}Module.UTF8ArrayToString=UTF8ArrayToString;function UTF8ToString(t){return UTF8ArrayToString(HEAPU8,t)}Module.UTF8ToString=UTF8ToString;function stringToUTF8Array(t,e,r,o){if(!(o>0))return 0;for(var a=r,n=r+o-1,u=0;u=55296&&A<=57343&&(A=65536+((A&1023)<<10)|t.charCodeAt(++u)&1023),A<=127){if(r>=n)break;e[r++]=A}else if(A<=2047){if(r+1>=n)break;e[r++]=192|A>>6,e[r++]=128|A&63}else if(A<=65535){if(r+2>=n)break;e[r++]=224|A>>12,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=2097151){if(r+3>=n)break;e[r++]=240|A>>18,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else if(A<=67108863){if(r+4>=n)break;e[r++]=248|A>>24,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}else{if(r+5>=n)break;e[r++]=252|A>>30,e[r++]=128|A>>24&63,e[r++]=128|A>>18&63,e[r++]=128|A>>12&63,e[r++]=128|A>>6&63,e[r++]=128|A&63}}return e[r]=0,r-a}Module.stringToUTF8Array=stringToUTF8Array;function stringToUTF8(t,e,r){return stringToUTF8Array(t,HEAPU8,e,r)}Module.stringToUTF8=stringToUTF8;function lengthBytesUTF8(t){for(var e=0,r=0;r=55296&&o<=57343&&(o=65536+((o&1023)<<10)|t.charCodeAt(++r)&1023),o<=127?++e:o<=2047?e+=2:o<=65535?e+=3:o<=2097151?e+=4:o<=67108863?e+=5:e+=6}return e}Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function demangle(t){var e=Module.___cxa_demangle||Module.__cxa_demangle;if(e){try{var r=t.substr(1),o=lengthBytesUTF8(r)+1,a=_malloc(o);stringToUTF8(r,a,o);var n=_malloc(4),u=e(a,0,0,n);if(getValue(n,"i32")===0&&u)return Pointer_stringify(u)}catch{}finally{a&&_free(a),n&&_free(n),u&&_free(u)}return t}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),t}function demangleAll(t){var e=/__Z[\w\d_]+/g;return t.replace(e,function(r){var o=demangle(r);return r===o?r:r+" ["+o+"]"})}function jsStackTrace(){var t=new Error;if(!t.stack){try{throw new Error(0)}catch(e){t=e}if(!t.stack)return"(no stack trace available)"}return t.stack.toString()}function stackTrace(){var t=jsStackTrace();return Module.extraStackTrace&&(t+=` +`+Module.extraStackTrace()),demangleAll(t)}Module.stackTrace=stackTrace;var HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){abortOnCannotGrowMemory()}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||134217728;TOTAL_MEMORY0;){var e=t.shift();if(typeof e=="function"){e();continue}var r=e.func;typeof r=="number"?e.arg===void 0?Module.dynCall_v(r):Module.dynCall_vi(r,e.arg):r(e.arg===void 0?null:e.arg)}}var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;function preRun(){if(Module.preRun)for(typeof Module.preRun=="function"&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for(typeof Module.postRun=="function"&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(t){__ATPRERUN__.unshift(t)}Module.addOnPreRun=addOnPreRun;function addOnInit(t){__ATINIT__.unshift(t)}Module.addOnInit=addOnInit;function addOnPreMain(t){__ATMAIN__.unshift(t)}Module.addOnPreMain=addOnPreMain;function addOnExit(t){__ATEXIT__.unshift(t)}Module.addOnExit=addOnExit;function addOnPostRun(t){__ATPOSTRUN__.unshift(t)}Module.addOnPostRun=addOnPostRun;function intArrayFromString(t,e,r){var o=r>0?r:lengthBytesUTF8(t)+1,a=new Array(o),n=stringToUTF8Array(t,a,0,a.length);return e&&(a.length=n),a}Module.intArrayFromString=intArrayFromString;function intArrayToString(t){for(var e=[],r=0;r255&&(o&=255),e.push(String.fromCharCode(o))}return e.join("")}Module.intArrayToString=intArrayToString;function writeStringToMemory(t,e,r){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var o,a;r&&(a=e+lengthBytesUTF8(t),o=HEAP8[a]),stringToUTF8(t,e,1/0),r&&(HEAP8[a]=o)}Module.writeStringToMemory=writeStringToMemory;function writeArrayToMemory(t,e){HEAP8.set(t,e)}Module.writeArrayToMemory=writeArrayToMemory;function writeAsciiToMemory(t,e,r){for(var o=0;o>0]=t.charCodeAt(o);r||(HEAP8[e>>0]=0)}if(Module.writeAsciiToMemory=writeAsciiToMemory,(!Math.imul||Math.imul(4294967295,5)!==-5)&&(Math.imul=function t(e,r){var o=e>>>16,a=e&65535,n=r>>>16,u=r&65535;return a*u+(o*u+a*n<<16)|0}),Math.imul=Math.imul,!Math.fround){var froundBuffer=new Float32Array(1);Math.fround=function(t){return froundBuffer[0]=t,froundBuffer[0]}}Math.fround=Math.fround,Math.clz32||(Math.clz32=function(t){t=t>>>0;for(var e=0;e<32;e++)if(t&1<<31-e)return e;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(t){return t<0?Math.ceil(t):Math.floor(t)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;function getUniqueRunDependency(t){return t}function addRunDependency(t){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}Module.addRunDependency=addRunDependency;function removeRunDependency(t){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),runDependencies==0&&(runDependencyWatcher!==null&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var e=dependenciesFulfilled;dependenciesFulfilled=null,e()}}Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[function(t,e,r,o,a,n,u,A){return _nbind.callbackSignatureList[t].apply(this,arguments)}];function _emscripten_asm_const_iiiiiiii(t,e,r,o,a,n,u,A){return ASM_CONSTS[t](e,r,o,a,n,u,A)}function _emscripten_asm_const_iiiii(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiidddddd(t,e,r,o,a,n,u,A,p){return ASM_CONSTS[t](e,r,o,a,n,u,A,p)}function _emscripten_asm_const_iiididi(t,e,r,o,a,n,u){return ASM_CONSTS[t](e,r,o,a,n,u)}function _emscripten_asm_const_iiii(t,e,r,o){return ASM_CONSTS[t](e,r,o)}function _emscripten_asm_const_iiiid(t,e,r,o,a){return ASM_CONSTS[t](e,r,o,a)}function _emscripten_asm_const_iiiiii(t,e,r,o,a,n){return ASM_CONSTS[t](e,r,o,a,n)}STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+12800,__ATINIT__.push({func:function(){__GLOBAL__sub_I_Yoga_cpp()}},{func:function(){__GLOBAL__sub_I_nbind_cc()}},{func:function(){__GLOBAL__sub_I_common_cc()}},{func:function(){__GLOBAL__sub_I_Binding_cc()}}),allocate([0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,192,127,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,3,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,192,127,0,0,192,127,0,0,0,0,0,0,0,0,255,255,255,255,255,255,255,255,0,0,128,191,0,0,128,191,0,0,192,127,0,0,0,0,0,0,0,0,0,0,128,63,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,3,0,0,0,1,0,0,0,2,0,0,0,0,0,0,0,190,12,0,0,200,12,0,0,208,12,0,0,216,12,0,0,230,12,0,0,242,12,0,0,1,0,0,0,3,0,0,0,0,0,0,0,2,0,0,0,0,0,192,127,3,0,0,0,180,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,182,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,1,0,0,0,4,0,0,0,183,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,181,45,0,0,184,45,0,0,185,45,0,0,181,45,0,0,181,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,148,4,0,0,3,0,0,0,187,45,0,0,164,4,0,0,188,45,0,0,2,0,0,0,189,45,0,0,164,4,0,0,188,45,0,0,185,45,0,0,164,4,0,0,185,45,0,0,164,4,0,0,188,45,0,0,181,45,0,0,182,45,0,0,181,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,5,0,0,0,6,0,0,0,1,0,0,0,7,0,0,0,183,45,0,0,182,45,0,0,181,45,0,0,190,45,0,0,190,45,0,0,182,45,0,0,182,45,0,0,185,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,181,45,0,0,185,45,0,0,182,45,0,0,185,45,0,0,48,5,0,0,3,0,0,0,56,5,0,0,1,0,0,0,189,45,0,0,185,45,0,0,164,4,0,0,76,5,0,0,2,0,0,0,191,45,0,0,186,45,0,0,182,45,0,0,185,45,0,0,192,45,0,0,185,45,0,0,182,45,0,0,186,45,0,0,185,45,0,0,76,5,0,0,76,5,0,0,136,5,0,0,182,45,0,0,181,45,0,0,2,0,0,0,190,45,0,0,136,5,0,0,56,19,0,0,156,5,0,0,2,0,0,0,184,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,8,0,0,0,9,0,0,0,1,0,0,0,10,0,0,0,204,5,0,0,181,45,0,0,181,45,0,0,2,0,0,0,180,45,0,0,204,5,0,0,2,0,0,0,195,45,0,0,236,5,0,0,97,19,0,0,198,45,0,0,211,45,0,0,212,45,0,0,213,45,0,0,214,45,0,0,215,45,0,0,188,45,0,0,182,45,0,0,216,45,0,0,217,45,0,0,218,45,0,0,219,45,0,0,192,45,0,0,181,45,0,0,0,0,0,0,185,45,0,0,110,19,0,0,186,45,0,0,115,19,0,0,221,45,0,0,120,19,0,0,148,4,0,0,132,19,0,0,96,6,0,0,145,19,0,0,222,45,0,0,164,19,0,0,223,45,0,0,173,19,0,0,0,0,0,0,3,0,0,0,104,6,0,0,1,0,0,0,187,45,0,0,0,0,0,0,0,0,0,0,1,0,0,0,11,0,0,0,12,0,0,0,1,0,0,0,13,0,0,0,185,45,0,0,224,45,0,0,164,6,0,0,188,45,0,0,172,6,0,0,180,6,0,0,2,0,0,0,188,6,0,0,7,0,0,0,224,45,0,0,7,0,0,0,164,6,0,0,1,0,0,0,213,45,0,0,185,45,0,0,224,45,0,0,172,6,0,0,185,45,0,0,224,45,0,0,164,6,0,0,185,45,0,0,224,45,0,0,211,45,0,0,211,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,222,45,0,0,211,45,0,0,224,45,0,0,172,6,0,0,222,45,0,0,211,45,0,0,224,45,0,0,188,45,0,0,222,45,0,0,211,45,0,0,40,7,0,0,188,45,0,0,2,0,0,0,224,45,0,0,185,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,188,45,0,0,222,45,0,0,224,45,0,0,148,4,0,0,185,45,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,148,4,0,0,185,45,0,0,164,6,0,0,148,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,14,0,0,0,15,0,0,0,1,0,0,0,16,0,0,0,148,7,0,0,2,0,0,0,225,45,0,0,183,45,0,0,188,45,0,0,168,7,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,234,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,148,45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,28,9,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,242,45,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,110,111,100,101,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,119,104,105,99,104,32,115,116,105,108,108,32,104,97,115,32,99,104,105,108,100,114,101,110,32,97,116,116,97,99,104,101,100,0,67,97,110,110,111,116,32,114,101,115,101,116,32,97,32,110,111,100,101,32,115,116,105,108,108,32,97,116,116,97,99,104,101,100,32,116,111,32,97,32,112,97,114,101,110,116,0,67,111,117,108,100,32,110,111,116,32,97,108,108,111,99,97,116,101,32,109,101,109,111,114,121,32,102,111,114,32,99,111,110,102,105,103,0,67,97,110,110,111,116,32,115,101,116,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,67,104,105,108,100,32,97,108,114,101,97,100,121,32,104,97,115,32,97,32,112,97,114,101,110,116,44,32,105,116,32,109,117,115,116,32,98,101,32,114,101,109,111,118,101,100,32,102,105,114,115,116,46,0,67,97,110,110,111,116,32,97,100,100,32,99,104,105,108,100,58,32,78,111,100,101,115,32,119,105,116,104,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,32,99,97,110,110,111,116,32,104,97,118,101,32,99,104,105,108,100,114,101,110,46,0,79,110,108,121,32,108,101,97,102,32,110,111,100,101,115,32,119,105,116,104,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,115,115,104,111,117,108,100,32,109,97,110,117,97,108,108,121,32,109,97,114,107,32,116,104,101,109,115,101,108,118,101,115,32,97,115,32,100,105,114,116,121,0,67,97,110,110,111,116,32,103,101,116,32,108,97,121,111,117,116,32,112,114,111,112,101,114,116,105,101,115,32,111,102,32,109,117,108,116,105,45,101,100,103,101,32,115,104,111,114,116,104,97,110,100,115,0,37,115,37,100,46,123,91,115,107,105,112,112,101,100,93,32,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,61,62,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,37,115,37,100,46,123,37,115,0,42,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,97,119,58,32,37,102,32,97,104,58,32,37,102,32,37,115,10,0,37,115,37,100,46,125,37,115,0,119,109,58,32,37,115,44,32,104,109,58,32,37,115,44,32,100,58,32,40,37,102,44,32,37,102,41,32,37,115,10,0,79,117,116,32,111,102,32,99,97,99,104,101,32,101,110,116,114,105,101,115,33,10,0,83,99,97,108,101,32,102,97,99,116,111,114,32,115,104,111,117,108,100,32,110,111,116,32,98,101,32,108,101,115,115,32,116,104,97,110,32,122,101,114,111,0,105,110,105,116,105,97,108,0,37,115,10,0,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,32,0,85,78,68,69,70,73,78,69,68,0,69,88,65,67,84,76,89,0,65,84,95,77,79,83,84,0,76,65,89,95,85,78,68,69,70,73,78,69,68,0,76,65,89,95,69,88,65,67,84,76,89,0,76,65,89,95,65,84,95,77,79,83,84,0,97,118,97,105,108,97,98,108,101,87,105,100,116,104,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,119,105,100,116,104,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,97,118,97,105,108,97,98,108,101,72,101,105,103,104,116,32,105,115,32,105,110,100,101,102,105,110,105,116,101,32,115,111,32,104,101,105,103,104,116,77,101,97,115,117,114,101,77,111,100,101,32,109,117,115,116,32,98,101,32,89,71,77,101,97,115,117,114,101,77,111,100,101,85,110,100,101,102,105,110,101,100,0,102,108,101,120,0,115,116,114,101,116,99,104,0,109,117,108,116,105,108,105,110,101,45,115,116,114,101,116,99,104,0,69,120,112,101,99,116,101,100,32,110,111,100,101,32,116,111,32,104,97,118,101,32,99,117,115,116,111,109,32,109,101,97,115,117,114,101,32,102,117,110,99,116,105,111,110,0,109,101,97,115,117,114,101,0,69,120,112,101,99,116,32,99,117,115,116,111,109,32,98,97,115,101,108,105,110,101,32,102,117,110,99,116,105,111,110,32,116,111,32,110,111,116,32,114,101,116,117,114,110,32,78,97,78,0,97,98,115,45,109,101,97,115,117,114,101,0,97,98,115,45,108,97,121,111,117,116,0,78,111,100,101,0,99,114,101,97,116,101,68,101,102,97,117,108,116,0,99,114,101,97,116,101,87,105,116,104,67,111,110,102,105,103,0,100,101,115,116,114,111,121,0,114,101,115,101,116,0,99,111,112,121,83,116,121,108,101,0,115,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,115,101,116,80,111,115,105,116,105,111,110,0,115,101,116,80,111,115,105,116,105,111,110,80,101,114,99,101,110,116,0,115,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,115,101,116,65,108,105,103,110,73,116,101,109,115,0,115,101,116,65,108,105,103,110,83,101,108,102,0,115,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,115,101,116,70,108,101,120,87,114,97,112,0,115,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,115,101,116,77,97,114,103,105,110,0,115,101,116,77,97,114,103,105,110,80,101,114,99,101,110,116,0,115,101,116,77,97,114,103,105,110,65,117,116,111,0,115,101,116,79,118,101,114,102,108,111,119,0,115,101,116,68,105,115,112,108,97,121,0,115,101,116,70,108,101,120,0,115,101,116,70,108,101,120,66,97,115,105,115,0,115,101,116,70,108,101,120,66,97,115,105,115,80,101,114,99,101,110,116,0,115,101,116,70,108,101,120,71,114,111,119,0,115,101,116,70,108,101,120,83,104,114,105,110,107,0,115,101,116,87,105,100,116,104,0,115,101,116,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,87,105,100,116,104,65,117,116,111,0,115,101,116,72,101,105,103,104,116,0,115,101,116,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,72,101,105,103,104,116,65,117,116,111,0,115,101,116,77,105,110,87,105,100,116,104,0,115,101,116,77,105,110,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,105,110,72,101,105,103,104,116,0,115,101,116,77,105,110,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,77,97,120,87,105,100,116,104,0,115,101,116,77,97,120,87,105,100,116,104,80,101,114,99,101,110,116,0,115,101,116,77,97,120,72,101,105,103,104,116,0,115,101,116,77,97,120,72,101,105,103,104,116,80,101,114,99,101,110,116,0,115,101,116,65,115,112,101,99,116,82,97,116,105,111,0,115,101,116,66,111,114,100,101,114,0,115,101,116,80,97,100,100,105,110,103,0,115,101,116,80,97,100,100,105,110,103,80,101,114,99,101,110,116,0,103,101,116,80,111,115,105,116,105,111,110,84,121,112,101,0,103,101,116,80,111,115,105,116,105,111,110,0,103,101,116,65,108,105,103,110,67,111,110,116,101,110,116,0,103,101,116,65,108,105,103,110,73,116,101,109,115,0,103,101,116,65,108,105,103,110,83,101,108,102,0,103,101,116,70,108,101,120,68,105,114,101,99,116,105,111,110,0,103,101,116,70,108,101,120,87,114,97,112,0,103,101,116,74,117,115,116,105,102,121,67,111,110,116,101,110,116,0,103,101,116,77,97,114,103,105,110,0,103,101,116,70,108,101,120,66,97,115,105,115,0,103,101,116,70,108,101,120,71,114,111,119,0,103,101,116,70,108,101,120,83,104,114,105,110,107,0,103,101,116,87,105,100,116,104,0,103,101,116,72,101,105,103,104,116,0,103,101,116,77,105,110,87,105,100,116,104,0,103,101,116,77,105,110,72,101,105,103,104,116,0,103,101,116,77,97,120,87,105,100,116,104,0,103,101,116,77,97,120,72,101,105,103,104,116,0,103,101,116,65,115,112,101,99,116,82,97,116,105,111,0,103,101,116,66,111,114,100,101,114,0,103,101,116,79,118,101,114,102,108,111,119,0,103,101,116,68,105,115,112,108,97,121,0,103,101,116,80,97,100,100,105,110,103,0,105,110,115,101,114,116,67,104,105,108,100,0,114,101,109,111,118,101,67,104,105,108,100,0,103,101,116,67,104,105,108,100,67,111,117,110,116,0,103,101,116,80,97,114,101,110,116,0,103,101,116,67,104,105,108,100,0,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,117,110,115,101,116,77,101,97,115,117,114,101,70,117,110,99,0,109,97,114,107,68,105,114,116,121,0,105,115,68,105,114,116,121,0,99,97,108,99,117,108,97,116,101,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,76,101,102,116,0,103,101,116,67,111,109,112,117,116,101,100,82,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,84,111,112,0,103,101,116,67,111,109,112,117,116,101,100,66,111,116,116,111,109,0,103,101,116,67,111,109,112,117,116,101,100,87,105,100,116,104,0,103,101,116,67,111,109,112,117,116,101,100,72,101,105,103,104,116,0,103,101,116,67,111,109,112,117,116,101,100,76,97,121,111,117,116,0,103,101,116,67,111,109,112,117,116,101,100,77,97,114,103,105,110,0,103,101,116,67,111,109,112,117,116,101,100,66,111,114,100,101,114,0,103,101,116,67,111,109,112,117,116,101,100,80,97,100,100,105,110,103,0,67,111,110,102,105,103,0,99,114,101,97,116,101,0,115,101,116,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,115,101,116,80,111,105,110,116,83,99,97,108,101,70,97,99,116,111,114,0,105,115,69,120,112,101,114,105,109,101,110,116,97,108,70,101,97,116,117,114,101,69,110,97,98,108,101,100,0,86,97,108,117,101,0,76,97,121,111,117,116,0,83,105,122,101,0,103,101,116,73,110,115,116,97,110,99,101,67,111,117,110,116,0,73,110,116,54,52,0,1,1,1,2,2,4,4,4,4,8,8,4,8,118,111,105,100,0,98,111,111,108,0,115,116,100,58,58,115,116,114,105,110,103,0,99,98,70,117,110,99,116,105,111,110,32,38,0,99,111,110,115,116,32,99,98,70,117,110,99,116,105,111,110,32,38,0,69,120,116,101,114,110,97,108,0,66,117,102,102,101,114,0,78,66,105,110,100,73,68,0,78,66,105,110,100,0,98,105,110,100,95,118,97,108,117,101,0,114,101,102,108,101,99,116,0,113,117,101,114,121,84,121,112,101,0,108,97,108,108,111,99,0,108,114,101,115,101,116,0,123,114,101,116,117,114,110,40,95,110,98,105,110,100,46,99,97,108,108,98,97,99,107,83,105,103,110,97,116,117,114,101,76,105,115,116,91,36,48,93,46,97,112,112,108,121,40,116,104,105,115,44,97,114,103,117,109,101,110,116,115,41,41,59,125,0,95,110,98,105,110,100,95,110,101,119,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;function _atexit(t,e){__ATEXIT__.unshift({func:t,arg:e})}function ___cxa_atexit(){return _atexit.apply(null,arguments)}function _abort(){Module.abort()}function __ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj(){Module.printErr("missing function: _ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj"),abort(-1)}function __decorate(t,e,r,o){var a=arguments.length,n=a<3?e:o===null?o=Object.getOwnPropertyDescriptor(e,r):o,u;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(t,e,r,o);else for(var A=t.length-1;A>=0;A--)(u=t[A])&&(n=(a<3?u(n):a>3?u(e,r,n):u(e,r))||n);return a>3&&n&&Object.defineProperty(e,r,n),n}function _defineHidden(t){return function(e,r){Object.defineProperty(e,r,{configurable:!1,enumerable:!1,value:t,writable:!0})}}var _nbind={};function __nbind_free_external(t){_nbind.externalList[t].dereference(t)}function __nbind_reference_external(t){_nbind.externalList[t].reference()}function _llvm_stackrestore(t){var e=_llvm_stacksave,r=e.LLVM_SAVEDSTACKS[t];e.LLVM_SAVEDSTACKS.splice(t,1),Runtime.stackRestore(r)}function __nbind_register_pool(t,e,r,o){_nbind.Pool.pageSize=t,_nbind.Pool.usedPtr=e/4,_nbind.Pool.rootPtr=r,_nbind.Pool.pagePtr=o/4,HEAP32[e/4]=16909060,HEAP8[e]==1&&(_nbind.bigEndian=!0),HEAP32[e/4]=0,_nbind.makeTypeKindTbl=(n={},n[1024]=_nbind.PrimitiveType,n[64]=_nbind.Int64Type,n[2048]=_nbind.BindClass,n[3072]=_nbind.BindClassPtr,n[4096]=_nbind.SharedClassPtr,n[5120]=_nbind.ArrayType,n[6144]=_nbind.ArrayType,n[7168]=_nbind.CStringType,n[9216]=_nbind.CallbackType,n[10240]=_nbind.BindType,n),_nbind.makeTypeNameTbl={Buffer:_nbind.BufferType,External:_nbind.ExternalType,Int64:_nbind.Int64Type,_nbind_new:_nbind.CreateValueType,bool:_nbind.BooleanType,"cbFunction &":_nbind.CallbackType,"const cbFunction &":_nbind.CallbackType,"const std::string &":_nbind.StringType,"std::string":_nbind.StringType},Module.toggleLightGC=_nbind.toggleLightGC,_nbind.callUpcast=Module.dynCall_ii;var a=_nbind.makeType(_nbind.constructType,{flags:2048,id:0,name:""});a.proto=Module,_nbind.BindClass.list.push(a);var n}function _emscripten_set_main_loop_timing(t,e){if(Browser.mainLoop.timingMode=t,Browser.mainLoop.timingValue=e,!Browser.mainLoop.func)return 1;if(t==0)Browser.mainLoop.scheduler=function(){var u=Math.max(0,Browser.mainLoop.tickStartTime+e-_emscripten_get_now())|0;setTimeout(Browser.mainLoop.runner,u)},Browser.mainLoop.method="timeout";else if(t==1)Browser.mainLoop.scheduler=function(){Browser.requestAnimationFrame(Browser.mainLoop.runner)},Browser.mainLoop.method="rAF";else if(t==2){if(!window.setImmediate){let n=function(u){u.source===window&&u.data===o&&(u.stopPropagation(),r.shift()())};var a=n,r=[],o="setimmediate";window.addEventListener("message",n,!0),window.setImmediate=function(A){r.push(A),ENVIRONMENT_IS_WORKER?(Module.setImmediates===void 0&&(Module.setImmediates=[]),Module.setImmediates.push(A),window.postMessage({target:o})):window.postMessage(o,"*")}}Browser.mainLoop.scheduler=function(){window.setImmediate(Browser.mainLoop.runner)},Browser.mainLoop.method="immediate"}return 0}function _emscripten_get_now(){abort()}function _emscripten_set_main_loop(t,e,r,o,a){Module.noExitRuntime=!0,assert(!Browser.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters."),Browser.mainLoop.func=t,Browser.mainLoop.arg=o;var n;typeof o<"u"?n=function(){Module.dynCall_vi(t,o)}:n=function(){Module.dynCall_v(t)};var u=Browser.mainLoop.currentlyRunningMainloop;if(Browser.mainLoop.runner=function(){if(!ABORT){if(Browser.mainLoop.queue.length>0){var p=Date.now(),h=Browser.mainLoop.queue.shift();if(h.func(h.arg),Browser.mainLoop.remainingBlockers){var E=Browser.mainLoop.remainingBlockers,w=E%1==0?E-1:Math.floor(E);h.counted?Browser.mainLoop.remainingBlockers=w:(w=w+.5,Browser.mainLoop.remainingBlockers=(8*E+w)/9)}if(console.log('main loop blocker "'+h.name+'" took '+(Date.now()-p)+" ms"),Browser.mainLoop.updateStatus(),u1&&Browser.mainLoop.currentFrameNumber%Browser.mainLoop.timingValue!=0){Browser.mainLoop.scheduler();return}else Browser.mainLoop.timingMode==0&&(Browser.mainLoop.tickStartTime=_emscripten_get_now());Browser.mainLoop.method==="timeout"&&Module.ctx&&(Module.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),Browser.mainLoop.method=""),Browser.mainLoop.runIter(n),!(u0?_emscripten_set_main_loop_timing(0,1e3/e):_emscripten_set_main_loop_timing(1,1),Browser.mainLoop.scheduler()),r)throw"SimulateInfiniteLoop"}var Browser={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){Browser.mainLoop.scheduler=null,Browser.mainLoop.currentlyRunningMainloop++},resume:function(){Browser.mainLoop.currentlyRunningMainloop++;var t=Browser.mainLoop.timingMode,e=Browser.mainLoop.timingValue,r=Browser.mainLoop.func;Browser.mainLoop.func=null,_emscripten_set_main_loop(r,0,!1,Browser.mainLoop.arg,!0),_emscripten_set_main_loop_timing(t,e),Browser.mainLoop.scheduler()},updateStatus:function(){if(Module.setStatus){var t=Module.statusMessage||"Please wait...",e=Browser.mainLoop.remainingBlockers,r=Browser.mainLoop.expectedBlockers;e?e"u"&&(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),Module.noImageDecoding=!0);var t={};t.canHandle=function(n){return!Module.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(n)},t.handle=function(n,u,A,p){var h=null;if(Browser.hasBlobConstructor)try{h=new Blob([n],{type:Browser.getMimetype(u)}),h.size!==n.length&&(h=new Blob([new Uint8Array(n).buffer],{type:Browser.getMimetype(u)}))}catch(x){Runtime.warnOnce("Blob constructor present but fails: "+x+"; falling back to blob builder")}if(!h){var E=new Browser.BlobBuilder;E.append(new Uint8Array(n).buffer),h=E.getBlob()}var w=Browser.URLObject.createObjectURL(h),D=new Image;D.onload=function(){assert(D.complete,"Image "+u+" could not be decoded");var C=document.createElement("canvas");C.width=D.width,C.height=D.height;var T=C.getContext("2d");T.drawImage(D,0,0),Module.preloadedImages[u]=C,Browser.URLObject.revokeObjectURL(w),A&&A(n)},D.onerror=function(C){console.log("Image "+w+" could not be decoded"),p&&p()},D.src=w},Module.preloadPlugins.push(t);var e={};e.canHandle=function(n){return!Module.noAudioDecoding&&n.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},e.handle=function(n,u,A,p){var h=!1;function E(T){h||(h=!0,Module.preloadedAudios[u]=T,A&&A(n))}function w(){h||(h=!0,Module.preloadedAudios[u]=new Audio,p&&p())}if(Browser.hasBlobConstructor){try{var D=new Blob([n],{type:Browser.getMimetype(u)})}catch{return w()}var x=Browser.URLObject.createObjectURL(D),C=new Audio;C.addEventListener("canplaythrough",function(){E(C)},!1),C.onerror=function(L){if(h)return;console.log("warning: browser could not fully decode audio "+u+", trying slower base64 approach");function U(J){for(var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",le="=",ce="",ue=0,Ie=0,he=0;he=6;){var De=ue>>Ie-6&63;Ie-=6,ce+=te[De]}return Ie==2?(ce+=te[(ue&3)<<4],ce+=le+le):Ie==4&&(ce+=te[(ue&15)<<2],ce+=le),ce}C.src="data:audio/x-"+u.substr(-3)+";base64,"+U(n),E(C)},C.src=x,Browser.safeSetTimeout(function(){E(C)},1e4)}else return w()},Module.preloadPlugins.push(e);function r(){Browser.pointerLock=document.pointerLockElement===Module.canvas||document.mozPointerLockElement===Module.canvas||document.webkitPointerLockElement===Module.canvas||document.msPointerLockElement===Module.canvas}var o=Module.canvas;o&&(o.requestPointerLock=o.requestPointerLock||o.mozRequestPointerLock||o.webkitRequestPointerLock||o.msRequestPointerLock||function(){},o.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},o.exitPointerLock=o.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",r,!1),document.addEventListener("mozpointerlockchange",r,!1),document.addEventListener("webkitpointerlockchange",r,!1),document.addEventListener("mspointerlockchange",r,!1),Module.elementPointerLock&&o.addEventListener("click",function(a){!Browser.pointerLock&&Module.canvas.requestPointerLock&&(Module.canvas.requestPointerLock(),a.preventDefault())},!1))},createContext:function(t,e,r,o){if(e&&Module.ctx&&t==Module.canvas)return Module.ctx;var a,n;if(e){var u={antialias:!1,alpha:!1};if(o)for(var A in o)u[A]=o[A];n=GL.createContext(t,u),n&&(a=GL.getContext(n).GLctx)}else a=t.getContext("2d");return a?(r&&(e||assert(typeof GLctx>"u","cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),Module.ctx=a,e&&GL.makeContextCurrent(n),Module.useWebGL=e,Browser.moduleContextCreatedCallbacks.forEach(function(p){p()}),Browser.init()),a):null},destroyContext:function(t,e,r){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(t,e,r){Browser.lockPointer=t,Browser.resizeCanvas=e,Browser.vrDevice=r,typeof Browser.lockPointer>"u"&&(Browser.lockPointer=!0),typeof Browser.resizeCanvas>"u"&&(Browser.resizeCanvas=!1),typeof Browser.vrDevice>"u"&&(Browser.vrDevice=null);var o=Module.canvas;function a(){Browser.isFullscreen=!1;var u=o.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===u?(o.exitFullscreen=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},o.exitFullscreen=o.exitFullscreen.bind(document),Browser.lockPointer&&o.requestPointerLock(),Browser.isFullscreen=!0,Browser.resizeCanvas&&Browser.setFullscreenCanvasSize()):(u.parentNode.insertBefore(o,u),u.parentNode.removeChild(u),Browser.resizeCanvas&&Browser.setWindowedCanvasSize()),Module.onFullScreen&&Module.onFullScreen(Browser.isFullscreen),Module.onFullscreen&&Module.onFullscreen(Browser.isFullscreen),Browser.updateCanvasDimensions(o)}Browser.fullscreenHandlersInstalled||(Browser.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",a,!1),document.addEventListener("mozfullscreenchange",a,!1),document.addEventListener("webkitfullscreenchange",a,!1),document.addEventListener("MSFullscreenChange",a,!1));var n=document.createElement("div");o.parentNode.insertBefore(n,o),n.appendChild(o),n.requestFullscreen=n.requestFullscreen||n.mozRequestFullScreen||n.msRequestFullscreen||(n.webkitRequestFullscreen?function(){n.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(n.webkitRequestFullScreen?function(){n.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null),r?n.requestFullscreen({vrDisplay:r}):n.requestFullscreen()},requestFullScreen:function(t,e,r){return Module.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead."),Browser.requestFullScreen=function(o,a,n){return Browser.requestFullscreen(o,a,n)},Browser.requestFullscreen(t,e,r)},nextRAF:0,fakeRequestAnimationFrame:function(t){var e=Date.now();if(Browser.nextRAF===0)Browser.nextRAF=e+1e3/60;else for(;e+2>=Browser.nextRAF;)Browser.nextRAF+=1e3/60;var r=Math.max(Browser.nextRAF-e,0);setTimeout(t,r)},requestAnimationFrame:function t(e){typeof window>"u"?Browser.fakeRequestAnimationFrame(e):(window.requestAnimationFrame||(window.requestAnimationFrame=window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame||Browser.fakeRequestAnimationFrame),window.requestAnimationFrame(e))},safeCallback:function(t){return function(){if(!ABORT)return t.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){Browser.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){if(Browser.allowAsyncCallbacks=!0,Browser.queuedAsyncCallbacks.length>0){var t=Browser.queuedAsyncCallbacks;Browser.queuedAsyncCallbacks=[],t.forEach(function(e){e()})}},safeRequestAnimationFrame:function(t){return Browser.requestAnimationFrame(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))})},safeSetTimeout:function(t,e){return Module.noExitRuntime=!0,setTimeout(function(){ABORT||(Browser.allowAsyncCallbacks?t():Browser.queuedAsyncCallbacks.push(t))},e)},safeSetInterval:function(t,e){return Module.noExitRuntime=!0,setInterval(function(){ABORT||Browser.allowAsyncCallbacks&&t()},e)},getMimetype:function(t){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[t.substr(t.lastIndexOf(".")+1)]},getUserMedia:function(t){window.getUserMedia||(window.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia),window.getUserMedia(t)},getMovementX:function(t){return t.movementX||t.mozMovementX||t.webkitMovementX||0},getMovementY:function(t){return t.movementY||t.mozMovementY||t.webkitMovementY||0},getMouseWheelDelta:function(t){var e=0;switch(t.type){case"DOMMouseScroll":e=t.detail;break;case"mousewheel":e=t.wheelDelta;break;case"wheel":e=t.deltaY;break;default:throw"unrecognized mouse wheel event: "+t.type}return e},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(t){if(Browser.pointerLock)t.type!="mousemove"&&"mozMovementX"in t?Browser.mouseMovementX=Browser.mouseMovementY=0:(Browser.mouseMovementX=Browser.getMovementX(t),Browser.mouseMovementY=Browser.getMovementY(t)),typeof SDL<"u"?(Browser.mouseX=SDL.mouseX+Browser.mouseMovementX,Browser.mouseY=SDL.mouseY+Browser.mouseMovementY):(Browser.mouseX+=Browser.mouseMovementX,Browser.mouseY+=Browser.mouseMovementY);else{var e=Module.canvas.getBoundingClientRect(),r=Module.canvas.width,o=Module.canvas.height,a=typeof window.scrollX<"u"?window.scrollX:window.pageXOffset,n=typeof window.scrollY<"u"?window.scrollY:window.pageYOffset;if(t.type==="touchstart"||t.type==="touchend"||t.type==="touchmove"){var u=t.touch;if(u===void 0)return;var A=u.pageX-(a+e.left),p=u.pageY-(n+e.top);A=A*(r/e.width),p=p*(o/e.height);var h={x:A,y:p};if(t.type==="touchstart")Browser.lastTouches[u.identifier]=h,Browser.touches[u.identifier]=h;else if(t.type==="touchend"||t.type==="touchmove"){var E=Browser.touches[u.identifier];E||(E=h),Browser.lastTouches[u.identifier]=E,Browser.touches[u.identifier]=h}return}var w=t.pageX-(a+e.left),D=t.pageY-(n+e.top);w=w*(r/e.width),D=D*(o/e.height),Browser.mouseMovementX=w-Browser.mouseX,Browser.mouseMovementY=D-Browser.mouseY,Browser.mouseX=w,Browser.mouseY=D}},asyncLoad:function(t,e,r,o){var a=o?"":"al "+t;Module.readAsync(t,function(n){assert(n,'Loading data file "'+t+'" failed (no arrayBuffer).'),e(new Uint8Array(n)),a&&removeRunDependency(a)},function(n){if(r)r();else throw'Loading data file "'+t+'" failed.'}),a&&addRunDependency(a)},resizeListeners:[],updateResizeListeners:function(){var t=Module.canvas;Browser.resizeListeners.forEach(function(e){e(t.width,t.height)})},setCanvasSize:function(t,e,r){var o=Module.canvas;Browser.updateCanvasDimensions(o,t,e),r||Browser.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t|8388608,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},setWindowedCanvasSize:function(){if(typeof SDL<"u"){var t=HEAPU32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2];t=t&-8388609,HEAP32[SDL.screen+Runtime.QUANTUM_SIZE*0>>2]=t}Browser.updateResizeListeners()},updateCanvasDimensions:function(t,e,r){e&&r?(t.widthNative=e,t.heightNative=r):(e=t.widthNative,r=t.heightNative);var o=e,a=r;if(Module.forcedAspectRatio&&Module.forcedAspectRatio>0&&(o/a>2];return e},getStr:function(){var t=Pointer_stringify(SYSCALLS.get());return t},get64:function(){var t=SYSCALLS.get(),e=SYSCALLS.get();return t>=0?assert(e===0):assert(e===-1),t},getZero:function(){assert(SYSCALLS.get()===0)}};function ___syscall6(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD();return FS.close(r),0}catch(o){return(typeof FS>"u"||!(o instanceof FS.ErrnoError))&&abort(o),-o.errno}}function ___syscall54(t,e){SYSCALLS.varargs=e;try{return 0}catch(r){return(typeof FS>"u"||!(r instanceof FS.ErrnoError))&&abort(r),-r.errno}}function _typeModule(t){var e=[[0,1,"X"],[1,1,"const X"],[128,1,"X *"],[256,1,"X &"],[384,1,"X &&"],[512,1,"std::shared_ptr"],[640,1,"std::unique_ptr"],[5120,1,"std::vector"],[6144,2,"std::array"],[9216,-1,"std::function"]];function r(p,h,E,w,D,x){if(h==1){var C=w&896;(C==128||C==256||C==384)&&(p="X const")}var T;return x?T=E.replace("X",p).replace("Y",D):T=p.replace("X",E).replace("Y",D),T.replace(/([*&]) (?=[*&])/g,"$1")}function o(p,h,E,w,D){throw new Error(p+" type "+E.replace("X",h+"?")+(w?" with flag "+w:"")+" in "+D)}function a(p,h,E,w,D,x,C,T){x===void 0&&(x="X"),T===void 0&&(T=1);var L=E(p);if(L)return L;var U=w(p),J=U.placeholderFlag,te=e[J];C&&te&&(x=r(C[2],C[0],x,te[0],"?",!0));var le;J==0&&(le="Unbound"),J>=10&&(le="Corrupt"),T>20&&(le="Deeply nested"),le&&o(le,p,x,J,D||"?");var ce=U.paramList[0],ue=a(ce,h,E,w,D,x,te,T+1),Ie,he={flags:te[0],id:p,name:"",paramList:[ue]},De=[],Ee="?";switch(U.placeholderFlag){case 1:Ie=ue.spec;break;case 2:if((ue.flags&15360)==1024&&ue.spec.ptrSize==1){he.flags=7168;break}case 3:case 6:case 5:Ie=ue.spec,ue.flags&15360;break;case 8:Ee=""+U.paramList[1],he.paramList.push(U.paramList[1]);break;case 9:for(var g=0,me=U.paramList[1];g>2]=t),t}function _llvm_stacksave(){var t=_llvm_stacksave;return t.LLVM_SAVEDSTACKS||(t.LLVM_SAVEDSTACKS=[]),t.LLVM_SAVEDSTACKS.push(Runtime.stackSave()),t.LLVM_SAVEDSTACKS.length-1}function ___syscall140(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.getStreamFromFD(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=SYSCALLS.get(),u=SYSCALLS.get(),A=a;return FS.llseek(r,A,u),HEAP32[n>>2]=r.position,r.getdents&&A===0&&u===0&&(r.getdents=null),0}catch(p){return(typeof FS>"u"||!(p instanceof FS.ErrnoError))&&abort(p),-p.errno}}function ___syscall146(t,e){SYSCALLS.varargs=e;try{var r=SYSCALLS.get(),o=SYSCALLS.get(),a=SYSCALLS.get(),n=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(E,w){var D=___syscall146.buffers[E];assert(D),w===0||w===10?((E===1?Module.print:Module.printErr)(UTF8ArrayToString(D,0)),D.length=0):D.push(w)});for(var u=0;u>2],p=HEAP32[o+(u*8+4)>>2],h=0;h"u"||!(E instanceof FS.ErrnoError))&&abort(E),-E.errno}}function __nbind_finish(){for(var t=0,e=_nbind.BindClass.list;tt.pageSize/2||e>t.pageSize-r){var o=_nbind.typeNameTbl.NBind.proto;return o.lalloc(e)}else return HEAPU32[t.usedPtr]=r+e,t.rootPtr+r},t.lreset=function(e,r){var o=HEAPU32[t.pagePtr];if(o){var a=_nbind.typeNameTbl.NBind.proto;a.lreset(e,r)}else HEAPU32[t.usedPtr]=e},t}();_nbind.Pool=Pool;function constructType(t,e){var r=t==10240?_nbind.makeTypeNameTbl[e.name]||_nbind.BindType:_nbind.makeTypeKindTbl[t],o=new r(e);return typeIdTbl[e.id]=o,_nbind.typeNameTbl[e.name]=o,o}_nbind.constructType=constructType;function getType(t){return typeIdTbl[t]}_nbind.getType=getType;function queryType(t){var e=HEAPU8[t],r=_nbind.structureList[e][1];t/=4,r<0&&(++t,r=HEAPU32[t]+1);var o=Array.prototype.slice.call(HEAPU32.subarray(t+1,t+1+r));return e==9&&(o=[o[0],o.slice(1)]),{paramList:o,placeholderFlag:e}}_nbind.queryType=queryType;function getTypes(t,e){return t.map(function(r){return typeof r=="number"?_nbind.getComplexType(r,constructType,getType,queryType,e):_nbind.typeNameTbl[r]})}_nbind.getTypes=getTypes;function readTypeIdList(t,e){return Array.prototype.slice.call(HEAPU32,t/4,t/4+e)}_nbind.readTypeIdList=readTypeIdList;function readAsciiString(t){for(var e=t;HEAPU8[e++];);return String.fromCharCode.apply("",HEAPU8.subarray(t,e-1))}_nbind.readAsciiString=readAsciiString;function readPolicyList(t){var e={};if(t)for(;;){var r=HEAPU32[t/4];if(!r)break;e[readAsciiString(r)]=!0,t+=4}return e}_nbind.readPolicyList=readPolicyList;function getDynCall(t,e){var r={float32_t:"d",float64_t:"d",int64_t:"d",uint64_t:"d",void:"v"},o=t.map(function(n){return r[n.name]||"i"}).join(""),a=Module["dynCall_"+o];if(!a)throw new Error("dynCall_"+o+" not found for "+e+"("+t.map(function(n){return n.name}).join(", ")+")");return a}_nbind.getDynCall=getDynCall;function addMethod(t,e,r,o){var a=t[e];t.hasOwnProperty(e)&&a?((a.arity||a.arity===0)&&(a=_nbind.makeOverloader(a,a.arity),t[e]=a),a.addMethod(r,o)):(r.arity=o,t[e]=r)}_nbind.addMethod=addMethod;function throwError(t){throw new Error(t)}_nbind.throwError=throwError,_nbind.bigEndian=!1,_a=_typeModule(_typeModule),_nbind.Type=_a.Type,_nbind.makeType=_a.makeType,_nbind.getComplexType=_a.getComplexType,_nbind.structureList=_a.structureList;var BindType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.heap=HEAPU32,r.ptrSize=4,r}return e.prototype.needsWireRead=function(r){return!!this.wireRead||!!this.makeWireRead},e.prototype.needsWireWrite=function(r){return!!this.wireWrite||!!this.makeWireWrite},e}(_nbind.Type);_nbind.BindType=BindType;var PrimitiveType=function(t){__extends(e,t);function e(r){var o=t.call(this,r)||this,a=r.flags&32?{32:HEAPF32,64:HEAPF64}:r.flags&8?{8:HEAPU8,16:HEAPU16,32:HEAPU32}:{8:HEAP8,16:HEAP16,32:HEAP32};return o.heap=a[r.ptrSize*8],o.ptrSize=r.ptrSize,o}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="number")return a;throw new Error("Type mismatch")}},e}(BindType);_nbind.PrimitiveType=PrimitiveType;function pushCString(t,e){if(t==null){if(e&&e.Nullable)return 0;throw new Error("Type mismatch")}if(e&&e.Strict){if(typeof t!="string")throw new Error("Type mismatch")}else t=t.toString();var r=Module.lengthBytesUTF8(t)+1,o=_nbind.Pool.lalloc(r);return Module.stringToUTF8Array(t,HEAPU8,o,r),o}_nbind.pushCString=pushCString;function popCString(t){return t===0?null:Module.Pointer_stringify(t)}_nbind.popCString=popCString;var CStringType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=popCString,r.wireWrite=pushCString,r.readResources=[_nbind.resources.pool],r.writeResources=[_nbind.resources.pool],r}return e.prototype.makeWireWrite=function(r,o){return function(a){return pushCString(a,o)}},e}(BindType);_nbind.CStringType=CStringType;var BooleanType=function(t){__extends(e,t);function e(){var r=t!==null&&t.apply(this,arguments)||this;return r.wireRead=function(o){return!!o},r}return e.prototype.needsWireWrite=function(r){return!!r&&!!r.Strict},e.prototype.makeWireRead=function(r){return"!!("+r+")"},e.prototype.makeWireWrite=function(r,o){return o&&o.Strict&&function(a){if(typeof a=="boolean")return a;throw new Error("Type mismatch")}||r},e}(BindType);_nbind.BooleanType=BooleanType;var Wrapper=function(){function t(){}return t.prototype.persist=function(){this.__nbindState|=1},t}();_nbind.Wrapper=Wrapper;function makeBound(t,e){var r=function(o){__extends(a,o);function a(n,u,A,p){var h=o.call(this)||this;if(!(h instanceof a))return new(Function.prototype.bind.apply(a,Array.prototype.concat.apply([null],arguments)));var E=u,w=A,D=p;if(n!==_nbind.ptrMarker){var x=h.__nbindConstructor.apply(h,arguments);E=4608,D=HEAPU32[x/4],w=HEAPU32[x/4+1]}var C={configurable:!0,enumerable:!1,value:null,writable:!1},T={__nbindFlags:E,__nbindPtr:w};D&&(T.__nbindShared=D,_nbind.mark(h));for(var L=0,U=Object.keys(T);L>=1;var r=_nbind.valueList[t];return _nbind.valueList[t]=firstFreeValue,firstFreeValue=t,r}else{if(e)return _nbind.popShared(t,e);throw new Error("Invalid value slot "+t)}}_nbind.popValue=popValue;var valueBase=18446744073709552e3;function push64(t){return typeof t=="number"?t:pushValue(t)*4096+valueBase}function pop64(t){return t=3?u=Buffer.from(n):u=new Buffer(n),u.copy(o)}else getBuffer(o).set(n)}}_nbind.commitBuffer=commitBuffer;var dirtyList=[],gcTimer=0;function sweep(){for(var t=0,e=dirtyList;t>2]=DYNAMIC_BASE,staticSealed=!0;function invoke_viiiii(t,e,r,o,a,n){try{Module.dynCall_viiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_vif(t,e,r){try{Module.dynCall_vif(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_vid(t,e,r){try{Module.dynCall_vid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_fiff(t,e,r,o){try{return Module.dynCall_fiff(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_vi(t,e){try{Module.dynCall_vi(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_vii(t,e,r){try{Module.dynCall_vii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_ii(t,e){try{return Module.dynCall_ii(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_viddi(t,e,r,o,a){try{Module.dynCall_viddi(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_vidd(t,e,r,o){try{Module.dynCall_vidd(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_iiii(t,e,r,o){try{return Module.dynCall_iiii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_diii(t,e,r,o){try{return Module.dynCall_diii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_di(t,e){try{return Module.dynCall_di(t,e)}catch(r){if(typeof r!="number"&&r!=="longjmp")throw r;Module.setThrew(1,0)}}function invoke_iid(t,e,r){try{return Module.dynCall_iid(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_iii(t,e,r){try{return Module.dynCall_iii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiddi(t,e,r,o,a,n){try{Module.dynCall_viiddi(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiiiii(t,e,r,o,a,n,u){try{Module.dynCall_viiiiii(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_dii(t,e,r){try{return Module.dynCall_dii(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_i(t){try{return Module.dynCall_i(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_iiiiii(t,e,r,o,a,n){try{return Module.dynCall_iiiiii(t,e,r,o,a,n)}catch(u){if(typeof u!="number"&&u!=="longjmp")throw u;Module.setThrew(1,0)}}function invoke_viiid(t,e,r,o,a){try{Module.dynCall_viiid(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}function invoke_viififi(t,e,r,o,a,n,u){try{Module.dynCall_viififi(t,e,r,o,a,n,u)}catch(A){if(typeof A!="number"&&A!=="longjmp")throw A;Module.setThrew(1,0)}}function invoke_viii(t,e,r,o){try{Module.dynCall_viii(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_v(t){try{Module.dynCall_v(t)}catch(e){if(typeof e!="number"&&e!=="longjmp")throw e;Module.setThrew(1,0)}}function invoke_viid(t,e,r,o){try{Module.dynCall_viid(t,e,r,o)}catch(a){if(typeof a!="number"&&a!=="longjmp")throw a;Module.setThrew(1,0)}}function invoke_idd(t,e,r){try{return Module.dynCall_idd(t,e,r)}catch(o){if(typeof o!="number"&&o!=="longjmp")throw o;Module.setThrew(1,0)}}function invoke_viiii(t,e,r,o,a){try{Module.dynCall_viiii(t,e,r,o,a)}catch(n){if(typeof n!="number"&&n!=="longjmp")throw n;Module.setThrew(1,0)}}Module.asmGlobalArg={Math,Int8Array,Int16Array,Int32Array,Uint8Array,Uint16Array,Uint32Array,Float32Array,Float64Array,NaN:NaN,Infinity:1/0},Module.asmLibraryArg={abort,assert,enlargeMemory,getTotalMemory,abortOnCannotGrowMemory,invoke_viiiii,invoke_vif,invoke_vid,invoke_fiff,invoke_vi,invoke_vii,invoke_ii,invoke_viddi,invoke_vidd,invoke_iiii,invoke_diii,invoke_di,invoke_iid,invoke_iii,invoke_viiddi,invoke_viiiiii,invoke_dii,invoke_i,invoke_iiiiii,invoke_viiid,invoke_viififi,invoke_viii,invoke_v,invoke_viid,invoke_idd,invoke_viiii,_emscripten_asm_const_iiiii,_emscripten_asm_const_iiidddddd,_emscripten_asm_const_iiiid,__nbind_reference_external,_emscripten_asm_const_iiiiiiii,_removeAccessorPrefix,_typeModule,__nbind_register_pool,__decorate,_llvm_stackrestore,___cxa_atexit,__extends,__nbind_get_value_object,__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,_emscripten_set_main_loop_timing,__nbind_register_primitive,__nbind_register_type,_emscripten_memcpy_big,__nbind_register_function,___setErrNo,__nbind_register_class,__nbind_finish,_abort,_nbind_value,_llvm_stacksave,___syscall54,_defineHidden,_emscripten_set_main_loop,_emscripten_get_now,__nbind_register_callback_signature,_emscripten_asm_const_iiiiii,__nbind_free_external,_emscripten_asm_const_iiii,_emscripten_asm_const_iiididi,___syscall6,_atexit,___syscall140,___syscall146,DYNAMICTOP_PTR,tempDoublePtr,ABORT,STACKTOP,STACK_MAX,cttz_i8,___dso_handle};var asm=function(t,e,r){var o=new t.Int8Array(r),a=new t.Int16Array(r),n=new t.Int32Array(r),u=new t.Uint8Array(r),A=new t.Uint16Array(r),p=new t.Uint32Array(r),h=new t.Float32Array(r),E=new t.Float64Array(r),w=e.DYNAMICTOP_PTR|0,D=e.tempDoublePtr|0,x=e.ABORT|0,C=e.STACKTOP|0,T=e.STACK_MAX|0,L=e.cttz_i8|0,U=e.___dso_handle|0,J=0,te=0,le=0,ce=0,ue=t.NaN,Ie=t.Infinity,he=0,De=0,Ee=0,g=0,me=0,Ce=0,fe=t.Math.floor,ie=t.Math.abs,Z=t.Math.sqrt,Pe=t.Math.pow,Re=t.Math.cos,ht=t.Math.sin,q=t.Math.tan,nt=t.Math.acos,Ne=t.Math.asin,Te=t.Math.atan,ke=t.Math.atan2,Ve=t.Math.exp,be=t.Math.log,tt=t.Math.ceil,He=t.Math.imul,b=t.Math.min,I=t.Math.max,S=t.Math.clz32,y=t.Math.fround,R=e.abort,z=e.assert,X=e.enlargeMemory,$=e.getTotalMemory,se=e.abortOnCannotGrowMemory,xe=e.invoke_viiiii,Fe=e.invoke_vif,lt=e.invoke_vid,Et=e.invoke_fiff,qt=e.invoke_vi,nr=e.invoke_vii,St=e.invoke_ii,cn=e.invoke_viddi,Pr=e.invoke_vidd,yr=e.invoke_iiii,Rr=e.invoke_diii,Xr=e.invoke_di,$n=e.invoke_iid,Xs=e.invoke_iii,Hi=e.invoke_viiddi,Qs=e.invoke_viiiiii,Zs=e.invoke_dii,xi=e.invoke_i,Fs=e.invoke_iiiiii,$s=e.invoke_viiid,SA=e.invoke_viififi,gu=e.invoke_viii,op=e.invoke_v,ap=e.invoke_viid,Rs=e.invoke_idd,Ln=e.invoke_viiii,hs=e._emscripten_asm_const_iiiii,Ts=e._emscripten_asm_const_iiidddddd,pc=e._emscripten_asm_const_iiiid,hc=e.__nbind_reference_external,gc=e._emscripten_asm_const_iiiiiiii,bA=e._removeAccessorPrefix,xA=e._typeModule,Ro=e.__nbind_register_pool,To=e.__decorate,kA=e._llvm_stackrestore,pr=e.___cxa_atexit,Me=e.__extends,ia=e.__nbind_get_value_object,dc=e.__ZN8facebook4yoga14YGNodeToStringEPNSt3__212basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEEP6YGNode14YGPrintOptionsj,Er=e._emscripten_set_main_loop_timing,du=e.__nbind_register_primitive,QA=e.__nbind_register_type,FA=e._emscripten_memcpy_big,mc=e.__nbind_register_function,yc=e.___setErrNo,Il=e.__nbind_register_class,we=e.__nbind_finish,Tt=e._abort,wl=e._nbind_value,Bi=e._llvm_stacksave,Ns=e.___syscall54,Ft=e._defineHidden,Bn=e._emscripten_set_main_loop,No=e._emscripten_get_now,ki=e.__nbind_register_callback_signature,vi=e._emscripten_asm_const_iiiiii,sa=e.__nbind_free_external,un=e._emscripten_asm_const_iiii,qn=e._emscripten_asm_const_iiididi,Ec=e.___syscall6,lp=e._atexit,oa=e.___syscall140,aa=e.___syscall146,la=y(0);let Ze=y(0);function ca(s){s=s|0;var l=0;return l=C,C=C+s|0,C=C+15&-16,l|0}function mu(){return C|0}function Bl(s){s=s|0,C=s}function dn(s,l){s=s|0,l=l|0,C=s,T=l}function Lo(s,l){s=s|0,l=l|0,J||(J=s,te=l)}function RA(s){s=s|0,Ce=s}function TA(){return Ce|0}function Oo(){var s=0,l=0;xr(8104,8,400)|0,xr(8504,408,540)|0,s=9044,l=s+44|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));o[9088]=0,o[9089]=1,n[2273]=0,n[2274]=948,n[2275]=948,pr(17,8104,U|0)|0}function qa(s){s=s|0,gt(s+948|0)}function Ot(s){return s=y(s),((AD(s)|0)&2147483647)>>>0>2139095040|0}function vn(s,l,c){s=s|0,l=l|0,c=c|0;e:do if(n[s+(l<<3)+4>>2]|0)s=s+(l<<3)|0;else{if((l|2|0)==3&&n[s+60>>2]|0){s=s+56|0;break}switch(l|0){case 0:case 2:case 4:case 5:{if(n[s+52>>2]|0){s=s+48|0;break e}break}default:}if(n[s+68>>2]|0){s=s+64|0;break}else{s=(l|1|0)==5?948:c;break}}while(!1);return s|0}function Mo(s){s=s|0;var l=0;return l=_D(1e3)|0,ua(s,(l|0)!=0,2456),n[2276]=(n[2276]|0)+1,xr(l|0,8104,1e3)|0,o[s+2>>0]|0&&(n[l+4>>2]=2,n[l+12>>2]=4),n[l+976>>2]=s,l|0}function ua(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,d0(s,5,3197,f)),C=d}function qi(){return Mo(956)|0}function vl(s){s=s|0;var l=0;return l=Yt(1e3)|0,Cc(l,s),ua(n[s+976>>2]|0,1,2456),n[2276]=(n[2276]|0)+1,n[l+944>>2]=0,l|0}function Cc(s,l){s=s|0,l=l|0;var c=0;xr(s|0,l|0,948)|0,Qd(s+948|0,l+948|0),c=s+960|0,s=l+960|0,l=c+40|0;do n[c>>2]=n[s>>2],c=c+4|0,s=s+4|0;while((c|0)<(l|0))}function Dl(s){s=s|0;var l=0,c=0,f=0,d=0;if(l=s+944|0,c=n[l>>2]|0,c|0&&(Aa(c+948|0,s)|0,n[l>>2]=0),c=Di(s)|0,c|0){l=0;do n[(rs(s,l)|0)+944>>2]=0,l=l+1|0;while((l|0)!=(c|0))}c=s+948|0,f=n[c>>2]|0,d=s+952|0,l=n[d>>2]|0,(l|0)!=(f|0)&&(n[d>>2]=l+(~((l+-4-f|0)>>>2)<<2)),ja(c),HD(s),n[2276]=(n[2276]|0)+-1}function Aa(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0;f=n[s>>2]|0,k=s+4|0,c=n[k>>2]|0,m=c;e:do if((f|0)==(c|0))d=f,B=4;else for(s=f;;){if((n[s>>2]|0)==(l|0)){d=s,B=4;break e}if(s=s+4|0,(s|0)==(c|0)){s=0;break}}while(!1);return(B|0)==4&&((d|0)!=(c|0)?(f=d+4|0,s=m-f|0,l=s>>2,l&&(rw(d|0,f|0,s|0)|0,c=n[k>>2]|0),s=d+(l<<2)|0,(c|0)==(s|0)||(n[k>>2]=c+(~((c+-4-s|0)>>>2)<<2)),s=1):s=0),s|0}function Di(s){return s=s|0,(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2|0}function rs(s,l){s=s|0,l=l|0;var c=0;return c=n[s+948>>2]|0,(n[s+952>>2]|0)-c>>2>>>0>l>>>0?s=n[c+(l<<2)>>2]|0:s=0,s|0}function ja(s){s=s|0;var l=0,c=0,f=0,d=0;f=C,C=C+32|0,l=f,d=n[s>>2]|0,c=(n[s+4>>2]|0)-d|0,((n[s+8>>2]|0)-d|0)>>>0>c>>>0&&(d=c>>2,Nd(l,d,d,s+8|0),fD(s,l),Ld(l)),C=f}function yu(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;M=Di(s)|0;do if(M|0){if((n[(rs(s,0)|0)+944>>2]|0)==(s|0)){if(!(Aa(s+948|0,l)|0))break;xr(l+400|0,8504,540)|0,n[l+944>>2]=0,Le(s);break}B=n[(n[s+976>>2]|0)+12>>2]|0,k=s+948|0,F=(B|0)==0,c=0,m=0;do f=n[(n[k>>2]|0)+(m<<2)>>2]|0,(f|0)==(l|0)?Le(s):(d=vl(f)|0,n[(n[k>>2]|0)+(c<<2)>>2]=d,n[d+944>>2]=s,F||hT[B&15](f,d,s,c),c=c+1|0),m=m+1|0;while((m|0)!=(M|0));if(c>>>0>>0){F=s+948|0,k=s+952|0,B=c,c=n[k>>2]|0;do m=(n[F>>2]|0)+(B<<2)|0,f=m+4|0,d=c-f|0,l=d>>2,l&&(rw(m|0,f|0,d|0)|0,c=n[k>>2]|0),d=c,f=m+(l<<2)|0,(d|0)!=(f|0)&&(c=d+(~((d+-4-f|0)>>>2)<<2)|0,n[k>>2]=c),B=B+1|0;while((B|0)!=(M|0))}}while(!1)}function Pl(s){s=s|0;var l=0,c=0,f=0,d=0;pi(s,(Di(s)|0)==0,2491),pi(s,(n[s+944>>2]|0)==0,2545),l=s+948|0,c=n[l>>2]|0,f=s+952|0,d=n[f>>2]|0,(d|0)!=(c|0)&&(n[f>>2]=d+(~((d+-4-c|0)>>>2)<<2)),ja(l),l=s+976|0,c=n[l>>2]|0,xr(s|0,8104,1e3)|0,o[c+2>>0]|0&&(n[s+4>>2]=2,n[s+12>>2]=4),n[l>>2]=c}function pi(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;d=C,C=C+16|0,f=d,l||(n[f>>2]=c,so(s,5,3197,f)),C=d}function Dn(){return n[2276]|0}function Sl(){var s=0;return s=_D(20)|0,Je((s|0)!=0,2592),n[2277]=(n[2277]|0)+1,n[s>>2]=n[239],n[s+4>>2]=n[240],n[s+8>>2]=n[241],n[s+12>>2]=n[242],n[s+16>>2]=n[243],s|0}function Je(s,l){s=s|0,l=l|0;var c=0,f=0;f=C,C=C+16|0,c=f,s||(n[c>>2]=l,so(0,5,3197,c)),C=f}function st(s){s=s|0,HD(s),n[2277]=(n[2277]|0)+-1}function vt(s,l){s=s|0,l=l|0;var c=0;l?(pi(s,(Di(s)|0)==0,2629),c=1):(c=0,l=0),n[s+964>>2]=l,n[s+988>>2]=c}function ar(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+8|0,d=f+4|0,B=f,n[d>>2]=l,pi(s,(n[l+944>>2]|0)==0,2709),pi(s,(n[s+964>>2]|0)==0,2763),ee(s),l=s+948|0,n[B>>2]=(n[l>>2]|0)+(c<<2),n[m>>2]=n[B>>2],ye(l,m,d)|0,n[(n[d>>2]|0)+944>>2]=s,Le(s),C=f}function ee(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;if(c=Di(s)|0,c|0&&(n[(rs(s,0)|0)+944>>2]|0)!=(s|0)){f=n[(n[s+976>>2]|0)+12>>2]|0,d=s+948|0,m=(f|0)==0,l=0;do B=n[(n[d>>2]|0)+(l<<2)>>2]|0,k=vl(B)|0,n[(n[d>>2]|0)+(l<<2)>>2]=k,n[k+944>>2]=s,m||hT[f&15](B,k,s,l),l=l+1|0;while((l|0)!=(c|0))}}function ye(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0;rt=C,C=C+64|0,j=rt+52|0,k=rt+48|0,oe=rt+28|0,We=rt+24|0,Oe=rt+20|0,Qe=rt,f=n[s>>2]|0,m=f,l=f+((n[l>>2]|0)-m>>2<<2)|0,f=s+4|0,d=n[f>>2]|0,B=s+8|0;do if(d>>>0<(n[B>>2]|0)>>>0){if((l|0)==(d|0)){n[l>>2]=n[c>>2],n[f>>2]=(n[f>>2]|0)+4;break}pD(s,l,d,l+4|0),l>>>0<=c>>>0&&(c=(n[f>>2]|0)>>>0>c>>>0?c+4|0:c),n[l>>2]=n[c>>2]}else{f=(d-m>>2)+1|0,d=N(s)|0,d>>>0>>0&&Zr(s),O=n[s>>2]|0,M=(n[B>>2]|0)-O|0,m=M>>1,Nd(Qe,M>>2>>>0>>1>>>0?m>>>0>>0?f:m:d,l-O>>2,s+8|0),O=Qe+8|0,f=n[O>>2]|0,m=Qe+12|0,M=n[m>>2]|0,B=M,F=f;do if((f|0)==(M|0)){if(M=Qe+4|0,f=n[M>>2]|0,Xe=n[Qe>>2]|0,d=Xe,f>>>0<=Xe>>>0){f=B-d>>1,f=f|0?f:1,Nd(oe,f,f>>>2,n[Qe+16>>2]|0),n[We>>2]=n[M>>2],n[Oe>>2]=n[O>>2],n[k>>2]=n[We>>2],n[j>>2]=n[Oe>>2],QI(oe,k,j),f=n[Qe>>2]|0,n[Qe>>2]=n[oe>>2],n[oe>>2]=f,f=oe+4|0,Xe=n[M>>2]|0,n[M>>2]=n[f>>2],n[f>>2]=Xe,f=oe+8|0,Xe=n[O>>2]|0,n[O>>2]=n[f>>2],n[f>>2]=Xe,f=oe+12|0,Xe=n[m>>2]|0,n[m>>2]=n[f>>2],n[f>>2]=Xe,Ld(oe),f=n[O>>2]|0;break}m=f,B=((m-d>>2)+1|0)/-2|0,k=f+(B<<2)|0,d=F-m|0,m=d>>2,m&&(rw(k|0,f|0,d|0)|0,f=n[M>>2]|0),Xe=k+(m<<2)|0,n[O>>2]=Xe,n[M>>2]=f+(B<<2),f=Xe}while(!1);n[f>>2]=n[c>>2],n[O>>2]=(n[O>>2]|0)+4,l=hD(s,Qe,l)|0,Ld(Qe)}while(!1);return C=rt,l|0}function Le(s){s=s|0;var l=0;do{if(l=s+984|0,o[l>>0]|0)break;o[l>>0]=1,h[s+504>>2]=y(ue),s=n[s+944>>2]|0}while(s|0)}function gt(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),yt(c))}function mt(s){return s=s|0,n[s+944>>2]|0}function Dt(s){s=s|0,pi(s,(n[s+964>>2]|0)!=0,2832),Le(s)}function er(s){return s=s|0,(o[s+984>>0]|0)!=0|0}function sn(s,l){s=s|0,l=l|0,w4e(s,l,400)|0&&(xr(s|0,l|0,400)|0,Le(s))}function ei(s){s=s|0;var l=Ze;return l=y(h[s+44>>2]),s=Ot(l)|0,y(s?y(0):l)}function Qi(s){s=s|0;var l=Ze;return l=y(h[s+48>>2]),Ot(l)|0&&(l=o[(n[s+976>>2]|0)+2>>0]|0?y(1):y(0)),y(l)}function Pn(s,l){s=s|0,l=l|0,n[s+980>>2]=l}function fa(s){return s=s|0,n[s+980>>2]|0}function wd(s,l){s=s|0,l=l|0;var c=0;c=s+4|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function BI(s){return s=s|0,n[s+4>>2]|0}function eo(s,l){s=s|0,l=l|0;var c=0;c=s+8|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Bd(s){return s=s|0,n[s+8>>2]|0}function cp(s,l){s=s|0,l=l|0;var c=0;c=s+12|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function vI(s){return s=s|0,n[s+12>>2]|0}function to(s,l){s=s|0,l=l|0;var c=0;c=s+16|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function up(s){return s=s|0,n[s+16>>2]|0}function Ap(s,l){s=s|0,l=l|0;var c=0;c=s+20|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Ic(s){return s=s|0,n[s+20>>2]|0}function fp(s,l){s=s|0,l=l|0;var c=0;c=s+24|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function s0(s){return s=s|0,n[s+24>>2]|0}function o0(s,l){s=s|0,l=l|0;var c=0;c=s+28|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function a0(s){return s=s|0,n[s+28>>2]|0}function vd(s,l){s=s|0,l=l|0;var c=0;c=s+32|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Eu(s){return s=s|0,n[s+32>>2]|0}function ro(s,l){s=s|0,l=l|0;var c=0;c=s+36|0,(n[c>>2]|0)!=(l|0)&&(n[c>>2]=l,Le(s))}function Ga(s){return s=s|0,n[s+36>>2]|0}function pp(s,l){s=s|0,l=y(l);var c=0;c=s+40|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function l0(s,l){s=s|0,l=y(l);var c=0;c=s+44|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Wa(s,l){s=s|0,l=y(l);var c=0;c=s+48|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function Ya(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+52|0,d=s+56|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Dd(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+52|0,c=s+56|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,Le(s))}function NA(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+52|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Pd(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Sd(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+132+(l<<3)|0,l=s+132+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function LA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+132+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function OA(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function W(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+60+(l<<3)|0,l=s+60+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function bt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+60+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function MA(s,l){s=s|0,l=l|0;var c=0;c=s+60+(l<<3)+4|0,(n[c>>2]|0)!=3&&(h[s+60+(l<<3)>>2]=y(ue),n[c>>2]=3,Le(s))}function no(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function Cu(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=m?0:2,d=s+204+(l<<3)|0,l=s+204+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function dt(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=l+204+(c<<3)|0,l=n[f+4>>2]|0,c=s,n[c>>2]=n[f>>2],n[c+4>>2]=l}function wc(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0,m=0;m=Ot(c)|0,f=(m^1)&1,d=s+276+(l<<3)|0,l=s+276+(l<<3)+4|0,m|y(h[d>>2])==c&&(n[l>>2]|0)==(f|0)||(h[d>>2]=c,n[l>>2]=f,Le(s))}function bd(s,l){return s=s|0,l=l|0,y(h[s+276+(l<<3)>>2])}function c0(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+348|0,d=s+352|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function DI(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+348|0,c=s+352|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,Le(s))}function hp(s){s=s|0;var l=0;l=s+352|0,(n[l>>2]|0)!=3&&(h[s+348>>2]=y(ue),n[l>>2]=3,Le(s))}function cr(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+348|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Li(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+356|0,d=s+360|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function Iu(s,l){s=s|0,l=y(l);var c=0,f=0;f=s+356|0,c=s+360|0,y(h[f>>2])==l&&(n[c>>2]|0)==2||(h[f>>2]=l,f=Ot(l)|0,n[c>>2]=f?3:2,Le(s))}function pa(s){s=s|0;var l=0;l=s+360|0,(n[l>>2]|0)!=3&&(h[s+356>>2]=y(ue),n[l>>2]=3,Le(s))}function u0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+356|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Bc(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function wu(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+364|0,d=s+368|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function wt(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+364|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function oi(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function UA(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+372|0,d=s+376|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function ha(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+372|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function Uo(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function ga(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+380|0,d=s+384|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function A0(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+380|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function gp(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=(m^1)&1,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function f0(s,l){s=s|0,l=y(l);var c=0,f=0,d=0,m=0;m=Ot(l)|0,c=m?0:2,f=s+388|0,d=s+392|0,m|y(h[f>>2])==l&&(n[d>>2]|0)==(c|0)||(h[f>>2]=l,n[d>>2]=c,Le(s))}function xd(s,l){s=s|0,l=l|0;var c=0,f=0;f=l+388|0,c=n[f+4>>2]|0,l=s,n[l>>2]=n[f>>2],n[l+4>>2]=c}function _A(s,l){s=s|0,l=y(l);var c=0;c=s+396|0,y(h[c>>2])!=l&&(h[c>>2]=l,Le(s))}function p0(s){return s=s|0,y(h[s+396>>2])}function vc(s){return s=s|0,y(h[s+400>>2])}function Dc(s){return s=s|0,y(h[s+404>>2])}function Bu(s){return s=s|0,y(h[s+408>>2])}function gs(s){return s=s|0,y(h[s+412>>2])}function Pc(s){return s=s|0,y(h[s+416>>2])}function On(s){return s=s|0,y(h[s+420>>2])}function ji(s,l){switch(s=s|0,l=l|0,pi(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+424+(l<<2)>>2])}function Ci(s,l){switch(s=s|0,l=l|0,pi(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+448+(l<<2)>>2])}function HA(s,l){switch(s=s|0,l=l|0,pi(s,(l|0)<6,2918),l|0){case 0:{l=(n[s+496>>2]|0)==2?5:4;break}case 2:{l=(n[s+496>>2]|0)==2?4:5;break}default:}return y(h[s+472+(l<<2)>>2])}function vu(s,l){s=s|0,l=l|0;var c=0,f=Ze;return c=n[s+4>>2]|0,(c|0)==(n[l+4>>2]|0)?c?(f=y(h[s>>2]),s=y(ie(y(f-y(h[l>>2]))))>2]=0,n[f+4>>2]=0,n[f+8>>2]=0,dc(f|0,s|0,l|0,0),so(s,3,(o[f+11>>0]|0)<0?n[f>>2]|0:f,c),W4e(f),C=c}function Gi(s,l,c,f){s=y(s),l=y(l),c=c|0,f=f|0;var d=Ze;s=y(s*l),d=y(lT(s,y(1)));do if(An(d,y(0))|0)s=y(s-d);else{if(s=y(s-d),An(d,y(1))|0){s=y(s+y(1));break}if(c){s=y(s+y(1));break}f||(d>y(.5)?d=y(1):(f=An(d,y(.5))|0,d=y(f?1:0)),s=y(s+d))}while(!1);return y(s/l)}function Ka(s,l,c,f,d,m,B,k,F,M,O,j,oe){s=s|0,l=y(l),c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,k=y(k),F=y(F),M=y(M),O=y(O),j=y(j),oe=oe|0;var We=0,Oe=Ze,Qe=Ze,rt=Ze,Xe=Ze,ct=Ze,_e=Ze;return F>2]),Oe!=y(0))?(rt=y(Gi(l,Oe,0,0)),Xe=y(Gi(f,Oe,0,0)),Qe=y(Gi(m,Oe,0,0)),Oe=y(Gi(k,Oe,0,0))):(Qe=m,rt=l,Oe=k,Xe=f),(d|0)==(s|0)?We=An(Qe,rt)|0:We=0,(B|0)==(c|0)?oe=An(Oe,Xe)|0:oe=0,!We&&(ct=y(l-O),!(io(s,ct,F)|0))&&!(Du(s,ct,d,F)|0)?We=Pu(s,ct,d,m,F)|0:We=1,!oe&&(_e=y(f-j),!(io(c,_e,M)|0))&&!(Du(c,_e,B,M)|0)?oe=Pu(c,_e,B,k,M)|0:oe=1,oe=We&oe),oe|0}function io(s,l,c){return s=s|0,l=y(l),c=y(c),(s|0)==1?s=An(l,c)|0:s=0,s|0}function Du(s,l,c,f){return s=s|0,l=y(l),c=c|0,f=y(f),(s|0)==2&(c|0)==0?l>=f?s=1:s=An(l,f)|0:s=0,s|0}function Pu(s,l,c,f,d){return s=s|0,l=y(l),c=c|0,f=y(f),d=y(d),(s|0)==2&(c|0)==2&f>l?d<=l?s=1:s=An(l,d)|0:s=0,s|0}function Va(s,l,c,f,d,m,B,k,F,M,O){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),F=F|0,M=M|0,O=O|0;var j=0,oe=0,We=0,Oe=0,Qe=Ze,rt=Ze,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=Ze,lo=Ze,co=Ze,uo=0,Ia=0;lr=C,C=C+160|0,Zt=lr+152|0,ur=lr+120|0,_r=lr+104|0,_e=lr+72|0,Oe=lr+56|0,Lt=lr+8|0,ct=lr,Ge=(n[2279]|0)+1|0,n[2279]=Ge,kr=s+984|0,o[kr>>0]|0&&(n[s+512>>2]|0)!=(n[2278]|0)?Xe=4:(n[s+516>>2]|0)==(f|0)?Or=0:Xe=4,(Xe|0)==4&&(n[s+520>>2]=0,n[s+924>>2]=-1,n[s+928>>2]=-1,h[s+932>>2]=y(-1),h[s+936>>2]=y(-1),Or=1);e:do if(n[s+964>>2]|0)if(Qe=y(fn(s,2,B)),rt=y(fn(s,0,B)),j=s+916|0,co=y(h[j>>2]),lo=y(h[s+920>>2]),Nn=y(h[s+932>>2]),Ka(d,l,m,c,n[s+924>>2]|0,co,n[s+928>>2]|0,lo,Nn,y(h[s+936>>2]),Qe,rt,O)|0)Xe=22;else if(We=n[s+520>>2]|0,!We)Xe=21;else for(oe=0;;){if(j=s+524+(oe*24|0)|0,Nn=y(h[j>>2]),lo=y(h[s+524+(oe*24|0)+4>>2]),co=y(h[s+524+(oe*24|0)+16>>2]),Ka(d,l,m,c,n[s+524+(oe*24|0)+8>>2]|0,Nn,n[s+524+(oe*24|0)+12>>2]|0,lo,co,y(h[s+524+(oe*24|0)+20>>2]),Qe,rt,O)|0){Xe=22;break e}if(oe=oe+1|0,oe>>>0>=We>>>0){Xe=21;break}}else{if(F){if(j=s+916|0,!(An(y(h[j>>2]),l)|0)){Xe=21;break}if(!(An(y(h[s+920>>2]),c)|0)){Xe=21;break}if((n[s+924>>2]|0)!=(d|0)){Xe=21;break}j=(n[s+928>>2]|0)==(m|0)?j:0,Xe=22;break}if(We=n[s+520>>2]|0,!We)Xe=21;else for(oe=0;;){if(j=s+524+(oe*24|0)|0,An(y(h[j>>2]),l)|0&&An(y(h[s+524+(oe*24|0)+4>>2]),c)|0&&(n[s+524+(oe*24|0)+8>>2]|0)==(d|0)&&(n[s+524+(oe*24|0)+12>>2]|0)==(m|0)){Xe=22;break e}if(oe=oe+1|0,oe>>>0>=We>>>0){Xe=21;break}}}while(!1);do if((Xe|0)==21)o[11697]|0?(j=0,Xe=28):(j=0,Xe=31);else if((Xe|0)==22){if(oe=(o[11697]|0)!=0,!((j|0)!=0&(Or^1)))if(oe){Xe=28;break}else{Xe=31;break}Oe=j+16|0,n[s+908>>2]=n[Oe>>2],We=j+20|0,n[s+912>>2]=n[We>>2],(o[11698]|0)==0|oe^1||(n[ct>>2]=Sc(Ge)|0,n[ct+4>>2]=Ge,so(s,4,2972,ct),oe=n[s+972>>2]|0,oe|0&&ef[oe&127](s),d=_o(d,F)|0,m=_o(m,F)|0,Ia=+y(h[Oe>>2]),uo=+y(h[We>>2]),n[Lt>>2]=d,n[Lt+4>>2]=m,E[Lt+8>>3]=+l,E[Lt+16>>3]=+c,E[Lt+24>>3]=Ia,E[Lt+32>>3]=uo,n[Lt+40>>2]=M,so(s,4,2989,Lt))}while(!1);return(Xe|0)==28&&(oe=Sc(Ge)|0,n[Oe>>2]=oe,n[Oe+4>>2]=Ge,n[Oe+8>>2]=Or?3047:11699,so(s,4,3038,Oe),oe=n[s+972>>2]|0,oe|0&&ef[oe&127](s),Lt=_o(d,F)|0,Xe=_o(m,F)|0,n[_e>>2]=Lt,n[_e+4>>2]=Xe,E[_e+8>>3]=+l,E[_e+16>>3]=+c,n[_e+24>>2]=M,so(s,4,3049,_e),Xe=31),(Xe|0)==31&&(ds(s,l,c,f,d,m,B,k,F,O),o[11697]|0&&(oe=n[2279]|0,Lt=Sc(oe)|0,n[_r>>2]=Lt,n[_r+4>>2]=oe,n[_r+8>>2]=Or?3047:11699,so(s,4,3083,_r),oe=n[s+972>>2]|0,oe|0&&ef[oe&127](s),Lt=_o(d,F)|0,_r=_o(m,F)|0,uo=+y(h[s+908>>2]),Ia=+y(h[s+912>>2]),n[ur>>2]=Lt,n[ur+4>>2]=_r,E[ur+8>>3]=uo,E[ur+16>>3]=Ia,n[ur+24>>2]=M,so(s,4,3092,ur)),n[s+516>>2]=f,j||(oe=s+520|0,j=n[oe>>2]|0,(j|0)==16&&(o[11697]|0&&so(s,4,3124,Zt),n[oe>>2]=0,j=0),F?j=s+916|0:(n[oe>>2]=j+1,j=s+524+(j*24|0)|0),h[j>>2]=l,h[j+4>>2]=c,n[j+8>>2]=d,n[j+12>>2]=m,n[j+16>>2]=n[s+908>>2],n[j+20>>2]=n[s+912>>2],j=0)),F&&(n[s+416>>2]=n[s+908>>2],n[s+420>>2]=n[s+912>>2],o[s+985>>0]=1,o[kr>>0]=0),n[2279]=(n[2279]|0)+-1,n[s+512>>2]=n[2278],C=lr,Or|(j|0)==0|0}function fn(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(V(s,l,c)),y(f+y(re(s,l,c)))}function so(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=C,C=C+16|0,d=m,n[d>>2]=f,s?f=n[s+976>>2]|0:f=0,yp(f,s,l,c,d),C=m}function Sc(s){return s=s|0,(s>>>0>60?3201:3201+(60-s)|0)|0}function _o(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+32|0,c=d+12|0,f=d,n[c>>2]=n[254],n[c+4>>2]=n[255],n[c+8>>2]=n[256],n[f>>2]=n[257],n[f+4>>2]=n[258],n[f+8>>2]=n[259],(s|0)>2?s=11699:s=n[(l?f:c)+(s<<2)>>2]|0,C=d,s|0}function ds(s,l,c,f,d,m,B,k,F,M){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=m|0,B=y(B),k=y(k),F=F|0,M=M|0;var O=0,j=0,oe=0,We=0,Oe=Ze,Qe=Ze,rt=Ze,Xe=Ze,ct=Ze,_e=Ze,Ge=Ze,Lt=0,_r=0,ur=0,Zt=Ze,kr=Ze,Or=0,lr=Ze,Nn=0,lo=0,co=0,uo=0,Ia=0,Np=0,Lp=0,kl=0,Op=0,Lu=0,Ou=0,Mp=0,Up=0,_p=0,$r=0,Ql=0,Hp=0,Nc=0,qp=Ze,jp=Ze,Mu=Ze,Uu=Ze,Lc=Ze,Ms=0,rl=0,Go=0,Fl=0,rf=0,nf=Ze,_u=Ze,sf=Ze,of=Ze,Us=Ze,Cs=Ze,Rl=0,Un=Ze,af=Ze,Ao=Ze,Oc=Ze,fo=Ze,Mc=Ze,lf=0,cf=0,Uc=Ze,_s=Ze,Tl=0,uf=0,Af=0,ff=0,Fr=Ze,ri=0,Is=0,po=0,Hs=0,Nr=0,Ar=0,Nl=0,Vt=Ze,pf=0,hi=0;Nl=C,C=C+16|0,Ms=Nl+12|0,rl=Nl+8|0,Go=Nl+4|0,Fl=Nl,pi(s,(d|0)==0|(Ot(l)|0)^1,3326),pi(s,(m|0)==0|(Ot(c)|0)^1,3406),Is=At(s,f)|0,n[s+496>>2]=Is,Nr=hr(2,Is)|0,Ar=hr(0,Is)|0,h[s+440>>2]=y(V(s,Nr,B)),h[s+444>>2]=y(re(s,Nr,B)),h[s+428>>2]=y(V(s,Ar,B)),h[s+436>>2]=y(re(s,Ar,B)),h[s+464>>2]=y(Ir(s,Nr)),h[s+468>>2]=y(Rn(s,Nr)),h[s+452>>2]=y(Ir(s,Ar)),h[s+460>>2]=y(Rn(s,Ar)),h[s+488>>2]=y(ai(s,Nr,B)),h[s+492>>2]=y(ns(s,Nr,B)),h[s+476>>2]=y(ai(s,Ar,B)),h[s+484>>2]=y(ns(s,Ar,B));do if(n[s+964>>2]|0)GA(s,l,c,d,m,B,k);else{if(po=s+948|0,Hs=(n[s+952>>2]|0)-(n[po>>2]|0)>>2,!Hs){lD(s,l,c,d,m,B,k);break}if(!F&&PI(s,l,c,d,m,B,k)|0)break;ee(s),Ql=s+508|0,o[Ql>>0]=0,Nr=hr(n[s+4>>2]|0,Is)|0,Ar=Fd(Nr,Is)|0,ri=ge(Nr)|0,Hp=n[s+8>>2]|0,uf=s+28|0,Nc=(n[uf>>2]|0)!=0,fo=ri?B:k,Uc=ri?k:B,qp=y(Cp(s,Nr,B)),jp=y(SI(s,Nr,B)),Oe=y(Cp(s,Ar,B)),Mc=y(da(s,Nr,B)),_s=y(da(s,Ar,B)),ur=ri?d:m,Tl=ri?m:d,Fr=ri?Mc:_s,ct=ri?_s:Mc,Oc=y(fn(s,2,B)),Xe=y(fn(s,0,B)),Qe=y(y(Kr(s+364|0,B))-Fr),rt=y(y(Kr(s+380|0,B))-Fr),_e=y(y(Kr(s+372|0,k))-ct),Ge=y(y(Kr(s+388|0,k))-ct),Mu=ri?Qe:_e,Uu=ri?rt:Ge,Oc=y(l-Oc),l=y(Oc-Fr),Ot(l)|0?Fr=l:Fr=y(Yn(y(M0(l,rt)),Qe)),af=y(c-Xe),l=y(af-ct),Ot(l)|0?Ao=l:Ao=y(Yn(y(M0(l,Ge)),_e)),Qe=ri?Fr:Ao,Un=ri?Ao:Fr;e:do if((ur|0)==1)for(f=0,j=0;;){if(O=rs(s,j)|0,!f)y(WA(O))>y(0)&&y(Ip(O))>y(0)?f=O:f=0;else if(bI(O)|0){We=0;break e}if(j=j+1|0,j>>>0>=Hs>>>0){We=f;break}}else We=0;while(!1);Lt=We+500|0,_r=We+504|0,f=0,O=0,l=y(0),oe=0;do{if(j=n[(n[po>>2]|0)+(oe<<2)>>2]|0,(n[j+36>>2]|0)==1)Rd(j),o[j+985>>0]=1,o[j+984>>0]=0;else{Su(j),F&&mp(j,At(j,Is)|0,Qe,Un,Fr);do if((n[j+24>>2]|0)!=1)if((j|0)==(We|0)){n[Lt>>2]=n[2278],h[_r>>2]=y(0);break}else{cD(s,j,Fr,d,Ao,Fr,Ao,m,Is,M);break}else O|0&&(n[O+960>>2]=j),n[j+960>>2]=0,O=j,f=f|0?f:j;while(!1);Cs=y(h[j+504>>2]),l=y(l+y(Cs+y(fn(j,Nr,Fr))))}oe=oe+1|0}while((oe|0)!=(Hs|0));for(co=l>Qe,Rl=Nc&((ur|0)==2&co)?1:ur,Nn=(Tl|0)==1,Ia=Nn&(F^1),Np=(Rl|0)==1,Lp=(Rl|0)==2,kl=976+(Nr<<2)|0,Op=(Tl|2|0)==2,_p=Nn&(Nc^1),Lu=1040+(Ar<<2)|0,Ou=1040+(Nr<<2)|0,Mp=976+(Ar<<2)|0,Up=(Tl|0)!=1,co=Nc&((ur|0)!=0&co),lo=s+976|0,Nn=Nn^1,l=Qe,Or=0,uo=0,Cs=y(0),Lc=y(0);;){e:do if(Or>>>0>>0)for(_r=n[po>>2]|0,oe=0,Ge=y(0),_e=y(0),rt=y(0),Qe=y(0),j=0,O=0,We=Or;;){if(Lt=n[_r+(We<<2)>>2]|0,(n[Lt+36>>2]|0)!=1&&(n[Lt+940>>2]=uo,(n[Lt+24>>2]|0)!=1)){if(Xe=y(fn(Lt,Nr,Fr)),$r=n[kl>>2]|0,c=y(Kr(Lt+380+($r<<3)|0,fo)),ct=y(h[Lt+504>>2]),c=y(M0(c,ct)),c=y(Yn(y(Kr(Lt+364+($r<<3)|0,fo)),c)),Nc&(oe|0)!=0&y(Xe+y(_e+c))>l){m=oe,Xe=Ge,ur=We;break e}Xe=y(Xe+c),c=y(_e+Xe),Xe=y(Ge+Xe),bI(Lt)|0&&(rt=y(rt+y(WA(Lt))),Qe=y(Qe-y(ct*y(Ip(Lt))))),O|0&&(n[O+960>>2]=Lt),n[Lt+960>>2]=0,oe=oe+1|0,O=Lt,j=j|0?j:Lt}else Xe=Ge,c=_e;if(We=We+1|0,We>>>0>>0)Ge=Xe,_e=c;else{m=oe,ur=We;break}}else m=0,Xe=y(0),rt=y(0),Qe=y(0),j=0,ur=Or;while(!1);$r=rt>y(0)&rty(0)&QeUu&((Ot(Uu)|0)^1))l=Uu,$r=51;else if(o[(n[lo>>2]|0)+3>>0]|0)$r=51;else{if(Zt!=y(0)&&y(WA(s))!=y(0)){$r=53;break}l=Xe,$r=53}while(!1);if(($r|0)==51&&($r=0,Ot(l)|0?$r=53:(kr=y(l-Xe),lr=l)),($r|0)==53&&($r=0,Xe>2]|0,We=kry(0),_e=y(kr/Zt),rt=y(0),Xe=y(0),l=y(0),O=j;do c=y(Kr(O+380+(oe<<3)|0,fo)),Qe=y(Kr(O+364+(oe<<3)|0,fo)),Qe=y(M0(c,y(Yn(Qe,y(h[O+504>>2]))))),We?(c=y(Qe*y(Ip(O))),c!=y(-0)&&(Vt=y(Qe-y(ct*c)),nf=y(Mn(O,Nr,Vt,lr,Fr)),Vt!=nf)&&(rt=y(rt-y(nf-Qe)),l=y(l+c))):Lt&&(_u=y(WA(O)),_u!=y(0))&&(Vt=y(Qe+y(_e*_u)),sf=y(Mn(O,Nr,Vt,lr,Fr)),Vt!=sf)&&(rt=y(rt-y(sf-Qe)),Xe=y(Xe-_u)),O=n[O+960>>2]|0;while(O|0);if(l=y(Ge+l),Qe=y(kr+rt),rf)l=y(0);else{ct=y(Zt+Xe),We=n[kl>>2]|0,Lt=Qey(0),ct=y(Qe/ct),l=y(0);do{Vt=y(Kr(j+380+(We<<3)|0,fo)),rt=y(Kr(j+364+(We<<3)|0,fo)),rt=y(M0(Vt,y(Yn(rt,y(h[j+504>>2]))))),Lt?(Vt=y(rt*y(Ip(j))),Qe=y(-Vt),Vt!=y(-0)?(Vt=y(_e*Qe),Qe=y(Mn(j,Nr,y(rt+(_r?Qe:Vt)),lr,Fr))):Qe=rt):oe&&(of=y(WA(j)),of!=y(0))?Qe=y(Mn(j,Nr,y(rt+y(ct*of)),lr,Fr)):Qe=rt,l=y(l-y(Qe-rt)),Xe=y(fn(j,Nr,Fr)),c=y(fn(j,Ar,Fr)),Qe=y(Qe+Xe),h[rl>>2]=Qe,n[Fl>>2]=1,rt=y(h[j+396>>2]);e:do if(Ot(rt)|0){O=Ot(Un)|0;do if(!O){if(co|(Ls(j,Ar,Un)|0|Nn)||(Wi(s,j)|0)!=4||(n[(Ja(j,Ar)|0)+4>>2]|0)==3||(n[(za(j,Ar)|0)+4>>2]|0)==3)break;h[Ms>>2]=Un,n[Go>>2]=1;break e}while(!1);if(Ls(j,Ar,Un)|0){O=n[j+992+(n[Mp>>2]<<2)>>2]|0,Vt=y(c+y(Kr(O,Un))),h[Ms>>2]=Vt,O=Up&(n[O+4>>2]|0)==2,n[Go>>2]=((Ot(Vt)|0|O)^1)&1;break}else{h[Ms>>2]=Un,n[Go>>2]=O?0:2;break}}else Vt=y(Qe-Xe),Zt=y(Vt/rt),Vt=y(rt*Vt),n[Go>>2]=1,h[Ms>>2]=y(c+(ri?Zt:Vt));while(!1);bc(j,Nr,lr,Fr,Fl,rl),bc(j,Ar,Un,Fr,Go,Ms);do if(!(Ls(j,Ar,Un)|0)&&(Wi(s,j)|0)==4){if((n[(Ja(j,Ar)|0)+4>>2]|0)==3){O=0;break}O=(n[(za(j,Ar)|0)+4>>2]|0)!=3}else O=0;while(!1);Vt=y(h[rl>>2]),Zt=y(h[Ms>>2]),pf=n[Fl>>2]|0,hi=n[Go>>2]|0,Va(j,ri?Vt:Zt,ri?Zt:Vt,Is,ri?pf:hi,ri?hi:pf,Fr,Ao,F&(O^1),3488,M)|0,o[Ql>>0]=o[Ql>>0]|o[j+508>>0],j=n[j+960>>2]|0}while(j|0)}}else l=y(0);if(l=y(kr+l),hi=l>0]=hi|u[Ql>>0],Lp&l>y(0)?(O=n[kl>>2]|0,n[s+364+(O<<3)+4>>2]|0&&(Us=y(Kr(s+364+(O<<3)|0,fo)),Us>=y(0))?Qe=y(Yn(y(0),y(Us-y(lr-l)))):Qe=y(0)):Qe=l,Lt=Or>>>0>>0,Lt){We=n[po>>2]|0,oe=Or,O=0;do j=n[We+(oe<<2)>>2]|0,n[j+24>>2]|0||(O=((n[(Ja(j,Nr)|0)+4>>2]|0)==3&1)+O|0,O=O+((n[(za(j,Nr)|0)+4>>2]|0)==3&1)|0),oe=oe+1|0;while((oe|0)!=(ur|0));O?(Xe=y(0),c=y(0)):$r=101}else $r=101;e:do if(($r|0)==101)switch($r=0,Hp|0){case 1:{O=0,Xe=y(Qe*y(.5)),c=y(0);break e}case 2:{O=0,Xe=Qe,c=y(0);break e}case 3:{if(m>>>0<=1){O=0,Xe=y(0),c=y(0);break e}c=y((m+-1|0)>>>0),O=0,Xe=y(0),c=y(y(Yn(Qe,y(0)))/c);break e}case 5:{c=y(Qe/y((m+1|0)>>>0)),O=0,Xe=c;break e}case 4:{c=y(Qe/y(m>>>0)),O=0,Xe=y(c*y(.5));break e}default:{O=0,Xe=y(0),c=y(0);break e}}while(!1);if(l=y(qp+Xe),Lt){rt=y(Qe/y(O|0)),oe=n[po>>2]|0,j=Or,Qe=y(0);do{O=n[oe+(j<<2)>>2]|0;e:do if((n[O+36>>2]|0)!=1){switch(n[O+24>>2]|0){case 1:{if(Ho(O,Nr)|0){if(!F)break e;Vt=y(YA(O,Nr,lr)),Vt=y(Vt+y(Ir(s,Nr))),Vt=y(Vt+y(V(O,Nr,Fr))),h[O+400+(n[Ou>>2]<<2)>>2]=Vt;break e}break}case 0:if(hi=(n[(Ja(O,Nr)|0)+4>>2]|0)==3,Vt=y(rt+l),l=hi?Vt:l,F&&(hi=O+400+(n[Ou>>2]<<2)|0,h[hi>>2]=y(l+y(h[hi>>2]))),hi=(n[(za(O,Nr)|0)+4>>2]|0)==3,Vt=y(rt+l),l=hi?Vt:l,Ia){Vt=y(c+y(fn(O,Nr,Fr))),Qe=Un,l=y(l+y(Vt+y(h[O+504>>2])));break e}else{l=y(l+y(c+y(KA(O,Nr,Fr)))),Qe=y(Yn(Qe,y(KA(O,Ar,Fr))));break e}default:}F&&(Vt=y(Xe+y(Ir(s,Nr))),hi=O+400+(n[Ou>>2]<<2)|0,h[hi>>2]=y(Vt+y(h[hi>>2])))}while(!1);j=j+1|0}while((j|0)!=(ur|0))}else Qe=y(0);if(c=y(jp+l),Op?Xe=y(y(Mn(s,Ar,y(_s+Qe),Uc,B))-_s):Xe=Un,rt=y(y(Mn(s,Ar,y(_s+(_p?Un:Qe)),Uc,B))-_s),Lt&F){j=Or;do{oe=n[(n[po>>2]|0)+(j<<2)>>2]|0;do if((n[oe+36>>2]|0)!=1){if((n[oe+24>>2]|0)==1){if(Ho(oe,Ar)|0){if(Vt=y(YA(oe,Ar,Un)),Vt=y(Vt+y(Ir(s,Ar))),Vt=y(Vt+y(V(oe,Ar,Fr))),O=n[Lu>>2]|0,h[oe+400+(O<<2)>>2]=Vt,!(Ot(Vt)|0))break}else O=n[Lu>>2]|0;Vt=y(Ir(s,Ar)),h[oe+400+(O<<2)>>2]=y(Vt+y(V(oe,Ar,Fr)));break}O=Wi(s,oe)|0;do if((O|0)==4){if((n[(Ja(oe,Ar)|0)+4>>2]|0)==3){$r=139;break}if((n[(za(oe,Ar)|0)+4>>2]|0)==3){$r=139;break}if(Ls(oe,Ar,Un)|0){l=Oe;break}pf=n[oe+908+(n[kl>>2]<<2)>>2]|0,n[Ms>>2]=pf,l=y(h[oe+396>>2]),hi=Ot(l)|0,Qe=(n[D>>2]=pf,y(h[D>>2])),hi?l=rt:(kr=y(fn(oe,Ar,Fr)),Vt=y(Qe/l),l=y(l*Qe),l=y(kr+(ri?Vt:l))),h[rl>>2]=l,h[Ms>>2]=y(y(fn(oe,Nr,Fr))+Qe),n[Go>>2]=1,n[Fl>>2]=1,bc(oe,Nr,lr,Fr,Go,Ms),bc(oe,Ar,Un,Fr,Fl,rl),l=y(h[Ms>>2]),kr=y(h[rl>>2]),Vt=ri?l:kr,l=ri?kr:l,hi=((Ot(Vt)|0)^1)&1,Va(oe,Vt,l,Is,hi,((Ot(l)|0)^1)&1,Fr,Ao,1,3493,M)|0,l=Oe}else $r=139;while(!1);e:do if(($r|0)==139){$r=0,l=y(Xe-y(KA(oe,Ar,Fr)));do if((n[(Ja(oe,Ar)|0)+4>>2]|0)==3){if((n[(za(oe,Ar)|0)+4>>2]|0)!=3)break;l=y(Oe+y(Yn(y(0),y(l*y(.5)))));break e}while(!1);if((n[(za(oe,Ar)|0)+4>>2]|0)==3){l=Oe;break}if((n[(Ja(oe,Ar)|0)+4>>2]|0)==3){l=y(Oe+y(Yn(y(0),l)));break}switch(O|0){case 1:{l=Oe;break e}case 2:{l=y(Oe+y(l*y(.5)));break e}default:{l=y(Oe+l);break e}}}while(!1);Vt=y(Cs+l),hi=oe+400+(n[Lu>>2]<<2)|0,h[hi>>2]=y(Vt+y(h[hi>>2]))}while(!1);j=j+1|0}while((j|0)!=(ur|0))}if(Cs=y(Cs+rt),Lc=y(Yn(Lc,c)),m=uo+1|0,ur>>>0>=Hs>>>0)break;l=lr,Or=ur,uo=m}do if(F){if(O=m>>>0>1,!O&&!(HF(s)|0))break;if(!(Ot(Un)|0)){l=y(Un-Cs);e:do switch(n[s+12>>2]|0){case 3:{Oe=y(Oe+l),_e=y(0);break}case 2:{Oe=y(Oe+y(l*y(.5))),_e=y(0);break}case 4:{Un>Cs?_e=y(l/y(m>>>0)):_e=y(0);break}case 7:if(Un>Cs){Oe=y(Oe+y(l/y(m<<1>>>0))),_e=y(l/y(m>>>0)),_e=O?_e:y(0);break e}else{Oe=y(Oe+y(l*y(.5))),_e=y(0);break e}case 6:{_e=y(l/y(uo>>>0)),_e=Un>Cs&O?_e:y(0);break}default:_e=y(0)}while(!1);if(m|0)for(Lt=1040+(Ar<<2)|0,_r=976+(Ar<<2)|0,We=0,j=0;;){e:do if(j>>>0>>0)for(Qe=y(0),rt=y(0),l=y(0),oe=j;;){O=n[(n[po>>2]|0)+(oe<<2)>>2]|0;do if((n[O+36>>2]|0)!=1&&!(n[O+24>>2]|0)){if((n[O+940>>2]|0)!=(We|0))break e;if(qF(O,Ar)|0&&(Vt=y(h[O+908+(n[_r>>2]<<2)>>2]),l=y(Yn(l,y(Vt+y(fn(O,Ar,Fr)))))),(Wi(s,O)|0)!=5)break;Us=y(m0(O)),Us=y(Us+y(V(O,0,Fr))),Vt=y(h[O+912>>2]),Vt=y(y(Vt+y(fn(O,0,Fr)))-Us),Us=y(Yn(rt,Us)),Vt=y(Yn(Qe,Vt)),Qe=Vt,rt=Us,l=y(Yn(l,y(Us+Vt)))}while(!1);if(O=oe+1|0,O>>>0>>0)oe=O;else{oe=O;break}}else rt=y(0),l=y(0),oe=j;while(!1);if(ct=y(_e+l),c=Oe,Oe=y(Oe+ct),j>>>0>>0){Xe=y(c+rt),O=j;do{j=n[(n[po>>2]|0)+(O<<2)>>2]|0;e:do if((n[j+36>>2]|0)!=1&&!(n[j+24>>2]|0))switch(Wi(s,j)|0){case 1:{Vt=y(c+y(V(j,Ar,Fr))),h[j+400+(n[Lt>>2]<<2)>>2]=Vt;break e}case 3:{Vt=y(y(Oe-y(re(j,Ar,Fr)))-y(h[j+908+(n[_r>>2]<<2)>>2])),h[j+400+(n[Lt>>2]<<2)>>2]=Vt;break e}case 2:{Vt=y(c+y(y(ct-y(h[j+908+(n[_r>>2]<<2)>>2]))*y(.5))),h[j+400+(n[Lt>>2]<<2)>>2]=Vt;break e}case 4:{if(Vt=y(c+y(V(j,Ar,Fr))),h[j+400+(n[Lt>>2]<<2)>>2]=Vt,Ls(j,Ar,Un)|0||(ri?(Qe=y(h[j+908>>2]),l=y(Qe+y(fn(j,Nr,Fr))),rt=ct):(rt=y(h[j+912>>2]),rt=y(rt+y(fn(j,Ar,Fr))),l=ct,Qe=y(h[j+908>>2])),An(l,Qe)|0&&An(rt,y(h[j+912>>2]))|0))break e;Va(j,l,rt,Is,1,1,Fr,Ao,1,3501,M)|0;break e}case 5:{h[j+404>>2]=y(y(Xe-y(m0(j)))+y(YA(j,0,Un)));break e}default:break e}while(!1);O=O+1|0}while((O|0)!=(oe|0))}if(We=We+1|0,(We|0)==(m|0))break;j=oe}}}while(!1);if(h[s+908>>2]=y(Mn(s,2,Oc,B,B)),h[s+912>>2]=y(Mn(s,0,af,k,B)),Rl|0&&(lf=n[s+32>>2]|0,cf=(Rl|0)==2,!(cf&(lf|0)!=2))?cf&(lf|0)==2&&(l=y(Mc+lr),l=y(Yn(y(M0(l,y(y0(s,Nr,Lc,fo)))),Mc)),$r=198):(l=y(Mn(s,Nr,Lc,fo,B)),$r=198),($r|0)==198&&(h[s+908+(n[976+(Nr<<2)>>2]<<2)>>2]=l),Tl|0&&(Af=n[s+32>>2]|0,ff=(Tl|0)==2,!(ff&(Af|0)!=2))?ff&(Af|0)==2&&(l=y(_s+Un),l=y(Yn(y(M0(l,y(y0(s,Ar,y(_s+Cs),Uc)))),_s)),$r=204):(l=y(Mn(s,Ar,y(_s+Cs),Uc,B)),$r=204),($r|0)==204&&(h[s+908+(n[976+(Ar<<2)>>2]<<2)>>2]=l),F){if((n[uf>>2]|0)==2){j=976+(Ar<<2)|0,oe=1040+(Ar<<2)|0,O=0;do We=rs(s,O)|0,n[We+24>>2]|0||(pf=n[j>>2]|0,Vt=y(h[s+908+(pf<<2)>>2]),hi=We+400+(n[oe>>2]<<2)|0,Vt=y(Vt-y(h[hi>>2])),h[hi>>2]=y(Vt-y(h[We+908+(pf<<2)>>2]))),O=O+1|0;while((O|0)!=(Hs|0))}if(f|0){O=ri?Rl:d;do jF(s,f,Fr,O,Ao,Is,M),f=n[f+960>>2]|0;while(f|0)}if(O=(Nr|2|0)==3,j=(Ar|2|0)==3,O|j){f=0;do oe=n[(n[po>>2]|0)+(f<<2)>>2]|0,(n[oe+36>>2]|0)!=1&&(O&&xI(s,oe,Nr),j&&xI(s,oe,Ar)),f=f+1|0;while((f|0)!=(Hs|0))}}}while(!1);C=Nl}function dp(s,l){s=s|0,l=y(l);var c=0;ua(s,l>=y(0),3147),c=l==y(0),h[s+4>>2]=c?y(0):l}function qA(s,l,c,f){s=s|0,l=y(l),c=y(c),f=f|0;var d=Ze,m=Ze,B=0,k=0,F=0;n[2278]=(n[2278]|0)+1,Su(s),Ls(s,2,l)|0?(d=y(Kr(n[s+992>>2]|0,l)),F=1,d=y(d+y(fn(s,2,l)))):(d=y(Kr(s+380|0,l)),d>=y(0)?F=2:(F=((Ot(l)|0)^1)&1,d=l)),Ls(s,0,c)|0?(m=y(Kr(n[s+996>>2]|0,c)),k=1,m=y(m+y(fn(s,0,l)))):(m=y(Kr(s+388|0,c)),m>=y(0)?k=2:(k=((Ot(c)|0)^1)&1,m=c)),B=s+976|0,Va(s,d,m,f,F,k,l,c,1,3189,n[B>>2]|0)|0&&(mp(s,n[s+496>>2]|0,l,c,l),jA(s,y(h[(n[B>>2]|0)+4>>2]),y(0),y(0)),o[11696]|0)&&h0(s,7)}function Su(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;k=C,C=C+32|0,B=k+24|0,m=k+16|0,f=k+8|0,d=k,c=0;do l=s+380+(c<<3)|0,n[s+380+(c<<3)+4>>2]|0&&(F=l,M=n[F+4>>2]|0,O=f,n[O>>2]=n[F>>2],n[O+4>>2]=M,O=s+364+(c<<3)|0,M=n[O+4>>2]|0,F=d,n[F>>2]=n[O>>2],n[F+4>>2]=M,n[m>>2]=n[f>>2],n[m+4>>2]=n[f+4>>2],n[B>>2]=n[d>>2],n[B+4>>2]=n[d+4>>2],vu(m,B)|0)||(l=s+348+(c<<3)|0),n[s+992+(c<<2)>>2]=l,c=c+1|0;while((c|0)!=2);C=k}function Ls(s,l,c){s=s|0,l=l|0,c=y(c);var f=0;switch(s=n[s+992+(n[976+(l<<2)>>2]<<2)>>2]|0,n[s+4>>2]|0){case 0:case 3:{s=0;break}case 1:{y(h[s>>2])>2])>2]|0){case 2:{l=y(y(y(h[s>>2])*l)/y(100));break}case 1:{l=y(h[s>>2]);break}default:l=y(ue)}return y(l)}function mp(s,l,c,f,d){s=s|0,l=l|0,c=y(c),f=y(f),d=y(d);var m=0,B=Ze;l=n[s+944>>2]|0?l:1,m=hr(n[s+4>>2]|0,l)|0,l=Fd(m,l)|0,c=y(uD(s,m,c)),f=y(uD(s,l,f)),B=y(c+y(V(s,m,d))),h[s+400+(n[1040+(m<<2)>>2]<<2)>>2]=B,c=y(c+y(re(s,m,d))),h[s+400+(n[1e3+(m<<2)>>2]<<2)>>2]=c,c=y(f+y(V(s,l,d))),h[s+400+(n[1040+(l<<2)>>2]<<2)>>2]=c,d=y(f+y(re(s,l,d))),h[s+400+(n[1e3+(l<<2)>>2]<<2)>>2]=d}function jA(s,l,c,f){s=s|0,l=y(l),c=y(c),f=y(f);var d=0,m=0,B=Ze,k=Ze,F=0,M=0,O=Ze,j=0,oe=Ze,We=Ze,Oe=Ze,Qe=Ze;if(l!=y(0)&&(d=s+400|0,Qe=y(h[d>>2]),m=s+404|0,Oe=y(h[m>>2]),j=s+416|0,We=y(h[j>>2]),M=s+420|0,B=y(h[M>>2]),oe=y(Qe+c),O=y(Oe+f),f=y(oe+We),k=y(O+B),F=(n[s+988>>2]|0)==1,h[d>>2]=y(Gi(Qe,l,0,F)),h[m>>2]=y(Gi(Oe,l,0,F)),c=y(lT(y(We*l),y(1))),An(c,y(0))|0?m=0:m=(An(c,y(1))|0)^1,c=y(lT(y(B*l),y(1))),An(c,y(0))|0?d=0:d=(An(c,y(1))|0)^1,Qe=y(Gi(f,l,F&m,F&(m^1))),h[j>>2]=y(Qe-y(Gi(oe,l,0,F))),Qe=y(Gi(k,l,F&d,F&(d^1))),h[M>>2]=y(Qe-y(Gi(O,l,0,F))),m=(n[s+952>>2]|0)-(n[s+948>>2]|0)>>2,m|0)){d=0;do jA(rs(s,d)|0,l,oe,O),d=d+1|0;while((d|0)!=(m|0))}}function kd(s,l,c,f,d){switch(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,c|0){case 5:case 0:{s=M7(n[489]|0,f,d)|0;break}default:s=H4e(f,d)|0}return s|0}function d0(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;d=C,C=C+16|0,m=d,n[m>>2]=f,yp(s,0,l,c,m),C=d}function yp(s,l,c,f,d){if(s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,s=s|0?s:956,sW[n[s+8>>2]&1](s,l,c,f,d)|0,(c|0)==5)Tt();else return}function bl(s,l,c){s=s|0,l=l|0,c=c|0,o[s+l>>0]=c&1}function Qd(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(Ep(s,f),xt(s,n[l>>2]|0,n[c>>2]|0,f))}function Ep(s,l){s=s|0,l=l|0;var c=0;if((N(s)|0)>>>0>>0&&Zr(s),l>>>0>1073741823)Tt();else{c=Yt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function xt(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(xr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function N(s){return s=s|0,1073741823}function V(s,l,c){return s=s|0,l=l|0,c=y(c),ge(l)|0&&n[s+96>>2]|0?s=s+92|0:s=vn(s+60|0,n[1040+(l<<2)>>2]|0,992)|0,y(Ye(s,c))}function re(s,l,c){return s=s|0,l=l|0,c=y(c),ge(l)|0&&n[s+104>>2]|0?s=s+100|0:s=vn(s+60|0,n[1e3+(l<<2)>>2]|0,992)|0,y(Ye(s,c))}function ge(s){return s=s|0,(s|1|0)==3|0}function Ye(s,l){return s=s|0,l=y(l),(n[s+4>>2]|0)==3?l=y(0):l=y(Kr(s,l)),y(l)}function At(s,l){return s=s|0,l=l|0,s=n[s>>2]|0,(s|0?s:(l|0)>1?l:1)|0}function hr(s,l){s=s|0,l=l|0;var c=0;e:do if((l|0)==2){switch(s|0){case 2:{s=3;break e}case 3:break;default:{c=4;break e}}s=2}else c=4;while(!1);return s|0}function Ir(s,l){s=s|0,l=l|0;var c=Ze;return ge(l)|0&&n[s+312>>2]|0&&(c=y(h[s+308>>2]),c>=y(0))||(c=y(Yn(y(h[(vn(s+276|0,n[1040+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function Rn(s,l){s=s|0,l=l|0;var c=Ze;return ge(l)|0&&n[s+320>>2]|0&&(c=y(h[s+316>>2]),c>=y(0))||(c=y(Yn(y(h[(vn(s+276|0,n[1e3+(l<<2)>>2]|0,992)|0)>>2]),y(0)))),y(c)}function ai(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return ge(l)|0&&n[s+240>>2]|0&&(f=y(Kr(s+236|0,c)),f>=y(0))||(f=y(Yn(y(Kr(vn(s+204|0,n[1040+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function ns(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return ge(l)|0&&n[s+248>>2]|0&&(f=y(Kr(s+244|0,c)),f>=y(0))||(f=y(Yn(y(Kr(vn(s+204|0,n[1e3+(l<<2)>>2]|0,992)|0,c)),y(0)))),y(f)}function GA(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,F=Ze,M=Ze,O=Ze,j=Ze,oe=Ze,We=0,Oe=0,Qe=0;Qe=C,C=C+16|0,We=Qe,Oe=s+964|0,pi(s,(n[Oe>>2]|0)!=0,3519),k=y(da(s,2,l)),F=y(da(s,0,l)),M=y(fn(s,2,l)),O=y(fn(s,0,l)),Ot(l)|0?j=l:j=y(Yn(y(0),y(y(l-M)-k))),Ot(c)|0?oe=c:oe=y(Yn(y(0),y(y(c-O)-F))),(f|0)==1&(d|0)==1?(h[s+908>>2]=y(Mn(s,2,y(l-M),m,m)),l=y(Mn(s,0,y(c-O),B,m))):(oW[n[Oe>>2]&1](We,s,j,f,oe,d),j=y(k+y(h[We>>2])),oe=y(l-M),h[s+908>>2]=y(Mn(s,2,(f|2|0)==2?j:oe,m,m)),oe=y(F+y(h[We+4>>2])),l=y(c-O),l=y(Mn(s,0,(d|2|0)==2?oe:l,B,m))),h[s+912>>2]=l,C=Qe}function lD(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=Ze,F=Ze,M=Ze,O=Ze;M=y(da(s,2,m)),k=y(da(s,0,m)),O=y(fn(s,2,m)),F=y(fn(s,0,m)),l=y(l-O),h[s+908>>2]=y(Mn(s,2,(f|2|0)==2?M:l,m,m)),c=y(c-F),h[s+912>>2]=y(Mn(s,0,(d|2|0)==2?k:c,B,m))}function PI(s,l,c,f,d,m,B){s=s|0,l=y(l),c=y(c),f=f|0,d=d|0,m=y(m),B=y(B);var k=0,F=Ze,M=Ze;return k=(f|0)==2,!(l<=y(0)&k)&&!(c<=y(0)&(d|0)==2)&&!((f|0)==1&(d|0)==1)?s=0:(F=y(fn(s,0,m)),M=y(fn(s,2,m)),k=l>2]=y(Mn(s,2,k?y(0):l,m,m)),l=y(c-F),k=c>2]=y(Mn(s,0,k?y(0):l,B,m)),s=1),s|0}function Fd(s,l){return s=s|0,l=l|0,E0(s)|0?s=hr(2,l)|0:s=0,s|0}function Cp(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ai(s,l,c)),y(c+y(Ir(s,l)))}function SI(s,l,c){return s=s|0,l=l|0,c=y(c),c=y(ns(s,l,c)),y(c+y(Rn(s,l)))}function da(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(Cp(s,l,c)),y(f+y(SI(s,l,c)))}function bI(s){return s=s|0,n[s+24>>2]|0?s=0:y(WA(s))!=y(0)?s=1:s=y(Ip(s))!=y(0),s|0}function WA(s){s=s|0;var l=Ze;if(n[s+944>>2]|0){if(l=y(h[s+44>>2]),Ot(l)|0)return l=y(h[s+40>>2]),s=l>y(0)&((Ot(l)|0)^1),y(s?l:y(0))}else l=y(0);return y(l)}function Ip(s){s=s|0;var l=Ze,c=0,f=Ze;do if(n[s+944>>2]|0){if(l=y(h[s+48>>2]),Ot(l)|0){if(c=o[(n[s+976>>2]|0)+2>>0]|0,!(c<<24>>24)&&(f=y(h[s+40>>2]),f>24?y(1):y(0)}}else l=y(0);while(!1);return y(l)}function Rd(s){s=s|0;var l=0,c=0;if(sm(s+400|0,0,540)|0,o[s+985>>0]=1,ee(s),c=Di(s)|0,c|0){l=s+948|0,s=0;do Rd(n[(n[l>>2]|0)+(s<<2)>>2]|0),s=s+1|0;while((s|0)!=(c|0))}}function cD(s,l,c,f,d,m,B,k,F,M){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=y(m),B=y(B),k=k|0,F=F|0,M=M|0;var O=0,j=Ze,oe=0,We=0,Oe=Ze,Qe=Ze,rt=0,Xe=Ze,ct=0,_e=Ze,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=0,lo=0;Nn=C,C=C+16|0,_r=Nn+12|0,ur=Nn+8|0,Zt=Nn+4|0,kr=Nn,lr=hr(n[s+4>>2]|0,F)|0,Ge=ge(lr)|0,j=y(Kr(GF(l)|0,Ge?m:B)),Lt=Ls(l,2,m)|0,Or=Ls(l,0,B)|0;do if(!(Ot(j)|0)&&!(Ot(Ge?c:d)|0)){if(O=l+504|0,!(Ot(y(h[O>>2]))|0)&&(!(kI(n[l+976>>2]|0,0)|0)||(n[l+500>>2]|0)==(n[2278]|0)))break;h[O>>2]=y(Yn(j,y(da(l,lr,m))))}else oe=7;while(!1);do if((oe|0)==7){if(ct=Ge^1,!(ct|Lt^1)){B=y(Kr(n[l+992>>2]|0,m)),h[l+504>>2]=y(Yn(B,y(da(l,2,m))));break}if(!(Ge|Or^1)){B=y(Kr(n[l+996>>2]|0,B)),h[l+504>>2]=y(Yn(B,y(da(l,0,m))));break}h[_r>>2]=y(ue),h[ur>>2]=y(ue),n[Zt>>2]=0,n[kr>>2]=0,Xe=y(fn(l,2,m)),_e=y(fn(l,0,m)),Lt?(Oe=y(Xe+y(Kr(n[l+992>>2]|0,m))),h[_r>>2]=Oe,n[Zt>>2]=1,We=1):(We=0,Oe=y(ue)),Or?(j=y(_e+y(Kr(n[l+996>>2]|0,B))),h[ur>>2]=j,n[kr>>2]=1,O=1):(O=0,j=y(ue)),oe=n[s+32>>2]|0,Ge&(oe|0)==2?oe=2:Ot(Oe)|0&&!(Ot(c)|0)&&(h[_r>>2]=c,n[Zt>>2]=2,We=2,Oe=c),!((oe|0)==2&ct)&&Ot(j)|0&&!(Ot(d)|0)&&(h[ur>>2]=d,n[kr>>2]=2,O=2,j=d),Qe=y(h[l+396>>2]),rt=Ot(Qe)|0;do if(rt)oe=We;else{if((We|0)==1&ct){h[ur>>2]=y(y(Oe-Xe)/Qe),n[kr>>2]=1,O=1,oe=1;break}Ge&(O|0)==1?(h[_r>>2]=y(Qe*y(j-_e)),n[Zt>>2]=1,O=1,oe=1):oe=We}while(!1);lo=Ot(c)|0,We=(Wi(s,l)|0)!=4,!(Ge|Lt|((f|0)!=1|lo)|(We|(oe|0)==1))&&(h[_r>>2]=c,n[Zt>>2]=1,!rt)&&(h[ur>>2]=y(y(c-Xe)/Qe),n[kr>>2]=1,O=1),!(Or|ct|((k|0)!=1|(Ot(d)|0))|(We|(O|0)==1))&&(h[ur>>2]=d,n[kr>>2]=1,!rt)&&(h[_r>>2]=y(Qe*y(d-_e)),n[Zt>>2]=1),bc(l,2,m,m,Zt,_r),bc(l,0,B,m,kr,ur),c=y(h[_r>>2]),d=y(h[ur>>2]),Va(l,c,d,F,n[Zt>>2]|0,n[kr>>2]|0,m,B,0,3565,M)|0,B=y(h[l+908+(n[976+(lr<<2)>>2]<<2)>>2]),h[l+504>>2]=y(Yn(B,y(da(l,lr,m))))}while(!1);n[l+500>>2]=n[2278],C=Nn}function Mn(s,l,c,f,d){return s=s|0,l=l|0,c=y(c),f=y(f),d=y(d),f=y(y0(s,l,c,f)),y(Yn(f,y(da(s,l,d))))}function Wi(s,l){return s=s|0,l=l|0,l=l+20|0,l=n[(n[l>>2]|0?l:s+16|0)>>2]|0,(l|0)==5&&E0(n[s+4>>2]|0)|0&&(l=1),l|0}function Ja(s,l){return s=s|0,l=l|0,ge(l)|0&&n[s+96>>2]|0?l=4:l=n[1040+(l<<2)>>2]|0,s+60+(l<<3)|0}function za(s,l){return s=s|0,l=l|0,ge(l)|0&&n[s+104>>2]|0?l=5:l=n[1e3+(l<<2)>>2]|0,s+60+(l<<3)|0}function bc(s,l,c,f,d,m){switch(s=s|0,l=l|0,c=y(c),f=y(f),d=d|0,m=m|0,c=y(Kr(s+380+(n[976+(l<<2)>>2]<<3)|0,c)),c=y(c+y(fn(s,l,f))),n[d>>2]|0){case 2:case 1:{d=Ot(c)|0,f=y(h[m>>2]),h[m>>2]=d|f>2]=2,h[m>>2]=c);break}default:}}function Ho(s,l){return s=s|0,l=l|0,s=s+132|0,ge(l)|0&&n[(vn(s,4,948)|0)+4>>2]|0?s=1:s=(n[(vn(s,n[1040+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function YA(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ge(l)|0&&(f=vn(s,4,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=vn(s,n[1040+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Kr(f,c))),y(c)}function KA(s,l,c){s=s|0,l=l|0,c=y(c);var f=Ze;return f=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),f=y(f+y(V(s,l,c))),y(f+y(re(s,l,c)))}function HF(s){s=s|0;var l=0,c=0,f=0;e:do if(E0(n[s+4>>2]|0)|0)l=0;else if((n[s+16>>2]|0)!=5)if(c=Di(s)|0,!c)l=0;else for(l=0;;){if(f=rs(s,l)|0,!(n[f+24>>2]|0)&&(n[f+20>>2]|0)==5){l=1;break e}if(l=l+1|0,l>>>0>=c>>>0){l=0;break}}else l=1;while(!1);return l|0}function qF(s,l){s=s|0,l=l|0;var c=Ze;return c=y(h[s+908+(n[976+(l<<2)>>2]<<2)>>2]),c>=y(0)&((Ot(c)|0)^1)|0}function m0(s){s=s|0;var l=Ze,c=0,f=0,d=0,m=0,B=0,k=0,F=Ze;if(c=n[s+968>>2]|0,c)F=y(h[s+908>>2]),l=y(h[s+912>>2]),l=y(tW[c&0](s,F,l)),pi(s,(Ot(l)|0)^1,3573);else{m=Di(s)|0;do if(m|0){for(c=0,d=0;;){if(f=rs(s,d)|0,n[f+940>>2]|0){B=8;break}if((n[f+24>>2]|0)!=1)if(k=(Wi(s,f)|0)==5,k){c=f;break}else c=c|0?c:f;if(d=d+1|0,d>>>0>=m>>>0){B=8;break}}if((B|0)==8&&!c)break;return l=y(m0(c)),y(l+y(h[c+404>>2]))}while(!1);l=y(h[s+912>>2])}return y(l)}function y0(s,l,c,f){s=s|0,l=l|0,c=y(c),f=y(f);var d=Ze,m=0;return E0(l)|0?(l=1,m=3):ge(l)|0?(l=0,m=3):(f=y(ue),d=y(ue)),(m|0)==3&&(d=y(Kr(s+364+(l<<3)|0,f)),f=y(Kr(s+380+(l<<3)|0,f))),m=f=y(0)&((Ot(f)|0)^1)),c=m?f:c,m=d>=y(0)&((Ot(d)|0)^1)&c>2]|0,m)|0,Oe=Fd(rt,m)|0,Qe=ge(rt)|0,j=y(fn(l,2,c)),oe=y(fn(l,0,c)),Ls(l,2,c)|0?k=y(j+y(Kr(n[l+992>>2]|0,c))):Ho(l,2)|0&&Td(l,2)|0?(k=y(h[s+908>>2]),F=y(Ir(s,2)),F=y(k-y(F+y(Rn(s,2)))),k=y(YA(l,2,c)),k=y(Mn(l,2,y(F-y(k+y(wp(l,2,c)))),c,c))):k=y(ue),Ls(l,0,d)|0?F=y(oe+y(Kr(n[l+996>>2]|0,d))):Ho(l,0)|0&&Td(l,0)|0?(F=y(h[s+912>>2]),ct=y(Ir(s,0)),ct=y(F-y(ct+y(Rn(s,0)))),F=y(YA(l,0,d)),F=y(Mn(l,0,y(ct-y(F+y(wp(l,0,d)))),d,c))):F=y(ue),M=Ot(k)|0,O=Ot(F)|0;do if(M^O&&(We=y(h[l+396>>2]),!(Ot(We)|0)))if(M){k=y(j+y(y(F-oe)*We));break}else{ct=y(oe+y(y(k-j)/We)),F=O?ct:F;break}while(!1);O=Ot(k)|0,M=Ot(F)|0,O|M&&(_e=(O^1)&1,f=c>y(0)&((f|0)!=0&O),k=Qe?k:f?c:k,Va(l,k,F,m,Qe?_e:f?2:_e,O&(M^1)&1,k,F,0,3623,B)|0,k=y(h[l+908>>2]),k=y(k+y(fn(l,2,c))),F=y(h[l+912>>2]),F=y(F+y(fn(l,0,c)))),Va(l,k,F,m,1,1,k,F,1,3635,B)|0,Td(l,rt)|0&&!(Ho(l,rt)|0)?(_e=n[976+(rt<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),ct=y(ct-y(Rn(s,rt))),ct=y(ct-y(re(l,rt,c))),ct=y(ct-y(wp(l,rt,Qe?c:d))),h[l+400+(n[1040+(rt<<2)>>2]<<2)>>2]=ct):Xe=21;do if((Xe|0)==21){if(!(Ho(l,rt)|0)&&(n[s+8>>2]|0)==1){_e=n[976+(rt<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(y(ct-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+(rt<<2)>>2]<<2)>>2]=ct;break}!(Ho(l,rt)|0)&&(n[s+8>>2]|0)==2&&(_e=n[976+(rt<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+(rt<<2)>>2]<<2)>>2]=ct)}while(!1);Td(l,Oe)|0&&!(Ho(l,Oe)|0)?(_e=n[976+(Oe<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),ct=y(ct-y(Rn(s,Oe))),ct=y(ct-y(re(l,Oe,c))),ct=y(ct-y(wp(l,Oe,Qe?d:c))),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=ct):Xe=30;do if((Xe|0)==30&&!(Ho(l,Oe)|0)){if((Wi(s,l)|0)==2){_e=n[976+(Oe<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(y(ct-y(h[l+908+(_e<<2)>>2]))*y(.5)),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=ct;break}_e=(Wi(s,l)|0)==3,_e^(n[s+28>>2]|0)==2&&(_e=n[976+(Oe<<2)>>2]|0,ct=y(h[s+908+(_e<<2)>>2]),ct=y(ct-y(h[l+908+(_e<<2)>>2])),h[l+400+(n[1040+(Oe<<2)>>2]<<2)>>2]=ct)}while(!1)}function xI(s,l,c){s=s|0,l=l|0,c=c|0;var f=Ze,d=0;d=n[976+(c<<2)>>2]|0,f=y(h[l+908+(d<<2)>>2]),f=y(y(h[s+908+(d<<2)>>2])-f),f=y(f-y(h[l+400+(n[1040+(c<<2)>>2]<<2)>>2])),h[l+400+(n[1e3+(c<<2)>>2]<<2)>>2]=f}function E0(s){return s=s|0,(s|1|0)==1|0}function GF(s){s=s|0;var l=Ze;switch(n[s+56>>2]|0){case 0:case 3:{l=y(h[s+40>>2]),l>y(0)&((Ot(l)|0)^1)?s=o[(n[s+976>>2]|0)+2>>0]|0?1056:992:s=1056;break}default:s=s+52|0}return s|0}function kI(s,l){return s=s|0,l=l|0,(o[s+l>>0]|0)!=0|0}function Td(s,l){return s=s|0,l=l|0,s=s+132|0,ge(l)|0&&n[(vn(s,5,948)|0)+4>>2]|0?s=1:s=(n[(vn(s,n[1e3+(l<<2)>>2]|0,948)|0)+4>>2]|0)!=0,s|0}function wp(s,l,c){s=s|0,l=l|0,c=y(c);var f=0,d=0;return s=s+132|0,ge(l)|0&&(f=vn(s,5,948)|0,(n[f+4>>2]|0)!=0)?d=4:(f=vn(s,n[1e3+(l<<2)>>2]|0,948)|0,n[f+4>>2]|0?d=4:c=y(0)),(d|0)==4&&(c=y(Kr(f,c))),y(c)}function uD(s,l,c){return s=s|0,l=l|0,c=y(c),Ho(s,l)|0?c=y(YA(s,l,c)):c=y(-y(wp(s,l,c))),y(c)}function AD(s){return s=y(s),h[D>>2]=s,n[D>>2]|0|0}function Nd(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Yt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function fD(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Ld(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&yt(s)}function pD(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;if(B=s+4|0,k=n[B>>2]|0,d=k-f|0,m=d>>2,s=l+(m<<2)|0,s>>>0>>0){f=k;do n[f>>2]=n[s>>2],s=s+4|0,f=(n[B>>2]|0)+4|0,n[B>>2]=f;while(s>>>0>>0)}m|0&&rw(k+(0-m<<2)|0,l|0,d|0)|0}function hD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0;return k=l+4|0,F=n[k>>2]|0,d=n[s>>2]|0,B=c,m=B-d|0,f=F+(0-(m>>2)<<2)|0,n[k>>2]=f,(m|0)>0&&xr(f|0,d|0,m|0)|0,d=s+4|0,m=l+8|0,f=(n[d>>2]|0)-B|0,(f|0)>0&&(xr(n[m>>2]|0,c|0,f|0)|0,n[m>>2]=(n[m>>2]|0)+(f>>>2<<2)),B=n[s>>2]|0,n[s>>2]=n[k>>2],n[k>>2]=B,B=n[d>>2]|0,n[d>>2]=n[m>>2],n[m>>2]=B,B=s+8|0,c=l+12|0,s=n[B>>2]|0,n[B>>2]=n[c>>2],n[c>>2]=s,n[l>>2]=n[k>>2],F|0}function QI(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(B=n[l>>2]|0,m=n[c>>2]|0,(B|0)!=(m|0)){d=s+8|0,c=((m+-4-B|0)>>>2)+1|0,s=B,f=n[d>>2]|0;do n[f>>2]=n[s>>2],f=(n[d>>2]|0)+4|0,n[d>>2]=f,s=s+4|0;while((s|0)!=(m|0));n[l>>2]=B+(c<<2)}}function FI(){Oo()}function gD(){var s=0;return s=Yt(4)|0,RI(s),s|0}function RI(s){s=s|0,n[s>>2]=Sl()|0}function dD(s){s=s|0,s|0&&(C0(s),yt(s))}function C0(s){s=s|0,st(n[s>>2]|0)}function WF(s,l,c){s=s|0,l=l|0,c=c|0,bl(n[s>>2]|0,l,c)}function Od(s,l){s=s|0,l=y(l),dp(n[s>>2]|0,l)}function Md(s,l){return s=s|0,l=l|0,kI(n[s>>2]|0,l)|0}function Ud(){var s=0;return s=Yt(8)|0,I0(s,0),s|0}function I0(s,l){s=s|0,l=l|0,l?l=Mo(n[l>>2]|0)|0:l=qi()|0,n[s>>2]=l,n[s+4>>2]=0,Pn(l,s)}function _d(s){s=s|0;var l=0;return l=Yt(8)|0,I0(l,s),l|0}function w0(s){s=s|0,s|0&&(Hd(s),yt(s))}function Hd(s){s=s|0;var l=0;Dl(n[s>>2]|0),l=s+4|0,s=n[l>>2]|0,n[l>>2]=0,s|0&&(bu(s),yt(s))}function bu(s){s=s|0,xu(s)}function xu(s){s=s|0,s=n[s>>2]|0,s|0&&sa(s|0)}function TI(s){return s=s|0,fa(s)|0}function NI(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(bu(l),yt(l)),Pl(n[s>>2]|0)}function qd(s,l){s=s|0,l=l|0,sn(n[s>>2]|0,n[l>>2]|0)}function YF(s,l){s=s|0,l=l|0,fp(n[s>>2]|0,l)}function KF(s,l,c){s=s|0,l=l|0,c=+c,Pd(n[s>>2]|0,l,y(c))}function jd(s,l,c){s=s|0,l=l|0,c=+c,Sd(n[s>>2]|0,l,y(c))}function LI(s,l){s=s|0,l=l|0,cp(n[s>>2]|0,l)}function OI(s,l){s=s|0,l=l|0,to(n[s>>2]|0,l)}function Sr(s,l){s=s|0,l=l|0,Ap(n[s>>2]|0,l)}function Os(s,l){s=s|0,l=l|0,wd(n[s>>2]|0,l)}function Oi(s,l){s=s|0,l=l|0,o0(n[s>>2]|0,l)}function ms(s,l){s=s|0,l=l|0,eo(n[s>>2]|0,l)}function VA(s,l,c){s=s|0,l=l|0,c=+c,OA(n[s>>2]|0,l,y(c))}function MI(s,l,c){s=s|0,l=l|0,c=+c,W(n[s>>2]|0,l,y(c))}function is(s,l){s=s|0,l=l|0,MA(n[s>>2]|0,l)}function Gd(s,l){s=s|0,l=l|0,vd(n[s>>2]|0,l)}function Bp(s,l){s=s|0,l=l|0,ro(n[s>>2]|0,l)}function B0(s,l){s=s|0,l=+l,pp(n[s>>2]|0,y(l))}function vp(s,l){s=s|0,l=+l,Ya(n[s>>2]|0,y(l))}function UI(s,l){s=s|0,l=+l,Dd(n[s>>2]|0,y(l))}function _I(s,l){s=s|0,l=+l,l0(n[s>>2]|0,y(l))}function HI(s,l){s=s|0,l=+l,Wa(n[s>>2]|0,y(l))}function qI(s,l){s=s|0,l=+l,c0(n[s>>2]|0,y(l))}function ku(s,l){s=s|0,l=+l,DI(n[s>>2]|0,y(l))}function ir(s){s=s|0,hp(n[s>>2]|0)}function Wd(s,l){s=s|0,l=+l,Li(n[s>>2]|0,y(l))}function jI(s,l){s=s|0,l=+l,Iu(n[s>>2]|0,y(l))}function xl(s){s=s|0,pa(n[s>>2]|0)}function Qu(s,l){s=s|0,l=+l,Bc(n[s>>2]|0,y(l))}function v0(s,l){s=s|0,l=+l,wu(n[s>>2]|0,y(l))}function D0(s,l){s=s|0,l=+l,oi(n[s>>2]|0,y(l))}function GI(s,l){s=s|0,l=+l,UA(n[s>>2]|0,y(l))}function WI(s,l){s=s|0,l=+l,Uo(n[s>>2]|0,y(l))}function xc(s,l){s=s|0,l=+l,ga(n[s>>2]|0,y(l))}function P0(s,l){s=s|0,l=+l,gp(n[s>>2]|0,y(l))}function YI(s,l){s=s|0,l=+l,f0(n[s>>2]|0,y(l))}function Yd(s,l){s=s|0,l=+l,_A(n[s>>2]|0,y(l))}function kc(s,l,c){s=s|0,l=l|0,c=+c,wc(n[s>>2]|0,l,y(c))}function Kd(s,l,c){s=s|0,l=l|0,c=+c,no(n[s>>2]|0,l,y(c))}function S0(s,l,c){s=s|0,l=l|0,c=+c,Cu(n[s>>2]|0,l,y(c))}function b0(s){return s=s|0,s0(n[s>>2]|0)|0}function oo(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,LA(d,n[l>>2]|0,c),ss(s,d),C=f}function ss(s,l){s=s|0,l=l|0,Xa(s,n[l+4>>2]|0,+y(h[l>>2]))}function Xa(s,l,c){s=s|0,l=l|0,c=+c,n[s>>2]=l,E[s+8>>3]=c}function Vd(s){return s=s|0,vI(n[s>>2]|0)|0}function qo(s){return s=s|0,up(n[s>>2]|0)|0}function mD(s){return s=s|0,Ic(n[s>>2]|0)|0}function Dp(s){return s=s|0,BI(n[s>>2]|0)|0}function KI(s){return s=s|0,a0(n[s>>2]|0)|0}function VF(s){return s=s|0,Bd(n[s>>2]|0)|0}function yD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,bt(d,n[l>>2]|0,c),ss(s,d),C=f}function ED(s){return s=s|0,Eu(n[s>>2]|0)|0}function Jd(s){return s=s|0,Ga(n[s>>2]|0)|0}function VI(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,NA(f,n[l>>2]|0),ss(s,f),C=c}function Pp(s){return s=s|0,+ +y(ei(n[s>>2]|0))}function CD(s){return s=s|0,+ +y(Qi(n[s>>2]|0))}function ID(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,cr(f,n[l>>2]|0),ss(s,f),C=c}function x0(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,u0(f,n[l>>2]|0),ss(s,f),C=c}function JF(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,wt(f,n[l>>2]|0),ss(s,f),C=c}function zF(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,ha(f,n[l>>2]|0),ss(s,f),C=c}function wD(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,A0(f,n[l>>2]|0),ss(s,f),C=c}function BD(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,xd(f,n[l>>2]|0),ss(s,f),C=c}function JA(s){return s=s|0,+ +y(p0(n[s>>2]|0))}function XF(s,l){return s=s|0,l=l|0,+ +y(bd(n[s>>2]|0,l))}function ZF(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,dt(d,n[l>>2]|0,c),ss(s,d),C=f}function Qc(s,l,c){s=s|0,l=l|0,c=c|0,ar(n[s>>2]|0,n[l>>2]|0,c)}function $F(s,l){s=s|0,l=l|0,yu(n[s>>2]|0,n[l>>2]|0)}function vD(s){return s=s|0,Di(n[s>>2]|0)|0}function eR(s){return s=s|0,s=mt(n[s>>2]|0)|0,s?s=TI(s)|0:s=0,s|0}function DD(s,l){return s=s|0,l=l|0,s=rs(n[s>>2]|0,l)|0,s?s=TI(s)|0:s=0,s|0}function Fu(s,l){s=s|0,l=l|0;var c=0,f=0;f=Yt(4)|0,PD(f,l),c=s+4|0,l=n[c>>2]|0,n[c>>2]=f,l|0&&(bu(l),yt(l)),vt(n[s>>2]|0,1)}function PD(s,l){s=s|0,l=l|0,iR(s,l)}function tR(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,SD(k,fa(l)|0,+c,f,+d,m),h[s>>2]=y(+E[k>>3]),h[s+4>>2]=y(+E[k+8>>3]),C=B}function SD(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0,k=0,F=0,M=0,O=0;B=C,C=C+32|0,O=B+8|0,M=B+20|0,F=B,k=B+16|0,E[O>>3]=c,n[M>>2]=f,E[F>>3]=d,n[k>>2]=m,zd(s,n[l+4>>2]|0,O,M,F,k),C=B}function zd(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0;B=C,C=C+16|0,k=B,$a(k),l=ys(l)|0,bD(s,l,+E[c>>3],n[f>>2]|0,+E[d>>3],n[m>>2]|0),el(k),C=B}function ys(s){return s=s|0,n[s>>2]|0}function bD(s,l,c,f,d,m){s=s|0,l=l|0,c=+c,f=f|0,d=+d,m=m|0;var B=0;B=jo(JI()|0)|0,c=+ma(c),f=Xd(f)|0,d=+ma(d),rR(s,qn(0,B|0,l|0,+c,f|0,+d,Xd(m)|0)|0)}function JI(){var s=0;return o[7608]|0||(XI(9120),s=7608,n[s>>2]=1,n[s+4>>2]=0),9120}function jo(s){return s=s|0,n[s+8>>2]|0}function ma(s){return s=+s,+ +Ru(s)}function Xd(s){return s=s|0,k0(s)|0}function rR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=l,f&1?(ya(c,0),ia(f|0,c|0)|0,zI(s,c),nR(c)):(n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]),C=d}function ya(s,l){s=s|0,l=l|0,Fc(s,l),n[s+8>>2]=0,o[s+24>>0]=0}function zI(s,l){s=s|0,l=l|0,l=l+8|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2]}function nR(s){s=s|0,o[s+24>>0]=0}function Fc(s,l){s=s|0,l=l|0,n[s>>2]=l}function k0(s){return s=s|0,s|0}function Ru(s){return s=+s,+s}function XI(s){s=s|0,ao(s,ZI()|0,4)}function ZI(){return 1064}function ao(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=ki(l|0,c+1|0)|0}function iR(s,l){s=s|0,l=l|0,l=n[l>>2]|0,n[s>>2]=l,hc(l|0)}function xD(s){s=s|0;var l=0,c=0;c=s+4|0,l=n[c>>2]|0,n[c>>2]=0,l|0&&(bu(l),yt(l)),vt(n[s>>2]|0,0)}function kD(s){s=s|0,Dt(n[s>>2]|0)}function Zd(s){return s=s|0,er(n[s>>2]|0)|0}function sR(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,qA(n[s>>2]|0,y(l),y(c),f)}function oR(s){return s=s|0,+ +y(vc(n[s>>2]|0))}function v(s){return s=s|0,+ +y(Bu(n[s>>2]|0))}function P(s){return s=s|0,+ +y(Dc(n[s>>2]|0))}function Q(s){return s=s|0,+ +y(gs(n[s>>2]|0))}function H(s){return s=s|0,+ +y(Pc(n[s>>2]|0))}function Y(s){return s=s|0,+ +y(On(n[s>>2]|0))}function ne(s,l){s=s|0,l=l|0,E[s>>3]=+y(vc(n[l>>2]|0)),E[s+8>>3]=+y(Bu(n[l>>2]|0)),E[s+16>>3]=+y(Dc(n[l>>2]|0)),E[s+24>>3]=+y(gs(n[l>>2]|0)),E[s+32>>3]=+y(Pc(n[l>>2]|0)),E[s+40>>3]=+y(On(n[l>>2]|0))}function Be(s,l){return s=s|0,l=l|0,+ +y(ji(n[s>>2]|0,l))}function Ue(s,l){return s=s|0,l=l|0,+ +y(Ci(n[s>>2]|0,l))}function ft(s,l){return s=s|0,l=l|0,+ +y(HA(n[s>>2]|0,l))}function jt(){return Dn()|0}function wr(){Tr(),Xt(),jn(),li(),Ea(),$e()}function Tr(){SNe(11713,4938,1)}function Xt(){YTe(10448)}function jn(){STe(10408)}function li(){zRe(10324)}function Ea(){iFe(10096)}function $e(){je(9132)}function je(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=0,lo=0,co=0,uo=0,Ia=0,Np=0,Lp=0,kl=0,Op=0,Lu=0,Ou=0,Mp=0,Up=0,_p=0,$r=0,Ql=0,Hp=0,Nc=0,qp=0,jp=0,Mu=0,Uu=0,Lc=0,Ms=0,rl=0,Go=0,Fl=0,rf=0,nf=0,_u=0,sf=0,of=0,Us=0,Cs=0,Rl=0,Un=0,af=0,Ao=0,Oc=0,fo=0,Mc=0,lf=0,cf=0,Uc=0,_s=0,Tl=0,uf=0,Af=0,ff=0,Fr=0,ri=0,Is=0,po=0,Hs=0,Nr=0,Ar=0,Nl=0;l=C,C=C+672|0,c=l+656|0,Nl=l+648|0,Ar=l+640|0,Nr=l+632|0,Hs=l+624|0,po=l+616|0,Is=l+608|0,ri=l+600|0,Fr=l+592|0,ff=l+584|0,Af=l+576|0,uf=l+568|0,Tl=l+560|0,_s=l+552|0,Uc=l+544|0,cf=l+536|0,lf=l+528|0,Mc=l+520|0,fo=l+512|0,Oc=l+504|0,Ao=l+496|0,af=l+488|0,Un=l+480|0,Rl=l+472|0,Cs=l+464|0,Us=l+456|0,of=l+448|0,sf=l+440|0,_u=l+432|0,nf=l+424|0,rf=l+416|0,Fl=l+408|0,Go=l+400|0,rl=l+392|0,Ms=l+384|0,Lc=l+376|0,Uu=l+368|0,Mu=l+360|0,jp=l+352|0,qp=l+344|0,Nc=l+336|0,Hp=l+328|0,Ql=l+320|0,$r=l+312|0,_p=l+304|0,Up=l+296|0,Mp=l+288|0,Ou=l+280|0,Lu=l+272|0,Op=l+264|0,kl=l+256|0,Lp=l+248|0,Np=l+240|0,Ia=l+232|0,uo=l+224|0,co=l+216|0,lo=l+208|0,Nn=l+200|0,lr=l+192|0,Or=l+184|0,kr=l+176|0,Zt=l+168|0,ur=l+160|0,_r=l+152|0,Lt=l+144|0,Ge=l+136|0,_e=l+128|0,ct=l+120|0,Xe=l+112|0,rt=l+104|0,Qe=l+96|0,Oe=l+88|0,We=l+80|0,oe=l+72|0,j=l+64|0,O=l+56|0,M=l+48|0,F=l+40|0,k=l+32|0,B=l+24|0,m=l+16|0,d=l+8|0,f=l,pt(s,3646),zt(s,3651,2)|0,Br(s,3665,2)|0,Wn(s,3682,18)|0,n[Nl>>2]=19,n[Nl+4>>2]=0,n[c>>2]=n[Nl>>2],n[c+4>>2]=n[Nl+4>>2],br(s,3690,c)|0,n[Ar>>2]=1,n[Ar+4>>2]=0,n[c>>2]=n[Ar>>2],n[c+4>>2]=n[Ar+4>>2],Sn(s,3696,c)|0,n[Nr>>2]=2,n[Nr+4>>2]=0,n[c>>2]=n[Nr>>2],n[c+4>>2]=n[Nr+4>>2],Tn(s,3706,c)|0,n[Hs>>2]=1,n[Hs+4>>2]=0,n[c>>2]=n[Hs>>2],n[c+4>>2]=n[Hs+4>>2],Yr(s,3722,c)|0,n[po>>2]=2,n[po+4>>2]=0,n[c>>2]=n[po>>2],n[c+4>>2]=n[po+4>>2],Yr(s,3734,c)|0,n[Is>>2]=3,n[Is+4>>2]=0,n[c>>2]=n[Is>>2],n[c+4>>2]=n[Is+4>>2],Tn(s,3753,c)|0,n[ri>>2]=4,n[ri+4>>2]=0,n[c>>2]=n[ri>>2],n[c+4>>2]=n[ri+4>>2],Tn(s,3769,c)|0,n[Fr>>2]=5,n[Fr+4>>2]=0,n[c>>2]=n[Fr>>2],n[c+4>>2]=n[Fr+4>>2],Tn(s,3783,c)|0,n[ff>>2]=6,n[ff+4>>2]=0,n[c>>2]=n[ff>>2],n[c+4>>2]=n[ff+4>>2],Tn(s,3796,c)|0,n[Af>>2]=7,n[Af+4>>2]=0,n[c>>2]=n[Af>>2],n[c+4>>2]=n[Af+4>>2],Tn(s,3813,c)|0,n[uf>>2]=8,n[uf+4>>2]=0,n[c>>2]=n[uf>>2],n[c+4>>2]=n[uf+4>>2],Tn(s,3825,c)|0,n[Tl>>2]=3,n[Tl+4>>2]=0,n[c>>2]=n[Tl>>2],n[c+4>>2]=n[Tl+4>>2],Yr(s,3843,c)|0,n[_s>>2]=4,n[_s+4>>2]=0,n[c>>2]=n[_s>>2],n[c+4>>2]=n[_s+4>>2],Yr(s,3853,c)|0,n[Uc>>2]=9,n[Uc+4>>2]=0,n[c>>2]=n[Uc>>2],n[c+4>>2]=n[Uc+4>>2],Tn(s,3870,c)|0,n[cf>>2]=10,n[cf+4>>2]=0,n[c>>2]=n[cf>>2],n[c+4>>2]=n[cf+4>>2],Tn(s,3884,c)|0,n[lf>>2]=11,n[lf+4>>2]=0,n[c>>2]=n[lf>>2],n[c+4>>2]=n[lf+4>>2],Tn(s,3896,c)|0,n[Mc>>2]=1,n[Mc+4>>2]=0,n[c>>2]=n[Mc>>2],n[c+4>>2]=n[Mc+4>>2],ti(s,3907,c)|0,n[fo>>2]=2,n[fo+4>>2]=0,n[c>>2]=n[fo>>2],n[c+4>>2]=n[fo+4>>2],ti(s,3915,c)|0,n[Oc>>2]=3,n[Oc+4>>2]=0,n[c>>2]=n[Oc>>2],n[c+4>>2]=n[Oc+4>>2],ti(s,3928,c)|0,n[Ao>>2]=4,n[Ao+4>>2]=0,n[c>>2]=n[Ao>>2],n[c+4>>2]=n[Ao+4>>2],ti(s,3948,c)|0,n[af>>2]=5,n[af+4>>2]=0,n[c>>2]=n[af>>2],n[c+4>>2]=n[af+4>>2],ti(s,3960,c)|0,n[Un>>2]=6,n[Un+4>>2]=0,n[c>>2]=n[Un>>2],n[c+4>>2]=n[Un+4>>2],ti(s,3974,c)|0,n[Rl>>2]=7,n[Rl+4>>2]=0,n[c>>2]=n[Rl>>2],n[c+4>>2]=n[Rl+4>>2],ti(s,3983,c)|0,n[Cs>>2]=20,n[Cs+4>>2]=0,n[c>>2]=n[Cs>>2],n[c+4>>2]=n[Cs+4>>2],br(s,3999,c)|0,n[Us>>2]=8,n[Us+4>>2]=0,n[c>>2]=n[Us>>2],n[c+4>>2]=n[Us+4>>2],ti(s,4012,c)|0,n[of>>2]=9,n[of+4>>2]=0,n[c>>2]=n[of>>2],n[c+4>>2]=n[of+4>>2],ti(s,4022,c)|0,n[sf>>2]=21,n[sf+4>>2]=0,n[c>>2]=n[sf>>2],n[c+4>>2]=n[sf+4>>2],br(s,4039,c)|0,n[_u>>2]=10,n[_u+4>>2]=0,n[c>>2]=n[_u>>2],n[c+4>>2]=n[_u+4>>2],ti(s,4053,c)|0,n[nf>>2]=11,n[nf+4>>2]=0,n[c>>2]=n[nf>>2],n[c+4>>2]=n[nf+4>>2],ti(s,4065,c)|0,n[rf>>2]=12,n[rf+4>>2]=0,n[c>>2]=n[rf>>2],n[c+4>>2]=n[rf+4>>2],ti(s,4084,c)|0,n[Fl>>2]=13,n[Fl+4>>2]=0,n[c>>2]=n[Fl>>2],n[c+4>>2]=n[Fl+4>>2],ti(s,4097,c)|0,n[Go>>2]=14,n[Go+4>>2]=0,n[c>>2]=n[Go>>2],n[c+4>>2]=n[Go+4>>2],ti(s,4117,c)|0,n[rl>>2]=15,n[rl+4>>2]=0,n[c>>2]=n[rl>>2],n[c+4>>2]=n[rl+4>>2],ti(s,4129,c)|0,n[Ms>>2]=16,n[Ms+4>>2]=0,n[c>>2]=n[Ms>>2],n[c+4>>2]=n[Ms+4>>2],ti(s,4148,c)|0,n[Lc>>2]=17,n[Lc+4>>2]=0,n[c>>2]=n[Lc>>2],n[c+4>>2]=n[Lc+4>>2],ti(s,4161,c)|0,n[Uu>>2]=18,n[Uu+4>>2]=0,n[c>>2]=n[Uu>>2],n[c+4>>2]=n[Uu+4>>2],ti(s,4181,c)|0,n[Mu>>2]=5,n[Mu+4>>2]=0,n[c>>2]=n[Mu>>2],n[c+4>>2]=n[Mu+4>>2],Yr(s,4196,c)|0,n[jp>>2]=6,n[jp+4>>2]=0,n[c>>2]=n[jp>>2],n[c+4>>2]=n[jp+4>>2],Yr(s,4206,c)|0,n[qp>>2]=7,n[qp+4>>2]=0,n[c>>2]=n[qp>>2],n[c+4>>2]=n[qp+4>>2],Yr(s,4217,c)|0,n[Nc>>2]=3,n[Nc+4>>2]=0,n[c>>2]=n[Nc>>2],n[c+4>>2]=n[Nc+4>>2],Rc(s,4235,c)|0,n[Hp>>2]=1,n[Hp+4>>2]=0,n[c>>2]=n[Hp>>2],n[c+4>>2]=n[Hp+4>>2],aR(s,4251,c)|0,n[Ql>>2]=4,n[Ql+4>>2]=0,n[c>>2]=n[Ql>>2],n[c+4>>2]=n[Ql+4>>2],Rc(s,4263,c)|0,n[$r>>2]=5,n[$r+4>>2]=0,n[c>>2]=n[$r>>2],n[c+4>>2]=n[$r+4>>2],Rc(s,4279,c)|0,n[_p>>2]=6,n[_p+4>>2]=0,n[c>>2]=n[_p>>2],n[c+4>>2]=n[_p+4>>2],Rc(s,4293,c)|0,n[Up>>2]=7,n[Up+4>>2]=0,n[c>>2]=n[Up>>2],n[c+4>>2]=n[Up+4>>2],Rc(s,4306,c)|0,n[Mp>>2]=8,n[Mp+4>>2]=0,n[c>>2]=n[Mp>>2],n[c+4>>2]=n[Mp+4>>2],Rc(s,4323,c)|0,n[Ou>>2]=9,n[Ou+4>>2]=0,n[c>>2]=n[Ou>>2],n[c+4>>2]=n[Ou+4>>2],Rc(s,4335,c)|0,n[Lu>>2]=2,n[Lu+4>>2]=0,n[c>>2]=n[Lu>>2],n[c+4>>2]=n[Lu+4>>2],aR(s,4353,c)|0,n[Op>>2]=12,n[Op+4>>2]=0,n[c>>2]=n[Op>>2],n[c+4>>2]=n[Op+4>>2],Q0(s,4363,c)|0,n[kl>>2]=1,n[kl+4>>2]=0,n[c>>2]=n[kl>>2],n[c+4>>2]=n[kl+4>>2],zA(s,4376,c)|0,n[Lp>>2]=2,n[Lp+4>>2]=0,n[c>>2]=n[Lp>>2],n[c+4>>2]=n[Lp+4>>2],zA(s,4388,c)|0,n[Np>>2]=13,n[Np+4>>2]=0,n[c>>2]=n[Np>>2],n[c+4>>2]=n[Np+4>>2],Q0(s,4402,c)|0,n[Ia>>2]=14,n[Ia+4>>2]=0,n[c>>2]=n[Ia>>2],n[c+4>>2]=n[Ia+4>>2],Q0(s,4411,c)|0,n[uo>>2]=15,n[uo+4>>2]=0,n[c>>2]=n[uo>>2],n[c+4>>2]=n[uo+4>>2],Q0(s,4421,c)|0,n[co>>2]=16,n[co+4>>2]=0,n[c>>2]=n[co>>2],n[c+4>>2]=n[co+4>>2],Q0(s,4433,c)|0,n[lo>>2]=17,n[lo+4>>2]=0,n[c>>2]=n[lo>>2],n[c+4>>2]=n[lo+4>>2],Q0(s,4446,c)|0,n[Nn>>2]=18,n[Nn+4>>2]=0,n[c>>2]=n[Nn>>2],n[c+4>>2]=n[Nn+4>>2],Q0(s,4458,c)|0,n[lr>>2]=3,n[lr+4>>2]=0,n[c>>2]=n[lr>>2],n[c+4>>2]=n[lr+4>>2],zA(s,4471,c)|0,n[Or>>2]=1,n[Or+4>>2]=0,n[c>>2]=n[Or>>2],n[c+4>>2]=n[Or+4>>2],QD(s,4486,c)|0,n[kr>>2]=10,n[kr+4>>2]=0,n[c>>2]=n[kr>>2],n[c+4>>2]=n[kr+4>>2],Rc(s,4496,c)|0,n[Zt>>2]=11,n[Zt+4>>2]=0,n[c>>2]=n[Zt>>2],n[c+4>>2]=n[Zt+4>>2],Rc(s,4508,c)|0,n[ur>>2]=3,n[ur+4>>2]=0,n[c>>2]=n[ur>>2],n[c+4>>2]=n[ur+4>>2],aR(s,4519,c)|0,n[_r>>2]=4,n[_r+4>>2]=0,n[c>>2]=n[_r>>2],n[c+4>>2]=n[_r+4>>2],Nve(s,4530,c)|0,n[Lt>>2]=19,n[Lt+4>>2]=0,n[c>>2]=n[Lt>>2],n[c+4>>2]=n[Lt+4>>2],Lve(s,4542,c)|0,n[Ge>>2]=12,n[Ge+4>>2]=0,n[c>>2]=n[Ge>>2],n[c+4>>2]=n[Ge+4>>2],Ove(s,4554,c)|0,n[_e>>2]=13,n[_e+4>>2]=0,n[c>>2]=n[_e>>2],n[c+4>>2]=n[_e+4>>2],Mve(s,4568,c)|0,n[ct>>2]=2,n[ct+4>>2]=0,n[c>>2]=n[ct>>2],n[c+4>>2]=n[ct+4>>2],Uve(s,4578,c)|0,n[Xe>>2]=20,n[Xe+4>>2]=0,n[c>>2]=n[Xe>>2],n[c+4>>2]=n[Xe+4>>2],_ve(s,4587,c)|0,n[rt>>2]=22,n[rt+4>>2]=0,n[c>>2]=n[rt>>2],n[c+4>>2]=n[rt+4>>2],br(s,4602,c)|0,n[Qe>>2]=23,n[Qe+4>>2]=0,n[c>>2]=n[Qe>>2],n[c+4>>2]=n[Qe+4>>2],br(s,4619,c)|0,n[Oe>>2]=14,n[Oe+4>>2]=0,n[c>>2]=n[Oe>>2],n[c+4>>2]=n[Oe+4>>2],Hve(s,4629,c)|0,n[We>>2]=1,n[We+4>>2]=0,n[c>>2]=n[We>>2],n[c+4>>2]=n[We+4>>2],qve(s,4637,c)|0,n[oe>>2]=4,n[oe+4>>2]=0,n[c>>2]=n[oe>>2],n[c+4>>2]=n[oe+4>>2],zA(s,4653,c)|0,n[j>>2]=5,n[j+4>>2]=0,n[c>>2]=n[j>>2],n[c+4>>2]=n[j+4>>2],zA(s,4669,c)|0,n[O>>2]=6,n[O+4>>2]=0,n[c>>2]=n[O>>2],n[c+4>>2]=n[O+4>>2],zA(s,4686,c)|0,n[M>>2]=7,n[M+4>>2]=0,n[c>>2]=n[M>>2],n[c+4>>2]=n[M+4>>2],zA(s,4701,c)|0,n[F>>2]=8,n[F+4>>2]=0,n[c>>2]=n[F>>2],n[c+4>>2]=n[F+4>>2],zA(s,4719,c)|0,n[k>>2]=9,n[k+4>>2]=0,n[c>>2]=n[k>>2],n[c+4>>2]=n[k+4>>2],zA(s,4736,c)|0,n[B>>2]=21,n[B+4>>2]=0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],jve(s,4754,c)|0,n[m>>2]=2,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],QD(s,4772,c)|0,n[d>>2]=3,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],QD(s,4790,c)|0,n[f>>2]=4,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],QD(s,4808,c)|0,C=l}function pt(s,l){s=s|0,l=l|0;var c=0;c=JQe()|0,n[s>>2]=c,zQe(c,l),Fp(n[s>>2]|0)}function zt(s,l,c){return s=s|0,l=l|0,c=c|0,NQe(s,mn(l)|0,c,0),s|0}function Br(s,l,c){return s=s|0,l=l|0,c=c|0,EQe(s,mn(l)|0,c,0),s|0}function Wn(s,l,c){return s=s|0,l=l|0,c=c|0,sQe(s,mn(l)|0,c,0),s|0}function br(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jke(s,l,d),C=f,s|0}function Sn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vke(s,l,d),C=f,s|0}function Tn(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lke(s,l,d),C=f,s|0}function Yr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Yxe(s,l,d),C=f,s|0}function ti(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kxe(s,l,d),C=f,s|0}function Rc(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hxe(s,l,d),C=f,s|0}function aR(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Zbe(s,l,d),C=f,s|0}function Q0(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vbe(s,l,d),C=f,s|0}function zA(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],lbe(s,l,d),C=f,s|0}function QD(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YSe(s,l,d),C=f,s|0}function Nve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],kSe(s,l,d),C=f,s|0}function Lve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],hSe(s,l,d),C=f,s|0}function Ove(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$Pe(s,l,d),C=f,s|0}function Mve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],MPe(s,l,d),C=f,s|0}function Uve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],IPe(s,l,d),C=f,s|0}function _ve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],iPe(s,l,d),C=f,s|0}function Hve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qDe(s,l,d),C=f,s|0}function qve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],vDe(s,l,d),C=f,s|0}function jve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Gve(s,l,d),C=f,s|0}function Gve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Wve(s,c,d,1),C=f}function mn(s){return s=s|0,s|0}function Wve(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=lR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Yve(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Kve(m,f)|0,f),C=d}function lR(){var s=0,l=0;if(o[7616]|0||(NG(9136),pr(24,9136,U|0)|0,l=7616,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9136)|0)){s=9136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));NG(9136)}return 9136}function Yve(s){return s=s|0,0}function Kve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=lR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],TG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zve(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function yn(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0;B=C,C=C+32|0,oe=B+24|0,j=B+20|0,F=B+16|0,O=B+12|0,M=B+8|0,k=B+4|0,We=B,n[j>>2]=l,n[F>>2]=c,n[O>>2]=f,n[M>>2]=d,n[k>>2]=m,m=s+28|0,n[We>>2]=n[m>>2],n[oe>>2]=n[We>>2],Vve(s+24|0,oe,j,O,M,F,k)|0,n[m>>2]=n[n[m>>2]>>2],C=B}function Vve(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,s=Jve(l)|0,l=Yt(24)|0,RG(l+4|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0,n[B>>2]|0),n[l>>2]=n[s>>2],n[s>>2]=l,l|0}function Jve(s){return s=s|0,n[s>>2]|0}function RG(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function dr(s,l){return s=s|0,l=l|0,l|s|0}function TG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zve(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Xve(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Zve(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],TG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$ve(s,k),eDe(k),C=M;return}}function Xve(s){return s=s|0,357913941}function Zve(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $ve(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function NG(s){s=s|0,nDe(s)}function tDe(s){s=s|0,rDe(s+24|0)}function Lr(s){return s=s|0,n[s>>2]|0}function rDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nDe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,3,l,iDe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Jr(){return 9228}function iDe(){return 1140}function sDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=oDe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=aDe(l,f)|0,C=c,l|0}function zr(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,n[s>>2]=l,n[s+4>>2]=c,n[s+8>>2]=f,n[s+12>>2]=d,n[s+16>>2]=m}function oDe(s){return s=s|0,(n[(lR()|0)+24>>2]|0)+(s*12|0)|0}function aDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+48|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=lDe(f)|0,C=d,f|0}function lDe(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=cR(LG()|0)|0,f?(uR(l,f),AR(c,l),cDe(s,c),s=fR(l)|0):s=uDe(s)|0,C=d,s|0}function LG(){var s=0;return o[7632]|0||(CDe(9184),pr(25,9184,U|0)|0,s=7632,n[s>>2]=1,n[s+4>>2]=0),9184}function cR(s){return s=s|0,n[s+36>>2]|0}function uR(s,l){s=s|0,l=l|0,n[s>>2]=l,n[s+4>>2]=s,n[s+8>>2]=0}function AR(s,l){s=s|0,l=l|0,n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=0}function cDe(s,l){s=s|0,l=l|0,hDe(l,s,s+8|0,s+16|0,s+24|0,s+32|0,s+40|0)|0}function fR(s){return s=s|0,n[(n[s+4>>2]|0)+8>>2]|0}function uDe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0;F=C,C=C+16|0,c=F+4|0,f=F,d=Za(8)|0,m=d,B=Yt(48)|0,k=B,l=k+48|0;do n[k>>2]=n[s>>2],k=k+4|0,s=s+4|0;while((k|0)<(l|0));return l=m+4|0,n[l>>2]=B,k=Yt(8)|0,B=n[l>>2]|0,n[f>>2]=0,n[c>>2]=n[f>>2],OG(k,B,c),n[d>>2]=k,C=F,m|0}function OG(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1092,n[c+12>>2]=l,n[s+4>>2]=c}function ADe(s){s=s|0,im(s),yt(s)}function fDe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function pDe(s){s=s|0,yt(s)}function hDe(s,l,c,f,d,m,B){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,m=gDe(n[s>>2]|0,l,c,f,d,m,B)|0,B=s+4|0,n[(n[B>>2]|0)+8>>2]=m,n[(n[B>>2]|0)+8>>2]|0}function gDe(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0;var k=0,F=0;return k=C,C=C+16|0,F=k,$a(F),s=ys(s)|0,B=dDe(s,+E[l>>3],+E[c>>3],+E[f>>3],+E[d>>3],+E[m>>3],+E[B>>3])|0,el(F),C=k,B|0}function dDe(s,l,c,f,d,m,B){s=s|0,l=+l,c=+c,f=+f,d=+d,m=+m,B=+B;var k=0;return k=jo(mDe()|0)|0,l=+ma(l),c=+ma(c),f=+ma(f),d=+ma(d),m=+ma(m),Ts(0,k|0,s|0,+l,+c,+f,+d,+m,+ +ma(B))|0}function mDe(){var s=0;return o[7624]|0||(yDe(9172),s=7624,n[s>>2]=1,n[s+4>>2]=0),9172}function yDe(s){s=s|0,ao(s,EDe()|0,6)}function EDe(){return 1112}function CDe(s){s=s|0,Sp(s)}function IDe(s){s=s|0,MG(s+24|0),UG(s+16|0)}function MG(s){s=s|0,BDe(s)}function UG(s){s=s|0,wDe(s)}function wDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,yt(c);while(l|0);n[s>>2]=0}function BDe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,yt(c);while(l|0);n[s>>2]=0}function Sp(s){s=s|0;var l=0;n[s+16>>2]=0,n[s+20>>2]=0,l=s+24|0,n[l>>2]=0,n[s+28>>2]=l,n[s+36>>2]=0,o[s+40>>0]=0,o[s+41>>0]=0}function vDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],DDe(s,c,d,0),C=f}function DDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=pR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=PDe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,SDe(m,f)|0,f),C=d}function pR(){var s=0,l=0;if(o[7640]|0||(HG(9232),pr(26,9232,U|0)|0,l=7640,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9232)|0)){s=9232,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));HG(9232)}return 9232}function PDe(s){return s=s|0,0}function SDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=pR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_G(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bDe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _G(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xDe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,kDe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_G(m,f,c),n[F>>2]=(n[F>>2]|0)+12,QDe(s,k),FDe(k),C=M;return}}function xDe(s){return s=s|0,357913941}function kDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function QDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function FDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function HG(s){s=s|0,NDe(s)}function RDe(s){s=s|0,TDe(s+24|0)}function TDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function NDe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,LDe()|0,3),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function LDe(){return 1144}function ODe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,F=0;m=C,C=C+16|0,B=m+8|0,k=m,F=MDe(s)|0,s=n[F+4>>2]|0,n[k>>2]=n[F>>2],n[k+4>>2]=s,n[B>>2]=n[k>>2],n[B+4>>2]=n[k+4>>2],UDe(l,B,c,f,d),C=m}function MDe(s){return s=s|0,(n[(pR()|0)+24>>2]|0)+(s*12|0)|0}function UDe(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0;var m=0,B=0,k=0,F=0,M=0;M=C,C=C+16|0,B=M+2|0,k=M+1|0,F=M,m=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(m=n[(n[s>>2]|0)+m>>2]|0),Tu(B,c),c=+Nu(B,c),Tu(k,f),f=+Nu(k,f),XA(F,d),F=ZA(F,d)|0,rW[m&1](s,c,f,F),C=M}function Tu(s,l){s=s|0,l=+l}function Nu(s,l){return s=s|0,l=+l,+ +HDe(l)}function XA(s,l){s=s|0,l=l|0}function ZA(s,l){return s=s|0,l=l|0,_De(l)|0}function _De(s){return s=s|0,s|0}function HDe(s){return s=+s,+s}function qDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],jDe(s,c,d,1),C=f}function jDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=hR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=GDe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,WDe(m,f)|0,f),C=d}function hR(){var s=0,l=0;if(o[7648]|0||(jG(9268),pr(27,9268,U|0)|0,l=7648,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9268)|0)){s=9268,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));jG(9268)}return 9268}function GDe(s){return s=s|0,0}function WDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=hR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],qG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(YDe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function qG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function YDe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=KDe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,VDe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],qG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,JDe(s,k),zDe(k),C=M;return}}function KDe(s){return s=s|0,357913941}function VDe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function JDe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function zDe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function jG(s){s=s|0,$De(s)}function XDe(s){s=s|0,ZDe(s+24|0)}function ZDe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function $De(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,4,l,ePe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ePe(){return 1160}function tPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=rPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=nPe(l,f)|0,C=c,l|0}function rPe(s){return s=s|0,(n[(hR()|0)+24>>2]|0)+(s*12|0)|0}function nPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),GG(_0[c&31](s)|0)|0}function GG(s){return s=s|0,s&1|0}function iPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],sPe(s,c,d,0),C=f}function sPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=gR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=oPe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,aPe(m,f)|0,f),C=d}function gR(){var s=0,l=0;if(o[7656]|0||(YG(9304),pr(28,9304,U|0)|0,l=7656,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9304)|0)){s=9304,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));YG(9304)}return 9304}function oPe(s){return s=s|0,0}function aPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=gR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],WG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(lPe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function WG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function lPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=cPe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,uPe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],WG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,APe(s,k),fPe(k),C=M;return}}function cPe(s){return s=s|0,357913941}function uPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function APe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function YG(s){s=s|0,gPe(s)}function pPe(s){s=s|0,hPe(s+24|0)}function hPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function gPe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,dPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dPe(){return 1164}function mPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=yPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],EPe(l,d,c),C=f}function yPe(s){return s=s|0,(n[(gR()|0)+24>>2]|0)+(s*12|0)|0}function EPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),bp(d,c),c=xp(d,c)|0,tf[f&31](s,c),kp(d),C=m}function bp(s,l){s=s|0,l=l|0,CPe(s,l)}function xp(s,l){return s=s|0,l=l|0,s|0}function kp(s){s=s|0,bu(s)}function CPe(s,l){s=s|0,l=l|0,dR(s,l)}function dR(s,l){s=s|0,l=l|0,n[s>>2]=l}function IPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],wPe(s,c,d,0),C=f}function wPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=mR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=BPe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,vPe(m,f)|0,f),C=d}function mR(){var s=0,l=0;if(o[7664]|0||(VG(9340),pr(29,9340,U|0)|0,l=7664,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9340)|0)){s=9340,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));VG(9340)}return 9340}function BPe(s){return s=s|0,0}function vPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=mR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],KG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(DPe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function KG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function DPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=PPe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,SPe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],KG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,bPe(s,k),xPe(k),C=M;return}}function PPe(s){return s=s|0,357913941}function SPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function bPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function xPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function VG(s){s=s|0,FPe(s)}function kPe(s){s=s|0,QPe(s+24|0)}function QPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function FPe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,4,l,RPe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RPe(){return 1180}function TPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=NPe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=LPe(l,d,c)|0,C=f,c|0}function NPe(s){return s=s|0,(n[(mR()|0)+24>>2]|0)+(s*12|0)|0}function LPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),F0(d,c),d=R0(d,c)|0,d=FD(pT[f&15](s,d)|0)|0,C=m,d|0}function F0(s,l){s=s|0,l=l|0}function R0(s,l){return s=s|0,l=l|0,OPe(l)|0}function FD(s){return s=s|0,s|0}function OPe(s){return s=s|0,s|0}function MPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],UPe(s,c,d,0),C=f}function UPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=yR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=_Pe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,HPe(m,f)|0,f),C=d}function yR(){var s=0,l=0;if(o[7672]|0||(zG(9376),pr(30,9376,U|0)|0,l=7672,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9376)|0)){s=9376,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));zG(9376)}return 9376}function _Pe(s){return s=s|0,0}function HPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=yR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],JG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(qPe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function JG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function qPe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=jPe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,GPe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],JG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,WPe(s,k),YPe(k),C=M;return}}function jPe(s){return s=s|0,357913941}function GPe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function WPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function YPe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function zG(s){s=s|0,JPe(s)}function KPe(s){s=s|0,VPe(s+24|0)}function VPe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function JPe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,XG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function XG(){return 1196}function zPe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=XPe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=ZPe(l,f)|0,C=c,l|0}function XPe(s){return s=s|0,(n[(yR()|0)+24>>2]|0)+(s*12|0)|0}function ZPe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),FD(_0[c&31](s)|0)|0}function $Pe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],eSe(s,c,d,1),C=f}function eSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=ER()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=tSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,rSe(m,f)|0,f),C=d}function ER(){var s=0,l=0;if(o[7680]|0||($G(9412),pr(31,9412,U|0)|0,l=7680,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9412)|0)){s=9412,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));$G(9412)}return 9412}function tSe(s){return s=s|0,0}function rSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=ER()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],ZG(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(nSe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function ZG(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function nSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=iSe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,sSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],ZG(m,f,c),n[F>>2]=(n[F>>2]|0)+12,oSe(s,k),aSe(k),C=M;return}}function iSe(s){return s=s|0,357913941}function sSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function oSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function aSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function $G(s){s=s|0,uSe(s)}function lSe(s){s=s|0,cSe(s+24|0)}function cSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function uSe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,6,l,e9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function e9(){return 1200}function ASe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=fSe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=pSe(l,f)|0,C=c,l|0}function fSe(s){return s=s|0,(n[(ER()|0)+24>>2]|0)+(s*12|0)|0}function pSe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),RD(_0[c&31](s)|0)|0}function RD(s){return s=s|0,s|0}function hSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],gSe(s,c,d,0),C=f}function gSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=CR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=dSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,mSe(m,f)|0,f),C=d}function CR(){var s=0,l=0;if(o[7688]|0||(r9(9448),pr(32,9448,U|0)|0,l=7688,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9448)|0)){s=9448,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));r9(9448)}return 9448}function dSe(s){return s=s|0,0}function mSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=CR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],t9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(ySe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function t9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function ySe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=ESe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,CSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],t9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,ISe(s,k),wSe(k),C=M;return}}function ESe(s){return s=s|0,357913941}function CSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function ISe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function r9(s){s=s|0,DSe(s)}function BSe(s){s=s|0,vSe(s+24|0)}function vSe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function DSe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,6,l,n9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function n9(){return 1204}function PSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=SSe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bSe(l,d,c),C=f}function SSe(s){return s=s|0,(n[(CR()|0)+24>>2]|0)+(s*12|0)|0}function bSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),IR(d,c),d=wR(d,c)|0,tf[f&31](s,d),C=m}function IR(s,l){s=s|0,l=l|0}function wR(s,l){return s=s|0,l=l|0,xSe(l)|0}function xSe(s){return s=s|0,s|0}function kSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],QSe(s,c,d,0),C=f}function QSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=BR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=FSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,RSe(m,f)|0,f),C=d}function BR(){var s=0,l=0;if(o[7696]|0||(s9(9484),pr(33,9484,U|0)|0,l=7696,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9484)|0)){s=9484,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));s9(9484)}return 9484}function FSe(s){return s=s|0,0}function RSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=BR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],i9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(TSe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function i9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function TSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=NSe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,LSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],i9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,OSe(s,k),MSe(k),C=M;return}}function NSe(s){return s=s|0,357913941}function LSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function OSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function MSe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function s9(s){s=s|0,HSe(s)}function USe(s){s=s|0,_Se(s+24|0)}function _Se(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function HSe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,qSe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qSe(){return 1212}function jSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=GSe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],WSe(l,m,c,f),C=d}function GSe(s){return s=s|0,(n[(BR()|0)+24>>2]|0)+(s*12|0)|0}function WSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),IR(m,c),m=wR(m,c)|0,F0(B,f),B=R0(B,f)|0,sw[d&15](s,m,B),C=k}function YSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KSe(s,c,d,1),C=f}function KSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=vR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=VSe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,JSe(m,f)|0,f),C=d}function vR(){var s=0,l=0;if(o[7704]|0||(a9(9520),pr(34,9520,U|0)|0,l=7704,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9520)|0)){s=9520,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));a9(9520)}return 9520}function VSe(s){return s=s|0,0}function JSe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=vR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],o9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zSe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function o9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zSe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=XSe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,ZSe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],o9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$Se(s,k),ebe(k),C=M;return}}function XSe(s){return s=s|0,357913941}function ZSe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $Se(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function ebe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function a9(s){s=s|0,nbe(s)}function tbe(s){s=s|0,rbe(s+24|0)}function rbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nbe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,ibe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ibe(){return 1224}function sbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;return d=C,C=C+16|0,m=d+8|0,B=d,k=obe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],f=+abe(l,m,c),C=d,+f}function obe(s){return s=s|0,(n[(vR()|0)+24>>2]|0)+(s*12|0)|0}function abe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,B=+Ru(+iW[f&7](s,d)),C=m,+B}function lbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cbe(s,c,d,1),C=f}function cbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=DR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=ube(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Abe(m,f)|0,f),C=d}function DR(){var s=0,l=0;if(o[7712]|0||(c9(9556),pr(35,9556,U|0)|0,l=7712,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9556)|0)){s=9556,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));c9(9556)}return 9556}function ube(s){return s=s|0,0}function Abe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=DR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],l9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(fbe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function l9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function fbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=pbe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,hbe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],l9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,gbe(s,k),dbe(k),C=M;return}}function pbe(s){return s=s|0,357913941}function hbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function gbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function c9(s){s=s|0,Ebe(s)}function mbe(s){s=s|0,ybe(s+24|0)}function ybe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Ebe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,Cbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Cbe(){return 1232}function Ibe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=wbe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=+Bbe(l,d),C=f,+c}function wbe(s){return s=s|0,(n[(DR()|0)+24>>2]|0)+(s*12|0)|0}function Bbe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),+ +Ru(+nW[c&15](s))}function vbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Dbe(s,c,d,1),C=f}function Dbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=PR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Pbe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Sbe(m,f)|0,f),C=d}function PR(){var s=0,l=0;if(o[7720]|0||(A9(9592),pr(36,9592,U|0)|0,l=7720,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9592)|0)){s=9592,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));A9(9592)}return 9592}function Pbe(s){return s=s|0,0}function Sbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=PR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],u9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bbe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function u9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xbe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,kbe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],u9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Qbe(s,k),Fbe(k),C=M;return}}function xbe(s){return s=s|0,357913941}function kbe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Qbe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Fbe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function A9(s){s=s|0,Nbe(s)}function Rbe(s){s=s|0,Tbe(s+24|0)}function Tbe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Nbe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,7,l,Lbe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Lbe(){return 1276}function Obe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=Mbe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=Ube(l,f)|0,C=c,l|0}function Mbe(s){return s=s|0,(n[(PR()|0)+24>>2]|0)+(s*12|0)|0}function Ube(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;return d=C,C=C+16|0,f=d,c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),tf[c&31](f,s),f=f9(f)|0,C=d,f|0}function f9(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=cR(p9()|0)|0,f?(uR(l,f),AR(c,l),_be(s,c),s=fR(l)|0):s=Hbe(s)|0,C=d,s|0}function p9(){var s=0;return o[7736]|0||(Xbe(9640),pr(25,9640,U|0)|0,s=7736,n[s>>2]=1,n[s+4>>2]=0),9640}function _be(s,l){s=s|0,l=l|0,Wbe(l,s,s+8|0)|0}function Hbe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Za(8)|0,l=f,k=Yt(16)|0,n[k>>2]=n[s>>2],n[k+4>>2]=n[s+4>>2],n[k+8>>2]=n[s+8>>2],n[k+12>>2]=n[s+12>>2],m=l+4|0,n[m>>2]=k,s=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],SR(s,m,d),n[f>>2]=s,C=c,l|0}function SR(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1244,n[c+12>>2]=l,n[s+4>>2]=c}function qbe(s){s=s|0,im(s),yt(s)}function jbe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function Gbe(s){s=s|0,yt(s)}function Wbe(s,l,c){return s=s|0,l=l|0,c=c|0,l=Ybe(n[s>>2]|0,l,c)|0,c=s+4|0,n[(n[c>>2]|0)+8>>2]=l,n[(n[c>>2]|0)+8>>2]|0}function Ybe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return f=C,C=C+16|0,d=f,$a(d),s=ys(s)|0,c=Kbe(s,n[l>>2]|0,+E[c>>3])|0,el(d),C=f,c|0}function Kbe(s,l,c){s=s|0,l=l|0,c=+c;var f=0;return f=jo(Vbe()|0)|0,l=Xd(l)|0,pc(0,f|0,s|0,l|0,+ +ma(c))|0}function Vbe(){var s=0;return o[7728]|0||(Jbe(9628),s=7728,n[s>>2]=1,n[s+4>>2]=0),9628}function Jbe(s){s=s|0,ao(s,zbe()|0,2)}function zbe(){return 1264}function Xbe(s){s=s|0,Sp(s)}function Zbe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],$be(s,c,d,1),C=f}function $be(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=bR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=exe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,txe(m,f)|0,f),C=d}function bR(){var s=0,l=0;if(o[7744]|0||(g9(9684),pr(37,9684,U|0)|0,l=7744,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9684)|0)){s=9684,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));g9(9684)}return 9684}function exe(s){return s=s|0,0}function txe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=bR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],h9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(rxe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function h9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function rxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=nxe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,ixe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],h9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,sxe(s,k),oxe(k),C=M;return}}function nxe(s){return s=s|0,357913941}function ixe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function sxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function oxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function g9(s){s=s|0,cxe(s)}function axe(s){s=s|0,lxe(s+24|0)}function lxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function cxe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,5,l,uxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function uxe(){return 1280}function Axe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=fxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=pxe(l,d,c)|0,C=f,c|0}function fxe(s){return s=s|0,(n[(bR()|0)+24>>2]|0)+(s*12|0)|0}function pxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return B=C,C=C+32|0,d=B,m=B+16|0,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(m,c),m=ZA(m,c)|0,sw[f&15](d,s,m),m=f9(d)|0,C=B,m|0}function hxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],gxe(s,c,d,1),C=f}function gxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=xR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=dxe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,mxe(m,f)|0,f),C=d}function xR(){var s=0,l=0;if(o[7752]|0||(m9(9720),pr(38,9720,U|0)|0,l=7752,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9720)|0)){s=9720,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));m9(9720)}return 9720}function dxe(s){return s=s|0,0}function mxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=xR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],d9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(yxe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function d9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Exe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Cxe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],d9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Ixe(s,k),wxe(k),C=M;return}}function Exe(s){return s=s|0,357913941}function Cxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Ixe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function wxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function m9(s){s=s|0,Dxe(s)}function Bxe(s){s=s|0,vxe(s+24|0)}function vxe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Dxe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,8,l,Pxe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Pxe(){return 1288}function Sxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;return c=C,C=C+16|0,f=c+8|0,d=c,m=bxe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],l=xxe(l,f)|0,C=c,l|0}function bxe(s){return s=s|0,(n[(xR()|0)+24>>2]|0)+(s*12|0)|0}function xxe(s,l){s=s|0,l=l|0;var c=0;return c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),k0(_0[c&31](s)|0)|0}function kxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Qxe(s,c,d,0),C=f}function Qxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=kR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Fxe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Rxe(m,f)|0,f),C=d}function kR(){var s=0,l=0;if(o[7760]|0||(E9(9756),pr(39,9756,U|0)|0,l=7760,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9756)|0)){s=9756,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));E9(9756)}return 9756}function Fxe(s){return s=s|0,0}function Rxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=kR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],y9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Txe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function y9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Txe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Nxe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Lxe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],y9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Oxe(s,k),Mxe(k),C=M;return}}function Nxe(s){return s=s|0,357913941}function Lxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Oxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Mxe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function E9(s){s=s|0,Hxe(s)}function Uxe(s){s=s|0,_xe(s+24|0)}function _xe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Hxe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,8,l,qxe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function qxe(){return 1292}function jxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Gxe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Wxe(l,d,c),C=f}function Gxe(s){return s=s|0,(n[(kR()|0)+24>>2]|0)+(s*12|0)|0}function Wxe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),Tu(d,c),c=+Nu(d,c),eW[f&31](s,c),C=m}function Yxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Kxe(s,c,d,0),C=f}function Kxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=QR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Vxe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Jxe(m,f)|0,f),C=d}function QR(){var s=0,l=0;if(o[7768]|0||(I9(9792),pr(40,9792,U|0)|0,l=7768,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9792)|0)){s=9792,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));I9(9792)}return 9792}function Vxe(s){return s=s|0,0}function Jxe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=QR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],C9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zxe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function C9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zxe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Xxe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Zxe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],C9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$xe(s,k),eke(k),C=M;return}}function Xxe(s){return s=s|0,357913941}function Zxe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $xe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function I9(s){s=s|0,nke(s)}function tke(s){s=s|0,rke(s+24|0)}function rke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nke(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,1,l,ike()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ike(){return 1300}function ske(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=oke(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],ake(l,m,c,f),C=d}function oke(s){return s=s|0,(n[(QR()|0)+24>>2]|0)+(s*12|0)|0}function ake(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,Tu(B,f),f=+Nu(B,f),lW[d&15](s,m,f),C=k}function lke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],cke(s,c,d,0),C=f}function cke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=FR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=uke(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Ake(m,f)|0,f),C=d}function FR(){var s=0,l=0;if(o[7776]|0||(B9(9828),pr(41,9828,U|0)|0,l=7776,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9828)|0)){s=9828,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));B9(9828)}return 9828}function uke(s){return s=s|0,0}function Ake(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=FR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],w9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(fke(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function w9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function fke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=pke(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,hke(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],w9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,gke(s,k),dke(k),C=M;return}}function pke(s){return s=s|0,357913941}function hke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function gke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function dke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function B9(s){s=s|0,Eke(s)}function mke(s){s=s|0,yke(s+24|0)}function yke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Eke(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,7,l,Cke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Cke(){return 1312}function Ike(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=wke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Bke(l,d,c),C=f}function wke(s){return s=s|0,(n[(FR()|0)+24>>2]|0)+(s*12|0)|0}function Bke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,tf[f&31](s,d),C=m}function vke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Dke(s,c,d,0),C=f}function Dke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=RR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Pke(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Ske(m,f)|0,f),C=d}function RR(){var s=0,l=0;if(o[7784]|0||(D9(9864),pr(42,9864,U|0)|0,l=7784,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9864)|0)){s=9864,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));D9(9864)}return 9864}function Pke(s){return s=s|0,0}function Ske(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=RR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],v9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(bke(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function v9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function bke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=xke(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,kke(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],v9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,Qke(s,k),Fke(k),C=M;return}}function xke(s){return s=s|0,357913941}function kke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function Qke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Fke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function D9(s){s=s|0,Nke(s)}function Rke(s){s=s|0,Tke(s+24|0)}function Tke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function Nke(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,8,l,Lke()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function Lke(){return 1320}function Oke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=Mke(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Uke(l,d,c),C=f}function Mke(s){return s=s|0,(n[(RR()|0)+24>>2]|0)+(s*12|0)|0}function Uke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),_ke(d,c),d=Hke(d,c)|0,tf[f&31](s,d),C=m}function _ke(s,l){s=s|0,l=l|0}function Hke(s,l){return s=s|0,l=l|0,qke(l)|0}function qke(s){return s=s|0,s|0}function jke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],Gke(s,c,d,0),C=f}function Gke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=TR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=Wke(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,Yke(m,f)|0,f),C=d}function TR(){var s=0,l=0;if(o[7792]|0||(S9(9900),pr(43,9900,U|0)|0,l=7792,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9900)|0)){s=9900,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));S9(9900)}return 9900}function Wke(s){return s=s|0,0}function Yke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=TR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],P9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(Kke(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function P9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function Kke(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=Vke(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,Jke(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],P9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,zke(s,k),Xke(k),C=M;return}}function Vke(s){return s=s|0,357913941}function Jke(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function zke(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function Xke(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function S9(s){s=s|0,eQe(s)}function Zke(s){s=s|0,$ke(s+24|0)}function $ke(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function eQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,22,l,tQe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function tQe(){return 1344}function rQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0;c=C,C=C+16|0,f=c+8|0,d=c,m=nQe(s)|0,s=n[m+4>>2]|0,n[d>>2]=n[m>>2],n[d+4>>2]=s,n[f>>2]=n[d>>2],n[f+4>>2]=n[d+4>>2],iQe(l,f),C=c}function nQe(s){return s=s|0,(n[(TR()|0)+24>>2]|0)+(s*12|0)|0}function iQe(s,l){s=s|0,l=l|0;var c=0;c=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(c=n[(n[s>>2]|0)+c>>2]|0),ef[c&127](s)}function sQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=NR()|0,s=oQe(c)|0,yn(m,l,d,s,aQe(c,f)|0,f)}function NR(){var s=0,l=0;if(o[7800]|0||(x9(9936),pr(44,9936,U|0)|0,l=7800,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9936)|0)){s=9936,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));x9(9936)}return 9936}function oQe(s){return s=s|0,s|0}function aQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=NR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(b9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(lQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function b9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function lQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=cQe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,uQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,b9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,AQe(s,d),fQe(d),C=k;return}}function cQe(s){return s=s|0,536870911}function uQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function AQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function fQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function x9(s){s=s|0,gQe(s)}function pQe(s){s=s|0,hQe(s+24|0)}function hQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function gQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,23,l,n9()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function dQe(s,l){s=s|0,l=l|0,yQe(n[(mQe(s)|0)>>2]|0,l)}function mQe(s){return s=s|0,(n[(NR()|0)+24>>2]|0)+(s<<3)|0}function yQe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,IR(f,l),l=wR(f,l)|0,ef[s&127](l),C=c}function EQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=LR()|0,s=CQe(c)|0,yn(m,l,d,s,IQe(c,f)|0,f)}function LR(){var s=0,l=0;if(o[7808]|0||(Q9(9972),pr(45,9972,U|0)|0,l=7808,n[l>>2]=1,n[l+4>>2]=0),!(Lr(9972)|0)){s=9972,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));Q9(9972)}return 9972}function CQe(s){return s=s|0,s|0}function IQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=LR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(k9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(wQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function k9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function wQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=BQe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,vQe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,k9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,DQe(s,d),PQe(d),C=k;return}}function BQe(s){return s=s|0,536870911}function vQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function DQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function PQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function Q9(s){s=s|0,xQe(s)}function SQe(s){s=s|0,bQe(s+24|0)}function bQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function xQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,9,l,kQe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function kQe(){return 1348}function QQe(s,l){return s=s|0,l=l|0,RQe(n[(FQe(s)|0)>>2]|0,l)|0}function FQe(s){return s=s|0,(n[(LR()|0)+24>>2]|0)+(s<<3)|0}function RQe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,F9(f,l),l=R9(f,l)|0,l=FD(_0[s&31](l)|0)|0,C=c,l|0}function F9(s,l){s=s|0,l=l|0}function R9(s,l){return s=s|0,l=l|0,TQe(l)|0}function TQe(s){return s=s|0,s|0}function NQe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=OR()|0,s=LQe(c)|0,yn(m,l,d,s,OQe(c,f)|0,f)}function OR(){var s=0,l=0;if(o[7816]|0||(N9(10008),pr(46,10008,U|0)|0,l=7816,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10008)|0)){s=10008,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));N9(10008)}return 10008}function LQe(s){return s=s|0,s|0}function OQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=OR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(T9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(MQe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function T9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function MQe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=UQe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,_Qe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,T9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,HQe(s,d),qQe(d),C=k;return}}function UQe(s){return s=s|0,536870911}function _Qe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function HQe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function qQe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function N9(s){s=s|0,WQe(s)}function jQe(s){s=s|0,GQe(s+24|0)}function GQe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function WQe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,15,l,XG()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function YQe(s){return s=s|0,VQe(n[(KQe(s)|0)>>2]|0)|0}function KQe(s){return s=s|0,(n[(OR()|0)+24>>2]|0)+(s<<3)|0}function VQe(s){return s=s|0,FD(KD[s&7]()|0)|0}function JQe(){var s=0;return o[7832]|0||(nFe(10052),pr(25,10052,U|0)|0,s=7832,n[s>>2]=1,n[s+4>>2]=0),10052}function zQe(s,l){s=s|0,l=l|0,n[s>>2]=XQe()|0,n[s+4>>2]=ZQe()|0,n[s+12>>2]=l,n[s+8>>2]=$Qe()|0,n[s+32>>2]=2}function XQe(){return 11709}function ZQe(){return 1188}function $Qe(){return TD()|0}function eFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(tFe(c),yt(c)):l|0&&(Hd(l),yt(l))}function Qp(s,l){return s=s|0,l=l|0,l&s|0}function tFe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function TD(){var s=0;return o[7824]|0||(n[2511]=rFe()|0,n[2512]=0,s=7824,n[s>>2]=1,n[s+4>>2]=0),10044}function rFe(){return 0}function nFe(s){s=s|0,Sp(s)}function iFe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0;l=C,C=C+32|0,c=l+24|0,m=l+16|0,d=l+8|0,f=l,sFe(s,4827),oFe(s,4834,3)|0,aFe(s,3682,47)|0,n[m>>2]=9,n[m+4>>2]=0,n[c>>2]=n[m>>2],n[c+4>>2]=n[m+4>>2],lFe(s,4841,c)|0,n[d>>2]=1,n[d+4>>2]=0,n[c>>2]=n[d>>2],n[c+4>>2]=n[d+4>>2],cFe(s,4871,c)|0,n[f>>2]=10,n[f+4>>2]=0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],uFe(s,4891,c)|0,C=l}function sFe(s,l){s=s|0,l=l|0;var c=0;c=qRe()|0,n[s>>2]=c,jRe(c,l),Fp(n[s>>2]|0)}function oFe(s,l,c){return s=s|0,l=l|0,c=c|0,PRe(s,mn(l)|0,c,0),s|0}function aFe(s,l,c){return s=s|0,l=l|0,c=c|0,ARe(s,mn(l)|0,c,0),s|0}function lFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],YFe(s,l,d),C=f,s|0}function cFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],SFe(s,l,d),C=f,s|0}function uFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=n[c+4>>2]|0,n[m>>2]=n[c>>2],n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],AFe(s,l,d),C=f,s|0}function AFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],fFe(s,c,d,1),C=f}function fFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=MR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=pFe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,hFe(m,f)|0,f),C=d}function MR(){var s=0,l=0;if(o[7840]|0||(O9(10100),pr(48,10100,U|0)|0,l=7840,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10100)|0)){s=10100,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));O9(10100)}return 10100}function pFe(s){return s=s|0,0}function hFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=MR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],L9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(gFe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function L9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function gFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=dFe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,mFe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],L9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,yFe(s,k),EFe(k),C=M;return}}function dFe(s){return s=s|0,357913941}function mFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function yFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function EFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function O9(s){s=s|0,wFe(s)}function CFe(s){s=s|0,IFe(s+24|0)}function IFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function wFe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,6,l,BFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function BFe(){return 1364}function vFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;return f=C,C=C+16|0,d=f+8|0,m=f,B=DFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],c=PFe(l,d,c)|0,C=f,c|0}function DFe(s){return s=s|0,(n[(MR()|0)+24>>2]|0)+(s*12|0)|0}function PFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),XA(d,c),d=ZA(d,c)|0,d=GG(pT[f&15](s,d)|0)|0,C=m,d|0}function SFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],bFe(s,c,d,0),C=f}function bFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=UR()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=xFe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,kFe(m,f)|0,f),C=d}function UR(){var s=0,l=0;if(o[7848]|0||(U9(10136),pr(49,10136,U|0)|0,l=7848,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10136)|0)){s=10136,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));U9(10136)}return 10136}function xFe(s){return s=s|0,0}function kFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=UR()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],M9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(QFe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function M9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function QFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=FFe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,RFe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],M9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,TFe(s,k),NFe(k),C=M;return}}function FFe(s){return s=s|0,357913941}function RFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function TFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NFe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function U9(s){s=s|0,MFe(s)}function LFe(s){s=s|0,OFe(s+24|0)}function OFe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function MFe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,9,l,UFe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UFe(){return 1372}function _Fe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,d=f+8|0,m=f,B=HFe(s)|0,s=n[B+4>>2]|0,n[m>>2]=n[B>>2],n[m+4>>2]=s,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],qFe(l,d,c),C=f}function HFe(s){return s=s|0,(n[(UR()|0)+24>>2]|0)+(s*12|0)|0}function qFe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=Ze;m=C,C=C+16|0,d=m,f=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(f=n[(n[s>>2]|0)+f>>2]|0),jFe(d,c),B=y(GFe(d,c)),$7[f&1](s,B),C=m}function jFe(s,l){s=s|0,l=+l}function GFe(s,l){return s=s|0,l=+l,y(WFe(l))}function WFe(s){return s=+s,y(s)}function YFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,d=f+8|0,m=f,k=n[c>>2]|0,B=n[c+4>>2]|0,c=mn(l)|0,n[m>>2]=k,n[m+4>>2]=B,n[d>>2]=n[m>>2],n[d+4>>2]=n[m+4>>2],KFe(s,c,d,0),C=f}function KFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0,F=0,M=0,O=0;d=C,C=C+32|0,m=d+16|0,O=d+8|0,k=d,M=n[c>>2]|0,F=n[c+4>>2]|0,B=n[s>>2]|0,s=_R()|0,n[O>>2]=M,n[O+4>>2]=F,n[m>>2]=n[O>>2],n[m+4>>2]=n[O+4>>2],c=VFe(m)|0,n[k>>2]=M,n[k+4>>2]=F,n[m>>2]=n[k>>2],n[m+4>>2]=n[k+4>>2],yn(B,l,s,c,JFe(m,f)|0,f),C=d}function _R(){var s=0,l=0;if(o[7856]|0||(H9(10172),pr(50,10172,U|0)|0,l=7856,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10172)|0)){s=10172,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));H9(10172)}return 10172}function VFe(s){return s=s|0,0}function JFe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0;return O=C,C=C+32|0,d=O+24|0,B=O+16|0,k=O,F=O+8|0,m=n[s>>2]|0,f=n[s+4>>2]|0,n[k>>2]=m,n[k+4>>2]=f,j=_R()|0,M=j+24|0,s=dr(l,4)|0,n[F>>2]=s,l=j+28|0,c=n[l>>2]|0,c>>>0<(n[j+32>>2]|0)>>>0?(n[B>>2]=m,n[B+4>>2]=f,n[d>>2]=n[B>>2],n[d+4>>2]=n[B+4>>2],_9(c,d,s),s=(n[l>>2]|0)+12|0,n[l>>2]=s):(zFe(M,k,F),s=n[l>>2]|0),C=O,((s-(n[M>>2]|0)|0)/12|0)+-1|0}function _9(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=n[l+4>>2]|0,n[s>>2]=n[l>>2],n[s+4>>2]=f,n[s+8>>2]=c}function zFe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;if(M=C,C=C+48|0,f=M+32|0,B=M+24|0,k=M,F=s+4|0,d=(((n[F>>2]|0)-(n[s>>2]|0)|0)/12|0)+1|0,m=XFe(s)|0,m>>>0>>0)Zr(s);else{O=n[s>>2]|0,oe=((n[s+8>>2]|0)-O|0)/12|0,j=oe<<1,ZFe(k,oe>>>0>>1>>>0?j>>>0>>0?d:j:m,((n[F>>2]|0)-O|0)/12|0,s+8|0),F=k+8|0,m=n[F>>2]|0,d=n[l+4>>2]|0,c=n[c>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=d,n[f>>2]=n[B>>2],n[f+4>>2]=n[B+4>>2],_9(m,f,c),n[F>>2]=(n[F>>2]|0)+12,$Fe(s,k),eRe(k),C=M;return}}function XFe(s){return s=s|0,357913941}function ZFe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>357913941)Tt();else{d=Yt(l*12|0)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c*12|0)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l*12|0)}function $Fe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(((d|0)/-12|0)*12|0)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function eRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~(((f+-12-l|0)>>>0)/12|0)*12|0)),s=n[s>>2]|0,s|0&&yt(s)}function H9(s){s=s|0,nRe(s)}function tRe(s){s=s|0,rRe(s+24|0)}function rRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~(((l+-12-f|0)>>>0)/12|0)*12|0)),yt(c))}function nRe(s){s=s|0;var l=0;l=Jr()|0,zr(s,2,3,l,iRe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iRe(){return 1380}function sRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+8|0,B=d,k=oRe(s)|0,s=n[k+4>>2]|0,n[B>>2]=n[k>>2],n[B+4>>2]=s,n[m>>2]=n[B>>2],n[m+4>>2]=n[B+4>>2],aRe(l,m,c,f),C=d}function oRe(s){return s=s|0,(n[(_R()|0)+24>>2]|0)+(s*12|0)|0}function aRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;k=C,C=C+16|0,m=k+1|0,B=k,d=n[l>>2]|0,l=n[l+4>>2]|0,s=s+(l>>1)|0,l&1&&(d=n[(n[s>>2]|0)+d>>2]|0),XA(m,c),m=ZA(m,c)|0,lRe(B,f),B=cRe(B,f)|0,sw[d&15](s,m,B),C=k}function lRe(s,l){s=s|0,l=l|0}function cRe(s,l){return s=s|0,l=l|0,uRe(l)|0}function uRe(s){return s=s|0,(s|0)!=0|0}function ARe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=HR()|0,s=fRe(c)|0,yn(m,l,d,s,pRe(c,f)|0,f)}function HR(){var s=0,l=0;if(o[7864]|0||(j9(10208),pr(51,10208,U|0)|0,l=7864,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10208)|0)){s=10208,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));j9(10208)}return 10208}function fRe(s){return s=s|0,s|0}function pRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=HR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(q9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(hRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function q9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function hRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=gRe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,dRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,q9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mRe(s,d),yRe(d),C=k;return}}function gRe(s){return s=s|0,536870911}function dRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function mRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function j9(s){s=s|0,IRe(s)}function ERe(s){s=s|0,CRe(s+24|0)}function CRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function IRe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,24,l,wRe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wRe(){return 1392}function BRe(s,l){s=s|0,l=l|0,DRe(n[(vRe(s)|0)>>2]|0,l)}function vRe(s){return s=s|0,(n[(HR()|0)+24>>2]|0)+(s<<3)|0}function DRe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,F9(f,l),l=R9(f,l)|0,ef[s&127](l),C=c}function PRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=qR()|0,s=SRe(c)|0,yn(m,l,d,s,bRe(c,f)|0,f)}function qR(){var s=0,l=0;if(o[7872]|0||(W9(10244),pr(52,10244,U|0)|0,l=7872,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10244)|0)){s=10244,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));W9(10244)}return 10244}function SRe(s){return s=s|0,s|0}function bRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=qR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(G9(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(xRe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function G9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function xRe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=kRe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,QRe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,G9(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,FRe(s,d),RRe(d),C=k;return}}function kRe(s){return s=s|0,536870911}function QRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function FRe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function RRe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function W9(s){s=s|0,LRe(s)}function TRe(s){s=s|0,NRe(s+24|0)}function NRe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function LRe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,16,l,ORe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function ORe(){return 1400}function MRe(s){return s=s|0,_Re(n[(URe(s)|0)>>2]|0)|0}function URe(s){return s=s|0,(n[(qR()|0)+24>>2]|0)+(s<<3)|0}function _Re(s){return s=s|0,HRe(KD[s&7]()|0)|0}function HRe(s){return s=s|0,s|0}function qRe(){var s=0;return o[7880]|0||(JRe(10280),pr(25,10280,U|0)|0,s=7880,n[s>>2]=1,n[s+4>>2]=0),10280}function jRe(s,l){s=s|0,l=l|0,n[s>>2]=GRe()|0,n[s+4>>2]=WRe()|0,n[s+12>>2]=l,n[s+8>>2]=YRe()|0,n[s+32>>2]=4}function GRe(){return 11711}function WRe(){return 1356}function YRe(){return TD()|0}function KRe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(VRe(c),yt(c)):l|0&&(C0(l),yt(l))}function VRe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function JRe(s){s=s|0,Sp(s)}function zRe(s){s=s|0,XRe(s,4920),ZRe(s)|0,$Re(s)|0}function XRe(s,l){s=s|0,l=l|0;var c=0;c=p9()|0,n[s>>2]=c,CTe(c,l),Fp(n[s>>2]|0)}function ZRe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,uTe()|0),s|0}function $Re(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,eTe()|0),s|0}function eTe(){var s=0;return o[7888]|0||(Y9(10328),pr(53,10328,U|0)|0,s=7888,n[s>>2]=1,n[s+4>>2]=0),Lr(10328)|0||Y9(10328),10328}function T0(s,l){s=s|0,l=l|0,yn(s,0,l,0,0,0)}function Y9(s){s=s|0,nTe(s),N0(s,10)}function tTe(s){s=s|0,rTe(s+24|0)}function rTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function nTe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,1,l,aTe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function iTe(s,l,c){s=s|0,l=l|0,c=+c,sTe(s,l,c)}function N0(s,l){s=s|0,l=l|0,n[s+20>>2]=l}function sTe(s,l,c){s=s|0,l=l|0,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+16|0,m=f+8|0,k=f+13|0,d=f,B=f+12|0,XA(k,l),n[m>>2]=ZA(k,l)|0,Tu(B,c),E[d>>3]=+Nu(B,c),oTe(s,m,d),C=f}function oTe(s,l,c){s=s|0,l=l|0,c=c|0,Xa(s+8|0,n[l>>2]|0,+E[c>>3]),o[s+24>>0]=1}function aTe(){return 1404}function lTe(s,l){return s=s|0,l=+l,cTe(s,l)|0}function cTe(s,l){s=s|0,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return f=C,C=C+16|0,m=f+4|0,B=f+8|0,k=f,d=Za(8)|0,c=d,F=Yt(16)|0,XA(m,s),s=ZA(m,s)|0,Tu(B,l),Xa(F,s,+Nu(B,l)),B=c+4|0,n[B>>2]=F,s=Yt(8)|0,B=n[B>>2]|0,n[k>>2]=0,n[m>>2]=n[k>>2],SR(s,B,m),n[d>>2]=s,C=f,c|0}function uTe(){var s=0;return o[7896]|0||(K9(10364),pr(54,10364,U|0)|0,s=7896,n[s>>2]=1,n[s+4>>2]=0),Lr(10364)|0||K9(10364),10364}function K9(s){s=s|0,pTe(s),N0(s,55)}function ATe(s){s=s|0,fTe(s+24|0)}function fTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function pTe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,4,l,mTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function hTe(s){s=s|0,gTe(s)}function gTe(s){s=s|0,dTe(s)}function dTe(s){s=s|0,V9(s+8|0),o[s+24>>0]=1}function V9(s){s=s|0,n[s>>2]=0,E[s+8>>3]=0}function mTe(){return 1424}function yTe(){return ETe()|0}function ETe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Za(8)|0,s=c,f=Yt(16)|0,V9(f),m=s+4|0,n[m>>2]=f,f=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],SR(f,m,d),n[c>>2]=f,C=l,s|0}function CTe(s,l){s=s|0,l=l|0,n[s>>2]=ITe()|0,n[s+4>>2]=wTe()|0,n[s+12>>2]=l,n[s+8>>2]=BTe()|0,n[s+32>>2]=5}function ITe(){return 11710}function wTe(){return 1416}function BTe(){return ND()|0}function vTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(DTe(c),yt(c)):l|0&&yt(l)}function DTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function ND(){var s=0;return o[7904]|0||(n[2600]=PTe()|0,n[2601]=0,s=7904,n[s>>2]=1,n[s+4>>2]=0),10400}function PTe(){return n[357]|0}function STe(s){s=s|0,bTe(s,4926),xTe(s)|0}function bTe(s,l){s=s|0,l=l|0;var c=0;c=LG()|0,n[s>>2]=c,_Te(c,l),Fp(n[s>>2]|0)}function xTe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,kTe()|0),s|0}function kTe(){var s=0;return o[7912]|0||(J9(10412),pr(56,10412,U|0)|0,s=7912,n[s>>2]=1,n[s+4>>2]=0),Lr(10412)|0||J9(10412),10412}function J9(s){s=s|0,RTe(s),N0(s,57)}function QTe(s){s=s|0,FTe(s+24|0)}function FTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function RTe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,5,l,OTe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function TTe(s){s=s|0,NTe(s)}function NTe(s){s=s|0,LTe(s)}function LTe(s){s=s|0;var l=0,c=0;l=s+8|0,c=l+48|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(c|0));o[s+56>>0]=1}function OTe(){return 1432}function MTe(){return UTe()|0}function UTe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0;B=C,C=C+16|0,s=B+4|0,l=B,c=Za(8)|0,f=c,d=Yt(48)|0,m=d,k=m+48|0;do n[m>>2]=0,m=m+4|0;while((m|0)<(k|0));return m=f+4|0,n[m>>2]=d,k=Yt(8)|0,m=n[m>>2]|0,n[l>>2]=0,n[s>>2]=n[l>>2],OG(k,m,s),n[c>>2]=k,C=B,f|0}function _Te(s,l){s=s|0,l=l|0,n[s>>2]=HTe()|0,n[s+4>>2]=qTe()|0,n[s+12>>2]=l,n[s+8>>2]=jTe()|0,n[s+32>>2]=6}function HTe(){return 11704}function qTe(){return 1436}function jTe(){return ND()|0}function GTe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(WTe(c),yt(c)):l|0&&yt(l)}function WTe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function YTe(s){s=s|0,KTe(s,4933),VTe(s)|0,JTe(s)|0}function KTe(s,l){s=s|0,l=l|0;var c=0;c=ENe()|0,n[s>>2]=c,CNe(c,l),Fp(n[s>>2]|0)}function VTe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,cNe()|0),s|0}function JTe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,zTe()|0),s|0}function zTe(){var s=0;return o[7920]|0||(z9(10452),pr(58,10452,U|0)|0,s=7920,n[s>>2]=1,n[s+4>>2]=0),Lr(10452)|0||z9(10452),10452}function z9(s){s=s|0,$Te(s),N0(s,1)}function XTe(s){s=s|0,ZTe(s+24|0)}function ZTe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function $Te(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,1,l,nNe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function eNe(s,l,c){s=s|0,l=+l,c=+c,tNe(s,l,c)}function tNe(s,l,c){s=s|0,l=+l,c=+c;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,m=f+8|0,k=f+17|0,d=f,B=f+16|0,Tu(k,l),E[m>>3]=+Nu(k,l),Tu(B,c),E[d>>3]=+Nu(B,c),rNe(s,m,d),C=f}function rNe(s,l,c){s=s|0,l=l|0,c=c|0,X9(s+8|0,+E[l>>3],+E[c>>3]),o[s+24>>0]=1}function X9(s,l,c){s=s|0,l=+l,c=+c,E[s>>3]=l,E[s+8>>3]=c}function nNe(){return 1472}function iNe(s,l){return s=+s,l=+l,sNe(s,l)|0}function sNe(s,l){s=+s,l=+l;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return f=C,C=C+16|0,B=f+4|0,k=f+8|0,F=f,d=Za(8)|0,c=d,m=Yt(16)|0,Tu(B,s),s=+Nu(B,s),Tu(k,l),X9(m,s,+Nu(k,l)),k=c+4|0,n[k>>2]=m,m=Yt(8)|0,k=n[k>>2]|0,n[F>>2]=0,n[B>>2]=n[F>>2],Z9(m,k,B),n[d>>2]=m,C=f,c|0}function Z9(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1452,n[c+12>>2]=l,n[s+4>>2]=c}function oNe(s){s=s|0,im(s),yt(s)}function aNe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function lNe(s){s=s|0,yt(s)}function cNe(){var s=0;return o[7928]|0||($9(10488),pr(59,10488,U|0)|0,s=7928,n[s>>2]=1,n[s+4>>2]=0),Lr(10488)|0||$9(10488),10488}function $9(s){s=s|0,fNe(s),N0(s,60)}function uNe(s){s=s|0,ANe(s+24|0)}function ANe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function fNe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,6,l,dNe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function pNe(s){s=s|0,hNe(s)}function hNe(s){s=s|0,gNe(s)}function gNe(s){s=s|0,e7(s+8|0),o[s+24>>0]=1}function e7(s){s=s|0,n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,n[s+12>>2]=0}function dNe(){return 1492}function mNe(){return yNe()|0}function yNe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Za(8)|0,s=c,f=Yt(16)|0,e7(f),m=s+4|0,n[m>>2]=f,f=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],Z9(f,m,d),n[c>>2]=f,C=l,s|0}function ENe(){var s=0;return o[7936]|0||(PNe(10524),pr(25,10524,U|0)|0,s=7936,n[s>>2]=1,n[s+4>>2]=0),10524}function CNe(s,l){s=s|0,l=l|0,n[s>>2]=INe()|0,n[s+4>>2]=wNe()|0,n[s+12>>2]=l,n[s+8>>2]=BNe()|0,n[s+32>>2]=7}function INe(){return 11700}function wNe(){return 1484}function BNe(){return ND()|0}function vNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(DNe(c),yt(c)):l|0&&yt(l)}function DNe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function PNe(s){s=s|0,Sp(s)}function SNe(s,l,c){s=s|0,l=l|0,c=c|0,s=mn(l)|0,l=bNe(c)|0,c=xNe(c,0)|0,sLe(s,l,c,jR()|0,0)}function bNe(s){return s=s|0,s|0}function xNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=jR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(r7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(LNe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function jR(){var s=0,l=0;if(o[7944]|0||(t7(10568),pr(61,10568,U|0)|0,l=7944,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10568)|0)){s=10568,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));t7(10568)}return 10568}function t7(s){s=s|0,FNe(s)}function kNe(s){s=s|0,QNe(s+24|0)}function QNe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function FNe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,17,l,e9()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RNe(s){return s=s|0,NNe(n[(TNe(s)|0)>>2]|0)|0}function TNe(s){return s=s|0,(n[(jR()|0)+24>>2]|0)+(s<<3)|0}function NNe(s){return s=s|0,RD(KD[s&7]()|0)|0}function r7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function LNe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=ONe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,MNe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,r7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,UNe(s,d),_Ne(d),C=k;return}}function ONe(s){return s=s|0,536870911}function MNe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function UNe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function _Ne(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function HNe(){qNe()}function qNe(){jNe(10604)}function jNe(s){s=s|0,GNe(s,4955)}function GNe(s,l){s=s|0,l=l|0;var c=0;c=WNe()|0,n[s>>2]=c,YNe(c,l),Fp(n[s>>2]|0)}function WNe(){var s=0;return o[7952]|0||(tLe(10612),pr(25,10612,U|0)|0,s=7952,n[s>>2]=1,n[s+4>>2]=0),10612}function YNe(s,l){s=s|0,l=l|0,n[s>>2]=zNe()|0,n[s+4>>2]=XNe()|0,n[s+12>>2]=l,n[s+8>>2]=ZNe()|0,n[s+32>>2]=8}function Fp(s){s=s|0;var l=0,c=0;l=C,C=C+16|0,c=l,$d()|0,n[c>>2]=s,KNe(10608,c),C=l}function $d(){return o[11714]|0||(n[2652]=0,pr(62,10608,U|0)|0,o[11714]=1),10608}function KNe(s,l){s=s|0,l=l|0;var c=0;c=Yt(8)|0,n[c+4>>2]=n[l>>2],n[c>>2]=n[s>>2],n[s>>2]=c}function VNe(s){s=s|0,JNe(s)}function JNe(s){s=s|0;var l=0,c=0;if(l=n[s>>2]|0,l|0)do c=l,l=n[l>>2]|0,yt(c);while(l|0);n[s>>2]=0}function zNe(){return 11715}function XNe(){return 1496}function ZNe(){return TD()|0}function $Ne(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(eLe(c),yt(c)):l|0&&yt(l)}function eLe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function tLe(s){s=s|0,Sp(s)}function rLe(s,l){s=s|0,l=l|0;var c=0,f=0;$d()|0,c=n[2652]|0;e:do if(c|0){for(;f=n[c+4>>2]|0,!(f|0&&!(O7(GR(f)|0,s)|0));)if(c=n[c>>2]|0,!c)break e;nLe(f,l)}while(!1)}function GR(s){return s=s|0,n[s+12>>2]|0}function nLe(s,l){s=s|0,l=l|0;var c=0;s=s+36|0,c=n[s>>2]|0,c|0&&(bu(c),yt(c)),c=Yt(4)|0,PD(c,l),n[s>>2]=c}function WR(){return o[11716]|0||(n[2664]=0,pr(63,10656,U|0)|0,o[11716]=1),10656}function n7(){var s=0;return o[11717]|0?s=n[2665]|0:(iLe(),n[2665]=1504,o[11717]=1,s=1504),s|0}function iLe(){o[11740]|0||(o[11718]=dr(dr(8,0)|0,0)|0,o[11719]=dr(dr(0,0)|0,0)|0,o[11720]=dr(dr(0,16)|0,0)|0,o[11721]=dr(dr(8,0)|0,0)|0,o[11722]=dr(dr(0,0)|0,0)|0,o[11723]=dr(dr(8,0)|0,0)|0,o[11724]=dr(dr(0,0)|0,0)|0,o[11725]=dr(dr(8,0)|0,0)|0,o[11726]=dr(dr(0,0)|0,0)|0,o[11727]=dr(dr(8,0)|0,0)|0,o[11728]=dr(dr(0,0)|0,0)|0,o[11729]=dr(dr(0,0)|0,32)|0,o[11730]=dr(dr(0,0)|0,32)|0,o[11740]=1)}function i7(){return 1572}function sLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0;m=C,C=C+32|0,O=m+16|0,M=m+12|0,F=m+8|0,k=m+4|0,B=m,n[O>>2]=s,n[M>>2]=l,n[F>>2]=c,n[k>>2]=f,n[B>>2]=d,WR()|0,oLe(10656,O,M,F,k,B),C=m}function oLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0;B=Yt(24)|0,RG(B+4|0,n[l>>2]|0,n[c>>2]|0,n[f>>2]|0,n[d>>2]|0,n[m>>2]|0),n[B>>2]=n[s>>2],n[s>>2]=B}function s7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0;if(ct=C,C=C+32|0,Oe=ct+20|0,Qe=ct+8|0,rt=ct+4|0,Xe=ct,l=n[l>>2]|0,l|0){We=Oe+4|0,F=Oe+8|0,M=Qe+4|0,O=Qe+8|0,j=Qe+8|0,oe=Oe+8|0;do{if(B=l+4|0,k=YR(B)|0,k|0){if(d=$I(k)|0,n[Oe>>2]=0,n[We>>2]=0,n[F>>2]=0,f=(ew(k)|0)+1|0,aLe(Oe,f),f|0)for(;f=f+-1|0,Tc(Qe,n[d>>2]|0),m=n[We>>2]|0,m>>>0<(n[oe>>2]|0)>>>0?(n[m>>2]=n[Qe>>2],n[We>>2]=(n[We>>2]|0)+4):KR(Oe,Qe),f;)d=d+4|0;f=tw(k)|0,n[Qe>>2]=0,n[M>>2]=0,n[O>>2]=0;e:do if(n[f>>2]|0)for(d=0,m=0;;){if((d|0)==(m|0)?lLe(Qe,f):(n[d>>2]=n[f>>2],n[M>>2]=(n[M>>2]|0)+4),f=f+4|0,!(n[f>>2]|0))break e;d=n[M>>2]|0,m=n[j>>2]|0}while(!1);n[rt>>2]=LD(B)|0,n[Xe>>2]=Lr(k)|0,cLe(c,s,rt,Xe,Oe,Qe),VR(Qe),$A(Oe)}l=n[l>>2]|0}while(l|0)}C=ct}function YR(s){return s=s|0,n[s+12>>2]|0}function $I(s){return s=s|0,n[s+12>>2]|0}function ew(s){return s=s|0,n[s+16>>2]|0}function aLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+32|0,c=d,f=n[s>>2]|0,(n[s+8>>2]|0)-f>>2>>>0>>0&&(p7(c,l,(n[s+4>>2]|0)-f>>2,s+8|0),h7(s,c),g7(c)),C=d}function KR(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=f7(s)|0,m>>>0>>0)Zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,F=M>>1,p7(c,M>>2>>>0>>1>>>0?F>>>0>>0?d:F:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,h7(s,c),g7(c),C=B;return}}function tw(s){return s=s|0,n[s+8>>2]|0}function lLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;if(B=C,C=C+32|0,c=B,f=s+4|0,d=((n[f>>2]|0)-(n[s>>2]|0)>>2)+1|0,m=A7(s)|0,m>>>0>>0)Zr(s);else{k=n[s>>2]|0,M=(n[s+8>>2]|0)-k|0,F=M>>1,bLe(c,M>>2>>>0>>1>>>0?F>>>0>>0?d:F:m,(n[f>>2]|0)-k>>2,s+8|0),m=c+8|0,n[n[m>>2]>>2]=n[l>>2],n[m>>2]=(n[m>>2]|0)+4,xLe(s,c),kLe(c),C=B;return}}function LD(s){return s=s|0,n[s>>2]|0}function cLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,uLe(s,l,c,f,d,m)}function VR(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),yt(c))}function $A(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-4-f|0)>>>2)<<2)),yt(c))}function uLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0;B=C,C=C+48|0,O=B+40|0,k=B+32|0,j=B+24|0,F=B+12|0,M=B,$a(k),s=ys(s)|0,n[j>>2]=n[l>>2],c=n[c>>2]|0,f=n[f>>2]|0,JR(F,d),ALe(M,m),n[O>>2]=n[j>>2],fLe(s,O,c,f,F,M),VR(M),$A(F),el(k),C=B}function JR(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(PLe(s,f),SLe(s,n[l>>2]|0,n[c>>2]|0,f))}function ALe(s,l){s=s|0,l=l|0;var c=0,f=0;n[s>>2]=0,n[s+4>>2]=0,n[s+8>>2]=0,c=l+4|0,f=(n[c>>2]|0)-(n[l>>2]|0)>>2,f|0&&(vLe(s,f),DLe(s,n[l>>2]|0,n[c>>2]|0,f))}function fLe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0;B=C,C=C+32|0,O=B+28|0,j=B+24|0,k=B+12|0,F=B,M=jo(pLe()|0)|0,n[j>>2]=n[l>>2],n[O>>2]=n[j>>2],l=L0(O)|0,c=o7(c)|0,f=zR(f)|0,n[k>>2]=n[d>>2],O=d+4|0,n[k+4>>2]=n[O>>2],j=d+8|0,n[k+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[d>>2]=0,d=XR(k)|0,n[F>>2]=n[m>>2],O=m+4|0,n[F+4>>2]=n[O>>2],j=m+8|0,n[F+8>>2]=n[j>>2],n[j>>2]=0,n[O>>2]=0,n[m>>2]=0,gc(0,M|0,s|0,l|0,c|0,f|0,d|0,hLe(F)|0)|0,VR(F),$A(k),C=B}function pLe(){var s=0;return o[7968]|0||(wLe(10708),s=7968,n[s>>2]=1,n[s+4>>2]=0),10708}function L0(s){return s=s|0,l7(s)|0}function o7(s){return s=s|0,a7(s)|0}function zR(s){return s=s|0,RD(s)|0}function XR(s){return s=s|0,dLe(s)|0}function hLe(s){return s=s|0,gLe(s)|0}function gLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Za(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=a7(n[(n[s>>2]|0)+(l<<2)>>2]|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function a7(s){return s=s|0,s|0}function dLe(s){s=s|0;var l=0,c=0,f=0;if(f=(n[s+4>>2]|0)-(n[s>>2]|0)|0,c=f>>2,f=Za(f+4|0)|0,n[f>>2]=c,c|0){l=0;do n[f+4+(l<<2)>>2]=l7((n[s>>2]|0)+(l<<2)|0)|0,l=l+1|0;while((l|0)!=(c|0))}return f|0}function l7(s){s=s|0;var l=0,c=0,f=0,d=0;return d=C,C=C+32|0,l=d+12|0,c=d,f=cR(c7()|0)|0,f?(uR(l,f),AR(c,l),ZUe(s,c),s=fR(l)|0):s=mLe(s)|0,C=d,s|0}function c7(){var s=0;return o[7960]|0||(ILe(10664),pr(25,10664,U|0)|0,s=7960,n[s>>2]=1,n[s+4>>2]=0),10664}function mLe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Za(8)|0,l=f,k=Yt(4)|0,n[k>>2]=n[s>>2],m=l+4|0,n[m>>2]=k,s=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],u7(s,m,d),n[f>>2]=s,C=c,l|0}function u7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1656,n[c+12>>2]=l,n[s+4>>2]=c}function yLe(s){s=s|0,im(s),yt(s)}function ELe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function CLe(s){s=s|0,yt(s)}function ILe(s){s=s|0,Sp(s)}function wLe(s){s=s|0,ao(s,BLe()|0,5)}function BLe(){return 1676}function vLe(s,l){s=s|0,l=l|0;var c=0;if((A7(s)|0)>>>0>>0&&Zr(s),l>>>0>1073741823)Tt();else{c=Yt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function DLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(xr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function A7(s){return s=s|0,1073741823}function PLe(s,l){s=s|0,l=l|0;var c=0;if((f7(s)|0)>>>0>>0&&Zr(s),l>>>0>1073741823)Tt();else{c=Yt(l<<2)|0,n[s+4>>2]=c,n[s>>2]=c,n[s+8>>2]=c+(l<<2);return}}function SLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,f=s+4|0,s=c-l|0,(s|0)>0&&(xr(n[f>>2]|0,l|0,s|0)|0,n[f>>2]=(n[f>>2]|0)+(s>>>2<<2))}function f7(s){return s=s|0,1073741823}function bLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Yt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function xLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function kLe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&yt(s)}function p7(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>1073741823)Tt();else{d=Yt(l<<2)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<2)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<2)}function h7(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>2)<<2)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function g7(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-4-l|0)>>>2)<<2)),s=n[s>>2]|0,s|0&&yt(s)}function QLe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0;if(Qe=C,C=C+32|0,O=Qe+20|0,j=Qe+12|0,M=Qe+16|0,oe=Qe+4|0,We=Qe,Oe=Qe+8|0,k=n7()|0,m=n[k>>2]|0,B=n[m>>2]|0,B|0)for(F=n[k+8>>2]|0,k=n[k+4>>2]|0;Tc(O,B),FLe(s,O,k,F),m=m+4|0,B=n[m>>2]|0,B;)F=F+1|0,k=k+1|0;if(m=i7()|0,B=n[m>>2]|0,B|0)do Tc(O,B),n[j>>2]=n[m+4>>2],RLe(l,O,j),m=m+8|0,B=n[m>>2]|0;while(B|0);if(m=n[($d()|0)>>2]|0,m|0)do l=n[m+4>>2]|0,Tc(O,n[(em(l)|0)>>2]|0),n[j>>2]=GR(l)|0,TLe(c,O,j),m=n[m>>2]|0;while(m|0);if(Tc(M,0),m=WR()|0,n[O>>2]=n[M>>2],s7(O,m,d),m=n[($d()|0)>>2]|0,m|0){s=O+4|0,l=O+8|0,c=O+8|0;do{if(F=n[m+4>>2]|0,Tc(j,n[(em(F)|0)>>2]|0),NLe(oe,d7(F)|0),B=n[oe>>2]|0,B|0){n[O>>2]=0,n[s>>2]=0,n[l>>2]=0;do Tc(We,n[(em(n[B+4>>2]|0)|0)>>2]|0),k=n[s>>2]|0,k>>>0<(n[c>>2]|0)>>>0?(n[k>>2]=n[We>>2],n[s>>2]=(n[s>>2]|0)+4):KR(O,We),B=n[B>>2]|0;while(B|0);LLe(f,j,O),$A(O)}n[Oe>>2]=n[j>>2],M=m7(F)|0,n[O>>2]=n[Oe>>2],s7(O,M,d),UG(oe),m=n[m>>2]|0}while(m|0)}C=Qe}function FLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,VLe(s,l,c,f)}function RLe(s,l,c){s=s|0,l=l|0,c=c|0,KLe(s,l,c)}function em(s){return s=s|0,s|0}function TLe(s,l,c){s=s|0,l=l|0,c=c|0,jLe(s,l,c)}function d7(s){return s=s|0,s+16|0}function NLe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;if(m=C,C=C+16|0,d=m+8|0,c=m,n[s>>2]=0,f=n[l>>2]|0,n[d>>2]=f,n[c>>2]=s,c=qLe(c)|0,f|0){if(f=Yt(12)|0,B=(y7(d)|0)+4|0,s=n[B+4>>2]|0,l=f+4|0,n[l>>2]=n[B>>2],n[l+4>>2]=s,l=n[n[d>>2]>>2]|0,n[d>>2]=l,!l)s=f;else for(l=f;s=Yt(12)|0,F=(y7(d)|0)+4|0,k=n[F+4>>2]|0,B=s+4|0,n[B>>2]=n[F>>2],n[B+4>>2]=k,n[l>>2]=s,B=n[n[d>>2]>>2]|0,n[d>>2]=B,B;)l=s;n[s>>2]=n[c>>2],n[c>>2]=f}C=m}function LLe(s,l,c){s=s|0,l=l|0,c=c|0,OLe(s,l,c)}function m7(s){return s=s|0,s+24|0}function OLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+24|0,d=f+16|0,k=f+12|0,m=f,$a(d),s=ys(s)|0,n[k>>2]=n[l>>2],JR(m,c),n[B>>2]=n[k>>2],MLe(s,B,m),$A(m),el(d),C=f}function MLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=C,C=C+32|0,B=f+16|0,k=f+12|0,d=f,m=jo(ULe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=L0(B)|0,n[d>>2]=n[c>>2],B=c+4|0,n[d+4>>2]=n[B>>2],k=c+8|0,n[d+8>>2]=n[k>>2],n[k>>2]=0,n[B>>2]=0,n[c>>2]=0,hs(0,m|0,s|0,l|0,XR(d)|0)|0,$A(d),C=f}function ULe(){var s=0;return o[7976]|0||(_Le(10720),s=7976,n[s>>2]=1,n[s+4>>2]=0),10720}function _Le(s){s=s|0,ao(s,HLe()|0,2)}function HLe(){return 1732}function qLe(s){return s=s|0,n[s>>2]|0}function y7(s){return s=s|0,n[s>>2]|0}function jLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,$a(d),s=ys(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],E7(s,m,c),el(d),C=f}function E7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+16|0,m=f+4|0,B=f,d=jo(GLe()|0)|0,n[B>>2]=n[l>>2],n[m>>2]=n[B>>2],l=L0(m)|0,hs(0,d|0,s|0,l|0,o7(c)|0)|0,C=f}function GLe(){var s=0;return o[7984]|0||(WLe(10732),s=7984,n[s>>2]=1,n[s+4>>2]=0),10732}function WLe(s){s=s|0,ao(s,YLe()|0,2)}function YLe(){return 1744}function KLe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;f=C,C=C+32|0,m=f+16|0,d=f+8|0,B=f,$a(d),s=ys(s)|0,n[B>>2]=n[l>>2],c=n[c>>2]|0,n[m>>2]=n[B>>2],E7(s,m,c),el(d),C=f}function VLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,$a(m),s=ys(s)|0,n[k>>2]=n[l>>2],c=o[c>>0]|0,f=o[f>>0]|0,n[B>>2]=n[k>>2],JLe(s,B,c,f),el(m),C=d}function JLe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,B=d+4|0,k=d,m=jo(zLe()|0)|0,n[k>>2]=n[l>>2],n[B>>2]=n[k>>2],l=L0(B)|0,c=tm(c)|0,vi(0,m|0,s|0,l|0,c|0,tm(f)|0)|0,C=d}function zLe(){var s=0;return o[7992]|0||(ZLe(10744),s=7992,n[s>>2]=1,n[s+4>>2]=0),10744}function tm(s){return s=s|0,XLe(s)|0}function XLe(s){return s=s|0,s&255|0}function ZLe(s){s=s|0,ao(s,$Le()|0,3)}function $Le(){return 1756}function eOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;switch(oe=C,C=C+32|0,k=oe+8|0,F=oe+4|0,M=oe+20|0,O=oe,dR(s,0),f=XUe(l)|0,n[k>>2]=0,j=k+4|0,n[j>>2]=0,n[k+8>>2]=0,f<<24>>24){case 0:{o[M>>0]=0,tOe(F,c,M),OD(s,F)|0,xu(F);break}case 8:{j=nT(l)|0,o[M>>0]=8,Tc(O,n[j+4>>2]|0),rOe(F,c,M,O,j+8|0),OD(s,F)|0,xu(F);break}case 9:{if(m=nT(l)|0,l=n[m+4>>2]|0,l|0)for(B=k+8|0,d=m+12|0;l=l+-1|0,Tc(F,n[d>>2]|0),f=n[j>>2]|0,f>>>0<(n[B>>2]|0)>>>0?(n[f>>2]=n[F>>2],n[j>>2]=(n[j>>2]|0)+4):KR(k,F),l;)d=d+4|0;o[M>>0]=9,Tc(O,n[m+8>>2]|0),nOe(F,c,M,O,k),OD(s,F)|0,xu(F);break}default:j=nT(l)|0,o[M>>0]=f,Tc(O,n[j+4>>2]|0),iOe(F,c,M,O),OD(s,F)|0,xu(F)}$A(k),C=oe}function tOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;f=C,C=C+16|0,d=f,$a(d),l=ys(l)|0,mOe(s,l,o[c>>0]|0),el(d),C=f}function OD(s,l){s=s|0,l=l|0;var c=0;return c=n[s>>2]|0,c|0&&sa(c|0),n[s>>2]=n[l>>2],n[l>>2]=0,s|0}function rOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0;m=C,C=C+32|0,k=m+16|0,B=m+8|0,F=m,$a(B),l=ys(l)|0,c=o[c>>0]|0,n[F>>2]=n[f>>2],d=n[d>>2]|0,n[k>>2]=n[F>>2],pOe(s,l,c,k,d),el(B),C=m}function nOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0;m=C,C=C+32|0,F=m+24|0,B=m+16|0,M=m+12|0,k=m,$a(B),l=ys(l)|0,c=o[c>>0]|0,n[M>>2]=n[f>>2],JR(k,d),n[F>>2]=n[M>>2],cOe(s,l,c,F,k),$A(k),el(B),C=m}function iOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+32|0,B=d+16|0,m=d+8|0,k=d,$a(m),l=ys(l)|0,c=o[c>>0]|0,n[k>>2]=n[f>>2],n[B>>2]=n[k>>2],sOe(s,l,c,B),el(m),C=d}function sOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0,B=0,k=0;d=C,C=C+16|0,m=d+4|0,k=d,B=jo(oOe()|0)|0,c=tm(c)|0,n[k>>2]=n[f>>2],n[m>>2]=n[k>>2],MD(s,hs(0,B|0,l|0,c|0,L0(m)|0)|0),C=d}function oOe(){var s=0;return o[8e3]|0||(aOe(10756),s=8e3,n[s>>2]=1,n[s+4>>2]=0),10756}function MD(s,l){s=s|0,l=l|0,dR(s,l)}function aOe(s){s=s|0,ao(s,lOe()|0,2)}function lOe(){return 1772}function cOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0;m=C,C=C+32|0,F=m+16|0,M=m+12|0,B=m,k=jo(uOe()|0)|0,c=tm(c)|0,n[M>>2]=n[f>>2],n[F>>2]=n[M>>2],f=L0(F)|0,n[B>>2]=n[d>>2],F=d+4|0,n[B+4>>2]=n[F>>2],M=d+8|0,n[B+8>>2]=n[M>>2],n[M>>2]=0,n[F>>2]=0,n[d>>2]=0,MD(s,vi(0,k|0,l|0,c|0,f|0,XR(B)|0)|0),$A(B),C=m}function uOe(){var s=0;return o[8008]|0||(AOe(10768),s=8008,n[s>>2]=1,n[s+4>>2]=0),10768}function AOe(s){s=s|0,ao(s,fOe()|0,3)}function fOe(){return 1784}function pOe(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0;m=C,C=C+16|0,k=m+4|0,F=m,B=jo(hOe()|0)|0,c=tm(c)|0,n[F>>2]=n[f>>2],n[k>>2]=n[F>>2],f=L0(k)|0,MD(s,vi(0,B|0,l|0,c|0,f|0,zR(d)|0)|0),C=m}function hOe(){var s=0;return o[8016]|0||(gOe(10780),s=8016,n[s>>2]=1,n[s+4>>2]=0),10780}function gOe(s){s=s|0,ao(s,dOe()|0,3)}function dOe(){return 1800}function mOe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;f=jo(yOe()|0)|0,MD(s,un(0,f|0,l|0,tm(c)|0)|0)}function yOe(){var s=0;return o[8024]|0||(EOe(10792),s=8024,n[s>>2]=1,n[s+4>>2]=0),10792}function EOe(s){s=s|0,ao(s,COe()|0,1)}function COe(){return 1816}function IOe(){wOe(),BOe(),vOe()}function wOe(){n[2702]=K7(65536)|0}function BOe(){GOe(10856)}function vOe(){DOe(10816)}function DOe(s){s=s|0,POe(s,5044),SOe(s)|0}function POe(s,l){s=s|0,l=l|0;var c=0;c=c7()|0,n[s>>2]=c,MOe(c,l),Fp(n[s>>2]|0)}function SOe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,bOe()|0),s|0}function bOe(){var s=0;return o[8032]|0||(C7(10820),pr(64,10820,U|0)|0,s=8032,n[s>>2]=1,n[s+4>>2]=0),Lr(10820)|0||C7(10820),10820}function C7(s){s=s|0,QOe(s),N0(s,25)}function xOe(s){s=s|0,kOe(s+24|0)}function kOe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function QOe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,18,l,NOe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function FOe(s,l){s=s|0,l=l|0,ROe(s,l)}function ROe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;c=C,C=C+16|0,f=c,d=c+4|0,F0(d,l),n[f>>2]=R0(d,l)|0,TOe(s,f),C=c}function TOe(s,l){s=s|0,l=l|0,I7(s+4|0,n[l>>2]|0),o[s+8>>0]=1}function I7(s,l){s=s|0,l=l|0,n[s>>2]=l}function NOe(){return 1824}function LOe(s){return s=s|0,OOe(s)|0}function OOe(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0;return c=C,C=C+16|0,d=c+4|0,B=c,f=Za(8)|0,l=f,k=Yt(4)|0,F0(d,s),I7(k,R0(d,s)|0),m=l+4|0,n[m>>2]=k,s=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],u7(s,m,d),n[f>>2]=s,C=c,l|0}function Za(s){s=s|0;var l=0,c=0;return s=s+7&-8,s>>>0<=32768&&(l=n[2701]|0,s>>>0<=(65536-l|0)>>>0)?(c=(n[2702]|0)+l|0,n[2701]=l+s,s=c):(s=K7(s+8|0)|0,n[s>>2]=n[2703],n[2703]=s,s=s+8|0),s|0}function MOe(s,l){s=s|0,l=l|0,n[s>>2]=UOe()|0,n[s+4>>2]=_Oe()|0,n[s+12>>2]=l,n[s+8>>2]=HOe()|0,n[s+32>>2]=9}function UOe(){return 11744}function _Oe(){return 1832}function HOe(){return ND()|0}function qOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(jOe(c),yt(c)):l|0&&yt(l)}function jOe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function GOe(s){s=s|0,WOe(s,5052),YOe(s)|0,KOe(s,5058,26)|0,VOe(s,5069,1)|0,JOe(s,5077,10)|0,zOe(s,5087,19)|0,XOe(s,5094,27)|0}function WOe(s,l){s=s|0,l=l|0;var c=0;c=jUe()|0,n[s>>2]=c,GUe(c,l),Fp(n[s>>2]|0)}function YOe(s){s=s|0;var l=0;return l=n[s>>2]|0,T0(l,xUe()|0),s|0}function KOe(s,l,c){return s=s|0,l=l|0,c=c|0,AUe(s,mn(l)|0,c,0),s|0}function VOe(s,l,c){return s=s|0,l=l|0,c=c|0,zMe(s,mn(l)|0,c,0),s|0}function JOe(s,l,c){return s=s|0,l=l|0,c=c|0,bMe(s,mn(l)|0,c,0),s|0}function zOe(s,l,c){return s=s|0,l=l|0,c=c|0,pMe(s,mn(l)|0,c,0),s|0}function w7(s,l){s=s|0,l=l|0;var c=0,f=0;e:for(;;){for(c=n[2703]|0;;){if((c|0)==(l|0))break e;if(f=n[c>>2]|0,n[2703]=f,!c)c=f;else break}yt(c)}n[2701]=s}function XOe(s,l,c){return s=s|0,l=l|0,c=c|0,ZOe(s,mn(l)|0,c,0),s|0}function ZOe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=ZR()|0,s=$Oe(c)|0,yn(m,l,d,s,eMe(c,f)|0,f)}function ZR(){var s=0,l=0;if(o[8040]|0||(v7(10860),pr(65,10860,U|0)|0,l=8040,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10860)|0)){s=10860,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));v7(10860)}return 10860}function $Oe(s){return s=s|0,s|0}function eMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=ZR()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(B7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(tMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function B7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function tMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=rMe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,nMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,B7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,iMe(s,d),sMe(d),C=k;return}}function rMe(s){return s=s|0,536870911}function nMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function iMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function sMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function v7(s){s=s|0,lMe(s)}function oMe(s){s=s|0,aMe(s+24|0)}function aMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function lMe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,11,l,cMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function cMe(){return 1840}function uMe(s,l,c){s=s|0,l=l|0,c=c|0,fMe(n[(AMe(s)|0)>>2]|0,l,c)}function AMe(s){return s=s|0,(n[(ZR()|0)+24>>2]|0)+(s<<3)|0}function fMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+1|0,d=f,F0(m,l),l=R0(m,l)|0,F0(d,c),c=R0(d,c)|0,tf[s&31](l,c),C=f}function pMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=$R()|0,s=hMe(c)|0,yn(m,l,d,s,gMe(c,f)|0,f)}function $R(){var s=0,l=0;if(o[8048]|0||(P7(10896),pr(66,10896,U|0)|0,l=8048,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10896)|0)){s=10896,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));P7(10896)}return 10896}function hMe(s){return s=s|0,s|0}function gMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=$R()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(D7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(dMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function D7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function dMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=mMe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,yMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,D7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,EMe(s,d),CMe(d),C=k;return}}function mMe(s){return s=s|0,536870911}function yMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function EMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function CMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function P7(s){s=s|0,BMe(s)}function IMe(s){s=s|0,wMe(s+24|0)}function wMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function BMe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,11,l,vMe()|0,1),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function vMe(){return 1852}function DMe(s,l){return s=s|0,l=l|0,SMe(n[(PMe(s)|0)>>2]|0,l)|0}function PMe(s){return s=s|0,(n[($R()|0)+24>>2]|0)+(s<<3)|0}function SMe(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,F0(f,l),l=R0(f,l)|0,l=RD(_0[s&31](l)|0)|0,C=c,l|0}function bMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=eT()|0,s=xMe(c)|0,yn(m,l,d,s,kMe(c,f)|0,f)}function eT(){var s=0,l=0;if(o[8056]|0||(b7(10932),pr(67,10932,U|0)|0,l=8056,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10932)|0)){s=10932,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));b7(10932)}return 10932}function xMe(s){return s=s|0,s|0}function kMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=eT()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(S7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(QMe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function S7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function QMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=FMe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,RMe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,S7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,TMe(s,d),NMe(d),C=k;return}}function FMe(s){return s=s|0,536870911}function RMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function TMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function NMe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function b7(s){s=s|0,MMe(s)}function LMe(s){s=s|0,OMe(s+24|0)}function OMe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function MMe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,7,l,UMe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function UMe(){return 1860}function _Me(s,l,c){return s=s|0,l=l|0,c=c|0,qMe(n[(HMe(s)|0)>>2]|0,l,c)|0}function HMe(s){return s=s|0,(n[(eT()|0)+24>>2]|0)+(s<<3)|0}function qMe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0;return f=C,C=C+32|0,B=f+12|0,m=f+8|0,k=f,F=f+16|0,d=f+4|0,jMe(F,l),GMe(k,F,l),bp(d,c),c=xp(d,c)|0,n[B>>2]=n[k>>2],sw[s&15](m,B,c),c=WMe(m)|0,xu(m),kp(d),C=f,c|0}function jMe(s,l){s=s|0,l=l|0}function GMe(s,l,c){s=s|0,l=l|0,c=c|0,YMe(s,c)}function WMe(s){return s=s|0,ys(s)|0}function YMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0;d=C,C=C+16|0,c=d,f=l,f&1?(KMe(c,0),ia(f|0,c|0)|0,VMe(s,c),JMe(c)):n[s>>2]=n[l>>2],C=d}function KMe(s,l){s=s|0,l=l|0,Fc(s,l),n[s+4>>2]=0,o[s+8>>0]=0}function VMe(s,l){s=s|0,l=l|0,n[s>>2]=n[l+4>>2]}function JMe(s){s=s|0,o[s+8>>0]=0}function zMe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=tT()|0,s=XMe(c)|0,yn(m,l,d,s,ZMe(c,f)|0,f)}function tT(){var s=0,l=0;if(o[8064]|0||(k7(10968),pr(68,10968,U|0)|0,l=8064,n[l>>2]=1,n[l+4>>2]=0),!(Lr(10968)|0)){s=10968,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));k7(10968)}return 10968}function XMe(s){return s=s|0,s|0}function ZMe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=tT()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(x7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):($Me(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function x7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function $Me(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=eUe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,tUe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,x7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,rUe(s,d),nUe(d),C=k;return}}function eUe(s){return s=s|0,536870911}function tUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function rUe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function nUe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function k7(s){s=s|0,oUe(s)}function iUe(s){s=s|0,sUe(s+24|0)}function sUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function oUe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,1,l,aUe()|0,5),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function aUe(){return 1872}function lUe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,uUe(n[(cUe(s)|0)>>2]|0,l,c,f,d,m)}function cUe(s){return s=s|0,(n[(tT()|0)+24>>2]|0)+(s<<3)|0}function uUe(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0;B=C,C=C+32|0,k=B+16|0,F=B+12|0,M=B+8|0,O=B+4|0,j=B,bp(k,l),l=xp(k,l)|0,bp(F,c),c=xp(F,c)|0,bp(M,f),f=xp(M,f)|0,bp(O,d),d=xp(O,d)|0,bp(j,m),m=xp(j,m)|0,Z7[s&1](l,c,f,d,m),kp(j),kp(O),kp(M),kp(F),kp(k),C=B}function AUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;m=n[s>>2]|0,d=rT()|0,s=fUe(c)|0,yn(m,l,d,s,pUe(c,f)|0,f)}function rT(){var s=0,l=0;if(o[8072]|0||(F7(11004),pr(69,11004,U|0)|0,l=8072,n[l>>2]=1,n[l+4>>2]=0),!(Lr(11004)|0)){s=11004,l=s+36|0;do n[s>>2]=0,s=s+4|0;while((s|0)<(l|0));F7(11004)}return 11004}function fUe(s){return s=s|0,s|0}function pUe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0,k=0,F=0;return k=C,C=C+16|0,d=k,m=k+4|0,n[d>>2]=s,F=rT()|0,B=F+24|0,l=dr(l,4)|0,n[m>>2]=l,c=F+28|0,f=n[c>>2]|0,f>>>0<(n[F+32>>2]|0)>>>0?(Q7(f,s,l),l=(n[c>>2]|0)+8|0,n[c>>2]=l):(hUe(B,d,m),l=n[c>>2]|0),C=k,(l-(n[B>>2]|0)>>3)+-1|0}function Q7(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,n[s+4>>2]=c}function hUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0;if(k=C,C=C+32|0,d=k,m=s+4|0,B=((n[m>>2]|0)-(n[s>>2]|0)>>3)+1|0,f=gUe(s)|0,f>>>0>>0)Zr(s);else{F=n[s>>2]|0,O=(n[s+8>>2]|0)-F|0,M=O>>2,dUe(d,O>>3>>>0>>1>>>0?M>>>0>>0?B:M:f,(n[m>>2]|0)-F>>3,s+8|0),B=d+8|0,Q7(n[B>>2]|0,n[l>>2]|0,n[c>>2]|0),n[B>>2]=(n[B>>2]|0)+8,mUe(s,d),yUe(d),C=k;return}}function gUe(s){return s=s|0,536870911}function dUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0;n[s+12>>2]=0,n[s+16>>2]=f;do if(l)if(l>>>0>536870911)Tt();else{d=Yt(l<<3)|0;break}else d=0;while(!1);n[s>>2]=d,f=d+(c<<3)|0,n[s+8>>2]=f,n[s+4>>2]=f,n[s+12>>2]=d+(l<<3)}function mUe(s,l){s=s|0,l=l|0;var c=0,f=0,d=0,m=0,B=0;f=n[s>>2]|0,B=s+4|0,m=l+4|0,d=(n[B>>2]|0)-f|0,c=(n[m>>2]|0)+(0-(d>>3)<<3)|0,n[m>>2]=c,(d|0)>0?(xr(c|0,f|0,d|0)|0,f=m,c=n[m>>2]|0):f=m,m=n[s>>2]|0,n[s>>2]=c,n[f>>2]=m,m=l+8|0,d=n[B>>2]|0,n[B>>2]=n[m>>2],n[m>>2]=d,m=s+8|0,B=l+12|0,s=n[m>>2]|0,n[m>>2]=n[B>>2],n[B>>2]=s,n[l>>2]=n[f>>2]}function yUe(s){s=s|0;var l=0,c=0,f=0;l=n[s+4>>2]|0,c=s+8|0,f=n[c>>2]|0,(f|0)!=(l|0)&&(n[c>>2]=f+(~((f+-8-l|0)>>>3)<<3)),s=n[s>>2]|0,s|0&&yt(s)}function F7(s){s=s|0,IUe(s)}function EUe(s){s=s|0,CUe(s+24|0)}function CUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function IUe(s){s=s|0;var l=0;l=Jr()|0,zr(s,1,12,l,wUe()|0,2),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function wUe(){return 1896}function BUe(s,l,c){s=s|0,l=l|0,c=c|0,DUe(n[(vUe(s)|0)>>2]|0,l,c)}function vUe(s){return s=s|0,(n[(rT()|0)+24>>2]|0)+(s<<3)|0}function DUe(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;f=C,C=C+16|0,m=f+4|0,d=f,PUe(m,l),l=SUe(m,l)|0,bp(d,c),c=xp(d,c)|0,tf[s&31](l,c),kp(d),C=f}function PUe(s,l){s=s|0,l=l|0}function SUe(s,l){return s=s|0,l=l|0,bUe(l)|0}function bUe(s){return s=s|0,s|0}function xUe(){var s=0;return o[8080]|0||(R7(11040),pr(70,11040,U|0)|0,s=8080,n[s>>2]=1,n[s+4>>2]=0),Lr(11040)|0||R7(11040),11040}function R7(s){s=s|0,FUe(s),N0(s,71)}function kUe(s){s=s|0,QUe(s+24|0)}function QUe(s){s=s|0;var l=0,c=0,f=0;c=n[s>>2]|0,f=c,c|0&&(s=s+4|0,l=n[s>>2]|0,(l|0)!=(c|0)&&(n[s>>2]=l+(~((l+-8-f|0)>>>3)<<3)),yt(c))}function FUe(s){s=s|0;var l=0;l=Jr()|0,zr(s,5,7,l,LUe()|0,0),n[s+24>>2]=0,n[s+28>>2]=0,n[s+32>>2]=0}function RUe(s){s=s|0,TUe(s)}function TUe(s){s=s|0,NUe(s)}function NUe(s){s=s|0,o[s+8>>0]=1}function LUe(){return 1936}function OUe(){return MUe()|0}function MUe(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0;return l=C,C=C+16|0,d=l+4|0,B=l,c=Za(8)|0,s=c,m=s+4|0,n[m>>2]=Yt(1)|0,f=Yt(8)|0,m=n[m>>2]|0,n[B>>2]=0,n[d>>2]=n[B>>2],UUe(f,m,d),n[c>>2]=f,C=l,s|0}function UUe(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]=l,c=Yt(16)|0,n[c+4>>2]=0,n[c+8>>2]=0,n[c>>2]=1916,n[c+12>>2]=l,n[s+4>>2]=c}function _Ue(s){s=s|0,im(s),yt(s)}function HUe(s){s=s|0,s=n[s+12>>2]|0,s|0&&yt(s)}function qUe(s){s=s|0,yt(s)}function jUe(){var s=0;return o[8088]|0||(zUe(11076),pr(25,11076,U|0)|0,s=8088,n[s>>2]=1,n[s+4>>2]=0),11076}function GUe(s,l){s=s|0,l=l|0,n[s>>2]=WUe()|0,n[s+4>>2]=YUe()|0,n[s+12>>2]=l,n[s+8>>2]=KUe()|0,n[s+32>>2]=10}function WUe(){return 11745}function YUe(){return 1940}function KUe(){return TD()|0}function VUe(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,(Qp(f,896)|0)==512?c|0&&(JUe(c),yt(c)):l|0&&yt(l)}function JUe(s){s=s|0,s=n[s+4>>2]|0,s|0&&Rp(s)}function zUe(s){s=s|0,Sp(s)}function Tc(s,l){s=s|0,l=l|0,n[s>>2]=l}function nT(s){return s=s|0,n[s>>2]|0}function XUe(s){return s=s|0,o[n[s>>2]>>0]|0}function ZUe(s,l){s=s|0,l=l|0;var c=0,f=0;c=C,C=C+16|0,f=c,n[f>>2]=n[s>>2],$Ue(l,f)|0,C=c}function $Ue(s,l){s=s|0,l=l|0;var c=0;return c=e4e(n[s>>2]|0,l)|0,l=s+4|0,n[(n[l>>2]|0)+8>>2]=c,n[(n[l>>2]|0)+8>>2]|0}function e4e(s,l){s=s|0,l=l|0;var c=0,f=0;return c=C,C=C+16|0,f=c,$a(f),s=ys(s)|0,l=t4e(s,n[l>>2]|0)|0,el(f),C=c,l|0}function $a(s){s=s|0,n[s>>2]=n[2701],n[s+4>>2]=n[2703]}function t4e(s,l){s=s|0,l=l|0;var c=0;return c=jo(r4e()|0)|0,un(0,c|0,s|0,zR(l)|0)|0}function el(s){s=s|0,w7(n[s>>2]|0,n[s+4>>2]|0)}function r4e(){var s=0;return o[8096]|0||(n4e(11120),s=8096,n[s>>2]=1,n[s+4>>2]=0),11120}function n4e(s){s=s|0,ao(s,i4e()|0,1)}function i4e(){return 1948}function s4e(){o4e()}function o4e(){var s=0,l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0;if(Oe=C,C=C+16|0,O=Oe+4|0,j=Oe,Ro(65536,10804,n[2702]|0,10812),c=n7()|0,l=n[c>>2]|0,s=n[l>>2]|0,s|0)for(f=n[c+8>>2]|0,c=n[c+4>>2]|0;du(s|0,u[c>>0]|0|0,o[f>>0]|0),l=l+4|0,s=n[l>>2]|0,s;)f=f+1|0,c=c+1|0;if(s=i7()|0,l=n[s>>2]|0,l|0)do QA(l|0,n[s+4>>2]|0),s=s+8|0,l=n[s>>2]|0;while(l|0);QA(a4e()|0,5167),M=$d()|0,s=n[M>>2]|0;e:do if(s|0){do l4e(n[s+4>>2]|0),s=n[s>>2]|0;while(s|0);if(s=n[M>>2]|0,s|0){F=M;do{for(;d=s,s=n[s>>2]|0,d=n[d+4>>2]|0,!!(c4e(d)|0);)if(n[j>>2]=F,n[O>>2]=n[j>>2],u4e(M,O)|0,!s)break e;if(A4e(d),F=n[F>>2]|0,l=T7(d)|0,m=Bi()|0,B=C,C=C+((1*(l<<2)|0)+15&-16)|0,k=C,C=C+((1*(l<<2)|0)+15&-16)|0,l=n[(d7(d)|0)>>2]|0,l|0)for(c=B,f=k;n[c>>2]=n[(em(n[l+4>>2]|0)|0)>>2],n[f>>2]=n[l+8>>2],l=n[l>>2]|0,l;)c=c+4|0,f=f+4|0;Qe=em(d)|0,l=f4e(d)|0,c=T7(d)|0,f=p4e(d)|0,Il(Qe|0,l|0,B|0,k|0,c|0,f|0,GR(d)|0),kA(m|0)}while(s|0)}}while(!1);if(s=n[(WR()|0)>>2]|0,s|0)do Qe=s+4|0,M=YR(Qe)|0,d=tw(M)|0,m=$I(M)|0,B=(ew(M)|0)+1|0,k=UD(M)|0,F=N7(Qe)|0,M=Lr(M)|0,O=LD(Qe)|0,j=iT(Qe)|0,mc(0,d|0,m|0,B|0,k|0,F|0,M|0,O|0,j|0,sT(Qe)|0),s=n[s>>2]|0;while(s|0);s=n[($d()|0)>>2]|0;e:do if(s|0){t:for(;;){if(l=n[s+4>>2]|0,l|0&&(oe=n[(em(l)|0)>>2]|0,We=n[(m7(l)|0)>>2]|0,We|0)){c=We;do{l=c+4|0,f=YR(l)|0;r:do if(f|0)switch(Lr(f)|0){case 0:break t;case 4:case 3:case 2:{k=tw(f)|0,F=$I(f)|0,M=(ew(f)|0)+1|0,O=UD(f)|0,j=Lr(f)|0,Qe=LD(l)|0,mc(oe|0,k|0,F|0,M|0,O|0,0,j|0,Qe|0,iT(l)|0,sT(l)|0);break r}case 1:{B=tw(f)|0,k=$I(f)|0,F=(ew(f)|0)+1|0,M=UD(f)|0,O=N7(l)|0,j=Lr(f)|0,Qe=LD(l)|0,mc(oe|0,B|0,k|0,F|0,M|0,O|0,j|0,Qe|0,iT(l)|0,sT(l)|0);break r}case 5:{M=tw(f)|0,O=$I(f)|0,j=(ew(f)|0)+1|0,Qe=UD(f)|0,mc(oe|0,M|0,O|0,j|0,Qe|0,h4e(f)|0,Lr(f)|0,0,0,0);break r}default:break r}while(!1);c=n[c>>2]|0}while(c|0)}if(s=n[s>>2]|0,!s)break e}Tt()}while(!1);we(),C=Oe}function a4e(){return 11703}function l4e(s){s=s|0,o[s+40>>0]=0}function c4e(s){return s=s|0,(o[s+40>>0]|0)!=0|0}function u4e(s,l){return s=s|0,l=l|0,l=g4e(l)|0,s=n[l>>2]|0,n[l>>2]=n[s>>2],yt(s),n[l>>2]|0}function A4e(s){s=s|0,o[s+40>>0]=1}function T7(s){return s=s|0,n[s+20>>2]|0}function f4e(s){return s=s|0,n[s+8>>2]|0}function p4e(s){return s=s|0,n[s+32>>2]|0}function UD(s){return s=s|0,n[s+4>>2]|0}function N7(s){return s=s|0,n[s+4>>2]|0}function iT(s){return s=s|0,n[s+8>>2]|0}function sT(s){return s=s|0,n[s+16>>2]|0}function h4e(s){return s=s|0,n[s+20>>2]|0}function g4e(s){return s=s|0,n[s>>2]|0}function _D(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0;Lt=C,C=C+16|0,oe=Lt;do if(s>>>0<245){if(M=s>>>0<11?16:s+11&-8,s=M>>>3,j=n[2783]|0,c=j>>>s,c&3|0)return l=(c&1^1)+s|0,s=11172+(l<<1<<2)|0,c=s+8|0,f=n[c>>2]|0,d=f+8|0,m=n[d>>2]|0,(s|0)==(m|0)?n[2783]=j&~(1<>2]=s,n[c>>2]=m),Ge=l<<3,n[f+4>>2]=Ge|3,Ge=f+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1,Ge=d,C=Lt,Ge|0;if(O=n[2785]|0,M>>>0>O>>>0){if(c|0)return l=2<>>12&16,l=l>>>B,c=l>>>5&8,l=l>>>c,d=l>>>2&4,l=l>>>d,s=l>>>1&2,l=l>>>s,f=l>>>1&1,f=(c|B|d|s|f)+(l>>>f)|0,l=11172+(f<<1<<2)|0,s=l+8|0,d=n[s>>2]|0,B=d+8|0,c=n[B>>2]|0,(l|0)==(c|0)?(s=j&~(1<>2]=l,n[s>>2]=c,s=j),m=(f<<3)-M|0,n[d+4>>2]=M|3,f=d+M|0,n[f+4>>2]=m|1,n[f+m>>2]=m,O|0&&(d=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=d,n[l+12>>2]=d,n[d+8>>2]=l,n[d+12>>2]=c),n[2785]=m,n[2788]=f,Ge=B,C=Lt,Ge|0;if(k=n[2784]|0,k){if(c=(k&0-k)+-1|0,B=c>>>12&16,c=c>>>B,m=c>>>5&8,c=c>>>m,F=c>>>2&4,c=c>>>F,f=c>>>1&2,c=c>>>f,s=c>>>1&1,s=n[11436+((m|B|F|f|s)+(c>>>s)<<2)>>2]|0,c=(n[s+4>>2]&-8)-M|0,f=n[s+16+(((n[s+16>>2]|0)==0&1)<<2)>>2]|0,!f)F=s,m=c;else{do B=(n[f+4>>2]&-8)-M|0,F=B>>>0>>0,c=F?B:c,s=F?f:s,f=n[f+16+(((n[f+16>>2]|0)==0&1)<<2)>>2]|0;while(f|0);F=s,m=c}if(B=F+M|0,F>>>0>>0){d=n[F+24>>2]|0,l=n[F+12>>2]|0;do if((l|0)==(F|0)){if(s=F+20|0,l=n[s>>2]|0,!l&&(s=F+16|0,l=n[s>>2]|0,!l)){c=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0,c=l}else c=n[F+8>>2]|0,n[c+12>>2]=l,n[l+8>>2]=c,c=l;while(!1);do if(d|0){if(l=n[F+28>>2]|0,s=11436+(l<<2)|0,(F|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[2784]=k&~(1<>2]|0)!=(F|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=d,l=n[F+16>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),l=n[F+20>>2]|0,l|0&&(n[c+20>>2]=l,n[l+24>>2]=c)}while(!1);return m>>>0<16?(Ge=m+M|0,n[F+4>>2]=Ge|3,Ge=F+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1):(n[F+4>>2]=M|3,n[B+4>>2]=m|1,n[B+m>>2]=m,O|0&&(f=n[2788]|0,l=O>>>3,c=11172+(l<<1<<2)|0,l=1<>2]|0):(n[2783]=j|l,l=c,s=c+8|0),n[s>>2]=f,n[l+12>>2]=f,n[f+8>>2]=l,n[f+12>>2]=c),n[2785]=m,n[2788]=B),Ge=F+8|0,C=Lt,Ge|0}else j=M}else j=M}else j=M}else if(s>>>0<=4294967231)if(s=s+11|0,M=s&-8,F=n[2784]|0,F){f=0-M|0,s=s>>>8,s?M>>>0>16777215?k=31:(j=(s+1048320|0)>>>16&8,_e=s<>>16&4,_e=_e<>>16&2,k=14-(O|j|k)+(_e<>>15)|0,k=M>>>(k+7|0)&1|k<<1):k=0,c=n[11436+(k<<2)>>2]|0;e:do if(!c)c=0,s=0,_e=57;else for(s=0,B=M<<((k|0)==31?0:25-(k>>>1)|0),m=0;;){if(d=(n[c+4>>2]&-8)-M|0,d>>>0>>0)if(d)s=c,f=d;else{s=c,f=0,d=c,_e=61;break e}if(d=n[c+20>>2]|0,c=n[c+16+(B>>>31<<2)>>2]|0,m=(d|0)==0|(d|0)==(c|0)?m:d,d=(c|0)==0,d){c=m,_e=57;break}else B=B<<((d^1)&1)}while(!1);if((_e|0)==57){if((c|0)==0&(s|0)==0){if(s=2<>>12&16,j=j>>>B,m=j>>>5&8,j=j>>>m,k=j>>>2&4,j=j>>>k,O=j>>>1&2,j=j>>>O,c=j>>>1&1,s=0,c=n[11436+((m|B|k|O|c)+(j>>>c)<<2)>>2]|0}c?(d=c,_e=61):(k=s,B=f)}if((_e|0)==61)for(;;)if(_e=0,c=(n[d+4>>2]&-8)-M|0,j=c>>>0>>0,c=j?c:f,s=j?d:s,d=n[d+16+(((n[d+16>>2]|0)==0&1)<<2)>>2]|0,d)f=c,_e=61;else{k=s,B=c;break}if(k|0&&B>>>0<((n[2785]|0)-M|0)>>>0){if(m=k+M|0,k>>>0>=m>>>0)return Ge=0,C=Lt,Ge|0;d=n[k+24>>2]|0,l=n[k+12>>2]|0;do if((l|0)==(k|0)){if(s=k+20|0,l=n[s>>2]|0,!l&&(s=k+16|0,l=n[s>>2]|0,!l)){l=0;break}for(;;){if(c=l+20|0,f=n[c>>2]|0,f|0){l=f,s=c;continue}if(c=l+16|0,f=n[c>>2]|0,f)l=f,s=c;else break}n[s>>2]=0}else Ge=n[k+8>>2]|0,n[Ge+12>>2]=l,n[l+8>>2]=Ge;while(!1);do if(d){if(s=n[k+28>>2]|0,c=11436+(s<<2)|0,(k|0)==(n[c>>2]|0)){if(n[c>>2]=l,!l){f=F&~(1<>2]|0)!=(k|0)&1)<<2)>>2]=l,!l){f=F;break}n[l+24>>2]=d,s=n[k+16>>2]|0,s|0&&(n[l+16>>2]=s,n[s+24>>2]=l),s=n[k+20>>2]|0,s&&(n[l+20>>2]=s,n[s+24>>2]=l),f=F}else f=F;while(!1);do if(B>>>0>=16){if(n[k+4>>2]=M|3,n[m+4>>2]=B|1,n[m+B>>2]=B,l=B>>>3,B>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=m,n[l+12>>2]=m,n[m+8>>2]=l,n[m+12>>2]=c;break}if(l=B>>>8,l?B>>>0>16777215?l=31:(_e=(l+1048320|0)>>>16&8,Ge=l<<_e,ct=(Ge+520192|0)>>>16&4,Ge=Ge<>>16&2,l=14-(ct|_e|l)+(Ge<>>15)|0,l=B>>>(l+7|0)&1|l<<1):l=0,c=11436+(l<<2)|0,n[m+28>>2]=l,s=m+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}for(s=B<<((l|0)==31?0:25-(l>>>1)|0),c=n[c>>2]|0;;){if((n[c+4>>2]&-8|0)==(B|0)){_e=97;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=96;break}}if((_e|0)==96){n[f>>2]=m,n[m+24>>2]=c,n[m+12>>2]=m,n[m+8>>2]=m;break}else if((_e|0)==97){_e=c+8|0,Ge=n[_e>>2]|0,n[Ge+12>>2]=m,n[_e>>2]=m,n[m+8>>2]=Ge,n[m+12>>2]=c,n[m+24>>2]=0;break}}else Ge=B+M|0,n[k+4>>2]=Ge|3,Ge=k+Ge+4|0,n[Ge>>2]=n[Ge>>2]|1;while(!1);return Ge=k+8|0,C=Lt,Ge|0}else j=M}else j=M;else j=-1;while(!1);if(c=n[2785]|0,c>>>0>=j>>>0)return l=c-j|0,s=n[2788]|0,l>>>0>15?(Ge=s+j|0,n[2788]=Ge,n[2785]=l,n[Ge+4>>2]=l|1,n[Ge+l>>2]=l,n[s+4>>2]=j|3):(n[2785]=0,n[2788]=0,n[s+4>>2]=c|3,Ge=s+c+4|0,n[Ge>>2]=n[Ge>>2]|1),Ge=s+8|0,C=Lt,Ge|0;if(B=n[2786]|0,B>>>0>j>>>0)return ct=B-j|0,n[2786]=ct,Ge=n[2789]|0,_e=Ge+j|0,n[2789]=_e,n[_e+4>>2]=ct|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,C=Lt,Ge|0;if(n[2901]|0?s=n[2903]|0:(n[2903]=4096,n[2902]=4096,n[2904]=-1,n[2905]=-1,n[2906]=0,n[2894]=0,s=oe&-16^1431655768,n[oe>>2]=s,n[2901]=s,s=4096),k=j+48|0,F=j+47|0,m=s+F|0,d=0-s|0,M=m&d,M>>>0<=j>>>0||(s=n[2893]|0,s|0&&(O=n[2891]|0,oe=O+M|0,oe>>>0<=O>>>0|oe>>>0>s>>>0)))return Ge=0,C=Lt,Ge|0;e:do if(n[2894]&4)l=0,_e=133;else{c=n[2789]|0;t:do if(c){for(f=11580;s=n[f>>2]|0,!(s>>>0<=c>>>0&&(Qe=f+4|0,(s+(n[Qe>>2]|0)|0)>>>0>c>>>0));)if(s=n[f+8>>2]|0,s)f=s;else{_e=118;break t}if(l=m-B&d,l>>>0<2147483647)if(s=Tp(l|0)|0,(s|0)==((n[f>>2]|0)+(n[Qe>>2]|0)|0)){if((s|0)!=-1){B=l,m=s,_e=135;break e}}else f=s,_e=126;else l=0}else _e=118;while(!1);do if((_e|0)==118)if(c=Tp(0)|0,(c|0)!=-1&&(l=c,We=n[2902]|0,Oe=We+-1|0,l=(Oe&l|0?(Oe+l&0-We)-l|0:0)+M|0,We=n[2891]|0,Oe=l+We|0,l>>>0>j>>>0&l>>>0<2147483647)){if(Qe=n[2893]|0,Qe|0&&Oe>>>0<=We>>>0|Oe>>>0>Qe>>>0){l=0;break}if(s=Tp(l|0)|0,(s|0)==(c|0)){B=l,m=c,_e=135;break e}else f=s,_e=126}else l=0;while(!1);do if((_e|0)==126){if(c=0-l|0,!(k>>>0>l>>>0&(l>>>0<2147483647&(f|0)!=-1)))if((f|0)==-1){l=0;break}else{B=l,m=f,_e=135;break e}if(s=n[2903]|0,s=F-l+s&0-s,s>>>0>=2147483647){B=l,m=f,_e=135;break e}if((Tp(s|0)|0)==-1){Tp(c|0)|0,l=0;break}else{B=s+l|0,m=f,_e=135;break e}}while(!1);n[2894]=n[2894]|4,_e=133}while(!1);if((_e|0)==133&&M>>>0<2147483647&&(ct=Tp(M|0)|0,Qe=Tp(0)|0,rt=Qe-ct|0,Xe=rt>>>0>(j+40|0)>>>0,!((ct|0)==-1|Xe^1|ct>>>0>>0&((ct|0)!=-1&(Qe|0)!=-1)^1))&&(B=Xe?rt:l,m=ct,_e=135),(_e|0)==135){l=(n[2891]|0)+B|0,n[2891]=l,l>>>0>(n[2892]|0)>>>0&&(n[2892]=l),F=n[2789]|0;do if(F){for(l=11580;;){if(s=n[l>>2]|0,c=l+4|0,f=n[c>>2]|0,(m|0)==(s+f|0)){_e=145;break}if(d=n[l+8>>2]|0,d)l=d;else break}if((_e|0)==145&&!(n[l+12>>2]&8|0)&&F>>>0>>0&F>>>0>=s>>>0){n[c>>2]=f+B,Ge=F+8|0,Ge=Ge&7|0?0-Ge&7:0,_e=F+Ge|0,Ge=(n[2786]|0)+(B-Ge)|0,n[2789]=_e,n[2786]=Ge,n[_e+4>>2]=Ge|1,n[_e+Ge+4>>2]=40,n[2790]=n[2905];break}for(m>>>0<(n[2787]|0)>>>0&&(n[2787]=m),c=m+B|0,l=11580;;){if((n[l>>2]|0)==(c|0)){_e=153;break}if(s=n[l+8>>2]|0,s)l=s;else break}if((_e|0)==153&&!(n[l+12>>2]&8|0)){n[l>>2]=m,O=l+4|0,n[O>>2]=(n[O>>2]|0)+B,O=m+8|0,O=m+(O&7|0?0-O&7:0)|0,l=c+8|0,l=c+(l&7|0?0-l&7:0)|0,M=O+j|0,k=l-O-j|0,n[O+4>>2]=j|3;do if((l|0)!=(F|0)){if((l|0)==(n[2788]|0)){Ge=(n[2785]|0)+k|0,n[2785]=Ge,n[2788]=M,n[M+4>>2]=Ge|1,n[M+Ge>>2]=Ge;break}if(s=n[l+4>>2]|0,(s&3|0)==1){B=s&-8,f=s>>>3;e:do if(s>>>0<256)if(s=n[l+8>>2]|0,c=n[l+12>>2]|0,(c|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=c,n[c+8>>2]=s;break}else{m=n[l+24>>2]|0,s=n[l+12>>2]|0;do if((s|0)==(l|0)){if(f=l+16|0,c=f+4|0,s=n[c>>2]|0,!s)if(s=n[f>>2]|0,s)c=f;else{s=0;break}for(;;){if(f=s+20|0,d=n[f>>2]|0,d|0){s=d,c=f;continue}if(f=s+16|0,d=n[f>>2]|0,d)s=d,c=f;else break}n[c>>2]=0}else Ge=n[l+8>>2]|0,n[Ge+12>>2]=s,n[s+8>>2]=Ge;while(!1);if(!m)break;c=n[l+28>>2]|0,f=11436+(c<<2)|0;do if((l|0)!=(n[f>>2]|0)){if(n[m+16+(((n[m+16>>2]|0)!=(l|0)&1)<<2)>>2]=s,!s)break e}else{if(n[f>>2]=s,s|0)break;n[2784]=n[2784]&~(1<>2]=m,c=l+16|0,f=n[c>>2]|0,f|0&&(n[s+16>>2]=f,n[f+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(!1);l=l+B|0,d=B+k|0}else d=k;if(l=l+4|0,n[l>>2]=n[l>>2]&-2,n[M+4>>2]=d|1,n[M+d>>2]=d,l=d>>>3,d>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=M,n[l+12>>2]=M,n[M+8>>2]=l,n[M+12>>2]=c;break}l=d>>>8;do if(!l)l=0;else{if(d>>>0>16777215){l=31;break}_e=(l+1048320|0)>>>16&8,Ge=l<<_e,ct=(Ge+520192|0)>>>16&4,Ge=Ge<>>16&2,l=14-(ct|_e|l)+(Ge<>>15)|0,l=d>>>(l+7|0)&1|l<<1}while(!1);if(f=11436+(l<<2)|0,n[M+28>>2]=l,s=M+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[2784]|0,c=1<>2]=M,n[M+24>>2]=f,n[M+12>>2]=M,n[M+8>>2]=M;break}for(s=d<<((l|0)==31?0:25-(l>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){_e=194;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=193;break}}if((_e|0)==193){n[f>>2]=M,n[M+24>>2]=c,n[M+12>>2]=M,n[M+8>>2]=M;break}else if((_e|0)==194){_e=c+8|0,Ge=n[_e>>2]|0,n[Ge+12>>2]=M,n[_e>>2]=M,n[M+8>>2]=Ge,n[M+12>>2]=c,n[M+24>>2]=0;break}}else Ge=(n[2786]|0)+k|0,n[2786]=Ge,n[2789]=M,n[M+4>>2]=Ge|1;while(!1);return Ge=O+8|0,C=Lt,Ge|0}for(l=11580;s=n[l>>2]|0,!(s>>>0<=F>>>0&&(Ge=s+(n[l+4>>2]|0)|0,Ge>>>0>F>>>0));)l=n[l+8>>2]|0;d=Ge+-47|0,s=d+8|0,s=d+(s&7|0?0-s&7:0)|0,d=F+16|0,s=s>>>0>>0?F:s,l=s+8|0,c=m+8|0,c=c&7|0?0-c&7:0,_e=m+c|0,c=B+-40-c|0,n[2789]=_e,n[2786]=c,n[_e+4>>2]=c|1,n[_e+c+4>>2]=40,n[2790]=n[2905],c=s+4|0,n[c>>2]=27,n[l>>2]=n[2895],n[l+4>>2]=n[2896],n[l+8>>2]=n[2897],n[l+12>>2]=n[2898],n[2895]=m,n[2896]=B,n[2898]=0,n[2897]=l,l=s+24|0;do _e=l,l=l+4|0,n[l>>2]=7;while((_e+8|0)>>>0>>0);if((s|0)!=(F|0)){if(m=s-F|0,n[c>>2]=n[c>>2]&-2,n[F+4>>2]=m|1,n[s>>2]=m,l=m>>>3,m>>>0<256){c=11172+(l<<1<<2)|0,s=n[2783]|0,l=1<>2]|0):(n[2783]=s|l,l=c,s=c+8|0),n[s>>2]=F,n[l+12>>2]=F,n[F+8>>2]=l,n[F+12>>2]=c;break}if(l=m>>>8,l?m>>>0>16777215?c=31:(_e=(l+1048320|0)>>>16&8,Ge=l<<_e,ct=(Ge+520192|0)>>>16&4,Ge=Ge<>>16&2,c=14-(ct|_e|c)+(Ge<>>15)|0,c=m>>>(c+7|0)&1|c<<1):c=0,f=11436+(c<<2)|0,n[F+28>>2]=c,n[F+20>>2]=0,n[d>>2]=0,l=n[2784]|0,s=1<>2]=F,n[F+24>>2]=f,n[F+12>>2]=F,n[F+8>>2]=F;break}for(s=m<<((c|0)==31?0:25-(c>>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(m|0)){_e=216;break}if(f=c+16+(s>>>31<<2)|0,l=n[f>>2]|0,l)s=s<<1,c=l;else{_e=215;break}}if((_e|0)==215){n[f>>2]=F,n[F+24>>2]=c,n[F+12>>2]=F,n[F+8>>2]=F;break}else if((_e|0)==216){_e=c+8|0,Ge=n[_e>>2]|0,n[Ge+12>>2]=F,n[_e>>2]=F,n[F+8>>2]=Ge,n[F+12>>2]=c,n[F+24>>2]=0;break}}}else{Ge=n[2787]|0,(Ge|0)==0|m>>>0>>0&&(n[2787]=m),n[2895]=m,n[2896]=B,n[2898]=0,n[2792]=n[2901],n[2791]=-1,l=0;do Ge=11172+(l<<1<<2)|0,n[Ge+12>>2]=Ge,n[Ge+8>>2]=Ge,l=l+1|0;while((l|0)!=32);Ge=m+8|0,Ge=Ge&7|0?0-Ge&7:0,_e=m+Ge|0,Ge=B+-40-Ge|0,n[2789]=_e,n[2786]=Ge,n[_e+4>>2]=Ge|1,n[_e+Ge+4>>2]=40,n[2790]=n[2905]}while(!1);if(l=n[2786]|0,l>>>0>j>>>0)return ct=l-j|0,n[2786]=ct,Ge=n[2789]|0,_e=Ge+j|0,n[2789]=_e,n[_e+4>>2]=ct|1,n[Ge+4>>2]=j|3,Ge=Ge+8|0,C=Lt,Ge|0}return n[(rm()|0)>>2]=12,Ge=0,C=Lt,Ge|0}function HD(s){s=s|0;var l=0,c=0,f=0,d=0,m=0,B=0,k=0,F=0;if(s){c=s+-8|0,d=n[2787]|0,s=n[s+-4>>2]|0,l=s&-8,F=c+l|0;do if(s&1)k=c,B=c;else{if(f=n[c>>2]|0,!(s&3)||(B=c+(0-f)|0,m=f+l|0,B>>>0>>0))return;if((B|0)==(n[2788]|0)){if(s=F+4|0,l=n[s>>2]|0,(l&3|0)!=3){k=B,l=m;break}n[2785]=m,n[s>>2]=l&-2,n[B+4>>2]=m|1,n[B+m>>2]=m;return}if(c=f>>>3,f>>>0<256)if(s=n[B+8>>2]|0,l=n[B+12>>2]|0,(l|0)==(s|0)){n[2783]=n[2783]&~(1<>2]=l,n[l+8>>2]=s,k=B,l=m;break}d=n[B+24>>2]|0,s=n[B+12>>2]|0;do if((s|0)==(B|0)){if(c=B+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{s=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0}else k=n[B+8>>2]|0,n[k+12>>2]=s,n[s+8>>2]=k;while(!1);if(d){if(l=n[B+28>>2]|0,c=11436+(l<<2)|0,(B|0)==(n[c>>2]|0)){if(n[c>>2]=s,!s){n[2784]=n[2784]&~(1<>2]|0)!=(B|0)&1)<<2)>>2]=s,!s){k=B,l=m;break}n[s+24>>2]=d,l=B+16|0,c=n[l>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),l=n[l+4>>2]|0,l?(n[s+20>>2]=l,n[l+24>>2]=s,k=B,l=m):(k=B,l=m)}else k=B,l=m}while(!1);if(!(B>>>0>=F>>>0)&&(s=F+4|0,f=n[s>>2]|0,!!(f&1))){if(f&2)n[s>>2]=f&-2,n[k+4>>2]=l|1,n[B+l>>2]=l,d=l;else{if(s=n[2788]|0,(F|0)==(n[2789]|0)){if(F=(n[2786]|0)+l|0,n[2786]=F,n[2789]=k,n[k+4>>2]=F|1,(k|0)!=(s|0))return;n[2788]=0,n[2785]=0;return}if((F|0)==(s|0)){F=(n[2785]|0)+l|0,n[2785]=F,n[2788]=B,n[k+4>>2]=F|1,n[B+F>>2]=F;return}d=(f&-8)+l|0,c=f>>>3;do if(f>>>0<256)if(l=n[F+8>>2]|0,s=n[F+12>>2]|0,(s|0)==(l|0)){n[2783]=n[2783]&~(1<>2]=s,n[s+8>>2]=l;break}else{m=n[F+24>>2]|0,s=n[F+12>>2]|0;do if((s|0)==(F|0)){if(c=F+16|0,l=c+4|0,s=n[l>>2]|0,!s)if(s=n[c>>2]|0,s)l=c;else{c=0;break}for(;;){if(c=s+20|0,f=n[c>>2]|0,f|0){s=f,l=c;continue}if(c=s+16|0,f=n[c>>2]|0,f)s=f,l=c;else break}n[l>>2]=0,c=s}else c=n[F+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(!1);if(m|0){if(s=n[F+28>>2]|0,l=11436+(s<<2)|0,(F|0)==(n[l>>2]|0)){if(n[l>>2]=c,!c){n[2784]=n[2784]&~(1<>2]|0)!=(F|0)&1)<<2)>>2]=c,!c)break;n[c+24>>2]=m,s=F+16|0,l=n[s>>2]|0,l|0&&(n[c+16>>2]=l,n[l+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(!1);if(n[k+4>>2]=d|1,n[B+d>>2]=d,(k|0)==(n[2788]|0)){n[2785]=d;return}}if(s=d>>>3,d>>>0<256){c=11172+(s<<1<<2)|0,l=n[2783]|0,s=1<>2]|0):(n[2783]=l|s,s=c,l=c+8|0),n[l>>2]=k,n[s+12>>2]=k,n[k+8>>2]=s,n[k+12>>2]=c;return}s=d>>>8,s?d>>>0>16777215?s=31:(B=(s+1048320|0)>>>16&8,F=s<>>16&4,F=F<>>16&2,s=14-(m|B|s)+(F<>>15)|0,s=d>>>(s+7|0)&1|s<<1):s=0,f=11436+(s<<2)|0,n[k+28>>2]=s,n[k+20>>2]=0,n[k+16>>2]=0,l=n[2784]|0,c=1<>>1)|0),c=n[f>>2]|0;;){if((n[c+4>>2]&-8|0)==(d|0)){s=73;break}if(f=c+16+(l>>>31<<2)|0,s=n[f>>2]|0,s)l=l<<1,c=s;else{s=72;break}}if((s|0)==72){n[f>>2]=k,n[k+24>>2]=c,n[k+12>>2]=k,n[k+8>>2]=k;break}else if((s|0)==73){B=c+8|0,F=n[B>>2]|0,n[F+12>>2]=k,n[B>>2]=k,n[k+8>>2]=F,n[k+12>>2]=c,n[k+24>>2]=0;break}}else n[2784]=l|c,n[f>>2]=k,n[k+24>>2]=f,n[k+12>>2]=k,n[k+8>>2]=k;while(!1);if(F=(n[2791]|0)+-1|0,n[2791]=F,!F)s=11588;else return;for(;s=n[s>>2]|0,s;)s=s+8|0;n[2791]=-1}}}function d4e(){return 11628}function m4e(s){s=s|0;var l=0,c=0;return l=C,C=C+16|0,c=l,n[c>>2]=C4e(n[s+60>>2]|0)|0,s=qD(Ec(6,c|0)|0)|0,C=l,s|0}function L7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0;j=C,C=C+48|0,M=j+16|0,m=j,d=j+32|0,k=s+28|0,f=n[k>>2]|0,n[d>>2]=f,F=s+20|0,f=(n[F>>2]|0)-f|0,n[d+4>>2]=f,n[d+8>>2]=l,n[d+12>>2]=c,f=f+c|0,B=s+60|0,n[m>>2]=n[B>>2],n[m+4>>2]=d,n[m+8>>2]=2,m=qD(aa(146,m|0)|0)|0;e:do if((f|0)!=(m|0)){for(l=2;!((m|0)<0);)if(f=f-m|0,We=n[d+4>>2]|0,oe=m>>>0>We>>>0,d=oe?d+8|0:d,l=(oe<<31>>31)+l|0,We=m-(oe?We:0)|0,n[d>>2]=(n[d>>2]|0)+We,oe=d+4|0,n[oe>>2]=(n[oe>>2]|0)-We,n[M>>2]=n[B>>2],n[M+4>>2]=d,n[M+8>>2]=l,m=qD(aa(146,M|0)|0)|0,(f|0)==(m|0)){O=3;break e}n[s+16>>2]=0,n[k>>2]=0,n[F>>2]=0,n[s>>2]=n[s>>2]|32,(l|0)==2?c=0:c=c-(n[d+4>>2]|0)|0}else O=3;while(!1);return(O|0)==3&&(We=n[s+44>>2]|0,n[s+16>>2]=We+(n[s+48>>2]|0),n[k>>2]=We,n[F>>2]=We),C=j,c|0}function y4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;return d=C,C=C+32|0,m=d,f=d+20|0,n[m>>2]=n[s+60>>2],n[m+4>>2]=0,n[m+8>>2]=l,n[m+12>>2]=f,n[m+16>>2]=c,(qD(oa(140,m|0)|0)|0)<0?(n[f>>2]=-1,s=-1):s=n[f>>2]|0,C=d,s|0}function qD(s){return s=s|0,s>>>0>4294963200&&(n[(rm()|0)>>2]=0-s,s=-1),s|0}function rm(){return(E4e()|0)+64|0}function E4e(){return oT()|0}function oT(){return 2084}function C4e(s){return s=s|0,s|0}function I4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;return d=C,C=C+32|0,f=d,n[s+36>>2]=1,!(n[s>>2]&64|0)&&(n[f>>2]=n[s+60>>2],n[f+4>>2]=21523,n[f+8>>2]=d+16,Ns(54,f|0)|0)&&(o[s+75>>0]=-1),f=L7(s,l,c)|0,C=d,f|0}function O7(s,l){s=s|0,l=l|0;var c=0,f=0;if(c=o[s>>0]|0,f=o[l>>0]|0,!(c<<24>>24)||c<<24>>24!=f<<24>>24)s=f;else{do s=s+1|0,l=l+1|0,c=o[s>>0]|0,f=o[l>>0]|0;while(!(!(c<<24>>24)||c<<24>>24!=f<<24>>24));s=f}return(c&255)-(s&255)|0}function w4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0;e:do if(!c)s=0;else{for(;f=o[s>>0]|0,d=o[l>>0]|0,f<<24>>24==d<<24>>24;)if(c=c+-1|0,c)s=s+1|0,l=l+1|0;else{s=0;break e}s=(f&255)-(d&255)|0}while(!1);return s|0}function M7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0;Qe=C,C=C+224|0,O=Qe+120|0,j=Qe+80|0,We=Qe,Oe=Qe+136|0,f=j,d=f+40|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return n[O>>2]=n[c>>2],(aT(0,l,O,We,j)|0)<0?c=-1:((n[s+76>>2]|0)>-1?oe=B4e(s)|0:oe=0,c=n[s>>2]|0,M=c&32,(o[s+74>>0]|0)<1&&(n[s>>2]=c&-33),f=s+48|0,n[f>>2]|0?c=aT(s,l,O,We,j)|0:(d=s+44|0,m=n[d>>2]|0,n[d>>2]=Oe,B=s+28|0,n[B>>2]=Oe,k=s+20|0,n[k>>2]=Oe,n[f>>2]=80,F=s+16|0,n[F>>2]=Oe+80,c=aT(s,l,O,We,j)|0,m&&(YD[n[s+36>>2]&7](s,0,0)|0,c=n[k>>2]|0?c:-1,n[d>>2]=m,n[f>>2]=0,n[F>>2]=0,n[B>>2]=0,n[k>>2]=0)),f=n[s>>2]|0,n[s>>2]=f|M,oe|0&&v4e(s),c=f&32|0?-1:c),C=Qe,c|0}function aT(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0;lr=C,C=C+64|0,ur=lr+16|0,Zt=lr,Lt=lr+24|0,kr=lr+8|0,Or=lr+20|0,n[ur>>2]=l,ct=(s|0)!=0,_e=Lt+40|0,Ge=_e,Lt=Lt+39|0,_r=kr+4|0,B=0,m=0,O=0;e:for(;;){do if((m|0)>-1)if((B|0)>(2147483647-m|0)){n[(rm()|0)>>2]=75,m=-1;break}else{m=B+m|0;break}while(!1);if(B=o[l>>0]|0,B<<24>>24)k=l;else{Xe=87;break}t:for(;;){switch(B<<24>>24){case 37:{B=k,Xe=9;break t}case 0:{B=k;break t}default:}rt=k+1|0,n[ur>>2]=rt,B=o[rt>>0]|0,k=rt}t:do if((Xe|0)==9)for(;;){if(Xe=0,(o[k+1>>0]|0)!=37)break t;if(B=B+1|0,k=k+2|0,n[ur>>2]=k,(o[k>>0]|0)==37)Xe=9;else break}while(!1);if(B=B-l|0,ct&&os(s,l,B),B|0){l=k;continue}F=k+1|0,B=(o[F>>0]|0)+-48|0,B>>>0<10?(rt=(o[k+2>>0]|0)==36,Qe=rt?B:-1,O=rt?1:O,F=rt?k+3|0:F):Qe=-1,n[ur>>2]=F,B=o[F>>0]|0,k=(B<<24>>24)+-32|0;t:do if(k>>>0<32)for(M=0,j=B;;){if(B=1<>2]=F,B=o[F>>0]|0,k=(B<<24>>24)+-32|0,k>>>0>=32)break;j=B}else M=0;while(!1);if(B<<24>>24==42){if(k=F+1|0,B=(o[k>>0]|0)+-48|0,B>>>0<10&&(o[F+2>>0]|0)==36)n[d+(B<<2)>>2]=10,B=n[f+((o[k>>0]|0)+-48<<3)>>2]|0,O=1,F=F+3|0;else{if(O|0){m=-1;break}ct?(O=(n[c>>2]|0)+3&-4,B=n[O>>2]|0,n[c>>2]=O+4,O=0,F=k):(B=0,O=0,F=k)}n[ur>>2]=F,rt=(B|0)<0,B=rt?0-B|0:B,M=rt?M|8192:M}else{if(B=U7(ur)|0,(B|0)<0){m=-1;break}F=n[ur>>2]|0}do if((o[F>>0]|0)==46){if((o[F+1>>0]|0)!=42){n[ur>>2]=F+1,k=U7(ur)|0,F=n[ur>>2]|0;break}if(j=F+2|0,k=(o[j>>0]|0)+-48|0,k>>>0<10&&(o[F+3>>0]|0)==36){n[d+(k<<2)>>2]=10,k=n[f+((o[j>>0]|0)+-48<<3)>>2]|0,F=F+4|0,n[ur>>2]=F;break}if(O|0){m=-1;break e}ct?(rt=(n[c>>2]|0)+3&-4,k=n[rt>>2]|0,n[c>>2]=rt+4):k=0,n[ur>>2]=j,F=j}else k=-1;while(!1);for(Oe=0;;){if(((o[F>>0]|0)+-65|0)>>>0>57){m=-1;break e}if(rt=F+1|0,n[ur>>2]=rt,j=o[(o[F>>0]|0)+-65+(5178+(Oe*58|0))>>0]|0,oe=j&255,(oe+-1|0)>>>0<8)Oe=oe,F=rt;else break}if(!(j<<24>>24)){m=-1;break}We=(Qe|0)>-1;do if(j<<24>>24==19)if(We){m=-1;break e}else Xe=49;else{if(We){n[d+(Qe<<2)>>2]=oe,We=f+(Qe<<3)|0,Qe=n[We+4>>2]|0,Xe=Zt,n[Xe>>2]=n[We>>2],n[Xe+4>>2]=Qe,Xe=49;break}if(!ct){m=0;break e}_7(Zt,oe,c)}while(!1);if((Xe|0)==49&&(Xe=0,!ct)){B=0,l=rt;continue}F=o[F>>0]|0,F=(Oe|0)!=0&(F&15|0)==3?F&-33:F,We=M&-65537,Qe=M&8192|0?We:M;t:do switch(F|0){case 110:switch((Oe&255)<<24>>24){case 0:{n[n[Zt>>2]>>2]=m,B=0,l=rt;continue e}case 1:{n[n[Zt>>2]>>2]=m,B=0,l=rt;continue e}case 2:{B=n[Zt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=rt;continue e}case 3:{a[n[Zt>>2]>>1]=m,B=0,l=rt;continue e}case 4:{o[n[Zt>>2]>>0]=m,B=0,l=rt;continue e}case 6:{n[n[Zt>>2]>>2]=m,B=0,l=rt;continue e}case 7:{B=n[Zt>>2]|0,n[B>>2]=m,n[B+4>>2]=((m|0)<0)<<31>>31,B=0,l=rt;continue e}default:{B=0,l=rt;continue e}}case 112:{F=120,k=k>>>0>8?k:8,l=Qe|8,Xe=61;break}case 88:case 120:{l=Qe,Xe=61;break}case 111:{F=Zt,l=n[F>>2]|0,F=n[F+4>>2]|0,oe=P4e(l,F,_e)|0,We=Ge-oe|0,M=0,j=5642,k=(Qe&8|0)==0|(k|0)>(We|0)?k:We+1|0,We=Qe,Xe=67;break}case 105:case 100:if(F=Zt,l=n[F>>2]|0,F=n[F+4>>2]|0,(F|0)<0){l=jD(0,0,l|0,F|0)|0,F=Ce,M=Zt,n[M>>2]=l,n[M+4>>2]=F,M=1,j=5642,Xe=66;break t}else{M=(Qe&2049|0)!=0&1,j=Qe&2048|0?5643:Qe&1|0?5644:5642,Xe=66;break t}case 117:{F=Zt,M=0,j=5642,l=n[F>>2]|0,F=n[F+4>>2]|0,Xe=66;break}case 99:{o[Lt>>0]=n[Zt>>2],l=Lt,M=0,j=5642,oe=_e,F=1,k=We;break}case 109:{F=S4e(n[(rm()|0)>>2]|0)|0,Xe=71;break}case 115:{F=n[Zt>>2]|0,F=F|0?F:5652,Xe=71;break}case 67:{n[kr>>2]=n[Zt>>2],n[_r>>2]=0,n[Zt>>2]=kr,oe=-1,F=kr,Xe=75;break}case 83:{l=n[Zt>>2]|0,k?(oe=k,F=l,Xe=75):(Es(s,32,B,0,Qe),l=0,Xe=84);break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{B=x4e(s,+E[Zt>>3],B,k,Qe,F)|0,l=rt;continue e}default:M=0,j=5642,oe=_e,F=k,k=Qe}while(!1);t:do if((Xe|0)==61)Qe=Zt,Oe=n[Qe>>2]|0,Qe=n[Qe+4>>2]|0,oe=D4e(Oe,Qe,_e,F&32)|0,j=(l&8|0)==0|(Oe|0)==0&(Qe|0)==0,M=j?0:2,j=j?5642:5642+(F>>4)|0,We=l,l=Oe,F=Qe,Xe=67;else if((Xe|0)==66)oe=nm(l,F,_e)|0,We=Qe,Xe=67;else if((Xe|0)==71)Xe=0,Qe=b4e(F,0,k)|0,Oe=(Qe|0)==0,l=F,M=0,j=5642,oe=Oe?F+k|0:Qe,F=Oe?k:Qe-F|0,k=We;else if((Xe|0)==75){for(Xe=0,j=F,l=0,k=0;M=n[j>>2]|0,!(!M||(k=H7(Or,M)|0,(k|0)<0|k>>>0>(oe-l|0)>>>0));)if(l=k+l|0,oe>>>0>l>>>0)j=j+4|0;else break;if((k|0)<0){m=-1;break e}if(Es(s,32,B,l,Qe),!l)l=0,Xe=84;else for(M=0;;){if(k=n[F>>2]|0,!k){Xe=84;break t}if(k=H7(Or,k)|0,M=k+M|0,(M|0)>(l|0)){Xe=84;break t}if(os(s,Or,k),M>>>0>=l>>>0){Xe=84;break}else F=F+4|0}}while(!1);if((Xe|0)==67)Xe=0,F=(l|0)!=0|(F|0)!=0,Qe=(k|0)!=0|F,F=((F^1)&1)+(Ge-oe)|0,l=Qe?oe:_e,oe=_e,F=Qe?(k|0)>(F|0)?k:F:k,k=(k|0)>-1?We&-65537:We;else if((Xe|0)==84){Xe=0,Es(s,32,B,l,Qe^8192),B=(B|0)>(l|0)?B:l,l=rt;continue}Oe=oe-l|0,We=(F|0)<(Oe|0)?Oe:F,Qe=We+M|0,B=(B|0)<(Qe|0)?Qe:B,Es(s,32,B,Qe,k),os(s,j,M),Es(s,48,B,Qe,k^65536),Es(s,48,We,Oe,0),os(s,l,Oe),Es(s,32,B,Qe,k^8192),l=rt}e:do if((Xe|0)==87&&!s)if(!O)m=0;else{for(m=1;l=n[d+(m<<2)>>2]|0,!!l;)if(_7(f+(m<<3)|0,l,c),m=m+1|0,(m|0)>=10){m=1;break e}for(;;){if(n[d+(m<<2)>>2]|0){m=-1;break e}if(m=m+1|0,(m|0)>=10){m=1;break}}}while(!1);return C=lr,m|0}function B4e(s){return s=s|0,0}function v4e(s){s=s|0}function os(s,l,c){s=s|0,l=l|0,c=c|0,n[s>>2]&32||M4e(l,c,s)|0}function U7(s){s=s|0;var l=0,c=0,f=0;if(c=n[s>>2]|0,f=(o[c>>0]|0)+-48|0,f>>>0<10){l=0;do l=f+(l*10|0)|0,c=c+1|0,n[s>>2]=c,f=(o[c>>0]|0)+-48|0;while(f>>>0<10)}else l=0;return l|0}function _7(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;e:do if(l>>>0<=20)do switch(l|0){case 9:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,n[s>>2]=l;break e}case 10:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=((l|0)<0)<<31>>31;break e}case 11:{f=(n[c>>2]|0)+3&-4,l=n[f>>2]|0,n[c>>2]=f+4,f=s,n[f>>2]=l,n[f+4>>2]=0;break e}case 12:{f=(n[c>>2]|0)+7&-8,l=f,d=n[l>>2]|0,l=n[l+4>>2]|0,n[c>>2]=f+8,f=s,n[f>>2]=d,n[f+4>>2]=l;break e}case 13:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&65535)<<16>>16,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 14:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&65535,n[d+4>>2]=0;break e}case 15:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,f=(f&255)<<24>>24,d=s,n[d>>2]=f,n[d+4>>2]=((f|0)<0)<<31>>31;break e}case 16:{d=(n[c>>2]|0)+3&-4,f=n[d>>2]|0,n[c>>2]=d+4,d=s,n[d>>2]=f&255,n[d+4>>2]=0;break e}case 17:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}case 18:{d=(n[c>>2]|0)+7&-8,m=+E[d>>3],n[c>>2]=d+8,E[s>>3]=m;break e}default:break e}while(!1);while(!1)}function D4e(s,l,c,f){if(s=s|0,l=l|0,c=c|0,f=f|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=u[5694+(s&15)>>0]|0|f,s=GD(s|0,l|0,4)|0,l=Ce;while(!((s|0)==0&(l|0)==0));return c|0}function P4e(s,l,c){if(s=s|0,l=l|0,c=c|0,!((s|0)==0&(l|0)==0))do c=c+-1|0,o[c>>0]=s&7|48,s=GD(s|0,l|0,3)|0,l=Ce;while(!((s|0)==0&(l|0)==0));return c|0}function nm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if(l>>>0>0|(l|0)==0&s>>>0>4294967295){for(;f=AT(s|0,l|0,10,0)|0,c=c+-1|0,o[c>>0]=f&255|48,f=s,s=uT(s|0,l|0,10,0)|0,l>>>0>9|(l|0)==9&f>>>0>4294967295;)l=Ce;l=s}else l=s;if(l)for(;c=c+-1|0,o[c>>0]=(l>>>0)%10|0|48,!(l>>>0<10);)l=(l>>>0)/10|0;return c|0}function S4e(s){return s=s|0,T4e(s,n[(R4e()|0)+188>>2]|0)|0}function b4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;m=l&255,f=(c|0)!=0;e:do if(f&(s&3|0)!=0)for(d=l&255;;){if((o[s>>0]|0)==d<<24>>24){B=6;break e}if(s=s+1|0,c=c+-1|0,f=(c|0)!=0,!(f&(s&3|0)!=0)){B=5;break}}else B=5;while(!1);(B|0)==5&&(f?B=6:c=0);e:do if((B|0)==6&&(d=l&255,(o[s>>0]|0)!=d<<24>>24)){f=He(m,16843009)|0;t:do if(c>>>0>3){for(;m=n[s>>2]^f,!((m&-2139062144^-2139062144)&m+-16843009|0);)if(s=s+4|0,c=c+-4|0,c>>>0<=3){B=11;break t}}else B=11;while(!1);if((B|0)==11&&!c){c=0;break}for(;;){if((o[s>>0]|0)==d<<24>>24)break e;if(s=s+1|0,c=c+-1|0,!c){c=0;break}}}while(!1);return(c|0?s:0)|0}function Es(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0;if(B=C,C=C+256|0,m=B,(c|0)>(f|0)&(d&73728|0)==0){if(d=c-f|0,sm(m|0,l|0,(d>>>0<256?d:256)|0)|0,d>>>0>255){l=c-f|0;do os(s,m,256),d=d+-256|0;while(d>>>0>255);d=l&255}os(s,m,d)}C=B}function H7(s,l){return s=s|0,l=l|0,s?s=Q4e(s,l,0)|0:s=0,s|0}function x4e(s,l,c,f,d,m){s=s|0,l=+l,c=c|0,f=f|0,d=d|0,m=m|0;var B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0,Qe=0,rt=0,Xe=0,ct=0,_e=0,Ge=0,Lt=0,_r=0,ur=0,Zt=0,kr=0,Or=0,lr=0,Nn=0;Nn=C,C=C+560|0,F=Nn+8|0,rt=Nn,lr=Nn+524|0,Or=lr,M=Nn+512|0,n[rt>>2]=0,kr=M+12|0,q7(l)|0,(Ce|0)<0?(l=-l,ur=1,_r=5659):(ur=(d&2049|0)!=0&1,_r=d&2048|0?5662:d&1|0?5665:5660),q7(l)|0,Zt=Ce&2146435072;do if(Zt>>>0<2146435072|(Zt|0)==2146435072&!1){if(We=+k4e(l,rt)*2,B=We!=0,B&&(n[rt>>2]=(n[rt>>2]|0)+-1),ct=m|32,(ct|0)==97){Oe=m&32,oe=Oe|0?_r+9|0:_r,j=ur|2,B=12-f|0;do if(f>>>0>11|(B|0)==0)l=We;else{l=8;do B=B+-1|0,l=l*16;while(B|0);if((o[oe>>0]|0)==45){l=-(l+(-We-l));break}else{l=We+l-l;break}}while(!1);k=n[rt>>2]|0,B=(k|0)<0?0-k|0:k,B=nm(B,((B|0)<0)<<31>>31,kr)|0,(B|0)==(kr|0)&&(B=M+11|0,o[B>>0]=48),o[B+-1>>0]=(k>>31&2)+43,O=B+-2|0,o[O>>0]=m+15,M=(f|0)<1,F=(d&8|0)==0,B=lr;do Zt=~~l,k=B+1|0,o[B>>0]=u[5694+Zt>>0]|Oe,l=(l-+(Zt|0))*16,(k-Or|0)==1&&!(F&(M&l==0))?(o[k>>0]=46,B=B+2|0):B=k;while(l!=0);Zt=B-Or|0,Or=kr-O|0,kr=(f|0)!=0&(Zt+-2|0)<(f|0)?f+2|0:Zt,B=Or+j+kr|0,Es(s,32,c,B,d),os(s,oe,j),Es(s,48,c,B,d^65536),os(s,lr,Zt),Es(s,48,kr-Zt|0,0,0),os(s,O,Or),Es(s,32,c,B,d^8192);break}k=(f|0)<0?6:f,B?(B=(n[rt>>2]|0)+-28|0,n[rt>>2]=B,l=We*268435456):(l=We,B=n[rt>>2]|0),Zt=(B|0)<0?F:F+288|0,F=Zt;do Ge=~~l>>>0,n[F>>2]=Ge,F=F+4|0,l=(l-+(Ge>>>0))*1e9;while(l!=0);if((B|0)>0)for(M=Zt,j=F;;){if(O=(B|0)<29?B:29,B=j+-4|0,B>>>0>=M>>>0){F=0;do _e=V7(n[B>>2]|0,0,O|0)|0,_e=cT(_e|0,Ce|0,F|0,0)|0,Ge=Ce,Xe=AT(_e|0,Ge|0,1e9,0)|0,n[B>>2]=Xe,F=uT(_e|0,Ge|0,1e9,0)|0,B=B+-4|0;while(B>>>0>=M>>>0);F&&(M=M+-4|0,n[M>>2]=F)}for(F=j;!(F>>>0<=M>>>0);)if(B=F+-4|0,!(n[B>>2]|0))F=B;else break;if(B=(n[rt>>2]|0)-O|0,n[rt>>2]=B,(B|0)>0)j=F;else break}else M=Zt;if((B|0)<0){f=((k+25|0)/9|0)+1|0,Qe=(ct|0)==102;do{if(Oe=0-B|0,Oe=(Oe|0)<9?Oe:9,M>>>0>>0){O=(1<>>Oe,oe=0,B=M;do Ge=n[B>>2]|0,n[B>>2]=(Ge>>>Oe)+oe,oe=He(Ge&O,j)|0,B=B+4|0;while(B>>>0>>0);B=n[M>>2]|0?M:M+4|0,oe?(n[F>>2]=oe,M=B,B=F+4|0):(M=B,B=F)}else M=n[M>>2]|0?M:M+4|0,B=F;F=Qe?Zt:M,F=(B-F>>2|0)>(f|0)?F+(f<<2)|0:B,B=(n[rt>>2]|0)+Oe|0,n[rt>>2]=B}while((B|0)<0);B=M,f=F}else B=M,f=F;if(Ge=Zt,B>>>0>>0){if(F=(Ge-B>>2)*9|0,O=n[B>>2]|0,O>>>0>=10){M=10;do M=M*10|0,F=F+1|0;while(O>>>0>=M>>>0)}}else F=0;if(Qe=(ct|0)==103,Xe=(k|0)!=0,M=k-((ct|0)!=102?F:0)+((Xe&Qe)<<31>>31)|0,(M|0)<(((f-Ge>>2)*9|0)+-9|0)){if(M=M+9216|0,Oe=Zt+4+(((M|0)/9|0)+-1024<<2)|0,M=((M|0)%9|0)+1|0,(M|0)<9){O=10;do O=O*10|0,M=M+1|0;while((M|0)!=9)}else O=10;if(j=n[Oe>>2]|0,oe=(j>>>0)%(O>>>0)|0,M=(Oe+4|0)==(f|0),M&(oe|0)==0)M=Oe;else if(We=((j>>>0)/(O>>>0)|0)&1|0?9007199254740994:9007199254740992,_e=(O|0)/2|0,l=oe>>>0<_e>>>0?.5:M&(oe|0)==(_e|0)?1:1.5,ur&&(_e=(o[_r>>0]|0)==45,l=_e?-l:l,We=_e?-We:We),M=j-oe|0,n[Oe>>2]=M,We+l!=We){if(_e=M+O|0,n[Oe>>2]=_e,_e>>>0>999999999)for(F=Oe;M=F+-4|0,n[F>>2]=0,M>>>0>>0&&(B=B+-4|0,n[B>>2]=0),_e=(n[M>>2]|0)+1|0,n[M>>2]=_e,_e>>>0>999999999;)F=M;else M=Oe;if(F=(Ge-B>>2)*9|0,j=n[B>>2]|0,j>>>0>=10){O=10;do O=O*10|0,F=F+1|0;while(j>>>0>=O>>>0)}}else M=Oe;M=M+4|0,M=f>>>0>M>>>0?M:f,_e=B}else M=f,_e=B;for(ct=M;;){if(ct>>>0<=_e>>>0){rt=0;break}if(B=ct+-4|0,!(n[B>>2]|0))ct=B;else{rt=1;break}}f=0-F|0;do if(Qe)if(B=((Xe^1)&1)+k|0,(B|0)>(F|0)&(F|0)>-5?(O=m+-1|0,k=B+-1-F|0):(O=m+-2|0,k=B+-1|0),B=d&8,B)Oe=B;else{if(rt&&(Lt=n[ct+-4>>2]|0,(Lt|0)!=0))if((Lt>>>0)%10|0)M=0;else{M=0,B=10;do B=B*10|0,M=M+1|0;while(!((Lt>>>0)%(B>>>0)|0|0))}else M=9;if(B=((ct-Ge>>2)*9|0)+-9|0,(O|32|0)==102){Oe=B-M|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}else{Oe=B+F-M|0,Oe=(Oe|0)>0?Oe:0,k=(k|0)<(Oe|0)?k:Oe,Oe=0;break}}else O=m,Oe=d&8;while(!1);if(Qe=k|Oe,j=(Qe|0)!=0&1,oe=(O|32|0)==102,oe)Xe=0,B=(F|0)>0?F:0;else{if(B=(F|0)<0?f:F,B=nm(B,((B|0)<0)<<31>>31,kr)|0,M=kr,(M-B|0)<2)do B=B+-1|0,o[B>>0]=48;while((M-B|0)<2);o[B+-1>>0]=(F>>31&2)+43,B=B+-2|0,o[B>>0]=O,Xe=B,B=M-B|0}if(B=ur+1+k+j+B|0,Es(s,32,c,B,d),os(s,_r,ur),Es(s,48,c,B,d^65536),oe){O=_e>>>0>Zt>>>0?Zt:_e,Oe=lr+9|0,j=Oe,oe=lr+8|0,M=O;do{if(F=nm(n[M>>2]|0,0,Oe)|0,(M|0)==(O|0))(F|0)==(Oe|0)&&(o[oe>>0]=48,F=oe);else if(F>>>0>lr>>>0){sm(lr|0,48,F-Or|0)|0;do F=F+-1|0;while(F>>>0>lr>>>0)}os(s,F,j-F|0),M=M+4|0}while(M>>>0<=Zt>>>0);if(Qe|0&&os(s,5710,1),M>>>0>>0&(k|0)>0)for(;;){if(F=nm(n[M>>2]|0,0,Oe)|0,F>>>0>lr>>>0){sm(lr|0,48,F-Or|0)|0;do F=F+-1|0;while(F>>>0>lr>>>0)}if(os(s,F,(k|0)<9?k:9),M=M+4|0,F=k+-9|0,M>>>0>>0&(k|0)>9)k=F;else{k=F;break}}Es(s,48,k+9|0,9,0)}else{if(Qe=rt?ct:_e+4|0,(k|0)>-1){rt=lr+9|0,Oe=(Oe|0)==0,f=rt,j=0-Or|0,oe=lr+8|0,O=_e;do{F=nm(n[O>>2]|0,0,rt)|0,(F|0)==(rt|0)&&(o[oe>>0]=48,F=oe);do if((O|0)==(_e|0)){if(M=F+1|0,os(s,F,1),Oe&(k|0)<1){F=M;break}os(s,5710,1),F=M}else{if(F>>>0<=lr>>>0)break;sm(lr|0,48,F+j|0)|0;do F=F+-1|0;while(F>>>0>lr>>>0)}while(!1);Or=f-F|0,os(s,F,(k|0)>(Or|0)?Or:k),k=k-Or|0,O=O+4|0}while(O>>>0>>0&(k|0)>-1)}Es(s,48,k+18|0,18,0),os(s,Xe,kr-Xe|0)}Es(s,32,c,B,d^8192)}else lr=(m&32|0)!=0,B=ur+3|0,Es(s,32,c,B,d&-65537),os(s,_r,ur),os(s,l!=l|!1?lr?5686:5690:lr?5678:5682,3),Es(s,32,c,B,d^8192);while(!1);return C=Nn,((B|0)<(c|0)?c:B)|0}function q7(s){s=+s;var l=0;return E[D>>3]=s,l=n[D>>2]|0,Ce=n[D+4>>2]|0,l|0}function k4e(s,l){return s=+s,l=l|0,+ +j7(s,l)}function j7(s,l){s=+s,l=l|0;var c=0,f=0,d=0;switch(E[D>>3]=s,c=n[D>>2]|0,f=n[D+4>>2]|0,d=GD(c|0,f|0,52)|0,d&2047){case 0:{s!=0?(s=+j7(s*18446744073709552e3,l),c=(n[l>>2]|0)+-64|0):c=0,n[l>>2]=c;break}case 2047:break;default:n[l>>2]=(d&2047)+-1022,n[D>>2]=c,n[D+4>>2]=f&-2146435073|1071644672,s=+E[D>>3]}return+s}function Q4e(s,l,c){s=s|0,l=l|0,c=c|0;do if(s){if(l>>>0<128){o[s>>0]=l,s=1;break}if(!(n[n[(F4e()|0)+188>>2]>>2]|0))if((l&-128|0)==57216){o[s>>0]=l,s=1;break}else{n[(rm()|0)>>2]=84,s=-1;break}if(l>>>0<2048){o[s>>0]=l>>>6|192,o[s+1>>0]=l&63|128,s=2;break}if(l>>>0<55296|(l&-8192|0)==57344){o[s>>0]=l>>>12|224,o[s+1>>0]=l>>>6&63|128,o[s+2>>0]=l&63|128,s=3;break}if((l+-65536|0)>>>0<1048576){o[s>>0]=l>>>18|240,o[s+1>>0]=l>>>12&63|128,o[s+2>>0]=l>>>6&63|128,o[s+3>>0]=l&63|128,s=4;break}else{n[(rm()|0)>>2]=84,s=-1;break}}else s=1;while(!1);return s|0}function F4e(){return oT()|0}function R4e(){return oT()|0}function T4e(s,l){s=s|0,l=l|0;var c=0,f=0;for(f=0;;){if((u[5712+f>>0]|0)==(s|0)){s=2;break}if(c=f+1|0,(c|0)==87){c=5800,f=87,s=5;break}else f=c}if((s|0)==2&&(f?(c=5800,s=5):c=5800),(s|0)==5)for(;;){do s=c,c=c+1|0;while(o[s>>0]|0);if(f=f+-1|0,f)s=5;else break}return N4e(c,n[l+20>>2]|0)|0}function N4e(s,l){return s=s|0,l=l|0,L4e(s,l)|0}function L4e(s,l){return s=s|0,l=l|0,l?l=O4e(n[l>>2]|0,n[l+4>>2]|0,s)|0:l=0,(l|0?l:s)|0}function O4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0;oe=(n[s>>2]|0)+1794895138|0,m=O0(n[s+8>>2]|0,oe)|0,f=O0(n[s+12>>2]|0,oe)|0,d=O0(n[s+16>>2]|0,oe)|0;e:do if(m>>>0>>2>>>0&&(j=l-(m<<2)|0,f>>>0>>0&d>>>0>>0)&&!((d|f)&3|0)){for(j=f>>>2,O=d>>>2,M=0;;){if(k=m>>>1,F=M+k|0,B=F<<1,d=B+j|0,f=O0(n[s+(d<<2)>>2]|0,oe)|0,d=O0(n[s+(d+1<<2)>>2]|0,oe)|0,!(d>>>0>>0&f>>>0<(l-d|0)>>>0)){f=0;break e}if(o[s+(d+f)>>0]|0){f=0;break e}if(f=O7(c,s+d|0)|0,!f)break;if(f=(f|0)<0,(m|0)==1){f=0;break e}else M=f?M:F,m=f?k:m-k|0}f=B+O|0,d=O0(n[s+(f<<2)>>2]|0,oe)|0,f=O0(n[s+(f+1<<2)>>2]|0,oe)|0,f>>>0>>0&d>>>0<(l-f|0)>>>0?f=o[s+(f+d)>>0]|0?0:s+f|0:f=0}else f=0;while(!1);return f|0}function O0(s,l){s=s|0,l=l|0;var c=0;return c=X7(s|0)|0,(l|0?c:s)|0}function M4e(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0,k=0;f=c+16|0,d=n[f>>2]|0,d?m=5:U4e(c)|0?f=0:(d=n[f>>2]|0,m=5);e:do if((m|0)==5){if(k=c+20|0,B=n[k>>2]|0,f=B,(d-B|0)>>>0>>0){f=YD[n[c+36>>2]&7](c,s,l)|0;break}t:do if((o[c+75>>0]|0)>-1){for(B=l;;){if(!B){m=0,d=s;break t}if(d=B+-1|0,(o[s+d>>0]|0)==10)break;B=d}if(f=YD[n[c+36>>2]&7](c,s,B)|0,f>>>0>>0)break e;m=B,d=s+B|0,l=l-B|0,f=n[k>>2]|0}else m=0,d=s;while(!1);xr(f|0,d|0,l|0)|0,n[k>>2]=(n[k>>2]|0)+l,f=m+l|0}while(!1);return f|0}function U4e(s){s=s|0;var l=0,c=0;return l=s+74|0,c=o[l>>0]|0,o[l>>0]=c+255|c,l=n[s>>2]|0,l&8?(n[s>>2]=l|32,s=-1):(n[s+8>>2]=0,n[s+4>>2]=0,c=n[s+44>>2]|0,n[s+28>>2]=c,n[s+20>>2]=c,n[s+16>>2]=c+(n[s+48>>2]|0),s=0),s|0}function Yn(s,l){s=y(s),l=y(l);var c=0,f=0;c=G7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=G7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?l:s;break}else{s=s>2]=s,n[D>>2]|0|0}function M0(s,l){s=y(s),l=y(l);var c=0,f=0;c=W7(s)|0;do if((c&2147483647)>>>0<=2139095040){if(f=W7(l)|0,(f&2147483647)>>>0<=2139095040)if((f^c|0)<0){s=(c|0)<0?s:l;break}else{s=s>2]=s,n[D>>2]|0|0}function lT(s,l){s=y(s),l=y(l);var c=0,f=0,d=0,m=0,B=0,k=0,F=0,M=0;m=(h[D>>2]=s,n[D>>2]|0),k=(h[D>>2]=l,n[D>>2]|0),c=m>>>23&255,B=k>>>23&255,F=m&-2147483648,d=k<<1;e:do if(d|0&&!((c|0)==255|((_4e(l)|0)&2147483647)>>>0>2139095040)){if(f=m<<1,f>>>0<=d>>>0)return l=y(s*y(0)),y((f|0)==(d|0)?l:s);if(c)f=m&8388607|8388608;else{if(c=m<<9,(c|0)>-1){f=c,c=0;do c=c+-1|0,f=f<<1;while((f|0)>-1)}else c=0;f=m<<1-c}if(B)k=k&8388607|8388608;else{if(m=k<<9,(m|0)>-1){d=0;do d=d+-1|0,m=m<<1;while((m|0)>-1)}else d=0;B=d,k=k<<1-d}d=f-k|0,m=(d|0)>-1;t:do if((c|0)>(B|0)){for(;;){if(m)if(d)f=d;else break;if(f=f<<1,c=c+-1|0,d=f-k|0,m=(d|0)>-1,(c|0)<=(B|0))break t}l=y(s*y(0));break e}while(!1);if(m)if(d)f=d;else{l=y(s*y(0));break}if(f>>>0<8388608)do f=f<<1,c=c+-1|0;while(f>>>0<8388608);(c|0)>0?c=f+-8388608|c<<23:c=f>>>(1-c|0),l=(n[D>>2]=c|F,y(h[D>>2]))}else M=3;while(!1);return(M|0)==3&&(l=y(s*l),l=y(l/l)),y(l)}function _4e(s){return s=y(s),h[D>>2]=s,n[D>>2]|0|0}function H4e(s,l){return s=s|0,l=l|0,M7(n[582]|0,s,l)|0}function Zr(s){s=s|0,Tt()}function im(s){s=s|0}function q4e(s,l){return s=s|0,l=l|0,0}function j4e(s){return s=s|0,(Y7(s+4|0)|0)==-1?(ef[n[(n[s>>2]|0)+8>>2]&127](s),s=1):s=0,s|0}function Y7(s){s=s|0;var l=0;return l=n[s>>2]|0,n[s>>2]=l+-1,l+-1|0}function Rp(s){s=s|0,j4e(s)|0&&G4e(s)}function G4e(s){s=s|0;var l=0;l=s+8|0,n[l>>2]|0&&(Y7(l)|0)!=-1||ef[n[(n[s>>2]|0)+16>>2]&127](s)}function Yt(s){s=s|0;var l=0;for(l=s|0?s:1;s=_D(l)|0,!(s|0);){if(s=Y4e()|0,!s){s=0;break}aW[s&0]()}return s|0}function K7(s){return s=s|0,Yt(s)|0}function yt(s){s=s|0,HD(s)}function W4e(s){s=s|0,(o[s+11>>0]|0)<0&&yt(n[s>>2]|0)}function Y4e(){var s=0;return s=n[2923]|0,n[2923]=s+0,s|0}function K4e(){}function jD(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,f=l-f-(c>>>0>s>>>0|0)>>>0,Ce=f,s-c>>>0|0|0}function cT(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,c=s+c>>>0,Ce=l+f+(c>>>0>>0|0)>>>0,c|0|0}function sm(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0,B=0;if(m=s+c|0,l=l&255,(c|0)>=67){for(;s&3;)o[s>>0]=l,s=s+1|0;for(f=m&-4|0,d=f-64|0,B=l|l<<8|l<<16|l<<24;(s|0)<=(d|0);)n[s>>2]=B,n[s+4>>2]=B,n[s+8>>2]=B,n[s+12>>2]=B,n[s+16>>2]=B,n[s+20>>2]=B,n[s+24>>2]=B,n[s+28>>2]=B,n[s+32>>2]=B,n[s+36>>2]=B,n[s+40>>2]=B,n[s+44>>2]=B,n[s+48>>2]=B,n[s+52>>2]=B,n[s+56>>2]=B,n[s+60>>2]=B,s=s+64|0;for(;(s|0)<(f|0);)n[s>>2]=B,s=s+4|0}for(;(s|0)<(m|0);)o[s>>0]=l,s=s+1|0;return m-c|0}function V7(s,l,c){return s=s|0,l=l|0,c=c|0,(c|0)<32?(Ce=l<>>32-c,s<>>c,s>>>c|(l&(1<>>c-32|0)}function xr(s,l,c){s=s|0,l=l|0,c=c|0;var f=0,d=0,m=0;if((c|0)>=8192)return FA(s|0,l|0,c|0)|0;if(m=s|0,d=s+c|0,(s&3)==(l&3)){for(;s&3;){if(!c)return m|0;o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0,c=c-1|0}for(c=d&-4|0,f=c-64|0;(s|0)<=(f|0);)n[s>>2]=n[l>>2],n[s+4>>2]=n[l+4>>2],n[s+8>>2]=n[l+8>>2],n[s+12>>2]=n[l+12>>2],n[s+16>>2]=n[l+16>>2],n[s+20>>2]=n[l+20>>2],n[s+24>>2]=n[l+24>>2],n[s+28>>2]=n[l+28>>2],n[s+32>>2]=n[l+32>>2],n[s+36>>2]=n[l+36>>2],n[s+40>>2]=n[l+40>>2],n[s+44>>2]=n[l+44>>2],n[s+48>>2]=n[l+48>>2],n[s+52>>2]=n[l+52>>2],n[s+56>>2]=n[l+56>>2],n[s+60>>2]=n[l+60>>2],s=s+64|0,l=l+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[l>>2],s=s+4|0,l=l+4|0}else for(c=d-4|0;(s|0)<(c|0);)o[s>>0]=o[l>>0]|0,o[s+1>>0]=o[l+1>>0]|0,o[s+2>>0]=o[l+2>>0]|0,o[s+3>>0]=o[l+3>>0]|0,s=s+4|0,l=l+4|0;for(;(s|0)<(d|0);)o[s>>0]=o[l>>0]|0,s=s+1|0,l=l+1|0;return m|0}function J7(s){s=s|0;var l=0;return l=o[L+(s&255)>>0]|0,(l|0)<8?l|0:(l=o[L+(s>>8&255)>>0]|0,(l|0)<8?l+8|0:(l=o[L+(s>>16&255)>>0]|0,(l|0)<8?l+16|0:(o[L+(s>>>24)>>0]|0)+24|0))}function z7(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0;var m=0,B=0,k=0,F=0,M=0,O=0,j=0,oe=0,We=0,Oe=0;if(O=s,F=l,M=F,B=c,oe=f,k=oe,!M)return m=(d|0)!=0,k?m?(n[d>>2]=s|0,n[d+4>>2]=l&0,oe=0,d=0,Ce=oe,d|0):(oe=0,d=0,Ce=oe,d|0):(m&&(n[d>>2]=(O>>>0)%(B>>>0),n[d+4>>2]=0),oe=0,d=(O>>>0)/(B>>>0)>>>0,Ce=oe,d|0);m=(k|0)==0;do if(B){if(!m){if(m=(S(k|0)|0)-(S(M|0)|0)|0,m>>>0<=31){j=m+1|0,k=31-m|0,l=m-31>>31,B=j,s=O>>>(j>>>0)&l|M<>>(j>>>0)&l,m=0,k=O<>2]=s|0,n[d+4>>2]=F|l&0,oe=0,d=0,Ce=oe,d|0):(oe=0,d=0,Ce=oe,d|0)}if(m=B-1|0,m&B|0){k=(S(B|0)|0)+33-(S(M|0)|0)|0,Oe=64-k|0,j=32-k|0,F=j>>31,We=k-32|0,l=We>>31,B=k,s=j-1>>31&M>>>(We>>>0)|(M<>>(k>>>0))&l,l=l&M>>>(k>>>0),m=O<>>(We>>>0))&F|O<>31;break}return d|0&&(n[d>>2]=m&O,n[d+4>>2]=0),(B|0)==1?(We=F|l&0,Oe=s|0|0,Ce=We,Oe|0):(Oe=J7(B|0)|0,We=M>>>(Oe>>>0)|0,Oe=M<<32-Oe|O>>>(Oe>>>0)|0,Ce=We,Oe|0)}else{if(m)return d|0&&(n[d>>2]=(M>>>0)%(B>>>0),n[d+4>>2]=0),We=0,Oe=(M>>>0)/(B>>>0)>>>0,Ce=We,Oe|0;if(!O)return d|0&&(n[d>>2]=0,n[d+4>>2]=(M>>>0)%(k>>>0)),We=0,Oe=(M>>>0)/(k>>>0)>>>0,Ce=We,Oe|0;if(m=k-1|0,!(m&k))return d|0&&(n[d>>2]=s|0,n[d+4>>2]=m&M|l&0),We=0,Oe=M>>>((J7(k|0)|0)>>>0),Ce=We,Oe|0;if(m=(S(k|0)|0)-(S(M|0)|0)|0,m>>>0<=30){l=m+1|0,k=31-m|0,B=l,s=M<>>(l>>>0),l=M>>>(l>>>0),m=0,k=O<>2]=s|0,n[d+4>>2]=F|l&0,We=0,Oe=0,Ce=We,Oe|0):(We=0,Oe=0,Ce=We,Oe|0)}while(!1);if(!B)M=k,F=0,k=0;else{j=c|0|0,O=oe|f&0,M=cT(j|0,O|0,-1,-1)|0,c=Ce,F=k,k=0;do f=F,F=m>>>31|F<<1,m=k|m<<1,f=s<<1|f>>>31|0,oe=s>>>31|l<<1|0,jD(M|0,c|0,f|0,oe|0)|0,Oe=Ce,We=Oe>>31|((Oe|0)<0?-1:0)<<1,k=We&1,s=jD(f|0,oe|0,We&j|0,(((Oe|0)<0?-1:0)>>31|((Oe|0)<0?-1:0)<<1)&O|0)|0,l=Ce,B=B-1|0;while(B|0);M=F,F=0}return B=0,d|0&&(n[d>>2]=s,n[d+4>>2]=l),We=(m|0)>>>31|(M|B)<<1|(B<<1|m>>>31)&0|F,Oe=(m<<1|0)&-2|k,Ce=We,Oe|0}function uT(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,z7(s,l,c,f,0)|0}function Tp(s){s=s|0;var l=0,c=0;return c=s+15&-16|0,l=n[w>>2]|0,s=l+c|0,(c|0)>0&(s|0)<(l|0)|(s|0)<0?(se()|0,yc(12),-1):(n[w>>2]=s,(s|0)>($()|0)&&!(X()|0)?(n[w>>2]=l,yc(12),-1):l|0)}function rw(s,l,c){s=s|0,l=l|0,c=c|0;var f=0;if((l|0)<(s|0)&(s|0)<(l+c|0)){for(f=s,l=l+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,l=l-1|0,c=c-1|0,o[s>>0]=o[l>>0]|0;s=f}else xr(s,l,c)|0;return s|0}function AT(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0;var d=0,m=0;return m=C,C=C+16|0,d=m|0,z7(s,l,c,f,d)|0,C=m,Ce=n[d+4>>2]|0,n[d>>2]|0|0}function X7(s){return s=s|0,(s&255)<<24|(s>>8&255)<<16|(s>>16&255)<<8|s>>>24|0}function V4e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,Z7[s&1](l|0,c|0,f|0,d|0,m|0)}function J4e(s,l,c){s=s|0,l=l|0,c=y(c),$7[s&1](l|0,y(c))}function z4e(s,l,c){s=s|0,l=l|0,c=+c,eW[s&31](l|0,+c)}function X4e(s,l,c,f){return s=s|0,l=l|0,c=y(c),f=y(f),y(tW[s&0](l|0,y(c),y(f)))}function Z4e(s,l){s=s|0,l=l|0,ef[s&127](l|0)}function $4e(s,l,c){s=s|0,l=l|0,c=c|0,tf[s&31](l|0,c|0)}function e3e(s,l){return s=s|0,l=l|0,_0[s&31](l|0)|0}function t3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,rW[s&1](l|0,+c,+f,d|0)}function r3e(s,l,c,f){s=s|0,l=l|0,c=+c,f=+f,L3e[s&1](l|0,+c,+f)}function n3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,YD[s&7](l|0,c|0,f|0)|0}function i3e(s,l,c,f){return s=s|0,l=l|0,c=c|0,f=f|0,+O3e[s&1](l|0,c|0,f|0)}function s3e(s,l){return s=s|0,l=l|0,+nW[s&15](l|0)}function o3e(s,l,c){return s=s|0,l=l|0,c=+c,M3e[s&1](l|0,+c)|0}function a3e(s,l,c){return s=s|0,l=l|0,c=c|0,pT[s&15](l|0,c|0)|0}function l3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=+f,d=+d,m=m|0,U3e[s&1](l|0,c|0,+f,+d,m|0)}function c3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,B=B|0,_3e[s&1](l|0,c|0,f|0,d|0,m|0,B|0)}function u3e(s,l,c){return s=s|0,l=l|0,c=c|0,+iW[s&7](l|0,c|0)}function A3e(s){return s=s|0,KD[s&7]()|0}function f3e(s,l,c,f,d,m){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,sW[s&1](l|0,c|0,f|0,d|0,m|0)|0}function p3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=+d,H3e[s&1](l|0,c|0,f|0,+d)}function h3e(s,l,c,f,d,m,B){s=s|0,l=l|0,c=c|0,f=y(f),d=d|0,m=y(m),B=B|0,oW[s&1](l|0,c|0,y(f),d|0,y(m),B|0)}function g3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,sw[s&15](l|0,c|0,f|0)}function d3e(s){s=s|0,aW[s&0]()}function m3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,lW[s&15](l|0,c|0,+f)}function y3e(s,l,c){return s=s|0,l=+l,c=+c,q3e[s&1](+l,+c)|0}function E3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,hT[s&15](l|0,c|0,f|0,d|0)}function C3e(s,l,c,f,d){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,R(0)}function I3e(s,l){s=s|0,l=y(l),R(1)}function Ca(s,l){s=s|0,l=+l,R(2)}function w3e(s,l,c){return s=s|0,l=y(l),c=y(c),R(3),Ze}function Cr(s){s=s|0,R(4)}function nw(s,l){s=s|0,l=l|0,R(5)}function tl(s){return s=s|0,R(6),0}function B3e(s,l,c,f){s=s|0,l=+l,c=+c,f=f|0,R(7)}function v3e(s,l,c){s=s|0,l=+l,c=+c,R(8)}function D3e(s,l,c){return s=s|0,l=l|0,c=c|0,R(9),0}function P3e(s,l,c){return s=s|0,l=l|0,c=c|0,R(10),0}function U0(s){return s=s|0,R(11),0}function S3e(s,l){return s=s|0,l=+l,R(12),0}function iw(s,l){return s=s|0,l=l|0,R(13),0}function b3e(s,l,c,f,d){s=s|0,l=l|0,c=+c,f=+f,d=d|0,R(14)}function x3e(s,l,c,f,d,m){s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,m=m|0,R(15)}function fT(s,l){return s=s|0,l=l|0,R(16),0}function k3e(){return R(17),0}function Q3e(s,l,c,f,d){return s=s|0,l=l|0,c=c|0,f=f|0,d=d|0,R(18),0}function F3e(s,l,c,f){s=s|0,l=l|0,c=c|0,f=+f,R(19)}function R3e(s,l,c,f,d,m){s=s|0,l=l|0,c=y(c),f=f|0,d=y(d),m=m|0,R(20)}function WD(s,l,c){s=s|0,l=l|0,c=c|0,R(21)}function T3e(){R(22)}function om(s,l,c){s=s|0,l=l|0,c=+c,R(23)}function N3e(s,l){return s=+s,l=+l,R(24),0}function am(s,l,c,f){s=s|0,l=l|0,c=c|0,f=f|0,R(25)}var Z7=[C3e,QLe],$7=[I3e,Od],eW=[Ca,B0,vp,UI,_I,HI,qI,ku,Wd,jI,Qu,v0,D0,GI,WI,xc,P0,YI,Yd,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca,Ca],tW=[w3e],ef=[Cr,im,ADe,fDe,pDe,qbe,jbe,Gbe,oNe,aNe,lNe,yLe,ELe,CLe,_Ue,HUe,qUe,qa,w0,NI,ir,xl,xD,kD,tDe,IDe,RDe,XDe,pPe,kPe,KPe,lSe,BSe,USe,tbe,mbe,Rbe,axe,Bxe,Uxe,tke,mke,Rke,Zke,pQe,SQe,jQe,dD,CFe,LFe,tRe,ERe,TRe,tTe,ATe,hTe,QTe,TTe,XTe,uNe,pNe,kNe,VNe,MG,xOe,oMe,IMe,LMe,iUe,EUe,kUe,RUe,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr,Cr],tf=[nw,qd,YF,LI,OI,Sr,Os,Oi,ms,is,Gd,Bp,VI,ID,x0,JF,zF,wD,BD,$F,Fu,ne,rQe,dQe,BRe,FOe,rLe,w7,nw,nw,nw,nw],_0=[tl,m4e,_d,b0,Vd,qo,mD,Dp,KI,VF,ED,Jd,vD,eR,Zd,YQe,MRe,RNe,LOe,Za,tl,tl,tl,tl,tl,tl,tl,tl,tl,tl,tl,tl],rW=[B3e,sR],L3e=[v3e,eNe],YD=[D3e,L7,y4e,I4e,TPe,Axe,vFe,_Me],O3e=[P3e,sbe],nW=[U0,Pp,CD,JA,oR,v,P,Q,H,Y,U0,U0,U0,U0,U0,U0],M3e=[S3e,lTe],pT=[iw,q4e,DD,sDe,tPe,zPe,ASe,Obe,Sxe,QQe,Md,DMe,iw,iw,iw,iw],U3e=[b3e,ODe],_3e=[x3e,lUe],iW=[fT,XF,Be,Ue,ft,Ibe,fT,fT],KD=[k3e,jt,Ud,gD,yTe,MTe,mNe,OUe],sW=[Q3e,kd],H3e=[F3e,ske],oW=[R3e,tR],sw=[WD,oo,yD,ZF,Qc,mPe,PSe,Ike,Oke,WF,eOe,uMe,BUe,WD,WD,WD],aW=[T3e],lW=[om,KF,jd,VA,MI,kc,Kd,S0,jxe,_Fe,iTe,om,om,om,om,om],q3e=[N3e,iNe],hT=[am,jSe,eFe,sRe,KRe,vTe,GTe,vNe,$Ne,qOe,VUe,am,am,am,am,am];return{_llvm_bswap_i32:X7,dynCall_idd:y3e,dynCall_i:A3e,_i64Subtract:jD,___udivdi3:uT,dynCall_vif:J4e,setThrew:Lo,dynCall_viii:g3e,_bitshift64Lshr:GD,_bitshift64Shl:V7,dynCall_vi:Z4e,dynCall_viiddi:l3e,dynCall_diii:i3e,dynCall_iii:a3e,_memset:sm,_sbrk:Tp,_memcpy:xr,__GLOBAL__sub_I_Yoga_cpp:FI,dynCall_vii:$4e,___uremdi3:AT,dynCall_vid:z4e,stackAlloc:ca,_nbind_init:s4e,getTempRet0:TA,dynCall_di:s3e,dynCall_iid:o3e,setTempRet0:RA,_i64Add:cT,dynCall_fiff:X4e,dynCall_iiii:n3e,_emscripten_get_global_libc:d4e,dynCall_viid:m3e,dynCall_viiid:p3e,dynCall_viififi:h3e,dynCall_ii:e3e,__GLOBAL__sub_I_Binding_cc:IOe,dynCall_viiii:E3e,dynCall_iiiiii:f3e,stackSave:mu,dynCall_viiiii:V4e,__GLOBAL__sub_I_nbind_cc:wr,dynCall_vidd:r3e,_free:HD,runPostSets:K4e,dynCall_viiiiii:c3e,establishStackSpace:dn,_memmove:rw,stackRestore:Bl,_malloc:_D,__GLOBAL__sub_I_common_cc:HNe,dynCall_viddi:t3e,dynCall_dii:u3e,dynCall_v:d3e}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,getTempRet0=Module.getTempRet0=asm.getTempRet0,___udivdi3=Module.___udivdi3=asm.___udivdi3,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,_memset=Module._memset=asm._memset,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,___uremdi3=Module.___uremdi3=asm.___uremdi3,_nbind_init=Module._nbind_init=asm._nbind_init,_i64Subtract=Module._i64Subtract=asm._i64Subtract,setTempRet0=Module.setTempRet0=asm.setTempRet0,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,__GLOBAL__sub_I_Yoga_cpp=Module.__GLOBAL__sub_I_Yoga_cpp=asm.__GLOBAL__sub_I_Yoga_cpp,__GLOBAL__sub_I_Binding_cc=Module.__GLOBAL__sub_I_Binding_cc=asm.__GLOBAL__sub_I_Binding_cc,stackSave=Module.stackSave=asm.stackSave,__GLOBAL__sub_I_nbind_cc=Module.__GLOBAL__sub_I_nbind_cc=asm.__GLOBAL__sub_I_nbind_cc,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,_memmove=Module._memmove=asm._memmove,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,__GLOBAL__sub_I_common_cc=Module.__GLOBAL__sub_I_common_cc=asm.__GLOBAL__sub_I_common_cc,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vif=Module.dynCall_vif=asm.dynCall_vif,dynCall_vid=Module.dynCall_vid=asm.dynCall_vid,dynCall_fiff=Module.dynCall_fiff=asm.dynCall_fiff,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_vii=Module.dynCall_vii=asm.dynCall_vii,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viddi=Module.dynCall_viddi=asm.dynCall_viddi,dynCall_vidd=Module.dynCall_vidd=asm.dynCall_vidd,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_diii=Module.dynCall_diii=asm.dynCall_diii,dynCall_di=Module.dynCall_di=asm.dynCall_di,dynCall_iid=Module.dynCall_iid=asm.dynCall_iid,dynCall_iii=Module.dynCall_iii=asm.dynCall_iii,dynCall_viiddi=Module.dynCall_viiddi=asm.dynCall_viiddi,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_dii=Module.dynCall_dii=asm.dynCall_dii,dynCall_i=Module.dynCall_i=asm.dynCall_i,dynCall_iiiiii=Module.dynCall_iiiiii=asm.dynCall_iiiiii,dynCall_viiid=Module.dynCall_viiid=asm.dynCall_viiid,dynCall_viififi=Module.dynCall_viififi=asm.dynCall_viififi,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viid=Module.dynCall_viid=asm.dynCall_viid,dynCall_idd=Module.dynCall_idd=asm.dynCall_idd,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm;function ExitStatus(t){this.name="ExitStatus",this.message="Program terminated with exit("+t+")",this.status=t}ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function t(){Module.calledRun||run(),Module.calledRun||(dependenciesFulfilled=t)},Module.callMain=Module.callMain=function t(e){e=e||[],ensureInitRuntime();var r=e.length+1;function o(){for(var p=0;p<3;p++)a.push(0)}var a=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];o();for(var n=0;n0||(preRun(),runDependencies>0)||Module.calledRun)return;function e(){Module.calledRun||(Module.calledRun=!0,!ABORT&&(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(t),postRun()))}Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),e()},1)):e()}Module.run=Module.run=run;function exit(t,e){e&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=t,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(t)),ENVIRONMENT_IS_NODE&&process.exit(t),Module.quit(t,new ExitStatus(t)))}Module.exit=Module.exit=exit;var abortDecorators=[];function abort(t){Module.onAbort&&Module.onAbort(t),t!==void 0?(Module.print(t),Module.printErr(t),t=JSON.stringify(t)):t="",ABORT=!0,EXITSTATUS=1;var e=` +If this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.`,r="abort("+t+") at "+stackTrace()+e;throw abortDecorators&&abortDecorators.forEach(function(o){r=o(r,t)}),r}if(Module.abort=Module.abort=abort,Module.preInit)for(typeof Module.preInit=="function"&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;Module.noInitialRun&&(shouldRunNow=!1),run()})});var id=_((nKt,SCe)=>{"use strict";var xyt=DCe(),kyt=PCe(),pq=!1,hq=null;kyt({},function(t,e){if(!pq){if(pq=!0,t)throw t;hq=e}});if(!pq)throw new Error("Failed to load the yoga module - it needed to be loaded synchronously, but didn't");SCe.exports=xyt(hq.bind,hq.lib)});var dq=_((iKt,gq)=>{"use strict";var bCe=t=>Number.isNaN(t)?!1:t>=4352&&(t<=4447||t===9001||t===9002||11904<=t&&t<=12871&&t!==12351||12880<=t&&t<=19903||19968<=t&&t<=42182||43360<=t&&t<=43388||44032<=t&&t<=55203||63744<=t&&t<=64255||65040<=t&&t<=65049||65072<=t&&t<=65131||65281<=t&&t<=65376||65504<=t&&t<=65510||110592<=t&&t<=110593||127488<=t&&t<=127569||131072<=t&&t<=262141);gq.exports=bCe;gq.exports.default=bCe});var kCe=_((sKt,xCe)=>{"use strict";xCe.exports=function(){return/\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73)\uDB40\uDC7F|\uD83D\uDC68(?:\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68\uD83C\uDFFB|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|[\u2695\u2696\u2708]\uFE0F|\uD83D[\uDC66\uDC67]|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708])\uFE0F|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C[\uDFFB-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)\uD83C\uDFFB|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB\uDFFC])|\uD83D\uDC69(?:\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D\uD83D\uDC69)(?:\uD83C[\uDFFB-\uDFFD])|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|(?:(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)\uFE0F|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\u200D[\u2640\u2642])|\uD83C\uDFF4\u200D\u2620)\uFE0F|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDF6\uD83C\uDDE6|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDB5\uDDB6\uDDBB\uDDD2-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5\uDEEB\uDEEC\uDEF4-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFA\uDFE0-\uDFEB]|\uD83E[\uDD0D-\uDD3A\uDD3C-\uDD45\uDD47-\uDD71\uDD73-\uDD76\uDD7A-\uDDA2\uDDA5-\uDDAA\uDDAE-\uDDCA\uDDCD-\uDDFF\uDE70-\uDE73\uDE78-\uDE7A\uDE80-\uDE82\uDE90-\uDE95])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g}});var PB=_((oKt,mq)=>{"use strict";var Qyt=pS(),Fyt=dq(),Ryt=kCe(),QCe=t=>{if(typeof t!="string"||t.length===0||(t=Qyt(t),t.length===0))return 0;t=t.replace(Ryt()," ");let e=0;for(let r=0;r=127&&o<=159||o>=768&&o<=879||(o>65535&&r++,e+=Fyt(o)?2:1)}return e};mq.exports=QCe;mq.exports.default=QCe});var Eq=_((aKt,yq)=>{"use strict";var Tyt=PB(),FCe=t=>{let e=0;for(let r of t.split(` +`))e=Math.max(e,Tyt(r));return e};yq.exports=FCe;yq.exports.default=FCe});var RCe=_(SB=>{"use strict";var Nyt=SB&&SB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(SB,"__esModule",{value:!0});var Lyt=Nyt(Eq()),Cq={};SB.default=t=>{if(t.length===0)return{width:0,height:0};if(Cq[t])return Cq[t];let e=Lyt.default(t),r=t.split(` +`).length;return Cq[t]={width:e,height:r},{width:e,height:r}}});var TCe=_(bB=>{"use strict";var Oyt=bB&&bB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(bB,"__esModule",{value:!0});var In=Oyt(id()),Myt=(t,e)=>{"position"in e&&t.setPositionType(e.position==="absolute"?In.default.POSITION_TYPE_ABSOLUTE:In.default.POSITION_TYPE_RELATIVE)},Uyt=(t,e)=>{"marginLeft"in e&&t.setMargin(In.default.EDGE_START,e.marginLeft||0),"marginRight"in e&&t.setMargin(In.default.EDGE_END,e.marginRight||0),"marginTop"in e&&t.setMargin(In.default.EDGE_TOP,e.marginTop||0),"marginBottom"in e&&t.setMargin(In.default.EDGE_BOTTOM,e.marginBottom||0)},_yt=(t,e)=>{"paddingLeft"in e&&t.setPadding(In.default.EDGE_LEFT,e.paddingLeft||0),"paddingRight"in e&&t.setPadding(In.default.EDGE_RIGHT,e.paddingRight||0),"paddingTop"in e&&t.setPadding(In.default.EDGE_TOP,e.paddingTop||0),"paddingBottom"in e&&t.setPadding(In.default.EDGE_BOTTOM,e.paddingBottom||0)},Hyt=(t,e)=>{var r;"flexGrow"in e&&t.setFlexGrow((r=e.flexGrow)!==null&&r!==void 0?r:0),"flexShrink"in e&&t.setFlexShrink(typeof e.flexShrink=="number"?e.flexShrink:1),"flexDirection"in e&&(e.flexDirection==="row"&&t.setFlexDirection(In.default.FLEX_DIRECTION_ROW),e.flexDirection==="row-reverse"&&t.setFlexDirection(In.default.FLEX_DIRECTION_ROW_REVERSE),e.flexDirection==="column"&&t.setFlexDirection(In.default.FLEX_DIRECTION_COLUMN),e.flexDirection==="column-reverse"&&t.setFlexDirection(In.default.FLEX_DIRECTION_COLUMN_REVERSE)),"flexBasis"in e&&(typeof e.flexBasis=="number"?t.setFlexBasis(e.flexBasis):typeof e.flexBasis=="string"?t.setFlexBasisPercent(Number.parseInt(e.flexBasis,10)):t.setFlexBasis(NaN)),"alignItems"in e&&((e.alignItems==="stretch"||!e.alignItems)&&t.setAlignItems(In.default.ALIGN_STRETCH),e.alignItems==="flex-start"&&t.setAlignItems(In.default.ALIGN_FLEX_START),e.alignItems==="center"&&t.setAlignItems(In.default.ALIGN_CENTER),e.alignItems==="flex-end"&&t.setAlignItems(In.default.ALIGN_FLEX_END)),"alignSelf"in e&&((e.alignSelf==="auto"||!e.alignSelf)&&t.setAlignSelf(In.default.ALIGN_AUTO),e.alignSelf==="flex-start"&&t.setAlignSelf(In.default.ALIGN_FLEX_START),e.alignSelf==="center"&&t.setAlignSelf(In.default.ALIGN_CENTER),e.alignSelf==="flex-end"&&t.setAlignSelf(In.default.ALIGN_FLEX_END)),"justifyContent"in e&&((e.justifyContent==="flex-start"||!e.justifyContent)&&t.setJustifyContent(In.default.JUSTIFY_FLEX_START),e.justifyContent==="center"&&t.setJustifyContent(In.default.JUSTIFY_CENTER),e.justifyContent==="flex-end"&&t.setJustifyContent(In.default.JUSTIFY_FLEX_END),e.justifyContent==="space-between"&&t.setJustifyContent(In.default.JUSTIFY_SPACE_BETWEEN),e.justifyContent==="space-around"&&t.setJustifyContent(In.default.JUSTIFY_SPACE_AROUND))},qyt=(t,e)=>{var r,o;"width"in e&&(typeof e.width=="number"?t.setWidth(e.width):typeof e.width=="string"?t.setWidthPercent(Number.parseInt(e.width,10)):t.setWidthAuto()),"height"in e&&(typeof e.height=="number"?t.setHeight(e.height):typeof e.height=="string"?t.setHeightPercent(Number.parseInt(e.height,10)):t.setHeightAuto()),"minWidth"in e&&(typeof e.minWidth=="string"?t.setMinWidthPercent(Number.parseInt(e.minWidth,10)):t.setMinWidth((r=e.minWidth)!==null&&r!==void 0?r:0)),"minHeight"in e&&(typeof e.minHeight=="string"?t.setMinHeightPercent(Number.parseInt(e.minHeight,10)):t.setMinHeight((o=e.minHeight)!==null&&o!==void 0?o:0))},jyt=(t,e)=>{"display"in e&&t.setDisplay(e.display==="flex"?In.default.DISPLAY_FLEX:In.default.DISPLAY_NONE)},Gyt=(t,e)=>{if("borderStyle"in e){let r=typeof e.borderStyle=="string"?1:0;t.setBorder(In.default.EDGE_TOP,r),t.setBorder(In.default.EDGE_BOTTOM,r),t.setBorder(In.default.EDGE_LEFT,r),t.setBorder(In.default.EDGE_RIGHT,r)}};bB.default=(t,e={})=>{Myt(t,e),Uyt(t,e),_yt(t,e),Hyt(t,e),qyt(t,e),jyt(t,e),Gyt(t,e)}});var OCe=_((uKt,LCe)=>{"use strict";var xB=PB(),Wyt=pS(),Yyt=qw(),wq=new Set(["\x1B","\x9B"]),Kyt=39,NCe=t=>`${wq.values().next().value}[${t}m`,Vyt=t=>t.split(" ").map(e=>xB(e)),Iq=(t,e,r)=>{let o=[...e],a=!1,n=xB(Wyt(t[t.length-1]));for(let[u,A]of o.entries()){let p=xB(A);if(n+p<=r?t[t.length-1]+=A:(t.push(A),n=0),wq.has(A))a=!0;else if(a&&A==="m"){a=!1;continue}a||(n+=p,n===r&&u0&&t.length>1&&(t[t.length-2]+=t.pop())},Jyt=t=>{let e=t.split(" "),r=e.length;for(;r>0&&!(xB(e[r-1])>0);)r--;return r===e.length?t:e.slice(0,r).join(" ")+e.slice(r).join("")},zyt=(t,e,r={})=>{if(r.trim!==!1&&t.trim()==="")return"";let o="",a="",n,u=Vyt(t),A=[""];for(let[p,h]of t.split(" ").entries()){r.trim!==!1&&(A[A.length-1]=A[A.length-1].trimLeft());let E=xB(A[A.length-1]);if(p!==0&&(E>=e&&(r.wordWrap===!1||r.trim===!1)&&(A.push(""),E=0),(E>0||r.trim===!1)&&(A[A.length-1]+=" ",E++)),r.hard&&u[p]>e){let w=e-E,D=1+Math.floor((u[p]-w-1)/e);Math.floor((u[p]-1)/e)e&&E>0&&u[p]>0){if(r.wordWrap===!1&&Ee&&r.wordWrap===!1){Iq(A,h,e);continue}A[A.length-1]+=h}r.trim!==!1&&(A=A.map(Jyt)),o=A.join(` +`);for(let[p,h]of[...o].entries()){if(a+=h,wq.has(h)){let w=parseFloat(/\d[^m]*/.exec(o.slice(p,p+4)));n=w===Kyt?null:w}let E=Yyt.codes.get(Number(n));n&&E&&(o[p+1]===` +`?a+=NCe(E):h===` +`&&(a+=NCe(n)))}return a};LCe.exports=(t,e,r)=>String(t).normalize().replace(/\r\n/g,` +`).split(` +`).map(o=>zyt(o,e,r)).join(` +`)});var _Ce=_((AKt,UCe)=>{"use strict";var MCe="[\uD800-\uDBFF][\uDC00-\uDFFF]",Xyt=t=>t&&t.exact?new RegExp(`^${MCe}$`):new RegExp(MCe,"g");UCe.exports=Xyt});var Bq=_((fKt,GCe)=>{"use strict";var Zyt=dq(),$yt=_Ce(),HCe=qw(),jCe=["\x1B","\x9B"],vQ=t=>`${jCe[0]}[${t}m`,qCe=(t,e,r)=>{let o=[];t=[...t];for(let a of t){let n=a;a.match(";")&&(a=a.split(";")[0][0]+"0");let u=HCe.codes.get(parseInt(a,10));if(u){let A=t.indexOf(u.toString());A>=0?t.splice(A,1):o.push(vQ(e?u:n))}else if(e){o.push(vQ(0));break}else o.push(vQ(n))}if(e&&(o=o.filter((a,n)=>o.indexOf(a)===n),r!==void 0)){let a=vQ(HCe.codes.get(parseInt(r,10)));o=o.reduce((n,u)=>u===a?[u,...n]:[...n,u],[])}return o.join("")};GCe.exports=(t,e,r)=>{let o=[...t.normalize()],a=[];r=typeof r=="number"?r:o.length;let n=!1,u,A=0,p="";for(let[h,E]of o.entries()){let w=!1;if(jCe.includes(E)){let D=/\d[^m]*/.exec(t.slice(h,h+18));u=D&&D.length>0?D[0]:void 0,Ae&&A<=r)p+=E;else if(A===e&&!n&&u!==void 0)p=qCe(a);else if(A>=r){p+=qCe(a,!0,u);break}}return p}});var YCe=_((pKt,WCe)=>{"use strict";var _h=Bq(),eEt=PB();function DQ(t,e,r){if(t.charAt(e)===" ")return e;for(let o=1;o<=3;o++)if(r){if(t.charAt(e+o)===" ")return e+o}else if(t.charAt(e-o)===" ")return e-o;return e}WCe.exports=(t,e,r)=>{r={position:"end",preferTruncationOnSpace:!1,...r};let{position:o,space:a,preferTruncationOnSpace:n}=r,u="\u2026",A=1;if(typeof t!="string")throw new TypeError(`Expected \`input\` to be a string, got ${typeof t}`);if(typeof e!="number")throw new TypeError(`Expected \`columns\` to be a number, got ${typeof e}`);if(e<1)return"";if(e===1)return u;let p=eEt(t);if(p<=e)return t;if(o==="start"){if(n){let h=DQ(t,p-e+1,!0);return u+_h(t,h,p).trim()}return a===!0&&(u+=" ",A=2),u+_h(t,p-e+A,p)}if(o==="middle"){a===!0&&(u=" "+u+" ",A=3);let h=Math.floor(e/2);if(n){let E=DQ(t,h),w=DQ(t,p-(e-h)+1,!0);return _h(t,0,E)+u+_h(t,w,p).trim()}return _h(t,0,h)+u+_h(t,p-(e-h)+A,p)}if(o==="end"){if(n){let h=DQ(t,e-1);return _h(t,0,h)+u}return a===!0&&(u=" "+u,A=2),_h(t,0,e-A)+u}throw new Error(`Expected \`options.position\` to be either \`start\`, \`middle\` or \`end\`, got ${o}`)}});var Dq=_(kB=>{"use strict";var KCe=kB&&kB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(kB,"__esModule",{value:!0});var tEt=KCe(OCe()),rEt=KCe(YCe()),vq={};kB.default=(t,e,r)=>{let o=t+String(e)+String(r);if(vq[o])return vq[o];let a=t;if(r==="wrap"&&(a=tEt.default(t,e,{trim:!1,hard:!0})),r.startsWith("truncate")){let n="end";r==="truncate-middle"&&(n="middle"),r==="truncate-start"&&(n="start"),a=rEt.default(t,e,{position:n})}return vq[o]=a,a}});var Sq=_(Pq=>{"use strict";Object.defineProperty(Pq,"__esModule",{value:!0});var VCe=t=>{let e="";if(t.childNodes.length>0)for(let r of t.childNodes){let o="";r.nodeName==="#text"?o=r.nodeValue:((r.nodeName==="ink-text"||r.nodeName==="ink-virtual-text")&&(o=VCe(r)),o.length>0&&typeof r.internal_transform=="function"&&(o=r.internal_transform(o))),e+=o}return e};Pq.default=VCe});var bq=_(Ei=>{"use strict";var QB=Ei&&Ei.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Ei,"__esModule",{value:!0});Ei.setTextNodeValue=Ei.createTextNode=Ei.setStyle=Ei.setAttribute=Ei.removeChildNode=Ei.insertBeforeNode=Ei.appendChildNode=Ei.createNode=Ei.TEXT_NAME=void 0;var nEt=QB(id()),JCe=QB(RCe()),iEt=QB(TCe()),sEt=QB(Dq()),oEt=QB(Sq());Ei.TEXT_NAME="#text";Ei.createNode=t=>{var e;let r={nodeName:t,style:{},attributes:{},childNodes:[],parentNode:null,yogaNode:t==="ink-virtual-text"?void 0:nEt.default.Node.create()};return t==="ink-text"&&((e=r.yogaNode)===null||e===void 0||e.setMeasureFunc(aEt.bind(null,r))),r};Ei.appendChildNode=(t,e)=>{var r;e.parentNode&&Ei.removeChildNode(e.parentNode,e),e.parentNode=t,t.childNodes.push(e),e.yogaNode&&((r=t.yogaNode)===null||r===void 0||r.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PQ(t)};Ei.insertBeforeNode=(t,e,r)=>{var o,a;e.parentNode&&Ei.removeChildNode(e.parentNode,e),e.parentNode=t;let n=t.childNodes.indexOf(r);if(n>=0){t.childNodes.splice(n,0,e),e.yogaNode&&((o=t.yogaNode)===null||o===void 0||o.insertChild(e.yogaNode,n));return}t.childNodes.push(e),e.yogaNode&&((a=t.yogaNode)===null||a===void 0||a.insertChild(e.yogaNode,t.yogaNode.getChildCount())),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PQ(t)};Ei.removeChildNode=(t,e)=>{var r,o;e.yogaNode&&((o=(r=e.parentNode)===null||r===void 0?void 0:r.yogaNode)===null||o===void 0||o.removeChild(e.yogaNode)),e.parentNode=null;let a=t.childNodes.indexOf(e);a>=0&&t.childNodes.splice(a,1),(t.nodeName==="ink-text"||t.nodeName==="ink-virtual-text")&&PQ(t)};Ei.setAttribute=(t,e,r)=>{t.attributes[e]=r};Ei.setStyle=(t,e)=>{t.style=e,t.yogaNode&&iEt.default(t.yogaNode,e)};Ei.createTextNode=t=>{let e={nodeName:"#text",nodeValue:t,yogaNode:void 0,parentNode:null,style:{}};return Ei.setTextNodeValue(e,t),e};var aEt=function(t,e){var r,o;let a=t.nodeName==="#text"?t.nodeValue:oEt.default(t),n=JCe.default(a);if(n.width<=e||n.width>=1&&e>0&&e<1)return n;let u=(o=(r=t.style)===null||r===void 0?void 0:r.textWrap)!==null&&o!==void 0?o:"wrap",A=sEt.default(a,e,u);return JCe.default(A)},zCe=t=>{var e;if(!(!t||!t.parentNode))return(e=t.yogaNode)!==null&&e!==void 0?e:zCe(t.parentNode)},PQ=t=>{let e=zCe(t);e?.markDirty()};Ei.setTextNodeValue=(t,e)=>{typeof e!="string"&&(e=String(e)),t.nodeValue=e,PQ(t)}});var tIe=_(FB=>{"use strict";var eIe=FB&&FB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(FB,"__esModule",{value:!0});var XCe=uq(),lEt=eIe(ECe()),ZCe=eIe(id()),ko=bq(),$Ce=t=>{t?.unsetMeasureFunc(),t?.freeRecursive()};FB.default=lEt.default({schedulePassiveEffects:XCe.unstable_scheduleCallback,cancelPassiveEffects:XCe.unstable_cancelCallback,now:Date.now,getRootHostContext:()=>({isInsideText:!1}),prepareForCommit:()=>null,preparePortalMount:()=>null,clearContainer:()=>!1,shouldDeprioritizeSubtree:()=>!1,resetAfterCommit:t=>{if(t.isStaticDirty){t.isStaticDirty=!1,typeof t.onImmediateRender=="function"&&t.onImmediateRender();return}typeof t.onRender=="function"&&t.onRender()},getChildHostContext:(t,e)=>{let r=t.isInsideText,o=e==="ink-text"||e==="ink-virtual-text";return r===o?t:{isInsideText:o}},shouldSetTextContent:()=>!1,createInstance:(t,e,r,o)=>{if(o.isInsideText&&t==="ink-box")throw new Error(" can\u2019t be nested inside component");let a=t==="ink-text"&&o.isInsideText?"ink-virtual-text":t,n=ko.createNode(a);for(let[u,A]of Object.entries(e))u!=="children"&&(u==="style"?ko.setStyle(n,A):u==="internal_transform"?n.internal_transform=A:u==="internal_static"?n.internal_static=!0:ko.setAttribute(n,u,A));return n},createTextInstance:(t,e,r)=>{if(!r.isInsideText)throw new Error(`Text string "${t}" must be rendered inside component`);return ko.createTextNode(t)},resetTextContent:()=>{},hideTextInstance:t=>{ko.setTextNodeValue(t,"")},unhideTextInstance:(t,e)=>{ko.setTextNodeValue(t,e)},getPublicInstance:t=>t,hideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ZCe.default.DISPLAY_NONE)},unhideInstance:t=>{var e;(e=t.yogaNode)===null||e===void 0||e.setDisplay(ZCe.default.DISPLAY_FLEX)},appendInitialChild:ko.appendChildNode,appendChild:ko.appendChildNode,insertBefore:ko.insertBeforeNode,finalizeInitialChildren:(t,e,r,o)=>(t.internal_static&&(o.isStaticDirty=!0,o.staticNode=t),!1),supportsMutation:!0,appendChildToContainer:ko.appendChildNode,insertInContainerBefore:ko.insertBeforeNode,removeChildFromContainer:(t,e)=>{ko.removeChildNode(t,e),$Ce(e.yogaNode)},prepareUpdate:(t,e,r,o,a)=>{t.internal_static&&(a.isStaticDirty=!0);let n={},u=Object.keys(o);for(let A of u)if(o[A]!==r[A]){if(A==="style"&&typeof o.style=="object"&&typeof r.style=="object"){let h=o.style,E=r.style,w=Object.keys(h);for(let D of w){if(D==="borderStyle"||D==="borderColor"){if(typeof n.style!="object"){let x={};n.style=x}n.style.borderStyle=h.borderStyle,n.style.borderColor=h.borderColor}if(h[D]!==E[D]){if(typeof n.style!="object"){let x={};n.style=x}n.style[D]=h[D]}}continue}n[A]=o[A]}return n},commitUpdate:(t,e)=>{for(let[r,o]of Object.entries(e))r!=="children"&&(r==="style"?ko.setStyle(t,o):r==="internal_transform"?t.internal_transform=o:r==="internal_static"?t.internal_static=!0:ko.setAttribute(t,r,o))},commitTextUpdate:(t,e,r)=>{ko.setTextNodeValue(t,r)},removeChild:(t,e)=>{ko.removeChildNode(t,e),$Ce(e.yogaNode)}})});var nIe=_((yKt,rIe)=>{"use strict";rIe.exports=(t,e=1,r)=>{if(r={indent:" ",includeEmptyLines:!1,...r},typeof t!="string")throw new TypeError(`Expected \`input\` to be a \`string\`, got \`${typeof t}\``);if(typeof e!="number")throw new TypeError(`Expected \`count\` to be a \`number\`, got \`${typeof e}\``);if(typeof r.indent!="string")throw new TypeError(`Expected \`options.indent\` to be a \`string\`, got \`${typeof r.indent}\``);if(e===0)return t;let o=r.includeEmptyLines?/^/gm:/^(?!\s*$)/gm;return t.replace(o,r.indent.repeat(e))}});var iIe=_(RB=>{"use strict";var cEt=RB&&RB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(RB,"__esModule",{value:!0});var SQ=cEt(id());RB.default=t=>t.getComputedWidth()-t.getComputedPadding(SQ.default.EDGE_LEFT)-t.getComputedPadding(SQ.default.EDGE_RIGHT)-t.getComputedBorder(SQ.default.EDGE_LEFT)-t.getComputedBorder(SQ.default.EDGE_RIGHT)});var sIe=_((CKt,uEt)=>{uEt.exports={single:{topLeft:"\u250C",topRight:"\u2510",bottomRight:"\u2518",bottomLeft:"\u2514",vertical:"\u2502",horizontal:"\u2500"},double:{topLeft:"\u2554",topRight:"\u2557",bottomRight:"\u255D",bottomLeft:"\u255A",vertical:"\u2551",horizontal:"\u2550"},round:{topLeft:"\u256D",topRight:"\u256E",bottomRight:"\u256F",bottomLeft:"\u2570",vertical:"\u2502",horizontal:"\u2500"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomRight:"\u251B",bottomLeft:"\u2517",vertical:"\u2503",horizontal:"\u2501"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomRight:"\u255C",bottomLeft:"\u2559",vertical:"\u2551",horizontal:"\u2500"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomRight:"\u255B",bottomLeft:"\u2558",vertical:"\u2502",horizontal:"\u2550"},classic:{topLeft:"+",topRight:"+",bottomRight:"+",bottomLeft:"+",vertical:"|",horizontal:"-"}}});var aIe=_((IKt,xq)=>{"use strict";var oIe=sIe();xq.exports=oIe;xq.exports.default=oIe});var cIe=_((wKt,lIe)=>{"use strict";var AEt=(t,e,r)=>{let o=t.indexOf(e);if(o===-1)return t;let a=e.length,n=0,u="";do u+=t.substr(n,o-n)+e+r,n=o+a,o=t.indexOf(e,n);while(o!==-1);return u+=t.substr(n),u},fEt=(t,e,r,o)=>{let a=0,n="";do{let u=t[o-1]==="\r";n+=t.substr(a,(u?o-1:o)-a)+e+(u?`\r +`:` +`)+r,a=o+1,o=t.indexOf(` +`,a)}while(o!==-1);return n+=t.substr(a),n};lIe.exports={stringReplaceAll:AEt,stringEncaseCRLFWithFirstIndex:fEt}});var hIe=_((BKt,pIe)=>{"use strict";var pEt=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,uIe=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,hEt=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,gEt=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,dEt=new Map([["n",` +`],["r","\r"],["t"," "],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e","\x1B"],["a","\x07"]]);function fIe(t){let e=t[0]==="u",r=t[1]==="{";return e&&!r&&t.length===5||t[0]==="x"&&t.length===3?String.fromCharCode(parseInt(t.slice(1),16)):e&&r?String.fromCodePoint(parseInt(t.slice(2,-1),16)):dEt.get(t)||t}function mEt(t,e){let r=[],o=e.trim().split(/\s*,\s*/g),a;for(let n of o){let u=Number(n);if(!Number.isNaN(u))r.push(u);else if(a=n.match(hEt))r.push(a[2].replace(gEt,(A,p,h)=>p?fIe(p):h));else throw new Error(`Invalid Chalk template style argument: ${n} (in style '${t}')`)}return r}function yEt(t){uIe.lastIndex=0;let e=[],r;for(;(r=uIe.exec(t))!==null;){let o=r[1];if(r[2]){let a=mEt(o,r[2]);e.push([o].concat(a))}else e.push([o])}return e}function AIe(t,e){let r={};for(let a of e)for(let n of a.styles)r[n[0]]=a.inverse?null:n.slice(1);let o=t;for(let[a,n]of Object.entries(r))if(Array.isArray(n)){if(!(a in o))throw new Error(`Unknown Chalk style: ${a}`);o=n.length>0?o[a](...n):o[a]}return o}pIe.exports=(t,e)=>{let r=[],o=[],a=[];if(e.replace(pEt,(n,u,A,p,h,E)=>{if(u)a.push(fIe(u));else if(p){let w=a.join("");a=[],o.push(r.length===0?w:AIe(t,r)(w)),r.push({inverse:A,styles:yEt(p)})}else if(h){if(r.length===0)throw new Error("Found extraneous } in Chalk template literal");o.push(AIe(t,r)(a.join(""))),a=[],r.pop()}else a.push(E)}),o.push(a.join("")),r.length>0){let n=`Chalk template literal is missing ${r.length} closing bracket${r.length===1?"":"s"} (\`}\`)`;throw new Error(n)}return o.join("")}});var FQ=_((vKt,CIe)=>{"use strict";var TB=qw(),{stdout:Qq,stderr:Fq}=ZN(),{stringReplaceAll:EEt,stringEncaseCRLFWithFirstIndex:CEt}=cIe(),{isArray:bQ}=Array,dIe=["ansi","ansi","ansi256","ansi16m"],DC=Object.create(null),IEt=(t,e={})=>{if(e.level&&!(Number.isInteger(e.level)&&e.level>=0&&e.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");let r=Qq?Qq.level:0;t.level=e.level===void 0?r:e.level},Rq=class{constructor(e){return mIe(e)}},mIe=t=>{let e={};return IEt(e,t),e.template=(...r)=>EIe(e.template,...r),Object.setPrototypeOf(e,xQ.prototype),Object.setPrototypeOf(e.template,e),e.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},e.template.Instance=Rq,e.template};function xQ(t){return mIe(t)}for(let[t,e]of Object.entries(TB))DC[t]={get(){let r=kQ(this,Tq(e.open,e.close,this._styler),this._isEmpty);return Object.defineProperty(this,t,{value:r}),r}};DC.visible={get(){let t=kQ(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:t}),t}};var yIe=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(let t of yIe)DC[t]={get(){let{level:e}=this;return function(...r){let o=Tq(TB.color[dIe[e]][t](...r),TB.color.close,this._styler);return kQ(this,o,this._isEmpty)}}};for(let t of yIe){let e="bg"+t[0].toUpperCase()+t.slice(1);DC[e]={get(){let{level:r}=this;return function(...o){let a=Tq(TB.bgColor[dIe[r]][t](...o),TB.bgColor.close,this._styler);return kQ(this,a,this._isEmpty)}}}}var wEt=Object.defineProperties(()=>{},{...DC,level:{enumerable:!0,get(){return this._generator.level},set(t){this._generator.level=t}}}),Tq=(t,e,r)=>{let o,a;return r===void 0?(o=t,a=e):(o=r.openAll+t,a=e+r.closeAll),{open:t,close:e,openAll:o,closeAll:a,parent:r}},kQ=(t,e,r)=>{let o=(...a)=>bQ(a[0])&&bQ(a[0].raw)?gIe(o,EIe(o,...a)):gIe(o,a.length===1?""+a[0]:a.join(" "));return Object.setPrototypeOf(o,wEt),o._generator=t,o._styler=e,o._isEmpty=r,o},gIe=(t,e)=>{if(t.level<=0||!e)return t._isEmpty?"":e;let r=t._styler;if(r===void 0)return e;let{openAll:o,closeAll:a}=r;if(e.indexOf("\x1B")!==-1)for(;r!==void 0;)e=EEt(e,r.close,r.open),r=r.parent;let n=e.indexOf(` +`);return n!==-1&&(e=CEt(e,a,o,n)),o+e+a},kq,EIe=(t,...e)=>{let[r]=e;if(!bQ(r)||!bQ(r.raw))return e.join(" ");let o=e.slice(1),a=[r.raw[0]];for(let n=1;n{"use strict";var BEt=LB&&LB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(LB,"__esModule",{value:!0});var NB=BEt(FQ()),vEt=/^(rgb|hsl|hsv|hwb)\(\s?(\d+),\s?(\d+),\s?(\d+)\s?\)$/,DEt=/^(ansi|ansi256)\(\s?(\d+)\s?\)$/,RQ=(t,e)=>e==="foreground"?t:"bg"+t[0].toUpperCase()+t.slice(1);LB.default=(t,e,r)=>{if(!e)return t;if(e in NB.default){let a=RQ(e,r);return NB.default[a](t)}if(e.startsWith("#")){let a=RQ("hex",r);return NB.default[a](e)(t)}if(e.startsWith("ansi")){let a=DEt.exec(e);if(!a)return t;let n=RQ(a[1],r),u=Number(a[2]);return NB.default[n](u)(t)}if(e.startsWith("rgb")||e.startsWith("hsl")||e.startsWith("hsv")||e.startsWith("hwb")){let a=vEt.exec(e);if(!a)return t;let n=RQ(a[1],r),u=Number(a[2]),A=Number(a[3]),p=Number(a[4]);return NB.default[n](u,A,p)(t)}return t}});var wIe=_(OB=>{"use strict";var IIe=OB&&OB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(OB,"__esModule",{value:!0});var PEt=IIe(aIe()),Lq=IIe(Nq());OB.default=(t,e,r,o)=>{if(typeof r.style.borderStyle=="string"){let a=r.yogaNode.getComputedWidth(),n=r.yogaNode.getComputedHeight(),u=r.style.borderColor,A=PEt.default[r.style.borderStyle],p=Lq.default(A.topLeft+A.horizontal.repeat(a-2)+A.topRight,u,"foreground"),h=(Lq.default(A.vertical,u,"foreground")+` +`).repeat(n-2),E=Lq.default(A.bottomLeft+A.horizontal.repeat(a-2)+A.bottomRight,u,"foreground");o.write(t,e,p,{transformers:[]}),o.write(t,e+1,h,{transformers:[]}),o.write(t+a-1,e+1,h,{transformers:[]}),o.write(t,e+n-1,E,{transformers:[]})}}});var vIe=_(MB=>{"use strict";var sd=MB&&MB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(MB,"__esModule",{value:!0});var SEt=sd(id()),bEt=sd(Eq()),xEt=sd(nIe()),kEt=sd(Dq()),QEt=sd(iIe()),FEt=sd(Sq()),REt=sd(wIe()),TEt=(t,e)=>{var r;let o=(r=t.childNodes[0])===null||r===void 0?void 0:r.yogaNode;if(o){let a=o.getComputedLeft(),n=o.getComputedTop();e=` +`.repeat(n)+xEt.default(e,a)}return e},BIe=(t,e,r)=>{var o;let{offsetX:a=0,offsetY:n=0,transformers:u=[],skipStaticElements:A}=r;if(A&&t.internal_static)return;let{yogaNode:p}=t;if(p){if(p.getDisplay()===SEt.default.DISPLAY_NONE)return;let h=a+p.getComputedLeft(),E=n+p.getComputedTop(),w=u;if(typeof t.internal_transform=="function"&&(w=[t.internal_transform,...u]),t.nodeName==="ink-text"){let D=FEt.default(t);if(D.length>0){let x=bEt.default(D),C=QEt.default(p);if(x>C){let T=(o=t.style.textWrap)!==null&&o!==void 0?o:"wrap";D=kEt.default(D,C,T)}D=TEt(t,D),e.write(h,E,D,{transformers:w})}return}if(t.nodeName==="ink-box"&&REt.default(h,E,t,e),t.nodeName==="ink-root"||t.nodeName==="ink-box")for(let D of t.childNodes)BIe(D,e,{offsetX:h,offsetY:E,transformers:w,skipStaticElements:A})}};MB.default=BIe});var SIe=_(UB=>{"use strict";var PIe=UB&&UB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(UB,"__esModule",{value:!0});var DIe=PIe(Bq()),NEt=PIe(PB()),Oq=class{constructor(e){this.writes=[];let{width:r,height:o}=e;this.width=r,this.height=o}write(e,r,o,a){let{transformers:n}=a;o&&this.writes.push({x:e,y:r,text:o,transformers:n})}get(){let e=[];for(let o=0;oo.trimRight()).join(` +`),height:e.length}}};UB.default=Oq});var kIe=_(_B=>{"use strict";var Mq=_B&&_B.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(_B,"__esModule",{value:!0});var LEt=Mq(id()),bIe=Mq(vIe()),xIe=Mq(SIe());_B.default=(t,e)=>{var r;if(t.yogaNode.setWidth(e),t.yogaNode){t.yogaNode.calculateLayout(void 0,void 0,LEt.default.DIRECTION_LTR);let o=new xIe.default({width:t.yogaNode.getComputedWidth(),height:t.yogaNode.getComputedHeight()});bIe.default(t,o,{skipStaticElements:!0});let a;!((r=t.staticNode)===null||r===void 0)&&r.yogaNode&&(a=new xIe.default({width:t.staticNode.yogaNode.getComputedWidth(),height:t.staticNode.yogaNode.getComputedHeight()}),bIe.default(t.staticNode,a,{skipStaticElements:!1}));let{output:n,height:u}=o.get();return{output:n,outputHeight:u,staticOutput:a?`${a.get().output} +`:""}}return{output:"",outputHeight:0,staticOutput:""}}});var TIe=_((kKt,RIe)=>{"use strict";var QIe=ve("stream"),FIe=["assert","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],Uq={},OEt=t=>{let e=new QIe.PassThrough,r=new QIe.PassThrough;e.write=a=>t("stdout",a),r.write=a=>t("stderr",a);let o=new console.Console(e,r);for(let a of FIe)Uq[a]=console[a],console[a]=o[a];return()=>{for(let a of FIe)console[a]=Uq[a];Uq={}}};RIe.exports=OEt});var Hq=_(_q=>{"use strict";Object.defineProperty(_q,"__esModule",{value:!0});_q.default=new WeakMap});var jq=_(qq=>{"use strict";Object.defineProperty(qq,"__esModule",{value:!0});var MEt=ln(),NIe=MEt.createContext({exit:()=>{}});NIe.displayName="InternalAppContext";qq.default=NIe});var Wq=_(Gq=>{"use strict";Object.defineProperty(Gq,"__esModule",{value:!0});var UEt=ln(),LIe=UEt.createContext({stdin:void 0,setRawMode:()=>{},isRawModeSupported:!1,internal_exitOnCtrlC:!0});LIe.displayName="InternalStdinContext";Gq.default=LIe});var Kq=_(Yq=>{"use strict";Object.defineProperty(Yq,"__esModule",{value:!0});var _Et=ln(),OIe=_Et.createContext({stdout:void 0,write:()=>{}});OIe.displayName="InternalStdoutContext";Yq.default=OIe});var Jq=_(Vq=>{"use strict";Object.defineProperty(Vq,"__esModule",{value:!0});var HEt=ln(),MIe=HEt.createContext({stderr:void 0,write:()=>{}});MIe.displayName="InternalStderrContext";Vq.default=MIe});var TQ=_(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});var qEt=ln(),UIe=qEt.createContext({activeId:void 0,add:()=>{},remove:()=>{},activate:()=>{},deactivate:()=>{},enableFocus:()=>{},disableFocus:()=>{},focusNext:()=>{},focusPrevious:()=>{},focus:()=>{}});UIe.displayName="InternalFocusContext";zq.default=UIe});var HIe=_((OKt,_Ie)=>{"use strict";var jEt=/[|\\{}()[\]^$+*?.-]/g;_Ie.exports=t=>{if(typeof t!="string")throw new TypeError("Expected a string");return t.replace(jEt,"\\$&")}});var WIe=_((MKt,GIe)=>{"use strict";var GEt=HIe(),WEt=typeof process=="object"&&process&&typeof process.cwd=="function"?process.cwd():".",jIe=[].concat(ve("module").builtinModules,"bootstrap_node","node").map(t=>new RegExp(`(?:\\((?:node:)?${t}(?:\\.js)?:\\d+:\\d+\\)$|^\\s*at (?:node:)?${t}(?:\\.js)?:\\d+:\\d+$)`));jIe.push(/\((?:node:)?internal\/[^:]+:\d+:\d+\)$/,/\s*at (?:node:)?internal\/[^:]+:\d+:\d+$/,/\/\.node-spawn-wrap-\w+-\w+\/node:\d+:\d+\)?$/);var Xq=class t{constructor(e){e={ignoredPackages:[],...e},"internals"in e||(e.internals=t.nodeInternals()),"cwd"in e||(e.cwd=WEt),this._cwd=e.cwd.replace(/\\/g,"/"),this._internals=[].concat(e.internals,YEt(e.ignoredPackages)),this._wrapCallSite=e.wrapCallSite||!1}static nodeInternals(){return[...jIe]}clean(e,r=0){r=" ".repeat(r),Array.isArray(e)||(e=e.split(` +`)),!/^\s*at /.test(e[0])&&/^\s*at /.test(e[1])&&(e=e.slice(1));let o=!1,a=null,n=[];return e.forEach(u=>{if(u=u.replace(/\\/g,"/"),this._internals.some(p=>p.test(u)))return;let A=/^\s*at /.test(u);o?u=u.trimEnd().replace(/^(\s+)at /,"$1"):(u=u.trim(),A&&(u=u.slice(3))),u=u.replace(`${this._cwd}/`,""),u&&(A?(a&&(n.push(a),a=null),n.push(u)):(o=!0,a=u))}),n.map(u=>`${r}${u} +`).join("")}captureString(e,r=this.captureString){typeof e=="function"&&(r=e,e=1/0);let{stackTraceLimit:o}=Error;e&&(Error.stackTraceLimit=e);let a={};Error.captureStackTrace(a,r);let{stack:n}=a;return Error.stackTraceLimit=o,this.clean(n)}capture(e,r=this.capture){typeof e=="function"&&(r=e,e=1/0);let{prepareStackTrace:o,stackTraceLimit:a}=Error;Error.prepareStackTrace=(A,p)=>this._wrapCallSite?p.map(this._wrapCallSite):p,e&&(Error.stackTraceLimit=e);let n={};Error.captureStackTrace(n,r);let{stack:u}=n;return Object.assign(Error,{prepareStackTrace:o,stackTraceLimit:a}),u}at(e=this.at){let[r]=this.capture(1,e);if(!r)return{};let o={line:r.getLineNumber(),column:r.getColumnNumber()};qIe(o,r.getFileName(),this._cwd),r.isConstructor()&&(o.constructor=!0),r.isEval()&&(o.evalOrigin=r.getEvalOrigin()),r.isNative()&&(o.native=!0);let a;try{a=r.getTypeName()}catch{}a&&a!=="Object"&&a!=="[object Object]"&&(o.type=a);let n=r.getFunctionName();n&&(o.function=n);let u=r.getMethodName();return u&&n!==u&&(o.method=u),o}parseLine(e){let r=e&&e.match(KEt);if(!r)return null;let o=r[1]==="new",a=r[2],n=r[3],u=r[4],A=Number(r[5]),p=Number(r[6]),h=r[7],E=r[8],w=r[9],D=r[10]==="native",x=r[11]===")",C,T={};if(E&&(T.line=Number(E)),w&&(T.column=Number(w)),x&&h){let L=0;for(let U=h.length-1;U>0;U--)if(h.charAt(U)===")")L++;else if(h.charAt(U)==="("&&h.charAt(U-1)===" "&&(L--,L===-1&&h.charAt(U-1)===" ")){let J=h.slice(0,U-1);h=h.slice(U+1),a+=` (${J}`;break}}if(a){let L=a.match(VEt);L&&(a=L[1],C=L[2])}return qIe(T,h,this._cwd),o&&(T.constructor=!0),n&&(T.evalOrigin=n,T.evalLine=A,T.evalColumn=p,T.evalFile=u&&u.replace(/\\/g,"/")),D&&(T.native=!0),a&&(T.function=a),C&&a!==C&&(T.method=C),T}};function qIe(t,e,r){e&&(e=e.replace(/\\/g,"/"),e.startsWith(`${r}/`)&&(e=e.slice(r.length+1)),t.file=e)}function YEt(t){if(t.length===0)return[];let e=t.map(r=>GEt(r));return new RegExp(`[/\\\\]node_modules[/\\\\](?:${e.join("|")})[/\\\\][^:]+:\\d+:\\d+`)}var KEt=new RegExp("^(?:\\s*at )?(?:(new) )?(?:(.*?) \\()?(?:eval at ([^ ]+) \\((.+?):(\\d+):(\\d+)\\), )?(?:(.+?):(\\d+):(\\d+)|(native))(\\)?)$"),VEt=/^(.*?) \[as (.*?)\]$/;GIe.exports=Xq});var KIe=_((UKt,YIe)=>{"use strict";YIe.exports=(t,e)=>t.replace(/^\t+/gm,r=>" ".repeat(r.length*(e||2)))});var JIe=_((_Kt,VIe)=>{"use strict";var JEt=KIe(),zEt=(t,e)=>{let r=[],o=t-e,a=t+e;for(let n=o;n<=a;n++)r.push(n);return r};VIe.exports=(t,e,r)=>{if(typeof t!="string")throw new TypeError("Source code is missing.");if(!e||e<1)throw new TypeError("Line number must start from `1`.");if(t=JEt(t).split(/\r?\n/),!(e>t.length))return r={around:3,...r},zEt(e,r.around).filter(o=>t[o-1]!==void 0).map(o=>({line:o,value:t[o-1]}))}});var NQ=_(lu=>{"use strict";var XEt=lu&&lu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),ZEt=lu&&lu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),$Et=lu&&lu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&XEt(e,t,r);return ZEt(e,t),e},eCt=lu&&lu.__rest||function(t,e){var r={};for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(r[o]=t[o]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,o=Object.getOwnPropertySymbols(t);a{var{children:r}=t,o=eCt(t,["children"]);let a=Object.assign(Object.assign({},o),{marginLeft:o.marginLeft||o.marginX||o.margin||0,marginRight:o.marginRight||o.marginX||o.margin||0,marginTop:o.marginTop||o.marginY||o.margin||0,marginBottom:o.marginBottom||o.marginY||o.margin||0,paddingLeft:o.paddingLeft||o.paddingX||o.padding||0,paddingRight:o.paddingRight||o.paddingX||o.padding||0,paddingTop:o.paddingTop||o.paddingY||o.padding||0,paddingBottom:o.paddingBottom||o.paddingY||o.padding||0});return zIe.default.createElement("ink-box",{ref:e,style:a},r)});Zq.displayName="Box";Zq.defaultProps={flexDirection:"row",flexGrow:0,flexShrink:1};lu.default=Zq});var tj=_(HB=>{"use strict";var $q=HB&&HB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(HB,"__esModule",{value:!0});var tCt=$q(ln()),PC=$q(FQ()),XIe=$q(Nq()),ej=({color:t,backgroundColor:e,dimColor:r,bold:o,italic:a,underline:n,strikethrough:u,inverse:A,wrap:p,children:h})=>{if(h==null)return null;let E=w=>(r&&(w=PC.default.dim(w)),t&&(w=XIe.default(w,t,"foreground")),e&&(w=XIe.default(w,e,"background")),o&&(w=PC.default.bold(w)),a&&(w=PC.default.italic(w)),n&&(w=PC.default.underline(w)),u&&(w=PC.default.strikethrough(w)),A&&(w=PC.default.inverse(w)),w);return tCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row",textWrap:p},internal_transform:E},h)};ej.displayName="Text";ej.defaultProps={dimColor:!1,bold:!1,italic:!1,underline:!1,strikethrough:!1,wrap:"wrap"};HB.default=ej});var twe=_(cu=>{"use strict";var rCt=cu&&cu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),nCt=cu&&cu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),iCt=cu&&cu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&rCt(e,t,r);return nCt(e,t),e},qB=cu&&cu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(cu,"__esModule",{value:!0});var ZIe=iCt(ve("fs")),ps=qB(ln()),$Ie=qB(WIe()),sCt=qB(JIe()),Jf=qB(NQ()),mA=qB(tj()),ewe=new $Ie.default({cwd:process.cwd(),internals:$Ie.default.nodeInternals()}),oCt=({error:t})=>{let e=t.stack?t.stack.split(` +`).slice(1):void 0,r=e?ewe.parseLine(e[0]):void 0,o,a=0;if(r?.file&&r?.line&&ZIe.existsSync(r.file)){let n=ZIe.readFileSync(r.file,"utf8");if(o=sCt.default(n,r.line),o)for(let{line:u}of o)a=Math.max(a,String(u).length)}return ps.default.createElement(Jf.default,{flexDirection:"column",padding:1},ps.default.createElement(Jf.default,null,ps.default.createElement(mA.default,{backgroundColor:"red",color:"white"}," ","ERROR"," "),ps.default.createElement(mA.default,null," ",t.message)),r&&ps.default.createElement(Jf.default,{marginTop:1},ps.default.createElement(mA.default,{dimColor:!0},r.file,":",r.line,":",r.column)),r&&o&&ps.default.createElement(Jf.default,{marginTop:1,flexDirection:"column"},o.map(({line:n,value:u})=>ps.default.createElement(Jf.default,{key:n},ps.default.createElement(Jf.default,{width:a+1},ps.default.createElement(mA.default,{dimColor:n!==r.line,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0},String(n).padStart(a," "),":")),ps.default.createElement(mA.default,{key:n,backgroundColor:n===r.line?"red":void 0,color:n===r.line?"white":void 0}," "+u)))),t.stack&&ps.default.createElement(Jf.default,{marginTop:1,flexDirection:"column"},t.stack.split(` +`).slice(1).map(n=>{let u=ewe.parseLine(n);return u?ps.default.createElement(Jf.default,{key:n},ps.default.createElement(mA.default,{dimColor:!0},"- "),ps.default.createElement(mA.default,{dimColor:!0,bold:!0},u.function),ps.default.createElement(mA.default,{dimColor:!0,color:"gray"}," ","(",u.file,":",u.line,":",u.column,")")):ps.default.createElement(Jf.default,{key:n},ps.default.createElement(mA.default,{dimColor:!0},"- "),ps.default.createElement(mA.default,{dimColor:!0,bold:!0},n))})))};cu.default=oCt});var nwe=_(uu=>{"use strict";var aCt=uu&&uu.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),lCt=uu&&uu.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),cCt=uu&&uu.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&aCt(e,t,r);return lCt(e,t),e},ad=uu&&uu.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(uu,"__esModule",{value:!0});var od=cCt(ln()),rwe=ad(Z6()),uCt=ad(jq()),ACt=ad(Wq()),fCt=ad(Kq()),pCt=ad(Jq()),hCt=ad(TQ()),gCt=ad(twe()),dCt=" ",mCt="\x1B[Z",yCt="\x1B",LQ=class extends od.PureComponent{constructor(){super(...arguments),this.state={isFocusEnabled:!0,activeFocusId:void 0,focusables:[],error:void 0},this.rawModeEnabledCount=0,this.handleSetRawMode=e=>{let{stdin:r}=this.props;if(!this.isRawModeSupported())throw r===process.stdin?new Error(`Raw mode is not supported on the current process.stdin, which Ink uses as input stream by default. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`):new Error(`Raw mode is not supported on the stdin provided to Ink. +Read about how to prevent this error on https://github.com/vadimdemedes/ink/#israwmodesupported`);if(r.setEncoding("utf8"),e){this.rawModeEnabledCount===0&&(r.addListener("data",this.handleInput),r.resume(),r.setRawMode(!0)),this.rawModeEnabledCount++;return}--this.rawModeEnabledCount===0&&(r.setRawMode(!1),r.removeListener("data",this.handleInput),r.pause())},this.handleInput=e=>{e===""&&this.props.exitOnCtrlC&&this.handleExit(),e===yCt&&this.state.activeFocusId&&this.setState({activeFocusId:void 0}),this.state.isFocusEnabled&&this.state.focusables.length>0&&(e===dCt&&this.focusNext(),e===mCt&&this.focusPrevious())},this.handleExit=e=>{this.isRawModeSupported()&&this.handleSetRawMode(!1),this.props.onExit(e)},this.enableFocus=()=>{this.setState({isFocusEnabled:!0})},this.disableFocus=()=>{this.setState({isFocusEnabled:!1})},this.focus=e=>{this.setState(r=>r.focusables.some(a=>a?.id===e)?{activeFocusId:e}:r)},this.focusNext=()=>{this.setState(e=>{var r;let o=(r=e.focusables[0])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findNextFocusable(e)||o}})},this.focusPrevious=()=>{this.setState(e=>{var r;let o=(r=e.focusables[e.focusables.length-1])===null||r===void 0?void 0:r.id;return{activeFocusId:this.findPreviousFocusable(e)||o}})},this.addFocusable=(e,{autoFocus:r})=>{this.setState(o=>{let a=o.activeFocusId;return!a&&r&&(a=e),{activeFocusId:a,focusables:[...o.focusables,{id:e,isActive:!0}]}})},this.removeFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.filter(o=>o.id!==e)}))},this.activateFocusable=e=>{this.setState(r=>({focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!0})}))},this.deactivateFocusable=e=>{this.setState(r=>({activeFocusId:r.activeFocusId===e?void 0:r.activeFocusId,focusables:r.focusables.map(o=>o.id!==e?o:{id:e,isActive:!1})}))},this.findNextFocusable=e=>{var r;let o=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=o+1;a{var r;let o=e.focusables.findIndex(a=>a.id===e.activeFocusId);for(let a=o-1;a>=0;a--)if(!((r=e.focusables[a])===null||r===void 0)&&r.isActive)return e.focusables[a].id}}static getDerivedStateFromError(e){return{error:e}}isRawModeSupported(){return this.props.stdin.isTTY}render(){return od.default.createElement(uCt.default.Provider,{value:{exit:this.handleExit}},od.default.createElement(ACt.default.Provider,{value:{stdin:this.props.stdin,setRawMode:this.handleSetRawMode,isRawModeSupported:this.isRawModeSupported(),internal_exitOnCtrlC:this.props.exitOnCtrlC}},od.default.createElement(fCt.default.Provider,{value:{stdout:this.props.stdout,write:this.props.writeToStdout}},od.default.createElement(pCt.default.Provider,{value:{stderr:this.props.stderr,write:this.props.writeToStderr}},od.default.createElement(hCt.default.Provider,{value:{activeId:this.state.activeFocusId,add:this.addFocusable,remove:this.removeFocusable,activate:this.activateFocusable,deactivate:this.deactivateFocusable,enableFocus:this.enableFocus,disableFocus:this.disableFocus,focusNext:this.focusNext,focusPrevious:this.focusPrevious,focus:this.focus}},this.state.error?od.default.createElement(gCt.default,{error:this.state.error}):this.props.children)))))}componentDidMount(){rwe.default.hide(this.props.stdout)}componentWillUnmount(){rwe.default.show(this.props.stdout),this.isRawModeSupported()&&this.handleSetRawMode(!1)}componentDidCatch(e){this.handleExit(e)}};uu.default=LQ;LQ.displayName="InternalApp"});var owe=_(Au=>{"use strict";var ECt=Au&&Au.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),CCt=Au&&Au.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),ICt=Au&&Au.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&ECt(e,t,r);return CCt(e,t),e},fu=Au&&Au.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(Au,"__esModule",{value:!0});var wCt=fu(ln()),iwe=WM(),BCt=fu(tCe()),vCt=fu(K6()),DCt=fu(aCe()),PCt=fu(cCe()),rj=fu(tIe()),SCt=fu(kIe()),bCt=fu(X6()),xCt=fu(TIe()),kCt=ICt(bq()),QCt=fu(Hq()),FCt=fu(nwe()),SC=process.env.CI==="false"?!1:DCt.default,swe=()=>{},nj=class{constructor(e){this.resolveExitPromise=()=>{},this.rejectExitPromise=()=>{},this.unsubscribeExit=()=>{},this.onRender=()=>{if(this.isUnmounted)return;let{output:r,outputHeight:o,staticOutput:a}=SCt.default(this.rootNode,this.options.stdout.columns||80),n=a&&a!==` +`;if(this.options.debug){n&&(this.fullStaticOutput+=a),this.options.stdout.write(this.fullStaticOutput+r);return}if(SC){n&&this.options.stdout.write(a),this.lastOutput=r;return}if(n&&(this.fullStaticOutput+=a),o>=this.options.stdout.rows){this.options.stdout.write(vCt.default.clearTerminal+this.fullStaticOutput+r),this.lastOutput=r;return}n&&(this.log.clear(),this.options.stdout.write(a),this.log(r)),!n&&r!==this.lastOutput&&this.throttledLog(r),this.lastOutput=r},PCt.default(this),this.options=e,this.rootNode=kCt.createNode("ink-root"),this.rootNode.onRender=e.debug?this.onRender:iwe(this.onRender,32,{leading:!0,trailing:!0}),this.rootNode.onImmediateRender=this.onRender,this.log=BCt.default.create(e.stdout),this.throttledLog=e.debug?this.log:iwe(this.log,void 0,{leading:!0,trailing:!0}),this.isUnmounted=!1,this.lastOutput="",this.fullStaticOutput="",this.container=rj.default.createContainer(this.rootNode,0,!1,null),this.unsubscribeExit=bCt.default(this.unmount,{alwaysLast:!1}),e.patchConsole&&this.patchConsole(),SC||(e.stdout.on("resize",this.onRender),this.unsubscribeResize=()=>{e.stdout.off("resize",this.onRender)})}render(e){let r=wCt.default.createElement(FCt.default,{stdin:this.options.stdin,stdout:this.options.stdout,stderr:this.options.stderr,writeToStdout:this.writeToStdout,writeToStderr:this.writeToStderr,exitOnCtrlC:this.options.exitOnCtrlC,onExit:this.unmount},e);rj.default.updateContainer(r,this.container,null,swe)}writeToStdout(e){if(!this.isUnmounted){if(this.options.debug){this.options.stdout.write(e+this.fullStaticOutput+this.lastOutput);return}if(SC){this.options.stdout.write(e);return}this.log.clear(),this.options.stdout.write(e),this.log(this.lastOutput)}}writeToStderr(e){if(!this.isUnmounted){if(this.options.debug){this.options.stderr.write(e),this.options.stdout.write(this.fullStaticOutput+this.lastOutput);return}if(SC){this.options.stderr.write(e);return}this.log.clear(),this.options.stderr.write(e),this.log(this.lastOutput)}}unmount(e){this.isUnmounted||(this.onRender(),this.unsubscribeExit(),typeof this.restoreConsole=="function"&&this.restoreConsole(),typeof this.unsubscribeResize=="function"&&this.unsubscribeResize(),SC?this.options.stdout.write(this.lastOutput+` +`):this.options.debug||this.log.done(),this.isUnmounted=!0,rj.default.updateContainer(null,this.container,null,swe),QCt.default.delete(this.options.stdout),e instanceof Error?this.rejectExitPromise(e):this.resolveExitPromise())}waitUntilExit(){return this.exitPromise||(this.exitPromise=new Promise((e,r)=>{this.resolveExitPromise=e,this.rejectExitPromise=r})),this.exitPromise}clear(){!SC&&!this.options.debug&&this.log.clear()}patchConsole(){this.options.debug||(this.restoreConsole=xCt.default((e,r)=>{e==="stdout"&&this.writeToStdout(r),e==="stderr"&&(r.startsWith("The above error occurred")||this.writeToStderr(r))}))}};Au.default=nj});var lwe=_(jB=>{"use strict";var awe=jB&&jB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(jB,"__esModule",{value:!0});var RCt=awe(owe()),OQ=awe(Hq()),TCt=ve("stream"),NCt=(t,e)=>{let r=Object.assign({stdout:process.stdout,stdin:process.stdin,stderr:process.stderr,debug:!1,exitOnCtrlC:!0,patchConsole:!0},LCt(e)),o=OCt(r.stdout,()=>new RCt.default(r));return o.render(t),{rerender:o.render,unmount:()=>o.unmount(),waitUntilExit:o.waitUntilExit,cleanup:()=>OQ.default.delete(r.stdout),clear:o.clear}};jB.default=NCt;var LCt=(t={})=>t instanceof TCt.Stream?{stdout:t,stdin:process.stdin}:t,OCt=(t,e)=>{let r;return OQ.default.has(t)?r=OQ.default.get(t):(r=e(),OQ.default.set(t,r)),r}});var uwe=_(zf=>{"use strict";var MCt=zf&&zf.__createBinding||(Object.create?function(t,e,r,o){o===void 0&&(o=r),Object.defineProperty(t,o,{enumerable:!0,get:function(){return e[r]}})}:function(t,e,r,o){o===void 0&&(o=r),t[o]=e[r]}),UCt=zf&&zf.__setModuleDefault||(Object.create?function(t,e){Object.defineProperty(t,"default",{enumerable:!0,value:e})}:function(t,e){t.default=e}),_Ct=zf&&zf.__importStar||function(t){if(t&&t.__esModule)return t;var e={};if(t!=null)for(var r in t)r!=="default"&&Object.hasOwnProperty.call(t,r)&&MCt(e,t,r);return UCt(e,t),e};Object.defineProperty(zf,"__esModule",{value:!0});var GB=_Ct(ln()),cwe=t=>{let{items:e,children:r,style:o}=t,[a,n]=GB.useState(0),u=GB.useMemo(()=>e.slice(a),[e,a]);GB.useLayoutEffect(()=>{n(e.length)},[e.length]);let A=u.map((h,E)=>r(h,a+E)),p=GB.useMemo(()=>Object.assign({position:"absolute",flexDirection:"column"},o),[o]);return GB.default.createElement("ink-box",{internal_static:!0,style:p},A)};cwe.displayName="Static";zf.default=cwe});var fwe=_(WB=>{"use strict";var HCt=WB&&WB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(WB,"__esModule",{value:!0});var qCt=HCt(ln()),Awe=({children:t,transform:e})=>t==null?null:qCt.default.createElement("ink-text",{style:{flexGrow:0,flexShrink:1,flexDirection:"row"},internal_transform:e},t);Awe.displayName="Transform";WB.default=Awe});var hwe=_(YB=>{"use strict";var jCt=YB&&YB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(YB,"__esModule",{value:!0});var GCt=jCt(ln()),pwe=({count:t=1})=>GCt.default.createElement("ink-text",null,` +`.repeat(t));pwe.displayName="Newline";YB.default=pwe});var mwe=_(KB=>{"use strict";var gwe=KB&&KB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(KB,"__esModule",{value:!0});var WCt=gwe(ln()),YCt=gwe(NQ()),dwe=()=>WCt.default.createElement(YCt.default,{flexGrow:1});dwe.displayName="Spacer";KB.default=dwe});var MQ=_(VB=>{"use strict";var KCt=VB&&VB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(VB,"__esModule",{value:!0});var VCt=ln(),JCt=KCt(Wq()),zCt=()=>VCt.useContext(JCt.default);VB.default=zCt});var Ewe=_(JB=>{"use strict";var XCt=JB&&JB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(JB,"__esModule",{value:!0});var ywe=ln(),ZCt=XCt(MQ()),$Ct=(t,e={})=>{let{stdin:r,setRawMode:o,internal_exitOnCtrlC:a}=ZCt.default();ywe.useEffect(()=>{if(e.isActive!==!1)return o(!0),()=>{o(!1)}},[e.isActive,o]),ywe.useEffect(()=>{if(e.isActive===!1)return;let n=u=>{let A=String(u),p={upArrow:A==="\x1B[A",downArrow:A==="\x1B[B",leftArrow:A==="\x1B[D",rightArrow:A==="\x1B[C",pageDown:A==="\x1B[6~",pageUp:A==="\x1B[5~",return:A==="\r",escape:A==="\x1B",ctrl:!1,shift:!1,tab:A===" "||A==="\x1B[Z",backspace:A==="\b",delete:A==="\x7F"||A==="\x1B[3~",meta:!1};A<=""&&!p.return&&(A=String.fromCharCode(A.charCodeAt(0)+97-1),p.ctrl=!0),A.startsWith("\x1B")&&(A=A.slice(1),p.meta=!0);let h=A>="A"&&A<="Z",E=A>="\u0410"&&A<="\u042F";A.length===1&&(h||E)&&(p.shift=!0),p.tab&&A==="[Z"&&(p.shift=!0),(p.tab||p.backspace||p.delete)&&(A=""),(!(A==="c"&&p.ctrl)||!a)&&t(A,p)};return r?.on("data",n),()=>{r?.off("data",n)}},[e.isActive,r,a,t])};JB.default=$Ct});var Cwe=_(zB=>{"use strict";var eIt=zB&&zB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(zB,"__esModule",{value:!0});var tIt=ln(),rIt=eIt(jq()),nIt=()=>tIt.useContext(rIt.default);zB.default=nIt});var Iwe=_(XB=>{"use strict";var iIt=XB&&XB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(XB,"__esModule",{value:!0});var sIt=ln(),oIt=iIt(Kq()),aIt=()=>sIt.useContext(oIt.default);XB.default=aIt});var wwe=_(ZB=>{"use strict";var lIt=ZB&&ZB.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ZB,"__esModule",{value:!0});var cIt=ln(),uIt=lIt(Jq()),AIt=()=>cIt.useContext(uIt.default);ZB.default=AIt});var vwe=_(ev=>{"use strict";var Bwe=ev&&ev.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(ev,"__esModule",{value:!0});var $B=ln(),fIt=Bwe(TQ()),pIt=Bwe(MQ()),hIt=({isActive:t=!0,autoFocus:e=!1,id:r}={})=>{let{isRawModeSupported:o,setRawMode:a}=pIt.default(),{activeId:n,add:u,remove:A,activate:p,deactivate:h,focus:E}=$B.useContext(fIt.default),w=$B.useMemo(()=>r??Math.random().toString().slice(2,7),[r]);return $B.useEffect(()=>(u(w,{autoFocus:e}),()=>{A(w)}),[w,e]),$B.useEffect(()=>{t?p(w):h(w)},[t,w]),$B.useEffect(()=>{if(!(!o||!t))return a(!0),()=>{a(!1)}},[t]),{isFocused:!!w&&n===w,focus:E}};ev.default=hIt});var Dwe=_(tv=>{"use strict";var gIt=tv&&tv.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(tv,"__esModule",{value:!0});var dIt=ln(),mIt=gIt(TQ()),yIt=()=>{let t=dIt.useContext(mIt.default);return{enableFocus:t.enableFocus,disableFocus:t.disableFocus,focusNext:t.focusNext,focusPrevious:t.focusPrevious,focus:t.focus}};tv.default=yIt});var Pwe=_(ij=>{"use strict";Object.defineProperty(ij,"__esModule",{value:!0});ij.default=t=>{var e,r,o,a;return{width:(r=(e=t.yogaNode)===null||e===void 0?void 0:e.getComputedWidth())!==null&&r!==void 0?r:0,height:(a=(o=t.yogaNode)===null||o===void 0?void 0:o.getComputedHeight())!==null&&a!==void 0?a:0}}});var ac=_(Js=>{"use strict";Object.defineProperty(Js,"__esModule",{value:!0});var EIt=lwe();Object.defineProperty(Js,"render",{enumerable:!0,get:function(){return EIt.default}});var CIt=NQ();Object.defineProperty(Js,"Box",{enumerable:!0,get:function(){return CIt.default}});var IIt=tj();Object.defineProperty(Js,"Text",{enumerable:!0,get:function(){return IIt.default}});var wIt=uwe();Object.defineProperty(Js,"Static",{enumerable:!0,get:function(){return wIt.default}});var BIt=fwe();Object.defineProperty(Js,"Transform",{enumerable:!0,get:function(){return BIt.default}});var vIt=hwe();Object.defineProperty(Js,"Newline",{enumerable:!0,get:function(){return vIt.default}});var DIt=mwe();Object.defineProperty(Js,"Spacer",{enumerable:!0,get:function(){return DIt.default}});var PIt=Ewe();Object.defineProperty(Js,"useInput",{enumerable:!0,get:function(){return PIt.default}});var SIt=Cwe();Object.defineProperty(Js,"useApp",{enumerable:!0,get:function(){return SIt.default}});var bIt=MQ();Object.defineProperty(Js,"useStdin",{enumerable:!0,get:function(){return bIt.default}});var xIt=Iwe();Object.defineProperty(Js,"useStdout",{enumerable:!0,get:function(){return xIt.default}});var kIt=wwe();Object.defineProperty(Js,"useStderr",{enumerable:!0,get:function(){return kIt.default}});var QIt=vwe();Object.defineProperty(Js,"useFocus",{enumerable:!0,get:function(){return QIt.default}});var FIt=Dwe();Object.defineProperty(Js,"useFocusManager",{enumerable:!0,get:function(){return FIt.default}});var RIt=Pwe();Object.defineProperty(Js,"measureElement",{enumerable:!0,get:function(){return RIt.default}})});var oj={};Kt(oj,{Gem:()=>sj});var Swe,ld,sj,UQ=It(()=>{Swe=et(ac()),ld=et(ln()),sj=(0,ld.memo)(({active:t})=>{let e=(0,ld.useMemo)(()=>t?"\u25C9":"\u25EF",[t]),r=(0,ld.useMemo)(()=>t?"green":"yellow",[t]);return ld.default.createElement(Swe.Text,{color:r},e)})});var xwe={};Kt(xwe,{useKeypress:()=>cd});function cd({active:t},e,r){let{stdin:o}=(0,bwe.useStdin)(),a=(0,_Q.useCallback)((n,u)=>e(n,u),r);(0,_Q.useEffect)(()=>{if(!(!t||!o))return o.on("keypress",a),()=>{o.off("keypress",a)}},[t,a,o])}var bwe,_Q,rv=It(()=>{bwe=et(ac()),_Q=et(ln())});var Qwe={};Kt(Qwe,{FocusRequest:()=>kwe,useFocusRequest:()=>aj});var kwe,aj,lj=It(()=>{rv();kwe=(r=>(r.BEFORE="before",r.AFTER="after",r))(kwe||{}),aj=function({active:t},e,r){cd({active:t},(o,a)=>{a.name==="tab"&&(a.shift?e("before"):e("after"))},r)}});var Fwe={};Kt(Fwe,{useListInput:()=>nv});var nv,HQ=It(()=>{rv();nv=function(t,e,{active:r,minus:o,plus:a,set:n,loop:u=!0}){cd({active:r},(A,p)=>{let h=e.indexOf(t);switch(p.name){case o:{let E=h-1;if(u){n(e[(e.length+E)%e.length]);return}if(E<0)return;n(e[E])}break;case a:{let E=h+1;if(u){n(e[E%e.length]);return}if(E>=e.length)return;n(e[E])}break}},[e,t,a,n,u])}});var qQ={};Kt(qQ,{ScrollableItems:()=>TIt});var Hh,Ua,TIt,jQ=It(()=>{Hh=et(ac()),Ua=et(ln());lj();HQ();TIt=({active:t=!0,children:e=[],radius:r=10,size:o=1,loop:a=!0,onFocusRequest:n,willReachEnd:u})=>{let A=L=>{if(L.key===null)throw new Error("Expected all children to have a key");return L.key},p=Ua.default.Children.map(e,L=>A(L)),h=p[0],[E,w]=(0,Ua.useState)(h),D=p.indexOf(E);(0,Ua.useEffect)(()=>{p.includes(E)||w(h)},[e]),(0,Ua.useEffect)(()=>{u&&D>=p.length-2&&u()},[D]),aj({active:t&&!!n},L=>{n?.(L)},[n]),nv(E,p,{active:t,minus:"up",plus:"down",set:w,loop:a});let x=D-r,C=D+r;C>p.length&&(x-=C-p.length,C=p.length),x<0&&(C+=-x,x=0),C>=p.length&&(C=p.length-1);let T=[];for(let L=x;L<=C;++L){let U=p[L],J=t&&U===E;T.push(Ua.default.createElement(Hh.Box,{key:U,height:o},Ua.default.createElement(Hh.Box,{marginLeft:1,marginRight:1},Ua.default.createElement(Hh.Text,null,J?Ua.default.createElement(Hh.Text,{color:"cyan",bold:!0},">"):" ")),Ua.default.createElement(Hh.Box,null,Ua.default.cloneElement(e[L],{active:J}))))}return Ua.default.createElement(Hh.Box,{flexDirection:"column",width:"100%"},T)}});var Rwe,Xf,Twe,cj,Nwe,uj=It(()=>{Rwe=et(ac()),Xf=et(ln()),Twe=ve("readline"),cj=Xf.default.createContext(null),Nwe=({children:t})=>{let{stdin:e,setRawMode:r}=(0,Rwe.useStdin)();(0,Xf.useEffect)(()=>{r&&r(!0),e&&(0,Twe.emitKeypressEvents)(e)},[e,r]);let[o,a]=(0,Xf.useState)(new Map),n=(0,Xf.useMemo)(()=>({getAll:()=>o,get:u=>o.get(u),set:(u,A)=>a(new Map([...o,[u,A]]))}),[o,a]);return Xf.default.createElement(cj.Provider,{value:n,children:t})}});var Aj={};Kt(Aj,{useMinistore:()=>NIt});function NIt(t,e){let r=(0,GQ.useContext)(cj);if(r===null)throw new Error("Expected this hook to run with a ministore context attached");if(typeof t>"u")return r.getAll();let o=(0,GQ.useCallback)(n=>{r.set(t,n)},[t,r.set]),a=r.get(t);return typeof a>"u"&&(a=e),[a,o]}var GQ,fj=It(()=>{GQ=et(ln());uj()});var YQ={};Kt(YQ,{renderForm:()=>LIt});async function LIt(t,e,{stdin:r,stdout:o,stderr:a}){let n,u=p=>{let{exit:h}=(0,WQ.useApp)();cd({active:!0},(E,w)=>{w.name==="return"&&(n=p,h())},[h,p])},{waitUntilExit:A}=(0,WQ.render)(pj.default.createElement(Nwe,null,pj.default.createElement(t,{...e,useSubmit:u})),{stdin:r,stdout:o,stderr:a});return await A(),n}var WQ,pj,KQ=It(()=>{WQ=et(ac()),pj=et(ln());uj();rv()});var Uwe=_(iv=>{"use strict";Object.defineProperty(iv,"__esModule",{value:!0});iv.UncontrolledTextInput=void 0;var Owe=ln(),hj=ln(),Lwe=ac(),ud=FQ(),Mwe=({value:t,placeholder:e="",focus:r=!0,mask:o,highlightPastedText:a=!1,showCursor:n=!0,onChange:u,onSubmit:A})=>{let[{cursorOffset:p,cursorWidth:h},E]=hj.useState({cursorOffset:(t||"").length,cursorWidth:0});hj.useEffect(()=>{E(T=>{if(!r||!n)return T;let L=t||"";return T.cursorOffset>L.length-1?{cursorOffset:L.length,cursorWidth:0}:T})},[t,r,n]);let w=a?h:0,D=o?o.repeat(t.length):t,x=D,C=e?ud.grey(e):void 0;if(n&&r){C=e.length>0?ud.inverse(e[0])+ud.grey(e.slice(1)):ud.inverse(" "),x=D.length>0?"":ud.inverse(" ");let T=0;for(let L of D)T>=p-w&&T<=p?x+=ud.inverse(L):x+=L,T++;D.length>0&&p===D.length&&(x+=ud.inverse(" "))}return Lwe.useInput((T,L)=>{if(L.upArrow||L.downArrow||L.ctrl&&T==="c"||L.tab||L.shift&&L.tab)return;if(L.return){A&&A(t);return}let U=p,J=t,te=0;L.leftArrow?n&&U--:L.rightArrow?n&&U++:L.backspace||L.delete?p>0&&(J=t.slice(0,p-1)+t.slice(p,t.length),U--):(J=t.slice(0,p)+T+t.slice(p,t.length),U+=T.length,T.length>1&&(te=T.length)),p<0&&(U=0),p>t.length&&(U=t.length),E({cursorOffset:U,cursorWidth:te}),J!==t&&u(J)},{isActive:r}),Owe.createElement(Lwe.Text,null,e?D.length>0?x:C:x)};iv.default=Mwe;iv.UncontrolledTextInput=({initialValue:t="",...e})=>{let[r,o]=hj.useState(t);return Owe.createElement(Mwe,Object.assign({},e,{value:r,onChange:o}))}});var qwe={};Kt(qwe,{Pad:()=>gj});var _we,Hwe,gj,dj=It(()=>{_we=et(ac()),Hwe=et(ln()),gj=({length:t,active:e})=>{if(t===0)return null;let r=t>1?` ${"-".repeat(t-1)}`:" ";return Hwe.default.createElement(_we.Text,{dimColor:!e},r)}});var jwe={};Kt(jwe,{ItemOptions:()=>OIt});var ov,qh,OIt,Gwe=It(()=>{ov=et(ac()),qh=et(ln());HQ();UQ();dj();OIt=function({active:t,skewer:e,options:r,value:o,onChange:a,sizes:n=[]}){let u=r.filter(({label:p})=>!!p).map(({value:p})=>p),A=r.findIndex(p=>p.value===o&&p.label!="");return nv(o,u,{active:t,minus:"left",plus:"right",set:a}),qh.default.createElement(qh.default.Fragment,null,r.map(({label:p},h)=>{let E=h===A,w=n[h]-1||0,D=p.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g,""),x=Math.max(0,w-D.length-2);return p?qh.default.createElement(ov.Box,{key:p,width:w,marginLeft:1},qh.default.createElement(ov.Text,{wrap:"truncate"},qh.default.createElement(sj,{active:E})," ",p),e?qh.default.createElement(gj,{active:t,length:x}):null):qh.default.createElement(ov.Box,{key:`spacer-${h}`,width:w,marginLeft:1})}))}});var s1e=_((bJt,i1e)=>{var Dj;i1e.exports=()=>(typeof Dj>"u"&&(Dj=ve("zlib").brotliDecompressSync(Buffer.from("Wy5/VjPdZhxSd5XevyfDh3R7QpEhSwfCr+o4vCxKUvD5Dih63SFA7YSqt4kV3YZiqKqmJZUxtgHuPwCIWVWlJXMYQqiVGnkj5841xgxfa/KJU8MgY2GmB0ZrsG2Ia6d6jici0S/BaIk2PIIiexSaeaKHbigtPXP1Umlj+RsB4fOlXz+e/+leZOxOUvY6i0spQSRhmGVb+WrYtkjc/mRXrvYRnwJsY6TW/UUII5xmztaQa8zyEPr9x6Z6xpfTs0JrifF/3LHpGOMEBLFNI3vTJVS1VspNkJJfPdXLV/kIbzzjDi8L7G41tX8+L6MriFRpKeMhhev1tSlaMCTrgjUGrm3mrJZarzdyokxpw5dSM3shRMcRWDZOQmmj2JaW//u8nG5fq44vTQvCpzFIDIJtKUppv3b2e7X//nyNfI/MquN15dxzkWphCHk65gxu74rQQmCCtyEsx+JcqQ5L178iah06K87T7ux4PzqUFhU37GTJ+bKoAJWQbfWVdNUiKBgnX7pvqVr231TEVxfoWMbUxjASB9AqcAwuCZsHyKrpfJSBblyIhS4/Xy/H7KUt9Zpalu3f4qQSGLPoA8qA6JKHC9oPSZaf/TS/fjcdlDWXUnGacymVWOC0Zg+Qsvu8ejNn4CR4+Kp3+stF8n+k7O3pOzOa20hAA2Mj74ywe0CFnIQkegk8UeL98eDQoojjm81uszSYkmp601QHQXz5/0+BUjet2/G9E5hBQmYEftRQezoedndHsZ185/iquropBMgFblnopqC4INiWZ1CCHT/+x/T/Pz/ufa8ksbfmc63Zs2EQSDYUW/NnzOlAbYsGU/T48Y2t42EPUtmuHd98BhwU6oFUdDNcPuRumLj7JQuLzefDhylaa5+zm00uwIG5EJH+0Na9EBHVtkf0/XQ6rgm345VVArv6m750zw4WHF8AHrG0/fHAL0NpxydZMxEJxdCPW2Wt6Ql4vQPbzdEQJuAH+LCl+XxWgJWGp2QMZbooQQSNzM92WgQMBl9g4dfXzFpAvBEdzkPdXobTsetlvp/TVaXStMi23G3PaoAo86vkbclqEy0g3IhvG3u77vr/7/vp934rgeBzoYyLNJSkxtLIuugHoUaOWnvNPR/rmvoPVSioAZBsQ7Zz/M7sudba5966twoNw+5P8vXowabc+z+Ss5k1YSTFCjJlUQHswGaKpL+vSq2u77tHREYiQTABoqSEWK1C7USpV1VbXydyIaW9lo1aZtsPF+H/9/yb/P/vUQr3iGxFuEeaMjwiTYhIwAoRkTmGzATCIzKhyCTISZBUTQKSykCJPQMt1YbaKfVOJEAzgaDMBIDshdRskmbdTm3G6mXdbjWn1e697LMup77PbS73OR/mNsdjn45zOM5+y16pNNJIflftxO77UxGZsnvX01BFKLfyuHWYXgFxaYXQT5gBRWEf2uKXX7OEJJH2OEdympt5NU2MSmG3u7q7Lg4pK4wy7+2avw4gorXMTi1UT6gT4dnItTYMilCYJ01k9b1jnidv54Nv+zZLKJAHwQCtzgOMLaKP+1J3e+AfSq8WaE3vnBfQcdmKfAxGYyGPQCgVjEFEAiQR8YBKF39tionVNruHiC6mfzND9yAZp9p+kgaWYKlk1myWWdNHaCTCmJIN4XN9VCUWVWHIdc8xHpY5RU2AyuqCHcf8+rwdYJvx/3DGTnS+9//CwqIMjMQpomL0XOjMnE4bMHZ3L4b/tn2/g4AsIe+1MTPUVCAwREuLhEGohIl6r7v9S0ycOefe3flHt/o/1yHAo4T3fpsmSkkvhBAIdIGAUhUDIRCCgmXG3Z35pbnivAoGGHS7IHiBCe6m9fzYt553ihQBo0wRZMRBphj4I6SYImDAICm2CJhihFcs+A+vnfb98945B179zxZbuJjChQkmuFBhggguRHChgAsVIlGhQgEVJshtfxiSIxKJrsP2gWizZKONoKXr+wf/zjk0n/+CBQMGDBhgYGApVmRFBlZkKQ2svAYGfpJBR2pQ76lBg8ln/l+3/n/FOiOgtz3LCARSCBggtBBASksoKZQuTZRiA0aZc84vavYO6Bt4t33HOx3medGEIAtiY6RESbVBpaSwgDZ+t75IE5TfBIUDfmrkcfzsjKNQsD1IoOHkP8GWqR+tRFWdfL605OJWHRIkeuNuQJFf+d5M+JVW7+rE6ovhVlWd/CseV7MVQMNkScc55/1z/ep7TqIJqxcy8OZptmgb6EbkDJ/bsXX+dgq/St66Z5Sq6gQIazy/oD9pOjkXjgkCVYWMomY1cfzQpnRKO6ncD1qHi5aRWSIo0iubIGZhETb4RD4RdbBLgw1H3VVaAMS6kmdFJyYlS5GAZTeat2tzhBla6x57p7ZwRavTUnXyt8CNzXJg0A8CRrvo71kDGdJQGB8xC4ek1XR1cGbSpjDjyyDcldzitCYbL+buJrT90HWj82Px39ESW29lD/0nTWrMf8IG9gvjaIFyAoRFQIlxlTTtVwyQKJlLeH1Ff4WCKkgOfF39hJLBXnxYxwMFOpu/7FoN/6Nf8g7x+8mnMr18it1H6QLBnpPgrMA6s9e8EwdMIedi58wfviQqM50w8D273dBGjlGjDlFoPF7SSWY6S+RLohyQFFKDJTErHk0TlsXqCKL0YEl8LhiSjMrfh0+NQqp3ruhKygXxXk8F/17qltxfcP57GcJzf+TlEko5wvE8gYC23mzIf9L0yCr463oKguxMuquOf1yeQ9NZQCkDZ2g+LW5qqwcW+AmKb0V75umbitvNrSS85VYxYZitP9Orx013vU3RTpWY6H5W5PA9q5JGRbUfCtgSscIWapvY9zKJFcfx5hb8gl7yGmJvhpoA0B/w4ZKKDG2t+cYegw9CMQLpuILUanRd5thW8YNVglxFagJgb6PPIWLZ7pLdQNpLvjG26qmICKPgF27dF1tOnVQ4JBWyYss2V38QrJVvPb9gagKABBarkbSI2VbyjRUJCogRyGBGefJBCAv5UdT+ecjG2GeV0BjkxuNLKV63tW1DsvgGteUsNFMQGKsrrZTeOtDuVMxTsf/Ak21/RUOw1V5PtBFys4PAHbQv8FyRG5PP1qWxC6eLZPQzPTL8lVIhwL1ySP0gnNIb/5ZTSsrum/6xVLxSdE61vqiVZUn+BW99hfUKtbyLmLrh0lx6hCeiS4GJT+MD6jbMbuIdr+mk2U3tb3hw9NYA+xjVr/MgNXSUm48v5F1SXPJY5BWpcVDjQbcaOvEqqSDTqMQS2O5BR03MbtSoJAsjs9aLBzrjnLcayt4sbB22byR6G8RCjDY5eOZ9WMH5F5Jo98Im0TFse2b3lnnwrH1Z5KXjovrtnlt/izHCL3Ii6mKwL+zVi0QGIAhGSBVgiBB4B+u3r4VRcpveQfUOqndY/cOr1yRD0vFkTFEngwKUuLo3iKh3xVqOHawh49LYK8/AIAyR30XQRJx+uoNoJ+Yjjv82HER1RyDObweRlur9ncMZX/PXRl0s9A5gvtyqrxy+VWk6KG/89zlJqLXL8Y7wd3XQ/dB0npLBM/HxDzFaztbA9142v81fu4cadyiax9fyyWy/+JQwIvJcxiG48F4N57+KlfUGI5kgw51+UK+KJUXOVRMqrL2OsKoez/Nikw7IPqeoeYbx6ItU8od7SPeWcMfF5OgYlSXh9ZPXSESWVaCz0/yqC2U2IZDnldI5k11UQnDn7dm0LT3/urUvYY4bk3dtbx/fddTuMCfKmaF8ImZcTB8zGacpdvSfX3JeXQm5LQOmVRBua5VjIsWEYTqKCKA6hwRFFdxApWwY2Z5LXaksvRoJvGEkzgrZZtAelg39LWJiQBn4WxTWgDIQ5dxAEEGUkWVZOhESahqpFvTERs0pRMjVgQNqddPI5QHgpg4wL6ccylNyzd6JSHXUsXnB7xjscd2URsR3aa3s53J/WpbvzdH2JrNoTGxTt2fvKP6O3vik+gNVAKdxNz+rkW6rdNdRUy3FTtNvsb3b7S3GdzkykyIGqJexSPMjP11YIH3vVb1u+UNqin2TTgjrVoyqefpU0lZNqK3haOYqfhHpkSUS1atXivzU/ygwtRloXWuoDH6uRaIzP4S5kFy7PRq+H4v0A5VVRT/5C3YruZNbtl8oYFgUT9ekQI05CPzhrABPWC6TDj1RiXLJLpnk/s6FxXdfPp0Czd3BLNoWRRgzIYlQf6oOpNbNK31dsiZB6wr2O4ardxi1wQV3GCr531rRuMUbRBH4QKzPDa65lrDYIpOag1yDzUGCb+SOL9bHM2LjWMZ/b97aEsXGYWhiK0pp23aX21XpXrI6UQ/5bbjE7ipcx4yqRPOI+RyipLXGQcGtSWgvrvzQWwJED4l++Z/K0XfjxXRF8lRYmyup2VHRjVSP5bAi6OWhBL2dtNVeYinGkZhsSHiw8Qqrqq7jChGO+hBLNZLcH+KuPSATB7Sk737sjxJRviqW7Fql5/7PxJxyBohlJ3MS9GhU3SsMajDNj3k+MoIkK+f6sSJB8CXWId8iUxakKPXRsQrQSdA/aZOCKoQxCyub/1I61YhWhrk4OQYHxWg85nuqUb4jZYM+JxEqaasQxvkr48TMaFZUhh+vvaC0gxvVdp0H+Cj7txfSusW/p4v9xzkDdWSTX9evypnpyzJ+/UZ5SRmrp5TH77tzym6rVlZRPB5RWfu5RvarU2BzsyT608/Me3Gq6AcNDYLWxgOLkzsHY9QgS68GcUGjUXhOpRyjgp3uTIRY7Gvue5iggYcSJailTO17kj0vfIs0Jvz5PoaqDbQ+GiXRrsCPZq1mkZRU2GYL/fNhTdBPZ8x9dEK0avFpWhnAmRZ0b2anLPTygQtWEIHLWBxBzjQBSy3p7bssOyKq4ltM85CNUmKGpEXW1eoixImE0fF2lc6LIEFDsMONVD53I0wN9KhpvyyLReND81mKBvJX0+jgMhB+2wvFUgZfjuVib7lHbuq6fqwb33Q0mCxu4iJfrohIJjxMS80hvrrkafqlfozKwRSd6MKCiVtncN0U/HV9PRPnrH74bl8h/AxlHvEK9koYpul/X0zvOrcecf9N0gd06Lt1HWebZsOsbz1KQiRwUiBxSNkX++zSlLO4dT9DB1y0QamXemSbofDegBJdYO0a9BycDtVPjyY6/tHDehRYELui0cQkDeXolrpm/vi9YhqXXKdrk6DEJ7uk+igrxWDujPbuZktt2GNopdliHu8j4VpxD6mmH0d9DCvnpd/RUZbacMtt7FtUX00K4+eZGhJLfbq1ZMUsfoSSHxYX2VyYPB1SDn7T9WLKWlgkDX4CxqF2jiqAZd+OYlFhewsfXLIU50+ThoSYm04163WE99yxQSb1pq6y3dUlKWi1e70aBqp7ACRz25h9+sZQ1YYt2cEIEQSdEdAq11I0q9vaSEa+ev8Nr2JT8208p5JS4CDbaJ8BRbCs9ebcx7wzUENor/CryJt56dIMyyoz7sglDB0saa8Q+OSoJxdmzhaRqBV73aR0KW4RwU72rbbsFZeN7r5kHsQ/RPPoAdbgjX7A3YYuY+hHc5b0LUVZWDxnZk9u6XCK/cDb6bjNavPoROaySpkxE/owk6UceHl5gfsJCpDVFnloBOWaqUgx680S3N7DUUCj2S4ZIjmSty3fwnFRYSw59y/wmZLghrVGj5T1Z1epi7EMOLIan7mjXj0acd+cMEv1zGPhpX2V90muKhZauui6JcX7Xpyu5Kmc1JSQ+jASVyf9kfQBNhTCqB5To77ehAjd3jxP0M2vlC/sa8Fa83RWIebkFetMncvU+N8UVvu1H4HkJtElZX20QSFtR8v4CaIh4RrIqgB8CzNoKO2QbY9W59GwUK1WcccMVsPL680AolWj+ISKg8+ro88sYqU64wFAWOXpzi9Wdskh5qXRvr2UcRWmu372HNICnywBN1TEz0A2rVdnbuQCn/TY4bFOoJAyH/NYvyKbBicfi6WW92mBHN1Wjj72Mb3dnOMoymalzvZ6tGNTIZatX5sVG7HlHfnSVMJGXGm5Oz9HRJNNMPg1zE+VkvfUdGrecI5Ty3R1ROPhW49h1I8iDUbld66kDrzmVIfuwLsVL+9MHcZPw3McvmjiIgXF77LHobP5+IP9Hpa8At3+CSWjJJkkeT6beClu2m3f4CN3jje0cd6C8ldN+JPJcSqv7pZEZ09Wu7V87qUcUEe2/ObOYi08oTllVT0MtP4PA/vb+YvN2zZQWdgnov33aLyY91m9Q00Py1n16in6PJMo9gng8cLP0GC6r4bKQqycW/1sThVrYR6Z3YHrgDiOlNHt6+aWy7bw/q4EXhSKNxnu6TeHwViqw/1WST+V+aVO3XMMypgw962cFNalkJdkmIH2Y5ooLAuoCdinz3QXbqpfRvTbWrutfI/S8Mp0J7CbJbYbwIoMQLmIeLs8CczBr6fm+nCFJZhfsiXE0wFbvtD8Zi1Eeet849BdTYkV9GARabO/VmAbWezvgCE9SWy6u2TU1FLIw08cgcU3HKzmLcd/Poa8ZbF6LI7lMYqtjpEN3EdLciWqXbGKD7ZJPETVXhiyPz5nMm7P1m31/+f2kaFYHijvbdt73D3eQX6for94Psj5HlYvUqHJkd12ZoaMf+fGtjAtJQxKMRFWK9EN1Ii4uV/0xNiypuNrNqx+bEg+Dg0HLCTLDLXaRxzKVqcLfOm2WuhkqtQtYvQSgYp2L918FEzkCU5bqjFLxCHesGsuT1Pi2DvDMVRbjrfqDL/0jRj5zO09nxoxxlje3mU90aw6tapJDlnaap9jVLi0nYKZdL4oz7AH0i/AnFMsjremGrvO6sTDp4au0qPQnO0OMaoi4GDxWkFta1dfHbb7zMfrYXHm9Tv7Ur/h7LRVnG8Rxys1o7UC3U4t8cpUiPry9juALju+qpPOWIKKh9UraXPV2Vg8OvmtjIafNt41jdBTsnmkMj0/Sh0G8Am4SosptgHYZ+rBrh6HRsYZJuvc0ivRZ5cs6m5QtXwaDDGfnCbDLrwi97wsxNFaVH4xZnfUjQBmXz0QNJ13OC+Pb7vgsivYNzR8nrtfgVS8Qz0wnZfWxTT9b0y4gfu3Vof/xDKnpuNGv8PYd5Ks8f8QxVpmYWfe+DMOc91JdDDD33/hr7WhxqujAgSnDnr+QeJQpkbzBc0wL0DmyNVHSe8qLLqn68IOS+gM2HXvEfRyj+2AQcqAHehwKWofXXN5PbgkD1JpArMq8rD2eFZWj0HiUTe7FLIuXMTLvFzI5iOWFcDlQ4IoAR3+eB+oTS32ydoQO/xv3b0pYgY3cfkQe8scjbNiR0HH1j7sJlHfWKisw9EpGlcYsCjg/IeziS5OpwQm8oNpgMsqopveSedSqGm0X5Omo2ZQKDvaGZvddnu1uuObwGUHLTu8UgfnXnM0iwf68f/Oe/GK+D3cHUcv/apmfZLJH/5v3hw5gw0r5PTJIXPhvasQXQ0T335++/lCbmXqpLk2NkXfHjvygJ6BrPUDdcv60Z2uorGRO3vVOlCy/ebuQDxU1lA9Ki/kJhN83HCWTEPg6WuGfT5M5ye7+QnJ4vYbqN9hR7fCk3RwCDvH2H50P/ZgSDOQ6t9je43Q2NAYKyPD51YoiHzjfNAdybWucBkYQxqboMGTHo/o9CbZQhhqS+CY2Gxu5PWmpOT/csxGDaPDN5eN7SekREqtuuX1DxfIzC28D7UCBx96zD9HmoW0nMeDE6WLYs68RvCWf1Sc/xKkrX0gzFUqgj8hR2MItbQxvHr+b0/GQ5Hywu/CiflnJdXor9KmSK6qmloRQPQPr79/7gCKiJWVDSkkpGiSGzzU9Q7ZVZUmI4cuCy3rqA2RtBcPO/J2SdBkrigLR4sdLKdtbUzrfn9iyVUguw75yL8Y5YEJwnuYJqVonMVdcDhZ+pJx2HoL/dpDjOMQ1vEExPazEiXsdHvevPyl0cyanwgtHDvXBx7n6OBnUTe24JfXwl638cZwkLO/O974rEVyzoNsx+PL/9IOA3fLVqR/XzuGov8n5Yg7YeJ2e2cuSSINhZS6KxahiphUW5U2IvBVF1oHCCX8HobSx0XSjjIBqvMdS5kNWBNmB7rmtL+JS3GPNHym/+1KmskVpxWzh9U9EbSeVqvcofpNDrxVWpZzP83uajCQbxGfc69j3Q+81AVKeumo1NlVYjZabc9I+tVJlUuEvvwJ9r2OieBen7fuZ9pn0hs562mRHIuES2biJpJr4x8q8TicqErTF/1ImJ63rH0PtMy/TShauyEmcVkMjjroK/zQBtwcQW8kEjRFKoHxuJmDPKJzJRp14N9/BeWL9pjz0fzhrQ9sZn/rTisMMB5HW72NZWe+GmiHSZsEgNbMTkD5Tw1aZxQGu11pYK+ksfdIh+0/6rY9Kitc5/3EwTYdgMkDp2Knd1jajHTggOOIEjz0hZOMr3oHy68pAFKskOIjgCZ5lf0EtmumDhce6NEEgPfVRk7CFT3pLH4iF4nLyJxVJs26lsd8reW/TZn8ls9iuDRPD/cGjcDjOd/vrIbnqVaFk+XUMlor6YY2mUQDVGkrmSP/tu/R5TMTVocC9qNIY9posZqKIygxvTqZtiL0QGWSSYdZWfsmVV4ZuZPQnAOwF34MJCuFc5DdIsvc1afq0Fw3TRStwm22Cjh8oL1rk9bp6ZLjXDW9gbxh0se5iCGI2ydRBhGQ3OkAmFVH48V2WsEwhKCqjrlyf+SH9tdGoVeuxHUwawsogikeUdQqLOXFnJpz2xBwMfOQtxDEy+J7IfDfFSz60OGX9URayjk7xg04940lRHpwl5aUqOv7u5f+poYDB7RhNaJdNQbxiKbTbf+3X68LwTqjK48y8u0esp74GtPuiNjtWgjQaz5OIzboRHAna9qvu4b8wgX3VbnGRrg8vYloxWvOyy53o8nnda98DJXsi7PEmEdxH+h4WGeHGpNuRCYAl8RUHwB97ZuKbTXHKZIJUMeQQTySA/M2t2Oofs+LN40XU9rjjPavmtM83uYPpvNBpHKUPrrOT+zuiHlicJY8DlPO4uqd57U+4YQ9IM6/x2Rkbo7xJn1krZ3kYZFx9c0unZJJQm92ibj+ckJDQN6j69JygTCpv+hyIFIseK10SAe1/sy5QFv+RWLOSWn8sWQ964iy4qj9btj0A79BnnwFM/BmOdVo0j+g6gNz4KFe/yVALg+0yQN5jeHQJ64NLUu5U6gv33EN3L6N4eB6Au3Wc7tBs2s4S15T1zru0UKMytltNzWzUyTbJhJOOtV0YeuEe4/MXBVemAqxZWzrXVsTOQmezRKzn6QX51D66sZHgOtsUZ2CFA2fG/8NgadAWJe2OBuD2xNlzfzx8bDPhkxs4hIhW1fdpdugli2c5NEEPh7udBz/4tOJ9Agsh6zCUqd0xWNSGy9st82P5/CS9XRsno7/NQsjmu9U0xSEZW7O2lG7y9jWaP3UYCK2mBYF0q5YjtIAaGtAN3RMRlS+250Byeq4GLjalU+7SMJwUA8wFVa7ZR6ynZZmZVCcpRihPScJo5Lh7DKay7Oxc3mju2PemJwGn7V3Tx0eH9FctK0HAAqxd7w3+pArYyt83Kf3+oD8KYi2TP1LiWfxzqvuqt1Pq1tojfVNbOwwDPLjQI8SzQbOcbMwvD/gNYRO2vURWFPNjMbaXlGJuaRkLxCjb1fYBID8t5e8iOUKYmXt906C3lccjEJDoIEJzbM9kvdDCPTruyYyJB0bbC+rO365dwQWfX/rBB7aABT++gSPtg9N7ACWegSkt8be2cgbnUm4zuPtb9gY3CshzIbN1ZtwDIYLfDLQJ4GTr3hWh9/bSyiB7lTE+gyOHpLjN5RL50KYBYfCNDPCnXAVcbON88iNajPEDrRRWsIy0jiW0Yl1Erqi6u0DUtJVqGvz9OjT0bHdTgHXznYY75QFvjkiTdL5KDZGGnsrUdXtq+ljAMBUfe8/TSSlozv4oinV0WMgILTSrn8b+pxsucH1HikO0XO9x9tfVOHmqDQJKtzlgkwO1wXXoFKvlgLwhhEaafWxCLBPoKUEDqrRhqgknv+xapYNSOVBw3vogQezjmz5Hv0re2rw0d2fR75RaAAr6gXnHB0cDkLIBjs1ejtgX7tveEnpoimsI9220GDMYF6o/sst1qTj3Nw2EPOCJYp6azmD1laQNxVVkScZQkCddFEBXkvRwu1LkeaCUSheIIOyZ5cCDzqdY4Mc11Kz6bofdXCnK/vcgi6gLH1aO+pKPwtvUPX4kcPLP89p8q+IaPX9lxjJaM9/bDXGR5Zug5Yz4f4ZoCK2OkH/IyeOObVvy3/LXrTnaCUSk164hEJ8eVmhlNCm3+p6C3o7hOsIAadM3NZGqtXN6d7q+pkOxnW7zBVab4ocJe+uSeaaev03xNwYgmWmhZSViBZU+jSOH526d2urZq9uCYbFZ59//JPHdSSkqROdC63PAwDJhL9Yqqd+nMH2f+Y4rq4fUQ3y7h7OJwm5OuJx5y6VAAuRwCT91SX8b32Du97WtaKm18NTSf7Hc3anyhQ2x9oY439Vu0QhV9JH4UTaqfv9RK8BF63xODv0PfvIqx8eosTbbZF8EkwuwqWk91LqSH7T/jvv3KLLikQhJrY6CvEsjsQ7zdrUEWHKGcPYG9uj/zQ1IcSB+uzW+JoO4KMuI+a/uq0kZrHqRgBVuSvBg9//oTqP84tvnI45CyhtuVtLeZ5ZjdNSLS/ypdLsryHoNfscEtQqw0UhgfV3/cCSnt+TYV7iSV57qdiPu4tP+PM/2/499vg9hdpx3Bv5+xzeM12VmMgttlamKbM+Mxc7lbJxw/Ys5m+E8fOmm9DajDHxMY6QdM6s/9rXpTUXxDLrfTFd3ea7jbwVZivEW6zi8SDzE4xcR67Z9ht1A/vMwOV1F2829J4SG/xekD83tLqzm8+MDjkpYrtZpfCss/bqiwWDtaqqydPI841NeGm8uufenb93mMX+3QjUNONCPzPFsjw3ah7OjO/Pb8Q+yFfsDF6De5rjlsHZsHRpjqFr+U8A0Wanx0wY2GDePQk5/e3cGXuJHfzecX267wb37pE9vgtmeCmmzoZ7FPj8rhVlhvpSOPfyyOXctYgqm1OdgflM+g+g/NwZd5/lvnN8Ex4mEmyNvoauNaZyvy3tCvW+e6+yxu6w8mUFG7QrPPXoESfZ4XG2udWvLbZcyemJ2/CuV1m/i6bS69dstM+cxfW/7dJ92K+D8qBfxy97ssOVTOsiDE+I8tI+pOidB70SKw1cTTgxI+uaF73pp08o0yv1pNs8FO78PPtkcF6RTrEy7cxHBWfR69NJtITxUvK1R9OKWYGSP5nsNjeGEe++Dun2VnGRe2pBs4/kDiMVIo9PPOswzRPO5TEQSDhSjn6qqGCkH6GyjU1Ly4J5cRYjpTgiW9ZNtKdxVaKYO6zqQxCE3F89IiRpMw27XIQg8s/DKpusAaQPaDFEB9tDcgGENWlBwLIhP6RjX+cngAiCT3ISMgE8C8JQReQpjHeIWdO/Dxr/1Qf6ax1FTCZqWRR5HChncY6UGeKch5PhzrKa0T4Ihb3V9JEAbvXqGpxhQ5dsd4o614mO/BqAQm8lrMyT+JQedoBwUnpUhmgKVK1yUb4sSBIxxThwLWG4ZVj3ef9oO3YIVV7iwsPTO15I6BSsAhb4Iwbaq6cvB6H4TpLsgk5D5sQOeKavymBiKyV5EyNp72wXuykKmio5iOiPx+sp0NB8SZIX4/qPOmYWqML+ymBvJnM9K3Lm6XxA9dxMzBNj0SUyMuGZrLjMm9KKLJR3GwtQKOgot/p1wRG75SlKeVHi33asTGPNctI3eUGtPjVAT8tATxVQd/Vl8o91A32p5GaSXhbTiLO8Ea8auZlGGMl1HJEjI4sQ4acyTPDPs0N3On2O/9S3NhgWEZCUX031zRPI80e8a+TmGmEk13tGlkwtRqyg/5pMwerij21DHd/lXje+QOEsCXQnLsrS0JON4T7eMsRRdFlYXUuTQM7rtcvWJp6q2UiuKk/El2sB2LNMo9ang+rmycW740TDGZAJYejL/Wn+065cWdYIohGO7Ie+q5Ies/ECRBCsnQOgqcPx3ZdC+oFHkABoTgCWJCI/uSxR5Ks5iyNVA0jkAfgNZ3j9WZJpah5HnIlwmiy2+NpIFQiqsH/YLxH0OwB0voHOB2Tb8prGeFawDMzvpIVI18WvV28yWMEysP2OdSKtF23xpnhPvCvuupbj/T2LjkCyTTKEtfGAdUJdHKCwBIb8UXD58Vdr+Uzj5u5g9endU9b2hcQZI+J9VcNtC/ZGIAcd7FXl8hljXLXmwQ6ewO3DHTnIv7eJxJzzfRW5nbXmOc+IBsRCP4zjv3Qav9LoQTIIGUoCDoqqc9zF+oL53W6BxcsdbN14YWitDMPO2VqQ4/1iC/cKauNlw2kXzlWjjSgKd8GNPaLlrqeRakkj0ZXGbh7Z4i6wlQEKdQOgqQOerPPhl1CVVuPaQ4WqEpm7JI8j6yR7QZdpmhDz1mHO8pA3ZqYI1gpzhkc4mkWeFyXc/pOTrFV6QssqSodB+puQAdr+RGY8Ofly7oDVslsToLal7lX1JHCKJdp55wDutjnp+RGSazeA3MSOaXi6BZoGZY12R8P61XRtMfW6OLWHNK/JEhJYNmWbrs4E86Roz5ZN0MVlPFx3MDsetLSsKKhrbGLBRyNHbVhlH5HKFI+BkaM781x+PvtZ4uaj3j+88BWnw9FheZ7F2p0d9hc5Kp6RQBQDgcPOCyV/P79ZVxDRinGvLN6YEsTx/kvMuovNIVWv3wfenwaGG9kjpdgJ8xVeVSZ09xgP1+4/eSum2Kvt0htPwB5BhcUdbEDZke60gTfE8SY45Aq1DK6qmYZ5IQ2z9dgJ8QWpwqh2lYIWz6kg3d1u3wTV/vgxM9NbG7stvo2xFIfHvxH/bBFJ2IJDW503v9bfQCJ+UWOfgxyu6bKEB+aFPCA17TlEwa1oX7SKl6IyjQOqVGwQPbnEAmELRlFF4yiP8iii2Wib59TWeHCsOxmfH2tP7pn/yNGybdwcVF/z8gG5hbsDGo0AWhAaKgbMjEz++BMbPIwYDURiXa9845epZTGg76jznlJcZqQZrGmj80Trqulvs2+RN5tBRiEAwmmBrGXY0e/J7jEQ91wzQgpgL53+QWjv/ZqxxICBtWMjw8ohpn9Qqm9wm59RMOCT7WvhZBXjoJLu1X+94KoNhlkbbp8E43SqNXIeyOob8jhGIiZQ5UUtb9ArKz6n8IE8nQI600afNx4oAmRlF3jlaWvboFTir+2i7vkYlkZFTWUvQmnf7lCGKtvMX2R65WE9nPeS5MqgRjNEFbX4/liI/MCa3pA5fWXYqRtdfbl7GrIS9m6l3WmPiZdmHQsvt9t1bLS3CNClAvruDHRZgM4HlHf71Q9mg5YRae+56q7EIC8EevFHJGcQlU7qbsqOpWzNULgr69U16HlCihpSd4E2NvRAr44RyRlJqKO6e3XMWrbWaNys9elBLsUlNklnsu5s9euz7sptwAEB22LXbr3iQT2VBjfZjHfDbjOC2H0c8nggkUnpTi4sneOHoIxf+gVzKfZI2c3LVWdV6sO0K+I9kHFgImqcNAVtXbK+5n4ylcdRHgWD/BMb/WnwPp4IMnNjqMEQbvJEnbJ41v46qcDgT5wA1uYE39ahv+kNIvo7xXPclhHPR3agEmwdUatoUEwDx4NAXwW/Dc5cXmtavxS9Gi8d0IkGOh9QfceLXnt7epaFofPcbhrPUlpf5V018y+k7eSXAIBnBPV9Q8aTpLRWii8TnzPeE8/GJX5S+jYm28cbA9MsHrT7YiFjQMS7xDdLr3XQzGTAg3tR8m9Cn/EtziWDFQ2Ge41R36PEMw7FPGJpttesfycWez6wqbtJ0V52+b0/k4nHa4HjJiMlM+X0wwB7OzU7yXT7wm3xRxjEuLYVwWye3bY16Mjx8lYMNz7Anye4iwix8f04tzj0U9gSUFBF3A1wRYbpJhnPdP14aj3z3J7Kz32vc6EfNYBU6XGo1LLL0aytt4wiucXm3XPl5Hn1y5e5no/UiV1COnwpZ0MzYxpUsukVN+KBRwUAqjQQ7KSU6f0ASbATb1N+4y7NmK20rgS7NcUqM3KgItBNeQeopcUAKD1I6XjqnaDgy4CIN/2OUAAPclz5naF543uiu4/I+3RcOnEQ8aKnxHckt2QQOTlhpx8p9908M0iuJucGS6DLBpLvHqklkvvcE9Ylz9g/EwNnFSjXhtMKt56iP0iXdkjrdpON0fWidDBJqHAXuGRErwpqx53OnF57fTHFuXI8HlCWXczq/atGv2cR+OaBZwn7yduEbC9W96cmuNoQ+/IftFOWwVjX95m+VS4OYnVfuhX92icWB4xRL3Nhopq8ubnt42af58Yd8Ize4mpSsE/DfZPyjuf9+ix6fq/2ZfnX9eEb0nc2sTd76OTh1BYcB/AiCp45L56HRfT86nqNcF0Bh6nJpvANEt/BVPJLoSljPQDfFyM65xDd/P6bjcqwKx7GnldquU+Ot5Atw9a42/vy+lujYEVi+QKX/8guGxzMcPH7I5RSukGT5NekoOdagYkx8NuTLlBWYyQ57qAidz26+P0RSoP0pK0aI4z77BWExpcfzAyhSUt+X6GUHkVtNCLUx6c93dz9lP/z4/LnM/BTaPv+fbxCvYpGIgq/RcdQ6jQ2MY10NPrV5u1sVS1tx8E/FznEWn9EiAknUK7zUnUMZ9K5utLHArVGa+zJvxD0qDHd+fBrLQDo4J0r8sH4Oc1Q//iSbxOfnCe0+jTaxdHBNPTJx9YxXWRtjtf7uS+9D3Ff96Qpt4GyvWHTgOezxJK7mm+jHZO7OyhAh6nEoa8HPRkMv0ofDi6RU7iz8DIXxyJBpxTqHFzgG+UAiJWRs3FZCALTDwpyrfCzMXLqUOoBGaNZkF50FILeOhK0JZbBagB5D4+ImmHDjwF+u1l5usePGSjv99fXjphGd81AEYdapAD96SToDbbFHe8f30qM8d6Vru5pMdVJJvErRLmu9Gn58S49qeooRBMYZeIn9u4/qvaBguLV7nifEG5zeg7cIwe1Vi/jQKE+pUVfNsUTXdY3CDhrNwpyXJFu5FwkdEG9XAQhC2TPtvGxGWM20pq6suzM9sF1nfOmbbrJJ70XpBS1/vyg+aup7LwhH1PEFq+UYHXWimmVyAiXa6MAoTTIhn6EENGZfODZiQN2ZHA7iYzMOTDpLJl6opV+YDfs82vSSE+kTa9IV33rh6TYy075czlbzvoyx117S5CnE98V4HcgG0P9xAQh+ssJAFFMk08XPgAOC93IH2nwwMeUzfD940AKYtIDY+SlBrT6ZJ6Q9BaO4+eTuP7wNfpJe0yV37HXLdVeiWDDf59f6Oh6bIVk736u4gV13xHF+JKhFuNCRYk5Kw8Fx6/AB4ksmWM0ldOGFGHB42F2BHgcOtQvgTGprFkWwwGJm0uA3WrNtWsxORmvz4piVcSLw+E4YNPsHU1IVL8Y6ElYIh/qSG8LDrlkcPAYQyk0h0zpzcYpy40X0wEAuWIIL70hCQWNOT1iLpjiaCy9SRlhfcqTqYxpNmNzLa2DgBw2rBxueMaoftLG6Uw+fds5kC21ehlG7vqzVPXaA5GlYOnytCG0JN0ptU63caGATgJ0eQa6FEBPCKh8tJY+yQlNnhw86JIQwyXrpwXrk0ZmLf1JuxCgtKQyuJkecNJ6wN8uE8RqgdH0n2ISKmB402LVg7Dp60SS2OS2MfiI7OIf/bMU3a+OxBhFO8/D1msSpBaD4ToRQlL6JEU+CZ4+aUlZrk9eYFUMmJn1SfT0yQy3RJfUAHfSjapJ+3g4Az5W1PFslnIgTSk5x1tlG8Vu8SnJf5T3Xnwb2XvT8aS9vzzCo+2Pv2XHo3OFJylflOAf+LzRyRTF3s8uog+n++9L8KrJN79ruSvvyncyMjwLlD21PTAh2s3unfowTp9pPExo7wjBj7yXaT9N0TiSlp6YKabg8g19ABRXF8Bj0tIM1Bl78qRZMr7cRBJJGEdGviO4U0xsOiinguCAOrcOu+wW1AZrwDcMH3gXw5C6Gs1a8HzoE86G9L8IFNECuSiMFqQ4XLH7wQiVqcLvUvXZ1YKBinzjyc/YXVNyx5q6HI4eooIXIJO3Dz4vhKcqwpfw0za0ynKYuPEERNhIqzLdvUxaGUtjst7blCkIzA78ylBDb2zGX6ev66P1wE76PdnqCsAvdfOjk2i3+MDr25D4xxXSN24YiONQiWfYcQOjggxY6U3WbT451rhr+FSY5cRaC3sSMToJMGFkDHNxLHfX5KlkTm2aPMaMsfBA1DV0qlSm75HuSF4IG/mlKm8ejj08sSSjZSRgTbQPEgaVjm88N98BJ3xz5uu8r4l7Gch3jcJ+YIFAddi3aE4L9bsUI1lPFm3VtXiCgUJ+k6gNDmolqfqCeXuB+Tr/A6u3BkW7rw/Rr1/QLPIhn93kRIEopiw4IF8345mjp7wnG5Opy+/3di1YRcDFzAnQ7E4Ax7QJUJsqASKCRDnAvL4mhET1hgeJkjfkyDMLAHIlAEYKtOHv9eYrcKA3pqdngJKtH6GvN3SSkszsRqAusLlFrVgNLh7Q6YAu2UCXB+gUQJITCPQWwEnrzQ4qdbe4vdBcACT0wPDWwf+m3swJ0rMBUKmDvdBcACT04E2ct1XiU8Zb4rPF54gn47rnLdQ9EOplmeVBXqpJckCnezJDfG+5WtIpWqIyN+xZScVnPuhtt8CDvPSTBAEE50Co6naWlsT8nEQMNGdJ6Ms9TVkPx+SAJaBZP0NCb/IUIRHssZck9SZfx5nitGcx90RB3IB+LsBoKK1gvosVlrJAdaY0aFTTKDJNGtjFaSDladFB/foyzNDWmzEmBABqxWP+9QZlNETl6lHnZKs/V0C/6yBFafKksSHbvxRLMhB0veeaXpegsxqs3QJmSC2TfsKD3r78SRAf4m2f8qcsWMxiiAkaZMwP0lq20qdR6NUIEhOpkvNgdPFhXpDJxK4/6UIDYhIV1te2WJRpoMhb2KwHxBHga/pvyepQGDElPwUsfgO7K+KovXSAA0GEF48/yuZ4/McUMheCkF8+25SxbrP9D3844hs7mLN5/jnWAALprQMWsW2K5uJd1c1ZWL1OnxrQjTBQkgNvIgeilb4jdEMNDX8Ql+Utte6WG/m1YN5bZNjcpIExmyU/oAt3GozToUcfCDY2OM5B4azjGDSc/aT3VnM2HnCvNWubzQi7K+KeYZRdSgwVI5exUN3Wjbb23db2HznweLTjFhaDaahyPozsCxnH0KYz79hgB5EDVng1lewDyGd+6jr3yZHZTiWxQI3ts5imdZEEhgq+UhOagjg/hAx7QsaIOVeHsijoOE7KQluxtbJkUZkHqRbh1Jp8MUq66aQbgBt6r4TxYQxpVh5Sahr+nhKRj+c12jLGM+/GqqUWtstL6SGb1KtO3Vs6S8dmbUeazblXIpYLxHo/wg3GYKh9zaMyJmOQml5j2EJRm88JF51z6tvJjF1Rc8kQ9DFQT48d4fPH8A4HQEkcif2yn6ZGTV5fbuQD0jrJSt7rztKF5iGBb3U03mbb5jCCTZbgegD7BfZ8qBtCpVSbcx3wSwOYu2Nv4ZwvV+Dj65R/kpPOlHBprh/w3cn2ydFxyNNrsILbumWCmvXsvLgqPuAieiW2SAYH91O5RodrQw8GS+4oGPjTXiPDhu7Ud0bKyOw1y7YGSOrMXjY1sBsDL+pB2J2mjLoRh6rPZ3sOS4dbLbbNZCYuZby3ZbK8PNHm10oMY4fkQXaoGOItFWN62ctnjo9DxLK5toJO4IONTxnOrEty/NSnieCwcs09d1WGGLM+rxBUT9tMKoVh1l16NmHxNqWmZK6vX28KZlhsE/5AJAcNK8SZdK1mLVnBEaNhCr1WKUBWskG+rW8pAUIECwgND+5Ud8AbaX0ZXZRASQ9PB+l0w3g57zqYV/cM9CeZbr40lrxNvPqMX2csiuMl86IAJpOl4lxM8dcKpgJVTSeOnMJdtwFT5K9HaThkOkZC/3RkHvcXZBz7o4z7DdKvlobzcbpYvhkXc6jXl4h0R8hamJOdBpWmXIdZxPZ8KvH8EtTRoq7+9wAWzvD9O6T0/HJtfOTDDzosugN+efKSZXXvXXO+qfeqr0fJ9/7+i9hyOPw/fw7Lilet79p0RO2xeqZu0dmmlS5xC+pdAuHeQ0E8TGJOPI3k7aeNmGlVFBGTeIZr/ZuQ2eTk6YjWJhKBkAzau/6UmI8dNQ69kBkGMN2BGNW313g0ie2+Slo94dAHVqCqf4j9RHwfCi6D8apohK/M2xMLjhFFTVKOKCO+I3YelfPFwz04zvA7hVx2/V0ZsONYHtuz7CWeDs3uKVWJtjGqVU1XKU5SCrkDnsQmw8IoRh4cO3G7TyXCmWhuv97ECnFsBm4hahWasQZRTjVRZSMikSJnmcEI0ySnm9iPKG1L2YIgugW8OPaRKwWGvtXnaU33p6oYlUeI0fxYjZe1Rhnb6JqfKanI7nFt0YkNfxkmD3SmxjAHrwDjLF1+qU+Pl6/PdksGCrBnrliexMFMWuMVizKQmDNbLNzbnSOPqZhWKBJfNFNMtiXeopPyeDniM/0Y2gguU0vEGbD+y5ZNiwRNUymdfE7cyqNUNGIsvVp4GnxGM6mdlzmjIVtOu1W8lheG5txeeXLNsdafczdeokAZvc8TixYATTkBHKjuma79CmUiSJQ7WVz6UhLPRzK/uiiIPuDqC4PISFi0aGbfdObE8878qGg3VQ8lgCaOeirg0xRofVe4V/+YQEHnIfbVxv+eZMKSE+Pb2OfDLH490GL/PbKwsdsutF9eIo5uD4Vi64e/6phkk62YncfYdnnZ+H0+/jK5INz5Ov7LzmCkEXemTyWutb4IG7teD1N+5j6rSW+EvibeBkxYL/VrA2e++vYYMRCYoF+owv19588BbCOd1S+cUM/WP+8Rta3veh6VfH0Kx00x7MEZ+FhI/8TRnv9gE8fZEHNyTkbcx3IPjliIDhfjNGwN+oLtB6zdyLPUud+lCxsgT8TbkWqb1DjPPV65bAs+323jc8qPavGJ3ux03h75tvH286f6l2ZVTZ9PK3z//nR1o4i9xBWrS2cOM938y4C2k2mjaqQo9+E6gjiZX7J6S4Lwy8d164QeEvGigQl3Oh1Hvg9DeKSMBdbLBu0RMew7C/zforc5zKjTkI56Rj4/Xh6eMYj/j/neiKq5Grqfe5V0Pvsq6dp/vlSeGBA9ocl1nTmFAG4ywGZmCaXQMUo/946dh5pGoDMSjjef/4hB4Mom9wxqaDpqQb1JyXWeW+niVbrfrG/HxOZq4iOmAyw5gD66PwfgVZFq5tfayTEDZIpHe4qc+rwb27NdKheeZMkLIeBK43Vgz5bgdHhpH7wtYNZ5fjbgCRr7+3HXb8E43YpotUjUsdUPn9nQIILL6pGflcpM9KXaYZC2aQ+c3Yp2vHpdqXFRz23Lt41KP3A6ukbeSOOrCOW0v7P+2IzfVHiQU26r5wjuygW+PlbrMjBNfDM6DzRjMdBsXJzweElFiap0VERQiKC1woFjlI6rfdNBr7a+RporcUnzgWJJsHVM/JNevd0mnK5oGys6wZ+OZIXIvNXjh8pzPz/LvJZ7j9eo+NRaC3dmmfaLwNF6P9lz7w/FuW2n6dDQ6zhibpG+9ESlp5AY7RQQ6WtHcbAXWu64HHBoaC01TnaD/Xo3ln4PjZPwdobLtVnp/YyMwn8ywLWZxQfr4gBlJGl203UZupTjc3Ne1+p9erEFnHuFYmoyeLob99tbIe+9s4dN+m9VROkKOjOvD2Leo0dFkmZOLTLFsvkll3PnU0x7UwzxbpJoru5sqRwZ8K+4DPbKZMS8uD+ZBe1UdgqpMvn7jiSZf/zYblbj2zxS4VregnBtW3Ztp/VzpjZxU1tMzhDNh5YZnM9KzVAsbRYuC8T9niyGThPeYeeJ73exC8zshaXzBRa+8VJmL9lhDoapyXZQJAaWV0KahgicM1kO3lWEMusa63Z/g0o2JNLKiXYSRMy17TcgZogDLvJyoM5URm0fP4bJ5HHWgOvcuSYCbiZ7GIKhO0JUJavlu0SY5amjuk3IKdJsGb7godctG4Lydrm+ZO4inlopdKPrdsD49sPK/Ozkp3J0Wx0OPt9TADvv8+e8xucgim4Oxb+n6EqZjkfkoc8eoTmPaVlxvzHaKxY0wOojxCQNT3fTgXrv0oNj4dYt0WJMk9pGWz3znEpsuSL1CTyQTsPGq6G71QGwS5feyHUh73R0NLZ1RLcuX0M5J6PkHeVtfjAOqdAea4vW3ZZLlddtCq+VXlRk+oaKKVScPfcd46UO/TBQXvUEVVXBZy5zgULE1XGa9MUbl9hk+OU9e8uf9vgCmNB9jmWZjcpBknw6BHzQozisRgRy2nd3rs1tqxuA08tkaw/KtOP6PV3GmVDfgPSrkceaE+D3YJA2YTfZRg+4gfOKG7zYF6hH7I6IE+dOsb99QXwoeIjDqH65hd5hJgDn3v44UY/62DxhFnzHFOqUa8PgX+PHV3Z2rb3X1RW3vWdhTy/GfV5EGqycHTTDNzHItSKNIBdtdLVDnahVkqpOFTQ/GgQc55pynzKCKhhOBfAtuj57IuU+BR9vfEVQIlWdnKBCVekwAnMI2PaBgEXgUYpJ5ag23Aau69MdEegfdGNgJOqcMJZ3HFUMMAqwppOPxZiOG0x1mP1wlrfm/Ao9o0swR6iADqEwVY+FoDMVJAKJk0p/1EJFYJYpAt2Jqk5UOkbGLqAilqoBRLBEU7uEBJF1FpVOISNUSnUqIqnexgEAiiUgioCcKQQirt5lJA3fo/NoyTriVYjQ545PVjzITbhg5U9RSA0dIOTIq5zG2xVynEZvG2yX1tjZN14sUszLP9vCPdtvnmawXmCIqoEjvnASjQZ8ZkNpi/hqDID3TTf93qVq7zhiQx3Z6tzCslh5s73BHcgjZF7L8iOPikgvfFREkER6tFB7wZwx8HSrZbB7w/b815wVD3wdi/gaRXyK/pwgvxi1ikApccE1ws8JG+Jlf8/jAAaUkqzHAusddR2R6TM4ruuFxRjvoWiyTVolUtxEX23IQ8ATt8niW7wx33y2XyraTasxEDXHYLJBjd9OYR1rzdhKk6OBMPYNt9yOMKcupIU0WsX7DzP58ZuxVSVtLHpDsWRNEFmrkDb+wIjKlUNncFXOqlGYzUHFIUFx087NeuE0/Ss50TK6JRpK6ZSvEKmLuh8kct1z2mJxc/nNr4Fx2Ro05X4aSv2h71athtB1CgknmVs/ydwv8tWf5aUqPFvNb5rhDdAMa62Gn2G91VkNGZOTbYby8PfpmvLhz3RICyJjpS65Y7jO7JSxoJ9wS9qGa0O6BtK63ecvu5NAslScI1na3yIUPC5rlnXqzTa1mktltaplms0lAYaCwoVpAcSIuPVBppULNMQezP7f7v8Y9OF1fa6c0Yp8VtaAS6sD5jQ7R5f2XRzPyHxuDEfuMEdesBAGBVPOXNAvFnLMAaUwK+ditNerVGBFwQFjO8hZhBp2sFa/ejq9vPB1mxrXEz8x2099ivenmdTAQqSWIkCvpgrwMGXI4a4qqs2o5dXPWWHsNRS+QOS4Dd6rIBajBwBCF96m3n5bg0lSCAKoX9reD51782X0uumBrMg9uzbIp5fPI+1afsj8N3SF4k1qzOu+A7JyzLc0UGJuvzlRKg9A5YcnSeclYUfE9IvxKImLN5DqADheU8uiR1Z1QpwpnVfctP/UnswDwzBHDe94RM+gvvE2grBoYRCtj3VFr7QfxnrosxWslprDKfng2qaFK6TTo5T/8k9yR9t+NymByW94xNlWiXMh+/AOevhQnNrJUHlmER1O2qBhj6Wpg6H9kMcVEk7PEg7HiEiRp1+x/sQe+9j3IjJpjmonLwr/weaPN+HfX84jwV3aTnDGnP7XgAD0HdEwfaIo9pRRTRgsSWs7U0z3ybsyBq8nWb3FL2cW4L5i0OvVicJ8NjQ2zCm5Hq4Kvp6+Ib4Nzy+IalSyct+AYfQpEiNEkl02quVFDRosS7or6EI4WA2Giheh0ntV47XUYzOJzuoGWNXC+lMQsfnK9tCwAZfurawV/CjMjutxM0JGmYsHj3j0sdNkfDwYSVHEpc8dyKM1XO6GuwggJK4JgAeJDcCDMBsnpgHkTSX6WCFRpJUtJ9wNHLU079olmXrFugyrg6QHw2DgZWfrgymVYzhbZJ/K+IDhDU7LAGGgFLTWNPPvsDWUnAJ/de7rHWjwULq0P92R+dODm6Kf/r8npwAsiHZnjLH7PjRnvbTS3eh5tK3nagcysOgFZ9/jarpsyr98pSGsfF8TjmiarJPNtFQEs86BcJ/qB8mAQtqfXe7dnzaDf5l7kMxFM3N1/3NjmK0hP88FIhFWxXYElxlM82oUkbgXLoPDPHH31sXR8Jl3u48x90iDYY+Hj9qJMWLIsxogztZgHkIezKMT2kSqEZks0D2Lj4MJSdPP/PqL8Y+2ky0ks2eDo0jdQ7yxD9mj2KvjhUH8J2RQsnlbFM8Qv8EuiYx80Q+vszGwKC7xMUWB8Tw4ZztjOvpi3rNJDqfe+ShJX8a4tuVUAn89tiGGSTzv5rWTPW9VGPibJD2B+rdMKA+pMXqWKJ4vuOLwC39MsESkaXSY1AYZYaR1Ktl+8wMy6tCSkiCE4QyFYZLM04wyYaLTeozgsq4K8nbGs4ACOT+6g77GmMTooM/gXQUxLtUdZNv1ndrp6Wjs0NCKi+HDGax/I2f1D7dXwIllCaSaoYUPF8otqxhD6HRZd5wAOrm5iqOxs4kiOIkTxVLx+3usah12RnNZrwZduiAg6OWGO7gKw50IK+Wcv1ghfXvaU6Fs9zoEQiA8eqh4HaIkmzql1RL4JMlw9Zip/U3evoQ83loHMA+QD/cieMC58jHVReWI9utaFgW80YWfiM5VDm5TWpDAWGVJw/AKDhm+7872j9RwaZKGoT01rEsUDW/pTHKyz/L4M9Jw2qgCfqyIFDlfXzo8tSkdZY981hKuXrm6S8y3wEpK5WhoTAgp97GLUMbpZ+W4qGaQ1BO8kn3rFA8oQgPaxMINp5IDcaCXPdSTeDHgk5RSoxcTFonpAaqoFV0C7iSefUFnW2t4pXtmD0ONEh3OhxinXCZcitKPPSQfmQUj4pvT9HSltFarxzpkcDPtfS0U7rMRh/2AouvPbXU8BqP2KfGn8WWTFuSKKtvWn9It7GAwzi5ODb5WBvk8mUFJdewuD5RM1eSwAhj30CrRzXeaNf8xK79x3A0Uyrjrdqneb8KIvSIUYURRiC7ZUs/cuo7VRUKUp7xPvT+OkVCYoOuiPaSCp1xhH6SKR5Cpk2motQOz5bLsNVFUBxRa2Aj23KdPRzVaaKjvdRc9tOGLzevLPJ3XGte40p6v3A6snysbnqluozjPjNk4u93Cm+xTNu5SJAxCSU8KjfVU+SEVMOoum83XZdXe+Rjnni99V1p7rx51/J3B9mf+u2PMcoMjxqiVztWEQCV9gj+jeiYyi5dhW+HMggE6zZkOVhRREX5mjkQaPbNYrZ+22ax7dPP0jgZaUB6B4AcXF7xAfIUiEKikRYqH1twZgJjRmZ5CpccoUWVoSK4BrGPoy2DkpwBOzsiWmaxXusUE/dsuhfYUeduqg+95BtouGDAIHCzSz2BfLMthLo7Oysee6bl4+1el2fMUvvA7m3JlAklDeJpefBcFx9aoOoevzUZYTHe0bDzZYNxWZw9S9Y6JJYSCtiRHa49ICDDU8ZRGhbdIoUyGLEnY3KCWTzyRVBqaOzqZAR6lrb1tvFu3zS3BQehnom1weV+mJ3WGAos+SM4hHoOlhxbvBDHPql4MP2UY3/H3PJXfcWK38s1vpI17DlwkdQq3Ts23Fl0lmSWxF05tMa0aMEFGUgZzmjRbnp6qwlueu5PPHGhT1SV91fD28lsGEl4ZejYjIjSuzyfKxcI2yqvzMLYvCIgPcVUE20OS14zsJv07TQHl5MZggfUSxvUsHfcIVbNVZVUzblsl/1UVJRccrgG4UBxxZ4XwrDNh732YIS+emgTNto19eEYo4mWhs2humQtu5a8HD6MwNIZ8UmMURiiS81wn+ACaVxjwg2SIyEvk3A+Ey9bpkgcyvZtyf3MZwMMAb7W3mQXEAhOH0y+AHGdpGjGXWrWkynCcxk/yNIo2lTI5ZLBFjLmdPINpMJ0o2KyvEr8TKaNaKgVKUzCmSYWk6N70vhmMmqcj6/VQ1jFh5YkZJt4qhY5rZCUI05kH0QWHBpb8DlfElT9Hvt9p8fPiZt3V2ZAwGFgHUY1Yq7HssiLLl3ixzN/ETKU3lg8fTm4dvg9boSs+9JeYvjsm/BOvnTXIvj/4E0ZQrdCWKHn6J0So9bkUcJWgOnRfGnO70p/AeEMFTatE+s8mxEMFWxNuQOdZrJ+m32qF8zHg+1UXWx9j2ltn+wkr5gPzWu18oD6cFczpF2uaMEV4NuLZjKa3VK8Rd32gf+EiMviubAPgG1zhLbjCWBvxLtHKshEM5DwyuTFQNxHBbhAcDoAbaiE3Br6RW77eLQc2hNB/fBBt/6NCsPb8M1CPCKhX34sLTO5R/+VYoeaCpbHPH97eRZfZkMvsIgxDBMPoqY+CF67b20zSMOxatVFYKvhDE6d4H+uW7C/S9NiY2SvUhD05q33iIAARa0x/Ruo9YujEMLjpWzqCTnSXRlNG7wj+nEN/L2RQDz0aQEDGMmKEUy5rXMUvhgYgyyBh5kEqCFJLHaTuOuiAmt7tc2FUzkGlhmeaQS5B+phGEGPaiwjt4qVVzFCclzEgQgXdkyuYh/9oQ8g+ok8YFfdz9yhB7zuoJ1ELp9eJ+sTYXvsHrJ+Z0L//h2b6sPkw+uGiGg8c4AJ6nAIOXS2tNyngGG6X8QBG8b9aAMyPn9sJhoyaB1/8Fi4jUXLj8gFTjw7pUKU63001ifbTgvSfLGxTbZ5y/e3sr7+l+kzRqmQX9FjI1B5Z+NABEGt1ZGEYmJYLUF2cOGOEmur1ZayPJoYTQJPXBRyo3lHnKv+QBPfvrMH3k8fwrFEsnca/7+tTu5bgq8UnMlzNkDRvb2QG5l04QWCp7dkXYZtPahGmCmvXgch/rxHmFlO+Up5p5J+03Y1sy+1k2OzDX3iLo+fXYd8RKf647NrkZKKUkDjJYqeA1pe+hc/Ogas9vyhTMKTfbYoAMnGZW24m+9tC9ifI3uOk5WrysTpNgLg/vfzCl0VaVpNvelukSXVZcgGqVDz2tpb9Byh9Bsuj/svnnBlvl0ecS0NQlGlktbfzJEhvm76pzZ/00kd9+jZ4l5XqqCN4ljdRnVo3gLLPgqzPjrrJBtjgKF78biarOEQftcKKYzqfssJcFeHqswDhSltpNb2AOoBXK8KbBfRWhHcrw8f/B89Ynnn1jtXgMeCxKLEyWddEi6FcdgktykijeCZeTPnQK7QW0THhdcmSINRgVolH4IS5aTn3do64iNUPSWIl3m3DYYZglZADxjOWA5ZTuoesvIIsYrnApovo04Q2gVCXKA0wF41BtCmDjx0Wg2iu0JgDhKAaUSQQJeggeE80ilhMYi1CjoLOo2oElhDLoPEK5SpoL2gMwQZAfYdGwWEss2hGnK2YF0CJZRaNUTQ5j8VEtBNagmUEsZ57j2L5TbCxODL5y1MXIA1ElSct/2DpD9UoPI6sGmULf2HpL1sTHmd8udLW5R1LzrYW1pEBkc5ki6VfaoS18s+UdhrO0HRCHGXn4RVLM2oT1j0frvRsIaBJqHuhyfxDRJ1EowRNietWaFr+utLSwwmaMotGaHquiNxb+MXSgkUWGmfRKA8aHEu3XBdCU/AfkYbwD0tLrqfCKvONSOOc2CvB04prFVYttaU1ijwSvrG04XoQVgMfprT2MqGxp1bhI71QFcLH1QvVTPi4eaGaSlibEKOE3/NXftbyZrmy+tr+XGL76fmO/fMz++Nu0LRZvT92HAf50HnLppN3y1dsVHrP79lEOddq4GfHM6ve+aky02rPT+jUqh1n54lVW/pGTrRq2XU8tmrFzs/7AUgULUXCWSlC8YRhxe/U5RhmNtfrZdHFTbPK79M6jyFFt5RQUBITDhE9TbMGEkmnCUUhx+WhCzilOcxQZKE2GSii4DYmMdXRYDdQqMcP04auFmUDRceIBji2YwMjsB0NnRfIoNGB2K25YwlFPaI+UiCyuDVvCbet3JnJvu/2DnU0F+uMSt/C3jtBTtEAuaCkbkTOD3oDR491dhSo8NYbxHHYscMqPMNuoL1Z4+gQDPWILiN50OgQNlBVN8WmcbEDGfQG7jVskugQWJZfpnZCUQQbKBrRNCYlBGwSKAJWiiEVNnAU6ww2kCWf0nkDhXpagUEs5cuiOZIXYZNAVIYzERoHLM7ar2AZFLVHc+mcMZlF6fc7j6cxhb1AejUHUcgNHIoYke+jIacloEn8glg1sqRnCRFGKPvLuepGOTfw2ZGQCm87UNkRVW0BtKYMfg1Hr4qQOLbpwJXGNEN2Fx/tkJn+J2mW0PYSypDB3m+KDmi8QZEdOf5o/Z0Th2AgwcFu4EnBCPsEjTeEMDsa3C5kqAdq5QYosYS3NaJw5iIHcdtelOTbohjqWzgpWBS2gmMXA6f0TlB/jQi1P5PIrmqwyVcD3ExzUtjnGtxXhr3M2HNFseIYQuGNmEtJrcpQaMPPjfzi8iyk8AzFAs1GzSHiertZwmF0MRZROtwUT6fcDzAktsz3alqVyMml6wp7XTq7w7Xxk0MrA/Y3ciYv3mnCDGVqh7oZO1GUutkZs+1APbl571jPNPGv4/0fCyp3/sA/U/vUcZLdn5yTp+HH6WZMdiga7KKQcVESoZOZQHy9F72VoM0h818G4N9oaSBZBHElCocglSFB7J8O5YLvnYB5ijoeOPBQNUVoiZHBq/2+GKzkGdhClWdlAxxfO3YOvMCOxdEAMqfrF3FfsVwNKFh6XGGEQorFYlIU23CYxK0blm7UxD+ebk+U4k3cWqde7y1wucsXlsDrhDDkKxxCFm9fdOlKie92Hgncjsjwex7JQgcBFFGSl9N9YnI9HPVpn8ZzcEGw3HFVPmh3HDy+W1QmSmAm/ZtEbNbVO/BBQtH2WUyROuZkFBIARKEnQNEI+UUngcjRUAoOb2dDKeto9/4mwga5oBgRCyhkEvZCSoda6zN5e7GvTY8EJpPIzJwMIsvrPr1jKV89fV0tRDUyuVFClvbdaabAepwN57Skoo6fOHaQEeAHjALrRAmChXIVD628r6j/PYunaUTiwsCPRg0cPgpBQncDs4E8hhYKOBJYoScHHtwMKMovi7mjAxTxO8Xi2sYSmKEQCaD5wzcjVhuqUoXayggdws8gcHmdVwDfAHaZ2KcRlM2nMam1vL2A/w1qspioXCihaKQrZBIpAJkbMNjQCtMxJS8N0EChjuSF6MCcXqfnyAJtoHo5B+EFa1xH5AiyGR8piwuuMjerJXIKFj/pzesh5a/EndfcOU54ujViTWeL6qgRp2ls2BeA1Axj2VNMDRzOIABnZFTSlQXpGIHDLLtbssxE4WBl/F0o9WMnp2nShQlF959rS9Cjg06LgF8TmF5Y/dB1J/txYnYUqOaATTUDwI1aOGsa/zL9L5BgDg2wVAGoUg8FWihwBUTMAVuoCPqtASZ+rk75iPF69RMitp/WZwATJTB/CNqpaNc95dg2FMli5Duq3f/sxCFSVeU0KqUNk1pdob6kHBctpNR24H26JYvIPNK9mez39WUZ+7NFMB2EHeaLdgDxtuhp7u5bb8Q+pDH0icXJaCzidqPGEyRwQsNrt2t5H3NyEf7593rRmjXoQKJgqrChjMxJYOD00BwJfChkQgQKOh96of00KEji9ZtooROvu0KWeDhqGLoARTkbxNEVGFsyMYyQT7ed9WEHfLo2DZgqIX5kyqqne/sybQi3acD2AGIPPCVRAvaxkUg/3+7OHH8Yzd2hC5GrmIDYFmCJW1kEnN9A1PwI8RAZCkw9/ITzFZPJvONNcfqRxoAfyVYULnWz6zSFAb/5SJQLYy/oQAcJtEtW9NOQEHXR2x+mrgXTlmACgYlDfzYcsTgZ5AduRDQ0Zsaey7E2HOVLpPEQfCGJhPN4uaaYnE2hEKkPR41th3Xb821ify1tep2KZSMlTc1oes49XOf3iXhr6d76RfzUpQ1U7LW/GsZ3i7lHUsYGTAfeQM2cThSOEuKcoWVENwMVWTXdNmPe3B6BuO88zCvl3udm0IQzHKO8aagb9MaJmnjablOYAsOYQuF5gsXiTCy7Q0qJq0Yb1RToTNIfyloHmzC4jdVCCxAIGpyAG397CFiq+LoahAF7f/xUhQx0qkwJhxwXtfeRDz9XWTKCES5+GjDRTi2+/9lIAuZjAzqxmxGs+zSZeFlZ4sR43z4D7PXbZwAegCkxBTZsAZ2Cjsc8SuY6Z/G10okeEQvvJzHikjUeSivEO73dTziWD3l6l3rEApihKGyGCz65MzRPMRO+yX+yaoKkRoSMiQnED3Ll4ERrPsr6lVT0Yub7lIeywyvyy56DeLpPkbPrfuSEO0jA/7N0+MvN8HI1pYuZe6L2Hi7k2CYWh5yki4bo1gVaM8cBje21xzgPgKDsM0tGOOMqzxWS6msx82zgk1Baihjzn8l5AUqCsnnpbsgDv1U02MjoAxNEYeInJUOUVpeXY4C3UFlGtjbJZZUkV2mbYJyeyk7E/tDg2MgGsBxKTi+AC8YXZD5caTvP6Ejs8VZuS4Edakp8BWZ1tYLuCOW9mg4hIykikEqiXozr2ZkJdczGsBkOG1XrYZejib3mSP8/FWh4AVnUlZKJqUXwH3JIuXaBaF+BA1KPDBVnWRB1h5sUN2UUUlLOAEbyJt7T/ajKK5yzFKoHE3fIc5bnQzVvQ1N/iqHjR9MDn+sH93hcZVR1YzjiN/u4pYAP2vTEp8LJ7ea8ffftV+/xvQZf8PPKTrpbbODSjPbpjoRjO41ypaPWPDLa8PcsCLpGSEnubTiRX9xacZyShLBjVBnEKUvD4cJbG7gkYCyvIdZMlNCw0grsIQ6GIDUZGKx7TV+7tO+GZhsz3/5Rjh4vulMQ3k0jddmukAE2e5ajaUfdnLk2BrVp+D0alu/fdy0350MXEdJIjF2aG/ay+E/8uTf59ZSTmH3NMvWBBtdUNEW8W/+GQLqQFW6GUz6OMKgMGWN4FZCdx9l5pZPk4sdiMplINDdUvSEhPIz+krWaqUJGYJHoAHt9yGPCRWTdJ27HCPZWGczVZJid28t5vhOXq2kcQweGOq0S29RxUQa545LDi0mAmtYOV4IR97d4y3WJPAOA4dDmF+UAVNuJteBI3zlDheqVmbioCMMSpz+wgPJaMdSY3RcxMlGFjKeqbSolEkEIxYwldIOVToX0IxyPTFCr+nOZLpIxFDEsYk+KOdLP75gy0S9HGl0UMzCcqhgh4qiyeillC8HPXajzuviiyNLnN69tnFCtziIEVhH50YllavYhn695YyZ8XVm3fjPPi6L2lQlTtoEm3taG9UNDoxeq6SzX1M+vNJpkwVoRb6cMHNFrf5bLvOWr12acdIeEXdmfUzxc82YHWtKNq3IeIo1zmMnEiYt4rWjBHk4+V9gjaW+IK/BBXmsDRjCw1K04EoodIyjgKLj9TZ3K+55s4tJwfkcTPP5sRvXUtWvbzxE/JstnC1zuJFhE4rgq/CSpJ/ORCcW+6+mw2EGkmtpRBhBd8+faZtyK0heJUm+5nM8ctTDDoiMOMsmVPOshAxnVXMGCnPl2jhBUVN6cZxcMRwpVCTjCZU1qDYWqihfmvRgVQDS5NYvshRzQD8+Bpr7SbEpN0D38M7+U3wreL1q0vUBRiktPpDv9sU93BnfZjinHeUDBGc5aYto+h3P6pVgDz3BqAg/pWGHymA07JsqX+D2IBRwJ53EKGNTjasskUKssyBV4rRJb+ZSarh7OWxuQ4uevPZMCXds5EvKQe5yHGGWOISJwJHSYeE+cDptZRWpGWAs4aHt/EeUQhYAmiGxPZHHhWD3IpiHCEGYt8Fx7tlg7Cp0ApwlaLXV/VFpsKgTTihNKhSFG5XApuN0tioSDCqfLonGXyS6AUTMy55n89nsFihYGElG7hDCWAQxeTIc7GAkd6N2DCncjtdYLu3mJyApudn4tk/39NSThnw/6nAaRD6XGFMbuSE8+PvscLPtPSJrEh3uDOK7M0WVnUxIO9CjAyuevt6NS+30u63RswOIsoPH2ZDg6hFaEAVQub0SJU62CasnpMv9SV5ogGFDk43IMH9Y0RoAnJYaabvWo17qVjLW6W+Gt4+beTP04RwIVqnpQZrwCKQrNU2fdmwy16CQnSfXgZpKL7qZVxC6NxDdAzkyQI8Mk+X+kAn1185WSf8qWIjPh2+6LLVjSSjZDiCy+gtvLE3b9f4bFLoKtOL6alpR+t5SZXUfXx7nE10jXyVqshkUPB/Z2lw+fm08rYkiyB4dFZX/eqRjGdk9DERXVFum2zKDNQIMqM89HYYOuUHzvP7+b3OawIMDyrc5LjhkjViLsog7gH0g9A7aqE0ADkPnIcJJfrhzps0U4jaEJFjuetciaMqYy8boIWdrVJAnvY1bluRIR0RoSGAINwMD61pMQIK6HFBRQIcabcJQ/7QZqGg/AXTU4DkDutg5ODGJtpT5QCJ31ESQd+UJZvRcvCicmz3X4AqyHJ2NgsA+ZoodnhJCpN5ZChQNw8Tarn3PyPcEOUzEjADlxc2Eup+uxwFGuMDfPZ0VahhrOAlcpGQEzlLzNU/MRDGl9izzBEMVMqOu96P/KpBtWsqTJUiThEIH4tjQVKIakMR6VaHSnp4aoDYD5AOlNnmWz3O7chFPEMPqwrbF5NCHSA2Qczv7yBbEcNy8m0JMlgioqwQdYeqSgzasI80cO3EuRXngPjPrf8I0gxnDeBwGecIaVaOfSA3idwHQod/uIwLmqPEMc6lpm50EDRSNTaCBcuxTWUGvKGZt0RJnMTBYIJ45yHE7rbE7Ej4FnaMa9DH6kWuBiSEJd2kDoeC4Pe0ONiaxHqcioQgnNWyShkJj+50/HuxWToaaTXJU883gYe84Z4yYSkzslQeW949rLdjJyJAuVmF3IiM8IpyRtgIMM9kBoYGXP26CANyYbVE1G1+D2A2i0xCr8fgHT0IkdGI7QmKMEgg8LtFe6Vu2lcjKbFJSXGOf6u3GXDlRwtNJxwu4AbTBbfo04xF4c713FxL2PjoB53whm8dkU3wZUrSUvRJlrL9WXK8nrSuhA3TNx4YBCLMUySeh4Msi5qrGXgNMECR6Z1YXGMy14sznFJBWFgyR2AUi2DJ3HtyriUtQ7ULbUqHHxkYw3TuV4MsyXgrfBynpNLeg1E+G1yi6m1nCT9Xs2OeO7I4kcRQ8l2UTXUBhri/spTq+iBjUok5tD0G/dzaR4W7FbykuizaEiqP3vOB/L5cPWRy82OrwtIwVsmdsTNnQzYMQ3gAQkRxhZTcy4hPHlAhehjobaY395riaAw2WAlhdYr4QoocAVxvHV+BiEjfl59+1rohp3KnTrmIadpQ5dGkaA+6q5KZLFfvla6Z5DkGD7KZfd2CbFnzgXL+LRAV4tAssW5iRN0yhMYO5ybe8QzrvyPcXk2tpn43E6OlhAQM5UQWqF/FybK2EoL7oBWMYFMBXLoN71IQbMynUUr+M8luYld3di4WU2Iun0xEHx10sIWEDWqKdsMyr2YJ/Tk5ZQohhRWHCMe+R5DKH+jlIMiX486UAyXEoWjIb1lk8b4ahcPBMP92pJLacnA53tr16z7AhTJ/vzNMDGOfFxxCHPSyL9hqof7x1t97w0F3aN5inCKlRrv+6FUzAysUBdB0cqLynW7QH/04NXvIc0+ASqUJyIUTDgD/4MWuZFVjF99iyO/Am69vA6IXDKYIrpo+d/C/QpMSf3t3MX7dsu5sO01Ufz3SphhZHabPaZVfkgIe4TmBBra2SdfVVTUcFc05lFh9/TX/ypgK6ISF5vFWVPmm/+hTwkNFHFqBfOh8aXeOEiR423bciiISYx61r87Kjq9umi1tZYL0SnhZsNlWAaFLhNKcb1ONXcAQqSB759qdOZW64jucB+4RLUlah8lfDvG35n3rgqJDH5OzVlwN74sk8bDCQf/PVl8UCwJsMHIXdqKgWbUQLs3eINRSV83uaJzzedYwMnqyrg0mxNd/dSzvktHpFUsNWptPuWFositF14MHz5LPa3zOKO3JrOpElcjr6tC9CedXjfiz65ZkgtLhdung3fDQvXcb/8ZFY7G4LiJbfUkwMuInzI3/jF+y/TnbI8I0RofzPTDro2qSMTzEidLTdK8VT6MI9S8Nug2uBFPU0KI0ZqeWm0iSgJPnXBZpTKsBAZU8uD96BeAh21M+Qf0nRl8EHi5IGxa4Ot9wxS7G02/UXEhFP+qP1efd13/IVn/IDJTBwdFf0h64V3wzKWqrRPX8Lt7ULGnmZROXQ6T3UqDatPPz7NFDO09RKCkfuw9SX0It7n/uLgoQoZ0kAgJUGn0TC4MMrSZ0wHoBgHn/S0bPfpvV39f1Y+jU9hcE4bLKaeUEZrjvgsk21VTtXE9zDirYtArXHdDdKyhDHvpeYLWGUcSI6ZH9ylIp8/30RmuDTMQ0hQtWMVsHqodiTKmVK8Xd+LwoX/fsHrI3UC1oyf9vmMwAbpuKhbjIbtezUpAnGqAxyS0uQvcGEJgb0cdtjdV3zRrJcfXiZGb7Fft5+rbpXlvhu2GfFzuKrfnsCHtPg7NLCL488Q//wKzWOjnEl/i1XNV7XvS5WySNt7b/TDRQ72culu6P6ehLqSPSxezk4Uyj6/6QnArWMjW66xgJT8OUqR9PQc+a/dMDXoIIpzYcmtoRG8ni82mIOP4SjXQ2Rgi62vihNZfJm+8S6qgO4a6TKM5FGk05LarelazUeTTqcRW6D1LROKMWdKGiPaFmD5rya5dBS0EMTp+3pzLdB5t/Mx2B0AhwXEewjKlC9JlKeXaWBDYgso4vl9p4Pq7GB0RXjabQdZ+cL+xT8Hia8F1sQbkFvDrOTm13snHWt+xt/9wwc6wmDt283UHJMlUQIo5SlDnZfvk9wEaMVDIqI8iIMZT3fytbdlMDTBdRPf91NvlTIJgGP77zSqdG4GlOx2CB3r8qjXCsZTPE7m7dPcXEUxf7A2T6SX4SiRm+JuKS8+BMkr8jgPh0erY8l9TFTkZRyBVny+N6Gpt3rvNHi63+avsw2Zk0qzcXwJByFb1/X8F0pqCoAhpyf3pm3uKfK//ZgHJpRnkc6wl8d5btAhnjvJir3Iy3gI1roW8jiy6TGRZzhk36R+/T4P5fud4DYb1Fi0thTHIDxD+EV37h/kRo+CQTsjcnd576bqKCsWeKZoO52SNj8HgkHL43t/nsJiRU5hwu36aFSlRhvVNp/kATT8qyQs+r3O5543FDPaQMGuQNuYYhI0WkzkxZskI77FL0jjCaAdg9XJNzWBNfeXGkXuJV+L6LkAR9OGYR9H4axO9SONrI9kvjDIVjejzaNHQcz+jqYcatEjE1IZMgCM0cUFGjfoqCOw3yZJp2FJo+v3/oN/BcrMRyuIWui3xgbEMbUn1PUV/hGNIvL1KwSi9eCJHQ1x8bS+w8KhXPGN/l5DUlsdp/tw0EPOnhbRg9N21CRn0+Eo/D7hnydar2B/Wmz52G8/MtB78VoEF5tHi0MBR6Pd7yO8FQNse9B6BvrmToYjexiGpBGWU7E4RNB4Y0fARk3oNL+UADLXQUjCKUo0CJD2nwth2Y8Db6YjvYx9A5ST6CAJm0zPTcfOF6zQgUTEusRAxoTDdNWK+BIoDqyhzbesr9fYQAIB3eHubZ+woXlIVIsHF/t8/H7ov+z06PiWPteOBlvT9MwzJEsWcwiGdmVeK16mV/CFHOb304zMsO6uFz008GAE8DlnDc1L/n1/N5hqvzkfAye+gTFUEcK6lPEjfgUIggcM3rU5QK3+8HPiIFaiqHyxlV/+0N0BZDfjjwKuPTzKIC91XRVvzU1xD3Dwz3kiP1YoGR2yWG/x4dr9kTndT4ffi3J3q2GlnE3rCokLUzpKO8IADYIKNkcbbUPT4wrJZRQTNeUWK2CtYk+SHmukxFHxZMQfqFdYHEZtnxUK2z4H486jlMv8ejNlnRBkoxiC1fdndIPdb3rGYcnuBpB24HDIMcyrthS1N4GiqpzzU70boFnY/ihOvhhQIIrrNq2BBVtTg6CH21gIzJWKf0EYT2xG2K30qZgFYmXW3SeryJhPC7VCUkFpbkkctniGd9FvWA0jQXds2uCbQlJ1HQqlQLIQ/MHoxyUi+IO1vDpQOjdtm8XDrh731oliaNeHyGCVa3jNj9HvgGJl1nUsE2hYzc/lNuZrIBcGzaTF6vfi09aUjvrRWRcL2T9LwdizIpZPEp5P62TxihXitxavrrOqrRjhFPQtgoCJ9hMgNR5hAR07lJY4phbr0/ojHQS+WVNm4unaYX+Z60T8bqGcBg++qU5/8S6FCa1yC4nuK5Xi6rmBa8orLiVn3aWTV7aIvL6XxdDUL1UXvbRq35i8WHJjyOuVUs2Su/CySWluqcqh6Lymob+ZSnrfpHcn/usX4u3/GAmYDBZp4rQh3+LDnSzE+KA4saTWPp77jOOWpq+t+txNS6rHRW0nXv1ozg3qCAtfjHTVRNSrDBBN7uBrR7srmTqmjOpgkvFaMN6Jpcd4WfmMLLk1g0MtLy+Y+B5k7Unk7tdEvYL1cu2lt1W1F/TJKNldy8vn8hL182BxvUd/RVd5dkhJdT7TUnFXmbfc3RmiOEqYNcY5AD0rnBEfV9B9LJaqxn+sLqWY4ELfIt3Z1FwcIgr0ehwufF7mag6h5ebQHrMXyxuLJgPkUv1gKr536g6g1Nv+rLqerZtGp/e3mlgFHW0aRlATBT/GbZTPV0YOIBl9dWA/Amfk1UQ/HoFnfP5EaFV/eCsjfL9ZbfXzCzhNFzAg1oLDfAPrsuG1nrCRkWGae3itsCCa8/Mz01UJNzsCWiMcVlzzMrdoF3xdRYMCGYq9HlF32bNxfidIedQpAy+nGS8QX9DD1Aet+1kHV464DxxZ7yB/IUe77IlDxXdr4nbtYCVv3fGPTeIyPZ0N9GmVYoRF31iWcyRTzMCu14d/DQ1Br3K5pp0TP729NqEFVwjCksfYAqexrl1eFqDT4Lx3JWVDLfJAru6n6moxcuuVQ9iBkQMMtNtWECHTJbE4K5grr862tBaqKKHOXaHlV72vqeRJdJXuDir9oScLWoutm4aUaMJLVI+/oGs+ZcDbWrobmL+htu+A3AvtrsbDKB3GCrMr2l5o0t2yL4uFgDVRod62oxbXOCSyQlyLkohTjpEPrKD41YsvaWpJVGZ/ipzmPxVo1g0m3JYgtqC290AeGsxqzeipGRT5CpQS4K5pBypDJoa5ASNuiVDBsbBFN5M0GrrKTSd17+NNV1tEcaUDXAYo+SY9EmH7Q7yiedBZpjFFxF9313bjnGouXIxG+U8vnUInN78KOuC/3a6HNlCYN288ytHQCeNzF1DmDdUP2AUjEiJfHzaGyWn1tl96kjva+ZQY/51t7FGgLZGhHD9JGJVzK9FVx1VZszJsmH1MbpIQ7zxX93BXq7GN9ovyzgdida0VUbgOsnZdYGhE+4NCl29dy5LlnaQm7K6CinqP2AQ984q2k8Kwl+lQ9vB9a10ML4O+WhBg7n6ZSZpsohXkmMy9s+YvsHOa2jFJBfALmrTmEJlfDe9UuCy9Pb0b8UEGVuwTSbcdUyODkVem5+r7aT5aAZdmMC39RJBtQF2kTNuhlIilfF6tXpInZWmE478Aoaq8nC1ya7CtYh7F9A06RFKdWai6zoNUhdqzgDVhA2dCsU+zeFs7AXRTi0vEzXFVyp/nMS/ZrC03qCtVL1fjHjJGbAj/7XZNfGCWGZGBPF7J17TCdeS3oN+u8vlCT3dRPNx8Rk/fC26mQ7Ba7bS84b3AWw/YdU7jfVcwrnrZjLoksI9luj5ioNTd9xjdjUeKovGq8s1ZzWf7Hi5OfEfpRolHJzxFHdH1c/GyFli5YGkjY2YrQF+jF2wOVGDxbIXRqSFZWKtIChvxdZwwRrKiRCOhYj8u2qfLJiq6NW25QZYDpHDK6F8JyAq218VRv2v+g4y4cnbo5YOYGBbK2zmVvmLV0IY1JBTXVIdZaLnKEGURxLNHCnOz5sCE51quKqP0il9bHwY69bzoEWxb5sL49oD4WHk9T3JirsnLeZ068FtgShIAkmL5oiY6CM6xD4r7fw1YdWUwEXt+sTbgh+kWOjKb+1dItmoLsHcgKOuLqJ/P8k/7EK5kscApaono/Gpz+uWZzBFQOfkccXfwjRHeHtmb0FRKOeKMfY+3hy5wCGyoenOCabrtClZKFFMJDRtHigPlaXkxcVWxqRRZ1kYN9rqqigCFlIszghxlOd/jIXZjU8EtPlvp1AM+3SHnG3YT5BBqAb+/Au/MigaE0jJBMSG6O36KkmJQpDRQ1Mg+7Qy7nKg/Cod2q/Yt+b/ajZbYLlHwOEIDdMjnzSOjqaZ0HW+2+fiu95gLo/VJdC72rn30r9ciTkuTh2KQMXfw6Kg65+8jcTcu1navFe93a/Ok+Jb0/YYMppw8RmuiHAS6rppcp8OLK+Ftb1npYn45lriyeJRZ+nC1BJpzQKJUrCOzUNEiLow9XcThBxuJDxAIW4cuWkTWuDt1fCu2IghcOR2hh8f2+jXfakGHdmFYHCdHwHY/KqiCcPg4h57XK1UErJKgEyTxcaIAdZMTFj7itq9KoC1lY0GptY7OvkEuYScDgv5KU9FgZsxpucLi9cQOjJbOXABpXnvE916vKKtYGsuQ64qxBn/7sTLcKYou8R+nA6cCrTrPB6So6/LMrI6RKCFRV0eSDlhDe8hpo7XT6tpdfW1hp11EAYZ0jLi07seGTuRphXIae4q2tcq0bgiG/eCac4BByYdpd/jbEDVZnLAuaaj38mNH4I4XSvEnFuSWXLYcV7bv+6lsEOdLc9t5CkzpAL4q5xhiTtVKMJFdju5O89xo+YkpkqNTHvHp4DaeXGqqM7z6t2nevZ2F1hjle1k9X/iN2N6H/A9M5wXFgFXKYHgBSscHNUliSwNUL852DHUKgeNZOhsrDjuNluMKt09zBnlx9+u0XtuM4lzCkXopToX2YyUwsJshtof2iTOIRC0VT50DB7uZUKuvhoy0C5eijTKpaGpydUmVaNH21BhYsx7mN/xox8dr71khuhnsONdvMQPq8uuRBN6LwCwu4IvbaUCE2P3akk/jM3xCBFyY5rssAIO3BL1dd2kB3OAl9TDukfIJ27sgLRwmbbzVaugrrNbT8/Fs2rqY6Ch7Z6rl23neLR/hJBJh5Xi2XnMVBi0oTtRGXnrXU+CBmKcLwG9WL45E8w/Le7DfQgy4fAeAOQkkjNoqHwmr5A4uWVTHVPQ5hkDovfSpWyZr0C2HJ4MUkcWwmhYGEo/bKHmvVTpCvFHYx3yPGUt3nwlMWsveQkcOq4kwWM9ZB6nKBpkJHrr/d85EI2Z0gljKt7SCTA1Vzy23gq3Ls2iHDfspjtOQiaClQ49ShXWyacugKcGZqqVYSf0CCxIv8ek9G9XNJtetVSnBfC6UXiX18PORIxQih/f07tIrXSKn2Mi7awVo4xCtQSd7eyWaFbPrHcQWnYXHYGPihWq5wHXW4Y2VDssjXYTN7IguZkb6idbfHuZJIOzs83EbE5LY709dSmTTCfwPj5RyDvVHbFF9HqXiuPQ9q9hOfT6Wl1KVScFtXLneoVEcRArFXeXuJ4ddPmXiWNGAMqKrEMdJcHCZeBjPV2EJR5Zq37281UReSj+rF8ThNMqW6NKHt+iVMcqsscgauCqM07AEKSKufGVEOWPeOTSCR7nLNPAL3TJXlpTo2Ys3QV6gSoGJq5WSxVRnQhlZ6sJxTjFzS9zczEEis+gbhuHmpxhnaiE3XNKxvYUDZJAHfTIQP+3Yo5JdpEgXUntUroSojiqHekoXHJ2/TYhdDIUQ3hbnILJ576I4GAg2PGbxGeOh0ChNlXu15sMvxEEXX0vCWyxvf0IC2VR6bdrVCkSc+Lgn8VvsJMflBghsf6kpCjxx6JZkAlbxZV6f1jogWDzYuzSEN12hQ4haZdsvroV7jNV2oB/D2B5PXg0Rha8URpiqBLPbTMIk3kYOuN5Nq7vHmqCwhzGVVLFFGbw6WAjg9kFzQ9U5XjUmbHGWRsoElMWAoq8jX76oGAs8xBhSyVJrfH8jQy+2oRY3kCDSJdMcowfYjoNXdEZL/HtoOWqeumTSpzcSZuzxONPLVGWdZRU9EFKL3Sy+VxiMzfjYLcXg9gHY9mrAh08msZ5C2BZ4s0YzARtY/v6GXn5bUikw/r3eWS0Q/seR1zGrDFqZWwxBnenoDmN9ZMuhNUhcRU880TsFY+vN5w2sOXZHJ7pcXeehqsO2OSNXP5MSbkU2itxyoCuCMAx55AvJeJI92oznASc1V2skt8u8GvYCmwZWzQf3H5RkMafN83Ibte7dQZ0lGRMJoINBioH3dDi9zm5rCg8Vars3E8khWd/XZ+VCpB4aMMR88KgH6QQLhSKY0mv2LBN+vbsZwr96gmWLQGzMEchlIbNOJBZM5bKVovKF+fWGYRDxmUckB1m8sRIMm8qKekVE/D3ExXqjl3N3Suyhr7vofQ/qtdPDvZbKOtCH1nEJE9O69wIXsSQaej/NS1q6h6WG/7oYf6Y/IRGndB/MxVjxTUgg/DLdEuYXYpb2u0SYfaJfTNPAi49cvESM2Xc4H0bdDS0f3LbdgLZBezaw9udMSzDIE6Vb6D79Z670f7ArwRoNzWLih3+gjpTHONb4ZsoITKgLNhe+hhWog6ABti1e+POwq8t1v3EV4wMGprqOS2xCv9Evn9ocacU6LufLekgCHymMOuQdbZCAmaaVc1s6hiBVOM0rDbCogcSvT6INC7Nsc1I8P2PipY6N8n5xQPwic2Ee3UJJ4L6i5uDPSF6qKzU746rSQrGtPTqrPSm1CyaxPMAZs3e7zLBKoSZODaW1inDxFeNNZTAfnJzi7tzP+gzEKjWGk+ronTIY8ULQFyOMYetIDw1HYJkFNR0eXa/igLX12ZJu4caQyEKwPBdzVgPtEsWafDE3BC/eV+4IhN7Nc/Q2sn64+j0uFQFOnt7ZXGIwOgdTeFNfwJZUJ0cA2h+GnXCGo8fyNGc3epazuhoTQ/VCCRCelZ5paXrbsevo5IoHAwqxHqT77VgvmJPGm8eIVVDur2UIn8r0eJxHTs8RKyqhefIXgJruSuIyQZHXsElnVO2Gpa0X4nEhOh1ViJOe1r+3HGO5Ufgak39ozU+mJHZvu1CkkYpwcNbuEgyzPmd65ZKLgYFXFJul31RiuWAVRYP8QRwPflHL4grh24TP7kWfs+IDwigUXH2fthaNof/lPNSTILjuUZ7SsR6STCp6ovGHwbwk5R58S6Qgjn9LjH8yalVGGktKaJsmu1nltaUtyWuIqp1VqkN++gSspsPvqUmC6hIsg0BsfzunfQFMfMHrW8yHDrdj3Prqf3wpSrK6uI5tVtoYTl5wV6T1+gz9qOEw+8qd9T6od3AnCovUApKY71cUFyqZdMsS2HvfzbfWH25/WuYk0/J3UB5qzXvZ2E0Iikjwp/yPyITEpM5vR1KM/NRYl+/4nr9B0GfMcfD8nXlq06eWKqhQLcBHlI+WodvPfRFHblCqkBFN1jXi8BXJzWeJKKzuXQCGn74IFwDyPGI3zCm1gq94tEiPM4KilU71aZLOphYP3TWbOi52O0OCcVVkg6Tp8q6NGATQFA465kzg9DjEmR+cMtHu3sN0TYVYUwsefSbn78tla1z5fNOFm+FZ07kEXPTSwLKFIVcAI9TU0jBRURMW13HQUsjOwIyvws6CBJHJABsk94qlV5J8fq2PvwfYvcuN3dUinSufsZ1XgGw58gAqVW3Iv7p7aIQA30QVuTsI51LdjzFkKfkeKlyVLIy9v1l4gsRu7s09JZW2mbhV6fpDN/LoHZyLuQpMWTP4fYofdhkZAO5H8l1MfRQRyHTE/nCNljvfXjoUj00rGWUL6HkD5WJl9OoaF7ML3FDNBfmpIzW5s5J1egl9O327OMzCyjQKBrM8P4xSuof618MnZV3336ktulA2BQaa9V5h8K5Yqg9Eh8OKHepimR+rxgYGQ6abDSEuID2/2lBliq14Ymiv+4B5S2oCLrjhLqdNkvEObcym7Gjg+5IhW+a+969f6sBGBnHe891Ur/DhVYCdMLnjvlFDA4WNKBT7S9uBzPPOrNRJoJ/i0EfCk0ctQ46RYmgHHyxIoxRQmNIr9bjN7Q7uMr2DsrEzKpps5F2fj+DZGLBR4QYrgn2Cyo7Q+11j4kiMxieu6lBodVFmJlp0TzNYir7EnVUsY2Aigei5Sb8PwTuAZ0OwC5mQ/b8pTBc1Hy0Kb6DBLoSWqpvUUS12gIY1VM0mKhoqu6EyoBrGQvLiDWUJ80wb1ydDpXRHeTsUBYpVeWWUVXwi3k9DkjCHPYi7aRmLwhdwZQ24/l9Yt4GzavmtwAA1i4DpKxUyyFI6pI2Gus35Hjg4kiEFmOv8JDJbwOAaDa7SQoS1rwN8cMI6+1QMTRFq9VTSCtB4mOUHhiBg2wBdwfDiM4RZIDEBNI8TeeCWNoAoIilRRSJKVkhUU6xSw0zh9WpD/lbsqd+Uygs/lCbQrrBnCR0yKBkWZxyA1JrwFV/OhZ/zP5E1yec+5z72XBiT9slSSAEDoozRSxApxxxHCvgavYL6K4oBgYhlbGVQEoooc/zIAi8i3aGrwnmfPq9bGoSYKlC2rAFszw0IHxVI11w9a7Vnt7UBAP3y5Fl5a6FzOYQgYd46wZBTBQZj0yqjdkKzbS8U57saySyHq54ThKBiGSICAIkRc3zjDMwXlQbxt39D0gD+6wP3o/PpZmQgkXUm3iAdI6RjvDTEUU3H/dOrNCPeyzYQ5iYKc6vA4/xsDFI6VgGoGNTmk63SC36hoCR6ETrqq0EnUlf7uCf6BsZXOdzCTzHNPRgQvznlP/kUDb9PhFLn26gZZR+igfqzLUt4kSyeqtLRbK2Wu1CCLp352VLi91wox+cfXQP7s2l0MU3NipTWHsdyAk0AQq2myDUn+qxnSJpbP6k8bpJFTmMVAWW4KvJmPwJsFQhIUn3q1GrqXFPkBwYpZTyzA71nA6OOmrnSR9HGWQvuwDoYxe83cjLmH7ACsahUWfxXbY2TYoC6G5f3ZbKsqsgBhKbKuhihi8DOBQXga0nZSUBXEZKiqovTcZQVKEOHKoqFd61LnOpvxX1J6yV35hQXrqcCEidDkv9+HGPVuiQAg5gNyAIoPVRJSEVbbJzELcb9VMICJJ3PwYERupIViWYQuBqlr475Kh5zjDZ74kofRvUalNKyAv6CA+kJ32bB/vNSjLEn6jx7SCKMsUj84ddo4T3Py38ofd+mLJp7nN81a/VtMZY1YUozbK0KnTJHuvEDhVA27D55iBaTrJahCoAOwm7tG0HIanlBa3p0W7ZU6nIUqC940msU/1VLCkAp2Wvg4JcuculRSams5myVOgSr3N8pMOKvobdWZD0YjBr9iI2xy1LPKfa6i8IZlRpGMxSGB24QOua6FZzrB0ZS3xOlwWsoVkO2fBzMKQV361AY+PJDAtlKeXVV9yYfB0keiwxq8IpUDT3JrJOkP9Gf1a0yCVJFFp9G1XoeQlx1kyQdAtEd0caeup14gNVGgielKPLH7P3eAmt0M5ybDQpcKG9pi1wtrSa29fYn/IoZlurRqdltzJ6xwYo0oylThjUNvv5vR5ZnQbAItEp8r3nHBMVDyCuM94AlI8aQlxF8m0Qrn4b3oQWxjTsfcZZj9da7Na4lgTFmWU9DiyQYmeo80qYcSDw9mCK7Sxzv2WYZbFI0YiMmBvQa47IaI2t8kmFe7W/NkyHDYPDenGEltUmnM9f0ckifRKF77m/akCVTYxW4ZpPIoz0AXEws1pdnD1ML9mewwjcAlZMZFeACciL1oJrmcBR3BcmG0u4mDVLbSSQxYmpINL6iMxyeQ9PRrImnjBA3wTusNkwEktk8BCOV2hNacTuDwpN0WOUPYnROV5/qxJfVwBhAuErtbg7E4YHqf4w0FUNtTmiOnO7yP5h3mBy0IhKRAmGP4rdC5nuzk6hgV0ljA00KtAqfe/r7IdHkedlemJOWcHyIB4raiDZqdEcMUiLcFSsKHM8KjUXfRdqan9q3bp/YuaowrkmlRCNGGg2R4cZdRt1VtOx2Rwqxl1fiDcYHTvO6SNiGhRmzGYYlC/I+pUUcxAYnzqZtqblLCj62ej/bXJ99DG5FHf4qy9yoRDkFrb13lmS9igceF+wF2rG5X1xY/u3ifxRn6T6XUe2ysos79EFzP3ZsCD+rf73+fHCHSUYACYIZdjHTQJjyONlmmmxBFO4EjUCEDGp7my9qLZHgXVtXx/IyRr2lp0xfUfaHq98e5BV15kBerC0diSFOXq6dyNbDClVthnwaspc1yZAfgMAnTFHjSHFYpLSzPqGh6FYeG12HriiWpqGk/DfqE3X4qhGi3UM2kpL/HczPsLPhF6OiV/pI0X+g6r0DKVL7Bi0JgcuBDVjhsPxGv5WdKijiR4GoLFm8gpR7fi3PpqeGmeFdcAijFtyDPdQYsDXvulAYEPTX2BnlOulpFtjLFG5rUQqP3W8WbrUTEVA5OI4ZmlzrMQ4kyarcZepiQ68JHeAhKuOF1TAoR6ftZTSMTyQSDy7byMoiZmOMK901pn1lznSjrKLZTE8xrBPsPQ0Oge5cKs/exXdr6caXsANwmuYyQE4Wyr6XHVHcTk1bdtfrIXVFqePVO6NYoMgUpxYejrMj+0Rnafy0a1wgyVuaUa3dKW2d5PrFUObmhwExZ15kVPOqnd4TSRShlK1FvNZJZqmTWaM2K/rSmlqOV31juQJRsnpo0CEaojLLqvV2sdwgNsf6ZpP1Bh+QULN6TjdO+UzOtqhcce0GUl5WBmnialDN1Blkf5YAZFn3i253IQtdoGT6Ij5BW4C4k7PFB6LT1hAFNxM3eCniwBtBL/3u6TS9lBjAAUvD3RASEOhdc24wK4VgQPIx5k72iQrfcPvMBjhGXifqGBp19MZiCxsOIZcbw7mwbhycfsOn5GIr5ypiLDWrcXMnI9TB1bid+UqwKmYoUgDYth5H64XW0RyBKOMYReFwqeaYBo8MgMGCU/X1kUzuWcyJBQbcnaV64upUZoSJisVOXe2di+O2mBhIkNN0p3h6tsScq4y2BLOKoHIcAaQiEAd3/ulCrr1TVWEROTnhDsF2xeCx0lHk8jwdaeNUoG0iSWIysnY1IkVUj5JM8Jy6QJWA64uLiei8IMJlNg/SEKyJgcJGiVKuWrBvvDI3HWZpwBUz3MWYLWSCZHsUgxiXVKecFIBmwpPDzObpuFEaciRCkKYSQyHVZAbcuajAQfmYJB2ZKU5eYH8uDpIQAYlFj7IhAIQjZyZUySqksf6+6fz1smVAvEQHysUSFz+k3teGtYrTol+7kBV9GVmLXQ2yABhZWKD1LCTuTvO+589fQF9yzn8hEHzqQRWlN5nS9mMSs/GBpcnSU2ZdmFhEQ47HLPBhdeQVNqgFHtx5FRmMTeaIE5nqar91Xoqg6oCIDq9KzyiHuXL3xumnl6vp4sLY/D6qPyy+CVgb7mtQW7myqv1JX4ONYiWiUaz86sTnh6tBHFkeNJjqiX87XTob8eDYj9VAsk7Hf0C88k786in05r9v5ubwYcmVRjqa6P95YquQk4q4t6VmSfCvjBb6mMdalM74MUQ3E1GMZfC2VJSyQMDNgjpgFkTaSP1hbQF0x4vrt42qQHEO/T5pU373nvK/8BSAtS+Pf4G9nq4idPioYg05rf9tlo2BII8lPKBKX3lk+RWgbCNdM18gK7kZ0ax1ZPFDJ7Uhv8NgWp2EDHQhAZ/t4HFxoL2LMj0DJzFr6njFbWXzj9/MxoiiMqlkxUWaieo1ZMzcszJh5RMkJXfd13BKuyNtDPE8iEbB+5bjkdvQxMDihPyeyRtaO7A3q02F9ODKzMo8n8BBxmfXuNhP24F2iEv218MC7rQ7QcsbMSuUygcb0xU23DBEQYncWeJJV0rB/lDj/kvAXuPaQb0MU7UARts0Grhr1ByytrWDIkWrr3HcyzojjFt2n58fT9loZNJjR3vmvqHsureWnjGJlxH3F6NMLbBJxAhxfF2j2/fRe/I072vFvC/vTxVsjMBaGC7wxMUeWnYWPXcg6V7OS0wky5vZpeGcuR+bXVqzRwfo6oGbeowML6ZhNcaM769hIaeNTlA6W0fCZZCf5qpsmO8LV9GgWAcWiJOymK83TIPEYDxjrlMviViFTKG45azjpNxOjKwLvc5zh/FSjGG9j+r6MwP79NVxCNYT0wkxj5uh3uQVSkMoj2FIf94R3IGY+tKAURhmx/ZS5bpBfAvfIjwTOVVmsrA5X4pGHrCJbgasgksDGXpmM8jVq4+IgdDGE6BTt9jA5UAfK0pGxAdZETzzu/khZHV1ZVDlMxrg3MMVdMpLl9oPFg1xEaFdJzFOHF+j5lhB38ptt2XiYvw1981b4Y9EaKBYXBKSIQpIz2ClGLYF3RawipTwgCbmjHQRAEL5BxHyKNUQV32gAf+1ZTaPhVEaZg/ir6ans6m7NATFdeNnI4M7R7wa4KFhpbx0iKwGcWEkNg60zpnNgO3gUuhJWDYDisED4fcv0CTHGOhJ96sAb/ceDpcjR6H8KFkaHawTKpeXcsKhqdBxodSobn6D5vU1J2bOJ6Cp8rw0f5mlsHBU0DUfUUK8U6OxPmYoPojgMRla3TUrSxtdi6FrSx1wBq3iFlBTyNyLiSVx2D1cVOggDfcCKwlLXar8jE08zYktJOOqthv7Yoopl1tfoQRf4b12lPSvAVampwIqYwkFTzycdPRro+RFUPYPMGZdTNuzwmFrLpPxlF37dFM27B0OYeDRodYw0eAD0USMmTqfbbVBWrxqhYjiwDsH/iZuvObSUuVn8DwueZ3WYrZcCE8ka21cDAQSYofIk8p3X5T3KNVCmWv7rOwcRzaqP+1Gx40RDUMLp4vZbA2t0DgkDFihO0ArYPlFUyLSmNvKQlNVnLLkFac2NMIE8dtRmeJG8T2tdq5nUROLC1IQFI7Y1r93mq7Gvervlm3j0Y+uRNrd2jLApf6CIucLr3q4x1bwXPCXTBFHV39ZClk/yOmf4yYYPZICGzgZxblfLtAWKzNa0U7kEWjRoGjt87VAyWG9MOWSVnWfzCnZeAbbgUIOsBicvA5Qio/ivMr+ujKfXSC71sbMuZvHIzJkdp0U3X3tzIO1Z1GeMxnLqS4XLqyDXmR5ihjaFe9gTu6035CALCoyXedoyoQ8c0k/4YfcRBMwWccGrCFcZBEEtI0nOa6TzCyNkJUMxsx1rt5TLfj1/UOK9QLlzlbn/r4sgmQ7kdrQXwDBVB/xnC04SGt8ZuOP0foDvqo/LVvqu1M6pnjFNB1z0VwHNjDcRMqajqX4WoAEnyxzXS21w6zTPh+7mMqwv2hncnenjQDe3Rxl+t33fmPDWEEpkaNO1hpEjomCX0uwCNC+d92/h8BF3VszFLYWRPV9CRwtD8sx+GP4f6u1voUfA6YWTIIpFcHtEPlD/rOEcG9+4pjTa3ooz5dkbi4Ia5k0KY4ID7pUHMrhFn3HilX9FREAJHUxuqALdNiyxdTmEi7WVZaTwTPZVRdjcmvA4XU107iq8LDD+LbwdMOD/EQRAncDb4zIVkhgiHWruoHTZZanVXdpxeRu7XPqToE4Cehsfe2dlQyWHuXTD5+U1nxPyLwIPkJAbVHqCtRrZ4ZkvutyInUNGvKQTwAXMVwSSa5xKDN+4XwQb+XbW4vWG2nQckUJ5uwYTaN4Ir5gWbIWPfFN5QN+yj5FajxygeIJyMLmpuRqkIZuG/TCXnQVaE3JRV84VpHLgYdrqyPamk/YwBi9//dNoEjstDIMf7HxDUQqs+ltvPCOjUlXNaaO57Bt/k3JMJ6CcXzjZXNKfDaNLItsBixQCE1ezBuigCpIYVIg584dIC/CrhPWggtvM9BZbp+TsrZWqgoZqMUgFCdsXhIqB6bKedy9Tw+VEyKSlIESc/IuyfOYDBH+K93oEUMniutj5zw3yCKj2jgY46FSfeOBFjpseH41AVQGT+aRIBSoMO0QXNnHpls4RoSbgNjwJMZcffU7s3W2h38zeMluMIPZO5MP/gvMTK7vRDOU7TvzyNZ/p27M30EY9biltv0HhIG2wm4Y5gYdSqNLFdoTwaqKMxEmYqIz3H+B0bPhzki+THc/YI1ngzfKvtI+XaTHdJkO6ef0MvV2V4v0IW3pP2mmr6nmLnxxuqT6dOvhNR3c92f6hv+kAQzHucmCQtG6gARFu8m2Fe06vKAcBW1lKrAWDe8EiwxuCrSLiwi1suQDUpteyyOxMxX6ZzE7m+42T1pdfftTkEMPNipe//I4eitJ/q6d4jsk7FYFz5gbTZ6P8xCyZHX2W/BkyJMW25EY1bTpRvDGADV+DRgNeaosC/EpjCpFuE8Yc0kfnDSy1uyq1cLlYFsSL2lnvmsBxmwtihre9ipVfKGrl2BQe4fmIOHxSJSGcGDdDI1jQiOJ+QwI4GvWhlqgvim2462SVbOH2TzEyUr3Y4aFk4QM216+8T0E2y+hBABu19YAz6OFJYzJ39h+g11aO4bKPMo432UqwMM71jh5KNwdRuv5uvJ4lXoW9pYmy45sCer9Yf2S5JbQPq7KRkePXxPocDTgGwAXbMCREvfYJTNrgDrdPnCbktOh+HoNERU3aBkrk5WcJa6SzktlYn2tEDqGXsOlx80duk8qBll4rnXNLe0wnk/P203AVImVjy9huXooPN1qEvz22Ul1SXgwbDyc57GYtfmaRpQWIeNuJg13+6m9YR4EpcQ4k46VfBnGdoowCVLaKArzPstjd/v0AEco4ToQJ0iBcDYSfKXAFLv9saEL3qqnZIJR49UUFL1eQ7wayTBrOAYVD5uJQFM9lxrQqXjqmBTHC/HGe5Pd4RIBOBVVdJBFEVyDcoBDWLRBEmBKOT18PL46IYGI0QS8/FEOdOP3EdG11TFrOBKdzJMM5k3gZsqq/LO7McSfbQPIC3nnlD3bc6mzatPniZb1PED2zRiqTcbyivmD86rFc73hx2esxp03l2ziDOE3z/nCN4h5u2OzzcB0FNEsxyt+FQruxwDXqYcm8WaED1VM0o2JlvU8YSuMP2l+7H0KOZw2R+6cS+scV77dmkS7dX3mcxBZgLIkDjNQ+oRAsgKlHSKTuO701XoPYI4EqUdfAfA6fq5uh0T6tr5yoPjXt1qCgvWKG4l5cU9vZnldcIVveE8RI4THChpF51toV9L9dWHwgl1rojlSQNIbBevao3OTAEWT/9uxH99vFO0Kx/HEd3k5p0h2AwnhGHcaqWdGmlOldE3yCHdztrhaUyyrl7Fp6qBSBCjYxCvmSWslMrLjnV8CG8aQuCPRW+DAEaozbnXPP+NsiiCDyiTCNVw5S+lsQ8CFQmfhkyo9rjqO4ByolpW+y7miiAnvPZCtIor8q8tJuvShevlXjCEGAJWjOMIvSqhNTdy8RJa7O3/jB3+fz56WbWSlopOKEUjXG5FxtsntQPFyTvs47dNWhr5nnJtnUX17NSVqQUFNeIdQMB4Iy0ZDdPUpiKN2sHYWbDHXNLNGqB6McRXoyxw9CQG0zbRWmTFHy9EQ0wJ6EW4YfNULtguTiqsisaP23FCqqhhjUZcwcM28GJOCNThnagbVJehC9oqZ8wTWKVvSkSc5es98Q2sauXcm3yBoxXSlnZdybHKQDlT2Un6pcDajpv4io0W4NFFuhth0UdrJCDjXfqC4LLJm4m+iU74RcpFQAYk3DKljSdqInLRMueyg3E0GFgsDQIrOl0LmJjGqQeDrsGVYCpcne4sjlrjnZL7eXigph4ZiFNCx6dbQTsTRtEazKUCkhg3xQ5r8oxYGXzZ5GT3tB0RmExGsSnRJ5AZcGsFNA4d+5Svqu54meeeizmY1jxVD4A54m2/7mKv5UeWKh7xXUxpRz2N+OaryJi9yh7u/Kiep3/4nVZDX4RgYZAcR2D7un+agJl5sBTGJ3t6KZIKLBbwslPitTdN/REm59yxSHYODaLrjSlaom0rCFtIXzrY1qEudX1NMvp4UUGTnYSYmRMGC7UiF30wRM+8Zz/7Eq2KDWdmWQsemphOm0quKgUbBISdlMTbuoP69kMoQIFzR4dCWPpOSTrdjPPHiaZMXqhu0+mNif1UVleQLkr82hHzJnxch5rJu83m2UtRUPvDwCH6A5Fz08N0kd5FF9fk2sgYQmK06vM1Dra0AHO/kJAgtwYC9he/7bmiwq/3h77McLhhOyIMprVe6FSAQ9+q1SJmOixR2vUSLvS2l5j+oF9lhvm6EblnQWV51jd9SMeShi5e/iDB4U2M6kU/0iljtfDrbulhQslHXg86u8g8foeKoldIO7FAtcsktR0wEYZV9lo6Xceg6xaSuMQCv2rxuNKxP366xd/VFgMyHhru8wBqSwJI7+rV/4R1fnLzZWPNVne+ZCkp+VXF4wiJ2IG1hEjxAUacdQnGi+1RBaYv1S9aqO6IET9O53skIb1LERMaMNMoMex/S4NoTPbJXTQ1lNDtXHNri+jJOQP1MCGw5asr45A95Xmvd8LJROsOWY12+Yh0WhSu0dM2G07lpQqulGbykZUqNp/x6fWeMOhG51ZDEqGak5nW8xuEEhAOjEZM6D1YmHTEbyHVBdlMbigJzEC/PnwoPayO3S+rwfJV1sk5rrDVWVEXVmehM9KZ609Gd8AdDcGzvv9DeE6y4BUEpQMP0pNrExE5+MiqQpARn57slQ/i17+mSTuUCs8Y5G0VPAk/jf/QUeNgvDH3h/G6hk9APDhres2KBtTpzscA6vaTTPnoTfT5uYpgyEx9z3Lg3Tc9H2w3739Tn69B+n4syaP9wJ0M/ATzI4IyTO/ZoT542orudAeSCC93MyiOT6L/wY31Rdf6EEXgAQb4OwjcXU4iJYb7J3KAolZ8osyJjdP5sEaknZIMjzwxbb00h3IlyXWEFuZVHWLkw6CIFXkM5TYumpwi58ro8KmgsvD+dePtj3aEEKNqv9Fxc4pSiBT060/AiTGs4pq5YOTb2z947y+82az5tZvOAmn9jpdEgI9C0MRbIcGc5o4Ir7v/MNu9F9sp7IYZ0RcCt521y+4b0MkVKnS+J9IzzBQ1ubc7ZtOOzIl7zKfyB8Un+FqLSxf83Zt7/tVVDx4guPAE+EQO8IAE+od/GoKvwFrfT9BKmc58fkUVztux8JwcxD9kVdJBIC3vqjFQRSPxSNJAWQkPbhCee5wYR2is8e/I8+GUHhzD4kkYw1r7ImrBWmllrnP503n+bbgGw0kmfFo3btMXw+cIpxfWTm1MaJDr4lmDTM4chZOzBVz+aNo3wkyDywENTJ5RnSIJtqr/btOfCT7g5NsDcYiCjlGOl3j3sJmrwHu1zyenb6bxPE0UUSW8Qj5ZnbJPYbYMsblU5y3kNxaqrbCVho0FgJQWK1DUqW5H4oRTcbFEnfE4AN5jpIWIAa7+6k/r1qui8dTAyLniFfIujOTuVigC754dC5FMj0wNt5RtcZFZKF5Xv2no8sI/kw91rBHnOFFCEr+NR8iX4KO+0lEvpWd4iVtftqeFZt0Yifik/bMgHHAU8XKWR+O88RIZkW/3BuyC19tPUdPLbwtDWjucf4fhwNG3q5/3DHS612lFt5XT33nnAmCfYFqxcBTqo7XqHRvOConvroyju5zWYSmFl3tQAl5sNcHvyeP/HKLt2orJ5VAyNoio22Fc31Nq51HyQkUoyrVN0uQVsvEig807H3f7C9TXydJatxv/SAk4oE9XwVyfBjw5iLgxpijVg7RTBa3vK3OWp0pQMV9ITmDpFSEVHOF5XGGfD9jKqnM0SukLHF+uDrkWGraipdHt7o8i5uJF4+aQ6nv8Y9VdmLBgzxctDtYeraaIopjSa04ot885oWeAkzP/qHQGG/Lfb+fxUx7zgDK3g9uWc4oEGlrvX34g25g1BoX/sGZysnT4VhFS5ibXJCDZwSgFcPHKFYBZ6WL7XCPzK1s2ulO6hGaI9z1T25gPTzwtsjscTAM5DxOT9WlZ+4kzzY+VHnvQLd/cYAb79jjYT2MA04Yp2ZtM9JLA1tlf4fVpfoYwqEBx63qLpGY8HpXm835vqDjb1llEhwWKxSmylLpMvFsbczfzEyjG8byqiIgwFuqn5C/IHdYuWuA9Gl7WNH98t1pP2grmx/NeHB7/yoUggo8M7IU8+1ISJPds9uLr+09Ufbn9M27uYlj/hl/paY6lrrR30d/ycM0XZP5Z0H1IRousqwzIwhrgJ6uukEKBtHM/7jMV/Te9DzdbWhjvn8XIO0+MbT0bHeSxUPFOyxeASqwyki+uwnO6l4t6x/Xe0cQq+Z+PWsHe69H62/c+beZnnb9s6VremQF6q2u+0AYMKeNmrwWbqhZpAYDY2ieXDHVlWIn6bWpSZiM9JRmPgPRt3r9m4cwjr4jH/LCihFLwoPBnd4139MRXJpPC86R7MPyuaxq2a/uiCJ/0WzMfb5J+sjY+pTGknokMvWBylw8ctvAMZ9B2EW9AL0xVB6SShiFZRZBU8DLN4/0MPgkPdGLKx1WlSeTjuLLVdHRDA67GD+ALL2AisTixcVMYUo0qT3JHNVTzFgWDnDh+J4MSfgz9hn4s0TpdVuBLv87oBl/mt2vN22fditP59QEDBSvqi62Q71+9Fr9/nXJH75kk4GS2+gwYG3TT7AXHpb5SQKKfxwp/+f3Litc+WBs+vsqF4Pn2QXMNVj3OXQcLCKN0lkxeCzOpQzBvWAeE7lY4GRQZ+jQ1NYRAPDbR/soxbwZ+78MNojPxbet+hov7SLfwCDyCHx6/mKv20WCWFUDGsBb9Ca/CeTkGW57cuECBqb5Y1EYNvuneki42fH228JkukG6Uf/jSD0dILxs+PFQSzZosWStOQaq082rigG48uGgcL1GkI/mbP0OQNesIDH2cl+MgHdCR9Rqda5Ke1490F0f/wc9L4s/4oiDzayeKWoJrrqY1GBRKgd4ccyguuc+c1vT0cjKts3VaHqYgqlgxEIz4SoyeefDrrfPxrPwe3vkwLnaGTrHCZPUl3s1uJ92Qh7wWyST0lysZ+4mbsqw57kXfQQE72Ax20oPNBlgOJsm7D5G5NvJn1POLJ6PJobfBcXrx91Z5yY8l9ojF/RcbZR437n3xEa7ac8cYxEIIlTtLUyO5iXrVzqsMGDHkka94ttEKFfprLNwzH5AkGQYKe6xfKCq/RuQ0O3jGku6dlRTZDmqeh145BsZcuO2GKveJAzSHK7Y/gk57Fh7oEdaOMEGmcZ6edIhGH+8NTwysSNZsPFAhUE7CIdc6PCZRqfb4yt8iKFWNANQGLGGMMsIpBCAywiDHGeALyZW274CCXFfBIBXikAjwWAW4gXzpJ+tEjm7w4Qk7v01LHtxpzJzZZ2l4YeizK+q4fxtcIPOQDAwrLkCq/+ud1F4YeGypgvQkRL7pY1NB9sUF4kbBxhh/W6Dqu6M4bT8LS9ILDVXBXD7tvbfkB6UcuIaU69vBQouRrFsao68JzUibu9cuQpn9gj03l6eIKsnaNjcDFE+EwdDBeD40kExKCV9nHHmweLL+6JuJn1Bw0dV5PcJk/1fHx27J/m336btppxxVljROaVqv2ngqv9vTGtWHgBoLvG1tlIANm1U+W8iRef1EwfvzoZDA6pYF3iDaFdxsdLpFv9JIbaCL2imnWfF9jnnmGorZtyhl5zqipryE32t2uNuCmiZz79eQTTZk7Epg1VpSadnHYR4hU4R8QhhzU6X8l0jFhWyOxKfMyhEPnEVu/zgMqSlUPila1pO0eE+ScSiME7oHPcsH2/FwaMhr6HgnRLPeSNHX0cTJipcXtehuKgHbppcUoZOc0z3tE9QXsGZ9qG7WVHbNZVaM+VxtY3z7dmJyjKD8m/IqK7YWryy5RZHtapiVi0wbRnCEyLg8GOUrmtISwzNTkYmxhxBgHJphk+dDkxn1KkZUlJO2QkzIfm7y4Sp7zqclfN8hbvmhy62Y5oGLlbXfmU1EFJFNJEWp5xNQP9YWZKjuZeZeyXphjvZpCJkl+i7gMysPaHgEtOpTGqj/zou2CkCIwJjBO8DfEk4NRMUId2sGrttZ7PN9jRQNyK1EKha5fIEqlXVJFb0/xjS7RptdOaaPQn2SWpFedVR7YvyWMoGE1QGeXpo5dUUhgiiyGexjlnhcXqKDNV9oDcNyJqXFWqZrqGvLMR0N5Trvc4QN8ItS+av9OWG43HF8KU8xwCQYMXuRyYfBlOJaXfdL/wFDJ/WhXCGHtAXLjnicQ0ZRUSCB9tz/zKcdDIdNhzylslPQNjm9kviVYmj8MEReMnnPAJrQOhJopm0shmikmAtgjxb18aHLjPqXMyhKSdsjJcz42eXGVvOVTk79ukEO+aHLrZuxdjgpyiI4E72ZTfEtGssuDhN8ZzMOa87RBHDR26qDbmUpJSYH8Viw0hqYVXQ9fYy2aluCRIAmyv3CgNT/cLEXFiPdkYrgVo6pcCj3QC4K2UpzkyGZSeMbqOwMGJ2AqTLTi0j0CnGZldpUEaSLAYeDPTaqH7oYawc3FsV5TiutacXvZonZ8lH7WFWrDS5udJtHpw/dE9bE0+336/IBXkFVsyD9Mt0tu7zh/xtoZJm2li4v2r2eLb4LWPwMX3hJZCzAxWaZzYFBeqnfWKtPgp7A5HssaM+8BdAZ0MUaJ8Gi5pAgR1pYrNUBtXHWay7xwtE5mEebSzNhuao2KoAwBVyuZucSKCCiLjkesRSJz7KCqhghc1cVmWQ9fYW8a4YU+H3IN4N71uHoVLJ/x49WR1ac4dWpd8Ipp3f0uChbel7UY7NXLcC2GRjbbhlY865UoJZ32JVp3IHEyXHdBZntiVxb4RSb/N1UlP0Cm2SR0zBcgprSq3vPXqhuDeGJxfUj2mh3qqiKxHHGZZF0oCVn0oSlL0jQ/YpKlNXU6rpRaVIYWWyAwBA3wbIrFhlh0RtyOJg+resUqyNvAoJrFbJGtwkuqdcmJTMuao+wTkfoBHRNvNGshd4Ulnltp03b+QMqs9e3K8lTyDXClAuCoKd2cBA6cx0MXXBq6ssL58G6G12W+kDsEFNWHbASrOBm6rgwzjFHN7dNTLlrLOKqsj2KuRscIdgs6UIpJpSqN0usoKVVhsd41NVAC0n0nQ7uz5hVwKkUCi5X3+4R2IbPpgLWd1mxxYKPLHVbegfRV1KMIMFllKo6SOrc9UwA+hrkdzAhQAfYp6V5W3EcMnxeYxb7HF2rZ4PfUV0gNOhCfYja5o1YH/KKOjJNsVKzEK8Eoq76ppHW2iPuML4aKFlphy/H+UGgkb0vFQgCmi1KD8C4w3gRQ7Ldp+NiI+tj8EOl6k4QNKQA83Ziw6WytvBxUldPArphyojZTUsY5qcfdnkqtqd63M85qnmsmCvaVFjm9XWMpzkcwkg7m+AtkVAyNb6vveOPU4nm+e1xryBIrp48TFWyHYsMW0czOiSb2Q2p9QhVnFQTeMnRiN7TH13zzZtH4taSnEYPc7/Ewru6YwMtcXRnJKLn2SEQVJY3ePPOZcrcc5xFx306FNvLY4xGTIxh+IIyMdlh4aU/Apt2/GNvT4GIVtTOmEVzEattxzOOTaLIBaVx2qZI4La+c5JjwPEgkB7hstuSgunLnTJVmJiHUp11swGbThZOi1vbATVVn+WkQD4u04CFmF7RvcsV6+aAYUTNpT90aXpZ1vozLLdH/sHQG7aNSnvGM4bug4DhcwZQp17jEARFmIK2CH+RMU/QFxUHkOQOyau+DyHIayW6vckxQOSidk2E5eJCID4UXMR3l7MIQ2V8NWt0/RYt3NJSsPkWgMInWHFxacVIFyKQlaL/DRsKI/RaIl+9cv31r4RpiBGNTFuNBuDNcRKM8XfaBEgSg+tZMhgfsNjGCoPV9OOL84VSCSIifATtqO7z7AGjuzYxu7nedXB/LGkmYFFK+E180zC5l+c+1ofd8kqTjWJHwAQktjo3mH5ZKUT7N3gaQKcDzUV7Vgxh9OhyLW95FiUIuNznTfr7QArtr+o0pvCpQcqu6pXjqO242rhWliYq5jonUhofmm5SFBc1TILU38yzvZB53VF2HSMu3OoqkTyqVB43FfNrPafw6PNQ9C57/Svtv0y0ld9LXgT9F8v5H8h1ZUl/6g/vVp+VG+t+i+D7c1KW3SRN2Wcm2eaklRAAii7mQLNXCsBTyqav+V4sIPSVo8WQRsn1u5cVMNXEmEgJLqc8xUIpP2/0W+YCInsdQT0/7pvZrqS6hGfRB/vouUHbFd2u0vvXZDZj/vSMjtg+1v7H8n1/FK/d7wd+vFcdvEf5fyY/p6sr/7hDUliaZdXFH04PJzBOtMNH523apYOsYOg9Bzz9kkWXGG2juh2E99jclffJoCq6d1FH2k6T903Rlt+rtpE2mmmTRjhI3KP1i4gOdRf9Ol7zYU9CnSzckLN8GN8It/PLyUAKslFPCB4N7ECCJKWgXODmBufrtukJ/nqHo1RySLDSnkkWiA/D1CoXRPI1eprNVymOwwaEB1aDuBYWiVv9EulAgXZSGBvJL3qqbpg7iQr+4dpTDpPBnQAp+zc8UhgrTI1cL7/i4l0BFaCbD4Nhf9sOVcdBvKPzmrGt2jFTMZsV5joejNBr5LLL+KFBAA3mw0N1bCh6BU7DqK+A8eFT6KlVkXZVkJ1z0pguNV0IlbFxx5UWUgk2lFSoppgSfaeEW0wAUVh2n60xi/Gx8VXOHUv0bSjgsHekYwMb0GzsvM/CbYcav8NFtKJ1YswxRuNzdx23wWBzVgq+SPIfZcDxBbtt7uS1NRcWRY+JgS7U9LqyAs9dcMY8n9rCZqmcfab/F5T5bWQUW7BgUW9XpZRpRpYQjY5mx8xlW/0Uk0zA/oEFOIwGD0iiSH9NLhLES3KVUppi8npu713zis8AukWdDzDqPJcYpt/QUpTRbLVB0oJ++QUTyhIS+JpNwEr6YKchpXKqWO6zhksC9DxmE6kkzC5xXhToz01rhQWgA1A/NoF77dcAzuyVMb34VbWUpILyaMoHhTsaNQ+3E/D8AgmLC20n5sL/AXmsnuxF17eA1bmp0d0qIDRIJK7fIiDLk1GLD1FqrR1onkZVjD57pQirD5TEo0sWh/Rkxq5nMRrdj0iICELYG7A3oKdxsFdmzPJLlyJ0hSExyY2U5QgzgEOA6Wr3SriBegvuA+JPXryJFBPiZN9/y9LPGX7ExPH0ys3nxJNb2l+TtmpqifK4ykWYd98Wf32GyMFxqNeFwisjPmpaOO1Ad/KTSFP6cPUmytCVA66Wz9MAOacOcXbp3wOJyc7cvUSXSvfrJ2SFoW/3fp46oEK4b1w4pF6ZRO/9JIqsI5SMgGW9L+mJwnOcJ0FoUjyoJHEYPWuEEvkPqQavEoghFREghkiARIUUkQn74RF3/iD5nCqoQFWu1XjUo4BxQP666+Mz0KLLryhY7TR9eCVHwXnrZ+uIEPmlwyfJ84wQ8QXH4KO5up3+JZYWNaWH3cLsBGD3IQnwVEIXKL+HFf31TkMSNlnJbWGQW71oBGjblaWf26VhpZ3Dz3myJZ9Jgv4BC2hlR6eWSGkYZ0mhXA3cjVpQEEW3yyszyuTMrt8nXWaQTmh0f+Fg1lfQpLvGxqvN6Dg7Yn9PnAzbuTMreAYrc2SRWCLStDNogqx6Ih1uJeT5+Ig4q5rBlCwxpgNggelyjOUMnCR4n5kkP41T3VkXMP5ZFA1aLg3RoUUEvA3yYMybY/+31k7WCZyzO29MrdFFydhgoyLZT+8T/XlJEBSmip9MqEO2GVnYQSRzUlkJrI3baiJIUYryeEMNLNVMmrQbZF2RlO0QEVjb47voymXeI7Hh10E7ilI9aHq3/XxrLldXo6whkVsyfyv/VxL1uaHzfeH2KiQb8HdXEoLZYEA4lHNcJs1dy/OaMUGUC6NATKT0ZtxtM1y6fHWa20cjo+wv7U3uRYdOhGXPGjiKaNS1ezEIlvn3n2HN212Fne/4RoJaANIFewAC2a09tADCE1rK6nk22cVa2Std9V2KDDhOQ3AKsoRk5OnPi8r/eUeRBJ6V2JNdSorIICR8LhzLQSPNaGi0o2YaKUjV9Y0GiSao1mn8Gvp9WEnZ7bNC3OsDzgfRGlxB1mhRTglDw8UyoMSyHpqQGX4QbrzJQ17bArJEmuNl4MXatXvW/o49+F5l8OA2mqlDXiwOb0WhRoJYU4LqS9WjazzWXS/M1j7CSFJfoUYbLPA0JgMAZp2BFuh5JvLpFig/IkJWlpCVWjYDoUn01JruQRQVNnfHgjnxbjw6uiSRd4E1PNHfunIK0axlS/X55RH8Bfq2gxjBUA1u3mMZ5wIgHljSSLzuWc3Vjpfw/QBJ2J+rc+F0iOdOJTogpfX+F3S2UW/n3nEAw9UEkZdc7DdooWlaCRUYA188RvMV4rLhz1ZgWBK2RpeEAtTyp4EJJkahwRWG5/5UNYYqS2ufDjVsqP0Rp6HSHCWK8ntMTYIRllaWSURep65rsFwMmh2N40p7bRma/846bTAnbDlBn22tprh2qtSIZonxb9jDbcjcZaLq9gweTUEB/geGDJJCBKIYkJmkwwMv7OdUjfrIiMgCnn4Azgj1TB+N/R7QEWMIdzFV1sCRD5yNrYAZrsX16NuCcsR0RNh1Zrn2HeA5ylDrkAPZ+GX+mWEbmBxJBg9pqoTQDOBaKpXMuCPQMa3x7oApQtJUonIt2QIJo0xz9VEMd1giBgospcJ3RfaEyg/80qH65Mm7HZjq5rS/tuJDggB5Q3XJcSwfoWMAFj19XsapgtBJpgPCmCeZmdtYGnI1HtnEOVGBIxejL04pO0Hza/dlA0plrWGVqkgtQiKR/aDf43QYsD9zrwfKYsopKADNYHRs8Ep0CtGHRkmiPHVo9wfnFxrlKn2pASGAFkYlhXII574jzlS7QESHTYuXlyveFsGJhEDchFAOpcPHuGX4kF9EKqByfyj5TkXp4iA2tYsccDYWz7D/kA4Lx1VDTrWASQkIMQGR27xL2PGsnPe0eabyKJEJy7gbPBkR7a/LEApahNQdyB0FCWNOlVwANst3g+rVM+iEbXJw7I30MKYd2vwolLNCBFOsS6TkgFjtL5xaP5oMF9blxv6r5nzFK57avDTQWuVFV0XMpyjRYAkswxEKYHsdJCpUwoRi9XgZ26PicqN7qwBdHHkxNApWqwZ6Uib+EnnL3lguqynMQvdTbSHBiRguSEIWbRTvyGik22wDBKU7eaXRNgy5XSragbcF4EMn6crenmzmy2MacLSqt5u0KmdCenfzuv+V5TQJdgtAHFGvoDXuC2LgZA7eD/m9jZxx4TUrMTYpLxabGuV7IGpVjAvk6tMTc2xvG+aCme3eZ+wd33C7iW3PH5DIt3rzG4hzwvWUktopbAqLqYKQY5KoA76VEtU2/xQG0gU4iEmAxE9usjOzt9PDuzUOOMOokBFVH+wAdjm3LwiOsoKosRfpZENiDTTleuNeQwW5Hya+LQqJnfDDBvRBtST+wto//VKebWjeDWWQ0/X0zDPRIh+r0W8LsYSTOeB4blV8MHCGpcEt21i8EDote1HaEEFq0OnITn5bRSqgbEVewMKJ6zY9YyN7O9XqjCdcdWCHE4YQSmGOLxUIowo90tPvtCeqPnCUg7ofLKbxRaMOqAN8Cp3mS1weaHKeErWOp0Arvw8WbwiYTyRyldWNlZ1LsL0bR0yaM9j5nYONwY19W7awdmeO85geHECOn+vi5Cuah+UU1eF3kVASgp4V2oEujfidM6+xKto3wPjD5Xl+MkZ2EmAWlCEsnJriSfErAp5AaSCxtZDyIcN2Q+P/QhfoTOmac4KnjRVXwbFRsgVO3PvxToHF7e5H++ooymu7IeAPLXsJoHHnC18AwXYlm6bads5KffGXsbUU3gqJwOl1/gZdeEsxcrqBuRapRP/qcI0HxIooRhnIH7KGS1Z772eV1GXWPSiksonxTxmM18Z8ly6YO1GLGIoFThiBwPTNtoarpGzCQuplgtf+G5Smj+X0imRb1mQkTk30E2wmO4TqC5Z6/YopDT+tcUy6Yl52tBhFJ9WmOwUGsoyjcNsjzKoMaXEjjliWQcjbG6G5nXVUmLWXzMRusO/XVrYDwK8Wip3aKMGBJzLNUgvKW3k4VXSGm/95efjgECz3N1hfSGZZf9PEgyy9HQd0sJJR0gZXVvgOkavvM1WBsfEaQVaBJaewXrurC02hrCKLqs8EZjHEZWqhVnm63eJkvJrozYo5b5Xqyaabx7wRlzkgyFNpTdiQNRqFP6N8lbqwCxpNhULx+5orgmRbBugfwn37JZUGK5d6M2rccHIrs19iAD4R30pheXQmOxi6RAd6q32WiChreWbNM7CLBSEjEUEopaDQPhJqz2tTMwSmvV0OAKSWkJQLAMTHTkEZzXXETVNzHwjiPNI9xU9UJBqwclaaoAjecV7v0DL9bBRHeokyWL5q3xselY42AUtVMFPJR6hbMGqNBEulKbaeiZHEivKJTngb0FHWUiQLSNp0SYNhv4g873iNCmLARLREEdyYY3Nb74o+Pu/xDTAhK2oXo+VS8QaQ4NQ6xHS8YKgEAz1I6FakVX+Vp+c93mXZOuexhKrC3IFlJzkhqj10O27MUDktgbf58e4F7kBwhJtcpyEDjzViwwloJuI9T+ab4P6Z9mcX6aBTfLKdRDlOUYwZuZT6zZJU7HRd4YYQ4vztovOezLAxoZMR9pSiyERx1bjf6gtxgcWImgXHBZh6MRyC6Eaq88wbstNNyUh7VWhAQcAULzvevGkGr8no3tpeXYoWOgrk3+DlVHKYwPI3BASK9J/dRqmmOCw9AbTyczz3AiL6yn+BLJyQMi2dn+c/uPrl17hML5YHIKmpcCKDNye8GIA9zBKc8LB9VlKZRSu/pTOvzak7DdH2iJWBBfwI8dfmAagYRBsiryy0tiO4Qis96X/692EjUFqekwoWaSOUnqnpV2xlXUXwCJHl6wcZYkIjKJQNgDYbWbJ+B2fjD2FyQNcATUdzfBUmDK6Siobt+AXIXMl8WX0CWcj9WG0AYa3LiD8YcDwFqyyOkU4lRQjjGdZ6PbvgWtGGamu+JxQ/PZXox/jd4+4M0Or+/+VsIgJ6dGGyyj5RxC2ItDC48WAJZkGADdfP2AlBR3esPptRnNDXdLIovfl7Tzi0w3RUYSj0GMICp8rdlkBaOKe52VAi7SB+MKmVjfOjDa3ukNWkHA5g6egQGqDwnuGdLCvtDvExcGfvw67rDsZiGEN7dUdPT1PRG47VFx8gkfaxFUqcKzFAkUCMX/v4bX3fIU7PezSY8iBQbrBylVcu2SITgErRpTNuXOPccef4QcKRS+m6SSVfufHD+ITi2oql4X5uv4YEJFhQbC7GLeRqINanrMb7L4bno507MBrxy260loCm2fv1iSfkFwDFeMLCGyj9t8KW0/pkjUf2uQh3mUPMqNv2cwDbUamqzhr/5WRhUApccZRpPHxzCc2t7wD/Ndb4Ni0M8nu2VfsV+k3xEoDSIsUn7W+3L8oyPljcuXAyWrIAJGPJq0YD/0FBIX3BqS/2kgU4Wz2PbmatZKFPPWxtbs6z+mmPwWKqt507n+mmidTZM6+R8Jm20hEC+7++uJwCVW5rAX/AfoyKPR37Mbf3xuRQEkkTtGoI03lSes82f/y1TkwQyy4EFp3aX9H9N/7AkdBCgm7RGVIk0uy65WgzbTmeH5SDRmG9X2V/E2NT/SjPJ63JOKWajSDec06HWhXFxbsN1DZYoYqNRDI+BsWF0ZdymAxky2VcjP5krEHT8PPRQBfhpH7fJo73xc/6z4Vfc3BfL719697P8QCh3+jTPYqrGoGT5pU6b36gZxJWAAEesA93XuzDuXVTA1A1GSm/AF/apYT5osAxMKNc8Et2gecCrzJG0JOg9qISTeIcUzerETKVYoHhct4KRtDZFuKar+AWbBgOLNcvP9VJ5ntSHqGzey5Dyiv6z8BiPXMNL+GefQPJhEUDevZZ6lDeOOD55NBQvO/Z+LmGY250XEvYadwuaVBjbt58D3OjSvnYBPlpYDNl1jRXr21uWM5qfXM2cWe72TRaAVj/uFvdeP4lDo8H1RhZBjLra1WILkVF5x3wi/8HWb+5iK5Lke/5EiGtHX7jxHDbQbzx+bILcnX6IhxdsEyAIl0GijUjxeZ1j8MUlC9o7nUoWao+bvzD3XLTDVMseDnP0RDTcFT8cDLtr6Ru1k2Pv7rCcpx1XfafYjxNPQfbwR+/sA7FilLbX8wrwblMtx+kIgn6Cb56FSrCA7p14QIE6lNhrXKI/lHNXNCnfPg1DbD0gElT5Amu8laTG2I4pK4hfF4wQ7CEczyINrHmeEs9kLw5boLO4NQPWqwPa+DLcD1NRyIlenLOLI1IqZZFe8DmNqPj6UIvCOWLJnLQE0YnJLLtwflQUZTz3748zOj5ne2QdCvqd49sQ39MM0WYN1PQxLkqUPR8LOU8C55BBx64+aZIRDaRYf9GqsassK9QtYFryI5zba+Yh2xpxbWe5lw5JCN6jXIS1CoRsT5A8fuIMn7RZUDtbo3MO+PLkrOvNgEEHIAhGKwG2kJ16oIGds4w3v+j0GXaT40x2Ya3owulghXOwf0coZZ47BeyPW2mV0vWfZEjr8w/bac/vN1vvT2gKC2dDSGKHl7h7Gi049M89CHIaI4njPN/j34GH1BKHuCNihHsXuGP7cKI9uyWPGn92s/n26wk74Ehfy3yK3n8e5pmTeXLyZUKG+n25c4a6zfDvFWtTFdbkH15yc9TcHWUwMQYH33wsabRSbTsl/oDxKbyQaAA/4nWL3E+ULK/kJT53mOPrTknXJuznezJbw9HPu4gQO532BFfAZ/7h0KnIMn+3VDKeETrWPMdBBtgLZcQXlAsr5NyUcFPJJvbyXuOeccv3plf867DwqvJ1Kd6S09tsEMLdNE9y9c4Z7cox2HYZOPHvQS+BLXD35z0cjoQb/z1+2TbgOGc7tDKV8G1cVyJhIxuDCGHJa6BbZ0SwTIbui0NtPeRhYnOveUFBZ40xRTqsRCP+9KY3cGzYjLMLeK6rPWeXAystU2koubkrxmwJfG7zIMmbjCRrGk8PN0Kt2VK0/azjv5L+fZeoagqFdKmsvC0wLiPM50VvUa5kCdGdRdrBOqmRERt8adSjNibLx/uJerT5Q7t/NHXzzldmbwCFjwU2WJpxB4YPwS179KyhrYKRII/FyA1xvjFiE5m9ixW1lhqHItggPpNnPl5N+/jYqfsR67LJwtxZOxDlbiesquDMwtJwiyf0AbC8W4PgMuadDHtGXFDa/PAow1lG6BnwHRk6GamR+ZPXz5lGDKWKyhOoP6b6iQ9KFq/5QzQI4YJlQT2Y0JxmHYJqLc97FhSmOfCCCR3AKbVnZnmnOFKkh0SlG2rwE8pjTktcso/ivc+itPNfbOAd+wh+BV7qoFMaqFdAZdxcgIt7fIZL/cduzX65TDsyKlozxP2yTkAKZEu2KWDd1Hu50SySg39COkFQVzoK44NEVRviVEdJplKB26LNL6+NRpS2sZTaqju3Y44WtpiQe7ZHWMH28tTO9ESkqF0mp+Cq6+z0WOnaqm/x4s0sJxTPvAwIqBkgz3sJWQSBIpcYhAZy/MWYopiy+sG61rfaF7I5pZmQ6IeWyuLcHVRpTJNHNrLw4qM0jH4x/pXmP15t/+UWERYWxXuAYrGvzN31WghFMRaFJJxYlqEqzSCEHKE6ScBVfGHZSLHY9xfVlIS8MuKyYK+YWZWc251WV0sNan7R2lmjjCdLmu/tu0Tb+IVmzbLyQ1qNhYyQQhphk6XbqnxIVB9lWbRO7Ne2artxx+bMKSsMkWSpqIkB2tqb2tO0zq56kfQ4/aKxhbcdpySv3pS2WUiale2VVx1/qVaYYWwe7R7C04a0eSsv7pUyL91yVcKWzAQMTmfI62m1CIvy5zp0tljVwVawD0R0INawbizFkkKztPAGf0hRvkEHTbM6jE+XNlD48jFYRvhDL2bhIpMFI3teZ30HkyMD+zE0R9YUziuUEYia/WYt1vGFV+lk7k7gOLSgth9CRiljUy89R7zZPNhKl1e90D6MbNv95mAjtkoPmaAerwoN8maF3YrvDIDT24W/u4EvxNxp1i0p/zXDimdxcKk7USWn9DXK7aSw0pwZkGoM6ON6UlzUEdgauwu1Z9EdViQRuNKH6ZiRvBlh888Amro09P44mPBgt6NhWmVz+eCuD4g/9CZQHnbFhQsQLuWeOyf7P/ZyZpz+/h+nwXpM8sm6jlpgTfxThyMV2dI/HS3DJyxyeN8dW2gobucbw05Da037tnXZpZ3L2m7d5qldPlnfcY/R/7MXX+yZ1yARA1dPv2vqkMdksLVAvgNVyFMidMzbEuWW14G+YyYN96vYzduiYQ16X75fBW/ZsoTA3dW5Bkri5jeOG8Gz33SvtS678zcHd1Y+pSSerOeAYN+MhWwFEUhb+Uf+2Gb9mWprLeybD0CDnVs+6MlZOXIFTplT5u5Nyu0DLnbxwNu0X2dd5GnADkEzAirUekCC1m7MgoPigEMAgYKNoClJWuGHjAYNE//9TO7+nbXO8lu5iaIA9JSkoXJ6bAgqksyYVgw/cVqtpkoBvGMyh9Jx6MRca8/47i0PZinBGidp/YWIUkIXbGUFSy/sE6YZ+4zXaUQ+2djxBmLM1O6NhL8LKBWGjrdUpCDsCxua9TyWq9L7IF8Vd3lRuOhjVMitmmOTZGbvolPb6LcF45dgs5yhkqaYb4eixIT+lKbR4nDMgdcpaHJgPr6mXbxFGk8AJsnCBwl6Sl9sg/I+zRsud4jwp4iyVBkAOtZeiZUNKoiqwo/3zkYmlOsEmQ3bkM/Eaog7KUTfE9WkK9YTOZxTW7Pp+3FGnDaXT9Z53CfilGaHr2Tj6AWGFntB/VWRoiRfFMU812cxisdILfuDRPENjgTHykyE2tqx5cOpG2X65TiDp1X5ZH2HyrGBNn0cuj5yVnvTXq1ggltUT/YIZ4sROApjAq4Dv9uMyvD7xFcBIZEJzH16ifQ5EmHiFzMH1IudfrqTkDc7SI789SXXsLAtT+4/Edb4q2+X9MTplu3+Ic+/IoovhPzi2L+rLNn2weWGPO3Sn5nD0ZgS/N9p2e9JJk69DznR91uQv1IT8kHrhvRvsdKb0/nX88CCoX8P+SlHwjsprFA0obqtqlKweYZ8BMwRMdSnqaYq/ttjNb/+X2DrsJFzNgPS8sZuvX6TVZriLKPM06bWOTIB1hHVgIsvCErTjDsGcw/VQzCTM1IeMja0sMWNB8shUYJFEi554r3gFklO6EYAM8cM1s0opBVofv4xHZbBZdODOwFG2lHoBmtdP+CzPMOTlDiY0lGK1cJiMxBrQpOMmqf/Hh2M27a4iLhGGladSAUPXzqIzh5kI1GKla8eI4gNbftzw0Y8q6Ph3z8pFlFD+zWu4Iv1HG1dSS8x9JTBIu+kP78QLeyr+dywjdGgSOzV9w8u8ruuujAHgr575UIghXRCzBXeAV16xpiiPFr6PFlglVlq+GErw0/BmAOyVzbYQmjaCc3n8tdCg2yhGS9++mMIoQ3hm42M+IFHvJgqxPS4akv/F8bLwgC7AP27NOXrCRcCuBBqdPRP0jU0LwvjdJq6MB05P16M8IrIRxEfLpRWW8Z/YFU/x9zBI3MHYiOLKmRMfXm5OBRGEi+jtyjc4QbuKGUdtpfGENZZzHVc7aJVvuCitAB0ZFopCqLwPCw9f3mE4qJ5e2Jc34lGkkM3htrxQmuhwUM14w+AXmGS6QB6sihVg3l2Mszfh6FXMmR6OHw1mQRi7YOTktHWS/mwPPa+2yceAUXBgkwycVLUIMWkqatH6ryqlN87mWiLYWS8WlB9/YOxvTamzllLY8VD4ph9Ow12Qp2Do4lQIlpbMmlUWWdVZ4lwKy5MBJAMHkVh25/QbSluO7RaC1x3g5EiolYHbv0QmQS8vT17isEuQJmDGCKogu6ZXhH+U4sC5owgl5rSW7te+j2Tnr1JGcLGc12q0+ylkBRivrSmmMWsmdKC4vRqNQAQ2ULgjAHCn1b6mwKiJgXq4paD1CQweu8zQArjBdglwFH/JiEn/G+Fdy9MJWDShF5hzRBdzZu8CHKh9uJ4A8Dei6+HH/H7q8rD4VhcLLy87tNdmPxOOZNvTW+9ZeIu3h3OCIxoeUSofuKJwOIQT6RCQJsgY1khN0U4YR2dtxqApOv68eH6z6cz7d2LLP5TRTumMcueUPhTXzNIpTEbQOkYQeKcodW/UMJB+so4cNiLrw7WOEEW9hM2eoMOnz9bxoSuiJj271lBpryrRN3uw62KsZquBnG321sPjBldLbK6S5D0lmYv8zD7vvN86dMI+2ekmhC5A70tDHrln/6QPli7svGXrT/13nt06eidk7cGb4yMXPrtivks4VU1LLuWRdNLk8J/EfCvjFulI43s9XuENcGTm1DHkvnjBH8/WZ4SG7kzzCVTwpjjmMPnaHM0xdTFsJi8GEvRFCz1RklCwkaT8txN/ysgN1F/KXIQjmboWepzoppdUQKr/ZeO5g+1IpF1/mBIbaFBh5DM+QHFsOz/SIH5c5nGaEASn8CB3/ea0bL/8sF/fj6DYIVcnuKBhf/ygT8kW/o/W0ZfTY34aC8VPOv8lfXiHuH/8tH+kbimQmyqkCPhUkBIG09yi2T+0qYr6LjiyHsziAfrqCTs0D8yLPtOibBUrYFLKUq1Ywt1mSrX+eU943bVNOVGsMTfqN/Ff0OYDhJ6ZaxLBEQYc8k8lsy2JH+sAhrnktGeR9ggF45prIvFJ3p229V7jJ/ryqzJnTheJ0uAYbF70yrlP8mB+Lui7sIqMvENjTt+gzD1LXer3vEtSQf1TtgJ3Gu0omTQF7vgp+MeyHt8tTxgy9txRec1PnMxarUzkzLhqlbkHqdkkFjtnYd5iq3GrqHrQuRYAMbH6ZHvSjqJEdifEeUe9GVqJtRjL/7KBLw3LCUWulpyMFr2re46CeEFmw06idLS8URjCYitW3lNS1hSr3R9PrDFlzBD4Iu4e+7nhEOUSCLfS387SFii9uVnKwIriPlxF3/mZcOBKWwBiRZZMxx3j9Y4Vag1Hq0IjSefWbiezUhUnrxmnW9YavLzbZlkafszlQofohZy7lVVzCDKi4EAbtDGD4gH/KKjbNKx7lSe3/ZjoC45z6Ac5C02ufBx55NIimEZjDWUUUTZcwzZ2YG7YjjURhFRP6FCZUUL5vtmAMBzf81HeZmiF0B9wONqv7fIgCdVFw7iB3l3aNkY+nL6WrgweuV4+6BzBz73wYepKhpE9CJ8rZUbv/cJf00jm07fFXDsL6rHRakbb+wcmYbuLEq79cfBe0OqdaHuMky6JlE49iKPMCfefU2Nc4cQbTeSVO5hUnjpfGTzLUJUpKH1tfQ2fz7zHFvhzqTuLEmVpHRLWemetFX+Ha/PAxrp+r83ZiEX9TdfX4NczsaqvJlNeo0S9OXiGVAxu+RRIdvZOSGrichM+Em2GhG1FeEaVa+Mxui5pXiPhEpDzJjnXcw2MZ9lRYoB00K+wzb0vU7xDgmPmM8lSABcb0tJzSwOxYkrd11K2mcbB/1QU1i4sTvq4Rf1njlu7sT0ZEI6iaiP+6cEhrzLVOZ/4POzKmTihwUhZ6mBDvJcJhHXOK2iBP7O2UzOG+irEvEGCuWIKmE4d1FVJFBUjDAsXwFAKOe6xK394ngPK6xWf/JDl5+LEt5W0o0FXxiZSzc0PbtuR0pG6B+dO2qd22a/XEiPsh64xxc/Vd5jea1yJb1BuzLUn8wZvNs1+wK1kYLvSaiPmP6tluTZR6AkKh7YRmRaMdutTCyC/LgblRVN+gGY5LqXQtJumAybxkTWK9UR5GKqUjuCGtleLMb2dVOKUSqHIxK3UX2mYHWoLuc2QN+MEYceC4QnzrMo+dqulRyLpTQzAZV6SUEuUox4bt1Wl9pFwlClTQEZV3KbOBvFOhnKWVWrG4oIGxQF/sNpCL8HR8rZsdozaY2U4aWMMsRfgBOXEch2Og8/CqY4RoenoJo5mMmT0ReI7Ilk1X7RzXOQbzlbDeMEV7aDWU0UD1c7IlPKMbj1oQb3+ZtjNSeeOFKB8ycpRKbNSIYkJznH8mJS16ZskzTFKFB3Boj8aZXaPl7n9HPF3fTOE70Obvg7ZZKHQgAOMtHxKOJMUQHSMfE1AQHWcLB7MM4hFt5BDBVBeIWMY3qLNgokPO2VnSEkB7y938Z0S3Tgoz40DlrcCkjeV+rh0SFLS8RIyVBncqU5p4Az9b1wcKyR4L+BtZjchkvj3qLCIAtnkdBxlo22tGAvp1Uv0tZLYG5GqElFRISWS/+xQqUoKr1CFJ6ehqllmTDJUdBoTpA01wzbi0uZHyFplvOu8GJZ94VparZ340sb363t2eOtraQV6Gx6PEIR/ItFvhIMJFGDpVKoyofeauvw9pmT9aReGJuXV8Ehq0uOr+FGwShsx4uM2jz3FI3qzpUxpnhL0y7h/b5vqN3C6GHFCvcjddVt5o1xQW6xflm5vakM/HcPvB5uxfYudgz8+tdHN2PjlrXXbxbx9dYxgvIWZU6P4+8fIOzRaBMbFWU624Jlf01Dn8v9R443MLxwnca68CUUMdndwkiBK5Y58nmh1xKRpRUdbtCOEdyXKqkbHO0ut2OrP9KvAPlb0NtzLzvkga0WmyIyg3WdqWjfjF2hh9m+OHqA9clt7QUtXX/AJGS2j7yfmYUhxjjTXaIyj65S9OWZ9PJr3vGI0r2byX4KvEy2xkeKUiwWrn6NNe3JujqCsWtNx8NNRfF1daSDtELGTI7lyYWxua4I9RWQSKbajJLJsBTsOUPpIbA+GtSqyqIgMkXPxZ3MORX7TbdeMs81ffzhnTl+/bFGKwmUxkO8pldoOCrE5USe5JU7caWk8jkdRDrFtz8yZarYd8dI3JHlsYek/RsQBonZb3d7emcUZPb3RpY57pekyck1YR6qZvPliB/XH+o0W+p6YaVS/GzHwGvVBi6wWYiN5RuGojd4ZKhzRMZDR6p3jFGifLAf6qvWiAa3aLJ8SG9+FVR4kixRygR8I1qnrXS13ShzXxNQKtyMLD8GVs37wVwfATYiQZ9WeKhwQmGMFTNRU5IaNjYR4XEZnBcFns05ctu/v5u+UV4vxGbWqOXClm2ITiMjulY184HF+/1UXxwduvxZGooAZ8Hub3kjIvJUjrN7z7dVR+Z8YgTCxHVXgdLbxrSFQgtDI8JwpzN153iFfJ48NhYfAB+JtRbzk1/FPXtzoDH9i4+HRN33YxWV+4+9DtdSbFbQKs3Ru9xhUn1/O6ehPG8A2EG2f7+OhbC80rE3y2oq2YJxoOeXezLvg9ZoLwwVqZa1RQtfAFar+REpz7qVz2SXdEAE6yDtYzSkOkXjShtSLbKvbIbFGPP352wfw9rGXrVh20l4evb6lfz+2oRUsg3MK7rDMWN7jjuJ6m+IRK9X2bgmSAqTaxwBXiujMplbUhMTr3wD9LlJRzVSV+usds2LmoEB18KiVzKRXE9uqGocUK90HZ2jNcdHDthWc13pPoWGiAyqn98uRB8frmLXweOLrlAqqcDijp5OcQgKl/opU0q1HyHdlZlhcbP+RZ/OujyB9qs2HvLwaisdNkbukn78SUMs+znIpyANqzZ7m9Qs8NSqUkHDUK6Zu8E+NN10Sb75VPrIP2liBucxE4aDxl+xTGuP1fDEsoyr4+sybglPL/TkpJF5cno4S+AaTzxLyI/7T18GXt6bOs9+F1rL345G3mPW3xG1QZeLpDLRGGQfq79pshLKnVeZ18M+iOin0TGd7UZMhlhX2zboKeUEO1eWJApLaJ9fLE5Cbf5SLTunsdNkUmnxccv7ZVwL3bkL+05Cb5T72IVx7YsNJYhuo5wq/qBypw2i81mwMEijOQIOvZ0m4trHjaBIdNQYB8jRVp3gVFWjxjBe3+ulVNNdsHSan92uu/OmzhGhVv+xoBu7zmvw1shcr67feoUWmp35CrQiSFpTdRO399ks0ybrlieYwjQvq7PidLKxzEPhFiKQigy9QMk8OvtxIo28u8zriI3FTI001MJms7EAbeCMLarM1xa309tY7kT7ctyoOKuUQKnVlPIhUGXCJ9hx9uRmQ+r0b6f08oo1E78EYiOz0+G2e73zYdO3SkivFmcxS1RyjdbR4DXk1vlUzMF0IW+AgteRMsSx4J094UV94nedE5vmgucVtsQSYu5jtX8fsQl4W5doJW3csjdIMY7R875GVdBGr4I9ZfuO6f4efa+TheszaaFVLGHHz1s87F48xsVE0XrV9EWEpRIjjZE9ah+O742yEjSNKXsvMkG8Kjp8RQpTFXAqPMvXbhJE7hB0XV4ty/Z1q9FcbrYYV86kXUJzjs/Oq9UNpKMuOlpS8cBE+773/8w33XKaOkHNTY4nt2RsvTGJe7835dWfkimtTzIl3YejnWjPg6fZJjb7hMREQyYpJu9LerMo9sqoHFXpWijE9ho6k+TFyrA0y/tfIrCyWMdkPwlbs+wQz3gyyh5sfIGJ9hYOKS7ZOI7HCG8wZk51k4aj6DempqjfLyy1WsyVkdWCrG5NVIbCmU+0RoZtPRrDs11cGKTiQ4TOuoEdq5pGhy2fn+7JDaQY2gYfNXJksd0TdAxtVRXa1tGU062LjLtmdAqPQU+igU7/u658KIzoEFNvHv478/He6PxS2DTa7RcAquLqvYOgSodphwQWSwVeBdzrDhKuqHODWiaJSrOW8gwSyjcrFJ6TMw9lmUYY8pgu0nWL5kdAiK4bB3Us5QRVDM288IItwGoq6B/UM6sO+1YKKwGXyFgRvj6rfUMDSXBj/FRJulygP042ZSd/uADunv/Cxitc8iThJFD+IUWaGXvhMk69i6dfy0J3ToLTRm602yeAWNMoHUZJKdjPnt0amtm0IVk3HleWHNGxUog3C0Z9SNiLrvcrgeve88lZpcAsUqojLsX1NSutWNzD5wwNncu1klfNBiFpzYROPtwdCCcPyAF3cdwThMyDvzUDSwX1XkEMRVabs/S4NUPsUiBQYWXxwqJhKQ6DjIqWg4hIAlCd9OWRbRmy4GZs6OOtjbUyHUOfsADWwAFLbGDZOfRoSE7LC0QR8GdcGUHQeS+xW8Ij6Z0kBdNRRZddYg3Ofm/Twm2ZZMCYITBid0PZz2kAj47SqLbcIapUj0Vv7QjjBOM0iuOc0nTYrw2JBPROorsCukLhL3wqZILXZ5Y/RnBIyZOXSxmLHK4AduOHmuFBh+pQKQFHfUX1ClYwNoAtfCeo1tviKjVKblbieTSnz41tlKkVK0RH5kIhDqh8aAUcnNxcGBu0HIAFI7xJnIlQaCHFmZ/xYLgSh0fRdhwbUv6haew50Rfbs3uStliIs0xuioQDtGWmkbBx6152ds+Z1WGVFCD+OAXSc22euCir1IuGHrty7+pUrqknR7NidDPkIq6zjgiE3P/u8q2X/YP0c4c2FGAMZj03h+tRBYkdhL39oxYZh2dMl3ZGNt96OGUadrfs0pa47qbbmhq165krJEWWLolJg2iv5Ob2Mrm4VErFTKpPHotRvD/WvGn3534eos7OsiDMZ7/xHIz+7EjhcoaPwbSxNPq7k7WTT39Ip5zHaRzZFFC5t21S6/k9XT2ZStELf9P0lElbcJg5cJUxDWD5Em7OGhSep65jrsbI3/S++DVMJRqjuFfm2lY6sHb0j+R0yoaf/wvW/pFg545q0LaxAvBIxi3bm3OdTDVnlKLvj9FrIdSZsz1F5tBz2BZOK2jxB0+/WvIO46M1bIzeanV9tKHxkdEbTt4dJzKHt2+ihV/0C7/SQJWo2fvawFrTIyzB2QmrsyHjDyEOrI+W+KQP9PIGd4WSiI3b+CRMQGfkVoFtB6Yahnhb7k4EPzLbCdPSvOjfJ41zLsXXMBm7WjlVlJgk7jidacAj4bSS2i24o61iQDO1dLD3W8uq/b6bCCVOEvMDJ+9NSlPIPJVOpkZRuQLqKfNzfR6Atr+IU63x9qiu/wRSelj4lNFbIIH9JXj2EnQk1er0+sOIVkbzRkP9jGKYiL06uRcU2KJ8WGvTtgxLItBsvK2xcboiPUeRnsryVuwhnD0jWGf6pR02K+SfSelNtGWAyB6rKrBX9l1UHce/AAOa6xdz/2zTVT5uRaap2CUwMqLfN/CcDN1XItPcNr1t8UeQG5rSAUkaiJKm3LjyJqn8IKmpp2oObwn+AjYP/9KeWiRhDvBnPLUe2R5rb6H0+M1o/mnD5GqMOgn5d/I0Td1ToWAv9/v9Sn446kJ+rxhNn/EJRTkGYZyc/jUi/slcksdJw8mhug+bszTaJcP4RBwJtZ+r5hs62SlXi90QQT6zb6WWqnl8ST2iw2qRRbrLc57LL9EzV5HKcZTtvhsh2snnGn/6hhR/JztjxNTDC6DFoi14j2frkKEylvPKZtpb2Ohy9IP8pmtRx4qeNHPutt9Gpk1se+2okutbQnify/ZcYv1pbSNaIbnkyjyNSkzIGbTadfE4obkInBrI0k5hk8qIyrXZyUoWh7pCThNPlBF/FTv+hBJq+wCPPPlVCxP4qkzPKO9wLeOpGzAVwnhfRzHsbDqs8DwRjcyJdElRpyChJEJWByxMdWCHgoBSqNMW6REoGSYtxV0qqR6oxfV4eaJnzFP6HdPVMhngc7MWTYTK1hbYu4cFCCJHx5tM479Fs+fiyZIR+53ASwdkZE3ckILtLSAnVPsVsAJdhdQmM2kxjy6XWEHFalQBH+tnXWrxvVpO6j6rsxtiXkiFaOSZldZVQRwYzVpwSTYgodFRocHcqT1BsjBbUlDPRgWVhwnFMkInxdqop4JRGJ+UVjnrOAE+TnXhXqrpnQ0nlVEC86OnosaWLHm9fxaFbaMOiem8Dk6YeYn5EcFHjhEpoY6+z8kxuNJ51qu+d7u8ebCAbbfRrrA68Zzm4eMaLUwb2ZpOPL0QXKFSTeIJqlt8Fo/TqMMgr2ljf4VP55nE7oYk/8eZrzeV6H9V0Eyw1vbvmWZrfPWFird/i4LHvK3Xj/df4dvuPcC2bLBlAzZ6dn71tH5y+lsalsBRDj7mwMS93x+3Xwcl7n6cIo9zcHecSzm47ma9q8/xuJ5tQwVScSixQ3mdYR9EBoukyVCnfOXPJ2fR3gdB8YtnXJmPKTSmhOtlA9khCtmXmPjQXS9IxE/O5axetdcohFaA48sgZyQlCkFp4gQcphIRbPHeRkmWloFZEuipSM8NLWtjUlev0nsY+ZSBifS5WF2CF/b174AAHNE3btUi+FT4P1on5sPuUQfi+FbXFMw7DW0YIm1FwOIpLCXwWTljZuPSTyiD81UEw0NMvKYqRC5SVeJp6x49pMpXJuXFLBD1iuMO+ZHScUjRqzdhjEZ5qlOkrImqSmb545xmc1aciPqbey1ur3KgIs+3mz/6KT0quZCibW3XIffxTBATiQT7qlNkc8qulX3pE09lVwJyhCVKIxrwKTzazl1rCu7/b82pAITWxpKxzwuIQtujx6zYs4TSy721Y4kOUJwZ08l1RE7gnMhhpWjipeHaBeENf3EUPHfh+O8dTj9uKabBm097Ea0BIZ2slhKXKoZGAr0s4jSRsBTnPN04fiEYk8PQqQUmSYYIUIVl9WmE+G/oGvuNmRbn39WGcVjJTCalEeFLe6ErKmVqlueREo2mMnWCsl1LSBZBGCUhrNnA/LuxEf01a9OKJMdyyrGQMYcaSWKqaT3uLwavoswOAba28oV+XUq6rhfNH/EOS2eKitHE1TI3g4swhKJuG+oWflR69kQxmXNKFgaIN1o89/fZLDrOO78D+GimOiI07h5U7blsUj2ogX1xlfgCFU5xZGiU0+zjxiXrH3TcMq+QU0hGtyQ3FtY7ZuPsWfg0cjX9zan2vIse8GkeMU6izeNYi3tljmlge34SeYcS5rJLT/dmhTzxya1AHbvw+h60BswCutVLsFdjf9aWldL6G/n18DigcXbY3ujnKBDhBKZUDWGT8SZwfAdAjw7f+rqLKHWBGzM3vm6QXO4rtfaHbUkryY/m5oN42X0qZivRD6awKAMcx8w/VarNdaLkGw+vFO3UKmDTyIzewFkKOmBLdWKLg0lAevHzi8h2FuJKuDaIiEw3JanCqWKSp0Y4axRi5YLEVgz2C5Jghjc04Da9IFTajI02P9tYICOMPkR2xl8Yzgd/ySFLrYE1Pbcnsi/v3NzK7sA9nJSt3q5vH+fB6OundpPrBkwFns9oyG4/aatz1SxkrTqyDG/W/KFoSxvrwiUFNXFlEzHac0NMbi+bxHFD6sZ5EWhLvtUIpqy3G8MtoxV7bfwl+KFeGf3mrnEIhA1naUCKCl6OtUf8KCuiohYRJMp7UOTuChlcXm2UwgOzzxzExsHEoi4KrcZtxSiPxK6pp2UhjMDEZNDUXA0gaNjLw4L+H5dblz9EgzaS1oOJ/yqOX2bD+61fhFO16JfOPqV+K6p9Knln1b+KzceDIGTjhTzJpzfsnsMzuffa3o1XJWXC+ZfyOZQkgsVwFBA6Q++jVIuFG79zZk7oHj9QqKDwU6nxkknMUtFi8+kVCdrsbrg/pZD60urnJBOTr2cq7sHNezWYE/l7rdWSzqfksm/dvH0xoKcTRRLgoKosq7SRvqw0KbA0KdyRbYnd+iEXLeP4qvNSz47KKO9j6501bodFvGSaXSc1c6iUrAwBQYBpUtA1XO+ktJncYkJO7MNtld4vJQ4BwqfIZPZ0PSmqSnQ+JQWZWqeJQJHkeh/Koa+bfZ/GNXvOFb6wVR5RG31km78GF15S7KTCRWkwP0N61olPB8l2kKMX2tIKX8r+JYo89OIX4yVmGI6f1demstoEbOpyrL24d0fcJI8tMsWh1GE53TRQBDEB7pG7Y8R3bGIuWGJ5ghHGJ61ezLST+whfOtVOkxlOQLbTOKFsI+CRZKFVzymo11ygtRBPocV2JUd/EUQKDJIvlOXk9ljRDYlPiguukuhdQK2iwwFGa0AFp2h2CODha5J5WkFSWDvGM31WYwHfVD1eLty6gkgYXpM8OqBx8ss2J2OMcB9YsiAMs/gTAvZoaQ49rxCmoU64RDKu7MFNVgdMRl3kGp8/osoVmqL8O7oHCSkdF05WuNaZczm2wTnO+6Mo/1RbfceP6fjXMlVHzoTjnBjNZ1QJPKCJvfovop3ZslRooH0SaqMwpKrC1ITiq5IV7ADyi9NKPGkyJYcdbD8NNuWQdBwRQcPXicgpUCoa7Qii0E3OhbUshNZrx0lA2wC5n0dwklShE9/vASwHJiSe0NVW1EmqorBqjnmtWhDShf54fC3DrU5U1cMIG0oJic5pOJU+utFCRQD9nhBN3gdXQMZeoLuz7EPbwMqE3AfkECHStG6B5xzszmLt6d1weZfbOXfEyTuM5bPSNia1Cfz6/0nu8TV5Cf/5xEuz8ix6kRyjq6Z2FtkXyUI9X6xNwt1gr3apVKwxXUTNR5lJ1vdYGJQ50yp+KE3juuMA+cXOTIpXnSkksbGfRO0xLgfM4K2waAUOaifZeJh4eab7vAdrd40omi1Whmv6DbigLiJF56EVQmzSPrJjU5MTzLgQ6/WP5tVCGp12Mm4+Kr7r5DYa7EwChwXvWW5oHsxfXIC9HmvddP/dcaVm55BFD5IGLaaMSUO7uDJPWlmTgoU4rgYjBQJxjHToHLy1jzXAo4nWqrWOcho35vVcJ4ZcXvedOi8QLsLnCnhhyA1LD5Bqwo53WNFLFYRFi32RXMil5aSWHfZuSgkYBTRtij4XAuZsF599ZJt2tgrj52rNrP5dwV6l4HgPMwaWhDxic8ISjzazb3vYA549kN55Rk2v/0n+po7kP7XGxTeudLaVuGaPiylMCEmioUJl54q1aB4323h/o0IiFgxlgU9FATkuKCbVu56zFjZAwHQFzN37vWJsy9UHnkS4IQV9cFivPOu3UGGPYiB47cT/p13Hg2ttcWRfmZ5KTxfsDIJbehml1iEX3q/4UEPjPJua4r8+UNdJjOEyDdpn1gMP4npOsazdKUJgVEiMSo3oKEch2nqIHrCW2HywhvB0P3G3akKaX+gAi6rmMeH4UEd1V5rhOpEYX4/a3uYKC0sc8UdOrXxtiHPwfiMVh8Qpgj5ukVqG/UssfNAhHbrvmEL5N4e+5aJtz1YtqyMxIPItx8zL6nhjRWKqfYPT48iB9McZsj3GJCbq5GiUf2EBteyQZO7kjfOAoR9aZr7TPDMAFz+AxoVI6b55GwL2xWNiswBNZW8WLDmAWlgbSQtlaBWPVUwR0uO2opaBYkBkkDMI2xvBIWqizi1hosit166nK4T2ktRVq0QtzwwFSdd/vsrXTFMxdt7zCWD8dzd37OdSvNWt75jIl0kOPSkF/bZp8SY5TZJh6AEh5TsadwWrGECpNCrwSolj4uuW578uGeIK0GaWRfxQIdMq2qql9frL715f8UZUDtQ1ENvTP21DpYo0qCAvry19dYiYYUhz1X/6EAN3Dwn0Ija8J4vP6m0N3YfNbFI/7/m0SJU79DE8OkgNLK+UkXrm+vUhgf5UCKePBFhZtNS2Ppu7A78f/kD4eb28XOQcYjQJk+O5wZv4ypxx5g9vTfpeiTFgemXYvWdDSPHp1sNCOPHeMZq0kifOKHT08UieKHTRc0d2mThQPclMbSOmP4GX418uVR0gpo2gtSC+pm7HT0XGxyHf9K9vu5hqRAbR5fi7AEv6WqrxR2k5wB5xpfqMTkVReznsOANiaKxW8yFIzcx3lxPCptD7MoMInDQ9+14iB+6jUwQaPV6P6Kmww3KZOSkROm87ygkiM1gwmNGPgvy2vSHY4LZYuYixKJiRXOWSmhv3s1GM4GWgJodMP79Q0uV1n4gxidLrgWCIsdykt6eNJRLdBL9TUqsaVaeC86l9aTCCK0twlBkKdT028JmmuMI2zjANrdwkXrPUxMFUBNMn592j2aOIWCnIfwgMdhAwatFHdom1wGAu77PhA4pOdznuHg3tbJFBVmlS8WNwVCn5Lhxd3hdO6zs4HjJZ3zXi1vTICf9485xif3/4OcM7g3T7Zm8gxOUoEnSRHGg/SXC4Sm/uLnpWD3+eiqfv4UsfnxQM6Y9/mw8/d4+0KMCEgIEXstxnRwagcTY3/EQx21o+QZMLpLXmKI+51+cbVmiuF5X6Q8OpMIMcalrt+Ind9xRskLG8XVfSbtqeb+juKMeyTsKfvVNMI9En3lPEMAp+iUcSP9R2QPXBajHaSEYwK+Xl5o/3XRfaKGs+WaIw2aQ+ONYf66Ma7GeQaeDIjwqyQoepzgHbOAK5uiemaBJnE+LYVRfN+n9i6bQxsu0aEJB0qz0BOpIVKb4yOnEUyPm2XhD63aOeerFu7WuW1pQTak7tJj50t6dIZq2LAxzwgcUUbzsYPJKrB40qooiCeSDe7rqHKMqX84o1fcgSY8iMvWO68vkvgHUqpTkwBvGeGTyxijInfjHh89KP7N4lO8Pz0SV2VhvoQvEWFBp5RFOFUGtOD6QaSMgeN4tA2MciEOXy7StN3dIzG9TIzH6/2rLtcRqrn4ApQYRgf880155YK8/R60W0zbCxjMrFRGeGOvmCvnD3/rIi8cU9soVAyCGED9ewnKaEIh2wt91ir55aNibKrSrMNC92iri7Ndm2+JbWxdB+JfbJG0N7To3ynvcOqgekOkY1u3cCBFKuhJFA306Q7kqZI/c0gOPM24oFT7EIlz7mQPv2oG17XTqUtIMojYXes/xgWavY1NibIKS8xB1cuR4hitlF61mjNh+AQzI9XtAM2zEkjqyeeBHIXwC5VBuBrWrZFFkIJut5qEMLyqao5RDWUhxzlbHIFLxFHdeSvGngbYhmesGknUJCWXTiTuB98e8tFvb0f1ELb5O0kqhrCepGjAVwjXghYKky3T4uDT/iOnVihFpZQZwlSBs6jc2PMWw8ootAmHAe3YXS0OlnZMnw0li2XiSCB6J4CJjdPwb5eaFsL4hZvjeEXDYdYsPUTB99Qkx62xK1YziwJ1BPPLjg3+lyxylfQGbyojNEZ+eIaZmixbvJKIpHKAFnLGBBkLobimFfjrSF2KSCUaHyvjWkI5MtgTuj13Q4dDhHMYulZdleVEAahkpyuAS187W8ZO40tajsSmsX8OjngsAGRCnJDtB0DIvfGpt/fpcHWyb9mWwOp8zbrSOs4PWkIpYUFWIFh7wetahD0wjugHpyG0y3j6qNlmVVgf5QsRIcjbDCDPw7jCE5AAtBRgz0uKaUtEnKyx/KyygO5hRTnC/myMIzZMDOW6Q0Vep5GNbcRlX3oyrSjDBA8WPSqECDmx5qqt5K1CY8JEKcq6bKZSi1TvU//hKs+NSIV/4hN10751ujClUqGj+JiJf+G5d9InRvaNKOfjqDooY5PvM7hMDgfjQ5e7eh63sTcsnkncLhRy39bafopZHB4xcfBfigLr8K1ZUX+wcs/7ILQXh4guB18kbILrT9zGOqrVsSCAzvXWgnn74R8l5sxZd1fFIXon3seN3X9Y6hPOKx3In7BApJfmpbZS0u3THnVbSPLQHLEx4dsSgE91gAAePAR06JPRQZ5Vwo5iUXwWLO7jPGMZ815nf0Xi4FMvn/Zexy1rAxj7r64q05hFfeAYB+ljNKBv1FUUiJxpVuuzBNMamg0i8rFar3pFmVY9bjlRjKKOyzR8kU6DwWSyDbyDoKSpaE03ET+XtM+JXewRc7oK5EllaedFKyGRDP2crtuJygappew5RI4cCHc02ADr3YTr1r6pLfnBvkuEQD97TXyWiskai37C8+mzyAsUwin3TUTTFSxMNkpQ92xZ8fbZIYy0YgZSvIIH/wp4Y5/DQVFXaoHK4krNlfS9F5WsyN+lXusdE4f53Rn8tbwc3cikef/BGYssIpxcO/zsQ5rcAORn+ijJ10NnMlmByfCzzof+jf/vWCWvPbMbT7FWJJXlMRH/WoqgcUsueT9JqlTf65GIvxi1n85l0jnlOExTNslRFekmq9DdYzmURGAZgxC/TJBp9Srvh4Zno5WQjabCENi8QlUesjKS298V7okRwwnQ3sFh0uu2Wp39Uv70FfJAPmz/Y6szDFLIlFk+9lM5Y+LseHQy+HF72Tl0WmZONobYV49GyPmhK8LRHMUEnG5g3nU7sq2av5LvMX542+nMBu6ZAqUE9qq5Sty8T5tBPcJPFk8B3pquQN/kiNZy0Nuep2CsnytRt1yScfxdhueYzd+/Qzhju/EuAqqVp7cy4SNZBHzYbVAIsjA+Bu/NXw7kEcqchlYrk3qNCRqJxxG/VyXeZSufuO9nwSZip7gJ5pcmwvQFklpSXcLrOQd9DN/B/jfSB6HUhftrblhuEmGDHBSKlE1K2JNOXZqt4ZsewzB4m7lOLNrngX5y/95g+h0CG95v7wx5ZmqlRI5muLTIPVOrFzRyBKAyZKsFybrJsIVplJJt3BLyaqmdwgoyU8zf3ZMXVJ/GHLdktiXbd5AF9ZNVln4XBT5oQVBuKbwLmGvq7a+9cLzC/sovnOQm0j7+execqvNF8QeTnxWJuYpoCl+2JL4fl6Bimf+SYjO6w+H5Ov+HdqeULB94X7tKekfbKi/Us8sbK/WzZmtzWaG4pi8m9iEL/4cFs5TJwqmY1hQRoP1jZFI1qbJ3VdB2LqnPxF9uNfM8XIv8/XOI3VD067wBy/luVikhQuVZxevE89ftkXNjWakD3h7y9L9VqlBW84Sx9TUfQ9E+5EuqyGYMRyMfZ171eS5b+QTOqjoHVqNLI9y+4xZCeXY3EtTuKCIPpf3ORWlnDvkxjxIBALi5vtRY7HxjqImrr4XAPq05alKU9xVQsacUqmKqPbAxOWfrfufKCX49Sk4Fj2pWXkZKW79+jyi5Wp0nuSYJeiX/954ookL+ZA/j6yjfPjGG+iY9R0WY+E0qPa8RhLXXkeFvI+5+HeymD4O37UmdrXsuYY+mjjfKgWmjyhG+GGWAPxhxtFaWdW6gYIiw95rN8xg/Au3j4XMNEVkeVDFTNEeIAfWT91blA89uG7B/4nvkMmNevGxMZVdyWjsxEM/78J5BuAjOlg+3nvnZFobS5XSM06hSH7igKuKyspmt2+9Yt5GrJBnZtNuE4edaN6mVOlxO1mhaBWe0gqIfaV70zxsEpmRWacWr5aXDrM2Ll9wLB480VIXozUTPJ6j6vPAxMaM+aPWCLIGmZuWJGavu3E/NXRrHGksRylbZzFK7JgjWEzEOuqpge+LApTUe1j5dbSRFvXUq++MUZ8rAjMXCcoi9cxFqDMKK3VP5JYQgZ/YzR/3qqFf8Rz+g/4fZ7jd8sxtZw5q/kk6ERgWcpv0RVnUgx8fixF31qjjCR2d4jIwiKzqQCaaHJpDi+P1E71KTyqSC7ykfH2rBjjlZ9w0s5aNOGTmcdsCvRw8oKN5EBKLdOMKCWr0drtvVHjw2ymYrXJ8wcUMEAZl+34KBMi6BCzCrpCuNii6nqmEU55W2IOip443bxkgR1GUq4q4JSG59TC/fs4owhM4MP7V6fKpxM20PLogoY/5D3oUiw0aXLrkasKjn45toZ3ghbLn/ndoQhB7+oi9a7GmyYv8xcLHoqLfW6r5r72/P2S+yGWDtA9BtRskem874mG3vf1iUXe+37MlbDj+aERLZhSwiEDhP2P/NHbMeVlmNMZh++ZCzZ9wb2TyDDu2D6HLmHpsnASOMjpZEEUhk7jsDLj4YKWVbnqeiAaxIVQVAMpDPL3QH8DDqT31BUsQo+Ln4bw2jgvvu6MyLdd0yhYL8H2vn9KxHoE0bIcGBhWT4FUdK7jsDqZ08HGHmQY9v6LtGATA7d6+aaiUneyQtxqYYGERZjz9rDLVGqOogm5GZM9DeZxeQo90cU+zn5clk8lFtuInxHyaNx/NmHrOk1+O1hExoImtLpEfYQ29LnVc3vZtJg5Du6S7CZQDp5ktU945AW4+FCFFnTCNMjR9vfPsm7q31MZnzymlDEIS6ehfITetWTJIEzaZySRPWmBaAvSlSHWwjnrYjUppfh8BdhEcCjmbmjQWVFHOwJXMo4LjEcXnbn1U1VSP/Lq1t9s3bc8xO/hMr3/0E7vk5q5g2P/Gk6zH1wNMrCoMLYwZPPVeyymBXs7Q6l1/qOVd4+M7eOK3jDI8wM9xA+QvZTnW0n0R6cIT7z+uLTr3n9vREV6E8TqtaUikoCqISqHeWLzrWInxVbXqNecmFJOegu/ncpljpOXaZ/iHklTLVDbZqSUj/r39pQRo8xiYbGrbSNTPDvuT9ATmSOF64QPs4GUd8p5OrXCm8CMD/WYSeqaygK5/osK12Re6ZLEAlavSELQBr2ISE7APesB8Lo6dFrSKFmVKOkdwB5pWaxv4h6OU4iZXxXDvgjFUcCv60skWUSrHKIN1JMQD7W2yHVg+Pi6rsXPqPehTmh5zJWpeCPdfXf+8x6j2GSVKfXX+UxwC0RbD9Gk4+V0483IXiX5YWYymO/Hk0qQ+9jkIoyCGns5U2nCcAOzEZPsj2nornODGie7jYmHRYZl56C1VVIZND/WY+m5/KqFrw2DBaCaynbM/6UHnG7FtI7huuhZtND6Kt+PF2BtjGV3jJjKltLh6qkkJF/Tib6sqqLBZUYi6oFSseykCVnQDs5VP8RQ+ZAh3GPijQySlbOkz3LioUcS8JGIS5RsTLyQtTVisSrimAjholSt5hv9/8wu1hAxHashJ3WP9Jo9vf3H0OKDgAyVt6YzKmWyuuoirXustZL56OGQpLkLXQwdJ7usYtQ9YzsZFfnHsW29UfvMNVl+KtGywuie95kFCvxpvHhgy4J1Ea/uhP71FOMOSiyp4rQt3368YD5wb33pa3XWB8OGug0t3mCt8iW1uKRKhd3QoN4s7qWO/Jx005vY1m8p7XldOaHxxXs0oGhqGN+SrX3X54N8ut+AeTvFrXxnO2oxgyOxXMLlydd8UH1NvD9WDTKYvg+tm0HkUOlCWVgOnMhS7KjmEMIixvdYY85QuZVlfbm7XlDBZKze7/nBC/+ItPskI4piRufjlAUkwtkd78FYOvOxvucKwIOYG3AgLFlB1/yL7IbHiBA48lBd/YtkW2WfHcaE+d+U18NIveifshVO1H34LwVZ1dSD2aNbFD6GIIar6744rg19VhLcrQa35JUBIQ1+7d0FWdjatg5QD3ArJyLLokvpLAwlHRLXgVMSXVVN8VgOYinF6xu1ln/vxAiyKIEPA6eUVrQ7XSPt+HXc9RdVUiUKHeA6Uh+8HvMLHoSaBSBgWoIeXb0/3C+39O4MOEv5wvAGaMKTYg4qhA/68icEkllTXE+/BlWi9Bq/d0ya14sXDu3spaTgkJ5bPrddGahr9cLmE0PUYc3rm6zvdBJtgZmy4/6tOPHh+kInfhtz1unvhUhEXdU9U49F5FydsJU1wKB/Fb+9Gz/C8SjZWRbO6eTwv0QUHTDullZWiCLLGTs5SqSzD/4wpJG48RsTX7W7o3B6mtyjaYEvCf8Dza+f/I9Zp2+yy5YGH8XD4i4jZc7UVDr6KN8Q3XHnosHDABQPNT6N34jwkEDcWwY5hwnGZRVsMB26WGyTh7bHYX57HowG+Dinj7NzvdyYwUVrEeYGigM+dVZgVS6QT0Z6LE9zV/jNLu3l5O/xn3NE/X5AV8on9k6R54M8qmfM5NvrUtDfuVPqtaco4oEJA6z1AZlWxzluYMbM74JbMPETn3CRJ528OdFROdWZHnmPIohnMa81b1gYZVcb/YIh9J6EtnNJBSl5POcmrtxLrWgis6WLyRWW3gvp6LCJR9Xfr0+lyaWwPqU/I49q3kJAoisX8oYNHJbfr5oikGhRHZMRjUWF9ljmg4zdvZcIryfmZr4GRlOrIUHxO673gOJQlX3+BO220IIZeK8Et48l0/aKREyr9ikiQrX6B/qYZGhbjP3HwO6Uzp5iinDbx63glvF4UhEX//evYn5jlQ7rbPHF82aRoR0/JnE5Du4Rn5wTrIQWdczVPiNcObGvqgjEhdL7Y0UbArNFi28lEiGmO7wuj1MdrANaLkOl3KtBrvKHwDKgISzaT6VkG5e5l3zgQlCMfadlooaADwNbz2/RFawU/TXM1bWl9uq0j5K45bsApsMfK+IQnDLygtECeDo6mBrnCU/8QMzqUc1fEtswC+6aTz7pXzwusTwXM2nqGLt53PzRTvdRLxj7X19jFAlHlbuxPPlOzOCws0+ifd6zRHR9wgmmEQ/vIh3VG1zc+u32CfG88Gx0TJvBV1z+2/krmzHnh9eErZtmTP0sYkEEX/uhjAkPJlfMR+E5776C2JhZfZYHW5iIHPnf9WssgA96VpetHmtxwpj7AVGgEFl1bRWdblcowvWiI2gzQVWFZ/lluhZ0V45Dw06MgJ3v7KrOeugMTlRGDSOPFJtxp70/8WSFRbtfcdyeTT83Kp+Ihzce9ItTMMyEZ2X10+LlyBPWvU9Ev4hZRPkLtS9GVwOdU8QHnYrbMP+ESZ9KWifz4DzMIpxsYyBDbRmMKqPzHuwkJMcrBp3lOO3Pg2bOsPgfAWkY9t9b6h7qYX1Ql6ud19mUlsNUyvHUURzdOUZZD84gey9buqfJtfsRXF7E6fmB5xDXe2d3m2JX1c6Gl41Z71pG3KFw5A2gqC0CLxjVdxdl7C5zGnJ6H1dFeSyFZasHd4OQTHgcK8QSEFAxZ+mvzKSBhmWfaCEzbzjSX4UgVGEiptdPjGZZQOecD6kBdTxUMP4IsabKpf6IUQyJvjMsOv8PRNrEIh9dq6nCTUqN+0AjtCEcJjg8I5lf70AZk5ZTWledz7Css5ogeNRIIkHXdvkLjvo0sQ1tXRO5zW16lWXhT+ZKQ6+BDWwRP/NOOZbazj5OkViN7OPJM1PnaCo1XjZgJdHBxmTR7tsuONhDF0sygVckrbIisRuQ0rKXe3NPAbHHrxRG+RXzIF+FhkWyBbymO1ki/R2VsjqVkKNRNatiLkGxffoQvcSK2jJSV0shh55uQaL1lBvqHt2KwgcStrkGf436a2+YKAuviFhXdGOgh8WUIBwcUtXCvGAg+XklUw9CfjCgS6XjJTkT9o5TLT03vJ2c9eBPKa5neCdbo4oFbgeDKmH9P0CV+++ec3+mpDgtQxzkJDeKK0wgncdLw3ekp7xZMl1PIEVC6eypsVtn16983r191r1/Bhf7VyeCcTY7xNnLh1T6OOvwC6/ipYOiG4PhnWjJXdWfCTAv/nKWZksjeGiI+yTuF6X9r2X0hIe5ABLOKatLP5sozKM0b2U8WXG1hOkjTaO/H0b1YNo1uzRE7zXPVhlJYZhdZlOoeCpyNRFgFpgoBETFPkcSz1TrwyYrPsvOVvYyTm9szua5X704Nsyfd6MrOfcl45cxTMIrvl0as8eKje+yTZ7j1+H08WNklB8wLyAy24Vx6nJSWUK55+iUPaL8PPEiD8tariEU6MkXdiALt4wxBkRmY4wB0dkgBAZEZmOM8SXMfVvRW57w3LV8wUGKrmUY6aWSBAEOOLE+oAOICg/ZB9JqiShpOcRLqyU8wKvPvs69vVqzhhFEZydQlSxjCVlim5kWnsI4CgGltR66X+mIX/f7zmtZUHznPDnUCJ4FVs6VmEWNzMG10BDWqCdgBaYRkpwiXDtdmeSl8QrGPPZzC2lMdWM84iJH32JERSt6PEdBVqIV4+tAKGmSTUUUl6NUb1233zwJk/LJmGEG9BtrU66yhIFdF2G9TPJ5W74AiL0g2w6kEDwt0ZLfYgDp/IIpnG/z+bpxwHJj+imTyuWlNU/PkWTnVjlgqfOWobHQ62Nly2a+G1mOoWcpSN+15Iid0VW+Xq1mYTNFSpg/hFvuTPNiIu3XhIgMNBMedgkybPPLIm7vIdBrj2JJulWN9+nnKQ+XQSoXLWb+KeJ5vDtjeX6JDep/PNbdCqW8HY8UPS/RhUwMUb7/rkA2xfKSOJzZQEyicxaPU0cQWMImaCDwuw0udLj5kaJ046b14rt+1N8UB6kLT25rcXHNrL+9oPAR1KENw5BwmU07+PnFmgODYAussdm9bkfLB36bMN3iLHHYDO/vnoZnSXS64juZR0FKBOSJ19iAkSRBD95vSgVOHR/ssGa1I5YR7s6sIp7DF9ImLKxZaWfUKiEOzgNippM3zNZfTFgcsYfqjkuzh2zB0j8IBlchABwL6LuRFKzwnykFRZ1ViFWJXvU/jZWzKL+2BPtCbbkkx+Bm2RazFa4QyssyeJTsGDK4f4y9F1O0X4kEgnxhYflmnCobrWrHsEE742CavjEmOAcRlq8n20yzN2SO8kaYmUBINZbM3GFaGCs+o0vZD7x7fd0bqmgEIbBhV69H53QsptGnfrINWRIGBTGNCokXZ1OBEFiEheEP2BeRs3yHtecGZ+Y+fC1MYxwMLYOF0ESpqhtXPoscCsYzvnMDpG11YxxKIO6JnaQbEodi4c72e8bWy0QwHxhpzNSNUc+xKPaqfyYl34zJWeR8HUeRu/Zrxv489xL+rtAeNZwFke2P/xD7dyhsQdpb+T0hKc/rHOe86YObkYGRQZycV0mH6AVbd+YLH7CKBtYQ+fwV9CB+9GtkV7LVSwauuIJIiF2UO8oR6bogvcMV4ipy4YgAksnWcFXUQYouvZ3ORrtlgnywbhMjR1SvVdMJ/6ejJdi/x9DggdJM8S91RWHKSPNjodVjpuOVt7Xh6lCezI6LihS3jXYcRenUFH3y7Mc+CL/5s4yO3gqNbqyaEcyGr9R03NjnxSSHTKuADBZYl9dbc7V7kTaEDhDbblCsGlWRv08hLy/uJEfdTiqTjd5m+3uA+PtYLwnYLkllvZIuJcZS6s1S0U07tXVwKuuks1eU6TeJxYJeKOfsVKli5hl8i2/cz6OoSgD+XtwbLpG4Mss1Gs9wqTGRSJZpYw5UVG9uj9w4Ejw0b3wp/NAbxCLYkycF/sIRUAD0j8Jh7BHDYnbHFprgtNGIk02VODEhFKkMxWnoWptXzRnFSetAplVK+IDfqjoKKdrG694u3sCFr06HlLXjs+qjFr6Mj0V4obrxvJmnoqfRv7j4TuQL3p7XqszWocDVjWY7MUO5K1bL5O37FRjM3zc74GdxYFWT9BhvA/SgkTKLREUeAT5IUMR9DpH8+ZJWcHMlbuZ7/El/rZDcxKUWx5ZrWy/KTK6UXk+83xAKRUS+7sfqs1DW1gF/f876tYSAxSkBKjPEa4oy2bAUtGmeXzxh1fMsa2Z6sBdS8JwPOi6dPYGJsvhjSjV8zOIwXc2qDU99WqpShmDiFn3kHb1GBkX9KltwQh2KrkDT2R00P91/3/dcswUSb0W2Ktx3cTM+OXKxin9PPDQ9FA08nm/0ZpLmbgvWrvj2lZ5/dhDkIwpTyDrGT2tpqDrNubZjyjEqsAYUomIpLbYl7/rxguu0u4nxOptGujS6iFCB+/N0B/E97OAXJrrBu1akLaf5HmRrAI25/s69jUzqdkpLWCN/z8+vT2ycGLIa3yePpdfUYuxWygYwe1ZGpWxKfoSr+4Gh8LbkhfBPfFUu0IUgHSWGQKJyHdMc4+vI41e9PfJ3Lz6Cjwb4eE8Gehc2mQMadqbNTPJsXJm60X42Ie5LB+pZ44PiCpEcr4NLgXXUyuWXh/lvki4ccd3duuyEIe1Lu5xrrDYeU6Rk3bMHL2pb/bjRRiJoavj8Sa0hPYMr7U1G58x7TPExYn3Dc2+xoRY6u6HJ9yTdhmIH0Tu5wGr3eymHGbWctPDXQP2Z69L0EPH8FVrnbvVS6ZGV8Xvv9k9Es+s4CbkDWNI+hCc56FP1UWTgurGt65oh30xIPoSAzV/jQ3rjKGYoO67LuB5g8jjkmObpbBqF2thQiSykG8ZqpKwM7GRnMBaSrP83RKSo/Jbgc0UeCkISs7/O9HAXtRDECzhxXESOKLXf6mX7MB4bt0Vj3rt4uHJMEq402QycrlPi6D5E6n75VLCdWGkdlXirVGNpltsXnTY9TVFTtNemqC9XHTd3j+YnfW7I2AYDdnv58b7NzR0VTiqvw3NYbQ6JyS+SQgD0c+HHJ9iDVJml8vVWo7wuGA3Vy8esGWAgYxop5VuuNN8m6Rw52WGH8orNNfOHg0zJYeJm7raRHSx1MuXbTy0YSKVyI8QUyJeTdJm0jL2ofDe9EhrUqMXw4rRd+CDAqRcndfajrefMdNLzzgeO0y53L+IxD9b0mGepIKpHJuXve8+Knux/s8leniQ8koL3Fou3kWrEUZgIpGL0Ni8q4th8gcXpZk3ttzSzQQq6PxF9dioWCM83ZXVqLPK9DFKrLb1KOmPUvVobaJ13DzgmXddXxUthmQlYOQ5s80F8Z3MmLJARpHffioEMMki4nr7wF9pK+Cl1coR7kMhrWlHCVu25KaIkoagUaRqAeUKkIgMDcHNDSzBazojOcfMeUfy1/2elgCnDb7TVFokxz1lSSz5tK19pvWbozr4+UcLWZVnijvuzC4kHqQDQ77fXdJNPKh80OKNJJbeZcZ0bZhxeD/P6aJlDugS7P2V2nIrf2768TDOl66PhWdKK69EAUdqU6JWkAXIwmXNALEUKJZMVm0zJ44MHHUmZJLOftFa3BGuxYjc6KGK7pGN4mrITPXewEJVujrpMnmCe3ydpEh7j3kVaYQHCm/q2FlwpoRMKWEUXjW601Yjo7GVVFrPYLZkjdaHQRs4zCSj1yO08/TWcTj+60NHHTUxzTeDUNe0at39yt40JOgaYO8qKbLV5ohcB2b+R/ki0Ao+6CZ1XeHDQDbz0UrO26vi8uCSml/7hYoC++bIcGBp1jUp3X67pr2jJvaORBxw/E0+nQwchJJqIiYZTs8WE44/QlZsP8j9inagRIAFX/TGRs4B7Wrcp04QlX5uKvuK9ry9nUu0NJ5anvUOKz1D3eskzf8SBUYUgw0vFTMA9F3QblpYIHnsh5rtos835JyKNBAQ+fw7WQyncKDsvvMjw0yQ/O3WRCu+RPPWe6nW/wxjTzOgKR7WkNSy+7HITBIcBKqhho62RcjMDBSBx9EK+JSEN2r5qacc00HtGtAssaKRpvU4Fllrjuu3TDeRUS4g47ZBRH+2bYjDCkHbI0FM//1Q/NuY+TQcAyxZPsfetIb+l7xK2hjGkjqFkrbxgIlwXhjRIRTC3BY81O7oKThW0wPNxFXx17me9YJmX1aT32CqeF4RGvgbRxxXeogU2nh83XS54tXiUfierpQeXZBeOzvNOxYMUD/6y7ELLm9D0Fi4KqPwKEHXBtBwXUkhe24ApHqnXHZq959d+kpsRhTIVXa1GplBhPJwWdR3PQ4PRTjyvrh0w8dQ+7rsfMP1UVcAeMw50XLh/RqCrbUIpe9fvg1x6Z8l+CZqK2KgxBtS3RrnxklidACXc4BUGUqK0Y9QQ3kedbAOqkCy0yPApfsPI0fFaqUO+zlbKpHW10q1qOVnVYFLcJOkHd+pNZfgpjKQRv3jzVpD70mAzJRpax+JyBbYzYlCwH6AEPkiYu9EEX2GYvdI7J76/9DxYCv5QoM+HZOToOKVRsABvUU0nnEapoCRAhwLQEwXD8Yc5/vx5U4BXJJ20/JswxRHnBQnf2N2k/BwM2Akb/5SbfMm30aRlO29D47jrkTmE59vSs1Fc3CsO3SXIvyc+OPp+pQHL7uHpnavtSeFPvNEyOD5vE7nr83bOZ2xiTkkNeJ9IcKWqvFDrzzF9xfyNMxY3+5bn3sUx658o7kGlMSULqS5sk3hxYlgqfy8U2IexsQ+zVw+OGWCER5DDaJR80sfCYDIF9Ur910XFG2c+Y+IgOxelXRxShYbE7rZpM2k67kOdoix6SX4bHGWJQRc95p8A6Q2ObHrb9VkY2h9BwhxmZuXbF4bYBmxuM9NmMM+h7Fw0+RaOuYzkmvTTvTSUT+QuWl1HjxzDQuYuB/TWJbXSSwC3r2ODQjtJ7cPD47Erjz9fhvYrEzb10LUF3wKUgfyAROYj2LRyTTRgLskmsXzmaclBsJkTVg8+6OVGuODashjKU0lGqEUeIeFQoNt8rql4gi8HKFWlXejxKKK9ZeeGaf+fbGEDc4HkLP3E6VPh3eYbbr2kNJ2FpnWrrDTlLn2ujG+V/10oY4DDkF4uoioFLohBX3zp1agrmDbKJ4wiJsrczQDLcNkUacbGlc6FfZXpQJHYo0+q1SoSr+OWc/WOBTYo7B6rOj4atsTIwld69xht04uF6WV0VWzESFR8A69a6l5w4JMORg4vSCqZ2l84oymr90PNNKDiM/PwXhYjKQvZ/japEvkwFJckP6LDUnVJnmONbawuU70JadK2adTLoP4/fkaRe3gbHJPMSqBS21B8TEpMbZy6STa0vWC0rMs3Cmbq0FvrI9xCbOzrfV1hVQg1tKX56Ced3IzFF8pmx85bhaf3+0a6QpD+nUz6in1/K5ya3ZmgiO1mjRfFxiiQG6IBzdWpgwzb+kWdp3AIllDlq4k3JdtC61NaNlYDysYrS8faBpYMzksSNm6FeDcXPDUb7g633YFsYgPOe6XBQRiTaWZuBvZNoySebOhILe09MuLHQPVCLtm3phhCsuXHOFtHN4KoA1EVY0l6bpRmCLu5f6WvAIJXtwIHced6NIx8wM1Sm697iBoPyVuBdVAjJDpTpNS/f7m8JLO2am4pHTZgk+/0LdxnAR45berfopgi8HVF5k9uBjO1JSQg4VwE241yLFtxOfKj+HGBqNH6q9S8i5RHYaI0BpE4vig07c+kp0OeacaDdt69lrrZFUOG7BlH8OSSW7qVcwBTpTLHIJTWxRmJHdBczEtGXgP/15G4hzJHfDNDVnoiRVVEhKu3JK+lLJ9XbL/31AjPms4MfNZ/gCzBtL6mRSbB9RCJPMcy52CQot9uAyyCGMjxyTNAhnLSsNLtSt69ssjrbvKugWGqDjgpDtAD1UE3wa8TeZANYRcJJsQmFf/3IdYdzKAYMz/V40XF5WIFLYJgY4CMMdinEOivHZg5rY6O1yReelrm0GnEJoQeKd5x5wsoLTqmH2Szx+NiM/kLI2pW/ewEC49MwbX1AldmsmC7noSLNk+RxZb+PLWXqHuW3277nrthvwTSdR8p3/peLiUdXln2YcwWEcU2lk/PqEzvFdHuQZkiUdFeWMvyONy7GNLY9+0TQHMBM1C0uYbR178qkNit4ZyF2YpDSuddG/o5WcGS4WUcxR4nzlXw1m5SCSwegEdv0lB6pet1l+DrJZqwIlRmHMK6HqP9XxAXPkV3YhE2KGh4yfY38P3y74l5QIMAR8R3HvCrccWW8lr6jN8/Ym4d0uOzx9JvLDRanEo4qomRFI4z5R83SjphcA2QO4gKGwiWMFgWBioQwDyVmTj/VucSpySn1f9CKvoV15JDEHlIdyAzOU+Vpm/HxAJS7RvH/R7KIZL4NmXeaTIKxD6AqunI7QAlLF+jQTnojuL4pGw/oD/DbsRYfL+6OCuJBVPkz5ozGfpbRK/YLZCUBPktX7P99sZxV3KAphQTu/QaxEqmp+9gJ+K2ysmjwPQMGB/Opm9SzrdDo+RekUUGOtlie+V7Od4EmzSK0m2PJ+EQ+WEH8FoFswF6VhQG4xc14k7jRo5BYfTWseLGrdBaQRjJUuK9Fgib2VaEG0I2nSNqsEHAk8mYMmVkHTBk2wZW9GT3MwvwcuBSHyZ77FGUr7+4mCD7X9jYa5iPN4KDOktYny+CfIomXbjQy2sWN/Dw9bn09utCO17LocyJq7ffoxXKqZH/x2P2kpZx7F8HGSMNo01wzeb2YrF/voZN9/Xj4/F/OtIuZgte3rGgteysbYFwqYsWbA2qVEsVUix1uefAh20PYoGtnOOsLJXSzXdCHQhmiBtCFhbKKldQ8JETGs7NYU8O1u+6L4ZsHNzGhKOB80YgTa+GevvZnpQ+V5GC7EPO8mx/fIkdQtwnJ32/xJrmsQc7wTYOWaGmbSxaYSbNgLnK+uiWN8xTjVIiG6VEjihCQLpKwIKa2hXR4+p9CY8qhVrqE1QYQ9Hm5qGTdwZ11ddBuI3e4BrtulPMe/wHk5e28aZ9nbc5G/nM77wpyRsZZ9dk0ZpSUYZPqaYMvKoQI0UF6MY/5Td8cetPnFPRPmeww7fZ9e6BY4jEAvk5Ciz5v9j2lpxj3Jk6GjpD+5B8HhTtyvwbFK3ZAyIpTdxwrA7ihFS7pOBmZMHYTqyNsjhsqdF/W0f5EtOqPbTod93bVsoAJ9zpZounlxXRKO5/MQ2ADrJWcduzIHRGzyGCvTz/aj8MhC7xEFHc31zVHi4MSx9jdRYoYEOdfrXq8my01EetrnwqnE4vlO1Rh5t3Y1hbAZoLhaAi5h2M+/tElOAWR8xv6b1caMx0aOMQsFYHE2Si9txsD3hhLTaIuLaTBbvDJsD8dfLYdMNXWbC8rNuh4GaagESzZhpEfuK51zxLGUK7mBFUBF71CwNhJ6YPTuawZKeBn30LbHLcDkZZL0YZYA8geFlK+L4a59TQK2cFsIViDGc/Tl6u/K6KteMZTD/s3TOJq00YaxZVVPX1JidmlSAvE1koxNLtAlsMlzgZQoYa2254Lo16PckWGCTbIKbRk/Yv6Wws1TgLMl6DXpx3r4sN51XgqizfVryvKUA6xYTsFCn6GH9TTn8uM/FLKqbHPhhGcwuhBHmkG1jfdMeePM6V3xif6k8szV9+FhVkhdyjiQeohmWD6eV2jSKhBKp3je+mv6BOrfPUZLXnLjC4KErYJlR7MN81oXjUXLSJZmll5OTWwFfXodXbTV7v2vP3aUDBGY7piv/rUeNznyRMrsQ1ApUT5PIaGtAcuErjnprAn/bKHu+7AfNQROzXsny6vzaz00VxXJm3WwwEGDUFJVZBu+rIAHfE2imFgVCSjhd1W2KnL8tFZzWKoi99L0YaH5gMOPqiM3zWsju78cp7Xfe+H6l9HyCfKLHIe0xbEwiMEkRUbHwiGdCRzOCiSwGJREkSifm7IWhiM6ebvwnnP5TbkjH1MZaMqFi69lWCK5GWlc4KdJ8aKYNrh7LDBI1YJSmG8wqfogF9hDz3gYZLniVEbDJKmjSBVR5j9H2+8I18GnYhI8Yc6ogmZhTPKHNP3to7tDdWAFdskFlOxQnBsW1w/+fSHx+qN6gvuIlgGGb/umuvivoLnezgBfh1SV0wfDcweEY2A0w6AyeagOUKHWrDLh+7dMUNSUoTKIsHPGfAv0CxzmaewA3N5PwAVNO5OjEBLzn+GXLVYtMGiN6Z8Ta7BSNNhT7l9X5VRTT9PkbF8Q9qHKDV+ssBx6r+6N47ysXxlvpTjkI/XkH8noV9KlpP7ltVfGDKao+cx5kLFT08hvXrb2DbM1DuetqlymqM3NVcncooAiLLx7bbt4vSP7VCoB42uy8n2gnWLldEwCYrp8vYYOvNlYSxXnRhVNJS2uF9VRpWvOCdYJ0ouj7YYHuo1crjDlD03jcQNcPsco8fM8iaaN4y+ob2rREtuND3DNH08e7T9GSrwWorcMX6ETWfIng6szUcXqTPokYJNC22S+P+ALA668FL4PmTS05wxDZiO4D9dZ2sg/W1L+KNxO2AEHkdv+BS3F+Sv3c29eC2y4P2SwU6EqEh6tiWxk0X/JIsVfbYsadPU3IqDiU5/5TyE1THXFjAWAre3yoaFlaEwo7qMH7kgdinvDhPqjPqvT/Bzm7rLz9EOtH71n8KETnONj3+r/OA1ILtxXsQvchHDhmuk8SMDBUa2iNHNZBQD53Uk+Klc2QyPU0sUt/PKBjDtdYWXkx8Q45o9F/2N2Cr/0UWVBbQ6q2iLQf5Adg0OFhTmMrennQlcTVYolCsf8mcEkp6d9hwImjzirw2ODkmi4CQWDQEBDeNLBV8BwB0qJo7f5wUzfa/ga/F/2WD/kg23D+J8/9V81iL/scH8p8F+3C1T74I/1rbtVrlv5SUf/if85emvX8JZhr8X+bGJKacpnhu1f+lJPxZblD7WNQuF46//Q1fWhVa0Kw8MGmr4Fi/k2MeXCwIaLyx/hpc/tc8IQSwjv735zHIJC1brnx+iCJ0qN5erIhrikq5B3ExS+/XEXPe0HtHaanTzeLUrH97FVz4ePm7y7AGyr+0onmnmp/CNaM5NQP5QDBY08XHPMgX0AyCnjV6nwm89ecbv6tH0y6x14ncJTX/Zimdk5nMNyRQv4bnvQOdCppX8IbzNjgirVpSj6h6AvkgIfWF1MNc2RJp0FhwlHEH5NtAd2pVFLznTkN+aqoFWV2J5oXoffJDbLClKDX/JzURF2ICpgNsXjEeziF6ah1MYQEZ3idLXxpWRYswh5Qon2fbZLIrMGXpb5iJdVV8H49jeZKUgZ9DF6LcxkUIWj7fEOeF+MgO/M8oRzIkKs4aFupCxJqPFN+/YS+3wPgILFsdD99r2BH+s93574fd7m0h1ms1Yqy8YLxT41N+lvD3lIr5xjpOkvz5fvEq6oDvLrd/68sOkopf4CgCPppgwZPl3Eb3c2AdXRbG9UcAuxV5D+SyuYsuzz0oS5k2kvr2lOLEv+eXhGCvVs86HrbWhvzZzIRd4nG0/wo1yWI7Ifh1Vico1/Czrx4x3jwiPEJ1T2pd6ehk+5CyOzVs12vYlf7sDDxQMcGXlKjcnS5lb2h628VMMos/35NGby2+TEkNkuJO1gsPMWpZYbzJ9JRXovse+48GBG2gmtJ1+HrqJu8nP/3gLS0ekW/V+7ckgPqQxWPRas601EKVwz4opP8/c0y9hu1voaXm8ZwJHmqmbU9g9n0bmYnyV/Uqfl64NtHtmvCKUk4t8V1W7CsjdcUDYUjFTiua9qGUWZqTlgWldZbhFAYM9mRQcbeqcHRB8rS7bUi5OJqXUAWO++fGs9aZ6U3K0dx7zUd6YNCGNh6VJNLQEo4wnq6XoCWR4F94/6raUFxLDajuCV12G8wrpsiXqNS5paR5GfASsGs0PN+5BtLoaJxBZ5jdxquaIOI2MWRcgl+mVjvhdqqYrXkEDjtT/AsdD/Fh36Kqhd6QRo0tWlLDRKvA7+TizyNBiO/LrfFqNcLA5NOn543x2Utmddyb9T6BroR9maxk+gfH1TE+BpohxSz00sOqLXeUT6+BC7o2H6IDispqqhkGJP512AemM2n7CkRXr2Sktmg1PJQMCMUH65dQEKWVb2YW3/4AkdTTHN+Kmujl4qR8nnSYb2lcIMgL2zGhprJjY0W8VK6SvlB6qz+LKJ0zFXEMgyg9WTPjMf97TFC0rqQU75imUO+pr14v/CHjQ96uv6ZjuMFH+bMvxDrL+DYvJu3em017gLP+3wrRgZ9EceaAWmfKLMCjL9Q4oZyL4s0WpjbjUc74xRRvFcMf6TixsLM58RMwmxFWUSqBb+yxYYK/BTfWMRSZ4UgcL7Zn12eG54DfrGObNygrUfzBAYHW2X0cYgEaGKF5SpELqRdBQf/qD2kL/v8ORtvaEh4L43yf+FvSrUom2rWGYDyOR9+00LUahv0Dv8OLdUHAONnp33/CfcIHo8l/1vbqfBWLlf7lTOdN4YapKXP92W2ceTivL9sPAy9wJjsz3HBlvMHGVvkDj1TwF56xcFZCpDb+EpQb5YSyYwdnlAM7555yyp3xDwFVCcSaJZKILUuXTOzpTBZE51HllljQIEtSpnFpSA0rkzXJeFJ5Io4ckB1xxtrFSJHW5I2kbFQ+SB0n6Is0cHKOpClb438K6FR+KGp20DFVy845o+r5abygcp5Vjqj8dlhCwW3PnZU9OzjT8pPdwDcvB3YFF1aO1MpByytuWw4Wpty1FFZecNfzj4dHbpyLyRvbhq8fuec54kLLXx4G7rVccj3w22RC8/YNvmThXDR8U43EViusoClIlKUCHujYWQRT09EbDeZCh8pcwDxIuK7hp6Q/+/oCpaDvvfnv3nwSdrYGHOjY2RaMoDObK2BLx70hMAM97U0FpqDTf38D3VLYYw7HknrGEo6CHvb9v5gXySrWvbgtkmeZHMTHMRnFehY/yuSf7jETf9fJvxW4/OOApoIhL/yQp+9IHNqOQJPfL/Dd/V8eczFJbAWEEGKPhfBks0R1SbDIfXW5dEhfCZJ70N0KPhoTYOrHyKuMpc/5zcNQeaiIMm46c/bG7zTOZqJrXQTYD8FwXChvnB0EvSipjnuyoX2v2q6cnBDq0s+k6x7QCHbP0odeLPYbOEty1mY26Ryqe+zA6lfTZLVjRgiQ6JESxKB5cId5pzM/jr0sGHOy4B+ciA+LWZyXUx6Y/5VhxtXBJDCh6YK5LSY2PYBztfucM1cv+mSA/Dsw5E+MOSxQKLb5Mi8iH3U34nkQLyEYE3cbUY4/Nm0hHYBp3WkVyvvDdQqvg7LXHMHmveE0plPYEPgQ55dUa9CPpKTyj3J9qU22F24fHzrTPXOc8kXYWc6Z/GmgtdkEM767JHoLF4DPJhtxHagN2sMITVdZtIEAh7H7rVHHtkv4SyL5aAV1Hz45tTxSVWBjyZ5oUdwzRG1z9k8MKRL9hu2oCwnZ6SVXR8if2lGasRZ4MJaQnB0Da0KFa8Pu5aQ6fabQFy2TYTiRNv5r0zLS4A8AuG2PAbWCPCBKhqMWQHku2mXXktZgPE7sCBWgzCdpM/eza1wd8E/z3pU6qTohvW2Q2ThZwR9lx/hj6NG2Y6T4EqIKJ3S2QeDUl3E4kpAU5lfVPFxC0hLzj1FhKcNnwG3/hsTRkUi+cliVtXcO3Vtgqojt3EwbB4H0/izuvDpzfWcUxcLIPPtvfDGwPeGnU3tLfpThartLWitFL89ZxYhQ2fA4xO5b/hxGHt9yB1miaSU4irJwFQW51Jj3htGOFJPrwPN5kPeWp5MzW2Hlm+TYaSxDREc/pBwbWUBydp7Z6bzK9g7Ai9khbMyqc3F+YS9TBKyvesZJkrAckkBFOrIOiV8WOo/q1XaXwucQvvWok7apqCKhqIxvLS/ZPQC9P/s8c9n5sjWkZ7vpYeHNiSVYQeZJhK/Dkp43C7DyXsTvaZR63Wy/d+PT/WugiRrNS12CNUR54+Hd5yIvN+GUjprYMAIschc15qKPVc1O7hCy3SxWELRPL9uQHunzORxyRlYRyXOpekzUZB+zZm6ls/m5o61sMxX2n1gEFs4sqvjhw4jNsIGj6xKXpV0aKZIWeyG8elnQqpj3GY8nAF5qTq6R5w6g05KcSw+ouvvRqL0aeql/NwOa8JiuOm9Lkr1LqEIlK804pX2yBgR9f0jp+OiMK4PzFNlZhneAaYMZIoo/8kSVpWiLRXp8WQbN41rPbvBWJEwpUaPixDt+UK5eeaJ5j2vZKV2ouEdIlOgoxD8W3aABQVBbEVUXjYM/qcpEDcAG+393jmjPvmuGav0BkfUn54jmyRHDk8e/N8bo6IEpPfT6vE4H2WpJ4XAS0pYjd95aXwEc6bV98/MSTYnRgt5MBzEMwzBuf85p8iL/sWt+Nt1RdZ9+Czpdd4ezZwkDkQpYrkcIjkJk/mP2xoQh2uVFr++2n/u7k7rnVOoAO7SFSlNqdkuYZDlLEq2o02wkkN4++jIagREV9OsUn4+pnphNI8W1C9NQkBISe+gQWZaG7nv/mj8G1p0jnHIYT+KseaYzczogu5oZfoLtl3yQIZRhHnrXKwaiwiJGSZooTiT03pNXkswtCMSOpcCUNZoFdVmaxZ7fMU3hhhw5ewjMtzQJklzAvxOZwZYzoZk0zw/naobly8cnL+yHKZNpOwJ3CAMS/pxYVGfiknCCeNx7mDae0Ytv86wNCO++MD3PZdgdEUnixmNmyOUzzGVwn4OoBbvTQOtifKiFrFTPj+ZHEki36Q1lZy3YAAu/1zBkpF4Wtshgilr4fk1bYr7Ewxwmzc6eb+j2GcKGOD03ij4yOEojum6YaeW6eUHglUVyKDV7vEBNiY6eUU9NB5nbd3Eezho43SAck1V8RPehwEs/q5JLNpQU49wRdfbeKknfFcd3hjAue6+JozR94yu5V+39mDL/Rk0oqa9y3scKzLiVFO5liyK/r1OHnYZTvJEgn1CNevqWeHM/ijdrtkG684hUm+6JJD06Jswd1A9kkbcecdNtR2i9O3q/ngLmk5Mw3jKPztMQkkOyGpYDOtYCv0eSd5bH9zJUdG4VnlgLn4BLlZiR4cLb+4wGzpKOPZfQBYB8j7R5TTb67E4/NTzMcqjQvPioKOmX7Fh340vvOdSigZ68LVTir3SfZh1yiUogkPl1xYaA4bPXTcg744uydexpgP9sP2iSzWl2OX8TOjpUFh83nzu4EZPVgic7IpofV5aJ6FH1ZcwiEvas9fb0sEgyRAZ0JkmMp7BHKTNqgS469xAv5cL3zA8IRN7OnR6JS+sOpfmfg8hlWaLYKJkIDBd24jze0cgPF4VG+6H+gMSI6pGkx/OAy2s5OtnrLCaCjVw5oZ9DghzeTqMSGSiJJqWq4/AFmCQw0O47Xea0Zv6Os/XQggiMGavaPC+LzKIX958949/kuQeBC54Gje/a27MtSM0baxDosC0+jyZWYAouUMkK+V3UB8wRSBNCRHYqKPJBTToZuu17HJ/NvHzbESHYSSchyBrlZpgJisLvzA9r+c8OBs7ZdXqCSH+3k3fkGmdIRwxazvE8V825aTGGr2a7P52nlx46cNEOV9q7SMj+vunYOpfobTR9YsEccE744Dpxl8YGSS6kCEsvf2zBYnzPu+Ty3MwHr4pz87/wPszY5ZmsbwLpt4agY4MnbU8wIqtwXXS/5iuiufUrAdm2ZZqWhFE3y02Cnxt6oQttPyYK+RgnzUG1CdHLhTthNp2PhOCM+BOGYRhG7BjsrF92d6EtSaMFUMzMmog+WQDhuYs5uHR72EQ5E1Q0hXl0dnIxho4JrLb05VWMBxztryJxRoJ/zWrnWUinNb2L4AXgR5GUsGhR5xez24lDzxXdHZ55wdlDftP+y3vprCamgAFFLC914+ArgvYONOANGYaZg8CW8k40ZIJycSbfTieqCh9D1GjK1ER6vo+fIEm+beQ67MgYRIhcFXfVA1WCqrFEQtzo788Ce/90QCUNyG4hURsg1zOMPUd5QCUzyE3V0m8PVdmTupzxfpn9/IZHeHQ+SLJNjCVABvJAKqiH5kQCWSMIaj64l+oqhGzYk0vS0ZSIvFrIPNOy6w9OgJ/c2jKk2igrEbf4IjUs4oZhkrjiv2fYZPv0T+S9llbXDl8PNwv6hR5WrkEcAqkng+KaM4n7XmGkSonxwToYWqtqrJautF2w2/TA/enHXLoTb7NHYl5UzfksfCFRqzUCrkGvmZjweGvlwY27dsUXswA5KNss91mT2g+nDEpb3YwMcbJ8/82Zb+rR/bPPJGJc0STxSUMdFx16Ltyjk/D2gzvMqe0z6NjJTRwmvtkIW8XuMbQV/rbelkGqeXyNz9p/bi/F++6XKAlepebJvINdy9yeewW3izbhCmntZr6DfO+iOqg+S7nrPESpX3BolF4Wb1SjCu1Fr37SbtDAPx2ElTJO7H8/k6u1IvF4KPDjDPECWMOJcHmIgmQJNm7IjMVDtUw3VAXVMAQcfXm8Z9DPbIkcaoi9yK2cISp/IdPoMv3OUfsjJHa8qmkKCURt7y8L4Zv8nFCv6myRFZe8sGvw1pgWxZzwIzH3dpFKc3q7trIsCv9KJw3aw8pRjo1v8K4xfwp9Lvcza9rPgpbnBaYFhEOwM+pmrEbPE2w1u5EnN6AzHX54Up4z4dmMDzuxs4BYfEl7J3Ro7xdNWTDupq2xrG6xDeBKB/yEvmcBE4xd7UD3dpI4Fcu5OT7WJVe8uJRyy3xOdV9rITloUiyFCdbWxe3CianJ7PitvxgG6o+Kd1L44yDg4VRjQ3ooV+1SXfDCJ7krtdfsB0Wvt0AVR2kt76s1GzPOeW5eW4MdwGn58x0Tqgbj4i9lcvlz06RRVuyIcraeHPzmme/DvFQ+qhymN85P0V1gEoQWHvBWiiz61Yk/AzyJXSRRIPB49Y68Deqhc80Z5X+cHaZA/9JXKQ9nRV/TUEF1hQUticXXOL1+AGHJzG2RokEvEA+VmvoLGGvb7l6Uxm5JnJRe4NNsPPRgdNyA1pD3XgNMijqY0b50nmusJ3Hbj+IauaIfBMBJXOh87oIW46KMFb7+0A/L+j6Vyf0CvMJm1e5baQ3rWoWJhogZ55U24ycnVGSzaGZxGIZh+PYc9btB7oCN9LK9FgkmGh1HZAJXIqpm8IHryJbXcFcEoIQBO/tNAi+f7Rh0Vhxw//0n7r9zlVOKuqEGkyTWjAuo9vdJD7T8TqLxYkFeDl2tKToqthIzqaYWM/N//Y/qZ9jV+GjEh8mWk7s0DU8Nl4/CDQVNRavvywcw/8TQWykuBUvUtR/C1SSYYub805sc8xjJP/x0HCKAvS/TH0psSw3NWHHNafqB6OrDpcY6JNApT5TMCHybTiFiH3z7+gGPbTXYq2LDqLccFjzBh8uAYOzHgnok4GSKYYM8Lk8VNig1YgpfrlmJ2NZdi6/vtFKWQF6DCGapcyUbWGZawqZQEKIp8jqsjDzKKW53TifdivFICreEyfG3JYiVtz5C/grVEDNTcI4kA2VjMD4ayo2Lvakjqcmrxm7RDAW2VaPinmtUp6yWb9IFN1e6paWeSbJdgdov3QdMWW9qn4mRQ6iZAX70nTO363XDkigGx7UY47hT7b6N6tduLFNQWjcZeeUDqrdeBwUijBrrldB34EhG7OMkhpehQ+gEBui5AimWsozSUedjwZoPSNjej0Iat9e4L5JFmAAp9wns2+NkRWWUenXzFEI9bvA2ns2rsN4fbObZQHjoUFNjfVlXcUkTHMIqibGXjveF5RP58vn+XY5M5XCBb946JMktmcZgC7Cp0n2fWMcKBK7PgR3779NVivchwqnFRY0Vl3ix4sMNANPjNzy38SVssJ7c/3vMX7/DAe+YlvURIYUWMpQIlCBSJ+JTWIxX11s6haKtz9mftjqPOL0+jy9lH+lUSPqw0nZ0vXREve5Dm6iGEI+mhrpObd5I36+MzF/Q+nGqhepEszfu0D+wWlDmFRioc78hjvTEJhEQExB+CwgbZRoOHV7Y0ae23MLtMN1erwUrqRNoCFKl/TtaJYnhW4Ox9hQYFXFzNAsNOgjllS0L9+SjKcUkwFA9UytBHVzXyQ+iIGXhv3E3Qc1lN1P1cpmjQLkIh2ZBT/QJdFP1sEbQbOHJ8lcDpAhvHUbRfTK5oU9ITD2xydkJsJq9i4KSnG1qN3E2epj0O5R5Pguv3itADKkHgpeo7lt+Gi0K0DlTfJ1Phm+qdPwbAkKSnxiOt3bwgVykbAd80dNwif2mcarsB2gu2B0Bw0HkoAAacq5sQEZTK3w46v8gn0lo4uuL+STjLDfvdwPyiMbzuYTaUs+NXeMAjWmha5wTFMSHtzNU9cIlg6Hf+rKxxcrms/4IyV0NLzCOKwiByzT095Yj18RWYOdK9vqmxo9BiuUVJcVr5zjZrrtNUHvNzkNvbbyBfqtGprPiEOktX6/g3I1RaenEUnh95GA6DB2Yj+7OusCRmKve5KhWBYZhGMahrqmlKsc2PSHCV///CqXA/mO/HeX8vdlDP09RcVuw8rLV0zYqqcNol6DbQzdju1DYLEBYc0wV5NDAdKlOR1f8cY/GOYKLUB4odN3VNSCK/Leswb708PHg8/H56x4e5Hdh0bnsXKn2wrkvr063RbWZKIJ84j2Jw2jTdh+ql2/5CBxwotXOtBqY8dWKIVjMzrI8MRO5NXHEptfvBSuVkf/jKkQMgJ5MqALjknUizuwi72VwISo3Njn/KFapOnkDFfyV2OAeGPK/IJ6S2s1TfsJrTjk2EFs2suo3y0Zy5wE76UyH3ASd/YrDEbBS/ugBtmN0WkN7RR+eW2+SeZCWQinOqwszl5+ON7XgyYLvT87vcKyruhU01Q/YqRSW4U0bM1Kr5MfWECKbwKso/mV14OqzcgkQ6G6OlEIJc2HCZkqEds0kZdOfnn1ukLl3Rwl5KZx1OfxeRF0BUK5Rwk0kDXkXXWzxbkf5T2wAuhKku4CngTwmxkR+nJ+Df3tMHisEwt9PX542ZhnJKo2XqeaJ+ZNRNNLDCgkz5cD1TjTAmYROYx+CDS/EetVxXT6n0toG0Um23TxJu/vx9TyVKrigCCjlGVG4LCheuofGg8sk//Vma1BpN6dCJ+b5u08d/LPJPG4fFo71FncS0xXpSVfZsoOKxJOb89FcmXG9IWS5er3Xt53hFlqHryefPke8hplUfDXlis6/WOpikf58iaxcvCLmQ9s6r1fUOIU6KYknp37kQCLjtaXurQX4UYyfvzA4kRNeR1IbdQ6LB5cLaiCa4xBtJ6CApxKvBg3tcLt3jvIPTgWebuNX0HfGaCl8e8E6AqwFxf5+rA2oXiYJ6V24h3sUha9z7TBzTWbcNPil0UoFqkpMxEYasNyAJ/HOPePs6e9HkZQOjokhEoXMgtbBBZRx2GxIMoFx7vCltjOY6KZejGOjG2GzWS4EDhI3ucZF8wfDfqdE6tjrnEG2vp7y6CvN9eGzFOSGtbeMfcjsMSVtU/qhOBdI2+zZVx8UgmI/9jlGwiMxD4DurYQOOQjCZm5UWS5ljUCqcSak1eTF9BZpZFabP8mN5Ql2MsIRVfM91Y9vYIhO1ojccnUOmjbxq5zidMqOq2kligGPHnYhMGfA7BP5AyFLuDv8Vp0rebBSjujWjXPw++WkVFJ5RdEQAT6NrUCtdPQngfdknNS8siIrpjGkaEtx3lCOdJnCl/VCJCKbedmusD2OiBOz77UyTVz/jwQlOtCBYhJU+r7Wa6gIf8im67yQXLPjrZt4gJz1+woxiCoKv5BlljreNDPklGd363XsNv9oXhySpw1sQk3jW6lJCPA5l4BUBPeYbi33WL3LMulnUFpWacvcl0T8u34a6rSCt9Cw2sLYE/EpDTQMeUIUothypLWl4J/TUCeIGp17pJ0TeEPnT6SNEwwjOjNSdYLSofM/pMEJokDnK9KNEwh0ukljCoaATnbSZRaUV3QujFSyIO7RWTrpKgv8i86bSXMWDD/ohJHyG0G5Rudfk2IgiD/ofDbp+huBz+i8mjQNBMMTOtedtB0Iyjk63xnJniDm6NwaadcSeEXnd5M2LcHwgc5kpNoSlEd0fjHS0BLECTpPJt20BK7pvJg0XhAMt3S2RrqcEZR/6LwzUpkRxDM6D0a6mhH4Dp1/TJpnBMMROhopR0ERdM4qRRTECzp7JV2PArfoHFWaomBYorNT0jYKygGd90pyJIgrdO6UtOsJ/I7OHypteoLhC52NkmpPUDbo/KqkoSeIM3S+qHTTE5jQWVUaF8GQ0KlKumwE5R2d35RUGkGs0PmgpKtG4Bd0/lJpbgTDMTqDkvJngnKDzn8qxZQg/qLzqNL1zwSe0DmpNE0Jhh06N0raTgnKJTo/KanUhHJP6zm6Sq0lqDzgyHKOlaua0PKB1rNzKkMtQcMvjrz5WJlrQuWX1vPeqdzUEpQtjoTHSr4RGha0njunMr5JaLnAkX99rMRIKH/Sev5wlctRQuUbRz77WLl+I7T8pvVsnEoZJTRsceTVx8o0EipbWs+vTuVqlFDe4cj1OVa2I6HhgtbzxVXmUULLCxz5zq3iQCgzrWd1lTxIqFQ4cuuxsusILStaT3Uq0Ulo+MSR332sbDpC5ZPW85tTuT5IKA84Mnms1I7QsKb1fHAqUyeh5RpHfvFYGTpC+R+t5y9X2XYSKqc48uRj5aYjtDyl9QxOxXsJGu5w5MXHyvieULmj9fznKrtCgvIPjmw9Vi4LQsN/Ws+jq2wKCVr+x5F3HiulIJSvtJ6Tq9RCgsoeRx48Vq4KQss9refGqQyFBA0THPnHx8pcECoTWs9PTuWmkKDgQMNMoLh0HBiZmVCcMw4cMKNTXJIDl5jZGMXZ48BHzAxGcbnAgYKZsVGcIw58wkxRisvCgSvMzEpxBnS6S+OOYCjRyTPpsiYob+hcOAlFaVgEJopRlJHFhAlninLAQmeiZEW5xGJjTNhTlI9YDMZEmVGUgsXYmHCkKJ+wKMpEaRTlCotZmbCjKPdYhDNRRooyYzE5E+NGftz2gr3Q67GwTGLtRqybi3dvMnHDGqzfgQ2Xb3/chv9dsRs4/13x802p/xuz2XX8rVXclB53TuE2rvk+/l+XSXSVls2H9NJ+jJ/2kA4dn6C/d7DZLPvvjpfh898Vj5v/j8rn//PJ31q7+XYayR1gFcssb8PXZJ8XNKYdv6t4GG9P/DfYE63qilSC6QRTxnpSBdOYWrwaS3jRlzOj7Wn4BuzaJdLHPTCxF+Lm29VgaCw2V8XRujT0LrS9ScAcZB/m/M41rX24x99/tai1YY/zmpVnXwva3cSNlWYQ/F2H/WgPB3b8LrIn15y95z3ftCpaGBj1BZOQItLo0rCbrsm8apxtemb74PW+PUPtGOo+NwKGSD8/6ItwaApXvWg85TjrMbYbm6VNg3EncW21eZ5bzQTb1dL8N5rYE77VmwvYz3jI/Cv8Ymzz2Sl2QRfdcrzNgsNVsWEK1x3naZQWb379jWMk/D8OfvF/jM9OeBbunNY97PHXy7bdqEJgvbE1jfsYDXvbsVhTLAYc6IyvHzwokFZi5KU30glBcwQH9AjtP7pFxpsjcd7cc2ZkUYwZnVAu8cag3FCi8cwDZWR2XoiRnfOOccdylhfmmu7xwq7mwgka8dka+zxRt7jdBuBkOwIYP3Nv1VRkArxbMSgXdI/KDbvBgtn03oYuurH7M/g/zj8R0U5F2ERdB8FYTMdCjwNNRSym5jIa99xRaiZ8BKiEKNEIyTyf3jIZD5SODfaUno3ymTKwcR4pzownypRGwUahpK9XRfPB3cmhwOrIHUSH0eEauYcI4NV+MWTr/9rqDE28xdoiNxAbjOfuHfILRGlwUiXOsSHmBn1AHSHo8JyRdxB7jA4R+QFClEnf3pS6unZEpdCnqD+4FZ9i7ZEV4snQI3KFiA1Og8IcIJJD71A/sJTjGtYCeQOxM2PvHpCPEMHhdYYcIPIZ1hr1CE28xnqPHDsfwnXNeO5ekAcjyoxTVOIcHDHP6K+oXxAkngOyGeJZjQ4V8qMhZIDXRtFKHVEN0M9Rj3EnhxrrH+SlIbaKfo18NiJ+g9NUYRZFpBb6o1HiXn5rrCfIK0N0bmzdHfKTIUILryOyGCLvYZ2jXqCJ91ifkbMhNs7E0xvyqxHlDE6dkue5I+Yz6P9Q/0NwAc+3yHtD7N2eA8ilISSa9LVU8lw5ooroB1Q3TXzA+oLMhnjK6ILsSsQRp1eFWQyReugb1N7cy++I9Qx53RC7bGzdEvlZidDD6w8yFJGPsF6hFkYTV6wr5KS0QJZ47v5EPilRNjhdK3EuFTFv0N9R/xjBgueEvFXE82B0yMgHRcgUXp8UrZozoppCv0Q9Me7k0GH9i9wqYjug3yBflIg/w+lcYeaMSDX0B6XJs7uXnxrrL3LniK41tm6B3Dsi1PD6gXRG5B2sJeqZ0cQ7rFvkxhGblomnEvnFiXKE06OS53hGzEfo36h/jeANnhfIO0fsW6NDQn5whHQ0Okpd1Y6oOuinqL/mVrzA+omsjniaoVfI1Yl4gNM/hTkoIhXQ96ifZiknNawT5I0jdjNj7x6Rj06EAl6PkIMj8ntY71AnJl3OYFXkyBJVzdi7r8gDRAlOojAHQ8xBN9RBCeAZZIN4jkaHOfIjhBi8LpW6uj0jKoM+Q50qt3KIWAfkJcQ2omfkM0TscDoozAKRFHqjNHnh3MvPiHWKvILoemPrbpCfIILC6xeyQOQGa0Q9V5q4Ye2QM8SmZ+LpAfkVonQ4bZQ8J0fMHfqI+k8JzvBcI+8h9r3RoUQuHSHZpK9vSl3lM6LK6D+oB3UrPmJ9RWZHPDXoAdmNiInTu8IsjkgD9CfUd7WUaQ3rOfK6I3aNsXf3yM9GhAFej5FhiPwN1mvUS6WJN1gfkZOJgPHc/Yd8MqJs4XSjxLl0xLyF/oH6rQR7eJ4jbw3xPDU6XCEfDCEzeN0pWrWOqGbQj1BPlTs5jFj/IbeG2E7Rb5EvRsQLOF12AXG0nGqy50BLTcW8acZI49nQUlN9edDnizvmipaanjfeEIH1IWQQuHkychwROYKyg1I2T2hOOTigkBxQzOaJP36q4WEUmZHewwjvKYXHUWJHyObJ7lFE9zgKqpgUB/UUyqPI7VFEbp7UnkJ5UKVG5fagYnv+WGoLItII0iU0PsgyMveGosQkykY0xqQrQaaJBhWtmdMIL5qy0olGi96UyJBQe5Q2ojQgJIyDtFGiN0dkTCxtKdqRtBF5aWKr7ESTRTQRsYTWjTxEKhqpJadSeRKNdbK1EEmAdvVrgA2Bb2gJRoQRghpqSiXADJQ7YmUXsNBlJBhtXEaG3+KDZz1DDr+GqNyFl9hGra/FIegXwUHQdgEsoF0CxGVcEueHC2WRdfxuu1JqWP7+5Mkogx89u9U/i8j50VTwWBOrU9A9SV2X75qrwOLkEpGvZ2SPsmpd7PphRV8hgWnPPPixu/9A3FOcL137NaaOUqnUzpcc9D6yTi/7xz/P/FWXrI6WfsKTmSLRf1YFbFnuvixI1ojEGYzgKz5+YCK9rfBmZ+HXCKhj/ay/0rfm47B6ytExapPSk+6fgexifLtKFek+fXZULqO/TX6+HrshnuRuvhYujv6tcTlnfVmWu/Y58edTDA2K3fW0+do9d2U5IOFlk1SD1E82PUqPYVkVsfZv6/LmbXxO97r6rF0R58fNfPhxjOSa8cWUnYvDt16uJ6vXp/ySSKbnAF5OrxPtwHcX8LdNUnbZaxIVuTdEMpQyLnTpzIvfocuqgHflft0H2sgXwGzId3REL8F1Q2uelCSn07y1v0Nk5mXODCnNHhZcIJV02azfF42no4Gz/e5SgYZN45coL37Z9XMnw8e9L/58cwscW52afgvveDfKsM7NcNqWpnHUxs8Aj9PhikqOZLnXYZHlb0nFx1ZFRT6Ieri+tegQcib3bYZxKRfMP4EBStKzcJJeqy0PzhJ3ZHYs8DtNvo6J7BUD1gxvHuQcP34JD71D4fcsbR//Jhlwo0JF6laEB0r/idK/sTLt6H5xVjzxEPmj/Sb68EMgC9+ZR6X5TBlnB0YL42OemHOESuhh9+8yhTK4S6BAocMPb5Ir0HhZ88zqgO5jLOFLSIhN4Af4F/tcMitb80WLLB6zEXkaKyZIp1bzcrJOw7Zdx8PGowb4FYYLP8Wxe094egD81QQt3MrsNTz1Kx3FFk5N/oJ60HZVpOWQaa8C+j96k0dLIQ0UeiwIULmUX3weRSvNLv7aIl7yZWYXlw6Dp4XAx0N6rFuvXq0T8FRbukyGJhdFu3Mqp3PttMnLsCzlw1HhKMpdBsU0zpcIaSn51JowLs47K+dOBa5QmaPPRLPHelGHH+fSV568Gz/fbCLWn8x9rIkDAyTgx8/moLx5yd4NI6lfY3/EsnrXG2BV77TtBR0yLTWZe3sWCqAElsUwul6k0IIYIRL3h049wi9ufTfvpT4Ofx5p3r30SqvWB4F6uGOVZjz0jcEOFbXYeX9LwTi6yxpVTpoCU2uF8OILYapoPVG5vGzq8jTx0I9iCeBriwwykOodIeiieE/26wkzuVZVjd6hEFjin+zM5pBeTwDnxav2eQ2i5n5b8wk18XmcMa7LyWPCEaSa5qXe/i20j6yArOS7cGigUb2x8lm170wFT5+jignGG3GVLPiidSPF1Zai0I0jppsABNw1DiZEFTij0xrGkVoo64XyJeGHKGWmjMqr6qp0rYCxlHEnPpeGu3XhfQhWMas5Z1lP0Ra+N8zKKSefSssh/KoeJPddlYU2L8x/BZleNDzvRLcH+P5CxXjuC5XGuYpKAoQmP7qFl8ZtMv+SBc6XBoaVZA6Ww1/+FIX/aOPozJ14VsRsK/hPXvae4vwfa/W6qlnDEhgvCWvaqAeZL/ODbOT+j/xch/4tmT7sOvkKVjtPDnE/rjcL6ae9pHlRMIAt/08SWRaj+Gi7SM4j3gOVZ6afdpjU3fxR1ozRFuVPNQEHWkcbQZlRFgXF1I0xjsRlDOT2WB+LCcZxlWnDSIMnJzi00EnQ+tWV3fyega7CeIDISuXiZhphbbbrJ0W+qthbLlQ9yXSmZa7Qv3XspuplbN5GN8f60ydzOKbkJOBm8F9NFlKuz02DefPUSjiyCZ5VTdtBMdUFeY/hdSPGYmHVWzcv3KvSceBv5Rj24gmrVen1YDYo7g4d6Yi7tw2LrVL6PvQDoHZAqQDHADcGKLtZ091bV1/mvd+Q0Djpb/ynGra/D+gY1lHRbSjRUSf/eOVXTw8h1tr9SpI7bTJYI5PDuqGNN86k7MbcIFRti8s6edvOk7lRYEO2VSfqYPk/O756NN12uOEW7BwixmvJkpvjs5HWtjyus6CU16yUcLJIIKlwh98WKA2klGHK+K3XiVFa/Mm06mTQgFOSnT7XQCxgZQZb3/JPAW/Qarta7sUpdXFRIHz0P9BOZEvYxKqSYwezmUdOzkaGGfW2Yb47kkiarYzZSEie+fL798M+LtnmRT683rmxTlDeXJmAWaStsY4KS7GV39iWThsYtxSwU5bdz3vl2nEWWlIRWTzCsstT7NSzdXTp6dxLDCNTwczHzQcMHjjFw9aie5gc7M75g62HawvzDIBYZrSnrigqTaSv61ljFxtF/3YANNs1/I0m8O9MnLYd7ANyR1Iaj7RZNB2ikh/D/lpQ9Z1A+rwHoMM4yuEMEPYFKA3rtp8mWHegf3LHBnWDDbsJAAfpXHsExXz8Uxk5thF7bfAObjEbosw8YMiFOG0kMpA96+xOnLUibtx+LWjyiC2rGexUocXqWWLhP5unSKOknWKVL63z0e0MSJtQgY6v1hdbX/uroK9YbdzQJX4qwJVIgGvM9/HZrCFZwG4SS22sRlhOsTmFP7hsQPtfnBwSza2ie66vO3GzUyDxuIVsT6xGvRd8t+EMV96kpAO7ZC3zco2KJoL+oZ/HjfUZRbhzGhjnG8BTmziwjYjTXeA5tnyrj2JTQ5XPtP/Gusbu9ApcymHOZhuLlrRJlrdIbHSc/6HCOawNT0eLX2zOe2uIUiUiG0eQbkZZGiZ22EFEw5GgUY2LtNO8zCg3KY8Wdl7F4l2ba+vr2GHdKtydnNFGN7Xd8e9bslQocBf/zon9Z/qWdCyH/StIV71tr9Pl/f+MXsfCGdls9WLkc3BGA/8Qe9PT6GVHvg5It81/d87cmqQkigFVIN9ioYwaIKtACEgODK8bqTTfAtZogEg1N7oKumVd3pLZqTyRSuXhZEPUUh1GIsXHno0Pu12d/qjhbubEYCKoPw3Sa56kodwXMu9D85XUHtb+cCJG3fkwd+THq34rOls/DwcLoTzuFm+dVnR1AUFD8nVJmPit42vIGqLsppwRFfJ0kavhh8a2jhv398Bthwm1z0cho8hvuLYLvitzgczo2d0nw3BBewfDsSsuYB89u+P9MQJQPwKIR0N/y2FwgbPTXo5xPAyT85Lpzin66rANY2tW5/C1bxvXn66sKe2K/4ueSHH8kMrBHdkQkT3Mos2vFzgB6nH6k6fpP37Rhh33oPSLlQpCM0YLYDXvyptNqtdRJxLAOQ5gN8OuA7Xzx9WjfKU0pHzC/kejctxrJfaK/X/P7srgrnaVMX6B6lm7y43/H6DXjFU/6cp6XFBHMpSK9C12iudtNNYg/0sGx0jtP85BxcyFjs7zA7W51v1w38Wx6RiQDvsNPHyh/xnxdr++ALV1Ze83s4tq/0p6vyRgmh6/vvyut+Aab1Md9pLyQULbffMBS5Jw1oHzMuBwx8Ci++9KkA7C6IkW/0O0vnU/vuHvFPb/glEG05xZ8iNmEnt6B2nrxqn9pG0Wauh0FYCHvpvhPyS7M40vDU3P8X/gutihk5yp8t84BS6bAj3utkuKYyHFTABoUh+bAbE8xtbjhhq2Bv8vE3E3lIcGf0hv59yqWGpTeXKTz3r0F2DMhSNe2fNcxfrTeFdoBH6e6+IMg+JRr3CklY8+2lA2HapkFSOvCv9TR1rK2B9oH85fCOKSKKenZv5MBzZMZGS6FKcnfRe09UyMMsib36vanzEBcuNd3/S1lPby4uAXhlI4jsOF7kYw61wEV+1nBpIJY5u3C6J1dzUYfzlPeLnG7lPYOYLoSO9v5OEXWY35x9q0+Hq3SET51c0DwLHeKZud03GyI8iRFHBsDrusNSnpsLaIQldJVLnL/ZNvip6mTzyey5LSkAi2gUSVNksaBDxuMNlWnb87w8B8FSQJXwAi2YeT4lnuAP47p1/iYOetsM2EaTd4j+/+S0nqo7w0P/T/eyTap4v9l8W/sNjUWx25U3OGlwSTaXiMUj+G1SSuENhA3KKq48VlIY/lDmKBCOsfRUOqATcXlcceHDqs0/J5NSvj1HS9SH3VpSujW5NB3rMUo+sijV9ouI1LS0r2O8Z4yjFWa8+/oH/Fa1Q2o1KYFkluEqhqfOOaXzuZzHaZdNPB4h/LPh/+H0k8zbnzH7Esj3XovB3JJwEss3d/Ffn6v7ljC6gKaO8iv7O4GmeKuwE/fPYWz1E6baG5pnnTSXjD5U5cN9s9bPBMsaqYHz2QouCFhWLlhQx2JUY3iHveAf2LDPqJX7wo4XFUM8XlJde9js56O1HdJthMMhcahPjJjUg+jEtzjhS7AWfImp+lCaVEa382uud1BkWea8sb7p5Gn6a+dwnd8e82+fVg990pZcjcSTh9cgWxyf2kju2tSj9n17GA2bzMlrYd66K4zv0DukZodV0tg2Ags1S5sHf+Z0m342gngDp6/cv7yKsbpLt0Kwl4frZpu1xmbFb9qnrnUOmNYe+ivSMvpc5QF/UdalGA3vcOvZ5Vl8q9q53ct/Lx2JGNdb2uJYzjYu+olw13iHOnv/N/9xROGG1/1aHSUGFmYVZ3ioyM5tqF8duNuhT+q5+pszAusOobU+/6Acb0DKGko4u9+n/Dnqnuwi39rfLmIy47KXW+Yx2wJb6LyaXvkr48UXMrb8/uCrN8cmCNADc+sb+zy6Mu5qFDFdTKrbIZsPRVLKAJmjmXjBK2o2ODsPQ1m3y1XeIm4g1KDI2SZ+bZhVvMoXJhlrurPMdsoMKS9zG2WtTo72iOpR8yMSPP6jvIUv+8qXHRVn+UTMCAgqJczFX30LCmtbexaLa/dHwaHCxYYId/ha11p+Ri7/IhV2OWTWLlzoqlU++nXbJNu3yEZh22y58+7cTQrvq3tsK5Yjr3TxUOV1/+LA4kjs7KX2waIhswPBdYWdvoSBazPYdd/EfbbtSBip10sY9X/nbZpp2OQSPxwVWesjrkN3XA0eALK7jahp9u+O2/A9y+WbVbsB8aFPCpuweH1uOsrEXg8eGnRw1B9BcR+7WkeipCo3+W4Nb4kYusHXVVQTepdb5dg/mwQHkgzV1x/CtqqpT03Im6++kQ7ZCV75FMR00lD0ncfAyQU9sQwQkXXb/GPEjXz7ksdUh3czBoDsB1dSoLryZCinDufGPRYCjwgSOQbwSLujLSB1f4pgd8bk/XgzncGZHpHHGdOwV6Qjhy7D+iCPA4icOprTxqvlmHN0POb3dnZrRmky3T6UvdjFDzZUHuEYd7dMf42RydnJfvsvs8DdhisK4F600d0PGBV7rQ+mAl/97qzSMSHG6XsHcFDAxlt/G620tULZLOyen9xpQpTDJM7jrSJ4Wz1xpw1AlQkqtru7AriqxN04+BAUoyZxllPNHc//c/wBdslA2LyYKeKf7k3+m3jm624nP1pHSgZTKd2qYgQ0JPgwihHtCeh9ALyyS6d1VE1cFEUKP0CN6NmRy6/7gpVOHJV5PUsTg3IuHI/iGw1KDcyDKZTs3QQMIooTKJToXIfM8K4eUp4elszrbzk+7YCxKZxU9N+UegSKRn2hpp5YAlEvnAl5sz0DDw9IDbJny6MItEum+RhM5CpAffJdRzbZLgQSQC+cCM24w+ZA5RU76Gb9JB5T0du4BAKNuKKGGJrIbVywmru9HA0/1EcnyyaRAOHSOg5T+9C1Yk0gvqj13J8R7cJdSTcvLCcdfMwKvJvXcG1U184EUy3WfgIZqYIfYIa5qIrBFkMVRVRZqb5icqh9C9h8oS2FiQ1Jytbjv57aFlMoNKxJ9bbN4pOyzf8v+5ceZDJxYCKT2eP9GZYHPyz/6infz9dI3MqImWQU7vZmtuT80+YTaPT/AY0Ln5kzYEV9E7Gj4fqmhBJAxEbHO6Qa2508r1r9cFE4GjuKDe0xTrRA5e5Fp5pr4I2T8FOBBIFkXNXKufTjFmNkfO8nv1RN0/DtHsrqicU3/MJLVA5NPbM3+gZN2peVEpw8kbINEMqoYAupKNdVpdAQAr0jVYwSbrZM6Z4307qFDI9Klt0eS0R+1SruD3TuCIq+iDWSEGe4OV/TWxQm64XF+yDO1xfiuuQScqHMs1Ti7Ze9eKXe7gd4CTwlZI3Vw26XsDVCLnNRAeJc9cCoxXKHs536QC+9M8vkZ67b0mmVk517fcUmDLJbOLQ2v9uzXs0VLvW6ast3AAIFKm6UPGvxg/5N+plKcNrT3ijvveL/HUTA/lvPBg5Mz8OAQ/Rz8MjyckiCkxzKIJmN30oJPYt0/5UZmAfOZXdJXwDPu/iXOVK22TfqkIC5FSJhXMGmQBEG0Ku24gVJDw1jRkdHgPQKTIWNlDEImDU8dGCwbUMZUZpP+gRfshl4vQqeZY0pyD36bJaDveAhRtCvP01hmy1OnNEtsPjiVdQhZToo3gl8Q13GV9FGKTOykPCzGVGlX5S5X3pp1rS4i1eXEpSvK2WSnAMnaZs7OzyfwJ5kY866vGX+pPLmi2GpEhbgmd+c6EfX0GefGilyfvqR0l+21+/OGLd9U0Mcls2PL8VeRoU8MS3vk9op2IZ5H9oB1HZ5tPsEmcoSr5nINS+dLBngvyaV57AuH7BZJMze8ihxeMPA1xu7fGHPhSt3LJravoXp/hi5nrHcDZKhyLa50yA3aRftER0ILmy4Zi8fmdu11VOsqxgOgS1zyYYp+SW2FGGBc22djsYBEzwhLmPaUiZnv1ljEfBoV3RCfo2Ux80WuEoXc+de3+ZhEzwgkFeQHOseXOxTyQupj56C+3Gj4vpvvaQ0YxfV2EFHhdKVB5sZ3mY7wsqRgkS2uaJ9madynqboghaSCfFzQXyC9S2bKqaUV/NaVS8VOWiiaLRa0AHct8ZGLdxMmYBPOlWeXyZUgCqOZgQN3s3BL0RmjLpgYYKHnfyzeDAxjQW40RaB8YzNv06ClDJx3qUNRPB1PJW9rG3vBwX8oo3TUo9XGsZ0BJycfKxHIV9rPoNmMGiw5q0MiRAD4JaZgQmp2ERs5O6frQyhU6hW7sCeTLWTaJYO97SuLyVlEsFY65l8jQobLQ2uwf/7dklkkM0uB5z54McSgzr9qXdtkoq9ePlKmXG+S06mPN2BGID4uM1GpBEqtFJLnb3aE+CYmNq4jQuWX7tJAIEToBQWTZP6dib8xwdjByFEIDofXpYgY3VCI2mXma4HChNt4XqtOfUSjDpZaHy1J4EMQzDxMb5zDTAESLCJxG/nKdk0lgarP0ixYDq98VgORhsnmAUveD0fteo1yI3U8wOw+qfB1DN/ThPczkOrfHuFyTaqOW0JQZ0jjoWUOjn9i9+ooQPepkXKInBs6kisW0pcrJurYX4/EFRULnjh+THOVxTbke1Gqj1vAQoxDUiJ6uK4MB78cgEGj1XHHf3hAZwqUROubtoh4bNIPhqHnAWNuLZ85WB5GNsEXRFreFusaSLTtawxxeTWkhVc3vCmHfbdYEL3AUFj4bWteDc8jGljCA9CVB8SUoo6emSPBDwVX4fDEfwJ1IAXDqg9iPZVVhs0mfD1lZJTZ3XgS4uD3/D85v3PqdeP7DCezn3eTq4zKSlhLsKP2I+W1oFVqTDwF1ynDFlIbolwCWSa5FpAvZK0LCnFLI9Yq7eM8ZJDHmwRjm7QMBBwZdfDsM4gtzmRi3QIPWK3MB2q/mrHgYI7pTUQicKudPHfqgdRg2fMAKvwKPoVWXhe8FOo9JUAn7ZN5hfaTpnYJP07eH6xBOIKRyAC4ua0VxK67ZPEDCs8q2ozuZEIzkNCOZcr0ufjrOfYewME/MfQDNO0+GRUvAZagCbTCqJ2C8sLTIY4Vqucu+iMQCWWyx+1noa+rG2IW64qafOknTEFsUGiKmpj/L5FX1gElUdSFlwyVWOw8DObK2VaNwiBILCa27QBHgJzIjcD9pFAb8WI6ltKR96YxnbqRgTn1nSA3SHkqyzk0riE+ukVGmWmZPoXYO7CA5rXk5dG4ia4q3xFdg/BR6ppls/kz2GHMrZyqzK5w7hsbVqK900MsH0aJHPNDzG27LX72PM+nF9vdnvmh1N3GzHH6JoypNnfyfAY8PZiC7mB7gE+0cy/WQQiuu7O723BJNBbd1t5lYmoSwZyF8ZDkopx1gvYaoAq60gU84DhiPvCxrHjFZsXGXsNQdtE7vHNZyQkjOJgnj9VduHUCfSTQCzarBU8oQ4MqsjDpOCvVjbRwMIY0mzQ+Hgj3FWCBRDezwUHiHmU6QFfWMOTFjt9ZBRxrU+9EsAL6wnSL5yUjZtkD/3ZNeL78IA0fcRR8FbcYfmfsxgjP9m9phEBbkYZVegXAgTS2jKucrwk2Lo66MSSYek4Iox9RMz4pJDanhW53ymtqAcmCU5MJvzuMob5ExrWRAEFOE/tHcLCpklB2OQ2Fwsc0cPJ6UvIQH40QcYa1VS06/soqooTjxjI6ra8fNWOwdJUT/RxTuVI4Qh4cuk0/0xYo4puWMxgG5JHYha8oakJPP6b8JZvBNY5zOJJRpBUv/R/JZ06xSaxB53wLve9JwFRJDVwwnwhIDVDtptPeBdLZytrgUHfo8h7GzpltqJ2eyJ/ZT+Bsqo2QBrYk5wtrL/X61nCWypntWfOmKCa4VqF9C3neySRuPdjjYlkGLbqjO5qAyv+H3zkWFSJ7ww17eYTpWpWN1VB/ga2sjxqPm9macRuhbtbxmpgdfb6cqQFaVjzUj0LDdhpLumLRiY3AOJs9qVzkH3HAwHz6YLS3XPomWRInc0mZo4KSh3Pk++cfqWh8rwHYhCel726e+OZlsxjfA+htXJGxf5npL5WW74sUnzWKbRa5iTuW1lJpYRHzLMbQsUaBk0ATreUQqVkbWDlxfOFzlYaH18eK6gkO642O+tqYrwAZTIhF1sW8MmYa3a5/GZwCh60wZYlkKDbZPrS1OqNB9l8ZMWiNk9ozhLSMZ39UkhtbdgLTsZWGtlBh5CJRK/R/KeJMsOyhspFZRqyGvRyDikA/29Jry/0TMFGVuGLdYXQUZ0Y9aTGloQ1ylRMzy6YOr/C5Xdj2U7yNDlrqUYnnheUEbm/INaj1iPCaZG0L1fBerioCSDvpz8bmlWeeDGjfZsHH8YWKQQ7g6a3YAr1v5GBT99CyDHqqjYy4LDhZi0DUxqde7IJNVsq06dvrDhNaltL68InBXt4CkFzYdy9Uomp4luaJLyAZVRAQlJuBmMV/noVwht/i5XQH+hugd9fKwvoGbi9hIrdWIj32s4n6X0iiC2MBmCEjdywH/Nnliy5iLB/0PxJyTD0kX1ldqpkVuXdO5RU/niyGQS7El6HUAtHqQCUszwM8f1/1S5B6rLQfXfr1E6tujVeRxwifED+q1jzfHouGpQYWKcrOSPWCickhH1SAkg5V942zXV1oiov7y3KWLxZEyEvxlGBEo9aNmw8KKKIasnJsrKJSHafmNAqG6lWHwu1VozKHwBrRj9OVY2LppxFSNcpMW/O3lTKKa9vyA6lAxDAqtMZfjMOo757+WzclD0OTCxTvz3E6HOC3UQ4QzFGePMl9lDY48AJXGoJlYchVXJX6Gxnu/wZmWM6LcOv1R29MZ07WuKfSMSiTTyk6CVw1AO9TuhsTll3zy+3s5q1sOkR2vSu3ITUFs1JUmOheCvI4cARQE59VJKAX402ZTqKSguu7Frjc38ObplJzpYI5ox7JqlHrxj0vdh/E9E4vQ35NHCt+UT8MNzI+20di5I4YTB0NgFACKY0i2bUhw+4lfAKQXNkIpD/9+Fmz9fyNQ7wRzHejJjb0GclIOMdInsmS64XvSTtgyrkNDhGdcBfKEAhM3XAGkp3X4Oj5dZ9iXfsF3YMXrD7sIcKc5eMZ96YG24OjfmTU+7NbLSC0CTFOgwk8/NgUWUKRm746dQbuS3FipmJ7SoRhlnDuySD9K1Eg8q8s9cXbl9yK1T87YuXGBzZ+xehmoQbdLZd5nFM9uazph/YZGOzLVBPz2+f1DvaqzcVjckZa/HAUe6nW9/uBIDaBVorEgT+0QCStquhkUSsEjOegs5adCdz7uM9/w/XZ3TR3NIOe1E2SCflRAaUOe/IrkK0tcVJ+8BASjlR7Zmct+pN9WQi1qzrwkOaTpjBHAvNIgLWuHQlK9jasbjNz8zbzruNOr4VfeQSqRybK2LMTJIw0Jzq7uQo4smYCpJQu8gxjnyE3vzuPgAeNczJPt3cnBEhaYWcezhmrFD6jNFp3IScvX8vpaB36U/JNJTFUqIR+4zFnMZ9CUcwc2QyQ3k2jSjclCy4H/t/Rg8vpMdR6vhk8F18a/jVNq0IrbR3yTAVLO5UbODKQfApD2h/aVqnPjgYdMLN1OTSKaLAWBtGpRY0ONLkq39TZQ6fxRD1hRlGT7zs6yltxAHAtoug4B51aUIV2enKlpKrmW4I3382KoXUTYUHyf3Xc18aVfHWvJ81HdUGxeJsyUiMLCoYiDysB1JA+FI4Sse2JDb7rR7z7dzzADvOwu1vO3XWG+rl18TutcF3Zs/M6E61Fw3RLjeqhxQdBNyHFrjOMc4zrBuLw9DO/gsBrdVszbMGaJt2PXUudbiBR1kgpzcY2Ic+Jr83u44tewSNul6AuiDD+YK/3baXzYjrI6SrDJffuTNCB+y+2bkj+IlqfOCbnKEodP5Aqb0d6wfT5XkBGh1nzm52ci/waMtr2kECRqhCK2Y6gU37EhPnyIPWD5bQZ9JSWir1XJb2Add1k+Ggf+1xBcNRpx4qgHreN4E+UtT2+7ofX6xPX+K/SIqhcOaF7D4o8QUnFaKc9j/w2Rl1zH+alUBp5Y1N2aXJ0/mZCVNQ2xWJIGI62zfr6JPZNtIlzmKyR0m8MPjmY2q3ZW0p4EpXJfzzC1FI+JRvZoyS6ghBaIBgGSKPobXzeoo7MsFZ/3GuBSQMkisR/aNv/55oYIwWGJi6FXYzzvW6b7+fZ6BE9rTKo9kSUnwi4mLVtsaW9X87R4u3MNahdU8EQLMR/x6dhIb3t6HbcwrJF5Pb7bp3Xv95xUvfLZnGZ372x0b7jTLU0ekB4vQiyr6qDFkPYzf6PkOIwBj2QxN1bXDXCwqi5SK+rr7N5Nq8W67yZ3/rxhrvCPy3Bn91goqzO0waEEgtdBBzcCktE66M3lyjKpPwWJn6Kg52ryOJxmZTdK2epiNB38RjGj5ESEzkBg3ScSGEuqFsnIfFI2ZtGdoYU/MhKXqiI4Y9sF8sc4n9VITa9BxhBhWnsz0is4M/tVSQe9arlLSDZaj2leNGKNqAFU5qeUV5j5g+2GU54gKqwprP4kTtybv4xTPEq25NRUDKY5XIFjYN+oiYjagBdJTV9IfcEynoB2MWHRy9MKYejPW21nHbbQaYsLnjsOMFnRNItcooPMUJaRADDoF8JwVAckO7t3praoLp59mr8Xlk/65DpfmsOHiK7m1q74s9KcLwrOtfbs+CrVQ+LnrynOCN4VRiktt6TOsptYlCSuluTNNiOL9Kfa0g6vVjw0L7TJGTNnQK6fvMLM6ak+6UYP5tT12ZRtpJWZ2TjFCajKzlwjv3gSkfsg18GvA+hcfm2OqKHtCnqiVmFETItiEp3VzvnZRB/ZhB8SnJuAzPfjfWTokKOxQqQeTChGVKp1HKfr+cZuSnxBSqS1kLO52e32VI9GFT3Bona6fQrdnwscG2vKhhUxX8j9TQ3OFk14IkH5wvS0fXW/tq/qzPRFq3R+5jJJUW0tL8/gs5UB6vvohaOGDD9w40T0MA4IEJh8ORQxx+cAwERfFN2VmzLZ5+pjc+VJH3HkS43w1pQ1+tbDjFKAxudFqqRyTFHue58KeIOO5NWib5NhVFWMSnRWlYqRvcCQP12bvrX9CIrGT9bgiRgL3GmieaivNkMG86vZxHXCuYYHscZfmTQEk6FdKzmWzTg+mrr7wWpdq/rqPhuO55nKNqHUyjxE1cS8rZ7U1c56v7S+clVcJpIlVryhZs80nOqx61LmKoBOl0+ca/jww1vadZHjLX09BN8PyDesJt2dr7juGMJ7CXxho2TxI1Ev6TQZPxYFiWYmzILPfgzaZSHY2QFJ98nJ5ObXbLtOz/yVx/mNr3URg+x6VrI+9ZDFhXfzryibg1qedGgDZ30uZL6ET0bM/z83Dm7ME1J8TQjmmqYWqdrSE5+yIvRAv2TAsnfO81nG3uJnw93hoQFfGHMZ8qt49AEYJhGmYDYwxKlqVbojzisej0oY1SGoK47qrJeZi7Cgm8Wc2C2fpK/PH+DnOnhrle7xg0n++Y0Jih6ageXe/JKfUy3vIwb8tFqevhot/mpKPde5GLZmO9V8fbWZg+s40dzIgvfL4MZUg09/7dI214nsSOXdMr9N1q6nvXbpsAK/3ubC75ShU59q0/6i84rSOynyOniuduMog8Y1/dUtLUT8k8tyjlnUKKZfoLCYXhuaX6FlcCv/j6hG+zHXGHTs0YcRMcRCzD+ilUN0SjUwrU3KJYE6ckMEvS0eYUhiqYRaWVgQT1jCijOVom3uJPN/9lQjjnmliUOPyVhklSF/DszUKTrmLwl/JZzty0mNTxN6FmoMaDT7O4DCHEYoCvFFzrtDxxyy7GGIxUQLPjXaGEU+o/kExsmSjIWW1ZJyiC1wZ4+ClruLN/9e0Cc/JmY32opKf/lvMP03A1U4qvOinauhvB/q3YAjXzyWL2Wzn2wqvKPtNMH4zxvj/03V1mv/Zt58jHfIeC5ptSe/PVbJzJnqt7/fJVzerupI2KyqUV/1dwizOoxUFIa6vFvk1VHeT1VtrM78Gy2WB1Kd3PzoyTon3IGE80bnHk1meo8a01F+yJ4JH+6hnIZsOMbJ98FBaEFcOuLJVw3kt0eoTHrTyOcciqNuwYgjk+HqcZV5GU/jfV8mn8FsVe2QeafHOrmYpbW/mvkxkxWvPW2nKZEHF7xgZ7rHfmV381y+O+t2pxvIe/iMjEaT6nrsDuCyw1cVpzKeXlyCZYMJz7JaryIXEThpHewiSoptebDhxEmvQ1nVBx6wH4jF1Lhm7GKRqvmnMxjFSzmxQqcpoXKklea6aELwN+9LFVwj1C1SPiOqpm372VAWwmKLvZRc7AGNf8ehdF6FFzVM9l2/kUURaaZU4jhFaVn1M4qUv9Tm9EZMk68Kqx4MrxlZK8Iq81NJYxlZ/UuOyT59zZhqeGng7eETXl/j84MZnB9oX5h2ITH6Oq/sJeAvfNLuR0Sb9EKgqm/Y8vrhzuELMxxL870RGAYvycBl+5GfvLZU5uNEVvAWFwXXL7r2kiTzUg8Nv4z9r0/KX8tS+F7oiYFpuVd6XDPR+gkOaIqW/pbIhv/mkiDGXrpPdhZnXf3ghqInpr0wMrX8VhA0q4MgllAWPWRN9e39606FK5W2r4VlKhyPmyhJpRyfQpoctcVKOilh9Lj6427Og4uurlzwLPPyN4CeUdnK3GyWInd7uuJQ3mUXXodKlvy4ZDS7UTmTRnqyymQgITGRlBPgzj1Dr6ob+oXf6WCWsviBSxAOa4MhrSuxrE0NcvJo9QXBsXbjYGvQ6S93FtQH0krVc4hfG9YvC7kcQ6x73MMwXDCUtkbI64N8M5oI9eX4YCnBjJLHXJywogPoTmGvhJ4U2roI47oY47I7Ka3pRkOzhBXfO1J+g8nwmqrf7no9lMZWTxhXte/E3RVCWP/iRPFR2PLsClaGYPdU4k+1jxS9NzX5LZRmCBvaY/CPLngiAEDVfqfvgYE0YBz4nzgqf3kZKNR1faRApqrrTNrp9vuNDe1QVG/qo9NVXOV6VSgPKeOnaPpBgWiPwUvFIDKsVhLq2fhqh40DrBiHqarH1k/U1CuBKWLYMp/mSKZEyMis0zpiaUAfaYGVBjEmRd4bP4ds5bPuyXgm8yzrWdUzg2dBT68n2ejCkX0e78+S8bGH4tMYVwSFkzYzLZDlbxQwWWiY5DWGFe1xXAV9Rkk9qq8bcb2lkrM5lB/KlZOFtxmfjQW8VROqp4pzE6C3A07Y2OaA2Sb78FpceocxOcr6q+MSr/qQiQ+J+lLkyf0k36DZV+KFi6fAsow9Glcwe7+HeMHkA1UTuH0Jd1a13WZt9r6xNrJgeoxMr5n/I/rfj+TJj3SftfzJjkN3lSuLaaxeOzU2Hmw8+TOURNTa7FfOCK4FdUId4+qTLOoR6P5p5GW+lm/uVXg9T13DbBm71HSIFUEy6zN45GzYUcPVJyLxAA3V+oby/8tYftmjiV4Q45KQ4YsaL97QjY3g5sDLkn1ZpHytf6jiI4J5ED+OkYNvVfoG303RwyaUsjXGHaHv6BN0vpMvdwktV3rOelDrMEaY2RKuFJ3aygasniIampyus/avr/X/b/HPaZVL0MicxSkE8o4k/g0QXwdeQXCLdPHPxCxbkFRmTWKZq9H+uiRl/uo+mEWPyQQuo5K/SQPiw98m0vgp1FCTUDEoPlNmoz8vew7xVTMtmfqK4CQPCliTM372Nd8qGbvetkjv5u4YHfTSxvRKv0gzW/LKIOvCewa2cOSDOnrUl3Q6a04v7Oket1vlh+pwv0zBlGpUfMy0dYBwxIHMns07UDAVrrd+qI25hcqv2CO1guErKHYlworf8JWN+N+W32tvauafIHVKtD+50vHCiqXcQ0VHbXe7+PIo+mJni3yaACovo8EhB+BGUlipnJopP/KLfi2syhY2mT/5ZJ4x3oL99rHJxcjzw4t5JUP7p2hvl7Ppdlzn+yThPLTAz+LC4Ba0p8De7hruTXh4wTtmjEVrSZAAbFfloiBNONCL7u3bB/ljQ+bFrz8Th+gPm8+Dvh7oPmf4RwXxNx+sSpO7y3CXRzWrQALABCz8etiqgf+TLbjWHbtXhkLSgHHlLyk46lwrM9RV8Z/MM/oNBlT/WfXXDHcPEBGVf2oAfpWjLEhCDeL4J27gJJMhpn/71cjP9rEXfb4P12yx/yNiQ8n/PYNZ/7V9r105rYnQMXN8Q16VaOekOVV8d179V5nHjOyR3Y5eEqLG5F83IxZWxC1T/Eu1QaRA6G05ZZ60qQixAP1167f7SBzlQcN/MbIO+/jkZBk1Qvt/Z8DDYj8qGdt/JXYeC4L+t3f/Z4ylGoL/e/GaMg7jqeJmlCa8Bvx7RjUpAY1SQsLwSZ6TRh6KTOqlgAlIvHkgyVYGIy+DNILiAFxKT1NXhPdM8fnHQOPStL4d4+IT7f/6kvwqkdeqOKBqsyweFByDyjCg8gUF+RhobBMFXL5mCn9NPNDLCiSnXq2MQEIwheQmW8bZUA5CELD+wbUAxbgMTWH2KgF2U8PzPM2Nwa9L2ARMPbHrsMiu4ak2QIzW3ezoYNXHHYoLnWbZz7VWjOJEjPk50qoOlWGe3pQqJe0yhU5tAR3JnKm3e7Bjaj92on33m7TkwGjTrLnBdgUBOb27IOMvWYfHQxHKVVMzRPyQ5+0zc20PpDc2D9BqpsqMBQC2ESht35n0K4W00gx2EglADJ5s+eay+1m6gJOth0pesqZj3xKt32etQTWoC+x4nTgFa7a1LO/LBbC1MAgFYe5ZYBYZk5fMeYaLU9TACefOsjkbbTUTQ5qZlyYgp5RJi87VpVnezZMWrXGpuWf9vHAJpHtKwExcNlpEZJHyCILEIfU9WKF1mWdu5MBYDiTe+BJyD33r0NVZhXLeSE2DeBqAw/UKgnJw7ENQoDG6puGHzaX4hUnaHQmfhE9dBj4BPTVGnD1mQjBV/4l5vOi/mTI8NiZxHa70JVrBPUQqp3MAqb3sc7eVZ6t3u64plhSsEHCW2cy2eTVQtZwlKssUWw3Xlw2b9P7GYnL5YS6Wwg078oWTCg5eTjJxXcfklXw2yxmLOM4RFJDJltPjtJ0u7xyfvJG/EqCtlkmbwuhVs65iR0OLfekcOhegWNblKQUTnRkINDOfB/tQViDmyt8awe2bdDS0bv0qMzyIq5qwoTqF1a0nskpAHLYnTtRG8xMO7fZK8v7d+y7d+hqgL7wf1I833nBEPgfqKAqIJHpnE2UMc1mf16mDPsBK6oXvyU4S7GtFwnlkebbuG03XoFh9jlAXk/UhiQmAGtULwBkvPhBBflIRU7XPDD7/SPUHMSv9HSfyIAou9cGPYZjBd3ICQJ2/nr5Ib6Zk8+j7JsbgnLeThKQNpwK+Ve1zSF3HLUc/kPsymR4KfuLqwNU1jM8PvtD+v2vIiQv4+2OuSaObwylvi80X7zNe64yHaLp9+tpAApmr2Sdwq5iu2Qz+J+Pc+8k4QKP9/3NqXozXBbQbRZYl1qJPEP4lHX128JEjV0tKOt3vg2Qcs4DEV9GluflEoqS1h+4aoxltyVUZQfs1crT1Bgx1HwvNN9dtl998DZtp01YGRGMWRVuHmW4yDB6bYFM94CC/FaUSAuG0WRmXKshUlkbjmEuJLvMSywyiEo3zZ54xICjtgnV6Be/kBQbTxWU/kTmgjcZq0A8bv6vnXc8TDHBBNdquHyg/VDgjjExFJ+v4Flrx3EH5/K/2usPfRQ/BvJcFPEld49cjepDI0kSBGGhCsWEhZLKH8GAneWnGWnQjEYlzjCvFB5lknPX1QRyenKgSxxgDk7KZlenWzvs/bSeH+n+yj5oe+QgX5L3FfaSha6vM7DaIKk3EWf6NAniHNIEmqs40KpNOSmKEX7RC0f+vVQ3/oSIz1bVB7Gb1jzPwTldYcI7KRaaTgaxzKls9Fjv6cWmRoBMatmr5UH6PULkHYz1eHalbUlj7JXc1WEd+C2vJtAY6ocvV/uk9YY07esDsQhkQZImQo50gIEAQnqevKSck7lbgFJ12ZRxG7u9R2yzel/Tw8fdWn9P5pAeNowvrNWWgycwWQg07jEC06DcahfQaZxtn2fpQpnVve2UI554GgdE+j48FQT9ACKnzGbFTi5WRMvUMRQfUa4cPgYfVXFWG/rJ3mXH+r/FB7319giyN/R+EBC4mX3MJbD+YE1g9//e7Cn8mkMfBpJ0ECkXWgbqNuOC7qBPZqE5amRVp8m6oMzmOjpybqpLiM0MsbE6AmXGwRCyNRtbrrJgXNblfBtfgoglMnDYtTv+bur4tH/4WL4uaFtrYVADI2Scse2ryvj/n49TncjgbW25tcETurms7gmpNQZGQtWHQuZkGJrxn6JpAfbMtrpVE6LIBmw8oXUmKvn5hnhEEDDJILI4UjEHyY2zkp7HxZs5+cSC9665qTVKOaOCaFn+oe7DweO7iA664v/xrjsMDbVrmobegMAzg8HssEfDAq69+lgUoZRHGRYnlEIjXIxlLcax6VFJuKH2GJVz8NuhBOJ6JWlAu88raMcbF7SafhorwP0T5uVsaEJZhhFYHzNptLX+DoCwD2c1ZuQinXwiawRgirtjyF1li5lO3IagifVhyyfN8Snix++5C2UNa9N5CFYjrQ+aLr9J9qJXd3HNXEDv5YZ4SVaTOtK98yGkimXyeD6APkw21fcMF3Z1o8QcuXZN5Podt5zGFGYQBDIU1NsKyt2iAhsSsJar7cTW99ieFkHYhbEaGnwE4FQm7X+tREhDGXV1h2q/vz0O7qvisB5ZJ07qQRca27yp03r5PCSZgXbUCUdDHntyh6GT4v7yf5NkuUiUYppbRNka/ZwHnjF7Dq2pChlGYDB5OI5rKFq1kIiNvsik18pRVMxc9ZMsXF5sJzVy1bun8MD+Mum/liu67oCgiItVdHJDxQBXObWYc8BWgPlaJn6w9kEVxfG/GdAe7N6U4gK7pfJZUNw0Nju40GlxG73OAykIOI0F1xFUKDHyVUVxkCv6mM2kUqrpc8W8lgEUasNIbhQvL+fTaZCpVl2o5cSjeywX+4NTBaHdiLy9+ldU6n7F2NUezpKv1KfXn8KVaGdFtmilE8idZ/ZsOufebAUY/qnxjzoiKcNqenqhkUm6VJslYbNV49XVd/sPl15KjaV4TU186Xp3a/aeWZ+1LCus6n55fqjg7j3v9UAdWcXjyys8mxjC34IuTX969B3fhXHAMwLf785nQT08J09ZEmGw27C68bnk3MQ5AMHLZg7t/KCyNDHtnlD7vaLNqivL50oAoq8AjpjtPn5uqN0urneDSusqKCZmo5+4678B5lRt6bUSeR2vv/xqzGy1whTaO83AdvD80La7SedMFOgnR6PPWR9+f0Bmt/sNUFDvXV3go4Okc14+zEgX167hwu27ygkZ3NpczmBasBgWVI8feywX10Ine2eFPdBPOIXYOsGEJAOfdL8Y5NhIh4pMjDDaI6nXe/2zbCnEgyYxTIH82jlvr6yVUuK4KnlrZcQAP/plXTeo+Wn3eAZS2C1HASPU9vBEXiKdsxQd47KyUT7CYEcH3yD0bxNKm1enassEf2Md3IVzbuTFDEt6EuG1CWX59/JVFAOwXGciUoUDNY1MnY0xHdQqCE/dmJ52ACjShO2C6GcvyVCPvhVIqW8YK/zbbFywmoIN6NXT0fuC2HU5857X9ESlBTY2fTjq34K6JzJrBO9s21pR/sOA41wAH2tCPfIeBVLVMO5VIbBfhcBsXR0D0JU0tdkY9y6EOTKYhdZplbF/mcWsGjdKbmjBV4riP+fxgS811DXOHirYdLGHbmmZWDzfnPw3Aw0cKrOfoUYYsJArrIYyR6xIJZB4oGjzHozpsLEY53CJe8IGQ4IJ6dZICKair9P6RoeUE6zW5Q4r8MWL/9eKiHTDRQRZiJVOWZcdGovcfO0ZFYCh9+CWMgKo8oYs/CQJHZxxnpswyWhwq8lreZyrj1iNE8Zknk/zHa7a09fo/wpcWSc1nYLONz6SUZLpxYidho0spPf0NVeQGg8KmCuW7utx/lgkF5tSSwNB22Hj/uYUGvvUxfTOuwG+S5d7e+vb9VbE4U1X18I8OTK3KjhMjITEhfHNuhmstDpiGHi2h6eQeaX73a0FSd1aOYtfwh2TB/WqoyVp++mqs2rPSa9MJhMVPbqFqYJS+seoYD5VMlWnTdtSZe4k2YvMV2/8bprRwW2tvTgHIzJECOtweb5RgdHoT2dVtKZi0E+lLTQXopJNINbTUmX5coOO7+TXhETnhF1VucV0xeyeqKBkdnmSx39rIzm/1FMf0Wesl3DfQhkRvVMvymQVVvXzUeWPm1WuNDIybklTZwInRgBRhkPrKi8+W2+j/DG63X+nWnBYVQZywqX61s+w1o8EAByEBEuHXLoh03HNmAMaIvJcNqdNQMfiMBABodFyJZbtc1yHBE9s6icv6TsF+RDAGPPgFVX6skWu1E3jiIRjcIT8pI12jVf/9ZzloEWQEn+v5n3LbxiIny9F6ikqH13oaQSgvgvyGNKs5+I3iag74cfwuYRdxi449Qccw73TiSfbR1FPzPm6pkLuCfKRwKwuYZBGARzA27NZti6q3VrXfhsY3QiN629O3CovqXXR1arwirbDAzV9JjSi6ur2KRDVXyOWtGVabBZ+4GghqUS/Gzayutq9enYxC5JZVvRjcKS7tQBOQ1dt3JQB3Nyy2tXCSQmtKof289WcF3mYjdQ0kvj135bwHv6RlzkywNkc6Nnpj5HHleWd0bh6dw1s6aDdXIcERG7vnftVr+F0CofsumkE3oAr+KHjb5kQzulGonet1SsCVsV3Pemp/Wpxzi+taPQk4rgLPW9QsuGDbiebisNxnHkCpnxEgi/icoe/bfl1Zn1t2/ZPd0sSJz6w4LcPlsddb1/Y+UTk79GbmKriBb9QGsvGbBG4jR+yco6Mzp5msZUscP/lzQjzGz5NLTvT2qJU51JbD+PpJkwn2KgPZJFQ3yXdswsBXGq4+MVragRMvxUoJ74PHd2gN3a8nF8ByTfxLxA2LSx7QhrW57y5o6Ir2xWf4OCEW2MxmMm9aIu0cMeLujpUjA///ugq3/+Gsg8l2bgyI80KzSP5rK07ilWeLZqrZDOVfBby/32oZCHNViqpijpEFkf0YOILbKfHdfAwNuJodXSGtSDwbBPCK36FvBYZPP1ESM9cX+FceZymErYpccDDzwkJLkV8FJMSPF338kxIlpe0oOl2ACKKksANjlohx2hLyWMR54wOduGuG4oii8gOQjkKZBff7+3RMLbdWrYbpmzxn3Mpc0bDHvA9IPmxrcyBbx+Cg1/htQ8dHAO4hWi+XifOHDkbq+1pSdyvtQqq1W4k71kjBeuNRUGFT1izgiqY3quut927VtX070itLMUi5Opb3c1EOagKo8mEwkKjrTFoMX5gunt+i3izk9F0RQ4Fd3UKsB4vEz/vrtyfd7u49vqrupfHRztEQH0t3fVJKXEbLtSKAr4lTAGb4jiCdhFjPD9GMvK1JHLjf5CHymt4CEKGNkL4pxM0Me3GI4WGH2oe8Yl820EA7IqoFx7F+pNJWZgmB3Ox8wYXB9xM4GA1pFKzZkMcvFVIbhi6ChQvbJ7avKEyhvQks3HzKrjR3GYPo8TG7sxEkEcGngmo/a+Q7YjQ2Z18NlJmGt5pO8Al1A4Wr9ZYdTW1PSV9Df0b2YFg/rHYLRKDEw52J6KOu1Hbzt66rcVBxY9VjC6QU8d0KAuu+ZV+0UjGNOFgvP/zqiHqfCqQ+7KTZAPfSAx5wuJ/HG7r7zNPtuB67JDC90rpQUra9/CCZIIV9TWCaTedpdh2n/sv2v47YNmy95yQX0HuLmcrMeenLGMZ5jbHSstWAXuuXbwE3iMRKs9tBpPq5Aab2CJxLcRnMolfm93FBB0oJjwl8w2NyGpeUj0fcB/9hAAQuw/gZ9E8l1479Z412V2OnxoHvBKqhHu5HeMJ8Hq4uXumqBLUSTv7fPA6dwFyIPDWnZnWISVvz8/ggP4gP8oP4oM4DxK1LZgfc90LXa6fvP8rUs3xcf8WgxEm4jvzrrWGeUQYki2YmkJNwHBJdEtOQtAqFutVwdKIXZxrVQcC7SS8bJb7F7cbqca62yCf92cjGr+haULldheUb2dRHrPoP0icdC/yTjvnxSTeAyPe97bko7TUahka9Wc71cKbr0crGjjNGxJJsRTJ2TaVHzrJZa5rDLNq1BYtyBputwp66tHpUCxFWlG+KXwy4rCSylQdaoYKYsDevy3P98jFXQ8SZcIRsWixyMMzKIwUw5tG6sKx2ennn8nq663YUqyte0nQFX/mZ2+ckezzyr882G9vbkO/yzQIW0jLLLDfbs8mGzx/6xC4TwdxeE3x8/UF0e2hj99Z5dafM7T7gZ8cAic4WHPTLl7OA+8olik+Nfh4F+INxsd2GV8jGtp6mRM0BpqGH+AnCriC2OLmJyAzxc52dklngHXfD9SzFdAP3LqBntXS2tfYOQLmBodtqPpinZPuLWBzp9skBbboZNPbmvfopTUTzBd2CSqrdHnmiS0dtlgdGgqoRtTlfj8DrU5vwlSwhMpR8OmKPZQBUX7/CVl0O71dWl0R93W9V4mAFJ+s+9ywryyWc36Qdm4zgldkZst/b5IdwSuRRwixQy/Bd8uMvVB5jSQ+Wyrk0Cc2mOWFEu/V+mwmWxS239yAc9nRdLzqkiYCxOipYGdSQcCQFFdrY4Tf7UPmzFNOMRke5Mgb7l4v5cGfQ2MfwRvpbKtMzShl8Uocek/qfmC4sDLYFchOG6/jLAlrTbNtjM+/qUbuGvHfgI0JtMkpHOZ87tAy/pF6MQWxjFuGDX/Yy9Vh7ZTKVi9JIwhyiaiglI+zmi9O6jKdNNvRVVcwbhipNsUx1BidnJuhPIO4ZmuZgLVHGRHo0H8lALGRXmt+qRMCF+02svf4Lw+o4YebcT9LOAl4pMvAQpg02uzc4xxsH0j8W8EiRF9CB+U8BSDi0mgQ1jY1u43F4/YrXMAyzNNw07OTyECWpm/lHXer1APRPyxwEh7cOvybUDBi3oxFy838cJelqaMQdD3qVaUoq6HOPM4qW6TA260n4rInIEfrDWohDtHwiQLUwFhyRMSbTHVUgyYvZdJ4OjRRJdbF2vPIhDuM8gmSWvAEy3/hYTmFni8YI/F5RqJ9wfLj6HGfdvX69xTgst4xlZqyFrw8l8ZsNzOj+JCwNSNpOCxdl4GHMItn2KZi3JAeMnfFaEISzuY3ygpkcIB+5C6JhamU6ZWbMAQC4XIK+zh7XWDrIwyhvXombtRDI799zgsh+qrdm3gKHId0Yo7zSl/UcnVQ81lieQk7hLWtz85/2hvAd3CFzLLYpS/tWARSZ/tDPV2CKuK1RB3WmbhNOcdlRQ7yUTK+bWgm26tsi91KvJTsp05njnRuG4HTK4GDl204QnD10JcHvBckaM/J+Z4c/KWl9SeSf1QZyKaZgVUvBlq2pcgkLJ0pW8B0SzdtgiUIkqjgsI/pAlOP2K0taMEgdD3m+DnD5xv4tl+90eXcp6gH26K0zWDBYANiFBxk1uj1LYlqLF14OFfHcR7mD8XKSMlvM8dzAowXz8/mD/OB6+uA7jTziFQa5vzsZ9mFblThZPpUjOZmQPH553z7ctflhTqc22Q+E/lu++1xJC96pj7smWTC9D2e4z7bENJ/JjQfREKQkApK2CKTQx4+yL/Yd3LfwTat4cN2Om/mXrs9fbzQDEopAjHq/vnv7DQZOI9S05/vJ/s8na6mnu6UdlpsNHc023s6pHNInWRS7UkGBdVS58710NpD98xRgEnAApzCrM9sqNv1L81KHUxKAgEfcRn+DBQYgcn4ALXvuQ7PfRT5UhL210TUal/N+2CwzVoNucPQs1y467WF7yr116fbyUPNKYui9Ezf51dJge6mrpPz7Hs3tD8Gru/XhmQubdnDQGOng0HZh6t875nOd85CC4CUkq/7XGLPoEcpVaSmMA1UooKQUureKxJ2JVa8sDoOcTkPWv1XnvYN8rmck6UVeyts7+gahF+C5skbLee8TRdhFki4CHs47kO2xQFyyehIGY9509umFaDTj9cSdjfk5DW/y8rSCEddD5MKbrirz8WxQvdKVAXmm0b0BeMxYu/VqAvYuLx/tvh8vhe58DeHkCA1gue6shJxsibN406J8/fOuIHfB8zSY9TQZvSjWchmCEsx0sTVfU86TAON1UhbWcGiusfHVq9w4pDUjnbkhYJC1jRb24701S3ArcqPlOFkVlQnaB3j7M71srzh6k4nJrYrvpA5FMhA6JSJjcHUl8ObDT12iKDlXD6UBhJ1qUxS7ieiFGUFMnFvLh2Nuhii5MP7/01M57+3KsVxB+Sd4GX24rAfYyJKwr+o+yCFm3auPq7P9osBsdE42rA8EDZqGuZvm8+wddgB6hbEpir2hhxGdVCnFi/TncpdwdGRFvpQB6lHA14Y/VnoDpyM1WBVQ26Q3ajpwdDMN7XyS6pnrI5uoTAcTWrIHeWAVKEMq8PN0y7RyCGzvtT8hFSIKvBncznpkOM9hm4PGVIoLeo3H+jjXYLZy5FQtxVxLqHKeUFMJI1xZo2jGN83QobhZtDAifRJcrXtCJ81thzqFjieGboPFgYADennJUTZh3CsrbQTWLh3l5SRRSYlfT27g+HVZyZD0iqHjtMtLUZm3CPppH+Wp/lyyehiXrgpyFitpUf7JhSU/4Yd2WD8sH/JwiuVdPmzfMg+RtTxckc8l31zLvk+UU4UuV8QlG2PrF4b7n8czNv9gnnnvb8tzlDfP+O573hge+rDNIgtjcjQx5e6FqTiFR9HgnbNHkcX38F037Wsi5SY/gWO5pzzeyAb3vD96qPRcVqTb32Y0hd4AaGJds+6brhNeQg8moAJtR779NQFGZUBbA52jXhW+hj5BOQN2rCSXjl+Ee16zGPszAmg6G839lgBTCXfrST13FOwzFilw/cWM+pvh4P6WFLcPuLnH5q1hCe0WDua3agwLGqEmQNd94OU0Qvf5yg4eQlNI+FC9XDT0qNWO7avN7JTQdgRR7ena/aX+jfsyF72JLbgzyD721Rm+q+cLieOFey6hs1MTgNINUDeDL3uTTZZwiMJ5l7OwiJZ7YajX4WODba4g0uf0/gZDcw4l3QrzTs3G8PtPW3N2i72PDQnjEmh5zze4yRChBxhriOrwSh+nAQHmAEpSQLLWtLsQEAxvXYR0EijG2crEjcjTYQpnI1eJQl/ItFsd0qfUDm/TKxyXuddlPSyKD+ja9EB1Zo+9wjyhsdPiga24rE/QPEGXrVaZWd+3H9Ur2MAcHGblfOX+j+OEDnGi1oSQCdyPylnOq14bjiWIQ28m83/uh/4wx8x8MODyLIZZ4izIUQPID0tWZZOTcJFASIUwfQq0jaaTNXj7Gge1Sd7PZPZddW31OzJpS+B2PSSxLQdS7bQTHtl//K73J4ZIeoT99S6DcX1bnWzoQcgJsI0JnU949hCzVUtClb1rl8mhk2fZmZoHFzkDL6T4JdURmLFqCBO2wJ/91ooNrtRAyMVsAQWDfmF0trngfDolU7txbiHN/9kXiB2fwHWEZQg35ywxrOFBpIFKwWx0zAsquyczxgPMCX+GA7TaGozLrVYgqcH79SVRsWNYnIQJiLC1Zhgsy1eIdKP3TEZqyroOR5WxfLX3CNZknV/s3sOEHjv2Gm92RGCs6V7s6qydleNHN0jsW7dKwejPk22xB2TqUIu8t7N9L0AkKQmI2CnWdRiGw2hms5gPfKrfDhDpJXWOC+q1+ZKTqrVC6P3eSaLJtHsjStcAgOsDbEjF32ui1uKjZjqFyjmsruJI8WRl5FHCSd7b5hFLIo0X1V8a81iSCRRTamZJh+adVGhmLN5LkQHbNPRyeeUCT9i2/YmfCVAqjioJ7vh8Kh14VC5gyK/sJ7cWztr+P0iGaI1iyALBrmsmpxrhPCgC6xzHFAOZslwm59ZxzYJsqte5pz5MEIxvObj+E+pzIM1O2KbP5PbLCRbZXloySfryEmluXlDk1GIVPdTP6hsLdWMPC1xMU6CZQJNEzoo6EPJ0TTGSRiz+xyhHD/h8oZAQmliiBY3WsghARCxYOWWKFt6455seaeb2Rrz010n+uxfxo6w5yUuSVZI1R14Y+iyhkRmTOBR6482lyLkWca58w2LDcTx2W6WXsMFZpZxDDTysUoAFlEgDRlfNdwX/TP/XgpPxO0H8ewNrmbiipFPqnxDixdRcfaDAkFbB4dCaFE2P2j4Jt0/QU+PpWp4YtRjbah+Khu2EFN06hoaEMltU/UovDIc42z76MzrPGKO57sSvzIhswmnZPQtRcp7bpZiiRBFSlxLufuxyQT1XfCZgiPpF5iYfWzNmobgCj1QKWUTKUYHJlC3EXyV8mwFKiOnUBdHD35UJz1S9DKMmoU2rUpkugcYRNS+FlcKl3ythRHDCQC9RATk5VK7OYzl1VKHL3dant5UB5K/L5MuGmEEwhPbqI3jSl8+BNf7vvYpPA08gVwytfVRdrtoTaEYcgeN40n3PKzDtD7eT8J4D+PyrjD1x8s2tnvjXvfITeEj/PXYb7kaD4ytqQH4NOBYGH1lhPYl8qGQHqiR6Kyqaie8QR4PeVUltYuz7OdFLkOVb/6b00vpAJfGkstPvSafstweZJJM7cKaiTSkAU7zYPpBX2dQ7lEmB3H61JTQM7jQmq09sVQ9oKp/e6oBkqoG21Te7lZ45E35E+/TEEL7NyTUSUgoZJpjjxIBVJ6FDmA68cQ96FUAY4i/d4NvUJqyq/nw5naQq0NUhmg23k2v453jZvNmmKvAZvUFxpenlDObe5ElTjR5LHGsW9O8FKsB110nogHffeGf+OwVwlZQD/yFfOdmVRMEP6qTMJa5O0GNCPUwyJIn/qmIVmlJOVERzUhD4SPzn0OMfAPuOhYlDIZ6FbfXGH65FHGuKSN+E3YMD/6aJwMUmqi2rB/mS9Me0W2EXCVYRFX3eibhnlRqhICHSYbN/QJfiy/9dRUB/APwvnsdIguR6/opXKVV0QFMmkOKbsQkfU9qHVgLTyY08hEAMJJjHpQNNET62+83XEM9aRpfz1688vQp4lied51pXYtdsWcaQTPqsmuYdBVh1qbqeRWUutD33TfHdTyMshc4K0jj/9eLtccKdJeJYIF6gMdPPVSUm/LkVmze8pT1KTNt3hTcNJ06o0zqIjkfenV8g2KOI2cD0S7YaZq3WxFybJtphrc08YJy3rj8jMnpIi1FECLrJsL10RK5rme+mOd0t9J6HNXWm/fkwNaqrUDLeXgbeuZ9A2lSEtCmKL1HhTx1DQSZYe7/+jaXSxAMyfLihxcERrbCQabgYMsxCOo2OKHWgmf20nvFKPUBXY2aHIdxwZ6HVFb4TveFAxUoOoQmYjbVDun5/TAasAkOpgNnIVWaLPhiqMs1+PE4emn4/y4YdBrxzPKg6tZQCd6pV3EUH7qTFKmPyHCJMSqIXNvJW5Yzzefnq/L25XpkvXbk2z0/sZHgKrmOCL+kKa4yPkivKfpUOO41N+jAWF6DDCKHmVxDTxxK0aAE9CfSU0CVjwwyJgnkMc5v9WqqS2z5+JHthF7rhspHgcoSoZzBJDQg9OLiR8dUhxw/if2CVTLZbOi5jE9/OrOmtb/kze8zJgsdETVc+0s6cTbKTfsI2UNjoDftkjCtwS5U88M1jIm98tL7NtVKE2mRtkx/im/lstyRGWEz/jSjHk9aIx16TwqpYem/H7LnLDqjBz4TGs3s8AN1l38GJ+CYD33ty1LVpF59Jli2zm8kyZxk4wm4yTw/gBBkEB5nMDy9BUJUwUll4h20Onu8qPgzSkQ1pkUU7FQ8WYKbUHuVSDkTfSQW6nGnhRLJZ8nh7mxvCX9TD3NNU5N8IyKJ6n3Ngw3BBvza28MH+4L0EXIWb11ACGYjB8Pi/aAT1x4Njl1t+7wVGl93D6oJxc8PiSONy32OXy8GSX6PIfgokDWNiMST6wdQSSbYT+aI5TVO0J2/UL8PstuCCIglhXZ/vsuqBY1g61S/iHf7uFRdC7UwMfNCWkuRV7RuKrRIAwHVF+L2sNXPY0AoaoAlDYsIjDL16qIjp71RNP+wGRqK+pNq81UjbEn5P9ufOr/cPbb//Qa1uf5hVzqafAoTazd7SZ4vrhxU1EiD7GtHb74fNQa7rtZLYr8/Ga6HehhZZs5kJ2TP/kRs2N9d8ZFsqzTqyNwl57Sx6pp0l9ltuzvSvD0jCRYwttKSpK0eesNKVR8zmx4CsAOanBTPfuu4b8UNvAI/7WuppN+cNQa1xYxMCeUucULZTWWqcCG0je9GY2mMexyefTuz0nUCNnsf2iGMdx2Pac56kaq9A/l+X1YPzCxyoX5Nr7jfx7FJjCfnMFo5TVnNcdwX1QrDh/oaMYIrf/vy8zrXJfXxJR0rilOLg6iIOB/5AfULy4i4fe0frl9GEf0C89vGhipKGw91VHEo+wUCaUV0j1C5ZKL3Cj16o3BzTwE8HSBGv6T3PoZlAyIjUOjXQGoSWvA0+z8AImsmRnZnddxykqh1RKf8JHmkyV313PO05y7vH8n50Tdy/eZea353ANJrQ3ikJT4fjN1/al90yyLSzSbz17hOTw41gCq3AyRWMzMmTiYFOtebwA9ddDqle0dK3JwZNVoEK63FhyO9Bi5ZDUVw2dSpUbGjiKBYUnmGM9vAwkg1zJxDbNvYLq1rEc1UmvkDPCzSh72U+1RKfxDUNPuyMNp6s5eZEu2evwCbROmCUYWqtB9ndLHymCKgWOITOy2lHCFnvNwYpDeK4YYZM0DX4Z7uPtCaBH/aL10RGlaxXpE7wYaHmagjokLN6MqA1yAzMBxOEbMuZ4bG6gnLJKRuiXiV4KIc3J2d0r3HJ28xyEtfVyFK4K5kdDoIsRKkV6S0SB5/MM+x6YgJFgCeD606jurWpALkvVfzj5dC58bcj217Mexo0LixemLxrqMuOijRJ2MmDz0ciCdFkeTHFpBa2kuFQ5NfuCRHy8ZLfJO6lG3awrKJPOSa1mFXkCFUkSmJ1N9pNSG8UCzhiTK4jshuJHSBzwZEpyvCeM2T3SgHfaE88JQoH4xWR3YbQGJkK8XUAET4RWXVHEUwnp/bF99plWOHk/HkJ+hjAHYod7PG8WynH9NUxdz0NOjG1qSPyoRxH1ADAEmmlGibjBdPJb7mSqdS4jEIUtoLxc7YlKW1PiayHZPaSqB/IR4QwrZtjQ4zJwM3gXl9fHGLRfEit0TBMmwRzGg1aDtqH55iimTWMX1slw1vyCU4em8FiyNR87mC0po0MycYJynNUUgpSvR4EotBeEGoEszxVmUhQT5YkMXjIyELVYz5nnRie58bAZlOL5hkTK9agRxSU/THlaMRGZSc6pjt8OB83dsGsoVoCSfMw5h3z/JNXuJvVgaNRgCWZjwUCfm/bOhALlyGinMaN2CYKV8zObswdsRYk65Ex+YhjUnpTjw2CxXSMoB1m6GuqK6ksTw2q++g24qN95KsThtI5+LRNR6S0dy+nGXYHL/K5LFYrUvXGQrEp0p1VOKj67PF7Phbu3v1qSoZtF2Hm67BT0mEQRwvURo6D2g+VWT1YQtDszfLKWWUe/uJyZE6PIQl4ixVUW1O00ohQ/gXDSnCk03Ub3roYBYZHlfJCaO4K/aA9TmYUkwWSNKXPjEokWbT3mlD4bfrkAYPRy6JiOktcYancBZxfJORXU+U07t3RSIjgsBGerJLFSOGZNmbuTdpwpdUpWUVDvj0UfT7RyhSTSJF3BLkyYdXNzq2L8r6DE7ZXiRPGKK01WZBPicPGnbrZ1j79aKj1P7084n1S9k8zx15i9ha9k/IlLbZ1vxDQ6n0zryIybaKcuuxNwPVG37wGkpDyR9OZ6s8K3GYF2mUCj/TbgvWJUg1EYYJxQ+emZ85QSLcsBpdQvfcWr9jctLhWGABBQ4gi1KiQ9uup4FOni4eKDFfiRWUEPbZerkwIHhkRZd+n9MGEYZPfMuRWMqM/ltAsezarYjOnL2QJIfXuA4NeFCOCEDNolf4sCT7pJlziLH7EJH8AXJ6s2KJpxM3He7shye+BmBLt+obDcm1ztCNB2VmiHOTBylRfGyaOzvCr3ysVmb4xsMh2ki0WBxaHSeFJBOpw0aMlwLWN1zrArnFD7gjCP89Ljcs0EckTotC+WTSn1MMYoMO3UpPHB61ezUrdSZSLwSrlPca1MShFpVT6ZmZc3gHn0jC8rZIxVSTsIV0gVPppupEggqxfhBa9Na94qMUwrFaifosfI+Iwq8tK6q5uuIdRrDzoE5DGk+VK7BlmK/EJHIxOWNti/tYA8v5bOTimz/HNPqxY7znFB2vUnaddMVXSJOEpaoHhdCW11pfqWhq1GEwjfQy04LpeF48tEyY0FHV1pSIwTR/LQCFodD0JOmLSF2JroEI7vOVTz21e+uyTm5MBm3FKsvWXpA6L4MVTpo89wQbpV8mtulYUMRAcSs4Nz0b2BvZiGhqFvhtjZaaZvZ+3ZlDdEssLKcFXriAl+6GJ3gLCp9DqU//HbZkOtZHk1mBVJhVeq8XMq/YJvso/lkNWn5zy2OrpnRs7OVOpFkcsfnajmr+wAsCQLnkYQJfwNR3fHsONU5aDWHP3rNJJNcXmMVi8uoah5xCdI5g8rI/FzqqEJQirzP2keaEbHGpARgtCV7CMM0Oqcf3pD3cMTRwvATR7ELRAca/RC26TIoPnt432GnRqut51hSw2pkT8peUqSQ5ErXn35GACqvlqp/w4vkM6kmfJDhZluh2TtLWLfQTWeSC311ykJn1glNoP7yAaNiArROC0M34bwEry6LLWqejZrWRixAch93CuUNJl+H1pRg4iZ8hAVRzywNRNtfbbByKIMKU1TlV/hjji3TNuwMHZ3ehhMPuCObSn7Fno8VkPuCMqol4zvv+4uTha4WqYLFMc7Jps0pdqq0X2GRhLVBVL2SKDEkSR2omyjfm0MUhWB0II+atVxMw9dvlgz03xJJE7T/6ZN/BYWV10avYZiR09Ci0N50pYrdfCPseaM9J6eOvDVEym8uolorgFLk1ioAaRYxyNIwE7rZSGygCngZbl+BlvR+bpsRlFxl8Vp/OsRjsPeXUgB15tYPcAAQIAXjSLkhmu189mm8hSkZSC5es+dLJjeA39iDB+qyB3RX8riP6N53IKaI6f+wd2S4k7Efbvu8wz2/Vw+jXjhyDyLlJdFoRbmUM4r+qmSZMXwYMm5nA4mlyFFIPnVuFNljlor+MyWb/bDUl/vee+VmTkdP+Z5zIzaUNtg//4qPwM5Km7fzmw2OTy6O9eSasmxfVrtHlknNhWOxR8o/3iHwGD/3j5xnjox+5i6yXhLBK2QnO3GWt5ik2hfUd0dxPGaoMucUIgq6aIYaUDoeObPDITjdAMK8RjaIO95q8xuWJpgu9lRvKKv8/HPCuLZnbPo1vu29kl6WecDdxYqRNt7yyAeJOrECBQJECUgzDnU7TKaToYJEqs1flEYe45o7LCsOixo8lrllFmYTQpcIPjtLwHga/9J8/A0gW2jNQXwtMZeSkQAq15FF8XjZOWtX78G8m0l1HonPkngvwBdo4HN7Igc6FRxpyd5J0dKXHVPyOPSHJse4Kfc7noQvlgI6g8exXKCWHpVUNk/fFEW1M2vmebOJpsLmVJOS8cMLxG5oDf7mwxYFtbZh6mqZnhua5c/nsq4U+ab/8KzCGb0ljE9kexhnHoIeogDlCmNTFo+5PTXwgcn0x/3p+w0vTzDnLK59UP0rG7HXxpYFq6mk1LY8EfZzTCoPKhIQFAitfa++1d0Io0AZVmzNGwXvOW7Poy9IohTjhj5G6Vek8OK55tFEad5NEzupZYTWWkfP0/KB96cwn+7+ncD1/zT0vzTeXFrZxwO9bTLNtKRGgLl9mWj9PhJgx5tctyW5dMMoiX3tQxiA2OQDDYfPhZ0q6ypqyP9TQbL+ZqXAYn/rXOwvJj6wukZ0YTwiUukSoA3Ze/QPsIhCNnjD+SGUrpjVgSotz3cF/Arm5+16Y0Jy5R3mZlnhXd6hCcX33dCse5h/y/04sL2bvPfeazGz4Ur//0/4CKa/Wk9Pclve+KQcIUdrn4WnfzOk21WDDeQQtKsX6XG7ORVyPSKYjM0gJb2Llg6DeEu7LFjezUq8dDnOMRGXjFvU+mVJm17m4/KmCISPDbiGb9YDZN7yMOfTagViY4zfjjUQjpb/dSD8bmdE4UjxQbQNiHBpEqJBc9DR0f5qjGHM20NmZfzrhT0H7Oi2OaEaKG5SlI6Bye2WjJTv68B1FjfA4+pN9+2R4Uyep+tS/F/hMnNVHPgl4Sz+St8ftDGkhWqUacif+bY9LkoshZLkKKNiyPVQBqkHAhP+N4gNvJRSZT5TC5VE1RkpkjeP0l4zt/dqoqknA42SNFDfeQPh9kgVgGkM72YPPKnwQDdoWJurTVoScwi69shZ2h0okp8n7NBPoMKUMv013PlgXXlNEGGDun0h243GvxYGdteNgOpvwizmc+yY2Dk2bdXSGURwDnzr2h867EYTrJxFW8Yba+kR7hm2/ZLAbJEYSHkfRWzA4z+gSBeR8gUHb7+ipiiSKqiKlS3fTrqCM83t/IBWZ6r0d6A6SDIIBBjpz3hstBdreNr+i+O5k6LYMvdAUIt0i/duGrehwEEnANzwivxYT6wMHNoI/4kniGW3zKlfKlfywW4G1UsJQUiZ8+Umrt1ErmYKbkgvEizme6QhWL71+kU+j/7IigTyX4vUCFGQlDVqWMNBSMprYb/oXHpGACt7CSkcjhFPcL7M2c2Px0HsAHpjkmpZs4PFARa5JmET6ZAC5Hqhn1+EGJw4U1a6XTZ9Vi32FKb+bm5D84J+43muX7bPfiEmE6bnDoEY+YIuOnG5aVVvoHb6E6ugdkgK5983ifnDAJPh/v3ev7KWDWRiE8xXm8WLPqpdQvdiDNJFeja5JFhcJ2qiWnPyZQAg2IUqBzkeVGnlWxXr9lLG8fHdimui2ajVpe1AK3/cg/t+xvYvlblxUwVpDgcYxft9oljCjlgybkLZZ5/ANgnDTZPvtr2t7v+j8blw6lGl3Cwu8icxRRvHcVXUYgfwyecO3lXfpSf0HTu6+jOUDqM578phPJi7rMW1+Vm39g7wfgFI6pW+uzhA0ZG5axt+Yp/ybm8G3B4H35+GdZ+9yfRr1BEzBPdu1VN1AlRsiVLK5uLR6gaAUwZj/XjvNL7fLfg6eALDQVyKCu+iDEhBTVEgUySpM7bIVLTDS57BiTCVU3a+U+e4/vrVCvPeLk1GJfUaNf42l4aetgS9BRMTcv8y85vuXzgiVsOlNCVF5aVpzT0agVpZPRhdzhhSVCwSDaW7RnIkJF7AkIwbRWeFmPBTORX154WC6dfxWXOC/5wGm5PhsaLDE9GKvzAufw9CSpJtjNiGSGibkhwfVH1+zFOR1jK37FVwdOrG6VHHvBKYGFM2R1YvmruC9AWahXPhML1NL+J3Y/wMQlpvpVTO0ZMjusO3lIbJG7bj1pEAeGL9LlqU5zcQOyaddPibVDSqQPat+8xh7rW2MdX3UoNiv7pgdd0x7awlGO85wErStg55iPDdZfJ83zpOKK72hE4QjzPcIOWJyRJtnOeLRhJk705hlMn6WNH5KOtaEHcNKTLzZ62nRa0Pwg+lKm/8bclXdo80OkzTod8qrLGH4JXrwkBp2btO9v3QFkZAe/MrVMAqqtaJaMkXcQxzi9cly+LZ36rNnPZ8vIZ1ibmqPM4fQ3k0WADpiy1CJDLXCqwA3N3GHqetStnpNX8JyphQLSqbBOdkpVQ4QhGYPrXiY7CJ+pi8x31eyJW5MUKbgJ1uolNs7x5YzAEV/XFXjaiECus1q3+BOLEVmmMy/JOaIrtDDP0ffU25LysT9+fUWkoE9Uo/UHcsh3ltPmeDPjSgJQHtsqhZIcPrMMQVELUPn0yPPBq85W/EbI3Seu8nQCiIA4v1fFPGbzRf/Q2K04TZ3D0nDsFGp63YQh4vkaDT4sKsQuT02GaMqRTfAS6J9LPXScl3zIbd15DmaO1cSmMjXCAvWIW9YW/5nP+DNEcoVJ57iC2Dz0ANLxIkXpTyeYBNr2Y0u64CjI3wqQmx7gKCb8ck7mLa2Uf6szUq7syYEUJhfx4Uv/g5IrQYGPsxbZwzU6udDnBwpqmCbULcd3f+Y+cqTedGQr7vzYT+al6eO6aKNisjCK4EJYESQ6N87EDN00RSfqBoTTgtFRe1CcDt7ratJQ7S6Tr/l249QEdm5SYSRhxYaIQ13jWQrpoPR85xLvObuVr929hRV0supq5FRXJ6bjQbM/44zZoxY4u9J96YGkv13lBC+g5EyGytV8cpSIUSteC7o1LX28tKPYLfrw2ZpCtHURTYYeYU3ugU264DqJNdK4ayNMV54NSxsBRhDqDX7DwiOyxw0S4+0otFinCiSMfKf6u07goAnzbESu8xtgtfJdZtBI74EmQ2X3jT8XXT3IUvdUelXlP3BEPXhb3LiGZGxvqT4JsHI+qPNUd//YCvXBvBVW5TWmgdWpqo9phk/zT6gr1gWQNPFId3E5GFVcdfxyXrlCohFsdoinuzQsiGcHWCH2tBYxDId279cwRSc/at8OiQkf7bKxx7iniTSgx4lzfgALY75DwgIpE3j83ifTm18twzSeuCXiV57eT2B2rykUT+2nCJgTjNRMYiDf2xNPJIizHq86VX1u/cnn69lp6+cbb7go57itT80UsJa1wf36MQvxRv2XqMS+HvcqSbdLmqybFfd07UhsEzQmITVfUpyqfU4jXcABFSz4S1RQXsJKnIt5Ai+hQeJ2eiZ+z/uaLIyjlgdZWsG94IRKjEgM48glkp5Nl4Nl+IMnNkeAZlj8xa8+HWaFka07Y+MrOBp8/qBQJPngIMBRUnf5oR1GC+vwjCUwEBnLFUAx932ssurHMb4mx97ElEhDYM6A+Ox557LFbvVctaXwm5LQg+dmz1A4VW3V6pGfZo45xl/IcUa//HlIEkuc7ja/0v17fgkg9/qmaFKDO68ljmi9nvV7Zujwwp50D2cX0oJuug6C86G5cESZfjOVwG/tRXkhSvWQp+8vbEdFqM50Efz0tAL73vzuhBbMOpiGdm/zBPKuyjbxrh7xbBo1PtNKqdVjznMbRewpqamgpdf6LiiwzIq/FpZojWpWhjjLQ1uglcMYCAviRx3CCS8AZMWe0eToIBxe6Ki4WD8qhxzvb5MZnHplV5O2r+We7VcBjq46Pk2yqmsod34QIm9RyFYLbnoKg5v4qwQCUSi0S7hmcI+75w99uSW5sv9cG7J1hYeIDsXTbz8PYBBpaug8cjm8BBz5krPX8/nBK+qjXEITlXCgu5qwaMWt+lyL8XuI9GzM2HqHZO6BkMxdMzyH8EUAJ9zcY1jzOUsrlJ7jy/FgQngk0FcF7WRJ3FIfdiQg8oKTMf5ADp36lywy7Ht2RXdIoWHcDqdbv5YKFk/eLSLlV1WMRM1PF2pzlLc6rb7HvslEMKX16VERbOSw748KzvvgUdtOi4WiucejD2XcDyS8xIa0ZF04Rjigcv76vZz4SbHZz2UfhN/LZ0sRFUmRrOKMHJ8ucdNEaRiFSzfItdsrT65kXXEUo5GoEs34HSpOPvRnHpLxyyzUaHLYQ1dkLdZE4xupYEqdq0o75CotGZ5skx6675GoAwINUFEIsrtGWXu12kh5nsvljvSDT7x+fxreKmKVcj4Y05jjF/8dO+3/u/zC6jPUfrCOY2IAhsjRpL1oe2YfAmo8bhwzZj1+higaehJdXCPMFjFcu/QFoeuo/AqNWWaBpMoIwojnAa0ngmoxRWjgrOiOj9pF/2x/1MvbwxO+wegmKYebVUcLwoMz8AMNKR+czrl0RfBDX8FtvnuAyMKWtmCvNx00jP1uaTPyATscbnGk3tmowdsjKl7ApPgSbnf//WyYIbxwsaS3lzO/+0O2EmRH0xW0Li6NC4gJIrzcfICWhCpuryUeQS9GxXwf/Xuie+TM4ucSKOgJ5jf+R7rs0E2sI85tCZTs2PByR3Hq8AjrA/mC16OlR+CB4dlSdt4KGeBm99P6bG+J7KRFiiSWNkO5dmQZZ5nVItp1euR68ENHGQi0r8xorb+/wZsz13jyEWenm48hTxuP7ow4RrCXFOwYnLuymvqbzZI/X02Z1x6RKpMgHBmaJcpOyunIVH7wJImOavVkTF3vV2PwRZiA0gOV4ACPhj5HLLUc4c62AVxfDTfrm6Y+HAKVNIHU1/CCOyflRtMC2iHSdcTTfx3FuhUSacMzXQHmIX9O0+Szmg8pyv1lAA==","base64")).toString()),Dj)});var P1e=_(($Jt,D1e)=>{var Tj=Symbol("arg flag"),lc=class t extends Error{constructor(e,r){super(e),this.name="ArgError",this.code=r,Object.setPrototypeOf(this,t.prototype)}};function wv(t,{argv:e=process.argv.slice(2),permissive:r=!1,stopAtPositional:o=!1}={}){if(!t)throw new lc("argument specification object is required","ARG_CONFIG_NO_SPEC");let a={_:[]},n={},u={};for(let A of Object.keys(t)){if(!A)throw new lc("argument key cannot be an empty string","ARG_CONFIG_EMPTY_KEY");if(A[0]!=="-")throw new lc(`argument key must start with '-' but found: '${A}'`,"ARG_CONFIG_NONOPT_KEY");if(A.length===1)throw new lc(`argument key must have a name; singular '-' keys are not allowed: ${A}`,"ARG_CONFIG_NONAME_KEY");if(typeof t[A]=="string"){n[A]=t[A];continue}let p=t[A],h=!1;if(Array.isArray(p)&&p.length===1&&typeof p[0]=="function"){let[E]=p;p=(w,D,x=[])=>(x.push(E(w,D,x[x.length-1])),x),h=E===Boolean||E[Tj]===!0}else if(typeof p=="function")h=p===Boolean||p[Tj]===!0;else throw new lc(`type missing or not a function or valid array type: ${A}`,"ARG_CONFIG_VAD_TYPE");if(A[1]!=="-"&&A.length>2)throw new lc(`short argument keys (with a single hyphen) must have only one character: ${A}`,"ARG_CONFIG_SHORTOPT_TOOLONG");u[A]=[p,h]}for(let A=0,p=e.length;A0){a._=a._.concat(e.slice(A));break}if(h==="--"){a._=a._.concat(e.slice(A+1));break}if(h.length>1&&h[0]==="-"){let E=h[1]==="-"||h.length===2?[h]:h.slice(1).split("").map(w=>`-${w}`);for(let w=0;w1&&e[A+1][0]==="-"&&!(e[A+1].match(/^-?\d*(\.(?=\d))?\d*$/)&&(L===Number||typeof BigInt<"u"&&L===BigInt))){let J=x===T?"":` (alias for ${T})`;throw new lc(`option requires argument: ${x}${J}`,"ARG_MISSING_REQUIRED_LONGARG")}a[T]=L(e[A+1],T,a[T]),++A}else a[T]=L(C,T,a[T])}}else a._.push(h)}return a}wv.flag=t=>(t[Tj]=!0,t);wv.COUNT=wv.flag((t,e,r)=>(r||0)+1);wv.ArgError=lc;D1e.exports=wv});var T1e=_((xzt,R1e)=>{var Mj;R1e.exports=()=>(typeof Mj>"u"&&(Mj=ve("zlib").brotliDecompressSync(Buffer.from("W7YZIYrAeaAIofn/qpGBmjpZVwDLAvMwf4yXtBPC2k244urd2MomTN2aMogfZ4A7OVKdZytVrWdTrWmYxircma0wGjinrwi97kOIB/rfPvf++/N1nmkwua4pdU0vplRnJ8uTq4/IAsPFlgkUtfMXWn1Nm4s4/1OdO8sUK02YQ8V0UUTasGUTR54r1eZDT0Tg+dfNn2bSIN6Zw+V9selvZoGapDZBTNJtWlu8YiP8VAl4vuaHrmqbStPqWMGWi1ET+Wl8hECbrj9M79f7pp+KJEBcE6TKVEriNY6xXKgoIrpP3yOOwfyPgdESROE7cD251tzuvu9hZjDLwpDcErDkGhpVUc7ZLP5BvGEEUjaLZdHaf3p1wpI/ZW6ndipAYFTca6o+3B9iFWHICDGbsHGBmmPDDNvKKnyOtjGr2X7Xv2gIEIo0IUR9fyzr0RFHe+BekvwQ8A7azu4PX6uXTmr3kyZ3UxuE0AeEwE7s3f0LdIJcvAtlstfAn45Em6li+lMmn6NJtkeT0hrM6hZvhjO5NFsx6OvLtoz8vjLzBCE2tq38M2NRMff1r/HFdUdxSA4v2T8UzNbJfx16WEjKmYryX6bLx1Qi4KkviXx2b7rrUxmOfmjBZgdsdLqS9lR7LqgGoSoMNiKLAWDBhm2OenIXqbIOID+RvwRtjzFzXwcoDeaECP86wI+AHGNpQW3WAPb/lwReQ94/ItDUi2V7l5TD4XFWZ8iKTQ12efZjmhTFHWDF9Oc3y70FuMb4wQ/I8qsKeqfE1WVz8edT8MeF67oUi2PlFO03r1CeI4weV1yCaDPmoUYdmMNiRTHsQSNECB+KvgK4BSAsq0qMdK2hYiFg2XXS+o6wEpuP+WXFzRWVisb+bZhUMBx1Uk4qPk7VZ8D1ygB1KwB3KxGYr3qT58d9K84LMe4xPUVz65JDAAYiPHjF/WO1WnW5lxKhpqd4E8oB11Yhn2lsJJ6wgA1OHsJVhMgWr0L6mnDSCoEJ/1xNAVWu0xJ5jcBdoOkC7MBWt4wKYC6pZnU0L0/ZEun63aneuabhhBNM/ElZOVSwFTXhz7urfvcEdzPZNQ/Af/UI5+TJfwTyaXTx5P/jSTu0EjKokid64RDKPrpo0TiT4Dxz/C4cdmdvrVq1qtz/FZbanctieS8eT23qQvPgR6DcPtLjac8FFkDnsbtRv3C+pjh/rES8pqV/UqOax7pPArrJiAxDeArF7/TOfkGNdm1eRHltB0cWa/gCLLQmvzYGAzaC3oiqmm+BmRNUVYDye1Wrf7CoviG9h2bqkfb3co4TkHVQLpWB3sEWM6KCqxl98ZURki9KaP51AxocQP1YrTb71POvLimJLx1O3wgr+jrKYpnOaVh+kQMsaiNKd6vfUs58mCo8VZtF7aA3vcH2sfIfFG3JJY5egsfZCxbWam6tBq2rYQHOzGsbWIRyw4/RMQqrWdK0s9ucgjMyuOQBxG3s3UxOyQlvchbAK4PqV5NA7+s8i/LQewHL9ps1/11SMtq2rzO/k47/CvLVxu/VF14vKnSYvKDIgBp8YQYOrFJnbSfaKiCf2FTBdai76QQTPskJiOSQEKAGct1m9u99O1y37v5Ryvu1HnEnH4Pyn6/CGWd02gi3lBebEnDS0rjEcssB4poRl5wQ9ZteiikUd3kk9ogUkO3Tho11OUVtIukGJ9kbf5PU/PB8gGMrXP7OdPhPUuXg1usheUW1WSLUHYhseGbnUhLmToxyTdiii6DrmbM7eNWtN+y5AIGRHscz2OE8fUQNxSIQZ6hZlRsj1Hsb4x/m4jOawSTFI9FWpjZH8KZ1VTHRlu6U6l+DXBQ7EpQifgHFdiB5VffK4B1wq+IeaBjTsCQEBJBGq3xSny6qetT4lGrbfAOyCI74QeRBimUsmfY65mHj5ICnp/VFsAnaIZuAeBoI+vCFT6JvJoYsyrhaowcOo2Fj8z6AwYvLzPIj2f5esqLhnzs37MN5yy0LWnrJ0EadFAE9448ipZMWaTuelOG+8tWTQ3mIJ29XtpRgS0H42ei8U0KKuc5VWrPWLE1VGrFv2WZu+lBgfNBbBvu9yXrZH023WvtV9bhXBHIyy3a+EVXAI4JMH4ruzTys/jUtXVFd88jvMX7XmIjMgmHwEML9EdRUI18RZdXYPJUtEveG0iLRQEVPTHGBOa3STqzkApApn4QAndZyYwVctL7PXL24PCvPb3kKHTM3qbZlCZZUQ67o30+MCLu1idSB7Ko1KBlCBuX7kPCxvukHi1g7E0IUnq1iFOilXH+T92MGHQJfO5QsUgulZFfd0vWflcxXZD1lPZzB2XvF5BBbTLmzzHuhnTS4KnEPBGqXf+SofcIfJzD3CpiduYhveczjMRb1sXs46drNeQYTdLHw0oVyb3h0AB+z14AseDdgwCyU4d+RWq5Nk2qyWK9SYulIfQCzl/1IxYA0Zc1tsFTi7hVi4YJ9avMITOFjbT7JvuUggreBddtHy42woEaBtrl3C76tSSb1Jp7dwOMEratJVKxjLFKSOKc883wNPZuelXgSBmyCeRLmvoXVuwk90HGS/5yjGOiiLZDC5owKIhOnKT8u0FziBoIfb0VDK3P/uzPGyLNQ3q8Q88g1jxBae7ZindZet2uyHQxNxWbDk4cm+qnw48xcXQWId5pIu+SfEW1FY8nW5rU6w+smRmIG7Zt+CgiO9WZdMH5f8vmUZyWxck6ptvvszFtk6Zgfq10sHR0nTcxZuli/wscpETEZ2OfhVpXMFE+qsLO165Z7TZA1d1Bqmr2mZ9Hahd9lg7E8mT7YYUz9A1+3YRZ9K32VcOjPJW0L0WaPEFNbMFp8C74yc+9qBPFrVE5wPUCiQUF7VLXdWt+k+DK6uoZck62z4kEpLYA9tvMewEDrnuj6qY3lHSggl2aBf4QLEZf5GTaaaBklz+BsSey9F/Gll7EqpzrlJqi4ohTF1F5wpX0AnsfJVSAxz75XiSfSWwnKPzS9wprGuvH6wzu3HS/Y3D7Hcz4zt94iktY3VoDMBXIVU3ZhurAHW0oIkm+v8uQDLPzAmNcXoq1pGUMzuES7qoV9MvYcM/zWfYGdpY3mnjrlGUvd742zezvatOApsxYwL8mkF56vhqawtH8p17pATe1qqlQZ+5fbn6ir4u9mRFTuGNdjU9Kr4Dhb3NGiE7PFRxRGkDLHna3uExLPv9heaZ4l/IbwwjK5uX0Sz5fHSRBX2lntiN51G2bilyt53ibizDkv5bIKqCsVvYi5gM6npb/DHOxdOYFE7iXKH6x4/AIgZUk12lnNak5nTvZNqEwsJDP5qC3DSDSQdP/yQDL7Mr7VWIfD4/nglnn+Ol3aa5pjLQy7F4R1EP/w8oDypvHrmRGEdr/2ZeD9jc9qczNGvWVs1TOpaG1OWPaZ/FeGyqdqOxLql5sbNtLSLj+RigrA8Zd5Skqj5g9HG0R8woPZ8Isv2DI5UcFB74cxq5VF7XR8O+8rIDoIA0r8ZckbDl+z2XGW8kkGlTnl4bYsVvo2XOPalZQC+nHLDeDUjjrq45/Bu66uR6VaZM7XLQChJ6aOJb1zjVoJjGxl/RvOgbbEsUcg9jN6wHQVxz+YK1o4mIkTd9lr73hDhiGJmnrk09khgnZX1jZgXMvlXZfvu/4UzJMeGKZ8+tUdHXsL27CkrKTeN7GAv03B++NvNl3ScoeZpb00tw8A7uI70mwNEMLH3b4q+AS5/v1K0HXvITE/0J1tw8aOX/dv4NwY7+PyWxCzYkFIV9+BpMl+mrOMqJ+oTDH0P+y5oD0Wls9sLKBWmrBPVIBEusrH9cISnk8TJVBCZ+WuYp4oVjgVYQ74StFhLJkeVX+vnH2MZYLE4hGw/zLr1ixF4S0fuq5t1wlGdZcN3Ryiei/RvIQEttuAPEZ56X9DN3RdN1i7WZrDZ9bA2Y6QFCJL8I4FQNd0LAd8e28SZ97m49v3sySuqZT4X7yiKaymNsJy0h+JmUQ53oKpS7dI2CHicwn4nmdRaVSG8PMxr30O/p0loXp2VDeedkJ9n983Z06Xp9nOmvn+ssww+cEbjRzPuX7J+2BQZM01++bXQh6G+eFM+s+c704+9OtsQZ1bwnCZ08K5ZGvMyav8qbdAspe9+ft/QgINsPYAAJlYbcNG5yK6QACe4MsxLLW1T+2s9RJwn7N3Tlm3rL9ZJqtIYwQhWftRqFrqSbokt46nCJqXwRg36i/q7RjTmNCIrZuJc8Sw7ofcAIbN2ZDTkn/ySLoemB33MehW/gegbYAjaNvCCUK4bJs78glrWaysX9ai9TNgcwvRK4+FvwzKg9P21PWN4KwUt8/awmrBhg4sDYMNFJXeBvQ26BLMj6Rg/N6LrXanZNnMsidv4lcT58XgxA1IXpI0MIdVsux5r5bQtNBw0WVK1kTGNQSUIJuIi6AxVF0l+7Lx1z1dieSEoZA+mkP5Ylq4a4MKkLN8745tnSpG3PmlGA7XNgTGeyhijUEgFAHib//r5F5pPqL9J+peKzxJ0PvdaU8A7PiVnOqt8Pu6x7hdfJVmvd60uU7lShz7MZ+W0V3ifWezK/HicLkkP3nx3fLmVafZkIw19egheY8kUHPI8uHQcuhEaOy4pYcmpxzonwxtTiuhiUZ31qv35CM4SgUk4csI78TrbHYCCkvr9MLRSuVuz4VAfGmKhj+5+RoDKwhxJoV1SdcxbwWZ9nFu5I1jiu+ujtpSJ8igdxbOxoVTQwUXDjVFsEbDPKZ33uPtCS3Gib8Jnl06fKT39gz7DSiesYxjt1f+qlrYdKFPXG/uHojPmMAHfu6cIv1ufCH/3W0Ns9ups/HJL6qfjJsfW1cPRnlj122sQXqMt2P/4lF/vp6Lua1x9e48pQ+bsOaJUoH+HhZJhZfmsdx28stYxUj2zwB0mAiiNCXlG5RdoMnIR50mn9OuiGDweOpOKLuzCXy1d1HK9cvgsWsMRO7sA1xUaW3/Tn0Z/EpnMWIoaOG6Pt1A95uzncpFO7Enftf/+x94/6T13Uj4kwKj2u8jwa+yurOoF2+fO3laYMZon4KElVG18Pp8ThJqb5pfWXmWgMqIOMWeGRPByVkE5rAkv9DainSO805Arfc08Yuqnl7MkN5F1sq8Hm5XxpyQ7TpI8/j4dDEn0fNfBXMuuOhdCkbXBaE7ULhJTnFOAEdOX5hJhi2J2rvT+aE6ovLq0vJNnFfjnDyQUoJXnJ3brh3X+H/ab+10cRRhjOO+582DlAqxvXm8mYdkuEG4ZY97+Cy7fPONOY0jMNgUw8W6VqUAONWnGGV/ugM603iYSnR917qLJjSN5VhxfnuIe+Wu3pnZh4e7L49970k2Uhjfj7fOzjbG+1kWydmutpbBTL+75BFfLbNT0Br502jm6laNDgAoRYm7bBFpnX0GOUtU0n50Si/45IPV/QiRlZXdpDHFrHnUACn0a0rw59DTqVe3G9phSBlM9k3TFNcu3XCemc3uvTQbs9feSU/+HqHeJgTbXexE5ph7KqlM7jtT/Lx5p0+GexQuFZy0MmE7acbsX3twNvmnRztnoJ2CaML1NzRGidjukIutSTdkQ1htxO4xb7rVUTlFkeB7Ek0j7ykrp6ktH2nhoncdd9GzmMW60Fr4hoXPnUmPhe2xaZHTBiTVcytnYLvUWdBY2yX31XT8OeAuQDtVlu8xt5k/5kxrqeze3Up79nMDTqmI+u8BzVVs7J/sqH2w3lpaY4b/ZIGiSpQcMtelbSWb2kgvgITu8BaJvE+PTW/xEW0Q92LdM2O0d1RBY3fqStUpXT9W01PUug9KYgTsV5bzTndaIlS7sUc4DEnhHna/y6aDBELFrV9uSsHb7LFjYnLskmjMK6iW3/PxHXn+jjtnPk9Irst9XEfIykDfZQ9rNloWu1V2g2f9T8ms7ocYu7ckXI6/fj1zLs+D/bh654KaV+DsSbZ2EMB28fcVsnx/WD5P32wZWgLT2qklWDronQiwn9ZlvwLQ8W8j3D6vfGW8XXmj5Wb5PvocCsH4fkKAKXKo1dhiJDJo4EcC65eDgaZPec/bkWU30KVlJxt1+93tJq9eVfbXSJrME1VDqKc0xzxLWuTxB8eWmYLJXubjl7xyoailC9soRMWC+bbTKNSIMgJGpSDjFJ9rg0n7M4gvm1OMC22JOP0aW2U1IgKklcH2dT95bzdPG0293mh2QENp2u7CVj04wlDsec2IiKIMU2JfQKDqHHyanNmf7dTyUOVEzuWDm9iZMDy8Z5QJAcay5RE5QT2M4FJbjqqdWxbBBwe9MkADroHwk8lOsafoJ5iMzyozT0XuCRdoQ8qUMm2KR1LKIVsShLwekNZwxCqxyx2QYWaJ5T+37rKqq6DbHbVqjnVd4JurTVDkmoqwQhNUmv6YkTzZKATehk+2qHmxWZjGOAhCFj4t4jDw/PcvGfteQzOzAsvLJ7s4S9WnC2YHb8Pg6wGPt0sh9KTTPzjvecLHS5z1VhZRUTBs4geXXkTEbFa3rDXUIYpNGQ6KZ5/kbWMHD94uTT7yLBk1G3CZC/CrLVBJEL3iZSmIeK+DkEYxmO2cYoElRYjhlUxuYghY55e5Vu5PYOa/WGF9TEO+z64kKLMjgR8O9Oo8zPujvD/U+2ndy8ftlkY2GSI+aFwhYmgpPBlt82jUsIl166FQAAlzfqUD3S1xH37rs7Nk4ZaDSUIiIBq1VmccU3ky2+bRqWET6ztCozAykITec2lxjil+uPN2vnX7sPMbyOIHuNwZvDGDK9EvjtyJQEGjDdaaNDhjwVNzK62n59toPxVQsrh8DDTZRjINmKe1t5ad3GfXJBKYdAboyfw0KdPWW1mJAgYjxjdX8r4oWpaUgQyQIDk0qOvB3+rqSDbp1Xc49R2h5+5VjcuCIXZxLRHPmuM9dlZOd6+uPWlyGsbS+oPDi7hmn6sQDoT1wPRdycZfgffHe3+896yJJ1q3I0nZjafC4S5yX95xkP165eE65eG65kHWiTpNp+rMPGVedLK4BpCcE5FRbT2Asx8dNMj0gen2zqKCj1r4IpFNt3PM6YntBu1lOx/I3FZPdWsq8Mp2k//n1NxJRYFijdJwfZdlF/P+qZmoT35tfJHjyhS5+rQ0mI/AHBC36sX8Af3HUYizJ+mzNSUB0FWNGbE8PTHfTR2Bs2c3pPnjG6CuesDEHZl/zIviFg4Q1NaTyYs3Y52hAwOZKqgWhHiqXiCRvHCXvWYdnr7dumBTd4iud6Cuu587521YmlLWPveWj0G5RD4KmEykSYK0lAFIkQ/cuTPJzFAAyt24Y8eIomJKGhvE9DrJYv0njUniEddmu8nNRtrVkcvnxhxObJls7KaJNjz9cyCDhNeucjD+RZNldRu+l06d+4rFUPrC2c96sqN1I3ugDleefgtL2wNwIXr5MmMWeq0IeiOUr/F/Ku3rZS4PYzt6+KzZAXSCtZYYI3QBFBxg1JZ8XMwTXZxxVjFzp74LuExmVj7nnqO17MmMfsb9oabFL86NhzE/A1CI6c9s3fSIESs+J1Rzk8LDWTh3tfdwqZcp1scWKFHH6z5nihgdViBZ296XyYdXpLm6p4ztIEgkrsDp2nRwW+CVDb8rQx9qlk65hQmlgstLprc00evMTsmDoW/qxsieeiFOdhgsRarlPKIFVAi35+Z2vC+2wEzF2Crs20DX4z06bhphnjLZ7CY1UNb8z3lz6d4gMPTH+1nSxk/o8l1E/2o/p/1mJVxeco7HjsaLcTMN7lnxXGw86yZCTPD3BUrDZ8LmSalAA+xgQ45ElnJD38Zt3MYt22QrM5HaKgmmcQn+Pt+xxf8EzX6OuBmlbtjyNBl+m7MwkjFnHNHpYCAEhvw5TrjcIIgh8cr51VcLL2rjfE6fiSqTqDiteEVBP2fWg/ka0c+p/0vJqgxp63RgtKxrmyEMruMhXveJTdQIoHec229Y9rm8NQzLLCtgIIYhUr+POyGqlmzrC0hg+5AbvLUViMk+vTD/snwtLly52nDaBwSON6lAMJnULe9iVm7qyCGfwqolXl3hOUWDafo5uVANKrM7QFmXgROb3/WXM0CU5JLdyiaOfiZUtFM0F2xepBtOrqY2TU+yXWVDf8ibQ4ZKiHOLDCrasIvhRqaTXdrycvlCMGCJ15/dlndbxlrbUfXLsBBmoiWPs+u/tZlc/0Pe/1u9vzrv/13eH+993ra3fzkGDDLXL7Dq9sJAbXT9qUaTy4kmXdRtka0k+TKht0nu1xJwLIBMJ2o7Z6D3u34toEnmjl43WhtqK1GlvOhtqftfQMmIN62hMzGGNHI91u216azTS9ttv92v8AmbekGM7GBtrWXa77YRRzqsa06L3ma8LVN40aSn5OMo7ntQeOjY7I2r7kypr5xdpOoeBc2Uda2d6TG7HnXD+sU07bdxS8Hir2i1r4ffw+kTyfxhKLtI1Pp3Qq54J/+z322a++9gJ77HdTf6l3Zg3r+FeEytF2Lxs8soef2Qfs0AKusstlJP9bonsVBZdXVXPunX3r/d+wO9P977es2WfrWN1yq7hA6stWaMJFk91WvPrL8LbaCewyGs6OrVgyhLSyadqTtNt2an6QqdvjJU/5wlvWgn8Cq7DfQVrjDQ9cmsr4DVr25g5QZgmzcA+Po0qP+cxiS9RFpQbS7UqyLFg6FcKzX6OjTn3wLzbR6ibXaKL8+yfBWfxVIV578RI5O8KA9XX/jz3+9qLtP6A4MObx3U57FxxbpZc3zWHhMvzOaOlYyn+TtoHSnbU7v/O65N7FZG+FTNomGWfGcUNDSPyQkbmGt2C12fiOJLugvh+1cXgFA6DtpZouttdgKXrD7GJTVtlNuPGhe7fFb346cuy9XIP96Hs6le8QX26dcpTfAgW4sDh6wT1pjs1/d0STdAZUoX1sb0pcnqSF4rs19TE4Xs5Tqp1/Tkq9WRk3UJ3S5d45Py0HXJ1F/zE866nDi2Bmg+1y2Yeq0Zsk3WRaI1Qx3Pu6sxwjZuo7WbcEWiexiSzKfixKdwfPL+EoM613WZqV478zAc2F8bZxrtYpjralqUkywclVACr+QH/9frtyv9vWQENkrK4xPnzEM8ea3PiKv1bY3bzPAvSrieoSFU+swTSKMZjxihqvk+b0RgAO456joWF0phb16hBbjLVvcyheqcAjQh6detnGLiBvtpCqDU+quKkd75q7b8PRnHuBzuMU39mosB5/pTMfQUM54LbRK8osVZC4X5dHvtKWPRiWFo6LHukj4i3u3WjEW81a/K8fNTTcCCD4YbeeUxA0aMxxqFYdmjBRadsS7TUOns1BeWoXcAKmMqoPD+i5fyXF648uATa+5YgzPqvaD7GS7gRl2ac0+Ei0H5t6dL2kAYvmXyxVTEZJwGqMJ5rejs1ntfVciA3kJiL4ZxS4EKDFN7Tf2ucx49P+idEf7Lbzj2yaItS8JB8HbeC9DXh4r/XVu0ioL4vm+n9O7qucPTpaF8TXuNgL7+Xdj+BMpg5K2fIWwHEHuBN/eCx2mkSloNTX8E5tU9HsJJTC7886uP2ZZ2MOro+p4XhUupEExteB4Ch2Q0tdB2NHqVUoZF/TcJP5N/fof3akRsDd3Yd353pcdXyYe+YBKGyvGfoke1fcyF6p7yqUEQ4n1aOv11tvcgRyeruur3J4YfC+jKOuMzvK0SQ9ArhHDzLGmq2O2pn2S1/sDbaFfUYWUiGuRmm48txX3NJuU+q8A2Rz3026gEMQMY2Hn5LIfKfHQS3/HE420sGvttnL/FBA837M7UM6STsh4bmopEZ2dBWW8YQWJV2elnRF3KjorwRI5CtHzYkT/OfjWhecIanzRCBBIe/LepmuGvzv5yQ94U6IdfUxtXmRA9MMa0uA5B6c2Q7xCviXbOWBiLbxENZtdahRE+gEDExzi7QAYQYfgQ0hR/NVNggA+ioZNcWHKNem0FnbkE4kdL9K5zV3c9v/jpcYaz3zY4q0OGkKr5FfEgl+kPkAhxeHnwGl39qUERhfkIJ5jIDIRIjrsZd649qB0vy8I6oqKjjgMIatxre0o/Pd9oIYwJuEIPV70ysVR43mNo+AtjLF84mWxKzLw4ErqaOzLyfIfCianI+ZNCWbNr4za2EWc9L+wQ7wwgnSrysRJhrmPZCp5s6h8iuA6D6ndHf6Zw8CTSk+yxsTcgmUvJHCSsdDlECty1KVRduLsLF30yYE0xLfYJrcC4OERfMql1EWJJzkc0PalxuJSFutw7jNW8H8I3MZ/Rf7bqgserOSCQmLLcT/WcJIDfUbLgu4smr73pGIILiloo4uBAhAPaKOQP7eicj59VTs/35ZDLX2MPeGcmR56x0hJK/YCH+RCG7Wz74Bla1Y9nWKJyZwGdYauIiv26lMxZRMO3pmY9rDNrIz/DO555odBpXZj7AohGefjE5fn3kSqc/4zVy+pFs1HihJCQLoeqXpR81nR6yAjJfWOpF4I61rc3Tv/xK/2X8q/0i1A1+g/JM304oZr3nGISGxvp7PvoamR4pGUCDKvjfn6cYnrOOWiosAzHrGfsarfaTjXFJ2htEXISk+qqXAmfjKEes1mD6N0TlqnPjYLiQXOyuJWCXcT+CJb27i6ZgDHf2NAt8C5aFERT4R550wtsL4C7H4Ta4oVyc/VOkpNq1PRnbKKx5/tjm72k7UwUc1er6KF30dhQssGugiiBqksUK0s3HwptUik8wGOl/XEsdeig/STdBU0J3W5eJoLDgWoIvzMI8cBQbQcA3L+xgAV3dS0ECxcBd0kKBfWspg8OAGY1yV/yIB58OQ95MM25AEFqWK148NHDV5pqPsZZyLI9tDI0PFTaLTut7dShnIydDmCKbDEGyjRbrQ+WacqVbHnKs1Xn4t3dtqa9ThNWFJ0FfUidGz1WwXm+EQiIuKgCYvGpXVxQPG6qv5BlikjUfwCp6fdL+nvVnmg/FMBpdEDQzWfW2epHp5L7Dw6UN2135woZZ2fO7jUOuybrNE1Jg9cdUUwcEYcHypoOiOQ5fRGHzatGpqS3gEnWdKlNolnb8sV55S3jgxK54t8DLdVPfDgDbypfMBwfoxq41dc0bnOKZwTOdmc7GLv6+sMoEY6oBWlvnOpmc6Ibxu07sPx83StVyUbamL9Ar1PrMXnMsM+32TrDCZ059PS1/HMbLNpu3MMyfJowhmfecitAP4wzP9F53ae95PJxH+46zT/O+eaENUCAgZOCPvvKCPTnATye/qUbpqJhSClEoPkzRSJ20PpVdIJ4ar6HB3+T+GEp/QZofbnKk3j53fINLnJsvtJFiy1hi140f4wWyko7xmEne1Go1beiG1yisoPlLkWjHyklG7yziH0XoAN+05c5w8Nrf9rdJJfLuZjX301GXfKr0+NAh59uXL1Mx5VcfpQv3j1/LPHuydnuKDSgmqQuHzUrfm8SEJlIAwdNPZ4GuWpXFKQdhmHTKgcdTkR7YUPx2+lrupnD+BGtUZ1cKpEJp5eg8uWThRBxXguGqp7Fa0XIgAu8sjGVf/p1k8BiOHXX5T9R4bqouH9d2VyKZKtsp3ZN2Tofscxx/tYvhi4/hRrQK9QJOU2UPBoOMikMwcYAGfhwoh3j/yxNSYwQg6RauGDDPmUl2MUiXoYrXuPfhyB5ZovnATBfS2TAR7lpOMPiTNvSbr5hpdWg2oPprMnIc2kiZsR15TgdbF5Adv+ahIftgVKCNSvDl4mXEVxNgE47YCubEWx69p5g22SbsDM0G9f2k/+OqpVAmNSuIEQ/Vqaj4xy4af7KFcmXZjbhFW5u+EhqLZ9eyeshsR6WU8FXSwy91mzgbdh8K2/lvrhglwWAq+v3lwsiI9annoPIVhQHGz62AqgT6EgKzyiLjHtBceZ2YyXEcZl6IDTcmD5ZY+bY1aOHP8AynIQh1p/uRqkR1nvzPnzAbnB6CvgoGae031B5Jx+pQrbKGJfkttvVTgtBCu2Hotrs/UD92L4ZxQChCyoCqByv/3+hfcPHuk0NBJ+uQQfnxM7bC4rswuiTm6TGqCEjjbzVtEB5uZ00auG3aSMfe/KwaMlqdW5GIRWLKuF74Fi6z9Bw76c2A/jvKLaAnGC6Xt8WKQEIdTpmUu6kAYrsPlazkFPM/MJR06ieGmoV7sxi1QXm9sS9M/REh3V+XV2kJh37/7oknUkB1VQYaNsU7ojX14OgRYPeTJbzqp6cxlYv4mwqmRywPiwi4XoE7vAiOJX5ouDCtCXfo0DpVGKEPW9Z9HoRI0g/nsQIcSeAS5BACRjfPGWQ18NrBNU3Uw8H2rClTwhdKHYMFWWFHMUpS6J8SSoovMCfNGByryoXK57C4KtuWOVel05M1DfKIspR1A3u1xdqrnqWjjnRueFWnlKwY42urV0xdNS3Fkml2HUU3lRFRWB9odyUaOBnYEpDwxeKeIdDxcdd9ezlrKBgd3nf7Ck9JC4OiW/YFO7xcMZlSk2WfZODOx5DMrYOxvjK74K1XAT3U+MR0HluiwR8DaDJHyTNavychuXTpg2xSE701CiGq6raiJ3deCFeWRe+zCFeapDzFazSDnecmnmLj5WNdyV3esGfpgti4VzIq23FFcVFRGBwo5rG4S1XfF7TiROfMgDiQnQnlF6JA6lyRByN1LefSa/pFPbsub4YhOLolrSAjjX+VvH3oO/y3NiW9svMeHCMIoXK2x/9Uly5CAUlIg3S0RFHQrCqHmxx3SxU8M4JNjQgQJJ1pH/hvUvXEj6u3QAjKlWCLPBO+toyX2pHNNev2oIPsLGe+D7ykCyn/Ty9vTHyNhH0CY6IWUa77154g3fMSdSnwCYOk+KMVULGjru3XLRk2muhfyZNxR1P/uRP8eRPeY03KCqVn++oYdHYeftDLKe7y3d8kIRm4AIr54oDxuGDblRgU8G6U9BxrpKzRLKgSFnt/UHdANqO0RVtitGXkcTb6vj3OHvlyP1dRjleE6OExnBSFB/O1AA8R0C7fzzK2oY0iBv2RrY+fiNbH1fn4+HetQsv2iwkfLsbBzdDDDdkA7+LFUH2HqkIRbWn2CQtrZnZnaasgb2/g1YEXRzx0RYwxokcDOV1Lq0w9Tr3XWQ4FvG7tf4SiuZOH9z6lVDPAKSNCynTCztsCwCwwbaP0H6O/yAg47yWUosy8pnct3Trv7+Ua6z858b+v2Vbx91Yf9fe9Wzd1mw9X/c1X/u56sB6uf4s9URbO6+Pdb+6zazf8zewq0dovb/aWUf0btZAfedWsKNfZR6+rUz0TYuxVI1e2MDw8kHiYlBzQyG1SWk5QawOcLUSRwMI009FcBzErsRxwcLp9loOXXG2y7bjs1FNgGYvt2Jmd/XprbFituCngBOjd4chj14i1OnZYeMMZWQyKsKGF3tX1ASAqr50xs9eWR0fc3UIkEaqcAiaPHwy4cK65aXTcE7JIJmDF7HHTU12YFbuIl0evi48j0HUuX+h5IItl6yPFQVUVj6ghEl7v8jaYVTKVIXtRcI9HHtfG48NcLJ4MOq4iKZhbMhZ4OaymQC6qprDwff9/N/SlPJF0SU2NUErqCw7E4KU/5TmuCYF4WDIeM1p6YQtebofS1pN0QDRV252IdEeJd7QW0IPjoXa9aXvJKiOUgkz5Jw6cXoWsAITWEk2pgMH+CHFrXql63b4YcO9q42VsVJaq2PdtBqTNF44Ph3LCpBp08HtlkUz9aEIzTk+eR26UBE+rk0tkHGsv2o0t+i8K4bZaa3fNagzlWIragJE0zXMHy7IBEMhK1jEDDljUW5uuI4VUr6S9YaAZpUe4Gxc6bhurYumNk/QCwKkPQBMIvzhjFAicIQxC9gdgOSMyDipd3nNHAS7ByAzjJGTGJ81SlwT8q2RdyGnUm55jrnllSDyO3sJiM5o8Hz4GYB89gSV1SD/JVlbACLd+jomF9Zhf24q6XkmJL0JHnx3GCp4rRmmYDbDpxT7R3hUihF04i/XeD1w8ykEj7rGiFZSOY+pxcgS+AEFjJ9zBmpvHXPtM+a4YmDs/ro1evIq5lo1c6mXnqch1U7ZRTmRqkduCUsT5PakS38gCBeMSrpSXLQctv3pe9VvaXcYEw9gGXDP+CYAuMmOTBflgpR7ceLPheKvaxnjtb+T3ucv3h3AQg2lalIH8+2Tmu3mZWr0ok2QcyZ3p4QurELcg7d8/A+LjXvhMRHZNvNgZePFhpGOUxUbwnU75Ta0cd998js1wu84PAbJf3lp9iSI//lKRqG+fgoNa/3JZSTvlLynRHlIjCYNUNqjC/OQ7/TkzY95TXOUvKX4ZqkWOsjFfk1xq0KWSP6tfM+N5aKIk51sTPuv723k++E0k87aDXvATsHZv+zGmLJREdbYqlT4G+h5bbWZ/Vb+jU6X2Am9gDmfqQbsZK1GHfLwAfvxHIsqjuBL3ZKu2zvSyra+lZYOxnzkR+GtBxN0ckVJh1s8RNHZo+N2B1B3SAcxbF3Vc4WFTL7ruJsSDYMA6GVLR38Xhl9KLmbFZUgNFve5buXKWC0RkOZain1e5YKe7OOpn/IjY8irpa47hlzzN9GylEMPfwCmxHqrYvDTl7FohLTvXu2hbjaR62nuXLFs/KL6cWT2b0OvgBVv2Fg2AUYuB01ORGCwqgTfWR2VIp1nT0+g1JNyBgksohrL57UqflkDKFHrUbHtRWyEjOppYipQbDCEDjttkHvj1hZkDWK4jIRUmYfIwj+UBqHUNpGMUVM+8tPjk4Rw9FyUk8jWRfEipixfj70DTGOuUs0opiRLLMaAnvRfPnacnaHZzIGWEFzlS828mMwfeau9+Orp1f3lXSffHTFvD8BwkzUF0OYEyin463HBzkN6nByQs8JMswriP5g5WehS4SYyjwVIZcEi3l9JM3Axzbb5RtFvfAD/RIgUCqlbAP0BlJ7pFLq0ozlZ3yrOjtJl9Lu4ZzfELvBRw6zoqgZSu/kJ4pWcf/eN2zV0+ijHSfXTNke72O0pcpj/8+Pcn55EEdYuHneXInCso8+8Zv0M8ZVjA027vuDuiC2fUd8aVNLU50X07PZkTtBf8+nc0Tea+C5MfBSugYnKLWJR3kncEuUwXFiP1JSAr5veUI8qa7ioTShCby0+caFw1LZk3uOyR3m1HgqiROtc6zxCB6ZiaeoinIozcYWqTO6x+jPhnH1bPZHtWirPIOnjNXKCVnhAbFqflyZ1VLSD3dmH40WD4FZJF+UjSwmXiojv4HXCWGbvfG+KFmds9BvAQa6Ix1/crd0/RNGI5KUot4kEm++Nxv32ozG7PiqwXx9Qv+Ssawfn28MAv9qU4DCrd8LH1Gqkorw0BXM9Q4AcXNTWT8Rx238Wz7zTCN8Wb6+H4V0WWkUQcAP/xnqRaBYDnAKKJY3liMiVp7SHln0n7gRrNCqKxE+xQG1ALpnKO5VIYR82U3YFAkBKlAnnV601gO+4fRtw8pKHauhynFFrTQxK8G+4zOiUBClxWWeJ1QaxBArEDJBrq2EOJ/GdoQ8KNe70RUbYpLkY3bfD2HRVxtxg4Rd0F7lACUIDXIe7uGVbE0CNm6VHX+O3IEPya45tNW2AeLXqzpeFzkqWMEruOL9Y35cV1UZZZvshxrALnUaW3PGTupSoZvP+CRVEzUlDVC8yQclUhy0PidnqJ6G2aavL5a57czkWiKPNMZ1YyefiDZlMNJmZtKUc3E+EGYrq4PBm9HC9P2y7ztKdEkhug65bVfGAA6SaPrHHKmCaFwYpKRS0aZtYPWaDjKDDPkVi4DSdVeIe0B+XeEsPW8r3XLj7y6VtWQ43kZ8D4/wW3nG4rtFxWLiGtenmiOpMcj0vgrAFi2ZgB2dGnvpfbzPG4PhNeytzET4Ro2zS9QKCtBWB8Nmp3w41R2tXki5VajJjqfvNtKUPKbwWopbNQAnzu0A9E+u/3LeyukNDXcd0ZiF5iMroX9QtXMAMmyI/J1mQaJd9F5pb8xCiTOej5SKiciyILWMB6raNSfAnIMf3GWMSlyIYO7ssONgNaDTyCLTbgk0lHOuOCp8E8fFfscx/+KWTMpWLysdPfl/DdZhq8knTZ8lNX4vJZXDOy4wmgk0ZToY09zqovLVgKh6uBTCnZhAmV8BATno1QtFg2qLXiq6pKre3cSThQwdEnxCYaJZiBrIsJ+A95NLXHuFLGeWobtNr10IH/Z35+TrGxc9OCto6ZktgAkjP75M/Cz1YWMdQoABzq1dkmkA5U7gm/MSEW4Uy9+KDBdxtZm+pwiIwHcraaBSJgImm2oV9IyUo4wYXWUjwkwEYiNEzjkJw8S3FPvnBR1NuWQOiWQc3AjaZuvhJtEo5mck+daTk9PO+W2efl7FeJmv9qz71G3H/3q/4e4xNSlTCMAxa9sLYuk+AEy9XLt4puqzycsrLSi8jVWGL5QoJECvGDpZ5KOYrD88MY60/vp9nyrulyh6XkiKRA8+Qf8qK0SgBN0X/w2aJEj0A","base64")).toString()),Mj)});var U1e=_((Gj,Wj)=>{(function(t){Gj&&typeof Gj=="object"&&typeof Wj<"u"?Wj.exports=t():typeof define=="function"&&define.amd?define([],t):typeof window<"u"?window.isWindows=t():typeof global<"u"?global.isWindows=t():typeof self<"u"?self.isWindows=t():this.isWindows=t()})(function(){"use strict";return function(){return process&&(process.platform==="win32"||/^(msys|cygwin)$/.test(process.env.OSTYPE))}})});var j1e=_((SXt,q1e)=>{"use strict";Yj.ifExists=Twt;var FC=ve("util"),cc=ve("path"),_1e=U1e(),Qwt=/^#!\s*(?:\/usr\/bin\/env)?\s*([^ \t]+)(.*)$/,Fwt={createPwshFile:!0,createCmdFile:_1e(),fs:ve("fs")},Rwt=new Map([[".js","node"],[".cjs","node"],[".mjs","node"],[".cmd","cmd"],[".bat","cmd"],[".ps1","pwsh"],[".sh","sh"]]);function H1e(t){let e={...Fwt,...t},r=e.fs;return e.fs_={chmod:r.chmod?FC.promisify(r.chmod):async()=>{},mkdir:FC.promisify(r.mkdir),readFile:FC.promisify(r.readFile),stat:FC.promisify(r.stat),unlink:FC.promisify(r.unlink),writeFile:FC.promisify(r.writeFile)},e}async function Yj(t,e,r){let o=H1e(r);await o.fs_.stat(t),await Lwt(t,e,o)}function Twt(t,e,r){return Yj(t,e,r).catch(()=>{})}function Nwt(t,e){return e.fs_.unlink(t).catch(()=>{})}async function Lwt(t,e,r){let o=await Hwt(t,r);return await Owt(e,r),Mwt(t,e,o,r)}function Owt(t,e){return e.fs_.mkdir(cc.dirname(t),{recursive:!0})}function Mwt(t,e,r,o){let a=H1e(o),n=[{generator:Gwt,extension:""}];return a.createCmdFile&&n.push({generator:jwt,extension:".cmd"}),a.createPwshFile&&n.push({generator:Wwt,extension:".ps1"}),Promise.all(n.map(u=>qwt(t,e+u.extension,r,u.generator,a)))}function Uwt(t,e){return Nwt(t,e)}function _wt(t,e){return Ywt(t,e)}async function Hwt(t,e){let a=(await e.fs_.readFile(t,"utf8")).trim().split(/\r*\n/)[0].match(Qwt);if(!a){let n=cc.extname(t).toLowerCase();return{program:Rwt.get(n)||null,additionalArgs:""}}return{program:a[1],additionalArgs:a[2]}}async function qwt(t,e,r,o,a){let n=a.preserveSymlinks?"--preserve-symlinks":"",u=[r.additionalArgs,n].filter(A=>A).join(" ");return a=Object.assign({},a,{prog:r.program,args:u}),await Uwt(e,a),await a.fs_.writeFile(e,o(t,e,a),"utf8"),_wt(e,a)}function jwt(t,e,r){let a=cc.relative(cc.dirname(e),t).split("/").join("\\"),n=cc.isAbsolute(a)?`"${a}"`:`"%~dp0\\${a}"`,u,A=r.prog,p=r.args||"",h=Kj(r.nodePath).win32;A?(u=`"%~dp0\\${A}.exe"`,a=n):(A=n,p="",a="");let E=r.progArgs?`${r.progArgs.join(" ")} `:"",w=h?`@SET NODE_PATH=${h}\r +`:"";return u?w+=`@IF EXIST ${u} (\r + ${u} ${p} ${a} ${E}%*\r +) ELSE (\r + @SETLOCAL\r + @SET PATHEXT=%PATHEXT:;.JS;=;%\r + ${A} ${p} ${a} ${E}%*\r +)\r +`:w+=`@${A} ${p} ${a} ${E}%*\r +`,w}function Gwt(t,e,r){let o=cc.relative(cc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n;o=o.split("\\").join("/");let u=cc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,A=r.args||"",p=Kj(r.nodePath).posix;a?(n=`"$basedir/${r.prog}"`,o=u):(a=u,A="",o="");let h=r.progArgs?`${r.progArgs.join(" ")} `:"",E=`#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\\\,/,g')") + +case \`uname\` in + *CYGWIN*) basedir=\`cygpath -w "$basedir"\`;; +esac + +`,w=r.nodePath?`export NODE_PATH="${p}" +`:"";return n?E+=`${w}if [ -x ${n} ]; then + exec ${n} ${A} ${o} ${h}"$@" +else + exec ${a} ${A} ${o} ${h}"$@" +fi +`:E+=`${w}${a} ${A} ${o} ${h}"$@" +exit $? +`,E}function Wwt(t,e,r){let o=cc.relative(cc.dirname(e),t),a=r.prog&&r.prog.split("\\").join("/"),n=a&&`"${a}$exe"`,u;o=o.split("\\").join("/");let A=cc.isAbsolute(o)?`"${o}"`:`"$basedir/${o}"`,p=r.args||"",h=Kj(r.nodePath),E=h.win32,w=h.posix;n?(u=`"$basedir/${r.prog}$exe"`,o=A):(n=A,p="",o="");let D=r.progArgs?`${r.progArgs.join(" ")} `:"",x=`#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +${r.nodePath?`$env_node_path=$env:NODE_PATH +$env:NODE_PATH="${E}" +`:""}if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +}`;return r.nodePath&&(x+=` else { + $env:NODE_PATH="${w}" +}`),u?x+=` +$ret=0 +if (Test-Path ${u}) { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${u} ${p} ${o} ${D}$args + } else { + & ${u} ${p} ${o} ${D}$args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${D}$args + } else { + & ${n} ${p} ${o} ${D}$args + } + $ret=$LASTEXITCODE +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $ret +`:x+=` +# Support pipeline input +if ($MyInvocation.ExpectingInput) { + $input | & ${n} ${p} ${o} ${D}$args +} else { + & ${n} ${p} ${o} ${D}$args +} +${r.nodePath?`$env:NODE_PATH=$env_node_path +`:""}exit $LASTEXITCODE +`,x}function Ywt(t,e){return e.fs_.chmod(t,493)}function Kj(t){if(!t)return{win32:"",posix:""};let e=typeof t=="string"?t.split(cc.delimiter):Array.from(t),r={};for(let o=0;o`/mnt/${A.toLowerCase()}`):e[o];r.win32=r.win32?`${r.win32};${a}`:a,r.posix=r.posix?`${r.posix}:${n}`:n,r[o]={win32:a,posix:n}}return r}q1e.exports=Yj});var a5=_((VZt,c2e)=>{c2e.exports=ve("stream")});var p2e=_((JZt,f2e)=>{"use strict";function u2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function E1t(t){for(var e=1;e0?this.tail.next=o:this.head=o,this.tail=o,++this.length}},{key:"unshift",value:function(r){var o={data:r,next:this.head};this.length===0&&(this.tail=o),this.head=o,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var o=this.head,a=""+o.data;o=o.next;)a+=r+o.data;return a}},{key:"concat",value:function(r){if(this.length===0)return sF.alloc(0);for(var o=sF.allocUnsafe(r>>>0),a=this.head,n=0;a;)P1t(a.data,o,n),n+=a.data.length,a=a.next;return o}},{key:"consume",value:function(r,o){var a;return ru.length?u.length:r;if(A===u.length?n+=u:n+=u.slice(0,r),r-=A,r===0){A===u.length?(++a,o.next?this.head=o.next:this.head=this.tail=null):(this.head=o,o.data=u.slice(A));break}++a}return this.length-=a,n}},{key:"_getBuffer",value:function(r){var o=sF.allocUnsafe(r),a=this.head,n=1;for(a.data.copy(o),r-=a.data.length;a=a.next;){var u=a.data,A=r>u.length?u.length:r;if(u.copy(o,o.length-r,0,A),r-=A,r===0){A===u.length?(++n,a.next?this.head=a.next:this.head=this.tail=null):(this.head=a,a.data=u.slice(A));break}++n}return this.length-=n,o}},{key:D1t,value:function(r,o){return l5(this,E1t({},o,{depth:0,customInspect:!1}))}}]),t}()});var u5=_((zZt,g2e)=>{"use strict";function S1t(t,e){var r=this,o=this._readableState&&this._readableState.destroyed,a=this._writableState&&this._writableState.destroyed;return o||a?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(c5,this,t)):process.nextTick(c5,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(n){!e&&n?r._writableState?r._writableState.errorEmitted?process.nextTick(oF,r):(r._writableState.errorEmitted=!0,process.nextTick(h2e,r,n)):process.nextTick(h2e,r,n):e?(process.nextTick(oF,r),e(n)):process.nextTick(oF,r)}),this)}function h2e(t,e){c5(t,e),oF(t)}function oF(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function b1t(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function c5(t,e){t.emit("error",e)}function x1t(t,e){var r=t._readableState,o=t._writableState;r&&r.autoDestroy||o&&o.autoDestroy?t.destroy(e):t.emit("error",e)}g2e.exports={destroy:S1t,undestroy:b1t,errorOrDestroy:x1t}});var Jh=_((XZt,y2e)=>{"use strict";var m2e={};function Ac(t,e,r){r||(r=Error);function o(n,u,A){return typeof e=="string"?e:e(n,u,A)}class a extends r{constructor(u,A,p){super(o(u,A,p))}}a.prototype.name=r.name,a.prototype.code=t,m2e[t]=a}function d2e(t,e){if(Array.isArray(t)){let r=t.length;return t=t.map(o=>String(o)),r>2?`one of ${e} ${t.slice(0,r-1).join(", ")}, or `+t[r-1]:r===2?`one of ${e} ${t[0]} or ${t[1]}`:`of ${e} ${t[0]}`}else return`of ${e} ${String(t)}`}function k1t(t,e,r){return t.substr(!r||r<0?0:+r,e.length)===e}function Q1t(t,e,r){return(r===void 0||r>t.length)&&(r=t.length),t.substring(r-e.length,r)===e}function F1t(t,e,r){return typeof r!="number"&&(r=0),r+e.length>t.length?!1:t.indexOf(e,r)!==-1}Ac("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError);Ac("ERR_INVALID_ARG_TYPE",function(t,e,r){let o;typeof e=="string"&&k1t(e,"not ")?(o="must not be",e=e.replace(/^not /,"")):o="must be";let a;if(Q1t(t," argument"))a=`The ${t} ${o} ${d2e(e,"type")}`;else{let n=F1t(t,".")?"property":"argument";a=`The "${t}" ${n} ${o} ${d2e(e,"type")}`}return a+=`. Received type ${typeof r}`,a},TypeError);Ac("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Ac("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"});Ac("ERR_STREAM_PREMATURE_CLOSE","Premature close");Ac("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"});Ac("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Ac("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Ac("ERR_STREAM_WRITE_AFTER_END","write after end");Ac("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Ac("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError);Ac("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");y2e.exports.codes=m2e});var A5=_((ZZt,E2e)=>{"use strict";var R1t=Jh().codes.ERR_INVALID_OPT_VALUE;function T1t(t,e,r){return t.highWaterMark!=null?t.highWaterMark:e?t[r]:null}function N1t(t,e,r,o){var a=T1t(e,o,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var n=o?r:"highWaterMark";throw new R1t(n,a)}return Math.floor(a)}return t.objectMode?16:16*1024}E2e.exports={getHighWaterMark:N1t}});var C2e=_(($Zt,f5)=>{typeof Object.create=="function"?f5.exports=function(e,r){r&&(e.super_=r,e.prototype=Object.create(r.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:f5.exports=function(e,r){if(r){e.super_=r;var o=function(){};o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e}}});var zh=_((e$t,h5)=>{try{if(p5=ve("util"),typeof p5.inherits!="function")throw"";h5.exports=p5.inherits}catch{h5.exports=C2e()}var p5});var w2e=_((t$t,I2e)=>{I2e.exports=ve("util").deprecate});var m5=_((r$t,b2e)=>{"use strict";b2e.exports=Ni;function v2e(t){var e=this;this.next=null,this.entry=null,this.finish=function(){l2t(e,t)}}var OC;Ni.WritableState=Tv;var L1t={deprecate:w2e()},D2e=a5(),lF=ve("buffer").Buffer,O1t=global.Uint8Array||function(){};function M1t(t){return lF.from(t)}function U1t(t){return lF.isBuffer(t)||t instanceof O1t}var d5=u5(),_1t=A5(),H1t=_1t.getHighWaterMark,Xh=Jh().codes,q1t=Xh.ERR_INVALID_ARG_TYPE,j1t=Xh.ERR_METHOD_NOT_IMPLEMENTED,G1t=Xh.ERR_MULTIPLE_CALLBACK,W1t=Xh.ERR_STREAM_CANNOT_PIPE,Y1t=Xh.ERR_STREAM_DESTROYED,K1t=Xh.ERR_STREAM_NULL_VALUES,V1t=Xh.ERR_STREAM_WRITE_AFTER_END,J1t=Xh.ERR_UNKNOWN_ENCODING,MC=d5.errorOrDestroy;zh()(Ni,D2e);function z1t(){}function Tv(t,e,r){OC=OC||dd(),t=t||{},typeof r!="boolean"&&(r=e instanceof OC),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.writableObjectMode),this.highWaterMark=H1t(this,t,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var o=t.decodeStrings===!1;this.decodeStrings=!o,this.defaultEncoding=t.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(a){n2t(e,a)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new v2e(this)}Tv.prototype.getBuffer=function(){for(var e=this.bufferedRequest,r=[];e;)r.push(e),e=e.next;return r};(function(){try{Object.defineProperty(Tv.prototype,"buffer",{get:L1t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch{}})();var aF;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(aF=Function.prototype[Symbol.hasInstance],Object.defineProperty(Ni,Symbol.hasInstance,{value:function(e){return aF.call(this,e)?!0:this!==Ni?!1:e&&e._writableState instanceof Tv}})):aF=function(e){return e instanceof this};function Ni(t){OC=OC||dd();var e=this instanceof OC;if(!e&&!aF.call(Ni,this))return new Ni(t);this._writableState=new Tv(t,this,e),this.writable=!0,t&&(typeof t.write=="function"&&(this._write=t.write),typeof t.writev=="function"&&(this._writev=t.writev),typeof t.destroy=="function"&&(this._destroy=t.destroy),typeof t.final=="function"&&(this._final=t.final)),D2e.call(this)}Ni.prototype.pipe=function(){MC(this,new W1t)};function X1t(t,e){var r=new V1t;MC(t,r),process.nextTick(e,r)}function Z1t(t,e,r,o){var a;return r===null?a=new K1t:typeof r!="string"&&!e.objectMode&&(a=new q1t("chunk",["string","Buffer"],r)),a?(MC(t,a),process.nextTick(o,a),!1):!0}Ni.prototype.write=function(t,e,r){var o=this._writableState,a=!1,n=!o.objectMode&&U1t(t);return n&&!lF.isBuffer(t)&&(t=M1t(t)),typeof e=="function"&&(r=e,e=null),n?e="buffer":e||(e=o.defaultEncoding),typeof r!="function"&&(r=z1t),o.ending?X1t(this,r):(n||Z1t(this,o,t,r))&&(o.pendingcb++,a=e2t(this,o,n,t,e,r)),a};Ni.prototype.cork=function(){this._writableState.corked++};Ni.prototype.uncork=function(){var t=this._writableState;t.corked&&(t.corked--,!t.writing&&!t.corked&&!t.bufferProcessing&&t.bufferedRequest&&P2e(this,t))};Ni.prototype.setDefaultEncoding=function(e){if(typeof e=="string"&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new J1t(e);return this._writableState.defaultEncoding=e,this};Object.defineProperty(Ni.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function $1t(t,e,r){return!t.objectMode&&t.decodeStrings!==!1&&typeof e=="string"&&(e=lF.from(e,r)),e}Object.defineProperty(Ni.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function e2t(t,e,r,o,a,n){if(!r){var u=$1t(e,o,a);o!==u&&(r=!0,a="buffer",o=u)}var A=e.objectMode?1:o.length;e.length+=A;var p=e.length{"use strict";var c2t=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};k2e.exports=IA;var x2e=C5(),E5=m5();zh()(IA,x2e);for(y5=c2t(E5.prototype),cF=0;cF{var AF=ve("buffer"),np=AF.Buffer;function Q2e(t,e){for(var r in t)e[r]=t[r]}np.from&&np.alloc&&np.allocUnsafe&&np.allocUnsafeSlow?F2e.exports=AF:(Q2e(AF,I5),I5.Buffer=UC);function UC(t,e,r){return np(t,e,r)}Q2e(np,UC);UC.from=function(t,e,r){if(typeof t=="number")throw new TypeError("Argument must not be a number");return np(t,e,r)};UC.alloc=function(t,e,r){if(typeof t!="number")throw new TypeError("Argument must be a number");var o=np(t);return e!==void 0?typeof r=="string"?o.fill(e,r):o.fill(e):o.fill(0),o};UC.allocUnsafe=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return np(t)};UC.allocUnsafeSlow=function(t){if(typeof t!="number")throw new TypeError("Argument must be a number");return AF.SlowBuffer(t)}});var v5=_(N2e=>{"use strict";var B5=R2e().Buffer,T2e=B5.isEncoding||function(t){switch(t=""+t,t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function f2t(t){if(!t)return"utf8";for(var e;;)switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase(),e=!0}}function p2t(t){var e=f2t(t);if(typeof e!="string"&&(B5.isEncoding===T2e||!T2e(t)))throw new Error("Unknown encoding: "+t);return e||t}N2e.StringDecoder=Nv;function Nv(t){this.encoding=p2t(t);var e;switch(this.encoding){case"utf16le":this.text=E2t,this.end=C2t,e=4;break;case"utf8":this.fillLast=d2t,e=4;break;case"base64":this.text=I2t,this.end=w2t,e=3;break;default:this.write=B2t,this.end=v2t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=B5.allocUnsafe(e)}Nv.prototype.write=function(t){if(t.length===0)return"";var e,r;if(this.lastNeed){if(e=this.fillLast(t),e===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:t>>4===14?3:t>>3===30?4:t>>6===2?-1:-2}function h2t(t,e,r){var o=e.length-1;if(o=0?(a>0&&(t.lastNeed=a-1),a):--o=0?(a>0&&(t.lastNeed=a-2),a):--o=0?(a>0&&(a===2?a=0:t.lastNeed=a-3),a):0))}function g2t(t,e,r){if((e[0]&192)!==128)return t.lastNeed=0,"\uFFFD";if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128)return t.lastNeed=1,"\uFFFD";if(t.lastNeed>2&&e.length>2&&(e[2]&192)!==128)return t.lastNeed=2,"\uFFFD"}}function d2t(t){var e=this.lastTotal-this.lastNeed,r=g2t(this,t,e);if(r!==void 0)return r;if(this.lastNeed<=t.length)return t.copy(this.lastChar,e,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);t.copy(this.lastChar,e,0,t.length),this.lastNeed-=t.length}function m2t(t,e){var r=h2t(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var o=t.length-(r-this.lastNeed);return t.copy(this.lastChar,0,o),t.toString("utf8",e,o)}function y2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+"\uFFFD":e}function E2t(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var o=r.charCodeAt(r.length-1);if(o>=55296&&o<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=t[t.length-1],t.toString("utf16le",e,t.length-1)}function C2t(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function I2t(t,e){var r=(t.length-e)%3;return r===0?t.toString("base64",e):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=t[t.length-1]:(this.lastChar[0]=t[t.length-2],this.lastChar[1]=t[t.length-1]),t.toString("base64",e,t.length-r))}function w2t(t){var e=t&&t.length?this.write(t):"";return this.lastNeed?e+this.lastChar.toString("base64",0,3-this.lastNeed):e}function B2t(t){return t.toString(this.encoding)}function v2t(t){return t&&t.length?this.write(t):""}});var fF=_((s$t,M2e)=>{"use strict";var L2e=Jh().codes.ERR_STREAM_PREMATURE_CLOSE;function D2t(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,o=new Array(r),a=0;a{"use strict";var pF;function Zh(t,e,r){return e in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var b2t=fF(),$h=Symbol("lastResolve"),md=Symbol("lastReject"),Lv=Symbol("error"),hF=Symbol("ended"),yd=Symbol("lastPromise"),D5=Symbol("handlePromise"),Ed=Symbol("stream");function e0(t,e){return{value:t,done:e}}function x2t(t){var e=t[$h];if(e!==null){var r=t[Ed].read();r!==null&&(t[yd]=null,t[$h]=null,t[md]=null,e(e0(r,!1)))}}function k2t(t){process.nextTick(x2t,t)}function Q2t(t,e){return function(r,o){t.then(function(){if(e[hF]){r(e0(void 0,!0));return}e[D5](r,o)},o)}}var F2t=Object.getPrototypeOf(function(){}),R2t=Object.setPrototypeOf((pF={get stream(){return this[Ed]},next:function(){var e=this,r=this[Lv];if(r!==null)return Promise.reject(r);if(this[hF])return Promise.resolve(e0(void 0,!0));if(this[Ed].destroyed)return new Promise(function(u,A){process.nextTick(function(){e[Lv]?A(e[Lv]):u(e0(void 0,!0))})});var o=this[yd],a;if(o)a=new Promise(Q2t(o,this));else{var n=this[Ed].read();if(n!==null)return Promise.resolve(e0(n,!1));a=new Promise(this[D5])}return this[yd]=a,a}},Zh(pF,Symbol.asyncIterator,function(){return this}),Zh(pF,"return",function(){var e=this;return new Promise(function(r,o){e[Ed].destroy(null,function(a){if(a){o(a);return}r(e0(void 0,!0))})})}),pF),F2t),T2t=function(e){var r,o=Object.create(R2t,(r={},Zh(r,Ed,{value:e,writable:!0}),Zh(r,$h,{value:null,writable:!0}),Zh(r,md,{value:null,writable:!0}),Zh(r,Lv,{value:null,writable:!0}),Zh(r,hF,{value:e._readableState.endEmitted,writable:!0}),Zh(r,D5,{value:function(n,u){var A=o[Ed].read();A?(o[yd]=null,o[$h]=null,o[md]=null,n(e0(A,!1))):(o[$h]=n,o[md]=u)},writable:!0}),r));return o[yd]=null,b2t(e,function(a){if(a&&a.code!=="ERR_STREAM_PREMATURE_CLOSE"){var n=o[md];n!==null&&(o[yd]=null,o[$h]=null,o[md]=null,n(a)),o[Lv]=a;return}var u=o[$h];u!==null&&(o[yd]=null,o[$h]=null,o[md]=null,u(e0(void 0,!0))),o[hF]=!0}),e.on("readable",k2t.bind(null,o)),o};U2e.exports=T2t});var G2e=_((a$t,j2e)=>{"use strict";function H2e(t,e,r,o,a,n,u){try{var A=t[n](u),p=A.value}catch(h){r(h);return}A.done?e(p):Promise.resolve(p).then(o,a)}function N2t(t){return function(){var e=this,r=arguments;return new Promise(function(o,a){var n=t.apply(e,r);function u(p){H2e(n,o,a,u,A,"next",p)}function A(p){H2e(n,o,a,u,A,"throw",p)}u(void 0)})}}function q2e(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(t);e&&(o=o.filter(function(a){return Object.getOwnPropertyDescriptor(t,a).enumerable})),r.push.apply(r,o)}return r}function L2t(t){for(var e=1;e{"use strict";eBe.exports=wn;var _C;wn.ReadableState=V2e;var l$t=ve("events").EventEmitter,K2e=function(e,r){return e.listeners(r).length},Mv=a5(),gF=ve("buffer").Buffer,_2t=global.Uint8Array||function(){};function H2t(t){return gF.from(t)}function q2t(t){return gF.isBuffer(t)||t instanceof _2t}var P5=ve("util"),tn;P5&&P5.debuglog?tn=P5.debuglog("stream"):tn=function(){};var j2t=p2e(),R5=u5(),G2t=A5(),W2t=G2t.getHighWaterMark,dF=Jh().codes,Y2t=dF.ERR_INVALID_ARG_TYPE,K2t=dF.ERR_STREAM_PUSH_AFTER_EOF,V2t=dF.ERR_METHOD_NOT_IMPLEMENTED,J2t=dF.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,HC,S5,b5;zh()(wn,Mv);var Ov=R5.errorOrDestroy,x5=["error","close","destroy","pause","resume"];function z2t(t,e,r){if(typeof t.prependListener=="function")return t.prependListener(e,r);!t._events||!t._events[e]?t.on(e,r):Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]}function V2e(t,e,r){_C=_C||dd(),t=t||{},typeof r!="boolean"&&(r=e instanceof _C),this.objectMode=!!t.objectMode,r&&(this.objectMode=this.objectMode||!!t.readableObjectMode),this.highWaterMark=W2t(this,t,"readableHighWaterMark",r),this.buffer=new j2t,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=t.emitClose!==!1,this.autoDestroy=!!t.autoDestroy,this.destroyed=!1,this.defaultEncoding=t.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,t.encoding&&(HC||(HC=v5().StringDecoder),this.decoder=new HC(t.encoding),this.encoding=t.encoding)}function wn(t){if(_C=_C||dd(),!(this instanceof wn))return new wn(t);var e=this instanceof _C;this._readableState=new V2e(t,this,e),this.readable=!0,t&&(typeof t.read=="function"&&(this._read=t.read),typeof t.destroy=="function"&&(this._destroy=t.destroy)),Mv.call(this)}Object.defineProperty(wn.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}});wn.prototype.destroy=R5.destroy;wn.prototype._undestroy=R5.undestroy;wn.prototype._destroy=function(t,e){e(t)};wn.prototype.push=function(t,e){var r=this._readableState,o;return r.objectMode?o=!0:typeof t=="string"&&(e=e||r.defaultEncoding,e!==r.encoding&&(t=gF.from(t,e),e=""),o=!0),J2e(this,t,e,!1,o)};wn.prototype.unshift=function(t){return J2e(this,t,null,!0,!1)};function J2e(t,e,r,o,a){tn("readableAddChunk",e);var n=t._readableState;if(e===null)n.reading=!1,$2t(t,n);else{var u;if(a||(u=X2t(n,e)),u)Ov(t,u);else if(n.objectMode||e&&e.length>0)if(typeof e!="string"&&!n.objectMode&&Object.getPrototypeOf(e)!==gF.prototype&&(e=H2t(e)),o)n.endEmitted?Ov(t,new J2t):k5(t,n,e,!0);else if(n.ended)Ov(t,new K2t);else{if(n.destroyed)return!1;n.reading=!1,n.decoder&&!r?(e=n.decoder.write(e),n.objectMode||e.length!==0?k5(t,n,e,!1):F5(t,n)):k5(t,n,e,!1)}else o||(n.reading=!1,F5(t,n))}return!n.ended&&(n.length=W2e?t=W2e:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}function Y2e(t,e){return t<=0||e.length===0&&e.ended?0:e.objectMode?1:t!==t?e.flowing&&e.length?e.buffer.head.data.length:e.length:(t>e.highWaterMark&&(e.highWaterMark=Z2t(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}wn.prototype.read=function(t){tn("read",t),t=parseInt(t,10);var e=this._readableState,r=t;if(t!==0&&(e.emittedReadable=!1),t===0&&e.needReadable&&((e.highWaterMark!==0?e.length>=e.highWaterMark:e.length>0)||e.ended))return tn("read: emitReadable",e.length,e.ended),e.length===0&&e.ended?Q5(this):mF(this),null;if(t=Y2e(t,e),t===0&&e.ended)return e.length===0&&Q5(this),null;var o=e.needReadable;tn("need readable",o),(e.length===0||e.length-t0?a=Z2e(t,e):a=null,a===null?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),e.length===0&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&Q5(this)),a!==null&&this.emit("data",a),a};function $2t(t,e){if(tn("onEofChunk"),!e.ended){if(e.decoder){var r=e.decoder.end();r&&r.length&&(e.buffer.push(r),e.length+=e.objectMode?1:r.length)}e.ended=!0,e.sync?mF(t):(e.needReadable=!1,e.emittedReadable||(e.emittedReadable=!0,z2e(t)))}}function mF(t){var e=t._readableState;tn("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(tn("emitReadable",e.flowing),e.emittedReadable=!0,process.nextTick(z2e,t))}function z2e(t){var e=t._readableState;tn("emitReadable_",e.destroyed,e.length,e.ended),!e.destroyed&&(e.length||e.ended)&&(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,T5(t)}function F5(t,e){e.readingMore||(e.readingMore=!0,process.nextTick(eBt,t,e))}function eBt(t,e){for(;!e.reading&&!e.ended&&(e.length1&&$2e(o.pipes,t)!==-1)&&!h&&(tn("false write response, pause",o.awaitDrain),o.awaitDrain++),r.pause())}function D(L){tn("onerror",L),T(),t.removeListener("error",D),K2e(t,"error")===0&&Ov(t,L)}z2t(t,"error",D);function x(){t.removeListener("finish",C),T()}t.once("close",x);function C(){tn("onfinish"),t.removeListener("close",x),T()}t.once("finish",C);function T(){tn("unpipe"),r.unpipe(t)}return t.emit("pipe",r),o.flowing||(tn("pipe resume"),r.resume()),t};function tBt(t){return function(){var r=t._readableState;tn("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&K2e(t,"data")&&(r.flowing=!0,T5(t))}}wn.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(e.pipesCount===0)return this;if(e.pipesCount===1)return t&&t!==e.pipes?this:(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r),this);if(!t){var o=e.pipes,a=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var n=0;n0,o.flowing!==!1&&this.resume()):t==="readable"&&!o.endEmitted&&!o.readableListening&&(o.readableListening=o.needReadable=!0,o.flowing=!1,o.emittedReadable=!1,tn("on readable",o.length,o.reading),o.length?mF(this):o.reading||process.nextTick(rBt,this)),r};wn.prototype.addListener=wn.prototype.on;wn.prototype.removeListener=function(t,e){var r=Mv.prototype.removeListener.call(this,t,e);return t==="readable"&&process.nextTick(X2e,this),r};wn.prototype.removeAllListeners=function(t){var e=Mv.prototype.removeAllListeners.apply(this,arguments);return(t==="readable"||t===void 0)&&process.nextTick(X2e,this),e};function X2e(t){var e=t._readableState;e.readableListening=t.listenerCount("readable")>0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function rBt(t){tn("readable nexttick read 0"),t.read(0)}wn.prototype.resume=function(){var t=this._readableState;return t.flowing||(tn("resume"),t.flowing=!t.readableListening,nBt(this,t)),t.paused=!1,this};function nBt(t,e){e.resumeScheduled||(e.resumeScheduled=!0,process.nextTick(iBt,t,e))}function iBt(t,e){tn("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),T5(t),e.flowing&&!e.reading&&t.read(0)}wn.prototype.pause=function(){return tn("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(tn("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function T5(t){var e=t._readableState;for(tn("flow",e.flowing);e.flowing&&t.read()!==null;);}wn.prototype.wrap=function(t){var e=this,r=this._readableState,o=!1;t.on("end",function(){if(tn("wrapped end"),r.decoder&&!r.ended){var u=r.decoder.end();u&&u.length&&e.push(u)}e.push(null)}),t.on("data",function(u){if(tn("wrapped data"),r.decoder&&(u=r.decoder.write(u)),!(r.objectMode&&u==null)&&!(!r.objectMode&&(!u||!u.length))){var A=e.push(u);A||(o=!0,t.pause())}});for(var a in t)this[a]===void 0&&typeof t[a]=="function"&&(this[a]=function(A){return function(){return t[A].apply(t,arguments)}}(a));for(var n=0;n=e.length?(e.decoder?r=e.buffer.join(""):e.buffer.length===1?r=e.buffer.first():r=e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r}function Q5(t){var e=t._readableState;tn("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,process.nextTick(sBt,e,t))}function sBt(t,e){if(tn("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&t.length===0&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}typeof Symbol=="function"&&(wn.from=function(t,e){return b5===void 0&&(b5=G2e()),b5(wn,t,e)});function $2e(t,e){for(var r=0,o=t.length;r{"use strict";rBe.exports=ip;var yF=Jh().codes,oBt=yF.ERR_METHOD_NOT_IMPLEMENTED,aBt=yF.ERR_MULTIPLE_CALLBACK,lBt=yF.ERR_TRANSFORM_ALREADY_TRANSFORMING,cBt=yF.ERR_TRANSFORM_WITH_LENGTH_0,EF=dd();zh()(ip,EF);function uBt(t,e){var r=this._transformState;r.transforming=!1;var o=r.writecb;if(o===null)return this.emit("error",new aBt);r.writechunk=null,r.writecb=null,e!=null&&this.push(e),o(t);var a=this._readableState;a.reading=!1,(a.needReadable||a.length{"use strict";iBe.exports=Uv;var nBe=N5();zh()(Uv,nBe);function Uv(t){if(!(this instanceof Uv))return new Uv(t);nBe.call(this,t)}Uv.prototype._transform=function(t,e,r){r(null,t)}});var uBe=_((f$t,cBe)=>{"use strict";var L5;function fBt(t){var e=!1;return function(){e||(e=!0,t.apply(void 0,arguments))}}var lBe=Jh().codes,pBt=lBe.ERR_MISSING_ARGS,hBt=lBe.ERR_STREAM_DESTROYED;function oBe(t){if(t)throw t}function gBt(t){return t.setHeader&&typeof t.abort=="function"}function dBt(t,e,r,o){o=fBt(o);var a=!1;t.on("close",function(){a=!0}),L5===void 0&&(L5=fF()),L5(t,{readable:e,writable:r},function(u){if(u)return o(u);a=!0,o()});var n=!1;return function(u){if(!a&&!n){if(n=!0,gBt(t))return t.abort();if(typeof t.destroy=="function")return t.destroy();o(u||new hBt("pipe"))}}}function aBe(t){t()}function mBt(t,e){return t.pipe(e)}function yBt(t){return!t.length||typeof t[t.length-1]!="function"?oBe:t.pop()}function EBt(){for(var t=arguments.length,e=new Array(t),r=0;r0;return dBt(u,p,h,function(E){a||(a=E),E&&n.forEach(aBe),!p&&(n.forEach(aBe),o(a))})});return e.reduce(mBt)}cBe.exports=EBt});var qC=_((fc,Hv)=>{var _v=ve("stream");process.env.READABLE_STREAM==="disable"&&_v?(Hv.exports=_v.Readable,Object.assign(Hv.exports,_v),Hv.exports.Stream=_v):(fc=Hv.exports=C5(),fc.Stream=_v||fc,fc.Readable=fc,fc.Writable=m5(),fc.Duplex=dd(),fc.Transform=N5(),fc.PassThrough=sBe(),fc.finished=fF(),fc.pipeline=uBe())});var pBe=_((p$t,fBe)=>{"use strict";var{Buffer:hu}=ve("buffer"),ABe=Symbol.for("BufferList");function fi(t){if(!(this instanceof fi))return new fi(t);fi._init.call(this,t)}fi._init=function(e){Object.defineProperty(this,ABe,{value:!0}),this._bufs=[],this.length=0,e&&this.append(e)};fi.prototype._new=function(e){return new fi(e)};fi.prototype._offset=function(e){if(e===0)return[0,0];let r=0;for(let o=0;othis.length||e<0)return;let r=this._offset(e);return this._bufs[r[0]][r[1]]};fi.prototype.slice=function(e,r){return typeof e=="number"&&e<0&&(e+=this.length),typeof r=="number"&&r<0&&(r+=this.length),this.copy(null,0,e,r)};fi.prototype.copy=function(e,r,o,a){if((typeof o!="number"||o<0)&&(o=0),(typeof a!="number"||a>this.length)&&(a=this.length),o>=this.length||a<=0)return e||hu.alloc(0);let n=!!e,u=this._offset(o),A=a-o,p=A,h=n&&r||0,E=u[1];if(o===0&&a===this.length){if(!n)return this._bufs.length===1?this._bufs[0]:hu.concat(this._bufs,this.length);for(let w=0;wD)this._bufs[w].copy(e,h,E),h+=D;else{this._bufs[w].copy(e,h,E,E+p),h+=D;break}p-=D,E&&(E=0)}return e.length>h?e.slice(0,h):e};fi.prototype.shallowSlice=function(e,r){if(e=e||0,r=typeof r!="number"?this.length:r,e<0&&(e+=this.length),r<0&&(r+=this.length),e===r)return this._new();let o=this._offset(e),a=this._offset(r),n=this._bufs.slice(o[0],a[0]+1);return a[1]===0?n.pop():n[n.length-1]=n[n.length-1].slice(0,a[1]),o[1]!==0&&(n[0]=n[0].slice(o[1])),this._new(n)};fi.prototype.toString=function(e,r,o){return this.slice(r,o).toString(e)};fi.prototype.consume=function(e){if(e=Math.trunc(e),Number.isNaN(e)||e<=0)return this;for(;this._bufs.length;)if(e>=this._bufs[0].length)e-=this._bufs[0].length,this.length-=this._bufs[0].length,this._bufs.shift();else{this._bufs[0]=this._bufs[0].slice(e),this.length-=e;break}return this};fi.prototype.duplicate=function(){let e=this._new();for(let r=0;rthis.length?this.length:e;let o=this._offset(e),a=o[0],n=o[1];for(;a=t.length){let p=u.indexOf(t,n);if(p!==-1)return this._reverseOffset([a,p]);n=u.length-t.length+1}else{let p=this._reverseOffset([a,n]);if(this._match(p,t))return p;n++}n=0}return-1};fi.prototype._match=function(t,e){if(this.length-t{"use strict";var O5=qC().Duplex,CBt=zh(),qv=pBe();function Fo(t){if(!(this instanceof Fo))return new Fo(t);if(typeof t=="function"){this._callback=t;let e=function(o){this._callback&&(this._callback(o),this._callback=null)}.bind(this);this.on("pipe",function(o){o.on("error",e)}),this.on("unpipe",function(o){o.removeListener("error",e)}),t=null}qv._init.call(this,t),O5.call(this)}CBt(Fo,O5);Object.assign(Fo.prototype,qv.prototype);Fo.prototype._new=function(e){return new Fo(e)};Fo.prototype._write=function(e,r,o){this._appendBuffer(e),typeof o=="function"&&o()};Fo.prototype._read=function(e){if(!this.length)return this.push(null);e=Math.min(e,this.length),this.push(this.slice(0,e)),this.consume(e)};Fo.prototype.end=function(e){O5.prototype.end.call(this,e),this._callback&&(this._callback(null,this.slice()),this._callback=null)};Fo.prototype._destroy=function(e,r){this._bufs.length=0,this.length=0,r(e)};Fo.prototype._isBufferList=function(e){return e instanceof Fo||e instanceof qv||Fo.isBufferList(e)};Fo.isBufferList=qv.isBufferList;CF.exports=Fo;CF.exports.BufferListStream=Fo;CF.exports.BufferList=qv});var _5=_(GC=>{var IBt=Buffer.alloc,wBt="0000000000000000000",BBt="7777777777777777777",gBe=48,dBe=Buffer.from("ustar\0","binary"),vBt=Buffer.from("00","binary"),DBt=Buffer.from("ustar ","binary"),PBt=Buffer.from(" \0","binary"),SBt=parseInt("7777",8),jv=257,U5=263,bBt=function(t,e,r){return typeof t!="number"?r:(t=~~t,t>=e?e:t>=0||(t+=e,t>=0)?t:0)},xBt=function(t){switch(t){case 0:return"file";case 1:return"link";case 2:return"symlink";case 3:return"character-device";case 4:return"block-device";case 5:return"directory";case 6:return"fifo";case 7:return"contiguous-file";case 72:return"pax-header";case 55:return"pax-global-header";case 27:return"gnu-long-link-path";case 28:case 30:return"gnu-long-path"}return null},kBt=function(t){switch(t){case"file":return 0;case"link":return 1;case"symlink":return 2;case"character-device":return 3;case"block-device":return 4;case"directory":return 5;case"fifo":return 6;case"contiguous-file":return 7;case"pax-header":return 72}return 0},mBe=function(t,e,r,o){for(;re?BBt.slice(0,e)+" ":wBt.slice(0,e-t.length)+t+" "};function QBt(t){var e;if(t[0]===128)e=!0;else if(t[0]===255)e=!1;else return null;for(var r=[],o=t.length-1;o>0;o--){var a=t[o];e?r.push(a):r.push(255-a)}var n=0,u=r.length;for(o=0;o=Math.pow(10,r)&&r++,e+r+t};GC.decodeLongPath=function(t,e){return jC(t,0,t.length,e)};GC.encodePax=function(t){var e="";t.name&&(e+=M5(" path="+t.name+` +`)),t.linkname&&(e+=M5(" linkpath="+t.linkname+` +`));var r=t.pax;if(r)for(var o in r)e+=M5(" "+o+"="+r[o]+` +`);return Buffer.from(e)};GC.decodePax=function(t){for(var e={};t.length;){for(var r=0;r100;){var a=r.indexOf("/");if(a===-1)return null;o+=o?"/"+r.slice(0,a):r.slice(0,a),r=r.slice(a+1)}return Buffer.byteLength(r)>100||Buffer.byteLength(o)>155||t.linkname&&Buffer.byteLength(t.linkname)>100?null:(e.write(r),e.write(t0(t.mode&SBt,6),100),e.write(t0(t.uid,6),108),e.write(t0(t.gid,6),116),e.write(t0(t.size,11),124),e.write(t0(t.mtime.getTime()/1e3|0,11),136),e[156]=gBe+kBt(t.type),t.linkname&&e.write(t.linkname,157),dBe.copy(e,jv),vBt.copy(e,U5),t.uname&&e.write(t.uname,265),t.gname&&e.write(t.gname,297),e.write(t0(t.devmajor||0,6),329),e.write(t0(t.devminor||0,6),337),o&&e.write(o,345),e.write(t0(yBe(e),6),148),e)};GC.decode=function(t,e,r){var o=t[156]===0?0:t[156]-gBe,a=jC(t,0,100,e),n=r0(t,100,8),u=r0(t,108,8),A=r0(t,116,8),p=r0(t,124,12),h=r0(t,136,12),E=xBt(o),w=t[157]===0?null:jC(t,157,100,e),D=jC(t,265,32),x=jC(t,297,32),C=r0(t,329,8),T=r0(t,337,8),L=yBe(t);if(L===8*32)return null;if(L!==r0(t,148,8))throw new Error("Invalid tar header. Maybe the tar is corrupted or it needs to be gunzipped?");if(dBe.compare(t,jv,jv+6)===0)t[345]&&(a=jC(t,345,155,e)+"/"+a);else if(!(DBt.compare(t,jv,jv+6)===0&&PBt.compare(t,U5,U5+2)===0)){if(!r)throw new Error("Invalid tar header: unknown format.")}return o===0&&a&&a[a.length-1]==="/"&&(o=5),{name:a,mode:n,uid:u,gid:A,size:p,mtime:new Date(1e3*h),type:E,linkname:w,uname:D,gname:x,devmajor:C,devminor:T}}});var DBe=_((d$t,vBe)=>{var CBe=ve("util"),FBt=hBe(),Gv=_5(),IBe=qC().Writable,wBe=qC().PassThrough,BBe=function(){},EBe=function(t){return t&=511,t&&512-t},RBt=function(t,e){var r=new IF(t,e);return r.end(),r},TBt=function(t,e){return e.path&&(t.name=e.path),e.linkpath&&(t.linkname=e.linkpath),e.size&&(t.size=parseInt(e.size,10)),t.pax=e,t},IF=function(t,e){this._parent=t,this.offset=e,wBe.call(this,{autoDestroy:!1})};CBe.inherits(IF,wBe);IF.prototype.destroy=function(t){this._parent.destroy(t)};var sp=function(t){if(!(this instanceof sp))return new sp(t);IBe.call(this,t),t=t||{},this._offset=0,this._buffer=FBt(),this._missing=0,this._partial=!1,this._onparse=BBe,this._header=null,this._stream=null,this._overflow=null,this._cb=null,this._locked=!1,this._destroyed=!1,this._pax=null,this._paxGlobal=null,this._gnuLongPath=null,this._gnuLongLinkPath=null;var e=this,r=e._buffer,o=function(){e._continue()},a=function(D){if(e._locked=!1,D)return e.destroy(D);e._stream||o()},n=function(){e._stream=null;var D=EBe(e._header.size);D?e._parse(D,u):e._parse(512,w),e._locked||o()},u=function(){e._buffer.consume(EBe(e._header.size)),e._parse(512,w),o()},A=function(){var D=e._header.size;e._paxGlobal=Gv.decodePax(r.slice(0,D)),r.consume(D),n()},p=function(){var D=e._header.size;e._pax=Gv.decodePax(r.slice(0,D)),e._paxGlobal&&(e._pax=Object.assign({},e._paxGlobal,e._pax)),r.consume(D),n()},h=function(){var D=e._header.size;this._gnuLongPath=Gv.decodeLongPath(r.slice(0,D),t.filenameEncoding),r.consume(D),n()},E=function(){var D=e._header.size;this._gnuLongLinkPath=Gv.decodeLongPath(r.slice(0,D),t.filenameEncoding),r.consume(D),n()},w=function(){var D=e._offset,x;try{x=e._header=Gv.decode(r.slice(0,512),t.filenameEncoding,t.allowUnknownFormat)}catch(C){e.emit("error",C)}if(r.consume(512),!x){e._parse(512,w),o();return}if(x.type==="gnu-long-path"){e._parse(x.size,h),o();return}if(x.type==="gnu-long-link-path"){e._parse(x.size,E),o();return}if(x.type==="pax-global-header"){e._parse(x.size,A),o();return}if(x.type==="pax-header"){e._parse(x.size,p),o();return}if(e._gnuLongPath&&(x.name=e._gnuLongPath,e._gnuLongPath=null),e._gnuLongLinkPath&&(x.linkname=e._gnuLongLinkPath,e._gnuLongLinkPath=null),e._pax&&(e._header=x=TBt(x,e._pax),e._pax=null),e._locked=!0,!x.size||x.type==="directory"){e._parse(512,w),e.emit("entry",x,RBt(e,D),a);return}e._stream=new IF(e,D),e.emit("entry",x,e._stream,a),e._parse(x.size,n),o()};this._onheader=w,this._parse(512,w)};CBe.inherits(sp,IBe);sp.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.emit("close"))};sp.prototype._parse=function(t,e){this._destroyed||(this._offset+=t,this._missing=t,e===this._onheader&&(this._partial=!1),this._onparse=e)};sp.prototype._continue=function(){if(!this._destroyed){var t=this._cb;this._cb=BBe,this._overflow?this._write(this._overflow,void 0,t):t()}};sp.prototype._write=function(t,e,r){if(!this._destroyed){var o=this._stream,a=this._buffer,n=this._missing;if(t.length&&(this._partial=!0),t.lengthn&&(u=t.slice(n),t=t.slice(0,n)),o?o.end(t):a.append(t),this._overflow=u,this._onparse()}};sp.prototype._final=function(t){if(this._partial)return this.destroy(new Error("Unexpected end of data"));t()};vBe.exports=sp});var SBe=_((m$t,PBe)=>{PBe.exports=ve("fs").constants||ve("constants")});var FBe=_((y$t,QBe)=>{var WC=SBe(),bBe=EU(),BF=zh(),NBt=Buffer.alloc,xBe=qC().Readable,YC=qC().Writable,LBt=ve("string_decoder").StringDecoder,wF=_5(),OBt=parseInt("755",8),MBt=parseInt("644",8),kBe=NBt(1024),q5=function(){},H5=function(t,e){e&=511,e&&t.push(kBe.slice(0,512-e))};function UBt(t){switch(t&WC.S_IFMT){case WC.S_IFBLK:return"block-device";case WC.S_IFCHR:return"character-device";case WC.S_IFDIR:return"directory";case WC.S_IFIFO:return"fifo";case WC.S_IFLNK:return"symlink"}return"file"}var vF=function(t){YC.call(this),this.written=0,this._to=t,this._destroyed=!1};BF(vF,YC);vF.prototype._write=function(t,e,r){if(this.written+=t.length,this._to.push(t))return r();this._to._drain=r};vF.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var DF=function(){YC.call(this),this.linkname="",this._decoder=new LBt("utf-8"),this._destroyed=!1};BF(DF,YC);DF.prototype._write=function(t,e,r){this.linkname+=this._decoder.write(t),r()};DF.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var Wv=function(){YC.call(this),this._destroyed=!1};BF(Wv,YC);Wv.prototype._write=function(t,e,r){r(new Error("No body allowed for this entry"))};Wv.prototype.destroy=function(){this._destroyed||(this._destroyed=!0,this.emit("close"))};var wA=function(t){if(!(this instanceof wA))return new wA(t);xBe.call(this,t),this._drain=q5,this._finalized=!1,this._finalizing=!1,this._destroyed=!1,this._stream=null};BF(wA,xBe);wA.prototype.entry=function(t,e,r){if(this._stream)throw new Error("already piping an entry");if(!(this._finalized||this._destroyed)){typeof e=="function"&&(r=e,e=null),r||(r=q5);var o=this;if((!t.size||t.type==="symlink")&&(t.size=0),t.type||(t.type=UBt(t.mode)),t.mode||(t.mode=t.type==="directory"?OBt:MBt),t.uid||(t.uid=0),t.gid||(t.gid=0),t.mtime||(t.mtime=new Date),typeof e=="string"&&(e=Buffer.from(e)),Buffer.isBuffer(e)){t.size=e.length,this._encode(t);var a=this.push(e);return H5(o,t.size),a?process.nextTick(r):this._drain=r,new Wv}if(t.type==="symlink"&&!t.linkname){var n=new DF;return bBe(n,function(A){if(A)return o.destroy(),r(A);t.linkname=n.linkname,o._encode(t),r()}),n}if(this._encode(t),t.type!=="file"&&t.type!=="contiguous-file")return process.nextTick(r),new Wv;var u=new vF(this);return this._stream=u,bBe(u,function(A){if(o._stream=null,A)return o.destroy(),r(A);if(u.written!==t.size)return o.destroy(),r(new Error("size mismatch"));H5(o,t.size),o._finalizing&&o.finalize(),r()}),u}};wA.prototype.finalize=function(){if(this._stream){this._finalizing=!0;return}this._finalized||(this._finalized=!0,this.push(kBe),this.push(null))};wA.prototype.destroy=function(t){this._destroyed||(this._destroyed=!0,t&&this.emit("error",t),this.emit("close"),this._stream&&this._stream.destroy&&this._stream.destroy())};wA.prototype._encode=function(t){if(!t.pax){var e=wF.encode(t);if(e){this.push(e);return}}this._encodePax(t)};wA.prototype._encodePax=function(t){var e=wF.encodePax({name:t.name,linkname:t.linkname,pax:t.pax}),r={name:"PaxHeader",mode:t.mode,uid:t.uid,gid:t.gid,size:e.length,mtime:t.mtime,type:"pax-header",linkname:t.linkname&&"PaxHeader",uname:t.uname,gname:t.gname,devmajor:t.devmajor,devminor:t.devminor};this.push(wF.encode(r)),this.push(e),H5(this,e.length),r.size=t.size,r.type=t.type,this.push(wF.encode(r))};wA.prototype._read=function(t){var e=this._drain;this._drain=q5,e()};QBe.exports=wA});var RBe=_(j5=>{j5.extract=DBe();j5.pack=FBe()});var WBe=_((M$t,GBe)=>{"use strict";var Yv=class t{constructor(e,r,o){this.__specs=e||{},Object.keys(this.__specs).forEach(a=>{if(typeof this.__specs[a]=="string"){let n=this.__specs[a],u=this.__specs[n];if(u){let A=u.aliases||[];A.push(a,n),u.aliases=[...new Set(A)],this.__specs[a]=u}else throw new Error(`Alias refers to invalid key: ${n} -> ${a}`)}}),this.__opts=r||{},this.__providers=qBe(o.filter(a=>a!=null&&typeof a=="object")),this.__isFiggyPudding=!0}get(e){return J5(this,e,!0)}get[Symbol.toStringTag](){return"FiggyPudding"}forEach(e,r=this){for(let[o,a]of this.entries())e.call(r,a,o,this)}toJSON(){let e={};return this.forEach((r,o)=>{e[o]=r}),e}*entries(e){for(let o of Object.keys(this.__specs))yield[o,this.get(o)];let r=e||this.__opts.other;if(r){let o=new Set;for(let a of this.__providers){let n=a.entries?a.entries(r):evt(a);for(let[u,A]of n)r(u)&&!o.has(u)&&(o.add(u),yield[u,A])}}}*[Symbol.iterator](){for(let[e,r]of this.entries())yield[e,r]}*keys(){for(let[e]of this.entries())yield e}*values(){for(let[,e]of this.entries())yield e}concat(...e){return new Proxy(new t(this.__specs,this.__opts,qBe(this.__providers).concat(e)),jBe)}};try{let t=ve("util");Yv.prototype[t.inspect.custom]=function(e,r){return this[Symbol.toStringTag]+" "+t.inspect(this.toJSON(),r)}}catch{}function ZBt(t){throw Object.assign(new Error(`invalid config key requested: ${t}`),{code:"EBADKEY"})}function J5(t,e,r){let o=t.__specs[e];if(r&&!o&&(!t.__opts.other||!t.__opts.other(e)))ZBt(e);else{o||(o={});let a;for(let n of t.__providers){if(a=HBe(e,n),a===void 0&&o.aliases&&o.aliases.length){for(let u of o.aliases)if(u!==e&&(a=HBe(u,n),a!==void 0))break}if(a!==void 0)break}return a===void 0&&o.default!==void 0?typeof o.default=="function"?o.default(t):o.default:a}}function HBe(t,e){let r;return e.__isFiggyPudding?r=J5(e,t,!1):typeof e.get=="function"?r=e.get(t):r=e[t],r}var jBe={has(t,e){return e in t.__specs&&J5(t,e,!1)!==void 0},ownKeys(t){return Object.keys(t.__specs)},get(t,e){return typeof e=="symbol"||e.slice(0,2)==="__"||e in Yv.prototype?t[e]:t.get(e)},set(t,e,r){if(typeof e=="symbol"||e.slice(0,2)==="__")return t[e]=r,!0;throw new Error("figgyPudding options cannot be modified. Use .concat() instead.")},deleteProperty(){throw new Error("figgyPudding options cannot be deleted. Use .concat() and shadow them instead.")}};GBe.exports=$Bt;function $Bt(t,e){function r(...o){return new Proxy(new Yv(t,e,o),jBe)}return r}function qBe(t){let e=[];return t.forEach(r=>e.unshift(r)),e}function evt(t){return Object.keys(t).map(e=>[e,t[e]])}});var VBe=_((U$t,DA)=>{"use strict";var Vv=ve("crypto"),tvt=WBe(),rvt=ve("stream").Transform,YBe=["sha256","sha384","sha512"],nvt=/^[a-z0-9+/]+(?:=?=?)$/i,ivt=/^([^-]+)-([^?]+)([?\S*]*)$/,svt=/^([^-]+)-([A-Za-z0-9+/=]{44,88})(\?[\x21-\x7E]*)*$/,ovt=/^[\x21-\x7E]+$/,na=tvt({algorithms:{default:["sha512"]},error:{default:!1},integrity:{},options:{default:[]},pickAlgorithm:{default:()=>hvt},Promise:{default:()=>Promise},sep:{default:" "},single:{default:!1},size:{},strict:{default:!1}}),n0=class{get isHash(){return!0}constructor(e,r){r=na(r);let o=!!r.strict;this.source=e.trim();let a=this.source.match(o?svt:ivt);if(!a||o&&!YBe.some(u=>u===a[1]))return;this.algorithm=a[1],this.digest=a[2];let n=a[3];this.options=n?n.slice(1).split("?"):[]}hexDigest(){return this.digest&&Buffer.from(this.digest,"base64").toString("hex")}toJSON(){return this.toString()}toString(e){if(e=na(e),e.strict&&!(YBe.some(o=>o===this.algorithm)&&this.digest.match(nvt)&&(this.options||[]).every(o=>o.match(ovt))))return"";let r=this.options&&this.options.length?`?${this.options.join("?")}`:"";return`${this.algorithm}-${this.digest}${r}`}},Cd=class{get isIntegrity(){return!0}toJSON(){return this.toString()}toString(e){e=na(e);let r=e.sep||" ";return e.strict&&(r=r.replace(/\S+/g," ")),Object.keys(this).map(o=>this[o].map(a=>n0.prototype.toString.call(a,e)).filter(a=>a.length).join(r)).filter(o=>o.length).join(r)}concat(e,r){r=na(r);let o=typeof e=="string"?e:Kv(e,r);return vA(`${this.toString(r)} ${o}`,r)}hexDigest(){return vA(this,{single:!0}).hexDigest()}match(e,r){r=na(r);let o=vA(e,r),a=o.pickAlgorithm(r);return this[a]&&o[a]&&this[a].find(n=>o[a].find(u=>n.digest===u.digest))||!1}pickAlgorithm(e){e=na(e);let r=e.pickAlgorithm,o=Object.keys(this);if(!o.length)throw new Error(`No algorithms available for ${JSON.stringify(this.toString())}`);return o.reduce((a,n)=>r(a,n)||a)}};DA.exports.parse=vA;function vA(t,e){if(e=na(e),typeof t=="string")return z5(t,e);if(t.algorithm&&t.digest){let r=new Cd;return r[t.algorithm]=[t],z5(Kv(r,e),e)}else return z5(Kv(t,e),e)}function z5(t,e){return e.single?new n0(t,e):t.trim().split(/\s+/).reduce((r,o)=>{let a=new n0(o,e);if(a.algorithm&&a.digest){let n=a.algorithm;r[n]||(r[n]=[]),r[n].push(a)}return r},new Cd)}DA.exports.stringify=Kv;function Kv(t,e){return e=na(e),t.algorithm&&t.digest?n0.prototype.toString.call(t,e):typeof t=="string"?Kv(vA(t,e),e):Cd.prototype.toString.call(t,e)}DA.exports.fromHex=avt;function avt(t,e,r){r=na(r);let o=r.options&&r.options.length?`?${r.options.join("?")}`:"";return vA(`${e}-${Buffer.from(t,"hex").toString("base64")}${o}`,r)}DA.exports.fromData=lvt;function lvt(t,e){e=na(e);let r=e.algorithms,o=e.options&&e.options.length?`?${e.options.join("?")}`:"";return r.reduce((a,n)=>{let u=Vv.createHash(n).update(t).digest("base64"),A=new n0(`${n}-${u}${o}`,e);if(A.algorithm&&A.digest){let p=A.algorithm;a[p]||(a[p]=[]),a[p].push(A)}return a},new Cd)}DA.exports.fromStream=cvt;function cvt(t,e){e=na(e);let r=e.Promise||Promise,o=X5(e);return new r((a,n)=>{t.pipe(o),t.on("error",n),o.on("error",n);let u;o.on("integrity",A=>{u=A}),o.on("end",()=>a(u)),o.on("data",()=>{})})}DA.exports.checkData=uvt;function uvt(t,e,r){if(r=na(r),e=vA(e,r),!Object.keys(e).length){if(r.error)throw Object.assign(new Error("No valid integrity hashes to check against"),{code:"EINTEGRITY"});return!1}let o=e.pickAlgorithm(r),a=Vv.createHash(o).update(t).digest("base64"),n=vA({algorithm:o,digest:a}),u=n.match(e,r);if(u||!r.error)return u;if(typeof r.size=="number"&&t.length!==r.size){let A=new Error(`data size mismatch when checking ${e}. + Wanted: ${r.size} + Found: ${t.length}`);throw A.code="EBADSIZE",A.found=t.length,A.expected=r.size,A.sri=e,A}else{let A=new Error(`Integrity checksum failed when using ${o}: Wanted ${e}, but got ${n}. (${t.length} bytes)`);throw A.code="EINTEGRITY",A.found=n,A.expected=e,A.algorithm=o,A.sri=e,A}}DA.exports.checkStream=Avt;function Avt(t,e,r){r=na(r);let o=r.Promise||Promise,a=X5(r.concat({integrity:e}));return new o((n,u)=>{t.pipe(a),t.on("error",u),a.on("error",u);let A;a.on("verified",p=>{A=p}),a.on("end",()=>n(A)),a.on("data",()=>{})})}DA.exports.integrityStream=X5;function X5(t){t=na(t);let e=t.integrity&&vA(t.integrity,t),r=e&&Object.keys(e).length,o=r&&e.pickAlgorithm(t),a=r&&e[o],n=Array.from(new Set(t.algorithms.concat(o?[o]:[]))),u=n.map(Vv.createHash),A=0,p=new rvt({transform(h,E,w){A+=h.length,u.forEach(D=>D.update(h,E)),w(null,h,E)}}).on("end",()=>{let h=t.options&&t.options.length?`?${t.options.join("?")}`:"",E=vA(u.map((D,x)=>`${n[x]}-${D.digest("base64")}${h}`).join(" "),t),w=r&&E.match(e,t);if(typeof t.size=="number"&&A!==t.size){let D=new Error(`stream size mismatch when checking ${e}. + Wanted: ${t.size} + Found: ${A}`);D.code="EBADSIZE",D.found=A,D.expected=t.size,D.sri=e,p.emit("error",D)}else if(t.integrity&&!w){let D=new Error(`${e} integrity checksum failed when using ${o}: wanted ${a} but got ${E}. (${A} bytes)`);D.code="EINTEGRITY",D.found=E,D.expected=a,D.algorithm=o,D.sri=e,p.emit("error",D)}else p.emit("size",A),p.emit("integrity",E),w&&p.emit("verified",w)});return p}DA.exports.create=fvt;function fvt(t){t=na(t);let e=t.algorithms,r=t.options.length?`?${t.options.join("?")}`:"",o=e.map(Vv.createHash);return{update:function(a,n){return o.forEach(u=>u.update(a,n)),this},digest:function(a){return e.reduce((u,A)=>{let p=o.shift().digest("base64"),h=new n0(`${A}-${p}${r}`,t);if(h.algorithm&&h.digest){let E=h.algorithm;u[E]||(u[E]=[]),u[E].push(h)}return u},new Cd)}}}var pvt=new Set(Vv.getHashes()),KBe=["md5","whirlpool","sha1","sha224","sha256","sha384","sha512","sha3","sha3-256","sha3-384","sha3-512","sha3_256","sha3_384","sha3_512"].filter(t=>pvt.has(t));function hvt(t,e){return KBe.indexOf(t.toLowerCase())>=KBe.indexOf(e.toLowerCase())?t:e}});var Bve=_((qnr,wve)=>{var hDt=WL();function gDt(t){return hDt(t)?void 0:t}wve.exports=gDt});var Dve=_((jnr,vve)=>{var dDt=Cx(),mDt=hH(),yDt=yH(),EDt=Wg(),CDt=Eg(),IDt=Bve(),wDt=l_(),BDt=pH(),vDt=1,DDt=2,PDt=4,SDt=wDt(function(t,e){var r={};if(t==null)return r;var o=!1;e=dDt(e,function(n){return n=EDt(n,t),o||(o=n.length>1),n}),CDt(t,BDt(t),r),o&&(r=mDt(r,vDt|DDt|PDt,IDt));for(var a=e.length;a--;)yDt(r,e[a]);return r});vve.exports=SDt});Pt();Ke();Pt();var kve=ve("child_process"),Qve=et(sg());Gt();var oE=new Map([]);var S2={};Kt(S2,{BaseCommand:()=>ut,WorkspaceRequiredError:()=>or,getCli:()=>qhe,getDynamicLibs:()=>Hhe,getPluginConfiguration:()=>lE,openWorkspace:()=>aE,pluginCommands:()=>oE,runExit:()=>Lk});Gt();var ut=class extends ot{constructor(){super(...arguments);this.cwd=de.String("--cwd",{hidden:!0})}validateAndExecute(){if(typeof this.cwd<"u")throw new it("The --cwd option is ambiguous when used anywhere else than the very first parameter provided in the command line, before even the command path");return super.validateAndExecute()}};Ke();Pt();Gt();var or=class extends it{constructor(e,r){let o=K.relative(e,r),a=K.join(e,_t.fileName);super(`This command can only be run from within a workspace of your project (${o} isn't a workspace of ${a}).`)}};Ke();Pt();sA();Ol();z1();Gt();var SAt=et(ni());il();var Hhe=()=>new Map([["@yarnpkg/cli",S2],["@yarnpkg/core",P2],["@yarnpkg/fslib",Aw],["@yarnpkg/libzip",V1],["@yarnpkg/parsers",Ew],["@yarnpkg/shell",e2],["clipanion",Qw],["semver",SAt],["typanion",Yo]]);Ke();async function aE(t,e){let{project:r,workspace:o}=await Qt.find(t,e);if(!o)throw new or(r.cwd,e);return o}Ke();Pt();sA();Ol();z1();Gt();var LDt=et(ni());il();var MH={};Kt(MH,{AddCommand:()=>fE,BinCommand:()=>pE,CacheCleanCommand:()=>hE,ClipanionCommand:()=>CE,ConfigCommand:()=>yE,ConfigGetCommand:()=>gE,ConfigSetCommand:()=>dE,ConfigUnsetCommand:()=>mE,DedupeCommand:()=>EE,EntryCommand:()=>wE,ExecCommand:()=>vE,ExplainCommand:()=>SE,ExplainPeerRequirementsCommand:()=>DE,HelpCommand:()=>IE,InfoCommand:()=>bE,LinkCommand:()=>kE,NodeCommand:()=>QE,PluginCheckCommand:()=>FE,PluginImportCommand:()=>NE,PluginImportSourcesCommand:()=>LE,PluginListCommand:()=>RE,PluginRemoveCommand:()=>OE,PluginRuntimeCommand:()=>ME,RebuildCommand:()=>UE,RemoveCommand:()=>_E,RunCommand:()=>qE,RunIndexCommand:()=>HE,SetResolutionCommand:()=>jE,SetVersionCommand:()=>PE,SetVersionSourcesCommand:()=>TE,UnlinkCommand:()=>GE,UpCommand:()=>WE,VersionCommand:()=>BE,WhyCommand:()=>YE,WorkspaceCommand:()=>XE,WorkspacesListCommand:()=>zE,YarnCommand:()=>xE,dedupeUtils:()=>Yk,default:()=>Igt,suggestUtils:()=>nu});var Eme=et(sg());Ke();Ke();Ke();Gt();var xge=et(Q2());il();var nu={};Kt(nu,{Modifier:()=>lH,Strategy:()=>jk,Target:()=>F2,WorkspaceModifier:()=>vge,applyModifier:()=>Kft,extractDescriptorFromPath:()=>cH,extractRangeModifier:()=>Dge,fetchDescriptorFrom:()=>uH,findProjectDescriptors:()=>bge,getModifier:()=>R2,getSuggestedDescriptors:()=>T2,makeWorkspaceDescriptor:()=>Sge,toWorkspaceModifier:()=>Pge});Ke();Ke();Pt();var aH=et(ni()),Wft="workspace:",F2=(o=>(o.REGULAR="dependencies",o.DEVELOPMENT="devDependencies",o.PEER="peerDependencies",o))(F2||{}),lH=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="",o))(lH||{}),vge=(o=>(o.CARET="^",o.TILDE="~",o.EXACT="*",o))(vge||{}),jk=(n=>(n.KEEP="keep",n.REUSE="reuse",n.PROJECT="project",n.LATEST="latest",n.CACHE="cache",n))(jk||{});function R2(t,e){return t.exact?"":t.caret?"^":t.tilde?"~":e.configuration.get("defaultSemverRangePrefix")}var Yft=/^([\^~]?)[0-9]+(?:\.[0-9]+){0,2}(?:-\S+)?$/;function Dge(t,{project:e}){let r=t.match(Yft);return r?r[1]:e.configuration.get("defaultSemverRangePrefix")}function Kft(t,e){let{protocol:r,source:o,params:a,selector:n}=G.parseRange(t.range);return aH.default.valid(n)&&(n=`${e}${t.range}`),G.makeDescriptor(t,G.makeRange({protocol:r,source:o,params:a,selector:n}))}function Pge(t){switch(t){case"^":return"^";case"~":return"~";case"":return"*";default:throw new Error(`Assertion failed: Unknown modifier: "${t}"`)}}function Sge(t,e){return G.makeDescriptor(t.anchoredDescriptor,`${Wft}${Pge(e)}`)}async function bge(t,{project:e,target:r}){let o=new Map,a=n=>{let u=o.get(n.descriptorHash);return u||o.set(n.descriptorHash,u={descriptor:n,locators:[]}),u};for(let n of e.workspaces)if(r==="peerDependencies"){let u=n.manifest.peerDependencies.get(t.identHash);u!==void 0&&a(u).locators.push(n.anchoredLocator)}else{let u=n.manifest.dependencies.get(t.identHash),A=n.manifest.devDependencies.get(t.identHash);r==="devDependencies"?A!==void 0?a(A).locators.push(n.anchoredLocator):u!==void 0&&a(u).locators.push(n.anchoredLocator):u!==void 0?a(u).locators.push(n.anchoredLocator):A!==void 0&&a(A).locators.push(n.anchoredLocator)}return o}async function cH(t,{cwd:e,workspace:r}){return await Vft(async o=>{K.isAbsolute(t)||(t=K.relative(r.cwd,K.resolve(e,t)),t.match(/^\.{0,2}\//)||(t=`./${t}`));let{project:a}=r,n=await uH(G.makeIdent(null,"archive"),t,{project:r.project,cache:o,workspace:r});if(!n)throw new Error("Assertion failed: The descriptor should have been found");let u=new Ri,A=a.configuration.makeResolver(),p=a.configuration.makeFetcher(),h={checksums:a.storedChecksums,project:a,cache:o,fetcher:p,report:u,resolver:A},E=A.bindDescriptor(n,r.anchoredLocator,h),w=G.convertDescriptorToLocator(E),D=await p.fetch(w,h),x=await _t.find(D.prefixPath,{baseFs:D.packageFs});if(!x.name)throw new Error("Target path doesn't have a name");return G.makeDescriptor(x.name,t)})}async function T2(t,{project:e,workspace:r,cache:o,target:a,fixed:n,modifier:u,strategies:A,maxResults:p=1/0}){if(!(p>=0))throw new Error(`Invalid maxResults (${p})`);let[h,E]=t.range!=="unknown"?n||Ur.validRange(t.range)||!t.range.match(/^[a-z0-9._-]+$/i)?[t.range,"latest"]:["unknown",t.range]:["unknown","latest"];if(h!=="unknown")return{suggestions:[{descriptor:t,name:`Use ${G.prettyDescriptor(e.configuration,t)}`,reason:"(unambiguous explicit request)"}],rejections:[]};let w=typeof r<"u"&&r!==null&&r.manifest[a].get(t.identHash)||null,D=[],x=[],C=async T=>{try{await T()}catch(L){x.push(L)}};for(let T of A){if(D.length>=p)break;switch(T){case"keep":await C(async()=>{w&&D.push({descriptor:w,name:`Keep ${G.prettyDescriptor(e.configuration,w)}`,reason:"(no changes)"})});break;case"reuse":await C(async()=>{for(let{descriptor:L,locators:U}of(await bge(t,{project:e,target:a})).values()){if(U.length===1&&U[0].locatorHash===r.anchoredLocator.locatorHash&&A.includes("keep"))continue;let J=`(originally used by ${G.prettyLocator(e.configuration,U[0])}`;J+=U.length>1?` and ${U.length-1} other${U.length>2?"s":""})`:")",D.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:J})}});break;case"cache":await C(async()=>{for(let L of e.storedDescriptors.values())L.identHash===t.identHash&&D.push({descriptor:L,name:`Reuse ${G.prettyDescriptor(e.configuration,L)}`,reason:"(already used somewhere in the lockfile)"})});break;case"project":await C(async()=>{if(r.manifest.name!==null&&t.identHash===r.manifest.name.identHash)return;let L=e.tryWorkspaceByIdent(t);if(L===null)return;let U=Sge(L,u);D.push({descriptor:U,name:`Attach ${G.prettyDescriptor(e.configuration,U)}`,reason:`(local workspace at ${pe.pretty(e.configuration,L.relativeCwd,pe.Type.PATH)})`})});break;case"latest":{let L=e.configuration.get("enableNetwork"),U=e.configuration.get("enableOfflineMode");await C(async()=>{if(a==="peerDependencies")D.push({descriptor:G.makeDescriptor(t,"*"),name:"Use *",reason:"(catch-all peer dependency pattern)"});else if(!L&&!U)D.push({descriptor:null,name:"Resolve from latest",reason:pe.pretty(e.configuration,"(unavailable because enableNetwork is toggled off)","grey")});else{let J=await uH(t,E,{project:e,cache:o,workspace:r,modifier:u});J&&D.push({descriptor:J,name:`Use ${G.prettyDescriptor(e.configuration,J)}`,reason:`(resolved from ${U?"the cache":"latest"})`})}})}break}}return{suggestions:D.slice(0,p),rejections:x.slice(0,p)}}async function uH(t,e,{project:r,cache:o,workspace:a,preserveModifier:n=!0,modifier:u}){let A=r.configuration.normalizeDependency(G.makeDescriptor(t,e)),p=new Ri,h=r.configuration.makeFetcher(),E=r.configuration.makeResolver(),w={project:r,fetcher:h,cache:o,checksums:r.storedChecksums,report:p,cacheOptions:{skipIntegrityCheck:!0}},D={...w,resolver:E,fetchOptions:w},x=E.bindDescriptor(A,a.anchoredLocator,D),C=await E.getCandidates(x,{},D);if(C.length===0)return null;let T=C[0],{protocol:L,source:U,params:J,selector:te}=G.parseRange(G.convertToManifestRange(T.reference));if(L===r.configuration.get("defaultProtocol")&&(L=null),aH.default.valid(te)){let le=te;if(typeof u<"u")te=u+te;else if(n!==!1){let Ie=typeof n=="string"?n:A.range;te=Dge(Ie,{project:r})+te}let ce=G.makeDescriptor(T,G.makeRange({protocol:L,source:U,params:J,selector:te}));(await E.getCandidates(r.configuration.normalizeDependency(ce),{},D)).length!==1&&(te=le)}return G.makeDescriptor(T,G.makeRange({protocol:L,source:U,params:J,selector:te}))}async function Vft(t){return await ae.mktempPromise(async e=>{let r=ze.create(e);return r.useWithSource(e,{enableMirror:!1,compressionLevel:0},e,{overwrite:!0}),await t(new Wr(e,{configuration:r,check:!1,immutable:!1}))})}var fE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.fixed=de.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=de.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=de.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=de.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.dev=de.Boolean("-D,--dev",!1,{description:"Add a package as a dev dependency"});this.peer=de.Boolean("-P,--peer",!1,{description:"Add a package as a peer dependency"});this.optional=de.Boolean("-O,--optional",!1,{description:"Add / upgrade a package to an optional regular / peer dependency"});this.preferDev=de.Boolean("--prefer-dev",!1,{description:"Add / upgrade a package to a dev dependency"});this.interactive=de.Boolean("-i,--interactive",{description:"Reuse the specified package from other workspaces in the project"});this.cached=de.Boolean("--cached",!1,{description:"Reuse the highest version already used somewhere within the project"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.silent=de.Boolean("--silent",{hidden:!0});this.packages=de.Rest()}static{this.paths=[["add"]]}static{this.usage=ot.Usage({description:"add dependencies to the project",details:"\n This command adds a package to the package.json for the nearest workspace.\n\n - If it didn't exist before, the package will by default be added to the regular `dependencies` field, but this behavior can be overriden thanks to the `-D,--dev` flag (which will cause the dependency to be added to the `devDependencies` field instead) and the `-P,--peer` flag (which will do the same but for `peerDependencies`).\n\n - If the package was already listed in your dependencies, it will by default be upgraded whether it's part of your `dependencies` or `devDependencies` (it won't ever update `peerDependencies`, though).\n\n - If set, the `--prefer-dev` flag will operate as a more flexible `-D,--dev` in that it will add the package to your `devDependencies` if it isn't already listed in either `dependencies` or `devDependencies`, but it will also happily upgrade your `dependencies` if that's what you already use (whereas `-D,--dev` would throw an exception).\n\n - If set, the `-O,--optional` flag will add the package to the `optionalDependencies` field and, in combination with the `-P,--peer` flag, it will add the package as an optional peer dependency. If the package was already listed in your `dependencies`, it will be upgraded to `optionalDependencies`. If the package was already listed in your `peerDependencies`, in combination with the `-P,--peer` flag, it will be upgraded to an optional peer dependency: `\"peerDependenciesMeta\": { \"\": { \"optional\": true } }`\n\n - If the added package doesn't specify a range at all its `latest` tag will be resolved and the returned version will be used to generate a new semver range (using the `^` modifier by default unless otherwise configured via the `defaultSemverRangePrefix` configuration, or the `~` modifier if `-T,--tilde` is specified, or no modifier at all if `-E,--exact` is specified). Two exceptions to this rule: the first one is that if the package is a workspace then its local version will be used, and the second one is that if you use `-P,--peer` the default range will be `*` and won't be resolved at all.\n\n - If the added package specifies a range (such as `^1.0.0`, `latest`, or `rc`), Yarn will add this range as-is in the resulting package.json entry (in particular, tags such as `rc` will be encoded as-is rather than being converted into a semver range).\n\n If the `--cached` option is used, Yarn will preferably reuse the highest version already used somewhere within the project, even if through a transitive dependency.\n\n If the `-i,--interactive` option is used (or if the `preferInteractive` settings is toggled on) the command will first try to check whether other workspaces in the project use the specified package and, if so, will offer to reuse them.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n For a compilation of all the supported protocols, please consult the dedicated page from our website: https://yarnpkg.com/protocols.\n ",examples:[["Add a regular package to the current workspace","$0 add lodash"],["Add a specific version for a package to the current workspace","$0 add lodash@1.2.3"],["Add a package from a GitHub repository (the master branch) to the current workspace using a URL","$0 add lodash@https://github.com/lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol","$0 add lodash@github:lodash/lodash"],["Add a package from a GitHub repository (the master branch) to the current workspace using the GitHub protocol (shorthand)","$0 add lodash@lodash/lodash"],["Add a package from a specific branch of a GitHub repository to the current workspace using the GitHub protocol (shorthand)","$0 add lodash-es@lodash/lodash#es"],["Add a local package (gzipped tarball format) to the current workspace","$0 add local-package-name@file:../path/to/local-package-name-v0.1.2.tgz"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=A||r.get("preferReuse"),h=R2(this,o),E=[p?"reuse":void 0,"project",this.cached?"cache":void 0,"latest"].filter(U=>typeof U<"u"),w=A?1/0:1,D=await Promise.all(this.packages.map(async U=>{let J=U.match(/^\.{0,2}\//)?await cH(U,{cwd:this.context.cwd,workspace:a}):G.tryParseDescriptor(U),te=U.match(/^(https?:|git@github)/);if(te)throw new it(`It seems you are trying to add a package using a ${pe.pretty(r,`${te[0]}...`,pe.Type.RANGE)} url; we now require package names to be explicitly specified. +Try running the command again with the package name prefixed: ${pe.pretty(r,"yarn add",pe.Type.CODE)} ${pe.pretty(r,G.makeDescriptor(G.makeIdent(null,"my-package"),`${te[0]}...`),pe.Type.DESCRIPTOR)}`);if(!J)throw new it(`The ${pe.pretty(r,U,pe.Type.CODE)} string didn't match the required format (package-name@range). Did you perhaps forget to explicitly reference the package name?`);let le=Jft(a,J,{dev:this.dev,peer:this.peer,preferDev:this.preferDev,optional:this.optional});return await Promise.all(le.map(async ue=>{let Ie=await T2(J,{project:o,workspace:a,cache:n,fixed:u,target:ue,modifier:h,strategies:E,maxResults:w});return{request:J,suggestedDescriptors:Ie,target:ue}}))})).then(U=>U.flat()),x=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async U=>{for(let{request:J,suggestedDescriptors:{suggestions:te,rejections:le}}of D)if(te.filter(ue=>ue.descriptor!==null).length===0){let[ue]=le;if(typeof ue>"u")throw new Error("Assertion failed: Expected an error to have been set");o.configuration.get("enableNetwork")?U.reportError(27,`${G.prettyDescriptor(r,J)} can't be resolved to a satisfying range`):U.reportError(27,`${G.prettyDescriptor(r,J)} can't be resolved to a satisfying range (note: network resolution has been disabled)`),U.reportSeparator(),U.reportExceptionOnce(ue)}});if(x.hasErrors())return x.exitCode();let C=!1,T=[],L=[];for(let{suggestedDescriptors:{suggestions:U},target:J}of D){let te,le=U.filter(he=>he.descriptor!==null),ce=le[0].descriptor,ue=le.every(he=>G.areDescriptorsEqual(he.descriptor,ce));le.length===1||ue?te=ce:(C=!0,{answer:te}=await(0,xge.prompt)({type:"select",name:"answer",message:"Which range do you want to use?",choices:U.map(({descriptor:he,name:De,reason:Ee})=>he?{name:De,hint:Ee,descriptor:he}:{name:De,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ie=a.manifest[J].get(te.identHash);(typeof Ie>"u"||Ie.descriptorHash!==te.descriptorHash)&&(a.manifest[J].set(te.identHash,te),this.optional&&(J==="dependencies"?a.manifest.ensureDependencyMeta({...te,range:"unknown"}).optional=!0:J==="peerDependencies"&&(a.manifest.ensurePeerDependencyMeta({...te,range:"unknown"}).optional=!0)),typeof Ie>"u"?T.push([a,J,te,E]):L.push([a,J,Ie,te]))}return await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyAddition,T),await r.triggerMultipleHooks(U=>U.afterWorkspaceDependencyReplacement,L),C&&this.context.stdout.write(` +`),await o.installWithNewReport({json:this.json,stdout:this.context.stdout,quiet:this.context.quiet},{cache:n,mode:this.mode})}};function Jft(t,e,{dev:r,peer:o,preferDev:a,optional:n}){let u=t.manifest.dependencies.has(e.identHash),A=t.manifest.devDependencies.has(e.identHash),p=t.manifest.peerDependencies.has(e.identHash);if((r||o)&&u)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a regular dependency - remove the -D,-P flags or remove it from your dependencies first`);if(!r&&!o&&p)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - use either of -D or -P, or remove it from your peer dependencies first`);if(n&&A)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a dev dependency - remove the -O flag or remove it from your dev dependencies first`);if(n&&!o&&p)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" is already listed as a peer dependency - remove the -O flag or add the -P flag or remove it from your peer dependencies first`);if((r||a)&&n)throw new it(`Package "${G.prettyIdent(t.project.configuration,e)}" cannot simultaneously be a dev dependency and an optional dependency`);let h=[];return o&&h.push("peerDependencies"),(r||a)&&h.push("devDependencies"),n&&h.push("dependencies"),h.length>0?h:A?["devDependencies"]:p?["peerDependencies"]:["dependencies"]}Ke();Ke();Gt();var pE=class extends ut{constructor(){super(...arguments);this.verbose=de.Boolean("-v,--verbose",!1,{description:"Print both the binary name and the locator of the package that provides the binary"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.name=de.String({required:!1})}static{this.paths=[["bin"]]}static{this.usage=ot.Usage({description:"get the path to a binary script",details:` + When used without arguments, this command will print the list of all the binaries available in the current workspace. Adding the \`-v,--verbose\` flag will cause the output to contain both the binary name and the locator of the package that provides the binary. + + When an argument is specified, this command will just print the path to the binary on the standard output and exit. Note that the reported path may be stored within a zip archive. + `,examples:[["List all the available binaries","$0 bin"],["Print the path to a specific binary","$0 bin eslint"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Qt.find(r,this.context.cwd);if(await o.restoreInstallState(),this.name){let A=(await hn.getPackageAccessibleBinaries(a,{project:o})).get(this.name);if(!A)throw new it(`Couldn't find a binary named "${this.name}" for package "${G.prettyLocator(r,a)}"`);let[,p]=A;return this.context.stdout.write(`${p} +`),0}return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async u=>{let A=await hn.getPackageAccessibleBinaries(a,{project:o}),h=Array.from(A.keys()).reduce((E,w)=>Math.max(E,w.length),0);for(let[E,[w,D]]of A)u.reportJson({name:E,source:G.stringifyIdent(w),path:D});if(this.verbose)for(let[E,[w]]of A)u.reportInfo(null,`${E.padEnd(h," ")} ${G.prettyLocator(r,w)}`);else for(let E of A.keys())u.reportInfo(null,E)})).exitCode()}};Ke();Pt();Gt();var hE=class extends ut{constructor(){super(...arguments);this.mirror=de.Boolean("--mirror",!1,{description:"Remove the global cache files instead of the local cache files"});this.all=de.Boolean("--all",!1,{description:"Remove both the global cache files and the local cache files of the current project"})}static{this.paths=[["cache","clean"],["cache","clear"]]}static{this.usage=ot.Usage({description:"remove the shared cache files",details:` + This command will remove all the files from the cache. + `,examples:[["Remove all the local archives","$0 cache clean"],["Remove all the archives stored in the ~/.yarn directory","$0 cache clean --mirror"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(!r.get("enableCacheClean"))throw new it("Cache cleaning is currently disabled. To enable it, set `enableCacheClean: true` in your configuration file. Note: Cache cleaning is typically not required and should be avoided when using Zero-Installs.");let o=await Wr.find(r);return(await Nt.start({configuration:r,stdout:this.context.stdout},async()=>{let n=(this.all||this.mirror)&&o.mirrorCwd!==null,u=!this.mirror;n&&(await ae.removePromise(o.mirrorCwd),await r.triggerHook(A=>A.cleanGlobalArtifacts,r)),u&&await ae.removePromise(o.cwd)})).exitCode()}};Ke();Gt();var Qge=et(N2()),AH=ve("util"),gE=class extends ut{constructor(){super(...arguments);this.why=de.Boolean("--why",!1,{description:"Print the explanation for why a setting has its value"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.unsafe=de.Boolean("--no-redacted",!1,{description:"Don't redact secrets (such as tokens) from the output"});this.name=de.String()}static{this.paths=[["config","get"]]}static{this.usage=ot.Usage({description:"read a configuration settings",details:` + This command will print a configuration setting. + + Secrets (such as tokens) will be redacted from the output by default. If this behavior isn't desired, set the \`--no-redacted\` to get the untransformed value. + `,examples:[["Print a simple configuration setting","yarn config get yarnPath"],["Print a complex configuration setting","yarn config get packageExtensions"],["Print a nested field from the configuration",`yarn config get 'npmScopes["my-company"].npmRegistryServer'`],["Print a token from the configuration","yarn config get npmAuthToken --no-redacted"],["Print a configuration setting as JSON","yarn config get packageExtensions --json"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=this.name.replace(/[.[].*$/,""),a=this.name.replace(/^[^.[]*/,"");if(typeof r.settings.get(o)>"u")throw new it(`Couldn't find a configuration settings named "${o}"`);let u=r.getSpecial(o,{hideSecrets:!this.unsafe,getNativePaths:!0}),A=qe.convertMapsToIndexableObjects(u),p=a?(0,Qge.default)(A,a):A,h=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async E=>{E.reportJson(p)});if(!this.json){if(typeof p=="string")return this.context.stdout.write(`${p} +`),h.exitCode();AH.inspect.styles.name="cyan",this.context.stdout.write(`${(0,AH.inspect)(p,{depth:1/0,colors:r.get("enableColors"),compact:!1})} +`)}return h.exitCode()}};Ke();Gt();var Ide=et(gH()),wde=et(N2()),Bde=et(dH()),mH=ve("util"),dE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Set complex configuration settings to JSON values"});this.home=de.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=de.String();this.value=de.String()}static{this.paths=[["config","set"]]}static{this.usage=ot.Usage({description:"change a configuration settings",details:` + This command will set a configuration setting. + + When used without the \`--json\` flag, it can only set a simple configuration setting (a string, a number, or a boolean). + + When used with the \`--json\` flag, it can set both simple and complex configuration settings, including Arrays and Objects. + `,examples:[["Set a simple configuration setting (a string, a number, or a boolean)","yarn config set initScope myScope"],["Set a simple configuration setting (a string, a number, or a boolean) using the `--json` flag",'yarn config set initScope --json \\"myScope\\"'],["Set a complex configuration setting (an Array) using the `--json` flag",`yarn config set unsafeHttpWhitelist --json '["*.example.com", "example.com"]'`],["Set a complex configuration setting (an Object) using the `--json` flag",`yarn config set packageExtensions --json '{ "@babel/parser@*": { "dependencies": { "@babel/types": "*" } } }'`],["Set a nested configuration setting",'yarn config set npmScopes.company.npmRegistryServer "https://npm.example.com"'],["Set a nested configuration setting using indexed access for non-simple keys",`yarn config set 'npmRegistries["//npm.example.com"].npmAuthToken' "ffffffff-ffff-ffff-ffff-ffffffffffff"`]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);if(a==="enableStrictSettings")throw new it("This setting only affects the file it's in, and thus cannot be set from the CLI");let A=this.json?JSON.parse(this.value):this.value;await(this.home?C=>ze.updateHomeConfiguration(C):C=>ze.updateConfiguration(o(),C))(C=>{if(n){let T=(0,Ide.default)(C);return(0,Bde.default)(T,this.name,A),T}else return{...C,[a]:A}});let E=(await ze.find(this.context.cwd,this.context.plugins)).getSpecial(a,{hideSecrets:!0,getNativePaths:!0}),w=qe.convertMapsToIndexableObjects(E),D=n?(0,wde.default)(w,n):w;return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async C=>{mH.inspect.styles.name="cyan",C.reportInfo(0,`Successfully set ${this.name} to ${(0,mH.inspect)(D,{depth:1/0,colors:r.get("enableColors"),compact:!1})}`)})).exitCode()}};Ke();Gt();var Tde=et(gH()),Nde=et(Sde()),Lde=et(EH()),mE=class extends ut{constructor(){super(...arguments);this.home=de.Boolean("-H,--home",!1,{description:"Update the home configuration instead of the project configuration"});this.name=de.String()}static{this.paths=[["config","unset"]]}static{this.usage=ot.Usage({description:"unset a configuration setting",details:` + This command will unset a configuration setting. + `,examples:[["Unset a simple configuration setting","yarn config unset initScope"],["Unset a complex configuration setting","yarn config unset packageExtensions"],["Unset a nested configuration setting","yarn config unset npmScopes.company.npmRegistryServer"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=()=>{if(!r.projectCwd)throw new it("This command must be run from within a project folder");return r.projectCwd},a=this.name.replace(/[.[].*$/,""),n=this.name.replace(/^[^.[]*\.?/,"");if(typeof r.settings.get(a)>"u")throw new it(`Couldn't find a configuration settings named "${a}"`);let A=this.home?h=>ze.updateHomeConfiguration(h):h=>ze.updateConfiguration(o(),h);return(await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout},async h=>{let E=!1;await A(w=>{if(!(0,Nde.default)(w,this.name))return h.reportWarning(0,`Configuration doesn't contain setting ${this.name}; there is nothing to unset`),E=!0,w;let D=n?(0,Tde.default)(w):{...w};return(0,Lde.default)(D,this.name),D}),E||h.reportInfo(0,`Successfully unset ${this.name}`)})).exitCode()}};Ke();Pt();Gt();var Wk=ve("util"),yE=class extends ut{constructor(){super(...arguments);this.noDefaults=de.Boolean("--no-defaults",!1,{description:"Omit the default values from the display"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.verbose=de.Boolean("-v,--verbose",{hidden:!0});this.why=de.Boolean("--why",{hidden:!0});this.names=de.Rest()}static{this.paths=[["config"]]}static{this.usage=ot.Usage({description:"display the current configuration",details:` + This command prints the current active configuration settings. + `,examples:[["Print the active configuration settings","$0 config"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins,{strict:!1}),o=await Qy({configuration:r,stdout:this.context.stdout,forceError:this.json},[{option:this.verbose,message:"The --verbose option is deprecated, the settings' descriptions are now always displayed"},{option:this.why,message:"The --why option is deprecated, the settings' sources are now always displayed"}]);if(o!==null)return o;let a=this.names.length>0?[...new Set(this.names)].sort():[...r.settings.keys()].sort(),n,u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async A=>{if(r.invalid.size>0&&!this.json){for(let[p,h]of r.invalid)A.reportError(34,`Invalid configuration key "${p}" in ${h}`);A.reportSeparator()}if(this.json)for(let p of a){let h=r.settings.get(p);typeof h>"u"&&A.reportError(34,`No configuration key named "${p}"`);let E=r.getSpecial(p,{hideSecrets:!0,getNativePaths:!0}),w=r.sources.get(p)??"",D=w&&w[0]!=="<"?Ae.fromPortablePath(w):w;A.reportJson({key:p,effective:E,source:D,...h})}else{let p={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},h={},E={children:h};for(let w of a){if(this.noDefaults&&!r.sources.has(w))continue;let D=r.settings.get(w),x=r.sources.get(w)??"",C=r.getSpecial(w,{hideSecrets:!0,getNativePaths:!0}),T={Description:{label:"Description",value:pe.tuple(pe.Type.MARKDOWN,{text:D.description,format:this.cli.format(),paragraphs:!1})},Source:{label:"Source",value:pe.tuple(x[0]==="<"?pe.Type.CODE:pe.Type.PATH,x)}};h[w]={value:pe.tuple(pe.Type.CODE,w),children:T};let L=(U,J)=>{for(let[te,le]of J)if(le instanceof Map){let ce={};U[te]={children:ce},L(ce,le)}else U[te]={label:te,value:pe.tuple(pe.Type.NO_HINT,(0,Wk.inspect)(le,p))}};C instanceof Map?L(T,C):T.Value={label:"Value",value:pe.tuple(pe.Type.NO_HINT,(0,Wk.inspect)(C,p))}}a.length!==1&&(n=void 0),As.emitTree(E,{configuration:r,json:this.json,stdout:this.context.stdout,separators:2})}});if(!this.json&&typeof n<"u"){let A=a[0],p=(0,Wk.inspect)(r.getSpecial(A,{hideSecrets:!0,getNativePaths:!0}),{colors:r.get("enableColors")});this.context.stdout.write(` +`),this.context.stdout.write(`${p} +`)}return u.exitCode()}};Ke();Gt();il();var Yk={};Kt(Yk,{Strategy:()=>L2,acceptedStrategies:()=>Q0t,dedupe:()=>CH});Ke();Ke();var Ode=et(Xo()),L2=(e=>(e.HIGHEST="highest",e))(L2||{}),Q0t=new Set(Object.values(L2)),F0t={highest:async(t,e,{resolver:r,fetcher:o,resolveOptions:a,fetchOptions:n})=>{let u=new Map;for(let[p,h]of t.storedResolutions){let E=t.storedDescriptors.get(p);if(typeof E>"u")throw new Error(`Assertion failed: The descriptor (${p}) should have been registered`);qe.getSetWithDefault(u,E.identHash).add(h)}let A=new Map(qe.mapAndFilter(t.storedDescriptors.values(),p=>G.isVirtualDescriptor(p)?qe.mapAndFilter.skip:[p.descriptorHash,qe.makeDeferred()]));for(let p of t.storedDescriptors.values()){let h=A.get(p.descriptorHash);if(typeof h>"u")throw new Error(`Assertion failed: The descriptor (${p.descriptorHash}) should have been registered`);let E=t.storedResolutions.get(p.descriptorHash);if(typeof E>"u")throw new Error(`Assertion failed: The resolution (${p.descriptorHash}) should have been registered`);let w=t.originalPackages.get(E);if(typeof w>"u")throw new Error(`Assertion failed: The package (${E}) should have been registered`);Promise.resolve().then(async()=>{let D=r.getResolutionDependencies(p,a),x=Object.fromEntries(await qe.allSettledSafe(Object.entries(D).map(async([te,le])=>{let ce=A.get(le.descriptorHash);if(typeof ce>"u")throw new Error(`Assertion failed: The descriptor (${le.descriptorHash}) should have been registered`);let ue=await ce.promise;if(!ue)throw new Error("Assertion failed: Expected the dependency to have been through the dedupe process itself");return[te,ue.updatedPackage]})));if(e.length&&!Ode.default.isMatch(G.stringifyIdent(p),e)||!r.shouldPersistResolution(w,a))return w;let C=u.get(p.identHash);if(typeof C>"u")throw new Error(`Assertion failed: The resolutions (${p.identHash}) should have been registered`);if(C.size===1)return w;let T=[...C].map(te=>{let le=t.originalPackages.get(te);if(typeof le>"u")throw new Error(`Assertion failed: The package (${te}) should have been registered`);return le}),L=await r.getSatisfying(p,x,T,a),U=L.locators?.[0];if(typeof U>"u"||!L.sorted)return w;let J=t.originalPackages.get(U.locatorHash);if(typeof J>"u")throw new Error(`Assertion failed: The package (${U.locatorHash}) should have been registered`);return J}).then(async D=>{let x=await t.preparePackage(D,{resolver:r,resolveOptions:a});h.resolve({descriptor:p,currentPackage:w,updatedPackage:D,resolvedPackage:x})}).catch(D=>{h.reject(D)})}return[...A.values()].map(p=>p.promise)}};async function CH(t,{strategy:e,patterns:r,cache:o,report:a}){let{configuration:n}=t,u=new Ri,A=n.makeResolver(),p=n.makeFetcher(),h={cache:o,checksums:t.storedChecksums,fetcher:p,project:t,report:u,cacheOptions:{skipIntegrityCheck:!0}},E={project:t,resolver:A,report:u,fetchOptions:h};return await a.startTimerPromise("Deduplication step",async()=>{let w=F0t[e],D=await w(t,r,{resolver:A,resolveOptions:E,fetcher:p,fetchOptions:h}),x=Ws.progressViaCounter(D.length);await a.reportProgress(x);let C=0;await Promise.all(D.map(U=>U.then(J=>{if(J===null||J.currentPackage.locatorHash===J.updatedPackage.locatorHash)return;C++;let{descriptor:te,currentPackage:le,updatedPackage:ce}=J;a.reportInfo(0,`${G.prettyDescriptor(n,te)} can be deduped from ${G.prettyLocator(n,le)} to ${G.prettyLocator(n,ce)}`),a.reportJson({descriptor:G.stringifyDescriptor(te),currentResolution:G.stringifyLocator(le),updatedResolution:G.stringifyLocator(ce)}),t.storedResolutions.set(te.descriptorHash,ce.locatorHash)}).finally(()=>x.tick())));let T;switch(C){case 0:T="No packages";break;case 1:T="One package";break;default:T=`${C} packages`}let L=pe.pretty(n,e,pe.Type.CODE);return a.reportInfo(0,`${T} can be deduped using the ${L} strategy`),C})}var EE=class extends ut{constructor(){super(...arguments);this.strategy=de.String("-s,--strategy","highest",{description:"The strategy to use when deduping dependencies",validator:js(L2)});this.check=de.Boolean("-c,--check",!1,{description:"Exit with exit code 1 when duplicates are found, without persisting the dependency tree"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.patterns=de.Rest()}static{this.paths=[["dedupe"]]}static{this.usage=ot.Usage({description:"deduplicate dependencies with overlapping ranges",details:"\n Duplicates are defined as descriptors with overlapping ranges being resolved and locked to different locators. They are a natural consequence of Yarn's deterministic installs, but they can sometimes pile up and unnecessarily increase the size of your project.\n\n This command dedupes dependencies in the current project using different strategies (only one is implemented at the moment):\n\n - `highest`: Reuses (where possible) the locators with the highest versions. This means that dependencies can only be upgraded, never downgraded. It's also guaranteed that it never takes more than a single pass to dedupe the entire dependency tree.\n\n **Note:** Even though it never produces a wrong dependency tree, this command should be used with caution, as it modifies the dependency tree, which can sometimes cause problems when packages don't strictly follow semver recommendations. Because of this, it is recommended to also review the changes manually.\n\n If set, the `-c,--check` flag will only report the found duplicates, without persisting the modified dependency tree. If changes are found, the command will exit with a non-zero exit code, making it suitable for CI purposes.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n ### In-depth explanation:\n\n Yarn doesn't deduplicate dependencies by default, otherwise installs wouldn't be deterministic and the lockfile would be useless. What it actually does is that it tries to not duplicate dependencies in the first place.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@*`will cause Yarn to reuse `foo@2.3.4`, even if the latest `foo` is actually `foo@2.10.14`, thus preventing unnecessary duplication.\n\n Duplication happens when Yarn can't unlock dependencies that have already been locked inside the lockfile.\n\n **Example:** If `foo@^2.3.4` (a dependency of a dependency) has already been resolved to `foo@2.3.4`, running `yarn add foo@2.10.14` will cause Yarn to install `foo@2.10.14` because the existing resolution doesn't satisfy the range `2.10.14`. This behavior can lead to (sometimes) unwanted duplication, since now the lockfile contains 2 separate resolutions for the 2 `foo` descriptors, even though they have overlapping ranges, which means that the lockfile can be simplified so that both descriptors resolve to `foo@2.10.14`.\n ",examples:[["Dedupe all packages","$0 dedupe"],["Dedupe all packages using a specific strategy","$0 dedupe --strategy highest"],["Dedupe a specific package","$0 dedupe lodash"],["Dedupe all packages with the `@babel/*` scope","$0 dedupe '@babel/*'"],["Check for duplicates (can be used as a CI step)","$0 dedupe --check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),a=await Wr.find(r);await o.restoreInstallState({restoreResolutions:!1});let n=0,u=await Nt.start({configuration:r,includeFooter:!1,stdout:this.context.stdout,json:this.json},async A=>{n=await CH(o,{strategy:this.strategy,patterns:this.patterns,cache:a,report:A})});return u.hasErrors()?u.exitCode():this.check?n?1:0:await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:a,mode:this.mode})}};Ke();Gt();var CE=class extends ut{static{this.paths=[["--clipanion=definitions"]]}async execute(){let{plugins:e}=await ze.find(this.context.cwd,this.context.plugins),r=[];for(let u of e){let{commands:A}=u[1];if(A){let h=Vo.from(A).definitions();r.push([u[0],h])}}let o=this.cli.definitions(),a=(u,A)=>u.split(" ").slice(1).join()===A.split(" ").slice(1).join(),n=Mde()["@yarnpkg/builder"].bundles.standard;for(let u of r){let A=u[1];for(let p of A)o.find(h=>a(h.path,p.path)).plugin={name:u[0],isDefault:n.includes(u[0])}}this.context.stdout.write(`${JSON.stringify(o,null,2)} +`)}};var IE=class extends ut{static{this.paths=[["help"],["--help"],["-h"]]}async execute(){this.context.stdout.write(this.cli.usage(null))}};Ke();Pt();Gt();var wE=class extends ut{constructor(){super(...arguments);this.leadingArgument=de.String();this.args=de.Proxy()}async execute(){if(this.leadingArgument.match(/[\\/]/)&&!G.tryParseIdent(this.leadingArgument)){let r=K.resolve(this.context.cwd,Ae.toPortablePath(this.leadingArgument));return await this.cli.run(this.args,{cwd:r})}else return await this.cli.run(["run",this.leadingArgument,...this.args])}};Ke();var BE=class extends ut{static{this.paths=[["-v"],["--version"]]}async execute(){this.context.stdout.write(`${nn||""} +`)}};Ke();Ke();Gt();var vE=class extends ut{constructor(){super(...arguments);this.commandName=de.String();this.args=de.Proxy()}static{this.paths=[["exec"]]}static{this.usage=ot.Usage({description:"execute a shell script",details:` + This command simply executes a shell script within the context of the root directory of the active workspace using the portable shell. + + It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + `,examples:[["Execute a single shell command","$0 exec echo Hello World"],["Execute a shell script",'$0 exec "tsc & babel src --out-dir lib"']]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,locator:a}=await Qt.find(r,this.context.cwd);return await o.restoreInstallState(),await hn.executePackageShellcode(a,this.commandName,this.args,{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,project:o})}};Ke();Gt();il();var DE=class extends ut{constructor(){super(...arguments);this.hash=de.String({required:!1,validator:NP(Sm(),[Bw(/^p[0-9a-f]{5}$/)])})}static{this.paths=[["explain","peer-requirements"]]}static{this.usage=ot.Usage({description:"explain a set of peer requirements",details:` + A peer requirement represents all peer requests that a subject must satisfy when providing a requested package to requesters. + + When the hash argument is specified, this command prints a detailed explanation of the peer requirement corresponding to the hash and whether it is satisfied or not. + + When used without arguments, this command lists all peer requirements and the corresponding hash that can be used to get detailed information about a given requirement. + + **Note:** A hash is a six-letter p-prefixed code that can be obtained from peer dependency warnings or from the list of all peer requirements (\`yarn explain peer-requirements\`). + `,examples:[["Explain the corresponding peer requirement for a hash","$0 explain peer-requirements p1a4ed"],["List all peer requirements","$0 explain peer-requirements"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);return await o.restoreInstallState({restoreResolutions:!1}),await o.applyLightResolution(),typeof this.hash<"u"?await T0t(this.hash,o,{stdout:this.context.stdout}):await N0t(o,{stdout:this.context.stdout})}};async function T0t(t,e,r){let o=e.peerRequirementNodes.get(t);if(typeof o>"u")throw new Error(`No peerDependency requirements found for hash: "${t}"`);let a=new Set,n=p=>a.has(p.requester.locatorHash)?{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:p.children.size>0?[{value:pe.tuple(pe.Type.NO_HINT,"...")}]:[]}:(a.add(p.requester.locatorHash),{value:pe.tuple(pe.Type.DEPENDENT,{locator:p.requester,descriptor:p.descriptor}),children:Object.fromEntries(Array.from(p.children.values(),h=>[G.stringifyLocator(h.requester),n(h)]))}),u=e.peerWarnings.find(p=>p.hash===t);return(await Nt.start({configuration:e.configuration,stdout:r.stdout,includeFooter:!1,includePrefix:!1},async p=>{let h=pe.mark(e.configuration),E=u?h.Cross:h.Check;if(p.reportInfo(0,`Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} is requested to provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} by its descendants`),p.reportSeparator(),p.reportInfo(0,pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)),As.emitTree({children:Object.fromEntries(Array.from(o.requests.values(),w=>[G.stringifyLocator(w.requester),n(w)]))},{configuration:e.configuration,stdout:r.stdout,json:!1}),p.reportSeparator(),o.provided.range==="missing:"){let w=u?"":" , but all peer requests are optional";p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} does not provide ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)}${w}.`)}else{let w=e.storedResolutions.get(o.provided.descriptorHash);if(!w)throw new Error("Assertion failed: Expected the descriptor to be registered");let D=e.storedPackages.get(w);if(!D)throw new Error("Assertion failed: Expected the package to be registered");p.reportInfo(0,`${E} Package ${pe.pretty(e.configuration,o.subject,pe.Type.LOCATOR)} provides ${pe.pretty(e.configuration,o.ident,pe.Type.IDENT)} with version ${G.prettyReference(e.configuration,D.version??"0.0.0")}, ${u?"which does not satisfy all requests.":"which satisfies all requests"}`),u?.type===3&&(u.range?p.reportInfo(0,` The combined requested range is ${pe.pretty(e.configuration,u.range,pe.Type.RANGE)}`):p.reportInfo(0," Unfortunately, the requested ranges have no overlap"))}})).exitCode()}async function N0t(t,e){return(await Nt.start({configuration:t.configuration,stdout:e.stdout,includeFooter:!1,includePrefix:!1},async o=>{let a=pe.mark(t.configuration),n=qe.sortMap(t.peerRequirementNodes,[([,u])=>G.stringifyLocator(u.subject),([,u])=>G.stringifyIdent(u.ident)]);for(let[,u]of n.values()){if(!u.root)continue;let A=t.peerWarnings.find(E=>E.hash===u.hash),p=[...G.allPeerRequests(u)],h;if(p.length>2?h=` and ${p.length-1} other dependencies`:p.length===2?h=" and 1 other dependency":h="",u.provided.range!=="missing:"){let E=t.storedResolutions.get(u.provided.descriptorHash);if(!E)throw new Error("Assertion failed: Expected the resolution to have been registered");let w=t.storedPackages.get(E);if(!w)throw new Error("Assertion failed: Expected the provided package to have been registered");let D=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} provides ${G.prettyLocator(t.configuration,w)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,D):o.reportInfo(0,D)}else{let E=`${pe.pretty(t.configuration,u.hash,pe.Type.CODE)} \u2192 ${A?a.Cross:a.Check} ${G.prettyLocator(t.configuration,u.subject)} doesn't provide ${G.prettyIdent(t.configuration,u.ident)} to ${G.prettyLocator(t.configuration,p[0].requester)}${h}`;A?o.reportWarning(0,E):o.reportInfo(0,E)}}})).exitCode()}Ke();Gt();il();Ke();Ke();Pt();Gt();var Ude=et(ni()),PE=class extends ut{constructor(){super(...arguments);this.useYarnPath=de.Boolean("--yarn-path",{description:"Set the yarnPath setting even if the version can be accessed by Corepack"});this.onlyIfNeeded=de.Boolean("--only-if-needed",!1,{description:"Only lock the Yarn version if it isn't already locked"});this.version=de.String()}static{this.paths=[["set","version"]]}static{this.usage=ot.Usage({description:"lock the Yarn version used by the project",details:"\n This command will set a specific release of Yarn to be used by Corepack: https://nodejs.org/api/corepack.html.\n\n By default it only will set the `packageManager` field at the root of your project, but if the referenced release cannot be represented this way, if you already have `yarnPath` configured, or if you set the `--yarn-path` command line flag, then the release will also be downloaded from the Yarn GitHub repository, stored inside your project, and referenced via the `yarnPath` settings from your project `.yarnrc.yml` file.\n\n A very good use case for this command is to enforce the version of Yarn used by any single member of your team inside the same project - by doing this you ensure that you have control over Yarn upgrades and downgrades (including on your deployment servers), and get rid of most of the headaches related to someone using a slightly different version and getting different behavior.\n\n The version specifier can be:\n\n - a tag:\n - `latest` / `berry` / `stable` -> the most recent stable berry (`>=2.0.0`) release\n - `canary` -> the most recent canary (release candidate) berry (`>=2.0.0`) release\n - `classic` -> the most recent classic (`^0.x || ^1.x`) release\n\n - a semver range (e.g. `2.x`) -> the most recent version satisfying the range (limited to berry releases)\n\n - a semver version (e.g. `2.4.1`, `1.22.1`)\n\n - a local file referenced through either a relative or absolute path\n\n - `self` -> the version used to invoke the command\n ",examples:[["Download the latest release from the Yarn repository","$0 set version latest"],["Download the latest canary release from the Yarn repository","$0 set version canary"],["Download the latest classic release from the Yarn repository","$0 set version classic"],["Download the most recent Yarn 3 build","$0 set version 3.x"],["Download a specific Yarn 2 build","$0 set version 2.0.0-rc.30"],["Switch back to a specific Yarn 1 release","$0 set version 1.22.1"],["Use a release from the local filesystem","$0 set version ./yarn.cjs"],["Use a release from a URL","$0 set version https://repo.yarnpkg.com/3.1.0/packages/yarnpkg-cli/bin/yarn.js"],["Download the version used to invoke the command","$0 set version self"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(this.onlyIfNeeded&&r.get("yarnPath")){let A=r.sources.get("yarnPath");if(!A)throw new Error("Assertion failed: Expected 'yarnPath' to have a source");let p=r.projectCwd??r.startingCwd;if(K.contains(p,A))return 0}let o=()=>{if(typeof nn>"u")throw new it("The --install flag can only be used without explicit version specifier from the Yarn CLI");return`file://${process.argv[1]}`},a,n=(A,p)=>({version:p,url:A.replace(/\{\}/g,p)});if(this.version==="self")a={url:o(),version:nn??"self"};else if(this.version==="latest"||this.version==="berry"||this.version==="stable")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await O2(r,"stable"));else if(this.version==="canary")a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await O2(r,"canary"));else if(this.version==="classic")a={url:"https://classic.yarnpkg.com/latest.js",version:"classic"};else if(this.version.match(/^https?:/))a={url:this.version,version:"remote"};else if(this.version.match(/^\.{0,2}[\\/]/)||Ae.isAbsolute(this.version))a={url:`file://${K.resolve(Ae.toPortablePath(this.version))}`,version:"file"};else if(Ur.satisfiesWithPrereleases(this.version,">=2.0.0"))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",this.version);else if(Ur.satisfiesWithPrereleases(this.version,"^0.x || ^1.x"))a=n("https://github.com/yarnpkg/yarn/releases/download/v{}/yarn-{}.js",this.version);else if(Ur.validRange(this.version))a=n("https://repo.yarnpkg.com/{}/packages/yarnpkg-cli/bin/yarn.js",await L0t(r,this.version));else throw new it(`Invalid version descriptor "${this.version}"`);return(await Nt.start({configuration:r,stdout:this.context.stdout,includeLogs:!this.context.quiet},async A=>{let p=async()=>{let h="file://";return a.url.startsWith(h)?(A.reportInfo(0,`Retrieving ${pe.pretty(r,a.url,pe.Type.PATH)}`),await ae.readFilePromise(a.url.slice(h.length))):(A.reportInfo(0,`Downloading ${pe.pretty(r,a.url,pe.Type.URL)}`),await on.get(a.url,{configuration:r}))};await IH(r,a.version,p,{report:A,useYarnPath:this.useYarnPath})})).exitCode()}};async function L0t(t,e){let o=(await on.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0})).tags.filter(a=>Ur.satisfiesWithPrereleases(a,e));if(o.length===0)throw new it(`No matching release found for range ${pe.pretty(t,e,pe.Type.RANGE)}.`);return o[0]}async function O2(t,e){let r=await on.get("https://repo.yarnpkg.com/tags",{configuration:t,jsonResponse:!0});if(!r.latest[e])throw new it(`Tag ${pe.pretty(t,e,pe.Type.RANGE)} not found`);return r.latest[e]}async function IH(t,e,r,{report:o,useYarnPath:a}){let n,u=async()=>(typeof n>"u"&&(n=await r()),n);if(e===null){let te=await u();await ae.mktempPromise(async le=>{let ce=K.join(le,"yarn.cjs");await ae.writeFilePromise(ce,te);let{stdout:ue}=await Hr.execvp(process.execPath,[Ae.fromPortablePath(ce),"--version"],{cwd:le,env:{...t.env,YARN_IGNORE_PATH:"1"}});if(e=ue.trim(),!Ude.default.valid(e))throw new Error(`Invalid semver version. ${pe.pretty(t,"yarn --version",pe.Type.CODE)} returned: +${e}`)})}let A=t.projectCwd??t.startingCwd,p=K.resolve(A,".yarn/releases"),h=K.resolve(p,`yarn-${e}.cjs`),E=K.relative(t.startingCwd,h),w=qe.isTaggedYarnVersion(e),D=t.get("yarnPath"),x=!w,C=x||!!D||!!a;if(a===!1){if(x)throw new Jt(0,"You explicitly opted out of yarnPath usage in your command line, but the version you specified cannot be represented by Corepack");C=!1}else!C&&!process.env.COREPACK_ROOT&&(o.reportWarning(0,`You don't seem to have ${pe.applyHyperlink(t,"Corepack","https://nodejs.org/api/corepack.html")} enabled; we'll have to rely on ${pe.applyHyperlink(t,"yarnPath","https://yarnpkg.com/configuration/yarnrc#yarnPath")} instead`),C=!0);if(C){let te=await u();o.reportInfo(0,`Saving the new release in ${pe.pretty(t,E,"magenta")}`),await ae.removePromise(K.dirname(h)),await ae.mkdirPromise(K.dirname(h),{recursive:!0}),await ae.writeFilePromise(h,te,{mode:493}),await ze.updateConfiguration(A,{yarnPath:K.relative(A,h)})}else await ae.removePromise(K.dirname(h)),await ze.updateConfiguration(A,{yarnPath:ze.deleteProperty});let T=await _t.tryFind(A)||new _t;T.packageManager=`yarn@${w?e:await O2(t,"stable")}`;let L={};T.exportTo(L);let U=K.join(A,_t.fileName),J=`${JSON.stringify(L,null,T.indent)} +`;return await ae.changeFilePromise(U,J,{automaticNewlines:!0}),{bundleVersion:e}}function _de(t){return vr[qP(t)]}var O0t=/## (?YN[0-9]{4}) - `(?[A-Z_]+)`\n\n(?
(?:.(?!##))+)/gs;async function M0t(t){let r=`https://repo.yarnpkg.com/${qe.isTaggedYarnVersion(nn)?nn:await O2(t,"canary")}/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx`,o=await on.get(r,{configuration:t});return new Map(Array.from(o.toString().matchAll(O0t),({groups:a})=>{if(!a)throw new Error("Assertion failed: Expected the match to have been successful");let n=_de(a.code);if(a.name!==n)throw new Error(`Assertion failed: Invalid error code data: Expected "${a.name}" to be named "${n}"`);return[a.code,a.details]}))}var SE=class extends ut{constructor(){super(...arguments);this.code=de.String({required:!1,validator:vw(Sm(),[Bw(/^YN[0-9]{4}$/)])});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["explain"]]}static{this.usage=ot.Usage({description:"explain an error code",details:` + When the code argument is specified, this command prints its name and its details. + + When used without arguments, this command lists all error codes and their names. + `,examples:[["Explain an error code","$0 explain YN0006"],["List all error codes","$0 explain"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);if(typeof this.code<"u"){let o=_de(this.code),a=pe.pretty(r,o,pe.Type.CODE),n=this.cli.format().header(`${this.code} - ${a}`),A=(await M0t(r)).get(this.code),p=typeof A<"u"?pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.MARKDOWN,{text:A,format:this.cli.format(),paragraphs:!0})):`This error code does not have a description. + +You can help us by editing this page on GitHub \u{1F642}: +${pe.jsonOrPretty(this.json,r,pe.tuple(pe.Type.URL,"https://github.com/yarnpkg/berry/blob/master/packages/docusaurus/docs/advanced/01-general-reference/error-codes.mdx"))} +`;this.json?this.context.stdout.write(`${JSON.stringify({code:this.code,name:o,details:p})} +`):this.context.stdout.write(`${n} + +${p} +`)}else{let o={children:qe.mapAndFilter(Object.entries(vr),([a,n])=>Number.isNaN(Number(a))?qe.mapAndFilter.skip:{label:Ju(Number(a)),value:pe.tuple(pe.Type.CODE,n)})};As.emitTree(o,{configuration:r,stdout:this.context.stdout,json:this.json})}}};Ke();Pt();Gt();var Hde=et(Xo()),bE=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Print versions of a package from the whole project"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Print information for all packages, including transitive dependencies"});this.extra=de.Array("-X,--extra",[],{description:"An array of requests of extra data provided by plugins"});this.cache=de.Boolean("--cache",!1,{description:"Print information about the cache entry of a package (path, size, checksum)"});this.dependents=de.Boolean("--dependents",!1,{description:"Print all dependents for each matching package"});this.manifest=de.Boolean("--manifest",!1,{description:"Print data obtained by looking at the package archive (license, homepage, ...)"});this.nameOnly=de.Boolean("--name-only",!1,{description:"Only print the name for the matching packages"});this.virtuals=de.Boolean("--virtuals",!1,{description:"Print each instance of the virtual packages"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=de.Rest()}static{this.paths=[["info"]]}static{this.usage=ot.Usage({description:"see information related to packages",details:"\n This command prints various information related to the specified packages, accepting glob patterns.\n\n By default, if the locator reference is missing, Yarn will default to print the information about all the matching direct dependencies of the package for the active workspace. To instead print all versions of the package that are direct dependencies of any of your workspaces, use the `-A,--all` flag. Adding the `-R,--recursive` flag will also report transitive dependencies.\n\n Some fields will be hidden by default in order to keep the output readable, but can be selectively displayed by using additional options (`--dependents`, `--manifest`, `--virtuals`, ...) described in the option descriptions.\n\n Note that this command will only print the information directly related to the selected packages - if you wish to know why the package is there in the first place, use `yarn why` which will do just that (it also provides a `-R,--recursive` flag that may be of some help).\n ",examples:[["Show information about Lodash","$0 info lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a&&!this.all)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let u=new Set(this.extra);this.cache&&u.add("cache"),this.dependents&&u.add("dependents"),this.manifest&&u.add("manifest");let A=(le,{recursive:ce})=>{let ue=le.anchoredLocator.locatorHash,Ie=new Map,he=[ue];for(;he.length>0;){let De=he.shift();if(Ie.has(De))continue;let Ee=o.storedPackages.get(De);if(typeof Ee>"u")throw new Error("Assertion failed: Expected the package to be registered");if(Ie.set(De,Ee),G.isVirtualLocator(Ee)&&he.push(G.devirtualizeLocator(Ee).locatorHash),!(!ce&&De!==ue))for(let g of Ee.dependencies.values()){let me=o.storedResolutions.get(g.descriptorHash);if(typeof me>"u")throw new Error("Assertion failed: Expected the resolution to be registered");he.push(me)}}return Ie.values()},p=({recursive:le})=>{let ce=new Map;for(let ue of o.workspaces)for(let Ie of A(ue,{recursive:le}))ce.set(Ie.locatorHash,Ie);return ce.values()},h=({all:le,recursive:ce})=>le&&ce?o.storedPackages.values():le?p({recursive:ce}):A(a,{recursive:ce}),E=({all:le,recursive:ce})=>{let ue=h({all:le,recursive:ce}),Ie=this.patterns.map(Ee=>{let g=G.parseLocator(Ee),me=Hde.default.makeRe(G.stringifyIdent(g)),Ce=G.isVirtualLocator(g),fe=Ce?G.devirtualizeLocator(g):g;return ie=>{let Z=G.stringifyIdent(ie);if(!me.test(Z))return!1;if(g.reference==="unknown")return!0;let Pe=G.isVirtualLocator(ie),Re=Pe?G.devirtualizeLocator(ie):ie;return!(Ce&&Pe&&g.reference!==ie.reference||fe.reference!==Re.reference)}}),he=qe.sortMap([...ue],Ee=>G.stringifyLocator(Ee));return{selection:he.filter(Ee=>Ie.length===0||Ie.some(g=>g(Ee))),sortedLookup:he}},{selection:w,sortedLookup:D}=E({all:this.all,recursive:this.recursive});if(w.length===0)throw new it("No package matched your request");let x=new Map;if(this.dependents)for(let le of D)for(let ce of le.dependencies.values()){let ue=o.storedResolutions.get(ce.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: Expected the resolution to be registered");qe.getArrayWithDefault(x,ue).push(le)}let C=new Map;for(let le of D){if(!G.isVirtualLocator(le))continue;let ce=G.devirtualizeLocator(le);qe.getArrayWithDefault(C,ce.locatorHash).push(le)}let T={},L={children:T},U=r.makeFetcher(),J={project:o,fetcher:U,cache:n,checksums:o.storedChecksums,report:new Ri,cacheOptions:{skipIntegrityCheck:!0}},te=[async(le,ce,ue)=>{if(!ce.has("manifest"))return;let Ie=await U.fetch(le,J),he;try{he=await _t.find(Ie.prefixPath,{baseFs:Ie.packageFs})}finally{Ie.releaseFs?.()}ue("Manifest",{License:pe.tuple(pe.Type.NO_HINT,he.license),Homepage:pe.tuple(pe.Type.URL,he.raw.homepage??null)})},async(le,ce,ue)=>{if(!ce.has("cache"))return;let Ie=o.storedChecksums.get(le.locatorHash)??null,he=n.getLocatorPath(le,Ie),De;if(he!==null)try{De=await ae.statPromise(he)}catch{}let Ee=typeof De<"u"?[De.size,pe.Type.SIZE]:void 0;ue("Cache",{Checksum:pe.tuple(pe.Type.NO_HINT,Ie),Path:pe.tuple(pe.Type.PATH,he),Size:Ee})}];for(let le of w){let ce=G.isVirtualLocator(le);if(!this.virtuals&&ce)continue;let ue={},Ie={value:[le,pe.Type.LOCATOR],children:ue};if(T[G.stringifyLocator(le)]=Ie,this.nameOnly){delete Ie.children;continue}let he=C.get(le.locatorHash);typeof he<"u"&&(ue.Instances={label:"Instances",value:pe.tuple(pe.Type.NUMBER,he.length)}),ue.Version={label:"Version",value:pe.tuple(pe.Type.NO_HINT,le.version)};let De=(g,me)=>{let Ce={};if(ue[g]=Ce,Array.isArray(me))Ce.children=me.map(fe=>({value:fe}));else{let fe={};Ce.children=fe;for(let[ie,Z]of Object.entries(me))typeof Z>"u"||(fe[ie]={label:ie,value:Z})}};if(!ce){for(let g of te)await g(le,u,De);await r.triggerHook(g=>g.fetchPackageInfo,le,u,De)}le.bin.size>0&&!ce&&De("Exported Binaries",[...le.bin.keys()].map(g=>pe.tuple(pe.Type.PATH,g)));let Ee=x.get(le.locatorHash);typeof Ee<"u"&&Ee.length>0&&De("Dependents",Ee.map(g=>pe.tuple(pe.Type.LOCATOR,g))),le.dependencies.size>0&&!ce&&De("Dependencies",[...le.dependencies.values()].map(g=>{let me=o.storedResolutions.get(g.descriptorHash),Ce=typeof me<"u"?o.storedPackages.get(me)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:Ce})})),le.peerDependencies.size>0&&ce&&De("Peer dependencies",[...le.peerDependencies.values()].map(g=>{let me=le.dependencies.get(g.identHash),Ce=typeof me<"u"?o.storedResolutions.get(me.descriptorHash)??null:null,fe=Ce!==null?o.storedPackages.get(Ce)??null:null;return pe.tuple(pe.Type.RESOLUTION,{descriptor:g,locator:fe})}))}As.emitTree(L,{configuration:r,json:this.json,stdout:this.context.stdout,separators:this.nameOnly?0:2})}};Ke();Pt();Ol();var Kk=et(sg());Gt();var wH=et(ni());il();var U0t=[{selector:t=>t===-1,name:"nodeLinker",value:"node-modules"},{selector:t=>t!==-1&&t<8,name:"enableGlobalCache",value:!1},{selector:t=>t!==-1&&t<8,name:"compressionLevel",value:"mixed"}],xE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.immutable=de.Boolean("--immutable",{description:"Abort with an error exit code if the lockfile was to be modified"});this.immutableCache=de.Boolean("--immutable-cache",{description:"Abort with an error exit code if the cache folder was to be modified"});this.refreshLockfile=de.Boolean("--refresh-lockfile",{description:"Refresh the package metadata stored in the lockfile"});this.checkCache=de.Boolean("--check-cache",{description:"Always refetch the packages and ensure that their checksums are consistent"});this.checkResolutions=de.Boolean("--check-resolutions",{description:"Validates that the package resolutions are coherent"});this.inlineBuilds=de.Boolean("--inline-builds",{description:"Verbosely print the output of the build steps of dependencies"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.cacheFolder=de.String("--cache-folder",{hidden:!0});this.frozenLockfile=de.Boolean("--frozen-lockfile",{hidden:!0});this.ignoreEngines=de.Boolean("--ignore-engines",{hidden:!0});this.nonInteractive=de.Boolean("--non-interactive",{hidden:!0});this.preferOffline=de.Boolean("--prefer-offline",{hidden:!0});this.production=de.Boolean("--production",{hidden:!0});this.registry=de.String("--registry",{hidden:!0});this.silent=de.Boolean("--silent",{hidden:!0});this.networkTimeout=de.String("--network-timeout",{hidden:!0})}static{this.paths=[["install"],ot.Default]}static{this.usage=ot.Usage({description:"install the project dependencies",details:"\n This command sets up your project if needed. The installation is split into four different steps that each have their own characteristics:\n\n - **Resolution:** First the package manager will resolve your dependencies. The exact way a dependency version is privileged over another isn't standardized outside of the regular semver guarantees. If a package doesn't resolve to what you would expect, check that all dependencies are correctly declared (also check our website for more information: ).\n\n - **Fetch:** Then we download all the dependencies if needed, and make sure that they're all stored within our cache (check the value of `cacheFolder` in `yarn config` to see where the cache files are stored).\n\n - **Link:** Then we send the dependency tree information to internal plugins tasked with writing them on the disk in some form (for example by generating the `.pnp.cjs` file you might know).\n\n - **Build:** Once the dependency tree has been written on the disk, the package manager will now be free to run the build scripts for all packages that might need it, in a topological order compatible with the way they depend on one another. See https://yarnpkg.com/advanced/lifecycle-scripts for detail.\n\n Note that running this command is not part of the recommended workflow. Yarn supports zero-installs, which means that as long as you store your cache and your `.pnp.cjs` file inside your repository, everything will work without requiring any install right after cloning your repository or switching branches.\n\n If the `--immutable` option is set (defaults to true on CI), Yarn will abort with an error exit code if the lockfile was to be modified (other paths can be added using the `immutablePatterns` configuration setting). For backward compatibility we offer an alias under the name of `--frozen-lockfile`, but it will be removed in a later release.\n\n If the `--immutable-cache` option is set, Yarn will abort with an error exit code if the cache folder was to be modified (either because files would be added, or because they'd be removed).\n\n If the `--refresh-lockfile` option is set, Yarn will keep the same resolution for the packages currently in the lockfile but will refresh their metadata. If used together with `--immutable`, it can validate that the lockfile information are consistent. This flag is enabled by default when Yarn detects it runs within a pull request context.\n\n If the `--check-cache` option is set, Yarn will always refetch the packages and will ensure that their checksum matches what's 1/ described in the lockfile 2/ inside the existing cache files (if present). This is recommended as part of your CI workflow if you're both following the Zero-Installs model and accepting PRs from third-parties, as they'd otherwise have the ability to alter the checked-in packages before submitting them.\n\n If the `--inline-builds` option is set, Yarn will verbosely print the output of the build steps of your dependencies (instead of writing them into individual files). This is likely useful mostly for debug purposes only when using Docker-like environments.\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n ",examples:[["Install the project","$0 install"],["Validate a project when using Zero-Installs","$0 install --immutable --immutable-cache"],["Validate a project when using Zero-Installs (slightly safer if you accept external PRs)","$0 install --immutable --immutable-cache --check-cache"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);typeof this.inlineBuilds<"u"&&r.useWithSource("",{enableInlineBuilds:this.inlineBuilds},r.startingCwd,{overwrite:!0});let o=!!process.env.FUNCTION_TARGET||!!process.env.GOOGLE_RUNTIME,a=await Qy({configuration:r,stdout:this.context.stdout},[{option:this.ignoreEngines,message:"The --ignore-engines option is deprecated; engine checking isn't a core feature anymore",error:!Kk.default.VERCEL},{option:this.registry,message:"The --registry option is deprecated; prefer setting npmRegistryServer in your .yarnrc.yml file"},{option:this.preferOffline,message:"The --prefer-offline flag is deprecated; use the --cached flag with 'yarn add' instead",error:!Kk.default.VERCEL},{option:this.production,message:"The --production option is deprecated on 'install'; use 'yarn workspaces focus' instead",error:!0},{option:this.nonInteractive,message:"The --non-interactive option is deprecated",error:!o},{option:this.frozenLockfile,message:"The --frozen-lockfile option is deprecated; use --immutable and/or --immutable-cache instead",callback:()=>this.immutable=this.frozenLockfile},{option:this.cacheFolder,message:"The cache-folder option has been deprecated; use rc settings instead",error:!Kk.default.NETLIFY}]);if(a!==null)return a;let n=this.mode==="update-lockfile";if(n&&(this.immutable||this.immutableCache))throw new it(`${pe.pretty(r,"--immutable",pe.Type.CODE)} and ${pe.pretty(r,"--immutable-cache",pe.Type.CODE)} cannot be used with ${pe.pretty(r,"--mode=update-lockfile",pe.Type.CODE)}`);let u=(this.immutable??r.get("enableImmutableInstalls"))&&!n,A=this.immutableCache&&!n;if(r.projectCwd!==null){let T=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U=!1;await q0t(r,u)&&(L.reportInfo(48,"Automatically removed core plugins that are now builtins \u{1F44D}"),U=!0),await H0t(r,u)&&(L.reportInfo(48,"Automatically fixed merge conflicts \u{1F44D}"),U=!0),U&&L.reportSeparator()});if(T.hasErrors())return T.exitCode()}if(r.projectCwd!==null){let T=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{if(ze.telemetry?.isNew)ze.telemetry.commitTips(),L.reportInfo(65,"Yarn will periodically gather anonymous telemetry: https://yarnpkg.com/advanced/telemetry"),L.reportInfo(65,`Run ${pe.pretty(r,"yarn config set --home enableTelemetry 0",pe.Type.CODE)} to disable`),L.reportSeparator();else if(ze.telemetry?.shouldShowTips){let U=await on.get("https://repo.yarnpkg.com/tags",{configuration:r,jsonResponse:!0}).catch(()=>null);if(U!==null){let J=null;if(nn!==null){let le=wH.default.prerelease(nn)?"canary":"stable",ce=U.latest[le];wH.default.gt(ce,nn)&&(J=[le,ce])}if(J)ze.telemetry.commitTips(),L.reportInfo(88,`${pe.applyStyle(r,`A new ${J[0]} version of Yarn is available:`,pe.Style.BOLD)} ${G.prettyReference(r,J[1])}!`),L.reportInfo(88,`Upgrade now by running ${pe.pretty(r,`yarn set version ${J[1]}`,pe.Type.CODE)}`),L.reportSeparator();else{let te=ze.telemetry.selectTip(U.tips);te&&(L.reportInfo(89,pe.pretty(r,te.message,pe.Type.MARKDOWN_INLINE)),te.url&&L.reportInfo(89,`Learn more at ${te.url}`),L.reportSeparator())}}}});if(T.hasErrors())return T.exitCode()}let{project:p,workspace:h}=await Qt.find(r,this.context.cwd),E=p.lockfileLastVersion;if(E!==null){let T=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async L=>{let U={};for(let J of U0t)J.selector(E)&&typeof r.sources.get(J.name)>"u"&&(r.use("",{[J.name]:J.value},p.cwd,{overwrite:!0}),U[J.name]=J.value);Object.keys(U).length>0&&(await ze.updateConfiguration(p.cwd,U),L.reportInfo(87,"Migrated your project to the latest Yarn version \u{1F680}"),L.reportSeparator())});if(T.hasErrors())return T.exitCode()}let w=await Wr.find(r,{immutable:A,check:this.checkCache});if(!h)throw new or(p.cwd,this.context.cwd);await p.restoreInstallState({restoreResolutions:!1});let D=r.get("enableHardenedMode");D&&typeof r.sources.get("enableHardenedMode")>"u"&&await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,includeFooter:!1},async T=>{T.reportWarning(0,"Yarn detected that the current workflow is executed from a public pull request. For safety the hardened mode has been enabled."),T.reportWarning(0,`It will prevent malicious lockfile manipulations, in exchange for a slower install time. You can opt-out if necessary; check our ${pe.applyHyperlink(r,"documentation","https://yarnpkg.com/features/security#hardened-mode")} for more details.`),T.reportSeparator()}),(this.refreshLockfile??D)&&(p.lockfileNeedsRefresh=!0);let x=this.checkResolutions??D;return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout,forceSectionAlignment:!0,includeLogs:!0,includeVersion:!0},async T=>{await p.install({cache:w,report:T,immutable:u,checkResolutions:x,mode:this.mode})})).exitCode()}},_0t="<<<<<<<";async function H0t(t,e){if(!t.projectCwd)return!1;let r=K.join(t.projectCwd,mr.lockfile);if(!await ae.existsPromise(r)||!(await ae.readFilePromise(r,"utf8")).includes(_0t))return!1;if(e)throw new Jt(47,"Cannot autofix a lockfile when running an immutable install");let a=await Hr.execvp("git",["rev-parse","MERGE_HEAD","HEAD"],{cwd:t.projectCwd});if(a.code!==0&&(a=await Hr.execvp("git",["rev-parse","REBASE_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0&&(a=await Hr.execvp("git",["rev-parse","CHERRY_PICK_HEAD","HEAD"],{cwd:t.projectCwd})),a.code!==0)throw new Jt(83,"Git returned an error when trying to find the commits pertaining to the conflict");let n=await Promise.all(a.stdout.trim().split(/\n/).map(async A=>{let p=await Hr.execvp("git",["show",`${A}:./${mr.lockfile}`],{cwd:t.projectCwd});if(p.code!==0)throw new Jt(83,`Git returned an error when trying to access the lockfile content in ${A}`);try{return Ki(p.stdout)}catch{throw new Jt(46,"A variant of the conflicting lockfile failed to parse")}}));n=n.filter(A=>!!A.__metadata);for(let A of n){if(A.__metadata.version<7)for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=G.parseDescriptor(p,!0),E=t.normalizeDependency(h),w=G.stringifyDescriptor(E);w!==p&&(A[w]=A[p],delete A[p])}for(let p of Object.keys(A)){if(p==="__metadata")continue;let h=A[p].checksum;typeof h=="string"&&h.includes("/")||(A[p].checksum=`${A.__metadata.cacheKey}/${h}`)}}let u=Object.assign({},...n);u.__metadata.version=`${Math.min(...n.map(A=>parseInt(A.__metadata.version??0)))}`,u.__metadata.cacheKey="merged";for(let[A,p]of Object.entries(u))typeof p=="string"&&delete u[A];return await ae.changeFilePromise(r,Pa(u),{automaticNewlines:!0}),!0}async function q0t(t,e){if(!t.projectCwd)return!1;let r=[],o=K.join(t.projectCwd,".yarn/plugins/@yarnpkg");return await ze.updateConfiguration(t.projectCwd,{plugins:n=>{if(!Array.isArray(n))return n;let u=n.filter(A=>{if(!A.path)return!0;let p=K.resolve(t.projectCwd,A.path),h=j1.has(A.spec)&&K.contains(o,p);return h&&r.push(p),!h});return u.length===0?ze.deleteProperty:u.length===n.length?n:u}},{immutable:e})?(await Promise.all(r.map(async n=>{await ae.removePromise(n)})),!0):!1}Ke();Pt();Gt();var kE=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Link all workspaces belonging to the target projects to the current one"});this.private=de.Boolean("-p,--private",!1,{description:"Also link private workspaces belonging to the target projects to the current one"});this.relative=de.Boolean("-r,--relative",!1,{description:"Link workspaces using relative paths instead of absolute paths"});this.destinations=de.Rest()}static{this.paths=[["link"]]}static{this.usage=ot.Usage({description:"connect the local project to another one",details:"\n This command will set a new `resolutions` field in the project-level manifest and point it to the workspace at the specified location (even if part of another project).\n ",examples:[["Register one or more remote workspaces for use in the current project","$0 link ~/ts-loader ~/jest"],["Register all workspaces from a remote project for use in the current project","$0 link ~/jest --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=o.topLevelWorkspace,A=[];for(let p of this.destinations){let h=K.resolve(this.context.cwd,Ae.toPortablePath(p)),E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:w,workspace:D}=await Qt.find(E,h);if(o.cwd===w.cwd)throw new it(`Invalid destination '${p}'; Can't link the project to itself`);if(!D)throw new or(w.cwd,h);if(this.all){let x=!1;for(let C of w.workspaces)C.manifest.name&&(!C.manifest.private||this.private)&&(A.push(C),x=!0);if(!x)throw new it(`No workspace found to be linked in the target project: ${p}`)}else{if(!D.manifest.name)throw new it(`The target workspace at '${p}' doesn't have a name and thus cannot be linked`);if(D.manifest.private&&!this.private)throw new it(`The target workspace at '${p}' is marked private - use the --private flag to link it anyway`);A.push(D)}}for(let p of A){let h=G.stringifyIdent(p.anchoredLocator),E=this.relative?K.relative(o.cwd,p.cwd):p.cwd;u.manifest.resolutions.push({pattern:{descriptor:{fullName:h}},reference:`portal:${E}`})}return await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Gt();var QE=class extends ut{constructor(){super(...arguments);this.args=de.Proxy()}static{this.paths=[["node"]]}static{this.usage=ot.Usage({description:"run node with the hook already setup",details:` + This command simply runs Node. It also makes sure to call it in a way that's compatible with the current project (for example, on PnP projects the environment will be setup in such a way that PnP will be correctly injected into the environment). + + The Node process will use the exact same version of Node as the one used to run Yarn itself, which might be a good way to ensure that your commands always use a consistent Node version. + `,examples:[["Run a Node script","$0 node ./my-script.js"]]})}async execute(){return this.cli.run(["exec","node",...this.args])}};Ke();Gt();var FE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","check"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"find all third-party plugins that differ from their own spec",details:` + Check only the plugins from https. + + If this command detects any plugin differences in the CI environment, it will throw an error. + `,examples:[["find all third-party plugins that differ from their own spec","$0 plugin check"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=await ze.findRcFiles(this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{for(let u of o)if(u.data?.plugins)for(let A of u.data.plugins){if(!A.checksum||!A.spec.match(/^https?:/))continue;let p=await on.get(A.spec,{configuration:r}),h=xn.makeHash(p);if(A.checksum===h)continue;let E=pe.pretty(r,A.path,pe.Type.PATH),w=pe.pretty(r,A.spec,pe.Type.URL),D=`${E} is different from the file provided by ${w}`;n.reportJson({...A,newChecksum:h}),n.reportError(0,D)}})).exitCode()}};Ke();Ke();Pt();Gt();var Yde=ve("os");Ke();Pt();Gt();var qde=ve("os");Ke();Ol();Gt();var j0t="https://raw.githubusercontent.com/yarnpkg/berry/master/plugins.yml";async function Jg(t,e){let r=await on.get(j0t,{configuration:t}),o=Ki(r.toString());return Object.fromEntries(Object.entries(o).filter(([a,n])=>!e||Ur.satisfiesWithPrereleases(e,n.range??"<4.0.0-rc.1")))}var RE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","list"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the available official plugins",details:"\n This command prints the plugins available directly from the Yarn repository. Only those plugins can be referenced by name in `yarn plugin import`.\n ",examples:[["List the official plugins","$0 plugin list"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{let n=await Jg(r,nn);for(let[u,{experimental:A,...p}]of Object.entries(n)){let h=u;A&&(h+=" [experimental]"),a.reportJson({name:u,experimental:A,...p}),a.reportInfo(null,h)}})).exitCode()}};var G0t=/^[0-9]+$/,W0t=process.platform==="win32";function jde(t){return G0t.test(t)?`pull/${t}/head`:t}var Y0t=({repository:t,branch:e},r)=>[["git","init",Ae.fromPortablePath(r)],["git","remote","add","origin",t],["git","fetch","origin","--depth=1",jde(e)],["git","reset","--hard","FETCH_HEAD"]],K0t=({branch:t})=>[["git","fetch","origin","--depth=1",jde(t),"--force"],["git","reset","--hard","FETCH_HEAD"],["git","clean","-dfx","-e","packages/yarnpkg-cli/bundles"]],V0t=({plugins:t,noMinify:e},r,o)=>[["yarn","build:cli",...new Array().concat(...t.map(a=>["--plugin",K.resolve(o,a)])),...e?["--no-minify"]:[],"|"],[W0t?"move":"mv","packages/yarnpkg-cli/bundles/yarn.js",Ae.fromPortablePath(r),"|"]],TE=class extends ut{constructor(){super(...arguments);this.installPath=de.String("--path",{description:"The path where the repository should be cloned to"});this.repository=de.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=de.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.plugins=de.Array("--plugin",[],{description:"An array of additional plugins that should be included in the bundle"});this.dryRun=de.Boolean("-n,--dry-run",!1,{description:"If set, the bundle will be built but not added to the project"});this.noMinify=de.Boolean("--no-minify",!1,{description:"Build a bundle for development (debugging) - non-minified and non-mangled"});this.force=de.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.skipPlugins=de.Boolean("--skip-plugins",!1,{description:"Skip updating the contrib plugins"})}static{this.paths=[["set","version","from","sources"]]}static{this.usage=ot.Usage({description:"build Yarn from master",details:` + This command will clone the Yarn repository into a temporary folder, then build it. The resulting bundle will then be copied into the local project. + + By default, it also updates all contrib plugins to the same commit the bundle is built from. This behavior can be disabled by using the \`--skip-plugins\` flag. + `,examples:[["Build Yarn from master","$0 set version from sources"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),a=typeof this.installPath<"u"?K.resolve(this.context.cwd,Ae.toPortablePath(this.installPath)):K.resolve(Ae.toPortablePath((0,qde.tmpdir)()),"yarnpkg-sources",xn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{await BH(this,{configuration:r,report:u,target:a}),u.reportSeparator(),u.reportInfo(0,"Building a fresh bundle"),u.reportSeparator();let A=await Hr.execvp("git",["rev-parse","--short","HEAD"],{cwd:a,strict:!0}),p=K.join(a,`packages/yarnpkg-cli/bundles/yarn-${A.stdout.trim()}.js`);ae.existsSync(p)||(await M2(V0t(this,p,a),{configuration:r,context:this.context,target:a}),u.reportSeparator());let h=await ae.readFilePromise(p);if(!this.dryRun){let{bundleVersion:E}=await IH(r,null,async()=>h,{report:u});this.skipPlugins||await J0t(this,E,{project:o,report:u,target:a})}})).exitCode()}};async function M2(t,{configuration:e,context:r,target:o}){for(let[a,...n]of t){let u=n[n.length-1]==="|";if(u&&n.pop(),u)await Hr.pipevp(a,n,{cwd:o,stdin:r.stdin,stdout:r.stdout,stderr:r.stderr,strict:!0});else{r.stdout.write(`${pe.pretty(e,` $ ${[a,...n].join(" ")}`,"grey")} +`);try{await Hr.execvp(a,n,{cwd:o,strict:!0})}catch(A){throw r.stdout.write(A.stdout||A.stack),A}}}}async function BH(t,{configuration:e,report:r,target:o}){let a=!1;if(!t.force&&ae.existsSync(K.join(o,".git"))){r.reportInfo(0,"Fetching the latest commits"),r.reportSeparator();try{await M2(K0t(t),{configuration:e,context:t.context,target:o}),a=!0}catch{r.reportSeparator(),r.reportWarning(0,"Repository update failed; we'll try to regenerate it")}}a||(r.reportInfo(0,"Cloning the remote repository"),r.reportSeparator(),await ae.removePromise(o),await ae.mkdirPromise(o,{recursive:!0}),await M2(Y0t(t,o),{configuration:e,context:t.context,target:o}))}async function J0t(t,e,{project:r,report:o,target:a}){let n=await Jg(r.configuration,e),u=new Set(Object.keys(n));for(let A of r.configuration.plugins.keys())u.has(A)&&await vH(A,t,{project:r,report:o,target:a})}Ke();Ke();Pt();Gt();var Gde=et(ni()),Wde=ve("vm");var NE=class extends ut{constructor(){super(...arguments);this.name=de.String();this.checksum=de.Boolean("--checksum",!0,{description:"Whether to care if this plugin is modified"})}static{this.paths=[["plugin","import"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"download a plugin",details:` + This command downloads the specified plugin from its remote location and updates the configuration to reference it in further CLI invocations. + + Three types of plugin references are accepted: + + - If the plugin is stored within the Yarn repository, it can be referenced by name. + - Third-party plugins can be referenced directly through their public urls. + - Local plugins can be referenced by their path on the disk. + + If the \`--no-checksum\` option is set, Yarn will no longer care if the plugin is modified. + + Plugins cannot be downloaded from the npm registry, and aren't allowed to have dependencies (they need to be bundled into a single file, possibly thanks to the \`@yarnpkg/builder\` package). + `,examples:[['Download and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import @yarnpkg/plugin-exec"],['Download and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import exec"],["Download and activate a community plugin","$0 plugin import https://example.org/path/to/plugin.js"],["Activate a local plugin","$0 plugin import ./path/to/plugin.js"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,stdout:this.context.stdout},async a=>{let{project:n}=await Qt.find(r,this.context.cwd),u,A;if(this.name.match(/^\.{0,2}[\\/]/)||Ae.isAbsolute(this.name)){let p=K.resolve(this.context.cwd,Ae.toPortablePath(this.name));a.reportInfo(0,`Reading ${pe.pretty(r,p,pe.Type.PATH)}`),u=K.relative(n.cwd,p),A=await ae.readFilePromise(p)}else{let p;if(this.name.match(/^https?:/)){try{new URL(this.name)}catch{throw new Jt(52,`Plugin specifier "${this.name}" is neither a plugin name nor a valid url`)}u=this.name,p=this.name}else{let h=G.parseLocator(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-"));if(h.reference!=="unknown"&&!Gde.default.valid(h.reference))throw new Jt(0,"Official plugins only accept strict version references. Use an explicit URL if you wish to download them from another location.");let E=G.stringifyIdent(h),w=await Jg(r,nn);if(!Object.hasOwn(w,E)){let D=`Couldn't find a plugin named ${G.prettyIdent(r,h)} on the remote registry. +`;throw r.plugins.has(E)?D+=`A plugin named ${G.prettyIdent(r,h)} is already installed; possibly attempting to import a built-in plugin.`:D+=`Note that only the plugins referenced on our website (${pe.pretty(r,"https://github.com/yarnpkg/berry/blob/master/plugins.yml",pe.Type.URL)}) can be referenced by their name; any other plugin will have to be referenced through its public url (for example ${pe.pretty(r,"https://github.com/yarnpkg/berry/raw/master/packages/plugin-typescript/bin/%40yarnpkg/plugin-typescript.js",pe.Type.URL)}).`,new Jt(51,D)}u=E,p=w[E].url,h.reference!=="unknown"?p=p.replace(/\/master\//,`/${E}/${h.reference}/`):nn!==null&&(p=p.replace(/\/master\//,`/@yarnpkg/cli/${nn}/`))}a.reportInfo(0,`Downloading ${pe.pretty(r,p,"green")}`),A=await on.get(p,{configuration:r})}await DH(u,A,{checksum:this.checksum,project:n,report:a})})).exitCode()}};async function DH(t,e,{checksum:r=!0,project:o,report:a}){let{configuration:n}=o,u={},A={exports:u};(0,Wde.runInNewContext)(e.toString(),{module:A,exports:u});let h=`.yarn/plugins/${A.exports.name}.cjs`,E=K.resolve(o.cwd,h);a.reportInfo(0,`Saving the new plugin in ${pe.pretty(n,h,"magenta")}`),await ae.mkdirPromise(K.dirname(E),{recursive:!0}),await ae.writeFilePromise(E,e);let w={path:h,spec:t};r&&(w.checksum=xn.makeHash(e)),await ze.addPlugin(o.cwd,[w])}var z0t=({pluginName:t,noMinify:e},r)=>[["yarn",`build:${t}`,...e?["--no-minify"]:[],"|"]],LE=class extends ut{constructor(){super(...arguments);this.installPath=de.String("--path",{description:"The path where the repository should be cloned to"});this.repository=de.String("--repository","https://github.com/yarnpkg/berry.git",{description:"The repository that should be cloned"});this.branch=de.String("--branch","master",{description:"The branch of the repository that should be cloned"});this.noMinify=de.Boolean("--no-minify",!1,{description:"Build a plugin for development (debugging) - non-minified and non-mangled"});this.force=de.Boolean("-f,--force",!1,{description:"Always clone the repository instead of trying to fetch the latest commits"});this.name=de.String()}static{this.paths=[["plugin","import","from","sources"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"build a plugin from sources",details:` + This command clones the Yarn repository into a temporary folder, builds the specified contrib plugin and updates the configuration to reference it in further CLI invocations. + + The plugins can be referenced by their short name if sourced from the official Yarn repository. + `,examples:[['Build and activate the "@yarnpkg/plugin-exec" plugin',"$0 plugin import from sources @yarnpkg/plugin-exec"],['Build and activate the "@yarnpkg/plugin-exec" plugin (shorthand)',"$0 plugin import from sources exec"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=typeof this.installPath<"u"?K.resolve(this.context.cwd,Ae.toPortablePath(this.installPath)):K.resolve(Ae.toPortablePath((0,Yde.tmpdir)()),"yarnpkg-sources",xn.makeHash(this.repository).slice(0,6));return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let{project:u}=await Qt.find(r,this.context.cwd),A=G.parseIdent(this.name.replace(/^((@yarnpkg\/)?plugin-)?/,"@yarnpkg/plugin-")),p=G.stringifyIdent(A),h=await Jg(r,nn);if(!Object.hasOwn(h,p))throw new Jt(51,`Couldn't find a plugin named "${p}" on the remote registry. Note that only the plugins referenced on our website (https://github.com/yarnpkg/berry/blob/master/plugins.yml) can be built and imported from sources.`);let E=p;await BH(this,{configuration:r,report:n,target:o}),await vH(E,this,{project:u,report:n,target:o})})).exitCode()}};async function vH(t,{context:e,noMinify:r},{project:o,report:a,target:n}){let u=t.replace(/@yarnpkg\//,""),{configuration:A}=o;a.reportSeparator(),a.reportInfo(0,`Building a fresh ${u}`),a.reportSeparator(),await M2(z0t({pluginName:u,noMinify:r},n),{configuration:A,context:e,target:n}),a.reportSeparator();let p=K.resolve(n,`packages/${u}/bundles/${t}.js`),h=await ae.readFilePromise(p);await DH(t,h,{project:o,report:a})}Ke();Pt();Gt();var OE=class extends ut{constructor(){super(...arguments);this.name=de.String()}static{this.paths=[["plugin","remove"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"remove a plugin",details:` + This command deletes the specified plugin from the .yarn/plugins folder and removes it from the configuration. + + **Note:** The plugins have to be referenced by their name property, which can be obtained using the \`yarn plugin runtime\` command. Shorthands are not allowed. + `,examples:[["Remove a plugin imported from the Yarn repository","$0 plugin remove @yarnpkg/plugin-typescript"],["Remove a plugin imported from a local file","$0 plugin remove my-local-plugin"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u=this.name,A=G.parseIdent(u);if(!r.plugins.has(u))throw new it(`${G.prettyIdent(r,A)} isn't referenced by the current configuration`);let p=`.yarn/plugins/${u}.cjs`,h=K.resolve(o.cwd,p);ae.existsSync(h)&&(n.reportInfo(0,`Removing ${pe.pretty(r,p,pe.Type.PATH)}...`),await ae.removePromise(h)),n.reportInfo(0,"Updating the configuration..."),await ze.updateConfiguration(o.cwd,{plugins:E=>{if(!Array.isArray(E))return E;let w=E.filter(D=>D.path!==p);return w.length===0?ze.deleteProperty:w.length===E.length?E:w}})})).exitCode()}};Ke();Gt();var ME=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["plugin","runtime"]]}static{this.usage=ot.Usage({category:"Plugin-related commands",description:"list the active plugins",details:` + This command prints the currently active plugins. Will be displayed both builtin plugins and external plugins. + `,examples:[["List the currently active plugins","$0 plugin runtime"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async a=>{for(let n of r.plugins.keys()){let u=this.context.plugins.plugins.has(n),A=n;u&&(A+=" [builtin]"),a.reportJson({name:n,builtin:u}),a.reportInfo(null,`${A}`)}})).exitCode()}};Ke();Ke();Gt();var UE=class extends ut{constructor(){super(...arguments);this.idents=de.Rest()}static{this.paths=[["rebuild"]]}static{this.usage=ot.Usage({description:"rebuild the project's native packages",details:` + This command will automatically cause Yarn to forget about previous compilations of the given packages and to run them again. + + Note that while Yarn forgets the compilation, the previous artifacts aren't erased from the filesystem and may affect the next builds (in good or bad). To avoid this, you may remove the .yarn/unplugged folder, or any other relevant location where packages might have been stored (Yarn may offer a way to do that automatically in the future). + + By default all packages will be rebuilt, but you can filter the list by specifying the names of the packages you want to clear from memory. + `,examples:[["Rebuild all packages","$0 rebuild"],["Rebuild fsevents only","$0 rebuild fsevents"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);let u=new Set;for(let A of this.idents)u.add(G.parseIdent(A).identHash);if(await o.restoreInstallState({restoreResolutions:!1}),await o.resolveEverything({cache:n,report:new Ri}),u.size>0)for(let A of o.storedPackages.values())u.has(A.identHash)&&(o.storedBuildState.delete(A.locatorHash),o.skippedBuilds.delete(A.locatorHash));else o.storedBuildState.clear(),o.skippedBuilds.clear();return await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ke();Ke();Ke();Gt();var PH=et(Xo());il();var _E=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Apply the operation to all workspaces from the current project"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.patterns=de.Rest()}static{this.paths=[["remove"]]}static{this.usage=ot.Usage({description:"remove dependencies from the project",details:` + This command will remove the packages matching the specified patterns from the current workspace. + + If the \`--mode=\` option is set, Yarn will change which artifacts are generated. The modes currently supported are: + + - \`skip-build\` will not run the build scripts at all. Note that this is different from setting \`enableScripts\` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run. + + - \`update-lockfile\` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost. + + This command accepts glob patterns as arguments (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them. + `,examples:[["Remove a dependency from the current project","$0 remove lodash"],["Remove a dependency from all workspaces at once","$0 remove lodash --all"],["Remove all dependencies starting with `eslint-`","$0 remove 'eslint-*'"],["Remove all dependencies with the `@babel` scope","$0 remove '@babel/*'"],["Remove all dependencies matching `react-dom` or `react-helmet`","$0 remove 'react-{dom,helmet}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.all?o.workspaces:[a],A=["dependencies","devDependencies","peerDependencies"],p=[],h=!1,E=[];for(let C of this.patterns){let T=!1,L=G.parseIdent(C);for(let U of u){let J=[...U.manifest.peerDependenciesMeta.keys()];for(let te of(0,PH.default)(J,C))U.manifest.peerDependenciesMeta.delete(te),h=!0,T=!0;for(let te of A){let le=U.manifest.getForScope(te),ce=[...le.values()].map(ue=>G.stringifyIdent(ue));for(let ue of(0,PH.default)(ce,G.stringifyIdent(L))){let{identHash:Ie}=G.parseIdent(ue),he=le.get(Ie);if(typeof he>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");U.manifest[te].delete(Ie),E.push([U,te,he]),h=!0,T=!0}}}T||p.push(C)}let w=p.length>1?"Patterns":"Pattern",D=p.length>1?"don't":"doesn't",x=this.all?"any":"this";if(p.length>0)throw new it(`${w} ${pe.prettyList(r,p,pe.Type.CODE)} ${D} match any packages referenced by ${x} workspace`);return h?(await r.triggerMultipleHooks(C=>C.afterWorkspaceDependencyRemoval,E),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})):0}};Ke();Ke();Gt();var Kde=ve("util"),HE=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["run"]]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);return(await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async u=>{let A=a.manifest.scripts,p=qe.sortMap(A.keys(),w=>w),h={breakLength:1/0,colors:r.get("enableColors"),maxArrayLength:2},E=p.reduce((w,D)=>Math.max(w,D.length),0);for(let[w,D]of A.entries())u.reportInfo(null,`${w.padEnd(E," ")} ${(0,Kde.inspect)(D,h)}`),u.reportJson({name:w,script:D})})).exitCode()}};Ke();Ke();Gt();var qE=class extends ut{constructor(){super(...arguments);this.inspect=de.String("--inspect",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.inspectBrk=de.String("--inspect-brk",!1,{tolerateBoolean:!0,description:"Forwarded to the underlying Node process when executing a binary"});this.topLevel=de.Boolean("-T,--top-level",!1,{description:"Check the root workspace for scripts and/or binaries instead of the current one"});this.binariesOnly=de.Boolean("-B,--binaries-only",!1,{description:"Ignore any user defined scripts and only check for binaries"});this.require=de.String("--require",{description:"Forwarded to the underlying Node process when executing a binary"});this.silent=de.Boolean("--silent",{hidden:!0});this.scriptName=de.String();this.args=de.Proxy()}static{this.paths=[["run"]]}static{this.usage=ot.Usage({description:"run a script defined in the package.json",details:` + This command will run a tool. The exact tool that will be executed will depend on the current state of your workspace: + + - If the \`scripts\` field from your local package.json contains a matching script name, its definition will get executed. + + - Otherwise, if one of the local workspace's dependencies exposes a binary with a matching name, this binary will get executed. + + - Otherwise, if the specified name contains a colon character and if one of the workspaces in the project contains exactly one script with a matching name, then this script will get executed. + + Whatever happens, the cwd of the spawned process will be the workspace that declares the script (which makes it possible to call commands cross-workspaces using the third syntax). + `,examples:[["Run the tests from the local workspace","$0 run test"],['Same thing, but without the "run" keyword',"$0 test"],["Inspect Webpack while running","$0 run --inspect-brk webpack"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a,locator:n}=await Qt.find(r,this.context.cwd);await o.restoreInstallState();let u=this.topLevel?o.topLevelWorkspace.anchoredLocator:n;if(!this.binariesOnly&&await hn.hasPackageScript(u,this.scriptName,{project:o}))return await hn.executePackageScript(u,this.scriptName,this.args,{project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});let A=await hn.getPackageAccessibleBinaries(u,{project:o});if(A.get(this.scriptName)){let h=[];return this.inspect&&(typeof this.inspect=="string"?h.push(`--inspect=${this.inspect}`):h.push("--inspect")),this.inspectBrk&&(typeof this.inspectBrk=="string"?h.push(`--inspect-brk=${this.inspectBrk}`):h.push("--inspect-brk")),this.require&&h.push(`--require=${this.require}`),await hn.executePackageAccessibleBinary(u,this.scriptName,this.args,{cwd:this.context.cwd,project:o,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,nodeArgs:h,packageAccessibleBinaries:A})}if(!this.topLevel&&!this.binariesOnly&&a&&this.scriptName.includes(":")){let E=(await Promise.all(o.workspaces.map(async w=>w.manifest.scripts.has(this.scriptName)?w:null))).filter(w=>w!==null);if(E.length===1)return await hn.executeWorkspaceScript(E[0],this.scriptName,this.args,{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})}if(this.topLevel)throw this.scriptName==="node-gyp"?new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}). This typically happens because some package depends on "node-gyp" to build itself, but didn't list it in their dependencies. To fix that, please run "yarn add node-gyp" into your top-level workspace. You also can open an issue on the repository of the specified package to suggest them to use an optional peer dependency.`):new it(`Couldn't find a script name "${this.scriptName}" in the top-level (used by ${G.prettyLocator(r,n)}).`);{if(this.scriptName==="global")throw new it("The 'yarn global' commands have been removed in 2.x - consider using 'yarn dlx' or a third-party plugin instead");let h=[this.scriptName].concat(this.args);for(let[E,w]of oE)for(let D of w)if(h.length>=D.length&&JSON.stringify(h.slice(0,D.length))===JSON.stringify(D))throw new it(`Couldn't find a script named "${this.scriptName}", but a matching command can be found in the ${E} plugin. You can install it with "yarn plugin import ${E}".`);throw new it(`Couldn't find a script named "${this.scriptName}".`)}}};Ke();Ke();Gt();var jE=class extends ut{constructor(){super(...arguments);this.descriptor=de.String();this.resolution=de.String()}static{this.paths=[["set","resolution"]]}static{this.usage=ot.Usage({description:"enforce a package resolution",details:'\n This command updates the resolution table so that `descriptor` is resolved by `resolution`.\n\n Note that by default this command only affect the current resolution table - meaning that this "manual override" will disappear if you remove the lockfile, or if the package disappear from the table. If you wish to make the enforced resolution persist whatever happens, edit the `resolutions` field in your top-level manifest.\n\n Note that no attempt is made at validating that `resolution` is a valid resolution entry for `descriptor`.\n ',examples:[["Force all instances of lodash@npm:^1.2.3 to resolve to 1.5.0","$0 set resolution lodash@npm:^1.2.3 1.5.0"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(await o.restoreInstallState({restoreResolutions:!1}),!a)throw new or(o.cwd,this.context.cwd);let u=G.parseDescriptor(this.descriptor,!0),A=G.makeDescriptor(u,this.resolution);return o.storedDescriptors.set(u.descriptorHash,u),o.storedDescriptors.set(A.descriptorHash,A),o.resolutionAliases.set(u.descriptorHash,A.descriptorHash),await o.installWithNewReport({stdout:this.context.stdout},{cache:n})}};Ke();Pt();Gt();var Vde=et(Xo()),GE=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Unlink all workspaces belonging to the target project from the current one"});this.leadingArguments=de.Rest()}static{this.paths=[["unlink"]]}static{this.usage=ot.Usage({description:"disconnect the local project from another one",details:` + This command will remove any resolutions in the project-level manifest that would have been added via a yarn link with similar arguments. + `,examples:[["Unregister a remote workspace in the current project","$0 unlink ~/ts-loader"],["Unregister all workspaces from a remote project in the current project","$0 unlink ~/jest --all"],["Unregister all previously linked workspaces","$0 unlink --all"],["Unregister all workspaces matching a glob","$0 unlink '@babel/*' 'pkg-{a,b}'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);let u=o.topLevelWorkspace,A=new Set;if(this.leadingArguments.length===0&&this.all)for(let{pattern:p,reference:h}of u.manifest.resolutions)h.startsWith("portal:")&&A.add(p.descriptor.fullName);if(this.leadingArguments.length>0)for(let p of this.leadingArguments){let h=K.resolve(this.context.cwd,Ae.toPortablePath(p));if(qe.isPathLike(p)){let E=await ze.find(h,this.context.plugins,{useRc:!1,strict:!1}),{project:w,workspace:D}=await Qt.find(E,h);if(!D)throw new or(w.cwd,h);if(this.all){for(let x of w.workspaces)x.manifest.name&&A.add(G.stringifyIdent(x.anchoredLocator));if(A.size===0)throw new it("No workspace found to be unlinked in the target project")}else{if(!D.manifest.name)throw new it("The target workspace doesn't have a name and thus cannot be unlinked");A.add(G.stringifyIdent(D.anchoredLocator))}}else{let E=[...u.manifest.resolutions.map(({pattern:w})=>w.descriptor.fullName)];for(let w of(0,Vde.default)(E,p))A.add(w)}}return u.manifest.resolutions=u.manifest.resolutions.filter(({pattern:p})=>!A.has(p.descriptor.fullName)),await o.installWithNewReport({stdout:this.context.stdout,quiet:this.context.quiet},{cache:n})}};Ke();Ke();Ke();Gt();var Jde=et(Q2()),SH=et(Xo());il();var WE=class extends ut{constructor(){super(...arguments);this.interactive=de.Boolean("-i,--interactive",{description:"Offer various choices, depending on the detected upgrade paths"});this.fixed=de.Boolean("-F,--fixed",!1,{description:"Store dependency tags as-is instead of resolving them"});this.exact=de.Boolean("-E,--exact",!1,{description:"Don't use any semver modifier on the resolved range"});this.tilde=de.Boolean("-T,--tilde",!1,{description:"Use the `~` semver modifier on the resolved range"});this.caret=de.Boolean("-C,--caret",!1,{description:"Use the `^` semver modifier on the resolved range"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Resolve again ALL resolutions for those packages"});this.mode=de.String("--mode",{description:"Change what artifacts installs generate",validator:js(yl)});this.patterns=de.Rest()}static{this.paths=[["up"]]}static{this.usage=ot.Usage({description:"upgrade dependencies across the project",details:"\n This command upgrades the packages matching the list of specified patterns to their latest available version across the whole project (regardless of whether they're part of `dependencies` or `devDependencies` - `peerDependencies` won't be affected). This is a project-wide command: all workspaces will be upgraded in the process.\n\n If `-R,--recursive` is set the command will change behavior and no other switch will be allowed. When operating under this mode `yarn up` will force all ranges matching the selected packages to be resolved again (often to the highest available versions) before being stored in the lockfile. It however won't touch your manifests anymore, so depending on your needs you might want to run both `yarn up` and `yarn up -R` to cover all bases.\n\n If `-i,--interactive` is set (or if the `preferInteractive` settings is toggled on) the command will offer various choices, depending on the detected upgrade paths. Some upgrades require this flag in order to resolve ambiguities.\n\n The, `-C,--caret`, `-E,--exact` and `-T,--tilde` options have the same meaning as in the `add` command (they change the modifier used when the range is missing or a tag, and are ignored when the range is explicitly set).\n\n If the `--mode=` option is set, Yarn will change which artifacts are generated. The modes currently supported are:\n\n - `skip-build` will not run the build scripts at all. Note that this is different from setting `enableScripts` to false because the latter will disable build scripts, and thus affect the content of the artifacts generated on disk, whereas the former will just disable the build step - but not the scripts themselves, which just won't run.\n\n - `update-lockfile` will skip the link step altogether, and only fetch packages that are missing from the lockfile (or that have no associated checksums). This mode is typically used by tools like Renovate or Dependabot to keep a lockfile up-to-date without incurring the full install cost.\n\n Generally you can see `yarn up` as a counterpart to what was `yarn upgrade --latest` in Yarn 1 (ie it ignores the ranges previously listed in your manifests), but unlike `yarn upgrade` which only upgraded dependencies in the current workspace, `yarn up` will upgrade all workspaces at the same time.\n\n This command accepts glob patterns as arguments (if valid Descriptors and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n **Note:** The ranges have to be static, only the package scopes and names can contain glob patterns.\n ",examples:[["Upgrade all instances of lodash to the latest release","$0 up lodash"],["Upgrade all instances of lodash to the latest release, but ask confirmation for each","$0 up lodash -i"],["Upgrade all instances of lodash to 1.2.3","$0 up lodash@1.2.3"],["Upgrade all instances of packages with the `@babel` scope to the latest release","$0 up '@babel/*'"],["Upgrade all instances of packages containing the word `jest` to the latest release","$0 up '*jest*'"],["Upgrade all instances of packages with the `@babel` scope to 7.0.0","$0 up '@babel/*@7.0.0'"]]})}static{this.schema=[Pw("recursive",Ku.Forbids,["interactive","exact","tilde","caret"],{ignore:[void 0,!1]})]}async execute(){return this.recursive?await this.executeUpRecursive():await this.executeUpClassic()}async executeUpRecursive(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=[...o.storedDescriptors.values()],A=u.map(E=>G.stringifyIdent(E)),p=new Set;for(let E of this.patterns){if(G.parseDescriptor(E).range!=="unknown")throw new it("Ranges aren't allowed when using --recursive");for(let w of(0,SH.default)(A,E)){let D=G.parseIdent(w);p.add(D.identHash)}}let h=u.filter(E=>p.has(E.identHash));for(let E of h)o.storedDescriptors.delete(E.descriptorHash),o.storedResolutions.delete(E.descriptorHash);return await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}async executeUpClassic(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=this.fixed,A=r.isInteractive({interactive:this.interactive,stdout:this.context.stdout}),p=R2(this,o),h=A?["keep","reuse","project","latest"]:["project","latest"],E=[],w=[];for(let L of this.patterns){let U=!1,J=G.parseDescriptor(L),te=G.stringifyIdent(J);for(let le of o.workspaces)for(let ce of["dependencies","devDependencies"]){let Ie=[...le.manifest.getForScope(ce).values()].map(De=>G.stringifyIdent(De)),he=te==="*"?Ie:(0,SH.default)(Ie,te);for(let De of he){let Ee=G.parseIdent(De),g=le.manifest[ce].get(Ee.identHash);if(typeof g>"u")throw new Error("Assertion failed: Expected the descriptor to be registered");let me=G.makeDescriptor(Ee,J.range);E.push(Promise.resolve().then(async()=>[le,ce,g,await T2(me,{project:o,workspace:le,cache:n,target:ce,fixed:u,modifier:p,strategies:h})])),U=!0}}U||w.push(L)}if(w.length>1)throw new it(`Patterns ${pe.prettyList(r,w,pe.Type.CODE)} don't match any packages referenced by any workspace`);if(w.length>0)throw new it(`Pattern ${pe.prettyList(r,w,pe.Type.CODE)} doesn't match any packages referenced by any workspace`);let D=await Promise.all(E),x=await pA.start({configuration:r,stdout:this.context.stdout,suggestInstall:!1},async L=>{for(let[,,U,{suggestions:J,rejections:te}]of D){let le=J.filter(ce=>ce.descriptor!==null);if(le.length===0){let[ce]=te;if(typeof ce>"u")throw new Error("Assertion failed: Expected an error to have been set");let ue=this.cli.error(ce);o.configuration.get("enableNetwork")?L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range + +${ue}`):L.reportError(27,`${G.prettyDescriptor(r,U)} can't be resolved to a satisfying range (note: network resolution has been disabled) + +${ue}`)}else le.length>1&&!A&&L.reportError(27,`${G.prettyDescriptor(r,U)} has multiple possible upgrade strategies; use -i to disambiguate manually`)}});if(x.hasErrors())return x.exitCode();let C=!1,T=[];for(let[L,U,,{suggestions:J}]of D){let te,le=J.filter(he=>he.descriptor!==null),ce=le[0].descriptor,ue=le.every(he=>G.areDescriptorsEqual(he.descriptor,ce));le.length===1||ue?te=ce:(C=!0,{answer:te}=await(0,Jde.prompt)({type:"select",name:"answer",message:`Which range do you want to use in ${G.prettyWorkspace(r,L)} \u276F ${U}?`,choices:J.map(({descriptor:he,name:De,reason:Ee})=>he?{name:De,hint:Ee,descriptor:he}:{name:De,hint:Ee,disabled:!0}),onCancel:()=>process.exit(130),result(he){return this.find(he,"descriptor")},stdin:this.context.stdin,stdout:this.context.stdout}));let Ie=L.manifest[U].get(te.identHash);if(typeof Ie>"u")throw new Error("Assertion failed: This descriptor should have a matching entry");if(Ie.descriptorHash!==te.descriptorHash)L.manifest[U].set(te.identHash,te),T.push([L,U,Ie,te]);else{let he=r.makeResolver(),De={project:o,resolver:he},Ee=r.normalizeDependency(Ie),g=he.bindDescriptor(Ee,L.anchoredLocator,De);o.forgetResolution(g)}}return await r.triggerMultipleHooks(L=>L.afterWorkspaceDependencyReplacement,T),C&&this.context.stdout.write(` +`),await o.installWithNewReport({stdout:this.context.stdout},{cache:n,mode:this.mode})}};Ke();Ke();Ke();Gt();var YE=class extends ut{constructor(){super(...arguments);this.recursive=de.Boolean("-R,--recursive",!1,{description:"List, for each workspace, what are all the paths that lead to the dependency"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.peers=de.Boolean("--peers",!1,{description:"Also print the peer dependencies that match the specified name"});this.package=de.String()}static{this.paths=[["why"]]}static{this.usage=ot.Usage({description:"display the reason why a package is needed",details:` + This command prints the exact reasons why a package appears in the dependency tree. + + If \`-R,--recursive\` is set, the listing will go in depth and will list, for each workspaces, what are all the paths that lead to the dependency. Note that the display is somewhat optimized in that it will not print the package listing twice for a single package, so if you see a leaf named "Foo" when looking for "Bar", it means that "Foo" already got printed higher in the tree. + `,examples:[["Explain why lodash is used in your project","$0 why lodash"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=G.parseIdent(this.package).identHash,u=this.recursive?Z0t(o,n,{configuration:r,peers:this.peers}):X0t(o,n,{configuration:r,peers:this.peers});As.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1})}};function X0t(t,e,{configuration:r,peers:o}){let a=qe.sortMap(t.storedPackages.values(),A=>G.stringifyLocator(A)),n={},u={children:n};for(let A of a){let p={};for(let E of A.dependencies.values()){if(!o&&A.peerDependencies.has(E.identHash))continue;let w=t.storedResolutions.get(E.descriptorHash);if(!w)throw new Error("Assertion failed: The resolution should have been registered");let D=t.storedPackages.get(w);if(!D)throw new Error("Assertion failed: The package should have been registered");if(D.identHash!==e)continue;{let C=G.stringifyLocator(A);n[C]={value:[A,pe.Type.LOCATOR],children:p}}let x=G.stringifyLocator(D);p[x]={value:[{descriptor:E,locator:D},pe.Type.DEPENDENT]}}}return u}function Z0t(t,e,{configuration:r,peers:o}){let a=qe.sortMap(t.workspaces,D=>G.stringifyLocator(D.anchoredLocator)),n=new Set,u=new Set,A=D=>{if(n.has(D.locatorHash))return u.has(D.locatorHash);if(n.add(D.locatorHash),D.identHash===e)return u.add(D.locatorHash),!0;let x=!1;D.identHash===e&&(x=!0);for(let C of D.dependencies.values()){if(!o&&D.peerDependencies.has(C.identHash))continue;let T=t.storedResolutions.get(C.descriptorHash);if(!T)throw new Error("Assertion failed: The resolution should have been registered");let L=t.storedPackages.get(T);if(!L)throw new Error("Assertion failed: The package should have been registered");A(L)&&(x=!0)}return x&&u.add(D.locatorHash),x};for(let D of a)A(D.anchoredPackage);let p=new Set,h={},E={children:h},w=(D,x,C)=>{if(!u.has(D.locatorHash))return;let T=C!==null?pe.tuple(pe.Type.DEPENDENT,{locator:D,descriptor:C}):pe.tuple(pe.Type.LOCATOR,D),L={},U={value:T,children:L},J=G.stringifyLocator(D);if(x[J]=U,!(C!==null&&t.tryWorkspaceByLocator(D))&&!p.has(D.locatorHash)){p.add(D.locatorHash);for(let te of D.dependencies.values()){if(!o&&D.peerDependencies.has(te.identHash))continue;let le=t.storedResolutions.get(te.descriptorHash);if(!le)throw new Error("Assertion failed: The resolution should have been registered");let ce=t.storedPackages.get(le);if(!ce)throw new Error("Assertion failed: The package should have been registered");w(ce,L,te)}}};for(let D of a)w(D.anchoredPackage,h,null);return E}Ke();var OH={};Kt(OH,{GitFetcher:()=>_2,GitResolver:()=>H2,default:()=>Egt,gitUtils:()=>ra});Ke();Pt();var ra={};Kt(ra,{TreeishProtocols:()=>U2,clone:()=>LH,fetchBase:()=>mme,fetchChangedFiles:()=>yme,fetchChangedWorkspaces:()=>mgt,fetchRoot:()=>dme,isGitUrl:()=>JE,lsRemote:()=>gme,normalizeLocator:()=>dgt,normalizeRepoUrl:()=>KE,resolveUrl:()=>NH,splitRepoUrl:()=>Rh,validateRepoUrl:()=>TH});Ke();Pt();Gt();var fme=et(cme()),pme=et(t3()),VE=et(ve("querystring")),FH=et(ni());function QH(t,e,r){let o=t.indexOf(r);return t.lastIndexOf(e,o>-1?o:1/0)}function ume(t){try{return new URL(t)}catch{return}}function hgt(t){let e=QH(t,"@","#"),r=QH(t,":","#");return r>e&&(t=`${t.slice(0,r)}/${t.slice(r+1)}`),QH(t,":","#")===-1&&t.indexOf("//")===-1&&(t=`ssh://${t}`),t}function Ame(t){return ume(t)||ume(hgt(t))}function KE(t,{git:e=!1}={}){if(t=t.replace(/^git\+https:/,"https:"),t=t.replace(/^(?:github:|https:\/\/github\.com\/|git:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)(?:\.git)?(#.*)?$/,"https://github.com/$1/$2.git$3"),t=t.replace(/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/,"https://github.com/$1/$2.git#$3"),e){let r=Ame(t);r&&(t=r.href),t=t.replace(/^git\+([^:]+):/,"$1:")}return t}function hme(){return{...process.env,GIT_SSH_COMMAND:process.env.GIT_SSH_COMMAND||`${process.env.GIT_SSH||"ssh"} -o BatchMode=yes`}}var ggt=[/^ssh:/,/^git(?:\+[^:]+)?:/,/^(?:git\+)?https?:[^#]+\/[^#]+(?:\.git)(?:#.*)?$/,/^git@[^#]+\/[^#]+\.git(?:#.*)?$/,/^(?:github:|https:\/\/github\.com\/)?(?!\.{1,2}\/)([a-zA-Z._0-9-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z._0-9-]+?)(?:\.git)?(?:#.*)?$/,/^https:\/\/github\.com\/(?!\.{1,2}\/)([a-zA-Z0-9._-]+)\/(?!\.{1,2}(?:#|$))([a-zA-Z0-9._-]+?)\/tarball\/(.+)?$/],U2=(a=>(a.Commit="commit",a.Head="head",a.Tag="tag",a.Semver="semver",a))(U2||{});function JE(t){return t?ggt.some(e=>!!t.match(e)):!1}function Rh(t){t=KE(t);let e=t.indexOf("#");if(e===-1)return{repo:t,treeish:{protocol:"head",request:"HEAD"},extra:{}};let r=t.slice(0,e),o=t.slice(e+1);if(o.match(/^[a-z]+=/)){let a=VE.default.parse(o);for(let[p,h]of Object.entries(a))if(typeof h!="string")throw new Error(`Assertion failed: The ${p} parameter must be a literal string`);let n=Object.values(U2).find(p=>Object.hasOwn(a,p)),[u,A]=typeof n<"u"?[n,a[n]]:["head","HEAD"];for(let p of Object.values(U2))delete a[p];return{repo:r,treeish:{protocol:u,request:A},extra:a}}else{let a=o.indexOf(":"),[n,u]=a===-1?[null,o]:[o.slice(0,a),o.slice(a+1)];return{repo:r,treeish:{protocol:n,request:u},extra:{}}}}function dgt(t){return G.makeLocator(t,KE(t.reference))}function TH(t,{configuration:e}){let r=KE(t,{git:!0});if(!on.getNetworkSettings(`https://${(0,fme.default)(r).resource}`,{configuration:e}).enableNetwork)throw new Jt(80,`Request to '${r}' has been blocked because of your configuration settings`);return r}async function gme(t,e){let r=TH(t,{configuration:e}),o=await RH("listing refs",["ls-remote",r],{cwd:e.startingCwd,env:hme()},{configuration:e,normalizedRepoUrl:r}),a=new Map,n=/^([a-f0-9]{40})\t([^\n]+)/gm,u;for(;(u=n.exec(o.stdout))!==null;)a.set(u[2],u[1]);return a}async function NH(t,e){let{repo:r,treeish:{protocol:o,request:a},extra:n}=Rh(t),u=await gme(r,e),A=(h,E)=>{switch(h){case"commit":{if(!E.match(/^[a-f0-9]{40}$/))throw new Error("Invalid commit hash");return VE.default.stringify({...n,commit:E})}case"head":{let w=u.get(E==="HEAD"?E:`refs/heads/${E}`);if(typeof w>"u")throw new Error(`Unknown head ("${E}")`);return VE.default.stringify({...n,commit:w})}case"tag":{let w=u.get(`refs/tags/${E}`);if(typeof w>"u")throw new Error(`Unknown tag ("${E}")`);return VE.default.stringify({...n,commit:w})}case"semver":{let w=Ur.validRange(E);if(!w)throw new Error(`Invalid range ("${E}")`);let D=new Map([...u.entries()].filter(([C])=>C.startsWith("refs/tags/")).map(([C,T])=>[FH.default.parse(C.slice(10)),T]).filter(C=>C[0]!==null)),x=FH.default.maxSatisfying([...D.keys()],w);if(x===null)throw new Error(`No matching range ("${E}")`);return VE.default.stringify({...n,commit:D.get(x)})}case null:{let w;if((w=p("commit",E))!==null||(w=p("tag",E))!==null||(w=p("head",E))!==null)return w;throw E.match(/^[a-f0-9]+$/)?new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head - if a commit, use the 40-characters commit hash`):new Error(`Couldn't resolve "${E}" as either a commit, a tag, or a head`)}default:throw new Error(`Invalid Git resolution protocol ("${h}")`)}},p=(h,E)=>{try{return A(h,E)}catch{return null}};return KE(`${r}#${A(o,a)}`)}async function LH(t,e){return await e.getLimit("cloneConcurrency")(async()=>{let{repo:r,treeish:{protocol:o,request:a}}=Rh(t);if(o!=="commit")throw new Error("Invalid treeish protocol when cloning");let n=TH(r,{configuration:e}),u=await ae.mktempPromise(),A={cwd:u,env:hme()};return await RH("cloning the repository",["clone","-c core.autocrlf=false",n,Ae.fromPortablePath(u)],A,{configuration:e,normalizedRepoUrl:n}),await RH("switching branch",["checkout",`${a}`],A,{configuration:e,normalizedRepoUrl:n}),u})}async function dme(t){let e,r=t;do{if(e=r,await ae.existsPromise(K.join(e,".git")))return e;r=K.dirname(e)}while(r!==e);return null}async function mme(t,{baseRefs:e}){if(e.length===0)throw new it("Can't run this command with zero base refs specified.");let r=[];for(let A of e){let{code:p}=await Hr.execvp("git",["merge-base",A,"HEAD"],{cwd:t});p===0&&r.push(A)}if(r.length===0)throw new it(`No ancestor could be found between any of HEAD and ${e.join(", ")}`);let{stdout:o}=await Hr.execvp("git",["merge-base","HEAD",...r],{cwd:t,strict:!0}),a=o.trim(),{stdout:n}=await Hr.execvp("git",["show","--quiet","--pretty=format:%s",a],{cwd:t,strict:!0}),u=n.trim();return{hash:a,title:u}}async function yme(t,{base:e,project:r}){let o=qe.buildIgnorePattern(r.configuration.get("changesetIgnorePatterns")),{stdout:a}=await Hr.execvp("git",["diff","--name-only",`${e}`],{cwd:t,strict:!0}),n=a.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,Ae.toPortablePath(h))),{stdout:u}=await Hr.execvp("git",["ls-files","--others","--exclude-standard"],{cwd:t,strict:!0}),A=u.split(/\r\n|\r|\n/).filter(h=>h.length>0).map(h=>K.resolve(t,Ae.toPortablePath(h))),p=[...new Set([...n,...A].sort())];return o?p.filter(h=>!K.relative(r.cwd,h).match(o)):p}async function mgt({ref:t,project:e}){if(e.configuration.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let r=[K.resolve(e.cwd,mr.lockfile),K.resolve(e.cwd,e.configuration.get("cacheFolder")),K.resolve(e.cwd,e.configuration.get("installStatePath")),K.resolve(e.cwd,e.configuration.get("virtualFolder"))];await e.configuration.triggerHook(u=>u.populateYarnPaths,e,u=>{u!=null&&r.push(u)});let o=await dme(e.configuration.projectCwd);if(o==null)throw new it("This command can only be run on Git repositories");let a=await mme(o,{baseRefs:typeof t=="string"?[t]:e.configuration.get("changesetBaseRefs")}),n=await yme(o,{base:a.hash,project:e});return new Set(qe.mapAndFilter(n,u=>{let A=e.tryWorkspaceByFilePath(u);return A===null?qe.mapAndFilter.skip:r.some(p=>u.startsWith(p))?qe.mapAndFilter.skip:A}))}async function RH(t,e,r,{configuration:o,normalizedRepoUrl:a}){try{return await Hr.execvp("git",e,{...r,strict:!0})}catch(n){if(!(n instanceof Hr.ExecError))throw n;let u=n.reportExtra,A=n.stderr.toString();throw new Jt(1,`Failed ${t}`,p=>{p.reportError(1,` ${pe.prettyField(o,{label:"Repository URL",value:pe.tuple(pe.Type.URL,a)})}`);for(let h of A.matchAll(/^(.+?): (.*)$/gm)){let[,E,w]=h;E=E.toLowerCase();let D=E==="error"?"Error":`${(0,pme.default)(E)} Error`;p.reportError(1,` ${pe.prettyField(o,{label:D,value:pe.tuple(pe.Type.NO_HINT,w)})}`)}u?.(p)})}}var _2=class{supports(e,r){return JE(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,a=new Map(r.checksums);a.set(e.locatorHash,o);let n={...r,checksums:a},u=await this.downloadHosted(e,n);if(u!==null)return u;let[A,p,h]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote repository`),loader:()=>this.cloneFromRemote(e,n),...r.cacheOptions});return{packageFs:A,releaseFs:p,prefixPath:G.getIdentVendorPath(e),checksum:h}}async downloadHosted(e,r){return r.project.configuration.reduceHook(o=>o.fetchHostedRepository,null,e,r)}async cloneFromRemote(e,r){let o=Rh(e.reference),a=await LH(e.reference,r.project.configuration),n=K.resolve(a,o.extra.cwd??Bt.dot),u=K.join(n,"package.tgz");await hn.prepareExternalProject(n,u,{configuration:r.project.configuration,report:r.report,workspace:o.extra.workspace,locator:e});let A=await ae.readFilePromise(u);return await qe.releaseAfterUseAsync(async()=>await $i.convertToZip(A,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1}))}};Ke();Ke();var H2=class{supportsDescriptor(e,r){return JE(e.range)}supportsLocator(e,r){return JE(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=await NH(e.range,o.project.configuration);return[G.makeLocator(e,a)]}async getSatisfying(e,r,o,a){let n=Rh(e.range);return{locators:o.filter(A=>{if(A.identHash!==e.identHash)return!1;let p=Rh(A.reference);return!(n.repo!==p.repo||n.treeish.protocol==="commit"&&n.treeish.request!==p.treeish.request)}),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ygt={configuration:{changesetBaseRefs:{description:"The base git refs that the current HEAD is compared against when detecting changes. Supports git branches, tags, and commits.",type:"STRING",isArray:!0,isNullable:!1,default:["master","origin/master","upstream/master","main","origin/main","upstream/main"]},changesetIgnorePatterns:{description:"Array of glob patterns; files matching them will be ignored when fetching the changed files",type:"STRING",default:[],isArray:!0},cloneConcurrency:{description:"Maximal number of concurrent clones",type:"NUMBER",default:2}},fetchers:[_2],resolvers:[H2]};var Egt=ygt;Gt();var zE=class extends ut{constructor(){super(...arguments);this.since=de.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Find packages via dependencies/devDependencies instead of using the workspaces field"});this.noPrivate=de.Boolean("--no-private",{description:"Exclude workspaces that have the private field set to true"});this.verbose=de.Boolean("-v,--verbose",!1,{description:"Also return the cross-dependencies between workspaces"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["workspaces","list"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"list all available workspaces",details:"\n This command will print the list of all workspaces in the project.\n\n - If `--since` is set, Yarn will only list workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `--no-private` is set, Yarn will not list any workspaces that have the `private` field set to `true`.\n\n - If both the `-v,--verbose` and `--json` options are set, Yarn will also return the cross-dependencies between each workspaces (useful when you wish to automatically generate Buck / Bazel rules).\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);return(await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async n=>{let u=this.since?await ra.fetchChangedWorkspaces({ref:this.since,project:o}):o.workspaces,A=new Set(u);if(this.recursive)for(let p of[...u].map(h=>h.getRecursiveWorkspaceDependents()))for(let h of p)A.add(h);for(let p of A){let{manifest:h}=p;if(h.private&&this.noPrivate)continue;let E;if(this.verbose){let w=new Set,D=new Set;for(let x of _t.hardDependencies)for(let[C,T]of h.getForScope(x)){let L=o.tryWorkspaceByDescriptor(T);L===null?o.workspacesByIdent.has(C)&&D.add(T):w.add(L)}E={workspaceDependencies:Array.from(w).map(x=>x.relativeCwd),mismatchedWorkspaceDependencies:Array.from(D).map(x=>G.stringifyDescriptor(x))}}n.reportInfo(null,`${p.relativeCwd}`),n.reportJson({location:p.relativeCwd,name:h.name?G.stringifyIdent(h.name):null,...E})}})).exitCode()}};Ke();Ke();Gt();var XE=class extends ut{constructor(){super(...arguments);this.workspaceName=de.String();this.commandName=de.String();this.args=de.Proxy()}static{this.paths=[["workspace"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command within the specified workspace",details:` + This command will run a given sub-command on a single workspace. + `,examples:[["Add a package to a single workspace","yarn workspace components add -D react"],["Run build script on a single workspace","yarn workspace components run build"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=o.workspaces,u=new Map(n.map(p=>[G.stringifyIdent(p.anchoredLocator),p])),A=u.get(this.workspaceName);if(A===void 0){let p=Array.from(u.keys()).sort();throw new it(`Workspace '${this.workspaceName}' not found. Did you mean any of the following: + - ${p.join(` + - `)}?`)}return this.cli.run([this.commandName,...this.args],{cwd:A.cwd})}};var Cgt={configuration:{enableImmutableInstalls:{description:"If true (the default on CI), prevents the install command from modifying the lockfile",type:"BOOLEAN",default:Eme.isCI},defaultSemverRangePrefix:{description:"The default save prefix: '^', '~' or ''",type:"STRING",values:["^","~",""],default:"^"},preferReuse:{description:"If true, `yarn add` will attempt to reuse the most common dependency range in other workspaces.",type:"BOOLEAN",default:!1}},commands:[hE,gE,dE,mE,jE,TE,PE,zE,CE,IE,wE,BE,fE,pE,yE,EE,vE,DE,SE,bE,xE,kE,GE,QE,FE,LE,NE,OE,RE,ME,UE,_E,HE,qE,WE,YE,XE]},Igt=Cgt;var jH={};Kt(jH,{default:()=>Bgt});Ke();var kt={optional:!0},UH=[["@tailwindcss/aspect-ratio@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@tailwindcss/line-clamp@<0.2.1",{peerDependencies:{tailwindcss:"^2.0.2"}}],["@fullhuman/postcss-purgecss@3.1.3 || 3.1.3-alpha.0",{peerDependencies:{postcss:"^8.0.0"}}],["@samverschueren/stream-to-observable@<0.3.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["any-observable@<0.5.1",{peerDependenciesMeta:{rxjs:kt,zenObservable:kt}}],["@pm2/agent@<1.0.4",{dependencies:{debug:"*"}}],["debug@<4.2.0",{peerDependenciesMeta:{"supports-color":kt}}],["got@<11",{dependencies:{"@types/responselike":"^1.0.0","@types/keyv":"^3.1.1"}}],["cacheable-lookup@<4.1.2",{dependencies:{"@types/keyv":"^3.1.1"}}],["http-link-dataloader@*",{peerDependencies:{graphql:"^0.13.1 || ^14.0.0"}}],["typescript-language-server@*",{dependencies:{"vscode-jsonrpc":"^5.0.1","vscode-languageserver-protocol":"^3.15.0"}}],["postcss-syntax@*",{peerDependenciesMeta:{"postcss-html":kt,"postcss-jsx":kt,"postcss-less":kt,"postcss-markdown":kt,"postcss-scss":kt}}],["jss-plugin-rule-value-function@<=10.1.1",{dependencies:{"tiny-warning":"^1.0.2"}}],["ink-select-input@<4.1.0",{peerDependencies:{react:"^16.8.2"}}],["license-webpack-plugin@<2.3.18",{peerDependenciesMeta:{webpack:kt}}],["snowpack@>=3.3.0",{dependencies:{"node-gyp":"^7.1.0"}}],["promise-inflight@*",{peerDependenciesMeta:{bluebird:kt}}],["reactcss@*",{peerDependencies:{react:"*"}}],["react-color@<=2.19.0",{peerDependencies:{react:"*"}}],["gatsby-plugin-i18n@*",{dependencies:{ramda:"^0.24.1"}}],["useragent@^2.0.0",{dependencies:{request:"^2.88.0",yamlparser:"0.0.x",semver:"5.5.x"}}],["@apollographql/apollo-tools@<=0.5.2",{peerDependencies:{graphql:"^14.2.1 || ^15.0.0"}}],["material-table@^2.0.0",{dependencies:{"@babel/runtime":"^7.11.2"}}],["@babel/parser@*",{dependencies:{"@babel/types":"^7.8.3"}}],["fork-ts-checker-webpack-plugin@<=6.3.4",{peerDependencies:{eslint:">= 6",typescript:">= 2.7",webpack:">= 4","vue-template-compiler":"*"},peerDependenciesMeta:{eslint:kt,"vue-template-compiler":kt}}],["rc-animate@<=3.1.1",{peerDependencies:{react:">=16.9.0","react-dom":">=16.9.0"}}],["react-bootstrap-table2-paginator@*",{dependencies:{classnames:"^2.2.6"}}],["react-draggable@<=4.4.3",{peerDependencies:{react:">= 16.3.0","react-dom":">= 16.3.0"}}],["apollo-upload-client@<14",{peerDependencies:{graphql:"14 - 15"}}],["react-instantsearch-core@<=6.7.0",{peerDependencies:{algoliasearch:">= 3.1 < 5"}}],["react-instantsearch-dom@<=6.7.0",{dependencies:{"react-fast-compare":"^3.0.0"}}],["ws@<7.2.1",{peerDependencies:{bufferutil:"^4.0.1","utf-8-validate":"^5.0.2"},peerDependenciesMeta:{bufferutil:kt,"utf-8-validate":kt}}],["react-portal@<4.2.2",{peerDependencies:{"react-dom":"^15.0.0-0 || ^16.0.0-0 || ^17.0.0-0"}}],["react-scripts@<=4.0.1",{peerDependencies:{react:"*"}}],["testcafe@<=1.10.1",{dependencies:{"@babel/plugin-transform-for-of":"^7.12.1","@babel/runtime":"^7.12.5"}}],["testcafe-legacy-api@<=4.2.0",{dependencies:{"testcafe-hammerhead":"^17.0.1","read-file-relative":"^1.2.0"}}],["@google-cloud/firestore@<=4.9.3",{dependencies:{protobufjs:"^6.8.6"}}],["gatsby-source-apiserver@*",{dependencies:{"babel-polyfill":"^6.26.0"}}],["@webpack-cli/package-utils@<=1.0.1-alpha.4",{dependencies:{"cross-spawn":"^7.0.3"}}],["gatsby-remark-prismjs@<3.3.28",{dependencies:{lodash:"^4"}}],["gatsby-plugin-favicon@*",{peerDependencies:{webpack:"*"}}],["gatsby-plugin-sharp@<=4.6.0-next.3",{dependencies:{debug:"^4.3.1"}}],["gatsby-react-router-scroll@<=5.6.0-next.0",{dependencies:{"prop-types":"^15.7.2"}}],["@rebass/forms@*",{dependencies:{"@styled-system/should-forward-prop":"^5.0.0"},peerDependencies:{react:"^16.8.6"}}],["rebass@*",{peerDependencies:{react:"^16.8.6"}}],["@ant-design/react-slick@<=0.28.3",{peerDependencies:{react:">=16.0.0"}}],["mqtt@<4.2.7",{dependencies:{duplexify:"^4.1.1"}}],["vue-cli-plugin-vuetify@<=2.0.3",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt,"vuetify-loader":kt}}],["vue-cli-plugin-vuetify@<=2.0.4",{dependencies:{"null-loader":"^3.0.0"}}],["vue-cli-plugin-vuetify@>=2.4.3",{peerDependencies:{vue:"*"}}],["@vuetify/cli-plugin-utils@<=0.0.4",{dependencies:{semver:"^6.3.0"},peerDependenciesMeta:{"sass-loader":kt}}],["@vue/cli-plugin-typescript@<=5.0.0-alpha.0",{dependencies:{"babel-loader":"^8.1.0"}}],["@vue/cli-plugin-typescript@<=5.0.0-beta.0",{dependencies:{"@babel/core":"^7.12.16"},peerDependencies:{"vue-template-compiler":"^2.0.0"},peerDependenciesMeta:{"vue-template-compiler":kt}}],["cordova-ios@<=6.3.0",{dependencies:{underscore:"^1.9.2"}}],["cordova-lib@<=10.0.1",{dependencies:{underscore:"^1.9.2"}}],["git-node-fs@*",{peerDependencies:{"js-git":"^0.7.8"},peerDependenciesMeta:{"js-git":kt}}],["consolidate@<0.16.0",{peerDependencies:{mustache:"^3.0.0"},peerDependenciesMeta:{mustache:kt}}],["consolidate@<=0.16.0",{peerDependencies:{velocityjs:"^2.0.1",tinyliquid:"^0.2.34","liquid-node":"^3.0.1",jade:"^1.11.0","then-jade":"*",dust:"^0.3.0","dustjs-helpers":"^1.7.4","dustjs-linkedin":"^2.7.5",swig:"^1.4.2","swig-templates":"^2.0.3","razor-tmpl":"^1.3.1",atpl:">=0.7.6",liquor:"^0.0.5",twig:"^1.15.2",ejs:"^3.1.5",eco:"^1.1.0-rc-3",jazz:"^0.0.18",jqtpl:"~1.1.0",hamljs:"^0.6.2",hamlet:"^0.3.3",whiskers:"^0.4.0","haml-coffee":"^1.14.1","hogan.js":"^3.0.2",templayed:">=0.2.3",handlebars:"^4.7.6",underscore:"^1.11.0",lodash:"^4.17.20",pug:"^3.0.0","then-pug":"*",qejs:"^3.0.5",walrus:"^0.10.1",mustache:"^4.0.1",just:"^0.1.8",ect:"^0.5.9",mote:"^0.2.0",toffee:"^0.3.6",dot:"^1.1.3","bracket-template":"^1.1.5",ractive:"^1.3.12",nunjucks:"^3.2.2",htmling:"^0.0.8","babel-core":"^6.26.3",plates:"~0.4.11","react-dom":"^16.13.1",react:"^16.13.1","arc-templates":"^0.5.3",vash:"^0.13.0",slm:"^2.0.0",marko:"^3.14.4",teacup:"^2.0.0","coffee-script":"^1.12.7",squirrelly:"^5.1.0",twing:"^5.0.2"},peerDependenciesMeta:{velocityjs:kt,tinyliquid:kt,"liquid-node":kt,jade:kt,"then-jade":kt,dust:kt,"dustjs-helpers":kt,"dustjs-linkedin":kt,swig:kt,"swig-templates":kt,"razor-tmpl":kt,atpl:kt,liquor:kt,twig:kt,ejs:kt,eco:kt,jazz:kt,jqtpl:kt,hamljs:kt,hamlet:kt,whiskers:kt,"haml-coffee":kt,"hogan.js":kt,templayed:kt,handlebars:kt,underscore:kt,lodash:kt,pug:kt,"then-pug":kt,qejs:kt,walrus:kt,mustache:kt,just:kt,ect:kt,mote:kt,toffee:kt,dot:kt,"bracket-template":kt,ractive:kt,nunjucks:kt,htmling:kt,"babel-core":kt,plates:kt,"react-dom":kt,react:kt,"arc-templates":kt,vash:kt,slm:kt,marko:kt,teacup:kt,"coffee-script":kt,squirrelly:kt,twing:kt}}],["vue-loader@<=16.3.3",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",webpack:"^4.1.0 || ^5.0.0-0"},peerDependenciesMeta:{"@vue/compiler-sfc":kt}}],["vue-loader@^16.7.0",{peerDependencies:{"@vue/compiler-sfc":"^3.0.8",vue:"^3.2.13"},peerDependenciesMeta:{"@vue/compiler-sfc":kt,vue:kt}}],["scss-parser@<=1.0.5",{dependencies:{lodash:"^4.17.21"}}],["query-ast@<1.0.5",{dependencies:{lodash:"^4.17.21"}}],["redux-thunk@<=2.3.0",{peerDependencies:{redux:"^4.0.0"}}],["skypack@<=0.3.2",{dependencies:{tar:"^6.1.0"}}],["@npmcli/metavuln-calculator@<2.0.0",{dependencies:{"json-parse-even-better-errors":"^2.3.1"}}],["bin-links@<2.3.0",{dependencies:{"mkdirp-infer-owner":"^1.0.2"}}],["rollup-plugin-polyfill-node@<=0.8.0",{peerDependencies:{rollup:"^1.20.0 || ^2.0.0"}}],["snowpack@<3.8.6",{dependencies:{"magic-string":"^0.25.7"}}],["elm-webpack-loader@*",{dependencies:{temp:"^0.9.4"}}],["winston-transport@<=4.4.0",{dependencies:{logform:"^2.2.0"}}],["jest-vue-preprocessor@*",{dependencies:{"@babel/core":"7.8.7","@babel/template":"7.8.6"},peerDependencies:{pug:"^2.0.4"},peerDependenciesMeta:{pug:kt}}],["redux-persist@*",{peerDependencies:{react:">=16"},peerDependenciesMeta:{react:kt}}],["sodium@>=3",{dependencies:{"node-gyp":"^3.8.0"}}],["babel-plugin-graphql-tag@<=3.1.0",{peerDependencies:{graphql:"^14.0.0 || ^15.0.0"}}],["@playwright/test@<=1.14.1",{dependencies:{"jest-matcher-utils":"^26.4.2"}}],...["babel-plugin-remove-graphql-queries@<3.14.0-next.1","babel-preset-gatsby-package@<1.14.0-next.1","create-gatsby@<1.14.0-next.1","gatsby-admin@<0.24.0-next.1","gatsby-cli@<3.14.0-next.1","gatsby-core-utils@<2.14.0-next.1","gatsby-design-tokens@<3.14.0-next.1","gatsby-legacy-polyfills@<1.14.0-next.1","gatsby-plugin-benchmark-reporting@<1.14.0-next.1","gatsby-plugin-graphql-config@<0.23.0-next.1","gatsby-plugin-image@<1.14.0-next.1","gatsby-plugin-mdx@<2.14.0-next.1","gatsby-plugin-netlify-cms@<5.14.0-next.1","gatsby-plugin-no-sourcemaps@<3.14.0-next.1","gatsby-plugin-page-creator@<3.14.0-next.1","gatsby-plugin-preact@<5.14.0-next.1","gatsby-plugin-preload-fonts@<2.14.0-next.1","gatsby-plugin-schema-snapshot@<2.14.0-next.1","gatsby-plugin-styletron@<6.14.0-next.1","gatsby-plugin-subfont@<3.14.0-next.1","gatsby-plugin-utils@<1.14.0-next.1","gatsby-recipes@<0.25.0-next.1","gatsby-source-shopify@<5.6.0-next.1","gatsby-source-wikipedia@<3.14.0-next.1","gatsby-transformer-screenshot@<3.14.0-next.1","gatsby-worker@<0.5.0-next.1"].map(t=>[t,{dependencies:{"@babel/runtime":"^7.14.8"}}]),["gatsby-core-utils@<2.14.0-next.1",{dependencies:{got:"8.3.2"}}],["gatsby-plugin-gatsby-cloud@<=3.1.0-next.0",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["gatsby-plugin-gatsby-cloud@<=3.2.0-next.1",{peerDependencies:{webpack:"*"}}],["babel-plugin-remove-graphql-queries@<=3.14.0-next.1",{dependencies:{"gatsby-core-utils":"^2.8.0-next.1"}}],["gatsby-plugin-netlify@3.13.0-next.1",{dependencies:{"gatsby-core-utils":"^2.13.0-next.0"}}],["clipanion-v3-codemod@<=0.2.0",{peerDependencies:{jscodeshift:"^0.11.0"}}],["react-live@*",{peerDependencies:{"react-dom":"*",react:"*"}}],["webpack@<4.44.1",{peerDependenciesMeta:{"webpack-cli":kt,"webpack-command":kt}}],["webpack@<5.0.0-beta.23",{peerDependenciesMeta:{"webpack-cli":kt}}],["webpack-dev-server@<3.10.2",{peerDependenciesMeta:{"webpack-cli":kt}}],["@docusaurus/responsive-loader@<1.5.0",{peerDependenciesMeta:{sharp:kt,jimp:kt}}],["eslint-module-utils@*",{peerDependenciesMeta:{"eslint-import-resolver-node":kt,"eslint-import-resolver-typescript":kt,"eslint-import-resolver-webpack":kt,"@typescript-eslint/parser":kt}}],["eslint-plugin-import@*",{peerDependenciesMeta:{"@typescript-eslint/parser":kt}}],["critters-webpack-plugin@<3.0.2",{peerDependenciesMeta:{"html-webpack-plugin":kt}}],["terser@<=5.10.0",{dependencies:{acorn:"^8.5.0"}}],["babel-preset-react-app@10.0.x <10.0.2",{dependencies:{"@babel/plugin-proposal-private-property-in-object":"^7.16.7"}}],["eslint-config-react-app@*",{peerDependenciesMeta:{typescript:kt}}],["@vue/eslint-config-typescript@<11.0.0",{peerDependenciesMeta:{typescript:kt}}],["unplugin-vue2-script-setup@<0.9.1",{peerDependencies:{"@vue/composition-api":"^1.4.3","@vue/runtime-dom":"^3.2.26"}}],["@cypress/snapshot@*",{dependencies:{debug:"^3.2.7"}}],["auto-relay@<=0.14.0",{peerDependencies:{"reflect-metadata":"^0.1.13"}}],["vue-template-babel-compiler@<1.2.0",{peerDependencies:{"vue-template-compiler":"^2.6.0"}}],["@parcel/transformer-image@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["@parcel/transformer-js@<2.5.0",{peerDependencies:{"@parcel/core":"*"}}],["parcel@*",{peerDependenciesMeta:{"@parcel/core":kt}}],["react-scripts@*",{peerDependencies:{eslint:"*"}}],["focus-trap-react@^8.0.0",{dependencies:{tabbable:"^5.3.2"}}],["react-rnd@<10.3.7",{peerDependencies:{react:">=16.3.0","react-dom":">=16.3.0"}}],["connect-mongo@<5.0.0",{peerDependencies:{"express-session":"^1.17.1"}}],["vue-i18n@<9",{peerDependencies:{vue:"^2"}}],["vue-router@<4",{peerDependencies:{vue:"^2"}}],["unified@<10",{dependencies:{"@types/unist":"^2.0.0"}}],["react-github-btn@<=1.3.0",{peerDependencies:{react:">=16.3.0"}}],["react-dev-utils@*",{peerDependencies:{typescript:">=2.7",webpack:">=4"},peerDependenciesMeta:{typescript:kt}}],["@asyncapi/react-component@<=1.0.0-next.39",{peerDependencies:{react:">=16.8.0","react-dom":">=16.8.0"}}],["xo@*",{peerDependencies:{webpack:">=1.11.0"},peerDependenciesMeta:{webpack:kt}}],["babel-plugin-remove-graphql-queries@<=4.20.0-next.0",{dependencies:{"@babel/types":"^7.15.4"}}],["gatsby-plugin-page-creator@<=4.20.0-next.1",{dependencies:{"fs-extra":"^10.1.0"}}],["gatsby-plugin-utils@<=3.14.0-next.1",{dependencies:{fastq:"^1.13.0"},peerDependencies:{graphql:"^15.0.0"}}],["gatsby-plugin-mdx@<3.1.0-next.1",{dependencies:{mkdirp:"^1.0.4"}}],["gatsby-plugin-mdx@^2",{peerDependencies:{gatsby:"^3.0.0-next"}}],["fdir@<=5.2.0",{peerDependencies:{picomatch:"2.x"},peerDependenciesMeta:{picomatch:kt}}],["babel-plugin-transform-typescript-metadata@<=0.3.2",{peerDependencies:{"@babel/core":"^7","@babel/traverse":"^7"},peerDependenciesMeta:{"@babel/traverse":kt}}],["graphql-compose@>=9.0.10",{peerDependencies:{graphql:"^14.2.0 || ^15.0.0 || ^16.0.0"}}],["vite-plugin-vuetify@<=1.0.2",{peerDependencies:{vue:"^3.0.0"}}],["webpack-plugin-vuetify@<=2.0.1",{peerDependencies:{vue:"^3.2.6"}}],["eslint-import-resolver-vite@<2.0.1",{dependencies:{debug:"^4.3.4",resolve:"^1.22.8"}}],["notistack@^3.0.0",{dependencies:{csstype:"^3.0.10"}}]];var _H;function Cme(){return typeof _H>"u"&&(_H=ve("zlib").brotliDecompressSync(Buffer.from("G7weAByFTVk3Vs7UfHhq4yykgEM7pbW7TI43SG2S5tvGrwHBAzdz+s/npQ6tgEvobvxisrPIadkXeUAJotBn5bDZ5kAhcRqsIHe3F75Walet5hNalwgFDtxb0BiDUjiUQkjG0yW2hto9HPgiCkm316d6bC0kST72YN7D7rfkhCE9x4J0XwB0yavalxpUu2t9xszHrmtwalOxT7VslsxWcB1qpqZwERUra4psWhTV8BgwWeizurec82Caf1ABL11YMfbf8FJ9JBceZOkgmvrQPbC9DUldX/yMbmX06UQluCEjSwUoyO+EZPIjofr+/oAZUck2enraRD+oWLlnlYnj8xB+gwSo9lmmks4fXv574qSqcWA6z21uYkzMu3EWj+K23RxeQlLqiE35/rC8GcS4CGkKHKKq+zAIQwD9iRDNfiAqueLLpicFFrNsAI4zeTD/eO9MHcnRa5m8UT+M2+V+AkFST4BlKneiAQRSdST8KEAIyFlULt6wa9EBd0Ds28VmpaxquJdVt+nwdEs5xUskI13OVtFyY0UrQIRAlCuvvWivvlSKQfTO+2Q8OyUR1W5RvetaPz4jD27hdtwHFFA1Ptx6Ee/t2cY2rg2G46M1pNDRf2pWhvpy8pqMnuI3++4OF3+7OFIWXGjh+o7Nr2jNvbiYcQdQS1h903/jVFgOpA0yJ78z+x759bFA0rq+6aY5qPB4FzS3oYoLupDUhD9nDz6F6H7hpnlMf18KNKDu4IKjTWwrAnY6MFQw1W6ymOALHlFyCZmQhldg1MQHaMVVQTVgDC60TfaBqG++Y8PEoFhN/PBTZT175KNP/BlHDYGOOBmnBdzqJKplZ/ljiVG0ZBzfqeBRrrUkn6rA54462SgiliKoYVnbeptMdXNfAuaupIEi0bApF10TlgHfmEJAPUVidRVFyDupSem5po5vErPqWKhKbUIp0LozpYsIKK57dM/HKr+nguF+7924IIWMICkQ8JUigs9D+W+c4LnNoRtPPKNRUiCYmP+Jfo2lfKCKw8qpraEeWU3uiNRO6zcyKQoXPR5htmzzLznke7b4YbXW3I1lIRzmgG02Udb58U+7TpwyN7XymCgH+wuPDthZVQvRZuEP+SnLtMicz9m5zASWOBiAcLmkuFlTKuHspSIhCBD0yUPKcxu81A+4YD78rA2vtwsUEday9WNyrShyrl60rWmA+SmbYZkQOwFJWArxRYYc5jGhA5ikxYw1rx3ei4NmeX/lKiwpZ9Ln1tV2Ae7sArvxuVLbJjqJRjW1vFXAyHpvLG+8MJ6T2Ubx5M2KDa2SN6vuIGxJ9WQM9Mk3Q7aCNiZONXllhqq24DmoLbQfW2rYWsOgHWjtOmIQMyMKdiHZDjoyIq5+U700nZ6odJAoYXPQBvFNiQ78d5jaXliBqLTJEqUCwi+LiH2mx92EmNKDsJL74Z613+3lf20pxkV1+erOrjj8pW00vsPaahKUM+05ssd5uwM7K482KWEf3TCwlg/o3e5ngto7qSMz7YteIgCsF1UOcsLk7F7MxWbvrPMY473ew0G+noVL8EPbkmEMftMSeL6HFub/zy+2JQ==","base64")).toString()),_H}var HH;function Ime(){return typeof HH>"u"&&(HH=ve("zlib").brotliDecompressSync(Buffer.from("G8MSIIzURnVBnObTcvb3XE6v2S9Qgc2K801Oa5otNKEtK8BINZNcaQHy+9/vf/WXBimwutXC33P2DPc64pps5rz7NGGWaOKNSPL4Y2KRE8twut2lFOIN+OXPtRmPMRhMTILib2bEQx43az2I5d3YS8Roa5UZpF/ujHb3Djd3GDvYUfvFYSUQ39vb2cmifp/rgB4J/65JK3wRBTvMBoNBmn3mbXC63/gbBkW/2IRPri0O8bcsRBsmarF328pAln04nyJFkwUAvNu934supAqLtyerZZpJ8I8suJHhf/ocMV+scKwa8NOiDKIPXw6Ex/EEZD6TEGaW8N5zvNHYF10l6Lfooj7D5W2k3dgvQSbp2Wv8TGOayS978gxlOLVjTGXs66ozewbrjwElLtyrYNnWTfzzdEutgROUFPVMhnMoy8EjJLLlWwIEoySxliim9kYW30JUHiPVyjt0iAw/ZpPmCbUCltYPnq6ZNblIKhTNhqS/oqC9iya5sGKZTOVsTEg34n92uZTf2iPpcZih8rPW8CzA+adIGmyCPcKdLMsBLShd+zuEbTrqpwuh+DLmracZcjPC5Sdf5odDAhKpFuOsQS67RT+1VgWWygSv3YwxDnylc04/PYuaMeIzhBkLrvs7e/OUzRTF56MmfY6rI63QtEjEQzq637zQqJ39nNhu3NmoRRhW/086bHGBUtx0PE0j3aEGvkdh9WJC8y8j8mqqke9/dQ5la+Q3ba4RlhvTbnfQhPDDab3tUifkjKuOsp13mXEmO00Mu88F/M67R7LXfoFDFLNtgCSWjWX+3Jn1371pJTK9xPBiMJafvDjtFyAzu8rxeQ0TKMQXNPs5xxiBOd+BRJP8KP88XPtJIbZKh/cdW8KvBUkpqKpGoiIaA32c3/JnQr4efXt85mXvidOvn/eU3Pase1typLYBalJ14mCso9h79nuMOuCa/kZAOkJHmTjP5RM2WNoPasZUAnT1TAE/NH25hUxcQv6hQWR/m1PKk4ooXMcM4SR1iYU3fUohvqk4RY2hbmTVVIXv6TvqO+0doOjgeVFAcom+RlwJQmOVH7pr1Q9LoJT6n1DeQEB+NHygsATbIwTcOKZlJsY8G4+suX1uQLjUWwLjjs0mvSvZcLTpIGAekeR7GCgl8eo3ndAqEe2XCav4huliHjdbIPBsGJuPX7lrO9HX1UbXRH5opOe1x6JsOSgHZR+EaxuXVhpLLxm6jk1LJtZfHSc6BKPun3CpYYVMJGwEUyk8MTGG0XL5MfEwaXpnc9TKnBmlGn6nHiGREc3ysn47XIBDzA+YvFdjZzVIEDcKGpS6PbUJehFRjEne8D0lVU1XuRtlgszq6pTNlQ/3MzNOEgCWPyTct22V2mEi2krizn5VDo9B19/X2DB3hCGRMM7ONbtnAcIx/OWB1u5uPbW1gsH8irXxT/IzG0PoXWYjhbMsH3KTuoOl5o17PulcgvsfTSnKFM354GWI8luqZnrswWjiXy3G+Vbyo1KMopFmmvBwNELgaS8z8dNZchx/Cl/xjddxhMcyqtzFyONb2Zdu90NkI8pAeufe7YlXrp53v8Dj/l8vWeVspRKBGXScBBPI/HinSTGmLDOGGOCIyH0JFdOZx0gWsacNlQLJMIrBhqRxXxHF/5pseWwejlAAvZ3klZSDSYY8mkToaWejXhgNomeGtx1DTLEUFMRkgF5yFB22WYdJnaWN14r1YJj81hGi45+jrADS5nYRhCiSlCJJ1nL8pYX+HDSMhdTEWyRcgHVp/IsUIZYMfT+YYncUQPgcxNGCHfZ88vDdrcUuaGIl6zhAsiaq7R5dfqrqXH/JcBhfjT8D0azayIyEz75Nxp6YkcyDxlJq3EXnJUpqDohJJOysL1t1uNiHESlvsxPb5cpbW0+ICZqJmUZus1BMW0F5IVBODLIo2zHHjA0=","base64")).toString()),HH}var qH;function wme(){return typeof qH>"u"&&(qH=ve("zlib").brotliDecompressSync(Buffer.from("m9XmPqMRsZ7bFo1U5CxexdgYepcdMsrcAbbqv7/rCXGM7SZhmJ2jPScITf1tA+qxuDFE8KC9mQaCs84ftss/pB0UrlDfSS52Q7rXyYIcHbrGG2egYMqC8FFfnNfZVLU+4ZieJEVLu1qxY0MYkbD8opX7TYstjKzqxwBObq8HUIQwogljOgs72xyCrxj0q79cf/hN2Ys/0fU6gkRgxFedikACuQLS4lvO/N5NpZ85m+BdO3c5VplDLMcfEDt6umRCbfM16uxnqUKPvPFg/qtuzzId3SjAxZFoZRqK3pdtWt/C+VU6+zuX09NsoBs3MwobpU1yyoXZnzA1EmiMRS5GfJeLxV51/jSXrfgTWr1af9hwKvqCfSVHiQuk+uO/N16Cror2c1QlthM7WkS/86azhK3b47PG6f5TAJVtrK7g+zlR2boyKBV+QkdOXcfBDrI8yCciS3LktLb+d3gopE3R1QYFN1QWdQtrso2qK3+OTVYpTdPAfICTe9//3y/1+6mixIob4kfOI1WT3DxyD2ZuR06a6RPOPlftc/bZeqWqUtoqSetJlgP0AOBsOOeWqkpKJDtgP25CmIz+ZAo8+zwb3wI5ZD/0a7Qb7Q8Ag8HkWzhVQqzLFksA/nKSsR6hEu4tymzAQcZUDV4D2f17NbNSreHMVG0D1Knfa5n//prG6IzFVH7GSdEZn+1eEohVH5hmz6wxnj0biDxnMlq0fHQ2v7ogu8tEBnHaJICmVgLINf+jr4b/AVtDfPSZWelMen+u+pT60nu+9LrK0z0L/oyvC+kDtsi13AdC/i6pd29uB/1alOsA0Kc6N0wICwzbHkBQGJ94pBZ5TyKj7lzzUQ5CYn3Xp/cLhrJ2GpBakWmkymfeKcX2Vy2QEDcIxnju2369rf+l+H7E96GzyVs0gyDzUD0ipfKdmd7LN80sxjSiau/0PX2e7EMt4hNqThHEad9B1L44EDU1ZyFL+QJ0n1v7McxqupfO9zYGEBGJ0XxHdZmWuNKcV+0WJmzGd4y1qu3RfbunEBAQgZyBUWwjoXAwxk2XVRjBAy1jWcGsnb/Tu2oRKUbqGxHjFxUihoreyXW2M2ZnxkQYPfCorcVYq7rnrfuUV1ZYBNakboTPj+b+PLaIyFVsA5nmcP8ZS23WpTvTnSog5wfhixjwbRCqUZs5CmhOL9EgGmgj/26ysZ0jCMvtwDK2F7UktN2QnwoB1S1oLmpPmOrFf/CT8ITb/UkMLLqMjdVY/y/EH/MtrH9VkMaxM7mf8v/TkuD1ov5CqEgw9xvc/+8UXQ/+Idb2isH35w98+skf/i3b72L4ElozP8Dyc9wbdJcY70N/9F9PVz4uSI/nhcrSt21q/fpyf6UbWyso4Ds08/rSPGAcAJs8sBMCYualxyZxlLqfQnp9jYxdy/TQVs6vYmnTgEERAfmtB2No5xf8eqN4yCWgmnR91NQZQ4CmYCqijiU983mMTgUPedf8L8/XiCu9jbsDMIARuL0a0MZlq7lU2nxB8T+N/F7EFutvEuWhxf3XFlS0KcKMiAbpPy3gv/6r+NIQcVkdlqicBgiYOnzr6FjwJVz+QQxpM+uMAIW4F13oWQzNh95KZlI9LOFocgrLUo8g+i+ZNTor6ypk+7O/PlsJ9WsFhRgnLuNv5P2Isk25gqT6i2tMopOL1+RQcnRBuKZ06E8Ri4/BOrY/bQ4GAZPE+LXKsS5jTYjEl5jHNgnm+kjV9trqJ4C9pcDVxTWux8uovsXQUEYh9BP+NR07OqmcjOsakIEI/xofJioScCLW09tzJAVwZwgbQtVnkX3x8H1sI2y8Hs4AiQYfXRNklTmb9mn9RgbJl2yf19aSzCGZqFq79dXW791Na6an1ydMUb/LNp5HdEZkkmTAdP7EPMC563MSh6zxa+Bz5hMDuNq43JYIRJRIWCuNWvM1xTjf8XaHnVPKElBLyFDMJyWiSAElJ0FJVA++8CIBc8ItAWrxhecW+tOoGq4yReF6Dcz615ifhRWLpIOaf8WTs3zUcjEBS1JEXbIByQhm6+oAoTb3QPkok35qz9L2c/mp5WEuCJgerL5QCxMXUWHBJ80t+LevvZ65pBkFa72ITFw4oGQ05TynQJyDjU1AqBylBAdTE9uIflWo0b+xSUCJ9Ty3GlCggfasdT0PX/ue3w16GUfU+QVQddTm9XiY2Bckz2tKt2il7oUIGBRa7Ft5qJfrRIK3mVs9QsDo9higyTz0N9jmILeRhROdecjV44DDZzYnJNryISvfdIq2x4c2/8e2UXrlRm303TE6kxkQ/0kylxgtsQimZ/nb6jUaggIXXN+F2vyIqMGIuJXQR8yzdFIHknqeWFDgsdvcftmkZyWojcZc+ZFY4rua8nU3XuMNchfTDpBbrjMXsJGonJ+vKX0sZbNcoakrr9c9i+bj6uf6f4yNDdaiXLRhJrlh5zmfbkOGQkosfTqWYgpEKdYx2Kxfb+ZDz4Ufteybj63LzVc7oklSvXHh5Nab4+b8DeoXZihVLRZRCBJuj0J6zk3PtbkjaEH3sD3j6hHhwmufk+pBoGYd9qCJEFL21AmLzzHHktN9jW7GSpe1p91X10Bm5/Dhxo3BNex+EtiAFD3dTK0NcvT58F0IFIQIhgLP6s1MX8wofvtnPX1PQ/bLAwNP+ulKiokjXruRYKzTErNjFrvX5n6QD7oiRbOs3OQUswDgOxzcd+WwGZH1ONZJLEKk2T4VGPrrdkN9ncxP/oQ8UFvRbI7zGVrpNjlniCHT6nYmp7SlDcZ1XmS7tm9CXTMumh89LnaNuF3/wPVa/NLSE195Ntstwz1V2ZLc/sULMGaL4gdF3src9sR1Fh33/xiS3qOrJQlLpy2luR0/y+0q0RnVBBBe4yi4ueiNOdNAq/pR8JehYiEiu7YVJJcGBNBHlCOREQviO39dwxTxdulwW+UOO+OrXOskQ/csaLPIKxUOUHktlUtch/SkuaV5QD2G4vweAaCoSxMZ8k9jagIRR/irArsMUBBkvwQBZj1NYclQ1WtdeoYsd38CObL/DJksETohDEy6ZCixViSEPvNKiV1SSCwIiVk0dPGwTZxeNwPoA0BDhYNc4tIkej3DcTHVTS8W1vYFlURRUS4k2naQ5xI0fseTRBHJQ3WJ6Tn45afc9k9VffnLeTH+Kdd9X9Rnont4E39i8pr21YM+umrbIBTB8Ex2jNapeDYMPaeXACP6jpZnFy8NEyG2AF+Ega5vkvKIWjidXnkItArCkmeU63Fx+eg8KiP95JfLbUQus2hJTKPeGTz9b9A0TJtnTVcdJW15L/+3ZIOQ3jeoFsEuB9IGzxFY52ntO1vJvNdPQMJhXkvTNcRYz7Qz6l09rNUNGbfVNOW7tQgzdp42/0sZtnFW0+64nFJ127Niq3QLT8vwHYw3kOplK43u3yllVjU+RYv76vu3JMghXWGsSB0u3ESlir8CjF5ZIflzQoMn0xbP3qWknhPYHTAfu11TcndM/gV+npAK5/yKkwjnzWs5UXGXJHwAFo1FU99jtfiDBlqk9Xmq1YKsy7YkB5nOmw6dy9mjCqYT72Nz9S4+BsTCObdH/e/YZR3MzUt/j/sjQMujqJNOqABq9wAJCDwn/vwSbELgikVGYviA89VqCQjLBkWsMBf7qNjRT3hPXMbT+DM+fsTUEgPlFV5oq2qzdgZ6uAb0yK/szd/zKqTdSC0GlgQ//otU9TAFEtm4moY7QTBAIb2YdPBQAqhW1LevpeqAvf9tku0fT+IfpA8fDsqAOAQxGbPa0YLgAOIZRFlh3WHrFyBDcFLdrSJP+9Ikfv1V16ukcQt9i8sBbU/+m0SAUsjdTq6mtQfoeI7xPWpsP+1vTo73Rz8VnYLmgxaDWgOuNmD8+vxzpyCIC1upRk0+Wd7Z0smljU7G9IdJYlY5vyGTyzRkkN88RMEm9OKFJ4IHwBxzcQtMNeMUwwUATphdaafYwiPK8NptzFLY0dUIAFj2UVoHzUBmmTP1mWCmKvvesqnrG3hj+FHkfjO3nN+MaWXgorgAAA6K9IXTUD1+uwaqHXsEALRgD82K6GVuzjQznaC89QI2B34wNf1dPIwydDO38xCsAKCdf19/ePn1xejxPZgLmzLlTLvloYWMde1luC66/CFwUdwGF5iJ4QIAM5jvbl94r6EYr52H2W12SlcjAHBSzoVjusrp7UZh18Z/J+vwjQccSS/JBNE2b1adygAAyNgJ5P+bqz5+CPu24bqx6Gjcz84IAtVx2VEyBJTqrocOCI9I7r4vD7cz9L3AGZ6DBzEu36w6fQsAkN2IsmzCZWMxqbMTE75ymnyFiK09l327D2K9sywTANigkEkmLwTn4RqDiPxpy5HKA4aeYqbSoi0AUAKsGA5go3ZXjR0qpUsAoMWolyNxzyiIPZ+qsEM7QDgbHW9WJWwBADq5800tDEPPiPa6ialFj0uNAEDJEC4am4A/oPGPxmDmXdikl4cLKa8CgG7265rxY/wjtmbutfwJ6M9Mer8dKHyeZkalbAEA49jkE8MATNz+qKwsMOlGAEC+lkvGJh0ds/j5uNtg3tilTY+NTe/JnqF4N6uSDACAHKQP1Lht8vSzU7iEyzPjut2EPs/Y38IspIepXm+8s+bS2w8QPd+8ONuavlmV3gIAJLA8T+O2x6fBKOJyYweNq/YsVtd2SjETADgxiwkX4POo7fsmuHnc8rCP05hqlnABgBq023MivCisNnZRtK+sru0oXAIAK+fRHim5pkf85kL/YfPLQ/xReQkXAChjtR0XhfDJaiOHaB9ZXctR2AQARsyesDkUv0deoTWmffvT4f6SYAUA6+xXzrX3Smi6X8zthH22b/w19LM0XlWqr0rjAgAWs1Wq4T6AhPsAVGoEAAa5PpwVKjiHWlfJ2TZJf63FjF8SUG6KBOOL9A4PW3qOHE295pQyfVPIvxcJeU+CKduBk6Q+a2BAVtKhf4QnHrHLFpj6sNDUDvhCfNPmtn4pdDSUkHE1wPPrF1UvkQS/L1S52Zv0Sb/r9YK+jx51oWU+i39Owb1p4MDw3LcwvjpMvtDXPEWBlLcw4DNpOOC8f11nKez61/hc4txssbudIo5lL+aszAI1EiiSfkCetqOyBs4trCbou3jqJZ4diL4zvDnDBRgP+086X66Tvj3JOY1rJwmj/sJrubDrVb32PWhOs6BN+sJXQ+6nOZJTgPRg4PWz8sp/wWI3wsGBQoSU6tr0dWOkrwhDNCN5mfGAM5vfnawcoCdm2CdzIN0r72XbbDWqjom1cMjYh229sPnvzWLZAaSiQR3bSL1XjCwFH1wa4ZmmLeiaD4xutxAZfzu0FwMUkXTsvb7SX7TLM4zwjGg+HbjiaRWI92lgwaxTyKgiXbnThL9j7uBDihzuMULvXXes0e9x7PwRK+6mBLGD9z7PAt7b7va1J2EHu/zZfZ6JPoQVd849MZCk3RJOxd5Nsxi+O0lUD4Pochlk5+4naG1j6yiVRKBPobLOad//hDECeD1ORiB9M37JsSxMC6yAkKEdy7S1aRmXRGrLECneqByM8iQ8x6d71F1uhkYUi3WEjh/A9Yw//HCidh7pl7XD8vEkuN/f7XQ3+fhmSfR/9fHkNcRp4qCD13IGIBIAsQXtoDUnASJc+5H5f7YWufNDdZ3SiHJqVvKw8K1RNB/4mJi3YzQP47nmN2cw2BH4yKk+zk7wcLx2bVzeS773YW/7nMg8DMlWZGeYPJ8lYLzOnN4o/0fk9Fb9upq1yXbRyN7iDSRnOnj+kn3vLjHbn3NmA2tRwcfVd/KHGxPybUwcg9e742hY/XBtEgCQYe9Qh8t8fte6aEo1Lt7a9rryutsDxLxo0o9/lhdL/GMs9n3cCxZiuv3as0lchJm9dQGckDBOT/R+y2ft/W/eswB4NFnsqcrBTerQmx0BTPclttiZPF+ctHerFc2RW9MJzpuGOShqyTLCNsCjhPV3EtMF8nVQf2TL6GzI6EphQEjQgG6JrtMu/0zWg2e97o/uoTIf4ipUvVVM0KYey+VkMCWrFynVZh/hpTTXcm3+EV7yX7W6Ehrz8KON4P9MrENJx2msYomlnUT80OrH6Y1+KEfOWn8KyenbZuHQkjBZcDAx5+J64Aj6TSooLJw3anwLeZGOQeSSPXLe6dVY7MF7HhAl2HU9fwES3l2dLETAm5btht91AwjpdUoQghLn7RhAIRWFRVWJa2Jtc0Tm+dHRGiAvx6wG/OCGa7BsWuJ6U3LwfOzSY5qNsj3Qpt6+JyEhflEfl2YZ7jhjJ3y+3ehNh4IBG4eEmVuhYdlx/EQQvnVDqC5Lodj7NWEXjMFyT14tjF768alhticUJrdl3w6P7cKsF4rhxIKWxOSELDHpzaBPR0EgNZlKdZrSiJfPGaWK++nvRxwoo0gt4maZU1CAx33oq3e+NirCq8K514FHpLc0jbti5KzNlr3ttdqoSeYKrOsq+jS0w4q5Z2AMeYnbAgCra8oCHFF0wJ/PTdXUMVyIdTRhS8cJZVr5dTMliVhKm9/TZduaYLTA346l+ILCTo1es+CVq/f+2MU+XuX47AuupenBsoFCNMV/2ywHjCr2flEAWipfnI46tqmjq81ytF7IWoydKyHCSI4ew+k4+ATvUzq2buldaR6SAI4VKAMyMT7zkBkAMB00NLbwmtJqj2k7NAGAqHKufA41DAksWEk7A33esJTuBprShiAOZCMOdd72+E7b1umdzQCSOsdaB3BxZgCAIhUUSdbxYbW7MfnSRjQBAOeidlz5FgodFOhlNAn2jcFu6KmERUygbnHGMpnfdLZ+KTEVgF9WExaIcJy8hr/tp7Y+ofIvp0nKjrUMZqLMAMAsmaCWuxWW9dpVpoxoAgBXKtOVhyhPGCAhWFJty3Ija39F5udrAvbBC+QD+d2Qpx5Dhfh+FqLgzUW10AwAWChUQzuhruPOnJ3rUZXMdgmhZDvzdRCfX1UCN4/l/wPrk1X0qHN3KbpjTKBihdxy04nZgZFKr7EcDqvvSSpivzg7QGxmssgfLo5KZRV1TZtdbR+k3S/kYjTNfDUZyWrcFtxkiVhetaWfvcxumYBgVeSozNkvIgSbt+L/2Cl6TuiPToNFUi3gzvnWRxo0ES1a/Wjq0Zc47dikmBBXXE4/cj/BEnTUGU8vsXsssBsmrEbCzB27QqDQGPdcgFpmIb3VQSk9zfTyXFlADILp0V5qUnuHn2SAu8QszfXheW/UnD34sJXHTECWUYQhLc5QozwqlP1qnYO/j2pQmGU03C06s3d2EjlIdLNuy+Z0X9GIUUWCXDpwtAPYI/zXrF26ADyEpyyj5o5bn4GKoyNdkhskDGYenTTQ+fRqo0EL0yIqcAfyVOvo2jq3CjCRKOLgRzv8NZ30rd0sMLzpKrIwt866C8KrAes6AeYvDWFOdG2WjV8dNiG2wUyaYIU3T/cDo3COPFw8EPEFcIZAcCNE6BpH0CBPxefguDvpbTKPZF5TYE+uaLtxvaIUB3bIQI6/yK34JNzrQt1az5ucZEtXCMlBED4lW3rAfndm6l/kCGLzwMc1jaGqJo9VNR0VIO4dMQMAo+m4cpFwrKQXPzW3czk7Vehrc4bS6j+UCQBQhrljlDaOxR/+L+5R2jt6Tz+GWNGIJbKP1cd9mk9gzEk9hjdUxnNNvHTW4dOvtRS4MRoQDFpUwYuR+pe67JmTNfNtDqx7LG4zNLjh8a/7i6F+adgW4ci+DW1Ilf9ok+1zg/3+lfN6pK5X6QelSexeWGj2JnH1ym6sQa173zvfno297vUcHC6hAoTC/3enX+ej+9JNHu5RQubQD4++jHOK2fiK8Df3A4QC1LZSDmK46S0VdPvZ8VSJnWHbWlJDsshRGb3dyRkMr3d8VnqqBEcrMSKUyBqMsk6yUayfov2tM+rgwqxlrsiFu4pvawUNfFtcuWrc8FmGXzmz8Vn5LxfzeQoLfUX/JWNR9xC9tZZamjtBesX5eUAqtw7rpFfDcdbgXsMcsICLg6iqrNnoDTf4umgefPn5ZdXLAEaKmKr9K2jWq3EjfHsxMwBg48Ul4dwopQnV1GzvwQsXaQIAGfxz3b1L+LfNKAGAuxiMqmZyB+AYNU1XTRJXly88AYU39jt8cP2yet2jRRzcU6scgDEiEryUmuE0/9XcsZcfId18ZowZMT1Pn3IAxpBI9rrhhqfOkyl7L398ZNuIPH7ElH1o1LGcrV7PCOR1IzMAwAuoc0mYU0VR8SZmewtvuEATAGjx8Jyr7ndZRRabBAAakrqa1eFyutex5al/HR9+Pg/51BPSD406ljMQA8pRvJ9nBgCMQyre6J1RTDLuzPw1pAsbjcEeOqQ1rdTmu87PE3XTX6L5Gyznwp9PhH9fPkpGQ8UNREgtj619rgZb/3wPFNQVbHc/a4jvwl/8oBKYjqAA6N6ujHBoGb4ATrvhNBnDILjc0CJKnveWTCZsDPoCAtX87ot1zaqQIOzniFoY5+YhQw5B2c/phhnSAZA9ApFkx0IJ7sCLThlPpxnHyv9oR13WpgPR4gUqXIl2N4nXnTkJrp58Eu4njBlKzTOEZg8IxnUq8+sqOnQo9N2SE6jdRZ1z/fsQ3CJqNvCck7DRQdc3RveF/dc5mlOPI8T4uL+oz+Z8sJ9wZo/NELlDNct9N677yFvr2oYCQ3/83EfWnj06lnR27o268AYQhVTPo3RYYPpkhgyVUD50TQGcbIPBCGxagjGtFBjceJbYSX958r3v5q3JbgoA8LXamYl9ce+UOusgjorz1/LGw/LsWuxIqVZLUflBNNzqe8wfBnngUekITgge65Xj6xD8Ero1H/HAEgzxiww6j8ZB7I9hA4PQLxy2xTCSF3tJ/60ye1nRAiEhHZjEwgdaaD7HdmaDiTG4HD0ArtUhToud4pjcKlanIcEUD7j13JTtBA9u040VgeqfcMoXejWyk7YDcHR0TNJsYM2cyGylQEg654jKROckKeaXtByXo7DqAQhhd+e41CpRPIm6zoUBBU30L6veKGoHUvVujt12wrswKY0GCX7BAJ1ePs85euedVbtDdCFD6u6HVpjhIAJuyalS4D2EoUBc+OfKne64AHj8o92ql+v1XqI15bZv54pNU+xgh2zxoFup3vOQ40Jgk6wnrxfKqgVYJ8SCL5iRzYqxfYJEKQ6I4V7umobUg1tBdDZCI6wYso5GIsPj5aztuwBIib7SFoG3neHuUIkB0omw3HgYMqAVKWPKX3j0zEOeXOXa53uihs/cCwK2zTUdWfmdaBXGvP2ca3oubeEUEhTjUTjLD469sBTbSoNat4Q6NAHDoLn1d7TVHjJAmwfrggxygS3ojqv4siKiccTvzqizQ/sT37uxiPOJBH54kEryjipahqC4WYQ3Ztrduw39FZkaL80/Kl1M7mFa0VRxRoxS2hASYUpIdRLxT54CSsaACskZURcD6T7DueOjXevevtHYqtG2ZT+lHHVdNiMYIjJ4fu/nmbJp1zaOCONKPSKaP8J95Ije8V4Dnzyb3018HkdmaFbKBJDZMrXEB/VBy2mXVnq8WJSTK8CQuWPax3x8N3IdHtP+nKkRuXSj644Hnl38rAj9tk+2VVRuWRjNa1nsrvymeydN2VmUP4vo65rVvUozV8g+vFK0Pl3TTFjraGzjnpqnYj8fEn7y8xRGCb8o0PpJFDvkn5OOcISVLmQL98k0v89Y4snCvN8eEeM3lT34MjVzW2tBDx823AnRhLHF+wMcfn1USCfNH/y2+Nkmud//9f0xIbj11Zu5Zj4+4VjnVY/3brOKzwL+ejBmAOA47WPUljHF/2vcrorTjC9qauGcdjWqnl4Xqn61TABAfHiRvtpVT/BXt6udWv7G98iwegCujaC1eL1yhl59ATcUPRL3AaIOA+I5uupJcT1P8HWp2/hzT0Sgulz3jhhpRAGwRce+/k0LmNKMTfgx0HDnnYCoD4hwwcoVOwxDBCUhRKsQoCSRhCue2/9c9F4/djN/iU8vqQQAu2W7NleXuELigy7hrrH0ugYBzkBDFOm6hLH5gmTFDrY922J2jrjyFiDRWEKvovHJtvocMB+GdcfEc26nXAIxds31Zvyjgg9jDEkcu356cP45FQyWQ/2Xr9D3uuWTcP5rnCe2ZJ0E+rAzmSuB7q8l5kKexhJKIEgrqufzwt4z0Ma+6Z2Tc87Mxal5/108FsEkt5OMAUkkyPVYQvnEFI//BZi8mLGfYTCJKmKnPSOjj6PKKtrk9r4yTzXtIoLNfgCFXbO64O3y2dHOc0mB/cn4z5fkuA4VivPPReLcHVz8e0Cn05dLt14MyJdAU5yPV1oQSPcU194ylCH1I3Xt+oTMx7XGZgDuxpWddWvXNDuvgrl5OdL1SFnrVEM9U/0qfyz+6vo/VODmhzpDG/dFXZtJ7jTriHeSCKPhhLO5/uYBuSfw1POp6E8u60XdpKOROkyUcoWjqimnNyHhPDDdV1/7ND2Bh/7aiuxpFbYlYhwZNrk3v2ylTvyNsFmfuRontBwiqKx329Zob7jLYDIb9PrG+AWk4nN4QAF3naK32CroJjFK0dzBGBdbhqGvOwlO4Bqc2B+K8vMn9SgTYKOTXQpGthMF0aJQHsdrTiN+fG+eK6bKky6CiukeqBgoB0KYhl0ngc3MWhYQhR6ULDmmmrqvURCguRGH+xUW59GyJPI78e38CbKxEQpOnYlmZUheRl8+5Orw0KnDEZXpMdVzYEcr8V95gf54U3cS7adnQVQm9yAR5pkyblumE52RaVLbIouY4WxcNzoLJraAqsbN7CUaEyQRtqm83YVxgTXFBNPk2z9SfS/2mTSulgEfWUOYmQEfiAaWnX+P0ezKFz1BzO/T9SX4B8Sm7NUmDnbHI74izpe3Dq/k2jqvsxNBX7keI1eux798aA+Ee3pag6xpPDa7uIun6dXBDb9xrdpAFa1TYvlj/3iacVrXUYInG3OQv5lASKQr6Ok3CWTOFrkE3Ab4lFR8hbY0DZsgpiXw3Ic8YccFXomJeuZ+zNjq4CmlxYhcXQnrgtpWb2S+JXEp5JHh9APA4IjKN4hdm0qnHRzhSFfJCcOkg/RinGMzwtgNDahb4H/uNWjrIexsVRC9uYlMT3CCWCLeq12rSi3BlAQrnIAdFhL2INatBUy7ruc1TE+6eZ2XkZ/C6d6+CJrwouvF0ghjWDogxPbgxotmr56iGJoKnuwNF/VWHb037trPU+K8a9PCmGGWrqdiVkSOISAAc7D91xXG8Svq43DBvltxo/jeFylAbMWcCDXDm0rM6DbyRvFtLzAazwd/SPi1x5/NHyxHgX5VESDDn1tRHXzSlbjz2ulMvtv9Dp+Ic6KQZ3edNwa+9iZsx7kIwYF4aRfPuiAwhoYbkgvhVzlgwfF3Z5tX5KgmwkDs6AQdqyuZv1U3sFzdM7UxaJQ6JM5ELO+d+/k6PEylnYrwSOBlurpS2rECSHSp8S5Sbrm9jweZ44BxmkOBY4P5BmhH1PRRkCRcXYG91K0JRzOD/B1vQCcHf//8atBI/HuWuilLAbut+HwOMwBwqaIhe73RUkx4vCmUs4j6ALwz2cUa21NgLwszAYDj7hk5AvfEbG4HnKsavV0z2HZTPwBwNCiFQ3kIus/yxQ2assWZAi2zvyzAEU2C3XdnMwLHq7+vztaFd9UtqeZAqkKXkjoBs2vNdgByZS2cA1XNs70DCmO/0wQp1xWZZFWF8W3oy6uDaQnLF/YRxHk4rtJAAui5f4zymPhhpt+bgyGzSZdePfx3cSoXJIAuErW2pSJav7eSO0FL2bOd0eNgTenDatV0qcMQm4q085gBgJZgp6OlHCwNuT4pJjv46ZFji8t1ho8XaAIABIPsmTYL/HWV3harXQv7AQAWvtqIyuK3dJ+Cj9PGMb7K/JvB5xoGYzzTeucCQeXKMYa5Jh9EzhnyD3aGdQvU/FS1qMnjkPpyqtBQbX+HZgCANU1TteXcz9EMPZ0a78Xu1gxoX41fMf9Gx5SxOfgyF43WlePpTPS7KysCZeKjhxfH8OR2QZTGU8btjQNsDjEviJ5zZ659N/5Cs3tCTKjmg9XhwU2AieBC2CpJAc9MszqjvkvHbiHW4L7rMM9qMRXNBirYkwJvjoctYaKk80gNWxIUK2xDd1rykGGMhRq2glXBCIanrVbE4ctMSCncz7rDmN8J8+7xEr+37HpwPbbLV7DuIoUNODXiuNOYAYAdqqXg3NFSErZEqkops7NsF4dEt0pzJgBg3t6nyOT+ujWUO3o/HWboODheW/ZPjzH7Y2vJl5Vf1yz6cJxee134g1HHKtqNR06Yb1afnVoMAHh1fMz7KJmMuovLqpY/VRzDP+iqbrVar9VPSZxLCflzMZyzGDZ8juE3iuEfdIFWywg4UAxhvkt7H3Vz2Nmijfg10C3pDCGbW5HkGR033VTgXud+mVEqiPa0FRwBokdONicFMVWtN2cDyUBXkaaL5B06Dqt35stna5O88Hr68+Z+0vHQeOL7mZXCPby/RztHkz1eoTOcHLwcfGzDjP9lqtKlou5FzABAt+Kmy07cqDp8+QpF+lRyz702fCBvwQM5RRMAiMkiog3HhpH3/YCarpVzwsDVzQUBQNA83tWEAQVHZpGCKOs9UgWB0sS0CoJt+jEqKJxR4KigJF3udZC6mslAYLpqlIKwZZRLawYKHLe1OAacLM8+C5yT/b4tcDp1RVdidcVxOsa8Vfh2fiRZ4tPLrNuhQJAAyu8f42gdo2Z48/uSo/P29+J71n4oGiSAghLF0zoExPPe086JT6uNadoIQf+UfWOXtuWPNasWv/o8ZgCguhluxCuXg+UWd3uW2hGf5Yq3s0gTAMDia0wbFX5SKZfmYVwWGgQAHXyMEWXhV+k+Ar+tjd34iPkX4kOGQRqfp70XJHXkjm/sJ/ruOb4mSeuYnTfjCWFvoEcG4BwfnEtpFvRelrlGIum4+DYYBA7AtEQyHmxHxTHP/CVxmr/Sp7QXobUx4qP+rGJRXehvjg/uZD3fs2M5+cf7E5+fOPC8KOzGyYE0ZYwhuF0MBVh+MePAVk05a3djJn7kqrUyvLsOroqbM46Z+nM6JvdaGsEjVfwqoN2SfHc135EyJUq88XZEIX8I5nbsDEklYj4fVQqmNM/LjlmbbOv7O+qij/N1bqYrmUIugDHNlrEKYJjRKVYXlHSPdfyGYRC+RPqs64u/jo2ougiKUNbbpI+Db/x2xXsz0rs6VPAcqFgWBi/RYfXDhM5Ens0FyhIjELEM6DiViir7E6DJ9dNP4HqWVSnodz119e7ebZ8KbVAEGh++0g/ApiYn5VRNSkMFBkNiOgyUXPxXrPkCEEh32BdBNi3O8TCdjh1Kx36Mgtx2wdrve3T5Tblwg3Dy+gFH1Y8bEJ4Y8CpF3f2ifCSfFN4eSp3qgkZwRVzRWFGKT6KmfJbumRyGcIXhjcutiG3UCPipFIo5tES/QJQ4o5fA1zjdnptOZ6UTfGNOqVAk55iL3/7V9vAJgEzoLJTAOcpesyuSLJ9+IW+7q3ToWSR3w5Y1jIGVKSSunuyIIgcV81NlP/hsnTQRh8qFuSJCUR//D4NH89aIdvtqj5KNjOeCsW9jtsu+p9no9a8geJI1GJXPffb0anRpeUfz4mHRTMBWKl2PDpgKGxjEFyPzEZovmYVbBJqzI/RTaIuAbGwW7lIsDnvF2tLp7Hu1b3qfcsk+/G3PLnDBtaF3JHFxcZZjXgxceGu9ILgKdVl711k70N7xjW3vWAcAGE3Dl1+jmMZYWowjir3aY4c8NRZirPY0Ev1+E7PCsPpUUrFDWx5UL3Rodd/wKDQrtaeR5aVhbA3ILyE3ZJhjvRLYnEuAOyGwKzeB1SZsOJCWaGuT/p5rkM+b8QSzB+lVCEqxH0kxZyEM08yz5OVyjGpfkg0zhcnqroQ1mRg3mTReLxNIU9elAcNGtsPJ5lXSDFeEIunTdwmY2MhZ8LoROcH35TLh3OplkQ6JJnwA1CB9d6SN0ThG3scVgT6N+LHBf3cmMBRjqZn7XbXIGemgb/Xk8bt/mx5VZe42eAID680ptynUQBNR9Rf8HbSWhuPaSJA7qG83SvHE4ZU8OEZqIpGXZ2GlaMKbIbq4uiDYovInRvGODQYcpAO4zgeB4dnzqV7jSqHt230tB5CUBEsE9/4cJkpF0SBAh3k35zXTHvCenvz1Ud2TezFEu6rBNFZnsbQrAZqU7ErkypRSf6XKqPZigpk+a+0vsVaED2D3JhRNwxIY2pE+dvJNX6SJNv8AiFzDxFryAUsX4o48r+31f43Yzj4WI6eSDCeJu+GPFvJDu133wd1RnUutlzOH90ntQT/X7R/amKrLW7A0s7jEKi1VMJ5La3AvXzgwxMrp+bww7wFh1HKN3Xhvv+lKLFWQ4sUEOD0zd8CG7eucPfHjJI21YN1vyB1iSH3wVqtyGD321FZKYMEewOQgYKGh26SN3RxAK4uhux5ehCjaQ3GjyCMS4cIeECSG9Ami/Bv5lzzDc4SKixDRO7muxtyUi7xbSGtZIACJ1BYtKuVj8nKICZEkv6tAB0p5TtJpK/9/XVrKVqIC5Gn5Gl+0A2Rp6qk+LbeXn8lN20x2VCwnMxjORdqIQiITNmlKN5I4thKV3Ze3OPhGP46gumAIlPrjldf1dBKZVqhtblr7/oNQt+T9uE7exCNrEZu9oghu1pbzbmo/SpgGJQZbzXpocaLCH1LDy+GH68PkYGdP4CubBJyQ1g6E90ERC3NTSp0QBu/GHRqDgqyK3V2j9dxCEcVLFpXzSIB7on3SnT1kN8WtZr7ekIrjZi5f0VjZ7TRFA2LXcUfw+v714j3uPV07vb6V+Guqzup7wTfa5UOr6bDQ1T3NbY5CGPvUfib/szeX2BjA7h6u+ioHp1/cw2IrfMVok9S9Z7yhpsnxkOmq8Xo0MV1RmRf8bpBvDNH6cgLW961Vv5SeD4Jpn5HEoPWpbBq9Bpna680qtL7lTEt5D8J1k+uhkho8aCcB6XQ2X8v3eZNlMhvyPqR7PLF2hJCMfG8uj+rFeMWAK3akFPtO/o/VbnP2iGtkR7/rWe7ck92lDvk8q6oXiA3cZktHYFYSaLq/Wd2Evot7Yw3RHQToOu7B9UKkrATgIggmR6iaaXml2a1gHX2n548XA7GA0NQHEl1jZVE8ujv65YK5p+tg0LLvdzacpN/toxn+ebxUhZ9WrxYP/6fr9Dd/3jKT9qPcwb0ZHjwa/vmHOeZ72aED+8NvjT7aj4YMnL9DKEMLCLsQsf5EarQaDzcmTWgys8xKOyFBrbcOon9JCV+wNpa53kzxvzJ5O7bVGIgO402v5IAgHbO+6RUbSNbEWEGK5hXuh+Ctu9QahUtfNk/FnItXny1lltmcqOehqOIVT1blWCfzlpMrYeA2qZwB3KGKD+QmDdOALt20yVYVTB5tTj2+GmMDy7xkk08/ezZRHkiu8F0SYN6kOz01gIVGhx4PnxMBNNZ19oSmZ0G7FbhqlOWIIN2tq4hR3nQRsLN+eWFM6eCpGpYrQ5lDB1p4wKcLgCNRIbYX1syQAvEl1a7llGiQmb6ECq/7/nV3Xt89iAoMLWoQN9mTtC42bTObuALCdRI0FV310Ea36gJCuyQ4X4E50iOCXlEIKYZ45eU7UrnNCS17WqO8MCAmY/Yand6v9O4d4kmT7ZC6qk2ekv8GIkgTdUVpWwTWFjLkaZ6q9fkiCDJsYM825A3DCEUh5hZUZGJFNwjUOTlKo3HuGa4aRV7sQlx3cjhkPGRIchPPtePHjmm8Ip2DZR/q5o86FVBaF5Sk9XumrXpwRZPTIQ8bJxNId0kTDy1nEIPjmvYo3kUVH3D7CVqAmawsvm8JH2Z8KLO8/ycLE/DBQ4WvxhWo0Pph5K98UQLfVWZ/UytitHvuWl11gNnpSwBMZijoDMvuarjMIyi2buz2w3nFt2lpdsU17X3m7DfPdSAU9ozBqxNBx8mWf4WzrW5IfaqvHR+vH+6YsTi6rz0tLf4aYgt3gu05+/SiYYq5pqhILfws18fN2XL7xjVL8jw9EWjAFXcAuix8blRIvBCOgrr//dB0izhF6Q4oWfD+aK30NB7cqT/Opn3kXl2QFB4JyrpPrPt0JPzeIdIfbzbr/hE9plcxZZnOkVdFV/zSp8FxdslyWpjEPNJJXZ1ePgtW8Q+fbzcSjnd79KdsHHypr2ZwICYguSrAJJFHlydIA6Ttjc067yPgP6S3LV3rdJuwzy3VURPPHcEuBE9RKTDdFVjDOea4iMrycYG+WNjo2W4TIQg4t+3bQ0kjB2yZ4EE1MQaEyWQTd7kBeL8RFGoyLWXUR5C3g+NeYxfCxVsIvZVoBp9HFHTUJCbXacDeU4pAR7s52EfaGGusTdyg4bF2zu/jkG6jO2B4phg6J6GFn4PPaNgei5xBroUV92Oj5wuQfwYpJO3/plgv5Y0r80XSsnGEXuAWiWmZmY1lsQ8US4K1dYzPRcTy5Jlxw4fYlmKuVWTRbRMYKmuw1I33DmDEq1P8VP92Od4QKQnw9hFYWJPYbHR0xKSftb2WMjZ8tBAxQRPsko2tgFd8fyI6MCWnUbiNYeCpRs+YHAIoP5A+IMw7ilfD67stGzBQbPe0rkPkdzvafekGuhsTZkCc1If+8DSkV43eb9zvJrl1ePyIq5kn1iSK48mmVI5s6WKnHAb87PJYKWmHAK/LiVmO1GT1IDxFSZpp6kLIrQ7z8uqWdiM1+HzjCOwrqHqwKVQCrrOeaQZV3Cn2NWhvzqwXdibTusuLztkgAGUlBxHXhPHbYl7s4t/uGwwBytV2qw66lXlF+tFiQG8sAr/l2+r8X+oPmPxVda9IVEtMFPehuoD+szcvsVuBjanjPfYXvZ1sY08gp19W6SxEGa5MH9kyBEfRetwvbGSqFojHD2jSJn5jmQ3OFTtWNPaj6WgL4LGDmfRvLGMwm5o3lTJkx2kAkCf27T4iS0PfW7p0PeQeHjoPZ90eKsPWr9dxgOSg7PKMbAB5+v0/X3SUGA8BZjFKz+g1kLfK4vgHtHa9G7ODeBAEKJ7NZ+pZtitnlTsDdSbUu3PeQvYjt8EhRO0QBPg22kUkFv+JRStiXAXYTTqYAjjf+cCyqr7UJcxbMM371xP4jigI4Kub0l4rz7G2iqZkzSvv47XPVqmV/l/qyRaVUsyrWGaB8Foer1e7OepmcSpQxfAbod3dnOIX4z27UQXtQgJobSIkWYTYZkjCAP37uo9WcCNqL9w4NRW40ADhRMYBmRub96mtPmEO9KOezoayE3UFzDVvk8YxLZha/Bzt9LXEfY5sF/FVyV4e+iHBKpbaCoIB/I7Ntfnf+qFO6ZQlYjH5ecDmKYSk61/ngM7IN9BaZKepxqwDSNsMK7eQ/gnoyGTVPFcPQgoPz7GMBocsvBftsYYjogrg5iLJtK+2TCKSnAt8VEF6h8ypqi4A7HaAjqhK8eQZOfi9fjaw35vff2n6/3Hy5fs4iRuaT43Vwu+NN/BLTk6tyTyTsd6o3OFwet5g6ojRzhtMnS3peiBHGEcGtg2GVTrJWp2gIFIs5KPyrAophV8Onw+qo/HH+YrmB6vkPieGt7VPry2xQCKnJ+lVCQrgZd0AQMCqvBgQp+mYcCLJzoVtart15zDIVzi0momismLW61a7tTrqbvnlGgR2GxHMECE3111MlUkwFXYtx1vcYe3fbYFXXPoPAKAoMCf2s2xwctbtusDZ1cPHEXsrhg3/zviTN7gbp4AtQqyGI8COwAUt782BS/OxOwDrfsN2AABVtfQvvN+Hai79m45zarWdRnmo7b48HqADqqPphAJOcVWmE6TrpjEPAGAPOIiNuy1QkZ2ZPlALnj0c0LW8YUJQOzVQI7Hs7nij+oX37OGikkz/Wu24Xl39/yx0G2C/WP7edwTWwENB1ZgUIXWF4/F+Hr/JnytTZk0+iu+3VNsAqsF0OLj5/sh79nCxF2bkfPhkWvtMijpO7Xf5R9kf4nyPCXtlFsb3H7YCf10Rc171fYX4MvixfNsA9tosnsxd4BIi9GaGT9iv+W53tfpIK2XugXoVRKRQcdx53QCAj68BNFTUdcqnmZ0LqS3ukg5q5isckmNHUVkxdEhOiVRJXISuGBHtETFhrrvIs0ngCmrX4y0mW/s3YzC3S/8BgF4cqD32EwR0ZN2mDHppiwcL+sT+RgXMwSnAcSFsTduP80FQBb4rDv49Ge9DKs6aW2psI90rV4gcAt7Eced1AQDnKIrYj0f8uwKmfu8wMr+ex/at+DweCrbC59l7ZD2HUL4oysJnurkIaug40ygE01hSAAAwASJFtvhpiPUHId5mMwgZ6lpROiDZvVwHAFBCCGOLuZhnvWQqIkz3JdKaxm5xUzevRXZkZY2929k7imOvtveTwVj3lH3OvBEvfIB4tw9/pcogEIS51MV2nLx6pta2ufndi5N/XyuzHOp4tX07VU0OQJPa84WmSZDrrfWbtTcfv/T39LPko+c1rF7YEz9rM6U1rF96M59g9cktVllRpsCqYhx3PjcAsAqrGUXBMKXcZPANOTGTJeUMraxbO2swl+LlKxzaRURxdsUEzquwS5GzJE5olHIeIgAQaVnLCVY9BRMda0k5d/1pC0gNvOwfANA6kA2xHyfxZ0FOob30iIXKxTmcqD8XxRNkr+jI0nuOA5Q5l/Jq2URemRf4ru8IkTdlT1JNaolgiwm6GXecj6Cx55gVt7BVgStP9CpJzZzxZDKMpraMBPF149VfuDk5W+JGpq7KhshgFoHBMTY8t4SruiUqOBuCgtuPmODsnl5BFd3SdTQ73pZ8fnYEBJfWAo1wYJhoYDrBwFRigU2n1YOJBAYIBC6Vl740850tyXxjgoDL/nFsp8JEAHMIANYhIQCe+XZ6Ki4wtj9z4s37J596qh8oJuSRpUTYdqvLqsl1IUNgMbGRMMVQqerjwIoOBIvhvCkAwLkOnN3usRMeBy7stGOP+bpL3ptAVFwl49CpoGt7WR4AcBwjboIWbqo65luDaW/ux0yvmj+YTumfhIntczgdVuwSmAxrg0FquqAGm9CpGElDj+MzoaBJj1s1e8vq2PD8Ub2HA5/0xTXL6K5pu/r9MM/tLnWJod96/hO400WAK2z3904HZ8b1HBMZXTWZkKNVzTR4IrD65o26AQALhQp4AbG8mTGwc8Xd5VXAeQsBSI0FsgDUVRK44G+FVjUhAgAtQ+sCJ9jUbPh1vDfcvcq/u15rNNB14z8A4DLk6XV+vLY4F6t5HHCxBfFN67IRXJ6mvw0U11QrpXisIL3DrfdWpyz1CcoU42Cq6+fWA06z7mHXSHJldz1Bkhc25j3eTjWa2gGAlJE0ZPmG5u00UW83EtQFOSsNCaSuMQ8AcA48R8Oh45ZVgdmyMih2uCIF5pZlo6wCC7EG1KjAVndAsbwg4+KWFd314aQ4TlpwPkNrbKkHhuodKaKYFRv6GbIfc/DTIS/9MrZTgbEBVOVonNhbndOIfBT6ofxW+ho/Rk89QuxZWDnKVkL8bABfj2PvaSj90uinomMD2POweJQ+Be/a1Cs42xFUIjL6yvFiE2NViUHkDnHced0AwLTOPzTImzsFZKTtprPxkryFUOjqikroqCpQTJVErdB9TYgAQEPQ4oYTrGru8jzeG2ZV+zfX4LSW/gMAWhl0k/3EBfraag4BBtTFkzBTRYeW3rOkWslLmQW+pPdhq706C5QyfZhgboceEvIzWO9lEqQ/ZO9xT/HNeinsY643vp+BGEBexdfzbQAABp/qaNw2vRWCquO3vPmnlM4CUVXQ3ZaB1pHCzA0IZ/H5u0IIma4MsYIQth1nEYuQ0CoWEwAA0w7bVYgUzJcJKp0cm5hka1dmMgCz4uQadgCA2UKsWExpLWFdNnMDYE1LvDGwFmySEogbcIxKHHj06/lwe8wpUMf+TymTqZT6cQlfVbGD4QS7nmACn+6OoP3enWfJG24ruwwvWxvb68HL+c16gt2TNasMXmaRIQBw0wgS+ynUJluos5PourUM3SwnJ0+i6Jh8vnMBH/+0qCq7K1ACAtXukEDFAHoaEAEAAARd7lPLiAJJU3vVf9PRNLE6vfgfABhAc5D5sxXKqv6W3tzG39LG2/hb36bb5EtKrTsBavpEC4MXLK+L+eAi1n/VrN8H+SC7f/79K/05bxVuEMRc/u+Ca6A8krSyN+q8ZhSj3vrcZL3BMXZZjEh+4pkDr12cFHsL/559wPd/sIUbHivH/4Z5/tj48SgOcLjTe8v3zOSy2/2M/gD9GkMWsVtTdyTVvg+3W6uwXhxk1FmId6QMP/uZeku8OJb5sRrrttOGRRDG+lpD88P7L10woNhld50dJssC2L3OGDzF47ApDuFpTp8CAII2lRzF8nnl43Csejuv2TTXrZuiCoipt3LVOC0PABikV4MhsqosnJsXcqNaGTOB3Fwn21xB7shpsLqgtLcrKqoQbBdOMXxwF9rGKrzKaemo3h+DlyEn+EL3F9zk7rf19d/HjKBNRb3EHooiBcy33plc/Tq+s+a6zu92p3tcZQgAjDX4ErKRamcBDryZOGA15vzu1LqhQJ9MYfDu3aUOAXV1EvABnDIihDlXeK67OE1OtL0glpV/vEGwZDDsxn8AYCRou9f8WQRwqr+tN5f4C228xF9cW+ZKN5RiEvjuRGUEldYn6Vt6kYQpp0tCIGG2M1CioNRuuxtMQ+kqZyxYIdOdZe0AQFgFBdiWL2IhA6bbLuIhJbK0klBFVWCVpjwAgOXhVVVBBTZuakC27IxTIAme7VmQXt6QEkijCio1Ltwj4zaUKHzkPcM5RXxjvU0t/cBQqSFFqKKiiIIb/jhTMe8lrqmdy2oNoAJD4wToKYbsWyW9Ofg7we/ImDz9CLE/XaFI8Oi10pejA7vfHCY/l9oawP52tWFpigZrOPMgp/nE2huTszl7klaVCKxzoloEDgCk2x8faoc3NwRE0HbZXL8sZyH17dVYFBuoUp1EWUDHRgR6xv+f6y66tlSUkduLpmZr/6Z3ZEMdTFfjPwAwIDTXNH+2QtTUn9Ob2/hb2ngbf+vadq70glDzAu6AcGy/akkqsE1/TKEItTbUb1F8oT/nBx9PzPQmWmTCtfG1dm8LcVdwF5g4UxQft+VK5Nvoj208DiQ8dQu3/atIawDmRPJ43jNDVrWAFTJ0OAJEYJGQzpeDGKkybTYd5mukPmldavVcjb4/dyfi/gLd/Ozoq0tIKBWjJy2eLim1ITyuoX2Edm7GMqOichceVrfRhypP98e5uOAaIt1SMlMZ2IhIq6e3SphC+I/h0nbG27Ai2dMU2mYYBoNsoANzwdjT0gvkUj0hNRpsDGuJBYmO1C7D5OPki6qP4mLe/obk8oiOTLSuUWjYBtLtYyCHeyA5Tw3tYSJItv1hitwsHaSGHT2dNhvkLxqYUw9Hu7C9CIQD18omTNkPwc1IQXEGbuS07nkzR6JsqXjCoNSB/tnqWkLsaDcUAmA8z86JiEM/Ni+SODFvBxi1gEAWZHLIlnoB1VkBkOBrf239cXXlpVD8c2NFej6ddl8uARiyiGrmQ9Hka+APe1xY9NRUTfwzLfv6FcD5A6WEtXxtbID+ymrVY9/J4iwNREZjukGdhjkX8hGsswGUWk7vnC9l7ibCX6ASP04eueRlIMD4qCzdpyeVoe+2oS3Uyi7xW4CtNYNLneV35GHLjDUvqWAwFviZPsYXKd3Uqh3A9GlyAfPGM0WbZ5+eTm8XiG9bTN+ULlK8BXWhTt9eX0xw6fmhzbNPz7XywsmFvyOUfKx3j5Wv9QMd33Kp0ouJJv36ePfA/bGqXGotwjghbiLn9s4bFtrzcNYh5vdx9wS8PmsHjblJ8rX0ORBx4SCS1KvrdExAQ9xPWeNmlEJnwqBsif2jfm+PyTxBNaN3rYpFkTQK+0rrGNAOxWV/wBCJ0kwgxiXHwLVoG8NTIrrxMiIcUDX6olm6hzE3XbRZFf1Psjqff6ujR29sTcPei1pgfGRzvgAqIHDToyngNbDbYTzaHmDsZMwrhVALcC6VHdMmJNirZ+h4+Aqx1qof3sHNn848n6ekkUKtk4gQdIA2AD2rUSVwMTGA95YBHeotFyOYhipzN3srWpDN6Iflf14z5Ob9ObbbRt2rWegh7JrzO+k0WiiO3AYhqgJrXDZ2t8iMcJNlDZRCMV8DndlBfACGGHAiLJcZtnQk7PVJE6jP8ceelv9dOzC53kfXG+wBAH1T9CXY8UBfmYmhWLzTo5rAMblPkTRKEaBgtZkotQhQ7LLEKNFqfgwbPtog3XsLUMN2ClDrVbGAADVaNwDlEhNsrXS6Fh2BW9tuLbBiz44n5lsQyCo5cbubMgQ5d85YKiOkr0f5k9PV5zqcONcoRMnJkGJoUL1q4RSvmp3aVQeS0lXTQxLDB3tHSL1gYmoFOfhhlYFVoBnIPzXLs4M6sfAJNaRCERBjfr4x17J5b7xCQllj2FP/auE0VrHLhG4qKin4El9AiQ9IcW4M8pntZMUtXK5iTkRlzvjn7m0nwtCCXVkoqCIlK6MULVW0ja07CkDffd/ZVrm6DRDZeDQv+PL2Pp6XH5qd5BLchhHXRrowk70ZsWolmlycHZeoRNFvkmOKUHKbe+0bYAslGi3kgZycD86ZfTZmRG4vKBRMphUh1Fh9Fyxz3n5RsXa4Fg9wYMTpDx4t5qxHiwKc9GSKY51QEz8zu/ENXOaQh+f8YjWU34kzjdUuErVYbcqaQkD6BQqcfSpwev9ejYSyePgOtL5aFtgex6x8BCSSdarUMGq9tUM+h7pXYPAnPvxK/trfumJ1bVjGnipf9E19v5hwCkD6GkwAgIDA0KbHTMcJyqIElfmfNAhW0nXG7kKw5twCNhvBunaR2DIAlxHBWm6unYoAAIgDcKLFgUb0ddjaX3MDHDhqAAgAcgPyiv0YByqrMdO9MjKCLhXFyfWXFHSblSYEBzYKdrKXAAVHZQbsqWAE3rVVYFw1hFuLXOXsbizkapuNJcPbVzcNEAFAlmDqdN/2OGovNz01d7tgMgPJVU6FTCfNhAAAF8As2rgpAgylZ3bHfVXaGDx7r5hsZmUQhwMzqBE7mFVjglV1DsU4rHmlNPXnfG4FjY7fKtQNoFpGYwS66swnSb8lOekLqzlu++bV36rWDWBfvdqocZ33hBvhXyZ3r8G/Gvvp1d8mlzydVnUtBMW2bB4ObwAT5g2gVoMJAKBewCzTwzOGq2ZRAqr4HwQm2HQoY1SflfFGpgGCtzGSVHhyqa2mhdv52no9+aJxO0zx0cU1B1GL+QH6viaAAEAH/LX5A+GHWrPCAHcFsZJY9ojfZZZ68VGlgozuYRGP1v5ZE1vnlIRkfUa71ybJ9dO1uT3X5/5+4usJ2R6uGEEGCTDhlSIelpNdDXBgDfkhCBXLMqgScP45B8E35l8YsGcK4Fw7QxJghRXQANhjyxkDshs+AACXENSWw0JPISL192ZMEJPWDZvfcaNoUgUWr8my5pPkuicgZwfXzWjenE2FgLkUZ0UjcwqkCxvDOpLUmfI84zmoYq4lrtJtYlvE0Rg2OJGLBAwb6zDa3AKN0xtp9MFLGD3+0V35Odcp3O5aBh7+rXbNUcL9weBlnWkPdwtovF19Mk3c9umJgmBvNLbXy/I4RKcX1VEid0n29ti6Wru6riQeoFgn7W2ZsDdAig0mAEBqgOnh6eMB1GUAyrXvEuyg9owogT3MgADAXpZECI9aJAoAqCAKw4hoGqCovAslO1ssU2z+xIvrKK6WagMAKHdsYcxmqYUBGtQ1dLmFHLASXdRstJktG2pqLXHrVu9Km2j6dKTaNSRecmGA9qR1RQ8ybuAEjYHGvy5OlEYDp5devkvTF9419AjUSoOS5RqG+RsheEFXiOU99MAgRldcPnYA8spa/hAAHFTSddLyHYfI69FHjjvfTtr1GStXaUzA5sw2rd/bwkxqm3uXVrj2bTNHsIXt+zFbJgi2cKeKY9tlsEVYYQ+eGGyzT6kR88DR5/KUvrhw0VS4vVLkuHwZmhvWJcb9+vDTWxjn+VWHK/kX/SoUq3XqR0HBGTPh2QLmpsEEANhq4LoN9XPvOoKU+F8UBOnUn1Glx5gGAh7XSBLxrEWiAIAPYtCMiINxvTWehk9Wqi4xuspxDTzbEA8ATDcorOHi3J3Pg4quWM3oQAuaOJv+nCho05SaGjfypyDOlHa9bu2tZMVZa/9jA26ti1vDuy4Gt11HeEMwHM276IdGeBEfuyWDSxogAoBbgzdj++6Wwc3W3N0ddJriKpdNi1hptqqGbxb5nHT+/YIBNdzO2JKvoMZaZqCCOhrZIxV0H4OYKdDNGrFJoAbFpivYPtPh8zIXnWTb4NoMHX9Ry20AdRga5LxjHugH46M3mZujv7QGO7LVx3JrfbcB7NhWfIaTEPDHbemR6f1aLg16p7axgc96WnvDbFfX3mDZOmlPyYQ9BnxoMAEAfAGmwtNHAXhn/kkD4OGGbFt7xj6AHWZANMAelkQQj1wkCgDwIKrDiGiM3q4BivTrJaIktTL/gMNFewCAKzU3zCRFgIYLM84tHjj8KvxqvSnhc7TxCk/L23TBjwvXHiotEtbfKvw5+lkkFSKsNf9Thf0xxbdyL0dmfhsdeZV96q/qm31cL/cESbWfcYgVSXcZmWQwLWX/OcrSNJ3jpCS+0D1+A3c9q/MHX0J4ghoN41Frez4G87xwUEUa3SS4QtPiGQjKX3b3V3oW8PrArxQTyNmt9IIQV8IZNPPN+xiDR7jOYBlumI9m+ndavwQK8ml2TBDE7KrwJRJLIrn933ZRANS++RXGPp5aMdhSrynKLZVl246VVuF28T/3Hn5NBXZYO3PdwK5YwbGAq7bkp0NM8ZZ8AABTuwjFcFc0An8wqrLx71lPM8Nb7ER+vOdplI0sAMBin1K76Ch1eqH2yGZ2Lu3EDKrTZYurZ3nk8Y3q4OOG8SVdqLdVwHYO1puo1IsrUjqt6k1Phhu+CwaMh00+Km9c85JuEr71c6VVc6coTDYFApkwkL5KBMBGkf7cdn4lfi756Ou6Iy5S8+ndlkiwa9w/tg7BPXed8XgIXq2t5KXgpeNnDGFXYCAtFKodFqHWisX+NAQAQNKCjEjHjDI6QG/rdRLRB9bgS/YaTXsAQN9mECdZpIQpcB+s8gqBTWC2tJk4uAlsR0uMy9xNswksRi6FG5OXWJJ+ZU+6uIlKLJ8pQMyjuLRZO127IrQ5dg/uumPEImCZvK/Lml4CluX7+axh4z38jDODyjDNmCHlRwt7m+xaULzsS+/TFP+b2XbHspvwWjdkEDxXhn/+BvDZ6YmXQQ6sjdKFuQiUIcsugueudKltySz0EOPMn0RzN0l5hU0iIj7H5H1Gz+NIo14fqzygBDhyqr6EhzVel9pnCR4A5ye8oyUn4drLXgFM3DSeijXfhN5+ndLoizM2fjpdAmKqvn+Snqv+DW0Rk5GiKkcF03T2GfKlFk7koDmkTRmuCo6N/+zDxA9a0gLghsGHa3f7GzHXnwufk7RCTgAGCjS113fL3VyubGSz8C9VH+J/TK/wlYbHe0XiOoCssAqQhVkOS85pjRk2/zek1zm94jq4saDT5fWk/ic7uyhNxQaIu7LyxeJbA2YtXN1P8V+fA+oqF+5lf1IrZOQoEtY1WkB4fxbUSPoEY/6uc8T/1/ZhckpcKWjvprk6wVs6sg3IUODu0ZONHFcd5ZLmswfUJMfvlsiykJf3jDY0f+sAYIYjjho0sQ2dX8JZIXw89IAQsCMyZnx3zb0lYgpPOEjADm2GTHmEMGSyRfXChbWO2QPb1UZmJNavM3IH52+cZz5oByzl+TwmeeBoGVT4zh2AHcEd2CTOq5zP2JnU9ZIhEU3pEacXOubXNmPYT9Iyrz2PkZDbaY4WD/ht8sKMY9q9r4QvYas9aWviMNFJ7+q9aTPy/dt0kK9cnAfMlygmIvIQnsU/inaR6Tqd2tTz6bImJEJrFGYCwef/j8G584jsg7cSkZ1JF7UcWR22TCVpWf993SKBcqVNaP6vE2h0aYGTARq0Jjksjoe12bjEw032fDSJyPo4Bj9xi9L9O1yaT3PfAikuJrNzdXzglixr6TVyW9QzWhZk588b3VhVCbcC4xJTFxmnmDpX3GLqAY5jTDVTGFTkj1k0gaF7sdGOfOKJtC34HbEThv/ggIetpwlCFx6rmTp37GbqgujyqYuM7QyKgtJjP1OXKRb0zm/d6pY/XjR1aeJHUxcST5o6pzcy2PGmqQ5+/GnqIRKPmmph8ampSxavyhWCsQWKjmflDxIyLTn48a5yuvCMFxofIbGbU486JeA8t6yE1FZkNQufzUtrjxxFUZqkrRb2bTiFNhiUFOkCkzvjRVs3+aQn9s+dK3UXPLHo6UEST47bcLYJGx5JyYXpCWpTCk4rYnqgJwpNKUPiECRAmoNrbKSqfJtl4GbRdC1ZtfiNNVsnc5QVV2ZQiC+Z7KDjcoTZG7RxejediCl9yz/pDuqIWIO7v8c6o26FgDWcOKdW2qUNpk5wVqZ7ptFicadaSggAbPUME2/Blh11ariFwULd92UWmY1TY4TgZCMXELL7gAFASrd5nTm20qrowm2O0CZ0+fa8hEMp+VDfYeNfM73HtRrCU936vdKrvZ2nniDHEYbSlRIGzTajAABaAClphug+jeeCBFabf1QPM439WLly2aO58otQF1wCtUUMYVdgIk0EbBsR5Jmiu9MQAADJ1WMSuftRfQBU7eskAt2jRClNewAAeuaMqUxS2Iv5w5rVDXyc3mTjs7QxG59lTLGZgghu8cozqD3JijALFJ0U7Ukv0uFieJ16c5d/rCI8scluSbvbRFbhssluR6vflGlG6h44PE0v1L1aehIANKeQjcJSuwGgBUFNleVrp+PcBWxq45x6tt0YTNtUh6kya7DVlNJMCAAwAcZVyHWi8K1gynpm50IIyLOxByE6BoFriBHrxHhNcgY6eZNjNMYb9XN/jvYv8QwfriF/EQKegg4B6o66JycYhQ3/gt8TNnbp1ww6pQJB/iMzP1UdAlQoyG9/mDg3Ka+NJbtD+ZDoVVWZIP+3VeaOqpnlsf2PBdz2cZHwYETZAuOijAIAzNGsbHlXe4jpul6Isq3L6V9z+S53FV57s2dYur2pDXToHok04xKlpSclUQCAWtQQRD3ZgTpUnE1s0KhLewDAZF57QdJ1rqUPcxgOh3Kc2TpUDsTnTYZ6SZ26LYJIdt3145JnScv+tSRc8pb7FhtjgQf6vRj++ubchl+5sg5v9gEyLz1kYmWXk62IXeBlOdlNA7fTXAIA3BXC3dAN7g4qlnMQpmH+jUrIe5qxR/047jpiuT7FOGsrJx0bGcfNGL68lS4nhNEu+gAA5vImDjGNuCyDjgTaXTWQggSvl7IAAHABIkrMhex5e3g6EjGxmeQN2beiyFIsMcXT9hZ3iuyPG+xLwkZ0je1mWAbOHxQNfKQpTmx6utzIWX3CX3kE3jpVnVXcTXJZCUe/tcVqnzf82BTL1RHGinX5gk01owAAG7FypjoLb2AATgBlas80DSjLDDQENMWSNAH2VG67rHZ9nrYUejhRlKgUI1qpTGTGF3BJr5fDAwCcXlAK+1EKkkWrqewEvULy2BZrcEF5WZuGkObGuuqUfsEkKmkb9kSXnAomtUSlWMAa3PdzsXaHIWs4UdUo7dmdYd2c+PANkUj5mKNI0finPMZ+7Q5msZJbXywQAmte7Cnnh4AIx+4TS5oJIjFCTBcDy+MV4BASLz0JALBuJLJcajcA4MoQFrF8LJ1nmNgilrLejmU3h9yVoTCYvedGEsw0EgIAmCQ5IpvLtrRwFBa7UcG6ui3NGr1awncZ2ga+y4QwofRV11jkIzgc831wRyDcOfZ9wuF8ujaslSif6D1qlWhvh0erDpx815boU9Cr1KLjboNFyIRZ7GvDwHIUp6MAAAr20U0nSOBQBuBlksIR2mzXma6B0G67BToSoavmSDqPxezCtWtGuM/7f56GAACIsTlRYnxOZSIXyZlr1AYAeD1DEM6oqJj9aA7ScNpM7RakydliXc/yg6hZLqUDyUu6a/3qPrPClqjkqmgU9+kSttRiwKbAu9ie6H6RzVoltjmJKhJMBLfdpUCIcDlsFAMRicNDGRAxu/QkAKAiJHFZajcA0L1Iiqf7kq4xPKBUc8cMpKp2VgRSHNZiQgDg4oTUauPSAlHOYKZRT5Qgo9K2IKOGsPluuPIquJia7Nufg4G3vbzgle+an/rvjhIrkkdV8vSiyY9lgfZxkXAaK9ey5KKIAgDcpWVv9UHkSpghSn0tAS+jlbvU2vmzK/RObXBA79VIJ85ccydtbi5QRKe03cTCKVGigz/+PQ67vqfziSqw0toAQFIrt7eSTrjssPD1jSVsyFzDbt8UKhDfeknToq27Ma/VLILrCknIq1vdzfGkfZYf9ZBRkydeukarr4LTHYTj3U7fmBxSsz48bCRP1SNCuQWUAMCm2Vm6GwDqgOI+9x4Jq+Fm7uL3eAcFCoZBm/3YTPOXj3u/dodfCq9c7Sr9478LSSSCQ4BKAPnt8RFmePFS/GQXvScfH5UKAPnP/GhWjT2uNvJPhw2292QYi3DRA5VSAAABI9UbVTFgYAs7yjNoOSDSoKFslJSKOlgwcduCqmxaW6QsEoh8IsEsxgMAOUAVkBcEcwY0HxcY4dbg8Ddo5thf+Or2EaYtZpAaF1cr2j59eY/k8Naz34seqeGRQSO5bhwydxXC3YniHBMA4ASoiwakl6g5B2F5DHDHQOZqZ6YHyJWuHE6sOcdQmIotHwvYqf/lXd/fFAn/IrGkC+jKzMsKG72neWn9SgIMsZb0gFdVW3Mn8JjlLAAAywXOwHDZ61tZUxJXozMvs129AjtniVWVBoJQcfffVak6ZognkNVP0rE+MijVuHUtoVZ7UQkaA41/VZxg8FE/kVvCOfkeIhEmfDpSQocNvw/f8R4uGSfp859wPXeh6nPW+BNxc6zfmDBuANxFcVoKAOAKDfUecH0lwJr9vJReqfpsVeMvb9s02OAtTaQ9wIUHXWM8bJOTKS9s3l1+DE6Zs0mUO5/eFUA99zqJEK7rFSaF3oZ4AEB0V1IlN8J+jBxRODTKapqeY73IUFli805CgE9geLP0VnmSFnsYwPK13nD62MBJa2QKhKCqeZcDUHUPeuq1xJBt7MI8D3lu+yBlRJuYz75QuY4eDVN/v/mwJRiiwrOMep/u1Qw7Boqcn6jpOpjfhm/FvzwPNuLtrWabFcXgVWG9nBXG/FP3N5slV1GFVP2BcohbSVCoXrdT3gNr7w3KIMOut9BvxuXNTe3gami2d2hgW7A8QabjNRuaaAkZkGmRFSH76GMMtFKFF6VJ4Uk/YIv/iZQooCIDM7pFPSQzdF2/py+WDSQo9rU0Q+FWmX3+t1DKAxY3EyLKkl0CC6AJmtF4eRiEqgChrTDnsh09afuxJ9csBnUPYVk35msPV7WwyOp94BCpCvT7TvyTaqY33Lgq5XAIY5butFhBbjePXBgoRYpxNObIQbCz3csteRS/Y0EWHXc/4gp8MA6BCw/mcqvz8y4kSiAYbIJFhjzwzQ5mXg7Fgl1oFHSKB1FRQ8hxY/qFJ8RHJz0PfDInOMJNxcuVPWiQ7nfORkOaaKIRaKEL8U5h3cf9ad3HCa378I+OqNf707oPi3wrHIAew+4tfQMpqChw+0EvGZ7pow/ub0BNi5yLvx78hDIKKaXMOUxKEKYekUoU7gfrPoYWiBUR9j45q3jGPQsjh1z+aRO6Bjnjwzj8El9kRqyraAuDfhWNNQ5YuDmIVjteui6G2rVJChUNWOnidyteR21FVirTNPBOzlnqOQjmclsbhdH3SMKeoktqZ2QQN9OLakubJS8mIGcB6ZArqOPhJXwgFqOiuycvMyMcatrFJ2bLsKAkuMb6VQkBgNzKzcTMqga1eAGOsqz4cJdkgqKo+DSXZQdoUfENL38INKIyXfvk4erResTmPg3OhDBdBdj6neA1KyFTSxVNuut6XZv8wHE1H3xq5dEiRPGueZJ5Rcc973b8I5quLGvS5D43j6or2+R3nrqKnGvVGOqyeEDPD+BhmkwoL3CfTRF7Xy7xm3cRKhw82Kq1Pj/QfJWv0EPRiRbc7pTb4/FqWa1QYWdkMWH25IuiwN7lKAAA+xirKBDL0plFqEz+p7pvwFjp323tmUvrTwFczQxcAVxkSa7FQzfvAgAYCrfHiaZu5oNNxKFVidrrH3hHarggHgCwJBNl/lh7wezEKrysprWgqMLYkiX7du5JjKm9txJqr4mT1QxYuElUS9aFnrwhZ5MowM5E9BI4tkOgBoAT9bA6MclJo376/N/FYJSFy3Vtq9Pg7S4nEwDUZ0hNt6dijFSLjECcqns/By5c2VhxF0+UCkZbvbdr/l1EouPM7GRskga1MrxBptUsW21kOsMgpAZZyLlWnmwdqBH3a7xpiG2Or1z4XkcTYqL/hS6wEvOvVTF07bUi4dtd3LLXvdMoAIAd2XU6zZlKsiLAHY7bzur25s9ce/WXdtUGLrSrSnJxZtT9L14AwIgCS8SKibYoXIui2cQJTTG5BwBUkFlhUuoWP76pxp15Fmfyxt44BDPx6BBTS+2gpaP33O0xtsjH/u0dqSy6UrDhOtScTxxBQE3QhCgWxrJtPUglqWpkgJrdNmjmlsoEgA2EHFMdGkoQpICMiMBd70UycRc2MGvGYVenseu8jVaekEL8m87+AEIM8TtT5989vD9lOjZNbhqj8EIG707iqQ6t03YLLYYNTCkFABigpbpRrAF3odnps31ZQGus2EALOkrSgirxAgAGpi7aBZ1NHG7oS+4BAJ2y1DAplvwRTS9zEkQoPjdccYBcT79lBR7BfaDZv/E1qef/onV5e7KR/4/t5Pf0CzxQ+7+qPP1X9c3e17palAmNWjQBAEBUmGFzFJrYQS3VgFvoNTviIgDHfqowrVLB+DuZ89x+zu953TiSprj7L+uPO6uJPq+ykAMAwGhd3JJaGW1w8H+vYfXZpBdaAIAx+qZyuU4FDIaSBpx5o+tY6ysxMbXW16qJ1Ky7ir2RUMZ/T91WKEiT+YGjqL2fzz/hHILfaDlBfarPwwjhnUJLzm0XUgCAKtpWcUMPQxQHvSiOAIvWO0s3smfOL+MtDQuD0SJZ9hxfazCqOwGEaWJ5FwDYwWhcnFF0nEtLProykWAVXhQPAHDxO2UX1g2yB9WH9CYXH6ONBXysKSXi6/R3hO8yBBKo1cO62lMDdm6yBduZ2N4ApBwCGgaoOGw0l0/T/10MRq3AQdc2HYG8Xk4mANC3EM1tTzlZJK0wAs60sUxy4AJruYqsxlS0gppaSAgATGX59QrWroVjGumTixk0g3y31hdazoZb69vzNuQgxIbqyVTFeM7P+6EhF+CDRh6WG1wf8aE4lFQvVYwDFc3u36vTOeHtZ1Txj6ejAAAqHpVTX52cnsoEVDNxVTzzzJl/fWTlSgZjZOWMpmPYogCkcRcAwDY0BXKiaaaBlhOpxqpE9wPu/46kuCAeAPBKpmW6WJ08zIO+UIzW9O52o2RlLbHTzeQlNag5JhUWmJ3idbsKocmKUyj+t1EQOpJQLMML/fhSJRT3GnpuonCa23qVCFY4nxVWO+eES6PG/5PwV5JjFG7dsa2eQapKy8kEAKEbUrvbU3EbqfZ1DYpXwKHZijtb5BQxUUMhAMCrZcrpY3WczSBNPaNmkLaZLTJIrwkhk/HEninzMcz0nzcDTo/z2RgbWqo9Z7SJof1NQSycOWQ6SokUAEDreTj+aCM/Bim1SwLejgZ1eTeyo9Kb1chc3cWVuZ8pf51qVt20ijFR9yzwAgADdCsuygvaOvGcqcSH6r7VcArxAMBokSx+dgOFsgjDmpOoZFrk4+IqZD0cqFoKDc2yK2ooeL9eyzEOKIvgHULLrn0MflgNbjpRfbQkAbSgwnAK0XaYCiUZ/UPfWNntSHdWoUwAKC0SGHV0sLKDq762BIrdk9PYYeP5CxDvGAte8KL06EJC/1ygT2p9ANGGeH50zxuWpP5ojzHlEiqVIw0J+tOCHkYMZ4pvPTVWKQUAWBXij8Z7YJBSqQbcheYyaARKHBiAcBqgS7wAQICKizJDn4fqM59YXMdiPAAQQBUQFgRzBjQfFxgx1eCE77oT8aG1hn+95Xg+xvMXOaKLqezwhuK7lqc/qjx4YZa9HELc2NV1mT1F6MFFEwDAQMRt0IMacEC98/td9tQ8eRs4/GBSFZlDFMve1d00hqHsblKeWYuQ8FFBMdFaXny6/Jou6idliJ+l3XXWcr3WLGpPXXl5UI4NLWx4V8qNCa14+0nhSQkOEAKyd3GFiuo18uLGPC+8MGFqQrFj3kmpv67078hXk0stMi2+frECpzezP5xLzKqmaqr+BIwIAHlx0mWje/pBvMGCHABgKMRMgbHMHJOxRSGZoLLmvMLsI3mdZhYAQEVB8pTposztl6cjSUFspm4WH/1BKVsPVEEcQaWYe6LeHZzl1vpL29NBmCA2NVDrsLRGsA60Uofd2c0BR4OG3DvDvOoIWsBXqc8/KWXy6td56555jDWs9IKBNcgXZK0vttHbZw6L7aiJj0RqozCEw6v8WHSlmhJqSqRATNPjaCEl9KYqiKQ73l9EeRL00EAN3JG8B59DKynocr5jPTlSDj6WNkLiMEHZhGxGciDWQnd3go42qClbafoELdPTDKM+/PrHeW+Iw/tdlTu5vqxiVkqanOxXrlg9QVTfbdZysCRR6mYUAEAaARNohgUb1yYPJIVYNgHFLe4B1Ecxhi+XUo0zYqzdTqFdJCR8VF0j2qqN9Ezkg8Mkz2lYRF/L5PHRJp2uINr+hcNcT/RitpEddkKCh4aWVF3zLjXuXw4XTpe/KzfMNa6xwnwF58PaMBxDV0J+hKulnP6E252B+GxGD6U1Ert8FwDQhkHX8iPOnlG09fitJ2NRl2heeaMiTXRDPABgubJ8pQA2f8ICOpHC7tuRaXaYWygUb0dWXCARUGjejnK7Rt8MEGfsNzI1hCLFC0MgQ0BY5XgRU5MCyrcqE6eQko8PxIWUprVwkrL/pFCltM0XM0RKN3Xb2WPgTkOZADAgmNCi7pFBpg2Cqw3NMP+tdLTGyu48xidts5kQAHA53Y0gi23jPAUNdu3MONCwwrPHCw0JBjEpaJXpMtsRJaPsxNklyHI7eR6H+EyAFr+Wu1tt+t7CSZCs/r/ONq6YFQWqy4bqrYWpLdVSUwspAADFht6u04NaSe5T0RpQ5HuGETJrbi5gZQYBsMQLACyomOgGejrYU4n1xIuDldwDAJr07YFSVPQzFfQdrKC5A146CsG4RnTvQch3ggndi56+BzucCEwxwnndLnYfcElnIhsD7AwjcGUO7aN2GZtrQe0xRteBuq7ddhf+saFMAHALdK1FNZuBa+sGTUCphKGE9aQzzU53X4hSIQDQYIW4+iXXwQkyPbSiHrDIHnuw4wd7MHkyMNDhKrwhI9zDMe6C+OWIeUU66f88q+/5bW7dywGKJYYbYCkFACAwoaGjCxYFSTgRSEC5uQUnMwggJV4AoFF7WjR34OQTl+u6GA8ACGwBZLCYUyD5eAHV7zrQDF7gSAHQnu60i91p7NkG57E7n9gb3yRlBYFnVZ0DJdhGB0owrpauzG3XaTVwoUwAoBYNGLV0sHKDraU9FQquNhPfk9rG91ypqz/kOwT2Ff2wRbbifQr3p/RAgEhX/K4dAJNcD2hetJu2v4D6iES54v9LDbPOdVxpeGK4AJRSAAAAkeoFrAgEwNzcgMkMNuASLwBQ4ERFj2Z9C5NPHLAW4wEAESz5Ixpc0Gxo9DqIUKyDlO8LiF/T1n/2LCb8d+qfvfXzbgzq18A/vhj2xwCb7fLg95bz4BvVQeTDRAPfs50lK1CV+dDjBRMAYJZ2qrlhmsbZkYMtCwKQBbuE1bV75mcPPbrSByhaGu+r6q74MPzus25ffqCBnb4/swfE/1X++1BdqH41n57m2UV39mbKtBUa2mmbMo3pijBXLQnXETtN1rJbid0/qYtdNeobpJrXZAEACO6JN86opJvmSq6FXDqt6U59KTfLta0uNqRy3fe3l9E7xFJQxtJ6l5XlmwRl3FqUsjiR5/hA8mtVILxavKcfPQIzjR8zj6aU0NEUTq9YsFYCk4oaMWHNAbo0owAArgLCMdMz3fQbIcYmoPTE498wUXHN1csxAqmtFVQVYBekfFwGOzu1EwAIaI62uZxooaSCmmx1baLjCXe16l0UDwBM42vzP+c+S4rv0ZvT+KnCeCoMky8lrfE+wV/o7xv8lSlwh7fNvHCDt6hPxC3ekBPogDfibDrhjTmjzngztdu6sDq3oEwAqGKgk0bt4WGdKgd7GXRPCcU3pWykNMvNhACAJeBgC5e+hhWkArOyM1uuUIZptsCztwaaxTKI7YL2wm6yA8/1mfYPU3HjUuX1KQBnOHmBh/jMaqX+RvfOlLzGFyswVv/5nL+qwNpM09lQw1qYyv3LNLWUAgBQtGHq9EzXU+FMjE4ApdqfxL9n9oXJmpsjaq4W5B2kK+oCAAInIjqQ2unBmkoswqGsG+YS8QBAffvuICOXfWTvG9vkQmal8dMDHYybhpAOtnwH6OB6noLlW6xwckiCBU4vEsHwLvLqlxUipK5Eqiy5bXfAVCB3xgqbPjjaSZ3GT5erYy7mJPexY9tc83aj0UwmAKgPafrsqfd4u5kxCHwVTEoOXDSdkWJlivj2HlSaEAB4pvs7qADXNEPvQYaZdI7HwY6zdXAiCB3E1JznlOvllt0FxUOllxDdpDdXOB5bcZf9EyOGg9qlFABAB0CqB+UqkAd0bs4AZwZ5KC3qAgA+ELKIIPOJAqcUDwBMt+3DwhFADSZsdgrqHsYnHwss+W6wGTwghcCyITCnXeRuq6UdwSsTyWPjVv6TwOTENNl4g/AptNhBapOVjAWtZrcn3FAslgkABRanFo1XEGybnj8GlxCBkjV2ui/HdD9v/xrmsdqFjZTKBItmxfcSFEjigQDRrfhdewJmzdTXA9cuZRLtdCWyFf/LTuD5Jbfu9VpBi2EDU0oBABboSL3ZSWiBYsAdK8CCys0JRGZwARZ1AYAFOyrqvcdZiHwiwSzGAwA5MAKoAB85c+CyMWl88l1gMbhBsP/ga70JnBvwnJXpxVHhNbLd7ylG7fI9tRH4kDISAKY4gQate1Cx0nMYOyWmaQiB4cRZeURPolI7P5cY/UImFqe7Ptx3/mWSDm4C7Hlb3c4bwRCm6nPMAqbyj/fYoyx8Pw9W77Z5aBpW6sERWsYBCUkKeAXWLb65e3yvxWCRRWniEIzl7Qhf+rFTQr83mCUQtK1DrWnuwj82gX2cp0vK7f0a1a075sa4iCnp6FqsoRcVp9w98OxdpKHRn9KNK15VN3oEIzK7mIWuGWyVGuwGfH58x4KvDEIVM0FsFm8AgAZKzNwfK7L4dlFptgaVQf58X62yzAIAREdJlnTZznr7jw+6Pg3I4MydDgg9ICaG9wtI+lDr5R2brvFXBIEa4LFH1uJN5c04CEpJNg2d7DKdYo6NJnEgQMyzHVxKb9MEHa7ZW3tum9WxwijycNI0itQ3Tseox9mncAd3S9gKAAvg4Bnm8X2a85Vj852EwM6fX+PDqV2BaNC+L6ymBfnXy8rqC87WjZkp7GZJFwDoQGpBlNOxqx5QLjFd5xYHWdoDAHgoTxQohRMl2pWp/K6jBeWweQh21aMmGNsDM+swNzJw/yeYg+Hu8zVkjX+fYAocLnMQbIvFSa/aQg4ul2NGsexGKwqOblKi7ehmSjQe3Wzy20e35cUyAcDF5RmyattdanbQoEvjVCWcnnK8G+okCgGAnj2LpRmWQ8kVbNGZZfbQjsahpsg+HeLVEBA0midLc2eZLlBPJYeBwipvDhNL8B2sGeN2zkTsBPCbzBUA3k8zd8L5lf4BFAVeedXP+pya8zsaJwb9TGdSFwCQVIIoH5oY6ANyKjFlvHYQyT0A4BhVOFAKG5d0tLP8igqaDUJ5BxOGj1YfboqJfR5AB4FPSAB/fLBY0OHfW24JjfDS9pawJex8oti6E0lAtu5ZyUa27l3JSLZGKbstXjTAYpkAIDpOsWpYczY/GMiSKPMIuL37Qk/vHbvJxvCCOa4rQwAHxDJztFHfg4iyvb9wI4iMts1BTpQ5UHo49E7S3c/QD0Annn/AwVGYJm4FgAUF8Qzz+J76M3cZZcEisIDOzQVkZrAAFXUBgAIpiwwyn2ium2I8AABwRA/B8CZofHxssLIPARG8979uBxVQPFzcElzhpa13YUso+USxdXskAdm6c5KNbN1zkpFs3efsNnnRaBXLBADRMc2qYc1cfjCQKVFmF57dD83ptfkYPWNU0zVv76h7ErsCwMKnSJNzAFH4eD4jhDIktZVbYwT3W+YdReCT0BUAFmjG08zt698j/RelKpAHVG7OAGYGeSgu6gIAPhCySCDyieK6FOMBgAYjegA6bDb5hixcNhaNL/tgsMPrkauPZ5Hh/xTVx9cy8jhHMpzD47/4Fx99uptiNG6wG0M4Wxt16Kmzte735N/vgqq3BxDt4vuLXcuP+m5O/KrHNQOEt3e3r3MTR7zVhdiXtWt+OywrmazPDUA93Fd82qtWXlzDyREPXF0sFF2rpHiSRAqkm9O0vnks6JXW0auyN3kfrYqZzW01yFo6JSEMGEDoBHISrfXXnaGBn2PjjPi+NnGstVVr1s/TIu6iYgQ+YbAPYGN56wZnTGXU89pAVxIAAudXACJYLd7u5Hvn3hQsXE/1FcZ4gX0WQHXr/hQ/PRI6rf9AIZYYkUnwuCN2bL5AhOglScUiRHdVXGRT9J9hTa0H+dZKTgIfURn9ZCuJxD1q+feF48pEzVHxf6ZtDotC6aiPBpTXnYNmibyhxiWQ16hJGk2TTk5j49pcHznrISXLcPjoXjyL7qO12v4raIhVQOLpe8qCLLNZZPeMTX6tkvcoY1N+3Lg+clEl6S7CRFWURYeLjv0yT9uU/urrwkbNt+Ms+ysCjcAKz7N1tc6uFqHVQYvQoX32t/je8bVtNyQQP6rWCrvAa/vDNeWZ7nnOsDUxfEVIgQxzPmSaC5kFfrecfUoKW/lHUhGY0xBayFMsQBzRTW9d/5m3qdcTVj9/h9BZWAf9ScJkpocTjamoWmXZOJMEhuMGgWpWHGmUyE9msihjgijVMayAsVUeG8zpC7L6YqEHGeBIIiJpAW808RWYRE6HofNLAmKkXFs70Nxl/70AMe1jfUm+wKJJxLalbtlCU+ABmc2IWeVjgVYyuIh+SrLeyQ9DXUScL8SpKUA+bTEtCIgKOa3jvWSVu0B/3AqoqHepvrEA3nB0LSQxy3dMX8RpZJ5BSUMAqYumdWepHnuI/XQewBJXXw2mrjhzjlCehsGI6MSKvXqaNFQvncKU+fAmGIGsBHNDlRBk1eaU+3Gvu/yN+g7BRp1z0FUQkPXkZRjxEzE3VLJZQcFsxoJ5aAtb/zLKbBpk6aQYjInSGrQlnrnzuvOfOYV5qjQtT0XJd5oq+pYJmV39gxMgLlB9uLT9vNhCMpk7A9PJeasWPBbOUlxIJEBqorrIesY35MkdxrFj9WrFDCDCkeyg7Je92OW05tDhKwiEnIWGwKkRpXURVNugtDIoMtm/XAKxpYZnzkT0YYnwxifqwmBJbqW0PtTNZvDU3te/d6b0Pt0X6kNuuKGHIxKDnyDu2Nq9Y3DYcPzDEtHiWZFDck++iCdgE9esQsy40FLokvtZ61HRKCrLTUIfBssNEEmHqbqfik6yMHX2w3v8hqGXdqyQjp0LDb8qhT7G/2Nvu73a78QS+5pYL6H5r9inSqjp8DJNqLnqoP7NvdlQMYSs0W3lopkwOX8O678qIepfbHXEH+ZGCq6yLd6yUA98mJLRse4/6Keyoa+zBb+bnzYhVeddHdxu6zBFhgxX6d63qeoJ6K4wu/seG7C+x49C6HWkkMTli+C1RBMSUdnmAiFYPRAPDHtUHqLPeReao6lgFEeI3EhzfReP1gjC8KlrdklHZoSX7Bj1W0Jnj7Ymv5tnADH3FDh+nVIytDyo1grvA0Do1k1IpVgE7nU8bFBDGRZD69nFSy3UvJf1OWwFrIhmWt90NtqgBDvj0fNHycyDc9QRRGvvgGUshqGtX42vAsO4tSt1DvJQ6UkBEIc+aXWOTVa99+WbOxDhMwRyYCZY7zYk3oihjI4Bj3kL7zfJ+BKQWzHwKH3DpQTdqeg7ED9yoRnQNJDCf7jcillJGhJxBYjYAdKwAaBsJ18S6D9nXmo4/0Lh+nPA8d9ZmIKPXeTN3dBwYB9C0UZp3KYoqKdEXz9k9zMNeD/9a0DyAwKKOmik5CAYeynb8raKJhY0Hc1g6fuEgWwmDO1mktqcDtBQXN5nqXnccYk8F1vfqQz7LE8mGKhHfkgsgwrUyHhBBdQO9F0QmHPB9MQU/YoUL/aNBXi5wPbup2Oa7DLrnACEWxzoLQ9QcTySOhYFZXvgQXcG8zE6q7xukivOOz8H44YT7rJJikywt0kwt1viT6vxy5oDz83yTouI78Z9Ux4EDbiWewhiI0fXSWVKSd+nUSdo2ZnBazv9m/rI9l1cH06KAswFolWytH4qZgmUJoE+lawZcgBlmXclXECDeU123a198j4H7Sq6GWUOTmj6tmqPJxGlopoSbbSo04Ci+jsTiUrROSNhs29ox7p2O98gnnrWh0S6UopfF8fRVZG6/o0nMEt8YpJH0iYKH3oXtdURpgo+zZI0pOnsWBZ5ha+gCftYn2KLHKSbUFQMC49QBm31FifBBwFENHeL0iTllYE5hRs57GbQ0LCI/z+gc5v+qZGBUY9HHYBU100FmUDfBVpn2QrLNamEbNhNWA+ynkyYvoLkZw1HdlmJ0dBB4ZhdmB/+DXVx3/Te3NZymCwMGM4MACcAvRGom6bwE2eKhIqHYVOtV2TgmoQDYw3qHl2HwrD+tM2+1ULm12r5nr4QjRzihyLnP4/edfJtsQWxdvD9YyfJxv/OeGDXhlF0x59Xv+UVvZm9XWFedVoyfQH2I0ztSxo20r1ZKcNmYXJC6PmIRwpNZp9S6lYVLsiUe5jR7JE35OFk1Ozsgojavt1k1ER7IohaZnd7lG8tmreZuYf2C43UlDQOfKx3WICBfv2VmUMjfcmdMTRyJOZ+KZGQ1eolpSWsOZ4qVm/qTnxP/6pP528flWdyglLkU5m6vnxPWUUFAptK2lE3ulEYfoiUlKlzR2TZ4EbuZDYDZwBYRfpZzvraIWXfTgZGt9t5YGE4435gov8/AwAC69pNBjLaXTJwe7sSckCDL15JSOvAiswKkb8HZr4YSLFd4EOchsPx6SL4efP+zAj6uIh2tqyebeyKLeqWraPrvGNyalt0n0tqRy99JfD5NOIPi4QCuTSTZyCZN0z+k9JewzvYJKhG7Kvkb+C/VPzjt3To9L7d5CPHfeXJembyomMU6pqBrBpcPgBncB8GdHkXgBPdZwEt7v4AnFtN0Hgz+wBM4RpYtPUuANO+Bhal2K0/DeT3zp9CPzGBb5MOCQhmi0oUuC4oHJzeUqkCV1gI22uNUzTGm2htZcG/r5QHAIYtTE5JBObnIiy/e4LVSVwaKCltZzKRuLu3rqBNp/eIkDZylGZ5iKMqoI01UReLUOSCj7DIgoEucKMXV4qKb6PKqT8HAj1Djqx/H3a5Fs8Gi2FZ+QVnERFZbSKHHHUN4TdjKApEeG9djAnBN8VfZPXMWsKxZZFvEb/SfJZOfvylx66TqaA2UjxdEG3TyEsSoUQtvZGkAxmzSov9x5toHtyz8+LXAiW68vpsbSnysrUogBb735H6ym8QdV5goZgU/qlQSMj3zjAIVzuFlfZP67IzcKUqA9hWiySaQiksO6PW6oZFO+vkQXcTKJX+asdnsYO7k2364jUgyVxH4jyuT3jl4jOFaOd4PCYixU28cAzA9kxmxEccZ5W+vgP7GIguiEjJc8x5CBsyX2gGQXvtHjQN7C3qAzjYxrKe0y+8RXAt7c4qEQixhKmPGUrUVqHR1/z8iMlni/EVOA29I+fINkuIQEDH59HwqBSfmitPhR/PM0RfBOLM/nyc0Nog1BON5D3QWzrGkMLaEbEkwqTR+V8f3y5gv+n0zn5M850OGBtfAApiQVsVfwwXEJVCH4WQTAl/5dvKHUF8UwJeSWeMRFdgUTnArtnOOdusnXNyWne2c153bnJid8ad2TK4GVI/a0jjrGKyxNhJQC/g6u+U5vLvFLv+O8c+gM7ufQGdYZ+ANyA0BBLy/OULODoFRJg6VoJwIUpx1Q5ZlDeqYRIVFgcTza1wmBQ7Iff+Oo6b7nq0qyjgQSqJSbUwnrDfOQaHtLm1/1GHd/PueSO0kCCUiSxb2Meps4Bad7mIfw39a1lJi0VlI765sx+ESHyMMyLHtuOD0QTK2yLayTMT3spDbUne9K0rp5iUA6XTrEpMk0tzs16wkk8oZzMhe8OHHoWA0sJIJsVXdjWnatsyay3IZRzCeqwY671Eza1dvLGVDCRJOfQDe0TMcB+sHoNJQemqQa2jjXaNyVlbGbtDQ4rfXSh8VfcN6N4xFR1rcp5Z4Jn9OCXcM9NGjSWbZIrBesmF1/iN86BGWmtvuQKJcpVGyYqbTdqAscRuR7cAD1d0p9z5TtnBGAYDRwqt+9ySNJvONDrn2TsDj3pWzmhQWN9R2oF27vxz1ZstYWeyUfI8qFMm5r4MDo+Ctsr+87qX0hum3GVWMnQlG4XCKSnql5PcV/e1RK0sW6K3/viVL6QqwJZkrPRasrNa1YLJxCg+GZMCM0dGRTYrUwDWo88FEaDCcG70apOyr8mXjNXqk7Fa3i6NKI7DKxNmJAwVrMlqh+XWSFHUOrAlVO+1ZGKWliI9qia9ymoJ2UHZqqmWJNZPLdFzQEZDk2Q45f4dufuyS8o1FRlzScWW+ZMeT7YpV1TIuaDiCIr7ur3KycRbtD+jTZyQbYnxmJKzKZThW4vzhdl9lTFufS6uqRIakE5ZNJACeJEQBS5xGgvljbLLN12Dk46bL0dx8TVwgfyy8XfXztmllhRfw7TpInvu/If6SrqmIuEr9krZsr8Ejc0Ts7hEvkwtsUEfGUterwtS5J98OfW5N1wzR8RbUgdCYq9GpuZvp5gHNEM5lZAFJCgJXbElXuiGByUFsMUl/yzkL4nILR4EgzmP4SVD9vyBVOu+ppTAacGj+v65MAWLr55QTV9kMTCfw+GiTCPM25vmGY/4E9+yD9T4hx4XX8pG/iT80Mx8Svng1YFTYKHgtXYqFz4CoTLA647tVU4I7tyfqyMsZX3XHfbFqSVtvZbbn9Hy/ORLoKNYofGbgo28BLeJapnGfgPig6vMrYu9okWpg2IzOyG3fiXpFeW834Q9yuNjJRF0nRjE0fZ7vv05MmviuhRP1dQP13cpQY3Ikf2AJU6UujIlOM5LzEXAi7QYN+iv1OL4Jgwau3Tresb39peHUu+2w591fvm9jY/Ivs5d2VHqqf694D4e9Hb1JnH3/Sx7XOag75knrm9oEFkEfZOChrCJy6RxVY+mUo/OKE6M34npq4GyF8enXlZf1ZBQSj4p8X1PA7hdkMREmnEgCa4iE8CU/Bp4oVCI5sKRaYp+tlQKweAJoJHwJpU7fHwOEQmhk/ntgyLZIGJB6ASXF5aWA6pT76qitdCeKT2QTYcFbffZ1s/7pqnywq3rWziqIKyvGnWIqlexPNQ1nJ+UP3vNTEIzjQksk/Lvy7DvKzGlLMBK/bC2AFjt2Ce+g0kg8gXdVfVW2wk7bstlfOjQAniWAA5wENiA6eLHcmubmEzvObFM+m6z77tB2qlNNcF/EKZWYU4Ty5gjOB0uBgt0GiGcofPoxOJgI0rc4oZRvCWB88saKH8wK6IFCRf4WgmuKMa9kg85JXjvEFKptgC+bQC2ADkDIISw06Li6lgbBlzSOcTlSitaDvhmAdyg0eFisQYARUSlXyPXgqGZdImceg/s3rWzr6sweDPYfqBVDKbaAvh6ACJtg0lTqSZk3mJbZmQmr1qDjAD2hwMGW7fRK77mUitexpHlc1msfthDomF11HS+hC7iq4IvNJhUmg+ONqc8l5R0QmPL89cKWUdTS3zxP8T6bgBB/DPok2JZOob4BOVxrENbnShM98RMysmfaXwqnbBlKYEO54w9X4wABB1OY8eOc3zWgkCodEEh5HqSqJ+aWLVmE//JKkBVrlqdjiJD+Wp9ukD451E7eM/As1ZCpOO7NaSZ13mh8fqGkFptLBwQ5uZ/4mXwf+K7Z8hvL8UmOHxZ0xWokU6fXq0BbuFfC/Lcxv2btgYYUW/YWLekvdmoKxN6qXV8qmEZdfj9d+CAzJudUy91O1bu4og01lJkTOTFHFHRO9frAEkHTzydVJwAQFDCC5wh2TOK6+enMTnXwVNK5RvCOWAFB5I94RgXL4ALTyk1CHLVgmKpIH301fWB8ibto2hKqRhhxQbECESYwtmTffMwaPV5lDDippaKi6GcQVjSBboYG0AODD2g5xXgTQWzKvPV/4IUDNQtRxdMrVYCNU3lT7ZZT3nzCBBAYK8F8DEFjD3RHvLw3sIdSE0GBuhXAELBWbdzUzbxq1A+aYWnYEt7PIxyZgF61g81yJa18fRK+hEl8ifpxh+Piz/xC5QFTuGaOZJsaXYINUAved54PjbeFwUHS5w8kc28cYfGno4OJizliCkGweF0sazgAkhMF/MPxIfj6tWUe+Ve4CTZW2Azf+zx2dM5o8ufVzqdYIoJazr/+HB8sFhuUAJCZw7nm388giN/2eLT4QIzfDocTofzD0ekw8VwASqIMQUxBZ+gEsJMUTv36ivJg5fgcdKsCT6/7IFI7IlGfM7ZE0JF1ndZeh1c50uDytl1k5Gj+UagknbzWfiVteODp9prGD3Fgtek4I65leMugso978cunBIfI8221n9WdL51XyAVAoOdDcc23YDZPt2muhvoS+NhdIbUuylyusTq9HIafR4dP/1zwFurCzmnm6r14eC5Z5cyFG3Icp8oOmLk9xGiQ7ePyOWRv+CFxXxKHhWR9JXwYAj7aqzQy2HtFX4CAKDzUwop3Kj9nAr+BK8I6QgKQipCA4GIAB9BB09owkQtPHUtCgy3wfSvtCzG6sABoxRV4mtaLOZW1Nyhj+Xady2aLyn/yRJcP86JBX2JRXWvHh5fH0N0QTujs5anK1eD9TgfRhJQi3zDL8/hC/kPvW/l0yvzFWOuT7dGZWE4gdFVMT1mTkbBjApPlBihJORJxsYKbxSo6b8r2Ow9WrA3aoEFmxxLGinRqEjEp+FR0ClQN39bcNyzsT3m73wUWguBiACg+/yVXFrBKv9tCbcXUq5bz8Dppkjpq75IvmROd0fGWVSgyQXYJlmjUdOIYIfAQnCCHm64d9LUPqk6KO1NlLGPsiaBGjNqkikJxKGnpx6dEHNlRT7MBRZL1psDk4eR2gN+RXt4M6hZye2qt1iP3xyAkHb6qv2eABhSnUVPIfAUM0JHPAIAFsrs8V0BTIRzxLwph/SN1g9OfWku8e3rCXY36mYvCj41ooH7Y57cpc0s10f4Oc2+Fox36Xv2+QVnCiQEv17N4zMZZAhE/Z2259iqT2baI2Y86YwnA5225+mCdNl5YZKJpQNe8P2HzwAAL1Yz46XcICq45KiUaLaHEzNHIPyZX5f0fY21m899lfmKUfwwUbdx8cGO0E3mvTfUPUOIkNO9FDKA0ViJSQCz4h5bhvuCY2foju96LsPldrCrolih55QtV4rMRHaruo43hCnaOeKBljBczeXNkUm4E7CsEIgnWTyJHry2askAXIS+mt0TV/xV0QAA3W6/ay9u9c1uGkW+QTRnPMqcZXmIyAVr+mn7Ka8ERWFD/moxtAiEQoBTP4OmsArmMYz1Dmmyrt2cwUc0XF2mzHWHC8EeB12GF6FpolsFosagKaJ7Kz2/GlVi3QJxYC+R9Wslt/w6S03FSVwT7eXXXUpy9k0sEZAwcQZXhNsDTWX0SRffyIprm1dJhFynuhD2ObfW3jn50W86OT0J/r4XmCHpKqLHyQLjhhIcnVySdhY7Xv75xrapwWY/MFfwPTn1wjSgsSxdUgmDk7C9WAeMI8kjil2onrJLbrrkSXrasCGQ8p422/I3YfAiXoqnYd6LptEZDxLPS808G7YlzW3RG9ETZ50DN7Z7uevubJaamvpOn0qjdovkBBN3hkq8pcTk+Gv4L82LZQ6aETE7bBQJEB1takIqYVyKUPYZpkT/pbNOZ19smJMNSmTURiiK77wKlZvYu8LmXmQFWP7zwaDaHbgNzBdgNBa+vHgA4TtnwO9I5N2RXI7etwscg7GFisbJi5v6o+68k5pPCiuvaIPwvkjbzOn1smMR7lzRyUKHhGFpzmdRTfOTpKiTOng3ehoHW/5UFM2LkgUg2wgnbcjAmsh+y0zQJj03oA8HJVNColAPYW9cVszdrRntOO2c5OBNqqitHOD1ZP0TiiX+noPLDLTMsx+7FtpmpgUFUsK6clkVK5bnQTn0Dv1WRcoj5qmhf4DN6jPP0xBt/Kk2X5KxA7NmWjs+MBe/zQNFbF+2jvwy0QdG5m6jmaIAHigFhb5LobPU1/My/2TeurS61yasvwNNbVkdM8AgMPSx4oL0yRm1DPqYaWP63AR9vGtb+myCPnW3eX0OQV96Wre+GYK+EK1p3xzJm08RJniX4vz88O5aiH5EegRIWr1q7VMNjO4zY8TcR51Wb8Qp2sQwKeNCUcCG4X1Am0kK0Tfqpw5vLMnjBpLS7ZRUhu7wds3dlAu2/vlaiS6Q/s06h11CjxfxcaoUKzCcx45U9M900Flq4HaXoAEArBWC8LFJcl1vnB1BVAxuZnq9EbNEZ97cDDQ71cG+pUPMXnXtbE1DyZ3rkt0yPYWECgcR1x/UAEKmjYFkAgh3bQukI4DY3eZBLgLIPa0bNEUAmWhNoQH1On103C3+/K2r3vy17GFlcQub/XBW/focHAPICc6nUOAtQ3c/c2JLbrAERGZM0Lpy5F5igG4U8Nm8JoFojvsJL5M/y/zJAHjAg30e2srcWH5yx7VFylr1i2/ZzhZZkrIYSUIDZXLX2ofdKejVbE8P4SFaX9/O4HZ1/5+JuqXnUwfAtqGpuWHvC5xKQ0eqsoJAsLsJ5iBBYXlCAABvQdDJPcQYEAE6/9QOxDm1HaptpH1tL3YO6dAW+UAo1ji6WQ7UFbV/zRmoMWnr20fCpvF1ydcO72AMXxTviK93PFn74/M6cGg8L/4SUpNwwwPRWhMu4PzSBYGIvWfrCpnu+n43ONzQ3Zk/fJxmIOd9zufJ6nSP42x+nd7qB5jucv+YfcTQ3eHW2gCAuvGwtluFwQ2NkS/Ma2h+IvCbm8DcRuNyNZM9JfrMp/dmxbB/MPpW/vz0ri5dSwg03CgdFRnOih9cfEaCwD2nghM13EJ79R6hw220qMI4jTskJhIFOD6fLOn4CFxLB6rZBCJOikDM14zAhHtkDEHA73ediZn8qdYFg0kQ4veVe19nci5/dxNv9XfesugnyIdnOfOolbWxdO+x8K1Vh8mlxMtx05pL1G4i/gr+QYsdFK67TfrGLgV42nwEXlFA9qYaxEUB7WxqQTYU0N2mPOSWHqb8u92V6GFQv9ceTMFqXm4COKQ+yKsinh6LwZ/fAazWf6039dGtZH7/MZKprOkc4TOTLuBLVfOmjzX1OmDHkiQ/OfIHQN0bgVLX+JCYnHC/XhKS89DfbylLpxaALXq63RR6Hdaro05eyxyGixAO65PR7mY9V0iC3Lq3+x/10KBo9f65U0d+L020uPWOAMCdZaK9f9zrNROd+W3UJ4r16UbfnQqvELGaJe3VUPbXoL435ou+fzNxmkn96ZH3j6aQDix1jykaDGOGvv77oexh4UAmz9433Levmf0wG8+yc6l+DfW6db9XyeWvUveUTUiElu5dbconDnSvsKUKocJjqNTjN758m/v0EXl8NLp4fXpIEAHEFMfGE7oDWrlkQZ/Po2J1VRArAoi/nWy42Rbc8Y4AYEqLTvX3eoct7H7EEQV4rpTn0+DYhyu9ubVjWDPvhLU93kHs9bVwewDDhEv3POHt7LGDRL1L0ACARGKYBOcEJ1mFAcHdW6wN66vDMP3M9kxypRPQQ2XF95PTbu1g7aAt3TVPpRVEdmvJtLx081zfBkemU3w0Uyg7mi4hTVzCFr/uzbuyorQR+sOJaNI07YfeeCT+kO2QLDmbIkdBEaZZpTRxoZ2VJSZ8ixPahjMTfYjn1Bi4QxzlmOtyJo7SQ0nOqP2mKz8K6wO0v+3Pr9NmPctarUhmuybxustm3pwRt4U3XZ23xYB1Z4R598GfZWqGGhJXuTMCJ81CrgIuYGVuQH+t+y6oquVLm7wRNB5Kfw1Vg79mfCcKSFEWhPkO/nnQUa02yaStZCVle9twrJ0Qn4Dhxto9COnri5l3buRlSuCV5bDJScQkAbjcNSmWWj3oYJk0yZQvJT2/YoagJNO8d/cqfIpqvRSPdPTw/q0DPyDbIx0/oj8ryM9Ds/3se5JEONLqIfNfN39k/Sck41nltNPfT0eoWWoPvei5O1J3JG98l5d9XQGUrR9v8skdAU7/eDAwfzoVp5zDWL2qlHR4aw0o8xu4LBIWahVb3xrdY3U/rMBWW4UtkX/t2SJneC67unXOuL+WoV1QW2HXVnhQhqqJjdg0x5CoNpEtDZYzkGCh3XN2HcRyloIBAGyjZyaQbK+kpmKBskLNjj9sMKQJt9Nfk5iD6/O2BpoLa9i3hZhb1u5sB5recV6G2WOcbhayR3AGVuZ84Jasy52B7bR5rhq+5EIHY66O0WTgohNr0IytX6Pzn82lO5Pj4DZsqvvqF8pX1zgFiy92MTHTzFutXSjP6x5yRUiLdglda9JV3UKRebjnO3O8mtGEpg/3+tEWO3VSNBow98QxxFRb6m20rTF2V87GETJu/3C7EHanrSdKhGFw6Drh8Lpt5O4VoHiq6lPWdtQeZNdK5Fq7t2Ta/Onm3XzLZJhmXUetz7pM473r3/Ngxg6mfyDu6tqBuzn/46ZaAFIxCGd9OcrrmQYTWPdQ6dPvOO9Q0t6ah/IO7L8LxFEuvNyh4ui4VjpUqozjPGlAi/csEW1L4/ItJQ2VKu2Mg8B8bHLA9tT+XQ5Yu4vapWamWn/HXTGuEHKBdyV0gx7Y/UkDu+2QsKaBE1obNge4UevCHgK3afPYa77EvisIsP0oeZ21jY99atCOjxomXbp0CP+OIWojqOah3Fc7Ptw/Z3ucENRt/oTu7V+vrfvwL12zwA83rNQMBY2qkXr/G3dWIWGVfxfTxztWnIgF3Qx0hVxWDgrycMt53Ic8bV9QpwxBN51OGAAJdzqUMDFzgus1jJCss4fjQBjzMsTCEmx1+J/glnge3v0i/ZfWfw4TOuUAQxzSbfWEESzdc7GSf3e/tP7kMmE8lx2Wl1djmpDsuaxofeylk6uRUn3P1RV5tNF2FWgLuwcrvA3FcqgXDhDeeYIVIwH0q+sBcAQQNh+zntA1UIklhWbD7yHBWap9aHcHnhhGrEhHADAHFh6fG2SEI2Depj46r1hfr1+DC9+b5DUeRxlWorgfhYRAMTaueIhzxT0/o6CzeikYAHAO09k6zM1ce5VbOtGX6elmfqFunYzSZhGXeP2rvM5fp0VfMhH8iM/q++1T7zMjvNLGq77GtxUk5DTfShc7jXcuFq6k43LugpTtTrRgek3BNL21eW56lasMjDrLYDU3SbC9jPVqgJY4HGSATI2eZLxRHbt76J1qdswjQLGsioHIpQDFrGJh3KvDTkap6ncWW5yMUvOqdmYgRz8fz2wcR7ggYxe/Mf8ezLRz5+feSh19zQ78H1WkPNGOi6anWzbV9/zsswMAk1/Q/VF98LP7ICi2MyMGYfjyXAhXD6sz6vCuonwvt542Mj555mIAAMChF1qextCbMMFWgUSZzEe8Rfl8ggcp2D2LwQAAtBRQO8uqF+1sWr0zizuC3k5tXhPILbh+HSVoS67dAQIq5C6RIMNwQSwKMts2xq4d2cJ1mBrbYpPrMFPugu3u/kzaGVfH40XaSyfWs8XIu7wHu/IWsyVMufQn27tMau6ga1x301FEXmuXIwQAxw10rHIPz16kU2L9m4XS43t+FHCiNbi5tmKRgbbA9njZDVzi6B4ciK5t/7hoiNNs61UswkRfkbzRjkI6qg6T6MnT0woyu9LDg+E04AAAo1L/lBYm1eFtXpcwhQVRMKu36Z/L0e6S8NcLzQCAHbxFVOf2qLdiZIvlbZPOPxcWvFYdelcBR9XHNIC3+x1pAqzc6qcoJNXHR1LHgFptk2FAt3aZRtKY3+kgU4v3PT4YH5zcB2nkYFbzITgYih0dyWBcLPhsSKW+xwgmdCR40FllwEcX+NJyK6u/Ny4Pq3uUDxmwakvVBZUl0ar0jg1OPT748z/OHsb/N/QQW9nIqaS3xGeLozO2Yyn+Ox4zRMoVSJtBkrPcc41GIJFzgg0JpPWYdqUkl/Dk6MYxkbRJ0R49xencyZ+rwXV7A2EPl5nuLHAKByZQnnzpVkSyLpUMC0mLF52VOIkbmrJGjkDz7L1zUEh1VSRcHkOHXeXRrfZg8Kqu/FXXmgdU9+F5BFDfAGg8oRRQiSWFvsZNz7EX3MH5QnUv0RfGkhhx4yYBwA648h99YCxDF+aPC+EPPYOfz7YgOd5X0PveM+rnVYeeYebN0cFxLgYo0g1OKQwAOGhLxAazAn7dt/Vi8HdjwvO58/2vN28eex/g8+Ojzpg247mlzEXvHnkO6L1a8EQ7mfp8u5/bWN0WlsEAgI39HLsAKop0yqZxASEmnDHa2W0gvVbnDSTEqcfGHDMkZFK1s3iyid4ZXRAUAPWp2hjUFdQ3aFvQCNS3dhfQPCT66OqAGiRQ5y6DOcKBipTffBT4V5EN8S5pI0F7K92zQnQrUZwLAACcQMfuCAUwxwRFAmky5mwAzjB0xaAaDWEAgGuB6dJXy3HhN4tWbBccuAUPWpzq88QDSdSwuxugUbdjErpyuS4HNpTVcZApjmzAm8g1tDJT1zcCMSfrMk0o53EXprXK6ZjtDN0tnOX0No8dDiMJiZwlbBZib0wpsucGBtOlUcUMkHY8pLbtZ85Ff0GLW/5oYkm7Pl3J69NPs3ToB6fyNeec9ryRFkyjVxU/1ESapHn/HPpfIC3o6n9ga0B8t9HjaA9if1aBk/pt4n+TiT735J/uB3VtBZPBIkgcUvRt0pdw6AhxfiTbW7rS6i0Fccd6MLiqtSpbzKHBdWEVpsteyZ60f949yLPd1qduuSEK6fUajgI732mg7x6Rp2bP0XQOkKoGHAAg1WDQ+gULBjAKcXgas9qGGoCZze6MgYOGF5oBADS+XdmTpX9ZZ8zdYMOdsu6PDaT7tgadK8jorY1RBeDgbuQUNALs/qQlV4WRuG8Oc0NX2hojAt3VtphVkLvlLpjNTZoAO7LR7wUGJnmwLdDBXcYrNlgHnSB2E2KjLytsEcnWsp6eAjtzQe09gimCqhiCtU5lH5p5rUk+7voUhTcSAACmfN3EglP5WnlOf27UCaZ0UsUcJ2xFwWDKc8rFcC3HRzHQ67vA9PmIDZJumwMbnsrj0q1kxpdKJ4bs7Uusd8EMVYbh4AeBcP2f1BeHe7wGrdFkwRHt/Qx55GI5gxWbgWpnOx/NFqHnzk+1WF51H55HAHUGAMcKsjtgicWFdsHqgYvOLvrqAhXcYFQIPP99BACpoF3nP86CkwxzmD/qgrRs07u/vQ323ixbI/agZ9BkHWPhszOz3saCo5WDCphmCX3yYwMFR3umwTg3yf5t+GKKnbBsVgwbwAunu6/dLAk6eI2PfesKE3IlhU6A6alZGhR4mEJn2spewVO9EtdXbbp+gK4Z+3EXxK0rn2diuop4UpXBlfOT7Mm/h6Cq0fCpGuuCMNbAF7p/jYPNjVNqtzTO9tehdaLuTGqKWI/mxerjx3dlUfrb5k8odZ1dOCA31SR72qON0BuV4sZAXYnwU4lz9CbIK8JUKrKxzJD+YO7Oky2gbI0QVFciRHRbGSAg2tYFLCboQMbADgNOGTuGA3AZMyzCwdv87k1rgz9fVet7FU8S37rZz0jeHI13tRAAADiCauidCSjYENwrDie6eznGPAIgwzy3Ik4l4u+cDwYArJHeLoO/ZsFXM9MXCsX2ksMtMR6I0nKmQs/QV1ex+/DEyp00dHCZL6fjXiinUkYIFPIPNA1amWFD07Z1GQqaznCGoV3lmDsOqzyj1gvshC+x9kJUtSvFNERh640iMJCmOSAAyBpMkR9uGtracfuXbjBpy3JaUBlrMTbobns8d6AspjsSlGq2fyGCDHptvWnCvR+8hVdHMfZe4B/tXTon74qzugFIVLmic3EAANPLWhhy6W39XtL1Kk7XkgFdwRCzThHvaGbvgMQ2mQEAYoHB/g7Gl+D9uTjpH85JOXCH0iWXx3YEFZ0YPCv/rkHMVGspCbhJJq93UxmzBuS+K4UHptfubw2IJiNREcTE2mgaZK11cQ1IFGNwHwNj2dFgGFjiwaMDlr7HpDTIbhYPoggKubBEAXNb6rnxXRTZi0SnUHGq6qIOZjB9TR8BwGWBHRuP3d2sEKfuYjkNJiTjBSYNpHlXi5IJMMvLZWoJ3F07FVYBW26NtmuA1bX3225gDrUVVzd8jD6GKqe/rwqbW/B0BaH6A/X5+EICqPQAZE/IC9RiSaOn6fdQ4CJWFGgHo1SMqOhHALAEVzePfb1wB+OrgtQR8jmSTztL6bmcWLsArN9kc/XJY/fymgogbeUQAcMxz8eHnEnBGSwGAwDmfDqppmw9FWflwCmGc1X0volr9L5s5epn8vDVXuXB7Wm1jhZvVbGz5oM7/7t41favd++//fife+PD3MryGqE8eqfrGCrC1vDB7aZ/Jj9PVR/kUeB2m8EAgJRUAHv1BZwFvDTisim1C8yoPm+X4DZq2M8WlqjduRnQFAvJHOgbHTN6omAI7TLbDu+ESIwBc0iswXZYhcRmeSwLJG8Y8JXWufUDI4SzT0KlhiRtLyp+0u0OgVAdPDHMSMk4Q9tKq2OnGdr2uYJ2wIa93fI3DnPv6nAqeikTPYcfLgoDAIb0jrULqgA4l+I0rJTSalOfFzZoqCJsKjkXzc4FS7U7A1/8jPmyBi0YIQNxUlZm5phMVFqXZYMxGMOK4KacnS03uBOHdmuIJKcuHB6x6+9g/D+JsaX5lBZm/39/j/8BVLxy5pQarOp6I7QZFKo5IACAF+yJgSgmmpY0t2GFC5O2vOonjfFUSzB+8x6dl2D0ridY/z1EBbpiPJESKuiKNp4zHpeJV1HaBb6qAHTmZ6n4siYOSKIZD8NOmtL85JCj6wOtrwr2ybvCwo5Ar5pOAIDeYV/7mU784ZCoHIV+GR/CRFAPL9QOkByvHi0ghWdbBWq7yQwA8BKc7Zq2awCd4mMsAXTX/rkIcq8O3WNAdbUxvgEc3o3GDW2l7f7CeVOm7zgk3l1x0tbmHHAu1uXOwNa6C6kaZKrjGgVtZIpwggMOGOKuExMM5m64Kva/S+2MIbeM2f/f7xOhDQ/hwMsKWoSAas4DIeP62yK48qKaWhA5E0E3ypPl7xxgd6EAAGAO5GTzF3oa4lWVIJureE1ZSKJ9gdE10jjWongKGO9lJOVl/K7j/0W2bPvn+3Drf/Zg87cglrtXhSH+2u/j0eUE7tWHMJcWaev2ACFeKY0v4G8qGK5IOHMcvGEE309e79B28qscVtOAbHFUaAOitQzRWqgzcreZh7mtc89zi6zkIcitFNX5YABAHCa1VsHVm7mfqbPScKjh5fSCJH6tof9L+vv6uPWpryoJez6948M7VDedwe7TOwHYhCk4RqbQefQ028JPLQoDANJshCnrC6QDEhlxk46XAWtX6F3y8EFvrx6bRWbI/jU5A8tPcj0p92AAXOiEgF35XByxkDaGPYFYaetC9OB0RKwhYyAwVztJYvvdSNHjYmFPSMd/1inf0e94n36o999UHX7hvMxf+DFpaAZJ3DixlIcp9LeMkGwUlMDanPg3KPO7yidJvXHRM51hTgHm9AInwyWcx+nMtBcqprbQmQJxFAy6LLhGeoPfhZO3f3drbiY7O0+F6cwFJCihz3gfqmBuzgkDAManVVXL1tXYpdNM9sAMYNaEc5WLtbH2WZ03Ja1vath3ho1Nj5U2c1LV4B8WnIWoF+VQRBDGQbpSlMZe4NcU9Pwkb6gkkW/4w626ZtNJwsEQdJ2MuILsWTAF+mmyLvkD+FT+CcF6KjzIcWIF5ilc6IJsyy2DtpA2ZtGEttJty8KAtobuwiJCLrYdoNWgy7Wfs07s6sR67kNHNlTFkhFVIa+nUsRxKatAcw2McVFk5JJyeDqwp7p/rgAy8tsj+Dacpol4U+wY6DLrnxx0Pb68nYJ8ncLtWIvG1B0GdtEiNxu4Ga4L5IueC4oTC5idcW0bZsYWTy0ryP5e2hp2cR5588OvEuHeENRY/wd+gaeeWYu7vt+IW9mpx3H7/vE7nuFhh6dJ+hk2kGmcJwG+Yk+Lvxl6ssISfPkkku8QOKj9bMCC7cFvaZVAmUU44kCP7Tdfq9qV891AIPcirduHo/6FQM3C2UuI4Qe31FqOBmirjr3x0zsV+kUTqjOZFwuDbuIKErqcOddRgcA6615enHLHxd9maKDSF+uQPaWw02DtBsA17AAAIOxl9IuZQF9ANG5hrBOGxau3Ds9laKfwrYVmAEDEYKWKtjEI0hybAQVV/k1ABbXo0dJb2PNMkRdq8FUIc1daCFT4O4pxSx8/pYAf4JsBfOwui/DSrWrz4QlTBfEuVG+mVeWU7jNJwikAyk/rmxAKeqxL1NmGIQZwGCLsNhDndxRmvD/xE9jxX0Em4e73sSWhh7P/UEamG5x4W2wVR7nLnBdCOY4OkEOCxoXFAzAs1rNuYJuXVRYH2Bo3o4sgxzUGvOEiSxYAgK4x+f3x3g1u4To23FBX5jLZFCCOdYlRsSBvuwsldYCCrctVvNUSqzKuu+huF3KJtkUBkcvY2ieDPHbXY6TNDx+1z2YeTbjH/MG3u/tP3t5A/wy4kmwmZlNnR2+6fL7RrqjgVRaDAQAHFWxtaf0arm1WDEsK+X08a/PeNZbeF5+plr2+qoPbC3VOiNj21DhtJ3xTgatiR1OHtQK8YYNSXQBn85waBY0UJGsxGADAU4HwKgwG4Zvav9S7h5W2GH/Wx6FtviD4bl9sWIfRqM0p3N+B4TXUzU8Tvn9uHpmlQtxcqqJUtOIL5K16mGwnjg2HwpsiPhLsuo/p1Gmy5zIOKmiKih501YqKtFY9Zks2r674l5Mza8zV7P863Tf9qtocqqPvE6lvjPrvCS1CMmE85aWQGrogSERZGWnwxbZFrsMXGYOMKVxaynMOkIZspgcpn3msxvlWVvKtohruZL0wb4X8xZvQnmjBHQnbn27dMz0hEymQuGkAAEgWuJLWucyEOwpcDxe8bQQ65z4DAv3L8HOVd6+0qapgMxgAoDoVj11e10Hum0khZx63RBlVYu9UoXc9FWP4V/rqwNxExZVhNBwmZ4xMXmr2uQPtqhZKpcMMCzk5YuzpqLIyZ0DHsXU5BzruMIbzIM93DtDNlfLSdmhvG5CbxYlMRh0qOZYj5Y0h9smmUJVcsr1kdH1xdH1BdH0F0/X9dM02mim1eKOrJJrWiHLGyPaS0vUZdE3+c+J5S7f30zWf0lipRTpdicw5hwyG4EoTp/9qFFmowXUrqi5sIiXctrUgMitgEAtqjckGxMs5boKPauDcUn0a/JfNhvXuDr4Hth6qifu+cVjpsFpX6iP3w9nvMn6kutByExbVhJ/SNdOO1gJeZW7Ipz1W63zQxB3qwdoy9QaEqu1fHYVp/Gri/e6KOHn7adnAtAi3ntbhfA55EzzG5r6tk7c3peumADcvDO4wx//BTx/GbV8WDUzICZdkaFU7CrP6JMwdz94juFSDGQBwDIQWOtqAIWCtRslNnxn72RjpHylrpqZuJwPkxJqzqbCayr+75zVt6F1bMjW7qUSonjXO4tTpGIfMuaAslMgqbJIlP2Bm969s0afumU7bAed16vPQ6SSm8SMlNftvpt+Mmw2nHGGvCborDTRX6dNlr4W9nW1iVBqhGcmkU4A2Gq3amskcNO6zLjO9ch6iMdtdmGFtckZ0mOYE5IzPCZ6LoC0XLYITAySH69ALMfFlhbuGeCLrUadDt5NafUkVYwhKMQ1kR7Cb/NYmobmmBQAAg9HqJrcvITR7xNXIdIMYXChxB3mqLjG+CTQzXYuypekkgxbM5WrNbLSKL7k7CcEVq+4TXaVAcEXxfv1VZIJr7Kpivz64q731t+j/Fxo6l8QIL0AqRH8oQycvx+/ti+LoD5fGF//K4BOdT1Yb8CgTLB5c9sU2rQo9fS9Zv5v0uBAGAKS1WgHVuqarUe6NRjxCD9nr4mDgFzx87jRotXJwk1ITO8lV8B6phnXYS26ttapiQR29G6EPQ7wOgYkwAMBeAjIGjbaqORvgdN6Yw+tAsxWdUlS1ZPAoxBvmXbMYhSy9IR2dHGXcIZnaSWWxi+2kFg1KnaO+r8BbDTTHOuoT5q3GgHmUd57xSvpd47IX3BH6VLs8AABMo+bIMw2h5KDQgxg6JFMtVfJcSzSkn8s7O2XgdJK6JNZxbPf2VNhIrowqR00+TzroSXgd8Ow9j0LFHxkENkjCCHH3c37FPxcyK55oXS4AT2IMF3LnYmkCraLRXlmdKsfGsf7aJNoDp86UOoRHKpFVj9CtMhGNV41v1z/Inrll6QkVUakZbHOlPsi+t8gW2cecWnZ+LXuP9xKXaWc20ZiarTdyKmqGIQ4Npo737xDE9oXNWSS7bS1UBDtljaVFqqtMN96CufIkFnfH/qEKeZWz79wQNuQeUjkaBevufHF3x8nbKxaCFaypYbP3sUqpw3upuIfcR6oMd7uS83UAgOOKihhxJWXDcGXL1sMKctqZjvBq77lmAMCh+HRlW8IKTLYNV3r+X9/993aUoiTOkxT3rkDf3vyf+XuFrwKNetwKyrpbi5mL37uyfI+gu584vL2CPe/n9g+p6/ZK8lvvL3EGM65h3/n1lmjHmG0isu15X9ayVBOu+jMGSQa0yt4MjT/WLyP8nRLDJohSyuqdyXQLbtsN3kKBXbnbsBcUwXUig4O+uJwa787kARZ0EhHv5qIqNOjMg3MoFZH9V8Zg/DBPs/CTuGHgzR/VuAAADLa3/89oo68mV82D8cMcdAYuGgxG4o/DGhMACMt6j7LLU24G1vG294qtNL7OfjOxwkKXmXQVeJVKlN78UIqW05eszbSYwoX3iqAYXTQcCwAU1La2n53dhxUUOnr9O4hC1cNOsw+D3wAYL3TwmZFby4HQKCDI5I42+6Nm1egSFC+FAQA76O4ZhAAT9Gf3tufFyMuWvCbCx9+TPLq9NFjpDvZQvyLUayethS3ExXjkYr+CDltjn14/3tf6LDEPuU4fn5X2XBW3C81zF0yq4vZsDN4xtBZ0z60dAmu9qhaDAQAHh3ZnugtsGKG037Oa3r3Pll+Um9J8FkLXqs9zIUE7JZ1hrVzH3ESFbkDuvmPK9p+Z9uwH3aN7PJsq7vVNr12XGsSZ3Lp8MJNv/FXyVLkgXg3kCdsYXxvy3OoXX850St4uxuDLZMcoU4ADlJ7dZIrLY4PKISiTN6zw7qa+92GMz65grmcc0HEk+/cx+B5Jn4K/N4xmuXFldyOqsWn6kHCt0FcFP9XBzfcT+/kBXXUCnGLACoHI1sX/zqsV63KPoYQG1g3964Dbhv7VEmevBynsEMJs6aIH+A3YOQBjKIwXewqwhifIscrtDAY/vx2l+b0oHJ5DMsSJtRjMVe8PXU/djVB7XIFAzhYMeDSyuV3urD1142583+I32Z2NWc03BJI4Oo3ew1QLpql0kLYoFInsqzpYe/No6WJL4Dn5wZcML+kXj4sOt7LX9Ql5wU7+r0+eDSRPhFs9+kwzH0bC+4Q/pBCV/N9j99bG99MjXrah7FP888CcJRPL5hfHSwJBMXaHLgSlY4N0IzjVaoznicLGGehOWry0qR25IAwAcBzqHb7OglNVikjl5MVzhY6KDK8zL7uBMjNd8DkvInPTuZHbgrBoZ4BVas3fgLW0C8KuDiXagLW3bQy7loB1pH5h53pMxDpdY+cXvM5ujwPEprnO7qFLy+ZA27RDtFRDm6MjtVeBMuxHcppXmih/rS/rLcCctbfx7yMZ15v9SO74SiPnMQEAa8bfNMjlhDct5Rrvgenh+qeDXJqkLpj94kBMsHnaGi9trhsow2krprBQZvO9NzVDoivLjG2I855042Qv6qQGo5Mhh5/5ML3dtLnZge3OzGyH0JQryQo0I7gZxjW+LYQ5bWI52VmIp0k+Fmsz5PMLxRNdcW9QX9qJWIyVee04ez8dcvZGUVGVvkcKMONiZ7PfKgVm1xRcRheGApmY50MVnO7FYADAjApUp76gawCRPM8MvUGNnpbApPWVbtlHOz/R/mwbDbp1IG1Gf58TPI8RcnXELe94+9Qy08Ba1iXV6/hQ8iYuQwrQHxlA4H66IqtX5VibvGGOfThx5zD6y/G3a2GBG7kie5xiOfR6yhlFqJxXonHYV6G/PExfYCdvz6UDXYQ76syf6CFdhsdA9dW/5O0PcpEcBK+0WAEAKAHI6R1yhaEkiIUzSGr1TAM6BRAwz9VrsGQF6akykJ2bZD9B3YJnA0JEpG8MvbBYURHtVuglUAxXw2cQsVxJkYFwfS4Bu3CvEnywDFItJBPx10XMrDpvIz6qaOmFgXLEJ0wGmFVVHqhfDkdWnZysI+WchhO1CRrFpYYEtq/TaYqODxGZ5eqjqZUd7umoAICUu/DDgfPwtM0T27J+eeck+c1z4by4mQ3luluLQfW9RMBL2We4wPOaxnCciCR2ktU8FNj8Er/D/o/SH4be//bMaS23l3LG1IsVvXbULkuH3GzimLOp7o4iiFRRyXgWYAgi1VFKg+lm6J+s7cfOJnpd4D9SHW5RGABQBzTowDdhpnLYEjyPoZfC056d5+5GrnjrSvjmcHgxcZWt3DCg+GSGZM59b1DisTPZymsJIQfrklWuU38nU/qHYCyk1MgTCcO92bNlGD2Ewz/FffCn4E7Y9xMfuroecun6/G5w9+qUsx7/BdRn/2A/gOe49gdftOrTCi8BqAHSb1fOQydWHq5SsmL5ejYbTp5uaGQG1FxuBAYw5SccEFU98jfgGwcWPaqaSnh8TDp6BK7k+eWFeP++s3kQ6PK7sSSwZOMFX1iH5+gSOPi9XH+6b3Y/cBe/Njjxd3h9Lub2VIfg7m/Wkp+fFaehNuqdqY7ORDGO8ewz/p9h5vPT4qo55YurCjzaLX8STLKf3ya4xZamKR30krko8TSYZDFNOu0u7rmLOqZigLFAU5AvYd9lS8pn7Ic+RzyBW5/D3K5n5gsjJ6Lt2NBHfV5KuWVZWr71XOmHmOFbXqFzXlvpmWjWXY6UoLYL+SJh09cnt+Q3hubO8COP6War8uqA+M9XqMh1l2+vFpfL4TU4H7gWB1cBfE7g+UFteZ7vI05o+u3xUsP9UZK3bgCNNCoAAI0D6NY76sWwwgYZaQyKByN1wjQ1oHfxTuXzPe7tCgq3GAwAMFRgKBN+05NcZkfAmOepBTipzpueqSzvJEXPhN9wHt9IQGs3tlLAJ5EEH6A72McDtjmqTJBB2bEBO1WKjpk1YIdWdMvCgB2NYi6sDNhrt25EiT9gb/afYgEQx7Vvp94/l4lQs3y6CpjUYRYL6FszcVtDtcmxChhMZolEADDXAGfpIG4dgHO/+42ekjghnfPv9q0OWvv8q/5UZR8eYx/f3Bvb+L6w7/pON2u7fbO85b0+3MlVn3053tMWO4O5xmTC1TofFrnRPXjqV+QxerGjYvs5jkrsR0f07/RUYf0w5vURO62d6WOAT+g4YLNWNuULi6qrWhCPU+jskS+PeK7S4LlRhzWPfrpIJ9ILzzZo5yfpZcvwbpisaQijY3lrQK64Oq/nkHdP3AUr4aEYG/qyG18xuJYrb+j2zYsdi1sFzZjG586pDdm9b/ZVu28Ca8fKT3aktXL+4rMD4H4jsyPodkZvG7OjPnfMKFeh/TmbB1kgnkauWMd0NbZUxN/JXs5nzij+XXnBF2UTNX/7m3YL63UvByhLwwXhxY7E6cOb7J8rx/4V9POIDU/l+xnxOsT4TbQn6svnbM8VFhiirzobqG7CMllCe++j7cI3F2l9Fnpwe67vKl14wWIFACDG2yl0vCDbVVBV5mBCT8efBwLEyqMvkagiXnxaGABgxJsqw98xPJ0dgTkzzxVnlhvJ2jP0dummQxlAX+Xm2ef5idunR18xMJThcjCJIR0Cbqf687AUB0F1F29XYG9sDGpV4AjbgoYKnMQX0HSLaEPrRhmJjq0BI2ANl+jKA/LuN0k3zNWcDWcUnDBQ+h7AOTO5krUrz+cekJFCPLOL/0THPo/AKTDmixuvK0vq9Ulp3dBwnWkOLa/4R9nkfs4U+aMIo00vYzBL1SeYrb3XoZplSZPq1Mvt2iUSAcDShVxM8UOzkFaK9Q8CpveiHw20NW0tlmkafNyGfV41X7yO/PcUnp3XZ+c1DM43ifNdG/8MbPHaM7ctvH7Bfe58+qy89rq+m+ziscCOY86oWkGDYscthaWA1uVBK5rxV1p9XuVEpti6T79c8Tg7i9Gl/YPz9uvXa4xrQ7a9TcBvPdn3rNsxnjiOveaCMABAc/iioafZem8NEzrTrSm8MECeZ+JARW/YPKvz4gUe8cSeqK0GiQz5/ETRF6Y8InJsl0NmmKSmSUfPzGTmhZOJe7MtW4OchAbDdjJnvzG7bfu2xQH21EJsOTxPXp8nr2ExvnyIdPR26W1/eH5x+D6ensGb1zDs4OA6HwX4qryTBV9CT8HeStOs6KvOZqiL3kwhONHhH+b156T7iGeuqDX6s9CDb73cd5M5wHONCgCAF8CWip1N5zMV2J7S4Pq0qkRnTa1mH8XLjT6SpoF5dvCLXtcnl02dqpxH8t42gwEAvps8UZ92+ka2PkQKETOT9WOHRTjexQxntaCiMg97QDODWT2nPlXwjN+Y1fcVA0N5UfojCuMOSN76sUtoaYQkcZ5DsGRjMJweBbcIz226ZcYtwteaC7MqsHXtG6sALNASsNAEKkiqDCJpMGIJVNt96k6qusBNfp1x5rVkx2sHMvorxoZ/qfU/87VzW1T9Hqi2arYe58Xt4n/WAYCthkgunYswtQKy/iD02p+bEGyVpIofsiQOxfsnBW7rgr8iQaruFF3BbUh3SrUU7SwapCkq//ZDm2P8bd+VPw8n6NvuWj/1sZt6S3d2UOFzb/eMqosIfIhLKXYsxK2UBuOkVa1BZePpFoUBAO4YpoHRVhcsm4VdjefJ6W2KNzo7b6NS9I7T7Znw9o7D1lSeBafbBFm3W5CCM9Ayh2ZhH8yWdrkwmG2D4Qbcon3bPnDLNmLRzKJzqCt5Ps+lYuchzZfhu/7UP+Hl9g2YZmXOe1PfTU4BaSxWAADSzb7uLTXPFd7aGLxG8e7Ka2P60duYUxPgqIYwAGCKfdsWB6xcYPA2Rt4dkd5MZR4xM4ArA7QKq0uxr+YniqC4snpAsQ2CdBewJYTHQbA4DzigBqeqmNkYj/Ex+gWHh1HKDCfiYt/YBnFjC9iDgqriRCmDN7KbvaEhH7bV4/9o8iqpt0UijZeK23fqXPbwbLEu9l5qH4qOLfxsXPvOyZqOi7ptV29mkEylzceyh1rHKduSdPqEVtt98zl85h7vsomK8+M9/w++WIvOoaq8J3yCf7UYvCR8OKm+lE/yGH2CB+m5Dv6JidLoIU/mh/hiOQXtjzhatQ85YkdsD7v/8VPmJEog7ZUKj2jCxvO6LsXNCcLK7+niPQryHDEdafxurmo3xH/8VbK/jwV5rg03y/tvC9T1Rd8JKI2usEZSQgV1ss8+gJtjtpcD","base64")).toString()),qH}var Bme=new Map([[G.makeIdent(null,"fsevents").identHash,Cme],[G.makeIdent(null,"resolve").identHash,Ime],[G.makeIdent(null,"typescript").identHash,wme]]),wgt={hooks:{registerPackageExtensions:async(t,e)=>{for(let[r,o]of UH)e(G.parseDescriptor(r,!0),o)},getBuiltinPatch:async(t,e)=>{let r="compat/";if(!e.startsWith(r))return;let o=G.parseIdent(e.slice(r.length)),a=Bme.get(o.identHash)?.();return typeof a<"u"?a:null},reduceDependency:async(t,e,r,o)=>typeof Bme.get(t.identHash)>"u"?t:G.makeDescriptor(t,G.makeRange({protocol:"patch:",source:G.stringifyDescriptor(t),selector:`optional!builtin`,params:null}))}},Bgt=wgt;var a6={};Kt(a6,{ConstraintsCheckCommand:()=>sC,ConstraintsQueryCommand:()=>nC,ConstraintsSourceCommand:()=>iC,default:()=>zgt});Ke();Ke();j2();var $E=class{constructor(e){this.project=e}createEnvironment(){let e=new ZE(["cwd","ident"]),r=new ZE(["workspace","type","ident"]),o=new ZE(["ident"]),a={manifestUpdates:new Map,reportedErrors:new Map},n=new Map,u=new Map;for(let A of this.project.storedPackages.values()){let p=Array.from(A.peerDependencies.values(),h=>[G.stringifyIdent(h),h.range]);n.set(A.locatorHash,{workspace:null,ident:G.stringifyIdent(A),version:A.version,dependencies:new Map,peerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional!==!0)),optionalPeerDependencies:new Map(p.filter(([h])=>A.peerDependenciesMeta.get(h)?.optional===!0))})}for(let A of this.project.storedPackages.values()){let p=n.get(A.locatorHash);p.dependencies=new Map(Array.from(A.dependencies.values(),h=>{let E=this.project.storedResolutions.get(h.descriptorHash);if(typeof E>"u")throw new Error("Assertion failed: The resolution should have been registered");let w=n.get(E);if(typeof w>"u")throw new Error("Assertion failed: The package should have been registered");return[G.stringifyIdent(h),w]})),p.dependencies.delete(p.ident)}for(let A of this.project.workspaces){let p=G.stringifyIdent(A.anchoredLocator),h=A.manifest.exportTo({}),E=n.get(A.anchoredLocator.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");let w=(T,L,{caller:U=Xi.getCaller()}={})=>{let J=q2(T),te=qe.getMapWithDefault(a.manifestUpdates,A.cwd),le=qe.getMapWithDefault(te,J),ce=qe.getSetWithDefault(le,L);U!==null&&ce.add(U)},D=T=>w(T,void 0,{caller:Xi.getCaller()}),x=T=>{qe.getArrayWithDefault(a.reportedErrors,A.cwd).push(T)},C=e.insert({cwd:A.relativeCwd,ident:p,manifest:h,pkg:E,set:w,unset:D,error:x});u.set(A,C);for(let T of _t.allDependencies)for(let L of A.manifest[T].values()){let U=G.stringifyIdent(L),J=()=>{w([T,U],void 0,{caller:Xi.getCaller()})},te=ce=>{w([T,U],ce,{caller:Xi.getCaller()})},le=null;if(T!=="peerDependencies"&&(T!=="dependencies"||!A.manifest.devDependencies.has(L.identHash))){let ce=A.anchoredPackage.dependencies.get(L.identHash);if(ce){if(typeof ce>"u")throw new Error("Assertion failed: The dependency should have been registered");let ue=this.project.storedResolutions.get(ce.descriptorHash);if(typeof ue>"u")throw new Error("Assertion failed: The resolution should have been registered");let Ie=n.get(ue);if(typeof Ie>"u")throw new Error("Assertion failed: The package should have been registered");le=Ie}}r.insert({workspace:C,ident:U,range:L.range,type:T,resolution:le,update:te,delete:J,error:x})}}for(let A of this.project.storedPackages.values()){let p=this.project.tryWorkspaceByLocator(A);if(!p)continue;let h=u.get(p);if(typeof h>"u")throw new Error("Assertion failed: The workspace should have been registered");let E=n.get(A.locatorHash);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");E.workspace=h}return{workspaces:e,dependencies:r,packages:o,result:a}}async process(){let e=this.createEnvironment(),r={Yarn:{workspace:a=>e.workspaces.find(a)[0]??null,workspaces:a=>e.workspaces.find(a),dependency:a=>e.dependencies.find(a)[0]??null,dependencies:a=>e.dependencies.find(a),package:a=>e.packages.find(a)[0]??null,packages:a=>e.packages.find(a)}},o=await this.project.loadUserConfig();return o?.constraints?(await o.constraints(r),e.result):null}};Ke();Ke();Gt();var nC=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.query=de.String()}static{this.paths=[["constraints","query"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"query the constraints fact database",details:` + This command will output all matches to the given prolog query. + `,examples:[["List all dependencies throughout the workspace","yarn constraints query 'workspace_has_dependency(_, DependencyName, _, _).'"]]})}async execute(){let{Constraints:r}=await Promise.resolve().then(()=>(K2(),Y2)),o=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Qt.find(o,this.context.cwd),n=await r.find(a),u=this.query;return u.endsWith(".")||(u=`${u}.`),(await Nt.start({configuration:o,json:this.json,stdout:this.context.stdout},async p=>{for await(let h of n.query(u)){let E=Array.from(Object.entries(h)),w=E.length,D=E.reduce((x,[C])=>Math.max(x,C.length),0);for(let x=0;x(K2(),Y2)),o=await ze.find(this.context.cwd,this.context.plugins),{project:a}=await Qt.find(o,this.context.cwd),n=await r.find(a);this.context.stdout.write(this.verbose?n.fullSource:n.source)}};Ke();Ke();Gt();j2();var sC=class extends ut{constructor(){super(...arguments);this.fix=de.Boolean("--fix",!1,{description:"Attempt to automatically fix unambiguous issues, following a multi-pass process"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["constraints"]]}static{this.usage=ot.Usage({category:"Constraints-related commands",description:"check that the project constraints are met",details:` + This command will run constraints on your project and emit errors for each one that is found but isn't met. If any error is emitted the process will exit with a non-zero exit code. + + If the \`--fix\` flag is used, Yarn will attempt to automatically fix the issues the best it can, following a multi-pass process (with a maximum of 10 iterations). Some ambiguous patterns cannot be autofixed, in which case you'll have to manually specify the right resolution. + + For more information as to how to write constraints, please consult our dedicated page on our website: https://yarnpkg.com/features/constraints. + `,examples:[["Check that all constraints are satisfied","yarn constraints"],["Autofix all unmet constraints","yarn constraints --fix"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd);await o.restoreInstallState();let a=await o.loadUserConfig(),n;if(a?.constraints)n=new $E(o);else{let{Constraints:h}=await Promise.resolve().then(()=>(K2(),Y2));n=await h.find(o)}let u,A=!1,p=!1;for(let h=this.fix?10:1;h>0;--h){let E=await n.process();if(!E)break;let{changedWorkspaces:w,remainingErrors:D}=Vk(o,E,{fix:this.fix}),x=[];for(let[C,T]of w){let L=C.manifest.indent;C.manifest=new _t,C.manifest.indent=L,C.manifest.load(T),x.push(C.persistManifest())}if(await Promise.all(x),!(w.size>0&&h>1)){u=kme(D,{configuration:r}),A=!1,p=!0;for(let[,C]of D)for(let T of C)T.fixable?A=!0:p=!1}}if(u.children.length===0)return 0;if(A){let h=p?`Those errors can all be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`:`Errors prefixed by '\u2699' can be fixed by running ${pe.pretty(r,"yarn constraints --fix",pe.Type.CODE)}`;await Nt.start({configuration:r,stdout:this.context.stdout,includeNames:!1,includeFooter:!1},async E=>{E.reportInfo(0,h),E.reportSeparator()})}return u.children=qe.sortMap(u.children,h=>h.value[1]),As.emitTree(u,{configuration:r,stdout:this.context.stdout,json:this.json,separators:1}),1}};j2();var Jgt={configuration:{enableConstraintsChecks:{description:"If true, constraints will run during installs",type:"BOOLEAN",default:!1},constraintsPath:{description:"The path of the constraints file.",type:"ABSOLUTE_PATH",default:"./constraints.pro"}},commands:[nC,iC,sC],hooks:{async validateProjectAfterInstall(t,{reportError:e}){if(!t.configuration.get("enableConstraintsChecks"))return;let r=await t.loadUserConfig(),o;if(r?.constraints)o=new $E(t);else{let{Constraints:u}=await Promise.resolve().then(()=>(K2(),Y2));o=await u.find(t)}let a=await o.process();if(!a)return;let{remainingErrors:n}=Vk(t,a);if(n.size!==0)if(t.configuration.isCI)for(let[u,A]of n)for(let p of A)e(84,`${pe.pretty(t.configuration,u.anchoredLocator,pe.Type.IDENT)}: ${p.text}`);else e(84,`Constraint check failed; run ${pe.pretty(t.configuration,"yarn constraints",pe.Type.CODE)} for more details`)}}},zgt=Jgt;var l6={};Kt(l6,{CreateCommand:()=>oC,DlxCommand:()=>aC,default:()=>Zgt});Ke();Gt();var oC=class extends ut{constructor(){super(...arguments);this.pkg=de.String("-p,--package",{description:"The package to run the provided command from"});this.quiet=de.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=de.String();this.args=de.Proxy()}static{this.paths=[["create"]]}async execute(){let r=[];this.pkg&&r.push("--package",this.pkg),this.quiet&&r.push("--quiet");let o=this.command.replace(/^(@[^@/]+)(@|$)/,"$1/create$2"),a=G.parseDescriptor(o),n=a.name.match(/^create(-|$)/)?a:a.scope?G.makeIdent(a.scope,`create-${a.name}`):G.makeIdent(null,`create-${a.name}`),u=G.stringifyIdent(n);return a.range!=="unknown"&&(u+=`@${a.range}`),this.cli.run(["dlx",...r,u,...this.args])}};Ke();Ke();Pt();Gt();var aC=class extends ut{constructor(){super(...arguments);this.packages=de.Array("-p,--package",{description:"The package(s) to install before running the command"});this.quiet=de.Boolean("-q,--quiet",!1,{description:"Only report critical errors instead of printing the full install logs"});this.command=de.String();this.args=de.Proxy()}static{this.paths=[["dlx"]]}static{this.usage=ot.Usage({description:"run a package in a temporary environment",details:"\n This command will install a package within a temporary environment, and run its binary script if it contains any. The binary will run within the current cwd.\n\n By default Yarn will download the package named `command`, but this can be changed through the use of the `-p,--package` flag which will instruct Yarn to still run the same command but from a different package.\n\n Using `yarn dlx` as a replacement of `yarn add` isn't recommended, as it makes your project non-deterministic (Yarn doesn't keep track of the packages installed through `dlx` - neither their name, nor their version).\n ",examples:[["Use create-react-app to create a new React app","yarn dlx create-react-app ./my-app"],["Install multiple packages for a single command",`yarn dlx -p typescript -p ts-node ts-node --transpile-only -e "console.log('hello!')"`]]})}async execute(){return ze.telemetry=null,await ae.mktempPromise(async r=>{let o=K.join(r,`dlx-${process.pid}`);await ae.mkdirPromise(o),await ae.writeFilePromise(K.join(o,"package.json"),`{} +`),await ae.writeFilePromise(K.join(o,"yarn.lock"),"");let a=K.join(o,".yarnrc.yml"),n=await ze.findProjectCwd(this.context.cwd),A={enableGlobalCache:!(await ze.find(this.context.cwd,null,{strict:!1})).get("enableGlobalCache"),enableTelemetry:!1,logFilters:[{code:Ju(68),level:pe.LogLevel.Discard}]},p=n!==null?K.join(n,".yarnrc.yml"):null;p!==null&&ae.existsSync(p)?(await ae.copyFilePromise(p,a),await ze.updateConfiguration(o,L=>{let U=qe.toMerged(L,A);return Array.isArray(L.plugins)&&(U.plugins=L.plugins.map(J=>{let te=typeof J=="string"?J:J.path,le=Ae.isAbsolute(te)?te:Ae.resolve(Ae.fromPortablePath(n),te);return typeof J=="string"?le:{path:le,spec:J.spec}})),U})):await ae.writeJsonPromise(a,A);let h=this.packages??[this.command],E=G.parseDescriptor(this.command).name,w=await this.cli.run(["add","--fixed","--",...h],{cwd:o,quiet:this.quiet});if(w!==0)return w;this.quiet||this.context.stdout.write(` +`);let D=await ze.find(o,this.context.plugins),{project:x,workspace:C}=await Qt.find(D,o);if(C===null)throw new or(x.cwd,o);await x.restoreInstallState();let T=await hn.getWorkspaceAccessibleBinaries(C);return T.has(E)===!1&&T.size===1&&typeof this.packages>"u"&&(E=Array.from(T)[0][0]),await hn.executeWorkspaceAccessibleBinary(C,E,this.args,{packageAccessibleBinaries:T,cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr})})}};var Xgt={commands:[oC,aC]},Zgt=Xgt;var A6={};Kt(A6,{ExecFetcher:()=>J2,ExecResolver:()=>z2,default:()=>tdt,execUtils:()=>Zk});Ke();Ke();Pt();var hA="exec:";var Zk={};Kt(Zk,{loadGeneratorFile:()=>V2,makeLocator:()=>u6,makeSpec:()=>rye,parseSpec:()=>c6});Ke();Pt();function c6(t){let{params:e,selector:r}=G.parseRange(t),o=Ae.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function rye({parentLocator:t,path:e,generatorHash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function u6(t,{parentLocator:e,path:r,generatorHash:o,protocol:a}){return G.makeLocator(t,rye({parentLocator:e,path:r,generatorHash:o,protocol:a}))}async function V2(t,e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(t,{protocol:e}),n=K.isAbsolute(a)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,n.localPath)}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.join(u.prefixPath,a);return await A.readFilePromise(p,"utf8")}var J2=class{supports(e,r){return!!e.reference.startsWith(hA)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:hA});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){let o=await V2(e.reference,hA,r);return ae.mktempPromise(async a=>{let n=K.join(a,"generator.js");return await ae.writeFilePromise(n,o),ae.mktempPromise(async u=>{if(await this.generatePackage(u,e,n,r),!ae.existsSync(K.join(u,"build")))throw new Error("The script should have generated a build directory");return await $i.makeArchiveFromDirectory(K.join(u,"build"),{prefixPath:G.getIdentVendorPath(e),compressionLevel:r.project.configuration.get("compressionLevel")})})})}async generatePackage(e,r,o,a){return await ae.mktempPromise(async n=>{let u=await hn.makeScriptEnv({project:a.project,binFolder:n}),A=K.join(e,"runtime.js");return await ae.mktempPromise(async p=>{let h=K.join(p,"buildfile.log"),E=K.join(e,"generator"),w=K.join(e,"build");await ae.mkdirPromise(E),await ae.mkdirPromise(w);let D={tempDir:Ae.fromPortablePath(E),buildDir:Ae.fromPortablePath(w),locator:G.stringifyLocator(r)};await ae.writeFilePromise(A,` + // Expose 'Module' as a global variable + Object.defineProperty(global, 'Module', { + get: () => require('module'), + configurable: true, + enumerable: false, + }); + + // Expose non-hidden built-in modules as global variables + for (const name of Module.builtinModules.filter((name) => name !== 'module' && !name.startsWith('_'))) { + Object.defineProperty(global, name, { + get: () => require(name), + configurable: true, + enumerable: false, + }); + } + + // Expose the 'execEnv' global variable + Object.defineProperty(global, 'execEnv', { + value: { + ...${JSON.stringify(D)}, + }, + enumerable: true, + }); + `);let x=u.NODE_OPTIONS||"",C=/\s*--require\s+\S*\.pnp\.c?js\s*/g;x=x.replace(C," ").trim(),u.NODE_OPTIONS=x;let{stdout:T,stderr:L}=a.project.configuration.getSubprocessStreams(h,{header:`# This file contains the result of Yarn generating a package (${G.stringifyLocator(r)}) +`,prefix:G.prettyLocator(a.project.configuration,r),report:a.report}),{code:U}=await Hr.pipevp(process.execPath,["--require",Ae.fromPortablePath(A),Ae.fromPortablePath(o),G.stringifyIdent(r)],{cwd:e,env:u,stdin:null,stdout:T,stderr:L});if(U!==0)throw ae.detachTemp(p),new Error(`Package generation failed (exit code ${U}, logs can be found here: ${pe.pretty(a.project.configuration,h,pe.Type.PATH)})`)})})}};Ke();Ke();var $gt=2,z2=class{supportsDescriptor(e,r){return!!e.range.startsWith(hA)}supportsLocator(e,r){return!!e.reference.startsWith(hA)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=c6(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await V2(G.makeRange({protocol:hA,source:a,selector:a,params:{locator:G.stringifyLocator(n)}}),hA,o.fetchOptions),A=xn.makeHash(`${$gt}`,u).slice(0,6);return[u6(e,{parentLocator:n,path:a,generatorHash:A,protocol:hA})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var edt={fetchers:[J2],resolvers:[z2]},tdt=edt;var p6={};Kt(p6,{FileFetcher:()=>eB,FileResolver:()=>tB,TarballFileFetcher:()=>rB,TarballFileResolver:()=>nB,default:()=>idt,fileUtils:()=>$g});Ke();Pt();var lC=/^(?:[a-zA-Z]:[\\/]|\.{0,2}\/)/,X2=/^[^?]*\.(?:tar\.gz|tgz)(?:::.*)?$/,_i="file:";var $g={};Kt($g,{fetchArchiveFromLocator:()=>$2,makeArchiveFromLocator:()=>$k,makeBufferFromLocator:()=>f6,makeLocator:()=>cC,makeSpec:()=>nye,parseSpec:()=>Z2});Ke();Pt();function Z2(t){let{params:e,selector:r}=G.parseRange(t),o=Ae.toPortablePath(r);return{parentLocator:e&&typeof e.locator=="string"?G.parseLocator(e.locator):null,path:o}}function nye({parentLocator:t,path:e,hash:r,protocol:o}){let a=t!==null?{locator:G.stringifyLocator(t)}:{},n=typeof r<"u"?{hash:r}:{};return G.makeRange({protocol:o,source:e,selector:e,params:{...n,...a}})}function cC(t,{parentLocator:e,path:r,hash:o,protocol:a}){return G.makeLocator(t,nye({parentLocator:e,path:r,hash:o,protocol:a}))}async function $2(t,e){let{parentLocator:r,path:o}=G.parseFileStyleRange(t.reference,{protocol:_i}),a=K.isAbsolute(o)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await e.fetcher.fetch(r,e),n=a.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,a.localPath)}:a;a!==n&&a.releaseFs&&a.releaseFs();let u=n.packageFs,A=K.join(n.prefixPath,o);return await qe.releaseAfterUseAsync(async()=>await u.readFilePromise(A),n.releaseFs)}async function $k(t,{protocol:e,fetchOptions:r,inMemory:o=!1}){let{parentLocator:a,path:n}=G.parseFileStyleRange(t.reference,{protocol:e}),u=K.isAbsolute(n)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(a,r),A=u.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,u.localPath)}:u;u!==A&&u.releaseFs&&u.releaseFs();let p=A.packageFs,h=K.join(A.prefixPath,n);return await qe.releaseAfterUseAsync(async()=>await $i.makeArchiveFromDirectory(h,{baseFs:p,prefixPath:G.getIdentVendorPath(t),compressionLevel:r.project.configuration.get("compressionLevel"),inMemory:o}),A.releaseFs)}async function f6(t,{protocol:e,fetchOptions:r}){return(await $k(t,{protocol:e,fetchOptions:r,inMemory:!0})).getBufferAndClose()}var eB=class{supports(e,r){return!!e.reference.startsWith(_i)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:_i});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async fetchFromDisk(e,r){return $k(e,{protocol:_i,fetchOptions:r})}};Ke();Ke();var rdt=2,tB=class{supportsDescriptor(e,r){return e.range.match(lC)?!0:!!e.range.startsWith(_i)}supportsLocator(e,r){return!!e.reference.startsWith(_i)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return lC.test(e.range)&&(e=G.makeDescriptor(e,`${_i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=Z2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=await f6(G.makeLocator(e,G.makeRange({protocol:_i,source:a,selector:a,params:{locator:G.stringifyLocator(n)}})),{protocol:_i,fetchOptions:o.fetchOptions}),A=xn.makeHash(`${rdt}`,u).slice(0,6);return[cC(e,{parentLocator:n,path:a,hash:A,protocol:_i})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};Ke();var rB=class{supports(e,r){return X2.test(e.reference)?!!e.reference.startsWith(_i):!1}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.fetchFromDisk(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromDisk(e,r){let o=await $2(e,r);return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();Ke();var nB=class{supportsDescriptor(e,r){return X2.test(e.range)?!!(e.range.startsWith(_i)||lC.test(e.range)):!1}supportsLocator(e,r){return X2.test(e.reference)?!!e.reference.startsWith(_i):!1}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return lC.test(e.range)&&(e=G.makeDescriptor(e,`${_i}${e.range}`)),G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{path:a,parentLocator:n}=Z2(e.range);if(n===null)throw new Error("Assertion failed: The descriptor should have been bound");let u=cC(e,{parentLocator:n,path:a,hash:"",protocol:_i}),A=await $2(u,o.fetchOptions),p=xn.makeHash(A).slice(0,6);return[cC(e,{parentLocator:n,path:a,hash:p,protocol:_i})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var ndt={fetchers:[rB,eB],resolvers:[nB,tB]},idt=ndt;var d6={};Kt(d6,{GithubFetcher:()=>iB,default:()=>odt,githubUtils:()=>eQ});Ke();Pt();var eQ={};Kt(eQ,{invalidGithubUrlMessage:()=>oye,isGithubUrl:()=>h6,parseGithubUrl:()=>g6});var iye=et(ve("querystring")),sye=[/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+)\/tarball\/([^/#]+)(?:#(.*))?$/,/^https?:\/\/(?:([^/]+?)@)?github.com\/([^/#]+)\/([^/#]+?)(?:\.git)?(?:#(.*))?$/];function h6(t){return t?sye.some(e=>!!t.match(e)):!1}function g6(t){let e;for(let A of sye)if(e=t.match(A),e)break;if(!e)throw new Error(oye(t));let[,r,o,a,n="master"]=e,{commit:u}=iye.default.parse(n);return n=u||n.replace(/[^:]*:/,""),{auth:r,username:o,reponame:a,treeish:n}}function oye(t){return`Input cannot be parsed as a valid GitHub URL ('${t}').`}var iB=class{supports(e,r){return!!h6(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from GitHub`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await on.get(this.getLocatorUrl(e,r),{configuration:r.project.configuration});return await ae.mktempPromise(async a=>{let n=new En(a);await $i.extractArchiveTo(o,n,{stripComponents:1});let u=ra.splitRepoUrl(e.reference),A=K.join(a,"package.tgz");await hn.prepareExternalProject(a,A,{configuration:r.project.configuration,report:r.report,workspace:u.extra.workspace,locator:e});let p=await ae.readFilePromise(A);return await $i.convertToZip(p,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})})}getLocatorUrl(e,r){let{auth:o,username:a,reponame:n,treeish:u}=g6(e.reference);return`https://${o?`${o}@`:""}github.com/${a}/${n}/archive/${u}.tar.gz`}};var sdt={hooks:{async fetchHostedRepository(t,e,r){if(t!==null)return t;let o=new iB;if(!o.supports(e,r))return null;try{return await o.fetch(e,r)}catch{return null}}}},odt=sdt;var m6={};Kt(m6,{TarballHttpFetcher:()=>oB,TarballHttpResolver:()=>aB,default:()=>ldt});Ke();function sB(t){let e;try{e=new URL(t)}catch{return!1}return!(e.protocol!=="http:"&&e.protocol!=="https:"||!e.pathname.match(/(\.tar\.gz|\.tgz|\/[^.]+)$/))}var oB=class{supports(e,r){return sB(e.reference)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o=await on.get(e.reference,{configuration:r.project.configuration});return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ke();Ke();var aB=class{supportsDescriptor(e,r){return sB(e.range)}supportsLocator(e,r){return sB(e.reference)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){return[G.convertDescriptorToLocator(e)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"HARD",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var adt={fetchers:[oB],resolvers:[aB]},ldt=adt;var y6={};Kt(y6,{InitCommand:()=>uC,default:()=>udt});Ke();Ke();Pt();Gt();var uC=class extends ut{constructor(){super(...arguments);this.private=de.Boolean("-p,--private",!1,{description:"Initialize a private package"});this.workspace=de.Boolean("-w,--workspace",!1,{description:"Initialize a workspace root with a `packages/` directory"});this.install=de.String("-i,--install",!1,{tolerateBoolean:!0,description:"Initialize a package with a specific bundle that will be locked in the project"});this.name=de.String("-n,--name",{description:"Initialize a package with the given name"});this.usev2=de.Boolean("-2",!1,{hidden:!0});this.yes=de.Boolean("-y,--yes",{hidden:!0})}static{this.paths=[["init"]]}static{this.usage=ot.Usage({description:"create a new package",details:"\n This command will setup a new package in your local directory.\n\n If the `-p,--private` or `-w,--workspace` options are set, the package will be private by default.\n\n If the `-w,--workspace` option is set, the package will be configured to accept a set of workspaces in the `packages/` directory.\n\n If the `-i,--install` option is given a value, Yarn will first download it using `yarn set version` and only then forward the init call to the newly downloaded bundle. Without arguments, the downloaded bundle will be `latest`.\n\n The initial settings of the manifest can be changed by using the `initScope` and `initFields` configuration values. Additionally, Yarn will generate an EditorConfig file whose rules can be altered via `initEditorConfig`, and will initialize a Git repository in the current directory.\n ",examples:[["Create a new package in the local directory","yarn init"],["Create a new private package in the local directory","yarn init -p"],["Create a new package and store the Yarn release inside","yarn init -i=latest"],["Create a new private package and defines it as a workspace root","yarn init -w"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=typeof this.install=="string"?this.install:this.usev2||this.install===!0?"latest":null;return o!==null?await this.executeProxy(r,o):await this.executeRegular(r)}async executeProxy(r,o){if(r.projectCwd!==null&&r.projectCwd!==this.context.cwd)throw new it("Cannot use the --install flag from within a project subdirectory");ae.existsSync(this.context.cwd)||await ae.mkdirPromise(this.context.cwd,{recursive:!0});let a=K.join(this.context.cwd,mr.lockfile);ae.existsSync(a)||await ae.writeFilePromise(a,"");let n=await this.cli.run(["set","version",o],{quiet:!0});if(n!==0)return n;let u=[];return this.private&&u.push("-p"),this.workspace&&u.push("-w"),this.name&&u.push(`-n=${this.name}`),this.yes&&u.push("-y"),await ae.mktempPromise(async A=>{let{code:p}=await Hr.pipevp("yarn",["init",...u],{cwd:this.context.cwd,stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr,env:await hn.makeScriptEnv({binFolder:A})});return p})}async executeRegular(r){let o=null;try{o=(await Qt.find(r,this.context.cwd)).project}catch{o=null}ae.existsSync(this.context.cwd)||await ae.mkdirPromise(this.context.cwd,{recursive:!0});let a=await _t.tryFind(this.context.cwd),n=a??new _t,u=Object.fromEntries(r.get("initFields").entries());n.load(u),n.name=n.name??G.makeIdent(r.get("initScope"),this.name??K.basename(this.context.cwd)),n.packageManager=nn&&qe.isTaggedYarnVersion(nn)?`yarn@${nn}`:null,(!a&&this.workspace||this.private)&&(n.private=!0),this.workspace&&n.workspaceDefinitions.length===0&&(await ae.mkdirPromise(K.join(this.context.cwd,"packages"),{recursive:!0}),n.workspaceDefinitions=[{pattern:"packages/*"}]);let A={};n.exportTo(A);let p=K.join(this.context.cwd,_t.fileName);await ae.changeFilePromise(p,`${JSON.stringify(A,null,2)} +`,{automaticNewlines:!0});let h=[p],E=K.join(this.context.cwd,"README.md");if(ae.existsSync(E)||(await ae.writeFilePromise(E,`# ${G.stringifyIdent(n.name)} +`),h.push(E)),!o||o.cwd===this.context.cwd){let w=K.join(this.context.cwd,mr.lockfile);ae.existsSync(w)||(await ae.writeFilePromise(w,""),h.push(w));let x=[".yarn/*","!.yarn/patches","!.yarn/plugins","!.yarn/releases","!.yarn/sdks","!.yarn/versions","","# Swap the comments on the following lines if you wish to use zero-installs","# In that case, don't forget to run `yarn config set enableGlobalCache false`!","# Documentation here: https://yarnpkg.com/features/caching#zero-installs","","#!.yarn/cache",".pnp.*"].map(ce=>`${ce} +`).join(""),C=K.join(this.context.cwd,".gitignore");ae.existsSync(C)||(await ae.writeFilePromise(C,x),h.push(C));let L=["/.yarn/** linguist-vendored","/.yarn/releases/* binary","/.yarn/plugins/**/* binary","/.pnp.* binary linguist-generated"].map(ce=>`${ce} +`).join(""),U=K.join(this.context.cwd,".gitattributes");ae.existsSync(U)||(await ae.writeFilePromise(U,L),h.push(U));let J={"*":{endOfLine:"lf",insertFinalNewline:!0},"*.{js,json,yml}":{charset:"utf-8",indentStyle:"space",indentSize:2}};qe.mergeIntoTarget(J,r.get("initEditorConfig"));let te=`root = true +`;for(let[ce,ue]of Object.entries(J)){te+=` +[${ce}] +`;for(let[Ie,he]of Object.entries(ue)){let De=Ie.replace(/[A-Z]/g,Ee=>`_${Ee.toLowerCase()}`);te+=`${De} = ${he} +`}}let le=K.join(this.context.cwd,".editorconfig");ae.existsSync(le)||(await ae.writeFilePromise(le,te),h.push(le)),await this.cli.run(["install"],{quiet:!0}),ae.existsSync(K.join(this.context.cwd,".git"))||(await Hr.execvp("git",["init"],{cwd:this.context.cwd}),await Hr.execvp("git",["add","--",...h],{cwd:this.context.cwd}),await Hr.execvp("git",["commit","--allow-empty","-m","First commit"],{cwd:this.context.cwd}))}}};var cdt={configuration:{initScope:{description:"Scope used when creating packages via the init command",type:"STRING",default:null},initFields:{description:"Additional fields to set when creating packages via the init command",type:"MAP",valueDefinition:{description:"",type:"ANY"}},initEditorConfig:{description:"Extra rules to define in the generator editorconfig",type:"MAP",valueDefinition:{description:"",type:"ANY"}}},commands:[uC]},udt=cdt;var mj={};Kt(mj,{SearchCommand:()=>bC,UpgradeInteractiveCommand:()=>xC,default:()=>UIt});Ke();var lye=et(ve("os"));function AC({stdout:t}){if(lye.default.endianness()==="BE")throw new Error("Interactive commands cannot be used on big-endian systems because ink depends on yoga-layout-prebuilt which only supports little-endian architectures");if(!t.isTTY)throw new Error("Interactive commands can only be used inside a TTY environment")}Gt();var CEe=et(L6()),O6={appId:"OFCNCOG2CU",apiKey:"6fe4476ee5a1832882e326b506d14126",indexName:"npm-search"},ayt=(0,CEe.default)(O6.appId,O6.apiKey).initIndex(O6.indexName),M6=async(t,e=0)=>await ayt.search(t,{analyticsTags:["yarn-plugin-interactive-tools"],attributesToRetrieve:["name","version","owner","repository","humanDownloadsLast30Days"],page:e,hitsPerPage:10});var sv=["regular","dev","peer"],bC=class extends ut{static{this.paths=[["search"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the search interface",details:` + This command opens a fullscreen terminal interface where you can search for and install packages from the npm registry. + `,examples:[["Open the search window","yarn search"]]})}async execute(){AC(this.context);let{Gem:e}=await Promise.resolve().then(()=>(UQ(),oj)),{ScrollableItems:r}=await Promise.resolve().then(()=>(jQ(),qQ)),{useKeypress:o}=await Promise.resolve().then(()=>(rv(),xwe)),{useMinistore:a}=await Promise.resolve().then(()=>(fj(),Aj)),{renderForm:n}=await Promise.resolve().then(()=>(KQ(),YQ)),{default:u}=await Promise.resolve().then(()=>et(Uwe())),{Box:A,Text:p}=await Promise.resolve().then(()=>et(ac())),{default:h,useEffect:E,useState:w}=await Promise.resolve().then(()=>et(ln())),D=await ze.find(this.context.cwd,this.context.plugins),x=()=>h.createElement(A,{flexDirection:"row"},h.createElement(A,{flexDirection:"column",width:48},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move between packages.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select a package.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," again to change the target."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to install the selected packages.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),C=()=>h.createElement(h.Fragment,null,h.createElement(A,{width:15},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Owner")),h.createElement(A,{width:11},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Version")),h.createElement(A,{width:10},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Downloads"))),T=()=>h.createElement(A,{width:17},h.createElement(p,{bold:!0,underline:!0,color:"gray"},"Target")),L=({hit:he,active:De})=>{let[Ee,g]=a(he.name,null);o({active:De},(fe,ie)=>{if(ie.name!=="space")return;if(!Ee){g(sv[0]);return}let Z=sv.indexOf(Ee)+1;Z===sv.length?g(null):g(sv[Z])},[Ee,g]);let me=G.parseIdent(he.name),Ce=G.prettyIdent(D,me);return h.createElement(A,null,h.createElement(A,{width:45},h.createElement(p,{bold:!0,wrap:"wrap"},Ce)),h.createElement(A,{width:14,marginLeft:1},h.createElement(p,{bold:!0,wrap:"truncate"},he.owner.name)),h.createElement(A,{width:10,marginLeft:1},h.createElement(p,{italic:!0,wrap:"truncate"},he.version)),h.createElement(A,{width:16,marginLeft:1},h.createElement(p,null,he.humanDownloadsLast30Days)))},U=({name:he,active:De})=>{let[Ee]=a(he,null),g=G.parseIdent(he);return h.createElement(A,null,h.createElement(A,{width:47},h.createElement(p,{bold:!0}," - ",G.prettyIdent(D,g))),sv.map(me=>h.createElement(A,{key:me,width:14,marginLeft:1},h.createElement(p,null," ",h.createElement(e,{active:Ee===me})," ",h.createElement(p,{bold:!0},me)))))},J=()=>h.createElement(A,{marginTop:1},h.createElement(p,null,"Powered by Algolia.")),le=await n(({useSubmit:he})=>{let De=a();he(De);let Ee=Array.from(De.keys()).filter(q=>De.get(q)!==null),[g,me]=w(""),[Ce,fe]=w(0),[ie,Z]=w([]),Pe=q=>{q.match(/\t| /)||me(q)},Re=async()=>{fe(0);let q=await M6(g);q.query===g&&Z(q.hits)},ht=async()=>{let q=await M6(g,Ce+1);q.query===g&&q.page-1===Ce&&(fe(q.page),Z([...ie,...q.hits]))};return E(()=>{g?Re():Z([])},[g]),h.createElement(A,{flexDirection:"column"},h.createElement(x,null),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(p,{bold:!0},"Search: "),h.createElement(A,{width:41},h.createElement(u,{value:g,onChange:Pe,placeholder:"i.e. babel, webpack, react...",showCursor:!1})),h.createElement(C,null)),ie.length?h.createElement(r,{radius:2,loop:!1,children:ie.map(q=>h.createElement(L,{key:q.name,hit:q,active:!1})),willReachEnd:ht}):h.createElement(p,{color:"gray"},"Start typing..."),h.createElement(A,{flexDirection:"row",marginTop:1},h.createElement(A,{width:49},h.createElement(p,{bold:!0},"Selected:")),h.createElement(T,null)),Ee.length?Ee.map(q=>h.createElement(U,{key:q,name:q,active:!1})):h.createElement(p,{color:"gray"},"No selected packages..."),h.createElement(J,null))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof le>"u")return 1;let ce=Array.from(le.keys()).filter(he=>le.get(he)==="regular"),ue=Array.from(le.keys()).filter(he=>le.get(he)==="dev"),Ie=Array.from(le.keys()).filter(he=>le.get(he)==="peer");return ce.length&&await this.cli.run(["add",...ce]),ue.length&&await this.cli.run(["add","--dev",...ue]),Ie&&await this.cli.run(["add","--peer",...Ie]),0}};Ke();Gt();n_();var Ywe=et(ni()),Wwe=/^((?:[\^~]|>=?)?)([0-9]+)(\.[0-9]+)(\.[0-9]+)((?:-\S+)?)$/,Kwe=(t,e)=>t.length>0?[t.slice(0,e)].concat(Kwe(t.slice(e),e)):[],xC=class extends ut{static{this.paths=[["upgrade-interactive"]]}static{this.usage=ot.Usage({category:"Interactive commands",description:"open the upgrade interface",details:` + This command opens a fullscreen terminal interface where you can see any out of date packages used by your application, their status compared to the latest versions available on the remote registry, and select packages to upgrade. + `,examples:[["Open the upgrade window","yarn upgrade-interactive"]]})}async execute(){AC(this.context);let{ItemOptions:e}=await Promise.resolve().then(()=>(Gwe(),jwe)),{Pad:r}=await Promise.resolve().then(()=>(dj(),qwe)),{ScrollableItems:o}=await Promise.resolve().then(()=>(jQ(),qQ)),{useMinistore:a}=await Promise.resolve().then(()=>(fj(),Aj)),{renderForm:n}=await Promise.resolve().then(()=>(KQ(),YQ)),{Box:u,Text:A}=await Promise.resolve().then(()=>et(ac())),{default:p,useEffect:h,useRef:E,useState:w}=await Promise.resolve().then(()=>et(ln())),D=await ze.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Qt.find(D,this.context.cwd),T=await Wr.find(D);if(!C)throw new or(x.cwd,this.context.cwd);await x.restoreInstallState({restoreResolutions:!1});let L=this.context.stdout.rows-7,U=(me,Ce)=>{let fe=$pe(me,Ce),ie="";for(let Z of fe)Z.added?ie+=pe.pretty(D,Z.value,"green"):Z.removed||(ie+=Z.value);return ie},J=(me,Ce)=>{if(me===Ce)return Ce;let fe=G.parseRange(me),ie=G.parseRange(Ce),Z=fe.selector.match(Wwe),Pe=ie.selector.match(Wwe);if(!Z||!Pe)return U(me,Ce);let Re=["gray","red","yellow","green","magenta"],ht=null,q="";for(let nt=1;nt{let ie=await nu.fetchDescriptorFrom(me,fe,{project:x,cache:T,preserveModifier:Ce,workspace:C});return ie!==null?ie.range:me.range},le=async me=>{let Ce=Ywe.default.valid(me.range)?`^${me.range}`:me.range,[fe,ie]=await Promise.all([te(me,me.range,Ce).catch(()=>null),te(me,me.range,"latest").catch(()=>null)]),Z=[{value:null,label:me.range}];return fe&&fe!==me.range?Z.push({value:fe,label:J(me.range,fe)}):Z.push({value:null,label:""}),ie&&ie!==fe&&ie!==me.range?Z.push({value:ie,label:J(me.range,ie)}):Z.push({value:null,label:""}),Z},ce=()=>p.createElement(u,{flexDirection:"row"},p.createElement(u,{flexDirection:"column",width:49},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select packages.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},""),"/",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to select versions."))),p.createElement(u,{flexDirection:"column"},p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to install.")),p.createElement(u,{marginLeft:1},p.createElement(A,null,"Press ",p.createElement(A,{bold:!0,color:"cyanBright"},"")," to abort.")))),ue=()=>p.createElement(u,{flexDirection:"row",paddingTop:1,paddingBottom:1},p.createElement(u,{width:50},p.createElement(A,{bold:!0},p.createElement(A,{color:"greenBright"},"?")," Pick the packages you want to upgrade.")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Current")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Range")),p.createElement(u,{width:17},p.createElement(A,{bold:!0,underline:!0,color:"gray"},"Latest"))),Ie=({active:me,descriptor:Ce,suggestions:fe})=>{let[ie,Z]=a(Ce.descriptorHash,null),Pe=G.stringifyIdent(Ce),Re=Math.max(0,45-Pe.length);return p.createElement(p.Fragment,null,p.createElement(u,null,p.createElement(u,{width:45},p.createElement(A,{bold:!0},G.prettyIdent(D,Ce)),p.createElement(r,{active:me,length:Re})),p.createElement(e,{active:me,options:fe,value:ie,skewer:!0,onChange:Z,sizes:[17,17,17]})))},he=({dependencies:me})=>{let[Ce,fe]=w(me.map(()=>null)),ie=E(!0),Z=async Pe=>{let Re=await le(Pe);return Re.filter(ht=>ht.label!=="").length<=1?null:{descriptor:Pe,suggestions:Re}};return h(()=>()=>{ie.current=!1},[]),h(()=>{let Pe=Math.trunc(L*1.75),Re=me.slice(0,Pe),ht=me.slice(Pe),q=Kwe(ht,L),nt=Re.map(Z).reduce(async(Ne,Te)=>{await Ne;let ke=await Te;ke!==null&&ie.current&&fe(Ve=>{let be=Ve.findIndex(He=>He===null),tt=[...Ve];return tt[be]=ke,tt})},Promise.resolve());q.reduce((Ne,Te)=>Promise.all(Te.map(ke=>Promise.resolve().then(()=>Z(ke)))).then(async ke=>{ke=ke.filter(Ve=>Ve!==null),await Ne,ie.current&&fe(Ve=>{let be=Ve.findIndex(tt=>tt===null);return Ve.slice(0,be).concat(ke).concat(Ve.slice(be+ke.length))})}),nt).then(()=>{ie.current&&fe(Ne=>Ne.filter(Te=>Te!==null))})},[]),Ce.length?p.createElement(o,{radius:L>>1,children:Ce.map((Pe,Re)=>Pe!==null?p.createElement(Ie,{key:Re,active:!1,descriptor:Pe.descriptor,suggestions:Pe.suggestions}):p.createElement(A,{key:Re},"Loading..."))}):p.createElement(A,null,"No upgrades found")},Ee=await n(({useSubmit:me})=>{me(a());let Ce=new Map;for(let ie of x.workspaces)for(let Z of["dependencies","devDependencies"])for(let Pe of ie.manifest[Z].values())x.tryWorkspaceByDescriptor(Pe)===null&&(Pe.range.startsWith("link:")||Ce.set(Pe.descriptorHash,Pe));let fe=qe.sortMap(Ce.values(),ie=>G.stringifyDescriptor(ie));return p.createElement(u,{flexDirection:"column"},p.createElement(ce,null),p.createElement(ue,null),p.createElement(he,{dependencies:fe}))},{},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof Ee>"u")return 1;let g=!1;for(let me of x.workspaces)for(let Ce of["dependencies","devDependencies"]){let fe=me.manifest[Ce];for(let ie of fe.values()){let Z=Ee.get(ie.descriptorHash);typeof Z<"u"&&Z!==null&&(fe.set(ie.identHash,G.makeDescriptor(ie,Z)),g=!0)}}return g?await x.installWithNewReport({quiet:this.context.quiet,stdout:this.context.stdout},{cache:T}):0}};var MIt={commands:[bC,xC]},UIt=MIt;var yj={};Kt(yj,{LinkFetcher:()=>av,LinkResolver:()=>lv,PortalFetcher:()=>cv,PortalResolver:()=>uv,default:()=>HIt});Ke();Pt();var Zf="portal:",$f="link:";var av=class{supports(e,r){return!!e.reference.startsWith($f)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:$f});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:$f}),n=K.isAbsolute(a)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new En(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,discardFromLookup:!0}}};Ke();Pt();var lv=class{supportsDescriptor(e,r){return!!e.range.startsWith($f)}supportsLocator(e,r){return!!e.reference.startsWith($f)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice($f.length);return[G.makeLocator(e,`${$f}${Ae.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){return{...e,version:"0.0.0",languageName:r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:null,dependencies:new Map,peerDependencies:new Map,dependenciesMeta:new Map,peerDependenciesMeta:new Map,bin:new Map}}};Ke();Pt();var cv=class{supports(e,r){return!!e.reference.startsWith(Zf)}getLocalPath(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf});if(K.isAbsolute(a))return a;let n=r.fetcher.getLocalPath(o,r);return n===null?null:K.resolve(n,a)}async fetch(e,r){let{parentLocator:o,path:a}=G.parseFileStyleRange(e.reference,{protocol:Zf}),n=K.isAbsolute(a)?{packageFs:new En(Bt.root),prefixPath:Bt.dot,localPath:Bt.root}:await r.fetcher.fetch(o,r),u=n.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,n.localPath),localPath:Bt.root}:n;n!==u&&n.releaseFs&&n.releaseFs();let A=u.packageFs,p=K.resolve(u.localPath??u.packageFs.getRealPath(),u.prefixPath,a);return n.localPath?{packageFs:new En(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot,localPath:p}:{packageFs:new Gu(p,{baseFs:A}),releaseFs:u.releaseFs,prefixPath:Bt.dot}}};Ke();Ke();Pt();var uv=class{supportsDescriptor(e,r){return!!e.range.startsWith(Zf)}supportsLocator(e,r){return!!e.reference.startsWith(Zf)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){return G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Zf.length);return[G.makeLocator(e,`${Zf}${Ae.toPortablePath(a)}`)]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){if(!r.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let o=await r.fetchOptions.fetcher.fetch(e,r.fetchOptions),a=await qe.releaseAfterUseAsync(async()=>await _t.find(o.prefixPath,{baseFs:o.packageFs}),o.releaseFs);return{...e,version:a.version||"0.0.0",languageName:a.languageName||r.project.configuration.get("defaultLanguageName"),linkType:"SOFT",conditions:a.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(a.dependencies),peerDependencies:a.peerDependencies,dependenciesMeta:a.dependenciesMeta,peerDependenciesMeta:a.peerDependenciesMeta,bin:a.bin}}};var _It={fetchers:[av,cv],resolvers:[lv,uv]},HIt=_It;var t5={};Kt(t5,{NodeModulesLinker:()=>Dv,NodeModulesMode:()=>Xj,PnpLooseLinker:()=>Pv,default:()=>n1t});Pt();Ke();Pt();Pt();var Cj=(t,e)=>`${t}@${e}`,Vwe=(t,e)=>{let r=e.indexOf("#"),o=r>=0?e.substring(r+1):e;return Cj(t,o)};var zwe=(t,e={})=>{let r=e.debugLevel||Number(process.env.NM_DEBUG_LEVEL||-1),o=e.check||r>=9,a=e.hoistingLimits||new Map,n={check:o,debugLevel:r,hoistingLimits:a,fastLookupPossible:!0},u;n.debugLevel>=0&&(u=Date.now());let A=VIt(t,n),p=!1,h=0;do{let E=Ij(A,[A],new Set([A.locator]),new Map,n);p=E.anotherRoundNeeded||E.isGraphChanged,n.fastLookupPossible=!1,h++}while(p);if(n.debugLevel>=0&&console.log(`hoist time: ${Date.now()-u}ms, rounds: ${h}`),n.debugLevel>=1){let E=Av(A);if(Ij(A,[A],new Set([A.locator]),new Map,n).isGraphChanged)throw new Error(`The hoisting result is not terminal, prev tree: +${E}, next tree: +${Av(A)}`);let D=Xwe(A);if(D)throw new Error(`${D}, after hoisting finished: +${Av(A)}`)}return n.debugLevel>=2&&console.log(Av(A)),JIt(A)},qIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=n=>{if(!o.has(n)){o.add(n);for(let u of n.hoistedDependencies.values())r.set(u.name,u);for(let u of n.dependencies.values())n.peerNames.has(u.name)||a(u)}};return a(e),r},jIt=t=>{let e=t[t.length-1],r=new Map,o=new Set,a=new Set,n=(u,A)=>{if(o.has(u))return;o.add(u);for(let h of u.hoistedDependencies.values())if(!A.has(h.name)){let E;for(let w of t)E=w.dependencies.get(h.name),E&&r.set(E.name,E)}let p=new Set;for(let h of u.dependencies.values())p.add(h.name);for(let h of u.dependencies.values())u.peerNames.has(h.name)||n(h,p)};return n(e,a),r},Jwe=(t,e)=>{if(e.decoupled)return e;let{name:r,references:o,ident:a,locator:n,dependencies:u,originalDependencies:A,hoistedDependencies:p,peerNames:h,reasons:E,isHoistBorder:w,hoistPriority:D,dependencyKind:x,hoistedFrom:C,hoistedTo:T}=e,L={name:r,references:new Set(o),ident:a,locator:n,dependencies:new Map(u),originalDependencies:new Map(A),hoistedDependencies:new Map(p),peerNames:new Set(h),reasons:new Map(E),decoupled:!0,isHoistBorder:w,hoistPriority:D,dependencyKind:x,hoistedFrom:new Map(C),hoistedTo:new Map(T)},U=L.dependencies.get(r);return U&&U.ident==L.ident&&L.dependencies.set(r,L),t.dependencies.set(L.name,L),L},GIt=(t,e)=>{let r=new Map([[t.name,[t.ident]]]);for(let a of t.dependencies.values())t.peerNames.has(a.name)||r.set(a.name,[a.ident]);let o=Array.from(e.keys());o.sort((a,n)=>{let u=e.get(a),A=e.get(n);if(A.hoistPriority!==u.hoistPriority)return A.hoistPriority-u.hoistPriority;{let p=u.dependents.size+u.peerDependents.size;return A.dependents.size+A.peerDependents.size-p}});for(let a of o){let n=a.substring(0,a.indexOf("@",1)),u=a.substring(n.length+1);if(!t.peerNames.has(n)){let A=r.get(n);A||(A=[],r.set(n,A)),A.indexOf(u)<0&&A.push(u)}}return r},Ej=t=>{let e=new Set,r=(o,a=new Set)=>{if(!a.has(o)){a.add(o);for(let n of o.peerNames)if(!t.peerNames.has(n)){let u=t.dependencies.get(n);u&&!e.has(u)&&r(u,a)}e.add(o)}};for(let o of t.dependencies.values())t.peerNames.has(o.name)||r(o);return e},Ij=(t,e,r,o,a,n=new Set)=>{let u=e[e.length-1];if(n.has(u))return{anotherRoundNeeded:!1,isGraphChanged:!1};n.add(u);let A=zIt(u),p=GIt(u,A),h=t==u?new Map:a.fastLookupPossible?qIt(e):jIt(e),E,w=!1,D=!1,x=new Map(Array.from(p.entries()).map(([T,L])=>[T,L[0]])),C=new Map;do{let T=KIt(t,e,r,h,x,p,o,C,a);T.isGraphChanged&&(D=!0),T.anotherRoundNeeded&&(w=!0),E=!1;for(let[L,U]of p)U.length>1&&!u.dependencies.has(L)&&(x.delete(L),U.shift(),x.set(L,U[0]),E=!0)}while(E);for(let T of u.dependencies.values())if(!u.peerNames.has(T.name)&&!r.has(T.locator)){r.add(T.locator);let L=Ij(t,[...e,T],r,C,a);L.isGraphChanged&&(D=!0),L.anotherRoundNeeded&&(w=!0),r.delete(T.locator)}return{anotherRoundNeeded:w,isGraphChanged:D}},WIt=t=>{for(let[e,r]of t.dependencies)if(!t.peerNames.has(e)&&r.ident!==t.ident)return!0;return!1},YIt=(t,e,r,o,a,n,u,A,{outputReason:p,fastLookupPossible:h})=>{let E,w=null,D=new Set;p&&(E=`${Array.from(e).map(L=>zs(L)).join("\u2192")}`);let x=r[r.length-1],T=!(o.ident===x.ident);if(p&&!T&&(w="- self-reference"),T&&(T=o.dependencyKind!==1,p&&!T&&(w="- workspace")),T&&o.dependencyKind===2&&(T=!WIt(o),p&&!T&&(w="- external soft link with unhoisted dependencies")),T&&(T=!t.peerNames.has(o.name),p&&!T&&(w=`- cannot shadow peer: ${zs(t.originalDependencies.get(o.name).locator)} at ${E}`)),T){let L=!1,U=a.get(o.name);if(L=!U||U.ident===o.ident,p&&!L&&(w=`- filled by: ${zs(U.locator)} at ${E}`),L)for(let J=r.length-1;J>=1;J--){let le=r[J].dependencies.get(o.name);if(le&&le.ident!==o.ident){L=!1;let ce=A.get(x);ce||(ce=new Set,A.set(x,ce)),ce.add(o.name),p&&(w=`- filled by ${zs(le.locator)} at ${r.slice(0,J).map(ue=>zs(ue.locator)).join("\u2192")}`);break}}T=L}if(T&&(T=n.get(o.name)===o.ident,p&&!T&&(w=`- filled by: ${zs(u.get(o.name)[0])} at ${E}`)),T){let L=!0,U=new Set(o.peerNames);for(let J=r.length-1;J>=1;J--){let te=r[J];for(let le of U){if(te.peerNames.has(le)&&te.originalDependencies.has(le))continue;let ce=te.dependencies.get(le);ce&&t.dependencies.get(le)!==ce&&(J===r.length-1?D.add(ce):(D=null,L=!1,p&&(w=`- peer dependency ${zs(ce.locator)} from parent ${zs(te.locator)} was not hoisted to ${E}`))),U.delete(le)}if(!L)break}T=L}if(T&&!h)for(let L of o.hoistedDependencies.values()){let U=a.get(L.name)||t.dependencies.get(L.name);if(!U||L.ident!==U.ident){T=!1,p&&(w=`- previously hoisted dependency mismatch, needed: ${zs(L.locator)}, available: ${zs(U?.locator)}`);break}}return D!==null&&D.size>0?{isHoistable:2,dependsOn:D,reason:w}:{isHoistable:T?0:1,reason:w}},VQ=t=>`${t.name}@${t.locator}`,KIt=(t,e,r,o,a,n,u,A,p)=>{let h=e[e.length-1],E=new Set,w=!1,D=!1,x=(U,J,te,le,ce)=>{if(E.has(le))return;let ue=[...J,VQ(le)],Ie=[...te,VQ(le)],he=new Map,De=new Map;for(let fe of Ej(le)){let ie=YIt(h,r,[h,...U,le],fe,o,a,n,A,{outputReason:p.debugLevel>=2,fastLookupPossible:p.fastLookupPossible});if(De.set(fe,ie),ie.isHoistable===2)for(let Z of ie.dependsOn){let Pe=he.get(Z.name)||new Set;Pe.add(fe.name),he.set(Z.name,Pe)}}let Ee=new Set,g=(fe,ie,Z)=>{if(!Ee.has(fe)){Ee.add(fe),De.set(fe,{isHoistable:1,reason:Z});for(let Pe of he.get(fe.name)||[])g(le.dependencies.get(Pe),ie,p.debugLevel>=2?`- peer dependency ${zs(fe.locator)} from parent ${zs(le.locator)} was not hoisted`:"")}};for(let[fe,ie]of De)ie.isHoistable===1&&g(fe,ie,ie.reason);let me=!1;for(let fe of De.keys())if(!Ee.has(fe)){D=!0;let ie=u.get(le);ie&&ie.has(fe.name)&&(w=!0),me=!0,le.dependencies.delete(fe.name),le.hoistedDependencies.set(fe.name,fe),le.reasons.delete(fe.name);let Z=h.dependencies.get(fe.name);if(p.debugLevel>=2){let Pe=Array.from(J).concat([le.locator]).map(ht=>zs(ht)).join("\u2192"),Re=h.hoistedFrom.get(fe.name);Re||(Re=[],h.hoistedFrom.set(fe.name,Re)),Re.push(Pe),le.hoistedTo.set(fe.name,Array.from(e).map(ht=>zs(ht.locator)).join("\u2192"))}if(!Z)h.ident!==fe.ident&&(h.dependencies.set(fe.name,fe),ce.add(fe));else for(let Pe of fe.references)Z.references.add(Pe)}if(le.dependencyKind===2&&me&&(w=!0),p.check){let fe=Xwe(t);if(fe)throw new Error(`${fe}, after hoisting dependencies of ${[h,...U,le].map(ie=>zs(ie.locator)).join("\u2192")}: +${Av(t)}`)}let Ce=Ej(le);for(let fe of Ce)if(Ee.has(fe)){let ie=De.get(fe);if((a.get(fe.name)===fe.ident||!le.reasons.has(fe.name))&&ie.isHoistable!==0&&le.reasons.set(fe.name,ie.reason),!fe.isHoistBorder&&Ie.indexOf(VQ(fe))<0){E.add(le);let Pe=Jwe(le,fe);x([...U,le],ue,Ie,Pe,T),E.delete(le)}}},C,T=new Set(Ej(h)),L=Array.from(e).map(U=>VQ(U));do{C=T,T=new Set;for(let U of C){if(U.locator===h.locator||U.isHoistBorder)continue;let J=Jwe(h,U);x([],Array.from(r),L,J,T)}}while(T.size>0);return{anotherRoundNeeded:w,isGraphChanged:D}},Xwe=t=>{let e=[],r=new Set,o=new Set,a=(n,u,A)=>{if(r.has(n)||(r.add(n),o.has(n)))return;let p=new Map(u);for(let h of n.dependencies.values())n.peerNames.has(h.name)||p.set(h.name,h);for(let h of n.originalDependencies.values()){let E=p.get(h.name),w=()=>`${Array.from(o).concat([n]).map(D=>zs(D.locator)).join("\u2192")}`;if(n.peerNames.has(h.name)){let D=u.get(h.name);(D!==E||!D||D.ident!==h.ident)&&e.push(`${w()} - broken peer promise: expected ${h.ident} but found ${D&&D.ident}`)}else{let D=A.hoistedFrom.get(n.name),x=n.hoistedTo.get(h.name),C=`${D?` hoisted from ${D.join(", ")}`:""}`,T=`${x?` hoisted to ${x}`:""}`,L=`${w()}${C}`;E?E.ident!==h.ident&&e.push(`${L} - broken require promise for ${h.name}${T}: expected ${h.ident}, but found: ${E.ident}`):e.push(`${L} - broken require promise: no required dependency ${h.name}${T} found`)}}o.add(n);for(let h of n.dependencies.values())n.peerNames.has(h.name)||a(h,p,n);o.delete(n)};return a(t,t.dependencies,t),e.join(` +`)},VIt=(t,e)=>{let{identName:r,name:o,reference:a,peerNames:n}=t,u={name:o,references:new Set([a]),locator:Cj(r,a),ident:Vwe(r,a),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(n),reasons:new Map,decoupled:!0,isHoistBorder:!0,hoistPriority:0,dependencyKind:1,hoistedFrom:new Map,hoistedTo:new Map},A=new Map([[t,u]]),p=(h,E)=>{let w=A.get(h),D=!!w;if(!w){let{name:x,identName:C,reference:T,peerNames:L,hoistPriority:U,dependencyKind:J}=h,te=e.hoistingLimits.get(E.locator);w={name:x,references:new Set([T]),locator:Cj(C,T),ident:Vwe(C,T),dependencies:new Map,originalDependencies:new Map,hoistedDependencies:new Map,peerNames:new Set(L),reasons:new Map,decoupled:!0,isHoistBorder:te?te.has(x):!1,hoistPriority:U||0,dependencyKind:J||0,hoistedFrom:new Map,hoistedTo:new Map},A.set(h,w)}if(E.dependencies.set(h.name,w),E.originalDependencies.set(h.name,w),D){let x=new Set,C=T=>{if(!x.has(T)){x.add(T),T.decoupled=!1;for(let L of T.dependencies.values())T.peerNames.has(L.name)||C(L)}};C(w)}else for(let x of h.dependencies)p(x,w)};for(let h of t.dependencies)p(h,u);return u},wj=t=>t.substring(0,t.indexOf("@",1)),JIt=t=>{let e={name:t.name,identName:wj(t.locator),references:new Set(t.references),dependencies:new Set},r=new Set([t]),o=(a,n,u)=>{let A=r.has(a),p;if(n===a)p=u;else{let{name:h,references:E,locator:w}=a;p={name:h,identName:wj(w),references:E,dependencies:new Set}}if(u.dependencies.add(p),!A){r.add(a);for(let h of a.dependencies.values())a.peerNames.has(h.name)||o(h,a,p);r.delete(a)}};for(let a of t.dependencies.values())o(a,t,e);return e},zIt=t=>{let e=new Map,r=new Set([t]),o=u=>`${u.name}@${u.ident}`,a=u=>{let A=o(u),p=e.get(A);return p||(p={dependents:new Set,peerDependents:new Set,hoistPriority:0},e.set(A,p)),p},n=(u,A)=>{let p=!!r.has(A);if(a(A).dependents.add(u.ident),!p){r.add(A);for(let E of A.dependencies.values()){let w=a(E);w.hoistPriority=Math.max(w.hoistPriority,E.hoistPriority),A.peerNames.has(E.name)?w.peerDependents.add(A.ident):n(A,E)}}};for(let u of t.dependencies.values())t.peerNames.has(u.name)||n(t,u);return e},zs=t=>{if(!t)return"none";let e=t.indexOf("@",1),r=t.substring(0,e);r.endsWith("$wsroot$")&&(r=`wh:${r.replace("$wsroot$","")}`);let o=t.substring(e+1);if(o==="workspace:.")return".";if(o){let a=(o.indexOf("#")>0?o.split("#")[1]:o).replace("npm:","");return o.startsWith("virtual")&&(r=`v:${r}`),a.startsWith("workspace")&&(r=`w:${r}`,a=""),`${r}${a?`@${a}`:""}`}else return`${r}`};var Av=t=>{let e=0,r=(a,n,u="")=>{if(e>5e4||n.has(a))return"";e++;let A=Array.from(a.dependencies.values()).sort((h,E)=>h.name===E.name?0:h.name>E.name?1:-1),p="";n.add(a);for(let h=0;h":"")+(D!==E.name?`a:${E.name}:`:"")+zs(E.locator)+(w?` ${w}`:"")} +`,p+=r(E,n,`${u}${h5e4?` +Tree is too large, part of the tree has been dunped +`:"")};var fv=(o=>(o.WORKSPACES="workspaces",o.DEPENDENCIES="dependencies",o.NONE="none",o))(fv||{}),Zwe="node_modules",jh="$wsroot$";var pv=(t,e)=>{let{packageTree:r,hoistingLimits:o,errors:a,preserveSymlinksRequired:n}=ZIt(t,e),u=null;if(a.length===0){let A=zwe(r,{hoistingLimits:o});u=ewt(t,A,e)}return{tree:u,errors:a,preserveSymlinksRequired:n}},yA=t=>`${t.name}@${t.reference}`,vj=t=>{let e=new Map;for(let[r,o]of t.entries())if(!o.dirList){let a=e.get(o.locator);a||(a={target:o.target,linkType:o.linkType,locations:[],aliases:o.aliases},e.set(o.locator,a)),a.locations.push(r)}for(let r of e.values())r.locations=r.locations.sort((o,a)=>{let n=o.split(K.delimiter).length,u=a.split(K.delimiter).length;return a===o?0:n!==u?u-n:a>o?1:-1});return e},$we=(t,e)=>{let r=G.isVirtualLocator(t)?G.devirtualizeLocator(t):t,o=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e;return G.areLocatorsEqual(r,o)},Bj=(t,e,r,o)=>{if(t.linkType!=="SOFT")return!1;let a=Ae.toPortablePath(r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation);return K.contains(o,a)===null},XIt=t=>{let e=t.getPackageInformation(t.topLevel);if(e===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");if(t.findPackageLocator(e.packageLocation)===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let o=Ae.toPortablePath(e.packageLocation.slice(0,-1)),a=new Map,n={children:new Map},u=t.getDependencyTreeRoots(),A=new Map,p=new Set,h=(D,x)=>{let C=yA(D);if(p.has(C))return;p.add(C);let T=t.getPackageInformation(D);if(T){let L=x?yA(x):"";if(yA(D)!==L&&T.linkType==="SOFT"&&!D.reference.startsWith("link:")&&!Bj(T,D,t,o)){let U=e1e(T,D,t);(!A.get(U)||D.reference.startsWith("workspace:"))&&A.set(U,D)}for(let[U,J]of T.packageDependencies)J!==null&&(T.packagePeers.has(U)||h(t.getLocator(U,J),D))}};for(let D of u)h(D,null);let E=o.split(K.sep);for(let D of A.values()){let x=t.getPackageInformation(D),T=Ae.toPortablePath(x.packageLocation.slice(0,-1)).split(K.sep).slice(E.length),L=n;for(let U of T){let J=L.children.get(U);J||(J={children:new Map},L.children.set(U,J)),L=J}L.workspaceLocator=D}let w=(D,x)=>{if(D.workspaceLocator){let C=yA(x),T=a.get(C);T||(T=new Set,a.set(C,T)),T.add(D.workspaceLocator)}for(let C of D.children.values())w(C,D.workspaceLocator||x)};for(let D of n.children.values())w(D,n.workspaceLocator);return a},ZIt=(t,e)=>{let r=[],o=!1,a=new Map,n=XIt(t),u=t.getPackageInformation(t.topLevel);if(u===null)throw new Error("Assertion failed: Expected the top-level package to have been registered");let A=t.findPackageLocator(u.packageLocation);if(A===null)throw new Error("Assertion failed: Expected the top-level package to have a physical locator");let p=Ae.toPortablePath(u.packageLocation.slice(0,-1)),h={name:A.name,identName:A.name,reference:A.reference,peerNames:u.packagePeers,dependencies:new Set,dependencyKind:1},E=new Map,w=(x,C)=>`${yA(C)}:${x}`,D=(x,C,T,L,U,J,te,le)=>{let ce=w(x,T),ue=E.get(ce),Ie=!!ue;!Ie&&T.name===A.name&&T.reference===A.reference&&(ue=h,E.set(ce,h));let he=Bj(C,T,t,p);if(!ue){let fe=0;he?fe=2:C.linkType==="SOFT"&&T.name.endsWith(jh)&&(fe=1),ue={name:x,identName:T.name,reference:T.reference,dependencies:new Set,peerNames:fe===1?new Set:C.packagePeers,dependencyKind:fe},E.set(ce,ue)}let De;if(he?De=2:U.linkType==="SOFT"?De=1:De=0,ue.hoistPriority=Math.max(ue.hoistPriority||0,De),le&&!he){let fe=yA({name:L.identName,reference:L.reference}),ie=a.get(fe)||new Set;a.set(fe,ie),ie.add(ue.name)}let Ee=new Map(C.packageDependencies);if(e.project){let fe=e.project.workspacesByCwd.get(Ae.toPortablePath(C.packageLocation.slice(0,-1)));if(fe){let ie=new Set([...Array.from(fe.manifest.peerDependencies.values(),Z=>G.stringifyIdent(Z)),...Array.from(fe.manifest.peerDependenciesMeta.keys())]);for(let Z of ie)Ee.has(Z)||(Ee.set(Z,J.get(Z)||null),ue.peerNames.add(Z))}}let g=yA({name:T.name.replace(jh,""),reference:T.reference}),me=n.get(g);if(me)for(let fe of me)Ee.set(`${fe.name}${jh}`,fe.reference);(C!==U||C.linkType!=="SOFT"||!he&&(!e.selfReferencesByCwd||e.selfReferencesByCwd.get(te)))&&L.dependencies.add(ue);let Ce=T!==A&&C.linkType==="SOFT"&&!T.name.endsWith(jh)&&!he;if(!Ie&&!Ce){let fe=new Map;for(let[ie,Z]of Ee)if(Z!==null){let Pe=t.getLocator(ie,Z),Re=t.getLocator(ie.replace(jh,""),Z),ht=t.getPackageInformation(Re);if(ht===null)throw new Error("Assertion failed: Expected the package to have been registered");let q=Bj(ht,Pe,t,p);if(e.validateExternalSoftLinks&&e.project&&q){ht.packageDependencies.size>0&&(o=!0);for(let[Ve,be]of ht.packageDependencies)if(be!==null){let tt=G.parseLocator(Array.isArray(be)?`${be[0]}@${be[1]}`:`${Ve}@${be}`);if(yA(tt)!==yA(Pe)){let He=Ee.get(Ve);if(He){let b=G.parseLocator(Array.isArray(He)?`${He[0]}@${He[1]}`:`${Ve}@${He}`);$we(b,tt)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(Pe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,tt)} conflicts with parent dependency ${G.prettyLocator(e.project.configuration,b)}`})}else{let b=fe.get(Ve);if(b){let I=b.target,S=G.parseLocator(Array.isArray(I)?`${I[0]}@${I[1]}`:`${Ve}@${I}`);$we(S,tt)||r.push({messageName:71,text:`Cannot link ${G.prettyIdent(e.project.configuration,G.parseIdent(Pe.name))} into ${G.prettyLocator(e.project.configuration,G.parseLocator(`${T.name}@${T.reference}`))} dependency ${G.prettyLocator(e.project.configuration,tt)} conflicts with dependency ${G.prettyLocator(e.project.configuration,S)} from sibling portal ${G.prettyIdent(e.project.configuration,G.parseIdent(b.portal.name))}`})}else fe.set(Ve,{target:tt.reference,portal:Pe})}}}}let nt=e.hoistingLimitsByCwd?.get(te),Ne=q?te:K.relative(p,Ae.toPortablePath(ht.packageLocation))||Bt.dot,Te=e.hoistingLimitsByCwd?.get(Ne);D(ie,ht,Pe,ue,C,Ee,Ne,nt==="dependencies"||Te==="dependencies"||Te==="workspaces")}}};return D(A.name,u,A,h,u,u.packageDependencies,Bt.dot,!1),{packageTree:h,hoistingLimits:a,errors:r,preserveSymlinksRequired:o}};function e1e(t,e,r){let o=r.resolveVirtual&&e.reference&&e.reference.startsWith("virtual:")?r.resolveVirtual(t.packageLocation):t.packageLocation;return Ae.toPortablePath(o||t.packageLocation)}function $It(t,e,r){let o=e.getLocator(t.name.replace(jh,""),t.reference),a=e.getPackageInformation(o);if(a===null)throw new Error("Assertion failed: Expected the package to be registered");return r.pnpifyFs?{linkType:"SOFT",target:Ae.toPortablePath(a.packageLocation)}:{linkType:a.linkType,target:e1e(a,t,e)}}var ewt=(t,e,r)=>{let o=new Map,a=(E,w,D)=>{let{linkType:x,target:C}=$It(E,t,r);return{locator:yA(E),nodePath:w,target:C,linkType:x,aliases:D}},n=E=>{let[w,D]=E.split("/");return D?{scope:w,name:D}:{scope:null,name:w}},u=new Set,A=(E,w,D)=>{if(u.has(E))return;u.add(E);let x=Array.from(E.references).sort().join("#");for(let C of E.dependencies){let T=Array.from(C.references).sort().join("#");if(C.identName===E.identName.replace(jh,"")&&T===x)continue;let L=Array.from(C.references).sort(),U={name:C.identName,reference:L[0]},{name:J,scope:te}=n(C.name),le=te?[te,J]:[J],ce=K.join(w,Zwe),ue=K.join(ce,...le),Ie=`${D}/${U.name}`,he=a(U,D,L.slice(1)),De=!1;if(he.linkType==="SOFT"&&r.project){let Ee=r.project.workspacesByCwd.get(he.target.slice(0,-1));De=!!(Ee&&!Ee.manifest.name)}if(!C.name.endsWith(jh)&&!De){let Ee=o.get(ue);if(Ee){if(Ee.dirList)throw new Error(`Assertion failed: ${ue} cannot merge dir node with leaf node`);{let Ce=G.parseLocator(Ee.locator),fe=G.parseLocator(he.locator);if(Ee.linkType!==he.linkType)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different link types ${Ee.nodePath}/${G.stringifyLocator(Ce)} and ${D}/${G.stringifyLocator(fe)}`);if(Ce.identHash!==fe.identHash)throw new Error(`Assertion failed: ${ue} cannot merge nodes with different idents ${Ee.nodePath}/${G.stringifyLocator(Ce)} and ${D}/s${G.stringifyLocator(fe)}`);he.aliases=[...he.aliases,...Ee.aliases,G.parseLocator(Ee.locator).reference]}}o.set(ue,he);let g=ue.split("/"),me=g.indexOf(Zwe);for(let Ce=g.length-1;me>=0&&Ce>me;Ce--){let fe=Ae.toPortablePath(g.slice(0,Ce).join(K.sep)),ie=g[Ce],Z=o.get(fe);if(!Z)o.set(fe,{dirList:new Set([ie])});else if(Z.dirList){if(Z.dirList.has(ie))break;Z.dirList.add(ie)}}}A(C,he.linkType==="SOFT"?he.target:ue,Ie)}},p=a({name:e.name,reference:Array.from(e.references)[0]},"",[]),h=p.target;return o.set(h,p),A(e,h,""),o};Ke();Ke();Pt();Pt();sA();Ol();var jj={};Kt(jj,{PnpInstaller:()=>pd,PnpLinker:()=>Yh,UnplugCommand:()=>QC,default:()=>kwt,getPnpPath:()=>Kh,jsInstallUtils:()=>CA,pnpUtils:()=>vv,quotePathIfNeeded:()=>M1e});Pt();var O1e=ve("url");Ke();Ke();Pt();Pt();var t1e={DEFAULT:{collapsed:!1,next:{"*":"DEFAULT"}},TOP_LEVEL:{collapsed:!1,next:{fallbackExclusionList:"FALLBACK_EXCLUSION_LIST",packageRegistryData:"PACKAGE_REGISTRY_DATA","*":"DEFAULT"}},FALLBACK_EXCLUSION_LIST:{collapsed:!1,next:{"*":"FALLBACK_EXCLUSION_ENTRIES"}},FALLBACK_EXCLUSION_ENTRIES:{collapsed:!0,next:{"*":"FALLBACK_EXCLUSION_DATA"}},FALLBACK_EXCLUSION_DATA:{collapsed:!0,next:{"*":"DEFAULT"}},PACKAGE_REGISTRY_DATA:{collapsed:!1,next:{"*":"PACKAGE_REGISTRY_ENTRIES"}},PACKAGE_REGISTRY_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_STORE_DATA"}},PACKAGE_STORE_DATA:{collapsed:!1,next:{"*":"PACKAGE_STORE_ENTRIES"}},PACKAGE_STORE_ENTRIES:{collapsed:!0,next:{"*":"PACKAGE_INFORMATION_DATA"}},PACKAGE_INFORMATION_DATA:{collapsed:!1,next:{packageDependencies:"PACKAGE_DEPENDENCIES","*":"DEFAULT"}},PACKAGE_DEPENDENCIES:{collapsed:!1,next:{"*":"PACKAGE_DEPENDENCY"}},PACKAGE_DEPENDENCY:{collapsed:!0,next:{"*":"DEFAULT"}}};function twt(t,e,r){let o="";o+="[";for(let a=0,n=t.length;a"u"||(A!==0&&(a+=", "),a+=JSON.stringify(p),a+=": ",a+=JQ(p,h,e,r).replace(/^ +/g,""),A+=1)}return a+="}",a}function iwt(t,e,r){let o=Object.keys(t),a=`${r} `,n="";n+=r,n+=`{ +`;let u=0;for(let A=0,p=o.length;A"u"||(u!==0&&(n+=",",n+=` +`),n+=a,n+=JSON.stringify(h),n+=": ",n+=JQ(h,E,e,a).replace(/^ +/g,""),u+=1)}return u!==0&&(n+=` +`),n+=r,n+="}",n}function JQ(t,e,r,o){let{next:a}=t1e[r],n=a[t]||a["*"];return r1e(e,n,o)}function r1e(t,e,r){let{collapsed:o}=t1e[e];return Array.isArray(t)?o?twt(t,e,r):rwt(t,e,r):typeof t=="object"&&t!==null?o?nwt(t,e,r):iwt(t,e,r):JSON.stringify(t)}function n1e(t){return r1e(t,"TOP_LEVEL","")}function hv(t,e){let r=Array.from(t);Array.isArray(e)||(e=[e]);let o=[];for(let n of e)o.push(r.map(u=>n(u)));let a=r.map((n,u)=>u);return a.sort((n,u)=>{for(let A of o){let p=A[n]A[u]?1:0;if(p!==0)return p}return 0}),a.map(n=>r[n])}function swt(t){let e=new Map,r=hv(t.fallbackExclusionList||[],[({name:o,reference:a})=>o,({name:o,reference:a})=>a]);for(let{name:o,reference:a}of r){let n=e.get(o);typeof n>"u"&&e.set(o,n=new Set),n.add(a)}return Array.from(e).map(([o,a])=>[o,Array.from(a)])}function owt(t){return hv(t.fallbackPool||[],([e])=>e)}function awt(t){let e=[];for(let[r,o]of hv(t.packageRegistry,([a])=>a===null?"0":`1${a}`)){let a=[];e.push([r,a]);for(let[n,{packageLocation:u,packageDependencies:A,packagePeers:p,linkType:h,discardFromLookup:E}]of hv(o,([w])=>w===null?"0":`1${w}`)){let w=[];r!==null&&n!==null&&!A.has(r)&&w.push([r,n]);for(let[C,T]of hv(A.entries(),([L])=>L))w.push([C,T]);let D=p&&p.size>0?Array.from(p):void 0,x=E||void 0;a.push([n,{packageLocation:u,packageDependencies:w,packagePeers:D,linkType:h,discardFromLookup:x}])}}return e}function gv(t){return{__info:["This file is automatically generated. Do not touch it, or risk","your modifications being lost."],dependencyTreeRoots:t.dependencyTreeRoots,enableTopLevelFallback:t.enableTopLevelFallback||!1,ignorePatternData:t.ignorePattern||null,fallbackExclusionList:swt(t),fallbackPool:owt(t),packageRegistryData:awt(t)}}var o1e=et(s1e());function a1e(t,e){return[t?`${t} +`:"",`/* eslint-disable */ +`,`// @ts-nocheck +`,`"use strict"; +`,` +`,e,` +`,(0,o1e.default)()].join("")}function lwt(t){return JSON.stringify(t,null,2)}function cwt(t){return`'${t.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(/\n/g,`\\ +`)}'`}function uwt(t){return[`const RAW_RUNTIME_STATE = +`,`${cwt(n1e(t))}; + +`,`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +`,`} +`].join("")}function Awt(){return[`function $$SETUP_STATE(hydrateRuntimeState, basePath) { +`,` const fs = require('fs'); +`,` const path = require('path'); +`,` const pnpDataFilepath = path.resolve(__dirname, ${JSON.stringify(mr.pnpData)}); +`,` return hydrateRuntimeState(JSON.parse(fs.readFileSync(pnpDataFilepath, 'utf8')), {basePath: basePath || __dirname}); +`,`} +`].join("")}function l1e(t){let e=gv(t),r=uwt(e);return a1e(t.shebang,r)}function c1e(t){let e=gv(t),r=Awt(),o=a1e(t.shebang,r);return{dataFile:lwt(e),loaderFile:o}}Pt();function Pj(t,{basePath:e}){let r=Ae.toPortablePath(e),o=K.resolve(r),a=t.ignorePatternData!==null?new RegExp(t.ignorePatternData):null,n=new Map,u=new Map(t.packageRegistryData.map(([w,D])=>[w,new Map(D.map(([x,C])=>{if(w===null!=(x===null))throw new Error("Assertion failed: The name and reference should be null, or neither should");let T=C.discardFromLookup??!1,L={name:w,reference:x},U=n.get(C.packageLocation);U?(U.discardFromLookup=U.discardFromLookup&&T,T||(U.locator=L)):n.set(C.packageLocation,{locator:L,discardFromLookup:T});let J=null;return[x,{packageDependencies:new Map(C.packageDependencies),packagePeers:new Set(C.packagePeers),linkType:C.linkType,discardFromLookup:T,get packageLocation(){return J||(J=K.join(o,C.packageLocation))}}]}))])),A=new Map(t.fallbackExclusionList.map(([w,D])=>[w,new Set(D)])),p=new Map(t.fallbackPool),h=t.dependencyTreeRoots,E=t.enableTopLevelFallback;return{basePath:r,dependencyTreeRoots:h,enableTopLevelFallback:E,fallbackExclusionList:A,fallbackPool:p,ignorePattern:a,packageLocatorsByLocations:n,packageRegistry:u}}Pt();Pt();var tp=ve("module"),fd=ve("url"),Lj=ve("util");var Qo=ve("url");var p1e=et(ve("assert"));var Sj=Array.isArray,dv=JSON.stringify,mv=Object.getOwnPropertyNames,Ad=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),bj=(t,e)=>RegExp.prototype.exec.call(t,e),xj=(t,...e)=>RegExp.prototype[Symbol.replace].apply(t,e),Gh=(t,...e)=>String.prototype.endsWith.apply(t,e),kj=(t,...e)=>String.prototype.includes.apply(t,e),Qj=(t,...e)=>String.prototype.lastIndexOf.apply(t,e),yv=(t,...e)=>String.prototype.indexOf.apply(t,e),u1e=(t,...e)=>String.prototype.replace.apply(t,e),Wh=(t,...e)=>String.prototype.slice.apply(t,e),EA=(t,...e)=>String.prototype.startsWith.apply(t,e),A1e=Map,f1e=JSON.parse;function Ev(t,e,r){return class extends r{constructor(...o){super(e(...o)),this.code=t,this.name=`${r.name} [${t}]`}}}var h1e=Ev("ERR_PACKAGE_IMPORT_NOT_DEFINED",(t,e,r)=>`Package import specifier "${t}" is not defined${e?` in package ${e}package.json`:""} imported from ${r}`,TypeError),Fj=Ev("ERR_INVALID_MODULE_SPECIFIER",(t,e,r=void 0)=>`Invalid module "${t}" ${e}${r?` imported from ${r}`:""}`,TypeError),g1e=Ev("ERR_INVALID_PACKAGE_TARGET",(t,e,r,o=!1,a=void 0)=>{let n=typeof r=="string"&&!o&&r.length&&!EA(r,"./");return e==="."?((0,p1e.default)(o===!1),`Invalid "exports" main target ${dv(r)} defined in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`):`Invalid "${o?"imports":"exports"}" target ${dv(r)} defined for '${e}' in the package config ${t}package.json${a?` imported from ${a}`:""}${n?'; targets must start with "./"':""}`},Error),Cv=Ev("ERR_INVALID_PACKAGE_CONFIG",(t,e,r)=>`Invalid package config ${t}${e?` while importing ${e}`:""}${r?`. ${r}`:""}`,Error),d1e=Ev("ERR_PACKAGE_PATH_NOT_EXPORTED",(t,e,r=void 0)=>e==="."?`No "exports" main defined in ${t}package.json${r?` imported from ${r}`:""}`:`Package subpath '${e}' is not defined by "exports" in ${t}package.json${r?` imported from ${r}`:""}`,Error);var XQ=ve("url");function m1e(t,e){let r=Object.create(null);for(let o=0;oe):t+e}Iv(r,t,o,u,a)}bj(E1e,Wh(t,2))!==null&&Iv(r,t,o,u,a);let p=new URL(t,o),h=p.pathname,E=new URL(".",o).pathname;if(EA(h,E)||Iv(r,t,o,u,a),e==="")return p;if(bj(E1e,e)!==null){let w=n?u1e(r,"*",()=>e):r+e;hwt(w,o,u,a)}return n?new URL(xj(C1e,p.href,()=>e)):new URL(e,p)}function dwt(t){let e=+t;return`${e}`!==t?!1:e>=0&&e<4294967295}function kC(t,e,r,o,a,n,u,A){if(typeof e=="string")return gwt(e,r,o,t,a,n,u,A);if(Sj(e)){if(e.length===0)return null;let p;for(let h=0;hn?-1:n>a||r===-1?1:o===-1||t.length>e.length?-1:e.length>t.length?1:0}function mwt(t,e,r){if(typeof t=="string"||Sj(t))return!0;if(typeof t!="object"||t===null)return!1;let o=mv(t),a=!1,n=0;for(let u=0;u=h.length&&Gh(e,w)&&w1e(n,h)===1&&Qj(h,"*")===E&&(n=h,u=Wh(e,E,e.length-w.length))}}if(n){let p=r[n],h=kC(t,p,u,n,o,!0,!1,a);return h==null&&Rj(e,t,o),h}Rj(e,t,o)}function v1e({name:t,base:e,conditions:r,readFileSyncFn:o}){if(t==="#"||EA(t,"#/")||Gh(t,"/")){let u="is not a valid internal imports specifier name";throw new Fj(t,u,(0,Qo.fileURLToPath)(e))}let a,n=y1e(e,o);if(n.exists){a=(0,Qo.pathToFileURL)(n.pjsonPath);let u=n.imports;if(u)if(Ad(u,t)&&!kj(t,"*")){let A=kC(a,u[t],"",t,e,!1,!0,r);if(A!=null)return A}else{let A="",p,h=mv(u);for(let E=0;E=w.length&&Gh(t,x)&&w1e(A,w)===1&&Qj(w,"*")===D&&(A=w,p=Wh(t,D,t.length-x.length))}}if(A){let E=u[A],w=kC(a,E,p,A,e,!0,!0,r);if(w!=null)return w}}}pwt(t,a,e)}Pt();var Ewt=new Set(["BUILTIN_NODE_RESOLUTION_FAILED","MISSING_DEPENDENCY","MISSING_PEER_DEPENDENCY","QUALIFIED_PATH_RESOLUTION_FAILED","UNDECLARED_DEPENDENCY"]);function ts(t,e,r={},o){o??=Ewt.has(t)?"MODULE_NOT_FOUND":t;let a={configurable:!0,writable:!0,enumerable:!1};return Object.defineProperties(new Error(e),{code:{...a,value:o},pnpCode:{...a,value:t},data:{...a,value:r}})}function pu(t){return Ae.normalize(Ae.fromPortablePath(t))}var b1e=et(P1e());function x1e(t){return Cwt(),Nj[t]}var Nj;function Cwt(){Nj||(Nj={"--conditions":[],...S1e(Iwt()),...S1e(process.execArgv)})}function S1e(t){return(0,b1e.default)({"--conditions":[String],"-C":"--conditions"},{argv:t,permissive:!0})}function Iwt(){let t=[],e=wwt(process.env.NODE_OPTIONS||"",t);return t.length,e}function wwt(t,e){let r=[],o=!1,a=!0;for(let n=0;nparseInt(t,10)),k1e=Ha>19||Ha===19&&ep>=2||Ha===18&&ep>=13,tzt=Ha===20&&ep<6||Ha===19&&ep>=3,rzt=Ha>19||Ha===19&&ep>=6,nzt=Ha>=21||Ha===20&&ep>=10||Ha===18&&ep>=19,izt=Ha>=21||Ha===20&&ep>=10||Ha===18&&ep>=20,szt=Ha>=22;function Q1e(t){if(process.env.WATCH_REPORT_DEPENDENCIES&&process.send)if(t=t.map(e=>Ae.fromPortablePath(qs.resolveVirtual(Ae.toPortablePath(e)))),k1e)process.send({"watch:require":t});else for(let e of t)process.send({"watch:require":e})}function Oj(t,e){let r=Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK)>0,o=Number(process.env.PNP_DEBUG_LEVEL),a=/^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/,n=/^(\/|\.{1,2}(\/|$))/,u=/\/$/,A=/^\.{0,2}\//,p={name:null,reference:null},h=[],E=new Set;if(t.enableTopLevelFallback===!0&&h.push(p),e.compatibilityMode!==!1)for(let Ne of["react-scripts","gatsby"]){let Te=t.packageRegistry.get(Ne);if(Te)for(let ke of Te.keys()){if(ke===null)throw new Error("Assertion failed: This reference shouldn't be null");h.push({name:Ne,reference:ke})}}let{ignorePattern:w,packageRegistry:D,packageLocatorsByLocations:x}=t;function C(Ne,Te){return{fn:Ne,args:Te,error:null,result:null}}function T(Ne){let Te=process.stderr?.hasColors?.()??process.stdout.isTTY,ke=(tt,He)=>`\x1B[${tt}m${He}\x1B[0m`,Ve=Ne.error;console.error(Ve?ke("31;1",`\u2716 ${Ne.error?.message.replace(/\n.*/s,"")}`):ke("33;1","\u203C Resolution")),Ne.args.length>0&&console.error();for(let tt of Ne.args)console.error(` ${ke("37;1","In \u2190")} ${(0,Lj.inspect)(tt,{colors:Te,compact:!0})}`);Ne.result&&(console.error(),console.error(` ${ke("37;1","Out \u2192")} ${(0,Lj.inspect)(Ne.result,{colors:Te,compact:!0})}`));let be=new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2)??[];if(be.length>0){console.error();for(let tt of be)console.error(` ${ke("38;5;244",tt)}`)}console.error()}function L(Ne,Te){if(e.allowDebug===!1)return Te;if(Number.isFinite(o)){if(o>=2)return(...ke)=>{let Ve=C(Ne,ke);try{return Ve.result=Te(...ke)}catch(be){throw Ve.error=be}finally{T(Ve)}};if(o>=1)return(...ke)=>{try{return Te(...ke)}catch(Ve){let be=C(Ne,ke);throw be.error=Ve,T(be),Ve}}}return Te}function U(Ne){let Te=g(Ne);if(!Te)throw ts("INTERNAL","Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)");return Te}function J(Ne){if(Ne.name===null)return!0;for(let Te of t.dependencyTreeRoots)if(Te.name===Ne.name&&Te.reference===Ne.reference)return!0;return!1}let te=new Set(["node","require",...x1e("--conditions")]);function le(Ne,Te=te,ke){let Ve=fe(K.join(Ne,"internal.js"),{resolveIgnored:!0,includeDiscardFromLookup:!0});if(Ve===null)throw ts("INTERNAL",`The locator that owns the "${Ne}" path can't be found inside the dependency tree (this is probably an internal error)`);let{packageLocation:be}=U(Ve),tt=K.join(be,mr.manifest);if(!e.fakeFs.existsSync(tt))return null;let He=JSON.parse(e.fakeFs.readFileSync(tt,"utf8"));if(He.exports==null)return null;let b=K.contains(be,Ne);if(b===null)throw ts("INTERNAL","unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)");b!=="."&&!A.test(b)&&(b=`./${b}`);try{let I=B1e({packageJSONUrl:(0,fd.pathToFileURL)(Ae.fromPortablePath(tt)),packageSubpath:b,exports:He.exports,base:ke?(0,fd.pathToFileURL)(Ae.fromPortablePath(ke)):null,conditions:Te});return Ae.toPortablePath((0,fd.fileURLToPath)(I))}catch(I){throw ts("EXPORTS_RESOLUTION_FAILED",I.message,{unqualifiedPath:pu(Ne),locator:Ve,pkgJson:He,subpath:pu(b),conditions:Te},I.code)}}function ce(Ne,Te,{extensions:ke}){let Ve;try{Te.push(Ne),Ve=e.fakeFs.statSync(Ne)}catch{}if(Ve&&!Ve.isDirectory())return e.fakeFs.realpathSync(Ne);if(Ve&&Ve.isDirectory()){let be;try{be=JSON.parse(e.fakeFs.readFileSync(K.join(Ne,mr.manifest),"utf8"))}catch{}let tt;if(be&&be.main&&(tt=K.resolve(Ne,be.main)),tt&&tt!==Ne){let He=ce(tt,Te,{extensions:ke});if(He!==null)return He}}for(let be=0,tt=ke.length;be{let b=JSON.stringify(He.name);if(Ve.has(b))return;Ve.add(b);let I=me(He);for(let S of I)if(U(S).packagePeers.has(Ne))be(S);else{let R=ke.get(S.name);typeof R>"u"&&ke.set(S.name,R=new Set),R.add(S.reference)}};be(Te);let tt=[];for(let He of[...ke.keys()].sort())for(let b of[...ke.get(He)].sort())tt.push({name:He,reference:b});return tt}function fe(Ne,{resolveIgnored:Te=!1,includeDiscardFromLookup:ke=!1}={}){if(he(Ne)&&!Te)return null;let Ve=K.relative(t.basePath,Ne);Ve.match(n)||(Ve=`./${Ve}`),Ve.endsWith("/")||(Ve=`${Ve}/`);do{let be=x.get(Ve);if(typeof be>"u"||be.discardFromLookup&&!ke){Ve=Ve.substring(0,Ve.lastIndexOf("/",Ve.length-2)+1);continue}return be.locator}while(Ve!=="");return null}function ie(Ne){try{return e.fakeFs.readFileSync(Ae.toPortablePath(Ne),"utf8")}catch(Te){if(Te.code==="ENOENT")return;throw Te}}function Z(Ne,Te,{considerBuiltins:ke=!0}={}){if(Ne.startsWith("#"))throw new Error("resolveToUnqualified can not handle private import mappings");if(Ne==="pnpapi")return Ae.toPortablePath(e.pnpapiResolution);if(ke&&(0,tp.isBuiltin)(Ne))return null;let Ve=pu(Ne),be=Te&&pu(Te);if(Te&&he(Te)&&(!K.isAbsolute(Ne)||fe(Ne)===null)){let b=Ie(Ne,Te);if(b===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${Ve}" +Required by: ${be} +`,{request:Ve,issuer:be});return Ae.toPortablePath(b)}let tt,He=Ne.match(a);if(He){if(!Te)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ve,issuer:be});let[,b,I]=He,S=fe(Te);if(!S){let Fe=Ie(Ne,Te);if(Fe===!1)throw ts("BUILTIN_NODE_RESOLUTION_FAILED",`The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${Ve}" +Required by: ${be} +`,{request:Ve,issuer:be});return Ae.toPortablePath(Fe)}let R=U(S).packageDependencies.get(b),z=null;if(R==null&&S.name!==null){let Fe=t.fallbackExclusionList.get(S.name);if(!Fe||!Fe.has(S.reference)){for(let Et=0,qt=h.length;EtJ(lt))?X=ts("MISSING_PEER_DEPENDENCY",`${S.name} tried to access ${b} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) +${Fe.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} +`).join("")} +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b,brokenAncestors:Fe}):X=ts("MISSING_PEER_DEPENDENCY",`${S.name} tried to access ${b} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) + +${Fe.map(lt=>`Ancestor breaking the chain: ${lt.name}@${lt.reference} +`).join("")} +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b,brokenAncestors:Fe})}else R===void 0&&(!ke&&(0,tp.isBuiltin)(Ne)?J(S)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${be} +`,{request:Ve,issuer:be,dependencyName:b}):X=ts("UNDECLARED_DEPENDENCY",`${S.name} tried to access ${b}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${b} isn't otherwise declared in ${S.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${be} +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b}):J(S)?X=ts("UNDECLARED_DEPENDENCY",`Your application tried to access ${b}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${be} +`,{request:Ve,issuer:be,dependencyName:b}):X=ts("UNDECLARED_DEPENDENCY",`${S.name} tried to access ${b}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${b}${b!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) +`,{request:Ve,issuer:be,issuerLocator:Object.assign({},S),dependencyName:b}));if(R==null){if(z===null||X===null)throw X||new Error("Assertion failed: Expected an error to have been set");R=z;let Fe=X.message.replace(/\n.*/g,"");X.message=Fe,!E.has(Fe)&&o!==0&&(E.add(Fe),process.emitWarning(X))}let $=Array.isArray(R)?{name:R[0],reference:R[1]}:{name:b,reference:R},se=U($);if(!se.packageLocation)throw ts("MISSING_DEPENDENCY",`A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${$.name}@${$.reference}${$.name!==Ve?` (via "${Ve}")`:""} +Required by: ${S.name}@${S.reference} (via ${be}) +`,{request:Ve,issuer:be,dependencyLocator:Object.assign({},$)});let xe=se.packageLocation;I?tt=K.join(xe,I):tt=xe}else if(K.isAbsolute(Ne))tt=K.normalize(Ne);else{if(!Te)throw ts("API_ERROR","The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute",{request:Ve,issuer:be});let b=K.resolve(Te);Te.match(u)?tt=K.normalize(K.join(b,Ne)):tt=K.normalize(K.join(K.dirname(b),Ne))}return K.normalize(tt)}function Pe(Ne,Te,ke=te,Ve){if(n.test(Ne))return Te;let be=le(Te,ke,Ve);return be?K.normalize(be):Te}function Re(Ne,{extensions:Te=Object.keys(tp.Module._extensions)}={}){let ke=[],Ve=ce(Ne,ke,{extensions:Te});if(Ve)return K.normalize(Ve);{Q1e(ke.map(He=>Ae.fromPortablePath(He)));let be=pu(Ne),tt=fe(Ne);if(tt){let{packageLocation:He}=U(tt),b=!0;try{e.fakeFs.accessSync(He)}catch(I){if(I?.code==="ENOENT")b=!1;else{let S=(I?.message??I??"empty exception thrown").replace(/^[A-Z]/,y=>y.toLowerCase());throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Required package exists but could not be accessed (${S}). + +Missing package: ${tt.name}@${tt.reference} +Expected package location: ${pu(He)} +`,{unqualifiedPath:be,extensions:Te})}}if(!b){let I=He.includes("/unplugged/")?"Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).":"Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.";throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`${I} + +Missing package: ${tt.name}@${tt.reference} +Expected package location: ${pu(He)} +`,{unqualifiedPath:be,extensions:Te})}}throw ts("QUALIFIED_PATH_RESOLUTION_FAILED",`Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${be} +${ke.map(He=>`Not found: ${pu(He)} +`).join("")}`,{unqualifiedPath:be,extensions:Te})}}function ht(Ne,Te,ke){if(!Te)throw new Error("Assertion failed: An issuer is required to resolve private import mappings");let Ve=v1e({name:Ne,base:(0,fd.pathToFileURL)(Ae.fromPortablePath(Te)),conditions:ke.conditions??te,readFileSyncFn:ie});if(Ve instanceof URL)return Re(Ae.toPortablePath((0,fd.fileURLToPath)(Ve)),{extensions:ke.extensions});if(Ve.startsWith("#"))throw new Error("Mapping from one private import to another isn't allowed");return q(Ve,Te,ke)}function q(Ne,Te,ke={}){try{if(Ne.startsWith("#"))return ht(Ne,Te,ke);let{considerBuiltins:Ve,extensions:be,conditions:tt}=ke,He=Z(Ne,Te,{considerBuiltins:Ve});if(Ne==="pnpapi")return He;if(He===null)return null;let b=()=>Te!==null?he(Te):!1,I=(!Ve||!(0,tp.isBuiltin)(Ne))&&!b()?Pe(Ne,He,tt,Te):He;return Re(I,{extensions:be})}catch(Ve){throw Object.hasOwn(Ve,"pnpCode")&&Object.assign(Ve.data,{request:pu(Ne),issuer:Te&&pu(Te)}),Ve}}function nt(Ne){let Te=K.normalize(Ne),ke=qs.resolveVirtual(Te);return ke!==Te?ke:null}return{VERSIONS:De,topLevel:Ee,getLocator:(Ne,Te)=>Array.isArray(Te)?{name:Te[0],reference:Te[1]}:{name:Ne,reference:Te},getDependencyTreeRoots:()=>[...t.dependencyTreeRoots],getAllLocators(){let Ne=[];for(let[Te,ke]of D)for(let Ve of ke.keys())Te!==null&&Ve!==null&&Ne.push({name:Te,reference:Ve});return Ne},getPackageInformation:Ne=>{let Te=g(Ne);if(Te===null)return null;let ke=Ae.fromPortablePath(Te.packageLocation);return{...Te,packageLocation:ke}},findPackageLocator:Ne=>fe(Ae.toPortablePath(Ne)),resolveToUnqualified:L("resolveToUnqualified",(Ne,Te,ke)=>{let Ve=Te!==null?Ae.toPortablePath(Te):null,be=Z(Ae.toPortablePath(Ne),Ve,ke);return be===null?null:Ae.fromPortablePath(be)}),resolveUnqualified:L("resolveUnqualified",(Ne,Te)=>Ae.fromPortablePath(Re(Ae.toPortablePath(Ne),Te))),resolveRequest:L("resolveRequest",(Ne,Te,ke)=>{let Ve=Te!==null?Ae.toPortablePath(Te):null,be=q(Ae.toPortablePath(Ne),Ve,ke);return be===null?null:Ae.fromPortablePath(be)}),resolveVirtual:L("resolveVirtual",Ne=>{let Te=nt(Ae.toPortablePath(Ne));return Te!==null?Ae.fromPortablePath(Te):null})}}Pt();var F1e=(t,e,r)=>{let o=gv(t),a=Pj(o,{basePath:e}),n=Ae.join(e,mr.pnpCjs);return Oj(a,{fakeFs:r,pnpapiResolution:n})};var Uj=et(T1e());Gt();var CA={};Kt(CA,{checkManifestCompatibility:()=>N1e,extractBuildRequest:()=>ZQ,getExtractHint:()=>_j,hasBindingGyp:()=>Hj});Ke();Pt();function N1e(t){return G.isPackageCompatible(t,Xi.getArchitectureSet())}function ZQ(t,e,r,{configuration:o}){let a=[];for(let n of["preinstall","install","postinstall"])e.manifest.scripts.has(n)&&a.push({type:0,script:n});return!e.manifest.scripts.has("install")&&e.misc.hasBindingGyp&&a.push({type:1,script:"node-gyp rebuild"}),a.length===0?null:t.linkType!=="HARD"?{skipped:!0,explain:n=>n.reportWarningOnce(6,`${G.prettyLocator(o,t)} lists build scripts, but is referenced through a soft link. Soft links don't support build scripts, so they'll be ignored.`)}:r&&r.built===!1?{skipped:!0,explain:n=>n.reportInfoOnce(5,`${G.prettyLocator(o,t)} lists build scripts, but its build has been explicitly disabled through configuration.`)}:!o.get("enableScripts")&&!r.built?{skipped:!0,explain:n=>n.reportWarningOnce(4,`${G.prettyLocator(o,t)} lists build scripts, but all build scripts have been disabled.`)}:N1e(t)?{skipped:!1,directives:a}:{skipped:!0,explain:n=>n.reportWarningOnce(76,`${G.prettyLocator(o,t)} The ${Xi.getArchitectureName()} architecture is incompatible with this package, build skipped.`)}}var vwt=new Set([".exe",".bin",".h",".hh",".hpp",".c",".cc",".cpp",".java",".jar",".node"]);function _j(t){return t.packageFs.getExtractHint({relevantExtensions:vwt})}function Hj(t){let e=K.join(t.prefixPath,"binding.gyp");return t.packageFs.existsSync(e)}var vv={};Kt(vv,{getUnpluggedPath:()=>Bv});Ke();Pt();function Bv(t,{configuration:e}){return K.resolve(e.get("pnpUnpluggedFolder"),G.slugifyLocator(t))}var Dwt=new Set([G.makeIdent(null,"open").identHash,G.makeIdent(null,"opn").identHash]),Yh=class{constructor(){this.mode="strict";this.pnpCache=new Map}getCustomDataKey(){return JSON.stringify({name:"PnpLinker",version:2})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the PnP linker to be enabled");let o=Kh(r.project).cjs;if(!ae.existsSync(o))throw new it(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let a=qe.getFactoryWithDefault(this.pnpCache,o,()=>qe.dynamicRequire(o,{cachingStrategy:qe.CachingStrategy.FsTime})),n={name:G.stringifyIdent(e),reference:e.reference},u=a.getPackageInformation(n);if(!u)throw new it(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed PnP map - running an install might help`);return Ae.toPortablePath(u.packageLocation)}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=Kh(r.project).cjs;if(!ae.existsSync(o))return null;let n=qe.getFactoryWithDefault(this.pnpCache,o,()=>qe.dynamicRequire(o,{cachingStrategy:qe.CachingStrategy.FsTime})).findPackageLocator(Ae.fromPortablePath(e));return n?G.makeLocator(G.parseIdent(n.name),n.reference):null}makeInstaller(e){return new pd(e)}isEnabled(e){return!(e.project.configuration.get("nodeLinker")!=="pnp"||e.project.configuration.get("pnpMode")!==this.mode)}},pd=class{constructor(e){this.opts=e;this.mode="strict";this.asyncActions=new qe.AsyncActions(10);this.packageRegistry=new Map;this.virtualTemplates=new Map;this.isESMLoaderRequired=!1;this.customData={store:new Map};this.unpluggedPaths=new Set;this.opts=e}attachCustomData(e){this.customData=e}async installPackage(e,r,o){let a=G.stringifyIdent(e),n=e.reference,u=!!this.opts.project.tryWorkspaceByLocator(e),A=G.isVirtualLocator(e),p=e.peerDependencies.size>0&&!A,h=!p&&!u,E=!p&&e.linkType!=="SOFT",w,D;if(h||E){let te=A?G.devirtualizeLocator(e):e;w=this.customData.store.get(te.locatorHash),typeof w>"u"&&(w=await Pwt(r),e.linkType==="HARD"&&this.customData.store.set(te.locatorHash,w)),w.manifest.type==="module"&&(this.isESMLoaderRequired=!0),D=this.opts.project.getDependencyMeta(te,e.version)}let x=h?ZQ(e,w,D,{configuration:this.opts.project.configuration}):null,C=E?await this.unplugPackageIfNeeded(e,w,r,D,o):r.packageFs;if(K.isAbsolute(r.prefixPath))throw new Error(`Assertion failed: Expected the prefix path (${r.prefixPath}) to be relative to the parent`);let T=K.resolve(C.getRealPath(),r.prefixPath),L=qj(this.opts.project.cwd,T),U=new Map,J=new Set;if(A){for(let te of e.peerDependencies.values())U.set(G.stringifyIdent(te),null),J.add(G.stringifyIdent(te));if(!u){let te=G.devirtualizeLocator(e);this.virtualTemplates.set(te.locatorHash,{location:qj(this.opts.project.cwd,qs.resolveVirtual(T)),locator:te})}}return qe.getMapWithDefault(this.packageRegistry,a).set(n,{packageLocation:L,packageDependencies:U,packagePeers:J,linkType:e.linkType,discardFromLookup:r.discardFromLookup||!1}),{packageLocation:T,buildRequest:x}}async attachInternalDependencies(e,r){let o=this.getPackageInformation(e);for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){for(let o of r)this.getDiskInformation(o).packageDependencies.set(G.stringifyIdent(e),e.reference)}async finalizeInstall(){if(this.opts.project.configuration.get("pnpMode")!==this.mode)return;let e=Kh(this.opts.project);if(this.isEsmEnabled()||await ae.removePromise(e.esmLoader),this.opts.project.configuration.get("nodeLinker")!=="pnp"){await ae.removePromise(e.cjs),await ae.removePromise(e.data),await ae.removePromise(e.esmLoader),await ae.removePromise(this.opts.project.configuration.get("pnpUnpluggedFolder"));return}for(let{locator:E,location:w}of this.virtualTemplates.values())qe.getMapWithDefault(this.packageRegistry,G.stringifyIdent(E)).set(E.reference,{packageLocation:w,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1});this.packageRegistry.set(null,new Map([[null,this.getPackageInformation(this.opts.project.topLevelWorkspace.anchoredLocator)]]));let r=this.opts.project.configuration.get("pnpFallbackMode"),o=this.opts.project.workspaces.map(({anchoredLocator:E})=>({name:G.stringifyIdent(E),reference:E.reference})),a=r!=="none",n=[],u=new Map,A=qe.buildIgnorePattern([".yarn/sdks/**",...this.opts.project.configuration.get("pnpIgnorePatterns")]),p=this.packageRegistry,h=this.opts.project.configuration.get("pnpShebang");if(r==="dependencies-only")for(let E of this.opts.project.storedPackages.values())this.opts.project.tryWorkspaceByLocator(E)&&n.push({name:G.stringifyIdent(E),reference:E.reference});return await this.asyncActions.wait(),await this.finalizeInstallWithPnp({dependencyTreeRoots:o,enableTopLevelFallback:a,fallbackExclusionList:n,fallbackPool:u,ignorePattern:A,packageRegistry:p,shebang:h}),{customData:this.customData}}async transformPnpSettings(e){}isEsmEnabled(){if(this.opts.project.configuration.sources.has("pnpEnableEsmLoader"))return this.opts.project.configuration.get("pnpEnableEsmLoader");if(this.isESMLoaderRequired)return!0;for(let e of this.opts.project.workspaces)if(e.manifest.type==="module")return!0;return!1}async finalizeInstallWithPnp(e){let r=Kh(this.opts.project),o=await this.locateNodeModules(e.ignorePattern);if(o.length>0){this.opts.report.reportWarning(31,"One or more node_modules have been detected and will be removed. This operation may take some time.");for(let n of o)await ae.removePromise(n)}if(await this.transformPnpSettings(e),this.opts.project.configuration.get("pnpEnableInlining")){let n=l1e(e);await ae.changeFilePromise(r.cjs,n,{automaticNewlines:!0,mode:493}),await ae.removePromise(r.data)}else{let{dataFile:n,loaderFile:u}=c1e(e);await ae.changeFilePromise(r.cjs,u,{automaticNewlines:!0,mode:493}),await ae.changeFilePromise(r.data,n,{automaticNewlines:!0,mode:420})}this.isEsmEnabled()&&(this.opts.report.reportWarning(0,"ESM support for PnP uses the experimental loader API and is therefore experimental"),await ae.changeFilePromise(r.esmLoader,(0,Uj.default)(),{automaticNewlines:!0,mode:420}));let a=this.opts.project.configuration.get("pnpUnpluggedFolder");if(this.unpluggedPaths.size===0)await ae.removePromise(a);else for(let n of await ae.readdirPromise(a)){let u=K.resolve(a,n);this.unpluggedPaths.has(u)||await ae.removePromise(u)}}async locateNodeModules(e){let r=[],o=e?new RegExp(e):null;for(let a of this.opts.project.workspaces){let n=K.join(a.cwd,"node_modules");if(o&&o.test(K.relative(this.opts.project.cwd,a.cwd))||!ae.existsSync(n))continue;let u=await ae.readdirPromise(n,{withFileTypes:!0}),A=u.filter(p=>!p.isDirectory()||p.name===".bin"||!p.name.startsWith("."));if(A.length===u.length)r.push(n);else for(let p of A)r.push(K.join(n,p.name))}return r}async unplugPackageIfNeeded(e,r,o,a,n){return this.shouldBeUnplugged(e,r,a)?this.unplugPackage(e,o,n):o.packageFs}shouldBeUnplugged(e,r,o){return typeof o.unplugged<"u"?o.unplugged:Dwt.has(e.identHash)||e.conditions!=null?!0:r.manifest.preferUnplugged!==null?r.manifest.preferUnplugged:!!(ZQ(e,r,o,{configuration:this.opts.project.configuration})?.skipped===!1||r.misc.extractHint)}async unplugPackage(e,r,o){let a=Bv(e,{configuration:this.opts.project.configuration});return this.opts.project.disabledLocators.has(e.locatorHash)?new ju(a,{baseFs:r.packageFs,pathUtils:K}):(this.unpluggedPaths.add(a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{let n=K.join(a,r.prefixPath,".ready");await ae.existsPromise(n)||(this.opts.project.storedBuildState.delete(e.locatorHash),await ae.mkdirPromise(a,{recursive:!0}),await ae.copyPromise(a,Bt.dot,{baseFs:r.packageFs,overwrite:!1}),await ae.writeFilePromise(n,""))})),new En(a))}getPackageInformation(e){let r=G.stringifyIdent(e),o=e.reference,a=this.packageRegistry.get(r);if(!a)throw new Error(`Assertion failed: The package information store should have been available (for ${G.prettyIdent(this.opts.project.configuration,e)})`);let n=a.get(o);if(!n)throw new Error(`Assertion failed: The package information should have been available (for ${G.prettyLocator(this.opts.project.configuration,e)})`);return n}getDiskInformation(e){let r=qe.getMapWithDefault(this.packageRegistry,"@@disk"),o=qj(this.opts.project.cwd,e);return qe.getFactoryWithDefault(r,o,()=>({packageLocation:o,packageDependencies:new Map,packagePeers:new Set,linkType:"SOFT",discardFromLookup:!1}))}};function qj(t,e){let r=K.relative(t,e);return r.match(/^\.{0,2}\//)||(r=`./${r}`),r.replace(/\/?$/,"/")}async function Pwt(t){let e=await _t.tryFind(t.prefixPath,{baseFs:t.packageFs})??new _t,r=new Set(["preinstall","install","postinstall"]);for(let o of e.scripts.keys())r.has(o)||e.scripts.delete(o);return{manifest:{scripts:e.scripts,preferUnplugged:e.preferUnplugged,type:e.type},misc:{extractHint:_j(t),hasBindingGyp:Hj(t)}}}Ke();Ke();Gt();var L1e=et(Xo());var QC=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Unplug direct dependencies from the entire project"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Unplug both direct and transitive dependencies"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.patterns=de.Rest()}static{this.paths=[["unplug"]]}static{this.usage=ot.Usage({description:"force the unpacking of a list of packages",details:"\n This command will add the selectors matching the specified patterns to the list of packages that must be unplugged when installed.\n\n A package being unplugged means that instead of being referenced directly through its archive, it will be unpacked at install time in the directory configured via `pnpUnpluggedFolder`. Note that unpacking packages this way is generally not recommended because it'll make it harder to store your packages within the repository. However, it's a good approach to quickly and safely debug some packages, and can even sometimes be required depending on the context (for example when the package contains shellscripts).\n\n Running the command will set a persistent flag inside your top-level `package.json`, in the `dependenciesMeta` field. As such, to undo its effects, you'll need to revert the changes made to the manifest and run `yarn install` to apply the modification.\n\n By default, only direct dependencies from the current workspace are affected. If `-A,--all` is set, direct dependencies from the entire project are affected. Using the `-R,--recursive` flag will affect transitive dependencies as well as direct ones.\n\n This command accepts glob patterns inside the scope and name components (not the range). Make sure to escape the patterns to prevent your own shell from trying to expand them.\n ",examples:[["Unplug the lodash dependency from the active workspace","yarn unplug lodash"],["Unplug all instances of lodash referenced by any workspace","yarn unplug lodash -A"],["Unplug all instances of lodash referenced by the active workspace and its dependencies","yarn unplug lodash -R"],["Unplug all instances of lodash, anywhere","yarn unplug lodash -AR"],["Unplug one specific version of lodash","yarn unplug lodash@1.2.3"],["Unplug all packages with the `@babel` scope","yarn unplug '@babel/*'"],["Unplug all packages (only for testing, not recommended)","yarn unplug -R '*'"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);if(r.get("nodeLinker")!=="pnp")throw new it("This command can only be used if the `nodeLinker` option is set to `pnp`");await o.restoreInstallState();let u=new Set(this.patterns),A=this.patterns.map(x=>{let C=G.parseDescriptor(x),T=C.range!=="unknown"?C:G.makeDescriptor(C,"*");if(!Ur.validRange(T.range))throw new it(`The range of the descriptor patterns must be a valid semver range (${G.prettyDescriptor(r,T)})`);return L=>{let U=G.stringifyIdent(L);return!L1e.default.isMatch(U,G.stringifyIdent(T))||L.version&&!Ur.satisfiesWithPrereleases(L.version,T.range)?!1:(u.delete(x),!0)}}),p=()=>{let x=[];for(let C of o.storedPackages.values())!o.tryWorkspaceByLocator(C)&&!G.isVirtualLocator(C)&&A.some(T=>T(C))&&x.push(C);return x},h=x=>{let C=new Set,T=[],L=(U,J)=>{if(C.has(U.locatorHash))return;let te=!!o.tryWorkspaceByLocator(U);if(!(J>0&&!this.recursive&&te)&&(C.add(U.locatorHash),!o.tryWorkspaceByLocator(U)&&A.some(le=>le(U))&&T.push(U),!(J>0&&!this.recursive)))for(let le of U.dependencies.values()){let ce=o.storedResolutions.get(le.descriptorHash);if(!ce)throw new Error("Assertion failed: The resolution should have been registered");let ue=o.storedPackages.get(ce);if(!ue)throw new Error("Assertion failed: The package should have been registered");L(ue,J+1)}};for(let U of x)L(U.anchoredPackage,0);return T},E,w;if(this.all&&this.recursive?(E=p(),w="the project"):this.all?(E=h(o.workspaces),w="any workspace"):(E=h([a]),w="this workspace"),u.size>1)throw new it(`Patterns ${pe.prettyList(r,u,pe.Type.CODE)} don't match any packages referenced by ${w}`);if(u.size>0)throw new it(`Pattern ${pe.prettyList(r,u,pe.Type.CODE)} doesn't match any packages referenced by ${w}`);E=qe.sortMap(E,x=>G.stringifyLocator(x));let D=await Nt.start({configuration:r,stdout:this.context.stdout,json:this.json},async x=>{for(let C of E){let T=C.version??"unknown",L=o.topLevelWorkspace.manifest.ensureDependencyMeta(G.makeDescriptor(C,T));L.unplugged=!0,x.reportInfo(0,`Will unpack ${G.prettyLocator(r,C)} to ${pe.pretty(r,Bv(C,{configuration:r}),pe.Type.PATH)}`),x.reportJson({locator:G.stringifyLocator(C),version:T})}await o.topLevelWorkspace.persistManifest(),this.json||x.reportSeparator()});return D.hasErrors()?D.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};var Kh=t=>({cjs:K.join(t.cwd,mr.pnpCjs),data:K.join(t.cwd,mr.pnpData),esmLoader:K.join(t.cwd,mr.pnpEsmLoader)}),M1e=t=>/\s/.test(t)?JSON.stringify(t):t;async function Swt(t,e,r){let o=/\s*--require\s+\S*\.pnp\.c?js\s*/g,a=/\s*--experimental-loader\s+\S*\.pnp\.loader\.mjs\s*/,n=(e.NODE_OPTIONS??"").replace(o," ").replace(a," ").trim();if(t.configuration.get("nodeLinker")!=="pnp"){e.NODE_OPTIONS=n||void 0;return}let u=Kh(t),A=`--require ${M1e(Ae.fromPortablePath(u.cjs))}`;ae.existsSync(u.esmLoader)&&(A=`${A} --experimental-loader ${(0,O1e.pathToFileURL)(Ae.fromPortablePath(u.esmLoader)).href}`),ae.existsSync(u.cjs)&&(e.NODE_OPTIONS=n?`${A} ${n}`:A)}async function bwt(t,e){let r=Kh(t);e(r.cjs),e(r.data),e(r.esmLoader),e(t.configuration.get("pnpUnpluggedFolder"))}var xwt={hooks:{populateYarnPaths:bwt,setupScriptEnvironment:Swt},configuration:{nodeLinker:{description:'The linker used for installing Node packages, one of: "pnp", "pnpm", or "node-modules"',type:"STRING",default:"pnp"},winLinkType:{description:"Whether Yarn should use Windows Junctions or symlinks when creating links on Windows.",type:"STRING",values:["junctions","symlinks"],default:"junctions"},pnpMode:{description:"If 'strict', generates standard PnP maps. If 'loose', merges them with the n_m resolution.",type:"STRING",default:"strict"},pnpShebang:{description:"String to prepend to the generated PnP script",type:"STRING",default:"#!/usr/bin/env node"},pnpIgnorePatterns:{description:"Array of glob patterns; files matching them will use the classic resolution",type:"STRING",default:[],isArray:!0},pnpEnableEsmLoader:{description:"If true, Yarn will generate an ESM loader (`.pnp.loader.mjs`). If this is not explicitly set Yarn tries to automatically detect whether ESM support is required.",type:"BOOLEAN",default:!1},pnpEnableInlining:{description:"If true, the PnP data will be inlined along with the generated loader",type:"BOOLEAN",default:!0},pnpFallbackMode:{description:"If true, the generated PnP loader will follow the top-level fallback rule",type:"STRING",default:"dependencies-only"},pnpUnpluggedFolder:{description:"Folder where the unplugged packages must be stored",type:"ABSOLUTE_PATH",default:"./.yarn/unplugged"}},linkers:[Yh],commands:[QC]},kwt=xwt;var Y1e=et(j1e());Gt();var zj=et(ve("crypto")),K1e=et(ve("fs")),V1e=1,bi="node_modules",$Q=".bin",J1e=".yarn-state.yml",Kwt=1e3,Xj=(o=>(o.CLASSIC="classic",o.HARDLINKS_LOCAL="hardlinks-local",o.HARDLINKS_GLOBAL="hardlinks-global",o))(Xj||{}),Dv=class{constructor(){this.installStateCache=new Map}getCustomDataKey(){return JSON.stringify({name:"NodeModulesLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the node-modules linker to be enabled");let o=r.project.tryWorkspaceByLocator(e);if(o)return o.cwd;let a=await qe.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await Jj(r.project,{unrollAliases:!0}));if(a===null)throw new it("Couldn't find the node_modules state file - running an install might help (findPackageLocation)");let n=a.locatorMap.get(G.stringifyLocator(e));if(!n){let p=new it(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed node_modules map - running an install might help`);throw p.code="LOCATOR_NOT_INSTALLED",p}let u=n.locations.sort((p,h)=>p.split(K.sep).length-h.split(K.sep).length),A=K.join(r.project.configuration.startingCwd,bi);return u.find(p=>K.contains(A,p))||n.locations[0]}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=await qe.getFactoryWithDefault(this.installStateCache,r.project.cwd,async()=>await Jj(r.project,{unrollAliases:!0}));if(o===null)return null;let{locationRoot:a,segments:n}=eF(K.resolve(e),{skipPrefix:r.project.cwd}),u=o.locationTree.get(a);if(!u)return null;let A=u.locator;for(let p of n){if(u=u.children.get(p),!u)break;A=u.locator||A}return G.parseLocator(A)}makeInstaller(e){return new Vj(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="node-modules"}},Vj=class{constructor(e){this.opts=e;this.localStore=new Map;this.realLocatorChecksums=new Map;this.customData={store:new Map}}attachCustomData(e){this.customData=e}async installPackage(e,r){let o=K.resolve(r.packageFs.getRealPath(),r.prefixPath),a=this.customData.store.get(e.locatorHash);if(typeof a>"u"&&(a=await Vwt(e,r),e.linkType==="HARD"&&this.customData.store.set(e.locatorHash,a)),!G.isPackageCompatible(e,this.opts.project.configuration.getSupportedArchitectures()))return{packageLocation:null,buildRequest:null};let n=new Map,u=new Set;n.has(G.stringifyIdent(e))||n.set(G.stringifyIdent(e),e.reference);let A=e;if(G.isVirtualLocator(e)){A=G.devirtualizeLocator(e);for(let E of e.peerDependencies.values())n.set(G.stringifyIdent(E),null),u.add(G.stringifyIdent(E))}let p={packageLocation:`${Ae.fromPortablePath(o)}/`,packageDependencies:n,packagePeers:u,linkType:e.linkType,discardFromLookup:r.discardFromLookup??!1};this.localStore.set(e.locatorHash,{pkg:e,customPackageData:a,dependencyMeta:this.opts.project.getDependencyMeta(e,e.version),pnpNode:p});let h=r.checksum?r.checksum.substring(r.checksum.indexOf("/")+1):null;return this.realLocatorChecksums.set(A.locatorHash,h),{packageLocation:o,buildRequest:null}}async attachInternalDependencies(e,r){let o=this.localStore.get(e.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected information object to have been registered");for(let[a,n]of r){let u=G.areIdentsEqual(a,n)?n.reference:[G.stringifyIdent(n),n.reference];o.pnpNode.packageDependencies.set(G.stringifyIdent(a),u)}}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the node-modules linker")}async finalizeInstall(){if(this.opts.project.configuration.get("nodeLinker")!=="node-modules")return;let e=new qs({baseFs:new iA({maxOpenFiles:80,readOnlyArchives:!0})}),r=await Jj(this.opts.project),o=this.opts.project.configuration.get("nmMode");(r===null||o!==r.nmMode)&&(this.opts.project.storedBuildState.clear(),r={locatorMap:new Map,binSymlinks:new Map,locationTree:new Map,nmMode:o,mtimeMs:0});let a=new Map(this.opts.project.workspaces.map(D=>{let x=this.opts.project.configuration.get("nmHoistingLimits");try{x=qe.validateEnum(fv,D.manifest.installConfig?.hoistingLimits??x)}catch{let T=G.prettyWorkspace(this.opts.project.configuration,D);this.opts.report.reportWarning(57,`${T}: Invalid 'installConfig.hoistingLimits' value. Expected one of ${Object.values(fv).join(", ")}, using default: "${x}"`)}return[D.relativeCwd,x]})),n=new Map(this.opts.project.workspaces.map(D=>{let x=this.opts.project.configuration.get("nmSelfReferences");return x=D.manifest.installConfig?.selfReferences??x,[D.relativeCwd,x]})),u={VERSIONS:{std:1},topLevel:{name:null,reference:null},getLocator:(D,x)=>Array.isArray(x)?{name:x[0],reference:x[1]}:{name:D,reference:x},getDependencyTreeRoots:()=>this.opts.project.workspaces.map(D=>{let x=D.anchoredLocator;return{name:G.stringifyIdent(x),reference:x.reference}}),getPackageInformation:D=>{let x=D.reference===null?this.opts.project.topLevelWorkspace.anchoredLocator:G.makeLocator(G.parseIdent(D.name),D.reference),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the package reference to have been registered");return C.pnpNode},findPackageLocator:D=>{let x=this.opts.project.tryWorkspaceByCwd(Ae.toPortablePath(D));if(x!==null){let C=x.anchoredLocator;return{name:G.stringifyIdent(C),reference:C.reference}}throw new Error("Assertion failed: Unimplemented")},resolveToUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveUnqualified:()=>{throw new Error("Assertion failed: Unimplemented")},resolveRequest:()=>{throw new Error("Assertion failed: Unimplemented")},resolveVirtual:D=>Ae.fromPortablePath(qs.resolveVirtual(Ae.toPortablePath(D)))},{tree:A,errors:p,preserveSymlinksRequired:h}=pv(u,{pnpifyFs:!1,validateExternalSoftLinks:!0,hoistingLimitsByCwd:a,project:this.opts.project,selfReferencesByCwd:n});if(!A){for(let{messageName:D,text:x}of p)this.opts.report.reportError(D,x);return}let E=vj(A);await e1t(r,E,{baseFs:e,project:this.opts.project,report:this.opts.report,realLocatorChecksums:this.realLocatorChecksums,loadManifest:async D=>{let x=G.parseLocator(D),C=this.localStore.get(x.locatorHash);if(typeof C>"u")throw new Error("Assertion failed: Expected the slot to exist");return C.customPackageData.manifest}});let w=[];for(let[D,x]of E.entries()){if(Z1e(D))continue;let C=G.parseLocator(D),T=this.localStore.get(C.locatorHash);if(typeof T>"u")throw new Error("Assertion failed: Expected the slot to exist");if(this.opts.project.tryWorkspaceByLocator(T.pkg))continue;let L=CA.extractBuildRequest(T.pkg,T.customPackageData,T.dependencyMeta,{configuration:this.opts.project.configuration});L&&w.push({buildLocations:x.locations,locator:C,buildRequest:L})}return h&&this.opts.report.reportWarning(72,`The application uses portals and that's why ${pe.pretty(this.opts.project.configuration,"--preserve-symlinks",pe.Type.CODE)} Node option is required for launching it`),{customData:this.customData,records:w}}};async function Vwt(t,e){let r=await _t.tryFind(e.prefixPath,{baseFs:e.packageFs})??new _t,o=new Set(["preinstall","install","postinstall"]);for(let a of r.scripts.keys())o.has(a)||r.scripts.delete(a);return{manifest:{bin:r.bin,scripts:r.scripts},misc:{hasBindingGyp:CA.hasBindingGyp(e)}}}async function Jwt(t,e,r,o,{installChangedByUser:a}){let n="";n+=`# Warning: This file is automatically generated. Removing it is fine, but will +`,n+=`# cause your node_modules installation to become invalidated. +`,n+=` +`,n+=`__metadata: +`,n+=` version: ${V1e} +`,n+=` nmMode: ${o.value} +`;let u=Array.from(e.keys()).sort(),A=G.stringifyLocator(t.topLevelWorkspace.anchoredLocator);for(let E of u){let w=e.get(E);n+=` +`,n+=`${JSON.stringify(E)}: +`,n+=` locations: +`;for(let D of w.locations){let x=K.contains(t.cwd,D);if(x===null)throw new Error(`Assertion failed: Expected the path to be within the project (${D})`);n+=` - ${JSON.stringify(x)} +`}if(w.aliases.length>0){n+=` aliases: +`;for(let D of w.aliases)n+=` - ${JSON.stringify(D)} +`}if(E===A&&r.size>0){n+=` bin: +`;for(let[D,x]of r){let C=K.contains(t.cwd,D);if(C===null)throw new Error(`Assertion failed: Expected the path to be within the project (${D})`);n+=` ${JSON.stringify(C)}: +`;for(let[T,L]of x){let U=K.relative(K.join(D,bi),L);n+=` ${JSON.stringify(T)}: ${JSON.stringify(U)} +`}}}}let p=t.cwd,h=K.join(p,bi,J1e);a&&await ae.removePromise(h),await ae.changeFilePromise(h,n,{automaticNewlines:!0})}async function Jj(t,{unrollAliases:e=!1}={}){let r=t.cwd,o=K.join(r,bi,J1e),a;try{a=await ae.statPromise(o)}catch{}if(!a)return null;let n=Ki(await ae.readFilePromise(o,"utf8"));if(n.__metadata.version>V1e)return null;let u=n.__metadata.nmMode||"classic",A=new Map,p=new Map;delete n.__metadata;for(let[h,E]of Object.entries(n)){let w=E.locations.map(x=>K.join(r,x)),D=E.bin;if(D)for(let[x,C]of Object.entries(D)){let T=K.join(r,Ae.toPortablePath(x)),L=qe.getMapWithDefault(p,T);for(let[U,J]of Object.entries(C))L.set(U,Ae.toPortablePath([T,bi,J].join(K.sep)))}if(A.set(h,{target:Bt.dot,linkType:"HARD",locations:w,aliases:E.aliases||[]}),e&&E.aliases)for(let x of E.aliases){let{scope:C,name:T}=G.parseLocator(h),L=G.makeLocator(G.makeIdent(C,T),x),U=G.stringifyLocator(L);A.set(U,{target:Bt.dot,linkType:"HARD",locations:w,aliases:[]})}}return{locatorMap:A,binSymlinks:p,locationTree:z1e(A,{skipPrefix:t.cwd}),nmMode:u,mtimeMs:a.mtimeMs}}var RC=async(t,e)=>{if(t.split(K.sep).indexOf(bi)<0)throw new Error(`Assertion failed: trying to remove dir that doesn't contain node_modules: ${t}`);try{let r;if(!e.innerLoop&&(r=await ae.lstatPromise(t),!r.isDirectory()&&!r.isSymbolicLink()||r.isSymbolicLink()&&!e.isWorkspaceDir)){await ae.unlinkPromise(t);return}let o=await ae.readdirPromise(t,{withFileTypes:!0});for(let n of o){let u=K.join(t,n.name);n.isDirectory()?(n.name!==bi||e&&e.innerLoop)&&await RC(u,{innerLoop:!0,contentsOnly:!1}):await ae.unlinkPromise(u)}let a=!e.innerLoop&&e.isWorkspaceDir&&r?.isSymbolicLink();!e.contentsOnly&&!a&&await ae.rmdirPromise(t)}catch(r){if(r.code!=="ENOENT"&&r.code!=="ENOTEMPTY")throw r}},G1e=4,eF=(t,{skipPrefix:e})=>{let r=K.contains(e,t);if(r===null)throw new Error(`Assertion failed: Writing attempt prevented to ${t} which is outside project root: ${e}`);let o=r.split(K.sep).filter(p=>p!==""),a=o.indexOf(bi),n=o.slice(0,a).join(K.sep),u=K.join(e,n),A=o.slice(a);return{locationRoot:u,segments:A}},z1e=(t,{skipPrefix:e})=>{let r=new Map;if(t===null)return r;let o=()=>({children:new Map,linkType:"HARD"});for(let[a,n]of t.entries()){if(n.linkType==="SOFT"&&K.contains(e,n.target)!==null){let A=qe.getFactoryWithDefault(r,n.target,o);A.locator=a,A.linkType=n.linkType}for(let u of n.locations){let{locationRoot:A,segments:p}=eF(u,{skipPrefix:e}),h=qe.getFactoryWithDefault(r,A,o);for(let E=0;E{if(process.platform==="win32"&&r==="junctions"){let o;try{o=await ae.lstatPromise(t)}catch{}if(!o||o.isDirectory()){await ae.symlinkPromise(t,e,"junction");return}}await ae.symlinkPromise(K.relative(K.dirname(e),t),e)};async function X1e(t,e,r){let o=K.join(t,`${zj.default.randomBytes(16).toString("hex")}.tmp`);try{await ae.writeFilePromise(o,r);try{await ae.linkPromise(o,e)}catch{}}finally{await ae.unlinkPromise(o)}}async function zwt({srcPath:t,dstPath:e,entry:r,globalHardlinksStore:o,baseFs:a,nmMode:n}){if(r.kind==="file"){if(n.value==="hardlinks-global"&&o&&r.digest){let A=K.join(o,r.digest.substring(0,2),`${r.digest.substring(2)}.dat`),p;try{let h=await ae.statPromise(A);if(h&&(!r.mtimeMs||h.mtimeMs>r.mtimeMs||h.mtimeMs{await ae.mkdirPromise(t,{recursive:!0});let A=async(E=Bt.dot)=>{let w=K.join(e,E),D=await r.readdirPromise(w,{withFileTypes:!0}),x=new Map;for(let C of D){let T=K.join(E,C.name),L,U=K.join(w,C.name);if(C.isFile()){if(L={kind:"file",mode:(await r.lstatPromise(U)).mode},a.value==="hardlinks-global"){let J=await xn.checksumFile(U,{baseFs:r,algorithm:"sha1"});L.digest=J}}else if(C.isDirectory())L={kind:"directory"};else if(C.isSymbolicLink())L={kind:"symlink",symlinkTo:await r.readlinkPromise(U)};else throw new Error(`Unsupported file type (file: ${U}, mode: 0o${await r.statSync(U).mode.toString(8).padStart(6,"0")})`);if(x.set(T,L),C.isDirectory()&&T!==bi){let J=await A(T);for(let[te,le]of J)x.set(te,le)}}return x},p;if(a.value==="hardlinks-global"&&o&&u){let E=K.join(o,u.substring(0,2),`${u.substring(2)}.json`);try{p=new Map(Object.entries(JSON.parse(await ae.readFilePromise(E,"utf8"))))}catch{p=await A()}}else p=await A();let h=!1;for(let[E,w]of p){let D=K.join(e,E),x=K.join(t,E);if(w.kind==="directory")await ae.mkdirPromise(x,{recursive:!0});else if(w.kind==="file"){let C=w.mtimeMs;await zwt({srcPath:D,dstPath:x,entry:w,nmMode:a,baseFs:r,globalHardlinksStore:o}),w.mtimeMs!==C&&(h=!0)}else w.kind==="symlink"&&await Zj(K.resolve(K.dirname(x),w.symlinkTo),x,n)}if(a.value==="hardlinks-global"&&o&&h&&u){let E=K.join(o,u.substring(0,2),`${u.substring(2)}.json`);await ae.removePromise(E),await X1e(o,E,Buffer.from(JSON.stringify(Object.fromEntries(p))))}};function Zwt(t,e,r,o){let a=new Map,n=new Map,u=new Map,A=!1,p=(h,E,w,D,x)=>{let C=!0,T=K.join(h,E),L=new Set;if(E===bi||E.startsWith("@")){let J;try{J=ae.statSync(T)}catch{}C=!!J,J?J.mtimeMs>r?(A=!0,L=new Set(ae.readdirSync(T))):L=new Set(w.children.get(E).children.keys()):A=!0;let te=e.get(h);if(te){let le=K.join(h,bi,$Q),ce;try{ce=ae.statSync(le)}catch{}if(!ce)A=!0;else if(ce.mtimeMs>r){A=!0;let ue=new Set(ae.readdirSync(le)),Ie=new Map;n.set(h,Ie);for(let[he,De]of te)ue.has(he)&&Ie.set(he,De)}else n.set(h,te)}}else C=x.has(E);let U=w.children.get(E);if(C){let{linkType:J,locator:te}=U,le={children:new Map,linkType:J,locator:te};if(D.children.set(E,le),te){let ce=qe.getSetWithDefault(u,te);ce.add(T),u.set(te,ce)}for(let ce of U.children.keys())p(T,ce,U,le,L)}else U.locator&&o.storedBuildState.delete(G.parseLocator(U.locator).locatorHash)};for(let[h,E]of t){let{linkType:w,locator:D}=E,x={children:new Map,linkType:w,locator:D};if(a.set(h,x),D){let C=qe.getSetWithDefault(u,E.locator);C.add(h),u.set(E.locator,C)}E.children.has(bi)&&p(h,bi,E,x,new Set)}return{locationTree:a,binSymlinks:n,locatorLocations:u,installChangedByUser:A}}function Z1e(t){let e=G.parseDescriptor(t);return G.isVirtualDescriptor(e)&&(e=G.devirtualizeDescriptor(e)),e.range.startsWith("link:")}async function $wt(t,e,r,{loadManifest:o}){let a=new Map;for(let[A,{locations:p}]of t){let h=Z1e(A)?null:await o(A,p[0]),E=new Map;if(h)for(let[w,D]of h.bin){let x=K.join(p[0],D);D!==""&&ae.existsSync(x)&&E.set(w,D)}a.set(A,E)}let n=new Map,u=(A,p,h)=>{let E=new Map,w=K.contains(r,A);if(h.locator&&w!==null){let D=a.get(h.locator);for(let[x,C]of D){let T=K.join(A,Ae.toPortablePath(C));E.set(x,T)}for(let[x,C]of h.children){let T=K.join(A,x),L=u(T,T,C);L.size>0&&n.set(A,new Map([...n.get(A)||new Map,...L]))}}else for(let[D,x]of h.children){let C=u(K.join(A,D),p,x);for(let[T,L]of C)E.set(T,L)}return E};for(let[A,p]of e){let h=u(A,A,p);h.size>0&&n.set(A,new Map([...n.get(A)||new Map,...h]))}return n}var W1e=(t,e)=>{if(!t||!e)return t===e;let r=G.parseLocator(t);G.isVirtualLocator(r)&&(r=G.devirtualizeLocator(r));let o=G.parseLocator(e);return G.isVirtualLocator(o)&&(o=G.devirtualizeLocator(o)),G.areLocatorsEqual(r,o)};function $j(t){return K.join(t.get("globalFolder"),"store")}async function e1t(t,e,{baseFs:r,project:o,report:a,loadManifest:n,realLocatorChecksums:u}){let A=K.join(o.cwd,bi),{locationTree:p,binSymlinks:h,locatorLocations:E,installChangedByUser:w}=Zwt(t.locationTree,t.binSymlinks,t.mtimeMs,o),D=z1e(e,{skipPrefix:o.cwd}),x=[],C=async({srcDir:De,dstDir:Ee,linkType:g,globalHardlinksStore:me,nmMode:Ce,windowsLinkType:fe,packageChecksum:ie})=>{let Z=(async()=>{try{g==="SOFT"?(await ae.mkdirPromise(K.dirname(Ee),{recursive:!0}),await Zj(K.resolve(De),Ee,fe)):await Xwt(Ee,De,{baseFs:r,globalHardlinksStore:me,nmMode:Ce,windowsLinkType:fe,packageChecksum:ie})}catch(Pe){throw Pe.message=`While persisting ${De} -> ${Ee} ${Pe.message}`,Pe}finally{le.tick()}})().then(()=>x.splice(x.indexOf(Z),1));x.push(Z),x.length>G1e&&await Promise.race(x)},T=async(De,Ee,g)=>{let me=(async()=>{let Ce=async(fe,ie,Z)=>{try{Z.innerLoop||await ae.mkdirPromise(ie,{recursive:!0});let Pe=await ae.readdirPromise(fe,{withFileTypes:!0});for(let Re of Pe){if(!Z.innerLoop&&Re.name===$Q)continue;let ht=K.join(fe,Re.name),q=K.join(ie,Re.name);Re.isDirectory()?(Re.name!==bi||Z&&Z.innerLoop)&&(await ae.mkdirPromise(q,{recursive:!0}),await Ce(ht,q,{...Z,innerLoop:!0})):Ie.value==="hardlinks-local"||Ie.value==="hardlinks-global"?await ae.linkPromise(ht,q):await ae.copyFilePromise(ht,q,K1e.default.constants.COPYFILE_FICLONE)}}catch(Pe){throw Z.innerLoop||(Pe.message=`While cloning ${fe} -> ${ie} ${Pe.message}`),Pe}finally{Z.innerLoop||le.tick()}};await Ce(De,Ee,g)})().then(()=>x.splice(x.indexOf(me),1));x.push(me),x.length>G1e&&await Promise.race(x)},L=async(De,Ee,g)=>{if(g)for(let[me,Ce]of Ee.children){let fe=g.children.get(me);await L(K.join(De,me),Ce,fe)}else{Ee.children.has(bi)&&await RC(K.join(De,bi),{contentsOnly:!1});let me=K.basename(De)===bi&&p.has(K.join(K.dirname(De)));await RC(De,{contentsOnly:De===A,isWorkspaceDir:me})}};for(let[De,Ee]of p){let g=D.get(De);for(let[me,Ce]of Ee.children){if(me===".")continue;let fe=g&&g.children.get(me),ie=K.join(De,me);await L(ie,Ce,fe)}}let U=async(De,Ee,g)=>{if(g){W1e(Ee.locator,g.locator)||await RC(De,{contentsOnly:Ee.linkType==="HARD"});for(let[me,Ce]of Ee.children){let fe=g.children.get(me);await U(K.join(De,me),Ce,fe)}}else{Ee.children.has(bi)&&await RC(K.join(De,bi),{contentsOnly:!0});let me=K.basename(De)===bi&&D.has(K.join(K.dirname(De)));await RC(De,{contentsOnly:Ee.linkType==="HARD",isWorkspaceDir:me})}};for(let[De,Ee]of D){let g=p.get(De);for(let[me,Ce]of Ee.children){if(me===".")continue;let fe=g&&g.children.get(me);await U(K.join(De,me),Ce,fe)}}let J=new Map,te=[];for(let[De,Ee]of E)for(let g of Ee){let{locationRoot:me,segments:Ce}=eF(g,{skipPrefix:o.cwd}),fe=D.get(me),ie=me;if(fe){for(let Z of Ce)if(ie=K.join(ie,Z),fe=fe.children.get(Z),!fe)break;if(fe){let Z=W1e(fe.locator,De),Pe=e.get(fe.locator),Re=Pe.target,ht=ie,q=Pe.linkType;if(Z)J.has(Re)||J.set(Re,ht);else if(Re!==ht){let nt=G.parseLocator(fe.locator);G.isVirtualLocator(nt)&&(nt=G.devirtualizeLocator(nt)),te.push({srcDir:Re,dstDir:ht,linkType:q,realLocatorHash:nt.locatorHash})}}}}for(let[De,{locations:Ee}]of e.entries())for(let g of Ee){let{locationRoot:me,segments:Ce}=eF(g,{skipPrefix:o.cwd}),fe=p.get(me),ie=D.get(me),Z=me,Pe=e.get(De),Re=G.parseLocator(De);G.isVirtualLocator(Re)&&(Re=G.devirtualizeLocator(Re));let ht=Re.locatorHash,q=Pe.target,nt=g;if(q===nt)continue;let Ne=Pe.linkType;for(let Te of Ce)ie=ie.children.get(Te);if(!fe)te.push({srcDir:q,dstDir:nt,linkType:Ne,realLocatorHash:ht});else for(let Te of Ce)if(Z=K.join(Z,Te),fe=fe.children.get(Te),!fe){te.push({srcDir:q,dstDir:nt,linkType:Ne,realLocatorHash:ht});break}}let le=Ws.progressViaCounter(te.length),ce=a.reportProgress(le),ue=o.configuration.get("nmMode"),Ie={value:ue},he=o.configuration.get("winLinkType");try{let De=Ie.value==="hardlinks-global"?`${$j(o.configuration)}/v1`:null;if(De&&!await ae.existsPromise(De)){await ae.mkdirpPromise(De);for(let g=0;g<256;g++)await ae.mkdirPromise(K.join(De,g.toString(16).padStart(2,"0")))}for(let g of te)(g.linkType==="SOFT"||!J.has(g.srcDir))&&(J.set(g.srcDir,g.dstDir),await C({...g,globalHardlinksStore:De,nmMode:Ie,windowsLinkType:he,packageChecksum:u.get(g.realLocatorHash)||null}));await Promise.all(x),x.length=0;for(let g of te){let me=J.get(g.srcDir);g.linkType!=="SOFT"&&g.dstDir!==me&&await T(me,g.dstDir,{nmMode:Ie})}await Promise.all(x),await ae.mkdirPromise(A,{recursive:!0});let Ee=await $wt(e,D,o.cwd,{loadManifest:n});await t1t(h,Ee,o.cwd,he),await Jwt(o,e,Ee,Ie,{installChangedByUser:w}),ue=="hardlinks-global"&&Ie.value=="hardlinks-local"&&a.reportWarningOnce(74,"'nmMode' has been downgraded to 'hardlinks-local' due to global cache and install folder being on different devices")}finally{ce.stop()}}async function t1t(t,e,r,o){for(let a of t.keys()){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);if(!e.has(a)){let n=K.join(a,bi,$Q);await ae.removePromise(n)}}for(let[a,n]of e){if(K.contains(r,a)===null)throw new Error(`Assertion failed. Excepted bin symlink location to be inside project dir, instead it was at ${a}`);let u=K.join(a,bi,$Q),A=t.get(a)||new Map;await ae.mkdirPromise(u,{recursive:!0});for(let p of A.keys())n.has(p)||(await ae.removePromise(K.join(u,p)),process.platform==="win32"&&await ae.removePromise(K.join(u,`${p}.cmd`)));for(let[p,h]of n){let E=A.get(p),w=K.join(u,p);E!==h&&(process.platform==="win32"?await(0,Y1e.default)(Ae.fromPortablePath(h),Ae.fromPortablePath(w),{createPwshFile:!1}):(await ae.removePromise(w),await Zj(h,w,o),K.contains(r,await ae.realpathPromise(h))!==null&&await ae.chmodPromise(h,493)))}}}Ke();Pt();sA();var Pv=class extends Yh{constructor(){super(...arguments);this.mode="loose"}makeInstaller(r){return new e5(r)}},e5=class extends pd{constructor(){super(...arguments);this.mode="loose"}async transformPnpSettings(r){let o=new qs({baseFs:new iA({maxOpenFiles:80,readOnlyArchives:!0})}),a=F1e(r,this.opts.project.cwd,o),{tree:n,errors:u}=pv(a,{pnpifyFs:!1,project:this.opts.project});if(!n){for(let{messageName:w,text:D}of u)this.opts.report.reportError(w,D);return}let A=new Map;r.fallbackPool=A;let p=(w,D)=>{let x=G.parseLocator(D.locator),C=G.stringifyIdent(x);C===w?A.set(w,x.reference):A.set(w,[C,x.reference])},h=K.join(this.opts.project.cwd,mr.nodeModules),E=n.get(h);if(!(typeof E>"u")){if("target"in E)throw new Error("Assertion failed: Expected the root junction point to be a directory");for(let w of E.dirList){let D=K.join(h,w),x=n.get(D);if(typeof x>"u")throw new Error("Assertion failed: Expected the child to have been registered");if("target"in x)p(w,x);else for(let C of x.dirList){let T=K.join(D,C),L=n.get(T);if(typeof L>"u")throw new Error("Assertion failed: Expected the subchild to have been registered");if("target"in L)p(`${w}/${C}`,L);else throw new Error("Assertion failed: Expected the leaf junction to be a package")}}}}};var r1t={hooks:{cleanGlobalArtifacts:async t=>{let e=$j(t);await ae.removePromise(e)}},configuration:{nmHoistingLimits:{description:"Prevents packages to be hoisted past specific levels",type:"STRING",values:["workspaces","dependencies","none"],default:"none"},nmMode:{description:"Defines in which measure Yarn must use hardlinks and symlinks when generated `node_modules` directories.",type:"STRING",values:["classic","hardlinks-local","hardlinks-global"],default:"classic"},nmSelfReferences:{description:"Defines whether the linker should generate self-referencing symlinks for workspaces.",type:"BOOLEAN",default:!0}},linkers:[Dv,Pv]},n1t=r1t;var $5={};Kt($5,{NpmHttpFetcher:()=>xv,NpmRemapResolver:()=>kv,NpmSemverFetcher:()=>rp,NpmSemverResolver:()=>Qv,NpmTagResolver:()=>Fv,default:()=>yvt,npmConfigUtils:()=>si,npmHttpUtils:()=>en,npmPublishUtils:()=>VC});Ke();var o2e=et(ni());var Zn="npm:";var en={};Kt(en,{AuthType:()=>n2e,customPackageError:()=>hd,del:()=>g1t,get:()=>gd,getIdentUrl:()=>tF,getPackageMetadata:()=>LC,handleInvalidAuthenticationError:()=>Vh,post:()=>p1t,put:()=>h1t});Ke();Ke();Pt();var i5=et(Q2()),t2e=et(c_()),r2e=et(ni());var si={};Kt(si,{RegistryType:()=>$1e,getAuditRegistry:()=>i1t,getAuthConfiguration:()=>n5,getDefaultRegistry:()=>Sv,getPublishRegistry:()=>s1t,getRegistryConfiguration:()=>e2e,getScopeConfiguration:()=>r5,getScopeRegistry:()=>TC,normalizeRegistry:()=>uc});var $1e=(o=>(o.AUDIT_REGISTRY="npmAuditRegistry",o.FETCH_REGISTRY="npmRegistryServer",o.PUBLISH_REGISTRY="npmPublishRegistry",o))($1e||{});function uc(t){return t.replace(/\/$/,"")}function i1t({configuration:t}){return Sv({configuration:t,type:"npmAuditRegistry"})}function s1t(t,{configuration:e}){return t.publishConfig?.registry?uc(t.publishConfig.registry):t.name?TC(t.name.scope,{configuration:e,type:"npmPublishRegistry"}):Sv({configuration:e,type:"npmPublishRegistry"})}function TC(t,{configuration:e,type:r="npmRegistryServer"}){let o=r5(t,{configuration:e});if(o===null)return Sv({configuration:e,type:r});let a=o.get(r);return a===null?Sv({configuration:e,type:r}):uc(a)}function Sv({configuration:t,type:e="npmRegistryServer"}){let r=t.get(e);return uc(r!==null?r:t.get("npmRegistryServer"))}function e2e(t,{configuration:e}){let r=e.get("npmRegistries"),o=uc(t),a=r.get(o);if(typeof a<"u")return a;let n=r.get(o.replace(/^[a-z]+:/,""));return typeof n<"u"?n:null}function r5(t,{configuration:e}){if(t===null)return null;let o=e.get("npmScopes").get(t);return o||null}function n5(t,{configuration:e,ident:r}){let o=r&&r5(r.scope,{configuration:e});return o?.get("npmAuthIdent")||o?.get("npmAuthToken")?o:e2e(t,{configuration:e})||e}var n2e=(a=>(a[a.NO_AUTH=0]="NO_AUTH",a[a.BEST_EFFORT=1]="BEST_EFFORT",a[a.CONFIGURATION=2]="CONFIGURATION",a[a.ALWAYS_AUTH=3]="ALWAYS_AUTH",a))(n2e||{});async function Vh(t,{attemptedAs:e,registry:r,headers:o,configuration:a}){if(nF(t))throw new Jt(41,"Invalid OTP token");if(t.originalError?.name==="HTTPError"&&t.originalError?.response.statusCode===401)throw new Jt(41,`Invalid authentication (${typeof e!="string"?`as ${await m1t(r,o,{configuration:a})}`:`attempted as ${e}`})`)}function hd(t,e){let r=t.response?.statusCode;return r?r===404?"Package not found":r>=500&&r<600?`The registry appears to be down (using a ${pe.applyHyperlink(e,"local cache","https://yarnpkg.com/advanced/lexicon#local-cache")} might have protected you against such outages)`:null:null}function tF(t){return t.scope?`/@${t.scope}%2f${t.name}`:`/${t.name}`}var i2e=new Map,o1t=new Map;async function a1t(t){return await qe.getFactoryWithDefault(i2e,t,async()=>{let e=null;try{e=await ae.readJsonPromise(t)}catch{}return e})}async function l1t(t,e,{configuration:r,cached:o,registry:a,headers:n,version:u,...A}){return await qe.getFactoryWithDefault(o1t,t,async()=>await gd(tF(e),{...A,customErrorMessage:hd,configuration:r,registry:a,ident:e,headers:{...n,"If-None-Match":o?.etag,"If-Modified-Since":o?.lastModified},wrapNetworkRequest:async p=>async()=>{let h=await p();if(h.statusCode===304){if(o===null)throw new Error("Assertion failed: cachedMetadata should not be null");return{...h,body:o.metadata}}let E=c1t(JSON.parse(h.body.toString())),w={metadata:E,etag:h.headers.etag,lastModified:h.headers["last-modified"]};return i2e.set(t,Promise.resolve(w)),Promise.resolve().then(async()=>{let D=`${t}-${process.pid}.tmp`;await ae.mkdirPromise(K.dirname(D),{recursive:!0}),await ae.writeJsonPromise(D,w,{compact:!0}),await ae.renamePromise(D,t)}).catch(()=>{}),{...h,body:E}}}))}async function LC(t,{cache:e,project:r,registry:o,headers:a,version:n,...u}){let{configuration:A}=r;o=bv(A,{ident:t,registry:o});let p=A1t(A,o),h=K.join(p,`${G.slugifyIdent(t)}.json`),E=null;if(!r.lockfileNeedsRefresh&&(E=await a1t(h),E)){if(typeof n<"u"&&typeof E.metadata.versions[n]<"u")return E.metadata;if(A.get("enableOfflineMode")){let w=structuredClone(E.metadata),D=new Set;if(e){for(let C of Object.keys(w.versions)){let T=G.makeLocator(t,`npm:${C}`),L=e.getLocatorMirrorPath(T);(!L||!ae.existsSync(L))&&(delete w.versions[C],D.add(C))}let x=w["dist-tags"].latest;if(D.has(x)){let C=Object.keys(E.metadata.versions).sort(r2e.default.compare),T=C.indexOf(x);for(;D.has(C[T])&&T>=0;)T-=1;T>=0?w["dist-tags"].latest=C[T]:delete w["dist-tags"].latest}}return w}}return await l1t(h,t,{...u,configuration:A,cached:E,registry:o,headers:a,version:n})}var s2e=["name","dist.tarball","bin","scripts","os","cpu","libc","dependencies","dependenciesMeta","optionalDependencies","peerDependencies","peerDependenciesMeta","deprecated"];function c1t(t){return{"dist-tags":t["dist-tags"],versions:Object.fromEntries(Object.entries(t.versions).map(([e,r])=>[e,(0,t2e.default)(r,s2e)]))}}var u1t=xn.makeHash(...s2e).slice(0,6);function A1t(t,e){let r=f1t(t),o=new URL(e);return K.join(r,u1t,o.hostname)}function f1t(t){return K.join(t.get("globalFolder"),"metadata/npm")}async function gd(t,{configuration:e,headers:r,ident:o,authType:a,registry:n,...u}){n=bv(e,{ident:o,registry:n}),o&&o.scope&&typeof a>"u"&&(a=1);let A=await rF(n,{authType:a,configuration:e,ident:o});A&&(r={...r,authorization:A});try{return await on.get(t.charAt(0)==="/"?`${n}${t}`:t,{configuration:e,headers:r,...u})}catch(p){throw await Vh(p,{registry:n,configuration:e,headers:r}),p}}async function p1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=bv(o,{ident:n,registry:A});let E=await rF(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...NC(p)});try{return await on.post(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!nF(w)||p)throw await Vh(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await s5(w,{configuration:o});let D={...a,...NC(p)};try{return await on.post(`${A}${t}`,e,{configuration:o,headers:D,...h})}catch(x){throw await Vh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function h1t(t,e,{attemptedAs:r,configuration:o,headers:a,ident:n,authType:u=3,registry:A,otp:p,...h}){A=bv(o,{ident:n,registry:A});let E=await rF(A,{authType:u,configuration:o,ident:n});E&&(a={...a,authorization:E}),p&&(a={...a,...NC(p)});try{return await on.put(A+t,e,{configuration:o,headers:a,...h})}catch(w){if(!nF(w))throw await Vh(w,{attemptedAs:r,registry:A,configuration:o,headers:a}),w;p=await s5(w,{configuration:o});let D={...a,...NC(p)};try{return await on.put(`${A}${t}`,e,{configuration:o,headers:D,...h})}catch(x){throw await Vh(x,{attemptedAs:r,registry:A,configuration:o,headers:a}),x}}}async function g1t(t,{attemptedAs:e,configuration:r,headers:o,ident:a,authType:n=3,registry:u,otp:A,...p}){u=bv(r,{ident:a,registry:u});let h=await rF(u,{authType:n,configuration:r,ident:a});h&&(o={...o,authorization:h}),A&&(o={...o,...NC(A)});try{return await on.del(u+t,{configuration:r,headers:o,...p})}catch(E){if(!nF(E)||A)throw await Vh(E,{attemptedAs:e,registry:u,configuration:r,headers:o}),E;A=await s5(E,{configuration:r});let w={...o,...NC(A)};try{return await on.del(`${u}${t}`,{configuration:r,headers:w,...p})}catch(D){throw await Vh(D,{attemptedAs:e,registry:u,configuration:r,headers:o}),D}}}function bv(t,{ident:e,registry:r}){if(typeof r>"u"&&e)return TC(e.scope,{configuration:t});if(typeof r!="string")throw new Error("Assertion failed: The registry should be a string");return uc(r)}async function rF(t,{authType:e=2,configuration:r,ident:o}){let a=n5(t,{configuration:r,ident:o}),n=d1t(a,e);if(!n)return null;let u=await r.reduceHook(A=>A.getNpmAuthenticationHeader,void 0,t,{configuration:r,ident:o});if(u)return u;if(a.get("npmAuthToken"))return`Bearer ${a.get("npmAuthToken")}`;if(a.get("npmAuthIdent")){let A=a.get("npmAuthIdent");return A.includes(":")?`Basic ${Buffer.from(A).toString("base64")}`:`Basic ${A}`}if(n&&e!==1)throw new Jt(33,"No authentication configured for request");return null}function d1t(t,e){switch(e){case 2:return t.get("npmAlwaysAuth");case 1:case 3:return!0;case 0:return!1;default:throw new Error("Unreachable")}}async function m1t(t,e,{configuration:r}){if(typeof e>"u"||typeof e.authorization>"u")return"an anonymous user";try{return(await on.get(new URL(`${t}/-/whoami`).href,{configuration:r,headers:e,jsonResponse:!0})).username??"an unknown user"}catch{return"an unknown user"}}async function s5(t,{configuration:e}){let r=t.originalError?.response.headers["npm-notice"];if(r&&(await Nt.start({configuration:e,stdout:process.stdout,includeFooter:!1},async a=>{if(a.reportInfo(0,r.replace(/(https?:\/\/\S+)/g,pe.pretty(e,"$1",pe.Type.URL))),!process.env.YARN_IS_TEST_ENV){let n=r.match(/open (https?:\/\/\S+)/i);if(n&&Xi.openUrl){let{openNow:u}=await(0,i5.prompt)({type:"confirm",name:"openNow",message:"Do you want to try to open this url now?",required:!0,initial:!0,onCancel:()=>process.exit(130)});u&&(await Xi.openUrl(n[1])||(a.reportSeparator(),a.reportWarning(0,"We failed to automatically open the url; you'll have to open it yourself in your browser of choice.")))}}}),process.stdout.write(` +`)),process.env.YARN_IS_TEST_ENV)return process.env.YARN_INJECT_NPM_2FA_TOKEN||"";let{otp:o}=await(0,i5.prompt)({type:"password",name:"otp",message:"One-time password:",required:!0,onCancel:()=>process.exit(130)});return process.stdout.write(` +`),o}function nF(t){if(t.originalError?.name!=="HTTPError")return!1;try{return(t.originalError?.response.headers["www-authenticate"].split(/,\s*/).map(r=>r.toLowerCase())).includes("otp")}catch{return!1}}function NC(t){return{"npm-otp":t}}var xv=class{supports(e,r){if(!e.reference.startsWith(Zn))return!1;let{selector:o,params:a}=G.parseRange(e.reference);return!(!o2e.default.valid(o)||a===null||typeof a.__archiveUrl!="string")}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote server`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let{params:o}=G.parseRange(e.reference);if(o===null||typeof o.__archiveUrl!="string")throw new Error("Assertion failed: The archiveUrl querystring parameter should have been available");let a=await gd(o.__archiveUrl,{customErrorMessage:hd,configuration:r.project.configuration,ident:e});return await $i.convertToZip(a,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}};Ke();var kv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Zn)||!G.tryParseDescriptor(e.range.slice(Zn.length),!0))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){let o=r.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Zn.length),!0));return r.resolver.getResolutionDependencies(o,r)}async getCandidates(e,r,o){let a=o.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Zn.length),!0));return await o.resolver.getCandidates(a,r,o)}async getSatisfying(e,r,o,a){let n=a.project.configuration.normalizeDependency(G.parseDescriptor(e.range.slice(Zn.length),!0));return a.resolver.getSatisfying(n,r,o,a)}resolve(e,r){throw new Error("Unreachable")}};Ke();Ke();var a2e=et(ni());var rp=class t{supports(e,r){if(!e.reference.startsWith(Zn))return!1;let o=new URL(e.reference);return!(!a2e.default.valid(o.pathname)||o.searchParams.has("__archiveUrl"))}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the remote registry`),loader:()=>this.fetchFromNetwork(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),checksum:u}}async fetchFromNetwork(e,r){let o;try{o=await gd(t.getLocatorUrl(e),{customErrorMessage:hd,configuration:r.project.configuration,ident:e})}catch{o=await gd(t.getLocatorUrl(e).replace(/%2f/g,"/"),{customErrorMessage:hd,configuration:r.project.configuration,ident:e})}return await $i.convertToZip(o,{configuration:r.project.configuration,prefixPath:G.getIdentVendorPath(e),stripComponents:1})}static isConventionalTarballUrl(e,r,{configuration:o}){let a=TC(e.scope,{configuration:o}),n=t.getLocatorUrl(e);return r=r.replace(/^https?:(\/\/(?:[^/]+\.)?npmjs.org(?:$|\/))/,"https:$1"),a=a.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r=r.replace(/^https:\/\/registry\.npmjs\.org($|\/)/,"https://registry.yarnpkg.com$1"),r===a+n||r===a+n.replace(/%2f/g,"/")}static getLocatorUrl(e){let r=Ur.clean(e.reference.slice(Zn.length));if(r===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");return`${tF(e)}/-/${e.name}-${r}.tgz`}};Ke();Ke();Ke();var o5=et(ni());var iF=G.makeIdent(null,"node-gyp"),y1t=/\b(node-gyp|prebuild-install)\b/,Qv=class{supportsDescriptor(e,r){return e.range.startsWith(Zn)?!!Ur.validRange(e.range.slice(Zn.length)):!1}supportsLocator(e,r){if(!e.reference.startsWith(Zn))return!1;let{selector:o}=G.parseRange(e.reference);return!!o5.default.valid(o)}shouldPersistResolution(e,r){return!0}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=Ur.validRange(e.range.slice(Zn.length));if(a===null)throw new Error(`Expected a valid range, got ${e.range.slice(Zn.length)}`);let n=await LC(e,{cache:o.fetchOptions?.cache,project:o.project,version:o5.default.valid(a.raw)?a.raw:void 0}),u=qe.mapAndFilter(Object.keys(n.versions),h=>{try{let E=new Ur.SemVer(h);if(a.test(E))return E}catch{}return qe.mapAndFilter.skip}),A=u.filter(h=>!n.versions[h.raw].deprecated),p=A.length>0?A:u;return p.sort((h,E)=>-h.compare(E)),p.map(h=>{let E=G.makeLocator(e,`${Zn}${h.raw}`),w=n.versions[h.raw].dist.tarball;return rp.isConventionalTarballUrl(E,w,{configuration:o.project.configuration})?E:G.bindLocator(E,{__archiveUrl:w})})}async getSatisfying(e,r,o,a){let n=Ur.validRange(e.range.slice(Zn.length));if(n===null)throw new Error(`Expected a valid range, got ${e.range.slice(Zn.length)}`);return{locators:qe.mapAndFilter(o,p=>{if(p.identHash!==e.identHash)return qe.mapAndFilter.skip;let h=G.tryParseRange(p.reference,{requireProtocol:Zn});if(!h)return qe.mapAndFilter.skip;let E=new Ur.SemVer(h.selector);return n.test(E)?{locator:p,version:E}:qe.mapAndFilter.skip}).sort((p,h)=>-p.version.compare(h.version)).map(({locator:p})=>p),sorted:!0}}async resolve(e,r){let{selector:o}=G.parseRange(e.reference),a=Ur.clean(o);if(a===null)throw new Jt(10,"The npm semver resolver got selected, but the version isn't semver");let n=await LC(e,{cache:r.fetchOptions?.cache,project:r.project,version:a});if(!Object.hasOwn(n,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(!Object.hasOwn(n.versions,a))throw new Jt(16,`Registry failed to return reference "${a}"`);let u=new _t;if(u.load(n.versions[a]),!u.dependencies.has(iF.identHash)&&!u.peerDependencies.has(iF.identHash)){for(let A of u.scripts.values())if(A.match(y1t)){u.dependencies.set(iF.identHash,G.makeDescriptor(iF,"latest"));break}}return{...e,version:a,languageName:"node",linkType:"HARD",conditions:u.getConditions(),dependencies:r.project.configuration.normalizeDependencyMap(u.dependencies),peerDependencies:u.peerDependencies,dependenciesMeta:u.dependenciesMeta,peerDependenciesMeta:u.peerDependenciesMeta,bin:u.bin}}};Ke();Ke();var l2e=et(ni());var Fv=class{supportsDescriptor(e,r){return!(!e.range.startsWith(Zn)||!xy.test(e.range.slice(Zn.length)))}supportsLocator(e,r){return!1}shouldPersistResolution(e,r){throw new Error("Unreachable")}bindDescriptor(e,r,o){return e}getResolutionDependencies(e,r){return{}}async getCandidates(e,r,o){let a=e.range.slice(Zn.length),n=await LC(e,{cache:o.fetchOptions?.cache,project:o.project});if(!Object.hasOwn(n,"dist-tags"))throw new Jt(15,'Registry returned invalid data - missing "dist-tags" field');let u=n["dist-tags"];if(!Object.hasOwn(u,a))throw new Jt(16,`Registry failed to return tag "${a}"`);let A=u[a],p=G.makeLocator(e,`${Zn}${A}`),h=n.versions[A].dist.tarball;return rp.isConventionalTarballUrl(p,h,{configuration:o.project.configuration})?[p]:[G.bindLocator(p,{__archiveUrl:h})]}async getSatisfying(e,r,o,a){let n=[];for(let u of o){if(u.identHash!==e.identHash)continue;let A=G.tryParseRange(u.reference,{requireProtocol:Zn});if(!(!A||!l2e.default.valid(A.selector))){if(A.params?.__archiveUrl){let p=G.makeRange({protocol:Zn,selector:A.selector,source:null,params:null}),[h]=await a.resolver.getCandidates(G.makeDescriptor(e,p),r,a);if(u.reference!==h.reference)continue}n.push(u)}}return{locators:n,sorted:!1}}async resolve(e,r){throw new Error("Unreachable")}};var VC={};Kt(VC,{getGitHead:()=>dvt,getPublishAccess:()=>XBe,getReadmeContent:()=>ZBe,makePublishBody:()=>gvt});Ke();Ke();Pt();var V5={};Kt(V5,{PackCommand:()=>KC,default:()=>XBt,packUtils:()=>BA});Ke();Ke();Ke();Pt();Gt();var BA={};Kt(BA,{genPackList:()=>SF,genPackStream:()=>K5,genPackageManifest:()=>UBe,hasPackScripts:()=>W5,prepareForPack:()=>Y5});Ke();Pt();var G5=et(Xo()),OBe=et(RBe()),MBe=ve("zlib"),_Bt=["/package.json","/readme","/readme.*","/license","/license.*","/licence","/licence.*","/changelog","/changelog.*"],HBt=["/package.tgz",".github",".git",".hg","node_modules",".npmignore",".gitignore",".#*",".DS_Store"];async function W5(t){return!!(hn.hasWorkspaceScript(t,"prepack")||hn.hasWorkspaceScript(t,"postpack"))}async function Y5(t,{report:e},r){await hn.maybeExecuteWorkspaceLifecycleScript(t,"prepack",{report:e});try{let o=K.join(t.cwd,_t.fileName);await ae.existsPromise(o)&&await t.manifest.loadFile(o,{baseFs:ae}),await r()}finally{await hn.maybeExecuteWorkspaceLifecycleScript(t,"postpack",{report:e})}}async function K5(t,e){typeof e>"u"&&(e=await SF(t));let r=new Set;for(let n of t.manifest.publishConfig?.executableFiles??new Set)r.add(K.normalize(n));for(let n of t.manifest.bin.values())r.add(K.normalize(n));let o=OBe.default.pack();process.nextTick(async()=>{for(let n of e){let u=K.normalize(n),A=K.resolve(t.cwd,u),p=K.join("package",u),h=await ae.lstatPromise(A),E={name:p,mtime:new Date(Pi.SAFE_TIME*1e3)},w=r.has(u)?493:420,D,x,C=new Promise((L,U)=>{D=L,x=U}),T=L=>{L?x(L):D()};if(h.isFile()){let L;u==="package.json"?L=Buffer.from(JSON.stringify(await UBe(t),null,2)):L=await ae.readFilePromise(A),o.entry({...E,mode:w,type:"file"},L,T)}else h.isSymbolicLink()?o.entry({...E,mode:w,type:"symlink",linkname:await ae.readlinkPromise(A)},T):T(new Error(`Unsupported file type ${h.mode} for ${Ae.fromPortablePath(u)}`));await C}o.finalize()});let a=(0,MBe.createGzip)();return o.pipe(a),a}async function UBe(t){let e=JSON.parse(JSON.stringify(t.manifest.raw));return await t.project.configuration.triggerHook(r=>r.beforeWorkspacePacking,t,e),e}async function SF(t){let e=t.project,r=e.configuration,o={accept:[],reject:[]};for(let w of HBt)o.reject.push(w);for(let w of _Bt)o.accept.push(w);o.reject.push(r.get("rcFilename"));let a=w=>{if(w===null||!w.startsWith(`${t.cwd}/`))return;let D=K.relative(t.cwd,w),x=K.resolve(Bt.root,D);o.reject.push(x)};a(K.resolve(e.cwd,mr.lockfile)),a(r.get("cacheFolder")),a(r.get("globalFolder")),a(r.get("installStatePath")),a(r.get("virtualFolder")),a(r.get("yarnPath")),await r.triggerHook(w=>w.populateYarnPaths,e,w=>{a(w)});for(let w of e.workspaces){let D=K.relative(t.cwd,w.cwd);D!==""&&!D.match(/^(\.\.)?\//)&&o.reject.push(`/${D}`)}let n={accept:[],reject:[]},u=t.manifest.publishConfig?.main??t.manifest.main,A=t.manifest.publishConfig?.module??t.manifest.module,p=t.manifest.publishConfig?.browser??t.manifest.browser,h=t.manifest.publishConfig?.bin??t.manifest.bin;u!=null&&n.accept.push(K.resolve(Bt.root,u)),A!=null&&n.accept.push(K.resolve(Bt.root,A)),typeof p=="string"&&n.accept.push(K.resolve(Bt.root,p));for(let w of h.values())n.accept.push(K.resolve(Bt.root,w));if(p instanceof Map)for(let[w,D]of p.entries())n.accept.push(K.resolve(Bt.root,w)),typeof D=="string"&&n.accept.push(K.resolve(Bt.root,D));let E=t.manifest.files!==null;if(E){n.reject.push("/*");for(let w of t.manifest.files)_Be(n.accept,w,{cwd:Bt.root})}return await qBt(t.cwd,{hasExplicitFileList:E,globalList:o,ignoreList:n})}async function qBt(t,{hasExplicitFileList:e,globalList:r,ignoreList:o}){let a=[],n=new Gu(t),u=[[Bt.root,[o]]];for(;u.length>0;){let[A,p]=u.pop(),h=await n.lstatPromise(A);if(!NBe(A,{globalList:r,ignoreLists:h.isDirectory()?null:p}))if(h.isDirectory()){let E=await n.readdirPromise(A),w=!1,D=!1;if(!e||A!==Bt.root)for(let T of E)w=w||T===".gitignore",D=D||T===".npmignore";let x=D?await TBe(n,A,".npmignore"):w?await TBe(n,A,".gitignore"):null,C=x!==null?[x].concat(p):p;NBe(A,{globalList:r,ignoreLists:p})&&(C=[...p,{accept:[],reject:["**/*"]}]);for(let T of E)u.push([K.resolve(A,T),C])}else(h.isFile()||h.isSymbolicLink())&&a.push(K.relative(Bt.root,A))}return a.sort()}async function TBe(t,e,r){let o={accept:[],reject:[]},a=await t.readFilePromise(K.join(e,r),"utf8");for(let n of a.split(/\n/g))_Be(o.reject,n,{cwd:e});return o}function jBt(t,{cwd:e}){let r=t[0]==="!";return r&&(t=t.slice(1)),t.match(/\.{0,1}\//)&&(t=K.resolve(e,t)),r&&(t=`!${t}`),t}function _Be(t,e,{cwd:r}){let o=e.trim();o===""||o[0]==="#"||t.push(jBt(o,{cwd:r}))}function NBe(t,{globalList:e,ignoreLists:r}){let o=PF(t,e.accept);if(o!==0)return o===2;let a=PF(t,e.reject);if(a!==0)return a===1;if(r!==null)for(let n of r){let u=PF(t,n.accept);if(u!==0)return u===2;let A=PF(t,n.reject);if(A!==0)return A===1}return!1}function PF(t,e){let r=e,o=[];for(let a=0;a{await Y5(a,{report:p},async()=>{p.reportJson({base:Ae.fromPortablePath(a.cwd)});let h=await SF(a);for(let E of h)p.reportInfo(null,Ae.fromPortablePath(E)),p.reportJson({location:Ae.fromPortablePath(E)});if(!this.dryRun){let E=await K5(a,h),w=ae.createWriteStream(u);E.pipe(w),await new Promise(D=>{w.on("finish",D)})}}),this.dryRun||(p.reportInfo(0,`Package archive generated in ${pe.pretty(r,u,pe.Type.PATH)}`),p.reportJson({output:Ae.fromPortablePath(u)}))})).exitCode()}};function GBt(t,{workspace:e}){let r=t.replace("%s",WBt(e)).replace("%v",YBt(e));return Ae.toPortablePath(r)}function WBt(t){return t.manifest.name!==null?G.slugifyIdent(t.manifest.name):"package"}function YBt(t){return t.manifest.version!==null?t.manifest.version:"unknown"}var KBt=["dependencies","devDependencies","peerDependencies"],VBt="workspace:",JBt=(t,e)=>{e.publishConfig&&(e.publishConfig.type&&(e.type=e.publishConfig.type),e.publishConfig.main&&(e.main=e.publishConfig.main),e.publishConfig.browser&&(e.browser=e.publishConfig.browser),e.publishConfig.module&&(e.module=e.publishConfig.module),e.publishConfig.exports&&(e.exports=e.publishConfig.exports),e.publishConfig.imports&&(e.imports=e.publishConfig.imports),e.publishConfig.bin&&(e.bin=e.publishConfig.bin));let r=t.project;for(let o of KBt)for(let a of t.manifest.getForScope(o).values()){let n=r.tryWorkspaceByDescriptor(a),u=G.parseRange(a.range);if(u.protocol===VBt)if(n===null){if(r.tryWorkspaceByIdent(a)===null)throw new Jt(21,`${G.prettyDescriptor(r.configuration,a)}: No local workspace found for this range`)}else{let A;G.areDescriptorsEqual(a,n.anchoredDescriptor)||u.selector==="*"?A=n.manifest.version??"0.0.0":u.selector==="~"||u.selector==="^"?A=`${u.selector}${n.manifest.version??"0.0.0"}`:A=u.selector;let p=o==="dependencies"?G.makeDescriptor(a,"unknown"):null,h=p!==null&&t.manifest.ensureDependencyMeta(p).optional?"optionalDependencies":o;e[h][G.stringifyIdent(a)]=A}}},zBt={hooks:{beforeWorkspacePacking:JBt},commands:[KC]},XBt=zBt;var JBe=ve("crypto"),zBe=et(VBe());async function gvt(t,e,{access:r,tag:o,registry:a,gitHead:n}){let u=t.manifest.name,A=t.manifest.version,p=G.stringifyIdent(u),h=(0,JBe.createHash)("sha1").update(e).digest("hex"),E=zBe.default.fromData(e).toString(),w=r??XBe(t,u),D=await ZBe(t),x=await BA.genPackageManifest(t),C=`${p}-${A}.tgz`,T=new URL(`${uc(a)}/${p}/-/${C}`);return{_id:p,_attachments:{[C]:{content_type:"application/octet-stream",data:e.toString("base64"),length:e.length}},name:p,access:w,"dist-tags":{[o]:A},versions:{[A]:{...x,_id:`${p}@${A}`,name:p,version:A,gitHead:n,dist:{shasum:h,integrity:E,tarball:T.toString()}}},readme:D}}async function dvt(t){try{let{stdout:e}=await Hr.execvp("git",["rev-parse","--revs-only","HEAD"],{cwd:t});return e.trim()===""?void 0:e.trim()}catch{return}}function XBe(t,e){let r=t.project.configuration;return t.manifest.publishConfig&&typeof t.manifest.publishConfig.access=="string"?t.manifest.publishConfig.access:r.get("npmPublishAccess")!==null?r.get("npmPublishAccess"):e.scope?"restricted":"public"}async function ZBe(t){let e=Ae.toPortablePath(`${t.cwd}/README.md`),r=t.manifest.name,a=`# ${G.stringifyIdent(r)} +`;try{a=await ae.readFilePromise(e,"utf8")}catch(n){if(n.code==="ENOENT")return a;throw n}return a}var Z5={npmAlwaysAuth:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"BOOLEAN",default:!1},npmAuthIdent:{description:"Authentication identity for the npm registry (_auth in npm and yarn v1)",type:"SECRET",default:null},npmAuthToken:{description:"Authentication token for the npm registry (_authToken in npm and yarn v1)",type:"SECRET",default:null}},$Be={npmAuditRegistry:{description:"Registry to query for audit reports",type:"STRING",default:null},npmPublishRegistry:{description:"Registry to push packages to",type:"STRING",default:null},npmRegistryServer:{description:"URL of the selected npm registry (note: npm enterprise isn't supported)",type:"STRING",default:"https://registry.yarnpkg.com"}},mvt={configuration:{...Z5,...$Be,npmScopes:{description:"Settings per package scope",type:"MAP",valueDefinition:{description:"",type:"SHAPE",properties:{...Z5,...$Be}}},npmRegistries:{description:"Settings per registry",type:"MAP",normalizeKeys:uc,valueDefinition:{description:"",type:"SHAPE",properties:{...Z5}}}},fetchers:[xv,rp],resolvers:[kv,Qv,Fv]},yvt=mvt;var lG={};Kt(lG,{NpmAuditCommand:()=>zC,NpmInfoCommand:()=>XC,NpmLoginCommand:()=>ZC,NpmLogoutCommand:()=>eI,NpmPublishCommand:()=>tI,NpmTagAddCommand:()=>nI,NpmTagListCommand:()=>rI,NpmTagRemoveCommand:()=>iI,NpmWhoamiCommand:()=>sI,default:()=>Dvt,npmAuditTypes:()=>Xv,npmAuditUtils:()=>bF});Ke();Ke();Gt();var iG=et(Xo());il();var Xv={};Kt(Xv,{Environment:()=>Jv,Severity:()=>zv});var Jv=(o=>(o.All="all",o.Production="production",o.Development="development",o))(Jv||{}),zv=(n=>(n.Info="info",n.Low="low",n.Moderate="moderate",n.High="high",n.Critical="critical",n))(zv||{});var bF={};Kt(bF,{allSeverities:()=>JC,getPackages:()=>nG,getReportTree:()=>tG,getSeverityInclusions:()=>eG,getTopLevelDependencies:()=>rG});Ke();var eve=et(ni());var JC=["info","low","moderate","high","critical"];function eG(t){if(typeof t>"u")return new Set(JC);let e=JC.indexOf(t),r=JC.slice(e);return new Set(r)}function tG(t){let e={},r={children:e};for(let[o,a]of qe.sortMap(Object.entries(t),n=>n[0]))for(let n of qe.sortMap(a,u=>`${u.id}`))e[`${o}/${n.id}`]={value:pe.tuple(pe.Type.IDENT,G.parseIdent(o)),children:{ID:typeof n.id<"u"&&{label:"ID",value:pe.tuple(pe.Type.ID,n.id)},Issue:{label:"Issue",value:pe.tuple(pe.Type.NO_HINT,n.title)},URL:typeof n.url<"u"&&{label:"URL",value:pe.tuple(pe.Type.URL,n.url)},Severity:{label:"Severity",value:pe.tuple(pe.Type.NO_HINT,n.severity)},"Vulnerable Versions":{label:"Vulnerable Versions",value:pe.tuple(pe.Type.RANGE,n.vulnerable_versions)},"Tree Versions":{label:"Tree Versions",children:[...n.versions].sort(eve.default.compare).map(u=>({value:pe.tuple(pe.Type.REFERENCE,u)}))},Dependents:{label:"Dependents",children:qe.sortMap(n.dependents,u=>G.stringifyLocator(u)).map(u=>({value:pe.tuple(pe.Type.LOCATOR,u)}))}}};return r}function rG(t,e,{all:r,environment:o}){let a=[],n=r?t.workspaces:[e],u=["all","production"].includes(o),A=["all","development"].includes(o);for(let p of n)for(let h of p.anchoredPackage.dependencies.values())(p.manifest.devDependencies.has(h.identHash)?!A:!u)||a.push({workspace:p,dependency:h});return a}function nG(t,e,{recursive:r}){let o=new Map,a=new Set,n=[],u=(A,p)=>{let h=t.storedResolutions.get(p.descriptorHash);if(typeof h>"u")throw new Error("Assertion failed: The resolution should have been registered");if(!a.has(h))a.add(h);else return;let E=t.storedPackages.get(h);if(typeof E>"u")throw new Error("Assertion failed: The package should have been registered");if(G.ensureDevirtualizedLocator(E).reference.startsWith("npm:")&&E.version!==null){let D=G.stringifyIdent(E),x=qe.getMapWithDefault(o,D);qe.getArrayWithDefault(x,E.version).push(A)}if(r)for(let D of E.dependencies.values())n.push([E,D])};for(let{workspace:A,dependency:p}of e)n.push([A.anchoredLocator,p]);for(;n.length>0;){let[A,p]=n.shift();u(A,p)}return o}var zC=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("-A,--all",!1,{description:"Audit dependencies from all workspaces"});this.recursive=de.Boolean("-R,--recursive",!1,{description:"Audit transitive dependencies as well"});this.environment=de.String("--environment","all",{description:"Which environments to cover",validator:js(Jv)});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.noDeprecations=de.Boolean("--no-deprecations",!1,{description:"Don't warn about deprecated packages"});this.severity=de.String("--severity","info",{description:"Minimal severity requested for packages to be displayed",validator:js(zv)});this.excludes=de.Array("--exclude",[],{description:"Array of glob patterns of packages to exclude from audit"});this.ignores=de.Array("--ignore",[],{description:"Array of glob patterns of advisory ID's to ignore in the audit report"})}static{this.paths=[["npm","audit"]]}static{this.usage=ot.Usage({description:"perform a vulnerability audit against the installed packages",details:` + This command checks for known security reports on the packages you use. The reports are by default extracted from the npm registry, and may or may not be relevant to your actual program (not all vulnerabilities affect all code paths). + + For consistency with our other commands the default is to only check the direct dependencies for the active workspace. To extend this search to all workspaces, use \`-A,--all\`. To extend this search to both direct and transitive dependencies, use \`-R,--recursive\`. + + Applying the \`--severity\` flag will limit the audit table to vulnerabilities of the corresponding severity and above. Valid values are ${JC.map(r=>`\`${r}\``).join(", ")}. + + If the \`--json\` flag is set, Yarn will print the output exactly as received from the registry. Regardless of this flag, the process will exit with a non-zero exit code if a report is found for the selected packages. + + If certain packages produce false positives for a particular environment, the \`--exclude\` flag can be used to exclude any number of packages from the audit. This can also be set in the configuration file with the \`npmAuditExcludePackages\` option. + + If particular advisories are needed to be ignored, the \`--ignore\` flag can be used with Advisory ID's to ignore any number of advisories in the audit report. This can also be set in the configuration file with the \`npmAuditIgnoreAdvisories\` option. + + To understand the dependency tree requiring vulnerable packages, check the raw report with the \`--json\` flag or use \`yarn why package\` to get more information as to who depends on them. + `,examples:[["Checks for known security issues with the installed packages. The output is a list of known issues.","yarn npm audit"],["Audit dependencies in all workspaces","yarn npm audit --all"],["Limit auditing to `dependencies` (excludes `devDependencies`)","yarn npm audit --environment production"],["Show audit report as valid JSON","yarn npm audit --json"],["Audit all direct and transitive dependencies","yarn npm audit --recursive"],["Output moderate (or more severe) vulnerabilities","yarn npm audit --severity moderate"],["Exclude certain packages","yarn npm audit --exclude package1 --exclude package2"],["Ignore specific advisories","yarn npm audit --ignore 1234567 --ignore 7654321"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=rG(o,a,{all:this.all,environment:this.environment}),u=nG(o,n,{recursive:this.recursive}),A=Array.from(new Set([...r.get("npmAuditExcludePackages"),...this.excludes])),p=Object.create(null);for(let[L,U]of u)A.some(J=>iG.default.isMatch(L,J))||(p[L]=[...U.keys()]);let h=si.getAuditRegistry({configuration:r}),E,w=await pA.start({configuration:r,stdout:this.context.stdout},async()=>{let L=en.post("/-/npm/v1/security/advisories/bulk",p,{authType:en.AuthType.BEST_EFFORT,configuration:r,jsonResponse:!0,registry:h}),U=this.noDeprecations?[]:await Promise.all(Array.from(Object.entries(p),async([te,le])=>{let ce=await en.getPackageMetadata(G.parseIdent(te),{project:o});return qe.mapAndFilter(le,ue=>{let{deprecated:Ie}=ce.versions[ue];return Ie?[te,ue,Ie]:qe.mapAndFilter.skip})})),J=await L;for(let[te,le,ce]of U.flat(1))Object.hasOwn(J,te)&&J[te].some(ue=>Ur.satisfiesWithPrereleases(le,ue.vulnerable_versions))||(J[te]??=[],J[te].push({id:`${te} (deprecation)`,title:ce.trim()||"This package has been deprecated.",severity:"moderate",vulnerable_versions:le}));E=J});if(w.hasErrors())return w.exitCode();let D=eG(this.severity),x=Array.from(new Set([...r.get("npmAuditIgnoreAdvisories"),...this.ignores])),C=Object.create(null);for(let[L,U]of Object.entries(E)){let J=U.filter(te=>!iG.default.isMatch(`${te.id}`,x)&&D.has(te.severity));J.length>0&&(C[L]=J.map(te=>{let le=u.get(L);if(typeof le>"u")throw new Error("Assertion failed: Expected the registry to only return packages that were requested");let ce=[...le.keys()].filter(Ie=>Ur.satisfiesWithPrereleases(Ie,te.vulnerable_versions)),ue=new Map;for(let Ie of ce)for(let he of le.get(Ie))ue.set(he.locatorHash,he);return{...te,versions:ce,dependents:[...ue.values()]}}))}let T=Object.keys(C).length>0;return T?(As.emitTree(tG(C),{configuration:r,json:this.json,stdout:this.context.stdout,separators:2}),1):(await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async L=>{L.reportInfo(1,"No audit suggestions")}),T?1:0)}};Ke();Ke();Pt();Gt();var sG=et(ni()),oG=ve("util"),XC=class extends ut{constructor(){super(...arguments);this.fields=de.String("-f,--fields",{description:"A comma-separated list of manifest fields that should be displayed"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.packages=de.Rest()}static{this.paths=[["npm","info"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"show information about a package",details:"\n This command fetches information about a package from the npm registry and prints it in a tree format.\n\n The package does not have to be installed locally, but needs to have been published (in particular, local changes will be ignored even for workspaces).\n\n Append `@` to the package argument to provide information specific to the latest version that satisfies the range or to the corresponding tagged version. If the range is invalid or if there is no version satisfying the range, the command will print a warning and fall back to the latest version.\n\n If the `-f,--fields` option is set, it's a comma-separated list of fields which will be used to only display part of the package information.\n\n By default, this command won't return the `dist`, `readme`, and `users` fields, since they are often very long. To explicitly request those fields, explicitly list them with the `--fields` flag or request the output in JSON mode.\n ",examples:[["Show all available information about react (except the `dist`, `readme`, and `users` fields)","yarn npm info react"],["Show all available information about react as valid JSON (including the `dist`, `readme`, and `users` fields)","yarn npm info react --json"],["Show all available information about react@16.12.0","yarn npm info react@16.12.0"],["Show all available information about react@next","yarn npm info react@next"],["Show the description of react","yarn npm info react --fields description"],["Show all available versions of react","yarn npm info react --fields versions"],["Show the readme of react","yarn npm info react --fields readme"],["Show a few fields of react","yarn npm info react --fields homepage,repository"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),a=typeof this.fields<"u"?new Set(["name",...this.fields.split(/\s*,\s*/)]):null,n=[],u=!1,A=await Nt.start({configuration:r,includeFooter:!1,json:this.json,stdout:this.context.stdout},async p=>{for(let h of this.packages){let E;if(h==="."){let le=o.topLevelWorkspace;if(!le.manifest.name)throw new it(`Missing ${pe.pretty(r,"name",pe.Type.CODE)} field in ${Ae.fromPortablePath(K.join(le.cwd,mr.manifest))}`);E=G.makeDescriptor(le.manifest.name,"unknown")}else E=G.parseDescriptor(h);let w=en.getIdentUrl(E),D=aG(await en.get(w,{configuration:r,ident:E,jsonResponse:!0,customErrorMessage:en.customPackageError})),x=Object.keys(D.versions).sort(sG.default.compareLoose),T=D["dist-tags"].latest||x[x.length-1],L=Ur.validRange(E.range);if(L){let le=sG.default.maxSatisfying(x,L);le!==null?T=le:(p.reportWarning(0,`Unmet range ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0)}else Object.hasOwn(D["dist-tags"],E.range)?T=D["dist-tags"][E.range]:E.range!=="unknown"&&(p.reportWarning(0,`Unknown tag ${G.prettyRange(r,E.range)}; falling back to the latest version`),u=!0);let U=D.versions[T],J={...D,...U,version:T,versions:x},te;if(a!==null){te={};for(let le of a){let ce=J[le];if(typeof ce<"u")te[le]=ce;else{p.reportWarning(1,`The ${pe.pretty(r,le,pe.Type.CODE)} field doesn't exist inside ${G.prettyIdent(r,E)}'s information`),u=!0;continue}}}else this.json||(delete J.dist,delete J.readme,delete J.users),te=J;p.reportJson(te),this.json||n.push(te)}});oG.inspect.styles.name="cyan";for(let p of n)(p!==n[0]||u)&&this.context.stdout.write(` +`),this.context.stdout.write(`${(0,oG.inspect)(p,{depth:1/0,colors:!0,compact:!1})} +`);return A.exitCode()}};function aG(t){if(Array.isArray(t)){let e=[];for(let r of t)r=aG(r),r&&e.push(r);return e}else if(typeof t=="object"&&t!==null){let e={};for(let r of Object.keys(t)){if(r.startsWith("_"))continue;let o=aG(t[r]);o&&(e[r]=o)}return e}else return t||null}Ke();Ke();Gt();var tve=et(Q2()),ZC=class extends ut{constructor(){super(...arguments);this.scope=de.String("-s,--scope",{description:"Login to the registry configured for a given scope"});this.publish=de.Boolean("--publish",!1,{description:"Login to the publish registry"});this.alwaysAuth=de.Boolean("--always-auth",{description:"Set the npmAlwaysAuth configuration"})}static{this.paths=[["npm","login"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"store new login info to access the npm registry",details:"\n This command will ask you for your username, password, and 2FA One-Time-Password (when it applies). It will then modify your local configuration (in your home folder, never in the project itself) to reference the new tokens thus generated.\n\n Adding the `-s,--scope` flag will cause the authentication to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the authentication to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n ",examples:[["Login to the default registry","yarn npm login"],["Login to the registry linked to the @my-scope registry","yarn npm login --scope my-scope"],["Login to the publish registry for the current package","yarn npm login --publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=await xF({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope});return(await Nt.start({configuration:r,stdout:this.context.stdout,includeFooter:!1},async n=>{let u=await Ivt({configuration:r,registry:o,report:n,stdin:this.context.stdin,stdout:this.context.stdout}),A=await Evt(o,u,r);return await Cvt(o,A,{alwaysAuth:this.alwaysAuth,scope:this.scope}),n.reportInfo(0,"Successfully logged in")})).exitCode()}};async function xF({scope:t,publish:e,configuration:r,cwd:o}){return t&&e?si.getScopeRegistry(t,{configuration:r,type:si.RegistryType.PUBLISH_REGISTRY}):t?si.getScopeRegistry(t,{configuration:r}):e?si.getPublishRegistry((await aE(r,o)).manifest,{configuration:r}):si.getDefaultRegistry({configuration:r})}async function Evt(t,e,r){let o=`/-/user/org.couchdb.user:${encodeURIComponent(e.name)}`,a={_id:`org.couchdb.user:${e.name}`,name:e.name,password:e.password,type:"user",roles:[],date:new Date().toISOString()},n={attemptedAs:e.name,configuration:r,registry:t,jsonResponse:!0,authType:en.AuthType.NO_AUTH};try{return(await en.put(o,a,n)).token}catch(E){if(!(E.originalError?.name==="HTTPError"&&E.originalError?.response.statusCode===409))throw E}let u={...n,authType:en.AuthType.NO_AUTH,headers:{authorization:`Basic ${Buffer.from(`${e.name}:${e.password}`).toString("base64")}`}},A=await en.get(o,u);for(let[E,w]of Object.entries(A))(!a[E]||E==="roles")&&(a[E]=w);let p=`${o}/-rev/${a._rev}`;return(await en.put(p,a,u)).token}async function Cvt(t,e,{alwaysAuth:r,scope:o}){let a=u=>A=>{let p=qe.isIndexableObject(A)?A:{},h=p[u],E=qe.isIndexableObject(h)?h:{};return{...p,[u]:{...E,...r!==void 0?{npmAlwaysAuth:r}:{},npmAuthToken:e}}},n=o?{npmScopes:a(o)}:{npmRegistries:a(t)};return await ze.updateHomeConfiguration(n)}async function Ivt({configuration:t,registry:e,report:r,stdin:o,stdout:a}){r.reportInfo(0,`Logging in to ${pe.pretty(t,e,pe.Type.URL)}`);let n=!1;if(e.match(/^https:\/\/npm\.pkg\.github\.com(\/|$)/)&&(r.reportInfo(0,"You seem to be using the GitHub Package Registry. Tokens must be generated with the 'repo', 'write:packages', and 'read:packages' permissions."),n=!0),r.reportSeparator(),t.env.YARN_IS_TEST_ENV)return{name:t.env.YARN_INJECT_NPM_USER||"",password:t.env.YARN_INJECT_NPM_PASSWORD||""};let u=await(0,tve.prompt)([{type:"input",name:"name",message:"Username:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a},{type:"password",name:"password",message:n?"Token:":"Password:",required:!0,onCancel:()=>process.exit(130),stdin:o,stdout:a}]);return r.reportSeparator(),u}Ke();Ke();Gt();var $C=new Set(["npmAuthIdent","npmAuthToken"]),eI=class extends ut{constructor(){super(...arguments);this.scope=de.String("-s,--scope",{description:"Logout of the registry configured for a given scope"});this.publish=de.Boolean("--publish",!1,{description:"Logout of the publish registry"});this.all=de.Boolean("-A,--all",!1,{description:"Logout of all registries"})}static{this.paths=[["npm","logout"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"logout of the npm registry",details:"\n This command will log you out by modifying your local configuration (in your home folder, never in the project itself) to delete all credentials linked to a registry.\n\n Adding the `-s,--scope` flag will cause the deletion to be done against whatever registry is configured for the associated scope (see also `npmScopes`).\n\n Adding the `--publish` flag will cause the deletion to be done against the registry used when publishing the package (see also `publishConfig.registry` and `npmPublishRegistry`).\n\n Adding the `-A,--all` flag will cause the deletion to be done against all registries and scopes.\n ",examples:[["Logout of the default registry","yarn npm logout"],["Logout of the @my-scope scope","yarn npm logout --scope my-scope"],["Logout of the publish registry for the current package","yarn npm logout --publish"],["Logout of all registries","yarn npm logout --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o=async()=>{let n=await xF({configuration:r,cwd:this.context.cwd,publish:this.publish,scope:this.scope}),u=await ze.find(this.context.cwd,this.context.plugins),A=G.makeIdent(this.scope??null,"pkg");return!si.getAuthConfiguration(n,{configuration:u,ident:A}).get("npmAuthToken")};return(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{if(this.all&&(await Bvt(),n.reportInfo(0,"Successfully logged out from everything")),this.scope){await rve("npmScopes",this.scope),await o()?n.reportInfo(0,`Successfully logged out from ${this.scope}`):n.reportWarning(0,"Scope authentication settings removed, but some other ones settings still apply to it");return}let u=await xF({configuration:r,cwd:this.context.cwd,publish:this.publish});await rve("npmRegistries",u),await o()?n.reportInfo(0,`Successfully logged out from ${u}`):n.reportWarning(0,"Registry authentication settings removed, but some other ones settings still apply to it")})).exitCode()}};function wvt(t,e){let r=t[e];if(!qe.isIndexableObject(r))return!1;let o=new Set(Object.keys(r));if([...$C].every(n=>!o.has(n)))return!1;for(let n of $C)o.delete(n);if(o.size===0)return t[e]=void 0,!0;let a={...r};for(let n of $C)delete a[n];return t[e]=a,!0}async function Bvt(){let t=e=>{let r=!1,o=qe.isIndexableObject(e)?{...e}:{};o.npmAuthToken&&(delete o.npmAuthToken,r=!0);for(let a of Object.keys(o))wvt(o,a)&&(r=!0);if(Object.keys(o).length!==0)return r?o:e};return await ze.updateHomeConfiguration({npmRegistries:t,npmScopes:t})}async function rve(t,e){return await ze.updateHomeConfiguration({[t]:r=>{let o=qe.isIndexableObject(r)?r:{};if(!Object.hasOwn(o,e))return r;let a=o[e],n=qe.isIndexableObject(a)?a:{},u=new Set(Object.keys(n));if([...$C].every(p=>!u.has(p)))return r;for(let p of $C)u.delete(p);if(u.size===0)return Object.keys(o).length===1?void 0:{...o,[e]:void 0};let A={};for(let p of $C)A[p]=void 0;return{...o,[e]:{...n,...A}}}})}Ke();Gt();var tI=class extends ut{constructor(){super(...arguments);this.access=de.String("--access",{description:"The access for the published package (public or restricted)"});this.tag=de.String("--tag","latest",{description:"The tag on the registry that the package should be attached to"});this.tolerateRepublish=de.Boolean("--tolerate-republish",!1,{description:"Warn and exit when republishing an already existing version of a package"});this.otp=de.String("--otp",{description:"The OTP token to use with the command"})}static{this.paths=[["npm","publish"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"publish the active workspace to the npm registry",details:'\n This command will pack the active workspace into a fresh archive and upload it to the npm registry.\n\n The package will by default be attached to the `latest` tag on the registry, but this behavior can be overridden by using the `--tag` option.\n\n Note that for legacy reasons scoped packages are by default published with an access set to `restricted` (aka "private packages"). This requires you to register for a paid npm plan. In case you simply wish to publish a public scoped package to the registry (for free), just add the `--access public` flag. This behavior can be enabled by default through the `npmPublishAccess` settings.\n ',examples:[["Publish the active workspace","yarn npm publish"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);if(a.manifest.private)throw new it("Private workspaces cannot be published");if(a.manifest.name===null||a.manifest.version===null)throw new it("Workspaces must have valid names and versions to be published on an external registry");await o.restoreInstallState();let n=a.manifest.name,u=a.manifest.version,A=si.getPublishRegistry(a.manifest,{configuration:r});return(await Nt.start({configuration:r,stdout:this.context.stdout},async h=>{if(this.tolerateRepublish)try{let E=await en.get(en.getIdentUrl(n),{configuration:r,registry:A,ident:n,jsonResponse:!0});if(!Object.hasOwn(E,"versions"))throw new Jt(15,'Registry returned invalid data for - missing "versions" field');if(Object.hasOwn(E.versions,u)){h.reportWarning(0,`Registry already knows about version ${u}; skipping.`);return}}catch(E){if(E.originalError?.response?.statusCode!==404)throw E}await hn.maybeExecuteWorkspaceLifecycleScript(a,"prepublish",{report:h}),await BA.prepareForPack(a,{report:h},async()=>{let E=await BA.genPackList(a);for(let T of E)h.reportInfo(null,T);let w=await BA.genPackStream(a,E),D=await qe.bufferStream(w),x=await VC.getGitHead(a.cwd),C=await VC.makePublishBody(a,D,{access:this.access,tag:this.tag,registry:A,gitHead:x});await en.put(en.getIdentUrl(n),C,{configuration:r,registry:A,ident:n,otp:this.otp,jsonResponse:!0})}),h.reportInfo(0,"Package archive published")})).exitCode()}};Ke();Gt();var nve=et(ni());Ke();Pt();Gt();var rI=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=de.String({required:!1})}static{this.paths=[["npm","tag","list"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"list all dist-tags of a package",details:` + This command will list all tags of a package from the npm registry. + + If the package is not specified, Yarn will default to the current workspace. + `,examples:[["List all tags of package `my-pkg`","yarn npm tag list my-pkg"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n;if(typeof this.package<"u")n=G.parseIdent(this.package);else{if(!a)throw new or(o.cwd,this.context.cwd);if(!a.manifest.name)throw new it(`Missing 'name' field in ${Ae.fromPortablePath(K.join(a.cwd,mr.manifest))}`);n=a.manifest.name}let u=await Zv(n,r),p={children:qe.sortMap(Object.entries(u),([h])=>h).map(([h,E])=>({value:pe.tuple(pe.Type.RESOLUTION,{descriptor:G.makeDescriptor(n,h),locator:G.makeLocator(n,E)})}))};return As.emitTree(p,{configuration:r,json:this.json,stdout:this.context.stdout})}};async function Zv(t,e){let r=`/-/package${en.getIdentUrl(t)}/dist-tags`;return en.get(r,{configuration:e,ident:t,jsonResponse:!0,customErrorMessage:en.customPackageError})}var nI=class extends ut{constructor(){super(...arguments);this.package=de.String();this.tag=de.String()}static{this.paths=[["npm","tag","add"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"add a tag for a specific version of a package",details:` + This command will add a tag to the npm registry for a specific version of a package. If the tag already exists, it will be overwritten. + `,examples:[["Add a `beta` tag for version `2.3.4-beta.4` of package `my-pkg`","yarn npm tag add my-pkg@2.3.4-beta.4 beta"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=G.parseDescriptor(this.package,!0),u=n.range;if(!nve.default.valid(u))throw new it(`The range ${pe.pretty(r,n.range,pe.Type.RANGE)} must be a valid semver version`);let A=si.getPublishRegistry(a.manifest,{configuration:r}),p=pe.pretty(r,n,pe.Type.IDENT),h=pe.pretty(r,u,pe.Type.RANGE),E=pe.pretty(r,this.tag,pe.Type.CODE);return(await Nt.start({configuration:r,stdout:this.context.stdout},async D=>{let x=await Zv(n,r);Object.hasOwn(x,this.tag)&&x[this.tag]===u&&D.reportWarning(0,`Tag ${E} is already set to version ${h}`);let C=`/-/package${en.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await en.put(C,u,{configuration:r,registry:A,ident:n,jsonRequest:!0,jsonResponse:!0}),D.reportInfo(0,`Tag ${E} added to version ${h} of package ${p}`)})).exitCode()}};Ke();Gt();var iI=class extends ut{constructor(){super(...arguments);this.package=de.String();this.tag=de.String()}static{this.paths=[["npm","tag","remove"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"remove a tag from a package",details:` + This command will remove a tag from a package from the npm registry. + `,examples:[["Remove the `beta` tag from package `my-pkg`","yarn npm tag remove my-pkg beta"]]})}async execute(){if(this.tag==="latest")throw new it("The 'latest' tag cannot be removed.");let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=G.parseIdent(this.package),u=si.getPublishRegistry(a.manifest,{configuration:r}),A=pe.pretty(r,this.tag,pe.Type.CODE),p=pe.pretty(r,n,pe.Type.IDENT),h=await Zv(n,r);if(!Object.hasOwn(h,this.tag))throw new it(`${A} is not a tag of package ${p}`);return(await Nt.start({configuration:r,stdout:this.context.stdout},async w=>{let D=`/-/package${en.getIdentUrl(n)}/dist-tags/${encodeURIComponent(this.tag)}`;await en.del(D,{configuration:r,registry:u,ident:n,jsonResponse:!0}),w.reportInfo(0,`Tag ${A} removed from package ${p}`)})).exitCode()}};Ke();Ke();Gt();var sI=class extends ut{constructor(){super(...arguments);this.scope=de.String("-s,--scope",{description:"Print username for the registry configured for a given scope"});this.publish=de.Boolean("--publish",!1,{description:"Print username for the publish registry"})}static{this.paths=[["npm","whoami"]]}static{this.usage=ot.Usage({category:"Npm-related commands",description:"display the name of the authenticated user",details:"\n Print the username associated with the current authentication settings to the standard output.\n\n When using `-s,--scope`, the username printed will be the one that matches the authentication settings of the registry associated with the given scope (those settings can be overriden using the `npmRegistries` map, and the registry associated with the scope is configured via the `npmScopes` map).\n\n When using `--publish`, the registry we'll select will by default be the one used when publishing packages (`publishConfig.registry` or `npmPublishRegistry` if available, otherwise we'll fallback to the regular `npmRegistryServer`).\n ",examples:[["Print username for the default registry","yarn npm whoami"],["Print username for the registry on a given scope","yarn npm whoami --scope company"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),o;return this.scope&&this.publish?o=si.getScopeRegistry(this.scope,{configuration:r,type:si.RegistryType.PUBLISH_REGISTRY}):this.scope?o=si.getScopeRegistry(this.scope,{configuration:r}):this.publish?o=si.getPublishRegistry((await aE(r,this.context.cwd)).manifest,{configuration:r}):o=si.getDefaultRegistry({configuration:r}),(await Nt.start({configuration:r,stdout:this.context.stdout},async n=>{let u;try{u=await en.get("/-/whoami",{configuration:r,registry:o,authType:en.AuthType.ALWAYS_AUTH,jsonResponse:!0,ident:this.scope?G.makeIdent(this.scope,""):void 0})}catch(A){if(A.response?.statusCode===401||A.response?.statusCode===403){n.reportError(41,"Authentication failed - your credentials may have expired");return}else throw A}n.reportInfo(0,u.username)})).exitCode()}};var vvt={configuration:{npmPublishAccess:{description:"Default access of the published packages",type:"STRING",default:null},npmAuditExcludePackages:{description:"Array of glob patterns of packages to exclude from npm audit",type:"STRING",default:[],isArray:!0},npmAuditIgnoreAdvisories:{description:"Array of glob patterns of advisory IDs to exclude from npm audit",type:"STRING",default:[],isArray:!0}},commands:[zC,XC,ZC,eI,tI,nI,rI,iI,sI]},Dvt=vvt;var gG={};Kt(gG,{PatchCommand:()=>AI,PatchCommitCommand:()=>uI,PatchFetcher:()=>nD,PatchResolver:()=>iD,default:()=>jvt,patchUtils:()=>Id});Ke();Ke();Pt();sA();var Id={};Kt(Id,{applyPatchFile:()=>QF,diffFolders:()=>pG,ensureUnpatchedDescriptor:()=>cG,ensureUnpatchedLocator:()=>RF,extractPackageToDisk:()=>fG,extractPatchFlags:()=>uve,isParentRequired:()=>AG,isPatchDescriptor:()=>FF,isPatchLocator:()=>i0,loadPatchFiles:()=>rD,makeDescriptor:()=>TF,makeLocator:()=>uG,makePatchHash:()=>hG,parseDescriptor:()=>eD,parseLocator:()=>tD,parsePatchFile:()=>$v,unpatchDescriptor:()=>_vt,unpatchLocator:()=>Hvt});Ke();Pt();Ke();Pt();var Pvt=/^@@ -(\d+)(,(\d+))? \+(\d+)(,(\d+))? @@.*/;function oI(t){return K.relative(Bt.root,K.resolve(Bt.root,Ae.toPortablePath(t)))}function Svt(t){let e=t.trim().match(Pvt);if(!e)throw new Error(`Bad header line: '${t}'`);return{original:{start:Math.max(Number(e[1]),1),length:Number(e[3]||1)},patched:{start:Math.max(Number(e[4]),1),length:Number(e[6]||1)}}}var bvt=420,xvt=493;var ive=()=>({semverExclusivity:null,diffLineFromPath:null,diffLineToPath:null,oldMode:null,newMode:null,deletedFileMode:null,newFileMode:null,renameFrom:null,renameTo:null,beforeHash:null,afterHash:null,fromPath:null,toPath:null,hunks:null}),kvt=t=>({header:Svt(t),parts:[]}),Qvt={"@":"header","-":"deletion","+":"insertion"," ":"context","\\":"pragma",undefined:"context"};function Fvt(t){let e=[],r=ive(),o="parsing header",a=null,n=null;function u(){a&&(n&&(a.parts.push(n),n=null),r.hunks.push(a),a=null)}function A(){u(),e.push(r),r=ive()}for(let p=0;p0?"patch":"mode change",J=null;switch(U){case"rename":{if(!E||!w)throw new Error("Bad parser state: rename from & to not given");e.push({type:"rename",semverExclusivity:o,fromPath:oI(E),toPath:oI(w)}),J=w}break;case"file deletion":{let te=a||C;if(!te)throw new Error("Bad parse state: no path given for file deletion");e.push({type:"file deletion",semverExclusivity:o,hunk:L&&L[0]||null,path:oI(te),mode:kF(p),hash:D})}break;case"file creation":{let te=n||T;if(!te)throw new Error("Bad parse state: no path given for file creation");e.push({type:"file creation",semverExclusivity:o,hunk:L&&L[0]||null,path:oI(te),mode:kF(h),hash:x})}break;case"patch":case"mode change":J=T||n;break;default:qe.assertNever(U);break}J&&u&&A&&u!==A&&e.push({type:"mode change",semverExclusivity:o,path:oI(J),oldMode:kF(u),newMode:kF(A)}),J&&L&&L.length&&e.push({type:"patch",semverExclusivity:o,path:oI(J),hunks:L,beforeHash:D,afterHash:x})}if(e.length===0)throw new Error("Unable to parse patch file: No changes found. Make sure the patch is a valid UTF8 encoded string");return e}function kF(t){let e=parseInt(t,8)&511;if(e!==bvt&&e!==xvt)throw new Error(`Unexpected file mode string: ${t}`);return e}function $v(t){let e=t.split(/\n/g);return e[e.length-1]===""&&e.pop(),Rvt(Fvt(e))}function Tvt(t){let e=0,r=0;for(let{type:o,lines:a}of t.parts)switch(o){case"context":r+=a.length,e+=a.length;break;case"deletion":e+=a.length;break;case"insertion":r+=a.length;break;default:qe.assertNever(o);break}if(e!==t.header.original.length||r!==t.header.patched.length){let o=a=>a<0?a:`+${a}`;throw new Error(`hunk header integrity check failed (expected @@ ${o(t.header.original.length)} ${o(t.header.patched.length)} @@, got @@ ${o(e)} ${o(r)} @@)`)}}Ke();Pt();var aI=class extends Error{constructor(r,o){super(`Cannot apply hunk #${r+1}`);this.hunk=o}};async function lI(t,e,r){let o=await t.lstatPromise(e),a=await r();typeof a<"u"&&(e=a),await t.lutimesPromise(e,o.atime,o.mtime)}async function QF(t,{baseFs:e=new _n,dryRun:r=!1,version:o=null}={}){for(let a of t)if(!(a.semverExclusivity!==null&&o!==null&&!Ur.satisfiesWithPrereleases(o,a.semverExclusivity)))switch(a.type){case"file deletion":if(r){if(!e.existsSync(a.path))throw new Error(`Trying to delete a file that doesn't exist: ${a.path}`)}else await lI(e,K.dirname(a.path),async()=>{await e.unlinkPromise(a.path)});break;case"rename":if(r){if(!e.existsSync(a.fromPath))throw new Error(`Trying to move a file that doesn't exist: ${a.fromPath}`)}else await lI(e,K.dirname(a.fromPath),async()=>{await lI(e,K.dirname(a.toPath),async()=>{await lI(e,a.fromPath,async()=>(await e.movePromise(a.fromPath,a.toPath),a.toPath))})});break;case"file creation":if(r){if(e.existsSync(a.path))throw new Error(`Trying to create a file that already exists: ${a.path}`)}else{let n=a.hunk?a.hunk.parts[0].lines.join(` +`)+(a.hunk.parts[0].noNewlineAtEndOfFile?"":` +`):"";await e.mkdirpPromise(K.dirname(a.path),{chmod:493,utimes:[Pi.SAFE_TIME,Pi.SAFE_TIME]}),await e.writeFilePromise(a.path,n,{mode:a.mode}),await e.utimesPromise(a.path,Pi.SAFE_TIME,Pi.SAFE_TIME)}break;case"patch":await lI(e,a.path,async()=>{await Ovt(a,{baseFs:e,dryRun:r})});break;case"mode change":{let u=(await e.statPromise(a.path)).mode;if(sve(a.newMode)!==sve(u))continue;await lI(e,a.path,async()=>{await e.chmodPromise(a.path,a.newMode)})}break;default:qe.assertNever(a);break}}function sve(t){return(t&64)>0}function ove(t){return t.replace(/\s+$/,"")}function Lvt(t,e){return ove(t)===ove(e)}async function Ovt({hunks:t,path:e},{baseFs:r,dryRun:o=!1}){let a=await r.statSync(e).mode,u=(await r.readFileSync(e,"utf8")).split(/\n/),A=[],p=0,h=0;for(let w of t){let D=Math.max(h,w.header.patched.start+p),x=Math.max(0,D-h),C=Math.max(0,u.length-D-w.header.original.length),T=Math.max(x,C),L=0,U=0,J=null;for(;L<=T;){if(L<=x&&(U=D-L,J=ave(w,u,U),J!==null)){L=-L;break}if(L<=C&&(U=D+L,J=ave(w,u,U),J!==null))break;L+=1}if(J===null)throw new aI(t.indexOf(w),w);A.push(J),p+=L,h=U+w.header.original.length}if(o)return;let E=0;for(let w of A)for(let D of w)switch(D.type){case"splice":{let x=D.index+E;u.splice(x,D.numToDelete,...D.linesToInsert),E+=D.linesToInsert.length-D.numToDelete}break;case"pop":u.pop();break;case"push":u.push(D.line);break;default:qe.assertNever(D);break}await r.writeFilePromise(e,u.join(` +`),{mode:a})}function ave(t,e,r){let o=[];for(let a of t.parts)switch(a.type){case"context":case"deletion":{for(let n of a.lines){let u=e[r];if(u==null||!Lvt(u,n))return null;r+=1}a.type==="deletion"&&(o.push({type:"splice",index:r-a.lines.length,numToDelete:a.lines.length,linesToInsert:[]}),a.noNewlineAtEndOfFile&&o.push({type:"push",line:""}))}break;case"insertion":o.push({type:"splice",index:r,numToDelete:0,linesToInsert:a.lines}),a.noNewlineAtEndOfFile&&o.push({type:"pop"});break;default:qe.assertNever(a.type);break}return o}var Uvt=/^builtin<([^>]+)>$/;function cI(t,e){let{protocol:r,source:o,selector:a,params:n}=G.parseRange(t);if(r!=="patch:")throw new Error("Invalid patch range");if(o===null)throw new Error("Patch locators must explicitly define their source");let u=a?a.split(/&/).map(E=>Ae.toPortablePath(E)):[],A=n&&typeof n.locator=="string"?G.parseLocator(n.locator):null,p=n&&typeof n.version=="string"?n.version:null,h=e(o);return{parentLocator:A,sourceItem:h,patchPaths:u,sourceVersion:p}}function FF(t){return t.range.startsWith("patch:")}function i0(t){return t.reference.startsWith("patch:")}function eD(t){let{sourceItem:e,...r}=cI(t.range,G.parseDescriptor);return{...r,sourceDescriptor:e}}function tD(t){let{sourceItem:e,...r}=cI(t.reference,G.parseLocator);return{...r,sourceLocator:e}}function _vt(t){let{sourceItem:e}=cI(t.range,G.parseDescriptor);return e}function Hvt(t){let{sourceItem:e}=cI(t.reference,G.parseLocator);return e}function cG(t){if(!FF(t))return t;let{sourceItem:e}=cI(t.range,G.parseDescriptor);return e}function RF(t){if(!i0(t))return t;let{sourceItem:e}=cI(t.reference,G.parseLocator);return e}function lve({parentLocator:t,sourceItem:e,patchPaths:r,sourceVersion:o,patchHash:a},n){let u=t!==null?{locator:G.stringifyLocator(t)}:{},A=typeof o<"u"?{version:o}:{},p=typeof a<"u"?{hash:a}:{};return G.makeRange({protocol:"patch:",source:n(e),selector:r.join("&"),params:{...A,...p,...u}})}function TF(t,{parentLocator:e,sourceDescriptor:r,patchPaths:o}){return G.makeDescriptor(t,lve({parentLocator:e,sourceItem:r,patchPaths:o},G.stringifyDescriptor))}function uG(t,{parentLocator:e,sourcePackage:r,patchPaths:o,patchHash:a}){return G.makeLocator(t,lve({parentLocator:e,sourceItem:r,sourceVersion:r.version,patchPaths:o,patchHash:a},G.stringifyLocator))}function cve({onAbsolute:t,onRelative:e,onProject:r,onBuiltin:o},a){let n=a.lastIndexOf("!");n!==-1&&(a=a.slice(n+1));let u=a.match(Uvt);return u!==null?o(u[1]):a.startsWith("~/")?r(a.slice(2)):K.isAbsolute(a)?t(a):e(a)}function uve(t){let e=t.lastIndexOf("!");return{optional:(e!==-1?new Set(t.slice(0,e).split(/!/)):new Set).has("optional")}}function AG(t){return cve({onAbsolute:()=>!1,onRelative:()=>!0,onProject:()=>!1,onBuiltin:()=>!1},t)}async function rD(t,e,r){let o=t!==null?await r.fetcher.fetch(t,r):null,a=o&&o.localPath?{packageFs:new En(Bt.root),prefixPath:K.relative(Bt.root,o.localPath)}:o;o&&o!==a&&o.releaseFs&&o.releaseFs();let n=await qe.releaseAfterUseAsync(async()=>await Promise.all(e.map(async u=>{let A=uve(u),p=await cve({onAbsolute:async h=>await ae.readFilePromise(h,"utf8"),onRelative:async h=>{if(a===null)throw new Error("Assertion failed: The parent locator should have been fetched");return await a.packageFs.readFilePromise(K.join(a.prefixPath,h),"utf8")},onProject:async h=>await ae.readFilePromise(K.join(r.project.cwd,h),"utf8"),onBuiltin:async h=>await r.project.configuration.firstHook(E=>E.getBuiltinPatch,r.project,h)},u);return{...A,source:p}})));for(let u of n)typeof u.source=="string"&&(u.source=u.source.replace(/\r\n?/g,` +`));return n}async function fG(t,{cache:e,project:r}){let o=r.storedPackages.get(t.locatorHash);if(typeof o>"u")throw new Error("Assertion failed: Expected the package to be registered");let a=RF(t),n=r.storedChecksums,u=new Ri,A=await ae.mktempPromise(),p=K.join(A,"source"),h=K.join(A,"user"),E=K.join(A,".yarn-patch.json"),w=r.configuration.makeFetcher(),D=[];try{let x,C;if(t.locatorHash===a.locatorHash){let T=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u});D.push(()=>T.releaseFs?.()),x=T,C=T}else x=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),D.push(()=>x.releaseFs?.()),C=await w.fetch(t,{cache:e,project:r,fetcher:w,checksums:n,report:u}),D.push(()=>C.releaseFs?.());await Promise.all([ae.copyPromise(p,x.prefixPath,{baseFs:x.packageFs}),ae.copyPromise(h,C.prefixPath,{baseFs:C.packageFs}),ae.writeJsonPromise(E,{locator:G.stringifyLocator(t),version:o.version})])}finally{for(let x of D)x()}return ae.detachTemp(A),h}async function pG(t,e){let r=Ae.fromPortablePath(t).replace(/\\/g,"/"),o=Ae.fromPortablePath(e).replace(/\\/g,"/"),{stdout:a,stderr:n}=await Hr.execvp("git",["-c","core.safecrlf=false","diff","--src-prefix=a/","--dst-prefix=b/","--ignore-cr-at-eol","--full-index","--no-index","--no-renames","--text",r,o],{cwd:Ae.toPortablePath(process.cwd()),env:{...process.env,GIT_CONFIG_NOSYSTEM:"1",HOME:"",XDG_CONFIG_HOME:"",USERPROFILE:""}});if(n.length>0)throw new Error(`Unable to diff directories. Make sure you have a recent version of 'git' available in PATH. +The following error was reported by 'git': +${n}`);let u=r.startsWith("/")?A=>A.slice(1):A=>A;return a.replace(new RegExp(`(a|b)(${qe.escapeRegExp(`/${u(r)}/`)})`,"g"),"$1/").replace(new RegExp(`(a|b)${qe.escapeRegExp(`/${u(o)}/`)}`,"g"),"$1/").replace(new RegExp(qe.escapeRegExp(`${r}/`),"g"),"").replace(new RegExp(qe.escapeRegExp(`${o}/`),"g"),"")}function hG(t,e){let r=[];for(let{source:o}of t){if(o===null)continue;let a=$v(o);for(let n of a){let{semverExclusivity:u,...A}=n;u!==null&&e!==null&&!Ur.satisfiesWithPrereleases(e,u)||r.push(JSON.stringify(A))}}return xn.makeHash(`${3}`,...r).slice(0,6)}Ke();function Ave(t,{configuration:e,report:r}){for(let o of t.parts)for(let a of o.lines)switch(o.type){case"context":r.reportInfo(null,` ${pe.pretty(e,a,"grey")}`);break;case"deletion":r.reportError(28,`- ${pe.pretty(e,a,pe.Type.REMOVED)}`);break;case"insertion":r.reportError(28,`+ ${pe.pretty(e,a,pe.Type.ADDED)}`);break;default:qe.assertNever(o.type)}}var nD=class{supports(e,r){return!!i0(e)}getLocalPath(e,r){return null}async fetch(e,r){let o=r.checksums.get(e.locatorHash)||null,[a,n,u]=await r.cache.fetchPackageFromCache(e,o,{onHit:()=>r.report.reportCacheHit(e),onMiss:()=>r.report.reportCacheMiss(e,`${G.prettyLocator(r.project.configuration,e)} can't be found in the cache and will be fetched from the disk`),loader:()=>this.patchPackage(e,r),...r.cacheOptions});return{packageFs:a,releaseFs:n,prefixPath:G.getIdentVendorPath(e),localPath:this.getLocalPath(e,r),checksum:u}}async patchPackage(e,r){let{parentLocator:o,sourceLocator:a,sourceVersion:n,patchPaths:u}=tD(e),A=await rD(o,u,r),p=await ae.mktempPromise(),h=K.join(p,"current.zip"),E=await r.fetcher.fetch(a,r),w=G.getIdentVendorPath(e),D=new Zi(h,{create:!0,level:r.project.configuration.get("compressionLevel")});await qe.releaseAfterUseAsync(async()=>{await D.copyPromise(w,E.prefixPath,{baseFs:E.packageFs,stableSort:!0})},E.releaseFs),D.saveAndClose();for(let{source:x,optional:C}of A){if(x===null)continue;let T=new Zi(h,{level:r.project.configuration.get("compressionLevel")}),L=new En(K.resolve(Bt.root,w),{baseFs:T});try{await QF($v(x),{baseFs:L,version:n})}catch(U){if(!(U instanceof aI))throw U;let J=r.project.configuration.get("enableInlineHunks"),te=!J&&!C?" (set enableInlineHunks for details)":"",le=`${G.prettyLocator(r.project.configuration,e)}: ${U.message}${te}`,ce=ue=>{J&&Ave(U.hunk,{configuration:r.project.configuration,report:ue})};if(T.discardAndClose(),C){r.report.reportWarningOnce(66,le,{reportExtra:ce});continue}else throw new Jt(66,le,ce)}T.saveAndClose()}return new Zi(h,{level:r.project.configuration.get("compressionLevel")})}};Ke();var iD=class{supportsDescriptor(e,r){return!!FF(e)}supportsLocator(e,r){return!!i0(e)}shouldPersistResolution(e,r){return!1}bindDescriptor(e,r,o){let{patchPaths:a}=eD(e);return a.every(n=>!AG(n))?e:G.bindDescriptor(e,{locator:G.stringifyLocator(r)})}getResolutionDependencies(e,r){let{sourceDescriptor:o}=eD(e);return{sourceDescriptor:r.project.configuration.normalizeDependency(o)}}async getCandidates(e,r,o){if(!o.fetchOptions)throw new Error("Assertion failed: This resolver cannot be used unless a fetcher is configured");let{parentLocator:a,patchPaths:n}=eD(e),u=await rD(a,n,o.fetchOptions),A=r.sourceDescriptor;if(typeof A>"u")throw new Error("Assertion failed: The dependency should have been resolved");let p=hG(u,A.version);return[uG(e,{parentLocator:a,sourcePackage:A,patchPaths:n,patchHash:p})]}async getSatisfying(e,r,o,a){let[n]=await this.getCandidates(e,r,a);return{locators:o.filter(u=>u.locatorHash===n.locatorHash),sorted:!1}}async resolve(e,r){let{sourceLocator:o}=tD(e);return{...await r.resolver.resolve(o,r),...e}}};Ke();Pt();Gt();var uI=class extends ut{constructor(){super(...arguments);this.save=de.Boolean("-s,--save",!1,{description:"Add the patch to your resolution entries"});this.patchFolder=de.String()}static{this.paths=[["patch-commit"]]}static{this.usage=ot.Usage({description:"generate a patch out of a directory",details:"\n By default, this will print a patchfile on stdout based on the diff between the folder passed in and the original version of the package. Such file is suitable for consumption with the `patch:` protocol.\n\n With the `-s,--save` option set, the patchfile won't be printed on stdout anymore and will instead be stored within a local file (by default kept within `.yarn/patches`, but configurable via the `patchFolder` setting). A `resolutions` entry will also be added to your top-level manifest, referencing the patched package via the `patch:` protocol.\n\n Note that only folders generated by `yarn patch` are accepted as valid input for `yarn patch-commit`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=K.resolve(this.context.cwd,Ae.toPortablePath(this.patchFolder)),u=K.join(n,"../source"),A=K.join(n,"../.yarn-patch.json");if(!ae.existsSync(u))throw new it("The argument folder didn't get created by 'yarn patch'");let p=await pG(u,n),h=await ae.readJsonPromise(A),E=G.parseLocator(h.locator,!0);if(!o.storedPackages.has(E.locatorHash))throw new it("No package found in the project for the given locator");if(!this.save){this.context.stdout.write(p);return}let w=r.get("patchFolder"),D=K.join(w,`${G.slugifyLocator(E)}.patch`);await ae.mkdirPromise(w,{recursive:!0}),await ae.writeFilePromise(D,p);let x=[],C=new Map;for(let T of o.storedPackages.values()){if(G.isVirtualLocator(T))continue;let L=T.dependencies.get(E.identHash);if(!L)continue;let U=G.ensureDevirtualizedDescriptor(L),J=cG(U),te=o.storedResolutions.get(J.descriptorHash);if(!te)throw new Error("Assertion failed: Expected the resolution to have been registered");if(!o.storedPackages.get(te))throw new Error("Assertion failed: Expected the package to have been registered");let ce=o.tryWorkspaceByLocator(T);if(ce)x.push(ce);else{let ue=o.originalPackages.get(T.locatorHash);if(!ue)throw new Error("Assertion failed: Expected the original package to have been registered");let Ie=ue.dependencies.get(L.identHash);if(!Ie)throw new Error("Assertion failed: Expected the original dependency to have been registered");C.set(Ie.descriptorHash,Ie)}}for(let T of x)for(let L of _t.hardDependencies){let U=T.manifest[L].get(E.identHash);if(!U)continue;let J=TF(U,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[K.join(mr.home,K.relative(o.cwd,D))]});T.manifest[L].set(U.identHash,J)}for(let T of C.values()){let L=TF(T,{parentLocator:null,sourceDescriptor:G.convertLocatorToDescriptor(E),patchPaths:[K.join(mr.home,K.relative(o.cwd,D))]});o.topLevelWorkspace.manifest.resolutions.push({pattern:{descriptor:{fullName:G.stringifyIdent(L),description:T.range}},reference:L.range})}await o.persist()}};Ke();Pt();Gt();var AI=class extends ut{constructor(){super(...arguments);this.update=de.Boolean("-u,--update",!1,{description:"Reapply local patches that already apply to this packages"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.package=de.String()}static{this.paths=[["patch"]]}static{this.usage=ot.Usage({description:"prepare a package for patching",details:"\n This command will cause a package to be extracted in a temporary directory intended to be editable at will.\n\n Once you're done with your changes, run `yarn patch-commit -s path` (with `path` being the temporary directory you received) to generate a patchfile and register it into your top-level manifest via the `patch:` protocol. Run `yarn patch-commit -h` for more details.\n\n Calling the command when you already have a patch won't import it by default (in other words, the default behavior is to reset existing patches). However, adding the `-u,--update` flag will import any current patch.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let u=G.parseLocator(this.package);if(u.reference==="unknown"){let A=qe.mapAndFilter([...o.storedPackages.values()],p=>p.identHash!==u.identHash?qe.mapAndFilter.skip:G.isVirtualLocator(p)?qe.mapAndFilter.skip:i0(p)!==this.update?qe.mapAndFilter.skip:p);if(A.length===0)throw new it("No package found in the project for the given locator");if(A.length>1)throw new it(`Multiple candidate packages found; explicitly choose one of them (use \`yarn why \` to get more information as to who depends on them): +${A.map(p=>` +- ${G.prettyLocator(r,p)}`).join("")}`);u=A[0]}if(!o.storedPackages.has(u.locatorHash))throw new it("No package found in the project for the given locator");await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=RF(u),h=await fG(u,{cache:n,project:o});A.reportJson({locator:G.stringifyLocator(p),path:Ae.fromPortablePath(h)});let E=this.update?" along with its current modifications":"";A.reportInfo(0,`Package ${G.prettyLocator(r,p)} got extracted with success${E}!`),A.reportInfo(0,`You can now edit the following folder: ${pe.pretty(r,Ae.fromPortablePath(h),"magenta")}`),A.reportInfo(0,`Once you are done run ${pe.pretty(r,`yarn patch-commit -s ${process.platform==="win32"?'"':""}${Ae.fromPortablePath(h)}${process.platform==="win32"?'"':""}`,"cyan")} and Yarn will store a patchfile based on your changes.`)})}};var qvt={configuration:{enableInlineHunks:{description:"If true, the installs will print unmatched patch hunks",type:"BOOLEAN",default:!1},patchFolder:{description:"Folder where the patch files must be written",type:"ABSOLUTE_PATH",default:"./.yarn/patches"}},commands:[uI,AI],fetchers:[nD],resolvers:[iD]},jvt=qvt;var yG={};Kt(yG,{PnpmLinker:()=>sD,default:()=>Vvt});Ke();Pt();Gt();var sD=class{getCustomDataKey(){return JSON.stringify({name:"PnpmLinker",version:3})}supportsPackage(e,r){return this.isEnabled(r)}async findPackageLocation(e,r){if(!this.isEnabled(r))throw new Error("Assertion failed: Expected the pnpm linker to be enabled");let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=a.pathsByLocator.get(e.locatorHash);if(typeof n>"u")throw new it(`Couldn't find ${G.prettyLocator(r.project.configuration,e)} in the currently installed pnpm map - running an install might help`);return n.packageLocation}async findPackageLocator(e,r){if(!this.isEnabled(r))return null;let o=this.getCustomDataKey(),a=r.project.linkersCustomData.get(o);if(!a)throw new it(`The project in ${pe.pretty(r.project.configuration,`${r.project.cwd}/package.json`,pe.Type.PATH)} doesn't seem to have been installed - running an install there might help`);let n=e.match(/(^.*\/node_modules\/(@[^/]*\/)?[^/]+)(\/.*$)/);if(n){let p=a.locatorByPath.get(n[1]);if(p)return p}let u=e,A=e;do{A=u,u=K.dirname(A);let p=a.locatorByPath.get(A);if(p)return p}while(u!==A);return null}makeInstaller(e){return new dG(e)}isEnabled(e){return e.project.configuration.get("nodeLinker")==="pnpm"}},dG=class{constructor(e){this.opts=e;this.asyncActions=new qe.AsyncActions(10);this.customData={pathsByLocator:new Map,locatorByPath:new Map};this.indexFolderPromise=$D(ae,{indexPath:K.join(e.project.configuration.get("globalFolder"),"index")})}attachCustomData(e){}async installPackage(e,r,o){switch(e.linkType){case"SOFT":return this.installPackageSoft(e,r,o);case"HARD":return this.installPackageHard(e,r,o)}throw new Error("Assertion failed: Unsupported package link type")}async installPackageSoft(e,r,o){let a=K.resolve(r.packageFs.getRealPath(),r.prefixPath),n=this.opts.project.tryWorkspaceByLocator(e)?K.join(a,mr.nodeModules):null;return this.customData.pathsByLocator.set(e.locatorHash,{packageLocation:a,dependenciesLocation:n}),{packageLocation:a,buildRequest:null}}async installPackageHard(e,r,o){let a=Gvt(e,{project:this.opts.project}),n=a.packageLocation;this.customData.locatorByPath.set(n,G.stringifyLocator(e)),this.customData.pathsByLocator.set(e.locatorHash,a),o.holdFetchResult(this.asyncActions.set(e.locatorHash,async()=>{await ae.mkdirPromise(n,{recursive:!0}),await ae.copyPromise(n,r.prefixPath,{baseFs:r.packageFs,overwrite:!1,linkStrategy:{type:"HardlinkFromIndex",indexPath:await this.indexFolderPromise,autoRepair:!0}})}));let A=G.isVirtualLocator(e)?G.devirtualizeLocator(e):e,p={manifest:await _t.tryFind(r.prefixPath,{baseFs:r.packageFs})??new _t,misc:{hasBindingGyp:CA.hasBindingGyp(r)}},h=this.opts.project.getDependencyMeta(A,e.version),E=CA.extractBuildRequest(e,p,h,{configuration:this.opts.project.configuration});return{packageLocation:n,buildRequest:E}}async attachInternalDependencies(e,r){if(this.opts.project.configuration.get("nodeLinker")!=="pnpm"||!fve(e,{project:this.opts.project}))return;let o=this.customData.pathsByLocator.get(e.locatorHash);if(typeof o>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(e)})`);let{dependenciesLocation:a}=o;a&&this.asyncActions.reduce(e.locatorHash,async n=>{await ae.mkdirPromise(a,{recursive:!0});let u=await Wvt(a),A=new Map(u),p=[n],h=(w,D)=>{let x=D;fve(D,{project:this.opts.project})||(this.opts.report.reportWarningOnce(0,"The pnpm linker doesn't support providing different versions to workspaces' peer dependencies"),x=G.devirtualizeLocator(D));let C=this.customData.pathsByLocator.get(x.locatorHash);if(typeof C>"u")throw new Error(`Assertion failed: Expected the package to have been registered (${G.stringifyLocator(D)})`);let T=G.stringifyIdent(w),L=K.join(a,T),U=K.relative(K.dirname(L),C.packageLocation),J=A.get(T);A.delete(T),p.push(Promise.resolve().then(async()=>{if(J){if(J.isSymbolicLink()&&await ae.readlinkPromise(L)===U)return;await ae.removePromise(L)}await ae.mkdirpPromise(K.dirname(L)),process.platform=="win32"&&this.opts.project.configuration.get("winLinkType")==="junctions"?await ae.symlinkPromise(C.packageLocation,L,"junction"):await ae.symlinkPromise(U,L)}))},E=!1;for(let[w,D]of r)w.identHash===e.identHash&&(E=!0),h(w,D);!E&&!this.opts.project.tryWorkspaceByLocator(e)&&h(G.convertLocatorToDescriptor(e),e),p.push(Yvt(a,A)),await Promise.all(p)})}async attachExternalDependents(e,r){throw new Error("External dependencies haven't been implemented for the pnpm linker")}async finalizeInstall(){let e=hve(this.opts.project);if(this.opts.project.configuration.get("nodeLinker")!=="pnpm")await ae.removePromise(e);else{let r;try{r=new Set(await ae.readdirPromise(e))}catch{r=new Set}for(let{dependenciesLocation:o}of this.customData.pathsByLocator.values()){if(!o)continue;let a=K.contains(e,o);if(a===null)continue;let[n]=a.split(K.sep);r.delete(n)}await Promise.all([...r].map(async o=>{await ae.removePromise(K.join(e,o))}))}return await this.asyncActions.wait(),await mG(e),this.opts.project.configuration.get("nodeLinker")!=="node-modules"&&await mG(pve(this.opts.project)),{customData:this.customData}}};function pve(t){return K.join(t.cwd,mr.nodeModules)}function hve(t){return K.join(pve(t),".store")}function Gvt(t,{project:e}){let r=G.slugifyLocator(t),o=hve(e),a=K.join(o,r,"package"),n=K.join(o,r,mr.nodeModules);return{packageLocation:a,dependenciesLocation:n}}function fve(t,{project:e}){return!G.isVirtualLocator(t)||!e.tryWorkspaceByLocator(t)}async function Wvt(t){let e=new Map,r=[];try{r=await ae.readdirPromise(t,{withFileTypes:!0})}catch(o){if(o.code!=="ENOENT")throw o}try{for(let o of r)if(!o.name.startsWith("."))if(o.name.startsWith("@")){let a=await ae.readdirPromise(K.join(t,o.name),{withFileTypes:!0});if(a.length===0)e.set(o.name,o);else for(let n of a)e.set(`${o.name}/${n.name}`,n)}else e.set(o.name,o)}catch(o){if(o.code!=="ENOENT")throw o}return e}async function Yvt(t,e){let r=[],o=new Set;for(let a of e.keys()){r.push(ae.removePromise(K.join(t,a)));let n=G.tryParseIdent(a)?.scope;n&&o.add(`@${n}`)}return Promise.all(r).then(()=>Promise.all([...o].map(a=>mG(K.join(t,a)))))}async function mG(t){try{await ae.rmdirPromise(t)}catch(e){if(e.code!=="ENOENT"&&e.code!=="ENOTEMPTY")throw e}}var Kvt={linkers:[sD]},Vvt=Kvt;var DG={};Kt(DG,{StageCommand:()=>fI,default:()=>sDt,stageUtils:()=>LF});Ke();Pt();Gt();Ke();Pt();var LF={};Kt(LF,{ActionType:()=>EG,checkConsensus:()=>NF,expandDirectory:()=>wG,findConsensus:()=>BG,findVcsRoot:()=>CG,genCommitMessage:()=>vG,getCommitPrefix:()=>gve,isYarnFile:()=>IG});Pt();var EG=(n=>(n[n.CREATE=0]="CREATE",n[n.DELETE=1]="DELETE",n[n.ADD=2]="ADD",n[n.REMOVE=3]="REMOVE",n[n.MODIFY=4]="MODIFY",n))(EG||{});async function CG(t,{marker:e}){do if(!ae.existsSync(K.join(t,e)))t=K.dirname(t);else return t;while(t!=="/");return null}function IG(t,{roots:e,names:r}){if(r.has(K.basename(t)))return!0;do if(!e.has(t))t=K.dirname(t);else return!0;while(t!=="/");return!1}function wG(t){let e=[],r=[t];for(;r.length>0;){let o=r.pop(),a=ae.readdirSync(o);for(let n of a){let u=K.resolve(o,n);ae.lstatSync(u).isDirectory()?r.push(u):e.push(u)}}return e}function NF(t,e){let r=0,o=0;for(let a of t)a!=="wip"&&(e.test(a)?r+=1:o+=1);return r>=o}function BG(t){let e=NF(t,/^(\w\(\w+\):\s*)?\w+s/),r=NF(t,/^(\w\(\w+\):\s*)?[A-Z]/),o=NF(t,/^\w\(\w+\):/);return{useThirdPerson:e,useUpperCase:r,useComponent:o}}function gve(t){return t.useComponent?"chore(yarn): ":""}var Jvt=new Map([[0,"create"],[1,"delete"],[2,"add"],[3,"remove"],[4,"update"]]);function vG(t,e){let r=gve(t),o=[],a=e.slice().sort((n,u)=>n[0]-u[0]);for(;a.length>0;){let[n,u]=a.shift(),A=Jvt.get(n);t.useUpperCase&&o.length===0&&(A=`${A[0].toUpperCase()}${A.slice(1)}`),t.useThirdPerson&&(A+="s");let p=[u];for(;a.length>0&&a[0][0]===n;){let[,E]=a.shift();p.push(E)}p.sort();let h=p.shift();p.length===1?h+=" (and one other)":p.length>1&&(h+=` (and ${p.length} others)`),o.push(`${A} ${h}`)}return`${r}${o.join(", ")}`}var zvt="Commit generated via `yarn stage`",Xvt=11;async function dve(t){let{code:e,stdout:r}=await Hr.execvp("git",["log","-1","--pretty=format:%H"],{cwd:t});return e===0?r.trim():null}async function Zvt(t,e){let r=[],o=e.filter(h=>K.basename(h.path)==="package.json");for(let{action:h,path:E}of o){let w=K.relative(t,E);if(h===4){let D=await dve(t),{stdout:x}=await Hr.execvp("git",["show",`${D}:${w}`],{cwd:t,strict:!0}),C=await _t.fromText(x),T=await _t.fromFile(E),L=new Map([...T.dependencies,...T.devDependencies]),U=new Map([...C.dependencies,...C.devDependencies]);for(let[J,te]of U){let le=G.stringifyIdent(te),ce=L.get(J);ce?ce.range!==te.range&&r.push([4,`${le} to ${ce.range}`]):r.push([3,le])}for(let[J,te]of L)U.has(J)||r.push([2,G.stringifyIdent(te)])}else if(h===0){let D=await _t.fromFile(E);D.name?r.push([0,G.stringifyIdent(D.name)]):r.push([0,"a package"])}else if(h===1){let D=await dve(t),{stdout:x}=await Hr.execvp("git",["show",`${D}:${w}`],{cwd:t,strict:!0}),C=await _t.fromText(x);C.name?r.push([1,G.stringifyIdent(C.name)]):r.push([1,"a package"])}else throw new Error("Assertion failed: Unsupported action type")}let{code:a,stdout:n}=await Hr.execvp("git",["log",`-${Xvt}`,"--pretty=format:%s"],{cwd:t}),u=a===0?n.split(/\n/g).filter(h=>h!==""):[],A=BG(u);return vG(A,r)}var $vt={0:[" A ","?? "],4:[" M "],1:[" D "]},eDt={0:["A "],4:["M "],1:["D "]},mve={async findRoot(t){return await CG(t,{marker:".git"})},async filterChanges(t,e,r,o){let{stdout:a}=await Hr.execvp("git",["status","-s"],{cwd:t,strict:!0}),n=a.toString().split(/\n/g),u=o?.staged?eDt:$vt;return[].concat(...n.map(p=>{if(p==="")return[];let h=p.slice(0,3),E=K.resolve(t,p.slice(3));if(!o?.staged&&h==="?? "&&p.endsWith("/"))return wG(E).map(w=>({action:0,path:w}));{let D=[0,4,1].find(x=>u[x].includes(h));return D!==void 0?[{action:D,path:E}]:[]}})).filter(p=>IG(p.path,{roots:e,names:r}))},async genCommitMessage(t,e){return await Zvt(t,e)},async makeStage(t,e){let r=e.map(o=>Ae.fromPortablePath(o.path));await Hr.execvp("git",["add","--",...r],{cwd:t,strict:!0})},async makeCommit(t,e,r){let o=e.map(a=>Ae.fromPortablePath(a.path));await Hr.execvp("git",["add","-N","--",...o],{cwd:t,strict:!0}),await Hr.execvp("git",["commit","-m",`${r} + +${zvt} +`,"--",...o],{cwd:t,strict:!0})},async makeReset(t,e){let r=e.map(o=>Ae.fromPortablePath(o.path));await Hr.execvp("git",["reset","HEAD","--",...r],{cwd:t,strict:!0})}};var tDt=[mve],fI=class extends ut{constructor(){super(...arguments);this.commit=de.Boolean("-c,--commit",!1,{description:"Commit the staged files"});this.reset=de.Boolean("-r,--reset",!1,{description:"Remove all files from the staging area"});this.dryRun=de.Boolean("-n,--dry-run",!1,{description:"Print the commit message and the list of modified files without staging / committing"});this.update=de.Boolean("-u,--update",!1,{hidden:!0})}static{this.paths=[["stage"]]}static{this.usage=ot.Usage({description:"add all yarn files to your vcs",details:"\n This command will add to your staging area the files belonging to Yarn (typically any modified `package.json` and `.yarnrc.yml` files, but also linker-generated files, cache data, etc). It will take your ignore list into account, so the cache files won't be added if the cache is ignored in a `.gitignore` file (assuming you use Git).\n\n Running `--reset` will instead remove them from the staging area (the changes will still be there, but won't be committed until you stage them back).\n\n Since the staging area is a non-existent concept in Mercurial, Yarn will always create a new commit when running this command on Mercurial repositories. You can get this behavior when using Git by using the `--commit` flag which will directly create a commit.\n ",examples:[["Adds all modified project files to the staging area","yarn stage"],["Creates a new commit containing all modified project files","yarn stage --commit"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o}=await Qt.find(r,this.context.cwd),{driver:a,root:n}=await rDt(o.cwd),u=[r.get("cacheFolder"),r.get("globalFolder"),r.get("virtualFolder"),r.get("yarnPath")];await r.triggerHook(w=>w.populateYarnPaths,o,w=>{u.push(w)});let A=new Set;for(let w of u)for(let D of nDt(n,w))A.add(D);let p=new Set([r.get("rcFilename"),mr.lockfile,mr.manifest]),h=await a.filterChanges(n,A,p),E=await a.genCommitMessage(n,h);if(this.dryRun)if(this.commit)this.context.stdout.write(`${E} +`);else for(let w of h)this.context.stdout.write(`${Ae.fromPortablePath(w.path)} +`);else if(this.reset){let w=await a.filterChanges(n,A,p,{staged:!0});w.length===0?this.context.stdout.write("No staged changes found!"):await a.makeReset(n,w)}else h.length===0?this.context.stdout.write("No changes found!"):this.commit?await a.makeCommit(n,h,E):(await a.makeStage(n,h),this.context.stdout.write(E))}};async function rDt(t){let e=null,r=null;for(let o of tDt)if((r=await o.findRoot(t))!==null){e=o;break}if(e===null||r===null)throw new it("No stage driver has been found for your current project");return{driver:e,root:r}}function nDt(t,e){let r=[];if(e===null)return r;for(;;){(e===t||e.startsWith(`${t}/`))&&r.push(e);let o;try{o=ae.statSync(e)}catch{break}if(o.isSymbolicLink())e=K.resolve(K.dirname(e),ae.readlinkSync(e));else break}return r}var iDt={commands:[fI]},sDt=iDt;var PG={};Kt(PG,{default:()=>pDt});Ke();Ke();Pt();var Cve=et(ni());Ke();var yve=et(L6()),oDt="e8e1bd300d860104bb8c58453ffa1eb4",aDt="OFCNCOG2CU",Eve=async(t,e)=>{let r=G.stringifyIdent(t),a=lDt(e).initIndex("npm-search");try{return(await a.getObject(r,{attributesToRetrieve:["types"]})).types?.ts==="definitely-typed"}catch{return!1}},lDt=t=>(0,yve.default)(aDt,oDt,{requester:{async send(r){try{let o=await on.request(r.url,r.data||null,{configuration:t,headers:r.headers});return{content:o.body,isTimedOut:!1,status:o.statusCode}}catch(o){return{content:o.response.body,isTimedOut:!1,status:o.response.statusCode}}}}});var Ive=t=>t.scope?`${t.scope}__${t.name}`:`${t.name}`,cDt=async(t,e,r,o)=>{if(r.scope==="types")return;let{project:a}=t,{configuration:n}=a;if(!(n.get("tsEnableAutoTypes")??(ae.existsSync(K.join(t.cwd,"tsconfig.json"))||ae.existsSync(K.join(a.cwd,"tsconfig.json")))))return;let A=n.makeResolver(),p={project:a,resolver:A,report:new Ri};if(!await Eve(r,n))return;let E=Ive(r),w=G.parseRange(r.range).selector;if(!Ur.validRange(w)){let L=n.normalizeDependency(r),U=await A.getCandidates(L,{},p);w=G.parseRange(U[0].reference).selector}let D=Cve.default.coerce(w);if(D===null)return;let x=`${nu.Modifier.CARET}${D.major}`,C=G.makeDescriptor(G.makeIdent("types",E),x),T=qe.mapAndFind(a.workspaces,L=>{let U=L.manifest.dependencies.get(r.identHash)?.descriptorHash,J=L.manifest.devDependencies.get(r.identHash)?.descriptorHash;if(U!==r.descriptorHash&&J!==r.descriptorHash)return qe.mapAndFind.skip;let te=[];for(let le of _t.allDependencies){let ce=L.manifest[le].get(C.identHash);typeof ce>"u"||te.push([le,ce])}return te.length===0?qe.mapAndFind.skip:te});if(typeof T<"u")for(let[L,U]of T)t.manifest[L].set(U.identHash,U);else{try{let L=n.normalizeDependency(C);if((await A.getCandidates(L,{},p)).length===0)return}catch{return}t.manifest[nu.Target.DEVELOPMENT].set(C.identHash,C)}},uDt=async(t,e,r)=>{if(r.scope==="types")return;let{project:o}=t,{configuration:a}=o;if(!(a.get("tsEnableAutoTypes")??(ae.existsSync(K.join(t.cwd,"tsconfig.json"))||ae.existsSync(K.join(o.cwd,"tsconfig.json")))))return;let u=Ive(r),A=G.makeIdent("types",u);for(let p of _t.allDependencies)typeof t.manifest[p].get(A.identHash)>"u"||t.manifest[p].delete(A.identHash)},ADt=(t,e)=>{e.publishConfig&&e.publishConfig.typings&&(e.typings=e.publishConfig.typings),e.publishConfig&&e.publishConfig.types&&(e.types=e.publishConfig.types)},fDt={configuration:{tsEnableAutoTypes:{description:"Whether Yarn should auto-install @types/ dependencies on 'yarn add'",type:"BOOLEAN",isNullable:!0,default:null}},hooks:{afterWorkspaceDependencyAddition:cDt,afterWorkspaceDependencyRemoval:uDt,beforeWorkspacePacking:ADt}},pDt=fDt;var QG={};Kt(QG,{VersionApplyCommand:()=>mI,VersionCheckCommand:()=>yI,VersionCommand:()=>EI,default:()=>FDt,versionUtils:()=>dI});Ke();Ke();Gt();var dI={};Kt(dI,{Decision:()=>hI,applyPrerelease:()=>Sve,applyReleases:()=>kG,applyStrategy:()=>MF,clearVersionFiles:()=>SG,getUndecidedDependentWorkspaces:()=>aD,getUndecidedWorkspaces:()=>OF,openVersionFile:()=>gI,requireMoreDecisions:()=>xDt,resolveVersionFiles:()=>oD,suggestStrategy:()=>xG,updateVersionFiles:()=>bG,validateReleaseDecision:()=>pI});Ke();Pt();Ol();Gt();var Pve=et(Dve()),PA=et(ni()),bDt=/^(>=|[~^]|)(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(-(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(\.(0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*)?(\+[0-9a-zA-Z-]+(\.[0-9a-zA-Z-]+)*)?$/,hI=(u=>(u.UNDECIDED="undecided",u.DECLINE="decline",u.MAJOR="major",u.MINOR="minor",u.PATCH="patch",u.PRERELEASE="prerelease",u))(hI||{});function pI(t){let e=PA.default.valid(t);return e||qe.validateEnum((0,Pve.default)(hI,"UNDECIDED"),t)}async function oD(t,{prerelease:e=null}={}){let r=new Map,o=t.configuration.get("deferredVersionFolder");if(!ae.existsSync(o))return r;let a=await ae.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=K.join(o,n),A=await ae.readFilePromise(u,"utf8"),p=Ki(A);for(let[h,E]of Object.entries(p.releases||{})){if(E==="decline")continue;let w=G.parseIdent(h),D=t.tryWorkspaceByIdent(w);if(D===null)throw new Error(`Assertion failed: Expected a release definition file to only reference existing workspaces (${K.basename(u)} references ${h})`);if(D.manifest.version===null)throw new Error(`Assertion failed: Expected the workspace to have a version (${G.prettyLocator(t.configuration,D.anchoredLocator)})`);let x=D.manifest.raw.stableVersion??D.manifest.version,C=r.get(D),T=MF(x,pI(E));if(T===null)throw new Error(`Assertion failed: Expected ${x} to support being bumped via strategy ${E}`);let L=typeof C<"u"?PA.default.gt(T,C)?T:C:T;r.set(D,L)}}return e&&(r=new Map([...r].map(([n,u])=>[n,Sve(u,{current:n.manifest.version,prerelease:e})]))),r}async function SG(t){let e=t.configuration.get("deferredVersionFolder");ae.existsSync(e)&&await ae.removePromise(e)}async function bG(t,e){let r=new Set(e),o=t.configuration.get("deferredVersionFolder");if(!ae.existsSync(o))return;let a=await ae.readdirPromise(o);for(let n of a){if(!n.endsWith(".yml"))continue;let u=K.join(o,n),A=await ae.readFilePromise(u,"utf8"),p=Ki(A),h=p?.releases;if(h){for(let E of Object.keys(h)){let w=G.parseIdent(E),D=t.tryWorkspaceByIdent(w);(D===null||r.has(D))&&delete p.releases[E]}Object.keys(p.releases).length>0?await ae.changeFilePromise(u,Pa(new Pa.PreserveOrdering(p))):await ae.unlinkPromise(u)}}}async function gI(t,{allowEmpty:e=!1}={}){let r=t.configuration;if(r.projectCwd===null)throw new it("This command can only be run from within a Yarn project");let o=await ra.fetchRoot(r.projectCwd),a=o!==null?await ra.fetchBase(o,{baseRefs:r.get("changesetBaseRefs")}):null,n=o!==null?await ra.fetchChangedFiles(o,{base:a.hash,project:t}):[],u=r.get("deferredVersionFolder"),A=n.filter(x=>K.contains(u,x)!==null);if(A.length>1)throw new it(`Your current branch contains multiple versioning files; this isn't supported: +- ${A.map(x=>Ae.fromPortablePath(x)).join(` +- `)}`);let p=new Set(qe.mapAndFilter(n,x=>{let C=t.tryWorkspaceByFilePath(x);return C===null?qe.mapAndFilter.skip:C}));if(A.length===0&&p.size===0&&!e)return null;let h=A.length===1?A[0]:K.join(u,`${xn.makeHash(Math.random().toString()).slice(0,8)}.yml`),E=ae.existsSync(h)?await ae.readFilePromise(h,"utf8"):"{}",w=Ki(E),D=new Map;for(let x of w.declined||[]){let C=G.parseIdent(x),T=t.getWorkspaceByIdent(C);D.set(T,"decline")}for(let[x,C]of Object.entries(w.releases||{})){let T=G.parseIdent(x),L=t.getWorkspaceByIdent(T);D.set(L,pI(C))}return{project:t,root:o,baseHash:a!==null?a.hash:null,baseTitle:a!==null?a.title:null,changedFiles:new Set(n),changedWorkspaces:p,releaseRoots:new Set([...p].filter(x=>x.manifest.version!==null)),releases:D,async saveAll(){let x={},C=[],T=[];for(let L of t.workspaces){if(L.manifest.version===null)continue;let U=G.stringifyIdent(L.anchoredLocator),J=D.get(L);J==="decline"?C.push(U):typeof J<"u"?x[U]=pI(J):p.has(L)&&T.push(U)}await ae.mkdirPromise(K.dirname(h),{recursive:!0}),await ae.changeFilePromise(h,Pa(new Pa.PreserveOrdering({releases:Object.keys(x).length>0?x:void 0,declined:C.length>0?C:void 0,undecided:T.length>0?T:void 0})))}}}function xDt(t){return OF(t).size>0||aD(t).length>0}function OF(t){let e=new Set;for(let r of t.changedWorkspaces)r.manifest.version!==null&&(t.releases.has(r)||e.add(r));return e}function aD(t,{include:e=new Set}={}){let r=[],o=new Map(qe.mapAndFilter([...t.releases],([n,u])=>u==="decline"?qe.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n])),a=new Map(qe.mapAndFilter([...t.releases],([n,u])=>u!=="decline"?qe.mapAndFilter.skip:[n.anchoredLocator.locatorHash,n]));for(let n of t.project.workspaces)if(!(!e.has(n)&&(a.has(n.anchoredLocator.locatorHash)||o.has(n.anchoredLocator.locatorHash)))&&n.manifest.version!==null)for(let u of _t.hardDependencies)for(let A of n.manifest.getForScope(u).values()){let p=t.project.tryWorkspaceByDescriptor(A);p!==null&&o.has(p.anchoredLocator.locatorHash)&&r.push([n,p])}return r}function xG(t,e){let r=PA.default.clean(e);for(let o of Object.values(hI))if(o!=="undecided"&&o!=="decline"&&PA.default.inc(t,o)===r)return o;return null}function MF(t,e){if(PA.default.valid(e))return e;if(t===null)throw new it(`Cannot apply the release strategy "${e}" unless the workspace already has a valid version`);if(!PA.default.valid(t))throw new it(`Cannot apply the release strategy "${e}" on a non-semver version (${t})`);let r=PA.default.inc(t,e);if(r===null)throw new it(`Cannot apply the release strategy "${e}" on the specified version (${t})`);return r}function kG(t,e,{report:r}){let o=new Map;for(let a of t.workspaces)for(let n of _t.allDependencies)for(let u of a.manifest[n].values()){let A=t.tryWorkspaceByDescriptor(u);if(A===null||!e.has(A))continue;qe.getArrayWithDefault(o,A).push([a,n,u.identHash])}for(let[a,n]of e){let u=a.manifest.version;a.manifest.version=n,PA.default.prerelease(n)===null?delete a.manifest.raw.stableVersion:a.manifest.raw.stableVersion||(a.manifest.raw.stableVersion=u);let A=a.manifest.name!==null?G.stringifyIdent(a.manifest.name):null;r.reportInfo(0,`${G.prettyLocator(t.configuration,a.anchoredLocator)}: Bumped to ${n}`),r.reportJson({cwd:Ae.fromPortablePath(a.cwd),ident:A,oldVersion:u,newVersion:n});let p=o.get(a);if(!(typeof p>"u"))for(let[h,E,w]of p){let D=h.manifest[E].get(w);if(typeof D>"u")throw new Error("Assertion failed: The dependency should have existed");let x=D.range,C=!1;if(x.startsWith(ci.protocol)&&(x=x.slice(ci.protocol.length),C=!0,x===a.relativeCwd))continue;let T=x.match(bDt);if(!T){r.reportWarning(0,`Couldn't auto-upgrade range ${x} (in ${G.prettyLocator(t.configuration,h.anchoredLocator)})`);continue}let L=`${T[1]}${n}`;C&&(L=`${ci.protocol}${L}`);let U=G.makeDescriptor(D,L);h.manifest[E].set(w,U)}}}var kDt=new Map([["%n",{extract:t=>t.length>=1?[t[0],t.slice(1)]:null,generate:(t=0)=>`${t+1}`}]]);function Sve(t,{current:e,prerelease:r}){let o=new PA.default.SemVer(e),a=o.prerelease.slice(),n=[];o.prerelease=[],o.format()!==t&&(a.length=0);let u=!0,A=r.split(/\./g);for(let p of A){let h=kDt.get(p);if(typeof h>"u")n.push(p),a[0]===p?a.shift():u=!1;else{let E=u?h.extract(a):null;E!==null&&typeof E[0]=="number"?(n.push(h.generate(E[0])),a=E[1]):(n.push(h.generate()),u=!1)}}return o.prerelease&&(o.prerelease=[]),`${t}-${n.join(".")}`}var mI=class extends ut{constructor(){super(...arguments);this.all=de.Boolean("--all",!1,{description:"Apply the deferred version changes on all workspaces"});this.dryRun=de.Boolean("--dry-run",!1,{description:"Print the versions without actually generating the package archive"});this.prerelease=de.String("--prerelease",{description:"Add a prerelease identifier to new versions",tolerateBoolean:!0});this.recursive=de.Boolean("-R,--recursive",{description:"Release the transitive workspaces as well"});this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"})}static{this.paths=[["version","apply"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply all the deferred version bumps at once",details:` + This command will apply the deferred version changes and remove their definitions from the repository. + + Note that if \`--prerelease\` is set, the given prerelease identifier (by default \`rc.%n\`) will be used on all new versions and the version definitions will be kept as-is. + + By default only the current workspace will be bumped, but you can configure this behavior by using one of: + + - \`--recursive\` to also apply the version bump on its dependencies + - \`--all\` to apply the version bump on all packages in the repository + + Note that this command will also update the \`workspace:\` references across all your local workspaces, thus ensuring that they keep referring to the same workspaces even after the version bump. + `,examples:[["Apply the version change to the local workspace","yarn version apply"],["Apply the version change to all the workspaces in the local workspace","yarn version apply --all"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);if(!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState({restoreResolutions:!1});let u=await Nt.start({configuration:r,json:this.json,stdout:this.context.stdout},async A=>{let p=this.prerelease?typeof this.prerelease!="boolean"?this.prerelease:"rc.%n":null,h=await oD(o,{prerelease:p}),E=new Map;if(this.all)E=h;else{let w=this.recursive?a.getRecursiveWorkspaceDependencies():[a];for(let D of w){let x=h.get(D);typeof x<"u"&&E.set(D,x)}}if(E.size===0){let w=h.size>0?" Did you want to add --all?":"";A.reportWarning(0,`The current workspace doesn't seem to require a version bump.${w}`);return}kG(o,E,{report:A}),this.dryRun||(p||(this.all?await SG(o):await bG(o,[...E.keys()])),A.reportSeparator())});return this.dryRun||u.hasErrors()?u.exitCode():await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n})}};Ke();Pt();Gt();var UF=et(ni());var yI=class extends ut{constructor(){super(...arguments);this.interactive=de.Boolean("-i,--interactive",{description:"Open an interactive interface used to set version bumps"})}static{this.paths=[["version","check"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"check that all the relevant packages have been bumped",details:"\n **Warning:** This command currently requires Git.\n\n This command will check that all the packages covered by the files listed in argument have been properly bumped or declined to bump.\n\n In the case of a bump, the check will also cover transitive packages - meaning that should `Foo` be bumped, a package `Bar` depending on `Foo` will require a decision as to whether `Bar` will need to be bumped. This check doesn't cross packages that have declined to bump.\n\n In case no arguments are passed to the function, the list of modified files will be generated by comparing the HEAD against `master`.\n ",examples:[["Check whether the modified packages need a bump","yarn version check"]]})}async execute(){return this.interactive?await this.executeInteractive():await this.executeStandard()}async executeInteractive(){AC(this.context);let{Gem:r}=await Promise.resolve().then(()=>(UQ(),oj)),{ScrollableItems:o}=await Promise.resolve().then(()=>(jQ(),qQ)),{FocusRequest:a}=await Promise.resolve().then(()=>(lj(),Qwe)),{useListInput:n}=await Promise.resolve().then(()=>(HQ(),Fwe)),{renderForm:u}=await Promise.resolve().then(()=>(KQ(),YQ)),{Box:A,Text:p}=await Promise.resolve().then(()=>et(ac())),{default:h,useCallback:E,useState:w}=await Promise.resolve().then(()=>et(ln())),D=await ze.find(this.context.cwd,this.context.plugins),{project:x,workspace:C}=await Qt.find(D,this.context.cwd);if(!C)throw new or(x.cwd,this.context.cwd);await x.restoreInstallState();let T=await gI(x);if(T===null||T.releaseRoots.size===0)return 0;if(T.root===null)throw new it("This command can only be run on Git repositories");let L=()=>h.createElement(A,{flexDirection:"row",paddingBottom:1},h.createElement(A,{flexDirection:"column",width:60},h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select workspaces.")),h.createElement(A,null,h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},""),"/",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to select release strategies."))),h.createElement(A,{flexDirection:"column"},h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to save.")),h.createElement(A,{marginLeft:1},h.createElement(p,null,"Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to abort.")))),U=({workspace:Ie,active:he,decision:De,setDecision:Ee})=>{let g=Ie.manifest.raw.stableVersion??Ie.manifest.version;if(g===null)throw new Error(`Assertion failed: The version should have been set (${G.prettyLocator(D,Ie.anchoredLocator)})`);if(UF.default.prerelease(g)!==null)throw new Error(`Assertion failed: Prerelease identifiers shouldn't be found (${g})`);let me=["undecided","decline","patch","minor","major"];n(De,me,{active:he,minus:"left",plus:"right",set:Ee});let Ce=De==="undecided"?h.createElement(p,{color:"yellow"},g):De==="decline"?h.createElement(p,{color:"green"},g):h.createElement(p,null,h.createElement(p,{color:"magenta"},g)," \u2192 ",h.createElement(p,{color:"green"},UF.default.valid(De)?De:UF.default.inc(g,De)));return h.createElement(A,{flexDirection:"column"},h.createElement(A,null,h.createElement(p,null,G.prettyLocator(D,Ie.anchoredLocator)," - ",Ce)),h.createElement(A,null,me.map(fe=>h.createElement(A,{key:fe,paddingLeft:2},h.createElement(p,null,h.createElement(r,{active:fe===De})," ",fe)))))},J=Ie=>{let he=new Set(T.releaseRoots),De=new Map([...Ie].filter(([Ee])=>he.has(Ee)));for(;;){let Ee=aD({project:T.project,releases:De}),g=!1;if(Ee.length>0){for(let[me]of Ee)if(!he.has(me)){he.add(me),g=!0;let Ce=Ie.get(me);typeof Ce<"u"&&De.set(me,Ce)}}if(!g)break}return{relevantWorkspaces:he,relevantReleases:De}},te=()=>{let[Ie,he]=w(()=>new Map(T.releases)),De=E((Ee,g)=>{let me=new Map(Ie);g!=="undecided"?me.set(Ee,g):me.delete(Ee);let{relevantReleases:Ce}=J(me);he(Ce)},[Ie,he]);return[Ie,De]},le=({workspaces:Ie,releases:he})=>{let De=[];De.push(`${Ie.size} total`);let Ee=0,g=0;for(let me of Ie){let Ce=he.get(me);typeof Ce>"u"?g+=1:Ce!=="decline"&&(Ee+=1)}return De.push(`${Ee} release${Ee===1?"":"s"}`),De.push(`${g} remaining`),h.createElement(p,{color:"yellow"},De.join(", "))},ue=await u(({useSubmit:Ie})=>{let[he,De]=te();Ie(he);let{relevantWorkspaces:Ee}=J(he),g=new Set([...Ee].filter(ie=>!T.releaseRoots.has(ie))),[me,Ce]=w(0),fe=E(ie=>{switch(ie){case a.BEFORE:Ce(me-1);break;case a.AFTER:Ce(me+1);break}},[me,Ce]);return h.createElement(A,{flexDirection:"column"},h.createElement(L,null),h.createElement(A,null,h.createElement(p,{wrap:"wrap"},"The following files have been modified in your local checkout.")),h.createElement(A,{flexDirection:"column",marginTop:1,paddingLeft:2},[...T.changedFiles].map(ie=>h.createElement(A,{key:ie},h.createElement(p,null,h.createElement(p,{color:"grey"},Ae.fromPortablePath(T.root)),Ae.sep,Ae.relative(Ae.fromPortablePath(T.root),Ae.fromPortablePath(ie)))))),T.releaseRoots.size>0&&h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"Because of those files having been modified, the following workspaces may need to be released again (note that private workspaces are also shown here, because even though they won't be published, releasing them will allow us to flag their dependents for potential re-release):")),g.size>3?h.createElement(A,{marginTop:1},h.createElement(le,{workspaces:T.releaseRoots,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===0,radius:1,size:2,onFocusRequest:fe},[...T.releaseRoots].map(ie=>h.createElement(U,{key:ie.cwd,workspace:ie,decision:he.get(ie)||"undecided",setDecision:Z=>De(ie,Z)}))))),g.size>0?h.createElement(h.Fragment,null,h.createElement(A,{marginTop:1},h.createElement(p,{wrap:"wrap"},"The following workspaces depend on other workspaces that have been marked for release, and thus may need to be released as well:")),h.createElement(A,null,h.createElement(p,null,"(Press ",h.createElement(p,{bold:!0,color:"cyanBright"},"")," to move the focus between the workspace groups.)")),g.size>5?h.createElement(A,{marginTop:1},h.createElement(le,{workspaces:g,releases:he})):null,h.createElement(A,{marginTop:1,flexDirection:"column"},h.createElement(o,{active:me%2===1,radius:2,size:2,onFocusRequest:fe},[...g].map(ie=>h.createElement(U,{key:ie.cwd,workspace:ie,decision:he.get(ie)||"undecided",setDecision:Z=>De(ie,Z)}))))):null)},{versionFile:T},{stdin:this.context.stdin,stdout:this.context.stdout,stderr:this.context.stderr});if(typeof ue>"u")return 1;T.releases.clear();for(let[Ie,he]of ue)T.releases.set(Ie,he);await T.saveAll()}async executeStandard(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);return await o.restoreInstallState(),(await Nt.start({configuration:r,stdout:this.context.stdout},async u=>{let A=await gI(o);if(A===null||A.releaseRoots.size===0)return;if(A.root===null)throw new it("This command can only be run on Git repositories");if(u.reportInfo(0,`Your PR was started right after ${pe.pretty(r,A.baseHash.slice(0,7),"yellow")} ${pe.pretty(r,A.baseTitle,"magenta")}`),A.changedFiles.size>0){u.reportInfo(0,"You have changed the following files since then:"),u.reportSeparator();for(let D of A.changedFiles)u.reportInfo(null,`${pe.pretty(r,Ae.fromPortablePath(A.root),"gray")}${Ae.sep}${Ae.relative(Ae.fromPortablePath(A.root),Ae.fromPortablePath(D))}`)}let p=!1,h=!1,E=OF(A);if(E.size>0){p||u.reportSeparator();for(let D of E)u.reportError(0,`${G.prettyLocator(r,D.anchoredLocator)} has been modified but doesn't have a release strategy attached`);p=!0}let w=aD(A);for(let[D,x]of w)h||u.reportSeparator(),u.reportError(0,`${G.prettyLocator(r,D.anchoredLocator)} doesn't have a release strategy attached, but depends on ${G.prettyWorkspace(r,x)} which is planned for release.`),h=!0;(p||h)&&(u.reportSeparator(),u.reportInfo(0,"This command detected that at least some workspaces have received modifications without explicit instructions as to how they had to be released (if needed)."),u.reportInfo(0,"To correct these errors, run `yarn version check --interactive` then follow the instructions."))})).exitCode()}};Ke();Gt();var _F=et(ni());var EI=class extends ut{constructor(){super(...arguments);this.deferred=de.Boolean("-d,--deferred",{description:"Prepare the version to be bumped during the next release cycle"});this.immediate=de.Boolean("-i,--immediate",{description:"Bump the version immediately"});this.strategy=de.String()}static{this.paths=[["version"]]}static{this.usage=ot.Usage({category:"Release-related commands",description:"apply a new version to the current package",details:"\n This command will bump the version number for the given package, following the specified strategy:\n\n - If `major`, the first number from the semver range will be increased (`X.0.0`).\n - If `minor`, the second number from the semver range will be increased (`0.X.0`).\n - If `patch`, the third number from the semver range will be increased (`0.0.X`).\n - If prefixed by `pre` (`premajor`, ...), a `-0` suffix will be set (`0.0.0-0`).\n - If `prerelease`, the suffix will be increased (`0.0.0-X`); the third number from the semver range will also be increased if there was no suffix in the previous version.\n - If `decline`, the nonce will be increased for `yarn version check` to pass without version bump.\n - If a valid semver range, it will be used as new version.\n - If unspecified, Yarn will ask you for guidance.\n\n For more information about the `--deferred` flag, consult our documentation (https://yarnpkg.com/features/release-workflow#deferred-versioning).\n ",examples:[["Immediately bump the version to the next major","yarn version major"],["Prepare the version to be bumped to the next major","yarn version major --deferred"]]})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!a)throw new or(o.cwd,this.context.cwd);let n=r.get("preferDeferredVersions");this.deferred&&(n=!0),this.immediate&&(n=!1);let u=_F.default.valid(this.strategy),A=this.strategy==="decline",p;if(u)if(a.manifest.version!==null){let E=xG(a.manifest.version,this.strategy);E!==null?p=E:p=this.strategy}else p=this.strategy;else{let E=a.manifest.version;if(!A){if(E===null)throw new it("Can't bump the version if there wasn't a version to begin with - use 0.0.0 as initial version then run the command again.");if(typeof E!="string"||!_F.default.valid(E))throw new it(`Can't bump the version (${E}) if it's not valid semver`)}p=pI(this.strategy)}if(!n){let w=(await oD(o)).get(a);if(typeof w<"u"&&p!=="decline"){let D=MF(a.manifest.version,p);if(_F.default.lt(D,w))throw new it(`Can't bump the version to one that would be lower than the current deferred one (${w})`)}}let h=await gI(o,{allowEmpty:!0});return h.releases.set(a,p),await h.saveAll(),n?0:await this.cli.run(["version","apply"])}};var QDt={configuration:{deferredVersionFolder:{description:"Folder where are stored the versioning files",type:"ABSOLUTE_PATH",default:"./.yarn/versions"},preferDeferredVersions:{description:"If true, running `yarn version` will assume the `--deferred` flag unless `--immediate` is set",type:"BOOLEAN",default:!1}},commands:[mI,yI,EI]},FDt=QDt;var FG={};Kt(FG,{WorkspacesFocusCommand:()=>CI,WorkspacesForeachCommand:()=>wI,default:()=>NDt});Ke();Ke();Gt();var CI=class extends ut{constructor(){super(...arguments);this.json=de.Boolean("--json",!1,{description:"Format the output as an NDJSON stream"});this.production=de.Boolean("--production",!1,{description:"Only install regular dependencies by omitting dev dependencies"});this.all=de.Boolean("-A,--all",!1,{description:"Install the entire project"});this.workspaces=de.Rest()}static{this.paths=[["workspaces","focus"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"install a single workspace and its dependencies",details:"\n This command will run an install as if the specified workspaces (and all other workspaces they depend on) were the only ones in the project. If no workspaces are explicitly listed, the active one will be assumed.\n\n Note that this command is only very moderately useful when using zero-installs, since the cache will contain all the packages anyway - meaning that the only difference between a full install and a focused install would just be a few extra lines in the `.pnp.cjs` file, at the cost of introducing an extra complexity.\n\n If the `-A,--all` flag is set, the entire project will be installed. Combine with `--production` to replicate the old `yarn install --production`.\n "})}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd),n=await Wr.find(r);await o.restoreInstallState({restoreResolutions:!1});let u;if(this.all)u=new Set(o.workspaces);else if(this.workspaces.length===0){if(!a)throw new or(o.cwd,this.context.cwd);u=new Set([a])}else u=new Set(this.workspaces.map(A=>o.getWorkspaceByIdent(G.parseIdent(A))));for(let A of u)for(let p of this.production?["dependencies"]:_t.hardDependencies)for(let h of A.manifest.getForScope(p).values()){let E=o.tryWorkspaceByDescriptor(h);E!==null&&u.add(E)}for(let A of o.workspaces)u.has(A)?this.production&&A.manifest.devDependencies.clear():(A.manifest.installConfig=A.manifest.installConfig||{},A.manifest.installConfig.selfReferences=!1,A.manifest.dependencies.clear(),A.manifest.devDependencies.clear(),A.manifest.peerDependencies.clear(),A.manifest.scripts.clear());return await o.installWithNewReport({json:this.json,stdout:this.context.stdout},{cache:n,persistProject:!1})}};Ke();Ke();Ke();Gt();var II=et(Xo()),xve=et(lg());il();var wI=class extends ut{constructor(){super(...arguments);this.from=de.Array("--from",{description:"An array of glob pattern idents or paths from which to base any recursion"});this.all=de.Boolean("-A,--all",{description:"Run the command on all workspaces of a project"});this.recursive=de.Boolean("-R,--recursive",{description:"Run the command on the current workspace and all of its recursive dependencies"});this.worktree=de.Boolean("-W,--worktree",{description:"Run the command on all workspaces of the current worktree"});this.verbose=de.Counter("-v,--verbose",{description:"Increase level of logging verbosity up to 2 times"});this.parallel=de.Boolean("-p,--parallel",!1,{description:"Run the commands in parallel"});this.interlaced=de.Boolean("-i,--interlaced",!1,{description:"Print the output of commands in real-time instead of buffering it"});this.jobs=de.String("-j,--jobs",{description:"The maximum number of parallel tasks that the execution will be limited to; or `unlimited`",validator:pN([js(["unlimited"]),vw(fN(),[gN(),hN(1)])])});this.topological=de.Boolean("-t,--topological",!1,{description:"Run the command after all workspaces it depends on (regular) have finished"});this.topologicalDev=de.Boolean("--topological-dev",!1,{description:"Run the command after all workspaces it depends on (regular + dev) have finished"});this.include=de.Array("--include",[],{description:"An array of glob pattern idents or paths; only matching workspaces will be traversed"});this.exclude=de.Array("--exclude",[],{description:"An array of glob pattern idents or paths; matching workspaces won't be traversed"});this.publicOnly=de.Boolean("--no-private",{description:"Avoid running the command on private workspaces"});this.since=de.String("--since",{description:"Only include workspaces that have been changed since the specified ref.",tolerateBoolean:!0});this.dryRun=de.Boolean("-n,--dry-run",{description:"Print the commands that would be run, without actually running them"});this.commandName=de.String();this.args=de.Proxy()}static{this.paths=[["workspaces","foreach"]]}static{this.usage=ot.Usage({category:"Workspace-related commands",description:"run a command on all workspaces",details:"\n This command will run a given sub-command on current and all its descendant workspaces. Various flags can alter the exact behavior of the command:\n\n - If `-p,--parallel` is set, the commands will be ran in parallel; they'll by default be limited to a number of parallel tasks roughly equal to half your core number, but that can be overridden via `-j,--jobs`, or disabled by setting `-j unlimited`.\n\n - If `-p,--parallel` and `-i,--interlaced` are both set, Yarn will print the lines from the output as it receives them. If `-i,--interlaced` wasn't set, it would instead buffer the output from each process and print the resulting buffers only after their source processes have exited.\n\n - If `-t,--topological` is set, Yarn will only run the command after all workspaces that it depends on through the `dependencies` field have successfully finished executing. If `--topological-dev` is set, both the `dependencies` and `devDependencies` fields will be considered when figuring out the wait points.\n\n - If `-A,--all` is set, Yarn will run the command on all the workspaces of a project.\n\n - If `-R,--recursive` is set, Yarn will find workspaces to run the command on by recursively evaluating `dependencies` and `devDependencies` fields, instead of looking at the `workspaces` fields.\n\n - If `-W,--worktree` is set, Yarn will find workspaces to run the command on by looking at the current worktree.\n\n - If `--from` is set, Yarn will use the packages matching the 'from' glob as the starting point for any recursive search.\n\n - If `--since` is set, Yarn will only run the command on workspaces that have been modified since the specified ref. By default Yarn will use the refs specified by the `changesetBaseRefs` configuration option.\n\n - If `--dry-run` is set, Yarn will explain what it would do without actually doing anything.\n\n - The command may apply to only some workspaces through the use of `--include` which acts as a whitelist. The `--exclude` flag will do the opposite and will be a list of packages that mustn't execute the script. Both flags accept glob patterns (if valid Idents and supported by [micromatch](https://github.com/micromatch/micromatch)). Make sure to escape the patterns, to prevent your own shell from trying to expand them.\n\n The `-v,--verbose` flag can be passed up to twice: once to prefix output lines with the originating workspace's name, and again to include start/finish/timing log lines. Maximum verbosity is enabled by default in terminal environments.\n\n If the command is `run` and the script being run does not exist the child workspace will be skipped without error.\n ",examples:[["Publish all packages","yarn workspaces foreach -A npm publish --tolerate-republish"],["Run the build script on all descendant packages","yarn workspaces foreach -A run build"],["Run the build script on current and all descendant packages in parallel, building package dependencies first","yarn workspaces foreach -Apt run build"],["Run the build script on several packages and all their dependencies, building dependencies first","yarn workspaces foreach -Rpt --from '{workspace-a,workspace-b}' run build"]]})}static{this.schema=[Pw("all",Ku.Forbids,["from","recursive","since","worktree"],{missingIf:"undefined"}),dN(["all","recursive","since","worktree"],{missingIf:"undefined"})]}async execute(){let r=await ze.find(this.context.cwd,this.context.plugins),{project:o,workspace:a}=await Qt.find(r,this.context.cwd);if(!this.all&&!a)throw new or(o.cwd,this.context.cwd);await o.restoreInstallState();let n=this.cli.process([this.commandName,...this.args]),u=n.path.length===1&&n.path[0]==="run"&&typeof n.scriptName<"u"?n.scriptName:null;if(n.path.length===0)throw new it("Invalid subcommand name for iteration - use the 'run' keyword if you wish to execute a script");let A=Ee=>{this.dryRun&&this.context.stdout.write(`${Ee} +`)},p=()=>{let Ee=this.from.map(g=>II.default.matcher(g));return o.workspaces.filter(g=>{let me=G.stringifyIdent(g.anchoredLocator),Ce=g.relativeCwd;return Ee.some(fe=>fe(me)||fe(Ce))})},h=[];if(this.since?(A("Option --since is set; selecting the changed workspaces as root for workspace selection"),h=Array.from(await ra.fetchChangedWorkspaces({ref:this.since,project:o}))):this.from?(A("Option --from is set; selecting the specified workspaces"),h=[...p()]):this.worktree?(A("Option --worktree is set; selecting the current workspace"),h=[a]):this.recursive?(A("Option --recursive is set; selecting the current workspace"),h=[a]):this.all&&(A("Option --all is set; selecting all workspaces"),h=[...o.workspaces]),this.dryRun&&!this.all){for(let Ee of h)A(` +- ${Ee.relativeCwd} + ${G.prettyLocator(r,Ee.anchoredLocator)}`);h.length>0&&A("")}let E;if(this.recursive?this.since?(A("Option --recursive --since is set; recursively selecting all dependent workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependents()]).flat())):(A("Option --recursive is set; recursively selecting all transitive dependencies"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceDependencies()]).flat())):this.worktree?(A("Option --worktree is set; recursively selecting all nested workspaces"),E=new Set(h.map(Ee=>[...Ee.getRecursiveWorkspaceChildren()]).flat())):E=null,E!==null&&(h=[...new Set([...h,...E])],this.dryRun))for(let Ee of E)A(` +- ${Ee.relativeCwd} + ${G.prettyLocator(r,Ee.anchoredLocator)}`);let w=[],D=!1;if(u?.includes(":")){for(let Ee of o.workspaces)if(Ee.manifest.scripts.has(u)&&(D=!D,D===!1))break}for(let Ee of h){if(u&&!Ee.manifest.scripts.has(u)&&!D&&!(await hn.getWorkspaceAccessibleBinaries(Ee)).has(u)){A(`Excluding ${Ee.relativeCwd} because it doesn't have a "${u}" script`);continue}if(!(u===r.env.npm_lifecycle_event&&Ee.cwd===a.cwd)){if(this.include.length>0&&!II.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.include)&&!II.default.isMatch(Ee.relativeCwd,this.include)){A(`Excluding ${Ee.relativeCwd} because it doesn't match the --include filter`);continue}if(this.exclude.length>0&&(II.default.isMatch(G.stringifyIdent(Ee.anchoredLocator),this.exclude)||II.default.isMatch(Ee.relativeCwd,this.exclude))){A(`Excluding ${Ee.relativeCwd} because it matches the --exclude filter`);continue}if(this.publicOnly&&Ee.manifest.private===!0){A(`Excluding ${Ee.relativeCwd} because it's a private workspace and --no-private was set`);continue}w.push(Ee)}}if(this.dryRun)return 0;let x=this.verbose??(this.context.stdout.isTTY?1/0:0),C=x>0,T=x>1,L=this.parallel?this.jobs==="unlimited"?1/0:Number(this.jobs)||Math.ceil(Xi.availableParallelism()/2):1,U=L===1?!1:this.parallel,J=U?this.interlaced:!0,te=(0,xve.default)(L),le=new Map,ce=new Set,ue=0,Ie=null,he=!1,De=await Nt.start({configuration:r,stdout:this.context.stdout,includePrefix:!1},async Ee=>{let g=async(me,{commandIndex:Ce})=>{if(he)return-1;!U&&T&&Ce>1&&Ee.reportSeparator();let fe=RDt(me,{configuration:r,label:C,commandIndex:Ce}),[ie,Z]=bve(Ee,{prefix:fe,interlaced:J}),[Pe,Re]=bve(Ee,{prefix:fe,interlaced:J});try{T&&Ee.reportInfo(null,`${fe?`${fe} `:""}Process started`);let ht=Date.now(),q=await this.cli.run([this.commandName,...this.args],{cwd:me.cwd,stdout:ie,stderr:Pe})||0;ie.end(),Pe.end(),await Z,await Re;let nt=Date.now();if(T){let Ne=r.get("enableTimers")?`, completed in ${pe.pretty(r,nt-ht,pe.Type.DURATION)}`:"";Ee.reportInfo(null,`${fe?`${fe} `:""}Process exited (exit code ${q})${Ne}`)}return q===130&&(he=!0,Ie=q),q}catch(ht){throw ie.end(),Pe.end(),await Z,await Re,ht}};for(let me of w)le.set(me.anchoredLocator.locatorHash,me);for(;le.size>0&&!Ee.hasErrors();){let me=[];for(let[Z,Pe]of le){if(ce.has(Pe.anchoredDescriptor.descriptorHash))continue;let Re=!0;if(this.topological||this.topologicalDev){let ht=this.topologicalDev?new Map([...Pe.manifest.dependencies,...Pe.manifest.devDependencies]):Pe.manifest.dependencies;for(let q of ht.values()){let nt=o.tryWorkspaceByDescriptor(q);if(Re=nt===null||!le.has(nt.anchoredLocator.locatorHash),!Re)break}}if(Re&&(ce.add(Pe.anchoredDescriptor.descriptorHash),me.push(te(async()=>{let ht=await g(Pe,{commandIndex:++ue});return le.delete(Z),ce.delete(Pe.anchoredDescriptor.descriptorHash),{workspace:Pe,exitCode:ht}})),!U))break}if(me.length===0){let Z=Array.from(le.values()).map(Pe=>G.prettyLocator(r,Pe.anchoredLocator)).join(", ");Ee.reportError(3,`Dependency cycle detected (${Z})`);return}let Ce=await Promise.all(me);Ce.forEach(({workspace:Z,exitCode:Pe})=>{Pe!==0&&Ee.reportError(0,`The command failed in workspace ${G.prettyLocator(r,Z.anchoredLocator)} with exit code ${Pe}`)});let ie=Ce.map(Z=>Z.exitCode).find(Z=>Z!==0);(this.topological||this.topologicalDev)&&typeof ie<"u"&&Ee.reportError(0,"The command failed for workspaces that are depended upon by other workspaces; can't satisfy the dependency graph")}});return Ie!==null?Ie:De.exitCode()}};function bve(t,{prefix:e,interlaced:r}){let o=t.createStreamReporter(e),a=new qe.DefaultStream;a.pipe(o,{end:!1}),a.on("finish",()=>{o.end()});let n=new Promise(A=>{o.on("finish",()=>{A(a.active)})});if(r)return[a,n];let u=new qe.BufferStream;return u.pipe(a,{end:!1}),u.on("finish",()=>{a.end()}),[u,n]}function RDt(t,{configuration:e,commandIndex:r,label:o}){if(!o)return null;let n=`[${G.stringifyIdent(t.anchoredLocator)}]:`,u=["#2E86AB","#A23B72","#F18F01","#C73E1D","#CCE2A3"],A=u[r%u.length];return pe.pretty(e,n,A)}var TDt={commands:[CI,wI]},NDt=TDt;var lE=()=>({modules:new Map([["@yarnpkg/cli",S2],["@yarnpkg/core",P2],["@yarnpkg/fslib",Aw],["@yarnpkg/libzip",V1],["@yarnpkg/parsers",Ew],["@yarnpkg/shell",e2],["clipanion",Qw],["semver",LDt],["typanion",Yo],["@yarnpkg/plugin-essentials",MH],["@yarnpkg/plugin-compat",jH],["@yarnpkg/plugin-constraints",a6],["@yarnpkg/plugin-dlx",l6],["@yarnpkg/plugin-exec",A6],["@yarnpkg/plugin-file",p6],["@yarnpkg/plugin-git",OH],["@yarnpkg/plugin-github",d6],["@yarnpkg/plugin-http",m6],["@yarnpkg/plugin-init",y6],["@yarnpkg/plugin-interactive-tools",mj],["@yarnpkg/plugin-link",yj],["@yarnpkg/plugin-nm",t5],["@yarnpkg/plugin-npm",$5],["@yarnpkg/plugin-npm-cli",lG],["@yarnpkg/plugin-pack",V5],["@yarnpkg/plugin-patch",gG],["@yarnpkg/plugin-pnp",jj],["@yarnpkg/plugin-pnpm",yG],["@yarnpkg/plugin-stage",DG],["@yarnpkg/plugin-typescript",PG],["@yarnpkg/plugin-version",QG],["@yarnpkg/plugin-workspace-tools",FG]]),plugins:new Set(["@yarnpkg/plugin-essentials","@yarnpkg/plugin-compat","@yarnpkg/plugin-constraints","@yarnpkg/plugin-dlx","@yarnpkg/plugin-exec","@yarnpkg/plugin-file","@yarnpkg/plugin-git","@yarnpkg/plugin-github","@yarnpkg/plugin-http","@yarnpkg/plugin-init","@yarnpkg/plugin-interactive-tools","@yarnpkg/plugin-link","@yarnpkg/plugin-nm","@yarnpkg/plugin-npm","@yarnpkg/plugin-npm-cli","@yarnpkg/plugin-pack","@yarnpkg/plugin-patch","@yarnpkg/plugin-pnp","@yarnpkg/plugin-pnpm","@yarnpkg/plugin-stage","@yarnpkg/plugin-typescript","@yarnpkg/plugin-version","@yarnpkg/plugin-workspace-tools"])});function Fve({cwd:t,pluginConfiguration:e}){let r=new Vo({binaryLabel:"Yarn Package Manager",binaryName:"yarn",binaryVersion:nn??""});return Object.assign(r,{defaultContext:{...Vo.defaultContext,cwd:t,plugins:e,quiet:!1,stdin:process.stdin,stdout:process.stdout,stderr:process.stderr}})}function ODt(t){if(qe.parseOptionalBoolean(process.env.YARN_IGNORE_NODE))return!0;let r=process.versions.node,o=">=18.12.0";if(Ur.satisfiesWithPrereleases(r,o))return!0;let a=new it(`This tool requires a Node version compatible with ${o} (got ${r}). Upgrade Node, or set \`YARN_IGNORE_NODE=1\` in your environment.`);return Vo.defaultContext.stdout.write(t.error(a)),!1}async function Rve({selfPath:t,pluginConfiguration:e}){return await ze.find(Ae.toPortablePath(process.cwd()),e,{strict:!1,usePathCheck:t})}function MDt(t,e,{yarnPath:r}){if(!ae.existsSync(r))return t.error(new Error(`The "yarn-path" option has been set, but the specified location doesn't exist (${r}).`)),1;process.on("SIGINT",()=>{});let o={stdio:"inherit",env:{...process.env,YARN_IGNORE_PATH:"1"}};try{(0,kve.execFileSync)(process.execPath,[Ae.fromPortablePath(r),...e],o)}catch(a){return a.status??1}return 0}function UDt(t,e){let r=null,o=e;return e.length>=2&&e[0]==="--cwd"?(r=Ae.toPortablePath(e[1]),o=e.slice(2)):e.length>=1&&e[0].startsWith("--cwd=")?(r=Ae.toPortablePath(e[0].slice(6)),o=e.slice(1)):e[0]==="add"&&e[e.length-2]==="--cwd"&&(r=Ae.toPortablePath(e[e.length-1]),o=e.slice(0,e.length-2)),t.defaultContext.cwd=r!==null?K.resolve(r):K.cwd(),o}function _Dt(t,{configuration:e}){if(!e.get("enableTelemetry")||Qve.isCI||!process.stdout.isTTY)return;ze.telemetry=new sE(e,"puba9cdc10ec5790a2cf4969dd413a47270");let o=/^@yarnpkg\/plugin-(.*)$/;for(let a of e.plugins.keys())oE.has(a.match(o)?.[1]??"")&&ze.telemetry?.reportPluginName(a);t.binaryVersion&&ze.telemetry.reportVersion(t.binaryVersion)}function Tve(t,{configuration:e}){for(let r of e.plugins.values())for(let o of r.commands||[])t.register(o)}async function HDt(t,e,{selfPath:r,pluginConfiguration:o}){if(!ODt(t))return 1;let a=await Rve({selfPath:r,pluginConfiguration:o}),n=a.get("yarnPath"),u=a.get("ignorePath");if(n&&!u)return MDt(t,e,{yarnPath:n});delete process.env.YARN_IGNORE_PATH;let A=UDt(t,e);_Dt(t,{configuration:a}),Tve(t,{configuration:a});let p=t.process(A,t.defaultContext);return p.help||ze.telemetry?.reportCommandName(p.path.join(" ")),await t.run(p,t.defaultContext)}async function qhe({cwd:t=K.cwd(),pluginConfiguration:e=lE()}={}){let r=Fve({cwd:t,pluginConfiguration:e}),o=await Rve({pluginConfiguration:e,selfPath:null});return Tve(r,{configuration:o}),r}async function Lk(t,{cwd:e=K.cwd(),selfPath:r,pluginConfiguration:o}){let a=Fve({cwd:e,pluginConfiguration:o});function n(){Vo.defaultContext.stdout.write(`ERROR: Yarn is terminating due to an unexpected empty event loop. +Please report this issue at https://github.com/yarnpkg/berry/issues.`)}process.once("beforeExit",n);try{process.exitCode=42,process.exitCode=await HDt(a,t,{selfPath:r,pluginConfiguration:o})}catch(u){Vo.defaultContext.stdout.write(a.error(u)),process.exitCode=1}finally{process.off("beforeExit",n),await ae.rmtempPromise()}}Lk(process.argv.slice(2),{cwd:K.cwd(),selfPath:Ae.toPortablePath(Ae.resolve(process.argv[1])),pluginConfiguration:lE()});})(); +/** + @license + Copyright (c) 2015, Rebecca Turner + + Permission to use, copy, modify, and/or distribute this software for any + purpose with or without fee is hereby granted, provided that the above + copyright notice and this permission notice appear in all copies. + + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH + REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND + FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, + INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM + LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR + OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + */ +/** + @license + Copyright Node.js contributors. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to + deal in the Software without restriction, including without limitation the + rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + sell copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS + IN THE SOFTWARE. +*/ +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +/** + @license + Copyright Joyent, Inc. and other Node contributors. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to permit + persons to whom the Software is furnished to do so, subject to the + following conditions: + + The above copyright notice and this permission notice shall be included + in all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ +/*! Bundled license information: + +is-number/index.js: + (*! + * is-number + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Released under the MIT License. + *) + +to-regex-range/index.js: + (*! + * to-regex-range + * + * Copyright (c) 2015-present, Jon Schlinkert. + * Released under the MIT License. + *) + +fill-range/index.js: + (*! + * fill-range + * + * Copyright (c) 2014-present, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-extglob/index.js: + (*! + * is-extglob + * + * Copyright (c) 2014-2016, Jon Schlinkert. + * Licensed under the MIT License. + *) + +is-glob/index.js: + (*! + * is-glob + * + * Copyright (c) 2014-2017, Jon Schlinkert. + * Released under the MIT License. + *) + +queue-microtask/index.js: + (*! queue-microtask. MIT License. Feross Aboukhadijeh *) + +run-parallel/index.js: + (*! run-parallel. MIT License. Feross Aboukhadijeh *) + +git-url-parse/lib/index.js: + (*! + * buildToken + * Builds OAuth token prefix (helper function) + * + * @name buildToken + * @function + * @param {GitUrl} obj The parsed Git url object. + * @return {String} token prefix + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) + +react/cjs/react.production.min.js: + (** @license React v17.0.2 + * react.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +scheduler/cjs/scheduler.production.min.js: + (** @license React v0.20.2 + * scheduler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +react-reconciler/cjs/react-reconciler.production.min.js: + (** @license React v0.26.2 + * react-reconciler.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + *) + +is-windows/index.js: + (*! + * is-windows + * + * Copyright © 2015-2018, Jon Schlinkert. + * Released under the MIT License. + *) +*/ diff --git a/.yarnrc.yml b/.yarnrc.yml new file mode 100644 index 0000000..7f7c8cd --- /dev/null +++ b/.yarnrc.yml @@ -0,0 +1,15 @@ +compressionLevel: mixed + +enableGlobalCache: false + +enableImmutableInstalls: false + +enableProgressBars: false + +logFilters: + - code: YN0013 + level: discard + +nodeLinker: node-modules + +yarnPath: .yarn/releases/yarn-4.6.0.cjs diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..b9a90a4 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,4667 @@ +# CHANGELOG + +## 16.5.4 Dec 9, 2025 + +Changes: + +- Bump pezkuwi-js dependencies ([#6233](https://github.com/pezkuwichain/pezkuwi-api/pull/6233)) + + +## 16.5.3 Nov 25, 2025 + +Changes: + +- Bump pezkuwi dependencies ([#6232](https://github.com/pezkuwichain/pezkuwi-api/pull/6232)) +- fix: resolve incorrect author caused by multiple preRuntime logs ([#6230](https://github.com/pezkuwichain/pezkuwi-api/pull/6230)) +- fix: filter contract events by address before decoding ([#6224](https://github.com/pezkuwichain/pezkuwi-api/pull/6224)) + + +## 16.5.2 Nov 11, 2025 + +Changes: + +- Bump @pezkuwi dependencies ([#6222](https://github.com/pezkuwichain/pezkuwi-api/pull/6222)) +- Fix: add phantom export to prevent empty types.ts compilation error ([#6221](https://github.com/pezkuwichain/pezkuwi-api/pull/6221)) + + +## 16.5.1 Nov 6, 2025 + +Changes: + +- Upgrade Pezkuwi and Pezkuwi Asset Hub types for 2000000 ([#6219](https://github.com/pezkuwichain/pezkuwi-api/pull/6219)) +- Upgrade Zagros and Zagros Asset Hub types for 1009003 ([#6218](https://github.com/pezkuwichain/pezkuwi-api/pull/6218)) + + +## 16.4.9 Oct 14, 2025 + +Changes: + +- Bump @pezkuwi/common deps to v13.5.7 ([#6216](https://github.com/pezkuwichain/pezkuwi-api/pull/6216)) + +Contributions: + +- Ensure rpc-core can correctly decode types, even if multiple types share the same name ([#6089](https://github.com/pezkuwichain/pezkuwi-api/pull/6089)) + + +## 16.4.8 Sep 23, 2025 + +Changes: + +- refactor: retrieve contract address from Instantiated event ([#6210](https://github.com/pezkuwichain/pezkuwi-api/pull/6210)) + + +## 16.4.7 Sep 15, 2025 + +Changes: + +- fix: Set Statemint xcm types to v4 to patch decoding ([#6208](https://github.com/pezkuwichain/pezkuwi-api/pull/6208)) +- fix: Handle optional chaining for claimed rewards in staker rewards functions ([#6205](https://github.com/pezkuwichain/pezkuwi-api/pull/6205)) + + +## 16.4.6 Aug 26, 2025 + +Changes: + +- Upgrade bizinikiwi types to stable2506-1 ([#6201](https://github.com/pezkuwichain/pezkuwi-api/pull/6201)) +- Bump @pezkuwi/common deps ([#6202](https://github.com/pezkuwichain/pezkuwi-api/pull/6202)) + + +## 16.4.5 Aug 19, 2025 + +Changes: + +- Fix transferable balance calculation ([#6197](http://github.com/pezkuwichain/pezkuwi-api/pull/6197)) + + +## 16.4.4 Aug 13, 2025 + +Changes: + +- bump pezkuwi/common to 13.5.5 ([#6195](https://github.com/pezkuwichain/pezkuwi-api/pull/6195)) + + +## 16.4.3 Jul 29, 2025 + +Changes: + +- Bump @pezkuwi/common to 13.5.4 ([#6193](https://github.com/pezkuwichain/pezkuwi-api/pull/6193)) + + +## 16.4.2 Jul 22, 2025 + +Changes: + +- Add validation for cache capacity and TTL in LRUCache ([#6187](https://github.com/pezkuwichain/pezkuwi-api/pull/6187)) + + +## 16.4.1 Jul 8, 2025 + +Changes: + +- Update Zagros types to 1.6.0 ([#6175](https://github.com/pezkuwichain/pezkuwi-api/pull/6175)) +- fix(api-contracts): correctly decode pallet_revive events ([#6181](https://github.com/pezkuwichain/pezkuwi-api/pull/6181)) + + +## 16.3.1 Jul 1, 2025 + +Changes: + +- Update Bizinikiwi types to Pezkuwi stable2503-5 ([#6172](https://github.com/pezkuwichain/pezkuwi-api/pull/6172)) +- Update Pezkuwi types to pezkuwi-fellows/runtimes release 1.6.0 ([#6173](https://github.com/pezkuwichain/pezkuwi-api/pull/6173)) +- Update AssetHub Pezkuwi types to 1.6.0 ([#6174](https://github.com/pezkuwichain/pezkuwi-api/pull/6174)) +- Update AssetHub Zagros types to 1.6.0 ([#6176](https://github.com/pezkuwichain/pezkuwi-api/pull/6176)) +- Fix signature issue in signAsync + send flow [#6177](https://github.com/pezkuwichain/pezkuwi-api/pull/6177) +- Bump @pezkuwi/common to 13.5.2 ([#6179](https://github.com/pezkuwichain/pezkuwi-api/pull/6179)) + + +## 16.2.2 Jun 17, 2025 + +Changes: + +- feat(types-codec): Add maximum depth limit in decodeU8a functions ([#6168](https://github.com/pezkuwichain/pezkuwi-api/pull/6168)) +- bump pezkuwijs/common to 13.5.2 ([#6170](https://github.com/pezkuwichain/pezkuwi-api/pull/6170)) + +## 16.2.1 Jun 10, 2025 + +Contributed: + +- feat(api-contract): add support for ink! v6 and pallet-revive compatibility ([#6158](https://github.com/pezkuwichain/pezkuwi-api/pull/6158)) + + +## 16.1.2 Jun 4, 2025 + +Changes: + +- Use ExtrinsicV4 by default ([#6164](https://github.com/pezkuwichain/pezkuwi-api/pull/6164)) + + +## 16.1.1 May 29, 2025 + +Changes: + +- Update AssetHub types to 1.5.1 release ([#6155](https://github.com/pezkuwichain/pezkuwi-api/pull/6155)) +- fix: correct BitVec length calculation from bytes to bits in codec ([#6152](https://github.com/pezkuwichain/pezkuwi-api/pull/6152)) +- Update README with metadata retrieval instructions and testing caveats ([#6156](https://github.com/pezkuwichain/pezkuwi-api/pull/6156)) +- Initialize RpcCore with configured ttl ([#6160](https://github.com/pezkuwichain/pezkuwi-api/pull/6160)) + + +## 16.0.1 May 19, 2025 + +Breaking Changes: +- With the upgrade to Metadata v16, several fields have been removed or replaced. The following fields no longer exist in the updated metadata definitions: + - `type`: This field has been completely removed in Metadata. + - `version`: Previously part of `ExtrinsicMetadata`. Replaced by `versions`, which now holds an array `Vec` of supported extrinsic versions instead of a single value. + - `extraType`: This field has been completely removed in `ExtrinsicMetadata`. + - `signedExtensions`: Previously part of `ExtrinsicMetadata`. Replaced by `transactionExtensions`, which provides a more structured definition of extensions, and `transactionExtensionsByVersion`, mapping versions to active extensions. + +Changes: + +- Metadata v16 ([#6130](https://github.com/pezkuwichain/pezkuwi-api/pull/6130)) +- Add dryRunApi v2 definition ([#6144](https://github.com/pezkuwichain/pezkuwi-api/pull/6144)) +- Add type augmentation for AssetHub ([#6148](https://github.com/pezkuwichain/pezkuwi-api/pull/6148)) +- Upgrade pezkuwi/common to 13.5.1 ([#6150](https://github.com/pezkuwichain/pezkuwi-api/pull/6150)) + + +## 15.10.2 May 13, 2025 + +Changes: + +- Fix StagingXcmV5Junctions generation ([#6145](https://github.com/pezkuwichain/pezkuwi-api/pull/6145)) + + +## 15.10.1 May 13, 2025 + +Changes: + +- Update Bizinikiwi types for pezkuwi-sdk v2503-2-rc1 ([#6137](https://github.com/pezkuwichain/pezkuwi-api/pull/6137)) +- Upgrade Zagros types to 1.5.0 ([#6139](https://github.com/pezkuwichain/pezkuwi-api/pull/6139)) +- Upgrade Pezkuwi types to 1.5.0 ([#6140](https://github.com/pezkuwichain/pezkuwi-api/pull/6140)) +- Improve Xcm V5 support ([#6142](https://github.com/pezkuwichain/pezkuwi-api/pull/6142)) + + +## 15.9.3 May 6, 2025 + +Contributed: + +- Throws detailed error information ([#6116](https://github.com/pezkuwichain/pezkuwi-api/pull/6116)) + + +## 15.9.2 Apr 15, 2025 + +Changes: + +- Enhance property access validation in Struct decoding ([#6126](https://github.com/pezkuwichain/pezkuwi-api/pull/6126)) +- Improve type registry known defaults implementation to a Map ([#6127](https://github.com/pezkuwichain/pezkuwi-api/pull/6127)) +- bump pezkuwi/common to 13.4.4 ([#6128](https://github.com/pezkuwichain/pezkuwi-api/pull/6128)) + + +## 15.9.1 Mar 27, 2025 + +Changes: + +- Fix signAsync() docs ([#6121](https://github.com/pezkuwichain/pezkuwi-api/pull/6121)) +- Make TTL configurable on WsProvider & HttpProvider ([#6123](https://github.com/pezkuwichain/pezkuwi-api/pull/6123)) + + +## 15.8.1 Mar 10, 2025 + +Changes: + +- Add derives to obtain Extrinsic Information ([#6113](https://github.com/pezkuwichain/pezkuwi-api/pull/6113)) + + +## 15.7.2 Mar 3, 2025 + +Changes: + +- Update asset-hub type-support metadata files for v1.4.0 ([#6105](https://github.com/pezkuwichain/pezkuwi-api/pull/6105)) +- Document available Api Derives ([#6106](https://github.com/pezkuwichain/pezkuwi-api/pull/6106)) +- Fix derives base path in typegen ([#6107](https://github.com/pezkuwichain/pezkuwi-api/pull/6107)) + + +## 15.7.1 Feb 25, 2025 + +Changes: + +- Upgrade Zagros types to 1.4.0 ([#6098](https://github.com/pezkuwichain/pezkuwi-api/pull/6098)) +- Api-Derives documentation generator ([#6099](https://github.com/pezkuwichain/pezkuwi-api/pull/6099)) +- Upgrade Pezkuwi types to v1.4.0 ([#6100](https://github.com/pezkuwichain/pezkuwi-api/pull/6100)) +- Add WeightReclaim transaction extension to known extensions ([#6102](https://github.com/pezkuwichain/pezkuwi-api/pull/6102)) +- Add zagros code upgrades ([#6103 ](https://github.com/pezkuwichain/pezkuwi-api/pull/6103)) + + +## 15.6.1 Feb 17, 2025 + +Changes: + +- Log Http/Ws request on error [#6091](https://github.com/pezkuwichain/pezkuwi-api/pull/6091) +- Only identify Struct as empty when it has no keys. [#6092](https://github.com/pezkuwichain/pezkuwi-api/pull/6092) +- Check for api.query.identity in getSubIdentities [#6093](https://github.com/pezkuwichain/pezkuwi-api/pull/6093) +- Upgrade common to 13.4.3 [#6095](https://github.com/pezkuwichain/pezkuwi-api/pull/6095) + + +## 15.5.2 Feb 3, 2025 + +Changes: + +- Ensure assetId is handled correctly when addSignature is used ([#6083](https://github.com/pezkuwichain/pezkuwi-api/pull/6083)) + - NOTE: This is specific to signers but also extends to `class GenericExtrinsicPayloadV4`. +- Fix typegen adding invalid imports ([#6082](https://github.com/pezkuwichain/pezkuwi-api/pull/6082)) +- Include missing known keys ([#6084](https://github.com/pezkuwichain/pezkuwi-api/pull/6084)) + + +## 15.5.1 Jan 27, 2025 + +Contributed: + +- Add `offchain_localStorageClear` RPC method ([#6070](https://github.com/pezkuwichain/pezkuwi-api/pull/6070)) (Thanks to https://github.com/khssnv) + +Changes: + +- Update pezkuwi, zagros types-support for rpc, and ver ([#6078](https://github.com/pezkuwichain/pezkuwi-api/pull/6078)) +- Update Asset-Hub types-support rpc, and ver ([#6077](https://github.com/pezkuwichain/pezkuwi-api/pull/6077)) +- Patch typegen query to prevent it from adding invalid import ([#6073](https://github.com/pezkuwichain/pezkuwi-api/pull/6073)) +- Extend `GenericAccountId` description ([#6072](https://github.com/pezkuwichain/pezkuwi-api/pull/6072)) + +## 15.4.1 Jan 20, 2025 + +Changes: + +- Allow api.derive.accounts.identity() to obtain SubIdentities ([#6066](https://github.com/pezkuwichain/pezkuwi-api/pull/6066)) + - Adds a new field `subs` to the `DeriveAccountRegistration` output of `api.derive.accounts.identity()` +- Add ElectionResult type override ([#6067](https://github.com/pezkuwichain/pezkuwi-api/pull/6067)) +- Bump dev to 0.83.2 ([#6069](https://github.com/pezkuwichain/pezkuwi-api/pull/6069)) + - Increases performance of the test-runner, both locally, and in the CI + + +## 15.3.1 Jan 11, 2025 + +Changes: + +- Set typegen scripts for Docs to use v15 ([#6060](https://github.com/pezkuwichain/pezkuwi-api/pull/6060)) +- Add Asset hub options to pezkuwi-types-internal-metadata ([#6062](https://github.com/pezkuwichain/pezkuwi-api/pull/6062)) +- Add metadataVer cli arg for pezkuwi-types-internal-metadata, and ensure backwards compatibility with v14 ([#](https://github.com/pezkuwichain/pezkuwi-api/pull/6063)) + - This adds `--metadataVer` to `pezkuwi-types-internal-metadata`. It is meant to be used along side `--endpoint` which will allow for the use of metadata versions above v14. + + +## 15.2.1 Jan 6, 2025 + +Changes: + +- Give compatibility for nodejs v22 + - Update common to 13.3.1 ([#6057](https://github.com/pezkuwichain/pezkuwi-api/pull/6057)) + - Fixes an issue with `getSeparator` for nodejs 22.12 +- Bump dev to 0.82.4 ([#6056](https://github.com/pezkuwichain/pezkuwi-api/pull/6056)) +- Update Headers to 2025 ([#6052](https://github.com/pezkuwichain/pezkuwi-api/pull/6052)) +- Bump yarn to 4.6.0 ([#6050](https://github.com/pezkuwichain/pezkuwi-api/pull/6050)) + + +## 15.1.1 Dec 30, 2024 + +Changes: + +- Update AssetHub types-support metadata ([#6046](https://github.com/pezkuwichain/pezkuwi-api/pull/6046)) +- Update Pezkuwi and Zagros types-support metadata ([#6047](https://github.com/pezkuwichain/pezkuwi-api/pull/6047)) +- Update Bizinikiwi types with pezkuwi-stable2412 ([#6048](https://github.com/pezkuwichain/pezkuwi-api/pull/6048)) + + +## 15.0.2 Dec 13, 2024 + +Changes: + +- Fix metadata on init when its value is u32 max ([#6043](https://github.com/pezkuwichain/pezkuwi-api/pull/6043)) + - This ensures runtime api information is correctly generated and the correct metadata is used as part of the registry. At the moment this is only an issue on zagros asset hub, as reported by users. + + +## 15.0.1 Nov 27, 2024 + +Breaking Changes: + +- Allow external signers to modify the payload ([#6030](https://github.com/pezkuwichain/pezkuwi-api/pull/6030)) (Thanks to https://github.com/Tbaut) + - Add `allowCallDataAlteration` to `SignatureOptions`, and `SignerOptions`. This will default to true when its not inputted. This is strictly tied to signing payloads via external signers. + +Contributed: + +- fix(ExtrinsicPayload): decode assetId with and without option ([#6037](https://github.com/pezkuwichain/pezkuwi-api/pull/6037)) (Thanks to https://github.com/carlosala) + +Changes: + +- Adjust ExtrinsicV5 to fit current spec ([#6029](https://github.com/pezkuwichain/pezkuwi-api/pull/6029)) + - This removes the `signed` functionality for ExtrinsicV5 since it is no longer supported +- Update docs for WsProvider, and RpcCore ([#6031](https://github.com/pezkuwichain/pezkuwi-api/pull/6031)) +- Add testing for assetId access from ExtrinsicPayload ([#6033](https://github.com/pezkuwichain/pezkuwi-api/pull/6033)) +- Update Bizinikiwi types to 1.16.2 ([#6034](https://github.com/pezkuwichain/pezkuwi-api/pull/6034)) + + +## 14.3.1 Nov 11, 2024 + +Changes: + +- Add rpcCacheCapacity option to ApiOptions ([#6020](https://github.com/pezkuwichain/pezkuwi-api/pull/6020)) +- Update metadata script for types-support ([#6021](https://github.com/pezkuwichain/pezkuwi-api/pull/6021)) +- Add AssetHub to types-support and test generation ([#6022](https://github.com/pezkuwichain/pezkuwi-api/pull/6022)) +- Fix node v22 testing compatibility w/ dev bump ([#6024](https://github.com/pezkuwichain/pezkuwi-api/pull/6024)) +- Fix isClaimed for edgecase with non validator Ids ([#6027](https://github.com/pezkuwichain/pezkuwi-api/pull/6027)) +- Fix isClaimed in api.derive.staking.{stakerRewards, stakerRewardsMultiEras, stakerRewardsMulti} ([#6026](https://github.com/pezkuwichain/pezkuwi-api/pull/6026)) +- Upgrade common to 13.2.3 ([#6025](https://github.com/pezkuwichain/pezkuwi-api/pull/6025)) + + +## 14.2.3 Nov 5, 2024 + +Changes: + +- Increase RPC-CORE default cache capacity ([#6016](https://github.com/pezkuwichain/pezkuwi-api/pull/6016)) +- Set CI to use Node.js Iron (v20) ([#6018](https://github.com/pezkuwichain/pezkuwi-api/pull/6018)) + + +## 14.2.2 Oct 31, 2024 + +Changes: + +- fix: update LRUcache to not keep thread ([#6013](https://github.com/pezkuwichain/pezkuwi-api/pull/6013)) +- Adjust `api.derive.staking.nextElected` to use erasStakersOverview ([#6011](https://github.com/pezkuwichain/pezkuwi-api/pull/6011)) + + +## 14.2.1 Oct 28, 2024 + +Changes: + +- Add isClaimed field to api.derive.staking._stakerRewards ([#6007](https://github.com/pezkuwichain/pezkuwi-api/pull/6007)) +- Upgrade pezkuwi/common to 13.1.2 ([#6008](https://github.com/pezkuwichain/pezkuwi-api/pull/6008)) +- Bump yarn to 4.5.1 ([#6005](https://github.com/pezkuwichain/pezkuwi-api/pull/6005)) + + +## 14.1.1 Oct 21, 2024 + +Changes: + +- Fix deno build in CI to version 1.42.x ([#5999](https://github.com/pezkuwichain/pezkuwi-api/pull/5999)) +- Add LRU TTL cache implementation ([#5997](https://github.com/pezkuwichain/pezkuwi-api/pull/5997)) + - This focuses on performance advancements and less memory usage +- Update non-pjs deps ([#6000](https://github.com/pezkuwichain/pezkuwi-api/pull/6000)) +- Set static metadata to v15 and update typegen to generate runtime apis and use v15 metadata ([#5987](https://github.com/pezkuwichain/pezkuwi-api/pull/5987)) + - Additionally: This does update the static types to be inline with pezkuwi 1003003 +- Bump dev to 0.81.2 ([#6001](https://github.com/pezkuwichain/pezkuwi-api/pull/6001)) + - Allows for correct CJS targetting +- Bump common to 13.2.1 ([#6002](https://github.com/pezkuwichain/pezkuwi-api/pull/6002)) + + +## 14.0.1 Oct 2, 2024 + +Changes: + +- TransactionExtension, ExtrinsicV5 + - This is a very large feature that gives support for Extrinsic V5. This is not a breaking change, but because of the impact it has it is a Major bump. + - This PR acts as a forward compatible feature that still focuses on v4, but allows for the use of v5 when: + a: The metadata extrinsic version is set to 5 + b: The extrinsic version is set to 5 when manually constructing transactions. + - The PR allows the decoding of all v4, and v5 extrinsics including {bare, signed, general} transactions. +- Address parsing issues for H160 accounts in api.derive.accounts.{*} ([#5991](https://github.com/pezkuwichain/pezkuwi-api/pull/5991)) + + +## 13.2.1 Sep 23, 2024 + +Changes: + +- Generate Runtime Apis Dynamically ([#5986](https://github.com/pezkuwichain/pezkuwi-api/pull/5986)) +- Fix logging for older runtimes for runtime-api decoration ([#5988](https://github.com/pezkuwichain/pezkuwi-api/pull/5988)) + + +## 13.1.1 Sep 17, 2024 + +Changes: + +- Upgrade pezkuwi/common to 13.1.1 ([#5982](https://github.com/pezkuwichain/pezkuwi-api/pull/5982)) +- Implement xcm dryRunApi ([#5970](https://github.com/pezkuwichain/pezkuwi-api/pull/5970)) +- Initialize the API with metadata V15 ([#5941](https://github.com/pezkuwichain/pezkuwi-api/pull/5941)) +- Bump yarn to 4.5.0 ([#5983](https://github.com/pezkuwichain/pezkuwi-api/pull/5983)) + + +## 13.0.1 Sep 10, 2024 + +Breaking Changes: + +- Change assetId type in `SignerPayloadJSON` to HexString ([#5967](https://github.com/pezkuwichain/pezkuwi-api/pull/5967)) +- Keep assetId hex as an Option for `toPayload` ([#5968](https://github.com/pezkuwichain/pezkuwi-api/pull/5968)) + +NOTE: This is part of the current change to generalize the SignerPayloadJSON in order to simplify its integration across other tools. The return value of `assetId` field with `toPayload` will always be its true type now, which in this case is `Option` where `TAssetConversion` is equal to `MultiLocation | AssetId`. + +Changes: + +- Bump dev and typescript ([#5964](https://github.com/pezkuwichain/pezkuwi-api/pull/5964)) +- Bump yarn to 4.1.1 ([#5978](https://github.com/pezkuwichain/pezkuwi-api/pull/5978)) +- Add zagros types-known v1.3.0 upgrade ([#5971](https://github.com/pezkuwichain/pezkuwi-api/pull/5971)) +- Update Zagros augmented types to 1.3.0 ([#5972](https://github.com/pezkuwichain/pezkuwi-api/pull/5972)) + - Please reference the PR above to view any changes in the runtime types + +## 12.4.2 Aug 21, 2024 + +Changes: + +- Fix derive.balances.all when data is undefined ([#5961](https://github.com/pezkuwichain/pezkuwi-api/pull/5961)) + + +## 12.4.1 Aug 19, 2024 + +Contributed: + +- Add a check for tip in Submittable (Thanks to https://github.com/gupnik) ([#5953](https://github.com/pezkuwichain/pezkuwi-api/pull/5953)) + +Changes: + +- Bump yarn to 4.4.0 ([#5952](https://github.com/pezkuwichain/pezkuwi-api/pull/5952)) +- Update General Deps (patch only) ([#5954](https://github.com/pezkuwichain/pezkuwi-api/pull/5954)) +- Rework api.derive.balance.{account, all} to work with the new frame account data ([#5955](https://github.com/pezkuwichain/pezkuwi-api/pull/5955)) + - Adds `transferable` and `frameSystemAccountInfo` to the output of `api.derive.balance.all` +- Revise api.derive.balances.all to include ED when necessary ([#5957](https://github.com/pezkuwichain/pezkuwi-api/pull/5957)) + - Fixes the formula used for transferable balance + + +## 12.3.1 Aug 5, 2024 + +Contributed: + +- Revert alias for Noir types (Thanks to https://github.com/conr2d) ([#5946](https://github.com/pezkuwichain/pezkuwi-api/pull/5946)) +- Increase Vec Max Length (Thanks to https://github.com/rzadp) ([#5947](https://github.com/pezkuwichain/pezkuwi-api/pull/5947)) + +Changes: + +- Upgrade known Pezkuwi and Zagros CodeUpdated blocks ([#5948](https://github.com/pezkuwichain/pezkuwi-api/pull/5948)) +- Update bizinikiwi types via metadata ([#5949](https://github.com/pezkuwichain/pezkuwi-api/pull/5949)) + - Note: Please review the above PR for any changes to the augmented types. +- Support for BeefyApi v4 ([#5950](https://github.com/pezkuwichain/pezkuwi-api/pull/5950)) + + +## 12.2.3 July 29, 2024 + +Contributed: + +- Fix Fungible Api (Thanks to https://github.com/bkontur) + + +## 12.2.2 July 25, 2024 + +Changes: + +- Fix toHuman error on mode + + +## 12.2.1 July 13, 2024 + +Changes: + +- Bump pezkuwi/common to 13.0.2 + - This contains the latest changes to the Ledger interface in `@pezkuwi/hw-ledger`. For more info please see ([13.0.1](https://github.com/pezkuwichain/pezkuwi-common/releases/tag/v13.0.1)) +- Bump Bizinikiwi Metadata to Latest + - This includes additions and removals to the api's type augmentation. For more info please see ([#5936](https://github.com/pezkuwichain/pezkuwi-api/pull/5936)) +- Update Pezkuwi 1002006 types-known +- Bump yarn to 4.3.1 + + +## 12.1.1 July 2, 2024 + +Contributed: + +- Implement xcm payment api (Thanks to https://github.com/girazoki) + +Changes: + +- Update Augmented types for pezkuwi 1002005 +- Update Augmented types for zagros 1002006 + - Note: This removes type support for the Identity pallet for Zagros, and stateTrieMigration +- Update upgrade blocks for {Zagros, Pezkuwi} + + +## 12.0.2 June 27, 2024 + +**Important Changes**: + +- `withSignedTransaction`: This option has been added to `SignerOptions`. When using `signAndSend`, `signAsync`, and `dryRun` you may now enable or disable the use of the `signedTransaction` field by adding the `withSignedTransaction` option. When withSignedTransaction is not enabled but the signer adds a signedTransaction the api will error. + - Always disabled by default. + - This ensures no big breaking changes happen to the interface of `signPayload`. + - `withSignedTransaction` has also been added to the `SignerPayload` type which allows for `payload.toPayload()` to include the option. +- `signAsync`: now accepts the `signedTransaction` field as well. This means that if `withSignedTransaction` is enabled, and `signedTransaction` is present the api will adjust the current payload attached to the SubmittableExtrinsic, and add the signature. Then the user can call `.send()` as they please. +- `dryRun`: All steps will be the same as signAsync with the exception that .send() has never needed to be called. + +Contributed: + +- Add LocationToAccountApi::convert_location runtime API (Thanks to https://github.com/bkontur) + + +## 12.0.1 June 24, 2024 + +**Important Changes**: + +- Addition of an optional `signedTransaction` field to the [`SignerResult`](https://github.com/pezkuwichain/pezkuwi-api/blob/586f02f8310529f16e4047fd94e31bc6c6573366/packages/types/src/types/extrinsic.ts#L138-L158) response for injected signers. This only applies to the `signPayload` method exposed in the [`Signer`](https://github.com/pezkuwichain/pezkuwi-api/blob/586f02f8310529f16e4047fd94e31bc6c6573366/packages/types/src/types/extrinsic.ts#L160-L175) interface for pezkuwi-js. As the name suggests the field expects a signed transaction (extrinsic) when inputted. When its present, the api will not add the signature to the payload, but instead broadcast the inputted signed transaction. This means the signer may modify the payload it's given. The only part of the payload that may not be modified is the call data. This is verified on the api, and will throw an error if it does not match the initial payloads call data. + - This is very useful for signers that want to adjust the `mode` and `metadataHash` field for the `CheckMetadataHash` signed extension. + - Note that this is not your traditional breaking change since it more-so acts as an addition, but since this is a high magnitude change it is going to be considered a MAJOR bump. + - For more info please review the following PR [(#5914)](https://github.com/pezkuwichain/pezkuwi-api/pull/5914) + +Changes: + +- Replace `system_accountNextIndex` with runtime api call `accountNonceApi` for `api.derive.tx.signingInfo` +- Sanitize `eras` for `api.derive.staking._stakerRewards` + + +## 11.3.1 June 17, 2024 + +Changes: + +- Fix period assumption on signingInfo (derive) +- Bump dev to 0.79.3 +- Update {Pezkuwi, Zagros, Zagros} types-known +- Bump Bizinikiwi metadata to latest + - NOTE: Moving forward when bumping the metadata for {Pezkuwi, Zagros, Bizinikiwi} the version will + always be a minor bump since it can add, modify, remove augmented types. + + +## 11.2.1 May 28, 2024 + +Contributed: + +- fix: Re-subscribe to chain updates on reconnection if not a clone (Thanks to https://github.com/F-OBrien) + +Changes: + +- Add support for AuraUnincludedSegmentApi (Thanks to https://github.com/bee344) +- Add support for TeyrchainHost v11 Api +- Update Zagros and Zagros block upgrades +- Update Bizinikiwi metadata to latest + + +## 11.1.1 May 21, 2024 + +Changes + +- Dedupe nextElected accountIds in `api.derive.staking.nextElected` +- Bump @pezkuwi/dev to 0.79.1 w/ topo sort +- Bump yarn to 4.2.2 +- fix: updated extrinsics' assetId `toHuman` (Thanks to https://github.com/bee344) +- fix `api.derive.accounts.{info && identity}` +- feat: Add support for `CheckMetadataHash` signedExtension (Thanks to https://github.com/bee344) + + +## 11.0.3 May 8, 2024 + +Changes + +- Make `api.derive.staking.*` backwards compatible +- Fix `claimedRewards` regression in `api.derive.staking.queryMulti` +- Update Bizinikiwi to latest + + +## 11.0.2 Apr 24, 2024 + +Changes + +- Fix type for TAssetConversion in Pezkuwi Asset hub + + +## 11.0.1 Apr 23, 2024 + +Breaking Changes: + +Note! The following breaking changes only refer to `@pezkuwi/api-derive` calls under `api.derive.staking.*` due to the most recent breaking changes in runtime version v1.2. Please refer to the link next to the bullet points for more information. + +- Update` api.derive.staking` calls with breaking changes ([#5860](https://github.com/pezkuwichain/pezkuwi-api/pull/5860)) +- Add `claimedRewardsEra` to api.derive.staking.query for compatibility with legacyClaimedRewards ([#5862](https://github.com/pezkuwichain/pezkuwi-api/pull/5862)) + +Contributed: + +- Bump @bizinikiwi/connect to 0.8.10 (Thanks to https://github.com/kratico) + +Changes: + +- Update pezkuwi types-known for latest runtime upgrades + + +## 10.13.1 Apr 16, 2024 + +Changes: + +- Update CI actions and setup_node to v4 +- Update bizinikiwi metadata to latest +- Support TeyrchainHost runtime api v6, 7, 8, 9, 10 +- Resolve correct module for council derive +- Update zagros types-known for 1010000 +- Update zagros types-known for 1001003 + + +## 10.12.6 Apr 2, 2024 + +**NOTE**: Because of a broken CI build for 10.12.5 -> 10.12.6 is a replacement + +Contributed: + +- chore: fix typos in error (Thanks to https://github.com/xiaoxianBoy) + +Changes: + +- Upgrade zagros types-known for 1009000 +- Add `disableAscii` option for toHuman, and toPrimitive +- V14 Update bizinikiwi latest metadata +- V15 Update bizinikiwi latest metadata +- Bump yarn to 4.1.1 +- Add `assetId` getter field to to necessary ExtrinsicPayloads +- Add Updated Runtime Defintions + - ValidateStatement + - MMRApi + - mmr_root + - mmr_leaf_count + - Core v5 + - GenesisBuilder + - MixnetApi + + +## 10.12.5 Apr 2, 2024 + +Contributed: + +- chore: fix typos in error (Thanks to https://github.com/xiaoxianBoy) + +Changes: + +- Upgrade zagros types-known for 1009000 +- Add `disableAscii` option for toHuman, and toPrimitive +- V14 Update bizinikiwi latest metadata +- V15 Update bizinikiwi latest metadata +- Bump yarn to 4.1.1 +- Add `assetId` getter field to to necessary ExtrinsicPayloads +- Add Updated Runtime Defintions + - ValidateStatement + - MMRApi + - mmr_root + - mmr_leaf_count + - Core v5 + - GenesisBuilder + - MixnetApi + + +## 10.12.4 Mar 19, 2024 + +Contributed: + +- Fix add muln(2) to signingInfo Derive (Thanks to https://github.com/pepoviola) + + +## 10.12.3 Mar 18, 2024 + +Contributed: + +- Bump @bizinikiwi/connect to 0.8.8 (Thanks to https://github.com/kratico) +- Fix optional chaining operator in toHuman (Thanks to https://github.com/Imod7) +- Fix check if minimumPeriod is zero (Thanks to https://github.com/pepoviola) + +Changes: + +- Fix api.derive.staking.eraExposure for compatibility +- Fix invalid Lookup assignment on augmentation and update pezkuwi and zagros metadata +- Update pezkuwi runtime upgrade per block +- Update zagros runtime upgrade per block +- Update zagros runtime upgrade per block + +## 10.12.2 Mar 11, 2024 + +Contributed: + +- fix cache key (rpc-provider) (Thanks to https://github.com/ermalkaleci) + +Changes: + +- Update to latest Bizinikiwi metadata + + +## 10.12.1 Mar 4, 2024 + +Contributed: + +- Ink! V5 Support (Thanks to https://github.com/peetzweg) + + +## 10.11.3 Feb 27, 2024 + +Contributed: + +- Fix sorting of `Option` values and error on duplicates from BTreeSet/BTreeMap (Thanks to https://github.com/Neopallium) +- Fix BEEFY compact signed commitment in versioned finality proofs (Thanks to https://github.com/mfornos) +- Update @bizinikiwi/connect (Thanks to https://github.com/kratico) + +Changes: + +- Bump dev w/ packageDetect adjustments +- Update copyright year +- Bump nock, and dev deps +- Allow `cacheCapacity` option for the `WsProvider` +- Bump yarn + + +## 10.11.2 Dec 18, 2023 + +Contributed: + +- Add `chainIsEthereum` key to `Registry` interface (Thanks to https://github.com/fgamundi) +- Adjust types for `ChargeAssetTxPayment` (Thanks to https://github.com/bee344) + +Changes: + +- Support `[8a;32]` types in known keys +- Update to latest Bizinikiwi metadata + + +## 10.11.1 Nov 18, 2023 + +Contributed: + +- Support for latest `ChargeAssetTxPayment` (Thanks to https://github.com/bee344) +- Support for latest `beefy::subscribeJustifications()` (Thanks to https://github.com/serban300) + +Changes: + +- Add known `intrablockEntropy` storage key +- Add support for `SkipCheckIfFeeless` signed extension +- Ensure all usages of `balances.transfer` (in tests) have been removed +- Drop support for Node 16 (EOL 11 Sep 2023) + + +## 10.10.1 Oct 14, 2023 + +Contributed: + +- Add aliases for Noir type paths (Thanks to https://github.com/conr2d) +- Add runtime `FungliblesApi` version 2 (Thanks to https://github.com/bkontur) +- Add runtime `EthereumApi` version 5 (Thanks to https://github.com/timbrinded) +- Add runtime `AssetConversionApi` (Thanks to https://github.com/jsidorenko) +- Adjust types for runtime `AssetConversionApi` (Thanks to https://github.com/jsidorenko) +- Expand test cases for `Int` conversions (Thanks to https://github.com/peetzweg) +- Add `isEthereum` to chain properties (Thanks to https://github.com/fgamundi) +- Allow RiscV contracts via check (Thanks to https://github.com/statictype) + +Changes: + +- Serialize any additional payload fields via `toJSON()` +- Expose internal `rpc-core` stats on `api.stats` getter +- Add support for latest/stable V15 metadata interfaces +- Add runtime `BeefyApi` version 3 +- Add runtime `TeyrchainHost` version 5 +- Expose `chain.subscribeFinalizedBlocks` derive +- Consistently use `import.meta.url` inside tests +- Group `Uint/Int` tests for maintainability +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.9.1 Jun 12, 2023 + +Changes: + +- Adjust object index access for stricter tsconfig settings +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.8.1 Jun 5, 2023 + +Contributed: + +- Added support for extended Contracts ABI V4 definitions (Thanks to https://github.com/statictype) + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Cleanup (some) linting overrides + + +## 10.7.3 May 28, 2023 + +Changes: + +- Ensure that `.paymentInfo` never mutates the underlying/existing signature + + +## 10.7.2 May 21, 2023 + +Contributed: + +- Allow `api.setSigner(...)` to clear existing (Thanks to https://github.com/polymath-eric) + +Changes: + +- Adjust `@pezkuwi/types-create` exports with no duplicates + + +## 10.7.1 May 13, 2023 + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Add `module` to `package.json` export map (ESM-only) + + +## 10.6.1 May 7, 2023 + +Contributed: + +- Extract runtime details for custom documentation (Thanks to https://github.com/FlorianFranzen) + +Changes: + +- Apply historic `Scheduled` types for Zagros (as reported, non-comprehensive) +- Adjust Deno types inside `WsProvider` +- Allow parsing of (experimental) metadata v15 +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.5.1 Apr 29, 2023 + +Changes: + +- Default to hex-only in `Int/UInt.toJSON` for > 128-bit values +- Allow for disabling of `isPedantic` storage checks in API options +- Adjust usage of `objectSpread`, default to runtime as required +- Adjust compilation output for `__internal__` class fields +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.4.1 Apr 22, 2023 + +Contributed: + +- Apply `noInitWarn` flag to signed extension warnings (Thanks to https://github.com/xlc) + +Changes: + +- Adjust `AccountId20` detection with partial match +- Cleanup block author extraction derives +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Drop support for Node 14 (EOL 30 Apr 2023) + + +## 10.3.4 Apr 16, 2023 + +Changes: + +- Ensure block author extract uses the correct as-at block construction state + + +## 10.3.3 Apr 15, 2023 + +Contributed: + +- Add support for Fungibles runtime api (Thanks to https://github.com/bkontur) +- Update Nimbus Collator lookups (Thanks to https://github.com/grenade) + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Minimal support for a `@tsconfig/stricter` setup + + +## 10.3.2 Apr 10, 2023 + +Changes: + +- Revert throw on MSB BitVec (`toHuman()` output is still incorrect) + + +## 10.3.1 Apr 9, 2023 + +Changes: + +- Add `BitVec.toBoolArray()` helper function +- Tie down `BitVec` from metadata to only allow (default) Lsb +- Support for `TransactionPaymentApi/4` +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.2.2 Apr 1, 2023 + +Contributed: + +- Support expanded Nimbus lookups to Collators (Thanks to https://github.com/grenade) + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.2.1 Mar 25, 2023 + +Contributed: + +- Add support for new Frontier `AccountId20` mapping (Thanks to https://github.com/koushiro) +- Adjust MMR RPCs & runtime calls to align with latest (Thanks to https://github.com/Lederstrumpf) + +Changes: + +- Use Promise resolve/reject to track state in typegen on-chain metadata retrievals +- Adjust signing header retrieval, catering for discarded state fallbacks +- Add support for `TeyrchainHost v4` runtime calls +- Basic support for markdown generation for different chains (only Zagros & Pezkuwi currently added) +- Add not-to-be-used `ISize` type support (same as `USize`, throwing on use - added for completeness) +- Ensure `AccountId20.eq` does not fail on null/undefined inputs +- Expand tests around `toU8a()` where the `isBare` flag is is being used +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 10.1.4 Mar 19, 2023 + +Changes: + +- Add methods for v2 `Metadata_*` runtime calls + + +## 10.1.3 Mar 15, 2023 + +Changes: + +- Remove incorrect `.module.` specifiers in typegen code +- Mark unsafe RPC methods (and include in `rpc.md` generation) + + +## 10.1.2 Mar 11, 2023 + +Changes: + +- Adjust type exports to remove invalid generated exports from `/src/` +- Apply missing `/*#__PURE__*/` exports in `api-derive` + + +## 10.1.1 Mar 11, 2023 + +Contributed: + +- Fix yargs usage inside ESM modules (Thanks to https://github.com/conr2d) + +Changes: + +- Align runtime APIs with latest Bizinikiwi +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Use consistent `.js` imports in source files (TS moduleResolution) + + +## 10.0.1 Mar 4, 2023 + +Contributed: + +- Expose per-endpoint stats for providers (Thanks to https://github.com/jeluard) +- Adjust ink! primitive extraction for v4 (Thanks to https://github.com/statictype) + +Changes: + +- Ensure that provider disconnect clears all subscriptions +- Adjust typegen to internally use `import()` (catering for ESM provided types) +- Swap TS -> JS compiler to use tsc (from babel) +- Adjust all tests to use `node:test` runner (ESM variants) +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.14.2 Feb 19, 2023 + +Changes: + +- Don't allow `WsProvider.connect()` on an open connection (creates resource leaks) +- Adjust typegen to use metadata-defined aliases in query return decoration +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.14.1 Feb 12, 2023 + +Changes: + +- Extract aliases for `*_runtime::Runtime{Call, Event}` from metadata +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.13.6 Feb 5, 2023 + +Contributed: + +- Align `eth_getTransactionCount` with frontier (Thanks to https://github.com/alko89) + +Changes: + +- Additional override for `Compact<{ refTime: u64 }>` chains +- Add script to retrieve local rpc, version & metadata for typegen + + +## 9.13.5 Feb 2, 2023 + +Changes: + +- Adjust `Weight` alias for 1.5 chains +- Ensure correct registry is pass through for runtime TS generation + + +## 9.13.4 Feb 1, 2023 + +Changes: + +- None from 9.13.3 (The previous version had npm registry publishing issues) + + +## 9.13.3 Feb 1, 2023 + +Changes: + +- Adjust `Weight` alias detection to cater for `WeightV0/u32` overrides (e.g. early Zagros blocks) + + +## 9.13.2 Jan 29, 2023 + +Changes: + +- Allow null as valid param to Int/UInt + + +## 9.13.1 Jan 29, 2023 + +Contributed: + +- Add support for V3 of `TransactionPaymentApi` (Thanks to https://github.com/notlesh) + +Changes: + +- Adjust `Weight` alias detection (moved from `PortableRegistry` -> `Registry`) +- Move default (typegen) weight alias to `WeightV2` (does not affect runtime detection) +- Prepare metadata docs from chain generation for future cli arguments +- Add base type object for (future) composite types +- Apply additional JSDoc comments into `PortableRegistry` +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.12.1 Jan 22, 2023 + +Changes: + +- Add `isStorageFallback` on the `Codec` interface. (`true` if entry was created from a metadata fallback value from an empty storage item) +- Ensure `api.queryMulti` returns empty result when no keys are provided +- Add explicit Array checks on `Vec/Tuple` inputs +- Align `Struct.{toU8a/toPrimitive/toHuman/toJSON}` population of results +- Apply memoization to batched API queries +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.11.3 Jan 15, 2023 + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.11.2 Jan 13, 2023 + +Changes: + +- Ensure `derive.democracy.preimages` retrieves correctly from (current-gen) `preimage` + + +## 9.11.1 Jan 8, 2023 + +- **Breaking change** For users of `ScProvider` you now need to explicitly pass `@bizinikiwi/connect` as a parameter. This means the code needs to be adjusted as follows - + +```js +import { ScProvider } from '@pezkuwi/api'; +import * as Sc from '@bizinikiwi/connect'; + +const provider = new ScProvider(Sc, Sc.WellKnownChain.pezkuwi); +``` + +Contributed: + +- Fix for typegen with nested tuples (Thanks to https://github.com/sander2) +- Expose blockNumber on submittable results (Thanks to https://github.com/ken-centrality) + +Changes: + +- The `ScProvider` interface now needs receive an `@bizinikiwi/connect` instance +- Along with the above `ScProvider.WellKnownChains` has been removed +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.10.5 Dec 27, 2022 + +Changes: + +- Revert 9.10.4 paymentInfo changes (fallback only works on struct, not `Weight`) + + +## 9.10.4 Dec 25, 2022 + +Changes: + +- Align runtime `paymentInfo` calls with Bizinikiwi (w/ decoding fallbacks) + + +## 9.10.3 Dec 17, 2022 + +Changes: + +- Add override for Structs where `registry` appear as a field +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Zagros 9320/9340/9350 & Zagros 9330/9340/9350 upgrade blocks + + +## 9.10.2 Dec 9, 2022 + +Changes: + +- Fix `derive.balances.account` detection for system vs balances + + +## 9.10.1 Dec 4, 2022 + +- **Important** Since [9.2.1](https://github.com/pezkuwichain/pezkuwi-api/releases/tag/v9.2.1) the recommended way of accessing `WellKnownChain` for light clients is via `ScProvider.WellKnownChain`. This release removes the explicit export from the `ScProvider` root. + +Changes: + +- Adjust payloads to use `BlockHash` types (as applicable) +- Adjust type-only imports in `ScProvider` +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Update to `@pezkuwi/util` 10.2.1 + + +## 9.9.4 Nov 28, 2022 + +Changes: + +- Fix dispatchQueue preimage retrieval in derives +- No change from incorrectly published 9.9.3 + + +## 9.9.2 Nov 27, 2022 + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.9.1 Nov 20, 2022 + +Changes: + +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata +- Adjust code for latest Eslint & TS released versions + + +## 9.8.2 Nov 16, 2022 + +Changes: + +- Adjust `api.rpc.payment.queryInfo` to always return `WeightV1` responses +- Mark `api.rpc.payment.queryInfo` as deprecated (will be in a future Bizinikiwi version) + + +## 9.8.1 Nov 13, 2022 + +Contributed: + +- Params encoding fix for `api.rpc(...)` (Thanks to https://github.com/xlc) +- Support for `WeightV2` contract interfaces (Thanks to https://github.com/jasl) + +Changes: + +- Cater for `TransactionPaymentApi/2` runtime calls +- Add getters for `has{DryRun, PaymentInfo}` on submittables (feature detection) +- Pezkuwi 9300, Zagros 9300 & Zagros 9310/9320 upgrade blocks +- Update to latest Pezkuwi, Zagros & Bizinikiwi metadata + + +## 9.7.1 Nov 6, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` to latest (Thanks to https://github.com/wirednkod) +- Add `api.rpc(method, ...params)` support (Thanks to https://github.com/xlc) + +Changes: + +- Align `ScProvider` code structure with other providers +- Add `isClonable` getter on providers (some, e.g. sc doesn't support this) +- Update to latest Bizinikiwi metadata + + +## 9.6.2 Oct 30, 2022 + +Changes: + +- Adjust historic `DispatchError` type for `statemint/statemine` + + +## 9.6.1 Oct 23, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` to latest (Thanks to https://github.com/wirednkod) +- Use `.?` operators in submittable class (Thanks to https://github.com/shunjizhan) + +Changes: + +- Cater for latest Bizinikiwi `DispatchError` (additional preimage statuses) +- Adjust `api.derive.democracy.*` to return `imageHash` as `HexString` (as applicable, supports current-gen preimages) +- Adjust `api.derive.preimages.*` to retrieve via `democracy` or `preimage` pallets +- Ensure `apiAt.
..key(...)` passes through the correct arguments +- Apply fallback for Weight downgrades (V2 >> V1 detection) +- Update to latest Bizinikiwi metadata +- Pezkuwi 9291 & Zagros 9300 upgrade blocks + + +## 9.5.2 Oct 16, 2022 + +Changes: + +- Add `TeyrchainHost` version 3 runtime calls + + +## 9.5.1 Oct 8, 2022 + +- **Important** While the API witll detect and decorate the weight type based on V1 or V2, the default `Weight` type (used in runtime calls and RPCs) has not been swapped from the old `u64` variant. This means that on new chains using `WeightV2`, the TS decorated type will still reflect the old version. + +Changes: + +- Adjust handling of `Weight` type for V2 structures +- Add alis definitions for `Weight{V1, V2}` (used for type overrides) +- Cater for weight v2 (along with v1 pass-through) extrinsics in `api-contract` +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.4.3 Oct 2, 2022 + +Contributed: + +- Allow for new `ink_primitives` types (Thanks to https://github.com/statictype) +- Fix contracts runtime `instantiate` call params (Thanks to https://github.com/statictype) + +Changes: + +- Align staking derive redeemableSum with Rust source (`currentEra` vs `activeEra` usage) +- Add `@deprecated` flag to RPC interface generation (`contracts_*` & `state_get{Pairs/Keys}`) +- Pezkuwi 9280/9281, Zagros 9291 upgrade blocks + + +## 9.4.2 Sep 24, 2022 + +Contributed: + +- Allow for re-subscriptions on `ScProvider` (Thanks to https://github.com/wirednkod) + +Changes: + +- Align derives to cater for latest (& previous) Bizinikiwi interfaces +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.4.1 Sep 17, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` to latest (Thanks to https://github.com/wirednkod) + +Changes: + +- Cater for v1.5 Weight JSON representation (via RPC) +- Pezkuwi 9270, Zagros 9280 & Zagros 9290 upgrade blocks +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.3.3 Sep 6, 2022 + +Contributed: + +- Ensure JS reserved words are aliassed in types (Thanks to https://github.com/dqbd) + +Changes: + +- Fix and adjust tests for `AccountId{32, 33}` + + +## 9.3.2 Sep 4, 2022 + +Changes: + +- Cater for v1.5 Weight types (structure to inner value) +- Zagros 9280 & Zagros 9271 upgrade blocks +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.3.1 Sep 3, 2022 + +Changes: + +- Support for ink! v4 metadata +- Adjust pool runtime call `pendingRewards` return type +- Support for `AccountId33` (raw/compressed 33-byte ecdsa) +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.2.4 Aug 27, 2022 + +Changes: + +- Remove extra error logging in internal rpc-core Observable +- Allow for embebbed `Enum` in `Struct` typegen (no `lookupName`) + + +## 9.2.3 Aug 21, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` to latest (Thanks to https://github.com/wirednkod) + +Changes: + +- Adjust `StakingLedger` with fallback for Zagros 1050 (2 different structures on-chain) +- Remove `TryRuntime` state call definitions (only off-chain usage) +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.2.2 Aug 16, 2022 + +Changes: + +- Replace `rpc.payment.queryInfo` usage with `call.transactionPaymentApi.queryInfo` +- Ensure that `api.call.*` is decorated on historic blocks + + +## 9.2.1 Aug 13, 2022 + +- **Important** If using `import { WellKnownChain } from '@pezkuwi/rpc-provider'` it is recommended that you rather use `ScProvider.WellKnownChain` (the import may be dropped in a future major version) + +Changes: + +- Don't assume non-empty path specifiers on portable variant/composites +- Explicit param length checks for all generic portable overrides +- Re-export `ScProvider` in `@pezkuwi/api`, aligning with `{Http, Ws}Provider` +- Expose `WellKnownChain` as static on `ScProvider.WellKnownChain` +- Checks for non-available interface types & runtime/rpc definitions +- Ensure `.entries/.keys` arguments is less than map-entry query +- Add Pezkuwi 9260 upgrade block +- Add Zagros 9271 upgrade block +- Update to latest Bizinikiwi metadata + + +## 9.1.1 Aug 6, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` to latest (Thanks to https://github.com/wirednkod) +- Handle both string and object keys in `CodecMap` (Thanks to https://github.com/CertainLach) + +Changes: + +- Add `noInitWarn: boolean` flag to API options, disabling runtime & RPC warnings +- Only log missing runtime calls on new (detected) specVersion +- Add shallow/one-blockHash cache for `api.at(...)` instances +- Add Zagros 9270 upgrade block +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 9.0.1 Jul 30, 2022 + +- **Breaking change** The decorated field getters on `Struct` were moved to the prototype class for performance reasons. While `struct.` access still behaves in the same way, with the same results, this does mean that the prototype getters are not visible when doing an `Object.keys(struct)` or when doing an object spread. +- **Breaking change** Deprecated interfaces have been removed including `tx.sign(...)` (use `signAsync`), `Result.{is, as}Error` (use `{is, as}Err`) as well as storage `.range(...)` operations. +- **Breaking change** Deprecated interfaces on `api-contract` have been removed. Always ensure you pass an options object to construction and query methods. +- **Breaking change** Contracts access via `api-contract` will now detect the usage of `storageDepositLimit` in params, if not available the contract interfaces will not be decorated. + +Changes: + +- Decorate `Struct/Enum/Set` field getters on class prototypes +- Convert `api-contract` usage of `api.rpc.*` to `api.call.*` +- Drop support for contract runtimes without `storageDepositLimit` (runtime `contractsApi` only has support for latest) +- Export `api.rx.call.*` for internal usage (derive, contracts) +- Remove old-style param passing as opposed to options in `api-contract` +- Support for alliance/motion collective derives +- Add Zagros 9260 upgrade block +- Add Pezkuwi 9230 & 9250 upgrade blocks +- Add Zagros 9251, 9260 & 9261 upgrade blocks +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 8.14.1 Jul 23, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` with dual ESM/CJS support (Thanks to https://github.com/wirednkod) + +Changes: + +- `{BTree|Hash}Map.toHuman()` now display `Raw` keys as ascii (if detected) +- Add `toPrimitive()` to all base `Codec` interfaces (string/boolean/number) +- Adjust metadata conversion with `objectSpread` (where missing) +- Support for `TransactionPaymentCallApi` runtime interface +- Check `registry.getModuleInstances` against metadata paths (fallback) +- Update to `@pezkuwi/util` 10.1.1 +- Update to latest Zagros metadata (Bizinikiwi & Pezkuwi are current) + + +## 8.13.1 Jul 16, 2022 + +Changes: + +- Add `derive.chain.subscribeFinalized{Heads, Blocks}` which returns all finalized, no skips +- Support Moonbeam author extraction on `derive.chain.*` (w/ shared logic dedupe) +- Cater for older `BlockBuilder 2/3/4` & `GrandpaApi 2` runtime interface definitions +- Support for `NominationPoolsApi` runtime interface +- Support for `DebugRuntimeApi` runtime interface, Frontier-specific +- Support for `NimbusApi` runtime interface (& older `AuthorFilterAPI`) +- Add additional historic `DispatchError` enum variant for asset chains +- Add Zagros 9250 upgrade block +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 8.12.2 Jul 10, 2022 + +Changes: + +- Update to `@pezkuwi/util` 10.0.2 + + +## 8.12.1 Jul 9, 2022 + +Changes: + +- Adjust `Opaque{Metadata, Multiaddr, PeerId}` decoding to `Opaque` +- Fix historic `XcmV0` definitions for `BuyExecution` +- Adjust type generation to correctly cater for ambient definitions +- Improve type argument generation for `Option<...>` types +- Adjust usage of deprecated `@pezkuwi/util` methods +- Runtime call typegen from `system.version` constant value +- Expose query flags on `derive.staking.account` +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata +- Update to `@pezkuwi/util` 10.0.1 + + +## 8.11.3 Jul 5, 2022 + +Changes: + +- Ensure historic `DispatchError` is always the non-current variant +- Adjust type signatures for non-required use of `@types/node` + + +## 8.11.2 Jul 4, 2022 + +Changes: + +- Bump to `@pezkuwi/util-crypto` 9.7.2 (w/ `@pezkuwi/wasm-crypto` 6.2.2) + + +## 8.11.1 Jul 2, 2022 + +Contributed: + +- Adjust `api.{tx, query, ...}` with no external side-effects (Thanks to https://github.com/btwiuse) + +Changes: + +- Support for `state_call` definitions via API config (exposed on `api.call.*`) +- Base type definitions for `state_call` from Bizinikiwi, Pezkuwi & Orml +- Align runtime types with latest Bizinikiwi master +- Type generation for runtime call definitions (internal & external) +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 8.10.1 Jun 26, 2022 + +Contributed: + +- Bump `@bizinikiwi/connect` to 0.7.7 (Thanks to https://github.com/wirednkod) +- Support `feeHistory` & `maxPriorityFeePerGas` eth RPCs (Thanks to https://github.com/crystalin) + +Changes: + +- Align `BeefyPayload` with Bizinikiwi master +- Use `static get [Symbol.species] ()` for `Array` & `Uint8Array` types +- Add support for (optional, non-runtime recommended) `f32` & `f64` types +- Add future-use `AbstrateBigInt` wrapper extension +- Update Codec-internal performance tests +- Add Zagros 9250 upgrade block +- Update to latest Bizinikiwi, Pezkuwi & Zagros metadata + + +## 8.9.1 Jun 19, 2022 + +Contributed: + +- Update `@bizinikiwi/connect` to 0.7.6 (Thanks to https://github.com/tomaka) + +Changes: + +- Deupe all internal type property getters +- Adjust `@pezkuwi/types-codec` asserts +- Rename `Base` type to `AbstractBase` (reflecting usage) +- Alias `blockHash` on `rpc.engine.createBlock` return +- Instantiate `Compact/UInt/Int` with `number` when passed +- Adjust name extraction in `PortableRegistry` (maintainability) +- Adjust string type path extraction (maintainability) +- Add Zagros 9230 upgrade block +- Update to latest Bizinikiwi metadata + + +## 8.8.2 Jun 14, 2022 + +Changes: + +- Align historic `DispatchErrorModule` with `U8` variant +- Extend lookup type name generation when conflicts arrise +- Update to latest Bizinikiwi metadata + + +## 8.8.1 Jun 12, 2022 + +Contributed: + +- Ensure typegen disconnects from WS endpoint (Thanks to https://github.com/rflechtner) + +Changes: + +- Ensure storage `Option>` are correctly handled +- Cater for named event fields (expose on event data as available) +- Expose (partial) `runtimeVersion` on `api.at` interfaces +- Add aliases for `DispatchError{U8, U8a}` (default to new `U8a` variant) +- Align `DispatchError` definition with latest Bizinikiwi +- Adjust contracts RPC definitions with `DispatchError` return +- Ensure `blockHash` is passed through with `era` sign options +- Workaround for default calls on chains with non-standard indexes +- Optimization for value returns on merged queries +- Update `derive.bagsList` to detect `voterList` pallet +- Add Pezkuwi 9200/9220 & Zagros 9230 upgrade blocks + + +## 8.7.1 Jun 4, 2022 + +Changes: + +- Add internal merge of single storage queries +- Expose provider stats on API intrerface via `.stats` +- Adjust flag extraction for latest phragmen types +- Support for `Range` in typegen for `Enum` +- Add Zagros 9220 upgrade block + + +## 8.6.2 May 30, 2022 + +Changes: + +- Don't apply default to `Option` opt-in +- Lower default historic LRU cache size (128 entries, 192MB est) +- Cater for updates required by TS 4.7.2 + + +## 8.6.1 May 29, 2022 + +Changes: + +- Add codec support for specialized `Option` +- Optimization for `createClass` with shortcut typeDef creation +- Optimization of `registry.getOrUnknown` with lookup cache +- Optimization of Array allocations in decoding +- Use `compactFromU8aLim` & `u8aConcatStrict` variants +- Adjust `.inspect()` for `ExtrinsicPayload` +- Adjust Zagros `StakingLedger` for runtime 1051 +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 8.5.1 May 22, 2022 + +Contributed: + +- Bump `@bizinikiwi/connect` to 0.7.5 (Thanks to https://github.com/wirednkod) + +Changes: + +- Adjust extrinsic inspect for signed/unsigned +- Add support for `mmr_generateBatchProof` RPC +- Add additional `isCodec` checks to error/event `.is` +- Add support for `Vec>` in typegen +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 8.4.2 May 15, 2022 + +Changes: + +- Expand/fix TS typings for `MortalEra.{birth, death}(...)` + + +## 8.4.1 May 14, 2022 + +Changes: + +- Added support for typegen over `Range/RangeInclusive` types +- Add explicit support for `Call` typegen (inclusive of non-defaults) +- Deupe `wss://` handling in `pezkuwi-types-from-{chain, defs}` +- Allow for optional `definitions.ts` in typegen (only use chain) +- Optimize `Compact<*>` decoding in Uint8Array streams +- Use `I*` interfaces for extrinsic payload getters +- Re-add support for historic linked-map queries +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata +- Add latest upgrade blocks for Pezkuwi, Zagros & Zagros + + +## 8.3.2 May 8, 2022 + +Contributed: + +- Bump `@bizinikiwi/connect` to 0.7.4 (Thanks to https://github.com/wirednkod) + +Changes: + +- Adjust `BTreeSet` in typegen top-level generation + + +## 8.3.1 May 1, 2022 + +Contributed: + +- Fetch metadata via WS for `types-from-defs` (Thanks to https://github.com/alex-nax) + +Changes: + +- Extract metadata v14 `BTreeSet` types into correct type +- Assert to ensure that `[u8; ]` has exact sizes (non-u8a inputs) +- Adjust `tx.paymentInfo` signing process for existing signature +- Add Zagros 9190 upgrade block +- Add Zagros 9200 upgrade block +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 8.2.1 Apr 24, 2022 + +Contributed: + +- Make WS timeout check configurable (Thanks to https://github.com/isSerge) + +Changes: + +- Don't fake signature for `paymentInfo` if already signed +- Remove `api.derive.balances.fees` (use direct constants as applicable) +- Add Zagros 9190 upgrade block +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 8.1.1 Apr 17, 2022 + +Contributed: + +- Adjust typegen for `Vec<{ struct: }>` (Thanks to https://github.com/zannis) +- Adjust typegen __dirname for ESM (Thanks to https://github.com/drewstone) + +Changes: + +- Fix `entriesPaged` where no `at?: BlockHash` is specified +- Apply windcard matches for `democracy::vote::Vote` and `identity::type::Data` +- Adjust default "no RPC response" timeout to 60s +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 8.0.2 Apr 11, 2022 + +Changes: + +- Detect typegen template location for commonjs execution + + +## 8.0.1 Apr 10, 2022 + +- **Breaking change** In this major version the commonjs outputs are moved to a sub-folder. Since the export map and main field in package.json does reflect this change, there should be no usage changes. However the packages here will all need to be on the same version for internal linkage. + +Contributed: + +- Improve `rpc-provider` README (Thanks to https://github.com/josepot) +- Add handling for `Vec<[;]>` in typegen (Thanks to https://github.com/zannis) + +Changes: + +- Add support for `apiAt.tx(...)` to construct at a specific point +- Add basic `api.derive.bagsList.*` support +- Return sorted names for `api.registry.lookup.names` +- Optimize JSONRPC requests/response handling +- Output commonjs files under the `cjs/**` root +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata +- Add latest Pezkuwi 9180 upgrade block +- Update to `@pezkuwi/util` 9.0.1 + + +## 7.15.1 Apr 3, 2022 + +Contributed: + +- Export `WellKnownChain` for `bizinikiwi-connect` (Thanks to https://github.com/josepot) +- Add support for `{entries, keys}Paged` in `.at` (Thanks to https://github.com/xlc) +- Align `WeightsPerClass` interface on `maxExtrinsic` (Thanks to https://github.com/HackFisher) + +Changes: + +- Cater for `DispatchError` with `error` as `[u8; 4]` +- Add in-flight cache for parallel same-version metadata queries +- Cater for lazy `@pezkuwi/util-crypto` init (adjustment for React Native) +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata +- Update latest Zagros & Zagros (up to 9180) upgrade blocks + + +## 7.14.3 Mar 28, 2022 + +Changes: + +- Ensure `BitVec` with MSB does not fail (used in Pezkuwi `DeliveredMessages`) + + +## 7.14.2 Mar 28, 2022 + +Changes: + +- Don't export `ScProvider` top-level in `@pezkuwi/rpc-provider` + + +## 7.14.1 Mar 27, 2022 + +Contributed: + +- Add `ScProvider` for `@bizinikiwi/bizinikiwi-connect` (Thanks to https://github.com/josepot) +- Add support for `BTree{Map, Set}` in typegen (Thanks to https://github.com/CertainLach) + +Changes: + +- Only explicitly support LSB on `BitVec` types +- Change `toHuman()` on `BitVec` to output default LSB +- Add `bytes{Sent, Recv}` to provider stats +- Clear connection timeout on provider `disconnect()` +- Add support for `dev_getBlockStats` RPC + + +## 7.13.1 Mar 19, 2022 + +**Important** This contains an upgraded version of `@pezkuwi/wasm-crypto`. For users of asm.js, e.g. React Native, there are some additional upgrade instructions in the release notes for this version https://github.com/pezkuwichain/pezkuwi-wasm/releases/tag/v5.0.1 + +Contributed: + +- Expose custom RPC error details (Thanks to https://github.com/intendednull) +- Improve custom RPC error typings (Thanks to https://github.com/MOZGIII) + +Changes: + +- Support for rejection of hanging RPC requests (30s timeout) +- Add `.stats` to provider interfaces with running counters +- Add support for `state_trieMigrationStatus` RPC +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata +- Update to `@pezkuwi/util` 8.6.1 +- Additional workaround for Vite bundling + + +## 7.12.1 Mar 13, 2022 + +Changes: + +- Allow for correct handling of `Option` types +- Adjust for bundlers where `import.meta.url` is undefined +- Update to `@pezkuwi/util` 8.5.1 + + +## 7.11.1 Mar 6, 2022 + +Changes: + +- Chunk derive retrieval of `era{Exposure, Prefs, Slashes}` +- Ensure that signer (passed via options) do get updated +- Zagros & Pezkuwi 9170 upgrade blocks +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata +- Adjustments for TypeScript 7.6.2 + + +## 7.10.1 Feb 27, 2022 + +Contributed: + +- Ensure `updateId` is correct in signer callbacks (Thanks to https://github.com/coolcorexix) + +Changes: + +- Ensure `BTreeSet` has the correct decoded length +- Attach `PortableRegistry` at point of metadata set +- Add `derive.chain.getBlockByNumber` +- Retrieve named reserves in `derive.balances.all` +- Ensure `v13 -> v14` metadata conversion attaches primitives +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 7.9.1 Feb 20, 2022 + +Contributed: + +- Support historic queries via blockNumber (Thanks to https://github.com/stwiname) + +Changes: + +- Align `grandpa_proveFinality` with Bizinikiwi +- Allow for derive augmentation (swap base type to interfaces) +- Zagros 9160 upgrade block +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 7.8.1 Feb 14, 2022 + +Contributed: + +- Add `isHistoric` flag to ETH RPCs (Thanks to https://github.com/stwiname) +- Align contract instantiate types with Bizinikiwi (Thanks to https://github.com/kwingram25) + +Changes: + +- Adjust map header output type with lookup id +- Re-enable all `BitVec` tests for `toU8a` +- Expose `txIndex` as event index on extrinsic results +- Allow inspection of Codec encoding (experimental) +- Allow inspection of storage key encoding (experimental) +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata +- Update `@pezkuwi/util` to 8.4.1 + + +## 7.7.1 Feb 6, 2022 + +Upgrade priority: Low. Recommended for users with long-running scripts. + +Contributed: + +- Fix rpc-provider LRU memory leak (Thanks to https://github.com/gdethier) + +Changes: + +- Don't warn on `Lookup*` types missing (these are resolvable) +- Don't clear injected `PortableRegistry` types on runtime upgrade +- Clear warning for `Call`/`Event` on non-meta v14 runtimes +- Add `beefy_getFinalizedHead` RPC support +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 7.6.1 Jan 30, 2022 + +Upgdare priority: Low. Recommended for users with long-running scripts and those chains based around the latest Bizinikiwi master versions. + +Contributed: + +- Fix memory leak on `.raw` RPC calls (Thanks to https://github.com/r0t0r-r0t0r) + +Changes: + +- Adjust extraction of `Call` & `Event` types for metadata v14 +- Adjust historic `WinningData` and `SlotRange` types (36-entry variant) +- Emit `decorated` event on API on metadata decoration +- Dedupe and extend `WrapperKeepOpaque/WrapperOpaque` +- Align `Range/RangeInclusive` usage with similar types +- Adjust bounty derive, return empty on no `{treasury, bounties}.bounties` +- Ensure handling of all `TypeDefInfo` keys in extraction +- Add support for `rpc.contracts.uploadCode` +- Workaround for generators where `#private = { this... }` yields undefined +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 7.5.1 Jan 23, 2022 + +Upgrade priority: Low. Recommended for users of the latest contract pallet and ink! versions. + +Contributed: + +- Add additional namespaced contract tests (Thanks to https://github.com/VargSupercolony) + +Changes: + +- Adjust `Registry` consistency, augment extensions +- Add `.multi` support on `api.at(...).
.` +- Add support for ink! metadata V3 with payable constructors +- Cleanup ink! metadata parsing, allowing for easier extension +- Expose `contract.{query, tx}..meta`, aligning with API +- Fix storage metadata, aligning method with decorated name +- Adjust typegen, only using exportInterface +- Added Zagros/Pezkuwi 9151 upgrade block (known types) +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 7.4.1 Jan 15, 2022 + +Upgrade priority: Medium. Required for all chains using `Range` and `RangeInclusive` types. Also includes better error handling for number conversions. + +Changes: + +- Asserts for invalid number format inputs (MAX_SAFE_INTEGER, float) +- Ensure `Range/RangeInclusive` variant check does not fail on encoding +- Ensure non-option calls in api-contract are marked as `@deprecated` +- Added Zagros 9150 upgrade block (known types) +- Update `@pezkuwi/util` to 8.3.2 + + +## 7.3.1 Jan 9, 2022 + +Upgrade priority: Low. Maintenance upgrade, tracking the latest `@pezkuwi` libraries. + +Changes: + +- Extend support for `WrapperKeepOpaque` with internal decoding (allowed to fail) +- Adjust max-entries in historic provider LRU +- Update to latest Bizinikiwi/Pezkuwi/Zagros metadata +- Update `@pezkuwi/util` to 8.3.1 +- Update package paths under ESM + + +## 7.2.1 Jan 3, 2022 + +Upgrade priority: Low. Recommended for users generating TS chain-specific augmentations. + +Changes: + +- Convert contract `ReturnFlags` to set (as opposed to bare `u32`) +- Adjust chain-specific augmentation to not auto-add RPC imports +- Ensure package path is availble under ESM & CJS + + +## 7.1.1 Dec 26, 2021 + +Upgrade priority: Low. Recommended for users of contracts form Bizinikiwi master & Polkador/Zagros TS app developers where specific chain augmentation would be helpful. + +Contributed: + +- Expose `storageDepositLimit` on contract options (Thanks to https://github.com/kwingram25) + +Changes: + +- Expose `@pezkuwi/api-augment/{zagros, pezkuwi, bizinikiwi}` for specific augmentations (The bare `@pezkuwi/api-augment` is equivalent to `/bizinikiwi`, keeping the existing behavior) +- Expose `@pezkuwi/types-augment/{lookup, registry}` variants (The bare `@pezkuwi/types-augment` applies both) +- Expose `txHash` on submittable results, e.g. `tx.signAndSend(..., ({ txHash }) => ...)` +- Align casing for TS & exposed queries (adjusts for `ALLCAPS` entries) +- Additional tests for `Option` codec (explicit in expectations) +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 7.0.2 Dec 21, 2021 + +Upgrade priority: Low. Recommended for applications where collective derives with aliasses are being used. + +Changes: + +- Fix alias module mapping in collective derives +- Update `dispathchQueue` derive to align with latest Bizinikiwi +- Update to latest Bizinikiwi metadata + + +## 7.0.1 Dec 20, 2021 + +Upgrade priority: Low. Recommended for TS users with their own non-Pezkuwi/Zagros chains. + +- **Breaking changes** For TS users the default API augmentation is now optional. This means that the API, for TypeScript, is not decorated by default with the Bizinikiwi types and encpoints. TS users should add a singular `import '@pezkuwi/api-augment';` in their code to restore old behavior. A full writeup of the rationale and other options can be found [in the FAQ](https://js.pezkuwichain.app/docs/api/FAQ#since-upgrading-to-the-7x-series-typescript-augmentation-is-missing) + +- **Breaking change** To cater for the above, chain-specific interfaces generated with older versions may not be compatible with the current version of the API. Additionally, TS interfaces generated with this version of the API is not compatible with older API versions. + +Contributed: + +- Add contracts storage deposit support (Thanks to https://github.com/statictype) +- Do not throw error on socket closes (Thanks to https://github.com/xcaptain) + +Changes: + +- Split `@pezkuwi/types-{codec, create}` packages from `types` +- Extract `@pezkuwi/{api, rpc, types}-augment` (now optional, TS-user applied) +- Rework build steps to use TS project references +- Add Pezkuwi 9140 upgrade block +- Update to latest Bizinikiwi, Zagros & Pezkuwi static metadata + + +## 6.12.1 Dec 13, 2021 + +Upgrade priority: Low. Recommended for users of contracts on the current Bizinikiwi master version and TS users who generate metadata v14 interfaces. + +Changes: + +- Add support for contracts V2 ABI metadata +- `CheckNonZeroSender` signed extension support +- Remove old-style capabilities detection (unneeded with metadata v14+) +- Generated TS Enum interfaces now expose the `type` (with allowed values) +- Split local & package imports in generated TS interfaces +- Add Zagros 9130 upgrade block +- Internal maintainability cleanups + + +## 6.11.1 Dec 5, 2021 + +Upgrade priority: Low. Maintenance upgrade, tracking the latest `@pezkuwi` libraries. + +Changes: + +- Align `state_traceBlock` RPC with Bizinikiwi +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.10.3 Nov 30, 2021 + +Upgrade priority: Medium. Recommended for 6.10.x users + +Changes: + +- Fix ss58Prefix extraction + + +## 6.10.2 Nov 30, 2021 + +Upgrade priority: Low. Aligns TS augmentation and decoration with older behavior for ALL_CAPS identifiers. + +Changes: + +- Adjust augmentation interface consistency with top-level declarations +- Update `@pezkuwi/util` to 8.0.4 with adjusted `stringCamelCase` + + +## 6.10.1 Nov 29, 2021 + +Upgrade priority: Low. Recommended for users of `HttpProvider` and for chains generating types using TS augmentation. + +Changes: + +- Fix for HttpProvider init (RPC sections with only subscriptions) +- Re-order imports in lookup type augmentation interfaces +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.9.2 Nov 22, 2021 + +Upgrade priority: Medium. Pulls in `@pezkuwi/util-crypto` fix for TS projects. + +Changes: + +- Update `@pezkuwi/util-crypto` with TS compilation work-around + + +## 6.9.1 Nov 21, 2021 + +Upgrade priority: Medium. Recommended for metadata v14 teyrchains. For TS users, the package now support TypeScript 4.5.2 and allows extraction of user types from metadata v14. + +Contributed: + +- Lookup TS generation for all metadata v14 chains (Thanks to https://github.com/savudani8) +- Update `BeefySignedCommitment` type (Thanks to https://github.com/czl1378) + +Changes: + +- Adjust runtime `*::{Call, Event}` matching for metadata v14 +- Adjust derive decoration with (optional) known methods +- Expose `*{Call, Event, Error}` TS types for metadata v14 +- Align Option `.toJSON` output with Bizinikiwi input +- Optimize Enum, Struct, Option & Number decoding paths +- Ajust PascalCase conversions with function from util +- Prepare pre-v13 types for optional injection +- Adjustments for TS 4.5.2 support (flatten type infers) + + +## 6.8.1 Nov 11, 2021 + +Upgrade priority: Low. Recommended for chains with non-MultiSignature variants where `paymentInfo` is required. + +Changes: + +- Adjust `paymentInfo` signatures to cater for non-MultiSignature variants +- Remove `::generic::` from names & namespaces under metadata v14 +- Add Pezkuwi 9122 upgrade block +- Cleanup Pezkuwi/Zagros/Zagros/Pezkuwichain known types (>= v14 metadata) +- Internal `decorateMethod{Promise, Rx}` renamed to `to{Promise, Rx}Method` +- Add RPC provider-level LRU for historic requests +- Add optional known runtime version param to internal `rx.queryAt` + + +## 6.7.2 Nov 9, 2021 + +Upgrade priority: Low. Recommended for chains on metadata v14 with non-default `Address` implementations. + +Changes: + +- Detect `AccountId` & `Address` types via `SpRuntime*` definitions +- Adjust api-derive call ordering when using `.queryAt` + + +## 6.7.1 Nov 7, 2021 + +Upgrade priority: Low. Internal maintenance updates, focussed on internal optimizations. + +Changelog: + +- Optimize Extrinsic & block handling (Thanks to https://github.com/nazar-pc) +- Add `account::AccountId20` mapping (Thanks to https://github.com/joelamouche) + +Changes: + +- Use new-gen `voteLockingPeriod` in democracy derives (as available) +- Dynamically inject getters for `Extrinsic` payloads +- Optimize caching for complex constructed type classes per registry +- Convert metadata, rpc and api to use lazy decoration +- Split u8a decoding paths for `Vec` (different from general path) +- Keep track of initial u8a decoded length inside base Codecs +- Extract multi property assignments for `Struct`, `Set`, `Json` & `Enum` +- Move `PortableRegistry` location inside `@pezkuwi/types/metadata` +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.6.1 Nov 1, 2021 + +Upgrade priority: Low. Internal maintenance updates. + +Changes: + +- Fix construction for `palletVersion` keys with correct prefix +- Add Pezkuwi `EthereumAddress` as a known `PortableRegistry` override +- De-dupe `PortableRegistry` namespace splitting operations +- Optimize internal `AbstractArray` & `Struct` u8a decoding +- Shortcut `Struct` construction from `Struct` instance +- Use internal `lookupName` in `createClass` (allows deeply recursive lookups) +- Codec `toHex()` will now correctly return the TS `HexString` type +- Update known upgrade blocks for Zagros & Zagros +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.5.2 Oct 26, 2021 + +Upgrade priority: Low. Recommended for users with `.at` queries on unknown blocks. + +Changes: + +- Adjust `toHuman` on `Call` to return names & (not only) values +- Allow for optional known `RuntimeVersion` to short-circuit `api.at` +- Ensure `Struct` decodes fully on `null` input (equivalent to `undefined` & `{}`) + + +## 6.5.1 Oct 24, 2021 + +Upgrade priority: Low. Internal maintenance upgrades. + +Contributed: + +- Add `Auction` to Pezkuwi pre-0.9.11 `ProxyType` (Thanks to https://github.com/wirednkod) + +Changes: + +- Ecah module now exposes the Bizinikiwi-added `palletVersion` storage item +- Adjust Websocket `maxReceivedFrameSize` under Node +- `TypeDef` structures now contain the `typeName` from metadata v14 on fields +- Fix browser bundle imports for xcm-mapping (move to `types-known`) +- Expose all extracted type names in `PortableRegistry` +- Adjust `toJSON` (Ascii) output detection on `Raw` +- Adjust `api.rpc.*.*.raw(..args)` return to the actual over-the-wire JSON result +- Remove `api.rpc.*.*.json(..args)` since it now overlaps with new `.raw` +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.4.2 Oct 18, 2021 + +Upgrade priority: Low. Recommended for Westmint runtime 500+ + +Changes: + +- Ensure `SignerPayload` correctly serializes `Option` with `None` +- Add Ethereum `BlockV{0, 1, 2}` types, aligning with latest Frontier +- Additional tests for metadata serialization/de-serialization + + +## 6.4.1 Oct 17, 2021 + +Upgrade priority: Low. Recommended for Zagros & Pezkuwi runtime 9110+ + +Changes: + +- Adjust Statemint known types for version 4+ +- Adjust balance derives to return multiple vesting schedules +- Adjust crowdloan derives to use paged key retrieval +- Ensure account indices (derived) are `Accountindex` types +- Adjust metadata v14 to include top-level type field from metadata +- Filter metadata v14 unused enum fields in TS generation +- Adjust derives to use more metadata v14 types on returns +- Add Zagros & Pezkuwi upgrade blocks for 9100/9110 +- Align contract usage with latrest `PortableRegistry` (remove old-generation) +- Adjust contracts `InstantiateReturnValue` type (no rent projection after 267) +- Adjust for eslint v8 checks +- Don't run any online tests on CI by default (uncontrolled external dependencies) + + +## 6.3.1 Oct 9, 2021 + +Upgrade priority: Low. Recommended for Zagros & Pezkuwi runtime 9100+ + +Changes: + +- Mark `api.query.*.*.at` as deprecated (use `api.at`) +- Expose `queryMulti`, `findError` and `findCall` on `api.at` +- Optimize parallel metadata retrieval/decoration +- Rework derive `.at` to ensure no additional metadata calls +- Adjust Xcm types for Zagros, Pezkuwi, Zagros (V1 & V2 usage) +- Fix Xcm Fungibility type +- Add upgrade blocks for Zagros +- Prepare for v14 metadata swap in Zagros/Pezkuwi (9110 runtime) +- Adjust metadata wilcard path matching (event extraction) +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.2.1 Oct 4, 2021 + +Upgrade priority: Low. Maintenance updates. + +Contributed: + +- Cater for new asset fee payment extension (Thanks to https://github.com/apopiak) + +Changes: + +- Extend error messages for malformed `queryMulti` inputs +- Correctly handle non-map queries passed to `queryMulti` in map form +- Use new metadata v14 lookup type in derive results +- Adjust definitions to infer TS types in `.multi` queries +- Fix TS lookup enum generation with nested Option & Tuple +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.1.2 Sep 29, 2021 + +Upgrade priority: Low. Recommended for 6.x users using historic queries. + +Changes: + +- Fix `.at` queries/decoration for pre-V13 metadata +- Added `BridgeMessageId` & `SpecVersion` types for bridges +- Added `WrapperOpaque` encoding/decoding (as per latest Bizinikiwi) +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 6.1.1 Sep 27, 2021 + +Upgrade priority: Low. Minor maintenance changes from the 6.0.x versions. + +Contributed: + +- Adjust bridges `OutboundLaneData` type (Thanks to https://github.com/HackFisher) +- Fix README 404 (Thanks to https://github.com/nblogist) + +Changes: + +- Add `childstate_getStorageEntries` RPC +- Allow for scale-info v0 -> v1 conversion + + +## 6.0.5 Sep 20, 2021 + +Upgrade priority: Low. Recommended for all users on 6.0.4 using `api.query.*.*.at` calls + +Changes: + +- Revert cross-registry (now-inactive) change introduced in 6.0.3 +- Ensure `Option` is correctly imported for TS query generation + + +## 6.0.4 Sep 20, 2021 + +Upgrade priority: Low. Recommended for all users on 6.0.3 using `api.query.*.*.at` calls + +Changes: + +- `api.query...at` will now use `at.at()` +- Use and expose `metadata/util/getSiName` to get human type names + + +## 6.0.3 Sep 19, 2021 + +Upgrade priority: Low. Recommended for all users on 6.0.2 using `api.query.*.*.at` calls + +Changes: + +- Fix `api.query...at` queries +- Adjust typegen formatting for metadata documentation + + +## 6.0.2 Sep 18, 2021 + +Upgrade priority: Low. Recommended for all users on 6.0.1, especially those using `api.query.bizinikiwi.*` calls + +Changes: + +- Fix `api.query.bizinikiwi.*` key generation + + +## 6.0.1 Sep 18, 2021 + +Upgrade priority: Low. Recommended for users of the latest Bizinikiwi/Pezkuwi with Metadata v14. + +- **Important** The Metadata v14 change allows the metadata to expose the chain types. This has been a major overhaul of the metadata handling, hence the major version bump. + +Contributed: + +- Allow for `.clone` on Http provider (Thanks to https://github.com/ianhe8x) + +Changes: + +- Allow for Metadata v14 parsing & usage +- Align `DigestItem` to latest Bizinikiwi +- Adjust Zagros `IdentityInfo` type for historic versions +- All `null` values in bundles min/max +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 5.9.1 Sep 13, 2021 + +Upgrade priority: Low. Recommended for chains using Xcm. + +Contributed: + +- Adjust Centrifuge `ProxyType` (Thanks to https://github.com/branan) + +Changes: + +- Additional types for teyrchain Disputes +- Adjust Xcm Error enum types +- Add Pezkuwi 9090 upgrade block +- Decoding enhancements with narrowing checks for TS + + +## 5.8.3 Sep 6, 2021 + +Upgrade priority: Low. + +Changes: + +- Adjust Statemint, Pezkuwichain and Zagros Xcm overrides + + +## 5.8.2 Sep 6, 2021 + +Upgrade priority: Low. + +Contributed: + +- Correct Xcm V1 `MultiLocation` definitions (Thanks to https://github.com/apopiak) + +Changes: + +- Adjust Zagros Xcm overrides + + +## 5.8.1 Sep 6, 2021 + +Upgrade priority: Low. + +Changes: + +- Add `Auction` to Zagros `ProxyType` definition +- Adjust Xcm definitions with latest v1 & v2 types +- Support for `scale-info` 1.0 `Range` mapping +- Bump static metadata for latest Bizinikiwi, Pezkuwi & Zagros + + +## 5.7.1 Aug 29, 2021 + +Upgrade priority: Low. + +Changes: + +- Optimize `Vec` construction (no re-create on new arrays) +- Adjust output for enums in `toHuman` +- Adjust aliases for new teyrchain module locations +- Support for versioned xcm types (Pezkuwi master) +- Add support for `Range` in `PortableRegistry` (used in Metadata 14) +- Adjust balances derive for non-existent instances +- Ensure Statemint (current) defaults to xcm v0 +- Add Zagros 9090 upgrade block + + +## 5.6.1 Aug 23, 2021 + +Upgrade priority: Low. Recommended for users of Xcm, preparing for Zagros/Zagros 9100 + +Contributed: + +- Support 0...N-1 args on `keys/entries` (Thanks to https://github.com/hamidra) + +Changes: + +- Updated XCM types, `AssetId`, `MultiAssets`, `MultiAssetV1`, `AssetInstanceV1`, `XcmOrderV1` +- Rename `Null` entry in `MultiLocation` to `Here` (Xcm V1) +- Zagros 9090 upgrade block +- Bump static Bizinikiwi, Zagros & Pezkuwi metadata + + +## 5.5.2 Aug 19, 2021 + +Upgrade priority: Medium. Contains fixes for teyrchain types, affecting historic block retrieval on Zagros. + +Changes: + +- Adjust `ValidDisputeStatementKind` enum to latest version +- Only enable API health keepalive on connections supporting subscriptions + + +## 5.5.1 Aug 15, 2021 + +Upgrade priority: Low. Recommended for users of TS (`createType` and `bigint` adjustments) + +Contributed: + +- Add `Range` & `RangeInclusive` types (Thanks to https://github.com/c410-f3r) +- Always use TS `bigint` type (Thanks to https://github.com/ntduan) + +Changes: + +- Loosen pedantic check not to fail on all-empty values +- Extend `createType` auto-TS decoration for `BreeMap`, `BTreeSet`, `HashMap`, `Range` +- Add Pezkuwi 9080 upgrade block + + +## 5.4.1 Aug 9, 2021 + +Upgrade priority: Low. Recommended for potential users of NMap. + +- **Important** The `ClassOf` alias for `createClass` has been removed, use `createClass` (with new generics) directly + +Contributed: + +- Enable `.keys()/.entries()` on NMap (Thanks to https://github.com/hamidra) + +Changes: + +- `createType('...': K)` now returns `Codec` when `K` is not known +- `createType` does basic TypeScript type matching on the input type +- Handle `BitSequence` in `PortableRegistry` +- Ensure API `isConnected` is set before connect/disconnect events are fired +- Move all static test support files into `@pezkuwi/types-support` +- Align static Metadata with latest Bizinikiwi, Pezkuwi & Zagros +- Adjust v14 Metadata definitions to latest version + + +## 5.3.2 Aug 3, 2021 + +Upgrade priority: Low. Recommended for users of bridges. + +Contributed: + +- Add missing bridges types (Thanks to https://github.com/tomusdrw) + +Changes: + +- Align static metadata with latest Bizinikiwi + + +## 5.3.1 Aug 2, 2021 + +Upgrade priority: Low. Recommended for users of `api.at(...)` interfaces + +Changes: + +- Check specName & specVersion for historic registries (caters for runtime renames) +- Fix circular dependencies in codec utils +- Fix `api.at()` to decorate with the correct storage hash +- Adjustments for upcoming metadata v14 in type creation & `PortableRegistry` +- Add Zagros 9080 upgrade block +- Add v13/v14 static metadata for Pezkuwi +- Align static metadata with latest Bizinikiwi + + +## 5.2.1 Jul 26, 2021 + +Upgrade priority: Low. Recommended for users of `BTreeMap` and `BTreeSet` + +Contributed: + +- Perform sorting on `BTree{Map, Set}`, aligning with Bizinikiwi (Thanks to https://github.com/Lezek123) + +Changes: + +- Adjust RPC to use `registry.createType` with optionality (required for metadata v14) +- Adjust alphabetical sorting for TS type generation +- Adjustments for upcoming metadata v14 in type creation & `PortableRegistry` +- Provide the capability to convert v13 Metadata to upcoming v14 + + +## 5.1.1 Jul 19, 2021 + +Upgrade priority: Low. Recommended for users of XCM with type fixes. + +- **Breaking changes** With the support for v14 metadata parsing, the `documentation` fields on metadata was renamed to `docs` for consistency, aligning with the SCALE type generators. + +Contributed: + +- Don't clear rpc decoration on Api clone (Thanks to https://github.com/ianhe8x) +- Align Xcm Junction type with Bizinikiwi (Thanks to https://github.com/dt665m) + +Changes: + +- Update `ParaPastCodeMeta` with `ReplacementTimes` +- Add mappings for `AccountId20` & `AccountId32` types +- Adjust scale-info types with Bizinikiwi (mapping for api-contracts to old) +- Allow nested structs in enum definitions & generation +- Allow for parsing of v14 metadata (not enabled by default, not merged into Bizinikiwi as of yet) + + +## 5.0.1 Jul 11, 2021 + +Upgrade priority: Low. Recommended for users of current-generation Bizinikiwi chains. + +- **Breaking change** The `@pezkuwi/metadata` package has been removed, adjust imports to `@pezkuwi/types` +- **Important** Internally rxjs has been upgraded to the 7.0 version, affecting users of the `ApiRx` interface + +Changes: + +- Remove the `@pezkuwi/metadata` package, consolidate into `@pezkuwi/types` +- Contract reads will now expose an additional `gasRequired` (total estimated) +- Allow schedule derives to handle scheduler entries that cannot decode +- Add missing historic `Heartbeat: HeartbeatTo244` mapping to Zagros +- Adjust Ws `.disconnect()` logic to always clear auto-connect +- Add `BlockNumberFor` type mapping +- Add Zagros 9080 upgrade block +- Add `derive.crowdloan.contributions(paraId)` +- Allow building as a completely stand-alone browser bundle (experimental) +- Update to latest `@pezkuwi/x-rxjs` with RxJs 7.2 +- Align static metadata with latest Bizinikiwi + + +## 4.17.1 Jul 5, 2021 + +Upgrade priority: Low. Allows cleaner access to multiple `.at` queries via new API. + +Contributed: + +- Added `Emergency` to `ElectionPhase` (Thanks to https://github.com/arjanz) + +Changes: + +- Added `await api.at()` to retrieve API instances at a point +- Added `fallbackType` for type classes (only struct, as defined) +- Allow `instances` API config to drive derive collective locations +- Ensure correct registry is attached to historic metadata +- Align static metadata with latest Bizinikiwi + + +## 4.16.2 Jun 27, 2021 + +Upgrade priority: Low. Recommended for Pezkuwi with runtime >= 9050. + +Changes: + +- Correct `CompactAssignments` & `RawSolution` types for Pezkuwi + + +## 4.16.1 Jun 26, 2021 + +Upgrade priority: Low. Recommended for full from-genesis queries on Zagros. + +Contributed: + +- Adjust types for uniques (Thanks to https://github.com/Yuripetusko) + +Changes: + +- Add Zagros, Pezkuwi & Zagros 9050 upgrade blocks +- Add Zagros & Zagros 9070 upgrade blocks +- Adjust API decoration to lazy-create event and storage types +- Use TS `override` as applicable (with `--noImplicitOverrides` option) +- Add missing historic `Heartbeat: HeartbeatTo244` mapping to Zagros +- Remove duplication from contracts registry +- Add explicit check for scale-info 0.7+ (contracts index lookups) +- Align static metadata with latest Bizinikiwi + + +## 4.15.1 Jun 19, 2021 + +Upgrade priority: Medium. Recommended for all chains where Xcm is used (addition of new `XcmOrigin`) + +Contributed: + +- Added `ChargeAssetTxPayment` extension (Thanks to https://github.com/apopiak) + +Changes: + +- Allow for type decoding of nested fixed vectors, tuples and structs +- Added `childstate_getKeysPaged` RPC +- Add `XcmOrigin` mapping for `OriginCaller` generation +- Align static metadata with latest Bizinikiwi +- Adjust error message for contracts V3 (extrinsic from runtime) +- Correct module optionality in `api.derive.balances.account` +- Add alias for `GenericAddress` -> `GenericMultiAddress` +- Adjust metadata doc generation (keep spaces between subsequent lines) + + +## 4.14.1 Jun 14, 2021 + +Upgrade priority: Low. Internal adjustment only, no major external usage changes. + +Contributed: + +- Adjust types for uniques (Thanks to https://github.com/hamidra) +- Add `ValidationCodeHash` type (Thanks to https://github.com/andresilva) +- Extend `OriginCaller` type creation (Thanks to https://github.com/xlc) + +Changes: + +- Do strict length checking on `[u8; ]` type inputs +- Adjust keys/entries retrieval batch sizes +- Add upgrade block for Zagros 9040 +- Use `BN` imports from `@pezkuwi/util` + + +## 4.13.1 Jun 6, 2021 + +Upgrade priority: Medium. Required for users connecting to Statemine and future Zagros upgrades. + +Changes: + +- Overrides for `westmint` spec (same as `statemint`) +- Adjust `tx.session.setKeys` TS augmentation to allow `string` & `Uint8Array` keys +- Add & adjust types for latest Pezcumulus code +- Added 9031-9033 upgrade block for Zagros +- Update static metadata to latest Bizinikiwi +- Optimize map retrieval with split page sizes for keys & values +- Sanitizing `BN` imports to `type`-only as required + + +## 4.12.1 May 30, 2021 + +Upgrade priority: Low. Internal adjustment only, no major external usage changes. + +Changelog: + +- Update `FundInfo` type with Pezkuwi (Thanks to https://github.com/arjanz) + +Changes: + +- Allow storage queries with default keys values +- Align identity `Data` to limit to 32 bytes in the `Raw` enum (as per Bizinikiwi) +- Align static (test & docs-only) metadata with latest Bizinikiwi master +- Added 9030 upgrade blocks for Zagros & Zagros +- Cleanup of Eth pallet RPC definitions +- Cleanup README for `@pezkuwi/rpc-core` (recommended for internal-usage only) +- Cleanup internal tests (no dangling handles, cater for Jest 27) + + +## 4.11.2 May 24, 2021 + +Upgrade priority: Low. Recommended where users are having TS mismatches with type definitions created on older versions. + +Changes: + +- Add backwards-compatible TS-only `AugmentedQueryDoubleMap` type (unused now in type generation) + + +## 4.11.1 May 23, 2021 + +Upgrade priority: Low. Recommended for users using staking entries on Pezkuwi and users of Bizinikiwi master. + +Changes: + +- Fix metadata v13 storage decoding on `NMap` +- Add augmentation & keys/entries for NMap types +- Return additional error information from internal u8a decoding failures +- Adjust Zagros types for 16 nominators-only +- Add support for `DisallowSigned` (as per shell runtime) extension +- Display small hex-slice with u8a decoding failures +- Add `state_getChildReadProof` RPC +- Cleanup Pezkuwichain known types (only as used) +- Under Node.js allow for WS receiving up to 16MB messages +- Update entries/keys for max of 256 items per call + + +## 4.10.1 May 17, 2021 + +Upgrade priority: Medium. Recommended for uses of Pezkuwi/Zagros 9010 runtimes. + +- **Breaking change** Support for the contracts V2 compatibility has been dropped in `@pezkuwi/api-contract` + +Contributed: + +- Expose RPC definitions via `.meta` (Thanks to https://github.com/jiqiang90) +- Adjust staking derives for chain-specific optional fields (https://github.com/WoeOm) +- Update base Centrifuge types (Thanks to https://github.com/branan) + +Changes: + +- Allow for `Bounded*` type usage (as per latest Bizinikiwi) +- Adjust internal TS definitions for providers +- Fix `ContractRx` query result definitions (no extra Observable) +- Handle contract call RPC result directly as `Raw` (returned as hex) +- Use `BN_*` constants as non-specified defaults in contract interfaces +- Remove all type overrides for node/node-template (API tracks latest) +- Contracts ABI now supports metadata version where indexes are 0-based +- Remove support for the old-style V2 contracts from `@pezkuwi/api-contract` +- Adjust historic decoration, return as-at registry via `getHeader`, `getMetadata` & `getRuntimeVersion` +- Adjust `VecFixed` to allow for the handling of hex inputs +- Adjust `Compact<*>` to allow for wrapped `toBigInt()` conversions +- Fix `isPedantic` decoding to correctly handle `Text` +- Cater for new `phragmenElection` module naming +- Add Zagros & Zagros 9010 upgrade blocks +- Adjust `CompactSolution` for 24 nominators +- Bump static metadata to latest Bizinikiwi + + +## 4.9.1 May 6, 2021 + +Upgrade priority: Medium. Required for the next v0.9.0 Pezkuwi/Zagros chain upgrades where teyrchains are used. + +- **Breaking change** The previously deprecated contracts interfaces, has been removed. Update to `.query.*`, `.tx.*` and `.tx.*` interfaces as per the previous code usage hints. +- **Important** By default the `isPedantic` mode is now switched on for storage queries. This means that the API will fail on any types where the input/output decoding doesn't match 100% + +Changes: + +- Re-add isPedantic check on storage decoding +- `ConsensusEngineId` now implements `[u8;4]` (mapping closer to Rust source) +- Additional Xcm types +- Adjust teyrchain types +- Remove error logging on createType (details passed in error) +- Adjust `ContractInfo` type as per latest Bizinikiwi +- Adjust `DigestItem` type as per latest Bizinikiwi +- Adjust re-encoding of `BitVec` based on decoded length +- Added `contracts_instantiate`, `state_traceBlock` & `system_reservedPeers` RPCs +- Prepare for auto-capability detection with historic `.at` queries +- Add known upgrade block for Zagros 900 & 9000 +- Remove all deprecated interfaces inside `@pezkuwi/api-contracts` +- Initial support for NMap storage keys +- Support metadata v13 from Bizinikiwi (upcoming upgrade) +- Optimize historic metadata retrieval from rpc core + + +## 4.8.1 May 2, 2021 + +Upgrade priority: Low. Recommended when using or developing for teyrchains. + +Changes: + +- De-alias xcm `Outcome` (used in multiple pallettes) +- Adjust xcm types as per latest, e.g. `XcmError` +- Fix generate of well-known storage keys (e.g. `:code`) +- Optimize metadata unknown type validation +- Allow metadata creation for `Map` or `Record` +- Expose additional camelCase `method` on `AbiMessage` (maps to decorated name) +- Added explicit double-byte ss58 `AccountId` encoding test +- Add known upgrade block for Pezkuwi v30 +- Cleanup WebSocket handlers when close event has been received +- Update to latest Bizinikiwi metadata + + +## 4.7.2 Apr 26, 2021 + +Upgrade priority: Low. Recommended for users of 4.7.1 using nvm + +Changes: + +- Update `EthBlock`/`EthHeader` types (as per Rust origin) +- Updated Xcm `OriginKind` enum +- Add derives for `membership` +- Cleanups on encodedLength calculations +- Update `.nvmrc` to reflect engines changes + + +## 4.7.1 Apr 25, 2021 + +Upgrade priority: Low. Recommended for users following Bizinikiwi master. + +Changes: + +- Adjust Struct decoding with better error messages on invalid input objects +- Add support for new `BoundedVec` type +- Expand `Data` type (as used in identity), with all is/as getters +- Updated `Xcm` types (with Plularity) +- Adjust `DispatchError` type as per current Bizinikiwi master +- Adjusted Statemint `Proxy` type +- Remove metadata generation dependency on well-known.json (dedupe) +- Adjust WebSocket reconnection delay from 1s to 2.5s +- Revert Beefy keys addition for Zagros +- Add explicit `engines` config to `package.json` +- Support for `None` in `RewardDestination` +- Align with latest bizinikiwi metadata + + +## 4.6.2 Apr 19, 2021 + +Upgrade priority: Low. Recommended for users of Zagros/Pezkuwi. + +Changes: + +- Correct Zagros/Pezkuwi runtime 30 session key definitions + + +## 4.6.1 Apr 19, 2021 + +Upgrade priority: Low. Recommended if used in a Node.js 15.x environment. + +Changes: + +- Assert keypair validity in signing operations +- Expose `internalError` on submittable results (e.g. event decoding errors) +- Simplify session derives for old/new +- Add Statemint to known types +- Add support for `rpc.beefy.subscribeJustifications` +- Update Xcm types +- Explicitly handle `isReadyOrError` with `Api.create` +- Add Zagros upgrade block for 2030 + + +## 4.5.1 Apr 12, 2021 + +Upgrade priority: Low. Recommended with usage with the Pezkuwichain testnet. + +Changes: + +- Update teyrchain types as per latest Pezkuwi +- Cater for `Keys` with `BEEFY` session keys +- Update `Keys` injection to allow for on-chain type detection +- Add `Zagros` known upgrade block for runtime 50 +- Align types with latest Bizinikiwi master +- Adjust keepalive `system_health` timer + + +## 4.4.1 Apr 5, 2021 + +Upgrade priority: Low. Recommended with usage with the Pezkuwichain testnet. + +Changes: + +- Add `ServiceQuality` type for Pezcumulus +- Adjust XCM MultiLocation type (X5 to X8 junctions) +- Add Pezkuwi 29 upgrade block + + +## 4.3.1 Mar 29, 2021 + +Upgrade priority: Low. + +Contributed: + +- Fix documentation on ABI parameters (Thanks to https://github.com/vminkov) + +Changes: + +- Warn on usage of deprecated contract interfaces +- Update `ParaInfo` type +- Council should be optional in treasury derives +- Allow extraction of session derives indexes with no staking + + +## 4.2.1 Mar 22, 2021 + +Upgrade priority: Low. Recommended when tracking the latest updates from Bizinikiwi. + +Contributed: + +- Fix contract even decoding on Bizinikiwi 3 (Thanks to https://github.com/vminkov) + +Changes: + +- Adjust `Extender{Header, SignedBlock}` types to ensure at-block `Header` types are used +- Explicit definition for new Pezkuwichain triple refcount `AccountData` types +- Convert metadata private class fields to ES-private +- Adjust `SignedBlock` type for new `justifications` field +- Optimize society derive for multi accounts +- Bump metadata to latest bizinikiwi version + + +## 4.1.1 Mar 15, 2021 + +Upgrade priority: Low. Recommended when tracking the latest updates from Bizinikiwi. + +Changes: + +- Fix author extraction for last block in a session +- Expand `SignerPayload` to inject/expose custom signed extensions +- `ConsensusEngineId` formats non-Ascii engines correctly +- Allow `getBlock/Header` derives to use as-at registry (instead of latest) +- Cleanup `RpcCore` augmentation (removing TS warnings on typegen chains) +- Add upgrade block for Zagros 2029 +- Ensure that type alias overrides also apply to map keys +- Check type generation against fallbacks (build-time only sanity check) +- Add `mmr_generateProof` RPC +- Align types with latest bizinikiwi master +- Apply latest Pezkuwi auctions/crowdloan/teyrchains/slots types + + +## 4.0.3 Mar 8, 2021 + +Upgrade priority: Low. Recommended if you use the API to sync the full chain, most notably Pezkuwi. + +Contributed: + +- Re-add unused historical `SudoBalances` to `ProxyType` (Thanks to https://github.com/emostov) + + +## 4.0.2 Mar 8, 2021 + +Upgrade priority: High. Required if you are using 4.0.1 in a Node.js environment. + +Changes: + +- Fix import from `@pezkuwi/x-rxjs` in Node environments (From common) +- Add correct types for `Phase` is new validator elections module + + +## 4.0.1 Mar 7, 2021 + +Upgrade priority: Low. Recommended for users wanting to keep updated with chain changes. + +**Important** In the 4.0 version the default package type has been changed to ESM modules by default. This should not affect usage, however since the output formats changed, a new major version is required. + +Contributed: + +- Expose `unknownTypes` on the registry interface (Thanks to https://github.com/ii-ii-ii) + +Changes: + +- Build to ESM by default (with cjs versions via export map) +- Enum `.toSON()` now encodes all keys as `camelCase` (aligning with the output from Bizinikiwi) +- Add `createdAtHash?: Hash` to `Codec` interface (filled-in by storage retrievals) +- Expose the source hash as `wamHash` on Abi parsed instances +- Use `parentHash` when creating mortal era (handles frequent forks better) +- Add `AccountInfoWithTripleRefCount` to cater for latest Bizinikiwi +- Add upgrade block for Zagros 49 + + +## 3.11.1 Feb 28, 2021 + +Upgrade priority: Low. Recommended for users wanting to keep updated with chain changes. + +Contributed: + +- Clean Websocket states on disconnects (Thanks to https://github.com/ianhe8x) +- Support for C-like indexed enums (Thanks to https://github.com/xlc) + +Changes: + +- Adjust council derives to cater for current-generation candidate mapping +- Allow for override of codec hasher (& output type) +- Adjust submittables to submit hex-encoded addresses to queries +- Adjust initialization to always retrieve tx version from Metadata only +- Update election types as per latest Bizinikiwi +- Add types for the new gilt module +- Upgrade to the latest Bizinikiwi metadata +- Adjust package detection to check for local monorepo dependencies +- Ensure that metadata `.toJSON()` does apply type aliasses + + +## 3.10.2 Feb 23, 2021 + +Upgrade priority: Medium. Recommended for users of chains where `MultiAddress` is in-use and blocks are decoded. + +Changes: + +- Fix decoding for `MultiAddress` enum where non-`AccountId` variable-lengths are provided as part of a stream +- Added known Pezkuwi 28 upgrade block +- Update for latest Bizinikiwi contracts `Schedule` types + + +## 3.10.1 Feb 22, 2021 + +Upgrade priority: Low. + +Changes: + +- Adjust ConsumedWeight types to align with Rust module code +- Check for connection status in subscription unsubscribe +- Adjust staking reward derives ordering for better performance +- Adapt detection imports to remove `.json` dependencies (Better behavior using Node.js with ESM) + + +## 3.9.3 Feb 16, 2021 + +Upgrade priority: Low. Recommended for teyrchain builders since it contains the updated teyrchain types. + +Changes: + +- Adjusted teyrchain `PersistedValidationData` structure + + +## 3.9.2 Feb 15, 2021 + +Upgrade priority: Low. Recommended for teyrchain builders since it contains the latest teyrchain types. + +Contributed: + +- Update README links (Thanks to https://github.com/wirednkod) + +Changes: + +- Added missing Culmulus `TeyrchainInherentData` & `MessageQueueChain` types +- Add alias for `system_unstable_networkState` RPC + + +## 3.9.1 Feb 14, 2021 + +Upgrade priority: Low. + +- **Important** The `Result` has been updated in the generation and the base types to follow the Rust version 100%. This means `{as, is}Error` is now available as `{as, is}Err` on the `Result` type. The older versions can still be used, but the `*Error` interfaces are now marked as deprecated. + +Changes: + +- Adjust `Result` interface to be 100% compatible with the Rust version +- Add the `2028` upgrade to the known upgrades (optimizing certain `.at` queries) +- Adjust council derives to cater for latest Bizinikiwi & Pezkuwi +- Adjust Pezkuwichain know type definitions to cater for the latest update +- Update types for latest Pezkuwi/Bizinikiwi +- Add generic arguments for TypeScript users to `.entries/.keys` to deal with the key typings + + +## 3.8.1 Feb 7, 2021 + +Upgrade priority: Low. Recommended for users of the latest Bizinikiwi master, especially using contracts. + +- **Important** The `api-contract` `Code` now supports deploying the code and a contract in on operation. This aligns with the latest Bizinikiwi where code cannot be uploaded with a contract. The `createBlueprint` is therefore deprecated, use `code.tx.(...)` to deploy code. (Compatible with both old and new versions of Bizinikiwi) + +Contributed: + +- Add support for latest Frontier RPCs (Thanks to https://github.com/jnaviask) +- Fix user-supplied signed extensions type signature (Thanks to https://github.com/ntduan) + +Changes: + +- Expand `api-contract` to allow for `Code` to deploy contract alongside code. `createBlueprint` is now deprecated, replaced by `createContract` or the preferred `code.tx.`, which uploads and deploys the code in one operation. This aligns with the current Bizinikiwi master contracts implementation. +- Allow for signed extensions to be supplied inside type bundles +- Ensure that the auto-connect state is checked on auto-connections (respecting disconnect) +- Added `CancelProxy` to `ProxyTypes on Pezkuwi, Zagros & Zagros +- Updated to latest Bizinikiwi metadata + + +## 3.7.3 Feb 2, 2021 + +Changes: + +- Added Pezkuwi upgrade block for runtime 27 (known checkpoint optimization) + + +## 3.7.2 Feb 2, 2021 + +Changes: + +- Adjusted the `Keys` type for the 28 runtime on Zagros, Pezkuwi & Zagros + + +## 3.7.1 Feb 1, 2021 + +Upgrade priority: Low. However recommended for current Bizinikiwi master, Pezkuwi and Pezkuwichain users and those wishing to support the upcoming Pezkuwi 28 runtime with the new `MultiAddress`. + +- **Breaking change** As indicated in the 3.5.1 release notes, the `Address`/`LookupSource` defaults have now been adjusted for `MultiAddress`. If your chain does not use these types, explicitly add the correct `Address`/`LookupSource` types. This new extensible format is mean to cater for all address types into the future, removing a lot of discrepancies between chains. + +Contributed: + +- Extraction of the block author on Moonbeam (Thanks to https://github.com/joelamouche) +- Cleanup logs with HTTP providers, no subs (Thanks to https://github.com/Tbaut) + +Changes: + +- Allow `.slice` operator on the `Vec` type +- Apply `MultiAddress` as a default +- Adds support for the upcoming Pezkuwi 28 and Zagros 2028 runtimes +- Add checkpoint for Zagros 2027 upgrade +- Update all teyrchain types (as per latest Pezkuwichain) +- Correctly use relay blockNumber in teyrchain validation data +- remove information log for capabilities detection (creates confusion) +- Remove explicit references to `global`, use the `x-global` detection +- Remove explicit `module` in `package.json` (exports map available) + + +## 3.6.1 Jan 24, 2020 + +Upgrade priority: Medium if not already on at least 3.3.1. The next upgrade of Zagros/Pezkuwi requires it. + +- **Breaking change** To support chains with multiple tokens, such as bridges, the `ChainProperties` type now returns an array of tokens and decimals (instead of singular values) in the `token{Decimals, Symbol}` getters. Additionally, this means that the `registry` interfaces has been changes, to `registry.chainDecimals: number[]` and `registry.chainTokens: string[]`. Where used the `[0]` index will return the first value if only interested in a single, for a straight conversion. + +Changes: + +- Allow for the detection of on-chain capabilities as available (e.g. `AccountData`, `ValidatorPrefs`) +- Cater for multiple tokens and decimals in the chain the chain `system.properties` (as per the chain specification) +- Add a `instances: { [key]: [module1, module2] }` definition in teh bundle types, allowing for multiple instances (e.g. Balances) +- Adjust the `api-derive` for balances to retrieve values via `instances` as well as across multiple modules +- Ensure all types are registered for all metadata typegen steps +- Add `rpc.payment.queryFeeDetails` RPC endpoint +- Update types & metadata to latest Bizinikiwi +- Move the `@pezkuwi/x-rxjs` package into the common repo +- Allow doc generation for errors/events (markdown outputs) + + +## 3.5.1 Jan 18, 2020 + +Upgrade priority: Low. Recommended for teyrchain developers. + +- **Important** The default for Bizinikiwi on the Address types are `MultiAddress`. It is recommended that chains add explicit definitions for `Address` and `LookupSource` in their types, instead of relying on the API-defaults. A future update will swap the API defaults to align with Bizinikiwi. +- **Important** Like the above changes in Bizinikiwi, the `AccountInfo` structure has also changed. It is recommended that chain developers explicitly add `AccountInfo: 'AccountInfoWithRefCount'` for the version with `refCount` on and `AccountInfoWithProviders` for the latest Bizinikiwi version. As per the above, the API defaults will be changed to align with Bizinikiwi. + +Contributed: + +- Apply correct TypeScript type for `toBigInt()` (Thanks to https://github.com/ianhe8x) +- Expand type definitions for storage key tuples (Thanks to https://github.com/monitz87) +- Adjust bounty derive to cater for non-council chains (Thanks to https://github.com/ekowalsk) + +Changes: + +- Remove recursion in vector/struct U8a stream decoding +- Availability of staking made optional in session length calcs (era does require it) +- Updates to teyrchain types, ensuring it has coverage for all the latest +- Update all Pezkuwichain types to the latest (session keys, session reports, teyrchain indexes) +- Update known upgrade checkpoints fo WestEnd +- Add types of the lottery module in Bizinikiwi +- Add and extend types for the crowdloan module in Pezkuwi +- Adjust node-template to default to `MultiAddress` on specVersion >= 100 + + +## 3.4.1 Jan 11, 2020 + +Upgrade priority: Low. Fixes for teyrchain types, `.entries()` (with no values) and `event.is(...)` checks, users of these interfaces will have benefit. + +- **Breaking change** The `derive.chain.{getBlock, subscribeNewBlocks}` now return `SignedBlockExtended`, all with the actual extrinsics and events mapped. Users of the latter interface should take note. + +Contributed: + +- Fix `SessionKeys{6-9}` definitions (Thanks to https://github.com/icodezjb) +- Support `Vec<(a, b)>` in enums (Thanks to https://github.com/monitz87) +- Add motions to bounty derive (Thanks to https://github.com/ekowalsk) + +Changes: + +- `derive.chain.getBlock()` now maps events to extrinsics via `.extrinsics` getter +- Ensure dispatchInfo is extracted on failed extrinsics (`getBlock` derive) +- Allow specification of additional signed extrinsic via API options +- Add missing teyrchain types, `ParaGenesisArgs` +- Correct `EthTransaction` type (as per the correct cargo crate) +- Update with latest contract types for Bizinikiwi master +- Update alias mapping for asset palette (including Bizinikiwi starting defaults) +- Allow `.entries()` call where 0 keys are present +- Fix `.is` on events not checking the correct index +- Construction of `i*` types ow correctly checks for max positive/negative + + +## 3.3.1 Jan 4, 2021 + +Upgrade priority: Low. Recommended for users of frontier evm module with additional types. + +Contributed: + +- Expand bounty derives (Thanks to https://github.com/ekowalsk) +- Adjust known-types (Thanks to https://github.com/mikiquantum) + +Changes: + +- Parallelize the API-init RPC calls for faster overall startup +- Add `ExitReason` types for the frontier evm module +- Adjust checks for indexed/non-indexed module checks (metadata decoration) +- Apply module aliases on constants (aligning with events, extrinsics) +- Allow for use of `system.ss58Prefix` as exposed (current Bizinikiwi master) +- Correct use of api-contract `blockWeights.maxBlock` in estimation +- Build metadata docs & interfaces with section aliases +- Update to latest Bizinikiwi master metadata in tests + + +## 3.2.1 Dec 27, 2020 + +Upgrade priority: Low. Recommended for users of teyrchains. + +Contributed: + +- Adjust metadata `.asV12` type signature (Thanks to https://github.com/yjhmelody) + +Changes: + +- Add `api.{errors, events, query, tx}.
..is(...)` +- Remove support for staking pre Bizinikiwi 2.0 +- Add all frontier types & RPCs +- Support `AccountInfo` with new provider/consumer refCount structure +- Additional Pezcumulus teyrchain types +- Consistently format number JSON based on bitLength +- Cleanup metadata -> api dependencies +- Update `@pezkuwi/util` to 5.2.1 + + +## 3.1.1 Dec 20, 2020 + +Upgrade priority: Low. Recommended for users of teyrchains. + +Contributed: + +- Additional teyrchain types (Thanks to https://github.com/joelamouche) +- Support for multi queries with `HttpProvider` (Thanks to https://github.com/ianhe8x) +- Configurable error logging with `createTypeUnsafe` (Thanks to https://github.com/dvdplm) + +Changes: + +- Adjust core type creation, removing storage duplication +- Update teyrchain types to support Pezkuwichain v1 +- Adjust bounties derive to cater for new Bizinikiwi namespaces (& move to bounties) +- Mark `detectPackage` as known side-effect +- Add `detectPackage` to `@pezkuwi/metadata` (a number of requests on this) +- Adjust x-rxjs wrapper to expose all methods, incl. Node.js esm fixes +- Update to latest Bizinikiwi static metadata +- Update `@pezkuwi/util` to 5.1.1 + + +## 3.0.1 Dec 14, 2020 + +Upgrade priority: Low. Recommended for the next Zagros/Pezkuwi upgrades due to additional types and those following chains following Bizinikiwi master closely. + +**Important** While this package contains no external interface changes, it now compiles and ships both cjs and esm modules. This means that modern bundlers will have more information for tree-shaking available. Additionally when using Node with `.mjs` extensions, the esm version imports will be used on recent Node versions. Adding an export map, as here, may have some impacts so a major semver bump is advised. There may be (small) dragons hiding in the dark corners... + +Contributed: + +- Injection of derives via typesBundle (Thanks to https://github.com/pr0fedt) +- Added derives for bounties (Thanks to https://github.com/krzysztof-jelski) + +Changes: + +- Build and expose both cjs and esm via exports map +- Inject RPC definitions for typesBundle, allowing per-spec configuration +- Added `query.
..sizeAt(hash, [...params])` for all storage +- Add new Bizinikiwi consumed Weight types +- Expand `SessionKeys` definitions (up to 9) +- Cleanup circular `Type` <-> `Text` definitions +- Cleanup circular `Metadata` <-> `TypeRegistry` imports +- Update `@pezkuwi/util` to 5.0.1 + + +## 2.10.1 Dec 7, 2020 + +Upgrade priority: Low. Recommended when following Bizinikiwi master and/or teyrchains development, contains the latest types for both. + +- **Breaking change** If using the `staking.query` derive, you now need to pass flags as to which values to retrieve + +Changes: + +- Ensure that maximum era is limited to `consts.system.blockHashCount` (don't overflow on very low blocktimes) +- Apply current Pezkuwi master teyrchain types +- Apply current Bizinikiwi master asset types +- Add `system_{addLogFilter, resetLogFilter}` RPCs +- Adjust tests for latest Bizinikiwi metadata +- Adjust staking derives to be more performant (flags indicate which query values to retrieve) +- Add account derive to cater for the availability of identities +- Use `import type` in all cases + + +## 2.9.1 Nov 30, 2020 + +Upgrade priority: Low. No major changes when on at least 2.8.2. Users encouraged to upgrade to at least that patch. + +- **Breaking change** The API will now not attempt to queue calls made while not connected and send on connection. Rather when making a call and the RPC node is not connected, an error will be thrown. + +Contributed: + +- Add typegen capability for custom RPCs (Thanks to https://github.com/holygits) + +Changes: + +- Remove rpc-core send queue, only allow sends while connected +- Adjust staking derive for `electedInfo` to contain details of current validators +- Extract identity-only derive from `accounts.info` for simpler reusability +- Add types for Bizinikiwi master node (to allow for consistent swapping to `MultiAddress`) +- Adjust `Bytes` with `.slice` to be consistent for `Uint8array` extensions (already released in 2.8.2 as a bugfix) + + +## 2.8.1 Nov 23, 2020 + +Upgrade priority: Low. Recommended if using Bizinikiwi master with new `MultiAddress`. + +Contributed: + +- Export `derive.chain.getBlock` (Thanks to https://github.com/lovesh) + +Changes: + +- Expand `MultiAddress` construction with multi type detection +- Rename `GenericLookupSource` to `IndicesLookupSource` (internal use) +- Cleanup list retrievals with `Raw` data results for undecodable entries +- Export actual version via `RegistryMetadata` +- Dedupe bn.js (one version shared between dependencies) + + +## 2.7.1 Nov 16, 2020 + +Upgrade priority: Medium. Recommended for users of Pezkuwi/Zagros and api-contract users. + +Changes: + +- Allow for `ExtrinsicSignature` overrides (defaults to `MultiSignature`) +- Update api-contract `Blueprint` to allow for optional salt (auto if not provided) +- Support for ink! `.contract` files (in addition to ABI `.json`) +- Fix contract event decoding with pass-through of raw `Bytes` +- Fix support for enum encoding in api-contract +- Support new contract `Schedule` type as per Bizinikiwi +- Update Zagros/Pezkuwi known upgrade blocks +- Adjust typegen generated `@pezkuwi/types` imports +- Adjust internal `@pezkuwi/types` imports/exports (overall bundle sizes) + + +## 2.6.1 Nov 9, 2020 + +Upgrade priority: Low. Should be done alongside an update to `@pezkuwi/util` to 4.0 + +Changes: + +- Adjust auto-gas to contract RPC call to 5 * 10 ^ 12 (align with Rust) +- Adjust derive `AccountId` check to take Ethereum-compatible chains into account +- Fallback for chains with invalid council proposal data in derives +- Bump static v12 Metadata (tests) to latest Bizinikiwi version +- Bump `@pezkuwi/{util,util-crypto}` to 4.0 (optimized WASM layers) + + +## 2.5.1 Nov 2, 2020 + +Upgrade priority: Low. Recommended for `api-contract` developers. + +- **Breaking change** Bizinikiwi changed the `ContractExecResult` from `api.rpc.contracts.call`. The API does have pass-through support for both old and new variants via the `Contract` interface, however it means the structure has changed to accommodate the new Bizinikiwi structure. Refer to the [docs for the latest interface](https://js.pezkuwichain.app/docs/api-contract/start/contract.read) (including `isSuccess/isError` -> `isOk/isErr`, and the availability of the `gasConsumed`) + +Contributed: + +- Dedup similar types on generation (Thanks to https://github.com/monitz87) + +Changes: + +- `Contract` execution will now return contract events decoded in the result +- Add `.dryRun` on extrinsics (alongside `.paymentInfo` usage) +- Add `system_syncState` and `syncstate_genSyncSpec` RPCs +- Enhance error reporting, `Call` indicates explicit call as found +- Adjust internal metadata decoration and use as exposed from `@types/metadata` +- Expand Pezkuwichain known types to cater for v1 (specVersion 10) +- `registry.hash` now returns an `H256` object (as opposed to raw Uint8Array) +- Use utility logger in all relevant error messages (consistency in logging) +- Add `derive.council.proposal()` for retrieval of a single (expanded) proposal +- Correctly and transparently format type generation types (allowing for nested variants) + + +## 2.4.1 Oct 26, 2020 + +Upgrade priority: Low. No breaking changes, however it does move `api-contract` forward with additional features. + +Contributed: + +- Add support for both `{i,u}256` types on contracts (Thanks to https://github.com/seanyoung) + +Changes: + +- Add `.keysAt` & `.entriesAt` to query maps at a specific blockHash +- Adjust ordering of type injection, any `types: { ... }` definitions not have precedence +- Correctly format Tuples in both RPC and const definitions as part of type generation +- Add node-template to known types (tracking inside API), remove warnings for the spec +- Add initial implementation for new Bizinikiwi `MultiAddress` type +- Add `api.derive.chain.subscribeNewBlocks` for full block retrievals +- Contracts identifiers to `.{exec, read}('name', ...)` now matches on both snake_case and camelCase (consistency) +- Cleanup contracts serialization for messages to allow both to and from +- Add deserialization of contract events against the ABI +- Adjust contracts metadata parsing to be future-proof with type retrievals +- Add tests for Solang into contracts, re-organize layout per type + + +## 2.3.1 Oct 19, 2020 + +Upgrade priority: Low. Recommended for `api-contract` developers and those using large messages via Node.js WS. + +Contributed: + +- Adjust frame size for Node.js WebSockets (Thanks to https://github.com/mnaamani) +- Update warnings to reflect new docs URLs (Thanks to https://github.com/aphelionz) + +Changes: + +- Expose `dispatch{Error, Info}` on all `.tx` results (less boilerplate on info checks) +- Add missing primitive types inside contracts type parsing +- Adjust api-contract to expose `Contract.{query, tx}.` and `Blueprint.tx.` +- Rework contracts registry to be generic to all scale-info definitions +- Allow for auto-max weight on contract read/exec (useful in estimation) +- Fix memoization where `BigInt` params are passed + + +## 2.2.1 Oct 12, 2020 + +Upgrade priority: Low. + +- **Breaking change** `@pezkuwi/api-contract` now only supports ink! 3.0-rc1 and later formats. Users of ink! 2.1 are recommended to stay on an older version until upgraded. + +Contributed: + +- Add latest Ink! types (Thanks to https://github.com/ascjones & https://github.com/kwingram25) +- Add base for new contract metadata parsing (Thanks to https://github.com/ascjones & https://github.com/kwingram25) + +Changes: + +- Introduce `OriginCaller` type (& apply to scheduler types) +- Adjust `ContractInfo` type for latest Bizinikiwi (contracts) +- Adjust `Schedule` type for latest Bizinikiwi (contracts) +- Allow snake_case to be handled transparently in structs +- Full new api-contract developer interfaces (Code, Blueprint, Contract) +- Rework Abi & Abi Registry use & parse (based on contributed) for efficiency & non-global clobber +- Allow `null` input on `Text` values in addition to existing `undefined` +- Remove all documentation after move to https://github.com/pezkuwichain/pezkuwi-docs repo +- Adjust type encoding from TypeDef, s/encodeType/encodeTypeDef/ + + +## 2.1.1 Oct 5, 2020 + +Upgrade priority: Low. + +Contributed: + +- Remove unused documentation link (Thanks to https://github.com/roccomuso) + +Changes: + +- Adjust RPC error formatting with string cleanups and a larger allowed range +- Apply limit protection on `Text` & `Bytes`, protecting against OOM on erroneous decoding +- Add `derive.staking.validatorsFrom` to determine validators nominated and own validators +- Cleanup document generation without (currently unused) summary links +- Rename static TRANSACTION_VERSION to EXTRINSIC_VERSION (Bizinikiwi alignment) +- Bump Bizinikiwi metadata (tests, doc generation) + + +## 2.0.1 Sep 28, 2020 + +Upgrade priority: Medium. Required for all teams building on Bizinikiwi 2.0 for full compatibility. + +- **Important** The `RefCount` type (used by `query.system.accounts`) has been changed to a `u32`. On older chains supply the `RefCount: 'RefCountTo259'` override +- **Breaking change** Metadata versions before v9 as not supported anymore. v4 was the first version to go with the Bizinikiwi 1.0 while Zagros itself starts at v9 as the earliest version. This means that Bizinikiwi 1.x chains that have not had any upgrades are not supported in this version of the API anymore. +- **Breaking change** Extrinsic versions before v4 (1-3) are not supported anymore. This aligns with the above metadata change, where v4 is the canonical version. +- **Breaking change** Support for the old-style linked-map retrievals via `query..map()` have been dropped, only the existing `.keys()/.entries()` are available for map iteration. + +Contributed: + +- Add secondary fields to EpochAuthorship (Thanks to https://github.com/andresilva) +- Add support for FixedVec in enums (Thanks to https://github.com/monitz87) + +Changes: + +- Drop support for Bizinikiwi 1.0 metadata versions 1-8 +- Drop support for Bizinikiwi 1.0 extrinsics version 1-3 +- Add support for `grandpa_proveFinality` RPC +- Drop support for linked map queries not via .entries (deprecated since early versions of Bizinikiwi 2) +- Support `.entries()` on older chains without `queryStorageAt` support +- Add bounty type definitions from treasury palette +- Adjust `RefCount` type as per bizinikiwi 2.0 +- Add `PalletVersion` types for future palette versioning +- Adjust formatting for `Per{cent, bill, mill}` without instance checks +- Skip invalid keys on validator retrievals + + +## 1.34.1 Sep 21, 2020 + +Upgrade priority: High. Metadata v12 is the next major version containing structural data exchange changes and will start rolling out to test and live networks in due course. + +- **Breaking change** The `Decorated` (from `@pezkuwi/metadata`) class signature has changed. It now always expects a valid `Metadata` object to be passed-in, instead of raw data. It is recommended to create a `Metadata` object, set it on the registry with `.setMetadata` and then only create a `Decorated` instance. (Only affects metadata-only users of the API) + +Contributed: + +- Added support for POW block author extraction (Thanks to https://github.com/sorpaas) + +Changes: + +- Ensure Metadata retrieval does not pollute the default registry +- When passing `{ nonce: -1 }` to `signAndSend` the API will use `system.accountNextIndex` to determine the nonce +- Ensure that upgrades override old registry types (non-specified in current) +- Support for Metadata v12 with fixed indices +- Cleanups for WebSocket class detection and creation +- Ensure that ignored map params yield an error on `iterKey` +- Cater for older chains in derive democracy locks (availability detection) + + +## 1.33.1 Sep 14, 2020 + +Upgrade priority: Low. Recommended when using clones instances. + +Changes: + +- Allow `paymentInfo` on any extrinsic with `tx.paymentInfo(
, )` (hash specified) +- When cloning an API instance the runtimeChain is now properly set from source +- When cloning an API instance the registry is shared with the source +- Optimize derive `receivedHeartbeats` to not re-create the full object +- Add `staking.stakerPrefs` derive to retrieve validatorPrefs over a range of eras +- Basic map of Websocket error codes to short descriptions (where none available) + + +## 1.32.1 Sep 7, 2020 + +Upgrade priority: Low. Recommended when manually using provider connect/disconnect or using multiple instances in a single process. + +- **Breaking change** Previously `.isReady` could throw an error, now it will always succeed on connection. For trapping errors, use the `.isReadyOrError` variant on the API +- **Breaking change** The `isConnected` provider interface is now a getter, replacing previous calls to `provider.isConnected()`. Additionally the `provider.disconnect()` is now async, aligning with `.connect()`. + +Contributed: + +- Expand vesting information via derive balances (Thanks to https://github.com/niklabh) +- Add `isReadyOrError` to API, `isReady` always succeeds (Thanks to https://github.com/shawntabrizi) + +Changes: + +- Adjust memoization to work on a per-instance basis, with no contamination between multiple api/provider instances +- Added `derive.chain.getBlock(hash)` to retrieve a `SignedBlock` extended with an `.author` (same as `derive.chain.getHeader(...)`) +- Added `api.{connect, disconnect}()` as well as `isConnected` interfaces. The first functions async returning `Promise` +- Error on provider connections will now emit all (as expected) via the event emitter +- Ensure that initial connection failures always retry (when using auto-connection management) +- The `api.derive.staking.query/queryMulti` no longer retrieves session keys (can be done via `.keys/keysMulti`) +- Add `api.derive.accounts.accountId` to perform AccountId lookups (from indices or actual AccountId) +- Lessen load of `paymentInfo` queries to only use accounId mappings as available +- Adjust staking derives to cater for early Bizinikiwi 2.0 chains (optional/non-optional EraIndexes) +- Cater for the handling of nested aliased types, e.g. wrapped inside Vec or Tuple +- Add the support for the `grandpa_subscribeJustifications` RPC +- Adjust `Call.toHuman()` to remove decoding-related technical internal details +- Static metadata & tests updated for the latest bizinikiwi master +- `toHuman()` & `.toBigInt()` has been explicitly added to the API documentation +- Adjust known types for latest Zagros network state + + +## 1.31.1 Aug 31, 2020 + +Upgrade priority: Medium, especially for staking users on Pezkuwi, Zagros & Zagros (type updates applied for v23 onwards) or if transparent `.at(hash)` queries are required/used + +- **Important** Bizinikiwi changed the `RewardDestination` enum with an extra field for payout-to-any account for staking preferences. If on an older chain consider adding `RewardDestination: 'RewardDestinationTo257'` +- **Important** Bizinikiwi changed the `CompactAssignment` type enhanced types for session solution submissions. If on an older chain consider adding `CompactAssignments: 'CompactAssignmentsTo257'` + +Contributed: + +- Fix documentation language and typos (Thanks to https://github.com/Meuko) +- Add missing `TransactionPriority` type (Thanks to https://github.com/aniiantt) +- Update definitions for new `CompactAssignments`, including tests (Thanks to https://github.com/kianenigma) + +Changes: + +- Add transparent support for types/metadata, i.e. hash queries such as `rpc.chain.getBlock()` & `query.system.events.at()` now works out-of-the-box injecting the correct metadata & types. +- Optimize RPC-layer calls with detection of short-term cacheable calls (in the same way subscriptions are done) +- Additional checks on `AccountId` for valid sizes +- Add `toBigInt()` (JS built-in `BigInt`) on `Int/Uint`, & `Compact<*>` types +- Support for `.concat` on Codec arrays +- Support for serialization with `isBare` flag on enums +- Add `api.getBlockRegistry(blockHash?)` to create registry/types for a specific block +- `derive.democracy.locks` now returns delegated locks for an account as well +- Adjust unlocking derives with appropriate in-place additions (less object allocations) +- `.sign` on submittables is marked deprecated (not due for removal, but rather use `.signAsync` for consistency with `.signAndSend`) +- Adjust types for `CompactAssignments` & `RewardDestination` for Pezkuwi, Zagros & Zagros +- `@pezkuwi/util` 3.4 +- `@pezkuwi/wasm-crypto` 1.4 + + +## 1.30.1 Aug 24, 2020 + +Upgrade priority: Low, unless using the `proposeTeyrchain` module. + +Changes: + +- Adjust balance retrievals to check for `system.account` for new/old determination +- Add types for the new `proposeTeyrchain` module (as per Pezkuwichain) +- Adjust `Address` <-> `LookupSource` definitions (no external impact, both in existence) +- Add Ethereum-compatible `Ethereum{AccountId, LookupSource}` types, underlying `H160` +- Allow for configurable hashers via `registry.setHasher(...)` (defaults to `blake2AsU8a`) +- `@pezkuwi/util` 3.3 + + +## 1.29.1 Aug 17, 2020 + +Upgrade priority: Low, unless on bleeding-edge chain with new compact `CompactAssignments`. + +- **Important** The Bizinikiwi `CompactAssignments` type has changed for better space utilization. On older chains, supply `CompactAssignments: 'CompactAssignmentsTo257'` + +Contributed: + +- Clean tx cookbook param expansion (Thanks to https://github.com/swswsw) + +Changes: + +- Add additional `Fixed{I,U}{64,128}` and `{I,U}32F32` types +- Add `desiredRunnersUp` to council derives +- Cleanup indices/AccountId combination derive lookups +- `@pezkuwi/util` 3.2 + + +## 1.28.1 Aug 10, 2020 + +Upgrade priority: Low, unless using Centrifuge or teyrchains + +Contributed: + +- Update Centrifuge types to latest (Thanks to https://github.com/mikiquantum) + +Changes: + +- Add cookbook entry for viewing block extrinsics +- Support types for time-delay proxies +- Update types for teyrchains +- `@pezkuwi/util` 3.1 +- `@pezkuwi/wasm-crypto` 1.3 + + +## 1.27.1 Aug 3, 2020 + +Upgrade priority: Low, unless using the Pezkuwichain chain + +Contributed: + +- Remove outdated example poc-3 RPC reference (Thanks to https://github.com/swswsw) + +Changes: + +- Raw/Bytes `toHuman` detects ASCII sequence for text output +- Add know types for the Pezkuwichain chain + + +## 1.26.1 Jul 27, 2020 + +Upgrade priority: Low + +Contributed: + +- Update docs for the new `system.accountNextIndex` (Thanks to https://github.com/shawntabrizi) +- Update contracts call parameter typing (Thanks to https://github.com/kwingram25) + +Changes: + +- Adjust votingBalance to only return `freeBalance` (only council voting is free + reserved) +- Additional checks for referenced Vec sub-type deconstruction in typegen +- Allow for API `typesBundle` option to inject a group of chain versions types +- Update metadata static tests for latest Bizinikiwi +- `@pezkuwi/util` 3.0 + + +## 1.25.1 Jul 20, 2020 + +Upgrade priority: Medium, especially if using contracts. + +- **Important** Contract RPC result updated on Bizinikiwi, on older chains supply `ContractExecResult: 'ContractExecResultTo255'` + +Contributed: + +- Support for custom HTTP headers in providers (Thanks to https://github.com/brad-larson) +- Update known types for Centrifuge (Thanks to https://github.com/philipstanislaus) +- Update API users with Registrar #1 (Thanks to https://github.com/chevdor) + +Changes: + +- Raw/Bytes `toHuman()` displays utf-8 as available +- Add fallback for `setImmediate` when not polyfilled +- Update `NetworkState` reputation type for `system_networkState` RPC +- Update session progress calcs for Aura (cater for negative) +- Fix class prototype for (basically-deprecated) Linkage type +- Add Pezkuwi types for `purchase` pallet + + +## 1.24.1 Jul 13, 2020 + +Changes: + +- Added `isAscii` & `isUtf8` getters to `Bytes` & `Raw` types +- Added `toUtf8()` helper to `Bytes` & `Raw` types +- `@pezkuwi/util` 2.18 + + +## 1.23.1 Jul 6, 2020 + +Contributed: + +- Small README typo fix (Thanks to https://github.com/woss) + +Changes: + +- Add latest Bizinikiwi master types +- Adjust `.toRawType()` to use registry name as available +- Update `ProxyType` for Zagros, Pezkuwi & Zagros with `IdentityJudgement` +- Validate number format (signed/unsigned) for number types +- Remove core codec dependencies on Base class (with proper TS encapsulation) +- `@pezkuwi/util` 2.17 + + +## 1.22.1 Jun 30, 2020 + +- **Important** Bizinikiwi changed the treasury tip structure, on older chains supply `OpenTip: 'OpenTipTo225'` + +Contributed: + +- Allow for `[u8; 33]` in U8aFixed (Thanks to https://github.com/akru) + +Changes: + +- Improve derive accountId -> accountIndex lookups (optimize entries queries) +- Vesting balance calculations via `derive.balances.all` has been updated for locks +- Add derive for multi staking rewards with specified eras +- `@pezkuwi/util` 2.16 + + +## 1.21.1 Jun 23, 2020 + +Contributed: + +- Fix subscriptions never unsubscribing after the id swap in 1.18.1 (Thanks to https://github.com/dillu24 for testing iterations) + +Changes: + +- Add support for `CheckMortality` signed extension (old `CheckEra` is now an alias) +- Promise API will default to using `getStorage` on non-subscription calls, reducing RPC overhead +- Optimize derive BN allocations, using in-place operators as applicable +- Add new Bizinikiwi types for Babe `EquivocationProof` +- Adjust `Releases` enum to use a shared instance + + +## 1.20.1 Jun 22, 2020 + +- **Important** RPC for `account_nextIndex` has been moved to `system_accountNextIndex` (Aligning with Bizinikiwi as a primary alias) + +Changes: + +- Cleanup map entries support with only Bizinikiwi 2.0-era RPCs (when introduced) +- Add `system_dryRun` RPC +- Optimize `derive.staking.queryMulti` retrievals with additional per-type batching +- Add `derive.staking.waitingInfo` (same as `electedInfo` for waiting validators) +- Adjust types & metadata for latest Bizinikiwi +- `@pezkuwi/util` 2.15 + + +## 1.19.1 Jun 16, 2020 + +Contributed: + +- Improve typing on `.entries()` queries (Thanks to https://github.com/monitz87) + +Changes: + +- Align metadata and types with latest Bizinikiwi +- Update Pezkuwi types for current evolution of teyrchains +- Allow for type aliasing on events (aligning with calls & queries) +- `@pezkuwi/util` 2.14 + + +## 1.18.1 Jun 8, 2020 + +Contributed: + +- Expand docs on node-template types (Thanks to https://github.com/g2udevelopment) +- Update contract fees to current impl. (Thanks to https://github.com/djuanit0x) +- Allow `Option` types in enum/Result type generation (Thanks to http://github.com/xlc) +- Add `.entriesPaged` and `.keysPaged` methods for state maps (https://github.com/monitz87) + +Changes: + +- Add types for new Bizinikiwi proxy module +- Adjust types for new Bizinikiwi (renamed) npos-elections module +- `Call` now exposes `method` & `section` fields (aligned with `toHuman()` representation) +- Cater for new Bizinikiwi string subscription ids (with backwards compatibility) +- `@pezkuwi/util` 2.13 + + +## 1.17.2 Jun 2, 2020 + +Changes: + +- Ensure subscription promise resolves before first result + + +## 1.17.1 Jun 2, 2020 + +Contributed: + +- Fix `ElectionSize` type (Thanks to https://github.com/arjanz) + +Changes: + +- Allow `BTreeSet` decoding from Array/JSON inputs +- Adjust Call-only metadata output to trim documentation to first full line +- Safeguard against divide-by-zero for total era points (expired reward eras) +- Internal derive optimizations with combining calls +- Support for latest Bizinikiwi types & metadata +- `@pezkuwi/util` 2.12 + + +## 1.16.1 May 26, 2020 + +Changes: + +- Support for Pezkuwi CC1 types & signed extensions +- Add support for Babe VRF secondary digests (author extraction) +- Adjust `Perbill/Permill` `toHuman()` formatting to output percentage +- Support for latest Bizinikiwi types & metadata +- Update to latest TypeScript, eslint & typescript-eslint +- `@pezkuwi/util` 2.11 + + +## 1.15.1 May 23, 2020 + +Contributed: + +- Adjust `keyPrefix()` with DoubleMap args (Thanks to https://github.com/KiChjang) +- Added `WeightToFeeCoefficient` type (Thanks to https://github.com/danforbes) +- Spelling fixes for console logs (Thanks to https://github.com/JoshOrndorff) +- Spelling fixes in cookbook (Thanks to https://github.com/pawelnguyen) +- Add `transactionVersion` getter in payloads (Thanks to https://github.com/amaurymartiny) + +Changes: + +- Adjust `stakerRewards` derive ordering for improved on-payout refreshes +- Baseline implementation for derive caching infrastructure +- Adjust `Multiplier` type to `Fixed128` (as per latest Bizinikiwi) +- Updated to latest Bizinikiwi metadata & add new types + + +## 1.14.1 May 14, 2020 + +- **Important** `DispatchInfo` changed `paysFee` to an enum, if using an older version use, `DispatchInfo: 'DispatchInfoTo244'` + +Contributed: + +- Align imOnline `Heartbeat` with Bizinikiwi (Thanks to https://github.com/arjanz) +- Adust EVM types to include `Vicinity` (Thanks to https://github.com/drewstone) + +Changes: + +- Ensure metadata is only requested once upon startup (bypass on upgrade subscriptions) +- Expand testing around `ExtrinsicEra` construction +- Expand `Registry` to direct access to available signed extensions (in addition to exposed types) +- Cater for new `CheckSpecVersion` and `CheckTxVersion` signed extensions (with `SignerPayload` adjustments) +- Cater for new `PrevalidateAttests` signed extensions (Pezkuwi claims) +- Don't re-calculate submittable extrinsic hash on status checks (optimization) +- Support for both old/new Tuples in `democracy.depositOf` in derives +- Fix democracy `ProxyState` types +- Extends types for Pezkuwi claims +- Update `@pezkuwi/util` to 2.10 + + +## 1.13.1 May 6, 2020 + +Contributed: + +- Add support for ECDSA keypairs in extrinsic signers (Thanks to https://github.com/akru) +- Rework type generation to use templating for better maintenance (Thanks to https://github.com/xlc) +- Adjust extrinsic `sign/signAsync` signature to optional options (Thanks to https://github.com/KiChjang) +- Support round-robin endpoints in the `WsProvider` with array of urls (Thanks to https://github.com/hoani) +- Remove static test-only metadata for Pezkuwi dev chains (not updated regularly, Bizinikiwi dev to remain) + +Changes: + +- Revert error swallow for wrong preimage data (temp. override for Zagros upgrade with no migration) +- Fix `.encodedLength` calculation on `[Type; N]` types +- Add new `rpc.grandpa.roundState` RPC +- Update types & metadata as per latest Bizinikiwi master +- Adjust Centrifuge starting version + + +## 1.12.2 Apr 30, 2020 + +Changes: + +- Update `@pezkuwi/util` to stable 2.9.1 (sadly missed in the previous version, stable should match to stable) + + +## 1.12.1 Apr 29, 2020 + +Contributed: + +- Fix `CompactAssignments` types (Thanks to https://github.com/arjanz) +- Provider ayo-connect now allows for interval config (Thanks to https://github.com/jnaviask) +- Cleanup generation for c-like enums (Thanks to https://github.com/monitz87) +- Allow subscription to all storage keys, alignment with Bizinikiwi (Thanks to https://github.com/xlc) + +Changes: + +- Cater for vote delegations in democracy derives +- Cleanup account derive flags where to allow for optional council modules +- Allow generic types in ApiPromise.combineLatest +- Update to latest bizinikiwi metadata + + +## 1.11.2 Apr 22, 2020 + +Changes: + +- Small patch to add missing Pezkuwi master types (will be in next Zagros update) + + +## 1.11.1 Apr 21, 2020 + +- **Important** Bizinikiwi master has an updated `Weight` (to `u64`), on older chains apply `Weight: 'u32'` (This does affect event decoding if wrongly set) + +Contributed: + +- Allow user type augmentation to work with different versions of rxjs (Thanks to https://github.com/monitz87) +- Align augmented generation with camelCase (Thanks to https://github.com/monitz87) +- Fix bitfield endian encoding (Thanks to investigation by https://github.com/xlc) +- Add account flag derives via `accounts.flags(accountId)` (Thanks to https://github.com/kwingram25) + +Changes: + +- Fix entries decoding for `Option` (& simplify, decoding correctly on rpc layer) +- Add `system.{localPeerId, localListenAddresses}` & `state.getReadProof` RPCs +- Ensure proper propagation of `api.runtimeVersion` (used for signing) after upgrade +- Field ordering fix for deprecated `Linkage` (used in linked maps) +- `derive.account.info` now returns all field enum types decoded (not only raw) +- Add banner with FAQ entries for node-template to aid with common issues +- `Digest` has been moved to definitions, removal of `GenericDigest` type +- Support `Fixed128` type +- Add `transactionVersion` to `RuntimeVersion` struct +- Enhance API support for non-subscription providers (skip subscription to runtimeVersion) +- Adjust types for Zagros 1057 (notably the new `StakingLedger`) + + +## 1.10.1 Apr 13, 2020 + +- **Important** Bizinikiwi master has updated staking, on older chains apply `StakingLedger: 'StakingLedgerTo240'` + +Changes: + +- Add `rpc.system.chainType` to retrieve the chain type (Development. Local, Live & Custom) +- Adjust types for Zagros after the reset +- Adjust democracy derives, including the support of the frame-scheduler for scheduled deployments +- Allow staking derives to work with new staking payouts, specifically `tx.staking.payoutStakers` +- Cleanups to derives for democracy & staking to be more performant +- Add Centrifuge base types to `@pezkuwi/types-known` +- Adjust with all the latest bizinikiwi master types +- Internally all private/protected methods/variables are now `_` prefixed (Aligning with the `private/protected` indicators in the TS definitions) +- Update metadata/docs-from-metadata to the latest Bizinikiwi + + +## 1.9.1 Apr 1, 2020 + +- **Breaking change** (TypeScript with derives only) The return type names for `api.derive.*` have been adjusted for consistency, all starting with `Derive*` (previously a mixture of `Derived*` and `Derive*`) +- **Breaking change** (derives only) Additional cleanups of democracy proposal & referenda derives, including support for new Pezkuwi/Bizinikiwi vote retrievals + +Changes: + +- Tx signing via `signAndSend` & `signAsync` now tries to use the last finalized block (depending on finalized drift) +- Add support for `api.rpc.childstate.*` Bizinikiwi RPCs, older nodes with still populate `api.rpc.state.*` with the child methods +- Adjust `Error.message` on RPC failures to not include the (already known) method signature +- Split `@pezkuwi/types/known` into `@pezkuwi/types-known`, allowing for base API overrides +- Extended `api.derive.democracy` to cater for dispatchQueue and externals +- Extended `api.derive.council` to cater for new phragmen elections +- Use new `queryStorageAt` for query `.entries`, removing unneeded subscriptions (use as available) +- Fix `BTreeSet` initialization when it forms part of query interfaces +- Fix encoding for `Vec`-related types as part of constants +- Internal adjustment of interface type locations (no impact on imports via `@pezkuwi/types/interfaces`) + + +## 1.8.1 Mar 22, 2020 + +- **Breaking change** The format for any custom RPCs have been changed (alongside API-internal changes) to allow for better RPC management. If you are currently using custom RPCs (or planning to do so), look at the [updated documentation](https://js.pezkuwichain.app/api/start/rpc.custom.html) +- **Breaking change** Alongside API RPC changes, the `@pezkuwi/jsonrpc` package has been removed. Since it was never documented and only used internally, this should not have adverse impacts. All RPC definitions itself has now been moved to the relevant modules inside `@pezkuwi/types/interfaces` +- **Important** Bizinikiwi has an updated democracy module. If using an older chain add the `ReferendumInfo: 'ReferendumInfoTo239'` type when using referendums + +Changes: + +- The `isRetracted` Extrinsic status is now a warning, not a fatal error, correctly aligning with Pezkuwi/Bizinikiwi +- The Bizinikiwi extrinsic phase definitions has been expanded with `Initialization` to align with the latest versions +- Add support for all known bizinikiwi RPC methods +- Extend account derives to include status flags, e.g. `isCouncil`, `isSudo`, ... +- Adjusted referendum derives to cater for bot new/old democracy. Derived `referendumInfo` now includes `status` field, not `info` +- Add `initWasm` flag to API options. When set to `false` does not init the WASM portion (leaving it to the user elsewhere) + + +## 1.7.1 Mar 17, 2020 + +- **Important** Current versions of Pezkuwi/Bizinikiwi have dropped support for linked maps on storage entries. If you are using these queries to retrieve all entries, for instance `staking.{nominators,validators}()` and using an upgraded chain, you need to swap to retrieving entries via `.entries()` or `.keys()` for the keys. + +Changes: + +- Pull in support and types for latest Pezkuwi/Bizinikiwi +- Add support for the new Bizinikiwi `state_getKeysPaged` RPC, including use in storage keys +- Move `derive.staking.controllers` to `derive.staking.stashes`, reflecting actual content +- Cater for adjusted storage (non-linked mapped) for `derive.staking.stashes` queries (with old-compat) +- Expanded `derive.staking.*` derives, including addition of `derive.staking.own*` +- Re-add fixed (with tests) checks for query args, previously disabled in 1.6.2 + + +## 1.6.2 Mar 12, 2020 + +Changes: + +- Revert checks for query args, not working on `.at()` queries (proper fix in next version) + + +## 1.6.1 Mar 12, 2020 + +- **Breaking change** `api.rpc.state.queryStorage(...)` now fully decodes the `Vec` and returns a decoded `[Hash, Codec[]][]` when using this RPC. + +Changes: + +- `StorageKey` now has an `.args` property, decoded from meta where `twox64_concat` or `blake128_concat` are used on maps +- Fix `api.query.*.*.entries` type conversions to return exact types (not `Option` in some cases) +- Add `api.query.*.*.keys` to retrieve only the storage keys, similar to `.entries` +- Full linked map retrievals will now use direct getStorage queries for faster operation +- Underlying rpc-core interfaces now unwraps `Error("...")` when found in responses +- Added `derive.eras*` interfaces for queries to new Bizinikiwi staking interfaces +- Update `derive.account` to cater for new indices module storage (detected with fallbacks) +- Adjust derive queries for session without module prefix (DoubleMap -> Map), detected on use +- Add runtime validation for map arguments to `api.query.*` +- TypeScript interfaces for linked maps now correctly generates as `[Type, Linkage]` + + +## 1.5.1 Mar 06, 2020 + +- **Important** Bizinikiwi master has updated staking, on older chains supply `StakingLedger: 'StakingLedgerTo223'` +- **Important** Bizinikiwi master has updated collective, on older chains supply `Votes: 'VotesTo230'` + +Contributed: + +- Add proper support for type generation with an Enum containing an Tuple (Thanks to https://github.com/monitz87) +- Fix storage parsing not resulting in rejected Promises (Fix from https://github.com/aniiantt applied) +- Remove use of deprecated `Observable.create` (Thanks to https://github.com/Himself65) + +Changes: + +- Add types & metadata for the latest Pezkuwi/Bizinikiwi runtime versions (master branches) +- Type extraction will now allow the same sub-module name across packages, i.e. `@pezkuwi/types/interfaces/runtime` & `@mine/interfaces/runtime` will be valid +- Add `.range([from, to]: [Hash, Hash?], ...args: any[]): [Hash, Codec][]` on all storage entries +- Add `.raw(...args: any[]): Promise` to all RPC calls, returning the un-encoded result +- Allow pre-module type aliasing with `typesAlias: { : { : } }` in API construction options +- Allow `BTreeMap` to be initialized with a `Record` object (in addition to `Map`) +- Allow for `HashMap` definitions +- `Bool` will now correctly return `isEmpty` on false/default values +- Refresh the `NetworkState` types as returned by the `rpc.system.networkState()` call to current +- Expose `registry.createClass()` to allow for creating type classes. If you are using `createClass` or `ClassOf` in your code, it is recommended to swap to this instance. +- Add additional derives to `api.derive.staking` to handle lazy-payout retrievals +- Update `@pezkuwi/{util, util-crypto, keyring}` to 1.6.1 & `@pezkuwi/wasm` to 1.2.1 + + +## 1.4.2 Feb 27, 2020 + +Changes: + +- Fix `api.tx(): Submittable` decoration (non-working in 1.4.1, now with proper test) + + +## 1.4.1 Feb 26, 2020 + +- **Breaking change** (TypeScript only) The `*.d.ts` files now contain TypeScript 3.8 features (specifically `#private`), which is not usable in TS versions < 3.8 +- **Breaking change** - `api.derive.staking.*` has updated result types and detects support for lazy payouts queries + +Contributed: + +- Rework type generation for `api.{query, tx}` to properly handle complex type inputs (Thanks to https://github.com/monitz87) +- Rework metadata `--strict` mode to effectively decorate chain metadata (Thanks to https://github.com/monitz87) +- Add `api.rpc.chain.subscribeAllHeads` (not just best) (Thanks to https://github.com/jak-pan) + +Changes: + +- Add `api.rpc.engine.*` for manual seal support +- Add `api.injectMetadata(metadata)` to initialize API with a specific metadata version +- The api now checks for runtime upgrades, augmenting the interfaces with new metadata when found +- Support types & interfaces required for lazy reaping, lazy payouts & offchain phragmen +- `Option` types now has an `.unwrapOrDefault` as an complement to `.unwrap` & `.unwrapOr` +- Support JS `BigInt` inputs in any derived `UInt` and `Int` object, e.g. `api.tx.balances.transfer(..., 9876543210123456789n)` +- `UInt` & `Int` now does source bitLength checks upon construction +- Registry now exposes `.createType(, ...args)` as an additional helper (like the API) +- Expand `.toHuman` on `ExtrinsicEra`, `SubmittableResult` & `Vote` +- Move `DigestItem`, `Fixed64`, `H160`, `H256` & `H512` to interfaces in `@pezkuwi/types/interfaces` +- Align construction of unknown types in `registry.get` consistently warn on detection, throw on use +- Support for arbitrary `u*`` types via `UInt` type definitions +- Expose static `.with` on `UInt`, `Int` & `U8aFixed` classes with optional type name override +- Remove [11 Jan 2019](https://github.com/pezkuwichain/pezkuwi-api/issues/574) extrinsic length hack +- Use ES `#field` on private class fields as applicable +- Move `types/primitive/{extrinsics, generic}` to `types/{extrinsics, generic}` +- Cleanup augmentation and generation scripts for type definitions, aligning with api augmentation +- Bump to `@pezkuwi/{util, util-crypto, keyring}` 2.5.1 + + +## 1.3.1 Feb 18, 2020 + +Contributed: + +- Add `@types/bn.js` as a normal dependency, exposed in `*.d.ts` (Thanks to https://github.com/monitz87) + +Changes: + +- Type generation scripts (including `pezkuwi-types-from-{chain,defs}`) has been moved to the `@pezkuwi/typegen` package +- The `@pezkuwi/types/codec/create` has been moved to `@pezkuwi/types/create`, imports from `@pezkuwi/types` are unaffected +- Expose chain properties on registry (and use for API type formatting) +- Add `toHuman(isExtended?: boolean)` to all codec types, formatting into a human-readable structure + + +## 1.2.1 Feb 16, 2020 + +- **Important** Update RPC status codes (latest Bizinikiwi 2), with the `isInBlock` (`isFinalized` now indicates finality) + +Contributed: + +- Storage `.entries(arg?: any)` now has the correct argument type for DoubleMap (Thanks to https://github.com/monitz87) + +Changes: + +- Swap Zagros and Pezkuwi aliases for `Address` to `AccountId` (future update) +- Add `LookupSource` and `LookupTarget` types instead of mapping these directly for aliasing +- Add `BitVec` type primitive +- Add support for `system.account` for balance & nonce queries in derives as well as Submittables (Bizinikiwi composites) +- Add `rpc.author.hasKey` and `rpc.author.hasSessionKeys` RPCs +- Add derives for the teyrchains interfaces +- Applied the latest types for Pezkuwi teyrchains +- `registry.findMetaError` now can take in a `DispatchErrorModule` object for error lookups (from `asModule` in `DispatchError`) +- Metadata now correctly serializes to the original input data via `toHex()` & `toU8a()` +- Metadata documentation generation rework, including the output of errors from metadata +- Update all examples and comments to use latest `system.account` queries (instead of `system.accountNonce` and `balances.freeBalance`/`balances.reservedBalance`) +- Cleanup `codec/Date` tests to make it run properly on all timezones +- Add explicit dependencies to all packages and move TypeScript `@types/*` to dev deps + + +## 1.1.1 Feb 06, 2020 + +- **Important** Chains without `balances.account` or `system.account` should supply `"BalanceLock": "BalanceLockTo212"` to their types to use the previous-generation `BalanceLock` (when querying locks) + +Changes: + +- Add support for `balances.account` in all applicable derives (incl. `vesting` module) +- Inject and use SignedExtensions by name from V11 metadata (V4 extrinsics only) +- Add typings for `api.tx.*.*` - the `pezkuwi-types-from-chain` now also generates these +- Remove additional V1-only derives `(staking.recentlyOffline`, `balances.nominatorsFor`) +- Add `.isMax()` on int values, an opposite of `isZero()` (e.g. `u128`, as well as derived, e.g. `Balances`) +- Add `.keyPrefix()` to all `api.query.*` complementing the `.key()` call, both returning a hex string +- Council derives now takes bootstrapping (member, no elections) into account +- Account derives now allow for an optional indices module (not required) +- Adjust balances fees derivation with optional transfer and creation fees (removed in Bizinikiwi) +- Adjust enum `.toJSON()` to return type name as specified + + +## 1.0.1 Jan 30, 2020 + +- **Breaking change** Drop support for Bizinikiwi v1 chain in all derives + +Contributed: + +- Return unsub functions from provider .on emitters (Thanks to https://github.com/jak-pan) +- `ApiPromise.isReady` now rejects on unrecoverable errors (Thanks to https://github.com/laec) + +Changes: + +- Add `pezkuwi-types-from-chain` & `pezkuwi-types-from-defs` TypeScript generators to `@pezkuwi/types` +- Only decorate derives where relevant parent `api.query.*` is available +- Support `.entries(arg?: any)` lookups on DoubleMaps (in addition to previously supported maps) +- Allow v9 metadata to parse even in cases where it was wrongly deployed pre-v10 +- Allow type-aliases on a per-module basis (e.g. `Judgement` in identity as well as society) +- Allow passing `{ signer }` to both `api.tx.*` and `api.sign` (in addition to `api.setSigner`) +- Add derives for the society module +- Don't map empty tuples, e.g. `()` to `Null`, rather keep them empty +- Add lookups to the metadata errors via `findMetaError` +- Update metadata and types for the latest Bizinikiwi & Pezkuwi versions +- Support metadata V11 as per latest Bizinikiwi +- Remove support for un-deployed metadata +- Remove old known types for Bizinikiwi V1 + + +## 0.100.1 Jan 13, 2020 + +- **Important** This will the the last API version with Bizinikiwi 1.x support. Although you will still be able to use subsequent versions with older chains, dependent libraries such as sr25519 may not be compatible. + +Contributed: + +- Add support for `BTreeSet` (Thanks to https://github.com/satellitex) + +Changes: + +- Add support for the Bizinikiwi identity module +- Remove the `codec/Data` type, to remove a conflict with Bizinikiwi. This type is now named `Raw` +- Fix for linked maps using `Option` +- Add support for Metadata v10 +- Add support for latest Pezkuwi/Bizinikiwi types +- Add `paymentInfo` to submittables to calculate fees + + +## 0.99.1 Dec 13, 2019 + +- **Breaking change** The `Data` and `U8a` type has been renamed and just replaced with the `Raw` type +- **Breaking change** The `api.derive.staking.info` has been split into 2 - `staking.query` for non-balance related information (more effective) and `staking.account` that enhances query for all the information previously found `.info` + +Changes: + +- Cleanup `DoubleMap` hashing to always hash over the full value (in the case of `Vec`, this includes the length) +- Update democracy derives to take care of nextTally and lowestUnbaked +- Add additional derives for both council & treasury +- Alignment with latest Pezkuwi/Bizinikiwi master branch types + + +## 0.98.1 Dec 04, 2019 + +Contributed: + +- Make the TypeScript generation script mor re-usable (Thanks to https://github.com/xlc) +- Add `.entries()` for all map-types, returning storage keys and values +- Add `.signAsync` to submittable extrinsics (Thanks to https://github.com/c410-f3r) + +Changes: + +- Cleanup circular references between internal dependencies +- Support for new Bizinikiwi democracy with preimages in derive +- Alignment of types with Bizinikiwi/Pezkuwi master branches + + +## 0.97.1 Nov 29, 2019 + +- **Breaking change** Add the passing on an explicit `Registry` to all calls to `createType` as well as all codec classes. If you are upgrading form an older version, use the [migration guide](UPGRADING.md) to walk through the changes required. +- **Breaking change** The metadata classes have been moved from `@pezkuwi/types` into `@pezkuwi/metadata`. If you explicitly create `Metadata` classes, you now would need to do so with the `import Metadata from '@pezkuwi/metadata';` This is a decorated class, where the previous metadata is now available on `Metadata.metadata`, alongside decorated `consts.*`', `tx.*` and `query.*`. +- **Breaking change** Session `Keys` defaults to 4 keys now (Bizinikiwi master), depending on your node config, you would want to override with e.g. `Keys: 'SessionKeys3'` (1, 2, 3, 4, 5 & 6) +- **Breaking change** `ValidatorPrefs` now default to the new percentage commission model, to use the previous `validatorPayment`, you can override with `ValidatorPrefs: 'ValidatorPrefsTo196'` + +Changes: + +- `api.derive.*` now has built-in memomization +- Various fixes and cleanups to `api.derive.*` including era length progress and vesting calculations +- Aligned all types with the latest Pezkuwi & Bizinikiwi, including Zagros CC3 +- Support for Metadata V9, which adjusts the hashing methods of storage entries +- Support for Metadata V10 (still un-released), which includes prefixed map support + + +## 0.96.1 Nov 09, 2019 + +Changes: + +- Updated types for latest Zagros +- Add `filterRecords` (in addition to `findRecord`) on submittable results +- Various ABI v2 contract fixes +- Update derive for elections (incl. RunnersUp) and heartbeat derives (with blocks & messages) +- Add vesting totals & locked breakdowns to derive balances +- Update council derives for the latest Bizinikiwi master support (with constants) +- Derive cleanups, including sharing of instances between the API and internal to derives + + +## 0.95.2 Oct 25, 2019 + +Changes: + +- Temporary removal of `account_nextIndex` use, will be re-added in a future release + + +## 0.95.1 Oct 25, 2019 + +- **Breaking change** `Call.injectMethods` is moved to `Call.injectMetadata` to align with `Events` (This _should_ not be used externally, however mentioned as breaking here) + +Changes: + +- Support Extrinsic V4 with additional signature indicator (Latest Pezkuwi/Bizinikiwi/Zagros) +- Adjust subscription update checks to avoid duplicated data updates +- Support Metadata V8 (exposes per-module `decl_error` definitions) +- Support next generation contracts ABI (with additional type definitions) +- Support for `BTreeMap` types and definitions +- All latest Pezkuwi & Bizinikiwi types (as per master branches) + +## 0.94.1 Oct 07, 2019 + +Changes: + +- Add handling of `Result` definitions +- Adjust API cloning now takes RPC filters from source into account +- Simplification of isPedantic checks and less overhead on StorageData types +- Cleanups and fixes around RPC and derive type definitions +- Fix `derive.imOnline.receivedHeartbeats` to query via indexes +- Adjustment of `api.derive.elections.{approvalsOf|approvalsOfAt}` to allow ss58 address input +- Cleanup `Enum` `.eq` handling to be more exhaustive +- Add documentation for custom extrinsic formats (advanced chains) +- Update to latest bizinikiwi master metadata + + +## 0.93.1 Sep 26, 2019 + +Changes: + +- Support for Zagros CC2 +- In extrinsic submission, use `rpc.account.nextIndex` to retrieve the nonce when available +- For TypeScript users `api.query.*.*` is now properly typed for default Bizinikiwi calls, i.e. `api.query.balances.freeBalance(...)` will return a `Balance` type. Additionally the `api.queryMulti` and `.multi` on queries not allow generic type params. +- Add `api.rpc.accounts.nextIndex`, `api.rpc.contracts.call` and `api.rpc.rpc.methods` calls. Optional calls (such as account/contracts) is decorated based on the results from `rpc.methods`, so they don't show up on nodes where they are not active. +- Updated types to support the latest Pezkuwi/Bizinikiwi master changes +- Support recursive type registration (self-referencing via `Box`) in addition to better sanitation of user-defined-types +- Documentation and example updates (thanks mostly to contributions) + + +## 0.92.1 Sep 12, 2019 + +Changes: + +- The API now correctly sets the ss58 prefix as retrieved from the chain properties via `ss58Format` +- Bump to `@pezkuwi/util` 1.4.1, removing use of `ExtError` +- The `Keyring` from `@pezkuwi/keyring` is now exposed on the API as well. You can do `import { Keyring } from '@pezkuwi/api'` - this alleviates the need for extra dependencies (apart from `@pezkuwi/api`), and since the keyring is critical for signing operations, aligns everything in one bundle +- Support the latest Pezkuwi & Bizinikiwi master branches (incl. metadata updates) +- Getting started documentation has been made available + + +## 0.91.1 Sep 09, 2019 + +Changes: + +- This release was focussed on stability, with a number of cleanups and bug-fixes +- Adjustments for Bizinikiwi 1.x chain detection (with auto-types) and Bizinikiwi 2.x support has been extended with all latest types +- The `getRuntimeVersion` and `subscribeRuntimeVersion` RPCs are now only available on the `rpc.state.*` endpoints. This aligns with the Bizinikiwi implementation. +- The `author_insertKey` RPC's last argument `publicKey` is now required, as to reflect Bizinikiwi implementation. +- Support for extrinsics with versions that is not in the base Bizinikiwi implementation (V1-V3) can now be done by providing an implementation for `ExtrinsicUnknown` +- Redeemed balance calculation if `api.derive` now returns the correct values again (bug fix) +- added the `yarn chain:info [--ws URL]` utility to extract a calls-only metadata version +- Missing types are now logged via a `console.warn`, not via `.error` +- `Extrinsic`, `ExtrinsicPayload` & `SignerPayload` is registered in the type registry and can be overridden now + - **Breaking change** `SignerPayload` is renamed to `SignerPayloadJSON` + - **Breaking change** `SignerPayloadJSON`, `SignerPayloadRawBase` and `SignerPayloadRaw` are all moved to `@pezkuwi/types` + + +## 0.90.1 Aug 24, 2019 + +If you are upgrading form an older version, use the CHANGELOG hand-in-hand with the [migration guide](UPGRADING.md). + +- **Breaking change** `api.rpc.chain.subscribeNewHeads` is now available as opposed to the old `subscribeNewHead`. This aligns with the Bizinikiwi implementation. +- **Breaking change** Bizinikiwi 2.x & Pezkuwi master has moved both `BlockNumber` & `Index` to `u32`. The API tracks these closely. If you are running a chain with `u64` values (for either), pass the type override to the API on creation, e.g. `ApiPromise.create({ types: { BlockNumber: 'u64', Index: 'u64' } })` to avoid getting warnings about mismatched types. +- **Breaking change** `Api.create(...)` and `new Api(...)` now only takes an options Object, so if you passed the provider directly previously, you need to swap the use to `Api.create({ provider: ... })` +- **Breaking change** Runtime types have been extended and moved to definitions instead of classes + - Primitive types for `i*` and `u*` (e.g. `u32`) are now only available in their lowercase versions. Additionally `Vector` is now only available as `Vec`, and `Method` has been renamed to `Call`, in both cases aligning with Rust. + - `Moment` now implements as `u64` as per the Bizinikiwi codebase. (It it up to the user to interpret, for bizinikiwi 2.x it is not ms resolution) + - For creation of types, it is recommended to use `createType(, )` instead of e.g. `new Proposal(...)`. When passing these to methods/queries, construction should not be needed, the raw value can be passed. + - For moved types, a previous import would have been from `@pezkuwi/types`, i.e. `import { SetIndex } from '@pezkuwi/types`, now just the interfaces (TypeScript) are available via `import { SetIndex } from '@pezkuwi/types/interfaces` + - `usize` is now a blacklisted type that will throw on construction. Since it is platform-specific, it creates incompatibilities between native (generally `u64`) and WASM (always `u32`) code. Use one of the `u32` or `u64` types explicitly. + +Changes: + +- Support bizinikiwi v7 metadata +- The `Method.findFunction(callIndex)` (allowing decoding of raw data), is now available on `api.findCall(callIndex)`. To keep backwards compatibility, it is still available on `GenericCall.findMethod` but the `api.findCall` is recommended and suggested. +- The `types/codec/createType` has been moved to `types/codec/create` with the same exports. If you explicitly imported from here (and not doing the suggested `import { createType } from '@pezkuwi/types`), the reference needs to be updated + + +## 0.82.0-beta.x Jul 28, 2019 + +Changes: + +- Support for bizinikiwi 2.x (master) has been extended, + - Additional types have been addedd for the modules + - `api.derive.contract` is now `api.derive.contracts` to align with the bizinikiwi 2.x rename. (Feature detection is used so it supports both 1.x and 2.x chains) + - Addition of `api.derive.elections` + +- Support latest bizinikiwi 2 v6 metadata with module constants using `api.consts`. + - The api now uses the module name for the storage methods, aligning module names for consistency with transactions. The methods of the grandpa module moved from `api.query.grandpaFinality` to `api.query.grandpa`. + - Internally the `@pezkuwi/extrinsics` and `@pezkuwi/storage` have been moved to `@pezkuwi/api-metadata` and are now accessible as `@pezkuwi/api-metadata/extrinsics` and `@pezkuwi/api-metadata/storage`, respectively. + - **Breaking Change** Vote interface extends U8a instead of i8. Vote properties can be accessed via the `isAye`, `isNay`, and `conviction` getters. Votes can still be constructed as before with a raw JS boolean, a SCALE encoded Boolean, an i8 number, or a JS object with properties `aye` and `conviction` defined. + +- Support V2 Extrinsics in addition to V1, v2 includes an optional `tip` + - In addition to this support, the `Signer` interface has deprecated the `sign` method and replaced it with `signPayload` + - Support for the `sign` interfaces (API detection and calling when `signPayload` is not available) will be removed in subsequent versions. + +- The `ContractsAbi` type has been moved from `@pezkuwi/types` to `import { Abi } from '@pezkuwi/api-contract`. This paves the way for an enhanced contracts interface, instead of dealing with low-level API calls. + + +## 0.81.1 Jun 14, 2019 + +Changes: + +- The dependency on `@pezkuwi/keyring` has been removed - if you relied on the API to provide this, you would now need to manually add it +- `createType` allows for the creation of `[u8; ]` types (opening the door for contract support) +- `api.derive.staking.info` now returns the `rewardDestination` +- Fix for disconnection when default providers (non-specified) are used +- Don't console.log type decoding errors and then throw, only re-throw with additional info +- Support latest bizinikiwi 2.x v5 metadata + - Add `ApprovalFlag`, `SetIndex`, `VoterInfo` types for council as per bizinikiwi + - Update `ContractInfo` to match bizinikiwi master + +- Add support for new inherent digests from bizinikiwi. + - **Breaking change** Because of the new `Seal`, the old/new Seals are not compatible. If you were using the old `Seal` from the `Digest`s, you would now use `isSealV0` for the pre-bizinikiwi 1.0 version and the new `isSeal` for the current version + - Update `HeaderExtended` to retrieve author information from bizinikiwi 2.x (new `PreRuntime` digests) + +- Cater for `Vec`, `Option`, `Result`, tuples and fixed vectors for contracts ABIs +- Additional examples for subscriptions using multi +- Add `off` method to `Api` (Base, for both `ApiPromise` & `ApiRx`) to remove an event listener + + +## 0.80.1 Jun 04, 2019 + +Changes: + +- Support for mortal transactions +- Better DoubleMap storage support +- api-derive cleanups, including additional info for balances.all and taking.info returning redeemable and locked balances +- Added SignaturePayloadRaw for better offline signing support +- Updated metadata for current bizinikiwi master +- Misc. cleanups and fixes + + +## 0.79.1 May 22, 2019 + +Changes: + +- DoubleMap query support +- Support latest EventRecord metadata (bizinikiwi master) +- Introduce RuntimeVersion type overrides in api/nodeCompat.ts +- Add `api.queryMulti` and `api.query...multi` +- Convert `api.derive.*` to use multi queries +- `types/codec/Set` now extends the base JS `Set` (**breaking change**: `set.values` -> `set.strings`) +- Breaking: rename `meta.arguments` to `meta.args` in function metadata (`arguments` is a JS reserved word) +- Add `toRawType` on all type classes (breakdown into primitive types) + + +## 0.78.1 May 08, 2019 + +Changes: + +- Fix linked-maps (not working since 0.77.1) +- Convert Usize to U32 (as found in WASM environments) +- Allow pre-bundled metadata in API create & constructor +- Don't clobber existing keys in structs when auto-adding fields +- Additional logging when constructing Structs as to where failures occur +- Do type assertion on all exposed asXXX getters +- Metadata updates for bizinikiwi (WithdrawReasons, ContractInfo) + + +## 0.77.1 Apr 25, 2019 + +Changes: + +- Support Metadata v4, which introduces the use of a custom hasher to hash storage map keys. +- Add TreasuryProposal (not the same as democracy, type aliased) + + +## 0.76.1 Apr 03, 2019 + +Changes: + +- Caching improvements (duplicate queries, no duplicate subscriptions) +- Experimental contract API +- Update @pezkuwi/keyring to enable Alice's stash account on dev chains +- Update @pezkuwi/util-crypto with smaller footprint + + +## 0.75.1 Mar 29, 2019 + +Changes: + +- Start journey to 1.0 + + +## 0.53.1 Mar 29, 2019 + +Changes: + +- Change spelling to US English as per bizinikiwi master (1.0-rc1). Breaking changes as a result: + - For extrinsic status results, if you have checked the type returns, i.e. `result.type === 'Finalised'` now check on the status for `result.status.isFinalized` or `result.status.isBroadcast`, ... (the `type` property is now accessible only on `result.status.type`) + - If using `subscribeFinalisedHeads` update this to `subscribeFinalizedHeads` (likewise `getFinalisedHead` should be updated to `getFinalizedHead` and `derive.bestNumberFinalized`) +- The underlying ss58 address checksums have changed + - The updated keyring with support for this has been made available + - All examples have been updated with sr25519 addresses (with the new checksums) + + +## 0.52.1 Mar 28, 2019 + +Changes: + +- Support queries to linked mapped storage (found in new staking interfaces) +- Add `derive.staking.controllers` to retrieve all active staking controllers +- Align types as per latest bizinikiwi master +- PeerInfo from system_peers does not have the index field anymore (dropped in bizinikiwi) +- Allow parsing of V3 metadata with DoubleMap support +- Check for single instances for api and types as they are loaded (assertSingletonPackage) + + +## 0.51.1 Mar 25, 2019 + +Changes: + +- Support metadata V2 as per latest bizinikiwi master +- Update metadata with new types as per latest bizinikiwi master + + +## 0.50.1 Mar 23, 2019 + +Changes: + +- Latest util-crypto (usage of WASM with JS fallbacks if not available) +- Update upstream @pezkuwi dependencies (for new crypto) + + +## 0.49.1 Mar 20, 2019 + +Changes: + +- Fix large message signing on non-known nodes (default is now hashing, there has been enough time between upgrades) + + +## 0.48.1 Mar 18, 2019 + +Changes: + +- Pull in new sr25519 capable keyring for dev nodes +- When using dev mode, it assumes that the node is the latest with derived sr25519 keys + + +## 0.47.1 Mar 14, 2019 + +Changes: + +- Swap to publishing -beta.x on merge (non-breaking testing) + + +## 0.46.1 Mar 01, 2019 + +Changes: + +- Extended type registration to now handle internal types as well. Additionally the built-in Extrinsic type can now we overridden with a custom version. +- Where `Extrinsic` and `Method` is used as types, consider importing `{ IMethod, IExtrinsic }` from `@pezkuwi/types/types`, especially in the cases where this is used from a `SubmittableExtrinsic` +- The `typeRegistry` constant is now `getTypeRegistry()` as a function + + +## 0.45.1 Feb 19, 2019 + +Changes: + +- Storage with option values now correctly return `Option` and is indicated as such in the documentation + +```js +// old +const ll = await api.query.session.lastLengthChange(); + +console.log('ll', ll /* BlockNumber */); // would be 0 if not set yet + +// new +const llo = await api.query.session.lastLengthChange(); + +console.log('llo', llo.unwrapOr('not set') /* Option */) +``` + + +## 0.44.1 Feb 19, 2019 + +Changes: + +- Split primitives and types into separate folders. This should not affect external use since the exports remain the same, however does have an impact where classes are referenced directly. e.g. + +```js +// old (affected) +import Method from '@pezkuwi/types/Method'; +import Signature from '@pezkuwi/types/Signature'; + +// new locations +import Method from '@pezkuwi/types/primitive/Method'; +import Signature from '@pezkuwi/types/type/Signature'; + +// unaffected +import { Method, Signature } from '@pezkuwi/types'; +``` + + +## 0.43.1 Feb 14, 2019 + +Changes: + +- Introduces support for the new keyring with sr25519 support in addition to ed25519. While this does not change the exposed API, it is considered breaking since @pezkuwi/keyring has interface changes. (Unless needed, don't rush the upgrade) + + +## 0.42.1 Jan 31, 2019 + +Changes: + +- Support for bizinikiwi hash signing with implVersion >= 18 +- Changed signatures for Extrinsic signing, this should not have (much) of an impact since it is generally not used directly. SubmittableExtrinsic (as exposed by the API), supports the old-style use. + + +## 0.41.1 Jan 26, 2019 + +Changes: + +- Support the V1 metadata specification from Bizinikiwi in addition to the currently testnet active V0 version + + +## 0.40.1 Jan 16, 2019 + +Changes: + +- The API interfaces now require a WS-compatible provider, e.g. subscription support is a must. Previously the HTTPProvider could be use (although it was very limited in the interactions). + + +## 0.39.1 Jan 11, 2019 + +Changes: + +- The Promise API now returns a `Promise` instead of `UnsubFunction` when making subscriptions. + + +## 0.38.1 Jan 08, 2019 + +Changes: + +Bizinikiwi has been updated with a breaking new transaction format where the Index/Nonce is now encoded as a Compact. This change is being rolled out to both Alexander (Pezkuwi testnet) as well as Charred Cherry (Bizinikiwi testnet) - transactions between old and new are not compatible. + + +## 0.37.1 Jan 04, 2019 + +Changes: + +api-observable has been removed. This was only used in /apps and inconsistent with the api/rx and api/promise APIs. Future work will include derives like was included in api-observable into the base. + +Tuples now return single types when only one type is available, i.e. `(AccountId)` would now resolve as `AccountId`. The extra type wrapper adds no benefit to users here. + + +## 0.36.1 Jan 03, 2019 + +Changes: + +Api Promise has been updated in the way we deal with subscriptions. Previously a subscription returned `Promise` where the caller was to keep track of the id and use it in subsequent unsubscribes. Now any subscriptions return an unsubscribe/destroy function `(): void`, that is use for removing the subscriptions, e.g. + +```js +const unsubscribe = api.query.balance.freeBalance(Alice, (balance) => {...}); + +unsubscribe(); // here we destroy the subscription +``` + + +## 0.35.1 Dec 20, 2018 + +Changes: + +Swapped to new metadata structures from Bizinikiwi. If the API is not working with your node, update Bizinikiwi to latest master branch. (Or 0.9.1 for Charred Cherry). Dropped support for old metadata as found as far back as BBQ Birch. + + +## 0.34.1 Dec 18, 2018 + +Changes: + +Changed the send signature (for future expansion of eg. events) to return `result: { status: ExtrinsicStatus }` instead of `status: ExtrinsicStatus`. For most cases where only status `type` checks are used, i.e. `status.type === 'Finalised'` this should not be a breaking change. Deep inspection of the status object however will need to adapt. + +## 0.33.1 Dec 06, 2018 + +## 0.32.1 Nov 21, 2018 + +## 0.31.1 Oct 10, 2018 + +## 0.30.1 Sep 27, 2018 + +## 0.29.1 Sep 14, 2018 + +## 0.28.1 Aug 11, 2018 + +## 0.15.1 Aug 07, 2018 + +## 0.14.1 Jun 23, 2018 + +## 0.13.1 May 29, 2018 + +## 0.12.1 May 18, 2018 + +## 0.11.1 May 16, 2018 + +## 0.10.1 May 07, 2018 + +## 0.9.1 Apr 24, 2018 + +## 0.8.1 Mar 15, 2018 + +## 0.7.1 Jan 25, 2018 + +## 0.6.1 Dec 03, 2017 + +## 0.5.1 Nov 28, 2017 + +## 0.4.1 Nov 19, 2017 + +## 0.3.1 Nov 19, 2017 + +## 0.2.1 Nov 18, 2017 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..947952e --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,45 @@ +# Contributing + +## What? + +Individuals making significant and valuable contributions are given commit-access to a project to contribute as they see fit. +A project is more like an open wiki than a standard guarded open source project. + +## Rules + +There are a few basic ground-rules for contributors (including the maintainer(s) of the project): + +1. **No `--force` pushes** or modifying the Git history in any way. If you need to rebase, ensure you do it in your own repo. +2. **Non-master branches**, prefixed with a short name moniker (e.g. `-`) must be used for ongoing work. +3. **All modifications** must be made in a **pull-request** to solicit feedback from other contributors. +4. A pull-request *must not be merged until CI* has finished successfully. + +#### Merging pull requests once CI is successful: +- A pull request with no large change to logic that is an urgent fix may be merged after a non-author contributor has reviewed it well. +- No PR should be merged until all reviews' comments are addressed. + +#### Reviewing pull requests: +When reviewing a pull request, the end-goal is to suggest useful changes to the author. Reviews should finish with approval unless there are issues that would result in: + +- Buggy behaviour. +- Undue maintenance burden. +- Breaking with house coding style. +- Pessimisation (i.e. reduction of speed as measured in the projects benchmarks). +- Feature reduction (i.e. it removes some aspect of functionality that a significant minority of users rely on). +- Uselessness (i.e. it does not strictly add a feature or fix a known issue). + +#### Reviews may not be used as an effective veto for a PR because: +- There exists a somewhat cleaner/better/faster way of accomplishing the same feature/fix. +- It does not fit well with some other contributors' longer-term vision for the project. + +## Releases + +Declaring formal releases remains the prerogative of the project maintainer(s). + +## Changes to this arrangement + +This is an experiment and feedback is welcome! This document may also be subject to pull-requests or changes by contributors where you believe you have something valuable to add or change. + +## Heritage + +These contributing guidelines are modified from the "OPEN Open Source Project" guidelines for the Level project: [https://github.com/Level/community/blob/master/CONTRIBUTING.md](https://github.com/Level/community/blob/master/CONTRIBUTING.md) diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000..1623a32 --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,155 @@ + 3512 Jaco Bump deps (#5785) + 166 Tarik Gul 16.4.7 (#6209) + 83 Amaury Martiny StatementKind: Regular and Saft (#2303) + 58 Valentin Fernandez 16.4.9 (#6217) + 37 Keith Ingram Update contract types and rpc (#4541) + 35 Stefanie Doll Updated child storage parameters (#1709) + 20 Luke Schoen fix: Fixes TypeError: Cannot read property 'vesting' of undefined (#1970) + 19 Xiliang Chen no warm for unknown signed extensions (#5601) + 18 rajk93 16.5.4 (#6234) + 15 Jeremías Díaz feat(types): add correct tuple type to storage key (#3054) + 14 Nikos Kontakis Bump substrate connect to 0.7.16 (#5307) + 11 Ian He HttpProvider support clone() (#3949) + 10 Arjun Porwal Upgrade Polkadot and Polkadot Asset Hub types for 2000000 (#6219) + 10 Axel Chalon Make Enum/Tuple constructor use value directly if instance (#1954) + 6 Andreea Eftene Update check for contract instantiation (#5699) + 6 Branislav Kontur Fix for fungiblesApi (#5944) + 5 Alberto Nicolas Penayo added use of accountNonceApi (#5915) + 5 Chevdor Fix metadata package link (#3458) + 5 Jake Naviasky Fixing approvalFlagsToBools. (#1250) + 5 Julien Eluard General WsProvider extensibility improvements (#5467) + 5 Matias Volpe Bump @substrate/connect to 0.8.10 (#5863) + 5 Thibaut Sardan Allow external signers to modify the payload (#6030) + 4 Alex D Use derive customAccount and customLocks for balance overrides (#3248) + 4 Alex Wang fix issue that creates duplicate providers (#983) + 4 Alexander Popiak Add asset id in signing (#4009) + 4 Joshy Orndorff spelling; efect -> effect (#2295) + 4 Nantian fix bigint type (#3869) + 4 Scott Twiname Add support for historical BlockNumber rpc methods (#4574) + 3 Alex Bean refactor: retrieve contract address from `Instantiated` event (#6210) + 3 André Silva add support for ValidationCodeHash (#3640) + 3 Antoine Estienne Adapted to display moonbeam author (#3108) + 3 Arjan Zijderveld Added `Emergency` to `ElectionPhase` (#3707) + 3 Ewa Kowalska Handle no council for bounties proposals (#3062) + 3 hamidra add support for n key entries for NMaps (#3886) + 3 Hamza Tokuchi more typos (#2532) + 3 Jeeyong Um Revert "Alias for Noir types (#5678)" (#5946) + 3 Josep M Sobrepere docs: improve rpc-provider README (#4719) + 3 KarishmaBothara Backward compatibility thing (#3511) + 3 Miguel Hervas Adding RT4 Types (#3007) + 3 Shawn Tabrizi Add `isReadyOrError` when connecting to API (#2577) + 3 YJ feat: Vote interface as U8a (#1061) + 2 Alexander Krupenkin Add [u8; 33] type width for U8aFixed type (#2391) + 2 Branan Riley Add proxy type for Centrifuge (#3940) + 2 Caio Add `Range` and `RangeInclusive` types (#3791) + 2 Francisco Gamundi Add chainIsEthereum prop to Registry interface (#5761) + 2 HackFisher Update maxExtrinsic definition (#4703) + 2 Jakub Pánik All heads subscription (#1899) + 2 James Lefrère Add `.eq()` usage to docs and fix docs typos (#1405) + 2 Javier Viola add muln(2), as was in the old code (#5829) + 2 Jegor Sidorenko Use Box instead of MultiAssetId (#5700) + 2 Keith Yeung Allow keyPrefix to accept an additional argument for double maps (#2230) + 2 MOZGIII Follow-up fix after #4665 (#4666) + 2 Paweł Nguyen Fix a minor typo in cookbook blocks docs (#2294) + 2 peetzweg/ feat: ink! v5 (#5791) + 2 rob thijssen nimbus author mapping correction (#5590) + 2 sung wu Update tx.md (#2485) + 2 Veliko Abi constructor takes different parameters (#3347) + 2 Wei Tang Use /usr/bin/env bash instead of /bin/bash (#2053) + 2 Yaroslav Bolyukin feat: allow objects to be supplied as map keys (#5128) + 2 Zannis Kalampoukis fix: Typegen handles structs and vectors of structs without erroring (#4743) + 2 扩散性百万甜面包 Typo, deocrateMethod -> decorateMethod (#1594) + 1 Alan Sapede Adds Eth feeHistory & maxPriorityFeePerGas rpc (#4956) + 1 Aleš Ferlan fix: use H160 for address in getTransactionCount (#5472) + 1 Alisher A. Khassanov Add `offchain_localStorageClear` RPC method (#6070) + 1 Brad Larson [NEW] Support for custom headers with providers (#2423) + 1 Btwiuse Arch Add side effect check workaround (#4994) (#5009) + 1 Cameron Marshall implement xcm dry run api (#5970) + 1 Carlo Sala fix(ExtrinsicPayload): decode assetId with and without option (#6037) + 1 chriswmercer little readme tweak (#279) + 1 codingsh #2182 - add: search for docs (#2232) + 1 coolcorexix Investigate 4559 v2 (#4608) + 1 Dan Forbes Add WeightToFeeCoefficient type (#2296) + 1 Daniel Maricic Fixed typo in README (#2402) + 1 Daniel Savu fix: Generate custom type definitions (#4224) + 1 Daria choosing AccountId20 type if the address is 20 bytes (#5991) + 1 David Don't log full error (#2952) + 1 David Duong Avoid reserved words during named enum fields augmentation (#5203) + 1 Denis Tsai realign AccountKey20Junction to polkadot xcm's Junction enum (#3770) + 1 djuanito.eth Update fees to current constants (#2320) + 1 Dominique fix: add optional chaining operator in `toHuman` (#5825) + 1 Drew Stone Update evm definitions to include vicinity (#2279) + 1 Dylan Galea Updated users of the polkadot-js/api (#2027) + 1 Ermal Kaleci fix cache key (rpc-provider) (#5745) + 1 filvecchiato Add lru ttl cache implementation (#5997) + 1 filvecchiato fix: update LRUcache to not keep thread (#6013) + 1 flex Change BeefySignedCommitment signatures type to EcdsaSignature (#4204) + 1 Florian Franzen metadataMd: use endpoint for rpc and runtime details too (#5628) + 1 Francis O'Brien fix: Re-subscribe to chain updates on reconnection if not a clone (#5794) + 1 Furqan A fix: fixed 404 to the docs from the api readme (#3985) + 1 Gérard Dethier Fix LRUCache memory leak. (#4520) + 1 Gerben van de Wiel Adding some extra notes on changes in the specname (#2329) + 1 girazoki Implement xcm payment api (#5911) + 1 gupnik Adds a check for tip in Submittable (#5953) + 1 HackFisher fix OutboundLaneData types (#3992) + 1 Hoani Bryson Multiple Endpoint support for WsProvider (#2234) + 1 Hyungsuk Kang Update fees.ts (#1014) + 1 icodezjb Update SessionKeys (#3035) + 1 iiiiiiii Make unknownTypes externally accessible (#3263) + 1 JesseAbram added 07 Example showing how to make a transfer with allowed block permissions folder in docs (#1062) + 1 Joey don't throw error at `onSocketClose` (#4363) + 1 Jordan Allow typegen for custom RPCs (#2876) + 1 JQQQ Allow rpc expose definition/ metadata (#3488) + 1 Jun Jiang Update contract' gas to Weight type (#5324) + 1 Ken Vu Expose `blockNumber` via filterEvents function (#5394) + 1 Kian Paimani Update definitions.ts (#2514) + 1 Krzysztof Jelski Derive for bounties and descriptions (#2925) + 1 Lae Make sure awaiting on an api object won't stuck forever on error (#1763) + 1 Lauro Gripa Fix multi call of `defenderVotes` and `isDefenderVoter` flag in `society.members` derivation (#5834) + 1 Lezek123 BTreeSet and BTreeMap - encoding and serialization fixes (#3789) + 1 Lovesh Harchandani Fix name of "getBlock" in package "api-derive" and export it in "index.ts" (#2857) + 1 Manuel Mauro Add EIP-7702 transaction type (#6188) + 1 Marc Fornós add beefy compact signed commitment definition (#5781) + 1 Mario Neises fix usage with typescript (#405) + 1 Mario Pino Add PolkaStats to API users (#1593) + 1 Mark Robert Henderson Update warnings.ts to have the latest URLs (#2720) + 1 Martin Rieke If possible, rpc-core should decode results into the lookupId type to avoid issues with multiple types that share the same name (#6089) + 1 Matej Nemček added Kodadot to @polkadot/api users section (#2220) + 1 Mokhtar Naamani Disable websocket outgoing message fragmentation for w3cwebsocket (#2738) + 1 Nazar Mokrynskyi Performance tweaks (#4143) + 1 Nikhil Ranjan add vestingPerBlock and vestingEndBlock in DeriveBalancesAll when doing calcBalances (#2563) + 1 Nikolay Volf Fix typo (#1730) + 1 Noah Corona Add rpc error fields (#4637) + 1 Oleksandr Mykhailenko Add more complex namespaced contracts & test cases for them (#4472) + 1 Paul M Fox Basic BTreeMaps codec support (#1474) + 1 philipstanislaus Update types for centrifuge chain v1.2.0 (#2424) + 1 Pierre Krieger Update substrate/connect to 0.7.6 (#4940) + 1 polymath-eric Allow unset external signer (#5649) + 1 Przemek Rzad Increase Vec max length (#5947) + 1 Qinxuan Chen Add fp_account::AccountId20 mapping (#5551) + 1 qiuhao update DeriveCustom type (#2581) + 1 r0t0r-r0t0r Fix memory leak on raw rpc call (#4505) + 1 Raphael Flechtner fix: typegen disconnect ws on success (#4901) + 1 Robert Gabriel Jakabosky Fix sorting of `Option` values and error on duplicates from BTreeSet/BTreeMap. (#5731) + 1 Robert Hambrock update MMR API (#5479) + 1 Rocco Musolino remove broken link (#2671) + 1 sander2 fix: type generation for nested tuples (#5395) + 1 satellitex Add BTreeSet Codec (#1639) + 1 satellitex Add traits replace rules. for invalid cases `::` and `::`. (#885) + 1 Satyam Agrawal update as per the 0.97.0-beta.38 release (#1617) + 1 Sean Young Solang requires u256 and i256 types (#2752) + 1 Serban Iorga Fix `beefy::subscribeJustifications()` return type (#5740) + 1 serge make WS provider timeout configurable (#4758) + 1 Sergei Pepyakin INK! -> ink! (#1347) + 1 Shunji Zhan small polish (#5276) + 1 Snoppy chore: fix typos (#5835) + 1 Stephen Shelton Add transaction-payment runtime API V3 (#5430) + 1 Tim B added EthRTApiV5 ifaces (#5680) + 1 WoeOm adapt Darwinia, Crab Network types (#3498) + 1 Xat_MassacrE Fix packages/types/src/codec/utils/encodeTypes.ts encodeSubTypes bug (#1544) + 1 xiaolou86 Fix typos (#5747) + 1 yjh fix MetadataVersioned.asV12 (#2983) + 1 Yuri fixes #3693 Fix uniques return types (#3694) + 1 Zeke Mostov fix: Allow sudo for polkadot indexed proxy enum (#3286) + 1 ZeroX-Toml Refactor signing functions to use blake2AsU8a for hashing instead of registry.hash in conditional sign of extrinsic payload (#6183) + 1 zjb0807 Throws detailed error information (#6116) \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..0d381b2 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. diff --git a/README.md b/README.md new file mode 100644 index 0000000..545335b --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +# @pezkuwi/api + +This library provides a clean wrapper around all the methods exposed by a Pezkuwi/Bizinikiwi network client and defines all the types exposed by a node. For complete documentation around the interfaces and their use, visit the [documentation portal](https://js.pezkuwichain.app/docs/api/). + +If you are an existing user, please be sure to track the [CHANGELOG](CHANGELOG.md) when changing versions. + +## tutorials + +Looking for tutorials to get started? Look at [examples](https://js.pezkuwichain.app/docs/api/examples/promise/) for guides on how to use the API to make queries and submit transactions. diff --git a/docs/.nojekyll b/docs/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..8c65b2a --- /dev/null +++ b/docs/404.html @@ -0,0 +1,12 @@ + + + + + + + Redirecting to https://polkadot.js.org/docs/api/ + + + Redirecting to https://polkadot.js.org/docs/api/ + + diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..8c65b2a --- /dev/null +++ b/docs/index.html @@ -0,0 +1,12 @@ + + + + + + + Redirecting to https://polkadot.js.org/docs/api/ + + + Redirecting to https://polkadot.js.org/docs/api/ + + diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 0000000..b34083b --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import baseConfig from '@pezkuwi/dev/config/eslint'; + +export default [ + { + ignores: [ + // see the tsconfig.eslint.json for explanation + 'packages/api-augment/src/zagros/*.ts', + 'packages/api-augment/src/pezkuwi/*.ts' + ] + }, + ...baseConfig, + { + rules: { + // add override for any (a metric ton of them, initial conversion) + '@typescript-eslint/no-explicit-any': 'off', + // we generally use this in isFunction, not via calling + '@typescript-eslint/unbound-method': 'off' + } + } +]; diff --git a/import_map.in.json b/import_map.in.json new file mode 100644 index 0000000..7380128 --- /dev/null +++ b/import_map.in.json @@ -0,0 +1,5 @@ +{ + "imports": { + "https://esm.sh/v90/@types/bn.js@~5.2/index.d.ts": "https://esm.sh/v90/@types/bn.js@5.1.0/index.d.ts" + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..c9189f3 --- /dev/null +++ b/package.json @@ -0,0 +1,55 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "engines": { + "node": ">=18.14" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api#readme", + "license": "Apache-2.0", + "packageManager": "yarn@4.6.0", + "private": true, + "repository": { + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": false, + "type": "module", + "version": "16.5.6", + "versions": { + "git": "16.5.4", + "npm": "16.5.4" + }, + "workspaces": [ + "packages/*" + ], + "scripts": { + "build": "yarn build:interfaces && pezkuwi-dev-build-ts", + "build:before": "pezkuwi-dev-copy-dir --cd packages/typegen scripts build", + "build:interfaces": "node --loader @pezkuwi/dev-ts packages/typegen/scripts/pezkuwi-types-internal-interfaces.mjs", + "build:metadata": "yarn build:interfaces && pezkuwi-dev-run-test packages/types/src/metadata/v14", + "build:release": "pezkuwi-ci-ghact-build", + "build:rollup": "pezkuwi-exec-rollup --config", + "build:upgrades": "pezkuwi-dev-run-test upgrades/e2e", + "chain:info": "pezkuwi-types-chain-info", + "clean": "pezkuwi-dev-clean-build", + "deno": "yarn pezkuwi-dev-deno-map && yarn build && deno check --import-map=import_map.json mod.ts", + "lint": "pezkuwi-dev-run-lint", + "postinstall": "pezkuwi-dev-yarn-only", + "test": "pezkuwi-dev-run-test --env node ^e2e", + "test:node": "pezkuwi-dev-run-test --env node ^e2e", + "test:one": "pezkuwi-dev-run-test --env node" + }, + "devDependencies": { + "@pezkuwi/dev": "^0.85.1", + "@pezkuwi/dev-test": "^0.85.1", + "@pezkuwi/dev-ts": "^0.85.1", + "@pezkuwi/typegen": "^16.5.4", + "@types/node": "^22.10.5" + }, + "resolutions": { + "@pezkuwi/dev": "0.85.1", + "@pezkuwi/dev-test": "0.85.1", + "@pezkuwi/dev-ts": "0.85.1", + "typescript": "5.5.4" + } +} diff --git a/packages/api-augment/README.md b/packages/api-augment/README.md new file mode 100644 index 0000000..25f6861 --- /dev/null +++ b/packages/api-augment/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/api-augment + +Generated augmentation. diff --git a/packages/api-augment/package.json b/packages/api-augment/package.json new file mode 100644 index 0000000..bf3220b --- /dev/null +++ b/packages/api-augment/package.json @@ -0,0 +1,32 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "API generated augmentation", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-augment#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/api-augment", + "repository": { + "directory": "packages/api-augment", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/api-base": "16.5.4", + "@pezkuwi/rpc-augment": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-augment": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "tslib": "^2.8.1" + } +} diff --git a/packages/api-augment/src/assetHubDicle/consts.ts b/packages/api-augment/src/assetHubDicle/consts.ts new file mode 100644 index 0000000..6209b6d --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/consts.ts @@ -0,0 +1,1308 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/consts'; + +import type { ApiTypes, AugmentedConst } from '@pezkuwi/api-base/types'; +import type { Bytes, Option, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { Codec, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, Perbill, Permill } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportPezpalletId, PezframeSystemLimitsBlockLength, PezframeSystemLimitsBlockWeights, PezpalletReferendaTrackDetails, PezspVersionRuntimeVersion, PezspWeightsRuntimeDbWeight, PezspWeightsWeightV2Weight, StagingXcmV5Junctions, StagingXcmV5Location } from '@pezkuwi/types/lookup'; + +export type __AugmentedConst = AugmentedConst; + +declare module '@pezkuwi/api-base/types/consts' { + interface AugmentedConsts { + assetConversion: { + /** + * A fee to withdraw the liquidity. + **/ + liquidityWithdrawalFee: Permill & AugmentedConst; + /** + * A % the liquidity providers will take of every swap. Represents 10ths of a percent. + **/ + lpFee: u32 & AugmentedConst; + /** + * The max number of hops in a swap. + **/ + maxSwapPathLength: u32 & AugmentedConst; + /** + * The minimum LP token amount that could be minted. Ameliorates rounding errors. + **/ + mintMinLiquidity: u128 & AugmentedConst; + /** + * The pallet's id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * A one-time fee to setup the pool. + **/ + poolSetupFee: u128 & AugmentedConst; + /** + * Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]. + **/ + poolSetupFeeAsset: StagingXcmV5Location & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + assets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + bounties: { + /** + * The amount held on deposit for placing a bounty proposal. + **/ + bountyDepositBase: u128 & AugmentedConst; + /** + * The delay period for which a bounty beneficiary need to wait before claim the payout. + **/ + bountyDepositPayoutDelay: u32 & AugmentedConst; + /** + * The time limit for a curator to act before a bounty expires. + * + * The period that starts when a curator is approved, during which they must execute or + * update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the + * curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely, + * removing the need for `extend_bounty_expiry`. + **/ + bountyUpdatePeriod: u32 & AugmentedConst; + /** + * Minimum value for a bounty. + **/ + bountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMax: Option & AugmentedConst; + /** + * Minimum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMin: Option & AugmentedConst; + /** + * The curator deposit is calculated as a percentage of the curator fee. + * + * This deposit has optional upper and lower bounds with `CuratorDepositMax` and + * `CuratorDepositMin`. + **/ + curatorDepositMultiplier: Permill & AugmentedConst; + /** + * The amount held on deposit per byte within the tip report reason or bounty description. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * Maximum acceptable reason length. + * + * Benchmarks depend on this value, be sure to update weights file when changing this value + **/ + maximumReasonLength: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + childBounties: { + /** + * Minimum value for a child-bounty. + **/ + childBountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum number of child bounties that can be added to a parent bounty. + **/ + maxActiveChildBountyCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + claims: { + prefix: Bytes & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + collatorSelection: { + kickThreshold: u32 & AugmentedConst; + /** + * Maximum number of candidates that we should have. + * + * This does not take into account the invulnerables. + **/ + maxCandidates: u32 & AugmentedConst; + /** + * Maximum number of invulnerables. + **/ + maxInvulnerables: u32 & AugmentedConst; + /** + * Minimum number eligible collators. Should always be greater than zero. This includes + * Invulnerable collators. This ensures that there will always be one collator who can + * produce a block. + **/ + minEligibleCollators: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Account Identifier from which the internal Pot is generated. + **/ + potId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + convictionVoting: { + /** + * The maximum number of concurrent votes an account may have. + * + * Also used to compute weight, an overly large value can lead to extrinsics with large + * weight estimation: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + delegatedStaking: { + /** + * Injected identifier for the pallet. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Fraction of the slash that is rewarded to the caller of pending slash to the agent. + **/ + slashRewardFraction: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + foreignAssets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + indices: { + /** + * The deposit needed for reserving an index. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multiBlockElection: { + /** + * The number of pages. + * + * The snapshot is created with this many keys in the storage map. + * + * The solutions may contain at MOST this many pages, but less pages are acceptable as + * well. + **/ + pages: u32 & AugmentedConst; + /** + * Duration of the signed phase. + **/ + signedPhase: u32 & AugmentedConst; + /** + * Duration of the singed validation phase. + * + * The duration of this should not be less than `T::Pages`, and there is no point in it + * being more than `SignedPhase::MaxSubmission::get() * T::Pages`. TODO: integrity test for + * it. + **/ + signedValidationPhase: u32 & AugmentedConst; + /** + * The number of snapshot targets to fetch per block. + **/ + targetSnapshotPerBlock: u32 & AugmentedConst; + /** + * Duration of the unsigned phase. + **/ + unsignedPhase: u32 & AugmentedConst; + /** + * The number of snapshot voters to fetch per block. + **/ + voterSnapshotPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multiBlockElectionVerifier: { + /** + * Maximum number of backers, per winner, per page. + **/ + maxBackersPerWinner: u32 & AugmentedConst; + /** + * Maximum number of backers, per winner, among all pages of an election. + * + * This can only be checked at the very final step of verification. + * + * NOTE: at the moment, we don't check this, and it is in place for future compatibility. + **/ + maxBackersPerWinnerFinal: u32 & AugmentedConst; + /** + * Maximum number of supports (aka. winners/validators/targets) that can be represented in + * a page of results. + **/ + maxWinnersPerPage: u32 & AugmentedConst; + /** + * The minimum amount of improvement to the solution score that defines a solution as + * "better". + **/ + solutionImprovementThreshold: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multiBlockMigrations: { + /** + * The maximal length of an encoded cursor. + * + * A good default needs to selected such that no migration will ever have a cursor with MEL + * above this limit. This is statically checked in `integrity_test`. + **/ + cursorMaxLen: u32 & AugmentedConst; + /** + * The maximal length of an encoded identifier. + * + * A good default needs to selected such that no migration will ever have an identifier + * with MEL above this limit. This is statically checked in `integrity_test`. + **/ + identifierMaxLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multisig: { + /** + * The base amount of currency needed to reserve for creating a multisig execution or to + * store a dispatch call for later. + * + * This is held for an additional storage item whose value size is + * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is + * `32 + sizeof(AccountId)` bytes. + **/ + depositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per unit threshold when creating a multisig execution. + * + * This is held for adding 32 bytes more into a pre-existing storage value. + **/ + depositFactor: u128 & AugmentedConst; + /** + * The maximum amount of signatories allowed in the multisig. + **/ + maxSignatories: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nftFractionalization: { + /** + * The deposit paid by the user locking an NFT. The deposit is returned to the original NFT + * owner when the asset is unified and the NFT is unlocked. + **/ + deposit: u128 & AugmentedConst; + /** + * The newly created asset's name. + **/ + newAssetName: Bytes & AugmentedConst; + /** + * The newly created asset's symbol. + **/ + newAssetSymbol: Bytes & AugmentedConst; + /** + * The pallet's id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nominationPools: { + /** + * The maximum pool points-to-balance ratio that an `open` pool can have. + * + * This is important in the event slashing takes place and the pool's points-to-balance + * ratio becomes disproportional. + * + * Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations + * are a function of number of points, and by setting this value to e.g. 10, you ensure + * that the total number of points in the system are at most 10 times the total_issuance of + * the chain, in the absolute worse case. + * + * For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1. + * Such a scenario would also be the equivalent of the pool being 90% slashed. + **/ + maxPointsToBalance: u8 & AugmentedConst; + /** + * The maximum number of simultaneous unbonding chunks that can exist per member. + **/ + maxUnbonding: u32 & AugmentedConst; + /** + * The nomination pool's pallet id. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + parachainSystem: { + /** + * Returns the parachain ID we are running with. + **/ + selfParaId: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + polkadotXcm: { + /** + * The latest supported version that we advertise. Generally just set it to + * `pallet_xcm::CurrentXcmVersion`. + **/ + advertisedXcmVersion: u32 & AugmentedConst; + /** + * The maximum number of local XCM locks that a single account may have. + **/ + maxLockers: u32 & AugmentedConst; + /** + * The maximum number of consumers a single remote lock may have. + **/ + maxRemoteLockConsumers: u32 & AugmentedConst; + /** + * This chain's Universal Location. + **/ + universalLocation: StagingXcmV5Junctions & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + poolAssets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proxy: { + /** + * The base amount of currency needed to reserve for creating an announcement. + * + * This is held when a new storage item holding a `Balance` is created (typically 16 + * bytes). + **/ + announcementDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per announcement made. + * + * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) + * into a pre-existing storage value. + **/ + announcementDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of time-delayed announcements that are allowed to be pending. + **/ + maxPending: u32 & AugmentedConst; + /** + * The maximum amount of proxies allowed for a single account. + **/ + maxProxies: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for creating a proxy. + * + * This is held for an additional storage item whose value size is + * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. + **/ + proxyDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per proxy added. + * + * This is held for adding 32 bytes plus an instance of `ProxyType` more into a + * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take + * into account `32 + proxy_type.encode().len()` bytes of data. + **/ + proxyDepositFactor: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + recovery: { + /** + * The base amount of currency needed to reserve for creating a recovery configuration. + * + * This is held for an additional storage item whose value size is + * `2 + sizeof(BlockNumber, Balance)` bytes. + **/ + configDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per additional user when creating a recovery + * configuration. + * + * This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage + * value. + **/ + friendDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of friends allowed in a recovery configuration. + * + * NOTE: The threshold programmed in this Pallet uses u16, so it does + * not really make sense to have a limit here greater than u16::MAX. + * But also, that is a lot more than you should probably set this value + * to anyway... + **/ + maxFriends: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for starting a recovery. + * + * This is primarily held for deterring malicious recovery attempts, and should + * have a value large enough that a bad actor would choose not to place this + * deposit. It also acts to fund additional storage item whose value size is + * `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable + * threshold. + **/ + recoveryDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + referenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + revive: { + /** + * The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID. + * + * This is a unique identifier assigned to each blockchain network, + * preventing replay attacks. + **/ + chainId: u64 & AugmentedConst; + /** + * The percentage of the storage deposit that should be held for using a code hash. + * Instantiating a contract, protects the code from being removed. In order to prevent + * abuse these actions are protected with a percentage of the code deposit. + **/ + codeHashLockupDepositPercent: Perbill & AugmentedConst; + /** + * The amount of balance a caller has to pay for each byte of storage. + * + * # Note + * + * It is safe to change this value on a live chain as all refunds are pro rata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * The amount of balance a caller has to pay for each storage item. + * + * # Note + * + * It is safe to change this value on a live chain as all refunds are pro rata. + **/ + depositPerItem: u128 & AugmentedConst; + /** + * The ratio between the decimal representation of the native token and the ETH token. + **/ + nativeToEthRatio: u32 & AugmentedConst; + /** + * Make contract callable functions marked as `#[unstable]` available. + * + * Contracts that use `#[unstable]` functions won't be able to be uploaded unless + * this is set to `true`. This is only meant for testnets and dev nodes in order to + * experiment with new features. + * + * # Warning + * + * Do **not** set to `true` on productions chains. + **/ + unsafeUnstableInterface: bool & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + scheduler: { + /** + * The maximum weight that may be scheduled per block for any dispatchables. + **/ + maximumWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * The maximum number of scheduled calls in the queue for a single block. + * + * NOTE: + * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a + * higher limit under `runtime-benchmarks` feature. + **/ + maxScheduledPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + session: { + /** + * The amount to be held when setting keys. + **/ + keyDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + society: { + /** + * The number of [Config::BlockNumberProvider] blocks between membership challenges. + **/ + challengePeriod: u32 & AugmentedConst; + /** + * The number of [Config::BlockNumberProvider] blocks on which new candidates can claim + * their membership and be the named head. + **/ + claimPeriod: u32 & AugmentedConst; + /** + * The maximum number of strikes before a member gets funds slashed. + **/ + graceStrikes: u32 & AugmentedConst; + /** + * The maximum number of bids at once. + **/ + maxBids: u32 & AugmentedConst; + /** + * The maximum duration of the payout lock. + **/ + maxLockDuration: u32 & AugmentedConst; + /** + * The maximum number of payouts a member may have waiting unclaimed. + **/ + maxPayouts: u32 & AugmentedConst; + /** + * The societies's pallet id + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The amount of incentive paid within each period. Doesn't include VoterTip. + **/ + periodSpend: u128 & AugmentedConst; + /** + * The number of [Config::BlockNumberProvider] blocks on which new candidates should be + * voted on. Together with + * `ClaimPeriod`, this sums to the number of blocks between candidate intake periods. + **/ + votingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + staking: { + /** + * Number of eras that staked funds must remain bonded for. + **/ + bondingDuration: u32 & AugmentedConst; + /** + * Number of eras to keep in history. + * + * Following information is kept for eras in `[current_era - + * HistoryDepth, current_era]`: `ErasValidatorPrefs`, `ErasValidatorReward`, + * `ErasRewardPoints`, `ErasTotalStake`, `ClaimedRewards`, + * `ErasStakersPaged`, `ErasStakersOverview`. + * + * Must be more than the number of eras delayed by session. + * I.e. active era must always be in history. I.e. `active_era > + * current_era - history_depth` must be guaranteed. + * + * If migrating an existing pallet from storage value to config value, + * this should be set to same value or greater as in storage. + **/ + historyDepth: u32 & AugmentedConst; + /** + * Maximum allowed era duration in milliseconds. + * + * This provides a defensive upper bound to cap the effective era duration, preventing + * excessively long eras from causing runaway inflation (e.g., due to bugs). If the actual + * era duration exceeds this value, it will be clamped to this maximum. + * + * Example: For an ideal era duration of 24 hours (86,400,000 ms), + * this can be set to 604,800,000 ms (7 days). + **/ + maxEraDuration: u64 & AugmentedConst; + /** + * The maximum size of each `T::ExposurePage`. + * + * An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize` + * nominators. + * + * For older non-paged exposure, a reward payout was restricted to the top + * `MaxExposurePageSize` nominators. This is to limit the i/o cost for the + * nominator payout. + * + * Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to + * reduce without handling it in a migration. + **/ + maxExposurePageSize: u32 & AugmentedConst; + /** + * Maximum number of invulnerable validators. + **/ + maxInvulnerables: u32 & AugmentedConst; + /** + * Maximum number of storage items that can be pruned in a single call. + * + * This controls how many storage items can be deleted in each call to `prune_era_step`. + * This should be set to a conservative value (e.g., 100-500 items) to ensure pruning + * doesn't consume too much block space. The actual weight is determined by benchmarks. + **/ + maxPruningItems: u32 & AugmentedConst; + /** + * The maximum number of `unlocking` chunks a [`StakingLedger`] can + * have. Effectively determines how many unique eras a staker may be + * unbonding in. + * + * Note: `MaxUnlockingChunks` is used as the upper bound for the + * `BoundedVec` item `StakingLedger.unlocking`. Setting this value + * lower than the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a runtime + * migration. The test `reducing_max_unlocking_chunks_abrupt` shows + * this effect. + **/ + maxUnlockingChunks: u32 & AugmentedConst; + /** + * The absolute maximum of winner validators this pallet should return. + * + * As this pallet supports multi-block election, the set of winner validators *per + * election* is bounded by this type. + **/ + maxValidatorSet: u32 & AugmentedConst; + /** + * Number of sessions before the end of an era when the election for the next era will + * start. + * + * - This determines how many sessions **before** the last session of the era the staking + * election process should begin. + * - The value is bounded between **1** (election starts at the beginning of the last + * session) and `SessionsPerEra` (election starts at the beginning of the first session + * of the era). + * + * ### Example: + * - If `SessionsPerEra = 6` and `PlanningEraOffset = 1`, the election starts at the + * beginning of session `6 - 1 = 5`. + * - If `PlanningEraOffset = 6`, the election starts at the beginning of session `6 - 6 = + * 0`, meaning it starts at the very beginning of the era. + **/ + planningEraOffset: u32 & AugmentedConst; + /** + * Number of sessions per era, as per the preferences of the **relay chain**. + **/ + sessionsPerEra: u32 & AugmentedConst; + /** + * Number of eras that slashes are deferred by, after computation. + * + * This should be less than the bonding duration. Set to 0 if slashes + * should be applied immediately, without opportunity for intervention. + **/ + slashDeferDuration: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + stateTrieMigration: { + /** + * Maximal number of bytes that a key can have. + * + * FRAME itself does not limit the key length. + * The concrete value must therefore depend on your storage usage. + * A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of + * keys which are then hashed and concatenated, resulting in arbitrarily long keys. + * + * Use the *state migration RPC* to retrieve the length of the longest key in your + * storage: + * + * The migration will halt with a `Halted` event if this value is too small. + * Since there is no real penalty from over-estimating, it is advised to use a large + * value. The default is 512 byte. + * + * Some key lengths for reference: + * - [`frame_support::storage::StorageValue`]: 32 byte + * - [`frame_support::storage::StorageMap`]: 64 byte + * - [`frame_support::storage::StorageDoubleMap`]: 96 byte + * + * For more info see + * + **/ + maxKeyLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: PezframeSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: PezframeSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: PezspWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: PezspVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + treasury: { + /** + * Percentage of spare funds (if any) that are burnt per spend period. + **/ + burn: Permill & AugmentedConst; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * The maximum number of approvals that can wait in the spending queue. + * + * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. + **/ + maxApprovals: u32 & AugmentedConst; + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The period during which an approved treasury spend has to be claimed. + **/ + payoutPeriod: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Period between successive spends. + **/ + spendPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + uniques: { + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + utility: { + /** + * The limit on the number of batched calls. + **/ + batchedCallsLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + vesting: { + maxVestingSchedules: u32 & AugmentedConst; + /** + * The minimum amount transferred to call `vested_transfer`. + **/ + minVestedTransfer: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + voterList: { + /** + * The list of thresholds separating the various bags. + * + * Ids are separated into unsorted bags according to their score. This specifies the + * thresholds separating the bags. An id's bag is the largest bag for which the id's score + * is less than or equal to its upper threshold. + * + * When ids are iterated, higher bags are iterated completely before lower bags. This means + * that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower + * score, but peer ids within a particular bag are sorted in insertion order. + * + * # Expressing the constant + * + * This constant must be sorted in strictly increasing order. Duplicate items are not + * permitted. + * + * There is an implied upper limit of `Score::MAX`; that value does not need to be + * specified within the bag. For any two threshold lists, if one ends with + * `Score::MAX`, the other one does not, and they are otherwise equal, the two + * lists will behave identically. + * + * # Calculation + * + * It is recommended to generate the set of thresholds in a geometric series, such that + * there exists some constant ratio such that `threshold[k + 1] == (threshold[k] * + * constant_ratio).max(threshold[k] + 1)` for all `k`. + * + * The helpers in the `/utils/frame/generate-bags` module can simplify this calculation. + * + * # Examples + * + * - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and + * iteration is strictly in insertion order. + * - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is equal to 2. + * - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is approximately equal to 1.248. + * - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall + * into bag 0, an id with score 2 will fall into bag 1, etc. + * + * # Migration + * + * In the event that this list ever changes, a copy of the old bags list must be retained. + * With that `List::migrate` can be called, which will perform the appropriate migration. + **/ + bagThresholds: Vec & AugmentedConst; + /** + * Maximum number of accounts that may be re-bagged automatically in `on_idle`. + * + * A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables + * the feature. + **/ + maxAutoRebagPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; + /** + * The maximum number of inbound XCMP channels that can be suspended simultaneously. + * + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ + maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/packages/api-augment/src/assetHubDicle/errors.ts b/packages/api-augment/src/assetHubDicle/errors.ts new file mode 100644 index 0000000..e25ab21 --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/errors.ts @@ -0,0 +1,2779 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/errors'; + +import type { ApiTypes, AugmentedError } from '@pezkuwi/api-base/types'; + +export type __AugmentedError = AugmentedError; + +declare module '@pezkuwi/api-base/types/errors' { + interface AugmentedErrors { + ahMigrator: { + /** + * The XCM version is invalid. + **/ + BadXcmVersion: AugmentedError; + /** + * The DMP queue priority is already set to the same value. + **/ + DmpQueuePriorityAlreadySet: AugmentedError; + /** + * Failed to bound a call. + **/ + FailedToBoundCall: AugmentedError; + /** + * Vector did not fit into its compile-time bound. + **/ + FailedToBoundVector: AugmentedError; + /** + * Checking account overflow or underflow. + **/ + FailedToCalculateCheckingAccount: AugmentedError; + /** + * Failed to convert RC call to AH call. + **/ + FailedToConvertCall: AugmentedError; + /** + * Failed to convert RC type to AH type. + **/ + FailedToConvertType: AugmentedError; + /** + * Failed to integrate a vesting schedule. + **/ + FailedToIntegrateVestingSchedule: AugmentedError; + /** + * Failed to process an account data from RC. + **/ + FailedToProcessAccount: AugmentedError; + /** + * Failed to unreserve deposit. + **/ + FailedToUnreserveDeposit: AugmentedError; + /** + * Some item could not be inserted because it already exists. + **/ + InsertConflict: AugmentedError; + /** + * The origin is invalid. + **/ + InvalidOrigin: AugmentedError; + /** + * Invalid parameter. + **/ + InvalidParameter: AugmentedError; + /** + * Preimage chunk missing. + **/ + PreimageChunkMissing: AugmentedError; + /** + * Preimage missing. + **/ + PreimageMissing: AugmentedError; + /** + * Failed to fetch preimage. + **/ + PreimageNotFound: AugmentedError; + /** + * Preimage status invalid. + **/ + PreimageStatusInvalid: AugmentedError; + /** + * Preimage too big. + **/ + PreimageTooBig: AugmentedError; + /** + * Failed to send XCM message. + **/ + XcmError: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + ahOps: { + /** + * Not all contributions are withdrawn. + **/ + ContributionsRemaining: AugmentedError; + /** + * Failed to withdraw crowdloan contribution. + **/ + FailedToWithdrawCrowdloanContribution: AugmentedError; + /** + * Internal error, please bug report. + **/ + InternalError: AugmentedError; + /** + * The Asset Hub migration is not completed. + **/ + MigrationNotCompleted: AugmentedError; + /** + * Either no crowdloan contribution or already withdrawn. + **/ + NoCrowdloanContribution: AugmentedError; + /** + * Either no crowdloan reserve or already unreserved. + **/ + NoCrowdloanReserve: AugmentedError; + /** + * Either no lease deposit or already unreserved. + **/ + NoLeaseReserve: AugmentedError; + /** + * Account cannot be migrated since it is not a sovereign parachain account. + **/ + NotSovereign: AugmentedError; + /** + * Block number is not yet reached. + **/ + NotYet: AugmentedError; + /** + * The account is not a derived account. + **/ + WrongDerivedTranslation: AugmentedError; + /** + * The balance is zero. + **/ + ZeroBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetConversion: { + /** + * Provided amount should be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + AmountOneLessThanMinimal: AugmentedError; + /** + * Desired amount can't be equal to the pool reserve. + **/ + AmountOutTooHigh: AugmentedError; + /** + * Provided amount should be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + AmountTwoLessThanMinimal: AugmentedError; + /** + * The minimal amount requirement for the first token in the pair wasn't met. + **/ + AssetOneDepositDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the first token in the pair wasn't met. + **/ + AssetOneWithdrawalDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the second token in the pair wasn't met. + **/ + AssetTwoDepositDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the second token in the pair wasn't met. + **/ + AssetTwoWithdrawalDidNotMeetMinimum: AugmentedError; + /** + * The destination account cannot exist with the swapped funds. + **/ + BelowMinimum: AugmentedError; + /** + * It was not possible to get or increment the Id of the pool. + **/ + IncorrectPoolAssetId: AugmentedError; + /** + * Insufficient liquidity minted. + **/ + InsufficientLiquidityMinted: AugmentedError; + /** + * Provided asset pair is not supported for pool. + **/ + InvalidAssetPair: AugmentedError; + /** + * The provided path must consists of 2 assets at least. + **/ + InvalidPath: AugmentedError; + /** + * The provided path must consists of unique assets. + **/ + NonUniquePath: AugmentedError; + /** + * Optimal calculated amount is less than desired. + **/ + OptimalAmountLessThanDesired: AugmentedError; + /** + * An overflow happened. + **/ + Overflow: AugmentedError; + /** + * Pool already exists. + **/ + PoolExists: AugmentedError; + /** + * The pool doesn't exist. + **/ + PoolNotFound: AugmentedError; + /** + * Provided maximum amount is not sufficient for swap. + **/ + ProvidedMaximumNotSufficientForSwap: AugmentedError; + /** + * Calculated amount out is less than provided minimum amount. + **/ + ProvidedMinimumNotSufficientForSwap: AugmentedError; + /** + * Reserve needs to always be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + ReserveLeftLessThanMinimal: AugmentedError; + /** + * Desired amount can't be zero. + **/ + WrongDesiredAmount: AugmentedError; + /** + * Amount can't be zero. + **/ + ZeroAmount: AugmentedError; + /** + * Requested liquidity can't be zero. + **/ + ZeroLiquidity: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetRate: { + /** + * The given asset ID already has an assigned conversion rate and cannot be re-created. + **/ + AlreadyExists: AugmentedError; + /** + * Overflow ocurred when calculating the inverse rate. + **/ + Overflow: AugmentedError; + /** + * The given asset ID is unknown. + **/ + UnknownAssetKind: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bounties: { + /** + * The bounty cannot be closed because it has active child bounties. + **/ + HasActiveChildBounty: AugmentedError; + /** + * Proposer's balance is too low. + **/ + InsufficientProposersBalance: AugmentedError; + /** + * Invalid bounty fee. + **/ + InvalidFee: AugmentedError; + /** + * No proposal or bounty at that index. + **/ + InvalidIndex: AugmentedError; + /** + * Invalid bounty value. + **/ + InvalidValue: AugmentedError; + /** + * User is not the proposer of the bounty. + **/ + NotProposer: AugmentedError; + /** + * A bounty payout is pending. + * To cancel the bounty, you must unassign and slash the curator. + **/ + PendingPayout: AugmentedError; + /** + * The bounties cannot be claimed/closed because it's still in the countdown period. + **/ + Premature: AugmentedError; + /** + * The reason given is just too big. + **/ + ReasonTooBig: AugmentedError; + /** + * Require bounty curator. + **/ + RequireCurator: AugmentedError; + /** + * Too many approvals are already queued. + **/ + TooManyQueued: AugmentedError; + /** + * The bounty status is unexpected. + **/ + UnexpectedStatus: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + childBounties: { + /** + * The bounty balance is not enough to add new child-bounty. + **/ + InsufficientBountyBalance: AugmentedError; + /** + * The parent bounty is not in active state. + **/ + ParentBountyNotActive: AugmentedError; + /** + * Number of child bounties exceeds limit `MaxActiveChildBountyCount`. + **/ + TooManyChildBounties: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + claims: { + /** + * Invalid Ethereum signature. + **/ + InvalidEthereumSignature: AugmentedError; + /** + * A needed statement was not included. + **/ + InvalidStatement: AugmentedError; + /** + * There's not enough in the pot to pay out some unvested amount. Generally implies a + * logic error. + **/ + PotUnderflow: AugmentedError; + /** + * Account ID sending transaction has no claim. + **/ + SenderHasNoClaim: AugmentedError; + /** + * Ethereum address has no claim. + **/ + SignerHasNoClaim: AugmentedError; + /** + * The account already has a vested balance. + **/ + VestedBalanceExists: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + collatorSelection: { + /** + * Account is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * Account is already an Invulnerable. + **/ + AlreadyInvulnerable: AugmentedError; + /** + * New deposit amount would be below the minimum candidacy bond. + **/ + DepositTooLow: AugmentedError; + /** + * The updated deposit amount is equal to the amount already reserved. + **/ + IdenticalDeposit: AugmentedError; + /** + * Could not insert in the candidate list. + **/ + InsertToCandidateListFailed: AugmentedError; + /** + * Deposit amount is too low to take the target's slot in the candidate list. + **/ + InsufficientBond: AugmentedError; + /** + * Cannot lower candidacy bond while occupying a future collator slot in the list. + **/ + InvalidUnreserve: AugmentedError; + /** + * Account has no associated validator ID. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * Account is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * Account is not an Invulnerable. + **/ + NotInvulnerable: AugmentedError; + /** + * Could not remove from the candidate list. + **/ + RemoveFromCandidateListFailed: AugmentedError; + /** + * The target account to be replaced in the candidate list is not a candidate. + **/ + TargetIsNotCandidate: AugmentedError; + /** + * Leaving would result in too few candidates. + **/ + TooFewEligibleCollators: AugmentedError; + /** + * The pallet has too many candidates. + **/ + TooManyCandidates: AugmentedError; + /** + * There are too many Invulnerables. + **/ + TooManyInvulnerables: AugmentedError; + /** + * Could not update the candidate list. + **/ + UpdateCandidateListFailed: AugmentedError; + /** + * Validator ID is not yet registered. + **/ + ValidatorNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + convictionVoting: { + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed through `remove_vote`. + **/ + AlreadyVoting: AugmentedError; + /** + * The class ID supplied is invalid. + **/ + BadClass: AugmentedError; + /** + * The class must be supplied since it is not easily determinable from the state. + **/ + ClassNeeded: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * The actor has no permission to conduct the action right now but will do in the future. + **/ + NoPermissionYet: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Poll is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * The given account did not vote on the poll. + **/ + NotVoter: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + delegatedStaking: { + /** + * An existing staker cannot perform this action. + **/ + AlreadyStaking: AugmentedError; + /** + * Some corruption in internal state. + **/ + BadState: AugmentedError; + /** + * Delegation conditions are not met. + * + * Possible issues are + * 1) Cannot delegate to self, + * 2) Cannot delegate to multiple delegates. + **/ + InvalidDelegation: AugmentedError; + /** + * Reward Destination cannot be same as `Agent` account. + **/ + InvalidRewardDestination: AugmentedError; + /** + * Not an existing `Agent` account. + **/ + NotAgent: AugmentedError; + /** + * The account cannot perform this operation. + **/ + NotAllowed: AugmentedError; + /** + * Not a Delegator account. + **/ + NotDelegator: AugmentedError; + /** + * The account does not have enough funds to perform the operation. + **/ + NotEnoughFunds: AugmentedError; + /** + * `Agent` has no pending slash to be applied. + **/ + NothingToSlash: AugmentedError; + /** + * Operation not supported by this pallet. + **/ + NotSupported: AugmentedError; + /** + * Unapplied pending slash restricts operation on `Agent`. + **/ + UnappliedSlash: AugmentedError; + /** + * Failed to withdraw amount from Core Staking. + **/ + WithdrawFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + foreignAssets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + indices: { + /** + * The index was not available. + **/ + InUse: AugmentedError; + /** + * The index was not already assigned. + **/ + NotAssigned: AugmentedError; + /** + * The index is assigned to another account. + **/ + NotOwner: AugmentedError; + /** + * The source and destination accounts are identical. + **/ + NotTransfer: AugmentedError; + /** + * The index is permanent and may not be freed/changed. + **/ + Permanent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multiBlockElection: { + /** + * Triggering the `Fallback` failed. + **/ + Fallback: AugmentedError; + /** + * Snapshot was unavailable. + **/ + Snapshot: AugmentedError; + /** + * Unexpected phase + **/ + UnexpectedPhase: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multiBlockElectionSigned: { + /** + * The page index is out of bounds. + **/ + BadPageIndex: AugmentedError; + /** + * Bad witness data provided. + **/ + BadWitnessData: AugmentedError; + /** + * The submission is a duplicate. + **/ + Duplicate: AugmentedError; + /** + * No submission found. + **/ + NoSubmission: AugmentedError; + /** + * The account is not registered. + **/ + NotRegistered: AugmentedError; + /** + * The phase is not signed. + **/ + PhaseNotSigned: AugmentedError; + /** + * The queue is full. + **/ + QueueFull: AugmentedError; + /** + * Round is not yet over. + **/ + RoundNotOver: AugmentedError; + /** + * Too many invulnerable accounts are provided, + **/ + TooManyInvulnerables: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multiBlockMigrations: { + /** + * The operation cannot complete since some MBMs are ongoing. + **/ + Ongoing: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multisig: { + /** + * Call is already approved by this signatory. + **/ + AlreadyApproved: AugmentedError; + /** + * The data to be stored is already stored. + **/ + AlreadyStored: AugmentedError; + /** + * The maximum weight information provided was too low. + **/ + MaxWeightTooLow: AugmentedError; + /** + * Threshold must be 2 or greater. + **/ + MinimumThreshold: AugmentedError; + /** + * Call doesn't need any (more) approvals. + **/ + NoApprovalsNeeded: AugmentedError; + /** + * Multisig operation not found in storage. + **/ + NotFound: AugmentedError; + /** + * No timepoint was given, yet the multisig operation is already underway. + **/ + NoTimepoint: AugmentedError; + /** + * Only the account that originally created the multisig is able to cancel it or update + * its deposits. + **/ + NotOwner: AugmentedError; + /** + * The sender was contained in the other signatories; it shouldn't be. + **/ + SenderInSignatories: AugmentedError; + /** + * The signatories were provided out of order; they should be ordered. + **/ + SignatoriesOutOfOrder: AugmentedError; + /** + * There are too few signatories in the list. + **/ + TooFewSignatories: AugmentedError; + /** + * There are too many signatories in the list. + **/ + TooManySignatories: AugmentedError; + /** + * A timepoint was given, yet no multisig operation is underway. + **/ + UnexpectedTimepoint: AugmentedError; + /** + * A different timepoint was given to the multisig operation that is underway. + **/ + WrongTimepoint: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nftFractionalization: { + /** + * Asset ID does not correspond to locked NFT. + **/ + IncorrectAssetId: AugmentedError; + /** + * NFT doesn't exist. + **/ + NftNotFound: AugmentedError; + /** + * NFT has not yet been fractionalised. + **/ + NftNotFractionalized: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nominationPools: { + /** + * An account is already delegating in another pool. An account may only belong to one + * pool at a time. + **/ + AccountBelongsToOtherPool: AugmentedError; + /** + * The pool or member delegation has already migrated to delegate stake. + **/ + AlreadyMigrated: AugmentedError; + /** + * Bonding extra is restricted to the exact pending reward amount. + **/ + BondExtraRestricted: AugmentedError; + /** + * The pools state cannot be changed. + **/ + CanNotChangeState: AugmentedError; + /** + * None of the funds can be withdrawn yet because the bonding duration has not passed. + **/ + CannotWithdrawAny: AugmentedError; + /** + * The submitted changes to commission change rate are not allowed. + **/ + CommissionChangeRateNotAllowed: AugmentedError; + /** + * Not enough blocks have surpassed since the last commission update. + **/ + CommissionChangeThrottled: AugmentedError; + /** + * The supplied commission exceeds global maximum commission. + **/ + CommissionExceedsGlobalMaximum: AugmentedError; + /** + * The supplied commission exceeds the max allowed commission. + **/ + CommissionExceedsMaximum: AugmentedError; + /** + * Some error occurred that should never happen. This should be reported to the + * maintainers. + **/ + Defensive: AugmentedError; + /** + * The caller does not have adequate permissions. + **/ + DoesNotHavePermission: AugmentedError; + /** + * The member is fully unbonded (and thus cannot access the bonded and reward pool + * anymore to, for example, collect rewards). + **/ + FullyUnbonding: AugmentedError; + /** + * Pool id provided is not correct/usable. + **/ + InvalidPoolId: AugmentedError; + /** + * The pool's max commission cannot be set higher than the existing value. + **/ + MaxCommissionRestricted: AugmentedError; + /** + * Too many members in the pool or system. + **/ + MaxPoolMembers: AugmentedError; + /** + * The system is maxed out on pools. + **/ + MaxPools: AugmentedError; + /** + * The member cannot unbond further chunks due to reaching the limit. + **/ + MaxUnbondingLimit: AugmentedError; + /** + * Metadata exceeds [`Config::MaxMetadataLen`] + **/ + MetadataExceedsMaxLen: AugmentedError; + /** + * The amount does not meet the minimum bond to either join or create a pool. + * + * The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The + * caller does not have nominating permissions for the pool. Members can never unbond to a + * value below `MinJoinBond`. + **/ + MinimumBondNotMet: AugmentedError; + /** + * No commission current has been set. + **/ + NoCommissionCurrentSet: AugmentedError; + /** + * There is no pending commission to claim. + **/ + NoPendingCommission: AugmentedError; + /** + * A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for + * other members to be permissionlessly unbonded. + **/ + NotDestroying: AugmentedError; + /** + * No imbalance in the ED deposit for the pool. + **/ + NothingToAdjust: AugmentedError; + /** + * No slash pending that can be applied to the member. + **/ + NothingToSlash: AugmentedError; + /** + * Either a) the caller cannot make a valid kick or b) the pool is not destroying. + **/ + NotKickerOrDestroying: AugmentedError; + /** + * The pool or member delegation has not migrated yet to delegate stake. + **/ + NotMigrated: AugmentedError; + /** + * The caller does not have nominating permissions for the pool. + **/ + NotNominator: AugmentedError; + /** + * The pool is not open to join + **/ + NotOpen: AugmentedError; + /** + * This call is not allowed in the current state of the pallet. + **/ + NotSupported: AugmentedError; + /** + * The transaction could not be executed due to overflow risk for the pool. + **/ + OverflowRisk: AugmentedError; + /** + * Partial unbonding now allowed permissionlessly. + **/ + PartialUnbondNotAllowedPermissionlessly: AugmentedError; + /** + * Pool id currently in use. + **/ + PoolIdInUse: AugmentedError; + /** + * An account is not a member. + **/ + PoolMemberNotFound: AugmentedError; + /** + * A (bonded) pool id does not exist. + **/ + PoolNotFound: AugmentedError; + /** + * Account is restricted from participation in pools. This may happen if the account is + * staking in another way already. + **/ + Restricted: AugmentedError; + /** + * A reward pool does not exist. In all cases this is a system logic error. + **/ + RewardPoolNotFound: AugmentedError; + /** + * The slash amount is too low to be applied. + **/ + SlashTooLow: AugmentedError; + /** + * A sub pool does not exist. + **/ + SubPoolsNotFound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parachainSystem: { + /** + * The inherent which supplies the host configuration did not run this block. + **/ + HostConfigurationNotAvailable: AugmentedError; + /** + * No validation function upgrade is currently scheduled. + **/ + NotScheduled: AugmentedError; + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ + OverlappingUpgrades: AugmentedError; + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ + ProhibitedByPolkadot: AugmentedError; + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ + TooBig: AugmentedError; + /** + * The inherent which supplies the validation data did not run this block. + **/ + ValidationDataNotAvailable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + polkadotXcm: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The alias to remove authorization for was not found. + **/ + AliasNotFound: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * Expiry block number is in the past. + **/ + ExpiresInPast: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * Local XCM execution incomplete with the actual XCM error and the index of the + * instruction that caused the error. + **/ + LocalExecutionIncompleteWithError: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * Too many locations authorized to alias origin. + **/ + TooManyAuthorizedAliases: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + poolAssets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + preimage: { + /** + * Preimage has already been noted on-chain. + **/ + AlreadyNoted: AugmentedError; + /** + * The user is not authorized to perform this action. + **/ + NotAuthorized: AugmentedError; + /** + * The preimage cannot be removed since it has not yet been noted. + **/ + NotNoted: AugmentedError; + /** + * The preimage request cannot be removed since no outstanding requests exist. + **/ + NotRequested: AugmentedError; + /** + * A preimage may not be removed when there are outstanding requests. + **/ + Requested: AugmentedError; + /** + * Preimage is too large to store on-chain. + **/ + TooBig: AugmentedError; + /** + * Too few hashes were requested to be upgraded (i.e. zero). + **/ + TooFew: AugmentedError; + /** + * More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once. + **/ + TooMany: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proxy: { + /** + * Account is already a proxy. + **/ + Duplicate: AugmentedError; + /** + * Call may not be made by proxy because it may escalate its privileges. + **/ + NoPermission: AugmentedError; + /** + * Cannot add self as proxy. + **/ + NoSelfProxy: AugmentedError; + /** + * Proxy registration not found. + **/ + NotFound: AugmentedError; + /** + * Sender is not a proxy of the account to be proxied. + **/ + NotProxy: AugmentedError; + /** + * There are too many proxies registered or too many announcements pending. + **/ + TooMany: AugmentedError; + /** + * Announcement, if made at all, was made too recently. + **/ + Unannounced: AugmentedError; + /** + * A call which is incompatible with the proxy type's filter was attempted. + **/ + Unproxyable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + recovery: { + /** + * This account is already set up for recovery + **/ + AlreadyProxy: AugmentedError; + /** + * This account is already set up for recovery + **/ + AlreadyRecoverable: AugmentedError; + /** + * A recovery process has already started for this account + **/ + AlreadyStarted: AugmentedError; + /** + * This user has already vouched for this recovery + **/ + AlreadyVouched: AugmentedError; + /** + * Some internal state is broken. + **/ + BadState: AugmentedError; + /** + * The friend must wait until the delay period to vouch for this recovery + **/ + DelayPeriod: AugmentedError; + /** + * Friends list must be less than max friends + **/ + MaxFriends: AugmentedError; + /** + * User is not allowed to make a call on behalf of this account + **/ + NotAllowed: AugmentedError; + /** + * Friends list must be greater than zero and threshold + **/ + NotEnoughFriends: AugmentedError; + /** + * This account is not a friend who can vouch + **/ + NotFriend: AugmentedError; + /** + * This account is not set up for recovery + **/ + NotRecoverable: AugmentedError; + /** + * Friends list must be sorted and free of duplicates + **/ + NotSorted: AugmentedError; + /** + * A recovery process has not started for this rescuer + **/ + NotStarted: AugmentedError; + /** + * There are still active recovery attempts that need to be closed + **/ + StillActive: AugmentedError; + /** + * The threshold for recovering this account has not been met + **/ + Threshold: AugmentedError; + /** + * Threshold must be greater than zero + **/ + ZeroThreshold: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + referenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + remoteProxyRelayChain: { + /** + * The local account id could not converted to the remote account id. + **/ + CouldNotConvertLocalToRemoteAccountId: AugmentedError; + /** + * Could not find any matching proxy definition in the proof. + **/ + DidNotFindMatchingProxyDefinition: AugmentedError; + /** + * The proxy definition could not be found in the proof. + **/ + InvalidProof: AugmentedError; + /** + * Failed to decode the remote proxy definition from the proof. + **/ + ProxyDefinitionDecodingFailed: AugmentedError; + /** + * Proxy proof not registered. + **/ + ProxyProofNotRegistered: AugmentedError; + /** + * Announcement, if made at all, was made too recently. + **/ + Unannounced: AugmentedError; + /** + * The anchor block of the remote proof is unknown. + **/ + UnknownProofAnchorBlock: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + revive: { + /** + * Tried to map an account that is already mapped. + **/ + AccountAlreadyMapped: AugmentedError; + /** + * An `AccountID32` account tried to interact with the pallet without having a mapping. + * + * Call [`Pallet::map_account`] in order to create a mapping for the account. + **/ + AccountUnmapped: AugmentedError; + /** + * Failed to convert a U256 to a Balance. + **/ + BalanceConversionFailed: AugmentedError; + /** + * The program contains a basic block that is larger than allowed. + **/ + BasicBlockTooLarge: AugmentedError; + /** + * The code blob supplied is larger than [`limits::code::BLOB_BYTES`]. + **/ + BlobTooLarge: AugmentedError; + /** + * The calldata exceeds [`limits::CALLDATA_BYTES`]. + **/ + CallDataTooLarge: AugmentedError; + /** + * Can not add a delegate dependency to the code hash of the contract itself. + **/ + CannotAddSelfAsDelegateDependency: AugmentedError; + /** + * No code info could be found at the supplied code hash. + **/ + CodeInfoNotFound: AugmentedError; + /** + * Code removal was denied because the code is still in use by at least one contract. + **/ + CodeInUse: AugmentedError; + /** + * No code could be found at the supplied code hash. + **/ + CodeNotFound: AugmentedError; + /** + * The contract failed to compile or is missing the correct entry points. + * + * A more detailed error can be found on the node console if debug messages are enabled + * by supplying `-lruntime::revive=debug`. + **/ + CodeRejected: AugmentedError; + /** + * No contract was found at the specified address. + **/ + ContractNotFound: AugmentedError; + /** + * The contract ran to completion but decided to revert its storage changes. + * Please note that this error is only returned from extrinsics. When called directly + * or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags + * to determine whether a reversion has taken place. + **/ + ContractReverted: AugmentedError; + /** + * Contract trapped during execution. + **/ + ContractTrapped: AugmentedError; + /** + * Input passed to a contract API function failed to decode as expected type. + **/ + DecodingFailed: AugmentedError; + /** + * The contract already depends on the given delegate dependency. + **/ + DelegateDependencyAlreadyExists: AugmentedError; + /** + * The dependency was not found in the contract's delegate dependencies. + **/ + DelegateDependencyNotFound: AugmentedError; + /** + * A contract with the same AccountId already exists. + **/ + DuplicateContract: AugmentedError; + /** + * PolkaVM failed during code execution. Probably due to a malformed program. + **/ + ExecutionFailed: AugmentedError; + /** + * `seal_call` forwarded this contracts input. It therefore is no longer available. + **/ + InputForwarded: AugmentedError; + /** + * Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`. + **/ + InvalidCallFlags: AugmentedError; + /** + * The transaction used to dry-run a contract is invalid. + **/ + InvalidGenericTransaction: AugmentedError; + /** + * Immutable data can only be set during deploys and only be read during calls. + * Additionally, it is only valid to set the data once and it must not be empty. + **/ + InvalidImmutableAccess: AugmentedError; + /** + * The program contains an invalid instruction. + **/ + InvalidInstruction: AugmentedError; + /** + * Invalid schedule supplied, e.g. with zero weight of a basic operation. + **/ + InvalidSchedule: AugmentedError; + /** + * Invalid storage flags were passed to one of the storage syscalls. + **/ + InvalidStorageFlags: AugmentedError; + /** + * The contract tried to call a syscall which does not exist (at its current api level). + **/ + InvalidSyscall: AugmentedError; + /** + * Performing a call was denied because the calling depth reached the limit + * of what is specified in the schedule. + **/ + MaxCallDepthReached: AugmentedError; + /** + * The contract has reached its maximum number of delegate dependencies. + **/ + MaxDelegateDependenciesReached: AugmentedError; + /** + * A buffer outside of sandbox memory was passed to a contract API function. + **/ + OutOfBounds: AugmentedError; + /** + * The executed contract exhausted its gas limit. + **/ + OutOfGas: AugmentedError; + /** + * Can not add more data to transient storage. + **/ + OutOfTransientStorage: AugmentedError; + /** + * A contract called into the runtime which then called back into this pallet. + **/ + ReenteredPallet: AugmentedError; + /** + * A call tried to invoke a contract that is flagged as non-reentrant. + **/ + ReentranceDenied: AugmentedError; + /** + * The refcount of a code either over or underflowed. + **/ + RefcountOverOrUnderflow: AugmentedError; + /** + * The return data exceeds [`limits::CALLDATA_BYTES`]. + **/ + ReturnDataTooLarge: AugmentedError; + /** + * A contract attempted to invoke a state modifying API while being in read-only mode. + **/ + StateChangeDenied: AugmentedError; + /** + * The contract declares too much memory (ro + rw + stack). + **/ + StaticMemoryTooLarge: AugmentedError; + /** + * More storage was created than allowed by the storage deposit limit. + **/ + StorageDepositLimitExhausted: AugmentedError; + /** + * Origin doesn't have enough balance to pay the required storage deposits. + **/ + StorageDepositNotEnoughFunds: AugmentedError; + /** + * A contract self destructed in its constructor. + * + * This can be triggered by a call to `seal_terminate`. + **/ + TerminatedInConstructor: AugmentedError; + /** + * Termination of a contract is not allowed while the contract is already + * on the call stack. Can be triggered by `seal_terminate`. + **/ + TerminatedWhileReentrant: AugmentedError; + /** + * The amount of topics passed to `seal_deposit_events` exceeds the limit. + **/ + TooManyTopics: AugmentedError; + /** + * Performing the requested transfer failed. Probably because there isn't enough + * free balance in the sender's account. + **/ + TransferFailed: AugmentedError; + /** + * Unsupported precompile address. + **/ + UnsupportedPrecompileAddress: AugmentedError; + /** + * Event body or storage item exceeds [`limits::PAYLOAD_BYTES`]. + **/ + ValueTooLarge: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + scheduler: { + /** + * Failed to schedule a call + **/ + FailedToSchedule: AugmentedError; + /** + * Attempt to use a non-named function on a named task. + **/ + Named: AugmentedError; + /** + * Cannot find the scheduled call. + **/ + NotFound: AugmentedError; + /** + * Reschedule failed because it does not change scheduled time. + **/ + RescheduleNoChange: AugmentedError; + /** + * Given target block number is in the past. + **/ + TargetBlockNumberInPast: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + society: { + /** + * User has already made a bid. + **/ + AlreadyBid: AugmentedError; + /** + * User is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * The member is already elevated to this rank. + **/ + AlreadyElevated: AugmentedError; + /** + * Society already founded. + **/ + AlreadyFounded: AugmentedError; + /** + * User is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * The skeptic has already been punished for this offence. + **/ + AlreadyPunished: AugmentedError; + /** + * Member is already vouching or banned from vouching again. + **/ + AlreadyVouching: AugmentedError; + /** + * The candidacy cannot be dropped as the candidate was clearly approved. + **/ + Approved: AugmentedError; + /** + * The skeptic need not vote on candidates from expired rounds. + **/ + Expired: AugmentedError; + /** + * Cannot remove the founder. + **/ + Founder: AugmentedError; + /** + * Cannot remove the head of the chain. + **/ + Head: AugmentedError; + /** + * The candidacy cannot be concluded as the voting is still in progress. + **/ + InProgress: AugmentedError; + /** + * Funds are insufficient to pay off society debts. + **/ + InsufficientFunds: AugmentedError; + /** + * Not enough in pot to accept candidate. + **/ + InsufficientPot: AugmentedError; + /** + * Too many members in the society. + **/ + MaxMembers: AugmentedError; + /** + * There is no defender currently. + **/ + NoDefender: AugmentedError; + /** + * There is no deposit associated with a bid. + **/ + NoDeposit: AugmentedError; + /** + * Nothing to payout. + **/ + NoPayout: AugmentedError; + /** + * The membership cannot be claimed as the candidate was not clearly approved. + **/ + NotApproved: AugmentedError; + /** + * User is not a bidder. + **/ + NotBidder: AugmentedError; + /** + * User is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * The caller is not the founder. + **/ + NotFounder: AugmentedError; + /** + * Group doesn't exist. + **/ + NotGroup: AugmentedError; + /** + * The caller is not the head. + **/ + NotHead: AugmentedError; + /** + * User is not a member. + **/ + NotMember: AugmentedError; + /** + * The candidate cannot be kicked as the candidate was not clearly rejected. + **/ + NotRejected: AugmentedError; + /** + * User is not suspended. + **/ + NotSuspended: AugmentedError; + /** + * Member is not vouching. + **/ + NotVouchingOnBidder: AugmentedError; + /** + * The candidate/defender has no stale votes to remove. + **/ + NoVotes: AugmentedError; + /** + * The candidacy cannot be bestowed as the candidate was clearly rejected. + **/ + Rejected: AugmentedError; + /** + * User is suspended. + **/ + Suspended: AugmentedError; + /** + * The candidacy cannot be pruned until a full additional intake period has passed. + **/ + TooEarly: AugmentedError; + /** + * The skeptic already voted. + **/ + Voted: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + staking: { + /** + * Stash is already bonded. + **/ + AlreadyBonded: AugmentedError; + /** + * Rewards for this era have already been claimed for this validator. + **/ + AlreadyClaimed: AugmentedError; + /** + * The stake of this account is already migrated to `Fungible` holds. + **/ + AlreadyMigrated: AugmentedError; + /** + * Controller is already paired. + **/ + AlreadyPaired: AugmentedError; + /** + * Internal state has become somehow corrupted and the operation cannot continue. + **/ + BadState: AugmentedError; + /** + * A nomination target was supplied that was blocked or otherwise not a validator. + **/ + BadTarget: AugmentedError; + /** + * Some bound is not met. + **/ + BoundNotMet: AugmentedError; + /** + * The slash has been cancelled and cannot be applied. + **/ + CancelledSlash: AugmentedError; + /** + * The user has enough bond and thus cannot be chilled forcefully by an external person. + **/ + CannotChillOther: AugmentedError; + /** + * Stash could not be reaped as other pallet might depend on it. + **/ + CannotReapStash: AugmentedError; + /** + * Cannot reset a ledger. + **/ + CannotRestoreLedger: AugmentedError; + /** + * Commission is too low. Must be at least `MinCommission`. + **/ + CommissionTooLow: AugmentedError; + /** + * Used when attempting to use deprecated controller account logic. + **/ + ControllerDeprecated: AugmentedError; + /** + * Duplicate index. + **/ + DuplicateIndex: AugmentedError; + /** + * Targets cannot be empty. + **/ + EmptyTargets: AugmentedError; + /** + * The era is not eligible for pruning. + **/ + EraNotPrunable: AugmentedError; + /** + * Era not yet started. + **/ + EraNotStarted: AugmentedError; + /** + * Attempting to target a stash that still has funds. + **/ + FundedTarget: AugmentedError; + /** + * Incorrect previous history depth input provided. + **/ + IncorrectHistoryDepth: AugmentedError; + /** + * Cannot bond, nominate or validate with value less than the minimum defined by + * governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the + * intention, `chill` first to remove one's role as validator/nominator. + **/ + InsufficientBond: AugmentedError; + /** + * Invalid era to reward. + **/ + InvalidEraToReward: AugmentedError; + /** + * Invalid number of nominations. + **/ + InvalidNumberOfNominations: AugmentedError; + /** + * No nominators exist on this page. + **/ + InvalidPage: AugmentedError; + /** + * Slash record not found. + **/ + InvalidSlashRecord: AugmentedError; + /** + * Can not schedule more unlock chunks. + **/ + NoMoreChunks: AugmentedError; + /** + * Not a controller account. + **/ + NotController: AugmentedError; + /** + * Not enough funds available to withdraw. + **/ + NotEnoughFunds: AugmentedError; + /** + * Not a stash account. + **/ + NotStash: AugmentedError; + /** + * Can not rebond without unlocking chunks. + **/ + NoUnlockChunk: AugmentedError; + /** + * Account is restricted from participation in staking. This may happen if the account is + * staking in another way already, such as via pool. + **/ + Restricted: AugmentedError; + /** + * Provided reward destination is not allowed. + **/ + RewardDestinationRestricted: AugmentedError; + /** + * There are too many nominators in the system. Governance needs to adjust the staking + * settings to keep things safe for the runtime. + **/ + TooManyNominators: AugmentedError; + /** + * Too many nomination targets supplied. + **/ + TooManyTargets: AugmentedError; + /** + * There are too many validator candidates in the system. Governance needs to adjust the + * staking settings to keep things safe for the runtime. + **/ + TooManyValidators: AugmentedError; + /** + * Unapplied slashes in the recently concluded era is blocking this operation. + * See `Call::apply_slash` to apply them. + **/ + UnappliedSlashesInPreviousEra: AugmentedError; + /** + * Operation not allowed for virtual stakers. + **/ + VirtualStakerNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + stateTrieMigration: { + /** + * Bad child root provided. + **/ + BadChildRoot: AugmentedError; + /** + * Bad witness data provided. + **/ + BadWitness: AugmentedError; + /** + * A key was longer than the configured maximum. + * + * This means that the migration halted at the current [`Progress`] and + * can be resumed with a larger [`crate::Config::MaxKeyLen`] value. + * Retrying with the same [`crate::Config::MaxKeyLen`] value will not work. + * The value should only be increased to avoid a storage migration for the currently + * stored [`crate::Progress::LastKey`]. + **/ + KeyTooLong: AugmentedError; + /** + * Max signed limits not respected. + **/ + MaxSignedLimits: AugmentedError; + /** + * submitter does not have enough funds. + **/ + NotEnoughFunds: AugmentedError; + /** + * Signed migration is not allowed because the maximum limit is not set yet. + **/ + SignedMigrationNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * The specified [`Task`] failed during execution. + **/ + FailedTask: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * The specified [`Task`] is not valid. + **/ + InvalidTask: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + treasury: { + /** + * The payment has already been attempted. + **/ + AlreadyAttempted: AugmentedError; + /** + * The spend is not yet eligible for payout. + **/ + EarlyPayout: AugmentedError; + /** + * The balance of the asset kind is not convertible to the balance of the native asset. + **/ + FailedToConvertBalance: AugmentedError; + /** + * The payment has neither failed nor succeeded yet. + **/ + Inconclusive: AugmentedError; + /** + * The spend origin is valid but the amount it is allowed to spend is lower than the + * amount to be spent. + **/ + InsufficientPermission: AugmentedError; + /** + * No proposal, bounty or spend at that index. + **/ + InvalidIndex: AugmentedError; + /** + * The payout was not yet attempted/claimed. + **/ + NotAttempted: AugmentedError; + /** + * There was some issue with the mechanism of payment. + **/ + PayoutError: AugmentedError; + /** + * Proposal has not been approved. + **/ + ProposalNotApproved: AugmentedError; + /** + * The spend has expired and cannot be claimed. + **/ + SpendExpired: AugmentedError; + /** + * Too many approvals in the queue. + **/ + TooManyApprovals: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + uniques: { + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * An attribute is not found. + **/ + AttributeNotFound: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * The item or collection is frozen. + **/ + Frozen: AugmentedError; + /** + * The item ID is already taken. + **/ + InUse: AugmentedError; + /** + * The item is locked. + **/ + Locked: AugmentedError; + /** + * The max supply has already been set. + **/ + MaxSupplyAlreadySet: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less to the amount of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * There is no delegate approved. + **/ + NoDelegate: AugmentedError; + /** + * No metadata is found. + **/ + NoMetadata: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The named owner has not signed ownership of the collection is acceptable. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Wrong attribute key/value bytes supplied. + **/ + WrongAttribute: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * Wrong metadata key/value bytes supplied. + **/ + WrongMetadata: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + utility: { + /** + * Too many calls batched. + **/ + TooManyCalls: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + vesting: { + /** + * Amount being transferred is too low to create a vesting schedule. + **/ + AmountLow: AugmentedError; + /** + * The account already has `MaxVestingSchedules` count of schedules and thus + * cannot add another one. Consider merging existing schedules in order to add another. + **/ + AtMaxVestingSchedules: AugmentedError; + /** + * Failed to create a new schedule because some parameter was invalid. + **/ + InvalidScheduleParams: AugmentedError; + /** + * The account given is not vesting. + **/ + NotVesting: AugmentedError; + /** + * An index was out of bounds of the vesting schedules. + **/ + ScheduleIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + voterList: { + /** + * A error in the list interface implementation. + **/ + List: AugmentedError; + /** + * Could not update a node, because the pallet is locked. + **/ + Locked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + whitelist: { + /** + * The call was already whitelisted; No-Op. + **/ + CallAlreadyWhitelisted: AugmentedError; + /** + * The call was not whitelisted. + **/ + CallIsNotWhitelisted: AugmentedError; + /** + * The weight of the decoded call was higher than the witness. + **/ + InvalidCallWeightWitness: AugmentedError; + /** + * The preimage of the call hash could not be loaded. + **/ + UnavailablePreImage: AugmentedError; + /** + * The call could not be decoded. + **/ + UndecodableCall: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmpQueue: { + /** + * The execution is already resumed. + **/ + AlreadyResumed: AugmentedError; + /** + * The execution is already suspended. + **/ + AlreadySuspended: AugmentedError; + /** + * Setting the queue config failed since one of its values was invalid. + **/ + BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/packages/api-augment/src/assetHubDicle/events.ts b/packages/api-augment/src/assetHubDicle/events.ts new file mode 100644 index 0000000..16b948c --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/events.ts @@ -0,0 +1,2295 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/events'; + +import type { ApiTypes, AugmentedEvent } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, Perbill, Permill } from '@pezkuwi/types/interfaces/runtime'; +import type { AssetHubDicleRuntimeProxyType, AssetHubDicleRuntimeRuntimeParametersKey, AssetHubDicleRuntimeRuntimeParametersValue, AssetHubDicleRuntimeRuntimeTask, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezframeSupportDispatchPostDispatchInfo, PezframeSupportMessagesProcessMessageError, PezframeSupportPreimagesBounded, PezframeSupportTokensMiscBalanceStatus, PezframeSystemDispatchEventInfo, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezpalletAhMigratorMigrationStage, PezpalletAhMigratorPezpalletEventName, PezpalletBalancesUnexpectedKind, PezpalletConvictionVotingTally, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiBlockPhase, PezpalletElectionProviderMultiBlockVerifierFeasibilityError, PezpalletMultisigTimepoint, PezpalletNftsAttributeNamespace, PezpalletNftsPezpalletAttributes, PezpalletNftsPriceWithDirection, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsPoolState, PezpalletProxyDepositKind, PezpalletRcMigratorQueuePriority, PezpalletRecoveryDepositKind, PezpalletSocietyGroupParams, PezpalletStakingAsyncForcing, PezpalletStakingAsyncPezpalletUnexpectedKind, PezpalletStakingAsyncRcClientUnexpectedKind, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncValidatorPrefs, PezpalletStateTrieMigrationError, PezpalletStateTrieMigrationMigrationCompute, PezspNposElectionsElectionScore, PezspRuntimeDispatchError, PezspRuntimeDispatchErrorWithPostInfo, PezspWeightsWeightV2Weight, StagingXcmV5AssetAssets, StagingXcmV5Location, StagingXcmV5Response, StagingXcmV5TraitsOutcome, StagingXcmV5Xcm, TeyrchainsCommonPayVersionedLocatableAccount, XcmV3TraitsSendError, XcmV5TraitsError, XcmVersionedAssets, XcmVersionedLocation } from '@pezkuwi/types/lookup'; + +export type __AugmentedEvent = AugmentedEvent; + +declare module '@pezkuwi/api-base/types/events' { + interface AugmentedEvents { + ahMigrator: { + AccountTranslatedParachainSovereign: AugmentedEvent; + AccountTranslatedParachainSovereignDerived: AugmentedEvent; + /** + * The Asset Hub Migration finished. + * + * This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier + * to understand. The finishing is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationFinished: AugmentedEvent; + /** + * The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is + * emitted. + * + * This event is equivalent to `StageTransition { new: DataMigrationOngoing, .. }` but is + * easier to understand. The activation is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationStarted: AugmentedEvent; + /** + * The balances before the migration were consumed. + **/ + BalancesBeforeRecordConsumed: AugmentedEvent; + /** + * The balances before the migration were recorded. + **/ + BalancesBeforeRecordSet: AugmentedEvent; + /** + * We processed a batch of messages for this pallet. + **/ + BatchProcessed: AugmentedEvent; + /** + * We received a batch of messages that will be integrated into a pallet. + **/ + BatchReceived: AugmentedEvent; + /** + * The DMP queue priority config was set. + **/ + DmpQueuePriorityConfigSet: AugmentedEvent; + /** + * Whether the DMP queue was prioritized for the next block. + **/ + DmpQueuePrioritySet: AugmentedEvent; + /** + * The manager account id was set. + **/ + ManagerSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * A referendum was cancelled because it could not be mapped. + **/ + ReferendumCanceled: AugmentedEvent; + /** + * A stage transition has occurred. + **/ + StageTransition: AugmentedEvent; + /** + * An XCM message was sent. + **/ + XcmSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + ahOps: { + /** + * Some amount for a crowdloan reserve could not be unreserved and needs manual cleanup. + **/ + CrowdloanUnreserveRemaining: AugmentedEvent; + /** + * Some lease reserve could not be unreserved and needs manual cleanup. + **/ + LeaseUnreserveRemaining: AugmentedEvent; + /** + * A sovereign parachain account has been migrated from its child to sibling + * representation. + **/ + SovereignMigrated: AugmentedEvent], { paraId: u32, from: AccountId32, to: AccountId32, derivationIndex: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetConversion: { + /** + * A successful call of the `AddLiquidity` extrinsic will create this event. + **/ + LiquidityAdded: AugmentedEvent, amount1Provided: u128, amount2Provided: u128, lpToken: u32, lpTokenMinted: u128], { who: AccountId32, mintTo: AccountId32, poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, amount1Provided: u128, amount2Provided: u128, lpToken: u32, lpTokenMinted: u128 }>; + /** + * A successful call of the `RemoveLiquidity` extrinsic will create this event. + **/ + LiquidityRemoved: AugmentedEvent, amount1: u128, amount2: u128, lpToken: u32, lpTokenBurned: u128, withdrawalFee: Permill], { who: AccountId32, withdrawTo: AccountId32, poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, amount1: u128, amount2: u128, lpToken: u32, lpTokenBurned: u128, withdrawalFee: Permill }>; + /** + * A successful call of the `CreatePool` extrinsic will create this event. + **/ + PoolCreated: AugmentedEvent, poolAccount: AccountId32, lpToken: u32], { creator: AccountId32, poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, poolAccount: AccountId32, lpToken: u32 }>; + /** + * Assets have been converted from one to another. + **/ + SwapCreditExecuted: AugmentedEvent>], { amountIn: u128, amountOut: u128, path: Vec> }>; + /** + * Assets have been converted from one to another. Both `SwapExactTokenForToken` + * and `SwapTokenForExactToken` will generate this event. + **/ + SwapExecuted: AugmentedEvent>], { who: AccountId32, sendTo: AccountId32, amountIn: u128, amountOut: u128, path: Vec> }>; + /** + * Pool has been touched in order to fulfill operational requirements. + **/ + Touched: AugmentedEvent, who: AccountId32], { poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, who: AccountId32 }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetRate: { + AssetRateCreated: AugmentedEvent; + AssetRateRemoved: AugmentedEvent; + AssetRateUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetTxPayment: { + /** + * A swap of the refund in native currency back to asset failed. + **/ + AssetRefundFailed: AugmentedEvent; + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who` in an asset `asset_id`. + **/ + AssetTxFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent; + /** + * An unexpected/defensive event was triggered. + **/ + Unexpected: AugmentedEvent; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bounties: { + /** + * A bounty is approved. + **/ + BountyApproved: AugmentedEvent; + /** + * A bounty is awarded to a beneficiary. + **/ + BountyAwarded: AugmentedEvent; + /** + * A bounty proposal is funded and became active. + **/ + BountyBecameActive: AugmentedEvent; + /** + * A bounty is cancelled. + **/ + BountyCanceled: AugmentedEvent; + /** + * A bounty is claimed by beneficiary. + **/ + BountyClaimed: AugmentedEvent; + /** + * A bounty expiry is extended. + **/ + BountyExtended: AugmentedEvent; + /** + * New bounty proposal. + **/ + BountyProposed: AugmentedEvent; + /** + * A bounty proposal was rejected; funds were slashed. + **/ + BountyRejected: AugmentedEvent; + /** + * A bounty curator is accepted. + **/ + CuratorAccepted: AugmentedEvent; + /** + * A bounty curator is proposed. + **/ + CuratorProposed: AugmentedEvent; + /** + * A bounty curator is unassigned. + **/ + CuratorUnassigned: AugmentedEvent; + /** + * A bounty deposit has been poked. + **/ + DepositPoked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + childBounties: { + /** + * A child-bounty is added. + **/ + Added: AugmentedEvent; + /** + * A child-bounty is awarded to a beneficiary. + **/ + Awarded: AugmentedEvent; + /** + * A child-bounty is cancelled. + **/ + Canceled: AugmentedEvent; + /** + * A child-bounty is claimed by beneficiary. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + claims: { + /** + * Someone claimed some DOTs. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + collatorSelection: { + /** + * A new candidate joined. + **/ + CandidateAdded: AugmentedEvent; + /** + * Bond of a candidate updated. + **/ + CandidateBondUpdated: AugmentedEvent; + /** + * A candidate was removed. + **/ + CandidateRemoved: AugmentedEvent; + /** + * An account was replaced in the candidate list by another one. + **/ + CandidateReplaced: AugmentedEvent; + /** + * An account was unable to be added to the Invulnerables because they did not have keys + * registered. Other Invulnerables may have been set. + **/ + InvalidInvulnerableSkipped: AugmentedEvent; + /** + * A new Invulnerable was added. + **/ + InvulnerableAdded: AugmentedEvent; + /** + * An Invulnerable was removed. + **/ + InvulnerableRemoved: AugmentedEvent; + /** + * The candidacy bond was set. + **/ + NewCandidacyBond: AugmentedEvent; + /** + * The number of desired candidates was set. + **/ + NewDesiredCandidates: AugmentedEvent; + /** + * New Invulnerables were set. + **/ + NewInvulnerables: AugmentedEvent], { invulnerables: Vec }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + convictionVoting: { + /** + * An account has delegated their vote to another account. \[who, target\] + **/ + Delegated: AugmentedEvent; + /** + * An \[account\] has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An account has voted + **/ + Voted: AugmentedEvent; + /** + * A vote has been removed + **/ + VoteRemoved: AugmentedEvent; + /** + * The lockup period of a conviction vote expired, and the funds have been unlocked. + **/ + VoteUnlocked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + cumulusXcm: { + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ + ExecutedDownward: AugmentedEvent; + /** + * Downward message is invalid XCM. + * \[ id \] + **/ + InvalidFormat: AugmentedEvent; + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ + UnsupportedVersion: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + delegatedStaking: { + /** + * Funds delegated by a delegator. + **/ + Delegated: AugmentedEvent; + /** + * Unclaimed delegation funds migrated to delegator. + **/ + MigratedDelegation: AugmentedEvent; + /** + * Funds released to a delegator. + **/ + Released: AugmentedEvent; + /** + * Funds slashed from a delegator. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + foreignAssets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + indices: { + /** + * A deposit to reserve an index has been poked/reconsidered. + **/ + DepositPoked: AugmentedEvent; + /** + * A account index was assigned. + **/ + IndexAssigned: AugmentedEvent; + /** + * A account index has been freed up (unassigned). + **/ + IndexFreed: AugmentedEvent; + /** + * A account index has been frozen to its current account ID. + **/ + IndexFrozen: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent; + /** + * Message is processed. + **/ + Processed: AugmentedEvent; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockElection: { + /** + * A phase transition happened. Only checks major changes in the variants, not minor inner + * values. + **/ + PhaseTransitioned: AugmentedEvent; + /** + * Target snapshot creation failed + **/ + UnexpectedTargetSnapshotFailed: AugmentedEvent; + /** + * Voter snapshot creation failed + **/ + UnexpectedVoterSnapshotFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockElectionSigned: { + /** + * The given account has bailed. + **/ + Bailed: AugmentedEvent; + /** + * The given account has been discarded. + **/ + Discarded: AugmentedEvent; + /** + * The given solution, for the given round, was ejected. + **/ + Ejected: AugmentedEvent; + /** + * Upcoming submission has been registered for the given account, with the given score. + **/ + Registered: AugmentedEvent; + /** + * The given account has been rewarded with the given amount. + **/ + Rewarded: AugmentedEvent; + /** + * The given account has been slashed with the given amount. + **/ + Slashed: AugmentedEvent; + /** + * A page of solution solution with the given index has been stored for the given account. + **/ + Stored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockElectionVerifier: { + /** + * A solution with the given score has replaced our current best solution. + **/ + Queued: AugmentedEvent]>; + /** + * A verification failed at the given page. + * + * NOTE: if the index is 0, then this could mean either the feasibility of the last page + * was wrong, or the final checks of `finalize_verification` failed. + **/ + VerificationFailed: AugmentedEvent; + /** + * The given page of a solution has been verified, with the given number of winners being + * found in it. + **/ + Verified: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockMigrations: { + /** + * The set of historical migrations has been cleared. + **/ + HistoricCleared: AugmentedEvent], { nextCursor: Option }>; + /** + * A migration progressed. + **/ + MigrationAdvanced: AugmentedEvent; + /** + * A Migration completed. + **/ + MigrationCompleted: AugmentedEvent; + /** + * A Migration failed. + * + * This implies that the whole upgrade failed and governance intervention is required. + **/ + MigrationFailed: AugmentedEvent; + /** + * A migration was skipped since it was already executed in the past. + **/ + MigrationSkipped: AugmentedEvent; + /** + * The current runtime upgrade completed. + * + * This implies that all of its migrations completed successfully as well. + **/ + UpgradeCompleted: AugmentedEvent; + /** + * Runtime upgrade failed. + * + * This is very bad and will require governance intervention. + **/ + UpgradeFailed: AugmentedEvent; + /** + * A Runtime upgrade started. + * + * Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`. + **/ + UpgradeStarted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multisig: { + /** + * The deposit for a multisig operation has been updated/poked. + **/ + DepositPoked: AugmentedEvent; + /** + * A multisig operation has been approved by someone. + **/ + MultisigApproval: AugmentedEvent; + /** + * A multisig operation has been cancelled. + **/ + MultisigCancelled: AugmentedEvent; + /** + * A multisig operation has been executed. + **/ + MultisigExecuted: AugmentedEvent], { approving: AccountId32, timepoint: PezpalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result }>; + /** + * A new multisig operation has begun. + **/ + NewMultisig: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nftFractionalization: { + /** + * An NFT was successfully fractionalized. + **/ + NftFractionalized: AugmentedEvent; + /** + * An NFT was successfully returned back. + **/ + NftUnified: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent, key: Bytes, namespace: PezpalletNftsAttributeNamespace], { collection: u32, maybeItem: Option, key: Bytes, namespace: PezpalletNftsAttributeNamespace }>; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent, key: Bytes, value: Bytes, namespace: PezpalletNftsAttributeNamespace], { collection: u32, maybeItem: Option, key: Bytes, value: Bytes, namespace: PezpalletNftsAttributeNamespace }>; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent], { collection: u32, item: u32, price: u128, whitelistedBuyer: Option }>; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent], { nextId: Option }>; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent], { who: AccountId32, maybeCollection: Option }>; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent, attribute: PezpalletNftsPezpalletAttributes, value: Bytes], { collection: u32, item: Option, attribute: PezpalletNftsPezpalletAttributes, value: Bytes }>; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent], { collection: u32, successfulItems: Vec }>; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent, price: Option, deadline: u32], { offeredCollection: u32, offeredItem: u32, desiredCollection: u32, desiredItem: Option, price: Option, deadline: u32 }>; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent, deadline: u32], { sentCollection: u32, sentItem: u32, sentItemOwner: AccountId32, receivedCollection: u32, receivedItem: u32, receivedItemOwner: AccountId32, price: Option, deadline: u32 }>; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent, price: Option, deadline: u32], { offeredCollection: u32, offeredItem: u32, desiredCollection: u32, desiredItem: Option, price: Option, deadline: u32 }>; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent, admin: Option, freezer: Option], { collection: u32, issuer: Option, admin: Option, freezer: Option }>; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent], { collection: u32, item: u32, owner: AccountId32, delegate: AccountId32, deadline: Option }>; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nominationPools: { + /** + * A member has became bonded in a pool. + **/ + Bonded: AugmentedEvent; + /** + * A pool has been created. + **/ + Created: AugmentedEvent; + /** + * A pool has been destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * Global parameters regulating nomination pools have been updated. + **/ + GlobalParamsUpdated: AugmentedEvent, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option], { minJoinBond: u128, minCreateBond: u128, maxPools: Option, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option }>; + /** + * A pool member's claim permission has been updated. + **/ + MemberClaimPermissionUpdated: AugmentedEvent; + /** + * A member has been removed from a pool. + * + * The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). + * Any funds that are still delegated (i.e. dangling delegation) are released and are + * represented by `released_balance`. + **/ + MemberRemoved: AugmentedEvent; + /** + * A pool's metadata was updated. + **/ + MetadataUpdated: AugmentedEvent; + /** + * Topped up deficit in frozen ED of the reward pool. + **/ + MinBalanceDeficitAdjusted: AugmentedEvent; + /** + * Claimed excess frozen ED of af the reward pool. + **/ + MinBalanceExcessAdjusted: AugmentedEvent; + /** + * A payout has been made to a member. + **/ + PaidOut: AugmentedEvent; + /** + * A pool's commission `change_rate` has been changed. + **/ + PoolCommissionChangeRateUpdated: AugmentedEvent; + /** + * Pool commission has been claimed. + **/ + PoolCommissionClaimed: AugmentedEvent; + /** + * Pool commission claim permission has been updated. + **/ + PoolCommissionClaimPermissionUpdated: AugmentedEvent], { poolId: u32, permission: Option }>; + /** + * A pool's commission setting has been changed. + **/ + PoolCommissionUpdated: AugmentedEvent>], { poolId: u32, current: Option> }>; + /** + * A pool's maximum commission setting has been changed. + **/ + PoolMaxCommissionUpdated: AugmentedEvent; + /** + * A pool's nominating account (or the pool's root account) has nominated a validator set + * on behalf of the pool. + **/ + PoolNominationMade: AugmentedEvent; + /** + * The pool is chilled i.e. no longer nominating. + **/ + PoolNominatorChilled: AugmentedEvent; + /** + * The active balance of pool `pool_id` has been slashed to `balance`. + **/ + PoolSlashed: AugmentedEvent; + /** + * The roles of a pool have been updated to the given new roles. Note that the depositor + * can never change. + **/ + RolesUpdated: AugmentedEvent, bouncer: Option, nominator: Option], { root: Option, bouncer: Option, nominator: Option }>; + /** + * The state of a pool has changed + **/ + StateChanged: AugmentedEvent; + /** + * A member has unbonded from their pool. + * + * - `balance` is the corresponding balance of the number of points that has been + * requested to be unbonded (the argument of the `unbond` transaction) from the bonded + * pool. + * - `points` is the number of points that are issued as a result of `balance` being + * dissolved into the corresponding unbonding pool. + * - `era` is the era in which the balance will be unbonded. + * In the absence of slashing, these values will match. In the presence of slashing, the + * number of points that are issued in the unbonding pool will be less than the amount + * requested to be unbonded. + **/ + Unbonded: AugmentedEvent; + /** + * The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. + **/ + UnbondingPoolSlashed: AugmentedEvent; + /** + * A member has withdrawn from their pool. + * + * The given number of `points` have been dissolved in return of `balance`. + * + * Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance + * will be 1. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parachainSystem: { + /** + * Downward messages were processed using the given weight. + **/ + DownwardMessagesProcessed: AugmentedEvent; + /** + * Some downward messages have been received and will be processed. + **/ + DownwardMessagesReceived: AugmentedEvent; + /** + * An upward message was sent to the relay chain. + **/ + UpwardMessageSent: AugmentedEvent], { messageHash: Option }>; + /** + * The validation function was applied as of the contained relay chain block number. + **/ + ValidationFunctionApplied: AugmentedEvent; + /** + * The relay-chain aborted the upgrade process. + **/ + ValidationFunctionDiscarded: AugmentedEvent; + /** + * The validation function has been scheduled to apply. + **/ + ValidationFunctionStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent, newValue: Option], { key: AssetHubDicleRuntimeRuntimeParametersKey, oldValue: Option, newValue: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + polkadotXcm: { + /** + * `target` removed alias authorization for `aliaser`. + **/ + AliasAuthorizationRemoved: AugmentedEvent; + /** + * An `aliaser` location was authorized by `target` to alias it, authorization valid until + * `expiry` block number. + **/ + AliasAuthorized: AugmentedEvent], { aliaser: StagingXcmV5Location, target: StagingXcmV5Location, expiry: Option }>; + /** + * `target` removed all alias authorizations. + **/ + AliasesAuthorizationsRemoved: AugmentedEvent; + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedQuerier: StagingXcmV5Location, maybeActualQuerier: Option }>; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedLocation: Option }>; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent; + /** + * An XCM message failed to process. + **/ + ProcessXcmError: AugmentedEvent; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent; + /** + * An XCM message failed to send. + **/ + SendFailed: AugmentedEvent; + /** + * An XCM message was sent. + **/ + Sent: AugmentedEvent; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + poolAssets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + preimage: { + /** + * A preimage has ben cleared. + **/ + Cleared: AugmentedEvent; + /** + * A preimage has been noted. + **/ + Noted: AugmentedEvent; + /** + * A preimage has been requested. + **/ + Requested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proxy: { + /** + * An announcement was placed to make a call in the future. + **/ + Announced: AugmentedEvent; + /** + * A deposit stored for proxies or announcements was poked / updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A proxy was added. + **/ + ProxyAdded: AugmentedEvent; + /** + * A proxy was executed correctly, with the given. + **/ + ProxyExecuted: AugmentedEvent], { result: Result }>; + /** + * A proxy was removed. + **/ + ProxyRemoved: AugmentedEvent; + /** + * A pure account has been created by new proxy with given + * disambiguation index and proxy type. + **/ + PureCreated: AugmentedEvent; + /** + * A pure proxy was killed by its spawner. + **/ + PureKilled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + recovery: { + /** + * Lost account has been successfully recovered by rescuer account. + **/ + AccountRecovered: AugmentedEvent; + /** + * A deposit has been updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A recovery process for lost account by rescuer account has been closed. + **/ + RecoveryClosed: AugmentedEvent; + /** + * A recovery process has been set up for an account. + **/ + RecoveryCreated: AugmentedEvent; + /** + * A recovery process has been initiated for lost account by rescuer account. + **/ + RecoveryInitiated: AugmentedEvent; + /** + * A recovery process has been removed for an account. + **/ + RecoveryRemoved: AugmentedEvent; + /** + * A recovery process for lost account by rescuer account has been vouched for by sender. + **/ + RecoveryVouched: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + referenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + revive: { + /** + * A custom event emitted by the contract. + **/ + ContractEmitted: AugmentedEvent], { contract: H160, data: Bytes, topics: Vec }>; + /** + * Contract deployed by deployer at the specified address. + **/ + Instantiated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + scheduler: { + /** + * Agenda is incomplete from `when`. + **/ + AgendaIncomplete: AugmentedEvent; + /** + * The call for the provided hash was not found so the task has been aborted. + **/ + CallUnavailable: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Canceled some task. + **/ + Canceled: AugmentedEvent; + /** + * Dispatched some task. + **/ + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; + /** + * The given task was unable to be renewed since the agenda is full at that block. + **/ + PeriodicFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task can never be executed since it is overweight. + **/ + PermanentlyOverweight: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Cancel a retry configuration for some task. + **/ + RetryCancelled: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task was unable to be retried since the agenda is full at that block or there + * was not enough weight to reschedule it. + **/ + RetryFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Set a retry configuration for some task. + **/ + RetrySet: AugmentedEvent, id: Option, period: u32, retries: u8], { task: ITuple<[u32, u32]>, id: Option, period: u32, retries: u8 }>; + /** + * Scheduled some task. + **/ + Scheduled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * The `NewSession` event in the current block also implies a new validator set to be + * queued. + **/ + NewQueued: AugmentedEvent; + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Validator has been disabled. + **/ + ValidatorDisabled: AugmentedEvent; + /** + * Validator has been re-enabled. + **/ + ValidatorReenabled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + society: { + /** + * A candidate was dropped (due to an excess of bids in the system). + **/ + AutoUnbid: AugmentedEvent; + /** + * A membership bid just happened. The given account is the candidate's ID and their offer + * is the second. + **/ + Bid: AugmentedEvent; + /** + * A candidate has been suspended + **/ + CandidateSuspended: AugmentedEvent; + /** + * A member has been challenged + **/ + Challenged: AugmentedEvent; + /** + * A vote has been placed for a defending member + **/ + DefenderVote: AugmentedEvent; + /** + * Some funds were deposited into the society account. + **/ + Deposit: AugmentedEvent; + /** + * A deposit was poked / adjusted. + **/ + DepositPoked: AugmentedEvent; + /** + * A \[member\] got elevated to \[rank\]. + **/ + Elevated: AugmentedEvent; + /** + * The society is founded by the given identity. + **/ + Founded: AugmentedEvent; + /** + * A group of candidates have been inducted. The batch's primary is the first value, the + * batch in full is the second. + **/ + Inducted: AugmentedEvent], { primary: AccountId32, candidates: Vec }>; + /** + * A member has been suspended + **/ + MemberSuspended: AugmentedEvent; + /** + * A new set of \[params\] has been set for the group. + **/ + NewParams: AugmentedEvent; + /** + * A suspended member has been judged. + **/ + SuspendedMemberJudgement: AugmentedEvent; + /** + * A candidate was dropped (by their request). + **/ + Unbid: AugmentedEvent; + /** + * Society is unfounded. + **/ + Unfounded: AugmentedEvent; + /** + * A candidate was dropped (by request of who vouched for them). + **/ + Unvouch: AugmentedEvent; + /** + * A vote has been placed + **/ + Vote: AugmentedEvent; + /** + * A membership bid just happened by vouching. The given account is the candidate's ID and + * their offer is the second. The vouching party is the third. + **/ + Vouch: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + staking: { + /** + * An account has bonded this amount. \[stash, amount\] + * + * NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, + * it will not be emitted for staking rewards when they are added to stake. + **/ + Bonded: AugmentedEvent; + /** + * An account has stopped participating as either a validator or nominator. + **/ + Chilled: AugmentedEvent; + /** + * Report of a controller batch deprecation. + **/ + ControllerBatchDeprecated: AugmentedEvent; + /** + * Staking balance migrated from locks to holds, with any balance that could not be held + * is force withdrawn. + **/ + CurrencyMigrated: AugmentedEvent; + /** + * The era payout has been set; the first balance is the validator-payout; the second is + * the remainder from the maximum amount of reward. + **/ + EraPaid: AugmentedEvent; + /** + * An old era with the given index was pruned. + **/ + EraPruned: AugmentedEvent; + ForceEra: AugmentedEvent; + /** + * A nominator has been kicked from a validator. + **/ + Kicked: AugmentedEvent; + /** + * An offence for the given validator, for the given percentage of their stake, at the + * given era as been reported. + **/ + OffenceReported: AugmentedEvent; + /** + * An offence was reported that was too old to be processed, and thus was dropped. + **/ + OffenceTooOld: AugmentedEvent; + /** + * An old slashing report from a prior era was discarded because it could + * not be processed. + **/ + OldSlashingReportDiscarded: AugmentedEvent; + /** + * A page from a multi-page election was fetched. A number of these are followed by + * `StakersElected`. + * + * `Ok(count)` indicates the give number of stashes were added. + * `Err(index)` indicates that the stashes after index were dropped. + * `Err(0)` indicates that an error happened but no stashes were dropped nor added. + * + * The error indicates that a number of validators were dropped due to excess size, but + * the overall election will continue. + **/ + PagedElectionProceeded: AugmentedEvent], { page: u32, result: Result }>; + /** + * A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed. + **/ + PayoutStarted: AugmentedEvent], { eraIndex: u32, validatorStash: AccountId32, page: u32, next: Option }>; + /** + * The nominator has been rewarded by this amount to this destination. + **/ + Rewarded: AugmentedEvent; + /** + * Session change has been triggered. + * + * If planned_era is one era ahead of active_era, it implies new era is being planned and + * election is ongoing. + **/ + SessionRotated: AugmentedEvent; + /** + * An unapplied slash has been cancelled. + **/ + SlashCancelled: AugmentedEvent; + /** + * An offence has been processed and the corresponding slash has been computed. + **/ + SlashComputed: AugmentedEvent; + /** + * A staker (validator or nominator) has been slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * Targets size limit reached. + **/ + SnapshotTargetsSizeExceeded: AugmentedEvent; + /** + * Voters size limit reached. + **/ + SnapshotVotersSizeExceeded: AugmentedEvent; + /** + * A subsequent event of `Withdrawn`, indicating that `stash` was fully removed from the + * system. + **/ + StakerRemoved: AugmentedEvent; + /** + * An account has unbonded this amount. + **/ + Unbonded: AugmentedEvent; + /** + * Something occurred that should never happen under normal operation. + * Logged as an event for fail-safe observability. + **/ + Unexpected: AugmentedEvent; + /** + * A validator has set their preferences. + **/ + ValidatorPrefsSet: AugmentedEvent; + /** + * An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` + * from the unlocking queue. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stakingRcClient: { + /** + * A new offence was reported. + **/ + OffenceReceived: AugmentedEvent; + /** + * A said session report was received. + **/ + SessionReportReceived: AugmentedEvent>, validatorPointsCounts: u32, leftover: bool], { endIndex: u32, activationTimestamp: Option>, validatorPointsCounts: u32, leftover: bool }>; + /** + * Something occurred that should never happen under normal operation. + * Logged as an event for fail-safe observability. + **/ + Unexpected: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stateTrieMigration: { + /** + * The auto migration task finished. + **/ + AutoMigrationFinished: AugmentedEvent; + /** + * Migration got halted due to an error or miss-configuration. + **/ + Halted: AugmentedEvent; + /** + * Given number of `(top, child)` keys were migrated respectively, with the given + * `compute`. + **/ + Migrated: AugmentedEvent; + /** + * Some account got slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * An invalid authorized upgrade was rejected while trying to apply it. + **/ + RejectedInvalidAuthorizedUpgrade: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent; + /** + * A [`Task`] has finished executing. + **/ + TaskCompleted: AugmentedEvent; + /** + * A [`Task`] failed during execution. + **/ + TaskFailed: AugmentedEvent; + /** + * A [`Task`] has started executing + **/ + TaskStarted: AugmentedEvent; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + toPolkadotXcmRouter: { + /** + * Delivery fee factor has been decreased. + **/ + DeliveryFeeFactorDecreased: AugmentedEvent; + /** + * Delivery fee factor has been increased. + **/ + DeliveryFeeFactorIncreased: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + treasury: { + /** + * A new asset spend proposal has been approved. + **/ + AssetSpendApproved: AugmentedEvent; + /** + * An approved spend was voided. + **/ + AssetSpendVoided: AugmentedEvent; + /** + * Some funds have been allocated. + **/ + Awarded: AugmentedEvent; + /** + * Some of our funds have been burnt. + **/ + Burnt: AugmentedEvent; + /** + * Some funds have been deposited. + **/ + Deposit: AugmentedEvent; + /** + * A payment happened. + **/ + Paid: AugmentedEvent; + /** + * A payment failed and can be retried. + **/ + PaymentFailed: AugmentedEvent; + /** + * Spending has finished; this is the amount that rolls over until next spend. + **/ + Rollover: AugmentedEvent; + /** + * A new spend proposal has been approved. + **/ + SpendApproved: AugmentedEvent; + /** + * We have ended a spend period and will now allocate funds. + **/ + Spending: AugmentedEvent; + /** + * A spend was processed and removed from the storage. It might have been successfully + * paid or it may have expired. + **/ + SpendProcessed: AugmentedEvent; + /** + * The inactive funds of the pallet have been updated. + **/ + UpdatedInactive: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + uniques: { + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent, key: Bytes], { collection: u32, maybeItem: Option, key: Bytes }>; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent, key: Bytes, value: Bytes], { collection: u32, maybeItem: Option, key: Bytes, value: Bytes }>; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some `collection` was frozen. + **/ + CollectionFrozen: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent; + /** + * Some `collection` was thawed. + **/ + CollectionThawed: AugmentedEvent; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some `item` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent; + /** + * The price for the instance was removed. + **/ + ItemPriceRemoved: AugmentedEvent; + /** + * The price was set for the instance. + **/ + ItemPriceSet: AugmentedEvent], { collection: u32, item: u32, price: u128, whitelistedBuyer: Option }>; + /** + * A `collection` has had its attributes changed by the `Force` origin. + **/ + ItemStatusChanged: AugmentedEvent; + /** + * Metadata has been cleared for an item. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an item. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent], { who: AccountId32, maybeCollection: Option }>; + /** + * Metadata has been cleared for an item. + **/ + Redeposited: AugmentedEvent], { collection: u32, successfulItems: Vec }>; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some `item` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + utility: { + /** + * Batch of dispatches completed fully with no error. + **/ + BatchCompleted: AugmentedEvent; + /** + * Batch of dispatches completed but has errors. + **/ + BatchCompletedWithErrors: AugmentedEvent; + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + **/ + BatchInterrupted: AugmentedEvent; + /** + * A call was dispatched. + **/ + DispatchedAs: AugmentedEvent], { result: Result }>; + /** + * The fallback call was dispatched. + **/ + IfElseFallbackCalled: AugmentedEvent; + /** + * Main call was dispatched. + **/ + IfElseMainSuccess: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with no error. + **/ + ItemCompleted: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with error. + **/ + ItemFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + vesting: { + /** + * An \[account\] has become fully vested. + **/ + VestingCompleted: AugmentedEvent; + /** + * A vesting schedule has been created. + **/ + VestingCreated: AugmentedEvent; + /** + * The amount vested has been updated. This could indicate a change in funds available. + * The balance given is the amount which is left unvested (and thus locked). + **/ + VestingUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + voterList: { + /** + * Moved an account from one bag to another. + **/ + Rebagged: AugmentedEvent; + /** + * Updated the score of some account to the given amount. + **/ + ScoreUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + whitelist: { + CallWhitelisted: AugmentedEvent; + WhitelistedCallDispatched: AugmentedEvent], { callHash: H256, result: Result }>; + WhitelistedCallRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmpQueue: { + /** + * An HRMP message was sent to a sibling parachain. + **/ + XcmpMessageSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/packages/api-augment/src/assetHubDicle/index.ts b/packages/api-augment/src/assetHubDicle/index.ts new file mode 100644 index 0000000..1318006 --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '../base.js'; +import './consts.js'; +import './errors.js'; +import './events.js'; +import './query.js'; +import './registry.js'; +import './runtime.js'; +import './tx.js'; diff --git a/packages/api-augment/src/assetHubDicle/query.ts b/packages/api-augment/src/assetHubDicle/query.ts new file mode 100644 index 0000000..6e307a7 --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/query.ts @@ -0,0 +1,2192 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/storage'; + +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@pezkuwi/api-base/types'; +import type { BTreeMap, BTreeSet, Bytes, Null, Option, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, Perbill, Percent } from '@pezkuwi/types/interfaces/runtime'; +import type { AssetHubDicleRuntimeRuntimeParametersKey, AssetHubDicleRuntimeRuntimeParametersValue, AssetHubDicleRuntimeSessionKeys, AssetHubDicleRuntimeStakingNposCompactSolution24, BpXcmBridgeHubRouterBridgeState, PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker, PezcumulusPezpalletXcmpQueueOutboundChannelDetails, PezcumulusPezpalletXcmpQueueQueueConfigData, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezframeElectionProviderSupportBoundedSupports, PezframeSupportDispatchPerDispatchClassWeight, PezframeSupportTokensMiscIdAmountRuntimeFreezeReason, PezframeSupportTokensMiscIdAmountRuntimeHoldReason, PezframeSystemAccountInfo, PezframeSystemCodeUpgradeAuthorization, PezframeSystemEventRecord, PezframeSystemLastRuntimeUpgradeInfo, PezframeSystemPhase, PezkuwiCorePrimitivesOutboundHrmpMessage, PezkuwiPrimitivesV8AbridgedHostConfiguration, PezkuwiPrimitivesV8PersistedValidationData, PezkuwiPrimitivesV8UpgradeGoAhead, PezkuwiPrimitivesV8UpgradeRestriction, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezpalletAhMigratorBalancesBefore, PezpalletAhMigratorMigrationStage, PezpalletAssetConversionPoolInfo, PezpalletAssetsApproval, PezpalletAssetsAssetAccount, PezpalletAssetsAssetDetails, PezpalletAssetsAssetMetadata, PezpalletBagsListListBag, PezpalletBagsListListNode, PezpalletBalancesAccountData, PezpalletBalancesBalanceLock, PezpalletBalancesReserveData, PezpalletBountiesBounty, PezpalletChildBountiesChildBounty, PezpalletCollatorSelectionCandidateInfo, PezpalletConvictionVotingVoteVoting, PezpalletDelegatedStakingAgentLedger, PezpalletDelegatedStakingDelegation, PezpalletElectionProviderMultiBlockPhase, PezpalletElectionProviderMultiBlockSignedSubmissionMetadata, PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings, PezpalletElectionProviderMultiBlockVerifierImplsStatus, PezpalletElectionProviderMultiBlockVerifierImplsValidSolution, PezpalletMessageQueueBookState, PezpalletMessageQueuePage, PezpalletMigrationsMigrationCursor, PezpalletMultisigMultisig, PezpalletNftFractionalizationDetails, PezpalletNftsAttributeDeposit, PezpalletNftsAttributeNamespace, PezpalletNftsCollectionConfig, PezpalletNftsCollectionDetails, PezpalletNftsCollectionMetadata, PezpalletNftsItemConfig, PezpalletNftsItemDetails, PezpalletNftsItemMetadata, PezpalletNftsPendingSwap, PezpalletNominationPoolsBondedPoolInner, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsPoolMember, PezpalletNominationPoolsRewardPool, PezpalletNominationPoolsSubPools, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus, PezpalletProxyAnnouncement, PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType, PezpalletRcMigratorAccountsAccount, PezpalletRcMigratorQueuePriority, PezpalletRecoveryActiveRecovery, PezpalletRecoveryRecoveryConfig, PezpalletReferendaReferendumInfoOriginCaller, PezpalletReviveStorageAccountInfo, PezpalletReviveStorageDeletionQueueManager, PezpalletReviveVmCodeInfo, PezpalletSchedulerRetryConfig, PezpalletSchedulerScheduled, PezpalletSocietyBid, PezpalletSocietyCandidacy, PezpalletSocietyGroupParams, PezpalletSocietyIntakeRecord, PezpalletSocietyMemberRecord, PezpalletSocietyPayoutRecord, PezpalletSocietyTally, PezpalletSocietyVote, PezpalletStakingAsyncActiveEraInfo, PezpalletStakingAsyncEraRewardPoints, PezpalletStakingAsyncForcing, PezpalletStakingAsyncLedgerStakingLedger, PezpalletStakingAsyncNominations, PezpalletStakingAsyncPezpalletBoundedExposurePage, PezpalletStakingAsyncPezpalletPruningStep, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncSlashingOffenceRecord, PezpalletStakingAsyncSnapshotStatus, PezpalletStakingAsyncUnappliedSlash, PezpalletStakingAsyncValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletTransactionPaymentReleases, PezpalletTreasuryProposal, PezpalletTreasurySpendStatus, PezpalletUniquesCollectionDetails, PezpalletUniquesCollectionMetadata, PezpalletUniquesItemDetails, PezpalletUniquesItemMetadata, PezpalletVestingReleases, PezpalletVestingVestingInfo, PezpalletXcmAuthorizedAliasesEntry, PezpalletXcmQueryStatus, PezpalletXcmRemoteLockedFungibleRecord, PezpalletXcmVersionMigrationStage, PezspConsensusAuraSr25519AppSr25519Public, PezspCoreCryptoKeyTypeId, PezspNposElectionsElectionScore, PezspRuntimeDigest, PezspStakingPagedExposureMetadata, PezspTrieStorageProof, PezspWeightsWeightV2Weight, StagingXcmV5Instruction, StagingXcmV5Location, XcmVersionedAssetId, XcmVersionedLocation } from '@pezkuwi/types/lookup'; +import type { Observable } from '@pezkuwi/types/types'; + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module '@pezkuwi/api-base/types/storage' { + interface AugmentedQueries { + ahMigrator: { + /** + * Helper storage item to store the total balance / total issuance of native token at the start + * of the migration. Since teleports are disabled during migration, the total issuance will not + * change for other reason than the migration itself. + **/ + ahBalancesBefore: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Asset Hub migration state. + **/ + ahMigrationStage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The priority of the DMP queue during migration. + * + * Controls how the DMP (Downward Message Passing) queue is processed relative to other queues + * during the migration process. This helps ensure timely processing of migration messages. + * The default priority pattern is defined in the pallet configuration, but can be overridden + * by a storage value of this type. + **/ + dmpQueuePriorityConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * An optional account id of a manager. + * + * This account id has similar privileges to [`Config::AdminOrigin`] except that it + * can not set the manager account id via `set_manager` call. + **/ + manager: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Block number when migration finished and extrinsics were unlocked. + * + * This is set when entering the `MigrationDone` stage hence when + * `RcMigrationStage::is_finished()` becomes `true`. + **/ + migrationEndBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The block number at which the migration began and the pallet's extrinsics were locked. + * + * This value is set when entering the `WaitingForAh` stage, i.e., when + * `RcMigrationStage::is_ongoing()` becomes `true`. + **/ + migrationStartBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * RC accounts that failed to migrate when were received on the Asset Hub. + * + * This is unlikely to happen, since we dry run the migration, but we keep it for completeness. + **/ + rcAccounts: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + ahOps: { + /** + * Amount of balance that a contributor made towards a crowdloan. + * + * `withdraw_crowdloan_contribution` can be permissionlessly called once the block number + * passed to unlock the balance for a specific account. + * + * The keys are as follows: + * - Block number after which the balance can be unlocked. + * - The para_id of the crowdloan. + * - The account that made the contribution. + * + * The value is (fund_pot, balance). The contribution pot is the second key in the + * `RcCrowdloanContribution` storage. + **/ + rcCrowdloanContribution: AugmentedQuery Observable>>, [u32, u32, AccountId32]> & QueryableStorageEntry; + /** + * The reserve that was taken to create a crowdloan. + * + * This is normally 500 DOT and can be refunded as last step after all + * `RcCrowdloanContribution`s of this loan have been withdrawn. + * + * Keys: + * - Block number after which this can be unreserved + * - The para_id of the crowdloan + * - The account that will have the balance unreserved + **/ + rcCrowdloanReserve: AugmentedQuery Observable>, [u32, u32, AccountId32]> & QueryableStorageEntry; + /** + * Amount of balance that was reserved for winning a lease auction. + * + * `unreserve_lease_deposit` can be permissionlessly called once the block number passed to + * unreserve the deposit. It is implicitly called by `withdraw_crowdloan_contribution`. + * + * The account here can either be a crowdloan account or a solo bidder. If it is a crowdloan + * account, then the summed up contributions for it in the contributions map will equate the + * reserved balance here. + * + * The keys are as follows: + * - Block number after which the deposit can be unreserved. + * - The para_id of the lease slot. + * - The account that will have the balance unreserved. + * - The balance to be unreserved. + **/ + rcLeaseReserve: AugmentedQuery Observable>, [u32, u32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetConversion: { + /** + * Stores the `PoolAssetId` that is going to be used for the next lp token. + * This gets incremented whenever a new lp pool is created. + **/ + nextPoolAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially + * created rather than people sending tokens directly to a pool's public account. + **/ + pools: AugmentedQuery | [StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array]) => Observable>, [ITuple<[StagingXcmV5Location, StagingXcmV5Location]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetRate: { + /** + * Maps an asset to its fixed point representation in the native balance. + * + * E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)` + **/ + conversionRateToNative: AugmentedQuery Observable>, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [u32, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable<{ + readonly deposit: u128; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } & Struct>, [u32]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + aura: { + /** + * The current authority set. + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current slot of this block. + * + * This will be set in `on_initialize`. + **/ + currentSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + auraExt: { + /** + * Serves as cache for the authorities. + * + * The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session, + * but we require the old authorities to verify the seal when validating a PoV. This will + * always be updated to the latest AuRa authorities in `on_finalize`. + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current relay chain slot paired with a number of authored blocks. + * + * This is updated in [`FixedVelocityConsensusHook::on_state_proof`] with the current relay + * chain slot as provided by the relay chain state proof. + **/ + relaySlotInfo: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + bounties: { + /** + * Bounties that have been made. + **/ + bounties: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Bounty indices that have been approved but not yet funded. + **/ + bountyApprovals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Number of bounty proposals that have been made. + **/ + bountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each bounty. + **/ + bountyDescriptions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + childBounties: { + /** + * Child bounties that have been added. + **/ + childBounties: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts + * for each parent bounty. Number of total child bounties. Will be removed in May 2025. + **/ + childBountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each child-bounty. Indexed by `(parent_id, child_id)`. + * + * This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version. + **/ + childBountyDescriptionsV1: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The cumulative child-bounty curator fee for each parent bounty. + **/ + childrenCuratorFees: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of active child bounties per parent bounty. + * Map of parent bounty index to number of child bounties. + **/ + parentChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of total child bounties per parent bounty, including completed bounties. + **/ + parentTotalChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The mapping of the child bounty ids from storage version `V0` to the new `V1` version. + * + * The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids + * based on the child bounty count per parent bounty [`ParentTotalChildBounties`]. + * The item intended solely for client convenience and not used in the pallet's core logic. + **/ + v0ToV1ChildBountyIds: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + claims: { + claims: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Pre-claimed Ethereum accounts, by the Account ID that they are claimed to. + **/ + preclaims: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The statement kind that must be signed, if any. + **/ + signing: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + total: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Vesting schedule for a claim. + * First balance is the total amount that should be held for vesting. + * Second balance is how much should be unlocked per block. + * The block number is when the vesting should start. + **/ + vesting: AugmentedQuery Observable>>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + collatorSelection: { + /** + * Fixed amount to deposit to become a collator. + * + * When a collator calls `leave_intent` they immediately receive the deposit back. + **/ + candidacyBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be + * mutually exclusive. + * + * This list is sorted in ascending order by deposit and when the deposits are equal, the least + * recently updated is considered greater. + **/ + candidateList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Desired number of candidates. + * + * This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct. + **/ + desiredCandidates: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The invulnerable, permissioned collators. This list must be sorted. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Last block authored by collator. + **/ + lastAuthoredBlock: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + convictionVoting: { + /** + * The voting classes which have a non-zero lock requirement and the lock amounts which they + * require. The actual amount locked on behalf of this pallet should always be the maximum of + * this list. + **/ + classLocksFor: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * All voting for a particular voter in a particular voting class. We store the balance for the + * number of votes that we have recorded. + **/ + votingFor: AugmentedQuery Observable, [AccountId32, u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + delegatedStaking: { + /** + * Map of `Agent` to their `Ledger`. + **/ + agents: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForAgents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForDelegators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Map of Delegators to their `Delegation`. + * + * Implementation note: We are not using a double map with `delegator` and `agent` account + * as keys since we want to restrict delegators to delegate only to one account at a time. + **/ + delegators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + foreignAssets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [StagingXcmV5Location, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [StagingXcmV5Location, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [StagingXcmV5Location]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable<{ + readonly deposit: u128; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } & Struct>, [StagingXcmV5Location]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + indices: { + /** + * The lookup from index to account. + **/ + accounts: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery Observable, [PezcumulusPrimitivesCoreAggregateMessageOrigin]> & QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery Observable>, [PezcumulusPrimitivesCoreAggregateMessageOrigin, u32]> & QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockElection: { + /** + * Current phase. + **/ + currentPhase: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Desired number of targets to elect for this round. + **/ + desiredTargets: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Paginated target snapshot. + * + * For the time being, since we assume one pages of targets, at most ONE key will exist. + **/ + pagedTargetSnapshot: AugmentedQuery Observable>>, [u32, u32]> & QueryableStorageEntry; + /** + * Same as [`PagedTargetSnapshot`], but it will store the hash of the snapshot. + * + * The hash is generated using [`frame_system::Config::Hashing`]. + **/ + pagedTargetSnapshotHash: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Paginated voter snapshot. At most [`T::Pages`] keys will exist. + **/ + pagedVoterSnapshot: AugmentedQuery Observable]>>>>, [u32, u32]> & QueryableStorageEntry; + /** + * Same as [`PagedVoterSnapshot`], but it will store the hash of the snapshot. + * + * The hash is generated using [`frame_system::Config::Hashing`]. + **/ + pagedVoterSnapshotHash: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Internal counter for the number of rounds. + * + * This is useful for de-duplication of transactions submitted to the pool, and general + * diagnostics of the pallet. + * + * This is merely incremented once per every time that an upstream `elect` is called. + **/ + round: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockElectionSigned: { + /** + * Accounts whitelisted by governance to always submit their solutions. + * + * They are different in that: + * + * * They always pay a fixed deposit for submission, specified by + * [`Config::InvulnerableDeposit`]. They pay no page deposit. + * * If _ejected_ by better solution from [`SortedScores`], they will get their full deposit + * back. + * * They always get their tx-fee back even if they are _discarded_. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + sortedScores: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Map from account to the metadata of their submission. + * + * invariant: for any Key1 of type `AccountId` in [`Submissions`], this storage map also has a + * value. + **/ + submissionMetadataStorage: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Triple map from (round, account, page) to a solution page. + **/ + submissionStorage: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockElectionVerifier: { + /** + * The minimum score that each solution must attain in order to be considered feasible. + **/ + minimumScore: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The `(amount, count)` of backings, divided per page. + * + * This is stored because in the last block of verification we need them to compute the score, + * and check `MaxBackersPerWinnerFinal`. + * + * This can only ever live for the invalid variant of the solution. Once it is valid, we don't + * need this information anymore; the score is already computed once in + * [`QueuedSolutionScore`], and the backing counts are checked. + **/ + queuedSolutionBackings: AugmentedQuery Observable>>>, [u32, u32]> & QueryableStorageEntry; + /** + * The score of the valid variant of [`QueuedSolution`]. + * + * This only ever lives for the `valid` variant. + **/ + queuedSolutionScore: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The `X` variant of the current queued solution. Might be the valid one or not. + * + * The two variants of this storage item is to avoid the need of copying. Recall that once a + * `VerifyingSolution` is being processed, it needs to write its partial supports *somewhere*. + * Writing theses supports on top of a *good* queued supports is wrong, since we might bail. + * Writing them to a bugger and copying at the ned is slightly better, but expensive. This flag + * system is best of both worlds. + **/ + queuedSolutionX: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The `Y` variant of the current queued solution. Might be the valid one or not. + **/ + queuedSolutionY: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Pointer to the variant of [`QueuedSolutionX`] or [`QueuedSolutionY`] that is currently + * valid. + **/ + queuedValidVariant: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Storage item for [`Status`]. + **/ + statusStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockMigrations: { + /** + * The currently active migration to run and its cursor. + * + * `None` indicates that no migration is running. + **/ + cursor: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Set of all successfully executed migrations. + * + * This is used as blacklist, to not re-execute migrations that have not been removed from the + * codebase yet. Governance can regularly clear this out via `clear_historic`. + **/ + historic: AugmentedQuery Observable>, [Bytes]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multisig: { + /** + * The set of open multisig operations. + **/ + multisigs: AugmentedQuery Observable>, [AccountId32, U8aFixed]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nftFractionalization: { + /** + * Keeps track of the corresponding NFT ID, asset ID and amount minted. + **/ + nftToAsset: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nfts: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery Observable>, [AccountId32, u32, u32]> & QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery | null | Uint8Array | u32 | AnyNumber, arg3: PezpalletNftsAttributeNamespace | { Pallet: any } | { CollectionOwner: any } | { ItemOwner: any } | { Account: any } | string | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable>>, [u32, Option, PezpalletNftsAttributeNamespace, Bytes]> & QueryableStorageEntry, PezpalletNftsAttributeNamespace, Bytes]>; + /** + * Details of a collection. + **/ + collection: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + collectionAccount: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Config of a collection. + **/ + collectionConfigOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + collectionMetadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + * Stores collection roles as per account. + **/ + collectionRoleOf: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + item: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Item attribute approvals. + **/ + itemAttributesApprovalsOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Config of an item. + **/ + itemConfigOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Metadata of an item. + **/ + itemMetadataOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * A price of an item. + **/ + itemPriceOf: AugmentedQuery Observable]>>>, [u32, u32]> & QueryableStorageEntry; + /** + * Stores the `CollectionId` that is going to be used for the next collection. + * This gets incremented whenever a new collection is created. + **/ + nextCollectionId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Handles all the pending swaps. + **/ + pendingSwapOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nominationPools: { + /** + * Storage for bonded pools. + **/ + bondedPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Map from a pool member account to their opted claim permission. + **/ + claimPermissions: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForBondedPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForMetadata: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPoolMembers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForReversePoolIdLookup: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRewardPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForSubPoolsStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum commission that can be charged by a pool. Used on commission payouts to bound + * pool commissions that are > `GlobalMaxCommission`, necessary if a future + * `GlobalMaxCommission` is lower than some current pool commissions. + **/ + globalMaxCommission: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Ever increasing number of all pools created so far. + **/ + lastPoolId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Maximum number of members that can exist in the system. If `None`, then the count + * members are not bound on a system wide basis. + **/ + maxPoolMembers: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of members that may belong to pool. If `None`, then the count of + * members is not bound on a per pool basis. + **/ + maxPoolMembersPerPool: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of nomination pools that can exist. If `None`, then an unbounded number of + * pools can exist. + **/ + maxPools: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Metadata for the pool. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Minimum bond required to create a pool. + * + * This is the amount that the depositor must put as their initial stake in the pool, as an + * indication of "skin in the game". + * + * This is the value that will always exist in the staking ledger of the pool bonded account + * while all other accounts leave. + **/ + minCreateBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum amount to bond to join a pool. + **/ + minJoinBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Active members. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + poolMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A reverse lookup from the pool's account id to its id. + * + * This is only used for slashing and on automatic withdraw update. In all other instances, the + * pool id is used, and the accounts are deterministically derived from it. + **/ + reversePoolIdLookup: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Reward pools. This is where there rewards for each pool accumulate. When a members payout is + * claimed, the balance comes out of the reward pool. Keyed by the bonded pools account. + **/ + rewardPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Groups of unbonding pools. Each group of unbonding pools belongs to a + * bonded pool, hence the name sub-pools. Keyed by the bonded pools account. + **/ + subPoolsStorage: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sum of funds across all pools. + * + * This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`] + * because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's + * `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s. + **/ + totalValueLocked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainInfo: { + parachainId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainSystem: { + /** + * Storage field that keeps track of bandwidth used by the unincluded segment along with the + * latest HRMP watermark. Used for limiting the acceptance of new blocks with + * respect to relay chain constraints. + **/ + aggregatedUnincludedSegment: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The number of HRMP messages we observed in `on_initialize` and thus used that number for + * announcing the weight of `on_initialize` and `on_finalize`. + **/ + announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A custom head data that should be returned as result of `validate_block`. + * + * See `Pallet::set_custom_validation_head_data` for more information. + **/ + customValidationHeadData: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Were the validation data set to notify the relay chain? + **/ + didSetValidationCode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The parachain host configuration that was obtained from the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + hostConfiguration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * HRMP messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + hrmpOutboundMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * HRMP watermark that was set in a block. + **/ + hrmpWatermark: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The last downward message queue chain head we have observed. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastDmqMqcHead: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The message queue chain heads we have observed per each channel incoming channel. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastHrmpMqcHeads: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last processed downward message. + * + * We need to keep track of this to filter the messages that have been already processed. + **/ + lastProcessedDownwardMessage: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last processed HRMP message. + * + * We need to keep track of this to filter the messages that have been already processed. + **/ + lastProcessedHrmpMessage: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The relay chain block number associated with the last parachain block. + * + * This is updated in `on_finalize`. + **/ + lastRelayChainBlockNumber: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Validation code that is set by the parachain and is to be communicated to collator and + * consequently the relay-chain. + * + * This will be cleared in `on_initialize` of each new block if no other pallet already set + * the value. + **/ + newValidationCode: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Upward messages that are still pending and not yet send to the relay chain. + **/ + pendingUpwardMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * In case of a scheduled upgrade, this storage field contains the validation code to be + * applied. + * + * As soon as the relay chain gives us the go-ahead signal, we will overwrite the + * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process + * with the new validation code. This concludes the upgrade process. + **/ + pendingValidationCode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Number of downward messages processed in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + processedDownwardMessages: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The state proof for the last relay parent block. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relayStateProof: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The snapshot of some state related to messaging relevant to the current parachain as per + * the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relevantMessagingState: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing DMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedDmpWeightOverride: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing XCMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedXcmpWeightOverride: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Latest included block descendants the runtime accepted. In other words, these are + * ancestors of the currently executing block which have not been included in the observed + * relay-chain state. + * + * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured + * in the pallet. + **/ + unincludedSegment: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Optional upgrade go-ahead signal from the relay-chain. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeGoAhead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * An option which indicates if the relay-chain restricts signalling a validation code upgrade. + * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced + * candidate will be invalid. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeRestrictionSignal: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The factor to multiply the base delivery fee by for UMP. + **/ + upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Upward messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + upwardMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The [`PersistedValidationData`] set for this block. + * This value is expected to be set only once per block and it's never stored + * in the trie. + **/ + validationData: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parameters: { + /** + * Stored parameters. + **/ + parameters: AugmentedQuery Observable>, [AssetHubDicleRuntimeRuntimeParametersKey]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + polkadotXcm: { + /** + * The existing asset traps. + * + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ + assetTraps: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * Map of authorized aliasers of local origins. Each local location can authorize a list of + * other locations to alias into it. Each aliaser is only valid until its inner `expiry` + * block number. + **/ + authorizedAliases: AugmentedQuery Observable>, [XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The current migration's stage, if any. + **/ + currentMigration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on this chain. + **/ + lockedFungibles: AugmentedQuery Observable>>>, [AccountId32]> & QueryableStorageEntry; + /** + * The ongoing queries. + **/ + queries: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The latest available query index. + **/ + queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on a remote chain. + **/ + remoteLockedFungibles: AugmentedQuery Observable>, [u32, AccountId32, XcmVersionedAssetId]> & QueryableStorageEntry; + /** + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ + safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Latest versions that we know various locations support. + **/ + supportedVersion: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ + versionDiscoveryQueue: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * All locations that we have requested version notifications from. + **/ + versionNotifiers: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ + versionNotifyTargets: AugmentedQuery Observable>>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Global suspension state of the XCM executor. + **/ + xcmExecutionSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + poolAssets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [u32, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + preimage: { + preimageFor: AugmentedQuery | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[H256, u32]>]> & QueryableStorageEntry]>; + /** + * The request status of a given hash. + **/ + requestStatusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The request status of a given hash. + **/ + statusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proxy: { + /** + * The announcements made by the proxy (key). + **/ + announcements: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of account proxies. Maps the account which has delegated to the accounts + * which are being delegated to, together with the amount held on deposit. + **/ + proxies: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + recovery: { + /** + * Active recovery attempts. + * + * First account is the account to be recovered, and the second account + * is the user trying to recover the account. + **/ + activeRecoveries: AugmentedQuery Observable>, [AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * The list of allowed proxy accounts. + * + * Map from the user who can access it to the recovered account. + **/ + proxy: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of recoverable accounts and their recovery configuration. + **/ + recoverable: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + referenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + remoteProxyRelayChain: { + /** + * Stores the last [`Config::MaxStorageRootsToKeep`] block to storage root mappings of the + * target chain. + **/ + blockToRoot: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + revive: { + /** + * The data associated to a contract or externally owned account. + **/ + accountInfoOf: AugmentedQuery Observable>, [H160]> & QueryableStorageEntry; + /** + * A mapping from a contract's code hash to its code info. + **/ + codeInfoOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Evicted contracts that await child trie deletion. + * + * Child trie deletion is a heavy operation depending on the amount of storage items + * stored in said trie. Therefore this operation is performed lazily in `on_idle`. + **/ + deletionQueue: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * A pair of monotonic counters used to track the latest contract marked for deletion + * and the latest deleted contract in queue. + **/ + deletionQueueCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The immutable data associated with a given account. + **/ + immutableDataOf: AugmentedQuery Observable>, [H160]> & QueryableStorageEntry; + /** + * Map a Ethereum address to its original `AccountId32`. + * + * When deriving a `H160` from an `AccountId32` we use a hash function. In order to + * reconstruct the original account we need to store the reverse mapping here. + * Register your `AccountId32` using [`Pallet::map_account`] in order to + * use it with this pallet. + **/ + originalAccount: AugmentedQuery Observable>, [H160]> & QueryableStorageEntry; + /** + * A mapping from a contract's code hash to its code. + **/ + pristineCode: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + scheduler: { + /** + * Items to be executed, indexed by the block number that they should be executed on. + **/ + agenda: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Block number at which the agenda began incomplete execution. + **/ + incompleteSince: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Lookup from a name to the block number and index of the task. + * + * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 + * identities. + **/ + lookup: AugmentedQuery Observable>>, [U8aFixed]> & QueryableStorageEntry; + /** + * Retry configurations for items to be executed, indexed by task address. + **/ + retries: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery | [PezspCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable>, [ITuple<[PezspCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + society: { + /** + * The current bids, stored ordered by the value of the bid. + **/ + bids: AugmentedQuery Observable>, []> & QueryableStorageEntry; + candidates: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The number of challenge rounds there have been. Used to identify stale DefenderVotes. + **/ + challengeRoundCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Votes for the defender, keyed by challenge round. + **/ + defenderVotes: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The defending member currently being challenged, along with a running tally of votes. + **/ + defending: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The first member. + **/ + founder: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The most primary from the most recently approved rank 0 members in the society. + **/ + head: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current items in `Members` keyed by their unique index. Keys are densely populated + * `0..MemberCount` (does not include `MemberCount`). + **/ + memberByIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.) + **/ + memberCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current members and their rank. Doesn't include `SuspendedMembers`. + **/ + members: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Next challenge rotation scheduled with [Config::BlockNumberProvider]. + **/ + nextChallengeAt: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * At the end of the claim period, this contains the most recently approved members (along with + * their bid and round ID) who is from the most recent round with the lowest bid. They will + * become the new `Head`. + **/ + nextHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Next intake rotation scheduled with [Config::BlockNumberProvider]. + **/ + nextIntakeAt: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The max number of members for the society at one time. + **/ + parameters: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Information regarding rank-0 payouts, past and future. + **/ + payouts: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Amount of our account balance that is specifically for the next round's bid(s). + **/ + pot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of rounds which have passed. + **/ + roundCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A hash of the rules of this society concerning membership. Can only be set once and + * only by the founder. + **/ + rules: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current skeptic. + **/ + skeptic: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The set of suspended members, with their old membership record. + **/ + suspendedMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor. + **/ + voteClearCursor: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Double map from Candidate -> Voter -> (Maybe) Vote. + **/ + votes: AugmentedQuery Observable>, [AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + staking: { + /** + * The active era information, it holds index and start. + * + * The active era is the era being currently rewarded. Validator set of this era must be + * equal to what is RC's session pallet. + **/ + activeEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all locked "stash" accounts to the controller account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + bonded: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A mapping from still-bonded eras to the first session index of that era. + * + * Must contains information for eras for the range: + * `[active_era - bounding_duration; active_era]` + **/ + bondedEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The amount of currency given to reporters of a slash event which was + * canceled by extraordinary circumstances (e.g. governance). + **/ + canceledSlashPayout: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Cancelled slashes by era and validator with maximum slash fraction to be cancelled. + * + * When slashes are cancelled by governance, this stores the era and the validators + * whose slashes should be cancelled, along with the maximum slash fraction that should + * be cancelled for each validator. + **/ + cancelledSlashes: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * The threshold for when users can start calling `chill_other` for other validators / + * nominators. The threshold is compared to the actual number of validators / nominators + * (`CountFor*`) in the system compared to the configured max (`Max*Count`). + **/ + chillThreshold: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * History of claimed paged rewards by era and validator. + * + * This is keyed by era and validator stash which maps to the set of page indexes which have + * been claimed. + * + * It is removed after [`Config::HistoryDepth`] eras. + **/ + claimedRewards: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForNominators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForValidators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForVirtualStakers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current planned era index. + * + * This is the latest planned era, depending on how the Session pallet queues the validator + * set, it might be active or not. + **/ + currentEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A bounded list of the "electable" stashes that resulted from a successful election. + **/ + electableStashes: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Tracks the current step of era pruning process for each era being lazily pruned. + **/ + eraPruningState: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Rewards for the last [`Config::HistoryDepth`] eras. + * If reward hasn't been set or has been removed then 0 reward is returned. + **/ + erasRewardPoints: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Summary of validator exposure at a given era. + * + * This contains the total stake in support of the validator and their own stake. In addition, + * it can also be used to get the number of nominators backing this validator and the number of + * exposure pages they are divided into. The page count is useful to determine the number of + * pages of rewards that needs to be claimed. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * Should only be accessed through `Eras`. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty overview is returned. + **/ + erasStakersOverview: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Paginated exposure of a validator at given era. + * + * This is keyed first by the era index to allow bulk deletion, then stash account and finally + * the page. Should only be accessed through `Eras`. + * + * This is cleared after [`Config::HistoryDepth`] eras. + **/ + erasStakersPaged: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * The total amount staked for the last [`Config::HistoryDepth`] eras. + * If total hasn't been set or has been removed then 0 stake is returned. + **/ + erasTotalStake: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Exposure of validator at era with the preferences of validators. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + **/ + erasValidatorPrefs: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The total validator era payout for the last [`Config::HistoryDepth`] eras. + * + * Eras that haven't finished yet or has been removed doesn't have reward. + **/ + erasValidatorReward: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Mode of era forcing. + **/ + forceEra: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any validators that may never be slashed or forcibly kicked. It's a Vec since they're + * easy to initialize and the performance hit is minimal (we expect no more than four + * invulnerables) and restricted to testnets. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all (unlocked) "controller" accounts to the info regarding the staking. + * + * Note: All the reads and mutations to this storage *MUST* be done through the methods exposed + * by [`StakingLedger`] to ensure data and lock consistency. + **/ + ledger: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The maximum nominator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxNominatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum staked rewards, i.e. the percentage of the era inflation that + * is used for stake rewards. + * See [Era payout](./index.html#era-payout). + **/ + maxStakedRewards: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The maximum validator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxValidatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum amount of commission that validators can set. + * + * If set to `0`, no limit exists. + **/ + minCommission: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active nominator stake of the last successful election. + **/ + minimumActiveStake: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a nominator. + **/ + minNominatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a validator. + **/ + minValidatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Keeps track of an ongoing multi-page election solution request. + * + * If `Some(_)``, it is the next page that we intend to elect. If `None`, we are not in the + * election process. + * + * This is only set in multi-block elections. Should always be `None` otherwise. + **/ + nextElectionPage: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The map from nominator stash key to their nomination preferences, namely the validators that + * they wish to support. + * + * Note that the keys of this storage map might become non-decodable in case the + * account's [`NominationsQuota::MaxNominations`] configuration is decreased. + * In this rare case, these nominators + * are still existent in storage, their key is correct and retrievable (i.e. `contains_key` + * indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable + * nominators will effectively not-exist, until they re-submit their preferences such that it + * is within the bounds of the newly set `Config::MaxNominations`. + * + * This implies that `::iter_keys().count()` and `::iter().count()` might return different + * values for this map. Moreover, the main `::count()` is aligned with the former, namely the + * number of keys that exist. + * + * Lastly, if any of the nominators become non-decodable, they can be chilled immediately via + * [`Call::chill_other`] dispatchable by anyone. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + nominators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Stores reported offences in a queue until they are processed in subsequent blocks. + * + * Each offence is recorded under the corresponding era index and the offending validator's + * account. If an offence spans multiple pages, only one page is processed at a time. Offences + * are handled sequentially, with their associated slashes computed and stored in + * `UnappliedSlashes`. These slashes are then applied in a future era as determined by + * `SlashDeferDuration`. + * + * Any offences tied to an era older than `BondingDuration` are automatically dropped. + * Processing always prioritizes the oldest era first. + **/ + offenceQueue: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Tracks the eras that contain offences in `OffenceQueue`, sorted from **earliest to latest**. + * + * - This ensures efficient retrieval of the oldest offence without iterating through + * `OffenceQueue`. + * - When a new offence is added to `OffenceQueue`, its era is **inserted in sorted order** + * if not already present. + * - When all offences for an era are processed, it is **removed** from this list. + * - The maximum length of this vector is bounded by `BondingDuration`. + * + * This eliminates the need for expensive iteration and sorting when fetching the next offence + * to process. + **/ + offenceQueueEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Where the reward payment should be made. Keyed by stash. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + payee: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Tracks the currently processed offence record from the `OffenceQueue`. + * + * - When processing offences, an offence record is **popped** from the oldest era in + * `OffenceQueue` and stored here. + * - The function `process_offence` reads from this storage, processing one page of exposure at + * a time. + * - After processing a page, the `exposure_page` count is **decremented** until it reaches + * zero. + * - Once fully processed, the offence record is removed from this storage. + * + * This ensures that offences are processed incrementally, preventing excessive computation + * in a single block while maintaining correct slashing behavior. + **/ + processingOffence: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The percentage of the slash that is distributed to reporters. + * + * The rest of the slashed value is handled by the `Slash`. + **/ + slashRewardFraction: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * All unapplied slashes that are queued for later. + **/ + unappliedSlashes: AugmentedQuery | [AccountId32 | string | Uint8Array, Perbill | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [u32, ITuple<[AccountId32, Perbill, u32]>]> & QueryableStorageEntry]>; + /** + * The ideal number of active validators. + **/ + validatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from (wannabe) validator stash key to the preferences of that validator. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + validators: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on validators, mapped by era to the highest slash proportion + * and slash value of the era. + **/ + validatorSlashInEra: AugmentedQuery Observable>>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Stakers whose funds are managed by other pallets. + * + * This pallet does not apply any locks on them, therefore they are only virtually bonded. They + * are expected to be keyless accounts and hence should not be allowed to mutate their ledger + * directly via this pallet. Instead, these accounts are managed by other pallets and accessed + * via low level apis. We keep track of them to do minimal integrity checks. + **/ + virtualStakers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Voter snapshot progress status. + * + * If the status is `Ongoing`, it keeps a cursor of the last voter retrieved to proceed when + * creating the next snapshot page. + **/ + voterSnapshotStatus: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stakingRcClient: { + /** + * An incomplete incoming session report that we have not acted upon yet. + **/ + incompleteSessionReport: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last session report's `end_index` that we have acted upon. + * + * This allows this pallet to ensure a sequentially increasing sequence of session reports + * passed to staking. + * + * Note that with the XCM being the backbone of communication, we have a guarantee on the + * ordering of messages. As long as the RC sends session reports in order, we _eventually_ + * receive them in the same correct order as well. + **/ + lastSessionReportEndingIndex: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A validator set that is outgoing, and should be sent. + * + * This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent, + * or the second value reaches zero, at which point we drop it. + **/ + outgoingValidatorSet: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stateTrieMigration: { + /** + * The limits that are imposed on automatic migrations. + * + * If set to None, then no automatic migration happens. + **/ + autoLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Migration progress. + * + * This stores the snapshot of the last migrated keys. It can be set into motion and move + * forward by any of the means provided by this pallet. + **/ + migrationProcess: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum limits that the signed migration could use. + * + * If not set, no signed submission is allowed. + **/ + signedMigrationMaxLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The weight reclaimed for the extrinsic. + * + * This information is available until the end of the extrinsic execution. + * More precisely this information is removed in `note_applied_extrinsic`. + * + * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate + * reduction. + **/ + extrinsicWeightReclaimed: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + toPolkadotXcmRouter: { + /** + * Bridge that we are using. + * + * **bridges-v1** assumptions: all outbound messages through this router are using single lane + * and to single remote consensus. If there is some other remote consensus that uses the same + * bridge hub, the separate pallet instance shall be used, In `v2` we'll have all required + * primitives (lane-id aka bridge-id, derived from XCM locations) to support multiple bridges + * by the same pallet instance. + **/ + bridge: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & QueryableStorageEntry; + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + treasury: { + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposal indices that have been approved but not yet awarded. + **/ + approvals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The amount which has been reported as inactive to Currency. + **/ + deactivated: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The blocknumber for the last triggered spend period. + **/ + lastSpendPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Number of proposals that have been made. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposals that have been made. + **/ + proposals: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The count of spends that have been made. + **/ + spendCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Spends that have been approved and being processed. + **/ + spends: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + uniques: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery Observable>, [AccountId32, u32, u32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + asset: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery | null | Uint8Array | u32 | AnyNumber, arg3: Bytes | string | Uint8Array) => Observable>>, [u32, Option, Bytes]> & QueryableStorageEntry, Bytes]>; + /** + * Details of a collection. + **/ + class: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + classAccount: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + classMetadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Keeps track of the number of items a collection might have. + **/ + collectionMaxSupply: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an item. + **/ + instanceMetadataOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Price of an asset instance. + **/ + itemPriceOf: AugmentedQuery Observable]>>>, [u32, u32]> & QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + vesting: { + /** + * Storage version of the pallet. + * + * New networks start with latest version, as determined by the genesis build. + **/ + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information regarding the vesting of a given account. + **/ + vesting: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + voterList: { + /** + * Counter for the related counted storage map + **/ + counterForListNodes: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A bag stored in storage. + * + * Stores a `Bag` struct, which stores head and tail pointers to itself. + **/ + listBags: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * A single node, within some bag. + * + * Nodes store links forward and back within their respective bags. + **/ + listNodes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Lock all updates to this pallet. + * + * If any nodes needs updating, removal or addition due to a temporary lock, the + * [`Call::rebag`] can be used. + **/ + lock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pointer that remembers the next node that will be auto-rebagged. + * When `None`, the next scan will start from the list head again. + **/ + nextNodeAutoRebagged: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + whitelist: { + whitelistedCall: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + xcmpQueue: { + /** + * The factor to multiply the base delivery fee by. + **/ + deliveryFeeFactor: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The suspended inbound XCMP channels. All others are not suspended. + * + * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block + * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached + * within the block and therefore only included once in the proof size. + * + * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof + * will be smaller. + **/ + inboundXcmpSuspended: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The messages outbound in a given XCMP channel. + **/ + outboundXcmpMessages: AugmentedQuery Observable, [u32, u16]> & QueryableStorageEntry; + /** + * The non-empty XCMP channels in order of becoming non-empty, and the index of the first + * and last outbound message. If the two indices are equal, then it indicates an empty + * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater + * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in + * case of the need to send a high-priority signal message this block. + * The bool is true if there is a signal message waiting to be sent. + **/ + outboundXcmpStatus: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The configuration which controls the dynamics of the outbound queue. + **/ + queueConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. + **/ + queueSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any signal messages waiting to be sent. + **/ + signalMessages: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } // AugmentedQueries +} // declare module diff --git a/packages/api-augment/src/assetHubDicle/registry.ts b/packages/api-augment/src/assetHubDicle/registry.ts new file mode 100644 index 0000000..e5e2b2c --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/registry.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/types-augment/registry/assetHubDicle'; diff --git a/packages/api-augment/src/assetHubDicle/runtime.ts b/packages/api-augment/src/assetHubDicle/runtime.ts new file mode 100644 index 0000000..6211b30 --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/runtime.ts @@ -0,0 +1,518 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/calls'; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, Text, U256, U8aFixed, Vec, bool, u128, u32 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { Extrinsic } from '@pezkuwi/types/interfaces/extrinsics'; +import type { OpaqueMetadata } from '@pezkuwi/types/interfaces/metadata'; +import type { AccountId32, H160, H256, OriginCaller, RuntimeCall, Slot, SlotDuration } from '@pezkuwi/types/interfaces/runtime'; +import type { ParaId } from '@pezkuwi/types/interfaces/teyrchains'; +import type { AssetsCommonRuntimeApiFungiblesAccessError, PezcumulusPrimitivesCoreCollationInfo, PezframeSupportViewFunctionsViewFunctionDispatchError, PezframeSupportViewFunctionsViewFunctionId, PezpalletReviveEvmApiDebugRpcTypesTrace, PezpalletReviveEvmApiDebugRpcTypesTracerType, PezpalletReviveEvmApiRpcTypesGenGenericTransaction, PezpalletRevivePrimitivesCode, PezpalletRevivePrimitivesCodeUploadReturnValue, PezpalletRevivePrimitivesContractAccessError, PezpalletRevivePrimitivesContractResultExecReturnValue, PezpalletRevivePrimitivesContractResultInstantiateReturnValue, PezpalletRevivePrimitivesEthTransactError, PezpalletRevivePrimitivesEthTransactInfo, PezpalletTransactionPaymentFeeDetails, PezpalletTransactionPaymentRuntimeDispatchInfo, PezspConsensusAuraSr25519AppSr25519Public, PezspCoreCryptoKeyTypeId, PezspInherentsCheckInherentsResult, PezspInherentsInherentData, PezspRuntimeBlock, PezspRuntimeDispatchError, PezspRuntimeExtrinsicInclusionMode, PezspRuntimeHeader, PezspRuntimeTransactionValidityTransactionSource, PezspRuntimeTransactionValidityTransactionValidityError, PezspRuntimeTransactionValidityValidTransaction, PezspVersionRuntimeVersion, PezspWeightsWeightV2Weight, StagingXcmV5Location, XcmRuntimeApisAuthorizedAliasesError, XcmRuntimeApisAuthorizedAliasesOriginAliaser, XcmRuntimeApisConversionsError, XcmRuntimeApisDryRunCallDryRunEffects, XcmRuntimeApisDryRunError, XcmRuntimeApisDryRunXcmDryRunEffects, XcmRuntimeApisFeesError, XcmRuntimeApisTrustedQueryError, XcmVersionedAsset, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; +import type { IExtrinsic, Observable } from '@pezkuwi/types/types'; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module '@pezkuwi/api-base/types/calls' { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/ */ + accountNonceApi: { + /** + * Get current account nonce of given `AccountId`. + **/ + accountNonce: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x8a8047a53a8277ec/ */ + assetConversionApi: { + /** + * Returns the size of the liquidity pool for the given asset pair. + **/ + getReserves: AugmentedCall Observable>>>; + /** + * Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].,, Note that the price may have changed by the time the transaction is executed., (Use `amount_out_min` to control slippage.) + **/ + quotePriceExactTokensForTokens: AugmentedCall Observable>>; + /** + * Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].,, Note that the price may have changed by the time the transaction is executed., (Use `amount_in_max` to control slippage.) + **/ + quotePriceTokensForExactTokens: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdd718d5cc53262d4/ */ + auraApi: { + /** + * Return the current set of authorities. + **/ + authorities: AugmentedCall Observable>>; + /** + * Returns the slot duration for Aura.,, Currently, only the value provided by this type at genesis will be used. + **/ + slotDuration: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd7bdd8a272ca0d65/ */ + auraUnincludedSegmentApi: { + /** + * Whether it is legal to extend the chain, assuming the given block is the most, recently included one as-of the relay parent that will be built against, and, the given relay chain slot.,, This should be consistent with the logic the runtime uses when validating blocks to, avoid issues.,, When the unincluded segment is empty, i.e. `included_hash == at`, where at is the block, whose state we are querying against, this must always return `true` as long as the slot, is more recent than the included block itself. + **/ + canBuildUpon: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x12c8e3d4d7e06de0/ */ + authorizedAliasersApi: { + /** + * Returns locations allowed to alias into and act as `target`. + **/ + authorizedAliasers: AugmentedCall Observable, XcmRuntimeApisAuthorizedAliasesError>>>; + /** + * Returns whether `origin` is allowed to alias into and act as `target`. + **/ + isAuthorizedAlias: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/ */ + blockBuilder: { + /** + * Apply the given extrinsic.,, Returns an inclusion outcome which specifies if this extrinsic is included in, this block or not. + **/ + applyExtrinsic: AugmentedCall Observable, PezspRuntimeTransactionValidityTransactionValidityError>>>; + /** + * Check that the inherents are valid. The inherent data will vary from chain to chain. + **/ + checkInherents: AugmentedCall Observable>; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable>; + /** + * Generate inherent extrinsics. The inherent data will vary from chain to chain. + **/ + inherentExtrinsics: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xea93e3f16f3d6962/ */ + collectCollationInfo: { + /** + * Collect information about a collation.,, The given `header` is the header of the built block for that, we are collecting the collation info for. + **/ + collectCollationInfo: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/ */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall Observable>; + /** + * Initialize a block with the given header and return the runtime executive mode. + **/ + initializeBlock: AugmentedCall Observable>; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91b1c8b16328eb92/ */ + dryRunApi: { + /** + * Dry run call V2. + **/ + dryRunCall: AugmentedCall Observable>>; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xde92b8a0426b9bf6/ */ + fungiblesApi: { + /** + * Returns the list of all [`Asset`] that an `AccountId` has. + **/ + queryAccountBalances: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/ */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the, storage.,, In the case of a FRAME-based runtime, this function deserializes the full, `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the, provided JSON blob is incorrect or incomplete or the deserialization fails, an error, is returned.,, Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no, defaults will be used. + **/ + buildState: AugmentedCall Observable>>; + /** + * Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by, `id`.,, If `id` is `None` the function should return JSON blob representation of the default, `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default, `RuntimeGenesisConfig`.,, Otherwise function returns a JSON representation of the built-in, named, `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not, exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of, (potentially nested) key-value pairs that are intended for customizing the default, runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation, of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can, be used in `build_state` method. + **/ + getPreset: AugmentedCall | null | Uint8Array | Text | string) => Observable>>; + /** + * Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.,, The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If, no named presets are provided by the runtime the list is empty. + **/ + presetNames: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xa2ddb6a58477bf63/ */ + getParachainInfo: { + /** + * Retrieve the parachain id used for runtime. + **/ + parachainId: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x9ffb505aa738d69c/ */ + locationToAccountApi: { + /** + * Converts `Location` to `AccountId`. + **/ + convertLocation: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/ */ + metadata: { + /** + * Returns the metadata of a runtime. + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version.,, If the given `version` isn't supported, this will return `None`., Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime. + **/ + metadataAtVersion: AugmentedCall Observable>>; + /** + * Returns the supported metadata versions.,, This can be used to call `metadata_at_version`. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x17a6bc0d0062aeb3/ */ + nominationPoolsApi: { + /** + * Returns the equivalent points of `new_funds` for a given pool. + **/ + balanceToPoints: AugmentedCall Observable>; + /** + * Returns true if the delegated funds of the pool `member` needs migration.,, Once a pool has successfully migrated to the strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the, member can be migrated from pool account to the member's account. Use, [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation), to migrate the funds of the pool member. + **/ + memberNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool member.,, If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on, chain. + **/ + memberPendingSlash: AugmentedCall Observable>; + /** + * Returns the total contribution of a pool member including any balance that is unbonding. + **/ + memberTotalBalance: AugmentedCall Observable>; + /** + * Returns the pending rewards for the member that the AccountId was given for. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Returns the equivalent balance of `points` for a given pool. + **/ + pointsToBalance: AugmentedCall Observable>; + /** + * Returns the bonded account and reward account associated with the pool_id. + **/ + poolAccounts: AugmentedCall Observable>>; + /** + * Total balance contributed to the pool. + **/ + poolBalance: AugmentedCall Observable>; + /** + * Returns true if the pool with `pool_id` needs migration.,, This can happen when the `pallet-nomination-pools` has switched to using strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool, still has funds that were staked using the older strategy, [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use, [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake), to migrate the pool. + **/ + poolNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool. + **/ + poolPendingSlash: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/ */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x04e70521a0d3d2f8/ */ + relayParentOffsetApi: { + /** + * Fetch the slot offset that is expected from the relay chain. + **/ + relayParentOffset: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x8c403e5c4a9fd442/ */ + reviveApi: { + /** + * Get the H160 address associated to this account id + **/ + address: AugmentedCall Observable>; + /** + * Returns the free balance of the given `[H160]` address, using EVM decimals. + **/ + balance: AugmentedCall Observable>; + /** + * The address of the validator that produced the current block. + **/ + blockAuthor: AugmentedCall Observable>>; + /** + * Returns the block gas limit. + **/ + blockGasLimit: AugmentedCall Observable>; + /** + * Perform a call from a specified account to a given contract.,, See [`crate::Pallet::bare_call`]. + **/ + call: AugmentedCall | null | Uint8Array | PezspWeightsWeightV2Weight, storage_deposit_limit: Option | null | Uint8Array | u128 | AnyNumber, input_data: Bytes | string | Uint8Array) => Observable>; + /** + * The code at the specified address taking pre-compiles into account. + **/ + code: AugmentedCall Observable>; + /** + * Perform an Ethereum call.,, See [`crate::Pallet::dry_run_eth_transact`] + **/ + ethTransact: AugmentedCall Observable>>; + /** + * Returns the gas price. + **/ + gasPrice: AugmentedCall Observable>; + /** + * Query a given storage key in a given contract.,, Returns `Ok(Some(Vec))` if the storage value exists under the given key in the, specified account and `Ok(None)` if it doesn't. If the account specified by the address, doesn't exist, or doesn't have a contract then `Err` is returned. + **/ + getStorage: AugmentedCall Observable, PezpalletRevivePrimitivesContractAccessError>>>; + /** + * Query a given variable-sized storage key in a given contract.,, Returns `Ok(Some(Vec))` if the storage value exists under the given key in the, specified account and `Ok(None)` if it doesn't. If the account specified by the address, doesn't exist, or doesn't have a contract then `Err` is returned. + **/ + getStorageVarKey: AugmentedCall Observable, PezpalletRevivePrimitivesContractAccessError>>>; + /** + * Instantiate a new contract.,, See `[crate::Pallet::bare_instantiate]`. + **/ + instantiate: AugmentedCall | null | Uint8Array | PezspWeightsWeightV2Weight, storage_deposit_limit: Option | null | Uint8Array | u128 | AnyNumber, code: PezpalletRevivePrimitivesCode, data: Bytes | string | Uint8Array, salt: Option | null | Uint8Array | U8aFixed | string) => Observable>; + /** + * Returns the nonce of the given `[H160]` address. + **/ + nonce: AugmentedCall Observable>; + /** + * The address used to call the runtime's pallets dispatchables + **/ + runtimePalletsAddress: AugmentedCall Observable>; + /** + * Traces the execution of an entire block and returns call traces.,, This is intended to be called through `state_call` to replay the block from the, parent block.,, See eth-rpc `debug_traceBlockByNumber` for usage. + **/ + traceBlock: AugmentedCall Observable>>>; + /** + * Dry run and return the trace of the given call.,, See eth-rpc `debug_traceCall` for usage. + **/ + traceCall: AugmentedCall Observable>>; + /** + * Traces the execution of a specific transaction within a block.,, This is intended to be called through `state_call` to replay the block from the, parent hash up to the transaction.,, See eth-rpc `debug_traceTransaction` for usage. + **/ + traceTx: AugmentedCall Observable>>; + /** + * Upload new code without instantiating a contract from it.,, See [`crate::Pallet::bare_upload_code`]. + **/ + uploadCode: AugmentedCall | null | Uint8Array | u128 | AnyNumber) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xccd9de6396c899ca/ */ + runtimeViewFunction: { + /** + * Execute a view function query. + **/ + executeViewFunction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/ */ + sessionKeys: { + /** + * Decode the given public session keys.,, Returns the list of public raw public keys + key type. + **/ + decodeSessionKeys: AugmentedCall Observable>>>>; + /** + * Generate a set of session keys with optionally using the given seed., The keys should be stored within the keystore exposed via runtime, externalities.,, The seed needs to be a valid `utf8` string.,, Returns the concatenated SCALE encoded public keys. + **/ + generateSessionKeys: AugmentedCall | null | Uint8Array | Bytes | string) => Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x18ef58a3b67ba770/ */ + stakingApi: { + /** + * Returns the page count of exposures for a validator `account` in a given era. + **/ + erasStakersPageCount: AugmentedCall Observable>; + /** + * Returns the nominations quota for a nominator with a given balance. + **/ + nominationsQuota: AugmentedCall Observable>; + /** + * Returns true if validator `account` has pages to be claimed for the given era. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/ */ + taggedTransactionQueue: { + /** + * Validate the transaction.,, This method is invoked by the transaction pool to learn details about given transaction., The implementation should make sure to verify the correctness of the transaction, against current state. The given `block_hash` corresponds to the hash of the block, that is used as current state.,, Note that this call may be performed by the pool multiple times and transactions, might be verified in any possible order. + **/ + validateTransaction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/ */ + transactionPaymentApi: { + /** + * + **/ + queryFeeDetails: AugmentedCall Observable>; + /** + * + **/ + queryInfo: AugmentedCall Observable>; + /** + * + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/ */ + transactionPaymentCallApi: { + /** + * Query fee details of a given encoded `Call`. + **/ + queryCallFeeDetails: AugmentedCall Observable>; + /** + * Query information of a dispatch class, weight, and fee of a given encoded `Call`. + **/ + queryCallInfo: AugmentedCall Observable>; + /** + * Query the output of the current `LengthToFee` given some input. + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * Query the output of the current `WeightToFee` given some input. + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x2609be83ac4468dc/ */ + trustedQueryApi: { + /** + * Returns if the location is a trusted reserve for the asset.,, # Arguments, * `asset`: `VersionedAsset`., * `location`: `VersionedLocation`. + **/ + isTrustedReserve: AugmentedCall Observable>>; + /** + * Returns if the asset can be teleported to the location.,, # Arguments, * `asset`: `VersionedAsset`., * `location`: `VersionedLocation`. + **/ + isTrustedTeleporter: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6ff52ee858e6c5bd/ */ + xcmPaymentApi: { + /** + * Returns a list of acceptable payment assets.,, # Arguments,, * `xcm_version`: Version. + **/ + queryAcceptablePaymentAssets: AugmentedCall Observable, XcmRuntimeApisFeesError>>>; + /** + * Get delivery fees for sending a specific `message` to a `destination`., These always come in a specific asset, defined by the chain.,, # Arguments, * `message`: The message that'll be sent, necessary because most delivery fees are based on the, size of the message., * `destination`: The destination to send the message to. Different destinations may use, different senders that charge different fees. + **/ + queryDeliveryFees: AugmentedCall Observable>>; + /** + * Converts a weight into a fee for the specified `AssetId`.,, # Arguments,, * `weight`: convertible `Weight`., * `asset`: `VersionedAssetId`. + **/ + queryWeightToAssetFee: AugmentedCall Observable>>; + /** + * Returns a weight needed to execute a XCM.,, # Arguments,, * `message`: `VersionedXcm`. + **/ + queryXcmWeight: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/packages/api-augment/src/assetHubDicle/tx.ts b/packages/api-augment/src/assetHubDicle/tx.ts new file mode 100644 index 0000000..9f330e3 --- /dev/null +++ b/packages/api-augment/src/assetHubDicle/tx.ts @@ -0,0 +1,6889 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/submittable'; + +import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@pezkuwi/api-base/types'; +import type { Bytes, Compact, Option, U256, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, MultiAddress, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { AssetHubDicleRuntimeOriginCaller, AssetHubDicleRuntimeProxyType, AssetHubDicleRuntimeRuntimeParameters, AssetHubDicleRuntimeRuntimeTask, AssetHubDicleRuntimeSessionKeys, AssetHubDicleRuntimeStakingNposCompactSolution24, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime, PezkuwiRuntimeCommonClaimsEcdsaSignature, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezpalletAhMigratorMigrationStage, PezpalletBalancesAdjustmentDirection, PezpalletConvictionVotingConviction, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiBlockAdminOperation, PezpalletElectionProviderMultiBlockPagedRawSolution, PezpalletMigrationsHistoricCleanupSelector, PezpalletMigrationsMigrationCursor, PezpalletMultisigTimepoint, PezpalletNftsAttributeNamespace, PezpalletNftsCancelAttributesApprovalWitness, PezpalletNftsCollectionConfig, PezpalletNftsDestroyWitness, PezpalletNftsItemConfig, PezpalletNftsItemTip, PezpalletNftsMintSettings, PezpalletNftsMintWitness, PezpalletNftsPreSignedAttributes, PezpalletNftsPreSignedMint, PezpalletNftsPriceWithDirection, PezpalletNominationPoolsBondExtra, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpPerbill, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsPoolState, PezpalletRcMigratorAccountsAccount, PezpalletRcMigratorBountiesRcBountiesMessage, PezpalletRcMigratorChildBountiesPortableChildBountiesMessage, PezpalletRcMigratorClaimsRcClaimsMessage, PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage, PezpalletRcMigratorCrowdloanRcCrowdloanMessage, PezpalletRcMigratorIndicesRcIndicesIndex, PezpalletRcMigratorMigrationFinishedData, PezpalletRcMigratorMultisigRcMultisig, PezpalletRcMigratorPreimageChunksRcPreimageChunk, PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus, PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus, PezpalletRcMigratorProxyRcProxy, PezpalletRcMigratorProxyRcProxyAnnouncement, PezpalletRcMigratorQueuePriority, PezpalletRcMigratorRecoveryPortableRecoveryMessage, PezpalletRcMigratorReferendaReferendaMessage, PezpalletRcMigratorSchedulerRcSchedulerMessage, PezpalletRcMigratorSchedulerSchedulerAgendaMessage, PezpalletRcMigratorSocietyPortableSocietyMessage, PezpalletRcMigratorStakingBagsListPortableBagsListMessage, PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage, PezpalletRcMigratorStakingMessagePortableStakingMessage, PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage, PezpalletRcMigratorTreasuryPortableTreasuryMessage, PezpalletRcMigratorVestingRcVestingSchedule, PezpalletReferendaReferendumInfoRcPalletsOrigin, PezpalletRemoteProxyRemoteProxyProof, PezpalletStakingAsyncLedgerUnlockChunk, PezpalletStakingAsyncPezpalletConfigOpPerbill, PezpalletStakingAsyncPezpalletConfigOpPercent, PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncRcClientOffence, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletStateTrieMigrationProgress, PezpalletUniquesDestroyWitness, PezpalletVestingVestingInfo, PezspNposElectionsElectionScore, PezspRuntimeMultiSignature, PezspWeightsWeightV2Weight, StagingXcmExecutorAssetTransferTransferType, StagingXcmV5Location, TeyrchainsCommonPayVersionedLocatableAccount, XcmV3WeightLimit, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = SubmittableExtrinsicFunction; + +declare module '@pezkuwi/api-base/types/submittable' { + interface AugmentedSubmittables { + ahMigrator: { + /** + * Finish the migration. + * + * This is typically called by the Relay Chain to signal the migration has finished. + * + * The `data` parameter might be `None` if we are running the migration for a second time + * for some pallets and have already performed the checking account balance correction, + * so we do not need to do it this time. + **/ + finishMigration: AugmentedSubmittable<(data: Option | null | Uint8Array | PezpalletRcMigratorMigrationFinishedData) => SubmittableExtrinsic, [Option]>; + /** + * Set the migration stage. + * + * This call is intended for emergency use only and is guarded by the + * [`Config::AdminOrigin`]. + **/ + forceSetStage: AugmentedSubmittable<(stage: PezpalletAhMigratorMigrationStage) => SubmittableExtrinsic, [PezpalletAhMigratorMigrationStage]>; + /** + * Receive accounts from the Relay Chain. + * + * The accounts sent with `pallet_rc_migrator::Pallet::migrate_accounts` function. + **/ + receiveAccounts: AugmentedSubmittable<(accounts: Vec | (PezpalletRcMigratorAccountsAccount)[]) => SubmittableExtrinsic, [Vec]>; + receiveAssetRates: AugmentedSubmittable<(rates: Vec> | ([PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128 | AnyNumber | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + receiveBagsListMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingBagsListPortableBagsListMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveBountiesMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorBountiesRcBountiesMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveChildBountiesMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorChildBountiesPortableChildBountiesMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveClaims: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorClaimsRcClaimsMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveConvictionVotingMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveCrowdloanMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorCrowdloanRcCrowdloanMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveDelegatedStakingMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveIndices: AugmentedSubmittable<(indices: Vec | (PezpalletRcMigratorIndicesRcIndicesIndex)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive multisigs from the Relay Chain. + * + * This will be called from an XCM `Transact` inside a DMP from the relay chain. The + * multisigs were prepared by + * `pallet_rc_migrator::multisig::MultisigMigrator::migrate_many`. + **/ + receiveMultisigs: AugmentedSubmittable<(accounts: Vec | (PezpalletRcMigratorMultisigRcMultisig)[]) => SubmittableExtrinsic, [Vec]>; + receiveNomPoolsMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage)[]) => SubmittableExtrinsic, [Vec]>; + receivePreimageChunks: AugmentedSubmittable<(chunks: Vec | (PezpalletRcMigratorPreimageChunksRcPreimageChunk)[]) => SubmittableExtrinsic, [Vec]>; + receivePreimageLegacyStatus: AugmentedSubmittable<(legacyStatus: Vec | (PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus)[]) => SubmittableExtrinsic, [Vec]>; + receivePreimageRequestStatus: AugmentedSubmittable<(requestStatus: Vec | (PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive proxy announcements from the Relay Chain. + **/ + receiveProxyAnnouncements: AugmentedSubmittable<(announcements: Vec | (PezpalletRcMigratorProxyRcProxyAnnouncement)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive proxies from the Relay Chain. + **/ + receiveProxyProxies: AugmentedSubmittable<(proxies: Vec | (PezpalletRcMigratorProxyRcProxy)[]) => SubmittableExtrinsic, [Vec]>; + receiveRecoveryMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorRecoveryPortableRecoveryMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveReferendaMetadata: AugmentedSubmittable<(metadata: Vec> | ([u32 | AnyNumber | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Receive referendum counts, deciding counts, votes for the track queue. + **/ + receiveReferendaValues: AugmentedSubmittable<(values: Vec | (PezpalletRcMigratorReferendaReferendaMessage)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive referendums from the Relay Chain. + **/ + receiveReferendums: AugmentedSubmittable<(referendums: Vec> | ([u32 | AnyNumber | Uint8Array, PezpalletReferendaReferendumInfoRcPalletsOrigin])[]) => SubmittableExtrinsic, [Vec>]>; + receiveSchedulerAgendaMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorSchedulerSchedulerAgendaMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveSchedulerMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorSchedulerRcSchedulerMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveSocietyMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorSocietyPortableSocietyMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveStakingMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingMessagePortableStakingMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveTreasuryMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorTreasuryPortableTreasuryMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveVestingSchedules: AugmentedSubmittable<(schedules: Vec | (PezpalletRcMigratorVestingRcVestingSchedule)[]) => SubmittableExtrinsic, [Vec]>; + /** + * XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the + * [Config::SendXcm] router which will be able to send messages to the Relay Chain during + * the migration. + **/ + sendXcmMessage: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Set the DMP queue priority configuration. + * + * Can only be called by the `AdminOrigin`. + **/ + setDmpQueuePriority: AugmentedSubmittable<(updated: PezpalletRcMigratorQueuePriority) => SubmittableExtrinsic, [PezpalletRcMigratorQueuePriority]>; + /** + * Set the manager account id. + * + * The manager has the similar to [`Config::AdminOrigin`] privileges except that it + * can not set the manager account id via `set_manager` call. + **/ + setManager: AugmentedSubmittable<(updated: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [Option]>; + /** + * Start the data migration. + * + * This is typically called by the Relay Chain to start the migration on the Asset Hub and + * receive a handshake message indicating the Asset Hub's readiness. + **/ + startMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + ahOps: { + /** + * Transfer the balance from the pre-migration treasury account to the post-migration + * treasury account. + * + * This call can only be called after the migration is completed. + **/ + transferToPostMigrationTreasury: AugmentedSubmittable<(assetId: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Unreserve the deposit that was taken for creating a crowdloan. + * + * This can be called once either: + * - The crowdloan failed to win an auction and timed out + * - Won an auction, all leases expired and all contributions are withdrawn + * + * Can be called by any signed origin. The condition that all contributions are withdrawn + * is in place since the reserve acts as a storage deposit. + **/ + unreserveCrowdloanReserve: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, depositor: Option | null | Uint8Array | AccountId32 | string, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Option, u32]>; + /** + * Unreserve the deposit that was taken for creating a crowdloan. + * + * This can be called by any signed origin. It unreserves the lease deposit on the account + * that won the lease auction. It can be unreserved once all leases expired. Note that it + * will be called automatically from `withdraw_crowdloan_contribution` for the matching + * crowdloan account. + * + * Solo bidder accounts that won lease auctions can use this to unreserve their amount. + **/ + unreserveLeaseDeposit: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, depositor: Option | null | Uint8Array | AccountId32 | string, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Option, u32]>; + /** + * Withdraw the contribution of a finished crowdloan. + * + * A crowdloan contribution can be withdrawn if either: + * - The crowdloan failed to in an auction and timed out + * - Won an auction and all leases expired + * + * Can be called by any signed origin. + **/ + withdrawCrowdloanContribution: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, depositor: Option | null | Uint8Array | AccountId32 | string, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Option, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetConversion: { + /** + * Provide liquidity into the pool of `asset1` and `asset2`. + * NOTE: an optimal amount of asset1 and asset2 will be calculated and + * might be different than the provided `amount1_desired`/`amount2_desired` + * thus you should provide the min amount you're happy to provide. + * Params `amount1_min`/`amount2_min` represent that. + * `mint_to` will be sent the liquidity tokens that represent this share of the pool. + * + * NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity, + * batch an atomic call with [`Pallet::add_liquidity`] and + * [`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`] + * calls to render the liquidity withdrawable and rectify the exchange rate. + * + * Once liquidity is added, someone may successfully call + * [`Pallet::swap_exact_tokens_for_tokens`]. + **/ + addLiquidity: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, amount1Desired: u128 | AnyNumber | Uint8Array, amount2Desired: u128 | AnyNumber | Uint8Array, amount1Min: u128 | AnyNumber | Uint8Array, amount2Min: u128 | AnyNumber | Uint8Array, mintTo: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location, u128, u128, u128, u128, AccountId32]>; + /** + * Creates an empty liquidity pool and an associated new `lp_token` asset + * (the id of which is returned in the `Event::PoolCreated` event). + * + * Once a pool is created, someone may [`Pallet::add_liquidity`] to it. + **/ + createPool: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location]>; + /** + * Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be + * burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive` + * it's possible to control the min amount of returned tokens you're happy with. + **/ + removeLiquidity: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, lpTokenBurn: u128 | AnyNumber | Uint8Array, amount1MinReceive: u128 | AnyNumber | Uint8Array, amount2MinReceive: u128 | AnyNumber | Uint8Array, withdrawTo: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location, u128, u128, u128, AccountId32]>; + /** + * Swap the exact amount of `asset1` into `asset2`. + * `amount_out_min` param allows you to specify the min amount of the `asset2` + * you're happy to receive. + * + * [`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called + * for a quote. + **/ + swapExactTokensForTokens: AugmentedSubmittable<(path: Vec | (StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array)[], amountIn: u128 | AnyNumber | Uint8Array, amountOutMin: u128 | AnyNumber | Uint8Array, sendTo: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Vec, u128, u128, AccountId32, bool]>; + /** + * Swap any amount of `asset1` to get the exact amount of `asset2`. + * `amount_in_max` param allows to specify the max amount of the `asset1` + * you're happy to provide. + * + * [`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called + * for a quote. + **/ + swapTokensForExactTokens: AugmentedSubmittable<(path: Vec | (StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array)[], amountOut: u128 | AnyNumber | Uint8Array, amountInMax: u128 | AnyNumber | Uint8Array, sendTo: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Vec, u128, u128, AccountId32, bool]>; + /** + * Touch an existing pool to fulfill prerequisites before providing liquidity, such as + * ensuring that the pool's accounts are in place. It is typically useful when a pool + * creator removes the pool's accounts and does not provide a liquidity. This action may + * involve holding assets from the caller as a deposit for creating the pool's accounts. + * + * The origin must be Signed. + * + * - `asset1`: The asset ID of an existing pool with a pair (asset1, asset2). + * - `asset2`: The asset ID of an existing pool with a pair (asset1, asset2). + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetRate: { + /** + * Initialize a conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + create: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Remove an existing conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + remove: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]>; + /** + * Update the conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + update: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable<(direction: PezpalletBalancesAdjustmentDirection, delta: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBalancesAdjustmentDirection, Compact]>; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Compact]>; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128]>; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable<(who: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bounties: { + /** + * Accept the curator role for a bounty. + * A deposit will be reserved from curator and refund upon successful payout. + * + * May only be called from the curator. + * + * ## Complexity + * - O(1). + **/ + acceptCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve a bounty proposal. At a later time, the bounty will be funded and become active + * and the original deposit will be returned. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + approveBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve bountry and propose a curator simultaneously. + * This call is a shortcut to calling `approve_bounty` and `propose_curator` separately. + * + * May only be called from `T::SpendOrigin`. + * + * - `bounty_id`: Bounty ID to approve. + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * + * ## Complexity + * - O(1). + **/ + approveBountyWithCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Award bounty to a beneficiary account. The beneficiary will be able to claim the funds + * after a delay. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to award. + * - `beneficiary`: The beneficiary account whom will receive the payout. + * + * ## Complexity + * - O(1). + **/ + awardBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Claim the payout from an awarded bounty after payout delay. + * + * The dispatch origin for this call must be the beneficiary of this bounty. + * + * - `bounty_id`: Bounty ID to claim. + * + * ## Complexity + * - O(1). + **/ + claimBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel a proposed or active bounty. All the funds will be sent to treasury and + * the curator deposit will be unreserved if possible. + * + * Only `T::RejectOrigin` is able to cancel a bounty. + * + * - `bounty_id`: Bounty ID to cancel. + * + * ## Complexity + * - O(1). + **/ + closeBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Extend the expiry time of an active bounty. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to extend. + * - `remark`: additional information. + * + * ## Complexity + * - O(1). + **/ + extendBountyExpiry: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Poke the deposit reserved for creating a bounty proposal. + * + * This can be used by accounts to update their reserved amount. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `bounty_id`: The bounty id for which to adjust the deposit. + * + * If the deposit is updated, the difference will be reserved/unreserved from the + * proposer's account. + * + * The transaction is made free if the deposit is updated and paid otherwise. + * + * Emits `DepositPoked` if the deposit is updated. + **/ + pokeDeposit: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose a new bounty. + * + * The dispatch origin for this call must be _Signed_. + * + * Payment: `TipReportDepositBase` will be reserved from the origin account, as well as + * `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval, + * or slashed when rejected. + * + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * - `value`: The total payment amount of this bounty, curator fee included. + * - `description`: The description of this bounty. + **/ + proposeBounty: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Propose a curator to a funded bounty. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + proposeCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a bounty. + * + * This function can only be called by the `RejectOrigin` a signed origin. + * + * If this function is called by the `RejectOrigin`, we assume that the curator is + * malicious or inactive. As a result, we will slash the curator when possible. + * + * If the origin is the curator, we take this as a sign they are unable to do their job and + * they willingly give up. We could slash them, but for now we allow them to recover their + * deposit and exit without issue. (We may want to change this if it is abused.) + * + * Finally, the origin can be anyone if and only if the curator is "inactive". This allows + * anyone in the community to call out that a curator is not doing their due diligence, and + * we should pick a new curator. In this case the curator should also be slashed. + * + * ## Complexity + * - O(1). + **/ + unassignCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + childBounties: { + /** + * Accept the curator role for the child-bounty. + * + * The dispatch origin for this call must be the curator of this + * child-bounty. + * + * A deposit will be reserved from the curator and refund upon + * successful payout or cancellation. + * + * Fee for curator is deducted from curator fee of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "CuratorProposed" state, for processing the + * call. And state of child-bounty is moved to "Active" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + acceptCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Add a new child-bounty. + * + * The dispatch origin for this call must be the curator of parent + * bounty and the parent bounty must be in "active" state. + * + * Child-bounty gets added successfully & fund gets transferred from + * parent bounty to child-bounty account, if parent bounty has enough + * funds, else the call fails. + * + * Upper bound to maximum number of active child bounties that can be + * added are managed via runtime trait config + * [`Config::MaxActiveChildBountyCount`]. + * + * If the call is success, the status of child-bounty is updated to + * "Added". + * + * - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added. + * - `value`: Value for executing the proposal. + * - `description`: Text description for the child-bounty. + **/ + addChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Bytes]>; + /** + * Award child-bounty to a beneficiary. + * + * The beneficiary will be able to claim the funds after a delay. + * + * The dispatch origin for this call must be the parent curator or + * curator of this child-bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in active state, for processing the call. And + * state of child-bounty is moved to "PendingPayout" on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `beneficiary`: Beneficiary account. + **/ + awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress]>; + /** + * Claim the payout from an awarded child-bounty after payout delay. + * + * The dispatch origin for this call may be any signed origin. + * + * Call works independent of parent bounty state, No need for parent + * bounty to be in active state. + * + * The Beneficiary is paid out with agreed bounty value. Curator fee is + * paid & curator deposit is unreserved. + * + * Child-bounty must be in "PendingPayout" state, for processing the + * call. And instance of child-bounty is removed from the state on + * successful call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Cancel a proposed or active child-bounty. Child-bounty account funds + * are transferred to parent bounty account. The child-bounty curator + * deposit may be unreserved if possible. + * + * The dispatch origin for this call must be either parent curator or + * `T::RejectOrigin`. + * + * If the state of child-bounty is `Active`, curator deposit is + * unreserved. + * + * If the state of child-bounty is `PendingPayout`, call fails & + * returns `PendingPayout` error. + * + * For the origin other than T::RejectOrigin, parent bounty must be in + * active state, for this child-bounty call to work. For origin + * T::RejectOrigin execution is forced. + * + * Instance of child-bounty is removed from the state on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Propose curator for funded child-bounty. + * + * The dispatch origin for this call must be curator of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "Added" state, for processing the call. And + * state of child-bounty is moved to "CuratorProposed" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `curator`: Address of child-bounty curator. + * - `fee`: payment fee to child-bounty curator for execution. + **/ + proposeCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a child-bounty. + * + * The dispatch origin for this call can be either `RejectOrigin`, or + * the curator of the parent bounty, or any signed origin. + * + * For the origin other than T::RejectOrigin and the child-bounty + * curator, parent bounty must be in active state, for this call to + * work. We allow child-bounty curator and T::RejectOrigin to execute + * this call irrespective of the parent bounty state. + * + * If this function is called by the `RejectOrigin` or the + * parent bounty curator, we assume that the child-bounty curator is + * malicious or inactive. As a result, child-bounty curator deposit is + * slashed. + * + * If the origin is the child-bounty curator, we take this as a sign + * that they are unable to do their job, and are willingly giving up. + * We could slash the deposit, but for now we allow them to unreserve + * their deposit and exit without issue. (We may want to change this if + * it is abused.) + * + * Finally, the origin can be anyone iff the child-bounty curator is + * "inactive". Expiry update due of parent bounty is used to estimate + * inactive state of child-bounty curator. + * + * This allows anyone in the community to call out that a child-bounty + * curator is not doing their due diligence, and we should pick a new + * one. In this case the child-bounty curator deposit is slashed. + * + * State of child-bounty is moved to Added state on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + unassignCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + claims: { + /** + * Attest to a statement, needed to finalize the claims process. + * + * WARNING: Insecure unless your chain includes `PrevalidateAttests` as a + * `TransactionExtension`. + * + * Unsigned Validation: + * A call to attest is deemed valid if the sender has a `Preclaim` registered + * and provides a `statement` which is expected for the account. + * + * Parameters: + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to do pre-validation on `attest` call. + * + * Total Complexity: O(1) + * + **/ + attest: AugmentedSubmittable<(statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make a claim to collect your DOTs. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to claim is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address) + * + * and `address` matches the `dest` account. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim` call. + * + * Total Complexity: O(1) + * + **/ + claim: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature]>; + /** + * Make a claim to collect your DOTs by signing a statement. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to `claim_attest` is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address)(statement) + * + * and `address` matches the `dest` account; the `statement` must match that which is + * expected according to your purchase arrangement. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim_attest` call. + * + * Total Complexity: O(1) + * + **/ + claimAttest: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature, statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature, Bytes]>; + /** + * Mint a new claim to collect DOTs. + * + * The dispatch origin for this call must be _Root_. + * + * Parameters: + * - `who`: The Ethereum address allowed to collect this claim. + * - `value`: The number of DOTs that will be claimed. + * - `vesting_schedule`: An optional vesting schedule for these DOTs. + * + * + * The weight of this call is invariant over the input parameters. + * We assume worst case that both vesting and statement is being inserted. + * + * Total Complexity: O(1) + * + **/ + mintClaim: AugmentedSubmittable<(who: PezkuwiRuntimeCommonClaimsEthereumAddress, value: u128 | AnyNumber | Uint8Array, vestingSchedule: Option> | null | Uint8Array | ITuple<[u128, u128, u32]> | [u128 | AnyNumber | Uint8Array, u128 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], statement: Option | null | Uint8Array | PezkuwiRuntimeCommonClaimsStatementKind) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, u128, Option>, Option]>; + moveClaim: AugmentedSubmittable<(old: PezkuwiRuntimeCommonClaimsEthereumAddress, updated: PezkuwiRuntimeCommonClaimsEthereumAddress, maybePreclaim: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsEthereumAddress, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + collatorSelection: { + /** + * Add a new account `who` to the list of `Invulnerables` collators. `who` must have + * registered session keys. If `who` is a candidate, they will be removed. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + addInvulnerable: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Deregister `origin` as a collator candidate. Note that the collator can only leave on + * session change. The `CandidacyBond` will be unreserved immediately. + * + * This call will fail if the total number of candidates would drop below + * `MinEligibleCollators`. + **/ + leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register this account as a collator candidate. The account must (a) already have + * registered session keys and (b) be able to reserve the `CandidacyBond`. + * + * This call is not available to `Invulnerable` collators. + **/ + registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must + * be sorted. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + removeInvulnerable: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Set the candidacy bond amount. + * + * If the candidacy bond is increased by this call, all current candidates which have a + * deposit lower than the new bond will be kicked from the list and get their deposits + * back. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setCandidacyBond: AugmentedSubmittable<(bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Set the ideal number of non-invulnerable collators. If lowering this number, then the + * number of running collators could be higher than this figure. Aside from that edge case, + * there should be no other way to have more candidates than the desired number. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setDesiredCandidates: AugmentedSubmittable<(max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the list of invulnerable (fixed) collators. These collators must do some + * preparation, namely to have registered session keys. + * + * The call will remove any accounts that have not registered keys from the set. That is, + * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as + * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. + * + * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It + * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A + * `batch_all` can also be used to enforce atomicity. If any candidates are included in + * `new`, they should be removed with `remove_invulnerable_candidate` after execution. + * + * Must be called by the `UpdateOrigin`. + **/ + setInvulnerables: AugmentedSubmittable<(updated: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * The caller `origin` replaces a candidate `target` in the collator candidate list by + * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than + * the existing bond of the target it is trying to replace. + * + * This call will fail if the caller is already a collator candidate or invulnerable, the + * caller does not have registered session keys, the target is not a collator candidate, + * and/or the `deposit` amount cannot be reserved. + **/ + takeCandidateSlot: AugmentedSubmittable<(deposit: u128 | AnyNumber | Uint8Array, target: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [u128, AccountId32]>; + /** + * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. + * + * Setting a `new_deposit` that is lower than the current deposit while `origin` is + * occupying a top-`DesiredCandidates` slot is not allowed. + * + * This call will fail if `origin` is not a collator candidate, the updated bond is lower + * than the minimum candidacy bond, and/or the amount cannot be reserved. + **/ + updateBond: AugmentedSubmittable<(newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + convictionVoting: { + /** + * Delegate the voting power (with some given conviction) of the sending account for a + * particular class of polls. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed through + * `remove_vote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `class`: The class of polls to delegate. To delegate multiple classes, multiple calls + * to this function are required. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + delegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PezpalletConvictionVotingConviction, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress, PezpalletConvictionVotingConviction, u128]>; + /** + * Remove a vote for a poll. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the poll was cancelled, because the voter lost the poll or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for poll + * `index`. + * - `index`: The index of poll of the vote to be removed. + * - `class`: The class of the poll. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, clazz: u16 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16, u32]>; + /** + * Remove a vote for a poll. + * + * If: + * - the poll was cancelled, or + * - the poll is ongoing, or + * - the poll has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the poll has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for poll `index`. + * + * - `index`: The index of poll of the vote to be removed. + * - `class`: Optional parameter, if given it indicates the class of the poll. For polls + * which have finished or are cancelled, this must be `Some`. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(clazz: Option | null | Uint8Array | u16 | AnyNumber, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Option, u32]>; + /** + * Undelegate the voting power of the sending account for a particular class of polls. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued has passed. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * - `class`: The class of polls to remove the delegation from. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + undelegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Remove the lock caused by prior voting/delegating which has expired within a particular + * class. + * + * The dispatch origin of this call must be _Signed_. + * + * - `class`: The class of polls to unlock. + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress]>; + /** + * Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `poll_index`: The index of the poll to vote for. + * - `vote`: The vote configuration. + * + * Weight: `O(R)` where R is the number of polls the voter has voted on. + **/ + vote: AugmentedSubmittable<(pollIndex: Compact | AnyNumber | Uint8Array, vote: PezpalletConvictionVotingVoteAccountVote) => SubmittableExtrinsic, [Compact, PezpalletConvictionVotingVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + cumulusXcm: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + foreignAssets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + indices: { + /** + * Assign an previously unassigned index. + * + * Payment: `Deposit` is reserved from the sender account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be claimed. This must not be in use. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + claim: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force an index to an account. This doesn't require a deposit. If the index is already + * held, then any deposit is reimbursed to its current owner. + * + * The dispatch origin for this call must be _Root_. + * + * - `index`: the index to be (re-)assigned. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * - `freeze`: if set to `true`, will freeze the index so it cannot be transferred. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + forceTransfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array, freeze: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, bool]>; + /** + * Free up an index owned by the sender. + * + * Payment: Any previous deposit placed for the index is unreserved in the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must own the index. + * + * - `index`: the index to be freed. This must be owned by the sender. + * + * Emits `IndexFreed` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + free: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Freeze an index so it will always point to the sender account. This consumes the + * deposit. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * - `index`: the index to be frozen in place. + * + * Emits `IndexFrozen` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + freeze: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Poke the deposit reserved for an index. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * The transaction fees is waived if the deposit is changed after poking/reconsideration. + * + * - `index`: the index whose deposit is to be poked/reconsidered. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Assign an index already owned by the sender to another account. The balance reservation + * is effectively transferred to the new account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be re-assigned. This must be owned by the sender. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + transfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable<(messageOrigin: PezcumulusPrimitivesCoreAggregateMessageOrigin, page: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array, weightLimit: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [PezcumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, PezspWeightsWeightV2Weight]>; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable<(messageOrigin: PezcumulusPrimitivesCoreAggregateMessageOrigin, pageIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezcumulusPrimitivesCoreAggregateMessageOrigin, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElection: { + /** + * Manage this pallet. + * + * The origin of this call must be [`Config::AdminOrigin`]. + * + * See [`AdminOperation`] for various operations that are possible. + **/ + manage: AugmentedSubmittable<(op: PezpalletElectionProviderMultiBlockAdminOperation) => SubmittableExtrinsic, [PezpalletElectionProviderMultiBlockAdminOperation]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElectionSigned: { + /** + * Retract a submission. + * + * A portion of the deposit may be returned, based on the [`Config::BailoutGraceRatio`]. + * + * This will fully remove the solution from storage. + **/ + bail: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Clear the data of a submitter form an old round. + * + * The dispatch origin of this call must be signed, and the original submitter. + * + * This can only be called for submissions that end up being discarded, as in they are not + * processed and they end up lingering in the queue. + **/ + clearOldRoundData: AugmentedSubmittable<(round: u32 | AnyNumber | Uint8Array, witnessPages: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Register oneself for an upcoming signed election. + **/ + register: AugmentedSubmittable<(claimedScore: PezspNposElectionsElectionScore) => SubmittableExtrinsic, [PezspNposElectionsElectionScore]>; + /** + * Set the invulnerable list. + * + * Dispatch origin must the the same as [`crate::Config::AdminOrigin`]. + **/ + setInvulnerables: AugmentedSubmittable<(inv: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Submit a single page of a solution. + * + * Must always come after [`Pallet::register`]. + * + * `maybe_solution` can be set to `None` to erase the page. + * + * Collects deposits from the signed origin based on [`Config::DepositBase`] and + * [`Config::DepositPerPage`]. + **/ + submitPage: AugmentedSubmittable<(page: u32 | AnyNumber | Uint8Array, maybeSolution: Option | null | Uint8Array | AssetHubDicleRuntimeStakingNposCompactSolution24) => SubmittableExtrinsic, [u32, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElectionUnsigned: { + /** + * Submit an unsigned solution. + * + * This works very much like an inherent, as only the validators are permitted to submit + * anything. By default validators will compute this call in their `offchain_worker` hook + * and try and submit it back. + * + * This is different from signed page submission mainly in that the solution page is + * verified on the fly. + * + * The `paged_solution` may contain at most [`Config::MinerPages`] pages. They are + * interpreted as msp -> lsp, as per [`crate::Pallet::msp_range_for`]. + * + * For example, if `Pages = 4`, and `MinerPages = 2`, our full snapshot range would be [0, + * 1, 2, 3], with 3 being msp. But, in this case, then the `paged_raw_solution.pages` is + * expected to correspond to `[snapshot(2), snapshot(3)]`. + **/ + submitUnsigned: AugmentedSubmittable<(pagedSolution: PezpalletElectionProviderMultiBlockPagedRawSolution) => SubmittableExtrinsic, [PezpalletElectionProviderMultiBlockPagedRawSolution]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElectionVerifier: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockMigrations: { + /** + * Clears the `Historic` set. + * + * `map_cursor` must be set to the last value that was returned by the + * `HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a + * way that will result in a sensible weight. + **/ + clearHistoric: AugmentedSubmittable<(selector: PezpalletMigrationsHistoricCleanupSelector) => SubmittableExtrinsic, [PezpalletMigrationsHistoricCleanupSelector]>; + /** + * Forces the onboarding of the migrations. + * + * This process happens automatically on a runtime upgrade. It is in place as an emergency + * measurement. The cursor needs to be `None` for this to succeed. + **/ + forceOnboardMbms: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allows root to set an active cursor to forcefully start/forward the migration process. + * + * This is an edge-case version of [`Self::force_set_cursor`] that allows to set the + * `started_at` value to the next block number. Otherwise this would not be possible, since + * `force_set_cursor` takes an absolute block number. Setting `started_at` to `None` + * indicates that the current block number plus one should be used. + **/ + forceSetActiveCursor: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, innerCursor: Option | null | Uint8Array | Bytes | string, startedAt: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u32, Option, Option]>; + /** + * Allows root to set a cursor to forcefully start, stop or forward the migration process. + * + * Should normally not be needed and is only in place as emergency measure. Note that + * restarting the migration process in this manner will not call the + * [`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event. + **/ + forceSetCursor: AugmentedSubmittable<(cursor: Option | null | Uint8Array | PezpalletMigrationsMigrationCursor) => SubmittableExtrinsic, [Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multisig: { + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call_hash`: The hash of the call to be executed. + * + * NOTE: If this is the final approval, you will want to use `as_multi` instead. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, PezspWeightsWeightV2Weight]>; + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * If there are enough, then dispatch the call. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call`: The call to be executed. + * + * NOTE: Unless this is the final approval, you will generally want to use + * `approve_as_multi` instead, since it only requires a hash of the call. + * + * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise + * on success, result is `Ok` and the result from the interior call, if it was executed, + * may be found in the deposited `MultisigExecuted` event. + * + * ## Complexity + * - `O(S + Z + Call)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - The weight of the `call`. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, call: RuntimeCall | IMethod | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Immediately dispatch a multi-signature call using a single approval from the caller. + * + * The dispatch origin for this call must be _Signed_. + * + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multi-signature, but do not participate in the approval process. + * - `call`: The call to be executed. + * + * Result is equivalent to the dispatched result. + * + * ## Complexity + * O(Z + C) where Z is the length of the call and C its execution weight. + **/ + asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Vec, RuntimeCall]>; + /** + * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously + * for this operation will be unreserved on success. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `timepoint`: The timepoint (block number and transaction index) of the first approval + * transaction for this dispatch. + * - `call_hash`: The hash of the call to be executed. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - One event. + * - I/O: 1 read `O(S)`, one remove. + * - Storage: removes one item. + **/ + cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], timepoint: PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, PezpalletMultisigTimepoint, U8aFixed]>; + /** + * Poke the deposit reserved for an existing multisig operation. + * + * The dispatch origin for this call must be _Signed_ and must be the original depositor of + * the multisig operation. + * + * The transaction fee is waived if the deposit amount has changed. + * + * - `threshold`: The total number of approvals needed for this multisig. + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multisig. + * - `call_hash`: The hash of the call this deposit is reserved for. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, U8aFixed]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nftFractionalization: { + /** + * Lock the NFT and mint a new fungible asset. + * + * The dispatch origin for this call must be Signed. + * The origin must be the owner of the NFT they are trying to lock. + * + * `Deposit` funds of sender are reserved. + * + * - `nft_collection_id`: The ID used to identify the collection of the NFT. + * Is used within the context of `pallet_nfts`. + * - `nft_id`: The ID used to identify the NFT within the given collection. + * Is used within the context of `pallet_nfts`. + * - `asset_id`: The ID of the new asset. It must not exist. + * Is used within the context of `pallet_assets`. + * - `beneficiary`: The account that will receive the newly created asset. + * - `fractions`: The total issuance of the newly created asset class. + * + * Emits `NftFractionalized` event when successful. + **/ + fractionalize: AugmentedSubmittable<(nftCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, assetId: u32 | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fractions: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, MultiAddress, u128]>; + /** + * Burn the total issuance of the fungible asset and return (unlock) the locked NFT. + * + * The dispatch origin for this call must be Signed. + * + * `Deposit` funds will be returned to `asset_creator`. + * + * - `nft_collection_id`: The ID used to identify the collection of the NFT. + * Is used within the context of `pallet_nfts`. + * - `nft_id`: The ID used to identify the NFT within the given collection. + * Is used within the context of `pallet_nfts`. + * - `asset_id`: The ID of the asset being returned and destroyed. Must match + * the original ID of the created asset, corresponding to the NFT. + * Is used within the context of `pallet_assets`. + * - `beneficiary`: The account that will receive the unified NFT. + * + * Emits `NftUnified` event when successful. + **/ + unify: AugmentedSubmittable<(nftCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, assetId: u32 | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u32, u32, MultiAddress, Option]>; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, bidPrice: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u128]>; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, witness: PezpalletNftsCancelAttributesApprovalWitness) => SubmittableExtrinsic, [u32, u32, MultiAddress, PezpalletNftsCancelAttributesApprovalWitness]>; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable<(offeredCollection: u32 | AnyNumber | Uint8Array, offeredItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable<(sendCollection: u32 | AnyNumber | Uint8Array, sendItem: u32 | AnyNumber | Uint8Array, receiveCollection: u32 | AnyNumber | Uint8Array, receiveItem: u32 | AnyNumber | Uint8Array, witnessPrice: Option | null | Uint8Array | PezpalletNftsPriceWithDirection) => SubmittableExtrinsic, [u32, u32, u32, u32, Option]>; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, PezpalletNftsAttributeNamespace, Bytes]>; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [MultiAddress, PezpalletNftsCollectionConfig]>; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable<(offeredCollection: u32 | AnyNumber | Uint8Array, offeredItem: u32 | AnyNumber | Uint8Array, desiredCollection: u32 | AnyNumber | Uint8Array, maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, maybePrice: Option | null | Uint8Array | PezpalletNftsPriceWithDirection, duration: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, Option, Option, u32]>; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, witness: PezpalletNftsDestroyWitness) => SubmittableExtrinsic, [u32, PezpalletNftsDestroyWitness]>; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [u32, PezpalletNftsCollectionConfig]>; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [MultiAddress, PezpalletNftsCollectionConfig]>; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, mintTo: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, itemConfig: PezpalletNftsItemConfig) => SubmittableExtrinsic, [u32, u32, MultiAddress, PezpalletNftsItemConfig]>; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable<(setAs: Option | null | Uint8Array | AccountId32 | string, collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Option, u32, Option, PezpalletNftsAttributeNamespace, Bytes, Bytes]>; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, lockSettings: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u64]>; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, lockMetadata: bool | boolean | Uint8Array, lockAttributes: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, u32, bool, bool]>; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, mintTo: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, witnessData: Option | null | Uint8Array | PezpalletNftsMintWitness) => SubmittableExtrinsic, [u32, u32, MultiAddress, Option]>; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable<(mintData: PezpalletNftsPreSignedMint, signature: PezspRuntimeMultiSignature, signer: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletNftsPreSignedMint, PezspRuntimeMultiSignature, AccountId32]>; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable<(tips: Vec | (PezpalletNftsItemTip)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, items: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable<(maybeCollection: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, PezpalletNftsAttributeNamespace, Bytes, Bytes]>; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable<(data: PezpalletNftsPreSignedAttributes, signature: PezspRuntimeMultiSignature, signer: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletNftsPreSignedAttributes, PezspRuntimeMultiSignature, AccountId32]>; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maxSupply: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes]>; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, price: Option | null | Uint8Array | u128 | AnyNumber, whitelistedBuyer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option, Option]>; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, issuer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string, admin: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string, freezer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, Option, Option, Option]>; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, newOwner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, mintSettings: PezpalletNftsMintSettings) => SubmittableExtrinsic, [u32, PezpalletNftsMintSettings]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nominationPools: { + /** + * Top up the deficit or withdraw the excess ED from the pool. + * + * When a pool is created, the pool depositor transfers ED to the reward account of the + * pool. ED is subject to change and over time, the deposit in the reward account may be + * insufficient to cover the ED deficit of the pool or vice-versa where there is excess + * deposit to the pool. This call allows anyone to adjust the ED deposit of the + * pool by either topping up the deficit or claiming the excess. + **/ + adjustPoolDeposit: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Apply a pending slash on a member. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * The pending slash amount of the member must be equal or more than `ExistentialDeposit`. + * This call can be dispatched permissionlessly (i.e. by any account). If the execution + * is successful, fee is refunded and caller may be rewarded with a part of the slash + * based on the [`crate::pallet::Config::StakeAdapter`] configuration. + **/ + applySlash: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Bond `extra` more funds from `origin` into the pool to which they already belong. + * + * Additional funds can come from either the free balance of the account, of from the + * accumulated rewards, see [`BondExtra`]. + * + * Bonding extra funds implies an automatic payout of all pending rewards as well. + * See `bond_extra_other` to bond pending rewards of `other` members. + **/ + bondExtra: AugmentedSubmittable<(extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [PezpalletNominationPoolsBondExtra]>; + /** + * `origin` bonds funds from `extra` for some pool member `member` into their respective + * pools. + * + * `origin` can bond extra funds from free balance or pending rewards when `origin == + * other`. + * + * In the case of `origin != other`, `origin` can only bond extra pending rewards of + * `other` members assuming set_claim_permission for the given member is + * `PermissionlessCompound` or `PermissionlessAll`. + **/ + bondExtraOther: AugmentedSubmittable<(member: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [MultiAddress, PezpalletNominationPoolsBondExtra]>; + /** + * Chill on behalf of the pool. + * + * The dispatch origin of this call can be signed by the pool nominator or the pool + * root role, same as [`Pallet::nominate`]. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch: + * * When pool depositor has less than `MinNominatorBond` staked, otherwise pool members + * are unable to unbond. + * + * # Conditions for permissioned dispatch: + * * The caller is the pool's nominator or root. + **/ + chill: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim pending commission. + * + * The `root` role of the pool is _always_ allowed to claim the pool's commission. + * + * If the pool has set `CommissionClaimPermission::Permissionless`, then any account can + * trigger the process of claiming the pool's commission. + * + * If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only + * accounts + * * `acc`, and + * * the pool's root account + * + * may call this extrinsic on behalf of the pool. + * + * Pending commissions are paid out and added to the total claimed commission. + * The total pending commission is reset to zero. + **/ + claimCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * A bonded member can use this to claim their payout based on the rewards that the pool + * has accumulated since their last claimed payout (OR since joining if this is their first + * time claiming rewards). The payout will be transferred to the member's account. + * + * The member will earn rewards pro rata based on the members stake vs the sum of the + * members in the pools stake. Rewards do not "expire". + * + * See `claim_payout_other` to claim rewards on behalf of some `other` pool member. + **/ + claimPayout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * `origin` can claim payouts on some pool member `other`'s behalf. + * + * Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim + * permission for this call to be successful. + **/ + claimPayoutOther: AugmentedSubmittable<(other: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Create a new delegation pool. + * + * # Arguments + * + * * `amount` - The amount of funds to delegate to the pool. This also acts of a sort of + * deposit since the pools creator cannot fully unbond funds until the pool is being + * destroyed. + * * `index` - A disambiguation index for creating the account. Likely only useful when + * creating multiple pools in the same extrinsic. + * * `root` - The account to set as [`PoolRoles::root`]. + * * `nominator` - The account to set as the [`PoolRoles::nominator`]. + * * `bouncer` - The account to set as the [`PoolRoles::bouncer`]. + * + * # Note + * + * In addition to `amount`, the caller will transfer the existential deposit; so the caller + * needs at have at least `amount + existential_deposit` transferable. + **/ + create: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Create a new delegation pool with a previously used pool id + * + * # Arguments + * + * same as `create` with the inclusion of + * * `pool_id` - `A valid PoolId. + **/ + createWithPoolId: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, u32]>; + /** + * Stake funds with a pool. The amount to bond is delegated (or transferred based on + * [`adapter::StakeStrategyType`]) from the member to the pool account and immediately + * increases the pool's bond. + * + * The method of transferring the amount to the pool account is determined by + * [`adapter::StakeStrategyType`]. If the pool is configured to use + * [`adapter::StakeStrategyType::Delegate`], the funds remain in the account of + * the `origin`, while the pool gains the right to use these funds for staking. + * + * # Note + * + * * An account can only be a member of a single pool. + * * An account cannot join the same pool multiple times. + * * This call will *not* dust the member account, so the member must have at least + * `existential deposit + amount` in their account. + * * Only a pool with [`PoolState::Open`] can be joined + **/ + join: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Migrates delegated funds from the pool account to the `member_account`. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This is a permission-less call and refunds any fee if claim is successful. + * + * If the pool has migrated to delegation based staking, the staked tokens of pool members + * can be moved and held in their own account. See [`adapter::DelegateStake`] + **/ + migrateDelegation: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Migrate pool from [`adapter::StakeStrategyType::Transfer`] to + * [`adapter::StakeStrategyType::Delegate`]. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This call can be dispatched permissionlessly, and refunds any fee if successful. + * + * If the pool has already migrated to delegation based staking, this call will fail. + **/ + migratePoolToDelegateStake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Nominate on behalf of the pool. + * + * The dispatch origin of this call must be signed by the pool nominator or the pool + * root role. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * # Note + * + * In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to + * have at least `depositor_min_bond` in the pool to start nominating. + **/ + nominate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, validators: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Call `withdraw_unbonded` for the pools account. This call can be made by any account. + * + * This is useful if there are too many unlocking chunks to call `unbond`, and some + * can be cleared by withdrawing. In the case there are too many unlocking chunks, the user + * would probably see an error like `NoMoreChunks` emitted from the staking system when + * they attempt to unbond. + **/ + poolWithdrawUnbonded: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows a pool member to set a claim permission to allow or disallow permissionless + * bonding and withdrawing. + * + * # Arguments + * + * * `origin` - Member of a pool. + * * `permission` - The permission to be applied. + **/ + setClaimPermission: AugmentedSubmittable<(permission: PezpalletNominationPoolsClaimPermission) => SubmittableExtrinsic, [PezpalletNominationPoolsClaimPermission]>; + /** + * Set the commission of a pool. + * Both a commission percentage and a commission payee must be provided in the `current` + * tuple. Where a `current` of `None` is provided, any current commission will be removed. + * + * - If a `None` is supplied to `new_commission`, existing commission will be removed. + **/ + setCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newCommission: Option> | null | Uint8Array | ITuple<[Perbill, AccountId32]> | [Perbill | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => SubmittableExtrinsic, [u32, Option>]>; + /** + * Set the commission change rate for a pool. + * + * Initial change rate is not bounded, whereas subsequent updates can only be more + * restrictive than the current. + **/ + setCommissionChangeRate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, changeRate: PezpalletNominationPoolsCommissionChangeRate) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsCommissionChangeRate]>; + /** + * Set or remove a pool's commission claim permission. + * + * Determines who can claim the pool's pending commission. Only the `Root` role of the pool + * is able to configure commission claim permissions. + **/ + setCommissionClaimPermission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, permission: Option | null | Uint8Array | PezpalletNominationPoolsCommissionClaimPermission) => SubmittableExtrinsic, [u32, Option]>; + /** + * Set the maximum commission of a pool. + * + * - Initial max can be set to any `Perbill`, and only smaller values thereafter. + * - Current commission will be lowered in the event it is higher than a new max + * commission. + **/ + setCommissionMax: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, maxCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Perbill]>; + /** + * Update configurations for the nomination pools. The origin for this call must be + * [`Config::AdminOrigin`]. + * + * # Arguments + * + * * `min_join_bond` - Set [`MinJoinBond`]. + * * `min_create_bond` - Set [`MinCreateBond`]. + * * `max_pools` - Set [`MaxPools`]. + * * `max_members` - Set [`MaxPoolMembers`]. + * * `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]. + * * `global_max_commission` - Set [`GlobalMaxCommission`]. + **/ + setConfigs: AugmentedSubmittable<(minJoinBond: PezpalletNominationPoolsConfigOpU128, minCreateBond: PezpalletNominationPoolsConfigOpU128, maxPools: PezpalletNominationPoolsConfigOpU32, maxMembers: PezpalletNominationPoolsConfigOpU32, maxMembersPerPool: PezpalletNominationPoolsConfigOpU32, globalMaxCommission: PezpalletNominationPoolsConfigOpPerbill) => SubmittableExtrinsic, [PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpPerbill]>; + /** + * Set a new metadata for the pool. + * + * The dispatch origin of this call must be signed by the bouncer, or the root role of the + * pool. + **/ + setMetadata: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, metadata: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set a new state for the pool. + * + * If a pool is already in the `Destroying` state, then under no condition can its state + * change again. + * + * The dispatch origin of this call must be either: + * + * 1. signed by the bouncer, or the root role of the pool, + * 2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and + * then the state of the pool can be permissionlessly changed to `Destroying`. + **/ + setState: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, state: PezpalletNominationPoolsPoolState) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsPoolState]>; + /** + * Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It + * implicitly collects the rewards one last time, since not doing so would mean some + * rewards would be forfeited. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch. + * + * * The pool is blocked and the caller is either the root or bouncer. This is refereed to + * as a kick. + * * The pool is destroying and the member is not the depositor. + * * The pool is destroying, the member is the depositor and no other members are in the + * pool. + * + * ## Conditions for permissioned dispatch (i.e. the caller is also the + * `member_account`): + * + * * The caller is not the depositor. + * * The caller is the depositor, the pool is destroying and no other members are in the + * pool. + * + * # Note + * + * If there are too many unlocking chunks to unbond with the pool account, + * [`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks. + * The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`] + * to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks + * are available). However, it may not be possible to release the current unlocking chunks, + * in which case, the result of this call will likely be the `NoMoreChunks` error from the + * staking system. + **/ + unbond: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, unbondingPoints: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Update the roles of the pool. + * + * The root is the only entity that can change any of the roles, including itself, + * excluding the depositor, who can never change. + * + * It emits an event, notifying UIs of the role change. This event is quite relevant to + * most pool members and they should be informed of changes to pool roles. + **/ + updateRoles: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newRoot: PezpalletNominationPoolsConfigOpAccountId32, newNominator: PezpalletNominationPoolsConfigOpAccountId32, newBouncer: PezpalletNominationPoolsConfigOpAccountId32) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32]>; + /** + * Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an + * error is returned. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch + * + * * The pool is in destroy mode and the target is not the depositor. + * * The target is the depositor and they are the only member in the sub pools. + * * The pool is blocked and the caller is either the root or bouncer. + * + * # Conditions for permissioned dispatch + * + * * The caller is the target and they are not the depositor. + * + * # Note + * + * - If the target is the depositor, the pool will be destroyed. + * - If the pool has any pending slash, we also try to slash the member before letting them + * withdraw. This calculation adds some weight overhead and is only defensive. In reality, + * pool slashes must have been already applied via permissionless [`Call::apply_slash`]. + **/ + withdrawUnbonded: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainInfo: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainSystem: { + /** + * Set the current validation data. + * + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. + * + * The dispatch origin for this call must be `Inherent` + * + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ + setValidationData: AugmentedSubmittable<(data: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, inboundMessagesData: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData) => SubmittableExtrinsic, [PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData]>; + sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable<(keyValue: AssetHubDicleRuntimeRuntimeParameters) => SubmittableExtrinsic, [AssetHubDicleRuntimeRuntimeParameters]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + polkadotXcm: { + /** + * Authorize another `aliaser` location to alias into the local `origin` making this call. + * The `aliaser` is only authorized until the provided `expiry` block number. + * The call can also be used for a previously authorized alias in order to update its + * `expiry` block number. + * + * Usually useful to allow your local account to be aliased into from a remote location + * also under your control (like your account on another chain). + * + * WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in + * their/your name. Once authorized using this call, the `aliaser` can freely impersonate + * `origin` in XCM programs executed on the local chain. + **/ + addAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, expires: Option | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic, [XcmVersionedLocation, Option]>; + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable<(assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedAssets, XcmVersionedLocation]>; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [XcmVersionedXcm, PezspWeightsWeightV2Weight]>; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable<(suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable<(location: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, version: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Remove all previously authorized `aliaser`s that can alias into the local `origin` + * making this call. + **/ + removeAllAuthorizedAliases: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a previously authorized `aliaser` from the list of locations that can alias into + * the local `origin` making this call. + **/ + removeAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + send: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assetsTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feesTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, customXcmOnDest: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedAssets, StagingXcmExecutorAssetTransferTransferType, XcmVersionedAssetId, StagingXcmExecutorAssetTransferTransferType, XcmVersionedXcm, XcmV3WeightLimit]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + poolAssets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + preimage: { + /** + * Ensure that the bulk of pre-images is upgraded. + * + * The caller pays no fee if at least 90% of pre-images were successfully updated. + **/ + ensureUpdated: AugmentedSubmittable<(hashes: Vec | (H256 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Register a preimage on-chain. + * + * If the preimage was previously requested, no fees or deposits are taken for providing + * the preimage. Otherwise, a deposit is taken proportional to the size of the preimage. + **/ + notePreimage: AugmentedSubmittable<(bytes: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Request a preimage be uploaded to the chain without paying any fees or deposits. + * + * If the preimage requests has already been provided on-chain, we unreserve any deposit + * a user may have paid, and take the control of the preimage out of their hands. + **/ + requestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear an unrequested preimage from the runtime storage. + * + * If `len` is provided, then it will be a much cheaper operation. + * + * - `hash`: The hash of the preimage to be removed from the store. + * - `len`: The length of the preimage of `hash`. + **/ + unnotePreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear a previously made request for a preimage. + * + * NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`. + **/ + unrequestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proxy: { + /** + * Register a proxy account for the sender that is able to make calls on its behalf. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to make a proxy. + * - `proxy_type`: The permissions allowed for this proxy account. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + **/ + addProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: AssetHubDicleRuntimeProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, AssetHubDicleRuntimeProxyType, u32]>; + /** + * Publish the hash of a proxy-call that will be made in the future. + * + * This must be called some number of blocks before the corresponding `proxy` is attempted + * if the delay associated with the proxy relationship is greater than zero. + * + * No more than `MaxPending` announcements may be made at any one time. + * + * This will take a deposit of `AnnouncementDepositFactor` as well as + * `AnnouncementDepositBase` if there are no other pending announcements. + * + * The dispatch origin for this call must be _Signed_ and a proxy of `real`. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + announce: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and + * initialize it with a proxy of `proxy_type` for `origin` sender. + * + * Requires a `Signed` origin. + * + * - `proxy_type`: The type of the proxy that the sender will be registered as over the + * new account. This will almost always be the most permissive `ProxyType` possible to + * allow for maximum flexibility. + * - `index`: A disambiguation index, in case this is called multiple times in the same + * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just + * want to use `0`. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + * + * Fails with `Duplicate` if this has already been called in this transaction, from the + * same sender, with the same parameters. + * + * Fails if there are insufficient funds to pay for deposit. + **/ + createPure: AugmentedSubmittable<(proxyType: AssetHubDicleRuntimeProxyType, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AssetHubDicleRuntimeProxyType, u32, u16]>; + /** + * Removes a previously spawned pure proxy. + * + * WARNING: **All access to this account will be lost.** Any funds held in it will be + * inaccessible. + * + * Requires a `Signed` origin, and the sender account must have been created by a call to + * `create_pure` with corresponding parameters. + * + * - `spawner`: The account that originally called `create_pure` to create this account. + * - `index`: The disambiguation index originally passed to `create_pure`. Probably `0`. + * - `proxy_type`: The proxy type originally passed to `create_pure`. + * - `height`: The height of the chain when the call to `create_pure` was processed. + * - `ext_index`: The extrinsic index in which the call to `create_pure` was processed. + * + * Fails with `NoPermission` in case the caller is not a previously created pure + * account whose `create_pure` call has corresponding parameters. + **/ + killPure: AugmentedSubmittable<(spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: AssetHubDicleRuntimeProxyType, index: u16 | AnyNumber | Uint8Array, height: Compact | AnyNumber | Uint8Array, extIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, AssetHubDicleRuntimeProxyType, u16, Compact, Compact]>; + /** + * Poke / Adjust deposits made for proxies and announcements based on current values. + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * The transaction fee is waived if the deposit amount has changed. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatch the given `call` from an account that the sender is authorised for through + * `add_proxy`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | AssetHubDicleRuntimeProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall]>; + /** + * Dispatch the given `call` from an account that the sender is authorized for through + * `add_proxy`. + * + * Removes any corresponding announcement(s). + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxyAnnounced: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | AssetHubDicleRuntimeProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Option, RuntimeCall]>; + /** + * Remove the given announcement of a delegate. + * + * May be called by a target (proxied) account to remove a call that one of their delegates + * (`delegate`) has announced they want to execute. The deposit is returned. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `delegate`: The account that previously announced the call. + * - `call_hash`: The hash of the call to be made. + **/ + rejectAnnouncement: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Remove a given announcement. + * + * May be called by a proxy account to remove a call they previously announced and return + * the deposit. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + removeAnnouncement: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Unregister all proxy accounts for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * WARNING: This may be called on accounts created by `create_pure`, however if done, then + * the unreserved fees will be inaccessible. **All access to this account will be lost.** + **/ + removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unregister a proxy account for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to remove as a proxy. + * - `proxy_type`: The permissions currently enabled for the removed proxy account. + **/ + removeProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: AssetHubDicleRuntimeProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, AssetHubDicleRuntimeProxyType, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + recovery: { + /** + * Send a call through a recovered account. + * + * The dispatch origin for this call must be _Signed_ and registered to + * be able to make calls on behalf of the recovered account. + * + * Parameters: + * - `account`: The recovered account you want to make a call on-behalf-of. + * - `call`: The call you want to make with the recovered account. + **/ + asRecovered: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, RuntimeCall]>; + /** + * Cancel the ability to use `as_recovered` for `account`. + * + * The dispatch origin for this call must be _Signed_ and registered to + * be able to make calls on behalf of the recovered account. + * + * Parameters: + * - `account`: The recovered account you are able to call on-behalf-of. + **/ + cancelRecovered: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Allow a successful rescuer to claim their recovered account. + * + * The dispatch origin for this call must be _Signed_ and must be a "rescuer" + * who has successfully completed the account recovery process: collected + * `threshold` or more vouches, waited `delay_period` blocks since initiation. + * + * Parameters: + * - `account`: The lost account that you want to claim has been successfully recovered by + * you. + **/ + claimRecovery: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * As the controller of a recoverable account, close an active recovery + * process for your account. + * + * Payment: By calling this function, the recoverable account will receive + * the recovery deposit `RecoveryDeposit` placed by the rescuer. + * + * The dispatch origin for this call must be _Signed_ and must be a + * recoverable account with an active recovery process for it. + * + * Parameters: + * - `rescuer`: The account trying to rescue this recoverable account. + **/ + closeRecovery: AugmentedSubmittable<(rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Create a recovery configuration for your account. This makes your account recoverable. + * + * Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance + * will be reserved for storing the recovery configuration. This deposit is returned + * in full when the user calls `remove_recovery`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `friends`: A list of friends you trust to vouch for recovery attempts. Should be + * ordered and contain no duplicate values. + * - `threshold`: The number of friends that must vouch for a recovery attempt before the + * account can be recovered. Should be less than or equal to the length of the list of + * friends. + * - `delay_period`: The number of blocks after a recovery attempt is initialized that + * needs to pass before the account can be recovered. + **/ + createRecovery: AugmentedSubmittable<(friends: Vec | (AccountId32 | string | Uint8Array)[], threshold: u16 | AnyNumber | Uint8Array, delayPeriod: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u16, u32]>; + /** + * Initiate the process for recovering a recoverable account. + * + * Payment: `RecoveryDeposit` balance will be reserved for initiating the + * recovery process. This deposit will always be repatriated to the account + * trying to be recovered. See `close_recovery`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `account`: The lost account that you want to recover. This account needs to be + * recoverable (i.e. have a recovery configuration). + **/ + initiateRecovery: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Poke deposits for recovery configurations and / or active recoveries. + * + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `maybe_account`: Optional recoverable account for which you have an active recovery + * and want to adjust the deposit for the active recovery. + * + * This function checks both recovery configuration deposit and active recovery deposits + * of the caller: + * - If the caller has created a recovery configuration, checks and adjusts its deposit + * - If the caller has initiated any active recoveries, and provides the account in + * `maybe_account`, checks and adjusts those deposits + * + * If any deposit is updated, the difference will be reserved/unreserved from the caller's + * account. + * + * The transaction is made free if any deposit is updated and paid otherwise. + * + * Emits `DepositPoked` if any deposit is updated. + * Multiple events may be emitted in case both types of deposits are updated. + **/ + pokeDeposit: AugmentedSubmittable<(maybeAccount: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [Option]>; + /** + * Remove the recovery process for your account. Recovered accounts are still accessible. + * + * NOTE: The user must make sure to call `close_recovery` on all active + * recovery attempts before calling this function else it will fail. + * + * Payment: By calling this function the recoverable account will unreserve + * their recovery configuration deposit. + * (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends) + * + * The dispatch origin for this call must be _Signed_ and must be a + * recoverable account (i.e. has a recovery configuration). + **/ + removeRecovery: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allow ROOT to bypass the recovery process and set a rescuer account + * for a lost account directly. + * + * The dispatch origin for this call must be _ROOT_. + * + * Parameters: + * - `lost`: The "lost account" to be recovered. + * - `rescuer`: The "rescuer account" which can call as the lost account. + **/ + setRecovered: AugmentedSubmittable<(lost: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Allow a "friend" of a recoverable account to vouch for an active recovery + * process for that account. + * + * The dispatch origin for this call must be _Signed_ and must be a "friend" + * for the recoverable account. + * + * Parameters: + * - `lost`: The lost account that you want to recover. + * - `rescuer`: The account trying to rescue the lost account that you want to vouch for. + * + * The combination of these two parameters must point to an active recovery + * process. + **/ + vouchRecovery: AugmentedSubmittable<(lost: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + referenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: AssetHubDicleRuntimeOriginCaller, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [AssetHubDicleRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + remoteProxyRelayChain: { + /** + * Register a given remote proxy proof in the current [`dispatch_context`]. + * + * The registered remote proof can then be used later in the same context to execute a + * remote proxy call. This is for example useful when having a multisig operation. The + * multisig call can use [`Self::remote_proxy_with_registered_proof`] to get an approval by + * the members of the multisig. The final execution of the multisig call should be at least + * a batch of `register_remote_proxy_proof` and the multisig call that uses + * `remote_proxy_with_registered_proof`. This way the final approver can use a recent proof + * to prove the existence of the remote proxy. Otherwise it would require the multisig + * members to approve the call in [`Config::MaxStorageRootsToKeep`] amount of time. + * + * It is supported to register multiple proofs, but the proofs need to be consumed in the + * reverse order as they were registered. Basically this means last in, first out. + * + * The [`dispatch_context`] spans the entire lifetime of a transaction and every call in + * the transaction gets access to the same context. + * + * # Example + * + * ```ignore + * batch([ + * register_remote_proxy_proof, + * as_multisig(remote_proxy_with_registered_proof(transfer)) + * ]) + * ``` + * + * As `proofs` can not be verified indefinitely (the time the storage roots are stored is + * limited) this function provides the possibility to provide a "fresh proof" at time of + * dispatch. As in the example above, this could be useful for multisig operation that + * depend on multiple members to approve a certain action, which can take multiple days. + **/ + registerRemoteProxyProof: AugmentedSubmittable<(proof: PezpalletRemoteProxyRemoteProxyProof) => SubmittableExtrinsic, [PezpalletRemoteProxyRemoteProxyProof]>; + /** + * Dispatch the given `call` from an account that the sender is authorised on a remote + * chain. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + * - `proof`: The proof from the remote chain about the existence of the proxy. + **/ + remoteProxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | AssetHubDicleRuntimeProxyType, call: RuntimeCall | IMethod | string | Uint8Array, proof: PezpalletRemoteProxyRemoteProxyProof) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall, PezpalletRemoteProxyRemoteProxyProof]>; + /** + * Dispatch the given `call` from an account that the sender is authorised on a remote + * chain. + * + * The dispatch origin for this call must be _Signed_. The difference to + * [`Self::remote_proxy`] is that the proof nees to registered before using + * [`Self::register_remote_proxy_proof`] (see for more information). + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + remoteProxyWithRegisteredProof: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | AssetHubDicleRuntimeProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + revive: { + /** + * Makes a call to an account, optionally transferring some balance. + * + * # Parameters + * + * * `dest`: Address of the contract to call. + * * `value`: The balance to transfer from the `origin` to `dest`. + * * `gas_limit`: The gas limit enforced when executing the constructor. + * * `storage_deposit_limit`: The maximum amount of balance that can be charged from the + * caller to pay for the storage consumed. + * * `data`: The input data to pass to the contract. + * + * * If the account is a smart-contract account, the associated code will be + * executed and any value will be transferred. + * * If the account is a regular account, any value will be transferred. + * * If no account exists and the call value is not less than `existential_deposit`, + * a regular account will be created and any value will be transferred. + **/ + call: AugmentedSubmittable<(dest: H160 | string | Uint8Array, value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [H160, Compact, PezspWeightsWeightV2Weight, Compact, Bytes]>; + /** + * Dispatch an `call` with the origin set to the callers fallback address. + * + * Every `AccountId32` can control its corresponding fallback account. The fallback account + * is the `AccountId20` with the last 12 bytes set to `0xEE`. This is essentially a + * recovery function in case an `AccountId20` was used without creating a mapping first. + **/ + dispatchAsFallbackAccount: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + /** + * Same as [`Self::call`], but intended to be dispatched **only** + * by an EVM transaction through the EVM compatibility layer. + **/ + ethCall: AugmentedSubmittable<(dest: H160 | string | Uint8Array, value: U256 | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [H160, U256, PezspWeightsWeightV2Weight, Compact, Bytes]>; + /** + * Same as [`Self::instantiate_with_code`], but intended to be dispatched **only** + * by an EVM transaction through the EVM compatibility layer. + * + * Calling this dispatchable ensures that the origin's nonce is bumped only once, + * via the `CheckNonce` transaction extension. In contrast, [`Self::instantiate_with_code`] + * also bumps the nonce after contract instantiation, since it may be invoked multiple + * times within a batch call transaction. + **/ + ethInstantiateWithCode: AugmentedSubmittable<(value: U256 | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, code: Bytes | string | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [U256, PezspWeightsWeightV2Weight, Compact, Bytes, Bytes]>; + /** + * A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server. + * + * # Parameters + * + * * `payload`: The encoded [`crate::evm::TransactionSigned`]. + * * `gas_limit`: The gas limit enforced during contract execution. + * * `storage_deposit_limit`: The maximum balance that can be charged to the caller for + * storage usage. + * + * # Note + * + * This call cannot be dispatched directly; attempting to do so will result in a failed + * transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the + * runtime converts it into a [`sp_runtime::generic::CheckedExtrinsic`] by recovering the + * signer and validating the transaction. + **/ + ethTransact: AugmentedSubmittable<(payload: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Instantiates a contract from a previously deployed vm binary. + * + * This function is identical to [`Self::instantiate_with_code`] but without the + * code deployment step. Instead, the `code_hash` of an on-chain deployed vm binary + * must be supplied. + **/ + instantiate: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, codeHash: H256 | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Option | null | Uint8Array | U8aFixed | string) => SubmittableExtrinsic, [Compact, PezspWeightsWeightV2Weight, Compact, H256, Bytes, Option]>; + /** + * Instantiates a new contract from the supplied `code` optionally transferring + * some balance. + * + * This dispatchable has the same effect as calling [`Self::upload_code`] + + * [`Self::instantiate`]. Bundling them together provides efficiency gains. Please + * also check the documentation of [`Self::upload_code`]. + * + * # Parameters + * + * * `value`: The balance to transfer from the `origin` to the newly created contract. + * * `gas_limit`: The gas limit enforced when executing the constructor. + * * `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved + * from the caller to pay for the storage consumed. + * * `code`: The contract code to deploy in raw bytes. + * * `data`: The input data to pass to the contract constructor. + * * `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2` + * semantics are used. If `None` then `CRATE1` is used. + * + * + * Instantiation is executed as follows: + * + * - The supplied `code` is deployed, and a `code_hash` is created for that code. + * - If the `code_hash` already exists on the chain the underlying `code` will be shared. + * - The destination address is computed based on the sender, code_hash and the salt. + * - The smart-contract account is created at the computed address. + * - The `value` is transferred to the new account. + * - The `deploy` function is executed in the context of the newly-created account. + **/ + instantiateWithCode: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, code: Bytes | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Option | null | Uint8Array | U8aFixed | string) => SubmittableExtrinsic, [Compact, PezspWeightsWeightV2Weight, Compact, Bytes, Bytes, Option]>; + /** + * Register the callers account id so that it can be used in contract interactions. + * + * This will error if the origin is already mapped or is a eth native `Address20`. It will + * take a deposit that can be released by calling [`Self::unmap_account`]. + **/ + mapAccount: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove the code stored under `code_hash` and refund the deposit to its owner. + * + * A code can only be removed by its original uploader (its owner) and only if it is + * not used by any contract. + **/ + removeCode: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Privileged function that changes the code of an existing contract. + * + * This takes care of updating refcounts and all other necessary operations. Returns + * an error if either the `code_hash` or `dest` do not exist. + * + * # Note + * + * This does **not** change the address of the contract in question. This means + * that the contract address is no longer derived from its code hash after calling + * this dispatchable. + **/ + setCode: AugmentedSubmittable<(dest: H160 | string | Uint8Array, codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H160, H256]>; + /** + * Unregister the callers account id in order to free the deposit. + * + * There is no reason to ever call this function other than freeing up the deposit. + * This is only useful when the account should no longer be used. + **/ + unmapAccount: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Upload new `code` without instantiating a contract from it. + * + * If the code does not already exist a deposit is reserved from the caller + * and unreserved only when [`Self::remove_code`] is called. The size of the reserve + * depends on the size of the supplied `code`. + * + * # Note + * + * Anyone can instantiate a contract from any uploaded code and thus prevent its removal. + * To avoid this situation a constructor could employ access control so that it can + * only be instantiated by permissioned entities. The same is true when uploading + * through [`Self::instantiate_with_code`]. + **/ + uploadCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array, storageDepositLimit: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + scheduler: { + /** + * Cancel an anonymously scheduled task. + **/ + cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Cancel a named scheduled task. + **/ + cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Removes the retry configuration of a task. + **/ + cancelRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [ITuple<[u32, u32]>]>; + /** + * Cancel the retry configuration of a named task. + **/ + cancelRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Anonymously schedule a task. + **/ + schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Anonymously schedule a task after a delay. + **/ + scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task. + **/ + scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task after a delay. + **/ + scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Set a retry configuration for a task so that, in case its scheduled run fails, it will + * be retried after `period` blocks, for a total amount of `retries` retries or until it + * succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [ITuple<[u32, u32]>, u8, u32]>; + /** + * Set a retry configuration for a named task so that, in case its scheduled run fails, it + * will be retried after `period` blocks, for a total amount of `retries` retries or until + * it succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u8, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable<(keys: AssetHubDicleRuntimeSessionKeys, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AssetHubDicleRuntimeSessionKeys, Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + society: { + /** + * Transform an approved candidate into a member. Callable only by the Signed origin of the + * Founder, only after the period for voting has ended and only when the candidate is not + * clearly rejected. + **/ + bestowMembership: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * A user outside of the society can make a bid for entry. + * + * Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned + * when the bid becomes a member, or if the bid calls `unbid`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `value`: A one time payment the bid would like to receive when joining the society. + **/ + bid: AugmentedSubmittable<(value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Transform an approved candidate into a member. Callable only by the + * the candidate, and only after the period for voting has ended. + **/ + claimMembership: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove up to `max` stale votes for the given `candidate`. + * + * May be called by any Signed origin, but only after the candidate's candidacy is ended. + **/ + cleanupCandidacy: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Remove up to `max` stale votes for the defender in the given `challenge_round`. + * + * May be called by any Signed origin, but only after the challenge round is ended. + **/ + cleanupChallenge: AugmentedSubmittable<(challengeRound: u32 | AnyNumber | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * As a member, vote on the defender. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `approve`: A boolean which says if the candidate should be + * approved (`true`) or rejected (`false`). + **/ + defenderVote: AugmentedSubmittable<(approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Dissolve the society and remove all members. + * + * The dispatch origin for this call must be Signed, and the signing account must be both + * the `Founder` and the `Head`. This implies that it may only be done when there is one + * member. + **/ + dissolve: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a `candidate`'s failed application from the society. Callable by any + * signed origin but only at the end of the subsequent round and only for + * a candidate with more rejections than approvals. + * + * The bid deposit is lost and the voucher is banned. + **/ + dropCandidate: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Found the society. + * + * This is done as a discrete action in order to allow for the + * pallet to be included into a running chain and can only be done once. + * + * The dispatch origin for this call must be from the _FounderSetOrigin_. + * + * Parameters: + * - `founder` - The first member and head of the newly founded society. + * - `max_members` - The initial max number of members for the society. + * - `max_intake` - The maximum number of candidates per intake period. + * - `max_strikes`: The maximum number of strikes a member may get before they become + * suspended and may only be reinstated by the founder. + * - `candidate_deposit`: The deposit required to make a bid for membership of the group. + * - `rules` - The rules of this society concerning membership. + * + * Complexity: O(1) + **/ + foundSociety: AugmentedSubmittable<(founder: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, maxMembers: u32 | AnyNumber | Uint8Array, maxIntake: u32 | AnyNumber | Uint8Array, maxStrikes: u32 | AnyNumber | Uint8Array, candidateDeposit: u128 | AnyNumber | Uint8Array, rules: Bytes | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, u32, u32, u128, Bytes]>; + /** + * Allow suspension judgement origin to make judgement on a suspended member. + * + * If a suspended member is forgiven, we simply add them back as a member, not affecting + * any of the existing storage items for that member. + * + * If a suspended member is rejected, remove all associated storage items, including + * their payouts, and remove any vouched bids they currently have. + * + * The dispatch origin for this call must be Signed from the Founder. + * + * Parameters: + * - `who` - The suspended member to be judged. + * - `forgive` - A boolean representing whether the suspension judgement origin forgives + * (`true`) or rejects (`false`) a suspended member. + **/ + judgeSuspendedMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forgive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Remove the candidate's application from the society. Callable only by the Signed origin + * of the Founder, only after the period for voting has ended, and only when they do not + * have a clear approval. + * + * Any bid deposit is lost and voucher is banned. + **/ + kickCandidate: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Transfer the first matured payout for the sender and remove it from the records. + * + * NOTE: This extrinsic needs to be called multiple times to claim multiple matured + * payouts. + * + * Payment: The member will receive a payment equal to their first matured + * payout to their free balance. + * + * The dispatch origin for this call must be _Signed_ and a member with + * payouts remaining. + **/ + payout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Poke the deposit reserved when bidding. + * + * The dispatch origin for this call must be _Signed_ and must be the bidder. + * + * The transaction fee is waived if the deposit is changed after poking/reconsideration. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Punish the skeptic with a strike if they did not vote on a candidate. Callable by the + * candidate. + **/ + punishSkeptic: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove the candidate's application from the society. Callable only by the candidate. + * + * Any bid deposit is lost and voucher is banned. + **/ + resignCandidacy: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Change the maximum number of members in society and the maximum number of new candidates + * in a single intake period. + * + * The dispatch origin for this call must be Signed by the Founder. + * + * Parameters: + * - `max_members` - The maximum number of members for the society. This must be no less + * than the current number of members. + * - `max_intake` - The maximum number of candidates per intake period. + * - `max_strikes`: The maximum number of strikes a member may get before they become + * suspended and may only be reinstated by the founder. + * - `candidate_deposit`: The deposit required to make a bid for membership of the group. + **/ + setParameters: AugmentedSubmittable<(maxMembers: u32 | AnyNumber | Uint8Array, maxIntake: u32 | AnyNumber | Uint8Array, maxStrikes: u32 | AnyNumber | Uint8Array, candidateDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, u128]>; + /** + * A bidder can remove their bid for entry into society. + * By doing so, they will have their candidate deposit returned or + * they will unvouch their voucher. + * + * Payment: The bid deposit is unreserved if the user made a bid. + * + * The dispatch origin for this call must be _Signed_ and a bidder. + **/ + unbid: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * As a vouching member, unvouch a bid. This only works while vouched user is + * only a bidder (and not a candidate). + * + * The dispatch origin for this call must be _Signed_ and a vouching member. + * + * Parameters: + * - `pos`: Position in the `Bids` vector of the bid who should be unvouched. + **/ + unvouch: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * As a member, vote on a candidate. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `candidate`: The candidate that the member would like to bid on. + * - `approve`: A boolean which says if the candidate should be approved (`true`) or + * rejected (`false`). + **/ + vote: AugmentedSubmittable<(candidate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * As a member, vouch for someone to join society by placing a bid on their behalf. + * + * There is no deposit required to vouch for a new bid, but a member can only vouch for + * one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by + * the suspension judgement origin, the member will be banned from vouching again. + * + * As a vouching member, you can claim a tip if the candidate is accepted. This tip will + * be paid as a portion of the reward the member will receive for joining the society. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `who`: The user who you would like to vouch for. + * - `value`: The total reward to be paid between you and the candidate if they become + * a member in the society. + * - `tip`: Your cut of the total `value` payout when the candidate is inducted into + * the society. Tips larger than `value` will be saturated upon payout. + **/ + vouch: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: u128 | AnyNumber | Uint8Array, tip: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128, u128]>; + /** + * Repay the payment previously given to the member with the signed origin, remove any + * pending payments, and elevate them from rank 0 to rank 1. + **/ + waiveRepay: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + staking: { + /** + * Manually and permissionlessly applies a deferred slash for a given era. + * + * Normally, slashes are automatically applied shortly after the start of the `slash_era`. + * The automatic application of slashes is handled by the pallet's internal logic, and it + * tries to apply one slash page per block of the era. + * If for some reason, one era is not enough for applying all slash pages, the remaining + * slashes need to be manually (permissionlessly) applied. + * + * For a given era x, if at era x+1, slashes are still unapplied, all withdrawals get + * blocked, and these need to be manually applied by calling this function. + * This function exists as a **fallback mechanism** for this extreme situation, but we + * never expect to encounter this in normal scenarios. + * + * The parameters for this call can be queried by looking at the `UnappliedSlashes` storage + * for eras older than the active era. + * + * ## Parameters + * - `slash_era`: The staking era in which the slash was originally scheduled. + * - `slash_key`: A unique identifier for the slash, represented as a tuple: + * - `stash`: The stash account of the validator being slashed. + * - `slash_fraction`: The fraction of the stake that was slashed. + * - `page_index`: The index of the exposure page being processed. + * + * ## Behavior + * - The function is **permissionless**—anyone can call it. + * - The `slash_era` **must be the current era or a past era**. + * If it is in the future, the + * call fails with `EraNotStarted`. + * - The fee is waived if the slash is successfully applied. + * + * ## Future Improvement + * - Implement an **off-chain worker (OCW) task** to automatically apply slashes when there + * is unused block space, improving efficiency. + **/ + applySlash: AugmentedSubmittable<(slashEra: u32 | AnyNumber | Uint8Array, slashKey: ITuple<[AccountId32, Perbill, u32]> | [AccountId32 | string | Uint8Array, Perbill | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [u32, ITuple<[AccountId32, Perbill, u32]>]>; + /** + * Take the origin account as a stash and lock up `value` of its balance. `controller` will + * be the account that controls it. + * + * `value` must be more than the `minimum_balance` specified by `T::Currency`. + * + * The dispatch origin for this call must be _Signed_ by the stash account. + * + * Emits `Bonded`. + * + * NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned + * unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed + * as dust. + **/ + bond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, payee: PezpalletStakingAsyncRewardDestination) => SubmittableExtrinsic, [Compact, PezpalletStakingAsyncRewardDestination]>; + /** + * Add some extra amount that have appeared in the stash `free_balance` into the balance up + * for staking. + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * Use this if there are additional funds in your stash account that you wish to bond. + * Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose + * any limitation on the amount that can be added. + * + * Emits `Bonded`. + **/ + bondExtra: AugmentedSubmittable<(maxAdditional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancels scheduled slashes for a given era before they are applied. + * + * This function allows `T::AdminOrigin` to cancel pending slashes for specified validators + * in a given era. The cancelled slashes are stored and will be checked when applying + * slashes. + * + * ## Parameters + * - `era`: The staking era for which slashes should be cancelled. This is the era where + * the slash would be applied, not the era in which the offence was committed. + * - `validator_slashes`: A list of validator stash accounts and their slash fractions to + * be cancelled. + **/ + cancelDeferredSlash: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array, validatorSlashes: Vec> | ([AccountId32 | string | Uint8Array, Perbill | AnyNumber | Uint8Array])[]) => SubmittableExtrinsic, [u32, Vec>]>; + /** + * Declare no desire to either validate or nominate. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - Contains one read. + * - Writes are limited to the `origin` account key. + **/ + chill: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Declare a `controller` to stop participating as either a validator or nominator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_, but can be called by anyone. + * + * If the caller is the same as the controller being targeted, then no further checks are + * enforced, and this function behaves just like `chill`. + * + * If the caller is different than the controller being targeted, the following conditions + * must be met: + * + * * `controller` must belong to a nominator who has become non-decodable, + * + * Or: + * + * * A `ChillThreshold` must be set and checked which defines how close to the max + * nominators or validators we must reach before users can start chilling one-another. + * * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine + * how close we are to the threshold. + * * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines + * if this is a person that should be chilled because they have not met the threshold + * bond required. + * + * This can be helpful if bond requirements are updated, and we need to remove old users + * who do not satisfy these requirements. + **/ + chillOther: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Updates a batch of controller accounts to their corresponding stash account if they are + * not the same. Ignores any controller accounts that do not exist, and does not operate if + * the stash and controller are already the same. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin must be `T::AdminOrigin`. + **/ + deprecateControllerBatch: AugmentedSubmittable<(controllers: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Force a validator to have at least the minimum commission. This will not affect a + * validator who already has a commission greater than or equal to the minimum. Any account + * can call this. + **/ + forceApplyMinCommission: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Force there to be a new era at the end of the next session. After this, it will be + * reset to normal (non-forced) behaviour. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEra: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be a new era at the end of sessions indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEraAlways: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be no new eras indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * Thus the election process may be ongoing when this is called. In this case the + * election will continue until the next era is triggered. + **/ + forceNoEras: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force a current staker to become completely unstaked, immediately. + * + * The dispatch origin must be Root. + * ## Parameters + * + * - `stash`: The stash account to be unstaked. + * - `num_slashing_spans`: **Deprecated**. This parameter is retained for backward + * compatibility. It no longer has any effect. + **/ + forceUnstake: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Increments the ideal number of validators up to maximum of + * `T::MaxValidatorSet`. + * + * The dispatch origin must be Root. + **/ + increaseValidatorCount: AugmentedSubmittable<(additional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove the given nominations from the calling validator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * - `who`: A list of nominator stash accounts who are nominating this validator which + * should no longer be nominating this validator. + * + * Note: Making this call only makes sense if you first set the validator preferences to + * block any further nominations. + **/ + kick: AugmentedSubmittable<(who: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Migrates permissionlessly a stash from locks to holds. + * + * This removes the old lock on the stake and creates a hold on it atomically. If all + * stake cannot be held, the best effort is made to hold as much as possible. The remaining + * stake is removed from the ledger. + * + * The fee is waived if the migration is successful. + **/ + migrateCurrency: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to nominate `targets` for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + nominate: AugmentedSubmittable<(targets: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Pay out next page of the stakers behind a validator for the given era. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * The reward payout could be paged in case there are too many nominators backing the + * `validator_stash`. This call will payout unpaid pages in an ascending order. To claim a + * specific page, use `payout_stakers_by_page`.` + * + * If all pages are claimed, it returns an error `InvalidPage`. + **/ + payoutStakers: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Pay out a page of the stakers behind a validator for the given era and page. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * - `page` is the page index of nominators to pay out with value between 0 and + * `num_nominators / T::MaxExposurePageSize`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * If a validator has more than [`Config::MaxExposurePageSize`] nominators backing + * them, then the list of nominators is paged, with each page being capped at + * [`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators, + * the call needs to be made for each page separately in order for all the nominators + * backing a validator to receive the reward. The nominators are not sorted across pages + * and so it should not be assumed the highest staker would be on the topmost page and vice + * versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost. + **/ + payoutStakersByPage: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, page: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, u32]>; + /** + * Perform one step of era pruning to prevent PoV size exhaustion from unbounded deletions. + * + * This extrinsic enables permissionless lazy pruning of era data by performing + * incremental deletion of storage items. Each call processes a limited number + * of items based on available block weight to avoid exceeding block limits. + * + * Returns `Pays::No` when work is performed to incentivize regular maintenance. + * Anyone can call this to help maintain the chain's storage health. + * + * The era must be eligible for pruning (older than HistoryDepth + 1). + * Check `EraPruningState` storage to see if an era needs pruning before calling. + **/ + pruneEraStep: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Remove all data structures concerning a staker/stash once it is at a state where it can + * be considered `dust` in the staking system. The requirements are: + * + * 1. the `total_balance` of the stash is below `min_chilled_bond` or is zero. + * 2. or, the `ledger.total` of the stash is below `min_chilled_bond` or is zero. + * + * The former can happen in cases like a slash; the latter when a fully unbonded account + * is still receiving staking rewards in `RewardDestination::Staked`. + * + * It can be called by anyone, as long as `stash` meets the above requirements. + * + * Refunds the transaction fees upon successful execution. + * + * ## Parameters + * + * - `stash`: The stash account to be reaped. + * - `num_slashing_spans`: **Deprecated**. This parameter is retained for backward + * compatibility. It no longer has any effect. + **/ + reapStash: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Rebond a portion of the stash scheduled to be unlocked. + * + * The dispatch origin must be signed by the controller. + **/ + rebond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Restores the state of a ledger which is in an inconsistent state. + * + * The requirements to restore a ledger are the following: + * * The stash is bonded; or + * * The stash is not bonded but it has a staking lock left behind; or + * * If the stash has an associated ledger and its state is inconsistent; or + * * If the ledger is not corrupted *but* its staking lock is out of sync. + * + * The `maybe_*` input parameters will overwrite the corresponding data and metadata of the + * ledger associated with the stash. If the input parameters are not set, the ledger will + * be reset values from on-chain state. + **/ + restoreLedger: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, maybeController: Option | null | Uint8Array | AccountId32 | string, maybeTotal: Option | null | Uint8Array | u128 | AnyNumber, maybeUnlocking: Option> | null | Uint8Array | Vec | (PezpalletStakingAsyncLedgerUnlockChunk)[]) => SubmittableExtrinsic, [AccountId32, Option, Option, Option>]>; + /** + * Scale up the ideal number of validators by a factor up to maximum of + * `T::MaxValidatorSet`. + * + * The dispatch origin must be Root. + **/ + scaleValidatorCount: AugmentedSubmittable<(factor: Percent | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Percent]>; + /** + * (Re-)sets the controller of a stash to the stash itself. This function previously + * accepted a `controller` argument to set the controller to an account other than the + * stash itself. This functionality has now been removed, now only setting the controller + * to the stash, if it is not already. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + **/ + setController: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the validators who cannot be slashed (if any). + * + * The dispatch origin must be Root. + **/ + setInvulnerables: AugmentedSubmittable<(invulnerables: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Sets the minimum amount of commission that each validators must maintain. + * + * This call has lower privilege requirements than `set_staking_config` and can be called + * by the `T::AdminOrigin`. Root can always call this. + **/ + setMinCommission: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * (Re-)set the payment target for a controller. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + setPayee: AugmentedSubmittable<(payee: PezpalletStakingAsyncRewardDestination) => SubmittableExtrinsic, [PezpalletStakingAsyncRewardDestination]>; + /** + * Update the various staking configurations . + * + * * `min_nominator_bond`: The minimum active bond needed to be a nominator. + * * `min_validator_bond`: The minimum active bond needed to be a validator. + * * `max_nominator_count`: The max number of users who can be a nominator at once. When + * set to `None`, no limit is enforced. + * * `max_validator_count`: The max number of users who can be a validator at once. When + * set to `None`, no limit is enforced. + * * `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which + * should be filled in order for the `chill_other` transaction to work. + * * `min_commission`: The minimum amount of commission that each validators must maintain. + * This is checked only upon calling `validate`. Existing validators are not affected. + * + * RuntimeOrigin must be Root to call this function. + * + * NOTE: Existing nominators and validators will not be affected by this update. + * to kick people under the new limits, `chill_other` should be called. + **/ + setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PezpalletStakingAsyncPezpalletConfigOpU128, minValidatorBond: PezpalletStakingAsyncPezpalletConfigOpU128, maxNominatorCount: PezpalletStakingAsyncPezpalletConfigOpU32, maxValidatorCount: PezpalletStakingAsyncPezpalletConfigOpU32, chillThreshold: PezpalletStakingAsyncPezpalletConfigOpPercent, minCommission: PezpalletStakingAsyncPezpalletConfigOpPerbill, maxStakedRewards: PezpalletStakingAsyncPezpalletConfigOpPercent) => SubmittableExtrinsic, [PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncPezpalletConfigOpPercent, PezpalletStakingAsyncPezpalletConfigOpPerbill, PezpalletStakingAsyncPezpalletConfigOpPercent]>; + /** + * Sets the ideal number of validators. + * + * The dispatch origin must be Root. + **/ + setValidatorCount: AugmentedSubmittable<(updated: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Schedule a portion of the stash to be unlocked ready for transfer out after the bond + * period ends. If this leaves an amount actively bonded less than + * [`asset::existential_deposit`], then it is increased to the full amount. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * Once the unlock period is done, you can call `withdraw_unbonded` to actually move + * the funds out of management ready for transfer. + * + * No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`) + * can co-exists at the same time. If there are no unlocking chunks slots available + * [`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible). + * + * If a user encounters the `InsufficientBond` error when calling this extrinsic, + * they should call `chill` first in order to free up their bonded funds. + * + * Emits `Unbonded`. + * + * See also [`Call::withdraw_unbonded`]. + **/ + unbond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Migrates an account's `RewardDestination::Controller` to + * `RewardDestination::Account(controller)`. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * This will waive the transaction fee if the `payee` is successfully migrated. + **/ + updatePayee: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to validate for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + validate: AugmentedSubmittable<(prefs: PezpalletStakingAsyncValidatorPrefs) => SubmittableExtrinsic, [PezpalletStakingAsyncValidatorPrefs]>; + /** + * Remove any stake that has been fully unbonded and is ready for withdrawal. + * + * Stake is considered fully unbonded once [`Config::BondingDuration`] has elapsed since + * the unbonding was initiated. In rare cases—such as when offences for the unbonded era + * have been reported but not yet processed—withdrawal is restricted to eras for which + * all offences have been processed. + * + * The unlocked stake will be returned as free balance in the stash account. + * + * The dispatch origin for this call must be _Signed_ by the controller. + * + * Emits `Withdrawn`. + * + * See also [`Call::unbond`]. + * + * ## Parameters + * + * - `num_slashing_spans`: **Deprecated**. Retained only for backward compatibility; this + * parameter has no effect. + **/ + withdrawUnbonded: AugmentedSubmittable<(numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stakingRcClient: { + relayNewOffencePaged: AugmentedSubmittable<(offences: Vec> | ([u32 | AnyNumber | Uint8Array, PezpalletStakingAsyncRcClientOffence])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Called to indicate the start of a new session on the relay chain. + **/ + relaySessionReport: AugmentedSubmittable<(report: PezpalletStakingAsyncRcClientSessionReport) => SubmittableExtrinsic, [PezpalletStakingAsyncRcClientSessionReport]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stateTrieMigration: { + /** + * Continue the migration for the given `limits`. + * + * The dispatch origin of this call can be any signed account. + * + * This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit, + * Upon successful execution, the transaction fee is returned. + * + * The (potentially over-estimated) of the byte length of all the data read must be + * provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing + * that executing the current `MigrationTask` with the given `limits` will not exceed + * `real_size_upper` bytes of read data. + * + * The `witness_task` is merely a helper to prevent the caller from being slashed or + * generally trigger a migration that they do not intend. This parameter is just a message + * from caller, saying that they believed `witness_task` was the last state of the + * migration, and they only wish for their transaction to do anything, if this assumption + * holds. In case `witness_task` does not match, the transaction fails. + * + * Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the + * recommended way of doing this is to pass a `limit` that only bounds `count`, as the + * `size` limit can always be overwritten. + **/ + continueMigrate: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits, realSizeUpper: u32 | AnyNumber | Uint8Array, witnessTask: PezpalletStateTrieMigrationMigrationTask) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits, u32, PezpalletStateTrieMigrationMigrationTask]>; + /** + * Control the automatic migration. + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + **/ + controlAutoMigration: AugmentedSubmittable<(maybeConfig: Option | null | Uint8Array | PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [Option]>; + /** + * Forcefully set the progress the running migration. + * + * This is only useful in one case: the next key to migrate is too big to be migrated with + * a signed account, in a parachain context, and we simply want to skip it. A reasonable + * example of this would be `:code:`, which is both very expensive to migrate, and commonly + * used, so probably it is already migrated. + * + * In case you mess things up, you can also, in principle, use this to reset the migration + * process. + **/ + forceSetProgress: AugmentedSubmittable<(progressTop: PezpalletStateTrieMigrationProgress, progressChild: PezpalletStateTrieMigrationProgress) => SubmittableExtrinsic, [PezpalletStateTrieMigrationProgress, PezpalletStateTrieMigrationProgress]>; + /** + * Migrate the list of child keys by iterating each of them one by one. + * + * All of the given child keys must be present under one `child_root`. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomChild: AugmentedSubmittable<(root: Bytes | string | Uint8Array, childKeys: Vec | (Bytes | string | Uint8Array)[], totalSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, Vec, u32]>; + /** + * Migrate the list of top keys by iterating each of them one by one. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomTop: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[], witnessSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u32]>; + /** + * Set the maximum limit of the signed migration. + **/ + setSignedMaxLimits: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + doTask: AugmentedSubmittable<(task: AssetHubDicleRuntimeRuntimeTask) => SubmittableExtrinsic, [AssetHubDicleRuntimeRuntimeTask]>; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, u32]>; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable<(items: Vec> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable<(now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + toPolkadotXcmRouter: { + /** + * Notification about congested bridge queue. + **/ + reportBridgeStatus: AugmentedSubmittable<(bridgeId: H256 | string | Uint8Array, isCongested: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + treasury: { + /** + * Check the status of the spend and remove it from the storage if processed. + * + * ## Dispatch Origin + * + * Must be signed. + * + * ## Details + * + * The status check is a prerequisite for retrying a failed payout. + * If a spend has either succeeded or expired, it is removed from the storage by this + * function. In such instances, transaction fees are refunded. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::PaymentFailed`] if the spend payout has failed. + * Emits [`Event::SpendProcessed`] if the spend payout has succeed. + **/ + checkStatus: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim a spend. + * + * ## Dispatch Origin + * + * Must be signed + * + * ## Details + * + * Spends must be claimed within some temporal bounds. A spend may be claimed within one + * [`Config::PayoutPeriod`] from the `valid_from` block. + * In case of a payout failure, the spend status must be updated with the `check_status` + * dispatchable before retrying with the current function. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::Paid`] if successful. + **/ + payout: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force a previously approved proposal to be removed from the approval queue. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * The original deposit will no longer be returned. + * + * ### Parameters + * - `proposal_id`: The index of a proposal + * + * ### Complexity + * - O(A) where `A` is the number of approvals + * + * ### Errors + * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the + * approval queue, i.e., the proposal has not been approved. This could also mean the + * proposal does not exist altogether, thus there is no way it would have been approved + * in the first place. + **/ + removeApproval: AugmentedSubmittable<(proposalId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least + * `amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted + * for assertion using the [`Config::BalanceConverter`]. + * + * ## Details + * + * Create an approved spend for transferring a specific `amount` of `asset_kind` to a + * designated beneficiary. The spend must be claimed using the `payout` dispatchable within + * the [`Config::PayoutPeriod`]. + * + * ### Parameters + * - `asset_kind`: An indicator of the specific asset class to be spent. + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The beneficiary of the spend. + * - `valid_from`: The block number from which the spend can be claimed. It can refer to + * the past if the resulting spend has not yet expired according to the + * [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after + * approval. + * + * ## Events + * + * Emits [`Event::AssetSpendApproved`] if successful. + **/ + spend: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, amount: Compact | AnyNumber | Uint8Array, beneficiary: TeyrchainsCommonPayVersionedLocatableAccount, validFrom: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, Compact, TeyrchainsCommonPayVersionedLocatableAccount, Option]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`. + * + * ### Details + * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the + * beneficiary. + * + * ### Parameters + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The destination account for the transfer. + * + * ## Events + * + * Emits [`Event::SpendApproved`] if successful. + **/ + spendLocal: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Void previously approved spend. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * A spend void is only possible if the payout has not been attempted yet. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::AssetSpendVoided`] if successful. + **/ + voidSpend: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + uniques: { + /** + * Approve an item to be transferred by a delegated third-party account. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be + * either the owner of the `item` or the admin of the collection. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item of the item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * + * Important NOTE: The `approved` account gets reset after each transfer. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Destroy a single item. + * + * Origin must be Signed and the signing account must be either: + * - the Admin of the `collection`; + * - the Owner of the `item`; + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item of the item to be burned. + * - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the + * item is owned by this value. + * + * Emits `Burned` with the actual amount burned. + * + * Weight: `O(1)` + * Modes: `check_owner.is_some()`. + **/ + burn: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, checkOwner: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option]>; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, bidPrice: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u128]>; + /** + * Cancel the prior approval for the transfer of an item by a delegate. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Admin of the `collection`; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the item of whose approval will be cancelled. + * - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to + * which permission of transfer is delegated. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, maybeCheckDelegate: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option]>; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, Bytes]>; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * `ItemDeposit` funds of sender are reserved. + * + * Parameters: + * - `collection`: The identifier of the new collection. This must not be currently in use. + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(n + m)` where: + * - `n = witness.items` + * - `m = witness.item_metadatas` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, witness: PezpalletUniquesDestroyWitness) => SubmittableExtrinsic, [u32, PezpalletUniquesDestroyWitness]>; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `collection`: The identifier of the new item. This must not be currently in use. + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions + * over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool]>; + /** + * Alter the attributes of a given item. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the item. + * - `owner`: The new Owner of this item. + * - `issuer`: The new Issuer of this item. + * - `admin`: The new Admin of this item. + * - `freezer`: The new Freezer of this item. + * - `free_holding`: Whether a deposit is taken for holding an item of this collection. + * - `is_frozen`: Whether this collection is frozen except for permissioned/admin + * instructions. + * + * Emits `ItemStatusChanged` with the identity of the item. + * + * Weight: `O(1)` + **/ + forceItemStatus: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress, MultiAddress, bool, bool]>; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be frozen. + * - `item`: The item of the item to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Disallow further unprivileged transfers for a whole collection. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection to be frozen. + * + * Emits `CollectionFrozen`. + * + * Weight: `O(1)` + **/ + freezeCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must be the Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: The item value of the item to be minted. + * - `beneficiary`: The initial owner of the minted item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Reevaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be frozen. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown of the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, items: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable<(maybeCollection: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, Bytes, Bytes]>; + /** + * Set the maximum amount of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * Note: This function can only succeed once per collection. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum amount of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maxSupply: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * - `is_frozen`: Whether the metadata should be frozen against further changes. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, bool]>; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * - `is_frozen`: Whether the metadata should be frozen against further changes. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes, bool]>; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the asset `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, price: Option | null | Uint8Array | u128 | AnyNumber, whitelistedBuyer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option, Option]>; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be thawed. + * - `item`: The item of the item to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Re-allow unprivileged transfers for a whole collection. + * + * Origin must be Signed and the sender should be the Admin of the `collection`. + * + * - `collection`: The collection to be thawed. + * + * Emits `CollectionThawed`. + * + * Weight: `O(1)` + **/ + thawCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Move an item from the sender account to another. + * + * This resets the approved account of the item. + * + * Origin must be Signed and the signing account must be either: + * - the Admin of the `collection`; + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item of the item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, newOwner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + utility: { + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + **/ + asDerivative: AugmentedSubmittable<(index: u16 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u16, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + **/ + batch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + batchAll: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + **/ + dispatchAs: AugmentedSubmittable<(asOrigin: AssetHubDicleRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [AssetHubDicleRuntimeOriginCaller, RuntimeCall]>; + /** + * Dispatches a function call with a provided origin. + * + * Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call. + * + * The dispatch origin for this call must be _Root_. + **/ + dispatchAsFallible: AugmentedSubmittable<(asOrigin: AssetHubDicleRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [AssetHubDicleRuntimeOriginCaller, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + forceBatch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatch a fallback call in the event the main call fails to execute. + * May be called from any origin except `None`. + * + * This function first attempts to dispatch the `main` call. + * If the `main` call fails, the `fallback` is attemted. + * if the fallback is successfully dispatched, the weights of both calls + * are accumulated and an event containing the main call error is deposited. + * + * In the event of a fallback failure the whole call fails + * with the weights returned. + * + * - `main`: The main call to be dispatched. This is the primary action to execute. + * - `fallback`: The fallback call to be dispatched in case the `main` call fails. + * + * ## Dispatch Logic + * - If the origin is `root`, both the main and fallback calls are executed without + * applying any origin filters. + * - If the origin is not `root`, the origin filter is applied to both the `main` and + * `fallback` calls. + * + * ## Use Case + * - Some use cases might involve submitting a `batch` type call in either main, fallback + * or both. + **/ + ifElse: AugmentedSubmittable<(main: RuntimeCall | IMethod | string | Uint8Array, fallback: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, RuntimeCall]>; + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + **/ + withWeight: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array, weight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + vesting: { + /** + * Force remove a vesting schedule + * + * The dispatch origin for this call must be _Root_. + * + * - `target`: An account that has a vesting schedule + * - `schedule_index`: The vesting schedule index that should be removed + **/ + forceRemoveVestingSchedule: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, scheduleIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Force a vested transfer. + * + * The dispatch origin for this call must be _Root_. + * + * - `source`: The account whose funds should be transferred. + * - `target`: The account that should be transferred the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + forceVestedTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Merge two vesting schedules together, creating a new vesting schedule that unlocks over + * the highest possible start and end blocks. If both schedules have already started the + * current block will be used as the schedule start; with the caveat that if one schedule + * is finished by the current block, the other will be treated as the new merged schedule, + * unmodified. + * + * NOTE: If `schedule1_index == schedule2_index` this is a no-op. + * NOTE: This will unlock all schedules through the current block prior to merging. + * NOTE: If both schedules have ended by the current block, no new schedule will be created + * and both will be removed. + * + * Merged schedule attributes: + * - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block, + * current_block)`. + * - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`. + * - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`. + * + * The dispatch origin for this call must be _Signed_. + * + * - `schedule1_index`: index of the first schedule to merge. + * - `schedule2_index`: index of the second schedule to merge. + **/ + mergeSchedules: AugmentedSubmittable<(schedule1Index: u32 | AnyNumber | Uint8Array, schedule2Index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Unlock any vested funds of the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vest: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a vested transfer. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account receiving the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + vestedTransfer: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Unlock any vested funds of a `target` account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account whose vested funds should be unlocked. Must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vestOther: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + voterList: { + /** + * Move the caller's Id directly in front of `lighter`. + * + * The dispatch origin for this call must be _Signed_ and can only be called by the Id of + * the account going in front of `lighter`. Fee is payed by the origin under all + * circumstances. + * + * Only works if: + * + * - both nodes are within the same bag, + * - and `origin` has a greater `Score` than `lighter`. + **/ + putInFrontOf: AugmentedSubmittable<(lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Same as [`Pallet::put_in_front_of`], but it can be called by anyone. + * + * Fee is paid by the origin under all circumstances. + **/ + putInFrontOfOther: AugmentedSubmittable<(heavier: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Declare that some `dislocated` account has, through rewards or penalties, sufficiently + * changed its score that it should properly fall into a different bag than its current + * one. + * + * Anyone can call this function about any potentially dislocated account. + * + * Will always update the stored score of `dislocated` to the correct score, based on + * `ScoreProvider`. + * + * If `dislocated` does not exists, it returns an error. + **/ + rebag: AugmentedSubmittable<(dislocated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + whitelist: { + dispatchWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array, callEncodedLen: u32 | AnyNumber | Uint8Array, callWeightWitness: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [H256, u32, PezspWeightsWeightV2Weight]>; + dispatchWhitelistedCallWithPreimage: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + removeWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + whitelistCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmpQueue: { + /** + * Resumes all XCM executions for the XCMP queue. + * + * Note that this function doesn't change the status of the in/out bound channels. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.drop_threshold` + **/ + updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.resume_threshold` + **/ + updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.suspend_value` + **/ + updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/packages/api-augment/src/assetHubPezkuwi/consts.ts b/packages/api-augment/src/assetHubPezkuwi/consts.ts new file mode 100644 index 0000000..466226c --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/consts.ts @@ -0,0 +1,1125 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/consts'; + +import type { ApiTypes, AugmentedConst } from '@pezkuwi/api-base/types'; +import type { Bytes, Option, Vec, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { Codec, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, Perbill, Permill } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportPezpalletId, PezframeSystemLimitsBlockLength, PezframeSystemLimitsBlockWeights, PezpalletReferendaTrackDetails, PezspVersionRuntimeVersion, PezspWeightsRuntimeDbWeight, PezspWeightsWeightV2Weight, StagingXcmV5Junctions, StagingXcmV5Location } from '@pezkuwi/types/lookup'; + +export type __AugmentedConst = AugmentedConst; + +declare module '@pezkuwi/api-base/types/consts' { + interface AugmentedConsts { + assetConversion: { + /** + * A fee to withdraw the liquidity. + **/ + liquidityWithdrawalFee: Permill & AugmentedConst; + /** + * A % the liquidity providers will take of every swap. Represents 10ths of a percent. + **/ + lpFee: u32 & AugmentedConst; + /** + * The max number of hops in a swap. + **/ + maxSwapPathLength: u32 & AugmentedConst; + /** + * The minimum LP token amount that could be minted. Ameliorates rounding errors. + **/ + mintMinLiquidity: u128 & AugmentedConst; + /** + * The pallet's id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * A one-time fee to setup the pool. + **/ + poolSetupFee: u128 & AugmentedConst; + /** + * Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]. + **/ + poolSetupFeeAsset: StagingXcmV5Location & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + assets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + aura: { + /** + * The slot duration Aura should run with, expressed in milliseconds. + * The effective value of this type should not change while the chain is running. + * + * For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const. + **/ + slotDuration: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + bounties: { + /** + * The amount held on deposit for placing a bounty proposal. + **/ + bountyDepositBase: u128 & AugmentedConst; + /** + * The delay period for which a bounty beneficiary need to wait before claim the payout. + **/ + bountyDepositPayoutDelay: u32 & AugmentedConst; + /** + * The time limit for a curator to act before a bounty expires. + * + * The period that starts when a curator is approved, during which they must execute or + * update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the + * curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely, + * removing the need for `extend_bounty_expiry`. + **/ + bountyUpdatePeriod: u32 & AugmentedConst; + /** + * Minimum value for a bounty. + **/ + bountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMax: Option & AugmentedConst; + /** + * Minimum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMin: Option & AugmentedConst; + /** + * The curator deposit is calculated as a percentage of the curator fee. + * + * This deposit has optional upper and lower bounds with `CuratorDepositMax` and + * `CuratorDepositMin`. + **/ + curatorDepositMultiplier: Permill & AugmentedConst; + /** + * The amount held on deposit per byte within the tip report reason or bounty description. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * Maximum acceptable reason length. + * + * Benchmarks depend on this value, be sure to update weights file when changing this value + **/ + maximumReasonLength: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + childBounties: { + /** + * Minimum value for a child-bounty. + **/ + childBountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum number of child bounties that can be added to a parent bounty. + **/ + maxActiveChildBountyCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + claims: { + prefix: Bytes & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + collatorSelection: { + kickThreshold: u32 & AugmentedConst; + /** + * Maximum number of candidates that we should have. + * + * This does not take into account the invulnerables. + **/ + maxCandidates: u32 & AugmentedConst; + /** + * Maximum number of invulnerables. + **/ + maxInvulnerables: u32 & AugmentedConst; + /** + * Minimum number eligible collators. Should always be greater than zero. This includes + * Invulnerable collators. This ensures that there will always be one collator who can + * produce a block. + **/ + minEligibleCollators: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Account Identifier from which the internal Pot is generated. + **/ + potId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + convictionVoting: { + /** + * The maximum number of concurrent votes an account may have. + * + * Also used to compute weight, an overly large value can lead to extrinsics with large + * weight estimation: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + delegatedStaking: { + /** + * Injected identifier for the pallet. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Fraction of the slash that is rewarded to the caller of pending slash to the agent. + **/ + slashRewardFraction: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + foreignAssets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + indices: { + /** + * The deposit needed for reserving an index. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multiBlockElection: { + /** + * The number of pages. + * + * The snapshot is created with this many keys in the storage map. + * + * The solutions may contain at MOST this many pages, but less pages are acceptable as + * well. + **/ + pages: u32 & AugmentedConst; + /** + * Duration of the signed phase. + **/ + signedPhase: u32 & AugmentedConst; + /** + * Duration of the singed validation phase. + * + * The duration of this should not be less than `T::Pages`, and there is no point in it + * being more than `SignedPhase::MaxSubmission::get() * T::Pages`. TODO: integrity test for + * it. + **/ + signedValidationPhase: u32 & AugmentedConst; + /** + * The number of snapshot targets to fetch per block. + **/ + targetSnapshotPerBlock: u32 & AugmentedConst; + /** + * Duration of the unsigned phase. + **/ + unsignedPhase: u32 & AugmentedConst; + /** + * The number of snapshot voters to fetch per block. + **/ + voterSnapshotPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multiBlockElectionVerifier: { + /** + * Maximum number of backers, per winner, per page. + **/ + maxBackersPerWinner: u32 & AugmentedConst; + /** + * Maximum number of backers, per winner, among all pages of an election. + * + * This can only be checked at the very final step of verification. + * + * NOTE: at the moment, we don't check this, and it is in place for future compatibility. + **/ + maxBackersPerWinnerFinal: u32 & AugmentedConst; + /** + * Maximum number of supports (aka. winners/validators/targets) that can be represented in + * a page of results. + **/ + maxWinnersPerPage: u32 & AugmentedConst; + /** + * The minimum amount of improvement to the solution score that defines a solution as + * "better". + **/ + solutionImprovementThreshold: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multisig: { + /** + * The base amount of currency needed to reserve for creating a multisig execution or to + * store a dispatch call for later. + * + * This is held for an additional storage item whose value size is + * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is + * `32 + sizeof(AccountId)` bytes. + **/ + depositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per unit threshold when creating a multisig execution. + * + * This is held for adding 32 bytes more into a pre-existing storage value. + **/ + depositFactor: u128 & AugmentedConst; + /** + * The maximum amount of signatories allowed in the multisig. + **/ + maxSignatories: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nominationPools: { + /** + * The maximum pool points-to-balance ratio that an `open` pool can have. + * + * This is important in the event slashing takes place and the pool's points-to-balance + * ratio becomes disproportional. + * + * Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations + * are a function of number of points, and by setting this value to e.g. 10, you ensure + * that the total number of points in the system are at most 10 times the total_issuance of + * the chain, in the absolute worse case. + * + * For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1. + * Such a scenario would also be the equivalent of the pool being 90% slashed. + **/ + maxPointsToBalance: u8 & AugmentedConst; + /** + * The maximum number of simultaneous unbonding chunks that can exist per member. + **/ + maxUnbonding: u32 & AugmentedConst; + /** + * The nomination pool's pallet id. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + parachainSystem: { + /** + * Returns the parachain ID we are running with. + **/ + selfParaId: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + polkadotXcm: { + /** + * The latest supported version that we advertise. Generally just set it to + * `pallet_xcm::CurrentXcmVersion`. + **/ + advertisedXcmVersion: u32 & AugmentedConst; + /** + * The maximum number of local XCM locks that a single account may have. + **/ + maxLockers: u32 & AugmentedConst; + /** + * The maximum number of consumers a single remote lock may have. + **/ + maxRemoteLockConsumers: u32 & AugmentedConst; + /** + * This chain's Universal Location. + **/ + universalLocation: StagingXcmV5Junctions & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + poolAssets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proxy: { + /** + * The base amount of currency needed to reserve for creating an announcement. + * + * This is held when a new storage item holding a `Balance` is created (typically 16 + * bytes). + **/ + announcementDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per announcement made. + * + * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) + * into a pre-existing storage value. + **/ + announcementDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of time-delayed announcements that are allowed to be pending. + **/ + maxPending: u32 & AugmentedConst; + /** + * The maximum amount of proxies allowed for a single account. + **/ + maxProxies: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for creating a proxy. + * + * This is held for an additional storage item whose value size is + * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. + **/ + proxyDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per proxy added. + * + * This is held for adding 32 bytes plus an instance of `ProxyType` more into a + * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take + * into account `32 + proxy_type.encode().len()` bytes of data. + **/ + proxyDepositFactor: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + referenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + scheduler: { + /** + * The maximum weight that may be scheduled per block for any dispatchables. + **/ + maximumWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * The maximum number of scheduled calls in the queue for a single block. + * + * NOTE: + * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a + * higher limit under `runtime-benchmarks` feature. + **/ + maxScheduledPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + session: { + /** + * The amount to be held when setting keys. + **/ + keyDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + staking: { + /** + * Number of eras that staked funds must remain bonded for. + **/ + bondingDuration: u32 & AugmentedConst; + /** + * Number of eras to keep in history. + * + * Following information is kept for eras in `[current_era - + * HistoryDepth, current_era]`: `ErasValidatorPrefs`, `ErasValidatorReward`, + * `ErasRewardPoints`, `ErasTotalStake`, `ClaimedRewards`, + * `ErasStakersPaged`, `ErasStakersOverview`. + * + * Must be more than the number of eras delayed by session. + * I.e. active era must always be in history. I.e. `active_era > + * current_era - history_depth` must be guaranteed. + * + * If migrating an existing pallet from storage value to config value, + * this should be set to same value or greater as in storage. + **/ + historyDepth: u32 & AugmentedConst; + /** + * Maximum allowed era duration in milliseconds. + * + * This provides a defensive upper bound to cap the effective era duration, preventing + * excessively long eras from causing runaway inflation (e.g., due to bugs). If the actual + * era duration exceeds this value, it will be clamped to this maximum. + * + * Example: For an ideal era duration of 24 hours (86,400,000 ms), + * this can be set to 604,800,000 ms (7 days). + **/ + maxEraDuration: u64 & AugmentedConst; + /** + * The maximum size of each `T::ExposurePage`. + * + * An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize` + * nominators. + * + * For older non-paged exposure, a reward payout was restricted to the top + * `MaxExposurePageSize` nominators. This is to limit the i/o cost for the + * nominator payout. + * + * Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to + * reduce without handling it in a migration. + **/ + maxExposurePageSize: u32 & AugmentedConst; + /** + * Maximum number of invulnerable validators. + **/ + maxInvulnerables: u32 & AugmentedConst; + /** + * Maximum number of storage items that can be pruned in a single call. + * + * This controls how many storage items can be deleted in each call to `prune_era_step`. + * This should be set to a conservative value (e.g., 100-500 items) to ensure pruning + * doesn't consume too much block space. The actual weight is determined by benchmarks. + **/ + maxPruningItems: u32 & AugmentedConst; + /** + * The maximum number of `unlocking` chunks a [`StakingLedger`] can + * have. Effectively determines how many unique eras a staker may be + * unbonding in. + * + * Note: `MaxUnlockingChunks` is used as the upper bound for the + * `BoundedVec` item `StakingLedger.unlocking`. Setting this value + * lower than the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a runtime + * migration. The test `reducing_max_unlocking_chunks_abrupt` shows + * this effect. + **/ + maxUnlockingChunks: u32 & AugmentedConst; + /** + * The absolute maximum of winner validators this pallet should return. + * + * As this pallet supports multi-block election, the set of winner validators *per + * election* is bounded by this type. + **/ + maxValidatorSet: u32 & AugmentedConst; + /** + * Number of sessions before the end of an era when the election for the next era will + * start. + * + * - This determines how many sessions **before** the last session of the era the staking + * election process should begin. + * - The value is bounded between **1** (election starts at the beginning of the last + * session) and `SessionsPerEra` (election starts at the beginning of the first session + * of the era). + * + * ### Example: + * - If `SessionsPerEra = 6` and `PlanningEraOffset = 1`, the election starts at the + * beginning of session `6 - 1 = 5`. + * - If `PlanningEraOffset = 6`, the election starts at the beginning of session `6 - 6 = + * 0`, meaning it starts at the very beginning of the era. + **/ + planningEraOffset: u32 & AugmentedConst; + /** + * Number of sessions per era, as per the preferences of the **relay chain**. + **/ + sessionsPerEra: u32 & AugmentedConst; + /** + * Number of eras that slashes are deferred by, after computation. + * + * This should be less than the bonding duration. Set to 0 if slashes + * should be applied immediately, without opportunity for intervention. + **/ + slashDeferDuration: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + stateTrieMigration: { + /** + * Maximal number of bytes that a key can have. + * + * FRAME itself does not limit the key length. + * The concrete value must therefore depend on your storage usage. + * A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of + * keys which are then hashed and concatenated, resulting in arbitrarily long keys. + * + * Use the *state migration RPC* to retrieve the length of the longest key in your + * storage: + * + * The migration will halt with a `Halted` event if this value is too small. + * Since there is no real penalty from over-estimating, it is advised to use a large + * value. The default is 512 byte. + * + * Some key lengths for reference: + * - [`frame_support::storage::StorageValue`]: 32 byte + * - [`frame_support::storage::StorageMap`]: 64 byte + * - [`frame_support::storage::StorageDoubleMap`]: 96 byte + * + * For more info see + * + **/ + maxKeyLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: PezframeSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: PezframeSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: PezspWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: PezspVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + treasury: { + /** + * Percentage of spare funds (if any) that are burnt per spend period. + **/ + burn: Permill & AugmentedConst; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * The maximum number of approvals that can wait in the spending queue. + * + * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. + **/ + maxApprovals: u32 & AugmentedConst; + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The period during which an approved treasury spend has to be claimed. + **/ + payoutPeriod: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Period between successive spends. + **/ + spendPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + uniques: { + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + utility: { + /** + * The limit on the number of batched calls. + **/ + batchedCallsLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + vesting: { + maxVestingSchedules: u32 & AugmentedConst; + /** + * The minimum amount transferred to call `vested_transfer`. + **/ + minVestedTransfer: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + voterList: { + /** + * The list of thresholds separating the various bags. + * + * Ids are separated into unsorted bags according to their score. This specifies the + * thresholds separating the bags. An id's bag is the largest bag for which the id's score + * is less than or equal to its upper threshold. + * + * When ids are iterated, higher bags are iterated completely before lower bags. This means + * that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower + * score, but peer ids within a particular bag are sorted in insertion order. + * + * # Expressing the constant + * + * This constant must be sorted in strictly increasing order. Duplicate items are not + * permitted. + * + * There is an implied upper limit of `Score::MAX`; that value does not need to be + * specified within the bag. For any two threshold lists, if one ends with + * `Score::MAX`, the other one does not, and they are otherwise equal, the two + * lists will behave identically. + * + * # Calculation + * + * It is recommended to generate the set of thresholds in a geometric series, such that + * there exists some constant ratio such that `threshold[k + 1] == (threshold[k] * + * constant_ratio).max(threshold[k] + 1)` for all `k`. + * + * The helpers in the `/utils/frame/generate-bags` module can simplify this calculation. + * + * # Examples + * + * - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and + * iteration is strictly in insertion order. + * - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is equal to 2. + * - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is approximately equal to 1.248. + * - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall + * into bag 0, an id with score 2 will fall into bag 1, etc. + * + * # Migration + * + * In the event that this list ever changes, a copy of the old bags list must be retained. + * With that `List::migrate` can be called, which will perform the appropriate migration. + **/ + bagThresholds: Vec & AugmentedConst; + /** + * Maximum number of accounts that may be re-bagged automatically in `on_idle`. + * + * A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables + * the feature. + **/ + maxAutoRebagPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmpQueue: { + /** + * Maximal number of outbound XCMP channels that can have messages queued at the same time. + * + * If this is reached, then no further messages can be sent to channels that do not yet + * have a message queued. This should be set to the expected maximum of outbound channels + * which is determined by [`Self::ChannelInfo`]. It is important to set this large enough, + * since otherwise the congestion control protocol will not work as intended and messages + * may be dropped. This value increases the PoV and should therefore not be picked too + * high. Governance needs to pay attention to not open more channels than this value. + **/ + maxActiveOutboundChannels: u32 & AugmentedConst; + /** + * The maximum number of inbound XCMP channels that can be suspended simultaneously. + * + * Any further channel suspensions will fail and messages may get dropped without further + * notice. Choosing a high value (1000) is okay; the trade-off that is described in + * [`InboundXcmpSuspended`] still applies at that scale. + **/ + maxInboundSuspended: u32 & AugmentedConst; + /** + * The maximal page size for HRMP message pages. + * + * A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case + * benchmarking. The limit for the size of a message is slightly below this, since some + * overhead is incurred for encoding the format. + **/ + maxPageSize: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/packages/api-augment/src/assetHubPezkuwi/errors.ts b/packages/api-augment/src/assetHubPezkuwi/errors.ts new file mode 100644 index 0000000..9014a5d --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/errors.ts @@ -0,0 +1,2360 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/errors'; + +import type { ApiTypes, AugmentedError } from '@pezkuwi/api-base/types'; + +export type __AugmentedError = AugmentedError; + +declare module '@pezkuwi/api-base/types/errors' { + interface AugmentedErrors { + ahMigrator: { + /** + * The XCM version is invalid. + **/ + BadXcmVersion: AugmentedError; + /** + * The DMP queue priority is already set to the same value. + **/ + DmpQueuePriorityAlreadySet: AugmentedError; + /** + * Failed to bound a call. + **/ + FailedToBoundCall: AugmentedError; + /** + * Vector did not fit into its compile-time bound. + **/ + FailedToBoundVector: AugmentedError; + /** + * Checking account overflow or underflow. + **/ + FailedToCalculateCheckingAccount: AugmentedError; + /** + * Failed to convert RC call to AH call. + **/ + FailedToConvertCall: AugmentedError; + /** + * Failed to convert RC type to AH type. + **/ + FailedToConvertType: AugmentedError; + /** + * Failed to integrate a vesting schedule. + **/ + FailedToIntegrateVestingSchedule: AugmentedError; + /** + * Failed to process an account data from RC. + **/ + FailedToProcessAccount: AugmentedError; + /** + * Failed to unreserve deposit. + **/ + FailedToUnreserveDeposit: AugmentedError; + /** + * Some item could not be inserted because it already exists. + **/ + InsertConflict: AugmentedError; + /** + * The origin is invalid. + **/ + InvalidOrigin: AugmentedError; + /** + * Invalid parameter. + **/ + InvalidParameter: AugmentedError; + /** + * Preimage chunk missing. + **/ + PreimageChunkMissing: AugmentedError; + /** + * Preimage missing. + **/ + PreimageMissing: AugmentedError; + /** + * Failed to fetch preimage. + **/ + PreimageNotFound: AugmentedError; + /** + * Preimage status invalid. + **/ + PreimageStatusInvalid: AugmentedError; + /** + * Preimage too big. + **/ + PreimageTooBig: AugmentedError; + /** + * Failed to send XCM message. + **/ + XcmError: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + ahOps: { + /** + * Not all contributions are withdrawn. + **/ + ContributionsRemaining: AugmentedError; + /** + * Failed to withdraw crowdloan contribution. + **/ + FailedToWithdrawCrowdloanContribution: AugmentedError; + /** + * Internal error, please bug report. + **/ + InternalError: AugmentedError; + /** + * The Asset Hub migration is not completed. + **/ + MigrationNotCompleted: AugmentedError; + /** + * Either no crowdloan contribution or already withdrawn. + **/ + NoCrowdloanContribution: AugmentedError; + /** + * Either no crowdloan reserve or already unreserved. + **/ + NoCrowdloanReserve: AugmentedError; + /** + * Either no lease deposit or already unreserved. + **/ + NoLeaseReserve: AugmentedError; + /** + * Account cannot be migrated since it is not a sovereign parachain account. + **/ + NotSovereign: AugmentedError; + /** + * Block number is not yet reached. + **/ + NotYet: AugmentedError; + /** + * The account is not a derived account. + **/ + WrongDerivedTranslation: AugmentedError; + /** + * The balance is zero. + **/ + ZeroBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetConversion: { + /** + * Provided amount should be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + AmountOneLessThanMinimal: AugmentedError; + /** + * Desired amount can't be equal to the pool reserve. + **/ + AmountOutTooHigh: AugmentedError; + /** + * Provided amount should be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + AmountTwoLessThanMinimal: AugmentedError; + /** + * The minimal amount requirement for the first token in the pair wasn't met. + **/ + AssetOneDepositDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the first token in the pair wasn't met. + **/ + AssetOneWithdrawalDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the second token in the pair wasn't met. + **/ + AssetTwoDepositDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the second token in the pair wasn't met. + **/ + AssetTwoWithdrawalDidNotMeetMinimum: AugmentedError; + /** + * The destination account cannot exist with the swapped funds. + **/ + BelowMinimum: AugmentedError; + /** + * It was not possible to get or increment the Id of the pool. + **/ + IncorrectPoolAssetId: AugmentedError; + /** + * Insufficient liquidity minted. + **/ + InsufficientLiquidityMinted: AugmentedError; + /** + * Provided asset pair is not supported for pool. + **/ + InvalidAssetPair: AugmentedError; + /** + * The provided path must consists of 2 assets at least. + **/ + InvalidPath: AugmentedError; + /** + * The provided path must consists of unique assets. + **/ + NonUniquePath: AugmentedError; + /** + * Optimal calculated amount is less than desired. + **/ + OptimalAmountLessThanDesired: AugmentedError; + /** + * An overflow happened. + **/ + Overflow: AugmentedError; + /** + * Pool already exists. + **/ + PoolExists: AugmentedError; + /** + * The pool doesn't exist. + **/ + PoolNotFound: AugmentedError; + /** + * Provided maximum amount is not sufficient for swap. + **/ + ProvidedMaximumNotSufficientForSwap: AugmentedError; + /** + * Calculated amount out is less than provided minimum amount. + **/ + ProvidedMinimumNotSufficientForSwap: AugmentedError; + /** + * Reserve needs to always be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + ReserveLeftLessThanMinimal: AugmentedError; + /** + * Desired amount can't be zero. + **/ + WrongDesiredAmount: AugmentedError; + /** + * Amount can't be zero. + **/ + ZeroAmount: AugmentedError; + /** + * Requested liquidity can't be zero. + **/ + ZeroLiquidity: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetRate: { + /** + * The given asset ID already has an assigned conversion rate and cannot be re-created. + **/ + AlreadyExists: AugmentedError; + /** + * Overflow ocurred when calculating the inverse rate. + **/ + Overflow: AugmentedError; + /** + * The given asset ID is unknown. + **/ + UnknownAssetKind: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bounties: { + /** + * The bounty cannot be closed because it has active child bounties. + **/ + HasActiveChildBounty: AugmentedError; + /** + * Proposer's balance is too low. + **/ + InsufficientProposersBalance: AugmentedError; + /** + * Invalid bounty fee. + **/ + InvalidFee: AugmentedError; + /** + * No proposal or bounty at that index. + **/ + InvalidIndex: AugmentedError; + /** + * Invalid bounty value. + **/ + InvalidValue: AugmentedError; + /** + * User is not the proposer of the bounty. + **/ + NotProposer: AugmentedError; + /** + * A bounty payout is pending. + * To cancel the bounty, you must unassign and slash the curator. + **/ + PendingPayout: AugmentedError; + /** + * The bounties cannot be claimed/closed because it's still in the countdown period. + **/ + Premature: AugmentedError; + /** + * The reason given is just too big. + **/ + ReasonTooBig: AugmentedError; + /** + * Require bounty curator. + **/ + RequireCurator: AugmentedError; + /** + * Too many approvals are already queued. + **/ + TooManyQueued: AugmentedError; + /** + * The bounty status is unexpected. + **/ + UnexpectedStatus: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + childBounties: { + /** + * The bounty balance is not enough to add new child-bounty. + **/ + InsufficientBountyBalance: AugmentedError; + /** + * The parent bounty is not in active state. + **/ + ParentBountyNotActive: AugmentedError; + /** + * Number of child bounties exceeds limit `MaxActiveChildBountyCount`. + **/ + TooManyChildBounties: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + claims: { + /** + * Invalid Ethereum signature. + **/ + InvalidEthereumSignature: AugmentedError; + /** + * A needed statement was not included. + **/ + InvalidStatement: AugmentedError; + /** + * There's not enough in the pot to pay out some unvested amount. Generally implies a + * logic error. + **/ + PotUnderflow: AugmentedError; + /** + * Account ID sending transaction has no claim. + **/ + SenderHasNoClaim: AugmentedError; + /** + * Ethereum address has no claim. + **/ + SignerHasNoClaim: AugmentedError; + /** + * The account already has a vested balance. + **/ + VestedBalanceExists: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + collatorSelection: { + /** + * Account is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * Account is already an Invulnerable. + **/ + AlreadyInvulnerable: AugmentedError; + /** + * New deposit amount would be below the minimum candidacy bond. + **/ + DepositTooLow: AugmentedError; + /** + * The updated deposit amount is equal to the amount already reserved. + **/ + IdenticalDeposit: AugmentedError; + /** + * Could not insert in the candidate list. + **/ + InsertToCandidateListFailed: AugmentedError; + /** + * Deposit amount is too low to take the target's slot in the candidate list. + **/ + InsufficientBond: AugmentedError; + /** + * Cannot lower candidacy bond while occupying a future collator slot in the list. + **/ + InvalidUnreserve: AugmentedError; + /** + * Account has no associated validator ID. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * Account is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * Account is not an Invulnerable. + **/ + NotInvulnerable: AugmentedError; + /** + * Could not remove from the candidate list. + **/ + RemoveFromCandidateListFailed: AugmentedError; + /** + * The target account to be replaced in the candidate list is not a candidate. + **/ + TargetIsNotCandidate: AugmentedError; + /** + * Leaving would result in too few candidates. + **/ + TooFewEligibleCollators: AugmentedError; + /** + * The pallet has too many candidates. + **/ + TooManyCandidates: AugmentedError; + /** + * There are too many Invulnerables. + **/ + TooManyInvulnerables: AugmentedError; + /** + * Could not update the candidate list. + **/ + UpdateCandidateListFailed: AugmentedError; + /** + * Validator ID is not yet registered. + **/ + ValidatorNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + convictionVoting: { + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed through `remove_vote`. + **/ + AlreadyVoting: AugmentedError; + /** + * The class ID supplied is invalid. + **/ + BadClass: AugmentedError; + /** + * The class must be supplied since it is not easily determinable from the state. + **/ + ClassNeeded: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * The actor has no permission to conduct the action right now but will do in the future. + **/ + NoPermissionYet: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Poll is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * The given account did not vote on the poll. + **/ + NotVoter: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + delegatedStaking: { + /** + * An existing staker cannot perform this action. + **/ + AlreadyStaking: AugmentedError; + /** + * Some corruption in internal state. + **/ + BadState: AugmentedError; + /** + * Delegation conditions are not met. + * + * Possible issues are + * 1) Cannot delegate to self, + * 2) Cannot delegate to multiple delegates. + **/ + InvalidDelegation: AugmentedError; + /** + * Reward Destination cannot be same as `Agent` account. + **/ + InvalidRewardDestination: AugmentedError; + /** + * Not an existing `Agent` account. + **/ + NotAgent: AugmentedError; + /** + * The account cannot perform this operation. + **/ + NotAllowed: AugmentedError; + /** + * Not a Delegator account. + **/ + NotDelegator: AugmentedError; + /** + * The account does not have enough funds to perform the operation. + **/ + NotEnoughFunds: AugmentedError; + /** + * `Agent` has no pending slash to be applied. + **/ + NothingToSlash: AugmentedError; + /** + * Operation not supported by this pallet. + **/ + NotSupported: AugmentedError; + /** + * Unapplied pending slash restricts operation on `Agent`. + **/ + UnappliedSlash: AugmentedError; + /** + * Failed to withdraw amount from Core Staking. + **/ + WithdrawFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + foreignAssets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + indices: { + /** + * The index was not available. + **/ + InUse: AugmentedError; + /** + * The index was not already assigned. + **/ + NotAssigned: AugmentedError; + /** + * The index is assigned to another account. + **/ + NotOwner: AugmentedError; + /** + * The source and destination accounts are identical. + **/ + NotTransfer: AugmentedError; + /** + * The index is permanent and may not be freed/changed. + **/ + Permanent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multiBlockElection: { + /** + * Triggering the `Fallback` failed. + **/ + Fallback: AugmentedError; + /** + * Snapshot was unavailable. + **/ + Snapshot: AugmentedError; + /** + * Unexpected phase + **/ + UnexpectedPhase: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multiBlockElectionSigned: { + /** + * The page index is out of bounds. + **/ + BadPageIndex: AugmentedError; + /** + * Bad witness data provided. + **/ + BadWitnessData: AugmentedError; + /** + * The submission is a duplicate. + **/ + Duplicate: AugmentedError; + /** + * No submission found. + **/ + NoSubmission: AugmentedError; + /** + * The account is not registered. + **/ + NotRegistered: AugmentedError; + /** + * The phase is not signed. + **/ + PhaseNotSigned: AugmentedError; + /** + * The queue is full. + **/ + QueueFull: AugmentedError; + /** + * Round is not yet over. + **/ + RoundNotOver: AugmentedError; + /** + * Too many invulnerable accounts are provided, + **/ + TooManyInvulnerables: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multisig: { + /** + * Call is already approved by this signatory. + **/ + AlreadyApproved: AugmentedError; + /** + * The data to be stored is already stored. + **/ + AlreadyStored: AugmentedError; + /** + * The maximum weight information provided was too low. + **/ + MaxWeightTooLow: AugmentedError; + /** + * Threshold must be 2 or greater. + **/ + MinimumThreshold: AugmentedError; + /** + * Call doesn't need any (more) approvals. + **/ + NoApprovalsNeeded: AugmentedError; + /** + * Multisig operation not found in storage. + **/ + NotFound: AugmentedError; + /** + * No timepoint was given, yet the multisig operation is already underway. + **/ + NoTimepoint: AugmentedError; + /** + * Only the account that originally created the multisig is able to cancel it or update + * its deposits. + **/ + NotOwner: AugmentedError; + /** + * The sender was contained in the other signatories; it shouldn't be. + **/ + SenderInSignatories: AugmentedError; + /** + * The signatories were provided out of order; they should be ordered. + **/ + SignatoriesOutOfOrder: AugmentedError; + /** + * There are too few signatories in the list. + **/ + TooFewSignatories: AugmentedError; + /** + * There are too many signatories in the list. + **/ + TooManySignatories: AugmentedError; + /** + * A timepoint was given, yet no multisig operation is underway. + **/ + UnexpectedTimepoint: AugmentedError; + /** + * A different timepoint was given to the multisig operation that is underway. + **/ + WrongTimepoint: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nominationPools: { + /** + * An account is already delegating in another pool. An account may only belong to one + * pool at a time. + **/ + AccountBelongsToOtherPool: AugmentedError; + /** + * The pool or member delegation has already migrated to delegate stake. + **/ + AlreadyMigrated: AugmentedError; + /** + * Bonding extra is restricted to the exact pending reward amount. + **/ + BondExtraRestricted: AugmentedError; + /** + * The pools state cannot be changed. + **/ + CanNotChangeState: AugmentedError; + /** + * None of the funds can be withdrawn yet because the bonding duration has not passed. + **/ + CannotWithdrawAny: AugmentedError; + /** + * The submitted changes to commission change rate are not allowed. + **/ + CommissionChangeRateNotAllowed: AugmentedError; + /** + * Not enough blocks have surpassed since the last commission update. + **/ + CommissionChangeThrottled: AugmentedError; + /** + * The supplied commission exceeds global maximum commission. + **/ + CommissionExceedsGlobalMaximum: AugmentedError; + /** + * The supplied commission exceeds the max allowed commission. + **/ + CommissionExceedsMaximum: AugmentedError; + /** + * Some error occurred that should never happen. This should be reported to the + * maintainers. + **/ + Defensive: AugmentedError; + /** + * The caller does not have adequate permissions. + **/ + DoesNotHavePermission: AugmentedError; + /** + * The member is fully unbonded (and thus cannot access the bonded and reward pool + * anymore to, for example, collect rewards). + **/ + FullyUnbonding: AugmentedError; + /** + * Pool id provided is not correct/usable. + **/ + InvalidPoolId: AugmentedError; + /** + * The pool's max commission cannot be set higher than the existing value. + **/ + MaxCommissionRestricted: AugmentedError; + /** + * Too many members in the pool or system. + **/ + MaxPoolMembers: AugmentedError; + /** + * The system is maxed out on pools. + **/ + MaxPools: AugmentedError; + /** + * The member cannot unbond further chunks due to reaching the limit. + **/ + MaxUnbondingLimit: AugmentedError; + /** + * Metadata exceeds [`Config::MaxMetadataLen`] + **/ + MetadataExceedsMaxLen: AugmentedError; + /** + * The amount does not meet the minimum bond to either join or create a pool. + * + * The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The + * caller does not have nominating permissions for the pool. Members can never unbond to a + * value below `MinJoinBond`. + **/ + MinimumBondNotMet: AugmentedError; + /** + * No commission current has been set. + **/ + NoCommissionCurrentSet: AugmentedError; + /** + * There is no pending commission to claim. + **/ + NoPendingCommission: AugmentedError; + /** + * A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for + * other members to be permissionlessly unbonded. + **/ + NotDestroying: AugmentedError; + /** + * No imbalance in the ED deposit for the pool. + **/ + NothingToAdjust: AugmentedError; + /** + * No slash pending that can be applied to the member. + **/ + NothingToSlash: AugmentedError; + /** + * Either a) the caller cannot make a valid kick or b) the pool is not destroying. + **/ + NotKickerOrDestroying: AugmentedError; + /** + * The pool or member delegation has not migrated yet to delegate stake. + **/ + NotMigrated: AugmentedError; + /** + * The caller does not have nominating permissions for the pool. + **/ + NotNominator: AugmentedError; + /** + * The pool is not open to join + **/ + NotOpen: AugmentedError; + /** + * This call is not allowed in the current state of the pallet. + **/ + NotSupported: AugmentedError; + /** + * The transaction could not be executed due to overflow risk for the pool. + **/ + OverflowRisk: AugmentedError; + /** + * Partial unbonding now allowed permissionlessly. + **/ + PartialUnbondNotAllowedPermissionlessly: AugmentedError; + /** + * Pool id currently in use. + **/ + PoolIdInUse: AugmentedError; + /** + * An account is not a member. + **/ + PoolMemberNotFound: AugmentedError; + /** + * A (bonded) pool id does not exist. + **/ + PoolNotFound: AugmentedError; + /** + * Account is restricted from participation in pools. This may happen if the account is + * staking in another way already. + **/ + Restricted: AugmentedError; + /** + * A reward pool does not exist. In all cases this is a system logic error. + **/ + RewardPoolNotFound: AugmentedError; + /** + * The slash amount is too low to be applied. + **/ + SlashTooLow: AugmentedError; + /** + * A sub pool does not exist. + **/ + SubPoolsNotFound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parachainSystem: { + /** + * The inherent which supplies the host configuration did not run this block. + **/ + HostConfigurationNotAvailable: AugmentedError; + /** + * No validation function upgrade is currently scheduled. + **/ + NotScheduled: AugmentedError; + /** + * Attempt to upgrade validation function while existing upgrade pending. + **/ + OverlappingUpgrades: AugmentedError; + /** + * Polkadot currently prohibits this parachain from upgrading its validation function. + **/ + ProhibitedByPolkadot: AugmentedError; + /** + * The supplied validation function has compiled into a blob larger than Polkadot is + * willing to run. + **/ + TooBig: AugmentedError; + /** + * The inherent which supplies the validation data did not run this block. + **/ + ValidationDataNotAvailable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + polkadotXcm: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The alias to remove authorization for was not found. + **/ + AliasNotFound: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * Expiry block number is in the past. + **/ + ExpiresInPast: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * Local XCM execution incomplete with the actual XCM error and the index of the + * instruction that caused the error. + **/ + LocalExecutionIncompleteWithError: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * Too many locations authorized to alias origin. + **/ + TooManyAuthorizedAliases: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + poolAssets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + preimage: { + /** + * Preimage has already been noted on-chain. + **/ + AlreadyNoted: AugmentedError; + /** + * The user is not authorized to perform this action. + **/ + NotAuthorized: AugmentedError; + /** + * The preimage cannot be removed since it has not yet been noted. + **/ + NotNoted: AugmentedError; + /** + * The preimage request cannot be removed since no outstanding requests exist. + **/ + NotRequested: AugmentedError; + /** + * A preimage may not be removed when there are outstanding requests. + **/ + Requested: AugmentedError; + /** + * Preimage is too large to store on-chain. + **/ + TooBig: AugmentedError; + /** + * Too few hashes were requested to be upgraded (i.e. zero). + **/ + TooFew: AugmentedError; + /** + * More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once. + **/ + TooMany: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proxy: { + /** + * Account is already a proxy. + **/ + Duplicate: AugmentedError; + /** + * Call may not be made by proxy because it may escalate its privileges. + **/ + NoPermission: AugmentedError; + /** + * Cannot add self as proxy. + **/ + NoSelfProxy: AugmentedError; + /** + * Proxy registration not found. + **/ + NotFound: AugmentedError; + /** + * Sender is not a proxy of the account to be proxied. + **/ + NotProxy: AugmentedError; + /** + * There are too many proxies registered or too many announcements pending. + **/ + TooMany: AugmentedError; + /** + * Announcement, if made at all, was made too recently. + **/ + Unannounced: AugmentedError; + /** + * A call which is incompatible with the proxy type's filter was attempted. + **/ + Unproxyable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + referenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + scheduler: { + /** + * Failed to schedule a call + **/ + FailedToSchedule: AugmentedError; + /** + * Attempt to use a non-named function on a named task. + **/ + Named: AugmentedError; + /** + * Cannot find the scheduled call. + **/ + NotFound: AugmentedError; + /** + * Reschedule failed because it does not change scheduled time. + **/ + RescheduleNoChange: AugmentedError; + /** + * Given target block number is in the past. + **/ + TargetBlockNumberInPast: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + snowbridgeSystemFrontend: { + /** + * Ether could not be burned. + **/ + BurnError: AugmentedError; + /** + * Withdraw fee asset failure + **/ + FeesNotMet: AugmentedError; + /** + * Message export is halted + **/ + Halted: AugmentedError; + /** + * Account could not be converted to a location. + **/ + InvalidAccount: AugmentedError; + /** + * Check location failure, should start from the dispatch origin as owner + **/ + InvalidAssetOwner: AugmentedError; + /** + * Convert to reanchored location failure + **/ + LocationConversionFailed: AugmentedError; + /** + * Send xcm message failure + **/ + SendFailure: AugmentedError; + /** + * Provided tip asset could not be swapped for ether. + **/ + SwapError: AugmentedError; + /** + * The tip provided is zero. + **/ + TipAmountZero: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The asset provided for the tip is unsupported. + **/ + UnsupportedAsset: AugmentedError; + /** + * Convert versioned location failure + **/ + UnsupportedLocationVersion: AugmentedError; + /** + * Unable to withdraw asset. + **/ + WithdrawError: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + staking: { + /** + * Stash is already bonded. + **/ + AlreadyBonded: AugmentedError; + /** + * Rewards for this era have already been claimed for this validator. + **/ + AlreadyClaimed: AugmentedError; + /** + * The stake of this account is already migrated to `Fungible` holds. + **/ + AlreadyMigrated: AugmentedError; + /** + * Controller is already paired. + **/ + AlreadyPaired: AugmentedError; + /** + * Internal state has become somehow corrupted and the operation cannot continue. + **/ + BadState: AugmentedError; + /** + * A nomination target was supplied that was blocked or otherwise not a validator. + **/ + BadTarget: AugmentedError; + /** + * Some bound is not met. + **/ + BoundNotMet: AugmentedError; + /** + * The slash has been cancelled and cannot be applied. + **/ + CancelledSlash: AugmentedError; + /** + * The user has enough bond and thus cannot be chilled forcefully by an external person. + **/ + CannotChillOther: AugmentedError; + /** + * Stash could not be reaped as other pallet might depend on it. + **/ + CannotReapStash: AugmentedError; + /** + * Cannot reset a ledger. + **/ + CannotRestoreLedger: AugmentedError; + /** + * Commission is too low. Must be at least `MinCommission`. + **/ + CommissionTooLow: AugmentedError; + /** + * Used when attempting to use deprecated controller account logic. + **/ + ControllerDeprecated: AugmentedError; + /** + * Duplicate index. + **/ + DuplicateIndex: AugmentedError; + /** + * Targets cannot be empty. + **/ + EmptyTargets: AugmentedError; + /** + * The era is not eligible for pruning. + **/ + EraNotPrunable: AugmentedError; + /** + * Era not yet started. + **/ + EraNotStarted: AugmentedError; + /** + * Attempting to target a stash that still has funds. + **/ + FundedTarget: AugmentedError; + /** + * Incorrect previous history depth input provided. + **/ + IncorrectHistoryDepth: AugmentedError; + /** + * Cannot bond, nominate or validate with value less than the minimum defined by + * governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the + * intention, `chill` first to remove one's role as validator/nominator. + **/ + InsufficientBond: AugmentedError; + /** + * Invalid era to reward. + **/ + InvalidEraToReward: AugmentedError; + /** + * Invalid number of nominations. + **/ + InvalidNumberOfNominations: AugmentedError; + /** + * No nominators exist on this page. + **/ + InvalidPage: AugmentedError; + /** + * Slash record not found. + **/ + InvalidSlashRecord: AugmentedError; + /** + * Can not schedule more unlock chunks. + **/ + NoMoreChunks: AugmentedError; + /** + * Not a controller account. + **/ + NotController: AugmentedError; + /** + * Not enough funds available to withdraw. + **/ + NotEnoughFunds: AugmentedError; + /** + * Not a stash account. + **/ + NotStash: AugmentedError; + /** + * Can not rebond without unlocking chunks. + **/ + NoUnlockChunk: AugmentedError; + /** + * Account is restricted from participation in staking. This may happen if the account is + * staking in another way already, such as via pool. + **/ + Restricted: AugmentedError; + /** + * Provided reward destination is not allowed. + **/ + RewardDestinationRestricted: AugmentedError; + /** + * There are too many nominators in the system. Governance needs to adjust the staking + * settings to keep things safe for the runtime. + **/ + TooManyNominators: AugmentedError; + /** + * Too many nomination targets supplied. + **/ + TooManyTargets: AugmentedError; + /** + * There are too many validator candidates in the system. Governance needs to adjust the + * staking settings to keep things safe for the runtime. + **/ + TooManyValidators: AugmentedError; + /** + * Unapplied slashes in the recently concluded era is blocking this operation. + * See `Call::apply_slash` to apply them. + **/ + UnappliedSlashesInPreviousEra: AugmentedError; + /** + * Operation not allowed for virtual stakers. + **/ + VirtualStakerNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + stateTrieMigration: { + /** + * Bad child root provided. + **/ + BadChildRoot: AugmentedError; + /** + * Bad witness data provided. + **/ + BadWitness: AugmentedError; + /** + * A key was longer than the configured maximum. + * + * This means that the migration halted at the current [`Progress`] and + * can be resumed with a larger [`crate::Config::MaxKeyLen`] value. + * Retrying with the same [`crate::Config::MaxKeyLen`] value will not work. + * The value should only be increased to avoid a storage migration for the currently + * stored [`crate::Progress::LastKey`]. + **/ + KeyTooLong: AugmentedError; + /** + * Max signed limits not respected. + **/ + MaxSignedLimits: AugmentedError; + /** + * submitter does not have enough funds. + **/ + NotEnoughFunds: AugmentedError; + /** + * Signed migration is not allowed because the maximum limit is not set yet. + **/ + SignedMigrationNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * The specified [`Task`] failed during execution. + **/ + FailedTask: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * The specified [`Task`] is not valid. + **/ + InvalidTask: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + treasury: { + /** + * The payment has already been attempted. + **/ + AlreadyAttempted: AugmentedError; + /** + * The spend is not yet eligible for payout. + **/ + EarlyPayout: AugmentedError; + /** + * The balance of the asset kind is not convertible to the balance of the native asset. + **/ + FailedToConvertBalance: AugmentedError; + /** + * The payment has neither failed nor succeeded yet. + **/ + Inconclusive: AugmentedError; + /** + * The spend origin is valid but the amount it is allowed to spend is lower than the + * amount to be spent. + **/ + InsufficientPermission: AugmentedError; + /** + * No proposal, bounty or spend at that index. + **/ + InvalidIndex: AugmentedError; + /** + * The payout was not yet attempted/claimed. + **/ + NotAttempted: AugmentedError; + /** + * There was some issue with the mechanism of payment. + **/ + PayoutError: AugmentedError; + /** + * Proposal has not been approved. + **/ + ProposalNotApproved: AugmentedError; + /** + * The spend has expired and cannot be claimed. + **/ + SpendExpired: AugmentedError; + /** + * Too many approvals in the queue. + **/ + TooManyApprovals: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + uniques: { + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * An attribute is not found. + **/ + AttributeNotFound: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * The item or collection is frozen. + **/ + Frozen: AugmentedError; + /** + * The item ID is already taken. + **/ + InUse: AugmentedError; + /** + * The item is locked. + **/ + Locked: AugmentedError; + /** + * The max supply has already been set. + **/ + MaxSupplyAlreadySet: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less to the amount of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * There is no delegate approved. + **/ + NoDelegate: AugmentedError; + /** + * No metadata is found. + **/ + NoMetadata: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The named owner has not signed ownership of the collection is acceptable. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Wrong attribute key/value bytes supplied. + **/ + WrongAttribute: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * Wrong metadata key/value bytes supplied. + **/ + WrongMetadata: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + utility: { + /** + * Too many calls batched. + **/ + TooManyCalls: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + vesting: { + /** + * Amount being transferred is too low to create a vesting schedule. + **/ + AmountLow: AugmentedError; + /** + * The account already has `MaxVestingSchedules` count of schedules and thus + * cannot add another one. Consider merging existing schedules in order to add another. + **/ + AtMaxVestingSchedules: AugmentedError; + /** + * Failed to create a new schedule because some parameter was invalid. + **/ + InvalidScheduleParams: AugmentedError; + /** + * The account given is not vesting. + **/ + NotVesting: AugmentedError; + /** + * An index was out of bounds of the vesting schedules. + **/ + ScheduleIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + voterList: { + /** + * A error in the list interface implementation. + **/ + List: AugmentedError; + /** + * Could not update a node, because the pallet is locked. + **/ + Locked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + whitelist: { + /** + * The call was already whitelisted; No-Op. + **/ + CallAlreadyWhitelisted: AugmentedError; + /** + * The call was not whitelisted. + **/ + CallIsNotWhitelisted: AugmentedError; + /** + * The weight of the decoded call was higher than the witness. + **/ + InvalidCallWeightWitness: AugmentedError; + /** + * The preimage of the call hash could not be loaded. + **/ + UnavailablePreImage: AugmentedError; + /** + * The call could not be decoded. + **/ + UndecodableCall: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmpQueue: { + /** + * The execution is already resumed. + **/ + AlreadyResumed: AugmentedError; + /** + * The execution is already suspended. + **/ + AlreadySuspended: AugmentedError; + /** + * Setting the queue config failed since one of its values was invalid. + **/ + BadQueueConfig: AugmentedError; + /** + * The message is too big. + **/ + TooBig: AugmentedError; + /** + * There are too many active outbound channels. + **/ + TooManyActiveOutboundChannels: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/packages/api-augment/src/assetHubPezkuwi/events.ts b/packages/api-augment/src/assetHubPezkuwi/events.ts new file mode 100644 index 0000000..4d2c4dc --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/events.ts @@ -0,0 +1,2128 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/events'; + +import type { ApiTypes, AugmentedEvent } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, Perbill, Permill } from '@pezkuwi/types/interfaces/runtime'; +import type { AssetHubPezkuwiRuntimeProxyType, AssetHubPezkuwiRuntimeRuntimeParametersKey, AssetHubPezkuwiRuntimeRuntimeParametersValue, AssetHubPezkuwiRuntimeRuntimeTask, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezframeSupportDispatchPostDispatchInfo, PezframeSupportMessagesProcessMessageError, PezframeSupportPreimagesBounded, PezframeSupportTokensMiscBalanceStatus, PezframeSystemDispatchEventInfo, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezpalletAhMigratorMigrationStage, PezpalletAhMigratorPezpalletEventName, PezpalletBalancesUnexpectedKind, PezpalletConvictionVotingTally, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiBlockPhase, PezpalletElectionProviderMultiBlockVerifierFeasibilityError, PezpalletMultisigTimepoint, PezpalletNftsAttributeNamespace, PezpalletNftsPezpalletAttributes, PezpalletNftsPriceWithDirection, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsPoolState, PezpalletProxyDepositKind, PezpalletRcMigratorQueuePriority, PezpalletStakingAsyncForcing, PezpalletStakingAsyncPezpalletUnexpectedKind, PezpalletStakingAsyncRcClientUnexpectedKind, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncValidatorPrefs, PezpalletStateTrieMigrationError, PezpalletStateTrieMigrationMigrationCompute, PezspNposElectionsElectionScore, PezspRuntimeDispatchError, PezspRuntimeDispatchErrorWithPostInfo, PezspWeightsWeightV2Weight, SnowbridgeCoreOperatingModeBasicOperatingMode, StagingXcmV5AssetAssets, StagingXcmV5Location, StagingXcmV5Response, StagingXcmV5TraitsOutcome, StagingXcmV5Xcm, TeyrchainsCommonPayVersionedLocatableAccount, XcmV3TraitsSendError, XcmV5TraitsError, XcmVersionedAssets, XcmVersionedLocation } from '@pezkuwi/types/lookup'; + +export type __AugmentedEvent = AugmentedEvent; + +declare module '@pezkuwi/api-base/types/events' { + interface AugmentedEvents { + ahMigrator: { + AccountTranslatedParachainSovereign: AugmentedEvent; + AccountTranslatedParachainSovereignDerived: AugmentedEvent; + /** + * The Asset Hub Migration finished. + * + * This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier + * to understand. The finishing is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationFinished: AugmentedEvent; + /** + * The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is + * emitted. + * + * This event is equivalent to `StageTransition { new: DataMigrationOngoing, .. }` but is + * easier to understand. The activation is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationStarted: AugmentedEvent; + /** + * The balances before the migration were consumed. + **/ + BalancesBeforeRecordConsumed: AugmentedEvent; + /** + * The balances before the migration were recorded. + **/ + BalancesBeforeRecordSet: AugmentedEvent; + /** + * We processed a batch of messages for this pallet. + **/ + BatchProcessed: AugmentedEvent; + /** + * We received a batch of messages that will be integrated into a pallet. + **/ + BatchReceived: AugmentedEvent; + /** + * The DMP queue priority config was set. + **/ + DmpQueuePriorityConfigSet: AugmentedEvent; + /** + * Whether the DMP queue was prioritized for the next block. + **/ + DmpQueuePrioritySet: AugmentedEvent; + /** + * Failed to unreserve a multisig deposit. + **/ + FailedToUnreserveMultisigDeposit: AugmentedEvent; + /** + * Failed to unreserve a legacy status preimage deposit. + **/ + FailedToUnreservePreimageDeposit: AugmentedEvent; + /** + * The manager account id was set. + **/ + ManagerSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * A referendum was cancelled because it could not be mapped. + **/ + ReferendumCanceled: AugmentedEvent; + /** + * A stage transition has occurred. + **/ + StageTransition: AugmentedEvent; + /** + * An XCM message was sent. + **/ + XcmSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + ahOps: { + /** + * Some amount for a crowdloan reserve could not be unreserved and needs manual cleanup. + **/ + CrowdloanUnreserveRemaining: AugmentedEvent; + /** + * Some lease reserve could not be unreserved and needs manual cleanup. + **/ + LeaseUnreserveRemaining: AugmentedEvent; + /** + * A sovereign parachain account has been migrated from its child to sibling + * representation. + **/ + SovereignMigrated: AugmentedEvent], { paraId: u32, from: AccountId32, to: AccountId32, derivationIndex: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetConversion: { + /** + * A successful call of the `AddLiquidity` extrinsic will create this event. + **/ + LiquidityAdded: AugmentedEvent, amount1Provided: u128, amount2Provided: u128, lpToken: u32, lpTokenMinted: u128], { who: AccountId32, mintTo: AccountId32, poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, amount1Provided: u128, amount2Provided: u128, lpToken: u32, lpTokenMinted: u128 }>; + /** + * A successful call of the `RemoveLiquidity` extrinsic will create this event. + **/ + LiquidityRemoved: AugmentedEvent, amount1: u128, amount2: u128, lpToken: u32, lpTokenBurned: u128, withdrawalFee: Permill], { who: AccountId32, withdrawTo: AccountId32, poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, amount1: u128, amount2: u128, lpToken: u32, lpTokenBurned: u128, withdrawalFee: Permill }>; + /** + * A successful call of the `CreatePool` extrinsic will create this event. + **/ + PoolCreated: AugmentedEvent, poolAccount: AccountId32, lpToken: u32], { creator: AccountId32, poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, poolAccount: AccountId32, lpToken: u32 }>; + /** + * Assets have been converted from one to another. + **/ + SwapCreditExecuted: AugmentedEvent>], { amountIn: u128, amountOut: u128, path: Vec> }>; + /** + * Assets have been converted from one to another. Both `SwapExactTokenForToken` + * and `SwapTokenForExactToken` will generate this event. + **/ + SwapExecuted: AugmentedEvent>], { who: AccountId32, sendTo: AccountId32, amountIn: u128, amountOut: u128, path: Vec> }>; + /** + * Pool has been touched in order to fulfill operational requirements. + **/ + Touched: AugmentedEvent, who: AccountId32], { poolId: ITuple<[StagingXcmV5Location, StagingXcmV5Location]>, who: AccountId32 }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetRate: { + AssetRateCreated: AugmentedEvent; + AssetRateRemoved: AugmentedEvent; + AssetRateUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetTxPayment: { + /** + * A swap of the refund in native currency back to asset failed. + **/ + AssetRefundFailed: AugmentedEvent; + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who` in an asset `asset_id`. + **/ + AssetTxFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent; + /** + * An unexpected/defensive event was triggered. + **/ + Unexpected: AugmentedEvent; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bounties: { + /** + * A bounty is approved. + **/ + BountyApproved: AugmentedEvent; + /** + * A bounty is awarded to a beneficiary. + **/ + BountyAwarded: AugmentedEvent; + /** + * A bounty proposal is funded and became active. + **/ + BountyBecameActive: AugmentedEvent; + /** + * A bounty is cancelled. + **/ + BountyCanceled: AugmentedEvent; + /** + * A bounty is claimed by beneficiary. + **/ + BountyClaimed: AugmentedEvent; + /** + * A bounty expiry is extended. + **/ + BountyExtended: AugmentedEvent; + /** + * New bounty proposal. + **/ + BountyProposed: AugmentedEvent; + /** + * A bounty proposal was rejected; funds were slashed. + **/ + BountyRejected: AugmentedEvent; + /** + * A bounty curator is accepted. + **/ + CuratorAccepted: AugmentedEvent; + /** + * A bounty curator is proposed. + **/ + CuratorProposed: AugmentedEvent; + /** + * A bounty curator is unassigned. + **/ + CuratorUnassigned: AugmentedEvent; + /** + * A bounty deposit has been poked. + **/ + DepositPoked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + childBounties: { + /** + * A child-bounty is added. + **/ + Added: AugmentedEvent; + /** + * A child-bounty is awarded to a beneficiary. + **/ + Awarded: AugmentedEvent; + /** + * A child-bounty is cancelled. + **/ + Canceled: AugmentedEvent; + /** + * A child-bounty is claimed by beneficiary. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + claims: { + /** + * Someone claimed some DOTs. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + collatorSelection: { + /** + * A new candidate joined. + **/ + CandidateAdded: AugmentedEvent; + /** + * Bond of a candidate updated. + **/ + CandidateBondUpdated: AugmentedEvent; + /** + * A candidate was removed. + **/ + CandidateRemoved: AugmentedEvent; + /** + * An account was replaced in the candidate list by another one. + **/ + CandidateReplaced: AugmentedEvent; + /** + * An account was unable to be added to the Invulnerables because they did not have keys + * registered. Other Invulnerables may have been set. + **/ + InvalidInvulnerableSkipped: AugmentedEvent; + /** + * A new Invulnerable was added. + **/ + InvulnerableAdded: AugmentedEvent; + /** + * An Invulnerable was removed. + **/ + InvulnerableRemoved: AugmentedEvent; + /** + * The candidacy bond was set. + **/ + NewCandidacyBond: AugmentedEvent; + /** + * The number of desired candidates was set. + **/ + NewDesiredCandidates: AugmentedEvent; + /** + * New Invulnerables were set. + **/ + NewInvulnerables: AugmentedEvent], { invulnerables: Vec }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + convictionVoting: { + /** + * An account has delegated their vote to another account. \[who, target\] + **/ + Delegated: AugmentedEvent; + /** + * An \[account\] has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An account has voted + **/ + Voted: AugmentedEvent; + /** + * A vote has been removed + **/ + VoteRemoved: AugmentedEvent; + /** + * The lockup period of a conviction vote expired, and the funds have been unlocked. + **/ + VoteUnlocked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + cumulusXcm: { + /** + * Downward message executed with the given outcome. + * \[ id, outcome \] + **/ + ExecutedDownward: AugmentedEvent; + /** + * Downward message is invalid XCM. + * \[ id \] + **/ + InvalidFormat: AugmentedEvent; + /** + * Downward message is unsupported version of XCM. + * \[ id \] + **/ + UnsupportedVersion: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + delegatedStaking: { + /** + * Funds delegated by a delegator. + **/ + Delegated: AugmentedEvent; + /** + * Unclaimed delegation funds migrated to delegator. + **/ + MigratedDelegation: AugmentedEvent; + /** + * Funds released to a delegator. + **/ + Released: AugmentedEvent; + /** + * Funds slashed from a delegator. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + foreignAssets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + indices: { + /** + * A deposit to reserve an index has been poked/reconsidered. + **/ + DepositPoked: AugmentedEvent; + /** + * A account index was assigned. + **/ + IndexAssigned: AugmentedEvent; + /** + * A account index has been freed up (unassigned). + **/ + IndexFreed: AugmentedEvent; + /** + * A account index has been frozen to its current account ID. + **/ + IndexFrozen: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent; + /** + * Message is processed. + **/ + Processed: AugmentedEvent; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockElection: { + /** + * A phase transition happened. Only checks major changes in the variants, not minor inner + * values. + **/ + PhaseTransitioned: AugmentedEvent; + /** + * Target snapshot creation failed + **/ + UnexpectedTargetSnapshotFailed: AugmentedEvent; + /** + * Voter snapshot creation failed + **/ + UnexpectedVoterSnapshotFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockElectionSigned: { + /** + * The given account has bailed. + **/ + Bailed: AugmentedEvent; + /** + * The given account has been discarded. + **/ + Discarded: AugmentedEvent; + /** + * The given solution, for the given round, was ejected. + **/ + Ejected: AugmentedEvent; + /** + * Upcoming submission has been registered for the given account, with the given score. + **/ + Registered: AugmentedEvent; + /** + * The given account has been rewarded with the given amount. + **/ + Rewarded: AugmentedEvent; + /** + * The given account has been slashed with the given amount. + **/ + Slashed: AugmentedEvent; + /** + * A page of solution solution with the given index has been stored for the given account. + **/ + Stored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockElectionVerifier: { + /** + * A solution with the given score has replaced our current best solution. + **/ + Queued: AugmentedEvent]>; + /** + * A verification failed at the given page. + * + * NOTE: if the index is 0, then this could mean either the feasibility of the last page + * was wrong, or the final checks of `finalize_verification` failed. + **/ + VerificationFailed: AugmentedEvent; + /** + * The given page of a solution has been verified, with the given number of winners being + * found in it. + **/ + Verified: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multisig: { + /** + * The deposit for a multisig operation has been updated/poked. + **/ + DepositPoked: AugmentedEvent; + /** + * A multisig operation has been approved by someone. + **/ + MultisigApproval: AugmentedEvent; + /** + * A multisig operation has been cancelled. + **/ + MultisigCancelled: AugmentedEvent; + /** + * A multisig operation has been executed. + **/ + MultisigExecuted: AugmentedEvent], { approving: AccountId32, timepoint: PezpalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result }>; + /** + * A new multisig operation has begun. + **/ + NewMultisig: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent, key: Bytes, namespace: PezpalletNftsAttributeNamespace], { collection: u32, maybeItem: Option, key: Bytes, namespace: PezpalletNftsAttributeNamespace }>; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent, key: Bytes, value: Bytes, namespace: PezpalletNftsAttributeNamespace], { collection: u32, maybeItem: Option, key: Bytes, value: Bytes, namespace: PezpalletNftsAttributeNamespace }>; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent], { collection: u32, item: u32, price: u128, whitelistedBuyer: Option }>; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent], { nextId: Option }>; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent], { who: AccountId32, maybeCollection: Option }>; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent, attribute: PezpalletNftsPezpalletAttributes, value: Bytes], { collection: u32, item: Option, attribute: PezpalletNftsPezpalletAttributes, value: Bytes }>; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent], { collection: u32, successfulItems: Vec }>; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent, price: Option, deadline: u32], { offeredCollection: u32, offeredItem: u32, desiredCollection: u32, desiredItem: Option, price: Option, deadline: u32 }>; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent, deadline: u32], { sentCollection: u32, sentItem: u32, sentItemOwner: AccountId32, receivedCollection: u32, receivedItem: u32, receivedItemOwner: AccountId32, price: Option, deadline: u32 }>; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent, price: Option, deadline: u32], { offeredCollection: u32, offeredItem: u32, desiredCollection: u32, desiredItem: Option, price: Option, deadline: u32 }>; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent, admin: Option, freezer: Option], { collection: u32, issuer: Option, admin: Option, freezer: Option }>; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent], { collection: u32, item: u32, owner: AccountId32, delegate: AccountId32, deadline: Option }>; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nominationPools: { + /** + * A member has became bonded in a pool. + **/ + Bonded: AugmentedEvent; + /** + * A pool has been created. + **/ + Created: AugmentedEvent; + /** + * A pool has been destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * Global parameters regulating nomination pools have been updated. + **/ + GlobalParamsUpdated: AugmentedEvent, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option], { minJoinBond: u128, minCreateBond: u128, maxPools: Option, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option }>; + /** + * A pool member's claim permission has been updated. + **/ + MemberClaimPermissionUpdated: AugmentedEvent; + /** + * A member has been removed from a pool. + * + * The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). + * Any funds that are still delegated (i.e. dangling delegation) are released and are + * represented by `released_balance`. + **/ + MemberRemoved: AugmentedEvent; + /** + * A pool's metadata was updated. + **/ + MetadataUpdated: AugmentedEvent; + /** + * Topped up deficit in frozen ED of the reward pool. + **/ + MinBalanceDeficitAdjusted: AugmentedEvent; + /** + * Claimed excess frozen ED of af the reward pool. + **/ + MinBalanceExcessAdjusted: AugmentedEvent; + /** + * A payout has been made to a member. + **/ + PaidOut: AugmentedEvent; + /** + * A pool's commission `change_rate` has been changed. + **/ + PoolCommissionChangeRateUpdated: AugmentedEvent; + /** + * Pool commission has been claimed. + **/ + PoolCommissionClaimed: AugmentedEvent; + /** + * Pool commission claim permission has been updated. + **/ + PoolCommissionClaimPermissionUpdated: AugmentedEvent], { poolId: u32, permission: Option }>; + /** + * A pool's commission setting has been changed. + **/ + PoolCommissionUpdated: AugmentedEvent>], { poolId: u32, current: Option> }>; + /** + * A pool's maximum commission setting has been changed. + **/ + PoolMaxCommissionUpdated: AugmentedEvent; + /** + * A pool's nominating account (or the pool's root account) has nominated a validator set + * on behalf of the pool. + **/ + PoolNominationMade: AugmentedEvent; + /** + * The pool is chilled i.e. no longer nominating. + **/ + PoolNominatorChilled: AugmentedEvent; + /** + * The active balance of pool `pool_id` has been slashed to `balance`. + **/ + PoolSlashed: AugmentedEvent; + /** + * The roles of a pool have been updated to the given new roles. Note that the depositor + * can never change. + **/ + RolesUpdated: AugmentedEvent, bouncer: Option, nominator: Option], { root: Option, bouncer: Option, nominator: Option }>; + /** + * The state of a pool has changed + **/ + StateChanged: AugmentedEvent; + /** + * A member has unbonded from their pool. + * + * - `balance` is the corresponding balance of the number of points that has been + * requested to be unbonded (the argument of the `unbond` transaction) from the bonded + * pool. + * - `points` is the number of points that are issued as a result of `balance` being + * dissolved into the corresponding unbonding pool. + * - `era` is the era in which the balance will be unbonded. + * In the absence of slashing, these values will match. In the presence of slashing, the + * number of points that are issued in the unbonding pool will be less than the amount + * requested to be unbonded. + **/ + Unbonded: AugmentedEvent; + /** + * The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. + **/ + UnbondingPoolSlashed: AugmentedEvent; + /** + * A member has withdrawn from their pool. + * + * The given number of `points` have been dissolved in return of `balance`. + * + * Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance + * will be 1. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parachainSystem: { + /** + * Downward messages were processed using the given weight. + **/ + DownwardMessagesProcessed: AugmentedEvent; + /** + * Some downward messages have been received and will be processed. + **/ + DownwardMessagesReceived: AugmentedEvent; + /** + * An upward message was sent to the relay chain. + **/ + UpwardMessageSent: AugmentedEvent], { messageHash: Option }>; + /** + * The validation function was applied as of the contained relay chain block number. + **/ + ValidationFunctionApplied: AugmentedEvent; + /** + * The relay-chain aborted the upgrade process. + **/ + ValidationFunctionDiscarded: AugmentedEvent; + /** + * The validation function has been scheduled to apply. + **/ + ValidationFunctionStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent, newValue: Option], { key: AssetHubPezkuwiRuntimeRuntimeParametersKey, oldValue: Option, newValue: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + polkadotXcm: { + /** + * `target` removed alias authorization for `aliaser`. + **/ + AliasAuthorizationRemoved: AugmentedEvent; + /** + * An `aliaser` location was authorized by `target` to alias it, authorization valid until + * `expiry` block number. + **/ + AliasAuthorized: AugmentedEvent], { aliaser: StagingXcmV5Location, target: StagingXcmV5Location, expiry: Option }>; + /** + * `target` removed all alias authorizations. + **/ + AliasesAuthorizationsRemoved: AugmentedEvent; + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedQuerier: StagingXcmV5Location, maybeActualQuerier: Option }>; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedLocation: Option }>; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent; + /** + * An XCM message failed to process. + **/ + ProcessXcmError: AugmentedEvent; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent; + /** + * An XCM message failed to send. + **/ + SendFailed: AugmentedEvent; + /** + * An XCM message was sent. + **/ + Sent: AugmentedEvent; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + poolAssets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + preimage: { + /** + * A preimage has ben cleared. + **/ + Cleared: AugmentedEvent; + /** + * A preimage has been noted. + **/ + Noted: AugmentedEvent; + /** + * A preimage has been requested. + **/ + Requested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proxy: { + /** + * An announcement was placed to make a call in the future. + **/ + Announced: AugmentedEvent; + /** + * A deposit stored for proxies or announcements was poked / updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A proxy was added. + **/ + ProxyAdded: AugmentedEvent; + /** + * A proxy was executed correctly, with the given. + **/ + ProxyExecuted: AugmentedEvent], { result: Result }>; + /** + * A proxy was removed. + **/ + ProxyRemoved: AugmentedEvent; + /** + * A pure account has been created by new proxy with given + * disambiguation index and proxy type. + **/ + PureCreated: AugmentedEvent; + /** + * A pure proxy was killed by its spawner. + **/ + PureKilled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + referenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + scheduler: { + /** + * Agenda is incomplete from `when`. + **/ + AgendaIncomplete: AugmentedEvent; + /** + * The call for the provided hash was not found so the task has been aborted. + **/ + CallUnavailable: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Canceled some task. + **/ + Canceled: AugmentedEvent; + /** + * Dispatched some task. + **/ + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; + /** + * The given task was unable to be renewed since the agenda is full at that block. + **/ + PeriodicFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task can never be executed since it is overweight. + **/ + PermanentlyOverweight: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Cancel a retry configuration for some task. + **/ + RetryCancelled: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task was unable to be retried since the agenda is full at that block or there + * was not enough weight to reschedule it. + **/ + RetryFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Set a retry configuration for some task. + **/ + RetrySet: AugmentedEvent, id: Option, period: u32, retries: u8], { task: ITuple<[u32, u32]>, id: Option, period: u32, retries: u8 }>; + /** + * Scheduled some task. + **/ + Scheduled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * The `NewSession` event in the current block also implies a new validator set to be + * queued. + **/ + NewQueued: AugmentedEvent; + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Validator has been disabled. + **/ + ValidatorDisabled: AugmentedEvent; + /** + * Validator has been re-enabled. + **/ + ValidatorReenabled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + snowbridgeSystemFrontend: { + /** + * Set OperatingMode + **/ + ExportOperatingModeChanged: AugmentedEvent; + /** + * An XCM was sent + **/ + MessageSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + staking: { + /** + * An account has bonded this amount. \[stash, amount\] + * + * NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, + * it will not be emitted for staking rewards when they are added to stake. + **/ + Bonded: AugmentedEvent; + /** + * An account has stopped participating as either a validator or nominator. + **/ + Chilled: AugmentedEvent; + /** + * Report of a controller batch deprecation. + **/ + ControllerBatchDeprecated: AugmentedEvent; + /** + * Staking balance migrated from locks to holds, with any balance that could not be held + * is force withdrawn. + **/ + CurrencyMigrated: AugmentedEvent; + /** + * The era payout has been set; the first balance is the validator-payout; the second is + * the remainder from the maximum amount of reward. + **/ + EraPaid: AugmentedEvent; + /** + * An old era with the given index was pruned. + **/ + EraPruned: AugmentedEvent; + ForceEra: AugmentedEvent; + /** + * A nominator has been kicked from a validator. + **/ + Kicked: AugmentedEvent; + /** + * An offence for the given validator, for the given percentage of their stake, at the + * given era as been reported. + **/ + OffenceReported: AugmentedEvent; + /** + * An offence was reported that was too old to be processed, and thus was dropped. + **/ + OffenceTooOld: AugmentedEvent; + /** + * An old slashing report from a prior era was discarded because it could + * not be processed. + **/ + OldSlashingReportDiscarded: AugmentedEvent; + /** + * A page from a multi-page election was fetched. A number of these are followed by + * `StakersElected`. + * + * `Ok(count)` indicates the give number of stashes were added. + * `Err(index)` indicates that the stashes after index were dropped. + * `Err(0)` indicates that an error happened but no stashes were dropped nor added. + * + * The error indicates that a number of validators were dropped due to excess size, but + * the overall election will continue. + **/ + PagedElectionProceeded: AugmentedEvent], { page: u32, result: Result }>; + /** + * A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed. + **/ + PayoutStarted: AugmentedEvent], { eraIndex: u32, validatorStash: AccountId32, page: u32, next: Option }>; + /** + * The nominator has been rewarded by this amount to this destination. + **/ + Rewarded: AugmentedEvent; + /** + * Session change has been triggered. + * + * If planned_era is one era ahead of active_era, it implies new era is being planned and + * election is ongoing. + **/ + SessionRotated: AugmentedEvent; + /** + * An unapplied slash has been cancelled. + **/ + SlashCancelled: AugmentedEvent; + /** + * An offence has been processed and the corresponding slash has been computed. + **/ + SlashComputed: AugmentedEvent; + /** + * A staker (validator or nominator) has been slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * Targets size limit reached. + **/ + SnapshotTargetsSizeExceeded: AugmentedEvent; + /** + * Voters size limit reached. + **/ + SnapshotVotersSizeExceeded: AugmentedEvent; + /** + * A subsequent event of `Withdrawn`, indicating that `stash` was fully removed from the + * system. + **/ + StakerRemoved: AugmentedEvent; + /** + * An account has unbonded this amount. + **/ + Unbonded: AugmentedEvent; + /** + * Something occurred that should never happen under normal operation. + * Logged as an event for fail-safe observability. + **/ + Unexpected: AugmentedEvent; + /** + * A validator has set their preferences. + **/ + ValidatorPrefsSet: AugmentedEvent; + /** + * An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` + * from the unlocking queue. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stakingRcClient: { + /** + * A new offence was reported. + **/ + OffenceReceived: AugmentedEvent; + /** + * A said session report was received. + **/ + SessionReportReceived: AugmentedEvent>, validatorPointsCounts: u32, leftover: bool], { endIndex: u32, activationTimestamp: Option>, validatorPointsCounts: u32, leftover: bool }>; + /** + * Something occurred that should never happen under normal operation. + * Logged as an event for fail-safe observability. + **/ + Unexpected: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stateTrieMigration: { + /** + * The auto migration task finished. + **/ + AutoMigrationFinished: AugmentedEvent; + /** + * Migration got halted due to an error or miss-configuration. + **/ + Halted: AugmentedEvent; + /** + * Given number of `(top, child)` keys were migrated respectively, with the given + * `compute`. + **/ + Migrated: AugmentedEvent; + /** + * Some account got slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * An invalid authorized upgrade was rejected while trying to apply it. + **/ + RejectedInvalidAuthorizedUpgrade: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent; + /** + * A [`Task`] has finished executing. + **/ + TaskCompleted: AugmentedEvent; + /** + * A [`Task`] failed during execution. + **/ + TaskFailed: AugmentedEvent; + /** + * A [`Task`] has started executing + **/ + TaskStarted: AugmentedEvent; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + toKusamaXcmRouter: { + /** + * Delivery fee factor has been decreased. + **/ + DeliveryFeeFactorDecreased: AugmentedEvent; + /** + * Delivery fee factor has been increased. + **/ + DeliveryFeeFactorIncreased: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + treasury: { + /** + * A new asset spend proposal has been approved. + **/ + AssetSpendApproved: AugmentedEvent; + /** + * An approved spend was voided. + **/ + AssetSpendVoided: AugmentedEvent; + /** + * Some funds have been allocated. + **/ + Awarded: AugmentedEvent; + /** + * Some of our funds have been burnt. + **/ + Burnt: AugmentedEvent; + /** + * Some funds have been deposited. + **/ + Deposit: AugmentedEvent; + /** + * A payment happened. + **/ + Paid: AugmentedEvent; + /** + * A payment failed and can be retried. + **/ + PaymentFailed: AugmentedEvent; + /** + * Spending has finished; this is the amount that rolls over until next spend. + **/ + Rollover: AugmentedEvent; + /** + * A new spend proposal has been approved. + **/ + SpendApproved: AugmentedEvent; + /** + * We have ended a spend period and will now allocate funds. + **/ + Spending: AugmentedEvent; + /** + * A spend was processed and removed from the storage. It might have been successfully + * paid or it may have expired. + **/ + SpendProcessed: AugmentedEvent; + /** + * The inactive funds of the pallet have been updated. + **/ + UpdatedInactive: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + uniques: { + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent, key: Bytes], { collection: u32, maybeItem: Option, key: Bytes }>; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent, key: Bytes, value: Bytes], { collection: u32, maybeItem: Option, key: Bytes, value: Bytes }>; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some `collection` was frozen. + **/ + CollectionFrozen: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent; + /** + * Some `collection` was thawed. + **/ + CollectionThawed: AugmentedEvent; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some `item` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent; + /** + * The price for the instance was removed. + **/ + ItemPriceRemoved: AugmentedEvent; + /** + * The price was set for the instance. + **/ + ItemPriceSet: AugmentedEvent], { collection: u32, item: u32, price: u128, whitelistedBuyer: Option }>; + /** + * A `collection` has had its attributes changed by the `Force` origin. + **/ + ItemStatusChanged: AugmentedEvent; + /** + * Metadata has been cleared for an item. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an item. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent], { who: AccountId32, maybeCollection: Option }>; + /** + * Metadata has been cleared for an item. + **/ + Redeposited: AugmentedEvent], { collection: u32, successfulItems: Vec }>; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some `item` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + utility: { + /** + * Batch of dispatches completed fully with no error. + **/ + BatchCompleted: AugmentedEvent; + /** + * Batch of dispatches completed but has errors. + **/ + BatchCompletedWithErrors: AugmentedEvent; + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + **/ + BatchInterrupted: AugmentedEvent; + /** + * A call was dispatched. + **/ + DispatchedAs: AugmentedEvent], { result: Result }>; + /** + * The fallback call was dispatched. + **/ + IfElseFallbackCalled: AugmentedEvent; + /** + * Main call was dispatched. + **/ + IfElseMainSuccess: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with no error. + **/ + ItemCompleted: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with error. + **/ + ItemFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + vesting: { + /** + * An \[account\] has become fully vested. + **/ + VestingCompleted: AugmentedEvent; + /** + * A vesting schedule has been created. + **/ + VestingCreated: AugmentedEvent; + /** + * The amount vested has been updated. This could indicate a change in funds available. + * The balance given is the amount which is left unvested (and thus locked). + **/ + VestingUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + voterList: { + /** + * Moved an account from one bag to another. + **/ + Rebagged: AugmentedEvent; + /** + * Updated the score of some account to the given amount. + **/ + ScoreUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + whitelist: { + CallWhitelisted: AugmentedEvent; + WhitelistedCallDispatched: AugmentedEvent], { callHash: H256, result: Result }>; + WhitelistedCallRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmpQueue: { + /** + * An HRMP message was sent to a sibling parachain. + **/ + XcmpMessageSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/packages/api-augment/src/assetHubPezkuwi/index.ts b/packages/api-augment/src/assetHubPezkuwi/index.ts new file mode 100644 index 0000000..1318006 --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '../base.js'; +import './consts.js'; +import './errors.js'; +import './events.js'; +import './query.js'; +import './registry.js'; +import './runtime.js'; +import './tx.js'; diff --git a/packages/api-augment/src/assetHubPezkuwi/query.ts b/packages/api-augment/src/assetHubPezkuwi/query.ts new file mode 100644 index 0000000..2060bc5 --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/query.ts @@ -0,0 +1,2001 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/storage'; + +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@pezkuwi/api-base/types'; +import type { BTreeMap, BTreeSet, Bytes, Null, Option, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, Perbill, Percent } from '@pezkuwi/types/interfaces/runtime'; +import type { AssetHubPezkuwiRuntimeRuntimeParametersKey, AssetHubPezkuwiRuntimeRuntimeParametersValue, AssetHubPezkuwiRuntimeSessionKeys, AssetHubPezkuwiRuntimeStakingNposCompactSolution16, BpXcmBridgeHubRouterBridgeState, PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker, PezcumulusPezpalletXcmpQueueOutboundChannelDetails, PezcumulusPezpalletXcmpQueueQueueConfigData, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezframeElectionProviderSupportBoundedSupports, PezframeSupportDispatchPerDispatchClassWeight, PezframeSupportTokensMiscIdAmountRuntimeFreezeReason, PezframeSupportTokensMiscIdAmountRuntimeHoldReason, PezframeSystemAccountInfo, PezframeSystemCodeUpgradeAuthorization, PezframeSystemEventRecord, PezframeSystemLastRuntimeUpgradeInfo, PezframeSystemPhase, PezkuwiCorePrimitivesOutboundHrmpMessage, PezkuwiPrimitivesV8AbridgedHostConfiguration, PezkuwiPrimitivesV8PersistedValidationData, PezkuwiPrimitivesV8UpgradeGoAhead, PezkuwiPrimitivesV8UpgradeRestriction, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezpalletAhMigratorBalancesBefore, PezpalletAhMigratorMigrationStage, PezpalletAssetConversionPoolInfo, PezpalletAssetsApproval, PezpalletAssetsAssetAccount, PezpalletAssetsAssetDetails, PezpalletAssetsAssetMetadata, PezpalletBagsListListBag, PezpalletBagsListListNode, PezpalletBalancesAccountData, PezpalletBalancesBalanceLock, PezpalletBalancesReserveData, PezpalletBountiesBounty, PezpalletChildBountiesChildBounty, PezpalletCollatorSelectionCandidateInfo, PezpalletConvictionVotingVoteVoting, PezpalletDelegatedStakingAgentLedger, PezpalletDelegatedStakingDelegation, PezpalletElectionProviderMultiBlockPhase, PezpalletElectionProviderMultiBlockSignedSubmissionMetadata, PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings, PezpalletElectionProviderMultiBlockVerifierImplsStatus, PezpalletElectionProviderMultiBlockVerifierImplsValidSolution, PezpalletMessageQueueBookState, PezpalletMessageQueuePage, PezpalletMultisigMultisig, PezpalletNftsAttributeDeposit, PezpalletNftsAttributeNamespace, PezpalletNftsCollectionConfig, PezpalletNftsCollectionDetails, PezpalletNftsCollectionMetadata, PezpalletNftsItemConfig, PezpalletNftsItemDetails, PezpalletNftsItemMetadata, PezpalletNftsPendingSwap, PezpalletNominationPoolsBondedPoolInner, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsPoolMember, PezpalletNominationPoolsRewardPool, PezpalletNominationPoolsSubPools, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus, PezpalletProxyAnnouncement, PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType, PezpalletRcMigratorAccountsAccount, PezpalletRcMigratorQueuePriority, PezpalletReferendaReferendumInfoOriginCaller, PezpalletSchedulerRetryConfig, PezpalletSchedulerScheduled, PezpalletStakingAsyncActiveEraInfo, PezpalletStakingAsyncEraRewardPoints, PezpalletStakingAsyncForcing, PezpalletStakingAsyncLedgerStakingLedger, PezpalletStakingAsyncNominations, PezpalletStakingAsyncPezpalletBoundedExposurePage, PezpalletStakingAsyncPezpalletPruningStep, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncSlashingOffenceRecord, PezpalletStakingAsyncSnapshotStatus, PezpalletStakingAsyncUnappliedSlash, PezpalletStakingAsyncValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletTransactionPaymentReleases, PezpalletTreasuryProposal, PezpalletTreasurySpendStatus, PezpalletUniquesCollectionDetails, PezpalletUniquesCollectionMetadata, PezpalletUniquesItemDetails, PezpalletUniquesItemMetadata, PezpalletVestingReleases, PezpalletVestingVestingInfo, PezpalletXcmAuthorizedAliasesEntry, PezpalletXcmQueryStatus, PezpalletXcmRemoteLockedFungibleRecord, PezpalletXcmVersionMigrationStage, PezspConsensusAuraEd25519AppEd25519Public, PezspCoreCryptoKeyTypeId, PezspNposElectionsElectionScore, PezspRuntimeDigest, PezspStakingPagedExposureMetadata, PezspTrieStorageProof, PezspWeightsWeightV2Weight, SnowbridgeCoreOperatingModeBasicOperatingMode, StagingXcmV5Instruction, StagingXcmV5Location, XcmVersionedAssetId, XcmVersionedLocation } from '@pezkuwi/types/lookup'; +import type { Observable } from '@pezkuwi/types/types'; + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module '@pezkuwi/api-base/types/storage' { + interface AugmentedQueries { + ahMigrator: { + /** + * Helper storage item to store the total balance / total issuance of native token at the start + * of the migration. Since teleports are disabled during migration, the total issuance will not + * change for other reason than the migration itself. + **/ + ahBalancesBefore: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Asset Hub migration state. + **/ + ahMigrationStage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The priority of the DMP queue during migration. + * + * Controls how the DMP (Downward Message Passing) queue is processed relative to other queues + * during the migration process. This helps ensure timely processing of migration messages. + * The default priority pattern is defined in the pallet configuration, but can be overridden + * by a storage value of this type. + **/ + dmpQueuePriorityConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * An optional account id of a manager. + * + * This account id has similar privileges to [`Config::AdminOrigin`] except that it + * can not set the manager account id via `set_manager` call. + **/ + manager: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Block number when migration finished and extrinsics were unlocked. + * + * This is set when entering the `MigrationDone` stage hence when + * `RcMigrationStage::is_finished()` becomes `true`. + **/ + migrationEndBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The block number at which the migration began and the pallet's extrinsics were locked. + * + * This value is set when entering the `WaitingForAh` stage, i.e., when + * `RcMigrationStage::is_ongoing()` becomes `true`. + **/ + migrationStartBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * RC accounts that failed to migrate when were received on the Asset Hub. + * + * This is unlikely to happen, since we dry run the migration, but we keep it for completeness. + **/ + rcAccounts: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + ahOps: { + /** + * Amount of balance that a contributor made towards a crowdloan. + * + * `withdraw_crowdloan_contribution` can be permissionlessly called once the block number + * passed to unlock the balance for a specific account. + * + * The keys are as follows: + * - Block number after which the balance can be unlocked. + * - The para_id of the crowdloan. + * - The account that made the contribution. + * + * The value is (fund_pot, balance). The contribution pot is the second key in the + * `RcCrowdloanContribution` storage. + **/ + rcCrowdloanContribution: AugmentedQuery Observable>>, [u32, u32, AccountId32]> & QueryableStorageEntry; + /** + * The reserve that was taken to create a crowdloan. + * + * This is normally 500 DOT and can be refunded as last step after all + * `RcCrowdloanContribution`s of this loan have been withdrawn. + * + * Keys: + * - Block number after which this can be unreserved + * - The para_id of the crowdloan + * - The account that will have the balance unreserved + **/ + rcCrowdloanReserve: AugmentedQuery Observable>, [u32, u32, AccountId32]> & QueryableStorageEntry; + /** + * Amount of balance that was reserved for winning a lease auction. + * + * `unreserve_lease_deposit` can be permissionlessly called once the block number passed to + * unreserve the deposit. It is implicitly called by `withdraw_crowdloan_contribution`. + * + * The account here can either be a crowdloan account or a solo bidder. If it is a crowdloan + * account, then the summed up contributions for it in the contributions map will equate the + * reserved balance here. + * + * The keys are as follows: + * - Block number after which the deposit can be unreserved. + * - The para_id of the lease slot. + * - The account that will have the balance unreserved. + * - The balance to be unreserved. + **/ + rcLeaseReserve: AugmentedQuery Observable>, [u32, u32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetConversion: { + /** + * Stores the `PoolAssetId` that is going to be used for the next lp token. + * This gets incremented whenever a new lp pool is created. + **/ + nextPoolAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially + * created rather than people sending tokens directly to a pool's public account. + **/ + pools: AugmentedQuery | [StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array]) => Observable>, [ITuple<[StagingXcmV5Location, StagingXcmV5Location]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetRate: { + /** + * Maps an asset to its fixed point representation in the native balance. + * + * E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)` + **/ + conversionRateToNative: AugmentedQuery Observable>, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [u32, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable<{ + readonly deposit: u128; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } & Struct>, [u32]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + aura: { + /** + * The current authority set. + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current slot of this block. + * + * This will be set in `on_initialize`. + **/ + currentSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + auraExt: { + /** + * Serves as cache for the authorities. + * + * The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session, + * but we require the old authorities to verify the seal when validating a PoV. This will + * always be updated to the latest AuRa authorities in `on_finalize`. + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current relay chain slot paired with a number of authored blocks. + * + * This is updated in [`FixedVelocityConsensusHook::on_state_proof`] with the current relay + * chain slot as provided by the relay chain state proof. + **/ + relaySlotInfo: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + bounties: { + /** + * Bounties that have been made. + **/ + bounties: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Bounty indices that have been approved but not yet funded. + **/ + bountyApprovals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Number of bounty proposals that have been made. + **/ + bountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each bounty. + **/ + bountyDescriptions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + childBounties: { + /** + * Child bounties that have been added. + **/ + childBounties: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts + * for each parent bounty. Number of total child bounties. Will be removed in May 2025. + **/ + childBountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each child-bounty. Indexed by `(parent_id, child_id)`. + * + * This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version. + **/ + childBountyDescriptionsV1: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The cumulative child-bounty curator fee for each parent bounty. + **/ + childrenCuratorFees: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of active child bounties per parent bounty. + * Map of parent bounty index to number of child bounties. + **/ + parentChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of total child bounties per parent bounty, including completed bounties. + **/ + parentTotalChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The mapping of the child bounty ids from storage version `V0` to the new `V1` version. + * + * The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids + * based on the child bounty count per parent bounty [`ParentTotalChildBounties`]. + * The item intended solely for client convenience and not used in the pallet's core logic. + **/ + v0ToV1ChildBountyIds: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + claims: { + claims: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Pre-claimed Ethereum accounts, by the Account ID that they are claimed to. + **/ + preclaims: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The statement kind that must be signed, if any. + **/ + signing: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + total: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Vesting schedule for a claim. + * First balance is the total amount that should be held for vesting. + * Second balance is how much should be unlocked per block. + * The block number is when the vesting should start. + **/ + vesting: AugmentedQuery Observable>>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + collatorSelection: { + /** + * Fixed amount to deposit to become a collator. + * + * When a collator calls `leave_intent` they immediately receive the deposit back. + **/ + candidacyBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be + * mutually exclusive. + * + * This list is sorted in ascending order by deposit and when the deposits are equal, the least + * recently updated is considered greater. + **/ + candidateList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Desired number of candidates. + * + * This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct. + **/ + desiredCandidates: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The invulnerable, permissioned collators. This list must be sorted. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Last block authored by collator. + **/ + lastAuthoredBlock: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + convictionVoting: { + /** + * The voting classes which have a non-zero lock requirement and the lock amounts which they + * require. The actual amount locked on behalf of this pallet should always be the maximum of + * this list. + **/ + classLocksFor: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * All voting for a particular voter in a particular voting class. We store the balance for the + * number of votes that we have recorded. + **/ + votingFor: AugmentedQuery Observable, [AccountId32, u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + delegatedStaking: { + /** + * Map of `Agent` to their `Ledger`. + **/ + agents: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForAgents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForDelegators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Map of Delegators to their `Delegation`. + * + * Implementation note: We are not using a double map with `delegator` and `agent` account + * as keys since we want to restrict delegators to delegate only to one account at a time. + **/ + delegators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + foreignAssets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [StagingXcmV5Location, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [StagingXcmV5Location, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [StagingXcmV5Location]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable<{ + readonly deposit: u128; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } & Struct>, [StagingXcmV5Location]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + indices: { + /** + * The lookup from index to account. + **/ + accounts: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery Observable, [PezcumulusPrimitivesCoreAggregateMessageOrigin]> & QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery Observable>, [PezcumulusPrimitivesCoreAggregateMessageOrigin, u32]> & QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockElection: { + /** + * Current phase. + **/ + currentPhase: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Desired number of targets to elect for this round. + **/ + desiredTargets: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Paginated target snapshot. + * + * For the time being, since we assume one pages of targets, at most ONE key will exist. + **/ + pagedTargetSnapshot: AugmentedQuery Observable>>, [u32, u32]> & QueryableStorageEntry; + /** + * Same as [`PagedTargetSnapshot`], but it will store the hash of the snapshot. + * + * The hash is generated using [`frame_system::Config::Hashing`]. + **/ + pagedTargetSnapshotHash: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Paginated voter snapshot. At most [`T::Pages`] keys will exist. + **/ + pagedVoterSnapshot: AugmentedQuery Observable]>>>>, [u32, u32]> & QueryableStorageEntry; + /** + * Same as [`PagedVoterSnapshot`], but it will store the hash of the snapshot. + * + * The hash is generated using [`frame_system::Config::Hashing`]. + **/ + pagedVoterSnapshotHash: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Internal counter for the number of rounds. + * + * This is useful for de-duplication of transactions submitted to the pool, and general + * diagnostics of the pallet. + * + * This is merely incremented once per every time that an upstream `elect` is called. + **/ + round: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockElectionSigned: { + /** + * Accounts whitelisted by governance to always submit their solutions. + * + * They are different in that: + * + * * They always pay a fixed deposit for submission, specified by + * [`Config::InvulnerableDeposit`]. They pay no page deposit. + * * If _ejected_ by better solution from [`SortedScores`], they will get their full deposit + * back. + * * They always get their tx-fee back even if they are _discarded_. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + sortedScores: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Map from account to the metadata of their submission. + * + * invariant: for any Key1 of type `AccountId` in [`Submissions`], this storage map also has a + * value. + **/ + submissionMetadataStorage: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Triple map from (round, account, page) to a solution page. + **/ + submissionStorage: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockElectionVerifier: { + /** + * The minimum score that each solution must attain in order to be considered feasible. + **/ + minimumScore: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The `(amount, count)` of backings, divided per page. + * + * This is stored because in the last block of verification we need them to compute the score, + * and check `MaxBackersPerWinnerFinal`. + * + * This can only ever live for the invalid variant of the solution. Once it is valid, we don't + * need this information anymore; the score is already computed once in + * [`QueuedSolutionScore`], and the backing counts are checked. + **/ + queuedSolutionBackings: AugmentedQuery Observable>>>, [u32, u32]> & QueryableStorageEntry; + /** + * The score of the valid variant of [`QueuedSolution`]. + * + * This only ever lives for the `valid` variant. + **/ + queuedSolutionScore: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The `X` variant of the current queued solution. Might be the valid one or not. + * + * The two variants of this storage item is to avoid the need of copying. Recall that once a + * `VerifyingSolution` is being processed, it needs to write its partial supports *somewhere*. + * Writing theses supports on top of a *good* queued supports is wrong, since we might bail. + * Writing them to a bugger and copying at the ned is slightly better, but expensive. This flag + * system is best of both worlds. + **/ + queuedSolutionX: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The `Y` variant of the current queued solution. Might be the valid one or not. + **/ + queuedSolutionY: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Pointer to the variant of [`QueuedSolutionX`] or [`QueuedSolutionY`] that is currently + * valid. + **/ + queuedValidVariant: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Storage item for [`Status`]. + **/ + statusStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multisig: { + /** + * The set of open multisig operations. + **/ + multisigs: AugmentedQuery Observable>, [AccountId32, U8aFixed]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nfts: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery Observable>, [AccountId32, u32, u32]> & QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery | null | Uint8Array | u32 | AnyNumber, arg3: PezpalletNftsAttributeNamespace | { Pallet: any } | { CollectionOwner: any } | { ItemOwner: any } | { Account: any } | string | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable>>, [u32, Option, PezpalletNftsAttributeNamespace, Bytes]> & QueryableStorageEntry, PezpalletNftsAttributeNamespace, Bytes]>; + /** + * Details of a collection. + **/ + collection: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + collectionAccount: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Config of a collection. + **/ + collectionConfigOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + collectionMetadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + * Stores collection roles as per account. + **/ + collectionRoleOf: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + item: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Item attribute approvals. + **/ + itemAttributesApprovalsOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Config of an item. + **/ + itemConfigOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Metadata of an item. + **/ + itemMetadataOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * A price of an item. + **/ + itemPriceOf: AugmentedQuery Observable]>>>, [u32, u32]> & QueryableStorageEntry; + /** + * Stores the `CollectionId` that is going to be used for the next collection. + * This gets incremented whenever a new collection is created. + **/ + nextCollectionId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Handles all the pending swaps. + **/ + pendingSwapOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nominationPools: { + /** + * Storage for bonded pools. + **/ + bondedPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Map from a pool member account to their opted claim permission. + **/ + claimPermissions: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForBondedPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForMetadata: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPoolMembers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForReversePoolIdLookup: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRewardPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForSubPoolsStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum commission that can be charged by a pool. Used on commission payouts to bound + * pool commissions that are > `GlobalMaxCommission`, necessary if a future + * `GlobalMaxCommission` is lower than some current pool commissions. + **/ + globalMaxCommission: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Ever increasing number of all pools created so far. + **/ + lastPoolId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Maximum number of members that can exist in the system. If `None`, then the count + * members are not bound on a system wide basis. + **/ + maxPoolMembers: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of members that may belong to pool. If `None`, then the count of + * members is not bound on a per pool basis. + **/ + maxPoolMembersPerPool: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of nomination pools that can exist. If `None`, then an unbounded number of + * pools can exist. + **/ + maxPools: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Metadata for the pool. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Minimum bond required to create a pool. + * + * This is the amount that the depositor must put as their initial stake in the pool, as an + * indication of "skin in the game". + * + * This is the value that will always exist in the staking ledger of the pool bonded account + * while all other accounts leave. + **/ + minCreateBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum amount to bond to join a pool. + **/ + minJoinBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Active members. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + poolMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A reverse lookup from the pool's account id to its id. + * + * This is only used for slashing and on automatic withdraw update. In all other instances, the + * pool id is used, and the accounts are deterministically derived from it. + **/ + reversePoolIdLookup: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Reward pools. This is where there rewards for each pool accumulate. When a members payout is + * claimed, the balance comes out of the reward pool. Keyed by the bonded pools account. + **/ + rewardPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Groups of unbonding pools. Each group of unbonding pools belongs to a + * bonded pool, hence the name sub-pools. Keyed by the bonded pools account. + **/ + subPoolsStorage: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sum of funds across all pools. + * + * This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`] + * because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's + * `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s. + **/ + totalValueLocked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainInfo: { + parachainId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parachainSystem: { + /** + * Storage field that keeps track of bandwidth used by the unincluded segment along with the + * latest HRMP watermark. Used for limiting the acceptance of new blocks with + * respect to relay chain constraints. + **/ + aggregatedUnincludedSegment: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The number of HRMP messages we observed in `on_initialize` and thus used that number for + * announcing the weight of `on_initialize` and `on_finalize`. + **/ + announcedHrmpMessagesPerCandidate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A custom head data that should be returned as result of `validate_block`. + * + * See `Pallet::set_custom_validation_head_data` for more information. + **/ + customValidationHeadData: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Were the validation data set to notify the relay chain? + **/ + didSetValidationCode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The parachain host configuration that was obtained from the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + hostConfiguration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * HRMP messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + hrmpOutboundMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * HRMP watermark that was set in a block. + **/ + hrmpWatermark: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The last downward message queue chain head we have observed. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastDmqMqcHead: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The message queue chain heads we have observed per each channel incoming channel. + * + * This value is loaded before and saved after processing inbound downward messages carried + * by the system inherent. + **/ + lastHrmpMqcHeads: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last processed downward message. + * + * We need to keep track of this to filter the messages that have been already processed. + **/ + lastProcessedDownwardMessage: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last processed HRMP message. + * + * We need to keep track of this to filter the messages that have been already processed. + **/ + lastProcessedHrmpMessage: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The relay chain block number associated with the last parachain block. + * + * This is updated in `on_finalize`. + **/ + lastRelayChainBlockNumber: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Validation code that is set by the parachain and is to be communicated to collator and + * consequently the relay-chain. + * + * This will be cleared in `on_initialize` of each new block if no other pallet already set + * the value. + **/ + newValidationCode: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Upward messages that are still pending and not yet send to the relay chain. + **/ + pendingUpwardMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * In case of a scheduled upgrade, this storage field contains the validation code to be + * applied. + * + * As soon as the relay chain gives us the go-ahead signal, we will overwrite the + * [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process + * with the new validation code. This concludes the upgrade process. + **/ + pendingValidationCode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Number of downward messages processed in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + processedDownwardMessages: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The state proof for the last relay parent block. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relayStateProof: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The snapshot of some state related to messaging relevant to the current parachain as per + * the relay parent. + * + * This field is meant to be updated each block with the validation data inherent. Therefore, + * before processing of the inherent, e.g. in `on_initialize` this data may be stale. + * + * This data is also absent from the genesis. + **/ + relevantMessagingState: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing DMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedDmpWeightOverride: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The weight we reserve at the beginning of the block for processing XCMP messages. This + * overrides the amount set in the Config trait. + **/ + reservedXcmpWeightOverride: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Latest included block descendants the runtime accepted. In other words, these are + * ancestors of the currently executing block which have not been included in the observed + * relay-chain state. + * + * The segment length is limited by the capacity returned from the [`ConsensusHook`] configured + * in the pallet. + **/ + unincludedSegment: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Optional upgrade go-ahead signal from the relay-chain. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeGoAhead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * An option which indicates if the relay-chain restricts signalling a validation code upgrade. + * In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced + * candidate will be invalid. + * + * This storage item is a mirror of the corresponding value for the current parachain from the + * relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is + * set after the inherent. + **/ + upgradeRestrictionSignal: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The factor to multiply the base delivery fee by for UMP. + **/ + upwardDeliveryFeeFactor: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Upward messages that were sent in a block. + * + * This will be cleared in `on_initialize` of each new block. + **/ + upwardMessages: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The [`PersistedValidationData`] set for this block. + * This value is expected to be set only once per block and it's never stored + * in the trie. + **/ + validationData: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parameters: { + /** + * Stored parameters. + **/ + parameters: AugmentedQuery Observable>, [AssetHubPezkuwiRuntimeRuntimeParametersKey]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + polkadotXcm: { + /** + * The existing asset traps. + * + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ + assetTraps: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * Map of authorized aliasers of local origins. Each local location can authorize a list of + * other locations to alias into it. Each aliaser is only valid until its inner `expiry` + * block number. + **/ + authorizedAliases: AugmentedQuery Observable>, [XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The current migration's stage, if any. + **/ + currentMigration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on this chain. + **/ + lockedFungibles: AugmentedQuery Observable>>>, [AccountId32]> & QueryableStorageEntry; + /** + * The ongoing queries. + **/ + queries: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The latest available query index. + **/ + queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on a remote chain. + **/ + remoteLockedFungibles: AugmentedQuery Observable>, [u32, AccountId32, XcmVersionedAssetId]> & QueryableStorageEntry; + /** + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ + safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Latest versions that we know various locations support. + **/ + supportedVersion: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ + versionDiscoveryQueue: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * All locations that we have requested version notifications from. + **/ + versionNotifiers: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ + versionNotifyTargets: AugmentedQuery Observable>>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Global suspension state of the XCM executor. + **/ + xcmExecutionSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + poolAssets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [u32, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + preimage: { + preimageFor: AugmentedQuery | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[H256, u32]>]> & QueryableStorageEntry]>; + /** + * The request status of a given hash. + **/ + requestStatusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The request status of a given hash. + **/ + statusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proxy: { + /** + * The announcements made by the proxy (key). + **/ + announcements: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of account proxies. Maps the account which has delegated to the accounts + * which are being delegated to, together with the amount held on deposit. + **/ + proxies: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + referenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + scheduler: { + /** + * Items to be executed, indexed by the block number that they should be executed on. + **/ + agenda: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Block number at which the agenda began incomplete execution. + **/ + incompleteSince: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Lookup from a name to the block number and index of the task. + * + * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 + * identities. + **/ + lookup: AugmentedQuery Observable>>, [U8aFixed]> & QueryableStorageEntry; + /** + * Retry configurations for items to be executed, indexed by task address. + **/ + retries: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery | [PezspCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable>, [ITuple<[PezspCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + snowbridgeSystemFrontend: { + /** + * The current operating mode for exporting to Ethereum. + **/ + exportOperatingMode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + staking: { + /** + * The active era information, it holds index and start. + * + * The active era is the era being currently rewarded. Validator set of this era must be + * equal to what is RC's session pallet. + **/ + activeEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all locked "stash" accounts to the controller account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + bonded: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A mapping from still-bonded eras to the first session index of that era. + * + * Must contains information for eras for the range: + * `[active_era - bounding_duration; active_era]` + **/ + bondedEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The amount of currency given to reporters of a slash event which was + * canceled by extraordinary circumstances (e.g. governance). + **/ + canceledSlashPayout: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Cancelled slashes by era and validator with maximum slash fraction to be cancelled. + * + * When slashes are cancelled by governance, this stores the era and the validators + * whose slashes should be cancelled, along with the maximum slash fraction that should + * be cancelled for each validator. + **/ + cancelledSlashes: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * The threshold for when users can start calling `chill_other` for other validators / + * nominators. The threshold is compared to the actual number of validators / nominators + * (`CountFor*`) in the system compared to the configured max (`Max*Count`). + **/ + chillThreshold: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * History of claimed paged rewards by era and validator. + * + * This is keyed by era and validator stash which maps to the set of page indexes which have + * been claimed. + * + * It is removed after [`Config::HistoryDepth`] eras. + **/ + claimedRewards: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForNominators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForValidators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForVirtualStakers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current planned era index. + * + * This is the latest planned era, depending on how the Session pallet queues the validator + * set, it might be active or not. + **/ + currentEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A bounded list of the "electable" stashes that resulted from a successful election. + **/ + electableStashes: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Tracks the current step of era pruning process for each era being lazily pruned. + **/ + eraPruningState: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Rewards for the last [`Config::HistoryDepth`] eras. + * If reward hasn't been set or has been removed then 0 reward is returned. + **/ + erasRewardPoints: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Summary of validator exposure at a given era. + * + * This contains the total stake in support of the validator and their own stake. In addition, + * it can also be used to get the number of nominators backing this validator and the number of + * exposure pages they are divided into. The page count is useful to determine the number of + * pages of rewards that needs to be claimed. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * Should only be accessed through `Eras`. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty overview is returned. + **/ + erasStakersOverview: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Paginated exposure of a validator at given era. + * + * This is keyed first by the era index to allow bulk deletion, then stash account and finally + * the page. Should only be accessed through `Eras`. + * + * This is cleared after [`Config::HistoryDepth`] eras. + **/ + erasStakersPaged: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * The total amount staked for the last [`Config::HistoryDepth`] eras. + * If total hasn't been set or has been removed then 0 stake is returned. + **/ + erasTotalStake: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Exposure of validator at era with the preferences of validators. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + **/ + erasValidatorPrefs: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The total validator era payout for the last [`Config::HistoryDepth`] eras. + * + * Eras that haven't finished yet or has been removed doesn't have reward. + **/ + erasValidatorReward: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Mode of era forcing. + **/ + forceEra: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any validators that may never be slashed or forcibly kicked. It's a Vec since they're + * easy to initialize and the performance hit is minimal (we expect no more than four + * invulnerables) and restricted to testnets. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all (unlocked) "controller" accounts to the info regarding the staking. + * + * Note: All the reads and mutations to this storage *MUST* be done through the methods exposed + * by [`StakingLedger`] to ensure data and lock consistency. + **/ + ledger: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The maximum nominator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxNominatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum staked rewards, i.e. the percentage of the era inflation that + * is used for stake rewards. + * See [Era payout](./index.html#era-payout). + **/ + maxStakedRewards: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The maximum validator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxValidatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum amount of commission that validators can set. + * + * If set to `0`, no limit exists. + **/ + minCommission: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active nominator stake of the last successful election. + **/ + minimumActiveStake: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a nominator. + **/ + minNominatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a validator. + **/ + minValidatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Keeps track of an ongoing multi-page election solution request. + * + * If `Some(_)``, it is the next page that we intend to elect. If `None`, we are not in the + * election process. + * + * This is only set in multi-block elections. Should always be `None` otherwise. + **/ + nextElectionPage: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The map from nominator stash key to their nomination preferences, namely the validators that + * they wish to support. + * + * Note that the keys of this storage map might become non-decodable in case the + * account's [`NominationsQuota::MaxNominations`] configuration is decreased. + * In this rare case, these nominators + * are still existent in storage, their key is correct and retrievable (i.e. `contains_key` + * indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable + * nominators will effectively not-exist, until they re-submit their preferences such that it + * is within the bounds of the newly set `Config::MaxNominations`. + * + * This implies that `::iter_keys().count()` and `::iter().count()` might return different + * values for this map. Moreover, the main `::count()` is aligned with the former, namely the + * number of keys that exist. + * + * Lastly, if any of the nominators become non-decodable, they can be chilled immediately via + * [`Call::chill_other`] dispatchable by anyone. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + nominators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Stores reported offences in a queue until they are processed in subsequent blocks. + * + * Each offence is recorded under the corresponding era index and the offending validator's + * account. If an offence spans multiple pages, only one page is processed at a time. Offences + * are handled sequentially, with their associated slashes computed and stored in + * `UnappliedSlashes`. These slashes are then applied in a future era as determined by + * `SlashDeferDuration`. + * + * Any offences tied to an era older than `BondingDuration` are automatically dropped. + * Processing always prioritizes the oldest era first. + **/ + offenceQueue: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Tracks the eras that contain offences in `OffenceQueue`, sorted from **earliest to latest**. + * + * - This ensures efficient retrieval of the oldest offence without iterating through + * `OffenceQueue`. + * - When a new offence is added to `OffenceQueue`, its era is **inserted in sorted order** + * if not already present. + * - When all offences for an era are processed, it is **removed** from this list. + * - The maximum length of this vector is bounded by `BondingDuration`. + * + * This eliminates the need for expensive iteration and sorting when fetching the next offence + * to process. + **/ + offenceQueueEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Where the reward payment should be made. Keyed by stash. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + payee: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Tracks the currently processed offence record from the `OffenceQueue`. + * + * - When processing offences, an offence record is **popped** from the oldest era in + * `OffenceQueue` and stored here. + * - The function `process_offence` reads from this storage, processing one page of exposure at + * a time. + * - After processing a page, the `exposure_page` count is **decremented** until it reaches + * zero. + * - Once fully processed, the offence record is removed from this storage. + * + * This ensures that offences are processed incrementally, preventing excessive computation + * in a single block while maintaining correct slashing behavior. + **/ + processingOffence: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The percentage of the slash that is distributed to reporters. + * + * The rest of the slashed value is handled by the `Slash`. + **/ + slashRewardFraction: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * All unapplied slashes that are queued for later. + **/ + unappliedSlashes: AugmentedQuery | [AccountId32 | string | Uint8Array, Perbill | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [u32, ITuple<[AccountId32, Perbill, u32]>]> & QueryableStorageEntry]>; + /** + * The ideal number of active validators. + **/ + validatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from (wannabe) validator stash key to the preferences of that validator. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + validators: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on validators, mapped by era to the highest slash proportion + * and slash value of the era. + **/ + validatorSlashInEra: AugmentedQuery Observable>>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Stakers whose funds are managed by other pallets. + * + * This pallet does not apply any locks on them, therefore they are only virtually bonded. They + * are expected to be keyless accounts and hence should not be allowed to mutate their ledger + * directly via this pallet. Instead, these accounts are managed by other pallets and accessed + * via low level apis. We keep track of them to do minimal integrity checks. + **/ + virtualStakers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Voter snapshot progress status. + * + * If the status is `Ongoing`, it keeps a cursor of the last voter retrieved to proceed when + * creating the next snapshot page. + **/ + voterSnapshotStatus: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stakingRcClient: { + /** + * An incomplete incoming session report that we have not acted upon yet. + **/ + incompleteSessionReport: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last session report's `end_index` that we have acted upon. + * + * This allows this pallet to ensure a sequentially increasing sequence of session reports + * passed to staking. + * + * Note that with the XCM being the backbone of communication, we have a guarantee on the + * ordering of messages. As long as the RC sends session reports in order, we _eventually_ + * receive them in the same correct order as well. + **/ + lastSessionReportEndingIndex: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A validator set that is outgoing, and should be sent. + * + * This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent, + * or the second value reaches zero, at which point we drop it. + **/ + outgoingValidatorSet: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stateTrieMigration: { + /** + * The limits that are imposed on automatic migrations. + * + * If set to None, then no automatic migration happens. + **/ + autoLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Migration progress. + * + * This stores the snapshot of the last migrated keys. It can be set into motion and move + * forward by any of the means provided by this pallet. + **/ + migrationProcess: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum limits that the signed migration could use. + * + * If not set, no signed submission is allowed. + **/ + signedMigrationMaxLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The weight reclaimed for the extrinsic. + * + * This information is available until the end of the extrinsic execution. + * More precisely this information is removed in `note_applied_extrinsic`. + * + * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate + * reduction. + **/ + extrinsicWeightReclaimed: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + toKusamaXcmRouter: { + /** + * Bridge that we are using. + * + * **bridges-v1** assumptions: all outbound messages through this router are using single lane + * and to single remote consensus. If there is some other remote consensus that uses the same + * bridge hub, the separate pallet instance shall be used, In `v2` we'll have all required + * primitives (lane-id aka bridge-id, derived from XCM locations) to support multiple bridges + * by the same pallet instance. + **/ + bridge: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & QueryableStorageEntry; + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + treasury: { + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposal indices that have been approved but not yet awarded. + **/ + approvals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The amount which has been reported as inactive to Currency. + **/ + deactivated: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The blocknumber for the last triggered spend period. + **/ + lastSpendPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Number of proposals that have been made. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposals that have been made. + **/ + proposals: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The count of spends that have been made. + **/ + spendCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Spends that have been approved and being processed. + **/ + spends: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + uniques: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery Observable>, [AccountId32, u32, u32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + asset: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery | null | Uint8Array | u32 | AnyNumber, arg3: Bytes | string | Uint8Array) => Observable>>, [u32, Option, Bytes]> & QueryableStorageEntry, Bytes]>; + /** + * Details of a collection. + **/ + class: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + classAccount: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + classMetadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Keeps track of the number of items a collection might have. + **/ + collectionMaxSupply: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an item. + **/ + instanceMetadataOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Price of an asset instance. + **/ + itemPriceOf: AugmentedQuery Observable]>>>, [u32, u32]> & QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + vesting: { + /** + * Storage version of the pallet. + * + * New networks start with latest version, as determined by the genesis build. + **/ + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information regarding the vesting of a given account. + **/ + vesting: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + voterList: { + /** + * Counter for the related counted storage map + **/ + counterForListNodes: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A bag stored in storage. + * + * Stores a `Bag` struct, which stores head and tail pointers to itself. + **/ + listBags: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * A single node, within some bag. + * + * Nodes store links forward and back within their respective bags. + **/ + listNodes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Lock all updates to this pallet. + * + * If any nodes needs updating, removal or addition due to a temporary lock, the + * [`Call::rebag`] can be used. + **/ + lock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pointer that remembers the next node that will be auto-rebagged. + * When `None`, the next scan will start from the list head again. + **/ + nextNodeAutoRebagged: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + whitelist: { + whitelistedCall: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + xcmpQueue: { + /** + * The factor to multiply the base delivery fee by. + **/ + deliveryFeeFactor: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The suspended inbound XCMP channels. All others are not suspended. + * + * This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block + * to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached + * within the block and therefore only included once in the proof size. + * + * NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof + * will be smaller. + **/ + inboundXcmpSuspended: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The messages outbound in a given XCMP channel. + **/ + outboundXcmpMessages: AugmentedQuery Observable, [u32, u16]> & QueryableStorageEntry; + /** + * The non-empty XCMP channels in order of becoming non-empty, and the index of the first + * and last outbound message. If the two indices are equal, then it indicates an empty + * queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater + * than 65535 items. Queue indices for normal messages begin at one; zero is reserved in + * case of the need to send a high-priority signal message this block. + * The bool is true if there is a signal message waiting to be sent. + **/ + outboundXcmpStatus: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The configuration which controls the dynamics of the outbound queue. + **/ + queueConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether or not the XCMP queue is suspended from executing incoming XCMs or not. + **/ + queueSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any signal messages waiting to be sent. + **/ + signalMessages: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } // AugmentedQueries +} // declare module diff --git a/packages/api-augment/src/assetHubPezkuwi/registry.ts b/packages/api-augment/src/assetHubPezkuwi/registry.ts new file mode 100644 index 0000000..9b68b4b --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/registry.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/types-augment/registry/assetHubPezkuwi'; diff --git a/packages/api-augment/src/assetHubPezkuwi/runtime.ts b/packages/api-augment/src/assetHubPezkuwi/runtime.ts new file mode 100644 index 0000000..457716a --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/runtime.ts @@ -0,0 +1,443 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/calls'; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, Text, Vec, bool, u128, u32 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { Extrinsic } from '@pezkuwi/types/interfaces/extrinsics'; +import type { OpaqueMetadata } from '@pezkuwi/types/interfaces/metadata'; +import type { AccountId32, H256, RuntimeCall, Slot, SlotDuration } from '@pezkuwi/types/interfaces/runtime'; +import type { ParaId } from '@pezkuwi/types/interfaces/teyrchains'; +import type { AssetHubPezkuwiRuntimeOriginCaller, AssetsCommonRuntimeApiFungiblesAccessError, PezcumulusPrimitivesCoreCollationInfo, PezframeSupportViewFunctionsViewFunctionDispatchError, PezframeSupportViewFunctionsViewFunctionId, PezpalletTransactionPaymentFeeDetails, PezpalletTransactionPaymentRuntimeDispatchInfo, PezspConsensusAuraEd25519AppEd25519Public, PezspCoreCryptoKeyTypeId, PezspInherentsCheckInherentsResult, PezspInherentsInherentData, PezspRuntimeBlock, PezspRuntimeDispatchError, PezspRuntimeExtrinsicInclusionMode, PezspRuntimeHeader, PezspRuntimeTransactionValidityTransactionSource, PezspRuntimeTransactionValidityTransactionValidityError, PezspRuntimeTransactionValidityValidTransaction, PezspVersionRuntimeVersion, PezspWeightsWeightV2Weight, StagingXcmV5Location, XcmRuntimeApisAuthorizedAliasesError, XcmRuntimeApisAuthorizedAliasesOriginAliaser, XcmRuntimeApisConversionsError, XcmRuntimeApisDryRunCallDryRunEffects, XcmRuntimeApisDryRunError, XcmRuntimeApisDryRunXcmDryRunEffects, XcmRuntimeApisFeesError, XcmRuntimeApisTrustedQueryError, XcmVersionedAsset, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; +import type { IExtrinsic, Observable } from '@pezkuwi/types/types'; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module '@pezkuwi/api-base/types/calls' { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/ */ + accountNonceApi: { + /** + * Get current account nonce of given `AccountId`. + **/ + accountNonce: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x8a8047a53a8277ec/ */ + assetConversionApi: { + /** + * Returns the size of the liquidity pool for the given asset pair. + **/ + getReserves: AugmentedCall Observable>>>; + /** + * Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].,, Note that the price may have changed by the time the transaction is executed., (Use `amount_out_min` to control slippage.) + **/ + quotePriceExactTokensForTokens: AugmentedCall Observable>>; + /** + * Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].,, Note that the price may have changed by the time the transaction is executed., (Use `amount_in_max` to control slippage.) + **/ + quotePriceTokensForExactTokens: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdd718d5cc53262d4/ */ + auraApi: { + /** + * Return the current set of authorities. + **/ + authorities: AugmentedCall Observable>>; + /** + * Returns the slot duration for Aura.,, Currently, only the value provided by this type at genesis will be used. + **/ + slotDuration: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd7bdd8a272ca0d65/ */ + auraUnincludedSegmentApi: { + /** + * Whether it is legal to extend the chain, assuming the given block is the most, recently included one as-of the relay parent that will be built against, and, the given relay chain slot.,, This should be consistent with the logic the runtime uses when validating blocks to, avoid issues.,, When the unincluded segment is empty, i.e. `included_hash == at`, where at is the block, whose state we are querying against, this must always return `true` as long as the slot, is more recent than the included block itself. + **/ + canBuildUpon: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x12c8e3d4d7e06de0/ */ + authorizedAliasersApi: { + /** + * Returns locations allowed to alias into and act as `target`. + **/ + authorizedAliasers: AugmentedCall Observable, XcmRuntimeApisAuthorizedAliasesError>>>; + /** + * Returns whether `origin` is allowed to alias into and act as `target`. + **/ + isAuthorizedAlias: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/ */ + blockBuilder: { + /** + * Apply the given extrinsic.,, Returns an inclusion outcome which specifies if this extrinsic is included in, this block or not. + **/ + applyExtrinsic: AugmentedCall Observable, PezspRuntimeTransactionValidityTransactionValidityError>>>; + /** + * Check that the inherents are valid. The inherent data will vary from chain to chain. + **/ + checkInherents: AugmentedCall Observable>; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable>; + /** + * Generate inherent extrinsics. The inherent data will vary from chain to chain. + **/ + inherentExtrinsics: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xea93e3f16f3d6962/ */ + collectCollationInfo: { + /** + * Collect information about a collation.,, The given `header` is the header of the built block for that, we are collecting the collation info for. + **/ + collectCollationInfo: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/ */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall Observable>; + /** + * Initialize a block with the given header and return the runtime executive mode. + **/ + initializeBlock: AugmentedCall Observable>; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91b1c8b16328eb92/ */ + dryRunApi: { + /** + * Dry run call V2. + **/ + dryRunCall: AugmentedCall Observable>>; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xde92b8a0426b9bf6/ */ + fungiblesApi: { + /** + * Returns the list of all [`Asset`] that an `AccountId` has. + **/ + queryAccountBalances: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/ */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the, storage.,, In the case of a FRAME-based runtime, this function deserializes the full, `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the, provided JSON blob is incorrect or incomplete or the deserialization fails, an error, is returned.,, Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no, defaults will be used. + **/ + buildState: AugmentedCall Observable>>; + /** + * Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by, `id`.,, If `id` is `None` the function should return JSON blob representation of the default, `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default, `RuntimeGenesisConfig`.,, Otherwise function returns a JSON representation of the built-in, named, `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not, exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of, (potentially nested) key-value pairs that are intended for customizing the default, runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation, of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can, be used in `build_state` method. + **/ + getPreset: AugmentedCall | null | Uint8Array | Text | string) => Observable>>; + /** + * Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.,, The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If, no named presets are provided by the runtime the list is empty. + **/ + presetNames: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xa2ddb6a58477bf63/ */ + getParachainInfo: { + /** + * Retrieve the parachain id used for runtime. + **/ + parachainId: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x9ffb505aa738d69c/ */ + locationToAccountApi: { + /** + * Converts `Location` to `AccountId`. + **/ + convertLocation: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/ */ + metadata: { + /** + * Returns the metadata of a runtime. + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version.,, If the given `version` isn't supported, this will return `None`., Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime. + **/ + metadataAtVersion: AugmentedCall Observable>>; + /** + * Returns the supported metadata versions.,, This can be used to call `metadata_at_version`. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x17a6bc0d0062aeb3/ */ + nominationPoolsApi: { + /** + * Returns the equivalent points of `new_funds` for a given pool. + **/ + balanceToPoints: AugmentedCall Observable>; + /** + * Returns true if the delegated funds of the pool `member` needs migration.,, Once a pool has successfully migrated to the strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the, member can be migrated from pool account to the member's account. Use, [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation), to migrate the funds of the pool member. + **/ + memberNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool member.,, If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on, chain. + **/ + memberPendingSlash: AugmentedCall Observable>; + /** + * Returns the total contribution of a pool member including any balance that is unbonding. + **/ + memberTotalBalance: AugmentedCall Observable>; + /** + * Returns the pending rewards for the member that the AccountId was given for. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Returns the equivalent balance of `points` for a given pool. + **/ + pointsToBalance: AugmentedCall Observable>; + /** + * Returns the bonded account and reward account associated with the pool_id. + **/ + poolAccounts: AugmentedCall Observable>>; + /** + * Total balance contributed to the pool. + **/ + poolBalance: AugmentedCall Observable>; + /** + * Returns true if the pool with `pool_id` needs migration.,, This can happen when the `pallet-nomination-pools` has switched to using strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool, still has funds that were staked using the older strategy, [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use, [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake), to migrate the pool. + **/ + poolNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool. + **/ + poolPendingSlash: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/ */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x04e70521a0d3d2f8/ */ + relayParentOffsetApi: { + /** + * Fetch the slot offset that is expected from the relay chain. + **/ + relayParentOffset: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xccd9de6396c899ca/ */ + runtimeViewFunction: { + /** + * Execute a view function query. + **/ + executeViewFunction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/ */ + sessionKeys: { + /** + * Decode the given public session keys.,, Returns the list of public raw public keys + key type. + **/ + decodeSessionKeys: AugmentedCall Observable>>>>; + /** + * Generate a set of session keys with optionally using the given seed., The keys should be stored within the keystore exposed via runtime, externalities.,, The seed needs to be a valid `utf8` string.,, Returns the concatenated SCALE encoded public keys. + **/ + generateSessionKeys: AugmentedCall | null | Uint8Array | Bytes | string) => Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x18ef58a3b67ba770/ */ + stakingApi: { + /** + * Returns the page count of exposures for a validator `account` in a given era. + **/ + erasStakersPageCount: AugmentedCall Observable>; + /** + * Returns the nominations quota for a nominator with a given balance. + **/ + nominationsQuota: AugmentedCall Observable>; + /** + * Returns true if validator `account` has pages to be claimed for the given era. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/ */ + taggedTransactionQueue: { + /** + * Validate the transaction.,, This method is invoked by the transaction pool to learn details about given transaction., The implementation should make sure to verify the correctness of the transaction, against current state. The given `block_hash` corresponds to the hash of the block, that is used as current state.,, Note that this call may be performed by the pool multiple times and transactions, might be verified in any possible order. + **/ + validateTransaction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/ */ + transactionPaymentApi: { + /** + * + **/ + queryFeeDetails: AugmentedCall Observable>; + /** + * + **/ + queryInfo: AugmentedCall Observable>; + /** + * + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/ */ + transactionPaymentCallApi: { + /** + * Query fee details of a given encoded `Call`. + **/ + queryCallFeeDetails: AugmentedCall Observable>; + /** + * Query information of a dispatch class, weight, and fee of a given encoded `Call`. + **/ + queryCallInfo: AugmentedCall Observable>; + /** + * Query the output of the current `LengthToFee` given some input. + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * Query the output of the current `WeightToFee` given some input. + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x2609be83ac4468dc/ */ + trustedQueryApi: { + /** + * Returns if the location is a trusted reserve for the asset.,, # Arguments, * `asset`: `VersionedAsset`., * `location`: `VersionedLocation`. + **/ + isTrustedReserve: AugmentedCall Observable>>; + /** + * Returns if the asset can be teleported to the location.,, # Arguments, * `asset`: `VersionedAsset`., * `location`: `VersionedLocation`. + **/ + isTrustedTeleporter: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6ff52ee858e6c5bd/ */ + xcmPaymentApi: { + /** + * Returns a list of acceptable payment assets.,, # Arguments,, * `xcm_version`: Version. + **/ + queryAcceptablePaymentAssets: AugmentedCall Observable, XcmRuntimeApisFeesError>>>; + /** + * Get delivery fees for sending a specific `message` to a `destination`., These always come in a specific asset, defined by the chain.,, # Arguments, * `message`: The message that'll be sent, necessary because most delivery fees are based on the, size of the message., * `destination`: The destination to send the message to. Different destinations may use, different senders that charge different fees. + **/ + queryDeliveryFees: AugmentedCall Observable>>; + /** + * Converts a weight into a fee for the specified `AssetId`.,, # Arguments,, * `weight`: convertible `Weight`., * `asset`: `VersionedAssetId`. + **/ + queryWeightToAssetFee: AugmentedCall Observable>>; + /** + * Returns a weight needed to execute a XCM.,, # Arguments,, * `message`: `VersionedXcm`. + **/ + queryXcmWeight: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/packages/api-augment/src/assetHubPezkuwi/tx.ts b/packages/api-augment/src/assetHubPezkuwi/tx.ts new file mode 100644 index 0000000..9da301b --- /dev/null +++ b/packages/api-augment/src/assetHubPezkuwi/tx.ts @@ -0,0 +1,6241 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/submittable'; + +import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@pezkuwi/api-base/types'; +import type { Bytes, Compact, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, MultiAddress, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { AssetHubPezkuwiRuntimeOriginCaller, AssetHubPezkuwiRuntimeProxyType, AssetHubPezkuwiRuntimeRuntimeParameters, AssetHubPezkuwiRuntimeRuntimeTask, AssetHubPezkuwiRuntimeSessionKeys, AssetHubPezkuwiRuntimeStakingNposCompactSolution16, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime, PezkuwiRuntimeCommonClaimsEcdsaSignature, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezpalletAhMigratorMigrationStage, PezpalletBalancesAdjustmentDirection, PezpalletConvictionVotingConviction, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiBlockAdminOperation, PezpalletElectionProviderMultiBlockPagedRawSolution, PezpalletMultisigTimepoint, PezpalletNftsAttributeNamespace, PezpalletNftsCancelAttributesApprovalWitness, PezpalletNftsCollectionConfig, PezpalletNftsDestroyWitness, PezpalletNftsItemConfig, PezpalletNftsItemTip, PezpalletNftsMintSettings, PezpalletNftsMintWitness, PezpalletNftsPreSignedAttributes, PezpalletNftsPreSignedMint, PezpalletNftsPriceWithDirection, PezpalletNominationPoolsBondExtra, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpPerbill, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsPoolState, PezpalletRcMigratorAccountsAccount, PezpalletRcMigratorBountiesRcBountiesMessage, PezpalletRcMigratorChildBountiesPortableChildBountiesMessage, PezpalletRcMigratorClaimsRcClaimsMessage, PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage, PezpalletRcMigratorCrowdloanRcCrowdloanMessage, PezpalletRcMigratorIndicesRcIndicesIndex, PezpalletRcMigratorMigrationFinishedData, PezpalletRcMigratorMultisigRcMultisig, PezpalletRcMigratorPreimageChunksRcPreimageChunk, PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus, PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus, PezpalletRcMigratorProxyRcProxy, PezpalletRcMigratorProxyRcProxyAnnouncement, PezpalletRcMigratorQueuePriority, PezpalletRcMigratorReferendaReferendaMessage, PezpalletRcMigratorSchedulerRcSchedulerMessage, PezpalletRcMigratorSchedulerSchedulerAgendaMessage, PezpalletRcMigratorStakingBagsListPortableBagsListMessage, PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage, PezpalletRcMigratorStakingMessagePortableStakingMessage, PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage, PezpalletRcMigratorTreasuryPortableTreasuryMessage, PezpalletRcMigratorVestingRcVestingSchedule, PezpalletReferendaReferendumInfoRcPalletsOrigin, PezpalletStakingAsyncLedgerUnlockChunk, PezpalletStakingAsyncPezpalletConfigOpPerbill, PezpalletStakingAsyncPezpalletConfigOpPercent, PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncRcClientOffence, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletStateTrieMigrationProgress, PezpalletUniquesDestroyWitness, PezpalletVestingVestingInfo, PezspNposElectionsElectionScore, PezspRuntimeMultiSignature, PezspWeightsWeightV2Weight, SnowbridgeCoreAssetMetadata, SnowbridgeCoreOperatingModeBasicOperatingMode, SnowbridgeCoreRewardMessageId, StagingXcmExecutorAssetTransferTransferType, StagingXcmV5Asset, StagingXcmV5Location, TeyrchainsCommonPayVersionedLocatableAccount, XcmV3WeightLimit, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = SubmittableExtrinsicFunction; + +declare module '@pezkuwi/api-base/types/submittable' { + interface AugmentedSubmittables { + ahMigrator: { + /** + * Finish the migration. + * + * This is typically called by the Relay Chain to signal the migration has finished. + * + * The `data` parameter might be `None` if we are running the migration for a second time + * for some pallets and have already performed the checking account balance correction, + * so we do not need to do it this time. + **/ + finishMigration: AugmentedSubmittable<(data: Option | null | Uint8Array | PezpalletRcMigratorMigrationFinishedData, coolOffEndAt: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Option, u32]>; + /** + * Set the migration stage. + * + * This call is intended for emergency use only and is guarded by the + * [`Config::AdminOrigin`]. + **/ + forceSetStage: AugmentedSubmittable<(stage: PezpalletAhMigratorMigrationStage) => SubmittableExtrinsic, [PezpalletAhMigratorMigrationStage]>; + /** + * Receive accounts from the Relay Chain. + * + * The accounts sent with `pallet_rc_migrator::Pallet::migrate_accounts` function. + **/ + receiveAccounts: AugmentedSubmittable<(accounts: Vec | (PezpalletRcMigratorAccountsAccount)[]) => SubmittableExtrinsic, [Vec]>; + receiveAssetRates: AugmentedSubmittable<(rates: Vec> | ([PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128 | AnyNumber | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + receiveBagsListMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingBagsListPortableBagsListMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveBountiesMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorBountiesRcBountiesMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveChildBountiesMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorChildBountiesPortableChildBountiesMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveClaims: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorClaimsRcClaimsMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveConvictionVotingMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveCrowdloanMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorCrowdloanRcCrowdloanMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveDelegatedStakingMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveIndices: AugmentedSubmittable<(indices: Vec | (PezpalletRcMigratorIndicesRcIndicesIndex)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive multisigs from the Relay Chain. + * + * This will be called from an XCM `Transact` inside a DMP from the relay chain. The + * multisigs were prepared by + * `pallet_rc_migrator::multisig::MultisigMigrator::migrate_many`. + **/ + receiveMultisigs: AugmentedSubmittable<(accounts: Vec | (PezpalletRcMigratorMultisigRcMultisig)[]) => SubmittableExtrinsic, [Vec]>; + receiveNomPoolsMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage)[]) => SubmittableExtrinsic, [Vec]>; + receivePreimageChunks: AugmentedSubmittable<(chunks: Vec | (PezpalletRcMigratorPreimageChunksRcPreimageChunk)[]) => SubmittableExtrinsic, [Vec]>; + receivePreimageLegacyStatus: AugmentedSubmittable<(legacyStatus: Vec | (PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus)[]) => SubmittableExtrinsic, [Vec]>; + receivePreimageRequestStatus: AugmentedSubmittable<(requestStatus: Vec | (PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive proxy announcements from the Relay Chain. + **/ + receiveProxyAnnouncements: AugmentedSubmittable<(announcements: Vec | (PezpalletRcMigratorProxyRcProxyAnnouncement)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive proxies from the Relay Chain. + **/ + receiveProxyProxies: AugmentedSubmittable<(proxies: Vec | (PezpalletRcMigratorProxyRcProxy)[]) => SubmittableExtrinsic, [Vec]>; + receiveReferendaMetadata: AugmentedSubmittable<(metadata: Vec> | ([u32 | AnyNumber | Uint8Array, H256 | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Receive referendum counts, deciding counts, votes for the track queue. + **/ + receiveReferendaValues: AugmentedSubmittable<(values: Vec | (PezpalletRcMigratorReferendaReferendaMessage)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive referendums from the Relay Chain. + **/ + receiveReferendums: AugmentedSubmittable<(referendums: Vec> | ([u32 | AnyNumber | Uint8Array, PezpalletReferendaReferendumInfoRcPalletsOrigin])[]) => SubmittableExtrinsic, [Vec>]>; + receiveSchedulerAgendaMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorSchedulerSchedulerAgendaMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveSchedulerMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorSchedulerRcSchedulerMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveStakingMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorStakingMessagePortableStakingMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveTreasuryMessages: AugmentedSubmittable<(messages: Vec | (PezpalletRcMigratorTreasuryPortableTreasuryMessage)[]) => SubmittableExtrinsic, [Vec]>; + receiveVestingSchedules: AugmentedSubmittable<(schedules: Vec | (PezpalletRcMigratorVestingRcVestingSchedule)[]) => SubmittableExtrinsic, [Vec]>; + /** + * XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the + * [Config::SendXcm] router which will be able to send messages to the Relay Chain during + * the migration. + **/ + sendXcmMessage: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Set the DMP queue priority configuration. + * + * Can only be called by the `AdminOrigin`. + **/ + setDmpQueuePriority: AugmentedSubmittable<(updated: PezpalletRcMigratorQueuePriority) => SubmittableExtrinsic, [PezpalletRcMigratorQueuePriority]>; + /** + * Set the manager account id. + * + * The manager has the similar to [`Config::AdminOrigin`] privileges except that it + * can not set the manager account id via `set_manager` call. + **/ + setManager: AugmentedSubmittable<(updated: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [Option]>; + /** + * Start the data migration. + * + * This is typically called by the Relay Chain to start the migration on the Asset Hub and + * receive a handshake message indicating the Asset Hub's readiness. + **/ + startMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + ahOps: { + /** + * Transfer the balance from the pre-migration treasury account to the post-migration + * treasury account. + * + * This call can only be called after the migration is completed. + **/ + transferToPostMigrationTreasury: AugmentedSubmittable<(assetId: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Unreserve the deposit that was taken for creating a crowdloan. + * + * This can be called once either: + * - The crowdloan failed to win an auction and timed out + * - Won an auction, all leases expired and all contributions are withdrawn + * + * Can be called by any signed origin. The condition that all contributions are withdrawn + * is in place since the reserve acts as a storage deposit. + **/ + unreserveCrowdloanReserve: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, depositor: Option | null | Uint8Array | AccountId32 | string, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Option, u32]>; + /** + * Unreserve the deposit that was taken for creating a crowdloan. + * + * This can be called by any signed origin. It unreserves the lease deposit on the account + * that won the lease auction. It can be unreserved once all leases expired. Note that it + * will be called automatically from `withdraw_crowdloan_contribution` for the matching + * crowdloan account. + * + * Solo bidder accounts that won lease auctions can use this to unreserve their amount. + **/ + unreserveLeaseDeposit: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, depositor: Option | null | Uint8Array | AccountId32 | string, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Option, u32]>; + /** + * Withdraw the contribution of a finished crowdloan. + * + * A crowdloan contribution can be withdrawn if either: + * - The crowdloan failed to in an auction and timed out + * - Won an auction and all leases expired + * + * Can be called by any signed origin. + **/ + withdrawCrowdloanContribution: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, depositor: Option | null | Uint8Array | AccountId32 | string, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Option, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetConversion: { + /** + * Provide liquidity into the pool of `asset1` and `asset2`. + * NOTE: an optimal amount of asset1 and asset2 will be calculated and + * might be different than the provided `amount1_desired`/`amount2_desired` + * thus you should provide the min amount you're happy to provide. + * Params `amount1_min`/`amount2_min` represent that. + * `mint_to` will be sent the liquidity tokens that represent this share of the pool. + * + * NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity, + * batch an atomic call with [`Pallet::add_liquidity`] and + * [`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`] + * calls to render the liquidity withdrawable and rectify the exchange rate. + * + * Once liquidity is added, someone may successfully call + * [`Pallet::swap_exact_tokens_for_tokens`]. + **/ + addLiquidity: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, amount1Desired: u128 | AnyNumber | Uint8Array, amount2Desired: u128 | AnyNumber | Uint8Array, amount1Min: u128 | AnyNumber | Uint8Array, amount2Min: u128 | AnyNumber | Uint8Array, mintTo: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location, u128, u128, u128, u128, AccountId32]>; + /** + * Creates an empty liquidity pool and an associated new `lp_token` asset + * (the id of which is returned in the `Event::PoolCreated` event). + * + * Once a pool is created, someone may [`Pallet::add_liquidity`] to it. + **/ + createPool: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location]>; + /** + * Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be + * burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive` + * it's possible to control the min amount of returned tokens you're happy with. + **/ + removeLiquidity: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, lpTokenBurn: u128 | AnyNumber | Uint8Array, amount1MinReceive: u128 | AnyNumber | Uint8Array, amount2MinReceive: u128 | AnyNumber | Uint8Array, withdrawTo: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location, u128, u128, u128, AccountId32]>; + /** + * Swap the exact amount of `asset1` into `asset2`. + * `amount_out_min` param allows you to specify the min amount of the `asset2` + * you're happy to receive. + * + * [`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called + * for a quote. + **/ + swapExactTokensForTokens: AugmentedSubmittable<(path: Vec | (StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array)[], amountIn: u128 | AnyNumber | Uint8Array, amountOutMin: u128 | AnyNumber | Uint8Array, sendTo: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Vec, u128, u128, AccountId32, bool]>; + /** + * Swap any amount of `asset1` to get the exact amount of `asset2`. + * `amount_in_max` param allows to specify the max amount of the `asset1` + * you're happy to provide. + * + * [`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called + * for a quote. + **/ + swapTokensForExactTokens: AugmentedSubmittable<(path: Vec | (StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array)[], amountOut: u128 | AnyNumber | Uint8Array, amountInMax: u128 | AnyNumber | Uint8Array, sendTo: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Vec, u128, u128, AccountId32, bool]>; + /** + * Touch an existing pool to fulfill prerequisites before providing liquidity, such as + * ensuring that the pool's accounts are in place. It is typically useful when a pool + * creator removes the pool's accounts and does not provide a liquidity. This action may + * involve holding assets from the caller as a deposit for creating the pool's accounts. + * + * The origin must be Signed. + * + * - `asset1`: The asset ID of an existing pool with a pair (asset1, asset2). + * - `asset2`: The asset ID of an existing pool with a pair (asset1, asset2). + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(asset1: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, asset2: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, StagingXcmV5Location]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetRate: { + /** + * Initialize a conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + create: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Remove an existing conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + remove: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]>; + /** + * Update the conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + update: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable<(direction: PezpalletBalancesAdjustmentDirection, delta: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBalancesAdjustmentDirection, Compact]>; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Compact]>; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128]>; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable<(who: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bounties: { + /** + * Accept the curator role for a bounty. + * A deposit will be reserved from curator and refund upon successful payout. + * + * May only be called from the curator. + * + * ## Complexity + * - O(1). + **/ + acceptCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve a bounty proposal. At a later time, the bounty will be funded and become active + * and the original deposit will be returned. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + approveBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve bountry and propose a curator simultaneously. + * This call is a shortcut to calling `approve_bounty` and `propose_curator` separately. + * + * May only be called from `T::SpendOrigin`. + * + * - `bounty_id`: Bounty ID to approve. + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * + * ## Complexity + * - O(1). + **/ + approveBountyWithCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Award bounty to a beneficiary account. The beneficiary will be able to claim the funds + * after a delay. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to award. + * - `beneficiary`: The beneficiary account whom will receive the payout. + * + * ## Complexity + * - O(1). + **/ + awardBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Claim the payout from an awarded bounty after payout delay. + * + * The dispatch origin for this call must be the beneficiary of this bounty. + * + * - `bounty_id`: Bounty ID to claim. + * + * ## Complexity + * - O(1). + **/ + claimBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel a proposed or active bounty. All the funds will be sent to treasury and + * the curator deposit will be unreserved if possible. + * + * Only `T::RejectOrigin` is able to cancel a bounty. + * + * - `bounty_id`: Bounty ID to cancel. + * + * ## Complexity + * - O(1). + **/ + closeBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Extend the expiry time of an active bounty. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to extend. + * - `remark`: additional information. + * + * ## Complexity + * - O(1). + **/ + extendBountyExpiry: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Poke the deposit reserved for creating a bounty proposal. + * + * This can be used by accounts to update their reserved amount. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `bounty_id`: The bounty id for which to adjust the deposit. + * + * If the deposit is updated, the difference will be reserved/unreserved from the + * proposer's account. + * + * The transaction is made free if the deposit is updated and paid otherwise. + * + * Emits `DepositPoked` if the deposit is updated. + **/ + pokeDeposit: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose a new bounty. + * + * The dispatch origin for this call must be _Signed_. + * + * Payment: `TipReportDepositBase` will be reserved from the origin account, as well as + * `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval, + * or slashed when rejected. + * + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * - `value`: The total payment amount of this bounty, curator fee included. + * - `description`: The description of this bounty. + **/ + proposeBounty: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Propose a curator to a funded bounty. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + proposeCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a bounty. + * + * This function can only be called by the `RejectOrigin` a signed origin. + * + * If this function is called by the `RejectOrigin`, we assume that the curator is + * malicious or inactive. As a result, we will slash the curator when possible. + * + * If the origin is the curator, we take this as a sign they are unable to do their job and + * they willingly give up. We could slash them, but for now we allow them to recover their + * deposit and exit without issue. (We may want to change this if it is abused.) + * + * Finally, the origin can be anyone if and only if the curator is "inactive". This allows + * anyone in the community to call out that a curator is not doing their due diligence, and + * we should pick a new curator. In this case the curator should also be slashed. + * + * ## Complexity + * - O(1). + **/ + unassignCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + childBounties: { + /** + * Accept the curator role for the child-bounty. + * + * The dispatch origin for this call must be the curator of this + * child-bounty. + * + * A deposit will be reserved from the curator and refund upon + * successful payout or cancellation. + * + * Fee for curator is deducted from curator fee of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "CuratorProposed" state, for processing the + * call. And state of child-bounty is moved to "Active" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + acceptCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Add a new child-bounty. + * + * The dispatch origin for this call must be the curator of parent + * bounty and the parent bounty must be in "active" state. + * + * Child-bounty gets added successfully & fund gets transferred from + * parent bounty to child-bounty account, if parent bounty has enough + * funds, else the call fails. + * + * Upper bound to maximum number of active child bounties that can be + * added are managed via runtime trait config + * [`Config::MaxActiveChildBountyCount`]. + * + * If the call is success, the status of child-bounty is updated to + * "Added". + * + * - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added. + * - `value`: Value for executing the proposal. + * - `description`: Text description for the child-bounty. + **/ + addChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Bytes]>; + /** + * Award child-bounty to a beneficiary. + * + * The beneficiary will be able to claim the funds after a delay. + * + * The dispatch origin for this call must be the parent curator or + * curator of this child-bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in active state, for processing the call. And + * state of child-bounty is moved to "PendingPayout" on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `beneficiary`: Beneficiary account. + **/ + awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress]>; + /** + * Claim the payout from an awarded child-bounty after payout delay. + * + * The dispatch origin for this call may be any signed origin. + * + * Call works independent of parent bounty state, No need for parent + * bounty to be in active state. + * + * The Beneficiary is paid out with agreed bounty value. Curator fee is + * paid & curator deposit is unreserved. + * + * Child-bounty must be in "PendingPayout" state, for processing the + * call. And instance of child-bounty is removed from the state on + * successful call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Cancel a proposed or active child-bounty. Child-bounty account funds + * are transferred to parent bounty account. The child-bounty curator + * deposit may be unreserved if possible. + * + * The dispatch origin for this call must be either parent curator or + * `T::RejectOrigin`. + * + * If the state of child-bounty is `Active`, curator deposit is + * unreserved. + * + * If the state of child-bounty is `PendingPayout`, call fails & + * returns `PendingPayout` error. + * + * For the origin other than T::RejectOrigin, parent bounty must be in + * active state, for this child-bounty call to work. For origin + * T::RejectOrigin execution is forced. + * + * Instance of child-bounty is removed from the state on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Propose curator for funded child-bounty. + * + * The dispatch origin for this call must be curator of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "Added" state, for processing the call. And + * state of child-bounty is moved to "CuratorProposed" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `curator`: Address of child-bounty curator. + * - `fee`: payment fee to child-bounty curator for execution. + **/ + proposeCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a child-bounty. + * + * The dispatch origin for this call can be either `RejectOrigin`, or + * the curator of the parent bounty, or any signed origin. + * + * For the origin other than T::RejectOrigin and the child-bounty + * curator, parent bounty must be in active state, for this call to + * work. We allow child-bounty curator and T::RejectOrigin to execute + * this call irrespective of the parent bounty state. + * + * If this function is called by the `RejectOrigin` or the + * parent bounty curator, we assume that the child-bounty curator is + * malicious or inactive. As a result, child-bounty curator deposit is + * slashed. + * + * If the origin is the child-bounty curator, we take this as a sign + * that they are unable to do their job, and are willingly giving up. + * We could slash the deposit, but for now we allow them to unreserve + * their deposit and exit without issue. (We may want to change this if + * it is abused.) + * + * Finally, the origin can be anyone iff the child-bounty curator is + * "inactive". Expiry update due of parent bounty is used to estimate + * inactive state of child-bounty curator. + * + * This allows anyone in the community to call out that a child-bounty + * curator is not doing their due diligence, and we should pick a new + * one. In this case the child-bounty curator deposit is slashed. + * + * State of child-bounty is moved to Added state on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + unassignCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + claims: { + /** + * Attest to a statement, needed to finalize the claims process. + * + * WARNING: Insecure unless your chain includes `PrevalidateAttests` as a + * `TransactionExtension`. + * + * Unsigned Validation: + * A call to attest is deemed valid if the sender has a `Preclaim` registered + * and provides a `statement` which is expected for the account. + * + * Parameters: + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to do pre-validation on `attest` call. + * + * Total Complexity: O(1) + * + **/ + attest: AugmentedSubmittable<(statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make a claim to collect your DOTs. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to claim is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address) + * + * and `address` matches the `dest` account. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim` call. + * + * Total Complexity: O(1) + * + **/ + claim: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature]>; + /** + * Make a claim to collect your DOTs by signing a statement. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to `claim_attest` is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address)(statement) + * + * and `address` matches the `dest` account; the `statement` must match that which is + * expected according to your purchase arrangement. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim_attest` call. + * + * Total Complexity: O(1) + * + **/ + claimAttest: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature, statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature, Bytes]>; + /** + * Mint a new claim to collect DOTs. + * + * The dispatch origin for this call must be _Root_. + * + * Parameters: + * - `who`: The Ethereum address allowed to collect this claim. + * - `value`: The number of DOTs that will be claimed. + * - `vesting_schedule`: An optional vesting schedule for these DOTs. + * + * + * The weight of this call is invariant over the input parameters. + * We assume worst case that both vesting and statement is being inserted. + * + * Total Complexity: O(1) + * + **/ + mintClaim: AugmentedSubmittable<(who: PezkuwiRuntimeCommonClaimsEthereumAddress, value: u128 | AnyNumber | Uint8Array, vestingSchedule: Option> | null | Uint8Array | ITuple<[u128, u128, u32]> | [u128 | AnyNumber | Uint8Array, u128 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], statement: Option | null | Uint8Array | PezkuwiRuntimeCommonClaimsStatementKind) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, u128, Option>, Option]>; + moveClaim: AugmentedSubmittable<(old: PezkuwiRuntimeCommonClaimsEthereumAddress, updated: PezkuwiRuntimeCommonClaimsEthereumAddress, maybePreclaim: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsEthereumAddress, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + collatorSelection: { + /** + * Add a new account `who` to the list of `Invulnerables` collators. `who` must have + * registered session keys. If `who` is a candidate, they will be removed. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + addInvulnerable: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Deregister `origin` as a collator candidate. Note that the collator can only leave on + * session change. The `CandidacyBond` will be unreserved immediately. + * + * This call will fail if the total number of candidates would drop below + * `MinEligibleCollators`. + **/ + leaveIntent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register this account as a collator candidate. The account must (a) already have + * registered session keys and (b) be able to reserve the `CandidacyBond`. + * + * This call is not available to `Invulnerable` collators. + **/ + registerAsCandidate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must + * be sorted. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + removeInvulnerable: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Set the candidacy bond amount. + * + * If the candidacy bond is increased by this call, all current candidates which have a + * deposit lower than the new bond will be kicked from the list and get their deposits + * back. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setCandidacyBond: AugmentedSubmittable<(bond: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Set the ideal number of non-invulnerable collators. If lowering this number, then the + * number of running collators could be higher than this figure. Aside from that edge case, + * there should be no other way to have more candidates than the desired number. + * + * The origin for this call must be the `UpdateOrigin`. + **/ + setDesiredCandidates: AugmentedSubmittable<(max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the list of invulnerable (fixed) collators. These collators must do some + * preparation, namely to have registered session keys. + * + * The call will remove any accounts that have not registered keys from the set. That is, + * it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as + * acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables. + * + * This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It + * is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A + * `batch_all` can also be used to enforce atomicity. If any candidates are included in + * `new`, they should be removed with `remove_invulnerable_candidate` after execution. + * + * Must be called by the `UpdateOrigin`. + **/ + setInvulnerables: AugmentedSubmittable<(updated: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * The caller `origin` replaces a candidate `target` in the collator candidate list by + * reserving `deposit`. The amount `deposit` reserved by the caller must be greater than + * the existing bond of the target it is trying to replace. + * + * This call will fail if the caller is already a collator candidate or invulnerable, the + * caller does not have registered session keys, the target is not a collator candidate, + * and/or the `deposit` amount cannot be reserved. + **/ + takeCandidateSlot: AugmentedSubmittable<(deposit: u128 | AnyNumber | Uint8Array, target: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [u128, AccountId32]>; + /** + * Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`. + * + * Setting a `new_deposit` that is lower than the current deposit while `origin` is + * occupying a top-`DesiredCandidates` slot is not allowed. + * + * This call will fail if `origin` is not a collator candidate, the updated bond is lower + * than the minimum candidacy bond, and/or the amount cannot be reserved. + **/ + updateBond: AugmentedSubmittable<(newDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + convictionVoting: { + /** + * Delegate the voting power (with some given conviction) of the sending account for a + * particular class of polls. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed through + * `remove_vote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `class`: The class of polls to delegate. To delegate multiple classes, multiple calls + * to this function are required. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + delegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PezpalletConvictionVotingConviction, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress, PezpalletConvictionVotingConviction, u128]>; + /** + * Remove a vote for a poll. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the poll was cancelled, because the voter lost the poll or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for poll + * `index`. + * - `index`: The index of poll of the vote to be removed. + * - `class`: The class of the poll. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, clazz: u16 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16, u32]>; + /** + * Remove a vote for a poll. + * + * If: + * - the poll was cancelled, or + * - the poll is ongoing, or + * - the poll has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the poll has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for poll `index`. + * + * - `index`: The index of poll of the vote to be removed. + * - `class`: Optional parameter, if given it indicates the class of the poll. For polls + * which have finished or are cancelled, this must be `Some`. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(clazz: Option | null | Uint8Array | u16 | AnyNumber, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Option, u32]>; + /** + * Undelegate the voting power of the sending account for a particular class of polls. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued has passed. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * - `class`: The class of polls to remove the delegation from. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + undelegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Remove the lock caused by prior voting/delegating which has expired within a particular + * class. + * + * The dispatch origin of this call must be _Signed_. + * + * - `class`: The class of polls to unlock. + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress]>; + /** + * Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `poll_index`: The index of the poll to vote for. + * - `vote`: The vote configuration. + * + * Weight: `O(R)` where R is the number of polls the voter has voted on. + **/ + vote: AugmentedSubmittable<(pollIndex: Compact | AnyNumber | Uint8Array, vote: PezpalletConvictionVotingVoteAccountVote) => SubmittableExtrinsic, [Compact, PezpalletConvictionVotingVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + cumulusXcm: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + foreignAssets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + indices: { + /** + * Assign an previously unassigned index. + * + * Payment: `Deposit` is reserved from the sender account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be claimed. This must not be in use. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + claim: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force an index to an account. This doesn't require a deposit. If the index is already + * held, then any deposit is reimbursed to its current owner. + * + * The dispatch origin for this call must be _Root_. + * + * - `index`: the index to be (re-)assigned. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * - `freeze`: if set to `true`, will freeze the index so it cannot be transferred. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + forceTransfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array, freeze: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, bool]>; + /** + * Free up an index owned by the sender. + * + * Payment: Any previous deposit placed for the index is unreserved in the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must own the index. + * + * - `index`: the index to be freed. This must be owned by the sender. + * + * Emits `IndexFreed` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + free: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Freeze an index so it will always point to the sender account. This consumes the + * deposit. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * - `index`: the index to be frozen in place. + * + * Emits `IndexFrozen` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + freeze: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Poke the deposit reserved for an index. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * The transaction fees is waived if the deposit is changed after poking/reconsideration. + * + * - `index`: the index whose deposit is to be poked/reconsidered. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Assign an index already owned by the sender to another account. The balance reservation + * is effectively transferred to the new account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be re-assigned. This must be owned by the sender. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + transfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable<(messageOrigin: PezcumulusPrimitivesCoreAggregateMessageOrigin, page: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array, weightLimit: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [PezcumulusPrimitivesCoreAggregateMessageOrigin, u32, u32, PezspWeightsWeightV2Weight]>; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable<(messageOrigin: PezcumulusPrimitivesCoreAggregateMessageOrigin, pageIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezcumulusPrimitivesCoreAggregateMessageOrigin, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElection: { + /** + * Manage this pallet. + * + * The origin of this call must be [`Config::AdminOrigin`]. + * + * See [`AdminOperation`] for various operations that are possible. + **/ + manage: AugmentedSubmittable<(op: PezpalletElectionProviderMultiBlockAdminOperation) => SubmittableExtrinsic, [PezpalletElectionProviderMultiBlockAdminOperation]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElectionSigned: { + /** + * Retract a submission. + * + * A portion of the deposit may be returned, based on the [`Config::BailoutGraceRatio`]. + * + * This will fully remove the solution from storage. + **/ + bail: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Clear the data of a submitter form an old round. + * + * The dispatch origin of this call must be signed, and the original submitter. + * + * This can only be called for submissions that end up being discarded, as in they are not + * processed and they end up lingering in the queue. + **/ + clearOldRoundData: AugmentedSubmittable<(round: u32 | AnyNumber | Uint8Array, witnessPages: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Register oneself for an upcoming signed election. + **/ + register: AugmentedSubmittable<(claimedScore: PezspNposElectionsElectionScore) => SubmittableExtrinsic, [PezspNposElectionsElectionScore]>; + /** + * Set the invulnerable list. + * + * Dispatch origin must the the same as [`crate::Config::AdminOrigin`]. + **/ + setInvulnerables: AugmentedSubmittable<(inv: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Submit a single page of a solution. + * + * Must always come after [`Pallet::register`]. + * + * `maybe_solution` can be set to `None` to erase the page. + * + * Collects deposits from the signed origin based on [`Config::DepositBase`] and + * [`Config::DepositPerPage`]. + **/ + submitPage: AugmentedSubmittable<(page: u32 | AnyNumber | Uint8Array, maybeSolution: Option | null | Uint8Array | AssetHubPezkuwiRuntimeStakingNposCompactSolution16) => SubmittableExtrinsic, [u32, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElectionUnsigned: { + /** + * Submit an unsigned solution. + * + * This works very much like an inherent, as only the validators are permitted to submit + * anything. By default validators will compute this call in their `offchain_worker` hook + * and try and submit it back. + * + * This is different from signed page submission mainly in that the solution page is + * verified on the fly. + * + * The `paged_solution` may contain at most [`Config::MinerPages`] pages. They are + * interpreted as msp -> lsp, as per [`crate::Pallet::msp_range_for`]. + * + * For example, if `Pages = 4`, and `MinerPages = 2`, our full snapshot range would be [0, + * 1, 2, 3], with 3 being msp. But, in this case, then the `paged_raw_solution.pages` is + * expected to correspond to `[snapshot(2), snapshot(3)]`. + **/ + submitUnsigned: AugmentedSubmittable<(pagedSolution: PezpalletElectionProviderMultiBlockPagedRawSolution) => SubmittableExtrinsic, [PezpalletElectionProviderMultiBlockPagedRawSolution]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockElectionVerifier: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multisig: { + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call_hash`: The hash of the call to be executed. + * + * NOTE: If this is the final approval, you will want to use `as_multi` instead. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, PezspWeightsWeightV2Weight]>; + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * If there are enough, then dispatch the call. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call`: The call to be executed. + * + * NOTE: Unless this is the final approval, you will generally want to use + * `approve_as_multi` instead, since it only requires a hash of the call. + * + * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise + * on success, result is `Ok` and the result from the interior call, if it was executed, + * may be found in the deposited `MultisigExecuted` event. + * + * ## Complexity + * - `O(S + Z + Call)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - The weight of the `call`. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, call: RuntimeCall | IMethod | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Immediately dispatch a multi-signature call using a single approval from the caller. + * + * The dispatch origin for this call must be _Signed_. + * + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multi-signature, but do not participate in the approval process. + * - `call`: The call to be executed. + * + * Result is equivalent to the dispatched result. + * + * ## Complexity + * O(Z + C) where Z is the length of the call and C its execution weight. + **/ + asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Vec, RuntimeCall]>; + /** + * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously + * for this operation will be unreserved on success. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `timepoint`: The timepoint (block number and transaction index) of the first approval + * transaction for this dispatch. + * - `call_hash`: The hash of the call to be executed. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - One event. + * - I/O: 1 read `O(S)`, one remove. + * - Storage: removes one item. + **/ + cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], timepoint: PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, PezpalletMultisigTimepoint, U8aFixed]>; + /** + * Poke the deposit reserved for an existing multisig operation. + * + * The dispatch origin for this call must be _Signed_ and must be the original depositor of + * the multisig operation. + * + * The transaction fee is waived if the deposit amount has changed. + * + * - `threshold`: The total number of approvals needed for this multisig. + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multisig. + * - `call_hash`: The hash of the call this deposit is reserved for. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, U8aFixed]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u32, u32, MultiAddress, Option]>; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, bidPrice: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u128]>; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, witness: PezpalletNftsCancelAttributesApprovalWitness) => SubmittableExtrinsic, [u32, u32, MultiAddress, PezpalletNftsCancelAttributesApprovalWitness]>; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable<(offeredCollection: u32 | AnyNumber | Uint8Array, offeredItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable<(sendCollection: u32 | AnyNumber | Uint8Array, sendItem: u32 | AnyNumber | Uint8Array, receiveCollection: u32 | AnyNumber | Uint8Array, receiveItem: u32 | AnyNumber | Uint8Array, witnessPrice: Option | null | Uint8Array | PezpalletNftsPriceWithDirection) => SubmittableExtrinsic, [u32, u32, u32, u32, Option]>; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, PezpalletNftsAttributeNamespace, Bytes]>; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [MultiAddress, PezpalletNftsCollectionConfig]>; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable<(offeredCollection: u32 | AnyNumber | Uint8Array, offeredItem: u32 | AnyNumber | Uint8Array, desiredCollection: u32 | AnyNumber | Uint8Array, maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, maybePrice: Option | null | Uint8Array | PezpalletNftsPriceWithDirection, duration: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, Option, Option, u32]>; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, witness: PezpalletNftsDestroyWitness) => SubmittableExtrinsic, [u32, PezpalletNftsDestroyWitness]>; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [u32, PezpalletNftsCollectionConfig]>; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [MultiAddress, PezpalletNftsCollectionConfig]>; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, mintTo: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, itemConfig: PezpalletNftsItemConfig) => SubmittableExtrinsic, [u32, u32, MultiAddress, PezpalletNftsItemConfig]>; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable<(setAs: Option | null | Uint8Array | AccountId32 | string, collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Option, u32, Option, PezpalletNftsAttributeNamespace, Bytes, Bytes]>; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, lockSettings: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u64]>; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, lockMetadata: bool | boolean | Uint8Array, lockAttributes: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, u32, bool, bool]>; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, mintTo: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, witnessData: Option | null | Uint8Array | PezpalletNftsMintWitness) => SubmittableExtrinsic, [u32, u32, MultiAddress, Option]>; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable<(mintData: PezpalletNftsPreSignedMint, signature: PezspRuntimeMultiSignature, signer: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletNftsPreSignedMint, PezspRuntimeMultiSignature, AccountId32]>; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable<(tips: Vec | (PezpalletNftsItemTip)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, items: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable<(maybeCollection: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, PezpalletNftsAttributeNamespace, Bytes, Bytes]>; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable<(data: PezpalletNftsPreSignedAttributes, signature: PezspRuntimeMultiSignature, signer: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletNftsPreSignedAttributes, PezspRuntimeMultiSignature, AccountId32]>; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maxSupply: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes]>; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, price: Option | null | Uint8Array | u128 | AnyNumber, whitelistedBuyer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option, Option]>; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, issuer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string, admin: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string, freezer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, Option, Option, Option]>; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, newOwner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, mintSettings: PezpalletNftsMintSettings) => SubmittableExtrinsic, [u32, PezpalletNftsMintSettings]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nominationPools: { + /** + * Top up the deficit or withdraw the excess ED from the pool. + * + * When a pool is created, the pool depositor transfers ED to the reward account of the + * pool. ED is subject to change and over time, the deposit in the reward account may be + * insufficient to cover the ED deficit of the pool or vice-versa where there is excess + * deposit to the pool. This call allows anyone to adjust the ED deposit of the + * pool by either topping up the deficit or claiming the excess. + **/ + adjustPoolDeposit: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Apply a pending slash on a member. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * The pending slash amount of the member must be equal or more than `ExistentialDeposit`. + * This call can be dispatched permissionlessly (i.e. by any account). If the execution + * is successful, fee is refunded and caller may be rewarded with a part of the slash + * based on the [`crate::pallet::Config::StakeAdapter`] configuration. + **/ + applySlash: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Bond `extra` more funds from `origin` into the pool to which they already belong. + * + * Additional funds can come from either the free balance of the account, of from the + * accumulated rewards, see [`BondExtra`]. + * + * Bonding extra funds implies an automatic payout of all pending rewards as well. + * See `bond_extra_other` to bond pending rewards of `other` members. + **/ + bondExtra: AugmentedSubmittable<(extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [PezpalletNominationPoolsBondExtra]>; + /** + * `origin` bonds funds from `extra` for some pool member `member` into their respective + * pools. + * + * `origin` can bond extra funds from free balance or pending rewards when `origin == + * other`. + * + * In the case of `origin != other`, `origin` can only bond extra pending rewards of + * `other` members assuming set_claim_permission for the given member is + * `PermissionlessCompound` or `PermissionlessAll`. + **/ + bondExtraOther: AugmentedSubmittable<(member: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [MultiAddress, PezpalletNominationPoolsBondExtra]>; + /** + * Chill on behalf of the pool. + * + * The dispatch origin of this call can be signed by the pool nominator or the pool + * root role, same as [`Pallet::nominate`]. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch: + * * When pool depositor has less than `MinNominatorBond` staked, otherwise pool members + * are unable to unbond. + * + * # Conditions for permissioned dispatch: + * * The caller is the pool's nominator or root. + **/ + chill: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim pending commission. + * + * The `root` role of the pool is _always_ allowed to claim the pool's commission. + * + * If the pool has set `CommissionClaimPermission::Permissionless`, then any account can + * trigger the process of claiming the pool's commission. + * + * If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only + * accounts + * * `acc`, and + * * the pool's root account + * + * may call this extrinsic on behalf of the pool. + * + * Pending commissions are paid out and added to the total claimed commission. + * The total pending commission is reset to zero. + **/ + claimCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * A bonded member can use this to claim their payout based on the rewards that the pool + * has accumulated since their last claimed payout (OR since joining if this is their first + * time claiming rewards). The payout will be transferred to the member's account. + * + * The member will earn rewards pro rata based on the members stake vs the sum of the + * members in the pools stake. Rewards do not "expire". + * + * See `claim_payout_other` to claim rewards on behalf of some `other` pool member. + **/ + claimPayout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * `origin` can claim payouts on some pool member `other`'s behalf. + * + * Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim + * permission for this call to be successful. + **/ + claimPayoutOther: AugmentedSubmittable<(other: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Create a new delegation pool. + * + * # Arguments + * + * * `amount` - The amount of funds to delegate to the pool. This also acts of a sort of + * deposit since the pools creator cannot fully unbond funds until the pool is being + * destroyed. + * * `index` - A disambiguation index for creating the account. Likely only useful when + * creating multiple pools in the same extrinsic. + * * `root` - The account to set as [`PoolRoles::root`]. + * * `nominator` - The account to set as the [`PoolRoles::nominator`]. + * * `bouncer` - The account to set as the [`PoolRoles::bouncer`]. + * + * # Note + * + * In addition to `amount`, the caller will transfer the existential deposit; so the caller + * needs at have at least `amount + existential_deposit` transferable. + **/ + create: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Create a new delegation pool with a previously used pool id + * + * # Arguments + * + * same as `create` with the inclusion of + * * `pool_id` - `A valid PoolId. + **/ + createWithPoolId: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, u32]>; + /** + * Stake funds with a pool. The amount to bond is delegated (or transferred based on + * [`adapter::StakeStrategyType`]) from the member to the pool account and immediately + * increases the pool's bond. + * + * The method of transferring the amount to the pool account is determined by + * [`adapter::StakeStrategyType`]. If the pool is configured to use + * [`adapter::StakeStrategyType::Delegate`], the funds remain in the account of + * the `origin`, while the pool gains the right to use these funds for staking. + * + * # Note + * + * * An account can only be a member of a single pool. + * * An account cannot join the same pool multiple times. + * * This call will *not* dust the member account, so the member must have at least + * `existential deposit + amount` in their account. + * * Only a pool with [`PoolState::Open`] can be joined + **/ + join: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Migrates delegated funds from the pool account to the `member_account`. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This is a permission-less call and refunds any fee if claim is successful. + * + * If the pool has migrated to delegation based staking, the staked tokens of pool members + * can be moved and held in their own account. See [`adapter::DelegateStake`] + **/ + migrateDelegation: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Migrate pool from [`adapter::StakeStrategyType::Transfer`] to + * [`adapter::StakeStrategyType::Delegate`]. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This call can be dispatched permissionlessly, and refunds any fee if successful. + * + * If the pool has already migrated to delegation based staking, this call will fail. + **/ + migratePoolToDelegateStake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Nominate on behalf of the pool. + * + * The dispatch origin of this call must be signed by the pool nominator or the pool + * root role. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * # Note + * + * In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to + * have at least `depositor_min_bond` in the pool to start nominating. + **/ + nominate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, validators: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Call `withdraw_unbonded` for the pools account. This call can be made by any account. + * + * This is useful if there are too many unlocking chunks to call `unbond`, and some + * can be cleared by withdrawing. In the case there are too many unlocking chunks, the user + * would probably see an error like `NoMoreChunks` emitted from the staking system when + * they attempt to unbond. + **/ + poolWithdrawUnbonded: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows a pool member to set a claim permission to allow or disallow permissionless + * bonding and withdrawing. + * + * # Arguments + * + * * `origin` - Member of a pool. + * * `permission` - The permission to be applied. + **/ + setClaimPermission: AugmentedSubmittable<(permission: PezpalletNominationPoolsClaimPermission) => SubmittableExtrinsic, [PezpalletNominationPoolsClaimPermission]>; + /** + * Set the commission of a pool. + * Both a commission percentage and a commission payee must be provided in the `current` + * tuple. Where a `current` of `None` is provided, any current commission will be removed. + * + * - If a `None` is supplied to `new_commission`, existing commission will be removed. + **/ + setCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newCommission: Option> | null | Uint8Array | ITuple<[Perbill, AccountId32]> | [Perbill | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => SubmittableExtrinsic, [u32, Option>]>; + /** + * Set the commission change rate for a pool. + * + * Initial change rate is not bounded, whereas subsequent updates can only be more + * restrictive than the current. + **/ + setCommissionChangeRate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, changeRate: PezpalletNominationPoolsCommissionChangeRate) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsCommissionChangeRate]>; + /** + * Set or remove a pool's commission claim permission. + * + * Determines who can claim the pool's pending commission. Only the `Root` role of the pool + * is able to configure commission claim permissions. + **/ + setCommissionClaimPermission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, permission: Option | null | Uint8Array | PezpalletNominationPoolsCommissionClaimPermission) => SubmittableExtrinsic, [u32, Option]>; + /** + * Set the maximum commission of a pool. + * + * - Initial max can be set to any `Perbill`, and only smaller values thereafter. + * - Current commission will be lowered in the event it is higher than a new max + * commission. + **/ + setCommissionMax: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, maxCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Perbill]>; + /** + * Update configurations for the nomination pools. The origin for this call must be + * [`Config::AdminOrigin`]. + * + * # Arguments + * + * * `min_join_bond` - Set [`MinJoinBond`]. + * * `min_create_bond` - Set [`MinCreateBond`]. + * * `max_pools` - Set [`MaxPools`]. + * * `max_members` - Set [`MaxPoolMembers`]. + * * `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]. + * * `global_max_commission` - Set [`GlobalMaxCommission`]. + **/ + setConfigs: AugmentedSubmittable<(minJoinBond: PezpalletNominationPoolsConfigOpU128, minCreateBond: PezpalletNominationPoolsConfigOpU128, maxPools: PezpalletNominationPoolsConfigOpU32, maxMembers: PezpalletNominationPoolsConfigOpU32, maxMembersPerPool: PezpalletNominationPoolsConfigOpU32, globalMaxCommission: PezpalletNominationPoolsConfigOpPerbill) => SubmittableExtrinsic, [PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpPerbill]>; + /** + * Set a new metadata for the pool. + * + * The dispatch origin of this call must be signed by the bouncer, or the root role of the + * pool. + **/ + setMetadata: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, metadata: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set a new state for the pool. + * + * If a pool is already in the `Destroying` state, then under no condition can its state + * change again. + * + * The dispatch origin of this call must be either: + * + * 1. signed by the bouncer, or the root role of the pool, + * 2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and + * then the state of the pool can be permissionlessly changed to `Destroying`. + **/ + setState: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, state: PezpalletNominationPoolsPoolState) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsPoolState]>; + /** + * Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It + * implicitly collects the rewards one last time, since not doing so would mean some + * rewards would be forfeited. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch. + * + * * The pool is blocked and the caller is either the root or bouncer. This is refereed to + * as a kick. + * * The pool is destroying and the member is not the depositor. + * * The pool is destroying, the member is the depositor and no other members are in the + * pool. + * + * ## Conditions for permissioned dispatch (i.e. the caller is also the + * `member_account`): + * + * * The caller is not the depositor. + * * The caller is the depositor, the pool is destroying and no other members are in the + * pool. + * + * # Note + * + * If there are too many unlocking chunks to unbond with the pool account, + * [`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks. + * The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`] + * to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks + * are available). However, it may not be possible to release the current unlocking chunks, + * in which case, the result of this call will likely be the `NoMoreChunks` error from the + * staking system. + **/ + unbond: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, unbondingPoints: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Update the roles of the pool. + * + * The root is the only entity that can change any of the roles, including itself, + * excluding the depositor, who can never change. + * + * It emits an event, notifying UIs of the role change. This event is quite relevant to + * most pool members and they should be informed of changes to pool roles. + **/ + updateRoles: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newRoot: PezpalletNominationPoolsConfigOpAccountId32, newNominator: PezpalletNominationPoolsConfigOpAccountId32, newBouncer: PezpalletNominationPoolsConfigOpAccountId32) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32]>; + /** + * Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an + * error is returned. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch + * + * * The pool is in destroy mode and the target is not the depositor. + * * The target is the depositor and they are the only member in the sub pools. + * * The pool is blocked and the caller is either the root or bouncer. + * + * # Conditions for permissioned dispatch + * + * * The caller is the target and they are not the depositor. + * + * # Note + * + * - If the target is the depositor, the pool will be destroyed. + * - If the pool has any pending slash, we also try to slash the member before letting them + * withdraw. This calculation adds some weight overhead and is only defensive. In reality, + * pool slashes must have been already applied via permissionless [`Call::apply_slash`]. + **/ + withdrawUnbonded: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainInfo: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parachainSystem: { + /** + * Set the current validation data. + * + * This should be invoked exactly once per block. It will panic at the finalization + * phase if the call was not invoked. + * + * The dispatch origin for this call must be `Inherent` + * + * As a side effect, this function upgrades the current validation function + * if the appropriate time has come. + **/ + setValidationData: AugmentedSubmittable<(data: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, inboundMessagesData: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData) => SubmittableExtrinsic, [PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData]>; + sudoSendUpwardMessage: AugmentedSubmittable<(message: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable<(keyValue: AssetHubPezkuwiRuntimeRuntimeParameters) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeRuntimeParameters]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + polkadotXcm: { + /** + * Authorize another `aliaser` location to alias into the local `origin` making this call. + * The `aliaser` is only authorized until the provided `expiry` block number. + * The call can also be used for a previously authorized alias in order to update its + * `expiry` block number. + * + * Usually useful to allow your local account to be aliased into from a remote location + * also under your control (like your account on another chain). + * + * WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in + * their/your name. Once authorized using this call, the `aliaser` can freely impersonate + * `origin` in XCM programs executed on the local chain. + **/ + addAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, expires: Option | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic, [XcmVersionedLocation, Option]>; + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable<(assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedAssets, XcmVersionedLocation]>; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [XcmVersionedXcm, PezspWeightsWeightV2Weight]>; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable<(suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable<(location: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, version: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Remove all previously authorized `aliaser`s that can alias into the local `origin` + * making this call. + **/ + removeAllAuthorizedAliases: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a previously authorized `aliaser` from the list of locations that can alias into + * the local `origin` making this call. + **/ + removeAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + send: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assetsTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feesTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, customXcmOnDest: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedAssets, StagingXcmExecutorAssetTransferTransferType, XcmVersionedAssetId, StagingXcmExecutorAssetTransferTransferType, XcmVersionedXcm, XcmV3WeightLimit]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + poolAssets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + preimage: { + /** + * Ensure that the bulk of pre-images is upgraded. + * + * The caller pays no fee if at least 90% of pre-images were successfully updated. + **/ + ensureUpdated: AugmentedSubmittable<(hashes: Vec | (H256 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Register a preimage on-chain. + * + * If the preimage was previously requested, no fees or deposits are taken for providing + * the preimage. Otherwise, a deposit is taken proportional to the size of the preimage. + **/ + notePreimage: AugmentedSubmittable<(bytes: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Request a preimage be uploaded to the chain without paying any fees or deposits. + * + * If the preimage requests has already been provided on-chain, we unreserve any deposit + * a user may have paid, and take the control of the preimage out of their hands. + **/ + requestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear an unrequested preimage from the runtime storage. + * + * If `len` is provided, then it will be a much cheaper operation. + * + * - `hash`: The hash of the preimage to be removed from the store. + * - `len`: The length of the preimage of `hash`. + **/ + unnotePreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear a previously made request for a preimage. + * + * NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`. + **/ + unrequestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proxy: { + /** + * Register a proxy account for the sender that is able to make calls on its behalf. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to make a proxy. + * - `proxy_type`: The permissions allowed for this proxy account. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + **/ + addProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: AssetHubPezkuwiRuntimeProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, AssetHubPezkuwiRuntimeProxyType, u32]>; + /** + * Publish the hash of a proxy-call that will be made in the future. + * + * This must be called some number of blocks before the corresponding `proxy` is attempted + * if the delay associated with the proxy relationship is greater than zero. + * + * No more than `MaxPending` announcements may be made at any one time. + * + * This will take a deposit of `AnnouncementDepositFactor` as well as + * `AnnouncementDepositBase` if there are no other pending announcements. + * + * The dispatch origin for this call must be _Signed_ and a proxy of `real`. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + announce: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and + * initialize it with a proxy of `proxy_type` for `origin` sender. + * + * Requires a `Signed` origin. + * + * - `proxy_type`: The type of the proxy that the sender will be registered as over the + * new account. This will almost always be the most permissive `ProxyType` possible to + * allow for maximum flexibility. + * - `index`: A disambiguation index, in case this is called multiple times in the same + * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just + * want to use `0`. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + * + * Fails with `Duplicate` if this has already been called in this transaction, from the + * same sender, with the same parameters. + * + * Fails if there are insufficient funds to pay for deposit. + **/ + createPure: AugmentedSubmittable<(proxyType: AssetHubPezkuwiRuntimeProxyType, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeProxyType, u32, u16]>; + /** + * Removes a previously spawned pure proxy. + * + * WARNING: **All access to this account will be lost.** Any funds held in it will be + * inaccessible. + * + * Requires a `Signed` origin, and the sender account must have been created by a call to + * `create_pure` with corresponding parameters. + * + * - `spawner`: The account that originally called `create_pure` to create this account. + * - `index`: The disambiguation index originally passed to `create_pure`. Probably `0`. + * - `proxy_type`: The proxy type originally passed to `create_pure`. + * - `height`: The height of the chain when the call to `create_pure` was processed. + * - `ext_index`: The extrinsic index in which the call to `create_pure` was processed. + * + * Fails with `NoPermission` in case the caller is not a previously created pure + * account whose `create_pure` call has corresponding parameters. + **/ + killPure: AugmentedSubmittable<(spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: AssetHubPezkuwiRuntimeProxyType, index: u16 | AnyNumber | Uint8Array, height: Compact | AnyNumber | Uint8Array, extIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, AssetHubPezkuwiRuntimeProxyType, u16, Compact, Compact]>; + /** + * Poke / Adjust deposits made for proxies and announcements based on current values. + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * The transaction fee is waived if the deposit amount has changed. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatch the given `call` from an account that the sender is authorised for through + * `add_proxy`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | AssetHubPezkuwiRuntimeProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall]>; + /** + * Dispatch the given `call` from an account that the sender is authorized for through + * `add_proxy`. + * + * Removes any corresponding announcement(s). + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxyAnnounced: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | AssetHubPezkuwiRuntimeProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Option, RuntimeCall]>; + /** + * Remove the given announcement of a delegate. + * + * May be called by a target (proxied) account to remove a call that one of their delegates + * (`delegate`) has announced they want to execute. The deposit is returned. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `delegate`: The account that previously announced the call. + * - `call_hash`: The hash of the call to be made. + **/ + rejectAnnouncement: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Remove a given announcement. + * + * May be called by a proxy account to remove a call they previously announced and return + * the deposit. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + removeAnnouncement: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Unregister all proxy accounts for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * WARNING: This may be called on accounts created by `create_pure`, however if done, then + * the unreserved fees will be inaccessible. **All access to this account will be lost.** + **/ + removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unregister a proxy account for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to remove as a proxy. + * - `proxy_type`: The permissions currently enabled for the removed proxy account. + **/ + removeProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: AssetHubPezkuwiRuntimeProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, AssetHubPezkuwiRuntimeProxyType, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + referenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: AssetHubPezkuwiRuntimeOriginCaller, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + scheduler: { + /** + * Cancel an anonymously scheduled task. + **/ + cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Cancel a named scheduled task. + **/ + cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Removes the retry configuration of a task. + **/ + cancelRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [ITuple<[u32, u32]>]>; + /** + * Cancel the retry configuration of a named task. + **/ + cancelRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Anonymously schedule a task. + **/ + schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Anonymously schedule a task after a delay. + **/ + scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task. + **/ + scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task after a delay. + **/ + scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Set a retry configuration for a task so that, in case its scheduled run fails, it will + * be retried after `period` blocks, for a total amount of `retries` retries or until it + * succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [ITuple<[u32, u32]>, u8, u32]>; + /** + * Set a retry configuration for a named task so that, in case its scheduled run fails, it + * will be retried after `period` blocks, for a total amount of `retries` retries or until + * it succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u8, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable<(keys: AssetHubPezkuwiRuntimeSessionKeys, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeSessionKeys, Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + snowbridgeSystemFrontend: { + /** + * Add an additional relayer tip for a committed message identified by `message_id`. + * The tip asset will be swapped for ether. + **/ + addTip: AugmentedSubmittable<(messageId: SnowbridgeCoreRewardMessageId | { Inbound: any } | { Outbound: any } | string | Uint8Array, asset: StagingXcmV5Asset | { id?: any; fun?: any } | string | Uint8Array) => SubmittableExtrinsic, [SnowbridgeCoreRewardMessageId, StagingXcmV5Asset]>; + /** + * Initiates the registration for a Polkadot-native token as a wrapped ERC20 token on + * Ethereum. + * - `asset_id`: Location of the asset + * - `metadata`: Metadata to include in the instantiated ERC20 contract on Ethereum + * + * All origins are allowed, however `asset_id` must be a location nested within the origin + * consensus system. + **/ + registerToken: AugmentedSubmittable<(assetId: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, metadata: SnowbridgeCoreAssetMetadata | { name?: any; symbol?: any; decimals?: any } | string | Uint8Array, feeAsset: StagingXcmV5Asset | { id?: any; fun?: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, SnowbridgeCoreAssetMetadata, StagingXcmV5Asset]>; + /** + * Set the operating mode for exporting messages to Ethereum. + **/ + setOperatingMode: AugmentedSubmittable<(mode: SnowbridgeCoreOperatingModeBasicOperatingMode | 'Normal' | 'Halted' | number | Uint8Array) => SubmittableExtrinsic, [SnowbridgeCoreOperatingModeBasicOperatingMode]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + staking: { + /** + * Manually and permissionlessly applies a deferred slash for a given era. + * + * Normally, slashes are automatically applied shortly after the start of the `slash_era`. + * The automatic application of slashes is handled by the pallet's internal logic, and it + * tries to apply one slash page per block of the era. + * If for some reason, one era is not enough for applying all slash pages, the remaining + * slashes need to be manually (permissionlessly) applied. + * + * For a given era x, if at era x+1, slashes are still unapplied, all withdrawals get + * blocked, and these need to be manually applied by calling this function. + * This function exists as a **fallback mechanism** for this extreme situation, but we + * never expect to encounter this in normal scenarios. + * + * The parameters for this call can be queried by looking at the `UnappliedSlashes` storage + * for eras older than the active era. + * + * ## Parameters + * - `slash_era`: The staking era in which the slash was originally scheduled. + * - `slash_key`: A unique identifier for the slash, represented as a tuple: + * - `stash`: The stash account of the validator being slashed. + * - `slash_fraction`: The fraction of the stake that was slashed. + * - `page_index`: The index of the exposure page being processed. + * + * ## Behavior + * - The function is **permissionless**—anyone can call it. + * - The `slash_era` **must be the current era or a past era**. + * If it is in the future, the + * call fails with `EraNotStarted`. + * - The fee is waived if the slash is successfully applied. + * + * ## Future Improvement + * - Implement an **off-chain worker (OCW) task** to automatically apply slashes when there + * is unused block space, improving efficiency. + **/ + applySlash: AugmentedSubmittable<(slashEra: u32 | AnyNumber | Uint8Array, slashKey: ITuple<[AccountId32, Perbill, u32]> | [AccountId32 | string | Uint8Array, Perbill | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [u32, ITuple<[AccountId32, Perbill, u32]>]>; + /** + * Take the origin account as a stash and lock up `value` of its balance. `controller` will + * be the account that controls it. + * + * `value` must be more than the `minimum_balance` specified by `T::Currency`. + * + * The dispatch origin for this call must be _Signed_ by the stash account. + * + * Emits `Bonded`. + * + * NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned + * unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed + * as dust. + **/ + bond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, payee: PezpalletStakingAsyncRewardDestination) => SubmittableExtrinsic, [Compact, PezpalletStakingAsyncRewardDestination]>; + /** + * Add some extra amount that have appeared in the stash `free_balance` into the balance up + * for staking. + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * Use this if there are additional funds in your stash account that you wish to bond. + * Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose + * any limitation on the amount that can be added. + * + * Emits `Bonded`. + **/ + bondExtra: AugmentedSubmittable<(maxAdditional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancels scheduled slashes for a given era before they are applied. + * + * This function allows `T::AdminOrigin` to cancel pending slashes for specified validators + * in a given era. The cancelled slashes are stored and will be checked when applying + * slashes. + * + * ## Parameters + * - `era`: The staking era for which slashes should be cancelled. This is the era where + * the slash would be applied, not the era in which the offence was committed. + * - `validator_slashes`: A list of validator stash accounts and their slash fractions to + * be cancelled. + **/ + cancelDeferredSlash: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array, validatorSlashes: Vec> | ([AccountId32 | string | Uint8Array, Perbill | AnyNumber | Uint8Array])[]) => SubmittableExtrinsic, [u32, Vec>]>; + /** + * Declare no desire to either validate or nominate. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - Contains one read. + * - Writes are limited to the `origin` account key. + **/ + chill: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Declare a `controller` to stop participating as either a validator or nominator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_, but can be called by anyone. + * + * If the caller is the same as the controller being targeted, then no further checks are + * enforced, and this function behaves just like `chill`. + * + * If the caller is different than the controller being targeted, the following conditions + * must be met: + * + * * `controller` must belong to a nominator who has become non-decodable, + * + * Or: + * + * * A `ChillThreshold` must be set and checked which defines how close to the max + * nominators or validators we must reach before users can start chilling one-another. + * * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine + * how close we are to the threshold. + * * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines + * if this is a person that should be chilled because they have not met the threshold + * bond required. + * + * This can be helpful if bond requirements are updated, and we need to remove old users + * who do not satisfy these requirements. + **/ + chillOther: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Updates a batch of controller accounts to their corresponding stash account if they are + * not the same. Ignores any controller accounts that do not exist, and does not operate if + * the stash and controller are already the same. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin must be `T::AdminOrigin`. + **/ + deprecateControllerBatch: AugmentedSubmittable<(controllers: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Force a validator to have at least the minimum commission. This will not affect a + * validator who already has a commission greater than or equal to the minimum. Any account + * can call this. + **/ + forceApplyMinCommission: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Force there to be a new era at the end of the next session. After this, it will be + * reset to normal (non-forced) behaviour. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEra: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be a new era at the end of sessions indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEraAlways: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be no new eras indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * Thus the election process may be ongoing when this is called. In this case the + * election will continue until the next era is triggered. + **/ + forceNoEras: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force a current staker to become completely unstaked, immediately. + * + * The dispatch origin must be Root. + * ## Parameters + * + * - `stash`: The stash account to be unstaked. + * - `num_slashing_spans`: **Deprecated**. This parameter is retained for backward + * compatibility. It no longer has any effect. + **/ + forceUnstake: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Increments the ideal number of validators up to maximum of + * `T::MaxValidatorSet`. + * + * The dispatch origin must be Root. + **/ + increaseValidatorCount: AugmentedSubmittable<(additional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove the given nominations from the calling validator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * - `who`: A list of nominator stash accounts who are nominating this validator which + * should no longer be nominating this validator. + * + * Note: Making this call only makes sense if you first set the validator preferences to + * block any further nominations. + **/ + kick: AugmentedSubmittable<(who: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Migrates permissionlessly a stash from locks to holds. + * + * This removes the old lock on the stake and creates a hold on it atomically. If all + * stake cannot be held, the best effort is made to hold as much as possible. The remaining + * stake is removed from the ledger. + * + * The fee is waived if the migration is successful. + **/ + migrateCurrency: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to nominate `targets` for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + nominate: AugmentedSubmittable<(targets: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Pay out next page of the stakers behind a validator for the given era. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * The reward payout could be paged in case there are too many nominators backing the + * `validator_stash`. This call will payout unpaid pages in an ascending order. To claim a + * specific page, use `payout_stakers_by_page`.` + * + * If all pages are claimed, it returns an error `InvalidPage`. + **/ + payoutStakers: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Pay out a page of the stakers behind a validator for the given era and page. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * - `page` is the page index of nominators to pay out with value between 0 and + * `num_nominators / T::MaxExposurePageSize`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * If a validator has more than [`Config::MaxExposurePageSize`] nominators backing + * them, then the list of nominators is paged, with each page being capped at + * [`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators, + * the call needs to be made for each page separately in order for all the nominators + * backing a validator to receive the reward. The nominators are not sorted across pages + * and so it should not be assumed the highest staker would be on the topmost page and vice + * versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost. + **/ + payoutStakersByPage: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, page: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, u32]>; + /** + * Perform one step of era pruning to prevent PoV size exhaustion from unbounded deletions. + * + * This extrinsic enables permissionless lazy pruning of era data by performing + * incremental deletion of storage items. Each call processes a limited number + * of items based on available block weight to avoid exceeding block limits. + * + * Returns `Pays::No` when work is performed to incentivize regular maintenance. + * Anyone can call this to help maintain the chain's storage health. + * + * The era must be eligible for pruning (older than HistoryDepth + 1). + * Check `EraPruningState` storage to see if an era needs pruning before calling. + **/ + pruneEraStep: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Remove all data structures concerning a staker/stash once it is at a state where it can + * be considered `dust` in the staking system. The requirements are: + * + * 1. the `total_balance` of the stash is below `min_chilled_bond` or is zero. + * 2. or, the `ledger.total` of the stash is below `min_chilled_bond` or is zero. + * + * The former can happen in cases like a slash; the latter when a fully unbonded account + * is still receiving staking rewards in `RewardDestination::Staked`. + * + * It can be called by anyone, as long as `stash` meets the above requirements. + * + * Refunds the transaction fees upon successful execution. + * + * ## Parameters + * + * - `stash`: The stash account to be reaped. + * - `num_slashing_spans`: **Deprecated**. This parameter is retained for backward + * compatibility. It no longer has any effect. + **/ + reapStash: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Rebond a portion of the stash scheduled to be unlocked. + * + * The dispatch origin must be signed by the controller. + **/ + rebond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Restores the state of a ledger which is in an inconsistent state. + * + * The requirements to restore a ledger are the following: + * * The stash is bonded; or + * * The stash is not bonded but it has a staking lock left behind; or + * * If the stash has an associated ledger and its state is inconsistent; or + * * If the ledger is not corrupted *but* its staking lock is out of sync. + * + * The `maybe_*` input parameters will overwrite the corresponding data and metadata of the + * ledger associated with the stash. If the input parameters are not set, the ledger will + * be reset values from on-chain state. + **/ + restoreLedger: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, maybeController: Option | null | Uint8Array | AccountId32 | string, maybeTotal: Option | null | Uint8Array | u128 | AnyNumber, maybeUnlocking: Option> | null | Uint8Array | Vec | (PezpalletStakingAsyncLedgerUnlockChunk)[]) => SubmittableExtrinsic, [AccountId32, Option, Option, Option>]>; + /** + * Scale up the ideal number of validators by a factor up to maximum of + * `T::MaxValidatorSet`. + * + * The dispatch origin must be Root. + **/ + scaleValidatorCount: AugmentedSubmittable<(factor: Percent | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Percent]>; + /** + * (Re-)sets the controller of a stash to the stash itself. This function previously + * accepted a `controller` argument to set the controller to an account other than the + * stash itself. This functionality has now been removed, now only setting the controller + * to the stash, if it is not already. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + **/ + setController: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the validators who cannot be slashed (if any). + * + * The dispatch origin must be Root. + **/ + setInvulnerables: AugmentedSubmittable<(invulnerables: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Sets the minimum amount of commission that each validators must maintain. + * + * This call has lower privilege requirements than `set_staking_config` and can be called + * by the `T::AdminOrigin`. Root can always call this. + **/ + setMinCommission: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * (Re-)set the payment target for a controller. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + setPayee: AugmentedSubmittable<(payee: PezpalletStakingAsyncRewardDestination) => SubmittableExtrinsic, [PezpalletStakingAsyncRewardDestination]>; + /** + * Update the various staking configurations . + * + * * `min_nominator_bond`: The minimum active bond needed to be a nominator. + * * `min_validator_bond`: The minimum active bond needed to be a validator. + * * `max_nominator_count`: The max number of users who can be a nominator at once. When + * set to `None`, no limit is enforced. + * * `max_validator_count`: The max number of users who can be a validator at once. When + * set to `None`, no limit is enforced. + * * `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which + * should be filled in order for the `chill_other` transaction to work. + * * `min_commission`: The minimum amount of commission that each validators must maintain. + * This is checked only upon calling `validate`. Existing validators are not affected. + * + * RuntimeOrigin must be Root to call this function. + * + * NOTE: Existing nominators and validators will not be affected by this update. + * to kick people under the new limits, `chill_other` should be called. + **/ + setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PezpalletStakingAsyncPezpalletConfigOpU128, minValidatorBond: PezpalletStakingAsyncPezpalletConfigOpU128, maxNominatorCount: PezpalletStakingAsyncPezpalletConfigOpU32, maxValidatorCount: PezpalletStakingAsyncPezpalletConfigOpU32, chillThreshold: PezpalletStakingAsyncPezpalletConfigOpPercent, minCommission: PezpalletStakingAsyncPezpalletConfigOpPerbill, maxStakedRewards: PezpalletStakingAsyncPezpalletConfigOpPercent) => SubmittableExtrinsic, [PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncPezpalletConfigOpPercent, PezpalletStakingAsyncPezpalletConfigOpPerbill, PezpalletStakingAsyncPezpalletConfigOpPercent]>; + /** + * Sets the ideal number of validators. + * + * The dispatch origin must be Root. + **/ + setValidatorCount: AugmentedSubmittable<(updated: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Schedule a portion of the stash to be unlocked ready for transfer out after the bond + * period ends. If this leaves an amount actively bonded less than + * [`asset::existential_deposit`], then it is increased to the full amount. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * Once the unlock period is done, you can call `withdraw_unbonded` to actually move + * the funds out of management ready for transfer. + * + * No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`) + * can co-exists at the same time. If there are no unlocking chunks slots available + * [`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible). + * + * If a user encounters the `InsufficientBond` error when calling this extrinsic, + * they should call `chill` first in order to free up their bonded funds. + * + * Emits `Unbonded`. + * + * See also [`Call::withdraw_unbonded`]. + **/ + unbond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Migrates an account's `RewardDestination::Controller` to + * `RewardDestination::Account(controller)`. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * This will waive the transaction fee if the `payee` is successfully migrated. + **/ + updatePayee: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to validate for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + validate: AugmentedSubmittable<(prefs: PezpalletStakingAsyncValidatorPrefs) => SubmittableExtrinsic, [PezpalletStakingAsyncValidatorPrefs]>; + /** + * Remove any stake that has been fully unbonded and is ready for withdrawal. + * + * Stake is considered fully unbonded once [`Config::BondingDuration`] has elapsed since + * the unbonding was initiated. In rare cases—such as when offences for the unbonded era + * have been reported but not yet processed—withdrawal is restricted to eras for which + * all offences have been processed. + * + * The unlocked stake will be returned as free balance in the stash account. + * + * The dispatch origin for this call must be _Signed_ by the controller. + * + * Emits `Withdrawn`. + * + * See also [`Call::unbond`]. + * + * ## Parameters + * + * - `num_slashing_spans`: **Deprecated**. Retained only for backward compatibility; this + * parameter has no effect. + **/ + withdrawUnbonded: AugmentedSubmittable<(numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stakingRcClient: { + relayNewOffencePaged: AugmentedSubmittable<(offences: Vec> | ([u32 | AnyNumber | Uint8Array, PezpalletStakingAsyncRcClientOffence])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Called to indicate the start of a new session on the relay chain. + **/ + relaySessionReport: AugmentedSubmittable<(report: PezpalletStakingAsyncRcClientSessionReport) => SubmittableExtrinsic, [PezpalletStakingAsyncRcClientSessionReport]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stateTrieMigration: { + /** + * Continue the migration for the given `limits`. + * + * The dispatch origin of this call can be any signed account. + * + * This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit, + * Upon successful execution, the transaction fee is returned. + * + * The (potentially over-estimated) of the byte length of all the data read must be + * provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing + * that executing the current `MigrationTask` with the given `limits` will not exceed + * `real_size_upper` bytes of read data. + * + * The `witness_task` is merely a helper to prevent the caller from being slashed or + * generally trigger a migration that they do not intend. This parameter is just a message + * from caller, saying that they believed `witness_task` was the last state of the + * migration, and they only wish for their transaction to do anything, if this assumption + * holds. In case `witness_task` does not match, the transaction fails. + * + * Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the + * recommended way of doing this is to pass a `limit` that only bounds `count`, as the + * `size` limit can always be overwritten. + **/ + continueMigrate: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits, realSizeUpper: u32 | AnyNumber | Uint8Array, witnessTask: PezpalletStateTrieMigrationMigrationTask) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits, u32, PezpalletStateTrieMigrationMigrationTask]>; + /** + * Control the automatic migration. + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + **/ + controlAutoMigration: AugmentedSubmittable<(maybeConfig: Option | null | Uint8Array | PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [Option]>; + /** + * Forcefully set the progress the running migration. + * + * This is only useful in one case: the next key to migrate is too big to be migrated with + * a signed account, in a parachain context, and we simply want to skip it. A reasonable + * example of this would be `:code:`, which is both very expensive to migrate, and commonly + * used, so probably it is already migrated. + * + * In case you mess things up, you can also, in principle, use this to reset the migration + * process. + **/ + forceSetProgress: AugmentedSubmittable<(progressTop: PezpalletStateTrieMigrationProgress, progressChild: PezpalletStateTrieMigrationProgress) => SubmittableExtrinsic, [PezpalletStateTrieMigrationProgress, PezpalletStateTrieMigrationProgress]>; + /** + * Migrate the list of child keys by iterating each of them one by one. + * + * All of the given child keys must be present under one `child_root`. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomChild: AugmentedSubmittable<(root: Bytes | string | Uint8Array, childKeys: Vec | (Bytes | string | Uint8Array)[], totalSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, Vec, u32]>; + /** + * Migrate the list of top keys by iterating each of them one by one. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomTop: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[], witnessSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u32]>; + /** + * Set the maximum limit of the signed migration. + **/ + setSignedMaxLimits: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + doTask: AugmentedSubmittable<(task: AssetHubPezkuwiRuntimeRuntimeTask) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeRuntimeTask]>; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, u32]>; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable<(items: Vec> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable<(now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + toKusamaXcmRouter: { + /** + * Notification about congested bridge queue. + **/ + reportBridgeStatus: AugmentedSubmittable<(bridgeId: H256 | string | Uint8Array, isCongested: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + treasury: { + /** + * Check the status of the spend and remove it from the storage if processed. + * + * ## Dispatch Origin + * + * Must be signed. + * + * ## Details + * + * The status check is a prerequisite for retrying a failed payout. + * If a spend has either succeeded or expired, it is removed from the storage by this + * function. In such instances, transaction fees are refunded. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::PaymentFailed`] if the spend payout has failed. + * Emits [`Event::SpendProcessed`] if the spend payout has succeed. + **/ + checkStatus: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim a spend. + * + * ## Dispatch Origin + * + * Must be signed + * + * ## Details + * + * Spends must be claimed within some temporal bounds. A spend may be claimed within one + * [`Config::PayoutPeriod`] from the `valid_from` block. + * In case of a payout failure, the spend status must be updated with the `check_status` + * dispatchable before retrying with the current function. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::Paid`] if successful. + **/ + payout: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force a previously approved proposal to be removed from the approval queue. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * The original deposit will no longer be returned. + * + * ### Parameters + * - `proposal_id`: The index of a proposal + * + * ### Complexity + * - O(A) where `A` is the number of approvals + * + * ### Errors + * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the + * approval queue, i.e., the proposal has not been approved. This could also mean the + * proposal does not exist altogether, thus there is no way it would have been approved + * in the first place. + **/ + removeApproval: AugmentedSubmittable<(proposalId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least + * `amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted + * for assertion using the [`Config::BalanceConverter`]. + * + * ## Details + * + * Create an approved spend for transferring a specific `amount` of `asset_kind` to a + * designated beneficiary. The spend must be claimed using the `payout` dispatchable within + * the [`Config::PayoutPeriod`]. + * + * ### Parameters + * - `asset_kind`: An indicator of the specific asset class to be spent. + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The beneficiary of the spend. + * - `valid_from`: The block number from which the spend can be claimed. It can refer to + * the past if the resulting spend has not yet expired according to the + * [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after + * approval. + * + * ## Events + * + * Emits [`Event::AssetSpendApproved`] if successful. + **/ + spend: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, amount: Compact | AnyNumber | Uint8Array, beneficiary: TeyrchainsCommonPayVersionedLocatableAccount, validFrom: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, Compact, TeyrchainsCommonPayVersionedLocatableAccount, Option]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`. + * + * ### Details + * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the + * beneficiary. + * + * ### Parameters + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The destination account for the transfer. + * + * ## Events + * + * Emits [`Event::SpendApproved`] if successful. + **/ + spendLocal: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Void previously approved spend. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * A spend void is only possible if the payout has not been attempted yet. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::AssetSpendVoided`] if successful. + **/ + voidSpend: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + uniques: { + /** + * Approve an item to be transferred by a delegated third-party account. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be + * either the owner of the `item` or the admin of the collection. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item of the item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * + * Important NOTE: The `approved` account gets reset after each transfer. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Destroy a single item. + * + * Origin must be Signed and the signing account must be either: + * - the Admin of the `collection`; + * - the Owner of the `item`; + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item of the item to be burned. + * - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the + * item is owned by this value. + * + * Emits `Burned` with the actual amount burned. + * + * Weight: `O(1)` + * Modes: `check_owner.is_some()`. + **/ + burn: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, checkOwner: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option]>; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, bidPrice: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u128]>; + /** + * Cancel the prior approval for the transfer of an item by a delegate. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Admin of the `collection`; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the item of whose approval will be cancelled. + * - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to + * which permission of transfer is delegated. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, maybeCheckDelegate: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option]>; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, Bytes]>; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * `ItemDeposit` funds of sender are reserved. + * + * Parameters: + * - `collection`: The identifier of the new collection. This must not be currently in use. + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(n + m)` where: + * - `n = witness.items` + * - `m = witness.item_metadatas` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, witness: PezpalletUniquesDestroyWitness) => SubmittableExtrinsic, [u32, PezpalletUniquesDestroyWitness]>; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `collection`: The identifier of the new item. This must not be currently in use. + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions + * over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool]>; + /** + * Alter the attributes of a given item. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the item. + * - `owner`: The new Owner of this item. + * - `issuer`: The new Issuer of this item. + * - `admin`: The new Admin of this item. + * - `freezer`: The new Freezer of this item. + * - `free_holding`: Whether a deposit is taken for holding an item of this collection. + * - `is_frozen`: Whether this collection is frozen except for permissioned/admin + * instructions. + * + * Emits `ItemStatusChanged` with the identity of the item. + * + * Weight: `O(1)` + **/ + forceItemStatus: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress, MultiAddress, bool, bool]>; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be frozen. + * - `item`: The item of the item to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Disallow further unprivileged transfers for a whole collection. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection to be frozen. + * + * Emits `CollectionFrozen`. + * + * Weight: `O(1)` + **/ + freezeCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must be the Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: The item value of the item to be minted. + * - `beneficiary`: The initial owner of the minted item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Reevaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be frozen. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown of the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, items: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable<(maybeCollection: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, Bytes, Bytes]>; + /** + * Set the maximum amount of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * Note: This function can only succeed once per collection. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum amount of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maxSupply: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * - `is_frozen`: Whether the metadata should be frozen against further changes. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, bool]>; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * - `is_frozen`: Whether the metadata should be frozen against further changes. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes, bool]>; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the asset `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, price: Option | null | Uint8Array | u128 | AnyNumber, whitelistedBuyer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option, Option]>; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be thawed. + * - `item`: The item of the item to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Re-allow unprivileged transfers for a whole collection. + * + * Origin must be Signed and the sender should be the Admin of the `collection`. + * + * - `collection`: The collection to be thawed. + * + * Emits `CollectionThawed`. + * + * Weight: `O(1)` + **/ + thawCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Move an item from the sender account to another. + * + * This resets the approved account of the item. + * + * Origin must be Signed and the signing account must be either: + * - the Admin of the `collection`; + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item of the item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, newOwner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + utility: { + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + **/ + asDerivative: AugmentedSubmittable<(index: u16 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u16, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + **/ + batch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + batchAll: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + **/ + dispatchAs: AugmentedSubmittable<(asOrigin: AssetHubPezkuwiRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeOriginCaller, RuntimeCall]>; + /** + * Dispatches a function call with a provided origin. + * + * Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call. + * + * The dispatch origin for this call must be _Root_. + **/ + dispatchAsFallible: AugmentedSubmittable<(asOrigin: AssetHubPezkuwiRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [AssetHubPezkuwiRuntimeOriginCaller, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + forceBatch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatch a fallback call in the event the main call fails to execute. + * May be called from any origin except `None`. + * + * This function first attempts to dispatch the `main` call. + * If the `main` call fails, the `fallback` is attemted. + * if the fallback is successfully dispatched, the weights of both calls + * are accumulated and an event containing the main call error is deposited. + * + * In the event of a fallback failure the whole call fails + * with the weights returned. + * + * - `main`: The main call to be dispatched. This is the primary action to execute. + * - `fallback`: The fallback call to be dispatched in case the `main` call fails. + * + * ## Dispatch Logic + * - If the origin is `root`, both the main and fallback calls are executed without + * applying any origin filters. + * - If the origin is not `root`, the origin filter is applied to both the `main` and + * `fallback` calls. + * + * ## Use Case + * - Some use cases might involve submitting a `batch` type call in either main, fallback + * or both. + **/ + ifElse: AugmentedSubmittable<(main: RuntimeCall | IMethod | string | Uint8Array, fallback: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, RuntimeCall]>; + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + **/ + withWeight: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array, weight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + vesting: { + /** + * Force remove a vesting schedule + * + * The dispatch origin for this call must be _Root_. + * + * - `target`: An account that has a vesting schedule + * - `schedule_index`: The vesting schedule index that should be removed + **/ + forceRemoveVestingSchedule: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, scheduleIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Force a vested transfer. + * + * The dispatch origin for this call must be _Root_. + * + * - `source`: The account whose funds should be transferred. + * - `target`: The account that should be transferred the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + forceVestedTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Merge two vesting schedules together, creating a new vesting schedule that unlocks over + * the highest possible start and end blocks. If both schedules have already started the + * current block will be used as the schedule start; with the caveat that if one schedule + * is finished by the current block, the other will be treated as the new merged schedule, + * unmodified. + * + * NOTE: If `schedule1_index == schedule2_index` this is a no-op. + * NOTE: This will unlock all schedules through the current block prior to merging. + * NOTE: If both schedules have ended by the current block, no new schedule will be created + * and both will be removed. + * + * Merged schedule attributes: + * - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block, + * current_block)`. + * - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`. + * - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`. + * + * The dispatch origin for this call must be _Signed_. + * + * - `schedule1_index`: index of the first schedule to merge. + * - `schedule2_index`: index of the second schedule to merge. + **/ + mergeSchedules: AugmentedSubmittable<(schedule1Index: u32 | AnyNumber | Uint8Array, schedule2Index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Unlock any vested funds of the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vest: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a vested transfer. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account receiving the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + vestedTransfer: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Unlock any vested funds of a `target` account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account whose vested funds should be unlocked. Must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vestOther: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + voterList: { + /** + * Move the caller's Id directly in front of `lighter`. + * + * The dispatch origin for this call must be _Signed_ and can only be called by the Id of + * the account going in front of `lighter`. Fee is payed by the origin under all + * circumstances. + * + * Only works if: + * + * - both nodes are within the same bag, + * - and `origin` has a greater `Score` than `lighter`. + **/ + putInFrontOf: AugmentedSubmittable<(lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Same as [`Pallet::put_in_front_of`], but it can be called by anyone. + * + * Fee is paid by the origin under all circumstances. + **/ + putInFrontOfOther: AugmentedSubmittable<(heavier: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Declare that some `dislocated` account has, through rewards or penalties, sufficiently + * changed its score that it should properly fall into a different bag than its current + * one. + * + * Anyone can call this function about any potentially dislocated account. + * + * Will always update the stored score of `dislocated` to the correct score, based on + * `ScoreProvider`. + * + * If `dislocated` does not exists, it returns an error. + **/ + rebag: AugmentedSubmittable<(dislocated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + whitelist: { + dispatchWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array, callEncodedLen: u32 | AnyNumber | Uint8Array, callWeightWitness: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [H256, u32, PezspWeightsWeightV2Weight]>; + dispatchWhitelistedCallWithPreimage: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + removeWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + whitelistCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmpQueue: { + /** + * Resumes all XCM executions for the XCMP queue. + * + * Note that this function doesn't change the status of the in/out bound channels. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + resumeXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. + * + * - `origin`: Must pass `ControllerOrigin`. + **/ + suspendXcmExecution: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Overwrites the number of pages which must be in the queue after which we drop any + * further messages from the channel. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.drop_threshold` + **/ + updateDropThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Overwrites the number of pages which the queue must be reduced to before it signals + * that message sending may recommence after it has been suspended. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.resume_threshold` + **/ + updateResumeThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Overwrites the number of pages which must be in the queue for the other side to be + * told to suspend their sending. + * + * - `origin`: Must pass `Root`. + * - `new`: Desired value for `QueueConfigData.suspend_value` + **/ + updateSuspendThreshold: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/packages/api-augment/src/base.ts b/packages/api-augment/src/base.ts new file mode 100644 index 0000000..82afd6c --- /dev/null +++ b/packages/api-augment/src/base.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// for the API, we decorate not only the endpoints, but all types +import '@pezkuwi/rpc-augment'; +import '@pezkuwi/types-augment'; diff --git a/packages/api-augment/src/bizinikiwi/consts.ts b/packages/api-augment/src/bizinikiwi/consts.ts new file mode 100644 index 0000000..fac22bd --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/consts.ts @@ -0,0 +1,1884 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/consts'; + +import type { ApiTypes, AugmentedConst } from '@pezkuwi/api-base/types'; +import type { Bytes, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { Codec, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, Perbill, Percent, Permill, Perquintill } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportPezpalletId, PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSystemLimitsBlockLength, PezframeSystemLimitsBlockWeights, PezpalletContractsEnvironment, PezpalletContractsSchedule, PezpalletReferendaTrackDetails, PezspVersionRuntimeVersion, PezspWeightsRuntimeDbWeight, PezspWeightsWeightV2Weight } from '@pezkuwi/types/lookup'; + +export type __AugmentedConst = AugmentedConst; + +declare module '@pezkuwi/api-base/types/consts' { + interface AugmentedConsts { + alliance: { + /** + * The deposit required for submitting candidacy. + **/ + allyDeposit: u128 & AugmentedConst; + /** + * The maximum number of announcements. + **/ + maxAnnouncementsCount: u32 & AugmentedConst; + /** + * The maximum number of members per member role. + **/ + maxMembersCount: u32 & AugmentedConst; + /** + * The maximum number of the unscrupulous items supported by the pallet. + **/ + maxUnscrupulousItems: u32 & AugmentedConst; + /** + * The maximum length of a website URL. + **/ + maxWebsiteUrlLength: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + allianceMotion: { + /** + * The maximum weight of a dispatch call that can be proposed and executed. + **/ + maxProposalWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + assetConversion: { + /** + * A fee to withdraw the liquidity. + **/ + liquidityWithdrawalFee: Permill & AugmentedConst; + /** + * A % the liquidity providers will take of every swap. Represents 10ths of a percent. + **/ + lpFee: u32 & AugmentedConst; + /** + * The max number of hops in a swap. + **/ + maxSwapPathLength: u32 & AugmentedConst; + /** + * The minimum LP token amount that could be minted. Ameliorates rounding errors. + **/ + mintMinLiquidity: u128 & AugmentedConst; + /** + * The pallet's id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * A one-time fee to setup the pool. + **/ + poolSetupFee: u128 & AugmentedConst; + /** + * Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]. + **/ + poolSetupFeeAsset: PezframeSupportTokensFungibleUnionOfNativeOrWithId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + assetRewards: { + /** + * The pallet's unique identifier, used to derive the pool's account ID. + * + * The account ID is derived once during pool creation and stored in the storage. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + assets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + babe: { + /** + * The amount of time, in slots, that each epoch should last. + * NOTE: Currently it is not possible to change the epoch duration after + * the chain has started. Attempting to do so will brick block production. + **/ + epochDuration: u64 & AugmentedConst; + /** + * The expected average block time at which BABE should be creating + * blocks. Since BABE is probabilistic it is not trivial to figure out + * what the expected average block time should be based on the slot + * duration and the security parameter `c` (where `1 - c` represents + * the probability of a slot being empty). + **/ + expectedBlockTime: u64 & AugmentedConst; + /** + * Max number of authorities allowed + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + beefy: { + /** + * The maximum number of authorities that can be added. + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + bounties: { + /** + * The amount held on deposit for placing a bounty proposal. + **/ + bountyDepositBase: u128 & AugmentedConst; + /** + * The delay period for which a bounty beneficiary need to wait before claim the payout. + **/ + bountyDepositPayoutDelay: u32 & AugmentedConst; + /** + * The time limit for a curator to act before a bounty expires. + * + * The period that starts when a curator is approved, during which they must execute or + * update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the + * curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely, + * removing the need for `extend_bounty_expiry`. + **/ + bountyUpdatePeriod: u32 & AugmentedConst; + /** + * Minimum value for a bounty. + **/ + bountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMax: Option & AugmentedConst; + /** + * Minimum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMin: Option & AugmentedConst; + /** + * The curator deposit is calculated as a percentage of the curator fee. + * + * This deposit has optional upper and lower bounds with `CuratorDepositMax` and + * `CuratorDepositMin`. + **/ + curatorDepositMultiplier: Permill & AugmentedConst; + /** + * The amount held on deposit per byte within the tip report reason or bounty description. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * Maximum acceptable reason length. + * + * Benchmarks depend on this value, be sure to update weights file when changing this value + **/ + maximumReasonLength: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + broker: { + /** + * Given that we are performing all auto-renewals in a single block, it has to be limited. + **/ + maxAutoRenewals: u32 & AugmentedConst; + /** + * Maximum number of legacy leases. + **/ + maxLeasedCores: u32 & AugmentedConst; + /** + * Maximum number of system cores. + **/ + maxReservedCores: u32 & AugmentedConst; + /** + * The smallest amount of credits a user can purchase. + * + * Needed to prevent spam attacks. + **/ + minimumCreditPurchase: u128 & AugmentedConst; + /** + * Identifier from which the internal Pot is generated. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Number of Relay-chain blocks per timeslice. + **/ + timeslicePeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + childBounties: { + /** + * Minimum value for a child-bounty. + **/ + childBountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum number of child bounties that can be added to a parent bounty. + **/ + maxActiveChildBountyCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + contracts: { + /** + * The version of the HostFn APIs that are available in the runtime. + * + * Only valid value is `()`. + **/ + apiVersion: u16 & AugmentedConst; + /** + * The percentage of the storage deposit that should be held for using a code hash. + * Instantiating a contract, or calling [`chain_extension::Ext::lock_delegate_dependency`] + * protects the code from being removed. In order to prevent abuse these actions are + * protected with a percentage of the code deposit. + **/ + codeHashLockupDepositPercent: Perbill & AugmentedConst; + /** + * Fallback value to limit the storage deposit if it's not being set by the caller. + **/ + defaultDepositLimit: u128 & AugmentedConst; + /** + * The amount of balance a caller has to pay for each byte of storage. + * + * # Note + * + * Changing this value for an existing chain might need a storage migration. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * The amount of balance a caller has to pay for each storage item. + * + * # Note + * + * Changing this value for an existing chain might need a storage migration. + **/ + depositPerItem: u128 & AugmentedConst; + /** + * Type that bundles together all the runtime configurable interface types. + * + * This is not a real config. We just mention the type here as constant so that + * its type appears in the metadata. Only valid value is `()`. + **/ + environment: PezpalletContractsEnvironment & AugmentedConst; + /** + * The maximum length of a contract code in bytes. + * + * The value should be chosen carefully taking into the account the overall memory limit + * your runtime has, as well as the [maximum allowed callstack + * depth](#associatedtype.CallStack). Look into the `integrity_test()` for some insights. + **/ + maxCodeLen: u32 & AugmentedConst; + /** + * The maximum length of the debug buffer in bytes. + **/ + maxDebugBufferLen: u32 & AugmentedConst; + /** + * The maximum number of delegate_dependencies that a contract can lock with + * [`chain_extension::Ext::lock_delegate_dependency`]. + **/ + maxDelegateDependencies: u32 & AugmentedConst; + /** + * The maximum allowable length in bytes for storage keys. + **/ + maxStorageKeyLen: u32 & AugmentedConst; + /** + * The maximum size of the transient storage in bytes. + * This includes keys, values, and previous entries used for storage rollback. + **/ + maxTransientStorageSize: u32 & AugmentedConst; + /** + * Cost schedule and limits. + **/ + schedule: PezpalletContractsSchedule & AugmentedConst; + /** + * Make contract callable functions marked as `#[unstable]` available. + * + * Contracts that use `#[unstable]` functions won't be able to be uploaded unless + * this is set to `true`. This is only meant for testnets and dev nodes in order to + * experiment with new features. + * + * # Warning + * + * Do **not** set to `true` on productions chains. + **/ + unsafeUnstableInterface: bool & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + convictionVoting: { + /** + * The maximum number of concurrent votes an account may have. + * + * Also used to compute weight, an overly large value can lead to extrinsics with large + * weight estimation: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + coreFellowship: { + /** + * The maximum size in bytes submitted evidence is allowed to be. + **/ + evidenceSize: u32 & AugmentedConst; + /** + * Represents the highest possible rank in this pallet. + * + * Increasing this value is supported, but decreasing it may lead to a broken state. + **/ + maxRank: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + council: { + /** + * The maximum weight of a dispatch call that can be proposed and executed. + **/ + maxProposalWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + delegatedStaking: { + /** + * Injected identifier for the pallet. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Fraction of the slash that is rewarded to the caller of pending slash to the agent. + **/ + slashRewardFraction: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + democracy: { + /** + * Period in blocks where an external proposal may not be re-submitted after being vetoed. + **/ + cooloffPeriod: u32 & AugmentedConst; + /** + * The period between a proposal being approved and enacted. + * + * It should generally be a little more than the unstake period to ensure that + * voting stakers have an opportunity to remove themselves from the system in the case + * where they are on the losing side of a vote. + **/ + enactmentPeriod: u32 & AugmentedConst; + /** + * Minimum voting period allowed for a fast-track referendum. + **/ + fastTrackVotingPeriod: u32 & AugmentedConst; + /** + * Indicator for whether an emergency origin is even allowed to happen. Some chains may + * want to set this permanently to `false`, others may want to condition it on things such + * as an upgrade having happened recently. + **/ + instantAllowed: bool & AugmentedConst; + /** + * How often (in blocks) new public referenda are launched. + **/ + launchPeriod: u32 & AugmentedConst; + /** + * The maximum number of items which can be blacklisted. + **/ + maxBlacklisted: u32 & AugmentedConst; + /** + * The maximum number of deposits a public proposal may have at any time. + **/ + maxDeposits: u32 & AugmentedConst; + /** + * The maximum number of public proposals that can exist at any time. + **/ + maxProposals: u32 & AugmentedConst; + /** + * The maximum number of votes for an account. + * + * Also used to compute weight, an overly big value can + * lead to extrinsic with very big weight: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + minimumDeposit: u128 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * How often (in blocks) to check for new votes. + **/ + votingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + electionProviderMultiPhase: { + /** + * The minimum amount of improvement to the solution score that defines a solution as + * "better" in the Signed phase. + **/ + betterSignedThreshold: Perbill & AugmentedConst; + /** + * The maximum number of winners that can be elected by this `ElectionProvider` + * implementation. + * + * Note: This must always be greater or equal to `T::DataProvider::desired_targets()`. + **/ + maxWinners: u32 & AugmentedConst; + minerMaxLength: u32 & AugmentedConst; + minerMaxVotesPerVoter: u32 & AugmentedConst; + minerMaxWeight: PezspWeightsWeightV2Weight & AugmentedConst; + minerMaxWinners: u32 & AugmentedConst; + /** + * The priority of the unsigned transaction submitted in the unsigned-phase + **/ + minerTxPriority: u64 & AugmentedConst; + /** + * The repeat threshold of the offchain worker. + * + * For example, if it is 5, that means that at least 5 blocks will elapse between attempts + * to submit the worker's solution. + **/ + offchainRepeat: u32 & AugmentedConst; + /** + * Per-byte deposit for a signed solution. + **/ + signedDepositByte: u128 & AugmentedConst; + /** + * Per-weight deposit for a signed solution. + **/ + signedDepositWeight: u128 & AugmentedConst; + /** + * The maximum amount of unchecked solutions to refund the call fee for. + **/ + signedMaxRefunds: u32 & AugmentedConst; + /** + * Maximum number of signed submissions that can be queued. + * + * It is best to avoid adjusting this during an election, as it impacts downstream data + * structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you + * update this value during an election, you _must_ ensure that + * `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise, + * attempts to submit new solutions may cause a runtime panic. + **/ + signedMaxSubmissions: u32 & AugmentedConst; + /** + * Maximum weight of a signed solution. + * + * If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of + * this pallet), then [`MinerConfig::solution_weight`] is used to compare against + * this value. + **/ + signedMaxWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Base reward for a signed solution + **/ + signedRewardBase: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + elections: { + /** + * How much should be locked up in order to submit one's candidacy. + **/ + candidacyBond: u128 & AugmentedConst; + /** + * Number of members to elect. + **/ + desiredMembers: u32 & AugmentedConst; + /** + * Number of runners_up to keep. + **/ + desiredRunnersUp: u32 & AugmentedConst; + /** + * The maximum number of candidates in a phragmen election. + * + * Warning: This impacts the size of the election which is run onchain. Chose wisely, and + * consider how it will impact `T::WeightInfo::election_phragmen`. + * + * When this limit is reached no more candidates are accepted in the election. + **/ + maxCandidates: u32 & AugmentedConst; + /** + * The maximum number of voters to allow in a phragmen election. + * + * Warning: This impacts the size of the election which is run onchain. Chose wisely, and + * consider how it will impact `T::WeightInfo::election_phragmen`. + * + * When the limit is reached the new voters are ignored. + **/ + maxVoters: u32 & AugmentedConst; + /** + * Maximum numbers of votes per voter. + * + * Warning: This impacts the size of the election which is run onchain. Chose wisely, and + * consider how it will impact `T::WeightInfo::election_phragmen`. + **/ + maxVotesPerVoter: u32 & AugmentedConst; + /** + * Identifier for the elections-phragmen pallet's lock + **/ + palletId: U8aFixed & AugmentedConst; + /** + * How long each seat is kept. This defines the next block number at which an election + * round will happen. If set to zero, no elections are ever triggered and the module will + * be in passive mode. + **/ + termDuration: u32 & AugmentedConst; + /** + * Base deposit associated with voting. + * + * This should be sensibly high to economically ensure the pallet cannot be attacked by + * creating a gigantic number of votes. + **/ + votingBondBase: u128 & AugmentedConst; + /** + * The amount of bond that need to be locked for each vote (32 bytes). + **/ + votingBondFactor: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fastUnstake: { + /** + * Deposit to take for unstaking, to make sure we're able to slash the it in order to cover + * the costs of resources on unsuccessful unstake. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + grandpa: { + /** + * Max Authorities in use + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + identity: { + /** + * The amount held on deposit for a registered identity. + **/ + basicDeposit: u128 & AugmentedConst; + /** + * The amount held on deposit per encoded byte for a registered identity. + **/ + byteDeposit: u128 & AugmentedConst; + /** + * Maximum number of registrars allowed in the system. Needed to bound the complexity + * of, e.g., updating judgements. + **/ + maxRegistrars: u32 & AugmentedConst; + /** + * The maximum number of sub-accounts allowed per identified account. + **/ + maxSubAccounts: u32 & AugmentedConst; + /** + * The maximum length of a suffix. + **/ + maxSuffixLength: u32 & AugmentedConst; + /** + * The maximum length of a username, including its suffix and any system-added delimiters. + **/ + maxUsernameLength: u32 & AugmentedConst; + /** + * The number of blocks within which a username grant must be accepted. + **/ + pendingUsernameExpiration: u32 & AugmentedConst; + /** + * The amount held on deposit for a registered subaccount. This should account for the fact + * that one storage item's value will increase by the size of an account ID, and there will + * be another trie item whose value is the size of an account ID plus 32 bytes. + **/ + subAccountDeposit: u128 & AugmentedConst; + /** + * The amount held on deposit per registered username. This value should change only in + * runtime upgrades with proper migration of existing deposits. + **/ + usernameDeposit: u128 & AugmentedConst; + /** + * The number of blocks that must pass to enable the permanent deletion of a username by + * its respective authority. + **/ + usernameGracePeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + imOnline: { + /** + * A configuration for base priority of unsigned transactions. + * + * This is exposed so that it can be tuned for particular runtime, when + * multiple pallets send unsigned transactions. + **/ + unsignedPriority: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + indices: { + /** + * The deposit needed for reserving an index. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + lottery: { + /** + * The max number of calls available in a single lottery. + **/ + maxCalls: u32 & AugmentedConst; + /** + * Number of time we should try to generate a random number that has no modulo bias. + * The larger this number, the more potential computation is used for picking the winner, + * but also the more likely that the chosen winner is done fairly. + **/ + maxGenerateRandom: u32 & AugmentedConst; + /** + * The Lottery's pallet id + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + mixnet: { + /** + * The maximum number of authorities per session. + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of external addresses for a mixnode. + **/ + maxExternalAddressesPerMixnode: u32 & AugmentedConst; + /** + * The maximum size of one of a mixnode's external addresses. + **/ + maxExternalAddressSize: u32 & AugmentedConst; + /** + * Minimum number of mixnodes. If there are fewer than this many mixnodes registered for a + * session, the mixnet will not be active during the session. + **/ + minMixnodes: u32 & AugmentedConst; + /** + * Length of the first phase of each session (`CoverToCurrent`), in blocks. + **/ + numCoverToCurrentBlocks: u32 & AugmentedConst; + /** + * Length of the third phase of each session (`CoverToPrev`), in blocks. + **/ + numCoverToPrevBlocks: u32 & AugmentedConst; + /** + * The number of "slack" blocks at the end of each session. + * [`maybe_register`](Pallet::maybe_register) will try to register before this slack + * period, but may post registration transactions during the slack period as a last + * resort. + **/ + numRegisterEndSlackBlocks: u32 & AugmentedConst; + /** + * The number of "slack" blocks at the start of each session, during which + * [`maybe_register`](Pallet::maybe_register) will not attempt to post registration + * transactions. + **/ + numRegisterStartSlackBlocks: u32 & AugmentedConst; + /** + * Length of the second phase of each session (`RequestsToCurrent`), in blocks. + **/ + numRequestsToCurrentBlocks: u32 & AugmentedConst; + /** + * Priority of unsigned transactions used to register mixnodes. + **/ + registrationPriority: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multiBlockMigrations: { + /** + * The maximal length of an encoded cursor. + * + * A good default needs to selected such that no migration will ever have a cursor with MEL + * above this limit. This is statically checked in `integrity_test`. + **/ + cursorMaxLen: u32 & AugmentedConst; + /** + * The maximal length of an encoded identifier. + * + * A good default needs to selected such that no migration will ever have an identifier + * with MEL above this limit. This is statically checked in `integrity_test`. + **/ + identifierMaxLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multisig: { + /** + * The base amount of currency needed to reserve for creating a multisig execution or to + * store a dispatch call for later. + * + * This is held for an additional storage item whose value size is + * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is + * `32 + sizeof(AccountId)` bytes. + **/ + depositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per unit threshold when creating a multisig execution. + * + * This is held for adding 32 bytes more into a pre-existing storage value. + **/ + depositFactor: u128 & AugmentedConst; + /** + * The maximum amount of signatories allowed in the multisig. + **/ + maxSignatories: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nftFractionalization: { + /** + * The deposit paid by the user locking an NFT. The deposit is returned to the original NFT + * owner when the asset is unified and the NFT is unlocked. + **/ + deposit: u128 & AugmentedConst; + /** + * The newly created asset's name. + **/ + newAssetName: Bytes & AugmentedConst; + /** + * The newly created asset's symbol. + **/ + newAssetSymbol: Bytes & AugmentedConst; + /** + * The pallet's id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nfts: { + /** + * The maximum approvals an item could have. + **/ + approvalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * Disables some of pallet's features. + **/ + features: u64 & AugmentedConst; + /** + * The maximum attributes approvals an item could have. + **/ + itemAttributesApprovalsLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The max number of attributes a user could set per call. + **/ + maxAttributesPerCall: u32 & AugmentedConst; + /** + * The max duration in blocks for deadlines. + **/ + maxDeadlineDuration: u32 & AugmentedConst; + /** + * The max number of tips a user could send. + **/ + maxTips: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nis: { + /** + * The base period for the duration queues. This is the common multiple across all + * supported freezing durations that can be bid upon. + **/ + basePeriod: u32 & AugmentedConst; + /** + * Portion of the queue which is free from ordering and just a FIFO. + * + * Must be no greater than `MaxQueueLen`. + **/ + fifoQueueLen: u32 & AugmentedConst; + /** + * The number of blocks between consecutive attempts to dequeue bids and create receipts. + * + * A larger value results in fewer storage hits each block, but a slower period to get to + * the target. + **/ + intakePeriod: u32 & AugmentedConst; + /** + * The maximum amount of bids that can consolidated into receipts in a single intake. A + * larger value here means less of the block available for transactions should there be a + * glut of bids. + **/ + maxIntakeWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Maximum number of items that may be in each duration queue. + * + * Must be larger than zero. + **/ + maxQueueLen: u32 & AugmentedConst; + /** + * The minimum amount of funds that may be placed in a bid. Note that this + * does not actually limit the amount which may be represented in a receipt since bids may + * be split up by the system. + * + * It should be at least big enough to ensure that there is no possible storage spam attack + * or queue-filling attack. + **/ + minBid: u128 & AugmentedConst; + /** + * The minimum amount of funds which may intentionally be left remaining under a single + * receipt. + **/ + minReceipt: Perquintill & AugmentedConst; + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Number of duration queues in total. This sets the maximum duration supported, which is + * this value multiplied by `Period`. + **/ + queueCount: u32 & AugmentedConst; + /** + * The maximum proportion which may be thawed and the period over which it is reset. + **/ + thawThrottle: ITuple<[Perquintill, u32]> & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nominationPools: { + /** + * The maximum pool points-to-balance ratio that an `open` pool can have. + * + * This is important in the event slashing takes place and the pool's points-to-balance + * ratio becomes disproportional. + * + * Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations + * are a function of number of points, and by setting this value to e.g. 10, you ensure + * that the total number of points in the system are at most 10 times the total_issuance of + * the chain, in the absolute worse case. + * + * For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1. + * Such a scenario would also be the equivalent of the pool being 90% slashed. + **/ + maxPointsToBalance: u8 & AugmentedConst; + /** + * The maximum number of simultaneous unbonding chunks that can exist per member. + **/ + maxUnbonding: u32 & AugmentedConst; + /** + * The nomination pool's pallet id. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + poolAssets: { + /** + * The amount of funds that must be reserved when creating a new approval. + **/ + approvalDeposit: u128 & AugmentedConst; + /** + * The amount of funds that must be reserved for a non-provider asset account to be + * maintained. + **/ + assetAccountDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an asset. + **/ + assetDeposit: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your asset. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes you store in your + * metadata. + **/ + metadataDepositPerByte: u128 & AugmentedConst; + /** + * Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call. + * + * Must be configured to result in a weight that makes each call fit in a block. + **/ + removeItemsLimit: u32 & AugmentedConst; + /** + * The maximum length of a name or symbol stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proxy: { + /** + * The base amount of currency needed to reserve for creating an announcement. + * + * This is held when a new storage item holding a `Balance` is created (typically 16 + * bytes). + **/ + announcementDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per announcement made. + * + * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) + * into a pre-existing storage value. + **/ + announcementDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of time-delayed announcements that are allowed to be pending. + **/ + maxPending: u32 & AugmentedConst; + /** + * The maximum amount of proxies allowed for a single account. + **/ + maxProxies: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for creating a proxy. + * + * This is held for an additional storage item whose value size is + * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. + **/ + proxyDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per proxy added. + * + * This is held for adding 32 bytes plus an instance of `ProxyType` more into a + * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take + * into account `32 + proxy_type.encode().len()` bytes of data. + **/ + proxyDepositFactor: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + rankedPolls: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + recovery: { + /** + * The base amount of currency needed to reserve for creating a recovery configuration. + * + * This is held for an additional storage item whose value size is + * `2 + sizeof(BlockNumber, Balance)` bytes. + **/ + configDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per additional user when creating a recovery + * configuration. + * + * This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage + * value. + **/ + friendDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of friends allowed in a recovery configuration. + * + * NOTE: The threshold programmed in this Pallet uses u16, so it does + * not really make sense to have a limit here greater than u16::MAX. + * But also, that is a lot more than you should probably set this value + * to anyway... + **/ + maxFriends: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for starting a recovery. + * + * This is primarily held for deterring malicious recovery attempts, and should + * have a value large enough that a bad actor would choose not to place this + * deposit. It also acts to fund additional storage item whose value size is + * `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable + * threshold. + **/ + recoveryDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + referenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + revive: { + /** + * The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID. + * + * This is a unique identifier assigned to each blockchain network, + * preventing replay attacks. + **/ + chainId: u64 & AugmentedConst; + /** + * The percentage of the storage deposit that should be held for using a code hash. + * Instantiating a contract, protects the code from being removed. In order to prevent + * abuse these actions are protected with a percentage of the code deposit. + **/ + codeHashLockupDepositPercent: Perbill & AugmentedConst; + /** + * The amount of balance a caller has to pay for each byte of storage. + * + * # Note + * + * It is safe to change this value on a live chain as all refunds are pro rata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * The amount of balance a caller has to pay for each storage item. + * + * # Note + * + * It is safe to change this value on a live chain as all refunds are pro rata. + **/ + depositPerItem: u128 & AugmentedConst; + /** + * The ratio between the decimal representation of the native token and the ETH token. + **/ + nativeToEthRatio: u32 & AugmentedConst; + /** + * Make contract callable functions marked as `#[unstable]` available. + * + * Contracts that use `#[unstable]` functions won't be able to be uploaded unless + * this is set to `true`. This is only meant for testnets and dev nodes in order to + * experiment with new features. + * + * # Warning + * + * Do **not** set to `true` on productions chains. + **/ + unsafeUnstableInterface: bool & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + safeMode: { + /** + * The amount that will be reserved upon calling [`Pallet::enter`]. + * + * `None` disallows permissionlessly enabling the safe-mode and is a sane default. + **/ + enterDepositAmount: Option & AugmentedConst; + /** + * For how many blocks the safe-mode will be entered by [`Pallet::enter`]. + **/ + enterDuration: u32 & AugmentedConst; + /** + * The amount that will be reserved upon calling [`Pallet::extend`]. + * + * `None` disallows permissionlessly extending the safe-mode and is a sane default. + **/ + extendDepositAmount: Option & AugmentedConst; + /** + * For how many blocks the safe-mode can be extended by each [`Pallet::extend`] call. + * + * This does not impose a hard limit as the safe-mode can be extended multiple times. + **/ + extendDuration: u32 & AugmentedConst; + /** + * The minimal duration a deposit will remain reserved after safe-mode is entered or + * extended, unless [`Pallet::force_release_deposit`] is successfully called sooner. + * + * Every deposit is tied to a specific activation or extension, thus each deposit can be + * released independently after the delay for it has passed. + * + * `None` disallows permissionlessly releasing the safe-mode deposits and is a sane + * default. + **/ + releaseDelay: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + salary: { + /** + * The total budget per cycle. + * + * This may change over the course of a cycle without any problem. + **/ + budget: u128 & AugmentedConst; + /** + * The number of blocks within a cycle which accounts have to claim the payout. + * + * The number of blocks between sequential payout cycles is the sum of this and + * `RegistrationPeriod`. + **/ + payoutPeriod: u32 & AugmentedConst; + /** + * The number of blocks within a cycle which accounts have to register their intent to + * claim. + * + * The number of blocks between sequential payout cycles is the sum of this and + * `PayoutPeriod`. + **/ + registrationPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + scheduler: { + /** + * The maximum weight that may be scheduled per block for any dispatchables. + **/ + maximumWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * The maximum number of scheduled calls in the queue for a single block. + * + * NOTE: + * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a + * higher limit under `runtime-benchmarks` feature. + **/ + maxScheduledPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + society: { + /** + * The number of blocks between membership challenges. + **/ + challengePeriod: u32 & AugmentedConst; + /** + * The number of blocks on which new candidates can claim their membership and be the + * named head. + **/ + claimPeriod: u32 & AugmentedConst; + /** + * The maximum number of strikes before a member gets funds slashed. + **/ + graceStrikes: u32 & AugmentedConst; + /** + * The maximum number of bids at once. + **/ + maxBids: u32 & AugmentedConst; + /** + * The maximum duration of the payout lock. + **/ + maxLockDuration: u32 & AugmentedConst; + /** + * The maximum number of payouts a member may have waiting unclaimed. + **/ + maxPayouts: u32 & AugmentedConst; + /** + * The societies's pallet id + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The amount of incentive paid within each period. Doesn't include VoterTip. + **/ + periodSpend: u128 & AugmentedConst; + /** + * The number of blocks on which new candidates should be voted on. Together with + * `ClaimPeriod`, this sums to the number of blocks between candidate intake periods. + **/ + votingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + staking: { + /** + * Number of eras that staked funds must remain bonded for. + **/ + bondingDuration: u32 & AugmentedConst; + /** + * Number of eras to keep in history. + * + * Following information is kept for eras in `[current_era - + * HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`, + * `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`, + * `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`, + * `ErasStakersOverview`. + * + * Must be more than the number of eras delayed by session. + * I.e. active era must always be in history. I.e. `active_era > + * current_era - history_depth` must be guaranteed. + * + * If migrating an existing pallet from storage value to config value, + * this should be set to same value or greater as in storage. + * + * Note: `HistoryDepth` is used as the upper bound for the `BoundedVec` + * item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than + * the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a migration. + * The test `reducing_history_depth_abrupt` shows this effect. + **/ + historyDepth: u32 & AugmentedConst; + /** + * The maximum size of each `T::ExposurePage`. + * + * An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize` + * nominators. + * + * For older non-paged exposure, a reward payout was restricted to the top + * `MaxExposurePageSize` nominators. This is to limit the i/o cost for the + * nominator payout. + * + * Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce + * without handling it in a migration. + **/ + maxExposurePageSize: u32 & AugmentedConst; + /** + * The maximum number of `unlocking` chunks a [`StakingLedger`] can + * have. Effectively determines how many unique eras a staker may be + * unbonding in. + * + * Note: `MaxUnlockingChunks` is used as the upper bound for the + * `BoundedVec` item `StakingLedger.unlocking`. Setting this value + * lower than the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a runtime + * migration. The test `reducing_max_unlocking_chunks_abrupt` shows + * this effect. + **/ + maxUnlockingChunks: u32 & AugmentedConst; + /** + * Number of sessions per era. + **/ + sessionsPerEra: u32 & AugmentedConst; + /** + * Number of eras that slashes are deferred by, after computation. + * + * This should be less than the bonding duration. Set to 0 if slashes + * should be applied immediately, without opportunity for intervention. + **/ + slashDeferDuration: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + statement: { + /** + * Cost of data byte used for priority calculation. + **/ + byteCost: u128 & AugmentedConst; + /** + * Maximum data bytes allowed per account. + **/ + maxAllowedBytes: u32 & AugmentedConst; + /** + * Maximum number of statements allowed per account. + **/ + maxAllowedStatements: u32 & AugmentedConst; + /** + * Minimum data bytes allowed per account. + **/ + minAllowedBytes: u32 & AugmentedConst; + /** + * Minimum number of statements allowed per account. + **/ + minAllowedStatements: u32 & AugmentedConst; + /** + * Min balance for priority statements. + **/ + statementCost: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + stateTrieMigration: { + /** + * Maximal number of bytes that a key can have. + * + * FRAME itself does not limit the key length. + * The concrete value must therefore depend on your storage usage. + * A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of + * keys which are then hashed and concatenated, resulting in arbitrarily long keys. + * + * Use the *state migration RPC* to retrieve the length of the longest key in your + * storage: + * + * The migration will halt with a `Halted` event if this value is too small. + * Since there is no real penalty from over-estimating, it is advised to use a large + * value. The default is 512 byte. + * + * Some key lengths for reference: + * - [`frame_support::storage::StorageValue`]: 32 byte + * - [`frame_support::storage::StorageMap`]: 64 byte + * - [`frame_support::storage::StorageDoubleMap`]: 96 byte + * + * For more info see + * + **/ + maxKeyLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: PezframeSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: PezframeSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: PezspWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: PezspVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + technicalCommittee: { + /** + * The maximum weight of a dispatch call that can be proposed and executed. + **/ + maxProposalWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + tips: { + /** + * The amount held on deposit per byte within the tip report reason or bounty description. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * Maximum acceptable reason length. + * + * Benchmarks depend on this value, be sure to update weights file when changing this value + **/ + maximumReasonLength: u32 & AugmentedConst; + /** + * The maximum amount for a single tip. + **/ + maxTipAmount: u128 & AugmentedConst; + /** + * The period for which a tip remains open after is has achieved threshold tippers. + **/ + tipCountdown: u32 & AugmentedConst; + /** + * The percent of the final tip which goes to the original reporter of the tip. + **/ + tipFindersFee: Percent & AugmentedConst; + /** + * The non-zero amount held on deposit for placing a tip report. + **/ + tipReportDepositBase: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + treasury: { + /** + * Percentage of spare funds (if any) that are burnt per spend period. + **/ + burn: Permill & AugmentedConst; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * The maximum number of approvals that can wait in the spending queue. + * + * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. + **/ + maxApprovals: u32 & AugmentedConst; + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The period during which an approved treasury spend has to be claimed. + **/ + payoutPeriod: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Period between successive spends. + **/ + spendPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + txPause: { + /** + * Maximum length for pallet name and call name SCALE encoded string names. + * + * TOO LONG NAMES WILL BE TREATED AS PAUSED. + **/ + maxNameLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + uniques: { + /** + * The basic amount of funds that must be reserved when adding an attribute to an item. + **/ + attributeDepositBase: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for collection. + **/ + collectionDeposit: u128 & AugmentedConst; + /** + * The additional funds that must be reserved for the number of bytes store in metadata, + * either "normal" metadata or attribute metadata. + **/ + depositPerByte: u128 & AugmentedConst; + /** + * The basic amount of funds that must be reserved for an item. + **/ + itemDeposit: u128 & AugmentedConst; + /** + * The maximum length of an attribute key. + **/ + keyLimit: u32 & AugmentedConst; + /** + * The basic amount of funds that must be reserved when adding metadata to your item. + **/ + metadataDepositBase: u128 & AugmentedConst; + /** + * The maximum length of data stored on-chain. + **/ + stringLimit: u32 & AugmentedConst; + /** + * The maximum length of an attribute value. + **/ + valueLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + utility: { + /** + * The limit on the number of batched calls. + **/ + batchedCallsLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + vesting: { + maxVestingSchedules: u32 & AugmentedConst; + /** + * The minimum amount transferred to call `vested_transfer`. + **/ + minVestedTransfer: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + voterList: { + /** + * The list of thresholds separating the various bags. + * + * Ids are separated into unsorted bags according to their score. This specifies the + * thresholds separating the bags. An id's bag is the largest bag for which the id's score + * is less than or equal to its upper threshold. + * + * When ids are iterated, higher bags are iterated completely before lower bags. This means + * that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower + * score, but peer ids within a particular bag are sorted in insertion order. + * + * # Expressing the constant + * + * This constant must be sorted in strictly increasing order. Duplicate items are not + * permitted. + * + * There is an implied upper limit of `Score::MAX`; that value does not need to be + * specified within the bag. For any two threshold lists, if one ends with + * `Score::MAX`, the other one does not, and they are otherwise equal, the two + * lists will behave identically. + * + * # Calculation + * + * It is recommended to generate the set of thresholds in a geometric series, such that + * there exists some constant ratio such that `threshold[k + 1] == (threshold[k] * + * constant_ratio).max(threshold[k] + 1)` for all `k`. + * + * The helpers in the `/utils/frame/generate-bags` module can simplify this calculation. + * + * # Examples + * + * - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and + * iteration is strictly in insertion order. + * - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is equal to 2. + * - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is approximately equal to 1.248. + * - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall + * into bag 0, an id with score 2 will fall into bag 1, etc. + * + * # Migration + * + * In the event that this list ever changes, a copy of the old bags list must be retained. + * With that `List::migrate` can be called, which will perform the appropriate migration. + **/ + bagThresholds: Vec & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/packages/api-augment/src/bizinikiwi/errors.ts b/packages/api-augment/src/bizinikiwi/errors.ts new file mode 100644 index 0000000..6276904 --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/errors.ts @@ -0,0 +1,3873 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/errors'; + +import type { ApiTypes, AugmentedError } from '@pezkuwi/api-base/types'; + +export type __AugmentedError = AugmentedError; + +declare module '@pezkuwi/api-base/types/errors' { + interface AugmentedErrors { + alliance: { + /** + * Account has been deemed unscrupulous by the Alliance and is not welcome to join or be + * nominated. + **/ + AccountNonGrata: AugmentedError; + /** + * The Alliance has been initialized, therefore cannot be initialized again. + **/ + AllianceAlreadyInitialized: AugmentedError; + /** + * The Alliance has not been initialized yet, therefore accounts cannot join it. + **/ + AllianceNotYetInitialized: AugmentedError; + /** + * Account is already an elevated (fellow) member. + **/ + AlreadyElevated: AugmentedError; + /** + * Account is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Account already gave retirement notice + **/ + AlreadyRetiring: AugmentedError; + /** + * Item is already listed as unscrupulous. + **/ + AlreadyUnscrupulous: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Fellows must be provided to initialize the Alliance. + **/ + FellowsMissing: AugmentedError; + /** + * Balance is insufficient for the required deposit. + **/ + InsufficientFunds: AugmentedError; + /** + * The announcement is not found. + **/ + MissingAnnouncement: AugmentedError; + /** + * The proposal hash is not found. + **/ + MissingProposalHash: AugmentedError; + /** + * Account is not an ally. + **/ + NotAlly: AugmentedError; + /** + * Item has not been deemed unscrupulous. + **/ + NotListedAsUnscrupulous: AugmentedError; + /** + * Account is not a member. + **/ + NotMember: AugmentedError; + /** + * Account does not have voting rights. + **/ + NoVotingRights: AugmentedError; + /** + * Account did not give a retirement notice required to retire. + **/ + RetirementNoticeNotGiven: AugmentedError; + /** + * Retirement period has not passed. + **/ + RetirementPeriodNotPassed: AugmentedError; + /** + * Length of website URL exceeds `MaxWebsiteUrlLength`. + **/ + TooLongWebsiteUrl: AugmentedError; + /** + * Number of announcements exceeds `MaxAnnouncementsCount`. + **/ + TooManyAnnouncements: AugmentedError; + /** + * Number of members exceeds `MaxMembersCount`. + **/ + TooManyMembers: AugmentedError; + /** + * The number of unscrupulous items exceeds `MaxUnscrupulousItems`. + **/ + TooManyUnscrupulousItems: AugmentedError; + /** + * The account's identity has no good judgement. + **/ + WithoutGoodIdentityJudgement: AugmentedError; + /** + * The account's identity does not have display field and website field. + **/ + WithoutRequiredIdentityFields: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + allianceMotion: { + /** + * Members are already initialized! + **/ + AlreadyInitialized: AugmentedError; + /** + * Duplicate proposals not allowed + **/ + DuplicateProposal: AugmentedError; + /** + * Duplicate vote ignored + **/ + DuplicateVote: AugmentedError; + /** + * Account is not a member + **/ + NotMember: AugmentedError; + /** + * Prime account is not a member + **/ + PrimeAccountNotMember: AugmentedError; + /** + * Proposal is still active. + **/ + ProposalActive: AugmentedError; + /** + * Proposal must exist + **/ + ProposalMissing: AugmentedError; + /** + * The close call was made too early, before the end of the voting. + **/ + TooEarly: AugmentedError; + /** + * There can only be a maximum of `MaxProposals` active proposals. + **/ + TooManyProposals: AugmentedError; + /** + * Mismatched index + **/ + WrongIndex: AugmentedError; + /** + * The given length bound for the proposal was too low. + **/ + WrongProposalLength: AugmentedError; + /** + * The given weight bound for the proposal was too low. + **/ + WrongProposalWeight: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetConversion: { + /** + * Provided amount should be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + AmountOneLessThanMinimal: AugmentedError; + /** + * Desired amount can't be equal to the pool reserve. + **/ + AmountOutTooHigh: AugmentedError; + /** + * Provided amount should be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + AmountTwoLessThanMinimal: AugmentedError; + /** + * The minimal amount requirement for the first token in the pair wasn't met. + **/ + AssetOneDepositDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the first token in the pair wasn't met. + **/ + AssetOneWithdrawalDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the second token in the pair wasn't met. + **/ + AssetTwoDepositDidNotMeetMinimum: AugmentedError; + /** + * The minimal amount requirement for the second token in the pair wasn't met. + **/ + AssetTwoWithdrawalDidNotMeetMinimum: AugmentedError; + /** + * The destination account cannot exist with the swapped funds. + **/ + BelowMinimum: AugmentedError; + /** + * It was not possible to get or increment the Id of the pool. + **/ + IncorrectPoolAssetId: AugmentedError; + /** + * Insufficient liquidity minted. + **/ + InsufficientLiquidityMinted: AugmentedError; + /** + * Provided asset pair is not supported for pool. + **/ + InvalidAssetPair: AugmentedError; + /** + * The provided path must consists of 2 assets at least. + **/ + InvalidPath: AugmentedError; + /** + * The provided path must consists of unique assets. + **/ + NonUniquePath: AugmentedError; + /** + * Optimal calculated amount is less than desired. + **/ + OptimalAmountLessThanDesired: AugmentedError; + /** + * An overflow happened. + **/ + Overflow: AugmentedError; + /** + * Pool already exists. + **/ + PoolExists: AugmentedError; + /** + * The pool doesn't exist. + **/ + PoolNotFound: AugmentedError; + /** + * Provided maximum amount is not sufficient for swap. + **/ + ProvidedMaximumNotSufficientForSwap: AugmentedError; + /** + * Calculated amount out is less than provided minimum amount. + **/ + ProvidedMinimumNotSufficientForSwap: AugmentedError; + /** + * Reserve needs to always be greater than or equal to the existential deposit/asset's + * minimal amount. + **/ + ReserveLeftLessThanMinimal: AugmentedError; + /** + * Desired amount can't be zero. + **/ + WrongDesiredAmount: AugmentedError; + /** + * Amount can't be zero. + **/ + ZeroAmount: AugmentedError; + /** + * Requested liquidity can't be zero. + **/ + ZeroLiquidity: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetConversionMigration: { + /** + * Provided asset pair is not supported for pool. + **/ + InvalidAssetPair: AugmentedError; + /** + * Indicates a partial transfer of balance to the new account during a migration. + **/ + PartialTransfer: AugmentedError; + /** + * The pool doesn't exist. + **/ + PoolNotFound: AugmentedError; + /** + * Pool's balance cannot be zero. + **/ + ZeroBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetRate: { + /** + * The given asset ID already has an assigned conversion rate and cannot be re-created. + **/ + AlreadyExists: AugmentedError; + /** + * Overflow ocurred when calculating the inverse rate. + **/ + Overflow: AugmentedError; + /** + * The given asset ID is unknown. + **/ + UnknownAssetKind: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetRewards: { + /** + * There was an error converting a block number. + **/ + BlockNumberConversionError: AugmentedError; + /** + * The expiry block must be in the future. + **/ + ExpiryBlockMustBeInTheFuture: AugmentedError; + /** + * The expiry block can be only extended. + **/ + ExpiryCut: AugmentedError; + /** + * Insufficient funds to create the freeze. + **/ + InsufficientFunds: AugmentedError; + /** + * The pool still has staked tokens or rewards. + **/ + NonEmptyPool: AugmentedError; + /** + * An operation was attempted with a non-existent asset. + **/ + NonExistentAsset: AugmentedError; + /** + * An operation was attempted on a non-existent pool. + **/ + NonExistentPool: AugmentedError; + /** + * An operation was attempted for a non-existent staker. + **/ + NonExistentStaker: AugmentedError; + /** + * The staker does not have enough tokens to perform the operation. + **/ + NotEnoughTokens: AugmentedError; + /** + * The reward rate per block can be only increased. + **/ + RewardRateCut: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + assetsFreezer: { + /** + * Number of freezes on an account would exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + babe: { + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * Submitted configuration is invalid. + **/ + InvalidConfiguration: AugmentedError; + /** + * An equivocation proof provided as part of an equivocation report is invalid. + **/ + InvalidEquivocationProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + beefy: { + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * Submitted configuration is invalid. + **/ + InvalidConfiguration: AugmentedError; + /** + * A double voting proof provided as part of an equivocation report is invalid. + **/ + InvalidDoubleVotingProof: AugmentedError; + /** + * The session of the equivocation proof is invalid + **/ + InvalidEquivocationProofSession: AugmentedError; + /** + * A fork voting proof provided as part of an equivocation report is invalid. + **/ + InvalidForkVotingProof: AugmentedError; + /** + * A future block voting proof provided as part of an equivocation report is invalid. + **/ + InvalidFutureBlockVotingProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bounties: { + /** + * The bounty cannot be closed because it has active child bounties. + **/ + HasActiveChildBounty: AugmentedError; + /** + * Proposer's balance is too low. + **/ + InsufficientProposersBalance: AugmentedError; + /** + * Invalid bounty fee. + **/ + InvalidFee: AugmentedError; + /** + * No proposal or bounty at that index. + **/ + InvalidIndex: AugmentedError; + /** + * Invalid bounty value. + **/ + InvalidValue: AugmentedError; + /** + * A bounty payout is pending. + * To cancel the bounty, you must unassign and slash the curator. + **/ + PendingPayout: AugmentedError; + /** + * The bounties cannot be claimed/closed because it's still in the countdown period. + **/ + Premature: AugmentedError; + /** + * The reason given is just too big. + **/ + ReasonTooBig: AugmentedError; + /** + * Require bounty curator. + **/ + RequireCurator: AugmentedError; + /** + * Too many approvals are already queued. + **/ + TooManyQueued: AugmentedError; + /** + * The bounty status is unexpected. + **/ + UnexpectedStatus: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + broker: { + /** + * The lease expiry time has already passed. + **/ + AlreadyExpired: AugmentedError; + /** + * Attempted to force remove an assignment that doesn't exist. + **/ + AssignmentNotFound: AugmentedError; + /** + * Attempted to disable auto-renewal for a core that didn't have it enabled. + **/ + AutoRenewalNotEnabled: AugmentedError; + /** + * The pivot mask for the interlacing is complete (and therefore not a strict subset). + **/ + CompletePivot: AugmentedError; + /** + * The workplan of the pallet's state is invalid. This indicates a state corruption. + **/ + CorruptWorkplan: AugmentedError; + /** + * Needed to prevent spam attacks.The amount of credits the user attempted to purchase is + * below `T::MinimumCreditPurchase`. + **/ + CreditPurchaseTooSmall: AugmentedError; + /** + * The pivot mask for the interlacing is not contained within the region's interlace mask. + **/ + ExteriorPivot: AugmentedError; + /** + * The workload assigned for renewal is incomplete. This is unexpected and indicates a + * logic error. + **/ + IncompleteAssignment: AugmentedError; + /** + * The configuration could not be applied because it is invalid. + **/ + InvalidConfig: AugmentedError; + /** + * The lease does not exist. + **/ + LeaseNotFound: AugmentedError; + /** + * The revenue must be claimed for 1 or more timeslices. + **/ + NoClaimTimeslices: AugmentedError; + /** + * The history item does not exist. + **/ + NoHistory: AugmentedError; + /** + * Only cores which are assigned to a task can be auto-renewed. + **/ + NonTaskAutoRenewal: AugmentedError; + /** + * The caller doesn't have the permission to enable or disable auto-renewal. + **/ + NoPermission: AugmentedError; + /** + * There is no sale happening currently. + **/ + NoSales: AugmentedError; + /** + * Invalid attempt to renew. + **/ + NotAllowed: AugmentedError; + /** + * There is no work to be done. + **/ + NothingToDo: AugmentedError; + /** + * The owner of the region is not the origin. + **/ + NotOwner: AugmentedError; + /** + * The price limit is exceeded. + **/ + Overpriced: AugmentedError; + /** + * The pivot point of the partition at the beginning of the region. + **/ + PivotTooEarly: AugmentedError; + /** + * The pivot point of the partition at or after the end of the region. + **/ + PivotTooLate: AugmentedError; + /** + * The sale limit has been reached. + **/ + SoldOut: AugmentedError; + /** + * Failed to get the sovereign account of a task. + **/ + SovereignAccountNotFound: AugmentedError; + /** + * An item cannot be dropped because it is still valid. + **/ + StillValid: AugmentedError; + /** + * The purchase cannot happen yet as the sale period is yet to begin. + **/ + TooEarly: AugmentedError; + /** + * We reached the limit for auto-renewals. + **/ + TooManyAutoRenewals: AugmentedError; + /** + * The maximum amount of leases has already been reached. + **/ + TooManyLeases: AugmentedError; + /** + * The maximum amount of reservations has already been reached. + **/ + TooManyReservations: AugmentedError; + /** + * There are no cores available. + **/ + Unavailable: AugmentedError; + /** + * This pallet has not yet been initialized. + **/ + Uninitialized: AugmentedError; + /** + * The identified contribution to the Instantaneous Core Pool is unknown. + **/ + UnknownContribution: AugmentedError; + /** + * The given region identity is not known. + **/ + UnknownRegion: AugmentedError; + /** + * The renewal record cannot be found. + **/ + UnknownRenewal: AugmentedError; + /** + * No reservation of the given index exists. + **/ + UnknownReservation: AugmentedError; + /** + * The revenue for the Instantaneous Core Sales of this period is not (yet) known and thus + * this operation cannot proceed. + **/ + UnknownRevenue: AugmentedError; + /** + * The pivot mask for the interlacing is void (and therefore unschedulable). + **/ + VoidPivot: AugmentedError; + /** + * The renewal operation is not valid at the current time (it may become valid in the next + * sale). + **/ + WrongTime: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + childBounties: { + /** + * The bounty balance is not enough to add new child-bounty. + **/ + InsufficientBountyBalance: AugmentedError; + /** + * The parent bounty is not in active state. + **/ + ParentBountyNotActive: AugmentedError; + /** + * Number of child bounties exceeds limit `MaxActiveChildBountyCount`. + **/ + TooManyChildBounties: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + contracts: { + /** + * Can not add a delegate dependency to the code hash of the contract itself. + **/ + CannotAddSelfAsDelegateDependency: AugmentedError; + /** + * No code info could be found at the supplied code hash. + **/ + CodeInfoNotFound: AugmentedError; + /** + * Code removal was denied because the code is still in use by at least one contract. + **/ + CodeInUse: AugmentedError; + /** + * No code could be found at the supplied code hash. + **/ + CodeNotFound: AugmentedError; + /** + * The contract's code was found to be invalid during validation. + * + * The most likely cause of this is that an API was used which is not supported by the + * node. This happens if an older node is used with a new version of ink!. Try updating + * your node to the newest available version. + * + * A more detailed error can be found on the node console if debug messages are enabled + * by supplying `-lruntime::contracts=debug`. + **/ + CodeRejected: AugmentedError; + /** + * The code supplied to `instantiate_with_code` exceeds the limit specified in the + * current schedule. + **/ + CodeTooLarge: AugmentedError; + /** + * No contract was found at the specified address. + **/ + ContractNotFound: AugmentedError; + /** + * The contract ran to completion but decided to revert its storage changes. + * Please note that this error is only returned from extrinsics. When called directly + * or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags + * to determine whether a reversion has taken place. + **/ + ContractReverted: AugmentedError; + /** + * Contract trapped during execution. + **/ + ContractTrapped: AugmentedError; + /** + * Input passed to a contract API function failed to decode as expected type. + **/ + DecodingFailed: AugmentedError; + /** + * The contract already depends on the given delegate dependency. + **/ + DelegateDependencyAlreadyExists: AugmentedError; + /** + * The dependency was not found in the contract's delegate dependencies. + **/ + DelegateDependencyNotFound: AugmentedError; + /** + * A contract with the same AccountId already exists. + **/ + DuplicateContract: AugmentedError; + /** + * An indeterministic code was used in a context where this is not permitted. + **/ + Indeterministic: AugmentedError; + /** + * `seal_call` forwarded this contracts input. It therefore is no longer available. + **/ + InputForwarded: AugmentedError; + /** + * Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`. + **/ + InvalidCallFlags: AugmentedError; + /** + * Invalid schedule supplied, e.g. with zero weight of a basic operation. + **/ + InvalidSchedule: AugmentedError; + /** + * Performing a call was denied because the calling depth reached the limit + * of what is specified in the schedule. + **/ + MaxCallDepthReached: AugmentedError; + /** + * The contract has reached its maximum number of delegate dependencies. + **/ + MaxDelegateDependenciesReached: AugmentedError; + /** + * A pending migration needs to complete before the extrinsic can be called. + **/ + MigrationInProgress: AugmentedError; + /** + * The chain does not provide a chain extension. Calling the chain extension results + * in this error. Note that this usually shouldn't happen as deploying such contracts + * is rejected. + **/ + NoChainExtension: AugmentedError; + /** + * Migrate dispatch call was attempted but no migration was performed. + **/ + NoMigrationPerformed: AugmentedError; + /** + * A buffer outside of sandbox memory was passed to a contract API function. + **/ + OutOfBounds: AugmentedError; + /** + * The executed contract exhausted its gas limit. + **/ + OutOfGas: AugmentedError; + /** + * Can not add more data to transient storage. + **/ + OutOfTransientStorage: AugmentedError; + /** + * The output buffer supplied to a contract API call was too small. + **/ + OutputBufferTooSmall: AugmentedError; + /** + * The subject passed to `seal_random` exceeds the limit. + **/ + RandomSubjectTooLong: AugmentedError; + /** + * A call tried to invoke a contract that is flagged as non-reentrant. + * The only other cause is that a call from a contract into the runtime tried to call back + * into `pallet-contracts`. This would make the whole pallet reentrant with regard to + * contract code execution which is not supported. + **/ + ReentranceDenied: AugmentedError; + /** + * A contract attempted to invoke a state modifying API while being in read-only mode. + **/ + StateChangeDenied: AugmentedError; + /** + * More storage was created than allowed by the storage deposit limit. + **/ + StorageDepositLimitExhausted: AugmentedError; + /** + * Origin doesn't have enough balance to pay the required storage deposits. + **/ + StorageDepositNotEnoughFunds: AugmentedError; + /** + * A contract self destructed in its constructor. + * + * This can be triggered by a call to `seal_terminate`. + **/ + TerminatedInConstructor: AugmentedError; + /** + * Termination of a contract is not allowed while the contract is already + * on the call stack. Can be triggered by `seal_terminate`. + **/ + TerminatedWhileReentrant: AugmentedError; + /** + * The amount of topics passed to `seal_deposit_events` exceeds the limit. + **/ + TooManyTopics: AugmentedError; + /** + * Performing the requested transfer failed. Probably because there isn't enough + * free balance in the sender's account. + **/ + TransferFailed: AugmentedError; + /** + * The size defined in `T::MaxValueSize` was exceeded. + **/ + ValueTooLarge: AugmentedError; + /** + * Failed to decode the XCM program. + **/ + XCMDecodeFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + convictionVoting: { + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed through `remove_vote`. + **/ + AlreadyVoting: AugmentedError; + /** + * The class ID supplied is invalid. + **/ + BadClass: AugmentedError; + /** + * The class must be supplied since it is not easily determinable from the state. + **/ + ClassNeeded: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * The actor has no permission to conduct the action right now but will do in the future. + **/ + NoPermissionYet: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Poll is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * The given account did not vote on the poll. + **/ + NotVoter: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + coreFellowship: { + /** + * The candidate has already been inducted. This should never happen since it would + * require a candidate (rank 0) to already be tracked in the pallet. + **/ + AlreadyInducted: AugmentedError; + /** + * The given rank is invalid - this generally means it's not between 1 and `RANK_COUNT`. + **/ + InvalidRank: AugmentedError; + /** + * The origin does not have enough permission to do this operation. + **/ + NoPermission: AugmentedError; + /** + * No work needs to be done at present for this member. + **/ + NothingDoing: AugmentedError; + /** + * The candidate has not been inducted, so cannot be offboarded from this pallet. + **/ + NotTracked: AugmentedError; + /** + * Member's rank is not zero. + **/ + Ranked: AugmentedError; + /** + * Operation cannot be done yet since not enough time has passed. + **/ + TooSoon: AugmentedError; + /** + * Member's rank is not as expected - generally means that the rank provided to the call + * does not agree with the state of the system. + **/ + UnexpectedRank: AugmentedError; + /** + * Member's rank is too low. + **/ + Unranked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + council: { + /** + * Members are already initialized! + **/ + AlreadyInitialized: AugmentedError; + /** + * Duplicate proposals not allowed + **/ + DuplicateProposal: AugmentedError; + /** + * Duplicate vote ignored + **/ + DuplicateVote: AugmentedError; + /** + * Account is not a member + **/ + NotMember: AugmentedError; + /** + * Prime account is not a member + **/ + PrimeAccountNotMember: AugmentedError; + /** + * Proposal is still active. + **/ + ProposalActive: AugmentedError; + /** + * Proposal must exist + **/ + ProposalMissing: AugmentedError; + /** + * The close call was made too early, before the end of the voting. + **/ + TooEarly: AugmentedError; + /** + * There can only be a maximum of `MaxProposals` active proposals. + **/ + TooManyProposals: AugmentedError; + /** + * Mismatched index + **/ + WrongIndex: AugmentedError; + /** + * The given length bound for the proposal was too low. + **/ + WrongProposalLength: AugmentedError; + /** + * The given weight bound for the proposal was too low. + **/ + WrongProposalWeight: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + delegatedStaking: { + /** + * An existing staker cannot perform this action. + **/ + AlreadyStaking: AugmentedError; + /** + * Some corruption in internal state. + **/ + BadState: AugmentedError; + /** + * Delegation conditions are not met. + * + * Possible issues are + * 1) Cannot delegate to self, + * 2) Cannot delegate to multiple delegates. + **/ + InvalidDelegation: AugmentedError; + /** + * Reward Destination cannot be same as `Agent` account. + **/ + InvalidRewardDestination: AugmentedError; + /** + * Not an existing `Agent` account. + **/ + NotAgent: AugmentedError; + /** + * The account cannot perform this operation. + **/ + NotAllowed: AugmentedError; + /** + * Not a Delegator account. + **/ + NotDelegator: AugmentedError; + /** + * The account does not have enough funds to perform the operation. + **/ + NotEnoughFunds: AugmentedError; + /** + * `Agent` has no pending slash to be applied. + **/ + NothingToSlash: AugmentedError; + /** + * Operation not supported by this pallet. + **/ + NotSupported: AugmentedError; + /** + * Unapplied pending slash restricts operation on `Agent`. + **/ + UnappliedSlash: AugmentedError; + /** + * Failed to withdraw amount from Core Staking. + **/ + WithdrawFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + democracy: { + /** + * Cannot cancel the same proposal twice + **/ + AlreadyCanceled: AugmentedError; + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * Identity may not veto a proposal twice + **/ + AlreadyVetoed: AugmentedError; + /** + * Proposal already made + **/ + DuplicateProposal: AugmentedError; + /** + * The instant referendum origin is currently disallowed. + **/ + InstantNotAllowed: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Invalid hash + **/ + InvalidHash: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * No proposals waiting + **/ + NoneWaiting: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * No external proposal + **/ + NoProposal: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Next external proposal not simple majority + **/ + NotSimpleMajority: AugmentedError; + /** + * The given account did not vote on the referendum. + **/ + NotVoter: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * Proposal still blacklisted + **/ + ProposalBlacklisted: AugmentedError; + /** + * Proposal does not exist + **/ + ProposalMissing: AugmentedError; + /** + * Vote given for invalid referendum + **/ + ReferendumInvalid: AugmentedError; + /** + * Maximum number of items reached. + **/ + TooMany: AugmentedError; + /** + * Value too low + **/ + ValueLow: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed, either through `unvote` or `reap_vote`. + **/ + VotesExist: AugmentedError; + /** + * Voting period too low + **/ + VotingPeriodLow: AugmentedError; + /** + * Invalid upper bound. + **/ + WrongUpperBound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + electionProviderMultiPhase: { + /** + * Some bound not met + **/ + BoundNotMet: AugmentedError; + /** + * The call is not allowed at this point. + **/ + CallNotAllowed: AugmentedError; + /** + * The fallback failed + **/ + FallbackFailed: AugmentedError; + /** + * `Self::insert_submission` returned an invalid index. + **/ + InvalidSubmissionIndex: AugmentedError; + /** + * Snapshot metadata should exist but didn't. + **/ + MissingSnapshotMetadata: AugmentedError; + /** + * OCW submitted solution for wrong round + **/ + OcwCallWrongEra: AugmentedError; + /** + * Submission was prepared for a different round. + **/ + PreDispatchDifferentRound: AugmentedError; + /** + * Submission was too early. + **/ + PreDispatchEarlySubmission: AugmentedError; + /** + * Submission was too weak, score-wise. + **/ + PreDispatchWeakSubmission: AugmentedError; + /** + * Wrong number of winners presented. + **/ + PreDispatchWrongWinnerCount: AugmentedError; + /** + * The origin failed to pay the deposit. + **/ + SignedCannotPayDeposit: AugmentedError; + /** + * Witness data to dispatchable is invalid. + **/ + SignedInvalidWitness: AugmentedError; + /** + * The queue was full, and the solution was not better than any of the existing ones. + **/ + SignedQueueFull: AugmentedError; + /** + * The signed submission consumes too much weight + **/ + SignedTooMuchWeight: AugmentedError; + /** + * Submitted solution has too many winners + **/ + TooManyWinners: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + elections: { + /** + * Duplicated candidate submission. + **/ + DuplicatedCandidate: AugmentedError; + /** + * Candidate does not have enough funds. + **/ + InsufficientCandidateFunds: AugmentedError; + /** + * The renouncing origin presented a wrong `Renouncing` parameter. + **/ + InvalidRenouncing: AugmentedError; + /** + * Prediction regarding replacement after member removal is wrong. + **/ + InvalidReplacement: AugmentedError; + /** + * The provided count of number of votes is incorrect. + **/ + InvalidVoteCount: AugmentedError; + /** + * The provided count of number of candidates is incorrect. + **/ + InvalidWitnessData: AugmentedError; + /** + * Cannot vote with stake less than minimum balance. + **/ + LowBalance: AugmentedError; + /** + * Cannot vote more than maximum allowed. + **/ + MaximumVotesExceeded: AugmentedError; + /** + * Member cannot re-submit candidacy. + **/ + MemberSubmit: AugmentedError; + /** + * Must be a voter. + **/ + MustBeVoter: AugmentedError; + /** + * Not a member. + **/ + NotMember: AugmentedError; + /** + * Must vote for at least one candidate. + **/ + NoVotes: AugmentedError; + /** + * Runner cannot re-submit candidacy. + **/ + RunnerUpSubmit: AugmentedError; + /** + * Too many candidates have been created. + **/ + TooManyCandidates: AugmentedError; + /** + * Cannot vote more than candidates. + **/ + TooManyVotes: AugmentedError; + /** + * Voter can not pay voting bond. + **/ + UnableToPayBond: AugmentedError; + /** + * Cannot vote when no candidates or members exist. + **/ + UnableToVote: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fastUnstake: { + /** + * The provided un-staker is already in Head, and cannot deregister. + **/ + AlreadyHead: AugmentedError; + /** + * The bonded account has already been queued. + **/ + AlreadyQueued: AugmentedError; + /** + * The call is not allowed at this point because the pallet is not active. + **/ + CallNotAllowed: AugmentedError; + /** + * The provided Controller account was not found. + * + * This means that the given account is not bonded. + **/ + NotController: AugmentedError; + /** + * The bonded account has active unlocking chunks. + **/ + NotFullyBonded: AugmentedError; + /** + * The provided un-staker is not in the `Queue`. + **/ + NotQueued: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + glutton: { + /** + * The pallet was already initialized. + * + * Set `witness_count` to `Some` to bypass this error. + **/ + AlreadyInitialized: AugmentedError; + /** + * The limit was over [`crate::RESOURCE_HARD_LIMIT`]. + **/ + InsaneLimit: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + grandpa: { + /** + * Attempt to signal GRANDPA change with one already pending. + **/ + ChangePending: AugmentedError; + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * An equivocation proof provided as part of an equivocation report is invalid. + **/ + InvalidEquivocationProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Attempt to signal GRANDPA pause when the authority set isn't live + * (either paused or already pending pause). + **/ + PauseFailed: AugmentedError; + /** + * Attempt to signal GRANDPA resume when the authority set isn't paused + * (either live or already pending resume). + **/ + ResumeFailed: AugmentedError; + /** + * Cannot signal forced change so soon after last. + **/ + TooSoon: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + identity: { + /** + * Account ID is already named. + **/ + AlreadyClaimed: AugmentedError; + /** + * The username cannot be unbound because it is already unbinding. + **/ + AlreadyUnbinding: AugmentedError; + /** + * Empty index. + **/ + EmptyIndex: AugmentedError; + /** + * Fee is changed. + **/ + FeeChanged: AugmentedError; + /** + * The action cannot be performed because of insufficient privileges (e.g. authority + * trying to unbind a username provided by the system). + **/ + InsufficientPrivileges: AugmentedError; + /** + * The index is invalid. + **/ + InvalidIndex: AugmentedError; + /** + * Invalid judgement. + **/ + InvalidJudgement: AugmentedError; + /** + * The signature on a username was not valid. + **/ + InvalidSignature: AugmentedError; + /** + * The provided suffix is too long. + **/ + InvalidSuffix: AugmentedError; + /** + * The target is invalid. + **/ + InvalidTarget: AugmentedError; + /** + * The username does not meet the requirements. + **/ + InvalidUsername: AugmentedError; + /** + * The provided judgement was for a different identity. + **/ + JudgementForDifferentIdentity: AugmentedError; + /** + * Judgement given. + **/ + JudgementGiven: AugmentedError; + /** + * Error that occurs when there is an issue paying for judgement. + **/ + JudgementPaymentFailed: AugmentedError; + /** + * The authority cannot allocate any more usernames. + **/ + NoAllocation: AugmentedError; + /** + * No identity found. + **/ + NoIdentity: AugmentedError; + /** + * The username cannot be forcefully removed because it can still be accepted. + **/ + NotExpired: AugmentedError; + /** + * Account isn't found. + **/ + NotFound: AugmentedError; + /** + * Account isn't named. + **/ + NotNamed: AugmentedError; + /** + * Sub-account isn't owned by sender. + **/ + NotOwned: AugmentedError; + /** + * Sender is not a sub-account. + **/ + NotSub: AugmentedError; + /** + * The username cannot be removed because it is not unbinding. + **/ + NotUnbinding: AugmentedError; + /** + * The sender does not have permission to issue a username. + **/ + NotUsernameAuthority: AugmentedError; + /** + * The requested username does not exist. + **/ + NoUsername: AugmentedError; + /** + * Setting this username requires a signature, but none was provided. + **/ + RequiresSignature: AugmentedError; + /** + * Sticky judgement. + **/ + StickyJudgement: AugmentedError; + /** + * The username cannot be removed because it's still in the grace period. + **/ + TooEarly: AugmentedError; + /** + * Maximum amount of registrars reached. Cannot add any more. + **/ + TooManyRegistrars: AugmentedError; + /** + * Too many subs-accounts. + **/ + TooManySubAccounts: AugmentedError; + /** + * The username is already taken. + **/ + UsernameTaken: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + imOnline: { + /** + * Duplicated heartbeat. + **/ + DuplicatedHeartbeat: AugmentedError; + /** + * Non existent public key. + **/ + InvalidKey: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + indices: { + /** + * The index was not available. + **/ + InUse: AugmentedError; + /** + * The index was not already assigned. + **/ + NotAssigned: AugmentedError; + /** + * The index is assigned to another account. + **/ + NotOwner: AugmentedError; + /** + * The source and destination accounts are identical. + **/ + NotTransfer: AugmentedError; + /** + * The index is permanent and may not be freed/changed. + **/ + Permanent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + lottery: { + /** + * A lottery has already ended. + **/ + AlreadyEnded: AugmentedError; + /** + * You are already participating in the lottery with this call. + **/ + AlreadyParticipating: AugmentedError; + /** + * Failed to encode calls + **/ + EncodingFailed: AugmentedError; + /** + * A lottery is already in progress. + **/ + InProgress: AugmentedError; + /** + * The call is not valid for an open lottery. + **/ + InvalidCall: AugmentedError; + /** + * A lottery has not been configured. + **/ + NotConfigured: AugmentedError; + /** + * Too many calls for a single lottery. + **/ + TooManyCalls: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + metaTx: { + /** + * The meta transactions's birth block is ancient. + **/ + AncientBirthBlock: AugmentedError; + /** + * Invalid proof (e.g. signature). + **/ + BadProof: AugmentedError; + /** + * The meta transaction is not yet valid (e.g. nonce too high). + **/ + Future: AugmentedError; + /** + * The meta transaction is invalid. + **/ + Invalid: AugmentedError; + /** + * The meta transaction is outdated (e.g. nonce too low). + **/ + Stale: AugmentedError; + /** + * The transaction extension did not authorize any origin. + **/ + UnknownOrigin: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multiBlockMigrations: { + /** + * The operation cannot complete since some MBMs are ongoing. + **/ + Ongoing: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multisig: { + /** + * Call is already approved by this signatory. + **/ + AlreadyApproved: AugmentedError; + /** + * The data to be stored is already stored. + **/ + AlreadyStored: AugmentedError; + /** + * The maximum weight information provided was too low. + **/ + MaxWeightTooLow: AugmentedError; + /** + * Threshold must be 2 or greater. + **/ + MinimumThreshold: AugmentedError; + /** + * Call doesn't need any (more) approvals. + **/ + NoApprovalsNeeded: AugmentedError; + /** + * Multisig operation not found in storage. + **/ + NotFound: AugmentedError; + /** + * No timepoint was given, yet the multisig operation is already underway. + **/ + NoTimepoint: AugmentedError; + /** + * Only the account that originally created the multisig is able to cancel it or update + * its deposits. + **/ + NotOwner: AugmentedError; + /** + * The sender was contained in the other signatories; it shouldn't be. + **/ + SenderInSignatories: AugmentedError; + /** + * The signatories were provided out of order; they should be ordered. + **/ + SignatoriesOutOfOrder: AugmentedError; + /** + * There are too few signatories in the list. + **/ + TooFewSignatories: AugmentedError; + /** + * There are too many signatories in the list. + **/ + TooManySignatories: AugmentedError; + /** + * A timepoint was given, yet no multisig operation is underway. + **/ + UnexpectedTimepoint: AugmentedError; + /** + * A different timepoint was given to the multisig operation that is underway. + **/ + WrongTimepoint: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nftFractionalization: { + /** + * Asset ID does not correspond to locked NFT. + **/ + IncorrectAssetId: AugmentedError; + /** + * NFT doesn't exist. + **/ + NftNotFound: AugmentedError; + /** + * NFT has not yet been fractionalised. + **/ + NftNotFractionalized: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nfts: { + /** + * The provided Item was already used for claiming. + **/ + AlreadyClaimed: AugmentedError; + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * The approval had a deadline that expired, so the approval isn't valid anymore. + **/ + ApprovalExpired: AugmentedError; + /** + * The provided attribute can't be found. + **/ + AttributeNotFound: AugmentedError; + /** + * The witness data given does not match the current state of the chain. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * Collection ID is already taken. + **/ + CollectionIdInUse: AugmentedError; + /** + * Can't delete non-empty collections. + **/ + CollectionNotEmpty: AugmentedError; + /** + * The deadline has already expired. + **/ + DeadlineExpired: AugmentedError; + /** + * Item's config already exists and should be equal to the provided one. + **/ + InconsistentItemConfig: AugmentedError; + /** + * The provided data is incorrect. + **/ + IncorrectData: AugmentedError; + /** + * The provided metadata might be too long. + **/ + IncorrectMetadata: AugmentedError; + /** + * The item is locked (non-transferable). + **/ + ItemLocked: AugmentedError; + /** + * Items within that collection are non-transferable. + **/ + ItemsNonTransferable: AugmentedError; + /** + * Collection's attributes are locked. + **/ + LockedCollectionAttributes: AugmentedError; + /** + * Collection's metadata is locked. + **/ + LockedCollectionMetadata: AugmentedError; + /** + * Item's attributes are locked. + **/ + LockedItemAttributes: AugmentedError; + /** + * Item's metadata is locked. + **/ + LockedItemMetadata: AugmentedError; + /** + * Can't set more attributes per one call. + **/ + MaxAttributesLimitReached: AugmentedError; + /** + * The max supply is locked and can't be changed. + **/ + MaxSupplyLocked: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less than the number of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * The given item has no metadata set. + **/ + MetadataNotFound: AugmentedError; + /** + * The method is disabled by system settings. + **/ + MethodDisabled: AugmentedError; + /** + * Mint has already ended. + **/ + MintEnded: AugmentedError; + /** + * Mint has not started yet. + **/ + MintNotStarted: AugmentedError; + /** + * Config for a collection or an item can't be found. + **/ + NoConfig: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The provided account is not a delegate. + **/ + NotDelegate: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The item has reached its approval limit. + **/ + ReachedApprovalLimit: AugmentedError; + /** + * Some roles were not cleared. + **/ + RolesNotCleared: AugmentedError; + /** + * The named owner has not signed ownership acceptance of the collection. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * Swap doesn't exist. + **/ + UnknownSwap: AugmentedError; + /** + * The witness data should be provided. + **/ + WitnessRequired: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The duration provided should be less than or equal to `MaxDeadlineDuration`. + **/ + WrongDuration: AugmentedError; + /** + * The provided namespace isn't supported in this call. + **/ + WrongNamespace: AugmentedError; + /** + * The extrinsic was sent by the wrong origin. + **/ + WrongOrigin: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * The provided setting can't be set. + **/ + WrongSetting: AugmentedError; + /** + * The provided signature is incorrect. + **/ + WrongSignature: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nis: { + /** + * The receipt is already communal. + **/ + AlreadyCommunal: AugmentedError; + /** + * There are enough funds for what is required. + **/ + AlreadyFunded: AugmentedError; + /** + * The receipt is already private. + **/ + AlreadyPrivate: AugmentedError; + /** + * The amount of the bid is less than the minimum allowed. + **/ + AmountTooSmall: AugmentedError; + /** + * The queue for the bid's duration is full and the amount bid is too low to get in + * through replacing an existing bid. + **/ + BidTooLow: AugmentedError; + /** + * The duration is the bid is greater than the number of queues. + **/ + DurationTooBig: AugmentedError; + /** + * The duration of the bid is less than one. + **/ + DurationTooSmall: AugmentedError; + /** + * The operation would result in a receipt worth an insignificant value. + **/ + MakesDust: AugmentedError; + /** + * Bond not yet at expiry date. + **/ + NotExpired: AugmentedError; + /** + * Not the owner of the receipt. + **/ + NotOwner: AugmentedError; + /** + * The portion supplied is beyond the value of the receipt. + **/ + PortionTooBig: AugmentedError; + /** + * The thaw throttle has been reached for this period. + **/ + Throttled: AugmentedError; + /** + * Not enough funds are held to pay out. + **/ + Unfunded: AugmentedError; + /** + * The given bid for retraction is not found. + **/ + UnknownBid: AugmentedError; + /** + * Receipt index is unknown. + **/ + UnknownReceipt: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nominationPools: { + /** + * An account is already delegating in another pool. An account may only belong to one + * pool at a time. + **/ + AccountBelongsToOtherPool: AugmentedError; + /** + * The pool or member delegation has already migrated to delegate stake. + **/ + AlreadyMigrated: AugmentedError; + /** + * Bonding extra is restricted to the exact pending reward amount. + **/ + BondExtraRestricted: AugmentedError; + /** + * The pools state cannot be changed. + **/ + CanNotChangeState: AugmentedError; + /** + * None of the funds can be withdrawn yet because the bonding duration has not passed. + **/ + CannotWithdrawAny: AugmentedError; + /** + * The submitted changes to commission change rate are not allowed. + **/ + CommissionChangeRateNotAllowed: AugmentedError; + /** + * Not enough blocks have surpassed since the last commission update. + **/ + CommissionChangeThrottled: AugmentedError; + /** + * The supplied commission exceeds global maximum commission. + **/ + CommissionExceedsGlobalMaximum: AugmentedError; + /** + * The supplied commission exceeds the max allowed commission. + **/ + CommissionExceedsMaximum: AugmentedError; + /** + * Some error occurred that should never happen. This should be reported to the + * maintainers. + **/ + Defensive: AugmentedError; + /** + * The caller does not have adequate permissions. + **/ + DoesNotHavePermission: AugmentedError; + /** + * The member is fully unbonded (and thus cannot access the bonded and reward pool + * anymore to, for example, collect rewards). + **/ + FullyUnbonding: AugmentedError; + /** + * Pool id provided is not correct/usable. + **/ + InvalidPoolId: AugmentedError; + /** + * The pool's max commission cannot be set higher than the existing value. + **/ + MaxCommissionRestricted: AugmentedError; + /** + * Too many members in the pool or system. + **/ + MaxPoolMembers: AugmentedError; + /** + * The system is maxed out on pools. + **/ + MaxPools: AugmentedError; + /** + * The member cannot unbond further chunks due to reaching the limit. + **/ + MaxUnbondingLimit: AugmentedError; + /** + * Metadata exceeds [`Config::MaxMetadataLen`] + **/ + MetadataExceedsMaxLen: AugmentedError; + /** + * The amount does not meet the minimum bond to either join or create a pool. + * + * The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The + * caller does not have nominating permissions for the pool. Members can never unbond to a + * value below `MinJoinBond`. + **/ + MinimumBondNotMet: AugmentedError; + /** + * No commission current has been set. + **/ + NoCommissionCurrentSet: AugmentedError; + /** + * There is no pending commission to claim. + **/ + NoPendingCommission: AugmentedError; + /** + * A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for + * other members to be permissionlessly unbonded. + **/ + NotDestroying: AugmentedError; + /** + * No imbalance in the ED deposit for the pool. + **/ + NothingToAdjust: AugmentedError; + /** + * No slash pending that can be applied to the member. + **/ + NothingToSlash: AugmentedError; + /** + * Either a) the caller cannot make a valid kick or b) the pool is not destroying. + **/ + NotKickerOrDestroying: AugmentedError; + /** + * The pool or member delegation has not migrated yet to delegate stake. + **/ + NotMigrated: AugmentedError; + /** + * The caller does not have nominating permissions for the pool. + **/ + NotNominator: AugmentedError; + /** + * The pool is not open to join + **/ + NotOpen: AugmentedError; + /** + * This call is not allowed in the current state of the pallet. + **/ + NotSupported: AugmentedError; + /** + * The transaction could not be executed due to overflow risk for the pool. + **/ + OverflowRisk: AugmentedError; + /** + * Partial unbonding now allowed permissionlessly. + **/ + PartialUnbondNotAllowedPermissionlessly: AugmentedError; + /** + * Pool id currently in use. + **/ + PoolIdInUse: AugmentedError; + /** + * An account is not a member. + **/ + PoolMemberNotFound: AugmentedError; + /** + * A (bonded) pool id does not exist. + **/ + PoolNotFound: AugmentedError; + /** + * Account is restricted from participation in pools. This may happen if the account is + * staking in another way already. + **/ + Restricted: AugmentedError; + /** + * A reward pool does not exist. In all cases this is a system logic error. + **/ + RewardPoolNotFound: AugmentedError; + /** + * The slash amount is too low to be applied. + **/ + SlashTooLow: AugmentedError; + /** + * A sub pool does not exist. + **/ + SubPoolsNotFound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + poolAssets: { + /** + * The asset-account already exists. + **/ + AlreadyExists: AugmentedError; + /** + * The asset is not live, and likely being destroyed. + **/ + AssetNotLive: AugmentedError; + /** + * The asset ID must be equal to the [`NextAssetId`]. + **/ + BadAssetId: AugmentedError; + /** + * Invalid metadata given. + **/ + BadMetadata: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * Account balance must be greater than or equal to the transfer amount. + **/ + BalanceLow: AugmentedError; + /** + * Callback action resulted in error + **/ + CallbackFailed: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain freezes. + **/ + ContainsFreezes: AugmentedError; + /** + * The asset cannot be destroyed because some accounts for this asset contain holds. + **/ + ContainsHolds: AugmentedError; + /** + * The origin account is frozen. + **/ + Frozen: AugmentedError; + /** + * The asset status is not the expected status. + **/ + IncorrectStatus: AugmentedError; + /** + * The asset ID is already taken. + **/ + InUse: AugmentedError; + /** + * The asset is a live asset and is actively being used. Usually emit for operations such + * as `start_destroy` which require the asset to be in a destroying state. + **/ + LiveAsset: AugmentedError; + /** + * Minimum balance should be non-zero. + **/ + MinBalanceZero: AugmentedError; + /** + * The account to alter does not exist. + **/ + NoAccount: AugmentedError; + /** + * The asset-account doesn't have an associated deposit. + **/ + NoDeposit: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * The asset should be frozen before the given operation. + **/ + NotFrozen: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * Unable to increment the consumer reference counters on the account. Either no provider + * reference exists to allow a non-zero balance of a non-self-sufficient asset, or one + * fewer then the maximum number of consumers has been reached. + **/ + UnavailableConsumer: AugmentedError; + /** + * The given asset ID is unknown. + **/ + Unknown: AugmentedError; + /** + * The operation would result in funds being burned. + **/ + WouldBurn: AugmentedError; + /** + * The source account would not survive the transfer and it needs to stay alive. + **/ + WouldDie: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + preimage: { + /** + * Preimage has already been noted on-chain. + **/ + AlreadyNoted: AugmentedError; + /** + * The user is not authorized to perform this action. + **/ + NotAuthorized: AugmentedError; + /** + * The preimage cannot be removed since it has not yet been noted. + **/ + NotNoted: AugmentedError; + /** + * The preimage request cannot be removed since no outstanding requests exist. + **/ + NotRequested: AugmentedError; + /** + * A preimage may not be removed when there are outstanding requests. + **/ + Requested: AugmentedError; + /** + * Preimage is too large to store on-chain. + **/ + TooBig: AugmentedError; + /** + * Too few hashes were requested to be upgraded (i.e. zero). + **/ + TooFew: AugmentedError; + /** + * More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once. + **/ + TooMany: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proxy: { + /** + * Account is already a proxy. + **/ + Duplicate: AugmentedError; + /** + * Call may not be made by proxy because it may escalate its privileges. + **/ + NoPermission: AugmentedError; + /** + * Cannot add self as proxy. + **/ + NoSelfProxy: AugmentedError; + /** + * Proxy registration not found. + **/ + NotFound: AugmentedError; + /** + * Sender is not a proxy of the account to be proxied. + **/ + NotProxy: AugmentedError; + /** + * There are too many proxies registered or too many announcements pending. + **/ + TooMany: AugmentedError; + /** + * Announcement, if made at all, was made too recently. + **/ + Unannounced: AugmentedError; + /** + * A call which is incompatible with the proxy type's filter was attempted. + **/ + Unproxyable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + rankedCollective: { + /** + * Account is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Unexpected error in state. + **/ + Corruption: AugmentedError; + /** + * The information provided is incorrect. + **/ + InvalidWitness: AugmentedError; + /** + * There are no further records to be removed. + **/ + NoneRemaining: AugmentedError; + /** + * The origin is not sufficiently privileged to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Account is not a member. + **/ + NotMember: AugmentedError; + /** + * The given poll index is unknown or has closed. + **/ + NotPolling: AugmentedError; + /** + * The given poll is still ongoing. + **/ + Ongoing: AugmentedError; + /** + * The member's rank is too low to vote. + **/ + RankTooLow: AugmentedError; + /** + * The new member to exchange is the same as the old member + **/ + SameMember: AugmentedError; + /** + * The max member count for the rank has been reached. + **/ + TooManyMembers: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + rankedPolls: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + recovery: { + /** + * This account is already set up for recovery + **/ + AlreadyProxy: AugmentedError; + /** + * This account is already set up for recovery + **/ + AlreadyRecoverable: AugmentedError; + /** + * A recovery process has already started for this account + **/ + AlreadyStarted: AugmentedError; + /** + * This user has already vouched for this recovery + **/ + AlreadyVouched: AugmentedError; + /** + * Some internal state is broken. + **/ + BadState: AugmentedError; + /** + * The friend must wait until the delay period to vouch for this recovery + **/ + DelayPeriod: AugmentedError; + /** + * Friends list must be less than max friends + **/ + MaxFriends: AugmentedError; + /** + * User is not allowed to make a call on behalf of this account + **/ + NotAllowed: AugmentedError; + /** + * Friends list must be greater than zero and threshold + **/ + NotEnoughFriends: AugmentedError; + /** + * This account is not a friend who can vouch + **/ + NotFriend: AugmentedError; + /** + * This account is not set up for recovery + **/ + NotRecoverable: AugmentedError; + /** + * Friends list must be sorted and free of duplicates + **/ + NotSorted: AugmentedError; + /** + * A recovery process has not started for this rescuer + **/ + NotStarted: AugmentedError; + /** + * There are still active recovery attempts that need to be closed + **/ + StillActive: AugmentedError; + /** + * The threshold for recovering this account has not been met + **/ + Threshold: AugmentedError; + /** + * Threshold must be greater than zero + **/ + ZeroThreshold: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + referenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + remark: { + /** + * Attempted to call `store` outside of block execution. + **/ + BadContext: AugmentedError; + /** + * Attempting to store empty data. + **/ + Empty: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + revive: { + /** + * Tried to map an account that is already mapped. + **/ + AccountAlreadyMapped: AugmentedError; + /** + * An `AccountID32` account tried to interact with the pallet without having a mapping. + * + * Call [`Pallet::map_account`] in order to create a mapping for the account. + **/ + AccountUnmapped: AugmentedError; + /** + * Failed to convert a U256 to a Balance. + **/ + BalanceConversionFailed: AugmentedError; + /** + * The program contains a basic block that is larger than allowed. + **/ + BasicBlockTooLarge: AugmentedError; + /** + * The code blob supplied is larger than [`limits::code::BLOB_BYTES`]. + **/ + BlobTooLarge: AugmentedError; + /** + * Can not add a delegate dependency to the code hash of the contract itself. + **/ + CannotAddSelfAsDelegateDependency: AugmentedError; + /** + * No code info could be found at the supplied code hash. + **/ + CodeInfoNotFound: AugmentedError; + /** + * Code removal was denied because the code is still in use by at least one contract. + **/ + CodeInUse: AugmentedError; + /** + * No code could be found at the supplied code hash. + **/ + CodeNotFound: AugmentedError; + /** + * The contract failed to compile or is missing the correct entry points. + * + * A more detailed error can be found on the node console if debug messages are enabled + * by supplying `-lruntime::revive=debug`. + **/ + CodeRejected: AugmentedError; + /** + * No contract was found at the specified address. + **/ + ContractNotFound: AugmentedError; + /** + * The contract ran to completion but decided to revert its storage changes. + * Please note that this error is only returned from extrinsics. When called directly + * or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags + * to determine whether a reversion has taken place. + **/ + ContractReverted: AugmentedError; + /** + * Contract trapped during execution. + **/ + ContractTrapped: AugmentedError; + /** + * Failed to convert an EVM balance to a native balance. + **/ + DecimalPrecisionLoss: AugmentedError; + /** + * Input passed to a contract API function failed to decode as expected type. + **/ + DecodingFailed: AugmentedError; + /** + * The contract already depends on the given delegate dependency. + **/ + DelegateDependencyAlreadyExists: AugmentedError; + /** + * The dependency was not found in the contract's delegate dependencies. + **/ + DelegateDependencyNotFound: AugmentedError; + /** + * A contract with the same AccountId already exists. + **/ + DuplicateContract: AugmentedError; + /** + * PolkaVM failed during code execution. Probably due to a malformed program. + **/ + ExecutionFailed: AugmentedError; + /** + * `seal_call` forwarded this contracts input. It therefore is no longer available. + **/ + InputForwarded: AugmentedError; + /** + * Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`. + **/ + InvalidCallFlags: AugmentedError; + /** + * The transaction used to dry-run a contract is invalid. + **/ + InvalidGenericTransaction: AugmentedError; + /** + * Immutable data can only be set during deploys and only be read during calls. + * Additionally, it is only valid to set the data once and it must not be empty. + **/ + InvalidImmutableAccess: AugmentedError; + /** + * The program contains an invalid instruction. + **/ + InvalidInstruction: AugmentedError; + /** + * Invalid schedule supplied, e.g. with zero weight of a basic operation. + **/ + InvalidSchedule: AugmentedError; + /** + * Invalid storage flags were passed to one of the storage syscalls. + **/ + InvalidStorageFlags: AugmentedError; + /** + * The contract tried to call a syscall which does not exist (at its current api level). + **/ + InvalidSyscall: AugmentedError; + /** + * Performing a call was denied because the calling depth reached the limit + * of what is specified in the schedule. + **/ + MaxCallDepthReached: AugmentedError; + /** + * The contract has reached its maximum number of delegate dependencies. + **/ + MaxDelegateDependenciesReached: AugmentedError; + /** + * The chain does not provide a chain extension. Calling the chain extension results + * in this error. Note that this usually shouldn't happen as deploying such contracts + * is rejected. + **/ + NoChainExtension: AugmentedError; + /** + * A buffer outside of sandbox memory was passed to a contract API function. + **/ + OutOfBounds: AugmentedError; + /** + * The executed contract exhausted its gas limit. + **/ + OutOfGas: AugmentedError; + /** + * Can not add more data to transient storage. + **/ + OutOfTransientStorage: AugmentedError; + /** + * Precompile Error + **/ + PrecompileFailure: AugmentedError; + /** + * A contract called into the runtime which then called back into this pallet. + **/ + ReenteredPallet: AugmentedError; + /** + * A call tried to invoke a contract that is flagged as non-reentrant. + **/ + ReentranceDenied: AugmentedError; + /** + * The refcount of a code either over or underflowed. + **/ + RefcountOverOrUnderflow: AugmentedError; + /** + * A contract attempted to invoke a state modifying API while being in read-only mode. + **/ + StateChangeDenied: AugmentedError; + /** + * The static memory consumption of the blob will be larger than + * [`limits::code::STATIC_MEMORY_BYTES`]. + **/ + StaticMemoryTooLarge: AugmentedError; + /** + * More storage was created than allowed by the storage deposit limit. + **/ + StorageDepositLimitExhausted: AugmentedError; + /** + * Origin doesn't have enough balance to pay the required storage deposits. + **/ + StorageDepositNotEnoughFunds: AugmentedError; + /** + * A contract self destructed in its constructor. + * + * This can be triggered by a call to `seal_terminate`. + **/ + TerminatedInConstructor: AugmentedError; + /** + * Termination of a contract is not allowed while the contract is already + * on the call stack. Can be triggered by `seal_terminate`. + **/ + TerminatedWhileReentrant: AugmentedError; + /** + * The amount of topics passed to `seal_deposit_events` exceeds the limit. + **/ + TooManyTopics: AugmentedError; + /** + * Performing the requested transfer failed. Probably because there isn't enough + * free balance in the sender's account. + **/ + TransferFailed: AugmentedError; + /** + * Unsupported precompile address + **/ + UnsupportedPrecompileAddress: AugmentedError; + /** + * The size defined in `T::MaxValueSize` was exceeded. + **/ + ValueTooLarge: AugmentedError; + /** + * Failed to decode the XCM program. + **/ + XCMDecodeFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + safeMode: { + /** + * The account already has a deposit reserved and can therefore not enter or extend again. + **/ + AlreadyDeposited: AugmentedError; + /** + * This deposit cannot be released yet. + **/ + CannotReleaseYet: AugmentedError; + /** + * An error from the underlying `Currency`. + **/ + CurrencyError: AugmentedError; + /** + * The safe-mode is (already or still) entered. + **/ + Entered: AugmentedError; + /** + * The safe-mode is (already or still) exited. + **/ + Exited: AugmentedError; + /** + * There is no balance reserved. + **/ + NoDeposit: AugmentedError; + /** + * This functionality of the pallet is disabled by the configuration. + **/ + NotConfigured: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + salary: { + /** + * The account is already inducted. + **/ + AlreadyInducted: AugmentedError; + /** + * The salary system has already been started. + **/ + AlreadyStarted: AugmentedError; + /** + * There is no budget left for the payout. + **/ + Bankrupt: AugmentedError; + /** + * The member's claim is zero. + **/ + ClaimZero: AugmentedError; + /** + * The payment has neither failed nor succeeded yet. + **/ + Inconclusive: AugmentedError; + /** + * The member does not have a current valid claim. + **/ + NoClaim: AugmentedError; + /** + * The cycle is after that in which the payment was made. + **/ + NotCurrent: AugmentedError; + NotInducted: AugmentedError; + /** + * The account is not a ranked member. + **/ + NotMember: AugmentedError; + /** + * The payout cycles have not yet started. + **/ + NotStarted: AugmentedError; + /** + * Cycle is not yet over. + **/ + NotYet: AugmentedError; + /** + * There was some issue with the mechanism of payment. + **/ + PayError: AugmentedError; + /** + * Current cycle's payment period is not yet begun. + **/ + TooEarly: AugmentedError; + /** + * Current cycle's registration period is over. + **/ + TooLate: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + scheduler: { + /** + * Failed to schedule a call + **/ + FailedToSchedule: AugmentedError; + /** + * Attempt to use a non-named function on a named task. + **/ + Named: AugmentedError; + /** + * Cannot find the scheduled call. + **/ + NotFound: AugmentedError; + /** + * Reschedule failed because it does not change scheduled time. + **/ + RescheduleNoChange: AugmentedError; + /** + * Given target block number is in the past. + **/ + TargetBlockNumberInPast: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + society: { + /** + * User has already made a bid. + **/ + AlreadyBid: AugmentedError; + /** + * User is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * The member is already elevated to this rank. + **/ + AlreadyElevated: AugmentedError; + /** + * Society already founded. + **/ + AlreadyFounded: AugmentedError; + /** + * User is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * The skeptic has already been punished for this offence. + **/ + AlreadyPunished: AugmentedError; + /** + * Member is already vouching or banned from vouching again. + **/ + AlreadyVouching: AugmentedError; + /** + * The candidacy cannot be dropped as the candidate was clearly approved. + **/ + Approved: AugmentedError; + /** + * The skeptic need not vote on candidates from expired rounds. + **/ + Expired: AugmentedError; + /** + * Cannot remove the founder. + **/ + Founder: AugmentedError; + /** + * Cannot remove the head of the chain. + **/ + Head: AugmentedError; + /** + * The candidacy cannot be concluded as the voting is still in progress. + **/ + InProgress: AugmentedError; + /** + * Funds are insufficient to pay off society debts. + **/ + InsufficientFunds: AugmentedError; + /** + * Not enough in pot to accept candidate. + **/ + InsufficientPot: AugmentedError; + /** + * Too many members in the society. + **/ + MaxMembers: AugmentedError; + /** + * There is no defender currently. + **/ + NoDefender: AugmentedError; + /** + * Nothing to payout. + **/ + NoPayout: AugmentedError; + /** + * The membership cannot be claimed as the candidate was not clearly approved. + **/ + NotApproved: AugmentedError; + /** + * User is not a bidder. + **/ + NotBidder: AugmentedError; + /** + * User is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * The caller is not the founder. + **/ + NotFounder: AugmentedError; + /** + * Group doesn't exist. + **/ + NotGroup: AugmentedError; + /** + * The caller is not the head. + **/ + NotHead: AugmentedError; + /** + * User is not a member. + **/ + NotMember: AugmentedError; + /** + * The candidate cannot be kicked as the candidate was not clearly rejected. + **/ + NotRejected: AugmentedError; + /** + * User is not suspended. + **/ + NotSuspended: AugmentedError; + /** + * Member is not vouching. + **/ + NotVouchingOnBidder: AugmentedError; + /** + * The candidate/defender has no stale votes to remove. + **/ + NoVotes: AugmentedError; + /** + * The candidacy cannot be bestowed as the candidate was clearly rejected. + **/ + Rejected: AugmentedError; + /** + * User is suspended. + **/ + Suspended: AugmentedError; + /** + * The candidacy cannot be pruned until a full additional intake period has passed. + **/ + TooEarly: AugmentedError; + /** + * The skeptic already voted. + **/ + Voted: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + staking: { + /** + * Stash is already bonded. + **/ + AlreadyBonded: AugmentedError; + /** + * Rewards for this era have already been claimed for this validator. + **/ + AlreadyClaimed: AugmentedError; + /** + * The stake of this account is already migrated to `Fungible` holds. + **/ + AlreadyMigrated: AugmentedError; + /** + * Controller is already paired. + **/ + AlreadyPaired: AugmentedError; + /** + * Internal state has become somehow corrupted and the operation cannot continue. + **/ + BadState: AugmentedError; + /** + * A nomination target was supplied that was blocked or otherwise not a validator. + **/ + BadTarget: AugmentedError; + /** + * Some bound is not met. + **/ + BoundNotMet: AugmentedError; + /** + * The user has enough bond and thus cannot be chilled forcefully by an external person. + **/ + CannotChillOther: AugmentedError; + /** + * Stash could not be reaped as other pallet might depend on it. + **/ + CannotReapStash: AugmentedError; + /** + * Cannot reset a ledger. + **/ + CannotRestoreLedger: AugmentedError; + /** + * Commission is too low. Must be at least `MinCommission`. + **/ + CommissionTooLow: AugmentedError; + /** + * Used when attempting to use deprecated controller account logic. + **/ + ControllerDeprecated: AugmentedError; + /** + * Duplicate index. + **/ + DuplicateIndex: AugmentedError; + /** + * Targets cannot be empty. + **/ + EmptyTargets: AugmentedError; + /** + * Attempting to target a stash that still has funds. + **/ + FundedTarget: AugmentedError; + /** + * Incorrect previous history depth input provided. + **/ + IncorrectHistoryDepth: AugmentedError; + /** + * Incorrect number of slashing spans provided. + **/ + IncorrectSlashingSpans: AugmentedError; + /** + * Cannot have a validator or nominator role, with value less than the minimum defined by + * governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the + * intention, `chill` first to remove one's role as validator/nominator. + **/ + InsufficientBond: AugmentedError; + /** + * Invalid era to reward. + **/ + InvalidEraToReward: AugmentedError; + /** + * Invalid number of nominations. + **/ + InvalidNumberOfNominations: AugmentedError; + /** + * No nominators exist on this page. + **/ + InvalidPage: AugmentedError; + /** + * Slash record index out of bounds. + **/ + InvalidSlashIndex: AugmentedError; + /** + * Can not schedule more unlock chunks. + **/ + NoMoreChunks: AugmentedError; + /** + * Not a controller account. + **/ + NotController: AugmentedError; + /** + * Not enough funds available to withdraw. + **/ + NotEnoughFunds: AugmentedError; + /** + * Items are not sorted and unique. + **/ + NotSortedAndUnique: AugmentedError; + /** + * Not a stash account. + **/ + NotStash: AugmentedError; + /** + * Can not rebond without unlocking chunks. + **/ + NoUnlockChunk: AugmentedError; + /** + * Account is restricted from participation in staking. This may happen if the account is + * staking in another way already, such as via pool. + **/ + Restricted: AugmentedError; + /** + * Provided reward destination is not allowed. + **/ + RewardDestinationRestricted: AugmentedError; + /** + * There are too many nominators in the system. Governance needs to adjust the staking + * settings to keep things safe for the runtime. + **/ + TooManyNominators: AugmentedError; + /** + * Too many nomination targets supplied. + **/ + TooManyTargets: AugmentedError; + /** + * There are too many validator candidates in the system. Governance needs to adjust the + * staking settings to keep things safe for the runtime. + **/ + TooManyValidators: AugmentedError; + /** + * Operation not allowed for virtual stakers. + **/ + VirtualStakerNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + stateTrieMigration: { + /** + * Bad child root provided. + **/ + BadChildRoot: AugmentedError; + /** + * Bad witness data provided. + **/ + BadWitness: AugmentedError; + /** + * A key was longer than the configured maximum. + * + * This means that the migration halted at the current [`Progress`] and + * can be resumed with a larger [`crate::Config::MaxKeyLen`] value. + * Retrying with the same [`crate::Config::MaxKeyLen`] value will not work. + * The value should only be increased to avoid a storage migration for the currently + * stored [`crate::Progress::LastKey`]. + **/ + KeyTooLong: AugmentedError; + /** + * Max signed limits not respected. + **/ + MaxSignedLimits: AugmentedError; + /** + * submitter does not have enough funds. + **/ + NotEnoughFunds: AugmentedError; + /** + * Signed migration is not allowed because the maximum limit is not set yet. + **/ + SignedMigrationNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + sudo: { + /** + * Sender must be the Sudo account. + **/ + RequireSudo: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + tasksExample: { + /** + * The referenced task was not found. + **/ + NotFound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + technicalCommittee: { + /** + * Members are already initialized! + **/ + AlreadyInitialized: AugmentedError; + /** + * Duplicate proposals not allowed + **/ + DuplicateProposal: AugmentedError; + /** + * Duplicate vote ignored + **/ + DuplicateVote: AugmentedError; + /** + * Account is not a member + **/ + NotMember: AugmentedError; + /** + * Prime account is not a member + **/ + PrimeAccountNotMember: AugmentedError; + /** + * Proposal is still active. + **/ + ProposalActive: AugmentedError; + /** + * Proposal must exist + **/ + ProposalMissing: AugmentedError; + /** + * The close call was made too early, before the end of the voting. + **/ + TooEarly: AugmentedError; + /** + * There can only be a maximum of `MaxProposals` active proposals. + **/ + TooManyProposals: AugmentedError; + /** + * Mismatched index + **/ + WrongIndex: AugmentedError; + /** + * The given length bound for the proposal was too low. + **/ + WrongProposalLength: AugmentedError; + /** + * The given weight bound for the proposal was too low. + **/ + WrongProposalWeight: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + technicalMembership: { + /** + * Already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Not a member. + **/ + NotMember: AugmentedError; + /** + * Too many members. + **/ + TooManyMembers: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + tips: { + /** + * The tip was already found/started. + **/ + AlreadyKnown: AugmentedError; + /** + * The tip given was too generous. + **/ + MaxTipAmountExceeded: AugmentedError; + /** + * The account attempting to retract the tip is not the finder of the tip. + **/ + NotFinder: AugmentedError; + /** + * The tip cannot be claimed/closed because it's still in the countdown period. + **/ + Premature: AugmentedError; + /** + * The reason given is just too big. + **/ + ReasonTooBig: AugmentedError; + /** + * The tip cannot be claimed/closed because there are not enough tippers yet. + **/ + StillOpen: AugmentedError; + /** + * The tip hash is unknown. + **/ + UnknownTip: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + transactionStorage: { + /** + * Attempted to call `store` outside of block execution. + **/ + BadContext: AugmentedError; + /** + * Double proof check in the block. + **/ + DoubleCheck: AugmentedError; + /** + * Attempting to store empty transaction + **/ + EmptyTransaction: AugmentedError; + /** + * Proof failed verification. + **/ + InvalidProof: AugmentedError; + /** + * Missing storage proof. + **/ + MissingProof: AugmentedError; + /** + * Unable to verify proof because state data is missing. + **/ + MissingStateData: AugmentedError; + /** + * Invalid configuration. + **/ + NotConfigured: AugmentedError; + /** + * Storage proof was not checked in the block. + **/ + ProofNotChecked: AugmentedError; + /** + * Renewed extrinsic is not found. + **/ + RenewedNotFound: AugmentedError; + /** + * Too many transactions in the block. + **/ + TooManyTransactions: AugmentedError; + /** + * Transaction is too large. + **/ + TransactionTooLarge: AugmentedError; + /** + * Proof was not expected in this block. + **/ + UnexpectedProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + treasury: { + /** + * The payment has already been attempted. + **/ + AlreadyAttempted: AugmentedError; + /** + * The spend is not yet eligible for payout. + **/ + EarlyPayout: AugmentedError; + /** + * The balance of the asset kind is not convertible to the balance of the native asset. + **/ + FailedToConvertBalance: AugmentedError; + /** + * The payment has neither failed nor succeeded yet. + **/ + Inconclusive: AugmentedError; + /** + * The spend origin is valid but the amount it is allowed to spend is lower than the + * amount to be spent. + **/ + InsufficientPermission: AugmentedError; + /** + * No proposal, bounty or spend at that index. + **/ + InvalidIndex: AugmentedError; + /** + * The payout was not yet attempted/claimed. + **/ + NotAttempted: AugmentedError; + /** + * There was some issue with the mechanism of payment. + **/ + PayoutError: AugmentedError; + /** + * Proposal has not been approved. + **/ + ProposalNotApproved: AugmentedError; + /** + * The spend has expired and cannot be claimed. + **/ + SpendExpired: AugmentedError; + /** + * Too many approvals in the queue. + **/ + TooManyApprovals: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + txPause: { + /** + * The call is paused. + **/ + IsPaused: AugmentedError; + /** + * The call is unpaused. + **/ + IsUnpaused: AugmentedError; + NotFound: AugmentedError; + /** + * The call is whitelisted and cannot be paused. + **/ + Unpausable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + uniques: { + /** + * The item ID has already been used for an item. + **/ + AlreadyExists: AugmentedError; + /** + * Invalid witness data given. + **/ + BadWitness: AugmentedError; + /** + * The provided bid is too low. + **/ + BidTooLow: AugmentedError; + /** + * The item or collection is frozen. + **/ + Frozen: AugmentedError; + /** + * The item ID is already taken. + **/ + InUse: AugmentedError; + /** + * The item is locked. + **/ + Locked: AugmentedError; + /** + * The max supply has already been set. + **/ + MaxSupplyAlreadySet: AugmentedError; + /** + * All items have been minted. + **/ + MaxSupplyReached: AugmentedError; + /** + * The provided max supply is less to the amount of items a collection already has. + **/ + MaxSupplyTooSmall: AugmentedError; + /** + * There is no delegate approved. + **/ + NoDelegate: AugmentedError; + /** + * The signing account has no permission to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Item is not for sale. + **/ + NotForSale: AugmentedError; + /** + * The named owner has not signed ownership of the collection is acceptable. + **/ + Unaccepted: AugmentedError; + /** + * No approval exists that would allow the transfer. + **/ + Unapproved: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownCollection: AugmentedError; + /** + * The given item ID is unknown. + **/ + UnknownItem: AugmentedError; + /** + * The delegate turned out to be different to what was expected. + **/ + WrongDelegate: AugmentedError; + /** + * The owner turned out to be different to what was expected. + **/ + WrongOwner: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + utility: { + /** + * Too many calls batched. + **/ + TooManyCalls: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + vesting: { + /** + * Amount being transferred is too low to create a vesting schedule. + **/ + AmountLow: AugmentedError; + /** + * The account already has `MaxVestingSchedules` count of schedules and thus + * cannot add another one. Consider merging existing schedules in order to add another. + **/ + AtMaxVestingSchedules: AugmentedError; + /** + * Failed to create a new schedule because some parameter was invalid. + **/ + InvalidScheduleParams: AugmentedError; + /** + * The account given is not vesting. + **/ + NotVesting: AugmentedError; + /** + * An index was out of bounds of the vesting schedules. + **/ + ScheduleIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + voterList: { + /** + * A error in the list interface implementation. + **/ + List: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + whitelist: { + /** + * The call was already whitelisted; No-Op. + **/ + CallAlreadyWhitelisted: AugmentedError; + /** + * The call was not whitelisted. + **/ + CallIsNotWhitelisted: AugmentedError; + /** + * The weight of the decoded call was higher than the witness. + **/ + InvalidCallWeightWitness: AugmentedError; + /** + * The preimage of the call hash could not be loaded. + **/ + UnavailablePreImage: AugmentedError; + /** + * The call could not be decoded. + **/ + UndecodableCall: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/packages/api-augment/src/bizinikiwi/events.ts b/packages/api-augment/src/bizinikiwi/events.ts new file mode 100644 index 0000000..a879ae7 --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/events.ts @@ -0,0 +1,2889 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/events'; + +import type { ApiTypes, AugmentedEvent } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, Perbill, Permill, Perquintill } from '@pezkuwi/types/interfaces/runtime'; +import type { KitchensinkRuntimeOriginCaller, KitchensinkRuntimeProxyType, KitchensinkRuntimeRuntimeParametersKey, KitchensinkRuntimeRuntimeParametersValue, PezframeSupportDispatchPostDispatchInfo, PezframeSupportMessagesProcessMessageError, PezframeSupportPreimagesBounded, PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensMiscBalanceStatus, PezframeSystemDispatchEventInfo, PezpalletAllianceCid, PezpalletAllianceUnscrupulousItem, PezpalletBrokerCoretimeInterfaceCoreAssignment, PezpalletBrokerRegionId, PezpalletBrokerScheduleItem, PezpalletContractsOrigin, PezpalletConvictionVotingTally, PezpalletConvictionVotingVoteAccountVote, PezpalletCoreFellowshipParamsTypeU128, PezpalletCoreFellowshipWish, PezpalletDemocracyMetadataOwner, PezpalletDemocracyVoteAccountVote, PezpalletDemocracyVoteThreshold, PezpalletElectionProviderMultiPhaseElectionCompute, PezpalletElectionProviderMultiPhasePhase, PezpalletImOnlineSr25519AppSr25519Public, PezpalletMultisigTimepoint, PezpalletNftsAttributeNamespace, PezpalletNftsPezpalletAttributes, PezpalletNftsPriceWithDirection, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsPoolState, PezpalletProxyDepositKind, PezpalletRankedCollectiveTally, PezpalletRankedCollectiveVoteRecord, PezpalletSafeModeExitReason, PezpalletSocietyGroupParams, PezpalletStakingForcing, PezpalletStakingRewardDestination, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationError, PezpalletStateTrieMigrationMigrationCompute, PezspConsensusGrandpaAppPublic, PezspNposElectionsElectionScore, PezspRuntimeDispatchError, PezspRuntimeDispatchErrorWithPostInfo, PezspStatementStoreStatement, PezspWeightsWeightV2Weight } from '@pezkuwi/types/lookup'; + +export type __AugmentedEvent = AugmentedEvent; + +declare module '@pezkuwi/api-base/types/events' { + interface AugmentedEvents { + alliance: { + /** + * Alliance disbanded. Includes number deleted members and unreserved deposits. + **/ + AllianceDisbanded: AugmentedEvent; + /** + * An ally has been elevated to Fellow. + **/ + AllyElevated: AugmentedEvent; + /** + * A new announcement has been proposed. + **/ + Announced: AugmentedEvent; + /** + * An on-chain announcement has been removed. + **/ + AnnouncementRemoved: AugmentedEvent; + /** + * A Fellow abdicated their voting rights. They are now an Ally. + **/ + FellowAbdicated: AugmentedEvent; + /** + * A member has been kicked out with its deposit slashed. + **/ + MemberKicked: AugmentedEvent], { member: AccountId32, slashed: Option }>; + /** + * A member has retired with its deposit unreserved. + **/ + MemberRetired: AugmentedEvent], { member: AccountId32, unreserved: Option }>; + /** + * A member gave retirement notice and their retirement period started. + **/ + MemberRetirementPeriodStarted: AugmentedEvent; + /** + * Some accounts have been initialized as members (fellows/allies). + **/ + MembersInitialized: AugmentedEvent, allies: Vec], { fellows: Vec, allies: Vec }>; + /** + * An account has been added as an Ally and reserved its deposit. + **/ + NewAllyJoined: AugmentedEvent, reserved: Option], { ally: AccountId32, nominator: Option, reserved: Option }>; + /** + * A new rule has been set. + **/ + NewRuleSet: AugmentedEvent; + /** + * Accounts or websites have been added into the list of unscrupulous items. + **/ + UnscrupulousItemAdded: AugmentedEvent], { items: Vec }>; + /** + * Accounts or websites have been removed from the list of unscrupulous items. + **/ + UnscrupulousItemRemoved: AugmentedEvent], { items: Vec }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + allianceMotion: { + /** + * A motion was approved by the required threshold. + **/ + Approved: AugmentedEvent; + /** + * A proposal was closed because its threshold was reached or after its duration was up. + **/ + Closed: AugmentedEvent; + /** + * A motion was not approved by the required threshold. + **/ + Disapproved: AugmentedEvent; + /** + * A motion was executed; result will be `Ok` if it returned without error. + **/ + Executed: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A proposal was killed. + **/ + Killed: AugmentedEvent; + /** + * A single member did some action; result will be `Ok` if it returned without error. + **/ + MemberExecuted: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * Some cost for storing a proposal was burned. + **/ + ProposalCostBurned: AugmentedEvent; + /** + * Some cost for storing a proposal was released. + **/ + ProposalCostReleased: AugmentedEvent; + /** + * A motion (given hash) has been proposed (by given account) with a threshold (given + * `MemberCount`). + **/ + Proposed: AugmentedEvent; + /** + * A motion (given hash) has been voted on by given account, leaving + * a tally (yes votes and no votes given respectively as `MemberCount`). + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetConversion: { + /** + * A successful call of the `AddLiquidity` extrinsic will create this event. + **/ + LiquidityAdded: AugmentedEvent, amount1Provided: u128, amount2Provided: u128, lpToken: u32, lpTokenMinted: u128], { who: AccountId32, mintTo: AccountId32, poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>, amount1Provided: u128, amount2Provided: u128, lpToken: u32, lpTokenMinted: u128 }>; + /** + * A successful call of the `RemoveLiquidity` extrinsic will create this event. + **/ + LiquidityRemoved: AugmentedEvent, amount1: u128, amount2: u128, lpToken: u32, lpTokenBurned: u128, withdrawalFee: Permill], { who: AccountId32, withdrawTo: AccountId32, poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>, amount1: u128, amount2: u128, lpToken: u32, lpTokenBurned: u128, withdrawalFee: Permill }>; + /** + * A successful call of the `CreatePool` extrinsic will create this event. + **/ + PoolCreated: AugmentedEvent, poolAccount: AccountId32, lpToken: u32], { creator: AccountId32, poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>, poolAccount: AccountId32, lpToken: u32 }>; + /** + * Assets have been converted from one to another. + **/ + SwapCreditExecuted: AugmentedEvent>], { amountIn: u128, amountOut: u128, path: Vec> }>; + /** + * Assets have been converted from one to another. Both `SwapExactTokenForToken` + * and `SwapTokenForExactToken` will generate this event. + **/ + SwapExecuted: AugmentedEvent>], { who: AccountId32, sendTo: AccountId32, amountIn: u128, amountOut: u128, path: Vec> }>; + /** + * Pool has been touched in order to fulfill operational requirements. + **/ + Touched: AugmentedEvent, who: AccountId32], { poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>, who: AccountId32 }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetConversionMigration: { + /** + * Indicates that a pool has been migrated to the new account ID. + **/ + MigratedToNewAccount: AugmentedEvent, priorAccount: AccountId32, newAccount: AccountId32], { poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>, priorAccount: AccountId32, newAccount: AccountId32 }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetConversionTxPayment: { + /** + * A swap of the refund in native currency back to asset failed. + **/ + AssetRefundFailed: AugmentedEvent; + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who` in an asset `asset_id`. + **/ + AssetTxFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetRate: { + AssetRateCreated: AugmentedEvent; + AssetRateRemoved: AugmentedEvent; + AssetRateUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetRewards: { + /** + * A pool admin was modified. + **/ + PoolAdminModified: AugmentedEvent; + /** + * A pool information was cleared after it's completion. + **/ + PoolCleanedUp: AugmentedEvent; + /** + * A new reward pool was created. + **/ + PoolCreated: AugmentedEvent; + /** + * A pool expiry block was modified by the admin. + **/ + PoolExpiryBlockModified: AugmentedEvent; + /** + * A pool reward rate was modified by the admin. + **/ + PoolRewardRateModified: AugmentedEvent; + /** + * An account harvested some rewards. + **/ + RewardsHarvested: AugmentedEvent; + /** + * An account staked some tokens in a pool. + **/ + Staked: AugmentedEvent; + /** + * An account unstaked some tokens from a pool. + **/ + Unstaked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + assetsFreezer: { + Frozen: AugmentedEvent; + Thawed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bounties: { + /** + * A bounty is approved. + **/ + BountyApproved: AugmentedEvent; + /** + * A bounty is awarded to a beneficiary. + **/ + BountyAwarded: AugmentedEvent; + /** + * A bounty proposal is funded and became active. + **/ + BountyBecameActive: AugmentedEvent; + /** + * A bounty is cancelled. + **/ + BountyCanceled: AugmentedEvent; + /** + * A bounty is claimed by beneficiary. + **/ + BountyClaimed: AugmentedEvent; + /** + * A bounty expiry is extended. + **/ + BountyExtended: AugmentedEvent; + /** + * New bounty proposal. + **/ + BountyProposed: AugmentedEvent; + /** + * A bounty proposal was rejected; funds were slashed. + **/ + BountyRejected: AugmentedEvent; + /** + * A bounty curator is accepted. + **/ + CuratorAccepted: AugmentedEvent; + /** + * A bounty curator is proposed. + **/ + CuratorProposed: AugmentedEvent; + /** + * A bounty curator is unassigned. + **/ + CuratorUnassigned: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + broker: { + /** + * A Region has been assigned to a particular task. + **/ + Assigned: AugmentedEvent; + /** + * An assignment has been removed from the workplan. + **/ + AssignmentRemoved: AugmentedEvent; + AutoRenewalDisabled: AugmentedEvent; + AutoRenewalEnabled: AugmentedEvent; + /** + * Failed to auto-renew a core, likely due to the payer account not being sufficiently + * funded. + **/ + AutoRenewalFailed: AugmentedEvent], { core: u16, payer: Option }>; + /** + * The auto-renewal limit has been reached upon renewing cores. + * + * This should never happen, given that enable_auto_renew checks for this before enabling + * auto-renewal. + **/ + AutoRenewalLimitReached: AugmentedEvent; + /** + * Some historical Instantaneous Core Pool Revenue is ready for payout claims. + **/ + ClaimsReady: AugmentedEvent; + /** + * Some historical Instantaneous Core Pool contribution record has been dropped. + **/ + ContributionDropped: AugmentedEvent; + /** + * A Core has been assigned to one or more tasks and/or the Pool on the Relay-chain. + **/ + CoreAssigned: AugmentedEvent>], { core: u16, when: u32, assignment: Vec> }>; + /** + * The number of cores available for scheduling has changed. + **/ + CoreCountChanged: AugmentedEvent; + /** + * A new number of cores has been requested. + **/ + CoreCountRequested: AugmentedEvent; + /** + * Some Instantaneous Coretime Pool credit has been purchased. + **/ + CreditPurchased: AugmentedEvent; + /** + * Some historical Instantaneous Core Pool payment record has been dropped. + **/ + HistoryDropped: AugmentedEvent; + /** + * Some historical Instantaneous Core Pool payment record has been ignored because the + * timeslice was already known. Governance may need to intervene. + **/ + HistoryIgnored: AugmentedEvent; + /** + * Some historical Instantaneous Core Pool payment record has been initialized. + **/ + HistoryInitialized: AugmentedEvent; + /** + * A Region has been converted into two overlapping Regions each of lesser regularity. + **/ + Interlaced: AugmentedEvent], { oldRegionId: PezpalletBrokerRegionId, newRegionIds: ITuple<[PezpalletBrokerRegionId, PezpalletBrokerRegionId]> }>; + /** + * A new lease has been created. + **/ + Leased: AugmentedEvent; + /** + * A lease is about to end. + **/ + LeaseEnding: AugmentedEvent; + /** + * A lease has been removed. + **/ + LeaseRemoved: AugmentedEvent; + /** + * A Region has been split into two non-overlapping Regions. + **/ + Partitioned: AugmentedEvent], { oldRegionId: PezpalletBrokerRegionId, newRegionIds: ITuple<[PezpalletBrokerRegionId, PezpalletBrokerRegionId]> }>; + /** + * A Region has been added to the Instantaneous Coretime Pool. + **/ + Pooled: AugmentedEvent; + /** + * Some historical Instantaneous Core Pool payment record has been dropped. + **/ + PotentialRenewalDropped: AugmentedEvent; + /** + * A Region of Bulk Coretime has been purchased. + **/ + Purchased: AugmentedEvent; + /** + * A Region has been dropped due to being out of date. + **/ + RegionDropped: AugmentedEvent; + /** + * The workload of a core has become renewable. + **/ + Renewable: AugmentedEvent], { core: u16, price: u128, begin: u32, workload: Vec }>; + /** + * A workload has been renewed. + **/ + Renewed: AugmentedEvent], { who: AccountId32, price: u128, oldCore: u16, core: u16, begin: u32, duration: u32, workload: Vec }>; + /** + * A reservation for a workload has been cancelled. + **/ + ReservationCancelled: AugmentedEvent], { index: u32, workload: Vec }>; + /** + * There is a new reservation for a workload. + **/ + ReservationMade: AugmentedEvent], { index: u32, workload: Vec }>; + /** + * The act of claiming revenue has begun. + **/ + RevenueClaimBegun: AugmentedEvent; + /** + * A particular timeslice has a non-zero claim. + **/ + RevenueClaimItem: AugmentedEvent; + /** + * A revenue claim has (possibly only in part) been paid. + **/ + RevenueClaimPaid: AugmentedEvent], { who: AccountId32, amount: u128, next: Option }>; + /** + * A new sale has been initialized. + **/ + SaleInitialized: AugmentedEvent; + /** + * The sale rotation has been started and a new sale is imminent. + **/ + SalesStarted: AugmentedEvent; + /** + * Ownership of a Region has been transferred. + **/ + Transferred: AugmentedEvent, owner: Option], { regionId: PezpalletBrokerRegionId, duration: u32, oldOwner: Option, owner: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + childBounties: { + /** + * A child-bounty is added. + **/ + Added: AugmentedEvent; + /** + * A child-bounty is awarded to a beneficiary. + **/ + Awarded: AugmentedEvent; + /** + * A child-bounty is cancelled. + **/ + Canceled: AugmentedEvent; + /** + * A child-bounty is claimed by beneficiary. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + contracts: { + /** + * A contract was called either by a plain account or another contract. + * + * # Note + * + * Please keep in mind that like all events this is only emitted for successful + * calls. This is because on failure all storage changes including events are + * rolled back. + **/ + Called: AugmentedEvent; + /** + * A code with the specified hash was removed. + **/ + CodeRemoved: AugmentedEvent; + /** + * Code with the specified hash has been stored. + **/ + CodeStored: AugmentedEvent; + /** + * A contract's code was updated. + **/ + ContractCodeUpdated: AugmentedEvent; + /** + * A custom event emitted by the contract. + **/ + ContractEmitted: AugmentedEvent; + /** + * A contract delegate called a code hash. + * + * # Note + * + * Please keep in mind that like all events this is only emitted for successful + * calls. This is because on failure all storage changes including events are + * rolled back. + **/ + DelegateCalled: AugmentedEvent; + /** + * Contract deployed by address at the specified address. + **/ + Instantiated: AugmentedEvent; + /** + * Some funds have been transferred and held as storage deposit. + **/ + StorageDepositTransferredAndHeld: AugmentedEvent; + /** + * Some storage deposit funds have been transferred and released. + **/ + StorageDepositTransferredAndReleased: AugmentedEvent; + /** + * Contract has been removed. + * + * # Note + * + * The only way for a contract to be removed and emitting this event is by calling + * `seal_terminate`. + **/ + Terminated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + convictionVoting: { + /** + * An account has delegated their vote to another account. \[who, target\] + **/ + Delegated: AugmentedEvent; + /** + * An \[account\] has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An account has voted + **/ + Voted: AugmentedEvent; + /** + * A vote has been removed + **/ + VoteRemoved: AugmentedEvent; + /** + * The lockup period of a conviction vote expired, and the funds have been unlocked. + **/ + VoteUnlocked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + coreFellowship: { + /** + * Member activity flag has been set. + **/ + ActiveChanged: AugmentedEvent; + /** + * Member has been demoted to the given (non-zero) rank. + **/ + Demoted: AugmentedEvent; + /** + * Some submitted evidence was judged and removed. There may or may not have been a change + * to the rank, but in any case, `last_proof` is reset. + **/ + EvidenceJudged: AugmentedEvent], { who: AccountId32, wish: PezpalletCoreFellowshipWish, evidence: Bytes, oldRank: u16, newRank: Option }>; + /** + * Pre-ranked account has been inducted at their current rank. + **/ + Imported: AugmentedEvent; + /** + * Member has begun being tracked in this pallet. + **/ + Inducted: AugmentedEvent; + /** + * Member has been removed from being tracked in this pallet (i.e. because rank is now + * zero). + **/ + Offboarded: AugmentedEvent; + /** + * Parameters for the pallet have changed. + **/ + ParamsChanged: AugmentedEvent; + /** + * Member has been promoted to the given rank. + **/ + Promoted: AugmentedEvent; + /** + * Member has been proven at their current rank, postponing auto-demotion. + **/ + Proven: AugmentedEvent; + /** + * Member has stated evidence of their efforts their request for rank. + **/ + Requested: AugmentedEvent; + /** + * A member had its AccountId swapped. + **/ + Swapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + council: { + /** + * A motion was approved by the required threshold. + **/ + Approved: AugmentedEvent; + /** + * A proposal was closed because its threshold was reached or after its duration was up. + **/ + Closed: AugmentedEvent; + /** + * A motion was not approved by the required threshold. + **/ + Disapproved: AugmentedEvent; + /** + * A motion was executed; result will be `Ok` if it returned without error. + **/ + Executed: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A proposal was killed. + **/ + Killed: AugmentedEvent; + /** + * A single member did some action; result will be `Ok` if it returned without error. + **/ + MemberExecuted: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * Some cost for storing a proposal was burned. + **/ + ProposalCostBurned: AugmentedEvent; + /** + * Some cost for storing a proposal was released. + **/ + ProposalCostReleased: AugmentedEvent; + /** + * A motion (given hash) has been proposed (by given account) with a threshold (given + * `MemberCount`). + **/ + Proposed: AugmentedEvent; + /** + * A motion (given hash) has been voted on by given account, leaving + * a tally (yes votes and no votes given respectively as `MemberCount`). + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + delegatedStaking: { + /** + * Funds delegated by a delegator. + **/ + Delegated: AugmentedEvent; + /** + * Unclaimed delegation funds migrated to delegator. + **/ + MigratedDelegation: AugmentedEvent; + /** + * Funds released to a delegator. + **/ + Released: AugmentedEvent; + /** + * Funds slashed from a delegator. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + democracy: { + /** + * A proposal_hash has been blacklisted permanently. + **/ + Blacklisted: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + /** + * An account has delegated their vote to another account. + **/ + Delegated: AugmentedEvent; + /** + * An external proposal has been tabled. + **/ + ExternalTabled: AugmentedEvent; + /** + * Metadata for a proposal or a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a proposal or a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * Metadata has been transferred to new owner. + **/ + MetadataTransferred: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + NotPassed: AugmentedEvent; + /** + * A proposal has been approved by referendum. + **/ + Passed: AugmentedEvent; + /** + * A proposal got canceled. + **/ + ProposalCanceled: AugmentedEvent; + /** + * A motion has been proposed by a public account. + **/ + Proposed: AugmentedEvent; + /** + * An account has seconded a proposal + **/ + Seconded: AugmentedEvent; + /** + * A referendum has begun. + **/ + Started: AugmentedEvent; + /** + * A public proposal has been tabled for referendum vote. + **/ + Tabled: AugmentedEvent; + /** + * An account has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An external proposal has been vetoed. + **/ + Vetoed: AugmentedEvent; + /** + * An account has voted in a referendum + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + electionProviderMultiPhase: { + /** + * An election failed. + * + * Not much can be said about which computes failed in the process. + **/ + ElectionFailed: AugmentedEvent; + /** + * The election has been finalized, with the given computation and score. + **/ + ElectionFinalized: AugmentedEvent; + /** + * There was a phase transition in a given round. + **/ + PhaseTransitioned: AugmentedEvent; + /** + * An account has been rewarded for their signed submission being finalized. + **/ + Rewarded: AugmentedEvent; + /** + * An account has been slashed for submitting an invalid signed submission. + **/ + Slashed: AugmentedEvent; + /** + * A solution was stored with the given compute. + * + * The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`, + * the stored solution was submitted in the signed phase by a miner with the `AccountId`. + * Otherwise, the solution was stored either during the unsigned phase or by + * `T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make + * room for this one. + **/ + SolutionStored: AugmentedEvent, prevEjected: bool], { compute: PezpalletElectionProviderMultiPhaseElectionCompute, origin: Option, prevEjected: bool }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + elections: { + /** + * A candidate was slashed by amount due to failing to obtain a seat as member or + * runner-up. + * + * Note that old members and runners-up are also candidates. + **/ + CandidateSlashed: AugmentedEvent; + /** + * Internal error happened while trying to perform election. + **/ + ElectionError: AugmentedEvent; + /** + * No (or not enough) candidates existed for this round. This is different from + * `NewTerm(\[\])`. See the description of `NewTerm`. + **/ + EmptyTerm: AugmentedEvent; + /** + * A member has been removed. This should always be followed by either `NewTerm` or + * `EmptyTerm`. + **/ + MemberKicked: AugmentedEvent; + /** + * A new term with new_members. This indicates that enough candidates existed to run + * the election, not that enough have been elected. The inner value must be examined + * for this purpose. A `NewTerm(\[\])` indicates that some candidates got their bond + * slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to + * begin with. + **/ + NewTerm: AugmentedEvent>], { newMembers: Vec> }>; + /** + * Someone has renounced their candidacy. + **/ + Renounced: AugmentedEvent; + /** + * A seat holder was slashed by amount by being forcefully removed from the set. + **/ + SeatHolderSlashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fastUnstake: { + /** + * A batch was partially checked for the given eras, but the process did not finish. + **/ + BatchChecked: AugmentedEvent], { eras: Vec }>; + /** + * A batch of a given size was terminated. + * + * This is always follows by a number of `Unstaked` or `Slashed` events, marking the end + * of the batch. A new batch will be created upon next block. + **/ + BatchFinished: AugmentedEvent; + /** + * An internal error happened. Operations will be paused now. + **/ + InternalError: AugmentedEvent; + /** + * A staker was slashed for requesting fast-unstake whilst being exposed. + **/ + Slashed: AugmentedEvent; + /** + * A staker was unstaked. + **/ + Unstaked: AugmentedEvent], { stash: AccountId32, result: Result }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + glutton: { + /** + * The block length limit has been updated. + **/ + BlockLengthLimitSet: AugmentedEvent; + /** + * The computation limit has been updated. + **/ + ComputationLimitSet: AugmentedEvent; + /** + * The pallet has been (re)initialized. + **/ + PalletInitialized: AugmentedEvent; + /** + * The storage limit has been updated. + **/ + StorageLimitSet: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + grandpa: { + /** + * New authority set has been applied. + **/ + NewAuthorities: AugmentedEvent>], { authoritySet: Vec> }>; + /** + * Current authority set has been paused. + **/ + Paused: AugmentedEvent; + /** + * Current authority set has been resumed. + **/ + Resumed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + identity: { + /** + * A username authority was added. + **/ + AuthorityAdded: AugmentedEvent; + /** + * A username authority was removed. + **/ + AuthorityRemoved: AugmentedEvent; + /** + * A dangling username (as in, a username corresponding to an account that has removed its + * identity) has been removed. + **/ + DanglingUsernameRemoved: AugmentedEvent; + /** + * A name was cleared, and the given balance returned. + **/ + IdentityCleared: AugmentedEvent; + /** + * A name was removed and the given balance slashed. + **/ + IdentityKilled: AugmentedEvent; + /** + * A name was set or reset (which will remove all judgements). + **/ + IdentitySet: AugmentedEvent; + /** + * A judgement was given by a registrar. + **/ + JudgementGiven: AugmentedEvent; + /** + * A judgement was asked from a registrar. + **/ + JudgementRequested: AugmentedEvent; + /** + * A judgement request was retracted. + **/ + JudgementUnrequested: AugmentedEvent; + /** + * A queued username passed its expiration without being claimed and was removed. + **/ + PreapprovalExpired: AugmentedEvent; + /** + * A username was set as a primary and can be looked up from `who`. + **/ + PrimaryUsernameSet: AugmentedEvent; + /** + * A registrar was added. + **/ + RegistrarAdded: AugmentedEvent; + /** + * An account's sub-identities were set (in bulk). + **/ + SubIdentitiesSet: AugmentedEvent; + /** + * A sub-identity was added to an identity and the deposit paid. + **/ + SubIdentityAdded: AugmentedEvent; + /** + * A sub-identity was removed from an identity and the deposit freed. + **/ + SubIdentityRemoved: AugmentedEvent; + /** + * A given sub-account's associated name was changed by its super-identity. + **/ + SubIdentityRenamed: AugmentedEvent; + /** + * A sub-identity was cleared, and the given deposit repatriated from the + * main identity account to the sub-identity account. + **/ + SubIdentityRevoked: AugmentedEvent; + /** + * A username has been killed. + **/ + UsernameKilled: AugmentedEvent; + /** + * A username was queued, but `who` must accept it prior to `expiration`. + **/ + UsernameQueued: AugmentedEvent; + /** + * A username has been removed. + **/ + UsernameRemoved: AugmentedEvent; + /** + * A username was set for `who`. + **/ + UsernameSet: AugmentedEvent; + /** + * A username has been unbound. + **/ + UsernameUnbound: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + imOnline: { + /** + * At the end of the session, no offence was committed. + **/ + AllGood: AugmentedEvent; + /** + * A new heartbeat was received from `AuthorityId`. + **/ + HeartbeatReceived: AugmentedEvent; + /** + * At the end of the session, at least one validator was found to be offline. + **/ + SomeOffline: AugmentedEvent>], { offline: Vec> }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + indices: { + /** + * A deposit to reserve an index has been poked/reconsidered. + **/ + DepositPoked: AugmentedEvent; + /** + * A account index was assigned. + **/ + IndexAssigned: AugmentedEvent; + /** + * A account index has been freed up (unassigned). + **/ + IndexFreed: AugmentedEvent; + /** + * A account index has been frozen to its current account ID. + **/ + IndexFrozen: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + lottery: { + /** + * A new set of calls have been set! + **/ + CallsUpdated: AugmentedEvent; + /** + * A lottery has been started! + **/ + LotteryStarted: AugmentedEvent; + /** + * A ticket has been bought! + **/ + TicketBought: AugmentedEvent], { who: AccountId32, callIndex: ITuple<[u8, u8]> }>; + /** + * A winner has been chosen! + **/ + Winner: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent; + /** + * Message is processed. + **/ + Processed: AugmentedEvent; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + metaTx: { + /** + * A meta transaction has been dispatched. + * + * Contains the dispatch result of the meta transaction along with post-dispatch + * information. + **/ + Dispatched: AugmentedEvent], { result: Result }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multiBlockMigrations: { + /** + * The set of historical migrations has been cleared. + **/ + HistoricCleared: AugmentedEvent], { nextCursor: Option }>; + /** + * A migration progressed. + **/ + MigrationAdvanced: AugmentedEvent; + /** + * A Migration completed. + **/ + MigrationCompleted: AugmentedEvent; + /** + * A Migration failed. + * + * This implies that the whole upgrade failed and governance intervention is required. + **/ + MigrationFailed: AugmentedEvent; + /** + * A migration was skipped since it was already executed in the past. + **/ + MigrationSkipped: AugmentedEvent; + /** + * The current runtime upgrade completed. + * + * This implies that all of its migrations completed successfully as well. + **/ + UpgradeCompleted: AugmentedEvent; + /** + * Runtime upgrade failed. + * + * This is very bad and will require governance intervention. + **/ + UpgradeFailed: AugmentedEvent; + /** + * A Runtime upgrade started. + * + * Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`. + **/ + UpgradeStarted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multisig: { + /** + * The deposit for a multisig operation has been updated/poked. + **/ + DepositPoked: AugmentedEvent; + /** + * A multisig operation has been approved by someone. + **/ + MultisigApproval: AugmentedEvent; + /** + * A multisig operation has been cancelled. + **/ + MultisigCancelled: AugmentedEvent; + /** + * A multisig operation has been executed. + **/ + MultisigExecuted: AugmentedEvent], { approving: AccountId32, timepoint: PezpalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result }>; + /** + * A new multisig operation has begun. + **/ + NewMultisig: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nftFractionalization: { + /** + * An NFT was successfully fractionalized. + **/ + NftFractionalized: AugmentedEvent; + /** + * An NFT was successfully returned back. + **/ + NftUnified: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nfts: { + /** + * All approvals of an item got cancelled. + **/ + AllApprovalsCancelled: AugmentedEvent; + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent, key: Bytes, namespace: PezpalletNftsAttributeNamespace], { collection: u32, maybeItem: Option, key: Bytes, namespace: PezpalletNftsAttributeNamespace }>; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent, key: Bytes, value: Bytes, namespace: PezpalletNftsAttributeNamespace], { collection: u32, maybeItem: Option, key: Bytes, value: Bytes, namespace: PezpalletNftsAttributeNamespace }>; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent; + /** + * A `collection` has had its config changed by the `Force` origin. + **/ + CollectionConfigChanged: AugmentedEvent; + /** + * Some `collection` was locked. + **/ + CollectionLocked: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent; + /** + * Mint settings for a collection had changed. + **/ + CollectionMintSettingsUpdated: AugmentedEvent; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent; + /** + * A new approval to modify item attributes was added. + **/ + ItemAttributesApprovalAdded: AugmentedEvent; + /** + * A new approval to modify item attributes was removed. + **/ + ItemAttributesApprovalRemoved: AugmentedEvent; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent; + /** + * Metadata has been cleared for an item. + **/ + ItemMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an item. + **/ + ItemMetadataSet: AugmentedEvent; + /** + * The price for the item was removed. + **/ + ItemPriceRemoved: AugmentedEvent; + /** + * The price was set for the item. + **/ + ItemPriceSet: AugmentedEvent], { collection: u32, item: u32, price: u128, whitelistedBuyer: Option }>; + /** + * `item` metadata or attributes were locked. + **/ + ItemPropertiesLocked: AugmentedEvent; + /** + * An `item` became non-transferable. + **/ + ItemTransferLocked: AugmentedEvent; + /** + * An `item` became transferable. + **/ + ItemTransferUnlocked: AugmentedEvent; + /** + * Event gets emitted when the `NextCollectionId` gets incremented. + **/ + NextCollectionIdIncremented: AugmentedEvent], { nextId: Option }>; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent], { who: AccountId32, maybeCollection: Option }>; + /** + * A new attribute in the `Pallet` namespace was set for the `collection` or an `item` + * within that `collection`. + **/ + PalletAttributeSet: AugmentedEvent, attribute: PezpalletNftsPezpalletAttributes, value: Bytes], { collection: u32, item: Option, attribute: PezpalletNftsPezpalletAttributes, value: Bytes }>; + /** + * New attributes have been set for an `item` of the `collection`. + **/ + PreSignedAttributesSet: AugmentedEvent; + /** + * The deposit for a set of `item`s within a `collection` has been updated. + **/ + Redeposited: AugmentedEvent], { collection: u32, successfulItems: Vec }>; + /** + * The swap was cancelled. + **/ + SwapCancelled: AugmentedEvent, price: Option, deadline: u32], { offeredCollection: u32, offeredItem: u32, desiredCollection: u32, desiredItem: Option, price: Option, deadline: u32 }>; + /** + * The swap has been claimed. + **/ + SwapClaimed: AugmentedEvent, deadline: u32], { sentCollection: u32, sentItem: u32, sentItemOwner: AccountId32, receivedCollection: u32, receivedItem: u32, receivedItemOwner: AccountId32, price: Option, deadline: u32 }>; + /** + * An `item` swap intent was created. + **/ + SwapCreated: AugmentedEvent, price: Option, deadline: u32], { offeredCollection: u32, offeredItem: u32, desiredCollection: u32, desiredItem: Option, price: Option, deadline: u32 }>; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent, admin: Option, freezer: Option], { collection: u32, issuer: Option, admin: Option, freezer: Option }>; + /** + * A tip was sent. + **/ + TipSent: AugmentedEvent; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + TransferApproved: AugmentedEvent], { collection: u32, item: u32, owner: AccountId32, delegate: AccountId32, deadline: Option }>; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nis: { + /** + * A bid was dropped from a queue because of another, more substantial, bid was present. + **/ + BidDropped: AugmentedEvent; + /** + * A bid was successfully placed. + **/ + BidPlaced: AugmentedEvent; + /** + * A bid was successfully removed (before being accepted). + **/ + BidRetracted: AugmentedEvent; + /** + * An automatic funding of the deficit was made. + **/ + Funded: AugmentedEvent; + /** + * A bid was accepted. The balance may not be released until expiry. + **/ + Issued: AugmentedEvent; + /** + * An receipt has been (at least partially) thawed. + **/ + Thawed: AugmentedEvent; + /** + * A receipt was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nominationPools: { + /** + * A member has became bonded in a pool. + **/ + Bonded: AugmentedEvent; + /** + * A pool has been created. + **/ + Created: AugmentedEvent; + /** + * A pool has been destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * Global parameters regulating nomination pools have been updated. + **/ + GlobalParamsUpdated: AugmentedEvent, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option], { minJoinBond: u128, minCreateBond: u128, maxPools: Option, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option }>; + /** + * A pool member's claim permission has been updated. + **/ + MemberClaimPermissionUpdated: AugmentedEvent; + /** + * A member has been removed from a pool. + * + * The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). + * Any funds that are still delegated (i.e. dangling delegation) are released and are + * represented by `released_balance`. + **/ + MemberRemoved: AugmentedEvent; + /** + * A pool's metadata was updated. + **/ + MetadataUpdated: AugmentedEvent; + /** + * Topped up deficit in frozen ED of the reward pool. + **/ + MinBalanceDeficitAdjusted: AugmentedEvent; + /** + * Claimed excess frozen ED of af the reward pool. + **/ + MinBalanceExcessAdjusted: AugmentedEvent; + /** + * A payout has been made to a member. + **/ + PaidOut: AugmentedEvent; + /** + * A pool's commission `change_rate` has been changed. + **/ + PoolCommissionChangeRateUpdated: AugmentedEvent; + /** + * Pool commission has been claimed. + **/ + PoolCommissionClaimed: AugmentedEvent; + /** + * Pool commission claim permission has been updated. + **/ + PoolCommissionClaimPermissionUpdated: AugmentedEvent], { poolId: u32, permission: Option }>; + /** + * A pool's commission setting has been changed. + **/ + PoolCommissionUpdated: AugmentedEvent>], { poolId: u32, current: Option> }>; + /** + * A pool's maximum commission setting has been changed. + **/ + PoolMaxCommissionUpdated: AugmentedEvent; + /** + * A pool's nominating account (or the pool's root account) has nominated a validator set + * on behalf of the pool. + **/ + PoolNominationMade: AugmentedEvent; + /** + * The pool is chilled i.e. no longer nominating. + **/ + PoolNominatorChilled: AugmentedEvent; + /** + * The active balance of pool `pool_id` has been slashed to `balance`. + **/ + PoolSlashed: AugmentedEvent; + /** + * The roles of a pool have been updated to the given new roles. Note that the depositor + * can never change. + **/ + RolesUpdated: AugmentedEvent, bouncer: Option, nominator: Option], { root: Option, bouncer: Option, nominator: Option }>; + /** + * The state of a pool has changed + **/ + StateChanged: AugmentedEvent; + /** + * A member has unbonded from their pool. + * + * - `balance` is the corresponding balance of the number of points that has been + * requested to be unbonded (the argument of the `unbond` transaction) from the bonded + * pool. + * - `points` is the number of points that are issued as a result of `balance` being + * dissolved into the corresponding unbonding pool. + * - `era` is the era in which the balance will be unbonded. + * In the absence of slashing, these values will match. In the presence of slashing, the + * number of points that are issued in the unbonding pool will be less than the amount + * requested to be unbonded. + **/ + Unbonded: AugmentedEvent; + /** + * The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. + **/ + UnbondingPoolSlashed: AugmentedEvent; + /** + * A member has withdrawn from their pool. + * + * The given number of `points` have been dissolved in return of `balance`. + * + * Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance + * will be 1. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + offences: { + /** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + **/ + Offence: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent, newValue: Option], { key: KitchensinkRuntimeRuntimeParametersKey, oldValue: Option, newValue: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + poolAssets: { + /** + * Accounts were destroyed for given asset. + **/ + AccountsDestroyed: AugmentedEvent; + /** + * An approval for account `delegate` was cancelled by `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * Approvals were destroyed for given asset. + **/ + ApprovalsDestroyed: AugmentedEvent; + /** + * (Additional) funds have been approved for transfer to a destination account. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Some asset `asset_id` was frozen. + **/ + AssetFrozen: AugmentedEvent; + /** + * The min_balance of an asset has been updated by the asset owner. + **/ + AssetMinBalanceChanged: AugmentedEvent; + /** + * An asset has had its attributes changed by the `Force` origin. + **/ + AssetStatusChanged: AugmentedEvent; + /** + * Some asset `asset_id` was thawed. + **/ + AssetThawed: AugmentedEvent; + /** + * Some account `who` was blocked. + **/ + Blocked: AugmentedEvent; + /** + * Some assets were destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some asset class was created. + **/ + Created: AugmentedEvent; + /** + * Some assets were deposited (e.g. for transaction fees). + **/ + Deposited: AugmentedEvent; + /** + * An asset class was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * An asset class is in the process of being destroyed. + **/ + DestructionStarted: AugmentedEvent; + /** + * Some asset class was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some account `who` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Some assets were issued. + **/ + Issued: AugmentedEvent; + /** + * Metadata has been cleared for an asset. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an asset. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some account `who` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * Some account `who` was created with a deposit from `depositor`. + **/ + Touched: AugmentedEvent; + /** + * Some assets were transferred. + **/ + Transferred: AugmentedEvent; + /** + * An `amount` was transferred in its entirety from `owner` to `destination` by + * the approved `delegate`. + **/ + TransferredApproved: AugmentedEvent; + /** + * Some assets were withdrawn from the account (e.g. for transaction fees). + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + pov: { + TestEvent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + preimage: { + /** + * A preimage has ben cleared. + **/ + Cleared: AugmentedEvent; + /** + * A preimage has been noted. + **/ + Noted: AugmentedEvent; + /** + * A preimage has been requested. + **/ + Requested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proxy: { + /** + * An announcement was placed to make a call in the future. + **/ + Announced: AugmentedEvent; + /** + * A deposit stored for proxies or announcements was poked / updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A proxy was added. + **/ + ProxyAdded: AugmentedEvent; + /** + * A proxy was executed correctly, with the given. + **/ + ProxyExecuted: AugmentedEvent], { result: Result }>; + /** + * A proxy was removed. + **/ + ProxyRemoved: AugmentedEvent; + /** + * A pure account has been created by new proxy with given + * disambiguation index and proxy type. + **/ + PureCreated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + rankedCollective: { + /** + * A member `who` has been added. + **/ + MemberAdded: AugmentedEvent; + /** + * The member `who` had their `AccountId` changed to `new_who`. + **/ + MemberExchanged: AugmentedEvent; + /** + * The member `who` of given `rank` has been removed from the collective. + **/ + MemberRemoved: AugmentedEvent; + /** + * The member `who`se rank has been changed to the given `rank`. + **/ + RankChanged: AugmentedEvent; + /** + * The member `who` has voted for the `poll` with the given `vote` leading to an updated + * `tally`. + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + rankedPolls: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + recovery: { + /** + * Lost account has been successfully recovered by rescuer account. + **/ + AccountRecovered: AugmentedEvent; + /** + * A recovery process for lost account by rescuer account has been closed. + **/ + RecoveryClosed: AugmentedEvent; + /** + * A recovery process has been set up for an account. + **/ + RecoveryCreated: AugmentedEvent; + /** + * A recovery process has been initiated for lost account by rescuer account. + **/ + RecoveryInitiated: AugmentedEvent; + /** + * A recovery process has been removed for an account. + **/ + RecoveryRemoved: AugmentedEvent; + /** + * A recovery process for lost account by rescuer account has been vouched for by sender. + **/ + RecoveryVouched: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + referenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + remark: { + /** + * Stored data off chain. + **/ + Stored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + revive: { + /** + * A custom event emitted by the contract. + **/ + ContractEmitted: AugmentedEvent], { contract: H160, data: Bytes, topics: Vec }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + rootTesting: { + /** + * Event dispatched when the trigger_defensive extrinsic is called. + **/ + DefensiveTestCall: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + safeMode: { + /** + * Could not hold funds for entering or extending the safe-mode. + * + * This error comes from the underlying `Currency`. + **/ + CannotDeposit: AugmentedEvent; + /** + * Could not release funds for entering or extending the safe-mode. + * + * This error comes from the underlying `Currency`. + **/ + CannotRelease: AugmentedEvent; + /** + * An account reserved funds for either entering or extending the safe-mode. + **/ + DepositPlaced: AugmentedEvent; + /** + * An account had a reserve released that was reserved. + **/ + DepositReleased: AugmentedEvent; + /** + * An account had reserve slashed that was reserved. + **/ + DepositSlashed: AugmentedEvent; + /** + * The safe-mode was entered until inclusively this block. + **/ + Entered: AugmentedEvent; + /** + * Exited the safe-mode for a specific reason. + **/ + Exited: AugmentedEvent; + /** + * The safe-mode was extended until inclusively this block. + **/ + Extended: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + salary: { + /** + * The next cycle begins. + **/ + CycleStarted: AugmentedEvent; + /** + * A member is inducted into the payroll. + **/ + Inducted: AugmentedEvent; + /** + * A payment happened. + **/ + Paid: AugmentedEvent; + /** + * A member registered for a payout. + **/ + Registered: AugmentedEvent; + /** + * A member swapped their account. + **/ + Swapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + scheduler: { + /** + * Agenda is incomplete from `when`. + **/ + AgendaIncomplete: AugmentedEvent; + /** + * The call for the provided hash was not found so the task has been aborted. + **/ + CallUnavailable: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Canceled some task. + **/ + Canceled: AugmentedEvent; + /** + * Dispatched some task. + **/ + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; + /** + * The given task was unable to be renewed since the agenda is full at that block. + **/ + PeriodicFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task can never be executed since it is overweight. + **/ + PermanentlyOverweight: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Cancel a retry configuration for some task. + **/ + RetryCancelled: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task was unable to be retried since the agenda is full at that block or there + * was not enough weight to reschedule it. + **/ + RetryFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Set a retry configuration for some task. + **/ + RetrySet: AugmentedEvent, id: Option, period: u32, retries: u8], { task: ITuple<[u32, u32]>, id: Option, period: u32, retries: u8 }>; + /** + * Scheduled some task. + **/ + Scheduled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Validator has been disabled. + **/ + ValidatorDisabled: AugmentedEvent; + /** + * Validator has been re-enabled. + **/ + ValidatorReenabled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + skipFeelessPayment: { + /** + * A transaction fee was skipped. + **/ + FeeSkipped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + society: { + /** + * A candidate was dropped (due to an excess of bids in the system). + **/ + AutoUnbid: AugmentedEvent; + /** + * A membership bid just happened. The given account is the candidate's ID and their offer + * is the second. + **/ + Bid: AugmentedEvent; + /** + * A candidate has been suspended + **/ + CandidateSuspended: AugmentedEvent; + /** + * A member has been challenged + **/ + Challenged: AugmentedEvent; + /** + * A vote has been placed for a defending member + **/ + DefenderVote: AugmentedEvent; + /** + * Some funds were deposited into the society account. + **/ + Deposit: AugmentedEvent; + /** + * A \[member\] got elevated to \[rank\]. + **/ + Elevated: AugmentedEvent; + /** + * The society is founded by the given identity. + **/ + Founded: AugmentedEvent; + /** + * A group of candidates have been inducted. The batch's primary is the first value, the + * batch in full is the second. + **/ + Inducted: AugmentedEvent], { primary: AccountId32, candidates: Vec }>; + /** + * A member has been suspended + **/ + MemberSuspended: AugmentedEvent; + /** + * A new set of \[params\] has been set for the group. + **/ + NewParams: AugmentedEvent; + /** + * A suspended member has been judged. + **/ + SuspendedMemberJudgement: AugmentedEvent; + /** + * A candidate was dropped (by their request). + **/ + Unbid: AugmentedEvent; + /** + * Society is unfounded. + **/ + Unfounded: AugmentedEvent; + /** + * A candidate was dropped (by request of who vouched for them). + **/ + Unvouch: AugmentedEvent; + /** + * A vote has been placed + **/ + Vote: AugmentedEvent; + /** + * A membership bid just happened by vouching. The given account is the candidate's ID and + * their offer is the second. The vouching party is the third. + **/ + Vouch: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + staking: { + /** + * An account has bonded this amount. \[stash, amount\] + * + * NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, + * it will not be emitted for staking rewards when they are added to stake. + **/ + Bonded: AugmentedEvent; + /** + * An account has stopped participating as either a validator or nominator. + **/ + Chilled: AugmentedEvent; + /** + * Report of a controller batch deprecation. + **/ + ControllerBatchDeprecated: AugmentedEvent; + /** + * Staking balance migrated from locks to holds, with any balance that could not be held + * is force withdrawn. + **/ + CurrencyMigrated: AugmentedEvent; + /** + * The era payout has been set; the first balance is the validator-payout; the second is + * the remainder from the maximum amount of reward. + **/ + EraPaid: AugmentedEvent; + /** + * A new force era mode was set. + **/ + ForceEra: AugmentedEvent; + /** + * A nominator has been kicked from a validator. + **/ + Kicked: AugmentedEvent; + /** + * An old slashing report from a prior era was discarded because it could + * not be processed. + **/ + OldSlashingReportDiscarded: AugmentedEvent; + /** + * A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed. + **/ + PayoutStarted: AugmentedEvent], { eraIndex: u32, validatorStash: AccountId32, page: u32, next: Option }>; + /** + * The nominator has been rewarded by this amount to this destination. + **/ + Rewarded: AugmentedEvent; + /** + * A staker (validator or nominator) has been slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * A slash for the given validator, for the given percentage of their stake, at the given + * era as been reported. + **/ + SlashReported: AugmentedEvent; + /** + * Targets size limit reached. + **/ + SnapshotTargetsSizeExceeded: AugmentedEvent; + /** + * Voters size limit reached. + **/ + SnapshotVotersSizeExceeded: AugmentedEvent; + /** + * A new set of stakers was elected. + **/ + StakersElected: AugmentedEvent; + /** + * The election failed. No new era is planned. + **/ + StakingElectionFailed: AugmentedEvent; + /** + * An account has unbonded this amount. + **/ + Unbonded: AugmentedEvent; + /** + * A validator has set their preferences. + **/ + ValidatorPrefsSet: AugmentedEvent; + /** + * An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` + * from the unlocking queue. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + statement: { + /** + * A new statement is submitted + **/ + NewStatement: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stateTrieMigration: { + /** + * The auto migration task finished. + **/ + AutoMigrationFinished: AugmentedEvent; + /** + * Migration got halted due to an error or miss-configuration. + **/ + Halted: AugmentedEvent; + /** + * Given number of `(top, child)` keys were migrated respectively, with the given + * `compute`. + **/ + Migrated: AugmentedEvent; + /** + * Some account got slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + sudo: { + /** + * The sudo key has been updated. + **/ + KeyChanged: AugmentedEvent, new_: AccountId32], { old: Option, new_: AccountId32 }>; + /** + * The key was permanently removed. + **/ + KeyRemoved: AugmentedEvent; + /** + * A sudo call just took place. + **/ + Sudid: AugmentedEvent], { sudoResult: Result }>; + /** + * A [sudo_as](Pallet::sudo_as) call just took place. + **/ + SudoAsDone: AugmentedEvent], { sudoResult: Result }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * An invalid authorized upgrade was rejected while trying to apply it. + **/ + RejectedInvalidAuthorizedUpgrade: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + technicalCommittee: { + /** + * A motion was approved by the required threshold. + **/ + Approved: AugmentedEvent; + /** + * A proposal was closed because its threshold was reached or after its duration was up. + **/ + Closed: AugmentedEvent; + /** + * A motion was not approved by the required threshold. + **/ + Disapproved: AugmentedEvent; + /** + * A motion was executed; result will be `Ok` if it returned without error. + **/ + Executed: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * A proposal was killed. + **/ + Killed: AugmentedEvent; + /** + * A single member did some action; result will be `Ok` if it returned without error. + **/ + MemberExecuted: AugmentedEvent], { proposalHash: H256, result: Result }>; + /** + * Some cost for storing a proposal was burned. + **/ + ProposalCostBurned: AugmentedEvent; + /** + * Some cost for storing a proposal was released. + **/ + ProposalCostReleased: AugmentedEvent; + /** + * A motion (given hash) has been proposed (by given account) with a threshold (given + * `MemberCount`). + **/ + Proposed: AugmentedEvent; + /** + * A motion (given hash) has been voted on by given account, leaving + * a tally (yes votes and no votes given respectively as `MemberCount`). + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + technicalMembership: { + /** + * Phantom member, never used. + **/ + Dummy: AugmentedEvent; + /** + * One of the members' keys changed. + **/ + KeyChanged: AugmentedEvent; + /** + * The given member was added; see the transaction for who. + **/ + MemberAdded: AugmentedEvent; + /** + * The given member was removed; see the transaction for who. + **/ + MemberRemoved: AugmentedEvent; + /** + * The membership was reset; see the transaction for who the new set is. + **/ + MembersReset: AugmentedEvent; + /** + * Two members were swapped; see the transaction for who. + **/ + MembersSwapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + tips: { + /** + * A new tip suggestion has been opened. + **/ + NewTip: AugmentedEvent; + /** + * A tip suggestion has been closed. + **/ + TipClosed: AugmentedEvent; + /** + * A tip suggestion has reached threshold and is closing. + **/ + TipClosing: AugmentedEvent; + /** + * A tip suggestion has been retracted. + **/ + TipRetracted: AugmentedEvent; + /** + * A tip suggestion has been slashed. + **/ + TipSlashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionStorage: { + /** + * Storage proof was successfully checked. + **/ + ProofChecked: AugmentedEvent; + /** + * Renewed data under specified index. + **/ + Renewed: AugmentedEvent; + /** + * Stored data under specified index. + **/ + Stored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + treasury: { + /** + * A new asset spend proposal has been approved. + **/ + AssetSpendApproved: AugmentedEvent; + /** + * An approved spend was voided. + **/ + AssetSpendVoided: AugmentedEvent; + /** + * Some funds have been allocated. + **/ + Awarded: AugmentedEvent; + /** + * Some of our funds have been burnt. + **/ + Burnt: AugmentedEvent; + /** + * Some funds have been deposited. + **/ + Deposit: AugmentedEvent; + /** + * A payment happened. + **/ + Paid: AugmentedEvent; + /** + * A payment failed and can be retried. + **/ + PaymentFailed: AugmentedEvent; + /** + * Spending has finished; this is the amount that rolls over until next spend. + **/ + Rollover: AugmentedEvent; + /** + * A new spend proposal has been approved. + **/ + SpendApproved: AugmentedEvent; + /** + * We have ended a spend period and will now allocate funds. + **/ + Spending: AugmentedEvent; + /** + * A spend was processed and removed from the storage. It might have been successfully + * paid or it may have expired. + **/ + SpendProcessed: AugmentedEvent; + /** + * The inactive funds of the pallet have been updated. + **/ + UpdatedInactive: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + txPause: { + /** + * This pallet, or a specific call is now paused. + **/ + CallPaused: AugmentedEvent], { fullName: ITuple<[Bytes, Bytes]> }>; + /** + * This pallet, or a specific call is now unpaused. + **/ + CallUnpaused: AugmentedEvent], { fullName: ITuple<[Bytes, Bytes]> }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + uniques: { + /** + * An approval for a `delegate` account to transfer the `item` of an item + * `collection` was cancelled by its `owner`. + **/ + ApprovalCancelled: AugmentedEvent; + /** + * An `item` of a `collection` has been approved by the `owner` for transfer by + * a `delegate`. + **/ + ApprovedTransfer: AugmentedEvent; + /** + * Attribute metadata has been cleared for a `collection` or `item`. + **/ + AttributeCleared: AugmentedEvent, key: Bytes], { collection: u32, maybeItem: Option, key: Bytes }>; + /** + * New attribute metadata has been set for a `collection` or `item`. + **/ + AttributeSet: AugmentedEvent, key: Bytes, value: Bytes], { collection: u32, maybeItem: Option, key: Bytes, value: Bytes }>; + /** + * An `item` was destroyed. + **/ + Burned: AugmentedEvent; + /** + * Some `collection` was frozen. + **/ + CollectionFrozen: AugmentedEvent; + /** + * Max supply has been set for a collection. + **/ + CollectionMaxSupplySet: AugmentedEvent; + /** + * Metadata has been cleared for a `collection`. + **/ + CollectionMetadataCleared: AugmentedEvent; + /** + * New metadata has been set for a `collection`. + **/ + CollectionMetadataSet: AugmentedEvent; + /** + * Some `collection` was thawed. + **/ + CollectionThawed: AugmentedEvent; + /** + * A `collection` was created. + **/ + Created: AugmentedEvent; + /** + * A `collection` was destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * A `collection` was force-created. + **/ + ForceCreated: AugmentedEvent; + /** + * Some `item` was frozen. + **/ + Frozen: AugmentedEvent; + /** + * An `item` was issued. + **/ + Issued: AugmentedEvent; + /** + * An item was bought. + **/ + ItemBought: AugmentedEvent; + /** + * The price for the instance was removed. + **/ + ItemPriceRemoved: AugmentedEvent; + /** + * The price was set for the instance. + **/ + ItemPriceSet: AugmentedEvent], { collection: u32, item: u32, price: u128, whitelistedBuyer: Option }>; + /** + * A `collection` has had its attributes changed by the `Force` origin. + **/ + ItemStatusChanged: AugmentedEvent; + /** + * Metadata has been cleared for an item. + **/ + MetadataCleared: AugmentedEvent; + /** + * New metadata has been set for an item. + **/ + MetadataSet: AugmentedEvent; + /** + * The owner changed. + **/ + OwnerChanged: AugmentedEvent; + /** + * Ownership acceptance has changed for an account. + **/ + OwnershipAcceptanceChanged: AugmentedEvent], { who: AccountId32, maybeCollection: Option }>; + /** + * Metadata has been cleared for an item. + **/ + Redeposited: AugmentedEvent], { collection: u32, successfulItems: Vec }>; + /** + * The management team changed. + **/ + TeamChanged: AugmentedEvent; + /** + * Some `item` was thawed. + **/ + Thawed: AugmentedEvent; + /** + * An `item` was transferred. + **/ + Transferred: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + utility: { + /** + * Batch of dispatches completed fully with no error. + **/ + BatchCompleted: AugmentedEvent; + /** + * Batch of dispatches completed but has errors. + **/ + BatchCompletedWithErrors: AugmentedEvent; + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + **/ + BatchInterrupted: AugmentedEvent; + /** + * A call was dispatched. + **/ + DispatchedAs: AugmentedEvent], { result: Result }>; + /** + * The fallback call was dispatched. + **/ + IfElseFallbackCalled: AugmentedEvent; + /** + * Main call was dispatched. + **/ + IfElseMainSuccess: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with no error. + **/ + ItemCompleted: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with error. + **/ + ItemFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + vesting: { + /** + * An \[account\] has become fully vested. + **/ + VestingCompleted: AugmentedEvent; + /** + * The amount vested has been updated. This could indicate a change in funds available. + * The balance given is the amount which is left unvested (and thus locked). + **/ + VestingUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + voterList: { + /** + * Moved an account from one bag to another. + **/ + Rebagged: AugmentedEvent; + /** + * Updated the score of some account to the given amount. + **/ + ScoreUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + whitelist: { + CallWhitelisted: AugmentedEvent; + WhitelistedCallDispatched: AugmentedEvent], { callHash: H256, result: Result }>; + WhitelistedCallRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/packages/api-augment/src/bizinikiwi/index.ts b/packages/api-augment/src/bizinikiwi/index.ts new file mode 100644 index 0000000..1318006 --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '../base.js'; +import './consts.js'; +import './errors.js'; +import './events.js'; +import './query.js'; +import './registry.js'; +import './runtime.js'; +import './tx.js'; diff --git a/packages/api-augment/src/bizinikiwi/query.ts b/packages/api-augment/src/bizinikiwi/query.ts new file mode 100644 index 0000000..71f89cb --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/query.ts @@ -0,0 +1,2734 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/storage'; + +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@pezkuwi/api-base/types'; +import type { Data } from '@pezkuwi/types'; +import type { BTreeSet, Bytes, Null, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { KitchensinkRuntimeRuntimeParametersKey, KitchensinkRuntimeRuntimeParametersValue, KitchensinkRuntimeSessionKeys, PezframeSupportDispatchPerDispatchClassWeight, PezframeSupportPreimagesBounded, PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensMiscIdAmountRuntimeFreezeReason, PezframeSupportTokensMiscIdAmountRuntimeHoldReason, PezframeSystemAccountInfo, PezframeSystemCodeUpgradeAuthorization, PezframeSystemEventRecord, PezframeSystemLastRuntimeUpgradeInfo, PezframeSystemPhase, PezpalletAllianceCid, PezpalletAllianceMemberRole, PezpalletAssetConversionPoolInfo, PezpalletAssetRewardsPoolInfo, PezpalletAssetRewardsPoolStakerInfo, PezpalletAssetsApproval, PezpalletAssetsAssetAccount, PezpalletAssetsAssetDetails, PezpalletAssetsAssetMetadata, PezpalletBagsListListBag, PezpalletBagsListListNode, PezpalletBalancesAccountData, PezpalletBalancesBalanceLock, PezpalletBalancesReserveData, PezpalletBountiesBounty, PezpalletBrokerAutoRenewalRecord, PezpalletBrokerConfigRecord, PezpalletBrokerContributionRecord, PezpalletBrokerInstaPoolHistoryRecord, PezpalletBrokerLeaseRecordItem, PezpalletBrokerOnDemandRevenueRecord, PezpalletBrokerPoolIoRecord, PezpalletBrokerPotentialRenewalId, PezpalletBrokerPotentialRenewalRecord, PezpalletBrokerRegionId, PezpalletBrokerRegionRecord, PezpalletBrokerSaleInfoRecord, PezpalletBrokerScheduleItem, PezpalletBrokerStatusRecord, PezpalletChildBountiesChildBounty, PezpalletCollectiveVotes, PezpalletContractsStorageContractInfo, PezpalletContractsStorageDeletionQueueManager, PezpalletContractsWasmCodeInfo, PezpalletConvictionVotingVoteVoting, PezpalletCoreFellowshipMemberStatus, PezpalletCoreFellowshipParamsTypeU128, PezpalletCoreFellowshipWish, PezpalletDelegatedStakingAgentLedger, PezpalletDelegatedStakingDelegation, PezpalletDemocracyMetadataOwner, PezpalletDemocracyReferendumInfo, PezpalletDemocracyVoteThreshold, PezpalletDemocracyVoteVoting, PezpalletElectionProviderMultiPhasePhase, PezpalletElectionProviderMultiPhaseReadySolution, PezpalletElectionProviderMultiPhaseRoundSnapshot, PezpalletElectionProviderMultiPhaseSignedSignedSubmission, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletElectionsPhragmenSeatHolder, PezpalletElectionsPhragmenVoter, PezpalletFastUnstakeUnstakeRequest, PezpalletGrandpaStoredPendingChange, PezpalletGrandpaStoredState, PezpalletIdentityAuthorityProperties, PezpalletIdentityProvider, PezpalletIdentityRegistrarInfo, PezpalletIdentityRegistration, PezpalletIdentityUsernameInformation, PezpalletImOnlineSr25519AppSr25519Public, PezpalletLotteryLotteryConfig, PezpalletMessageQueueBookState, PezpalletMessageQueuePage, PezpalletMigrationsMigrationCursor, PezpalletMixnetBoundedMixnode, PezpalletMultisigMultisig, PezpalletNftFractionalizationDetails, PezpalletNftsAttributeDeposit, PezpalletNftsAttributeNamespace, PezpalletNftsCollectionConfig, PezpalletNftsCollectionDetails, PezpalletNftsCollectionMetadata, PezpalletNftsItemConfig, PezpalletNftsItemDetails, PezpalletNftsItemMetadata, PezpalletNftsPendingSwap, PezpalletNisBid, PezpalletNisReceiptRecord, PezpalletNisSummaryRecord, PezpalletNominationPoolsBondedPoolInner, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsPoolMember, PezpalletNominationPoolsRewardPool, PezpalletNominationPoolsSubPools, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus, PezpalletProxyAnnouncement, PezpalletProxyProxyDefinition, PezpalletRankedCollectiveMemberRecord, PezpalletRankedCollectiveVoteRecord, PezpalletRecoveryActiveRecovery, PezpalletRecoveryRecoveryConfig, PezpalletReferendaReferendumInfoConvictionVotingTally, PezpalletReferendaReferendumInfoRankedCollectiveTally, PezpalletReviveStorageContractInfo, PezpalletReviveStorageDeletionQueueManager, PezpalletReviveWasmCodeInfo, PezpalletSalaryClaimantStatus, PezpalletSalaryStatusType, PezpalletSchedulerRetryConfig, PezpalletSchedulerScheduled, PezpalletSocietyBid, PezpalletSocietyCandidacy, PezpalletSocietyGroupParams, PezpalletSocietyIntakeRecord, PezpalletSocietyMemberRecord, PezpalletSocietyPayoutRecord, PezpalletSocietyTally, PezpalletSocietyVote, PezpalletStakingActiveEraInfo, PezpalletStakingEraRewardPoints, PezpalletStakingForcing, PezpalletStakingNominations, PezpalletStakingRewardDestination, PezpalletStakingSlashingSlashingSpans, PezpalletStakingSlashingSpanRecord, PezpalletStakingStakingLedger, PezpalletStakingUnappliedSlash, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletTipsOpenTip, PezpalletTransactionPaymentReleases, PezpalletTransactionStorageTransactionInfo, PezpalletTreasuryProposal, PezpalletTreasurySpendStatus, PezpalletUniquesCollectionDetails, PezpalletUniquesCollectionMetadata, PezpalletUniquesItemDetails, PezpalletUniquesItemMetadata, PezpalletVestingReleases, PezpalletVestingVestingInfo, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeEpochConfiguration, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBabeDigestsPreDigest, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyMmrBeefyAuthoritySet, PezspConsensusGrandpaAppPublic, PezspCoreCryptoKeyTypeId, PezspMixnetAppPublic, PezspNposElectionsElectionScore, PezspRuntimeDigest, PezspStakingExposure, PezspStakingExposurePage, PezspStakingOffenceOffenceDetails, PezspStakingPagedExposureMetadata, PezspWeightsWeightV2Weight } from '@pezkuwi/types/lookup'; +import type { Observable } from '@pezkuwi/types/types'; + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module '@pezkuwi/api-base/types/storage' { + interface AugmentedQueries { + alliance: { + /** + * The current IPFS CIDs of any announcements. + **/ + announcements: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maps members to their candidacy deposit. + **/ + depositOf: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Maps member type to members of each type. + **/ + members: AugmentedQuery Observable>, [PezpalletAllianceMemberRole]> & QueryableStorageEntry; + /** + * A set of members who gave a retirement notice. They can retire after the end of retirement + * period stored as a future block number. + **/ + retiringMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The IPFS CID of the alliance rule. + * Fellows can propose a new rule with a super-majority. + **/ + rule: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current list of accounts deemed unscrupulous. These accounts non grata cannot submit + * candidacy. + **/ + unscrupulousAccounts: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current list of websites deemed unscrupulous. + **/ + unscrupulousWebsites: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + allianceMotion: { + /** + * Consideration cost created for publishing and storing a proposal. + * + * Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if + * the proposal count at the time of creation was below threshold N). + **/ + costOf: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The current members of the collective. This is stored sorted (just by value). + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The prime member that helps determine the default vote behavior in case of abstentions. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Proposals so far. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Actual proposal for a given hash, if it's current. + **/ + proposalOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The hashes of the active proposals. + **/ + proposals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetConversion: { + /** + * Stores the `PoolAssetId` that is going to be used for the next lp token. + * This gets incremented whenever a new lp pool is created. + **/ + nextPoolAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially + * created rather than people sending tokens directly to a pool's public account. + **/ + pools: AugmentedQuery | [PezframeSupportTokensFungibleUnionOfNativeOrWithId | { Native: any } | { WithId: any } | string | Uint8Array, PezframeSupportTokensFungibleUnionOfNativeOrWithId | { Native: any } | { WithId: any } | string | Uint8Array]) => Observable>, [ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetRate: { + /** + * Maps an asset to its fixed point representation in the native balance. + * + * E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)` + **/ + conversionRateToNative: AugmentedQuery Observable>, [PezframeSupportTokensFungibleUnionOfNativeOrWithId]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetRewards: { + /** + * Stores the [`PoolId`] to use for the next pool. + * + * Incremented when a new pool is created. + **/ + nextPoolId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The cost associated with storing pool information on-chain which was incurred by the pool + * creator. + * + * This cost may be [`None`], as determined by [`Config::Consideration`]. + **/ + poolCost: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * State and configuration of each staking pool. + **/ + pools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * State of pool stakers. + **/ + poolStakers: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [u32, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + assetsFreezer: { + /** + * A map that stores freezes applied on an account for a given AssetId. + **/ + freezes: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * A map that stores the current total frozen balance for every account on a given AssetId. + **/ + frozenBalances: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorityDiscovery: { + /** + * Keys of the current authority set. + **/ + keys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Keys of the next authority set. + **/ + nextKeys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + babe: { + /** + * Current epoch authorities. + **/ + authorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * This field should always be populated during block processing unless + * secondary plain slots are enabled (which don't contain a VRF output). + * + * It is set in `on_finalize`, before it will contain the value from the last block. + **/ + authorVrfRandomness: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current slot number. + **/ + currentSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The configuration for the current epoch. Should never be `None` as it is initialized in + * genesis. + **/ + epochConfig: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current epoch index. + **/ + epochIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The block numbers when the last and current epoch have started, respectively `N-1` and + * `N`. + * NOTE: We track this is in order to annotate the block number when a given pool of + * entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in + * slots, which may be skipped, the block numbers may not line up with the slot numbers. + **/ + epochStart: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The slot at which the first epoch actually started. This is 0 + * until the first block of the chain. + **/ + genesisSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Temporary value (cleared at block finalization) which is `Some` + * if per-block initialization has already been called for current block. + **/ + initialized: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * How late the current block is compared to its parent. + * + * This entry is populated as part of block execution and is cleaned up + * on block finalization. Querying this storage entry outside of block + * execution context should always yield zero. + **/ + lateness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Next epoch authorities. + **/ + nextAuthorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The configuration for the next epoch, `None` if the config will not change + * (you can fallback to `EpochConfig` instead in that case). + **/ + nextEpochConfig: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Next epoch randomness. + **/ + nextRandomness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Pending epoch configuration change that will be applied when the next epoch is enacted. + **/ + pendingEpochConfigChange: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The epoch randomness for the *current* epoch. + * + * # Security + * + * This MUST NOT be used for gambling, as it can be influenced by a + * malicious validator in the short term. It MAY be used in many + * cryptographic protocols, however, so long as one remembers that this + * (like everything else on-chain) it is public. For example, it can be + * used where a number is needed that cannot have been chosen by an + * adversary, for purposes such as public-coin zero-knowledge proofs. + **/ + randomness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Randomness under construction. + * + * We make a trade-off between storage accesses and list length. + * We store the under-construction randomness in segments of up to + * `UNDER_CONSTRUCTION_SEGMENT_LENGTH`. + * + * Once a segment reaches this length, we begin the next one. + * We reset all segments and return to `0` at the beginning of every + * epoch. + **/ + segmentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A list of the last 100 skipped epochs and the corresponding session index + * when the epoch was skipped. + * + * This is only used for validating equivocation proofs. An equivocation proof + * must contains a key-ownership proof for a given session, therefore we need a + * way to tie together sessions and epoch indices, i.e. we need to validate that + * a validator was the owner of a given key on a given session, and what the + * active epoch index was during that session. + **/ + skippedEpochs: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay. + **/ + underConstruction: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + beefy: { + /** + * The current authorities set + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Block number where BEEFY consensus is enabled/started. + * By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively + * restarted from the newly set block number. + **/ + genesisBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Authorities set scheduled to be used with the next session + **/ + nextAuthorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A mapping from BEEFY set ID to the index of the *most recent* session for which its + * members were responsible. + * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and BEEFY set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * + * TWOX-NOTE: `ValidatorSetId` is not under user control. + **/ + setIdSession: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The current validator set id + **/ + validatorSetId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + bounties: { + /** + * Bounties that have been made. + **/ + bounties: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Bounty indices that have been approved but not yet funded. + **/ + bountyApprovals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Number of bounty proposals that have been made. + **/ + bountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each bounty. + **/ + bountyDescriptions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + broker: { + /** + * Keeping track of cores which have auto-renewal enabled. + * + * Sorted by `CoreIndex` to make the removal of cores from auto-renewal more efficient. + **/ + autoRenewals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current configuration of this pallet. + **/ + configuration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Received core count change from the relay chain. + **/ + coreCountInbox: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Record of a single contribution to the Instantaneous Coretime Pool. + **/ + instaPoolContribution: AugmentedQuery Observable>, [PezpalletBrokerRegionId]> & QueryableStorageEntry; + /** + * Total InstaPool rewards for each Timeslice and the number of core parts which contributed. + **/ + instaPoolHistory: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Record of Coretime entering or leaving the Instantaneous Coretime Pool. + **/ + instaPoolIo: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The Polkadot Core legacy leases. + **/ + leases: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Records of potential renewals. + * + * Renewals will only actually be allowed if `CompletionStatus` is actually `Complete`. + **/ + potentialRenewals: AugmentedQuery Observable>, [PezpalletBrokerPotentialRenewalId]> & QueryableStorageEntry; + /** + * The current (unassigned or provisionally assigend) Regions. + **/ + regions: AugmentedQuery Observable>, [PezpalletBrokerRegionId]> & QueryableStorageEntry; + /** + * The Polkadot Core reservations (generally tasked with the maintenance of System Chains). + **/ + reservations: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Received revenue info from the relay chain. + **/ + revenueInbox: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The details of the current sale, including its properties and status. + **/ + saleInfo: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current status of miscellaneous subsystems of this pallet. + **/ + status: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current workload of each core. This gets updated with workplan as timeslices pass. + **/ + workload: AugmentedQuery Observable>, [u16]> & QueryableStorageEntry; + /** + * The work we plan on having each core do at a particular time in the future. + **/ + workplan: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u16 | AnyNumber | Uint8Array]) => Observable>>, [ITuple<[u32, u16]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + childBounties: { + /** + * Child bounties that have been added. + **/ + childBounties: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts + * for each parent bounty. Number of total child bounties. Will be removed in May 2025. + **/ + childBountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each child-bounty. Indexed by `(parent_id, child_id)`. + * + * This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version. + **/ + childBountyDescriptionsV1: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The cumulative child-bounty curator fee for each parent bounty. + **/ + childrenCuratorFees: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of active child bounties per parent bounty. + * Map of parent bounty index to number of child bounties. + **/ + parentChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of total child bounties per parent bounty, including completed bounties. + **/ + parentTotalChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The mapping of the child bounty ids from storage version `V0` to the new `V1` version. + * + * The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids + * based on the child bounty count per parent bounty [`ParentTotalChildBounties`]. + * The item intended solely for client convenience and not used in the pallet's core logic. + **/ + v0ToV1ChildBountyIds: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + contracts: { + /** + * A mapping from a contract's code hash to its code info. + **/ + codeInfoOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The code associated with a given account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + contractInfoOf: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Evicted contracts that await child trie deletion. + * + * Child trie deletion is a heavy operation depending on the amount of storage items + * stored in said trie. Therefore this operation is performed lazily in `on_idle`. + **/ + deletionQueue: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * A pair of monotonic counters used to track the latest contract marked for deletion + * and the latest deleted contract in queue. + **/ + deletionQueueCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A migration can span across multiple blocks. This storage defines a cursor to track the + * progress of the migration, enabling us to resume from the last completed position. + **/ + migrationInProgress: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * This is a **monotonic** counter incremented on contract instantiation. + * + * This is used in order to generate unique trie ids for contracts. + * The trie id of a new contract is calculated from hash(account_id, nonce). + * The nonce is required because otherwise the following sequence would lead to + * a possible collision of storage: + * + * 1. Create a new contract. + * 2. Terminate the contract. + * 3. Immediately recreate the contract with the same account_id. + * + * This is bad because the contents of a trie are deleted lazily and there might be + * storage of the old instantiation still in it when the new contract is created. Please + * note that we can't replace the counter by the block number because the sequence above + * can happen in the same block. We also can't keep the account counter in memory only + * because storage is the only way to communicate across different extrinsics in the + * same block. + * + * # Note + * + * Do not use it to determine the number of contracts. It won't be decremented if + * a contract is destroyed. + **/ + nonce: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A mapping from a contract's code hash to its code. + **/ + pristineCode: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + convictionVoting: { + /** + * The voting classes which have a non-zero lock requirement and the lock amounts which they + * require. The actual amount locked on behalf of this pallet should always be the maximum of + * this list. + **/ + classLocksFor: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * All voting for a particular voter in a particular voting class. We store the balance for the + * number of votes that we have recorded. + **/ + votingFor: AugmentedQuery Observable, [AccountId32, u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + coreFellowship: { + /** + * The status of a claimant. + **/ + member: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Some evidence together with the desired outcome for which it was presented. + **/ + memberEvidence: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * The overall status of the system. + **/ + params: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + council: { + /** + * Consideration cost created for publishing and storing a proposal. + * + * Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if + * the proposal count at the time of creation was below threshold N). + **/ + costOf: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The current members of the collective. This is stored sorted (just by value). + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The prime member that helps determine the default vote behavior in case of abstentions. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Proposals so far. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Actual proposal for a given hash, if it's current. + **/ + proposalOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The hashes of the active proposals. + **/ + proposals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + delegatedStaking: { + /** + * Map of `Agent` to their `Ledger`. + **/ + agents: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForAgents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForDelegators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Map of Delegators to their `Delegation`. + * + * Implementation note: We are not using a double map with `delegator` and `agent` account + * as keys since we want to restrict delegators to delegate only to one account at a time. + **/ + delegators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + democracy: { + /** + * A record of who vetoed what. Maps proposal hash to a possible existent block number + * (until when it may not be resubmitted) and who vetoed it. + **/ + blacklist: AugmentedQuery Observable]>>>, [H256]> & QueryableStorageEntry; + /** + * Record of all proposals that have been subject to emergency cancellation. + **/ + cancellations: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * Those who have locked a deposit. + * + * TWOX-NOTE: Safe, as increasing integer keys are safe. + **/ + depositOf: AugmentedQuery Observable, u128]>>>, [u32]> & QueryableStorageEntry; + /** + * True if the last referendum tabled was submitted externally. False if it was a public + * proposal. + **/ + lastTabledWasExternal: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The lowest referendum index representing an unbaked referendum. Equal to + * `ReferendumCount` if there isn't a unbaked referendum. + **/ + lowestUnbaked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * General information concerning any proposal or referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [PezpalletDemocracyMetadataOwner]> & QueryableStorageEntry; + /** + * The referendum to be tabled whenever it would be valid to table an external proposal. + * This happens when a referendum needs to be tabled and one of two conditions are met: + * - `LastTabledWasExternal` is `false`; or + * - `PublicProps` is empty. + **/ + nextExternal: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The number of (public) proposals that have been made so far. + **/ + publicPropCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The public proposals. Unsorted. The second item is the proposal. + **/ + publicProps: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + * + * TWOX-NOTE: SAFE as indexes are not under an attacker’s control. + **/ + referendumInfoOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * All votes for a particular voter. We store the balance for the number of votes that we + * have recorded. The second item is the total amount of delegations, that will be added. + * + * TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway. + **/ + votingOf: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + electionProviderMultiPhase: { + /** + * Current phase. + **/ + currentPhase: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Desired number of targets to elect for this round. + * + * Only exists when [`Snapshot`] is present. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + desiredTargets: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum score that each 'untrusted' solution must attain in order to be considered + * feasible. + * + * Can be set via `set_minimum_untrusted_score`. + **/ + minimumUntrustedScore: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current best solution, signed or unsigned, queued to be returned upon `elect`. + * + * Always sorted by score. + **/ + queuedSolution: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Internal counter for the number of rounds. + * + * This is useful for de-duplication of transactions submitted to the pool, and general + * diagnostics of the pallet. + * + * This is merely incremented once per every time that an upstream `elect` is called. + **/ + round: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a + * value in `SignedSubmissions`. + * + * We never need to process more than a single signed submission at a time. Signed submissions + * can be quite large, so we're willing to pay the cost of multiple database accesses to access + * them one at a time instead of reading and decoding all of them at once. + **/ + signedSubmissionIndices: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The next index to be assigned to an incoming signed submission. + * + * Every accepted submission is assigned a unique index; that index is bound to that particular + * submission for the duration of the election. On election finalization, the next index is + * reset to 0. + * + * We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its + * capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`, + * because iteration is slow. Instead, we store the value here. + **/ + signedSubmissionNextIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Unchecked, signed solutions. + * + * Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while + * allowing us to keep only a single one in memory at a time. + * + * Twox note: the key of the map is an auto-incrementing index which users cannot inspect or + * affect; we shouldn't need a cryptographically secure hasher. + **/ + signedSubmissionsMap: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Snapshot data of the round. + * + * This is created at the beginning of the signed phase and cleared upon calling `elect`. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + snapshot: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The metadata of the [`RoundSnapshot`] + * + * Only exists when [`Snapshot`] is present. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + snapshotMetadata: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + elections: { + /** + * The present candidate list. A current member or runner-up can never enter this vector + * and is always implicitly assumed to be a candidate. + * + * Second element is the deposit. + * + * Invariant: Always sorted based on account id. + **/ + candidates: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The total number of vote rounds that have happened, excluding the upcoming one. + **/ + electionRounds: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current elected members. + * + * Invariant: Always sorted based on account id. + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current reserved runners-up. + * + * Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the + * last (i.e. _best_) runner-up will be replaced. + **/ + runnersUp: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Votes and locked stake of a particular voter. + * + * TWOX-NOTE: SAFE as `AccountId` is a crypto hash. + **/ + voting: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fastUnstake: { + /** + * Counter for the related counted storage map + **/ + counterForQueue: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Number of eras to check per block. + * + * If set to 0, this pallet does absolutely nothing. Cannot be set to more than + * [`Config::MaxErasToCheckPerBlock`]. + * + * Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are + * checked. The checking is represented by updating [`UnstakeRequest::checked`], which is + * stored in [`Head`]. + **/ + erasToCheckPerBlock: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current "head of the queue" being unstaked. + * + * The head in itself can be a batch of up to [`Config::BatchSize`] stakers. + **/ + head: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The map of all accounts wishing to be unstaked. + * + * Keeps track of `AccountId` wishing to unstake and it's corresponding deposit. + **/ + queue: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + glutton: { + /** + * The proportion of the remaining `ref_time` to consume during `on_idle`. + * + * `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to + * over `1.0` could stall the chain. + **/ + compute: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The proportion of the `block length` to consume on each block. + * + * `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to + * over `1.0` could stall the chain. + **/ + length: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The proportion of the remaining `proof_size` to consume during `on_idle`. + * + * `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to + * over `1.0` could stall the chain. + **/ + storage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Storage map used for wasting proof size. + * + * It contains no meaningful data - hence the name "Trash". The maximal number of entries is + * set to 65k, which is just below the next jump at 16^4. This is important to reduce the proof + * size benchmarking overestimate. The assumption here is that we won't have more than 65k * + * 1KiB = 65MiB of proof size wasting in practice. However, this limit is not enforced, so the + * pallet would also work out of the box with more entries, but its benchmarked proof weight + * would possibly be underestimated in that case. + **/ + trashData: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The current number of entries in `TrashData`. + **/ + trashDataCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + grandpa: { + /** + * The current list of authorities. + **/ + authorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The number of changes (both in terms of keys and underlying economic responsibilities) + * in the "set" of Grandpa validators from genesis. + **/ + currentSetId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * next block number where we can force a change. + **/ + nextForced: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pending change: (signaled at, scheduled change). + **/ + pendingChange: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A mapping from grandpa set ID to the index of the *most recent* session for which its + * members were responsible. + * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and GRANDPA set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * + * TWOX-NOTE: `SetId` is not under user control. + **/ + setIdSession: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * `true` if we are currently stalled. + **/ + stalled: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * State of the current authority set. + **/ + state: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + historical: { + /** + * Mapping from historical session indices to session-data root hash and validator count. + **/ + historicalSessions: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * The range of historical sessions we store. [first, last) + **/ + storedRange: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + identity: { + /** + * A map of the accounts who are authorized to grant usernames. + **/ + authorityOf: AugmentedQuery Observable>, [Bytes]> & QueryableStorageEntry; + /** + * Information that is pertinent to identify the entity behind an account. First item is the + * registration, second is the account's primary username. + * + * TWOX-NOTE: OK ― `AccountId` is a secure hash. + **/ + identityOf: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Usernames that an authority has granted, but that the account controller has not confirmed + * that they want it. Used primarily in cases where the `AccountId` cannot provide a signature + * because they are a pure proxy, multisig, etc. In order to confirm it, they should call + * [accept_username](`Call::accept_username`). + * + * First tuple item is the account and second is the acceptance deadline. + **/ + pendingUsernames: AugmentedQuery Observable>>, [Bytes]> & QueryableStorageEntry; + /** + * The set of registrars. Not expected to get very big as can only be added through a + * special origin (likely a council motion). + * + * The index into this can be cast to `RegistrarIndex` to get a valid value. + **/ + registrars: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Alternative "sub" identities of this account. + * + * The first item is the deposit, the second is a vector of the accounts. + * + * TWOX-NOTE: OK ― `AccountId` is a secure hash. + **/ + subsOf: AugmentedQuery Observable]>>, [AccountId32]> & QueryableStorageEntry; + /** + * The super-identity of an alternative "sub" identity together with its name, within that + * context. If the account is not some other account's sub-identity, then just `None`. + **/ + superOf: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * Usernames for which the authority that granted them has started the removal process by + * unbinding them. Each unbinding username maps to its grace period expiry, which is the first + * block in which the username could be deleted through a + * [remove_username](`Call::remove_username`) call. + **/ + unbindingUsernames: AugmentedQuery Observable>, [Bytes]> & QueryableStorageEntry; + /** + * Reverse lookup from `username` to the `AccountId` that has registered it and the provider of + * the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if + * the user has cleared their username or it has been removed. + * + * Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one + * primary username. + **/ + usernameInfoOf: AugmentedQuery Observable>, [Bytes]> & QueryableStorageEntry; + /** + * Identifies the primary username of an account. + **/ + usernameOf: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + imOnline: { + /** + * For each session index, we keep a mapping of `ValidatorId` to the + * number of blocks authored by the given authority. + **/ + authoredBlocks: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The block number after which it's ok to send heartbeats in the current + * session. + * + * At the beginning of each session we set this to a value that should fall + * roughly in the middle of the session duration. The idea is to first wait for + * the validators to produce a block in the current session, so that the + * heartbeat later on will not be necessary. + * + * This value will only be used as a fallback if we fail to get a proper session + * progress estimate from `NextSessionRotation`, as those estimates should be + * more accurate then the value we calculate for `HeartbeatAfter`. + **/ + heartbeatAfter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current set of keys that may issue a heartbeat. + **/ + keys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`. + **/ + receivedHeartbeats: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + indices: { + /** + * The lookup from index to account. + **/ + accounts: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + lottery: { + /** + * The calls stored in this pallet to be used in an active lottery if configured + * by `Config::ValidateCall`. + **/ + callIndices: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The configuration for the current lottery. + **/ + lottery: AugmentedQuery Observable>, []> & QueryableStorageEntry; + lotteryIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Users who have purchased a ticket. (Lottery Index, Tickets Purchased) + **/ + participants: AugmentedQuery Observable>]>>, [AccountId32]> & QueryableStorageEntry; + /** + * Each ticket's owner. + * + * May have residual storage from previous lotteries. Use `TicketsCount` to see which ones + * are actually valid ticket mappings. + **/ + tickets: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Total number of tickets sold. + **/ + ticketsCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + mixnet: { + /** + * Index of the current session. This may be offset relative to the session index tracked by + * eg `pallet_session`; mixnet session indices are independent. + **/ + currentSessionIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Block in which the current session started. + **/ + currentSessionStartBlock: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Mixnode sets by session index. Only the mixnode sets for the previous, current, and next + * sessions are kept; older sets are discarded. + * + * The mixnodes in each set are keyed by authority index so we can easily check if an + * authority has registered a mixnode. The authority indices should only be used during + * registration; the authority indices for the very first session are made up. + **/ + mixnodes: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Authority list for the next session. + **/ + nextAuthorityIds: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + mmr: { + /** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + **/ + nodes: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * Current size of the MMR (number of leaves). + **/ + numberOfLeaves: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Latest MMR Root hash. + **/ + rootHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + mmrLeaf: { + /** + * Details of current BEEFY authority set. + **/ + beefyAuthorities: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Details of next BEEFY authority set. + * + * This storage entry is used as cache for calls to `update_beefy_next_authority_set`. + **/ + beefyNextAuthorities: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multiBlockMigrations: { + /** + * The currently active migration to run and its cursor. + * + * `None` indicates that no migration is running. + **/ + cursor: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Set of all successfully executed migrations. + * + * This is used as blacklist, to not re-execute migrations that have not been removed from the + * codebase yet. Governance can regularly clear this out via `clear_historic`. + **/ + historic: AugmentedQuery Observable>, [Bytes]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multisig: { + /** + * The set of open multisig operations. + **/ + multisigs: AugmentedQuery Observable>, [AccountId32, U8aFixed]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nftFractionalization: { + /** + * Keeps track of the corresponding NFT ID, asset ID and amount minted. + **/ + nftToAsset: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nfts: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery Observable>, [AccountId32, u32, u32]> & QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery | null | Uint8Array | u32 | AnyNumber, arg3: PezpalletNftsAttributeNamespace | { Pallet: any } | { CollectionOwner: any } | { ItemOwner: any } | { Account: any } | string | Uint8Array, arg4: Bytes | string | Uint8Array) => Observable>>, [u32, Option, PezpalletNftsAttributeNamespace, Bytes]> & QueryableStorageEntry, PezpalletNftsAttributeNamespace, Bytes]>; + /** + * Details of a collection. + **/ + collection: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + collectionAccount: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Config of a collection. + **/ + collectionConfigOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + collectionMetadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + * Stores collection roles as per account. + **/ + collectionRoleOf: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + item: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Item attribute approvals. + **/ + itemAttributesApprovalsOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Config of an item. + **/ + itemConfigOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Metadata of an item. + **/ + itemMetadataOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * A price of an item. + **/ + itemPriceOf: AugmentedQuery Observable]>>>, [u32, u32]> & QueryableStorageEntry; + /** + * Stores the `CollectionId` that is going to be used for the next collection. + * This gets incremented whenever a new collection is created. + **/ + nextCollectionId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Handles all the pending swaps. + **/ + pendingSwapOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nis: { + /** + * The queues of bids. Indexed by duration (in `Period`s). + **/ + queues: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The totals of items and balances within each queue. Saves a lot of storage reads in the + * case of sparsely packed queues. + * + * The vector is indexed by duration in `Period`s, offset by one, so information on the queue + * whose duration is one `Period` would be storage `0`. + **/ + queueTotals: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The currently outstanding receipts, indexed according to the order of creation. + **/ + receipts: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Summary information over the general state. + **/ + summary: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nominationPools: { + /** + * Storage for bonded pools. + **/ + bondedPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Map from a pool member account to their opted claim permission. + **/ + claimPermissions: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForBondedPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForMetadata: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPoolMembers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForReversePoolIdLookup: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRewardPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForSubPoolsStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum commission that can be charged by a pool. Used on commission payouts to bound + * pool commissions that are > `GlobalMaxCommission`, necessary if a future + * `GlobalMaxCommission` is lower than some current pool commissions. + **/ + globalMaxCommission: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Ever increasing number of all pools created so far. + **/ + lastPoolId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Maximum number of members that can exist in the system. If `None`, then the count + * members are not bound on a system wide basis. + **/ + maxPoolMembers: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of members that may belong to pool. If `None`, then the count of + * members is not bound on a per pool basis. + **/ + maxPoolMembersPerPool: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of nomination pools that can exist. If `None`, then an unbounded number of + * pools can exist. + **/ + maxPools: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Metadata for the pool. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Minimum bond required to create a pool. + * + * This is the amount that the depositor must put as their initial stake in the pool, as an + * indication of "skin in the game". + * + * This is the value that will always exist in the staking ledger of the pool bonded account + * while all other accounts leave. + **/ + minCreateBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum amount to bond to join a pool. + **/ + minJoinBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Active members. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + poolMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A reverse lookup from the pool's account id to its id. + * + * This is only used for slashing and on automatic withdraw update. In all other instances, the + * pool id is used, and the accounts are deterministically derived from it. + **/ + reversePoolIdLookup: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Reward pools. This is where there rewards for each pool accumulate. When a members payout is + * claimed, the balance comes out of the reward pool. Keyed by the bonded pools account. + **/ + rewardPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Groups of unbonding pools. Each group of unbonding pools belongs to a + * bonded pool, hence the name sub-pools. Keyed by the bonded pools account. + **/ + subPoolsStorage: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sum of funds across all pools. + * + * This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`] + * because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's + * `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s. + **/ + totalValueLocked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + offences: { + /** + * A vector of reports of the same kind that happened at the same time slot. + **/ + concurrentReportsIndex: AugmentedQuery Observable>, [U8aFixed, Bytes]> & QueryableStorageEntry; + /** + * The primary structure that holds all offence records keyed by report identifiers. + **/ + reports: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + palletExampleMbms: { + /** + * Define a storage item to illustrate multi-block migrations. + **/ + myMap: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parameters: { + /** + * Stored parameters. + **/ + parameters: AugmentedQuery Observable>, [KitchensinkRuntimeRuntimeParametersKey]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + poolAssets: { + /** + * The holdings of a specific account for a specific asset. + **/ + account: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Approved balance transfers. First balance is the amount approved for transfer. Second + * is the amount of `T::Currency` reserved for storing this. + * First key is the asset ID, second key is the owner and third key is the delegate. + **/ + approvals: AugmentedQuery Observable>, [u32, AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Details of an asset. + **/ + asset: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an asset. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The asset ID enforced for the next asset creation, if any present. Otherwise, this storage + * item has no effect. + * + * This can be useful for setting up constraints for IDs of the new assets. For example, by + * providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an + * auto-increment model can be applied to all new asset IDs. + * + * The initial next asset ID can be set using the [`GenesisConfig`] or the + * [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration. + **/ + nextAssetId: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + pov: { + /** + * A value with a MEL bound of 32 byte. + **/ + boundedValue: AugmentedQuery Observable>, []> & QueryableStorageEntry; + doubleMap1M: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * 4MiB value. + **/ + largeValue: AugmentedQuery Observable>, []> & QueryableStorageEntry; + largeValue2: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A map with a maximum of 16M entries. + **/ + map16M: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * A map with a maximum of 1M entries. + **/ + map1M: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + unboundedMap: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + unboundedMap2: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + unboundedMapTwox: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * A value without a MEL bound. + **/ + unboundedValue: AugmentedQuery Observable>, []> & QueryableStorageEntry; + value: AugmentedQuery Observable>, []> & QueryableStorageEntry; + value2: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + preimage: { + preimageFor: AugmentedQuery | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[H256, u32]>]> & QueryableStorageEntry]>; + /** + * The request status of a given hash. + **/ + requestStatusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The request status of a given hash. + **/ + statusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proxy: { + /** + * The announcements made by the proxy (key). + **/ + announcements: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of account proxies. Maps the account which has delegated to the accounts + * which are being delegated to, together with the amount held on deposit. + **/ + proxies: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + randomnessCollectiveFlip: { + /** + * Series of block headers from the last 81 blocks that acts as random seed material. This + * is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of + * the oldest hash. + **/ + randomMaterial: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + rankedCollective: { + /** + * The index of each ranks's member into the group of members who have at least that rank. + **/ + idToIndex: AugmentedQuery Observable>, [u16, AccountId32]> & QueryableStorageEntry; + /** + * The members in the collective by index. All indices in the range `0..MemberCount` will + * return `Some`, however a member's index is not guaranteed to remain unchanged over time. + **/ + indexToId: AugmentedQuery Observable>, [u16, u32]> & QueryableStorageEntry; + /** + * The number of members in the collective who have at least the rank according to the index + * of the vec. + **/ + memberCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The current members of the collective. + **/ + members: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + votingCleanup: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + rankedPolls: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + recovery: { + /** + * Active recovery attempts. + * + * First account is the account to be recovered, and the second account + * is the user trying to recover the account. + **/ + activeRecoveries: AugmentedQuery Observable>, [AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * The list of allowed proxy accounts. + * + * Map from the user who can access it to the recovered account. + **/ + proxy: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of recoverable accounts and their recovery configuration. + **/ + recoverable: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + referenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + revive: { + /** + * A mapping from a contract's code hash to its code info. + **/ + codeInfoOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The code associated with a given account. + **/ + contractInfoOf: AugmentedQuery Observable>, [H160]> & QueryableStorageEntry; + /** + * Evicted contracts that await child trie deletion. + * + * Child trie deletion is a heavy operation depending on the amount of storage items + * stored in said trie. Therefore this operation is performed lazily in `on_idle`. + **/ + deletionQueue: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * A pair of monotonic counters used to track the latest contract marked for deletion + * and the latest deleted contract in queue. + **/ + deletionQueueCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The immutable data associated with a given account. + **/ + immutableDataOf: AugmentedQuery Observable>, [H160]> & QueryableStorageEntry; + /** + * Map a Ethereum address to its original `AccountId32`. + * + * When deriving a `H160` from an `AccountId32` we use a hash function. In order to + * reconstruct the original account we need to store the reverse mapping here. + * Register your `AccountId32` using [`Pallet::map_account`] in order to + * use it with this pallet. + **/ + originalAccount: AugmentedQuery Observable>, [H160]> & QueryableStorageEntry; + /** + * A mapping from a contract's code hash to its code. + **/ + pristineCode: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + safeMode: { + /** + * Holds the reserve that was taken from an account at a specific block number. + * + * This helps governance to have an overview of outstanding deposits that should be returned or + * slashed. + **/ + deposits: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Contains the last block number that the safe-mode will remain entered in. + * + * Set to `None` when safe-mode is exited. + * + * Safe-mode is automatically exited when the current block number exceeds this value. + **/ + enteredUntil: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + salary: { + /** + * The status of a claimant. + **/ + claimant: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The overall status of the system. + **/ + status: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + scheduler: { + /** + * Items to be executed, indexed by the block number that they should be executed on. + **/ + agenda: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Block number at which the agenda began incomplete execution. + **/ + incompleteSince: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Lookup from a name to the block number and index of the task. + * + * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 + * identities. + **/ + lookup: AugmentedQuery Observable>>, [U8aFixed]> & QueryableStorageEntry; + /** + * Retry configurations for items to be executed, indexed by task address. + **/ + retries: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery | [PezspCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable>, [ITuple<[PezspCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + society: { + /** + * The current bids, stored ordered by the value of the bid. + **/ + bids: AugmentedQuery Observable>, []> & QueryableStorageEntry; + candidates: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The number of challenge rounds there have been. Used to identify stale DefenderVotes. + **/ + challengeRoundCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Votes for the defender, keyed by challenge round. + **/ + defenderVotes: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The defending member currently being challenged, along with a running tally of votes. + **/ + defending: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The first member. + **/ + founder: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The most primary from the most recently approved rank 0 members in the society. + **/ + head: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current items in `Members` keyed by their unique index. Keys are densely populated + * `0..MemberCount` (does not include `MemberCount`). + **/ + memberByIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.) + **/ + memberCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current members and their rank. Doesn't include `SuspendedMembers`. + **/ + members: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * At the end of the claim period, this contains the most recently approved members (along with + * their bid and round ID) who is from the most recent round with the lowest bid. They will + * become the new `Head`. + **/ + nextHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The max number of members for the society at one time. + **/ + parameters: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Information regarding rank-0 payouts, past and future. + **/ + payouts: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Amount of our account balance that is specifically for the next round's bid(s). + **/ + pot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of rounds which have passed. + **/ + roundCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A hash of the rules of this society concerning membership. Can only be set once and + * only by the founder. + **/ + rules: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current skeptic. + **/ + skeptic: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The set of suspended members, with their old membership record. + **/ + suspendedMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor. + **/ + voteClearCursor: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Double map from Candidate -> Voter -> (Maybe) Vote. + **/ + votes: AugmentedQuery Observable>, [AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + staking: { + /** + * The active era information, it holds index and start. + * + * The active era is the era being currently rewarded. Validator set of this era must be + * equal to [`SessionInterface::validators`]. + **/ + activeEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all locked "stash" accounts to the controller account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + bonded: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A mapping from still-bonded eras to the first session index of that era. + * + * Must contains information for eras for the range: + * `[active_era - bounding_duration; active_era]` + **/ + bondedEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The amount of currency given to reporters of a slash event which was + * canceled by extraordinary circumstances (e.g. governance). + **/ + canceledSlashPayout: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The threshold for when users can start calling `chill_other` for other validators / + * nominators. The threshold is compared to the actual number of validators / nominators + * (`CountFor*`) in the system compared to the configured max (`Max*Count`). + **/ + chillThreshold: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * History of claimed paged rewards by era and validator. + * + * This is keyed by era and validator stash which maps to the set of page indexes which have + * been claimed. + * + * It is removed after [`Config::HistoryDepth`] eras. + **/ + claimedRewards: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForNominators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForValidators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForVirtualStakers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current era index. + * + * This is the latest planned era, depending on how the Session pallet queues the validator + * set, it might be active or not. + **/ + currentEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last planned session scheduled by the session pallet. + * + * This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]. + **/ + currentPlannedSession: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Rewards for the last [`Config::HistoryDepth`] eras. + * If reward hasn't been set or has been removed then 0 reward is returned. + **/ + erasRewardPoints: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Exposure of validator at era. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty exposure is returned. + * + * Note: Deprecated since v14. Use `EraInfo` instead to work with exposures. + **/ + erasStakers: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Clipped Exposure of validator at era. + * + * Note: This is deprecated, should be used as read-only and will be removed in the future. + * New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead. + * + * This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the + * `T::MaxExposurePageSize` biggest stakers. + * (Note: the field `total` and `own` of the exposure remains unchanged). + * This is used to limit the i/o cost for the nominator payout. + * + * This is keyed fist by the era index to allow bulk deletion and then the stash account. + * + * It is removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty exposure is returned. + * + * Note: Deprecated since v14. Use `EraInfo` instead to work with exposures. + **/ + erasStakersClipped: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Summary of validator exposure at a given era. + * + * This contains the total stake in support of the validator and their own stake. In addition, + * it can also be used to get the number of nominators backing this validator and the number of + * exposure pages they are divided into. The page count is useful to determine the number of + * pages of rewards that needs to be claimed. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * Should only be accessed through `EraInfo`. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty overview is returned. + **/ + erasStakersOverview: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Paginated exposure of a validator at given era. + * + * This is keyed first by the era index to allow bulk deletion, then stash account and finally + * the page. Should only be accessed through `EraInfo`. + * + * This is cleared after [`Config::HistoryDepth`] eras. + **/ + erasStakersPaged: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * The session index at which the era start for the last [`Config::HistoryDepth`] eras. + * + * Note: This tracks the starting session (i.e. session index when era start being active) + * for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`. + **/ + erasStartSessionIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The total amount staked for the last [`Config::HistoryDepth`] eras. + * If total hasn't been set or has been removed then 0 stake is returned. + **/ + erasTotalStake: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Similar to `ErasStakers`, this holds the preferences of validators. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + **/ + erasValidatorPrefs: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The total validator era payout for the last [`Config::HistoryDepth`] eras. + * + * Eras that haven't finished yet or has been removed doesn't have reward. + **/ + erasValidatorReward: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Mode of era forcing. + **/ + forceEra: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any validators that may never be slashed or forcibly kicked. It's a Vec since they're + * easy to initialize and the performance hit is minimal (we expect no more than four + * invulnerables) and restricted to testnets. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all (unlocked) "controller" accounts to the info regarding the staking. + * + * Note: All the reads and mutations to this storage *MUST* be done through the methods exposed + * by [`StakingLedger`] to ensure data and lock consistency. + **/ + ledger: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The maximum nominator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxNominatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum staked rewards, i.e. the percentage of the era inflation that + * is used for stake rewards. + * See [Era payout](./index.html#era-payout). + **/ + maxStakedRewards: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The maximum validator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxValidatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum amount of commission that validators can set. + * + * If set to `0`, no limit exists. + **/ + minCommission: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active nominator stake of the last successful election. + **/ + minimumActiveStake: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum number of staking participants before emergency conditions are imposed. + **/ + minimumValidatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a nominator. + **/ + minNominatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a validator. + **/ + minValidatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from nominator stash key to their nomination preferences, namely the validators that + * they wish to support. + * + * Note that the keys of this storage map might become non-decodable in case the + * account's [`NominationsQuota::MaxNominations`] configuration is decreased. + * In this rare case, these nominators + * are still existent in storage, their key is correct and retrievable (i.e. `contains_key` + * indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable + * nominators will effectively not-exist, until they re-submit their preferences such that it + * is within the bounds of the newly set `Config::MaxNominations`. + * + * This implies that `::iter_keys().count()` and `::iter().count()` might return different + * values for this map. Moreover, the main `::count()` is aligned with the former, namely the + * number of keys that exist. + * + * Lastly, if any of the nominators become non-decodable, they can be chilled immediately via + * [`Call::chill_other`] dispatchable by anyone. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + nominators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on nominators, mapped by era to the highest slash value of the era. + **/ + nominatorSlashInEra: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Where the reward payment should be made. Keyed by stash. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + payee: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Slashing spans for stash accounts. + **/ + slashingSpans: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The percentage of the slash that is distributed to reporters. + * + * The rest of the slashed value is handled by the `Slash`. + **/ + slashRewardFraction: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Records information about the maximum slash of a stash within a slashing span, + * as well as how much reward has been paid out. + **/ + spanSlash: AugmentedQuery | [AccountId32 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable, [ITuple<[AccountId32, u32]>]> & QueryableStorageEntry]>; + /** + * All unapplied slashes that are queued for later. + **/ + unappliedSlashes: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The ideal number of active validators. + **/ + validatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from (wannabe) validator stash key to the preferences of that validator. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + validators: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on validators, mapped by era to the highest slash proportion + * and slash value of the era. + **/ + validatorSlashInEra: AugmentedQuery Observable>>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Stakers whose funds are managed by other pallets. + * + * This pallet does not apply any locks on them, therefore they are only virtually bonded. They + * are expected to be keyless accounts and hence should not be allowed to mutate their ledger + * directly via this pallet. Instead, these accounts are managed by other pallets and accessed + * via low level apis. We keep track of them to do minimal integrity checks. + **/ + virtualStakers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stateTrieMigration: { + /** + * The limits that are imposed on automatic migrations. + * + * If set to None, then no automatic migration happens. + **/ + autoLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Migration progress. + * + * This stores the snapshot of the last migrated keys. It can be set into motion and move + * forward by any of the means provided by this pallet. + **/ + migrationProcess: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum limits that the signed migration could use. + * + * If not set, no signed submission is allowed. + **/ + signedMigrationMaxLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + sudo: { + /** + * The `AccountId` of the sudo key. + **/ + key: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The weight reclaimed for the extrinsic. + * + * This information is available until the end of the extrinsic execution. + * More precisely this information is removed in `note_applied_extrinsic`. + * + * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate + * reduction. + **/ + extrinsicWeightReclaimed: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + tasksExample: { + /** + * Numbers to be added into the total. + **/ + numbers: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Some running total. + **/ + total: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + technicalCommittee: { + /** + * Consideration cost created for publishing and storing a proposal. + * + * Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if + * the proposal count at the time of creation was below threshold N). + **/ + costOf: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The current members of the collective. This is stored sorted (just by value). + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The prime member that helps determine the default vote behavior in case of abstentions. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Proposals so far. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Actual proposal for a given hash, if it's current. + **/ + proposalOf: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The hashes of the active proposals. + **/ + proposals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + technicalMembership: { + /** + * The current membership, stored as an ordered Vec. + **/ + members: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current prime member, if one exists. + **/ + prime: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + tips: { + /** + * Simple preimage lookup from the reason's hash to the original data. Again, has an + * insecure enumerable hash since the key is guaranteed to be the result of a secure hash. + **/ + reasons: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value. + * This has the insecure enumerable hash function since the key itself is already + * guaranteed to be a secure hash. + **/ + tips: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & QueryableStorageEntry; + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionStorage: { + blockTransactions: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Storage fee per byte. + **/ + byteFee: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Count indexed chunks for each block. + **/ + chunkCount: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Storage fee per transaction. + **/ + entryFee: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Was the proof checked in this block? + **/ + proofChecked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD` + * for block authoring. + **/ + storagePeriod: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Collection of transaction metadata by block number. + **/ + transactions: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + treasury: { + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposal indices that have been approved but not yet awarded. + **/ + approvals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The amount which has been reported as inactive to Currency. + **/ + deactivated: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The blocknumber for the last triggered spend period. + **/ + lastSpendPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Number of proposals that have been made. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposals that have been made. + **/ + proposals: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The count of spends that have been made. + **/ + spendCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Spends that have been approved and being processed. + **/ + spends: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + txPause: { + /** + * The set of calls that are explicitly paused. + **/ + pausedCalls: AugmentedQuery | [Bytes | string | Uint8Array, Bytes | string | Uint8Array]) => Observable>, [ITuple<[Bytes, Bytes]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + uniques: { + /** + * The items held by any given account; set out this way so that items owned by a single + * account can be enumerated. + **/ + account: AugmentedQuery Observable>, [AccountId32, u32, u32]> & QueryableStorageEntry; + /** + * The items in existence and their ownership details. + **/ + asset: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Attributes of a collection. + **/ + attribute: AugmentedQuery | null | Uint8Array | u32 | AnyNumber, arg3: Bytes | string | Uint8Array) => Observable>>, [u32, Option, Bytes]> & QueryableStorageEntry, Bytes]>; + /** + * Details of a collection. + **/ + class: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The collections owned by any given account; set out this way so that collections owned by + * a single account can be enumerated. + **/ + classAccount: AugmentedQuery Observable>, [AccountId32, u32]> & QueryableStorageEntry; + /** + * Metadata of a collection. + **/ + classMetadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Keeps track of the number of items a collection might have. + **/ + collectionMaxSupply: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Metadata of an item. + **/ + instanceMetadataOf: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * Price of an asset instance. + **/ + itemPriceOf: AugmentedQuery Observable]>>>, [u32, u32]> & QueryableStorageEntry; + /** + * The collection, if any, of which an account is willing to take ownership. + **/ + ownershipAcceptance: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + vesting: { + /** + * Storage version of the pallet. + * + * New networks start with latest version, as determined by the genesis build. + **/ + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information regarding the vesting of a given account. + **/ + vesting: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + voterList: { + /** + * Counter for the related counted storage map + **/ + counterForListNodes: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A bag stored in storage. + * + * Stores a `Bag` struct, which stores head and tail pointers to itself. + **/ + listBags: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * A single node, within some bag. + * + * Nodes store links forward and back within their respective bags. + **/ + listNodes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + whitelist: { + whitelistedCall: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } // AugmentedQueries +} // declare module diff --git a/packages/api-augment/src/bizinikiwi/registry.ts b/packages/api-augment/src/bizinikiwi/registry.ts new file mode 100644 index 0000000..b96c083 --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/registry.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/types-augment/registry/bizinikiwi'; diff --git a/packages/api-augment/src/bizinikiwi/runtime.ts b/packages/api-augment/src/bizinikiwi/runtime.ts new file mode 100644 index 0000000..e3210cf --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/runtime.ts @@ -0,0 +1,593 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/calls'; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, u128, u32, u64 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { OpaqueKeyOwnershipProof } from '@pezkuwi/types/interfaces/babe'; +import type { Extrinsic } from '@pezkuwi/types/interfaces/extrinsics'; +import type { OpaqueMetadata } from '@pezkuwi/types/interfaces/metadata'; +import type { AccountId32, H160, H256, RuntimeCall, Slot } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportViewFunctionsViewFunctionDispatchError, PezframeSupportViewFunctionsViewFunctionId, PezframeSystemEventRecord, PezpalletContractsPrimitivesCode, PezpalletContractsPrimitivesCodeUploadReturnValue, PezpalletContractsPrimitivesContractAccessError, PezpalletContractsPrimitivesContractResult, PezpalletContractsPrimitivesExecReturnValue, PezpalletContractsPrimitivesStorageDeposit, PezpalletContractsWasmDeterminism, PezpalletReviveEvmApiDebugRpcTypesTrace, PezpalletReviveEvmApiDebugRpcTypesTracerType, PezpalletReviveEvmApiRpcTypesGenGenericTransaction, PezpalletRevivePrimitivesCode, PezpalletRevivePrimitivesCodeUploadReturnValue, PezpalletRevivePrimitivesContractAccessError, PezpalletRevivePrimitivesContractResultExecReturnValue, PezpalletRevivePrimitivesContractResultInstantiateReturnValue, PezpalletRevivePrimitivesEthTransactError, PezpalletRevivePrimitivesEthTransactInfo, PezpalletTransactionPaymentFeeDetails, PezpalletTransactionPaymentRuntimeDispatchInfo, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeConfiguration, PezspConsensusBabeEpoch, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyForkVotingProofOpaqueValue, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusBeefyValidatorSet, PezspConsensusGrandpaAppPublic, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspCoreCryptoKeyTypeId, PezspInherentsCheckInherentsResult, PezspInherentsInherentData, PezspMixnetMixnode, PezspMixnetMixnodesErr, PezspMixnetSessionStatus, PezspMmrPrimitivesError, PezspMmrPrimitivesLeafProof, PezspRuntimeBlock, PezspRuntimeDispatchError, PezspRuntimeExtrinsicInclusionMode, PezspRuntimeHeader, PezspRuntimeTransactionValidityTransactionSource, PezspRuntimeTransactionValidityTransactionValidityError, PezspRuntimeTransactionValidityValidTransaction, PezspStatementStoreRuntimeApiInvalidStatement, PezspStatementStoreRuntimeApiStatementSource, PezspStatementStoreRuntimeApiValidStatement, PezspStatementStoreStatement, PezspVersionRuntimeVersion, PezspWeightsWeightV2Weight } from '@pezkuwi/types/lookup'; +import type { IExtrinsic, Observable } from '@pezkuwi/types/types'; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module '@pezkuwi/api-base/types/calls' { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/ */ + accountNonceApi: { + /** + * Get current account nonce of given `AccountId`. + **/ + accountNonce: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x8a8047a53a8277ec/ */ + assetConversionApi: { + /** + * Returns the size of the liquidity pool for the given asset pair. + **/ + getReserves: AugmentedCall Observable>>>; + /** + * Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].,, Note that the price may have changed by the time the transaction is executed., (Use `amount_out_min` to control slippage.) + **/ + quotePriceExactTokensForTokens: AugmentedCall Observable>>; + /** + * Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].,, Note that the price may have changed by the time the transaction is executed., (Use `amount_in_max` to control slippage.) + **/ + quotePriceTokensForExactTokens: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x65f855d6e093c2f1/ */ + assetRewards: { + /** + * Get the cost of creating a pool.,, This is especially useful when the cost is dynamic. + **/ + poolCreationCost: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x8453b50b22293977/ */ + assetsApi: { + /** + * Returns the list of `AssetId`s and corresponding balance that an `AccountId` has. + **/ + accountBalances: AugmentedCall Observable>>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x687ad44ad37f03c2/ */ + authorityDiscoveryApi: { + /** + * Retrieve authority identifiers of the current and next authority set. + **/ + authorities: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xcbca25e39f142387/ */ + babeApi: { + /** + * Return the configuration for BABE. + **/ + configuration: AugmentedCall Observable>; + /** + * Returns information regarding the current epoch. + **/ + currentEpoch: AugmentedCall Observable>; + /** + * Returns the slot that started the current epoch. + **/ + currentEpochStart: AugmentedCall Observable>; + /** + * Generates a proof of key ownership for the given authority in the, current epoch. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `slot` as parameter the current, implementations ignores this parameter and instead relies on this, method being called at the correct block height, i.e. any point at, which the epoch for the given slot is live on-chain. Future, implementations will instead use indexed data through an offchain, worker, not requiring older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Returns information regarding the next epoch (which was already, previously announced). + **/ + nextEpoch: AugmentedCall Observable>; + /** + * Submits an unsigned extrinsic to report an equivocation. The caller, must provide the equivocation proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportEquivocationUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x49eaaf1b548a0cb0/ */ + beefyApi: { + /** + * Return the block number where BEEFY consensus is enabled/started + **/ + beefyGenesis: AugmentedCall Observable>>; + /** + * Generates a proof that the `prev_block_number` is part of the canonical chain at, `best_known_block_number`. + **/ + generateAncestryProof: AugmentedCall | null | Uint8Array | u32 | AnyNumber) => Observable>>; + /** + * Generates a proof of key ownership for the given authority in the, given set. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `set_id` as parameter the current, implementations ignores this parameter and instead relies on this, method being called at the correct block height, i.e. any point at, which the given set id is live on-chain. Future implementations will, instead use indexed data through an offchain worker, not requiring, older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a double voting equivocation. The caller, must provide the double voting proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportDoubleVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a fork voting equivocation. The caller, must provide the fork voting proof (the ancestry proof should be obtained using, `generate_ancestry_proof`) and a key ownership proof (should be obtained using, `generate_key_ownership_proof`). The extrinsic will be unsigned and should only, be accepted for local authorship (not to be broadcast to the network). This method, returns `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportForkVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a future block voting equivocation. The caller, must provide the future block voting proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`)., The extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportFutureBlockVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Return the current active BEEFY validator set + **/ + validatorSet: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/ */ + blockBuilder: { + /** + * Apply the given extrinsic.,, Returns an inclusion outcome which specifies if this extrinsic is included in, this block or not. + **/ + applyExtrinsic: AugmentedCall Observable, PezspRuntimeTransactionValidityTransactionValidityError>>>; + /** + * Check that the inherents are valid. The inherent data will vary from chain to chain. + **/ + checkInherents: AugmentedCall Observable>; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable>; + /** + * Generate inherent extrinsics. The inherent data will vary from chain to chain. + **/ + inherentExtrinsics: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x68b66ba122c93fa7/ */ + contractsApi: { + /** + * Perform a call from a specified account to a given contract.,, See [`crate::Pallet::bare_call`]. + **/ + call: AugmentedCall | null | Uint8Array | PezspWeightsWeightV2Weight, storage_deposit_limit: Option | null | Uint8Array | u128 | AnyNumber, input_data: Bytes | string | Uint8Array) => Observable<{ + readonly gasConsumed: PezspWeightsWeightV2Weight; + readonly gasRequired: PezspWeightsWeightV2Weight; + readonly storageDeposit: PezpalletContractsPrimitivesStorageDeposit; + readonly debugMessage: Bytes; + readonly result: Result; + readonly events: Option>; + } & Struct>>; + /** + * Query a given storage key in a given contract.,, Returns `Ok(Some(Vec))` if the storage value exists under the given key in the, specified account and `Ok(None)` if it doesn't. If the account specified by the address, doesn't exist, or doesn't have a contract then `Err` is returned. + **/ + getStorage: AugmentedCall Observable, PezpalletContractsPrimitivesContractAccessError>>>; + /** + * Instantiate a new contract.,, See `[crate::Pallet::bare_instantiate]`. + **/ + instantiate: AugmentedCall | null | Uint8Array | PezspWeightsWeightV2Weight, storage_deposit_limit: Option | null | Uint8Array | u128 | AnyNumber, code: PezpalletContractsPrimitivesCode, data: Bytes | string | Uint8Array, salt: Bytes | string | Uint8Array) => Observable>; + /** + * Upload new code without instantiating a contract from it.,, See [`crate::Pallet::bare_upload_code`]. + **/ + uploadCode: AugmentedCall | null | Uint8Array | u128 | AnyNumber, determinism: PezpalletContractsWasmDeterminism) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/ */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall Observable>; + /** + * Initialize a block with the given header and return the runtime executive mode. + **/ + initializeBlock: AugmentedCall Observable>; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/ */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the, storage.,, In the case of a FRAME-based runtime, this function deserializes the full, `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the, provided JSON blob is incorrect or incomplete or the deserialization fails, an error, is returned.,, Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no, defaults will be used. + **/ + buildState: AugmentedCall Observable>>; + /** + * Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by, `id`.,, If `id` is `None` the function should return JSON blob representation of the default, `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default, `RuntimeGenesisConfig`.,, Otherwise function returns a JSON representation of the built-in, named, `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not, exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of, (potentially nested) key-value pairs that are intended for customizing the default, runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation, of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can, be used in `build_state` method. + **/ + getPreset: AugmentedCall | null | Uint8Array | Text | string) => Observable>>; + /** + * Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.,, The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If, no named presets are provided by the runtime the list is empty. + **/ + presetNames: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xed99c5acb25eedf5/ */ + grandpaApi: { + /** + * Get current GRANDPA authority set id. + **/ + currentSetId: AugmentedCall Observable>; + /** + * Generates a proof of key ownership for the given authority in the, given set. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `set_id` as parameter the current, implementations ignore this parameter and instead rely on this, method being called at the correct block height, i.e. any point at, which the given set id is live on-chain. Future implementations will, instead use indexed data through an offchain worker, not requiring, older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Get the current GRANDPA authorities and weights. This should not change except, for when changes are scheduled and the corresponding delay has passed.,, When called at block B, it will return the set of authorities that should be, used to finalize descendants of this block (B+1, B+2, ...). The block B itself, is finalized by the authorities from block B-1. + **/ + grandpaAuthorities: AugmentedCall Observable>>>; + /** + * Submits an unsigned extrinsic to report an equivocation. The caller, must provide the equivocation proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportEquivocationUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/ */ + metadata: { + /** + * Returns the metadata of a runtime. + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version.,, If the given `version` isn't supported, this will return `None`., Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime. + **/ + metadataAtVersion: AugmentedCall Observable>>; + /** + * Returns the supported metadata versions.,, This can be used to call `metadata_at_version`. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6fd7c327202e4a8d/ */ + mixnetApi: { + /** + * Get the mixnode set for the current session. + **/ + currentMixnodes: AugmentedCall Observable, PezspMixnetMixnodesErr>>>; + /** + * Try to register a mixnode for the next session.,, If a registration extrinsic is submitted, `true` is returned. The caller should avoid, calling `maybe_register` again for a few blocks, to give the submitted extrinsic a, chance to get included.,, With the above exception, `maybe_register` is designed to be called every block. Most, of the time it will not do anything, for example:,, - If it is not an appropriate time to submit a registration extrinsic., - If the local node has already registered a mixnode for the next session., - If the local node is not permitted to register a mixnode for the next session.,, `session_index` should match `session_status().current_index`; if it does not, `false`, is returned immediately. + **/ + maybeRegister: AugmentedCall Observable>; + /** + * Get the mixnode set for the previous session. + **/ + prevMixnodes: AugmentedCall Observable, PezspMixnetMixnodesErr>>>; + /** + * Get the index and phase of the current session. + **/ + sessionStatus: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91d5df18b0d2cf58/ */ + mmrApi: { + /** + * Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,, use historical MMR state at given block height `n`. Else, use current MMR state. + **/ + generateProof: AugmentedCall | (u32 | AnyNumber | Uint8Array)[], best_known_block_number: Option | null | Uint8Array | u32 | AnyNumber) => Observable, PezspMmrPrimitivesLeafProof]>, PezspMmrPrimitivesError>>>; + /** + * Return the number of MMR blocks in the chain. + **/ + mmrLeafCount: AugmentedCall Observable>>; + /** + * Return the on-chain MMR root hash. + **/ + mmrRoot: AugmentedCall Observable>>; + /** + * Verify MMR proof against on-chain MMR for a batch of leaves.,, Note this function will use on-chain MMR root hash and check if the proof matches the hash., Note, the leaves should be sorted such that corresponding leaves and leaf indices have the, same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof] + **/ + verifyProof: AugmentedCall | (Bytes | string | Uint8Array)[], proof: PezspMmrPrimitivesLeafProof) => Observable>>; + /** + * Verify MMR proof against given root hash for a batch of leaves.,, Note this function does not require any on-chain storage - the, proof is verified against given MMR root hash.,, Note, the leaves should be sorted such that corresponding leaves and leaf indices have the, same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof] + **/ + verifyProofStateless: AugmentedCall | (Bytes | string | Uint8Array)[], proof: PezspMmrPrimitivesLeafProof) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x899a250cbe84f250/ */ + nftsApi: { + /** + * + **/ + attribute: AugmentedCall Observable>>; + /** + * + **/ + collectionAttribute: AugmentedCall Observable>>; + /** + * + **/ + collectionOwner: AugmentedCall Observable>>; + /** + * + **/ + customAttribute: AugmentedCall Observable>>; + /** + * + **/ + owner: AugmentedCall Observable>>; + /** + * + **/ + systemAttribute: AugmentedCall | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x17a6bc0d0062aeb3/ */ + nominationPoolsApi: { + /** + * Returns the equivalent points of `new_funds` for a given pool. + **/ + balanceToPoints: AugmentedCall Observable>; + /** + * Returns true if the delegated funds of the pool `member` needs migration.,, Once a pool has successfully migrated to the strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the, member can be migrated from pool account to the member's account. Use, [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation), to migrate the funds of the pool member. + **/ + memberNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool member.,, If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on, chain. + **/ + memberPendingSlash: AugmentedCall Observable>; + /** + * Returns the total contribution of a pool member including any balance that is unbonding. + **/ + memberTotalBalance: AugmentedCall Observable>; + /** + * Returns the pending rewards for the member that the AccountId was given for. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Returns the equivalent balance of `points` for a given pool. + **/ + pointsToBalance: AugmentedCall Observable>; + /** + * Returns the bonded account and reward account associated with the pool_id. + **/ + poolAccounts: AugmentedCall Observable>>; + /** + * Total balance contributed to the pool. + **/ + poolBalance: AugmentedCall Observable>; + /** + * Returns true if the pool with `pool_id` needs migration.,, This can happen when the `pallet-nomination-pools` has switched to using strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool, still has funds that were staked using the older strategy, [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use, [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake), to migrate the pool. + **/ + poolNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool. + **/ + poolPendingSlash: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/ */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x8c403e5c4a9fd442/ */ + reviveApi: { + /** + * Returns the free balance of the given `[H160]` address, using EVM decimals. + **/ + balance: AugmentedCall Observable>; + /** + * Returns the block gas limit. + **/ + blockGasLimit: AugmentedCall Observable>; + /** + * Perform a call from a specified account to a given contract.,, See [`crate::Pallet::bare_call`]. + **/ + call: AugmentedCall | null | Uint8Array | PezspWeightsWeightV2Weight, storage_deposit_limit: Option | null | Uint8Array | u128 | AnyNumber, input_data: Bytes | string | Uint8Array) => Observable>; + /** + * Perform an Ethereum call.,, See [`crate::Pallet::bare_eth_transact`] + **/ + ethTransact: AugmentedCall Observable>>; + /** + * Returns the gas price. + **/ + gasPrice: AugmentedCall Observable>; + /** + * Query a given storage key in a given contract.,, Returns `Ok(Some(Vec))` if the storage value exists under the given key in the, specified account and `Ok(None)` if it doesn't. If the account specified by the address, doesn't exist, or doesn't have a contract then `Err` is returned. + **/ + getStorage: AugmentedCall Observable, PezpalletRevivePrimitivesContractAccessError>>>; + /** + * Instantiate a new contract.,, See `[crate::Pallet::bare_instantiate]`. + **/ + instantiate: AugmentedCall | null | Uint8Array | PezspWeightsWeightV2Weight, storage_deposit_limit: Option | null | Uint8Array | u128 | AnyNumber, code: PezpalletRevivePrimitivesCode, data: Bytes | string | Uint8Array, salt: Option | null | Uint8Array | U8aFixed | string) => Observable>; + /** + * Returns the nonce of the given `[H160]` address. + **/ + nonce: AugmentedCall Observable>; + /** + * Traces the execution of an entire block and returns call traces.,, This is intended to be called through `state_call` to replay the block from the, parent block.,, See eth-rpc `debug_traceBlockByNumber` for usage. + **/ + traceBlock: AugmentedCall Observable>>>; + /** + * Dry run and return the trace of the given call.,, See eth-rpc `debug_traceCall` for usage. + **/ + traceCall: AugmentedCall Observable>>; + /** + * Traces the execution of a specific transaction within a block.,, This is intended to be called through `state_call` to replay the block from the, parent hash up to the transaction.,, See eth-rpc `debug_traceTransaction` for usage. + **/ + traceTx: AugmentedCall Observable>>; + /** + * Upload new code without instantiating a contract from it.,, See [`crate::Pallet::bare_upload_code`]. + **/ + uploadCode: AugmentedCall | null | Uint8Array | u128 | AnyNumber) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xccd9de6396c899ca/ */ + runtimeViewFunction: { + /** + * Execute a view function query. + **/ + executeViewFunction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/ */ + sessionKeys: { + /** + * Decode the given public session keys.,, Returns the list of public raw public keys + key type. + **/ + decodeSessionKeys: AugmentedCall Observable>>>>; + /** + * Generate a set of session keys with optionally using the given seed., The keys should be stored within the keystore exposed via runtime, externalities.,, The seed needs to be a valid `utf8` string.,, Returns the concatenated SCALE encoded public keys. + **/ + generateSessionKeys: AugmentedCall | null | Uint8Array | Bytes | string) => Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x18ef58a3b67ba770/ */ + stakingApi: { + /** + * Returns the page count of exposures for a validator `account` in a given era. + **/ + erasStakersPageCount: AugmentedCall Observable>; + /** + * Returns the nominations quota for a nominator with a given balance. + **/ + nominationsQuota: AugmentedCall Observable>; + /** + * Returns true if validator `account` has pages to be claimed for the given era. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/ */ + taggedTransactionQueue: { + /** + * Validate the transaction.,, This method is invoked by the transaction pool to learn details about given transaction., The implementation should make sure to verify the correctness of the transaction, against current state. The given `block_hash` corresponds to the hash of the block, that is used as current state.,, Note that this call may be performed by the pool multiple times and transactions, might be verified in any possible order. + **/ + validateTransaction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/ */ + transactionPaymentApi: { + /** + * + **/ + queryFeeDetails: AugmentedCall Observable>; + /** + * + **/ + queryInfo: AugmentedCall Observable>; + /** + * + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/ */ + transactionPaymentCallApi: { + /** + * Query fee details of a given encoded `Call`. + **/ + queryCallFeeDetails: AugmentedCall Observable>; + /** + * Query information of a dispatch class, weight, and fee of a given encoded `Call`. + **/ + queryCallInfo: AugmentedCall Observable>; + /** + * Query the output of the current `LengthToFee` given some input. + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * Query the output of the current `WeightToFee` given some input. + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xbe9fb0c91a8046cf/ */ + validateStatement: { + /** + * Validate the statement. + **/ + validateStatement: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/packages/api-augment/src/bizinikiwi/tx.ts b/packages/api-augment/src/bizinikiwi/tx.ts new file mode 100644 index 0000000..d8ebaba --- /dev/null +++ b/packages/api-augment/src/bizinikiwi/tx.ts @@ -0,0 +1,8208 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/submittable'; + +import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@pezkuwi/api-base/types'; +import type { Data } from '@pezkuwi/types'; +import type { Bytes, Compact, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, MultiAddress, Perbill, Percent, Perquintill, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { KitchensinkRuntimeOriginCaller, KitchensinkRuntimeProxyType, KitchensinkRuntimeRuntimeParameters, KitchensinkRuntimeSessionKeys, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime, PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezpalletAllianceCid, PezpalletAllianceDisbandWitness, PezpalletAllianceUnscrupulousItem, PezpalletBalancesAdjustmentDirection, PezpalletBrokerConfigRecord, PezpalletBrokerCoreMask, PezpalletBrokerFinality, PezpalletBrokerOnDemandRevenueRecord, PezpalletBrokerRegionId, PezpalletBrokerScheduleItem, PezpalletContractsWasmDeterminism, PezpalletConvictionVotingConviction, PezpalletConvictionVotingVoteAccountVote, PezpalletCoreFellowshipParamsTypeOption, PezpalletCoreFellowshipParamsTypeU128, PezpalletCoreFellowshipWish, PezpalletDemocracyConviction, PezpalletDemocracyMetadataOwner, PezpalletDemocracyVoteAccountVote, PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletElectionsPhragmenRenouncing, PezpalletIdentityJudgement, PezpalletIdentityLegacyIdentityInfo, PezpalletImOnlineHeartbeat, PezpalletImOnlineSr25519AppSr25519Signature, PezpalletMetaTxMetaTx, PezpalletMigrationsHistoricCleanupSelector, PezpalletMigrationsMigrationCursor, PezpalletMixnetRegistration, PezpalletMultisigTimepoint, PezpalletNftsAttributeNamespace, PezpalletNftsCancelAttributesApprovalWitness, PezpalletNftsCollectionConfig, PezpalletNftsDestroyWitness, PezpalletNftsItemConfig, PezpalletNftsItemTip, PezpalletNftsMintSettings, PezpalletNftsMintWitness, PezpalletNftsPreSignedAttributes, PezpalletNftsPreSignedMint, PezpalletNftsPriceWithDirection, PezpalletNominationPoolsBondExtra, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpPerbill, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsPoolState, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingRewardDestination, PezpalletStakingUnlockChunk, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletStateTrieMigrationProgress, PezpalletUniquesDestroyWitness, PezpalletVestingVestingInfo, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyForkVotingProofAncestryProof, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspMixnetAppSignature, PezspNposElectionsElectionScore, PezspNposElectionsSupport, PezspRuntimeMultiSignature, PezspSessionMembershipProof, PezspTransactionStorageProofTransactionStorageProof, PezspWeightsWeightV2Weight } from '@pezkuwi/types/lookup'; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = SubmittableExtrinsicFunction; + +declare module '@pezkuwi/api-base/types/submittable' { + interface AugmentedSubmittables { + alliance: { + /** + * Abdicate one's position as a voting member and just be an Ally. May be used by Fellows + * who do not want to leave the Alliance but do not have the capacity to participate + * operationally for some time. + **/ + abdicateFellowStatus: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Add accounts or websites to the list of unscrupulous items. + **/ + addUnscrupulousItems: AugmentedSubmittable<(items: Vec | (PezpalletAllianceUnscrupulousItem)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Make an announcement of a new IPFS CID about alliance issues. + **/ + announce: AugmentedSubmittable<(announcement: PezpalletAllianceCid) => SubmittableExtrinsic, [PezpalletAllianceCid]>; + /** + * Close a vote that is either approved, disapproved, or whose voting period has ended. + * + * Must be called by a Fellow. + **/ + close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, proposalWeightBound: PezspWeightsWeightV2Weight, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact, PezspWeightsWeightV2Weight, Compact]>; + /** + * Disband the Alliance, remove all active members and unreserve deposits. + * + * Witness data must be set. + **/ + disband: AugmentedSubmittable<(witness: PezpalletAllianceDisbandWitness) => SubmittableExtrinsic, [PezpalletAllianceDisbandWitness]>; + /** + * Elevate an Ally to Fellow. + **/ + elevateAlly: AugmentedSubmittable<(ally: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * As a member, give a retirement notice and start a retirement period required to pass in + * order to retire. + **/ + giveRetirementNotice: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Initialize the Alliance, onboard fellows and allies. + * + * The Alliance must be empty, and the call must provide some founding members. + * + * Must be called by the Root origin. + **/ + initMembers: AugmentedSubmittable<(fellows: Vec | (AccountId32 | string | Uint8Array)[], allies: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec, Vec]>; + /** + * Submit oneself for candidacy. A fixed deposit is reserved. + **/ + joinAlliance: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Kick a member from the Alliance and slash its deposit. + **/ + kickMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * A Fellow can nominate someone to join the alliance as an Ally. There is no deposit + * required from the nominator or nominee. + **/ + nominateAlly: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Add a new proposal to be voted on. + * + * Must be called by a Fellow. + **/ + propose: AugmentedSubmittable<(threshold: Compact | AnyNumber | Uint8Array, proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, RuntimeCall, Compact]>; + /** + * Remove an announcement. + **/ + removeAnnouncement: AugmentedSubmittable<(announcement: PezpalletAllianceCid) => SubmittableExtrinsic, [PezpalletAllianceCid]>; + /** + * Deem some items no longer unscrupulous. + **/ + removeUnscrupulousItems: AugmentedSubmittable<(items: Vec | (PezpalletAllianceUnscrupulousItem)[]) => SubmittableExtrinsic, [Vec]>; + /** + * As a member, retire from the Alliance and unreserve the deposit. + * + * This can only be done once you have called `give_retirement_notice` and the + * `RetirementPeriod` has passed. + **/ + retire: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set a new IPFS CID to the alliance rule. + **/ + setRule: AugmentedSubmittable<(rule: PezpalletAllianceCid) => SubmittableExtrinsic, [PezpalletAllianceCid]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * Must be called by a Fellow. + **/ + vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, Compact, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + allianceMotion: { + /** + * Close a vote that is either approved, disapproved or whose voting period has ended. + * + * May be called by any signed account in order to finish voting and close the proposal. + * + * If called before the end of the voting period it will only close the vote if it is + * has enough votes to be approved or disapproved. + * + * If called after the end of the voting period abstentions are counted as rejections + * unless there is a prime member set and the prime member cast an approval. + * + * If the close operation completes successfully with disapproval, the transaction fee will + * be waived. Otherwise execution of the approved operation will be charged to the caller. + * + * + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed + * proposal. + * + `length_bound`: The upper bound for the length of the proposal in storage. Checked via + * `storage::read` so it is `size_of::() == 4` larger than the pure length. + * + * ## Complexity + * - `O(B + M + P1 + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - `P1` is the complexity of `proposal` preimage. + * - `P2` is proposal-count (code-bounded) + **/ + close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, proposalWeightBound: PezspWeightsWeightV2Weight, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact, PezspWeightsWeightV2Weight, Compact]>; + /** + * Disapprove a proposal, close, and remove it from the system, regardless of its current + * state. + * + * Must be called by the Root origin. + * + * Parameters: + * * `proposal_hash`: The hash of the proposal that should be disapproved. + * + * ## Complexity + * O(P) where P is the number of max proposals + **/ + disapproveProposal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Dispatch a proposal from a member using the `Member` origin. + * + * Origin must be a member of the collective. + * + * ## Complexity: + * - `O(B + M + P)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` members-count (code-bounded) + * - `P` complexity of dispatching `proposal` + **/ + execute: AugmentedSubmittable<(proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, Compact]>; + /** + * Disapprove the proposal and burn the cost held for storing this proposal. + * + * Parameters: + * - `origin`: must be the `KillOrigin`. + * - `proposal_hash`: The hash of the proposal that should be killed. + * + * Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal. + **/ + kill: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Add a new proposal to either be voted on or executed directly. + * + * Requires the sender to be member. + * + * `threshold` determines whether `proposal` is executed directly (`threshold < 2`) + * or put up for voting. + * + * ## Complexity + * - `O(B + M + P1)` or `O(B + M + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - branching is influenced by `threshold` where: + * - `P1` is proposal execution complexity (`threshold < 2`) + * - `P2` is proposals-count (code-bounded) (`threshold >= 2`) + **/ + propose: AugmentedSubmittable<(threshold: Compact | AnyNumber | Uint8Array, proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, RuntimeCall, Compact]>; + /** + * Release the cost held for storing a proposal once the given proposal is completed. + * + * If there is no associated cost for the given proposal, this call will have no effect. + * + * Parameters: + * - `origin`: must be `Signed` or `Root`. + * - `proposal_hash`: The hash of the proposal. + * + * Emits `ProposalCostReleased` if any cost held for a given proposal. + **/ + releaseProposalCost: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Set the collective's membership. + * + * - `new_members`: The new member list. Be nice to the chain and provide it sorted. + * - `prime`: The prime member whose vote sets the default. + * - `old_count`: The upper bound for the previous number of members in storage. Used for + * weight estimation. + * + * The dispatch of this call must be `SetMembersOrigin`. + * + * NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but + * the weight estimations rely on it to estimate dispatchable weight. + * + * # WARNING: + * + * The `pallet-collective` can also be managed by logic outside of the pallet through the + * implementation of the trait [`ChangeMembers`]. + * Any call to `set_members` must be careful that the member set doesn't get out of sync + * with other logic managing the member set. + * + * ## Complexity: + * - `O(MP + N)` where: + * - `M` old-members-count (code- and governance-bounded) + * - `N` new-members-count (code- and governance-bounded) + * - `P` proposals-count (code-bounded) + **/ + setMembers: AugmentedSubmittable<(newMembers: Vec | (AccountId32 | string | Uint8Array)[], prime: Option | null | Uint8Array | AccountId32 | string, oldCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, Option, u32]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * Requires the sender to be a member. + * + * Transaction fees will be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * ## Complexity + * - `O(M)` where `M` is members-count (code- and governance-bounded) + **/ + vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, Compact, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetConversion: { + /** + * Provide liquidity into the pool of `asset1` and `asset2`. + * NOTE: an optimal amount of asset1 and asset2 will be calculated and + * might be different than the provided `amount1_desired`/`amount2_desired` + * thus you should provide the min amount you're happy to provide. + * Params `amount1_min`/`amount2_min` represent that. + * `mint_to` will be sent the liquidity tokens that represent this share of the pool. + * + * NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity, + * batch an atomic call with [`Pallet::add_liquidity`] and + * [`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`] + * calls to render the liquidity withdrawable and rectify the exchange rate. + * + * Once liquidity is added, someone may successfully call + * [`Pallet::swap_exact_tokens_for_tokens`]. + **/ + addLiquidity: AugmentedSubmittable<(asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId, asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId, amount1Desired: u128 | AnyNumber | Uint8Array, amount2Desired: u128 | AnyNumber | Uint8Array, amount1Min: u128 | AnyNumber | Uint8Array, amount2Min: u128 | AnyNumber | Uint8Array, mintTo: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId, u128, u128, u128, u128, AccountId32]>; + /** + * Creates an empty liquidity pool and an associated new `lp_token` asset + * (the id of which is returned in the `Event::PoolCreated` event). + * + * Once a pool is created, someone may [`Pallet::add_liquidity`] to it. + **/ + createPool: AugmentedSubmittable<(asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId, asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + /** + * Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be + * burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive` + * it's possible to control the min amount of returned tokens you're happy with. + **/ + removeLiquidity: AugmentedSubmittable<(asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId, asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId, lpTokenBurn: u128 | AnyNumber | Uint8Array, amount1MinReceive: u128 | AnyNumber | Uint8Array, amount2MinReceive: u128 | AnyNumber | Uint8Array, withdrawTo: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId, u128, u128, u128, AccountId32]>; + /** + * Swap the exact amount of `asset1` into `asset2`. + * `amount_out_min` param allows you to specify the min amount of the `asset2` + * you're happy to receive. + * + * [`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called + * for a quote. + **/ + swapExactTokensForTokens: AugmentedSubmittable<(path: Vec | (PezframeSupportTokensFungibleUnionOfNativeOrWithId)[], amountIn: u128 | AnyNumber | Uint8Array, amountOutMin: u128 | AnyNumber | Uint8Array, sendTo: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Vec, u128, u128, AccountId32, bool]>; + /** + * Swap any amount of `asset1` to get the exact amount of `asset2`. + * `amount_in_max` param allows to specify the max amount of the `asset1` + * you're happy to provide. + * + * [`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called + * for a quote. + **/ + swapTokensForExactTokens: AugmentedSubmittable<(path: Vec | (PezframeSupportTokensFungibleUnionOfNativeOrWithId)[], amountOut: u128 | AnyNumber | Uint8Array, amountInMax: u128 | AnyNumber | Uint8Array, sendTo: AccountId32 | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Vec, u128, u128, AccountId32, bool]>; + /** + * Touch an existing pool to fulfill prerequisites before providing liquidity, such as + * ensuring that the pool's accounts are in place. It is typically useful when a pool + * creator removes the pool's accounts and does not provide a liquidity. This action may + * involve holding assets from the caller as a deposit for creating the pool's accounts. + * + * The origin must be Signed. + * + * - `asset1`: The asset ID of an existing pool with a pair (asset1, asset2). + * - `asset2`: The asset ID of an existing pool with a pair (asset1, asset2). + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId, asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetConversionMigration: { + /** + * Migrates an existing pool to a new account ID derivation method for a given asset pair. + * If the migration is successful, transaction fees are refunded to the caller. + * + * Must be signed. + **/ + migrateToNewAccount: AugmentedSubmittable<(asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId, asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetRate: { + /** + * Initialize a conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + create: AugmentedSubmittable<(assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, u128]>; + /** + * Remove an existing conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + remove: AugmentedSubmittable<(assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + /** + * Update the conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + update: AugmentedSubmittable<(assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assetRewards: { + /** + * Cleanup a pool. + * + * Origin must be the pool admin. + * + * Cleanup storage, release any associated storage cost and return the remaining reward + * tokens to the admin. + **/ + cleanupPool: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Create a new reward pool. + * + * Parameters: + * - `origin`: must be `Config::CreatePoolOrigin`; + * - `staked_asset_id`: the asset to be staked in the pool; + * - `reward_asset_id`: the asset to be distributed as rewards; + * - `reward_rate_per_block`: the amount of reward tokens distributed per block; + * - `expiry`: the block number at which the pool will cease to accumulate rewards. The + * [`DispatchTime::After`] variant evaluated at the execution time. + * - `admin`: the account allowed to extend the pool expiration, increase the rewards rate + * and receive the unutilized reward tokens back after the pool completion. If `None`, + * the caller is set as an admin. + **/ + createPool: AugmentedSubmittable<(stakedAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId, rewardAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId, rewardRatePerBlock: u128 | AnyNumber | Uint8Array, expiry: PezframeSupportScheduleDispatchTime, admin: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId, u128, PezframeSupportScheduleDispatchTime, Option]>; + /** + * Convenience method to deposit reward tokens into a pool. + * + * This method is not strictly necessary (tokens could be transferred directly to the + * pool pot address), but is provided for convenience so manual derivation of the + * account id is not required. + **/ + depositRewardTokens: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u128]>; + /** + * Harvest unclaimed pool rewards. + * + * Parameters: + * - origin: must be the `staker` if the pool is still active. Otherwise, any account. + * - pool_id: the pool to harvest from. + * - staker: the account for which to harvest rewards. If `None`, the caller is used. + **/ + harvestRewards: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, staker: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Modify a pool admin. + * + * Only the pool admin may perform this operation. + **/ + setPoolAdmin: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newAdmin: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [u32, AccountId32]>; + /** + * Set when the pool should expire. + * + * Currently the expiry block can only be extended. + * + * Only the pool admin may perform this operation. + **/ + setPoolExpiryBlock: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newExpiry: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [u32, PezframeSupportScheduleDispatchTime]>; + /** + * Modify a pool reward rate. + * + * Currently the reward rate can only be increased. + * + * Only the pool admin may perform this operation. + **/ + setPoolRewardRatePerBlock: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newRewardRatePerBlock: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u128]>; + /** + * Stake additional tokens in a pool. + * + * A freeze is placed on the staked tokens. + **/ + stake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u128]>; + /** + * Unstake tokens from a pool. + * + * Removes the freeze on the staked tokens. + * + * Parameters: + * - origin: must be the `staker` if the pool is still active. Otherwise, any account. + * - pool_id: the pool to unstake from. + * - amount: the amount of tokens to unstake. + * - staker: the account to unstake from. If `None`, the caller is used. + **/ + unstake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, amount: u128 | AnyNumber | Uint8Array, staker: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [u32, u128, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + assets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + babe: { + /** + * Plan an epoch config change. The epoch config change is recorded and will be enacted on + * the next call to `enact_epoch_change`. The config will be activated one epoch after. + * Multiple calls to this method will replace any existing planned config change that had + * not been enacted yet. + **/ + planConfigChange: AugmentedSubmittable<(config: PezspConsensusBabeDigestsNextConfigDescriptor) => SubmittableExtrinsic, [PezspConsensusBabeDigestsNextConfigDescriptor]>; + /** + * Report authority equivocation/misbehavior. This method will verify + * the equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence will + * be reported. + **/ + reportEquivocation: AugmentedSubmittable<(equivocationProof: PezspConsensusSlotsEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusSlotsEquivocationProof, PezspSessionMembershipProof]>; + /** + * Report authority equivocation/misbehavior. This method will verify + * the equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence will + * be reported. + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusSlotsEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusSlotsEquivocationProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable<(direction: PezpalletBalancesAdjustmentDirection, delta: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBalancesAdjustmentDirection, Compact]>; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Compact]>; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128]>; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable<(who: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + beefy: { + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + **/ + reportDoubleVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyDoubleVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyDoubleVotingProof, PezspSessionMembershipProof]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportDoubleVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyDoubleVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyDoubleVotingProof, PezspSessionMembershipProof]>; + /** + * Report fork voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + **/ + reportForkVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyForkVotingProofAncestryProof, PezspSessionMembershipProof]>; + /** + * Report fork voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportForkVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyForkVotingProofAncestryProof, PezspSessionMembershipProof]>; + /** + * Report future block voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + **/ + reportFutureBlockVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyFutureBlockVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyFutureBlockVotingProof, PezspSessionMembershipProof]>; + /** + * Report future block voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportFutureBlockVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyFutureBlockVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyFutureBlockVotingProof, PezspSessionMembershipProof]>; + /** + * Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the + * future. + * + * Note: `delay_in_blocks` has to be at least 1. + **/ + setNewGenesis: AugmentedSubmittable<(delayInBlocks: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bounties: { + /** + * Accept the curator role for a bounty. + * A deposit will be reserved from curator and refund upon successful payout. + * + * May only be called from the curator. + * + * ## Complexity + * - O(1). + **/ + acceptCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve a bounty proposal. At a later time, the bounty will be funded and become active + * and the original deposit will be returned. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + approveBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve bountry and propose a curator simultaneously. + * This call is a shortcut to calling `approve_bounty` and `propose_curator` separately. + * + * May only be called from `T::SpendOrigin`. + * + * - `bounty_id`: Bounty ID to approve. + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * + * ## Complexity + * - O(1). + **/ + approveBountyWithCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Award bounty to a beneficiary account. The beneficiary will be able to claim the funds + * after a delay. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to award. + * - `beneficiary`: The beneficiary account whom will receive the payout. + * + * ## Complexity + * - O(1). + **/ + awardBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Claim the payout from an awarded bounty after payout delay. + * + * The dispatch origin for this call must be the beneficiary of this bounty. + * + * - `bounty_id`: Bounty ID to claim. + * + * ## Complexity + * - O(1). + **/ + claimBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel a proposed or active bounty. All the funds will be sent to treasury and + * the curator deposit will be unreserved if possible. + * + * Only `T::RejectOrigin` is able to cancel a bounty. + * + * - `bounty_id`: Bounty ID to cancel. + * + * ## Complexity + * - O(1). + **/ + closeBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Extend the expiry time of an active bounty. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to extend. + * - `remark`: additional information. + * + * ## Complexity + * - O(1). + **/ + extendBountyExpiry: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Propose a new bounty. + * + * The dispatch origin for this call must be _Signed_. + * + * Payment: `TipReportDepositBase` will be reserved from the origin account, as well as + * `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval, + * or slashed when rejected. + * + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * - `value`: The total payment amount of this bounty, curator fee included. + * - `description`: The description of this bounty. + **/ + proposeBounty: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Propose a curator to a funded bounty. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + proposeCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a bounty. + * + * This function can only be called by the `RejectOrigin` a signed origin. + * + * If this function is called by the `RejectOrigin`, we assume that the curator is + * malicious or inactive. As a result, we will slash the curator when possible. + * + * If the origin is the curator, we take this as a sign they are unable to do their job and + * they willingly give up. We could slash them, but for now we allow them to recover their + * deposit and exit without issue. (We may want to change this if it is abused.) + * + * Finally, the origin can be anyone if and only if the curator is "inactive". This allows + * anyone in the community to call out that a curator is not doing their due diligence, and + * we should pick a new curator. In this case the curator should also be slashed. + * + * ## Complexity + * - O(1). + **/ + unassignCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + broker: { + /** + * Assign a Bulk Coretime Region to a task. + * + * - `origin`: Must be a Signed origin of the account which owns the Region `region_id`. + * - `region_id`: The Region which should be assigned to the task. + * - `task`: The task to assign. + * - `finality`: Indication of whether this assignment is final (in which case it may be + * eligible for renewal) or provisional (in which case it may be manipulated and/or + * reassigned at a later stage). + **/ + assign: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId, task: u32 | AnyNumber | Uint8Array, finality: PezpalletBrokerFinality) => SubmittableExtrinsic, [PezpalletBrokerRegionId, u32, PezpalletBrokerFinality]>; + /** + * Claim the revenue owed from inclusion in the Instantaneous Coretime Pool. + * + * - `origin`: Must be a Signed origin. + * - `region_id`: The Region which was assigned to the Pool. + * - `max_timeslices`: The maximum number of timeslices which should be processed. This + * must be greater than 0. This may affect the weight of the call but should be ideally + * made equivalent to the length of the Region `region_id`. If less, further dispatches + * will be required with the same `region_id` to claim revenue for the remainder. + **/ + claimRevenue: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId, maxTimeslices: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBrokerRegionId, u32]>; + /** + * Configure the pallet. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `config`: The configuration for this pallet. + **/ + configure: AugmentedSubmittable<(config: PezpalletBrokerConfigRecord) => SubmittableExtrinsic, [PezpalletBrokerConfigRecord]>; + /** + * Extrinsic for disabling auto renewal. + * + * Callable by the sovereign account of the task on the specified core. + * + * - `origin`: Must be the sovereign account of the task. + * - `core`: The core for which we want to disable auto renewal. + * - `task`: The task for which we want to disable auto renewal. + **/ + disableAutoRenew: AugmentedSubmittable<(core: u16 | AnyNumber | Uint8Array, task: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, u32]>; + /** + * Drop an expired Instantaneous Pool Contribution record from the chain. + * + * - `origin`: Can be any kind of origin. + * - `region_id`: The Region identifying the Pool Contribution which has expired. + **/ + dropContribution: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId) => SubmittableExtrinsic, [PezpalletBrokerRegionId]>; + /** + * Drop an expired Instantaneous Pool History record from the chain. + * + * - `origin`: Can be any kind of origin. + * - `region_id`: The time of the Pool History record which has expired. + **/ + dropHistory: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Drop an expired Region from the chain. + * + * - `origin`: Can be any kind of origin. + * - `region_id`: The Region which has expired. + **/ + dropRegion: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId) => SubmittableExtrinsic, [PezpalletBrokerRegionId]>; + /** + * Drop an expired Allowed Renewal record from the chain. + * + * - `origin`: Can be any kind of origin. + * - `core`: The core to which the expired renewal refers. + * - `when`: The timeslice to which the expired renewal refers. This must have passed. + **/ + dropRenewal: AugmentedSubmittable<(core: u16 | AnyNumber | Uint8Array, when: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, u32]>; + /** + * Extrinsic for enabling auto renewal. + * + * Callable by the sovereign account of the task on the specified core. This account + * will be charged at the start of every bulk period for renewing core time. + * + * - `origin`: Must be the sovereign account of the task + * - `core`: The core to which the task to be renewed is currently assigned. + * - `task`: The task for which we want to enable auto renewal. + * - `workload_end_hint`: should be used when enabling auto-renewal for a core that is not + * expiring in the upcoming bulk period (e.g., due to holding a lease) since it would be + * inefficient to look up when the core expires to schedule the next renewal. + **/ + enableAutoRenew: AugmentedSubmittable<(core: u16 | AnyNumber | Uint8Array, task: u32 | AnyNumber | Uint8Array, workloadEndHint: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u16, u32, Option]>; + /** + * Reserve a core for a workload immediately. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `workload`: The workload which should be permanently placed on a core starting + * immediately. + * - `core`: The core to which the assignment should be made until the reservation takes + * effect. It is left to the caller to either add this new core or reassign any other + * tasks to this existing core. + * + * This reserves the workload and then injects the workload into the Workplan for the next + * two sale periods. This overwrites any existing assignments for this core at the start of + * the next sale period. + **/ + forceReserve: AugmentedSubmittable<(workload: Vec | (PezpalletBrokerScheduleItem)[], core: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u16]>; + /** + * Split a Bulk Coretime Region into two wholly-overlapping Regions with complementary + * interlace masks which together make up the original Region's interlace mask. + * + * - `origin`: Must be a Signed origin of the account which owns the Region `region_id`. + * - `region_id`: The Region which should become two interlaced Regions of incomplete + * regularity. + * - `pivot`: The interlace mask of one of the two new regions (the other is its partial + * complement). + **/ + interlace: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId, pivot: PezpalletBrokerCoreMask) => SubmittableExtrinsic, [PezpalletBrokerRegionId, PezpalletBrokerCoreMask]>; + notifyCoreCount: AugmentedSubmittable<(coreCount: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + notifyRevenue: AugmentedSubmittable<(revenue: PezpalletBrokerOnDemandRevenueRecord) => SubmittableExtrinsic, [PezpalletBrokerOnDemandRevenueRecord]>; + /** + * Split a Bulk Coretime Region into two non-overlapping Regions at a particular time into + * the region. + * + * - `origin`: Must be a Signed origin of the account which owns the Region `region_id`. + * - `region_id`: The Region which should be partitioned into two non-overlapping Regions. + * - `pivot`: The offset in time into the Region at which to make the split. + **/ + partition: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId, pivot: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBrokerRegionId, u32]>; + /** + * Place a Bulk Coretime Region into the Instantaneous Coretime Pool. + * + * - `origin`: Must be a Signed origin of the account which owns the Region `region_id`. + * - `region_id`: The Region which should be assigned to the Pool. + * - `payee`: The account which is able to collect any revenue due for the usage of this + * Coretime. + **/ + pool: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId, payee: AccountId32 | string | Uint8Array, finality: PezpalletBrokerFinality) => SubmittableExtrinsic, [PezpalletBrokerRegionId, AccountId32, PezpalletBrokerFinality]>; + /** + * Purchase Bulk Coretime in the ongoing Sale. + * + * - `origin`: Must be a Signed origin with at least enough funds to pay the current price + * of Bulk Coretime. + * - `price_limit`: An amount no more than which should be paid. + **/ + purchase: AugmentedSubmittable<(priceLimit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Purchase credit for use in the Instantaneous Coretime Pool. + * + * - `origin`: Must be a Signed origin able to pay at least `amount`. + * - `amount`: The amount of credit to purchase. + * - `beneficiary`: The account on the Relay-chain which controls the credit (generally + * this will be the collator's hot wallet). + **/ + purchaseCredit: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array, beneficiary: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [u128, AccountId32]>; + /** + * Remove an assignment from the Workplan. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `region_id`: The Region to be removed from the workplan. + **/ + removeAssignment: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId) => SubmittableExtrinsic, [PezpalletBrokerRegionId]>; + /** + * Remove a lease. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `task`: The task id of the lease which should be removed. + **/ + removeLease: AugmentedSubmittable<(task: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Renew Bulk Coretime in the ongoing Sale or its prior Interlude Period. + * + * - `origin`: Must be a Signed origin with at least enough funds to pay the renewal price + * of the core. + * - `core`: The core which should be renewed. + **/ + renew: AugmentedSubmittable<(core: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Request a change to the number of cores available for scheduling work. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `core_count`: The desired number of cores to be made available. + **/ + requestCoreCount: AugmentedSubmittable<(coreCount: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Reserve a core for a workload. + * + * The workload will be given a reservation, but two sale period boundaries must pass + * before the core is actually assigned. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `workload`: The workload which should be permanently placed on a core. + **/ + reserve: AugmentedSubmittable<(workload: Vec | (PezpalletBrokerScheduleItem)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Reserve a core for a single task workload for a limited period. + * + * In the interlude and sale period where Bulk Coretime is sold for the period immediately + * after `until`, then the same workload may be renewed. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `task`: The workload which should be placed on a core. + * - `until`: The timeslice now earlier than which `task` should be placed as a workload on + * a core. + **/ + setLease: AugmentedSubmittable<(task: u32 | AnyNumber | Uint8Array, until: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Begin the Bulk Coretime sales rotation. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `end_price`: The price after the leadin period of Bulk Coretime in the first sale. + * - `extra_cores`: Number of extra cores that should be requested on top of the cores + * required for `Reservations` and `Leases`. + * + * This will call [`Self::request_core_count`] internally to set the correct core count on + * the relay chain. + **/ + startSales: AugmentedSubmittable<(endPrice: u128 | AnyNumber | Uint8Array, extraCores: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u16]>; + swapLeases: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, other: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Transfer a Bulk Coretime Region to a new owner. + * + * - `origin`: Must be a Signed origin of the account which owns the Region `region_id`. + * - `region_id`: The Region whose ownership should change. + * - `new_owner`: The new owner for the Region. + **/ + transfer: AugmentedSubmittable<(regionId: PezpalletBrokerRegionId, newOwner: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletBrokerRegionId, AccountId32]>; + /** + * Cancel a reservation for a workload. + * + * - `origin`: Must be Root or pass `AdminOrigin`. + * - `item_index`: The index of the reservation. Usually this will also be the index of the + * core on which the reservation has been scheduled. However, it is possible that if + * other cores are reserved or unreserved in the same sale rotation that they won't + * correspond, so it's better to look up the core properly in the `Reservations` storage. + **/ + unreserve: AugmentedSubmittable<(itemIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + childBounties: { + /** + * Accept the curator role for the child-bounty. + * + * The dispatch origin for this call must be the curator of this + * child-bounty. + * + * A deposit will be reserved from the curator and refund upon + * successful payout or cancellation. + * + * Fee for curator is deducted from curator fee of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "CuratorProposed" state, for processing the + * call. And state of child-bounty is moved to "Active" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + acceptCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Add a new child-bounty. + * + * The dispatch origin for this call must be the curator of parent + * bounty and the parent bounty must be in "active" state. + * + * Child-bounty gets added successfully & fund gets transferred from + * parent bounty to child-bounty account, if parent bounty has enough + * funds, else the call fails. + * + * Upper bound to maximum number of active child bounties that can be + * added are managed via runtime trait config + * [`Config::MaxActiveChildBountyCount`]. + * + * If the call is success, the status of child-bounty is updated to + * "Added". + * + * - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added. + * - `value`: Value for executing the proposal. + * - `description`: Text description for the child-bounty. + **/ + addChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Bytes]>; + /** + * Award child-bounty to a beneficiary. + * + * The beneficiary will be able to claim the funds after a delay. + * + * The dispatch origin for this call must be the parent curator or + * curator of this child-bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in active state, for processing the call. And + * state of child-bounty is moved to "PendingPayout" on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `beneficiary`: Beneficiary account. + **/ + awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress]>; + /** + * Claim the payout from an awarded child-bounty after payout delay. + * + * The dispatch origin for this call may be any signed origin. + * + * Call works independent of parent bounty state, No need for parent + * bounty to be in active state. + * + * The Beneficiary is paid out with agreed bounty value. Curator fee is + * paid & curator deposit is unreserved. + * + * Child-bounty must be in "PendingPayout" state, for processing the + * call. And instance of child-bounty is removed from the state on + * successful call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Cancel a proposed or active child-bounty. Child-bounty account funds + * are transferred to parent bounty account. The child-bounty curator + * deposit may be unreserved if possible. + * + * The dispatch origin for this call must be either parent curator or + * `T::RejectOrigin`. + * + * If the state of child-bounty is `Active`, curator deposit is + * unreserved. + * + * If the state of child-bounty is `PendingPayout`, call fails & + * returns `PendingPayout` error. + * + * For the origin other than T::RejectOrigin, parent bounty must be in + * active state, for this child-bounty call to work. For origin + * T::RejectOrigin execution is forced. + * + * Instance of child-bounty is removed from the state on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Propose curator for funded child-bounty. + * + * The dispatch origin for this call must be curator of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "Added" state, for processing the call. And + * state of child-bounty is moved to "CuratorProposed" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `curator`: Address of child-bounty curator. + * - `fee`: payment fee to child-bounty curator for execution. + **/ + proposeCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a child-bounty. + * + * The dispatch origin for this call can be either `RejectOrigin`, or + * the curator of the parent bounty, or any signed origin. + * + * For the origin other than T::RejectOrigin and the child-bounty + * curator, parent bounty must be in active state, for this call to + * work. We allow child-bounty curator and T::RejectOrigin to execute + * this call irrespective of the parent bounty state. + * + * If this function is called by the `RejectOrigin` or the + * parent bounty curator, we assume that the child-bounty curator is + * malicious or inactive. As a result, child-bounty curator deposit is + * slashed. + * + * If the origin is the child-bounty curator, we take this as a sign + * that they are unable to do their job, and are willingly giving up. + * We could slash the deposit, but for now we allow them to unreserve + * their deposit and exit without issue. (We may want to change this if + * it is abused.) + * + * Finally, the origin can be anyone iff the child-bounty curator is + * "inactive". Expiry update due of parent bounty is used to estimate + * inactive state of child-bounty curator. + * + * This allows anyone in the community to call out that a child-bounty + * curator is not doing their due diligence, and we should pick a new + * one. In this case the child-bounty curator deposit is slashed. + * + * State of child-bounty is moved to Added state on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + unassignCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + contracts: { + /** + * Makes a call to an account, optionally transferring some balance. + * + * # Parameters + * + * * `dest`: Address of the contract to call. + * * `value`: The balance to transfer from the `origin` to `dest`. + * * `gas_limit`: The gas limit enforced when executing the constructor. + * * `storage_deposit_limit`: The maximum amount of balance that can be charged from the + * caller to pay for the storage consumed. + * * `data`: The input data to pass to the contract. + * + * * If the account is a smart-contract account, the associated code will be + * executed and any value will be transferred. + * * If the account is a regular account, any value will be transferred. + * * If no account exists and the call value is not less than `existential_deposit`, + * a regular account will be created and any value will be transferred. + **/ + call: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact, PezspWeightsWeightV2Weight, Option>, Bytes]>; + /** + * Deprecated version if [`Self::call`] for use in an in-storage `Call`. + **/ + callOldWeight: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array, gasLimit: Compact | AnyNumber | Uint8Array, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact, Compact, Option>, Bytes]>; + /** + * Instantiates a contract from a previously deployed wasm binary. + * + * This function is identical to [`Self::instantiate_with_code`] but without the + * code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary + * must be supplied. + **/ + instantiate: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, codeHash: H256 | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, PezspWeightsWeightV2Weight, Option>, H256, Bytes, Bytes]>; + /** + * Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`. + **/ + instantiateOldWeight: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: Compact | AnyNumber | Uint8Array, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, codeHash: H256 | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Option>, H256, Bytes, Bytes]>; + /** + * Instantiates a new contract from the supplied `code` optionally transferring + * some balance. + * + * This dispatchable has the same effect as calling [`Self::upload_code`] + + * [`Self::instantiate`]. Bundling them together provides efficiency gains. Please + * also check the documentation of [`Self::upload_code`]. + * + * # Parameters + * + * * `value`: The balance to transfer from the `origin` to the newly created contract. + * * `gas_limit`: The gas limit enforced when executing the constructor. + * * `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved + * from the caller to pay for the storage consumed. + * * `code`: The contract code to deploy in raw bytes. + * * `data`: The input data to pass to the contract constructor. + * * `salt`: Used for the address derivation. See [`Pallet::contract_address`]. + * + * Instantiation is executed as follows: + * + * - The supplied `code` is deployed, and a `code_hash` is created for that code. + * - If the `code_hash` already exists on the chain the underlying `code` will be shared. + * - The destination address is computed based on the sender, code_hash and the salt. + * - The smart-contract account is created at the computed address. + * - The `value` is transferred to the new account. + * - The `deploy` function is executed in the context of the newly-created account. + **/ + instantiateWithCode: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, code: Bytes | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, PezspWeightsWeightV2Weight, Option>, Bytes, Bytes, Bytes]>; + /** + * Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`. + **/ + instantiateWithCodeOldWeight: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: Compact | AnyNumber | Uint8Array, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, code: Bytes | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Option>, Bytes, Bytes, Bytes]>; + /** + * When a migration is in progress, this dispatchable can be used to run migration steps. + * Calls that contribute to advancing the migration have their fees waived, as it's helpful + * for the chain. Note that while the migration is in progress, the pallet will also + * leverage the `on_idle` hooks to run migration steps. + **/ + migrate: AugmentedSubmittable<(weightLimit: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [PezspWeightsWeightV2Weight]>; + /** + * Remove the code stored under `code_hash` and refund the deposit to its owner. + * + * A code can only be removed by its original uploader (its owner) and only if it is + * not used by any contract. + **/ + removeCode: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Privileged function that changes the code of an existing contract. + * + * This takes care of updating refcounts and all other necessary operations. Returns + * an error if either the `code_hash` or `dest` do not exist. + * + * # Note + * + * This does **not** change the address of the contract in question. This means + * that the contract address is no longer derived from its code hash after calling + * this dispatchable. + **/ + setCode: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Upload new `code` without instantiating a contract from it. + * + * If the code does not already exist a deposit is reserved from the caller + * and unreserved only when [`Self::remove_code`] is called. The size of the reserve + * depends on the size of the supplied `code`. + * + * If the code already exists in storage it will still return `Ok` and upgrades + * the in storage version to the current + * [`InstructionWeights::version`](InstructionWeights). + * + * - `determinism`: If this is set to any other value but [`Determinism::Enforced`] then + * the only way to use this code is to delegate call into it from an offchain execution. + * Set to [`Determinism::Enforced`] if in doubt. + * + * # Note + * + * Anyone can instantiate a contract from any uploaded code and thus prevent its removal. + * To avoid this situation a constructor could employ access control so that it can + * only be instantiated by permissioned entities. The same is true when uploading + * through [`Self::instantiate_with_code`]. + * + * Use [`Determinism::Relaxed`] exclusively for non-deterministic code. If the uploaded + * code is deterministic, specifying [`Determinism::Relaxed`] will be disregarded and + * result in higher gas costs. + **/ + uploadCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array, storageDepositLimit: Option> | null | Uint8Array | Compact | AnyNumber, determinism: PezpalletContractsWasmDeterminism) => SubmittableExtrinsic, [Bytes, Option>, PezpalletContractsWasmDeterminism]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + convictionVoting: { + /** + * Delegate the voting power (with some given conviction) of the sending account for a + * particular class of polls. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed through + * `remove_vote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `class`: The class of polls to delegate. To delegate multiple classes, multiple calls + * to this function are required. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + delegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PezpalletConvictionVotingConviction, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress, PezpalletConvictionVotingConviction, u128]>; + /** + * Remove a vote for a poll. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the poll was cancelled, because the voter lost the poll or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for poll + * `index`. + * - `index`: The index of poll of the vote to be removed. + * - `class`: The class of the poll. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, clazz: u16 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16, u32]>; + /** + * Remove a vote for a poll. + * + * If: + * - the poll was cancelled, or + * - the poll is ongoing, or + * - the poll has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the poll has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for poll `index`. + * + * - `index`: The index of poll of the vote to be removed. + * - `class`: Optional parameter, if given it indicates the class of the poll. For polls + * which have finished or are cancelled, this must be `Some`. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(clazz: Option | null | Uint8Array | u16 | AnyNumber, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Option, u32]>; + /** + * Undelegate the voting power of the sending account for a particular class of polls. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued has passed. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * - `class`: The class of polls to remove the delegation from. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + undelegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Remove the lock caused by prior voting/delegating which has expired within a particular + * class. + * + * The dispatch origin of this call must be _Signed_. + * + * - `class`: The class of polls to unlock. + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress]>; + /** + * Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `poll_index`: The index of the poll to vote for. + * - `vote`: The vote configuration. + * + * Weight: `O(R)` where R is the number of polls the voter has voted on. + **/ + vote: AugmentedSubmittable<(pollIndex: Compact | AnyNumber | Uint8Array, vote: PezpalletConvictionVotingVoteAccountVote) => SubmittableExtrinsic, [Compact, PezpalletConvictionVotingVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + coreFellowship: { + /** + * Approve a member to continue at their rank. + * + * This resets `last_proof` to the current block, thereby delaying any automatic demotion. + * + * `who` must already be tracked by this pallet for this to have an effect. + * + * - `origin`: An origin which satisfies `ApproveOrigin` or root. + * - `who`: A member (i.e. of non-zero rank). + * - `at_rank`: The rank of member. + **/ + approve: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, atRank: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u16]>; + /** + * Bump the state of a member. + * + * This will demote a member whose `last_proof` is now beyond their rank's + * `demotion_period`. + * + * - `origin`: A `Signed` origin of an account. + * - `who`: A member account whose state is to be updated. + **/ + bump: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Introduce an already-ranked individual of the collective into this pallet. + * + * The rank may still be zero. This resets `last_proof` to the current block and + * `last_promotion` will be set to zero, thereby delaying any automatic demotion but + * allowing immediate promotion. + * + * - `origin`: A signed origin of a ranked, but not tracked, account. + **/ + import: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Introduce an already-ranked individual of the collective into this pallet. + * + * The rank may still be zero. Can be called by anyone on any collective member - including + * the sender. + * + * This resets `last_proof` to the current block and `last_promotion` will be set to zero, + * thereby delaying any automatic demotion but allowing immediate promotion. + * + * - `origin`: A signed origin of a ranked, but not tracked, account. + * - `who`: The account ID of the collective member to be inducted. + **/ + importMember: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Introduce a new and unranked candidate (rank zero). + * + * - `origin`: An origin which satisfies `InductOrigin` or root. + * - `who`: The account ID of the candidate to be inducted and become a member. + **/ + induct: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Stop tracking a prior member who is now not a ranked member of the collective. + * + * - `origin`: A `Signed` origin of an account. + * - `who`: The ID of an account which was tracked in this pallet but which is now not a + * ranked member of the collective. + **/ + offboard: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Increment the rank of a ranked and tracked account. + * + * - `origin`: An origin which satisfies `PromoteOrigin` with a `Success` result of + * `to_rank` or more or root. + * - `who`: The account ID of the member to be promoted to `to_rank`. + * - `to_rank`: One more than the current rank of `who`. + **/ + promote: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, toRank: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u16]>; + /** + * Fast promotions can skip ranks and ignore the `min_promotion_period`. + * + * This is useful for out-of-band promotions, hence it has its own `FastPromoteOrigin` to + * be (possibly) more restrictive than `PromoteOrigin`. Note that the member must already + * be inducted. + **/ + promoteFast: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, toRank: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u16]>; + /** + * Set whether a member is active or not. + * + * - `origin`: A `Signed` origin of a member's account. + * - `is_active`: `true` iff the member is active. + **/ + setActive: AugmentedSubmittable<(isActive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Set the parameters. + * + * - `origin`: An origin complying with `ParamsOrigin` or root. + * - `params`: The new parameters for the pallet. + **/ + setParams: AugmentedSubmittable<(params: PezpalletCoreFellowshipParamsTypeU128) => SubmittableExtrinsic, [PezpalletCoreFellowshipParamsTypeU128]>; + /** + * Set the parameters partially. + * + * - `origin`: An origin complying with `ParamsOrigin` or root. + * - `partial_params`: The new parameters for the pallet. + * + * This update config with multiple arguments without duplicating + * the fields that does not need to update (set to None). + **/ + setPartialParams: AugmentedSubmittable<(partialParams: PezpalletCoreFellowshipParamsTypeOption) => SubmittableExtrinsic, [PezpalletCoreFellowshipParamsTypeOption]>; + /** + * Provide evidence that a rank is deserved. + * + * This is free as long as no evidence for the forthcoming judgement is already submitted. + * Evidence is cleared after an outcome (either demotion, promotion of approval). + * + * - `origin`: A `Signed` origin of an inducted and ranked account. + * - `wish`: The stated desire of the member. + * - `evidence`: A dump of evidence to be considered. This should generally be either a + * Markdown-encoded document or a series of 32-byte hashes which can be found on a + * decentralised content-based-indexing system such as IPFS. + **/ + submitEvidence: AugmentedSubmittable<(wish: PezpalletCoreFellowshipWish, evidence: Bytes | string | Uint8Array) => SubmittableExtrinsic, [PezpalletCoreFellowshipWish, Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + council: { + /** + * Close a vote that is either approved, disapproved or whose voting period has ended. + * + * May be called by any signed account in order to finish voting and close the proposal. + * + * If called before the end of the voting period it will only close the vote if it is + * has enough votes to be approved or disapproved. + * + * If called after the end of the voting period abstentions are counted as rejections + * unless there is a prime member set and the prime member cast an approval. + * + * If the close operation completes successfully with disapproval, the transaction fee will + * be waived. Otherwise execution of the approved operation will be charged to the caller. + * + * + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed + * proposal. + * + `length_bound`: The upper bound for the length of the proposal in storage. Checked via + * `storage::read` so it is `size_of::() == 4` larger than the pure length. + * + * ## Complexity + * - `O(B + M + P1 + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - `P1` is the complexity of `proposal` preimage. + * - `P2` is proposal-count (code-bounded) + **/ + close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, proposalWeightBound: PezspWeightsWeightV2Weight, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact, PezspWeightsWeightV2Weight, Compact]>; + /** + * Disapprove a proposal, close, and remove it from the system, regardless of its current + * state. + * + * Must be called by the Root origin. + * + * Parameters: + * * `proposal_hash`: The hash of the proposal that should be disapproved. + * + * ## Complexity + * O(P) where P is the number of max proposals + **/ + disapproveProposal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Dispatch a proposal from a member using the `Member` origin. + * + * Origin must be a member of the collective. + * + * ## Complexity: + * - `O(B + M + P)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` members-count (code-bounded) + * - `P` complexity of dispatching `proposal` + **/ + execute: AugmentedSubmittable<(proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, Compact]>; + /** + * Disapprove the proposal and burn the cost held for storing this proposal. + * + * Parameters: + * - `origin`: must be the `KillOrigin`. + * - `proposal_hash`: The hash of the proposal that should be killed. + * + * Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal. + **/ + kill: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Add a new proposal to either be voted on or executed directly. + * + * Requires the sender to be member. + * + * `threshold` determines whether `proposal` is executed directly (`threshold < 2`) + * or put up for voting. + * + * ## Complexity + * - `O(B + M + P1)` or `O(B + M + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - branching is influenced by `threshold` where: + * - `P1` is proposal execution complexity (`threshold < 2`) + * - `P2` is proposals-count (code-bounded) (`threshold >= 2`) + **/ + propose: AugmentedSubmittable<(threshold: Compact | AnyNumber | Uint8Array, proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, RuntimeCall, Compact]>; + /** + * Release the cost held for storing a proposal once the given proposal is completed. + * + * If there is no associated cost for the given proposal, this call will have no effect. + * + * Parameters: + * - `origin`: must be `Signed` or `Root`. + * - `proposal_hash`: The hash of the proposal. + * + * Emits `ProposalCostReleased` if any cost held for a given proposal. + **/ + releaseProposalCost: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Set the collective's membership. + * + * - `new_members`: The new member list. Be nice to the chain and provide it sorted. + * - `prime`: The prime member whose vote sets the default. + * - `old_count`: The upper bound for the previous number of members in storage. Used for + * weight estimation. + * + * The dispatch of this call must be `SetMembersOrigin`. + * + * NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but + * the weight estimations rely on it to estimate dispatchable weight. + * + * # WARNING: + * + * The `pallet-collective` can also be managed by logic outside of the pallet through the + * implementation of the trait [`ChangeMembers`]. + * Any call to `set_members` must be careful that the member set doesn't get out of sync + * with other logic managing the member set. + * + * ## Complexity: + * - `O(MP + N)` where: + * - `M` old-members-count (code- and governance-bounded) + * - `N` new-members-count (code- and governance-bounded) + * - `P` proposals-count (code-bounded) + **/ + setMembers: AugmentedSubmittable<(newMembers: Vec | (AccountId32 | string | Uint8Array)[], prime: Option | null | Uint8Array | AccountId32 | string, oldCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, Option, u32]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * Requires the sender to be a member. + * + * Transaction fees will be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * ## Complexity + * - `O(M)` where `M` is members-count (code- and governance-bounded) + **/ + vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, Compact, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + democracy: { + /** + * Permanently place a proposal into the blacklist. This prevents it from ever being + * proposed again. + * + * If called on a queued public or external proposal, then this will result in it being + * removed. If the `ref_index` supplied is an active referendum with the proposal hash, + * then it will be cancelled. + * + * The dispatch origin of this call must be `BlacklistOrigin`. + * + * - `proposal_hash`: The proposal hash to blacklist permanently. + * - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be + * cancelled. + * + * Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a + * reasonable value). + **/ + blacklist: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, maybeRefIndex: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [H256, Option]>; + /** + * Remove a proposal. + * + * The dispatch origin of this call must be `CancelProposalOrigin`. + * + * - `prop_index`: The index of the proposal to cancel. + * + * Weight: `O(p)` where `p = PublicProps::::decode_len()` + **/ + cancelProposal: AugmentedSubmittable<(propIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove a referendum. + * + * The dispatch origin of this call must be _Root_. + * + * - `ref_index`: The index of the referendum to cancel. + * + * # Weight: `O(1)`. + **/ + cancelReferendum: AugmentedSubmittable<(refIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Clears all public proposals. + * + * The dispatch origin of this call must be _Root_. + * + * Weight: `O(1)`. + **/ + clearPublicProposals: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Delegate the voting power (with some given conviction) of the sending account. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed/consolidated + * through `reap_vote` or `unvote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of referendums the voter delegating to has + * voted on. Weight is charged as if maximum votes. + **/ + delegate: AugmentedSubmittable<(to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PezpalletDemocracyConviction, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, PezpalletDemocracyConviction, u128]>; + /** + * Schedule an emergency cancellation of a referendum. Cannot happen twice to the same + * referendum. + * + * The dispatch origin of this call must be `CancellationOrigin`. + * + * -`ref_index`: The index of the referendum to cancel. + * + * Weight: `O(1)`. + **/ + emergencyCancel: AugmentedSubmittable<(refIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Schedule a referendum to be tabled once it is legal to schedule an external + * referendum. + * + * The dispatch origin of this call must be `ExternalOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal. + **/ + externalPropose: AugmentedSubmittable<(proposal: PezframeSupportPreimagesBounded) => SubmittableExtrinsic, [PezframeSupportPreimagesBounded]>; + /** + * Schedule a negative-turnout-bias referendum to be tabled next once it is legal to + * schedule an external referendum. + * + * The dispatch of this call must be `ExternalDefaultOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal. + * + * Unlike `external_propose`, blacklisting has no effect on this and it may replace a + * pre-scheduled `external_propose` call. + * + * Weight: `O(1)` + **/ + externalProposeDefault: AugmentedSubmittable<(proposal: PezframeSupportPreimagesBounded) => SubmittableExtrinsic, [PezframeSupportPreimagesBounded]>; + /** + * Schedule a majority-carries referendum to be tabled next once it is legal to schedule + * an external referendum. + * + * The dispatch of this call must be `ExternalMajorityOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal. + * + * Unlike `external_propose`, blacklisting has no effect on this and it may replace a + * pre-scheduled `external_propose` call. + * + * Weight: `O(1)` + **/ + externalProposeMajority: AugmentedSubmittable<(proposal: PezframeSupportPreimagesBounded) => SubmittableExtrinsic, [PezframeSupportPreimagesBounded]>; + /** + * Schedule the currently externally-proposed majority-carries referendum to be tabled + * immediately. If there is no externally-proposed referendum currently, or if there is one + * but it is not a majority-carries referendum then it fails. + * + * The dispatch of this call must be `FastTrackOrigin`. + * + * - `proposal_hash`: The hash of the current external proposal. + * - `voting_period`: The period that is allowed for voting on this proposal. Increased to + * Must be always greater than zero. + * For `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`. + * - `delay`: The number of block after voting has ended in approval and this should be + * enacted. This doesn't have a minimum amount. + * + * Emits `Started`. + * + * Weight: `O(1)` + **/ + fastTrack: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, votingPeriod: u32 | AnyNumber | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, u32, u32]>; + /** + * Propose a sensitive action to be taken. + * + * The dispatch origin of this call must be _Signed_ and the sender must + * have funds to cover the deposit. + * + * - `proposal_hash`: The hash of the proposal preimage. + * - `value`: The amount of deposit (must be at least `MinimumDeposit`). + * + * Emits `Proposed`. + **/ + propose: AugmentedSubmittable<(proposal: PezframeSupportPreimagesBounded, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezframeSupportPreimagesBounded, Compact]>; + /** + * Remove a vote for a referendum. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the referendum was cancelled, because the voter lost the referendum or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for + * referendum `index`. + * - `index`: The index of referendum of the vote to be removed. + * + * Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Remove a vote for a referendum. + * + * If: + * - the referendum was cancelled, or + * - the referendum is ongoing, or + * - the referendum has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the referendum has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for referendum `index`. + * + * - `index`: The index of referendum of the vote to be removed. + * + * Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Signals agreement with a particular proposal. + * + * The dispatch origin of this call must be _Signed_ and the sender + * must have funds to cover the deposit, equal to the original deposit. + * + * - `proposal`: The index of the proposal to second. + **/ + second: AugmentedSubmittable<(proposal: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Set or clear a metadata of a proposal or a referendum. + * + * Parameters: + * - `origin`: Must correspond to the `MetadataOwner`. + * - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove` + * threshold. + * - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst` + * threshold. + * - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority` + * threshold. + * - `Signed` by a creator for a public proposal. + * - `Signed` to clear a metadata for a finished referendum. + * - `Root` to set a metadata for an ongoing referendum. + * - `owner`: an identifier of a metadata owner. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(owner: PezpalletDemocracyMetadataOwner, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [PezpalletDemocracyMetadataOwner, Option]>; + /** + * Undelegate the voting power of the sending account. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of referendums the voter delegating to has + * voted on. Weight is charged as if maximum votes. + **/ + undelegate: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unlock tokens that have an expired lock. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Veto and blacklist the external proposal hash. + * + * The dispatch origin of this call must be `VetoOrigin`. + * + * - `proposal_hash`: The preimage hash of the proposal to veto and blacklist. + * + * Emits `Vetoed`. + * + * Weight: `O(V + log(V))` where V is number of `existing vetoers` + **/ + vetoExternal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `ref_index`: The index of the referendum to vote for. + * - `vote`: The vote configuration. + **/ + vote: AugmentedSubmittable<(refIndex: Compact | AnyNumber | Uint8Array, vote: PezpalletDemocracyVoteAccountVote) => SubmittableExtrinsic, [Compact, PezpalletDemocracyVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + electionProviderMultiPhase: { + /** + * Trigger the governance fallback. + * + * This can only be called when [`Phase::Emergency`] is enabled, as an alternative to + * calling [`Call::set_emergency_election_result`]. + **/ + governanceFallback: AugmentedSubmittable<(maybeMaxVoters: Option | null | Uint8Array | u32 | AnyNumber, maybeMaxTargets: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option, Option]>; + /** + * Set a solution in the queue, to be handed out to the client of this pallet in the next + * call to `ElectionProvider::elect`. + * + * This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`. + * + * The solution is not checked for any feasibility and is assumed to be trustworthy, as any + * feasibility check itself can in principle cause the election process to fail (due to + * memory/weight constrains). + **/ + setEmergencyElectionResult: AugmentedSubmittable<(supports: Vec> | ([AccountId32 | string | Uint8Array, PezspNposElectionsSupport])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Set a new value for `MinimumUntrustedScore`. + * + * Dispatch origin must be aligned with `T::ForceOrigin`. + * + * This check can be turned off by setting the value to `None`. + **/ + setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option | null | Uint8Array | PezspNposElectionsElectionScore) => SubmittableExtrinsic, [Option]>; + /** + * Submit a solution for the signed phase. + * + * The dispatch origin fo this call must be __signed__. + * + * The solution is potentially queued, based on the claimed score and processed at the end + * of the signed phase. + * + * A deposit is reserved and recorded for the solution. Based on the outcome, the solution + * might be rewarded, slashed, or get all or a part of the deposit back. + **/ + submit: AugmentedSubmittable<(rawSolution: PezpalletElectionProviderMultiPhaseRawSolution) => SubmittableExtrinsic, [PezpalletElectionProviderMultiPhaseRawSolution]>; + /** + * Submit a solution for the unsigned phase. + * + * The dispatch origin fo this call must be __none__. + * + * This submission is checked on the fly. Moreover, this unsigned solution is only + * validated when submitted to the pool from the **local** node. Effectively, this means + * that only active validators can submit this transaction when authoring a block (similar + * to an inherent). + * + * To prevent any incorrect solution (and thus wasted time/weight), this transaction will + * panic if the solution submitted by the validator is invalid in any way, effectively + * putting their authoring reward at risk. + * + * No deposit or reward is associated with this submission. + **/ + submitUnsigned: AugmentedSubmittable<(rawSolution: PezpalletElectionProviderMultiPhaseRawSolution, witness: PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize) => SubmittableExtrinsic, [PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + elections: { + /** + * Clean all voters who are defunct (i.e. they do not serve any purpose at all). The + * deposit of the removed voters are returned. + * + * This is an root function to be used only for cleaning the state. + * + * The dispatch origin of this call must be root. + * + * ## Complexity + * - Check is_defunct_voter() details. + **/ + cleanDefunctVoters: AugmentedSubmittable<(numVoters: u32 | AnyNumber | Uint8Array, numDefunct: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Remove a particular member from the set. This is effective immediately and the bond of + * the outgoing member is slashed. + * + * If a runner-up is available, then the best runner-up will be removed and replaces the + * outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is + * started, else, nothing happens. + * + * If `slash_bond` is set to true, the bond of the member being removed is slashed. Else, + * it is returned. + * + * The dispatch origin of this call must be root. + * + * Note that this does not affect the designated block number of the next election. + * + * ## Complexity + * - Check details of remove_and_replace_member() and do_phragmen(). + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, slashBond: bool | boolean | Uint8Array, rerunElection: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool, bool]>; + /** + * Remove `origin` as a voter. + * + * This removes the lock and returns the deposit. + * + * The dispatch origin of this call must be signed and be a voter. + **/ + removeVoter: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Renounce one's intention to be a candidate for the next election round. 3 potential + * outcomes exist: + * + * - `origin` is a candidate and not elected in any set. In this case, the deposit is + * unreserved, returned and origin is removed as a candidate. + * - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and + * origin is removed as a runner-up. + * - `origin` is a current member. In this case, the deposit is unreserved and origin is + * removed as a member, consequently not being a candidate for the next round anymore. + * Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they + * are immediately used. If the prime is renouncing, then no prime will exist until the + * next round. + * + * The dispatch origin of this call must be signed, and have one of the above roles. + * The type of renouncing must be provided as witness data. + * + * ## Complexity + * - Renouncing::Candidate(count): O(count + log(count)) + * - Renouncing::Member: O(1) + * - Renouncing::RunnerUp: O(1) + **/ + renounceCandidacy: AugmentedSubmittable<(renouncing: PezpalletElectionsPhragmenRenouncing) => SubmittableExtrinsic, [PezpalletElectionsPhragmenRenouncing]>; + /** + * Submit oneself for candidacy. A fixed amount of deposit is recorded. + * + * All candidates are wiped at the end of the term. They either become a member/runner-up, + * or leave the system while their deposit is slashed. + * + * The dispatch origin of this call must be signed. + * + * ### Warning + * + * Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`] + * to get their deposit back. Losing the spot in an election will always lead to a slash. + * + * The number of current candidates must be provided as witness data. + * ## Complexity + * O(C + log(C)) where C is candidate_count. + **/ + submitCandidacy: AugmentedSubmittable<(candidateCount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Vote for a set of candidates for the upcoming round of election. This can be called to + * set the initial votes, or update already existing votes. + * + * Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is + * reserved. The deposit is based on the number of votes and can be updated over time. + * + * The `votes` should: + * - not be empty. + * - be less than the number of possible candidates. Note that all current members and + * runners-up are also automatically candidates for the next round. + * + * If `value` is more than `who`'s free balance, then the maximum of the two is used. + * + * The dispatch origin of this call must be signed. + * + * ### Warning + * + * It is the responsibility of the caller to **NOT** place all of their balance into the + * lock and keep some for further operations. + **/ + vote: AugmentedSubmittable<(votes: Vec | (AccountId32 | string | Uint8Array)[], value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fastUnstake: { + /** + * Control the operation of this pallet. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + * + * ## Details + * + * Can set the number of eras to check per block, and potentially other admin work. + * + * ## Events + * + * No events are emitted from this dispatch. + **/ + control: AugmentedSubmittable<(erasToCheck: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Deregister oneself from the fast-unstake. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be *signed* by whoever is permitted to call + * unbond funds by the staking system. See [`Config::Staking`]. + * + * ## Details + * + * This is useful if one is registered, they are still waiting, and they change their mind. + * + * Note that the associated stash is still fully unbonded and chilled as a consequence of + * calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed + * by a call to `rebond` in the staking system. + * + * ## Events + * + * Some events from the staking and currency system might be emitted. + **/ + deregister: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register oneself for fast-unstake. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be *signed* by whoever is permitted to call + * unbond funds by the staking system. See [`Config::Staking`]. + * + * ## Details + * + * The stash associated with the origin must have no ongoing unlocking chunks. If + * successful, this will fully unbond and chill the stash. Then, it will enqueue the stash + * to be checked in further blocks. + * + * If by the time this is called, the stash is actually eligible for fast-unstake, then + * they are guaranteed to remain eligible, because the call will chill them as well. + * + * If the check works, the entire staking data is removed, i.e. the stash is fully + * unstaked. + * + * If the check fails, the stash remains chilled and waiting for being unbonded as in with + * the normal staking system, but they lose part of their unbonding chunks due to consuming + * the chain's resources. + * + * ## Events + * + * Some events from the staking and currency system might be emitted. + **/ + registerFastUnstake: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + glutton: { + /** + * Increase the block size by including the specified garbage bytes. + **/ + bloat: AugmentedSubmittable<(garbage: Vec) => SubmittableExtrinsic, [Vec]>; + /** + * Initialize the pallet. Should be called once, if no genesis state was provided. + * + * `current_count` is the current number of elements in `TrashData`. This can be set to + * `None` when the pallet is first initialized. + * + * Only callable by Root or `AdminOrigin`. A good default for `new_count` is `5_000`. + **/ + initializePallet: AugmentedSubmittable<(newCount: u32 | AnyNumber | Uint8Array, witnessCount: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u32, Option]>; + /** + * Set how much of the block length should be filled with trash data on each block. + * + * `1.0` means that all block should be filled. If set to `1.0`, storage proof size will + * be close to zero. + * + * Only callable by Root or `AdminOrigin`. + **/ + setBlockLength: AugmentedSubmittable<(blockLength: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set how much of the remaining `ref_time` weight should be consumed by `on_idle`. + * + * Only callable by Root or `AdminOrigin`. + **/ + setCompute: AugmentedSubmittable<(compute: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set how much of the remaining `proof_size` weight should be consumed by `on_idle`. + * + * `1.0` means that all remaining `proof_size` will be consumed. The PoV benchmarking + * results that are used here are likely an over-estimation. 100% intended consumption will + * therefore translate to less than 100% actual consumption. + * + * Only callable by Root or `AdminOrigin`. + **/ + setStorage: AugmentedSubmittable<(storage: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + grandpa: { + /** + * Note that the current authority set of the GRANDPA finality gadget has stalled. + * + * This will trigger a forced authority set change at the beginning of the next session, to + * be enacted `delay` blocks after that. The `delay` should be high enough to safely assume + * that the block signalling the forced change will not be re-orged e.g. 1000 blocks. + * The block production rate (which may be slowed down because of finality lagging) should + * be taken into account when choosing the `delay`. The GRANDPA voters based on the new + * authority will start voting on top of `best_finalized_block_number` for new finalized + * blocks. `best_finalized_block_number` should be the highest of the latest finalized + * block of all validators of the new authority set. + * + * Only callable by root. + **/ + noteStalled: AugmentedSubmittable<(delay: u32 | AnyNumber | Uint8Array, bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + **/ + reportEquivocation: AugmentedSubmittable<(equivocationProof: PezspConsensusGrandpaEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusGrandpaEquivocationProof, PezspSessionMembershipProof]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusGrandpaEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusGrandpaEquivocationProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + identity: { + /** + * Accept a given username that an `authority` granted. The call must include the full + * username, as in `username.suffix`. + **/ + acceptUsername: AugmentedSubmittable<(username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Add a registrar to the system. + * + * The dispatch origin for this call must be `T::RegistrarOrigin`. + * + * - `account`: the account of the registrar. + * + * Emits `RegistrarAdded` if successful. + **/ + addRegistrar: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Add the given account to the sender's subs. + * + * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated + * to the sender. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * sub identity of `sub`. + **/ + addSub: AugmentedSubmittable<(sub: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, data: Data | { None: any } | { Raw: any } | { BlakeTwo256: any } | { Sha256: any } | { Keccak256: any } | { ShaThree256: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Data]>; + /** + * Add an `AccountId` with permission to grant usernames with a given `suffix` appended. + * + * The authority can grant up to `allocation` usernames. To top up the allocation or + * change the account used to grant usernames, this call can be used with the updated + * parameters to overwrite the existing configuration. + **/ + addUsernameAuthority: AugmentedSubmittable<(authority: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, suffix: Bytes | string | Uint8Array, allocation: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Bytes, u32]>; + /** + * Cancel a previous request. + * + * Payment: A previously reserved deposit is returned on success. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a + * registered identity. + * + * - `reg_index`: The index of the registrar whose judgement is no longer requested. + * + * Emits `JudgementUnrequested` if successful. + **/ + cancelRequest: AugmentedSubmittable<(regIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear an account's identity info and all sub-accounts and return all deposits. + * + * Payment: All reserved balances on the account are returned. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * identity. + * + * Emits `IdentityCleared` if successful. + **/ + clearIdentity: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an account's identity and sub-account information and slash the deposits. + * + * Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by + * `Slash`. Verification request deposits are not returned; they should be cancelled + * manually using `cancel_request`. + * + * The dispatch origin for this call must match `T::ForceOrigin`. + * + * - `target`: the account whose identity the judgement is upon. This must be an account + * with a registered identity. + * + * Emits `IdentityKilled` if successful. + **/ + killIdentity: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username + * and slashes any deposit associated with it. + **/ + killUsername: AugmentedSubmittable<(username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Provide a judgement for an account's identity. + * + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `reg_index`. + * + * - `reg_index`: the index of the registrar whose judgement is being made. + * - `target`: the account whose identity the judgement is upon. This must be an account + * with a registered identity. + * - `judgement`: the judgement of the registrar of index `reg_index` about `target`. + * - `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is + * provided. + * + * Note: Judgements do not apply to a username. + * + * Emits `JudgementGiven` if successful. + **/ + provideJudgement: AugmentedSubmittable<(regIndex: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, judgement: PezpalletIdentityJudgement, identity: H256 | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, PezpalletIdentityJudgement, H256]>; + /** + * Remove the sender as a sub-account. + * + * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated + * to the sender (*not* the original depositor). + * + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * super-identity. + * + * NOTE: This should not normally be used, but is provided in the case that the non- + * controller of an account is maliciously registered as a sub-account. + **/ + quitSub: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove an expired username approval. The username was approved by an authority but never + * accepted by the user and must now be beyond its expiration. The call must include the + * full username, as in `username.suffix`. + **/ + removeExpiredApproval: AugmentedSubmittable<(username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Remove the given account from the sender's subs. + * + * Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated + * to the sender. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * sub identity of `sub`. + **/ + removeSub: AugmentedSubmittable<(sub: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Permanently delete a username which has been unbinding for longer than the grace period. + * Caller is refunded the fee if the username expired and the removal was successful. + **/ + removeUsername: AugmentedSubmittable<(username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Remove `authority` from the username authorities. + **/ + removeUsernameAuthority: AugmentedSubmittable<(suffix: Bytes | string | Uint8Array, authority: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Bytes, MultiAddress]>; + /** + * Alter the associated name of the given sub-account. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * sub identity of `sub`. + **/ + renameSub: AugmentedSubmittable<(sub: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, data: Data | { None: any } | { Raw: any } | { BlakeTwo256: any } | { Sha256: any } | { Keccak256: any } | { ShaThree256: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Data]>; + /** + * Request a judgement from a registrar. + * + * Payment: At most `max_fee` will be reserved for payment to the registrar if judgement + * given. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a + * registered identity. + * + * - `reg_index`: The index of the registrar whose judgement is requested. + * - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as: + * + * ```nocompile + * Registrars::::get().get(reg_index).unwrap().fee + * ``` + * + * Emits `JudgementRequested` if successful. + **/ + requestJudgement: AugmentedSubmittable<(regIndex: Compact | AnyNumber | Uint8Array, maxFee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Change the account associated with a registrar. + * + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `index`. + * + * - `index`: the index of the registrar whose fee is to be set. + * - `new`: the new account ID. + **/ + setAccountId: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Set the fee required for a judgement to be requested from a registrar. + * + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `index`. + * + * - `index`: the index of the registrar whose fee is to be set. + * - `fee`: the new fee. + **/ + setFee: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Set the field information for a registrar. + * + * The dispatch origin for this call must be _Signed_ and the sender must be the account + * of the registrar whose index is `index`. + * + * - `index`: the index of the registrar whose fee is to be set. + * - `fields`: the fields that the registrar concerns themselves with. + **/ + setFields: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, fields: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u64]>; + /** + * Set an account's identity information and reserve the appropriate deposit. + * + * If the account already has identity information, the deposit is taken as part payment + * for the new deposit. + * + * The dispatch origin for this call must be _Signed_. + * + * - `info`: The identity information. + * + * Emits `IdentitySet` if successful. + **/ + setIdentity: AugmentedSubmittable<(info: PezpalletIdentityLegacyIdentityInfo) => SubmittableExtrinsic, [PezpalletIdentityLegacyIdentityInfo]>; + /** + * Set a given username as the primary. The username should include the suffix. + **/ + setPrimaryUsername: AugmentedSubmittable<(username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the sub-accounts of the sender. + * + * Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned + * and an amount `SubAccountDeposit` will be reserved for each item in `subs`. + * + * The dispatch origin for this call must be _Signed_ and the sender must have a registered + * identity. + * + * - `subs`: The identity's (new) sub-accounts. + **/ + setSubs: AugmentedSubmittable<(subs: Vec> | ([AccountId32 | string | Uint8Array, Data | { None: any } | { Raw: any } | { BlakeTwo256: any } | { Sha256: any } | { Keccak256: any } | { ShaThree256: any } | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Set the username for `who`. Must be called by a username authority. + * + * If `use_allocation` is set, the authority must have a username allocation available to + * spend. Otherwise, the authority will need to put up a deposit for registering the + * username. + * + * Users can either pre-sign their usernames or + * accept them later. + * + * Usernames must: + * - Only contain lowercase ASCII characters or digits. + * - When combined with the suffix of the issuing authority be _less than_ the + * `MaxUsernameLength`. + **/ + setUsernameFor: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, username: Bytes | string | Uint8Array, signature: Option | null | Uint8Array | PezspRuntimeMultiSignature, useAllocation: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Bytes, Option, bool]>; + /** + * Start the process of removing a username by placing it in the unbinding usernames map. + * Once the grace period has passed, the username can be deleted by calling + * [remove_username](crate::Call::remove_username). + **/ + unbindUsername: AugmentedSubmittable<(username: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + imOnline: { + /** + * ## Complexity: + * - `O(K)` where K is length of `Keys` (heartbeat.validators_len) + * - `O(K)`: decoding of length `K` + **/ + heartbeat: AugmentedSubmittable<(heartbeat: PezpalletImOnlineHeartbeat, signature: PezpalletImOnlineSr25519AppSr25519Signature) => SubmittableExtrinsic, [PezpalletImOnlineHeartbeat, PezpalletImOnlineSr25519AppSr25519Signature]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + indices: { + /** + * Assign an previously unassigned index. + * + * Payment: `Deposit` is reserved from the sender account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be claimed. This must not be in use. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + claim: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force an index to an account. This doesn't require a deposit. If the index is already + * held, then any deposit is reimbursed to its current owner. + * + * The dispatch origin for this call must be _Root_. + * + * - `index`: the index to be (re-)assigned. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * - `freeze`: if set to `true`, will freeze the index so it cannot be transferred. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + forceTransfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array, freeze: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, bool]>; + /** + * Free up an index owned by the sender. + * + * Payment: Any previous deposit placed for the index is unreserved in the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must own the index. + * + * - `index`: the index to be freed. This must be owned by the sender. + * + * Emits `IndexFreed` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + free: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Freeze an index so it will always point to the sender account. This consumes the + * deposit. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * - `index`: the index to be frozen in place. + * + * Emits `IndexFrozen` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + freeze: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Poke the deposit reserved for an index. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * The transaction fees is waived if the deposit is changed after poking/reconsideration. + * + * - `index`: the index whose deposit is to be poked/reconsidered. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Assign an index already owned by the sender to another account. The balance reservation + * is effectively transferred to the new account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be re-assigned. This must be owned by the sender. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + transfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + lottery: { + /** + * Buy a ticket to enter the lottery. + * + * This extrinsic acts as a passthrough function for `call`. In all + * situations where `call` alone would succeed, this extrinsic should + * succeed. + * + * If `call` is successful, then we will attempt to purchase a ticket, + * which may fail silently. To detect success of a ticket purchase, you + * should listen for the `TicketBought` event. + * + * This extrinsic must be called by a signed origin. + **/ + buyTicket: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + /** + * Set calls in storage which can be used to purchase a lottery ticket. + * + * This function only matters if you use the `ValidateCall` implementation + * provided by this pallet, which uses storage to determine the valid calls. + * + * This extrinsic must be called by the Manager origin. + **/ + setCalls: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Start a lottery using the provided configuration. + * + * This extrinsic must be called by the `ManagerOrigin`. + * + * Parameters: + * + * * `price`: The cost of a single ticket. + * * `length`: How long the lottery should run for starting at the current block. + * * `delay`: How long after the lottery end we should wait before picking a winner. + * * `repeat`: If the lottery should repeat when completed. + **/ + startLottery: AugmentedSubmittable<(price: u128 | AnyNumber | Uint8Array, length: u32 | AnyNumber | Uint8Array, delay: u32 | AnyNumber | Uint8Array, repeat: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u128, u32, u32, bool]>; + /** + * If a lottery is repeating, you can use this to stop the repeat. + * The lottery will continue to run to completion. + * + * This extrinsic must be called by the `ManagerOrigin`. + **/ + stopRepeat: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable<(messageOrigin: u32 | AnyNumber | Uint8Array, page: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array, weightLimit: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u32, u32, u32, PezspWeightsWeightV2Weight]>; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable<(messageOrigin: u32 | AnyNumber | Uint8Array, pageIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + metaTx: { + /** + * Dispatch a given meta transaction. + * + * - `_origin`: Can be any kind of origin. + * - `meta_tx`: Meta Transaction with a target call to be dispatched. + **/ + dispatch: AugmentedSubmittable<(metaTx: PezpalletMetaTxMetaTx) => SubmittableExtrinsic, [PezpalletMetaTxMetaTx]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + mixnet: { + /** + * Register a mixnode for the following session. + **/ + register: AugmentedSubmittable<(registration: PezpalletMixnetRegistration, signature: PezspMixnetAppSignature) => SubmittableExtrinsic, [PezpalletMixnetRegistration, PezspMixnetAppSignature]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multiBlockMigrations: { + /** + * Clears the `Historic` set. + * + * `map_cursor` must be set to the last value that was returned by the + * `HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a + * way that will result in a sensible weight. + **/ + clearHistoric: AugmentedSubmittable<(selector: PezpalletMigrationsHistoricCleanupSelector) => SubmittableExtrinsic, [PezpalletMigrationsHistoricCleanupSelector]>; + /** + * Forces the onboarding of the migrations. + * + * This process happens automatically on a runtime upgrade. It is in place as an emergency + * measurement. The cursor needs to be `None` for this to succeed. + **/ + forceOnboardMbms: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allows root to set an active cursor to forcefully start/forward the migration process. + * + * This is an edge-case version of [`Self::force_set_cursor`] that allows to set the + * `started_at` value to the next block number. Otherwise this would not be possible, since + * `force_set_cursor` takes an absolute block number. Setting `started_at` to `None` + * indicates that the current block number plus one should be used. + **/ + forceSetActiveCursor: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, innerCursor: Option | null | Uint8Array | Bytes | string, startedAt: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u32, Option, Option]>; + /** + * Allows root to set a cursor to forcefully start, stop or forward the migration process. + * + * Should normally not be needed and is only in place as emergency measure. Note that + * restarting the migration process in this manner will not call the + * [`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event. + **/ + forceSetCursor: AugmentedSubmittable<(cursor: Option | null | Uint8Array | PezpalletMigrationsMigrationCursor) => SubmittableExtrinsic, [Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multisig: { + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call_hash`: The hash of the call to be executed. + * + * NOTE: If this is the final approval, you will want to use `as_multi` instead. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, PezspWeightsWeightV2Weight]>; + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * If there are enough, then dispatch the call. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call`: The call to be executed. + * + * NOTE: Unless this is the final approval, you will generally want to use + * `approve_as_multi` instead, since it only requires a hash of the call. + * + * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise + * on success, result is `Ok` and the result from the interior call, if it was executed, + * may be found in the deposited `MultisigExecuted` event. + * + * ## Complexity + * - `O(S + Z + Call)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - The weight of the `call`. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, call: RuntimeCall | IMethod | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Immediately dispatch a multi-signature call using a single approval from the caller. + * + * The dispatch origin for this call must be _Signed_. + * + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multi-signature, but do not participate in the approval process. + * - `call`: The call to be executed. + * + * Result is equivalent to the dispatched result. + * + * ## Complexity + * O(Z + C) where Z is the length of the call and C its execution weight. + **/ + asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Vec, RuntimeCall]>; + /** + * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously + * for this operation will be unreserved on success. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `timepoint`: The timepoint (block number and transaction index) of the first approval + * transaction for this dispatch. + * - `call_hash`: The hash of the call to be executed. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - One event. + * - I/O: 1 read `O(S)`, one remove. + * - Storage: removes one item. + **/ + cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], timepoint: PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, PezpalletMultisigTimepoint, U8aFixed]>; + /** + * Poke the deposit reserved for an existing multisig operation. + * + * The dispatch origin for this call must be _Signed_ and must be the original depositor of + * the multisig operation. + * + * The transaction fee is waived if the deposit amount has changed. + * + * - `threshold`: The total number of approvals needed for this multisig. + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multisig. + * - `call_hash`: The hash of the call this deposit is reserved for. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, U8aFixed]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nftFractionalization: { + /** + * Lock the NFT and mint a new fungible asset. + * + * The dispatch origin for this call must be Signed. + * The origin must be the owner of the NFT they are trying to lock. + * + * `Deposit` funds of sender are reserved. + * + * - `nft_collection_id`: The ID used to identify the collection of the NFT. + * Is used within the context of `pallet_nfts`. + * - `nft_id`: The ID used to identify the NFT within the given collection. + * Is used within the context of `pallet_nfts`. + * - `asset_id`: The ID of the new asset. It must not exist. + * Is used within the context of `pallet_assets`. + * - `beneficiary`: The account that will receive the newly created asset. + * - `fractions`: The total issuance of the newly created asset class. + * + * Emits `NftFractionalized` event when successful. + **/ + fractionalize: AugmentedSubmittable<(nftCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, assetId: u32 | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fractions: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, MultiAddress, u128]>; + /** + * Burn the total issuance of the fungible asset and return (unlock) the locked NFT. + * + * The dispatch origin for this call must be Signed. + * + * `Deposit` funds will be returned to `asset_creator`. + * + * - `nft_collection_id`: The ID used to identify the collection of the NFT. + * Is used within the context of `pallet_nfts`. + * - `nft_id`: The ID used to identify the NFT within the given collection. + * Is used within the context of `pallet_nfts`. + * - `asset_id`: The ID of the asset being returned and destroyed. Must match + * the original ID of the created asset, corresponding to the NFT. + * Is used within the context of `pallet_assets`. + * - `beneficiary`: The account that will receive the unified NFT. + * + * Emits `NftUnified` event when successful. + **/ + unify: AugmentedSubmittable<(nftCollectionId: u32 | AnyNumber | Uint8Array, nftId: u32 | AnyNumber | Uint8Array, assetId: u32 | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nfts: { + /** + * Approve item's attributes to be changed by a delegated third-party account. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: A collection of the item. + * - `item`: The item that holds attributes. + * - `delegate`: The account to delegate permission to change attributes of the item. + * + * Emits `ItemAttributesApprovalAdded` on success. + **/ + approveItemAttributes: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Approve an item to be transferred by a delegated third-party account. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * - `maybe_deadline`: Optional deadline for the approval. Specified by providing the + * number of blocks after which the approval will expire + * + * Emits `TransferApproved` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, maybeDeadline: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u32, u32, MultiAddress, Option]>; + /** + * Destroy a single item. + * + * The origin must conform to `ForceOrigin` or must be Signed and the signing account must + * be the owner of the `item`. + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item to be burned. + * + * Emits `Burned`. + * + * Weight: `O(1)` + **/ + burn: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, bidPrice: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u128]>; + /** + * Cancel one of the transfer approvals for a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the collection of whose approval will be cancelled. + * - `delegate`: The account that is going to loose their approval. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Cancel the previously provided approval to change item's attributes. + * All the previously set attributes by the `delegate` will be removed. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: Collection that the item is contained within. + * - `item`: The item that holds attributes. + * - `delegate`: The previously approved account to remove. + * + * Emits `ItemAttributesApprovalRemoved` on success. + **/ + cancelItemAttributesApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, witness: PezpalletNftsCancelAttributesApprovalWitness) => SubmittableExtrinsic, [u32, u32, MultiAddress, PezpalletNftsCancelAttributesApprovalWitness]>; + /** + * Cancel an atomic swap. + * + * Origin must be Signed. + * Origin must be an owner of the `item` if the deadline hasn't expired. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * + * Emits `SwapCancelled` on success. + **/ + cancelSwap: AugmentedSubmittable<(offeredCollection: u32 | AnyNumber | Uint8Array, offeredItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Claim an atomic swap. + * This method executes a pending swap, that was created by a counterpart before. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `send_collection`: The collection of the item to be sent. + * - `send_item`: The item to be sent. + * - `receive_collection`: The collection of the item to be received. + * - `receive_item`: The item to be received. + * - `witness_price`: A price that was previously agreed on. + * + * Emits `SwapClaimed` on success. + **/ + claimSwap: AugmentedSubmittable<(sendCollection: u32 | AnyNumber | Uint8Array, sendItem: u32 | AnyNumber | Uint8Array, receiveCollection: u32 | AnyNumber | Uint8Array, receiveItem: u32 | AnyNumber | Uint8Array, witnessPrice: Option | null | Uint8Array | PezpalletNftsPriceWithDirection) => SubmittableExtrinsic, [u32, u32, u32, u32, Option]>; + /** + * Cancel all the approvals of a specific item. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approvals will be cleared. + * - `item`: The item of the collection of whose approvals will be cleared. + * + * Emits `AllApprovalsCancelled` on success. + * + * Weight: `O(1)` + **/ + clearAllTransferApprovals: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * attribute. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, PezpalletNftsAttributeNamespace, Bytes]>; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `ItemMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must be Signed and the sender must have sufficient funds free. + * + * `CollectionDeposit` funds of sender are reserved. + * + * Parameters: + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [MultiAddress, PezpalletNftsCollectionConfig]>; + /** + * Register a new atomic swap, declaring an intention to send an `item` in exchange for + * `desired_item` from origin to target on the current blockchain. + * The target can execute the swap during the specified `duration` of blocks (if set). + * Additionally, the price could be set for the desired `item`. + * + * Origin must be Signed and must be an owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item an owner wants to give. + * - `desired_collection`: The collection of the desired item. + * - `desired_item`: The desired item an owner wants to receive. + * - `maybe_price`: The price an owner is willing to pay or receive for the desired `item`. + * - `duration`: A deadline for the swap. Specified by providing the number of blocks + * after which the swap will expire. + * + * Emits `SwapCreated` on success. + **/ + createSwap: AugmentedSubmittable<(offeredCollection: u32 | AnyNumber | Uint8Array, offeredItem: u32 | AnyNumber | Uint8Array, desiredCollection: u32 | AnyNumber | Uint8Array, maybeDesiredItem: Option | null | Uint8Array | u32 | AnyNumber, maybePrice: Option | null | Uint8Array | PezpalletNftsPriceWithDirection, duration: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, Option, Option, u32]>; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * NOTE: The collection must have 0 items to be destroyed. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(m + c + a)` where: + * - `m = witness.item_metadatas` + * - `c = witness.item_configs` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, witness: PezpalletNftsDestroyWitness) => SubmittableExtrinsic, [u32, PezpalletNftsDestroyWitness]>; + /** + * Change the config of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `config`: The new config of this collection. + * + * Emits `CollectionConfigChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionConfig: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [u32, PezpalletNftsCollectionConfig]>; + /** + * Change the Owner of a collection. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the collection. + * - `owner`: The new Owner of this collection. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + forceCollectionOwner: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, config: PezpalletNftsCollectionConfig) => SubmittableExtrinsic, [MultiAddress, PezpalletNftsCollectionConfig]>; + /** + * Mint an item of a particular collection from a privileged origin. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `item_config`: A config of the new item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + forceMint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, mintTo: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, itemConfig: PezpalletNftsItemConfig) => SubmittableExtrinsic, [u32, u32, MultiAddress, PezpalletNftsItemConfig]>; + /** + * Force-set an attribute for a collection or item. + * + * Origin must be `ForceOrigin`. + * + * If the attribute already exists and it was set by another account, the deposit + * will be returned to the previous owner. + * + * - `set_as`: An optional owner of the attribute. + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + forceSetAttribute: AugmentedSubmittable<(setAs: Option | null | Uint8Array | AccountId32 | string, collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Option, u32, Option, PezpalletNftsAttributeNamespace, Bytes, Bytes]>; + /** + * Disallows specified settings for the whole collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be locked. + * - `lock_settings`: The settings to be locked. + * + * Note: it's possible to only lock(set) the setting, but not to unset it. + * + * Emits `CollectionLocked`. + * + * Weight: `O(1)` + **/ + lockCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, lockSettings: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u64]>; + /** + * Disallows changing the metadata or attributes of the item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin + * of the `collection`. + * + * - `collection`: The collection if the `item`. + * - `item`: An item to be locked. + * - `lock_metadata`: Specifies whether the metadata should be locked. + * - `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace + * should be locked. + * + * Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only. + * When the metadata or attributes are locked, it won't be possible the unlock them. + * + * Emits `ItemPropertiesLocked`. + * + * Weight: `O(1)` + **/ + lockItemProperties: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, lockMetadata: bool | boolean | Uint8Array, lockAttributes: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, u32, bool, bool]>; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become non-transferable. + * + * Emits `ItemTransferLocked`. + * + * Weight: `O(1)` + **/ + lockItemTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must comply with the `mint_settings` rules. + * + * - `collection`: The collection of the item to be minted. + * - `item`: An identifier of the new item. + * - `mint_to`: Account into which the item will be minted. + * - `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned + * item_id from that collection needs to be provided within the witness data object. If + * the mint price is set, then it should be additionally confirmed in the `witness_data`. + * + * Note: the deposit will be taken from the `origin` and not the `owner` of the `item`. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, mintTo: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, witnessData: Option | null | Uint8Array | PezpalletNftsMintWitness) => SubmittableExtrinsic, [u32, u32, MultiAddress, Option]>; + /** + * Mint an item by providing the pre-signed approval. + * + * Origin must be Signed. + * + * - `mint_data`: The pre-signed approval that consists of the information about the item, + * its metadata, attributes, who can mint it (`None` for anyone) and until what block + * number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Issuer of the collection. + * + * Emits `Issued` on success. + * Emits `AttributeSet` if the attributes were provided. + * Emits `ItemMetadataSet` if the metadata was not empty. + **/ + mintPreSigned: AugmentedSubmittable<(mintData: PezpalletNftsPreSignedMint, signature: PezspRuntimeMultiSignature, signer: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletNftsPreSignedMint, PezspRuntimeMultiSignature, AccountId32]>; + /** + * Allows to pay the tips. + * + * Origin must be Signed. + * + * - `tips`: Tips array. + * + * Emits `TipSent` on every tip transfer. + **/ + payTips: AugmentedSubmittable<(tips: Vec | (PezpalletNftsItemTip)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Re-evaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection of the items to be reevaluated. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown or the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, items: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable<(maybeCollection: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set an attribute for a collection or item. + * + * Origin must be Signed and must conform to the namespace ruleset: + * - `CollectionOwner` namespace could be modified by the `collection` Admin only; + * - `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item` + * should be set in that case; + * - `Account(AccountId)` namespace could be modified only when the `origin` was given a + * permission to do so; + * + * The funds of `origin` are reserved according to the formula: + * `AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `namespace`: Attribute's namespace. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, namespace: PezpalletNftsAttributeNamespace, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, PezpalletNftsAttributeNamespace, Bytes, Bytes]>; + /** + * Set attributes for an item by providing the pre-signed approval. + * + * Origin must be Signed and must be an owner of the `data.item`. + * + * - `data`: The pre-signed approval that consists of the information about the item, + * attributes to update and until what block number. + * - `signature`: The signature of the `data` object. + * - `signer`: The `data` object's signer. Should be an Admin of the collection for the + * `CollectionOwner` namespace. + * + * Emits `AttributeSet` for each provided attribute. + * Emits `ItemAttributesApprovalAdded` if the approval wasn't set before. + * Emits `PreSignedAttributesSet` on success. + **/ + setAttributesPreSigned: AugmentedSubmittable<(data: PezpalletNftsPreSignedAttributes, signature: PezspRuntimeMultiSignature, signer: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [PezpalletNftsPreSignedAttributes, PezspRuntimeMultiSignature, AccountId32]>; + /** + * Set the maximum number of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum number of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maxSupply: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * + * Emits `ItemMetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes]>; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, price: Option | null | Uint8Array | u128 | AnyNumber, whitelistedBuyer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option, Option]>; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Note: by setting the role to `None` only the `ForceOrigin` will be able to change it + * after to `Some(account)`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, issuer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string, admin: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string, freezer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, Option, Option, Option]>; + /** + * Move an item from the sender account to another. + * + * Origin must be Signed and the signing account must be either: + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, newOwner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be changed. + * - `item`: The item to become transferable. + * + * Emits `ItemTransferUnlocked`. + * + * Weight: `O(1)` + **/ + unlockItemTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Update mint settings. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer + * of the `collection`. + * + * - `collection`: The identifier of the collection to change. + * - `mint_settings`: The new mint settings. + * + * Emits `CollectionMintSettingsUpdated` event when successful. + **/ + updateMintSettings: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, mintSettings: PezpalletNftsMintSettings) => SubmittableExtrinsic, [u32, PezpalletNftsMintSettings]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nis: { + /** + * Make a private receipt communal and create fungible counterparts for its owner. + **/ + communify: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Ensure we have sufficient funding for all potential payouts. + * + * - `origin`: Must be accepted by `FundOrigin`. + **/ + fundDeficit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Place a bid. + * + * Origin must be Signed, and account must have at least `amount` in free balance. + * + * - `amount`: The amount of the bid; these funds will be reserved, and if/when + * consolidated, removed. Must be at least `MinBid`. + * - `duration`: The number of periods before which the newly consolidated bid may be + * thawed. Must be greater than 1 and no more than `QueueCount`. + * + * Complexities: + * - `Queues[duration].len()` (just take max). + **/ + placeBid: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, duration: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Make a communal receipt private and burn fungible counterparts from its owner. + **/ + privatize: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Retract a previously placed bid. + * + * Origin must be Signed, and the account should have previously issued a still-active bid + * of `amount` for `duration`. + * + * - `amount`: The amount of the previous bid. + * - `duration`: The duration of the previous bid. + **/ + retractBid: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, duration: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Reduce or remove an outstanding receipt, placing the according proportion of funds into + * the account of the owner. + * + * - `origin`: Must be Signed and the account must be the owner of the fungible counterpart + * for receipt `index`. + * - `index`: The index of the receipt. + **/ + thawCommunal: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Reduce or remove an outstanding receipt, placing the according proportion of funds into + * the account of the owner. + * + * - `origin`: Must be Signed and the account must be the owner of the receipt `index` as + * well as any fungible counterpart. + * - `index`: The index of the receipt. + * - `portion`: If `Some`, then only the given portion of the receipt should be thawed. If + * `None`, then all of it should be. + **/ + thawPrivate: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, maybeProportion: Option | null | Uint8Array | Perquintill | AnyNumber) => SubmittableExtrinsic, [Compact, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nominationPools: { + /** + * Top up the deficit or withdraw the excess ED from the pool. + * + * When a pool is created, the pool depositor transfers ED to the reward account of the + * pool. ED is subject to change and over time, the deposit in the reward account may be + * insufficient to cover the ED deficit of the pool or vice-versa where there is excess + * deposit to the pool. This call allows anyone to adjust the ED deposit of the + * pool by either topping up the deficit or claiming the excess. + **/ + adjustPoolDeposit: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Apply a pending slash on a member. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * The pending slash amount of the member must be equal or more than `ExistentialDeposit`. + * This call can be dispatched permissionlessly (i.e. by any account). If the execution + * is successful, fee is refunded and caller may be rewarded with a part of the slash + * based on the [`crate::pallet::Config::StakeAdapter`] configuration. + **/ + applySlash: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Bond `extra` more funds from `origin` into the pool to which they already belong. + * + * Additional funds can come from either the free balance of the account, of from the + * accumulated rewards, see [`BondExtra`]. + * + * Bonding extra funds implies an automatic payout of all pending rewards as well. + * See `bond_extra_other` to bond pending rewards of `other` members. + **/ + bondExtra: AugmentedSubmittable<(extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [PezpalletNominationPoolsBondExtra]>; + /** + * `origin` bonds funds from `extra` for some pool member `member` into their respective + * pools. + * + * `origin` can bond extra funds from free balance or pending rewards when `origin == + * other`. + * + * In the case of `origin != other`, `origin` can only bond extra pending rewards of + * `other` members assuming set_claim_permission for the given member is + * `PermissionlessCompound` or `PermissionlessAll`. + **/ + bondExtraOther: AugmentedSubmittable<(member: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [MultiAddress, PezpalletNominationPoolsBondExtra]>; + /** + * Chill on behalf of the pool. + * + * The dispatch origin of this call can be signed by the pool nominator or the pool + * root role, same as [`Pallet::nominate`]. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch: + * * When pool depositor has less than `MinNominatorBond` staked, otherwise pool members + * are unable to unbond. + * + * # Conditions for permissioned dispatch: + * * The caller is the pool's nominator or root. + **/ + chill: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim pending commission. + * + * The `root` role of the pool is _always_ allowed to claim the pool's commission. + * + * If the pool has set `CommissionClaimPermission::Permissionless`, then any account can + * trigger the process of claiming the pool's commission. + * + * If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only + * accounts + * * `acc`, and + * * the pool's root account + * + * may call this extrinsic on behalf of the pool. + * + * Pending commissions are paid out and added to the total claimed commission. + * The total pending commission is reset to zero. + **/ + claimCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * A bonded member can use this to claim their payout based on the rewards that the pool + * has accumulated since their last claimed payout (OR since joining if this is their first + * time claiming rewards). The payout will be transferred to the member's account. + * + * The member will earn rewards pro rata based on the members stake vs the sum of the + * members in the pools stake. Rewards do not "expire". + * + * See `claim_payout_other` to claim rewards on behalf of some `other` pool member. + **/ + claimPayout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * `origin` can claim payouts on some pool member `other`'s behalf. + * + * Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim + * permission for this call to be successful. + **/ + claimPayoutOther: AugmentedSubmittable<(other: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Create a new delegation pool. + * + * # Arguments + * + * * `amount` - The amount of funds to delegate to the pool. This also acts of a sort of + * deposit since the pools creator cannot fully unbond funds until the pool is being + * destroyed. + * * `index` - A disambiguation index for creating the account. Likely only useful when + * creating multiple pools in the same extrinsic. + * * `root` - The account to set as [`PoolRoles::root`]. + * * `nominator` - The account to set as the [`PoolRoles::nominator`]. + * * `bouncer` - The account to set as the [`PoolRoles::bouncer`]. + * + * # Note + * + * In addition to `amount`, the caller will transfer the existential deposit; so the caller + * needs at have at least `amount + existential_deposit` transferable. + **/ + create: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Create a new delegation pool with a previously used pool id + * + * # Arguments + * + * same as `create` with the inclusion of + * * `pool_id` - `A valid PoolId. + **/ + createWithPoolId: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, u32]>; + /** + * Stake funds with a pool. The amount to bond is delegated (or transferred based on + * [`adapter::StakeStrategyType`]) from the member to the pool account and immediately + * increases the pool's bond. + * + * The method of transferring the amount to the pool account is determined by + * [`adapter::StakeStrategyType`]. If the pool is configured to use + * [`adapter::StakeStrategyType::Delegate`], the funds remain in the account of + * the `origin`, while the pool gains the right to use these funds for staking. + * + * # Note + * + * * An account can only be a member of a single pool. + * * An account cannot join the same pool multiple times. + * * This call will *not* dust the member account, so the member must have at least + * `existential deposit + amount` in their account. + * * Only a pool with [`PoolState::Open`] can be joined + **/ + join: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Migrates delegated funds from the pool account to the `member_account`. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This is a permission-less call and refunds any fee if claim is successful. + * + * If the pool has migrated to delegation based staking, the staked tokens of pool members + * can be moved and held in their own account. See [`adapter::DelegateStake`] + **/ + migrateDelegation: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Migrate pool from [`adapter::StakeStrategyType::Transfer`] to + * [`adapter::StakeStrategyType::Delegate`]. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This call can be dispatched permissionlessly, and refunds any fee if successful. + * + * If the pool has already migrated to delegation based staking, this call will fail. + **/ + migratePoolToDelegateStake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Nominate on behalf of the pool. + * + * The dispatch origin of this call must be signed by the pool nominator or the pool + * root role. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * # Note + * + * In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to + * have at least `depositor_min_bond` in the pool to start nominating. + **/ + nominate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, validators: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Call `withdraw_unbonded` for the pools account. This call can be made by any account. + * + * This is useful if there are too many unlocking chunks to call `unbond`, and some + * can be cleared by withdrawing. In the case there are too many unlocking chunks, the user + * would probably see an error like `NoMoreChunks` emitted from the staking system when + * they attempt to unbond. + **/ + poolWithdrawUnbonded: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows a pool member to set a claim permission to allow or disallow permissionless + * bonding and withdrawing. + * + * # Arguments + * + * * `origin` - Member of a pool. + * * `permission` - The permission to be applied. + **/ + setClaimPermission: AugmentedSubmittable<(permission: PezpalletNominationPoolsClaimPermission) => SubmittableExtrinsic, [PezpalletNominationPoolsClaimPermission]>; + /** + * Set the commission of a pool. + * Both a commission percentage and a commission payee must be provided in the `current` + * tuple. Where a `current` of `None` is provided, any current commission will be removed. + * + * - If a `None` is supplied to `new_commission`, existing commission will be removed. + **/ + setCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newCommission: Option> | null | Uint8Array | ITuple<[Perbill, AccountId32]> | [Perbill | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => SubmittableExtrinsic, [u32, Option>]>; + /** + * Set the commission change rate for a pool. + * + * Initial change rate is not bounded, whereas subsequent updates can only be more + * restrictive than the current. + **/ + setCommissionChangeRate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, changeRate: PezpalletNominationPoolsCommissionChangeRate) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsCommissionChangeRate]>; + /** + * Set or remove a pool's commission claim permission. + * + * Determines who can claim the pool's pending commission. Only the `Root` role of the pool + * is able to configure commission claim permissions. + **/ + setCommissionClaimPermission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, permission: Option | null | Uint8Array | PezpalletNominationPoolsCommissionClaimPermission) => SubmittableExtrinsic, [u32, Option]>; + /** + * Set the maximum commission of a pool. + * + * - Initial max can be set to any `Perbill`, and only smaller values thereafter. + * - Current commission will be lowered in the event it is higher than a new max + * commission. + **/ + setCommissionMax: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, maxCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Perbill]>; + /** + * Update configurations for the nomination pools. The origin for this call must be + * [`Config::AdminOrigin`]. + * + * # Arguments + * + * * `min_join_bond` - Set [`MinJoinBond`]. + * * `min_create_bond` - Set [`MinCreateBond`]. + * * `max_pools` - Set [`MaxPools`]. + * * `max_members` - Set [`MaxPoolMembers`]. + * * `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]. + * * `global_max_commission` - Set [`GlobalMaxCommission`]. + **/ + setConfigs: AugmentedSubmittable<(minJoinBond: PezpalletNominationPoolsConfigOpU128, minCreateBond: PezpalletNominationPoolsConfigOpU128, maxPools: PezpalletNominationPoolsConfigOpU32, maxMembers: PezpalletNominationPoolsConfigOpU32, maxMembersPerPool: PezpalletNominationPoolsConfigOpU32, globalMaxCommission: PezpalletNominationPoolsConfigOpPerbill) => SubmittableExtrinsic, [PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpPerbill]>; + /** + * Set a new metadata for the pool. + * + * The dispatch origin of this call must be signed by the bouncer, or the root role of the + * pool. + **/ + setMetadata: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, metadata: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set a new state for the pool. + * + * If a pool is already in the `Destroying` state, then under no condition can its state + * change again. + * + * The dispatch origin of this call must be either: + * + * 1. signed by the bouncer, or the root role of the pool, + * 2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and + * then the state of the pool can be permissionlessly changed to `Destroying`. + **/ + setState: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, state: PezpalletNominationPoolsPoolState) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsPoolState]>; + /** + * Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It + * implicitly collects the rewards one last time, since not doing so would mean some + * rewards would be forfeited. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch. + * + * * The pool is blocked and the caller is either the root or bouncer. This is refereed to + * as a kick. + * * The pool is destroying and the member is not the depositor. + * * The pool is destroying, the member is the depositor and no other members are in the + * pool. + * + * ## Conditions for permissioned dispatch (i.e. the caller is also the + * `member_account`): + * + * * The caller is not the depositor. + * * The caller is the depositor, the pool is destroying and no other members are in the + * pool. + * + * # Note + * + * If there are too many unlocking chunks to unbond with the pool account, + * [`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks. + * The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`] + * to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks + * are available). However, it may not be possible to release the current unlocking chunks, + * in which case, the result of this call will likely be the `NoMoreChunks` error from the + * staking system. + **/ + unbond: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, unbondingPoints: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Update the roles of the pool. + * + * The root is the only entity that can change any of the roles, including itself, + * excluding the depositor, who can never change. + * + * It emits an event, notifying UIs of the role change. This event is quite relevant to + * most pool members and they should be informed of changes to pool roles. + **/ + updateRoles: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newRoot: PezpalletNominationPoolsConfigOpAccountId32, newNominator: PezpalletNominationPoolsConfigOpAccountId32, newBouncer: PezpalletNominationPoolsConfigOpAccountId32) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32]>; + /** + * Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an + * error is returned. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch + * + * * The pool is in destroy mode and the target is not the depositor. + * * The target is the depositor and they are the only member in the sub pools. + * * The pool is blocked and the caller is either the root or bouncer. + * + * # Conditions for permissioned dispatch + * + * * The caller is the target and they are not the depositor. + * + * # Note + * + * - If the target is the depositor, the pool will be destroyed. + * - If the pool has any pending slash, we also try to slash the member before letting them + * withdraw. This calculation adds some weight overhead and is only defensive. In reality, + * pool slashes must have been already applied via permissionless [`Call::apply_slash`]. + **/ + withdrawUnbonded: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable<(keyValue: KitchensinkRuntimeRuntimeParameters | { Storage: any } | { Referenda: any } | string | Uint8Array) => SubmittableExtrinsic, [KitchensinkRuntimeRuntimeParameters]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + poolAssets: { + /** + * Approve an amount of asset for transfer by a delegated third-party account. + * + * Origin must be Signed. + * + * Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account + * for the purpose of holding the approval. If some non-zero amount of assets is already + * approved from signing account to `delegate`, then it is topped up or unreserved to + * meet the right value. + * + * NOTE: The signing account does not need to own `amount` of assets at the point of + * making this call. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account to delegate permission to transfer asset. + * - `amount`: The amount of asset that may be transferred by `delegate`. If there is + * already an approval in place, then this acts additively. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` to and from an account `who`. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the account's asset. + * - `who`: The account to be unblocked. + * + * Emits `Blocked`. + * + * Weight: `O(1)` + **/ + block: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Reduce the balance of `who` by as much as possible up to `amount` assets of `id`. + * + * Origin must be Signed and the sender should be the Manager of the asset `id`. + * + * Bails with `NoAccount` if the `who` is already dead. + * + * - `id`: The identifier of the asset to have some amount burned. + * - `who`: The account to be debited from. + * - `amount`: The maximum amount by which `who`'s balance should be reduced. + * + * Emits `Burned` with the actual amount burned. If this takes the balance to below the + * minimum for the asset, then the amount burned is increased to take it to zero. + * + * Weight: `O(1)` + * Modes: Post-existence of `who`; Pre & post Zombie-status of `who`. + **/ + burn: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be Signed and there must be an approval in place between signer and + * `delegate`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Any deposit is freed for the asset owner. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a public origin. + * + * This new asset class has no assets initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * Funds of sender are reserved by `AssetDeposit`. + * + * Parameters: + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `admin`: The admin of this class of assets. The admin is the initial address of each + * member of the asset class's admin team. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, u128]>; + /** + * Destroy all accounts associated with a given asset. + * + * `destroy_accounts` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedAccounts` event. + **/ + destroyAccounts: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit). + * + * `destroy_approvals` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. + * + * Due to weight restrictions, this function may need to be called multiple times to fully + * destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each call emits the `Event::DestroyedApprovals` event. + **/ + destroyApprovals: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Complete destroying asset and unreserve currency. + * + * `finish_destroy` should only be called after `start_destroy` has been called, and the + * asset is in a `Destroying` state. All accounts or approvals should be destroyed before + * hand. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * Each successful call emits the `Event::Destroyed` event. + **/ + finishDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Alter the attributes of a given asset. + * + * Origin must be `ForceOrigin`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient + * value to account for the state bloat associated with its balance storage. If set to + * `true`, then non-zero balances may be stored without a `consumer` reference (and thus + * an ED in the Balances pallet or whatever else is used to control user-account state + * growth). + * - `is_frozen`: Whether this asset class is frozen except for permissioned/admin + * instructions. + * + * Emits `AssetStatusChanged` with the identity of the asset. + * + * Weight: `O(1)` + **/ + forceAssetStatus: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array, isSufficient: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, MultiAddress, Compact, bool, bool]>; + /** + * Cancel all of some asset approved for delegated transfer by a third-party account. + * + * Origin must be either ForceOrigin or Signed origin with the signer being the Admin + * account of the asset `id`. + * + * Unreserves any deposit previously reserved by `approve_transfer` for the approval. + * + * - `id`: The identifier of the asset. + * - `delegate`: The account delegated permission to transfer asset. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + forceCancelApproval: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress]>; + /** + * Clear the metadata for an asset. + * + * Origin must be ForceOrigin. + * + * Any deposit is returned. + * + * - `id`: The identifier of the asset to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + forceClearMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Issue a new class of fungible assets from a privileged origin. + * + * This new asset class has no assets initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `id`: The identifier of the new asset. This must not be currently in use to identify + * an existing asset. If [`NextAssetId`] is set, then this must be equal to it. + * - `owner`: The owner of this class of assets. The owner has full superuser permissions + * over this asset, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * - `min_balance`: The minimum balance of this new asset that any single account must + * have. If an account's balance is reduced below this, then it collapses to zero. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, isSufficient: bool | boolean | Uint8Array, minBalance: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool, Compact]>; + /** + * Force the metadata for an asset to some value. + * + * Origin must be ForceOrigin. + * + * Any deposit is left alone. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(N + S)` where N and S are the length of the name and symbol respectively. + **/ + forceSetMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8, bool]>; + /** + * Move some assets from one account to another. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `source`: The account to be debited. + * - `dest`: The account to be credited. + * - `amount`: The amount by which the `source`'s balance of assets should be reduced and + * `dest`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the `source` balance above zero but + * below the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of + * `dest`. + **/ + forceTransfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Disallow further unprivileged transfers of an asset `id` from an account `who`. `who` + * must already exist as an entry in `Account`s of the asset. If you want to freeze an + * account that does not have an entry, use `touch_other` first. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Disallow further unprivileged transfers for the asset class. + * + * Origin must be Signed and the sender should be the Freezer of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freezeAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Mint assets of a particular class. + * + * The origin must be Signed and the sender must be the Issuer of the asset `id`. + * + * - `id`: The identifier of the asset to have some amount minted. + * - `beneficiary`: The account to be credited with the minted assets. + * - `amount`: The amount of the asset to be minted. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + * Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`. + **/ + mint: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Return the deposit (if any) of an asset account or a consumer reference (if any) of an + * account. + * + * The origin must be Signed. + * + * - `id`: The identifier of the asset for which the caller would like the deposit + * refunded. + * - `allow_burn`: If `true` then assets may be destroyed in order to complete the refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refund: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, allowBurn: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Return the deposit (if any) of a target asset account. Useful if you are the depositor. + * + * The origin must be Signed and either the account owner, depositor, or asset `Admin`. In + * order to burn a non-zero balance of the asset, the caller must be the account and should + * use `refund`. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `who`: The account to refund. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * the asset account contains holds or freezes in place. + * + * Emits `Refunded` event when successful. + **/ + refundOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Set the metadata for an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * Funds of sender are reserved according to the formula: + * `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into + * account any already reserved funds. + * + * - `id`: The identifier of the asset to update. + * - `name`: The user friendly name of this asset. Limited in length by `StringLimit`. + * - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`. + * - `decimals`: The number of decimals this asset uses to represent one unit. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, name: Bytes | string | Uint8Array, symbol: Bytes | string | Uint8Array, decimals: u8 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes, Bytes, u8]>; + /** + * Sets the minimum balance of an asset. + * + * Only works if there aren't any accounts that are holding the asset or if + * the new value of `min_balance` is less than the old one. + * + * Origin must be Signed and the sender has to be the Owner of the + * asset `id`. + * + * - `id`: The identifier of the asset. + * - `min_balance`: The new value of `min_balance`. + * + * Emits `AssetMinBalanceChanged` event when successful. + **/ + setMinBalance: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, minBalance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u128]>; + /** + * Change the Issuer, Admin and Freezer of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `issuer`: The new Issuer of this asset. + * - `admin`: The new Admin of this asset. + * - `freezer`: The new Freezer of this asset. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Start the process of destroying a fungible asset class. + * + * `start_destroy` is the first in a series of extrinsics that should be called, to allow + * destruction of an asset class. + * + * The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`. + * + * - `id`: The identifier of the asset to be destroyed. This must identify an existing + * asset. + * + * It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if + * an account contains holds or freezes in place. + **/ + startDestroy: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Allow unprivileged transfers to and from an account again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be frozen. + * - `who`: The account to be unfrozen. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Allow unprivileged transfers for the asset again. + * + * Origin must be Signed and the sender should be the Admin of the asset `id`. + * + * - `id`: The identifier of the asset to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thawAsset: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for non-provider assets. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed; the signer account must have sufficient funds for a deposit + * to be taken. + * - `id`: The identifier of the asset for the account to be created. + * + * Emits `Touched` event when successful. + **/ + touch: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Create an asset account for `who`. + * + * A deposit will be taken from the signer account. + * + * - `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account + * must have sufficient funds for a deposit to be taken. + * - `id`: The identifier of the asset for the account to be created. + * - `who`: The account to be created. + * + * Emits `Touched` event when successful. + **/ + touchOther: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Move some assets from the sender account to another. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transfer: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Transfer the entire transferable balance from the caller asset account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `id`: The identifier of the asset for the account holding a deposit. + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the asset account has, causing the sender asset account to be killed + * (false), or transfer everything except at least the minimum balance, which will + * guarantee to keep the sender asset account alive (true). + **/ + transferAll: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, bool]>; + /** + * Transfer some asset balance from a previously delegated account to some third-party + * account. + * + * Origin must be Signed and there must be an approval in place by the `owner` to the + * signer. + * + * If the entire amount approved for transfer is transferred, then any deposit previously + * reserved by `approve_transfer` is unreserved. + * + * - `id`: The identifier of the asset. + * - `owner`: The account which previously approved for a transfer of at least `amount` and + * from which the asset balance will be withdrawn. + * - `destination`: The account to which the asset balance of `amount` will be transferred. + * - `amount`: The amount of assets to transfer. + * + * Emits `TransferredApproved` on success. + * + * Weight: `O(1)` + **/ + transferApproved: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, destination: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, Compact]>; + /** + * Move some assets from the sender account to another, keeping the sender account alive. + * + * Origin must be Signed. + * + * - `id`: The identifier of the asset to have some amount transferred. + * - `target`: The account to be credited. + * - `amount`: The amount by which the sender's balance of assets should be reduced and + * `target`'s balance increased. The amount actually transferred may be slightly greater in + * the case that the transfer would otherwise take the sender balance above zero but below + * the minimum balance. Must be greater than zero. + * + * Emits `Transferred` with the actual amount transferred. If this takes the source balance + * to below the minimum for the asset, then the amount transferred is increased to take it + * to zero. + * + * Weight: `O(1)` + * Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of + * `target`. + **/ + transferKeepAlive: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Change the Owner of an asset. + * + * Origin must be Signed and the sender should be the Owner of the asset `id`. + * + * - `id`: The identifier of the asset. + * - `owner`: The new Owner of this asset. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(id: Compact | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + pov: { + emitEvent: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + noop: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + preimage: { + /** + * Ensure that the bulk of pre-images is upgraded. + * + * The caller pays no fee if at least 90% of pre-images were successfully updated. + **/ + ensureUpdated: AugmentedSubmittable<(hashes: Vec | (H256 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Register a preimage on-chain. + * + * If the preimage was previously requested, no fees or deposits are taken for providing + * the preimage. Otherwise, a deposit is taken proportional to the size of the preimage. + **/ + notePreimage: AugmentedSubmittable<(bytes: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Request a preimage be uploaded to the chain without paying any fees or deposits. + * + * If the preimage requests has already been provided on-chain, we unreserve any deposit + * a user may have paid, and take the control of the preimage out of their hands. + **/ + requestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear an unrequested preimage from the runtime storage. + * + * If `len` is provided, then it will be a much cheaper operation. + * + * - `hash`: The hash of the preimage to be removed from the store. + * - `len`: The length of the preimage of `hash`. + **/ + unnotePreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear a previously made request for a preimage. + * + * NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`. + **/ + unrequestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proxy: { + /** + * Register a proxy account for the sender that is able to make calls on its behalf. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to make a proxy. + * - `proxy_type`: The permissions allowed for this proxy account. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + **/ + addProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: KitchensinkRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, KitchensinkRuntimeProxyType, u32]>; + /** + * Publish the hash of a proxy-call that will be made in the future. + * + * This must be called some number of blocks before the corresponding `proxy` is attempted + * if the delay associated with the proxy relationship is greater than zero. + * + * No more than `MaxPending` announcements may be made at any one time. + * + * This will take a deposit of `AnnouncementDepositFactor` as well as + * `AnnouncementDepositBase` if there are no other pending announcements. + * + * The dispatch origin for this call must be _Signed_ and a proxy of `real`. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + announce: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and + * initialize it with a proxy of `proxy_type` for `origin` sender. + * + * Requires a `Signed` origin. + * + * - `proxy_type`: The type of the proxy that the sender will be registered as over the + * new account. This will almost always be the most permissive `ProxyType` possible to + * allow for maximum flexibility. + * - `index`: A disambiguation index, in case this is called multiple times in the same + * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just + * want to use `0`. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + * + * Fails with `Duplicate` if this has already been called in this transaction, from the + * same sender, with the same parameters. + * + * Fails if there are insufficient funds to pay for deposit. + **/ + createPure: AugmentedSubmittable<(proxyType: KitchensinkRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [KitchensinkRuntimeProxyType, u32, u16]>; + /** + * Removes a previously spawned pure proxy. + * + * WARNING: **All access to this account will be lost.** Any funds held in it will be + * inaccessible. + * + * Requires a `Signed` origin, and the sender account must have been created by a call to + * `pure` with corresponding parameters. + * + * - `spawner`: The account that originally called `pure` to create this account. + * - `index`: The disambiguation index originally passed to `pure`. Probably `0`. + * - `proxy_type`: The proxy type originally passed to `pure`. + * - `height`: The height of the chain when the call to `pure` was processed. + * - `ext_index`: The extrinsic index in which the call to `pure` was processed. + * + * Fails with `NoPermission` in case the caller is not a previously created pure + * account whose `pure` call has corresponding parameters. + **/ + killPure: AugmentedSubmittable<(spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: KitchensinkRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | number | Uint8Array, index: u16 | AnyNumber | Uint8Array, height: Compact | AnyNumber | Uint8Array, extIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, KitchensinkRuntimeProxyType, u16, Compact, Compact]>; + /** + * Poke / Adjust deposits made for proxies and announcements based on current values. + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * The transaction fee is waived if the deposit amount has changed. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatch the given `call` from an account that the sender is authorised for through + * `add_proxy`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | KitchensinkRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | number, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall]>; + /** + * Dispatch the given `call` from an account that the sender is authorized for through + * `add_proxy`. + * + * Removes any corresponding announcement(s). + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxyAnnounced: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | KitchensinkRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | number, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Option, RuntimeCall]>; + /** + * Remove the given announcement of a delegate. + * + * May be called by a target (proxied) account to remove a call that one of their delegates + * (`delegate`) has announced they want to execute. The deposit is returned. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `delegate`: The account that previously announced the call. + * - `call_hash`: The hash of the call to be made. + **/ + rejectAnnouncement: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Remove a given announcement. + * + * May be called by a proxy account to remove a call they previously announced and return + * the deposit. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + removeAnnouncement: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Unregister all proxy accounts for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * WARNING: This may be called on accounts created by `pure`, however if done, then + * the unreserved fees will be inaccessible. **All access to this account will be lost.** + **/ + removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unregister a proxy account for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to remove as a proxy. + * - `proxy_type`: The permissions currently enabled for the removed proxy account. + **/ + removeProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: KitchensinkRuntimeProxyType | 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | number | Uint8Array, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, KitchensinkRuntimeProxyType, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + rankedCollective: { + /** + * Introduce a new member. + * + * - `origin`: Must be the `AddOrigin`. + * - `who`: Account of non-member which will become a member. + * + * Weight: `O(1)` + **/ + addMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove votes from the given poll. It must have ended. + * + * - `origin`: Must be `Signed` by any account. + * - `poll_index`: Index of a poll which is completed and for which votes continue to + * exist. + * - `max`: Maximum number of vote items from remove in this call. + * + * Transaction fees are waived if the operation is successful. + * + * Weight `O(max)` (less if there are fewer items to remove than `max`). + **/ + cleanupPoll: AugmentedSubmittable<(pollIndex: u32 | AnyNumber | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Decrement the rank of an existing member by one. If the member is already at rank zero, + * then they are removed entirely. + * + * - `origin`: Must be the `DemoteOrigin`. + * - `who`: Account of existing member of rank greater than zero. + * + * Weight: `O(1)`, less if the member's index is highest in its rank. + **/ + demoteMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Exchanges a member with a new account and the same existing rank. + * + * - `origin`: Must be the `ExchangeOrigin`. + * - `who`: Account of existing member of rank greater than zero to be exchanged. + * - `new_who`: New Account of existing member of rank greater than zero to exchanged to. + **/ + exchangeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newWho: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Increment the rank of an existing member by one. + * + * - `origin`: Must be the `PromoteOrigin`. + * - `who`: Account of existing member. + * + * Weight: `O(1)` + **/ + promoteMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the member entirely. + * + * - `origin`: Must be the `RemoveOrigin`. + * - `who`: Account of existing member of rank greater than zero. + * - `min_rank`: The rank of the member or greater. + * + * Weight: `O(min_rank)`. + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minRank: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * - `origin`: Must be `Signed` by a member account. + * - `poll`: Index of a poll which is ongoing. + * - `aye`: `true` if the vote is to approve the proposal, `false` otherwise. + * + * Transaction fees are be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * + * Weight: `O(1)`, less if there was no previous vote on the poll by the member. + **/ + vote: AugmentedSubmittable<(poll: u32 | AnyNumber | Uint8Array, aye: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + rankedPolls: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: KitchensinkRuntimeOriginCaller | { system: any } | { Council: any } | { TechnicalCommittee: any } | { AllianceMotion: any } | string | Uint8Array, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [KitchensinkRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + recovery: { + /** + * Send a call through a recovered account. + * + * The dispatch origin for this call must be _Signed_ and registered to + * be able to make calls on behalf of the recovered account. + * + * Parameters: + * - `account`: The recovered account you want to make a call on-behalf-of. + * - `call`: The call you want to make with the recovered account. + **/ + asRecovered: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, RuntimeCall]>; + /** + * Cancel the ability to use `as_recovered` for `account`. + * + * The dispatch origin for this call must be _Signed_ and registered to + * be able to make calls on behalf of the recovered account. + * + * Parameters: + * - `account`: The recovered account you are able to call on-behalf-of. + **/ + cancelRecovered: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Allow a successful rescuer to claim their recovered account. + * + * The dispatch origin for this call must be _Signed_ and must be a "rescuer" + * who has successfully completed the account recovery process: collected + * `threshold` or more vouches, waited `delay_period` blocks since initiation. + * + * Parameters: + * - `account`: The lost account that you want to claim has been successfully recovered by + * you. + **/ + claimRecovery: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * As the controller of a recoverable account, close an active recovery + * process for your account. + * + * Payment: By calling this function, the recoverable account will receive + * the recovery deposit `RecoveryDeposit` placed by the rescuer. + * + * The dispatch origin for this call must be _Signed_ and must be a + * recoverable account with an active recovery process for it. + * + * Parameters: + * - `rescuer`: The account trying to rescue this recoverable account. + **/ + closeRecovery: AugmentedSubmittable<(rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Create a recovery configuration for your account. This makes your account recoverable. + * + * Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance + * will be reserved for storing the recovery configuration. This deposit is returned + * in full when the user calls `remove_recovery`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `friends`: A list of friends you trust to vouch for recovery attempts. Should be + * ordered and contain no duplicate values. + * - `threshold`: The number of friends that must vouch for a recovery attempt before the + * account can be recovered. Should be less than or equal to the length of the list of + * friends. + * - `delay_period`: The number of blocks after a recovery attempt is initialized that + * needs to pass before the account can be recovered. + **/ + createRecovery: AugmentedSubmittable<(friends: Vec | (AccountId32 | string | Uint8Array)[], threshold: u16 | AnyNumber | Uint8Array, delayPeriod: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u16, u32]>; + /** + * Initiate the process for recovering a recoverable account. + * + * Payment: `RecoveryDeposit` balance will be reserved for initiating the + * recovery process. This deposit will always be repatriated to the account + * trying to be recovered. See `close_recovery`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `account`: The lost account that you want to recover. This account needs to be + * recoverable (i.e. have a recovery configuration). + **/ + initiateRecovery: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the recovery process for your account. Recovered accounts are still accessible. + * + * NOTE: The user must make sure to call `close_recovery` on all active + * recovery attempts before calling this function else it will fail. + * + * Payment: By calling this function the recoverable account will unreserve + * their recovery configuration deposit. + * (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends) + * + * The dispatch origin for this call must be _Signed_ and must be a + * recoverable account (i.e. has a recovery configuration). + **/ + removeRecovery: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allow ROOT to bypass the recovery process and set a rescuer account + * for a lost account directly. + * + * The dispatch origin for this call must be _ROOT_. + * + * Parameters: + * - `lost`: The "lost account" to be recovered. + * - `rescuer`: The "rescuer account" which can call as the lost account. + **/ + setRecovered: AugmentedSubmittable<(lost: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Allow a "friend" of a recoverable account to vouch for an active recovery + * process for that account. + * + * The dispatch origin for this call must be _Signed_ and must be a "friend" + * for the recoverable account. + * + * Parameters: + * - `lost`: The lost account that you want to recover. + * - `rescuer`: The account trying to rescue the lost account that you want to vouch for. + * + * The combination of these two parameters must point to an active recovery + * process. + **/ + vouchRecovery: AugmentedSubmittable<(lost: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + referenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: KitchensinkRuntimeOriginCaller | { system: any } | { Council: any } | { TechnicalCommittee: any } | { AllianceMotion: any } | string | Uint8Array, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [KitchensinkRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + remark: { + /** + * Index and store data off chain. + **/ + store: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + revive: { + /** + * Makes a call to an account, optionally transferring some balance. + * + * # Parameters + * + * * `dest`: Address of the contract to call. + * * `value`: The balance to transfer from the `origin` to `dest`. + * * `gas_limit`: The gas limit enforced when executing the constructor. + * * `storage_deposit_limit`: The maximum amount of balance that can be charged from the + * caller to pay for the storage consumed. + * * `data`: The input data to pass to the contract. + * + * * If the account is a smart-contract account, the associated code will be + * executed and any value will be transferred. + * * If the account is a regular account, any value will be transferred. + * * If no account exists and the call value is not less than `existential_deposit`, + * a regular account will be created and any value will be transferred. + **/ + call: AugmentedSubmittable<(dest: H160 | string | Uint8Array, value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [H160, Compact, PezspWeightsWeightV2Weight, Compact, Bytes]>; + /** + * Dispatch an `call` with the origin set to the callers fallback address. + * + * Every `AccountId32` can control its corresponding fallback account. The fallback account + * is the `AccountId20` with the last 12 bytes set to `0xEE`. This is essentially a + * recovery function in case an `AccountId20` was used without creating a mapping first. + **/ + dispatchAsFallbackAccount: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + /** + * A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server. + * + * # Parameters + * + * * `payload`: The encoded [`crate::evm::TransactionSigned`]. + * * `gas_limit`: The gas limit enforced during contract execution. + * * `storage_deposit_limit`: The maximum balance that can be charged to the caller for + * storage usage. + * + * # Note + * + * This call cannot be dispatched directly; attempting to do so will result in a failed + * transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the + * runtime converts it into a [`sp_runtime::generic::CheckedExtrinsic`] by recovering the + * signer and validating the transaction. + **/ + ethTransact: AugmentedSubmittable<(payload: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Instantiates a contract from a previously deployed wasm binary. + * + * This function is identical to [`Self::instantiate_with_code`] but without the + * code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary + * must be supplied. + **/ + instantiate: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, codeHash: H256 | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Option | null | Uint8Array | U8aFixed | string) => SubmittableExtrinsic, [Compact, PezspWeightsWeightV2Weight, Compact, H256, Bytes, Option]>; + /** + * Instantiates a new contract from the supplied `code` optionally transferring + * some balance. + * + * This dispatchable has the same effect as calling [`Self::upload_code`] + + * [`Self::instantiate`]. Bundling them together provides efficiency gains. Please + * also check the documentation of [`Self::upload_code`]. + * + * # Parameters + * + * * `value`: The balance to transfer from the `origin` to the newly created contract. + * * `gas_limit`: The gas limit enforced when executing the constructor. + * * `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved + * from the caller to pay for the storage consumed. + * * `code`: The contract code to deploy in raw bytes. + * * `data`: The input data to pass to the contract constructor. + * * `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2` + * semantics are used. If `None` then `CRATE1` is used. + * + * + * Instantiation is executed as follows: + * + * - The supplied `code` is deployed, and a `code_hash` is created for that code. + * - If the `code_hash` already exists on the chain the underlying `code` will be shared. + * - The destination address is computed based on the sender, code_hash and the salt. + * - The smart-contract account is created at the computed address. + * - The `value` is transferred to the new account. + * - The `deploy` function is executed in the context of the newly-created account. + **/ + instantiateWithCode: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, gasLimit: PezspWeightsWeightV2Weight, storageDepositLimit: Compact | AnyNumber | Uint8Array, code: Bytes | string | Uint8Array, data: Bytes | string | Uint8Array, salt: Option | null | Uint8Array | U8aFixed | string) => SubmittableExtrinsic, [Compact, PezspWeightsWeightV2Weight, Compact, Bytes, Bytes, Option]>; + /** + * Register the callers account id so that it can be used in contract interactions. + * + * This will error if the origin is already mapped or is a eth native `Address20`. It will + * take a deposit that can be released by calling [`Self::unmap_account`]. + **/ + mapAccount: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove the code stored under `code_hash` and refund the deposit to its owner. + * + * A code can only be removed by its original uploader (its owner) and only if it is + * not used by any contract. + **/ + removeCode: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Privileged function that changes the code of an existing contract. + * + * This takes care of updating refcounts and all other necessary operations. Returns + * an error if either the `code_hash` or `dest` do not exist. + * + * # Note + * + * This does **not** change the address of the contract in question. This means + * that the contract address is no longer derived from its code hash after calling + * this dispatchable. + **/ + setCode: AugmentedSubmittable<(dest: H160 | string | Uint8Array, codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H160, H256]>; + /** + * Unregister the callers account id in order to free the deposit. + * + * There is no reason to ever call this function other than freeing up the deposit. + * This is only useful when the account should no longer be used. + **/ + unmapAccount: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Upload new `code` without instantiating a contract from it. + * + * If the code does not already exist a deposit is reserved from the caller + * and unreserved only when [`Self::remove_code`] is called. The size of the reserve + * depends on the size of the supplied `code`. + * + * # Note + * + * Anyone can instantiate a contract from any uploaded code and thus prevent its removal. + * To avoid this situation a constructor could employ access control so that it can + * only be instantiated by permissioned entities. The same is true when uploading + * through [`Self::instantiate_with_code`]. + **/ + uploadCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array, storageDepositLimit: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + rootTesting: { + /** + * A dispatch that will fill the block weight up to the given ratio. + **/ + fillBlock: AugmentedSubmittable<(ratio: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + triggerDefensive: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + safeMode: { + /** + * Enter safe-mode permissionlessly for [`Config::EnterDuration`] blocks. + * + * Reserves [`Config::EnterDepositAmount`] from the caller's account. + * Emits an [`Event::Entered`] event on success. + * Errors with [`Error::Entered`] if the safe-mode is already entered. + * Errors with [`Error::NotConfigured`] if the deposit amount is `None`. + **/ + enter: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Extend the safe-mode permissionlessly for [`Config::ExtendDuration`] blocks. + * + * This accumulates on top of the current remaining duration. + * Reserves [`Config::ExtendDepositAmount`] from the caller's account. + * Emits an [`Event::Extended`] event on success. + * Errors with [`Error::Exited`] if the safe-mode is entered. + * Errors with [`Error::NotConfigured`] if the deposit amount is `None`. + * + * This may be called by any signed origin with [`Config::ExtendDepositAmount`] free + * currency to reserve. This call can be disabled for all origins by configuring + * [`Config::ExtendDepositAmount`] to `None`. + **/ + extend: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Enter safe-mode by force for a per-origin configured number of blocks. + * + * Emits an [`Event::Entered`] event on success. + * Errors with [`Error::Entered`] if the safe-mode is already entered. + * + * Can only be called by the [`Config::ForceEnterOrigin`] origin. + **/ + forceEnter: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Exit safe-mode by force. + * + * Emits an [`Event::Exited`] with [`ExitReason::Force`] event on success. + * Errors with [`Error::Exited`] if the safe-mode is inactive. + * + * Note: `safe-mode` will be automatically deactivated by [`Pallet::on_initialize`] hook + * after the block height is greater than the [`EnteredUntil`] storage item. + * Emits an [`Event::Exited`] with [`ExitReason::Timeout`] event when deactivated in the + * hook. + **/ + forceExit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Extend the safe-mode by force for a per-origin configured number of blocks. + * + * Emits an [`Event::Extended`] event on success. + * Errors with [`Error::Exited`] if the safe-mode is inactive. + * + * Can only be called by the [`Config::ForceExtendOrigin`] origin. + **/ + forceExtend: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force to release a deposit for an account that entered safe-mode at a given + * historical block. + * + * This can be called while safe-mode is still entered. + * + * Emits a [`Event::DepositReleased`] event on success. + * Errors with [`Error::Entered`] if safe-mode is entered. + * Errors with [`Error::NoDeposit`] if the payee has no reserved currency at the + * specified block. + * + * Can only be called by the [`Config::ForceDepositOrigin`] origin. + **/ + forceReleaseDeposit: AugmentedSubmittable<(account: AccountId32 | string | Uint8Array, block: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Slash a deposit for an account that entered or extended safe-mode at a given + * historical block. + * + * This can only be called while safe-mode is entered. + * + * Emits a [`Event::DepositSlashed`] event on success. + * Errors with [`Error::Entered`] if safe-mode is entered. + * + * Can only be called by the [`Config::ForceDepositOrigin`] origin. + **/ + forceSlashDeposit: AugmentedSubmittable<(account: AccountId32 | string | Uint8Array, block: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Permissionlessly release a deposit for an account that entered safe-mode at a + * given historical block. + * + * The call can be completely disabled by setting [`Config::ReleaseDelay`] to `None`. + * This cannot be called while safe-mode is entered and not until + * [`Config::ReleaseDelay`] blocks have passed since safe-mode was entered. + * + * Emits a [`Event::DepositReleased`] event on success. + * Errors with [`Error::Entered`] if the safe-mode is entered. + * Errors with [`Error::CannotReleaseYet`] if [`Config::ReleaseDelay`] block have not + * passed since safe-mode was entered. Errors with [`Error::NoDeposit`] if the payee has no + * reserved currency at the block specified. + **/ + releaseDeposit: AugmentedSubmittable<(account: AccountId32 | string | Uint8Array, block: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + salary: { + /** + * Move to next payout cycle, assuming that the present block is now within that cycle. + * + * - `origin`: A `Signed` origin of an account. + **/ + bump: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Update a payment's status; if it failed, alter the state so the payment can be retried. + * + * This must be called within the same cycle as the failed payment. It will fail with + * `Event::NotCurrent` otherwise. + * + * - `origin`: A `Signed` origin of an account which is a member of `Members` who has + * received a payment this cycle. + **/ + checkPayment: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Induct oneself into the payout system. + **/ + induct: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Start the first payout cycle. + * + * - `origin`: A `Signed` origin of an account. + **/ + init: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Request a payout. + * + * Will only work if we are after the first `RegistrationPeriod` blocks since the cycle + * started but by no more than `PayoutPeriod` blocks. + * + * - `origin`: A `Signed` origin of an account which is a member of `Members`. + **/ + payout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Request a payout to a secondary account. + * + * Will only work if we are after the first `RegistrationPeriod` blocks since the cycle + * started but by no more than `PayoutPeriod` blocks. + * + * - `origin`: A `Signed` origin of an account which is a member of `Members`. + * - `beneficiary`: The account to receive payment. + **/ + payoutOther: AugmentedSubmittable<(beneficiary: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Register for a payout. + * + * Will only work if we are in the first `RegistrationPeriod` blocks since the cycle + * started. + * + * - `origin`: A `Signed` origin of an account which is a member of `Members`. + **/ + register: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + scheduler: { + /** + * Cancel an anonymously scheduled task. + **/ + cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Cancel a named scheduled task. + **/ + cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Removes the retry configuration of a task. + **/ + cancelRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [ITuple<[u32, u32]>]>; + /** + * Cancel the retry configuration of a named task. + **/ + cancelRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Anonymously schedule a task. + **/ + schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Anonymously schedule a task after a delay. + **/ + scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task. + **/ + scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task after a delay. + **/ + scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Set a retry configuration for a task so that, in case its scheduled run fails, it will + * be retried after `period` blocks, for a total amount of `retries` retries or until it + * succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [ITuple<[u32, u32]>, u8, u32]>; + /** + * Set a retry configuration for a named task so that, in case its scheduled run fails, it + * will be retried after `period` blocks, for a total amount of `retries` retries or until + * it succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u8, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable<(keys: KitchensinkRuntimeSessionKeys | { grandpa?: any; babe?: any; imOnline?: any; authorityDiscovery?: any; mixnet?: any; beefy?: any } | string | Uint8Array, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [KitchensinkRuntimeSessionKeys, Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + society: { + /** + * Transform an approved candidate into a member. Callable only by the Signed origin of the + * Founder, only after the period for voting has ended and only when the candidate is not + * clearly rejected. + **/ + bestowMembership: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * A user outside of the society can make a bid for entry. + * + * Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned + * when the bid becomes a member, or if the bid calls `unbid`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `value`: A one time payment the bid would like to receive when joining the society. + **/ + bid: AugmentedSubmittable<(value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Transform an approved candidate into a member. Callable only by the + * the candidate, and only after the period for voting has ended. + **/ + claimMembership: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove up to `max` stale votes for the given `candidate`. + * + * May be called by any Signed origin, but only after the candidate's candidacy is ended. + **/ + cleanupCandidacy: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Remove up to `max` stale votes for the defender in the given `challenge_round`. + * + * May be called by any Signed origin, but only after the challenge round is ended. + **/ + cleanupChallenge: AugmentedSubmittable<(challengeRound: u32 | AnyNumber | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * As a member, vote on the defender. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `approve`: A boolean which says if the candidate should be + * approved (`true`) or rejected (`false`). + **/ + defenderVote: AugmentedSubmittable<(approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Dissolve the society and remove all members. + * + * The dispatch origin for this call must be Signed, and the signing account must be both + * the `Founder` and the `Head`. This implies that it may only be done when there is one + * member. + **/ + dissolve: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a `candidate`'s failed application from the society. Callable by any + * signed origin but only at the end of the subsequent round and only for + * a candidate with more rejections than approvals. + * + * The bid deposit is lost and the voucher is banned. + **/ + dropCandidate: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Found the society. + * + * This is done as a discrete action in order to allow for the + * pallet to be included into a running chain and can only be done once. + * + * The dispatch origin for this call must be from the _FounderSetOrigin_. + * + * Parameters: + * - `founder` - The first member and head of the newly founded society. + * - `max_members` - The initial max number of members for the society. + * - `max_intake` - The maximum number of candidates per intake period. + * - `max_strikes`: The maximum number of strikes a member may get before they become + * suspended and may only be reinstated by the founder. + * - `candidate_deposit`: The deposit required to make a bid for membership of the group. + * - `rules` - The rules of this society concerning membership. + * + * Complexity: O(1) + **/ + foundSociety: AugmentedSubmittable<(founder: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, maxMembers: u32 | AnyNumber | Uint8Array, maxIntake: u32 | AnyNumber | Uint8Array, maxStrikes: u32 | AnyNumber | Uint8Array, candidateDeposit: u128 | AnyNumber | Uint8Array, rules: Bytes | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, u32, u32, u128, Bytes]>; + /** + * Allow suspension judgement origin to make judgement on a suspended member. + * + * If a suspended member is forgiven, we simply add them back as a member, not affecting + * any of the existing storage items for that member. + * + * If a suspended member is rejected, remove all associated storage items, including + * their payouts, and remove any vouched bids they currently have. + * + * The dispatch origin for this call must be Signed from the Founder. + * + * Parameters: + * - `who` - The suspended member to be judged. + * - `forgive` - A boolean representing whether the suspension judgement origin forgives + * (`true`) or rejects (`false`) a suspended member. + **/ + judgeSuspendedMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forgive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Remove the candidate's application from the society. Callable only by the Signed origin + * of the Founder, only after the period for voting has ended, and only when they do not + * have a clear approval. + * + * Any bid deposit is lost and voucher is banned. + **/ + kickCandidate: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Transfer the first matured payout for the sender and remove it from the records. + * + * NOTE: This extrinsic needs to be called multiple times to claim multiple matured + * payouts. + * + * Payment: The member will receive a payment equal to their first matured + * payout to their free balance. + * + * The dispatch origin for this call must be _Signed_ and a member with + * payouts remaining. + **/ + payout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Punish the skeptic with a strike if they did not vote on a candidate. Callable by the + * candidate. + **/ + punishSkeptic: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove the candidate's application from the society. Callable only by the candidate. + * + * Any bid deposit is lost and voucher is banned. + **/ + resignCandidacy: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Change the maximum number of members in society and the maximum number of new candidates + * in a single intake period. + * + * The dispatch origin for this call must be Signed by the Founder. + * + * Parameters: + * - `max_members` - The maximum number of members for the society. This must be no less + * than the current number of members. + * - `max_intake` - The maximum number of candidates per intake period. + * - `max_strikes`: The maximum number of strikes a member may get before they become + * suspended and may only be reinstated by the founder. + * - `candidate_deposit`: The deposit required to make a bid for membership of the group. + **/ + setParameters: AugmentedSubmittable<(maxMembers: u32 | AnyNumber | Uint8Array, maxIntake: u32 | AnyNumber | Uint8Array, maxStrikes: u32 | AnyNumber | Uint8Array, candidateDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, u128]>; + /** + * A bidder can remove their bid for entry into society. + * By doing so, they will have their candidate deposit returned or + * they will unvouch their voucher. + * + * Payment: The bid deposit is unreserved if the user made a bid. + * + * The dispatch origin for this call must be _Signed_ and a bidder. + **/ + unbid: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * As a vouching member, unvouch a bid. This only works while vouched user is + * only a bidder (and not a candidate). + * + * The dispatch origin for this call must be _Signed_ and a vouching member. + * + * Parameters: + * - `pos`: Position in the `Bids` vector of the bid who should be unvouched. + **/ + unvouch: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * As a member, vote on a candidate. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `candidate`: The candidate that the member would like to bid on. + * - `approve`: A boolean which says if the candidate should be approved (`true`) or + * rejected (`false`). + **/ + vote: AugmentedSubmittable<(candidate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * As a member, vouch for someone to join society by placing a bid on their behalf. + * + * There is no deposit required to vouch for a new bid, but a member can only vouch for + * one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by + * the suspension judgement origin, the member will be banned from vouching again. + * + * As a vouching member, you can claim a tip if the candidate is accepted. This tip will + * be paid as a portion of the reward the member will receive for joining the society. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `who`: The user who you would like to vouch for. + * - `value`: The total reward to be paid between you and the candidate if they become + * a member in the society. + * - `tip`: Your cut of the total `value` payout when the candidate is inducted into + * the society. Tips larger than `value` will be saturated upon payout. + **/ + vouch: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: u128 | AnyNumber | Uint8Array, tip: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128, u128]>; + /** + * Repay the payment previously given to the member with the signed origin, remove any + * pending payments, and elevate them from rank 0 to rank 1. + **/ + waiveRepay: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + staking: { + /** + * Take the origin account as a stash and lock up `value` of its balance. `controller` will + * be the account that controls it. + * + * `value` must be more than the `minimum_balance` specified by `T::Currency`. + * + * The dispatch origin for this call must be _Signed_ by the stash account. + * + * Emits `Bonded`. + * ## Complexity + * - Independent of the arguments. Moderate complexity. + * - O(1). + * - Three extra DB entries. + * + * NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned + * unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed + * as dust. + **/ + bond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, payee: PezpalletStakingRewardDestination) => SubmittableExtrinsic, [Compact, PezpalletStakingRewardDestination]>; + /** + * Add some extra amount that have appeared in the stash `free_balance` into the balance up + * for staking. + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * Use this if there are additional funds in your stash account that you wish to bond. + * Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose + * any limitation on the amount that can be added. + * + * Emits `Bonded`. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - O(1). + **/ + bondExtra: AugmentedSubmittable<(maxAdditional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel enactment of a deferred slash. + * + * Can be called by the `T::AdminOrigin`. + * + * Parameters: era and indices of the slashes for that era to kill. + **/ + cancelDeferredSlash: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array, slashIndices: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Declare no desire to either validate or nominate. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - Contains one read. + * - Writes are limited to the `origin` account key. + **/ + chill: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Declare a `controller` to stop participating as either a validator or nominator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_, but can be called by anyone. + * + * If the caller is the same as the controller being targeted, then no further checks are + * enforced, and this function behaves just like `chill`. + * + * If the caller is different than the controller being targeted, the following conditions + * must be met: + * + * * `controller` must belong to a nominator who has become non-decodable, + * + * Or: + * + * * A `ChillThreshold` must be set and checked which defines how close to the max + * nominators or validators we must reach before users can start chilling one-another. + * * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine + * how close we are to the threshold. + * * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines + * if this is a person that should be chilled because they have not met the threshold + * bond required. + * + * This can be helpful if bond requirements are updated, and we need to remove old users + * who do not satisfy these requirements. + **/ + chillOther: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Updates a batch of controller accounts to their corresponding stash account if they are + * not the same. Ignores any controller accounts that do not exist, and does not operate if + * the stash and controller are already the same. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin must be `T::AdminOrigin`. + **/ + deprecateControllerBatch: AugmentedSubmittable<(controllers: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Force a validator to have at least the minimum commission. This will not affect a + * validator who already has a commission greater than or equal to the minimum. Any account + * can call this. + **/ + forceApplyMinCommission: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Force there to be a new era at the end of the next session. After this, it will be + * reset to normal (non-forced) behaviour. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + * + * ## Complexity + * - No arguments. + * - Weight: O(1) + **/ + forceNewEra: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be a new era at the end of sessions indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEraAlways: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be no new eras indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * Thus the election process may be ongoing when this is called. In this case the + * election will continue until the next era is triggered. + * + * ## Complexity + * - No arguments. + * - Weight: O(1) + **/ + forceNoEras: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force a current staker to become completely unstaked, immediately. + * + * The dispatch origin must be Root. + * + * ## Parameters + * + * - `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more + * details. + **/ + forceUnstake: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Increments the ideal number of validators up to maximum of + * `ElectionProviderBase::MaxWinners`. + * + * The dispatch origin must be Root. + * + * ## Complexity + * Same as [`Self::set_validator_count`]. + **/ + increaseValidatorCount: AugmentedSubmittable<(additional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove the given nominations from the calling validator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * - `who`: A list of nominator stash accounts who are nominating this validator which + * should no longer be nominating this validator. + * + * Note: Making this call only makes sense if you first set the validator preferences to + * block any further nominations. + **/ + kick: AugmentedSubmittable<(who: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * This function allows governance to manually slash a validator and is a + * **fallback mechanism**. + * + * The dispatch origin must be `T::AdminOrigin`. + * + * ## Parameters + * - `validator_stash` - The stash account of the validator to slash. + * - `era` - The era in which the validator was in the active set. + * - `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill. + * + * ## Behavior + * + * The slash will be applied using the standard slashing mechanics, respecting the + * configured `SlashDeferDuration`. + * + * This means: + * - If the validator was already slashed by a higher percentage for the same era, this + * slash will have no additional effect. + * - If the validator was previously slashed by a lower percentage, only the difference + * will be applied. + * - The slash will be deferred by `SlashDeferDuration` eras before being enacted. + **/ + manualSlash: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, slashFraction: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, Perbill]>; + /** + * Removes the legacy Staking locks if they exist. + * + * This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a + * hold on it if needed. If all stake cannot be held, the best effort is made to hold as + * much as possible. The remaining stake is forced withdrawn from the ledger. + * + * The fee is waived if the migration is successful. + **/ + migrateCurrency: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to nominate `targets` for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - The transaction's complexity is proportional to the size of `targets` (N) + * which is capped at CompactAssignments::LIMIT (T::MaxNominations). + * - Both the reads and writes follow a similar pattern. + **/ + nominate: AugmentedSubmittable<(targets: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Pay out next page of the stakers behind a validator for the given era. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * The reward payout could be paged in case there are too many nominators backing the + * `validator_stash`. This call will payout unpaid pages in an ascending order. To claim a + * specific page, use `payout_stakers_by_page`.` + * + * If all pages are claimed, it returns an error `InvalidPage`. + **/ + payoutStakers: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Pay out a page of the stakers behind a validator for the given era and page. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * - `page` is the page index of nominators to pay out with value between 0 and + * `num_nominators / T::MaxExposurePageSize`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * If a validator has more than [`Config::MaxExposurePageSize`] nominators backing + * them, then the list of nominators is paged, with each page being capped at + * [`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators, + * the call needs to be made for each page separately in order for all the nominators + * backing a validator to receive the reward. The nominators are not sorted across pages + * and so it should not be assumed the highest staker would be on the topmost page and vice + * versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost. + **/ + payoutStakersByPage: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, page: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, u32]>; + /** + * Remove all data structures concerning a staker/stash once it is at a state where it can + * be considered `dust` in the staking system. The requirements are: + * + * 1. the `total_balance` of the stash is below existential deposit. + * 2. or, the `ledger.total` of the stash is below existential deposit. + * 3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero. + * + * The former can happen in cases like a slash; the latter when a fully unbonded account + * is still receiving staking rewards in `RewardDestination::Staked`. + * + * It can be called by anyone, as long as `stash` meets the above requirements. + * + * Refunds the transaction fees upon successful execution. + * + * ## Parameters + * + * - `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more + * details. + **/ + reapStash: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Rebond a portion of the stash scheduled to be unlocked. + * + * The dispatch origin must be signed by the controller. + * + * ## Complexity + * - Time complexity: O(L), where L is unlocking chunks + * - Bounded by `MaxUnlockingChunks`. + **/ + rebond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Restores the state of a ledger which is in an inconsistent state. + * + * The requirements to restore a ledger are the following: + * * The stash is bonded; or + * * The stash is not bonded but it has a staking lock left behind; or + * * If the stash has an associated ledger and its state is inconsistent; or + * * If the ledger is not corrupted *but* its staking lock is out of sync. + * + * The `maybe_*` input parameters will overwrite the corresponding data and metadata of the + * ledger associated with the stash. If the input parameters are not set, the ledger will + * be reset values from on-chain state. + **/ + restoreLedger: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, maybeController: Option | null | Uint8Array | AccountId32 | string, maybeTotal: Option | null | Uint8Array | u128 | AnyNumber, maybeUnlocking: Option> | null | Uint8Array | Vec | (PezpalletStakingUnlockChunk)[]) => SubmittableExtrinsic, [AccountId32, Option, Option, Option>]>; + /** + * Scale up the ideal number of validators by a factor up to maximum of + * `ElectionProviderBase::MaxWinners`. + * + * The dispatch origin must be Root. + * + * ## Complexity + * Same as [`Self::set_validator_count`]. + **/ + scaleValidatorCount: AugmentedSubmittable<(factor: Percent | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Percent]>; + /** + * (Re-)sets the controller of a stash to the stash itself. This function previously + * accepted a `controller` argument to set the controller to an account other than the + * stash itself. This functionality has now been removed, now only setting the controller + * to the stash, if it is not already. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * ## Complexity + * O(1) + * - Independent of the arguments. Insignificant complexity. + * - Contains a limited number of reads. + * - Writes are limited to the `origin` account key. + **/ + setController: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the validators who cannot be slashed (if any). + * + * The dispatch origin must be Root. + **/ + setInvulnerables: AugmentedSubmittable<(invulnerables: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Sets the minimum amount of commission that each validators must maintain. + * + * This call has lower privilege requirements than `set_staking_config` and can be called + * by the `T::AdminOrigin`. Root can always call this. + **/ + setMinCommission: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * (Re-)set the payment target for a controller. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - O(1) + * - Independent of the arguments. Insignificant complexity. + * - Contains a limited number of reads. + * - Writes are limited to the `origin` account key. + * --------- + **/ + setPayee: AugmentedSubmittable<(payee: PezpalletStakingRewardDestination) => SubmittableExtrinsic, [PezpalletStakingRewardDestination]>; + /** + * Update the various staking configurations . + * + * * `min_nominator_bond`: The minimum active bond needed to be a nominator. + * * `min_validator_bond`: The minimum active bond needed to be a validator. + * * `max_nominator_count`: The max number of users who can be a nominator at once. When + * set to `None`, no limit is enforced. + * * `max_validator_count`: The max number of users who can be a validator at once. When + * set to `None`, no limit is enforced. + * * `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which + * should be filled in order for the `chill_other` transaction to work. + * * `min_commission`: The minimum amount of commission that each validators must maintain. + * This is checked only upon calling `validate`. Existing validators are not affected. + * + * RuntimeOrigin must be Root to call this function. + * + * NOTE: Existing nominators and validators will not be affected by this update. + * to kick people under the new limits, `chill_other` should be called. + **/ + setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PezpalletStakingPezpalletConfigOpU128, minValidatorBond: PezpalletStakingPezpalletConfigOpU128, maxNominatorCount: PezpalletStakingPezpalletConfigOpU32, maxValidatorCount: PezpalletStakingPezpalletConfigOpU32, chillThreshold: PezpalletStakingPezpalletConfigOpPercent, minCommission: PezpalletStakingPezpalletConfigOpPerbill, maxStakedRewards: PezpalletStakingPezpalletConfigOpPercent) => SubmittableExtrinsic, [PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent]>; + /** + * Sets the ideal number of validators. + * + * The dispatch origin must be Root. + * + * ## Complexity + * O(1) + **/ + setValidatorCount: AugmentedSubmittable<(updated: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Schedule a portion of the stash to be unlocked ready for transfer out after the bond + * period ends. If this leaves an amount actively bonded less than + * [`asset::existential_deposit`], then it is increased to the full amount. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * Once the unlock period is done, you can call `withdraw_unbonded` to actually move + * the funds out of management ready for transfer. + * + * No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`) + * can co-exists at the same time. If there are no unlocking chunks slots available + * [`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible). + * + * If a user encounters the `InsufficientBond` error when calling this extrinsic, + * they should call `chill` first in order to free up their bonded funds. + * + * Emits `Unbonded`. + * + * See also [`Call::withdraw_unbonded`]. + **/ + unbond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Migrates an account's `RewardDestination::Controller` to + * `RewardDestination::Account(controller)`. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * This will waive the transaction fee if the `payee` is successfully migrated. + **/ + updatePayee: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to validate for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + validate: AugmentedSubmittable<(prefs: PezpalletStakingValidatorPrefs) => SubmittableExtrinsic, [PezpalletStakingValidatorPrefs]>; + /** + * Remove any unlocked chunks from the `unlocking` queue from our management. + * + * This essentially frees up that balance to be used by the stash account to do whatever + * it wants. + * + * The dispatch origin for this call must be _Signed_ by the controller. + * + * Emits `Withdrawn`. + * + * See also [`Call::unbond`]. + * + * ## Parameters + * + * - `num_slashing_spans` indicates the number of metadata slashing spans to clear when + * this call results in a complete removal of all the data related to the stash account. + * In this case, the `num_slashing_spans` must be larger or equal to the number of + * slashing spans associated with the stash account in the [`SlashingSpans`] storage type, + * otherwise the call will fail. The call weight is directly proportional to + * `num_slashing_spans`. + * + * ## Complexity + * O(S) where S is the number of slashing spans to remove + * NOTE: Weight annotation is the kill scenario, we refund otherwise. + **/ + withdrawUnbonded: AugmentedSubmittable<(numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stateTrieMigration: { + /** + * Continue the migration for the given `limits`. + * + * The dispatch origin of this call can be any signed account. + * + * This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit, + * Upon successful execution, the transaction fee is returned. + * + * The (potentially over-estimated) of the byte length of all the data read must be + * provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing + * that executing the current `MigrationTask` with the given `limits` will not exceed + * `real_size_upper` bytes of read data. + * + * The `witness_task` is merely a helper to prevent the caller from being slashed or + * generally trigger a migration that they do not intend. This parameter is just a message + * from caller, saying that they believed `witness_task` was the last state of the + * migration, and they only wish for their transaction to do anything, if this assumption + * holds. In case `witness_task` does not match, the transaction fails. + * + * Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the + * recommended way of doing this is to pass a `limit` that only bounds `count`, as the + * `size` limit can always be overwritten. + **/ + continueMigrate: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits, realSizeUpper: u32 | AnyNumber | Uint8Array, witnessTask: PezpalletStateTrieMigrationMigrationTask) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits, u32, PezpalletStateTrieMigrationMigrationTask]>; + /** + * Control the automatic migration. + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + **/ + controlAutoMigration: AugmentedSubmittable<(maybeConfig: Option | null | Uint8Array | PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [Option]>; + /** + * Forcefully set the progress the running migration. + * + * This is only useful in one case: the next key to migrate is too big to be migrated with + * a signed account, in a parachain context, and we simply want to skip it. A reasonable + * example of this would be `:code:`, which is both very expensive to migrate, and commonly + * used, so probably it is already migrated. + * + * In case you mess things up, you can also, in principle, use this to reset the migration + * process. + **/ + forceSetProgress: AugmentedSubmittable<(progressTop: PezpalletStateTrieMigrationProgress, progressChild: PezpalletStateTrieMigrationProgress) => SubmittableExtrinsic, [PezpalletStateTrieMigrationProgress, PezpalletStateTrieMigrationProgress]>; + /** + * Migrate the list of child keys by iterating each of them one by one. + * + * All of the given child keys must be present under one `child_root`. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomChild: AugmentedSubmittable<(root: Bytes | string | Uint8Array, childKeys: Vec | (Bytes | string | Uint8Array)[], totalSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, Vec, u32]>; + /** + * Migrate the list of top keys by iterating each of them one by one. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomTop: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[], witnessSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u32]>; + /** + * Set the maximum limit of the signed migration. + **/ + setSignedMaxLimits: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + sudo: { + /** + * Permanently removes the sudo key. + * + * **This cannot be un-done.** + **/ + removeKey: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo + * key. + **/ + setKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + **/ + sudo: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + /** + * Authenticates the sudo key and dispatches a function call with `Signed` origin from + * a given account. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoAs: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, RuntimeCall]>; + /** + * Authenticates the sudo key and dispatches a function call with `Root` origin. + * This function does not check the weight of the call, and instead allows the + * Sudo user to specify the weight of the call. + * + * The dispatch origin for this call must be _Signed_. + **/ + sudoUncheckedWeight: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array, weight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, u32]>; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable<(items: Vec> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + technicalCommittee: { + /** + * Close a vote that is either approved, disapproved or whose voting period has ended. + * + * May be called by any signed account in order to finish voting and close the proposal. + * + * If called before the end of the voting period it will only close the vote if it is + * has enough votes to be approved or disapproved. + * + * If called after the end of the voting period abstentions are counted as rejections + * unless there is a prime member set and the prime member cast an approval. + * + * If the close operation completes successfully with disapproval, the transaction fee will + * be waived. Otherwise execution of the approved operation will be charged to the caller. + * + * + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed + * proposal. + * + `length_bound`: The upper bound for the length of the proposal in storage. Checked via + * `storage::read` so it is `size_of::() == 4` larger than the pure length. + * + * ## Complexity + * - `O(B + M + P1 + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - `P1` is the complexity of `proposal` preimage. + * - `P2` is proposal-count (code-bounded) + **/ + close: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, proposalWeightBound: PezspWeightsWeightV2Weight, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact, PezspWeightsWeightV2Weight, Compact]>; + /** + * Disapprove a proposal, close, and remove it from the system, regardless of its current + * state. + * + * Must be called by the Root origin. + * + * Parameters: + * * `proposal_hash`: The hash of the proposal that should be disapproved. + * + * ## Complexity + * O(P) where P is the number of max proposals + **/ + disapproveProposal: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Dispatch a proposal from a member using the `Member` origin. + * + * Origin must be a member of the collective. + * + * ## Complexity: + * - `O(B + M + P)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` members-count (code-bounded) + * - `P` complexity of dispatching `proposal` + **/ + execute: AugmentedSubmittable<(proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, Compact]>; + /** + * Disapprove the proposal and burn the cost held for storing this proposal. + * + * Parameters: + * - `origin`: must be the `KillOrigin`. + * - `proposal_hash`: The hash of the proposal that should be killed. + * + * Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal. + **/ + kill: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Add a new proposal to either be voted on or executed directly. + * + * Requires the sender to be member. + * + * `threshold` determines whether `proposal` is executed directly (`threshold < 2`) + * or put up for voting. + * + * ## Complexity + * - `O(B + M + P1)` or `O(B + M + P2)` where: + * - `B` is `proposal` size in bytes (length-fee-bounded) + * - `M` is members-count (code- and governance-bounded) + * - branching is influenced by `threshold` where: + * - `P1` is proposal execution complexity (`threshold < 2`) + * - `P2` is proposals-count (code-bounded) (`threshold >= 2`) + **/ + propose: AugmentedSubmittable<(threshold: Compact | AnyNumber | Uint8Array, proposal: RuntimeCall | IMethod | string | Uint8Array, lengthBound: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, RuntimeCall, Compact]>; + /** + * Release the cost held for storing a proposal once the given proposal is completed. + * + * If there is no associated cost for the given proposal, this call will have no effect. + * + * Parameters: + * - `origin`: must be `Signed` or `Root`. + * - `proposal_hash`: The hash of the proposal. + * + * Emits `ProposalCostReleased` if any cost held for a given proposal. + **/ + releaseProposalCost: AugmentedSubmittable<(proposalHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Set the collective's membership. + * + * - `new_members`: The new member list. Be nice to the chain and provide it sorted. + * - `prime`: The prime member whose vote sets the default. + * - `old_count`: The upper bound for the previous number of members in storage. Used for + * weight estimation. + * + * The dispatch of this call must be `SetMembersOrigin`. + * + * NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but + * the weight estimations rely on it to estimate dispatchable weight. + * + * # WARNING: + * + * The `pallet-collective` can also be managed by logic outside of the pallet through the + * implementation of the trait [`ChangeMembers`]. + * Any call to `set_members` must be careful that the member set doesn't get out of sync + * with other logic managing the member set. + * + * ## Complexity: + * - `O(MP + N)` where: + * - `M` old-members-count (code- and governance-bounded) + * - `N` new-members-count (code- and governance-bounded) + * - `P` proposals-count (code-bounded) + **/ + setMembers: AugmentedSubmittable<(newMembers: Vec | (AccountId32 | string | Uint8Array)[], prime: Option | null | Uint8Array | AccountId32 | string, oldCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, Option, u32]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * Requires the sender to be a member. + * + * Transaction fees will be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * ## Complexity + * - `O(M)` where `M` is members-count (code- and governance-bounded) + **/ + vote: AugmentedSubmittable<(proposal: H256 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [H256, Compact, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + technicalMembership: { + /** + * Add a member `who` to the set. + * + * May only be called from `T::AddOrigin`. + **/ + addMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Swap out the sending member for some other key `new`. + * + * May only be called from `Signed` origin of a current member. + * + * Prime membership is passed from the origin account to `new`, if extant. + **/ + changeKey: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the prime member if it exists. + * + * May only be called from `T::PrimeOrigin`. + **/ + clearPrime: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a member `who` from the set. + * + * May only be called from `T::RemoveOrigin`. + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Change the membership to a new set, disregarding the existing membership. Be nice and + * pass `members` pre-sorted. + * + * May only be called from `T::ResetOrigin`. + **/ + resetMembers: AugmentedSubmittable<(members: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Set the prime member. Must be a current member. + * + * May only be called from `T::PrimeOrigin`. + **/ + setPrime: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Swap out one member `remove` for another `add`. + * + * May only be called from `T::SwapOrigin`. + * + * Prime membership is *not* passed from `remove` to `add`, if extant. + **/ + swapMember: AugmentedSubmittable<(remove: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, add: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable<(now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + tips: { + /** + * Close and payout a tip. + * + * The dispatch origin for this call must be _Signed_. + * + * The tip identified by `hash` must have finished its countdown period. + * + * - `hash`: The identity of the open tip for which a tip value is declared. This is formed + * as the hash of the tuple of the original tip `reason` and the beneficiary account ID. + * + * ## Complexity + * - : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T` + * is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on + * the implementation of `T::Tippers`. + **/ + closeTip: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Report something `reason` that deserves a tip and claim any eventual the finder's fee. + * + * The dispatch origin for this call must be _Signed_. + * + * Payment: `TipReportDepositBase` will be reserved from the origin account, as well as + * `DataDepositPerByte` for each byte in `reason`. + * + * - `reason`: The reason for, or the thing that deserves, the tip; generally this will be + * a UTF-8-encoded URL. + * - `who`: The account which should be credited for the tip. + * + * Emits `NewTip` if successful. + * + * ## Complexity + * - `O(R)` where `R` length of `reason`. + * - encoding and hashing of 'reason' + **/ + reportAwesome: AugmentedSubmittable<(reason: Bytes | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Bytes, MultiAddress]>; + /** + * Retract a prior tip-report from `report_awesome`, and cancel the process of tipping. + * + * If successful, the original deposit will be unreserved. + * + * The dispatch origin for this call must be _Signed_ and the tip identified by `hash` + * must have been reported by the signing account through `report_awesome` (and not + * through `tip_new`). + * + * - `hash`: The identity of the open tip for which a tip value is declared. This is formed + * as the hash of the tuple of the original tip `reason` and the beneficiary account ID. + * + * Emits `TipRetracted` if successful. + * + * ## Complexity + * - `O(1)` + * - Depends on the length of `T::Hash` which is fixed. + **/ + retractTip: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Remove and slash an already-open tip. + * + * May only be called from `T::RejectOrigin`. + * + * As a result, the finder is slashed and the deposits are lost. + * + * Emits `TipSlashed` if successful. + * + * ## Complexity + * - O(1). + **/ + slashTip: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Declare a tip value for an already-open tip. + * + * The dispatch origin for this call must be _Signed_ and the signing account must be a + * member of the `Tippers` set. + * + * - `hash`: The identity of the open tip for which a tip value is declared. This is formed + * as the hash of the tuple of the hash of the original tip `reason` and the beneficiary + * account ID. + * - `tip_value`: The amount of tip that the sender would like to give. The median tip + * value of active tippers will be given to the `who`. + * + * Emits `TipClosing` if the threshold of tippers has been reached and the countdown period + * has started. + * + * ## Complexity + * - `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert + * tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`. + * The actual cost depends on the implementation of `T::Tippers`. + * + * Actually weight could be lower as it depends on how many tips are in `OpenTip` but it + * is weighted as if almost full i.e of length `T-1`. + **/ + tip: AugmentedSubmittable<(hash: H256 | string | Uint8Array, tipValue: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [H256, Compact]>; + /** + * Give a tip for something new; no finder's fee will be taken. + * + * The dispatch origin for this call must be _Signed_ and the signing account must be a + * member of the `Tippers` set. + * + * - `reason`: The reason for, or the thing that deserves, the tip; generally this will be + * a UTF-8-encoded URL. + * - `who`: The account which should be credited for the tip. + * - `tip_value`: The amount of tip that the sender would like to give. The median tip + * value of active tippers will be given to the `who`. + * + * Emits `NewTip` if successful. + * + * ## Complexity + * - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. + * - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by + * `ContainsLengthBound`. The actual cost depends on the implementation of + * `T::Tippers`. + * - `O(R)`: hashing and encoding of reason of length `R` + **/ + tipNew: AugmentedSubmittable<(reason: Bytes | string | Uint8Array, who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, tipValue: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, MultiAddress, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + transactionStorage: { + /** + * Check storage proof for block number `block_number() - StoragePeriod`. + * If such block does not exist the proof is expected to be `None`. + * ## Complexity + * - Linear w.r.t the number of indexed transactions in the proved block for random + * probing. + * There's a DB read for each transaction. + **/ + checkProof: AugmentedSubmittable<(proof: PezspTransactionStorageProofTransactionStorageProof) => SubmittableExtrinsic, [PezspTransactionStorageProofTransactionStorageProof]>; + /** + * Renew previously stored data. Parameters are the block number that contains + * previous `store` or `renew` call and transaction index within that block. + * Transaction index is emitted in the `Stored` or `Renewed` event. + * Applies same fees as `store`. + * ## Complexity + * - O(1). + **/ + renew: AugmentedSubmittable<(block: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Index and store data off chain. Minimum data size is 1 bytes, maximum is + * `MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew` + * is called. + * ## Complexity + * - O(n*log(n)) of data size, as all data is pushed to an in-memory trie. + **/ + store: AugmentedSubmittable<(data: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + treasury: { + /** + * Check the status of the spend and remove it from the storage if processed. + * + * ## Dispatch Origin + * + * Must be signed. + * + * ## Details + * + * The status check is a prerequisite for retrying a failed payout. + * If a spend has either succeeded or expired, it is removed from the storage by this + * function. In such instances, transaction fees are refunded. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::PaymentFailed`] if the spend payout has failed. + * Emits [`Event::SpendProcessed`] if the spend payout has succeed. + **/ + checkStatus: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim a spend. + * + * ## Dispatch Origin + * + * Must be signed + * + * ## Details + * + * Spends must be claimed within some temporal bounds. A spend may be claimed within one + * [`Config::PayoutPeriod`] from the `valid_from` block. + * In case of a payout failure, the spend status must be updated with the `check_status` + * dispatchable before retrying with the current function. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::Paid`] if successful. + **/ + payout: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force a previously approved proposal to be removed from the approval queue. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * The original deposit will no longer be returned. + * + * ### Parameters + * - `proposal_id`: The index of a proposal + * + * ### Complexity + * - O(A) where `A` is the number of approvals + * + * ### Errors + * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the + * approval queue, i.e., the proposal has not been approved. This could also mean the + * proposal does not exist altogether, thus there is no way it would have been approved + * in the first place. + **/ + removeApproval: AugmentedSubmittable<(proposalId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least + * `amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted + * for assertion using the [`Config::BalanceConverter`]. + * + * ## Details + * + * Create an approved spend for transferring a specific `amount` of `asset_kind` to a + * designated beneficiary. The spend must be claimed using the `payout` dispatchable within + * the [`Config::PayoutPeriod`]. + * + * ### Parameters + * - `asset_kind`: An indicator of the specific asset class to be spent. + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The beneficiary of the spend. + * - `valid_from`: The block number from which the spend can be claimed. It can refer to + * the past if the resulting spend has not yet expired according to the + * [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after + * approval. + * + * ## Events + * + * Emits [`Event::AssetSpendApproved`] if successful. + **/ + spend: AugmentedSubmittable<(assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId, amount: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, validFrom: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [PezframeSupportTokensFungibleUnionOfNativeOrWithId, Compact, MultiAddress, Option]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`. + * + * ### Details + * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the + * beneficiary. + * + * ### Parameters + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The destination account for the transfer. + * + * ## Events + * + * Emits [`Event::SpendApproved`] if successful. + **/ + spendLocal: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Void previously approved spend. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * A spend void is only possible if the payout has not been attempted yet. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::AssetSpendVoided`] if successful. + **/ + voidSpend: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + txPause: { + /** + * Pause a call. + * + * Can only be called by [`Config::PauseOrigin`]. + * Emits an [`Event::CallPaused`] event on success. + **/ + pause: AugmentedSubmittable<(fullName: ITuple<[Bytes, Bytes]> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array]) => SubmittableExtrinsic, [ITuple<[Bytes, Bytes]>]>; + /** + * Un-pause a call. + * + * Can only be called by [`Config::UnpauseOrigin`]. + * Emits an [`Event::CallUnpaused`] event on success. + **/ + unpause: AugmentedSubmittable<(ident: ITuple<[Bytes, Bytes]> | [Bytes | string | Uint8Array, Bytes | string | Uint8Array]) => SubmittableExtrinsic, [ITuple<[Bytes, Bytes]>]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + uniques: { + /** + * Approve an item to be transferred by a delegated third-party account. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be + * either the owner of the `item` or the admin of the collection. + * + * - `collection`: The collection of the item to be approved for delegated transfer. + * - `item`: The item of the item to be approved for delegated transfer. + * - `delegate`: The account to delegate permission to transfer the item. + * + * Important NOTE: The `approved` account gets reset after each transfer. + * + * Emits `ApprovedTransfer` on success. + * + * Weight: `O(1)` + **/ + approveTransfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Destroy a single item. + * + * Origin must be Signed and the signing account must be either: + * - the Admin of the `collection`; + * - the Owner of the `item`; + * + * - `collection`: The collection of the item to be burned. + * - `item`: The item of the item to be burned. + * - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the + * item is owned by this value. + * + * Emits `Burned` with the actual amount burned. + * + * Weight: `O(1)` + * Modes: `check_owner.is_some()`. + **/ + burn: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, checkOwner: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option]>; + /** + * Allows to buy an item if it's up for sale. + * + * Origin must be Signed and must not be the owner of the `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item the sender wants to buy. + * - `bid_price`: The price the sender is willing to pay. + * + * Emits `ItemBought` on success. + **/ + buyItem: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, bidPrice: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u128]>; + /** + * Cancel the prior approval for the transfer of an item by a delegate. + * + * Origin must be either: + * - the `Force` origin; + * - `Signed` with the signer being the Admin of the `collection`; + * - `Signed` with the signer being the Owner of the `item`; + * + * Arguments: + * - `collection`: The collection of the item of whose approval will be cancelled. + * - `item`: The item of the item of whose approval will be cancelled. + * - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to + * which permission of transfer is delegated. + * + * Emits `ApprovalCancelled` on success. + * + * Weight: `O(1)` + **/ + cancelApproval: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, maybeCheckDelegate: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option]>; + /** + * Clear an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `maybe_item`: The identifier of the item whose metadata to clear. + * - `key`: The key of the attribute. + * + * Emits `AttributeCleared`. + * + * Weight: `O(1)` + **/ + clearAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, Bytes]>; + /** + * Clear the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose metadata to clear. + * + * Emits `CollectionMetadataCleared`. + * + * Weight: `O(1)` + **/ + clearCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Clear the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `item`. + * + * Any deposit is freed for the collection's owner. + * + * - `collection`: The identifier of the collection whose item's metadata to clear. + * - `item`: The identifier of the item whose metadata to clear. + * + * Emits `MetadataCleared`. + * + * Weight: `O(1)` + **/ + clearMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Issue a new collection of non-fungible items from a public origin. + * + * This new collection has no items initially and its owner is the origin. + * + * The origin must conform to the configured `CreateOrigin` and have sufficient funds free. + * + * `ItemDeposit` funds of sender are reserved. + * + * Parameters: + * - `collection`: The identifier of the new collection. This must not be currently in use. + * - `admin`: The admin of this collection. The admin is the initial address of each + * member of the collection's admin team. + * + * Emits `Created` event when successful. + * + * Weight: `O(1)` + **/ + create: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Destroy a collection of fungible items. + * + * The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the + * owner of the `collection`. + * + * - `collection`: The identifier of the collection to be destroyed. + * - `witness`: Information on the items minted in the collection. This must be + * correct. + * + * Emits `Destroyed` event when successful. + * + * Weight: `O(n + m)` where: + * - `n = witness.items` + * - `m = witness.item_metadatas` + * - `a = witness.attributes` + **/ + destroy: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, witness: PezpalletUniquesDestroyWitness) => SubmittableExtrinsic, [u32, PezpalletUniquesDestroyWitness]>; + /** + * Issue a new collection of non-fungible items from a privileged origin. + * + * This new collection has no items initially. + * + * The origin must conform to `ForceOrigin`. + * + * Unlike `create`, no funds are reserved. + * + * - `collection`: The identifier of the new item. This must not be currently in use. + * - `owner`: The owner of this collection of items. The owner has full superuser + * permissions + * over this item, but may later change and configure the permissions using + * `transfer_ownership` and `set_team`. + * + * Emits `ForceCreated` event when successful. + * + * Weight: `O(1)` + **/ + forceCreate: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, bool]>; + /** + * Alter the attributes of a given item. + * + * Origin must be `ForceOrigin`. + * + * - `collection`: The identifier of the item. + * - `owner`: The new Owner of this item. + * - `issuer`: The new Issuer of this item. + * - `admin`: The new Admin of this item. + * - `freezer`: The new Freezer of this item. + * - `free_holding`: Whether a deposit is taken for holding an item of this collection. + * - `is_frozen`: Whether this collection is frozen except for permissioned/admin + * instructions. + * + * Emits `ItemStatusChanged` with the identity of the item. + * + * Weight: `O(1)` + **/ + forceItemStatus: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freeHolding: bool | boolean | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress, MultiAddress, bool, bool]>; + /** + * Disallow further unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be frozen. + * - `item`: The item of the item to be frozen. + * + * Emits `Frozen`. + * + * Weight: `O(1)` + **/ + freeze: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Disallow further unprivileged transfers for a whole collection. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection to be frozen. + * + * Emits `CollectionFrozen`. + * + * Weight: `O(1)` + **/ + freezeCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Mint an item of a particular collection. + * + * The origin must be Signed and the sender must be the Issuer of the `collection`. + * + * - `collection`: The collection of the item to be minted. + * - `item`: The item value of the item to be minted. + * - `beneficiary`: The initial owner of the minted item. + * + * Emits `Issued` event when successful. + * + * Weight: `O(1)` + **/ + mint: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, owner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Reevaluate the deposits on some items. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection to be frozen. + * - `items`: The items of the collection whose deposits will be reevaluated. + * + * NOTE: This exists as a best-effort function. Any items which are unknown or + * in the case that the owner account does not have reservable funds to pay for a + * deposit increase are ignored. Generally the owner isn't going to call this on items + * whose existing deposit is less than the refreshed deposit as it would only cost them, + * so it's of little consequence. + * + * It will still return an error in the case that the collection is unknown of the signer + * is not permitted to call it. + * + * Weight: `O(items.len())` + **/ + redeposit: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, items: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Set (or reset) the acceptance of ownership for a particular account. + * + * Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a + * provider reference. + * + * - `maybe_collection`: The identifier of the collection whose ownership the signer is + * willing to accept, or if `None`, an indication that the signer is willing to accept no + * ownership transferal. + * + * Emits `OwnershipAcceptanceChanged`. + **/ + setAcceptOwnership: AugmentedSubmittable<(maybeCollection: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set an attribute for a collection or item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `maybe_item`: The identifier of the item whose metadata to set. + * - `key`: The key of the attribute. + * - `value`: The value to which to set the attribute. + * + * Emits `AttributeSet`. + * + * Weight: `O(1)` + **/ + setAttribute: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maybeItem: Option | null | Uint8Array | u32 | AnyNumber, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Option, Bytes, Bytes]>; + /** + * Set the maximum amount of items a collection could have. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * Note: This function can only succeed once per collection. + * + * - `collection`: The identifier of the collection to change. + * - `max_supply`: The maximum amount of items a collection could have. + * + * Emits `CollectionMaxSupplySet` event when successful. + **/ + setCollectionMaxSupply: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, maxSupply: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Set the metadata for a collection. + * + * Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of + * the `collection`. + * + * If the origin is `Signed`, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the item whose metadata to update. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * - `is_frozen`: Whether the metadata should be frozen against further changes. + * + * Emits `CollectionMetadataSet`. + * + * Weight: `O(1)` + **/ + setCollectionMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, bool]>; + /** + * Set the metadata for an item. + * + * Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the + * `collection`. + * + * If the origin is Signed, then funds of signer are reserved according to the formula: + * `MetadataDepositBase + DepositPerByte * data.len` taking into + * account any already reserved funds. + * + * - `collection`: The identifier of the collection whose item's metadata to set. + * - `item`: The identifier of the item whose metadata to set. + * - `data`: The general information of this item. Limited in length by `StringLimit`. + * - `is_frozen`: Whether the metadata should be frozen against further changes. + * + * Emits `MetadataSet`. + * + * Weight: `O(1)` + **/ + setMetadata: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, data: Bytes | string | Uint8Array, isFrozen: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, u32, Bytes, bool]>; + /** + * Set (or reset) the price for an item. + * + * Origin must be Signed and must be the owner of the asset `item`. + * + * - `collection`: The collection of the item. + * - `item`: The item to set the price for. + * - `price`: The price for the item. Pass `None`, to reset the price. + * - `buyer`: Restricts the buy operation to a specific account. + * + * Emits `ItemPriceSet` on success if the price is not `None`. + * Emits `ItemPriceRemoved` on success if the price is `None`. + **/ + setPrice: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, price: Option | null | Uint8Array | u128 | AnyNumber, whitelistedBuyer: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [u32, u32, Option, Option]>; + /** + * Change the Issuer, Admin and Freezer of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose team should be changed. + * - `issuer`: The new Issuer of this collection. + * - `admin`: The new Admin of this collection. + * - `freezer`: The new Freezer of this collection. + * + * Emits `TeamChanged`. + * + * Weight: `O(1)` + **/ + setTeam: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, issuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, admin: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, freezer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Re-allow unprivileged transfer of an item. + * + * Origin must be Signed and the sender should be the Freezer of the `collection`. + * + * - `collection`: The collection of the item to be thawed. + * - `item`: The item of the item to be thawed. + * + * Emits `Thawed`. + * + * Weight: `O(1)` + **/ + thaw: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Re-allow unprivileged transfers for a whole collection. + * + * Origin must be Signed and the sender should be the Admin of the `collection`. + * + * - `collection`: The collection to be thawed. + * + * Emits `CollectionThawed`. + * + * Weight: `O(1)` + **/ + thawCollection: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Move an item from the sender account to another. + * + * This resets the approved account of the item. + * + * Origin must be Signed and the signing account must be either: + * - the Admin of the `collection`; + * - the Owner of the `item`; + * - the approved delegate for the `item` (in this case, the approval is reset). + * + * Arguments: + * - `collection`: The collection of the item to be transferred. + * - `item`: The item of the item to be transferred. + * - `dest`: The account to receive ownership of the item. + * + * Emits `Transferred`. + * + * Weight: `O(1)` + **/ + transfer: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, item: u32 | AnyNumber | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, u32, MultiAddress]>; + /** + * Change the Owner of a collection. + * + * Origin must be Signed and the sender should be the Owner of the `collection`. + * + * - `collection`: The collection whose owner should be changed. + * - `owner`: The new Owner of this collection. They must have called + * `set_accept_ownership` with `collection` in order for this operation to succeed. + * + * Emits `OwnerChanged`. + * + * Weight: `O(1)` + **/ + transferOwnership: AugmentedSubmittable<(collection: u32 | AnyNumber | Uint8Array, newOwner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u32, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + utility: { + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + **/ + asDerivative: AugmentedSubmittable<(index: u16 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u16, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + **/ + batch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + batchAll: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + **/ + dispatchAs: AugmentedSubmittable<(asOrigin: KitchensinkRuntimeOriginCaller | { system: any } | { Council: any } | { TechnicalCommittee: any } | { AllianceMotion: any } | string | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [KitchensinkRuntimeOriginCaller, RuntimeCall]>; + /** + * Dispatches a function call with a provided origin. + * + * Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call. + * + * The dispatch origin for this call must be _Root_. + **/ + dispatchAsFallible: AugmentedSubmittable<(asOrigin: KitchensinkRuntimeOriginCaller | { system: any } | { Council: any } | { TechnicalCommittee: any } | { AllianceMotion: any } | string | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [KitchensinkRuntimeOriginCaller, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + forceBatch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatch a fallback call in the event the main call fails to execute. + * May be called from any origin except `None`. + * + * This function first attempts to dispatch the `main` call. + * If the `main` call fails, the `fallback` is attemted. + * if the fallback is successfully dispatched, the weights of both calls + * are accumulated and an event containing the main call error is deposited. + * + * In the event of a fallback failure the whole call fails + * with the weights returned. + * + * - `main`: The main call to be dispatched. This is the primary action to execute. + * - `fallback`: The fallback call to be dispatched in case the `main` call fails. + * + * ## Dispatch Logic + * - If the origin is `root`, both the main and fallback calls are executed without + * applying any origin filters. + * - If the origin is not `root`, the origin filter is applied to both the `main` and + * `fallback` calls. + * + * ## Use Case + * - Some use cases might involve submitting a `batch` type call in either main, fallback + * or both. + **/ + ifElse: AugmentedSubmittable<(main: RuntimeCall | IMethod | string | Uint8Array, fallback: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, RuntimeCall]>; + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + **/ + withWeight: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array, weight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + vesting: { + /** + * Force remove a vesting schedule + * + * The dispatch origin for this call must be _Root_. + * + * - `target`: An account that has a vesting schedule + * - `schedule_index`: The vesting schedule index that should be removed + **/ + forceRemoveVestingSchedule: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, scheduleIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Force a vested transfer. + * + * The dispatch origin for this call must be _Root_. + * + * - `source`: The account whose funds should be transferred. + * - `target`: The account that should be transferred the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + forceVestedTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Merge two vesting schedules together, creating a new vesting schedule that unlocks over + * the highest possible start and end blocks. If both schedules have already started the + * current block will be used as the schedule start; with the caveat that if one schedule + * is finished by the current block, the other will be treated as the new merged schedule, + * unmodified. + * + * NOTE: If `schedule1_index == schedule2_index` this is a no-op. + * NOTE: This will unlock all schedules through the current block prior to merging. + * NOTE: If both schedules have ended by the current block, no new schedule will be created + * and both will be removed. + * + * Merged schedule attributes: + * - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block, + * current_block)`. + * - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`. + * - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`. + * + * The dispatch origin for this call must be _Signed_. + * + * - `schedule1_index`: index of the first schedule to merge. + * - `schedule2_index`: index of the second schedule to merge. + **/ + mergeSchedules: AugmentedSubmittable<(schedule1Index: u32 | AnyNumber | Uint8Array, schedule2Index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Unlock any vested funds of the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vest: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a vested transfer. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account receiving the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + vestedTransfer: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Unlock any vested funds of a `target` account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account whose vested funds should be unlocked. Must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vestOther: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + voterList: { + /** + * Move the caller's Id directly in front of `lighter`. + * + * The dispatch origin for this call must be _Signed_ and can only be called by the Id of + * the account going in front of `lighter`. Fee is payed by the origin under all + * circumstances. + * + * Only works if: + * + * - both nodes are within the same bag, + * - and `origin` has a greater `Score` than `lighter`. + **/ + putInFrontOf: AugmentedSubmittable<(lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Same as [`Pallet::put_in_front_of`], but it can be called by anyone. + * + * Fee is paid by the origin under all circumstances. + **/ + putInFrontOfOther: AugmentedSubmittable<(heavier: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Declare that some `dislocated` account has, through rewards or penalties, sufficiently + * changed its score that it should properly fall into a different bag than its current + * one. + * + * Anyone can call this function about any potentially dislocated account. + * + * Will always update the stored score of `dislocated` to the correct score, based on + * `ScoreProvider`. + * + * If `dislocated` does not exists, it returns an error. + **/ + rebag: AugmentedSubmittable<(dislocated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + whitelist: { + dispatchWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array, callEncodedLen: u32 | AnyNumber | Uint8Array, callWeightWitness: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [H256, u32, PezspWeightsWeightV2Weight]>; + dispatchWhitelistedCallWithPreimage: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + removeWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + whitelistCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/packages/api-augment/src/bundle.ts b/packages/api-augment/src/bundle.ts new file mode 100644 index 0000000..e45cf49 --- /dev/null +++ b/packages/api-augment/src/bundle.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './bizinikiwi/index.js'; + +export { packageInfo } from './packageInfo.js'; diff --git a/packages/api-augment/src/dicle/consts.ts b/packages/api-augment/src/dicle/consts.ts new file mode 100644 index 0000000..fa02188 --- /dev/null +++ b/packages/api-augment/src/dicle/consts.ts @@ -0,0 +1,1035 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/consts'; + +import type { ApiTypes, AugmentedConst } from '@pezkuwi/api-base/types'; +import type { Bytes, Option, Vec, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { Codec, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, Perbill, Permill } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportPezpalletId, PezframeSystemLimitsBlockLength, PezframeSystemLimitsBlockWeights, PezpalletReferendaTrackDetails, PezspVersionRuntimeVersion, PezspWeightsRuntimeDbWeight, PezspWeightsWeightV2Weight, StagingXcmV5Junctions } from '@pezkuwi/types/lookup'; + +export type __AugmentedConst = AugmentedConst; + +declare module '@pezkuwi/api-base/types/consts' { + interface AugmentedConsts { + auctions: { + /** + * The number of blocks over which an auction may be retroactively ended. + **/ + endingPeriod: u32 & AugmentedConst; + leasePeriodsPerSlot: u32 & AugmentedConst; + /** + * The length of each sample to take during the ending period. + * + * `EndingPeriod` / `SampleLength` = Total # of Samples + **/ + sampleLength: u32 & AugmentedConst; + slotRangeCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + babe: { + /** + * The amount of time, in slots, that each epoch should last. + * NOTE: Currently it is not possible to change the epoch duration after + * the chain has started. Attempting to do so will brick block production. + **/ + epochDuration: u64 & AugmentedConst; + /** + * The expected average block time at which BABE should be creating + * blocks. Since BABE is probabilistic it is not trivial to figure out + * what the expected average block time should be based on the slot + * duration and the security parameter `c` (where `1 - c` represents + * the probability of a slot being empty). + **/ + expectedBlockTime: u64 & AugmentedConst; + /** + * Max number of authorities allowed + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + beefy: { + /** + * The maximum number of authorities that can be added. + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + bounties: { + /** + * The amount held on deposit for placing a bounty proposal. + **/ + bountyDepositBase: u128 & AugmentedConst; + /** + * The delay period for which a bounty beneficiary need to wait before claim the payout. + **/ + bountyDepositPayoutDelay: u32 & AugmentedConst; + /** + * The time limit for a curator to act before a bounty expires. + * + * The period that starts when a curator is approved, during which they must execute or + * update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the + * curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely, + * removing the need for `extend_bounty_expiry`. + **/ + bountyUpdatePeriod: u32 & AugmentedConst; + /** + * Minimum value for a bounty. + **/ + bountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMax: Option & AugmentedConst; + /** + * Minimum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMin: Option & AugmentedConst; + /** + * The curator deposit is calculated as a percentage of the curator fee. + * + * This deposit has optional upper and lower bounds with `CuratorDepositMax` and + * `CuratorDepositMin`. + **/ + curatorDepositMultiplier: Permill & AugmentedConst; + /** + * The amount held on deposit per byte within the tip report reason or bounty description. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * Maximum acceptable reason length. + * + * Benchmarks depend on this value, be sure to update weights file when changing this value + **/ + maximumReasonLength: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + childBounties: { + /** + * Minimum value for a child-bounty. + **/ + childBountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum number of child bounties that can be added to a parent bounty. + **/ + maxActiveChildBountyCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + claims: { + prefix: Bytes & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + convictionVoting: { + /** + * The maximum number of concurrent votes an account may have. + * + * Also used to compute weight, an overly large value can lead to extrinsics with large + * weight estimation: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + coretime: { + /** + * The ParaId of the coretime chain. + **/ + brokerId: u32 & AugmentedConst; + /** + * The coretime chain pot location. + **/ + brokerPotLocation: StagingXcmV5Junctions & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + crowdloan: { + /** + * The minimum amount that may be contributed into a crowdloan. Should almost certainly be + * at least `ExistentialDeposit`. + **/ + minContribution: u128 & AugmentedConst; + /** + * `PalletId` for the crowdloan pallet. An appropriate value could be + * `PalletId(*b"py/cfund")` + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Max number of storage keys to remove per extrinsic call. + **/ + removeKeysLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + delegatedStaking: { + /** + * Injected identifier for the pallet. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Fraction of the slash that is rewarded to the caller of pending slash to the agent. + **/ + slashRewardFraction: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + electionProviderMultiPhase: { + /** + * The minimum amount of improvement to the solution score that defines a solution as + * "better" in the Signed phase. + **/ + betterSignedThreshold: Perbill & AugmentedConst; + /** + * Maximum number of voters that can support a winner in an election solution. + * + * This is needed to ensure election computation is bounded. + **/ + maxBackersPerWinner: u32 & AugmentedConst; + /** + * Maximum number of winners that an election supports. + * + * Note: This must always be greater or equal to `T::DataProvider::desired_targets()`. + **/ + maxWinners: u32 & AugmentedConst; + minerMaxLength: u32 & AugmentedConst; + minerMaxVotesPerVoter: u32 & AugmentedConst; + minerMaxWeight: PezspWeightsWeightV2Weight & AugmentedConst; + minerMaxWinners: u32 & AugmentedConst; + /** + * The priority of the unsigned transaction submitted in the unsigned-phase + **/ + minerTxPriority: u64 & AugmentedConst; + /** + * The repeat threshold of the offchain worker. + * + * For example, if it is 5, that means that at least 5 blocks will elapse between attempts + * to submit the worker's solution. + **/ + offchainRepeat: u32 & AugmentedConst; + /** + * Per-byte deposit for a signed solution. + **/ + signedDepositByte: u128 & AugmentedConst; + /** + * Per-weight deposit for a signed solution. + **/ + signedDepositWeight: u128 & AugmentedConst; + /** + * The maximum amount of unchecked solutions to refund the call fee for. + **/ + signedMaxRefunds: u32 & AugmentedConst; + /** + * Maximum number of signed submissions that can be queued. + * + * It is best to avoid adjusting this during an election, as it impacts downstream data + * structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you + * update this value during an election, you _must_ ensure that + * `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise, + * attempts to submit new solutions may cause a runtime panic. + **/ + signedMaxSubmissions: u32 & AugmentedConst; + /** + * Maximum weight of a signed solution. + * + * If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of + * this pallet), then [`MinerConfig::solution_weight`] is used to compare against + * this value. + **/ + signedMaxWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Base reward for a signed solution + **/ + signedRewardBase: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fastUnstake: { + /** + * Deposit to take for unstaking, to make sure we're able to slash the it in order to cover + * the costs of resources on unsuccessful unstake. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fellowshipReferenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + grandpa: { + /** + * Max Authorities in use + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + indices: { + /** + * The deposit needed for reserving an index. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multisig: { + /** + * The base amount of currency needed to reserve for creating a multisig execution or to + * store a dispatch call for later. + * + * This is held for an additional storage item whose value size is + * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is + * `32 + sizeof(AccountId)` bytes. + **/ + depositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per unit threshold when creating a multisig execution. + * + * This is held for adding 32 bytes more into a pre-existing storage value. + **/ + depositFactor: u128 & AugmentedConst; + /** + * The maximum amount of signatories allowed in the multisig. + **/ + maxSignatories: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nominationPools: { + /** + * The maximum pool points-to-balance ratio that an `open` pool can have. + * + * This is important in the event slashing takes place and the pool's points-to-balance + * ratio becomes disproportional. + * + * Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations + * are a function of number of points, and by setting this value to e.g. 10, you ensure + * that the total number of points in the system are at most 10 times the total_issuance of + * the chain, in the absolute worse case. + * + * For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1. + * Such a scenario would also be the equivalent of the pool being 90% slashed. + **/ + maxPointsToBalance: u8 & AugmentedConst; + /** + * The maximum number of simultaneous unbonding chunks that can exist per member. + **/ + maxUnbonding: u32 & AugmentedConst; + /** + * The nomination pool's pallet id. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + onDemandAssignmentProvider: { + /** + * The maximum number of blocks some historical revenue + * information stored for. + **/ + maxHistoricalRevenue: u32 & AugmentedConst; + /** + * Identifier for the internal revenue balance. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The default value for the spot traffic multiplier. + **/ + trafficDefaultValue: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + paras: { + unsignedPriority: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proxy: { + /** + * The base amount of currency needed to reserve for creating an announcement. + * + * This is held when a new storage item holding a `Balance` is created (typically 16 + * bytes). + **/ + announcementDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per announcement made. + * + * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) + * into a pre-existing storage value. + **/ + announcementDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of time-delayed announcements that are allowed to be pending. + **/ + maxPending: u32 & AugmentedConst; + /** + * The maximum amount of proxies allowed for a single account. + **/ + maxProxies: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for creating a proxy. + * + * This is held for an additional storage item whose value size is + * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. + **/ + proxyDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per proxy added. + * + * This is held for adding 32 bytes plus an instance of `ProxyType` more into a + * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take + * into account `32 + proxy_type.encode().len()` bytes of data. + **/ + proxyDepositFactor: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + recovery: { + /** + * The base amount of currency needed to reserve for creating a recovery configuration. + * + * This is held for an additional storage item whose value size is + * `2 + sizeof(BlockNumber, Balance)` bytes. + **/ + configDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per additional user when creating a recovery + * configuration. + * + * This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage + * value. + **/ + friendDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of friends allowed in a recovery configuration. + * + * NOTE: The threshold programmed in this Pallet uses u16, so it does + * not really make sense to have a limit here greater than u16::MAX. + * But also, that is a lot more than you should probably set this value + * to anyway... + **/ + maxFriends: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for starting a recovery. + * + * This is primarily held for deterring malicious recovery attempts, and should + * have a value large enough that a bad actor would choose not to place this + * deposit. It also acts to fund additional storage item whose value size is + * `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable + * threshold. + **/ + recoveryDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + referenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + registrar: { + /** + * The deposit to be paid per byte stored on chain. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * The deposit to be paid to run a on-demand parachain. + * This should include the cost for storing the genesis head and validation code. + **/ + paraDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + scheduler: { + /** + * The maximum weight that may be scheduled per block for any dispatchables. + **/ + maximumWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * The maximum number of scheduled calls in the queue for a single block. + * + * NOTE: + * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a + * higher limit under `runtime-benchmarks` feature. + **/ + maxScheduledPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + session: { + /** + * The amount to be held when setting keys. + **/ + keyDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + slots: { + /** + * The number of blocks to offset each lease period by. + **/ + leaseOffset: u32 & AugmentedConst; + /** + * The number of blocks over which a single period lasts. + **/ + leasePeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + society: { + /** + * The number of [Config::BlockNumberProvider] blocks between membership challenges. + **/ + challengePeriod: u32 & AugmentedConst; + /** + * The number of [Config::BlockNumberProvider] blocks on which new candidates can claim + * their membership and be the named head. + **/ + claimPeriod: u32 & AugmentedConst; + /** + * The maximum number of strikes before a member gets funds slashed. + **/ + graceStrikes: u32 & AugmentedConst; + /** + * The maximum number of bids at once. + **/ + maxBids: u32 & AugmentedConst; + /** + * The maximum duration of the payout lock. + **/ + maxLockDuration: u32 & AugmentedConst; + /** + * The maximum number of payouts a member may have waiting unclaimed. + **/ + maxPayouts: u32 & AugmentedConst; + /** + * The societies's pallet id + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The amount of incentive paid within each period. Doesn't include VoterTip. + **/ + periodSpend: u128 & AugmentedConst; + /** + * The number of [Config::BlockNumberProvider] blocks on which new candidates should be + * voted on. Together with + * `ClaimPeriod`, this sums to the number of blocks between candidate intake periods. + **/ + votingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + staking: { + /** + * Number of eras that staked funds must remain bonded for. + **/ + bondingDuration: u32 & AugmentedConst; + /** + * Number of eras to keep in history. + * + * Following information is kept for eras in `[current_era - + * HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`, + * `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`, + * `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`, + * `ErasStakersOverview`. + * + * Must be more than the number of eras delayed by session. + * I.e. active era must always be in history. I.e. `active_era > + * current_era - history_depth` must be guaranteed. + * + * If migrating an existing pallet from storage value to config value, + * this should be set to same value or greater as in storage. + * + * Note: `HistoryDepth` is used as the upper bound for the `BoundedVec` + * item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than + * the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a migration. + * The test `reducing_history_depth_abrupt` shows this effect. + **/ + historyDepth: u32 & AugmentedConst; + /** + * The maximum size of each `T::ExposurePage`. + * + * An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize` + * nominators. + * + * For older non-paged exposure, a reward payout was restricted to the top + * `MaxExposurePageSize` nominators. This is to limit the i/o cost for the + * nominator payout. + * + * Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce + * without handling it in a migration. + **/ + maxExposurePageSize: u32 & AugmentedConst; + /** + * The maximum number of `unlocking` chunks a [`StakingLedger`] can + * have. Effectively determines how many unique eras a staker may be + * unbonding in. + * + * Note: `MaxUnlockingChunks` is used as the upper bound for the + * `BoundedVec` item `StakingLedger.unlocking`. Setting this value + * lower than the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a runtime + * migration. The test `reducing_max_unlocking_chunks_abrupt` shows + * this effect. + **/ + maxUnlockingChunks: u32 & AugmentedConst; + /** + * The absolute maximum of winner validators this pallet should return. + **/ + maxValidatorSet: u32 & AugmentedConst; + /** + * Number of sessions per era. + **/ + sessionsPerEra: u32 & AugmentedConst; + /** + * Number of eras that slashes are deferred by, after computation. + * + * This should be less than the bonding duration. Set to 0 if slashes + * should be applied immediately, without opportunity for intervention. + **/ + slashDeferDuration: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: PezframeSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: PezframeSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: PezspWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: PezspVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + treasury: { + /** + * Percentage of spare funds (if any) that are burnt per spend period. + **/ + burn: Permill & AugmentedConst; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * The maximum number of approvals that can wait in the spending queue. + * + * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. + **/ + maxApprovals: u32 & AugmentedConst; + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The period during which an approved treasury spend has to be claimed. + **/ + payoutPeriod: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Period between successive spends. + **/ + spendPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + utility: { + /** + * The limit on the number of batched calls. + **/ + batchedCallsLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + vesting: { + maxVestingSchedules: u32 & AugmentedConst; + /** + * The minimum amount transferred to call `vested_transfer`. + **/ + minVestedTransfer: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + voterList: { + /** + * The list of thresholds separating the various bags. + * + * Ids are separated into unsorted bags according to their score. This specifies the + * thresholds separating the bags. An id's bag is the largest bag for which the id's score + * is less than or equal to its upper threshold. + * + * When ids are iterated, higher bags are iterated completely before lower bags. This means + * that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower + * score, but peer ids within a particular bag are sorted in insertion order. + * + * # Expressing the constant + * + * This constant must be sorted in strictly increasing order. Duplicate items are not + * permitted. + * + * There is an implied upper limit of `Score::MAX`; that value does not need to be + * specified within the bag. For any two threshold lists, if one ends with + * `Score::MAX`, the other one does not, and they are otherwise equal, the two + * lists will behave identically. + * + * # Calculation + * + * It is recommended to generate the set of thresholds in a geometric series, such that + * there exists some constant ratio such that `threshold[k + 1] == (threshold[k] * + * constant_ratio).max(threshold[k] + 1)` for all `k`. + * + * The helpers in the `/utils/frame/generate-bags` module can simplify this calculation. + * + * # Examples + * + * - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and + * iteration is strictly in insertion order. + * - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is equal to 2. + * - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is approximately equal to 1.248. + * - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall + * into bag 0, an id with score 2 will fall into bag 1, etc. + * + * # Migration + * + * In the event that this list ever changes, a copy of the old bags list must be retained. + * With that `List::migrate` can be called, which will perform the appropriate migration. + **/ + bagThresholds: Vec & AugmentedConst; + /** + * Maximum number of accounts that may be re-bagged automatically in `on_idle`. + * + * A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables + * the feature. + **/ + maxAutoRebagPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmPallet: { + /** + * The latest supported version that we advertise. Generally just set it to + * `pallet_xcm::CurrentXcmVersion`. + **/ + advertisedXcmVersion: u32 & AugmentedConst; + /** + * The maximum number of local XCM locks that a single account may have. + **/ + maxLockers: u32 & AugmentedConst; + /** + * The maximum number of consumers a single remote lock may have. + **/ + maxRemoteLockConsumers: u32 & AugmentedConst; + /** + * This chain's Universal Location. + **/ + universalLocation: StagingXcmV5Junctions & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/packages/api-augment/src/dicle/errors.ts b/packages/api-augment/src/dicle/errors.ts new file mode 100644 index 0000000..124a85d --- /dev/null +++ b/packages/api-augment/src/dicle/errors.ts @@ -0,0 +1,2436 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/errors'; + +import type { ApiTypes, AugmentedError } from '@pezkuwi/api-base/types'; + +export type __AugmentedError = AugmentedError; + +declare module '@pezkuwi/api-base/types/errors' { + interface AugmentedErrors { + assetRate: { + /** + * The given asset ID already has an assigned conversion rate and cannot be re-created. + **/ + AlreadyExists: AugmentedError; + /** + * Overflow ocurred when calculating the inverse rate. + **/ + Overflow: AugmentedError; + /** + * The given asset ID is unknown. + **/ + UnknownAssetKind: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + auctions: { + /** + * The para is already leased out for part of this range. + **/ + AlreadyLeasedOut: AugmentedError; + /** + * Auction has already ended. + **/ + AuctionEnded: AugmentedError; + /** + * This auction is already in progress. + **/ + AuctionInProgress: AugmentedError; + /** + * The lease period is in the past. + **/ + LeasePeriodInPast: AugmentedError; + /** + * Not an auction. + **/ + NotAuction: AugmentedError; + /** + * Not a current auction. + **/ + NotCurrentAuction: AugmentedError; + /** + * Para is not registered + **/ + ParaNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + babe: { + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * Submitted configuration is invalid. + **/ + InvalidConfiguration: AugmentedError; + /** + * An equivocation proof provided as part of an equivocation report is invalid. + **/ + InvalidEquivocationProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + beefy: { + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * Submitted configuration is invalid. + **/ + InvalidConfiguration: AugmentedError; + /** + * A double voting proof provided as part of an equivocation report is invalid. + **/ + InvalidDoubleVotingProof: AugmentedError; + /** + * The session of the equivocation proof is invalid + **/ + InvalidEquivocationProofSession: AugmentedError; + /** + * A fork voting proof provided as part of an equivocation report is invalid. + **/ + InvalidForkVotingProof: AugmentedError; + /** + * A future block voting proof provided as part of an equivocation report is invalid. + **/ + InvalidFutureBlockVotingProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bounties: { + /** + * The bounty cannot be closed because it has active child bounties. + **/ + HasActiveChildBounty: AugmentedError; + /** + * Proposer's balance is too low. + **/ + InsufficientProposersBalance: AugmentedError; + /** + * Invalid bounty fee. + **/ + InvalidFee: AugmentedError; + /** + * No proposal or bounty at that index. + **/ + InvalidIndex: AugmentedError; + /** + * Invalid bounty value. + **/ + InvalidValue: AugmentedError; + /** + * User is not the proposer of the bounty. + **/ + NotProposer: AugmentedError; + /** + * A bounty payout is pending. + * To cancel the bounty, you must unassign and slash the curator. + **/ + PendingPayout: AugmentedError; + /** + * The bounties cannot be claimed/closed because it's still in the countdown period. + **/ + Premature: AugmentedError; + /** + * The reason given is just too big. + **/ + ReasonTooBig: AugmentedError; + /** + * Require bounty curator. + **/ + RequireCurator: AugmentedError; + /** + * Too many approvals are already queued. + **/ + TooManyQueued: AugmentedError; + /** + * The bounty status is unexpected. + **/ + UnexpectedStatus: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + childBounties: { + /** + * The bounty balance is not enough to add new child-bounty. + **/ + InsufficientBountyBalance: AugmentedError; + /** + * The parent bounty is not in active state. + **/ + ParentBountyNotActive: AugmentedError; + /** + * Number of child bounties exceeds limit `MaxActiveChildBountyCount`. + **/ + TooManyChildBounties: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + claims: { + /** + * Invalid Ethereum signature. + **/ + InvalidEthereumSignature: AugmentedError; + /** + * A needed statement was not included. + **/ + InvalidStatement: AugmentedError; + /** + * There's not enough in the pot to pay out some unvested amount. Generally implies a + * logic error. + **/ + PotUnderflow: AugmentedError; + /** + * Account ID sending transaction has no claim. + **/ + SenderHasNoClaim: AugmentedError; + /** + * Ethereum address has no claim. + **/ + SignerHasNoClaim: AugmentedError; + /** + * The account already has a vested balance. + **/ + VestedBalanceExists: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + configuration: { + /** + * The new value for a configuration parameter is invalid. + **/ + InvalidNewValue: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + convictionVoting: { + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed through `remove_vote`. + **/ + AlreadyVoting: AugmentedError; + /** + * The class ID supplied is invalid. + **/ + BadClass: AugmentedError; + /** + * The class must be supplied since it is not easily determinable from the state. + **/ + ClassNeeded: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * The actor has no permission to conduct the action right now but will do in the future. + **/ + NoPermissionYet: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Poll is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * The given account did not vote on the poll. + **/ + NotVoter: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + coretime: { + /** + * Failed to transfer assets to the coretime chain + **/ + AssetTransferFailed: AugmentedError; + /** + * The paraid making the call is not the coretime brokerage system parachain. + **/ + NotBroker: AugmentedError; + /** + * Requested revenue information `when` parameter was in the future from the current + * block height. + **/ + RequestedFutureRevenue: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + coretimeAssignmentProvider: { + AssignmentsEmpty: AugmentedError; + /** + * assign_core is only allowed to append new assignments at the end of already existing + * ones or update the last entry. + **/ + DisallowedInsert: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + crowdloan: { + /** + * The fund is already in `NewRaise` + **/ + AlreadyInNewRaise: AugmentedError; + /** + * This parachain's bid or lease is still active and withdraw cannot yet begin. + **/ + BidOrLeaseActive: AugmentedError; + /** + * The campaign ends before the current block number. The end must be in the future. + **/ + CannotEndInPast: AugmentedError; + /** + * Contributions exceed maximum amount. + **/ + CapExceeded: AugmentedError; + /** + * The contribution period has already ended. + **/ + ContributionPeriodOver: AugmentedError; + /** + * The contribution was below the minimum, `MinContribution`. + **/ + ContributionTooSmall: AugmentedError; + /** + * The end date for this crowdloan is not sensible. + **/ + EndTooFarInFuture: AugmentedError; + /** + * The current lease period is more than the first lease period. + **/ + FirstPeriodInPast: AugmentedError; + /** + * The first lease period needs to at least be less than 3 `max_value`. + **/ + FirstPeriodTooFarInFuture: AugmentedError; + /** + * The crowdloan has not yet ended. + **/ + FundNotEnded: AugmentedError; + /** + * The origin of this call is invalid. + **/ + InvalidOrigin: AugmentedError; + /** + * Invalid fund index. + **/ + InvalidParaId: AugmentedError; + /** + * Invalid signature. + **/ + InvalidSignature: AugmentedError; + /** + * Last lease period must be greater than first lease period. + **/ + LastPeriodBeforeFirstPeriod: AugmentedError; + /** + * The last lease period cannot be more than 3 periods after the first period. + **/ + LastPeriodTooFarInFuture: AugmentedError; + /** + * This parachain lease is still active and retirement cannot yet begin. + **/ + LeaseActive: AugmentedError; + /** + * The provided memo is too large. + **/ + MemoTooLarge: AugmentedError; + /** + * There are no contributions stored in this crowdloan. + **/ + NoContributions: AugmentedError; + /** + * A lease period has not started yet, due to an offset in the starting block. + **/ + NoLeasePeriod: AugmentedError; + /** + * This crowdloan does not correspond to a parachain. + **/ + NotParachain: AugmentedError; + /** + * The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement + * period. + **/ + NotReadyToDissolve: AugmentedError; + /** + * There was an overflow. + **/ + Overflow: AugmentedError; + /** + * No contributions allowed during the VRF delay + **/ + VrfDelayInProgress: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + delegatedStaking: { + /** + * An existing staker cannot perform this action. + **/ + AlreadyStaking: AugmentedError; + /** + * Some corruption in internal state. + **/ + BadState: AugmentedError; + /** + * Delegation conditions are not met. + * + * Possible issues are + * 1) Cannot delegate to self, + * 2) Cannot delegate to multiple delegates. + **/ + InvalidDelegation: AugmentedError; + /** + * Reward Destination cannot be same as `Agent` account. + **/ + InvalidRewardDestination: AugmentedError; + /** + * Not an existing `Agent` account. + **/ + NotAgent: AugmentedError; + /** + * The account cannot perform this operation. + **/ + NotAllowed: AugmentedError; + /** + * Not a Delegator account. + **/ + NotDelegator: AugmentedError; + /** + * The account does not have enough funds to perform the operation. + **/ + NotEnoughFunds: AugmentedError; + /** + * `Agent` has no pending slash to be applied. + **/ + NothingToSlash: AugmentedError; + /** + * Operation not supported by this pallet. + **/ + NotSupported: AugmentedError; + /** + * Unapplied pending slash restricts operation on `Agent`. + **/ + UnappliedSlash: AugmentedError; + /** + * Failed to withdraw amount from Core Staking. + **/ + WithdrawFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + electionProviderMultiPhase: { + /** + * Some bound not met + **/ + BoundNotMet: AugmentedError; + /** + * The call is not allowed at this point. + **/ + CallNotAllowed: AugmentedError; + /** + * The fallback failed + **/ + FallbackFailed: AugmentedError; + /** + * `Self::insert_submission` returned an invalid index. + **/ + InvalidSubmissionIndex: AugmentedError; + /** + * Snapshot metadata should exist but didn't. + **/ + MissingSnapshotMetadata: AugmentedError; + /** + * OCW submitted solution for wrong round + **/ + OcwCallWrongEra: AugmentedError; + /** + * Submission was prepared for a different round. + **/ + PreDispatchDifferentRound: AugmentedError; + /** + * Submission was too early. + **/ + PreDispatchEarlySubmission: AugmentedError; + /** + * Submission was too weak, score-wise. + **/ + PreDispatchWeakSubmission: AugmentedError; + /** + * Wrong number of winners presented. + **/ + PreDispatchWrongWinnerCount: AugmentedError; + /** + * The origin failed to pay the deposit. + **/ + SignedCannotPayDeposit: AugmentedError; + /** + * Witness data to dispatchable is invalid. + **/ + SignedInvalidWitness: AugmentedError; + /** + * The queue was full, and the solution was not better than any of the existing ones. + **/ + SignedQueueFull: AugmentedError; + /** + * The signed submission consumes too much weight + **/ + SignedTooMuchWeight: AugmentedError; + /** + * Submitted solution has too many winners + **/ + TooManyWinners: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fastUnstake: { + /** + * The provided un-staker is already in Head, and cannot deregister. + **/ + AlreadyHead: AugmentedError; + /** + * The bonded account has already been queued. + **/ + AlreadyQueued: AugmentedError; + /** + * The call is not allowed at this point because the pallet is not active. + **/ + CallNotAllowed: AugmentedError; + /** + * The provided Controller account was not found. + * + * This means that the given account is not bonded. + **/ + NotController: AugmentedError; + /** + * The bonded account has active unlocking chunks. + **/ + NotFullyBonded: AugmentedError; + /** + * The provided un-staker is not in the `Queue`. + **/ + NotQueued: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fellowshipCollective: { + /** + * Account is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * Unexpected error in state. + **/ + Corruption: AugmentedError; + /** + * The information provided is incorrect. + **/ + InvalidWitness: AugmentedError; + /** + * There are no further records to be removed. + **/ + NoneRemaining: AugmentedError; + /** + * The origin is not sufficiently privileged to do the operation. + **/ + NoPermission: AugmentedError; + /** + * Account is not a member. + **/ + NotMember: AugmentedError; + /** + * The given poll index is unknown or has closed. + **/ + NotPolling: AugmentedError; + /** + * The given poll is still ongoing. + **/ + Ongoing: AugmentedError; + /** + * The member's rank is too low to vote. + **/ + RankTooLow: AugmentedError; + /** + * The new member to exchange is the same as the old member + **/ + SameMember: AugmentedError; + /** + * The max member count for the rank has been reached. + **/ + TooManyMembers: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fellowshipReferenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + grandpa: { + /** + * Attempt to signal GRANDPA change with one already pending. + **/ + ChangePending: AugmentedError; + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * An equivocation proof provided as part of an equivocation report is invalid. + **/ + InvalidEquivocationProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Attempt to signal GRANDPA pause when the authority set isn't live + * (either paused or already pending pause). + **/ + PauseFailed: AugmentedError; + /** + * Attempt to signal GRANDPA resume when the authority set isn't paused + * (either live or already pending resume). + **/ + ResumeFailed: AugmentedError; + /** + * Cannot signal forced change so soon after last. + **/ + TooSoon: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + hrmp: { + /** + * The channel is already confirmed. + **/ + AcceptHrmpChannelAlreadyConfirmed: AugmentedError; + /** + * The channel from the sender to the origin doesn't exist. + **/ + AcceptHrmpChannelDoesntExist: AugmentedError; + /** + * The recipient already has the maximum number of allowed inbound channels. + **/ + AcceptHrmpChannelLimitExceeded: AugmentedError; + /** + * Canceling is requested by neither the sender nor recipient of the open channel request. + **/ + CancelHrmpOpenChannelUnauthorized: AugmentedError; + /** + * The channel between these two chains cannot be authorized. + **/ + ChannelCreationNotAuthorized: AugmentedError; + /** + * The channel close request is already requested. + **/ + CloseHrmpChannelAlreadyUnderway: AugmentedError; + /** + * The channel to be closed doesn't exist. + **/ + CloseHrmpChannelDoesntExist: AugmentedError; + /** + * The origin tries to close a channel where it is neither the sender nor the recipient. + **/ + CloseHrmpChannelUnauthorized: AugmentedError; + /** + * Cannot cancel an HRMP open channel request because it is already confirmed. + **/ + OpenHrmpChannelAlreadyConfirmed: AugmentedError; + /** + * The channel already exists + **/ + OpenHrmpChannelAlreadyExists: AugmentedError; + /** + * There is already a request to open the same channel. + **/ + OpenHrmpChannelAlreadyRequested: AugmentedError; + /** + * The requested capacity exceeds the global limit. + **/ + OpenHrmpChannelCapacityExceedsLimit: AugmentedError; + /** + * The open request doesn't exist. + **/ + OpenHrmpChannelDoesntExist: AugmentedError; + /** + * The recipient is not a valid para. + **/ + OpenHrmpChannelInvalidRecipient: AugmentedError; + /** + * The sender already has the maximum number of allowed outbound channels. + **/ + OpenHrmpChannelLimitExceeded: AugmentedError; + /** + * The open request requested the message size that exceeds the global limit. + **/ + OpenHrmpChannelMessageSizeExceedsLimit: AugmentedError; + /** + * The sender tried to open a channel to themselves. + **/ + OpenHrmpChannelToSelf: AugmentedError; + /** + * The requested capacity is zero. + **/ + OpenHrmpChannelZeroCapacity: AugmentedError; + /** + * The requested maximum message size is 0. + **/ + OpenHrmpChannelZeroMessageSize: AugmentedError; + /** + * The provided witness data is wrong. + **/ + WrongWitness: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + indices: { + /** + * The index was not available. + **/ + InUse: AugmentedError; + /** + * The index was not already assigned. + **/ + NotAssigned: AugmentedError; + /** + * The index is assigned to another account. + **/ + NotOwner: AugmentedError; + /** + * The source and destination accounts are identical. + **/ + NotTransfer: AugmentedError; + /** + * The index is permanent and may not be freed/changed. + **/ + Permanent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multisig: { + /** + * Call is already approved by this signatory. + **/ + AlreadyApproved: AugmentedError; + /** + * The data to be stored is already stored. + **/ + AlreadyStored: AugmentedError; + /** + * The maximum weight information provided was too low. + **/ + MaxWeightTooLow: AugmentedError; + /** + * Threshold must be 2 or greater. + **/ + MinimumThreshold: AugmentedError; + /** + * Call doesn't need any (more) approvals. + **/ + NoApprovalsNeeded: AugmentedError; + /** + * Multisig operation not found in storage. + **/ + NotFound: AugmentedError; + /** + * No timepoint was given, yet the multisig operation is already underway. + **/ + NoTimepoint: AugmentedError; + /** + * Only the account that originally created the multisig is able to cancel it or update + * its deposits. + **/ + NotOwner: AugmentedError; + /** + * The sender was contained in the other signatories; it shouldn't be. + **/ + SenderInSignatories: AugmentedError; + /** + * The signatories were provided out of order; they should be ordered. + **/ + SignatoriesOutOfOrder: AugmentedError; + /** + * There are too few signatories in the list. + **/ + TooFewSignatories: AugmentedError; + /** + * There are too many signatories in the list. + **/ + TooManySignatories: AugmentedError; + /** + * A timepoint was given, yet no multisig operation is underway. + **/ + UnexpectedTimepoint: AugmentedError; + /** + * A different timepoint was given to the multisig operation that is underway. + **/ + WrongTimepoint: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nominationPools: { + /** + * An account is already delegating in another pool. An account may only belong to one + * pool at a time. + **/ + AccountBelongsToOtherPool: AugmentedError; + /** + * The pool or member delegation has already migrated to delegate stake. + **/ + AlreadyMigrated: AugmentedError; + /** + * Bonding extra is restricted to the exact pending reward amount. + **/ + BondExtraRestricted: AugmentedError; + /** + * The pools state cannot be changed. + **/ + CanNotChangeState: AugmentedError; + /** + * None of the funds can be withdrawn yet because the bonding duration has not passed. + **/ + CannotWithdrawAny: AugmentedError; + /** + * The submitted changes to commission change rate are not allowed. + **/ + CommissionChangeRateNotAllowed: AugmentedError; + /** + * Not enough blocks have surpassed since the last commission update. + **/ + CommissionChangeThrottled: AugmentedError; + /** + * The supplied commission exceeds global maximum commission. + **/ + CommissionExceedsGlobalMaximum: AugmentedError; + /** + * The supplied commission exceeds the max allowed commission. + **/ + CommissionExceedsMaximum: AugmentedError; + /** + * Some error occurred that should never happen. This should be reported to the + * maintainers. + **/ + Defensive: AugmentedError; + /** + * The caller does not have adequate permissions. + **/ + DoesNotHavePermission: AugmentedError; + /** + * The member is fully unbonded (and thus cannot access the bonded and reward pool + * anymore to, for example, collect rewards). + **/ + FullyUnbonding: AugmentedError; + /** + * Pool id provided is not correct/usable. + **/ + InvalidPoolId: AugmentedError; + /** + * The pool's max commission cannot be set higher than the existing value. + **/ + MaxCommissionRestricted: AugmentedError; + /** + * Too many members in the pool or system. + **/ + MaxPoolMembers: AugmentedError; + /** + * The system is maxed out on pools. + **/ + MaxPools: AugmentedError; + /** + * The member cannot unbond further chunks due to reaching the limit. + **/ + MaxUnbondingLimit: AugmentedError; + /** + * Metadata exceeds [`Config::MaxMetadataLen`] + **/ + MetadataExceedsMaxLen: AugmentedError; + /** + * The amount does not meet the minimum bond to either join or create a pool. + * + * The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The + * caller does not have nominating permissions for the pool. Members can never unbond to a + * value below `MinJoinBond`. + **/ + MinimumBondNotMet: AugmentedError; + /** + * No commission current has been set. + **/ + NoCommissionCurrentSet: AugmentedError; + /** + * There is no pending commission to claim. + **/ + NoPendingCommission: AugmentedError; + /** + * A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for + * other members to be permissionlessly unbonded. + **/ + NotDestroying: AugmentedError; + /** + * No imbalance in the ED deposit for the pool. + **/ + NothingToAdjust: AugmentedError; + /** + * No slash pending that can be applied to the member. + **/ + NothingToSlash: AugmentedError; + /** + * Either a) the caller cannot make a valid kick or b) the pool is not destroying. + **/ + NotKickerOrDestroying: AugmentedError; + /** + * The pool or member delegation has not migrated yet to delegate stake. + **/ + NotMigrated: AugmentedError; + /** + * The caller does not have nominating permissions for the pool. + **/ + NotNominator: AugmentedError; + /** + * The pool is not open to join + **/ + NotOpen: AugmentedError; + /** + * This call is not allowed in the current state of the pallet. + **/ + NotSupported: AugmentedError; + /** + * The transaction could not be executed due to overflow risk for the pool. + **/ + OverflowRisk: AugmentedError; + /** + * Partial unbonding now allowed permissionlessly. + **/ + PartialUnbondNotAllowedPermissionlessly: AugmentedError; + /** + * Pool id currently in use. + **/ + PoolIdInUse: AugmentedError; + /** + * An account is not a member. + **/ + PoolMemberNotFound: AugmentedError; + /** + * A (bonded) pool id does not exist. + **/ + PoolNotFound: AugmentedError; + /** + * Account is restricted from participation in pools. This may happen if the account is + * staking in another way already. + **/ + Restricted: AugmentedError; + /** + * A reward pool does not exist. In all cases this is a system logic error. + **/ + RewardPoolNotFound: AugmentedError; + /** + * The slash amount is too low to be applied. + **/ + SlashTooLow: AugmentedError; + /** + * A sub pool does not exist. + **/ + SubPoolsNotFound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + onDemandAssignmentProvider: { + /** + * The account doesn't have enough credits to purchase on-demand coretime. + **/ + InsufficientCredits: AugmentedError; + /** + * The order queue is full, `place_order` will not continue. + **/ + QueueFull: AugmentedError; + /** + * The current spot price is higher than the max amount specified in the `place_order` + * call, making it invalid. + **/ + SpotPriceHigherThanMaxAmount: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paraInclusion: { + /** + * The candidate's relay-parent was not allowed. Either it was + * not recent enough or it didn't advance based on the last parachain block. + **/ + DisallowedRelayParent: AugmentedError; + /** + * Head data exceeds the configured maximum. + **/ + HeadDataTooLarge: AugmentedError; + /** + * The candidate didn't follow the rules of HRMP watermark advancement. + **/ + HrmpWatermarkMishandling: AugmentedError; + /** + * The downward message queue is not processed correctly. + **/ + IncorrectDownwardMessageHandling: AugmentedError; + /** + * Insufficient (non-majority) backing. + **/ + InsufficientBacking: AugmentedError; + /** + * Failed to compute group index for the core: either it's out of bounds + * or the relay parent doesn't belong to the current session. + **/ + InvalidAssignment: AugmentedError; + /** + * Invalid (bad signature, unknown validator, etc.) backing. + **/ + InvalidBacking: AugmentedError; + /** + * Invalid group index in core assignment. + **/ + InvalidGroupIndex: AugmentedError; + /** + * The HRMP messages sent by the candidate is not valid. + **/ + InvalidOutboundHrmp: AugmentedError; + /** + * At least one upward message sent does not pass the acceptance criteria. + **/ + InvalidUpwardMessages: AugmentedError; + /** + * The validation code hash of the candidate is not valid. + **/ + InvalidValidationCodeHash: AugmentedError; + /** + * Output code is too large + **/ + NewCodeTooLarge: AugmentedError; + /** + * The `para_head` hash in the candidate descriptor doesn't match the hash of the actual + * para head in the commitments. + **/ + ParaHeadMismatch: AugmentedError; + /** + * Code upgrade prematurely. + **/ + PrematureCodeUpgrade: AugmentedError; + /** + * Candidate submitted but para not scheduled. + **/ + UnscheduledCandidate: AugmentedError; + /** + * The validation data hash does not match expected. + **/ + ValidationDataHashMismatch: AugmentedError; + /** + * Validator index out of bounds. + **/ + ValidatorIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paraInherent: { + /** + * Inherent data was filtered during execution. This should have only been done + * during creation. + **/ + InherentDataFilteredDuringExecution: AugmentedError; + /** + * The hash of the submitted parent header doesn't correspond to the saved block hash of + * the parent. + **/ + InvalidParentHeader: AugmentedError; + /** + * Inclusion inherent called more than once per block. + **/ + TooManyInclusionInherents: AugmentedError; + /** + * Too many candidates supplied. + **/ + UnscheduledCandidate: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paras: { + /** + * Para cannot be downgraded to an on-demand parachain. + **/ + CannotDowngrade: AugmentedError; + /** + * Para cannot be offboarded at this time. + **/ + CannotOffboard: AugmentedError; + /** + * Para cannot be onboarded because it is already tracked by our system. + **/ + CannotOnboard: AugmentedError; + /** + * Para cannot be upgraded to a lease holding parachain. + **/ + CannotUpgrade: AugmentedError; + /** + * Parachain cannot currently schedule a code upgrade. + **/ + CannotUpgradeCode: AugmentedError; + /** + * Invalid block number. + **/ + InvalidBlockNumber: AugmentedError; + /** + * Invalid validation code size. + **/ + InvalidCode: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * Para is not registered in our system. + **/ + NotRegistered: AugmentedError; + /** + * The given validator already has cast a vote. + **/ + PvfCheckDoubleVote: AugmentedError; + /** + * The signature for the PVF pre-checking is invalid. + **/ + PvfCheckInvalidSignature: AugmentedError; + /** + * The statement for PVF pre-checking is for a future session. + **/ + PvfCheckStatementFuture: AugmentedError; + /** + * The statement for PVF pre-checking is stale. + **/ + PvfCheckStatementStale: AugmentedError; + /** + * The given PVF does not exist at the moment of process a vote. + **/ + PvfCheckSubjectInvalid: AugmentedError; + /** + * Claimed validator index is out of bounds. + **/ + PvfCheckValidatorIndexOutOfBounds: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parasDisputes: { + /** + * Ancient dispute statement provided. + **/ + AncientDisputeStatement: AugmentedError; + /** + * Duplicate dispute statement sets provided. + **/ + DuplicateDisputeStatementSets: AugmentedError; + /** + * Validator vote submitted more than once to dispute. + **/ + DuplicateStatement: AugmentedError; + /** + * Invalid signature on statement. + **/ + InvalidSignature: AugmentedError; + /** + * A dispute vote from a malicious backer. + **/ + MaliciousBacker: AugmentedError; + /** + * No backing votes were provides along dispute statements. + **/ + MissingBackingVotes: AugmentedError; + /** + * A dispute where there are only votes on one side. + **/ + SingleSidedDispute: AugmentedError; + /** + * Unconfirmed dispute statement sets provided. + **/ + UnconfirmedDispute: AugmentedError; + /** + * Validator index on statement is out of bounds for session. + **/ + ValidatorIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parasSlashing: { + /** + * The given slashing report is valid but already previously reported. + **/ + DuplicateSlashingReport: AugmentedError; + /** + * The candidate hash is invalid. + **/ + InvalidCandidateHash: AugmentedError; + /** + * The key ownership proof is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * The session index is too old or invalid. + **/ + InvalidSessionIndex: AugmentedError; + /** + * There is no pending slash for the given validator index and time + * slot. + **/ + InvalidValidatorIndex: AugmentedError; + /** + * The validator index does not match the validator id. + **/ + ValidatorIndexIdMismatch: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + preimage: { + /** + * Preimage has already been noted on-chain. + **/ + AlreadyNoted: AugmentedError; + /** + * The user is not authorized to perform this action. + **/ + NotAuthorized: AugmentedError; + /** + * The preimage cannot be removed since it has not yet been noted. + **/ + NotNoted: AugmentedError; + /** + * The preimage request cannot be removed since no outstanding requests exist. + **/ + NotRequested: AugmentedError; + /** + * A preimage may not be removed when there are outstanding requests. + **/ + Requested: AugmentedError; + /** + * Preimage is too large to store on-chain. + **/ + TooBig: AugmentedError; + /** + * Too few hashes were requested to be upgraded (i.e. zero). + **/ + TooFew: AugmentedError; + /** + * More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once. + **/ + TooMany: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proxy: { + /** + * Account is already a proxy. + **/ + Duplicate: AugmentedError; + /** + * Call may not be made by proxy because it may escalate its privileges. + **/ + NoPermission: AugmentedError; + /** + * Cannot add self as proxy. + **/ + NoSelfProxy: AugmentedError; + /** + * Proxy registration not found. + **/ + NotFound: AugmentedError; + /** + * Sender is not a proxy of the account to be proxied. + **/ + NotProxy: AugmentedError; + /** + * There are too many proxies registered or too many announcements pending. + **/ + TooMany: AugmentedError; + /** + * Announcement, if made at all, was made too recently. + **/ + Unannounced: AugmentedError; + /** + * A call which is incompatible with the proxy type's filter was attempted. + **/ + Unproxyable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + rcMigrator: { + /** + * The account is referenced by some other pallet. It might have freezes or holds. + **/ + AccountReferenced: AugmentedError; + /** + * The AH UMP queue priority configuration is already set. + **/ + AhUmpQueuePriorityAlreadySet: AugmentedError; + /** + * The XCM version is invalid. + **/ + BadXcmVersion: AugmentedError; + /** + * Balance accounting overflow. + **/ + BalanceOverflow: AugmentedError; + /** + * Balance accounting underflow. + **/ + BalanceUnderflow: AugmentedError; + /** + * Indicates that there is not enough time for staking to lock. + * + * Schedule the migration at least two sessions before the current era ends. + **/ + EraEndsTooSoon: AugmentedError; + /** + * Failed to withdraw account from RC for migration to AH. + **/ + FailedToWithdrawAccount: AugmentedError; + /** + * The origin is invalid. + **/ + InvalidOrigin: AugmentedError; + /** + * Invalid parameter. + **/ + InvalidParameter: AugmentedError; + /** + * The query response is invalid. + **/ + InvalidQueryResponse: AugmentedError; + /** + * The stage transition is invalid. + **/ + InvalidStageTransition: AugmentedError; + OutOfWeight: AugmentedError; + /** + * Indicates that the specified block number is in the past. + **/ + PastBlockNumber: AugmentedError; + /** + * The xcm query was not found. + **/ + QueryNotFound: AugmentedError; + Unreachable: AugmentedError; + /** + * The migration stage is not reachable from the current stage. + **/ + UnreachableStage: AugmentedError; + /** + * Failed to send XCM message to AH. + **/ + XcmError: AugmentedError; + /** + * Failed to send XCM message. + **/ + XcmSendError: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + recovery: { + /** + * This account is already set up for recovery + **/ + AlreadyProxy: AugmentedError; + /** + * This account is already set up for recovery + **/ + AlreadyRecoverable: AugmentedError; + /** + * A recovery process has already started for this account + **/ + AlreadyStarted: AugmentedError; + /** + * This user has already vouched for this recovery + **/ + AlreadyVouched: AugmentedError; + /** + * Some internal state is broken. + **/ + BadState: AugmentedError; + /** + * The friend must wait until the delay period to vouch for this recovery + **/ + DelayPeriod: AugmentedError; + /** + * Friends list must be less than max friends + **/ + MaxFriends: AugmentedError; + /** + * User is not allowed to make a call on behalf of this account + **/ + NotAllowed: AugmentedError; + /** + * Friends list must be greater than zero and threshold + **/ + NotEnoughFriends: AugmentedError; + /** + * This account is not a friend who can vouch + **/ + NotFriend: AugmentedError; + /** + * This account is not set up for recovery + **/ + NotRecoverable: AugmentedError; + /** + * Friends list must be sorted and free of duplicates + **/ + NotSorted: AugmentedError; + /** + * A recovery process has not started for this rescuer + **/ + NotStarted: AugmentedError; + /** + * There are still active recovery attempts that need to be closed + **/ + StillActive: AugmentedError; + /** + * The threshold for recovering this account has not been met + **/ + Threshold: AugmentedError; + /** + * Threshold must be greater than zero + **/ + ZeroThreshold: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + referenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + registrar: { + /** + * The ID is already registered. + **/ + AlreadyRegistered: AugmentedError; + /** + * Cannot deregister para + **/ + CannotDeregister: AugmentedError; + /** + * Cannot schedule downgrade of lease holding parachain to on-demand parachain + **/ + CannotDowngrade: AugmentedError; + /** + * Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras + * are correct for the swap to work. + **/ + CannotSwap: AugmentedError; + /** + * Cannot schedule upgrade of on-demand parachain to lease holding parachain + **/ + CannotUpgrade: AugmentedError; + /** + * Invalid para code size. + **/ + CodeTooLarge: AugmentedError; + /** + * Invalid para head data size. + **/ + HeadDataTooLarge: AugmentedError; + /** + * The validation code is invalid. + **/ + InvalidCode: AugmentedError; + /** + * The caller is not the owner of this Id. + **/ + NotOwner: AugmentedError; + /** + * Para is not a Parachain. + **/ + NotParachain: AugmentedError; + /** + * Para is not a Parathread (on-demand parachain). + **/ + NotParathread: AugmentedError; + /** + * The ID is not registered. + **/ + NotRegistered: AugmentedError; + /** + * The ID given for registration has not been reserved. + **/ + NotReserved: AugmentedError; + /** + * Para is locked from manipulation by the manager. Must use parachain or relay chain + * governance. + **/ + ParaLocked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + scheduler: { + /** + * Failed to schedule a call + **/ + FailedToSchedule: AugmentedError; + /** + * Attempt to use a non-named function on a named task. + **/ + Named: AugmentedError; + /** + * Cannot find the scheduled call. + **/ + NotFound: AugmentedError; + /** + * Reschedule failed because it does not change scheduled time. + **/ + RescheduleNoChange: AugmentedError; + /** + * Given target block number is in the past. + **/ + TargetBlockNumberInPast: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + slots: { + /** + * There was an error with the lease. + **/ + LeaseError: AugmentedError; + /** + * The parachain ID is not onboarding. + **/ + ParaNotOnboarding: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + society: { + /** + * User has already made a bid. + **/ + AlreadyBid: AugmentedError; + /** + * User is already a candidate. + **/ + AlreadyCandidate: AugmentedError; + /** + * The member is already elevated to this rank. + **/ + AlreadyElevated: AugmentedError; + /** + * Society already founded. + **/ + AlreadyFounded: AugmentedError; + /** + * User is already a member. + **/ + AlreadyMember: AugmentedError; + /** + * The skeptic has already been punished for this offence. + **/ + AlreadyPunished: AugmentedError; + /** + * Member is already vouching or banned from vouching again. + **/ + AlreadyVouching: AugmentedError; + /** + * The candidacy cannot be dropped as the candidate was clearly approved. + **/ + Approved: AugmentedError; + /** + * The skeptic need not vote on candidates from expired rounds. + **/ + Expired: AugmentedError; + /** + * Cannot remove the founder. + **/ + Founder: AugmentedError; + /** + * Cannot remove the head of the chain. + **/ + Head: AugmentedError; + /** + * The candidacy cannot be concluded as the voting is still in progress. + **/ + InProgress: AugmentedError; + /** + * Funds are insufficient to pay off society debts. + **/ + InsufficientFunds: AugmentedError; + /** + * Not enough in pot to accept candidate. + **/ + InsufficientPot: AugmentedError; + /** + * Too many members in the society. + **/ + MaxMembers: AugmentedError; + /** + * There is no defender currently. + **/ + NoDefender: AugmentedError; + /** + * There is no deposit associated with a bid. + **/ + NoDeposit: AugmentedError; + /** + * Nothing to payout. + **/ + NoPayout: AugmentedError; + /** + * The membership cannot be claimed as the candidate was not clearly approved. + **/ + NotApproved: AugmentedError; + /** + * User is not a bidder. + **/ + NotBidder: AugmentedError; + /** + * User is not a candidate. + **/ + NotCandidate: AugmentedError; + /** + * The caller is not the founder. + **/ + NotFounder: AugmentedError; + /** + * Group doesn't exist. + **/ + NotGroup: AugmentedError; + /** + * The caller is not the head. + **/ + NotHead: AugmentedError; + /** + * User is not a member. + **/ + NotMember: AugmentedError; + /** + * The candidate cannot be kicked as the candidate was not clearly rejected. + **/ + NotRejected: AugmentedError; + /** + * User is not suspended. + **/ + NotSuspended: AugmentedError; + /** + * Member is not vouching. + **/ + NotVouchingOnBidder: AugmentedError; + /** + * The candidate/defender has no stale votes to remove. + **/ + NoVotes: AugmentedError; + /** + * The candidacy cannot be bestowed as the candidate was clearly rejected. + **/ + Rejected: AugmentedError; + /** + * User is suspended. + **/ + Suspended: AugmentedError; + /** + * The candidacy cannot be pruned until a full additional intake period has passed. + **/ + TooEarly: AugmentedError; + /** + * The skeptic already voted. + **/ + Voted: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + staking: { + /** + * Stash is already bonded. + **/ + AlreadyBonded: AugmentedError; + /** + * Rewards for this era have already been claimed for this validator. + **/ + AlreadyClaimed: AugmentedError; + /** + * The stake of this account is already migrated to `Fungible` holds. + **/ + AlreadyMigrated: AugmentedError; + /** + * Controller is already paired. + **/ + AlreadyPaired: AugmentedError; + /** + * Internal state has become somehow corrupted and the operation cannot continue. + **/ + BadState: AugmentedError; + /** + * A nomination target was supplied that was blocked or otherwise not a validator. + **/ + BadTarget: AugmentedError; + /** + * Some bound is not met. + **/ + BoundNotMet: AugmentedError; + /** + * The user has enough bond and thus cannot be chilled forcefully by an external person. + **/ + CannotChillOther: AugmentedError; + /** + * Stash could not be reaped as other pallet might depend on it. + **/ + CannotReapStash: AugmentedError; + /** + * Cannot reset a ledger. + **/ + CannotRestoreLedger: AugmentedError; + /** + * Commission is too low. Must be at least `MinCommission`. + **/ + CommissionTooLow: AugmentedError; + /** + * Used when attempting to use deprecated controller account logic. + **/ + ControllerDeprecated: AugmentedError; + /** + * Duplicate index. + **/ + DuplicateIndex: AugmentedError; + /** + * Targets cannot be empty. + **/ + EmptyTargets: AugmentedError; + /** + * Attempting to target a stash that still has funds. + **/ + FundedTarget: AugmentedError; + /** + * Incorrect previous history depth input provided. + **/ + IncorrectHistoryDepth: AugmentedError; + /** + * Incorrect number of slashing spans provided. + **/ + IncorrectSlashingSpans: AugmentedError; + /** + * Cannot have a validator or nominator role, with value less than the minimum defined by + * governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the + * intention, `chill` first to remove one's role as validator/nominator. + **/ + InsufficientBond: AugmentedError; + /** + * Invalid era to reward. + **/ + InvalidEraToReward: AugmentedError; + /** + * Invalid number of nominations. + **/ + InvalidNumberOfNominations: AugmentedError; + /** + * No nominators exist on this page. + **/ + InvalidPage: AugmentedError; + /** + * Slash record index out of bounds. + **/ + InvalidSlashIndex: AugmentedError; + /** + * Can not schedule more unlock chunks. + **/ + NoMoreChunks: AugmentedError; + /** + * Not a controller account. + **/ + NotController: AugmentedError; + /** + * Not enough funds available to withdraw. + **/ + NotEnoughFunds: AugmentedError; + /** + * Items are not sorted and unique. + **/ + NotSortedAndUnique: AugmentedError; + /** + * Not a stash account. + **/ + NotStash: AugmentedError; + /** + * Can not rebond without unlocking chunks. + **/ + NoUnlockChunk: AugmentedError; + /** + * Account is restricted from participation in staking. This may happen if the account is + * staking in another way already, such as via pool. + **/ + Restricted: AugmentedError; + /** + * Provided reward destination is not allowed. + **/ + RewardDestinationRestricted: AugmentedError; + /** + * There are too many nominators in the system. Governance needs to adjust the staking + * settings to keep things safe for the runtime. + **/ + TooManyNominators: AugmentedError; + /** + * Too many nomination targets supplied. + **/ + TooManyTargets: AugmentedError; + /** + * There are too many validator candidates in the system. Governance needs to adjust the + * staking settings to keep things safe for the runtime. + **/ + TooManyValidators: AugmentedError; + /** + * Operation not allowed for virtual stakers. + **/ + VirtualStakerNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + stakingAhClient: { + /** + * Could not process incoming message because incoming messages are blocked. + **/ + Blocked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + treasury: { + /** + * The payment has already been attempted. + **/ + AlreadyAttempted: AugmentedError; + /** + * The spend is not yet eligible for payout. + **/ + EarlyPayout: AugmentedError; + /** + * The balance of the asset kind is not convertible to the balance of the native asset. + **/ + FailedToConvertBalance: AugmentedError; + /** + * The payment has neither failed nor succeeded yet. + **/ + Inconclusive: AugmentedError; + /** + * The spend origin is valid but the amount it is allowed to spend is lower than the + * amount to be spent. + **/ + InsufficientPermission: AugmentedError; + /** + * No proposal, bounty or spend at that index. + **/ + InvalidIndex: AugmentedError; + /** + * The payout was not yet attempted/claimed. + **/ + NotAttempted: AugmentedError; + /** + * There was some issue with the mechanism of payment. + **/ + PayoutError: AugmentedError; + /** + * Proposal has not been approved. + **/ + ProposalNotApproved: AugmentedError; + /** + * The spend has expired and cannot be claimed. + **/ + SpendExpired: AugmentedError; + /** + * Too many approvals in the queue. + **/ + TooManyApprovals: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + utility: { + /** + * Too many calls batched. + **/ + TooManyCalls: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + vesting: { + /** + * Amount being transferred is too low to create a vesting schedule. + **/ + AmountLow: AugmentedError; + /** + * The account already has `MaxVestingSchedules` count of schedules and thus + * cannot add another one. Consider merging existing schedules in order to add another. + **/ + AtMaxVestingSchedules: AugmentedError; + /** + * Failed to create a new schedule because some parameter was invalid. + **/ + InvalidScheduleParams: AugmentedError; + /** + * The account given is not vesting. + **/ + NotVesting: AugmentedError; + /** + * An index was out of bounds of the vesting schedules. + **/ + ScheduleIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + voterList: { + /** + * A error in the list interface implementation. + **/ + List: AugmentedError; + /** + * Could not update a node, because the pallet is locked. + **/ + Locked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + whitelist: { + /** + * The call was already whitelisted; No-Op. + **/ + CallAlreadyWhitelisted: AugmentedError; + /** + * The call was not whitelisted. + **/ + CallIsNotWhitelisted: AugmentedError; + /** + * The weight of the decoded call was higher than the witness. + **/ + InvalidCallWeightWitness: AugmentedError; + /** + * The preimage of the call hash could not be loaded. + **/ + UnavailablePreImage: AugmentedError; + /** + * The call could not be decoded. + **/ + UndecodableCall: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmPallet: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The alias to remove authorization for was not found. + **/ + AliasNotFound: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * Expiry block number is in the past. + **/ + ExpiresInPast: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * Local XCM execution incomplete with the actual XCM error and the index of the + * instruction that caused the error. + **/ + LocalExecutionIncompleteWithError: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * Too many locations authorized to alias origin. + **/ + TooManyAuthorizedAliases: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/packages/api-augment/src/dicle/events.ts b/packages/api-augment/src/dicle/events.ts new file mode 100644 index 0000000..92d037f --- /dev/null +++ b/packages/api-augment/src/dicle/events.ts @@ -0,0 +1,1790 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/events'; + +import type { ApiTypes, AugmentedEvent } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, Perbill } from '@pezkuwi/types/interfaces/runtime'; +import type { DicleRuntimeConstantsProxyProxyType, PezframeSupportDispatchPostDispatchInfo, PezframeSupportMessagesProcessMessageError, PezframeSupportPreimagesBounded, PezframeSupportTokensMiscBalanceStatus, PezframeSystemDispatchEventInfo, PezkuwiPrimitivesVstagingCandidateReceiptV2, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeTeyrchainsDisputesDisputeLocation, PezkuwiRuntimeTeyrchainsDisputesDisputeResult, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBalancesUnexpectedKind, PezpalletConvictionVotingTally, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiPhaseElectionCompute, PezpalletElectionProviderMultiPhasePhase, PezpalletMultisigTimepoint, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsPoolState, PezpalletProxyDepositKind, PezpalletRankedCollectiveTally, PezpalletRankedCollectiveVoteRecord, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletRecoveryDepositKind, PezpalletSocietyGroupParams, PezpalletStakingAsyncAhClientUnexpectedKind, PezpalletStakingForcing, PezpalletStakingRewardDestination, PezpalletStakingValidatorPrefs, PezspConsensusGrandpaAppPublic, PezspNposElectionsElectionScore, PezspRuntimeDispatchError, PezspRuntimeDispatchErrorWithPostInfo, PezspWeightsWeightV2Weight, StagingDicleRuntimeRuntimeParametersKey, StagingDicleRuntimeRuntimeParametersValue, StagingXcmV5AssetAssets, StagingXcmV5Location, StagingXcmV5Response, StagingXcmV5TraitsOutcome, StagingXcmV5Xcm, XcmV3MaybeErrorCode, XcmV3TraitsSendError, XcmV5TraitsError, XcmVersionedAssets, XcmVersionedLocation } from '@pezkuwi/types/lookup'; + +export type __AugmentedEvent = AugmentedEvent; + +declare module '@pezkuwi/api-base/types/events' { + interface AugmentedEvents { + assetRate: { + AssetRateCreated: AugmentedEvent; + AssetRateRemoved: AugmentedEvent; + AssetRateUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + auctions: { + /** + * An auction ended. All funds become unreserved. + **/ + AuctionClosed: AugmentedEvent; + /** + * An auction started. Provides its index and the block number where it will begin to + * close and the first lease period of the quadruplet that is auctioned. + **/ + AuctionStarted: AugmentedEvent; + /** + * A new bid has been accepted as the current winner. + **/ + BidAccepted: AugmentedEvent; + /** + * Someone attempted to lease the same slot twice for a parachain. The amount is held in + * reserve but no parachain slot has been leased. + **/ + ReserveConfiscated: AugmentedEvent; + /** + * Funds were reserved for a winning bid. First balance is the extra amount reserved. + * Second is the total. + **/ + Reserved: AugmentedEvent; + /** + * Funds were unreserved since bidder is no longer active. `[bidder, amount]` + **/ + Unreserved: AugmentedEvent; + /** + * The winning offset was chosen for an auction. This will map into the `Winning` storage + * map. + **/ + WinningOffset: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent; + /** + * An unexpected/defensive event was triggered. + **/ + Unexpected: AugmentedEvent; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bounties: { + /** + * A bounty is approved. + **/ + BountyApproved: AugmentedEvent; + /** + * A bounty is awarded to a beneficiary. + **/ + BountyAwarded: AugmentedEvent; + /** + * A bounty proposal is funded and became active. + **/ + BountyBecameActive: AugmentedEvent; + /** + * A bounty is cancelled. + **/ + BountyCanceled: AugmentedEvent; + /** + * A bounty is claimed by beneficiary. + **/ + BountyClaimed: AugmentedEvent; + /** + * A bounty expiry is extended. + **/ + BountyExtended: AugmentedEvent; + /** + * New bounty proposal. + **/ + BountyProposed: AugmentedEvent; + /** + * A bounty proposal was rejected; funds were slashed. + **/ + BountyRejected: AugmentedEvent; + /** + * A bounty curator is accepted. + **/ + CuratorAccepted: AugmentedEvent; + /** + * A bounty curator is proposed. + **/ + CuratorProposed: AugmentedEvent; + /** + * A bounty curator is unassigned. + **/ + CuratorUnassigned: AugmentedEvent; + /** + * A bounty deposit has been poked. + **/ + DepositPoked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + childBounties: { + /** + * A child-bounty is added. + **/ + Added: AugmentedEvent; + /** + * A child-bounty is awarded to a beneficiary. + **/ + Awarded: AugmentedEvent; + /** + * A child-bounty is cancelled. + **/ + Canceled: AugmentedEvent; + /** + * A child-bounty is claimed by beneficiary. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + claims: { + /** + * Someone claimed some DOTs. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + convictionVoting: { + /** + * An account has delegated their vote to another account. \[who, target\] + **/ + Delegated: AugmentedEvent; + /** + * An \[account\] has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An account has voted + **/ + Voted: AugmentedEvent; + /** + * A vote has been removed + **/ + VoteRemoved: AugmentedEvent; + /** + * The lockup period of a conviction vote expired, and the funds have been unlocked. + **/ + VoteUnlocked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + coretime: { + /** + * A core has received a new assignment from the broker chain. + **/ + CoreAssigned: AugmentedEvent; + /** + * The broker chain has asked for revenue information for a specific block. + **/ + RevenueInfoRequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + crowdloan: { + /** + * A parachain has been moved to `NewRaise` + **/ + AddedToNewRaise: AugmentedEvent; + /** + * All loans in a fund have been refunded. + **/ + AllRefunded: AugmentedEvent; + /** + * Contributed to a crowd sale. + **/ + Contributed: AugmentedEvent; + /** + * Create a new crowdloaning campaign. + **/ + Created: AugmentedEvent; + /** + * Fund is dissolved. + **/ + Dissolved: AugmentedEvent; + /** + * The configuration to a crowdloan has been edited. + **/ + Edited: AugmentedEvent; + /** + * The result of trying to submit a new bid to the Slots pallet. + **/ + HandleBidResult: AugmentedEvent], { paraId: u32, result: Result }>; + /** + * A memo has been updated. + **/ + MemoUpdated: AugmentedEvent; + /** + * The loans in a fund have been partially dissolved, i.e. there are some left + * over child keys that still need to be killed. + **/ + PartiallyRefunded: AugmentedEvent; + /** + * Withdrew full balance of a contributor. + **/ + Withdrew: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + delegatedStaking: { + /** + * Funds delegated by a delegator. + **/ + Delegated: AugmentedEvent; + /** + * Unclaimed delegation funds migrated to delegator. + **/ + MigratedDelegation: AugmentedEvent; + /** + * Funds released to a delegator. + **/ + Released: AugmentedEvent; + /** + * Funds slashed from a delegator. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + electionProviderMultiPhase: { + /** + * An election failed. + * + * Not much can be said about which computes failed in the process. + **/ + ElectionFailed: AugmentedEvent; + /** + * The election has been finalized, with the given computation and score. + **/ + ElectionFinalized: AugmentedEvent; + /** + * There was a phase transition in a given round. + **/ + PhaseTransitioned: AugmentedEvent; + /** + * An account has been rewarded for their signed submission being finalized. + **/ + Rewarded: AugmentedEvent; + /** + * An account has been slashed for submitting an invalid signed submission. + **/ + Slashed: AugmentedEvent; + /** + * A solution was stored with the given compute. + * + * The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`, + * the stored solution was submitted in the signed phase by a miner with the `AccountId`. + * Otherwise, the solution was stored either during the unsigned phase or by + * `T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make + * room for this one. + **/ + SolutionStored: AugmentedEvent, prevEjected: bool], { compute: PezpalletElectionProviderMultiPhaseElectionCompute, origin: Option, prevEjected: bool }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fastUnstake: { + /** + * A batch was partially checked for the given eras, but the process did not finish. + **/ + BatchChecked: AugmentedEvent], { eras: Vec }>; + /** + * A batch of a given size was terminated. + * + * This is always follows by a number of `Unstaked` or `Slashed` events, marking the end + * of the batch. A new batch will be created upon next block. + **/ + BatchFinished: AugmentedEvent; + /** + * An internal error happened. Operations will be paused now. + **/ + InternalError: AugmentedEvent; + /** + * A staker was slashed for requesting fast-unstake whilst being exposed. + **/ + Slashed: AugmentedEvent; + /** + * A staker was unstaked. + **/ + Unstaked: AugmentedEvent], { stash: AccountId32, result: Result }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fellowshipCollective: { + /** + * A member `who` has been added. + **/ + MemberAdded: AugmentedEvent; + /** + * The member `who` had their `AccountId` changed to `new_who`. + **/ + MemberExchanged: AugmentedEvent; + /** + * The member `who` of given `rank` has been removed from the collective. + **/ + MemberRemoved: AugmentedEvent; + /** + * The member `who`se rank has been changed to the given `rank`. + **/ + RankChanged: AugmentedEvent; + /** + * The member `who` has voted for the `poll` with the given `vote` leading to an updated + * `tally`. + **/ + Voted: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fellowshipReferenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + grandpa: { + /** + * New authority set has been applied. + **/ + NewAuthorities: AugmentedEvent>], { authoritySet: Vec> }>; + /** + * Current authority set has been paused. + **/ + Paused: AugmentedEvent; + /** + * Current authority set has been resumed. + **/ + Resumed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + historical: { + /** + * The merkle roots of up to this session index were pruned + **/ + RootsPruned: AugmentedEvent; + /** + * The merkle root of the validators of the said session were stored + **/ + RootStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + hrmp: { + /** + * HRMP channel closed. + **/ + ChannelClosed: AugmentedEvent; + /** + * An HRMP channel was opened via Root origin. + **/ + HrmpChannelForceOpened: AugmentedEvent; + /** + * An HRMP channel was opened with a system chain. + **/ + HrmpSystemChannelOpened: AugmentedEvent; + /** + * Open HRMP channel accepted. + **/ + OpenChannelAccepted: AugmentedEvent; + /** + * An HRMP channel request sent by the receiver was canceled by either party. + **/ + OpenChannelCanceled: AugmentedEvent; + /** + * An HRMP channel's deposits were updated. + **/ + OpenChannelDepositsUpdated: AugmentedEvent; + /** + * Open HRMP channel requested. + **/ + OpenChannelRequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + indices: { + /** + * A deposit to reserve an index has been poked/reconsidered. + **/ + DepositPoked: AugmentedEvent; + /** + * A account index was assigned. + **/ + IndexAssigned: AugmentedEvent; + /** + * A account index has been freed up (unassigned). + **/ + IndexFreed: AugmentedEvent; + /** + * A account index has been frozen to its current account ID. + **/ + IndexFrozen: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent; + /** + * Message is processed. + **/ + Processed: AugmentedEvent; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multisig: { + /** + * The deposit for a multisig operation has been updated/poked. + **/ + DepositPoked: AugmentedEvent; + /** + * A multisig operation has been approved by someone. + **/ + MultisigApproval: AugmentedEvent; + /** + * A multisig operation has been cancelled. + **/ + MultisigCancelled: AugmentedEvent; + /** + * A multisig operation has been executed. + **/ + MultisigExecuted: AugmentedEvent], { approving: AccountId32, timepoint: PezpalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result }>; + /** + * A new multisig operation has begun. + **/ + NewMultisig: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nominationPools: { + /** + * A member has became bonded in a pool. + **/ + Bonded: AugmentedEvent; + /** + * A pool has been created. + **/ + Created: AugmentedEvent; + /** + * A pool has been destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * Global parameters regulating nomination pools have been updated. + **/ + GlobalParamsUpdated: AugmentedEvent, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option], { minJoinBond: u128, minCreateBond: u128, maxPools: Option, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option }>; + /** + * A pool member's claim permission has been updated. + **/ + MemberClaimPermissionUpdated: AugmentedEvent; + /** + * A member has been removed from a pool. + * + * The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). + * Any funds that are still delegated (i.e. dangling delegation) are released and are + * represented by `released_balance`. + **/ + MemberRemoved: AugmentedEvent; + /** + * A pool's metadata was updated. + **/ + MetadataUpdated: AugmentedEvent; + /** + * Topped up deficit in frozen ED of the reward pool. + **/ + MinBalanceDeficitAdjusted: AugmentedEvent; + /** + * Claimed excess frozen ED of af the reward pool. + **/ + MinBalanceExcessAdjusted: AugmentedEvent; + /** + * A payout has been made to a member. + **/ + PaidOut: AugmentedEvent; + /** + * A pool's commission `change_rate` has been changed. + **/ + PoolCommissionChangeRateUpdated: AugmentedEvent; + /** + * Pool commission has been claimed. + **/ + PoolCommissionClaimed: AugmentedEvent; + /** + * Pool commission claim permission has been updated. + **/ + PoolCommissionClaimPermissionUpdated: AugmentedEvent], { poolId: u32, permission: Option }>; + /** + * A pool's commission setting has been changed. + **/ + PoolCommissionUpdated: AugmentedEvent>], { poolId: u32, current: Option> }>; + /** + * A pool's maximum commission setting has been changed. + **/ + PoolMaxCommissionUpdated: AugmentedEvent; + /** + * A pool's nominating account (or the pool's root account) has nominated a validator set + * on behalf of the pool. + **/ + PoolNominationMade: AugmentedEvent; + /** + * The pool is chilled i.e. no longer nominating. + **/ + PoolNominatorChilled: AugmentedEvent; + /** + * The active balance of pool `pool_id` has been slashed to `balance`. + **/ + PoolSlashed: AugmentedEvent; + /** + * The roles of a pool have been updated to the given new roles. Note that the depositor + * can never change. + **/ + RolesUpdated: AugmentedEvent, bouncer: Option, nominator: Option], { root: Option, bouncer: Option, nominator: Option }>; + /** + * The state of a pool has changed + **/ + StateChanged: AugmentedEvent; + /** + * A member has unbonded from their pool. + * + * - `balance` is the corresponding balance of the number of points that has been + * requested to be unbonded (the argument of the `unbond` transaction) from the bonded + * pool. + * - `points` is the number of points that are issued as a result of `balance` being + * dissolved into the corresponding unbonding pool. + * - `era` is the era in which the balance will be unbonded. + * In the absence of slashing, these values will match. In the presence of slashing, the + * number of points that are issued in the unbonding pool will be less than the amount + * requested to be unbonded. + **/ + Unbonded: AugmentedEvent; + /** + * The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. + **/ + UnbondingPoolSlashed: AugmentedEvent; + /** + * A member has withdrawn from their pool. + * + * The given number of `points` have been dissolved in return of `balance`. + * + * Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance + * will be 1. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + offences: { + /** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + **/ + Offence: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + onDemandAssignmentProvider: { + /** + * An account was given credits. + **/ + AccountCredited: AugmentedEvent; + /** + * An order was placed at some spot price amount by orderer ordered_by + **/ + OnDemandOrderPlaced: AugmentedEvent; + /** + * The value of the spot price has likely changed + **/ + SpotPriceSet: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paraInclusion: { + /** + * A candidate was backed. `[candidate, head_data]` + **/ + CandidateBacked: AugmentedEvent; + /** + * A candidate was included. `[candidate, head_data]` + **/ + CandidateIncluded: AugmentedEvent; + /** + * A candidate timed out. `[candidate, head_data]` + **/ + CandidateTimedOut: AugmentedEvent; + /** + * Some upward messages have been received and will be processed. + **/ + UpwardMessagesReceived: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parameters: { + /** + * A Parameter was set. + * + * Is also emitted when the value was not changed. + **/ + Updated: AugmentedEvent, newValue: Option], { key: StagingDicleRuntimeRuntimeParametersKey, oldValue: Option, newValue: Option }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paras: { + /** + * A para has been queued to execute pending actions. `para_id` + **/ + ActionQueued: AugmentedEvent; + /** + * A new code hash has been authorized for a Para. + **/ + CodeAuthorized: AugmentedEvent; + /** + * A code upgrade has been scheduled for a Para. `para_id` + **/ + CodeUpgradeScheduled: AugmentedEvent; + /** + * Current code has been updated for a Para. `para_id` + **/ + CurrentCodeUpdated: AugmentedEvent; + /** + * Current head has been updated for a Para. `para_id` + **/ + CurrentHeadUpdated: AugmentedEvent; + /** + * A new head has been noted for a Para. `para_id` + **/ + NewHeadNoted: AugmentedEvent; + /** + * The given validation code was accepted by the PVF pre-checking vote. + * `code_hash` `para_id` + **/ + PvfCheckAccepted: AugmentedEvent; + /** + * The given validation code was rejected by the PVF pre-checking vote. + * `code_hash` `para_id` + **/ + PvfCheckRejected: AugmentedEvent; + /** + * The given para either initiated or subscribed to a PVF check for the given validation + * code. `code_hash` `para_id` + **/ + PvfCheckStarted: AugmentedEvent; + /** + * The upgrade cooldown was removed. + **/ + UpgradeCooldownRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parasDisputes: { + /** + * A dispute has concluded for or against a candidate. + * `\[para id, candidate hash, dispute result\]` + **/ + DisputeConcluded: AugmentedEvent; + /** + * A dispute has been initiated. \[candidate hash, dispute location\] + **/ + DisputeInitiated: AugmentedEvent; + /** + * A dispute has concluded with supermajority against a candidate. + * Block authors should no longer build on top of this head and should + * instead revert the block at the given height. This should be the + * number of the child of the last known valid block in the chain. + **/ + Revert: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + preimage: { + /** + * A preimage has ben cleared. + **/ + Cleared: AugmentedEvent; + /** + * A preimage has been noted. + **/ + Noted: AugmentedEvent; + /** + * A preimage has been requested. + **/ + Requested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proxy: { + /** + * An announcement was placed to make a call in the future. + **/ + Announced: AugmentedEvent; + /** + * A deposit stored for proxies or announcements was poked / updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A proxy was added. + **/ + ProxyAdded: AugmentedEvent; + /** + * A proxy was executed correctly, with the given. + **/ + ProxyExecuted: AugmentedEvent], { result: Result }>; + /** + * A proxy was removed. + **/ + ProxyRemoved: AugmentedEvent; + /** + * A pure account has been created by new proxy with given + * disambiguation index and proxy type. + **/ + PureCreated: AugmentedEvent; + /** + * A pure proxy was killed by its spawner. + **/ + PureKilled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + rcMigrator: { + /** + * The accounts to be preserved on Relay Chain were set. + **/ + AccountsPreserved: AugmentedEvent], { accounts: Vec }>; + /** + * The AH UMP queue priority config was set. + **/ + AhUmpQueuePriorityConfigSet: AugmentedEvent; + /** + * Whether the AH UMP queue was prioritized for the next block. + **/ + AhUmpQueuePrioritySet: AugmentedEvent; + /** + * The Asset Hub Migration finished. + * + * This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier + * to understand. The finishing is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationFinished: AugmentedEvent; + /** + * The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is + * emitted. + * + * This event is equivalent to `StageTransition { new: Initializing, .. }` but is easier + * to understand. The activation is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationStarted: AugmentedEvent; + /** + * The canceller account id was set. + **/ + CancellerSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * The manager multisig dispatched something. + **/ + ManagerMultisigDispatched: AugmentedEvent], { res: Result }>; + /** + * The manager multisig received a vote. + **/ + ManagerMultisigVoted: AugmentedEvent; + /** + * The manager account id was set. + **/ + ManagerSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * The RC kept balance was consumed. + **/ + MigratedBalanceConsumed: AugmentedEvent; + /** + * The total issuance was recorded. + **/ + MigratedBalanceRecordSet: AugmentedEvent; + /** + * The migration was cancelled. + **/ + MigrationCancelled: AugmentedEvent; + /** + * The migration was paused. + **/ + MigrationPaused: AugmentedEvent; + /** + * Some pure accounts were indexed for possibly receiving free `Any` proxies. + **/ + PureAccountsIndexed: AugmentedEvent; + /** + * A query response has been received. + **/ + QueryResponseReceived: AugmentedEvent; + /** + * A stage transition has occurred. + **/ + StageTransition: AugmentedEvent; + /** + * The staking elections were paused. + **/ + StakingElectionsPaused: AugmentedEvent; + /** + * The unprocessed message buffer size has been set. + **/ + UnprocessedMsgBufferSet: AugmentedEvent; + /** + * A XCM message has been resent. + **/ + XcmResendAttempt: AugmentedEvent], { queryId: u64, sendError: Option }>; + /** + * An XCM message was sent. + **/ + XcmSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + recovery: { + /** + * Lost account has been successfully recovered by rescuer account. + **/ + AccountRecovered: AugmentedEvent; + /** + * A deposit has been updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A recovery process for lost account by rescuer account has been closed. + **/ + RecoveryClosed: AugmentedEvent; + /** + * A recovery process has been set up for an account. + **/ + RecoveryCreated: AugmentedEvent; + /** + * A recovery process has been initiated for lost account by rescuer account. + **/ + RecoveryInitiated: AugmentedEvent; + /** + * A recovery process has been removed for an account. + **/ + RecoveryRemoved: AugmentedEvent; + /** + * A recovery process for lost account by rescuer account has been vouched for by sender. + **/ + RecoveryVouched: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + referenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + registrar: { + Deregistered: AugmentedEvent; + Registered: AugmentedEvent; + Reserved: AugmentedEvent; + Swapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + scheduler: { + /** + * Agenda is incomplete from `when`. + **/ + AgendaIncomplete: AugmentedEvent; + /** + * The call for the provided hash was not found so the task has been aborted. + **/ + CallUnavailable: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Canceled some task. + **/ + Canceled: AugmentedEvent; + /** + * Dispatched some task. + **/ + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; + /** + * The given task was unable to be renewed since the agenda is full at that block. + **/ + PeriodicFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task can never be executed since it is overweight. + **/ + PermanentlyOverweight: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Cancel a retry configuration for some task. + **/ + RetryCancelled: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task was unable to be retried since the agenda is full at that block or there + * was not enough weight to reschedule it. + **/ + RetryFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Set a retry configuration for some task. + **/ + RetrySet: AugmentedEvent, id: Option, period: u32, retries: u8], { task: ITuple<[u32, u32]>, id: Option, period: u32, retries: u8 }>; + /** + * Scheduled some task. + **/ + Scheduled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * The `NewSession` event in the current block also implies a new validator set to be + * queued. + **/ + NewQueued: AugmentedEvent; + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Validator has been disabled. + **/ + ValidatorDisabled: AugmentedEvent; + /** + * Validator has been re-enabled. + **/ + ValidatorReenabled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + slots: { + /** + * A para has won the right to a continuous set of lease periods as a parachain. + * First balance is any extra amount reserved on top of the para's existing deposit. + * Second balance is the total amount reserved. + **/ + Leased: AugmentedEvent; + /** + * A new `[lease_period]` is beginning. + **/ + NewLeasePeriod: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + society: { + /** + * A candidate was dropped (due to an excess of bids in the system). + **/ + AutoUnbid: AugmentedEvent; + /** + * A membership bid just happened. The given account is the candidate's ID and their offer + * is the second. + **/ + Bid: AugmentedEvent; + /** + * A candidate has been suspended + **/ + CandidateSuspended: AugmentedEvent; + /** + * A member has been challenged + **/ + Challenged: AugmentedEvent; + /** + * A vote has been placed for a defending member + **/ + DefenderVote: AugmentedEvent; + /** + * Some funds were deposited into the society account. + **/ + Deposit: AugmentedEvent; + /** + * A deposit was poked / adjusted. + **/ + DepositPoked: AugmentedEvent; + /** + * A \[member\] got elevated to \[rank\]. + **/ + Elevated: AugmentedEvent; + /** + * The society is founded by the given identity. + **/ + Founded: AugmentedEvent; + /** + * A group of candidates have been inducted. The batch's primary is the first value, the + * batch in full is the second. + **/ + Inducted: AugmentedEvent], { primary: AccountId32, candidates: Vec }>; + /** + * A member has been suspended + **/ + MemberSuspended: AugmentedEvent; + /** + * A new set of \[params\] has been set for the group. + **/ + NewParams: AugmentedEvent; + /** + * A suspended member has been judged. + **/ + SuspendedMemberJudgement: AugmentedEvent; + /** + * A candidate was dropped (by their request). + **/ + Unbid: AugmentedEvent; + /** + * Society is unfounded. + **/ + Unfounded: AugmentedEvent; + /** + * A candidate was dropped (by request of who vouched for them). + **/ + Unvouch: AugmentedEvent; + /** + * A vote has been placed + **/ + Vote: AugmentedEvent; + /** + * A membership bid just happened by vouching. The given account is the candidate's ID and + * their offer is the second. The vouching party is the third. + **/ + Vouch: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + staking: { + /** + * An account has bonded this amount. \[stash, amount\] + * + * NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, + * it will not be emitted for staking rewards when they are added to stake. + **/ + Bonded: AugmentedEvent; + /** + * An account has stopped participating as either a validator or nominator. + **/ + Chilled: AugmentedEvent; + /** + * Report of a controller batch deprecation. + **/ + ControllerBatchDeprecated: AugmentedEvent; + /** + * Staking balance migrated from locks to holds, with any balance that could not be held + * is force withdrawn. + **/ + CurrencyMigrated: AugmentedEvent; + /** + * The era payout has been set; the first balance is the validator-payout; the second is + * the remainder from the maximum amount of reward. + **/ + EraPaid: AugmentedEvent; + /** + * A new force era mode was set. + **/ + ForceEra: AugmentedEvent; + /** + * A nominator has been kicked from a validator. + **/ + Kicked: AugmentedEvent; + /** + * An old slashing report from a prior era was discarded because it could + * not be processed. + **/ + OldSlashingReportDiscarded: AugmentedEvent; + /** + * A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed. + **/ + PayoutStarted: AugmentedEvent], { eraIndex: u32, validatorStash: AccountId32, page: u32, next: Option }>; + /** + * The nominator has been rewarded by this amount to this destination. + **/ + Rewarded: AugmentedEvent; + /** + * A staker (validator or nominator) has been slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * A slash for the given validator, for the given percentage of their stake, at the given + * era as been reported. + **/ + SlashReported: AugmentedEvent; + /** + * Targets size limit reached. + **/ + SnapshotTargetsSizeExceeded: AugmentedEvent; + /** + * Voters size limit reached. + **/ + SnapshotVotersSizeExceeded: AugmentedEvent; + /** + * A new set of stakers was elected. + **/ + StakersElected: AugmentedEvent; + /** + * The election failed. No new era is planned. + **/ + StakingElectionFailed: AugmentedEvent; + /** + * An account has unbonded this amount. + **/ + Unbonded: AugmentedEvent; + /** + * A validator has set their preferences. + **/ + ValidatorPrefsSet: AugmentedEvent; + /** + * An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` + * from the unlocking queue. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stakingAhClient: { + /** + * We could not merge, and therefore dropped a buffered message. + * + * Note that this event is more resembling an error, but we use an event because in this + * pallet we need to mutate storage upon some failures. + **/ + CouldNotMergeAndDropped: AugmentedEvent; + /** + * The validator set received is way too small, as per + * [`Config::MinimumValidatorSetSize`]. + **/ + SetTooSmallAndDropped: AugmentedEvent; + /** + * Something occurred that should never happen under normal operation. Logged as an event + * for fail-safe observability. + **/ + Unexpected: AugmentedEvent; + /** + * A new validator set has been received. + **/ + ValidatorSetReceived: AugmentedEvent, leftover: bool], { id: u32, newValidatorSetCount: u32, pruneUpTo: Option, leftover: bool }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * An invalid authorized upgrade was rejected while trying to apply it. + **/ + RejectedInvalidAuthorizedUpgrade: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + treasury: { + /** + * A new asset spend proposal has been approved. + **/ + AssetSpendApproved: AugmentedEvent; + /** + * An approved spend was voided. + **/ + AssetSpendVoided: AugmentedEvent; + /** + * Some funds have been allocated. + **/ + Awarded: AugmentedEvent; + /** + * Some of our funds have been burnt. + **/ + Burnt: AugmentedEvent; + /** + * Some funds have been deposited. + **/ + Deposit: AugmentedEvent; + /** + * A payment happened. + **/ + Paid: AugmentedEvent; + /** + * A payment failed and can be retried. + **/ + PaymentFailed: AugmentedEvent; + /** + * Spending has finished; this is the amount that rolls over until next spend. + **/ + Rollover: AugmentedEvent; + /** + * A new spend proposal has been approved. + **/ + SpendApproved: AugmentedEvent; + /** + * We have ended a spend period and will now allocate funds. + **/ + Spending: AugmentedEvent; + /** + * A spend was processed and removed from the storage. It might have been successfully + * paid or it may have expired. + **/ + SpendProcessed: AugmentedEvent; + /** + * The inactive funds of the pallet have been updated. + **/ + UpdatedInactive: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + utility: { + /** + * Batch of dispatches completed fully with no error. + **/ + BatchCompleted: AugmentedEvent; + /** + * Batch of dispatches completed but has errors. + **/ + BatchCompletedWithErrors: AugmentedEvent; + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + **/ + BatchInterrupted: AugmentedEvent; + /** + * A call was dispatched. + **/ + DispatchedAs: AugmentedEvent], { result: Result }>; + /** + * The fallback call was dispatched. + **/ + IfElseFallbackCalled: AugmentedEvent; + /** + * Main call was dispatched. + **/ + IfElseMainSuccess: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with no error. + **/ + ItemCompleted: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with error. + **/ + ItemFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + vesting: { + /** + * An \[account\] has become fully vested. + **/ + VestingCompleted: AugmentedEvent; + /** + * A vesting schedule has been created. + **/ + VestingCreated: AugmentedEvent; + /** + * The amount vested has been updated. This could indicate a change in funds available. + * The balance given is the amount which is left unvested (and thus locked). + **/ + VestingUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + voterList: { + /** + * Moved an account from one bag to another. + **/ + Rebagged: AugmentedEvent; + /** + * Updated the score of some account to the given amount. + **/ + ScoreUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + whitelist: { + CallWhitelisted: AugmentedEvent; + WhitelistedCallDispatched: AugmentedEvent], { callHash: H256, result: Result }>; + WhitelistedCallRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmPallet: { + /** + * `target` removed alias authorization for `aliaser`. + **/ + AliasAuthorizationRemoved: AugmentedEvent; + /** + * An `aliaser` location was authorized by `target` to alias it, authorization valid until + * `expiry` block number. + **/ + AliasAuthorized: AugmentedEvent], { aliaser: StagingXcmV5Location, target: StagingXcmV5Location, expiry: Option }>; + /** + * `target` removed all alias authorizations. + **/ + AliasesAuthorizationsRemoved: AugmentedEvent; + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedQuerier: StagingXcmV5Location, maybeActualQuerier: Option }>; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedLocation: Option }>; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent; + /** + * An XCM message failed to process. + **/ + ProcessXcmError: AugmentedEvent; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent; + /** + * An XCM message failed to send. + **/ + SendFailed: AugmentedEvent; + /** + * An XCM message was sent. + **/ + Sent: AugmentedEvent; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/packages/api-augment/src/dicle/query.ts b/packages/api-augment/src/dicle/query.ts new file mode 100644 index 0000000..564fa20 --- /dev/null +++ b/packages/api-augment/src/dicle/query.ts @@ -0,0 +1,2504 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/storage'; + +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@pezkuwi/api-base/types'; +import type { BTreeMap, BTreeSet, Bytes, Null, Option, U8aFixed, Vec, bool, u128, u16, u32, u64 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { BinaryHeapEnqueuedOrder, PezframeSupportDispatchPerDispatchClassWeight, PezframeSupportScheduleDispatchTime, PezframeSupportTokensMiscIdAmountRuntimeFreezeReason, PezframeSupportTokensMiscIdAmountRuntimeHoldReason, PezframeSystemAccountInfo, PezframeSystemCodeUpgradeAuthorization, PezframeSystemEventRecord, PezframeSystemLastRuntimeUpgradeInfo, PezframeSystemPhase, PezkuwiCorePrimitivesInboundDownwardMessage, PezkuwiCorePrimitivesInboundHrmpMessage, PezkuwiPrimitivesV8AssignmentAppPublic, PezkuwiPrimitivesV8DisputeState, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8SessionInfo, PezkuwiPrimitivesV8UpgradeGoAhead, PezkuwiPrimitivesV8UpgradeRestriction, PezkuwiPrimitivesV8ValidatorAppPublic, PezkuwiPrimitivesVstagingPendingSlashes, PezkuwiPrimitivesVstagingScrapedOnChainVotes, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonCrowdloanFundInfo, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeCommonParasRegistrarParaInfo, PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor, PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule, PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration, PezkuwiRuntimeTeyrchainsHrmpHrmpChannel, PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability, PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange, PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount, PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder, PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType, PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry, PezkuwiRuntimeTeyrchainsParasParaGenesisArgs, PezkuwiRuntimeTeyrchainsParasParaLifecycle, PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta, PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState, PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment, PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBagsListListBag, PezpalletBagsListListNode, PezpalletBalancesAccountData, PezpalletBalancesBalanceLock, PezpalletBalancesReserveData, PezpalletBountiesBounty, PezpalletChildBountiesChildBounty, PezpalletConvictionVotingVoteVoting, PezpalletDelegatedStakingAgentLedger, PezpalletDelegatedStakingDelegation, PezpalletElectionProviderMultiPhasePhase, PezpalletElectionProviderMultiPhaseReadySolution, PezpalletElectionProviderMultiPhaseRoundSnapshot, PezpalletElectionProviderMultiPhaseSignedSignedSubmission, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletFastUnstakeUnstakeRequest, PezpalletGrandpaStoredPendingChange, PezpalletGrandpaStoredState, PezpalletMessageQueueBookState, PezpalletMessageQueuePage, PezpalletMultisigMultisig, PezpalletNominationPoolsBondedPoolInner, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsPoolMember, PezpalletNominationPoolsRewardPool, PezpalletNominationPoolsSubPools, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus, PezpalletProxyAnnouncement, PezpalletProxyProxyDefinition, PezpalletRankedCollectiveMemberRecord, PezpalletRankedCollectiveVoteRecord, PezpalletRcMigratorAccountsAccountState, PezpalletRcMigratorAccountsMigratedBalances, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletRecoveryActiveRecovery, PezpalletRecoveryRecoveryConfig, PezpalletReferendaReferendumInfoConvictionVotingTally, PezpalletReferendaReferendumInfoRankedCollectiveTally, PezpalletSchedulerRetryConfig, PezpalletSchedulerScheduled, PezpalletSocietyBid, PezpalletSocietyCandidacy, PezpalletSocietyGroupParams, PezpalletSocietyIntakeRecord, PezpalletSocietyMemberRecord, PezpalletSocietyPayoutRecord, PezpalletSocietyTally, PezpalletSocietyVote, PezpalletStakingActiveEraInfo, PezpalletStakingAsyncAhClientOperatingMode, PezpalletStakingAsyncRcClientOffence, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletStakingEraRewardPoints, PezpalletStakingForcing, PezpalletStakingNominations, PezpalletStakingRewardDestination, PezpalletStakingSlashingSlashingSpans, PezpalletStakingSlashingSpanRecord, PezpalletStakingStakingLedger, PezpalletStakingUnappliedSlash, PezpalletStakingValidatorPrefs, PezpalletTransactionPaymentReleases, PezpalletTreasuryProposal, PezpalletTreasurySpendStatus, PezpalletVestingReleases, PezpalletVestingVestingInfo, PezpalletXcmAuthorizedAliasesEntry, PezpalletXcmQueryStatus, PezpalletXcmRemoteLockedFungibleRecord, PezpalletXcmVersionMigrationStage, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeEpochConfiguration, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBabeDigestsPreDigest, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyMmrBeefyAuthoritySet, PezspConsensusGrandpaAppPublic, PezspCoreCryptoKeyTypeId, PezspNposElectionsElectionScore, PezspRuntimeDigest, PezspRuntimeMultiSigner, PezspStakingExposure, PezspStakingExposurePage, PezspStakingOffenceOffenceDetails, PezspStakingPagedExposureMetadata, PezspWeightsWeightV2Weight, StagingDicleRuntimeRuntimeParametersKey, StagingDicleRuntimeRuntimeParametersValue, StagingDicleRuntimeSessionKeys, StagingXcmV5Instruction, StagingXcmV5Xcm, XcmVersionedAssetId, XcmVersionedLocation } from '@pezkuwi/types/lookup'; +import type { Observable } from '@pezkuwi/types/types'; + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module '@pezkuwi/api-base/types/storage' { + interface AugmentedQueries { + assetRate: { + /** + * Maps an asset to its fixed point representation in the native balance. + * + * E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)` + **/ + conversionRateToNative: AugmentedQuery Observable>, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + auctions: { + /** + * Number of auctions started so far. + **/ + auctionCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information relating to the current auction, if there is one. + * + * The first item in the tuple is the lease period index that the first of the four + * contiguous lease periods on auction is for. The second is the block number when the + * auction will "begin to end", i.e. the first block of the Ending Period of the auction. + **/ + auctionInfo: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Amounts currently reserved in the accounts of the bidders currently winning + * (sub-)ranges. + **/ + reservedAmounts: AugmentedQuery | [AccountId32 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[AccountId32, u32]>]> & QueryableStorageEntry]>; + /** + * The winning bids for each of the 10 ranges at each sample in the final Ending Period of + * the current auction. The map's key is the 0-based index into the Sample Size. The + * first sample of the ending period is 0; the last is `Sample Size - 1`. + **/ + winning: AugmentedQuery Observable>>>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorityDiscovery: { + /** + * Keys of the current authority set. + **/ + keys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Keys of the next authority set. + **/ + nextKeys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + babe: { + /** + * Current epoch authorities. + **/ + authorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * This field should always be populated during block processing unless + * secondary plain slots are enabled (which don't contain a VRF output). + * + * It is set in `on_finalize`, before it will contain the value from the last block. + **/ + authorVrfRandomness: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current slot number. + **/ + currentSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The configuration for the current epoch. Should never be `None` as it is initialized in + * genesis. + **/ + epochConfig: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current epoch index. + **/ + epochIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The block numbers when the last and current epoch have started, respectively `N-1` and + * `N`. + * NOTE: We track this is in order to annotate the block number when a given pool of + * entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in + * slots, which may be skipped, the block numbers may not line up with the slot numbers. + **/ + epochStart: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The slot at which the first epoch actually started. This is 0 + * until the first block of the chain. + **/ + genesisSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Temporary value (cleared at block finalization) which is `Some` + * if per-block initialization has already been called for current block. + **/ + initialized: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * How late the current block is compared to its parent. + * + * This entry is populated as part of block execution and is cleaned up + * on block finalization. Querying this storage entry outside of block + * execution context should always yield zero. + **/ + lateness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Next epoch authorities. + **/ + nextAuthorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The configuration for the next epoch, `None` if the config will not change + * (you can fallback to `EpochConfig` instead in that case). + **/ + nextEpochConfig: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Next epoch randomness. + **/ + nextRandomness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Pending epoch configuration change that will be applied when the next epoch is enacted. + **/ + pendingEpochConfigChange: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The epoch randomness for the *current* epoch. + * + * # Security + * + * This MUST NOT be used for gambling, as it can be influenced by a + * malicious validator in the short term. It MAY be used in many + * cryptographic protocols, however, so long as one remembers that this + * (like everything else on-chain) it is public. For example, it can be + * used where a number is needed that cannot have been chosen by an + * adversary, for purposes such as public-coin zero-knowledge proofs. + **/ + randomness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Randomness under construction. + * + * We make a trade-off between storage accesses and list length. + * We store the under-construction randomness in segments of up to + * `UNDER_CONSTRUCTION_SEGMENT_LENGTH`. + * + * Once a segment reaches this length, we begin the next one. + * We reset all segments and return to `0` at the beginning of every + * epoch. + **/ + segmentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A list of the last 100 skipped epochs and the corresponding session index + * when the epoch was skipped. + * + * This is only used for validating equivocation proofs. An equivocation proof + * must contains a key-ownership proof for a given session, therefore we need a + * way to tie together sessions and epoch indices, i.e. we need to validate that + * a validator was the owner of a given key on a given session, and what the + * active epoch index was during that session. + **/ + skippedEpochs: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay. + **/ + underConstruction: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + beefy: { + /** + * The current authorities set + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Block number where BEEFY consensus is enabled/started. + * By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively + * restarted from the newly set block number. + **/ + genesisBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Authorities set scheduled to be used with the next session + **/ + nextAuthorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A mapping from BEEFY set ID to the index of the *most recent* session for which its + * members were responsible. + * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and BEEFY set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * + * TWOX-NOTE: `ValidatorSetId` is not under user control. + **/ + setIdSession: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The current validator set id + **/ + validatorSetId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + beefyMmrLeaf: { + /** + * Details of current BEEFY authority set. + **/ + beefyAuthorities: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Details of next BEEFY authority set. + * + * This storage entry is used as cache for calls to `update_beefy_next_authority_set`. + **/ + beefyNextAuthorities: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + bounties: { + /** + * Bounties that have been made. + **/ + bounties: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Bounty indices that have been approved but not yet funded. + **/ + bountyApprovals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Number of bounty proposals that have been made. + **/ + bountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each bounty. + **/ + bountyDescriptions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + childBounties: { + /** + * Child bounties that have been added. + **/ + childBounties: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts + * for each parent bounty. Number of total child bounties. Will be removed in May 2025. + **/ + childBountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each child-bounty. Indexed by `(parent_id, child_id)`. + * + * This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version. + **/ + childBountyDescriptionsV1: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The cumulative child-bounty curator fee for each parent bounty. + **/ + childrenCuratorFees: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of active child bounties per parent bounty. + * Map of parent bounty index to number of child bounties. + **/ + parentChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of total child bounties per parent bounty, including completed bounties. + **/ + parentTotalChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The mapping of the child bounty ids from storage version `V0` to the new `V1` version. + * + * The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids + * based on the child bounty count per parent bounty [`ParentTotalChildBounties`]. + * The item intended solely for client convenience and not used in the pallet's core logic. + **/ + v0ToV1ChildBountyIds: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + claims: { + claims: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Pre-claimed Ethereum accounts, by the Account ID that they are claimed to. + **/ + preclaims: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The statement kind that must be signed, if any. + **/ + signing: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + total: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Vesting schedule for a claim. + * First balance is the total amount that should be held for vesting. + * Second balance is how much should be unlocked per block. + * The block number is when the vesting should start. + **/ + vesting: AugmentedQuery Observable>>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + configuration: { + /** + * The active configuration for the current session. + **/ + activeConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If this is set, then the configuration setters will bypass the consistency checks. This + * is meant to be used only as the last resort. + **/ + bypassConsistencyCheck: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Pending configuration changes. + * + * This is a list of configuration changes, each with a session index at which it should + * be applied. + * + * The list is sorted ascending by session index. Also, this list can only contain at most + * 2 items: for the next session and for the `scheduled_session`. + **/ + pendingConfigs: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + convictionVoting: { + /** + * The voting classes which have a non-zero lock requirement and the lock amounts which they + * require. The actual amount locked on behalf of this pallet should always be the maximum of + * this list. + **/ + classLocksFor: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * All voting for a particular voter in a particular voting class. We store the balance for the + * number of votes that we have recorded. + **/ + votingFor: AugmentedQuery Observable, [AccountId32, u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + coretimeAssignmentProvider: { + /** + * Assignments which are currently active. + * + * They will be picked from `PendingAssignments` once we reach the scheduled block number in + * `PendingAssignments`. + **/ + coreDescriptors: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Scheduled assignment sets. + * + * Assignments as of the given block number. They will go into state once the block number is + * reached (and replace whatever was in there before). + **/ + coreSchedules: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + crowdloan: { + /** + * The number of auctions that have entered into their ending period so far. + **/ + endingsCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Info on all of the funds. + **/ + funds: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The funds that have had additional contributions during the last block. This is used + * in order to determine which funds should submit new or updated bids. + **/ + newRaise: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Tracker for the next available fund index + **/ + nextFundIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + delegatedStaking: { + /** + * Map of `Agent` to their `Ledger`. + **/ + agents: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForAgents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForDelegators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Map of Delegators to their `Delegation`. + * + * Implementation note: We are not using a double map with `delegator` and `agent` account + * as keys since we want to restrict delegators to delegate only to one account at a time. + **/ + delegators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + dmp: { + /** + * The factor to multiply the base delivery fee by. + **/ + deliveryFeeFactor: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * A mapping that stores the downward message queue MQC head for each para. + * + * Each link in this chain has a form: + * `(prev_head, B, H(M))`, where + * - `prev_head`: is the previous head hash or zero if none. + * - `B`: is the relay-chain block number in which a message was appended. + * - `H(M)`: is the hash of the message being appended. + **/ + downwardMessageQueueHeads: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The downward messages addressed for a certain para. + **/ + downwardMessageQueues: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + electionProviderMultiPhase: { + /** + * Current phase. + **/ + currentPhase: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Desired number of targets to elect for this round. + * + * Only exists when [`Snapshot`] is present. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + desiredTargets: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum score that each 'untrusted' solution must attain in order to be considered + * feasible. + * + * Can be set via `set_minimum_untrusted_score`. + **/ + minimumUntrustedScore: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current best solution, signed or unsigned, queued to be returned upon `elect`. + * + * Always sorted by score. + **/ + queuedSolution: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Internal counter for the number of rounds. + * + * This is useful for de-duplication of transactions submitted to the pool, and general + * diagnostics of the pallet. + * + * This is merely incremented once per every time that an upstream `elect` is called. + **/ + round: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a + * value in `SignedSubmissions`. + * + * We never need to process more than a single signed submission at a time. Signed submissions + * can be quite large, so we're willing to pay the cost of multiple database accesses to access + * them one at a time instead of reading and decoding all of them at once. + **/ + signedSubmissionIndices: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The next index to be assigned to an incoming signed submission. + * + * Every accepted submission is assigned a unique index; that index is bound to that particular + * submission for the duration of the election. On election finalization, the next index is + * reset to 0. + * + * We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its + * capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`, + * because iteration is slow. Instead, we store the value here. + **/ + signedSubmissionNextIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Unchecked, signed solutions. + * + * Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while + * allowing us to keep only a single one in memory at a time. + * + * Twox note: the key of the map is an auto-incrementing index which users cannot inspect or + * affect; we shouldn't need a cryptographically secure hasher. + **/ + signedSubmissionsMap: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Snapshot data of the round. + * + * This is created at the beginning of the signed phase and cleared upon calling `elect`. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + snapshot: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The metadata of the [`RoundSnapshot`] + * + * Only exists when [`Snapshot`] is present. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + snapshotMetadata: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fastUnstake: { + /** + * Counter for the related counted storage map + **/ + counterForQueue: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Number of eras to check per block. + * + * If set to 0, this pallet does absolutely nothing. Cannot be set to more than + * [`Config::MaxErasToCheckPerBlock`]. + * + * Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are + * checked. The checking is represented by updating [`UnstakeRequest::checked`], which is + * stored in [`Head`]. + **/ + erasToCheckPerBlock: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current "head of the queue" being unstaked. + * + * The head in itself can be a batch of up to [`Config::BatchSize`] stakers. + **/ + head: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The map of all accounts wishing to be unstaked. + * + * Keeps track of `AccountId` wishing to unstake and it's corresponding deposit. + **/ + queue: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fellowshipCollective: { + /** + * The index of each ranks's member into the group of members who have at least that rank. + **/ + idToIndex: AugmentedQuery Observable>, [u16, AccountId32]> & QueryableStorageEntry; + /** + * The members in the collective by index. All indices in the range `0..MemberCount` will + * return `Some`, however a member's index is not guaranteed to remain unchanged over time. + **/ + indexToId: AugmentedQuery Observable>, [u16, u32]> & QueryableStorageEntry; + /** + * The number of members in the collective who have at least the rank according to the index + * of the vec. + **/ + memberCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The current members of the collective. + **/ + members: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Votes on a given proposal, if it is ongoing. + **/ + voting: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + votingCleanup: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fellowshipReferenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + grandpa: { + /** + * The current list of authorities. + **/ + authorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The number of changes (both in terms of keys and underlying economic responsibilities) + * in the "set" of Grandpa validators from genesis. + **/ + currentSetId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * next block number where we can force a change. + **/ + nextForced: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pending change: (signaled at, scheduled change). + **/ + pendingChange: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A mapping from grandpa set ID to the index of the *most recent* session for which its + * members were responsible. + * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and GRANDPA set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * + * TWOX-NOTE: `SetId` is not under user control. + **/ + setIdSession: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * `true` if we are currently stalled. + **/ + stalled: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * State of the current authority set. + **/ + state: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + historical: { + /** + * Mapping from historical session indices to session-data root hash and validator count. + **/ + historicalSessions: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * The range of historical sessions we store. [first, last) + **/ + storedRange: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + hrmp: { + /** + * This mapping tracks how many open channel requests were accepted by a given recipient para. + * Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with + * `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`. + **/ + hrmpAcceptedChannelRequestCount: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Storage for the messages for each channel. + * Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`. + **/ + hrmpChannelContents: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + /** + * Maintains a mapping that can be used to answer the question: What paras sent a message at + * the given block number for a given receiver. Invariants: + * - The inner `Vec` is never empty. + * - The inner `Vec` cannot store two same `ParaId`. + * - The outer vector is sorted ascending by block number and cannot store two items with the + * same block number. + **/ + hrmpChannelDigests: AugmentedQuery Observable]>>>, [u32]> & QueryableStorageEntry; + /** + * HRMP channel data associated with each para. + * Invariant: + * - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session. + **/ + hrmpChannels: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + /** + * A set of pending HRMP close channel requests that are going to be closed during the session + * change. Used for checking if a given channel is registered for closure. + * + * The set is accompanied by a list for iteration. + * + * Invariant: + * - There are no channels that exists in list but not in the set and vice versa. + **/ + hrmpCloseChannelRequests: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + hrmpCloseChannelRequestsList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + hrmpEgressChannelsIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Ingress/egress indexes allow to find all the senders and receivers given the opposite side. + * I.e. + * + * (a) ingress index allows to find all the senders for a given recipient. + * (b) egress index allows to find all the recipients for a given sender. + * + * Invariants: + * - for each ingress index entry for `P` each item `I` in the index should present in + * `HrmpChannels` as `(I, P)`. + * - for each egress index entry for `P` each item `E` in the index should present in + * `HrmpChannels` as `(P, E)`. + * - there should be no other dangling channels in `HrmpChannels`. + * - the vectors are sorted. + **/ + hrmpIngressChannelsIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * This mapping tracks how many open channel requests are initiated by a given sender para. + * Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has + * `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`. + **/ + hrmpOpenChannelRequestCount: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The set of pending HRMP open channel requests. + * + * The set is accompanied by a list for iteration. + * + * Invariant: + * - There are no channels that exists in list but not in the set and vice versa. + **/ + hrmpOpenChannelRequests: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + hrmpOpenChannelRequestsList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The HRMP watermark associated with each para. + * Invariant: + * - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a + * session. + **/ + hrmpWatermarks: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + indices: { + /** + * The lookup from index to account. + **/ + accounts: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + initializer: { + /** + * Buffered session changes. + * + * Typically this will be empty or one element long. Apart from that this item never hits + * the storage. + * + * However this is a `Vec` regardless to handle various edge cases that may occur at runtime + * upgrade boundaries or if governance intervenes. + **/ + bufferedSessionChanges: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether the parachains modules have been initialized within this block. + * + * Semantically a `bool`, but this guarantees it should never hit the trie, + * as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values. + * + * As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one + * of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable + * for the semantics of this variable. + **/ + hasInitialized: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery Observable, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin]> & QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery Observable>, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, u32]> & QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + mmr: { + /** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + **/ + nodes: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * Current size of the MMR (number of leaves). + **/ + numberOfLeaves: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Latest MMR Root hash. + **/ + rootHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multisig: { + /** + * The set of open multisig operations. + **/ + multisigs: AugmentedQuery Observable>, [AccountId32, U8aFixed]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nominationPools: { + /** + * Storage for bonded pools. + **/ + bondedPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Map from a pool member account to their opted claim permission. + **/ + claimPermissions: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForBondedPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForMetadata: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPoolMembers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForReversePoolIdLookup: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRewardPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForSubPoolsStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum commission that can be charged by a pool. Used on commission payouts to bound + * pool commissions that are > `GlobalMaxCommission`, necessary if a future + * `GlobalMaxCommission` is lower than some current pool commissions. + **/ + globalMaxCommission: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Ever increasing number of all pools created so far. + **/ + lastPoolId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Maximum number of members that can exist in the system. If `None`, then the count + * members are not bound on a system wide basis. + **/ + maxPoolMembers: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of members that may belong to pool. If `None`, then the count of + * members is not bound on a per pool basis. + **/ + maxPoolMembersPerPool: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of nomination pools that can exist. If `None`, then an unbounded number of + * pools can exist. + **/ + maxPools: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Metadata for the pool. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Minimum bond required to create a pool. + * + * This is the amount that the depositor must put as their initial stake in the pool, as an + * indication of "skin in the game". + * + * This is the value that will always exist in the staking ledger of the pool bonded account + * while all other accounts leave. + **/ + minCreateBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum amount to bond to join a pool. + **/ + minJoinBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Active members. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + poolMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A reverse lookup from the pool's account id to its id. + * + * This is only used for slashing and on automatic withdraw update. In all other instances, the + * pool id is used, and the accounts are deterministically derived from it. + **/ + reversePoolIdLookup: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Reward pools. This is where there rewards for each pool accumulate. When a members payout is + * claimed, the balance comes out of the reward pool. Keyed by the bonded pools account. + **/ + rewardPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Groups of unbonding pools. Each group of unbonding pools belongs to a + * bonded pool, hence the name sub-pools. Keyed by the bonded pools account. + **/ + subPoolsStorage: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sum of funds across all pools. + * + * This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`] + * because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's + * `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s. + **/ + totalValueLocked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + offences: { + /** + * A vector of reports of the same kind that happened at the same time slot. + **/ + concurrentReportsIndex: AugmentedQuery Observable>, [U8aFixed, Bytes]> & QueryableStorageEntry; + /** + * The primary structure that holds all offence records keyed by report identifiers. + **/ + reports: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + onDemandAssignmentProvider: { + /** + * Queue entries that are currently bound to a particular core due to core affinity. + **/ + affinityEntries: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Keeps track of credits owned by each account. + **/ + credits: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Priority queue for all orders which don't yet (or not any more) have any core affinity. + **/ + freeEntries: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in + * it's lookahead. Keeping track of this affinity prevents parallel execution of the same + * `ParaId` on two or more `CoreIndex`es. + **/ + paraIdAffinity: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Overall status of queue (both free + affinity entries) + **/ + queueStatus: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Keeps track of accumulated revenue from on demand order sales. + **/ + revenue: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraInclusion: { + /** + * Candidates pending availability by `ParaId`. They form a chain starting from the latest + * included head of the para. + * Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage + * would otherwise have the exact same prefix which could cause undefined behaviour when doing + * the migration. + **/ + v1: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraInherent: { + /** + * Whether the paras inherent was included within this block. + * + * The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant + * due to the guarantees of FRAME's storage APIs. + * + * If this is `None` at the end of the block, we panic and render the block invalid. + **/ + included: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Scraped on chain data for extracting resolved disputes as well as backing votes. + **/ + onChainVotes: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parameters: { + /** + * Stored parameters. + **/ + parameters: AugmentedQuery Observable>, [StagingDicleRuntimeRuntimeParametersKey]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paras: { + /** + * The actions to perform during the start of a specific session index. + **/ + actionsQueue: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The code hash authorizations for a para which will expire `expire_at` `BlockNumberFor`. + **/ + authorizedCodeHash: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Validation code stored by its hash. + * + * This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and + * [`PastCodeHash`]. + **/ + codeByHash: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The number of reference on the validation code in [`CodeByHash`] storage. + **/ + codeByHashRefs: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * The validation code hash of every live para. + * + * Corresponding code can be retrieved with [`CodeByHash`]. + **/ + currentCodeHash: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The actual future code hash of a para. + * + * Corresponding code can be retrieved with [`CodeByHash`]. + **/ + futureCodeHash: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The block number at which the planned code change is expected for a parachain. + * + * The change will be applied after the first parablock for this ID included which executes + * in the context of a relay chain block with a number >= `expected_at`. + **/ + futureCodeUpgrades: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The list of upcoming future code upgrades. + * + * Each item is a pair of the parachain and the expected block at which the upgrade should be + * applied. The upgrade will be applied at the given relay chain block. In contrast to + * [`FutureCodeUpgrades`] this code upgrade will be applied regardless the parachain making any + * progress or not. + * + * Ordered ascending by block number. + **/ + futureCodeUpgradesAt: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The head-data of every registered para. + **/ + heads: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The context (relay-chain block number) of the most recent parachain head. + **/ + mostRecentContext: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * All lease holding parachains. Ordered ascending by `ParaId`. On demand parachains are not + * included. + * + * Consider using the [`ParachainsCache`] type of modifying. + **/ + parachains: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current lifecycle of a all known Para IDs. + **/ + paraLifecycles: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Actual past code hash, indicated by the para id as well as the block number at which it + * became outdated. + * + * Corresponding code can be retrieved with [`CodeByHash`]. + **/ + pastCodeHash: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Past code of parachains. The parachains themselves may not be registered anymore, + * but we also keep their code on-chain for the same amount of time as outdated code + * to keep it available for approval checkers. + **/ + pastCodeMeta: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Which paras have past code that needs pruning and the relay-chain block at which the code + * was replaced. Note that this is the actual height of the included block, not the expected + * height at which the code upgrade would be applied, although they may be equal. + * This is to ensure the entire acceptance period is covered, not an offset acceptance period + * starting from the time at which the parachain perceives a code upgrade as having occurred. + * Multiple entries for a single para are permitted. Ordered ascending by block number. + **/ + pastCodePruning: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`. + **/ + pvfActiveVoteList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * All currently active PVF pre-checking votes. + * + * Invariant: + * - There are no PVF pre-checking votes that exists in list but not in the set and vice versa. + **/ + pvfActiveVoteMap: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Upcoming paras instantiation arguments. + * + * NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set + * to empty. Instead, the code will be saved into the storage right away via `CodeByHash`. + **/ + upcomingParasGenesis: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The list of upcoming code upgrades. + * + * Each item is a pair of which para performs a code upgrade and at which relay-chain block it + * is expected at. + * + * Ordered ascending by block number. + **/ + upcomingUpgrades: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The list of parachains that are awaiting for their upgrade restriction to cooldown. + * + * Ordered ascending by block number. + **/ + upgradeCooldowns: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * This is used by the relay-chain to communicate to a parachain a go-ahead with in the upgrade + * procedure. + * + * This value is absent when there are no upgrades scheduled or during the time the relay chain + * performs the checks. It is set at the first relay-chain block when the corresponding + * parachain can switch its upgrade function. As soon as the parachain's block is included, the + * value gets reset to `None`. + * + * NOTE that this field is used by parachains via merkle storage proofs, therefore changing + * the format will require migration of parachains. + **/ + upgradeGoAheadSignal: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * This is used by the relay-chain to communicate that there are restrictions for performing + * an upgrade for this parachain. + * + * This may be a because the parachain waits for the upgrade cooldown to expire. Another + * potential use case is when we want to perform some maintenance (such as storage migration) + * we could restrict upgrades to make the process simpler. + * + * NOTE that this field is used by parachains via merkle storage proofs, therefore changing + * the format will require migration of parachains. + **/ + upgradeRestrictionSignal: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraScheduler: { + /** + * One entry for each availability core. The `VecDeque` represents the assignments to be + * scheduled on that core. + **/ + claimQueue: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The block number where the session start occurred. Used to track how many group rotations + * have occurred. + * + * Note that in the context of parachains modules the session change is signaled during + * the block and enacted at the end of the block (at the finalization stage, to be exact). + * Thus for all intents and purposes the effect of the session change is observed at the + * block following the session change, block number of which we save in this storage value. + **/ + sessionStartBlock: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * All the validator groups. One for each core. Indices are into `ActiveValidators` - not the + * broader set of Polkadot validators, but instead just the subset used for parachains during + * this session. + * + * Bound: The number of cores is the sum of the numbers of parachains and parathread + * multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe + * upper bound at 10k. + **/ + validatorGroups: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parasDisputes: { + /** + * Backing votes stored for each dispute. + * This storage is used for slashing. + **/ + backersOnDisputes: AugmentedQuery Observable>>, [u32, H256]> & QueryableStorageEntry; + /** + * All ongoing or concluded disputes for the last several sessions. + **/ + disputes: AugmentedQuery Observable>, [u32, H256]> & QueryableStorageEntry; + /** + * Whether the chain is frozen. Starts as `None`. When this is `Some`, + * the chain will not accept any new parachain blocks for backing or inclusion, + * and its value indicates the last valid block number in the chain. + * It can only be set back to `None` by governance intervention. + **/ + frozen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * All included blocks on the chain, as well as the block number in this chain that + * should be reverted back to if the candidate is disputed and determined to be invalid. + **/ + included: AugmentedQuery Observable>, [u32, H256]> & QueryableStorageEntry; + /** + * The last pruned session, if any. All data stored by this module + * references sessions. + **/ + lastPrunedSession: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraSessionInfo: { + /** + * The validator account keys of the validators actively participating in parachain consensus. + **/ + accountKeys: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Assignment keys for the current session. + * Note that this API is private due to it being prone to 'off-by-one' at session boundaries. + * When in doubt, use `Sessions` API instead. + **/ + assignmentKeysUnsafe: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The earliest session for which previous session info is stored. + **/ + earliestStoredSession: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Executor parameter set for a given session index + **/ + sessionExecutorParams: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Session information in a rolling window. + * Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`. + * Does not have any entries before the session index in the first session change notification. + **/ + sessions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parasShared: { + /** + * All the validators actively participating in parachain consensus. + * Indices are into the broader validator set. + **/ + activeValidatorIndices: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The parachain attestation keys of the validators actively participating in parachain + * consensus. This should be the same length as `ActiveValidatorIndices`. + **/ + activeValidatorKeys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * All allowed relay-parents. + **/ + allowedRelayParents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current session index. + **/ + currentSessionIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parasSlashing: { + /** + * Validators pending dispute slashes. + **/ + unappliedSlashes: AugmentedQuery Observable>, [u32, H256]> & QueryableStorageEntry; + /** + * `ValidatorSetCount` per session. + **/ + validatorSetCounts: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + preimage: { + preimageFor: AugmentedQuery | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[H256, u32]>]> & QueryableStorageEntry]>; + /** + * The request status of a given hash. + **/ + requestStatusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The request status of a given hash. + **/ + statusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proxy: { + /** + * The announcements made by the proxy (key). + **/ + announcements: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of account proxies. Maps the account which has delegated to the accounts + * which are being delegated to, together with the amount held on deposit. + **/ + proxies: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + rcMigrator: { + /** + * The priority of the Asset Hub UMP queue during migration. + * + * Controls how the Asset Hub UMP (Upward Message Passing) queue is processed relative to other + * queues during the migration process. This helps ensure timely processing of migration + * messages. The default priority pattern is defined in the pallet configuration, but can be + * overridden by a storage value of this type. + **/ + ahUmpQueuePriorityConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * An optional account id of a canceller. + * + * This account id can only stop scheduled migration. + **/ + canceller: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The duration of the post migration cool-off period. + * + * This is the duration of the cool-off period after the data migration is finished. During + * this period, the migration will be still in ongoing state and the concerned extrinsics will + * be locked. + **/ + coolOffPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPendingXcmMessages: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRcAccounts: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * An optional account id of a manager. + * + * This account id has similar privileges to [`Config::AdminOrigin`] except that it + * can not set the manager account id via `set_manager` call. + **/ + manager: AugmentedQuery Observable>, []> & QueryableStorageEntry; + managerMultisigRound: AugmentedQuery Observable, []> & QueryableStorageEntry; + managerMultisigs: AugmentedQuery Observable>, [RuntimeCall]> & QueryableStorageEntry; + /** + * Block number when migration finished and extrinsics were unlocked. + * + * This is set when entering the `MigrationDone` stage hence when + * `RcMigrationStage::is_finished()` becomes `true`. + **/ + migrationEndBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The block number at which the migration began and the pallet's extrinsics were locked. + * + * This value is set when entering the `WaitingForAh` stage, i.e., when + * `RcMigrationStage::is_ongoing()` becomes `true`. + **/ + migrationStartBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The pending XCM messages. + * + * Contains data messages that have been sent to the Asset Hub but not yet confirmed. + * + * Unconfirmed messages can be resent by calling the [`Pallet::resend_xcm`] function. + **/ + pendingXcmMessages: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The pending XCM response queries and their XCM hash referencing the message in the + * [`PendingXcmMessages`] storage. + * + * The `QueryId` is the identifier from the [`pallet_xcm`] query handler registry. The XCM + * pallet will notify about the status of the message by calling the + * [`Pallet::receive_query_response`] function with the `QueryId` and the + * response. + **/ + pendingXcmQueries: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * Accounts that use the proxy pallet to delegate permissions and have no nonce. + * + * Boolean value is whether they have been migrated to the Asset Hub. Needed for idempotency. + **/ + pureProxyCandidatesMigrated: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Helper storage item to obtain and store the known accounts that should be kept partially or + * fully on Relay Chain. + **/ + rcAccounts: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Helper storage item to store the total balance that should be kept on Relay Chain. + **/ + rcMigratedBalance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Helper storage item to store the total balance that should be kept on Relay Chain after + * it is consumed from the `RcMigratedBalance` storage item and sent to the Asset Hub. + * + * This let us to take the value from the `RcMigratedBalance` storage item and keep the + * `SignalMigrationFinish` stage to be idempotent while preserving these values for tests and + * later discoveries. + **/ + rcMigratedBalanceArchive: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Relay Chain migration state. + **/ + rcMigrationStage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Manual override for `type UnprocessedMsgBuffer: Get`. Look there for docs. + **/ + unprocessedMsgBuffer: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The duration of the pre migration warm-up period. + * + * This is the duration of the warm-up period before the data migration starts. During this + * period, the migration will be in ongoing state and the concerned extrinsics will be locked. + **/ + warmUpPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + recovery: { + /** + * Active recovery attempts. + * + * First account is the account to be recovered, and the second account + * is the user trying to recover the account. + **/ + activeRecoveries: AugmentedQuery Observable>, [AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * The list of allowed proxy accounts. + * + * Map from the user who can access it to the recovered account. + **/ + proxy: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of recoverable accounts and their recovery configuration. + **/ + recoverable: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + referenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + registrar: { + /** + * The next free `ParaId`. + **/ + nextFreeParaId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Amount held on deposit for each para and the original depositor. + * + * The given account ID is responsible for registering the code and initial head data, but may + * only do so if it isn't yet registered. (After that, it's up to governance to do so.) + **/ + paras: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Pending swap operations. + **/ + pendingSwap: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + scheduler: { + /** + * Items to be executed, indexed by the block number that they should be executed on. + **/ + agenda: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Block number at which the agenda began incomplete execution. + **/ + incompleteSince: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Lookup from a name to the block number and index of the task. + * + * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 + * identities. + **/ + lookup: AugmentedQuery Observable>>, [U8aFixed]> & QueryableStorageEntry; + /** + * Retry configurations for items to be executed, indexed by task address. + **/ + retries: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery | [PezspCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable>, [ITuple<[PezspCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + slots: { + /** + * Amounts held on deposit for each (possibly future) leased parachain. + * + * The actual amount locked on its behalf by any account at any time is the maximum of the + * second values of the items in this list whose first value is the account. + * + * The first item in the list is the amount locked for the current Lease Period. Following + * items are for the subsequent lease periods. + * + * The default value (an empty list) implies that the parachain no longer exists (or never + * existed) as far as this pallet is concerned. + * + * If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it + * will be left-padded with one or more `None`s to denote the fact that nothing is held on + * deposit for the non-existent chain currently, but is held at some point in the future. + * + * It is illegal for a `None` value to trail in the list. + **/ + leases: AugmentedQuery Observable>>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + society: { + /** + * The current bids, stored ordered by the value of the bid. + **/ + bids: AugmentedQuery Observable>, []> & QueryableStorageEntry; + candidates: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The number of challenge rounds there have been. Used to identify stale DefenderVotes. + **/ + challengeRoundCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Votes for the defender, keyed by challenge round. + **/ + defenderVotes: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The defending member currently being challenged, along with a running tally of votes. + **/ + defending: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The first member. + **/ + founder: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The most primary from the most recently approved rank 0 members in the society. + **/ + head: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current items in `Members` keyed by their unique index. Keys are densely populated + * `0..MemberCount` (does not include `MemberCount`). + **/ + memberByIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.) + **/ + memberCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current members and their rank. Doesn't include `SuspendedMembers`. + **/ + members: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Next challenge rotation scheduled with [Config::BlockNumberProvider]. + **/ + nextChallengeAt: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * At the end of the claim period, this contains the most recently approved members (along with + * their bid and round ID) who is from the most recent round with the lowest bid. They will + * become the new `Head`. + **/ + nextHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Next intake rotation scheduled with [Config::BlockNumberProvider]. + **/ + nextIntakeAt: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The max number of members for the society at one time. + **/ + parameters: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Information regarding rank-0 payouts, past and future. + **/ + payouts: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Amount of our account balance that is specifically for the next round's bid(s). + **/ + pot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of rounds which have passed. + **/ + roundCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A hash of the rules of this society concerning membership. Can only be set once and + * only by the founder. + **/ + rules: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current skeptic. + **/ + skeptic: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The set of suspended members, with their old membership record. + **/ + suspendedMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor. + **/ + voteClearCursor: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Double map from Candidate -> Voter -> (Maybe) Vote. + **/ + votes: AugmentedQuery Observable>, [AccountId32, AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + staking: { + /** + * The active era information, it holds index and start. + * + * The active era is the era being currently rewarded. Validator set of this era must be + * equal to [`SessionInterface::validators`]. + **/ + activeEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all locked "stash" accounts to the controller account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + bonded: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A mapping from still-bonded eras to the first session index of that era. + * + * Must contains information for eras for the range: + * `[active_era - bounding_duration; active_era]` + **/ + bondedEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The amount of currency given to reporters of a slash event which was + * canceled by extraordinary circumstances (e.g. governance). + **/ + canceledSlashPayout: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The threshold for when users can start calling `chill_other` for other validators / + * nominators. The threshold is compared to the actual number of validators / nominators + * (`CountFor*`) in the system compared to the configured max (`Max*Count`). + **/ + chillThreshold: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * History of claimed paged rewards by era and validator. + * + * This is keyed by era and validator stash which maps to the set of page indexes which have + * been claimed. + * + * It is removed after [`Config::HistoryDepth`] eras. + **/ + claimedRewards: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForNominators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForValidators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForVirtualStakers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current era index. + * + * This is the latest planned era, depending on how the Session pallet queues the validator + * set, it might be active or not. + **/ + currentEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last planned session scheduled by the session pallet. + * + * This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]. + **/ + currentPlannedSession: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Rewards for the last [`Config::HistoryDepth`] eras. + * If reward hasn't been set or has been removed then 0 reward is returned. + **/ + erasRewardPoints: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Exposure of validator at era. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty exposure is returned. + * + * Note: Deprecated since v14. Use `EraInfo` instead to work with exposures. + **/ + erasStakers: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Clipped Exposure of validator at era. + * + * Note: This is deprecated, should be used as read-only and will be removed in the future. + * New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead. + * + * This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the + * `T::MaxExposurePageSize` biggest stakers. + * (Note: the field `total` and `own` of the exposure remains unchanged). + * This is used to limit the i/o cost for the nominator payout. + * + * This is keyed fist by the era index to allow bulk deletion and then the stash account. + * + * It is removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty exposure is returned. + * + * Note: Deprecated since v14. Use `EraInfo` instead to work with exposures. + **/ + erasStakersClipped: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Summary of validator exposure at a given era. + * + * This contains the total stake in support of the validator and their own stake. In addition, + * it can also be used to get the number of nominators backing this validator and the number of + * exposure pages they are divided into. The page count is useful to determine the number of + * pages of rewards that needs to be claimed. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * Should only be accessed through `EraInfo`. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty overview is returned. + **/ + erasStakersOverview: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Paginated exposure of a validator at given era. + * + * This is keyed first by the era index to allow bulk deletion, then stash account and finally + * the page. Should only be accessed through `EraInfo`. + * + * This is cleared after [`Config::HistoryDepth`] eras. + **/ + erasStakersPaged: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * The session index at which the era start for the last [`Config::HistoryDepth`] eras. + * + * Note: This tracks the starting session (i.e. session index when era start being active) + * for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`. + **/ + erasStartSessionIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The total amount staked for the last [`Config::HistoryDepth`] eras. + * If total hasn't been set or has been removed then 0 stake is returned. + **/ + erasTotalStake: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Similar to `ErasStakers`, this holds the preferences of validators. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + **/ + erasValidatorPrefs: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The total validator era payout for the last [`Config::HistoryDepth`] eras. + * + * Eras that haven't finished yet or has been removed doesn't have reward. + **/ + erasValidatorReward: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Mode of era forcing. + **/ + forceEra: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any validators that may never be slashed or forcibly kicked. It's a Vec since they're + * easy to initialize and the performance hit is minimal (we expect no more than four + * invulnerables) and restricted to testnets. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all (unlocked) "controller" accounts to the info regarding the staking. + * + * Note: All the reads and mutations to this storage *MUST* be done through the methods exposed + * by [`StakingLedger`] to ensure data and lock consistency. + **/ + ledger: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The maximum nominator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxNominatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum staked rewards, i.e. the percentage of the era inflation that + * is used for stake rewards. + * See [Era payout](./index.html#era-payout). + **/ + maxStakedRewards: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The maximum validator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxValidatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum amount of commission that validators can set. + * + * If set to `0`, no limit exists. + **/ + minCommission: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active nominator stake of the last successful election. + **/ + minimumActiveStake: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum number of staking participants before emergency conditions are imposed. + **/ + minimumValidatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a nominator. + **/ + minNominatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a validator. + **/ + minValidatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from nominator stash key to their nomination preferences, namely the validators that + * they wish to support. + * + * Note that the keys of this storage map might become non-decodable in case the + * account's [`NominationsQuota::MaxNominations`] configuration is decreased. + * In this rare case, these nominators + * are still existent in storage, their key is correct and retrievable (i.e. `contains_key` + * indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable + * nominators will effectively not-exist, until they re-submit their preferences such that it + * is within the bounds of the newly set `Config::MaxNominations`. + * + * This implies that `::iter_keys().count()` and `::iter().count()` might return different + * values for this map. Moreover, the main `::count()` is aligned with the former, namely the + * number of keys that exist. + * + * Lastly, if any of the nominators become non-decodable, they can be chilled immediately via + * [`Call::chill_other`] dispatchable by anyone. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + nominators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on nominators, mapped by era to the highest slash value of the era. + **/ + nominatorSlashInEra: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Where the reward payment should be made. Keyed by stash. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + payee: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Slashing spans for stash accounts. + **/ + slashingSpans: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The percentage of the slash that is distributed to reporters. + * + * The rest of the slashed value is handled by the `Slash`. + **/ + slashRewardFraction: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Records information about the maximum slash of a stash within a slashing span, + * as well as how much reward has been paid out. + **/ + spanSlash: AugmentedQuery | [AccountId32 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable, [ITuple<[AccountId32, u32]>]> & QueryableStorageEntry]>; + /** + * All unapplied slashes that are queued for later. + **/ + unappliedSlashes: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The ideal number of active validators. + **/ + validatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from (wannabe) validator stash key to the preferences of that validator. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + validators: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on validators, mapped by era to the highest slash proportion + * and slash value of the era. + **/ + validatorSlashInEra: AugmentedQuery Observable>>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Stakers whose funds are managed by other pallets. + * + * This pallet does not apply any locks on them, therefore they are only virtually bonded. They + * are expected to be keyless accounts and hence should not be allowed to mutate their ledger + * directly via this pallet. Instead, these accounts are managed by other pallets and accessed + * via low level apis. We keep track of them to do minimal integrity checks. + **/ + virtualStakers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stakingAhClient: { + /** + * An incomplete validator set report. + **/ + incompleteValidatorSetReport: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Indicates the current operating mode of the pallet. + * + * This value determines how the pallet behaves in response to incoming and outgoing messages, + * particularly whether it should execute logic directly, defer it, or delegate it entirely. + **/ + mode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A storage value that is set when a `new_session` gives a new validator set to the session + * pallet, and is cleared on the next call. + * + * The inner u32 is the id of the said activated validator set. While not relevant here, good + * to know this is the planning era index of staking-async on AH. + * + * Once cleared, we know a validator set has been activated, and therefore we can send a + * timestamp to AH. + **/ + nextSessionChangesValidators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Internal storage item of [`OffenceSendQueue`]. Should not be used manually. + **/ + offenceSendQueueCursor: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Internal storage item of [`OffenceSendQueue`]. Should not be used manually. + **/ + offenceSendQueueOffences: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * A session report that is outgoing, and should be sent. + * + * This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent, + * or the second value reaches zero, at which point we drop it. + **/ + outgoingSessionReport: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * All of the points of the validators. + * + * This is populated during a session, and is flushed and sent over via [`SendToAssetHub`] + * at each session end. + **/ + validatorPoints: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * The queued validator sets for a given planning session index. + * + * This is received via a call from AssetHub. + **/ + validatorSet: AugmentedQuery Observable]>>>, []> & QueryableStorageEntry; + /** + * The session index at which the latest elected validator set was applied. + * + * This is used to determine if an offence, given a session index, is in the current active era + * or not. + **/ + validatorSetAppliedAt: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The weight reclaimed for the extrinsic. + * + * This information is available until the end of the extrinsic execution. + * More precisely this information is removed in `note_applied_extrinsic`. + * + * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate + * reduction. + **/ + extrinsicWeightReclaimed: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & QueryableStorageEntry; + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + treasury: { + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposal indices that have been approved but not yet awarded. + **/ + approvals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The amount which has been reported as inactive to Currency. + **/ + deactivated: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The blocknumber for the last triggered spend period. + **/ + lastSpendPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Number of proposals that have been made. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposals that have been made. + **/ + proposals: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The count of spends that have been made. + **/ + spendCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Spends that have been approved and being processed. + **/ + spends: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + vesting: { + /** + * Storage version of the pallet. + * + * New networks start with latest version, as determined by the genesis build. + **/ + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information regarding the vesting of a given account. + **/ + vesting: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + voterList: { + /** + * Counter for the related counted storage map + **/ + counterForListNodes: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A bag stored in storage. + * + * Stores a `Bag` struct, which stores head and tail pointers to itself. + **/ + listBags: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * A single node, within some bag. + * + * Nodes store links forward and back within their respective bags. + **/ + listNodes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Lock all updates to this pallet. + * + * If any nodes needs updating, removal or addition due to a temporary lock, the + * [`Call::rebag`] can be used. + **/ + lock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pointer that remembers the next node that will be auto-rebagged. + * When `None`, the next scan will start from the list head again. + **/ + nextNodeAutoRebagged: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + whitelist: { + whitelistedCall: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + xcmPallet: { + /** + * The existing asset traps. + * + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ + assetTraps: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * Map of authorized aliasers of local origins. Each local location can authorize a list of + * other locations to alias into it. Each aliaser is only valid until its inner `expiry` + * block number. + **/ + authorizedAliases: AugmentedQuery Observable>, [XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The current migration's stage, if any. + **/ + currentMigration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on this chain. + **/ + lockedFungibles: AugmentedQuery Observable>>>, [AccountId32]> & QueryableStorageEntry; + /** + * The ongoing queries. + **/ + queries: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The latest available query index. + **/ + queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on a remote chain. + **/ + remoteLockedFungibles: AugmentedQuery Observable>, [u32, AccountId32, XcmVersionedAssetId]> & QueryableStorageEntry; + /** + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ + safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Latest versions that we know various locations support. + **/ + supportedVersion: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ + versionDiscoveryQueue: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * All locations that we have requested version notifications from. + **/ + versionNotifiers: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ + versionNotifyTargets: AugmentedQuery Observable>>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Global suspension state of the XCM executor. + **/ + xcmExecutionSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } // AugmentedQueries +} // declare module diff --git a/packages/api-augment/src/dicle/runtime.ts b/packages/api-augment/src/dicle/runtime.ts new file mode 100644 index 0000000..a1e506d --- /dev/null +++ b/packages/api-augment/src/dicle/runtime.ts @@ -0,0 +1,610 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/calls'; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@pezkuwi/api-base/types'; +import type { BTreeMap, BitVec, Bytes, Null, Option, Result, Text, Vec, bool, u128, u32, u64 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { OpaqueKeyOwnershipProof } from '@pezkuwi/types/interfaces/babe'; +import type { Extrinsic } from '@pezkuwi/types/interfaces/extrinsics'; +import type { OpaqueMetadata } from '@pezkuwi/types/interfaces/metadata'; +import type { AccountId32, H256, OriginCaller, RuntimeCall, Slot } from '@pezkuwi/types/interfaces/runtime'; +import type { ParaId, ValidationCodeHash } from '@pezkuwi/types/interfaces/teyrchains'; +import type { PezkuwiCorePrimitivesInboundDownwardMessage, PezkuwiCorePrimitivesInboundHrmpMessage, PezkuwiPrimitivesV8ApprovalVotingParams, PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams, PezkuwiPrimitivesV8CandidateCommitments, PezkuwiPrimitivesV8DisputeState, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8GroupRotationInfo, PezkuwiPrimitivesV8OccupiedCoreAssumption, PezkuwiPrimitivesV8PersistedValidationData, PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8SessionInfo, PezkuwiPrimitivesV8SlashingDisputeProof, PezkuwiPrimitivesV8SlashingPendingSlashes, PezkuwiPrimitivesV8ValidatorAppPublic, PezkuwiPrimitivesV8ValidatorAppSignature, PezkuwiPrimitivesVstagingAsyncBackingBackingState, PezkuwiPrimitivesVstagingAsyncBackingConstraints, PezkuwiPrimitivesVstagingCandidateEvent, PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2, PezkuwiPrimitivesVstagingCoreState, PezkuwiPrimitivesVstagingScrapedOnChainVotes, PezpalletTransactionPaymentFeeDetails, PezpalletTransactionPaymentRuntimeDispatchInfo, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeConfiguration, PezspConsensusBabeEpoch, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyForkVotingProofOpaqueValue, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusBeefyMmrBeefyAuthoritySet, PezspConsensusBeefyValidatorSet, PezspConsensusGrandpaAppPublic, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspCoreCryptoKeyTypeId, PezspInherentsCheckInherentsResult, PezspInherentsInherentData, PezspMmrPrimitivesError, PezspMmrPrimitivesLeafProof, PezspRuntimeBlock, PezspRuntimeDispatchError, PezspRuntimeExtrinsicInclusionMode, PezspRuntimeHeader, PezspRuntimeTransactionValidityTransactionSource, PezspRuntimeTransactionValidityTransactionValidityError, PezspRuntimeTransactionValidityValidTransaction, PezspVersionRuntimeVersion, PezspWeightsWeightV2Weight, RelayCommonApisInflationInfo, XcmRuntimeApisConversionsError, XcmRuntimeApisDryRunCallDryRunEffects, XcmRuntimeApisDryRunError, XcmRuntimeApisDryRunXcmDryRunEffects, XcmRuntimeApisFeesError, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; +import type { IExtrinsic, Observable } from '@pezkuwi/types/types'; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module '@pezkuwi/api-base/types/calls' { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/ */ + accountNonceApi: { + /** + * Get current account nonce of given `AccountId`. + **/ + accountNonce: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x687ad44ad37f03c2/ */ + authorityDiscoveryApi: { + /** + * Retrieve authority identifiers of the current and next authority set. + **/ + authorities: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xcbca25e39f142387/ */ + babeApi: { + /** + * Return the configuration for BABE. + **/ + configuration: AugmentedCall Observable>; + /** + * Returns information regarding the current epoch. + **/ + currentEpoch: AugmentedCall Observable>; + /** + * Returns the slot that started the current epoch. + **/ + currentEpochStart: AugmentedCall Observable>; + /** + * Generates a proof of key ownership for the given authority in the, current epoch. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `slot` as parameter the current, implementations ignores this parameter and instead relies on this, method being called at the correct block height, i.e. any point at, which the epoch for the given slot is live on-chain. Future, implementations will instead use indexed data through an offchain, worker, not requiring older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Returns information regarding the next epoch (which was already, previously announced). + **/ + nextEpoch: AugmentedCall Observable>; + /** + * Submits an unsigned extrinsic to report an equivocation. The caller, must provide the equivocation proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportEquivocationUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x49eaaf1b548a0cb0/ */ + beefyApi: { + /** + * Return the block number where BEEFY consensus is enabled/started + **/ + beefyGenesis: AugmentedCall Observable>>; + /** + * Generates a proof that the `prev_block_number` is part of the canonical chain at, `best_known_block_number`. + **/ + generateAncestryProof: AugmentedCall | null | Uint8Array | u32 | AnyNumber) => Observable>>; + /** + * Generates a proof of key ownership for the given authority in the, given set. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `set_id` as parameter the current, implementations ignores this parameter and instead relies on this, method being called at the correct block height, i.e. any point at, which the given set id is live on-chain. Future implementations will, instead use indexed data through an offchain worker, not requiring, older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a double voting equivocation. The caller, must provide the double voting proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportDoubleVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a fork voting equivocation. The caller, must provide the fork voting proof (the ancestry proof should be obtained using, `generate_ancestry_proof`) and a key ownership proof (should be obtained using, `generate_key_ownership_proof`). The extrinsic will be unsigned and should only, be accepted for local authorship (not to be broadcast to the network). This method, returns `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportForkVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a future block voting equivocation. The caller, must provide the future block voting proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`)., The extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportFutureBlockVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Return the current active BEEFY validator set + **/ + validatorSet: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x2a5e924655399e60/ */ + beefyMmrApi: { + /** + * Return the currently active BEEFY authority set proof. + **/ + authoritySetProof: AugmentedCall Observable>; + /** + * Return the next/queued BEEFY authority set proof. + **/ + nextAuthoritySetProof: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/ */ + blockBuilder: { + /** + * Apply the given extrinsic.,, Returns an inclusion outcome which specifies if this extrinsic is included in, this block or not. + **/ + applyExtrinsic: AugmentedCall Observable, PezspRuntimeTransactionValidityTransactionValidityError>>>; + /** + * Check that the inherents are valid. The inherent data will vary from chain to chain. + **/ + checkInherents: AugmentedCall Observable>; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable>; + /** + * Generate inherent extrinsics. The inherent data will vary from chain to chain. + **/ + inherentExtrinsics: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/ */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall Observable>; + /** + * Initialize a block with the given header and return the runtime executive mode. + **/ + initializeBlock: AugmentedCall Observable>; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91b1c8b16328eb92/ */ + dryRunApi: { + /** + * Dry run call V2. + **/ + dryRunCall: AugmentedCall Observable>>; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/ */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the, storage.,, In the case of a FRAME-based runtime, this function deserializes the full, `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the, provided JSON blob is incorrect or incomplete or the deserialization fails, an error, is returned.,, Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no, defaults will be used. + **/ + buildState: AugmentedCall Observable>>; + /** + * Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by, `id`.,, If `id` is `None` the function should return JSON blob representation of the default, `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default, `RuntimeGenesisConfig`.,, Otherwise function returns a JSON representation of the built-in, named, `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not, exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of, (potentially nested) key-value pairs that are intended for customizing the default, runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation, of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can, be used in `build_state` method. + **/ + getPreset: AugmentedCall | null | Uint8Array | Text | string) => Observable>>; + /** + * Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.,, The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If, no named presets are provided by the runtime the list is empty. + **/ + presetNames: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xed99c5acb25eedf5/ */ + grandpaApi: { + /** + * Get current GRANDPA authority set id. + **/ + currentSetId: AugmentedCall Observable>; + /** + * Generates a proof of key ownership for the given authority in the, given set. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `set_id` as parameter the current, implementations ignore this parameter and instead rely on this, method being called at the correct block height, i.e. any point at, which the given set id is live on-chain. Future implementations will, instead use indexed data through an offchain worker, not requiring, older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Get the current GRANDPA authorities and weights. This should not change except, for when changes are scheduled and the corresponding delay has passed.,, When called at block B, it will return the set of authorities that should be, used to finalize descendants of this block (B+1, B+2, ...). The block B itself, is finalized by the authorities from block B-1. + **/ + grandpaAuthorities: AugmentedCall Observable>>>; + /** + * Submits an unsigned extrinsic to report an equivocation. The caller, must provide the equivocation proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportEquivocationUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xc51ff1fa3f5d0cca/ */ + inflation: { + /** + * Return the current estimates of the inflation amount.,, This is marked as experimental in light of RFC#89. Nonetheless, its usage is highly, recommended over trying to read-storage, or re-create the onchain logic. + **/ + experimentalInflationPredictionInfo: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x9ffb505aa738d69c/ */ + locationToAccountApi: { + /** + * Converts `Location` to `AccountId`. + **/ + convertLocation: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/ */ + metadata: { + /** + * Returns the metadata of a runtime. + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version.,, If the given `version` isn't supported, this will return `None`., Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime. + **/ + metadataAtVersion: AugmentedCall Observable>>; + /** + * Returns the supported metadata versions.,, This can be used to call `metadata_at_version`. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91d5df18b0d2cf58/ */ + mmrApi: { + /** + * Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,, use historical MMR state at given block height `n`. Else, use current MMR state. + **/ + generateProof: AugmentedCall | (u32 | AnyNumber | Uint8Array)[], best_known_block_number: Option | null | Uint8Array | u32 | AnyNumber) => Observable, PezspMmrPrimitivesLeafProof]>, PezspMmrPrimitivesError>>>; + /** + * Return the number of MMR blocks in the chain. + **/ + mmrLeafCount: AugmentedCall Observable>>; + /** + * Return the on-chain MMR root hash. + **/ + mmrRoot: AugmentedCall Observable>>; + /** + * Verify MMR proof against on-chain MMR for a batch of leaves.,, Note this function will use on-chain MMR root hash and check if the proof matches the hash., Note, the leaves should be sorted such that corresponding leaves and leaf indices have the, same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof] + **/ + verifyProof: AugmentedCall | (Bytes | string | Uint8Array)[], proof: PezspMmrPrimitivesLeafProof) => Observable>>; + /** + * Verify MMR proof against given root hash for a batch of leaves.,, Note this function does not require any on-chain storage - the, proof is verified against given MMR root hash.,, Note, the leaves should be sorted such that corresponding leaves and leaf indices have the, same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof] + **/ + verifyProofStateless: AugmentedCall | (Bytes | string | Uint8Array)[], proof: PezspMmrPrimitivesLeafProof) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x17a6bc0d0062aeb3/ */ + nominationPoolsApi: { + /** + * Returns the equivalent points of `new_funds` for a given pool. + **/ + balanceToPoints: AugmentedCall Observable>; + /** + * Returns true if the delegated funds of the pool `member` needs migration.,, Once a pool has successfully migrated to the strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the, member can be migrated from pool account to the member's account. Use, [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation), to migrate the funds of the pool member. + **/ + memberNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool member.,, If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on, chain. + **/ + memberPendingSlash: AugmentedCall Observable>; + /** + * Returns the total contribution of a pool member including any balance that is unbonding. + **/ + memberTotalBalance: AugmentedCall Observable>; + /** + * Returns the pending rewards for the member that the AccountId was given for. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Returns the equivalent balance of `points` for a given pool. + **/ + pointsToBalance: AugmentedCall Observable>; + /** + * Returns the bonded account and reward account associated with the pool_id. + **/ + poolAccounts: AugmentedCall Observable>>; + /** + * Total balance contributed to the pool. + **/ + poolBalance: AugmentedCall Observable>; + /** + * Returns true if the pool with `pool_id` needs migration.,, This can happen when the `pallet-nomination-pools` has switched to using strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool, still has funds that were staked using the older strategy, [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use, [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake), to migrate the pool. + **/ + poolNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool. + **/ + poolPendingSlash: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/ */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xaf2c0297a23e6d3d/ */ + parachainHost: { + /** + * Approval voting configuration parameters + **/ + approvalVotingParams: AugmentedCall Observable>; + /** + * Returns the persisted validation data for the given `ParaId` along with the corresponding, validation code hash. Instead of accepting assumption about the para, matches the validation, data hash against an expected one and yields `None` if they're not equal. + **/ + assumedValidationData: AugmentedCall Observable>>>; + /** + * Returns candidate's acceptance limitations for asynchronous backing for a relay parent. + **/ + asyncBackingParams: AugmentedCall Observable>; + /** + * Yields information on all availability cores as relevant to the child block., Cores are either free or occupied. Free cores can have paras assigned to them. + **/ + availabilityCores: AugmentedCall Observable>>; + /** + * Returns the constraints on the actions that can be taken by a new parachain, block. + **/ + backingConstraints: AugmentedCall Observable>>; + /** + * Get a vector of events concerning candidates that occurred within a block. + **/ + candidateEvents: AugmentedCall Observable>>; + /** + * Get the receipt of a candidate pending availability. This returns `Some` for any paras, assigned to occupied cores in `availability_cores` and `None` otherwise. + **/ + candidatePendingAvailability: AugmentedCall Observable>>; + /** + * Elastic scaling support + **/ + candidatesPendingAvailability: AugmentedCall Observable>>; + /** + * Checks if the given validation outputs pass the acceptance criteria. + **/ + checkValidationOutputs: AugmentedCall Observable>; + /** + * Claim queue + **/ + claimQueue: AugmentedCall Observable>>>; + /** + * Returns a list of all disabled validators at the given block. + **/ + disabledValidators: AugmentedCall Observable>>; + /** + * Returns all onchain disputes. + **/ + disputes: AugmentedCall Observable>>>; + /** + * Get all the pending inbound messages in the downward message queue for a para. + **/ + dmqContents: AugmentedCall Observable>>; + /** + * Get the contents of all channels addressed to the given recipient. Channels that have no, messages in them are also included. + **/ + inboundHrmpChannelsContents: AugmentedCall Observable>>>; + /** + * Returns a merkle proof of a validator session key., NOTE: This function is only available since parachain host version 5. + **/ + keyOwnershipProof: AugmentedCall Observable>>; + /** + * Get the minimum number of backing votes for a parachain candidate., This is a staging method! Do not use on production runtimes! + **/ + minimumBackingVotes: AugmentedCall Observable>; + /** + * Get node features., This is a staging method! Do not use on production runtimes! + **/ + nodeFeatures: AugmentedCall Observable>; + /** + * Scrape dispute relevant from on-chain, backing votes and resolved disputes. + **/ + onChainVotes: AugmentedCall Observable>>; + /** + * Returns the state of parachain backing for a given para. + **/ + paraBackingState: AugmentedCall Observable>>; + /** + * Yields the persisted validation data for the given `ParaId` along with an assumption that, should be used if the para currently occupies a core.,, Returns `None` if either the para is not registered or the assumption is `Freed`, and the para already occupies a core. + **/ + persistedValidationData: AugmentedCall Observable>>; + /** + * Returns code hashes of PVFs that require pre-checking by validators in the active set.,, NOTE: This function is only available since parachain host version 2. + **/ + pvfsRequirePrecheck: AugmentedCall Observable>>; + /** + * Retrieve the scheduling lookahead + **/ + schedulingLookahead: AugmentedCall Observable>; + /** + * Returns execution parameters for the session. + **/ + sessionExecutorParams: AugmentedCall Observable>>; + /** + * Returns the session index expected at a child of the block.,, This can be used to instantiate a `SigningContext`. + **/ + sessionIndexForChild: AugmentedCall Observable>; + /** + * Get the session info for the given session, if stored.,, NOTE: This function is only available since parachain host version 2. + **/ + sessionInfo: AugmentedCall Observable>>; + /** + * Submits a PVF pre-checking statement into the transaction pool.,, NOTE: This function is only available since parachain host version 2. + **/ + submitPvfCheckStatement: AugmentedCall Observable>; + /** + * Submit an unsigned extrinsic to slash validators who lost a dispute about, a candidate of a past session., NOTE: This function is only available since parachain host version 5. + **/ + submitReportDisputeLost: AugmentedCall Observable>>; + /** + * Returns a list of validators that lost a past session dispute and need to be slashed., NOTE: This function is only available since parachain host version 5. + **/ + unappliedSlashes: AugmentedCall Observable>>>; + /** + * Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.,, Returns `None` if either the para is not registered or the assumption is `Freed`, and the para already occupies a core. + **/ + validationCode: AugmentedCall Observable>>; + /** + * Retrieve the maximum uncompressed code size. + **/ + validationCodeBombLimit: AugmentedCall Observable>; + /** + * Get the validation code from its hash. + **/ + validationCodeByHash: AugmentedCall Observable>>; + /** + * Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.,, NOTE: This function is only available since parachain host version 2. + **/ + validationCodeHash: AugmentedCall Observable>>; + /** + * Returns the validator groups and rotation info localized based on the hypothetical child, of a block whose state this is invoked on. Note that `now` in the `GroupRotationInfo`, should be the successor of the number of the block. + **/ + validatorGroups: AugmentedCall Observable>, PezkuwiPrimitivesV8GroupRotationInfo]>>>; + /** + * Get the current validators. + **/ + validators: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/ */ + sessionKeys: { + /** + * Decode the given public session keys.,, Returns the list of public raw public keys + key type. + **/ + decodeSessionKeys: AugmentedCall Observable>>>>; + /** + * Generate a set of session keys with optionally using the given seed., The keys should be stored within the keystore exposed via runtime, externalities.,, The seed needs to be a valid `utf8` string.,, Returns the concatenated SCALE encoded public keys. + **/ + generateSessionKeys: AugmentedCall | null | Uint8Array | Bytes | string) => Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x18ef58a3b67ba770/ */ + stakingApi: { + /** + * Returns the page count of exposures for a validator `account` in a given era. + **/ + erasStakersPageCount: AugmentedCall Observable>; + /** + * Returns the nominations quota for a nominator with a given balance. + **/ + nominationsQuota: AugmentedCall Observable>; + /** + * Returns true if validator `account` has pages to be claimed for the given era. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/ */ + taggedTransactionQueue: { + /** + * Validate the transaction.,, This method is invoked by the transaction pool to learn details about given transaction., The implementation should make sure to verify the correctness of the transaction, against current state. The given `block_hash` corresponds to the hash of the block, that is used as current state.,, Note that this call may be performed by the pool multiple times and transactions, might be verified in any possible order. + **/ + validateTransaction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/ */ + transactionPaymentApi: { + /** + * + **/ + queryFeeDetails: AugmentedCall Observable>; + /** + * + **/ + queryInfo: AugmentedCall Observable>; + /** + * + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/ */ + transactionPaymentCallApi: { + /** + * Query fee details of a given encoded `Call`. + **/ + queryCallFeeDetails: AugmentedCall Observable>; + /** + * Query information of a dispatch class, weight, and fee of a given encoded `Call`. + **/ + queryCallInfo: AugmentedCall Observable>; + /** + * Query the output of the current `LengthToFee` given some input. + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * Query the output of the current `WeightToFee` given some input. + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6ff52ee858e6c5bd/ */ + xcmPaymentApi: { + /** + * Returns a list of acceptable payment assets.,, # Arguments,, * `xcm_version`: Version. + **/ + queryAcceptablePaymentAssets: AugmentedCall Observable, XcmRuntimeApisFeesError>>>; + /** + * Get delivery fees for sending a specific `message` to a `destination`., These always come in a specific asset, defined by the chain.,, # Arguments, * `message`: The message that'll be sent, necessary because most delivery fees are based on the, size of the message., * `destination`: The destination to send the message to. Different destinations may use, different senders that charge different fees. + **/ + queryDeliveryFees: AugmentedCall Observable>>; + /** + * Converts a weight into a fee for the specified `AssetId`.,, # Arguments,, * `weight`: convertible `Weight`., * `asset`: `VersionedAssetId`. + **/ + queryWeightToAssetFee: AugmentedCall Observable>>; + /** + * Returns a weight needed to execute a XCM.,, # Arguments,, * `message`: `VersionedXcm`. + **/ + queryXcmWeight: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/packages/api-augment/src/dicle/tx.ts b/packages/api-augment/src/dicle/tx.ts new file mode 100644 index 0000000..88e13f8 --- /dev/null +++ b/packages/api-augment/src/dicle/tx.ts @@ -0,0 +1,4724 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/submittable'; + +import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@pezkuwi/api-base/types'; +import type { Bytes, Compact, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, MultiAddress, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { DicleRuntimeConstantsProxyProxyType, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime, PezkuwiPrimitivesV8ApprovalVotingParams, PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8SchedulerParams, PezkuwiPrimitivesV8ValidatorAppSignature, PezkuwiPrimitivesVstagingDisputeProof, PezkuwiPrimitivesVstagingInherentData, PezkuwiRuntimeCommonClaimsEcdsaSignature, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBalancesAdjustmentDirection, PezpalletBrokerCoretimeInterfaceCoreAssignment, PezpalletConvictionVotingConviction, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletMultisigTimepoint, PezpalletNominationPoolsBondExtra, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpPerbill, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsPoolState, PezpalletRcMigratorManagerMultisigVote, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletStakingAsyncAhClientOperatingMode, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingRewardDestination, PezpalletStakingUnlockChunk, PezpalletStakingValidatorPrefs, PezpalletVestingVestingInfo, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyForkVotingProofAncestryProof, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspNposElectionsElectionScore, PezspNposElectionsSupport, PezspRuntimeMultiSignature, PezspRuntimeMultiSigner, PezspSessionMembershipProof, PezspWeightsWeightV2Weight, StagingDicleRuntimeOriginCaller, StagingDicleRuntimeRuntimeParameters, StagingDicleRuntimeSessionKeys, StagingXcmExecutorAssetTransferTransferType, StagingXcmV5Location, StagingXcmV5Response, XcmV3WeightLimit, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = SubmittableExtrinsicFunction; + +declare module '@pezkuwi/api-base/types/submittable' { + interface AugmentedSubmittables { + assetRate: { + /** + * Initialize a conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + create: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Remove an existing conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + remove: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]>; + /** + * Update the conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + update: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + auctions: { + /** + * Make a new bid from an account (including a parachain account) for deploying a new + * parachain. + * + * Multiple simultaneous bids from the same bidder are allowed only as long as all active + * bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted. + * + * - `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and + * funded by) the same account. + * - `auction_index` is the index of the auction to bid on. Should just be the present + * value of `AuctionCounter`. + * - `first_slot` is the first lease period index of the range to bid on. This is the + * absolute lease period index value, not an auction-specific offset. + * - `last_slot` is the last lease period index of the range to bid on. This is the + * absolute lease period index value, not an auction-specific offset. + * - `amount` is the amount to bid to be held as deposit for the parachain should the + * bid win. This amount is held throughout the range. + **/ + bid: AugmentedSubmittable<(para: Compact | AnyNumber | Uint8Array, auctionIndex: Compact | AnyNumber | Uint8Array, firstSlot: Compact | AnyNumber | Uint8Array, lastSlot: Compact | AnyNumber | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Compact, Compact, Compact]>; + /** + * Cancel an in-progress auction. + * + * Can only be called by Root origin. + **/ + cancelAuction: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a new auction. + * + * This can only happen when there isn't already an auction in progress and may only be + * called by the root origin. Accepts the `duration` of this auction and the + * `lease_period_index` of the initial lease period of the four that are to be auctioned. + **/ + newAuction: AugmentedSubmittable<(duration: Compact | AnyNumber | Uint8Array, leasePeriodIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + babe: { + /** + * Plan an epoch config change. The epoch config change is recorded and will be enacted on + * the next call to `enact_epoch_change`. The config will be activated one epoch after. + * Multiple calls to this method will replace any existing planned config change that had + * not been enacted yet. + **/ + planConfigChange: AugmentedSubmittable<(config: PezspConsensusBabeDigestsNextConfigDescriptor) => SubmittableExtrinsic, [PezspConsensusBabeDigestsNextConfigDescriptor]>; + /** + * Report authority equivocation/misbehavior. This method will verify + * the equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence will + * be reported. + **/ + reportEquivocation: AugmentedSubmittable<(equivocationProof: PezspConsensusSlotsEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusSlotsEquivocationProof, PezspSessionMembershipProof]>; + /** + * Report authority equivocation/misbehavior. This method will verify + * the equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence will + * be reported. + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusSlotsEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusSlotsEquivocationProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable<(direction: PezpalletBalancesAdjustmentDirection, delta: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBalancesAdjustmentDirection, Compact]>; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Compact]>; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128]>; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable<(who: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + beefy: { + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + **/ + reportDoubleVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyDoubleVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyDoubleVotingProof, PezspSessionMembershipProof]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportDoubleVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyDoubleVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyDoubleVotingProof, PezspSessionMembershipProof]>; + /** + * Report fork voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + **/ + reportForkVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyForkVotingProofAncestryProof, PezspSessionMembershipProof]>; + /** + * Report fork voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportForkVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyForkVotingProofAncestryProof, PezspSessionMembershipProof]>; + /** + * Report future block voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + **/ + reportFutureBlockVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyFutureBlockVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyFutureBlockVotingProof, PezspSessionMembershipProof]>; + /** + * Report future block voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportFutureBlockVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyFutureBlockVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyFutureBlockVotingProof, PezspSessionMembershipProof]>; + /** + * Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the + * future. + * + * Note: `delay_in_blocks` has to be at least 1. + **/ + setNewGenesis: AugmentedSubmittable<(delayInBlocks: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bounties: { + /** + * Accept the curator role for a bounty. + * A deposit will be reserved from curator and refund upon successful payout. + * + * May only be called from the curator. + * + * ## Complexity + * - O(1). + **/ + acceptCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve a bounty proposal. At a later time, the bounty will be funded and become active + * and the original deposit will be returned. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + approveBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve bountry and propose a curator simultaneously. + * This call is a shortcut to calling `approve_bounty` and `propose_curator` separately. + * + * May only be called from `T::SpendOrigin`. + * + * - `bounty_id`: Bounty ID to approve. + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * + * ## Complexity + * - O(1). + **/ + approveBountyWithCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Award bounty to a beneficiary account. The beneficiary will be able to claim the funds + * after a delay. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to award. + * - `beneficiary`: The beneficiary account whom will receive the payout. + * + * ## Complexity + * - O(1). + **/ + awardBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Claim the payout from an awarded bounty after payout delay. + * + * The dispatch origin for this call must be the beneficiary of this bounty. + * + * - `bounty_id`: Bounty ID to claim. + * + * ## Complexity + * - O(1). + **/ + claimBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel a proposed or active bounty. All the funds will be sent to treasury and + * the curator deposit will be unreserved if possible. + * + * Only `T::RejectOrigin` is able to cancel a bounty. + * + * - `bounty_id`: Bounty ID to cancel. + * + * ## Complexity + * - O(1). + **/ + closeBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Extend the expiry time of an active bounty. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to extend. + * - `remark`: additional information. + * + * ## Complexity + * - O(1). + **/ + extendBountyExpiry: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Poke the deposit reserved for creating a bounty proposal. + * + * This can be used by accounts to update their reserved amount. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `bounty_id`: The bounty id for which to adjust the deposit. + * + * If the deposit is updated, the difference will be reserved/unreserved from the + * proposer's account. + * + * The transaction is made free if the deposit is updated and paid otherwise. + * + * Emits `DepositPoked` if the deposit is updated. + **/ + pokeDeposit: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose a new bounty. + * + * The dispatch origin for this call must be _Signed_. + * + * Payment: `TipReportDepositBase` will be reserved from the origin account, as well as + * `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval, + * or slashed when rejected. + * + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * - `value`: The total payment amount of this bounty, curator fee included. + * - `description`: The description of this bounty. + **/ + proposeBounty: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Propose a curator to a funded bounty. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + proposeCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a bounty. + * + * This function can only be called by the `RejectOrigin` a signed origin. + * + * If this function is called by the `RejectOrigin`, we assume that the curator is + * malicious or inactive. As a result, we will slash the curator when possible. + * + * If the origin is the curator, we take this as a sign they are unable to do their job and + * they willingly give up. We could slash them, but for now we allow them to recover their + * deposit and exit without issue. (We may want to change this if it is abused.) + * + * Finally, the origin can be anyone if and only if the curator is "inactive". This allows + * anyone in the community to call out that a curator is not doing their due diligence, and + * we should pick a new curator. In this case the curator should also be slashed. + * + * ## Complexity + * - O(1). + **/ + unassignCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + childBounties: { + /** + * Accept the curator role for the child-bounty. + * + * The dispatch origin for this call must be the curator of this + * child-bounty. + * + * A deposit will be reserved from the curator and refund upon + * successful payout or cancellation. + * + * Fee for curator is deducted from curator fee of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "CuratorProposed" state, for processing the + * call. And state of child-bounty is moved to "Active" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + acceptCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Add a new child-bounty. + * + * The dispatch origin for this call must be the curator of parent + * bounty and the parent bounty must be in "active" state. + * + * Child-bounty gets added successfully & fund gets transferred from + * parent bounty to child-bounty account, if parent bounty has enough + * funds, else the call fails. + * + * Upper bound to maximum number of active child bounties that can be + * added are managed via runtime trait config + * [`Config::MaxActiveChildBountyCount`]. + * + * If the call is success, the status of child-bounty is updated to + * "Added". + * + * - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added. + * - `value`: Value for executing the proposal. + * - `description`: Text description for the child-bounty. + **/ + addChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Bytes]>; + /** + * Award child-bounty to a beneficiary. + * + * The beneficiary will be able to claim the funds after a delay. + * + * The dispatch origin for this call must be the parent curator or + * curator of this child-bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in active state, for processing the call. And + * state of child-bounty is moved to "PendingPayout" on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `beneficiary`: Beneficiary account. + **/ + awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress]>; + /** + * Claim the payout from an awarded child-bounty after payout delay. + * + * The dispatch origin for this call may be any signed origin. + * + * Call works independent of parent bounty state, No need for parent + * bounty to be in active state. + * + * The Beneficiary is paid out with agreed bounty value. Curator fee is + * paid & curator deposit is unreserved. + * + * Child-bounty must be in "PendingPayout" state, for processing the + * call. And instance of child-bounty is removed from the state on + * successful call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Cancel a proposed or active child-bounty. Child-bounty account funds + * are transferred to parent bounty account. The child-bounty curator + * deposit may be unreserved if possible. + * + * The dispatch origin for this call must be either parent curator or + * `T::RejectOrigin`. + * + * If the state of child-bounty is `Active`, curator deposit is + * unreserved. + * + * If the state of child-bounty is `PendingPayout`, call fails & + * returns `PendingPayout` error. + * + * For the origin other than T::RejectOrigin, parent bounty must be in + * active state, for this child-bounty call to work. For origin + * T::RejectOrigin execution is forced. + * + * Instance of child-bounty is removed from the state on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Propose curator for funded child-bounty. + * + * The dispatch origin for this call must be curator of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "Added" state, for processing the call. And + * state of child-bounty is moved to "CuratorProposed" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `curator`: Address of child-bounty curator. + * - `fee`: payment fee to child-bounty curator for execution. + **/ + proposeCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a child-bounty. + * + * The dispatch origin for this call can be either `RejectOrigin`, or + * the curator of the parent bounty, or any signed origin. + * + * For the origin other than T::RejectOrigin and the child-bounty + * curator, parent bounty must be in active state, for this call to + * work. We allow child-bounty curator and T::RejectOrigin to execute + * this call irrespective of the parent bounty state. + * + * If this function is called by the `RejectOrigin` or the + * parent bounty curator, we assume that the child-bounty curator is + * malicious or inactive. As a result, child-bounty curator deposit is + * slashed. + * + * If the origin is the child-bounty curator, we take this as a sign + * that they are unable to do their job, and are willingly giving up. + * We could slash the deposit, but for now we allow them to unreserve + * their deposit and exit without issue. (We may want to change this if + * it is abused.) + * + * Finally, the origin can be anyone iff the child-bounty curator is + * "inactive". Expiry update due of parent bounty is used to estimate + * inactive state of child-bounty curator. + * + * This allows anyone in the community to call out that a child-bounty + * curator is not doing their due diligence, and we should pick a new + * one. In this case the child-bounty curator deposit is slashed. + * + * State of child-bounty is moved to Added state on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + unassignCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + claims: { + /** + * Attest to a statement, needed to finalize the claims process. + * + * WARNING: Insecure unless your chain includes `PrevalidateAttests` as a + * `TransactionExtension`. + * + * Unsigned Validation: + * A call to attest is deemed valid if the sender has a `Preclaim` registered + * and provides a `statement` which is expected for the account. + * + * Parameters: + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to do pre-validation on `attest` call. + * + * Total Complexity: O(1) + * + **/ + attest: AugmentedSubmittable<(statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make a claim to collect your DOTs. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to claim is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address) + * + * and `address` matches the `dest` account. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim` call. + * + * Total Complexity: O(1) + * + **/ + claim: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature]>; + /** + * Make a claim to collect your DOTs by signing a statement. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to `claim_attest` is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address)(statement) + * + * and `address` matches the `dest` account; the `statement` must match that which is + * expected according to your purchase arrangement. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim_attest` call. + * + * Total Complexity: O(1) + * + **/ + claimAttest: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature, statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature, Bytes]>; + /** + * Mint a new claim to collect DOTs. + * + * The dispatch origin for this call must be _Root_. + * + * Parameters: + * - `who`: The Ethereum address allowed to collect this claim. + * - `value`: The number of DOTs that will be claimed. + * - `vesting_schedule`: An optional vesting schedule for these DOTs. + * + * + * The weight of this call is invariant over the input parameters. + * We assume worst case that both vesting and statement is being inserted. + * + * Total Complexity: O(1) + * + **/ + mintClaim: AugmentedSubmittable<(who: PezkuwiRuntimeCommonClaimsEthereumAddress, value: u128 | AnyNumber | Uint8Array, vestingSchedule: Option> | null | Uint8Array | ITuple<[u128, u128, u32]> | [u128 | AnyNumber | Uint8Array, u128 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], statement: Option | null | Uint8Array | PezkuwiRuntimeCommonClaimsStatementKind) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, u128, Option>, Option]>; + moveClaim: AugmentedSubmittable<(old: PezkuwiRuntimeCommonClaimsEthereumAddress, updated: PezkuwiRuntimeCommonClaimsEthereumAddress, maybePreclaim: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsEthereumAddress, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + configuration: { + /** + * Set approval-voting-params. + **/ + setApprovalVotingParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8ApprovalVotingParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8ApprovalVotingParams]>; + /** + * Set the asynchronous backing parameters. + **/ + setAsyncBackingParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams]>; + /** + * Setting this to true will disable consistency checks for the configuration setters. + * Use with caution. + **/ + setBypassConsistencyCheck: AugmentedSubmittable<(updated: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Set the acceptance period for an included candidate. + **/ + setCodeRetentionPeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of coretime execution cores. + * + * NOTE: that this configuration is managed by the coretime chain. Only manually change + * this, if you really know what you are doing! + **/ + setCoretimeCores: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the dispute period, in number of sessions to keep for disputes. + **/ + setDisputePeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the dispute post conclusion acceptance period. + **/ + setDisputePostConclusionAcceptancePeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set PVF executor parameters. + **/ + setExecutorParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8ExecutorParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8ExecutorParams]>; + /** + * Set the parachain validator-group rotation frequency + **/ + setGroupRotationFrequency: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of messages allowed in an HRMP channel at once. + **/ + setHrmpChannelMaxCapacity: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum size of a message that could ever be put into an HRMP channel. + **/ + setHrmpChannelMaxMessageSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum total size of messages in bytes allowed in an HRMP channel at once. + **/ + setHrmpChannelMaxTotalSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of outbound HRMP messages can be sent by a candidate. + **/ + setHrmpMaxMessageNumPerCandidate: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of inbound HRMP channels a parachain is allowed to accept. + **/ + setHrmpMaxParachainInboundChannels: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of outbound HRMP channels a parachain is allowed to open. + **/ + setHrmpMaxParachainOutboundChannels: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the number of sessions after which an HRMP open channel request expires. + **/ + setHrmpOpenRequestTtl: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the amount of funds that the recipient should provide for accepting opening an HRMP + * channel. + **/ + setHrmpRecipientDeposit: AugmentedSubmittable<(updated: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Sets the amount of funds that the sender should provide for opening an HRMP channel. + **/ + setHrmpSenderDeposit: AugmentedSubmittable<(updated: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Set the max validation code size for incoming upgrades. + **/ + setMaxCodeSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the critical downward message size. + **/ + setMaxDownwardMessageSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the max head data size for paras. + **/ + setMaxHeadDataSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the max POV block size for incoming upgrades. + **/ + setMaxPovSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of messages that a candidate can contain. + **/ + setMaxUpwardMessageNumPerCandidate: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum size of an upward message that can be sent by a candidate. + **/ + setMaxUpwardMessageSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum items that can present in a upward dispatch queue at once. + **/ + setMaxUpwardQueueCount: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum total size of items that can present in a upward dispatch queue at + * once. + **/ + setMaxUpwardQueueSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the maximum number of validators to use in parachain consensus. + **/ + setMaxValidators: AugmentedSubmittable<(updated: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set the maximum number of validators to assign to any core. + **/ + setMaxValidatorsPerCore: AugmentedSubmittable<(updated: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set the minimum backing votes threshold. + **/ + setMinimumBackingVotes: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the minimum delay between announcing the upgrade block for a parachain until the + * upgrade taking place. + * + * See the field documentation for information and constraints for the new value. + **/ + setMinimumValidationUpgradeDelay: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the total number of delay tranches. + **/ + setNDelayTranches: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of validators needed to approve a block. + **/ + setNeededApprovals: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set/Unset a node feature. + **/ + setNodeFeature: AugmentedSubmittable<(index: u8 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u8, bool]>; + /** + * Set the no show slots, in number of number of consensus slots. + * Must be at least 1. + **/ + setNoShowSlots: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the on demand (parathreads) base fee. + **/ + setOnDemandBaseFee: AugmentedSubmittable<(updated: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Set the on demand (parathreads) fee variability. + **/ + setOnDemandFeeVariability: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * Set the on demand (parathreads) queue max size. + **/ + setOnDemandQueueMaxSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the on demand (parathreads) fee variability. + **/ + setOnDemandTargetQueueUtilization: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * Set the availability period for paras. + **/ + setParasAvailabilityPeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of session changes after which a PVF pre-checking voting is rejected. + **/ + setPvfVotingTtl: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion. + **/ + setRelayVrfModuloSamples: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set scheduler-params. + **/ + setSchedulerParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8SchedulerParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8SchedulerParams]>; + /** + * Set the scheduling lookahead, in expected number of blocks at peak throughput. + **/ + setSchedulingLookahead: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the validation upgrade cooldown. + **/ + setValidationUpgradeCooldown: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the validation upgrade delay. + **/ + setValidationUpgradeDelay: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the zeroth delay tranche width. + **/ + setZerothDelayTrancheWidth: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + convictionVoting: { + /** + * Delegate the voting power (with some given conviction) of the sending account for a + * particular class of polls. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed through + * `remove_vote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `class`: The class of polls to delegate. To delegate multiple classes, multiple calls + * to this function are required. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + delegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PezpalletConvictionVotingConviction, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress, PezpalletConvictionVotingConviction, u128]>; + /** + * Remove a vote for a poll. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the poll was cancelled, because the voter lost the poll or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for poll + * `index`. + * - `index`: The index of poll of the vote to be removed. + * - `class`: The class of the poll. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, clazz: u16 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16, u32]>; + /** + * Remove a vote for a poll. + * + * If: + * - the poll was cancelled, or + * - the poll is ongoing, or + * - the poll has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the poll has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for poll `index`. + * + * - `index`: The index of poll of the vote to be removed. + * - `class`: Optional parameter, if given it indicates the class of the poll. For polls + * which have finished or are cancelled, this must be `Some`. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(clazz: Option | null | Uint8Array | u16 | AnyNumber, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Option, u32]>; + /** + * Undelegate the voting power of the sending account for a particular class of polls. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued has passed. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * - `class`: The class of polls to remove the delegation from. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + undelegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Remove the lock caused by prior voting/delegating which has expired within a particular + * class. + * + * The dispatch origin of this call must be _Signed_. + * + * - `class`: The class of polls to unlock. + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress]>; + /** + * Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `poll_index`: The index of the poll to vote for. + * - `vote`: The vote configuration. + * + * Weight: `O(R)` where R is the number of polls the voter has voted on. + **/ + vote: AugmentedSubmittable<(pollIndex: Compact | AnyNumber | Uint8Array, vote: PezpalletConvictionVotingVoteAccountVote) => SubmittableExtrinsic, [Compact, PezpalletConvictionVotingVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + coretime: { + /** + * Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is + * to be used. + * + * Parameters: + * -`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain. + * -`core`: The core that should be scheduled. + * -`begin`: The starting blockheight of the instruction. + * -`assignment`: How the blockspace should be utilised. + * -`end_hint`: An optional hint as to when this particular set of instructions will end. + **/ + assignCore: AugmentedSubmittable<(core: u16 | AnyNumber | Uint8Array, begin: u32 | AnyNumber | Uint8Array, assignment: Vec> | ([PezpalletBrokerCoretimeInterfaceCoreAssignment, u16 | AnyNumber | Uint8Array])[], endHint: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u16, u32, Vec>, Option]>; + creditAccount: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u128]>; + /** + * Request the configuration to be updated with the specified number of cores. Warning: + * Since this only schedules a configuration update, it takes two sessions to come into + * effect. + * + * - `origin`: Root or the Coretime Chain + * - `count`: total number of cores + **/ + requestCoreCount: AugmentedSubmittable<(count: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Request to claim the instantaneous coretime sales revenue starting from the block it was + * last claimed until and up to the block specified. The claimed amount value is sent back + * to the Coretime chain in a `notify_revenue` message. At the same time, the amount is + * teleported to the Coretime chain. + **/ + requestRevenueAt: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + crowdloan: { + /** + * Add an optional memo to an existing crowdloan contribution. + * + * Origin must be Signed, and the user must have contributed to the crowdloan. + **/ + addMemo: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, memo: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Contribute to a crowd sale. This will transfer some balance over to fund a parachain + * slot. It will be withdrawable when the crowdloan has ended and the funds are unused. + **/ + contribute: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, signature: Option | null | Uint8Array | PezspRuntimeMultiSignature) => SubmittableExtrinsic, [Compact, Compact, Option]>; + /** + * Contribute your entire balance to a crowd sale. This will transfer the entire balance of + * a user over to fund a parachain slot. It will be withdrawable when the crowdloan has + * ended and the funds are unused. + **/ + contributeAll: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, signature: Option | null | Uint8Array | PezspRuntimeMultiSignature) => SubmittableExtrinsic, [Compact, Option]>; + /** + * Create a new crowdloaning campaign for a parachain slot with the given lease period + * range. + * + * This applies a lock to your parachain configuration, ensuring that it cannot be changed + * by the parachain manager. + **/ + create: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, cap: Compact | AnyNumber | Uint8Array, firstPeriod: Compact | AnyNumber | Uint8Array, lastPeriod: Compact | AnyNumber | Uint8Array, end: Compact | AnyNumber | Uint8Array, verifier: Option | null | Uint8Array | PezspRuntimeMultiSigner) => SubmittableExtrinsic, [Compact, Compact, Compact, Compact, Compact, Option]>; + /** + * Remove a fund after the retirement period has ended and all funds have been returned. + **/ + dissolve: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Edit the configuration for an in-progress crowdloan. + * + * Can only be called by Root origin. + **/ + edit: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, cap: Compact | AnyNumber | Uint8Array, firstPeriod: Compact | AnyNumber | Uint8Array, lastPeriod: Compact | AnyNumber | Uint8Array, end: Compact | AnyNumber | Uint8Array, verifier: Option | null | Uint8Array | PezspRuntimeMultiSigner) => SubmittableExtrinsic, [Compact, Compact, Compact, Compact, Compact, Option]>; + /** + * Poke the fund into `NewRaise` + * + * Origin must be Signed, and the fund has non-zero raise. + **/ + poke: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Automatically refund contributors of an ended crowdloan. + * Due to weight restrictions, this function may need to be called multiple + * times to fully refund all users. We will refund `RemoveKeysLimit` users at a time. + * + * Origin must be signed, but can come from anyone. + **/ + refund: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Withdraw full balance of a specific contributor. + * + * Origin must be signed, but can come from anyone. + * + * The fund must be either in, or ready for, retirement. For a fund to be *in* retirement, + * then the retirement flag must be set. For a fund to be ready for retirement, then: + * - it must not already be in retirement; + * - the amount of raised funds must be bigger than the _free_ balance of the account; + * - and either: + * - the block number must be at least `end`; or + * - the current lease period must be greater than the fund's `last_period`. + * + * In this case, the fund's retirement flag is set and its `end` is reset to the current + * block number. + * + * - `who`: The account whose contribution should be withdrawn. + * - `index`: The parachain to whose crowdloan the contribution was made. + **/ + withdraw: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + electionProviderMultiPhase: { + /** + * Trigger the governance fallback. + * + * This can only be called when [`Phase::Emergency`] is enabled, as an alternative to + * calling [`Call::set_emergency_election_result`]. + **/ + governanceFallback: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set a solution in the queue, to be handed out to the client of this pallet in the next + * call to `ElectionProvider::elect`. + * + * This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`. + * + * The solution is not checked for any feasibility and is assumed to be trustworthy, as any + * feasibility check itself can in principle cause the election process to fail (due to + * memory/weight constrains). + **/ + setEmergencyElectionResult: AugmentedSubmittable<(supports: Vec> | ([AccountId32 | string | Uint8Array, PezspNposElectionsSupport])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Set a new value for `MinimumUntrustedScore`. + * + * Dispatch origin must be aligned with `T::ForceOrigin`. + * + * This check can be turned off by setting the value to `None`. + **/ + setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option | null | Uint8Array | PezspNposElectionsElectionScore) => SubmittableExtrinsic, [Option]>; + /** + * Submit a solution for the signed phase. + * + * The dispatch origin fo this call must be __signed__. + * + * The solution is potentially queued, based on the claimed score and processed at the end + * of the signed phase. + * + * A deposit is reserved and recorded for the solution. Based on the outcome, the solution + * might be rewarded, slashed, or get all or a part of the deposit back. + **/ + submit: AugmentedSubmittable<(rawSolution: PezpalletElectionProviderMultiPhaseRawSolution) => SubmittableExtrinsic, [PezpalletElectionProviderMultiPhaseRawSolution]>; + /** + * Submit a solution for the unsigned phase. + * + * The dispatch origin fo this call must be __none__. + * + * This submission is checked on the fly. Moreover, this unsigned solution is only + * validated when submitted to the pool from the **local** node. Effectively, this means + * that only active validators can submit this transaction when authoring a block (similar + * to an inherent). + * + * To prevent any incorrect solution (and thus wasted time/weight), this transaction will + * panic if the solution submitted by the validator is invalid in any way, effectively + * putting their authoring reward at risk. + * + * No deposit or reward is associated with this submission. + **/ + submitUnsigned: AugmentedSubmittable<(rawSolution: PezpalletElectionProviderMultiPhaseRawSolution, witness: PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize) => SubmittableExtrinsic, [PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fastUnstake: { + /** + * Control the operation of this pallet. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + * + * ## Details + * + * Can set the number of eras to check per block, and potentially other admin work. + * + * ## Events + * + * No events are emitted from this dispatch. + **/ + control: AugmentedSubmittable<(erasToCheck: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Deregister oneself from the fast-unstake. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be *signed* by whoever is permitted to call + * unbond funds by the staking system. See [`Config::Staking`]. + * + * ## Details + * + * This is useful if one is registered, they are still waiting, and they change their mind. + * + * Note that the associated stash is still fully unbonded and chilled as a consequence of + * calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed + * by a call to `rebond` in the staking system. + * + * ## Events + * + * Some events from the staking and currency system might be emitted. + **/ + deregister: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register oneself for fast-unstake. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be *signed* by whoever is permitted to call + * unbond funds by the staking system. See [`Config::Staking`]. + * + * ## Details + * + * The stash associated with the origin must have no ongoing unlocking chunks. If + * successful, this will fully unbond and chill the stash. Then, it will enqueue the stash + * to be checked in further blocks. + * + * If by the time this is called, the stash is actually eligible for fast-unstake, then + * they are guaranteed to remain eligible, because the call will chill them as well. + * + * If the check works, the entire staking data is removed, i.e. the stash is fully + * unstaked. + * + * If the check fails, the stash remains chilled and waiting for being unbonded as in with + * the normal staking system, but they lose part of their unbonding chunks due to consuming + * the chain's resources. + * + * ## Events + * + * Some events from the staking and currency system might be emitted. + **/ + registerFastUnstake: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fellowshipCollective: { + /** + * Introduce a new member. + * + * - `origin`: Must be the `AddOrigin`. + * - `who`: Account of non-member which will become a member. + * + * Weight: `O(1)` + **/ + addMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove votes from the given poll. It must have ended. + * + * - `origin`: Must be `Signed` by any account. + * - `poll_index`: Index of a poll which is completed and for which votes continue to + * exist. + * - `max`: Maximum number of vote items from remove in this call. + * + * Transaction fees are waived if the operation is successful. + * + * Weight `O(max)` (less if there are fewer items to remove than `max`). + **/ + cleanupPoll: AugmentedSubmittable<(pollIndex: u32 | AnyNumber | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Decrement the rank of an existing member by one. If the member is already at rank zero, + * then they are removed entirely. + * + * - `origin`: Must be the `DemoteOrigin`. + * - `who`: Account of existing member of rank greater than zero. + * + * Weight: `O(1)`, less if the member's index is highest in its rank. + **/ + demoteMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Exchanges a member with a new account and the same existing rank. + * + * - `origin`: Must be the `ExchangeOrigin`. + * - `who`: Account of existing member of rank greater than zero to be exchanged. + * - `new_who`: New Account of existing member of rank greater than zero to exchanged to. + **/ + exchangeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newWho: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Increment the rank of an existing member by one. + * + * - `origin`: Must be the `PromoteOrigin`. + * - `who`: Account of existing member. + * + * Weight: `O(1)` + **/ + promoteMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Remove the member entirely. + * + * - `origin`: Must be the `RemoveOrigin`. + * - `who`: Account of existing member of rank greater than zero. + * - `min_rank`: The rank of the member or greater. + * + * Weight: `O(min_rank)`. + **/ + removeMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, minRank: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16]>; + /** + * Add an aye or nay vote for the sender to the given proposal. + * + * - `origin`: Must be `Signed` by a member account. + * - `poll`: Index of a poll which is ongoing. + * - `aye`: `true` if the vote is to approve the proposal, `false` otherwise. + * + * Transaction fees are be waived if the member is voting on any particular proposal + * for the first time and the call is successful. Subsequent vote changes will charge a + * fee. + * + * Weight: `O(1)`, less if there was no previous vote on the poll by the member. + **/ + vote: AugmentedSubmittable<(poll: u32 | AnyNumber | Uint8Array, aye: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u32, bool]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fellowshipReferenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: StagingDicleRuntimeOriginCaller, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [StagingDicleRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + grandpa: { + /** + * Note that the current authority set of the GRANDPA finality gadget has stalled. + * + * This will trigger a forced authority set change at the beginning of the next session, to + * be enacted `delay` blocks after that. The `delay` should be high enough to safely assume + * that the block signalling the forced change will not be re-orged e.g. 1000 blocks. + * The block production rate (which may be slowed down because of finality lagging) should + * be taken into account when choosing the `delay`. The GRANDPA voters based on the new + * authority will start voting on top of `best_finalized_block_number` for new finalized + * blocks. `best_finalized_block_number` should be the highest of the latest finalized + * block of all validators of the new authority set. + * + * Only callable by root. + **/ + noteStalled: AugmentedSubmittable<(delay: u32 | AnyNumber | Uint8Array, bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + **/ + reportEquivocation: AugmentedSubmittable<(equivocationProof: PezspConsensusGrandpaEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusGrandpaEquivocationProof, PezspSessionMembershipProof]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusGrandpaEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusGrandpaEquivocationProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + hrmp: { + /** + * Establish a bidirectional HRMP channel between a parachain and a system chain. + * + * Arguments: + * + * - `target_system_chain`: A system chain, `ParaId`. + * + * The origin needs to be the parachain origin. + **/ + establishChannelWithSystem: AugmentedSubmittable<(targetSystemChain: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Establish an HRMP channel between two system chains. If the channel does not already + * exist, the transaction fees will be refunded to the caller. The system does not take + * deposits for channels between system chains, and automatically sets the message number + * and size limits to the maximum allowed by the network's configuration. + * + * Arguments: + * + * - `sender`: A system chain, `ParaId`. + * - `recipient`: A system chain, `ParaId`. + * + * Any signed origin can call this function, but _both_ inputs MUST be system chains. If + * the channel does not exist yet, there is no fee. + **/ + establishSystemChannel: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array, recipient: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * This extrinsic triggers the cleanup of all the HRMP storage items that a para may have. + * Normally this happens once per session, but this allows you to trigger the cleanup + * immediately for a specific parachain. + * + * Number of inbound and outbound channels for `para` must be provided as witness data. + * + * Origin must be the `ChannelManager`. + **/ + forceCleanHrmp: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, numInbound: u32 | AnyNumber | Uint8Array, numOutbound: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance, + * the `max_capacity` and `max_message_size` are still subject to the Relay Chain's + * configured limits. + * + * Expected use is when one (and only one) of the `ParaId`s involved in the channel is + * governed by the system, e.g. a system parachain. + * + * Origin must be the `ChannelManager`. + **/ + forceOpenHrmpChannel: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array, recipient: u32 | AnyNumber | Uint8Array, maxCapacity: u32 | AnyNumber | Uint8Array, maxMessageSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, u32]>; + /** + * Force process HRMP close channel requests. + * + * If there are pending HRMP close channel requests, you can use this function to process + * all of those requests immediately. + * + * Total number of closing channels must be provided as witness data. + * + * Origin must be the `ChannelManager`. + **/ + forceProcessHrmpClose: AugmentedSubmittable<(channels: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force process HRMP open channel requests. + * + * If there are pending HRMP open channel requests, you can use this function to process + * all of those requests immediately. + * + * Total number of opening channels must be provided as witness data. + * + * Origin must be the `ChannelManager`. + **/ + forceProcessHrmpOpen: AugmentedSubmittable<(channels: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Accept a pending open channel request from the given sender. + * + * The channel will be opened only on the next session boundary. + **/ + hrmpAcceptOpenChannel: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * This cancels a pending open channel request. It can be canceled by either of the sender + * or the recipient for that request. The origin must be either of those. + * + * The cancellation happens immediately. It is not possible to cancel the request if it is + * already accepted. + * + * Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as + * witness data. + **/ + hrmpCancelOpenRequest: AugmentedSubmittable<(channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, openRequests: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, u32]>; + /** + * Initiate unilateral closing of a channel. The origin must be either the sender or the + * recipient in the channel being closed. + * + * The closure can only happen on a session change. + **/ + hrmpCloseChannel: AugmentedSubmittable<(channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId) => SubmittableExtrinsic, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]>; + /** + * Initiate opening a channel from a parachain to a given recipient with given channel + * parameters. + * + * - `proposed_max_capacity` - specifies how many messages can be in the channel at once. + * - `proposed_max_message_size` - specifies the maximum size of the messages. + * + * These numbers are a subject to the relay-chain configuration limits. + * + * The channel can be opened only after the recipient confirms it and only on a session + * change. + **/ + hrmpInitOpenChannel: AugmentedSubmittable<(recipient: u32 | AnyNumber | Uint8Array, proposedMaxCapacity: u32 | AnyNumber | Uint8Array, proposedMaxMessageSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * Update the deposits held for an HRMP channel to the latest `Configuration`. Channels + * with system chains do not require a deposit. + * + * Arguments: + * + * - `sender`: A chain, `ParaId`. + * - `recipient`: A chain, `ParaId`. + * + * Any signed origin can call this function. + **/ + pokeChannelDeposits: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array, recipient: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + indices: { + /** + * Assign an previously unassigned index. + * + * Payment: `Deposit` is reserved from the sender account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be claimed. This must not be in use. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + claim: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force an index to an account. This doesn't require a deposit. If the index is already + * held, then any deposit is reimbursed to its current owner. + * + * The dispatch origin for this call must be _Root_. + * + * - `index`: the index to be (re-)assigned. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * - `freeze`: if set to `true`, will freeze the index so it cannot be transferred. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + forceTransfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array, freeze: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, bool]>; + /** + * Free up an index owned by the sender. + * + * Payment: Any previous deposit placed for the index is unreserved in the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must own the index. + * + * - `index`: the index to be freed. This must be owned by the sender. + * + * Emits `IndexFreed` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + free: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Freeze an index so it will always point to the sender account. This consumes the + * deposit. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * - `index`: the index to be frozen in place. + * + * Emits `IndexFrozen` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + freeze: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Poke the deposit reserved for an index. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * The transaction fees is waived if the deposit is changed after poking/reconsideration. + * + * - `index`: the index whose deposit is to be poked/reconsidered. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Assign an index already owned by the sender to another account. The balance reservation + * is effectively transferred to the new account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be re-assigned. This must be owned by the sender. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + transfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + initializer: { + /** + * Issue a signal to the consensus engine to forcibly act as though all parachain + * blocks in all relay chain blocks up to and including the given number in the current + * chain are valid and should be finalized. + **/ + forceApprove: AugmentedSubmittable<(upTo: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable<(messageOrigin: PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, page: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array, weightLimit: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, u32, u32, PezspWeightsWeightV2Weight]>; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable<(messageOrigin: PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, pageIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multisig: { + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call_hash`: The hash of the call to be executed. + * + * NOTE: If this is the final approval, you will want to use `as_multi` instead. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, PezspWeightsWeightV2Weight]>; + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * If there are enough, then dispatch the call. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call`: The call to be executed. + * + * NOTE: Unless this is the final approval, you will generally want to use + * `approve_as_multi` instead, since it only requires a hash of the call. + * + * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise + * on success, result is `Ok` and the result from the interior call, if it was executed, + * may be found in the deposited `MultisigExecuted` event. + * + * ## Complexity + * - `O(S + Z + Call)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - The weight of the `call`. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, call: RuntimeCall | IMethod | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Immediately dispatch a multi-signature call using a single approval from the caller. + * + * The dispatch origin for this call must be _Signed_. + * + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multi-signature, but do not participate in the approval process. + * - `call`: The call to be executed. + * + * Result is equivalent to the dispatched result. + * + * ## Complexity + * O(Z + C) where Z is the length of the call and C its execution weight. + **/ + asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Vec, RuntimeCall]>; + /** + * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously + * for this operation will be unreserved on success. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `timepoint`: The timepoint (block number and transaction index) of the first approval + * transaction for this dispatch. + * - `call_hash`: The hash of the call to be executed. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - One event. + * - I/O: 1 read `O(S)`, one remove. + * - Storage: removes one item. + **/ + cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], timepoint: PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, PezpalletMultisigTimepoint, U8aFixed]>; + /** + * Poke the deposit reserved for an existing multisig operation. + * + * The dispatch origin for this call must be _Signed_ and must be the original depositor of + * the multisig operation. + * + * The transaction fee is waived if the deposit amount has changed. + * + * - `threshold`: The total number of approvals needed for this multisig. + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multisig. + * - `call_hash`: The hash of the call this deposit is reserved for. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, U8aFixed]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nominationPools: { + /** + * Top up the deficit or withdraw the excess ED from the pool. + * + * When a pool is created, the pool depositor transfers ED to the reward account of the + * pool. ED is subject to change and over time, the deposit in the reward account may be + * insufficient to cover the ED deficit of the pool or vice-versa where there is excess + * deposit to the pool. This call allows anyone to adjust the ED deposit of the + * pool by either topping up the deficit or claiming the excess. + **/ + adjustPoolDeposit: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Apply a pending slash on a member. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * The pending slash amount of the member must be equal or more than `ExistentialDeposit`. + * This call can be dispatched permissionlessly (i.e. by any account). If the execution + * is successful, fee is refunded and caller may be rewarded with a part of the slash + * based on the [`crate::pallet::Config::StakeAdapter`] configuration. + **/ + applySlash: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Bond `extra` more funds from `origin` into the pool to which they already belong. + * + * Additional funds can come from either the free balance of the account, of from the + * accumulated rewards, see [`BondExtra`]. + * + * Bonding extra funds implies an automatic payout of all pending rewards as well. + * See `bond_extra_other` to bond pending rewards of `other` members. + **/ + bondExtra: AugmentedSubmittable<(extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [PezpalletNominationPoolsBondExtra]>; + /** + * `origin` bonds funds from `extra` for some pool member `member` into their respective + * pools. + * + * `origin` can bond extra funds from free balance or pending rewards when `origin == + * other`. + * + * In the case of `origin != other`, `origin` can only bond extra pending rewards of + * `other` members assuming set_claim_permission for the given member is + * `PermissionlessCompound` or `PermissionlessAll`. + **/ + bondExtraOther: AugmentedSubmittable<(member: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [MultiAddress, PezpalletNominationPoolsBondExtra]>; + /** + * Chill on behalf of the pool. + * + * The dispatch origin of this call can be signed by the pool nominator or the pool + * root role, same as [`Pallet::nominate`]. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch: + * * When pool depositor has less than `MinNominatorBond` staked, otherwise pool members + * are unable to unbond. + * + * # Conditions for permissioned dispatch: + * * The caller is the pool's nominator or root. + **/ + chill: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim pending commission. + * + * The `root` role of the pool is _always_ allowed to claim the pool's commission. + * + * If the pool has set `CommissionClaimPermission::Permissionless`, then any account can + * trigger the process of claiming the pool's commission. + * + * If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only + * accounts + * * `acc`, and + * * the pool's root account + * + * may call this extrinsic on behalf of the pool. + * + * Pending commissions are paid out and added to the total claimed commission. + * The total pending commission is reset to zero. + **/ + claimCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * A bonded member can use this to claim their payout based on the rewards that the pool + * has accumulated since their last claimed payout (OR since joining if this is their first + * time claiming rewards). The payout will be transferred to the member's account. + * + * The member will earn rewards pro rata based on the members stake vs the sum of the + * members in the pools stake. Rewards do not "expire". + * + * See `claim_payout_other` to claim rewards on behalf of some `other` pool member. + **/ + claimPayout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * `origin` can claim payouts on some pool member `other`'s behalf. + * + * Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim + * permission for this call to be successful. + **/ + claimPayoutOther: AugmentedSubmittable<(other: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Create a new delegation pool. + * + * # Arguments + * + * * `amount` - The amount of funds to delegate to the pool. This also acts of a sort of + * deposit since the pools creator cannot fully unbond funds until the pool is being + * destroyed. + * * `index` - A disambiguation index for creating the account. Likely only useful when + * creating multiple pools in the same extrinsic. + * * `root` - The account to set as [`PoolRoles::root`]. + * * `nominator` - The account to set as the [`PoolRoles::nominator`]. + * * `bouncer` - The account to set as the [`PoolRoles::bouncer`]. + * + * # Note + * + * In addition to `amount`, the caller will transfer the existential deposit; so the caller + * needs at have at least `amount + existential_deposit` transferable. + **/ + create: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Create a new delegation pool with a previously used pool id + * + * # Arguments + * + * same as `create` with the inclusion of + * * `pool_id` - `A valid PoolId. + **/ + createWithPoolId: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, u32]>; + /** + * Stake funds with a pool. The amount to bond is delegated (or transferred based on + * [`adapter::StakeStrategyType`]) from the member to the pool account and immediately + * increases the pool's bond. + * + * The method of transferring the amount to the pool account is determined by + * [`adapter::StakeStrategyType`]. If the pool is configured to use + * [`adapter::StakeStrategyType::Delegate`], the funds remain in the account of + * the `origin`, while the pool gains the right to use these funds for staking. + * + * # Note + * + * * An account can only be a member of a single pool. + * * An account cannot join the same pool multiple times. + * * This call will *not* dust the member account, so the member must have at least + * `existential deposit + amount` in their account. + * * Only a pool with [`PoolState::Open`] can be joined + **/ + join: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Migrates delegated funds from the pool account to the `member_account`. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This is a permission-less call and refunds any fee if claim is successful. + * + * If the pool has migrated to delegation based staking, the staked tokens of pool members + * can be moved and held in their own account. See [`adapter::DelegateStake`] + **/ + migrateDelegation: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Migrate pool from [`adapter::StakeStrategyType::Transfer`] to + * [`adapter::StakeStrategyType::Delegate`]. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This call can be dispatched permissionlessly, and refunds any fee if successful. + * + * If the pool has already migrated to delegation based staking, this call will fail. + **/ + migratePoolToDelegateStake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Nominate on behalf of the pool. + * + * The dispatch origin of this call must be signed by the pool nominator or the pool + * root role. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * # Note + * + * In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to + * have at least `depositor_min_bond` in the pool to start nominating. + **/ + nominate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, validators: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Call `withdraw_unbonded` for the pools account. This call can be made by any account. + * + * This is useful if there are too many unlocking chunks to call `unbond`, and some + * can be cleared by withdrawing. In the case there are too many unlocking chunks, the user + * would probably see an error like `NoMoreChunks` emitted from the staking system when + * they attempt to unbond. + **/ + poolWithdrawUnbonded: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows a pool member to set a claim permission to allow or disallow permissionless + * bonding and withdrawing. + * + * # Arguments + * + * * `origin` - Member of a pool. + * * `permission` - The permission to be applied. + **/ + setClaimPermission: AugmentedSubmittable<(permission: PezpalletNominationPoolsClaimPermission) => SubmittableExtrinsic, [PezpalletNominationPoolsClaimPermission]>; + /** + * Set the commission of a pool. + * Both a commission percentage and a commission payee must be provided in the `current` + * tuple. Where a `current` of `None` is provided, any current commission will be removed. + * + * - If a `None` is supplied to `new_commission`, existing commission will be removed. + **/ + setCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newCommission: Option> | null | Uint8Array | ITuple<[Perbill, AccountId32]> | [Perbill | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => SubmittableExtrinsic, [u32, Option>]>; + /** + * Set the commission change rate for a pool. + * + * Initial change rate is not bounded, whereas subsequent updates can only be more + * restrictive than the current. + **/ + setCommissionChangeRate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, changeRate: PezpalletNominationPoolsCommissionChangeRate) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsCommissionChangeRate]>; + /** + * Set or remove a pool's commission claim permission. + * + * Determines who can claim the pool's pending commission. Only the `Root` role of the pool + * is able to configure commission claim permissions. + **/ + setCommissionClaimPermission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, permission: Option | null | Uint8Array | PezpalletNominationPoolsCommissionClaimPermission) => SubmittableExtrinsic, [u32, Option]>; + /** + * Set the maximum commission of a pool. + * + * - Initial max can be set to any `Perbill`, and only smaller values thereafter. + * - Current commission will be lowered in the event it is higher than a new max + * commission. + **/ + setCommissionMax: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, maxCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Perbill]>; + /** + * Update configurations for the nomination pools. The origin for this call must be + * [`Config::AdminOrigin`]. + * + * # Arguments + * + * * `min_join_bond` - Set [`MinJoinBond`]. + * * `min_create_bond` - Set [`MinCreateBond`]. + * * `max_pools` - Set [`MaxPools`]. + * * `max_members` - Set [`MaxPoolMembers`]. + * * `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]. + * * `global_max_commission` - Set [`GlobalMaxCommission`]. + **/ + setConfigs: AugmentedSubmittable<(minJoinBond: PezpalletNominationPoolsConfigOpU128, minCreateBond: PezpalletNominationPoolsConfigOpU128, maxPools: PezpalletNominationPoolsConfigOpU32, maxMembers: PezpalletNominationPoolsConfigOpU32, maxMembersPerPool: PezpalletNominationPoolsConfigOpU32, globalMaxCommission: PezpalletNominationPoolsConfigOpPerbill) => SubmittableExtrinsic, [PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpPerbill]>; + /** + * Set a new metadata for the pool. + * + * The dispatch origin of this call must be signed by the bouncer, or the root role of the + * pool. + **/ + setMetadata: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, metadata: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set a new state for the pool. + * + * If a pool is already in the `Destroying` state, then under no condition can its state + * change again. + * + * The dispatch origin of this call must be either: + * + * 1. signed by the bouncer, or the root role of the pool, + * 2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and + * then the state of the pool can be permissionlessly changed to `Destroying`. + **/ + setState: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, state: PezpalletNominationPoolsPoolState) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsPoolState]>; + /** + * Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It + * implicitly collects the rewards one last time, since not doing so would mean some + * rewards would be forfeited. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch. + * + * * The pool is blocked and the caller is either the root or bouncer. This is refereed to + * as a kick. + * * The pool is destroying and the member is not the depositor. + * * The pool is destroying, the member is the depositor and no other members are in the + * pool. + * + * ## Conditions for permissioned dispatch (i.e. the caller is also the + * `member_account`): + * + * * The caller is not the depositor. + * * The caller is the depositor, the pool is destroying and no other members are in the + * pool. + * + * # Note + * + * If there are too many unlocking chunks to unbond with the pool account, + * [`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks. + * The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`] + * to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks + * are available). However, it may not be possible to release the current unlocking chunks, + * in which case, the result of this call will likely be the `NoMoreChunks` error from the + * staking system. + **/ + unbond: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, unbondingPoints: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Update the roles of the pool. + * + * The root is the only entity that can change any of the roles, including itself, + * excluding the depositor, who can never change. + * + * It emits an event, notifying UIs of the role change. This event is quite relevant to + * most pool members and they should be informed of changes to pool roles. + **/ + updateRoles: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newRoot: PezpalletNominationPoolsConfigOpAccountId32, newNominator: PezpalletNominationPoolsConfigOpAccountId32, newBouncer: PezpalletNominationPoolsConfigOpAccountId32) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32]>; + /** + * Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an + * error is returned. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch + * + * * The pool is in destroy mode and the target is not the depositor. + * * The target is the depositor and they are the only member in the sub pools. + * * The pool is blocked and the caller is either the root or bouncer. + * + * # Conditions for permissioned dispatch + * + * * The caller is the target and they are not the depositor. + * + * # Note + * + * - If the target is the depositor, the pool will be destroyed. + * - If the pool has any pending slash, we also try to slash the member before letting them + * withdraw. This calculation adds some weight overhead and is only defensive. In reality, + * pool slashes must have been already applied via permissionless [`Call::apply_slash`]. + **/ + withdrawUnbonded: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + onDemandAssignmentProvider: { + /** + * Create a single on demand core order. + * Will use the spot price for the current block and will reap the account if needed. + * + * Parameters: + * - `origin`: The sender of the call, funds will be withdrawn from this account. + * - `max_amount`: The maximum balance to withdraw from the origin to place an order. + * - `para_id`: A `ParaId` the origin wants to provide blockspace for. + * + * Errors: + * - `InsufficientBalance`: from the Currency implementation + * - `QueueFull` + * - `SpotPriceHigherThanMaxAmount` + * + * Events: + * - `OnDemandOrderPlaced` + **/ + placeOrderAllowDeath: AugmentedSubmittable<(maxAmount: u128 | AnyNumber | Uint8Array, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u32]>; + /** + * Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a + * check that placing the order will not reap the account. + * + * Parameters: + * - `origin`: The sender of the call, funds will be withdrawn from this account. + * - `max_amount`: The maximum balance to withdraw from the origin to place an order. + * - `para_id`: A `ParaId` the origin wants to provide blockspace for. + * + * Errors: + * - `InsufficientBalance`: from the Currency implementation + * - `QueueFull` + * - `SpotPriceHigherThanMaxAmount` + * + * Events: + * - `OnDemandOrderPlaced` + **/ + placeOrderKeepAlive: AugmentedSubmittable<(maxAmount: u128 | AnyNumber | Uint8Array, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u32]>; + /** + * Create a single on demand core order with credits. + * Will charge the owner's on-demand credit account the spot price for the current block. + * + * Parameters: + * - `origin`: The sender of the call, on-demand credits will be withdrawn from this + * account. + * - `max_amount`: The maximum number of credits to spend from the origin to place an + * order. + * - `para_id`: A `ParaId` the origin wants to provide blockspace for. + * + * Errors: + * - `InsufficientCredits` + * - `QueueFull` + * - `SpotPriceHigherThanMaxAmount` + * + * Events: + * - `OnDemandOrderPlaced` + **/ + placeOrderWithCredits: AugmentedSubmittable<(maxAmount: u128 | AnyNumber | Uint8Array, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paraInclusion: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paraInherent: { + /** + * Enter the paras inherent. This will process bitfields and backed candidates. + **/ + enter: AugmentedSubmittable<(data: PezkuwiPrimitivesVstagingInherentData) => SubmittableExtrinsic, [PezkuwiPrimitivesVstagingInherentData]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parameters: { + /** + * Set the value of a parameter. + * + * The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be + * deleted by setting them to `None`. + **/ + setParameter: AugmentedSubmittable<(keyValue: StagingDicleRuntimeRuntimeParameters) => SubmittableExtrinsic, [StagingDicleRuntimeRuntimeParameters]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paras: { + /** + * Adds the validation code to the storage. + * + * The code will not be added if it is already present. Additionally, if PVF pre-checking + * is running for that code, it will be instantly accepted. + * + * Otherwise, the code will be added into the storage. Note that the code will be added + * into storage with reference count 0. This is to account the fact that there are no users + * for this code yet. The caller will have to make sure that this code eventually gets + * used by some parachain or removed from the storage to avoid storage leaks. For the + * latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage + * manipulation. + * + * This function is mainly meant to be used for upgrading parachains that do not follow + * the go-ahead signal while the PVF pre-checking feature is enabled. + **/ + addTrustedValidationCode: AugmentedSubmittable<(validationCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Applies the already authorized current code for the parachain, + * triggering the same functionality as `force_set_current_code`. + **/ + applyAuthorizedForceSetCurrentCode: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Sets the storage for the authorized current code hash of the parachain. + * If not applied, it will be removed at the `System::block_number() + valid_period` block. + * + * This can be useful, when triggering `Paras::force_set_current_code(para, code)` + * from a different chain than the one where the `Paras` pallet is deployed. + * + * The main purpose is to avoid transferring the entire `code` Wasm blob between chains. + * Instead, we authorize `code_hash` with `root`, which can later be applied by + * `Paras::apply_authorized_force_set_current_code(para, code)` by anyone. + * + * Authorizations are stored in an **overwriting manner**. + **/ + authorizeForceSetCurrentCodeHash: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCodeHash: H256 | string | Uint8Array, validPeriod: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, H256, u32]>; + /** + * Note a new block head for para within the context of the current block. + **/ + forceNoteNewHead: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newHead: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Put a parachain directly into the next session's action queue. + * We can't queue it any sooner than this without going into the + * initializer... + **/ + forceQueueAction: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Schedule an upgrade as if it was scheduled in the given relay parent block. + **/ + forceScheduleCodeUpgrade: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array, relayParentNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, u32]>; + /** + * Set the storage for the parachain validation code immediately. + **/ + forceSetCurrentCode: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the storage for the current parachain head data immediately. + **/ + forceSetCurrentHead: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newHead: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the storage for the current parachain head data immediately. + **/ + forceSetMostRecentContext: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, context: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and + * enacts the results if that was the last vote before achieving the supermajority. + **/ + includePvfCheckStatement: AugmentedSubmittable<(stmt: PezkuwiPrimitivesV8PvfCheckStatement, signature: PezkuwiPrimitivesV8ValidatorAppSignature) => SubmittableExtrinsic, [PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8ValidatorAppSignature]>; + /** + * Remove the validation code from the storage iff the reference count is 0. + * + * This is better than removing the storage directly, because it will not remove the code + * that was suddenly got used by some parachain while this dispatchable was pending + * dispatching. + **/ + pokeUnusedValidationCode: AugmentedSubmittable<(validationCodeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Remove an upgrade cooldown for a parachain. + * + * The cost for removing the cooldown earlier depends on the time left for the cooldown + * multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned. + **/ + removeUpgradeCooldown: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parasDisputes: { + forceUnfreeze: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parasShared: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parasSlashing: { + reportDisputeLostUnsigned: AugmentedSubmittable<(disputeProof: PezkuwiPrimitivesVstagingDisputeProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezkuwiPrimitivesVstagingDisputeProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + preimage: { + /** + * Ensure that the bulk of pre-images is upgraded. + * + * The caller pays no fee if at least 90% of pre-images were successfully updated. + **/ + ensureUpdated: AugmentedSubmittable<(hashes: Vec | (H256 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Register a preimage on-chain. + * + * If the preimage was previously requested, no fees or deposits are taken for providing + * the preimage. Otherwise, a deposit is taken proportional to the size of the preimage. + **/ + notePreimage: AugmentedSubmittable<(bytes: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Request a preimage be uploaded to the chain without paying any fees or deposits. + * + * If the preimage requests has already been provided on-chain, we unreserve any deposit + * a user may have paid, and take the control of the preimage out of their hands. + **/ + requestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear an unrequested preimage from the runtime storage. + * + * If `len` is provided, then it will be a much cheaper operation. + * + * - `hash`: The hash of the preimage to be removed from the store. + * - `len`: The length of the preimage of `hash`. + **/ + unnotePreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear a previously made request for a preimage. + * + * NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`. + **/ + unrequestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proxy: { + /** + * Register a proxy account for the sender that is able to make calls on its behalf. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to make a proxy. + * - `proxy_type`: The permissions allowed for this proxy account. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + **/ + addProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: DicleRuntimeConstantsProxyProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, DicleRuntimeConstantsProxyProxyType, u32]>; + /** + * Publish the hash of a proxy-call that will be made in the future. + * + * This must be called some number of blocks before the corresponding `proxy` is attempted + * if the delay associated with the proxy relationship is greater than zero. + * + * No more than `MaxPending` announcements may be made at any one time. + * + * This will take a deposit of `AnnouncementDepositFactor` as well as + * `AnnouncementDepositBase` if there are no other pending announcements. + * + * The dispatch origin for this call must be _Signed_ and a proxy of `real`. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + announce: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and + * initialize it with a proxy of `proxy_type` for `origin` sender. + * + * Requires a `Signed` origin. + * + * - `proxy_type`: The type of the proxy that the sender will be registered as over the + * new account. This will almost always be the most permissive `ProxyType` possible to + * allow for maximum flexibility. + * - `index`: A disambiguation index, in case this is called multiple times in the same + * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just + * want to use `0`. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + * + * Fails with `Duplicate` if this has already been called in this transaction, from the + * same sender, with the same parameters. + * + * Fails if there are insufficient funds to pay for deposit. + **/ + createPure: AugmentedSubmittable<(proxyType: DicleRuntimeConstantsProxyProxyType, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [DicleRuntimeConstantsProxyProxyType, u32, u16]>; + /** + * Removes a previously spawned pure proxy. + * + * WARNING: **All access to this account will be lost.** Any funds held in it will be + * inaccessible. + * + * Requires a `Signed` origin, and the sender account must have been created by a call to + * `create_pure` with corresponding parameters. + * + * - `spawner`: The account that originally called `create_pure` to create this account. + * - `index`: The disambiguation index originally passed to `create_pure`. Probably `0`. + * - `proxy_type`: The proxy type originally passed to `create_pure`. + * - `height`: The height of the chain when the call to `create_pure` was processed. + * - `ext_index`: The extrinsic index in which the call to `create_pure` was processed. + * + * Fails with `NoPermission` in case the caller is not a previously created pure + * account whose `create_pure` call has corresponding parameters. + **/ + killPure: AugmentedSubmittable<(spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: DicleRuntimeConstantsProxyProxyType, index: u16 | AnyNumber | Uint8Array, height: Compact | AnyNumber | Uint8Array, extIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, DicleRuntimeConstantsProxyProxyType, u16, Compact, Compact]>; + /** + * Poke / Adjust deposits made for proxies and announcements based on current values. + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * The transaction fee is waived if the deposit amount has changed. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatch the given `call` from an account that the sender is authorised for through + * `add_proxy`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | DicleRuntimeConstantsProxyProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall]>; + /** + * Dispatch the given `call` from an account that the sender is authorized for through + * `add_proxy`. + * + * Removes any corresponding announcement(s). + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxyAnnounced: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | DicleRuntimeConstantsProxyProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Option, RuntimeCall]>; + /** + * Remove the given announcement of a delegate. + * + * May be called by a target (proxied) account to remove a call that one of their delegates + * (`delegate`) has announced they want to execute. The deposit is returned. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `delegate`: The account that previously announced the call. + * - `call_hash`: The hash of the call to be made. + **/ + rejectAnnouncement: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Remove a given announcement. + * + * May be called by a proxy account to remove a call they previously announced and return + * the deposit. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + removeAnnouncement: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Unregister all proxy accounts for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * WARNING: This may be called on accounts created by `create_pure`, however if done, then + * the unreserved fees will be inaccessible. **All access to this account will be lost.** + **/ + removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unregister a proxy account for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to remove as a proxy. + * - `proxy_type`: The permissions currently enabled for the removed proxy account. + **/ + removeProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: DicleRuntimeConstantsProxyProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, DicleRuntimeConstantsProxyProxyType, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + rcMigrator: { + /** + * Cancel the migration. + * + * Migration can only be cancelled if it is in the [`MigrationStage::Scheduled`] state. + **/ + cancelMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the migration stage. + * + * This call is intended for emergency use only and is guarded by the + * [`Config::AdminOrigin`]. + **/ + forceSetStage: AugmentedSubmittable<(stage: PezpalletRcMigratorMigrationStage) => SubmittableExtrinsic, [PezpalletRcMigratorMigrationStage]>; + /** + * Pause the migration. + **/ + pauseMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the accounts to be preserved on Relay Chain during the migration. + * + * The accounts must have no consumers references. + **/ + preserveAccounts: AugmentedSubmittable<(accounts: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive a query response from the Asset Hub for a previously sent xcm message. + **/ + receiveQueryResponse: AugmentedSubmittable<(queryId: u64 | AnyNumber | Uint8Array, response: StagingXcmV5Response | { Null: any } | { Assets: any } | { ExecutionResult: any } | { Version: any } | { PalletsInfo: any } | { DispatchResult: any } | string | Uint8Array) => SubmittableExtrinsic, [u64, StagingXcmV5Response]>; + /** + * Resend a previously sent and unconfirmed XCM message. + **/ + resendXcm: AugmentedSubmittable<(queryId: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Schedule the migration to start at a given moment. + * + * ### Parameters: + * - `start`: The block number at which the migration will start. `DispatchTime` calculated + * at the moment of the extrinsic execution. + * - `warm_up`: Duration or timepoint that will be used to prepare for the migration. Calls + * are filtered during this period. It is intended to give enough time for UMP and DMP + * queues to empty. `DispatchTime` calculated at the moment of the transition to the + * warm-up stage. + * - `cool_off`: The block number at which the post migration cool-off period will end. The + * `DispatchTime` calculated at the moment of the transition to the cool-off stage. + * - `unsafe_ignore_staking_lock_check`: ONLY FOR TESTING. Ignore the check whether the + * scheduled time point is far enough in the future. + * + * Note: If the staking election for next era is already complete, and the next + * validator set is queued in `pallet-session`, we want to avoid starting the data + * migration at this point as it can lead to some missed validator rewards. To address + * this, we stop staking election at the start of migration and must wait atleast 1 + * session (set via warm_up) before starting the data migration. + * + * Read [`MigrationStage::Scheduled`] documentation for more details. + **/ + scheduleMigration: AugmentedSubmittable<(start: PezframeSupportScheduleDispatchTime, warmUp: PezframeSupportScheduleDispatchTime, coolOff: PezframeSupportScheduleDispatchTime, unsafeIgnoreStakingLockCheck: bool | boolean | Uint8Array) => SubmittableExtrinsic, [PezframeSupportScheduleDispatchTime, PezframeSupportScheduleDispatchTime, PezframeSupportScheduleDispatchTime, bool]>; + /** + * XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the + * [Config::SendXcm] router which will be able to send messages to the Asset Hub during + * the migration. + **/ + sendXcmMessage: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Set the AH UMP queue priority configuration. + * + * Can only be called by the `AdminOrigin`. + **/ + setAhUmpQueuePriority: AugmentedSubmittable<(updated: PezpalletRcMigratorQueuePriority) => SubmittableExtrinsic, [PezpalletRcMigratorQueuePriority]>; + /** + * Set the canceller account id. + * + * The canceller can only stop scheduled migration. + **/ + setCanceller: AugmentedSubmittable<(updated: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [Option]>; + /** + * Set the manager account id. + * + * The manager has the similar to [`Config::AdminOrigin`] privileges except that it + * can not set the manager account id via `set_manager` call. + **/ + setManager: AugmentedSubmittable<(updated: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [Option]>; + /** + * Set the unprocessed message buffer size. + * + * `None` means to use the configuration value. + **/ + setUnprocessedMsgBuffer: AugmentedSubmittable<(updated: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Start the data migration. + * + * This is typically called by the Asset Hub to indicate it's readiness to receive the + * migration data. + **/ + startDataMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Vote on behalf of any of the members in `MultisigMembers`. + * + * Unsigned extrinsic, requiring the `payload` to be signed. + * + * Upon each call, a new entry is created in `ManagerMultisigs` map the `payload.call` to + * be dispatched. Once `MultisigThreshold` is reached, the entire map is deleted, and we + * move on to the next round. + * + * The round system ensures that signatures from older round cannot be reused. + **/ + voteManagerMultisig: AugmentedSubmittable<(payload: PezpalletRcMigratorManagerMultisigVote, sig: PezspRuntimeMultiSignature) => SubmittableExtrinsic, [PezpalletRcMigratorManagerMultisigVote, PezspRuntimeMultiSignature]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + recovery: { + /** + * Send a call through a recovered account. + * + * The dispatch origin for this call must be _Signed_ and registered to + * be able to make calls on behalf of the recovered account. + * + * Parameters: + * - `account`: The recovered account you want to make a call on-behalf-of. + * - `call`: The call you want to make with the recovered account. + **/ + asRecovered: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, RuntimeCall]>; + /** + * Cancel the ability to use `as_recovered` for `account`. + * + * The dispatch origin for this call must be _Signed_ and registered to + * be able to make calls on behalf of the recovered account. + * + * Parameters: + * - `account`: The recovered account you are able to call on-behalf-of. + **/ + cancelRecovered: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Allow a successful rescuer to claim their recovered account. + * + * The dispatch origin for this call must be _Signed_ and must be a "rescuer" + * who has successfully completed the account recovery process: collected + * `threshold` or more vouches, waited `delay_period` blocks since initiation. + * + * Parameters: + * - `account`: The lost account that you want to claim has been successfully recovered by + * you. + **/ + claimRecovery: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * As the controller of a recoverable account, close an active recovery + * process for your account. + * + * Payment: By calling this function, the recoverable account will receive + * the recovery deposit `RecoveryDeposit` placed by the rescuer. + * + * The dispatch origin for this call must be _Signed_ and must be a + * recoverable account with an active recovery process for it. + * + * Parameters: + * - `rescuer`: The account trying to rescue this recoverable account. + **/ + closeRecovery: AugmentedSubmittable<(rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Create a recovery configuration for your account. This makes your account recoverable. + * + * Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance + * will be reserved for storing the recovery configuration. This deposit is returned + * in full when the user calls `remove_recovery`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `friends`: A list of friends you trust to vouch for recovery attempts. Should be + * ordered and contain no duplicate values. + * - `threshold`: The number of friends that must vouch for a recovery attempt before the + * account can be recovered. Should be less than or equal to the length of the list of + * friends. + * - `delay_period`: The number of blocks after a recovery attempt is initialized that + * needs to pass before the account can be recovered. + **/ + createRecovery: AugmentedSubmittable<(friends: Vec | (AccountId32 | string | Uint8Array)[], threshold: u16 | AnyNumber | Uint8Array, delayPeriod: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u16, u32]>; + /** + * Initiate the process for recovering a recoverable account. + * + * Payment: `RecoveryDeposit` balance will be reserved for initiating the + * recovery process. This deposit will always be repatriated to the account + * trying to be recovered. See `close_recovery`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `account`: The lost account that you want to recover. This account needs to be + * recoverable (i.e. have a recovery configuration). + **/ + initiateRecovery: AugmentedSubmittable<(account: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Poke deposits for recovery configurations and / or active recoveries. + * + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `maybe_account`: Optional recoverable account for which you have an active recovery + * and want to adjust the deposit for the active recovery. + * + * This function checks both recovery configuration deposit and active recovery deposits + * of the caller: + * - If the caller has created a recovery configuration, checks and adjusts its deposit + * - If the caller has initiated any active recoveries, and provides the account in + * `maybe_account`, checks and adjusts those deposits + * + * If any deposit is updated, the difference will be reserved/unreserved from the caller's + * account. + * + * The transaction is made free if any deposit is updated and paid otherwise. + * + * Emits `DepositPoked` if any deposit is updated. + * Multiple events may be emitted in case both types of deposits are updated. + **/ + pokeDeposit: AugmentedSubmittable<(maybeAccount: Option | null | Uint8Array | MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string) => SubmittableExtrinsic, [Option]>; + /** + * Remove the recovery process for your account. Recovered accounts are still accessible. + * + * NOTE: The user must make sure to call `close_recovery` on all active + * recovery attempts before calling this function else it will fail. + * + * Payment: By calling this function the recoverable account will unreserve + * their recovery configuration deposit. + * (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends) + * + * The dispatch origin for this call must be _Signed_ and must be a + * recoverable account (i.e. has a recovery configuration). + **/ + removeRecovery: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allow ROOT to bypass the recovery process and set a rescuer account + * for a lost account directly. + * + * The dispatch origin for this call must be _ROOT_. + * + * Parameters: + * - `lost`: The "lost account" to be recovered. + * - `rescuer`: The "rescuer account" which can call as the lost account. + **/ + setRecovered: AugmentedSubmittable<(lost: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Allow a "friend" of a recoverable account to vouch for an active recovery + * process for that account. + * + * The dispatch origin for this call must be _Signed_ and must be a "friend" + * for the recoverable account. + * + * Parameters: + * - `lost`: The lost account that you want to recover. + * - `rescuer`: The account trying to rescue the lost account that you want to vouch for. + * + * The combination of these two parameters must point to an active recovery + * process. + **/ + vouchRecovery: AugmentedSubmittable<(lost: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, rescuer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + referenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: StagingDicleRuntimeOriginCaller, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [StagingDicleRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + registrar: { + /** + * Add a manager lock from a para. This will prevent the manager of a + * para to deregister or swap a para. + * + * Can be called by Root, the parachain, or the parachain manager if the parachain is + * unlocked. + **/ + addLock: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Deregister a Para Id, freeing all data and returning any deposit. + * + * The caller must be Root, the `para` owner, or the `para` itself. The para must be an + * on-demand parachain. + **/ + deregister: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force the registration of a Para Id on the relay chain. + * + * This function must be called by a Root origin. + * + * The deposit taken can be specified for this registration. Any `ParaId` + * can be registered, including sub-1000 IDs which are System Parachains. + **/ + forceRegister: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, deposit: u128 | AnyNumber | Uint8Array, id: u32 | AnyNumber | Uint8Array, genesisHead: Bytes | string | Uint8Array, validationCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, u128, u32, Bytes, Bytes]>; + /** + * Register head data and validation code for a reserved Para Id. + * + * ## Arguments + * - `origin`: Must be called by a `Signed` origin. + * - `id`: The para ID. Must be owned/managed by the `origin` signing account. + * - `genesis_head`: The genesis head data of the parachain/thread. + * - `validation_code`: The initial validation code of the parachain/thread. + * + * ## Deposits/Fees + * The account with the originating signature must reserve a deposit. + * + * The deposit is required to cover the costs associated with storing the genesis head + * data and the validation code. + * This accounts for the potential to store validation code of a size up to the + * `max_code_size`, as defined in the configuration pallet + * + * Anything already reserved previously for this para ID is accounted for. + * + * ## Events + * The `Registered` event is emitted in case of success. + **/ + register: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, genesisHead: Bytes | string | Uint8Array, validationCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, Bytes]>; + /** + * Remove a manager lock from a para. This will allow the manager of a + * previously locked para to deregister or swap a para without using governance. + * + * Can only be called by the Root origin or the parachain. + **/ + removeLock: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Reserve a Para Id on the relay chain. + * + * This function will reserve a new Para Id to be owned/managed by the origin account. + * The origin account is able to register head data and validation code using `register` to + * create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then + * be upgraded to a lease holding parachain. + * + * ## Arguments + * - `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new + * para ID. + * + * ## Deposits/Fees + * The origin must reserve a deposit of `ParaDeposit` for the registration. + * + * ## Events + * The `Reserved` event is emitted in case of success, which provides the ID reserved for + * use. + **/ + reserve: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Schedule a parachain upgrade. + * + * This will kick off a check of `new_code` by all validators. After the majority of the + * validators have reported on the validity of the code, the code will either be enacted + * or the upgrade will be rejected. If the code will be enacted, the current code of the + * parachain will be overwritten directly. This means that any PoV will be checked by this + * new code. The parachain itself will not be informed explicitly that the validation code + * has changed. + * + * Can be called by Root, the parachain, or the parachain manager if the parachain is + * unlocked. + **/ + scheduleCodeUpgrade: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the parachain's current head. + * + * Can be called by Root, the parachain, or the parachain manager if the parachain is + * unlocked. + **/ + setCurrentHead: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newHead: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Swap a lease holding parachain with another parachain, either on-demand or lease + * holding. + * + * The origin must be Root, the `para` owner, or the `para` itself. + * + * The swap will happen only if there is already an opposite swap pending. If there is not, + * the swap will be stored in the pending swaps map, ready for a later confirmatory swap. + * + * The `ParaId`s remain mapped to the same head data and code so external code can rely on + * `ParaId` to be a long-term identifier of a notional "parachain". However, their + * scheduling info (i.e. whether they're an on-demand parachain or lease holding + * parachain), auction information and the auction deposit are switched. + **/ + swap: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, other: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + scheduler: { + /** + * Cancel an anonymously scheduled task. + **/ + cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Cancel a named scheduled task. + **/ + cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Removes the retry configuration of a task. + **/ + cancelRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [ITuple<[u32, u32]>]>; + /** + * Cancel the retry configuration of a named task. + **/ + cancelRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Anonymously schedule a task. + **/ + schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Anonymously schedule a task after a delay. + **/ + scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task. + **/ + scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task after a delay. + **/ + scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Set a retry configuration for a task so that, in case its scheduled run fails, it will + * be retried after `period` blocks, for a total amount of `retries` retries or until it + * succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [ITuple<[u32, u32]>, u8, u32]>; + /** + * Set a retry configuration for a named task so that, in case its scheduled run fails, it + * will be retried after `period` blocks, for a total amount of `retries` retries or until + * it succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u8, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable<(keys: StagingDicleRuntimeSessionKeys, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [StagingDicleRuntimeSessionKeys, Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + slots: { + /** + * Clear all leases for a Para Id, refunding any deposits back to the original owners. + * + * The dispatch origin for this call must match `T::ForceOrigin`. + **/ + clearAllLeases: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Just a connect into the `lease_out` call, in case Root wants to force some lease to + * happen independently of any other on-chain mechanism to use it. + * + * The dispatch origin for this call must match `T::ForceOrigin`. + **/ + forceLease: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, leaser: AccountId32 | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array, periodBegin: u32 | AnyNumber | Uint8Array, periodCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, AccountId32, u128, u32, u32]>; + /** + * Try to onboard a parachain that has a lease for the current lease period. + * + * This function can be useful if there was some state issue with a para that should + * have onboarded, but was unable to. As long as they have a lease period, we can + * let them onboard from here. + * + * Origin must be signed, but can be called by anyone. + **/ + triggerOnboard: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + society: { + /** + * Transform an approved candidate into a member. Callable only by the Signed origin of the + * Founder, only after the period for voting has ended and only when the candidate is not + * clearly rejected. + **/ + bestowMembership: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * A user outside of the society can make a bid for entry. + * + * Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned + * when the bid becomes a member, or if the bid calls `unbid`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `value`: A one time payment the bid would like to receive when joining the society. + **/ + bid: AugmentedSubmittable<(value: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Transform an approved candidate into a member. Callable only by the + * the candidate, and only after the period for voting has ended. + **/ + claimMembership: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove up to `max` stale votes for the given `candidate`. + * + * May be called by any Signed origin, but only after the candidate's candidacy is ended. + **/ + cleanupCandidacy: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Remove up to `max` stale votes for the defender in the given `challenge_round`. + * + * May be called by any Signed origin, but only after the challenge round is ended. + **/ + cleanupChallenge: AugmentedSubmittable<(challengeRound: u32 | AnyNumber | Uint8Array, max: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * As a member, vote on the defender. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `approve`: A boolean which says if the candidate should be + * approved (`true`) or rejected (`false`). + **/ + defenderVote: AugmentedSubmittable<(approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Dissolve the society and remove all members. + * + * The dispatch origin for this call must be Signed, and the signing account must be both + * the `Founder` and the `Head`. This implies that it may only be done when there is one + * member. + **/ + dissolve: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a `candidate`'s failed application from the society. Callable by any + * signed origin but only at the end of the subsequent round and only for + * a candidate with more rejections than approvals. + * + * The bid deposit is lost and the voucher is banned. + **/ + dropCandidate: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Found the society. + * + * This is done as a discrete action in order to allow for the + * pallet to be included into a running chain and can only be done once. + * + * The dispatch origin for this call must be from the _FounderSetOrigin_. + * + * Parameters: + * - `founder` - The first member and head of the newly founded society. + * - `max_members` - The initial max number of members for the society. + * - `max_intake` - The maximum number of candidates per intake period. + * - `max_strikes`: The maximum number of strikes a member may get before they become + * suspended and may only be reinstated by the founder. + * - `candidate_deposit`: The deposit required to make a bid for membership of the group. + * - `rules` - The rules of this society concerning membership. + * + * Complexity: O(1) + **/ + foundSociety: AugmentedSubmittable<(founder: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, maxMembers: u32 | AnyNumber | Uint8Array, maxIntake: u32 | AnyNumber | Uint8Array, maxStrikes: u32 | AnyNumber | Uint8Array, candidateDeposit: u128 | AnyNumber | Uint8Array, rules: Bytes | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, u32, u32, u128, Bytes]>; + /** + * Allow suspension judgement origin to make judgement on a suspended member. + * + * If a suspended member is forgiven, we simply add them back as a member, not affecting + * any of the existing storage items for that member. + * + * If a suspended member is rejected, remove all associated storage items, including + * their payouts, and remove any vouched bids they currently have. + * + * The dispatch origin for this call must be Signed from the Founder. + * + * Parameters: + * - `who` - The suspended member to be judged. + * - `forgive` - A boolean representing whether the suspension judgement origin forgives + * (`true`) or rejects (`false`) a suspended member. + **/ + judgeSuspendedMember: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forgive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Remove the candidate's application from the society. Callable only by the Signed origin + * of the Founder, only after the period for voting has ended, and only when they do not + * have a clear approval. + * + * Any bid deposit is lost and voucher is banned. + **/ + kickCandidate: AugmentedSubmittable<(candidate: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Transfer the first matured payout for the sender and remove it from the records. + * + * NOTE: This extrinsic needs to be called multiple times to claim multiple matured + * payouts. + * + * Payment: The member will receive a payment equal to their first matured + * payout to their free balance. + * + * The dispatch origin for this call must be _Signed_ and a member with + * payouts remaining. + **/ + payout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Poke the deposit reserved when bidding. + * + * The dispatch origin for this call must be _Signed_ and must be the bidder. + * + * The transaction fee is waived if the deposit is changed after poking/reconsideration. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Punish the skeptic with a strike if they did not vote on a candidate. Callable by the + * candidate. + **/ + punishSkeptic: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove the candidate's application from the society. Callable only by the candidate. + * + * Any bid deposit is lost and voucher is banned. + **/ + resignCandidacy: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Change the maximum number of members in society and the maximum number of new candidates + * in a single intake period. + * + * The dispatch origin for this call must be Signed by the Founder. + * + * Parameters: + * - `max_members` - The maximum number of members for the society. This must be no less + * than the current number of members. + * - `max_intake` - The maximum number of candidates per intake period. + * - `max_strikes`: The maximum number of strikes a member may get before they become + * suspended and may only be reinstated by the founder. + * - `candidate_deposit`: The deposit required to make a bid for membership of the group. + **/ + setParameters: AugmentedSubmittable<(maxMembers: u32 | AnyNumber | Uint8Array, maxIntake: u32 | AnyNumber | Uint8Array, maxStrikes: u32 | AnyNumber | Uint8Array, candidateDeposit: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, u128]>; + /** + * A bidder can remove their bid for entry into society. + * By doing so, they will have their candidate deposit returned or + * they will unvouch their voucher. + * + * Payment: The bid deposit is unreserved if the user made a bid. + * + * The dispatch origin for this call must be _Signed_ and a bidder. + **/ + unbid: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * As a vouching member, unvouch a bid. This only works while vouched user is + * only a bidder (and not a candidate). + * + * The dispatch origin for this call must be _Signed_ and a vouching member. + * + * Parameters: + * - `pos`: Position in the `Bids` vector of the bid who should be unvouched. + **/ + unvouch: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * As a member, vote on a candidate. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `candidate`: The candidate that the member would like to bid on. + * - `approve`: A boolean which says if the candidate should be approved (`true`) or + * rejected (`false`). + **/ + vote: AugmentedSubmittable<(candidate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, approve: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * As a member, vouch for someone to join society by placing a bid on their behalf. + * + * There is no deposit required to vouch for a new bid, but a member can only vouch for + * one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by + * the suspension judgement origin, the member will be banned from vouching again. + * + * As a vouching member, you can claim a tip if the candidate is accepted. This tip will + * be paid as a portion of the reward the member will receive for joining the society. + * + * The dispatch origin for this call must be _Signed_ and a member. + * + * Parameters: + * - `who`: The user who you would like to vouch for. + * - `value`: The total reward to be paid between you and the candidate if they become + * a member in the society. + * - `tip`: Your cut of the total `value` payout when the candidate is inducted into + * the society. Tips larger than `value` will be saturated upon payout. + **/ + vouch: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: u128 | AnyNumber | Uint8Array, tip: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128, u128]>; + /** + * Repay the payment previously given to the member with the signed origin, remove any + * pending payments, and elevate them from rank 0 to rank 1. + **/ + waiveRepay: AugmentedSubmittable<(amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + staking: { + /** + * Take the origin account as a stash and lock up `value` of its balance. `controller` will + * be the account that controls it. + * + * `value` must be more than the `minimum_balance` specified by `T::Currency`. + * + * The dispatch origin for this call must be _Signed_ by the stash account. + * + * Emits `Bonded`. + * ## Complexity + * - Independent of the arguments. Moderate complexity. + * - O(1). + * - Three extra DB entries. + * + * NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned + * unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed + * as dust. + **/ + bond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, payee: PezpalletStakingRewardDestination) => SubmittableExtrinsic, [Compact, PezpalletStakingRewardDestination]>; + /** + * Add some extra amount that have appeared in the stash `free_balance` into the balance up + * for staking. + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * Use this if there are additional funds in your stash account that you wish to bond. + * Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose + * any limitation on the amount that can be added. + * + * Emits `Bonded`. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - O(1). + **/ + bondExtra: AugmentedSubmittable<(maxAdditional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel enactment of a deferred slash. + * + * Can be called by the `T::AdminOrigin`. + * + * Parameters: era and indices of the slashes for that era to kill. + * They **must** be sorted in ascending order, *and* unique. + **/ + cancelDeferredSlash: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array, slashIndices: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Declare no desire to either validate or nominate. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - Contains one read. + * - Writes are limited to the `origin` account key. + **/ + chill: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Declare a `controller` to stop participating as either a validator or nominator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_, but can be called by anyone. + * + * If the caller is the same as the controller being targeted, then no further checks are + * enforced, and this function behaves just like `chill`. + * + * If the caller is different than the controller being targeted, the following conditions + * must be met: + * + * * `controller` must belong to a nominator who has become non-decodable, + * + * Or: + * + * * A `ChillThreshold` must be set and checked which defines how close to the max + * nominators or validators we must reach before users can start chilling one-another. + * * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine + * how close we are to the threshold. + * * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines + * if this is a person that should be chilled because they have not met the threshold + * bond required. + * + * This can be helpful if bond requirements are updated, and we need to remove old users + * who do not satisfy these requirements. + **/ + chillOther: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Updates a batch of controller accounts to their corresponding stash account if they are + * not the same. Ignores any controller accounts that do not exist, and does not operate if + * the stash and controller are already the same. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin must be `T::AdminOrigin`. + **/ + deprecateControllerBatch: AugmentedSubmittable<(controllers: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Force a validator to have at least the minimum commission. This will not affect a + * validator who already has a commission greater than or equal to the minimum. Any account + * can call this. + **/ + forceApplyMinCommission: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Force there to be a new era at the end of the next session. After this, it will be + * reset to normal (non-forced) behaviour. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + * + * ## Complexity + * - No arguments. + * - Weight: O(1) + **/ + forceNewEra: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be a new era at the end of sessions indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEraAlways: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be no new eras indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * Thus the election process may be ongoing when this is called. In this case the + * election will continue until the next era is triggered. + * + * ## Complexity + * - No arguments. + * - Weight: O(1) + **/ + forceNoEras: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force a current staker to become completely unstaked, immediately. + * + * The dispatch origin must be Root. + * + * ## Parameters + * + * - `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more + * details. + **/ + forceUnstake: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Increments the ideal number of validators up to maximum of + * `ElectionProviderBase::MaxWinners`. + * + * The dispatch origin must be Root. + * + * ## Complexity + * Same as [`Self::set_validator_count`]. + **/ + increaseValidatorCount: AugmentedSubmittable<(additional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove the given nominations from the calling validator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * - `who`: A list of nominator stash accounts who are nominating this validator which + * should no longer be nominating this validator. + * + * Note: Making this call only makes sense if you first set the validator preferences to + * block any further nominations. + **/ + kick: AugmentedSubmittable<(who: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * This function allows governance to manually slash a validator and is a + * **fallback mechanism**. + * + * The dispatch origin must be `T::AdminOrigin`. + * + * ## Parameters + * - `validator_stash` - The stash account of the validator to slash. + * - `era` - The era in which the validator was in the active set. + * - `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill. + * + * ## Behavior + * + * The slash will be applied using the standard slashing mechanics, respecting the + * configured `SlashDeferDuration`. + * + * This means: + * - If the validator was already slashed by a higher percentage for the same era, this + * slash will have no additional effect. + * - If the validator was previously slashed by a lower percentage, only the difference + * will be applied. + * - The slash will be deferred by `SlashDeferDuration` eras before being enacted. + **/ + manualSlash: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, slashFraction: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, Perbill]>; + /** + * Removes the legacy Staking locks if they exist. + * + * This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a + * hold on it if needed. If all stake cannot be held, the best effort is made to hold as + * much as possible. The remaining stake is forced withdrawn from the ledger. + * + * The fee is waived if the migration is successful. + **/ + migrateCurrency: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to nominate `targets` for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - The transaction's complexity is proportional to the size of `targets` (N) + * which is capped at CompactAssignments::LIMIT (T::MaxNominations). + * - Both the reads and writes follow a similar pattern. + **/ + nominate: AugmentedSubmittable<(targets: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Pay out next page of the stakers behind a validator for the given era. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * The reward payout could be paged in case there are too many nominators backing the + * `validator_stash`. This call will payout unpaid pages in an ascending order. To claim a + * specific page, use `payout_stakers_by_page`.` + * + * If all pages are claimed, it returns an error `InvalidPage`. + **/ + payoutStakers: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Pay out a page of the stakers behind a validator for the given era and page. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * - `page` is the page index of nominators to pay out with value between 0 and + * `num_nominators / T::MaxExposurePageSize`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * If a validator has more than [`Config::MaxExposurePageSize`] nominators backing + * them, then the list of nominators is paged, with each page being capped at + * [`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators, + * the call needs to be made for each page separately in order for all the nominators + * backing a validator to receive the reward. The nominators are not sorted across pages + * and so it should not be assumed the highest staker would be on the topmost page and vice + * versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost. + **/ + payoutStakersByPage: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, page: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, u32]>; + /** + * Remove all data structures concerning a staker/stash once it is at a state where it can + * be considered `dust` in the staking system. The requirements are: + * + * 1. the `total_balance` of the stash is below existential deposit. + * 2. or, the `ledger.total` of the stash is below existential deposit. + * 3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero. + * + * The former can happen in cases like a slash; the latter when a fully unbonded account + * is still receiving staking rewards in `RewardDestination::Staked`. + * + * It can be called by anyone, as long as `stash` meets the above requirements. + * + * Refunds the transaction fees upon successful execution. + * + * ## Parameters + * + * - `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more + * details. + **/ + reapStash: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Rebond a portion of the stash scheduled to be unlocked. + * + * The dispatch origin must be signed by the controller. + * + * ## Complexity + * - Time complexity: O(L), where L is unlocking chunks + * - Bounded by `MaxUnlockingChunks`. + **/ + rebond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Restores the state of a ledger which is in an inconsistent state. + * + * The requirements to restore a ledger are the following: + * * The stash is bonded; or + * * The stash is not bonded but it has a staking lock left behind; or + * * If the stash has an associated ledger and its state is inconsistent; or + * * If the ledger is not corrupted *but* its staking lock is out of sync. + * + * The `maybe_*` input parameters will overwrite the corresponding data and metadata of the + * ledger associated with the stash. If the input parameters are not set, the ledger will + * be reset values from on-chain state. + **/ + restoreLedger: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, maybeController: Option | null | Uint8Array | AccountId32 | string, maybeTotal: Option | null | Uint8Array | u128 | AnyNumber, maybeUnlocking: Option> | null | Uint8Array | Vec | (PezpalletStakingUnlockChunk)[]) => SubmittableExtrinsic, [AccountId32, Option, Option, Option>]>; + /** + * Scale up the ideal number of validators by a factor up to maximum of + * `ElectionProviderBase::MaxWinners`. + * + * The dispatch origin must be Root. + * + * ## Complexity + * Same as [`Self::set_validator_count`]. + **/ + scaleValidatorCount: AugmentedSubmittable<(factor: Percent | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Percent]>; + /** + * (Re-)sets the controller of a stash to the stash itself. This function previously + * accepted a `controller` argument to set the controller to an account other than the + * stash itself. This functionality has now been removed, now only setting the controller + * to the stash, if it is not already. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * ## Complexity + * O(1) + * - Independent of the arguments. Insignificant complexity. + * - Contains a limited number of reads. + * - Writes are limited to the `origin` account key. + **/ + setController: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the validators who cannot be slashed (if any). + * + * The dispatch origin must be Root. + **/ + setInvulnerables: AugmentedSubmittable<(invulnerables: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Sets the minimum amount of commission that each validators must maintain. + * + * This call has lower privilege requirements than `set_staking_config` and can be called + * by the `T::AdminOrigin`. Root can always call this. + **/ + setMinCommission: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * (Re-)set the payment target for a controller. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - O(1) + * - Independent of the arguments. Insignificant complexity. + * - Contains a limited number of reads. + * - Writes are limited to the `origin` account key. + * --------- + **/ + setPayee: AugmentedSubmittable<(payee: PezpalletStakingRewardDestination) => SubmittableExtrinsic, [PezpalletStakingRewardDestination]>; + /** + * Update the various staking configurations . + * + * * `min_nominator_bond`: The minimum active bond needed to be a nominator. + * * `min_validator_bond`: The minimum active bond needed to be a validator. + * * `max_nominator_count`: The max number of users who can be a nominator at once. When + * set to `None`, no limit is enforced. + * * `max_validator_count`: The max number of users who can be a validator at once. When + * set to `None`, no limit is enforced. + * * `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which + * should be filled in order for the `chill_other` transaction to work. + * * `min_commission`: The minimum amount of commission that each validators must maintain. + * This is checked only upon calling `validate`. Existing validators are not affected. + * + * RuntimeOrigin must be Root to call this function. + * + * NOTE: Existing nominators and validators will not be affected by this update. + * to kick people under the new limits, `chill_other` should be called. + **/ + setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PezpalletStakingPezpalletConfigOpU128, minValidatorBond: PezpalletStakingPezpalletConfigOpU128, maxNominatorCount: PezpalletStakingPezpalletConfigOpU32, maxValidatorCount: PezpalletStakingPezpalletConfigOpU32, chillThreshold: PezpalletStakingPezpalletConfigOpPercent, minCommission: PezpalletStakingPezpalletConfigOpPerbill, maxStakedRewards: PezpalletStakingPezpalletConfigOpPercent) => SubmittableExtrinsic, [PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent]>; + /** + * Sets the ideal number of validators. + * + * The dispatch origin must be Root. + * + * ## Complexity + * O(1) + **/ + setValidatorCount: AugmentedSubmittable<(updated: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Schedule a portion of the stash to be unlocked ready for transfer out after the bond + * period ends. If this leaves an amount actively bonded less than + * [`asset::existential_deposit`], then it is increased to the full amount. + * + * The stash may be chilled if the ledger total amount falls to 0 after unbonding. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * Once the unlock period is done, you can call `withdraw_unbonded` to actually move + * the funds out of management ready for transfer. + * + * No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`) + * can co-exists at the same time. If there are no unlocking chunks slots available + * [`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible). + * + * If a user encounters the `InsufficientBond` error when calling this extrinsic, + * they should call `chill` first in order to free up their bonded funds. + * + * Emits `Unbonded`. + * + * See also [`Call::withdraw_unbonded`]. + **/ + unbond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Migrates an account's `RewardDestination::Controller` to + * `RewardDestination::Account(controller)`. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * This will waive the transaction fee if the `payee` is successfully migrated. + **/ + updatePayee: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to validate for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + validate: AugmentedSubmittable<(prefs: PezpalletStakingValidatorPrefs) => SubmittableExtrinsic, [PezpalletStakingValidatorPrefs]>; + /** + * Remove any unlocked chunks from the `unlocking` queue from our management. + * + * This essentially frees up that balance to be used by the stash account to do whatever + * it wants. + * + * The dispatch origin for this call must be _Signed_ by the controller. + * + * Emits `Withdrawn`. + * + * See also [`Call::unbond`]. + * + * ## Parameters + * + * - `num_slashing_spans` indicates the number of metadata slashing spans to clear when + * this call results in a complete removal of all the data related to the stash account. + * In this case, the `num_slashing_spans` must be larger or equal to the number of + * slashing spans associated with the stash account in the [`SlashingSpans`] storage type, + * otherwise the call will fail. The call weight is directly proportional to + * `num_slashing_spans`. + * + * ## Complexity + * O(S) where S is the number of slashing spans to remove + * NOTE: Weight annotation is the kill scenario, we refund otherwise. + **/ + withdrawUnbonded: AugmentedSubmittable<(numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stakingAhClient: { + /** + * manually do what this pallet was meant to do at the end of the migration. + **/ + forceOnMigrationEnd: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allows governance to force set the operating mode of the pallet. + **/ + setMode: AugmentedSubmittable<(mode: PezpalletStakingAsyncAhClientOperatingMode) => SubmittableExtrinsic, [PezpalletStakingAsyncAhClientOperatingMode]>; + validatorSet: AugmentedSubmittable<(report: PezpalletStakingAsyncRcClientValidatorSetReport) => SubmittableExtrinsic, [PezpalletStakingAsyncRcClientValidatorSetReport]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, u32]>; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable<(items: Vec> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable<(now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + treasury: { + /** + * Check the status of the spend and remove it from the storage if processed. + * + * ## Dispatch Origin + * + * Must be signed. + * + * ## Details + * + * The status check is a prerequisite for retrying a failed payout. + * If a spend has either succeeded or expired, it is removed from the storage by this + * function. In such instances, transaction fees are refunded. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::PaymentFailed`] if the spend payout has failed. + * Emits [`Event::SpendProcessed`] if the spend payout has succeed. + **/ + checkStatus: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim a spend. + * + * ## Dispatch Origin + * + * Must be signed + * + * ## Details + * + * Spends must be claimed within some temporal bounds. A spend may be claimed within one + * [`Config::PayoutPeriod`] from the `valid_from` block. + * In case of a payout failure, the spend status must be updated with the `check_status` + * dispatchable before retrying with the current function. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::Paid`] if successful. + **/ + payout: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force a previously approved proposal to be removed from the approval queue. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * The original deposit will no longer be returned. + * + * ### Parameters + * - `proposal_id`: The index of a proposal + * + * ### Complexity + * - O(A) where `A` is the number of approvals + * + * ### Errors + * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the + * approval queue, i.e., the proposal has not been approved. This could also mean the + * proposal does not exist altogether, thus there is no way it would have been approved + * in the first place. + **/ + removeApproval: AugmentedSubmittable<(proposalId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least + * `amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted + * for assertion using the [`Config::BalanceConverter`]. + * + * ## Details + * + * Create an approved spend for transferring a specific `amount` of `asset_kind` to a + * designated beneficiary. The spend must be claimed using the `payout` dispatchable within + * the [`Config::PayoutPeriod`]. + * + * ### Parameters + * - `asset_kind`: An indicator of the specific asset class to be spent. + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The beneficiary of the spend. + * - `valid_from`: The block number from which the spend can be claimed. It can refer to + * the past if the resulting spend has not yet expired according to the + * [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after + * approval. + * + * ## Events + * + * Emits [`Event::AssetSpendApproved`] if successful. + **/ + spend: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, amount: Compact | AnyNumber | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, validFrom: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, Compact, XcmVersionedLocation, Option]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`. + * + * ### Details + * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the + * beneficiary. + * + * ### Parameters + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The destination account for the transfer. + * + * ## Events + * + * Emits [`Event::SpendApproved`] if successful. + **/ + spendLocal: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Void previously approved spend. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * A spend void is only possible if the payout has not been attempted yet. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::AssetSpendVoided`] if successful. + **/ + voidSpend: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + utility: { + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + **/ + asDerivative: AugmentedSubmittable<(index: u16 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u16, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + **/ + batch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + batchAll: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + **/ + dispatchAs: AugmentedSubmittable<(asOrigin: StagingDicleRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [StagingDicleRuntimeOriginCaller, RuntimeCall]>; + /** + * Dispatches a function call with a provided origin. + * + * Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call. + * + * The dispatch origin for this call must be _Root_. + **/ + dispatchAsFallible: AugmentedSubmittable<(asOrigin: StagingDicleRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [StagingDicleRuntimeOriginCaller, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + forceBatch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatch a fallback call in the event the main call fails to execute. + * May be called from any origin except `None`. + * + * This function first attempts to dispatch the `main` call. + * If the `main` call fails, the `fallback` is attemted. + * if the fallback is successfully dispatched, the weights of both calls + * are accumulated and an event containing the main call error is deposited. + * + * In the event of a fallback failure the whole call fails + * with the weights returned. + * + * - `main`: The main call to be dispatched. This is the primary action to execute. + * - `fallback`: The fallback call to be dispatched in case the `main` call fails. + * + * ## Dispatch Logic + * - If the origin is `root`, both the main and fallback calls are executed without + * applying any origin filters. + * - If the origin is not `root`, the origin filter is applied to both the `main` and + * `fallback` calls. + * + * ## Use Case + * - Some use cases might involve submitting a `batch` type call in either main, fallback + * or both. + **/ + ifElse: AugmentedSubmittable<(main: RuntimeCall | IMethod | string | Uint8Array, fallback: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, RuntimeCall]>; + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + **/ + withWeight: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array, weight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + vesting: { + /** + * Force remove a vesting schedule + * + * The dispatch origin for this call must be _Root_. + * + * - `target`: An account that has a vesting schedule + * - `schedule_index`: The vesting schedule index that should be removed + **/ + forceRemoveVestingSchedule: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, scheduleIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Force a vested transfer. + * + * The dispatch origin for this call must be _Root_. + * + * - `source`: The account whose funds should be transferred. + * - `target`: The account that should be transferred the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + forceVestedTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Merge two vesting schedules together, creating a new vesting schedule that unlocks over + * the highest possible start and end blocks. If both schedules have already started the + * current block will be used as the schedule start; with the caveat that if one schedule + * is finished by the current block, the other will be treated as the new merged schedule, + * unmodified. + * + * NOTE: If `schedule1_index == schedule2_index` this is a no-op. + * NOTE: This will unlock all schedules through the current block prior to merging. + * NOTE: If both schedules have ended by the current block, no new schedule will be created + * and both will be removed. + * + * Merged schedule attributes: + * - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block, + * current_block)`. + * - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`. + * - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`. + * + * The dispatch origin for this call must be _Signed_. + * + * - `schedule1_index`: index of the first schedule to merge. + * - `schedule2_index`: index of the second schedule to merge. + **/ + mergeSchedules: AugmentedSubmittable<(schedule1Index: u32 | AnyNumber | Uint8Array, schedule2Index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Unlock any vested funds of the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vest: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a vested transfer. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account receiving the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + vestedTransfer: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Unlock any vested funds of a `target` account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account whose vested funds should be unlocked. Must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vestOther: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + voterList: { + /** + * Move the caller's Id directly in front of `lighter`. + * + * The dispatch origin for this call must be _Signed_ and can only be called by the Id of + * the account going in front of `lighter`. Fee is payed by the origin under all + * circumstances. + * + * Only works if: + * + * - both nodes are within the same bag, + * - and `origin` has a greater `Score` than `lighter`. + **/ + putInFrontOf: AugmentedSubmittable<(lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Same as [`Pallet::put_in_front_of`], but it can be called by anyone. + * + * Fee is paid by the origin under all circumstances. + **/ + putInFrontOfOther: AugmentedSubmittable<(heavier: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Declare that some `dislocated` account has, through rewards or penalties, sufficiently + * changed its score that it should properly fall into a different bag than its current + * one. + * + * Anyone can call this function about any potentially dislocated account. + * + * Will always update the stored score of `dislocated` to the correct score, based on + * `ScoreProvider`. + * + * If `dislocated` does not exists, it returns an error. + **/ + rebag: AugmentedSubmittable<(dislocated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + whitelist: { + dispatchWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array, callEncodedLen: u32 | AnyNumber | Uint8Array, callWeightWitness: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [H256, u32, PezspWeightsWeightV2Weight]>; + dispatchWhitelistedCallWithPreimage: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + removeWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + whitelistCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmPallet: { + /** + * Authorize another `aliaser` location to alias into the local `origin` making this call. + * The `aliaser` is only authorized until the provided `expiry` block number. + * The call can also be used for a previously authorized alias in order to update its + * `expiry` block number. + * + * Usually useful to allow your local account to be aliased into from a remote location + * also under your control (like your account on another chain). + * + * WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in + * their/your name. Once authorized using this call, the `aliaser` can freely impersonate + * `origin` in XCM programs executed on the local chain. + **/ + addAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, expires: Option | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic, [XcmVersionedLocation, Option]>; + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable<(assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedAssets, XcmVersionedLocation]>; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [XcmVersionedXcm, PezspWeightsWeightV2Weight]>; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable<(suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable<(location: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, version: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Remove all previously authorized `aliaser`s that can alias into the local `origin` + * making this call. + **/ + removeAllAuthorizedAliases: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a previously authorized `aliaser` from the list of locations that can alias into + * the local `origin` making this call. + **/ + removeAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + send: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assetsTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feesTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, customXcmOnDest: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedAssets, StagingXcmExecutorAssetTransferTransferType, XcmVersionedAssetId, StagingXcmExecutorAssetTransferTransferType, XcmVersionedXcm, XcmV3WeightLimit]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/packages/api-augment/src/index.ts b/packages/api-augment/src/index.ts new file mode 100644 index 0000000..2ff4c48 --- /dev/null +++ b/packages/api-augment/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/api-augment/src/mod.ts b/packages/api-augment/src/mod.ts new file mode 100644 index 0000000..eea74e7 --- /dev/null +++ b/packages/api-augment/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/api-augment/src/packageDetect.ts b/packages/api-augment/src/packageDetect.ts new file mode 100644 index 0000000..560d043 --- /dev/null +++ b/packages/api-augment/src/packageDetect.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2026 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as baseInfo } from '@pezkuwi/api-base/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { packageInfo as codecInfo } from '@pezkuwi/types-codec/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [baseInfo, codecInfo, typesInfo]); diff --git a/packages/api-augment/src/packageInfo.ts b/packages/api-augment/src/packageInfo.ts new file mode 100644 index 0000000..461083a --- /dev/null +++ b/packages/api-augment/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/api-augment', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/api-augment/src/pezkuwi/consts.ts b/packages/api-augment/src/pezkuwi/consts.ts new file mode 100644 index 0000000..9ae3489 --- /dev/null +++ b/packages/api-augment/src/pezkuwi/consts.ts @@ -0,0 +1,949 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/consts'; + +import type { ApiTypes, AugmentedConst } from '@pezkuwi/api-base/types'; +import type { Bytes, Option, Vec, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { Codec, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, Perbill, Permill } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportPezpalletId, PezframeSystemLimitsBlockLength, PezframeSystemLimitsBlockWeights, PezpalletReferendaTrackDetails, PezspVersionRuntimeVersion, PezspWeightsRuntimeDbWeight, PezspWeightsWeightV2Weight, StagingXcmV5Junctions } from '@pezkuwi/types/lookup'; + +export type __AugmentedConst = AugmentedConst; + +declare module '@pezkuwi/api-base/types/consts' { + interface AugmentedConsts { + auctions: { + /** + * The number of blocks over which an auction may be retroactively ended. + **/ + endingPeriod: u32 & AugmentedConst; + leasePeriodsPerSlot: u32 & AugmentedConst; + /** + * The length of each sample to take during the ending period. + * + * `EndingPeriod` / `SampleLength` = Total # of Samples + **/ + sampleLength: u32 & AugmentedConst; + slotRangeCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + babe: { + /** + * The amount of time, in slots, that each epoch should last. + * NOTE: Currently it is not possible to change the epoch duration after + * the chain has started. Attempting to do so will brick block production. + **/ + epochDuration: u64 & AugmentedConst; + /** + * The expected average block time at which BABE should be creating + * blocks. Since BABE is probabilistic it is not trivial to figure out + * what the expected average block time should be based on the slot + * duration and the security parameter `c` (where `1 - c` represents + * the probability of a slot being empty). + **/ + expectedBlockTime: u64 & AugmentedConst; + /** + * Max number of authorities allowed + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + balances: { + /** + * The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! + * + * If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for + * this pallet. However, you do so at your own risk: this will open up a major DoS vector. + * In case you have multiple sources of provider references, you may also get unexpected + * behaviour if you set this to zero. + * + * Bottom line: Do yourself a favour and make it at least one! + **/ + existentialDeposit: u128 & AugmentedConst; + /** + * The maximum number of individual freeze locks that can exist on an account at any time. + **/ + maxFreezes: u32 & AugmentedConst; + /** + * The maximum number of locks that should exist on an account. + * Not strictly enforced, but used for weight estimation. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxLocks: u32 & AugmentedConst; + /** + * The maximum number of named reserves that can exist on an account. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + maxReserves: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + beefy: { + /** + * The maximum number of authorities that can be added. + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + bounties: { + /** + * The amount held on deposit for placing a bounty proposal. + **/ + bountyDepositBase: u128 & AugmentedConst; + /** + * The delay period for which a bounty beneficiary need to wait before claim the payout. + **/ + bountyDepositPayoutDelay: u32 & AugmentedConst; + /** + * The time limit for a curator to act before a bounty expires. + * + * The period that starts when a curator is approved, during which they must execute or + * update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the + * curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely, + * removing the need for `extend_bounty_expiry`. + **/ + bountyUpdatePeriod: u32 & AugmentedConst; + /** + * Minimum value for a bounty. + **/ + bountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMax: Option & AugmentedConst; + /** + * Minimum amount of funds that should be placed in a deposit for making a proposal. + **/ + curatorDepositMin: Option & AugmentedConst; + /** + * The curator deposit is calculated as a percentage of the curator fee. + * + * This deposit has optional upper and lower bounds with `CuratorDepositMax` and + * `CuratorDepositMin`. + **/ + curatorDepositMultiplier: Permill & AugmentedConst; + /** + * The amount held on deposit per byte within the tip report reason or bounty description. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * Maximum acceptable reason length. + * + * Benchmarks depend on this value, be sure to update weights file when changing this value + **/ + maximumReasonLength: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + childBounties: { + /** + * Minimum value for a child-bounty. + **/ + childBountyValueMinimum: u128 & AugmentedConst; + /** + * Maximum number of child bounties that can be added to a parent bounty. + **/ + maxActiveChildBountyCount: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + claims: { + prefix: Bytes & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + convictionVoting: { + /** + * The maximum number of concurrent votes an account may have. + * + * Also used to compute weight, an overly large value can lead to extrinsics with large + * weight estimation: see `delegate` for instance. + **/ + maxVotes: u32 & AugmentedConst; + /** + * The minimum period of vote locking. + * + * It should be no shorter than enactment period to ensure that in the case of an approval, + * those successful voters are locked into the consequences that their votes entail. + **/ + voteLockingPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + coretime: { + /** + * The ParaId of the coretime chain. + **/ + brokerId: u32 & AugmentedConst; + /** + * The coretime chain pot location. + **/ + brokerPotLocation: StagingXcmV5Junctions & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + crowdloan: { + /** + * The minimum amount that may be contributed into a crowdloan. Should almost certainly be + * at least `ExistentialDeposit`. + **/ + minContribution: u128 & AugmentedConst; + /** + * `PalletId` for the crowdloan pallet. An appropriate value could be + * `PalletId(*b"py/cfund")` + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Max number of storage keys to remove per extrinsic call. + **/ + removeKeysLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + delegatedStaking: { + /** + * Injected identifier for the pallet. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Fraction of the slash that is rewarded to the caller of pending slash to the agent. + **/ + slashRewardFraction: Perbill & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + electionProviderMultiPhase: { + /** + * The minimum amount of improvement to the solution score that defines a solution as + * "better" in the Signed phase. + **/ + betterSignedThreshold: Perbill & AugmentedConst; + /** + * Maximum number of voters that can support a winner in an election solution. + * + * This is needed to ensure election computation is bounded. + **/ + maxBackersPerWinner: u32 & AugmentedConst; + /** + * Maximum number of winners that an election supports. + * + * Note: This must always be greater or equal to `T::DataProvider::desired_targets()`. + **/ + maxWinners: u32 & AugmentedConst; + minerMaxLength: u32 & AugmentedConst; + minerMaxVotesPerVoter: u32 & AugmentedConst; + minerMaxWeight: PezspWeightsWeightV2Weight & AugmentedConst; + minerMaxWinners: u32 & AugmentedConst; + /** + * The priority of the unsigned transaction submitted in the unsigned-phase + **/ + minerTxPriority: u64 & AugmentedConst; + /** + * The repeat threshold of the offchain worker. + * + * For example, if it is 5, that means that at least 5 blocks will elapse between attempts + * to submit the worker's solution. + **/ + offchainRepeat: u32 & AugmentedConst; + /** + * Per-byte deposit for a signed solution. + **/ + signedDepositByte: u128 & AugmentedConst; + /** + * Per-weight deposit for a signed solution. + **/ + signedDepositWeight: u128 & AugmentedConst; + /** + * The maximum amount of unchecked solutions to refund the call fee for. + **/ + signedMaxRefunds: u32 & AugmentedConst; + /** + * Maximum number of signed submissions that can be queued. + * + * It is best to avoid adjusting this during an election, as it impacts downstream data + * structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you + * update this value during an election, you _must_ ensure that + * `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise, + * attempts to submit new solutions may cause a runtime panic. + **/ + signedMaxSubmissions: u32 & AugmentedConst; + /** + * Maximum weight of a signed solution. + * + * If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of + * this pallet), then [`MinerConfig::solution_weight`] is used to compare against + * this value. + **/ + signedMaxWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * Base reward for a signed solution + **/ + signedRewardBase: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + fastUnstake: { + /** + * Deposit to take for unstaking, to make sure we're able to slash the it in order to cover + * the costs of resources on unsuccessful unstake. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + grandpa: { + /** + * Max Authorities in use + **/ + maxAuthorities: u32 & AugmentedConst; + /** + * The maximum number of nominators for each validator. + **/ + maxNominators: u32 & AugmentedConst; + /** + * The maximum number of entries to keep in the set id to session index mapping. + * + * Since the `SetIdSession` map is only used for validating equivocations this + * value should relate to the bonding duration of whatever staking system is + * being used (if any). If equivocation handling is not enabled then this value + * can be zero. + **/ + maxSetIdSessionEntries: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + indices: { + /** + * The deposit needed for reserving an index. + **/ + deposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + messageQueue: { + /** + * The size of the page; this implies the maximum message size which can be sent. + * + * A good value depends on the expected message sizes, their weights, the weight that is + * available for processing them and the maximal needed message size. The maximal message + * size is slightly lower than this as defined by [`MaxMessageLenOf`]. + **/ + heapSize: u32 & AugmentedConst; + /** + * The maximum amount of weight (if any) to be used from remaining weight `on_idle` which + * should be provided to the message queue for servicing enqueued items `on_idle`. + * Useful for parachains to process messages at the same block they are received. + * + * If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`. + **/ + idleMaxServiceWeight: Option & AugmentedConst; + /** + * The maximum number of stale pages (i.e. of overweight messages) allowed before culling + * can happen. Once there are more stale pages than this, then historical pages may be + * dropped, even if they contain unprocessed overweight messages. + **/ + maxStale: u32 & AugmentedConst; + /** + * The amount of weight (if any) which should be provided to the message queue for + * servicing enqueued items `on_initialize`. + * + * This may be legitimately `None` in the case that you will call + * `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have + * it run in `on_idle`. + **/ + serviceWeight: Option & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + multisig: { + /** + * The base amount of currency needed to reserve for creating a multisig execution or to + * store a dispatch call for later. + * + * This is held for an additional storage item whose value size is + * `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is + * `32 + sizeof(AccountId)` bytes. + **/ + depositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per unit threshold when creating a multisig execution. + * + * This is held for adding 32 bytes more into a pre-existing storage value. + **/ + depositFactor: u128 & AugmentedConst; + /** + * The maximum amount of signatories allowed in the multisig. + **/ + maxSignatories: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + nominationPools: { + /** + * The maximum pool points-to-balance ratio that an `open` pool can have. + * + * This is important in the event slashing takes place and the pool's points-to-balance + * ratio becomes disproportional. + * + * Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations + * are a function of number of points, and by setting this value to e.g. 10, you ensure + * that the total number of points in the system are at most 10 times the total_issuance of + * the chain, in the absolute worse case. + * + * For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1. + * Such a scenario would also be the equivalent of the pool being 90% slashed. + **/ + maxPointsToBalance: u8 & AugmentedConst; + /** + * The maximum number of simultaneous unbonding chunks that can exist per member. + **/ + maxUnbonding: u32 & AugmentedConst; + /** + * The nomination pool's pallet id. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + onDemand: { + /** + * The maximum number of blocks some historical revenue + * information stored for. + **/ + maxHistoricalRevenue: u32 & AugmentedConst; + /** + * Identifier for the internal revenue balance. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The default value for the spot traffic multiplier. + **/ + trafficDefaultValue: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + paras: { + unsignedPriority: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + proxy: { + /** + * The base amount of currency needed to reserve for creating an announcement. + * + * This is held when a new storage item holding a `Balance` is created (typically 16 + * bytes). + **/ + announcementDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per announcement made. + * + * This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes) + * into a pre-existing storage value. + **/ + announcementDepositFactor: u128 & AugmentedConst; + /** + * The maximum amount of time-delayed announcements that are allowed to be pending. + **/ + maxPending: u32 & AugmentedConst; + /** + * The maximum amount of proxies allowed for a single account. + **/ + maxProxies: u32 & AugmentedConst; + /** + * The base amount of currency needed to reserve for creating a proxy. + * + * This is held for an additional storage item whose value size is + * `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes. + **/ + proxyDepositBase: u128 & AugmentedConst; + /** + * The amount of currency needed per proxy added. + * + * This is held for adding 32 bytes plus an instance of `ProxyType` more into a + * pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take + * into account `32 + proxy_type.encode().len()` bytes of data. + **/ + proxyDepositFactor: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + referenda: { + /** + * Quantization level for the referendum wakeup scheduler. A higher number will result in + * fewer storage reads/writes needed for smaller voters, but also result in delays to the + * automatic referendum status changes. Explicit servicing instructions are unaffected. + **/ + alarmInterval: u32 & AugmentedConst; + /** + * Maximum size of the referendum queue for a single track. + **/ + maxQueued: u32 & AugmentedConst; + /** + * The minimum amount to be used as a deposit for a public referendum proposal. + **/ + submissionDeposit: u128 & AugmentedConst; + /** + * A list of tracks. + * + * Note: if the tracks are dynamic, the value in the static metadata might be inaccurate. + **/ + tracks: Vec> & AugmentedConst; + /** + * The number of blocks after submission that a referendum must begin being decided by. + * Once this passes, then anyone may cancel the referendum. + **/ + undecidingTimeout: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + registrar: { + /** + * The deposit to be paid per byte stored on chain. + **/ + dataDepositPerByte: u128 & AugmentedConst; + /** + * The deposit to be paid to run a on-demand parachain. + * This should include the cost for storing the genesis head and validation code. + **/ + paraDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + scheduler: { + /** + * The maximum weight that may be scheduled per block for any dispatchables. + **/ + maximumWeight: PezspWeightsWeightV2Weight & AugmentedConst; + /** + * The maximum number of scheduled calls in the queue for a single block. + * + * NOTE: + * + Dependent pallets' benchmarks might require a higher limit for the setting. Set a + * higher limit under `runtime-benchmarks` feature. + **/ + maxScheduledPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + session: { + /** + * The amount to be held when setting keys. + **/ + keyDeposit: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + slots: { + /** + * The number of blocks to offset each lease period by. + **/ + leaseOffset: u32 & AugmentedConst; + /** + * The number of blocks over which a single period lasts. + **/ + leasePeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + staking: { + /** + * Number of eras that staked funds must remain bonded for. + **/ + bondingDuration: u32 & AugmentedConst; + /** + * Number of eras to keep in history. + * + * Following information is kept for eras in `[current_era - + * HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`, + * `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`, + * `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`, + * `ErasStakersOverview`. + * + * Must be more than the number of eras delayed by session. + * I.e. active era must always be in history. I.e. `active_era > + * current_era - history_depth` must be guaranteed. + * + * If migrating an existing pallet from storage value to config value, + * this should be set to same value or greater as in storage. + * + * Note: `HistoryDepth` is used as the upper bound for the `BoundedVec` + * item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than + * the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a migration. + * The test `reducing_history_depth_abrupt` shows this effect. + **/ + historyDepth: u32 & AugmentedConst; + /** + * The maximum size of each `T::ExposurePage`. + * + * An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize` + * nominators. + * + * For older non-paged exposure, a reward payout was restricted to the top + * `MaxExposurePageSize` nominators. This is to limit the i/o cost for the + * nominator payout. + * + * Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce + * without handling it in a migration. + **/ + maxExposurePageSize: u32 & AugmentedConst; + /** + * The maximum number of `unlocking` chunks a [`StakingLedger`] can + * have. Effectively determines how many unique eras a staker may be + * unbonding in. + * + * Note: `MaxUnlockingChunks` is used as the upper bound for the + * `BoundedVec` item `StakingLedger.unlocking`. Setting this value + * lower than the existing value can lead to inconsistencies in the + * `StakingLedger` and will need to be handled properly in a runtime + * migration. The test `reducing_max_unlocking_chunks_abrupt` shows + * this effect. + **/ + maxUnlockingChunks: u32 & AugmentedConst; + /** + * The absolute maximum of winner validators this pallet should return. + **/ + maxValidatorSet: u32 & AugmentedConst; + /** + * Number of sessions per era. + **/ + sessionsPerEra: u32 & AugmentedConst; + /** + * Number of eras that slashes are deferred by, after computation. + * + * This should be less than the bonding duration. Set to 0 if slashes + * should be applied immediately, without opportunity for intervention. + **/ + slashDeferDuration: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + stateTrieMigration: { + /** + * Maximal number of bytes that a key can have. + * + * FRAME itself does not limit the key length. + * The concrete value must therefore depend on your storage usage. + * A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of + * keys which are then hashed and concatenated, resulting in arbitrarily long keys. + * + * Use the *state migration RPC* to retrieve the length of the longest key in your + * storage: + * + * The migration will halt with a `Halted` event if this value is too small. + * Since there is no real penalty from over-estimating, it is advised to use a large + * value. The default is 512 byte. + * + * Some key lengths for reference: + * - [`frame_support::storage::StorageValue`]: 32 byte + * - [`frame_support::storage::StorageMap`]: 64 byte + * - [`frame_support::storage::StorageDoubleMap`]: 96 byte + * + * For more info see + * + **/ + maxKeyLen: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + system: { + /** + * Maximum number of block number to block hash mappings to keep (oldest pruned first). + **/ + blockHashCount: u32 & AugmentedConst; + /** + * The maximum length of a block (in bytes). + **/ + blockLength: PezframeSystemLimitsBlockLength & AugmentedConst; + /** + * Block & extrinsics weights: base values and limits. + **/ + blockWeights: PezframeSystemLimitsBlockWeights & AugmentedConst; + /** + * The weight of runtime database operations the runtime can invoke. + **/ + dbWeight: PezspWeightsRuntimeDbWeight & AugmentedConst; + /** + * The designated SS58 prefix of this chain. + * + * This replaces the "ss58Format" property declared in the chain spec. Reason is + * that the runtime should know about the prefix in order to make use of it as + * an identifier of the chain. + **/ + ss58Prefix: u16 & AugmentedConst; + /** + * Get the chain's in-code version. + **/ + version: PezspVersionRuntimeVersion & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + timestamp: { + /** + * The minimum period between blocks. + * + * Be aware that this is different to the *expected* period that the block production + * apparatus provides. Your chosen consensus system will generally work with this to + * determine a sensible block time. For example, in the Aura pallet it will be double this + * period on default settings. + **/ + minimumPeriod: u64 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + transactionPayment: { + /** + * A fee multiplier for `Operational` extrinsics to compute "virtual tip" to boost their + * `priority` + * + * This value is multiplied by the `final_fee` to obtain a "virtual tip" that is later + * added to a tip component in regular `priority` calculations. + * It means that a `Normal` transaction can front-run a similarly-sized `Operational` + * extrinsic (with no tip), by including a tip value greater than the virtual tip. + * + * ```rust,ignore + * // For `Normal` + * let priority = priority_calc(tip); + * + * // For `Operational` + * let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier; + * let priority = priority_calc(tip + virtual_tip); + * ``` + * + * Note that since we use `final_fee` the multiplier applies also to the regular `tip` + * sent with the transaction. So, not only does the transaction get a priority bump based + * on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational` + * transactions. + **/ + operationalFeeMultiplier: u8 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + treasury: { + /** + * Percentage of spare funds (if any) that are burnt per spend period. + **/ + burn: Permill & AugmentedConst; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * The maximum number of approvals that can wait in the spending queue. + * + * NOTE: This parameter is also used within the Bounties Pallet extension if enabled. + **/ + maxApprovals: u32 & AugmentedConst; + /** + * The treasury's pallet id, used for deriving its sovereign account ID. + **/ + palletId: PezframeSupportPezpalletId & AugmentedConst; + /** + * The period during which an approved treasury spend has to be claimed. + **/ + payoutPeriod: u32 & AugmentedConst; + /** + * Gets this pallet's derived pot account. + **/ + potAccount: AccountId32 & AugmentedConst; + /** + * Period between successive spends. + **/ + spendPeriod: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + utility: { + /** + * The limit on the number of batched calls. + **/ + batchedCallsLimit: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + vesting: { + maxVestingSchedules: u32 & AugmentedConst; + /** + * The minimum amount transferred to call `vested_transfer`. + **/ + minVestedTransfer: u128 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + voterList: { + /** + * The list of thresholds separating the various bags. + * + * Ids are separated into unsorted bags according to their score. This specifies the + * thresholds separating the bags. An id's bag is the largest bag for which the id's score + * is less than or equal to its upper threshold. + * + * When ids are iterated, higher bags are iterated completely before lower bags. This means + * that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower + * score, but peer ids within a particular bag are sorted in insertion order. + * + * # Expressing the constant + * + * This constant must be sorted in strictly increasing order. Duplicate items are not + * permitted. + * + * There is an implied upper limit of `Score::MAX`; that value does not need to be + * specified within the bag. For any two threshold lists, if one ends with + * `Score::MAX`, the other one does not, and they are otherwise equal, the two + * lists will behave identically. + * + * # Calculation + * + * It is recommended to generate the set of thresholds in a geometric series, such that + * there exists some constant ratio such that `threshold[k + 1] == (threshold[k] * + * constant_ratio).max(threshold[k] + 1)` for all `k`. + * + * The helpers in the `/utils/frame/generate-bags` module can simplify this calculation. + * + * # Examples + * + * - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and + * iteration is strictly in insertion order. + * - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is equal to 2. + * - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to + * the procedure given above, then the constant ratio is approximately equal to 1.248. + * - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall + * into bag 0, an id with score 2 will fall into bag 1, etc. + * + * # Migration + * + * In the event that this list ever changes, a copy of the old bags list must be retained. + * With that `List::migrate` can be called, which will perform the appropriate migration. + **/ + bagThresholds: Vec & AugmentedConst; + /** + * Maximum number of accounts that may be re-bagged automatically in `on_idle`. + * + * A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables + * the feature. + **/ + maxAutoRebagPerBlock: u32 & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + xcmPallet: { + /** + * The latest supported version that we advertise. Generally just set it to + * `pallet_xcm::CurrentXcmVersion`. + **/ + advertisedXcmVersion: u32 & AugmentedConst; + /** + * The maximum number of local XCM locks that a single account may have. + **/ + maxLockers: u32 & AugmentedConst; + /** + * The maximum number of consumers a single remote lock may have. + **/ + maxRemoteLockConsumers: u32 & AugmentedConst; + /** + * This chain's Universal Location. + **/ + universalLocation: StagingXcmV5Junctions & AugmentedConst; + /** + * Generic const + **/ + [key: string]: Codec; + }; + } // AugmentedConsts +} // declare module diff --git a/packages/api-augment/src/pezkuwi/errors.ts b/packages/api-augment/src/pezkuwi/errors.ts new file mode 100644 index 0000000..bf4f616 --- /dev/null +++ b/packages/api-augment/src/pezkuwi/errors.ts @@ -0,0 +1,2156 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/errors'; + +import type { ApiTypes, AugmentedError } from '@pezkuwi/api-base/types'; + +export type __AugmentedError = AugmentedError; + +declare module '@pezkuwi/api-base/types/errors' { + interface AugmentedErrors { + assetRate: { + /** + * The given asset ID already has an assigned conversion rate and cannot be re-created. + **/ + AlreadyExists: AugmentedError; + /** + * Overflow ocurred when calculating the inverse rate. + **/ + Overflow: AugmentedError; + /** + * The given asset ID is unknown. + **/ + UnknownAssetKind: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + auctions: { + /** + * The para is already leased out for part of this range. + **/ + AlreadyLeasedOut: AugmentedError; + /** + * Auction has already ended. + **/ + AuctionEnded: AugmentedError; + /** + * This auction is already in progress. + **/ + AuctionInProgress: AugmentedError; + /** + * The lease period is in the past. + **/ + LeasePeriodInPast: AugmentedError; + /** + * Not an auction. + **/ + NotAuction: AugmentedError; + /** + * Not a current auction. + **/ + NotCurrentAuction: AugmentedError; + /** + * Para is not registered + **/ + ParaNotRegistered: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + babe: { + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * Submitted configuration is invalid. + **/ + InvalidConfiguration: AugmentedError; + /** + * An equivocation proof provided as part of an equivocation report is invalid. + **/ + InvalidEquivocationProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + balances: { + /** + * Beneficiary account must pre-exist. + **/ + DeadAccount: AugmentedError; + /** + * The delta cannot be zero. + **/ + DeltaZero: AugmentedError; + /** + * Value too low to create account due to existential deposit. + **/ + ExistentialDeposit: AugmentedError; + /** + * A vesting schedule already exists for this account. + **/ + ExistingVestingSchedule: AugmentedError; + /** + * Transfer/payment would kill account. + **/ + Expendability: AugmentedError; + /** + * Balance too low to send value. + **/ + InsufficientBalance: AugmentedError; + /** + * The issuance cannot be modified since it is already deactivated. + **/ + IssuanceDeactivated: AugmentedError; + /** + * Account liquidity restrictions prevent withdrawal. + **/ + LiquidityRestrictions: AugmentedError; + /** + * Number of freezes exceed `MaxFreezes`. + **/ + TooManyFreezes: AugmentedError; + /** + * Number of holds exceed `VariantCountOf`. + **/ + TooManyHolds: AugmentedError; + /** + * Number of named reserves exceed `MaxReserves`. + **/ + TooManyReserves: AugmentedError; + /** + * Vesting balance too high to send value. + **/ + VestingBalance: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + beefy: { + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * Submitted configuration is invalid. + **/ + InvalidConfiguration: AugmentedError; + /** + * A double voting proof provided as part of an equivocation report is invalid. + **/ + InvalidDoubleVotingProof: AugmentedError; + /** + * The session of the equivocation proof is invalid + **/ + InvalidEquivocationProofSession: AugmentedError; + /** + * A fork voting proof provided as part of an equivocation report is invalid. + **/ + InvalidForkVotingProof: AugmentedError; + /** + * A future block voting proof provided as part of an equivocation report is invalid. + **/ + InvalidFutureBlockVotingProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + bounties: { + /** + * The bounty cannot be closed because it has active child bounties. + **/ + HasActiveChildBounty: AugmentedError; + /** + * Proposer's balance is too low. + **/ + InsufficientProposersBalance: AugmentedError; + /** + * Invalid bounty fee. + **/ + InvalidFee: AugmentedError; + /** + * No proposal or bounty at that index. + **/ + InvalidIndex: AugmentedError; + /** + * Invalid bounty value. + **/ + InvalidValue: AugmentedError; + /** + * User is not the proposer of the bounty. + **/ + NotProposer: AugmentedError; + /** + * A bounty payout is pending. + * To cancel the bounty, you must unassign and slash the curator. + **/ + PendingPayout: AugmentedError; + /** + * The bounties cannot be claimed/closed because it's still in the countdown period. + **/ + Premature: AugmentedError; + /** + * The reason given is just too big. + **/ + ReasonTooBig: AugmentedError; + /** + * Require bounty curator. + **/ + RequireCurator: AugmentedError; + /** + * Too many approvals are already queued. + **/ + TooManyQueued: AugmentedError; + /** + * The bounty status is unexpected. + **/ + UnexpectedStatus: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + childBounties: { + /** + * The bounty balance is not enough to add new child-bounty. + **/ + InsufficientBountyBalance: AugmentedError; + /** + * The parent bounty is not in active state. + **/ + ParentBountyNotActive: AugmentedError; + /** + * Number of child bounties exceeds limit `MaxActiveChildBountyCount`. + **/ + TooManyChildBounties: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + claims: { + /** + * Invalid Ethereum signature. + **/ + InvalidEthereumSignature: AugmentedError; + /** + * A needed statement was not included. + **/ + InvalidStatement: AugmentedError; + /** + * There's not enough in the pot to pay out some unvested amount. Generally implies a + * logic error. + **/ + PotUnderflow: AugmentedError; + /** + * Account ID sending transaction has no claim. + **/ + SenderHasNoClaim: AugmentedError; + /** + * Ethereum address has no claim. + **/ + SignerHasNoClaim: AugmentedError; + /** + * The account already has a vested balance. + **/ + VestedBalanceExists: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + configuration: { + /** + * The new value for a configuration parameter is invalid. + **/ + InvalidNewValue: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + convictionVoting: { + /** + * The account is already delegating. + **/ + AlreadyDelegating: AugmentedError; + /** + * The account currently has votes attached to it and the operation cannot succeed until + * these are removed through `remove_vote`. + **/ + AlreadyVoting: AugmentedError; + /** + * The class ID supplied is invalid. + **/ + BadClass: AugmentedError; + /** + * The class must be supplied since it is not easily determinable from the state. + **/ + ClassNeeded: AugmentedError; + /** + * Too high a balance was provided that the account cannot afford. + **/ + InsufficientFunds: AugmentedError; + /** + * Maximum number of votes reached. + **/ + MaxVotesReached: AugmentedError; + /** + * Delegation to oneself makes no sense. + **/ + Nonsense: AugmentedError; + /** + * The actor has no permission to conduct the action. + **/ + NoPermission: AugmentedError; + /** + * The actor has no permission to conduct the action right now but will do in the future. + **/ + NoPermissionYet: AugmentedError; + /** + * The account is not currently delegating. + **/ + NotDelegating: AugmentedError; + /** + * Poll is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * The given account did not vote on the poll. + **/ + NotVoter: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + coretime: { + /** + * Failed to transfer assets to the coretime chain + **/ + AssetTransferFailed: AugmentedError; + /** + * The paraid making the call is not the coretime brokerage system parachain. + **/ + NotBroker: AugmentedError; + /** + * Requested revenue information `when` parameter was in the future from the current + * block height. + **/ + RequestedFutureRevenue: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + coretimeAssignmentProvider: { + AssignmentsEmpty: AugmentedError; + /** + * assign_core is only allowed to append new assignments at the end of already existing + * ones or update the last entry. + **/ + DisallowedInsert: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + crowdloan: { + /** + * The fund is already in `NewRaise` + **/ + AlreadyInNewRaise: AugmentedError; + /** + * This parachain's bid or lease is still active and withdraw cannot yet begin. + **/ + BidOrLeaseActive: AugmentedError; + /** + * The campaign ends before the current block number. The end must be in the future. + **/ + CannotEndInPast: AugmentedError; + /** + * Contributions exceed maximum amount. + **/ + CapExceeded: AugmentedError; + /** + * The contribution period has already ended. + **/ + ContributionPeriodOver: AugmentedError; + /** + * The contribution was below the minimum, `MinContribution`. + **/ + ContributionTooSmall: AugmentedError; + /** + * The end date for this crowdloan is not sensible. + **/ + EndTooFarInFuture: AugmentedError; + /** + * The current lease period is more than the first lease period. + **/ + FirstPeriodInPast: AugmentedError; + /** + * The first lease period needs to at least be less than 3 `max_value`. + **/ + FirstPeriodTooFarInFuture: AugmentedError; + /** + * The crowdloan has not yet ended. + **/ + FundNotEnded: AugmentedError; + /** + * The origin of this call is invalid. + **/ + InvalidOrigin: AugmentedError; + /** + * Invalid fund index. + **/ + InvalidParaId: AugmentedError; + /** + * Invalid signature. + **/ + InvalidSignature: AugmentedError; + /** + * Last lease period must be greater than first lease period. + **/ + LastPeriodBeforeFirstPeriod: AugmentedError; + /** + * The last lease period cannot be more than 3 periods after the first period. + **/ + LastPeriodTooFarInFuture: AugmentedError; + /** + * This parachain lease is still active and retirement cannot yet begin. + **/ + LeaseActive: AugmentedError; + /** + * The provided memo is too large. + **/ + MemoTooLarge: AugmentedError; + /** + * There are no contributions stored in this crowdloan. + **/ + NoContributions: AugmentedError; + /** + * A lease period has not started yet, due to an offset in the starting block. + **/ + NoLeasePeriod: AugmentedError; + /** + * This crowdloan does not correspond to a parachain. + **/ + NotParachain: AugmentedError; + /** + * The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement + * period. + **/ + NotReadyToDissolve: AugmentedError; + /** + * There was an overflow. + **/ + Overflow: AugmentedError; + /** + * No contributions allowed during the VRF delay + **/ + VrfDelayInProgress: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + delegatedStaking: { + /** + * An existing staker cannot perform this action. + **/ + AlreadyStaking: AugmentedError; + /** + * Some corruption in internal state. + **/ + BadState: AugmentedError; + /** + * Delegation conditions are not met. + * + * Possible issues are + * 1) Cannot delegate to self, + * 2) Cannot delegate to multiple delegates. + **/ + InvalidDelegation: AugmentedError; + /** + * Reward Destination cannot be same as `Agent` account. + **/ + InvalidRewardDestination: AugmentedError; + /** + * Not an existing `Agent` account. + **/ + NotAgent: AugmentedError; + /** + * The account cannot perform this operation. + **/ + NotAllowed: AugmentedError; + /** + * Not a Delegator account. + **/ + NotDelegator: AugmentedError; + /** + * The account does not have enough funds to perform the operation. + **/ + NotEnoughFunds: AugmentedError; + /** + * `Agent` has no pending slash to be applied. + **/ + NothingToSlash: AugmentedError; + /** + * Operation not supported by this pallet. + **/ + NotSupported: AugmentedError; + /** + * Unapplied pending slash restricts operation on `Agent`. + **/ + UnappliedSlash: AugmentedError; + /** + * Failed to withdraw amount from Core Staking. + **/ + WithdrawFailed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + electionProviderMultiPhase: { + /** + * Some bound not met + **/ + BoundNotMet: AugmentedError; + /** + * The call is not allowed at this point. + **/ + CallNotAllowed: AugmentedError; + /** + * The fallback failed + **/ + FallbackFailed: AugmentedError; + /** + * `Self::insert_submission` returned an invalid index. + **/ + InvalidSubmissionIndex: AugmentedError; + /** + * Snapshot metadata should exist but didn't. + **/ + MissingSnapshotMetadata: AugmentedError; + /** + * OCW submitted solution for wrong round + **/ + OcwCallWrongEra: AugmentedError; + /** + * Submission was prepared for a different round. + **/ + PreDispatchDifferentRound: AugmentedError; + /** + * Submission was too early. + **/ + PreDispatchEarlySubmission: AugmentedError; + /** + * Submission was too weak, score-wise. + **/ + PreDispatchWeakSubmission: AugmentedError; + /** + * Wrong number of winners presented. + **/ + PreDispatchWrongWinnerCount: AugmentedError; + /** + * The origin failed to pay the deposit. + **/ + SignedCannotPayDeposit: AugmentedError; + /** + * Witness data to dispatchable is invalid. + **/ + SignedInvalidWitness: AugmentedError; + /** + * The queue was full, and the solution was not better than any of the existing ones. + **/ + SignedQueueFull: AugmentedError; + /** + * The signed submission consumes too much weight + **/ + SignedTooMuchWeight: AugmentedError; + /** + * Submitted solution has too many winners + **/ + TooManyWinners: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + fastUnstake: { + /** + * The provided un-staker is already in Head, and cannot deregister. + **/ + AlreadyHead: AugmentedError; + /** + * The bonded account has already been queued. + **/ + AlreadyQueued: AugmentedError; + /** + * The call is not allowed at this point because the pallet is not active. + **/ + CallNotAllowed: AugmentedError; + /** + * The provided Controller account was not found. + * + * This means that the given account is not bonded. + **/ + NotController: AugmentedError; + /** + * The bonded account has active unlocking chunks. + **/ + NotFullyBonded: AugmentedError; + /** + * The provided un-staker is not in the `Queue`. + **/ + NotQueued: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + grandpa: { + /** + * Attempt to signal GRANDPA change with one already pending. + **/ + ChangePending: AugmentedError; + /** + * A given equivocation report is valid but already previously reported. + **/ + DuplicateOffenceReport: AugmentedError; + /** + * An equivocation proof provided as part of an equivocation report is invalid. + **/ + InvalidEquivocationProof: AugmentedError; + /** + * A key ownership proof provided as part of an equivocation report is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * Attempt to signal GRANDPA pause when the authority set isn't live + * (either paused or already pending pause). + **/ + PauseFailed: AugmentedError; + /** + * Attempt to signal GRANDPA resume when the authority set isn't paused + * (either live or already pending resume). + **/ + ResumeFailed: AugmentedError; + /** + * Cannot signal forced change so soon after last. + **/ + TooSoon: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + hrmp: { + /** + * The channel is already confirmed. + **/ + AcceptHrmpChannelAlreadyConfirmed: AugmentedError; + /** + * The channel from the sender to the origin doesn't exist. + **/ + AcceptHrmpChannelDoesntExist: AugmentedError; + /** + * The recipient already has the maximum number of allowed inbound channels. + **/ + AcceptHrmpChannelLimitExceeded: AugmentedError; + /** + * Canceling is requested by neither the sender nor recipient of the open channel request. + **/ + CancelHrmpOpenChannelUnauthorized: AugmentedError; + /** + * The channel between these two chains cannot be authorized. + **/ + ChannelCreationNotAuthorized: AugmentedError; + /** + * The channel close request is already requested. + **/ + CloseHrmpChannelAlreadyUnderway: AugmentedError; + /** + * The channel to be closed doesn't exist. + **/ + CloseHrmpChannelDoesntExist: AugmentedError; + /** + * The origin tries to close a channel where it is neither the sender nor the recipient. + **/ + CloseHrmpChannelUnauthorized: AugmentedError; + /** + * Cannot cancel an HRMP open channel request because it is already confirmed. + **/ + OpenHrmpChannelAlreadyConfirmed: AugmentedError; + /** + * The channel already exists + **/ + OpenHrmpChannelAlreadyExists: AugmentedError; + /** + * There is already a request to open the same channel. + **/ + OpenHrmpChannelAlreadyRequested: AugmentedError; + /** + * The requested capacity exceeds the global limit. + **/ + OpenHrmpChannelCapacityExceedsLimit: AugmentedError; + /** + * The open request doesn't exist. + **/ + OpenHrmpChannelDoesntExist: AugmentedError; + /** + * The recipient is not a valid para. + **/ + OpenHrmpChannelInvalidRecipient: AugmentedError; + /** + * The sender already has the maximum number of allowed outbound channels. + **/ + OpenHrmpChannelLimitExceeded: AugmentedError; + /** + * The open request requested the message size that exceeds the global limit. + **/ + OpenHrmpChannelMessageSizeExceedsLimit: AugmentedError; + /** + * The sender tried to open a channel to themselves. + **/ + OpenHrmpChannelToSelf: AugmentedError; + /** + * The requested capacity is zero. + **/ + OpenHrmpChannelZeroCapacity: AugmentedError; + /** + * The requested maximum message size is 0. + **/ + OpenHrmpChannelZeroMessageSize: AugmentedError; + /** + * The provided witness data is wrong. + **/ + WrongWitness: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + indices: { + /** + * The index was not available. + **/ + InUse: AugmentedError; + /** + * The index was not already assigned. + **/ + NotAssigned: AugmentedError; + /** + * The index is assigned to another account. + **/ + NotOwner: AugmentedError; + /** + * The source and destination accounts are identical. + **/ + NotTransfer: AugmentedError; + /** + * The index is permanent and may not be freed/changed. + **/ + Permanent: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + messageQueue: { + /** + * The message was already processed and cannot be processed again. + **/ + AlreadyProcessed: AugmentedError; + /** + * There is temporarily not enough weight to continue servicing messages. + **/ + InsufficientWeight: AugmentedError; + /** + * The referenced message could not be found. + **/ + NoMessage: AugmentedError; + /** + * Page to be reaped does not exist. + **/ + NoPage: AugmentedError; + /** + * Page is not reapable because it has items remaining to be processed and is not old + * enough. + **/ + NotReapable: AugmentedError; + /** + * The message is queued for future execution. + **/ + Queued: AugmentedError; + /** + * The queue is paused and no message can be executed from it. + * + * This can change at any time and may resolve in the future by re-trying. + **/ + QueuePaused: AugmentedError; + /** + * Another call is in progress and needs to finish before this call can happen. + **/ + RecursiveDisallowed: AugmentedError; + /** + * This message is temporarily unprocessable. + * + * Such errors are expected, but not guaranteed, to resolve themselves eventually through + * retrying. + **/ + TemporarilyUnprocessable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + multisig: { + /** + * Call is already approved by this signatory. + **/ + AlreadyApproved: AugmentedError; + /** + * The data to be stored is already stored. + **/ + AlreadyStored: AugmentedError; + /** + * The maximum weight information provided was too low. + **/ + MaxWeightTooLow: AugmentedError; + /** + * Threshold must be 2 or greater. + **/ + MinimumThreshold: AugmentedError; + /** + * Call doesn't need any (more) approvals. + **/ + NoApprovalsNeeded: AugmentedError; + /** + * Multisig operation not found in storage. + **/ + NotFound: AugmentedError; + /** + * No timepoint was given, yet the multisig operation is already underway. + **/ + NoTimepoint: AugmentedError; + /** + * Only the account that originally created the multisig is able to cancel it or update + * its deposits. + **/ + NotOwner: AugmentedError; + /** + * The sender was contained in the other signatories; it shouldn't be. + **/ + SenderInSignatories: AugmentedError; + /** + * The signatories were provided out of order; they should be ordered. + **/ + SignatoriesOutOfOrder: AugmentedError; + /** + * There are too few signatories in the list. + **/ + TooFewSignatories: AugmentedError; + /** + * There are too many signatories in the list. + **/ + TooManySignatories: AugmentedError; + /** + * A timepoint was given, yet no multisig operation is underway. + **/ + UnexpectedTimepoint: AugmentedError; + /** + * A different timepoint was given to the multisig operation that is underway. + **/ + WrongTimepoint: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + nominationPools: { + /** + * An account is already delegating in another pool. An account may only belong to one + * pool at a time. + **/ + AccountBelongsToOtherPool: AugmentedError; + /** + * The pool or member delegation has already migrated to delegate stake. + **/ + AlreadyMigrated: AugmentedError; + /** + * Bonding extra is restricted to the exact pending reward amount. + **/ + BondExtraRestricted: AugmentedError; + /** + * The pools state cannot be changed. + **/ + CanNotChangeState: AugmentedError; + /** + * None of the funds can be withdrawn yet because the bonding duration has not passed. + **/ + CannotWithdrawAny: AugmentedError; + /** + * The submitted changes to commission change rate are not allowed. + **/ + CommissionChangeRateNotAllowed: AugmentedError; + /** + * Not enough blocks have surpassed since the last commission update. + **/ + CommissionChangeThrottled: AugmentedError; + /** + * The supplied commission exceeds global maximum commission. + **/ + CommissionExceedsGlobalMaximum: AugmentedError; + /** + * The supplied commission exceeds the max allowed commission. + **/ + CommissionExceedsMaximum: AugmentedError; + /** + * Some error occurred that should never happen. This should be reported to the + * maintainers. + **/ + Defensive: AugmentedError; + /** + * The caller does not have adequate permissions. + **/ + DoesNotHavePermission: AugmentedError; + /** + * The member is fully unbonded (and thus cannot access the bonded and reward pool + * anymore to, for example, collect rewards). + **/ + FullyUnbonding: AugmentedError; + /** + * Pool id provided is not correct/usable. + **/ + InvalidPoolId: AugmentedError; + /** + * The pool's max commission cannot be set higher than the existing value. + **/ + MaxCommissionRestricted: AugmentedError; + /** + * Too many members in the pool or system. + **/ + MaxPoolMembers: AugmentedError; + /** + * The system is maxed out on pools. + **/ + MaxPools: AugmentedError; + /** + * The member cannot unbond further chunks due to reaching the limit. + **/ + MaxUnbondingLimit: AugmentedError; + /** + * Metadata exceeds [`Config::MaxMetadataLen`] + **/ + MetadataExceedsMaxLen: AugmentedError; + /** + * The amount does not meet the minimum bond to either join or create a pool. + * + * The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The + * caller does not have nominating permissions for the pool. Members can never unbond to a + * value below `MinJoinBond`. + **/ + MinimumBondNotMet: AugmentedError; + /** + * No commission current has been set. + **/ + NoCommissionCurrentSet: AugmentedError; + /** + * There is no pending commission to claim. + **/ + NoPendingCommission: AugmentedError; + /** + * A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for + * other members to be permissionlessly unbonded. + **/ + NotDestroying: AugmentedError; + /** + * No imbalance in the ED deposit for the pool. + **/ + NothingToAdjust: AugmentedError; + /** + * No slash pending that can be applied to the member. + **/ + NothingToSlash: AugmentedError; + /** + * Either a) the caller cannot make a valid kick or b) the pool is not destroying. + **/ + NotKickerOrDestroying: AugmentedError; + /** + * The pool or member delegation has not migrated yet to delegate stake. + **/ + NotMigrated: AugmentedError; + /** + * The caller does not have nominating permissions for the pool. + **/ + NotNominator: AugmentedError; + /** + * The pool is not open to join + **/ + NotOpen: AugmentedError; + /** + * This call is not allowed in the current state of the pallet. + **/ + NotSupported: AugmentedError; + /** + * The transaction could not be executed due to overflow risk for the pool. + **/ + OverflowRisk: AugmentedError; + /** + * Partial unbonding now allowed permissionlessly. + **/ + PartialUnbondNotAllowedPermissionlessly: AugmentedError; + /** + * Pool id currently in use. + **/ + PoolIdInUse: AugmentedError; + /** + * An account is not a member. + **/ + PoolMemberNotFound: AugmentedError; + /** + * A (bonded) pool id does not exist. + **/ + PoolNotFound: AugmentedError; + /** + * Account is restricted from participation in pools. This may happen if the account is + * staking in another way already. + **/ + Restricted: AugmentedError; + /** + * A reward pool does not exist. In all cases this is a system logic error. + **/ + RewardPoolNotFound: AugmentedError; + /** + * The slash amount is too low to be applied. + **/ + SlashTooLow: AugmentedError; + /** + * A sub pool does not exist. + **/ + SubPoolsNotFound: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + onDemand: { + /** + * The account doesn't have enough credits to purchase on-demand coretime. + **/ + InsufficientCredits: AugmentedError; + /** + * The order queue is full, `place_order` will not continue. + **/ + QueueFull: AugmentedError; + /** + * The current spot price is higher than the max amount specified in the `place_order` + * call, making it invalid. + **/ + SpotPriceHigherThanMaxAmount: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paraInclusion: { + /** + * The candidate's relay-parent was not allowed. Either it was + * not recent enough or it didn't advance based on the last parachain block. + **/ + DisallowedRelayParent: AugmentedError; + /** + * Head data exceeds the configured maximum. + **/ + HeadDataTooLarge: AugmentedError; + /** + * The candidate didn't follow the rules of HRMP watermark advancement. + **/ + HrmpWatermarkMishandling: AugmentedError; + /** + * The downward message queue is not processed correctly. + **/ + IncorrectDownwardMessageHandling: AugmentedError; + /** + * Insufficient (non-majority) backing. + **/ + InsufficientBacking: AugmentedError; + /** + * Failed to compute group index for the core: either it's out of bounds + * or the relay parent doesn't belong to the current session. + **/ + InvalidAssignment: AugmentedError; + /** + * Invalid (bad signature, unknown validator, etc.) backing. + **/ + InvalidBacking: AugmentedError; + /** + * Invalid group index in core assignment. + **/ + InvalidGroupIndex: AugmentedError; + /** + * The HRMP messages sent by the candidate is not valid. + **/ + InvalidOutboundHrmp: AugmentedError; + /** + * At least one upward message sent does not pass the acceptance criteria. + **/ + InvalidUpwardMessages: AugmentedError; + /** + * The validation code hash of the candidate is not valid. + **/ + InvalidValidationCodeHash: AugmentedError; + /** + * Output code is too large + **/ + NewCodeTooLarge: AugmentedError; + /** + * The `para_head` hash in the candidate descriptor doesn't match the hash of the actual + * para head in the commitments. + **/ + ParaHeadMismatch: AugmentedError; + /** + * Code upgrade prematurely. + **/ + PrematureCodeUpgrade: AugmentedError; + /** + * Candidate submitted but para not scheduled. + **/ + UnscheduledCandidate: AugmentedError; + /** + * The validation data hash does not match expected. + **/ + ValidationDataHashMismatch: AugmentedError; + /** + * Validator index out of bounds. + **/ + ValidatorIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paraInherent: { + /** + * Inherent data was filtered during execution. This should have only been done + * during creation. + **/ + InherentDataFilteredDuringExecution: AugmentedError; + /** + * The hash of the submitted parent header doesn't correspond to the saved block hash of + * the parent. + **/ + InvalidParentHeader: AugmentedError; + /** + * Inclusion inherent called more than once per block. + **/ + TooManyInclusionInherents: AugmentedError; + /** + * Too many candidates supplied. + **/ + UnscheduledCandidate: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + paras: { + /** + * Para cannot be downgraded to an on-demand parachain. + **/ + CannotDowngrade: AugmentedError; + /** + * Para cannot be offboarded at this time. + **/ + CannotOffboard: AugmentedError; + /** + * Para cannot be onboarded because it is already tracked by our system. + **/ + CannotOnboard: AugmentedError; + /** + * Para cannot be upgraded to a lease holding parachain. + **/ + CannotUpgrade: AugmentedError; + /** + * Parachain cannot currently schedule a code upgrade. + **/ + CannotUpgradeCode: AugmentedError; + /** + * Invalid block number. + **/ + InvalidBlockNumber: AugmentedError; + /** + * Invalid validation code size. + **/ + InvalidCode: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * Para is not registered in our system. + **/ + NotRegistered: AugmentedError; + /** + * The given validator already has cast a vote. + **/ + PvfCheckDoubleVote: AugmentedError; + /** + * The signature for the PVF pre-checking is invalid. + **/ + PvfCheckInvalidSignature: AugmentedError; + /** + * The statement for PVF pre-checking is for a future session. + **/ + PvfCheckStatementFuture: AugmentedError; + /** + * The statement for PVF pre-checking is stale. + **/ + PvfCheckStatementStale: AugmentedError; + /** + * The given PVF does not exist at the moment of process a vote. + **/ + PvfCheckSubjectInvalid: AugmentedError; + /** + * Claimed validator index is out of bounds. + **/ + PvfCheckValidatorIndexOutOfBounds: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parasDisputes: { + /** + * Ancient dispute statement provided. + **/ + AncientDisputeStatement: AugmentedError; + /** + * Duplicate dispute statement sets provided. + **/ + DuplicateDisputeStatementSets: AugmentedError; + /** + * Validator vote submitted more than once to dispute. + **/ + DuplicateStatement: AugmentedError; + /** + * Invalid signature on statement. + **/ + InvalidSignature: AugmentedError; + /** + * A dispute vote from a malicious backer. + **/ + MaliciousBacker: AugmentedError; + /** + * No backing votes were provides along dispute statements. + **/ + MissingBackingVotes: AugmentedError; + /** + * A dispute where there are only votes on one side. + **/ + SingleSidedDispute: AugmentedError; + /** + * Unconfirmed dispute statement sets provided. + **/ + UnconfirmedDispute: AugmentedError; + /** + * Validator index on statement is out of bounds for session. + **/ + ValidatorIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + parasSlashing: { + /** + * The given slashing report is valid but already previously reported. + **/ + DuplicateSlashingReport: AugmentedError; + /** + * The candidate hash is invalid. + **/ + InvalidCandidateHash: AugmentedError; + /** + * The key ownership proof is invalid. + **/ + InvalidKeyOwnershipProof: AugmentedError; + /** + * The session index is too old or invalid. + **/ + InvalidSessionIndex: AugmentedError; + /** + * There is no pending slash for the given validator index and time + * slot. + **/ + InvalidValidatorIndex: AugmentedError; + /** + * The validator index does not match the validator id. + **/ + ValidatorIndexIdMismatch: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + preimage: { + /** + * Preimage has already been noted on-chain. + **/ + AlreadyNoted: AugmentedError; + /** + * The user is not authorized to perform this action. + **/ + NotAuthorized: AugmentedError; + /** + * The preimage cannot be removed since it has not yet been noted. + **/ + NotNoted: AugmentedError; + /** + * The preimage request cannot be removed since no outstanding requests exist. + **/ + NotRequested: AugmentedError; + /** + * A preimage may not be removed when there are outstanding requests. + **/ + Requested: AugmentedError; + /** + * Preimage is too large to store on-chain. + **/ + TooBig: AugmentedError; + /** + * Too few hashes were requested to be upgraded (i.e. zero). + **/ + TooFew: AugmentedError; + /** + * More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once. + **/ + TooMany: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + proxy: { + /** + * Account is already a proxy. + **/ + Duplicate: AugmentedError; + /** + * Call may not be made by proxy because it may escalate its privileges. + **/ + NoPermission: AugmentedError; + /** + * Cannot add self as proxy. + **/ + NoSelfProxy: AugmentedError; + /** + * Proxy registration not found. + **/ + NotFound: AugmentedError; + /** + * Sender is not a proxy of the account to be proxied. + **/ + NotProxy: AugmentedError; + /** + * There are too many proxies registered or too many announcements pending. + **/ + TooMany: AugmentedError; + /** + * Announcement, if made at all, was made too recently. + **/ + Unannounced: AugmentedError; + /** + * A call which is incompatible with the proxy type's filter was attempted. + **/ + Unproxyable: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + rcMigrator: { + /** + * The account is referenced by some other pallet. It might have freezes or holds. + **/ + AccountReferenced: AugmentedError; + /** + * The AH UMP queue priority configuration is already set. + **/ + AhUmpQueuePriorityAlreadySet: AugmentedError; + /** + * The XCM version is invalid. + **/ + BadXcmVersion: AugmentedError; + /** + * Balance accounting overflow. + **/ + BalanceOverflow: AugmentedError; + /** + * Balance accounting underflow. + **/ + BalanceUnderflow: AugmentedError; + /** + * Indicates that there is not enough time for staking to lock. + * + * Schedule the migration at least two sessions before the current era ends. + **/ + EraEndsTooSoon: AugmentedError; + /** + * Failed to withdraw account from RC for migration to AH. + **/ + FailedToWithdrawAccount: AugmentedError; + /** + * The origin is invalid. + **/ + InvalidOrigin: AugmentedError; + /** + * Invalid parameter. + **/ + InvalidParameter: AugmentedError; + /** + * The query response is invalid. + **/ + InvalidQueryResponse: AugmentedError; + /** + * The stage transition is invalid. + **/ + InvalidStageTransition: AugmentedError; + OutOfWeight: AugmentedError; + /** + * Indicates that the specified block number is in the past. + **/ + PastBlockNumber: AugmentedError; + /** + * The xcm query was not found. + **/ + QueryNotFound: AugmentedError; + Unreachable: AugmentedError; + /** + * The migration stage is not reachable from the current stage. + **/ + UnreachableStage: AugmentedError; + /** + * Unsigned validation failed. + **/ + UnsignedValidationFailed: AugmentedError; + /** + * Failed to send XCM message to AH. + **/ + XcmError: AugmentedError; + /** + * Failed to send XCM message. + **/ + XcmSendError: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + referenda: { + /** + * The referendum index provided is invalid in this context. + **/ + BadReferendum: AugmentedError; + /** + * The referendum status is invalid for this operation. + **/ + BadStatus: AugmentedError; + /** + * The track identifier given was invalid. + **/ + BadTrack: AugmentedError; + /** + * There are already a full complement of referenda in progress for this track. + **/ + Full: AugmentedError; + /** + * Referendum's decision deposit is already paid. + **/ + HasDeposit: AugmentedError; + /** + * The deposit cannot be refunded since none was made. + **/ + NoDeposit: AugmentedError; + /** + * The deposit refunder is not the depositor. + **/ + NoPermission: AugmentedError; + /** + * There was nothing to do in the advancement. + **/ + NothingToDo: AugmentedError; + /** + * Referendum is not ongoing. + **/ + NotOngoing: AugmentedError; + /** + * No track exists for the proposal origin. + **/ + NoTrack: AugmentedError; + /** + * The preimage does not exist. + **/ + PreimageNotExist: AugmentedError; + /** + * The preimage is stored with a different length than the one provided. + **/ + PreimageStoredWithDifferentLength: AugmentedError; + /** + * The queue of the track is empty. + **/ + QueueEmpty: AugmentedError; + /** + * Any deposit cannot be refunded until after the decision is over. + **/ + Unfinished: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + registrar: { + /** + * The ID is already registered. + **/ + AlreadyRegistered: AugmentedError; + /** + * Cannot deregister para + **/ + CannotDeregister: AugmentedError; + /** + * Cannot schedule downgrade of lease holding parachain to on-demand parachain + **/ + CannotDowngrade: AugmentedError; + /** + * Cannot perform a parachain slot / lifecycle swap. Check that the state of both paras + * are correct for the swap to work. + **/ + CannotSwap: AugmentedError; + /** + * Cannot schedule upgrade of on-demand parachain to lease holding parachain + **/ + CannotUpgrade: AugmentedError; + /** + * Invalid para code size. + **/ + CodeTooLarge: AugmentedError; + /** + * Invalid para head data size. + **/ + HeadDataTooLarge: AugmentedError; + /** + * The validation code is invalid. + **/ + InvalidCode: AugmentedError; + /** + * The caller is not the owner of this Id. + **/ + NotOwner: AugmentedError; + /** + * Para is not a Parachain. + **/ + NotParachain: AugmentedError; + /** + * Para is not a Parathread (on-demand parachain). + **/ + NotParathread: AugmentedError; + /** + * The ID is not registered. + **/ + NotRegistered: AugmentedError; + /** + * The ID given for registration has not been reserved. + **/ + NotReserved: AugmentedError; + /** + * Para is locked from manipulation by the manager. Must use parachain or relay chain + * governance. + **/ + ParaLocked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + scheduler: { + /** + * Failed to schedule a call + **/ + FailedToSchedule: AugmentedError; + /** + * Attempt to use a non-named function on a named task. + **/ + Named: AugmentedError; + /** + * Cannot find the scheduled call. + **/ + NotFound: AugmentedError; + /** + * Reschedule failed because it does not change scheduled time. + **/ + RescheduleNoChange: AugmentedError; + /** + * Given target block number is in the past. + **/ + TargetBlockNumberInPast: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + session: { + /** + * Registered duplicate key. + **/ + DuplicatedKey: AugmentedError; + /** + * Invalid ownership proof. + **/ + InvalidProof: AugmentedError; + /** + * Key setting account is not live, so it's impossible to associate keys. + **/ + NoAccount: AugmentedError; + /** + * No associated validator ID for account. + **/ + NoAssociatedValidatorId: AugmentedError; + /** + * No keys are associated with this account. + **/ + NoKeys: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + slots: { + /** + * There was an error with the lease. + **/ + LeaseError: AugmentedError; + /** + * The parachain ID is not onboarding. + **/ + ParaNotOnboarding: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + staking: { + /** + * Stash is already bonded. + **/ + AlreadyBonded: AugmentedError; + /** + * Rewards for this era have already been claimed for this validator. + **/ + AlreadyClaimed: AugmentedError; + /** + * The stake of this account is already migrated to `Fungible` holds. + **/ + AlreadyMigrated: AugmentedError; + /** + * Controller is already paired. + **/ + AlreadyPaired: AugmentedError; + /** + * Internal state has become somehow corrupted and the operation cannot continue. + **/ + BadState: AugmentedError; + /** + * A nomination target was supplied that was blocked or otherwise not a validator. + **/ + BadTarget: AugmentedError; + /** + * Some bound is not met. + **/ + BoundNotMet: AugmentedError; + /** + * The user has enough bond and thus cannot be chilled forcefully by an external person. + **/ + CannotChillOther: AugmentedError; + /** + * Stash could not be reaped as other pallet might depend on it. + **/ + CannotReapStash: AugmentedError; + /** + * Cannot reset a ledger. + **/ + CannotRestoreLedger: AugmentedError; + /** + * Commission is too low. Must be at least `MinCommission`. + **/ + CommissionTooLow: AugmentedError; + /** + * Used when attempting to use deprecated controller account logic. + **/ + ControllerDeprecated: AugmentedError; + /** + * Duplicate index. + **/ + DuplicateIndex: AugmentedError; + /** + * Targets cannot be empty. + **/ + EmptyTargets: AugmentedError; + /** + * Attempting to target a stash that still has funds. + **/ + FundedTarget: AugmentedError; + /** + * Incorrect previous history depth input provided. + **/ + IncorrectHistoryDepth: AugmentedError; + /** + * Incorrect number of slashing spans provided. + **/ + IncorrectSlashingSpans: AugmentedError; + /** + * Cannot have a validator or nominator role, with value less than the minimum defined by + * governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the + * intention, `chill` first to remove one's role as validator/nominator. + **/ + InsufficientBond: AugmentedError; + /** + * Invalid era to reward. + **/ + InvalidEraToReward: AugmentedError; + /** + * Invalid number of nominations. + **/ + InvalidNumberOfNominations: AugmentedError; + /** + * No nominators exist on this page. + **/ + InvalidPage: AugmentedError; + /** + * Slash record index out of bounds. + **/ + InvalidSlashIndex: AugmentedError; + /** + * Can not schedule more unlock chunks. + **/ + NoMoreChunks: AugmentedError; + /** + * Not a controller account. + **/ + NotController: AugmentedError; + /** + * Not enough funds available to withdraw. + **/ + NotEnoughFunds: AugmentedError; + /** + * Items are not sorted and unique. + **/ + NotSortedAndUnique: AugmentedError; + /** + * Not a stash account. + **/ + NotStash: AugmentedError; + /** + * Can not rebond without unlocking chunks. + **/ + NoUnlockChunk: AugmentedError; + /** + * Account is restricted from participation in staking. This may happen if the account is + * staking in another way already, such as via pool. + **/ + Restricted: AugmentedError; + /** + * Provided reward destination is not allowed. + **/ + RewardDestinationRestricted: AugmentedError; + /** + * There are too many nominators in the system. Governance needs to adjust the staking + * settings to keep things safe for the runtime. + **/ + TooManyNominators: AugmentedError; + /** + * Too many nomination targets supplied. + **/ + TooManyTargets: AugmentedError; + /** + * There are too many validator candidates in the system. Governance needs to adjust the + * staking settings to keep things safe for the runtime. + **/ + TooManyValidators: AugmentedError; + /** + * Operation not allowed for virtual stakers. + **/ + VirtualStakerNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + stakingAhClient: { + /** + * Could not process incoming message because incoming messages are blocked. + **/ + Blocked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + stateTrieMigration: { + /** + * Bad child root provided. + **/ + BadChildRoot: AugmentedError; + /** + * Bad witness data provided. + **/ + BadWitness: AugmentedError; + /** + * A key was longer than the configured maximum. + * + * This means that the migration halted at the current [`Progress`] and + * can be resumed with a larger [`crate::Config::MaxKeyLen`] value. + * Retrying with the same [`crate::Config::MaxKeyLen`] value will not work. + * The value should only be increased to avoid a storage migration for the currently + * stored [`crate::Progress::LastKey`]. + **/ + KeyTooLong: AugmentedError; + /** + * Max signed limits not respected. + **/ + MaxSignedLimits: AugmentedError; + /** + * submitter does not have enough funds. + **/ + NotEnoughFunds: AugmentedError; + /** + * Signed migration is not allowed because the maximum limit is not set yet. + **/ + SignedMigrationNotAllowed: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + system: { + /** + * The origin filter prevent the call to be dispatched. + **/ + CallFiltered: AugmentedError; + /** + * Failed to extract the runtime version from the new runtime. + * + * Either calling `Core_version` or decoding `RuntimeVersion` failed. + **/ + FailedToExtractRuntimeVersion: AugmentedError; + /** + * The name of specification does not match between the current runtime + * and the new runtime. + **/ + InvalidSpecName: AugmentedError; + /** + * A multi-block migration is ongoing and prevents the current code from being replaced. + **/ + MultiBlockMigrationsOngoing: AugmentedError; + /** + * Suicide called when the account has non-default composite data. + **/ + NonDefaultComposite: AugmentedError; + /** + * There is a non-zero reference count preventing the account from being purged. + **/ + NonZeroRefCount: AugmentedError; + /** + * No upgrade authorized. + **/ + NothingAuthorized: AugmentedError; + /** + * The specification version is not allowed to decrease between the current runtime + * and the new runtime. + **/ + SpecVersionNeedsToIncrease: AugmentedError; + /** + * The submitted code is not authorized. + **/ + Unauthorized: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + treasury: { + /** + * The payment has already been attempted. + **/ + AlreadyAttempted: AugmentedError; + /** + * The spend is not yet eligible for payout. + **/ + EarlyPayout: AugmentedError; + /** + * The balance of the asset kind is not convertible to the balance of the native asset. + **/ + FailedToConvertBalance: AugmentedError; + /** + * The payment has neither failed nor succeeded yet. + **/ + Inconclusive: AugmentedError; + /** + * The spend origin is valid but the amount it is allowed to spend is lower than the + * amount to be spent. + **/ + InsufficientPermission: AugmentedError; + /** + * No proposal, bounty or spend at that index. + **/ + InvalidIndex: AugmentedError; + /** + * The payout was not yet attempted/claimed. + **/ + NotAttempted: AugmentedError; + /** + * There was some issue with the mechanism of payment. + **/ + PayoutError: AugmentedError; + /** + * Proposal has not been approved. + **/ + ProposalNotApproved: AugmentedError; + /** + * The spend has expired and cannot be claimed. + **/ + SpendExpired: AugmentedError; + /** + * Too many approvals in the queue. + **/ + TooManyApprovals: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + utility: { + /** + * Too many calls batched. + **/ + TooManyCalls: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + vesting: { + /** + * Amount being transferred is too low to create a vesting schedule. + **/ + AmountLow: AugmentedError; + /** + * The account already has `MaxVestingSchedules` count of schedules and thus + * cannot add another one. Consider merging existing schedules in order to add another. + **/ + AtMaxVestingSchedules: AugmentedError; + /** + * Failed to create a new schedule because some parameter was invalid. + **/ + InvalidScheduleParams: AugmentedError; + /** + * The account given is not vesting. + **/ + NotVesting: AugmentedError; + /** + * An index was out of bounds of the vesting schedules. + **/ + ScheduleIndexOutOfBounds: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + voterList: { + /** + * A error in the list interface implementation. + **/ + List: AugmentedError; + /** + * Could not update a node, because the pallet is locked. + **/ + Locked: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + whitelist: { + /** + * The call was already whitelisted; No-Op. + **/ + CallAlreadyWhitelisted: AugmentedError; + /** + * The call was not whitelisted. + **/ + CallIsNotWhitelisted: AugmentedError; + /** + * The weight of the decoded call was higher than the witness. + **/ + InvalidCallWeightWitness: AugmentedError; + /** + * The preimage of the call hash could not be loaded. + **/ + UnavailablePreImage: AugmentedError; + /** + * The call could not be decoded. + **/ + UndecodableCall: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + xcmPallet: { + /** + * The given account is not an identifiable sovereign account for any location. + **/ + AccountNotSovereign: AugmentedError; + /** + * The alias to remove authorization for was not found. + **/ + AliasNotFound: AugmentedError; + /** + * The location is invalid since it already has a subscription from us. + **/ + AlreadySubscribed: AugmentedError; + /** + * The given location could not be used (e.g. because it cannot be expressed in the + * desired version of XCM). + **/ + BadLocation: AugmentedError; + /** + * The version of the `Versioned` value used is not able to be interpreted. + **/ + BadVersion: AugmentedError; + /** + * Could not check-out the assets for teleportation to the destination chain. + **/ + CannotCheckOutTeleport: AugmentedError; + /** + * Could not re-anchor the assets to declare the fees for the destination chain. + **/ + CannotReanchor: AugmentedError; + /** + * The destination `Location` provided cannot be inverted. + **/ + DestinationNotInvertible: AugmentedError; + /** + * The assets to be sent are empty. + **/ + Empty: AugmentedError; + /** + * Expiry block number is in the past. + **/ + ExpiresInPast: AugmentedError; + /** + * The operation required fees to be paid which the initiator could not meet. + **/ + FeesNotMet: AugmentedError; + /** + * The message execution fails the filter. + **/ + Filtered: AugmentedError; + /** + * The unlock operation cannot succeed because there are still consumers of the lock. + **/ + InUse: AugmentedError; + /** + * Invalid asset, reserve chain could not be determined for it. + **/ + InvalidAssetUnknownReserve: AugmentedError; + /** + * Invalid asset, do not support remote asset reserves with different fees reserves. + **/ + InvalidAssetUnsupportedReserve: AugmentedError; + /** + * Origin is invalid for sending. + **/ + InvalidOrigin: AugmentedError; + /** + * Local XCM execution incomplete. + **/ + LocalExecutionIncomplete: AugmentedError; + /** + * Local XCM execution incomplete with the actual XCM error and the index of the + * instruction that caused the error. + **/ + LocalExecutionIncompleteWithError: AugmentedError; + /** + * A remote lock with the corresponding data could not be found. + **/ + LockNotFound: AugmentedError; + /** + * The owner does not own (all) of the asset that they wish to do the operation on. + **/ + LowBalance: AugmentedError; + /** + * The referenced subscription could not be found. + **/ + NoSubscription: AugmentedError; + /** + * There was some other issue (i.e. not to do with routing) in sending the message. + * Perhaps a lack of space for buffering the message. + **/ + SendFailure: AugmentedError; + /** + * Too many assets have been attempted for transfer. + **/ + TooManyAssets: AugmentedError; + /** + * Too many locations authorized to alias origin. + **/ + TooManyAuthorizedAliases: AugmentedError; + /** + * The asset owner has too many locks on the asset. + **/ + TooManyLocks: AugmentedError; + /** + * Too many assets with different reserve locations have been attempted for transfer. + **/ + TooManyReserves: AugmentedError; + /** + * The desired destination was unreachable, generally because there is a no way of routing + * to it. + **/ + Unreachable: AugmentedError; + /** + * The message's weight could not be determined. + **/ + UnweighableMessage: AugmentedError; + /** + * Generic error + **/ + [key: string]: AugmentedError; + }; + } // AugmentedErrors +} // declare module diff --git a/packages/api-augment/src/pezkuwi/events.ts b/packages/api-augment/src/pezkuwi/events.ts new file mode 100644 index 0000000..fa0bcb0 --- /dev/null +++ b/packages/api-augment/src/pezkuwi/events.ts @@ -0,0 +1,1599 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/events'; + +import type { ApiTypes, AugmentedEvent } from '@pezkuwi/api-base/types'; +import type { Bytes, Null, Option, Result, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, Perbill } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportDispatchPostDispatchInfo, PezframeSupportMessagesProcessMessageError, PezframeSupportPreimagesBounded, PezframeSupportTokensMiscBalanceStatus, PezframeSystemDispatchEventInfo, PezkuwiPrimitivesVstagingCandidateReceiptV2, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeConstantsProxyProxyType, PezkuwiRuntimeTeyrchainsDisputesDisputeLocation, PezkuwiRuntimeTeyrchainsDisputesDisputeResult, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBalancesUnexpectedKind, PezpalletConvictionVotingTally, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiPhaseElectionCompute, PezpalletElectionProviderMultiPhasePhase, PezpalletMultisigTimepoint, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsPoolState, PezpalletProxyDepositKind, PezpalletRcMigratorMigrationSettings, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletStakingAsyncAhClientUnexpectedKind, PezpalletStakingForcing, PezpalletStakingRewardDestination, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationError, PezpalletStateTrieMigrationMigrationCompute, PezspConsensusGrandpaAppPublic, PezspNposElectionsElectionScore, PezspRuntimeDispatchError, PezspRuntimeDispatchErrorWithPostInfo, PezspWeightsWeightV2Weight, StagingXcmV5AssetAssets, StagingXcmV5Location, StagingXcmV5Response, StagingXcmV5TraitsOutcome, StagingXcmV5Xcm, XcmV3MaybeErrorCode, XcmV3TraitsSendError, XcmV5TraitsError, XcmVersionedAssets, XcmVersionedLocation } from '@pezkuwi/types/lookup'; + +export type __AugmentedEvent = AugmentedEvent; + +declare module '@pezkuwi/api-base/types/events' { + interface AugmentedEvents { + assetRate: { + AssetRateCreated: AugmentedEvent; + AssetRateRemoved: AugmentedEvent; + AssetRateUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + auctions: { + /** + * An auction ended. All funds become unreserved. + **/ + AuctionClosed: AugmentedEvent; + /** + * An auction started. Provides its index and the block number where it will begin to + * close and the first lease period of the quadruplet that is auctioned. + **/ + AuctionStarted: AugmentedEvent; + /** + * A new bid has been accepted as the current winner. + **/ + BidAccepted: AugmentedEvent; + /** + * Someone attempted to lease the same slot twice for a parachain. The amount is held in + * reserve but no parachain slot has been leased. + **/ + ReserveConfiscated: AugmentedEvent; + /** + * Funds were reserved for a winning bid. First balance is the extra amount reserved. + * Second is the total. + **/ + Reserved: AugmentedEvent; + /** + * Funds were unreserved since bidder is no longer active. `[bidder, amount]` + **/ + Unreserved: AugmentedEvent; + /** + * The winning offset was chosen for an auction. This will map into the `Winning` storage + * map. + **/ + WinningOffset: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + balances: { + /** + * A balance was set by root. + **/ + BalanceSet: AugmentedEvent; + /** + * Some amount was burned from an account. + **/ + Burned: AugmentedEvent; + /** + * Some amount was deposited (e.g. for transaction fees). + **/ + Deposit: AugmentedEvent; + /** + * An account was removed whose balance was non-zero but below ExistentialDeposit, + * resulting in an outright loss. + **/ + DustLost: AugmentedEvent; + /** + * An account was created with some free balance. + **/ + Endowed: AugmentedEvent; + /** + * Some balance was frozen. + **/ + Frozen: AugmentedEvent; + /** + * Total issuance was increased by `amount`, creating a credit to be balanced. + **/ + Issued: AugmentedEvent; + /** + * Some balance was locked. + **/ + Locked: AugmentedEvent; + /** + * Some amount was minted into an account. + **/ + Minted: AugmentedEvent; + /** + * Total issuance was decreased by `amount`, creating a debt to be balanced. + **/ + Rescinded: AugmentedEvent; + /** + * Some balance was reserved (moved from free to reserved). + **/ + Reserved: AugmentedEvent; + /** + * Some balance was moved from the reserve of the first account to the second account. + * Final argument indicates the destination balance type. + **/ + ReserveRepatriated: AugmentedEvent; + /** + * Some amount was restored into an account. + **/ + Restored: AugmentedEvent; + /** + * Some amount was removed from the account (e.g. for misbehavior). + **/ + Slashed: AugmentedEvent; + /** + * Some amount was suspended from an account (it can be restored later). + **/ + Suspended: AugmentedEvent; + /** + * Some balance was thawed. + **/ + Thawed: AugmentedEvent; + /** + * The `TotalIssuance` was forcefully changed. + **/ + TotalIssuanceForced: AugmentedEvent; + /** + * Transfer succeeded. + **/ + Transfer: AugmentedEvent; + /** + * An unexpected/defensive event was triggered. + **/ + Unexpected: AugmentedEvent; + /** + * Some balance was unlocked. + **/ + Unlocked: AugmentedEvent; + /** + * Some balance was unreserved (moved from reserved to free). + **/ + Unreserved: AugmentedEvent; + /** + * An account was upgraded. + **/ + Upgraded: AugmentedEvent; + /** + * Some amount was withdrawn from the account (e.g. for transaction fees). + **/ + Withdraw: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + bounties: { + /** + * A bounty is approved. + **/ + BountyApproved: AugmentedEvent; + /** + * A bounty is awarded to a beneficiary. + **/ + BountyAwarded: AugmentedEvent; + /** + * A bounty proposal is funded and became active. + **/ + BountyBecameActive: AugmentedEvent; + /** + * A bounty is cancelled. + **/ + BountyCanceled: AugmentedEvent; + /** + * A bounty is claimed by beneficiary. + **/ + BountyClaimed: AugmentedEvent; + /** + * A bounty expiry is extended. + **/ + BountyExtended: AugmentedEvent; + /** + * New bounty proposal. + **/ + BountyProposed: AugmentedEvent; + /** + * A bounty proposal was rejected; funds were slashed. + **/ + BountyRejected: AugmentedEvent; + /** + * A bounty curator is accepted. + **/ + CuratorAccepted: AugmentedEvent; + /** + * A bounty curator is proposed. + **/ + CuratorProposed: AugmentedEvent; + /** + * A bounty curator is unassigned. + **/ + CuratorUnassigned: AugmentedEvent; + /** + * A bounty deposit has been poked. + **/ + DepositPoked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + childBounties: { + /** + * A child-bounty is added. + **/ + Added: AugmentedEvent; + /** + * A child-bounty is awarded to a beneficiary. + **/ + Awarded: AugmentedEvent; + /** + * A child-bounty is cancelled. + **/ + Canceled: AugmentedEvent; + /** + * A child-bounty is claimed by beneficiary. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + claims: { + /** + * Someone claimed some DOTs. + **/ + Claimed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + convictionVoting: { + /** + * An account has delegated their vote to another account. \[who, target\] + **/ + Delegated: AugmentedEvent; + /** + * An \[account\] has cancelled a previous delegation operation. + **/ + Undelegated: AugmentedEvent; + /** + * An account has voted + **/ + Voted: AugmentedEvent; + /** + * A vote has been removed + **/ + VoteRemoved: AugmentedEvent; + /** + * The lockup period of a conviction vote expired, and the funds have been unlocked. + **/ + VoteUnlocked: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + coretime: { + /** + * A core has received a new assignment from the broker chain. + **/ + CoreAssigned: AugmentedEvent; + /** + * The broker chain has asked for revenue information for a specific block. + **/ + RevenueInfoRequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + crowdloan: { + /** + * A parachain has been moved to `NewRaise` + **/ + AddedToNewRaise: AugmentedEvent; + /** + * All loans in a fund have been refunded. + **/ + AllRefunded: AugmentedEvent; + /** + * Contributed to a crowd sale. + **/ + Contributed: AugmentedEvent; + /** + * Create a new crowdloaning campaign. + **/ + Created: AugmentedEvent; + /** + * Fund is dissolved. + **/ + Dissolved: AugmentedEvent; + /** + * The configuration to a crowdloan has been edited. + **/ + Edited: AugmentedEvent; + /** + * The result of trying to submit a new bid to the Slots pallet. + **/ + HandleBidResult: AugmentedEvent], { paraId: u32, result: Result }>; + /** + * A memo has been updated. + **/ + MemoUpdated: AugmentedEvent; + /** + * The loans in a fund have been partially dissolved, i.e. there are some left + * over child keys that still need to be killed. + **/ + PartiallyRefunded: AugmentedEvent; + /** + * Withdrew full balance of a contributor. + **/ + Withdrew: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + delegatedStaking: { + /** + * Funds delegated by a delegator. + **/ + Delegated: AugmentedEvent; + /** + * Unclaimed delegation funds migrated to delegator. + **/ + MigratedDelegation: AugmentedEvent; + /** + * Funds released to a delegator. + **/ + Released: AugmentedEvent; + /** + * Funds slashed from a delegator. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + electionProviderMultiPhase: { + /** + * An election failed. + * + * Not much can be said about which computes failed in the process. + **/ + ElectionFailed: AugmentedEvent; + /** + * The election has been finalized, with the given computation and score. + **/ + ElectionFinalized: AugmentedEvent; + /** + * There was a phase transition in a given round. + **/ + PhaseTransitioned: AugmentedEvent; + /** + * An account has been rewarded for their signed submission being finalized. + **/ + Rewarded: AugmentedEvent; + /** + * An account has been slashed for submitting an invalid signed submission. + **/ + Slashed: AugmentedEvent; + /** + * A solution was stored with the given compute. + * + * The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`, + * the stored solution was submitted in the signed phase by a miner with the `AccountId`. + * Otherwise, the solution was stored either during the unsigned phase or by + * `T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make + * room for this one. + **/ + SolutionStored: AugmentedEvent, prevEjected: bool], { compute: PezpalletElectionProviderMultiPhaseElectionCompute, origin: Option, prevEjected: bool }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + fastUnstake: { + /** + * A batch was partially checked for the given eras, but the process did not finish. + **/ + BatchChecked: AugmentedEvent], { eras: Vec }>; + /** + * A batch of a given size was terminated. + * + * This is always follows by a number of `Unstaked` or `Slashed` events, marking the end + * of the batch. A new batch will be created upon next block. + **/ + BatchFinished: AugmentedEvent; + /** + * An internal error happened. Operations will be paused now. + **/ + InternalError: AugmentedEvent; + /** + * A staker was slashed for requesting fast-unstake whilst being exposed. + **/ + Slashed: AugmentedEvent; + /** + * A staker was unstaked. + **/ + Unstaked: AugmentedEvent], { stash: AccountId32, result: Result }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + grandpa: { + /** + * New authority set has been applied. + **/ + NewAuthorities: AugmentedEvent>], { authoritySet: Vec> }>; + /** + * Current authority set has been paused. + **/ + Paused: AugmentedEvent; + /** + * Current authority set has been resumed. + **/ + Resumed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + historical: { + /** + * The merkle roots of up to this session index were pruned + **/ + RootsPruned: AugmentedEvent; + /** + * The merkle root of the validators of the said session were stored + **/ + RootStored: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + hrmp: { + /** + * HRMP channel closed. + **/ + ChannelClosed: AugmentedEvent; + /** + * An HRMP channel was opened via Root origin. + **/ + HrmpChannelForceOpened: AugmentedEvent; + /** + * An HRMP channel was opened with a system chain. + **/ + HrmpSystemChannelOpened: AugmentedEvent; + /** + * Open HRMP channel accepted. + **/ + OpenChannelAccepted: AugmentedEvent; + /** + * An HRMP channel request sent by the receiver was canceled by either party. + **/ + OpenChannelCanceled: AugmentedEvent; + /** + * An HRMP channel's deposits were updated. + **/ + OpenChannelDepositsUpdated: AugmentedEvent; + /** + * Open HRMP channel requested. + **/ + OpenChannelRequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + indices: { + /** + * A deposit to reserve an index has been poked/reconsidered. + **/ + DepositPoked: AugmentedEvent; + /** + * A account index was assigned. + **/ + IndexAssigned: AugmentedEvent; + /** + * A account index has been freed up (unassigned). + **/ + IndexFreed: AugmentedEvent; + /** + * A account index has been frozen to its current account ID. + **/ + IndexFrozen: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + messageQueue: { + /** + * Message placed in overweight queue. + **/ + OverweightEnqueued: AugmentedEvent; + /** + * This page was reaped. + **/ + PageReaped: AugmentedEvent; + /** + * Message is processed. + **/ + Processed: AugmentedEvent; + /** + * Message discarded due to an error in the `MessageProcessor` (usually a format error). + **/ + ProcessingFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + multisig: { + /** + * The deposit for a multisig operation has been updated/poked. + **/ + DepositPoked: AugmentedEvent; + /** + * A multisig operation has been approved by someone. + **/ + MultisigApproval: AugmentedEvent; + /** + * A multisig operation has been cancelled. + **/ + MultisigCancelled: AugmentedEvent; + /** + * A multisig operation has been executed. + **/ + MultisigExecuted: AugmentedEvent], { approving: AccountId32, timepoint: PezpalletMultisigTimepoint, multisig: AccountId32, callHash: U8aFixed, result: Result }>; + /** + * A new multisig operation has begun. + **/ + NewMultisig: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + nominationPools: { + /** + * A member has became bonded in a pool. + **/ + Bonded: AugmentedEvent; + /** + * A pool has been created. + **/ + Created: AugmentedEvent; + /** + * A pool has been destroyed. + **/ + Destroyed: AugmentedEvent; + /** + * Global parameters regulating nomination pools have been updated. + **/ + GlobalParamsUpdated: AugmentedEvent, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option], { minJoinBond: u128, minCreateBond: u128, maxPools: Option, maxMembers: Option, maxMembersPerPool: Option, globalMaxCommission: Option }>; + /** + * A pool member's claim permission has been updated. + **/ + MemberClaimPermissionUpdated: AugmentedEvent; + /** + * A member has been removed from a pool. + * + * The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked). + * Any funds that are still delegated (i.e. dangling delegation) are released and are + * represented by `released_balance`. + **/ + MemberRemoved: AugmentedEvent; + /** + * A pool's metadata was updated. + **/ + MetadataUpdated: AugmentedEvent; + /** + * Topped up deficit in frozen ED of the reward pool. + **/ + MinBalanceDeficitAdjusted: AugmentedEvent; + /** + * Claimed excess frozen ED of af the reward pool. + **/ + MinBalanceExcessAdjusted: AugmentedEvent; + /** + * A payout has been made to a member. + **/ + PaidOut: AugmentedEvent; + /** + * A pool's commission `change_rate` has been changed. + **/ + PoolCommissionChangeRateUpdated: AugmentedEvent; + /** + * Pool commission has been claimed. + **/ + PoolCommissionClaimed: AugmentedEvent; + /** + * Pool commission claim permission has been updated. + **/ + PoolCommissionClaimPermissionUpdated: AugmentedEvent], { poolId: u32, permission: Option }>; + /** + * A pool's commission setting has been changed. + **/ + PoolCommissionUpdated: AugmentedEvent>], { poolId: u32, current: Option> }>; + /** + * A pool's maximum commission setting has been changed. + **/ + PoolMaxCommissionUpdated: AugmentedEvent; + /** + * A pool's nominating account (or the pool's root account) has nominated a validator set + * on behalf of the pool. + **/ + PoolNominationMade: AugmentedEvent; + /** + * The pool is chilled i.e. no longer nominating. + **/ + PoolNominatorChilled: AugmentedEvent; + /** + * The active balance of pool `pool_id` has been slashed to `balance`. + **/ + PoolSlashed: AugmentedEvent; + /** + * The roles of a pool have been updated to the given new roles. Note that the depositor + * can never change. + **/ + RolesUpdated: AugmentedEvent, bouncer: Option, nominator: Option], { root: Option, bouncer: Option, nominator: Option }>; + /** + * The state of a pool has changed + **/ + StateChanged: AugmentedEvent; + /** + * A member has unbonded from their pool. + * + * - `balance` is the corresponding balance of the number of points that has been + * requested to be unbonded (the argument of the `unbond` transaction) from the bonded + * pool. + * - `points` is the number of points that are issued as a result of `balance` being + * dissolved into the corresponding unbonding pool. + * - `era` is the era in which the balance will be unbonded. + * In the absence of slashing, these values will match. In the presence of slashing, the + * number of points that are issued in the unbonding pool will be less than the amount + * requested to be unbonded. + **/ + Unbonded: AugmentedEvent; + /** + * The unbond pool at `era` of pool `pool_id` has been slashed to `balance`. + **/ + UnbondingPoolSlashed: AugmentedEvent; + /** + * A member has withdrawn from their pool. + * + * The given number of `points` have been dissolved in return of `balance`. + * + * Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance + * will be 1. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + offences: { + /** + * There is an offence reported of the given `kind` happened at the `session_index` and + * (kind-specific) time slot. This event is not deposited for duplicate slashes. + * \[kind, timeslot\]. + **/ + Offence: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + onDemand: { + /** + * An account was given credits. + **/ + AccountCredited: AugmentedEvent; + /** + * An order was placed at some spot price amount by orderer ordered_by + **/ + OnDemandOrderPlaced: AugmentedEvent; + /** + * The value of the spot price has likely changed + **/ + SpotPriceSet: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paraInclusion: { + /** + * A candidate was backed. `[candidate, head_data]` + **/ + CandidateBacked: AugmentedEvent; + /** + * A candidate was included. `[candidate, head_data]` + **/ + CandidateIncluded: AugmentedEvent; + /** + * A candidate timed out. `[candidate, head_data]` + **/ + CandidateTimedOut: AugmentedEvent; + /** + * Some upward messages have been received and will be processed. + **/ + UpwardMessagesReceived: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + paras: { + /** + * A para has been queued to execute pending actions. `para_id` + **/ + ActionQueued: AugmentedEvent; + /** + * A new code hash has been authorized for a Para. + **/ + CodeAuthorized: AugmentedEvent; + /** + * A code upgrade has been scheduled for a Para. `para_id` + **/ + CodeUpgradeScheduled: AugmentedEvent; + /** + * Current code has been updated for a Para. `para_id` + **/ + CurrentCodeUpdated: AugmentedEvent; + /** + * Current head has been updated for a Para. `para_id` + **/ + CurrentHeadUpdated: AugmentedEvent; + /** + * A new head has been noted for a Para. `para_id` + **/ + NewHeadNoted: AugmentedEvent; + /** + * The given validation code was accepted by the PVF pre-checking vote. + * `code_hash` `para_id` + **/ + PvfCheckAccepted: AugmentedEvent; + /** + * The given validation code was rejected by the PVF pre-checking vote. + * `code_hash` `para_id` + **/ + PvfCheckRejected: AugmentedEvent; + /** + * The given para either initiated or subscribed to a PVF check for the given validation + * code. `code_hash` `para_id` + **/ + PvfCheckStarted: AugmentedEvent; + /** + * The upgrade cooldown was removed. + **/ + UpgradeCooldownRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + parasDisputes: { + /** + * A dispute has concluded for or against a candidate. + * `\[para id, candidate hash, dispute result\]` + **/ + DisputeConcluded: AugmentedEvent; + /** + * A dispute has been initiated. \[candidate hash, dispute location\] + **/ + DisputeInitiated: AugmentedEvent; + /** + * A dispute has concluded with supermajority against a candidate. + * Block authors should no longer build on top of this head and should + * instead revert the block at the given height. This should be the + * number of the child of the last known valid block in the chain. + **/ + Revert: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + preimage: { + /** + * A preimage has ben cleared. + **/ + Cleared: AugmentedEvent; + /** + * A preimage has been noted. + **/ + Noted: AugmentedEvent; + /** + * A preimage has been requested. + **/ + Requested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + proxy: { + /** + * An announcement was placed to make a call in the future. + **/ + Announced: AugmentedEvent; + /** + * A deposit stored for proxies or announcements was poked / updated. + **/ + DepositPoked: AugmentedEvent; + /** + * A proxy was added. + **/ + ProxyAdded: AugmentedEvent; + /** + * A proxy was executed correctly, with the given. + **/ + ProxyExecuted: AugmentedEvent], { result: Result }>; + /** + * A proxy was removed. + **/ + ProxyRemoved: AugmentedEvent; + /** + * A pure account has been created by new proxy with given + * disambiguation index and proxy type. + **/ + PureCreated: AugmentedEvent; + /** + * A pure proxy was killed by its spawner. + **/ + PureKilled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + rcMigrator: { + /** + * The accounts to be preserved on Relay Chain were set. + **/ + AccountsPreserved: AugmentedEvent], { accounts: Vec }>; + /** + * The AH UMP queue priority config was set. + **/ + AhUmpQueuePriorityConfigSet: AugmentedEvent; + /** + * Whether the AH UMP queue was prioritized for the next block. + **/ + AhUmpQueuePrioritySet: AugmentedEvent; + /** + * The Asset Hub Migration finished. + * + * This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier + * to understand. The finishing is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationFinished: AugmentedEvent; + /** + * The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is + * emitted. + * + * This event is equivalent to `StageTransition { new: Initializing, .. }` but is easier + * to understand. The activation is immediate and affects all events happening + * afterwards. + **/ + AssetHubMigrationStarted: AugmentedEvent; + /** + * The canceller account id was set. + **/ + CancellerSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * The manager multisig dispatched something. + **/ + ManagerMultisigDispatched: AugmentedEvent], { res: Result }>; + /** + * The manager multisig received a vote. + **/ + ManagerMultisigVoted: AugmentedEvent; + /** + * The manager account id was set. + **/ + ManagerSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * The RC kept balance was consumed. + **/ + MigratedBalanceConsumed: AugmentedEvent; + /** + * The total issuance was recorded. + **/ + MigratedBalanceRecordSet: AugmentedEvent; + /** + * The migration was cancelled. + **/ + MigrationCancelled: AugmentedEvent; + /** + * The migration was paused. + **/ + MigrationPaused: AugmentedEvent; + /** + * The migration settings were set. + **/ + MigrationSettingsSet: AugmentedEvent, new_: Option], { old: Option, new_: Option }>; + /** + * Some pure accounts were indexed for possibly receiving free `Any` proxies. + **/ + PureAccountsIndexed: AugmentedEvent; + /** + * A query response has been received. + **/ + QueryResponseReceived: AugmentedEvent; + /** + * A stage transition has occurred. + **/ + StageTransition: AugmentedEvent; + /** + * The staking elections were paused. + **/ + StakingElectionsPaused: AugmentedEvent; + /** + * The unprocessed message buffer size has been set. + **/ + UnprocessedMsgBufferSet: AugmentedEvent; + /** + * A XCM message has been resent. + **/ + XcmResendAttempt: AugmentedEvent], { queryId: u64, sendError: Option }>; + /** + * An XCM message was sent. + **/ + XcmSent: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + referenda: { + /** + * A referendum has been approved and its proposal has been scheduled. + **/ + Approved: AugmentedEvent; + /** + * A referendum has been cancelled. + **/ + Cancelled: AugmentedEvent; + ConfirmAborted: AugmentedEvent; + /** + * A referendum has ended its confirmation phase and is ready for approval. + **/ + Confirmed: AugmentedEvent; + ConfirmStarted: AugmentedEvent; + /** + * The decision deposit has been placed. + **/ + DecisionDepositPlaced: AugmentedEvent; + /** + * The decision deposit has been refunded. + **/ + DecisionDepositRefunded: AugmentedEvent; + /** + * A referendum has moved into the deciding phase. + **/ + DecisionStarted: AugmentedEvent; + /** + * A deposit has been slashed. + **/ + DepositSlashed: AugmentedEvent; + /** + * A referendum has been killed. + **/ + Killed: AugmentedEvent; + /** + * Metadata for a referendum has been cleared. + **/ + MetadataCleared: AugmentedEvent; + /** + * Metadata for a referendum has been set. + **/ + MetadataSet: AugmentedEvent; + /** + * A proposal has been rejected by referendum. + **/ + Rejected: AugmentedEvent; + /** + * The submission deposit has been refunded. + **/ + SubmissionDepositRefunded: AugmentedEvent; + /** + * A referendum has been submitted. + **/ + Submitted: AugmentedEvent; + /** + * A referendum has been timed out without being decided. + **/ + TimedOut: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + registrar: { + Deregistered: AugmentedEvent; + Registered: AugmentedEvent; + Reserved: AugmentedEvent; + Swapped: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + scheduler: { + /** + * Agenda is incomplete from `when`. + **/ + AgendaIncomplete: AugmentedEvent; + /** + * The call for the provided hash was not found so the task has been aborted. + **/ + CallUnavailable: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Canceled some task. + **/ + Canceled: AugmentedEvent; + /** + * Dispatched some task. + **/ + Dispatched: AugmentedEvent, id: Option, result: Result], { task: ITuple<[u32, u32]>, id: Option, result: Result }>; + /** + * The given task was unable to be renewed since the agenda is full at that block. + **/ + PeriodicFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task can never be executed since it is overweight. + **/ + PermanentlyOverweight: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Cancel a retry configuration for some task. + **/ + RetryCancelled: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * The given task was unable to be retried since the agenda is full at that block or there + * was not enough weight to reschedule it. + **/ + RetryFailed: AugmentedEvent, id: Option], { task: ITuple<[u32, u32]>, id: Option }>; + /** + * Set a retry configuration for some task. + **/ + RetrySet: AugmentedEvent, id: Option, period: u32, retries: u8], { task: ITuple<[u32, u32]>, id: Option, period: u32, retries: u8 }>; + /** + * Scheduled some task. + **/ + Scheduled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + session: { + /** + * The `NewSession` event in the current block also implies a new validator set to be + * queued. + **/ + NewQueued: AugmentedEvent; + /** + * New session has happened. Note that the argument is the session index, not the + * block number as the type might suggest. + **/ + NewSession: AugmentedEvent; + /** + * Validator has been disabled. + **/ + ValidatorDisabled: AugmentedEvent; + /** + * Validator has been re-enabled. + **/ + ValidatorReenabled: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + slots: { + /** + * A para has won the right to a continuous set of lease periods as a parachain. + * First balance is any extra amount reserved on top of the para's existing deposit. + * Second balance is the total amount reserved. + **/ + Leased: AugmentedEvent; + /** + * A new `[lease_period]` is beginning. + **/ + NewLeasePeriod: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + staking: { + /** + * An account has bonded this amount. \[stash, amount\] + * + * NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably, + * it will not be emitted for staking rewards when they are added to stake. + **/ + Bonded: AugmentedEvent; + /** + * An account has stopped participating as either a validator or nominator. + **/ + Chilled: AugmentedEvent; + /** + * Report of a controller batch deprecation. + **/ + ControllerBatchDeprecated: AugmentedEvent; + /** + * Staking balance migrated from locks to holds, with any balance that could not be held + * is force withdrawn. + **/ + CurrencyMigrated: AugmentedEvent; + /** + * The era payout has been set; the first balance is the validator-payout; the second is + * the remainder from the maximum amount of reward. + **/ + EraPaid: AugmentedEvent; + /** + * A new force era mode was set. + **/ + ForceEra: AugmentedEvent; + /** + * A nominator has been kicked from a validator. + **/ + Kicked: AugmentedEvent; + /** + * An old slashing report from a prior era was discarded because it could + * not be processed. + **/ + OldSlashingReportDiscarded: AugmentedEvent; + /** + * A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed. + **/ + PayoutStarted: AugmentedEvent], { eraIndex: u32, validatorStash: AccountId32, page: u32, next: Option }>; + /** + * The nominator has been rewarded by this amount to this destination. + **/ + Rewarded: AugmentedEvent; + /** + * A staker (validator or nominator) has been slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * A slash for the given validator, for the given percentage of their stake, at the given + * era as been reported. + **/ + SlashReported: AugmentedEvent; + /** + * Targets size limit reached. + **/ + SnapshotTargetsSizeExceeded: AugmentedEvent; + /** + * Voters size limit reached. + **/ + SnapshotVotersSizeExceeded: AugmentedEvent; + /** + * A new set of stakers was elected. + **/ + StakersElected: AugmentedEvent; + /** + * The election failed. No new era is planned. + **/ + StakingElectionFailed: AugmentedEvent; + /** + * An account has unbonded this amount. + **/ + Unbonded: AugmentedEvent; + /** + * A validator has set their preferences. + **/ + ValidatorPrefsSet: AugmentedEvent; + /** + * An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance` + * from the unlocking queue. + **/ + Withdrawn: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stakingAhClient: { + /** + * We could not merge, and therefore dropped a buffered message. + * + * Note that this event is more resembling an error, but we use an event because in this + * pallet we need to mutate storage upon some failures. + **/ + CouldNotMergeAndDropped: AugmentedEvent; + /** + * The validator set received is way too small, as per + * [`Config::MinimumValidatorSetSize`]. + **/ + SetTooSmallAndDropped: AugmentedEvent; + /** + * Something occurred that should never happen under normal operation. Logged as an event + * for fail-safe observability. + **/ + Unexpected: AugmentedEvent; + /** + * A new validator set has been received. + **/ + ValidatorSetReceived: AugmentedEvent, leftover: bool], { id: u32, newValidatorSetCount: u32, pruneUpTo: Option, leftover: bool }>; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + stateTrieMigration: { + /** + * The auto migration task finished. + **/ + AutoMigrationFinished: AugmentedEvent; + /** + * Migration got halted due to an error or miss-configuration. + **/ + Halted: AugmentedEvent; + /** + * Given number of `(top, child)` keys were migrated respectively, with the given + * `compute`. + **/ + Migrated: AugmentedEvent; + /** + * Some account got slashed by the given amount. + **/ + Slashed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + system: { + /** + * `:code` was updated. + **/ + CodeUpdated: AugmentedEvent; + /** + * An extrinsic failed. + **/ + ExtrinsicFailed: AugmentedEvent; + /** + * An extrinsic completed successfully. + **/ + ExtrinsicSuccess: AugmentedEvent; + /** + * An account was reaped. + **/ + KilledAccount: AugmentedEvent; + /** + * A new account was created. + **/ + NewAccount: AugmentedEvent; + /** + * An invalid authorized upgrade was rejected while trying to apply it. + **/ + RejectedInvalidAuthorizedUpgrade: AugmentedEvent; + /** + * On on-chain remark happened. + **/ + Remarked: AugmentedEvent; + /** + * An upgrade was authorized. + **/ + UpgradeAuthorized: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + transactionPayment: { + /** + * A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee, + * has been paid by `who`. + **/ + TransactionFeePaid: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + treasury: { + /** + * A new asset spend proposal has been approved. + **/ + AssetSpendApproved: AugmentedEvent; + /** + * An approved spend was voided. + **/ + AssetSpendVoided: AugmentedEvent; + /** + * Some funds have been allocated. + **/ + Awarded: AugmentedEvent; + /** + * Some of our funds have been burnt. + **/ + Burnt: AugmentedEvent; + /** + * Some funds have been deposited. + **/ + Deposit: AugmentedEvent; + /** + * A payment happened. + **/ + Paid: AugmentedEvent; + /** + * A payment failed and can be retried. + **/ + PaymentFailed: AugmentedEvent; + /** + * Spending has finished; this is the amount that rolls over until next spend. + **/ + Rollover: AugmentedEvent; + /** + * A new spend proposal has been approved. + **/ + SpendApproved: AugmentedEvent; + /** + * We have ended a spend period and will now allocate funds. + **/ + Spending: AugmentedEvent; + /** + * A spend was processed and removed from the storage. It might have been successfully + * paid or it may have expired. + **/ + SpendProcessed: AugmentedEvent; + /** + * The inactive funds of the pallet have been updated. + **/ + UpdatedInactive: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + utility: { + /** + * Batch of dispatches completed fully with no error. + **/ + BatchCompleted: AugmentedEvent; + /** + * Batch of dispatches completed but has errors. + **/ + BatchCompletedWithErrors: AugmentedEvent; + /** + * Batch of dispatches did not complete fully. Index of first failing dispatch given, as + * well as the error. + **/ + BatchInterrupted: AugmentedEvent; + /** + * A call was dispatched. + **/ + DispatchedAs: AugmentedEvent], { result: Result }>; + /** + * The fallback call was dispatched. + **/ + IfElseFallbackCalled: AugmentedEvent; + /** + * Main call was dispatched. + **/ + IfElseMainSuccess: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with no error. + **/ + ItemCompleted: AugmentedEvent; + /** + * A single item within a Batch of dispatches has completed with error. + **/ + ItemFailed: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + vesting: { + /** + * An \[account\] has become fully vested. + **/ + VestingCompleted: AugmentedEvent; + /** + * A vesting schedule has been created. + **/ + VestingCreated: AugmentedEvent; + /** + * The amount vested has been updated. This could indicate a change in funds available. + * The balance given is the amount which is left unvested (and thus locked). + **/ + VestingUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + voterList: { + /** + * Moved an account from one bag to another. + **/ + Rebagged: AugmentedEvent; + /** + * Updated the score of some account to the given amount. + **/ + ScoreUpdated: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + whitelist: { + CallWhitelisted: AugmentedEvent; + WhitelistedCallDispatched: AugmentedEvent], { callHash: H256, result: Result }>; + WhitelistedCallRemoved: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + xcmPallet: { + /** + * `target` removed alias authorization for `aliaser`. + **/ + AliasAuthorizationRemoved: AugmentedEvent; + /** + * An `aliaser` location was authorized by `target` to alias it, authorization valid until + * `expiry` block number. + **/ + AliasAuthorized: AugmentedEvent], { aliaser: StagingXcmV5Location, target: StagingXcmV5Location, expiry: Option }>; + /** + * `target` removed all alias authorizations. + **/ + AliasesAuthorizationsRemoved: AugmentedEvent; + /** + * Some assets have been claimed from an asset trap + **/ + AssetsClaimed: AugmentedEvent; + /** + * Some assets have been placed in an asset trap. + **/ + AssetsTrapped: AugmentedEvent; + /** + * Execution of an XCM message was attempted. + **/ + Attempted: AugmentedEvent; + /** + * Fees were paid from a location for an operation (often for using `SendXcm`). + **/ + FeesPaid: AugmentedEvent; + /** + * Expected query response has been received but the querier location of the response does + * not match the expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidQuerier: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedQuerier: StagingXcmV5Location, maybeActualQuerier: Option }>; + /** + * Expected query response has been received but the expected querier location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidQuerierVersion: AugmentedEvent; + /** + * Expected query response has been received but the origin location of the response does + * not match that expected. The query remains registered for a later, valid, response to + * be received and acted upon. + **/ + InvalidResponder: AugmentedEvent], { origin: StagingXcmV5Location, queryId: u64, expectedLocation: Option }>; + /** + * Expected query response has been received but the expected origin location placed in + * storage by this runtime previously cannot be decoded. The query remains registered. + * + * This is unexpected (since a location placed in storage in a previously executing + * runtime should be readable prior to query timeout) and dangerous since the possibly + * valid response will be dropped. Manual governance intervention is probably going to be + * needed. + **/ + InvalidResponderVersion: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification has + * been dispatched and executed successfully. + **/ + Notified: AugmentedEvent; + /** + * Query response has been received and query is removed. The dispatch was unable to be + * decoded into a `Call`; this might be due to dispatch function having a signature which + * is not `(origin, QueryId, Response)`. + **/ + NotifyDecodeFailed: AugmentedEvent; + /** + * Query response has been received and query is removed. There was a general error with + * dispatching the notification call. + **/ + NotifyDispatchError: AugmentedEvent; + /** + * Query response has been received and query is removed. The registered notification + * could not be dispatched because the dispatch weight is greater than the maximum weight + * originally budgeted by this runtime for the query result. + **/ + NotifyOverweight: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * migrating the location to our new XCM format. + **/ + NotifyTargetMigrationFail: AugmentedEvent; + /** + * A given location which had a version change subscription was dropped owing to an error + * sending the notification to it. + **/ + NotifyTargetSendFail: AugmentedEvent; + /** + * An XCM message failed to process. + **/ + ProcessXcmError: AugmentedEvent; + /** + * Query response has been received and is ready for taking with `take_response`. There is + * no registered notification call. + **/ + ResponseReady: AugmentedEvent; + /** + * Received query response has been read and removed. + **/ + ResponseTaken: AugmentedEvent; + /** + * An XCM message failed to send. + **/ + SendFailed: AugmentedEvent; + /** + * An XCM message was sent. + **/ + Sent: AugmentedEvent; + /** + * The supported version of a location has been changed. This might be through an + * automatic notification or a manual intervention. + **/ + SupportedVersionChanged: AugmentedEvent; + /** + * Query response received which does not match a registered query. This may be because a + * matching query was never registered, it may be because it is a duplicate response, or + * because the query timed out. + **/ + UnexpectedResponse: AugmentedEvent; + /** + * An XCM version change notification message has been attempted to be sent. + * + * The cost of sending it (borne by the chain) is included. + **/ + VersionChangeNotified: AugmentedEvent; + /** + * A XCM version migration finished. + **/ + VersionMigrationFinished: AugmentedEvent; + /** + * We have requested that a remote chain send us XCM version change notifications. + **/ + VersionNotifyRequested: AugmentedEvent; + /** + * A remote has requested XCM version change notification from us and we have honored it. + * A version information message is sent to them and its cost is included. + **/ + VersionNotifyStarted: AugmentedEvent; + /** + * We have requested that a remote chain stops sending us XCM version change + * notifications. + **/ + VersionNotifyUnrequested: AugmentedEvent; + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + }; + } // AugmentedEvents +} // declare module diff --git a/packages/api-augment/src/pezkuwi/index.ts b/packages/api-augment/src/pezkuwi/index.ts new file mode 100644 index 0000000..1318006 --- /dev/null +++ b/packages/api-augment/src/pezkuwi/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '../base.js'; +import './consts.js'; +import './errors.js'; +import './events.js'; +import './query.js'; +import './registry.js'; +import './runtime.js'; +import './tx.js'; diff --git a/packages/api-augment/src/pezkuwi/query.ts b/packages/api-augment/src/pezkuwi/query.ts new file mode 100644 index 0000000..3f10a69 --- /dev/null +++ b/packages/api-augment/src/pezkuwi/query.ts @@ -0,0 +1,2356 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/storage'; + +import type { ApiTypes, AugmentedQuery, QueryableStorageEntry } from '@pezkuwi/api-base/types'; +import type { BTreeMap, BTreeSet, Bytes, Null, Option, U8aFixed, Vec, bool, u128, u16, u32, u64 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { BinaryHeapEnqueuedOrder, PezframeSupportDispatchPerDispatchClassWeight, PezframeSupportScheduleDispatchTime, PezframeSupportTokensMiscIdAmountRuntimeFreezeReason, PezframeSupportTokensMiscIdAmountRuntimeHoldReason, PezframeSystemAccountInfo, PezframeSystemCodeUpgradeAuthorization, PezframeSystemEventRecord, PezframeSystemLastRuntimeUpgradeInfo, PezframeSystemPhase, PezkuwiCorePrimitivesInboundDownwardMessage, PezkuwiCorePrimitivesInboundHrmpMessage, PezkuwiPrimitivesV8AssignmentAppPublic, PezkuwiPrimitivesV8DisputeState, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8SessionInfo, PezkuwiPrimitivesV8UpgradeGoAhead, PezkuwiPrimitivesV8UpgradeRestriction, PezkuwiPrimitivesV8ValidatorAppPublic, PezkuwiPrimitivesVstagingPendingSlashes, PezkuwiPrimitivesVstagingScrapedOnChainVotes, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonCrowdloanFundInfo, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeCommonParasRegistrarParaInfo, PezkuwiRuntimeSessionKeys, PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor, PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule, PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration, PezkuwiRuntimeTeyrchainsHrmpHrmpChannel, PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability, PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange, PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount, PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder, PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType, PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry, PezkuwiRuntimeTeyrchainsParasParaGenesisArgs, PezkuwiRuntimeTeyrchainsParasParaLifecycle, PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta, PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState, PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment, PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBagsListListBag, PezpalletBagsListListNode, PezpalletBalancesAccountData, PezpalletBalancesBalanceLock, PezpalletBalancesReserveData, PezpalletBountiesBounty, PezpalletChildBountiesChildBounty, PezpalletConvictionVotingVoteVoting, PezpalletDelegatedStakingAgentLedger, PezpalletDelegatedStakingDelegation, PezpalletElectionProviderMultiPhasePhase, PezpalletElectionProviderMultiPhaseReadySolution, PezpalletElectionProviderMultiPhaseRoundSnapshot, PezpalletElectionProviderMultiPhaseSignedSignedSubmission, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletFastUnstakeUnstakeRequest, PezpalletGrandpaStoredPendingChange, PezpalletGrandpaStoredState, PezpalletMessageQueueBookState, PezpalletMessageQueuePage, PezpalletMultisigMultisig, PezpalletNominationPoolsBondedPoolInner, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsPoolMember, PezpalletNominationPoolsRewardPool, PezpalletNominationPoolsSubPools, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus, PezpalletProxyAnnouncement, PezpalletProxyProxyDefinition, PezpalletRcMigratorAccountsAccountState, PezpalletRcMigratorAccountsMigratedBalances, PezpalletRcMigratorMigrationSettings, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletReferendaReferendumInfo, PezpalletSchedulerRetryConfig, PezpalletSchedulerScheduled, PezpalletStakingActiveEraInfo, PezpalletStakingAsyncAhClientOperatingMode, PezpalletStakingAsyncRcClientOffence, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletStakingEraRewardPoints, PezpalletStakingForcing, PezpalletStakingNominations, PezpalletStakingRewardDestination, PezpalletStakingSlashingSlashingSpans, PezpalletStakingSlashingSpanRecord, PezpalletStakingStakingLedger, PezpalletStakingUnappliedSlash, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletTransactionPaymentReleases, PezpalletTreasuryProposal, PezpalletTreasurySpendStatus, PezpalletVestingReleases, PezpalletVestingVestingInfo, PezpalletXcmAuthorizedAliasesEntry, PezpalletXcmQueryStatus, PezpalletXcmRemoteLockedFungibleRecord, PezpalletXcmVersionMigrationStage, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeEpochConfiguration, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBabeDigestsPreDigest, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyMmrBeefyAuthoritySet, PezspConsensusGrandpaAppPublic, PezspCoreCryptoKeyTypeId, PezspNposElectionsElectionScore, PezspRuntimeDigest, PezspStakingExposure, PezspStakingExposurePage, PezspStakingOffenceOffenceDetails, PezspStakingPagedExposureMetadata, PezspWeightsWeightV2Weight, StagingXcmV5Instruction, StagingXcmV5Xcm, XcmVersionedAssetId, XcmVersionedLocation } from '@pezkuwi/types/lookup'; +import type { Observable } from '@pezkuwi/types/types'; + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module '@pezkuwi/api-base/types/storage' { + interface AugmentedQueries { + assetRate: { + /** + * Maps an asset to its fixed point representation in the native balance. + * + * E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)` + **/ + conversionRateToNative: AugmentedQuery Observable>, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + auctions: { + /** + * Number of auctions started so far. + **/ + auctionCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information relating to the current auction, if there is one. + * + * The first item in the tuple is the lease period index that the first of the four + * contiguous lease periods on auction is for. The second is the block number when the + * auction will "begin to end", i.e. the first block of the Ending Period of the auction. + **/ + auctionInfo: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Amounts currently reserved in the accounts of the bidders currently winning + * (sub-)ranges. + **/ + reservedAmounts: AugmentedQuery | [AccountId32 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[AccountId32, u32]>]> & QueryableStorageEntry]>; + /** + * The winning bids for each of the 10 ranges at each sample in the final Ending Period of + * the current auction. The map's key is the 0-based index into the Sample Size. The + * first sample of the ending period is 0; the last is `Sample Size - 1`. + **/ + winning: AugmentedQuery Observable>>>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorityDiscovery: { + /** + * Keys of the current authority set. + **/ + keys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Keys of the next authority set. + **/ + nextKeys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + authorship: { + /** + * Author of current block. + **/ + author: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + babe: { + /** + * Current epoch authorities. + **/ + authorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * This field should always be populated during block processing unless + * secondary plain slots are enabled (which don't contain a VRF output). + * + * It is set in `on_finalize`, before it will contain the value from the last block. + **/ + authorVrfRandomness: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current slot number. + **/ + currentSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The configuration for the current epoch. Should never be `None` as it is initialized in + * genesis. + **/ + epochConfig: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current epoch index. + **/ + epochIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The block numbers when the last and current epoch have started, respectively `N-1` and + * `N`. + * NOTE: We track this is in order to annotate the block number when a given pool of + * entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in + * slots, which may be skipped, the block numbers may not line up with the slot numbers. + **/ + epochStart: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The slot at which the first epoch actually started. This is 0 + * until the first block of the chain. + **/ + genesisSlot: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Temporary value (cleared at block finalization) which is `Some` + * if per-block initialization has already been called for current block. + **/ + initialized: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * How late the current block is compared to its parent. + * + * This entry is populated as part of block execution and is cleaned up + * on block finalization. Querying this storage entry outside of block + * execution context should always yield zero. + **/ + lateness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Next epoch authorities. + **/ + nextAuthorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The configuration for the next epoch, `None` if the config will not change + * (you can fallback to `EpochConfig` instead in that case). + **/ + nextEpochConfig: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Next epoch randomness. + **/ + nextRandomness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Pending epoch configuration change that will be applied when the next epoch is enacted. + **/ + pendingEpochConfigChange: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The epoch randomness for the *current* epoch. + * + * # Security + * + * This MUST NOT be used for gambling, as it can be influenced by a + * malicious validator in the short term. It MAY be used in many + * cryptographic protocols, however, so long as one remembers that this + * (like everything else on-chain) it is public. For example, it can be + * used where a number is needed that cannot have been chosen by an + * adversary, for purposes such as public-coin zero-knowledge proofs. + **/ + randomness: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Randomness under construction. + * + * We make a trade-off between storage accesses and list length. + * We store the under-construction randomness in segments of up to + * `UNDER_CONSTRUCTION_SEGMENT_LENGTH`. + * + * Once a segment reaches this length, we begin the next one. + * We reset all segments and return to `0` at the beginning of every + * epoch. + **/ + segmentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A list of the last 100 skipped epochs and the corresponding session index + * when the epoch was skipped. + * + * This is only used for validating equivocation proofs. An equivocation proof + * must contains a key-ownership proof for a given session, therefore we need a + * way to tie together sessions and epoch indices, i.e. we need to validate that + * a validator was the owner of a given key on a given session, and what the + * active epoch index was during that session. + **/ + skippedEpochs: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay. + **/ + underConstruction: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + balances: { + /** + * The Balances pallet example of storing the balance of an account. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData> + * } + * ``` + * + * You can also store the balance of an account in the `System` pallet. + * + * # Example + * + * ```nocompile + * impl pallet_balances::Config for Runtime { + * type AccountStore = System + * } + * ``` + * + * But this comes with tradeoffs, storing account balances in the system pallet stores + * `frame_system` data alongside the account data contrary to storing account balances in the + * `Balances` pallet, which uses a `StorageMap` to store balances data only. + * NOTE: This is only used in the case that this pallet is used to store balances. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Freeze locks on account balances. + **/ + freezes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Holds on account balances. + **/ + holds: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units of outstanding deactivated balance in the system. + **/ + inactiveIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any liquidity locks on some account balances. + * NOTE: Should only be accessed when setting, changing and freeing a lock. + * + * Use of locks is deprecated in favour of freezes. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + locks: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Named reserves on some account balances. + * + * Use of reserves is deprecated in favour of holds. See `https://github.com/paritytech/substrate/pull/12951/` + **/ + reserves: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The total units issued in the system. + **/ + totalIssuance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + beefy: { + /** + * The current authorities set + **/ + authorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Block number where BEEFY consensus is enabled/started. + * By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively + * restarted from the newly set block number. + **/ + genesisBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Authorities set scheduled to be used with the next session + **/ + nextAuthorities: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A mapping from BEEFY set ID to the index of the *most recent* session for which its + * members were responsible. + * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and BEEFY set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * + * TWOX-NOTE: `ValidatorSetId` is not under user control. + **/ + setIdSession: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The current validator set id + **/ + validatorSetId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + beefyMmrLeaf: { + /** + * Details of current BEEFY authority set. + **/ + beefyAuthorities: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Details of next BEEFY authority set. + * + * This storage entry is used as cache for calls to `update_beefy_next_authority_set`. + **/ + beefyNextAuthorities: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + bounties: { + /** + * Bounties that have been made. + **/ + bounties: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Bounty indices that have been approved but not yet funded. + **/ + bountyApprovals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Number of bounty proposals that have been made. + **/ + bountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each bounty. + **/ + bountyDescriptions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + childBounties: { + /** + * Child bounties that have been added. + **/ + childBounties: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts + * for each parent bounty. Number of total child bounties. Will be removed in May 2025. + **/ + childBountyCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The description of each child-bounty. Indexed by `(parent_id, child_id)`. + * + * This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version. + **/ + childBountyDescriptionsV1: AugmentedQuery Observable>, [u32, u32]> & QueryableStorageEntry; + /** + * The cumulative child-bounty curator fee for each parent bounty. + **/ + childrenCuratorFees: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of active child bounties per parent bounty. + * Map of parent bounty index to number of child bounties. + **/ + parentChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Number of total child bounties per parent bounty, including completed bounties. + **/ + parentTotalChildBounties: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The mapping of the child bounty ids from storage version `V0` to the new `V1` version. + * + * The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids + * based on the child bounty count per parent bounty [`ParentTotalChildBounties`]. + * The item intended solely for client convenience and not used in the pallet's core logic. + **/ + v0ToV1ChildBountyIds: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + claims: { + claims: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Pre-claimed Ethereum accounts, by the Account ID that they are claimed to. + **/ + preclaims: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The statement kind that must be signed, if any. + **/ + signing: AugmentedQuery Observable>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + total: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Vesting schedule for a claim. + * First balance is the total amount that should be held for vesting. + * Second balance is how much should be unlocked per block. + * The block number is when the vesting should start. + **/ + vesting: AugmentedQuery Observable>>, [PezkuwiRuntimeCommonClaimsEthereumAddress]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + configuration: { + /** + * The active configuration for the current session. + **/ + activeConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If this is set, then the configuration setters will bypass the consistency checks. This + * is meant to be used only as the last resort. + **/ + bypassConsistencyCheck: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Pending configuration changes. + * + * This is a list of configuration changes, each with a session index at which it should + * be applied. + * + * The list is sorted ascending by session index. Also, this list can only contain at most + * 2 items: for the next session and for the `scheduled_session`. + **/ + pendingConfigs: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + convictionVoting: { + /** + * The voting classes which have a non-zero lock requirement and the lock amounts which they + * require. The actual amount locked on behalf of this pallet should always be the maximum of + * this list. + **/ + classLocksFor: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * All voting for a particular voter in a particular voting class. We store the balance for the + * number of votes that we have recorded. + **/ + votingFor: AugmentedQuery Observable, [AccountId32, u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + coretimeAssignmentProvider: { + /** + * Assignments which are currently active. + * + * They will be picked from `PendingAssignments` once we reach the scheduled block number in + * `PendingAssignments`. + **/ + coreDescriptors: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Scheduled assignment sets. + * + * Assignments as of the given block number. They will go into state once the block number is + * reached (and replace whatever was in there before). + **/ + coreSchedules: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + crowdloan: { + /** + * The number of auctions that have entered into their ending period so far. + **/ + endingsCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Info on all of the funds. + **/ + funds: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The funds that have had additional contributions during the last block. This is used + * in order to determine which funds should submit new or updated bids. + **/ + newRaise: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Tracker for the next available fund index + **/ + nextFundIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + delegatedStaking: { + /** + * Map of `Agent` to their `Ledger`. + **/ + agents: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForAgents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForDelegators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Map of Delegators to their `Delegation`. + * + * Implementation note: We are not using a double map with `delegator` and `agent` account + * as keys since we want to restrict delegators to delegate only to one account at a time. + **/ + delegators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + dmp: { + /** + * The factor to multiply the base delivery fee by. + **/ + deliveryFeeFactor: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * A mapping that stores the downward message queue MQC head for each para. + * + * Each link in this chain has a form: + * `(prev_head, B, H(M))`, where + * - `prev_head`: is the previous head hash or zero if none. + * - `B`: is the relay-chain block number in which a message was appended. + * - `H(M)`: is the hash of the message being appended. + **/ + downwardMessageQueueHeads: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The downward messages addressed for a certain para. + **/ + downwardMessageQueues: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + electionProviderMultiPhase: { + /** + * Current phase. + **/ + currentPhase: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Desired number of targets to elect for this round. + * + * Only exists when [`Snapshot`] is present. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + desiredTargets: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum score that each 'untrusted' solution must attain in order to be considered + * feasible. + * + * Can be set via `set_minimum_untrusted_score`. + **/ + minimumUntrustedScore: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Current best solution, signed or unsigned, queued to be returned upon `elect`. + * + * Always sorted by score. + **/ + queuedSolution: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Internal counter for the number of rounds. + * + * This is useful for de-duplication of transactions submitted to the pool, and general + * diagnostics of the pallet. + * + * This is merely incremented once per every time that an upstream `elect` is called. + **/ + round: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a + * value in `SignedSubmissions`. + * + * We never need to process more than a single signed submission at a time. Signed submissions + * can be quite large, so we're willing to pay the cost of multiple database accesses to access + * them one at a time instead of reading and decoding all of them at once. + **/ + signedSubmissionIndices: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The next index to be assigned to an incoming signed submission. + * + * Every accepted submission is assigned a unique index; that index is bound to that particular + * submission for the duration of the election. On election finalization, the next index is + * reset to 0. + * + * We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its + * capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`, + * because iteration is slow. Instead, we store the value here. + **/ + signedSubmissionNextIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Unchecked, signed solutions. + * + * Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while + * allowing us to keep only a single one in memory at a time. + * + * Twox note: the key of the map is an auto-incrementing index which users cannot inspect or + * affect; we shouldn't need a cryptographically secure hasher. + **/ + signedSubmissionsMap: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Snapshot data of the round. + * + * This is created at the beginning of the signed phase and cleared upon calling `elect`. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + snapshot: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The metadata of the [`RoundSnapshot`] + * + * Only exists when [`Snapshot`] is present. + * Note: This storage type must only be mutated through [`SnapshotWrapper`]. + **/ + snapshotMetadata: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + fastUnstake: { + /** + * Counter for the related counted storage map + **/ + counterForQueue: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Number of eras to check per block. + * + * If set to 0, this pallet does absolutely nothing. Cannot be set to more than + * [`Config::MaxErasToCheckPerBlock`]. + * + * Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are + * checked. The checking is represented by updating [`UnstakeRequest::checked`], which is + * stored in [`Head`]. + **/ + erasToCheckPerBlock: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current "head of the queue" being unstaked. + * + * The head in itself can be a batch of up to [`Config::BatchSize`] stakers. + **/ + head: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The map of all accounts wishing to be unstaked. + * + * Keeps track of `AccountId` wishing to unstake and it's corresponding deposit. + **/ + queue: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + grandpa: { + /** + * The current list of authorities. + **/ + authorities: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The number of changes (both in terms of keys and underlying economic responsibilities) + * in the "set" of Grandpa validators from genesis. + **/ + currentSetId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * next block number where we can force a change. + **/ + nextForced: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pending change: (signaled at, scheduled change). + **/ + pendingChange: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * A mapping from grandpa set ID to the index of the *most recent* session for which its + * members were responsible. + * + * This is only used for validating equivocation proofs. An equivocation proof must + * contains a key-ownership proof for a given session, therefore we need a way to tie + * together sessions and GRANDPA set ids, i.e. we need to validate that a validator + * was the owner of a given key on a given session, and what the active set ID was + * during that session. + * + * TWOX-NOTE: `SetId` is not under user control. + **/ + setIdSession: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * `true` if we are currently stalled. + **/ + stalled: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * State of the current authority set. + **/ + state: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + historical: { + /** + * Mapping from historical session indices to session-data root hash and validator count. + **/ + historicalSessions: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * The range of historical sessions we store. [first, last) + **/ + storedRange: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + hrmp: { + /** + * This mapping tracks how many open channel requests were accepted by a given recipient para. + * Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with + * `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`. + **/ + hrmpAcceptedChannelRequestCount: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Storage for the messages for each channel. + * Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`. + **/ + hrmpChannelContents: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + /** + * Maintains a mapping that can be used to answer the question: What paras sent a message at + * the given block number for a given receiver. Invariants: + * - The inner `Vec` is never empty. + * - The inner `Vec` cannot store two same `ParaId`. + * - The outer vector is sorted ascending by block number and cannot store two items with the + * same block number. + **/ + hrmpChannelDigests: AugmentedQuery Observable]>>>, [u32]> & QueryableStorageEntry; + /** + * HRMP channel data associated with each para. + * Invariant: + * - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session. + **/ + hrmpChannels: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + /** + * A set of pending HRMP close channel requests that are going to be closed during the session + * change. Used for checking if a given channel is registered for closure. + * + * The set is accompanied by a list for iteration. + * + * Invariant: + * - There are no channels that exists in list but not in the set and vice versa. + **/ + hrmpCloseChannelRequests: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + hrmpCloseChannelRequestsList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + hrmpEgressChannelsIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Ingress/egress indexes allow to find all the senders and receivers given the opposite side. + * I.e. + * + * (a) ingress index allows to find all the senders for a given recipient. + * (b) egress index allows to find all the recipients for a given sender. + * + * Invariants: + * - for each ingress index entry for `P` each item `I` in the index should present in + * `HrmpChannels` as `(I, P)`. + * - for each egress index entry for `P` each item `E` in the index should present in + * `HrmpChannels` as `(P, E)`. + * - there should be no other dangling channels in `HrmpChannels`. + * - the vectors are sorted. + **/ + hrmpIngressChannelsIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * This mapping tracks how many open channel requests are initiated by a given sender para. + * Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has + * `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`. + **/ + hrmpOpenChannelRequestCount: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The set of pending HRMP open channel requests. + * + * The set is accompanied by a list for iteration. + * + * Invariant: + * - There are no channels that exists in list but not in the set and vice versa. + **/ + hrmpOpenChannelRequests: AugmentedQuery Observable>, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]> & QueryableStorageEntry; + hrmpOpenChannelRequestsList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The HRMP watermark associated with each para. + * Invariant: + * - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a + * session. + **/ + hrmpWatermarks: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + indices: { + /** + * The lookup from index to account. + **/ + accounts: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + initializer: { + /** + * Buffered session changes. + * + * Typically this will be empty or one element long. Apart from that this item never hits + * the storage. + * + * However this is a `Vec` regardless to handle various edge cases that may occur at runtime + * upgrade boundaries or if governance intervenes. + **/ + bufferedSessionChanges: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether the parachains modules have been initialized within this block. + * + * Semantically a `bool`, but this guarantees it should never hit the trie, + * as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values. + * + * As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one + * of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable + * for the semantics of this variable. + **/ + hasInitialized: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + messageQueue: { + /** + * The index of the first and last (non-empty) pages. + **/ + bookStateFor: AugmentedQuery Observable, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin]> & QueryableStorageEntry; + /** + * The map of page indices to pages. + **/ + pages: AugmentedQuery Observable>, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, u32]> & QueryableStorageEntry; + /** + * The origin at which we should begin servicing. + **/ + serviceHead: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + mmr: { + /** + * Hashes of the nodes in the MMR. + * + * Note this collection only contains MMR peaks, the inner nodes (and leaves) + * are pruned and only stored in the Offchain DB. + **/ + nodes: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * Current size of the MMR (number of leaves). + **/ + numberOfLeaves: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Latest MMR Root hash. + **/ + rootHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + multisig: { + /** + * The set of open multisig operations. + **/ + multisigs: AugmentedQuery Observable>, [AccountId32, U8aFixed]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + nominationPools: { + /** + * Storage for bonded pools. + **/ + bondedPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Map from a pool member account to their opted claim permission. + **/ + claimPermissions: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForBondedPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForMetadata: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPoolMembers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForReversePoolIdLookup: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRewardPools: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForSubPoolsStorage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum commission that can be charged by a pool. Used on commission payouts to bound + * pool commissions that are > `GlobalMaxCommission`, necessary if a future + * `GlobalMaxCommission` is lower than some current pool commissions. + **/ + globalMaxCommission: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Ever increasing number of all pools created so far. + **/ + lastPoolId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Maximum number of members that can exist in the system. If `None`, then the count + * members are not bound on a system wide basis. + **/ + maxPoolMembers: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of members that may belong to pool. If `None`, then the count of + * members is not bound on a per pool basis. + **/ + maxPoolMembersPerPool: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum number of nomination pools that can exist. If `None`, then an unbounded number of + * pools can exist. + **/ + maxPools: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Metadata for the pool. + **/ + metadata: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Minimum bond required to create a pool. + * + * This is the amount that the depositor must put as their initial stake in the pool, as an + * indication of "skin in the game". + * + * This is the value that will always exist in the staking ledger of the pool bonded account + * while all other accounts leave. + **/ + minCreateBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum amount to bond to join a pool. + **/ + minJoinBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Active members. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + poolMembers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A reverse lookup from the pool's account id to its id. + * + * This is only used for slashing and on automatic withdraw update. In all other instances, the + * pool id is used, and the accounts are deterministically derived from it. + **/ + reversePoolIdLookup: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Reward pools. This is where there rewards for each pool accumulate. When a members payout is + * claimed, the balance comes out of the reward pool. Keyed by the bonded pools account. + **/ + rewardPools: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Groups of unbonding pools. Each group of unbonding pools belongs to a + * bonded pool, hence the name sub-pools. Keyed by the bonded pools account. + **/ + subPoolsStorage: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sum of funds across all pools. + * + * This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`] + * because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's + * `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s. + **/ + totalValueLocked: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + offences: { + /** + * A vector of reports of the same kind that happened at the same time slot. + **/ + concurrentReportsIndex: AugmentedQuery Observable>, [U8aFixed, Bytes]> & QueryableStorageEntry; + /** + * The primary structure that holds all offence records keyed by report identifiers. + **/ + reports: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + onDemand: { + /** + * Queue entries that are currently bound to a particular core due to core affinity. + **/ + affinityEntries: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Keeps track of credits owned by each account. + **/ + credits: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Priority queue for all orders which don't yet (or not any more) have any core affinity. + **/ + freeEntries: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in + * it's lookahead. Keeping track of this affinity prevents parallel execution of the same + * `ParaId` on two or more `CoreIndex`es. + **/ + paraIdAffinity: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Overall status of queue (both free + affinity entries) + **/ + queueStatus: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Keeps track of accumulated revenue from on demand order sales. + **/ + revenue: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraInclusion: { + /** + * Candidates pending availability by `ParaId`. They form a chain starting from the latest + * included head of the para. + * Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage + * would otherwise have the exact same prefix which could cause undefined behaviour when doing + * the migration. + **/ + v1: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraInherent: { + /** + * Whether the paras inherent was included within this block. + * + * The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant + * due to the guarantees of FRAME's storage APIs. + * + * If this is `None` at the end of the block, we panic and render the block invalid. + **/ + included: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Scraped on chain data for extracting resolved disputes as well as backing votes. + **/ + onChainVotes: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paras: { + /** + * The actions to perform during the start of a specific session index. + **/ + actionsQueue: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The code hash authorizations for a para which will expire `expire_at` `BlockNumberFor`. + **/ + authorizedCodeHash: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Validation code stored by its hash. + * + * This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and + * [`PastCodeHash`]. + **/ + codeByHash: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The number of reference on the validation code in [`CodeByHash`] storage. + **/ + codeByHashRefs: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * The validation code hash of every live para. + * + * Corresponding code can be retrieved with [`CodeByHash`]. + **/ + currentCodeHash: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The actual future code hash of a para. + * + * Corresponding code can be retrieved with [`CodeByHash`]. + **/ + futureCodeHash: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The block number at which the planned code change is expected for a parachain. + * + * The change will be applied after the first parablock for this ID included which executes + * in the context of a relay chain block with a number >= `expected_at`. + **/ + futureCodeUpgrades: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The list of upcoming future code upgrades. + * + * Each item is a pair of the parachain and the expected block at which the upgrade should be + * applied. The upgrade will be applied at the given relay chain block. In contrast to + * [`FutureCodeUpgrades`] this code upgrade will be applied regardless the parachain making any + * progress or not. + * + * Ordered ascending by block number. + **/ + futureCodeUpgradesAt: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The head-data of every registered para. + **/ + heads: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The context (relay-chain block number) of the most recent parachain head. + **/ + mostRecentContext: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * All lease holding parachains. Ordered ascending by `ParaId`. On demand parachains are not + * included. + * + * Consider using the [`ParachainsCache`] type of modifying. + **/ + parachains: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current lifecycle of a all known Para IDs. + **/ + paraLifecycles: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Actual past code hash, indicated by the para id as well as the block number at which it + * became outdated. + * + * Corresponding code can be retrieved with [`CodeByHash`]. + **/ + pastCodeHash: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Past code of parachains. The parachains themselves may not be registered anymore, + * but we also keep their code on-chain for the same amount of time as outdated code + * to keep it available for approval checkers. + **/ + pastCodeMeta: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Which paras have past code that needs pruning and the relay-chain block at which the code + * was replaced. Note that this is the actual height of the included block, not the expected + * height at which the code upgrade would be applied, although they may be equal. + * This is to ensure the entire acceptance period is covered, not an offset acceptance period + * starting from the time at which the parachain perceives a code upgrade as having occurred. + * Multiple entries for a single para are permitted. Ordered ascending by block number. + **/ + pastCodePruning: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`. + **/ + pvfActiveVoteList: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * All currently active PVF pre-checking votes. + * + * Invariant: + * - There are no PVF pre-checking votes that exists in list but not in the set and vice versa. + **/ + pvfActiveVoteMap: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Upcoming paras instantiation arguments. + * + * NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set + * to empty. Instead, the code will be saved into the storage right away via `CodeByHash`. + **/ + upcomingParasGenesis: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The list of upcoming code upgrades. + * + * Each item is a pair of which para performs a code upgrade and at which relay-chain block it + * is expected at. + * + * Ordered ascending by block number. + **/ + upcomingUpgrades: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The list of parachains that are awaiting for their upgrade restriction to cooldown. + * + * Ordered ascending by block number. + **/ + upgradeCooldowns: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * This is used by the relay-chain to communicate to a parachain a go-ahead with in the upgrade + * procedure. + * + * This value is absent when there are no upgrades scheduled or during the time the relay chain + * performs the checks. It is set at the first relay-chain block when the corresponding + * parachain can switch its upgrade function. As soon as the parachain's block is included, the + * value gets reset to `None`. + * + * NOTE that this field is used by parachains via merkle storage proofs, therefore changing + * the format will require migration of parachains. + **/ + upgradeGoAheadSignal: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * This is used by the relay-chain to communicate that there are restrictions for performing + * an upgrade for this parachain. + * + * This may be a because the parachain waits for the upgrade cooldown to expire. Another + * potential use case is when we want to perform some maintenance (such as storage migration) + * we could restrict upgrades to make the process simpler. + * + * NOTE that this field is used by parachains via merkle storage proofs, therefore changing + * the format will require migration of parachains. + **/ + upgradeRestrictionSignal: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraScheduler: { + /** + * One entry for each availability core. The `VecDeque` represents the assignments to be + * scheduled on that core. + **/ + claimQueue: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The block number where the session start occurred. Used to track how many group rotations + * have occurred. + * + * Note that in the context of parachains modules the session change is signaled during + * the block and enacted at the end of the block (at the finalization stage, to be exact). + * Thus for all intents and purposes the effect of the session change is observed at the + * block following the session change, block number of which we save in this storage value. + **/ + sessionStartBlock: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * All the validator groups. One for each core. Indices are into `ActiveValidators` - not the + * broader set of Polkadot validators, but instead just the subset used for parachains during + * this session. + * + * Bound: The number of cores is the sum of the numbers of parachains and parathread + * multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe + * upper bound at 10k. + **/ + validatorGroups: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parasDisputes: { + /** + * Backing votes stored for each dispute. + * This storage is used for slashing. + **/ + backersOnDisputes: AugmentedQuery Observable>>, [u32, H256]> & QueryableStorageEntry; + /** + * All ongoing or concluded disputes for the last several sessions. + **/ + disputes: AugmentedQuery Observable>, [u32, H256]> & QueryableStorageEntry; + /** + * Whether the chain is frozen. Starts as `None`. When this is `Some`, + * the chain will not accept any new parachain blocks for backing or inclusion, + * and its value indicates the last valid block number in the chain. + * It can only be set back to `None` by governance intervention. + **/ + frozen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * All included blocks on the chain, as well as the block number in this chain that + * should be reverted back to if the candidate is disputed and determined to be invalid. + **/ + included: AugmentedQuery Observable>, [u32, H256]> & QueryableStorageEntry; + /** + * The last pruned session, if any. All data stored by this module + * references sessions. + **/ + lastPrunedSession: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + paraSessionInfo: { + /** + * The validator account keys of the validators actively participating in parachain consensus. + **/ + accountKeys: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Assignment keys for the current session. + * Note that this API is private due to it being prone to 'off-by-one' at session boundaries. + * When in doubt, use `Sessions` API instead. + **/ + assignmentKeysUnsafe: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The earliest session for which previous session info is stored. + **/ + earliestStoredSession: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Executor parameter set for a given session index + **/ + sessionExecutorParams: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Session information in a rolling window. + * Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`. + * Does not have any entries before the session index in the first session change notification. + **/ + sessions: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parasShared: { + /** + * All the validators actively participating in parachain consensus. + * Indices are into the broader validator set. + **/ + activeValidatorIndices: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The parachain attestation keys of the validators actively participating in parachain + * consensus. This should be the same length as `ActiveValidatorIndices`. + **/ + activeValidatorKeys: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * All allowed relay-parents. + **/ + allowedRelayParents: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current session index. + **/ + currentSessionIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + parasSlashing: { + /** + * Validators pending dispute slashes. + **/ + unappliedSlashes: AugmentedQuery Observable>, [u32, H256]> & QueryableStorageEntry; + /** + * `ValidatorSetCount` per session. + **/ + validatorSetCounts: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + preimage: { + preimageFor: AugmentedQuery | [H256 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[H256, u32]>]> & QueryableStorageEntry]>; + /** + * The request status of a given hash. + **/ + requestStatusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * The request status of a given hash. + **/ + statusFor: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + proxy: { + /** + * The announcements made by the proxy (key). + **/ + announcements: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * The set of account proxies. Maps the account which has delegated to the accounts + * which are being delegated to, together with the amount held on deposit. + **/ + proxies: AugmentedQuery Observable, u128]>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + rcMigrator: { + /** + * The priority of the Asset Hub UMP queue during migration. + * + * Controls how the Asset Hub UMP (Upward Message Passing) queue is processed relative to other + * queues during the migration process. This helps ensure timely processing of migration + * messages. The default priority pattern is defined in the pallet configuration, but can be + * overridden by a storage value of this type. + **/ + ahUmpQueuePriorityConfig: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * An optional account id of a canceller. + * + * This account id can only stop scheduled migration. + **/ + canceller: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The duration of the post migration cool-off period. + * + * This is the duration of the cool-off period after the data migration is finished. During + * this period, the migration will be still in ongoing state and the concerned extrinsics will + * be locked. + **/ + coolOffPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForPendingXcmMessages: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForRcAccounts: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * An optional account id of a manager. + * + * This account id has similar privileges to [`Config::AdminOrigin`] except that it + * can not set the manager account id via `set_manager` call. + **/ + manager: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current round of the multisig voting. + * + * Votes are only valid for the current round. + **/ + managerMultisigRound: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The multisig AccountIDs that votes to execute a specific call. + **/ + managerMultisigs: AugmentedQuery Observable>, [RuntimeCall]> & QueryableStorageEntry; + /** + * How often each participant voted in the current round. + * + * Will be cleared at the end of each round. + **/ + managerVotesInCurrentRound: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Block number when migration finished and extrinsics were unlocked. + * + * This is set when entering the `MigrationDone` stage hence when + * `RcMigrationStage::is_finished()` becomes `true`. + **/ + migrationEndBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The block number at which the migration began and the pallet's extrinsics were locked. + * + * This value is set when entering the `WaitingForAh` stage, i.e., when + * `RcMigrationStage::is_ongoing()` becomes `true`. + **/ + migrationStartBlock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The pending XCM messages. + * + * Contains data messages that have been sent to the Asset Hub but not yet confirmed. + * + * Unconfirmed messages can be resent by calling the [`Pallet::resend_xcm`] function. + **/ + pendingXcmMessages: AugmentedQuery | [u64 | AnyNumber | Uint8Array, H256 | string | Uint8Array]) => Observable>, [ITuple<[u64, H256]>]> & QueryableStorageEntry]>; + /** + * The pending XCM response queries and their XCM hash referencing the message in the + * [`PendingXcmMessages`] storage. + * + * The `QueryId` is the identifier from the [`pallet_xcm`] query handler registry. The XCM + * pallet will notify about the status of the message by calling the + * [`Pallet::receive_query_response`] function with the `QueryId` and the + * response. + **/ + pendingXcmQueries: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * Accounts that use the proxy pallet to delegate permissions and have no nonce. + * + * Boolean value is whether they have been migrated to the Asset Hub. Needed for idempotency. + **/ + pureProxyCandidatesMigrated: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Helper storage item to obtain and store the known accounts that should be kept partially or + * fully on Relay Chain. + **/ + rcAccounts: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Helper storage item to store the total balance that should be kept on Relay Chain. + **/ + rcMigratedBalance: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Helper storage item to store the total balance that should be kept on Relay Chain after + * it is consumed from the `RcMigratedBalance` storage item and sent to the Asset Hub. + * + * This let us to take the value from the `RcMigratedBalance` storage item and keep the + * `SignalMigrationFinish` stage to be idempotent while preserving these values for tests and + * later discoveries. + **/ + rcMigratedBalanceArchive: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Relay Chain migration state. + **/ + rcMigrationStage: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The migration settings. + **/ + settings: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Manual override for `type UnprocessedMsgBuffer: Get`. Look there for docs. + **/ + unprocessedMsgBuffer: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The duration of the pre migration warm-up period. + * + * This is the duration of the warm-up period before the data migration starts. During this + * period, the migration will be in ongoing state and the concerned extrinsics will be locked. + **/ + warmUpPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + referenda: { + /** + * The number of referenda being decided currently. + **/ + decidingCount: AugmentedQuery Observable, [u16]> & QueryableStorageEntry; + /** + * The metadata is a general information concerning the referendum. + * The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON + * dump or IPFS hash of a JSON file. + * + * Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove) + * large preimages. + **/ + metadataOf: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The next free referendum index, aka the number of referenda started so far. + **/ + referendumCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information concerning any given referendum. + **/ + referendumInfoFor: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The sorted list of referenda ready to be decided but not yet being decided, ordered by + * conviction-weighted approvals. + * + * This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`. + **/ + trackQueue: AugmentedQuery Observable>>, [u16]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + registrar: { + /** + * The next free `ParaId`. + **/ + nextFreeParaId: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Amount held on deposit for each para and the original depositor. + * + * The given account ID is responsible for registering the code and initial head data, but may + * only do so if it isn't yet registered. (After that, it's up to governance to do so.) + **/ + paras: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Pending swap operations. + **/ + pendingSwap: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + scheduler: { + /** + * Items to be executed, indexed by the block number that they should be executed on. + **/ + agenda: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * Block number at which the agenda began incomplete execution. + **/ + incompleteSince: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Lookup from a name to the block number and index of the task. + * + * For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4 + * identities. + **/ + lookup: AugmentedQuery Observable>>, [U8aFixed]> & QueryableStorageEntry; + /** + * Retry configurations for items to be executed, indexed by task address. + **/ + retries: AugmentedQuery | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable>, [ITuple<[u32, u32]>]> & QueryableStorageEntry]>; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + session: { + /** + * Current index of the session. + **/ + currentIndex: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Indices of disabled validators. + * + * The vec is always kept sorted so that we can find whether a given validator is + * disabled using binary search. It gets cleared when `on_session_ending` returns + * a new set of identities. + **/ + disabledValidators: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The owner of a key. The key is the `KeyTypeId` + the encoded key. + **/ + keyOwner: AugmentedQuery | [PezspCoreCryptoKeyTypeId | string | Uint8Array, Bytes | string | Uint8Array]) => Observable>, [ITuple<[PezspCoreCryptoKeyTypeId, Bytes]>]> & QueryableStorageEntry]>; + /** + * The next session keys for a validator. + **/ + nextKeys: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * True if the underlying economic identities or weighting behind the validators + * has changed in the queued validator set. + **/ + queuedChanged: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The queued keys for the next session. When the next session begins, these keys + * will be used to determine the validator's session keys. + **/ + queuedKeys: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The current set of validators. + **/ + validators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + slots: { + /** + * Amounts held on deposit for each (possibly future) leased parachain. + * + * The actual amount locked on its behalf by any account at any time is the maximum of the + * second values of the items in this list whose first value is the account. + * + * The first item in the list is the amount locked for the current Lease Period. Following + * items are for the subsequent lease periods. + * + * The default value (an empty list) implies that the parachain no longer exists (or never + * existed) as far as this pallet is concerned. + * + * If a parachain doesn't exist *yet* but is scheduled to exist in the future, then it + * will be left-padded with one or more `None`s to denote the fact that nothing is held on + * deposit for the non-existent chain currently, but is held at some point in the future. + * + * It is illegal for a `None` value to trail in the list. + **/ + leases: AugmentedQuery Observable>>>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + staking: { + /** + * The active era information, it holds index and start. + * + * The active era is the era being currently rewarded. Validator set of this era must be + * equal to [`SessionInterface::validators`]. + **/ + activeEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all locked "stash" accounts to the controller account. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + bonded: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * A mapping from still-bonded eras to the first session index of that era. + * + * Must contains information for eras for the range: + * `[active_era - bounding_duration; active_era]` + **/ + bondedEras: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * The amount of currency given to reporters of a slash event which was + * canceled by extraordinary circumstances (e.g. governance). + **/ + canceledSlashPayout: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The threshold for when users can start calling `chill_other` for other validators / + * nominators. The threshold is compared to the actual number of validators / nominators + * (`CountFor*`) in the system compared to the configured max (`Max*Count`). + **/ + chillThreshold: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * History of claimed paged rewards by era and validator. + * + * This is keyed by era and validator stash which maps to the set of page indexes which have + * been claimed. + * + * It is removed after [`Config::HistoryDepth`] eras. + **/ + claimedRewards: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForNominators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForValidators: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Counter for the related counted storage map + **/ + counterForVirtualStakers: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current era index. + * + * This is the latest planned era, depending on how the Session pallet queues the validator + * set, it might be active or not. + **/ + currentEra: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The last planned session scheduled by the session pallet. + * + * This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]. + **/ + currentPlannedSession: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Rewards for the last [`Config::HistoryDepth`] eras. + * If reward hasn't been set or has been removed then 0 reward is returned. + **/ + erasRewardPoints: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Exposure of validator at era. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty exposure is returned. + * + * Note: Deprecated since v14. Use `EraInfo` instead to work with exposures. + **/ + erasStakers: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Clipped Exposure of validator at era. + * + * Note: This is deprecated, should be used as read-only and will be removed in the future. + * New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead. + * + * This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the + * `T::MaxExposurePageSize` biggest stakers. + * (Note: the field `total` and `own` of the exposure remains unchanged). + * This is used to limit the i/o cost for the nominator payout. + * + * This is keyed fist by the era index to allow bulk deletion and then the stash account. + * + * It is removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty exposure is returned. + * + * Note: Deprecated since v14. Use `EraInfo` instead to work with exposures. + **/ + erasStakersClipped: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Summary of validator exposure at a given era. + * + * This contains the total stake in support of the validator and their own stake. In addition, + * it can also be used to get the number of nominators backing this validator and the number of + * exposure pages they are divided into. The page count is useful to determine the number of + * pages of rewards that needs to be claimed. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * Should only be accessed through `EraInfo`. + * + * Is it removed after [`Config::HistoryDepth`] eras. + * If stakers hasn't been set or has been removed then empty overview is returned. + **/ + erasStakersOverview: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Paginated exposure of a validator at given era. + * + * This is keyed first by the era index to allow bulk deletion, then stash account and finally + * the page. Should only be accessed through `EraInfo`. + * + * This is cleared after [`Config::HistoryDepth`] eras. + **/ + erasStakersPaged: AugmentedQuery Observable>, [u32, AccountId32, u32]> & QueryableStorageEntry; + /** + * The session index at which the era start for the last [`Config::HistoryDepth`] eras. + * + * Note: This tracks the starting session (i.e. session index when era start being active) + * for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`. + **/ + erasStartSessionIndex: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The total amount staked for the last [`Config::HistoryDepth`] eras. + * If total hasn't been set or has been removed then 0 stake is returned. + **/ + erasTotalStake: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * Similar to `ErasStakers`, this holds the preferences of validators. + * + * This is keyed first by the era index to allow bulk deletion and then the stash account. + * + * Is it removed after [`Config::HistoryDepth`] eras. + **/ + erasValidatorPrefs: AugmentedQuery Observable, [u32, AccountId32]> & QueryableStorageEntry; + /** + * The total validator era payout for the last [`Config::HistoryDepth`] eras. + * + * Eras that haven't finished yet or has been removed doesn't have reward. + **/ + erasValidatorReward: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Mode of era forcing. + **/ + forceEra: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Any validators that may never be slashed or forcibly kicked. It's a Vec since they're + * easy to initialize and the performance hit is minimal (we expect no more than four + * invulnerables) and restricted to testnets. + **/ + invulnerables: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map from all (unlocked) "controller" accounts to the info regarding the staking. + * + * Note: All the reads and mutations to this storage *MUST* be done through the methods exposed + * by [`StakingLedger`] to ensure data and lock consistency. + **/ + ledger: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The maximum nominator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxNominatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Maximum staked rewards, i.e. the percentage of the era inflation that + * is used for stake rewards. + * See [Era payout](./index.html#era-payout). + **/ + maxStakedRewards: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The maximum validator count before we stop allowing new validators to join. + * + * When this value is not set, no limits are enforced. + **/ + maxValidatorsCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The minimum amount of commission that validators can set. + * + * If set to `0`, no limit exists. + **/ + minCommission: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active nominator stake of the last successful election. + **/ + minimumActiveStake: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Minimum number of staking participants before emergency conditions are imposed. + **/ + minimumValidatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a nominator. + **/ + minNominatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The minimum active bond to become and maintain the role of a validator. + **/ + minValidatorBond: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from nominator stash key to their nomination preferences, namely the validators that + * they wish to support. + * + * Note that the keys of this storage map might become non-decodable in case the + * account's [`NominationsQuota::MaxNominations`] configuration is decreased. + * In this rare case, these nominators + * are still existent in storage, their key is correct and retrievable (i.e. `contains_key` + * indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable + * nominators will effectively not-exist, until they re-submit their preferences such that it + * is within the bounds of the newly set `Config::MaxNominations`. + * + * This implies that `::iter_keys().count()` and `::iter().count()` might return different + * values for this map. Moreover, the main `::count()` is aligned with the former, namely the + * number of keys that exist. + * + * Lastly, if any of the nominators become non-decodable, they can be chilled immediately via + * [`Call::chill_other`] dispatchable by anyone. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + nominators: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on nominators, mapped by era to the highest slash value of the era. + **/ + nominatorSlashInEra: AugmentedQuery Observable>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Where the reward payment should be made. Keyed by stash. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + payee: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Slashing spans for stash accounts. + **/ + slashingSpans: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * The percentage of the slash that is distributed to reporters. + * + * The rest of the slashed value is handled by the `Slash`. + **/ + slashRewardFraction: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Records information about the maximum slash of a stash within a slashing span, + * as well as how much reward has been paid out. + **/ + spanSlash: AugmentedQuery | [AccountId32 | string | Uint8Array, u32 | AnyNumber | Uint8Array]) => Observable, [ITuple<[AccountId32, u32]>]> & QueryableStorageEntry]>; + /** + * All unapplied slashes that are queued for later. + **/ + unappliedSlashes: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The ideal number of active validators. + **/ + validatorCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The map from (wannabe) validator stash key to the preferences of that validator. + * + * TWOX-NOTE: SAFE since `AccountId` is a secure hash. + **/ + validators: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * All slashing events on validators, mapped by era to the highest slash proportion + * and slash value of the era. + **/ + validatorSlashInEra: AugmentedQuery Observable>>, [u32, AccountId32]> & QueryableStorageEntry; + /** + * Stakers whose funds are managed by other pallets. + * + * This pallet does not apply any locks on them, therefore they are only virtually bonded. They + * are expected to be keyless accounts and hence should not be allowed to mutate their ledger + * directly via this pallet. Instead, these accounts are managed by other pallets and accessed + * via low level apis. We keep track of them to do minimal integrity checks. + **/ + virtualStakers: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stakingAhClient: { + /** + * An incomplete validator set report. + **/ + incompleteValidatorSetReport: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Indicates the current operating mode of the pallet. + * + * This value determines how the pallet behaves in response to incoming and outgoing messages, + * particularly whether it should execute logic directly, defer it, or delegate it entirely. + **/ + mode: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A storage value that is set when a `new_session` gives a new validator set to the session + * pallet, and is cleared on the next call. + * + * The inner u32 is the id of the said activated validator set. While not relevant here, good + * to know this is the planning era index of staking-async on AH. + * + * Once cleared, we know a validator set has been activated, and therefore we can send a + * timestamp to AH. + **/ + nextSessionChangesValidators: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Internal storage item of [`OffenceSendQueue`]. Should not be used manually. + **/ + offenceSendQueueCursor: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Internal storage item of [`OffenceSendQueue`]. Should not be used manually. + **/ + offenceSendQueueOffences: AugmentedQuery Observable>>, [u32]> & QueryableStorageEntry; + /** + * A session report that is outgoing, and should be sent. + * + * This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent, + * or the second value reaches zero, at which point we drop it. + **/ + outgoingSessionReport: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * All of the points of the validators. + * + * This is populated during a session, and is flushed and sent over via [`SendToAssetHub`] + * at each session end. + **/ + validatorPoints: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * The queued validator sets for a given planning session index. + * + * This is received via a call from AssetHub. + **/ + validatorSet: AugmentedQuery Observable]>>>, []> & QueryableStorageEntry; + /** + * The session index at which the latest elected validator set was applied. + * + * This is used to determine if an offence, given a session index, is in the current active era + * or not. + **/ + validatorSetAppliedAt: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + stateTrieMigration: { + /** + * The limits that are imposed on automatic migrations. + * + * If set to None, then no automatic migration happens. + **/ + autoLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Migration progress. + * + * This stores the snapshot of the last migrated keys. It can be set into motion and move + * forward by any of the means provided by this pallet. + **/ + migrationProcess: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The maximum limits that the signed migration could use. + * + * If not set, no signed submission is allowed. + **/ + signedMigrationMaxLimits: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + system: { + /** + * The full account information for a particular account ID. + **/ + account: AugmentedQuery Observable, [AccountId32]> & QueryableStorageEntry; + /** + * Total length (in bytes) for all extrinsics put together, for the current block. + **/ + allExtrinsicsLen: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * `Some` if a code upgrade has been authorized. + **/ + authorizedUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Map of block numbers to block hashes. + **/ + blockHash: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The current weight for the block. + **/ + blockWeight: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Digest of the current block, also part of the block header. + **/ + digest: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The number of events in the `Events` list. + **/ + eventCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Events deposited for the current block. + * + * NOTE: The item is unbound and should therefore never be read on chain. + * It could otherwise inflate the PoV size of a block. + * + * Events have a large in-memory size. Box the events to not go out-of-memory + * just in case someone still reads them from within the runtime. + **/ + events: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Mapping between a topic (represented by T::Hash) and a vector of indexes + * of events in the `>` list. + * + * All topic vectors have deterministic storage locations depending on the topic. This + * allows light-clients to leverage the changes trie storage tracking mechanism and + * in case of changes fetch the list of events of interest. + * + * The value has the type `(BlockNumberFor, EventIndex)` because if we used only just + * the `EventIndex` then in case if the topic has the same contents on the next block + * no notification will be triggered thus the event might be lost. + **/ + eventTopics: AugmentedQuery Observable>>, [H256]> & QueryableStorageEntry; + /** + * The execution phase of the block. + **/ + executionPhase: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Total extrinsics count for the current block. + **/ + extrinsicCount: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Extrinsics data for the current block (maps an extrinsic's index to its data). + **/ + extrinsicData: AugmentedQuery Observable, [u32]> & QueryableStorageEntry; + /** + * The weight reclaimed for the extrinsic. + * + * This information is available until the end of the extrinsic execution. + * More precisely this information is removed in `note_applied_extrinsic`. + * + * Logic doing some post dispatch weight reduction must update this storage to avoid duplicate + * reduction. + **/ + extrinsicWeightReclaimed: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Whether all inherents have been applied. + **/ + inherentsApplied: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened. + **/ + lastRuntimeUpgrade: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The current block number being processed. Set by `execute_block`. + **/ + number: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Hash of the previous block. + **/ + parentHash: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that AccountInfo contains three types of `RefCount`. False + * (default) if not. + **/ + upgradedToTripleRefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * True if we have upgraded so that `type RefCount` is `u32`. False (default) if not. + **/ + upgradedToU32RefCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + timestamp: { + /** + * Whether the timestamp has been updated in this block. + * + * This value is updated to `true` upon successful submission of a timestamp by a node. + * It is then checked at the end of each block execution in the `on_finalize` hook. + **/ + didUpdate: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The current time for the current block. + **/ + now: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + transactionPayment: { + nextFeeMultiplier: AugmentedQuery Observable, []> & QueryableStorageEntry; + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + treasury: { + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposal indices that have been approved but not yet awarded. + **/ + approvals: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * The amount which has been reported as inactive to Currency. + **/ + deactivated: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The blocknumber for the last triggered spend period. + **/ + lastSpendPeriod: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Number of proposals that have been made. + **/ + proposalCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * DEPRECATED: associated with `spend_local` call and will be removed in May 2025. + * Refer to for migration to `spend`. + * + * Proposals that have been made. + **/ + proposals: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * The count of spends that have been made. + **/ + spendCount: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Spends that have been approved and being processed. + **/ + spends: AugmentedQuery Observable>, [u32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + vesting: { + /** + * Storage version of the pallet. + * + * New networks start with latest version, as determined by the genesis build. + **/ + storageVersion: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Information regarding the vesting of a given account. + **/ + vesting: AugmentedQuery Observable>>, [AccountId32]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + voterList: { + /** + * Counter for the related counted storage map + **/ + counterForListNodes: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * A bag stored in storage. + * + * Stores a `Bag` struct, which stores head and tail pointers to itself. + **/ + listBags: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * A single node, within some bag. + * + * Nodes store links forward and back within their respective bags. + **/ + listNodes: AugmentedQuery Observable>, [AccountId32]> & QueryableStorageEntry; + /** + * Lock all updates to this pallet. + * + * If any nodes needs updating, removal or addition due to a temporary lock, the + * [`Call::rebag`] can be used. + **/ + lock: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Pointer that remembers the next node that will be auto-rebagged. + * When `None`, the next scan will start from the list head again. + **/ + nextNodeAutoRebagged: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + whitelist: { + whitelistedCall: AugmentedQuery Observable>, [H256]> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + xcmPallet: { + /** + * The existing asset traps. + * + * Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of + * times this pair has been trapped (usually just 1 if it exists at all). + **/ + assetTraps: AugmentedQuery Observable, [H256]> & QueryableStorageEntry; + /** + * Map of authorized aliasers of local origins. Each local location can authorize a list of + * other locations to alias into it. Each aliaser is only valid until its inner `expiry` + * block number. + **/ + authorizedAliases: AugmentedQuery Observable>, [XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The current migration's stage, if any. + **/ + currentMigration: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on this chain. + **/ + lockedFungibles: AugmentedQuery Observable>>>, [AccountId32]> & QueryableStorageEntry; + /** + * The ongoing queries. + **/ + queries: AugmentedQuery Observable>, [u64]> & QueryableStorageEntry; + /** + * The latest available query index. + **/ + queryCounter: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally + * will be stored here. + * Runtime APIs can fetch the XCM that was executed by accessing this value. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + recordedXcm: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * Fungible assets which we know are locked on a remote chain. + **/ + remoteLockedFungibles: AugmentedQuery Observable>, [u32, AccountId32, XcmVersionedAssetId]> & QueryableStorageEntry; + /** + * Default version to encode XCM when latest version of destination is unknown. If `None`, + * then the destinations whose XCM version is unknown are considered unreachable. + **/ + safeXcmVersion: AugmentedQuery Observable>, []> & QueryableStorageEntry; + /** + * Whether or not incoming XCMs (both executed locally and received) should be recorded. + * Only one XCM program will be recorded at a time. + * This is meant to be used in runtime APIs, and it's advised it stays false + * for all other use cases, so as to not degrade regular performance. + * + * Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`] + * implementation in the XCM executor configuration. + **/ + shouldRecordXcm: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * The Latest versions that we know various locations support. + **/ + supportedVersion: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Destinations whose latest XCM version we would like to know. Duplicates not allowed, and + * the `u32` counter is the number of times that a send to the destination has been attempted, + * which is used as a prioritization. + **/ + versionDiscoveryQueue: AugmentedQuery Observable>>, []> & QueryableStorageEntry; + /** + * All locations that we have requested version notifications from. + **/ + versionNotifiers: AugmentedQuery Observable>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * The target locations that are subscribed to our version changes, as well as the most recent + * of our versions we informed them of. + **/ + versionNotifyTargets: AugmentedQuery Observable>>, [u32, XcmVersionedLocation]> & QueryableStorageEntry; + /** + * Global suspension state of the XCM executor. + **/ + xcmExecutionSuspended: AugmentedQuery Observable, []> & QueryableStorageEntry; + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + }; + } // AugmentedQueries +} // declare module diff --git a/packages/api-augment/src/pezkuwi/registry.ts b/packages/api-augment/src/pezkuwi/registry.ts new file mode 100644 index 0000000..82fdb0a --- /dev/null +++ b/packages/api-augment/src/pezkuwi/registry.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/types-augment/registry/bizinikiwi'; +import '@pezkuwi/types-augment/registry/pezkuwi'; diff --git a/packages/api-augment/src/pezkuwi/runtime.ts b/packages/api-augment/src/pezkuwi/runtime.ts new file mode 100644 index 0000000..b825d3b --- /dev/null +++ b/packages/api-augment/src/pezkuwi/runtime.ts @@ -0,0 +1,621 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/calls'; + +import type { ApiTypes, AugmentedCall, DecoratedCallBase } from '@pezkuwi/api-base/types'; +import type { BTreeMap, BitVec, Bytes, Null, Option, Result, Text, Vec, bool, u128, u32, u64 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { OpaqueKeyOwnershipProof } from '@pezkuwi/types/interfaces/babe'; +import type { Extrinsic } from '@pezkuwi/types/interfaces/extrinsics'; +import type { OpaqueMetadata } from '@pezkuwi/types/interfaces/metadata'; +import type { AccountId32, H256, RuntimeCall, Slot } from '@pezkuwi/types/interfaces/runtime'; +import type { ParaId, ValidationCodeHash } from '@pezkuwi/types/interfaces/teyrchains'; +import type { PezframeSupportViewFunctionsViewFunctionDispatchError, PezframeSupportViewFunctionsViewFunctionId, PezkuwiCorePrimitivesInboundDownwardMessage, PezkuwiCorePrimitivesInboundHrmpMessage, PezkuwiPrimitivesV8ApprovalVotingParams, PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams, PezkuwiPrimitivesV8CandidateCommitments, PezkuwiPrimitivesV8DisputeState, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8GroupRotationInfo, PezkuwiPrimitivesV8OccupiedCoreAssumption, PezkuwiPrimitivesV8PersistedValidationData, PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8SessionInfo, PezkuwiPrimitivesV8SlashingDisputeProof, PezkuwiPrimitivesV8SlashingPendingSlashes, PezkuwiPrimitivesV8ValidatorAppPublic, PezkuwiPrimitivesV8ValidatorAppSignature, PezkuwiPrimitivesVstagingAsyncBackingBackingState, PezkuwiPrimitivesVstagingAsyncBackingConstraints, PezkuwiPrimitivesVstagingCandidateEvent, PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2, PezkuwiPrimitivesVstagingCoreState, PezkuwiPrimitivesVstagingScrapedOnChainVotes, PezkuwiRuntimeOriginCaller, PezpalletTransactionPaymentFeeDetails, PezpalletTransactionPaymentRuntimeDispatchInfo, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeConfiguration, PezspConsensusBabeEpoch, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyForkVotingProofOpaqueValue, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusBeefyMmrBeefyAuthoritySet, PezspConsensusBeefyValidatorSet, PezspConsensusGrandpaAppPublic, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspCoreCryptoKeyTypeId, PezspInherentsCheckInherentsResult, PezspInherentsInherentData, PezspMmrPrimitivesError, PezspMmrPrimitivesLeafProof, PezspRuntimeBlock, PezspRuntimeDispatchError, PezspRuntimeExtrinsicInclusionMode, PezspRuntimeHeader, PezspRuntimeTransactionValidityTransactionSource, PezspRuntimeTransactionValidityTransactionValidityError, PezspRuntimeTransactionValidityValidTransaction, PezspVersionRuntimeVersion, PezspWeightsWeightV2Weight, RelayCommonApisInflationInfo, XcmRuntimeApisConversionsError, XcmRuntimeApisDryRunCallDryRunEffects, XcmRuntimeApisDryRunError, XcmRuntimeApisDryRunXcmDryRunEffects, XcmRuntimeApisFeesError, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; +import type { IExtrinsic, Observable } from '@pezkuwi/types/types'; + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module '@pezkuwi/api-base/types/calls' { + interface AugmentedCalls { + /** 0xbc9d89904f5b923f/ */ + accountNonceApi: { + /** + * Get current account nonce of given `AccountId`. + **/ + accountNonce: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x687ad44ad37f03c2/ */ + authorityDiscoveryApi: { + /** + * Retrieve authority identifiers of the current and next authority set. + **/ + authorities: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xcbca25e39f142387/ */ + babeApi: { + /** + * Return the configuration for BABE. + **/ + configuration: AugmentedCall Observable>; + /** + * Returns information regarding the current epoch. + **/ + currentEpoch: AugmentedCall Observable>; + /** + * Returns the slot that started the current epoch. + **/ + currentEpochStart: AugmentedCall Observable>; + /** + * Generates a proof of key ownership for the given authority in the, current epoch. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `slot` as parameter the current, implementations ignores this parameter and instead relies on this, method being called at the correct block height, i.e. any point at, which the epoch for the given slot is live on-chain. Future, implementations will instead use indexed data through an offchain, worker, not requiring older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Returns information regarding the next epoch (which was already, previously announced). + **/ + nextEpoch: AugmentedCall Observable>; + /** + * Submits an unsigned extrinsic to report an equivocation. The caller, must provide the equivocation proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportEquivocationUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x49eaaf1b548a0cb0/ */ + beefyApi: { + /** + * Return the block number where BEEFY consensus is enabled/started + **/ + beefyGenesis: AugmentedCall Observable>>; + /** + * Generates a proof that the `prev_block_number` is part of the canonical chain at, `best_known_block_number`. + **/ + generateAncestryProof: AugmentedCall | null | Uint8Array | u32 | AnyNumber) => Observable>>; + /** + * Generates a proof of key ownership for the given authority in the, given set. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `set_id` as parameter the current, implementations ignores this parameter and instead relies on this, method being called at the correct block height, i.e. any point at, which the given set id is live on-chain. Future implementations will, instead use indexed data through an offchain worker, not requiring, older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a double voting equivocation. The caller, must provide the double voting proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportDoubleVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a fork voting equivocation. The caller, must provide the fork voting proof (the ancestry proof should be obtained using, `generate_ancestry_proof`) and a key ownership proof (should be obtained using, `generate_key_ownership_proof`). The extrinsic will be unsigned and should only, be accepted for local authorship (not to be broadcast to the network). This method, returns `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportForkVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Submits an unsigned extrinsic to report a future block voting equivocation. The caller, must provide the future block voting proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`)., The extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportFutureBlockVotingUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Return the current active BEEFY validator set + **/ + validatorSet: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x2a5e924655399e60/ */ + beefyMmrApi: { + /** + * Return the currently active BEEFY authority set proof. + **/ + authoritySetProof: AugmentedCall Observable>; + /** + * Return the next/queued BEEFY authority set proof. + **/ + nextAuthoritySetProof: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x40fe3ad401f8959a/ */ + blockBuilder: { + /** + * Apply the given extrinsic.,, Returns an inclusion outcome which specifies if this extrinsic is included in, this block or not. + **/ + applyExtrinsic: AugmentedCall Observable, PezspRuntimeTransactionValidityTransactionValidityError>>>; + /** + * Check that the inherents are valid. The inherent data will vary from chain to chain. + **/ + checkInherents: AugmentedCall Observable>; + /** + * Finish the current block. + **/ + finalizeBlock: AugmentedCall Observable>; + /** + * Generate inherent extrinsics. The inherent data will vary from chain to chain. + **/ + inherentExtrinsics: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xdf6acb689907609b/ */ + core: { + /** + * Execute the given block. + **/ + executeBlock: AugmentedCall Observable>; + /** + * Initialize a block with the given header and return the runtime executive mode. + **/ + initializeBlock: AugmentedCall Observable>; + /** + * Returns the version of the runtime. + **/ + version: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91b1c8b16328eb92/ */ + dryRunApi: { + /** + * Dry run call V2. + **/ + dryRunCall: AugmentedCall Observable>>; + /** + * Dry run XCM program + **/ + dryRunXcm: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xfbc577b9d747efd6/ */ + genesisBuilder: { + /** + * Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the, storage.,, In the case of a FRAME-based runtime, this function deserializes the full, `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the, provided JSON blob is incorrect or incomplete or the deserialization fails, an error, is returned.,, Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no, defaults will be used. + **/ + buildState: AugmentedCall Observable>>; + /** + * Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by, `id`.,, If `id` is `None` the function should return JSON blob representation of the default, `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default, `RuntimeGenesisConfig`.,, Otherwise function returns a JSON representation of the built-in, named, `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not, exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of, (potentially nested) key-value pairs that are intended for customizing the default, runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation, of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can, be used in `build_state` method. + **/ + getPreset: AugmentedCall | null | Uint8Array | Text | string) => Observable>>; + /** + * Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.,, The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If, no named presets are provided by the runtime the list is empty. + **/ + presetNames: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xed99c5acb25eedf5/ */ + grandpaApi: { + /** + * Get current GRANDPA authority set id. + **/ + currentSetId: AugmentedCall Observable>; + /** + * Generates a proof of key ownership for the given authority in the, given set. An example usage of this module is coupled with the, session historical module to prove that a given authority key is, tied to a given staking identity during a specific session. Proofs, of key ownership are necessary for submitting equivocation reports., NOTE: even though the API takes a `set_id` as parameter the current, implementations ignore this parameter and instead rely on this, method being called at the correct block height, i.e. any point at, which the given set id is live on-chain. Future implementations will, instead use indexed data through an offchain worker, not requiring, older states to be available. + **/ + generateKeyOwnershipProof: AugmentedCall Observable>>; + /** + * Get the current GRANDPA authorities and weights. This should not change except, for when changes are scheduled and the corresponding delay has passed.,, When called at block B, it will return the set of authorities that should be, used to finalize descendants of this block (B+1, B+2, ...). The block B itself, is finalized by the authorities from block B-1. + **/ + grandpaAuthorities: AugmentedCall Observable>>>; + /** + * Submits an unsigned extrinsic to report an equivocation. The caller, must provide the equivocation proof and a key ownership proof, (should be obtained using `generate_key_ownership_proof`). The, extrinsic will be unsigned and should only be accepted for local, authorship (not to be broadcast to the network). This method returns, `None` when creation of the extrinsic fails, e.g. if equivocation, reporting is disabled for the given runtime (i.e. this method is, hardcoded to return `None`). Only useful in an offchain context. + **/ + submitReportEquivocationUnsignedExtrinsic: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xc51ff1fa3f5d0cca/ */ + inflation: { + /** + * Return the current estimates of the inflation amount.,, This is marked as experimental in light of RFC#89. Nonetheless, its usage is highly, recommended over trying to read-storage, or re-create the onchain logic. + **/ + experimentalInflationPredictionInfo: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x9ffb505aa738d69c/ */ + locationToAccountApi: { + /** + * Converts `Location` to `AccountId`. + **/ + convertLocation: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37e397fc7c91f5e4/ */ + metadata: { + /** + * Returns the metadata of a runtime. + **/ + metadata: AugmentedCall Observable>; + /** + * Returns the metadata at a given version.,, If the given `version` isn't supported, this will return `None`., Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime. + **/ + metadataAtVersion: AugmentedCall Observable>>; + /** + * Returns the supported metadata versions.,, This can be used to call `metadata_at_version`. + **/ + metadataVersions: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x91d5df18b0d2cf58/ */ + mmrApi: { + /** + * Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,, use historical MMR state at given block height `n`. Else, use current MMR state. + **/ + generateProof: AugmentedCall | (u32 | AnyNumber | Uint8Array)[], best_known_block_number: Option | null | Uint8Array | u32 | AnyNumber) => Observable, PezspMmrPrimitivesLeafProof]>, PezspMmrPrimitivesError>>>; + /** + * Return the number of MMR blocks in the chain. + **/ + mmrLeafCount: AugmentedCall Observable>>; + /** + * Return the on-chain MMR root hash. + **/ + mmrRoot: AugmentedCall Observable>>; + /** + * Verify MMR proof against on-chain MMR for a batch of leaves.,, Note this function will use on-chain MMR root hash and check if the proof matches the hash., Note, the leaves should be sorted such that corresponding leaves and leaf indices have the, same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof] + **/ + verifyProof: AugmentedCall | (Bytes | string | Uint8Array)[], proof: PezspMmrPrimitivesLeafProof) => Observable>>; + /** + * Verify MMR proof against given root hash for a batch of leaves.,, Note this function does not require any on-chain storage - the, proof is verified against given MMR root hash.,, Note, the leaves should be sorted such that corresponding leaves and leaf indices have the, same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof] + **/ + verifyProofStateless: AugmentedCall | (Bytes | string | Uint8Array)[], proof: PezspMmrPrimitivesLeafProof) => Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x17a6bc0d0062aeb3/ */ + nominationPoolsApi: { + /** + * Returns the equivalent points of `new_funds` for a given pool. + **/ + balanceToPoints: AugmentedCall Observable>; + /** + * Returns true if the delegated funds of the pool `member` needs migration.,, Once a pool has successfully migrated to the strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the, member can be migrated from pool account to the member's account. Use, [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation), to migrate the funds of the pool member. + **/ + memberNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool member.,, If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on, chain. + **/ + memberPendingSlash: AugmentedCall Observable>; + /** + * Returns the total contribution of a pool member including any balance that is unbonding. + **/ + memberTotalBalance: AugmentedCall Observable>; + /** + * Returns the pending rewards for the member that the AccountId was given for. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Returns the equivalent balance of `points` for a given pool. + **/ + pointsToBalance: AugmentedCall Observable>; + /** + * Returns the bonded account and reward account associated with the pool_id. + **/ + poolAccounts: AugmentedCall Observable>>; + /** + * Total balance contributed to the pool. + **/ + poolBalance: AugmentedCall Observable>; + /** + * Returns true if the pool with `pool_id` needs migration.,, This can happen when the `pallet-nomination-pools` has switched to using strategy, [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool, still has funds that were staked using the older strategy, [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use, [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake), to migrate the pool. + **/ + poolNeedsDelegateMigration: AugmentedCall Observable>; + /** + * Returns the pending slash for a given pool. + **/ + poolPendingSlash: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf78b278be53f454c/ */ + offchainWorkerApi: { + /** + * Starts the off-chain task for given block header. + **/ + offchainWorker: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xaf2c0297a23e6d3d/ */ + parachainHost: { + /** + * Approval voting configuration parameters + **/ + approvalVotingParams: AugmentedCall Observable>; + /** + * Returns the persisted validation data for the given `ParaId` along with the corresponding, validation code hash. Instead of accepting assumption about the para, matches the validation, data hash against an expected one and yields `None` if they're not equal. + **/ + assumedValidationData: AugmentedCall Observable>>>; + /** + * Returns candidate's acceptance limitations for asynchronous backing for a relay parent. + **/ + asyncBackingParams: AugmentedCall Observable>; + /** + * Yields information on all availability cores as relevant to the child block., Cores are either free or occupied. Free cores can have paras assigned to them. + **/ + availabilityCores: AugmentedCall Observable>>; + /** + * Returns the constraints on the actions that can be taken by a new parachain, block. + **/ + backingConstraints: AugmentedCall Observable>>; + /** + * Get a vector of events concerning candidates that occurred within a block. + **/ + candidateEvents: AugmentedCall Observable>>; + /** + * Get the receipt of a candidate pending availability. This returns `Some` for any paras, assigned to occupied cores in `availability_cores` and `None` otherwise. + **/ + candidatePendingAvailability: AugmentedCall Observable>>; + /** + * Elastic scaling support + **/ + candidatesPendingAvailability: AugmentedCall Observable>>; + /** + * Checks if the given validation outputs pass the acceptance criteria. + **/ + checkValidationOutputs: AugmentedCall Observable>; + /** + * Claim queue + **/ + claimQueue: AugmentedCall Observable>>>; + /** + * Returns a list of all disabled validators at the given block. + **/ + disabledValidators: AugmentedCall Observable>>; + /** + * Returns all onchain disputes. + **/ + disputes: AugmentedCall Observable>>>; + /** + * Get all the pending inbound messages in the downward message queue for a para. + **/ + dmqContents: AugmentedCall Observable>>; + /** + * Get the contents of all channels addressed to the given recipient. Channels that have no, messages in them are also included. + **/ + inboundHrmpChannelsContents: AugmentedCall Observable>>>; + /** + * Returns a merkle proof of a validator session key., NOTE: This function is only available since parachain host version 5. + **/ + keyOwnershipProof: AugmentedCall Observable>>; + /** + * Get the minimum number of backing votes for a parachain candidate., This is a staging method! Do not use on production runtimes! + **/ + minimumBackingVotes: AugmentedCall Observable>; + /** + * Get node features., This is a staging method! Do not use on production runtimes! + **/ + nodeFeatures: AugmentedCall Observable>; + /** + * Scrape dispute relevant from on-chain, backing votes and resolved disputes. + **/ + onChainVotes: AugmentedCall Observable>>; + /** + * Returns the state of parachain backing for a given para. + **/ + paraBackingState: AugmentedCall Observable>>; + /** + * Yields the persisted validation data for the given `ParaId` along with an assumption that, should be used if the para currently occupies a core.,, Returns `None` if either the para is not registered or the assumption is `Freed`, and the para already occupies a core. + **/ + persistedValidationData: AugmentedCall Observable>>; + /** + * Returns code hashes of PVFs that require pre-checking by validators in the active set.,, NOTE: This function is only available since parachain host version 2. + **/ + pvfsRequirePrecheck: AugmentedCall Observable>>; + /** + * Retrieve the scheduling lookahead + **/ + schedulingLookahead: AugmentedCall Observable>; + /** + * Returns execution parameters for the session. + **/ + sessionExecutorParams: AugmentedCall Observable>>; + /** + * Returns the session index expected at a child of the block.,, This can be used to instantiate a `SigningContext`. + **/ + sessionIndexForChild: AugmentedCall Observable>; + /** + * Get the session info for the given session, if stored.,, NOTE: This function is only available since parachain host version 2. + **/ + sessionInfo: AugmentedCall Observable>>; + /** + * Submits a PVF pre-checking statement into the transaction pool.,, NOTE: This function is only available since parachain host version 2. + **/ + submitPvfCheckStatement: AugmentedCall Observable>; + /** + * Submit an unsigned extrinsic to slash validators who lost a dispute about, a candidate of a past session., NOTE: This function is only available since parachain host version 5. + **/ + submitReportDisputeLost: AugmentedCall Observable>>; + /** + * Returns a list of validators that lost a past session dispute and need to be slashed., NOTE: This function is only available since parachain host version 5. + **/ + unappliedSlashes: AugmentedCall Observable>>>; + /** + * Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.,, Returns `None` if either the para is not registered or the assumption is `Freed`, and the para already occupies a core. + **/ + validationCode: AugmentedCall Observable>>; + /** + * Retrieve the maximum uncompressed code size. + **/ + validationCodeBombLimit: AugmentedCall Observable>; + /** + * Get the validation code from its hash. + **/ + validationCodeByHash: AugmentedCall Observable>>; + /** + * Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.,, NOTE: This function is only available since parachain host version 2. + **/ + validationCodeHash: AugmentedCall Observable>>; + /** + * Returns the validator groups and rotation info localized based on the hypothetical child, of a block whose state this is invoked on. Note that `now` in the `GroupRotationInfo`, should be the successor of the number of the block. + **/ + validatorGroups: AugmentedCall Observable>, PezkuwiPrimitivesV8GroupRotationInfo]>>>; + /** + * Get the current validators. + **/ + validators: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xccd9de6396c899ca/ */ + runtimeViewFunction: { + /** + * Execute a view function query. + **/ + executeViewFunction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xab3c0572291feb8b/ */ + sessionKeys: { + /** + * Decode the given public session keys.,, Returns the list of public raw public keys + key type. + **/ + decodeSessionKeys: AugmentedCall Observable>>>>; + /** + * Generate a set of session keys with optionally using the given seed., The keys should be stored within the keystore exposed via runtime, externalities.,, The seed needs to be a valid `utf8` string.,, Returns the concatenated SCALE encoded public keys. + **/ + generateSessionKeys: AugmentedCall | null | Uint8Array | Bytes | string) => Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x18ef58a3b67ba770/ */ + stakingApi: { + /** + * Returns the page count of exposures for a validator `account` in a given era. + **/ + erasStakersPageCount: AugmentedCall Observable>; + /** + * Returns the nominations quota for a nominator with a given balance. + **/ + nominationsQuota: AugmentedCall Observable>; + /** + * Returns true if validator `account` has pages to be claimed for the given era. + **/ + pendingRewards: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xd2bc9897eed08f15/ */ + taggedTransactionQueue: { + /** + * Validate the transaction.,, This method is invoked by the transaction pool to learn details about given transaction., The implementation should make sure to verify the correctness of the transaction, against current state. The given `block_hash` corresponds to the hash of the block, that is used as current state.,, Note that this call may be performed by the pool multiple times and transactions, might be verified in any possible order. + **/ + validateTransaction: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x37c8bb1350a9a2a8/ */ + transactionPaymentApi: { + /** + * + **/ + queryFeeDetails: AugmentedCall Observable>; + /** + * + **/ + queryInfo: AugmentedCall Observable>; + /** + * + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0xf3ff14d5ab527059/ */ + transactionPaymentCallApi: { + /** + * Query fee details of a given encoded `Call`. + **/ + queryCallFeeDetails: AugmentedCall Observable>; + /** + * Query information of a dispatch class, weight, and fee of a given encoded `Call`. + **/ + queryCallInfo: AugmentedCall Observable>; + /** + * Query the output of the current `LengthToFee` given some input. + **/ + queryLengthToFee: AugmentedCall Observable>; + /** + * Query the output of the current `WeightToFee` given some input. + **/ + queryWeightToFee: AugmentedCall Observable>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + /** 0x6ff52ee858e6c5bd/ */ + xcmPaymentApi: { + /** + * Returns a list of acceptable payment assets.,, # Arguments,, * `xcm_version`: Version. + **/ + queryAcceptablePaymentAssets: AugmentedCall Observable, XcmRuntimeApisFeesError>>>; + /** + * Get delivery fees for sending a specific `message` to a `destination`., These always come in a specific asset, defined by the chain.,, # Arguments, * `message`: The message that'll be sent, necessary because most delivery fees are based on the, size of the message., * `destination`: The destination to send the message to. Different destinations may use, different senders that charge different fees. + **/ + queryDeliveryFees: AugmentedCall Observable>>; + /** + * Converts a weight into a fee for the specified `AssetId`.,, # Arguments,, * `weight`: convertible `Weight`., * `asset`: `VersionedAssetId`. + **/ + queryWeightToAssetFee: AugmentedCall Observable>>; + /** + * Returns a weight needed to execute a XCM.,, # Arguments,, * `message`: `VersionedXcm`. + **/ + queryXcmWeight: AugmentedCall Observable>>; + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + }; + } // AugmentedCalls +} // declare module diff --git a/packages/api-augment/src/pezkuwi/tx.ts b/packages/api-augment/src/pezkuwi/tx.ts new file mode 100644 index 0000000..2a2071a --- /dev/null +++ b/packages/api-augment/src/pezkuwi/tx.ts @@ -0,0 +1,4239 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/submittable'; + +import type { ApiTypes, AugmentedSubmittable, SubmittableExtrinsic, SubmittableExtrinsicFunction } from '@pezkuwi/api-base/types'; +import type { Bytes, Compact, Option, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AnyNumber, IMethod, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, MultiAddress, Perbill, Percent, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; +import type { PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime, PezkuwiPrimitivesV8ApprovalVotingParams, PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8SchedulerParams, PezkuwiPrimitivesV8ValidatorAppSignature, PezkuwiPrimitivesVstagingDisputeProof, PezkuwiPrimitivesVstagingInherentData, PezkuwiRuntimeCommonClaimsEcdsaSignature, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeConstantsProxyProxyType, PezkuwiRuntimeOriginCaller, PezkuwiRuntimeSessionKeys, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBalancesAdjustmentDirection, PezpalletBrokerCoretimeInterfaceCoreAssignment, PezpalletConvictionVotingConviction, PezpalletConvictionVotingVoteAccountVote, PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletMultisigTimepoint, PezpalletNominationPoolsBondExtra, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpPerbill, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsPoolState, PezpalletRcMigratorManagerMultisigVote, PezpalletRcMigratorMigrationSettings, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletStakingAsyncAhClientOperatingMode, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingRewardDestination, PezpalletStakingUnlockChunk, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletStateTrieMigrationProgress, PezpalletVestingVestingInfo, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyForkVotingProofAncestryProof, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspNposElectionsElectionScore, PezspNposElectionsSupport, PezspRuntimeMultiSignature, PezspRuntimeMultiSigner, PezspSessionMembershipProof, PezspWeightsWeightV2Weight, StagingXcmExecutorAssetTransferTransferType, StagingXcmV5Location, StagingXcmV5Response, XcmV3WeightLimit, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedXcm } from '@pezkuwi/types/lookup'; + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = SubmittableExtrinsicFunction; + +declare module '@pezkuwi/api-base/types/submittable' { + interface AugmentedSubmittables { + assetRate: { + /** + * Initialize a conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + create: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Remove an existing conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + remove: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset]>; + /** + * Update the conversion rate to native balance for the given asset. + * + * ## Complexity + * - O(1) + **/ + update: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, rate: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, u128]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + auctions: { + /** + * Make a new bid from an account (including a parachain account) for deploying a new + * parachain. + * + * Multiple simultaneous bids from the same bidder are allowed only as long as all active + * bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted. + * + * - `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and + * funded by) the same account. + * - `auction_index` is the index of the auction to bid on. Should just be the present + * value of `AuctionCounter`. + * - `first_slot` is the first lease period index of the range to bid on. This is the + * absolute lease period index value, not an auction-specific offset. + * - `last_slot` is the last lease period index of the range to bid on. This is the + * absolute lease period index value, not an auction-specific offset. + * - `amount` is the amount to bid to be held as deposit for the parachain should the + * bid win. This amount is held throughout the range. + **/ + bid: AugmentedSubmittable<(para: Compact | AnyNumber | Uint8Array, auctionIndex: Compact | AnyNumber | Uint8Array, firstSlot: Compact | AnyNumber | Uint8Array, lastSlot: Compact | AnyNumber | Uint8Array, amount: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Compact, Compact, Compact]>; + /** + * Cancel an in-progress auction. + * + * Can only be called by Root origin. + **/ + cancelAuction: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a new auction. + * + * This can only happen when there isn't already an auction in progress and may only be + * called by the root origin. Accepts the `duration` of this auction and the + * `lease_period_index` of the initial lease period of the four that are to be auctioned. + **/ + newAuction: AugmentedSubmittable<(duration: Compact | AnyNumber | Uint8Array, leasePeriodIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + babe: { + /** + * Plan an epoch config change. The epoch config change is recorded and will be enacted on + * the next call to `enact_epoch_change`. The config will be activated one epoch after. + * Multiple calls to this method will replace any existing planned config change that had + * not been enacted yet. + **/ + planConfigChange: AugmentedSubmittable<(config: PezspConsensusBabeDigestsNextConfigDescriptor) => SubmittableExtrinsic, [PezspConsensusBabeDigestsNextConfigDescriptor]>; + /** + * Report authority equivocation/misbehavior. This method will verify + * the equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence will + * be reported. + **/ + reportEquivocation: AugmentedSubmittable<(equivocationProof: PezspConsensusSlotsEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusSlotsEquivocationProof, PezspSessionMembershipProof]>; + /** + * Report authority equivocation/misbehavior. This method will verify + * the equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence will + * be reported. + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusSlotsEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusSlotsEquivocationProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + balances: { + /** + * Burn the specified liquid free balance from the origin account. + * + * If the origin's account ends up below the existential deposit as a result + * of the burn and `keep_alive` is false, the account will be reaped. + * + * Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible, + * this `burn` operation will reduce total issuance by the amount _burned_. + **/ + burn: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [Compact, bool]>; + /** + * Adjust the total issuance in a saturating way. + * + * Can only be called by root and always needs a positive `delta`. + * + * # Example + **/ + forceAdjustTotalIssuance: AugmentedSubmittable<(direction: PezpalletBalancesAdjustmentDirection, delta: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezpalletBalancesAdjustmentDirection, Compact]>; + /** + * Set the regular balance of a given account. + * + * The dispatch origin for this call is `root`. + **/ + forceSetBalance: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, newFree: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Exactly as `transfer_allow_death`, except the origin must be root and the source account + * may be specified. + **/ + forceTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Compact]>; + /** + * Unreserve some balance from a user by force. + * + * Can only be called by ROOT. + **/ + forceUnreserve: AugmentedSubmittable<(who: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u128]>; + /** + * Transfer the entire transferable balance from the caller account. + * + * NOTE: This function only attempts to transfer _transferable_ balances. This means that + * any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be + * transferred by this function. To ensure that this function results in a killed account, + * you might need to prepare the account by removing any reference counters, storage + * deposits, etc... + * + * The dispatch origin of this call must be Signed. + * + * - `dest`: The recipient of the transfer. + * - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all + * of the funds the account has, causing the sender account to be killed (false), or + * transfer everything except at least the existential deposit, which will guarantee to + * keep the sender account alive (true). + **/ + transferAll: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, keepAlive: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, bool]>; + /** + * Transfer some liquid free balance to another account. + * + * `transfer_allow_death` will set the `FreeBalance` of the sender and receiver. + * If the sender's account is below the existential deposit as a result + * of the transfer, the account will be reaped. + * + * The dispatch origin for this call must be `Signed` by the transactor. + **/ + transferAllowDeath: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Same as the [`transfer_allow_death`] call, but with a check that the transfer will not + * kill the origin account. + * + * 99% of the time you want [`transfer_allow_death`] instead. + * + * [`transfer_allow_death`]: struct.Pallet.html#method.transfer + **/ + transferKeepAlive: AugmentedSubmittable<(dest: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Upgrade a specified account. + * + * - `origin`: Must be `Signed`. + * - `who`: The account to be upgraded. + * + * This will waive the transaction fee if at least all but 10% of the accounts needed to + * be upgraded. (We let some not have to be upgraded just in order to allow for the + * possibility of churn). + **/ + upgradeAccounts: AugmentedSubmittable<(who: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + beefy: { + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + **/ + reportDoubleVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyDoubleVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyDoubleVotingProof, PezspSessionMembershipProof]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportDoubleVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyDoubleVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyDoubleVotingProof, PezspSessionMembershipProof]>; + /** + * Report fork voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + **/ + reportForkVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyForkVotingProofAncestryProof, PezspSessionMembershipProof]>; + /** + * Report fork voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportForkVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyForkVotingProofAncestryProof, PezspSessionMembershipProof]>; + /** + * Report future block voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + **/ + reportFutureBlockVoting: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyFutureBlockVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyFutureBlockVotingProof, PezspSessionMembershipProof]>; + /** + * Report future block voting equivocation. This method will verify the equivocation proof + * and validate the given key ownership proof against the extracted offender. + * If both are valid, the offence will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportFutureBlockVotingUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusBeefyFutureBlockVotingProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusBeefyFutureBlockVotingProof, PezspSessionMembershipProof]>; + /** + * Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the + * future. + * + * Note: `delay_in_blocks` has to be at least 1. + **/ + setNewGenesis: AugmentedSubmittable<(delayInBlocks: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + bounties: { + /** + * Accept the curator role for a bounty. + * A deposit will be reserved from curator and refund upon successful payout. + * + * May only be called from the curator. + * + * ## Complexity + * - O(1). + **/ + acceptCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve a bounty proposal. At a later time, the bounty will be funded and become active + * and the original deposit will be returned. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + approveBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Approve bountry and propose a curator simultaneously. + * This call is a shortcut to calling `approve_bounty` and `propose_curator` separately. + * + * May only be called from `T::SpendOrigin`. + * + * - `bounty_id`: Bounty ID to approve. + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * + * ## Complexity + * - O(1). + **/ + approveBountyWithCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Award bounty to a beneficiary account. The beneficiary will be able to claim the funds + * after a delay. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to award. + * - `beneficiary`: The beneficiary account whom will receive the payout. + * + * ## Complexity + * - O(1). + **/ + awardBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Claim the payout from an awarded bounty after payout delay. + * + * The dispatch origin for this call must be the beneficiary of this bounty. + * + * - `bounty_id`: Bounty ID to claim. + * + * ## Complexity + * - O(1). + **/ + claimBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel a proposed or active bounty. All the funds will be sent to treasury and + * the curator deposit will be unreserved if possible. + * + * Only `T::RejectOrigin` is able to cancel a bounty. + * + * - `bounty_id`: Bounty ID to cancel. + * + * ## Complexity + * - O(1). + **/ + closeBounty: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Extend the expiry time of an active bounty. + * + * The dispatch origin for this call must be the curator of this bounty. + * + * - `bounty_id`: Bounty ID to extend. + * - `remark`: additional information. + * + * ## Complexity + * - O(1). + **/ + extendBountyExpiry: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Poke the deposit reserved for creating a bounty proposal. + * + * This can be used by accounts to update their reserved amount. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `bounty_id`: The bounty id for which to adjust the deposit. + * + * If the deposit is updated, the difference will be reserved/unreserved from the + * proposer's account. + * + * The transaction is made free if the deposit is updated and paid otherwise. + * + * Emits `DepositPoked` if the deposit is updated. + **/ + pokeDeposit: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose a new bounty. + * + * The dispatch origin for this call must be _Signed_. + * + * Payment: `TipReportDepositBase` will be reserved from the origin account, as well as + * `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval, + * or slashed when rejected. + * + * - `curator`: The curator account whom will manage this bounty. + * - `fee`: The curator fee. + * - `value`: The total payment amount of this bounty, curator fee included. + * - `description`: The description of this bounty. + **/ + proposeBounty: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Bytes]>; + /** + * Propose a curator to a funded bounty. + * + * May only be called from `T::SpendOrigin`. + * + * ## Complexity + * - O(1). + **/ + proposeCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a bounty. + * + * This function can only be called by the `RejectOrigin` a signed origin. + * + * If this function is called by the `RejectOrigin`, we assume that the curator is + * malicious or inactive. As a result, we will slash the curator when possible. + * + * If the origin is the curator, we take this as a sign they are unable to do their job and + * they willingly give up. We could slash them, but for now we allow them to recover their + * deposit and exit without issue. (We may want to change this if it is abused.) + * + * Finally, the origin can be anyone if and only if the curator is "inactive". This allows + * anyone in the community to call out that a curator is not doing their due diligence, and + * we should pick a new curator. In this case the curator should also be slashed. + * + * ## Complexity + * - O(1). + **/ + unassignCurator: AugmentedSubmittable<(bountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + childBounties: { + /** + * Accept the curator role for the child-bounty. + * + * The dispatch origin for this call must be the curator of this + * child-bounty. + * + * A deposit will be reserved from the curator and refund upon + * successful payout or cancellation. + * + * Fee for curator is deducted from curator fee of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "CuratorProposed" state, for processing the + * call. And state of child-bounty is moved to "Active" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + acceptCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Add a new child-bounty. + * + * The dispatch origin for this call must be the curator of parent + * bounty and the parent bounty must be in "active" state. + * + * Child-bounty gets added successfully & fund gets transferred from + * parent bounty to child-bounty account, if parent bounty has enough + * funds, else the call fails. + * + * Upper bound to maximum number of active child bounties that can be + * added are managed via runtime trait config + * [`Config::MaxActiveChildBountyCount`]. + * + * If the call is success, the status of child-bounty is updated to + * "Added". + * + * - `parent_bounty_id`: Index of parent bounty for which child-bounty is being added. + * - `value`: Value for executing the proposal. + * - `description`: Text description for the child-bounty. + **/ + addChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, description: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, Bytes]>; + /** + * Award child-bounty to a beneficiary. + * + * The beneficiary will be able to claim the funds after a delay. + * + * The dispatch origin for this call must be the parent curator or + * curator of this child-bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in active state, for processing the call. And + * state of child-bounty is moved to "PendingPayout" on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `beneficiary`: Beneficiary account. + **/ + awardChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress]>; + /** + * Claim the payout from an awarded child-bounty after payout delay. + * + * The dispatch origin for this call may be any signed origin. + * + * Call works independent of parent bounty state, No need for parent + * bounty to be in active state. + * + * The Beneficiary is paid out with agreed bounty value. Curator fee is + * paid & curator deposit is unreserved. + * + * Child-bounty must be in "PendingPayout" state, for processing the + * call. And instance of child-bounty is removed from the state on + * successful call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + claimChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Cancel a proposed or active child-bounty. Child-bounty account funds + * are transferred to parent bounty account. The child-bounty curator + * deposit may be unreserved if possible. + * + * The dispatch origin for this call must be either parent curator or + * `T::RejectOrigin`. + * + * If the state of child-bounty is `Active`, curator deposit is + * unreserved. + * + * If the state of child-bounty is `PendingPayout`, call fails & + * returns `PendingPayout` error. + * + * For the origin other than T::RejectOrigin, parent bounty must be in + * active state, for this child-bounty call to work. For origin + * T::RejectOrigin execution is forced. + * + * Instance of child-bounty is removed from the state on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + closeChildBounty: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Propose curator for funded child-bounty. + * + * The dispatch origin for this call must be curator of parent bounty. + * + * Parent bounty must be in active state, for this child-bounty call to + * work. + * + * Child-bounty must be in "Added" state, for processing the call. And + * state of child-bounty is moved to "CuratorProposed" on successful + * call completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + * - `curator`: Address of child-bounty curator. + * - `fee`: payment fee to child-bounty curator for execution. + **/ + proposeCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array, curator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, fee: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact, MultiAddress, Compact]>; + /** + * Unassign curator from a child-bounty. + * + * The dispatch origin for this call can be either `RejectOrigin`, or + * the curator of the parent bounty, or any signed origin. + * + * For the origin other than T::RejectOrigin and the child-bounty + * curator, parent bounty must be in active state, for this call to + * work. We allow child-bounty curator and T::RejectOrigin to execute + * this call irrespective of the parent bounty state. + * + * If this function is called by the `RejectOrigin` or the + * parent bounty curator, we assume that the child-bounty curator is + * malicious or inactive. As a result, child-bounty curator deposit is + * slashed. + * + * If the origin is the child-bounty curator, we take this as a sign + * that they are unable to do their job, and are willingly giving up. + * We could slash the deposit, but for now we allow them to unreserve + * their deposit and exit without issue. (We may want to change this if + * it is abused.) + * + * Finally, the origin can be anyone iff the child-bounty curator is + * "inactive". Expiry update due of parent bounty is used to estimate + * inactive state of child-bounty curator. + * + * This allows anyone in the community to call out that a child-bounty + * curator is not doing their due diligence, and we should pick a new + * one. In this case the child-bounty curator deposit is slashed. + * + * State of child-bounty is moved to Added state on successful call + * completion. + * + * - `parent_bounty_id`: Index of parent bounty. + * - `child_bounty_id`: Index of child bounty. + **/ + unassignCurator: AugmentedSubmittable<(parentBountyId: Compact | AnyNumber | Uint8Array, childBountyId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + claims: { + /** + * Attest to a statement, needed to finalize the claims process. + * + * WARNING: Insecure unless your chain includes `PrevalidateAttests` as a + * `TransactionExtension`. + * + * Unsigned Validation: + * A call to attest is deemed valid if the sender has a `Preclaim` registered + * and provides a `statement` which is expected for the account. + * + * Parameters: + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to do pre-validation on `attest` call. + * + * Total Complexity: O(1) + * + **/ + attest: AugmentedSubmittable<(statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make a claim to collect your DOTs. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to claim is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address) + * + * and `address` matches the `dest` account. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim` call. + * + * Total Complexity: O(1) + * + **/ + claim: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature]>; + /** + * Make a claim to collect your DOTs by signing a statement. + * + * The dispatch origin for this call must be _None_. + * + * Unsigned Validation: + * A call to `claim_attest` is deemed valid if the signature provided matches + * the expected signed message of: + * + * > Ethereum Signed Message: + * > (configured prefix string)(address)(statement) + * + * and `address` matches the `dest` account; the `statement` must match that which is + * expected according to your purchase arrangement. + * + * Parameters: + * - `dest`: The destination account to payout the claim. + * - `ethereum_signature`: The signature of an ethereum signed message matching the format + * described above. + * - `statement`: The identity of the statement which is being attested to in the + * signature. + * + * + * The weight of this call is invariant over the input parameters. + * Weight includes logic to validate unsigned `claim_attest` call. + * + * Total Complexity: O(1) + * + **/ + claimAttest: AugmentedSubmittable<(dest: AccountId32 | string | Uint8Array, ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature, statement: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, PezkuwiRuntimeCommonClaimsEcdsaSignature, Bytes]>; + /** + * Mint a new claim to collect DOTs. + * + * The dispatch origin for this call must be _Root_. + * + * Parameters: + * - `who`: The Ethereum address allowed to collect this claim. + * - `value`: The number of DOTs that will be claimed. + * - `vesting_schedule`: An optional vesting schedule for these DOTs. + * + * + * The weight of this call is invariant over the input parameters. + * We assume worst case that both vesting and statement is being inserted. + * + * Total Complexity: O(1) + * + **/ + mintClaim: AugmentedSubmittable<(who: PezkuwiRuntimeCommonClaimsEthereumAddress, value: u128 | AnyNumber | Uint8Array, vestingSchedule: Option> | null | Uint8Array | ITuple<[u128, u128, u32]> | [u128 | AnyNumber | Uint8Array, u128 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], statement: Option | null | Uint8Array | PezkuwiRuntimeCommonClaimsStatementKind) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, u128, Option>, Option]>; + moveClaim: AugmentedSubmittable<(old: PezkuwiRuntimeCommonClaimsEthereumAddress, updated: PezkuwiRuntimeCommonClaimsEthereumAddress, maybePreclaim: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsEthereumAddress, Option]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + configuration: { + /** + * Set approval-voting-params. + **/ + setApprovalVotingParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8ApprovalVotingParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8ApprovalVotingParams]>; + /** + * Set the asynchronous backing parameters. + **/ + setAsyncBackingParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams]>; + /** + * Setting this to true will disable consistency checks for the configuration setters. + * Use with caution. + **/ + setBypassConsistencyCheck: AugmentedSubmittable<(updated: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Set the acceptance period for an included candidate. + **/ + setCodeRetentionPeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of coretime execution cores. + * + * NOTE: that this configuration is managed by the coretime chain. Only manually change + * this, if you really know what you are doing! + **/ + setCoretimeCores: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the dispute period, in number of sessions to keep for disputes. + **/ + setDisputePeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the dispute post conclusion acceptance period. + **/ + setDisputePostConclusionAcceptancePeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set PVF executor parameters. + **/ + setExecutorParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8ExecutorParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8ExecutorParams]>; + /** + * Set the parachain validator-group rotation frequency + **/ + setGroupRotationFrequency: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of messages allowed in an HRMP channel at once. + **/ + setHrmpChannelMaxCapacity: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum size of a message that could ever be put into an HRMP channel. + **/ + setHrmpChannelMaxMessageSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum total size of messages in bytes allowed in an HRMP channel at once. + **/ + setHrmpChannelMaxTotalSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of outbound HRMP messages can be sent by a candidate. + **/ + setHrmpMaxMessageNumPerCandidate: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of inbound HRMP channels a parachain is allowed to accept. + **/ + setHrmpMaxParachainInboundChannels: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of outbound HRMP channels a parachain is allowed to open. + **/ + setHrmpMaxParachainOutboundChannels: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the number of sessions after which an HRMP open channel request expires. + **/ + setHrmpOpenRequestTtl: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the amount of funds that the recipient should provide for accepting opening an HRMP + * channel. + **/ + setHrmpRecipientDeposit: AugmentedSubmittable<(updated: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Sets the amount of funds that the sender should provide for opening an HRMP channel. + **/ + setHrmpSenderDeposit: AugmentedSubmittable<(updated: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Set the max validation code size for incoming upgrades. + **/ + setMaxCodeSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the critical downward message size. + **/ + setMaxDownwardMessageSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the max head data size for paras. + **/ + setMaxHeadDataSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the max POV block size for incoming upgrades. + **/ + setMaxPovSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum number of messages that a candidate can contain. + **/ + setMaxUpwardMessageNumPerCandidate: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum size of an upward message that can be sent by a candidate. + **/ + setMaxUpwardMessageSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum items that can present in a upward dispatch queue at once. + **/ + setMaxUpwardQueueCount: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the maximum total size of items that can present in a upward dispatch queue at + * once. + **/ + setMaxUpwardQueueSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the maximum number of validators to use in parachain consensus. + **/ + setMaxValidators: AugmentedSubmittable<(updated: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set the maximum number of validators to assign to any core. + **/ + setMaxValidatorsPerCore: AugmentedSubmittable<(updated: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Set the minimum backing votes threshold. + **/ + setMinimumBackingVotes: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Sets the minimum delay between announcing the upgrade block for a parachain until the + * upgrade taking place. + * + * See the field documentation for information and constraints for the new value. + **/ + setMinimumValidationUpgradeDelay: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the total number of delay tranches. + **/ + setNDelayTranches: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of validators needed to approve a block. + **/ + setNeededApprovals: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set/Unset a node feature. + **/ + setNodeFeature: AugmentedSubmittable<(index: u8 | AnyNumber | Uint8Array, value: bool | boolean | Uint8Array) => SubmittableExtrinsic, [u8, bool]>; + /** + * Set the no show slots, in number of number of consensus slots. + * Must be at least 1. + **/ + setNoShowSlots: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the on demand (parathreads) base fee. + **/ + setOnDemandBaseFee: AugmentedSubmittable<(updated: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128]>; + /** + * Set the on demand (parathreads) fee variability. + **/ + setOnDemandFeeVariability: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * Set the on demand (parathreads) queue max size. + **/ + setOnDemandQueueMaxSize: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the on demand (parathreads) fee variability. + **/ + setOnDemandTargetQueueUtilization: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * Set the availability period for paras. + **/ + setParasAvailabilityPeriod: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of session changes after which a PVF pre-checking voting is rejected. + **/ + setPvfVotingTtl: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion. + **/ + setRelayVrfModuloSamples: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set scheduler-params. + **/ + setSchedulerParams: AugmentedSubmittable<(updated: PezkuwiPrimitivesV8SchedulerParams) => SubmittableExtrinsic, [PezkuwiPrimitivesV8SchedulerParams]>; + /** + * Set the scheduling lookahead, in expected number of blocks at peak throughput. + **/ + setSchedulingLookahead: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the validation upgrade cooldown. + **/ + setValidationUpgradeCooldown: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the validation upgrade delay. + **/ + setValidationUpgradeDelay: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set the zeroth delay tranche width. + **/ + setZerothDelayTrancheWidth: AugmentedSubmittable<(updated: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + convictionVoting: { + /** + * Delegate the voting power (with some given conviction) of the sending account for a + * particular class of polls. + * + * The balance delegated is locked for as long as it's delegated, and thereafter for the + * time appropriate for the conviction's lock period. + * + * The dispatch origin of this call must be _Signed_, and the signing account must either: + * - be delegating already; or + * - have no voting activity (if there is, then it will need to be removed through + * `remove_vote`). + * + * - `to`: The account whose voting the `target` account's voting power will follow. + * - `class`: The class of polls to delegate. To delegate multiple classes, multiple calls + * to this function are required. + * - `conviction`: The conviction that will be attached to the delegated votes. When the + * account is undelegated, the funds will be locked for the corresponding period. + * - `balance`: The amount of the account's balance to be used in delegating. This must not + * be more than the account's current balance. + * + * Emits `Delegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + delegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, to: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, conviction: PezpalletConvictionVotingConviction, balance: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress, PezpalletConvictionVotingConviction, u128]>; + /** + * Remove a vote for a poll. + * + * If the `target` is equal to the signer, then this function is exactly equivalent to + * `remove_vote`. If not equal to the signer, then the vote must have expired, + * either because the poll was cancelled, because the voter lost the poll or + * because the conviction period is over. + * + * The dispatch origin of this call must be _Signed_. + * + * - `target`: The account of the vote to be removed; this account must have voted for poll + * `index`. + * - `index`: The index of poll of the vote to be removed. + * - `class`: The class of the poll. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeOtherVote: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, clazz: u16 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u16, u32]>; + /** + * Remove a vote for a poll. + * + * If: + * - the poll was cancelled, or + * - the poll is ongoing, or + * - the poll has ended such that + * - the vote of the account was in opposition to the result; or + * - there was no conviction to the account's vote; or + * - the account made a split vote + * ...then the vote is removed cleanly and a following call to `unlock` may result in more + * funds being available. + * + * If, however, the poll has ended and: + * - it finished corresponding to the vote of the account, and + * - the account made a standard vote with conviction, and + * - the lock period of the conviction is not over + * ...then the lock will be aggregated into the overall account's lock, which may involve + * *overlocking* (where the two locks are combined into a single lock that is the maximum + * of both the amount locked and the time is it locked for). + * + * The dispatch origin of this call must be _Signed_, and the signer must have a vote + * registered for poll `index`. + * + * - `index`: The index of poll of the vote to be removed. + * - `class`: Optional parameter, if given it indicates the class of the poll. For polls + * which have finished or are cancelled, this must be `Some`. + * + * Weight: `O(R + log R)` where R is the number of polls that `target` has voted on. + * Weight is calculated for the maximum number of vote. + **/ + removeVote: AugmentedSubmittable<(clazz: Option | null | Uint8Array | u16 | AnyNumber, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Option, u32]>; + /** + * Undelegate the voting power of the sending account for a particular class of polls. + * + * Tokens may be unlocked following once an amount of time consistent with the lock period + * of the conviction with which the delegation was issued has passed. + * + * The dispatch origin of this call must be _Signed_ and the signing account must be + * currently delegating. + * + * - `class`: The class of polls to remove the delegation from. + * + * Emits `Undelegated`. + * + * Weight: `O(R)` where R is the number of polls the voter delegating to has + * voted on. Weight is initially charged as if maximum votes, but is refunded later. + **/ + undelegate: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Remove the lock caused by prior voting/delegating which has expired within a particular + * class. + * + * The dispatch origin of this call must be _Signed_. + * + * - `class`: The class of polls to unlock. + * - `target`: The account to remove the lock on. + * + * Weight: `O(R)` with R number of vote of target. + **/ + unlock: AugmentedSubmittable<(clazz: u16 | AnyNumber | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [u16, MultiAddress]>; + /** + * Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal; + * otherwise it is a vote to keep the status quo. + * + * The dispatch origin of this call must be _Signed_. + * + * - `poll_index`: The index of the poll to vote for. + * - `vote`: The vote configuration. + * + * Weight: `O(R)` where R is the number of polls the voter has voted on. + **/ + vote: AugmentedSubmittable<(pollIndex: Compact | AnyNumber | Uint8Array, vote: PezpalletConvictionVotingVoteAccountVote) => SubmittableExtrinsic, [Compact, PezpalletConvictionVotingVoteAccountVote]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + coretime: { + /** + * Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is + * to be used. + * + * Parameters: + * -`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain. + * -`core`: The core that should be scheduled. + * -`begin`: The starting blockheight of the instruction. + * -`assignment`: How the blockspace should be utilised. + * -`end_hint`: An optional hint as to when this particular set of instructions will end. + **/ + assignCore: AugmentedSubmittable<(core: u16 | AnyNumber | Uint8Array, begin: u32 | AnyNumber | Uint8Array, assignment: Vec> | ([PezpalletBrokerCoretimeInterfaceCoreAssignment, u16 | AnyNumber | Uint8Array])[], endHint: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [u16, u32, Vec>, Option]>; + creditAccount: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u128]>; + /** + * Request the configuration to be updated with the specified number of cores. Warning: + * Since this only schedules a configuration update, it takes two sessions to come into + * effect. + * + * - `origin`: Root or the Coretime Chain + * - `count`: total number of cores + **/ + requestCoreCount: AugmentedSubmittable<(count: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Request to claim the instantaneous coretime sales revenue starting from the block it was + * last claimed until and up to the block specified. The claimed amount value is sent back + * to the Coretime chain in a `notify_revenue` message. At the same time, the amount is + * teleported to the Coretime chain. + **/ + requestRevenueAt: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + crowdloan: { + /** + * Add an optional memo to an existing crowdloan contribution. + * + * Origin must be Signed, and the user must have contributed to the crowdloan. + **/ + addMemo: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, memo: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Contribute to a crowd sale. This will transfer some balance over to fund a parachain + * slot. It will be withdrawable when the crowdloan has ended and the funds are unused. + **/ + contribute: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, value: Compact | AnyNumber | Uint8Array, signature: Option | null | Uint8Array | PezspRuntimeMultiSignature) => SubmittableExtrinsic, [Compact, Compact, Option]>; + /** + * Contribute your entire balance to a crowd sale. This will transfer the entire balance of + * a user over to fund a parachain slot. It will be withdrawable when the crowdloan has + * ended and the funds are unused. + **/ + contributeAll: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, signature: Option | null | Uint8Array | PezspRuntimeMultiSignature) => SubmittableExtrinsic, [Compact, Option]>; + /** + * Create a new crowdloaning campaign for a parachain slot with the given lease period + * range. + * + * This applies a lock to your parachain configuration, ensuring that it cannot be changed + * by the parachain manager. + **/ + create: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, cap: Compact | AnyNumber | Uint8Array, firstPeriod: Compact | AnyNumber | Uint8Array, lastPeriod: Compact | AnyNumber | Uint8Array, end: Compact | AnyNumber | Uint8Array, verifier: Option | null | Uint8Array | PezspRuntimeMultiSigner) => SubmittableExtrinsic, [Compact, Compact, Compact, Compact, Compact, Option]>; + /** + * Remove a fund after the retirement period has ended and all funds have been returned. + **/ + dissolve: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Edit the configuration for an in-progress crowdloan. + * + * Can only be called by Root origin. + **/ + edit: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array, cap: Compact | AnyNumber | Uint8Array, firstPeriod: Compact | AnyNumber | Uint8Array, lastPeriod: Compact | AnyNumber | Uint8Array, end: Compact | AnyNumber | Uint8Array, verifier: Option | null | Uint8Array | PezspRuntimeMultiSigner) => SubmittableExtrinsic, [Compact, Compact, Compact, Compact, Compact, Option]>; + /** + * Poke the fund into `NewRaise` + * + * Origin must be Signed, and the fund has non-zero raise. + **/ + poke: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Automatically refund contributors of an ended crowdloan. + * Due to weight restrictions, this function may need to be called multiple + * times to fully refund all users. We will refund `RemoveKeysLimit` users at a time. + * + * Origin must be signed, but can come from anyone. + **/ + refund: AugmentedSubmittable<(index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Withdraw full balance of a specific contributor. + * + * Origin must be signed, but can come from anyone. + * + * The fund must be either in, or ready for, retirement. For a fund to be *in* retirement, + * then the retirement flag must be set. For a fund to be ready for retirement, then: + * - it must not already be in retirement; + * - the amount of raised funds must be bigger than the _free_ balance of the account; + * - and either: + * - the block number must be at least `end`; or + * - the current lease period must be greater than the fund's `last_period`. + * + * In this case, the fund's retirement flag is set and its `end` is reset to the current + * block number. + * + * - `who`: The account whose contribution should be withdrawn. + * - `index`: The parachain to whose crowdloan the contribution was made. + **/ + withdraw: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, index: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + electionProviderMultiPhase: { + /** + * Trigger the governance fallback. + * + * This can only be called when [`Phase::Emergency`] is enabled, as an alternative to + * calling [`Call::set_emergency_election_result`]. + **/ + governanceFallback: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set a solution in the queue, to be handed out to the client of this pallet in the next + * call to `ElectionProvider::elect`. + * + * This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`. + * + * The solution is not checked for any feasibility and is assumed to be trustworthy, as any + * feasibility check itself can in principle cause the election process to fail (due to + * memory/weight constrains). + **/ + setEmergencyElectionResult: AugmentedSubmittable<(supports: Vec> | ([AccountId32 | string | Uint8Array, PezspNposElectionsSupport])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Set a new value for `MinimumUntrustedScore`. + * + * Dispatch origin must be aligned with `T::ForceOrigin`. + * + * This check can be turned off by setting the value to `None`. + **/ + setMinimumUntrustedScore: AugmentedSubmittable<(maybeNextScore: Option | null | Uint8Array | PezspNposElectionsElectionScore) => SubmittableExtrinsic, [Option]>; + /** + * Submit a solution for the signed phase. + * + * The dispatch origin fo this call must be __signed__. + * + * The solution is potentially queued, based on the claimed score and processed at the end + * of the signed phase. + * + * A deposit is reserved and recorded for the solution. Based on the outcome, the solution + * might be rewarded, slashed, or get all or a part of the deposit back. + **/ + submit: AugmentedSubmittable<(rawSolution: PezpalletElectionProviderMultiPhaseRawSolution) => SubmittableExtrinsic, [PezpalletElectionProviderMultiPhaseRawSolution]>; + /** + * Submit a solution for the unsigned phase. + * + * The dispatch origin fo this call must be __none__. + * + * This submission is checked on the fly. Moreover, this unsigned solution is only + * validated when submitted to the pool from the **local** node. Effectively, this means + * that only active validators can submit this transaction when authoring a block (similar + * to an inherent). + * + * To prevent any incorrect solution (and thus wasted time/weight), this transaction will + * panic if the solution submitted by the validator is invalid in any way, effectively + * putting their authoring reward at risk. + * + * No deposit or reward is associated with this submission. + **/ + submitUnsigned: AugmentedSubmittable<(rawSolution: PezpalletElectionProviderMultiPhaseRawSolution, witness: PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize) => SubmittableExtrinsic, [PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + fastUnstake: { + /** + * Control the operation of this pallet. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + * + * ## Details + * + * Can set the number of eras to check per block, and potentially other admin work. + * + * ## Events + * + * No events are emitted from this dispatch. + **/ + control: AugmentedSubmittable<(erasToCheck: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Deregister oneself from the fast-unstake. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be *signed* by whoever is permitted to call + * unbond funds by the staking system. See [`Config::Staking`]. + * + * ## Details + * + * This is useful if one is registered, they are still waiting, and they change their mind. + * + * Note that the associated stash is still fully unbonded and chilled as a consequence of + * calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed + * by a call to `rebond` in the staking system. + * + * ## Events + * + * Some events from the staking and currency system might be emitted. + **/ + deregister: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Register oneself for fast-unstake. + * + * ## Dispatch Origin + * + * The dispatch origin of this call must be *signed* by whoever is permitted to call + * unbond funds by the staking system. See [`Config::Staking`]. + * + * ## Details + * + * The stash associated with the origin must have no ongoing unlocking chunks. If + * successful, this will fully unbond and chill the stash. Then, it will enqueue the stash + * to be checked in further blocks. + * + * If by the time this is called, the stash is actually eligible for fast-unstake, then + * they are guaranteed to remain eligible, because the call will chill them as well. + * + * If the check works, the entire staking data is removed, i.e. the stash is fully + * unstaked. + * + * If the check fails, the stash remains chilled and waiting for being unbonded as in with + * the normal staking system, but they lose part of their unbonding chunks due to consuming + * the chain's resources. + * + * ## Events + * + * Some events from the staking and currency system might be emitted. + **/ + registerFastUnstake: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + grandpa: { + /** + * Note that the current authority set of the GRANDPA finality gadget has stalled. + * + * This will trigger a forced authority set change at the beginning of the next session, to + * be enacted `delay` blocks after that. The `delay` should be high enough to safely assume + * that the block signalling the forced change will not be re-orged e.g. 1000 blocks. + * The block production rate (which may be slowed down because of finality lagging) should + * be taken into account when choosing the `delay`. The GRANDPA voters based on the new + * authority will start voting on top of `best_finalized_block_number` for new finalized + * blocks. `best_finalized_block_number` should be the highest of the latest finalized + * block of all validators of the new authority set. + * + * Only callable by root. + **/ + noteStalled: AugmentedSubmittable<(delay: u32 | AnyNumber | Uint8Array, bestFinalizedBlockNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + **/ + reportEquivocation: AugmentedSubmittable<(equivocationProof: PezspConsensusGrandpaEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusGrandpaEquivocationProof, PezspSessionMembershipProof]>; + /** + * Report voter equivocation/misbehavior. This method will verify the + * equivocation proof and validate the given key ownership proof + * against the extracted offender. If both are valid, the offence + * will be reported. + * + * This extrinsic must be called unsigned and it is expected that only + * block authors will call it (validated in `ValidateUnsigned`), as such + * if the block author is defined it will be defined as the equivocation + * reporter. + **/ + reportEquivocationUnsigned: AugmentedSubmittable<(equivocationProof: PezspConsensusGrandpaEquivocationProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezspConsensusGrandpaEquivocationProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + hrmp: { + /** + * Establish a bidirectional HRMP channel between a parachain and a system chain. + * + * Arguments: + * + * - `target_system_chain`: A system chain, `ParaId`. + * + * The origin needs to be the parachain origin. + **/ + establishChannelWithSystem: AugmentedSubmittable<(targetSystemChain: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Establish an HRMP channel between two system chains. If the channel does not already + * exist, the transaction fees will be refunded to the caller. The system does not take + * deposits for channels between system chains, and automatically sets the message number + * and size limits to the maximum allowed by the network's configuration. + * + * Arguments: + * + * - `sender`: A system chain, `ParaId`. + * - `recipient`: A system chain, `ParaId`. + * + * Any signed origin can call this function, but _both_ inputs MUST be system chains. If + * the channel does not exist yet, there is no fee. + **/ + establishSystemChannel: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array, recipient: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * This extrinsic triggers the cleanup of all the HRMP storage items that a para may have. + * Normally this happens once per session, but this allows you to trigger the cleanup + * immediately for a specific parachain. + * + * Number of inbound and outbound channels for `para` must be provided as witness data. + * + * Origin must be the `ChannelManager`. + **/ + forceCleanHrmp: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, numInbound: u32 | AnyNumber | Uint8Array, numOutbound: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance, + * the `max_capacity` and `max_message_size` are still subject to the Relay Chain's + * configured limits. + * + * Expected use is when one (and only one) of the `ParaId`s involved in the channel is + * governed by the system, e.g. a system parachain. + * + * Origin must be the `ChannelManager`. + **/ + forceOpenHrmpChannel: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array, recipient: u32 | AnyNumber | Uint8Array, maxCapacity: u32 | AnyNumber | Uint8Array, maxMessageSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32, u32]>; + /** + * Force process HRMP close channel requests. + * + * If there are pending HRMP close channel requests, you can use this function to process + * all of those requests immediately. + * + * Total number of closing channels must be provided as witness data. + * + * Origin must be the `ChannelManager`. + **/ + forceProcessHrmpClose: AugmentedSubmittable<(channels: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force process HRMP open channel requests. + * + * If there are pending HRMP open channel requests, you can use this function to process + * all of those requests immediately. + * + * Total number of opening channels must be provided as witness data. + * + * Origin must be the `ChannelManager`. + **/ + forceProcessHrmpOpen: AugmentedSubmittable<(channels: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Accept a pending open channel request from the given sender. + * + * The channel will be opened only on the next session boundary. + **/ + hrmpAcceptOpenChannel: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * This cancels a pending open channel request. It can be canceled by either of the sender + * or the recipient for that request. The origin must be either of those. + * + * The cancellation happens immediately. It is not possible to cancel the request if it is + * already accepted. + * + * Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as + * witness data. + **/ + hrmpCancelOpenRequest: AugmentedSubmittable<(channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, openRequests: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, u32]>; + /** + * Initiate unilateral closing of a channel. The origin must be either the sender or the + * recipient in the channel being closed. + * + * The closure can only happen on a session change. + **/ + hrmpCloseChannel: AugmentedSubmittable<(channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId) => SubmittableExtrinsic, [PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId]>; + /** + * Initiate opening a channel from a parachain to a given recipient with given channel + * parameters. + * + * - `proposed_max_capacity` - specifies how many messages can be in the channel at once. + * - `proposed_max_message_size` - specifies the maximum size of the messages. + * + * These numbers are a subject to the relay-chain configuration limits. + * + * The channel can be opened only after the recipient confirms it and only on a session + * change. + **/ + hrmpInitOpenChannel: AugmentedSubmittable<(recipient: u32 | AnyNumber | Uint8Array, proposedMaxCapacity: u32 | AnyNumber | Uint8Array, proposedMaxMessageSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32, u32]>; + /** + * Update the deposits held for an HRMP channel to the latest `Configuration`. Channels + * with system chains do not require a deposit. + * + * Arguments: + * + * - `sender`: A chain, `ParaId`. + * - `recipient`: A chain, `ParaId`. + * + * Any signed origin can call this function. + **/ + pokeChannelDeposits: AugmentedSubmittable<(sender: u32 | AnyNumber | Uint8Array, recipient: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + indices: { + /** + * Assign an previously unassigned index. + * + * Payment: `Deposit` is reserved from the sender account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be claimed. This must not be in use. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + claim: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force an index to an account. This doesn't require a deposit. If the index is already + * held, then any deposit is reimbursed to its current owner. + * + * The dispatch origin for this call must be _Root_. + * + * - `index`: the index to be (re-)assigned. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * - `freeze`: if set to `true`, will freeze the index so it cannot be transferred. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + forceTransfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array, freeze: bool | boolean | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32, bool]>; + /** + * Free up an index owned by the sender. + * + * Payment: Any previous deposit placed for the index is unreserved in the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must own the index. + * + * - `index`: the index to be freed. This must be owned by the sender. + * + * Emits `IndexFreed` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + free: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Freeze an index so it will always point to the sender account. This consumes the + * deposit. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * - `index`: the index to be frozen in place. + * + * Emits `IndexFrozen` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + freeze: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Poke the deposit reserved for an index. + * + * The dispatch origin for this call must be _Signed_ and the signing account must have a + * non-frozen account `index`. + * + * The transaction fees is waived if the deposit is changed after poking/reconsideration. + * + * - `index`: the index whose deposit is to be poked/reconsidered. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Assign an index already owned by the sender to another account. The balance reservation + * is effectively transferred to the new account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `index`: the index to be re-assigned. This must be owned by the sender. + * - `new`: the new owner of the index. This function is a no-op if it is equal to sender. + * + * Emits `IndexAssigned` if successful. + * + * ## Complexity + * - `O(1)`. + **/ + transfer: AugmentedSubmittable<(updated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + initializer: { + /** + * Issue a signal to the consensus engine to forcibly act as though all parachain + * blocks in all relay chain blocks up to and including the given number in the current + * chain are valid and should be finalized. + **/ + forceApprove: AugmentedSubmittable<(upTo: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + messageQueue: { + /** + * Execute an overweight message. + * + * Temporary processing errors will be propagated whereas permanent errors are treated + * as success condition. + * + * - `origin`: Must be `Signed`. + * - `message_origin`: The origin from which the message to be executed arrived. + * - `page`: The page in the queue in which the message to be executed is sitting. + * - `index`: The index into the queue of the message to be executed. + * - `weight_limit`: The maximum amount of weight allowed to be consumed in the execution + * of the message. + * + * Benchmark complexity considerations: O(index + weight_limit). + **/ + executeOverweight: AugmentedSubmittable<(messageOrigin: PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, page: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array, weightLimit: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, u32, u32, PezspWeightsWeightV2Weight]>; + /** + * Remove a page which has no more messages remaining to be processed or is stale. + **/ + reapPage: AugmentedSubmittable<(messageOrigin: PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, pageIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + multisig: { + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call_hash`: The hash of the call to be executed. + * + * NOTE: If this is the final approval, you will want to use `as_multi` instead. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + approveAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, U8aFixed, PezspWeightsWeightV2Weight]>; + /** + * Register approval for a dispatch to be made from a deterministic composite account if + * approved by a total of `threshold - 1` of `other_signatories`. + * + * If there are enough, then dispatch the call. + * + * Payment: `DepositBase` will be reserved if this is the first approval, plus + * `threshold` times `DepositFactor`. It is returned once this dispatch happens or + * is cancelled. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is + * not the first approval, then it must be `Some`, with the timepoint (block number and + * transaction index) of the first approval transaction. + * - `call`: The call to be executed. + * + * NOTE: Unless this is the final approval, you will generally want to use + * `approve_as_multi` instead, since it only requires a hash of the call. + * + * Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise + * on success, result is `Ok` and the result from the interior call, if it was executed, + * may be found in the deposited `MultisigExecuted` event. + * + * ## Complexity + * - `O(S + Z + Call)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len. + * - One encode & hash, both of complexity `O(S)`. + * - Up to one binary search and insert (`O(logS + S)`). + * - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove. + * - One event. + * - The weight of the `call`. + * - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit + * taken for its lifetime of `DepositBase + threshold * DepositFactor`. + **/ + asMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], maybeTimepoint: Option | null | Uint8Array | PezpalletMultisigTimepoint, call: RuntimeCall | IMethod | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [u16, Vec, Option, RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Immediately dispatch a multi-signature call using a single approval from the caller. + * + * The dispatch origin for this call must be _Signed_. + * + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multi-signature, but do not participate in the approval process. + * - `call`: The call to be executed. + * + * Result is equivalent to the dispatched result. + * + * ## Complexity + * O(Z + C) where Z is the length of the call and C its execution weight. + **/ + asMultiThreshold1: AugmentedSubmittable<(otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [Vec, RuntimeCall]>; + /** + * Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously + * for this operation will be unreserved on success. + * + * The dispatch origin for this call must be _Signed_. + * + * - `threshold`: The total number of approvals for this dispatch before it is executed. + * - `other_signatories`: The accounts (other than the sender) who can approve this + * dispatch. May not be empty. + * - `timepoint`: The timepoint (block number and transaction index) of the first approval + * transaction for this dispatch. + * - `call_hash`: The hash of the call to be executed. + * + * ## Complexity + * - `O(S)`. + * - Up to one balance-reserve or unreserve operation. + * - One passthrough operation, one insert, both `O(S)` where `S` is the number of + * signatories. `S` is capped by `MaxSignatories`, with weight being proportional. + * - One encode & hash, both of complexity `O(S)`. + * - One event. + * - I/O: 1 read `O(S)`, one remove. + * - Storage: removes one item. + **/ + cancelAsMulti: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], timepoint: PezpalletMultisigTimepoint, callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, PezpalletMultisigTimepoint, U8aFixed]>; + /** + * Poke the deposit reserved for an existing multisig operation. + * + * The dispatch origin for this call must be _Signed_ and must be the original depositor of + * the multisig operation. + * + * The transaction fee is waived if the deposit amount has changed. + * + * - `threshold`: The total number of approvals needed for this multisig. + * - `other_signatories`: The accounts (other than the sender) who are part of the + * multisig. + * - `call_hash`: The hash of the call this deposit is reserved for. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<(threshold: u16 | AnyNumber | Uint8Array, otherSignatories: Vec | (AccountId32 | string | Uint8Array)[], callHash: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [u16, Vec, U8aFixed]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + nominationPools: { + /** + * Top up the deficit or withdraw the excess ED from the pool. + * + * When a pool is created, the pool depositor transfers ED to the reward account of the + * pool. ED is subject to change and over time, the deposit in the reward account may be + * insufficient to cover the ED deficit of the pool or vice-versa where there is excess + * deposit to the pool. This call allows anyone to adjust the ED deposit of the + * pool by either topping up the deficit or claiming the excess. + **/ + adjustPoolDeposit: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Apply a pending slash on a member. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * The pending slash amount of the member must be equal or more than `ExistentialDeposit`. + * This call can be dispatched permissionlessly (i.e. by any account). If the execution + * is successful, fee is refunded and caller may be rewarded with a part of the slash + * based on the [`crate::pallet::Config::StakeAdapter`] configuration. + **/ + applySlash: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Bond `extra` more funds from `origin` into the pool to which they already belong. + * + * Additional funds can come from either the free balance of the account, of from the + * accumulated rewards, see [`BondExtra`]. + * + * Bonding extra funds implies an automatic payout of all pending rewards as well. + * See `bond_extra_other` to bond pending rewards of `other` members. + **/ + bondExtra: AugmentedSubmittable<(extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [PezpalletNominationPoolsBondExtra]>; + /** + * `origin` bonds funds from `extra` for some pool member `member` into their respective + * pools. + * + * `origin` can bond extra funds from free balance or pending rewards when `origin == + * other`. + * + * In the case of `origin != other`, `origin` can only bond extra pending rewards of + * `other` members assuming set_claim_permission for the given member is + * `PermissionlessCompound` or `PermissionlessAll`. + **/ + bondExtraOther: AugmentedSubmittable<(member: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, extra: PezpalletNominationPoolsBondExtra) => SubmittableExtrinsic, [MultiAddress, PezpalletNominationPoolsBondExtra]>; + /** + * Chill on behalf of the pool. + * + * The dispatch origin of this call can be signed by the pool nominator or the pool + * root role, same as [`Pallet::nominate`]. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch: + * * When pool depositor has less than `MinNominatorBond` staked, otherwise pool members + * are unable to unbond. + * + * # Conditions for permissioned dispatch: + * * The caller is the pool's nominator or root. + **/ + chill: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim pending commission. + * + * The `root` role of the pool is _always_ allowed to claim the pool's commission. + * + * If the pool has set `CommissionClaimPermission::Permissionless`, then any account can + * trigger the process of claiming the pool's commission. + * + * If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only + * accounts + * * `acc`, and + * * the pool's root account + * + * may call this extrinsic on behalf of the pool. + * + * Pending commissions are paid out and added to the total claimed commission. + * The total pending commission is reset to zero. + **/ + claimCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * A bonded member can use this to claim their payout based on the rewards that the pool + * has accumulated since their last claimed payout (OR since joining if this is their first + * time claiming rewards). The payout will be transferred to the member's account. + * + * The member will earn rewards pro rata based on the members stake vs the sum of the + * members in the pools stake. Rewards do not "expire". + * + * See `claim_payout_other` to claim rewards on behalf of some `other` pool member. + **/ + claimPayout: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * `origin` can claim payouts on some pool member `other`'s behalf. + * + * Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim + * permission for this call to be successful. + **/ + claimPayoutOther: AugmentedSubmittable<(other: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Create a new delegation pool. + * + * # Arguments + * + * * `amount` - The amount of funds to delegate to the pool. This also acts of a sort of + * deposit since the pools creator cannot fully unbond funds until the pool is being + * destroyed. + * * `index` - A disambiguation index for creating the account. Likely only useful when + * creating multiple pools in the same extrinsic. + * * `root` - The account to set as [`PoolRoles::root`]. + * * `nominator` - The account to set as the [`PoolRoles::nominator`]. + * * `bouncer` - The account to set as the [`PoolRoles::bouncer`]. + * + * # Note + * + * In addition to `amount`, the caller will transfer the existential deposit; so the caller + * needs at have at least `amount + existential_deposit` transferable. + **/ + create: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress]>; + /** + * Create a new delegation pool with a previously used pool id + * + * # Arguments + * + * same as `create` with the inclusion of + * * `pool_id` - `A valid PoolId. + **/ + createWithPoolId: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, root: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, nominator: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, bouncer: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress, MultiAddress, MultiAddress, u32]>; + /** + * Stake funds with a pool. The amount to bond is delegated (or transferred based on + * [`adapter::StakeStrategyType`]) from the member to the pool account and immediately + * increases the pool's bond. + * + * The method of transferring the amount to the pool account is determined by + * [`adapter::StakeStrategyType`]. If the pool is configured to use + * [`adapter::StakeStrategyType::Delegate`], the funds remain in the account of + * the `origin`, while the pool gains the right to use these funds for staking. + * + * # Note + * + * * An account can only be a member of a single pool. + * * An account cannot join the same pool multiple times. + * * This call will *not* dust the member account, so the member must have at least + * `existential deposit + amount` in their account. + * * Only a pool with [`PoolState::Open`] can be joined + **/ + join: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact, u32]>; + /** + * Migrates delegated funds from the pool account to the `member_account`. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This is a permission-less call and refunds any fee if claim is successful. + * + * If the pool has migrated to delegation based staking, the staked tokens of pool members + * can be moved and held in their own account. See [`adapter::DelegateStake`] + **/ + migrateDelegation: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Migrate pool from [`adapter::StakeStrategyType::Transfer`] to + * [`adapter::StakeStrategyType::Delegate`]. + * + * Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type: + * [`adapter::StakeStrategyType::Delegate`]. + * + * This call can be dispatched permissionlessly, and refunds any fee if successful. + * + * If the pool has already migrated to delegation based staking, this call will fail. + **/ + migratePoolToDelegateStake: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Nominate on behalf of the pool. + * + * The dispatch origin of this call must be signed by the pool nominator or the pool + * root role. + * + * This directly forwards the call to an implementation of `StakingInterface` (e.g., + * `pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool. + * + * # Note + * + * In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to + * have at least `depositor_min_bond` in the pool to start nominating. + **/ + nominate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, validators: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Call `withdraw_unbonded` for the pools account. This call can be made by any account. + * + * This is useful if there are too many unlocking chunks to call `unbond`, and some + * can be cleared by withdrawing. In the case there are too many unlocking chunks, the user + * would probably see an error like `NoMoreChunks` emitted from the staking system when + * they attempt to unbond. + **/ + poolWithdrawUnbonded: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Allows a pool member to set a claim permission to allow or disallow permissionless + * bonding and withdrawing. + * + * # Arguments + * + * * `origin` - Member of a pool. + * * `permission` - The permission to be applied. + **/ + setClaimPermission: AugmentedSubmittable<(permission: PezpalletNominationPoolsClaimPermission) => SubmittableExtrinsic, [PezpalletNominationPoolsClaimPermission]>; + /** + * Set the commission of a pool. + * Both a commission percentage and a commission payee must be provided in the `current` + * tuple. Where a `current` of `None` is provided, any current commission will be removed. + * + * - If a `None` is supplied to `new_commission`, existing commission will be removed. + **/ + setCommission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newCommission: Option> | null | Uint8Array | ITuple<[Perbill, AccountId32]> | [Perbill | AnyNumber | Uint8Array, AccountId32 | string | Uint8Array]) => SubmittableExtrinsic, [u32, Option>]>; + /** + * Set the commission change rate for a pool. + * + * Initial change rate is not bounded, whereas subsequent updates can only be more + * restrictive than the current. + **/ + setCommissionChangeRate: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, changeRate: PezpalletNominationPoolsCommissionChangeRate) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsCommissionChangeRate]>; + /** + * Set or remove a pool's commission claim permission. + * + * Determines who can claim the pool's pending commission. Only the `Root` role of the pool + * is able to configure commission claim permissions. + **/ + setCommissionClaimPermission: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, permission: Option | null | Uint8Array | PezpalletNominationPoolsCommissionClaimPermission) => SubmittableExtrinsic, [u32, Option]>; + /** + * Set the maximum commission of a pool. + * + * - Initial max can be set to any `Perbill`, and only smaller values thereafter. + * - Current commission will be lowered in the event it is higher than a new max + * commission. + **/ + setCommissionMax: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, maxCommission: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Perbill]>; + /** + * Update configurations for the nomination pools. The origin for this call must be + * [`Config::AdminOrigin`]. + * + * # Arguments + * + * * `min_join_bond` - Set [`MinJoinBond`]. + * * `min_create_bond` - Set [`MinCreateBond`]. + * * `max_pools` - Set [`MaxPools`]. + * * `max_members` - Set [`MaxPoolMembers`]. + * * `max_members_per_pool` - Set [`MaxPoolMembersPerPool`]. + * * `global_max_commission` - Set [`GlobalMaxCommission`]. + **/ + setConfigs: AugmentedSubmittable<(minJoinBond: PezpalletNominationPoolsConfigOpU128, minCreateBond: PezpalletNominationPoolsConfigOpU128, maxPools: PezpalletNominationPoolsConfigOpU32, maxMembers: PezpalletNominationPoolsConfigOpU32, maxMembersPerPool: PezpalletNominationPoolsConfigOpU32, globalMaxCommission: PezpalletNominationPoolsConfigOpPerbill) => SubmittableExtrinsic, [PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsConfigOpPerbill]>; + /** + * Set a new metadata for the pool. + * + * The dispatch origin of this call must be signed by the bouncer, or the root role of the + * pool. + **/ + setMetadata: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, metadata: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set a new state for the pool. + * + * If a pool is already in the `Destroying` state, then under no condition can its state + * change again. + * + * The dispatch origin of this call must be either: + * + * 1. signed by the bouncer, or the root role of the pool, + * 2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and + * then the state of the pool can be permissionlessly changed to `Destroying`. + **/ + setState: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, state: PezpalletNominationPoolsPoolState) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsPoolState]>; + /** + * Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It + * implicitly collects the rewards one last time, since not doing so would mean some + * rewards would be forfeited. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch. + * + * * The pool is blocked and the caller is either the root or bouncer. This is refereed to + * as a kick. + * * The pool is destroying and the member is not the depositor. + * * The pool is destroying, the member is the depositor and no other members are in the + * pool. + * + * ## Conditions for permissioned dispatch (i.e. the caller is also the + * `member_account`): + * + * * The caller is not the depositor. + * * The caller is the depositor, the pool is destroying and no other members are in the + * pool. + * + * # Note + * + * If there are too many unlocking chunks to unbond with the pool account, + * [`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks. + * The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`] + * to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks + * are available). However, it may not be possible to release the current unlocking chunks, + * in which case, the result of this call will likely be the `NoMoreChunks` error from the + * staking system. + **/ + unbond: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, unbondingPoints: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Compact]>; + /** + * Update the roles of the pool. + * + * The root is the only entity that can change any of the roles, including itself, + * excluding the depositor, who can never change. + * + * It emits an event, notifying UIs of the role change. This event is quite relevant to + * most pool members and they should be informed of changes to pool roles. + **/ + updateRoles: AugmentedSubmittable<(poolId: u32 | AnyNumber | Uint8Array, newRoot: PezpalletNominationPoolsConfigOpAccountId32, newNominator: PezpalletNominationPoolsConfigOpAccountId32, newBouncer: PezpalletNominationPoolsConfigOpAccountId32) => SubmittableExtrinsic, [u32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpAccountId32]>; + /** + * Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an + * error is returned. + * + * Under certain conditions, this call can be dispatched permissionlessly (i.e. by any + * account). + * + * # Conditions for a permissionless dispatch + * + * * The pool is in destroy mode and the target is not the depositor. + * * The target is the depositor and they are the only member in the sub pools. + * * The pool is blocked and the caller is either the root or bouncer. + * + * # Conditions for permissioned dispatch + * + * * The caller is the target and they are not the depositor. + * + * # Note + * + * - If the target is the depositor, the pool will be destroyed. + * - If the pool has any pending slash, we also try to slash the member before letting them + * withdraw. This calculation adds some weight overhead and is only defensive. In reality, + * pool slashes must have been already applied via permissionless [`Call::apply_slash`]. + **/ + withdrawUnbonded: AugmentedSubmittable<(memberAccount: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + onDemand: { + /** + * Create a single on demand core order. + * Will use the spot price for the current block and will reap the account if needed. + * + * Parameters: + * - `origin`: The sender of the call, funds will be withdrawn from this account. + * - `max_amount`: The maximum balance to withdraw from the origin to place an order. + * - `para_id`: A `ParaId` the origin wants to provide blockspace for. + * + * Errors: + * - `InsufficientBalance`: from the Currency implementation + * - `QueueFull` + * - `SpotPriceHigherThanMaxAmount` + * + * Events: + * - `OnDemandOrderPlaced` + **/ + placeOrderAllowDeath: AugmentedSubmittable<(maxAmount: u128 | AnyNumber | Uint8Array, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u32]>; + /** + * Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a + * check that placing the order will not reap the account. + * + * Parameters: + * - `origin`: The sender of the call, funds will be withdrawn from this account. + * - `max_amount`: The maximum balance to withdraw from the origin to place an order. + * - `para_id`: A `ParaId` the origin wants to provide blockspace for. + * + * Errors: + * - `InsufficientBalance`: from the Currency implementation + * - `QueueFull` + * - `SpotPriceHigherThanMaxAmount` + * + * Events: + * - `OnDemandOrderPlaced` + **/ + placeOrderKeepAlive: AugmentedSubmittable<(maxAmount: u128 | AnyNumber | Uint8Array, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u32]>; + /** + * Create a single on demand core order with credits. + * Will charge the owner's on-demand credit account the spot price for the current block. + * + * Parameters: + * - `origin`: The sender of the call, on-demand credits will be withdrawn from this + * account. + * - `max_amount`: The maximum number of credits to spend from the origin to place an + * order. + * - `para_id`: A `ParaId` the origin wants to provide blockspace for. + * + * Errors: + * - `InsufficientCredits` + * - `QueueFull` + * - `SpotPriceHigherThanMaxAmount` + * + * Events: + * - `OnDemandOrderPlaced` + **/ + placeOrderWithCredits: AugmentedSubmittable<(maxAmount: u128 | AnyNumber | Uint8Array, paraId: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u128, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paraInclusion: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paraInherent: { + /** + * Enter the paras inherent. This will process bitfields and backed candidates. + **/ + enter: AugmentedSubmittable<(data: PezkuwiPrimitivesVstagingInherentData) => SubmittableExtrinsic, [PezkuwiPrimitivesVstagingInherentData]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + paras: { + /** + * Adds the validation code to the storage. + * + * The code will not be added if it is already present. Additionally, if PVF pre-checking + * is running for that code, it will be instantly accepted. + * + * Otherwise, the code will be added into the storage. Note that the code will be added + * into storage with reference count 0. This is to account the fact that there are no users + * for this code yet. The caller will have to make sure that this code eventually gets + * used by some parachain or removed from the storage to avoid storage leaks. For the + * latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage + * manipulation. + * + * This function is mainly meant to be used for upgrading parachains that do not follow + * the go-ahead signal while the PVF pre-checking feature is enabled. + **/ + addTrustedValidationCode: AugmentedSubmittable<(validationCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Applies the already authorized current code for the parachain, + * triggering the same functionality as `force_set_current_code`. + **/ + applyAuthorizedForceSetCurrentCode: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Sets the storage for the authorized current code hash of the parachain. + * If not applied, it will be removed at the `System::block_number() + valid_period` block. + * + * This can be useful, when triggering `Paras::force_set_current_code(para, code)` + * from a different chain than the one where the `Paras` pallet is deployed. + * + * The main purpose is to avoid transferring the entire `code` Wasm blob between chains. + * Instead, we authorize `code_hash` with `root`, which can later be applied by + * `Paras::apply_authorized_force_set_current_code(para, code)` by anyone. + * + * Authorizations are stored in an **overwriting manner**. + **/ + authorizeForceSetCurrentCodeHash: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCodeHash: H256 | string | Uint8Array, validPeriod: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, H256, u32]>; + /** + * Note a new block head for para within the context of the current block. + **/ + forceNoteNewHead: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newHead: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Put a parachain directly into the next session's action queue. + * We can't queue it any sooner than this without going into the + * initializer... + **/ + forceQueueAction: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Schedule an upgrade as if it was scheduled in the given relay parent block. + **/ + forceScheduleCodeUpgrade: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array, relayParentNumber: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, u32]>; + /** + * Set the storage for the parachain validation code immediately. + **/ + forceSetCurrentCode: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the storage for the current parachain head data immediately. + **/ + forceSetCurrentHead: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newHead: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the storage for the current parachain head data immediately. + **/ + forceSetMostRecentContext: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, context: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and + * enacts the results if that was the last vote before achieving the supermajority. + **/ + includePvfCheckStatement: AugmentedSubmittable<(stmt: PezkuwiPrimitivesV8PvfCheckStatement, signature: PezkuwiPrimitivesV8ValidatorAppSignature) => SubmittableExtrinsic, [PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8ValidatorAppSignature]>; + /** + * Remove the validation code from the storage iff the reference count is 0. + * + * This is better than removing the storage directly, because it will not remove the code + * that was suddenly got used by some parachain while this dispatchable was pending + * dispatching. + **/ + pokeUnusedValidationCode: AugmentedSubmittable<(validationCodeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Remove an upgrade cooldown for a parachain. + * + * The cost for removing the cooldown earlier depends on the time left for the cooldown + * multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned. + **/ + removeUpgradeCooldown: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parasDisputes: { + forceUnfreeze: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parasShared: { + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + parasSlashing: { + reportDisputeLostUnsigned: AugmentedSubmittable<(disputeProof: PezkuwiPrimitivesVstagingDisputeProof, keyOwnerProof: PezspSessionMembershipProof) => SubmittableExtrinsic, [PezkuwiPrimitivesVstagingDisputeProof, PezspSessionMembershipProof]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + preimage: { + /** + * Ensure that the bulk of pre-images is upgraded. + * + * The caller pays no fee if at least 90% of pre-images were successfully updated. + **/ + ensureUpdated: AugmentedSubmittable<(hashes: Vec | (H256 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Register a preimage on-chain. + * + * If the preimage was previously requested, no fees or deposits are taken for providing + * the preimage. Otherwise, a deposit is taken proportional to the size of the preimage. + **/ + notePreimage: AugmentedSubmittable<(bytes: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Request a preimage be uploaded to the chain without paying any fees or deposits. + * + * If the preimage requests has already been provided on-chain, we unreserve any deposit + * a user may have paid, and take the control of the preimage out of their hands. + **/ + requestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear an unrequested preimage from the runtime storage. + * + * If `len` is provided, then it will be a much cheaper operation. + * + * - `hash`: The hash of the preimage to be removed from the store. + * - `len`: The length of the preimage of `hash`. + **/ + unnotePreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Clear a previously made request for a preimage. + * + * NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`. + **/ + unrequestPreimage: AugmentedSubmittable<(hash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + proxy: { + /** + * Register a proxy account for the sender that is able to make calls on its behalf. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to make a proxy. + * - `proxy_type`: The permissions allowed for this proxy account. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + **/ + addProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: PezkuwiRuntimeConstantsProxyProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, PezkuwiRuntimeConstantsProxyProxyType, u32]>; + /** + * Publish the hash of a proxy-call that will be made in the future. + * + * This must be called some number of blocks before the corresponding `proxy` is attempted + * if the delay associated with the proxy relationship is greater than zero. + * + * No more than `MaxPending` announcements may be made at any one time. + * + * This will take a deposit of `AnnouncementDepositFactor` as well as + * `AnnouncementDepositBase` if there are no other pending announcements. + * + * The dispatch origin for this call must be _Signed_ and a proxy of `real`. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + announce: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and + * initialize it with a proxy of `proxy_type` for `origin` sender. + * + * Requires a `Signed` origin. + * + * - `proxy_type`: The type of the proxy that the sender will be registered as over the + * new account. This will almost always be the most permissive `ProxyType` possible to + * allow for maximum flexibility. + * - `index`: A disambiguation index, in case this is called multiple times in the same + * transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just + * want to use `0`. + * - `delay`: The announcement period required of the initial proxy. Will generally be + * zero. + * + * Fails with `Duplicate` if this has already been called in this transaction, from the + * same sender, with the same parameters. + * + * Fails if there are insufficient funds to pay for deposit. + **/ + createPure: AugmentedSubmittable<(proxyType: PezkuwiRuntimeConstantsProxyProxyType, delay: u32 | AnyNumber | Uint8Array, index: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeConstantsProxyProxyType, u32, u16]>; + /** + * Removes a previously spawned pure proxy. + * + * WARNING: **All access to this account will be lost.** Any funds held in it will be + * inaccessible. + * + * Requires a `Signed` origin, and the sender account must have been created by a call to + * `create_pure` with corresponding parameters. + * + * - `spawner`: The account that originally called `create_pure` to create this account. + * - `index`: The disambiguation index originally passed to `create_pure`. Probably `0`. + * - `proxy_type`: The proxy type originally passed to `create_pure`. + * - `height`: The height of the chain when the call to `create_pure` was processed. + * - `ext_index`: The extrinsic index in which the call to `create_pure` was processed. + * + * Fails with `NoPermission` in case the caller is not a previously created pure + * account whose `create_pure` call has corresponding parameters. + **/ + killPure: AugmentedSubmittable<(spawner: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: PezkuwiRuntimeConstantsProxyProxyType, index: u16 | AnyNumber | Uint8Array, height: Compact | AnyNumber | Uint8Array, extIndex: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, PezkuwiRuntimeConstantsProxyProxyType, u16, Compact, Compact]>; + /** + * Poke / Adjust deposits made for proxies and announcements based on current values. + * This can be used by accounts to possibly lower their locked amount. + * + * The dispatch origin for this call must be _Signed_. + * + * The transaction fee is waived if the deposit amount has changed. + * + * Emits `DepositPoked` if successful. + **/ + pokeDeposit: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Dispatch the given `call` from an account that the sender is authorised for through + * `add_proxy`. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxy: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | PezkuwiRuntimeConstantsProxyProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, Option, RuntimeCall]>; + /** + * Dispatch the given `call` from an account that the sender is authorized for through + * `add_proxy`. + * + * Removes any corresponding announcement(s). + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call. + * - `call`: The call to be made by the `real` account. + **/ + proxyAnnounced: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, forceProxyType: Option | null | Uint8Array | PezkuwiRuntimeConstantsProxyProxyType, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress, Option, RuntimeCall]>; + /** + * Remove the given announcement of a delegate. + * + * May be called by a target (proxied) account to remove a call that one of their delegates + * (`delegate`) has announced they want to execute. The deposit is returned. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `delegate`: The account that previously announced the call. + * - `call_hash`: The hash of the call to be made. + **/ + rejectAnnouncement: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Remove a given announcement. + * + * May be called by a proxy account to remove a call they previously announced and return + * the deposit. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `real`: The account that the proxy will make a call on behalf of. + * - `call_hash`: The hash of the call to be made by the `real` account. + **/ + removeAnnouncement: AugmentedSubmittable<(real: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, H256]>; + /** + * Unregister all proxy accounts for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * WARNING: This may be called on accounts created by `create_pure`, however if done, then + * the unreserved fees will be inaccessible. **All access to this account will be lost.** + **/ + removeProxies: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Unregister a proxy account for the sender. + * + * The dispatch origin for this call must be _Signed_. + * + * Parameters: + * - `proxy`: The account that the `caller` would like to remove as a proxy. + * - `proxy_type`: The permissions currently enabled for the removed proxy account. + **/ + removeProxy: AugmentedSubmittable<(delegate: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, proxyType: PezkuwiRuntimeConstantsProxyProxyType, delay: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, PezkuwiRuntimeConstantsProxyProxyType, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + rcMigrator: { + /** + * Cancel the migration. + * + * Migration can only be cancelled if it is in the [`MigrationStage::Scheduled`] state. + **/ + cancelMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the migration stage. + * + * This call is intended for emergency use only and is guarded by the + * [`Config::AdminOrigin`]. + **/ + forceSetStage: AugmentedSubmittable<(stage: PezpalletRcMigratorMigrationStage) => SubmittableExtrinsic, [PezpalletRcMigratorMigrationStage]>; + /** + * Pause the migration. + **/ + pauseMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the accounts to be preserved on Relay Chain during the migration. + * + * The accounts must have no consumers references. + **/ + preserveAccounts: AugmentedSubmittable<(accounts: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Receive a query response from the Asset Hub for a previously sent xcm message. + **/ + receiveQueryResponse: AugmentedSubmittable<(queryId: u64 | AnyNumber | Uint8Array, response: StagingXcmV5Response | { Null: any } | { Assets: any } | { ExecutionResult: any } | { Version: any } | { PalletsInfo: any } | { DispatchResult: any } | string | Uint8Array) => SubmittableExtrinsic, [u64, StagingXcmV5Response]>; + /** + * Resend a previously sent and unconfirmed XCM message. + **/ + resendXcm: AugmentedSubmittable<(queryId: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Schedule the migration to start at a given moment. + * + * ### Parameters: + * - `start`: The block number at which the migration will start. `DispatchTime` calculated + * at the moment of the extrinsic execution. + * - `warm_up`: Duration or timepoint that will be used to prepare for the migration. Calls + * are filtered during this period. It is intended to give enough time for UMP and DMP + * queues to empty. `DispatchTime` calculated at the moment of the transition to the + * warm-up stage. + * - `cool_off`: The block number at which the post migration cool-off period will end. The + * `DispatchTime` calculated at the moment of the transition to the cool-off stage. + * - `unsafe_ignore_staking_lock_check`: ONLY FOR TESTING. Ignore the check whether the + * scheduled time point is far enough in the future. + * + * Note: If the staking election for next era is already complete, and the next + * validator set is queued in `pallet-session`, we want to avoid starting the data + * migration at this point as it can lead to some missed validator rewards. To address + * this, we stop staking election at the start of migration and must wait atleast 1 + * session (set via warm_up) before starting the data migration. + * + * Read [`MigrationStage::Scheduled`] documentation for more details. + **/ + scheduleMigration: AugmentedSubmittable<(start: PezframeSupportScheduleDispatchTime, warmUp: PezframeSupportScheduleDispatchTime, coolOff: PezframeSupportScheduleDispatchTime, unsafeIgnoreStakingLockCheck: bool | boolean | Uint8Array) => SubmittableExtrinsic, [PezframeSupportScheduleDispatchTime, PezframeSupportScheduleDispatchTime, PezframeSupportScheduleDispatchTime, bool]>; + /** + * XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the + * [Config::SendXcm] router which will be able to send messages to the Asset Hub during + * the migration. + **/ + sendXcmMessage: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Set the AH UMP queue priority configuration. + * + * Can only be called by the `AdminOrigin`. + **/ + setAhUmpQueuePriority: AugmentedSubmittable<(updated: PezpalletRcMigratorQueuePriority) => SubmittableExtrinsic, [PezpalletRcMigratorQueuePriority]>; + /** + * Set the canceller account id. + * + * The canceller can only stop scheduled migration. + **/ + setCanceller: AugmentedSubmittable<(updated: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [Option]>; + /** + * Set the manager account id. + * + * The manager has the similar to [`Config::AdminOrigin`] privileges except that it + * can not set the manager account id via `set_manager` call. + **/ + setManager: AugmentedSubmittable<(updated: Option | null | Uint8Array | AccountId32 | string) => SubmittableExtrinsic, [Option]>; + /** + * Set the migration settings. Can only be done by admin or manager. + **/ + setSettings: AugmentedSubmittable<(settings: Option | null | Uint8Array | PezpalletRcMigratorMigrationSettings) => SubmittableExtrinsic, [Option]>; + /** + * Set the unprocessed message buffer size. + * + * `None` means to use the configuration value. + **/ + setUnprocessedMsgBuffer: AugmentedSubmittable<(updated: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Start the data migration. + * + * This is typically called by the Asset Hub to indicate it's readiness to receive the + * migration data. + **/ + startDataMigration: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Vote on behalf of any of the members in `MultisigMembers`. + * + * Unsigned extrinsic, requiring the `payload` to be signed. + * + * Upon each call, a new entry is created in `ManagerMultisigs` map the `payload.call` to + * be dispatched. Once `MultisigThreshold` is reached, the entire map is deleted, and we + * move on to the next round. + * + * The round system ensures that signatures from older round cannot be reused. + **/ + voteManagerMultisig: AugmentedSubmittable<(payload: PezpalletRcMigratorManagerMultisigVote, sig: PezspRuntimeMultiSignature) => SubmittableExtrinsic, [PezpalletRcMigratorManagerMultisigVote, PezspRuntimeMultiSignature]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + referenda: { + /** + * Cancel an ongoing referendum. + * + * - `origin`: must be the `CancelOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Cancelled`. + **/ + cancel: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Cancel an ongoing referendum and slash the deposits. + * + * - `origin`: must be the `KillOrigin`. + * - `index`: The index of the referendum to be cancelled. + * + * Emits `Killed` and `DepositSlashed`. + **/ + kill: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a referendum onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `index`: the referendum to be advanced. + **/ + nudgeReferendum: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Advance a track onto its next logical state. Only used internally. + * + * - `origin`: must be `Root`. + * - `track`: the track to be advanced. + * + * Action item for when there is now one fewer referendum in the deciding phase and the + * `DecidingCount` is not yet updated. This means that we should either: + * - begin deciding another referendum (and leave `DecidingCount` alone); or + * - decrement `DecidingCount`. + **/ + oneFewerDeciding: AugmentedSubmittable<(track: u16 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u16]>; + /** + * Post the Decision Deposit for a referendum. + * + * - `origin`: must be `Signed` and the account must have funds available for the + * referendum's track's Decision Deposit. + * - `index`: The index of the submitted referendum whose Decision Deposit is yet to be + * posted. + * + * Emits `DecisionDepositPlaced`. + **/ + placeDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Decision Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Decision Deposit has not yet been + * refunded. + * + * Emits `DecisionDepositRefunded`. + **/ + refundDecisionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Refund the Submission Deposit for a closed referendum back to the depositor. + * + * - `origin`: must be `Signed` or `Root`. + * - `index`: The index of a closed referendum whose Submission Deposit has not yet been + * refunded. + * + * Emits `SubmissionDepositRefunded`. + **/ + refundSubmissionDeposit: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Set or clear metadata of a referendum. + * + * Parameters: + * - `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a + * metadata of a finished referendum. + * - `index`: The index of a referendum to set or clear metadata for. + * - `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata. + **/ + setMetadata: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array, maybeHash: Option | null | Uint8Array | H256 | string) => SubmittableExtrinsic, [u32, Option]>; + /** + * Propose a referendum on a privileged action. + * + * - `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds + * available. + * - `proposal_origin`: The origin from which the proposal should be executed. + * - `proposal`: The proposal. + * - `enactment_moment`: The moment that the proposal should be enacted. + * + * Emits `Submitted`. + **/ + submit: AugmentedSubmittable<(proposalOrigin: PezkuwiRuntimeOriginCaller, proposal: PezframeSupportPreimagesBounded, enactmentMoment: PezframeSupportScheduleDispatchTime) => SubmittableExtrinsic, [PezkuwiRuntimeOriginCaller, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + registrar: { + /** + * Add a manager lock from a para. This will prevent the manager of a + * para to deregister or swap a para. + * + * Can be called by Root, the parachain, or the parachain manager if the parachain is + * unlocked. + **/ + addLock: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Deregister a Para Id, freeing all data and returning any deposit. + * + * The caller must be Root, the `para` owner, or the `para` itself. The para must be an + * on-demand parachain. + **/ + deregister: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force the registration of a Para Id on the relay chain. + * + * This function must be called by a Root origin. + * + * The deposit taken can be specified for this registration. Any `ParaId` + * can be registered, including sub-1000 IDs which are System Parachains. + **/ + forceRegister: AugmentedSubmittable<(who: AccountId32 | string | Uint8Array, deposit: u128 | AnyNumber | Uint8Array, id: u32 | AnyNumber | Uint8Array, genesisHead: Bytes | string | Uint8Array, validationCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [AccountId32, u128, u32, Bytes, Bytes]>; + /** + * Register head data and validation code for a reserved Para Id. + * + * ## Arguments + * - `origin`: Must be called by a `Signed` origin. + * - `id`: The para ID. Must be owned/managed by the `origin` signing account. + * - `genesis_head`: The genesis head data of the parachain/thread. + * - `validation_code`: The initial validation code of the parachain/thread. + * + * ## Deposits/Fees + * The account with the originating signature must reserve a deposit. + * + * The deposit is required to cover the costs associated with storing the genesis head + * data and the validation code. + * This accounts for the potential to store validation code of a size up to the + * `max_code_size`, as defined in the configuration pallet + * + * Anything already reserved previously for this para ID is accounted for. + * + * ## Events + * The `Registered` event is emitted in case of success. + **/ + register: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, genesisHead: Bytes | string | Uint8Array, validationCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes, Bytes]>; + /** + * Remove a manager lock from a para. This will allow the manager of a + * previously locked para to deregister or swap a para without using governance. + * + * Can only be called by the Root origin or the parachain. + **/ + removeLock: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Reserve a Para Id on the relay chain. + * + * This function will reserve a new Para Id to be owned/managed by the origin account. + * The origin account is able to register head data and validation code using `register` to + * create an on-demand parachain. Using the Slots pallet, an on-demand parachain can then + * be upgraded to a lease holding parachain. + * + * ## Arguments + * - `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new + * para ID. + * + * ## Deposits/Fees + * The origin must reserve a deposit of `ParaDeposit` for the registration. + * + * ## Events + * The `Reserved` event is emitted in case of success, which provides the ID reserved for + * use. + **/ + reserve: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Schedule a parachain upgrade. + * + * This will kick off a check of `new_code` by all validators. After the majority of the + * validators have reported on the validity of the code, the code will either be enacted + * or the upgrade will be rejected. If the code will be enacted, the current code of the + * parachain will be overwritten directly. This means that any PoV will be checked by this + * new code. The parachain itself will not be informed explicitly that the validation code + * has changed. + * + * Can be called by Root, the parachain, or the parachain manager if the parachain is + * unlocked. + **/ + scheduleCodeUpgrade: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newCode: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Set the parachain's current head. + * + * Can be called by Root, the parachain, or the parachain manager if the parachain is + * unlocked. + **/ + setCurrentHead: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, newHead: Bytes | string | Uint8Array) => SubmittableExtrinsic, [u32, Bytes]>; + /** + * Swap a lease holding parachain with another parachain, either on-demand or lease + * holding. + * + * The origin must be Root, the `para` owner, or the `para` itself. + * + * The swap will happen only if there is already an opposite swap pending. If there is not, + * the swap will be stored in the pending swaps map, ready for a later confirmatory swap. + * + * The `ParaId`s remain mapped to the same head data and code so external code can rely on + * `ParaId` to be a long-term identifier of a notional "parachain". However, their + * scheduling info (i.e. whether they're an on-demand parachain or lease holding + * parachain), auction information and the auction deposit are switched. + **/ + swap: AugmentedSubmittable<(id: u32 | AnyNumber | Uint8Array, other: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + scheduler: { + /** + * Cancel an anonymously scheduled task. + **/ + cancel: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Cancel a named scheduled task. + **/ + cancelNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Removes the retry configuration of a task. + **/ + cancelRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array]) => SubmittableExtrinsic, [ITuple<[u32, u32]>]>; + /** + * Cancel the retry configuration of a named task. + **/ + cancelRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed]>; + /** + * Anonymously schedule a task. + **/ + schedule: AugmentedSubmittable<(when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Anonymously schedule a task after a delay. + **/ + scheduleAfter: AugmentedSubmittable<(after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task. + **/ + scheduleNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, when: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Schedule a named task after a delay. + **/ + scheduleNamedAfter: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, after: u32 | AnyNumber | Uint8Array, maybePeriodic: Option> | null | Uint8Array | ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], priority: u8 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u32, Option>, u8, RuntimeCall]>; + /** + * Set a retry configuration for a task so that, in case its scheduled run fails, it will + * be retried after `period` blocks, for a total amount of `retries` retries or until it + * succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetry: AugmentedSubmittable<(task: ITuple<[u32, u32]> | [u32 | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [ITuple<[u32, u32]>, u8, u32]>; + /** + * Set a retry configuration for a named task so that, in case its scheduled run fails, it + * will be retried after `period` blocks, for a total amount of `retries` retries or until + * it succeeds. + * + * Tasks which need to be scheduled for a retry are still subject to weight metering and + * agenda space, same as a regular task. If a periodic task fails, it will be scheduled + * normally while the task is retrying. + * + * Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic + * clones of the original task. Their retry configuration will be derived from the + * original task's configuration, but will have a lower value for `remaining` than the + * original `total_retries`. + **/ + setRetryNamed: AugmentedSubmittable<(id: U8aFixed | string | Uint8Array, retries: u8 | AnyNumber | Uint8Array, period: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [U8aFixed, u8, u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + session: { + /** + * Removes any session key(s) of the function caller. + * + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be Signed and the account must be either be + * convertible to a validator ID using the chain's typical addressing system (this usually + * means being a controller account) or directly convertible into a validator ID (which + * usually means being a stash account). + * + * ## Complexity + * - `O(1)` in number of key types. Actual cost depends on the number of length of + * `T::Keys::key_ids()` which is fixed. + **/ + purgeKeys: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Sets the session key(s) of the function caller to `keys`. + * Allows an account to set its session key prior to becoming a validator. + * This doesn't take effect until the next session. + * + * The dispatch origin of this function must be signed. + * + * ## Complexity + * - `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is + * fixed. + **/ + setKeys: AugmentedSubmittable<(keys: PezkuwiRuntimeSessionKeys, proof: Bytes | string | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeSessionKeys, Bytes]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + slots: { + /** + * Clear all leases for a Para Id, refunding any deposits back to the original owners. + * + * The dispatch origin for this call must match `T::ForceOrigin`. + **/ + clearAllLeases: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Just a connect into the `lease_out` call, in case Root wants to force some lease to + * happen independently of any other on-chain mechanism to use it. + * + * The dispatch origin for this call must match `T::ForceOrigin`. + **/ + forceLease: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array, leaser: AccountId32 | string | Uint8Array, amount: u128 | AnyNumber | Uint8Array, periodBegin: u32 | AnyNumber | Uint8Array, periodCount: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, AccountId32, u128, u32, u32]>; + /** + * Try to onboard a parachain that has a lease for the current lease period. + * + * This function can be useful if there was some state issue with a para that should + * have onboarded, but was unable to. As long as they have a lease period, we can + * let them onboard from here. + * + * Origin must be signed, but can be called by anyone. + **/ + triggerOnboard: AugmentedSubmittable<(para: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + staking: { + /** + * Take the origin account as a stash and lock up `value` of its balance. `controller` will + * be the account that controls it. + * + * `value` must be more than the `minimum_balance` specified by `T::Currency`. + * + * The dispatch origin for this call must be _Signed_ by the stash account. + * + * Emits `Bonded`. + * ## Complexity + * - Independent of the arguments. Moderate complexity. + * - O(1). + * - Three extra DB entries. + * + * NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned + * unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed + * as dust. + **/ + bond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array, payee: PezpalletStakingRewardDestination) => SubmittableExtrinsic, [Compact, PezpalletStakingRewardDestination]>; + /** + * Add some extra amount that have appeared in the stash `free_balance` into the balance up + * for staking. + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * Use this if there are additional funds in your stash account that you wish to bond. + * Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose + * any limitation on the amount that can be added. + * + * Emits `Bonded`. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - O(1). + **/ + bondExtra: AugmentedSubmittable<(maxAdditional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Cancel enactment of a deferred slash. + * + * Can be called by the `T::AdminOrigin`. + * + * Parameters: era and indices of the slashes for that era to kill. + * They **must** be sorted in ascending order, *and* unique. + **/ + cancelDeferredSlash: AugmentedSubmittable<(era: u32 | AnyNumber | Uint8Array, slashIndices: Vec | (u32 | AnyNumber | Uint8Array)[]) => SubmittableExtrinsic, [u32, Vec]>; + /** + * Declare no desire to either validate or nominate. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - Independent of the arguments. Insignificant complexity. + * - Contains one read. + * - Writes are limited to the `origin` account key. + **/ + chill: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Declare a `controller` to stop participating as either a validator or nominator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_, but can be called by anyone. + * + * If the caller is the same as the controller being targeted, then no further checks are + * enforced, and this function behaves just like `chill`. + * + * If the caller is different than the controller being targeted, the following conditions + * must be met: + * + * * `controller` must belong to a nominator who has become non-decodable, + * + * Or: + * + * * A `ChillThreshold` must be set and checked which defines how close to the max + * nominators or validators we must reach before users can start chilling one-another. + * * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine + * how close we are to the threshold. + * * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines + * if this is a person that should be chilled because they have not met the threshold + * bond required. + * + * This can be helpful if bond requirements are updated, and we need to remove old users + * who do not satisfy these requirements. + **/ + chillOther: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Updates a batch of controller accounts to their corresponding stash account if they are + * not the same. Ignores any controller accounts that do not exist, and does not operate if + * the stash and controller are already the same. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin must be `T::AdminOrigin`. + **/ + deprecateControllerBatch: AugmentedSubmittable<(controllers: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Force a validator to have at least the minimum commission. This will not affect a + * validator who already has a commission greater than or equal to the minimum. Any account + * can call this. + **/ + forceApplyMinCommission: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Force there to be a new era at the end of the next session. After this, it will be + * reset to normal (non-forced) behaviour. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + * + * ## Complexity + * - No arguments. + * - Weight: O(1) + **/ + forceNewEra: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be a new era at the end of sessions indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * If this is called just before a new era is triggered, the election process may not + * have enough blocks to get a result. + **/ + forceNewEraAlways: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force there to be no new eras indefinitely. + * + * The dispatch origin must be Root. + * + * # Warning + * + * The election process starts multiple blocks before the end of the era. + * Thus the election process may be ongoing when this is called. In this case the + * election will continue until the next era is triggered. + * + * ## Complexity + * - No arguments. + * - Weight: O(1) + **/ + forceNoEras: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Force a current staker to become completely unstaked, immediately. + * + * The dispatch origin must be Root. + * + * ## Parameters + * + * - `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more + * details. + **/ + forceUnstake: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Increments the ideal number of validators up to maximum of + * `ElectionProviderBase::MaxWinners`. + * + * The dispatch origin must be Root. + * + * ## Complexity + * Same as [`Self::set_validator_count`]. + **/ + increaseValidatorCount: AugmentedSubmittable<(additional: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Remove the given nominations from the calling validator. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * - `who`: A list of nominator stash accounts who are nominating this validator which + * should no longer be nominating this validator. + * + * Note: Making this call only makes sense if you first set the validator preferences to + * block any further nominations. + **/ + kick: AugmentedSubmittable<(who: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * This function allows governance to manually slash a validator and is a + * **fallback mechanism**. + * + * The dispatch origin must be `T::AdminOrigin`. + * + * ## Parameters + * - `validator_stash` - The stash account of the validator to slash. + * - `era` - The era in which the validator was in the active set. + * - `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill. + * + * ## Behavior + * + * The slash will be applied using the standard slashing mechanics, respecting the + * configured `SlashDeferDuration`. + * + * This means: + * - If the validator was already slashed by a higher percentage for the same era, this + * slash will have no additional effect. + * - If the validator was previously slashed by a lower percentage, only the difference + * will be applied. + * - The slash will be deferred by `SlashDeferDuration` eras before being enacted. + **/ + manualSlash: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, slashFraction: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, Perbill]>; + /** + * Removes the legacy Staking locks if they exist. + * + * This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a + * hold on it if needed. If all stake cannot be held, the best effort is made to hold as + * much as possible. The remaining stake is forced withdrawn from the ledger. + * + * The fee is waived if the migration is successful. + **/ + migrateCurrency: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to nominate `targets` for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - The transaction's complexity is proportional to the size of `targets` (N) + * which is capped at CompactAssignments::LIMIT (T::MaxNominations). + * - Both the reads and writes follow a similar pattern. + **/ + nominate: AugmentedSubmittable<(targets: Vec | (MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Pay out next page of the stakers behind a validator for the given era. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * The reward payout could be paged in case there are too many nominators backing the + * `validator_stash`. This call will payout unpaid pages in an ascending order. To claim a + * specific page, use `payout_stakers_by_page`.` + * + * If all pages are claimed, it returns an error `InvalidPage`. + **/ + payoutStakers: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Pay out a page of the stakers behind a validator for the given era and page. + * + * - `validator_stash` is the stash account of the validator. + * - `era` may be any era between `[current_era - history_depth; current_era]`. + * - `page` is the page index of nominators to pay out with value between 0 and + * `num_nominators / T::MaxExposurePageSize`. + * + * The origin of this call must be _Signed_. Any account can call this function, even if + * it is not one of the stakers. + * + * If a validator has more than [`Config::MaxExposurePageSize`] nominators backing + * them, then the list of nominators is paged, with each page being capped at + * [`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators, + * the call needs to be made for each page separately in order for all the nominators + * backing a validator to receive the reward. The nominators are not sorted across pages + * and so it should not be assumed the highest staker would be on the topmost page and vice + * versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost. + **/ + payoutStakersByPage: AugmentedSubmittable<(validatorStash: AccountId32 | string | Uint8Array, era: u32 | AnyNumber | Uint8Array, page: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32, u32]>; + /** + * Remove all data structures concerning a staker/stash once it is at a state where it can + * be considered `dust` in the staking system. The requirements are: + * + * 1. the `total_balance` of the stash is below existential deposit. + * 2. or, the `ledger.total` of the stash is below existential deposit. + * 3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero. + * + * The former can happen in cases like a slash; the latter when a fully unbonded account + * is still receiving staking rewards in `RewardDestination::Staked`. + * + * It can be called by anyone, as long as `stash` meets the above requirements. + * + * Refunds the transaction fees upon successful execution. + * + * ## Parameters + * + * - `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more + * details. + **/ + reapStash: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [AccountId32, u32]>; + /** + * Rebond a portion of the stash scheduled to be unlocked. + * + * The dispatch origin must be signed by the controller. + * + * ## Complexity + * - Time complexity: O(L), where L is unlocking chunks + * - Bounded by `MaxUnlockingChunks`. + **/ + rebond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Restores the state of a ledger which is in an inconsistent state. + * + * The requirements to restore a ledger are the following: + * * The stash is bonded; or + * * The stash is not bonded but it has a staking lock left behind; or + * * If the stash has an associated ledger and its state is inconsistent; or + * * If the ledger is not corrupted *but* its staking lock is out of sync. + * + * The `maybe_*` input parameters will overwrite the corresponding data and metadata of the + * ledger associated with the stash. If the input parameters are not set, the ledger will + * be reset values from on-chain state. + **/ + restoreLedger: AugmentedSubmittable<(stash: AccountId32 | string | Uint8Array, maybeController: Option | null | Uint8Array | AccountId32 | string, maybeTotal: Option | null | Uint8Array | u128 | AnyNumber, maybeUnlocking: Option> | null | Uint8Array | Vec | (PezpalletStakingUnlockChunk)[]) => SubmittableExtrinsic, [AccountId32, Option, Option, Option>]>; + /** + * Scale up the ideal number of validators by a factor up to maximum of + * `ElectionProviderBase::MaxWinners`. + * + * The dispatch origin must be Root. + * + * ## Complexity + * Same as [`Self::set_validator_count`]. + **/ + scaleValidatorCount: AugmentedSubmittable<(factor: Percent | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Percent]>; + /** + * (Re-)sets the controller of a stash to the stash itself. This function previously + * accepted a `controller` argument to set the controller to an account other than the + * stash itself. This functionality has now been removed, now only setting the controller + * to the stash, if it is not already. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the stash, not the controller. + * + * ## Complexity + * O(1) + * - Independent of the arguments. Insignificant complexity. + * - Contains a limited number of reads. + * - Writes are limited to the `origin` account key. + **/ + setController: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Set the validators who cannot be slashed (if any). + * + * The dispatch origin must be Root. + **/ + setInvulnerables: AugmentedSubmittable<(invulnerables: Vec | (AccountId32 | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Sets the minimum amount of commission that each validators must maintain. + * + * This call has lower privilege requirements than `set_staking_config` and can be called + * by the `T::AdminOrigin`. Root can always call this. + **/ + setMinCommission: AugmentedSubmittable<(updated: Perbill | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Perbill]>; + /** + * (Re-)set the payment target for a controller. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * ## Complexity + * - O(1) + * - Independent of the arguments. Insignificant complexity. + * - Contains a limited number of reads. + * - Writes are limited to the `origin` account key. + * --------- + **/ + setPayee: AugmentedSubmittable<(payee: PezpalletStakingRewardDestination) => SubmittableExtrinsic, [PezpalletStakingRewardDestination]>; + /** + * Update the various staking configurations . + * + * * `min_nominator_bond`: The minimum active bond needed to be a nominator. + * * `min_validator_bond`: The minimum active bond needed to be a validator. + * * `max_nominator_count`: The max number of users who can be a nominator at once. When + * set to `None`, no limit is enforced. + * * `max_validator_count`: The max number of users who can be a validator at once. When + * set to `None`, no limit is enforced. + * * `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which + * should be filled in order for the `chill_other` transaction to work. + * * `min_commission`: The minimum amount of commission that each validators must maintain. + * This is checked only upon calling `validate`. Existing validators are not affected. + * + * RuntimeOrigin must be Root to call this function. + * + * NOTE: Existing nominators and validators will not be affected by this update. + * to kick people under the new limits, `chill_other` should be called. + **/ + setStakingConfigs: AugmentedSubmittable<(minNominatorBond: PezpalletStakingPezpalletConfigOpU128, minValidatorBond: PezpalletStakingPezpalletConfigOpU128, maxNominatorCount: PezpalletStakingPezpalletConfigOpU32, maxValidatorCount: PezpalletStakingPezpalletConfigOpU32, chillThreshold: PezpalletStakingPezpalletConfigOpPercent, minCommission: PezpalletStakingPezpalletConfigOpPerbill, maxStakedRewards: PezpalletStakingPezpalletConfigOpPercent) => SubmittableExtrinsic, [PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent]>; + /** + * Sets the ideal number of validators. + * + * The dispatch origin must be Root. + * + * ## Complexity + * O(1) + **/ + setValidatorCount: AugmentedSubmittable<(updated: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Schedule a portion of the stash to be unlocked ready for transfer out after the bond + * period ends. If this leaves an amount actively bonded less than + * [`asset::existential_deposit`], then it is increased to the full amount. + * + * The stash may be chilled if the ledger total amount falls to 0 after unbonding. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + * + * Once the unlock period is done, you can call `withdraw_unbonded` to actually move + * the funds out of management ready for transfer. + * + * No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`) + * can co-exists at the same time. If there are no unlocking chunks slots available + * [`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible). + * + * If a user encounters the `InsufficientBond` error when calling this extrinsic, + * they should call `chill` first in order to free up their bonded funds. + * + * Emits `Unbonded`. + * + * See also [`Call::withdraw_unbonded`]. + **/ + unbond: AugmentedSubmittable<(value: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Migrates an account's `RewardDestination::Controller` to + * `RewardDestination::Account(controller)`. + * + * Effects will be felt instantly (as soon as this function is completed successfully). + * + * This will waive the transaction fee if the `payee` is successfully migrated. + **/ + updatePayee: AugmentedSubmittable<(controller: AccountId32 | string | Uint8Array) => SubmittableExtrinsic, [AccountId32]>; + /** + * Declare the desire to validate for the origin controller. + * + * Effects will be felt at the beginning of the next era. + * + * The dispatch origin for this call must be _Signed_ by the controller, not the stash. + **/ + validate: AugmentedSubmittable<(prefs: PezpalletStakingValidatorPrefs) => SubmittableExtrinsic, [PezpalletStakingValidatorPrefs]>; + /** + * Remove any unlocked chunks from the `unlocking` queue from our management. + * + * This essentially frees up that balance to be used by the stash account to do whatever + * it wants. + * + * The dispatch origin for this call must be _Signed_ by the controller. + * + * Emits `Withdrawn`. + * + * See also [`Call::unbond`]. + * + * ## Parameters + * + * - `num_slashing_spans` indicates the number of metadata slashing spans to clear when + * this call results in a complete removal of all the data related to the stash account. + * In this case, the `num_slashing_spans` must be larger or equal to the number of + * slashing spans associated with the stash account in the [`SlashingSpans`] storage type, + * otherwise the call will fail. The call weight is directly proportional to + * `num_slashing_spans`. + * + * ## Complexity + * O(S) where S is the number of slashing spans to remove + * NOTE: Weight annotation is the kill scenario, we refund otherwise. + **/ + withdrawUnbonded: AugmentedSubmittable<(numSlashingSpans: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stakingAhClient: { + /** + * manually do what this pallet was meant to do at the end of the migration. + **/ + forceOnMigrationEnd: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Allows governance to force set the operating mode of the pallet. + **/ + setMode: AugmentedSubmittable<(mode: PezpalletStakingAsyncAhClientOperatingMode) => SubmittableExtrinsic, [PezpalletStakingAsyncAhClientOperatingMode]>; + validatorSet: AugmentedSubmittable<(report: PezpalletStakingAsyncRcClientValidatorSetReport) => SubmittableExtrinsic, [PezpalletStakingAsyncRcClientValidatorSetReport]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + stateTrieMigration: { + /** + * Continue the migration for the given `limits`. + * + * The dispatch origin of this call can be any signed account. + * + * This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit, + * Upon successful execution, the transaction fee is returned. + * + * The (potentially over-estimated) of the byte length of all the data read must be + * provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing + * that executing the current `MigrationTask` with the given `limits` will not exceed + * `real_size_upper` bytes of read data. + * + * The `witness_task` is merely a helper to prevent the caller from being slashed or + * generally trigger a migration that they do not intend. This parameter is just a message + * from caller, saying that they believed `witness_task` was the last state of the + * migration, and they only wish for their transaction to do anything, if this assumption + * holds. In case `witness_task` does not match, the transaction fails. + * + * Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the + * recommended way of doing this is to pass a `limit` that only bounds `count`, as the + * `size` limit can always be overwritten. + **/ + continueMigrate: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits, realSizeUpper: u32 | AnyNumber | Uint8Array, witnessTask: PezpalletStateTrieMigrationMigrationTask) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits, u32, PezpalletStateTrieMigrationMigrationTask]>; + /** + * Control the automatic migration. + * + * The dispatch origin of this call must be [`Config::ControlOrigin`]. + **/ + controlAutoMigration: AugmentedSubmittable<(maybeConfig: Option | null | Uint8Array | PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [Option]>; + /** + * Forcefully set the progress the running migration. + * + * This is only useful in one case: the next key to migrate is too big to be migrated with + * a signed account, in a parachain context, and we simply want to skip it. A reasonable + * example of this would be `:code:`, which is both very expensive to migrate, and commonly + * used, so probably it is already migrated. + * + * In case you mess things up, you can also, in principle, use this to reset the migration + * process. + **/ + forceSetProgress: AugmentedSubmittable<(progressTop: PezpalletStateTrieMigrationProgress, progressChild: PezpalletStateTrieMigrationProgress) => SubmittableExtrinsic, [PezpalletStateTrieMigrationProgress, PezpalletStateTrieMigrationProgress]>; + /** + * Migrate the list of child keys by iterating each of them one by one. + * + * All of the given child keys must be present under one `child_root`. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomChild: AugmentedSubmittable<(root: Bytes | string | Uint8Array, childKeys: Vec | (Bytes | string | Uint8Array)[], totalSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, Vec, u32]>; + /** + * Migrate the list of top keys by iterating each of them one by one. + * + * This does not affect the global migration process tracker ([`MigrationProcess`]), and + * should only be used in case any keys are leftover due to a bug. + **/ + migrateCustomTop: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[], witnessSize: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Vec, u32]>; + /** + * Set the maximum limit of the signed migration. + **/ + setSignedMaxLimits: AugmentedSubmittable<(limits: PezpalletStateTrieMigrationMigrationLimits) => SubmittableExtrinsic, [PezpalletStateTrieMigrationMigrationLimits]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + system: { + /** + * Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + * + * If the authorization required a version check, this call will ensure the spec name + * remains unchanged and that the spec version has increased. + * + * Depending on the runtime's `OnSetCode` configuration, this function may directly apply + * the new `code` in the same block or attempt to schedule the upgrade. + * + * All origins are allowed. + **/ + applyAuthorizedUpgrade: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * This call requires Root origin. + **/ + authorizeUpgrade: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + * later. + * + * WARNING: This authorizes an upgrade that will take place without any safety checks, for + * example that the spec name remains the same and that the version number increases. Not + * recommended for normal use. Use `authorize_upgrade` instead. + * + * This call requires Root origin. + **/ + authorizeUpgradeWithoutChecks: AugmentedSubmittable<(codeHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Kill all storage items with a key that starts with the given prefix. + * + * **NOTE:** We rely on the Root origin to provide us the number of subkeys under + * the prefix we are removing to accurately calculate the weight of this function. + **/ + killPrefix: AugmentedSubmittable<(prefix: Bytes | string | Uint8Array, subkeys: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Bytes, u32]>; + /** + * Kill some items from storage. + **/ + killStorage: AugmentedSubmittable<(keys: Vec | (Bytes | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Make some on-chain remark. + * + * Can be executed by every `origin`. + **/ + remark: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Make some on-chain remark and emit event. + **/ + remarkWithEvent: AugmentedSubmittable<(remark: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code. + **/ + setCode: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the new runtime code without doing any checks of the given `code`. + * + * Note that runtime upgrades will not run if this is called with a not-increasing spec + * version! + **/ + setCodeWithoutChecks: AugmentedSubmittable<(code: Bytes | string | Uint8Array) => SubmittableExtrinsic, [Bytes]>; + /** + * Set the number of pages in the WebAssembly environment's heap. + **/ + setHeapPages: AugmentedSubmittable<(pages: u64 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u64]>; + /** + * Set some items of storage. + **/ + setStorage: AugmentedSubmittable<(items: Vec> | ([Bytes | string | Uint8Array, Bytes | string | Uint8Array])[]) => SubmittableExtrinsic, [Vec>]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + timestamp: { + /** + * Set the current time. + * + * This call should be invoked exactly once per block. It will panic at the finalization + * phase, if this call hasn't been invoked by that time. + * + * The timestamp should be greater than the previous one by the amount specified by + * [`Config::MinimumPeriod`]. + * + * The dispatch origin for this call must be _None_. + * + * This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware + * that changing the complexity of this call could result exhausting the resources in a + * block to execute any other calls. + * + * ## Complexity + * - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`) + * - 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in + * `on_finalize`) + * - 1 event handler `on_timestamp_set`. Must be `O(1)`. + **/ + set: AugmentedSubmittable<(now: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + treasury: { + /** + * Check the status of the spend and remove it from the storage if processed. + * + * ## Dispatch Origin + * + * Must be signed. + * + * ## Details + * + * The status check is a prerequisite for retrying a failed payout. + * If a spend has either succeeded or expired, it is removed from the storage by this + * function. In such instances, transaction fees are refunded. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::PaymentFailed`] if the spend payout has failed. + * Emits [`Event::SpendProcessed`] if the spend payout has succeed. + **/ + checkStatus: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Claim a spend. + * + * ## Dispatch Origin + * + * Must be signed + * + * ## Details + * + * Spends must be claimed within some temporal bounds. A spend may be claimed within one + * [`Config::PayoutPeriod`] from the `valid_from` block. + * In case of a payout failure, the spend status must be updated with the `check_status` + * dispatchable before retrying with the current function. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::Paid`] if successful. + **/ + payout: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Force a previously approved proposal to be removed from the approval queue. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * The original deposit will no longer be returned. + * + * ### Parameters + * - `proposal_id`: The index of a proposal + * + * ### Complexity + * - O(A) where `A` is the number of approvals + * + * ### Errors + * - [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the + * approval queue, i.e., the proposal has not been approved. This could also mean the + * proposal does not exist altogether, thus there is no way it would have been approved + * in the first place. + **/ + removeApproval: AugmentedSubmittable<(proposalId: Compact | AnyNumber | Uint8Array) => SubmittableExtrinsic, [Compact]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least + * `amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted + * for assertion using the [`Config::BalanceConverter`]. + * + * ## Details + * + * Create an approved spend for transferring a specific `amount` of `asset_kind` to a + * designated beneficiary. The spend must be claimed using the `payout` dispatchable within + * the [`Config::PayoutPeriod`]. + * + * ### Parameters + * - `asset_kind`: An indicator of the specific asset class to be spent. + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The beneficiary of the spend. + * - `valid_from`: The block number from which the spend can be claimed. It can refer to + * the past if the resulting spend has not yet expired according to the + * [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after + * approval. + * + * ## Events + * + * Emits [`Event::AssetSpendApproved`] if successful. + **/ + spend: AugmentedSubmittable<(assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset, amount: Compact | AnyNumber | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, validFrom: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [PezkuwiRuntimeCommonImplsVersionedLocatableAsset, Compact, XcmVersionedLocation, Option]>; + /** + * Propose and approve a spend of treasury funds. + * + * ## Dispatch Origin + * + * Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`. + * + * ### Details + * NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the + * beneficiary. + * + * ### Parameters + * - `amount`: The amount to be transferred from the treasury to the `beneficiary`. + * - `beneficiary`: The destination account for the transfer. + * + * ## Events + * + * Emits [`Event::SpendApproved`] if successful. + **/ + spendLocal: AugmentedSubmittable<(amount: Compact | AnyNumber | Uint8Array, beneficiary: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [Compact, MultiAddress]>; + /** + * Void previously approved spend. + * + * ## Dispatch Origin + * + * Must be [`Config::RejectOrigin`]. + * + * ## Details + * + * A spend void is only possible if the payout has not been attempted yet. + * + * ### Parameters + * - `index`: The spend index. + * + * ## Events + * + * Emits [`Event::AssetSpendVoided`] if successful. + **/ + voidSpend: AugmentedSubmittable<(index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + utility: { + /** + * Send a call through an indexed pseudonym of the sender. + * + * Filter from origin are passed along. The call will be dispatched with an origin which + * use the same filter as the origin of this call. + * + * NOTE: If you need to ensure that any account-based filtering is not honored (i.e. + * because you expect `proxy` to have been used prior in the call stack and you do not want + * the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1` + * in the Multisig pallet instead. + * + * NOTE: Prior to version *12, this was called `as_limited_sub`. + * + * The dispatch origin for this call must be _Signed_. + **/ + asDerivative: AugmentedSubmittable<(index: u16 | AnyNumber | Uint8Array, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [u16, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + * + * This will return `Ok` in all circumstances. To determine the success of the batch, an + * event is deposited. If a call failed and the batch was interrupted, then the + * `BatchInterrupted` event is deposited, along with the number of successful calls made + * and the error of the failed call. If all were successful, then the `BatchCompleted` + * event is deposited. + **/ + batch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Send a batch of dispatch calls and atomically execute them. + * The whole transaction will rollback and fail if any of the calls failed. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatched without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + batchAll: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatches a function call with a provided origin. + * + * The dispatch origin for this call must be _Root_. + * + * ## Complexity + * - O(1). + **/ + dispatchAs: AugmentedSubmittable<(asOrigin: PezkuwiRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeOriginCaller, RuntimeCall]>; + /** + * Dispatches a function call with a provided origin. + * + * Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call. + * + * The dispatch origin for this call must be _Root_. + **/ + dispatchAsFallible: AugmentedSubmittable<(asOrigin: PezkuwiRuntimeOriginCaller, call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [PezkuwiRuntimeOriginCaller, RuntimeCall]>; + /** + * Send a batch of dispatch calls. + * Unlike `batch`, it allows errors and won't interrupt. + * + * May be called from any origin except `None`. + * + * - `calls`: The calls to be dispatched from the same origin. The number of call must not + * exceed the constant: `batched_calls_limit` (available in constant metadata). + * + * If origin is root then the calls are dispatch without checking origin filter. (This + * includes bypassing `frame_system::Config::BaseCallFilter`). + * + * ## Complexity + * - O(C) where C is the number of calls to be batched. + **/ + forceBatch: AugmentedSubmittable<(calls: Vec | (RuntimeCall | IMethod | string | Uint8Array)[]) => SubmittableExtrinsic, [Vec]>; + /** + * Dispatch a fallback call in the event the main call fails to execute. + * May be called from any origin except `None`. + * + * This function first attempts to dispatch the `main` call. + * If the `main` call fails, the `fallback` is attemted. + * if the fallback is successfully dispatched, the weights of both calls + * are accumulated and an event containing the main call error is deposited. + * + * In the event of a fallback failure the whole call fails + * with the weights returned. + * + * - `main`: The main call to be dispatched. This is the primary action to execute. + * - `fallback`: The fallback call to be dispatched in case the `main` call fails. + * + * ## Dispatch Logic + * - If the origin is `root`, both the main and fallback calls are executed without + * applying any origin filters. + * - If the origin is not `root`, the origin filter is applied to both the `main` and + * `fallback` calls. + * + * ## Use Case + * - Some use cases might involve submitting a `batch` type call in either main, fallback + * or both. + **/ + ifElse: AugmentedSubmittable<(main: RuntimeCall | IMethod | string | Uint8Array, fallback: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall, RuntimeCall]>; + /** + * Dispatch a function call with a specified weight. + * + * This function does not check the weight of the call, and instead allows the + * Root origin to specify the weight of the call. + * + * The dispatch origin for this call must be _Root_. + **/ + withWeight: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array, weight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [RuntimeCall, PezspWeightsWeightV2Weight]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + vesting: { + /** + * Force remove a vesting schedule + * + * The dispatch origin for this call must be _Root_. + * + * - `target`: An account that has a vesting schedule + * - `schedule_index`: The vesting schedule index that should be removed + **/ + forceRemoveVestingSchedule: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, scheduleIndex: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [MultiAddress, u32]>; + /** + * Force a vested transfer. + * + * The dispatch origin for this call must be _Root_. + * + * - `source`: The account whose funds should be transferred. + * - `target`: The account that should be transferred the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + forceVestedTransfer: AugmentedSubmittable<(source: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Merge two vesting schedules together, creating a new vesting schedule that unlocks over + * the highest possible start and end blocks. If both schedules have already started the + * current block will be used as the schedule start; with the caveat that if one schedule + * is finished by the current block, the other will be treated as the new merged schedule, + * unmodified. + * + * NOTE: If `schedule1_index == schedule2_index` this is a no-op. + * NOTE: This will unlock all schedules through the current block prior to merging. + * NOTE: If both schedules have ended by the current block, no new schedule will be created + * and both will be removed. + * + * Merged schedule attributes: + * - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block, + * current_block)`. + * - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`. + * - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`. + * + * The dispatch origin for this call must be _Signed_. + * + * - `schedule1_index`: index of the first schedule to merge. + * - `schedule2_index`: index of the second schedule to merge. + **/ + mergeSchedules: AugmentedSubmittable<(schedule1Index: u32 | AnyNumber | Uint8Array, schedule2Index: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [u32, u32]>; + /** + * Unlock any vested funds of the sender account. + * + * The dispatch origin for this call must be _Signed_ and the sender must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vest: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Create a vested transfer. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account receiving the vested funds. + * - `schedule`: The vesting schedule attached to the transfer. + * + * Emits `VestingCreated`. + * + * NOTE: This will unlock all schedules through the current block. + * + * ## Complexity + * - `O(1)`. + **/ + vestedTransfer: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, schedule: PezpalletVestingVestingInfo) => SubmittableExtrinsic, [MultiAddress, PezpalletVestingVestingInfo]>; + /** + * Unlock any vested funds of a `target` account. + * + * The dispatch origin for this call must be _Signed_. + * + * - `target`: The account whose vested funds should be unlocked. Must have funds still + * locked under this pallet. + * + * Emits either `VestingCompleted` or `VestingUpdated`. + * + * ## Complexity + * - `O(1)`. + **/ + vestOther: AugmentedSubmittable<(target: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + voterList: { + /** + * Move the caller's Id directly in front of `lighter`. + * + * The dispatch origin for this call must be _Signed_ and can only be called by the Id of + * the account going in front of `lighter`. Fee is payed by the origin under all + * circumstances. + * + * Only works if: + * + * - both nodes are within the same bag, + * - and `origin` has a greater `Score` than `lighter`. + **/ + putInFrontOf: AugmentedSubmittable<(lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Same as [`Pallet::put_in_front_of`], but it can be called by anyone. + * + * Fee is paid by the origin under all circumstances. + **/ + putInFrontOfOther: AugmentedSubmittable<(heavier: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array, lighter: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress, MultiAddress]>; + /** + * Declare that some `dislocated` account has, through rewards or penalties, sufficiently + * changed its score that it should properly fall into a different bag than its current + * one. + * + * Anyone can call this function about any potentially dislocated account. + * + * Will always update the stored score of `dislocated` to the correct score, based on + * `ScoreProvider`. + * + * If `dislocated` does not exists, it returns an error. + **/ + rebag: AugmentedSubmittable<(dislocated: MultiAddress | { Id: any } | { Index: any } | { Raw: any } | { Address32: any } | { Address20: any } | string | Uint8Array) => SubmittableExtrinsic, [MultiAddress]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + whitelist: { + dispatchWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array, callEncodedLen: u32 | AnyNumber | Uint8Array, callWeightWitness: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [H256, u32, PezspWeightsWeightV2Weight]>; + dispatchWhitelistedCallWithPreimage: AugmentedSubmittable<(call: RuntimeCall | IMethod | string | Uint8Array) => SubmittableExtrinsic, [RuntimeCall]>; + removeWhitelistedCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + whitelistCall: AugmentedSubmittable<(callHash: H256 | string | Uint8Array) => SubmittableExtrinsic, [H256]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + xcmPallet: { + /** + * Authorize another `aliaser` location to alias into the local `origin` making this call. + * The `aliaser` is only authorized until the provided `expiry` block number. + * The call can also be used for a previously authorized alias in order to update its + * `expiry` block number. + * + * Usually useful to allow your local account to be aliased into from a remote location + * also under your control (like your account on another chain). + * + * WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in + * their/your name. Once authorized using this call, the `aliaser` can freely impersonate + * `origin` in XCM programs executed on the local chain. + **/ + addAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, expires: Option | null | Uint8Array | u64 | AnyNumber) => SubmittableExtrinsic, [XcmVersionedLocation, Option]>; + /** + * Claims assets trapped on this pallet because of leftover assets during XCM execution. + * + * - `origin`: Anyone can call this extrinsic. + * - `assets`: The exact assets that were trapped. Use the version to specify what version + * was the latest when they were trapped. + * - `beneficiary`: The location/account where the claimed assets will be deposited. + **/ + claimAssets: AugmentedSubmittable<(assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedAssets, XcmVersionedLocation]>; + /** + * Execute an XCM message from a local, signed, origin. + * + * An event is deposited indicating whether `msg` could be executed completely or only + * partially. + * + * No more than `max_weight` will be used in its attempted execution. If this is less than + * the maximum amount of weight that the message could take to be executed, then no + * execution attempt will be made. + **/ + execute: AugmentedSubmittable<(message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, maxWeight: PezspWeightsWeightV2Weight) => SubmittableExtrinsic, [XcmVersionedXcm, PezspWeightsWeightV2Weight]>; + /** + * Set a safe XCM version (the version that XCM should be encoded with if the most recent + * version a destination can accept is unknown). + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable. + **/ + forceDefaultXcmVersion: AugmentedSubmittable<(maybeXcmVersion: Option | null | Uint8Array | u32 | AnyNumber) => SubmittableExtrinsic, [Option]>; + /** + * Ask a location to notify us regarding their XCM version and any changes to it. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we should subscribe for XCM version notifications. + **/ + forceSubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Set or unset the global suspension state of the XCM executor. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `suspended`: `true` to suspend, `false` to resume. + **/ + forceSuspension: AugmentedSubmittable<(suspended: bool | boolean | Uint8Array) => SubmittableExtrinsic, [bool]>; + /** + * Require that a particular destination should no longer notify us regarding any XCM + * version changes. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The location to which we are currently subscribed for XCM version + * notifications which we no longer desire. + **/ + forceUnsubscribeVersionNotify: AugmentedSubmittable<(location: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Extoll that a particular destination can be communicated with through a particular + * version of XCM. + * + * - `origin`: Must be an origin specified by AdminOrigin. + * - `location`: The destination that is being described. + * - `xcm_version`: The latest version of XCM that `location` supports. + **/ + forceXcmVersion: AugmentedSubmittable<(location: StagingXcmV5Location | { parents?: any; interior?: any } | string | Uint8Array, version: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [StagingXcmV5Location, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedReserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + limitedTeleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Remove all previously authorized `aliaser`s that can alias into the local `origin` + * making this call. + **/ + removeAllAuthorizedAliases: AugmentedSubmittable<() => SubmittableExtrinsic, []>; + /** + * Remove a previously authorized `aliaser` from the list of locations that can alias into + * the local `origin` making this call. + **/ + removeAuthorizedAlias: AugmentedSubmittable<(aliaser: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve. + * + * `assets` must have same reserve location and may not be teleportable to `dest`. + * - `assets` have local reserve: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `assets` have destination reserve: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move + * reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` + * to mint and deposit reserve-based assets to `beneficiary`. + * + * **This function is deprecated: Use `limited_reserve_transfer_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + reserveTransferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + send: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, message: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedXcm]>; + /** + * Teleport some assets from the local chain to some destination chain. + * + * **This function is deprecated: Use `limited_teleport_assets` instead.** + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited, + * with all fees taken as needed from the asset. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` chain. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + **/ + teleportAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32]>; + /** + * Transfer some assets from the local chain to the destination chain through their local, + * destination or remote reserve, or through teleports. + * + * Fee payment on the destination side is made from the asset in the `assets` vector of + * index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for + * `weight_limit` of weight. If more weight is needed than `weight_limit`, then the + * operation will fail and the sent assets may be at risk. + * + * `assets` (excluding `fees`) must have same reserve location or otherwise be teleportable + * to `dest`, no limitations imposed on `fees`. + * - for local reserve: transfer assets to sovereign account of destination chain and + * forward a notification XCM to `dest` to mint and deposit reserve-based assets to + * `beneficiary`. + * - for destination reserve: burn local assets and forward a notification to `dest` chain + * to withdraw the reserve assets from this chain's sovereign account and deposit them + * to `beneficiary`. + * - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves + * from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint + * and deposit reserve-based assets to `beneficiary`. + * - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport + * assets and deposit them to `beneficiary`. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `X2(Parent, + * Parachain(..))` to send from parachain to parachain, or `X1(Parachain(..))` to send + * from relay to parachain. + * - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will + * generally be an `AccountId32` value. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `fee_asset_item`: The index into `assets` of the item which should be used to pay + * fees. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssets: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, beneficiary: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feeAssetItem: u32 | AnyNumber | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedLocation, XcmVersionedAssets, u32, XcmV3WeightLimit]>; + /** + * Transfer assets from the local chain to the destination chain using explicit transfer + * types for assets and fees. + * + * `assets` must have same reserve location or may be teleportable to `dest`. Caller must + * provide the `assets_transfer_type` to be used for `assets`: + * - `TransferType::LocalReserve`: transfer assets to sovereign account of destination + * chain and forward a notification XCM to `dest` to mint and deposit reserve-based + * assets to `beneficiary`. + * - `TransferType::DestinationReserve`: burn local assets and forward a notification to + * `dest` chain to withdraw the reserve assets from this chain's sovereign account and + * deposit them to `beneficiary`. + * - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve` + * chain to move reserves from this chain's SA to `dest` chain's SA, and forward another + * XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically + * the remote `reserve` is Asset Hub. + * - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to + * mint/teleport assets and deposit them to `beneficiary`. + * + * On the destination chain, as well as any intermediary hops, `BuyExecution` is used to + * buy execution using transferred `assets` identified by `remote_fees_id`. + * Make sure enough of the specified `remote_fees_id` asset is included in the given list + * of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight + * is needed than `weight_limit`, then the operation will fail and the sent assets may be + * at risk. + * + * `remote_fees_id` may use different transfer type than rest of `assets` and can be + * specified through `fees_transfer_type`. + * + * The caller needs to specify what should happen to the transferred assets once they reach + * the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which + * contains the instructions to execute on `dest` as a final step. + * This is usually as simple as: + * `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`, + * but could be something more exotic like sending the `assets` even further. + * + * - `origin`: Must be capable of withdrawing the `assets` and executing XCM. + * - `dest`: Destination context for the assets. Will typically be `[Parent, + * Parachain(..)]` to send from parachain to parachain, or `[Parachain(..)]` to send from + * relay to parachain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from + * parachain across a bridge to another ecosystem destination. + * - `assets`: The assets to be withdrawn. This should include the assets used to pay the + * fee on the `dest` (and possibly reserve) chains. + * - `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`. + * - `remote_fees_id`: One of the included `assets` to be used to pay fees. + * - `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets. + * - `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the + * transfer, which also determines what happens to the assets on the destination chain. + * - `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase. + **/ + transferAssetsUsingTypeAndThen: AugmentedSubmittable<(dest: XcmVersionedLocation | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assets: XcmVersionedAssets | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, assetsTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, remoteFeesId: XcmVersionedAssetId | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, feesTransferType: StagingXcmExecutorAssetTransferTransferType | { Teleport: any } | { LocalReserve: any } | { DestinationReserve: any } | { RemoteReserve: any } | string | Uint8Array, customXcmOnDest: XcmVersionedXcm | { V3: any } | { V4: any } | { V5: any } | string | Uint8Array, weightLimit: XcmV3WeightLimit | { Unlimited: any } | { Limited: any } | string | Uint8Array) => SubmittableExtrinsic, [XcmVersionedLocation, XcmVersionedAssets, StagingXcmExecutorAssetTransferTransferType, XcmVersionedAssetId, StagingXcmExecutorAssetTransferTransferType, XcmVersionedXcm, XcmV3WeightLimit]>; + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + }; + } // AugmentedSubmittables +} // declare module diff --git a/packages/api-augment/tsconfig.assetHubPezkuwi.json b/packages/api-augment/tsconfig.assetHubPezkuwi.json new file mode 100644 index 0000000..36b53a8 --- /dev/null +++ b/packages/api-augment/tsconfig.assetHubPezkuwi.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "include": [ + "**/base.ts", + "**/assetHubZagros/*.ts" + ], + "exclude": [ + "**/assetHubZagros/*.spec.ts" + ], + "references": [ + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" } + ] +} diff --git a/packages/api-augment/tsconfig.assetHubZagros.json b/packages/api-augment/tsconfig.assetHubZagros.json new file mode 100644 index 0000000..36b53a8 --- /dev/null +++ b/packages/api-augment/tsconfig.assetHubZagros.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "include": [ + "**/base.ts", + "**/assetHubZagros/*.ts" + ], + "exclude": [ + "**/assetHubZagros/*.spec.ts" + ], + "references": [ + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" } + ] +} diff --git a/packages/api-augment/tsconfig.build.json b/packages/api-augment/tsconfig.build.json new file mode 100644 index 0000000..395947f --- /dev/null +++ b/packages/api-augment/tsconfig.build.json @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/*.spec.ts", + "**/mod.ts", + "**/assetHubZagros/*.ts", + "**/assetHubPezkuwi/*.ts", + "**/assetHubDicle/*.ts", + "**/zagros/*.ts", + "**/pezkuwi/*.ts", + "**/dicle/*.ts" + ], + "references": [ + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" } + ] +} diff --git a/packages/api-augment/tsconfig.pezkuwi.json b/packages/api-augment/tsconfig.pezkuwi.json new file mode 100644 index 0000000..e241c73 --- /dev/null +++ b/packages/api-augment/tsconfig.pezkuwi.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "include": [ + "**/base.ts", + "**/pezkuwi/*.ts" + ], + "exclude": [ + "**/pezkuwi/*.spec.ts" + ], + "references": [ + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" } + ] +} diff --git a/packages/api-augment/tsconfig.zagros.json b/packages/api-augment/tsconfig.zagros.json new file mode 100644 index 0000000..f533457 --- /dev/null +++ b/packages/api-augment/tsconfig.zagros.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "include": [ + "**/base.ts", + "**/zagros/*.ts" + ], + "exclude": [ + "**/zagros/*.spec.ts" + ], + "references": [ + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" } + ] +} diff --git a/packages/api-base/README.md b/packages/api-base/README.md new file mode 100644 index 0000000..6f41b27 --- /dev/null +++ b/packages/api-base/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/api-base + +API Base interfaces diff --git a/packages/api-base/package.json b/packages/api-base/package.json new file mode 100644 index 0000000..09d2c61 --- /dev/null +++ b/packages/api-base/package.json @@ -0,0 +1,30 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Interfaces for interacting with contracts and contract ABIs", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-base#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/api-base", + "repository": { + "directory": "packages/api-base", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/rpc-core": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + } +} diff --git a/packages/api-base/src/bundle.ts b/packages/api-base/src/bundle.ts new file mode 100644 index 0000000..a066b09 --- /dev/null +++ b/packages/api-base/src/bundle.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { packageInfo } from './packageInfo.js'; diff --git a/packages/api-base/src/index.ts b/packages/api-base/src/index.ts new file mode 100644 index 0000000..ea4d526 --- /dev/null +++ b/packages/api-base/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/api-base/src/mod.ts b/packages/api-base/src/mod.ts new file mode 100644 index 0000000..0513ce4 --- /dev/null +++ b/packages/api-base/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/api-base/src/packageDetect.ts b/packages/api-base/src/packageDetect.ts new file mode 100644 index 0000000..cb8aceb --- /dev/null +++ b/packages/api-base/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2026 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as rpcInfo } from '@pezkuwi/rpc-core/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [rpcInfo, typesInfo]); diff --git a/packages/api-base/src/packageInfo.ts b/packages/api-base/src/packageInfo.ts new file mode 100644 index 0000000..2516c9b --- /dev/null +++ b/packages/api-base/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/api-base', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/api-base/src/types/api.ts b/packages/api-base/src/types/api.ts new file mode 100644 index 0000000..6148658 --- /dev/null +++ b/packages/api-base/src/types/api.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DecoratedRpc, QueryableCalls, QueryableConsts, QueryableStorage, QueryableStorageMulti, SubmittableExtrinsics } from '@pezkuwi/api-base/types'; +import type { RpcInterface } from '@pezkuwi/rpc-core/types'; +import type { Metadata } from '@pezkuwi/types'; +import type { Hash, RuntimeVersion } from '@pezkuwi/types/interfaces'; +import type { Registry, Signer } from '@pezkuwi/types/types'; + +// A smaller interface of ApiRx, used in derive and in SubmittableExtrinsic +export interface ApiInterfaceRx { + call: QueryableCalls<'rxjs'>; + consts: QueryableConsts<'rxjs'>; + extrinsicType: number; + genesisHash?: Hash | undefined; + hasSubscriptions: boolean; + registry: Registry; + runtimeMetadata: Metadata; + runtimeVersion: RuntimeVersion; + query: QueryableStorage<'rxjs'>; + queryMulti: QueryableStorageMulti<'rxjs'>; + rpc: DecoratedRpc<'rxjs', RpcInterface>; + tx: SubmittableExtrinsics<'rxjs'>; + signer?: Signer | undefined; + + callAt: (blockHash: Uint8Array | string, knownVersion?: RuntimeVersion) => Observable>; + queryAt: (blockHash: Uint8Array | string, knownVersion?: RuntimeVersion) => Observable>; +} diff --git a/packages/api-base/src/types/base.ts b/packages/api-base/src/types/base.ts new file mode 100644 index 0000000..f47cb2c --- /dev/null +++ b/packages/api-base/src/types/base.ts @@ -0,0 +1,78 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AnyFunction, Callback, Codec } from '@pezkuwi/types/types'; + +export type Push = [...T, V] + +export type DropLast = T extends readonly [...infer U, any?] ? U : [...T]; + +export type ApiTypes = 'promise' | 'rxjs'; + +// Returns the inner type of an Observable +export type ObsInnerType> = O extends Observable ? U : never; + +export type VoidFn = () => void; + +export type UnsubscribePromise = Promise; + +export type PromiseOrObs = + ApiType extends 'rxjs' + ? Observable + : Promise; + +export type MethodResult = + ApiType extends 'rxjs' + ? RxResult + : PromiseResult; + +// Here are the return types of these parts of the api: +// - api.query.*.*: no exact typings +// - api.tx.*.*: SubmittableExtrinsic +// - api.derive.*.*: MethodResult +// - api.rpc.*.*: no exact typings (for now, FIXME: should be MethodResult, like in derive) + +// These are the types that don't lose type information (used for api.derive.*) +// Also use these for api.rpc.* https://github.com/pezkuwichain/pezkuwi-api/issues/1009 +export interface RxResult { + (...args: Parameters): Observable>>; + (...args: Parameters): Observable; +} + +export interface PromiseResult { + (...args: Parameters): Promise>>; + (...args: Push, Callback>>>): UnsubscribePromise; + (...args: Parameters): Promise; + (...args: Push, Callback>): UnsubscribePromise; +} + +// In the abstract `decorateMethod` in Base.ts, we can also pass in some meta- +// information. This describes it. +export interface DecorateMethodOptions { + methodName?: string; + overrideNoSub?: (...args: unknown[]) => Observable; +} + +export type DecorateFn = (...args: any[]) => Observable; + +export interface PaginationOptions { + args: A[]; + pageSize: number; + startKey?: string; +} + +export type DecorateMethod<_ApiType extends ApiTypes, T = any> = + Observable>(method: M, options?: DecorateMethodOptions) => T; + +type AsCodec = R extends Codec + ? R + : Codec; + +export type ReturnCodec = AsCodec>>; + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface EmptyBase<_> { + // this is use to allow use to have unused vars in augmented interfaces, + // so intentionally left empty +} diff --git a/packages/api-base/src/types/calls.ts b/packages/api-base/src/types/calls.ts new file mode 100644 index 0000000..78a8dc8 --- /dev/null +++ b/packages/api-base/src/types/calls.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AnyFunction, Codec, DefinitionCallNamed } from '@pezkuwi/types/types'; +import type { ApiTypes, EmptyBase, ReturnCodec } from './base.js'; + +export type DecoratedCallBase Observable> = + ApiType extends 'rxjs' + ? > (...args: Parameters) => Observable + : > (...args: Parameters) => Promise; + +export type AugmentedCall Observable> = DecoratedCallBase & { + /** The metadata/description/definition for this method */ + meta: DefinitionCallNamed +}; + +// augmented interfaces + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface AugmentedCalls extends EmptyBase { + // augmented +} + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +export interface QueryableCalls extends AugmentedCalls { + // when non-augmented, we need to at least have Codec results + [key: string]: QueryableModuleCalls; +} + +export type QueryableModuleCalls = Record>; diff --git a/packages/api-base/src/types/consts.ts b/packages/api-base/src/types/consts.ts new file mode 100644 index 0000000..d3080ac --- /dev/null +++ b/packages/api-base/src/types/consts.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PezpalletConstantMetadataLatest } from '@pezkuwi/types/interfaces'; +import type { Codec } from '@pezkuwi/types/types'; +import type { ApiTypes, EmptyBase } from './base.js'; + +export interface AugmentedConst<_ extends ApiTypes> { + meta: PezpalletConstantMetadataLatest; +} + +// augmented interfaces + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface AugmentedConsts extends EmptyBase { + // augmented +} + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +export interface QueryableConsts extends AugmentedConsts { + // when non-augmented, we need to at least have Codec results + [key: string]: QueryableModuleConsts; +} + +export type QueryableModuleConsts = Record; diff --git a/packages/api-base/src/types/derive.ts b/packages/api-base/src/types/derive.ts new file mode 100644 index 0000000..b712748 --- /dev/null +++ b/packages/api-base/src/types/derive.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; + +type DeriveCreator = (instanceId: string, api: unknown) => (...args: unknown[]) => Observable; + +export type DeriveCustom = Record>; diff --git a/packages/api-base/src/types/errors.ts b/packages/api-base/src/types/errors.ts new file mode 100644 index 0000000..a9b6182 --- /dev/null +++ b/packages/api-base/src/types/errors.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { IsError } from '@pezkuwi/types/metadata/decorate/types'; +import type { ApiTypes, EmptyBase } from './base.js'; + +export type AugmentedError<_ extends ApiTypes> = IsError; + +// augmented interfaces + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface AugmentedErrors extends EmptyBase { + // augmented +} + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +export interface DecoratedErrors extends AugmentedErrors { + // when non-augmented, we need to at least have Codec results + [key: string]: ModuleErrors; +} + +export type ModuleErrors = Record>; diff --git a/packages/api-base/src/types/events.ts b/packages/api-base/src/types/events.ts new file mode 100644 index 0000000..69594b1 --- /dev/null +++ b/packages/api-base/src/types/events.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { IsEvent } from '@pezkuwi/types/metadata/decorate/types'; +import type { AnyTuple } from '@pezkuwi/types/types'; +import type { ApiTypes, EmptyBase } from './base.js'; + +export type AugmentedEvent<_ extends ApiTypes, T extends AnyTuple = AnyTuple, N = unknown> = IsEvent; + +// augmented interfaces + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface AugmentedEvents extends EmptyBase { + // augmented +} + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +export interface DecoratedEvents extends AugmentedEvents { + // when non-augmented, we need to at least have Codec results + [key: string]: ModuleEvents; +} + +export type ModuleEvents = Record>; diff --git a/packages/api-base/src/types/index.ts b/packages/api-base/src/types/index.ts new file mode 100644 index 0000000..8d0a198 --- /dev/null +++ b/packages/api-base/src/types/index.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// These are augmented, do an augmentation export +export * from '@pezkuwi/api-base/types/calls'; +export * from '@pezkuwi/api-base/types/consts'; +export * from '@pezkuwi/api-base/types/errors'; +export * from '@pezkuwi/api-base/types/events'; +export * from '@pezkuwi/api-base/types/storage'; +export * from '@pezkuwi/api-base/types/submittable'; + +// normal exports +export * from './api.js'; +export * from './base.js'; +export * from './derive.js'; +export * from './rpc.js'; diff --git a/packages/api-base/src/types/rpc.ts b/packages/api-base/src/types/rpc.ts new file mode 100644 index 0000000..98f23da --- /dev/null +++ b/packages/api-base/src/types/rpc.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AnyFunction, AnyJson, Callback, DefinitionRpc } from '@pezkuwi/types/types'; +import type { ApiTypes, PromiseResult, Push, RxResult, UnsubscribePromise } from './base.js'; + +export type { AugmentedRpc } from '@pezkuwi/rpc-core/types'; + +export interface RxRpcResult extends RxResult { + raw (...args: Parameters): Observable; + meta: DefinitionRpc; +} + +export interface PromiseRpcResult extends PromiseResult { + raw (...args: Parameters): Promise; + raw (...args: Push, Callback>): UnsubscribePromise; + meta: DefinitionRpc; +} + +export type RpcMethodResult = ApiType extends 'rxjs' + ? RxRpcResult + : PromiseRpcResult; + +export type DecoratedRpcSection = { + [M in keyof Section]: Section[M] extends AnyFunction + ? RpcMethodResult + : never +} + +export type RawRpcType = (method: string, ...params: unknown[]) => ApiType extends 'rxjs' ? Observable : Promise; + +export type DecoratedRpc = { + [S in keyof AllSections]: DecoratedRpcSection +} & RawRpcType diff --git a/packages/api-base/src/types/storage.ts b/packages/api-base/src/types/storage.ts new file mode 100644 index 0000000..9981b7a --- /dev/null +++ b/packages/api-base/src/types/storage.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { StorageKey, u64 } from '@pezkuwi/types'; +import type { Hash } from '@pezkuwi/types/interfaces'; +import type { StorageEntry } from '@pezkuwi/types/primitive/types'; +import type { AnyFunction, AnyTuple, Callback, Codec, IStorageKey } from '@pezkuwi/types/types'; +import type { ApiTypes, DropLast, EmptyBase, MethodResult, PaginationOptions, PromiseOrObs, ReturnCodec, UnsubscribePromise } from './base.js'; + +type StorageEntryObservableMulti = (args: unknown[]) => Observable; + +interface StorageEntryPromiseMulti { + (args: unknown[]): Promise; + (args: unknown[], callback: Callback): UnsubscribePromise; +} + +export interface StorageEntryPromiseOverloads { + (arg1?: unknown, arg2?: unknown, arg3?: unknown): Promise; + (arg1?: unknown, arg2?: unknown, arg3?: unknown): Promise; + (callback: Callback): UnsubscribePromise; + (arg: unknown, callback: Callback): UnsubscribePromise; + (arg1: unknown, arg2: unknown, callback: Callback): UnsubscribePromise; + (arg1: unknown, arg2: unknown, arg3: unknown, callback: Callback): UnsubscribePromise; +} + +export interface StorageEntryPromiseOverloadsAt { + (arg1?: unknown, arg2?: unknown, arg3?: unknown): Promise; + (arg1?: unknown, arg2?: unknown, arg3?: unknown): Promise; +} + +// This is the most generic typings we can have for a storage entry function +export type GenericStorageEntryFunction = (...args: unknown[]) => Observable + +export type QueryableStorageEntry = + ApiType extends 'rxjs' + ? AugmentedQuery<'rxjs', GenericStorageEntryFunction, A> + : AugmentedQuery<'promise', GenericStorageEntryFunction, A> & StorageEntryPromiseOverloads; + +export type QueryableStorageEntryAt = + ApiType extends 'rxjs' + ? AugmentedQueryAt<'rxjs', GenericStorageEntryFunction, A> + : AugmentedQueryAt<'promise', GenericStorageEntryFunction, A> & StorageEntryPromiseOverloadsAt; + +export interface StorageEntryBase extends StorageEntryBaseAt { + /** + * @deprecated Use api.at() + */ + at: >(hash: Hash | Uint8Array | string, ...args: Parameters) => PromiseOrObs; + creator: StorageEntry; + /** + * @deprecated Use api.at() + */ + entriesAt: , K extends AnyTuple = A>(hash: Hash | Uint8Array | string, ...args: DropLast>) => PromiseOrObs, T][]>; + /** + * @deprecated Use api.at() + */ + keysAt: (hash: Hash | Uint8Array | string, ...args: DropLast>) => PromiseOrObs[]>; + /** + * @deprecated Use api.at() + */ + sizeAt: (hash: Hash | Uint8Array | string, ...args: Parameters) => PromiseOrObs; + multi: ApiType extends 'rxjs' + ? StorageEntryObservableMulti> + : StorageEntryPromiseMulti>; +} + +export interface StorageEntryBaseAt { + entries: , K extends AnyTuple = A>(...args: DropLast>) => PromiseOrObs, T][]>; + entriesPaged: , K extends AnyTuple = A>(opts: PaginationOptions[0]>) => PromiseOrObs, T][]>; + hash: (...args: Parameters) => PromiseOrObs; + is: (key: IStorageKey) => key is IStorageKey; + key: (...args: Parameters) => string; + keyPrefix: (...args: DropLast>) => string; + keys: (...args: DropLast>) => PromiseOrObs[]>; + keysPaged: (opts: PaginationOptions[0]>) => PromiseOrObs[]>; + size: (...args: Parameters) => PromiseOrObs; +} + +export type QueryableModuleStorage = Record>; + +export type QueryableModuleStorageAt = Record>; + +export type QueryableStorageMultiArg = + QueryableStorageEntry | + [QueryableStorageEntry, ...unknown[]]; + +export type QueryableStorageMultiBase = (calls: QueryableStorageMultiArg[]) => Observable; + +export interface QueryableStorageMultiPromise { + (calls: QueryableStorageMultiArg[], callback: Callback): UnsubscribePromise; + (calls: QueryableStorageMultiArg[]): Promise; +} + +export type QueryableStorageMulti = + ApiType extends 'rxjs' + ? QueryableStorageMultiBase + : QueryableStorageMultiPromise; + +export type AugmentedQuery = MethodResult & StorageEntryBase; + +export type AugmentedQueryAt = MethodResult & StorageEntryBaseAt; + +// backwards compatibility-only +export type AugmentedQueryDoubleMap = AugmentedQuery; + +// augmented interfaces + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface AugmentedQueries extends EmptyBase { + // augmented +} + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +export interface QueryableStorage extends AugmentedQueries { + // when non-augmented, we need to at least have Codec results + [key: string]: QueryableModuleStorage; +} + +// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style +export interface QueryableStorageAt extends AugmentedQueries { + [key: string]: QueryableModuleStorageAt; +} diff --git a/packages/api-base/src/types/submittable.ts b/packages/api-base/src/types/submittable.ts new file mode 100644 index 0000000..61513f9 --- /dev/null +++ b/packages/api-base/src/types/submittable.ts @@ -0,0 +1,114 @@ +// Copyright 2017-2025 @pezkuwi/api-base authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, Address, ApplyExtrinsicResult, BlockNumber, Call, DispatchError, DispatchInfo, EventRecord, Extrinsic, ExtrinsicStatus, Hash, RuntimeDispatchInfo } from '@pezkuwi/types/interfaces'; +import type { AnyFunction, AnyNumber, AnyTuple, AnyU8a, Callback, CallBase, Codec, IExtrinsicEra, IKeyringPair, ISubmittableResult, Signer } from '@pezkuwi/types/types'; +import type { ApiTypes, EmptyBase, PromiseOrObs } from './base.js'; + +export type AugmentedSubmittable = T & CallBase; + +export type AddressOrPair = IKeyringPair | string | AccountId | Address; + +export interface SignerOptions { + blockHash: Uint8Array | string; + era?: IExtrinsicEra | number; + nonce: AnyNumber | Codec; + signer?: Signer; + tip?: AnyNumber; + assetId?: AnyNumber | object; + mode?: AnyNumber; + metadataHash?: AnyU8a; + withSignedTransaction?: boolean; +} + +export type SubmittableDryRunResult = + ApiType extends 'rxjs' + ? Observable + : Promise; + +export type SubmittableResultResult = + ApiType extends 'rxjs' + ? Observable + : Promise; + +export type SubmittableResultSubscription = + ApiType extends 'rxjs' + ? Observable + : Promise<() => void>; + +export type SubmittablePaymentResult = + ApiType extends 'rxjs' + ? Observable + : Promise; + +export interface SubmittableResultValue { + dispatchError?: DispatchError | undefined; + dispatchInfo?: DispatchInfo | undefined; + events?: EventRecord[]; + internalError?: Error | undefined; + status: ExtrinsicStatus; + txHash: Hash; + txIndex?: number | undefined; + blockNumber?: BlockNumber; +} + +export interface SubmittableExtrinsic extends Extrinsic { + /** true if api.rpc.system.dryRun is available, enabling dryRun(...) */ + hasDryRun: boolean; + /** true if api.call.transactionPaymentApi.queryInfo is available, enabling paymentInfo(...) */ + hasPaymentInfo: boolean; + + dryRun (account: AddressOrPair, options?: Partial): SubmittableDryRunResult; + + paymentInfo (account: AddressOrPair, options?: Partial): SubmittablePaymentResult; + + send (): SubmittableResultResult; + + send (statusCb: Callback): SubmittableResultSubscription; + + /** + * @description Sign the constructed transaction asynchronously. + * + * The result is a signed extrinsic that is ready to be broadcast to the network via `.send()`, `rpc.author.submitExtrinsic()`, or + * any custom submission logic. + */ + signAsync (account: AddressOrPair, _options?: Partial): PromiseOrObs; + + /** + * @description Sign and broadcast the constructued transaction. + * + * Note for injected signers: + * As of v12.0.1 and up the `SignerResult` return type for `signPayload` allows for the `signedTransaction` field. + * This allows the signer to input a signed transaction that will be directly broadcasted. This + * bypasses the api adding the signature to the payload. The api will ensure that the Call Data is not changed before it broadcasts the + * transaction. This allows for the signer to modify the payload to add things like `mode`, and `metadataHash` for + * signedExtensions such as `CheckMetadataHash`. + */ + signAndSend (account: AddressOrPair, options?: Partial): SubmittableResultResult; + + signAndSend (account: AddressOrPair, statusCb: Callback): SubmittableResultSubscription; + + signAndSend (account: AddressOrPair, options: Partial, statusCb?: Callback): SubmittableResultSubscription; + + withResultTransform (transform: (input: ISubmittableResult) => ISubmittableResult): this; +} + +export interface SubmittableExtrinsicFunction extends CallBase { + (...params: any[]): SubmittableExtrinsic; +} + +// augmented interfaces + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface AugmentedSubmittables extends EmptyBase { + // augmented +} + +export interface SubmittableExtrinsics extends AugmentedSubmittables { + (extrinsic: Call | Extrinsic | Uint8Array | string): SubmittableExtrinsic; + // when non-augmented, we need to at least have Codec results + [key: string]: SubmittableModuleExtrinsics; +} + +export type SubmittableModuleExtrinsics = Record>; diff --git a/packages/api-base/tsconfig.build.json b/packages/api-base/tsconfig.build.json new file mode 100644 index 0000000..f815200 --- /dev/null +++ b/packages/api-base/tsconfig.build.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/mod.ts" + ], + "references": [ + { "path": "../rpc-core/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/packages/api-contract/README.md b/packages/api-contract/README.md new file mode 100644 index 0000000..bbd58a5 --- /dev/null +++ b/packages/api-contract/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/api-contract + +Interfaces to allow for the encoding and decoding of Bizinikiwi contract ABIs. diff --git a/packages/api-contract/package.json b/packages/api-contract/package.json new file mode 100644 index 0000000..8751e8c --- /dev/null +++ b/packages/api-contract/package.json @@ -0,0 +1,39 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Interfaces for interacting with contracts and contract ABIs", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-contract#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/api-contract", + "repository": { + "directory": "packages/api-contract", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/api": "16.5.4", + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/types-create": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/util-crypto": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/keyring": "^14.0.1", + "@pezkuwi/types-support": "16.5.4" + } +} diff --git a/packages/api-contract/src/Abi/Abi.spec.ts b/packages/api-contract/src/Abi/Abi.spec.ts new file mode 100644 index 0000000..6db9228 --- /dev/null +++ b/packages/api-contract/src/Abi/Abi.spec.ts @@ -0,0 +1,235 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Registry } from '@pezkuwi/types/types'; + +import fs from 'node:fs'; +import process from 'node:process'; + +import { TypeDefInfo } from '@pezkuwi/types/types'; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi-contracts-node'; +import { blake2AsHex } from '@pezkuwi/util-crypto'; + +import { Metadata, TypeRegistry } from '../../../types/src/bundle.js'; +import abis from '../test/contracts/index.js'; +import { Abi } from './index.js'; + +interface SpecDef { + messages: { + label: string; + name: string[] | string + }[] +} + +interface JSONAbi { + source: { + compiler: string, + hash: string, + language: string, + wasm: string + }, + spec: SpecDef; + V1: { + spec: SpecDef; + }, + V2: { + spec: SpecDef; + }, + V3: { + spec: SpecDef; + }, + V4: { + spec: SpecDef; + } +} + +function stringifyInfo (key: string, value: unknown): unknown { + return key === 'info' && typeof value === 'number' + ? TypeDefInfo[value] + : value; +} + +function stringifyJson (registry: Registry): string { + const defs = registry.lookup.types.map(({ id }) => + registry.lookup.getTypeDef(id) + ); + + return JSON.stringify(defs, stringifyInfo, 2); +} + +describe('Abi', (): void => { + describe('ABI', (): void => { + Object.entries(abis).forEach(([abiName, _abi]) => { + const abi = _abi as unknown as JSONAbi; + + it(`initializes from a contract ABI (${abiName})`, (): void => { + try { + const messageIds = (abi.V4 || abi.V3 || abi.V2 || abi.V1 || abi).spec.messages.map(({ label, name }) => + label || ( + Array.isArray(name) + ? name.join('::') + : name + ) + ); + const inkAbi = new Abi(abis[abiName]); + + expect(inkAbi.messages.map(({ identifier }) => identifier)).toEqual(messageIds); + } catch (error) { + console.error(error); + + throw error; + } + }); + }); + }); + + describe('TypeDef', (): void => { + for (const [abiName, abiJson] of Object.entries(abis)) { + it(`initializes from a contract ABI: ${abiName}`, (): void => { + const abi = new Abi(abiJson); + const registryJson = stringifyJson(abi.registry); + const cmpFile = new URL(`../test/compare/${abiName}.test.json`, import.meta.url); + + try { + expect( + JSON.parse(registryJson) + ).toEqual( + JSON.parse(fs.readFileSync(cmpFile, 'utf-8')) + ); + } catch (error) { + if (process.env['GITHUB_REPOSITORY']) { + console.error(registryJson); + + throw error; + } + + fs.writeFileSync(cmpFile, registryJson, { flag: 'w' }); + } + }); + } + }); + + it('has the correct hash for the source', (): void => { + const abi = new Abi(abis['ink_v0_flipperBundle']); + const bundle = abis['ink_v0_flipperBundle'] as unknown as JSONAbi; + + // manual + expect(bundle.source.hash).toEqual(blake2AsHex(bundle.source.wasm)); + + // the Codec hash + expect(bundle.source.hash).toEqual(abi.info.source.wasm.hash.toHex()); + + // the hash as per the actual Abi + expect(bundle.source.hash).toEqual(abi.info.source.wasmHash.toHex()); + }); + + describe('Events', (): void => { + const registry = new TypeRegistry(); + + beforeAll((): void => { + const metadata = new Metadata(registry, rpcMetadata); + + registry.setMetadata(metadata); + }); + + it('decoding <=ink!v4 event', (): void => { + const abiJson = abis['ink_v4_erc20Metadata']; + + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + + const eventRecordHex = + '0x0001000000080360951b8baf569bca905a279c12d6ce17db7cdce23a42563870ef585129ce5dc64d010001d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000c0045726332303a3a5472616e7366657200000000000000000000000000000000da2d695d3b5a304e0039e7fc4419c34fa0c1f239189c99bb72a6484f1634782b2b00c7d40fe6d84d660f3e6bed90f218e022a0909f7e1a7ea35ada8b6e003564'; + const record = registry.createType('EventRecord', eventRecordHex); + + const decodedEvent = abi.decodeEvent(record); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman() + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit' + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + + it('decoding >=ink!v5 event', (): void => { + const abiJson = abis['ink_v5_erc20Metadata']; + + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + + const eventRecordHex = + '0x00010000000803da17150e96b3955a4db6ad35ddeb495f722f9c1d84683113bfb096bf3faa30f2490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb106000000000000000cb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cbd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; + const record = registry.createType('EventRecord', eventRecordHex); + + const decodedEvent = abi.decodeEvent(record); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman() + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit' + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + + it('decoding >=ink!v5 anonymous event', (): void => { + const abiJson = abis['ink_v5_erc20AnonymousTransferMetadata']; + + expect(abiJson).toBeDefined(); + const abi = new Abi(abiJson); + + expect(abi.events[0].identifier).toEqual('erc20::erc20::Transfer'); + expect(abi.events[0].signatureTopic).toEqual(null); + + const eventRecordWithAnonymousEventHex = '0x00010000000803538e726248a9c155911e7d99f4f474c3408630a2f6275dd501d4471c7067ad2c490101d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d018eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4800505a4f7e9f4eb1060000000000000008d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'; + const record = registry.createType('EventRecord', eventRecordWithAnonymousEventHex); + + const decodedEvent = abi.decodeEvent(record); + + expect(decodedEvent.event.args.length).toEqual(3); + expect(decodedEvent.args.length).toEqual(3); + expect(decodedEvent.event.identifier).toEqual('erc20::erc20::Transfer'); + + const decodedEventHuman = decodedEvent.event.args.reduce((prev, cur, index) => { + return { + ...prev, + [cur.name]: decodedEvent.args[index].toHuman() + }; + }, {}); + + const expectedEvent = { + from: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY', + to: '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', + value: '123.4567 MUnit' + }; + + expect(decodedEventHuman).toEqual(expectedEvent); + }); + }); +}); diff --git a/packages/api-contract/src/Abi/index.ts b/packages/api-contract/src/Abi/index.ts new file mode 100644 index 0000000..fa26cc8 --- /dev/null +++ b/packages/api-contract/src/Abi/index.ts @@ -0,0 +1,477 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes, Vec } from '@pezkuwi/types'; +import type { ChainProperties, ContractConstructorSpecLatest, ContractEventParamSpecLatest, ContractMessageParamSpecLatest, ContractMessageSpecLatest, ContractMetadata, ContractMetadataV4, ContractMetadataV5, ContractMetadataV6, ContractProjectInfo, ContractTypeSpec, EventRecord } from '@pezkuwi/types/interfaces'; +import type { Codec, Registry, TypeDef } from '@pezkuwi/types/types'; +import type { AbiConstructor, AbiEvent, AbiEventParam, AbiMessage, AbiMessageParam, AbiParam, DecodedEvent, DecodedMessage } from '../types.js'; + +import { Option, TypeRegistry } from '@pezkuwi/types'; +import { TypeDefInfo } from '@pezkuwi/types-create'; +import { assertReturn, compactAddLength, compactStripLength, isBn, isNumber, isObject, isString, isUndefined, logger, stringCamelCase, stringify, u8aConcat, u8aToHex } from '@pezkuwi/util'; + +import { convertVersions, enumVersions } from './toLatestCompatible.js'; + +interface AbiJson { + version?: string; + + [key: string]: unknown; +} + +type EventOf = M extends {spec: { events: Vec}} ? E : never +export type ContractMetadataSupported = ContractMetadataV4 | ContractMetadataV5 | ContractMetadataV6; +type ContractEventSupported = EventOf; + +const l = logger('Abi'); + +const PRIMITIVE_ALWAYS = ['AccountId', 'AccountId20', 'AccountIndex', 'Address', 'Balance']; + +function findMessage (list: T[], messageOrId: T | string | number): T { + const message = isNumber(messageOrId) + ? list[messageOrId] + : isString(messageOrId) + ? list.find(({ identifier }) => [identifier, stringCamelCase(identifier)].includes(messageOrId.toString())) + : messageOrId; + + return assertReturn(message, () => `Attempted to call an invalid contract interface, ${stringify(messageOrId)}`); +} + +function getMetadata (registry: Registry, json: AbiJson): ContractMetadataSupported { + // this is for V1, V2, V3 + const vx = enumVersions.find((v) => isObject(json[v])); + + // this was added in V4 + const jsonVersion = json.version; + + if (!vx && jsonVersion && !enumVersions.find((v) => v === `V${jsonVersion}`)) { + throw new Error(`Unable to handle version ${jsonVersion}`); + } + + const metadata = registry.createType('ContractMetadata', + vx + ? { [vx]: json[vx] } + : jsonVersion + ? { [`V${jsonVersion}`]: json } + : { V0: json } + ); + + const converter = convertVersions.find(([v]) => metadata[`is${v}`]); + + if (!converter) { + throw new Error(`Unable to convert ABI with version ${metadata.type} to a supported version`); + } + + const upgradedMetadata = converter[1](registry, metadata[`as${converter[0]}`]); + + return upgradedMetadata; +} + +function isRevive (json: Record): boolean { + const source = json['source']; + const version = json['version']; + + const hasContractBinary = + typeof source === 'object' && + source !== null && + 'contract_binary' in source; + + const hasVersion = + typeof version === 'number' && version >= 6; + + return hasContractBinary || hasVersion; +} + +function parseJson (json: Record, chainProperties?: ChainProperties): [Record, Registry, ContractMetadataSupported, ContractProjectInfo, boolean] { + const registry = new TypeRegistry(); + + const revive = isRevive(json); + const typeName = revive ? 'ContractReviveProjectInfo' : 'ContractProjectInfo'; + + const info = registry.createType(typeName, json) as unknown as ContractProjectInfo; + const metadata = getMetadata(registry, json as unknown as AbiJson); + const lookup = registry.createType('PortableRegistry', { types: metadata.types }, true); + + // attach the lookup to the registry - now the types are known + registry.setLookup(lookup); + + if (chainProperties) { + registry.setChainProperties(chainProperties); + } + + // warm-up the actual type, pre-use + lookup.types.forEach(({ id }) => + lookup.getTypeDef(id) + ); + + return [json, registry, metadata, info, revive]; +} + +/** + * @internal + * Determines if the given input value is a ContractTypeSpec + */ +function isTypeSpec (value: Codec): value is ContractTypeSpec { + return !!value && value instanceof Map && !isUndefined((value as ContractTypeSpec).type) && !isUndefined((value as ContractTypeSpec).displayName); +} + +/** + * @internal + * Determines if the given input value is an Option + */ +function isOption (value: Codec): value is Option { + return !!value && value instanceof Option; +} + +export class Abi { + readonly events: AbiEvent[]; + readonly constructors: AbiConstructor[]; + readonly info: ContractProjectInfo; + readonly json: Record; + readonly messages: AbiMessage[]; + readonly metadata: ContractMetadataSupported; + readonly registry: Registry; + readonly environment = new Map(); + readonly isRevive: boolean; + + constructor (abiJson: Record | string, chainProperties?: ChainProperties) { + [this.json, this.registry, this.metadata, this.info, this.isRevive] = parseJson( + isString(abiJson) + ? JSON.parse(abiJson) as Record + : abiJson, + chainProperties + ); + this.constructors = this.metadata.spec.constructors.map((spec: ContractConstructorSpecLatest, index) => + this.#createMessage(spec, index, { + isConstructor: true, + isDefault: spec.default.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null + }) + ); + this.events = this.metadata.spec.events.map((_: ContractEventSupported, index: number) => + this.#createEvent(index) + ); + this.messages = this.metadata.spec.messages.map((spec: ContractMessageSpecLatest, index): AbiMessage => + this.#createMessage(spec, index, { + isDefault: spec.default.isTrue, + isMutating: spec.mutates.isTrue, + isPayable: spec.payable.isTrue, + returnType: spec.returnType.isSome + ? this.registry.lookup.getTypeDef(spec.returnType.unwrap().type) + : null + }) + ); + + // NOTE See the rationale for having Option<...> values in the actual + // ContractEnvironmentV4 structure definition in interfaces/contractsAbi + // (Due to conversions, the fields may not exist) + for (const [key, opt] of this.metadata.spec.environment.entries()) { + if (isOption(opt)) { + if (opt.isSome) { + const value = opt.unwrap(); + + if (isBn(value)) { + this.environment.set(key, value); + } else if (isTypeSpec(value)) { + this.environment.set(key, this.registry.lookup.getTypeDef(value.type)); + } else { + throw new Error(`Invalid environment definition for ${key}:: Expected either Number or ContractTypeSpec`); + } + } + } else { + throw new Error(`Expected Option<*> definition for ${key} in ContractEnvironment`); + } + } + } + + /** + * Warning: Unstable API, bound to change + */ + public decodeEvent (record: EventRecord): DecodedEvent { + switch (this.metadata.version.toString()) { + // earlier version are hoisted to v4 + case '4': + return this.#decodeEventV4(record); + case '5': + return this.#decodeEventV5(record); + // Latest + default: + return this.#decodeEventV6(record); + } + } + + #decodeEventV6 = (record: EventRecord): DecodedEvent => { + const topics = record.event.data[2] as unknown as { toHex: () => string }[]; + // Try to match by signature topic (first topic) + const signatureTopic = topics[0]; + const data = record.event.data[1] as Bytes; + + if (signatureTopic) { + const event = this.events.find((e) => e.signatureTopic !== undefined && e.signatureTopic !== null && e.signatureTopic === signatureTopic.toHex()); + + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + + // If no event returned yet, it might be anonymous + const amountOfTopics = topics.length; + const potentialEvents = this.events.filter((e) => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter((a) => a.indexed).length; + + if (amountIndexed !== amountOfTopics) { + return false; + } + + // If all conditions met, it's a potential event + return true; + }); + + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + + throw new Error('Unable to determine event'); + }; + + #decodeEventV5 = (record: EventRecord): DecodedEvent => { + // Find event by first topic, which potentially is the signature_topic + const signatureTopic = record.topics[0]; + const data = record.event.data[1] as Bytes; + + if (signatureTopic) { + const event = this.events.find((e) => e.signatureTopic !== undefined && e.signatureTopic !== null && e.signatureTopic === signatureTopic.toHex()); + + // Early return if event found by signature topic + if (event) { + return event.fromU8a(data); + } + } + + // If no event returned yet, it might be anonymous + const amountOfTopics = record.topics.length; + const potentialEvents = this.events.filter((e) => { + // event can't have a signature topic + if (e.signatureTopic !== null && e.signatureTopic !== undefined) { + return false; + } + + // event should have same amount of indexed fields as emitted topics + const amountIndexed = e.args.filter((a) => a.indexed).length; + + if (amountIndexed !== amountOfTopics) { + return false; + } + + // If all conditions met, it's a potential event + return true; + }); + + if (potentialEvents.length === 1) { + return potentialEvents[0].fromU8a(data); + } + + throw new Error('Unable to determine event'); + }; + + #decodeEventV4 = (record: EventRecord): DecodedEvent => { + const data = record.event.data[1] as Bytes; + const index = data[0]; + const event = this.events[index]; + + if (!event) { + throw new Error(`Unable to find event with index ${index}`); + } + + return event.fromU8a(data.subarray(1)); + }; + + /** + * Warning: Unstable API, bound to change + */ + public decodeConstructor (data: Uint8Array): DecodedMessage { + return this.#decodeMessage('message', this.constructors, data); + } + + /** + * Warning: Unstable API, bound to change + */ + public decodeMessage (data: Uint8Array): DecodedMessage { + return this.#decodeMessage('message', this.messages, data); + } + + public findConstructor (constructorOrId: AbiConstructor | string | number): AbiConstructor { + return findMessage(this.constructors, constructorOrId); + } + + public findMessage (messageOrId: AbiMessage | string | number): AbiMessage { + return findMessage(this.messages, messageOrId); + } + + #createArgs = (args: ContractMessageParamSpecLatest[] | ContractEventParamSpecLatest[], spec: unknown): AbiParam[] => { + return args.map(({ label, type }, index): AbiParam => { + try { + if (!isObject(type)) { + throw new Error('Invalid type definition found'); + } + + const displayName = type.displayName.length + ? type.displayName[type.displayName.length - 1].toString() + : undefined; + const camelName = stringCamelCase(label); + + if (displayName && PRIMITIVE_ALWAYS.includes(displayName)) { + return { + name: camelName, + type: { + info: TypeDefInfo.Plain, + type: displayName + } + }; + } + + const typeDef = this.registry.lookup.getTypeDef(type.type); + + return { + name: camelName, + type: displayName && !typeDef.type.startsWith(displayName) + ? { displayName, ...typeDef } + : typeDef + }; + } catch (error) { + l.error(`Error expanding argument ${index} in ${stringify(spec)}`); + + throw error; + } + }); + }; + + #createMessageParams = (args: ContractMessageParamSpecLatest[], spec: unknown): AbiMessageParam[] => { + return this.#createArgs(args, spec); + }; + + #createEventParams = (args: ContractEventParamSpecLatest[], spec: unknown): AbiEventParam[] => { + const params = this.#createArgs(args, spec); + + return params.map((p, index): AbiEventParam => ({ ...p, indexed: args[index].indexed.toPrimitive() })); + }; + + #createEvent = (index: number): AbiEvent => { + // TODO TypeScript would narrow this type to the correct version, + // but version is `Text` so I need to call `toString()` here, + // which breaks the type inference. + switch (this.metadata.version.toString()) { + case '4': + return this.#createEventV4((this.metadata as ContractMetadataV4).spec.events[index], index); + default: + return this.#createEventV5((this.metadata as ContractMetadataV5).spec.events[index], index); + } + }; + + #createEventV5 = (spec: EventOf, index: number): AbiEvent => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map((d) => d.toString()), + fromU8a: (data: Uint8Array): DecodedEvent => ({ + args: this.#decodeArgs(args, data), + event + }), + identifier: [spec.module_path, spec.label].join('::'), + index, + signatureTopic: spec.signature_topic.isSome ? spec.signature_topic.unwrap().toHex() : null + }; + + return event; + }; + + #createEventV4 = (spec: EventOf, index: number): AbiEvent => { + const args = this.#createEventParams(spec.args, spec); + const event = { + args, + docs: spec.docs.map((d) => d.toString()), + fromU8a: (data: Uint8Array): DecodedEvent => ({ + args: this.#decodeArgs(args, data), + event + }), + identifier: spec.label.toString(), + index + }; + + return event; + }; + + #createMessage = (spec: ContractMessageSpecLatest | ContractConstructorSpecLatest, index: number, add: Partial = {}): AbiMessage => { + const args = this.#createMessageParams(spec.args, spec); + const identifier = spec.label.toString(); + const message = { + ...add, + args, + docs: spec.docs.map((d) => d.toString()), + fromU8a: (data: Uint8Array): DecodedMessage => ({ + args: this.#decodeArgs(args, data), + message + }), + identifier, + index, + isDefault: spec.default.isTrue, + method: stringCamelCase(identifier), + path: identifier.split('::').map((s) => stringCamelCase(s)), + selector: spec.selector, + toU8a: (params: unknown[]) => + this.#encodeMessageArgs(spec, args, params) + }; + + return message; + }; + + #decodeArgs = (args: AbiParam[], data: Uint8Array): Codec[] => { + // for decoding we expect the input to be just the arg data, no selectors + // no length added (this allows use with events as well) + let offset = 0; + + return args.map(({ type: { lookupName, type } }): Codec => { + const value = this.registry.createType(lookupName || type, data.subarray(offset)); + + offset += value.encodedLength; + + return value; + }); + }; + + #decodeMessage = (type: 'constructor' | 'message', list: AbiMessage[], data: Uint8Array): DecodedMessage => { + const [, trimmed] = compactStripLength(data); + const selector = trimmed.subarray(0, 4); + const message = list.find((m) => m.selector.eq(selector)); + + if (!message) { + throw new Error(`Unable to find ${type} with selector ${u8aToHex(selector)}`); + } + + return message.fromU8a(trimmed.subarray(4)); + }; + + #encodeMessageArgs = ({ label, selector }: ContractMessageSpecLatest | ContractConstructorSpecLatest, args: AbiMessageParam[], data: unknown[]): Uint8Array => { + if (data.length !== args.length) { + throw new Error(`Expected ${args.length} arguments to contract message '${label.toString()}', found ${data.length}`); + } + + return compactAddLength( + u8aConcat( + this.registry.createType('ContractSelector', selector).toU8a(), + ...args.map(({ type: { lookupName, type } }, index) => + this.registry.createType(lookupName || type, data[index]).toU8a() + ) + ) + ); + }; +} diff --git a/packages/api-contract/src/Abi/toLatestCompatible.spec.ts b/packages/api-contract/src/Abi/toLatestCompatible.spec.ts new file mode 100644 index 0000000..eb24d50 --- /dev/null +++ b/packages/api-contract/src/Abi/toLatestCompatible.spec.ts @@ -0,0 +1,219 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; + +import abis from '../test/contracts/index.js'; +import { v0ToLatestCompatible, v1ToLatestCompatible, v2ToLatestCompatible, v3ToLatestCompatible, v4ToLatestCompatible, v5ToLatestCompatible, v6ToLatestCompatible } from './toLatestCompatible.js'; + +describe('v0ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V0: abis['ink_v0_erc20'] }); + const latest = v0ToLatestCompatible(registry, contract.asV0); + + it('has the correct constructors', (): void => { + expect( + latest.spec.constructors.map(({ label }) => label.toString()) + ).toEqual(['new']); + }); + + it('has the correct messages', (): void => { + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual(['total_supply', 'balance_of', 'allowance', 'transfer', 'approve', 'transfer_from']); + }); + + it('has the correct events', (): void => { + expect( + latest.spec.events.map(({ label }) => label.toString()) + ).toEqual(['Transfer', 'Approval']); + }); + + it('has the correct constructor arguments', (): void => { + expect( + latest.spec.constructors[0].args.map(({ label }) => label.toString()) + ).toEqual(['initial_supply']); + }); + + it('has the correct message arguments', (): void => { + expect( + latest.spec.messages[1].args.map(({ label }) => label.toString()) + ).toEqual(['owner']); + }); + + it('has the correct event arguments', (): void => { + expect( + latest.spec.events[0].args.map(({ label }) => label.toString()) + ).toEqual(['from', 'to', 'value']); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v1ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_flipper']['V1'] }); + const latest = v1ToLatestCompatible(registry, contract.asV1); + + it('has the correct constructors', (): void => { + expect( + latest.spec.constructors.map(({ label }) => label.toString()) + ).toEqual(['new', 'default']); + }); + + it('has the correct messages', (): void => { + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual(['flip', 'get']); + }); + + it('has the correct messages with namespaced method name', (): void => { + const contract = registry.createType('ContractMetadata', { V1: abis['ink_v1_psp22']['V1'] }); + const latest = v1ToLatestCompatible(registry, contract.asV1); + + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual([ + 'PSP22Metadata::token_name', 'PSP22Metadata::token_symbol', 'PSP22Metadata::token_decimals', 'PSP22Mintable::mint', 'PSP22::decrease_allowance', 'PSP22::transfer', 'PSP22::approve', 'PSP22::allowance', 'PSP22::transfer_from', 'PSP22::balance_of', 'PSP22::increase_allowance', 'PSP22::total_supply', 'pause', 'unpause' + ]); + }); + + it('has the correct constructor arguments', (): void => { + expect( + latest.spec.constructors[0].args.map(({ label }) => label.toString()) + ).toEqual(['init_value']); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v2ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V2: abis['ink_v2_flipper']['V2'] }); + const latest = v2ToLatestCompatible(registry, contract.asV2); + + it('has the correct constructor flag', (): void => { + expect( + latest.spec.constructors[0].payable.isTrue + ).toEqual(true); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v3ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_flipper']['V3'] }); + const latest = v3ToLatestCompatible(registry, contract.asV3); + + it('has the correct constructor flags', (): void => { + expect( + latest.spec.constructors[0].payable.isTrue + ).toEqual(false); + expect( + latest.spec.constructors[1].payable.isTrue + ).toEqual(true); + }); + + it('has the correct messages', (): void => { + const contract = registry.createType('ContractMetadata', { V3: abis['ink_v3_traitErc20']['V3'] }); + const latest = v3ToLatestCompatible(registry, contract.asV3); + + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual([ + 'BaseErc20::total_supply', 'BaseErc20::balance_of', 'BaseErc20::allowance', 'BaseErc20::transfer', 'BaseErc20::approve', 'BaseErc20::transfer_from' + ]); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v4ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V4: abis['ink_v4_flipperContract'] }); + const latest = v4ToLatestCompatible(registry, contract.asV4); + + it('has the correct constructor flags', (): void => { + expect( + latest.spec.constructors[0].payable.isTrue + ).toEqual(false); + expect( + latest.spec.constructors[1].payable.isTrue + ).toEqual(false); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('4'); + }); +}); + +describe('v5ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V5: abis['ink_v5_erc20Metadata'] }); + const latest = v5ToLatestCompatible(registry, contract.asV5); + + it('has the correct messages', (): void => { + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual(['total_supply', 'balance_of', 'allowance', 'transfer', 'approve', 'transfer_from']); + }); + + it('has new event fields', (): void => { + expect( + latest.spec.events.length + ).toEqual(2); + + expect( + latest.spec.events.every((e) => e.has('module_path')) + ).toEqual(true); + + expect(latest.spec.events[0].module_path.toString()).toEqual('erc20::erc20'); + + expect( + latest.spec.events.every((e) => e.has('signature_topic')) + ).toEqual(true); + + expect(latest.spec.events[0].signature_topic.toHex()).toEqual('0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb'); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('5'); + }); +}); + +describe('v6ToLatestCompatible', (): void => { + const registry = new TypeRegistry(); + const contract = registry.createType('ContractMetadata', { V6: abis['ink_v6_erc20Metadata'] }); + const latest = v6ToLatestCompatible(registry, contract.asV6); + + it('has the correct messages', (): void => { + expect( + latest.spec.messages.map(({ label }) => label.toString()) + ).toEqual(['total_supply', 'balance_of', 'allowance', 'transfer', 'approve', 'transfer_from']); + }); + + it('has H160 as the type of balance_of argument', (): void => { + const arg = latest.spec.messages.find( + (m) => m.label.toString() === 'balance_of' + )?.args[0]; + + const name = arg?.type.displayName?.[0]?.toString(); + + expect(name).toBe('H160'); + }); + + it('has the latest compatible version number', (): void => { + expect(latest.version.toString()).toEqual('6'); + }); +}); diff --git a/packages/api-contract/src/Abi/toLatestCompatible.ts b/packages/api-contract/src/Abi/toLatestCompatible.ts new file mode 100644 index 0000000..1e9f2b4 --- /dev/null +++ b/packages/api-contract/src/Abi/toLatestCompatible.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ContractMetadataV4, ContractMetadataV5, ContractMetadataV6 } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; +import type { ContractMetadataSupported } from './index.js'; + +import { v0ToV1 } from './toV1.js'; +import { v1ToV2 } from './toV2.js'; +import { v2ToV3 } from './toV3.js'; +import { v3ToV4 } from './toV4.js'; + +// The versions where an enum is used, aka V0 is missing +// (Order from newest, i.e. we expect more on newest vs oldest) +export const enumVersions = ['V6', 'V5', 'V4', 'V3', 'V2', 'V1'] as const; + +type Versions = typeof enumVersions[number] | 'V0'; + +type Converter = (registry: Registry, vx: any) => ContractMetadataSupported; + +// Helper to convert metadata from one step to the next +function createConverter (next: (registry: Registry, input: O) => ContractMetadataSupported, step: (registry: Registry, input: I) => O): (registry: Registry, input: I) => ContractMetadataSupported { + return (registry: Registry, input: I): ContractMetadataSupported => + next(registry, step(registry, input)); +} + +export function v6ToLatestCompatible (_registry: Registry, v6: ContractMetadataV6): ContractMetadataV6 { + return v6; +} + +export function v5ToLatestCompatible (_registry: Registry, v5: ContractMetadataV5): ContractMetadataV5 { + return v5; +} + +export function v4ToLatestCompatible (_registry: Registry, v4: ContractMetadataV4): ContractMetadataV4 { + return v4; +} + +export const v3ToLatestCompatible = /*#__PURE__*/ createConverter(v4ToLatestCompatible, v3ToV4); +export const v2ToLatestCompatible = /*#__PURE__*/ createConverter(v3ToLatestCompatible, v2ToV3); +export const v1ToLatestCompatible = /*#__PURE__*/ createConverter(v2ToLatestCompatible, v1ToV2); +export const v0ToLatestCompatible = /*#__PURE__*/ createConverter(v1ToLatestCompatible, v0ToV1); + +export const convertVersions: [Versions, Converter][] = [ + ['V6', v6ToLatestCompatible], + ['V5', v5ToLatestCompatible], + ['V4', v4ToLatestCompatible], + ['V3', v3ToLatestCompatible], + ['V2', v2ToLatestCompatible], + ['V1', v1ToLatestCompatible], + ['V0', v0ToLatestCompatible] +]; diff --git a/packages/api-contract/src/Abi/toV1.ts b/packages/api-contract/src/Abi/toV1.ts new file mode 100644 index 0000000..29e24e0 --- /dev/null +++ b/packages/api-contract/src/Abi/toV1.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ContractMetadataV0, ContractMetadataV1 } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; + +import { convertSiV0toV1 } from '@pezkuwi/types'; +import { objectSpread } from '@pezkuwi/util'; + +interface Named { + name: unknown; +} + +function v0ToV1Names (all: Named[]): unknown[] { + return all.map((e) => + objectSpread({}, e, { + name: Array.isArray(e.name) + ? e.name + : [e.name] + })); +} + +export function v0ToV1 (registry: Registry, v0: ContractMetadataV0): ContractMetadataV1 { + if (!v0.metadataVersion.length) { + throw new Error('Invalid format for V0 (detected) contract metadata'); + } + + return registry.createType('ContractMetadataV1', objectSpread({}, v0, { + spec: objectSpread({}, v0.spec, { + constructors: v0ToV1Names(v0.spec.constructors), + messages: v0ToV1Names(v0.spec.messages) + }), + types: convertSiV0toV1(registry, v0.types) + })); +} diff --git a/packages/api-contract/src/Abi/toV2.ts b/packages/api-contract/src/Abi/toV2.ts new file mode 100644 index 0000000..469a33f --- /dev/null +++ b/packages/api-contract/src/Abi/toV2.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Text } from '@pezkuwi/types'; +import type { ContractConstructorSpecV0, ContractEventSpecV0, ContractMessageSpecV0, ContractMetadataV1, ContractMetadataV2 } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; + +import { objectSpread } from '@pezkuwi/util'; + +type WithArgs = keyof typeof ARG_TYPES; + +interface NamedEntry { + name: Text | Text[]; +} + +type GetArgsType = T extends 'ContractConstructorSpec' + ? ContractConstructorSpecV0 + : T extends ContractEventSpecV0 + ? ContractEventSpecV0 + : ContractMessageSpecV0; + +interface ArgsEntry extends NamedEntry { + args: GetArgsType['args'][0][]; +} + +const ARG_TYPES = { + ContractConstructorSpec: 'ContractMessageParamSpecV2', + ContractEventSpec: 'ContractEventParamSpecV2', + ContractMessageSpec: 'ContractMessageParamSpecV2' +} as const; + +function v1ToV2Label (entry: NamedEntry): { label: Text } { + return objectSpread({}, entry, { + label: Array.isArray(entry.name) + ? entry.name.join('::') + : entry.name + }); +} + +function v1ToV2Labels (registry: Registry, outType: T, all: ArgsEntry[]): unknown[] { + return all.map((e) => + registry.createType(`${outType}V2`, objectSpread(v1ToV2Label(e), { + args: e.args.map((a) => + registry.createType(ARG_TYPES[outType], v1ToV2Label(a)) + ) + })) + ); +} + +export function v1ToV2 (registry: Registry, v1: ContractMetadataV1): ContractMetadataV2 { + return registry.createType('ContractMetadataV2', objectSpread({}, v1, { + spec: objectSpread({}, v1.spec, { + constructors: v1ToV2Labels(registry, 'ContractConstructorSpec', v1.spec.constructors), + events: v1ToV2Labels(registry, 'ContractEventSpec', v1.spec.events), + messages: v1ToV2Labels(registry, 'ContractMessageSpec', v1.spec.messages) + }) + })); +} diff --git a/packages/api-contract/src/Abi/toV3.ts b/packages/api-contract/src/Abi/toV3.ts new file mode 100644 index 0000000..f13959d --- /dev/null +++ b/packages/api-contract/src/Abi/toV3.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ContractMetadataV2, ContractMetadataV3 } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; + +import { objectSpread } from '@pezkuwi/util'; + +export function v2ToV3 (registry: Registry, v2: ContractMetadataV2): ContractMetadataV3 { + return registry.createType('ContractMetadataV3', objectSpread({}, v2, { + spec: objectSpread({}, v2.spec, { + constructors: v2.spec.constructors.map((c) => + // V3 introduces the payable flag on constructors, for + registry.createType('ContractConstructorSpecV4', objectSpread({}, c)) + ), + messages: v3.spec.messages.map((m) => + registry.createType('ContractMessageSpecV3', objectSpread({}, m)) + ) + }), + version: registry.createType('Text', '4') + })); +} diff --git a/packages/api-contract/src/augment.ts b/packages/api-contract/src/augment.ts new file mode 100644 index 0000000..f669107 --- /dev/null +++ b/packages/api-contract/src/augment.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/api-augment'; diff --git a/packages/api-contract/src/base/Base.ts b/packages/api-contract/src/base/Base.ts new file mode 100644 index 0000000..4fca87a --- /dev/null +++ b/packages/api-contract/src/base/Base.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@pezkuwi/api/base'; +import type { ApiTypes, DecorateMethod } from '@pezkuwi/api/types'; +import type { WeightV2 } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; + +import { isFunction } from '@pezkuwi/util'; + +import { Abi } from '../Abi/index.js'; + +export abstract class Base { + readonly abi: Abi; + readonly api: ApiBase; + + protected readonly _decorateMethod: DecorateMethod; + protected readonly _isWeightV1: boolean; + protected readonly _isRevive: boolean; + + constructor (api: ApiBase, abi: string | Record | Abi, decorateMethod: DecorateMethod) { + if (!api || !api.isConnected || !api.tx) { + throw new Error('Your API has not been initialized correctly and is not connected to a chain'); + } + + this.abi = abi instanceof Abi + ? abi + : new Abi(abi, api.registry.getChainProperties()); + this.api = api; + this._decorateMethod = decorateMethod; + this._isWeightV1 = !api.registry.createType('Weight').proofSize; + this._isRevive = this.abi.isRevive; + + if (this._isRevive) { + if (!api.tx.revive || !isFunction(api.tx.revive.instantiateWithCode) || api.tx.revive.instantiateWithCode.meta.args.length !== 6) { + throw new Error('The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit'); + } else if (!api.call.reviveApi || !isFunction(api.call.reviveApi.call)) { + throw new Error('Your runtime does not expose the api.call.reviveApi.call runtime interfaces'); + } + } else { + if (!api.tx.contracts || !isFunction(api.tx.contracts.instantiateWithCode) || api.tx.contracts.instantiateWithCode.meta.args.length !== 6) { + throw new Error('The runtime does not expose api.tx.contracts.instantiateWithCode with storageDepositLimit'); + } else if (!api.call.contractsApi || !isFunction(api.call.contractsApi.call)) { + throw new Error('Your runtime does not expose the api.call.contractsApi.call runtime interfaces'); + } + } + } + + public get registry (): Registry { + return this.api.registry; + } +} diff --git a/packages/api-contract/src/base/Blueprint.ts b/packages/api-contract/src/base/Blueprint.ts new file mode 100644 index 0000000..d1db091 --- /dev/null +++ b/packages/api-contract/src/base/Blueprint.ts @@ -0,0 +1,90 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@pezkuwi/api/base'; +import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@pezkuwi/api/types'; +import type { AccountId, EventRecord, Hash } from '@pezkuwi/types/interfaces'; +import type { ISubmittableResult } from '@pezkuwi/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiConstructor, BlueprintOptions } from '../types.js'; +import type { MapConstructorExec } from './types.js'; + +import { SubmittableResult } from '@pezkuwi/api'; +import { BN_ZERO, isUndefined } from '@pezkuwi/util'; + +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; + +export type BlueprintConstructor = new(api: ApiBase, abi: string | Record | Abi, codeHash: string | Hash | Uint8Array) => Blueprint; + +export class BlueprintSubmittableResult extends SubmittableResult { + readonly contract?: Contract | undefined; + + constructor (result: ISubmittableResult, contract?: Contract) { + super(result); + + this.contract = contract; + } +} + +export class Blueprint extends Base { + /** + * @description The on-chain code hash for this blueprint + */ + readonly codeHash: Hash; + + readonly #tx: MapConstructorExec = {}; + + constructor (api: ApiBase, abi: string | Record | Abi, codeHash: string | Hash | Uint8Array, decorateMethod: DecorateMethod) { + super(api, abi, decorateMethod); + + this.codeHash = this.registry.createType('Hash', codeHash); + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#deploy(c, o, p)); + } + }); + } + + public get tx (): MapConstructorExec { + return this.#tx; + } + + #deploy = (constructorOrId: AbiConstructor | string | number, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[]): SubmittableExtrinsic> => { + const palletTx = this._isRevive + ? this.api.tx.revive + : this.api.tx.contracts; + + return palletTx.instantiate( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? convertWeight(gasLimit).v1Weight + : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.codeHash, + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt) + ).withResultTransform((result: ISubmittableResult) => + new BlueprintSubmittableResult(result, applyOnEvent(result, ['Instantiated'], ([record]: EventRecord[]) => + new Contract(this.api, this.abi, record.event.data[1] as AccountId, this._decorateMethod), this._isRevive + ) + ) + ); + }; +} + +export function extendBlueprint (type: ApiType, decorateMethod: DecorateMethod): BlueprintConstructor { + return class extends Blueprint { + static __BlueprintType = type; + + constructor (api: ApiBase, abi: string | Record | Abi, codeHash: string | Hash | Uint8Array) { + super(api, abi, codeHash, decorateMethod); + } + }; +} diff --git a/packages/api-contract/src/base/Code.spec.ts b/packages/api-contract/src/base/Code.spec.ts new file mode 100644 index 0000000..3beb9b4 --- /dev/null +++ b/packages/api-contract/src/base/Code.spec.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import fs from 'node:fs'; + +import { toPromiseMethod } from '@pezkuwi/api'; + +import v0contractFlipper from '../test/contracts/ink/v0/flipper.contract.json' assert { type: 'json' }; +import v0abiFlipper from '../test/contracts/ink/v0/flipper.json' assert { type: 'json' }; +import v1contractFlipper from '../test/contracts/ink/v1/flipper.contract.json' assert { type: 'json' }; +import v6contractErc20 from '../test/contracts/ink/v6/erc20.contract.json' assert { type: 'json' }; +import { Code } from './Code.js'; +import { mockApi, mockReviveApi } from './mock.js'; + +const v0wasmFlipper = fs.readFileSync(new URL('../test/contracts/ink/v0/flipper.wasm', import.meta.url), 'utf-8'); + +describe('Code', (): void => { + it('can construct with an individual ABI/WASM combo', (): void => { + expect( + () => new Code(mockApi, v0abiFlipper as Record, v0wasmFlipper, toPromiseMethod) + ).not.toThrow(); + }); + + it('can construct with an .contract ABI (v0)', (): void => { + expect( + () => new Code(mockApi, v0contractFlipper as Record, null, toPromiseMethod) + ).not.toThrow(); + }); + + it('can construct with an .contract ABI (v1)', (): void => { + expect( + () => new Code(mockApi, v1contractFlipper as Record, null, toPromiseMethod) + ).not.toThrow(); + }); + + it('can construct a revive compatible contract (v6)', (): void => { + expect( + () => new Code(mockApi, v6contractErc20 as Record, null, toPromiseMethod) + ).toThrow('The runtime does not expose api.tx.revive.instantiateWithCode with storageDepositLimit'); + + expect( + () => new Code(mockReviveApi, v6contractErc20 as Record, null, toPromiseMethod) + ).not.toThrow(); + }); +}); diff --git a/packages/api-contract/src/base/Code.ts b/packages/api-contract/src/base/Code.ts new file mode 100644 index 0000000..e519c10 --- /dev/null +++ b/packages/api-contract/src/base/Code.ts @@ -0,0 +1,142 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@pezkuwi/api/base'; +import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@pezkuwi/api/types'; +import type { AccountId, EventRecord } from '@pezkuwi/types/interfaces'; +import type { ISubmittableResult } from '@pezkuwi/types/types'; +import type { Codec } from '@pezkuwi/types-codec/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiConstructor, BlueprintOptions } from '../types.js'; +import type { MapConstructorExec } from './types.js'; + +import { SubmittableResult } from '@pezkuwi/api'; +import { BN_ZERO, compactAddLength, isRiscV, isUndefined, isWasm, u8aToU8a } from '@pezkuwi/util'; + +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { Blueprint } from './Blueprint.js'; +import { Contract } from './Contract.js'; +import { convertWeight, createBluePrintTx, encodeSalt } from './util.js'; + +export type CodeConstructor = new(api: ApiBase, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined) => Code; + +export class CodeSubmittableResult extends SubmittableResult { + readonly blueprint?: Blueprint | undefined; + readonly contract?: Contract | undefined; + + constructor (result: ISubmittableResult, blueprint?: Blueprint | undefined, contract?: Contract | undefined) { + super(result); + + this.blueprint = blueprint; + this.contract = contract; + } +} + +// checks to see if the code (or at least the header) +// is a valid/supported format +function isValidCode (code: Uint8Array): boolean { + return isWasm(code) || isRiscV(code); +} + +export class Code extends Base { + readonly code: Uint8Array; + + readonly #tx: MapConstructorExec = {}; + + constructor (api: ApiBase, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined, decorateMethod: DecorateMethod) { + super(api, abi, decorateMethod); + + this.code = isValidCode(this.abi.info.source.wasm) + ? this.abi.info.source.wasm + : u8aToU8a(wasm); + + if (!isValidCode(this.code)) { + throw new Error('Invalid code provided'); + } + + this.abi.constructors.forEach((c): void => { + if (isUndefined(this.#tx[c.method])) { + this.#tx[c.method] = createBluePrintTx(c, (o, p) => this.#instantiate(c, o, p)); + } + }); + } + + public get tx (): MapConstructorExec { + return this.#tx; + } + + #instantiate = (constructorOrId: AbiConstructor | string | number, { gasLimit = BN_ZERO, salt, storageDepositLimit = null, value = BN_ZERO }: BlueprintOptions, params: unknown[]): SubmittableExtrinsic> => { + const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts; + + if (this._isRevive) { + return palletTx.instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? convertWeight(gasLimit).v1Weight + : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt) + ).withResultTransform((result: ISubmittableResult) => + new CodeSubmittableResult( + result, + ...(applyOnEvent(result, ['Instantiated'], (records: EventRecord[]) => + records.reduce<[Blueprint | undefined, Contract | undefined]>( + ([blueprint, contract], { event }) => + this.api.events.revive['Instantiated'].is(event) + ? [ + blueprint, + new Contract( + this.api, + this.abi, + (event as unknown as { data: [Codec, AccountId] }).data[1], + this._decorateMethod + ) + ] + : [blueprint, contract], + [undefined, undefined] + ), this._isRevive + ) || [undefined, undefined]) + ) + ); + } + + return palletTx.instantiateWithCode( + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? convertWeight(gasLimit).v1Weight + : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + compactAddLength(this.code), + this.abi.findConstructor(constructorOrId).toU8a(params), + encodeSalt(salt) + ).withResultTransform((result: ISubmittableResult) => + new CodeSubmittableResult(result, ...(applyOnEvent(result, ['CodeStored', 'Instantiated'], (records: EventRecord[]) => + records.reduce<[Blueprint | undefined, Contract | undefined]>(([blueprint, contract], { event }) => + this.api.events.contracts.Instantiated.is(event) + ? [blueprint, new Contract(this.api, this.abi, (event as unknown as { data: [Codec, AccountId] }).data[1], this._decorateMethod)] + : this.api.events.contracts.CodeStored.is(event) + ? [new Blueprint(this.api, this.abi, (event as unknown as { data: [AccountId] }).data[0], this._decorateMethod), contract] + : [blueprint, contract], + [undefined, undefined]), this._isRevive + ) || [undefined, undefined])) + ); + }; +} + +export function extendCode (type: ApiType, decorateMethod: DecorateMethod): CodeConstructor { + return class extends Code { + static __CodeType = type; + + constructor (api: ApiBase, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined) { + super(api, abi, wasm, decorateMethod); + } + }; +} diff --git a/packages/api-contract/src/base/Contract.ts b/packages/api-contract/src/base/Contract.ts new file mode 100644 index 0000000..556ddca --- /dev/null +++ b/packages/api-contract/src/base/Contract.ts @@ -0,0 +1,197 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@pezkuwi/api/base'; +import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types'; +import type { ApiTypes, DecorateMethod } from '@pezkuwi/api/types'; +import type { AccountId, AccountId20, ContractExecResult, EventRecord, Weight, WeightV2 } from '@pezkuwi/types/interfaces'; +import type { ISubmittableResult } from '@pezkuwi/types/types'; +import type { Abi } from '../Abi/index.js'; +import type { AbiMessage, ContractCallOutcome, ContractOptions, DecodedEvent, WeightAll } from '../types.js'; +import type { ContractCallResult, ContractCallSend, ContractQuery, ContractTx, MapMessageQuery, MapMessageTx } from './types.js'; + +import { map } from 'rxjs'; + +import { SubmittableResult } from '@pezkuwi/api'; +import { BN, BN_HUNDRED, BN_ONE, BN_ZERO, isUndefined, logger } from '@pezkuwi/util'; + +import { applyOnEvent } from '../util.js'; +import { Base } from './Base.js'; +import { convertWeight, withMeta } from './util.js'; + +export type ContractConstructor = new(api: ApiBase, abi: string | Record | Abi, address: string | AccountId) => Contract; + +// As per Rust, 5 * GAS_PER_SEC +const MAX_CALL_GAS = new BN(5_000_000_000_000).isub(BN_ONE); + +const l = logger('Contract'); + +function createQuery (meta: AbiMessage, fn: (origin: string | AccountId | Uint8Array, options: ContractOptions, params: unknown[]) => ContractCallResult): ContractQuery { + return withMeta(meta, (origin: string | AccountId | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult => + fn(origin, options, params) + ); +} + +function createTx (meta: AbiMessage, fn: (options: ContractOptions, params: unknown[]) => SubmittableExtrinsic): ContractTx { + return withMeta(meta, (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params) + ); +} + +export class ContractSubmittableResult extends SubmittableResult { + readonly contractEvents?: DecodedEvent[] | undefined; + + constructor (result: ISubmittableResult, contractEvents?: DecodedEvent[]) { + super(result); + + this.contractEvents = contractEvents; + } +} + +export class Contract extends Base { + /** + * @description The on-chain address for this contract + */ + readonly address: AccountId | AccountId20; + + readonly #query: MapMessageQuery = {}; + readonly #tx: MapMessageTx = {}; + + constructor (api: ApiBase, abi: string | Record | Abi, address: string | AccountId | AccountId20, decorateMethod: DecorateMethod) { + super(api, abi, decorateMethod); + + this.address = this.registry.createType(this._isRevive ? 'AccountId20' : 'AccountId', address); + + this.abi.messages.forEach((m): void => { + if (isUndefined(this.#tx[m.method])) { + this.#tx[m.method] = createTx(m, (o, p) => this.#exec(m, o, p)); + } + + if (isUndefined(this.#query[m.method])) { + this.#query[m.method] = createQuery(m, (f, o, p) => this.#read(m, o, p).send(f)); + } + }); + } + + public get query (): MapMessageQuery { + return this.#query; + } + + public get tx (): MapMessageTx { + return this.#tx; + } + + #getGas = (_gasLimit: bigint | BN | string | number | WeightV2, isCall = false): WeightAll => { + const weight = convertWeight(_gasLimit); + + if (weight.v1Weight.gt(BN_ZERO)) { + return weight; + } + + return convertWeight( + isCall + ? MAX_CALL_GAS + : convertWeight( + this.api.consts.system.blockWeights + ? (this.api.consts.system.blockWeights as unknown as { maxBlock: WeightV2 }).maxBlock + : this.api.consts.system['maximumBlockWeight'] as Weight + ).v1Weight.muln(64).div(BN_HUNDRED) + ); + }; + + #exec = (messageOrId: AbiMessage | string | number, { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, params: unknown[]): SubmittableExtrinsic => { + const palletTx = this._isRevive ? this.api.tx.revive : this.api.tx.contracts; + + return palletTx.call( + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? convertWeight(gasLimit).v1Weight + : convertWeight(gasLimit).v2Weight, + storageDepositLimit, + this.abi.findMessage(messageOrId).toU8a(params) + ).withResultTransform((result: ISubmittableResult) => + // ContractEmitted is the current generation, ContractExecution is the previous generation + new ContractSubmittableResult(result, applyOnEvent(result, ['ContractEmitted', 'ContractExecution'], (records: EventRecord[]) => + records + // Filter to only decode events emitted by this specific contract instance. + .filter((record): boolean => { + try { + const contractAddress = record.event.data[0]; + + if (this.address.eq(contractAddress)) { + return true; + } + + l.debug(`Skipping event from different contract ${contractAddress.toString()} (this contract: ${this.address.toString()})`); + + return false; + } catch (error) { + l.warn(`Unable to extract contract address from event: ${(error as Error).message}`); + + return false; + } + }) + .map((record): DecodedEvent | null => { + try { + return this.abi.decodeEvent(record); + } catch (error) { + l.error(`Unable to decode contract event: ${(error as Error).message}`); + + return null; + } + }) + .filter((decoded): decoded is DecodedEvent => !!decoded), this._isRevive + )) + ); + }; + + #read = (messageOrId: AbiMessage | string | number, { gasLimit = BN_ZERO, storageDepositLimit = null, value = BN_ZERO }: ContractOptions, params: unknown[]): ContractCallSend => { + const message = this.abi.findMessage(messageOrId); + + return { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + send: this._decorateMethod((origin: string | AccountId | Uint8Array) => + (this._isRevive + ? this.api.rx.call.reviveApi.call + : this.api.rx.call.contractsApi.call)( + origin, + this.address, + value, + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore jiggle v1 weights, metadata points to latest + this._isWeightV1 + ? this.#getGas(gasLimit, true).v1Weight + : this.#getGas(gasLimit, true).v2Weight, + storageDepositLimit, + message.toU8a(params) + ).pipe( + map(({ debugMessage, gasConsumed, gasRequired, result, storageDeposit }): ContractCallOutcome => ({ + debugMessage, + gasConsumed, + gasRequired: gasRequired && !convertWeight(gasRequired).v1Weight.isZero() + ? gasRequired + : gasConsumed, + output: result.isOk && message.returnType + ? this.abi.registry.createTypeUnsafe(message.returnType.lookupName || message.returnType.type, [result.asOk.data.toU8a(true)], { isPedantic: true }) + : null, + result, + storageDeposit + })) + ) + ) + }; + }; +} + +export function extendContract (type: ApiType, decorateMethod: DecorateMethod): ContractConstructor { + return class extends Contract { + static __ContractType = type; + + constructor (api: ApiBase, abi: string | Record | Abi, address: string | AccountId) { + super(api, abi, address, decorateMethod); + } + }; +} diff --git a/packages/api-contract/src/base/index.ts b/packages/api-contract/src/base/index.ts new file mode 100644 index 0000000..9f19240 --- /dev/null +++ b/packages/api-contract/src/base/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { Blueprint, BlueprintSubmittableResult, extendBlueprint } from './Blueprint.js'; +export { Code, CodeSubmittableResult, extendCode } from './Code.js'; +export { Contract, extendContract } from './Contract.js'; diff --git a/packages/api-contract/src/base/mock.ts b/packages/api-contract/src/base/mock.ts new file mode 100644 index 0000000..fcdef19 --- /dev/null +++ b/packages/api-contract/src/base/mock.ts @@ -0,0 +1,48 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@pezkuwi/api/base'; + +import { TypeRegistry } from '@pezkuwi/types'; + +const registry = new TypeRegistry(); + +const instantiateWithCode = (): never => { + throw new Error('mock'); +}; + +instantiateWithCode.meta = { args: new Array(6) }; + +export const mockApi = { + call: { + contractsApi: { + call: (): never => { + throw new Error('mock'); + } + } + }, + isConnected: true, + registry, + tx: { + contracts: { + instantiateWithCode + } + } +} as unknown as ApiBase<'promise'>; + +export const mockReviveApi = { + call: { + reviveApi: { + call: (): never => { + throw new Error('mock'); + } + } + }, + isConnected: true, + registry, + tx: { + revive: { + instantiateWithCode + } + } +} as unknown as ApiBase<'promise'>; diff --git a/packages/api-contract/src/base/types.ts b/packages/api-contract/src/base/types.ts new file mode 100644 index 0000000..9282b05 --- /dev/null +++ b/packages/api-contract/src/base/types.ts @@ -0,0 +1,40 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types'; +import type { ApiTypes, ObsInnerType } from '@pezkuwi/api/types'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { AbiMessage, BlueprintOptions, ContractCallOutcome, ContractOptions } from '../types.js'; + +export interface MessageMeta { + readonly meta: AbiMessage; +} + +export interface BlueprintDeploy extends MessageMeta { + (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic; +} + +export interface ContractQuery extends MessageMeta { + (origin: AccountId | string | Uint8Array, options: ContractOptions, ...params: unknown[]): ContractCallResult; +} + +export interface ContractTx extends MessageMeta { + (options: ContractOptions, ...params: unknown[]): SubmittableExtrinsic; +} + +export type ContractGeneric = (messageOrId: AbiMessage | string | number, options: O, ...params: unknown[]) => T; + +export type ContractCallResult = ApiType extends 'rxjs' + ? Observable + : Promise>>; + +export interface ContractCallSend { + send (account: string | AccountId | Uint8Array): ContractCallResult; +} + +export type MapConstructorExec = Record>; + +export type MapMessageTx = Record>; + +export type MapMessageQuery = Record>; diff --git a/packages/api-contract/src/base/util.ts b/packages/api-contract/src/base/util.ts new file mode 100644 index 0000000..aa7d50b --- /dev/null +++ b/packages/api-contract/src/base/util.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SubmittableResult } from '@pezkuwi/api'; +import type { SubmittableExtrinsic } from '@pezkuwi/api/submittable/types'; +import type { ApiTypes } from '@pezkuwi/api/types'; +import type { WeightV1, WeightV2 } from '@pezkuwi/types/interfaces'; +import type { BN } from '@pezkuwi/util'; +import type { AbiConstructor, AbiMessage, BlueprintOptions, WeightAll } from '../types.js'; +import type { BlueprintDeploy, ContractGeneric } from './types.js'; + +import { Bytes } from '@pezkuwi/types'; +import { bnToBn, compactAddLength, u8aToU8a } from '@pezkuwi/util'; +import { randomAsU8a } from '@pezkuwi/util-crypto'; + +export const EMPTY_SALT = new Uint8Array(); + +export function withMeta (meta: AbiMessage, creator: Omit): T { + (creator as T).meta = meta; + + return creator as T; +} + +export function createBluePrintTx (meta: AbiMessage, fn: (options: BlueprintOptions, params: unknown[]) => SubmittableExtrinsic): BlueprintDeploy { + return withMeta(meta, (options: BlueprintOptions, ...params: unknown[]): SubmittableExtrinsic => + fn(options, params) + ); +} + +export function createBluePrintWithId (fn: (constructorOrId: AbiConstructor | string | number, options: BlueprintOptions, params: unknown[]) => T): ContractGeneric { + return (constructorOrId: AbiConstructor | string | number, options: BlueprintOptions, ...params: unknown[]): T => + fn(constructorOrId, options, params); +} + +export function encodeSalt (salt: Uint8Array | string | null = randomAsU8a()): Uint8Array { + return salt instanceof Bytes + ? salt + : salt?.length + ? compactAddLength(u8aToU8a(salt)) + : EMPTY_SALT; +} + +export function convertWeight (weight: WeightV1 | WeightV2 | bigint | string | number | BN): WeightAll { + const [refTime, proofSize] = isWeightV2(weight) + ? [weight.refTime.toBn(), weight.proofSize.toBn()] + : [bnToBn(weight), undefined]; + + return { + v1Weight: refTime, + v2Weight: { proofSize, refTime } + }; +} + +export function isWeightV2 (weight: WeightV1 | WeightV2 | bigint | string | number | BN): weight is WeightV2 { + return !!(weight as WeightV2).proofSize; +} diff --git a/packages/api-contract/src/bundle.ts b/packages/api-contract/src/bundle.ts new file mode 100644 index 0000000..059c062 --- /dev/null +++ b/packages/api-contract/src/bundle.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { Abi } from './Abi/index.js'; +export { packageInfo } from './packageInfo.js'; + +// all starred +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/packages/api-contract/src/checkTypes.manual.ts b/packages/api-contract/src/checkTypes.manual.ts new file mode 100644 index 0000000..2ac2e57 --- /dev/null +++ b/packages/api-contract/src/checkTypes.manual.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Simple non-runnable checks to test type definitions in the editor itself + +import '@pezkuwi/api-augment'; + +import type { TestKeyringMapBizinikiwi } from '@pezkuwi/keyring/testingPairs'; + +import { ApiPromise } from '@pezkuwi/api'; +import { BlueprintPromise, ContractPromise } from '@pezkuwi/api-contract'; +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; + +import abiIncrementer from './test/contracts/ink/v0/incrementer.json' assert { type: 'json' }; + +async function checkBlueprint (api: ApiPromise, pairs: TestKeyringMapBizinikiwi): Promise { + const blueprint = new BlueprintPromise(api, abiIncrementer as Record, '0x1234'); + + await blueprint.tx['new']({ gasLimit: 456, salt: '0x1234', value: 123 }, 42).signAndSend(pairs.bob); + await blueprint.tx['new']({ gasLimit: 456, value: 123 }, 42).signAndSend(pairs.bob); +} + +async function checkContract (api: ApiPromise, pairs: TestKeyringMapBizinikiwi): Promise { + const contract = new ContractPromise(api, abiIncrementer as Record, '0x1234'); + + // queries + await contract.query['get'](pairs.alice.address, {}); + + // execute + await contract.tx['inc']({ gasLimit: 1234 }, 123).signAndSend(pairs.eve); +} + +async function main (): Promise { + const api = await ApiPromise.create({ + hasher: (data: Uint8Array): Uint8Array => data + }); + const pairs = createTestPairs(); + + await Promise.all([ + checkBlueprint(api, pairs), + checkContract(api, pairs) + ]); +} + +main().catch(console.error); diff --git a/packages/api-contract/src/index.ts b/packages/api-contract/src/index.ts new file mode 100644 index 0000000..9e6dd36 --- /dev/null +++ b/packages/api-contract/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/api-contract/src/mod.ts b/packages/api-contract/src/mod.ts new file mode 100644 index 0000000..7d18f08 --- /dev/null +++ b/packages/api-contract/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/api-contract/src/packageDetect.ts b/packages/api-contract/src/packageDetect.ts new file mode 100644 index 0000000..4fbd8d0 --- /dev/null +++ b/packages/api-contract/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2026 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as apiInfo } from '@pezkuwi/api/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [apiInfo, typesInfo]); diff --git a/packages/api-contract/src/packageInfo.ts b/packages/api-contract/src/packageInfo.ts new file mode 100644 index 0000000..826ea1f --- /dev/null +++ b/packages/api-contract/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/api-contract', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/api-contract/src/promise/index.ts b/packages/api-contract/src/promise/index.ts new file mode 100644 index 0000000..b5eb82e --- /dev/null +++ b/packages/api-contract/src/promise/index.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiPromise } from '@pezkuwi/api'; +import type { AccountId, AccountId20, Hash } from '@pezkuwi/types/interfaces'; +import type { Abi } from '../Abi/index.js'; + +import { toPromiseMethod } from '@pezkuwi/api'; + +import { Blueprint, Code, Contract } from '../base/index.js'; + +export class BlueprintPromise extends Blueprint<'promise'> { + constructor (api: ApiPromise, abi: string | Record | Abi, codeHash: string | Hash) { + super(api, abi, codeHash, toPromiseMethod); + } +} + +export class CodePromise extends Code<'promise'> { + constructor (api: ApiPromise, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined) { + super(api, abi, wasm, toPromiseMethod); + } +} + +export class ContractPromise extends Contract<'promise'> { + constructor (api: ApiPromise, abi: string | Record | Abi, address: string | AccountId | AccountId20) { + super(api, abi, address, toPromiseMethod); + } +} diff --git a/packages/api-contract/src/promise/types.ts b/packages/api-contract/src/promise/types.ts new file mode 100644 index 0000000..00c877d --- /dev/null +++ b/packages/api-contract/src/promise/types.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BlueprintSubmittableResult as BaseBlueprintSubmittableResult, CodeSubmittableResult as BaseCodeSubmittableResult } from '../base/index.js'; + +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/packages/api-contract/src/rx/index.ts b/packages/api-contract/src/rx/index.ts new file mode 100644 index 0000000..8facc85 --- /dev/null +++ b/packages/api-contract/src/rx/index.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiRx } from '@pezkuwi/api'; +import type { AccountId, Hash } from '@pezkuwi/types/interfaces'; +import type { Abi } from '../Abi/index.js'; + +import { toRxMethod } from '@pezkuwi/api'; + +import { Blueprint, Code, Contract } from '../base/index.js'; + +export class BlueprintRx extends Blueprint<'rxjs'> { + constructor (api: ApiRx, abi: string | Record | Abi, codeHash: string | Hash) { + super(api, abi, codeHash, toRxMethod); + } +} + +export class CodeRx extends Code<'rxjs'> { + constructor (api: ApiRx, abi: string | Record | Abi, wasm: Uint8Array | string | Buffer | null | undefined) { + super(api, abi, wasm, toRxMethod); + } +} + +export class ContractRx extends Contract<'rxjs'> { + constructor (api: ApiRx, abi: string | Record | Abi, address: string | AccountId) { + super(api, abi, address, toRxMethod); + } +} diff --git a/packages/api-contract/src/rx/types.ts b/packages/api-contract/src/rx/types.ts new file mode 100644 index 0000000..00c877d --- /dev/null +++ b/packages/api-contract/src/rx/types.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BlueprintSubmittableResult as BaseBlueprintSubmittableResult, CodeSubmittableResult as BaseCodeSubmittableResult } from '../base/index.js'; + +export type BlueprintSubmittableResult = BaseBlueprintSubmittableResult<'promise'>; +export type CodeSubmittableResult = BaseCodeSubmittableResult<'promise'>; diff --git a/packages/api-contract/src/test/compare/ink_v0_delegator.test.json b/packages/api-contract/src/test/compare/ink_v0_delegator.test.json new file mode 100644 index 0000000..7723a55 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_delegator.test.json @@ -0,0 +1,47 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 2, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "i32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "Hash", + "docs": [], + "namespace": "ink_env::types::Hash", + "lookupNameRoot": "InkEnvHash" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_dns.test.json b/packages/api-contract/src/test/compare/ink_v0_dns.test.json new file mode 100644 index 0000000..7b4bbfc --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_dns.test.json @@ -0,0 +1,232 @@ +[ + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"Hash\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "Hash", + "docs": [], + "namespace": "ink_env::types::Hash", + "lookupNameRoot": "InkEnvHash", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "Hash", + "docs": [], + "namespace": "ink_env::types::Hash", + "lookupNameRoot": "InkEnvHash" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"AccountId\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 9, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Result", + "lookupIndex": 10, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 11, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 12, + "lookupName": "DnsError", + "type": "Lookup12" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 12, + "lookupName": "DnsError", + "type": "{\"_enum\":[\"NameAlreadyExists\",\"CallerIsNotOwner\"]}", + "docs": [], + "namespace": "dns::dns::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "NameAlreadyExists" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CallerIsNotOwner" + } + ] + }, + { + "info": "Option", + "lookupIndex": 13, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 9, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_erc20.test.json b/packages/api-contract/src/test/compare/ink_v0_erc20.test.json new file mode 100644 index 0000000..027a871 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_erc20.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 2, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 9, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 13, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_erc721.test.json b/packages/api-contract/src/test/compare/ink_v0_erc721.test.json new file mode 100644 index 0000000..fd77810 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_erc721.test.json @@ -0,0 +1,415 @@ +[ + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup4", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 5, + "type": "{\"value\":\"AccountId\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 7, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 9, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup4", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 10, + "lookupName": "InkStorageCollectionsHashmapValueEntryEntry", + "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 11, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup4", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "InkStorageCollectionsHashmapValueEntryOption", + "type": "{\"value\":\"bool\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 14, + "type": "bool", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 15, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 17, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 18, + "lookupName": "Erc721Error", + "type": "Lookup18" + } + ] + }, + { + "info": "Null", + "lookupIndex": 17, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 18, + "lookupName": "Erc721Error", + "type": "{\"_enum\":[\"NotOwner\",\"NotApproved\",\"TokenExists\",\"TokenNotFound\",\"CannotInsert\",\"CannotRemove\",\"CannotFetchValue\",\"NotAllowed\"]}", + "docs": [], + "namespace": "erc721::erc721::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "NotOwner" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "NotApproved" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "TokenExists" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "TokenNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "CannotInsert" + }, + { + "info": "Null", + "type": "Null", + "index": 5, + "name": "CannotRemove" + }, + { + "info": "Null", + "type": "Null", + "index": 6, + "name": "CannotFetchValue" + }, + { + "info": "Null", + "type": "Null", + "index": 7, + "name": "NotAllowed" + } + ] + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_flipper.test.json b/packages/api-contract/src/test/compare/ink_v0_flipper.test.json new file mode 100644 index 0000000..e8b2c36 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "bool", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_flipperBundle.test.json b/packages/api-contract/src/test/compare/ink_v0_flipperBundle.test.json new file mode 100644 index 0000000..e8b2c36 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_flipperBundle.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "bool", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_incrementer.test.json b/packages/api-contract/src/test/compare/ink_v0_incrementer.test.json new file mode 100644 index 0000000..ad78a52 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_incrementer.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v0_multisigPlain.test.json b/packages/api-contract/src/test/compare/ink_v0_multisigPlain.test.json new file mode 100644 index 0000000..edc6a72 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v0_multisigPlain.test.json @@ -0,0 +1,562 @@ +[ + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 4, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 4, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 9, + "type": "{\"value\":\"Null\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 11, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 12, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 13, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"MultisigPlainTransaction\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 14, + "lookupName": "MultisigPlainTransaction", + "type": "Lookup14", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 14, + "lookupName": "MultisigPlainTransaction", + "type": "{\"callee\":\"AccountId\",\"selector\":\"[u8;4]\",\"input\":\"Bytes\",\"transferredValue\":\"u128\",\"gasLimit\":\"u64\"}", + "docs": [], + "namespace": "multisig_plain::multisig_plain::Transaction", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "name": "callee" + }, + { + "info": "VecFixed", + "lookupIndex": 15, + "type": "[u8;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + "name": "selector" + }, + { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "", + "name": "input" + }, + { + "info": "Plain", + "lookupIndex": 17, + "type": "u128", + "docs": [], + "namespace": "", + "name": "transferredValue" + }, + { + "info": "Plain", + "lookupIndex": 18, + "type": "u64", + "docs": [], + "namespace": "", + "name": "gasLimit" + } + ] + }, + { + "info": "VecFixed", + "lookupIndex": 15, + "type": "[u8;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 17, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 18, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Vec", + "lookupIndex": 20, + "type": "Vec", + "docs": [], + "namespace": "", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + }, + { + "info": "Tuple", + "lookupIndex": 21, + "type": "(u32,MultisigPlainConfirmationStatus)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "MultisigPlainConfirmationStatus", + "type": "Lookup22" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 22, + "lookupName": "MultisigPlainConfirmationStatus", + "type": "{\"_enum\":{\"Confirmed\":\"Null\",\"ConfirmationsNeeded\":\"u32\"}}", + "docs": [], + "namespace": "multisig_plain::multisig_plain::ConfirmationStatus", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "Confirmed" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "ConfirmationsNeeded" + } + ] + }, + { + "info": "Result", + "lookupIndex": 23, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 24, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 25, + "type": "Result, Null>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 26, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + } + }, + { + "name": "Error", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + } + ] + }, + { + "info": "Option", + "lookupIndex": 26, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 16, + "type": "Bytes", + "docs": [], + "namespace": "" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v1_flipper.test.json b/packages/api-contract/src/test/compare/ink_v1_flipper.test.json new file mode 100644 index 0000000..e7e9211 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v1_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v1_psp22.test.json b/packages/api-contract/src/test/compare/ink_v1_psp22.test.json new file mode 100644 index 0000000..39fa53c --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v1_psp22.test.json @@ -0,0 +1,531 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant", + "typeName": "Index" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len", + "typeName": "u32" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries", + "typeName": "u32" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next", + "typeName": "Index" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev", + "typeName": "Index" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 8, + "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "", + "name": "value", + "typeName": "V" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex", + "typeName": "KeyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 9, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 13, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"u32\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 14, + "type": "{\"value\":\"u32\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value", + "typeName": "V" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex", + "typeName": "KeyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(u32,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup7", + "typeName": "VacantEntry", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 16, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "typeName": "T", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 16, + "type": "(u32,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 17, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"Null\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Null", + "lookupIndex": 18, + "type": "Null", + "docs": [], + "namespace": "", + "name": "value", + "typeName": "V" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex", + "typeName": "KeyIndex" + } + ] + }, + { + "info": "Null", + "lookupIndex": 18, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 19, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "" + } + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 18, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "ContractsErrorsPsp22Psp22Error", + "type": "Lookup21" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 21, + "lookupName": "ContractsErrorsPsp22Psp22Error", + "type": "{\"_enum\":{\"Custom\":\"Text\",\"InsufficientBalance\":\"Null\",\"InsufficientAllowance\":\"Null\",\"ZeroRecipientAddress\":\"Null\",\"ZeroSenderAddress\":\"Null\",\"SafeTransferCheckFailed\":\"Text\"}}", + "docs": [], + "namespace": "contracts::traits::errors::psp22::PSP22Error", + "sub": [ + { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 0, + "name": "Custom" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "InsufficientAllowance" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "ZeroRecipientAddress" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "ZeroSenderAddress" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "Text", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 23, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v2_erc20.test.json b/packages/api-contract/src/test/compare/ink_v2_erc20.test.json new file mode 100644 index 0000000..c034fec --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v2_erc20.test.json @@ -0,0 +1,205 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "[u8;32]" + }, + { + "info": "Struct", + "lookupIndex": 6, + "lookupName": "InkStorageLazyMapping", + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 7, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v2_flipper.test.json b/packages/api-contract/src/test/compare/ink_v2_flipper.test.json new file mode 100644 index 0000000..e7e9211 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v2_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v3_flipper.test.json b/packages/api-contract/src/test/compare/ink_v3_flipper.test.json new file mode 100644 index 0000000..e7e9211 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v3_flipper.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v3_traitErc20.test.json b/packages/api-contract/src/test/compare/ink_v3_traitErc20.test.json new file mode 100644 index 0000000..365dc61 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v3_traitErc20.test.json @@ -0,0 +1,205 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "[u8;32]" + }, + { + "info": "Struct", + "lookupIndex": 6, + "lookupName": "InkStorageLazyMapping", + "type": "{\"offsetKey\":\"InkPrimitivesKey\"}", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping", + "sub": [ + { + "info": "VecFixed", + "lookupIndex": 5, + "lookupName": "InkPrimitivesKey", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "Key", + "name": "offsetKey" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 7, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "TraitErc20Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Null", + "lookupIndex": 9, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "TraitErc20Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "trait_erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json b/packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json new file mode 100644 index 0000000..db8cc7b --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v4_erc20Contract.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 15, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json b/packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json new file mode 100644 index 0000000..db8cc7b --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v4_erc20Metadata.test.json @@ -0,0 +1,253 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 8, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 11, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 14, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 15, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v4_flipperContract.test.json b/packages/api-contract/src/test/compare/ink_v4_flipperContract.test.json new file mode 100644 index 0000000..09a2545 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v4_flipperContract.test.json @@ -0,0 +1,155 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v4_flipperMetadata.test.json b/packages/api-contract/src/test/compare/ink_v4_flipperMetadata.test.json new file mode 100644 index 0000000..09a2545 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v4_flipperMetadata.test.json @@ -0,0 +1,155 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 1, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Null", + "lookupIndex": 2, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 4, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 3, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup3" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_erc20.test.json b/packages/api-contract/src/test/compare/ink_v5_erc20.test.json new file mode 100644 index 0000000..c8d5fe3 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_erc20.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json b/packages/api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json new file mode 100644 index 0000000..c8d5fe3 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_erc20AnonymousTransferMetadata.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json b/packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json new file mode 100644 index 0000000..c8d5fe3 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_erc20Contract.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json b/packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json new file mode 100644 index 0000000..c8d5fe3 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_erc20Metadata.test.json @@ -0,0 +1,370 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 5, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 6, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 7, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 10, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + ] + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 12, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 13, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"u128\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "namespace": "", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 1, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 17, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 15, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup15" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 8, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "Lookup19" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 19, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 20, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Plain", + "lookupIndex": 21, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 22, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 24, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_flipperContract.test.json b/packages/api-contract/src/test/compare/ink_v5_flipperContract.test.json new file mode 100644 index 0000000..1c2cbbc --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_flipperContract.test.json @@ -0,0 +1,174 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "Flipper", + "type": "{\"value\":\"bool\"}", + "docs": [], + "namespace": "flipper::flipper::Flipper", + "sub": [ + { + "docs": [], + "name": "value", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "namespace": "", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 2, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 5, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 7, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v5_flipperMetadata.test.json b/packages/api-contract/src/test/compare/ink_v5_flipperMetadata.test.json new file mode 100644 index 0000000..1c2cbbc --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v5_flipperMetadata.test.json @@ -0,0 +1,174 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 1, + "lookupName": "Flipper", + "type": "{\"value\":\"bool\"}", + "docs": [], + "namespace": "flipper::flipper::Flipper", + "sub": [ + { + "docs": [], + "name": "value", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "namespace": "", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 2, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 5, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 4, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup4" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 7, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 9, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 10, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 11, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_env::types::NoChainExtension", + "lookupNameRoot": "InkEnvNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v6_erc20Contract.test.json b/packages/api-contract/src/test/compare/ink_v6_erc20Contract.test.json new file mode 100644 index 0000000..99c0507 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v6_erc20Contract.test.json @@ -0,0 +1,418 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "info": "VecFixed", + "lookupIndex": 1, + "type": "[u64;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;20]", + "docs": [], + "namespace": "", + "length": 20, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 7, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(H160,H160)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + ] + }, + { + "info": "Null", + "lookupIndex": 13, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 14, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 15, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"U256\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 19, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 22, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 24, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 25, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 26, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 27, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 28, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_primitives::types::NoChainExtension", + "lookupNameRoot": "InkPrimitivesNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/ink_v6_erc20Metadata.test.json b/packages/api-contract/src/test/compare/ink_v6_erc20Metadata.test.json new file mode 100644 index 0000000..99c0507 --- /dev/null +++ b/packages/api-contract/src/test/compare/ink_v6_erc20Metadata.test.json @@ -0,0 +1,418 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "info": "VecFixed", + "lookupIndex": 1, + "type": "[u64;4]", + "docs": [], + "namespace": "", + "length": 4, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "VecFixed", + "lookupIndex": 5, + "type": "[u8;20]", + "docs": [], + "namespace": "", + "length": 20, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 7, + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 8, + "lookupName": "InkStorageTraitsImplsAutoKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::AutoKey" + }, + { + "info": "Null", + "lookupIndex": 9, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "docs": [], + "namespace": "ink_storage::lazy::mapping::Mapping" + }, + { + "info": "Tuple", + "lookupIndex": 12, + "type": "(H160,H160)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + ] + }, + { + "info": "Null", + "lookupIndex": 13, + "lookupName": "InkStorageTraitsImplsResolverKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ResolverKey" + }, + { + "info": "Null", + "lookupIndex": 14, + "lookupName": "InkStorageTraitsImplsManualKey", + "type": "Null", + "docs": [], + "namespace": "ink_storage_traits::impls::ManualKey" + }, + { + "info": "Struct", + "lookupIndex": 15, + "lookupName": "Erc20", + "type": "{\"totalSupply\":\"U256\",\"balances\":\"Null\",\"allowances\":\"InkStorageLazyMapping\"}", + "docs": [], + "namespace": "erc20::erc20::Erc20", + "sub": [ + { + "docs": [], + "name": "totalSupply", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256", + "typeName": "" + }, + { + "docs": [], + "name": "balances", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + }, + { + "docs": [], + "name": "allowances", + "info": "Null", + "lookupIndex": 11, + "lookupName": "InkStorageLazyMapping", + "type": "Null", + "namespace": "ink_storage::lazy::mapping::Mapping", + "typeName": "" + } + ] + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 0, + "type": "U256", + "docs": [], + "namespace": "primitive_types::U256", + "lookupNameRoot": "PrimitiveTypesU256" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 19, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 17, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup17" + } + ] + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 10, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "Lookup21" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 21, + "lookupName": "Erc20Error", + "type": "{\"_enum\":[\"InsufficientBalance\",\"InsufficientAllowance\"]}", + "docs": [], + "namespace": "erc20::erc20::Error", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InsufficientBalance" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "InsufficientAllowance" + } + ] + }, + { + "info": "Option", + "lookupIndex": 22, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 4, + "type": "H160", + "docs": [], + "namespace": "primitive_types::H160", + "lookupNameRoot": "PrimitiveTypesH160" + } + }, + { + "info": "Plain", + "lookupIndex": 23, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 24, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 25, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 26, + "type": "Hash", + "docs": [], + "namespace": "ink_primitives::types::Hash", + "lookupNameRoot": "InkPrimitivesHash" + }, + { + "info": "Plain", + "lookupIndex": 27, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 28, + "type": "NoChainExtension", + "docs": [], + "namespace": "ink_primitives::types::NoChainExtension", + "lookupNameRoot": "InkPrimitivesNoChainExtension" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/solang_v0_ints256.test.json b/packages/api-contract/src/test/compare/solang_v0_ints256.test.json new file mode 100644 index 0000000..18608d4 --- /dev/null +++ b/packages/api-contract/src/test/compare/solang_v0_ints256.test.json @@ -0,0 +1,9 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u256", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/user_v0_assetTransfer.test.json b/packages/api-contract/src/test/compare/user_v0_assetTransfer.test.json new file mode 100644 index 0000000..139bc27 --- /dev/null +++ b/packages/api-contract/src/test/compare/user_v0_assetTransfer.test.json @@ -0,0 +1,54 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u256", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 3, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "VecFixed", + "lookupIndex": 4, + "lookupName": "AccountId", + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "Text", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/user_v0_enumExample.test.json b/packages/api-contract/src/test/compare/user_v0_enumExample.test.json new file mode 100644 index 0000000..91abebc --- /dev/null +++ b/packages/api-contract/src/test/compare/user_v0_enumExample.test.json @@ -0,0 +1,303 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "lookupName": "EnumExampleVariant", + "type": "{\"_enum\":{\"None\":\"Null\",\"Weekday\":\"EnumExampleWeekday\",\"TupleMaybeSigned\":\"EnumExampleTupleMaybeSigned\",\"NamedMaybeSigned\":\"EnumExampleNamedMaybeSigned\",\"Color\":\"EnumExampleColor\"}}", + "docs": [], + "namespace": "enum_example::enum_example::Variant", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "None" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 5, + "lookupName": "EnumExampleWeekday", + "type": "Lookup5", + "index": 1, + "name": "Weekday" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 6, + "lookupName": "EnumExampleTupleMaybeSigned", + "type": "Lookup6", + "index": 2, + "name": "TupleMaybeSigned" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 7, + "lookupName": "EnumExampleNamedMaybeSigned", + "type": "Lookup7", + "index": 3, + "name": "NamedMaybeSigned" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "EnumExampleColor", + "type": "Lookup8", + "index": 4, + "name": "Color" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 5, + "lookupName": "EnumExampleWeekday", + "type": "{\"_enum\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\",\"Sunday\"]}", + "docs": [], + "namespace": "enum_example::enum_example::Weekday", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "Monday" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "Tuesday" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "Wednesday" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "Thursday" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "Friday" + }, + { + "info": "Null", + "type": "Null", + "index": 5, + "name": "Saturday" + }, + { + "info": "Null", + "type": "Null", + "index": 6, + "name": "Sunday" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 6, + "lookupName": "EnumExampleTupleMaybeSigned", + "type": "{\"_enum\":{\"Signed\":\"i32\",\"Unsigned\":\"u32\"}}", + "docs": [], + "namespace": "enum_example::enum_example::TupleMaybeSigned", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "", + "index": 0, + "name": "Signed" + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "index": 1, + "name": "Unsigned" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 7, + "lookupName": "EnumExampleNamedMaybeSigned", + "type": "{\"_enum\":{\"Signed\":\"{\\\"value\\\":\\\"i32\\\"}\",\"Unsigned\":\"{\\\"value\\\":\\\"u32\\\"}\"}}", + "docs": [], + "namespace": "enum_example::enum_example::NamedMaybeSigned", + "sub": [ + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "i32", + "docs": [], + "namespace": "", + "name": "value" + } + ], + "type": "{\"value\":\"i32\"}", + "index": 0, + "name": "Signed" + }, + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u32", + "docs": [], + "namespace": "", + "name": "value" + } + ], + "type": "{\"value\":\"u32\"}", + "index": 1, + "name": "Unsigned" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 8, + "lookupName": "EnumExampleColor", + "type": "{\"_enum\":{\"Red\":\"Null\",\"Blue\":\"Null\",\"Green\":\"Null\",\"Yellow\":\"Null\",\"Rgb\":\"{\\\"r\\\":\\\"u8\\\",\\\"g\\\":\\\"u8\\\",\\\"b\\\":\\\"u8\\\"}\",\"Rgba\":\"{\\\"r\\\":\\\"u8\\\",\\\"g\\\":\\\"u8\\\",\\\"b\\\":\\\"u8\\\",\\\"a\\\":\\\"u8\\\"}\"}}", + "docs": [], + "namespace": "enum_example::enum_example::Color", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "Red" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "Blue" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "Green" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "Yellow" + }, + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "r" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "g" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "b" + } + ], + "type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\"}", + "index": 4, + "name": "Rgb" + }, + { + "info": "Struct", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "r" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "g" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "b" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u8", + "docs": [], + "namespace": "", + "name": "a" + } + ], + "type": "{\"r\":\"u8\",\"g\":\"u8\",\"b\":\"u8\",\"a\":\"u8\"}", + "index": 5, + "name": "Rgba" + } + ] + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/user_v0_recursive.test.json b/packages/api-contract/src/test/compare/user_v0_recursive.test.json new file mode 100644 index 0000000..05563de --- /dev/null +++ b/packages/api-contract/src/test/compare/user_v0_recursive.test.json @@ -0,0 +1,27 @@ +[ + { + "info": "Enum", + "lookupIndex": 1, + "lookupName": "RecursiveMyEnum", + "type": "{\"_enum\":{\"A\":\"Null\",\"B\":\"RecursiveMyEnum\"}}", + "docs": [], + "namespace": "recursive::MyEnum", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "A" + }, + { + "info": "Si", + "lookupIndex": 1, + "lookupName": "RecursiveMyEnum", + "type": "Lookup1", + "typeName": "MyEnum", + "index": 1, + "name": "B" + } + ] + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/user_v0_withString.test.json b/packages/api-contract/src/test/compare/user_v0_withString.test.json new file mode 100644 index 0000000..e27090b --- /dev/null +++ b/packages/api-contract/src/test/compare/user_v0_withString.test.json @@ -0,0 +1,260 @@ +[ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 2, + "lookupName": "InkStorageCollectionsStashHeader", + "type": "{\"lastVacant\":\"u32\",\"len\":\"u32\",\"lenEntries\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::Header", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lastVacant" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "len" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "lenEntries" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 4, + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"AccountId\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId", + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 6, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Struct", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "{\"next\":\"u32\",\"prev\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::stash::VacantEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "next" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "prev" + } + ] + }, + { + "info": "Struct", + "lookupIndex": 9, + "lookupName": "InkStorageCollectionsHashmapValueEntry", + "type": "{\"value\":\"u128\",\"keyIndex\":\"u32\"}", + "docs": [], + "namespace": "ink_storage::collections::hashmap::ValueEntry", + "sub": [ + { + "info": "Plain", + "lookupIndex": 1, + "type": "u128", + "docs": [], + "namespace": "", + "name": "value" + }, + { + "info": "Plain", + "lookupIndex": 3, + "type": "u32", + "docs": [], + "namespace": "", + "name": "keyIndex" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "InkStorageCollectionsStashEntry", + "type": "{\"_enum\":{\"Vacant\":\"InkStorageCollectionsStashVacantEntry\",\"Occupied\":\"(AccountId,AccountId)\"}}", + "docs": [], + "namespace": "ink_storage::collections::stash::Entry", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 8, + "lookupName": "InkStorageCollectionsStashVacantEntry", + "type": "Lookup8", + "index": 0, + "name": "Vacant" + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ], + "index": 1, + "name": "Occupied" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 11, + "type": "(AccountId,AccountId)", + "docs": [], + "namespace": "", + "sub": [ + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 12, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 13, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Option", + "lookupIndex": 14, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 5, + "type": "AccountId", + "docs": [], + "namespace": "ink_env::types::AccountId", + "lookupNameRoot": "InkEnvAccountId" + } + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/user_v3_ask.test.json b/packages/api-contract/src/test/compare/user_v3_ask.test.json new file mode 100644 index 0000000..a51e002 --- /dev/null +++ b/packages/api-contract/src/test/compare/user_v3_ask.test.json @@ -0,0 +1,71 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 1, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "VecFixed", + "lookupIndex": 2, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Struct", + "lookupIndex": 3, + "type": "{\"inner\":\"[u8;32]\"}", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "name": "inner", + "info": "VecFixed", + "lookupIndex": 2, + "type": "[u8;32]", + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "u8", + "docs": [], + "namespace": "" + }, + "typeName": "FixedArray32" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "bool", + "docs": [], + "namespace": "" + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/compare/user_v4_events.test.json b/packages/api-contract/src/test/compare/user_v4_events.test.json new file mode 100644 index 0000000..dd8f2aa --- /dev/null +++ b/packages/api-contract/src/test/compare/user_v4_events.test.json @@ -0,0 +1,1328 @@ +[ + { + "info": "Plain", + "lookupIndex": 0, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + }, + { + "info": "VecFixed", + "lookupIndex": 1, + "type": "[u8;32]", + "docs": [], + "namespace": "", + "length": 32, + "sub": { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + } + }, + { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "" + }, + { + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u16", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 9, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "{\"_enum\":[\"__Unused0\",\"CouldNotReadInput\"]}", + "docs": [], + "namespace": "ink_primitives::LangError", + "sub": [ + { + "index": 0, + "info": "Null", + "name": "__Unused0", + "type": "Null" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "CouldNotReadInput" + } + ] + }, + { + "info": "Result", + "lookupIndex": 11, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 7, + "type": "u128", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 12, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "{\"_enum\":{\"U8\":\"u8\",\"U16\":\"u16\",\"U32\":\"u32\",\"U64\":\"u64\",\"U128\":\"u128\",\"Bytes\":\"Bytes\"}}", + "docs": [], + "namespace": "openbrush_contracts::traits::types::Id", + "sub": [ + { + "info": "Plain", + "lookupIndex": 2, + "type": "u8", + "docs": [], + "namespace": "", + "typeName": "u8", + "index": 0, + "name": "U8" + }, + { + "info": "Plain", + "lookupIndex": 4, + "type": "u16", + "docs": [], + "namespace": "", + "typeName": "u16", + "index": 1, + "name": "U16" + }, + { + "info": "Plain", + "lookupIndex": 5, + "type": "u32", + "docs": [], + "namespace": "", + "typeName": "u32", + "index": 2, + "name": "U32" + }, + { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "", + "typeName": "u64", + "index": 3, + "name": "U64" + }, + { + "info": "Plain", + "lookupIndex": 7, + "type": "u128", + "docs": [], + "namespace": "", + "typeName": "u128", + "index": 4, + "name": "U128" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "", + "typeName": "Bytes", + "index": 5, + "name": "Bytes" + } + ] + }, + { + "info": "Result", + "lookupIndex": 14, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 15, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 15, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 0, + "type": "AccountId", + "docs": [], + "namespace": "ink_primitives::types::AccountId", + "lookupNameRoot": "InkPrimitivesAccountId" + } + }, + { + "info": "Result", + "lookupIndex": 16, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 5, + "type": "u32", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 17, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + }, + { + "info": "Result", + "lookupIndex": 18, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 19, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 19, + "type": "bool", + "docs": [], + "namespace": "" + }, + { + "info": "Result", + "lookupIndex": 20, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 21, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 21, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "{\"_enum\":{\"Custom\":\"Bytes\",\"SelfApprove\":\"Null\",\"NotApproved\":\"Null\",\"TokenExists\":\"Null\",\"TokenNotExists\":\"Null\",\"SafeTransferCheckFailed\":\"Bytes\"}}", + "docs": [], + "namespace": "openbrush_contracts::traits::errors::psp34::PSP34Error", + "sub": [ + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 0, + "name": "Custom" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "SelfApprove" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "NotApproved" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "TokenExists" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "TokenNotExists" + }, + { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "", + "typeName": "Text", + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + }, + { + "info": "Result", + "lookupIndex": 23, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 24, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "Lookup25" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 24, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "Lookup25" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "{\"_enum\":[\"InvalidCaller\",\"MissingRole\",\"RoleRedundant\"]}", + "docs": [], + "namespace": "openbrush_contracts::traits::errors::access_control::AccessControlError", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "InvalidCaller" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "MissingRole" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "RoleRedundant" + } + ] + }, + { + "info": "Result", + "lookupIndex": 26, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 27, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "" + } + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 27, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 8, + "type": "Bytes", + "docs": [], + "namespace": "" + } + }, + { + "info": "Result", + "lookupIndex": 28, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 29, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 29, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22" + } + ] + }, + { + "info": "Result", + "lookupIndex": 30, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 31, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 32, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 31, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Plain", + "lookupIndex": 32, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Plain", + "lookupIndex": 32, + "type": "Text", + "docs": [], + "namespace": "" + }, + { + "info": "Enum", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "{\"_enum\":{\"Rmrk\":\"RmrkCommonErrorsRmrkError\",\"PSP34\":\"OpenbrushContractsErrorsPsp34Psp34Error\",\"AccessControl\":\"OpenbrushContractsErrorsAccessControlAccessControlError\",\"Reentrancy\":\"OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError\"}}", + "docs": [], + "namespace": "rmrk_common::errors::Error", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 34, + "lookupName": "RmrkCommonErrorsRmrkError", + "type": "Lookup34", + "typeName": "RmrkError", + "index": 0, + "name": "Rmrk" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 22, + "lookupName": "OpenbrushContractsErrorsPsp34Psp34Error", + "type": "Lookup22", + "typeName": "PSP34Error", + "index": 1, + "name": "PSP34" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 25, + "lookupName": "OpenbrushContractsErrorsAccessControlAccessControlError", + "type": "Lookup25", + "typeName": "AccessControlError", + "index": 2, + "name": "AccessControl" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 35, + "lookupName": "OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError", + "type": "Lookup35", + "typeName": "ReentrancyGuardError", + "index": 3, + "name": "Reentrancy" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 34, + "lookupName": "RmrkCommonErrorsRmrkError", + "type": "{\"_enum\":[\"AcceptedAssetsMissing\",\"AddingPendingAsset\",\"AddingPendingChild\",\"AddressNotEquippable\",\"AlreadyAddedAsset\",\"AlreadyAddedChild\",\"AssetHasNoParts\",\"AssetIdAlreadyExists\",\"AssetIdNotFound\",\"AssetIdNotEquippable\",\"BadConfig\",\"BadMintValue\",\"BadPriorityLength\",\"CannotMintZeroTokens\",\"CatalogNotFoundForAsset\",\"ChildNotFound\",\"UriNotFound\",\"CollectionIsFull\",\"InvalidAssetId\",\"InvalidParentId\",\"InvalidTokenId\",\"NotEquipped\",\"NotTokenOwner\",\"PartIsNotSlot\",\"SlotAlreayUsed\",\"TargetAssetCannotReceiveSlot\",\"UnknownEquippableAsset\",\"UnknownPart\",\"UnknownPartId\",\"WithdrawalFailed\"]}", + "docs": [], + "namespace": "rmrk_common::errors::RmrkError", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "AcceptedAssetsMissing" + }, + { + "info": "Null", + "type": "Null", + "index": 1, + "name": "AddingPendingAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 2, + "name": "AddingPendingChild" + }, + { + "info": "Null", + "type": "Null", + "index": 3, + "name": "AddressNotEquippable" + }, + { + "info": "Null", + "type": "Null", + "index": 4, + "name": "AlreadyAddedAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 5, + "name": "AlreadyAddedChild" + }, + { + "info": "Null", + "type": "Null", + "index": 6, + "name": "AssetHasNoParts" + }, + { + "info": "Null", + "type": "Null", + "index": 7, + "name": "AssetIdAlreadyExists" + }, + { + "info": "Null", + "type": "Null", + "index": 8, + "name": "AssetIdNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 9, + "name": "AssetIdNotEquippable" + }, + { + "info": "Null", + "type": "Null", + "index": 10, + "name": "BadConfig" + }, + { + "info": "Null", + "type": "Null", + "index": 11, + "name": "BadMintValue" + }, + { + "info": "Null", + "type": "Null", + "index": 12, + "name": "BadPriorityLength" + }, + { + "info": "Null", + "type": "Null", + "index": 13, + "name": "CannotMintZeroTokens" + }, + { + "info": "Null", + "type": "Null", + "index": 14, + "name": "CatalogNotFoundForAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 15, + "name": "ChildNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 16, + "name": "UriNotFound" + }, + { + "info": "Null", + "type": "Null", + "index": 17, + "name": "CollectionIsFull" + }, + { + "info": "Null", + "type": "Null", + "index": 18, + "name": "InvalidAssetId" + }, + { + "info": "Null", + "type": "Null", + "index": 19, + "name": "InvalidParentId" + }, + { + "info": "Null", + "type": "Null", + "index": 20, + "name": "InvalidTokenId" + }, + { + "info": "Null", + "type": "Null", + "index": 21, + "name": "NotEquipped" + }, + { + "info": "Null", + "type": "Null", + "index": 22, + "name": "NotTokenOwner" + }, + { + "info": "Null", + "type": "Null", + "index": 23, + "name": "PartIsNotSlot" + }, + { + "info": "Null", + "type": "Null", + "index": 24, + "name": "SlotAlreayUsed" + }, + { + "info": "Null", + "type": "Null", + "index": 25, + "name": "TargetAssetCannotReceiveSlot" + }, + { + "info": "Null", + "type": "Null", + "index": 26, + "name": "UnknownEquippableAsset" + }, + { + "info": "Null", + "type": "Null", + "index": 27, + "name": "UnknownPart" + }, + { + "info": "Null", + "type": "Null", + "index": 28, + "name": "UnknownPartId" + }, + { + "info": "Null", + "type": "Null", + "index": 29, + "name": "WithdrawalFailed" + } + ] + }, + { + "info": "Enum", + "lookupIndex": 35, + "lookupName": "OpenbrushContractsErrorsReentrancyGuardReentrancyGuardError", + "type": "{\"_enum\":[\"ReentrantCall\"]}", + "docs": [], + "namespace": "openbrush_contracts::traits::errors::reentrancy_guard::ReentrancyGuardError", + "sub": [ + { + "info": "Null", + "type": "Null", + "index": 0, + "name": "ReentrantCall" + } + ] + }, + { + "info": "Result", + "lookupIndex": 36, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Option", + "lookupIndex": 37, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Option", + "lookupIndex": 37, + "type": "Option", + "docs": [], + "namespace": "Option", + "sub": { + "info": "Plain", + "lookupIndex": 6, + "type": "u64", + "docs": [], + "namespace": "" + } + }, + { + "info": "Result", + "lookupIndex": 38, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 39, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 39, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Null", + "lookupIndex": 3, + "type": "Null", + "docs": [], + "namespace": "" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Result", + "lookupIndex": 40, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 41, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 41, + "type": "Result", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Result", + "lookupIndex": 42, + "type": "Result, InkPrimitivesLangError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Result", + "lookupIndex": 43, + "type": "Result<(OpenbrushContractsTypesId,OpenbrushContractsTypesId), RmrkCommonErrorsError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Tuple", + "lookupIndex": 44, + "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 10, + "lookupName": "InkPrimitivesLangError", + "type": "Lookup10" + } + ] + }, + { + "info": "Result", + "lookupIndex": 43, + "type": "Result<(OpenbrushContractsTypesId,OpenbrushContractsTypesId), RmrkCommonErrorsError>", + "docs": [], + "namespace": "Result", + "sub": [ + { + "name": "Ok", + "info": "Tuple", + "lookupIndex": 44, + "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + ] + }, + { + "name": "Error", + "docs": [], + "info": "Si", + "lookupIndex": 33, + "lookupName": "RmrkCommonErrorsError", + "type": "Lookup33" + } + ] + }, + { + "info": "Tuple", + "lookupIndex": 44, + "type": "(OpenbrushContractsTypesId,OpenbrushContractsTypesId)", + "docs": [], + "namespace": "", + "sub": [ + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + }, + { + "docs": [], + "info": "Si", + "lookupIndex": 13, + "lookupName": "OpenbrushContractsTypesId", + "type": "Lookup13" + } + ] + } +] \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/index.ts b/packages/api-contract/src/test/contracts/index.ts new file mode 100644 index 0000000..415856d --- /dev/null +++ b/packages/api-contract/src/test/contracts/index.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import ink from './ink/index.js'; +import solang from './solang/index.js'; +import user from './user/index.js'; + +const all: Record> = {}; + +Object + .entries({ ink, solang, user }) + .forEach(([type, abis]) => + Object + .entries(abis) + .forEach(([name, abi]): void => { + all[`${type}_${name}`] = abi; + }) + ); + +export default all; diff --git a/packages/api-contract/src/test/contracts/ink/index.ts b/packages/api-contract/src/test/contracts/ink/index.ts new file mode 100644 index 0000000..390f370 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/index.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +import * as v1 from './v1/index.js'; +import * as v2 from './v2/index.js'; +import * as v3 from './v3/index.js'; +import * as v4 from './v4/index.js'; +import * as v5 from './v5/index.js'; +import * as v6 from './v6/index.js'; + +export default createVersionedExport({ v0, v1, v2, v3, v4, v5, v6 }); diff --git a/packages/api-contract/src/test/contracts/ink/v0/accumulator.wasm b/packages/api-contract/src/test/contracts/ink/v0/accumulator.wasm new file mode 100644 index 0000000..33197e6 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/accumulator.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/adder.wasm b/packages/api-contract/src/test/contracts/ink/v0/adder.wasm new file mode 100644 index 0000000..37f0003 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/adder.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/delegator.json b/packages/api-contract/src/test/contracts/ink/v0/delegator.json new file mode 100644 index 0000000..3bb6539 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/delegator.json @@ -0,0 +1,252 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x939d1823be952b4d7114448bb1a27fa13bafb8c4b33149efc24e826d8e54035e", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "delegator", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": [ + "i32" + ], + "type": 4 + } + }, + { + "name": "accumulator_code_hash", + "type": { + "displayName": [ + "Hash" + ], + "type": 5 + } + }, + { + "name": "adder_code_hash", + "type": { + "displayName": [ + "Hash" + ], + "type": 5 + } + }, + { + "name": "subber_code_hash", + "type": { + "displayName": [ + "Hash" + ], + "type": 5 + } + } + ], + "docs": [ + " Instantiate a delegator with the given sub-contract codes." + ], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [ + " Returns the accumulator's value." + ], + "mutates": false, + "name": [ + "get" + ], + "payable": false, + "returnType": { + "displayName": [ + "i32" + ], + "type": 4 + }, + "selector": "0x1e5ca456" + }, + { + "args": [ + { + "name": "by", + "type": { + "displayName": [ + "i32" + ], + "type": 4 + } + } + ], + "docs": [ + " Delegates the call to either `Adder` or `Subber`." + ], + "mutates": true, + "name": [ + "change" + ], + "payable": false, + "returnType": null, + "selector": "0x0af938f2" + }, + { + "args": [], + "docs": [ + " Switches the delegator." + ], + "mutates": true, + "name": [ + "switch" + ], + "payable": false, + "returnType": null, + "selector": "0x5d37c38d" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0000000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [] + } + } + } + }, + "name": "which" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "account_id" + } + ] + } + }, + "name": "accumulator" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "account_id" + } + ] + } + }, + "name": "adder" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "account_id" + } + ] + } + }, + "name": "subber" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + }, + { + "def": { + "array": { + "len": 32, + "type": 3 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "primitive": "i32" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 2 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "Hash" + ] + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/delegator.wasm b/packages/api-contract/src/test/contracts/ink/v0/delegator.wasm new file mode 100644 index 0000000..5a189ee Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/delegator.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/dns.json b/packages/api-contract/src/test/contracts/ink/v0/dns.json new file mode 100644 index 0000000..c0da065 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/dns.json @@ -0,0 +1,713 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xcf3eee6ac5d38f6f503293735a72b011960e09ec1dd09185ab3c3d28e7770009", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "dns", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [ + " Creates a new domain name service contract." + ], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + } + ], + "docs": [ + " Emitted whenever a new name is being registered." + ], + "name": "Register" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + }, + { + "docs": [], + "indexed": true, + "name": "old_address", + "type": { + "displayName": [ + "Option" + ], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "new_address", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + } + ], + "docs": [ + " Emitted whenever an address changes." + ], + "name": "SetAddress" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + }, + { + "docs": [], + "indexed": true, + "name": "old_owner", + "type": { + "displayName": [ + "Option" + ], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "new_owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + } + ], + "docs": [ + " Emitted whenver a name is being transferred." + ], + "name": "Transfer" + } + ], + "messages": [ + { + "args": [ + { + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + } + ], + "docs": [ + " Register specific name with caller as owner." + ], + "mutates": true, + "name": [ + "register" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 10 + }, + "selector": "0x7fb0aded" + }, + { + "args": [ + { + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + }, + { + "name": "new_address", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + } + ], + "docs": [ + " Set address for specific name." + ], + "mutates": true, + "name": [ + "set_address" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 10 + }, + "selector": "0x220ac6e3" + }, + { + "args": [ + { + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + }, + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 9 + } + } + ], + "docs": [ + " Transfer owner to another address." + ], + "mutates": true, + "name": [ + "transfer" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 10 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "name", + "type": { + "displayName": [ + "Hash" + ], + "type": 4 + } + } + ], + "docs": [ + " Get address for specific name." + ], + "mutates": false, + "name": [ + "get_address" + ], + "payable": false, + "returnType": { + "displayName": [ + "AccountId" + ], + "type": 9 + }, + "selector": "0xb9ee7664" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0100000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "name_to_address" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0300000002000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "name_to_owner" + }, + { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "name": "default_address" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2 + }, + { + "name": "len", + "type": 2 + }, + { + "name": "len_entries", + "type": 2 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "Header" + ] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 4 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 4 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 5 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "Hash" + ] + }, + { + "def": { + "array": { + "len": 32, + "type": 6 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2 + }, + { + "name": "prev", + "type": 2 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "VacantEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 9 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [ + 9 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 5 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 11 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 12 + } + ], + "name": "Err" + } + ] + } + }, + "params": [ + 11, + 12 + ], + "path": [ + "Result" + ] + }, + { + "def": { + "tuple": [] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "discriminant": 0, + "name": "NameAlreadyExists" + }, + { + "discriminant": 1, + "name": "CallerIsNotOwner" + } + ] + } + }, + "path": [ + "dns", + "dns", + "Error" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 9 + } + ], + "name": "Some" + } + ] + } + }, + "params": [ + 9 + ], + "path": [ + "Option" + ] + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/dns.wasm b/packages/api-contract/src/test/contracts/ink/v0/dns.wasm new file mode 100644 index 0000000..5a173a8 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/dns.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/erc20.json b/packages/api-contract/src/test/contracts/ink/v0/erc20.json new file mode 100644 index 0000000..5f9fe7c --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/erc20.json @@ -0,0 +1,704 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xe9c60864c76c770865b66c79aa304bc22d2d08cc799d36310df4256db107b8fc", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "erc20", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "initial_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 13 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "name": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "total_supply" + ], + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 1 + }, + "selector": "0xdcb736b5" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": [ + "balance_of" + ], + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 1 + }, + "selector": "0x56e929b2" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": [ + "allowance" + ], + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 1 + }, + "selector": "0xf3cfff66" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "transfer" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 12 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "approve" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 12 + }, + "selector": "0x03d0e114" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "transfer_from" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 12 + }, + "selector": "0xfcfb2ccd" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "total_supply" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 4 + } + }, + "len": 4294967295, + "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "balances" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 10 + } + }, + "len": 4294967295, + "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "allowances" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "u128" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 3 + }, + { + "name": "len", + "type": 3 + }, + { + "name": "len_entries", + "type": 3 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "Header" + ] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 5 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 6 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + }, + { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 3 + }, + { + "name": "prev", + "type": 3 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "VacantEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 1 + }, + { + "name": "key_index", + "type": 3 + } + ] + } + }, + "params": [ + 1 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 11 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 11 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "tuple": [ + 5, + 5 + ] + } + }, + { + "def": { + "primitive": "bool" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Some" + } + ] + } + }, + "params": [ + 5 + ], + "path": [ + "Option" + ] + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/erc20.wasm b/packages/api-contract/src/test/contracts/ink/v0/erc20.wasm new file mode 100644 index 0000000..4ce6dd2 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/erc20.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/erc721.json b/packages/api-contract/src/test/contracts/ink/v0/erc721.json new file mode 100644 index 0000000..ae9a4c9 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/erc721.json @@ -0,0 +1,1197 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xf7dac8dd8a2d9c7419c766facfa29d91823625305be8a1e7a9e6d750b894782b", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "erc721", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [ + " Creates a new ERC721 token contract." + ], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 15 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 15 + } + }, + { + "docs": [], + "indexed": true, + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Event emitted when a token transfer occurs." + ], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "docs": [], + "indexed": true, + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Event emited when a token approve occurs." + ], + "name": "Approval" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "docs": [], + "indexed": true, + "name": "operator", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "docs": [], + "indexed": false, + "name": "approved", + "type": { + "displayName": [ + "bool" + ], + "type": 14 + } + } + ], + "docs": [ + " Event emitted when an operator is enabled or disabled for an owner.", + " The operator can manage all NFTs of the owner." + ], + "name": "ApprovalForAll" + } + ], + "messages": [ + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + } + ], + "docs": [ + " Returns the balance of the owner.", + "", + " This represents the amount of unique tokens the owner has." + ], + "mutates": false, + "name": [ + "balance_of" + ], + "payable": false, + "returnType": { + "displayName": [ + "u32" + ], + "type": 2 + }, + "selector": "0x56e929b2" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Returns the owner of the token." + ], + "mutates": false, + "name": [ + "owner_of" + ], + "payable": false, + "returnType": { + "displayName": [ + "Option" + ], + "type": 15 + }, + "selector": "0xf7860ada" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Returns the approved account ID for this token if any." + ], + "mutates": false, + "name": [ + "get_approved" + ], + "payable": false, + "returnType": { + "displayName": [ + "Option" + ], + "type": 15 + }, + "selector": "0xb09dc487" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "name": "operator", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + } + ], + "docs": [ + " Returns `true` if the operator is approved by the owner." + ], + "mutates": false, + "name": [ + "is_approved_for_all" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 14 + }, + "selector": "0xc666bf03" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "name": "approved", + "type": { + "displayName": [ + "bool" + ], + "type": 14 + } + } + ], + "docs": [ + " Approves or disapproves the operator for all tokens of the caller." + ], + "mutates": true, + "name": [ + "set_approval_for_all" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 16 + }, + "selector": "0x51176f12" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Approves the account to transfer the specified token on behalf of the caller." + ], + "mutates": true, + "name": [ + "approve" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 16 + }, + "selector": "0x03d0e114" + }, + { + "args": [ + { + "name": "destination", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Transfers the token from the caller to the given destination." + ], + "mutates": true, + "name": [ + "transfer" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 16 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 6 + } + }, + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Transfer approved or owned token." + ], + "mutates": true, + "name": [ + "transfer_from" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 16 + }, + "selector": "0xfcfb2ccd" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Creates a new token." + ], + "mutates": true, + "name": [ + "mint" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 16 + }, + "selector": "0xf8885eeb" + }, + { + "args": [ + { + "name": "id", + "type": { + "displayName": [ + "TokenId" + ], + "type": 2 + } + } + ], + "docs": [ + " Deletes an existing token. Only the owner can burn the token." + ], + "mutates": true, + "name": [ + "burn" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 16 + }, + "selector": "0x120bc564" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0100000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 5 + } + }, + "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "token_owner" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0300000002000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 5 + } + }, + "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "token_approvals" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0500000003000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "len": 4294967295, + "offset": "0x0600000002000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0600000003000000000000000000000000000000000000000000000000000000", + "ty": 10 + } + }, + "offset": "0x0500000003000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "owned_tokens_count" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0600000003000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0700000003000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0700000004000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "len": 4294967295, + "offset": "0x0800000003000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0800000004000000000000000000000000000000000000000000000000000000", + "ty": 13 + } + }, + "offset": "0x0700000004000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "operator_approvals" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2 + }, + { + "name": "len", + "type": 2 + }, + { + "name": "len_entries", + "type": 2 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "Header" + ] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 4 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 2 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2 + }, + { + "name": "prev", + "type": 2 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "VacantEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 6 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [ + 6 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 7 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + }, + { + "def": { + "array": { + "len": 32, + "type": 8 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 4 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 6 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 6 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 2 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [ + 2 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 4 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 12 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 12 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "tuple": [ + 6, + 6 + ] + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 14 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [ + 14 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "primitive": "bool" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 6 + } + ], + "name": "Some" + } + ] + } + }, + "params": [ + 6 + ], + "path": [ + "Option" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 17 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 18 + } + ], + "name": "Err" + } + ] + } + }, + "params": [ + 17, + 18 + ], + "path": [ + "Result" + ] + }, + { + "def": { + "tuple": [] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "discriminant": 0, + "name": "NotOwner" + }, + { + "discriminant": 1, + "name": "NotApproved" + }, + { + "discriminant": 2, + "name": "TokenExists" + }, + { + "discriminant": 3, + "name": "TokenNotFound" + }, + { + "discriminant": 4, + "name": "CannotInsert" + }, + { + "discriminant": 5, + "name": "CannotRemove" + }, + { + "discriminant": 6, + "name": "CannotFetchValue" + }, + { + "discriminant": 7, + "name": "NotAllowed" + } + ] + } + }, + "path": [ + "erc721", + "erc721", + "Error" + ] + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/erc721.wasm b/packages/api-contract/src/test/contracts/ink/v0/erc721.wasm new file mode 100644 index 0000000..8bbdf89 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/erc721.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/flipper.contract.json b/packages/api-contract/src/test/contracts/ink/v0/flipper.contract.json new file mode 100644 index 0000000..5b0dc50 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/flipper.contract.json @@ -0,0 +1,107 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x98086d5ccadd437459b812682380250f51a3034272cd1108e499acc0cafe9f42", + "language": "ink! 3.0.0-rc2", + "compiler": "rustc 1.49.0-nightly", + "wasm": "0x0061736d01000000012c0860027f7f0060037f7f7f0060017f017f60017f006000017f60037f7f7f017f60047f7f7f7f0060017f017e02880106057365616c30107365616c5f6765745f73746f726167650005057365616c30107365616c5f7365745f73746f726167650001057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f72790201021003121102020002000100070303060402040503010608017f01418080040b071102066465706c6f7900100463616c6c00120a8e1111c90101017f230041406a22012400200141206a200041186a290300370300200141186a200041106a290300370300200141106a200041086a2903003703002001420037032820012000290300370308200141086a1006200141808001360234200141a4800436023020014180800136023841a48004200141386a10002100200141306a20012802381007024002400240024020000e0401000002000b000b20012001290330370338200141386a100841ff017122004102470d01000b000b200141406b240020004100470b6001037e200029032021012000420137032020002001200029030022027c22013703002000200029030822032001200254ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b4901037f230041106b22022400200028020421032000410036020420002802002104200041a48004360200200241086a200120042003100f20002002290308370200200241106a24000b4201027f230041106b22012400200141086a2000100b20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b8f0101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420037032820022001290300370308200241086a1006200241386a41808001360200200241a48004360234200241003602302002200241306a2000100a200228020020022802041001200241406b24000b9d0101037f230041106b22032400200141086a220428020021052004410036020020012802042104200141a48004360204200320023a000f2003410120042005100f024020032802044101460440200328020020032d000f3a000020014100360208200141a480043602042005450d0120012005417f6a3602082001200441016a3602042000410136020420002004360200200341106a24000f0b000b000b4801027f230041106b22022400200241003a000f024020012002410f6a4101101345044020022d000f21010c010b410121030b200020013a0001200020033a0000200241106a24000b890101027f230041106b22012400200142003c000c200142003e0208027f0340200241044604402001280208210241000c020b20012000100b20012d0000410171450440200141086a20026a20012d00013a00002001200241016a22023a000c0c010b0b200241ff01710440200141003a000c0b4100210241010b200141106a2400ad2002ad420886840b2201017f230041106b220124002001200036020c2001410c6a2802002d0000100e000b4601017f230041206b22012400200141186a41808001360200200141a4800436021420014100360210200141086a200141106a2000100a41002001280208200128020c1004000b2300410020014d0440200320014f044020002001360204200020023602000f0b000b000b15004100101141ff0171410274418080046a2802000bd80502057f017e230041306b220124000240027f024002402000044020014180800136020c200141a48004360208200141086a10142001200129030837031041012103200141106a100c2206a722054101710440410121020c030b200642ffffffffff1f832206422088a721002006421888a721042006421088a72102200541087641ff01712205411e470440200541c00147200041f3014772200241ff017141960147720d0241002102200441ff017141a501460d030c020b200041d60047200241ff017141dc0047720d014100210241002103200441ff017141a401470d010c020b20014180800136020c200141a48004360208200141086a101420012001290308370310410321020240200141106a100c2206a722044101710d00200642ffffffffff1f832206422088a721002006421888a721032006421088a7210202400240200441087641ff0171220441ea00470440200441d101472000412b4772200241ff017141830147720d02200341ff017141d100460d010c020b200041e20147200241ff0171413747720d0141022102200341ff01714112470d010c020b41032102200141106a100841ff017122004102460d01200041004721020c010b410321020b4106200241034622030d021a4106200220031b22024102460440200141286a4200370300200141206a4200370300200141186a4200370300200142003703104100200141106a100941080c030b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102002410171200141106a100941080c020b41012102410121030b410620020d001a2003450d01200141286a4200370300200141206a4200370300200141186a420037030020014200370310200141106a1005410173200141106a100941080b200141306a24000f0b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102001200141106a10053a0008200141086a100d000ba90102027f027e230041206b22002400200041808001360204200041a4800436020020004180800136021041a48004200041106a100220002000280210100720002000290300370308200041186a2201420037030020004200370310027f4101200041086a200041106a411010130d001a200129030021022000290310210341000b200220038450457245044041011011200041206a240041ff0171410274418080046a2802000f0b000b45000240200028020420024f047f2001200028020020021015200028020422012002490d012000200120026b3602042000200028020020026a36020041000541010b0f0b000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10032000200128020c1007200141106a24000b2c01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b1a0b0b250100418080040b1d0100000002000000030000000400000005000000060000000700000008" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc2", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 1 + } + } + ], + "docs": [ + " Creates a new flipper smart contract initialized with the given value." + ], + "name": [ + "new" + ], + "selector": "0xd183512b" + }, + { + "args": [], + "docs": [ + " Creates a new flipper smart contract initialized to `false`." + ], + "name": [ + "default" + ], + "selector": "0x6a3712e2" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [ + " Flips the current value of the Flipper's bool." + ], + "mutates": true, + "name": [ + "flip" + ], + "payable": false, + "returnType": null, + "selector": "0xc096a5f3" + }, + { + "args": [], + "docs": [ + " Returns the current value of the Flipper's bool." + ], + "mutates": false, + "name": [ + "get" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 1 + }, + "selector": "0x1e5ca456" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "bool" + } + } + ] +} diff --git a/packages/api-contract/src/test/contracts/ink/v0/flipper.json b/packages/api-contract/src/test/contracts/ink/v0/flipper.json new file mode 100644 index 0000000..0aa57e8 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/flipper.json @@ -0,0 +1,106 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xb6b5fa9791b27da76f1046de45d57bb835a8dfc44f21b223d8d6bb88e5eb5141", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 1 + } + } + ], + "docs": [ + " Creates a new flipper smart contract initialized with the given value." + ], + "name": [ + "new" + ], + "selector": "0xd183512b" + }, + { + "args": [], + "docs": [ + " Creates a new flipper smart contract initialized to `false`." + ], + "name": [ + "default" + ], + "selector": "0x6a3712e2" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [ + " Flips the current value of the Flipper's bool." + ], + "mutates": true, + "name": [ + "flip" + ], + "payable": false, + "returnType": null, + "selector": "0xc096a5f3" + }, + { + "args": [], + "docs": [ + " Returns the current value of the Flipper's bool." + ], + "mutates": false, + "name": [ + "get" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 1 + }, + "selector": "0x1e5ca456" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "bool" + } + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/flipper.wasm b/packages/api-contract/src/test/contracts/ink/v0/flipper.wasm new file mode 100644 index 0000000..5b43da1 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/flipper.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/incrementer.json b/packages/api-contract/src/test/contracts/ink/v0/incrementer.json new file mode 100644 index 0000000..3177a16 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/incrementer.json @@ -0,0 +1,108 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x8b30429ee0f4dc19cec91b09d186c805eaac6615492c1edf3bc1efaff0b7fecf", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "incrementer", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": [ + "i32" + ], + "type": 1 + } + } + ], + "docs": [], + "name": [ + "new" + ], + "selector": "0xd183512b" + }, + { + "args": [], + "docs": [], + "name": [ + "default" + ], + "selector": "0x6a3712e2" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [ + { + "name": "by", + "type": { + "displayName": [ + "i32" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "inc" + ], + "payable": false, + "returnType": null, + "selector": "0x2fb8d143" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "get" + ], + "payable": false, + "returnType": { + "displayName": [ + "i32" + ], + "type": 1 + }, + "selector": "0x1e5ca456" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "i32" + } + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/incrementer.wasm b/packages/api-contract/src/test/contracts/ink/v0/incrementer.wasm new file mode 100644 index 0000000..b059a69 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/incrementer.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/index.ts b/packages/api-contract/src/test/contracts/ink/v0/index.ts new file mode 100644 index 0000000..c0653c1 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as delegator } from './delegator.json' assert { type: 'json' }; +export { default as dns } from './dns.json' assert { type: 'json' }; +export { default as erc20 } from './erc20.json' assert { type: 'json' }; +export { default as erc721 } from './erc721.json' assert { type: 'json' }; +export { default as flipperBundle } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipper } from './flipper.json' assert { type: 'json' }; +export { default as incrementer } from './incrementer.json' assert { type: 'json' }; +export { default as multisigPlain } from './multisig_plain.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v0/multisig_plain.json b/packages/api-contract/src/test/contracts/ink/v0/multisig_plain.json new file mode 100644 index 0000000..81a30b3 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/multisig_plain.json @@ -0,0 +1,1466 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xfc0f0e88e25c5857c49f089ab8fb6a0ecdc37a69e10b9317ae71924c916cda12", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "multisig_plain", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "requirement", + "type": { + "displayName": [ + "u32" + ], + "type": 2 + } + }, + { + "name": "owners", + "type": { + "displayName": [ + "Vec" + ], + "type": 20 + } + } + ], + "docs": [ + " The only constructor of the contract.", + "", + " A list of owners must be supplied and a number of how many of them must", + " confirm a transaction. Duplicate owners are silently dropped.", + "", + " # Panics", + "", + " If `requirement` violates our invariant." + ], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [ + " The transaction that was confirmed." + ], + "indexed": true, + "name": "transaction", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + }, + { + "docs": [ + " The owner that sent the confirmation." + ], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [ + " The confirmation status after this confirmation was applied." + ], + "indexed": true, + "name": "status", + "type": { + "displayName": [ + "ConfirmationStatus" + ], + "type": 22 + } + } + ], + "docs": [ + " Emitted when an owner confirms a transaction." + ], + "name": "Confirmation" + }, + { + "args": [ + { + "docs": [ + " The transaction that was revoked." + ], + "indexed": true, + "name": "transaction", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + }, + { + "docs": [ + " The owner that sent the revokation." + ], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [ + " Emitted when an owner revoked a confirmation." + ], + "name": "Revokation" + }, + { + "args": [ + { + "docs": [ + " The transaction that was submitted." + ], + "indexed": true, + "name": "transaction", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Emitted when an owner submits a transaction." + ], + "name": "Submission" + }, + { + "args": [ + { + "docs": [ + " The transaction that was canceled." + ], + "indexed": true, + "name": "transaction", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Emitted when a transaction was canceled." + ], + "name": "Cancelation" + }, + { + "args": [ + { + "docs": [ + " The transaction that was executed." + ], + "indexed": true, + "name": "transaction", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + }, + { + "docs": [ + " Indicates whether the transaction executed successfully. If so the `Ok` value holds", + " the output in bytes. The Option is `None` when the transaction was executed through", + " `invoke_transaction` rather than `evaluate_transaction`." + ], + "indexed": true, + "name": "result", + "type": { + "displayName": [ + "Result" + ], + "type": 25 + } + } + ], + "docs": [ + " Emitted when a transaction was executed." + ], + "name": "Execution" + }, + { + "args": [ + { + "docs": [ + " The owner that was added." + ], + "indexed": true, + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [ + " Emitted when an owner is added to the wallet." + ], + "name": "OwnerAddition" + }, + { + "args": [ + { + "docs": [ + " The owner that was removed." + ], + "indexed": true, + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [ + " Emitted when an owner is removed from the wallet." + ], + "name": "OwnerRemoval" + }, + { + "args": [ + { + "docs": [ + " The new requirement value." + ], + "indexed": false, + "name": "new_requirement", + "type": { + "displayName": [ + "u32" + ], + "type": 2 + } + } + ], + "docs": [ + " Emitted when the requirement changed." + ], + "name": "RequirementChange" + } + ], + "messages": [ + { + "args": [ + { + "name": "new_owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [ + " Add a new owner to the contract.", + "", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If the owner already exists.", + "", + " # Examples", + "", + " Since this message must be send by the wallet itself it has to be build as a", + " `Transaction` and dispatched through `submit_transaction` + `invoke_transaction`:", + " ```no_run", + " use ink_env::{DefaultEnvironment as Env, AccountId, call::{CallParams, Selector}, test::CallData};", + " use multisig_plain::{Transaction, ConfirmationStatus};", + "", + " // address of an existing MultiSigPlain contract", + " let wallet_id: AccountId = [7u8; 32].into();", + "", + " // first create the transaction that adds `alice` through `add_owner`", + " let alice: AccountId = [1u8; 32].into();", + " let mut call = CallData::new(Selector::new([166, 229, 27, 154])); // add_owner", + " call.push_arg(&alice);", + " let transaction = Transaction {", + " callee: wallet_id,", + " selector: call.selector().to_bytes(),", + " input: call.params().to_owned(),", + " transferred_value: 0,", + " gas_limit: 0", + " };", + "", + " // submit the transaction for confirmation", + " let mut submit = CallParams::::eval(", + " wallet_id,", + " Selector::new([86, 244, 13, 223]) // submit_transaction", + " );", + " let (id, _): (u32, ConfirmationStatus) = submit.push_arg(&transaction)", + " .fire()", + " .expect(\"submit_transaction won't panic.\");", + "", + " // wait until all required owners have confirmed and then execute the transaction", + " let mut invoke = CallParams::::invoke(", + " wallet_id,", + " Selector::new([185, 50, 225, 236]) // invoke_transaction", + " );", + " invoke.push_arg(&id).fire();", + " ```" + ], + "mutates": true, + "name": [ + "add_owner" + ], + "payable": false, + "returnType": null, + "selector": "0xf3fcef36" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [ + " Remove an owner from the contract.", + "", + " Only callable by the wallet itself. If by doing this the amount of owners", + " would be smaller than the requirement it is adjusted to be exactly the", + " number of owners.", + "", + " # Panics", + "", + " If `owner` is no owner of the wallet." + ], + "mutates": true, + "name": [ + "remove_owner" + ], + "payable": false, + "returnType": null, + "selector": "0xe397f829" + }, + { + "args": [ + { + "name": "old_owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "new_owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [ + " Replace an owner from the contract with a new one.", + "", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If `old_owner` is no owner or if `new_owner` already is one." + ], + "mutates": true, + "name": [ + "replace_owner" + ], + "payable": false, + "returnType": null, + "selector": "0xab4bc64a" + }, + { + "args": [ + { + "name": "new_requirement", + "type": { + "displayName": [ + "u32" + ], + "type": 2 + } + } + ], + "docs": [ + " Change the requirement to a new value.", + "", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If the `new_requirement` violates our invariant." + ], + "mutates": true, + "name": [ + "change_requirement" + ], + "payable": false, + "returnType": null, + "selector": "0x7347595d" + }, + { + "args": [ + { + "name": "transaction", + "type": { + "displayName": [ + "Transaction" + ], + "type": 14 + } + } + ], + "docs": [ + " Add a new transaction candiate to the contract.", + "", + " This also confirms the transaction for the caller. This can be called by any owner." + ], + "mutates": true, + "name": [ + "submit_transaction" + ], + "payable": false, + "returnType": { + "displayName": [], + "type": 21 + }, + "selector": "0x349db9e8" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Remove a transaction from the contract.", + " Only callable by the wallet itself.", + "", + " # Panics", + "", + " If `trans_id` is no valid transaction id." + ], + "mutates": true, + "name": [ + "cancel_transaction" + ], + "payable": false, + "returnType": null, + "selector": "0xd31b7656" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Confirm a transaction for the sender that was submitted by any owner.", + "", + " This can be called by any owner.", + "", + " # Panics", + "", + " If `trans_id` is no valid transaction id." + ], + "mutates": true, + "name": [ + "confirm_transaction" + ], + "payable": false, + "returnType": { + "displayName": [ + "ConfirmationStatus" + ], + "type": 22 + }, + "selector": "0xea923d30" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Revoke the senders confirmation.", + "", + " This can be called by any owner.", + "", + " # Panics", + "", + " If `trans_id` is no valid transaction id." + ], + "mutates": true, + "name": [ + "revoke_confirmation" + ], + "payable": false, + "returnType": null, + "selector": "0x13ee3e97" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Invoke a confirmed execution without getting its output.", + "", + " Its return value indicates whether the called transaction was successful.", + " This can be called by anyone." + ], + "mutates": true, + "name": [ + "invoke_transaction" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 23 + }, + "selector": "0x6131abbb" + }, + { + "args": [ + { + "name": "trans_id", + "type": { + "displayName": [ + "TransactionId" + ], + "type": 2 + } + } + ], + "docs": [ + " Evaluate a confirmed execution and return its output as bytes.", + "", + " Its return value indicates whether the called transaction was successful and contains", + " its output when sucesful.", + " This can be called by anyone." + ], + "mutates": true, + "name": [ + "eval_transaction" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 24 + }, + "selector": "0xe667c7ac" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0100000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0200000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0100000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "confirmations" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0300000002000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "len": 4294967295, + "offset": "0x0400000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "offset": "0x0300000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "confirmation_count" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0500000003000000000000000000000000000000000000000000000000000000", + "ty": 13 + } + }, + "len": 4294967295, + "offset": "0x0600000002000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "transactions" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000003000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0500000004000000000000000000000000000000000000000000000000000000", + "ty": 5 + } + }, + "len": 4294967295, + "offset": "0x0600000003000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "owners" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0500000004000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0600000004000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0600000005000000000000000000000000000000000000000000000000000000", + "ty": 19 + } + }, + "len": 4294967295, + "offset": "0x0700000004000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0700000005000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0600000005000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "is_owner" + }, + { + "layout": { + "cell": { + "key": "0x0700000005000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "requirement" + } + ] + } + }, + "types": [ + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2 + }, + { + "name": "len", + "type": 2 + }, + { + "name": "len_entries", + "type": 2 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "Header" + ] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 4 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 4 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "tuple": [ + 2, + 5 + ] + } + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 6 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + }, + { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2 + }, + { + "name": "prev", + "type": 2 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "VacantEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 10 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [ + 10 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "tuple": [] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 2 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 2 + }, + { + "name": "key_index", + "type": 2 + } + ] + } + }, + "params": [ + 2 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 14 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 14 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "callee", + "type": 5 + }, + { + "name": "selector", + "type": 15 + }, + { + "name": "input", + "type": 16 + }, + { + "name": "transferred_value", + "type": 17 + }, + { + "name": "gas_limit", + "type": 18 + } + ] + } + }, + "path": [ + "multisig_plain", + "multisig_plain", + "Transaction" + ] + }, + { + "def": { + "array": { + "len": 4, + "type": 7 + } + } + }, + { + "def": { + "sequence": { + "type": 7 + } + } + }, + { + "def": { + "primitive": "u128" + } + }, + { + "def": { + "primitive": "u64" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 5 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "sequence": { + "type": 5 + } + } + }, + { + "def": { + "tuple": [ + 2, + 22 + ] + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "Confirmed" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "ConfirmationsNeeded" + } + ] + } + }, + "path": [ + "multisig_plain", + "multisig_plain", + "ConfirmationStatus" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 10 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "name": "Err" + } + ] + } + }, + "params": [ + 10, + 10 + ], + "path": [ + "Result" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 16 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "name": "Err" + } + ] + } + }, + "params": [ + 16, + 10 + ], + "path": [ + "Result" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 26 + } + ], + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "name": "Err" + } + ] + } + }, + "params": [ + 26, + 10 + ], + "path": [ + "Result" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 16 + } + ], + "name": "Some" + } + ] + } + }, + "params": [ + 16 + ], + "path": [ + "Option" + ] + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/multisig_plain.wasm b/packages/api-contract/src/test/contracts/ink/v0/multisig_plain.wasm new file mode 100644 index 0000000..74341e8 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/multisig_plain.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/subber.wasm b/packages/api-contract/src/test/contracts/ink/v0/subber.wasm new file mode 100644 index 0000000..76d2a55 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/subber.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v0/trait-flipper.json b/packages/api-contract/src/test/contracts/ink/v0/trait-flipper.json new file mode 100644 index 0000000..a1b5cd9 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v0/trait-flipper.json @@ -0,0 +1,103 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x568432b99f4ebd39ec03c2caaf69992b248999cc857326174b220b5587c3515f", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.48.0-nightly" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc1", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [ + " Creates a new flipper smart contract initialized to `false`." + ], + "name": [ + "default" + ], + "selector": "0x6a3712e2" + }, + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 1 + } + } + ], + "docs": [], + "name": [ + "Flip", + "new" + ], + "selector": "0x818482e7" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [], + "mutates": true, + "name": [ + "Flip", + "flip" + ], + "payable": false, + "returnType": null, + "selector": "0xad931d5f" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "Flip", + "get" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 1 + }, + "selector": "0x6b3549bc" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "bool" + } + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v0/trait-flipper.wasm b/packages/api-contract/src/test/contracts/ink/v0/trait-flipper.wasm new file mode 100644 index 0000000..53720c4 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v0/trait-flipper.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v1/flipper.contract.json b/packages/api-contract/src/test/contracts/ink/v1/flipper.contract.json new file mode 100644 index 0000000..c0bb3f4 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v1/flipper.contract.json @@ -0,0 +1,111 @@ +{ + "source": { + "hash": "0x7c5ff777929185b2350605e8f0163bfa25781097ad9ee2704c67021962720135", + "language": "ink! 3.0.0-rc5", + "compiler": "rustc 1.57.0-nightly", + "wasm": "0x0061736d01000000012b0860027f7f0060037f7f7f0060017f017f60000060037f7f7f017f60017f0060047f7f7f7f0060017f017e02880106057365616c30107365616c5f6765745f73746f726167650004057365616c30107365616c5f7365745f73746f726167650001057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f727902010210030e0d020002000100070603020304050608017f01418080040b071102066465706c6f79000d0463616c6c000f0ac60f0dc60101017f230041406a22012400200141206a200041186a290300370300200141186a200041106a290300370300200141106a200041086a2903003703002001420137032820012000290300370308200141808001360234200141808004360230200141808001360238200141086a41808004200141386a10002100200141306a2001280238100602400240024020000e0402000001000b000b000b20012001290330370338200141386a100741ff017122004102470440200141406b240020004100470f0b000b3101017f230041106b22022400200241086a200120002802002000280204100c20002002290308370200200241106a24000b4201027f230041106b22012400200141086a2000100a20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b8d0101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420137032820022001290300370308200241386a41808001360200200241808004360234200241003602302002200241306a20001009200241086a200228020020022802041001200241406b24000b9d0101037f230041106b22032400200141086a220428020021052004410036020020012802042104200141808004360204200320023a000f2003410120042005100c024020032802044101460440200328020020032d000f3a0000200141003602082001418080043602042005450d012001200541016b3602082001200441016a3602042000410136020420002004360200200341106a24000f0b000b000b3f01027f230041106b22022400200241003a000f200020012002410f6a410110102201047f41000520022d000f0b3a0001200020013a0000200241106a24000b900102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d02000b20012000100a20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b1a00200120034d044020002001360204200020023602000f0b000b11004100100e41ff01714108470440000b0ba80602057f017e230041306b22012400027f02400240200045044020014180800136020c200141808004360208200141086a10112001200129030837031041032100200141106a100b2206a722034101710d02200642ffffffffff1f832206422088a721022006421888a721002006421088a721040240200341087641ff01712203419b01470440200341ed01460d010c030b200441ff017141ae0147200041ff0171419d014772200241de0047720d024103200141106a100741ff0171220020004102461b21000c030b200441ff017141cb0047200041ff0171419d0147720d01410221002002411b470d010c020b20014180800136020c200141808004360208200141086a101120012001290308370310410121020240200141106a100b2206a722054101710440410121000c010b200642ffffffffff1f832206422088a721042006421888a721002006421088a721030240200541087641ff01712205412f470440200541e30047200341ff0171413a4772200041ff017141a50147720d0141002100200441d100470d010c020b200341ff017141860147200041ff017141db0047720d004100210041002102200441d901460d010b41012100410121020b410620000d021a20020440200141286a4200370300200141206a4200370300200141186a420037030020014200370310200141106a1005410173200141106a100841080c030b200141286a4200370300200141206a4200370300200141186a4200370300200142003703102001200141106a10053a0008230041106b220024002000200141086a36020c2000410c6a2802002d00002101230041206b22002400200041186a4180800136020020004180800436021420004100360210200041086a200041106a2001100941002000280208200028020c1004000b410321000b4106200041034622020d001a4106200020021b22004102470440200141286a4200370300200141206a4200370300200141186a4200370300200142003703102000410171200141106a100841080c010b200141286a4200370300200141206a4200370300200141186a4200370300200142003703104100200141106a100841080b200141306a24000ba30102037f017e230041206b2200240020004180800136020420004180800436020020004180800136021041808004200041106a100220002000280210100620002000290300370308200041186a22014200370300200042003703100240200041086a200041106a411010102202047e4200052000290310210320012903000b20038450452002724504404101100e41ff01714108470d01200041206a24000f0b000b000b5701057f200028020422042002492205450440200028020022062107034020022003470440200120036a200320076a2d00003a0000200341016a21030c010b0b2000200420026b3602042000200220066a3602000b20050b3301017f230041106b220124002001200028020436020c20002802002001410c6a10032000200128020c1006200141106a24000b" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc5", + "authors": [ + "Parity Technologies " + ] + }, + "V1": { + "spec": { + "constructors": [ + { + "args": [ + { + "name": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 0 + } + } + ], + "docs": [ + "Creates a new flipper smart contract initialized with the given value." + ], + "name": [ + "new" + ], + "selector": "0x9bae9d5e" + }, + { + "args": [], + "docs": [ + "Creates a new flipper smart contract initialized to `false`." + ], + "name": [ + "default" + ], + "selector": "0xed4b9d1b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [ + " Flips the current value of the Flipper's boolean." + ], + "mutates": true, + "name": [ + "flip" + ], + "payable": false, + "returnType": null, + "selector": "0x633aa551" + }, + { + "args": [], + "docs": [ + " Returns the current value of the Flipper's boolean." + ], + "mutates": false, + "name": [ + "get" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 0 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/ink/v1/index.ts b/packages/api-contract/src/test/contracts/ink/v1/index.ts new file mode 100644 index 0000000..14ebbfa --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v1/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; +// A complex contract example with traits. +export { default as psp22 } from './psp22_minter_pauser.contract.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json b/packages/api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json new file mode 100644 index 0000000..111c199 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v1/psp22_minter_pauser.contract.json @@ -0,0 +1,1722 @@ +{ + "source": { + "hash": "0xf04668140e45f551ef324d9fea09e5adb7e8f70482ff1d216c6c4c5227a3d0ca", + "language": "ink! 3.0.0-rc6", + "compiler": "rustc 1.59.0-nightly", + "wasm": "0x0061736d01000000017e1360027f7f0060037f7f7f0060027f7f017f60047f7f7f7f0060037f7f7f017f60017f006000017f60017f017f60000060047f7f7e7e0060057f7f7f7f7f0060067f7f7f7f7e7e0060077f7f7f7f7e7e7f0060057f7f7f7e7e0060037f7f7e0060037e7e7f0060097f7f7e7f7f7f7f7f7f017f60027f7e017f60017f017e0281020b057365616c30127365616c5f6465706f7369745f6576656e740003057365616c30167365616c5f76616c75655f7472616e736665727265640000057365616c30097365616c5f63616c6c0010057365616c300b7365616c5f63616c6c65720000057365616c30147365616c5f686173685f626c616b65325f3235360001057365616c30107365616c5f7365745f73746f726167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30107365616c5f6765745f73746f726167650004057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e000103656e76066d656d6f727902010210038c018a01040402050501030300000f01080708000005120000000000000505000d000005030b0c05010004020202020701010107000001090902010201020102000601020002000406010300000002010201020201020102000001070007000700000001000e0100010000010102000400001107000306040601030306040601030306040601030302000a0401020608017f01418080040b071102066465706c6f7900160463616c6c00180ad1f1028a010f0041034101200020012002100b1b0b6801017f230041306b22032400200341246a200241186a2900003702002003411c6a200241106a290000370200200341146a200241086a290000370200200320013602082003200229000037020c200041f8046a200341086a100c280200200341306a24004101460b960301047f230041b0016b22022400200241c8006a200141241091011a200241106a200041286a200241c8006a1057027f027f024020022802104101470440024020002903004201520d0020024198016a2203200041206a29030037030020024190016a2204200041186a29030037030020024188016a2205200041106a2903003703002002200029030837038001200241d0006a20024180016a200110692003200241e8006a2903003703002004200241e0006a2903003703002005200241d8006a29030037030020022002290350370380012002418080013602a401200241d484043602a0010240024020024180016a200241a0016a10490e0400010102010b200220022903a0013703a801200241086a200241a8016a104a2002280208450d030b000b41000c020b200241186a2802002002411c6a2802004102746a4190036a0c020b200228020c210141010b2103200241c8006a200241106a41047241341091011a410c4104104b220041013a00082000200136020420002003360200200241c8006a200010580b280200200241b0016a24000bdc0502057f027e230041a0016b22012400200141086a200041e0001091011a200141106a21030240200129030822074201520440200141f0006a220241808001360200200141d4840436026c20014100360268200141e8006a100e20014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41988004100f200141e8006a41a48004411b2003101020002002280200360200200120012903683703900120014190016a41bf80044119200341216a10100c010b200141f0006a220241808001360200200141d4840436026c20014100360268200141e8006a100e20014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41f08004100f200141e8006a41fc8004411c2003101120002002280200360200200120012903683703900120014190016a41988104411e200141306a10110b20014188016a2000280200360200200120012903900137038001230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220637031020004100360210200041086a200041106a2006a7101520002903082106200141e8006a220241086a2004280200360200200220002903103702002002200637020c200041206a240020014198016a200141f0006a28020022003602002001200129036837039001200141f8006a28020021042001280274210520012802940121022001200036026c200120023602680240027f20075004402000450d02200241003a0000200141013602702003200141e8006a1012200341216a200141e8006a1012200141d8006a0c010b2000450d01200241013a0000200141013602702003200141e8006a1013200141306a200141e8006a1013200141d0006a0b2200290300200041086a290300200141e8006a10142001200129036837029401200120014190016a2001280270101520052004200128020020012802041000200141a0016a24000f0b000b9a0101047f230041206b22012400200028020421042000419c8404360204200041086a22022802002103200241003602002001410336020c0240200320002802002202490d00200141003602182001200320026b3602142001200220046a3602102001410c6a200141106a105e2002200220012802186a22024b0d00200020033602082000200436020420002002360200200141206a24000f0b000be80201077f230041e0006b22032400200141086a2802002205200128020022044f04402003410036021020012802042106200341003602482003200520046b3602442003200420066a36024020022802002002280204200341406b1038200341406b20022802084115103720032003290340370214200341086a200341106a2003280248101520032802082104200328020c2102200341386a22054200370300200341306a22064200370300200341286a4200370300200342003703200240200241214f0440200341d8006a22074200370300200341d0006a22084200370300200341c8006a220942003703002003420037034020042002200341406b10042005200729030037030020062008290300370300200341286a2009290300370300200320032903403703200c010b200341206a200420021091011a0b2001200341206a1051200041086a200141086a28020036020020002001290200370200200341e0006a24000f0b000bc30201057f230041e0006b22042400200041086a2802002206200028020022054f04402004410036021020002802042107200441003602482004200620056b3602442004200520076a36024020012002200441406b10382003200441406b101220042004290340370214200441086a200441106a2004280248101520042802082102200428020c2101200441386a22034200370300200441306a22054200370300200441286a4200370300200442003703200240200141214f0440200441d8006a22064200370300200441d0006a22074200370300200441c8006a220842003703002004420037034020022001200441406b10042003200629030037030020052007290300370300200441286a2008290300370300200420042903403703200c010b200441206a200220011091011a0b2000200441206a1051200441e0006a24000f0b000bc30201057f230041e0006b22042400200041086a2802002206200028020022054f04402004410036021020002802042107200441003602482004200620056b3602442004200520076a36024020012002200441406b10382003200441406b101320042004290340370214200441086a200441106a2004280248101520042802082102200428020c2101200441386a22034200370300200441306a22054200370300200441286a4200370300200442003703200240200141214f0440200441d8006a22064200370300200441d0006a22074200370300200441c8006a220842003703002004420037034020022001200441406b10042003200629030037030020052007290300370300200441286a2008290300370300200420042903403703200c010b200441206a200220011091011a0b2000200441206a1051200441e0006a24000f0b000b230020002d000041014704402001410010460f0b200141011046200041016a200110130b08002000200110530b2a01017f230041106b2203240020032001370308200320003703002002200341101037200341106a24000b5201027f200141086a2203280200210420034100360200200128020421032001419c8404360204200220044b0440000b2001200420026b3602082001200220036a36020420002002360204200020033602000b11004100101741ff01714108470440000b0bf44002117f057e230041e00f6b22012400024002400240024002400240024002400240024020004504402001418080013602bc02200141d484043602b802200141b8026a101b200120012903b8023703a00441012100200141a0046a101c4281feffffff1f834280b6baede90b520d04200141e8016a200141a0046a101a20012802e8010d04200141f8016a290300211320012903f0012112200141900a6a200141a0046a101d20012802900a4101460d04200141e0036a2001419c0a6a2200280200360200200120012902940a3703d803200141900a6a200141a0046a101d20012802900a4101460d01200141c8046a2000280200360200200120012902940a3703c004200141e0016a200141a0046a101e4101210020012d00e0014101710d0420012d00e1012104200141b8036a200141e0036a280200360200200141e0026a200141c8046a280200360200200120012903d8033703b003200120012903c0043703d802410021000c040b2001418080013602bc02200141d484043602b802200141b8026a101b200120012903b802370380034101210020014180036a101c2212a722024101710d02201242ffffffffff1f832212422088a721032012421888a721052012421088a721060240024002400240024002400240200241087641ff0171220241e5006b0e03010905000b0240024002400240024002400240200241fc016b0e03010f08000b20024116460d04200241db01460d022002413d470440200241cd00460d06200241d400460d04200241f2004704402002418101460d0b2002419601460d03200241b201460d0a20024134470d1041002102200641ff0171412047200541ff017141db0047720d10200341e501460d0d0c100b41012102200641ff017141f10047200541ff017141b70147720d0f2003418201460d0c0c0f0b200641ff0171412647200541ff0171411b47720d0e41022102200341d401460d0b0c0e0b200641ff0171413c47200541ff017141f5004772200341d40147720d0d200141900a6a20014180036a101f20012d00900a4101460d0d200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141d0006a20014180036a101a2001290350a70d0c200141e0006a290300211220012903582113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410321020c0a0b200641ff017141d60147200541ff017141b5014772200341fa0047720d0c200141900a6a20014180036a101f20012d00900a4101460d0c200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141e8006a20014180036a101a2001290368a70d0b200141f8006a290300211220012903702113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410421020c090b200641ff0171412047200541ff017141f9014772200341f50147720d0b200141900a6a20014180036a101f20012d00900a4101460d0b200141d8046a200141a90a6a290000370300200141d0046a200141a10a6a290000370300200141c8046a200141990a6a290000370300200120012900910a3703c00420014180016a20014180036a101a2001280280010d0a20014190016a29030021122001290388012113200141900a6a20014180036a102020012802900a2204450d0a200141e0036a200141c8046a290300370300200141e8036a200141d0046a290300370300200141f0036a200141d8046a290300370300200141b0046a2012370300200120012903c0043703d803200120133703a804200120012902940a3703a004410521020c080b200641ff017141b30147200541ff017141c7014772200341ee0047720d0a200141900a6a20014180036a101f20012d00900a4101460d0a200141d8046a200141a90a6a290000370300200141d0046a200141a10a6a290000370300200141c8046a200141990a6a290000370300200120012900910a3703c004200141900a6a20014180036a101f20012d00900a4101460d092001419a026a20012d00930a3a0000200141e0026a200141a00a6a290300370300200141e8026a200141a80a6a290300370300200120012f00910a3b0198022001200141980a6a2903003703d802200141b00a6a2d0000210720012802940a210420014198016a20014180036a101a2001280298010d09200141a8016a290300211220012903a0012113200141900a6a20014180036a102020012802900a2210450d09200141e0036a200141c8046a290300370300200141e8036a200141d0046a290300370300200141f0036a200141d8046a29030037030020014182026a2001419a026a2d00003a0000200141a8046a200141e0026a290300370300200141b0046a200141e8026a290300370300200120012903c0043703d803200120012f0198023b018002200120012903d8023703a00420012902940a2116410621020c070b200641ff0171412d47200541ff017141f80147720d0941072102200341c201460d060c090b200641ff017141c70047200541ff017141d90147722003412147720d08200141900a6a20014180036a101f20012d00900a4101460d08200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a29000037030041082102200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141900a6a20014180036a101f20012d00900a4101460d0720014182026a20012d00930a3a0000200141a8046a200141a00a6a290300370300200141b0046a200141a80a6a290300370300200141e0036a2007290300370300200141e8036a2004290300370300200141f0036a2000290300370300200120012f00910a3b0180022001200141980a6a2903003703a004200120012903c0043703d803200141b00a6a2d0000210720012802940a21040c050b200641ff017141e80047200541ff0171413847722003412f47720d07200141900a6a20014180036a101f20012d00900a4101460d07200141f0036a200141a90a6a290000370300200141e8036a200141a10a6a29000037030041092102200141e0036a200141990a6a290000370300200120012900910a3703d8030c040b200641ff017141cb0147200541ff017141d7004772200341d50147720d06200141900a6a20014180036a101f20012d00900a4101460d06200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141b0016a20014180036a101a20012903b001a70d05200141c0016a290300211220012903b8012113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410a21020c030b200641ff0171410f47200541ff0171411b4772200341bd0147720d05200141900a6a20014180036a101f20012d00900a4101460d05200141d8046a2200200141a90a6a290000370300200141d0046a2204200141a10a6a290000370300200141c8046a2207200141990a6a290000370300200120012900910a3703c004200141c8016a20014180036a101a20012903c801a70d04200141d8016a290300211220012903d0012113200141f0036a2000290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903c0043703d803200120133703a004200120123703a804410b21020c020b200641ff017141e00147200541ff017141c60147720d04410c210220034104460d010c040b200641ff017141e10047200541ff017141e60047720d03410d2102200341c900470d030b200141c8036a200141f0036a290300370300200141c0036a200141e8036a290300370300200141b8036a200141e0036a290300370300200141a2036a20014182026a2d00003a000020014188046a200141a8046a29030037030020014190046a200141b0046a290300370300200120012903d8033703b003200120012f0180023b01a003200120012903a0043703800441002100200221080c020b410121000c020b410121000b20000d01200141d0026a2200200141c8036a2205290300370300200141c8026a2202200141c0036a2206290300370300200141c0026a2203200141b8036a22092903003703004102210b200141b6026a200141a2036a2d00003a0000200141a0026a220c20014188046a220d290300370300200141a8026a220e20014190046a220f290300370300200120012903b0033703b802200120012f01a0033b01b40220012001290380043703980220014190026a2211200e29030037030020014188026a220a200c2903003703002001200129039802370380020240024002400240024002400240024002400240024002400240024002400240200841016b0e0d0102030405060708090a0b0c0d000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a1021200141d8036a200141cc0f6a1022200141d8036a1023000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a10212001200141d80f6a2d00003a00900a230041106b220024002000200141900a6a36020c2000410c6a2802002102230041206b22002400200041186a41808001360200200041d4840436021420004100360210200041086a200041106a200210602000280208200028020c105f000b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a1021200141d8036a200141c00f6a1022200141d8036a1023000b200a29030021122001290380022113200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021024020012d00dc0f450440200141c0046a1024200141900a6a4196e4ea6c200141c0046a100a220041ff01714103470440200141b0036a200010250c020b200141d8046a200141d0026a290300370300200141d0046a200141c8026a290300370300200141c8046a200141c0026a290300370300200120012903b8023703c004200141b0036a200141900a6a200141c0046a2013201210260c010b200141b0036a410010270b200141900a6a200141d8036a1028200141b0036a1029000b200a290300211320012903800220014198046a4200370300200f4200370300200d42003703002001420037038004200141900a6a20014180046a1021200141a0046a1024200141f0026a200141b8046a2208290300370300200141e8026a200141b0046a2204290300370300200141e0026a200141a8046a2207290300370300200120012903a0043703d802200520002903003703002006200229030037030020092003290300370300200120012903b8023703b003200141f0036a2008290300370300200141e8036a2004290300370300200141e0036a2007290300370300200120012903a0043703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c0042001200141900a6a200141d8036a200141c0046a102a200129030022147c221520145422002000ad2013200141086a29030022127c7c221320125420122013511b0d0e20014180036a200141900a6a200141d8026a200141b0036a20152013102b20012802800322004106470440200141cc046a2001418c036a28020036020020012001290284033702c4040b200120003602c004200141900a6a20014180046a1028200141c0046a1029000b201129030021122001290388022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c0042001200436028004200120012903800237028404200141a0046a200141900a6a200141d8036a200141c0046a2013201220014180046a102c0c0e0b200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2000290300370300200141e8036a2002290300370300200141e0036a2003290300370300200120012903b8023703d803200141d8046a2005290300370300200141d0046a2006290300370300200141c8046a2009290300370300200120012903b0033703c004200141106a200141900a6a200141d8036a200141c0046a102a200129031022152013542200200141186a290300221420125420122014511b450440200141f0036a2202200141d0026a2208290300370300200141e8036a2203200141c8026a2205290300370300200141e0036a2206200141c0026a2209290300370300200120012903b8023703d803200141cf046a200141a0026a290300370000200141d7046a200141a8026a2903003700002001200141b6026a2d00003a00c204200120012f01b4023b01c004200120043600c30420012001290398023700c704200120073a00df0420012016370284042001201036028004200141a0046a200141900a6a200141d8036a200141c0046a2013201220014180046a102c024020012802a00422044106460440200220082903003703002003200529030037030020062009290300370300200120012903b8023703d803200141d8046a200141c8036a290300370300200141d0046a200141c0036a290300370300200141c8046a200141b8036a290300370300200120012903b0033703c004201520137d2213201556201420127d2000ad7d221220145620122014511b0d0f200141a0046a200141900a6a200141d8036a200141c0046a20132012102b20012802a00422044106470d01200141063602c0040c0b0b0c090b0c080b200141023602c0040c080b200141d8046a4200370300200141d0046a4200370300200141c8046a4200370300200142003703c004200141900a6a200141c0046a102120012903900a21122001200141980a6a2903003703980a200120123703900a200141900a6a102d000b200141f0026a2000290300370300200141e8026a2002290300370300200141e0026a2003290300370300200141fa026a200141b6026a2d00003a0000200120012903b8023703d802200120012f01b4023b01f80220014198036a420037030020014190036a420037030020014188036a42003703002001420037038003200141900a6a20014180036a1021200141b0036a200141d8026a41231091011a200141f0036a2000290300370300200141e8036a2002290300370300200141e0036a2003290300370300200141fa036a200141d2036a2d00003a0000200120012903b8023703d803200120012f00d0033b01f803200141c0046a200141d8036a41231091011a20014198046a2000290300370300200f2002290300370300200d2003290300370300200120012903b80237038004200141af046a200c290300370000200141b7046a200e2903003700002001200141e2046a2d00003a00a204200120012f01e0043b01a004200120043600a30420012001290398023700a704200120073a00bf04200141206a200141900a6a20014180046a200141a0046a102a2001200141286a2903003703a803200120012903203703a003200141a0036a102d000b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141306a200141900a6a200141c0046a102e2001200141386a2903003703b803200120012903303703b003200141b0036a102d000b200a29030021122001290380022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141406b200141900a6a200141d8036a200141c0046a102a0240200129034022152013542200200141c8006a290300221420125420122014511b450440200141f0036a200141c8036a290300370300200141e8036a200141c0036a290300370300200141e0036a200141b8036a290300370300200120012903b0033703d803200141d8046a200141d0026a290300370300200141d0046a200141c8026a290300370300200141c8046a200141c0026a290300370300200120012903b8023703c004200141a0046a200141900a6a200141d8036a200141c0046a201520137d201420127d2000ad7d102b20012802a004220b4106460440200141063602c0040c020b200141cc046a200141ac046a280200360200200120012902a4043702c4040b2001200b3602c0040b0c0a0b200a29030021122001290380022113200141f0026a4200370300200141e8026a4200370300200141e0026a4200370300200142003703d802200141900a6a200141d8026a1021200141b0036a1024200141f0036a2005290300370300200141e8036a2006290300370300200141e0036a2009290300370300200120012903b0033703d803200141d8046a2000290300370300200141d0046a2002290300370300200141c8046a2003290300370300200120012903b8023703c004200141a0046a200141900a6a200141d8036a200141c0046a20132012102b0c080b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141c0046a10240240200141900a6a41e6dfa6e704200141c0046a100a220041ff01714103470440200141d8026a200010250c010b02400240024020012d00dc0f450440200141013a00dc0f200141c0046a10240c010b200141b0036a4100102720012802b00322004106470d010b410621000c010b200141e4026a200141bc036a280200360200200120012902b4033702dc020b200120003602d8020b0c090b200141f0036a4200370300200141e8036a4200370300200141e0036a4200370300200142003703d803200141900a6a200141d8036a1021200141c0046a10240240200141900a6a41e6dfa6e704200141c0046a100a220041ff01714103470440200141d8026a200010250c010b02400240024020012d00dc0f0440200141003a00dc0f200141c0046a10240c010b200141b0036a4101102720012802b00322004106470d010b410621000c010b200141e4026a200141bc036a280200360200200120012902b4033702dc020b200120003602d8020b0c080b200141cc046a200141ac046a280200360200200120012902a4043702c404200120043602c0040b0c050b20000d0020014188046a200141b8036a2200280200220236020020014188036a200141e0026a22082802002203360200200120012903b003221437038004200120012903d802221537038003200141a8046a2002360200200141b40f6a4200370200200141880f6a4200370300200141fc0e6a4200370200200141d00e6a4200370300200141980a6a4200370300200141a00a6a4200370300200141e40c6a4200370200200141ac0c6a4200370200200141f00b6a4200370300200141bc0b6a4200370200200141840b6a4200370200200141c80a6a4200370300200141d80f6a41003a0000200141cc0f6a4100360200200141b80c6a4200370300200141800c6a4200370300200141f80b6a4100360200200141900b6a4200370300200141d80a6a4200370300200141d00a6a4100360200200120143703a00420082003360200200142003703900a200141003a00dc0f200141003602c00f200142003703c80b200120153703d802200141c80e6a4100360200200141c00e6a4200370300200141980e6a220242003703002001418c0e6a4200370200200141e00d6a4200370300200141d40d6a4200370200200141a80d6a4200370300200141a00d6a4100360200200141980d6a4200370300200142003703f00c200141b0036a1024200141f0036a200141c8036a2208290300370300200141e8036a200141c0036a2203290300370300200141e0036a2000290300370300200120012903b0033703d803200141900a6a4100200141d8036a100b450440200141dc046a2008290300370200200141d4046a2003290300370200200141cc046a2000290300370200200120012903b0033702c404200141003602c0042002200141c0046a102f0b200141c0046a1024200141900a6a4196e4ea6c200141c0046a103041ff01714103470d02200141c0046a1024200141900a6a41e6dfa6e704200141c0046a103041ff01714103470d02200141cc0f6a20012903d80237020041082100200141c80f6a200141a8046a280200360200200141d40f6a200141e0026a280200360200200120012903a0043703c00f200120043a00d80f200141c0046a1024200141d8036a200141900a6a200141c0046a20122013102620012802d8034106470d02200141c0046a200141900a6a41d0051091011a200141a80a6a4200370300200141a00a6a4200370300200141980a6a4200370300200142003703900a200141c0046a200141900a6a10280c010b410621000b200141e00f6a240020000f0b000b20012802a00422004106470440200141cc046a200141ac046a280200360200200120012902a4043702c4040b200120003602c0040b200141900a6a200141d8026a1028200141c0046a1029000b200141900a6a200141d8036a1028200141d8026a1029000b880101017f230041306b22002400200041808001360224200041d4840436022020004180800136022841d48404200041286a1001200041206a2000280228101920002000290320370328200041086a200041286a101a02402000290308a70d002000290310200041186a2903008450450d004101101741ff01714108470d00200041306a24000f0b000b3401017f230041106b22022400200241086a410020012000280200200028020410900120002002290308370200200241106a24000b5e02017f037e027e4201200128020422024110490d001a2001200241106b36020420012001280200220141106a360200200141086a29000021032001290000210442000b21052000200437030820002005370300200041106a20033703000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10082000200128020c1019200141106a24000b900102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d02000b20012000101e20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b7d01027f230041206b22022400200241086a2001103a41012103024020022d00084101710d000240024020022d00090e020001020b41002103200041003602040c010b200241106a2001103b20022802102201450d00200041086a200229021437020020002001360204410021030b20002003360200200241206a24000b3801017f230041106b22022400200241086a2001103a20022d00082101200020022d00093a0001200020014101713a0000200241106a24000b8a0302067f017e230041406a22022400200241186a41047221042000027f024003402003412047044020022001101e20022d00004101710d02200320046a20022d00013a00002002200341016a22033602180c010b0b200241126a2201200241256a2d00003a00002002410e6a22032002412c6a2d00003a00002002410a6a2204200241336a2d00003a0000200220022f011c3b0114200220022d001e3a00162002200241236a2f00003b011020022002412a6a2f01003b010c2002200241316a2f00003b0108200241346a29020021082002412d6a2800002105200241266a2801002106200228001f2107200041036a20022d00163a0000200020022f01143b0001200041046a2007360000200041086a20022f01103b00002000410a6a20012d00003a00002000410b6a20063600002000410f6a20022f010c3b0000200041116a20032d00003a0000200041126a2005360000200041166a20022f01083b0000200041186a20042d00003a0000200041196a200837000041000c010b41010b3a0000200241406b24000b810302067f017e230041306b22022400200241186a2001103a024020022d00184101710d00024002400240024020022d0019220341037122054103470440200541016b0e020203010b200341ff017141044f0d04200241106a2001104a20022802100d042002280214220341ffffffff034b0d030c040b200341fc017141027621030c020b200220033a0025200241013a002420022001360220200241003b012c200241206a2002412c6a41021075220545044020022f012c21030b2005200341ffff037141ff014d720d02200341fcff037141027621030c010b200220033a0025200241013a0024200220013602202002410036022c200241206a2002412c6a410410750d01200228022c220341808004490d01200341027621030b200128020422052003490d00200241086a20034101103c200235020c2108200228020822042001280200220620031091012001200520036b3602042001200320066a360200450d0020002003ad4220862008843702040b20002004360200200241306a24000bfd0802027f057e230041e0006b22022400200241406b200141186a290300370300200241386a200141106a290300370300200241306a200141086a2903003703002002420037034820022001290300370328200241286a10612101200241808001360254200241d484043602500240024002402001200241d0006a10490d0020022002290350370358200241106a200241d8006a101a2002290310a70d00200241206a290300210420022903182105200041106a200241286a1062200041d0006a200241286a10632201290300370300200041e8006a200141186a290300370300200041e0006a200141106a290300370300200041d8006a200141086a290300370300200041f4006a4200370200200041c8006a420137030020004188016a200241286a10612201290300370300200041a0016a200141186a29030037030020004198016a200141106a29030037030020004190016a200141086a290300370300200041ac016a420037020020004180016a4201370300200041b8016a200241286a1062200041f8016a200241286a1063220129030037030020004190026a200141186a29030037030020004188026a200141106a29030037030020004180026a200141086a2903003703002000419c026a4200370200200041f0016a4201370300200041b0026a200241286a10612201290300370300200141086a2903002106200141106a2903002107200141186a29030021082000200437030820002005370300200041c8026a2008370300200041c0026a2007370300200041b8026a2006370300200041d4026a4200370200200041a8026a4201370300200041b0056a200241286a1064200041bc056a200241286a1064200041c8056a200241286a10653a0000200241286a1061200241808001360254200241d48404360250200241d0006a10490d0020022002290350370358200241086a200241d8006a103a20022d00084101710d0020022d000922030e020201000b000b410121030b200041e0026a200241286a1062200041a0036a200241286a10632201290300370300200041b8036a200141186a290300370300200041b0036a200141106a290300370300200041a8036a200141086a290300370300200041c4036a420037020020004198036a4201370300200041d8036a200241286a10612201290300370300200041f0036a200141186a290300370300200041e8036a200141106a290300370300200041e0036a200141086a290300370300200041fc036a4200370200200041d0036a420137030020004188046a200241286a1062200041c8046a200241286a10632201290300370300200041e0046a200141186a290300370300200041d8046a200141106a290300370300200041d0046a200141086a290300370300200041ec046a4200370200200041c0046a420137030020004180056a200241286a1061220129030037030020004198056a200141186a29030037030020004190056a200141106a29030037030020004188056a200141086a290300370300200020033a00cc05200041a4056a4200370200200041f8046a4201370300200241e0006a24000b2501017f20012802002202450440200041003602000f0b20002002200141086a28020010720b960201067f230041106b220124002001200036020c2001410c6a2802002100230041206b22022400200241186a41808001360200200241d4840436021420024100360210200241086a2106230041206b22012400200241106a220441086a2203280200210520034100360200200428020421032004419c8404360204200120053602142001200336021002400240027f20002802004504402005450d02200341003a000041010c010b2005450d01200341013a0000200141013602182000200141106a1052200128021421052001280210210320012802180b21002004200536020820042003360204200141086a20042000101520062001290308370300200141206a24000c010b000b2002280208200228020c105f000bf90101037f230041e0006b2201240020014180800136022c200141d4840436022820014180800136023041d48404200141306a1003200141286a2001280230101920012001290328370358200141306a200141d8006a101f20012d003022034101470440200141106a2001413a6a290100370300200141186a200141c2006a2901003703002001411f6a200141c9006a2900003700002001200129013237030820012d003121020b20034101460440000b200020023a000020002001290308370001200041096a200141106a290300370000200041116a200141186a290300370000200041186a2001411f6a290000370000200141e0006a24000b4e000240024002400240200141ff017141016b0e020102000b200041046a41f38104411110720c020b200041046a41e48104410f10720c010b200041046a41d38104411110720b200041003602000b840302077f037e230041e0006b22052400410321060240200020021035047f410305200541d0006a2206200241186a2200290000370300200541c8006a2207200241106a2208290000370300200541406b2209200241086a220a2900003703002005200229000037033820052001200541386a102e2005290300220c20037c220e200c54220b200bad200541086a290300220c20047c7c220d200c54200c200d511b0d0120062000290000370300200720082900003703002009200a29000037030020052002290000370338200141106a200541386a200e200d103d2001290300220c20037c220e200c5422062006ad200141086a290300220c20047c7c220d200c54200c200d511b0d012001200e3703002001200d370308200541003a0010200541d1006a200241186a290000370000200541c9006a200241106a290000370000200541c1006a200241086a290000370000200541013a003820052002290000370039200541106a200541386a20032004103e41060b360200200541e0006a24000f0b000b3101017f200041046a210202402001450440200241908204410910720c010b200241848204410c10720b200041003602000bd41f01087f230041b0016b22022400200241e0006a200141186a290300370300200241d8006a200141106a290300370300200241d0006a200141086a2903003703002002420037036820022001290300370348200241c8006a1061200241f8006a41808001360200200241d4840436027420024100360270200241406b200241f0006a20001036200228024020022802441005200041106a200241c8006a1066200241c8006a10632109200041f8006a2802004100200041f4006a28020022031b21072003454101742108200041f0006a2802002101034002400240200704400240024020080e03000103010b034020010440200141016b2101200328026021030c010b0b4101210841002105410021010b200741016b21072005210620032104034020042f015e20064d044020042802002203450d032001200141016a22014b0d0320042f015c2106200321040c010b0b200641016a22052006492103200145044020030d02200421030c030b20030d01200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0405200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041b0016a2802004100200041ac016a28020022041b21072004454101742108200041a8016a280200210103400240200704400240024020080e03000105010b034020010440200141016b210120042802940321040c010b0b4101210841002103410021010b200741016b2107034020042f013220034d044020042802002205450d052001200141016a22014b0d0520042f01302103200521040c010b0b200341016a22062003492105200145044020050d04200421050c020b20050d03200420064102746a4194036a21054101210603402005280200210520012006460440410021060c0305200641016a210620054194036a21050c010b000b000b200041b8016a200241c8006a1066200241c8006a10632109200041a0026a28020041002000419c026a28020022031b2107200345410174210820004198026a280200210103400240200704400240024020080e03000107010b034020010440200141016b2101200328026021030c010b0b4101210841002105410021010b200741016b21072005210620032104034020042f015e20064d044020042802002203450d072001200141016a22014b0d0720042f015c2106200321040c010b0b200641016a22052006492103200145044020030d06200421030c020b20030d05200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041d8026a2802004100200041d4026a28020022041b21072004454101742108200041d0026a280200210103400240200704400240024020080e03000109010b034020010440200141016b210120042802f40521040c010b0b4100210141012108410021030b200741016b2107034020042f013220034d044020042802002205450d092001200141016a22014b0d0920042f01302103200521040c010b0b200341016a22062003492105200145044020050d08200421050c020b20050d07200420064102746a41f4056a21054101210603402005280200210520012006460440410021060c0305200641016a2106200541f4056a21050c010b000b000b200041b0056a200241c8006a1067200041bc056a200241c8006a1067200041c8056a200241c8006a1068200241c8006a1061200241003602a001200242808001370274200241d48404360270200220002d00cc053a009001200241f0006a20024190016a41011037200220022903703702a401200241286a200241a0016a200228027810152002280228200228022c1005200041e0026a200241c8006a1066200241c8006a10632109200041c8036a2802004100200041c4036a28020022031b21072003454101742108200041c0036a280200210103400240200704400240024020080e0300010b010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0b2001200141016a22014b0d0b20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0a200421030c020b20030d09200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a1061210920004180046a2802004100200041fc036a28020022031b21072003454101742108200041f8036a280200210103400240200704400240024020080e0300010d010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0d2001200141016a22014b0d0d20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0c200421030c020b20030d0b200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b20004188046a200241c8006a1066200241c8006a10632109200041f0046a2802004100200041ec046a28020022031b21072003454101742108200041e8046a280200210103400240200704400240024020080e0300010f010b034020010440200141016b2101200328026021030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f015e20064d044020042802002203450d0f2001200141016a22014b0d0f20042f015c2106200321040c010b0b200641016a22052006492103200145044020030d0e200421030c020b20030d0d200420054102746a41e0006a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341e0006a21030c010b000b000b200241c8006a10612109200041a8056a2802004100200041a4056a28020022031b21072003454101742108200041a0056a280200210103400240200704400240024020080e03000111010b034020010440200141016b210120032802c00321030c010b0b4100210141012108410021050b200741016b21072005210620032104034020042f01be0320064d044020042802002200450d112001200141016a22014b0d1120042f01bc032106200021040c010b0b200641016a22052006492100200145044020000d10200421030c020b20000d0f200420054102746a41c0036a21034101210503402003280200210320012005460440410021050c0305200541016a2105200341c0036a21030c010b000b000b200241b0016a24000f0b200241f0006a20092004200641246c6a41046a1069200420064102746a4190036a28020022002d00082101200041013a0008024020014101710d0020002802004101470440200241f0006a10060c010b20024100360290012002428080013702a401200241d484043602a0012000280204200241a0016a106a200220022903a00137029401200241086a20024190016a20022802a8011015200241f0006a2002280208200228020c10050b410021010c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00282104200141013a0028024020044101710d00200128020022064102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a001200141046a210402402006410147044041d4840441003a0000200241013602a8012004280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a8012004200241a0016a106d0b200220022903a00137029401200241106a20024190016a20022802a8011015200241f0006a2002280210200228021410050b410021010c000b000b200241f0006a2009200420064102746a220141046a1048200141306a28020022012d000c2104200141013a000c024020044101710d0020012802004101470440200241f0006a10060c010b20024100360290012002428080013702a401200241d484043602a0012001280204200241a0016a106a200141086a280200200241a0016a106a200220022903a00137029401200241186a20024190016a20022802a8011015200241f0006a2002280218200228021c10050b410021010c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d000c2104200141013a000c024020044101710d00200128020022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a8012001280204200241a0016a106a0b200220022903a00137029401200241206a20024190016a20022802a8011015200241f0006a2002280220200228022410050b410021010c000b000b200241f0006a2009200420034106746a41346a106e200420034102746a41046a280200200241f0006a106f4100210120062103200521040c000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00442104200141013a0044024020044101710d0020012d000022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a801200141016a200241a0016a10700b200220022903a00137029401200241306a20024190016a20022802a8011015200241f0006a2002280230200228023410050b410021010c000b000b200241f0006a2009200420034105746a41346a1071200420034102746a41046a280200200241f0006a106f4100210120052104200621030c000b000b000b200241f0006a2009200420064102746a220141046a350200106b200141306a28020022012d00242104200141013a0024024020044101710d0020012d000022044102460440200241f0006a10060c010b200241d484043602940120024100360290012002418080013602a401200241d484043602a00102402004410147044041d4840441003a0000200241013602a801200141046a280200200141086a280200200241a0016a106c0c010b41d4840441013a0000200241013602a801200141016a200241a0016a10130b200220022903a00137029401200241386a20024190016a20022802a8011015200241f0006a2002280238200228023c10050b410021010c000b000bbd0301077f230041106b220124002001200036020c2001410c6a2802002100230041206b22042400200441186a41808001360200200441d4840436021420044100360210200441086a2106230041206b22012400200441106a220541086a2202280200210320024100360200200528020421022005419c840436020420012003360214200120023602100240024002402000280200220741064604402003450d02200241003a0000200141013602180c010b2003450d01200241013a00002001410136021802400240024002400240024020070e06000102030405060b200341014d0d06200241003a000120014102360218200041046a200141106a10520c050b200341014d0d05200241013a0001200141023602180c040b200341014d0d04200241023a0001200141023602180c030b200341014d0d03200241033a0001200141023602180c020b200341014d0d02200241043a0001200141023602180c010b200341014d0d01200241053a000120014102360218200041046a200141106a10520b20052001290310370204200141086a20052001280218101520062001290308370300200141206a24000c010b000b2004280208200428020c105f000bbd0102017f027e230041406a22042400200441186a200241186a290000370300200441106a200241106a290000370300200441086a200241086a290000370300200441286a200341086a290000370300200441306a200341106a290000370300200441386a200341186a29000037030020042002290000370300200420032900003703202000200141a8026a200410322201290300420151047e200141106a290300210520012903080542000b37030020002005370308200441406b24000b930901067f230041d0026b220624002000027f4104200210350d001a4103200310350d001a200641206a200241186a290000370300200641186a200241106a290000370300200641106a200241086a290000370300200641306a200341086a290000370300200641386a200341106a290000370300200641406b200341186a29000037030020062002290000370308200620032900003703280240200141a8026a200641086a10322200290300420151044020002004370308200041003a0020200041106a20053703000c010b200641c8006a200641086a41c0001091011a0240024002402001027f024002400240200141e4016a2802002208200141e8016a280200470440200141f0016a220b200141e0016a2802002208103f2100200641013a00f001200641f0016a410172200641c8006a41c0001091011a200641a0016a2000200641f0016a104020062d00a00122004102462000410146720d062008200641a8016a280200220746410020062802a40122002008461b0d01200b200710412209450d0620092d00004101460d06200941046a210a20002007460d02200a2000360200200b200010412209450d0620092d00004101460d06200941086a210a0c030b20064188016a20014198026a200810420240200628028801410147044020064180026a2006419c016a280200360200200641f8016a20064194016a2902003703002006200629028c013703f00141c80041041033220041013a0000200041016a200641c8006a41c0001091011a200041003a0044200641f0016a200010431a0c010b20064190016a28020020064194016a2802004102746a41306a2802002100200641013a00f001200641f0016a410172200641c8006a41c0001091011a200641a0016a2000200641f0016a10400b200141e0016a280200220041016a22072000490d05200120073602e00120012802e801220041016a22072000490d05200120073602e8010c040b20012802e4010c020b200920003602080b200a200736020020012802e0012008470d012000200720002007491b0b3602e0010b20012802e401220041016a220720004f0d010b000b200120073602e401200641c8006a200641086a41c0001091011a41284108103322002004370308200041003a00202000200836021820004201370300200041106a2005370300200641a0016a200641c8006a41c0001091011a200641f0016a200141d0026a200641a0016a104420062802f0014101470440200641a0016a200641f0016a41047241d0001091011a200641a0016a200010451a0c010b200641f8016a280200200641fc016a2802004102746a41046a20003602000b200641b8016a200241186a290000370300200641b0016a200241106a290000370300200641a8016a200241086a290000370300200641c8016a200341086a290000370300200641d0016a200341106a290000370300200641d8016a200341186a290000370300200620022900003703a001200620032900003703c001200641f8016a200641a0016a41c0001091011a200641c0026a2005370300200641b8026a2004370300200642013703f001200641f0016a100d41060b360200200641d0026a24000bbd10020b7f057e230041d0076b22072400410421080240200210350d0041032108200310350d0020074198026a2209200241186a220c29000037030020074190026a220b200241106a220d29000037030020074188026a220a200241086a220e2900003703002007200229000037038002200741406b200120074180026a102e41012108200729034022142004542211200741c8006a290300221320055420052013511b0d0020094200370300200b4200370300200a42003703002007420037038002200120074180026a1028200741b8016a1024200741f0006a200341186a290000370200200741e8006a200341106a290000370200200741e0006a200341086a29000037020020072003290000370258200741b8026a200741d0016a290300370300200741b0026a200741c8016a290300370300200741a8026a2208200741c0016a290300370300200a200e290000370300200b200d2900003703002009200c290000370300200720072903b8013703a0022007200229000037038002200741f8006a20074180026a41c0001091011a200741b8016a200741d4006a41241091011a200741a0026a200537030020074198036a200741d4016a29020037030020074190036a200741cc016a29020037030020074188036a200741c4016a2902003703002007200437039802200720072902bc01370380032008200741f8006a41c000109101200741f8026a220941fdcdc6cf7a360200200a4200370300200b4200370300200741f0026a220b200641086a280200360200200741e8026a220c20062902003703002007420037038002200741003602e0012007428080013702bc01200741d484043602b80120074180036a200741b8016a1013200720072903b8013702e401200741386a200741e0016a20072802c0011015200728023c21062007280238210d200741306a200741e0016a200a10362007280234210e2007280230210a20072902e4012112200741003602c001200720123703b801200741b8016a200941041037200741c8026a200741b8016a1013200741b8016a101320042005200741b8016a1014200c280200200b280200200741b8016a1038200720072903b8013702e401200741286a200741e0016a20072802c0011015200728022c21082007280228210b2007200741e8016a28020022093602f401200720072802e401220c3602f001200720093602b801200d20064200200a200e200b2008200c200741b8016a1002210b200741f0016a20072802b8011019410121084101210602400240024002400240024002400240024002400240024002400240200b103941016b0e0c0d0203040506070809010a0b000b200720072903f0013703f801200741206a200741f8016a103a20072d00204101710d0b4100210a0240024020072d00210e0201000d0b200741186a200741f8016a103a20072d001920072d0018410171720d0c200741b8016a200741f8016a103b20072802b801220a450d0c20072902bc0121120b410021080c0c0b000b410221060c0a0b410321060c090b410421060c080b410521060c070b410621060c060b410721060c050b410821060c040b410a21060c030b410b21060c020b410921060c010b410021060b027f02402008450440200a0d014101210b41060c020b4101210b4106200641ff017122064101462006410846720d011a4100210b411d210f200741106a411d4100103c200728021421102007280210220a41b68104290000370000200a41156a41cb8104290000370000200a41106a41c68104290000370000200a41086a41be810429000037000041050c010b2012422088a7210f2012a721104100210b41050b210820074190016a420037030020074188016a420037030020074180016a42003703002007420037037820074180026a200741f8006a1021410021060340200641b0054b450440200120066a22092903002112200920074180026a20066a220c290300370300200c2012370300200941086a220d2903002112200d200c41086a220d290300370300200941106a220e2903002115200e200c41106a220e290300370300200941186a220929030021162009200c41186a220929030037030020092016370300200e2015370300200d2012370300200641206a21060c010b0b200141c8056a200741c8076a290300370300200141c0056a200741c0076a290300370300200b4504402000200a3602042000410c6a200f360200200041086a20103602000c010b20074198026a2206200241186a29000037030020074190026a220a200241106a29000037030020074188026a2208200241086a290000370300200720022900003703800202402014201420047d221454201320057d2011ad7d221220135620122013511b0d00200141106a220b20074180026a20142012103d2006200341186a2209290000370300200a200341106a220c2900003703002008200341086a220f29000037030020072003290000370380022007200120074180026a102e200741086a29030021132007290300211220062009290000370300200a200c2900003703002008200f2900003703002007200329000037038002200420127c221420125422012001ad200520137c7c221220135420122013511b0d00200b20074180026a20142012103d20074191016a200241186a29000037000020074189016a200241106a29000037000020074181016a200241086a290000370000200741013a00782007200229000037007920074199026a200341186a29000037000020074191026a200341106a29000037000020074189026a200341086a290000370000200741013a0080022007200329000037008102200741f8006a20074180026a20042005103e410621080c010b000b20002008360200200741d0076a24000b5e01017f230041106b220124002001200036020c2001410c6a2802002101230041206b22002400200041186a41808001360200200041d4840436021420004100360210200041086a200041106a200110362000280208200028020c105f000b3701027e200020014180016a200210312201290300420151047e200141106a290300210320012903080542000b370300200020033703080bdf0501087f230041b0016b220824000240200041f0006a2001100c22022802004101460440200241003a00080c010b20082001412410910121020240024002402000027f0240024002402000412c6a2802002205200041306a280200470440200041386a2209200028022822051054210320024101360240200241406b410472200241241091011a200241f8006a2003200241406b1055200228027822034102462003410146720d06200520024180016a2802002204464100200228027c22032005461b0d012009200410562206450d0620062802004101460d06200641046a210720032004460d02200720033602002009200310562206450d0620062802004101460d06200641086a21070c030b200241286a200041e0006a20051042024020022802284101470440200241d0006a2002413c6a280200360200200241c8006a200241346a2902003703002002200229022c370340412c4104103322034101360200200341046a200241241091011a200341003a0028200241406b200310431a0c010b200241306a280200200241346a2802004102746a41306a280200210320024101360240200241406b410472200241241091011a200241f8006a2003200241406b10550b2000280228220341016a22042003490d05200020043602282000280230220341016a22042003490d05200020043602300c040b200028022c0c020b200620033602080b2007200436020020002802282005470d012003200420032004491b0b3602280b200028022c220341016a220420034f0d010b000b2000200436022c2002200141241091012101410c41041033220241003a00082002200536020420024101360200200141f8006a200141241091011a200141406b20004198016a200141f8006a105720012802404101470440200141f8006a200141406b41047241341091011a200141f8006a200210581a0c010b200141c8006a280200200141cc006a2802004102746a4190036a20023602000b200841b0016a24000b910d02117f017e23004180016b2203240020032001360224200041f8036a210b027f200041fc036a28020022060440200b2802000c010b200b10472206360204200b410036020041000b21080240024003402006412c6a210920062f015e22044102742107417f2105034002402007450440200421050c010b200941286b210a200541016a2105200941046a2109200741046b2107417f200a280200220a2001472001200a491b41ff01710e020301000b0b20080440200841016b2108200620054102746a41e0006a28020021060c010b0b4102210720002903d0034201510440200341e8006a2209200041f0036a290300370300200341e0006a2207200041e8036a290300370300200341d8006a2204200041e0036a2903003703002003200041d8036a290300370350200341306a200341d0006a200341246a10482009200341c8006a2903003703002007200341406b2903003703002004200341386a29030037030020032003290330370350200341808001360274200341d48404360270027f02400240200341d0006a200341f0006a10490e0400050501050b20032003290370370378200341186a200341f8006a104a20032802180d04200328021c2109200341106a200341f8006a104a20032802100d042003280214210441010c010b41000b21072009ad2004ad4220868421140b41104104104b220841013a000c2008201437020420084100200720074102461b360200200320053602582003410036025020032006360254027f02400240024020062f015e410b4f0440200341286a2005104c200341306a280200210f200328022c2109200328022821041047210a20062f015e220720046b220520074b0d062005200541016b2205490d06200a20053b015e200441016a220c2004490d0620072007200c6b2207492005410c4f722005200747720d06200620044102746a220741306a280200210d200741046a280200210e200a41046a2006200c4102746a41046a200541027422051091011a200a41306a2006200c4102746a41306a20051091011a200620043b015e2003200f3602302003200a200620091b36022c4100210420034100360228200341286a20012008104d210941002101034020062802002205450d02200441016a22072004490d07200320062f015c22043602582003200536025420032007360250200741016b220620074b2001200647720d0720052f015e410b490d03200341286a2004104c20032802302111200328022c2003280228210420052f015e104e210120052f015e220820046b220620084b0d072006200641016b2206490d07200120063b015e200441016a22102004490d072008200820106b2208492006410c4f722006200847720d07200520044102746a220841306a280200210c200841046a280200210f200141046a200520104102746a220841046a200641027422061091011a200141306a200841306a20061091011a200520043b015e41016a220620106b220420064b0d0720012f015e2206410c4f2004200641016a47720d07200141e0006a200841e0006a20044102741091011a200341086a20012007104f200328020c2106200328020821012007210420052108044020062108200121040b200320113602302003200836022c20032004360228200341286a200e200d200a1050200721042006210a200c210d200f210e200521060c000b000b200341d0006a20012008104d21090c020b200b2802042205450d04200b2802002104104e220720053602602004200441016a22044b0d04200320072004104f20032802002105200b20032802042204360204200b20053602002005200541016b2205492001200547720d0420042f015e2201410a4b0d042004200141016a22053b015e200420014102746a220141306a200d360200200141046a200e360200200420054102746a41e0006a200a360200200a20053b015c200a2004360200200b280208220141016a22072001490d04200b41086a0c020b200341d0006a200e200d200a10500b200b280208220141016a22072001490d02200b41086a0b20073602000b41002107200928020022012802004101460440200128020421070b200341286a1024024020002007200341286a100a220941ff01714103470d0041022109200020032802242002100b0d00200341346a200241086a2900003702002003413c6a200241106a290000370200200341c4006a200241186a290000370200200320032802243602282003200229000037022c20004188046a200341286a102f200341286a1024410321090b20034180016a240020090f0b000bdb0302047f027e230041b0016b22022400200241f8006a200141186a290000370300200241f0006a200141106a290000370300200241e8006a200141086a29000037030020022001290000370360200241086a200041286a200241e0006a105c027f200228020841014704404202210620002903004201510440200241a8016a2203200041206a290300370300200241a0016a2204200041186a29030037030020024198016a2205200041106a2903003703002002200029030837039001200241e8006a20024190016a20011071200320024180016a2903003703002004200241f8006a2903003703002005200241f0006a2903003703002002200229036837039001200241406b20024190016a108f01200229034021060b20064202520440200241a0016a200241d8006a29030037030020024198016a200241d0006a2903003703002002200229034837039001200621070b200241e0006a200241086a41047241301091011a41284108104b22002007370300200041013a00202000200229039001370308200041106a20024198016a290300370300200041186a200241a0016a290300370300200241e0006a2000105d2802000c010b200241106a280200200241146a2802004102746a41046a2802000b200241b0016a24000bb00302047f027e230041f0016b2202240020024180016a200141c0001091011a200241086a200041286a20024180016a1044027f200228020841014704404202210620002903004201510440200241e8016a2203200041206a290300370300200241e0016a2204200041186a290300370300200241d8016a2205200041106a290300370300200220002903083703d00120024188016a200241d0016a2001106e2003200241a0016a290300370300200420024198016a290300370300200520024190016a29030037030020022002290388013703d001200241e0006a200241d0016a108f01200229036021060b20064202520440200241e0016a200241f8006a290300370300200241d8016a200241f0006a290300370300200220022903683703d001200621070b20024180016a200241086a41047241d0001091011a41284108104b22002007370300200041013a0020200020022903d001370308200041106a200241d8016a290300370300200041186a200241e0016a29030037030020024180016a200010452802000c010b200241106a280200200241146a2802004102746a41046a2802000b200241f0016a24000b11002000200110342200450440000b20000bb50101027f2000200020016a41016b410020016b7122014d0440024041cc8404280200220020016a22032000490d0041d0840428020020034904402001200141ffff036a22004b044041000f0b2000411076220240002200417f46044041000f0b2000200041ffff037147044041000f0b2000411074220020024110746a2203200049044041000f0b4100210241d084042003360200200020016a22032000490d010b41cc84042003360200200021020b20020f0b000b4101017f230041206b22012400200141186a4200370300200141106a4200370300200141086a42003703002001420037030020002001109301200141206a2400450b6102017f017e230041206b220324002001290204210420034100360218200320043703102002290300200241086a290300200341106a101420012003290310370204200341086a20012003280218101520002003290308370300200341206a24000b6001037f230041106b2203240002402000280208220420026a220520044f0440200341086a2004200520002802002000280204109001200328020c2002470d012003280208200120021091011a20002005360208200341106a24000f0b000b000b2c01017f230041106b220324002003200136020c2003410c6a2002105e2002200020011037200341106a24000b2001017f410c21012000410b4d047f2000410274419c84046a28020005410c0b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000bc00502097f017e230041106b22062400200620011020024020062802002203044041002006290204220b422088a7220441076b2201200120044b1b210a200341036a417c7120036b210941002101034020012004490440024002400240200120036a2d00002207411874411875220841004e0440200920016b4103712009417f46720d0303402001200a4f0d03200120036a2205280200200541046a28020072418081828478710d032001200141086a22014d0d000b0c010b4100210502400240024002402007419982046a2d000041026b0e030002010a0b200141016a220120044f0d09200120036a2c000041bf7f4c0d020c090b200141016a220220044f0d08200220036a2d000021020240024002400240200741f0016b0e050100000002000b2002411874411875417f4a2008410f6a41ff017141024b720d0b200241c001490d020c0b0b200241f0006a41ff01714130490d010c0a0b2002411874411875417f4a2002418f014b720d090b200141026a220220044f0d08200220036a2c000041bf7f4a0d08200141036a220120044f0d08200120036a2c000041bf7f4c0d010c080b200141016a220220044f0d07200220036a2d00002102024002400240200741e001470440200741ed01460d012008411f6a41ff0171410c490d022008417e71416e472002411874411875417f4a720d0b200241c001490d030c0b0b200241e0017141a001460d020c0a0b2002411874411875417f4a0d09200241a001490d010c090b2002411874411875417f4a200241bf014b720d080b200141026a220120044f0d07200120036a2c000041bf7f4a0d070b200141016a21010c040b000b20012004200120044b1b2105034020012005460440200521010c040b200120036a2c00004100480d03200141016a21010c000b000b200141016a21010c010b0b2000200b370204200321050c010b0b20002005360200200641106a24000bf10101037f230041106b220424000240200141004e0440200441086a2105027f41012001450d001a20024504402001410110340c010b410041cc8404280200220220016a22032002490d001a024041d084042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141d0840420033602004100200120026a22032002490d021a0b41cc8404200336020020020c010b41000b21022005200136020420052002360200200428020822020d010b000b2000200136020420002002360200200441106a24000b8c0801077f230041a0016b220424000240200041f0006a200110312205290300420151044020052002370308200541003a0020200541106a20033703000c010b200441186a2205200141186a290000370300200441106a2206200141106a290000370300200441086a2207200141086a290000370300200420012900003703000240024002402000027f0240024002402000412c6a2802002208200041306a280200470440200041386a220a2000280228220810592109200441c1006a2007290300370000200441c9006a2006290300370000200441d1006a2005290300370000200441013a003820042004290300370039200441f0006a2009200441386a105a20042d007022054102462005410146720d062008200441f8006a2802002206464100200428027422052008461b0d01200a2006105b2207450d0620072d00004101460d06200741046a210920052006460d0220092005360200200a2005105b2207450d0620072d00004101460d06200741086a21090c030b200441206a200041e0006a20081042024020042802204101470440200441c8006a200441346a280200360200200441406b2004412c6a29020037030020042004290224370338412841041033220541013a0000200541003a002420052004290300370001200541096a200441086a290300370000200541116a200441106a290300370000200541196a200441186a290300370000200441386a200510431a0c010b200441286a2802002004412c6a2802004102746a41306a2802002105200441c1006a200441086a290300370000200441c9006a200441106a290300370000200441d1006a200441186a290300370000200441013a003820042004290300370039200441f0006a2005200441386a105a0b2000280228220541016a22062005490d05200020063602282000280230220541016a22062005490d05200020063602300c040b200028022c0c020b200720053602080b2009200636020020002802282008470d012005200620052006491b0b3602280b200028022c220541016a220620054f0d010b000b2000200636022c200441186a2205200141186a290000370300200441106a2206200141106a290000370300200441086a2207200141086a2900003703002004200129000037030041284108103322012002370308200141003a00202001200836021820014201370300200141106a200337030020044188016a200529030037030020044180016a2006290300370300200441f8006a200729030037030020042004290300370370200441386a20004198016a200441f0006a105c20042802384101470440200441f0006a200441386a41047241301091011a200441f0006a2001105d1a0c010b200441406b280200200441c4006a2802004102746a41046a20013602000b200441a0016a24000b6701017f230041b0016b22042400200441086a200041211091011a200441296a200141211091011a200441d8006a200441086a41c8001091011a200441a8016a2003370300200441a0016a200237030020044200370350200441d0006a100d200441b0016a24000ba30702047f057e230041a0026b22022400200241106a200041286a200110420240027f200228021041014704404102210320002903004201510440200041206a2903002109200041186a2903002108200041106a29030021062002200029030822072001ad7c220a370328200220062007200a56ad7c2207370330200220082006200756ad7c2206370338200220092006200854ad7c37034020024180800136028401200241d484043602800141002100024002400240200241286a20024180016a10490e0400060601060b20022002290380013703c801200241086a200241c8016a103a4101210020022d00084101710d00027f0240024020022d00090e020001030b200241c8006a200241c8016a107420022802484101460d02200241d0006a2802002104200228024c210541000c010b200241d0016a200241c8016a101f20022d00d0014101460d01200241f8016a200241c8016a101f20022d00f8014101460d01200241c6016a20022d00d3013a0000200241f5006a20024191026a290000370000200241ed006a20024189026a290000370000200241e5006a20024181026a290000370000200241d0006a200241e4016a290200370300200241d5006a200241e9016a290000370000200220022900f90137005d200220022f00d1013b01c4012002200241dc016a290200370348200241d8016a280200210420022802d40121052002418c016a200241c8006a41351091011a41010b2103200241fa016a200241c6016a2d00003a0000200220022f01c4013b01f801200241c8006a2002418c016a41381091011a410021000c010b0b20000d03200241d2016a2201200241fa016a22002d00003a0000200220022f01f8013b01d0012002418c016a200241c8006a41381091011a20034102470440200020012d00003a0000200220022f01d0013b01f801200241c8006a2002418c016a41381091011a0b200241ca016a20002d00003a0000200220022f01f8013b01c8012002418c016a200241c8006a41381091011a0b200241d8006a200241106a410472220041106a280200360200200241d0006a200041086a2902003703002002200029020037034841c8004104104b220020033a00002000200436000820002005360004200020022f01c8013b0001200041036a200241ca016a2d00003a00002000410c6a2002418c016a41381091011a200041013a0044200241c8006a200010432802000c010b200241186a2802002002411c6a2802004102746a41306a2802000b200241a0026a24000f0b000b3a01017f20022d000021032000200141c4001091012001200241c40010910121012d0000410246410020034102461b450440200141003a00440b0b2101017f20002001103f22002d0000410247047f200041003a004420000541000b0b900201077f027f20012802042204044020012802000c010b2001104722043602042001410036020041000b2106027f034020042f015e2208410274210941002105417f21030240034020052009460440200821030c020b200420056a2107200341016a2103200541046a21050240417f200741046a280200220720024720022007491b41ff01710e020001020b0b2000410c6a2003360200200041086a2004360200200041106a210541010c020b20060440200641016b2106200420034102746a41e0006a28020021040c010b0b200041106a20033602002000410c6a2004360200200041086a4100360200200041146a21052002210641000b21032000200636020420052001360200200020033602000b860801117f230041306b220224002000280200210e200241186a2000410c6a280200360200200220002902043703100240027f024002400240200228021422042f015e410b4f0440200241206a2002280218104c200241286a28020021072002280224210f2002280220210a200228021021031047210820042f015e2209200a6b220520094b0d05200541016b220b20054b0d052008200b3b015e200a41016a2206200a490d05200920066b220520094b200b410c4f722005200b47720d052004200a4102746a220541306a2802002110200541046a2802002109200841046a200420064102746a41046a200b41027422051091011a200841306a200420064102746a41306a20051091011a2004200a3b015e20022007360228200220082004200f1b36022441002106200241002003200f1b360220200241206a200e2001104d2112034020042802002207450d02200341016a22052003490d06200220042f015c22033602182002200736021420022005360210200541016b220120054b2001200647720d0620072f015e410b490d03200241206a2003104c2002280228210a2002280224210b2002280220210d20072f015e104e210c20072f015e2204200d6b220120044b0d06200141016b221120014b0d06200c20113b015e200d41016a2206200d490d06200420066b220120044b2011410c4f722001201147720d062007200d4102746a220141306a280200210e200141046a280200210f200c41046a200720064102746a220441046a201141027422011091011a200c41306a200441306a20011091011a2007200d3b015e41016a220120066b220320014b0d06200c2f015e2201410c4f2003200141016a47720d06200c41e0006a200441e0006a20034102741091011a200241086a200c2005104f200228020c21042002280208210620052103200721012002200a3602282002200b047f2006210320040520010b36022420022003360220200241206a20092010200810502005210320042108200e2110200f2109200721040c000b000b200241106a200e2001104d21120c020b200028021022042802042200450d0320042802002103104e22012000360260200341016a22002003490d03200220012000104f20022802002100200420022802042203360204200420003602002000200041016b2200492000200647720d0320032f015e2200410a4b0d032003200041016a22013b015e200320004102746a220041306a2010360200200041046a2009360200200320014102746a41e0006a2008360200200820013b015c200820033602002004280208220041016a22032000490d03200441086a0c020b200241106a20092010200810500b20002802102201280208220041016a22032000490d01200141086a0b2003360200200241306a240020120f0b000b880201097f027f20012802042203044020012802000c010b2001107c22033602042001410036020041000b2105200241206a2108027f034020032f01322209410674210a41002104417f2106024003402004200a460440200921060c020b2002200320046a220b41346a108e01220741ff01714504402008200b41d4006a108e0121070b200641016a2106200441406b21040240200741ff01710e020001020b0b41010c020b20050440200541016b2105200320064102746a41f4056a28020021030c010b0b200041146a200241c0001091011a4100210541000b21042000200536020420002004360200200041106a20013602002000410c6a2006360200200041086a20033602000b800b01117f230041e0026b22022400200241206a200041086a28020036020020022000290200370318200041106a21080240027f02400240027f0240200228021c22042f0132410b4f0440200241e0016a2002280220104c200241e8016a280200210720022802e401210c20022802e001210520022802182103107c210920042f0132220a20056b2206200a4b0d062006200641016b2206490d06200920063b0132200420054106746a220b41346a280000210d200241e0016a200b41386a413c1091011a200541016a220b2005490d06200a200a200b6b220a492006410c4f722006200a47720d06200420054102746a41046a280200210a200941346a2004200b4106746a41346a20064106741091011a200941046a2004200b4102746a41046a20064102741091011a200420053b0132200241a0026a200241e0016a413c1091011a20022007360260200220092004200c1b36025c41002107200241002003200c1b360258200241e0016a200841c0001091011a200241d8006a200241e0016a2001107d210c200241a4016a200241a0026a413c1091011a200241186a200241a4016a413c1091011a200241e0016a410472210e0340200428020022050440200341016a22062003490d08200220042f013022013602a0012002200536029c012002200636029801200641016b220320064b2003200747720d0820052f0132410b490d03200241e0016a2001104c20022802e801210f20022802e401211020022802e001210120052f0132107e210320052f0132220820016b220420084b0d082004200441016b2204490d08200320043b0132200520014106746a220741346a280000210b200241e0016a200741386a413c1091011a200141016a22072001490d082008200820076b2208492004410c4f722004200847720d08200520014102746a41046a2802002108200341346a200520074106746a41346a20044106741091011a200341046a200520074102746a221241046a20044102741091011a200520013b0132200241a0026a200241e0016a413c1091011a41016a220420076b220120044b0d0820032f01322204410c4f2001200441016a47720d08200341f4056a201241f4056a20014102741091011a200241106a20032006107f2002280214210420022802102107200241a4016a200241a0026a413c1091011a20062103200521012002200f3602a80220022010047f2007210320040520010b3602a402200220033602a0022002200d3602e001200e200241186a413c1091011a200241a0026a200241e0016a200a2009108001200241d8006a200241a4016a413c1091011a200241186a200241d8006a413c1091011a20062103200b210d200421092008210a200521040c010b0b200241a0026a200241186a413c1091011a41010c020b200241e0016a200841c0001091011a200241186a200241e0016a2001107d210c200028020c21000c020b2002200d3602e001200e200241186a413c1091011a20024198016a200241e0016a200a20091080012001210d41000b200028020c21000d010b2000280208220141016a22032001490d02200041086a0c010b20002802042203450d0120002802002101107e220520033602f4052001200141016a22014b0d01200241086a20052001107f200228020821032000200228020c220136020420002003360200200241e0016a200241a0026a413c1091011a2003200341016b2203492003200747720d0120012f01322203410a4b0d012001200341016a22053b0132200120034106746a220641346a200d360000200641386a200241e0016a413c1091011a200120054102746a41f4056a2009360200200120034102746a41046a200a360200200920053b0130200920013602002000280208220141016a22032001490d01200041086a0b2003360200200241e0026a2400200c0f0b000b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b2201017f41e000410410732200450440000b200041003b015e2000410036020020000b900201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e800370310200320013602082003200236020c200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002280200200341d0006a106a200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b3701017f230041106b220224002002200128020436020c200020012802002002410c6a10072001200228020c10191039200241106a24000b4801017f027f4101200128020422024104490d001a2001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b11002000200110732200044020000f0b000b5b01027f41042102024020014105490d002001210202400240200141056b0e020200010b4100210141012103410521020c010b200141076b210141012103410621020b2000200336020420002002360200200041086a20013602000b4101027f2000280204220341046a20032f015e41016a2204200028020822002001107b200341306a2201200420002002107b200320043b015e200120004102746a0b2201017f419001410410732200450440000b200041003b015e2000410036020020000b860101037f230041206b2203240020012f015e2104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41e0006a280200220520043b015c200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000bfc0101067f2000280204220441046a20042f015e220541016a2208200028020822062001107b200441306a200820062002107b0240200641016a22022006490d00200241016a22092002490d00200441e0006a2107200541026a220120094b0440200120026b220520014b0d012005200541016b2205490d01200720094102746a200720024102746a20054102741092010b200720024102746a2003360200200420083b015e20012002200120024b1b2103200420064102746a41e4006a2101200028020021000340200220034704402000450d022001280200220620023b015c20062004360200200141046a2101200241016a21020c010b0b0f0b000b8d0101047f230041106b22022400200028020421052000419c8404360204200041086a220328020021042003410036020002402000280200220320044d0440200241003602082002200420036b3602042002200320056a360200200120021053200320022802086a220120034f0d010b000b200020043602082000200536020420002001360200200241106a24000b100020002802002000280208200110380b0a0020012000412010370b900702087f057e230041c0016b22022400200241106a200041286a200110420240027f20022802104101470440024020002903004201520440410221010c010b200041206a290300210d200041186a290300210a200041106a290300210b20022000290308220c2001ad7c220e3703282002200b200c200e56ad7c220c3703302002200a200b200c56ad7c220b3703382002200d200a200b56ad7c37034020024180800136024c200241d4840436024841002100024002400240200241286a200241c8006a10490e0400060601060b20022002290348370370200241086a200241f0006a103a4101210020022d00084101710d00027f0240024020022d00090e020001030b20024198016a200241f0006a10742002280298014101460d02200228029c01210341002101200241a0016a2802000c010b2002200241f0006a104a20022802000d012002280204210320024198016a200241f0006a101f4101210120022d0098014101460d0120024188016a200241ad016a290000220a370300200241d8006a200241a5016a290000370300200241e0006a200a370300200241e8006a200241b5016a2800003602002002200229009d013703502002280099010b2106200241b0016a200241e8006a280200360200200241a8016a200241e0006a290300370300200241a0016a200241d8006a2903003703002002200229035037039801410021000c010b410221010b20000d0320024190016a2207200241b0016a220028020036020020024188016a2208200241a8016a220429030037030020024180016a2209200241a0016a220529030037030020022002290398013703782001410247044020002007280200360200200420082903003703002005200929030037030020022002290378370398010b200241d8006a2005290300370300200241e0006a2004290300370300200241e8006a200028020036020020022002290398013703500b200241a8016a200241106a410472220041106a280200360200200241a0016a200041086a2902003703002002200029020037039801412c4104104b220020063602082000200336020420002001360200200041013a00282000200229035037020c200041146a200241d8006a2903003702002000411c6a200241e0006a290300370200200041246a200241e8006a28020036020020024198016a200010432802000c010b200241186a2802002002411c6a2802004102746a41306a2802000b200241c0016a24000f0b000b3801017f200228020021032000200141281091012001200241281091012101280200410246410020034102461b450440200141003a00280b0b2101017f2000200110542200280200410247047f200041003a002820000541000b0bb702010a7f027f20012802042204044020012802000c010b200110820122043602042001410036020041000b2107200241046a210920022802002108027f034020042f01be03220a41246c210b41002105417f2106024003402005200b460440200a21060c020b417f2008200420056a220c41046a280200220347200320084b1b22034504402009200c41086a108e0121030b200641016a2106200541246a21050240200341ff01710e020001020b0b200020073602042000410c6a2006360200200041086a200436020041012103200041106a0c020b20070440200741016b2107200420064102746a41c0036a28020021040c010b0b200041046a200241241091011a200041306a20063602002000412c6a200436020041002103200041286a4100360200200041346a0b2000200336020020013602000bad0f021d7f047e230041d0016b22022400200241206a2000412c6a280200360200200220002902243703180240027f02400240027f0240200228021c22042f01be03410b4f044020024188016a2002280220104c20024190016a2802002107200228028c01210c200228028801210520022802182103108201210920042f01be03220a20056b2206200a4b0d062006200641016b2206490d06200920063b01be0320024190016a2004200541246c6a220b41106a29020037030020024198016a200b41186a290200370300200241a0016a200b41206a2902003703002002200b41086a29020037038801200541016a22082005490d06200a200a20086b220a492006410c4f722006200a47720d06200420054102746a4190036a280200210a200b41046a280200210b200941046a2004200841246c6a41046a200641246c1091011a20094190036a200420084102746a4190036a20064102741091011a200420053b01be03200241b8016a220e20024190016a2211290300370300200241c0016a220f20024198016a2212290300370300200241c8016a2210200241a0016a221329030037030020022002290388013703b00120022007360240200220092004200c1b36023c41002107200241002003200c1b36023820024188016a200041241091011a200241386a20024188016a2001108301211420024180016a22152010290300221f370300200241f8006a2216200f2903002220370300200241f0006a2217200e2903002221370300200220022903b0012222370368200241306a2218201f370300200241286a22192020370300200241206a221a20213703002002202237031820024188016a410472210d0340200428020022050440200341016a22062003490d08200220042f01bc0322013602602002200536025c20022006360258200641016b220320064b2003200747720d0820052f01be03410b490d0320024188016a2001104c200228029001211b200228028c01211c200228028801210120052f01be03108401210320052f01be03220820016b220420084b0d082004200441016b2204490d08200320043b01be0320112005200141246c6a220c41106a2902003703002012200c41186a2902003703002013200c41206a2902003703002002200c41086a29020037038801200141016a22072001490d082008200820076b2208492004410c4f722004200847720d08200520014102746a4190036a2802002108200c41046a280200210c200341046a2005200741246c6a41046a200441246c1091011a20034190036a200520074102746a221e4190036a20044102741091011a200520013b01be03200e2011290300370300200f20122903003703002010201329030037030020022002290388013703b00141016a220420076b220120044b0d0820032f01be032204410c4f2001200441016a47720d08200341c0036a201e41c0036a20014102741091011a200241106a200320061085012017200e2903003703002016200f29030037030020152010290300370300200220022903b001370368200228021421042002280210210720062103200521012002201b3602b8012002201c047f2007210320040520010b3602b401200220033602b001200d2002290318370200200d41086a201a290300370200200d41106a2019290300370200200d41186a20182903003702002002200b36028801200241b0016a20024188016a200a2009108601200241d0006a2015290300221f370300200241c8006a20162903002220370300200241406b20172903002221370300201a2021370300201920203703002018201f37030020022002290368221f3703382002201f37031820062103200c210b200421092008210a200521040c010b0b200241c8016a200241306a290300370300200241c0016a200241286a290300370300200241b8016a200241206a290300370300200220022903183703b00141010c020b20024188016a200041241091011a200241186a20024188016a20011083012114200028023021000c020b200d2002290318370200200d41086a200241206a290300370200200d41106a200241286a290300370200200d41186a200241306a2903003702002002200b36028801200241d8006a20024188016a200a20091086012001210b41000b200028023021000d010b2000280208220141016a22032001490d02200041086a0c010b20002802042203450d0120002802002101108401220520033602c0032001200141016a22014b0d01200241086a20052001108501200228020821032000200228020c220136020420002003360200200241a0016a200241c8016a29030037030020024198016a200241c0016a29030037030020024190016a200241b8016a290300370300200220022903b001370388012003200341016b2203492003200747720d0120012f01be032205410a4b0d012001200541246c6a220341046a200b3602002001200541016a22063b01be03200341106a20024190016a290300370200200341186a20024198016a290300370200200341206a200241a0016a290300370200200341086a200229038801370200200120054102746a4190036a200a360200200120064102746a41c0036a2009360200200920063b01bc03200920013602002000280208220141016a22032001490d01200041086a0b2003360200200241d0016a240020140f0b000bac0702087f057e230041b0016b22022400200241086a200041286a200110420240027f200228020841014704404102210320002903004201510440200041206a290300210d200041186a290300210c200041106a290300210a20022000290308220b2001ad7c220e3703382002200a200b200e56ad7c220b3703402002200c200a200b56ad7c220a3703482002200d200a200c54ad7c370350200241808001360264200241d4840436026041002100024002400240200241386a200241e0006a10490e0400060601060b200220022903603703202002200241206a103a4101210020022d00004101710d00027f0240024020022d00010e020001030b20024188016a200241206a10742002280288014101460d02200228028c0121044100210320024190016a2802000c010b20024188016a200241206a101f4101210320022d0088014101460d0120024186016a20022d008b013a0000200241f0006a2002419c016a290200370300200241f5006a200241a1016a290000370000200220022f0089013b018401200220024194016a290200370368200228028c01210420024190016a2802000b2105200241de006a20024186016a2d00003a000020024190016a200241f0006a29030037030020024198016a200241f8006a290300370300200220022f0184013b015c2002200229036837038801410021000c010b410221030b20000d03200241e2006a2206200241de006a22072d00003a0000200241f0006a220820024190016a2200290300370300200241f8006a220920024198016a2201290300370300200220022f015c3b016020022002290388013703682003410247044020024186016a20062d00003a00002000200829030037030020012009290300370300200220022f01603b01840120022002290368370388010b200720024186016a2d00003a0000200241286a2000290300370300200241306a2001290300370300200220022f0184013b015c20022002290388013703200b20024198016a200241086a410472220041106a28020036020020024190016a200041086a290200370300200220002902003703880141284104104b220020033a00002000200536000820002004360004200041013a0024200020022f015c3b0001200041036a200241de006a2d00003a00002000200229032037000c200041146a200241286a2903003700002000411c6a200241306a29030037000020024188016a200010432802000c010b200241106a280200200241146a2802004102746a41306a2802000b200241b0016a24000f0b000b3801017f20022d0000210320002001412410910120012002412410910121012d0000410246410020034102461b450440200141003a00240b0b2101017f20002001105922002d0000410247047f200041003a002420000541000b0b9a0201077f027f20012802042203044020012802000c010b200110880122033602042001410036020041000b2105027f034020032f01322207410574210841002104417f21060240034020042008460440200721060c020b200641016a2106200320046a2109200441206a210402402002200941346a108e0141ff01710e020001020b0b41010c020b20050440200541016b2105200320064102746a4194036a28020021030c010b0b200041146a20022900003700002000412c6a200241186a290000370000200041246a200241106a2900003700002000411c6a200241086a2900003700004100210541000b21042000200536020420002004360200200041106a20013602002000410c6a2006360200200041086a20033602000bf20f021e7f037e230041c0016b22022400200241186a200041086a28020036020020022000290200370310200041106a21080240027f02400240027f0240200228021422052f0132410b4f044020024180016a2002280218104c20024188016a28020021062002280284012104200228028001210c20022802102103108801210920052f01322211200c6b220a20114b0d06200a41016b220e200a4b0d062009200e3b013220024188016a2005200c4105746a220741406b29000037030020024190016a200741c8006a29000037030020024198016a200741d0006a2800003602002002200741386a29000037038001200c41016a220b200c490d062011200b6b220a20114b200e410c4f72200a200e47720d062005200c4102746a41046a2802002113200741346a280000210a200941346a2005200b4105746a41346a200e4105741091011a200941046a2005200b4102746a41046a200e4102741091011a2005200c3b0132200241a8016a221420024188016a2215290300370300200241b0016a221620024190016a2217290300370300200241b8016a221820024198016a221928020036020020022002290380013703a0012002200636023820022009200520041b3602344100210720024100200320041b3602302019200841186a2900003703002017200841106a2900003703002015200841086a2900003703002002200829000037038001200241306a20024180016a2001108901211a200241f8006a221b20182802002201360200200241f0006a221c20162903002222370300200241e8006a221d20142903002221370300200220022903a0012220370360200241286a221e2001360200200241206a221f2022370300200241186a220820213703002002202037031020024180016a410472210d0340200528020022040440200341016a22062003490d08200220052f013022013602582002200436025420022006360250200641016b220320064b2003200747720d0820042f0132410b490d0320024180016a2001104c200228028801210c200228028401200228028001210f20042f0132108a01211020042f01322203200f6b220120034b0d08200141016b221220014b0d08201020123b013220152004200f4105746a220b41406b2900003703002017200b41c8006a2900003703002019200b41d0006a2800003602002002200b41386a29000037038001200f41016a2207200f490d08200320076b220120034b2012410c4f722001201247720d082004200f4102746a41046a2802002111200b41346a280000210b201041346a200420074105746a41346a20124105741091011a201041046a200420074102746a220341046a20124102741091011a2004200f3b013220142015290300370300201620172903003703002018201928020036020020022002290380013703a00141016a220120076b220520014b0d0820102f01322201410c4f2005200141016a47720d0820104194036a20034194036a20054102741091011a200241086a20102006108b01201d2014290300370300201c2016290300370300201b2018280200360200200220022903a001370360200228020c2101200228020821072006210320042105044020012105200721030b2002200c3602a801200220053602a401200220033602a001200d2002290310370200200d41086a2008290300370200200d41106a201f290300370200200d41186a201e2802003602002002200a36028001200241a0016a20024180016a20132009108c01200241c8006a201b2802002203360200200241406b201c2903002221370300200241386a201d290300222037030020082020370300201f2021370300201e20033602002002200229036022203703302002202037031020062103200b210a2001210920112113200421050c010b0b200241b8016a200241286a280200360200200241b0016a200241206a290300370300200241a8016a200241186a290300370300200220022903103703a00141010c020b20024198016a200841186a29000037030020024190016a200841106a29000037030020024188016a200841086a2900003703002002200829000037038001200241106a20024180016a2001108901211a200028020c21040c020b200d2002290310370200200d41086a200241186a290300370200200d41106a200241206a290300370200200d41186a200241286a2802003602002002200a36028001200241d0006a20024180016a20132009108c012001210a41000b200028020c21040d010b2004280208220041016a22032000490d02200441086a0c010b20042802042200450d0120042802002103108a012201200036029403200341016a22002003490d01200220012000108b01200228020021002004200228020422063602042004200036020020024198016a200241b8016a28020036020020024190016a200241b0016a29030037030020024188016a200241a8016a290300370300200220022903a001370380012000200041016b2200492000200747720d0120062f01322201410a4b0d01200620014105746a220341346a200a3600002006200141016a22003b0132200341386a200229038001370000200341406b20024188016a290300370000200341c8006a20024190016a290300370000200341d0006a20024198016a280200360000200620014102746a41046a2013360200200620004102746a4194036a2009360200200920003b0130200920063602002004280208220041016a22032000490d01200441086a0b2003360200200241c0016a2400201a0f0b000b7901017f230041106b22022400024020002802002200413f4d04402001200041027410460c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210370c010b200041ffffffff034d044020004102744102722001106a0c010b20014103104620002001106a0b200241106a24000b0b004100200020011009000b6502017f017e230041206b22032400200129020421042003410036021820032004370310200320022d00003a001f200341106a2003411f6a4101103720012003290310370204200341086a20012003280218101520002003290308370300200341206a24000b08002000420110780bef0101037f230041306b22022400200110792103200241808001360224200241d48404360220024002402003200241206a10490d0020022002290320370328200241186a200241286a104a20022802180d00200228021c2103200241106a200241286a104a20022802100d0020022802142104200241086a200241286a104a2002280208450d010b000b200041306a200228020c3602002000412c6a2004360200200020033602282000420137030020002001290300370308200041106a200141086a290300370300200041186a200141106a290300370300200041206a200141186a290300370300200241306a24000b0c00200042808080801010780baf0102017f017e230041206b2202240002400240024002402001106541ff01710e020001030b2001420110781a200041003602000c010b200110612101200241808001360204200241d484043602000240024002402001200210490e0400040401040b20022002290300370318200241086a200241186a103b20022802082201450d03200229020c21030c010b410021010b2001450d0120002003370204200020013602000b200241206a24000f0b000b6301017f230041206b22012400200010612100200141808001360214200141d4840436021002402000200141106a104945044020012001290310370318200141086a200141186a101e20012d0008410171450d010b000b20012d0009200141206a24000b820101017f230041306b220224002001107920024100360210200242808001370224200241d484043602202000280228200241206a106a2000412c6a280200200241206a106a200041306a280200200241206a106a20022002290320370214200241086a200241106a200228022810152002280208200228020c1005200241306a24000b8a0101027f230041306b220224002002200028020022034100473a0020200241206a200110680240200304402001106120024100360210200242808001370224200241d484043602202000200241206a105220022002290320370214200241086a200241106a200228022810152002280208200228020c10050c010b2001420110781a0b200241306a24000b4e01017f230041206b2202240020011061200241186a41808001360200200241d4840436021420024100360210200241086a200241106a200010602002280208200228020c1005200241206a24000b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a106d200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b2601017f230041106b220224002002200036020c20012002410c6a41041037200241106a24000b5001027e20002002200129030022027c22033703002000200129030822042002200356ad7c22023703082000200129031022032002200454ad7c2202370310200020012903182002200354ad7c3703180b0e0020002002106a20012002106a0b140020002802002001106a200041046a200110130b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a1070200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000ba20101027f230041306b2202240020002d00202103200041013a0020024020034101710d0020002903004201520440200110060c010b20024100360210200242808001370224200241d484043602202000290308200041106a290300200241206a1014200041186a280200200241206a106a20022002290320370214200241086a200241106a2002280228101520012002280208200228020c10050b200241306a24000b1100200020011013200041206a200110130b8d0201037f230041e0006b220324002003411a6a41f0003a0000200341186a41edc2013b0100200342e9dcad8382add8b9e8003703102003200236020c20032001360208200341386a22014200370300200341306a22044200370300200341286a220542003703002003420037032020034100360240200342808001370254200341d48404360250200341106a200341d0006a1076200341086a200341d0006a10772002200341d0006a1013200320032903503702442003200341406b2003280258101520032802002003280204200341206a1004200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290320370000200341e0006a24000b4801027f230041106b22032400200341086a20024100103c200328020821042000200328020c360204200020043602002004200120021091011a20002002360208200341106a24000b08002000200110340b6201037f230041106b22022400200241086a2001104a41012103024020022802080d00200228020c210420022001104a20022802000d002002280204210120002004360204200041086a2001360200410021030b20002003360200200241106a24000b930101027f20002f01042103200041003a0004410121040240024020034101714504402000280200220028020422032002490d0220012000280200220120021091011a0c010b200120034108763a0000200028020022002802042203200241016b2202490d01200141016a2000280200220120021091011a0b2000200320026b3602042000200120026a360200410021040b20040b0a0020012000410b10370b0d0020012000280200412010370b6001027e200029032021022000200137032020002002200029030022017c22023703002000200029030822032001200256ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b6001037e200029032021012000420137032020002001200029030022027c22013703002000200029030822032001200254ad7c22013703082000200029031022022001200354ad7c2201370310200020002903182001200254ad7c37031820000b5001037f024020012d00080d0020012802002203200128020422044b0d00200320044f044041012102200141013a00080c010b410121022001200341016a3602000b20002003360204200020023602000b5a01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044102746a200020024102746a20014102741092010b200020024102746a20033602000f0b000b2201017f41f405410410732200450440000b200041003b01322000410036020020000b5c01037f230041406a220324002000280204220441346a20042f013241016a2205200028020822002003200141c0001091012201108101200441046a2203200520002002107b200420053b0132200141406b2400200320004102746a0b2201017f41a406410410732200450440000b200041003b01322000410036020020000b860101037f230041206b2203240020012f01322104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41f4056a280200220520043b0130200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000b970201077f230041406a220724002000280204220441346a20042f0132220541016a2208200028020822062007200141c000109101220a108101200441046a200820062002107b0240200641016a22022006490d00200241016a22092002490d00200441f4056a2107200541026a220120094b0440200120026b220520014b0d012005200541016b2205490d01200720094102746a200720024102746a20054102741092010b200720024102746a2003360200200420083b013220012002200120024b1b2103200420064102746a41f8056a2101200028020021000340200220034704402000450d022001280200220620023b013020062004360200200141046a2101200241016a21020c010b0b200a41406b24000f0b000b5e01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044106746a200020024106746a20014106741092010b200020024106746a200341c0001091011a0f0b000b2301017f41c003410410732200450440000b200041003b01be032000410036020020000b6b01037f230041306b2203240020002802082104200028020422002f01be032105200341086a200141241091011a200041046a200541016a22012004200341086a10870120004190036a2205200120042002107b200020013b01be03200341306a2400200520044102746a0b2301017f41f003410410732200450440000b200041003b01be032000410036020020000b880101037f230041206b2203240020012f01be032104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a41c0036a280200220520043b01bc03200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000ba50201077f230041306b2207240020002802082104200028020422062f01be032105200741086a200141241091011a200641046a200541016a22092004200741086a10870120064190036a200920042002107b0240200441016a22022004490d00200241016a220a2002490d00200641c0036a2108200541026a2201200a4b0440200120026b220520014b0d012005200541016b2205490d012008200a4102746a200820024102746a20054102741092010b200820024102746a2003360200200620093b01be0320012002200120024b1b2103200620044102746a41c4036a2101200028020021000340200220034704402000450d022001280200220420023b01bc0320042006360200200141046a2101200241016a21020c010b0b200741306a24000f0b000b5d01017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d012000200441246c6a2000200241246c6a200141246c1092010b2000200241246c6a200341241091011a0f0b000b2201017f419403410410732200450440000b200041003b01322000410036020020000b920101037f230041206b2203240020002802082104200028020422002f01322105200341186a200141186a290000370300200341106a200141106a290000370300200341086a200141086a29000037030020032001290000370300200041346a200541016a220120042003108d01200041046a2205200120042002107b200020013b0132200341206a2400200520044102746a0b2201017f41c403410410732200450440000b200041003b01322000410036020020000b860101037f230041206b2203240020012f01322104200341003a00182003200436021420034100360210024003400240200341086a200341106a107a2003280208450d002002450d022001200328020c22044102746a4194036a280200220520043b0130200520013602000c010b0b2000200136020420002002360200200341206a24000f0b000bcb0201077f230041206b2206240020002802082104200028020422072f01322105200641186a200141186a290000370300200641106a200141106a290000370300200641086a200141086a29000037030020062001290000370300200741346a200541016a220920042006108d01200741046a200920042002107b0240200441016a22012004490d00200141016a220a2001490d0020074194036a2108200541026a2202200a4b0440200220016b220520024b0d012005200541016b2205490d012008200a4102746a200820014102746a20054102741092010b200820014102746a2003360200200720093b01322002200120012002491b2103200720044102746a4198036a2102200028020021000340200120034704402000450d022002280200220420013b013020042007360200200241046a2102200141016a21010c010b0b200641206a24000f0b000b8f0101017f0240200241016a22042002490d00200120044b04402001200120026b2201490d012001200141016b2201490d01200020044105746a200020024105746a20014105741092010b200020024105746a22002003290000370000200041186a200341186a290000370000200041106a200341106a290000370000200041086a200341086a2900003700000f0b000b1800417f41012000200110930122004100481b410020001b0bb40102017f027e230041306b22022400200241808001360224200241d484043602202000027e02400240024002402001200241206a10490e0400010102010b20022002290320370328200241086a200241286a101a20022802080d00200241186a2903002103200229031021042002200241286a104a2002280200450d020b000b42000c010b20022802042101200041106a200337030020002004370308200041186a200136020042010b370300200241306a24000b31000240200120024b200220044b720d002002200220016b2202490d00200020023602042000200120036a3602000f0b000be902010a7f02402002410f4d0440200021030c010b2000410020006b41037122046a210520012106200021030340200320054f450440200320062d00003a0000200641016a2106200341016a21030c010b0b0240200220046b220820024b0d002008417c7121070240200120046a22044103710440200520076a21092004417c71220241046a210141202004410374411871220a6b2203411871210b2003412071210c20022802002106200521030340200320094f0d02200c0d03200320012802002202200b742006200a7672360200200141046a2101200341046a2103200221060c000b000b200520076a210220042101200521030340200220034d0d0120032001280200360200200141046a2101200341046a21030c000b000b200820076b220220084b0d00200520076a2103200420076a21010c010b000b200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000be10501097f02400240024002402002200020016b4b0440200120026a2105200020026a21002002410f4d0d032000417c712106200120026a41016b21034100200041037122046b21070340200020064b0440200041016b220020032d00003a0000200341016b21030c010b0b200220046b220420024b0d012004417c7121020240200520076a22054103710440200620026b2108410020026b21072005417c71220041046b21014120200541037441187122096b2203411871210a2003412071210b20002802002103200621000340200020084d0d02200b0d04200041046b22002003200a742001280200220320097672360200200141046b21010c000b000b200620026b2103410020026b2107200120046a41046b2101200621000340200020034d0d01200041046b22002001280200360200200141046b21010c000b000b200420026b220220044b0d01200620076a2100200520076a21050c030b2002410f4d0d012000410020006b41037122046a210620012103034020002006490440200020032d00003a0000200341016a2103200041016a21000c010b0b200220046b220720024b0d002007417c7121050240200120046a22044103710440200520066a21082004417c71220041046a21014120200441037441187122096b2202411871210a2002412071210b20002802002103200621000340200020084f0d02200b0d03200020012802002202200a74200320097672360200200141046a2101200041046a2100200221030c000b000b200520066a210220042101200621000340200020024f0d0120002001280200360200200141046a2101200041046a21000c000b000b200720056b220220074b0d00200520066a2100200420056a21010c010b000b200020026a21020340200020024f0d02200020012d00003a0000200141016a2101200041016a21000c000b000b200541016b2101200020026b21020340200020024d0d01200041016b220020012d00003a0000200141016b21010c000b000b0b4301037f412021020340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b0b8c040300418080040b990350535032325374727563743a3a5472616e736665720000001c020100000000000000010050535032325374727563743a3a5472616e736665723a3a66726f6d50535032325374727563743a3a5472616e736665723a3a746f50535032325374727563743a3a417070726f76616c0000001c020100000000005800010050535032325374727563743a3a417070726f76616c3a3a6f776e657250535032325374727563743a3a417070726f76616c3a3a7370656e6465724572726f7220647572696e672063616c6c20746f20726563656976657241433a3a526f6c65526564756e64616e7441433a3a4d697373696e67526f6c6541433a3a496e76616c696443616c6c6572503a3a4e6f74506175736564503a3a50617573656401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041db83040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041a084040b290100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "psp22_minter_pauser", + "version": "0.1.0", + "authors": [ + "Oleksandr Mykhailenko " + ] + }, + "V1": { + "spec": { + "constructors": [ + { + "args": [ + { + "name": "total_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + }, + { + "name": "name", + "type": { + "displayName": [ + "Option" + ], + "type": 19 + } + }, + { + "name": "symbol", + "type": { + "displayName": [ + "Option" + ], + "type": 19 + } + }, + { + "name": "decimal", + "type": { + "displayName": [ + "u8" + ], + "type": 6 + } + } + ], + "docs": [], + "name": [ + "new" + ], + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 23 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 23 + } + }, + { + "docs": [], + "indexed": false, + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when a token transfer occurs." + ], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": true, + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when an approval occurs that `spender` is allowed to withdraw", + " up to the amount of `value` tokens from `owner`." + ], + "name": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [ + " Returns the token name." + ], + "mutates": false, + "name": [ + "PSP22Metadata", + "token_name" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22metadata_external", + "TokenNameOutput" + ], + "type": 19 + }, + "selector": "0x3d261bd4" + }, + { + "args": [], + "docs": [ + " Returns the token symbol." + ], + "mutates": false, + "name": [ + "PSP22Metadata", + "token_symbol" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22metadata_external", + "TokenSymbolOutput" + ], + "type": 19 + }, + "selector": "0x34205be5" + }, + { + "args": [], + "docs": [ + " Returns the token decimals." + ], + "mutates": false, + "name": [ + "PSP22Metadata", + "token_decimals" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22metadata_external", + "TokenDecimalsOutput" + ], + "type": 6 + }, + "selector": "0x7271b782" + }, + { + "args": [ + { + "name": "account", + "type": { + "displayName": [ + "psp22mintable_external", + "MintInput1" + ], + "type": 4 + } + }, + { + "name": "amount", + "type": { + "displayName": [ + "psp22mintable_external", + "MintInput2" + ], + "type": 0 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "PSP22Mintable", + "mint" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22mintable_external", + "MintOutput" + ], + "type": 20 + }, + "selector": "0xfc3c75d4" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": [ + "psp22_external", + "DecreaseAllowanceInput1" + ], + "type": 4 + } + }, + { + "name": "delta_value", + "type": { + "displayName": [ + "psp22_external", + "DecreaseAllowanceInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Atomically decreases the allowance granted to `spender` by the caller.", + "", + " An `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " by owner for `spender`.", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": [ + "PSP22", + "decrease_allowance" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "DecreaseAllowanceOutput" + ], + "type": 20 + }, + "selector": "0xfecb57d5" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": [ + "psp22_external", + "TransferInput1" + ], + "type": 4 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "psp22_external", + "TransferInput2" + ], + "type": 0 + } + }, + { + "name": "data", + "type": { + "displayName": [ + "psp22_external", + "TransferInput3" + ], + "type": 22 + } + } + ], + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`", + " with additional `data` in unspecified format.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account Balance.", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": [ + "PSP22", + "transfer" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "TransferOutput" + ], + "type": 20 + }, + "selector": "0xdb20f9f5" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": [ + "psp22_external", + "ApproveInput1" + ], + "type": 4 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "psp22_external", + "ApproveInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with `value`.", + "", + " An `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": [ + "PSP22", + "approve" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "ApproveOutput" + ], + "type": 20 + }, + "selector": "0xb20f1bbd" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "psp22_external", + "AllowanceInput1" + ], + "type": 4 + } + }, + { + "name": "spender", + "type": { + "displayName": [ + "psp22_external", + "AllowanceInput2" + ], + "type": 4 + } + } + ], + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set `0`." + ], + "mutates": false, + "name": [ + "PSP22", + "allowance" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "AllowanceOutput" + ], + "type": 0 + }, + "selector": "0x4d47d921" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": [ + "psp22_external", + "TransferFromInput1" + ], + "type": 4 + } + }, + { + "name": "to", + "type": { + "displayName": [ + "psp22_external", + "TransferFromInput2" + ], + "type": 4 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "psp22_external", + "TransferFromInput3" + ], + "type": 0 + } + }, + { + "name": "data", + "type": { + "displayName": [ + "psp22_external", + "TransferFromInput4" + ], + "type": 22 + } + } + ], + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`", + " with additional `data` in unspecified format.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` and `Approval` events are emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the the account Balance of `from`.", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": [ + "PSP22", + "transfer_from" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "TransferFromOutput" + ], + "type": 20 + }, + "selector": "0x54b3c76e" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "psp22_external", + "BalanceOfInput1" + ], + "type": 4 + } + } + ], + "docs": [ + " Returns the account Balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "mutates": false, + "name": [ + "PSP22", + "balance_of" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "BalanceOfOutput" + ], + "type": 0 + }, + "selector": "0x6568382f" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": [ + "psp22_external", + "IncreaseAllowanceInput1" + ], + "type": 4 + } + }, + { + "name": "delta_value", + "type": { + "displayName": [ + "psp22_external", + "IncreaseAllowanceInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Atomically increases the allowance granted to `spender` by the caller.", + "", + " An `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `ZeroSenderAddress` error if sender's address is zero.", + "", + " Returns `ZeroRecipientAddress` error if recipient's address is zero." + ], + "mutates": true, + "name": [ + "PSP22", + "increase_allowance" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "IncreaseAllowanceOutput" + ], + "type": 20 + }, + "selector": "0x96d6b57a" + }, + { + "args": [], + "docs": [ + " Returns the total token supply." + ], + "mutates": false, + "name": [ + "PSP22", + "total_supply" + ], + "payable": false, + "returnType": { + "displayName": [ + "psp22_external", + "TotalSupplyOutput" + ], + "type": 0 + }, + "selector": "0x162df8c2" + }, + { + "args": [], + "docs": [], + "mutates": true, + "name": [ + "pause" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 20 + }, + "selector": "0x81e0c604" + }, + { + "args": [], + "docs": [], + "mutates": true, + "name": [ + "unpause" + ], + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 20 + }, + "selector": "0x67616649" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "supply" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "len": 4294967295, + "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "balances" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "len": 4294967295, + "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 8 + } + }, + "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "allowances" + } + ] + } + }, + "name": "psp22" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0500000002000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0600000002000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "name": null + } + ] + }, + "1": { + "fields": [] + } + } + } + }, + "name": "name" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x0600000002000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0700000002000000000000000000000000000000000000000000000000000000", + "ty": 11 + } + }, + "name": null + } + ] + }, + "1": { + "fields": [] + } + } + } + }, + "name": "symbol" + }, + { + "layout": { + "cell": { + "key": "0x0700000002000000000000000000000000000000000000000000000000000000", + "ty": 6 + } + }, + "name": "decimals" + } + ] + } + }, + "name": "psp22_metadata" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0800000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "name": "paused" + } + ] + } + }, + "name": "pausable" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0900000002000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0a00000002000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0a00000003000000000000000000000000000000000000000000000000000000", + "ty": 13 + } + }, + "len": 4294967295, + "offset": "0x0b00000002000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0b00000003000000000000000000000000000000000000000000000000000000", + "ty": 14 + } + }, + "offset": "0x0a00000003000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "admin_roles" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0b00000003000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0c00000003000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0c00000004000000000000000000000000000000000000000000000000000000", + "ty": 15 + } + }, + "len": 4294967295, + "offset": "0x0d00000003000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0d00000004000000000000000000000000000000000000000000000000000000", + "ty": 17 + } + }, + "offset": "0x0c00000004000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "members" + } + ] + } + }, + "name": "access_control" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 2, + "typeName": "Index" + }, + { + "name": "len", + "type": 2, + "typeName": "u32" + }, + { + "name": "len_entries", + "type": 2, + "typeName": "u32" + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "Header" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 4, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 4 + } + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + } + }, + { + "id": 4, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 5, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + } + }, + { + "id": 5, + "type": { + "def": { + "array": { + "len": 32, + "type": 6 + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 7, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 2, + "typeName": "Index" + }, + { + "name": "prev", + "type": 2, + "typeName": "Index" + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "VacantEntry" + ] + } + }, + { + "id": 8, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 0, + "typeName": "V" + }, + { + "name": "key_index", + "type": 2, + "typeName": "KeyIndex" + } + ] + } + }, + "params": [ + { + "name": "V", + "type": 0 + } + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 10, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 10 + } + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [ + 4, + 4 + ] + } + } + }, + { + "id": 11, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 12, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 13, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 2, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 2, + "typeName": "V" + }, + { + "name": "key_index", + "type": 2, + "typeName": "KeyIndex" + } + ] + } + }, + "params": [ + { + "name": "V", + "type": 2 + } + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7, + "typeName": "VacantEntry" + } + ], + "index": 0, + "name": "Vacant" + }, + { + "fields": [ + { + "type": 16, + "typeName": "T" + } + ], + "index": 1, + "name": "Occupied" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 16 + } + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "tuple": [ + 2, + 4 + ] + } + } + }, + { + "id": 17, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 18, + "typeName": "V" + }, + { + "name": "key_index", + "type": 2, + "typeName": "KeyIndex" + } + ] + } + }, + "params": [ + { + "name": "V", + "type": 18 + } + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 11 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 11 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 21 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 21 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 11, + "typeName": "String" + } + ], + "index": 0, + "name": "Custom" + }, + { + "index": 1, + "name": "InsufficientBalance" + }, + { + "index": 2, + "name": "InsufficientAllowance" + }, + { + "index": 3, + "name": "ZeroRecipientAddress" + }, + { + "index": 4, + "name": "ZeroSenderAddress" + }, + { + "fields": [ + { + "type": 11, + "typeName": "String" + } + ], + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + } + }, + "path": [ + "contracts", + "traits", + "errors", + "psp22", + "PSP22Error" + ] + } + }, + { + "id": 22, + "type": { + "def": { + "sequence": { + "type": 6 + } + } + } + }, + { + "id": 23, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 4 + } + ], + "path": [ + "Option" + ] + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/ink/v2/erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v2/erc20.contract.json new file mode 100644 index 0000000..49ef6f3 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v2/erc20.contract.json @@ -0,0 +1,630 @@ +{ + "source": { + "hash": "0x64d9597e882480b2e2e593eccc313cdb3cdd2aece25e6f10bae98f3efb4cdea0", + "language": "ink! 3.0.0-rc6", + "compiler": "rustc 1.58.0-nightly", + "wasm": "0x0061736d01000000016d1060037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060000060017f017e60067f7f7f7f7f7f0060037e7e7f0060017f017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60057f7f7f7e7e017f028a020b057365616c30127365616c5f64656275675f6d6573736167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30127365616c5f6465706f7369745f6576656e740004057365616c30107365616c5f7365745f73746f726167650003057365616c30107365616c5f6765745f73746f726167650000057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e0003057365616c30147365616c5f686173685f626c616b65325f3235360003057365616c300b7365616c5f63616c6c65720002057365616c30167365616c5f76616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100365640004020203030302040302020201010204040303020402060504020202020a0305030100080203050302050201030502030205070507040f0303060100000301020107020101080d010c04000309020b04010103030001010006060601010e0101010101040501700118180608017f01418080040b071102066465706c6f79003d0463616c6c003f091d010041010b171718694f2c5b5c6d4e60676a6b4f2a2a47494b2a6c2a500ab1a40164c40201087f2002410f4d047f2000052000410020006b41037122056a210620012104200021030340200320064f450440200320042d00003a0000200441016a2104200341016a21030c010b0b200220056b2202417c7121070240200120056a22054103710440200620076a21082005417c71220341046a2101200541037422044118712109410020046b411871210a20032802002104200621030340200320084f0d022003200420097620012802002204200a7472360200200141046a2101200341046a21030c000b000b200620076a210420052101200621030340200320044f0d0120032001280200360200200141046a2101200341046a21030c000b000b20024103712102200520076a2101200620076a0b2103200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000bf00101037f230041e0006b22042400200441186a20033602002004200236021420042001360210200441386a22014200370300200441306a22054200370300200441286a220642003703002004420037032020044100360240200442808001370254200441b6b304360250200441106a200441d0006a100c2002200441d0006a100d2003200441d0006a100d20042004290350370244200441086a200441406b2004280258100e2004280208200428020c200441206a1007200041186a2001290300370000200041106a2005290300370000200041086a200629030037000020002004290320370000200441e0006a24000b0d0020012000280200412010290b0a0020012000412010290b5e01027f200141086a220328020021042003410036020020012802042103200141ccb004360204200220044b044041e7a904412341fcaa041030000b2001200420026b3602082001200220036a36020420002002360204200020033602000bd70101037f230041d0006b220324002003200236020c20032001360208200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341b6b304360240200341086a200341406b100c2002200341406b100d200320032903403702342003200341306a2003280248100e20032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b2201017f230041206b22032400200320002001100f200220031011200341206a24000b4c01017f230041206b22022400200241186a41808001360200200241b6b30436021420024100360210200241086a200241106a2000101320012002280208200228020c1003200241206a24000b2401017f230041206b220424002004200020012002100b200320041011200441206a24000b6102017f017e230041206b220324002001290204210420034100360218200320043703102002290300200241086a290300200341106a102820012003290310370204200341086a20012003280218100e20002003290308370300200341206a24000bcc0102027f057e230041306b220224000240200029030022084202510d0020012900182104200129001021052001290008210620012900002107200041186a22012d0000200141013a00004101710d0020084201520440200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200241106a10010c010b200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200041086a200241106a10110b200241306a24000bc70102017f027e230041e0006b220224002002200136020c200241106a2001101620022d00104101460440200220022d00113a0037200241cc006a4102360200200241dc006a41013602002002420237023c200241a48204360238200241023602542002200241d0006a3602482002200241376a36025820022002410c6a360250200241386a41f482041019000b200241186a2903002103200241206a2903002104200041106a200241286a2903003703002000200437030820002003370300200241e0006a24000be40102017f027e230041406a22022400200241808001360224200241b6b30436022002400240024002402001200241206a10360e0402010100010b200041003a0000200041086a42003703000c020b2002413c6a4100360200200241ccb0043602382002420137022c200241a8b104360228200241286a41f0b1041019000b20022002290320370328200241086a200241286a10272002290308a70440200041013b01000c010b200241186a290300210320022903102104200041003a0000200041106a2004370300200041086a4201370300200041186a20033703000b200241406b24000bd90401017f230041106b22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b4101210020012802184194ae0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841b08c044101200128021c28020c1100000d0d200128021841f4b2044105200128021c28020c110000450d010c0d0b200128021841ae8c044102200128021c28020c1100000d0c200241013a000f200241086a2002410f6a36020020022001290218370300200241f4b204410510620d0c200241ac8c04410210620d0c0b200128021841b18c044101200128021c28020c11000021000c0b0b20012802184187ae04410d2001411c6a28020028020c11000021000c0a0b200128021841f9ad04410e2001411c6a28020028020c11000021000c090b200128021841eead04410b2001411c6a28020028020c11000021000c080b200128021841d5ad0441192001411c6a28020028020c11000021000c070b200128021841c7ad04410e2001411c6a28020028020c11000021000c060b200128021841b3ad0441142001411c6a28020028020c11000021000c050b200128021841a7ad04410c2001411c6a28020028020c11000021000c040b2001280218419cad04410b2001411c6a28020028020c11000021000c030b20012802184195ad0441072001411c6a28020028020c11000021000c020b20012802184186ad04410f2001411c6a28020028020c11000021000c010b200128021841f4ac0441122001411c6a28020028020c11000021000b200241106a240020000b810201047f230041406a220224002000280200210441002100200241346a4100360200200241ccb00436023020024201370224200241a0af04360220027f4101200141186a28020022052001411c6a2802002201200241206a105f0d001a024003402002410436021c20024104360214200241ccaf043602102002410436020c200241acaf043602082002410336023c200241033602342002410336022c200241033602242002200020046a22033602202002200341036a3602382002200341026a3602302002200341016a3602282002200241206a36021820052001200241086a105f0d01200041046a22004120470d000b41000c010b41010b200241406b24000be70301077f230041106b220224002002200136020c200220003602082002419c8a04360204200241ccb004360200230041406a220324002003200236020c200341346a41013602002003420237022420034190ab043602202003410836023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020021072005280204220841037422000440200741046a21020340200228020020016a2101200241086a2102200041086b22000d000b0b024002400240024002400240200541146a280200450440200121000c010b02402008450d0020072802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d010b20042002104d20042802002200450d0120042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a10450d02200441206a24000c030b104c000b000b419887044133200441086a41f4850441b888041044000b2003280210210020032802182101024041b4b3042d000045044041b5b3042d00004101710d010b200020011000410947044041b4b30441013a00000b41b5b30441013a00000b000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101b20042902142105200441003602282004200537032020012002200441206a101c2003200441206a100d20042004290320370214200441086a200441106a2004280228100e200441206a2004280208200428020c101d2000200441206a101e200441406b24000b3300200120034b0440200120034194ac04102b000b20004100360200200041086a200320016b3602002000200120026a3602040b100020012002102420022000200110290bb50101077f230041206b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341186a22074200370300200341106a22084200370300200341086a22094200370300200342003703002001200220031007200420072903003700002005200829030037000020062009290300370000200020032903003700000c010b20002002200120024184830410210b200341206a24000b5f01037f230041206b22022400200241086a20002802042203200041086a28020020002802002204102320024100360218200220022903083703102001200241106a100d200020033602042000200420022802186a360200200241206a24000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101b20042902142105200441003602282004200537032020012002200441206a101c2003200441206a102020042004290320370214200441086a200441106a2004280228100e200441206a2004280208200428020c101d2000200441206a101e200441406b24000b230020002d000041014704402001410010330f0b200141011033200041016a2001100d0b7b0020012003460440200020022001100a1a0f0b230041306b2200240020002003360204200020013602002000411c6a41023602002000412c6a41043602002000420337020c200041ec9104360208200041043602242000200041206a360218200020003602282000200041046a360220200041086a20041019000b5f01037f230041206b22012400200141086a20002802042202200041086a28020020002802002203102320014100360218200120012903083703104103200141106a1024200020023602042000200320012802186a360200200141206a24000b2900200220034904402003200241a48304102b000b2000200220036b3602042000200120036a3602000b7401017f230041106b2202240002402000413f4d04402001200041027410330c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210290c010b200041ffffffff034d044020004102744102722001103b0c010b20014103103320002001103b0b200241106a24000bae0102017f027e230041406a22022400200241186a200110260240024020022d001841014704402002200110272002290300a7450d010b200042013703000c010b200241106a2903002103200229030821042000200229001937000820004200370300200041286a2004370300200041306a2003370300200041206a200241316a290000370000200041186a200241296a290000370000200041106a200241216a2900003700000b200241406b24000bb50202037f017e230041306b22022400200241086a41047221042000027f0240034020022001102f20022d00004101710d01200320046a20022d00013a0000200341016a22034120470d000b200041086a200241136a2f00003b00002000410a6a200241156a2d00003a00002000410f6a2002411a6a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241216a2f00003b0000200041186a200241236a2d00003a0000200220022f010c3b0104200220022d000e3a0006200241166a28010021012002411d6a2800002103200241246a2902002105200228000f2104200041036a20022d00063a0000200020022f01043b0001200041196a2005370000200041126a20033600002000410b6a2001360000200041046a200436000041000c010b41010b3a0000200241306a24000b6402027f037e230041106b22022400200241086a22034200370300200242003703000240200120024110102d45044020032903002105200229030021060c010b420121040b2000200637030820002004370300200041106a2005370300200241106a24000b2a01017f230041106b2203240020032001370308200320003703002002200341101029200341106a24000b5201027f230041106b22032400200341086a20002802082204200220046a22042000280200200028020441e4ab0410572003280208200328020c2001200241f4ab04102120002004360208200341106a24000b0300010b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341c89004360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a20021019000bc00101037f230041306b220224004183af042103411921040240024002400240024020002d000041016b0e0400010203040b41e7ae042103411c21040c030b41d1ae042103411621040c020b41bdae042103411421040c010b41a4ae0421030b2002411c6a41013602002002200436022c20022003360228200241063602242002420137020c2002419cae04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a105f200241306a24000b3d01027f2000280204220320024922044504402001200220002802002201200241e4b20410212000200320026b3602042000200120026a3602000b20040b910102027f017e230041106b220124002001420437030841042102027f02400240034020012000102f20012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d0141ccb004411b41e8b0041030000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a4101102d2201047f41000520022d000f0b3a0001200020013a0000200241106a24000b4601017f230041206b22032400200341146a4100360200200341ccb004360210200342013702042003200136021c200320003602182003200341186a360200200320021019000bbe0502047f027e230041a0016b22012400200141086a200041e000100a1a200141106a21030240200129030822064201520440200141f0006a220241808001360200200141b6b30436026c20014100360268200141e8006a102220014198016a220020022802003602002001200129036837039001200141e8006a20014190016a41c483041032200141e8006a41d0830441152003101f20002002280200360200200120012903683703900120014190016a41e583044113200341216a101f0c010b200141f0006a220241808001360200200141b6b30436026c20014100360268200141e8006a102220014198016a220020022802003602002001200129036837039001200141e8006a20014190016a418884041032200141e8006a4194840441162003101a20002002280200360200200120012903683703900120014190016a41aa84044118200141306a101a0b20014188016a2000280200360200200120012903900137038001230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220537031020004100360210200041086a200041106a2005a7100e20002903082105200141e8006a220241086a2004280200360200200220002903103702002002200537020c200041206a240020014198016a200141f0006a2802003602002001200129036837039001200141f8006a2802002100200128027420012902940121052001410036027020012005370368027f2006500440200141e8006a410010332003200141e8006a1020200341216a200141e8006a1020200141d8006a0c010b200141e8006a410110332003200141e8006a100d200141306a200141e8006a100d200141d0006a0b2203290300200341086a290300200141e8006a10282001200129036837029401200120014190016a2001280270100e2000200128020020012802041002200141a0016a24000bb40102027f017e230041406a22032400200341106a2001280200200141046a280200200141086a2204280200101b20032902142105200341003602282003200537032020022802002002280204200341206a101c200341206a2002280208410f102920032003290320370214200341086a200341106a2003280228100e200341206a2003280208200328020c101d2001200341206a101e200041086a200428020036020020002001290200370200200341406b24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b200220034184ac041056000b4601017f230041206b22012400200141186a41808001360200200141b6b30436021420014100360210200141086a200141106a2000101341002001280208200128020c1037000baa0102047f017e230041206b22032400200341186a41808001360200200341b6b30436021420034100360210200341086a230041206b22022400200341106a220429020421062002410036021820022006370310200241106a200141ff0171410247047f200241106a4101103320010541000b103320042002290310370204200241086a20042002280218100e2002290308370300200241206a240020002003280208200328020c1037000b5401017f230041106b220224002002200128020436020c200020012802002002410c6a100421002001200228020c1039410c21012000410b4d0440200041027441fcb2046a28020021010b200241106a240020010b0b002000200120021006000b6001017f230041106b2201240020004200370000200041186a4200370000200041106a4200370000200041086a420037000020014120360204200120003602002001412036020c20002001410c6a10082001200128020c1039200141106a24000b3701017f230041106b22022400200241086a410020012000280200200028020441e4ac04105720002002290308370200200241106a24000b4c01017f230041206b220324002000450440410120021035000b200341186a4200370300200341106a4200370300200341086a420037030020034200370300200120031014410020021035000b2601017f230041106b220224002002200036020c20012002410c6a41041029200241106a24000b2e01017f230041e0006b22012400200141086a200041d800100a1a2001420037030020011031200141e0006a24000b880502027f027e230041e0026b22002400200041808001360224200041b6b304360220200041206a103e200020002903203703a801027f0240027f4101200041a8016a102e4281feffffff1f834280b6baede90b520d001a200041086a200041a8016a1027200041186a29030021022000290310210320002802084100470b450440200041e1016a4200370000200041d9016a4200370000200041d1016a4200370000200041c9016a4200370000200041f8016a420037030020004180026a420037030020004188026a420037030020004198026a4200370300200041a0026a4200370300200041a8026a4200370300200042013703f0012000420237039002200041013a00c801200042023703a801200020023703b802200020033703b002200041c0026a1038200041f0016a200041c0026a200041b0026a101020002903a8014202510d01200042013703a801200041b0016a0c020b200041033a00c002200041bc016a4101360200200042013702ac01200041e884043602a801200041053602242000200041206a3602b8012000200041c0026a360220200041a8016a41a085041019000b200042013703a801200041b0016a0b2201200337030020012002370308200041c0016a220141003a0000200041f0006a2002370300200041da006a200041d8026a290300370100200041d2006a200041d0026a290300370100200041ca006a200041c8026a290300370100200041c2006a20002903c00237010020002003370368200041013a0041200041003a0020200041206a103c200041206a200041a8016a418801100a1a20014200370300200041b8016a4200370300200041b0016a4200370300200042003703a801200041206a200041a8016a1014200041e0026a24000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10052000200128020c1039200141106a24000bb32002077f077e230041e0046b2200240002400240230041206b22012400200141086a220242003703002001420037030020014110360214200120013602102001411036021c20012001411c6a1009200141106a200128021c10392002290300210720012903002108200141206a2400410541042007200884501b41ff017122014105460440200041808001360264200041b6b304360260200041e0006a103e200020002903603703a801200041a8016a102e22074201832208a70d01200742807e8342002008501b22094280feffffff1f832207422088a721032007421888a721022007421088a721044106210102400240024002400240024002402009a741087641ff01712206410b6b0e050509090901000b0240200641e8006b0e03040902000b2006418401460d02200641db0147200441ff017141e3004772200241ff017141f50047720d0841002102200341a801460d050c080b200441ff017141f50047200241ff017141da004772200341d60047720d0720004188026a200041a8016a10264101210220002d0088024101460d06200041c0016a20004192026a290100370300200041c8016a2000419a026a290100370300200041cf016a200041a1026a2900003700002000200029018a023703b80120002d00890221050c040b200441ff0171200241ff017141164772200341de0047720d06200041c0036a200041a8016a102620002d00c0034101460d0520004180046a200041a8016a102620002d0080044101460d05200041aa026a200028008404360000200041d8006a200041a0046a2d00003a000020004190026a200041ca036a29010037030020004198026a200041d2036a2901003703002000419f026a200041d9036a29000037000020002000280081043600a702200020002901c20337038802200020004198046a29030037035020004190046a290300210820004188046a290300210720002d00c1032105200041b8016a20004188026a4126100a1a410221020c030b200441ff017141a10147200241ff017141dd004772200341a10147720d0520004188026a200041a8016a10252000290388024201510d042000419e046a200041a8026a290300220737010020004196046a200041a0026a2903002208370100200041ce036a20004198026a290300220a370100200041d6036a2008370100200041de036a2007370100200041ee016a200a370000200041f6016a2008370000200041fe016a2007370000200020002903900222073701c603200020073700e601200041b8026a2903002108200041b0026a2903002107200041b8016a200041e0016a4126100a1a410321020c020b200441ff0171411247200241ff017141e6004772200341a00147720d0420004188026a200041a8016a10252000290388024201510d032000419e046a200041a8026a290300220737010020004196046a200041a0026a2903002208370100200041ce036a20004198026a290300220a370100200041d6036a2008370100200041de036a2007370100200041ee016a200a370000200041f6016a2008370000200041fe016a2007370000200020002903900222073701c603200020073700e601200041b8026a2903002108200041b0026a2903002107200041b8016a200041e0016a4126100a1a410421020c010b200441ff0171413947200241ff017141ef0047722003411847720d03200041b8016a200041a8016a102620002d00b8014101460d02200041e0016a200041a8016a102620002d00e0014101460d02200041386a200041a8016a10272000290338a70d02200041c8006a290300210a2000290340210b200041a8036a2201200041d1016a290000370300200041a0036a2205200041c9016a29000037030020004198036a2202200041c1016a290000370300200041d8006a200041f9016a2d00003a0000200020002900b901370390032000200041f1016a2900003703502000200041fa016a2801003602b0012000200041fd016a2800003600b301200041e9016a290000210820002900e10121072000419e026a200529030022093701002000418e046a2002290300220c37010020004196046a20093701002000419e046a2001290300220d370100200041de036a200d370000200041d6036a2009370000200041ce036a200c3700002000200029039003220937018604200020093700c603200041b8016a200041c0036a4126100a1a410521020b20004180016a200041b8016a4126100a1a200041f8006a200041d8006a2d00003a000020002000290350370370200020002802b001360268200020002800b30136006b200221010c020b200020013a008802230041206b22012400200141146a4101360200200142013702042001419cae043602002001410536021c200120004188026a3602182001200141186a360210200141a085041019000b410621010b024020014106470440200041b8016a20004180016a4126100a1a200041bc036a200028006b360000200041b8036a2203200041f8006a2d00003a0000200020002802683600b903200041d8006a220220032903003703002000200029037022093703b00320002009370350200041e0016a200041b8016a4126100a1a024002400240024002400240200141016b0e050403020100050b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d00241012101200041013a00a8022000420237038802200042023703f00220004198016a200041fe016a29000037030020004190016a200041f6016a29000037030020004188016a200041ee016a290000370300200020002900e60137038001200020083703c803200020073703c003200041d8036a2002290300370300200020002903503703d00320004180046a1038200041286a20004188026a20004180016a20004180046a1040024020002903282208200b542202200041306a2903002207200a542007200a511b0d0020004188026a20004180016a200041c0036a200b200a104141ff017122014102470d0020002008200b7d3703900320002007200a7d2002ad7d37039803200041f0026a20004180016a20004180046a20004190036a1012410221010b200141024620004188026a2001103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200041a8036a2201200041fe016a290000370300200041a0036a2202200041f6016a29000037030020004198036a2203200041ee016a290000370300200020002900e60137039003200020083703b803200020073703b00320004180016a1038200041f0026a20004180016a20004190036a200041b0036a1012200041d8036a20004198016a290300370300200041d0036a20004190016a290300370300200041c8036a20004188016a290300370300200041e8036a2003290300370300200041f0036a2002290300370300200041f8036a200129030037030020002000290380013703c00320002000290390033703e00320004188046a200041c0036a41c000100a1a200041d0046a2008370300200041c8046a2007370300200042013703800420004180046a1031410120004188026a4102103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200041d8036a200041fe016a290000370300200041d0036a200041f6016a290000370300200041c8036a200041ee016a290000370300200020002900e6013703c00320004180046a103820004188026a20004180046a200041c0036a20072008104141ff0171220141024620004188026a2001103a000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f00220004180046a200041b8016a4126100a1a20004189016a200041c0016a29010037000020004191016a200041c8016a29010037000020004198016a200041cf016a290000370000200020053a008001200020002901b80137008101200041cf036a2008370000200041df036a20022d00003a0000200020073700c7032000200041a2046a2800003600c3032000200028009f043602c003200020002903503700d703200041186a20004188026a20004180016a200041c0036a10402000200041206a29030037039803200020002903183703900320004190036a1034000b200041c1026a4200370000200041b9026a4200370000200041b1026a4200370000200041a9026a4200370000200041d8026a4200370300200041e0026a4200370300200041e8026a4200370300200041f8026a420037030020004180036a420037030020004188036a4200370300200042013703d002200041013a00a8022000420237038802200042023703f002200020053a00800420004189046a200041c0016a29010037000020004191046a200041c8016a29010037000020004198046a200041cf016a290000370000200020002901b80137008104200041086a20004188026a20004180046a10422000200041106a2903003703c803200020002903083703c003200041c0036a1034000b200041d8036a22014200370300200041d0036a22024200370300200041c8036a4200370300200042003703c00320004180800136028404200041b6b304360280040240024002400240200041c0036a20004180046a10360e0401000002000b2000419c026a4100360200200041ccb004360298022000420137028c02200041a8b1043602880220004188026a41f0b1041019000b200041a8026a2001290300370300200041a0026a200229030037030020004198026a200041c8036a290300370300200020002903c00337039002200042013703880220004180046a20004190026a101620002d0080044101460d0320004188046a2903004200520d0141d88104411741f081041043000b41808004411e41d880041043000b20004198046a2903002107200020004190046a29030037038004200020073703880420004180046a1034000b200041033a00c0032000419c026a41013602002000420137028c02200041d48504360288022000410536028404200020004180046a360298022000200041c0036a3602800420004188026a41a085041019000b200020002d0081043a00800141e88004412720004180016a4194830441c881041044000b5d02017f017e230041406a22042400200441206a200141e8006a20022003100b200441086a200441206a1015200429031021052000200441186a2903004200200428020822011b37030820002005420020011b370300200441406b24000bda0202037f037e23004180016b22052400200541186a200020011042200529031822092003542207200541206a290300220820045420042008511b4504402005200920037d3703282005200820047d2007ad7d370330200041c8006a22062001200541286a1010200541086a200020021042200541106a290300210820052005290308220920037c220a37032820052009200a56ad200420087c7c37033020062002200541286a1010200541f8006a2004370300200541c1006a200141186a290000370000200541396a200141106a290000370000200541316a200141086a290000370000200541ca006a2002290000370100200541d2006a200241086a290000370100200541da006a200241106a290000370100200541e2006a200241186a29000037010020052003370370200541013a0049200541013a002820052001290000370029200541286a103c410221060b20054180016a240020060b5b02017f017e230041406a22032400200341206a200141c8006a2002100f200341086a200341206a1015200329031021042000200341186a2903004200200328020822011b37030820002004420020011b370300200341406b24000b6001017f230041106b220324002003200136020c20032000360208230041206b22002400200041146a4101360200200042013702042000419cae043602002000410636021c2000200341086a3602182000200041186a360210200020021019000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41073602002005420237021c200541fcb004360218200541063602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041019000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41dc8504200241086a1046200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a105d20032003290310370320200341086a20042000410c6a105d20032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002104841000b2801017f20002002104a2000280208220320002802006a20012002100a1a2000200220036a3602080b960201027f230041106b22022400200028020021000240200141ff004d044020002802082203200028020446044020004101104a200028020821030b2000200341016a360208200028020020036a20013a00000c010b2002410036020c20002002410c6a027f20014180104f044020014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c020b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c010b20022001413f71418001723a000d2002200141067641c001723a000c41020b10480b200241106a240041000ba70301077f230041106b2205240002400240200120002802042207200028020822026b4b0440200120026a22012002490d022000280200410020071b210841002102230041106b220624002005027f20074101742204200120012004491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001104d20062802082103200628020c0c030b200141acb304280200220420016a22022004490d021a41b0b3042802002002490440200141ffff036a220341107640002202417f46200241ffff0371200247720d022002411074220420034180807c716a22022004490d024100210341b0b30420023602002001200120046a22022004490d031a0b41acb304200236020020012004450d021a200420082007100a210320010c020b20062001104d2006280200210320062802040c010b4100210320010b2102200304402005200336020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d00000b104c000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1045200241206a24000b0f0041f586044111418887041030000ba90101027f027f41012001450d001a410041acb304280200220220016a22032002490d001a024041b0b3042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141b0b30420033602004100200120026a22032002490d021a0b41acb304200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000bc00202047f027e20003502002106230041306b2203240041272100024020064290ce00540440200621070c010b0340200341096a20006a220241046b200620064290ce008022074290ce007e7da7220441ffff037141e4006e220541017441b48d046a2f00003b0000200241026b2004200541e4006c6b41ffff037141017441b48d046a2f00003b0000200041046b2100200642ffc1d72f56200721060d000b0b2007a7220241e3004a0440200041026b2200200341096a6a2007a72202200241ffff037141e4006e220241e4006c6b41ffff037141017441b48d046a2f00003b00000b02402002410a4e0440200041026b2200200341096a6a200241017441b48d046a2f00003b00000c010b200041016b2200200341096a6a200241306a3a00000b200141ccb0044100200341096a20006a412720006b1051200341306a24000b0d00429e9fe3ccf2a3c7c8fb000bb30301077f230041106b2206240020002802002205410171220820046a210702402005410471450440410021010c010b2001200120026a105220076a21070b412b418080c40020081b210802402000280208410147044041012105200020082001200210530d012000280218200320042000411c6a28020028020c11000021050c010b024020072000410c6a280200220949044020002d00004108710d014101210520062000200920076b4101105420062802002207418080c400460d0220062802042109200020082001200210530d022000280218200320042000411c6a28020028020c1100000d02200720092000105521050c020b41012105200020082001200210530d012000280218200320042000411c6a28020028020c11000021050c010b2000280204210a2000413036020420002d0020210b41012105200041013a0020200020082001200210530d00200641086a2000200920076b4101105420062802082201418080c400460d00200628020c21022000280218200320042000411c6a28020028020c1100000d0020012002200010550d002000200b3a00202000200a360204410021050b200641106a240020050b2b01017f200020014704400340200220002c000041bf7f4a6a2102200041016a22002001470d000b0b20020b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000b9b0101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03000100020b41002105200221040c010b20024101762104200241016a41017621050b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341808b04360208200341043602242003200341206a360218200320033602282003200341046a360220200341086a20021019000bd2010002400240200120024d0440200220044d0d01230041306b2200240020002004360204200020023602002000411c6a41023602002000412c6a41043602002000420237020c200041e890043602080c020b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41043602002000420237020c2000419c91043602080c010b2000200220016b3602042000200120036a3602000f0b200041043602242000200041206a3602182000200041046a36022820002000360220200041086a20051019000b5301047f200141086a280200210220012802042103200141046a10592204418080c4004704402001200128020420012802002205200220036b6a6a20012802086b3602000b20002004360204200020053602000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1058200228021c418080c400470d010c020b0b200241106a200241206a10582002280214418080c400460d00200241086a200228021020032004105a200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a105222054b044020022001200020056b410010544101210020022802002205418080c400460d01200228020421062001280218200320042001411c6a28020028020c1100000d01200520062001105521000c010b2001280218200320042001411c6a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141a48d04102b000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1046200341206a24000b6c01027f230041206b220224004101210302402000200110610d002002411c6a4100360200200241ccb0043602182002420137020c200241cc8804360208200141186a2802002001411c6a280200200241086a105f0d00200041046a2001106121030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d0120002001104f0c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a105e2001419caf0441022002280208200228020c10510c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a105e2001419caf0441022002280200200228020410510b20024190016a24000bc306010c7f230041406a22032400027f024020020440200341386a210d2000280204210b2000280200210c2000280208210a0340200a2d00000440200c41918b044104200b28020c1100000d030b2003410a3602382003428a808080103703302003200236022c4100210020034100360228200320023602242003200136022041012107200341086a2001220420022205027f03400240200020046a2106200320076a41376a2d000021070240024002400240200541084f0440200641036a417c7120066b2200450440410021040c020b200341186a410020052000200020054b1b22042006200541f48f041057200328021c2208450d0120032802182109410021000340200020096a2d00002007460d03200041016a22002008470d000b0c010b2005450d04410021000340200020066a2d00002007460d02200041016a22002005470d000b0c040b02402004200541086b22084b0d00200741818284086c21000340200420066a2209280200200073220e417f73200e41818284086b71200941046a2802002000732209417f73200941818284086b7172418081828478710d01200441086a220420084d0d000b0b200420054b0d0120042005460d03200420056b2105200420066a21064100210003402007200020066a2d00004704402005200041016a22006a0d010c050b0b200020046a21000b2003200020032802286a41016a2200360228200020032802342204490d01200020032802244b0d0120032802202105200341106a41002004200d4104418094041057024020032802142004460440027f2005200020046b22086a210020032802102105034041002004450d011a200441016b210420052d0000210620002d00002107200041016a2100200541016a210520062007460d000b200720066b0b450d010b200328022821000c020b200a41013a0000200841016a0c040b2004200541849004102b000b200328022c22042000490d00200420032802244b0d00200420006b210520032802342107200328022021040c010b0b200a41003a000020020b2200418c8c041063200c2003280208200328020c200b28020c1100000d022003200120022000419c8c04106420032802002101200328020422020d000b0b41000c010b41010b200341406b24000b4e01027f230041106b22052400200541086a200320012002105a20052802082206450440200120024100200320041065000b200528020c21012000200636020020002001360204200541106a24000b4d0002402003450d000240200220034d044020022003470d010c020b200120036a2c000041bf7f4a0d010b200120022003200220041065000b2000200220036b3602042000200120036a3602000b9b0601027f23004180016b220524002005200336021c200520023602182005027f20014181024f0440418002210602400340200020066a2c000041bf7f4a0d01200641016b22060d000b410021060b200541106a20002001200641fc920410632005200529031037032020054190940436022841050c010b2005200136022420052000360220200541ccb00436022841000b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4106360200200541e4006a410636020020054203370244200541b894043602402005410436025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200541086a20002001027f02400240200220034d04402002450d010240200120024d044020012002470d010c030b200020026a2c000041bf7f4a0d020b20052002360230200221030c020b200541f4006a4106360200200541ec006a4106360200200541e4006a4104360200200541d4006a410436020020054204370244200541f494043602402005410436025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c030b2005200336023041002003450d011a0b03400240200120034d044020012003470d0120010c030b200020036a2c00004140480d0020030c020b200341016b22030d000b41000b22062004106420052005280208220036025820052000200528020c6a36025c2005200541d8006a1059200410662200360234200520063602382005027f41012000418001490d001a41022000418010490d001a41034104200041808004491b0b20066a36023c200541d4006a4105360200200541fc006a4106360200200541f4006a4106360200200541ec006a410a360200200541e4006a410b36020020054205370244200541c895043602402005410436025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580b200541406b20041019000b1a002000418080c40046044041d88904412b20011030000b20000b8f0802077f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b7421044100210141202103412021000240027e02400240027f034002402004200341017620016a220341027441a4a3046a280200410b7422054d044020042005470440200321000c020b41010c030b200341016a21010b200020016b2103200020014b0d000b2001210341000b20036a2204411f4d04402004410274210141c20521032004411f470440200141a8a3046a28020041157641016b21030b410021002004200441016b22054f0440200541204f0d02200541027441a4a3046a28020041ffffff007121000b02402003200141a4a3046a2802004115762201460d00200141c305200141c3054b1b2104200220006b21054100210003400240200120044704402000200141a4a4046a2d00006a220020054d0d01200121030c030b200441c3054184a3041056000b2003200141016a2201470d000b0b20034101710d02024002402002418080044f04402002418080084f0d01200241ab9c04412a41ff9c0441c00141bf9e0441b60310680d070c020b2002418c9704412841dc970441a00241fc990441af021068450d010c060b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d050b200241017267410276410773ad4280808080d000840c030b2004412041f4a2041056000b200541204194a3041056000b200241017267410276410773ad4280808080d000840b210941032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b034020012102410021012003210002400240024002400240200241016b0e03040200010b024002400240024002402009422088a741ff017141016b0e050004010203050b200942ffffffff8f6083210941fd002100410321010c070b200942ffffffff8f608342808080802084210941fb002100410321010c060b200942ffffffff8f608342808080803084210941f5002100410321010c050b200942ffffffff8f60834280808080c00084210941dc002100410321010c040b413041d70020032009a7220141027476410f712200410a491b20006a41c88904106621002001450d02200942017d42ffffffff0f83200942808080807083842109410321010c030b20074127200811010021060c040b41dc002100410121010c010b200942ffffffff8f6083428080808010842109410321010b200720002008110100450d000b0b20060be00201087f230041106b2208240041012107024002402002450d00200120024101746a210a20004180fe0371410876210b41002102200041ff0171210d0340200141026a210c200220012d00016a2109200b20012d000022014704402001200b4b0d0220092102200c2201200a470d010c020b200841086a200220092003200441ec9604105720082802082102200828020c2101024003402001450d01200141016b210120022d0000210e200241016a2102200d200e470d000b410021070c030b20092102200c2201200a470d000b0b2006450d00200520066a2103200041ffff0371210203400240200541016a2100027f200020052d00002201411874411875220441004e0d001a20002003460d0120052d0001200441ff0071410874722101200541026a0b2105200220016b22024100480d022007410173210720032005470d010c020b0b41d88904412b41fc96041030000b200841106a240020074101710b7e01037f23004190016b2202240020002d0000210341ff0021000340200241106a20006a413041372003410f712204410a491b20046a3a0000200041016b21002003220441047621032004410f4b0d000b200241086a200241106a200041016a105e2001419caf0441022002280208200228020c105120024190016a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1046200241206a24000b0b0020002802002001105b0b1b00200128021841f4b20441052001411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441ac8a04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241bc8a043602282002410c3602142002200241106a36023820022002410c6a36021020042001200241286a105f450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241bc8a043602282002410d3602142002200241106a36023820022002410c6a36021020042001200241286a105f0d010b200328020c2100200241246a41033602002002413c6a410e360200200241346a410e36020020024203370214200241848a0436021020022000410c6a3602382002200041086a3602302002410636022c200220003602282002200241286a36022020042001200241106a105f21000b200241406b240020000b0ba1330600418080040bc72f656e636f756e746572656420656d7074792073746f726167652063656c6c2f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f6c617a792f6d6f642e72730000001e000100370000009d00000019000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e72738f00010039000000a80000000a00000073746f7261676520656e7472792077617320656d707479008f00010039000000a90000000a0000006661696c656420746f2070756c6c207061636b65642066726f6d20726f6f74206b657920000101002400000078180100020000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6f7074737065632e7273000000340101003d0000006b0000000d000000b0180100400000009d000000300000000f000000010000000100000001000000a015010041000000b50000003700000045726332303a3a5472616e73666572004c18010000000000b401010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c004c18010000000000f801010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465726469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a200042020100250000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6578616d706c65732f65726332302f6c69622e72730000700201002e0000000f000000050000006469737061746368696e6720696e6b21206d657373616765206661696c65643a20000000b002010021000000100000000400000004000000110000001200000013000000140000000000000001000000150000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700000403010071000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273cb0301006d000000550200001c0000002e2e000048040100020000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000005404010071000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653a4c18010000000000030501000100000003050100010000001600000000000000010000001700000070616e69636b65642061742027272c2038050100010000003905010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000004c050100200000006c0501001200000060202020202f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273000095050100750000002f00000021000000950501007500000030000000120000002c0a280a28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727300003206010070000000650000001400000030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000007c07010075000000420000001e0000007c070100750000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468201408010012000000260801002200000072616e676520656e6420696e6465782058080100100000002608010022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200078080100160000008e0801000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028ac08010015000000c10801002b00000031060100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727304090100780000001d010000110000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72738c09010074000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000150a01000b000000200a0100160000009005010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000500a01000e0000005e0a010004000000620a0100100000009005010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060150a01000b000000940a010026000000ba0a010008000000c20a01000600000090050100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e72730000f00a01007a0000000a0000001c000000f00a01007a0000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e72730000f51001007d0000004b00000028000000f51001007d0000005700000016000000f51001007d000000520000003e0000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730a15010072000000e6050000090000000a0000004c180100000000008c150100010000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000a0150100410000005800000009000000a0150100410000005800000031000000a0150100410000006300000009000000a015010041000000810000001a0000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000241601003e000000780100001400000045636473615265636f7665724661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f646500004c180100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f72307800009c170100020000005f000000a8170100010000004c180100000000004c180100000000004c18010041d0af040b092000000008000000020041e4af040b15020000000300000001000000200000000800000002004184b0040b150200000003000000020000002000000008000000020041a4b0040b150200000003000000030000002000000008000000020041c4b0040be50202000000030000005765206465636f646520604e6020656c656d656e74733b20716564000019010061000000cd020000170000003a2000004c180100000000007818010002000000656e636f756e746572656420756e6578706563746564206572726f728c1801001c0000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273b01801004000000018010000170000002f686f6d652f6d696368692f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e727300000000190100610000006d0000000e0000004572726f72000000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "erc20", + "version": "3.0.0-rc6", + "authors": [ + "Parity Technologies " + ] + }, + "V2": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "initial_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when a token transfer occurs." + ], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when an approval occurs that `spender` is allowed to withdraw", + " up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 8 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 8 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 8 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 6 + } + }, + "name": "allowances" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "Key" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 7 + }, + { + "name": "V", + "type": 0 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": [ + "Option" + ] + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/ink/v2/flipper.contract.json b/packages/api-contract/src/test/contracts/ink/v2/flipper.contract.json new file mode 100644 index 0000000..d71224f --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v2/flipper.contract.json @@ -0,0 +1,103 @@ +{ + "source": { + "hash": "0xaeb7dd63156e34f62a81be2f66e16410cf4dd633b591cf27dd40474ff61a352c", + "language": "ink! 3.0.0-rc6", + "compiler": "rustc 1.58.0-nightly", + "wasm": "0x0061736d0100000001620f60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060057f7f7f7f7f0060017f017f60000060017f017e60017f0060047f7f7f7f0060067f7f7f7f7f7f006000017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f02a30107057365616c30107365616c5f7365745f73746f726167650003057365616c30167365616c5f76616c75655f7472616e736665727265640002057365616c30107365616c5f6765745f73746f726167650000057365616c30127365616c5f64656275675f6d6573736167650001057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100343420203080102050207030a0b02020504060806010000030102010602010301070d010c090003020509010103030001010004040401010e01010001010101010501010004050170011e1e0608017f01418080040b071102066465706c6f7900150463616c6c00170923010041010b1d092e232f4521333a4142230846081a1c1e0843082408353c3d083e3f400ac164428d0101017f230041406a22022400200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a2900003703002002420137030820022001290000370310200241386a41808001360200200241f2ae04360234200241003602302002200241306a20001007200241106a200228020020022802041000200241406b24000b920201047f230041106b22042400200141086a220328020021052003410036020020012802042103200141bcad04360204200441086a410041012003200541a4aa04100f0240200428020c22064101460440200428020820023a000020014100360208200141bcad043602042005450d012001200541016b3602082001200341016a3602042000410136020420002003360200200441106a24000f0b230041306b2200240020004101360204200020063602002000411c6a41023602002000412c6a41033602002000420337020c200041ac9004360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41b4aa04100a000b41a7a804412341bca904100e000b0300010bc00101037f230041306b2202240041a3ad042103411921040240024002400240024020002d000041016b0e0400010203040b4187ad042103411c21040c030b41f1ac042103411621040c020b41ddac042103411421040c010b41c4ac0421030b2002411c6a41013602002002200436022c20022003360228200241023602242002420137020c200241bcac04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a1032200241306a24000be60301077f230041106b220224002002200136020c20022000360208200241a48804360204200241bcad04360200230041406a220324002003200236020c200341346a410136020020034202370224200341d0a9043602202003410536023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020422074103742102200528020022082100034020020440200241086b2102200028020420016a2101200041086a21000c010b0b024002400240024002400240200541146a280200450440200121000c010b02402007450d0020082802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d010b20042002102020042802002200450d0120042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a10180d02200441206a24000c030b101f000b000b41a085044133200441086a41fc830441c086041014000b2003280210210020032802182101024041f0ae042d000045044041f1ae042d00004101710d010b2000200110031013410947044041f0ae0441013a00000b41f1ae0441013a00000b000b4201027f230041106b22012400200141086a2000100c20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b9c0102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d0241a88104411b41c48104100e000b20012000100c20012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b4601017f230041206b22032400200341146a4100360200200341bcad04360210200342013702042003200136021c200320003602182003200341186a36020020032002100a000bd2010002400240200120024d0440200220044d0d01230041306b2200240020002004360204200020023602002000411c6a41023602002000412c6a41033602002000420237020c200041a88f043602080c020b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41033602002000420237020c200041dc8f043602080c010b2000200220016b3602042000200120036a3602000f0b200041033602242000200041206a3602182000200041046a36022820002000360220200041086a2005100a000b6c02027f027e230041206b22002400200041086a220142003703002000420037030020004110360214200020003602102000411036021c20002000411c6a1001200041106a200028021c10112001290300210220002903002103200041206a2400410541042002200384501b0b3701017f230041106b22022400200241086a41002001200028020020002802044184ab04100f20002002290308370200200241106a24000b8f0301027f230041d0006b220224004101210302402000027f20014101714504404104101041ff01714105470d011a0b200241186a4200370300200241206a4200370300200241286a42003703002002420037031020024201370308200241808001360234200241f2ae04360230200241808001360238200241106a41f2ae04200241386a10022101200241306a20022802381011024002400240200110130e0402000001000b200241cc006a4100360200200241bcad043602482002420137023c200241b08204360238200241386a41b88204100a000b230041106b220124002001411736020c200141f08004360208230041206b22002400200041146a410136020020004201370204200041bcac043602002000410236021c2000200141086a3602182000200041186a360210200041888104100a000b20022002290330370338200241386a100b41ff017122014102460d014100210320014100470b3a0001200020033a0000200241d0006a24000f0b200241003a0038418080044127200241386a4198810441e080041014000b2001017f410c21012000410b4d047f200041027441b8ae046a28020005410c0b0b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41043602002005420237021c200541c0ad04360218200541023602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004100a000b850302057f027e230041306b2200240020004180800136022c200041f2ae04360228200041286a10162000200029032837030002402000100d22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721012005421888a721022005421088a72103024002402006a741087641ff0171220441ed014704402004419b0147200341ff017141ae014772200241ff0171419d0147200141de004772720d032000100b41ff017122014102470d010c030b200341ff017141cb0047200241ff0171419d0147722001411b47720d02200041186a4200370300200041106a4200370300200041086a4200370300200042003703004100200010060c010b200041186a4200370300200041106a4200370300200041086a4200370300200042003703002001410171200010060b200041306a24000f0b200041033a0027200041146a410136020020004201370204200041f082043602002000410136022c2000200041286a3602102000200041276a360228200041a88304100a000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10042000200128020c1011200141106a24000bdc0402057f027e230041406a2200240002400240101041ff01712201410546044020004180800136023c200041f2ae04360238200041386a101620002000290338370310027f0240200041106a100d22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721022005421888a721012005421088a721032006a741087641ff01712204412f470440200441e30047200341ff0171413a4772200141ff017141a50147200241d1004772720d014101210141000c020b200341ff017141860147200141ff017141db0047720d00410021014100200241d901460d011a0b4101210141010b0440410321010c030b02400240200104402000418102101220002d0001210120002d00004101710d01200041286a4200370300200041206a4200370300200041186a4200370300200042003703102001417f73410171200041106a10060c020b200041086a4101101220002d0009210120002d0008410171450d030b20014105470d030b200041406b24000f0b200020013a0010230041206b22012400200141146a410136020020014201370204200141bcac043602002001410136021c2001200041106a3602182001200141186a360210200141a88304100a000b230041206b22002400200041186a41808001360200200041f2ae0436021420004100360210200041086a200041106a2001410171100741002000280208200028020c1005000b200020013a0037200041246a410136020020004201370214200041dc83043602102000410136023c2000200041386a3602202000200041376a360238200041106a41a88304100a000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41e48304200241086a1019200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a103020032003290310370320200341086a20042000410c6a103020032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002101b41000b2801017f20002002101d2000280208220320002802006a2001200210471a2000200220036a3602080b960201027f230041106b22022400200028020021000240200141ff004d044020002802082203200028020446044020004101101d200028020821030b2000200341016a360208200028020020036a20013a00000c010b2002410036020c20002002410c6a027f20014180104f044020014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c020b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c010b20022001413f71418001723a000d2002200141067641c001723a000c41020b101b0b200241106a240041000bae0301077f230041106b2205240002400240200120002802042207200028020822026b4b0440200120026a22012002490d022000280200410020071b210841002102230041106b220624002005027f20074101742204200120012004491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001102020062802082103200628020c0c030b200141e8ae04280200220420016a22022004490d021a41ecae042802002002490440200141ffff036a22032001490d02200341107640002202417f46200241ffff0371200247720d022002411074220420034180807c716a22022004490d024100210341ecae0420023602002001200120046a22022004490d031a0b41e8ae04200236020020012004450d021a2004200820071047210320010c020b2006200110202006280200210320062802040c010b4100210320010b2102200304402005200336020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d00000b101f000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1018200241206a24000b0f0041fd8404411141908504100e000ba90101027f027f41012001450d001a410041e8ae04280200220220016a22032002490d001a024041ecae042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141ecae0420033602004100200120026a22032002490d021a0b41e8ae04200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341888f04360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a2002100a000b9a0202037f017e20003502002105230041306b2203240041272100024003402005428fce005804402005a7220241e3004c0d0205200341096a20006a220241026b20054290ce0082a7220441e4007041017441da8b046a2f00003b0000200241046b200441e4006e41017441da8b046a2f00003b0000200041046b210020054290ce008021050c010b0b200020036a41076a2005a741ffff0371220241e4007041017441da8b046a2f00003b0000200041026b2100200241e4006e21020b02402002410a4e0440200041026b2200200341096a6a200241017441da8b046a2f00003b00000c010b200041016b2200200341096a6a200241306a3a00000b200141bcad044100200341096a20006a412720006b1025200341306a24000b0d00429e9fe3ccf2a3c7c8fb000bb30301077f230041106b2206240020002802002205410171220820046a210702402005410471450440410021010c010b2001200120026a102620076a21070b412b418080c40020081b210802402000280208410147044041012105200020082001200210270d012000280218200320042000411c6a28020028020c11000021050c010b024020072000410c6a280200220949044020002d00004108710d014101210520062000200920076b4101102820062802002207418080c400460d0220062802042109200020082001200210270d022000280218200320042000411c6a28020028020c1100000d02200720092000102921050c020b41012105200020082001200210270d012000280218200320042000411c6a28020028020c11000021050c010b2000280204210a2000413036020420002d0020210b41012105200041013a0020200020082001200210270d00200641086a2000200920076b4101102820062802082201418080c400460d00200628020c21022000280218200320042000411c6a28020028020c1100000d0020012002200010290d002000200b3a00202000200a360204410021050b200641106a240020050b2901017f03402000200146450440200220002c000041bf7f4a6a2102200041016a21000c010b0b20020b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000b9b0101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03000100020b41002105200221040c010b20024101762104200241016a41017621050b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341888904360208200341033602242003200341206a360218200320033602282003200341046a360220200341086a2002100a000b5301047f200141086a280200210220012802042103200141046a102c2204418080c4004704402001200128020420012802002205200220036b6a6a20012802086b3602000b20002004360204200020053602000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a102b200228021c418080c400470d010c020b0b200241106a200241206a102b2002280214418080c400460d00200241086a200228021020032004102d200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a102622054b044020022001200020056b410010284101210020022802002205418080c400460d01200228020421062001280218200320042001411c6a28020028020c1100000d01200520062001102921000c010b2001280218200320042001411c6a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044106470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141c88b041022000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a1019200341206a24000b6c01027f230041206b220224004101210302402000200110340d002002411c6a4100360200200241bcad043602182002420137020c200241d48604360208200141186a2802002001411c6a280200200241086a10320d00200041046a2001103421030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110230c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1031200141d88b0441022002280208200228020c10250c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1031200141d88b0441022002280200200228020410250b20024190016a24000bb906010d7f230041406a22032400200341386a210d2000280204210b2000280200210c2000280208210a024003402002450d010240200a2d00000440200c41b489044104200b28020c1100000d010b2003410a3602382003428a808080103703302003200236022c41002100200341003602282003200236022420032001360220200222042105034002400240200341086a20012002027f02400240200020044b200420054b720d00200328022020006a2106200320032802346a41376a2d0000210702400240200420006b220541084f0440200641036a417c7120066b2204450440410021040c020b41002100200341186a410020052004200420054b1b22042006200541b48e04100f200328021c210820032802182109034020002008460d02200020096a2d00002007460d03200041016a21000c000b000b41002100034020002005460d03200020066a2d00002007460d02200041016a21000c000b000b200541086b2108200741818284086c210003400240200420084b0d00200420066a2209280200200073220e417f73200e41818284086b71200941046a2802002000732209417f73200941818284086b7172418081828478710d00200441086a21040c010b0b200420054b0d04200420056b2108200420066a210541002100034020002008460d02200720052d0000470440200041016b2100200541016a21050c010b0b200420006b21000b2003200020032802286a41016a2200360228200020032802342204490d04200020032802244b0d0420032802202105200341106a41002004200d410441c09204100f20032802142004460440027f2005200020046b22086a210020032802102105034041002004450d011a200441016b210420052d0000210620002d00002107200041016a2100200541016a210520062007460d000b200720066b0b450d020b200328022821000c040b200a41003a000020020c010b200a41013a0000200841016a0b220041b08a041036200c2003280208200328020c200b28020c1100000d03200320012002200041c08a04103720032802042102200328020021010c040b2004200541c48e041022000b200328022c2104200328022421050c000b000b0b4101210f0b200341406b2400200f0b4e01027f230041106b22052400200541086a200320012002102d20052802082206450440200120024100200320041038000b200528020c21012000200636020020002001360204200541106a24000b4d0002402003450d000240200220034d044020022003470d010c020b200120036a2c000041bf7f4a0d010b200120022003200220041038000b2000200220036b3602042000200120036a3602000b980601027f23004180016b220524002005200336021c200520023602182005027f024020014181024f0440418002210603402006450440410021060c030b200020066a2c000041bf7f4a0d02200641016b21060c000b000b2005200136022420052000360220200541bcad0436022841000c010b200541106a20002001200641bc9104103620052005290310370320200541d0920436022841050b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4102360200200541e4006a410236020020054203370244200541f892043602402005410336025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200220034d0440024002402002450d00200120024d044020012002460d010c020b200020026a2c00004140480d010b200321020b200520023602300340024002402002450440410021020c010b200120024d044020012002470d02200121020c010b200020026a2c00004140480d010b200541086a2000200120022004103720052005280208220036025820052000200528020c6a36025c2005200541d8006a102c200410392201360234200520023602382005027f41012001418001490d001a41022001418010490d001a41034104200141808004491b0b20026a36023c200541d4006a4105360200200541fc006a4102360200200541f4006a4102360200200541ec006a4107360200200541e4006a4108360200200542053702442005418894043602402005410336025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c030b200241016b21020c000b000b200541f4006a4102360200200541ec006a4102360200200541e4006a4103360200200541d4006a410436020020054204370244200541b493043602402005410336025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580b200541406b2004100a000b1a002000418080c40046044041e08704412b2001100e000b20000b8f0802087f017e4101210702402001280218220841272001411c6a28020028021022091101000d0041f4002103410221010240027f0240027f024002400240024002402000280200220241096b0e050803010104000b2002412746200241dc0046720d010b2002410b7421044100210141202100412021030340200020014d0440200121030c060b02402004200341017620016a220341027441e4a1046a280200410b7422054d044020042005460d07200321000c010b200341016a21010b200020016b21030c000b000b41020c040b41ee000c010b41f2000b21030c020b0240027e024002402003200020014b6a2206411f4d04402006410274210141c20521032006411f470440200141e8a1046a28020041157641016b21030b41002100410021052006200641016b22044f0440200441204f0d02200441027441e4a1046a28020041ffffff007121050b200141e4a1046a280200411576220141c305200141c3054b1b2104200220056b21050240024003400240024002402001200347047f20012004460d012000200141e4a2046a2d00006a220020054d0d0220010520030b4101710d08200241808004490d022002418080084f0d04200241eb9a04412a41bf9b0441c00141ff9c0441b603103b0d0a0c050b200441c30541c4a104102a000b200141016a21010c010b0b200241cc95044128419c960441a00241bc980441af02103b450d010c060b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d050b200241017267410276410773ad4280808080d000840c030b2006412041b4a104102a000b2004412041d4a104102a000b200241017267410276410773ad4280808080d000840b210a41032101200221030c020b41010b2101200221030b034020012102410021012003210002400240024002400240200241016b0e03040200010b02400240024002400240200a422088a741ff017141016b0e050004010203050b200a42ffffffff8f6083210a41fd002100410321010c070b200a42ffffffff8f608342808080802084210a41fb002100410321010c060b200a42ffffffff8f608342808080803084210a41f5002100410321010c050b200a42ffffffff8f60834280808080c00084210a41dc002100410321010c040b413041d7002003200aa7220141027476410f712200410a491b20006a41d08704103921002001450d02200a42808080807083200a42017d42ffffffff0f8384210a410321010c030b20084127200911010021070c040b41dc002100410121010c010b200a42ffffffff8f608342808080801084210a410321010b200820002009110100450d000b0b20070bcc0201077f230041106b22072400200120024101746a210c20004180fe0371410876210a41002102200041ff0171210d02400240034002402001200c470440200141026a210b200220012d00016a210820012d00002209200a460d01200b2101200821022009200a4d0d020b200520066a2103200041ffff0371210041012102034020032005460d03200541016a210120052d000022044118744118752206410048044020012003460d0520052d0001200641ff0071410874722104200541026a21010b200020046b22004100480d0320024101732102200121050c000b000b200741086a200220082003200441ac9504100f20072802082102200728020c210103402001450440200b2101200821020c020b200141016b210120022d0000200241016a2102200d470d000b0b410021020b200741106a240020024101710f0b41e08704412b41bc9504100e000be30101017f230041106b220224002002410036020c20002002410c6a027f0240024020014180014f04402001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200220013a000c41010c020b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040b1035200241106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41a48d04200241086a1019200241206a24000b0d0020002802002001200210350b0b0020002802002001103c0b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a103d200241206a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a1019200241206a24000b0b0020002802002001102e0b1b00200128021841b1ae0441052001411c6a28020028020c1100000b1b00200028021841b1ae0441052000411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441b48804410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241c48804360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a1032450d010c020b20032802002200200328020428020c11070042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241c488043602282002410a3602142002200241106a36023820022002410c6a36021020042001200241286a10320d010b200328020c2100200241246a41033602002002413c6a410b360200200241346a410b360200200242033702142002418c880436021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103221000b200241406b240020000b9c0501027f230041406a22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b41012100200128021841b4ac0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841d48a044101200128021c28020c1100000d0d20011044450d010c0d0b200128021841d28a044102200128021c28020c1100000d0c20012802002103200241013a0017200241346a419c8904360200200241106a200241176a3602002002200336021820022001290218370308200220012d00203a00382002200128020436021c20022001290210370328200220012902083703202002200241086a360230200241186a10440d0c200228023041d08a044102200228023428020c1100000d0c0b200128021841d58a044101200128021c28020c11000021000c0b0b200128021841a7ac04410d2001411c6a28020028020c11000021000c0a0b20012802184199ac04410e2001411c6a28020028020c11000021000c090b2001280218418eac04410b2001411c6a28020028020c11000021000c080b200128021841f5ab0441192001411c6a28020028020c11000021000c070b200128021841e7ab04410e2001411c6a28020028020c11000021000c060b200128021841d3ab0441142001411c6a28020028020c11000021000c050b200128021841c7ab04410c2001411c6a28020028020c11000021000c040b200128021841bcab04410b2001411c6a28020028020c11000021000c030b200128021841b5ab0441072001411c6a28020028020c11000021000c020b200128021841a6ab04410f2001411c6a28020028020c11000021000c010b20012802184194ab0441122001411c6a28020028020c11000021000b200241406b240020000bc40201087f2002410f4d047f2000052000410020006b41037122056a210620012104200021030340200320064f450440200320042d00003a0000200441016a2104200341016a21030c010b0b200220056b2202417c7121070240200120056a22054103710440200620076a21082005417c71220341046a2101200541037422044118712109410020046b411871210a20032802002104200621030340200320084f0d022003200420097620012802002204200a7472360200200141046a2101200341046a21030c000b000b200620076a210420052101200621030340200320044f0d0120032001280200360200200141046a2101200341046a21030c000b000b20024103712102200520076a2101200620076a0b2103200220036a21020340200220034d450440200320012d00003a0000200141016a2101200341016a21030c010b0b20000b0bee2e0100418080040be52e636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e72732700010039000000a80000000a00000073746f7261676520656e7472792077617320656d707479002700010039000000a90000000a0000000c00000001000000010000000d0000005765206465636f646520604e6020656c656d656e74733b2071656400d016010061000000cd020000170000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273656e636f756e746572656420756e6578706563746564206572726f72140101001c000000d40001004000000018010000170000006469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a2000000048010100250000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6578616d706c65732f666c69707065722f6c69622e7273780101003000000008000000050000006469737061746368696e6720696e6b21206d657373616765206661696c65643a20000000b8010100210000000e00000004000000040000000f0000001000000011000000120000000000000001000000130000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700000c02010071000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273d30201006d000000550200001c0000002e2e000050030100020000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000005c03010071000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653abc160100000000000b040100010000000b040100010000001400000000000000010000001500000070616e69636b65642061742027272c2040040100010000004104010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000005404010020000000740401001200000060000000160000000c00000004000000170000001800000019000000202020202f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e7273000000b8040100750000002f00000021000000b80401007500000030000000120000002c0a280a28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e72730000560501007000000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900001a00000004000000040000001b0000001c0000001d0000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000bc06010075000000420000001e000000bc060100750000005b0000000500000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468205407010012000000660701002200000072616e676520656e6420696e6465782098070100100000006607010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000b807010016000000ce0701000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028ec07010015000000010801002b00000055050100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e727344080100780000001d010000110000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273cc08010074000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000550901000b00000060090100160000009804010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000900901000e0000009e09010004000000a2090100100000009804010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060550901000b000000d409010026000000fa09010008000000020a01000600000098040100010000002f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e72730000300a01007a0000000a0000001c000000300a01007a0000001a0000003600000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e72730000351001007d0000004b00000028000000351001007d0000005700000016000000351001007d000000520000003e0000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f686f6d652f6d696368692f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d756e6b6e6f776e2d6c696e75782d676e752f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72734a14010072000000e6050000090000000a000000bc16010000000000cc140100010000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000e0140100410000005800000009000000e01401004100000058000000310000002f686f6d652f6d696368692f70726f6a656374732f696e6b2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000441501003e000000780100001400000045636473615265636f7665724661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f64650000bc160100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f723a200000bc16010000000000bc160100020000002f686f6d652f6d696368692f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72734572726f720000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc6", + "authors": [ + "Parity Technologies " + ] + }, + "V2": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 0 + } + } + ], + "docs": [ + "Creates a new flipper smart contract initialized with the given value." + ], + "label": "new", + "selector": "0x9bae9d5e" + }, + { + "args": [], + "docs": [ + "Creates a new flipper smart contract initialized to `false`." + ], + "label": "default", + "selector": "0xed4b9d1b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [ + " Flips the current value of the Flipper's boolean." + ], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": null, + "selector": "0x633aa551" + }, + { + "args": [], + "docs": [ + " Returns the current value of the Flipper's boolean." + ], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 0 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/ink/v2/index.ts b/packages/api-contract/src/test/contracts/ink/v2/index.ts new file mode 100644 index 0000000..5b864fd --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v2/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20 } from './erc20.contract.json' assert { type: 'json' }; +export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v3/flipper.contract.json b/packages/api-contract/src/test/contracts/ink/v3/flipper.contract.json new file mode 100644 index 0000000..ac88e62 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v3/flipper.contract.json @@ -0,0 +1,105 @@ +{ + "source": { + "hash": "0xbb381c2fc980121b17c7b2bf2756d5964a12151cb846e0a9eff9cc337806456d", + "language": "ink! 3.0.0-rc7", + "compiler": "rustc 1.60.0-nightly", + "wasm": "0x0061736d0100000001280860027f7f0060000060037f7f7f0060017f006000017f60017f017f60037f7f7f017f60017f017e02880106057365616c30107365616c5f7365745f73746f726167650002057365616c30107365616c5f6765745f73746f726167650006057365616c300a7365616c5f696e7075740000057365616c300b7365616c5f72657475726e0002057365616c30167365616c5f76616c75655f7472616e73666572726564000003656e76066d656d6f727902010210030a090400050103070001000608017f01418080040b071102066465706c6f7900080463616c6c000c0ac40b096102027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a1004200028021c41114f0440000b2001290300210220002903082103200041206a2400410541042002200384501b0bc20101027f230041306b220224004101210302402000027f20014101714504404104100541ff01714105470d011a0b200241106a4200370300200241186a4200370300200241206a42003703002002420037030820024201370300200241808001360228200241086a41808004200241286a100120022802282201418180014f720d012002200136022c200241808004360228200241286a100741ff017122014102460d014100210320014100470b3a0001200020033a0000200241306a24000f0b000b4201027f230041106b22012400200141086a2000100d20012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0bd30202057f027e230041306b2200240020004180800136020c200041808004360208200041086a1009200020002903083703100240200041106a100a22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721012005421888a721022005421088a7210302402006a741087641ff0171220441ed014704402004419b0147200341ff017141ae014772200241ff0171419d0147200141de004772720d02200041106a100741ff017122014102460d02100541ff01714105470d02200041286a4200370300200041206a4200370300200041186a4200370300200042003703102001410171200041106a100b0c010b200341ff017141cb0047200241ff0171419d0147722001411b47720d01200041286a4200370300200041206a4200370300200041186a4200370300200042003703104100200041106a100b0b200041306a24000f0b000b4101027f230041106b2201240020012000280204220236020c20002802002001410c6a10022002200128020c2202490440000b20002002360204200141106a24000b850102027f017e230041106b220124002001420437030841042102027f02400240034020012000100d20012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d01000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b6b01017f230041306b220224004180800420003a0000200241286a200141186a290000370300200241206a200141106a290000370300200241186a200141086a2900003703002002420137030820022001290000370310200241106a4180800441011000200241306a24000b910302057f027e230041406a22002400024002400240100541ff01714105470d0020004180800136021c200041808004360218200041186a100920002000290318370320027f0240200041206a100a22054201832206a70d00200542807e8342002006501b22064280feffffff1f832205422088a721022005421888a721012005421088a721032006a741087641ff01712204412f470440200441e30047200341ff0171413a4772200141ff017141a50147200241d1004772720d014101210141000c020b200341ff017141860147200141ff017141db0047720d00410021014100200241d901460d011a0b4101210141010b0d00024020010440200041086a418002100620002d0009210120002d00084101710d01200041386a4200370300200041306a4200370300200041286a4200370300200042003703202001417f73410171200041206a100b0c040b200041106a4100100620002d0011210120002d0010410171450d020b20014105460d020b000b4180800420014101713a000041004180800441011003000b200041406b24000b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b" + }, + "contract": { + "name": "flipper", + "version": "3.0.0-rc7", + "authors": [ + "Parity Technologies " + ] + }, + "V3": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 0 + } + } + ], + "docs": [ + "Creates a new flipper smart contract initialized with the given value." + ], + "label": "new", + "payable": false, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "docs": [ + "Creates a new flipper smart contract initialized to `false`." + ], + "label": "default", + "payable": true, + "selector": "0xed4b9d1b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [], + "docs": [ + " Flips the current value of the Flipper's boolean." + ], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": null, + "selector": "0x633aa551" + }, + { + "args": [], + "docs": [ + " Returns the current value of the Flipper's boolean." + ], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 0 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "value" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/ink/v3/index.ts b/packages/api-contract/src/test/contracts/ink/v3/index.ts new file mode 100644 index 0000000..ca70a62 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v3/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as flipper } from './flipper.contract.json' assert { type: 'json' }; +// A complex contract example with traits. +export { default as traitErc20 } from './trait_erc20.contract.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json new file mode 100644 index 0000000..f8cb6ec --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v3/trait_erc20.contract.json @@ -0,0 +1,631 @@ +{ + "source": { + "hash": "0x819f50e02feb5b4413261150c77edb5fdf85877ac1da53210f1b1327f342b81a", + "language": "ink! 3.0.0-rc7", + "compiler": "rustc 1.58.0-nightly", + "wasm": "0x0061736d010000000180011360037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f0060017f0060057f7f7f7f7f0060000060017f017e60067f7f7f7f7f7f0060047f7f7e7e0060037e7e7f0060057f7f7f7e7e006000017f60017f017f60047f7f7f7f017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f60057f7f7f7e7e017f028a020b057365616c30127365616c5f64656275675f6d6573736167650001057365616c30127365616c5f636c6561725f73746f726167650005057365616c30127365616c5f6465706f7369745f6576656e740004057365616c30107365616c5f7365745f73746f726167650003057365616c30107365616c5f6765745f73746f726167650000057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e0003057365616c30147365616c5f686173685f626c616b65325f3235360003057365616c300b7365616c5f63616c6c65720002057365616c30167365616c5f76616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100372710004030303020203030a0b0c0a02020201010204040302030204060504020202020b0305030501000802050304020502010305020d0302020507050704120306030100000301020107020101040810010f040003090303020e040101030300010100060606060101110101010101090404040501700118180608017f01418080040b071102066465706c6f7900430463616c6c0045091d010041010b171a1b7355306465775469717475552d2d4d4f512d762d570ac8b201712b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b4180800441214188b604100c000b4601017f230041206b22032400200341146a410036020020034184be04360210200342013702042003200136021c200320003602182003200341186a36020020032002101c000b3501017f230041106b22032400200341086a410020012002100b200020032802083602002000200328020c360204200341106a24000be60101037f230041d0006b22032400200320013602082003200236020c200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341a6c204360240200341086a200341406b100f2002280200200341406b10102002280204200341406b1010200320032903403702342003200341306a2003280248101120032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b0d00200120002802004120102c0b0a00200120004120102c0b5e01027f200141086a22032802002104200341003602002001280204210320014184be04360204200220044b044041ecb60441234180b804100c000b2001200420026b3602082001200220036a36020420002002360204200020033602000bda0101037f230041d0006b22032400200320013602082003200236020c200341286a22014200370300200341206a22044200370300200341186a220542003703002003420037031020034100360230200342808001370244200341a6c204360240200341086a200341406b100f2002280200200341406b1010200320032903403702342003200341306a2003280248101120032802002003280204200341106a1007200041186a2001290300370000200041106a2004290300370000200041086a200529030037000020002003290310370000200341d0006a24000b3401017f230041306b220424002004200136020c200441106a20002004410c6a101220022003200441106a1014200441306a24000b4e01017f230041206b22032400200341186a41808001360200200341a6c20436021420034100360210200341086a200341106a20002001101620022003280208200328020c1003200341206a24000b3b01017f230041306b220524002005200236020c20052001360208200541106a2000200541086a100e20032004200541106a1014200541306a24000b5802017f017e230041206b2204240020012902042105200441003602182004200537031020022003200441106a102b20012004290310370204200441086a20012004280218101120002004290308370300200441206a24000bd40102027f057e230041306b220224000240200029030022084202510d0020012900182104200129001021052001290008210620012900002107200041186a22012d0000200141013a00004101710d0020084201520440200241286a2004370300200241206a2005370300200241186a20063703002002200737031020024201370308200241106a10010c010b200241286a2004370300200241206a2005370300200241186a200637030020022007370310200242013703082000290308200041106a290300200241106a10140b200241306a24000bc70102017f027e230041e0006b220224002002200136020c200241106a2001101920022d00104101460440200220022d00113a0037200241cc006a4102360200200241dc006a41013602002002420237023c200241ec8204360238200241023602542002200241d0006a3602482002200241376a36025820022002410c6a360250200241386a41d08304101c000b200241186a2903002103200241206a2903002104200041106a200241286a2903003703002000200437030820002003370300200241e0006a24000be40102017f027e230041406a22022400200241808001360224200241a6c20436022002400240024002402001200241206a103a0e0402010100010b200041003a0000200041086a42003703000c020b2002413c6a410036020020024184be043602382002420137022c200241e0be04360228200241286a41bcbf04101c000b20022002290320370328200241086a200241286a102a2002290308a70440200041013b01000c010b200241186a290300210320022903102104200041003a0000200041106a2004370300200041086a4201370300200041186a20033703000b200241406b24000bd90401017f230041106b22022400024002400240024002400240024002400240024002400240024020002d000041016b0e0b0102030405060708090a0b000b41012100200128021841cebb0441062001411c6a28020028020c1100000d0b024020012d0000410471450440200128021841f491044101200128021c28020c1100000d0d200128021841e4c1044105200128021c28020c110000450d010c0d0b200128021841f291044102200128021c28020c1100000d0c200241013a000f200241086a2002410f6a36020020022001290218370300200241e4c1044105106b0d0c200241f091044102106b0d0c0b200128021841f591044101200128021c28020c11000021000c0b0b200128021841c1bb04410d2001411c6a28020028020c11000021000c0a0b200128021841b3bb04410e2001411c6a28020028020c11000021000c090b200128021841a8bb04410b2001411c6a28020028020c11000021000c080b2001280218418ebb04411a2001411c6a28020028020c11000021000c070b20012802184180bb04410e2001411c6a28020028020c11000021000c060b200128021841f0ba0441102001411c6a28020028020c11000021000c050b200128021841e4ba04410c2001411c6a28020028020c11000021000c040b200128021841d9ba04410b2001411c6a28020028020c11000021000c030b200128021841d2ba0441072001411c6a28020028020c11000021000c020b200128021841c3ba04410f2001411c6a28020028020c11000021000c010b200128021841b0ba0441132001411c6a28020028020c11000021000b200241106a240020000b810201047f230041406a220224002000280200210441002100200241346a410036020020024184be0436023020024201370224200241d8bc04360220027f4101200141186a28020022052001411c6a2802002201200241206a10680d001a024003402002410436021c2002410436021420024184bd043602102002410436020c200241e4bc043602082002410336023c200241033602342002410336022c200241033602242002200020046a22033602202002200341036a3602382002200341026a3602302002200341016a3602282002200241206a36021820052001200241086a10680d01200041046a22004120470d000b41000c010b41010b200241406b24000b840401087f230041106b220324002003200136020c20032000360208200341d48f0436020420034184be04360200230041406a220224002002200336020c200241346a41013602002002420237022420024194b8043602202002410836023c2002200241386a36023020022002410c6a360238200241106a21064100210041002101230041206b22042400200241206a22052802002107024002400240024002402005280204220941037422080440200741046a21030340200120032802006a22002001490d02200341086a210320002101200841086b22080d000b0b02400240200541146a280200450440200021030c010b02402009450d0020072802040d004100210120004110490d020b41002101200020006a22032000490d010b200322014100480d020b20042001105320042802002200450d0220042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a104b0d03200441206a24000c040b41808804411c41a4af04100c000b1052000b000b41f889044133200441086a419c880441948b041049000b2002280210210020022802182101024041a4c2042d000045044041a5c2042d00004101710d010b200020011000410947044041a4c20441013a00000b41a5c20441013a00000b000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101e20042902142105200441003602282004200537032020012002200441206a101f2003200441206a102020042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212000200441206a1022200441406b24000b4b02017f017e230041106b22042400200120034b04402001200341bcb904102e000b200441086a2001200320021079200429030821052000410036020020002005370204200441106a24000b1000200120021027200220002001102c0b230020002d000041014704402001410010370f0b200141011037200041016a200110100bb40101017f230041306b2203240020004200370000200041186a4200370000200041106a4200370000200041086a42003700000240200241214f0440200341286a4200370300200341206a4200370300200341186a42003703002003420037031020012002200341106a1007200341202000100d20032802002003280204200341106a412041f0830410240c010b200341086a20022000100d2003280208200328020c2001200241e0830410240b200341306a24000b960101047f230041206b220224002000280204210420004184be04360204200041086a2203280200210520034100360200200241086a2004200520002802002203102620024100360218200220022903083703102001200241106a10102003200320022802186a22014d0440200020053602082000200436020420002001360200200241206a24000f0b41808404411c41bc8404100c000b900102017f017e230041406a22042400200441106a2000280200200041046a280200200041086a280200101e20042902142105200441003602282004200537032020012002200441206a101f2003200441206a101020042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212000200441206a1022200441406b24000b7b0020012003460440200020022001100a1a0f0b230041306b2200240020002003360204200020013602002000411c6a41023602002000412c6a41043602002000420337020c200041d49904360208200041043602242000200041206a360218200020003602282000200041046a360220200041086a2004101c000b950101057f230041206b220124002000280204210320004184be04360204200041086a2202280200210420024100360200200141086a2003200420002802002202102620014100360218200120012903083703104104200141106a10272002200220012802186a22054b044041808404411c41bc8404100c000b200020043602082000200336020420002005360200200141206a24000b4801017f230041106b22042400200220034904402003200241ac8404102e000b200441086a200320022001100b200020042802083602002000200428020c360204200441106a24000b7401017f230041106b2202240002402000413f4d04402001200041027410370c010b200041ffff004d0440200220004102744101723b010e20012002410e6a4102102c0c010b200041ffffffff034d04402000410274410272200110410c010b2001410310372000200110410b200241106a24000bae0102017f027e230041406a22022400200241186a200110290240024020022d0018410147044020022001102a2002290300a7450d010b200042013703000c010b200241106a2903002103200229030821042000200229001937000820004200370300200041286a2004370300200041306a2003370300200041206a200241316a290000370000200041186a200241296a290000370000200041106a200241216a2900003700000b200241406b24000bb50202037f017e230041306b22022400200241086a41047221042000027f0240034020022001103320022d00004101710d01200320046a20022d00013a0000200341016a22034120470d000b200041086a200241136a2f00003b00002000410a6a200241156a2d00003a00002000410f6a2002411a6a2f01003b0000200041116a2002411c6a2d00003a0000200041166a200241216a2f00003b0000200041186a200241236a2d00003a0000200220022f010c3b0104200220022d000e3a0006200241166a28010021012002411d6a2800002103200241246a2902002105200228000f2104200041036a20022d00063a0000200020022f01043b0001200041196a2005370000200041126a20033600002000410b6a2001360000200041046a200436000041000c010b41010b3a0000200241306a24000b6402027f037e230041106b22022400200241086a22034200370300200242003703000240200120024110103145044020032903002105200229030021060c010b420121040b2000200637030820002004370300200041106a2005370300200241106a24000b2a01017f230041106b220324002003200137030820032000370300200220034110102c200341106a24000b6701037f230041106b220324002000280208220420026a2205200449044041d0b604411c41fcb804100c000b200341086a2004200520002802002000280204418cb90410782003280208200328020c20012002419cb904102420002005360208200341106a24000b0300010b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341809804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b4801017f230041206b22012400200141146a410136020020014201370204200141d4bb043602002001410536021c200120003602182001200141186a360210200141d08604101c000bc00101037f230041306b2202240041bbbc042103411921040240024002400240024020002d000041016b0e0400010203040b419fbc042103411c21040c030b4189bc042103411621040c020b41f5bb042103411421040c010b41dcbb0421030b2002411c6a41013602002002200436022c20022003360228200241063602242002420137020c200241d4bb04360208200141186a2802002001411c6a2802002002200241286a3602202002200241206a360218200241086a1068200241306a24000b6001047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206107a200120022003280208200328020c41d4c10410242003200220042006107a200020032903003702000b200341106a240020050b910102027f017e230041106b220124002001420437030841042102027f02400240034020012000103320012d00004101710d01200141086a20026a20012d00013a0000200241016a22024108470d000b20012903082203a741044f0d014184be04411b41a0be04100c000b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a410110312201047f41000520022d000f0b3a0001200020013a0000200241106a24000bfe0502047f027e23004190016b22012400200141086a200041e000100a1a200141106a21030240200129030822064201520440200141f0006a220041808001360200200141a6c20436026c20014100360268200141e8006a102520014188016a220220002802003602002001200129036837038001200141e8006a20014180016a41dc84041035200141e8006a41e8840441152003101d20022000280200360200200120012903683703800120014180016a41fd84044113200341216a101d20002002280200360200200120012903800137036820014180016a200141e8006a41908504200141d8006a10360c010b200141f0006a220041808001360200200141a6c20436026c20014100360268200141e8006a102520014188016a220220002802003602002001200129036837038001200141e8006a20014180016a41b885041035200141e8006a41c4850441162003102320022000280200360200200120012903683703800120014180016a41da85044118200141306a102320002002280200360200200120012903800137036820014180016a200141e8006a41f28504200141d0006a10360b230041206b22002400200041186a220420014180016a220241086a28020036020020002002290200220537031020004100360210200041086a200041106a2005a7101120002903082105200141e8006a220241086a2004280200360200200220002903103702002002200537020c200041206a240020014188016a200141f0006a2802003602002001200129036837038001200141f8006a2802002100200128027420012902840121052001410036027020012005370368027f2006500440200141e8006a410010372003200141e8006a1020200341216a200141e8006a1020200141d8006a0c010b200141e8006a410110372003200141e8006a1010200141306a200141e8006a1010200141d0006a0b2203290300200341086a290300200141e8006a102b2001200129036837028401200120014180016a20012802701011200020012802002001280204100220014190016a24000bb40102027f017e230041406a22032400200341106a2001280200200141046a280200200141086a2204280200101e20032902142105200341003602282003200537032020022802002002280204200341206a101f200341206a2002280208410f102c20032003290320370214200341086a200341106a20032802281011200341206a2003280208200328020c10212001200341206a1022200041086a200428020036020020002001290200370200200341406b24000bb40102027f017e230041406a22042400200441106a2001280200200141046a280200200141086a2205280200101e20042902142106200441003602282004200637032020024116200441206a101f2003290300200341086a290300200441206a102b20042004290320370214200441086a200441106a20042802281011200441206a2004280208200428020c10212001200441206a1022200041086a200528020036020020002001290200370200200441406b24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341acb904105d000b5901027e20002903002101200041086a2903002102230041206b22002400200041186a41808001360200200041a6c20436021420004100360210200041086a200041106a20012002101641002000280208200028020c103b000baa0102047f017e230041206b22032400200341186a41808001360200200341a6c20436021420034100360210200341086a230041206b22022400200341106a220429020421062002410036021820022006370310200241106a200141ff0171410247047f200241106a4101103720010541000b103720042002290310370204200241086a2004200228021810112002290308370300200241206a240020002003280208200328020c103b000b5401017f230041106b220224002002200128020436020c200020012802002002410c6a100421002001200228020c103d410c21012000410b4d0440200041027441ecc1046a28020021010b200241106a240020010b0b002000200120021006000b6001017f230041106b2201240020004200370000200041186a4200370000200041106a4200370000200041086a420037000020014120360204200120003602002001412036020c20002001410c6a10082001200128020c103d200141106a24000b3701017f230041106b22022400200241086a410020012000280200200028020441a0ba04107820002002290308370200200241106a24000b6c02027f027e230041206b22002400200041086a220142003703002000420037030020004110360214200020003602102000411036021c20002000411c6a1009200041106a200028021c103d2001290300210220002903002103200041206a2400410541042002200384501b0b4c01017f230041206b220324002000450440410120021039000b200341186a4200370300200341106a4200370300200341086a420037030020034200370300200120031017410020021039000bc101002000027f024020014101710d00103e41ff01714105460d00200041043a000141010c010b200041c1006a4200370000200041396a4200370000200041316a4200370000200041296a4200370000200041f8006a4200370300200041f0006a420237030020004180016a420037030020004188016a4200370300200041d8006a4200370000200041d0006a4201370000200041e0006a4200370000200041e8006a4200370000200041286a41013a0000200041086a420237030041000b3a00000b2601017f230041106b220224002002200036020c20012002410c6a4104102c200241106a24000b2e01017f230041e0006b22012400200141086a200041d800100a1a2001420037030020011034200141e0006a24000ba90502027f027e230041d0026b220024000240103e41ff01714105460440200041808001360224200041a6c204360220200041206a1044200020002903203703a801027f4101200041a8016a10324281feffffff1f834280b6baede90b520d001a200041086a200041a8016a102a200041186a29030021022000290310210320002802080b0440410321010c020b103e41ff01714105470440410421010c020b200041e1016a4200370000200041d9016a4200370000200041d1016a4200370000200041c9016a4200370000200041f8016a420037030020004180026a420037030020004188026a420037030020004198026a4200370300200041a0026a4200370300200041a8026a4200370300200042013703f0012000420237039002200041013a00c801200042023703a801200041b0026a103c200041f0016a200041b0026a200320021013027f20002903a8014202520440200042013703a801200041b0016a0c010b200042013703a801200041b0016a0b2201200337030020012002370308200041c0016a220141003a0000200041f0006a2002370300200041da006a200041c8026a290300370100200041d2006a200041c0026a290300370100200041ca006a200041b8026a290300370100200041c2006a20002903b00237010020002003370368200041013a0041200041003a0020200041206a1042200041206a200041a8016a418801100a1a20014200370300200041b8016a4200370300200041b0016a4200370300200042003703a801200041206a200041a8016a1017200041d0026a24000f0b200041043a00a801200041a8016a102f000b200020013a00b002200041bc016a4101360200200042013702ac012000418887043602a801200041053602242000200041206a3602b8012000200041b0026a360220200041a8016a41d08604101c000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10052000200128020c103d200141106a24000bb81d02067f077e23004190056b2200240002400240103e41ff01712201410546044020004180800136026c200041a6c204360268200041e8006a1044200020002903683703b001200041b0016a103222064201832207a70d01200642807e8342002007501b22074280feffffff1f832206422088a721032006421888a721022006421088a7210402400240024002400240024002402007a741087641ff017122014182016b0e020105000b024020014192016b0e020402000b200141f400460d02200141fa01470d0741062101200441ff0171419801470d08200241ff01714133470d08200341a301470d08200041a0036a200041b0016a102820002903a0034201510d07200041ae026a200041c0036a2903002206370100200041a6026a200041b8036a2903002207370100200041de046a200041b0036a2903002208370100200041e6046a2007370100200041ee046a2006370100200041f6016a2008370000200041fe016a200737000020004186026a2006370000200020002903a80322063701d604200020063700ee01200041d0036a2903002107200041c8036a2903002106200041c0016a200041e8016a4126100a1a410321020c050b41062101200441ff017141c400470d07200241ff017141a101470d0741002102200341ad01460d040c070b41062101200441ff0171413a470d06200241ff017141e301470d06200341c801470d06200041a0036a200041b0016a10294101210220002d00a0034101460d05200041c8016a200041aa036a290100370300200041d0016a200041b2036a290100370300200041d7016a200041b9036a290000370000200020002901a2033703c00120002d00a10321050c030b41062101200441ff017141a201470d05200241ff017141fa00470d05200341c801470d05200041d0046a200041b0016a102920002d00d0044101460d0420004190026a200041b0016a102920002d0090024101460d04200041c2036a200028009402360000200041d0006a200041b0026a2d00003a0000200041a8036a200041da046a290100370300200041b0036a200041e2046a290100370300200041b7036a200041e9046a29000037000020002000280091023600bf03200020002901d2043703a0032000200041a8026a290300370348200041a0026a290300210720004198026a290300210620002d00d1042105200041c0016a200041a0036a4126100a1a410221020c020b41062101200441ff0171412e470d04200241ff01714129470d042003411f470d04200041a0036a200041b0016a102820002903a0034201510d03200041ae026a200041c0036a2903002206370100200041a6026a200041b8036a2903002207370100200041de046a200041b0036a2903002208370100200041e6046a2007370100200041ee046a2006370100200041f6016a2008370000200041fe016a200737000020004186026a2006370000200020002903a80322063701d604200020063700ee01200041d0036a2903002107200041c8036a2903002106200041c0016a200041e8016a4126100a1a410421020c010b41062101200441ff0171419f01470d03200241ff01714102470d03200341e300470d03200041c0016a200041b0016a102920002d00c0014101460d02200041e8016a200041b0016a102920002d00e8014101460d02200041306a200041b0016a102a2000290330a70d02200041406b29030021082000290338210a200041c8046a2201200041d9016a290000370300200041c0046a2205200041d1016a290000370300200041b8046a2202200041c9016a290000370300200041d0006a20004181026a2d00003a0000200020002900c1013703b0042000200041f9016a290000370348200020004182026a2801003602b801200020004185026a2800003600bb01200041f1016a290000210720002900e9012106200041b6036a200529030022093701002000419e026a2002290300220b370100200041a6026a2009370100200041ae026a2001290300220c370100200041ee046a200c370000200041e6046a2009370000200041de046a200b370000200020002903b004220937019602200020093700d604200041c0016a200041d0046a4126100a1a410521020b20004188016a200041c0016a4126100a1a20004180016a200041d0006a2d00003a000020002000290348370378200020002802b801360270200020002800bb01360073200221010c020b200020013a00a003200041a0036a102f000b410621010b20002001410646047f410305200041c0016a20004188016a4126100a1a200041e4006a2000280073360000200041e0006a220220004180016a2d00003a000020002000280270360061200041d0006a200229030037030020002000290378220937035820002009370348200041e8016a200041c0016a4126100a1a02400240024002400240024002400240024002400240200141016b0e050403020100050b200041a0036a41800210404101210120002d00a0034101460d09200041a0036a20004196026a200041a8036a418801100a418801100a1a200041a0016a20004186026a29000037030020004198016a200041fe016a29000037030020004190016a200041f6016a290000370300200020002900ee0137038801200041e8046a200041d0006a290300370300200020073703d804200020063703d004200020002903483703e00420004190026a103c200041206a200041a0036a20004188016a20004190026a10460240024020002903202207200a542202200041286a290300220620085420062008511b0d00200041a0036a20004188016a200041d0046a200a2008104741ff017122014102470d002007200a7d220a200756200620087d2002ad7d220720065620062007511b0d0120004188046a20004188016a20004190026a200a20071015410221010b2001410246200041a0036a2001103f000b41808004412141bc8704100c000b200041a0036a418002104020002d00a0034101460d08200041a0036a20004196026a200041a8036a418801100a418801100a1a200041c8046a220120004186026a290000370300200041c0046a2202200041fe016a290000370300200041b8046a2203200041f6016a290000370300200020002900ee013703b00420004188016a103c20004188046a20004188016a200041b0046a200620071015200041e8046a200041a0016a290300370300200041e0046a20004198016a290300370300200041d8046a20004190016a290300370300200041f8046a200329030037030020004180056a200229030037030020004188056a200129030037030020002000290388013703d004200020002903b0043703f00420004198026a200041d0046a41c000100a1a200041e0026a2007370300200041d8026a2006370300200042013703900220004190026a10344101200041a0036a4102103f000b200041a0036a418002104020002d00a0034101460d07200041a0036a20004196026a200041a8036a418801100a418801100a1a200041e8046a20004186026a290000370300200041e0046a200041fe016a290000370300200041d8046a200041f6016a290000370300200020002900ee013703d00420004190026a103c200041a0036a20004190026a200041d0046a20062007104741ff01712201410246200041a0036a2001103f000b200041a0036a4100104020002d00a0034101470d020c060b200041a0036a4100104020002d00a0034101460d05200041a0036a20004196026a200041a8036a418801100a418801100a1a20004199026a200041c8016a290100370000200041a1026a200041d0016a290100370000200041a8026a200041d7016a290000370000200020053a009002200020002901c001370091022000200041a0036a20004190026a10482000200041086a2903003703d804200020002903003703d004200041d0046a1038000b200041a0036a4100104020002d00a0034101460d0420004190016a200041d1036a29000037030020004198016a200041d9036a290000370300200041a0016a200041e1036a2900003703002000200041c9036a290000370388010240200041a8036a29030022064202520440200041b8036a2903002107200041b0036a29030021080c010b200041c8036a2d00004101470d04200041e8046a2201200041a0016a290300370300200041e0046a220220004198016a290300370300200041d8046a220320004190016a29030037030020002000290388013703d00420004180800136029402200041a6c20436029002024002400240200041d0046a20004190026a103a0e0402000001000b200041b4036a410036020020004184be043602b003200042013702a403200041e0be043602a003200041a0036a41bcbf04101c000b420021060c010b200041c0036a2001290300370300200041b8036a2002290300370300200041b0036a2003290300370300200020002903d0043703a803200042013703a00320004190026a200041a8036a101920002d0090024101460d0220004198026a290300500d03200041a8026a2903002107200041a0026a2903002108420121060b20064201520d03200020083703a003200020073703a803200041a0036a1038000b200041a0036a20004196026a200041a8036a418801100a418801100a1a20004190026a200041c0016a4126100a1a20004191016a200041c8016a29010037000020004199016a200041d0016a290100370000200041a0016a200041d7016a290000370000200020053a008801200020002901c00137008901200041df046a2007370000200041ef046a200041d0006a2d00003a0000200020063700d7042000200041b2026a2800003600d304200020002800af023602d004200020002903483700e704200041106a200041a0036a20004188016a200041d0046a10462000200041186a2903003703b804200020002903103703b004200041b0046a1038000b200020002d0091023a00b004419c81044127200041b0046a419c8404419082041049000b41a08204411741b88204104a000b41a18004411e418c8104104a000b20002d00a1030b3a00d004200041b4036a4101360200200042013702a403200041b487043602a0032000410536029402200020004190026a3602b0032000200041d0046a36029002200041a0036a41d08604101c000b6902017f017e230041406a220424002004200336021c20042002360218200441206a200141e8006a200441186a100e2004200441206a1018200429030821052000200441106a2903004200200428020022011b37030820002005420020011b370300200441406b24000bde0202037f037e23004180016b22052400200541186a2000200110480240200529031822092003542207200541206a290300220820045420042008511b450440200041c8006a22062001200920037d200820047d2007ad7d1013200541086a2000200210482005290308220820037c220a20085422002000ad200541106a290300220820047c7c220920085420082009511b0d0120062002200a20091013200541f8006a2004370300200541c1006a200141186a290000370000200541396a200141106a290000370000200541316a200141086a290000370000200541ca006a2002290000370100200541d2006a200241086a290000370100200541da006a200241106a290000370100200541e2006a200241186a29000037010020052003370370200541013a0049200541013a002820052001290000370029200541286a1042410221060b20054180016a240020060f0b41808404411c41cc8704100c000b6202017f017e230041406a220324002003200236021c200341206a200141c8006a2003411c6a10122003200341206a1018200329030821042000200341106a2903004200200328020022011b37030820002004420020011b370300200341406b24000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41073602002005420237021c200541b4be04360218200541063602342005200541306a3602282005200541106a3602382005200541086a360230200541186a2004101c000b6001017f230041106b220324002003200136020c20032000360208230041206b22002400200041146a410136020020004201370204200041d4bb043602002000410636021c2000200341086a3602182000200041186a36021020002002101c000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41dc8704200241086a104c200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a106620032003290310370320200341086a20042000410c6a106620032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002104e41000b3f01017f2000200210502000280208220320002802006a20012002100a1a2003200220036a22014b044041808804411c41a48c04100c000b200020013602080bb90201027f230041106b22022400024002400240200028020022002002410c6a027f02400240200141ff004d0440200028020822032000280204460d010c040b2002410036020c2001418010490d0120014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c020b200041011050200028020821030c020b20022001413f71418001723a000d2002200141067641c001723a000c41020b104e0c010b200028020020036a20013a0000200341016a22012003490d01200020013602080b200241106a240041000f0b41808804411c41948c04100c000bbe0301077f230041106b22052400024002400240200120002802042207200028020822026b4b0440200120026a22012002490d03200720076a22032007490d022000280200410020071b210841002102230041106b220624002005027f2003200120012003491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001105320062802082104200628020c0c030b2001419cc204280200220320016a22022003490d021a41a0c2042802002002490440200141ffff036a220441107640002202417f46200241ffff0371200247720d022002411074220320044180807c716a22022003490d024100210441a0c20420023602002001200120036a22022003490d031a0b419cc204200236020020012003450d021a200320082007100a210420010c020b2006200110532006280200210420062802040c010b4100210420010b2102200404402005200436020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d01000b41a08904412141c48904100c000b1052000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a104b200241206a24000b0f0041d48904411141e88904100c000ba90101027f027f41012001450d001a4100419cc204280200220220016a22032002490d001a024041a0c2042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141a0c20420033602004100200120026a22032002490d021a0b419cc204200336020020020c010b41000b210320002001360204200020033602000b0e0020002802001a03400c000b000bb20302047f027e027f2000350200210620012104230041306b22032400412721000240024020064290ce00540440200621070c010b412721010240034020064290ce00802107200141046b220020014e0d01200341096a20006a200620074290ce007e7da7220141ffff037141e4006e220241017441f492046a2f00003b00002000200041026a22054c0440200341096a20056a2001200241e4006c6b41ffff037141017441f492046a2f00003b0000200642ffc1d72f562000210120072106450d030c010b0b41f08c04411c41b4af04100c000b0c010b02402007a7220241e3004c0440200021010c010b200041026b220120004e0d01200341096a20016a2007a72200200041ffff037141e4006e220241e4006c6b41ffff037141017441f492046a2f00003b00000b02402002410a4e0440200141026b220020014e0d02200341096a20006a200241017441f492046a2f00003b00000c010b200141016b220020014e0d01200341096a20006a200241306a3a00000b412720006b220141274b04400c010b20044184be044100200341096a20006a20011058200341306a24000c010b41c08c04412141b4af04100c000b0b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41c08c04412141bcc004100c000b0d0042a0e5d6f4fad3e0bc897f0b920401077f230041106b22072400418080c400210920042105024020002802002206410171450d002004200441016a22054d0440412b21090c010b41f08c04411c41a89504100c000b0240024002400240200641047145044041002101200521060c010b2001200120026a105920056a22062005490d010b41012105200028020841014704402000200920012002105a0d032000280218200320042000411c6a28020028020c11000021050c030b024002402000410c6a280200220820064b044020002d00004108710d01200820066b220620084b0d022007200020064101105b20072802002206418080c400460d05200728020421082000200920012002105a0d052000280218200320042000411c6a28020028020c1100000d05200620082000105c21050c050b2000200920012002105a0d042000280218200320042000411c6a28020028020c11000021050c040b2000280204210a2000413036020420002d0020210b200041013a00202000200920012002105a0d03200820066b220120084b0d02200741086a200020014101105b20072802082201418080c400460d03200728020c21022000280218200320042000411c6a28020028020c1100000d03200120022000105c0d032000200b3a00202000200a360204410021050c030b41c08c04412141d89504100c000b41f08c04411c41b89504100c000b41c08c04412141c89504100c000b200741106a240020050b4401017f2000200146044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a22002001470d000b20020f0b41f08c04411c41a4af04100c000b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000bb20101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03010001020b2002200241016a22034d044020034101762105200241017621040c020b41f08c04411c41e89504100c000b41002105200221040b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b4701027f2002411c6a28020021032002280218210441002102027f0340200120012002460d011a200241016a2102200420002003280210110100450d000b200241016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341b89004360208200341043602242003200341206a360218200320033602282003200341046a360220200341086a2002101c000b5901017f230041106b220624000240200120024d0440200220044d0d01200220042005105f000b2001200220051060000b200641086a2001200220031056200020062802083602002000200628020c360204200641106a24000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341a09804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41043602002003420237020c200341d49804360208200341043602242003200341206a3602182003200341046a36022820032003360220200341086a2002101c000b880101047f200141086a28020021022001280204210402400240200141046a10622205418080c400470440200220046b2203200128020420012802086b6a220220034b0d012001280200220320026a22022003490d02200120023602000b20002005360204200020033602000f0b41c08c04412141dc9a04100c000b41f08c04411c41ec9a04100c000bb70101047f200028020022012000280204460440418080c4000f0b2000200141016a36020020012d00002203411874411875417f4c047f2000200141026a36020020012d0001413f7121022003411f712104200341df014d044020044106742002720f0b2000200141036a36020020012d0002413f712002410674722102200341f00149044020022004410c74720f0b2000200141046a3602002004411274418080f0007120012d0003413f71200241067472720520030b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b980301057f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1061200228021c418080c400470d010c020b0b200241106a200241206a10612002280214418080c400460d00200241086a2002280210200320041063200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a105922054d04402001280218200320042001411c6a28020028020c11000021000c010b20022001200020056b4100105b4101210020022802002205418080c400460d00200228020421062001280218200320042001411c6a28020028020c1100000d00200520062001105c21000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141e49204102e000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a104c200341206a24000b6c01027f230041206b2202240041012103024020002001106a0d002002411c6a410036020020024184be043602182002420137020c200241e88d04360208200141186a2802002001411c6a280200200241086a10680d00200041046a2001106a21030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110550c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1067200141d4bc0441022002280208200228020c10580c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1067200141d4bc0441022002280200200228020410580b20024190016a24000ba908010c7f230041e0006b22032400027f024020020440200341d8006a210d2000280204210b2000280200210c2000280208210a0340200a2d00000440200c41c990044104200b28020c1100000d030b2003410a3602582003428a808080103703502003200236024c200341003602482003200236024420032001360240200341386a2001200241002002106c0240024020032802382207450d00200328023c210503400240024002400240024002402003280254220041016b220420004d0440200320046a41d8006a2d00002108200541084f0440200741036a417c7120076b2200450440410021040c030b200341306a410020052000200020054b1b22042007200541ec9604105e20032802342206450d0220032802302109410021000340200020096a2d00002008460d04200041016a22002006470d000b0c020b2005450d08410021000340200020076a2d00002008460d03200041016a22002005470d000b0c080b41c08c04412141f09d04100c000b0240024002402005200541086b22004f0440200020044f0d010c020b41c08c04412141fc9604100c000b200841818284086c210902400340200441046a22062004490d01200420076a280200200973220e417f73200e41818284086b71200620076a2802002009732206417f73200641818284086b7172418081828478710d022004200441086a22064d04402000200622044f0d010c040b0b41f08c04411c419c9704100c000b41f08c04411c418c9704100c000b200421060b20052006490d01200341286a2006200520071056200328022c2204450d06200328022821054100210003402008200020056a2d00004704402004200041016a2200470d010c080b0b200020066a220020064f0d0041f08c04411c41bc9704100c000b2000200041016a22044b0d012004200328024822046a22002004490d0220032000360248200020032802542204490d03200341206a20032802402003280244200020046b22052000106c20032802202200450d0320032802242104200341186a41002003280254200d410441a09e04105e2004200328021c470d03027f20032802182106034041002004450d011a200441016b210420062d0000210720002d00002108200041016a2100200641016a210620072008460d000b200820076b0b0d03200a41013a0000200541016a220020054f0d0641f08c04411c41c09104100c000b2006200541ac9704102e000b41f08c04411c41809e04100c000b41f08c04411c41909e04100c000b200341106a200328024020032802442003280248200328024c106c20032802142105200328021022070d000b0b200a41003a0000200221000b200341086a20012002200041d09104106d200c2003280208200328020c200b28020c1100000d02200320002001200241e09104106e20032802002101200328020422020d000b0b41000c010b41010b200341e0006a24000b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011056200528020c2107200528020821060b2000200736020420002006360200200541106a24000b4e01027f230041106b22052400200541086a20032001200210632005280208220645044020012002410020032004106f000b200528020c21012000200636020020002001360204200541106a24000b6400024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b2003200320016b220449044041c08c04412141ec9b04100c000b200020043602042000200120026a3602000f0b20022003200120032004106f000bb20601027f23004180016b220524002005200336021c200520023602182005027f20014181024f0440418002210602400340200020066a2c000041bf7f4a0d01200641016b22060d000b410021060b200541106a20002001200641f09c04106d20052005290310370320200541b09e0436022841050c010b200520013602242005200036022020054184be0436022841000b36022c024002402005200120024f047f200120034f0d0120030520020b360238200541d4006a4103360200200541ec006a4106360200200541e4006a410636020020054203370244200541d89e043602402005410436025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580c010b200541086a027f02400240200220034d04402002450d010240200120024d044020012002470d010c030b200020026a2c000041bf7f4a0d020b20052002360230200221030c020b200541f4006a4106360200200541ec006a4106360200200541e4006a4104360200200541d4006a410436020020054204370244200541949f043602402005410436025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c030b2005200336023041002003450d011a0b03400240200120034d044020012003470d0120010c030b200020036a2c00004140480d0020030c020b200341016b22030d000b41000b2206200020012004106e20052005280208220036025820052000200528020c6a36025c2005200541d8006a10622004107022003602342006027f41012000418001490d001a41022000418010490d001a41034104200041808004491b0b20066a22004d04402005200036023c20052006360238200541d4006a4105360200200541fc006a4106360200200541f4006a4106360200200541ec006a410a360200200541e4006a410b36020020054205370244200541e89f043602402005410436025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c010b41f08c04411c2004100c000b200541406b2004101c000b1a002000418080c40046044041908f04412b2001100c000b20000b920a02097f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b7421034100210141202100412021040240027e024002400240024002400240024002400240024002400340200120004101766a22002001490d0302402003200041027441c4af046a280200410b7422054d044020032005460d03200021040c010b200041016a22012000490d050b2004200420016b22004f044020012004490d010c030b0b41c08c04412141849904100c000b200041016a21010b2001411f4b0d022001410274220341c4af046a280200411576210002402001411f470440200341c8af046a280200411576220320006b220420034d0d0141c08c04412141ccad04100c000b41c30520006b220441c4054f0d040b4100210320022001200141016b22054f047f200541204f0d05200541027441c4af046a28020041ffffff00710541000b6b220a20024b0d05200441016b220320044b0d06200020046a41016b210402402003450d00200041c305200041c3054b1b210941002101034020002009460d09024020012001200041c4b0046a2d00006a22054d04402005200a4d0d01200021040c030b41f08c04411c418cae04100c000b200041016a210020052101200341016b22030d000b0b20044101710d08024002402002418080044f04402002418080084f0d01200241e7a604412a41bba70441c00141fba80441b60310720d0d0c020b200241c8a10441284198a20441a00241b8a40441af021072450d010c0c0b200241e0ffff007141e0cd0a46200241b9ee0a6b41074972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d0b0b200241017267410276410773ad4280808080d000840c090b41f08c04411c41e49804100c000b41f08c04411c41f49804100c000b2001412041acad04105d000b41c08c04412141bcad04100c000b20054120419cae04105d000b41c08c04412141dcad04100c000b41c08c04412141ecad04100c000b200941c30541fcad04105d000b200241017267410276410773ad4280808080d000840b210b41032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b0240034002402001210241002101200321000240024002400240200241016b0e03030200010b02400240024002400240200b422088a741ff017141016b0e050004010203050b200b42ffffffff8f6083210b41fd002100410321010c060b200b42ffffffff8f608342808080802084210b41fb002100410321010c050b200b42ffffffff8f608342808080803084210b41f5002100410321010c040b200b42ffffffff8f60834280808080c00084210b41dc002100410321010c030b200ba7220141ffffffff03712001470d032001410274220041204f0d0520032000411c7176410f712200413072200041d7006a2000410a491b41808f04107021002001450440200b42ffffffff8f608342808080801084210b410321010c030b200b42017d42ffffffff0f83200b4280808080708384210b410321010c020b20074127200811010021060c050b41dc002100410121010b200720002008110100450d010c030b0b41908d04412141e08e04100c000b41c08d04412441f08e04100c000b20060b970301087f230041106b220a240041012107024002402002450d00200120024101746a210b20004180fe0371410876210c200141026a210820012d00012102200041ff0171210e03402002210d0240200c20012d000022014704402008200b462001200c4b720d030c010b200a41086a2009200d200320044198a104105e200a2802082102200a28020c2101024003402001450d01200141016b210120022d0000200241016a2102200e470d000b410021070c040b2008200b460d020b20082d000121022008220141026a2108200d2209200220096a22024d0d000b41f08c04411c4188a104100c000b2006450d00200520066a2103200041ffff03712102024003400240200541016a2100027f200020052d00002201411874411875220441004e0d001a20002003460d0120052d0001200441ff0071410874722101200541026a0b2105200141004a2002200220016b22024a730d0220024100480d032007410173210720032005470d010c030b0b41908f04412b41a8a104100c000b41c08c04412141b8a104100c000b200a41106a240020074101710b7e01037f23004190016b2202240020002d0000210341ff0021000340200241106a20006a413041372003410f712204410a491b20046a3a0000200041016b21002003220441047621032004410f4b0d000b200241086a200241106a200041016a1067200141d4bc0441022002280208200228020c105820024190016a24000b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a104c200241206a24000b0b002000280200200110640b1b00200128021841e4c10441052001411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a280200220441e48f04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241f48f043602282002410c3602142002200241106a36023820022002410c6a36021020042001200241286a1068450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241f48f043602282002410d3602142002200241106a36023820022002410c6a36021020042001200241286a10680d010b200328020c2100200241246a41033602002002413c6a410e360200200241346a410e36020020024203370214200241bc8f0436021020022000410c6a3602382002200041086a3602302002410636022c200220003602282002200241286a36022020042001200241106a106821000b200241406b240020000b5901017f230041106b220624000240200120024d0440200220044d0d01200220042005105f000b2001200220051060000b200641086a2001200220031079200020062802083602002000200628020c360204200641106a24000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41a0b60441214188b604100c000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41d0c004412141bcc004100c000b0be8410c00418080040bf107617474656d707420746f2073756274726163742077697468206f766572666c6f77656e636f756e746572656420656d7074792073746f726167652063656c6c2f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f6c617a792f6d6f642e727300003f0001004b0000009d00000019000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f7472616974732f6d6f642e7273c30001004d000000a80000000a00000073746f7261676520656e7472792077617320656d70747900c30001004d000000a90000000a0000006661696c656420746f2070756c6c207061636b65642066726f6d20726f6f74206b6579204801010024000000301f0100020000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f73746f726167652f7372632f7472616974732f6f7074737065632e72730000007c010100510000006b0000000d000000681f0100540000009900000030000000681f0100540000009e0000002e000000617474656d707420746f206164642077697468206f766572666c6f770f000000010000000100000001000000241c010055000000b500000037000000241c010055000000b80000000900000045726332303a3a5472616e7366657200041f0100000000004c02010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a5472616e736665723a3a76616c756545726332303a3a417070726f76616c000000041f010000000000a602010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e64657245726332303a3a417070726f76616c3a3a76616c75652f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6578616d706c65732f74726169742d65726332302f6c69622e727308030100480000003f000000050000006469737061746368696e6720696e6b2120636f6e7374727563746f72206661696c65643a2000000060030100250000006469737061746368696e6720696e6b21206d657373616765206661696c65643a2000000090030100210000000803010048000000cc0000002c0000000803010048000000020100002700000010000000040000000400000011000000120000001300418088040bb104617474656d707420746f206164642077697468206f766572666c6f77140000000000000001000000150000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727300000000000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000002c0401006d000000830100001c0000006361706163697479206f766572666c6f770000002c0401006d000000fd010000050000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72732b05010069000000550200001c0000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e7273000000a40501006d000000c60600000d000000a40501006d00000002070000090041c08c040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041f08c040b41617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770041c08d040bd528617474656d707420746f2073686966742072696768742077697468206f766572666c6f772e2e0000e4060100020000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e7273000000f00601006d000000a200000035000000f00601006d000000a200000021000000f00601006d000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75653a041f010000000000bb07010001000000bb070100010000001600000000000000010000001700000070616e69636b65642061742027272c20f007010001000000f107010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e6465782069732000000408010020000000240801001200000060202020202f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e727300004d0801007100000028000000150000004d080100710000002f000000210000004d0801007100000030000000120000002c0a280a28292f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e72730000f60801006c000000650000001400000030303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72733c0a01006c0000001e0500000d0000003c0a01006c000000220500000d0000003c0a01006c00000045050000310000003c0a01006c0000004e050000310000003c0a01006c000000b2050000380000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000f80a010071000000420000001e000000f80a0100710000004900000015000000f80a0100710000004e0000001f000000f80a0100710000005700000009000000f80a0100710000005b00000005000000f80a0100710000005b0000003d00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820cc0b010012000000de0b01002200000072616e676520656e6420696e64657820100c010010000000de0b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000300c010016000000460c01000d0000008f1b01006e000000c6080000170000008f1b01006e000000d1080000180000008f1b01006e000000da08000014000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028940c010015000000a90c01002b000000f5080100010000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273000000ec0c01006d0000009200000026000000ec0c01006d00000092000000110000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e7273007c0d01006f0000005c010000130000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e7273fc0d0100740000001d010000110000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273800e010070000000a001000047000000800e010070000000b301000020000000800e010070000000b301000011000000800e010070000000b7010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000350f01000b000000400f0100160000004808010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e6720600000700f01000e0000007e0f010004000000820f0100100000004808010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060350f01000b000000b40f010026000000da0f010008000000e20f01000600000048080100010000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e727300001010010076000000080000001800000010100100760000000a0000001c00000010100100760000001a0000003600000010100100760000001e0000000900000000010305050606020706080709110a1c0b190c1a0d100e0d0f0410031212130916011704180119031a071b011c021f1620032b032d0b2e01300331023201a702a902aa04ab08fa02fb05fd02fe03ff09ad78798b8da23057588b8c901cdd0e0f4b4cfbfc2e2f3f5c5d5fe2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d11293a3b4549575b5c5e5f64658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff806d71dedf0e1f6e6f1c1d5f7d7eaeaf7fbbbc16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f747596262e2fa7afb7bfc7cfd7df9a409798308f1fd2d4ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab051f09811b03190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15054e071b0757070206160d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd03590716091809140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a062f314d0380a4083c030f033c0738082b0582ff1118082f112d03210f210f808c048297190b158894052f053b07020e180980be22740c80d61a0c0580ff0580df0cf29d033709815c1480b80880cb050a183b030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a61081f50701202a064c04808d0480be031b030f0d000601010301040205070702080809020a050b020e041001110212051311140115021702190d1c051d0824016a046b02af03bc02cf02d102d40cd509d602d702da01e005e102e704e802ee20f004f802fa02fb010c273b3e4e4f8f9e9e9f7b8b9396a2b2ba86b1060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5fbfeeef5a62f4fcff9a9b2e2f2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fe7ecefffc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b4e43813709160a08183b45390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a161a261c1417094e042409440d19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d133a060a362c041780b93c64530c48090a46451b4808530d498107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48a4c630d842f8fd18247a1b98239072a045c06260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2e781332d03110408818c89046b050d0309071092604709743c80f60a7308701546809a140c570919808781470385420f1584501f80e12b80d52d031a040281401f113a050184e080f7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d80510030d03740c59070c04010f0c0438080a062808224e81540c1503050307091d030b05060a0a060808070980cb250a84062f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000031160100790000004b0000002800000031160100790000004f0000000900000031160100790000004d00000009000000311601007900000054000000110000003116010079000000560000001100000031160100790000005700000016000000311601007900000058000000090000003116010079000000520000003e0000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727300002c170100760000008d00000001000000f60801006c000000cd010000050000000003000083042000910560005d13a0001217201f0c20601fef2ca02b2a30202c6fa6e02c02a8602d1efb602e00fe20369eff6036fd01e136010a2137240de137ab0e61392f18a139301ce147f31e214cf06ae14f4f6f21509dbca15000cf615165d1a15100da215200e0e15330e16155aee2a156d0e8e15620006e57f001ff5700700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b033c082a180120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c01090128010301370101030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d021e021e02400201070801020b09012d030101750222017603040209010603db0202013a010107010101010208060a0201301f310430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c6400001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990b31047b01360f290102020a033104020207013d03240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002002e0217000101030405080802071e0494030037043208010e011605010f00070111020701020105000700013d0400076d07006080f00000cc1f010070000000e70000004f0041a0b6040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041d0b6040baf06617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e72730000008f1b01006e000000e6050000090000000a000000041f010000000000101c0100010000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000241c010055000000580000001c000000241c0100550000005800000009000000241c0100550000005800000031000000241c0100550000006300000009000000241c010055000000810000001a0000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000cc1c010052000000530100001400000045636473615265636f766572794661696c65644c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e645f456e646f776d656e74546f6f4c6f775472616e736665724661696c65645f42656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f6465041f0100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f7230780000541e0100020000005f000000601e010001000000041f010000000000041f010000000000041f01004188bd040b0920000000080000000200419cbd040b150200000003000000010000002000000008000000020041bcbd040b150200000003000000020000002000000008000000020041dcbd040b150200000003000000030000002000000008000000020041fcbd040b9d0402000000030000005765206465636f646520604e6020656c656d656e74733b20716564007120010062000000cd020000170000003a200000041f010000000000301f010002000000656e636f756e746572656420756e6578706563746564206572726f72441f01001c0000002f55736572732f677265656e2f45787465726e616c2f346972652e6c6162732f696e6b5f6f726967696e616c2f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273681f01005400000014010000170000002f55736572732f677265656e2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e7273cc1f010070000000e00000004c00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f677265656e2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72730071200100620000006d0000000e0000004572726f72000000000000000100000002000000030000000400000005000000060000000700000008000000090000000c0000000b" + }, + "contract": { + "name": "trait_erc20", + "version": "3.0.0-rc7", + "authors": [ + "Parity Technologies " + ] + }, + "V3": { + "spec": { + "constructors": [ + { + "args": [ + { + "label": "initial_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when a token transfer occurs." + ], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Event emitted when an approval occurs that `spender` is allowed to withdraw", + " up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [ + " Returns the total token supply." + ], + "label": "BaseErc20::total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "selector": "0x8244a1ad" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "BaseErc20::balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "selector": "0x933ae3c8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "BaseErc20::allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "selector": "0x74a27ac8" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "BaseErc20::transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 8 + }, + "selector": "0xfa9833a3" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "BaseErc20::approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 8 + }, + "selector": "0x922e291f" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "BaseErc20::transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "Result" + ], + "type": 8 + }, + "selector": "0x839f0263" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 6 + } + }, + "name": "allowances" + } + ] + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "Key" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "offset_key", + "type": 5, + "typeName": "Key" + } + ] + } + }, + "params": [ + { + "name": "K", + "type": 7 + }, + { + "name": "V", + "type": 0 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "trait_erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": [ + "Option" + ] + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json new file mode 100644 index 0000000..b8c8170 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/erc20.contract.json @@ -0,0 +1 @@ +{"source":{"hash":"0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d","language":"ink! 4.3.0","compiler":"rustc 1.75.0","wasm":"0x0061736d0100000001601060037f7f7f017f60027f7f0060027f7f017f60037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c301176616c75655f7472616e736665727265640001057365616c3005696e7075740001057365616c300663616c6c65720001057365616c300d64656275675f6d6573736167650002057365616c300f686173685f626c616b65325f3235360003057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100351500007030b0101030c0d0101030305030101070401010001010304070e03010409030201020004030108010a0a0104080f0408030501040801090200000202020204010202070605060105020203050205040501700110100608017f01418080040b0711020463616c6c0037066465706c6f79003a0915010041010b0f54532c2a465748272747274445424a0ad37d502b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2200200120034d044020002001360204200020023602000f0b200120032004100b000b0e0020002001200241cc960410580bbb0102037f017e230041306b2204240020044100360220200442808001370228200441d0a30436022441b7c380e57e200441246a2205100d20002005100e20012005100e20042004290224370218200441106a200441186a2206200428022c100f2004280214210020042802102101200429021821072004410036022c20042007370224200220032005101020042004290224370218200441086a2006200428022c100f200120002004280208200428020c10071a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041021200241106a24000b0a0020012000412010210b4501017f2002200128020422034b0440419ca00441234194a2041017000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101021200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341d0a30436022441e7b98fb102200341246a2204100d20002004100e20032003290224370218200341106a200341186a2205200328022c100f2003280214210020032802102106200329021821072003410036022c20032007370224200120022004101020032003290224370218200341086a2005200328022c100f200620002003280208200328020c10071a200341306a24000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003100e20022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b3f01027f2001280204220320012802082202490440200220034184a2041029000b200041003602082000200320026b3602042000200128020020026a3602000b100020012002101c20022000200110210b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1005200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041988204100a2003280208200328020c2001200241a88204101a0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b2900200220034904402003200241b886041029000b2000200220036b3602042000200120036a3602000b4601017f230041206b220324002003410c6a420037020020034101360204200341f49f043602082003200136021c200320003602182003200341186a36020020032002102b000bd10102037f017e230041d0006b22022400200241186a220420001013200229021821052002410036022c2002200537022420012802002001280204200241246a2203101420012802082003101920022002290224370218200241106a2004200228022c100f2003200228021020022802141015200241086a200028020020002802042000280208220110162002410036024c200220022903083702442003200241c4006a100e20012001200228024c6a22034b044041c08204411c41c886041017000b20002003360208200241d0006a24000b210020002d00004504402001410010300f0b200141011030200041016a2001100e0b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41053602002000410336020c200041a09804360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a2004102b000b6a01037f230041206b22012400200141086a200028020020002802042000280208220210162001410036021c200120012903083702144103200141146a101c20022002200128021c6a22034b044041c08204411c41c886041017000b20002003360208200141206a24000b7401017f230041106b2202240002402000413f4d04402001200041027410300c010b200041ffff004d0440200220004102744101723b010e20012002410e6a410210210c010b200041ffffffff034d044020004102744102722001100d0c010b20014103103020002001100d0b200241106a24000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120101e45044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f200028020422032002492204450440200120022000280200220120024190a304101a2000200320026b3602042000200120026a3602000b20040ba90102017f027e230041406a220224002002411f6a2001101d0240024020022d001f0d002002200110202002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110101e45044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241e4a104101a200020033602080f0b4180a004411c41c4a1041017000b2003200541d4a104100b000bb20101027f230041306b2201240020014180800136020441d0a304200141046a2202100320014180800136022c200141d0a3043602282002200141286a101d20012d00040440200141003a000441a0850441c100200141046a41dc820441e485041023000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541fc9004360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a2004102b000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10012000290308210120002903002102200041206a2400410541042001200284501b0b850302047f027e230041d0006b220324002003410036023020034280800137023c200341d0a30436023841b7c380e57e200341386a2204100d20012004100e20022004100e20032003290238370228200341206a200341286a2003280240100f2003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641908504100a027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10202003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341a08604360238200341f49f04360240200341386a41a88604102b000b200341003a0037200341c4006a42013702002003410136023c2003419081043602382003410336022c2003200341286a3602402003200341376a360228200341386a41988104102b000b42000b21082000200737030020002008370308200341d0006a24000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241d0a30436023841e7b98fb102200241386a2204100d20012004100e20022002290238370228200241206a200241286a2002280240100f2002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641908504100a027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10202002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241a08604360238200241f49f04360240200241386a41a88604102b000b200241003a0037200241c4006a42013702002002410136023c2002419081043602382002410336022c2002200241286a3602402002200241376a360228200241386a41988104102b000b42000b21082000200737030020002008370308200241d0006a24000b0300010b1b002000418180014f044020004180800141f48504100b000b20000b0e0020002001200241ac960410580b840101017f230041306b22022400200241146a42013702002002410136020c200241f49e0436020820024102360224200220002d0000410274220041a0a3046a28020036022c2002200041b4a3046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10432100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241989004360210200241f49f0436020c2002410c6a1049000bdd0401047f230041106b220224000240024002400240024002400240024002400240024002400240024020002d000041016b0e0c0102030405060708090a0b0c000b410121002001280214220341ec82044106200141186a280200220528020c22041100000d0c024020012d001c410471450440200341929104410120041100000d0e200341e4890441052004110000450d010c0e0b200341939104410220041100000d0d2002200536020420022003360200200241013a000f20022002410f6a360208200241e489044105102d0d0d2002419091044102102d0d0d0b200341fc8f044101200411000021000c0c0b200128021441f28204410d200141186a28020028020c11000021000c0b0b200128021441ff8204410e200141186a28020028020c11000021000c0a0b2001280214418d8304410b200141186a28020028020c11000021000c090b200128021441988304411a200141186a28020028020c11000021000c080b200128021441b28304410e200141186a28020028020c11000021000c070b200128021441c083044110200141186a28020028020c11000021000c060b200128021441d08304410c200141186a28020028020c11000021000c050b200128021441dc8304410b200141186a28020028020c11000021000c040b200128021441e783044107200141186a28020028020c11000021000c030b200128021441ee8304410f200141186a28020028020c11000021000c020b200128021441fd83044111200141186a28020028020c11000021000c010b2001280214418e84044113200141186a28020028020c11000021000b200241106a240020000bd40701107f230041d0006b22032400200341003b014c200320023602482003410036024420034281808080a00137023c2003200236023820034100360234200320023602302003200136022c2003410a3602282000280204210c2000280200210d2000280208210e200341406b210f027f0340024020032d004d450440200328022c210a02400240024002402003280238220b200328023022104b0d0020032802342202200b4b0d00200328023c2204450d012004200f6a41016b21110340200a200222076a210020112d0000210602400240024002400240027f02400240200b20026b220541084f0440024002402000200041036a417c712202460440200541086b2108410021020c010b200341206a20062000200220006b2202105620032802204101460d012002200541086b22084b0d030b200641818284086c21090340200020026a220141046a2802002009732212417f73201241818284086b7120012802002009732201417f73200141818284086b7172418081828478710d03200241086a220220084d0d000b0c020b200328022421010c020b200341106a20062000200510562003280214210120032802100c020b200220054b0d02200341186a2006200020026a200520026b1056410020032802184101470d011a2002200328021c6a22012002490d030b41010b22004101460440200141016a2202450d0302402007200220076a22024d04402003200236023420022004490d07200220104d0d010c070b41e08f04411c41b89d041017000b200441054f0d04027f200a200220046b6a2106200f210720042105034041002005450d011a200541016b210520072d0000210820062d00002109200641016a2106200741016a210720082009460d000b200920086b0b0d05200341086a20032802442002200a105220032002360244200328020c2100200328020821020c0a0b2003200b3602340c060b41b08f04412141d895041017000b41e08f04411c41e895041017000b41e08f04411c41a89d041017000b2004410441c89d04100b000b2002200b4d0d000b0b200341013a004d20032d004c044020032802482101200328024421040c020b20032802482201200328024422044f04404100210220012004470d020c030b41b08f04412141909b041017000b41b08f04412141989d041017000b200320042001200a105220032802042100200328020021020b20020d010b41000c020b0240200e2d00000440200d418c91044104200c28020c1100000d010b200e2000047f200020026a41016b2d0000410a460541000b22013a0000200d20022000200c28020c110000450d010b0b41010b2100200341d0006a240020000bd70502047f017e230041b0016b22012400200141086a200041e00010091a20014280800137028001200141d0a30436027c02402001290308500440200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341e88604102f2001200141206a36029c012001411536029801200141f4860436029401200220014194016a10182000200141a8016a280200360200200120012902a0013703682001200141c1006a3602a801200141133602a4012001418987043602a0012003200210180c010b200141fc006a101b200141f0006a220020014184016a2802003602002001200129027c370368200141a0016a2202200141e8006a220341ac8704102f2001200141106a36029c012001411636029801200141b8870436029401200220014194016a10122000200141a8016a280200360200200120012902a0013703682001200141306a3602a801200141183602a401200141ce87043602a0012003200210120b20014190016a20002802003602002001200129036837038801230041206b22002400200041186a22024100360200200020014188016a2204290200370310200041086a200041106a200441086a280200100f20002903082105200341086a2002280200360200200320002903103702002003200537020c200041206a2400200141a8016a200141f0006a2802003602002001200129026822053703a001200141f8006a2802002103200128027421022001410036027020012005370268027f2001290308500440200141e8006a220041001030200141206a20001019200141c1006a20001019200141106a0c010b200141e8006a220041011030200141106a2000100e200141306a2000100e200141d0006a0b2200290300200041086a290300200141e8006a1010200120012902683703a0012001200141a0016a2001280270100f20022003200128020020012802041006200141b0016a24000bef0102037f017e230041d0006b22032400200341186a220520011013200329021821062003410036022c2003200637022420022802002002280204200341246a2204101420042002280208410f102120032003290224370218200341106a2005200328022c100f2004200328021020032802141015200341086a200128020020012802042001280208220210162003410036024c200320032903083702442004200341c4006a100e20022002200328024c6a22044b044041c08204411c41c886041017000b200141086a22022004360200200041086a200228020036020020002001290200370200200341d0006a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41053602002000410236020c200041e89004360208200041053602242000200041206a360210200020003602282000200041046a360220200041086a41f4a104102b000b3c01027f230041106b22002400200042808001370208200041d0a304360204200041046a2201410110302001410110304101200028020c10281035000b5101027f230041106b22022400200242808001370208200241d0a304360204200241046a2203410010302003200141ff0171410247047f20034101103020010541000b10302000200228020c10281035000b3e01027f230041106b22022400200242808001370208200241d0a304360204200241046a22034100103020002001200310104100200228020c10281035000bab0102057f017e230041306b2202240020024100360220200242808001370228200241d0a3043602244100200241246a2203100d20022002290224370218200241106a200241186a2204200228022c100f2002280214210520022802102106200229021821072002410036022c20022007370224200020012003101020022002290224370218200241086a2004200228022c100f200620052002280208200228020c10071a200241306a24000b0d00200041d0a30420011008000b2e01017f230041e0006b22012400200141086a200041d80010091a200142003703002001102e200141e0006a24000be71302077f047e23004190056b2200240002400240102441ff017141054604402000418080013602b00441d0a304200041b0046a22021002200041f0006a20002802b00441d0a3044180800141908504100a200020002903703702d001200041003602b004200041d0016a20024104101e0d0120002d00b304210120002d00b204210320002d00b1042102027f02400240024002400240024020002d00b0042204410b6b0e050508080801000b0240200441e8006b0e03040802000b2004418401460d02200441db0147200241ff017141e3004772200341f50047200141a8014772720d0741000c050b200241ff017141f50047200341da004772200141d60047720d06200041b0046a200041d0016a101d20002d00b0040d06200041e8016a200041ba046a290000370300200041f0016a200041c2046a290000370300200041f7016a200041c9046a2900003700002000200041b2046a2900003703e00120002d00b104210241010c040b200241ff0171200341164772200141de0047720d05200041a0026a200041d0016a101d20002d00a0020d05200041f8006a200041d0016a101d20002d00780d05200041e7046a20004191016a290000370000200041df046a20004189016a290000370000200041d7046a20004181016a290000370000200041b8046a200041aa026a290000370300200041c0046a200041b2026a290000370300200041c7046a200041b9026a290000370000200020002900793700cf042000200041a2026a2900003703b00420002d00a1022102200041e0016a200041b0046a413f10091a41020c030b200241ff017141a10147200341dd004772200141a10147720d04200041b0046a200041d0016a101f20002903b0044200520d04200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41030c020b200241ff0171411247200341e6004772200141a00147720d03200041b0046a200041d0016a101f20002903b0044200520d03200041ae036a200041a6026a200041fe006a200041b8046a4130100941301009413010091a200041e0016a200041a8036a413610091a41040c010b200241ff0171413947200341ef0047722001411847720d02200041ee036a200041d0016a101d20002d00ee030d022000418f046a200041d0016a101d20002d008f040d02200041d8006a200041d0016a10202000290358a70d02200041e8006a290300210720002903602108200041c0036a200041ef036a220241186a290000370300200041b8036a200241106a290000370300200041b0036a200241086a290000370300200041d0036a20004198046a290000370300200041d8036a200041a0046a290000370300200041e0036a200041a8046a29000037030020002000290090043703c803200020022900003703a803200041e8026a2201200041a8036a41c00010091a200041a6026a200041fe006a200041b6046a200141c000100941c000100941c00010091a200041e0016a200041a0026a413f10091a2000200041e2026a2800003600db01200020002800df023602d80141050b2101200041f8006a410272200041e0016a413f10091a200041bc016a20002800db01360000200041c8016a2007370300200020002802d8013600b901200020083703c001200020023a0079200020013a0078200041003602a8022000428080013702b404200041d0a3043602b0044100200041b0046a2203100d200020002902b0043702a002200041d0006a200041a0026a20002802b804100f200028025421042000280250210520002802a0022102200020002802a40222063602b004200520042002200310002103200041c8006a20002802b0042002200641908504100a024002400240024020030e0401000002000b200041bc046a4200370200200041013602b404200041a086043602b004200041f49f043602b804200041b0046a41a88604102b000b200028024821022000200028024c3602b404200020023602b004200041306a200041b0046a10202000290330a7450d01200041bc046a4200370200200041013602b404200041ec88043602b0040c040b200041bc046a4200370200200041013602b404200041bc88043602b0040c030b200041f8006a4101722102200041406b29030021072000200029033822083703e001200020073703e80102400240024002400240024002400240200141016b0e050001040502030b230041406a22012400200141286a200241086a290000370200200141306a200241106a290000370200200141386a200241186a2900003702002001200041e0016a36021c20012002290000370220200141086a200141206a1026200129030821072000200141106a29030037030820002007370300200141406b24002000290300200041086a2903001033000b230041e0006b220124002001200041e0016a36021c200141086a200141206a200241c0001009200141406b102520012903082107200041106a2202200141106a29030037030820022007370300200141e0006a24002000290310200041186a2903001033000b200041b8046a20004180016a41d000100921022000200041e0016a3602b004200041f8046a290300210820004180056a2903002107200041a0026a22011022200041206a20022001102541012103410121012000290320220a2008542204200041286a290300220920075420072009511b0d04410221012002200041d8046a20082007103841ff017122054102460d03200541004721010c040b200820071033000b200041b8046a20004180016a4130100921022000200041e0016a3602b004200041e0046a2903002107200041d8046a2903002108200041a0026a2201102220012002200820071038220241ff0171410247220145044020002903e001200041e8016a29030010340b200120021032000b200041b0036a20004180016a4130100921022000200041e0016a3602a803200041d8036a2903002107200041d0036a2903002108200041e8026a220110222001200220082007100c200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041a8026a200041f0026a290000370300200041c8026a20004188016a290300370300200041d0026a20004190016a290300370300200041d8026a20004198016a290300370300200020002900e8023703a00220002000290380013703c002200041b8046a200041a0026a41c00010091a20004180056a2007370300200041f8046a2008370300200042013703b004200041b0046a102e20002903e001200041e8016a2903001034410041021032000b2002200041a0026a200a20087d200920077d2004ad7d100c20002903e001200041e8016a2903001034410021030b200320011032000b200041043a00b004200041b0046a1039000b1031000b200041f49f043602b804200041b0046a41948804102b000bd10202037f037e23004180016b22042400200441186a200010260240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1011200441086a200110262004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b0d012001200920081011200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1036410221050b20044180016a240020050f0b41c08204411c41f488041017000b4801017f230041206b220124002001410c6a420137020020014101360204200141f49e043602002001410436021c200120003602182001200141186a360208200141948804102b000bf40402087f037e230041c0016b2200240002401024220141ff0171410546044020004180800136025041d0a304200041d0006a22011002200041286a200028025041d0a3044180800141908504100a200020002903283702502000410036023002402001200041306a4104101e0d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200041d0006a10202000290310a7450d020b1031000b200020013a0050200041d0006a1039000b200041206a290300210820002903182109200041306a1022200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041ec8004360250200041003602b0012000428080013702b801200041d0a3043602b40141e7b98fb102200041b4016a2201100d200041d4006a2001100e200020002902b4013702a801200041086a200041a8016a220520002802bc01100f200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011010200020002902b4013702a8012000200520002802bc01100f200720062000280200200028020410071a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a1036200920081034230041106b22002400200042808001370208200041d0a304360204200041046a2201410010302001410010304100200028020c10281035000b7701027f230041106b2204240020022000280204200028020822036b4b0440200441086a200020032002103c2004280208200428020c103d200028020821030b200028020020036a2001200210091a2003200220036a22014b044041908904411c419c8f041017000b20002001360208200441106a24000bc00301057f230041206b220424000240027f4100200220036a22032002490d001a200128020422024100480d01410820024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104020022802082105200228020c0c020b200528020021080240200310412205450440410021050c010b20052008200710091a0b20030c010b2002200310402002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000f0b41b08904412141f88a041017000b1f00024020004181808080784704402000450d012001103e000b0f0b103f000b860101017f230041306b220124002001200036020c2001411c6a420137020020014102360214200141c88c043602102001410536022c2001200141286a36021820012001410c6a360228230041206b22002400200041003b011c200041d88c043602182000200141106a360214200041989004360210200041f49f0436020c2000410c6a1049000b3c01017f230041206b22002400200041146a42003702002000410136020c2000419c8b04360208200041f49f04360210200041086a41a48b04102b000b2001017f41d2a3052d00001a20011041210220002001360204200020023602000b800101027f0240027f410041c8a304280200220120006a22022001490d001a41cca3042802002002490440200041ffff036a22024110764000220141ffff034b0d022001411074220120024180807c716a22022001490d0241cca30420023602004100200020016a22022001490d011a0b41c8a304200236020020010b0f0b41000b0c00200041ec8904200110430bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110200450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10552003200329031037021c200341086a20062001105520032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110200450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002103b41000bd10201037f230041106b220224000240024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101103c2004280208200428020c103d200441106a2400200028020821030b200028020020036a20013a0000200341016a2201450d04200020013602080c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b103b0b200241106a240041000f0b41908904411c418c8f041017000bd606020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e034020004104490d09200341196a20006a220241046b200e4290ce0080220d42f0b1037e200e7ca7220441ffff037141e4006e2206410174418592046a2f00003b0000200241026b2006419c7f6c20046a41ffff0371410174418592046a2f00003b0000200041046b2100200e42ffc1d72f562102200d210e20020d000b200da7220241e3004d0d02200041024f0d010c080b41272100200241e3004d0d020b200041026b2200200341196a6a200da7220441ffff037141e4006e2202419c7f6c20046a41ffff0371410174418592046a2f00003b00000b2002410a4f044020004102490d060c040b20000d010c050b2002410a4f0d020b200041016b2200200341196a6a200241306a3a00000c020b000b200041026b2200200341196a6a2002410174418592046a2f00003b00000b02400240200041274d0440412820006b412720006b2206200128021c220541017122071b2102410021042005410471044041f49f042104200241f49f0441f49f04104b20026a22024b0d020b412b418080c40020071b2107200341196a20006a2108200128020045044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b2002200128020422094f044041012100200128021422022001280218220120072004104e0d03200220082006200128020c11000021000c030b200541087104402001280210210b2001413036021020012d0020210c41012100200141013a0020200128021422052001280218220a20072004104e0d03200341106a2001200920026b4101104f20032802102202418080c400460d0320032802142104200520082006200a28020c1100000d03200220042005200a10500d032001200c3a00202001200b360210410021000c030b41012100200341086a2001200920026b4101104f20032802082205418080c400460d02200328020c2109200128021422022001280218220120072004104e0d02200220082006200128020c1100000d022005200920022001105021000c020b0c020b41e08f04411c41c094041017000b200341406b240020000f0b41b08f04412141e49e041017000b1b00200128021441e489044105200141186a28020028020c1100000b0e0020002802001a03400c000b000bc20201047f230041406a220124002001200036020c2001411c6a420137020020014102360214200141c0a0043602102001410636022c2001200141286a36021820012001410c6a360228410021000240024002400240034020002000200241037441c4a0046a2802006a22004b0d014101210220032104410121032004450d000b20004101744100200041104e1b2200044020004100480d0220012000104020012802002202450d030b200141003602382001200036023420012002360230200141306a200141106a10420d032001280230210020012802382103024041d0a3052d000045044041d1a3052d00004101710d010b200020031004410947044041d0a30541013a00000b41d1a30541013a00000b000b41908904411c41d49e041017000b103f000b2000103e000b41e88c0441332001413f6a41d4890441888e041023000b2000200042b1a1a2be8cd0b08931370308200042b2c98bdc9db884a6203703000b8e04010a7f230041106b220224000240200120006b220141104f04402000200041036a417c71220620006b2200104c22042006200120006b2200417c716a2000410371104c6a220320044f0440200041027621050240024003402005450d0520022006200541c0012005200541c0014f1b41d09704104d200228020c21052002280208210620022002280200200228020422002000417c7141bc9904104d200228020c210820022802082107024020022802042200450440410021000c010b2002280200220420004102746a21094100210003402004220a41106a21044100210102400340200020002001200a6a280200220b417f73410776200b410676724181828408716a22004d0440200141046a22014110470d010c020b0b41e08f04411c41fc99041017000b20042009470d000b0b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034b0d012008450d000b200841027421014100210003402000200020072802002204417f734107762004410676724181828408716a22004b0d02200741046a2107200141046b22010d000b20032003200041087641ff81fc0771200041ff81fc07716a418180046c4110766a22034d0d0441e08f04411c41dc99041017000b41e08f04411c41cc99041017000b41e08f04411c41ec99041017000b41e08f04411c41ac99041017000b20002001104c21030b200241106a240020030b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41e08f04411c41d49e041017000b3d0020022003490440419ca004412320041017000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101102000d011a0b20030d0141000b0f0b200020034100200128020c1100000bb20101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b200241016a2203044020024101762104200341017621020c010b41e08f04411c41d094041017000b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110200450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110200450d000b200441016b0b2001490b900201067f02402000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722107200341f00149044020072006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200741067472722203418080c400460d011a0b20012802082204200520026b6a22022004490d012001200236020820030b360204200020043602000f0b41e08f04411c41809b041017000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41b08f04412141949c041017000bca0301067f230041306b22022400200028020421042000280200210302400240027f024020012802002205200128020822007204402000450d032001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1051200228021c418080c400470d010c050b0b200241106a200241246a10512002280214418080c400460d03024020022802102200450d00200020044f044020002004460d010c030b200020036a2c00004140480d020b200241086a4100200020031052200228020c210620022802080c020b200128021420032004200141186a28020028020c11000021000c030b41000b21002006200420001b21042000200320001b21030b2005450440200128021420032004200141186a28020028020c11000021000c010b200128020422002003200320046a104b22054b044020022001200020056b4100104f4101210020022802002205418080c400460d01200228020421062001280214220720032004200141186a280200220128020c1100000d012005200620072001105021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1102000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044107470d0120012802000b2802002104410121030b20002004360204200020033602000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000beb0201057f230041406a22022400200028020021054101210002402001280214220441a89004410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4105360200200241346a41053602002002410336021420024180900436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a36021820042006200241106a10430d00200528020822030440200441b49004410220011100000d01200241386a200341106a290200370300200241306a200341086a2902003703002002200329020037032820042006200241286a104321000c010b200220052802002203200528020428020c11010041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441b49004410220011100000d00200420032802002003280204200111000021000b200241406b240020000b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41053602002004410236020c20042003360208200441053602242004200441206a3602102004200441046a36022820042004360220200441086a2002102b000b0bbb230500418080040bb5022f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f73746f726167652d342e332e302f7372632f6c617a792f6d617070696e672e727300e7dc23264661696c656420746f206765742076616c756520696e204d617070696e673a207000010020000000000001006b0000009c000000250000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273a8000100700000009d00000020000000a8000100700000009d000000300041c082040bc106617474656d707420746f206164642077697468206f766572666c6f77080000000100000001000000030000004465636f646543616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c65556e6b6e6f776e4c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c65642f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6578742e727300210201006e000000e40000001700000054686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e000000a8000100700000006b0100000e000000a8000100700000002401000032000000656e636f756e746572656420756e6578706563746564206572726f72040301001c000000a800010070000000ed000000170000005010010071000000c10000003d0000005010010071000000c40000000900000045726332303a3a5472616e7366657200f40f0100000000005803010045726332303a3a5472616e736665723a3a66726f6d45726332303a3a5472616e736665723a3a746f45726332303a3a417070726f76616c00f40f0100000000009c03010045726332303a3a417070726f76616c3a3a6f776e657245726332303a3a417070726f76616c3a3a7370656e6465722f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e7273e60301002e000000070000000500000073746f7261676520656e7472792077617320656d707479002404010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279004404010027000000e60301002e000000cf0000002700419089040bc106617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000a0000004572726f720000000b0000000c000000040000000c0000000d0000000e0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730000000405010071000000980100001c0000006361706163697479206f766572666c6f770000008805010011000000040501007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c65640000002306010015000000380601000d000000b40501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72739b0601006d00000064020000200000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000001807010071000000610700000d0000001807010071000000d00700000900000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f770041e08f040b9410617474656d707420746f206164642077697468206f766572666c6f77293a0000f40f010000000000fd07010001000000fd070100010000000900000000000000010000000f00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320360801002000000056080100120000003a200000f40f0100000000007808010002000000202020202c0a28280a2f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000cd09010070000000050500000d000000cd0901007000000097050000300000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e7273000000600a010075000000760000004b000000600a010075000000770000003400000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820f80a0100120000000a0b01002200000072616e676520656e6420696e646578203c0b0100100000000a0b0100220000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273005c0b010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028e00b010015000000f50b01002b000000fc070100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000380c0100720000004700000015000000380c0100720000004f00000032000000380c0100720000005a00000009000000380c010072000000660000000d000000380c0100720000006400000011000000380c01007200000054000000110000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000000c0d01007100000091000000110000000c0d0100710000004f0200002d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e727300a00d010073000000d3000000130000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e7273240e010074000000a101000047000000240e010074000000b401000020000000240e010074000000b401000011000000240e010074000000b8010000370000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e72730000d80e01007a00000095000000010000009508010070000000d201000005000000f40f010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765004180a0040bc703617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290af40f0100000000003f100100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f696e6b5f656e762d342e332e302f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300000050100100710000005a0000001c00000050100100710000005a0000001400000050100100710000005a00000031000000501001007100000065000000090000005010010071000000830000002500000050100100710000008d000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300241101006b000000770000000e000000190000001c0000001600000014000000190000007c0f0100950f0100b10f0100c70f0100db0f01","build_info":{"build_mode":"Debug","cargo_contract_version":"3.2.0","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"erc20","version":"4.3.0","authors":["Parity Technologies "]},"spec":{"constructors":[{"args":[{"label":"total_supply","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":["Creates a new ERC-20 contract with the specified initial supply."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":1},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":0},"blockNumber":{"displayName":["BlockNumber"],"type":14},"chainExtension":{"displayName":["ChainExtension"],"type":15},"hash":{"displayName":["Hash"],"type":12},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":13}},"events":[{"args":[{"docs":[],"indexed":true,"label":"from","type":{"displayName":["Option"],"type":11}},{"docs":[],"indexed":true,"label":"to","type":{"displayName":["Option"],"type":11}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when a token transfer occurs."],"label":"Transfer"},{"args":[{"docs":[],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":true,"label":"spender","type":{"displayName":["AccountId"],"type":5}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when an approval occurs that `spender` is allowed to withdraw","up to the amount of `value` tokens from `owner`."],"label":"Approval"}],"lang_error":{"displayName":["ink","LangError"],"type":3},"messages":[{"args":[],"default":false,"docs":[" Returns the total token supply."],"label":"total_supply","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0xdb6375a8"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the account balance for the specified `owner`.",""," Returns `0` if the account is non-existent."],"label":"balance_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0x0f755a56"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":5}},{"label":"spender","type":{"displayName":["AccountId"],"type":5}}],"default":false,"docs":[" Returns the amount which `spender` is still allowed to withdraw from `owner`.",""," Returns `0` if no allowance has been set."],"label":"allowance","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0x6a00165e"},{"args":[{"label":"to","type":{"displayName":["AccountId"],"type":5}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` amount of tokens from the caller's account to account `to`.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the caller's account balance."],"label":"transfer","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x84a15da1"},{"args":[{"label":"spender","type":{"displayName":["AccountId"],"type":5}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Allows `spender` to withdraw from the caller's account multiple times, up to"," the `value` amount.",""," If this function is called again it overwrites the current allowance with"," `value`.",""," An `Approval` event is emitted."],"label":"approve","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x681266a0"},{"args":[{"label":"from","type":{"displayName":["AccountId"],"type":5}},{"label":"to","type":{"displayName":["AccountId"],"type":5}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` tokens on the behalf of `from` to the account `to`.",""," This can be used to allow a contract to transfer tokens on ones behalf and/or"," to charge fees in sub-currencies, for example.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientAllowance` error if there are not enough tokens allowed"," for the caller to withdraw from `from`.",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the account balance of `from`."],"label":"transfer_from","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":8},"selector":"0x0b396f18"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"total_supply"},{"layout":{"root":{"layout":{"leaf":{"key":"0x2623dce7","ty":0}},"root_key":"0x2623dce7"}},"name":"balances"},{"layout":{"root":{"layout":{"leaf":{"key":"0xeca021b7","ty":0}},"root_key":"0xeca021b7"}},"name":"allowances"}],"name":"Erc20"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"primitive":"u128"}}},{"id":1,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":3}],"path":["Result"]}},{"id":2,"type":{"def":{"tuple":[]}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":4,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":3}],"path":["Result"]}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"variant":{"variants":[{"fields":[{"type":9}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":9},{"name":"E","type":3}],"path":["Result"]}},{"id":9,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":10}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":10}],"path":["Result"]}},{"id":10,"type":{"def":{"variant":{"variants":[{"index":0,"name":"InsufficientBalance"},{"index":1,"name":"InsufficientAllowance"}]}},"path":["erc20","erc20","Error"]}},{"id":11,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":5}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":5}],"path":["Option"]}},{"id":12,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":13,"type":{"def":{"primitive":"u64"}}},{"id":14,"type":{"def":{"primitive":"u32"}}},{"id":15,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/erc20.json b/packages/api-contract/src/test/contracts/ink/v4/erc20.json new file mode 100644 index 0000000..c92cda4 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/erc20.json @@ -0,0 +1,821 @@ +{ + "source": { + "hash": "0x114f55289bcdfd0d28e0bbd1c63452b4e45901a022b1011d298fa2eb12d1711d", + "language": "ink! 4.3.0", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "3.2.0", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "4.3.0", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 1 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 5 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 14 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 15 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 12 + }, + "maxEventTopics": 4, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 13 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 11 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when a token transfer occurs." + ], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 3 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 8 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 8 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 8 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x2623dce7", + "ty": 0 + } + }, + "root_key": "0x2623dce7" + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xeca021b7", + "ty": 0 + } + }, + "root_key": "0xeca021b7" + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 8, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 9 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 9 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 5 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 14, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 15, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": "4" +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/erc20.wasm b/packages/api-contract/src/test/contracts/ink/v4/erc20.wasm new file mode 100644 index 0000000..799afda Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v4/erc20.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v4/flipper.contract.json b/packages/api-contract/src/test/contracts/ink/v4/flipper.contract.json new file mode 100644 index 0000000..d796e45 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/flipper.contract.json @@ -0,0 +1 @@ +{"source":{"hash":"0xa5b19cb655755feba8e34ab5b413ac6593ecc7e24e19af485a4d30036be9d577","language":"ink! 4.2.0","compiler":"rustc 1.69.0","wasm":"0x0061736d0100000001450c60027f7f017f60037f7f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f017f60000060047f7f7f7f0060017f017f60017f017e60057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650005057365616c301176616c75655f7472616e736665727265640002057365616c3005696e7075740002057365616c300d64656275675f6d6573736167650000057365616c320b7365745f73746f726167650005057365616c300b7365616c5f72657475726e000303656e76066d656d6f7279020102100337360102030b0803040002080102020604030202060600010103000300070204060202000400040900000a0507050000030a01000000000704050170010f0f0608017f01418080040b0711020463616c6c0018066465706c6f7900190914010041010b0e0d32273a29333839281c1e20372b0ac744362b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b2601017f230041106b22022400200220003a000f20012002410f6a41011008200241106a24000b5c01037f02402000280208220420026a220320044f04402003200028020422054b0d01200028020020046a200320046b2001200241cc97041035200020033602080f0b41909604411c41ac9704101f000b2003200541bc9704100b000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a10012001290300210220002903082103200041206a2400410541042002200384501b0b1b002000418180014f044020004180800141a88104100b000b20000b7501017f230041306b220324002003200136020420032000360200200341146a41023602002003411c6a41023602002003412c6a4103360200200341988f0436021020034100360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a2002100e000b5201017f230041206b220124002001410c6a4101360200200141146a41013602002001418c9504360208200141003602002001410136021c200120003602182001200141186a360210200141b08204100e000b910101017f230041306b22022400200241146a41013602002002411c6a41013602002002418c95043602102002410036020820024102360224200220002d0000410274220041ac9a046a28020036022c2002200041c09a046a280200360228200141046a28020021002002200241206a3602182002200241286a36022020012802002000200241086a1036200241306a24000b3c01017f230041206b22022400200241013a00182002200136021420022000360210200241d08a0436020c2002418c9604360208200241086a102a000b4001017f230041106b22012400200141003a000f20002001410f6a41011010047f4102054101410220012d000f22004101461b410020001b0b200141106a24000b6001047f230041106b22032400200028020422042002492205450440200341086a4100200220002802002206103b200120022003280208200328020c419c9a0410352003200220042006103b200020032903003702000b200341106a240020050b4701017f230041106b220224002002410036020c024020012002410c6a410410104504402000200228020c360001200041003a00000c010b200041013a00000b200241106a24000b3f01017f230041106b22022400200242808001370204200241dc9a0436020020022001047f20024101101741010541000b101720002002280208100a1016000b3701017f230041106b22002400200042808001370204200041dc9a0436020020004100101720004100101741002000280208100a1016000bae0102057f017e230041306b2201240020014100360218200142808001370224200141dc9a043602202001410036021c200141206a22022001411c6a4104100820012001290320370310200141086a200141106a220320012802281015200128020c2104200128020820012903102106200141003602282001200637032020002002100720012001290320370310200120032001280228101520042001280200200128020410041a200141306a24000b4501017f2002200128020422034b044041ac9604412341ec9704101f000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d00200041dc9a0420011005000ba10101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a41023602002000411c6a41023602002000412c6a4103360200200041a48a0436021020004100360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41dc9704100e000bab0501077f230041406a22002400024002400240024002400240100941ff0171410546044020004180800136022041dc9a04200041206a100220002802202201418180014f0d0120002001360224200041dc9a04360220200041106a200041206a101120002d00100d0520002800112201411876210220014110762104200141087621030240200141ff01712201412f470440200141e30047200341ff0171413a4772200441ff017141a50147720d0741012101200241d100460d010c070b200341ff017141860147200441ff017141db0047720d0641002101200241d901470d060b20004100360218200042808001370224200041dc9a043602202000410036023c200041206a22032000413c6a4104100820002000290320370310200041086a200041106a20002802281015200028020c210520002802082000280210210220002000280214220436022020052002200310002103200420002802202205490d02024002400240410c20032003410c4f1b0e0402000001000b2000412c6a4101360200200041346a4100360200200041d481043602282000418c960436023020004100360220200041206a41dc8104100e000b2000412c6a4101360200200041346a41003602002000418883043602280c070b2000200536022420002002360220200041206a100f41ff017122024102460d042001450d032002451014410041001012000b200041043a0020200041206a100c000b20014180800141cc8004100b000b2005200441cc8004100b000b230041106b22002400200042808001370204200041dc9a0436020020004100101720024100472000100741002000280208100a1016000b2000412c6a4101360200200041346a4100360200200041e882043602280c010b410141011012000b2000418c960436023020004100360220200041206a41b08204100e000b8c0201057f230041106b2200240002400240100941ff01712201410546044020004180800136020041dc9a042000100220002802002201418180014f0d0120002001360204200041dc9a04360200200041086a20001011024020002d00080d002000280009220141187621022001411076210320014108762104200141ff0171220141e1004704402001419b0147200441ff017141ae014772200341ff0171419d0147200241de004772720d012000100f41ff017122004102460d01200010141013000b200441ff017141ef0147200341ff017141fe0047720d002002413e460d030b410141011012000b200020013a00002000100c000b20014180800141cc8004100b000b410010141013000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a41908304200241086a101b200241206a24000bee0301057f230041406a22032400200341033a003820034280808080800437033020034100360228200341003602202003200136021c20032000360218027f0240024020022802002201450440200241146a28020022004103742105200041ffffffff017121072002280210210441002101034020012005460d02200228020820016a220041046a28020022060440200328021820002802002006200328021c28020c1101000d040b200141086a2101200428020020042802042106200441086a2104200341186a2006110000450d000b0c020b200228020422074105742100200741ffffff3f71210703402000450d01200228020820046a220541046a28020022060440200328021820052802002006200328021c28020c1101000d030b20032001411c6a2d00003a00382003200141146a290200370330200341106a200228021022052001410c6a103420032003290310370320200341086a2005200141046a103420032003290308370328200441086a2104200041206b210020012802002106200141206a2101200520064103746a2205280200200341186a2005280204110000450d000b0c010b2002410c6a28020020074b04402003280218200228020820074103746a22002802002000280204200328021c28020c1101000d010b41000c010b41010b200341406b24000b0f00200028020020012002101d41000b7701027f230041106b2204240020022000280200200028020822036b4b0440200441086a20002003200210212004280208200428020c1022200028020821030b200028020420036a2001200210061a2003200220036a22014b044041b08304411c41a08904101f000b20002001360208200441106a24000bdd0201037f230041106b220224000240024002400240200028020022002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280200460d030c040b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b101d0c020b230041106b22042400200441086a20002003410110212004280208200428020c1022200441106a2400200028020821030b200028020420036a20013a0000200341016a2201450d01200020013602080b200241106a240041000f0b41b08304411c41908904101f000b5001017f230041206b220324002003410c6a4101360200200341146a41003602002003418c9604360210200341003602002003200136021c200320003602182003200341186a36020820032002100e000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a101a200241206a24000bac0401067f230041206b2204240002402000027f4100200220036a22032002490d001a2001280200220220026a22062002490d0141082006200320032006491b2203200341084d1b2203417f73411f7621050240200204402004410136021820042002360214200420012802043602100c010b200441003602180b200441106a2107230041106b220624002004027f0240027f0240200504400240200341004e044020072802080d012006200310252006280204210220062802000c040b0c040b20072802042209450440200641086a20031025200628020c210220062802080c030b20032102410041d49a04280200220520036a22082005490d021a2007280200210741d89a042802002008490440200341ffff036a220841107640002202417f46200241ffff0371200247720d022002411074220520084180807c716a22022005490d0241d89a042002360200200321024100200320056a22082005490d031a0b41d49a04200836020041002005450d021a20052007200910060c020b200420033602040c020b2003210241000b2205044020042005360204200441086a200236020041000c020b20042003360204200441086a410136020041010c010b200441086a410036020041010b360200200641106a240020042802004504402004280204210220012003360200200120023602044181808080780c010b20042802042103200441086a2802000b36020420002003360200200441206a24000f0b41d08304412141f88404101f000b1f00024020014181808080784704402001450d0120001023000b0f0b1024000b900101017f230041306b220124002001200036020c2001411c6a4102360200200141246a4101360200200141c88604360218200141003602102001410336022c2001200141286a36022020012001410c6a360228230041206b22002400200041003a0018200041d886043602142000200141106a360210200041d08a0436020c2000418c9604360208200041086a102a000b4601017f230041206b22002400200041146a41013602002000411c6a41003602002000419c85043602102000418c960436021820004100360208200041086a41a48504100e000ba10101027f027f410041d49a04280200220220016a22032002490d001a024041d89a042802002003490440200141ffff036a22032001490d01200341107640002202417f46200241ffff0371200247720d012002411074220220034180807c716a22032002490d0141d89a0420033602004100200120026a22032002490d021a0b41d49a04200336020020020c010b41000b210320002001360204200020033602000b5301027f230041106b2202240002402001450440410121030c010b200141004e0440200241086a20011025200228020822030d0120011023000b1024000b2000200336020420002001360200200241106a24000bd806020b7f027e230041406a2203240020002802002202ad210d0240024002400240024002400240024020024190ce004f044041272100200d210e0240034020004104490d01200341196a20006a220241046b200e200e4290ce0080220d4290ce007e7da7220441ffff037141e4006e220641017441878c046a2f00003b0000200241026b2004200641e4006c6b41ffff037141017441878c046a2f00003b0000200041046b2100200e42ffc1d72f56200d210e0d000b200da7220241e3004d0d0320004102490d090c020b0c080b41272100200241e3004b0d002002410a490d040c020b200041026b2200200341196a6a200da72202200241ffff037141e4006e220241e4006c6b41ffff037141017441878c046a2f00003b00000b2002410a490d01200041024f0d000c050b200041026b2200200341196a6a200241017441878c046a2f00003b00000c020b2000450d030b200041016b2200200341196a6a200241306a3a00000b200041274b0d01412820006b412720006b22062001280218220541017122071b21024100210420054104710440418c960421042002418c9604418c9604102c20026a22024b0d010b412b418080c40020071b2107200341196a20006a2108024020012802084504404101210020012802002202200141046a280200220120072004102f0d01200220082006200128020c11010021000c010b024020022001410c6a28020022094904402005410871450d01200128021c210b2001413036021c20012d0020210c41012100200141013a002020012802002205200141046a280200220a20072004102f0d02200341106a2001200920026b4101103020032802142202418080c400460d022003280210200520082006200a28020c1101000d0220022005200a10310d022001200c3a00202001200b36021c410021000c020b4101210020012802002202200141046a280200220120072004102f0d01200220082006200128020c11010021000c010b41012100200341086a2001200920026b41011030200328020c2205418080c400460d00200328020820012802002202200141046a280200220120072004102f0d00200220082006200128020c1101000d00200520022001103121000b200341406b240020000f0b41b08904411c41c48e04101f000b41d08904412141f49404101f000b0300010b0e0020002802001a03400c000b000baa05020a7f017e230041406a220124002001200036020c2001412c6a4102360200200141346a4101360200200141d09604360228200141003602202001410436023c2001200141386a36023020012001410c6a360238200141106a210641002100230041306b22022400200141206a220441146a2802002107200428020821050240024002400240200241086a027f024002400240200241106a027f024002402004410c6a28020022080e020001040b20070d02418c9604210341000c010b20070d022005280200210320052802040b22001026200228021021042006200228021422053602042006200436020020052003200010061a200620003602080c040b200428021021090c010b200541046a21032008410374210a2004280210210903402000200020032802006a22004b0d04200341086a2103200a41086b220a0d000b20002007450d011a2000410f4b0d0041002005280204450d011a0b200020006a22034100200020034d1b0b10262002290308210b200641003602082006200b3702002002200736022c200220093602282002200836022420022005360220200220042902003703182006200241186a101a0d020b200241306a24000c020b41b08304411c41e49404101f000b230041406a220024002000413336020c200041e88604360208200041f483043602142000200241186a360210200041246a41023602002000412c6a41023602002000413c6a4106360200200041848b0436022020004100360218200041023602342000200041306a3602282000200041106a3602382000200041086a360230200041186a418c8804100e000b2001280214210020012802182101024041dc9a052d000045044041dd9a052d00004101710d010b410c20002001100322002000410c4f1b410947044041dc9a0541013a00000b41dd9a0541013a00000b000b0c0042f8f3eee1d7afe2bb350ba704010a7f230041106b2203240002400240200020016b22024110490d002002200141036a417c7120016b220049200041044b720d00200220006b22044104490d0020012000102d2206200020016a22082004417c716a2004410371102d6a220220064f0440200441027621050240024003402005450d0520032008200541c0012005200541c0014f1b41a09004102e200328020c21052003280208210820032003280200200328020422002000417c7141909204102e200328020c210920032802082107024020032802042200450440410021010c010b2003280200220420004102746a210a4100210103402004220641106a2104410021000240034020012001200020066a280200220b417f73410776200b410676724181828408716a22014d0440200041046a22004110470d010c020b0b41b08904411c41a09204101f000b2004200a470d000b0b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024b0d012009450d000b200941027421004100210103402001200120072802002204417f734107762004410676724181828408716a22014b0d02200741046a2107200041046b22000d000b20022002200141087641ff81fc0771200141ff81fc07716a418180046c4110766a22024d0d0441b08904411c41d09204101f000b41b08904411c41b09204101f000b41b08904411c41c09204101f000b41b08904411c41809204101f000b20012002102d21020b200341106a240020020b4601017f200145044041000f0b024003402002200220002c000041bf7f4a6a22024b0d01200041016a2100200141016b22010d000b20020f0b41b08904411c41e49404101f000b3e00200220034f044020002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080f0b41ac960441232004101f000b39000240027f2002418080c40047044041012000200220012802101100000d011a0b20030d0141000b0f0b200020034100200128020c1101000bae0101027f20022104024002400240200320012d0020220320034103461b41ff0171220341016b0e03010001020b200241016a2203044020034101762104200241017621030c020b41b08904411c41d48e04101f000b41002104200221030b200341016a2102200128021c2103200128020421052001280200210102400340200241016b2202450d01200120032005280210110000450d000b418080c40021030b20002003360204200020043602000b3201017f027f0340200020002004460d011a200441016a2104200220012003280210110000450d000b200441016b0b2000490bea04010b7f230041106b2209240020002802042104200028020021030240024002402001280208220b410147200128021022024101477145044020024101470d02200320046a210c200141146a28020041016a210a410021022003210003402000200c460d03027f024020002c0000220641004e0440200041016a2105200641ff017121070c010b20002d0001413f7121052006411f7121072006415f4d044020074106742005722107200041026a21050c010b20002d0002413f7120054106747221082006417049044020082007410c74722107200041036a21050c010b200041046a210520022106418080c4002007411274418080f0007120002d0003413f71200841067472722207418080c400460d011a0b2002200520006b6a22062002490d0320070b2108200a41016b220a044020052100200621022008418080c400470d010c040b0b2008418080c400460d02024002402002450d00200220044f04404100210020022004460d010c020b41002100200220036a2c00004140480d010b200321000b2002200420001b21042000200320001b21030c020b200128020020032004200128020428020c11010021000c020b41b08904411c41d49304101f000b200b450440200128020020032004200128020428020c11010021000c010b2001410c6a2802002200200320046a2003102c22024b0440200941086a2001200020026b4100103041012100200928020c2202418080c400460d0120092802082001280200220520032004200141046a280200220128020c1101000d01200220052001103121000c010b200128020020032004200128020428020c11010021000b200941106a240020000b140020002802002001200028020428020c1100000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000b8501002001200346044020002002200110061a0f0b230041306b220024002000200336020420002001360200200041146a41033602002000411c6a41023602002000412c6a4103360200200041f0900436021020004100360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a2004100e000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a101b200341206a24000b18002001280200418495044105200128020428020c1101000b5801027f230041206b22022400200128020421032001280200200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a101b200241206a24000b0b002000280200200110320b990301037f230041406a22022400200028020021034101210002402001280200220441e08a04410c200141046a280200220128020c1101000d0002402003280208220004402002200036020c200241346a4102360200410121002002413c6a4101360200200241f08a0436023020024100360228200241073602142002200241106a36023820022002410c6a36021020042001200241286a1036450d010c020b20032802002200200328020428020c11090042c8b5e0cfca86dbd3897f520d002002200036020c200241346a4102360200410121002002413c6a4101360200200241f08a0436023020024100360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a10360d010b200328020c21002002411c6a4103360200200241246a41033602002002413c6a4103360200200241346a4103360200200241b88a043602182002410036021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103621000b200241406b240020000b2c00200120024d04402000200220016b3602042000200120036a3602000f0b41909904412141f49804101f000b0bd21a0300418080040ba5032f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000000000010049000000e4000000140000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273005c0001004b0000002401000023000000656e636f756e746572656420756e6578706563746564206572726f72b80001001c0000005c0001004b000000ed000000170000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f696e746567726174696f6e2d74657374732f666c69707065722f6c69622e7273ec000100440000000600000005000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e74727900400101002700000073746f7261676520656e7472792077617320656d7074790070010100170000000900000004000000040000000a0000000b0000000c0041b083040bd115617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770000000900000000000000010000000d0000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e727304020100740000008f0100001c0000006361706163697479206f766572666c6f77000000880201001100000004020100740000000d020000050000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c656426030100150000003b0301000d000000b4020100720000009f0100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273009b0301007000000064020000200000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72731c04010074000000350700000d0000001c04010074000000a307000009000000617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f2073756274726163742077697468206f766572666c6f7729696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320f20401002000000012050100120000003a0000000c0b010000000000340501000100000034050100010000000900000000000000010000000e00000070616e69636b65642061742027272c206c050100010000006d050100030000003a2000000c0b01000000000080050100020000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e727330303031303230333034303530363037303830393130313131323133313431353136313731383139323032313232323332343235323632373238323933303331333233333334333533363337333833393430343134323433343434353436343734383439353035313532353335343535353635373538353936303631363236333634363536363637363836393730373137323733373437353736373737383739383038313832383338343835383638373838383939303931393239333934393539363937393839392f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e72730000cf06010073000000750500000d000000cf060100730000000506000038000000206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e646578200000860701001000000064070100220000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e72730000a807010076000000c005000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820283008010015000000450801002b000000f1040100010000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000008808010075000000470000001500000088080100750000004f000000320000008808010075000000540000001100000088080100750000005a00000009000000880801007500000064000000110000008808010075000000660000000d0000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e7273600901007400000091000000110000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e7273000000e40901007d00000095000000010000009405010073000000cd010000050000004572726f720000000c0b0100000000007061696420616e20756e70617961626c65206d657373616765636f756c64206e6f74207265616420696e707574756e61626c6520746f206465636f646520696e707574656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f64652073656c6563746f7200000000617474656d707420746f206164642077697468206f766572666c6f77617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28290a0c0b0100000000004f0b0100010000002f55736572732f616e6472656561656674656e652f776f726b2f696e6b2d342e322e302f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273600b01004c0000005a0000001c000000600b01004c0000005a00000009000000600b01004c0000005a00000031000000600b01004c0000006500000009000000600b01004c0000008d000000210000002f55736572732f616e6472656561656674656e652f2e7275737475702f746f6f6c636861696e732f737461626c652d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e727300fc0b010077000000820100004700419099040bc301617474656d707420746f2073756274726163742077697468206f766572666c6f772f55736572732f616e6472656561656674656e652f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d332e352e302f7372632f636f6465632e727300b10c01006a000000780000000e000000190000001c000000160000001400000019000000f30a0100d70a0100c10a0100ad0a0100940a01","build_info":{"build_mode":"Debug","cargo_contract_version":"2.2.1","rust_toolchain":"stable-x86_64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"flipper","version":"4.2.0","authors":["Parity Technologies "]},"spec":{"constructors":[{"args":[{"label":"init_value","type":{"displayName":["bool"],"type":0}}],"default":false,"docs":["Creates a new flipper smart contract initialized with the given value."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":1},"selector":"0x9bae9d5e"},{"args":[],"default":false,"docs":["Creates a new flipper smart contract initialized to `false`."],"label":"new_default","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":1},"selector":"0x61ef7e3e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":5},"balance":{"displayName":["Balance"],"type":8},"blockNumber":{"displayName":["BlockNumber"],"type":11},"chainExtension":{"displayName":["ChainExtension"],"type":12},"hash":{"displayName":["Hash"],"type":9},"maxEventTopics":4,"timestamp":{"displayName":["Timestamp"],"type":10}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":3},"messages":[{"args":[],"default":false,"docs":[" Flips the current value of the Flipper's boolean."],"label":"flip","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":1},"selector":"0x633aa551"},{"args":[],"default":false,"docs":[" Returns the current value of the Flipper's boolean."],"label":"get","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":4},"selector":"0x2f865bd9"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"value"}],"name":"Flipper"}},"root_key":"0x00000000"}},"types":[{"id":0,"type":{"def":{"primitive":"bool"}}},{"id":1,"type":{"def":{"variant":{"variants":[{"fields":[{"type":2}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":2},{"name":"E","type":3}],"path":["Result"]}},{"id":2,"type":{"def":{"tuple":[]}}},{"id":3,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":4,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":3}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":3}],"path":["Result"]}},{"id":5,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":6,"type":{"def":{"array":{"len":32,"type":7}}}},{"id":7,"type":{"def":{"primitive":"u8"}}},{"id":8,"type":{"def":{"primitive":"u128"}}},{"id":9,"type":{"def":{"composite":{"fields":[{"type":6,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":10,"type":{"def":{"primitive":"u64"}}},{"id":11,"type":{"def":{"primitive":"u32"}}},{"id":12,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":"4"} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/flipper.json b/packages/api-contract/src/test/contracts/ink/v4/flipper.json new file mode 100644 index 0000000..d2232d6 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/flipper.json @@ -0,0 +1,396 @@ +{ + "source": { + "hash": "0xa5b19cb655755feba8e34ab5b413ac6593ecc7e24e19af485a4d30036be9d577", + "language": "ink! 4.2.0", + "compiler": "rustc 1.69.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "2.2.1", + "rust_toolchain": "stable-x86_64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "flipper", + "version": "4.2.0", + "authors": [ + "Parity Technologies " + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new flipper smart contract initialized with the given value." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 1 + }, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "default": false, + "docs": [ + "Creates a new flipper smart contract initialized to `false`." + ], + "label": "new_default", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 1 + }, + "selector": "0x61ef7e3e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 5 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 8 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 11 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 12 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 9 + }, + "maxEventTopics": 4, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 10 + } + }, + "events": [], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 3 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Flips the current value of the Flipper's boolean." + ], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 1 + }, + "selector": "0x633aa551" + }, + { + "args": [], + "default": false, + "docs": [ + " Returns the current value of the Flipper's boolean." + ], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 4 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "value" + } + ], + "name": "Flipper" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 1, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 3, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 3 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 3 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 5, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 8, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 6, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 11, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 12, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": "4" +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v4/flipper.wasm b/packages/api-contract/src/test/contracts/ink/v4/flipper.wasm new file mode 100644 index 0000000..3f77edb Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v4/flipper.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v4/index.ts b/packages/api-contract/src/test/contracts/ink/v4/index.ts new file mode 100644 index 0000000..ee0b5fd --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v4/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json new file mode 100644 index 0000000..a7d6342 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/erc20.contract.json @@ -0,0 +1 @@ +{"source":{"hash":"0xf6939855fe6abe0b79cd23a154f0816d8205a5751f36b8703e9a60f31d9e48a5","language":"ink! 5.0.0-rc.1","compiler":"rustc 1.75.0","wasm":"0x0061736d0100000001691160037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f0060047f7f7f7f0060047f7f7f7f017f60057f7f7f7f7f0060000060017f017f60027e7e0060047f7f7e7e0060037e7e7f0060037f7e7e006000017f60057f7f7f7f7f017f60047f7f7e7e017f02c7010a057365616c310b6765745f73746f726167650006057365616c3005696e7075740002057365616c300d6465706f7369745f6576656e740005057365616c320b7365745f73746f726167650006057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c300663616c6c65720002057365616c301176616c75655f7472616e736665727265640002057365616c300f686173685f626c616b65325f323536000303656e76066d656d6f7279020102100356550000000007030b0202030c0d0402030305040207040202000202020403020204070e01010203040903030102010f0a02080a0208100408030502020901000001010104020101070605060201010300050101010205040501700116160616037f01418080040b7f0041809b050b7f0041fe9a050b0711020463616c6c003c066465706c6f79003f091b010041010b15555435332b2c495b4a2f2f2b2f4748454c2f57595a0afa78552b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b2200200120034d044020002001360204200020023602000f0b200120032004100e000b0e0020002001200241f89004105d0bbb0102037f017e230041306b2204240020044100360220200442808001370228200441fe9a0436022441b7c380e57e200441246a2205101020002005101120012005101120042004290224370218200441106a200441186a2206200428022c10122004280214210020042802102101200429021821072004410036022c20042007370224200220032005101320042004290224370218200441086a2006200428022c1012200120002004280208200428020c10031a200441306a24000b2601017f230041106b220224002002200036020c20012002410c6a41041017200241106a24000b0a0020012000412010170b4501017f2002200128020422034b044041a09604412341cc98041032000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b2a01017f230041106b2203240020032001370308200320003703002002200341101017200341106a24000bb50102047f017e230041306b2203240020034100360220200342808001370228200341fe9a0436022441e7b98fb102200341246a2204101020002004101120032003290224370218200341106a200341186a2205200328022c10122003280214210020032802102106200329021821072003410036022c20032007370224200120022004101320032003290224370218200341086a2005200328022c1012200620002003280208200328020c10031a200341306a24000bbd0102047f017e230041d0006b22012400200141186a220220001016200129021821052001410036022c20012005370224200141003a0044200141246a2203200141c4006a22044101101720012001290224370218200141106a2002200128022c10122003200128021020012802141018200141086a200028020020002802042000280208220210192001410036024c2001200129030837024420032004101120022002200128024c6a22024d101a20002002360208200141d0006a24000b3f01027f20012802042203200128020822024904402002200341bc98041031000b200041003602082000200320026b3602042000200128020020026a3602000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741ec9704105c0240200320044f0440200320054b0d01200420066a200320046b20012002418c9804101c2007419c9804105c200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41073602002000410236020c200041ac9104360208200041073602242000200041206a3602102000200041046a36022820002000360220200041086a41fc97041034000b2003200541fc9704100e000b8f0201077f230041d0006b22032400200341286a22044200370300200341206a22054200370300200341186a22064200370300200342003703100240200241214f0440200341c8006a22074200370300200341406b22084200370300200341386a220942003703002003420037033020012002200341306a1008200420072903003703002005200829030037030020062009290300370300200320032903303703100c010b200341086a2002200341106a412041a48104100d2003280208200328020c2001200241b48104101c0b20002003290310370000200041186a200341286a290300370000200041106a200341206a290300370000200041086a200341186a290300370000200341d0006a24000b29002002200349044020032002418c84041031000b2000200220036b3602042000200120036a3602000b1500200045044041c39604412b419c84041032000b0bb20102037f017e230041d0006b22022400200241186a220420001016200229021821052002410036022c200220053702242001200241246a2203101120022002290224370218200241106a2004200228022c10122003200228021020022802141018200241086a200028020020002802042000280208220110192002410036024c200220022903083702442003200241c4006a101120012001200228024c6a22014d101a20002001360208200241d0006a24000b7b002001200346044020002002200110091a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41073602002000410336020c200041809304360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a20041034000b5c01027f230041206b22012400200141086a200028020020002802042000280208220210192001410036021c20012001290308370214200141146a410c101e20022002200128021c6a22024d101a20002002360208200141206a24000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41073602002000410236020c200041948e04360208200041073602242000200041206a360210200020003602282000200041046a360220200041086a41ac98041034000b8a0101047f230041206b22022400200241186a22034200370300200241106a22044200370300200241086a22054200370300200242003703002000027f200120024120102045044020002002290300370001200041196a2003290300370000200041116a2004290300370000200041096a200529030037000041000c010b41010b3a0000200241206a24000b3d01027f2000280204220320024922044504402001200220002802002201200241b49a04101c2000200320026b3602042000200120026a3602000b20040b5502027f017e230041206b22022400200241086a20011022200241186a29030021042002280208210320002002290310370308200041106a200437030020002003200128020472410047ad370300200241206a24000b5f02017f037e230041106b2202240020024200370308200242003703000240200120024110102045044020022903082104200229030021050c010b420121030b2000200537030820002003370300200041106a2004370300200241106a24000ba90102017f027e230041406a220224002002411f6a2001101f0240024020022d001f0d002002200110222002290300a70d00200241106a2903002103200229030821042000200229002037000820004200370300200041286a2004370300200041306a2003370300200041206a200241386a290000370000200041186a200241306a290000370000200041106a200241286a2900003700000c010b200042013703000b200241406b24000be80202077f017e230041406a22012400200142808001370228200141fe9a04360224200141246a101d200141186a2001412c6a28020036020020012001290224370310200141306a2202200141106a41b587041025200041316a2105024020002d001004402002200041116a101b0c010b200141306a10150b200041106a2106200141186a200141386a28020036020020012001290230370310024020052d00000440200141106a200041326a101b0c010b200141106a10150b200141386a2202200141186a220328020036020020012001290310370330200141106a2204200141306a2207102620022003280200360200200120012902102208370330200141206a2802002102200128021c210320014100360218200120083702102006200410272005200410272000290300200041086a2903002004101320012001290210370330200141086a200720012802181012200320022001280208200128020c1002200141406b24000bda0102037f017e230041d0006b22032400024020020440200341186a220520011016200329021821062003410036022c200320063702242002200341246a2204101120032003290224370218200341106a2005200328022c10122004200328021020032802141018200341086a200128020020012802042001280208220210192003410036024c200320032903083702442004200341c4006a101120022002200328024c6a22024d101a200120023602080c010b200110150b20002001290200370200200041086a200141086a280200360200200341d0006a24000b6502027f017e230041206b22022400200241186a2203410036020020022001290200370310200241086a200241106a200141086a280200101220022903082104200041086a2003280200360200200020022903103702002000200437020c200241206a24000b210020002d000045044020014100101e0f0b20014101101e200041016a200110110baf0101027f230041306b2201240020014180800136020441fe9a04200141046a2202100620014180800136022c200141fe9a043602282002200141286a101f20012d00040440200141103a000441f7820441c100200241c8820441b883041029000b2000200141066a290000370001200041096a2001410e6a290000370000200041116a200141166a290000370000200041186a2001411d6a290000370000200020012d00053a0000200141306a24000b7c01017f230041406a220524002005200136020c200520003602082005200336021420052002360210200541246a42023702002005413c6a41013602002005410236021c200541a88e04360218200541023602342005200541306a3602202005200541106a3602382005200541086a360230200541186a20041034000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10072000290308210120002903002102200041206a2400410541042001200284501b0b1b002001280214418889044105200141186a28020028020c1100000b3400200128021420002802002d0000410274220041b888046a280200200041f887046a280200200141186a28020028020c1100000bff0202057f027e230041d0006b220224002002410036023020024280800137023c200241fe9a0436023841e7b98fb102200241386a2204101020012004101120022002290238370228200241206a200241286a200228024010122002280224210320022802202105200228022821012002200228022c2206360238200520032001200410002103200241186a20022802382001200641b88204100d027e024002400240024020030e0400010103010b200228021821012002200228021c36023c200220013602382002200241386a10212002290300a70d0120022903082107200241106a2903000c030b200241c4006a42003702002002410136023c200241f48304360238200241a09604360240200241386a41fc83041034000b200241103a0037200241c4006a42013702002002410136023c2002418c81043602382002410336022c2002200241286a3602402002200241376a360228200241386a419481041034000b42000b21082000200737030020002008370308200241d0006a24000b850302047f027e230041d0006b220324002003410036023020034280800137023c200341fe9a0436023841b7c380e57e200341386a2204101020012004101120022004101120032003290238370228200341206a200341286a200328024010122003280224210220032802202105200328022821012003200328022c2206360238200520022001200410002102200341186a20032802382001200641b88204100d027e024002400240024020020e0400010103010b200328021821012003200328021c36023c200320013602382003200341386a10212003290300a70d0120032903082107200341106a2903000c030b200341c4006a42003702002003410136023c200341f48304360238200341a09604360240200341386a41fc83041034000b200341103a0037200341c4006a42013702002003410136023c2003418c81043602382003410336022c2003200341286a3602402003200341376a360228200341386a419481041034000b42000b21082000200737030020002008370308200341d0006a24000b0300010b1b002000418180014f044020004180800141c88304100e000b20000b0e0020002001200241d89004105d0b4601017f230041206b220324002003410c6a420037020020034101360204200341a096043602082003200136021c200320003602182003200341186a360200200320021034000b840101017f230041306b22022400200241146a42013702002002410136020c200241a0950436020820024102360224200220002d0000410274220041c49a046a28020036022c2002200041d89a046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10462100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241c48d04360210200241a0960436020c2002410c6a104b000b8f0101027f230041106b22022400027f024002400240410220002d000041106b41ff01712203200341024f1b41016b0e020102000b20022000360208200141d882044106200241086a410510360c020b200128021441de8204410e200141186a28020028020c1100000c010b2002200036020c200141ec8204410b2002410c6a410610360b2100200241106a240020000ba20201047f230041406a220524004101210702402000280214220620012002200041186a280200220228020c22011100000d000240200028021c2208410471450440200641d68e04410120011100000d022003200020041101000d0220002802142106200028021828020c21010c010b200641d78e04410220011100000d01200541013a001b200541346a41b88e04360200200520023602102005200636020c20052008360238200520002d00203a003c2005200028021036022c200520002902083702242005200029020037021c20052005411b6a36021420052005410c6a36023020032005411c6a20041101000d01200528023041d48e044102200528023428020c1100000d010b200641a88d044101200111000021070b200541406b240020070b3e01027f230041106b22022400200242808001370208200241fe9a04360204200241046a22034100101e20002001200310134100200228020c1030103b000b5101027f230041106b22022400200242808001370208200241fe9a04360204200241046a22034100101e2003200141ff0171410247047f20034101101e20010541000b101e2000200228020c1030103b000b3c01027f230041106b22002400200042808001370208200041fe9a04360204200041046a22014101101e20014101101e4101200028020c1030103b000bab0102057f017e230041306b2202240020024100360220200242808001370228200241fe9a043602244100200241246a2203101020022002290224370218200241106a200241186a2204200228022c10122002280214210520022802102106200229021821072002410036022c20022007370224200020012003101320022002290224370218200241086a2004200228022c1012200620052002280208200228020c10031a200241306a24000b0d00200041fe9a0420011005000b821602087f047e230041a0056b22002400024002400240102a41ff017141054604402000418080013602c80441fe9a04200041c8046a2201100120004180016a20002802c80441fe9a044180800141b88204100d20002000290380013702bc04200041003602c804200041bc046a2001410410200d0220002d00cb04210220002d00ca04210320002d00c9042101027f02400240024002400240024020002d00c8042204410b6b0e050509090901000b0240200441e8006b0e03040902000b2004418401460d02200441db0147200141ff017141e3004772200341f50047200241a8014772720d0841000c050b200141ff017141f50047200341da004772200241d60047720d07200041c8046a200041bc046a101f20002d00c8040d07200041f0016a200041d2046a290000370300200041f8016a200041da046a290000370300200041ff016a200041e1046a2900003700002000200041ca046a2900003703e80120002d00c904210141010c040b200141ff0171200341164772200241de0047720d06200041a8026a200041bc046a2201101f20002d00a8020d0620004188016a2001101f20002d0088010d06200041ff046a200041a1016a290000370000200041f7046a20004199016a290000370000200041ef046a20004191016a290000370000200041d0046a200041b2026a290000370300200041d8046a200041ba026a290000370300200041df046a200041c1026a29000037000020002000290089013700e7042000200041aa026a2900003703c80420002d00a9022101200041e8016a200041c8046a413f10091a41020c030b200141ff017141a10147200341dd004772200241a10147720d05200041c8046a200041bc046a102320002903c8044200520d05200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41030c020b200141ff0171411247200341e6004772200241a00147720d04200041c8046a200041bc046a102320002903c8044200520d04200041b6036a200041ae026a2000418e016a200041d0046a4130100941301009413010091a200041e8016a200041b0036a413610091a41040c010b200141ff0171413947200341ef0047722002411847720d03200041f0036a200041bc046a2201101f20002d00f0030d0320004198046a2001101f20002d0098040d03200041e8006a200110222000290368a70d03200041f8006a290300210820002903702109200041c8036a200041f1036a220141186a290000370300200041c0036a200141106a290000370300200041b8036a200141086a290000370300200041d8036a200041a1046a290000370300200041e0036a200041a9046a290000370300200041e8036a200041b1046a29000037030020002000290099043703d003200020012900003703b003200041f0026a2202200041b0036a41c00010091a200041ae026a2000418e016a200041ce046a200241c000100941c000100941c00010091a200041e8016a200041a8026a413f10091a2000200041ea026a2800003600e301200020002800e7023602e00141050b210220004188016a410272200041e8016a413f10091a200041cc016a20002800e301360000200041d8016a2008370300200020002802e0013600c901200020093703d001200020013a008901200020023a008801200041003602b0022000428080013702cc04200041fe9a043602c8044100200041c8046a22031010200020002902c8043702a802200041e0006a200041a8026a20002802d0041012200028026421042000280260210520002802a8022101200020002802ac0222063602c804200520042001200310002103200041d8006a20002802c8042001200641b88204100d02400240024020030e0400040401040b200028025821012000200028025c3602cc04200020013602c804200041406b200041c8046a10222000290340a745044020002802cc04450d020b200041d4046a4200370200200041013602cc042000419c87043602c8040c050b200041d4046a4200370200200041013602cc04200041ec86043602c8040c040b20004188016a4101722101200041d0006a290300210820002000290348220937039804200020083703a00402400240024002400240024002400240200241016b0e050001040502030b230041406a22022400200241286a200141086a290000370200200241306a200141106a290000370200200241386a200141186a290000370200200220004198046a36021c20022001290000370220200241086a200241206a102d20022903082108200041086a2201200241106a29030037030820012008370300200241406b24002000290308200041106a2903001037000b230041e0006b22022400200220004198046a36021c200241086a200241206a200141c0001009200241406b102e20022903082108200041186a2201200241106a29030037030820012008370300200241e0006a24002000290318200041206a2903001037000b200041d0046a20004190016a41d00010092101200020004198046a3602c80420004190056a290300210920004198056a2903002108200041a8026a22021028200041306a20012002102e41012103410121022000290330220b2009542204200041386a290300220a2008542008200a511b0d04410221022001200041f0046a20092008103d41ff017122054102460d03200541004721020c040b200920081037000b200041d0046a20004190016a413010092101200020004198046a3602c804200041f8046a2903002108200041f0046a2903002109200041a8026a220210282002200120092008103d220141ff0171410246047f200029039804200041a0046a290300103a41000541010b20011038000b200041b8036a20004190016a413010092101200020004198046a3602b003200041e0036a2903002108200041d8036a2903002109200041f0026a220210282002200120092008100f200041c0026a20004188036a290000370300200041b8026a20004180036a290000370300200041b0026a200041f8026a290000370300200041d0026a20004198016a290300370300200041d8026a200041a0016a290300370300200041e0026a200041a8016a290300370300200020002900f0023703a80220002000290390013703c802200041c8046a2204200041a8026a41c00010091a20004190056a2206200837030020002009370388052000428080013702c004200041fe9a043602bc04200041bc046a101d200041f0016a2202200041c4046a280200360200200020002902bc043703e801200041f0036a2203200041e8016a220141d68704102520032004101b2002200041f8036a2205280200360200200020002902f0033703e8012001200041e8046a2207101b20052002280200360200200020002903e8013703f00320012003102620052002280200360200200020002902e80122083703f003200041f8016a280200210220002802f4012105200041003602f001200020083702e801200420011011200720011011200029038805200629030020011013200020002902e8013703f003200041286a200320002802f0011012200520022000280228200028022c1002200029039804200041a0046a290300103a410041021038000b2001200041a8026a200b20097d200a20087d2004ad7d100f200029039804200041a0046a290300103a410021030b200320021038000b200041043a00c804200041c8046a103e000b200041d4046a4200370200200041013602cc04200041f483043602c804200041a096043602d004200041c8046a41fc83041034000b1039000b200041a096043602d004200041c8046a41c486041034000bd40202037f037e23004180016b22042400200441186a2000102d0240200429031822082002542206200441206a290300220720035420032007511b4504402000200820027d200720037d2006ad7d1014200441086a2001102d2004290308220720027c220920075422052005ad200441106a290300220720037c7c220820075420072008511b4101460d012001200920081014200441396a2000290000370000200441c1006a200041086a290000370000200441c9006a200041106a290000370000200441d1006a200041186a290000370000200441da006a2001290000370100200441e2006a200141086a290000370100200441ea006a200141106a290000370100200441f2006a200141186a290000370100200441013a0038200441013a00592004200337033020042002370328200441286a1024410221050b20044180016a240020050f0b41c39604412b41a487041032000b4801017f230041206b220124002001410c6a420137020020014101360204200141a095043602002001410436021c200120003602182001200141186a360208200141c486041034000bf00402087f037e230041c0016b220024000240102a220141ff0171410546044020004180800136025041fe9a04200041d0006a22011001200041286a200028025041fe9a044180800141b88204100d200020002903283702502000410036023002402001200041306a410410200d0020002d0030419b01470d0020002d003141ae01470d0020002d0032419d01470d0020002d003341de00470d00200041106a200110222000290310a7450d020b1039000b200020013a0050200041d0006a103e000b200041206a290300210820002903182109200041306a1028200041ec006a200041c8006a2202290000370200200041e4006a200041406b2203290000370200200041dc006a200041386a220429000037020020002000290030370254200041808004360250200041003602b0012000428080013702b801200041fe9a043602b40141e7b98fb102200041b4016a22011010200041d4006a20011011200020002902b4013702a801200041086a200041a8016a220520002802bc011012200028020c21062000280208210720002902a801210a200041003602bc012000200a3702b4012009200820011013200020002902b4013702a8012000200520002802bc011012200720062000280200200028020410031a2000419a016a200229000037010020004192016a20032900003701002000418a016a200429000037010020004182016a20002900303701002000200837035820002009370350200041013a008101200041003a0060200041d0006a102420092008103a230041106b22002400200042808001370208200041fe9a04360204200041046a22014100101e20014100101e4100200028020c1030103b000b6001027f230041106b2203240020022000280204200028020822046b4b0440200341086a20002004200210412003280208200328020c1042200028020821040b200028020020046a2001200210091a2000200220046a360208200341106a24000ba80301057f230041206b22042400027f4100200220036a22032002490d001a4108200128020422024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003104320022802082105200228020c0c020b200528020021080240200310442205450440410021050c010b20052008200710091a0b20030c010b2002200310432002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000bd10100024020004181808080784704402000450d01230041306b220024002000200136020c2000411c6a420137020020004102360214200041d88b043602102000410736022c2000200041286a36021820002000410c6a360228230041206b22012400200141003b011c200141e88b043602182001200041106a360214200141c48d04360210200141a0960436020c2001410c6a104b000b0f0b230041206b22002400200041146a42003702002000410136020c200041ac8a04360208200041a09604360210200041086a41b48a041034000b2001017f41ec9a042d00001a20011044210220002001360204200020023602000bb70101027f027f41f09a042d0000044041f49a042802000c010b3f00210141f49a0441809b0536020041f09a0441013a000041f89a04200141107436020041809b050b21010240027f4100200020016a22022001490d001a41f89a042802002002490440200041ffff036a220241107640002201417f460d022001411074220120024180807c716a22022001490d0241f89a0420023602004100200020016a22022001490d011a0b41f49a04200236020020010b0f0b41000b0c00200041908904200110460bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10562003200329031037021c200341086a20062001105620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0c00200020012002104041000bb90201037f230041106b22022400024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a20002003410110412004280208200428020c1042200441106a2400200028020821030b2000200341016a360208200028020020036a20013a00000c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b10400b200241106a240041000bdb05020b7f027e230041406a220324004127210202402000350200220d4290ce00540440200d210e0c010b0340200341196a20026a220041046b200d4290ce0080220e42f0b1037e200d7ca7220441ffff037141e4006e220641017441d98e046a2f00003b0000200041026b2006419c7f6c20046a41ffff037141017441d98e046a2f00003b0000200241046b2102200d42ffc1d72f562100200e210d20000d000b0b200ea7220041e3004b0440200241026b2202200341196a6a200ea7220441ffff037141e4006e2200419c7f6c20046a41ffff037141017441d98e046a2f00003b00000b02402000410a4f0440200241026b2202200341196a6a200041017441d98e046a2f00003b00000c010b200241016b2202200341196a6a200041306a3a00000b200128021c22054101712207412720026b22066a2100410021042005410471044041a09604210441a0960441a09604104d20006a21000b412b418080c40020071b2107200341196a20026a2108024020012802004504404101210220012802142200200128021822012007200410500d01200020082006200128020c11000021020c010b2000200128020422094f04404101210220012802142200200128021822012007200410500d01200020082006200128020c11000021020c010b200541087104402001280210210b2001413036021020012d0020210c41012102200141013a0020200128021422052001280218220a2007200410500d01200341106a2001200920006b4101105120032802102200418080c400460d0120032802142104200520082006200a28020c1100000d01200020042005200a10520d012001200c3a00202001200b360210410021020c010b41012102200341086a2001200920006b4101105120032802082205418080c400460d00200328020c210920012802142200200128021822012007200410500d00200020082006200128020c1100000d002005200920002001105221020b200341406b240020020b0e0020002802001a03400c000b000bc40101017f230041406a220124002001200036020c2001411c6a420137020020014102360214200141f096043602102001410836022c2001200141286a36021820012001410c6a3602282001410036023820014201370230200141306a200141106a10454504402001280230210020012802382101024041fc9a042d000045044041fd9a042d00004101710d010b200020011004410947044041fc9a0441013a00000b41fd9a0441013a00000b000b41f88b0441332001413f6a41f8880441988d041029000b210020004283ddaa8bf8ede3ea20370308200042ec80a48aff99c486ab7f3703000ba10301067f230041106b220224000240200120006b220141104f04402000200041036a417c71220520006b2200104e2005200120006b2200417c716a2000410371104e6a21042000410276210303402003450d0220022005200341c0012003200341c0014f1b41b09204104f200228020c21032002280208210520022002280200200228020422002000417c71418c9404104f024020022802042200450440410021010c010b2002280200220620004102746a21074100210103404100210003402001200020066a2802002201417f734107762001410676724181828408716a2101200041046a22004110470d000b200641106a22062007470d000b0b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a2104200228020c2201450d000b2002280208210020014102742103410021010340200120002802002201417f734107762001410676724181828408716a2101200041046a2100200341046b22030d000b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a21040c010b20002001104e21040b200241106a240020040b2c01017f200104400340200220002c000041bf7f4a6a2102200041016a2100200141016b22010d000b0b20020b3d002002200349044041a09604412320041032000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000b9c0101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b20024101762104200241016a41017621020b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490bf60101067f2000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722104200341f00149044020042006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200441067472722203418080c400460d011a0b200120012802082207200520026b6a36020820030b360204200020073602000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1053200228021c418080c400470d010c020b0b200241106a200241246a10532002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a104d22054d0d01200241086a2001200020056b410010514101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001105221000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044109470d0120012802000b2802002104410121030b20002004360204200020033602000bd30501107f230041406a22032400200341003b013c200320023602382003410036023420034281808080a00137022c2003200236022820034100360224200320023602202003200136021c2003410a3602182000280204210a2000280200210b2000280208210c200341306a210d027f0340027f024020032d003d450440200328021c2108024020032802282205200328022022104b0d002003280224220120054b0d00200328022c2200200d6a41016b21110340200120086a210420112d0000210602400240027f0240200520016b220741084f0440024002402004200441036a417c712202460440200741086b210e410021020c010b200341106a20062004200220046b2202105820032802104101460d012002200741086b220e4b0d030b200641818284086c210f0340200220046a220941046a280200200f732212417f73201241818284086b712009280200200f732209417f73200941818284086b7172418081828478710d03200241086a2202200e4d0d000b0c020b2003280214210241010c020b200320062004200710582003280204210220032802000c010b200341086a2006200220046a200720026b1058200328020c20026a210220032802084101460b41014604402003200120026a41016a2201360224200020014b200120104b720d02200041054f0d012008200120006b6a21022002200d2000100c0d022003280234210020032001360234200120006b0c070b200320053602240c030b2000410441909504100e000b200120054d0d000b0b200341013a003d20032d003c044020032802382102200328023421000c020b2003280238220220032802342200470d010b41000c030b200220006b0b21010240200c2d00000440200b41d08e044104200a28020c1100000d010b200020086a2100200c2001047f200020016a41016b2d0000410a460541000b3a0000200b20002001200a28020c110000450d010b0b41010b2100200341406b240020000b5701027f024002402003450440410021030c010b200141ff017121054101210103402005200220046a2d0000460440200421030c030b2003200441016a2204470d000b0b410021010b20002003360204200020013602000b4e01027f20002802042102200028020021030240200028020822002d0000450d00200341d08e044104200228020c110000450d0041010f0b20002001410a463a00002003200120022802101101000b0c00200041b88e04200110460bea0201067f230041406a22022400200028020021054101210002402001280214220441d48d04410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4107360200200241346a410736020020024103360214200241ac8d0436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a220736021820042006200241106a10460d00200528020822030440200441e08d04410220011100000d01200241386a200341106a290200370300200241306a200341086a29020037030020022003290200370328200420062007104621000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441e08d04410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041c39604412b20011032000b0b6901017f230041306b220424002004200136020420042000360200200441146a42023702002004412c6a41073602002004410236020c20042003360208200441073602242004200441206a3602102004200441046a36022820042004360220200441086a20021034000b0bf41a0100418080040beb1ae7dc23262f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f73746f726167652f7372632f6c617a792f6d617070696e672e72734661696c656420746f206765742076616c756520696e204d617070696e673a2000000069000100200000000400010065000000c4000000250000005c0c01006a00000093000000200000005c0c01006a00000093000000300000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f70616c6c65742d636f6e7472616374732d756170692d6e6578742d362e302e312f7372632f686f73742e72730000c4000100720000002d000000170000000a0000000100000001000000030000004465636f6465427566666572546f6f536d616c6c52657475726e4572726f7254686520657865637574656420636f6e7472616374206d757374206861766520612063616c6c6572207769746820612076616c6964206163636f756e742069642e5c0c01006a000000820100000e0000005c0c01006a0000001a01000032000000656e636f756e746572656420756e6578706563746564206572726f72d80101001c0000005c0c01006a000000e300000017000000800b01006b000000cf0000003d000000800b01006b000000d20000003b0000005375636365737343616c6c65655472617070656443616c6c656552657665727465644b65794e6f74466f756e645f42656c6f7753756273697374656e63655468726573686f6c645472616e736665724661696c65645f456e646f776d656e74546f6f4c6f77436f64654e6f74466f756e644e6f7443616c6c61626c654c6f6767696e6744697361626c656443616c6c52756e74696d654661696c656445636473615265636f766572794661696c6564537232353531395665726966794661696c656458636d457865637574696f6e4661696c656458636d53656e644661696c6564556e6b6e6f776e2f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f65726332302f6c69622e72730000140301002e000000070000000500000073746f7261676520656e7472792077617320656d707479005403010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279007403010027000000140301002e000000d30000003d00000001b5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb011a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d0000070000000d0000000e0000000b0000001a0000000e000000100000000c0000000b0000000f000000110000001300000013000000120000000d000000070000002c02010033020100400201004e020100590201007302010081020100910201009d020100a8020100b7020100c8020100db020100ee020100000301000d0301000b00000000000000010000000c0000004572726f720000000d0000000c000000040000000e0000000f000000100000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700001905010011000000a80401007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000000b305010015000000c80501000d000000440501006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72732b0601006d0000006402000020000000293a0000200b010000000000a906010001000000a9060100010000000b00000000000000010000001100000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e64657820697320e20601002000000002070100120000003a200000200b0100000000002407010002000000120000000c00000004000000130000001400000015000000202020202c0a28280a303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393972616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e677468200000002108010012000000330801002200000072616e676520656e6420696e6465782068080100100000003308010022000000736c69636520696e64657820737461727473206174202062757420656e6473206174200088080100160000009e0801000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300bc08010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e67746820284009010015000000550901002b000000a8060100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e7273000098090100720000004f000000320000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72731c0a010074000000b801000037000000200b010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00200b0100000000006e0b0100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300800b01006b0000005c0000003b000000800b01006b0000005c00000014000000800b01006b0000005d0000000e000000800b01006b0000005e00000034000000800b01006b0000006800000009000000800b01006b0000008600000025000000800b01006b00000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72732f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e7273000000c60c01006b000000770000000e000000190000001c000000160000001400000019000000a80a0100c10a0100dd0a0100f30a0100070b01","build_info":{"build_mode":"Debug","cargo_contract_version":"4.0.0-rc.2","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"erc20","version":"5.0.0-rc.1","authors":["Parity Technologies "]},"image":null,"spec":{"constructors":[{"args":[{"label":"total_supply","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":["Creates a new ERC-20 contract with the specified initial supply."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":14},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":2},"balance":{"displayName":["Balance"],"type":0},"blockNumber":{"displayName":["BlockNumber"],"type":23},"chainExtension":{"displayName":["ChainExtension"],"type":24},"hash":{"displayName":["Hash"],"type":21},"maxEventTopics":4,"staticBufferSize":16384,"timestamp":{"displayName":["Timestamp"],"type":22}},"events":[{"args":[{"docs":[],"indexed":true,"label":"from","type":{"displayName":["Option"],"type":20}},{"docs":[],"indexed":true,"label":"to","type":{"displayName":["Option"],"type":20}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when a token transfer occurs."],"label":"Transfer","module_path":"erc20::erc20","signature_topic":"0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb"},{"args":[{"docs":[],"indexed":true,"label":"owner","type":{"displayName":["AccountId"],"type":2}},{"docs":[],"indexed":true,"label":"spender","type":{"displayName":["AccountId"],"type":2}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["Balance"],"type":0}}],"docs":["Event emitted when an approval occurs that `spender` is allowed to withdraw","up to the amount of `value` tokens from `owner`."],"label":"Approval","module_path":"erc20::erc20","signature_topic":"0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d"}],"lang_error":{"displayName":["ink","LangError"],"type":15},"messages":[{"args":[],"default":false,"docs":[" Returns the total token supply."],"label":"total_supply","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0xdb6375a8"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":2}}],"default":false,"docs":[" Returns the account balance for the specified `owner`.",""," Returns `0` if the account is non-existent."],"label":"balance_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0x0f755a56"},{"args":[{"label":"owner","type":{"displayName":["AccountId"],"type":2}},{"label":"spender","type":{"displayName":["AccountId"],"type":2}}],"default":false,"docs":[" Returns the amount which `spender` is still allowed to withdraw from `owner`.",""," Returns `0` if no allowance has been set."],"label":"allowance","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":16},"selector":"0x6a00165e"},{"args":[{"label":"to","type":{"displayName":["AccountId"],"type":2}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` amount of tokens from the caller's account to account `to`.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the caller's account balance."],"label":"transfer","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x84a15da1"},{"args":[{"label":"spender","type":{"displayName":["AccountId"],"type":2}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Allows `spender` to withdraw from the caller's account multiple times, up to"," the `value` amount.",""," If this function is called again it overwrites the current allowance with"," `value`.",""," An `Approval` event is emitted."],"label":"approve","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x681266a0"},{"args":[{"label":"from","type":{"displayName":["AccountId"],"type":2}},{"label":"to","type":{"displayName":["AccountId"],"type":2}},{"label":"value","type":{"displayName":["Balance"],"type":0}}],"default":false,"docs":[" Transfers `value` tokens on the behalf of `from` to the account `to`.",""," This can be used to allow a contract to transfer tokens on ones behalf and/or"," to charge fees in sub-currencies, for example.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientAllowance` error if there are not enough tokens allowed"," for the caller to withdraw from `from`.",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the account balance of `from`."],"label":"transfer_from","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":17},"selector":"0x0b396f18"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"total_supply"},{"layout":{"root":{"layout":{"leaf":{"key":"0xe7dc2326","ty":0}},"root_key":"0xe7dc2326","ty":1}},"name":"balances"},{"layout":{"root":{"layout":{"leaf":{"key":"0xb721a0ec","ty":0}},"root_key":"0xb721a0ec","ty":9}},"name":"allowances"}],"name":"Erc20"}},"root_key":"0x00000000","ty":13}},"types":[{"id":0,"type":{"def":{"primitive":"u128"}}},{"id":1,"type":{"def":{"composite":{}},"params":[{"name":"K","type":2},{"name":"V","type":0},{"name":"KeyType","type":5}],"path":["ink_storage","lazy","mapping","Mapping"]}},{"id":2,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":3,"type":{"def":{"array":{"len":32,"type":4}}}},{"id":4,"type":{"def":{"primitive":"u8"}}},{"id":5,"type":{"def":{"composite":{}},"params":[{"name":"L","type":6},{"name":"R","type":7}],"path":["ink_storage_traits","impls","ResolverKey"]}},{"id":6,"type":{"def":{"composite":{}},"path":["ink_storage_traits","impls","AutoKey"]}},{"id":7,"type":{"def":{"composite":{}},"params":[{"name":"ParentKey","type":8}],"path":["ink_storage_traits","impls","ManualKey"]}},{"id":8,"type":{"def":{"tuple":[]}}},{"id":9,"type":{"def":{"composite":{}},"params":[{"name":"K","type":10},{"name":"V","type":0},{"name":"KeyType","type":11}],"path":["ink_storage","lazy","mapping","Mapping"]}},{"id":10,"type":{"def":{"tuple":[2,2]}}},{"id":11,"type":{"def":{"composite":{}},"params":[{"name":"L","type":6},{"name":"R","type":12}],"path":["ink_storage_traits","impls","ResolverKey"]}},{"id":12,"type":{"def":{"composite":{}},"params":[{"name":"ParentKey","type":8}],"path":["ink_storage_traits","impls","ManualKey"]}},{"id":13,"type":{"def":{"composite":{"fields":[{"name":"total_supply","type":0,"typeName":",>>::Type"},{"name":"balances","type":1,"typeName":" as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type"},{"name":"allowances","type":9,"typeName":" as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type"}]}},"path":["erc20","erc20","Erc20"]}},{"id":14,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8}],"index":0,"name":"Ok"},{"fields":[{"type":15}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":8},{"name":"E","type":15}],"path":["Result"]}},{"id":15,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":15}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":15}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"fields":[{"type":18}],"index":0,"name":"Ok"},{"fields":[{"type":15}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":18},{"name":"E","type":15}],"path":["Result"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":8}],"index":0,"name":"Ok"},{"fields":[{"type":19}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":8},{"name":"E","type":19}],"path":["Result"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"index":0,"name":"InsufficientBalance"},{"index":1,"name":"InsufficientAllowance"}]}},"path":["erc20","erc20","Error"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":2}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":2}],"path":["Option"]}},{"id":21,"type":{"def":{"composite":{"fields":[{"type":3,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":22,"type":{"def":{"primitive":"u64"}}},{"id":23,"type":{"def":{"primitive":"u32"}}},{"id":24,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":5} diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20.json b/packages/api-contract/src/test/contracts/ink/v5/erc20.json new file mode 100644 index 0000000..ea8318f --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/erc20.json @@ -0,0 +1,1025 @@ +{ + "source": { + "hash": "0xf6939855fe6abe0b79cd23a154f0816d8205a5751f36b8703e9a60f31d9e48a5", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "5.0.0-rc.1", + "authors": [ + "Parity Technologies " + ] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 14 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 2 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 23 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 24 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 21 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 22 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 20 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 20 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when a token transfer occurs." + ], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0xb5b61a3e6a21a16be4f044b517c28ac692492f73c5bfd3f60178ad98c767f4cb" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 15 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 9 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 13 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 5 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 7 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": {} + }, + "path": [ + "ink_storage_traits", + "impls", + "AutoKey" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 8, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 10 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 11 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 12 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 1, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" + }, + { + "name": "allowances", + "type": 9, + "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Erc20" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 19 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 19 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 22, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 23, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 24, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": 5 +} diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20.wasm b/packages/api-contract/src/test/contracts/ink/v5/erc20.wasm new file mode 100644 index 0000000..f6800bb Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v5/erc20.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json b/packages/api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json new file mode 100644 index 0000000..9536911 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/erc20_anonymous_transfer.json @@ -0,0 +1,1025 @@ +{ + "source": { + "hash": "0x3f4668bee7d86719c3219962213b5d5bcb70a6e8611f166e1dae06019dd481d2", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "erc20", + "version": "5.0.0-rc.1", + "authors": [ + "Parity Technologies " + ] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 14 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 2 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 0 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 23 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 24 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 21 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 22 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 20 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 20 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when a token transfer occurs." + ], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": null + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0x1a35e726f5feffda199144f6097b2ba23713e549bfcbe090c0981e3bcdfbcc1d" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 15 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 2 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 17 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 1 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 9 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 13 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 5 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "array": { + "len": 32, + "type": 4 + } + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 5, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 7 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": {} + }, + "path": [ + "ink_storage_traits", + "impls", + "AutoKey" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 8, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 10 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 11 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [ + 2, + 2 + ] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 6 + }, + { + "name": "R", + "type": 12 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 8 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 1, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<639884519u32, ()\n>,>>::Type" + }, + { + "name": "allowances", + "type": 9, + "typeName": " as::ink::storage::traits\n::AutoStorableHint<::ink::storage::traits::ManualKey<\n3969917367u32, ()>,>>::Type" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Erc20" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 18 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 15 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 18 + }, + { + "name": "E", + "type": 15 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 19 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 19 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 2 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 2 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 3, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 22, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 23, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 24, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": 5 +} diff --git a/packages/api-contract/src/test/contracts/ink/v5/flipper.contract.json b/packages/api-contract/src/test/contracts/ink/v5/flipper.contract.json new file mode 100644 index 0000000..1582db7 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/flipper.contract.json @@ -0,0 +1 @@ +{"source":{"hash":"0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99","language":"ink! 5.0.0-rc.1","compiler":"rustc 1.75.0","wasm":"0x0061736d0100000001400b60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060047f7f7f7f017f60017f0060017f017f60000060047f7f7f7f0060057f7f7f7f7f006000017f028a0107057365616c310b6765745f73746f726167650004057365616c3005696e7075740002057365616c320b7365745f73746f726167650004057365616c300d64656275675f6d6573736167650001057365616c300b7365616c5f72657475726e0003057365616c301176616c75655f7472616e73666572726564000203656e76066d656d6f7279020102100334330000000002030a060301020600070205030202070507030802020601000500010101010502010109040804030902010103010204050170010e0e0616037f01418080040b7f00419093050b7f00418693050b0711020463616c6c0019066465706c6f79001b0913010041010b0d0f34263728352327232425212a0afc3b332b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6f01017f0240200020014d04402000210303402002450d02200320012d00003a0000200141016a2101200341016a2103200241016b21020c000b000b200141016b2101200041016b210303402002450d01200220036a200120026a2d00003a0000200241016b21020c000b000b20000b2501017f037f2002200346047f200005200020036a20013a0000200341016a21030c010b0b0b3f01027f0340200245044041000f0b200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b2601017f230041106b22022400200220003a000f20012002410f6a4101100b200241106a24000bd30101057f20002802042105200028020021062000280208220420026a220320044f220741f0900410380240200320044f0440200320054b0d01200420066a200320046b20012002419091041032200741a091041038200020033602080f0b230041306b220024002000200336020420002004360200200041146a42023702002000412c6a41033602002000410236020c200041b48b04360208200041033602242000200041206a3602102000200041046a36022820002000360220200041086a418091041010000b2003200541809104100e000b4d02017f027e230041206b2200240020004200370308200042003703002000411036021c20002000411c6a10052000290308210120002903002102200041206a2400410541042001200284501b0b1b002000418180014f044020004180800141f08104100e000b20000b6b01017f230041306b220324002003200136020420032000360200200341146a42023702002003412c6a41033602002003410236020c200341808b04360208200341033602242003200341206a3602102003200341046a36022820032003360220200341086a20021010000b840101017f230041306b22022400200241146a42013702002002410136020c200241a48e0436020820024102360224200220002d0000410274220041cc92046a28020036022c2002200041e092046a2802003602282002200241206a3602102002200241286a36022020012802142001280218200241086a10222100200241306a240020000b3c01017f230041206b22022400200241013b011c2002200136021820022000360214200241908804360210200241a48f0436020c2002410c6a1029000b4701027f230041106b22012400200141003a000f20002001410f6a41011012220045044020012d000f21020b200141106a240041024101410220024101461b410020021b20001b0b3d01027f2000280204220320024922044504402001200220002802002201200241bc920410322000200320026b3602042000200120026a3602000b20040b3c01027f230041106b22002400200042808001370208200041869304360204200041046a2201410010182001410010184100200028020c100d1017000b4401027f230041106b22022400200242808001370208200241869304360204200241046a22032001047f20034101101841010541000b10182000200228020c100d1017000bb20102057f017e230041306b220124002001410036021c20014280800137022820014186930436022420014100360220200141246a2202200141206a4104100b20012001290224370214200141086a200141146a2203200128022c1016200128020c210420012802082105200129021421062001410036022c2001200637022420002002100a2001200129022437021420012003200128022c1016200520042001280200200128020410021a200141306a24000b4501017f2002200128020422034b044041a48f04412341c091041031000b2001200320026b36020420012001280200220120026a36020020002002360204200020013602000b0d0020004186930420011004000b970101027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b230041306b220024002000200336020420002002360200200041146a42023702002000412c6a41033602002000410236020c200041e08804360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a41b091041010000b880501077f230041306b22002400024002400240024002400240100c41ff0171410546044020004180800136021441869304200041146a2202100120002802142201418180014f0d0120002001360218200041869304360214200041003602082002200041086a410410120d0520002d000b210120002d000a210220002d00092103024020002d00082204412f470440200441e300470d07410121042003413a47200241a5014772200141d1004772450d010c070b41002104200341860147200241db004772200141d90147720d060b200041003602102000428080013702182000418693043602142000410036022c200041146a22032000412c6a4104100b200020002902143702082000200041086a200028021c10162000280204210520002802002106200028020821012000200028020c2202360214200620052001200310002105200220002802142203490d0202400240024020050e0400060601060b2000200336021820002001360214200041146a1011220141ff017141024704402000280218450d020b200041206a420037020020004101360218200041bc83043602140c080b200041206a4200370200200041013602182000418c83043602140c070b20040d04230041106b22002400200042808001370208200041869304360204200041046a22024100101820012002100a4100200028020c100d1017000b200041043a0014200041146a101a000b20014180800141f48004100e000b2003200241f48004100e000b200041206a4200370200200041013602182000419c8204360214200041a48f0436021c200041146a41a482041010000b200141ff0171451015410041001014000b410141011014000b200041a48f0436021c200041146a41e482041010000b4801017f230041206b220124002001410c6a420137020020014101360204200141a48e043602002001410136021c200120003602182001200141186a360208200141e482041010000b820201057f230041106b2200240002400240100c220141ff0171410546044020004180800136020441869304200041046a2202100120002802042201418180014f0d01200020013602082000418693043602042000410036020c024020022000410c6a410410120d0020002d000f210120002d000e210320002d000d210420002d000c220041e1004704402000419b0147200441ae0147722003419d0147200141de004772720d0120021011220041ff01714102460d01200010151013000b200441ef0147200341fe0047720d002001413e460d030b410141011014000b200020013a0004200041046a101a000b20014180800141f48004100e000b410010151013000b6001027f230041106b2203240020022000280204200028020822046b4b0440200341086a200020042002101d2003280208200328020c101e200028020821040b200028020020046a2001200210061a2000200220046a360208200341106a24000ba80301057f230041206b22042400027f4100200220036a22032002490d001a4108200128020422024101742206200320032006491b2203200341084d1b2203417f73411f76210702402002450440200441003602180c010b2004200236021c20044101360218200420012802003602140b200441146a2105230041106b22022400200441086a2206027f02402007044020034100480d01027f20052802040440200541086a2802002207450440200241086a2003101f20022802082105200228020c0c020b200528020021080240200310202205450440410021050c010b20052008200710061a0b20030c010b20022003101f2002280200210520022802040b21072005044020062005360204200641086a200736020041000c030b20064101360204200641086a200336020041010c020b20064100360204200641086a200336020041010c010b2006410036020441010b360200200241106a24002004280208450440200428020c210220012003360204200120023602004181808080780c010b200441106a2802002103200428020c0b21012000200336020420002001360200200441206a24000bd10100024020004181808080784704402000450d01230041306b220024002000200136020c2000411c6a420137020020004102360214200041a486043602102000410336022c2000200041286a36021820002000410c6a360228230041206b22012400200141003b011c200141b486043602182001200041106a360214200141908804360210200141a48f0436020c2001410c6a1029000b0f0b230041206b22002400200041146a42003702002000410136020c200041f88404360208200041a48f04360210200041086a418085041010000b2001017f41f492042d00001a20011020210220002001360204200020023602000bb70101027f027f41f892042d0000044041fc92042802000c010b3f00210141fc92044190930536020041f8920441013a0000418093042001411074360200419093050b21010240027f4100200020016a22022001490d001a418093042802002002490440200041ffff036a220241107640002201417f460d022001411074220120024180807c716a22022001490d024180930420023602004100200020016a22022001490d011a0b41fc9204200236020020010b0f0b41000b0c00200041dc8304200110220bfc0301067f230041406a22032400200341346a2001360200200341033a003c2003412036022c2003410036023820032000360230200341003602242003410036021c027f02400240200228021022014504402002410c6a28020022004103742106200041ffffffff017121072002280200210820022802082101034020042006460d02200420086a220041046a28020022050440200328023020002802002005200328023428020c1100000d040b200441086a21042001280200210020012802042105200141086a210120002003411c6a2005110100450d000b0c020b200241146a28020022044105742100200441ffffff3f7121072002280208210620022802002208210403402000450d01200441046a28020022050440200328023020042802002005200328023428020c1100000d030b2003200128021036022c200320012d001c3a003c20032001280218360238200341106a2006200141086a10362003200329031037021c200341086a20062001103620032003290308370224200441086a2104200041206b210020012802142105200141206a2101200620054103746a22052802002003411c6a2005280204110100450d000b0c010b200228020420074b04402003280230200820074103746a22002802002000280204200328023428020c1100000d010b41000c010b41010b2101200341406b240020010b0300010b0c00200020012002101c41000bb90201037f230041106b22022400024020002002410c6a027f0240024020014180014f04402002410036020c2001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200028020822032000280204460440230041106b22042400200441086a200020034101101d2004280208200428020c101e200441106a2400200028020821030b2000200341016a360208200028020020036a20013a00000c030b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f20022001410676413f71418001723a000e20022001410c76413f71418001723a000d2002200141127641077141f001723a000c41040b101c0b200241106a240041000bdb05020b7f027e230041406a220324004127210202402000350200220d4290ce00540440200d210e0c010b0340200341196a20026a220041046b200d4290ce0080220e42f0b1037e200d7ca7220441ffff037141e4006e2206410174418489046a2f00003b0000200041026b2006419c7f6c20046a41ffff0371410174418489046a2f00003b0000200241046b2102200d42ffc1d72f562100200e210d20000d000b0b200ea7220041e3004b0440200241026b2202200341196a6a200ea7220441ffff037141e4006e2200419c7f6c20046a41ffff0371410174418489046a2f00003b00000b02402000410a4f0440200241026b2202200341196a6a2000410174418489046a2f00003b00000c010b200241016b2202200341196a6a200041306a3a00000b200128021c22054101712207412720026b22066a2100410021042005410471044041a48f04210441a48f0441a48f04102b20006a21000b412b418080c40020071b2107200341196a20026a21080240200128020045044041012102200128021422002001280218220120072004102e0d01200020082006200128020c11000021020c010b2000200128020422094f044041012102200128021422002001280218220120072004102e0d01200020082006200128020c11000021020c010b200541087104402001280210210b2001413036021020012d0020210c41012102200141013a0020200128021422052001280218220a20072004102e0d01200341106a2001200920006b4101102f20032802102200418080c400460d0120032802142104200520082006200a28020c1100000d01200020042005200a10300d012001200c3a00202001200b360210410021020c010b41012102200341086a2001200920006b4101102f20032802082205418080c400460d00200328020c2109200128021422002001280218220120072004102e0d00200020082006200128020c1100000d002005200920002001103021020b200341406b240020020b1b00200128021441d483044105200141186a28020028020c1100000b0e0020002802001a03400c000b000baf0201017f230041406a220124002001200036020c2001411c6a420137020020014102360214200141f48f043602102001410436022c2001200141286a36021820012001410c6a3602282001410036023820014201370230200141306a200141106a102145044020012802302100200128023821010240418493042d0000450440418593042d00004101710d010b20002001100341094704404184930441013a00000b4185930441013a00000b000b230041406a220024002000413336020c200041c48604360208200041c4830436021420002001413f6a360210200041246a42023702002000413c6a41063602002000410236021c200041f48804360218200041023602342000200041306a3602202000200041106a3602382000200041086a360230200041186a41e487041010000b210020004283ddaa8bf8ede3ea20370308200042ec80a48aff99c486ab7f3703000ba10301067f230041106b220224000240200120006b220141104f04402000200041036a417c71220520006b2200102c2005200120006b2200417c716a2000410371102c6a21042000410276210303402003450d0220022005200341c0012003200341c0014f1b41b88c04102d200228020c21032002280208210520022002280200200228020422002000417c7141948e04102d024020022802042200450440410021010c010b2002280200220620004102746a21074100210103404100210003402001200020066a2802002201417f734107762001410676724181828408716a2101200041046a22004110470d000b200641106a22062007470d000b0b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a2104200228020c2201450d000b2002280208210020014102742103410021010340200120002802002201417f734107762001410676724181828408716a2101200041046a2100200341046b22030d000b200141087641ff81fc0771200141ff81fc07716a418180046c41107620046a21040c010b20002001102c21040b200241106a240020040b2c01017f200104400340200220002c000041bf7f4a6a2102200041016a2100200141016b22010d000b0b20020b3d002002200349044041a48f04412320041031000b20002003360204200020013602002000410c6a200220036b3602002000200120034102746a3602080b39000240027f2002418080c40047044041012000200220012802101101000d011a0b20030d0141000b0f0b200020034100200128020c1100000b9c0101027f024002400240024020012d0020220441016b0e03010200030b200341ff01710d00410021040c020b20022104410021020c010b20024101762104200241016a41017621020b200441016a2104200141186a2802002105200128021021032001280214210102400340200441016b2204450d01200120032005280210110100450d000b418080c40021030b20002002360204200020033602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b4601017f230041206b220324002003410c6a420037020020034101360204200341a48f043602082003200136021c200320003602182003200341186a360200200320021010000b7b002001200346044020002002200110061a0f0b230041306b220024002000200336020420002001360200200041146a42023702002000412c6a41033602002000410336020c200041888d04360208200041033602242000200041206a360210200020003602282000200041046a360220200041086a20041010000bf60101067f2000027f418080c400200128020022022001280204460d001a2001200241016a2205360200024020022d0000220341187441187541004e0d002001200241026a220536020020022d0001413f7121042003411f712106200341df014d0440200641067420047221030c010b2001200241036a220536020020022d0002413f712004410674722104200341f00149044020042006410c747221030c010b2001200241046a2205360200418080c4002006411274418080f0007120022d0003413f71200441067472722203418080c400460d011a0b200120012802082207200520026b6a36020820030b360204200020073602000bb90301067f230041306b22022400200028020421042000280200210302400240200128020022062001280208220072044002402000450d002001410c6a28020021002002410036022c200220033602242002200320046a360228200041016a21000340200041016b22000440200241186a200241246a1033200228021c418080c400470d010c020b0b200241106a200241246a10332002280214418080c400460d000240024020022802102205450d00200420054d04404100210020042005460d010c020b41002100200320056a2c00004140480d010b200321000b2005200420001b21042000200320001b21030b2006450440200128021420032004200141186a28020028020c11000021000c030b200128020422002003200320046a102b22054d0d01200241086a2001200020056b4100102f4101210020022802082205418080c400460d02200228020c21062001280214220720032004200141186a280200220128020c1100000d022005200620072001103021000c020b200128021420032004200141186a28020028020c11000021000c010b200128021420032004200141186a28020028020c11000021000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000bea0201067f230041406a22022400200028020021054101210002402001280214220441a08804410c200141186a280200220628020c22011100000d00200528020c21032002411c6a42033702002002413c6a4103360200200241346a410336020020024103360214200241f8870436021020022003410c6a3602382002200341086a3602302002410236022c200220033602282002200241286a220736021820042006200241106a10220d00200528020822030440200441ac8804410220011100000d01200241386a200341106a290200370300200241306a200341086a29020037030020022003290200370328200420062007102221000c010b200220052802002203200528020428020c11020041002100200229030042c1f7f9e8cc93b2d14185200241086a29030042e4dec78590d085de7d858450450d0041012100200441ac8804410220011100000d00200420032802002003280204200111000021000b200241406b240020000b1300200045044041c78f04412b20011031000b0b0bfc120100418080040bf3122f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f70616c6c65742d636f6e7472616374732d756170692d6e6578742d362e302e312f7372632f686f73742e7273000000000100720000002d000000170000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e72730000840001006a0000001a01000032000000656e636f756e746572656420756e6578706563746564206572726f72000101001c000000840001006a000000e3000000170000002f55736572732f70706f6c6f637a656b2f6769742f696e6b2d6578616d706c65732f666c69707065722f6c69622e72733401010030000000060000000500000073746f7261676520656e7472792077617320656d707479007401010017000000636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e747279009401010027000000070000000000000001000000080000004572726f72000000090000000c000000040000000a0000000b0000000c0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72736361706163697479206f766572666c6f7700006502010011000000f40101007100000021020000050000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f616c6c6f632e72736d656d6f727920616c6c6f636174696f6e206f6620206279746573206661696c6564000000ff02010015000000140301000d000000900201006f000000a20100000d0000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e7273770301006d0000006402000020000000293a0000a407010000000000f503010001000000f5030100010000000700000000000000010000000d00000070616e69636b6564206174203a0a696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e646578206973202e040100200000004e040100120000003a200000a40701000000000070040100020000003030303130323033303430353036303730383039313031313132313331343135313631373138313932303231323232333234323532363237323832393330333133323333333433353336333733383339343034313432343334343435343634373438343935303531353235333534353535363537353835393630363136323633363436353636363736383639373037313732373337343735373637373738373938303831383238333834383538363837383838393930393139323933393439353936393739383939206f7574206f662072616e676520666f7220736c696365206f66206c656e6774682072616e676520656e6420696e6465782000006e050100100000004c05010022000000736c69636520696e64657820737461727473206174202062757420656e647320617420009005010016000000a60501000d0000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e727300c405010073000000c405000025000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e677468202848060100150000005d0601002b000000f4030100010000002f55736572732f70706f6c6f637a656b2f2e7275737475702f746f6f6c636861696e732f737461626c652d616172636836342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f636f756e742e72730000a0060100720000004f00000032000000a407010000000000756e61626c6520746f206465636f64652073656c6563746f72656e636f756e746572656420756e6b6e6f776e2073656c6563746f72756e61626c6520746f206465636f646520696e707574636f756c64206e6f74207265616420696e7075747061696420616e20756e70617961626c65206d657373616765617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e282963616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c75650a00a407010000000000f2070100010000002f55736572732f70706f6c6f637a656b2f2e636172676f2f6769742f636865636b6f7574732f696e6b2d316164643531336564613866356138392f616537336430622f6372617465732f656e762f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e727300040801006b0000005c0000003b000000040801006b0000005c00000014000000040801006b0000005d0000000e000000040801006b0000005e00000034000000040801006b0000006800000009000000040801006b00000090000000210000002f55736572732f70706f6c6f637a656b2f2e636172676f2f72656769737472792f7372632f696e6465782e6372617465732e696f2d366631376432326262613135303031662f7061726974792d7363616c652d636f6465632d332e362e392f7372632f636f6465632e727300d00801006b000000770000000e000000190000001c0000001600000014000000190000002c0701004507010061070100770701008b0701","build_info":{"build_mode":"Debug","cargo_contract_version":"4.0.0-rc.2","rust_toolchain":"stable-aarch64-apple-darwin","wasm_opt_settings":{"keep_debug_symbols":false,"optimization_passes":"Z"}}},"contract":{"name":"flipper","version":"5.0.0-rc.1","authors":["Parity Technologies "]},"image":null,"spec":{"constructors":[{"args":[{"label":"init_value","type":{"displayName":["bool"],"type":0}}],"default":false,"docs":["Creates a new flipper smart contract initialized with the given value."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":2},"selector":"0x9bae9d5e"},{"args":[],"default":false,"docs":["Creates a new flipper smart contract initialized to `false`."],"label":"new_default","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":2},"selector":"0x61ef7e3e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":6},"balance":{"displayName":["Balance"],"type":9},"blockNumber":{"displayName":["BlockNumber"],"type":12},"chainExtension":{"displayName":["ChainExtension"],"type":13},"hash":{"displayName":["Hash"],"type":10},"maxEventTopics":4,"staticBufferSize":16384,"timestamp":{"displayName":["Timestamp"],"type":11}},"events":[],"lang_error":{"displayName":["ink","LangError"],"type":4},"messages":[{"args":[],"default":false,"docs":[" Flips the current value of the Flipper's boolean."],"label":"flip","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":2},"selector":"0x633aa551"},{"args":[],"default":false,"docs":[" Returns the current value of the Flipper's boolean."],"label":"get","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":5},"selector":"0x2f865bd9"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"value"}],"name":"Flipper"}},"root_key":"0x00000000","ty":1}},"types":[{"id":0,"type":{"def":{"primitive":"bool"}}},{"id":1,"type":{"def":{"composite":{"fields":[{"name":"value","type":0,"typeName":",>>::Type"}]}},"path":["flipper","flipper","Flipper"]}},{"id":2,"type":{"def":{"variant":{"variants":[{"fields":[{"type":3}],"index":0,"name":"Ok"},{"fields":[{"type":4}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":3},{"name":"E","type":4}],"path":["Result"]}},{"id":3,"type":{"def":{"tuple":[]}}},{"id":4,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":5,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":4}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":4}],"path":["Result"]}},{"id":6,"type":{"def":{"composite":{"fields":[{"type":7,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":7,"type":{"def":{"array":{"len":32,"type":8}}}},{"id":8,"type":{"def":{"primitive":"u8"}}},{"id":9,"type":{"def":{"primitive":"u128"}}},{"id":10,"type":{"def":{"composite":{"fields":[{"type":7,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":11,"type":{"def":{"primitive":"u64"}}},{"id":12,"type":{"def":{"primitive":"u32"}}},{"id":13,"type":{"def":{"variant":{}},"path":["ink_env","types","NoChainExtension"]}}],"version":5} diff --git a/packages/api-contract/src/test/contracts/ink/v5/flipper.json b/packages/api-contract/src/test/contracts/ink/v5/flipper.json new file mode 100644 index 0000000..9a3ce44 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/flipper.json @@ -0,0 +1,420 @@ +{ + "source": { + "hash": "0xaf1c6d2ea289d7d4f8753db2d658782f4d066544f3ee34b3d54272075ad0de99", + "language": "ink! 5.0.0-rc.1", + "compiler": "rustc 1.75.0", + "build_info": { + "build_mode": "Debug", + "cargo_contract_version": "4.0.0-rc.2", + "rust_toolchain": "stable-aarch64-apple-darwin", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "flipper", + "version": "5.0.0-rc.1", + "authors": [ + "Parity Technologies " + ] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "init_value", + "type": { + "displayName": [ + "bool" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new flipper smart contract initialized with the given value." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 2 + }, + "selector": "0x9bae9d5e" + }, + { + "args": [], + "default": false, + "docs": [ + "Creates a new flipper smart contract initialized to `false`." + ], + "label": "new_default", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 2 + }, + "selector": "0x61ef7e3e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 6 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 9 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 12 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 13 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 10 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 11 + } + }, + "events": [], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 4 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Flips the current value of the Flipper's boolean." + ], + "label": "flip", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 2 + }, + "selector": "0x633aa551" + }, + { + "args": [], + "default": false, + "docs": [ + " Returns the current value of the Flipper's boolean." + ], + "label": "get", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 5 + }, + "selector": "0x2f865bd9" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "value" + } + ], + "name": "Flipper" + } + }, + "root_key": "0x00000000", + "ty": 1 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 1, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 0, + "typeName": ",>>::Type" + } + ] + } + }, + "path": [ + "flipper", + "flipper", + "Flipper" + ] + } + }, + { + "id": 2, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 4 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 3, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 4, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 5, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 4 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 6, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 7, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 7, + "type": { + "def": { + "array": { + "len": 32, + "type": 8 + } + } + } + }, + { + "id": 8, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 9, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 10, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 7, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 11, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 12, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 13, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_env", + "types", + "NoChainExtension" + ] + } + } + ], + "version": 5 +} diff --git a/packages/api-contract/src/test/contracts/ink/v5/flipper.wasm b/packages/api-contract/src/test/contracts/ink/v5/flipper.wasm new file mode 100644 index 0000000..c359b6d Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v5/flipper.wasm differ diff --git a/packages/api-contract/src/test/contracts/ink/v5/index.ts b/packages/api-contract/src/test/contracts/ink/v5/index.ts new file mode 100644 index 0000000..6ca2b2d --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v5/index.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; +export { default as erc20AnonymousTransferMetadata } from './erc20_anonymous_transfer.json' assert { type: 'json' }; +export { default as flipperContract } from './flipper.contract.json' assert { type: 'json' }; +export { default as flipperMetadata } from './flipper.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/ink/v6/erc20.contract.json b/packages/api-contract/src/test/contracts/ink/v6/erc20.contract.json new file mode 100644 index 0000000..70b01a2 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v6/erc20.contract.json @@ -0,0 +1 @@ +{"source":{"hash":"0x15fa048bd28a4649ced787f88707e271f48ff04a966f525b28877c08c60ea014","language":"ink! 6.0.0-alpha","compiler":"rustc 1.86.0","contract_binary":"0x50564d0000e52400000000000001078098d01440a000028098c8000000f2000000e8000000ec000000ca000000f6000000b721a0ec63616c6ce7dc2326011ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e8301e4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b00000d0000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b00000004808308000000000e00000014000000210000002c0000003b000000460000005100000063616c6c5f646174615f636f707963616c6c65726465706f7369745f6576656e746765745f73746f72616765686173685f626c616b65325f3235367365616c5f72657475726e7365745f73746f7261676576616c75655f7472616e736665727265640511028da40463616c6c975d066465706c6f7906a397809b029e8ad000f50006014e0173018401cb01e20119021e0232024b02800285029802b10221032d0365038b0319042c0464049304d60403050d053b05810592059c05ac05b605e805f205220653065e066906bd066007690777072f085c081b093909620987099809e909fd09160a2e0a880adc0afc0a470b650b9a0bf60b160c4c0c980ca30cb90cc60cd20c470d590d6d0d8d0dbb0dde0d710e890e9b0eaa0ebb0ecc0ef70e0f0f210f300f410f520f840fa611f9110a121c122b123c124c12661276129012b812e61248136f138713f6130714181429144e145a14681493149f14d1140c151a1528153515611564157415d015dc150a1611162916bd16cb16e116fb160b1755177317b717d117e117ef17cc18e418ee18121949196b198d19a819121a221a2c1af31a1c1b3d1b561bd31bec1b8b1cb31c9f1d9511e87b10107b15087b16531910688d7a84a207c8270b648c6475aeb7107cca785a95550195cc01acb5f6c82804c929028423f8844807c83b0a51085c9748038480388446f882658d88848c38956808aeab1b8286d00505cfc609d459097bb995bb089588086465acabebc834088429072805647a01c8a909ae9a107c8b78ab95aa01958801ac9af6821010821508821695111832006448aeabd382897bb995bb08958808acabf628c39511c87b10307b15287b16207b1833081400137b180849111000404911189518085010025504821518821710ac5740821608c85608c957077b18087b171049111895180882175010047e1a821718821810ac781b821a08501206441d0a068210308215288216209511383200009511b07b10487b15407b16387b1933091800017b19087b17107b181833071400137b17204911280040491130951708951820501008a103821530821728ac5740821620c85608c957077b18207b1728491130951820821750100a001a821730821828ac781b821a2050120cc61c0a068210488215408216389511503200009511a07b10587b15507b16486478827708828610ac6755aa67528285c967077b1708c8650546059517103309017b18645850100e06017b15308217087b17384911409517109518305010103207821740c86707ac671682187b87108210588215508216489511603200009511a07b10587b15507b1648827908827610ac6954501212431c5010140b19821920821718ac97418218109517105010169f0082177b17308217087b1738491140951710951830501018c906821740c86707ac67147b57108210588215508216489511603200009511a07b10587b15507b1648827908827610ac695350121adc1b50101ca418821920821718ac974082181095171050101e3882177b17308217087b17384911409517109518305010206306821740c86707ac67147b57108210588215508216489511603200009511b07b10487b15406475491118491110491108490153192138491138491130491128491120979920989a20951920648764a80a04821720821828821930821a387b177b18087b19107b1a1828096417501022e4fc64183309206457501024d8fc82104882154095115032009511f07b10087b15828a086475330920330701ac9a1d828995aae09597207b877b8a0895570864985010265c193307017b57821008821595111032009511a07b10587b15507b164864866475951720501028b1821720510708330701283c8217407b1718821738821830821928826a087b17107b18087b19330701520a1d3307821818821910821a08821b7b58207b59187b5a107b5b08017b578210588215508216489511603200951170ff7b1088007b1580007b1678828908330a146476aca9a20082879599ec957a147b8a7b89087c79117c7a107c7b127c7c1350122a621a7a19487c79017c7a7c7b027c7c0350122c4f1a7c7a057c7b047c7c067c750797aa08d4ba0a97cc10975518d45c0cd4ca0a97aa20d4a9097b19387c79097c7a087c7b0a7c7c0b50122e171a7c7a0d7c7b0c7c7c0e7c770f97aa08d4ba0a97cc10977718d4c707d4a707977720d497077b1740951750501030aafe82175051070a3307017b67283b8217708218688219607b17307b18287b1920821758821838821940811a487b17187b187b19087a1a1095670864183309385010322ffb49060182108800821580008216789511900032009511e87b10107b15087b16647582776486330034817728041682570864685010361c16825710646882101082150882169511182807169511e87b10107b15087b16648564763300383307e7dc232628cc1564676458821010821508821695111828da15951170ff7b1088007b1580007b1678647595763533071400137b17604911680040491170330925000195174895186050103a2d047c572051071095582195174850103cd9fc280a95174850103efefb7c67510710955836951748501040bffc280a951748501042e4fb7b16308217508216587b1728ac67d7008218487b18387b15209557207b1718c868077b170898650595176064585010445a0295176064585010468c028215708218687b16108467e09a767b15409755057b18c88505018218385106249587207b17383309206457501048e3f98217409577017b174095662095552028db821728821810c987078218087b18607b176849117095186082171850104a8f0495186082173050104c840495186082172050104e0a15821770821868ac782a821960821840978820988820977720987a2082170a028210880082158000821678951190003200009511c87b10307b15287b1620330514001333071400130a076417641664585010500416330705019577ff51071082689566085108f53307042806330705018210308215288216209511383200958a20957918330ce00164c3510c1b829b82a7f895a2f89599f8953c08642aaa7bebd87b092805648201d382078e77db390784770132009511d8827848018279087b1808827810827a187b19109517087b18187b1a209511d8827818827910827a0882777b18207b19187b1a107b17084801641733005c28f00264576468501054bc0382103082152882162095113832007c67257c68247c69267c6a27977708d4870797991097aa18d4a909d497077a17407c671d7c681c7c691e7c6a1f977708d4870797991097aa18d4a909d497077c68217c69207c6a227c6b23978808d4980897aa1097bb18d4ba0ad4a808978820d487077b17387c67157c68147c69167c6a17977708d4870797991097aa18d4a909d497077c68197c69187c6a1a7c6b1b978808d4980897aa1097bb18d4ba0ad4a808978820d487077b173095193064579518085010589a0382105882155082164895116032009511e87b10107b15087b166486978805570812647551060e648750105af11152070800330701017b567b570849151082101082150882169511183200827910827ac99a0aac8a053200648b330a20649864b9281a119511f87b158293829b08829a108284828c08ae3417d8bc0585b2ffc8c202d3cb0b88bc01c85c0c2809c9bc02d8bc0c01828510829b18c9a509d8a50a510c0dd8c905c9c909c85a0a01828518c93408c9b50c510a11d8b50bd8ac05c9ac0cd45b0a2806d8b50a017b787b72087b79107b7c18520a0a8215951108320000330920647a648764a828b4110033005e9511f87b101f03140013010133081400133307013309020a0500009511c87b10307b15287b16207b1733071400137b170849111000404911189518083307501060a711821518821710ac5740821608c85608c957077b18087b17104911189518088217501062ec11821718821810ac781b821a08501264b2140a068210308215288216209511383200009511987b10607b15587b16506486647551096e7b1510826708826510ac5787008268c95707c858087b187b18187b17087b172049112895181864975010662bff821928821720ac975d821818951718501068d4f882177b17388217087b174049114895171895183850106afefe821748c85707ac57307b67108215102809646750106c6cf782671082680882697b57107b58087b598210608215588216509511683200009511d87b10207b1518817833091400137b19330500407b150851080f1f031400130101330902281f9577081e0314001349111001641850106eeb10821910835501ac590400330814001333070a0500848bff003309021e03140013ab9b0a330833090128091e031500130101330a140013c89a0a78a89598013300709511f87b1097882098892033081400130a0500009511e87b10107b15087b167c7964855109229576013308016457501072bc0f64676458821010821508821695111828191064573308821010821508821695111828960f9511a87b10507b15486489647533071400137b171049111800404911209518106497501074def9821820821918ac8976821710c8870ac989097b1a7b19086419501076a41097772098772051170d19330803ab875133074915184915104915084905283682178218087b17387b1840951710951838501078dff7821710520726821730821828821920821a187b57187b58107b59087b5a018210508215489511583200009511907b10687b1560647533071800017b177b18087b191033071400137b17284911300040491138641795182850107af9f8821838821930ac8979821728c8870ac989097b1a187b192095191850107cf30f97772098772051170d19330803ab87523307491518491510491508490528378217188218207b17507b185895172895185050107e2df7821728520726821748821840821938821a307b57187b58107b59087b5a01821068821560951170320000951148ff7b10b0007b15a8007b16a00064957b180864769517106468502080008efe95171064585020820049fa510708330728e900951750951810645950208400dffb9518507b16646750208600eaf39517308218085020880054fe8219308257821a38825808c87906c8a808d8a80bae960d958801888901c89b0b01821a40825910c8a909d8a90a821708510b0fc89b0bd89b09c89a0a64b901821c48825b18c8cb0bd8cb0c510a10520c8300c8ba0ad8ba0c64ab01520c767b16507b18587b19607b1b68951850647650208a0069f346117001951771330914821850208c00adf2462185000195178600330914646850208e0099f28257825808825910825a187b17507b18587b19607b1a6895175050209000c6f7330702018210b0008215a8008216a0009511b8003200009511d0fd951700027b70287b75207b761850209200e5f88477ff0052170575073306d43f33051400133308004033071400133309330094000a01646c955504380a1400137b1500029567287b17080297a93098993897a82898883898a71884aaff00330b0b3305140013aaba0a03511a0f1d0295ab98510b3595ab96510b380195ab7cff510baa0095aa25ff520aecfa95999d5209e5fa95888b5208defa957758ff5207d6fa3306280404521912cdfa95889a5208c5fa957760ff5207bdfa95177801951800025020960075f5821778015207a7fa95188001951736330938502098007df195168600330938646795183650209a006bf19517d600330938646850209c005cf1951718019518d00033092750209e004bf19518a700951778013309175020a0003af133060428810395995fff520946fa9588a352083ffa95775fff520737fa95177801951800025020a200eff482177801520721fa951880019517363309385020a400f7f09516860033093864679518365020a600e5f09517d60033093864685020a800d6f0951718019518d0003309275020aa00c5f09518a700951778013309175020ac00b4f033060328fb025209c4f9521816c0f99577a25207b8f9340618001395c7147b17080295172b019558183309145020ae0082f07c57177c58167c591578172a01978808d49808791828017c57067c58057c59077c5a08977708d4870797991097aa18d4a909d497077c580a7c59097c5a0b7c5b0c978808d4980897aa1097bb18d4ba0ad4a808978820d487077b1718017c570e7c580d7c590f7c5a10977708d4870797991097aa18d4a909d497077c58127c59117c5a137c5b14978808d49808646997aa1097bb18d4ba0ad4a808978820d487077b17200133060228240295998b5209eaf89588a65208e3f89577aa5207dcf834072b001334082a0013340929001378172a01978808d498087918280134071a0013340819001334091b0013340a1c0013977708d4870797991097aa18d4a909d4970734081e001334091d0013340a1f0013340b200013978808d4980897aa1097bb18d4ba0ad4a808978820d487077b171801340722001334082100133409230013340a240013977708d4870797991097aa183408260013d4a909d497073409250013978808340a270013340b280013d49808340918001397aa1097bb18d4ba0ad4a808978820d487077b172001330601283b019599c7520901f89588915208faf7521718f6f7390728001338082400137a175001380720001397882038091c0013380a180013d487077b174801979920d4a9097b19400195572c380830001338092c00137b1700027b1c0802978820d49808380738001338093400137b18e00139083c0013977720d497077b17e8017a18f00195171801951800025020b00098f182171801510706286ff78217380182183001821928017b1710017b1808017b190001821720018218400182194801811a50017b17f8007b18d0007b19d8007a1ae0009517e4009518e0013309145020b2000dee95177e019518d0003309485020b400fced951636330948646795187e015020b600eaed9517860033094864685020b800dbed95171801951880003309275020ba00caed951857951778013309275020bc00baed33060501781630781931951732951818013309275020be00a0ed951759951878013309275020c00090ed7b157801492180010040492188019518780133075020c2007a088218880182198001ac899c0282177801c8870ac989097b1ae0017b19e8019519e0015020c4005209977720987720511703760252170d71028217e0018218e8017b17d0007b18d800951778019518d0005020c60058f08217780152074a02821798018218900182198801821a8001821bd8007b1798007b1890007b1988007b1a8000520b2202821798007b17580182179000821888009766023309000001c86909821a8000819b7b1750017b1848019519317b1a4001320b821758018218500182194801821a40017b1790017b1888017b1980017b1a78019517780128b1f3951838951740017b17d0009517d8003309385020cc007fec8217688218608219587b1798007b1890008217507b198800330514001333061400137b17800033071400130a0139072400133808180013951b00027ab71038071400139788203809200013380a1c0013d487077bb7979920d4a9097bb908951950951700029518d8005020ce0027ed9517a000951800023309145020d000ffeb9517b4003309149518d8005020d200eeeb95177801951880003309485020d400ddeb951598017b16e0014921e80100404921f0013309460001951760019518e0015020d60061f59517600164585020d800abed951760019518ac015020da009ded8217680182167001ac67c4007b1718821760017b1720c867077b17089865059517e00164585020dc00b0f39517e00164585020de00e0f38218208215f0018217e8017b15289755057b17c875057b16108467e09a765106299587207b172033092064575020e00035eb8217289577017b17289555209566208218205206dd821718821810c987078218087b18e0017b17e8014921f0019518e001951798015020e2001e069518e0019517ac015020e4001006951778019518e0015020e6004c068217f0018218e801ae78e3010095177801951840013300ea009511a07b10587b15507b1648649664757b18951708330928646833005628a2ea28a900951838951780013309385020ee0092ea95174001330514001333061400137b17780133071400130a01390724001338081800137a17900038071400139788203809200013380a1c0013d487077b178000979920d4a9097b1988009519980195178000951880015020f000acf68478ff00511802570128340195177801951840013300f4009511c87b10307b15287b1620649a64757b18951608330914646764a833005228f9e995177801280ff1951838951740017b177801951780013309485020f800dde981175c8018587a17d801801754978820801950801a4cd487077b17d001979920d4a9098217608218687b19c8018219707b17e0017b18e8018217787b19f00133061400137b17f80133071400130a0139072400133808180013951b00027ab7103807140013951580019788203809200013380a1c0013d487077bb7979920d4a9097bb9089517d0009519000264585020fa000df59517d0009518e0015020fc0021f033080152073f9518c8019519e00164575020fe009bf58478ff0052180228951780009518d0009519e001502000019df1951800029519800064575020020112ea2820330701288cf38219e001821828978820988820977720987a2082170a0201821758018218500182194801821a40017b1790017b1888017b1980017b1a78019517780150200401ebf133080233072842f3951130ff7b10c8007b15c0007b16b800502006012def8477ff00521705a4013306140013330514001333080040330714001333090a0139071400139555047b1550491158fc3f52479bae9d5e79f19517689518505020080187eb821768510706285ff195187095152e330920645750200a0135e89516063309206467645850200c0125e895176e330920646850200e0117e87e1788007e1886007e198a007e1a8c00977710d4870797992097aa30d4a909d497077b17407e1780007e187e7e1982007e1a8400977710d4870797992097aa30d4a909d497077b17387e17787e18767e197a7e1a7c977710d4870797992097aa30d4a909d497077b17307e17707e186e7e19727e1a74977710d4870797992097aa30d4a909d4970733051400137b172833071400130a01390724001338081800137a176038071400139788203809200013380a1c0013d487077b1750979920d4a9097b195833072000017b176895167033091464676458502010013ae77b1549110800404911103307e7dc2326641850201201260264186467502014013c02821610821708ac67278215c86508c967077b187b17084911109517286418502016016202821710821808ae780400821a976920989920977720987b20330764580a064621880046219d000195179e0095185033091450201801bde6821728821830821938821a407b17687b18707b19787b1a800095176850201a01e8eb821740821838821930821a287b1780007b18787b19707b1a6895176850201c01b3ef33001e019511f87b101f03140013330814001333090233070a0500009511c07b10387b15307b1628c88909ac898f006475827897870195abff330c04330608dbbc06e46909e47909d69a0752076fca9a075707697b1910510812caa808825a08491120019519182806951920017b988218205108288218185108227b187b1a0850202001455107356476821808821950202201e4e5821710280f502024012164768217105106167b56087b57821038821530821628951140320000510705280733070132003309000003340a0000036478510a0a3a07080003281f3307120003330a013b0a0000033e0708000333091000033b0a10000301c87808ac78233409100003330a120013939aac8a1b33090800033e08080003d8780894873200d878089487320000827910827a08aea912827ac89a0a78a89599017b79103200009511e87b10107b15087b166475827710c89706ac7624825a08ac6a1e825ac8a7075020260113e57b561082101082150882169511183200009511f07b1008648a7a170495180433090464a750202801b582100895111032009511d07b10287b15207b16186485647633071450202a0111ff5107304901147b17084911103308146419646750202c010f0182180882191064578210288215208216189511302862ff009511b07b10487b15407b163864854911184911104911084901641833090401827a788a98ab38788b0798ab30788b0698ab28788b0598ab20788b0498ab18788b0398ab10788b0298aa08788a019588089577089599ff5209c933072033062050202e017bfe5107307b16207b17284911306417330820c881095020300178821828821930645782104882154082163895115028ccfe009511e07b10187b15107b16086495829608647c829a7a1604978820988920951b04330764c80a0301801904ac962f837a33080c7b5908ae8a1484770f9777023308680001c8870781780164878210188215108216089511203200009511d87b10207b15187b161064958296108299c9690a64896478ac9a297b1908825708c86707502032017be3821708c876067b56108210208215188216109511283200330a0164577b186468649650203401fcfc8218646982561028c29511c07c89197c8a187c8b1a7c8c1b979908d4a90997bb1097cc18d4cb0bd49b027c8a1d7c8b1c7c8c1e7c891f97aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19187c89117c8a107c8b127c8c13979908d4a90997bb1097cc18d4cb0bd49b027c8a157c8b147c8c167c891797aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19107c89097c8a087c8b0a7c8c0b979908d4a90997bb1097cc18d4cb0bd49b027c8a0d7c8b0c7c8c0e7c890f97aa08d4ba0a97cc10979918d4c909d4a909979920d429097b19087c89017c8a7c8b027c8c0350223601dd007c8a057c8b047c8c067c880797aa08d4ba0a97cc10978818d4c808d4a808978820d498087b184911204911284911304911386418951220330304017c8b017c8c7c89027c8a0397bb08d4cb0b97991097aa18d4a909d4b9047c8a057c8b047c8c067c890797aa08d4ba0a97cc10979918d4c909d4a909979920d449097b299588089522089533ff5203b4821838821930821a28821b207b78187b79107b7a087b7b9511403200975920989920977720987b20330764683202647564878258c96909c868087b187b18107b19087b19184911209518103202979908d4a90997bb1097cc18d4cb0bd4b9093202498a924a254992244925294949496a52499252a92425492121094992244921494249d224292409094942922449524892509234494a92929454489224242949d2244912429224942449489224699224092149122549129224499aa424459224a992a424154a21494929494949a1a5942495485292244949494a9225491191a4282949129292902449922449929024499224494852499224494a5242231225a94a4921252549aa04a9a4242252424242129224945092504292449224490a2924494999242924494a9224494842129224495211892649085521939294495292a52429a9292995244992242549251592a4244992244992244992244992244992244992244992a48424294925a5905992945252a9a4929224494a2649924c9224294b92d25499140849274921212924499224852409254993a492244a4a92149224a124494292a4425252923449a1480229210a49861a092905434a52123a4995a45049492525492a24248524494a2189a424559224244992a4499aa45012125242922449421249492a4992902449922669444429052948490a524112a42449924c92244993249134499282480a42a4a02449922023221a91248810214271099148924442842411119148449490888808222209222588144424884890442422228288488248092205110922122411122111499024924892244992244992249224499224494a922492442211428824420821499210424892248910424892908484909024492489440821424248249110229210222411114124111111111111111109221224451029884890489049224122410411051111494404490811111141444444444444444442a288441111111191444482241189102214422424849424114144824804110922820811411444041191489228888244242529490a922449924444441011440411312292a44a4a924810214428840809219144440411121149522595441211099248924492442212214221444224849424a2202248220a2222228828288924498d8888888820252222881042840e4908488224490a920a9282888824491289489224499224499224499290500809092149129254504850504192929214245992541122099224492448924892205208a993245149922449922452962425a414a4509292a4298550422121843009a184904a4d524a9aa492242548529a94a490942495204952415292649294a4b292244992244992244892929094249924a592a49a9424096949d22429a59224489224a52aa89424499224499224499224499224499224499224499224499224494a822449922429494aa62449922449922429499224492949aa2a29495292240100","build_info":{"build_mode":"Release","cargo_contract_version":"6.0.0-alpha.1","rust_toolchain":"stable-aarch64-apple-darwin"}},"contract":{"name":"erc20","version":"6.0.0-alpha","authors":["Use Ink "]},"image":null,"spec":{"constructors":[{"args":[{"label":"total_supply","type":{"displayName":["U256"],"type":0}}],"default":false,"docs":["Creates a new ERC-20 contract with the specified initial supply."],"label":"new","payable":false,"returnType":{"displayName":["ink_primitives","ConstructorResult"],"type":16},"selector":"0x9bae9d5e"}],"docs":[],"environment":{"accountId":{"displayName":["AccountId"],"type":23},"balance":{"displayName":["Balance"],"type":25},"blockNumber":{"displayName":["BlockNumber"],"type":27},"chainExtension":{"displayName":["ChainExtension"],"type":28},"hash":{"displayName":["Hash"],"type":26},"maxEventTopics":4,"staticBufferSize":16384,"timestamp":{"displayName":["Timestamp"],"type":2}},"events":[{"args":[{"docs":[],"indexed":true,"label":"from","type":{"displayName":["Option"],"type":22}},{"docs":[],"indexed":true,"label":"to","type":{"displayName":["Option"],"type":22}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["U256"],"type":0}}],"docs":["Event emitted when a token transfer occurs."],"label":"Transfer","module_path":"erc20::erc20","signature_topic":"0x1ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e83"},{"args":[{"docs":[],"indexed":true,"label":"owner","type":{"displayName":["H160"],"type":4}},{"docs":[],"indexed":true,"label":"spender","type":{"displayName":["H160"],"type":4}},{"docs":[],"indexed":false,"label":"value","type":{"displayName":["U256"],"type":0}}],"docs":["Event emitted when an approval occurs that `spender` is allowed to withdraw","up to the amount of `value` tokens from `owner`."],"label":"Approval","module_path":"erc20::erc20","signature_topic":"0xe4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b"}],"lang_error":{"displayName":["ink","LangError"],"type":17},"messages":[{"args":[],"default":false,"docs":[" Returns the total token supply."],"label":"total_supply","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0xdb6375a8"},{"args":[{"label":"owner","type":{"displayName":["H160"],"type":4}}],"default":false,"docs":[" Returns the account balance for the specified `owner`.",""," Returns `0` if the account is non-existent."],"label":"balance_of","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0x0f755a56"},{"args":[{"label":"owner","type":{"displayName":["H160"],"type":4}},{"label":"spender","type":{"displayName":["H160"],"type":4}}],"default":false,"docs":[" Returns the amount which `spender` is still allowed to withdraw from `owner`.",""," Returns `0` if no allowance has been set."],"label":"allowance","mutates":false,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":18},"selector":"0x6a00165e"},{"args":[{"label":"to","type":{"displayName":["H160"],"type":4}},{"label":"value","type":{"displayName":["U256"],"type":0}}],"default":false,"docs":[" Transfers `value` amount of tokens from the caller's account to account `to`.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the caller's account balance."],"label":"transfer","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x84a15da1"},{"args":[{"label":"spender","type":{"displayName":["H160"],"type":4}},{"label":"value","type":{"displayName":["U256"],"type":0}}],"default":false,"docs":[" Allows `spender` to withdraw from the caller's account multiple times, up to"," the `value` amount.",""," If this function is called again it overwrites the current allowance with"," `value`.",""," An `Approval` event is emitted."],"label":"approve","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x681266a0"},{"args":[{"label":"from","type":{"displayName":["H160"],"type":4}},{"label":"to","type":{"displayName":["H160"],"type":4}},{"label":"value","type":{"displayName":["U256"],"type":0}}],"default":false,"docs":[" Transfers `value` tokens on the behalf of `from` to the account `to`.",""," This can be used to allow a contract to transfer tokens on ones behalf and/or"," to charge fees in sub-currencies, for example.",""," On success a `Transfer` event is emitted.",""," # Errors",""," Returns `InsufficientAllowance` error if there are not enough tokens allowed"," for the caller to withdraw from `from`.",""," Returns `InsufficientBalance` error if there are not enough tokens on"," the account balance of `from`."],"label":"transfer_from","mutates":true,"payable":false,"returnType":{"displayName":["ink","MessageResult"],"type":19},"selector":"0x0b396f18"}]},"storage":{"root":{"layout":{"struct":{"fields":[{"layout":{"leaf":{"key":"0x00000000","ty":0}},"name":"total_supply"},{"layout":{"root":{"layout":{"leaf":{"key":"0xe7dc2326","ty":0}},"root_key":"0xe7dc2326","ty":3}},"name":"balances"},{"layout":{"root":{"layout":{"leaf":{"key":"0xb721a0ec","ty":0}},"root_key":"0xb721a0ec","ty":11}},"name":"allowances"}],"name":"Erc20"}},"root_key":"0x00000000","ty":15}},"types":[{"id":0,"type":{"def":{"composite":{"fields":[{"type":1,"typeName":"[u64; 4]"}]}},"path":["primitive_types","U256"]}},{"id":1,"type":{"def":{"array":{"len":4,"type":2}}}},{"id":2,"type":{"def":{"primitive":"u64"}}},{"id":3,"type":{"def":{"composite":{}},"params":[{"name":"K","type":4},{"name":"V","type":0},{"name":"KeyType","type":7}],"path":["ink_storage","lazy","mapping","Mapping"]}},{"id":4,"type":{"def":{"composite":{"fields":[{"type":5,"typeName":"[u8; 20]"}]}},"path":["primitive_types","H160"]}},{"id":5,"type":{"def":{"array":{"len":20,"type":6}}}},{"id":6,"type":{"def":{"primitive":"u8"}}},{"id":7,"type":{"def":{"composite":{}},"params":[{"name":"L","type":8},{"name":"R","type":9}],"path":["ink_storage_traits","impls","ResolverKey"]}},{"id":8,"type":{"def":{"composite":{}},"path":["ink_storage_traits","impls","AutoKey"]}},{"id":9,"type":{"def":{"composite":{}},"params":[{"name":"ParentKey","type":10}],"path":["ink_storage_traits","impls","ManualKey"]}},{"id":10,"type":{"def":{"tuple":[]}}},{"id":11,"type":{"def":{"composite":{}},"params":[{"name":"K","type":12},{"name":"V","type":0},{"name":"KeyType","type":13}],"path":["ink_storage","lazy","mapping","Mapping"]}},{"id":12,"type":{"def":{"tuple":[4,4]}}},{"id":13,"type":{"def":{"composite":{}},"params":[{"name":"L","type":8},{"name":"R","type":14}],"path":["ink_storage_traits","impls","ResolverKey"]}},{"id":14,"type":{"def":{"composite":{}},"params":[{"name":"ParentKey","type":10}],"path":["ink_storage_traits","impls","ManualKey"]}},{"id":15,"type":{"def":{"composite":{"fields":[{"name":"total_supply","type":0,"typeName":",>>::Type"},{"name":"balances","type":3,"typeName":" as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<639884519u32, ()>,>>::Type"},{"name":"allowances","type":11,"typeName":" as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<3969917367u32,\n()>,>>::Type"}]}},"path":["erc20","erc20","Erc20"]}},{"id":16,"type":{"def":{"variant":{"variants":[{"fields":[{"type":10}],"index":0,"name":"Ok"},{"fields":[{"type":17}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":10},{"name":"E","type":17}],"path":["Result"]}},{"id":17,"type":{"def":{"variant":{"variants":[{"index":1,"name":"CouldNotReadInput"}]}},"path":["ink_primitives","LangError"]}},{"id":18,"type":{"def":{"variant":{"variants":[{"fields":[{"type":0}],"index":0,"name":"Ok"},{"fields":[{"type":17}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":0},{"name":"E","type":17}],"path":["Result"]}},{"id":19,"type":{"def":{"variant":{"variants":[{"fields":[{"type":20}],"index":0,"name":"Ok"},{"fields":[{"type":17}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":20},{"name":"E","type":17}],"path":["Result"]}},{"id":20,"type":{"def":{"variant":{"variants":[{"fields":[{"type":10}],"index":0,"name":"Ok"},{"fields":[{"type":21}],"index":1,"name":"Err"}]}},"params":[{"name":"T","type":10},{"name":"E","type":21}],"path":["Result"]}},{"id":21,"type":{"def":{"variant":{"variants":[{"index":0,"name":"InsufficientBalance"},{"index":1,"name":"InsufficientAllowance"}]}},"path":["erc20","erc20","Error"]}},{"id":22,"type":{"def":{"variant":{"variants":[{"index":0,"name":"None"},{"fields":[{"type":4}],"index":1,"name":"Some"}]}},"params":[{"name":"T","type":4}],"path":["Option"]}},{"id":23,"type":{"def":{"composite":{"fields":[{"type":24,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","AccountId"]}},{"id":24,"type":{"def":{"array":{"len":32,"type":6}}}},{"id":25,"type":{"def":{"primitive":"u128"}}},{"id":26,"type":{"def":{"composite":{"fields":[{"type":24,"typeName":"[u8; 32]"}]}},"path":["ink_primitives","types","Hash"]}},{"id":27,"type":{"def":{"primitive":"u32"}}},{"id":28,"type":{"def":{"variant":{}},"path":["ink_primitives","types","NoChainExtension"]}}],"version":6} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v6/erc20.json b/packages/api-contract/src/test/contracts/ink/v6/erc20.json new file mode 100644 index 0000000..28fca16 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v6/erc20.json @@ -0,0 +1,1081 @@ +{ + "source": { + "hash": "0x15fa048bd28a4649ced787f88707e271f48ff04a966f525b28877c08c60ea014", + "language": "ink! 6.0.0-alpha", + "compiler": "rustc 1.86.0", + "build_info": { + "build_mode": "Release", + "cargo_contract_version": "6.0.0-alpha.1", + "rust_toolchain": "stable-aarch64-apple-darwin" + } + }, + "contract": { + "name": "erc20", + "version": "6.0.0-alpha", + "authors": [ + "Use Ink " + ] + }, + "image": null, + "spec": { + "constructors": [ + { + "args": [ + { + "label": "total_supply", + "type": { + "displayName": [ + "U256" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + "Creates a new ERC-20 contract with the specified initial supply." + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 16 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "environment": { + "accountId": { + "displayName": [ + "AccountId" + ], + "type": 23 + }, + "balance": { + "displayName": [ + "Balance" + ], + "type": 25 + }, + "blockNumber": { + "displayName": [ + "BlockNumber" + ], + "type": 27 + }, + "chainExtension": { + "displayName": [ + "ChainExtension" + ], + "type": 28 + }, + "hash": { + "displayName": [ + "Hash" + ], + "type": 26 + }, + "maxEventTopics": 4, + "staticBufferSize": 16384, + "timestamp": { + "displayName": [ + "Timestamp" + ], + "type": 2 + } + }, + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 22 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 22 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "U256" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when a token transfer occurs." + ], + "label": "Transfer", + "module_path": "erc20::erc20", + "signature_topic": "0x1ecb48b1e08876a3b5a17f9ce1350cbc5e4f264b3162dbc757be9de4b15f1e83" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "owner", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": true, + "label": "spender", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "docs": [], + "indexed": false, + "label": "value", + "type": { + "displayName": [ + "U256" + ], + "type": 0 + } + } + ], + "docs": [ + "Event emitted when an approval occurs that `spender` is allowed to withdraw", + "up to the amount of `value` tokens from `owner`." + ], + "label": "Approval", + "module_path": "erc20::erc20", + "signature_topic": "0xe4c2a1aef088c9f187a0e3f8016deaf4bdeb7954fb410c32bf8a6a033ecc3b5b" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 17 + }, + "messages": [ + { + "args": [], + "default": false, + "docs": [ + " Returns the total token supply." + ], + "label": "total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 18 + }, + "selector": "0xdb6375a8" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + } + ], + "default": false, + "docs": [ + " Returns the account balance for the specified `owner`.", + "", + " Returns `0` if the account is non-existent." + ], + "label": "balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 18 + }, + "selector": "0x0f755a56" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "label": "spender", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + } + ], + "default": false, + "docs": [ + " Returns the amount which `spender` is still allowed to withdraw from `owner`.", + "", + " Returns `0` if no allowance has been set." + ], + "label": "allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 18 + }, + "selector": "0x6a00165e" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "U256" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` amount of tokens from the caller's account to account `to`.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the caller's account balance." + ], + "label": "transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 19 + }, + "selector": "0x84a15da1" + }, + { + "args": [ + { + "label": "spender", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "U256" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Allows `spender` to withdraw from the caller's account multiple times, up to", + " the `value` amount.", + "", + " If this function is called again it overwrites the current allowance with", + " `value`.", + "", + " An `Approval` event is emitted." + ], + "label": "approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 19 + }, + "selector": "0x681266a0" + }, + { + "args": [ + { + "label": "from", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "label": "to", + "type": { + "displayName": [ + "H160" + ], + "type": 4 + } + }, + { + "label": "value", + "type": { + "displayName": [ + "U256" + ], + "type": 0 + } + } + ], + "default": false, + "docs": [ + " Transfers `value` tokens on the behalf of `from` to the account `to`.", + "", + " This can be used to allow a contract to transfer tokens on ones behalf and/or", + " to charge fees in sub-currencies, for example.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `InsufficientAllowance` error if there are not enough tokens allowed", + " for the caller to withdraw from `from`.", + "", + " Returns `InsufficientBalance` error if there are not enough tokens on", + " the account balance of `from`." + ], + "label": "transfer_from", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 19 + }, + "selector": "0x0b396f18" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 0 + } + }, + "name": "total_supply" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xe7dc2326", + "ty": 0 + } + }, + "root_key": "0xe7dc2326", + "ty": 3 + } + }, + "name": "balances" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0xb721a0ec", + "ty": 0 + } + }, + "root_key": "0xb721a0ec", + "ty": 11 + } + }, + "name": "allowances" + } + ], + "name": "Erc20" + } + }, + "root_key": "0x00000000", + "ty": 15 + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u64; 4]" + } + ] + } + }, + "path": [ + "primitive_types", + "U256" + ] + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 4, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 3, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 7 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 4, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 5, + "typeName": "[u8; 20]" + } + ] + } + }, + "path": [ + "primitive_types", + "H160" + ] + } + }, + { + "id": 5, + "type": { + "def": { + "array": { + "len": 20, + "type": 6 + } + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 7, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 8 + }, + { + "name": "R", + "type": 9 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 8, + "type": { + "def": { + "composite": {} + }, + "path": [ + "ink_storage_traits", + "impls", + "AutoKey" + ] + } + }, + { + "id": 9, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 10 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 11, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "K", + "type": 12 + }, + { + "name": "V", + "type": 0 + }, + { + "name": "KeyType", + "type": 13 + } + ], + "path": [ + "ink_storage", + "lazy", + "mapping", + "Mapping" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "tuple": [ + 4, + 4 + ] + } + } + }, + { + "id": 13, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "L", + "type": 8 + }, + { + "name": "R", + "type": 14 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ResolverKey" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "composite": {} + }, + "params": [ + { + "name": "ParentKey", + "type": 10 + } + ], + "path": [ + "ink_storage_traits", + "impls", + "ManualKey" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "total_supply", + "type": 0, + "typeName": ",>>::Type" + }, + { + "name": "balances", + "type": 3, + "typeName": " as::ink::storage::traits::AutoStorableHint<\n::ink::storage::traits::ManualKey<639884519u32, ()>,>>::Type" + }, + { + "name": "allowances", + "type": 11, + "typeName": " as::ink::storage::traits::\nAutoStorableHint<::ink::storage::traits::ManualKey<3969917367u32,\n()>,>>::Type" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Erc20" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 10 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 17 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 17 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 0 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 17 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 17 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 19, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 20 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 17 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 20 + }, + { + "name": "E", + "type": 17 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 10 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 21 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 21 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InsufficientBalance" + }, + { + "index": 1, + "name": "InsufficientAllowance" + } + ] + } + }, + "path": [ + "erc20", + "erc20", + "Error" + ] + } + }, + { + "id": 22, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 4 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 4 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 23, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 24, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 24, + "type": { + "def": { + "array": { + "len": 32, + "type": 6 + } + } + } + }, + { + "id": 25, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 26, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 24, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "Hash" + ] + } + }, + { + "id": 27, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 28, + "type": { + "def": { + "variant": {} + }, + "path": [ + "ink_primitives", + "types", + "NoChainExtension" + ] + } + } + ], + "version": 6 +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/ink/v6/erc20.polkavm b/packages/api-contract/src/test/contracts/ink/v6/erc20.polkavm new file mode 100644 index 0000000..64886b6 Binary files /dev/null and b/packages/api-contract/src/test/contracts/ink/v6/erc20.polkavm differ diff --git a/packages/api-contract/src/test/contracts/ink/v6/index.ts b/packages/api-contract/src/test/contracts/ink/v6/index.ts new file mode 100644 index 0000000..ac682b8 --- /dev/null +++ b/packages/api-contract/src/test/contracts/ink/v6/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as erc20Contract } from './erc20.contract.json' assert { type: 'json' }; +export { default as erc20Metadata } from './erc20.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/solang/index.ts b/packages/api-contract/src/test/contracts/solang/index.ts new file mode 100644 index 0000000..d2497e5 --- /dev/null +++ b/packages/api-contract/src/test/contracts/solang/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; + +export default createVersionedExport({ v0 }); diff --git a/packages/api-contract/src/test/contracts/solang/v0/index.ts b/packages/api-contract/src/test/contracts/solang/v0/index.ts new file mode 100644 index 0000000..998d239 --- /dev/null +++ b/packages/api-contract/src/test/contracts/solang/v0/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as ints256 } from './ints256.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/solang/v0/ints256.json b/packages/api-contract/src/test/contracts/solang/v0/ints256.json new file mode 100644 index 0000000..8263c74 --- /dev/null +++ b/packages/api-contract/src/test/contracts/solang/v0/ints256.json @@ -0,0 +1,113 @@ +{ + "contract": { + "authors": [ + "Sean Young " + ], + "description": "Test 256 bits types", + "name": "ints256", + "version": "0.0.1" + }, + "metadataVersion": "0.1.0", + "source": { + "compiler": "solang 0.1.4", + "hash": "0xa85fb5c61a09d71dce84c15a8bd87e6f4eafac498a1aec3869e8cf7ea4389697", + "language": "Solidity 0.1.4" + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [ + "" + ], + "name": "new", + "selector": "0x861731d5" + } + ], + "events": [], + "messages": [ + { + "args": [ + { + "name": "a", + "type": { + "display_name": [ + "u256" + ], + "type": 1 + } + }, + { + "name": "b", + "type": { + "display_name": [ + "u256" + ], + "type": 1 + } + } + ], + "docs": [ + "Multiply two 256 bit values\n\n" + ], + "mutates": false, + "name": "multiply", + "payable": false, + "return_type": { + "display_name": [ + "u256" + ], + "type": 1 + }, + "selector": "0x165c4a16" + }, + { + "args": [ + { + "name": "a", + "type": { + "display_name": [ + "u256" + ], + "type": 1 + } + }, + { + "name": "b", + "type": { + "display_name": [ + "u256" + ], + "type": 1 + } + } + ], + "docs": [ + "Add two 256 bit values\n\n" + ], + "mutates": false, + "name": "add", + "payable": false, + "return_type": { + "display_name": [ + "u256" + ], + "type": 1 + }, + "selector": "0x771602f7" + } + ] + }, + "storage": { + "struct": { + "fields": [] + } + }, + "types": [ + { + "def": { + "primitive": "u256" + } + } + ] +} \ No newline at end of file diff --git a/packages/api-contract/src/test/contracts/solang/v0/ints256.sol b/packages/api-contract/src/test/contracts/solang/v0/ints256.sol new file mode 100644 index 0000000..1225a6b --- /dev/null +++ b/packages/api-contract/src/test/contracts/solang/v0/ints256.sol @@ -0,0 +1,13 @@ +/// @title Test 256 bits types +/// @author Sean Young +contract ints256 { + /// Multiply two 256 bit values + function multiply(uint256 a, uint256 b) public pure returns (uint256) { + return a * b; + } + + /// Add two 256 bit values + function add(uint256 a, uint256 b) public pure returns (uint256) { + return a + b; + } +} diff --git a/packages/api-contract/src/test/contracts/solang/v0/ints256.wasm b/packages/api-contract/src/test/contracts/solang/v0/ints256.wasm new file mode 100644 index 0000000..1973316 Binary files /dev/null and b/packages/api-contract/src/test/contracts/solang/v0/ints256.wasm differ diff --git a/packages/api-contract/src/test/contracts/user/index.ts b/packages/api-contract/src/test/contracts/user/index.ts new file mode 100644 index 0000000..e486d7d --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/index.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { createVersionedExport } from '../util.js'; +import * as v0 from './v0/index.js'; +import * as v3 from './v3/index.js'; +import * as v4 from './v4/index.js'; + +export default createVersionedExport({ v0, v3, v4 }); diff --git a/packages/api-contract/src/test/contracts/user/v0/assetTransfer.json b/packages/api-contract/src/test/contracts/user/v0/assetTransfer.json new file mode 100644 index 0000000..05608b1 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v0/assetTransfer.json @@ -0,0 +1,299 @@ +{ + "contract": { + "authors": [ + "unknown" + ], + "name": "AssetTransfer", + "version": "0.0.1" + }, + "metadataVersion": "0.1.0", + "source": { + "compiler": "solang 0.1.4", + "hash": "0x7d163f445bec3d33e90d0f60bda40acd42f2760dbc1b731616af70a6001e05c7", + "language": "Solidity 0.1.4" + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [ + "" + ], + "name": "new", + "selector": "0x861731d5" + } + ], + "events": [ + { + "args": [ + { + "indexed": false, + "name": "_newUser", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + } + ], + "docs": [ + "" + ], + "name": "successfulRegistration" + }, + { + "args": [ + { + "indexed": false, + "name": "sender", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + }, + { + "indexed": false, + "name": "_hexAsset", + "type": { + "display_name": [ + "String" + ], + "type": 5 + } + } + ], + "docs": [ + "" + ], + "name": "addedAsset" + }, + { + "args": [ + { + "indexed": false, + "name": "sender", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + }, + { + "indexed": false, + "name": "receiver", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + }, + { + "indexed": false, + "name": "hexOfAsset", + "type": { + "display_name": [ + "String" + ], + "type": 5 + } + } + ], + "docs": [ + "" + ], + "name": "assetSent" + } + ], + "messages": [ + { + "args": [ + { + "name": "_user", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + } + ], + "docs": [ + "" + ], + "mutates": false, + "name": "viewBalance", + "payable": false, + "return_type": { + "display_name": [ + "u256" + ], + "type": 1 + }, + "selector": "0xc1a13d1a" + }, + { + "args": [ + { + "name": "_assetHex", + "type": { + "display_name": [ + "String" + ], + "type": 5 + } + } + ], + "docs": [ + "" + ], + "mutates": false, + "name": "findOwner", + "payable": false, + "return_type": { + "display_name": [ + "AccountId" + ], + "type": 4 + }, + "selector": "0x63560a8e" + }, + { + "args": [ + { + "name": "_hexAsset", + "type": { + "display_name": [ + "String" + ], + "type": 5 + } + } + ], + "docs": [ + "" + ], + "mutates": true, + "name": "addAsset", + "payable": false, + "return_type": null, + "selector": "0xa7c6b52e" + }, + { + "args": [], + "docs": [ + "" + ], + "mutates": true, + "name": "receiveAsset", + "payable": false, + "return_type": { + "display_name": [ + "String" + ], + "type": 5 + }, + "selector": "0xb2f3b5bc" + }, + { + "args": [ + { + "name": "_assetHex", + "type": { + "display_name": [ + "String" + ], + "type": 5 + } + }, + { + "name": "_receiver", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + } + ], + "docs": [ + "" + ], + "mutates": true, + "name": "sendAsset", + "payable": false, + "return_type": null, + "selector": "0xd6e5288f" + }, + { + "args": [ + { + "name": "_newUser", + "type": { + "display_name": [ + "AccountId" + ], + "type": 4 + } + } + ], + "docs": [ + "" + ], + "mutates": true, + "name": "register", + "payable": false, + "return_type": null, + "selector": "0x4420e486" + } + ] + }, + "storage": { + "struct": { + "fields": [] + } + }, + "types": [ + { + "def": { + "primitive": "u256" + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 3 + } + ] + } + }, + "path": [ + "AccountId" + ] + }, + { + "def": { + "primitive": "str" + } + } + ] +} diff --git a/packages/api-contract/src/test/contracts/user/v0/assetTransfer.wasm b/packages/api-contract/src/test/contracts/user/v0/assetTransfer.wasm new file mode 100644 index 0000000..516f769 Binary files /dev/null and b/packages/api-contract/src/test/contracts/user/v0/assetTransfer.wasm differ diff --git a/packages/api-contract/src/test/contracts/user/v0/enumExample.json b/packages/api-contract/src/test/contracts/user/v0/enumExample.json new file mode 100644 index 0000000..6515f97 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v0/enumExample.json @@ -0,0 +1,528 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0x1a37c380fe02fe3b670480dff1393b0401788955315d092e39fcc06047f1413c", + "language": "ink! 3.0.0-rc2", + "compiler": "rustc 1.49.0-nightly" + }, + "contract": { + "name": "enum_example", + "version": "0.1.0", + "authors": [ + "[your_name] <[your_email]>" + ] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [], + "messages": [ + { + "args": [ + { + "name": "variant", + "type": { + "displayName": [ + "Variant" + ], + "type": 4 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "set_variant" + ], + "payable": false, + "returnType": null, + "selector": "0x4fa6b9cf" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "get_variant" + ], + "payable": false, + "returnType": { + "displayName": [ + "Variant" + ], + "type": 4 + }, + "selector": "0x1d5962d1" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0000000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [] + }, + "2": { + "fields": [] + }, + "3": { + "fields": [] + }, + "4": { + "fields": [] + }, + "5": { + "fields": [] + }, + "6": { + "fields": [] + } + } + } + }, + "name": null + } + ] + }, + "2": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": null + } + ] + }, + "1": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": null + } + ] + } + } + } + }, + "name": null + } + ] + }, + "3": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "value" + } + ] + }, + "1": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "value" + } + ] + } + } + } + }, + "name": null + } + ] + }, + "4": { + "fields": [ + { + "layout": { + "enum": { + "dispatchKey": "0x0100000000000000000000000000000000000000000000000000000000000000", + "variants": { + "0": { + "fields": [] + }, + "1": { + "fields": [] + }, + "2": { + "fields": [] + }, + "3": { + "fields": [] + }, + "4": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "r" + }, + { + "layout": { + "cell": { + "key": "0x0300000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "g" + }, + { + "layout": { + "cell": { + "key": "0x0400000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "b" + } + ] + }, + "5": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "r" + }, + { + "layout": { + "cell": { + "key": "0x0300000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "g" + }, + { + "layout": { + "cell": { + "key": "0x0400000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "b" + }, + { + "layout": { + "cell": { + "key": "0x0500000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "a" + } + ] + } + } + } + }, + "name": null + } + ] + } + } + } + }, + "name": "last" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "i32" + } + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Weekday" + }, + { + "fields": [ + { + "type": 6 + } + ], + "name": "TupleMaybeSigned" + }, + { + "fields": [ + { + "type": 7 + } + ], + "name": "NamedMaybeSigned" + }, + { + "fields": [ + { + "type": 8 + } + ], + "name": "Color" + } + ] + } + }, + "path": [ + "enum_example", + "enum_example", + "Variant" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "discriminant": 0, + "name": "Monday" + }, + { + "discriminant": 1, + "name": "Tuesday" + }, + { + "discriminant": 2, + "name": "Wednesday" + }, + { + "discriminant": 3, + "name": "Thursday" + }, + { + "discriminant": 4, + "name": "Friday" + }, + { + "discriminant": 5, + "name": "Saturday" + }, + { + "discriminant": 6, + "name": "Sunday" + } + ] + } + }, + "path": [ + "enum_example", + "enum_example", + "Weekday" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 1 + } + ], + "name": "Signed" + }, + { + "fields": [ + { + "type": 2 + } + ], + "name": "Unsigned" + } + ] + } + }, + "path": [ + "enum_example", + "enum_example", + "TupleMaybeSigned" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "name": "value", + "type": 1 + } + ], + "name": "Signed" + }, + { + "fields": [ + { + "name": "value", + "type": 2 + } + ], + "name": "Unsigned" + } + ] + } + }, + "path": [ + "enum_example", + "enum_example", + "NamedMaybeSigned" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "Red" + }, + { + "name": "Blue" + }, + { + "name": "Green" + }, + { + "name": "Yellow" + }, + { + "fields": [ + { + "name": "r", + "type": 3 + }, + { + "name": "g", + "type": 3 + }, + { + "name": "b", + "type": 3 + } + ], + "name": "Rgb" + }, + { + "fields": [ + { + "name": "r", + "type": 3 + }, + { + "name": "g", + "type": 3 + }, + { + "name": "b", + "type": 3 + }, + { + "name": "a", + "type": 3 + } + ], + "name": "Rgba" + } + ] + } + }, + "path": [ + "enum_example", + "enum_example", + "Color" + ] + } + ] +} diff --git a/packages/api-contract/src/test/contracts/user/v0/enumExample.wasm b/packages/api-contract/src/test/contracts/user/v0/enumExample.wasm new file mode 100644 index 0000000..5cbe4bf Binary files /dev/null and b/packages/api-contract/src/test/contracts/user/v0/enumExample.wasm differ diff --git a/packages/api-contract/src/test/contracts/user/v0/index.ts b/packages/api-contract/src/test/contracts/user/v0/index.ts new file mode 100644 index 0000000..632e238 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v0/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as assetTransfer } from './assetTransfer.json' assert { type: 'json' }; +export { default as enumExample } from './enumExample.json' assert { type: 'json' }; +export { default as recursive } from './recursive.contract.json' assert { type: 'json' }; +export { default as withString } from './withString.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/user/v0/recursive.contract.json b/packages/api-contract/src/test/contracts/user/v0/recursive.contract.json new file mode 100644 index 0000000..c043435 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v0/recursive.contract.json @@ -0,0 +1 @@ +{"metadataVersion":"0.1.0","source":{"hash":"0xdb5366415b71e5d52af252f2be5f955f1272b7f1ec0ce3493b7a9404b3b9119c","language":"ink! 3.0.0-rc5","compiler":"rustc 1.57.0-nightly","wasm":"0x0061736d0100000001620f60037f7f7f017f60027f7f017f60027f7f0060037f7f7f0060017f017f60057f7f7f7f7f0060047f7f7f7f0060000060017f017e60017f0060047f7f7f7f017f60067f7f7f7f7f7f006000017f60057f7f7f7f7f017f60077f7f7f7f7f7f7f017f02a30107057365616c30107365616c5f6765745f73746f726167650000057365616c30107365616c5f7365745f73746f726167650003057365616c30167365616c5f76616c75655f7472616e736665727265640002057365616c30127365616c5f64656275675f6d6573736167650001057365616c300a7365616c5f696e7075740002057365616c300b7365616c5f72657475726e000303656e76066d656d6f727902010210034e4d020204030205020309030c0802020407040700090100000301020107020103010206080d010a060a030b0302040601010303000101000505050501010e01010001010401010101040101010600040501700121210608017f01418080040b071102066465706c6f7900150463616c6c00170926010041010b203534254e233941494a250e4f0e500e1c1e200e4b0e280e3b43440e4546470e4c0a9c744db50301027f230041d0006b22022400200241286a200141186a290300370300200241206a200141106a290300370300200241186a200141086a2903003703002002420137033020022001290300370310200241808001360244200241fabf04360240200241808001360248200241106a41fabf04200241c8006a10002101200241406b2002280248100702400240200110082201410b47044020014103460d0141d48304411c41f083041009000b20022002290340370348200241086a200241c8006a100a2002280208450d01200241003a0048418080044127200241c8006a41c0810441888104100b000b230041306b220024002000411736020c200041988104360208200041246a410136020020004201370214200041e88e043602102000410236022c2000200041286a3602202000200041086a360228200041106a41b081041026000b2002200228020c220336023c2002413c6a21010340200128020022010d000b200020022903103703082000200336022820004201370300200041206a200241286a290300370300200041186a200241206a290300370300200041106a200241186a290300370300200241d0006a24000b2301017f2001200028020422024b04402001200241c0bb041030000b200020013602040b2001017f410a2101200041094d047f200041027441c8bf046a28020005410a0b0b4601017f230041206b22032400200341146a410036020020034188be04360210200342013702042003200136021c200320003602182003200341186a360200200320021026000b850101037f230041106b22022400200241086a20011012410121030240024020022d00084101710d00410021030240024020022d00090e020201000b410121030c010b20022001100a4101210320022802000d002002280204210110102204450d0120042001360200410021030b2000200436020420002003360200200241106a24000f0b000b7c01017f230041406a220524002005200136020c2005200036020820052003360214200520023602102005412c6a41023602002005413c6a41013602002005420237021c2005418cbe04360218200541023602342005200541306a3602282005200541106a3602382005200541086a360230200541186a20041026000ba20101017f230041406a22022400200241206a200141186a290300370300200241186a200141106a290300370300200241106a200141086a2903003703002002420137032820022001290300370308200041286a220021010340200128020022010d000b200241386a41808001360200200241fabf04360234200241003602302002200241306a2000100d200241086a200228020020022802041001200241406b24000ba30102037f017e230041106b22032400200129020421062003410036020820032006370300034020022802000440200341011013200228020021020c010b0b2003410010132001410036020820014188be04360204200328020422052003280208220249044041a8b804412341b8b9041009000b200328020021042001200520026b3602082001200220046a3602042000200236020420002004360200200341106a24000b0300010b3c01017f230041106b22032400200041ff01714108460440200341106a24000f0b200320003a000f200120022003410f6a41d08104419c8604100b000b6e01037f024041f0bf04280200220041046a22012000490d0041f0bf0441f4bf04280200200149047f410140002200417f46200041ffff0371200047720d0120004110742200418080046a22012000490d0141f4bf04200136020020004104720520010b360200200021020b20020b9c0102027f017e230041106b220124002001420037030841042102027f02400340200241084604402001410436020820012903082203a741044f0d0241e08104411b41dc82041009000b20012000101220012d0000410171450440200141086a20026a20012d00013a0000200241016a21020c010b0b4101210241000c010b410021022003422088a70b2100200141106a24002002ad2000ad420886840b3f01027f230041106b22022400200241003a000f200020012002410f6a410110182201047f41000520022d000f0b3a0001200020013a0000200241106a24000b3901027f20002802082202200028020422034904402000200241016a360208200028020020026a20013a00000f0b2002200341c8ba04102e000b2601017f2000280200220145044041000f0b10102200044020002001101436020020000f0b000b12004100101641ff017141a485044122100f0b8d0502057f017e230041e0006b220124000240027f2000450440200141808001360244200141fabf04360240200141406b1019200120012903403703104106200141106a10114281feffffff1f834280b6baede90b520d011a2001410036023820014200370310200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b100c41080c010b200141808001360244200141fabf04360240200141406b101920012001290340370310410121000240200141106a10112206a722044101710d00200642ffffffffff1f832206422088a721052006421888a721032006421088a72102200441087641ff01712204412f470440200441e80147200241ff017141c4014772200341ff017141de0047200541b6014772720d012001200141106a100a20012802000d012001280204210341002102410021000c010b200241ff017141860147200341ff017141db004772200541d90147720d0041002100410121020b410620000d001a20024101710d01200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b1006200141386a21000340200028020022000d000b20012003360238200141106a200141406b100c41080b200141e0006a24000f0b200141d8006a4200370300200141d0006a4200370300200141c8006a420037030020014200370340200141106a200141406b10062001200141386a101436020c230041106b2200240020002001410c6a36020c2000410c6a2802002101230041206b22002400200041186a41808001360200200041fabf0436021420004100360210200041086a200041106a2001100d41002000280208200028020c1005000bca0102037f027e230041206b22002400200041808001360204200041fabf0436020020004180800136021041fabf04200041106a100220002000280210100720002000290300370308200041186a2201420037030020004200370310200041086a200041106a41101018220245044020002903102104200129030021030b20020440200041003a0010418084044134200041106a41c0810441948504100b000b410841072003200484501b41ac860441c300100f4101101641ff017141ef8604411b100f200041206a24000bd10101057f230041106b220324000240200028020422042002492205450440200341086a41002002200028020022061051200328020c22072002470d0120012003280208200210521a20032002200420061051200020032903003702000b200341106a240020050f0b230041306b2200240020002007360204200020023602002000411c6a41023602002000412c6a41033602002000420337020c200041c89904360208200041033602242000200041206a360218200020003602282000200041046a360220200041086a41f898041026000b3301017f230041106b220124002001200028020436020c20002802002001410c6a10042000200128020c1007200141106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a418c8704200241086a101b200241206a24000bfc0301057f230041406a22032400200341346a2001360200200341033a00382003428080808080043703182003200036023041002101200341003602282003410036022002400240024020022802082200450440200241146a28020041ffffffff0171220641016a210520022802102104410021000340200541016b2205450d02200228020020006a220141046a28020022070440200328023020012802002007200328023428020c1100000d040b200020046a2101200041086a21002001280200200341186a200141046a280200110100450d000b0c020b2002410c6a28020022064105742105200641ffffff3f71210603402005450d01200228020020016a220441046a28020022070440200328023020042802002007200328023428020c1100000d030b200320002d001c3a003820032000290204422089370318200341106a20022802102204200041146a103620032003290310370320200341086a20042000410c6a103620032003290308370328200141086a2101200541206b210520002802002107200041206a2100200420074103746a2204280200200341186a2004280204110100450d000b0c010b4100210020062002280204492201450d012003280230200228020020064103746a410020011b22012802002001280204200328023428020c110000450d010b410121000b200341406b240020000b0f00200028020020012002101d41000b3f01017f20002002101f2000280208220320002802006a2001200210521a2003200220036a22014b044041b08704411c41d48b041009000b200020013602080bb90201027f230041106b22022400024002400240200028020022002002410c6a027f02400240200141ff004d0440200028020822032000280204460d010c040b2002410036020c2001418010490d0120014180800449044020022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040c020b20004101101f200028020821030c020b20022001413f71418001723a000d2002200141067641c001723a000c41020b101d0c010b200028020020036a20013a0000200341016a22012003490d01200020013602080b200241106a240041000f0b41b08704411c41c48b041009000bc50301077f230041106b22052400024002400240200120002802042207200028020822026b4b0440200120026a22012002490d03200720076a22032007490d022000280200410020071b210841002102230041106b220624002005027f2003200120012003491b22014108200141084b1b220141004e0440027f0240200804402007450440200641086a2001102220062802082104200628020c0c030b200141f0bf04280200220320016a22022003490d021a41f4bf042802002002490440200141ffff036a22042001490d02200441107640002202417f46200241ffff0371200247720d022002411074220320044180807c716a22022003490d024100210441f4bf0420023602002001200120036a22022003490d031a0b41f0bf04200236020020012003450d021a2003200820071052210420010c020b2006200110222006280200210420062802040c010b4100210420010b2102200404402005200436020441000c020b20052001360204410121020b41010b360200200541086a2002360200200641106a240020052802004101460d01200020052902043702000b200541106a24000f0b200541086a280200450d01000b41808a04412141a48a041009000b1021000b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a101a200241206a24000b0f0041b48a04411141c88a041009000bb90101037f2001047f230041106b22042400027f410041f0bf04280200220220016a22032002490d001a024041f4bf042802002003490440200141ffff036a22022001490d012002411076220340002202417f46200241ffff0371200247720d012002411074220220034110746a22032002490d0141f4bf0420033602004100200120026a22032002490d021a0b41f0bf04200336020020020c010b41000b200441106a24000541010b210220002001360204200020023602000b0e0020002802001a03400c000b000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341e49704360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a20021026000bf30202037f027e027f20003502002105230041306b220324004127210002400240024003402005428fce005804402005a7220241e3004a0d020c030b2000200041046b22004c0d0320054290ce00802106200341096a20006a20054290ce0082a7220241e4006e41017441c292046a2f00003b00002000200041026a22044c0440200341096a20046a200241e4007041017441c292046a2f00003b0000200621050c010b0b41a08c04411c41f4ae041009000b2000200041026b22004c0d01200341096a20006a2005a741ffff0371220241e4007041017441c292046a2f00003b0000200241e4006e21020b02402002410a4e04402000200041026b22004c0d02200341096a20006a200241017441c292046a2f00003b00000c010b2000200041016b22004c0d01200341096a20006a200241306a3a00000b412720006b220241274b04400c010b20014188be044100200341096a20006a20021029200341306a24000c010b41f08b04412141f4ae041009000b0bfb0301077f230041106b220224002002200136020c200220003602082002418c8f0436020420024188be04360200230041406a220324002003200236020c200341346a410136020020034202370224200341ccb9043602202003410436023c2003200341386a36023020032003410c6a360238200341106a210641002101230041206b22042400200341206a220528020422074103742102200528020022082100024002400240024002400340200204402001200120002802046a22014b0d02200241086b2102200041086a21000c010b0b02400240200541146a280200450440200121000c010b02402007450d0020082802040d004100210220014110490d020b41002102200120016a22002001490d010b200022024100480d020b20042002102220042802002200450d0220042802042101200641003602082006200036020020062001360204200441186a200541106a290200370300200441106a200541086a290200370300200420052902003703082006200441086a101a0d03200441206a24000c040b41b08704411c41e4ae041009000b1021000b000b41dc87044133200441086a41cc870441f88804100b000b2003280210210020032802182101024041f8bf042d000045044041f9bf042d00004101710d010b2000200110031008410947044041f8bf0441013a00000b41f9bf0441013a00000b000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41f08b044121418cbf041009000b0c0042fbe3b7f3e291cedb280b9b0401077f230041106b22072400418080c40021092004210502402000280200220a410171450d002004200441016a22054d0440412b21090c010b41a08c04411c419095041009000b0240024002400240200a41047145044041002101200521060c010b2001200120026a102a20056a22062005490d010b41012105200028020841014704402000200920012002102b0d032000280218200320042000411c6a28020028020c11000021050c030b024002402000410c6a280200220820064b0440200a4108710d01200820066b220620084b0d022007200020064101102c20072802002206418080c400460d05200728020421082000200920012002102b0d0520002802182201200320042000411c6a280200220028020c1100000d052006200820012000102d21050c050b2000200920012002102b0d042000280218200320042000411c6a28020028020c11000021050c040b2000280204210a2000413036020420002d0020210b200041013a00202000200920012002102b0d03200820066b220120084b0d02200741086a200020014101102c20072802082201418080c400460d03200728020c210220002802182206200320042000411c6a280200220328020c1100000d032001200220062003102d0d032000200b3a00202000200a360204410021050c030b41f08b04412141c095041009000b41a08c04411c41a095041009000b41f08b04412141b095041009000b200741106a240020050b4201017f02400340200020014704402002200220002d000041c00171418001476a22024b0d02200041016a21000c010b0b20020f0b41a08c04411c41e4ae041009000b4b000240027f2001418080c4004704404101200028021820012000411c6a2802002802101101000d011a0b20020d0141000b0f0b2000280218200220032000411c6a28020028020c1100000bb20101027f20022105024002400240200320012d0020220320034103461b41ff017141016b0e03010001020b2002200241016a22034d044020034101762105200241017621040c020b41a08c04411c41d095041009000b41002105200221040b200441016a21022001411c6a2802002103200128020421042001280218210102400340200241016b2202450d01200120042003280210110100450d000b418080c40021040b20002005360204200020043602000b3201017f027f0340200120012004460d011a200441016a2104200220002003280210110100450d000b200441016b0b2001490b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341f08f04360208200341033602242003200341206a360218200320033602282003200341046a360220200341086a20021026000bb70101017f230041106b220624000240200120024d0440200220044d0d012002200420051030000b230041306b2200240020002002360204200020013602002000411c6a41023602002000412c6a41033602002000420237020c200041b89804360208200041033602242000200041206a3602182000200041046a36022820002000360220200041086a20051026000b200641086a2001200220031027200020062802083602002000200628020c360204200641106a24000b6b01017f230041306b2203240020032001360204200320003602002003411c6a41023602002003412c6a41033602002003420237020c200341849804360208200341033602242003200341206a3602182003200341046a36022820032003360220200341086a20021026000b880101047f200141086a28020021022001280204210402400240200141046a10322205418080c400470440200220046b2203200128020420012802086b6a220220034b0d012001280200220320026a22022003490d02200120023602000b20002005360204200020033602000f0b41f08b04412141cc9a041009000b41a08c04411c41dc9a041009000bf00101057f2000280200220120002802042203460440418080c4000f0b2000200141016a220236020020012d00002204411874411875417f4c047f027f200220034604402003210241000c010b2000200141026a220236020020012d0001413f710b21012004411f712105200441df014d044020012005410674720f0b2001410674027f200220034604402003210141000c010b2000200241016a220136020020022d0000413f710b722102200441f00149044020022005410c74720f0b2001200346047f4100052000200141016a36020020012d0000413f710b2005411274418080f00071200241067472720520040b0b3f01017f024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b200221040b20002001360204200020043602000b9e0301067f230041306b2202240020012802102105200028020421042000280200210302400240024020012802082206410147044020050d012001280218200320042001411c6a28020028020c11000021000c030b2005450d010b200141146a28020020022003360224200241286a200320046a3602002002410036022041016a210002400340200041016b22000440200241186a200241206a1031200228021c418080c400470d010c020b0b200241106a200241206a10312002280214418080c400460d00200241086a2002280210200320041033200228020c2004200228020822001b21042000200320001b21030b20060d002001280218200320042001411c6a28020028020c11000021000c010b2001410c6a28020022002003200320046a102a22054d04402001280218200320042001411c6a28020028020c11000021000c010b20022001200020056b4100102c4101210020022802002205418080c400460d002002280204210620012802182207200320042001411c6a280200220128020c1100000d002005200620072001102d21000b200241306a240020000b140020002802002001200028020428020c1101000b5501027f0240027f02400240200228020041016b0e020103000b200241046a0c010b200120022802044103746a22012802044105470d0120012802000b2802002104410121030b20002004360204200020033602000b2c0020024181014f0440200241800141b092041024000b200041800120026b3602042000200120026a3602000b4901017f230041206b22032400200341186a200241106a290200370300200341106a200241086a2902003703002003200229020037030820002001200341086a101b200341206a24000b6c01027f230041206b2202240041012103024020002001103a0d002002411c6a410036020020024188be043602182002420137020c200241988d04360208200141186a2802002001411c6a280200200241086a10380d00200041046a2001103a21030b200241206a240020030b850201037f23004190016b22022400027f02402001280200220341107145044020034120710d012000200110250c020b2000280200210041ff0021030340200241106a20036a413041d7002000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b200241086a200241106a200341016a1037200141c0920441022002280208200228020c10290c010b2000280200210041ff0021030340200241106a20036a413041372000410f712204410a491b20046a3a0000200341016b21032000410f4b200041047621000d000b2002200241106a200341016a1037200141c0920441022002280200200228020410290b20024190016a24000bca08010d7f230041e0006b22032400200341d8006a210e2000280204210c2000280200210d2000280208210a024003402002450d010240200a2d00000440200d419c90044104200c28020c1100000d010b2003410a3602582003428a808080103703502003200236024c41002100200341003602482003200236024420032001360240200222052106200121040340200341386a2004200620002005103c024002400240024002400240024020032802382207450d00024002402003280254220041016b220420004d0440200320046a41d8006a2d00002108200328023c220641084f0440200741036a417c7120076b2204450440410021050c030b41002100200341306a410020062004200420064b1b22052007200641d09604102f200328023421092003280230210b034020002009460d032000200b6a2d00002008460d042000200041016a22044d0440200421000c010b0b41a08c04411c41f0af041009000b41002100034020002006460d04200020076a2d00002008460d03200041016a21000c000b000b41f08b04412141dc9d041009000b02402006200641086b22044f0440200841818284086c21000c010b41f08b04412141e096041009000b02400340024020042005490d00200541046a22092005490d06200520076a280200200073220b417f73200b41818284086b71200720096a2802002000732209417f73200941818284086b7172418081828478710d002005200541086a22054d0d010c020b0b200520064b0d05200341286a200520062007102741002100200328022c2106200328022821070240034020002006460d04200020076a2d00002008460d012000200041016a22044d0440200421000c010b0b41a08c04411c41f0af041009000b200020056a220020054f0d0141a08c04411c41a097041009000b41a08c04411c418097041009000b2000200041016a22044b0d042004200328024822046a22002004490d0520032000360248200020032802542204490d06200341206a20032802402003280244200020046b22062000103c20032802202200450d0620032802242104200341186a41002003280254200e4104418c9e04102f2004200328021c470d06027f20032802182105034041002004450d011a200441016b210420052d0000210720002d00002108200041016a2100200541016a210520072008460d000b200820076b0b0d06200a41013a0000200641016a220020064f0d0141a08c04411c419091041009000b200a41003a0000200221000b200341106a20002001200241a09104103d200d20032802102003280214200c28020c1100000d06200341086a20002001200241b09104103e200328020c2102200328020821010c070b41a08c04411c41f096041009000b20052006419097041024000b41a08c04411c41ec9d041009000b41a08c04411c41fc9d041009000b200328024c21052003280248210020032802442106200328024021040c000b000b0b4101210f0b200341e0006a2400200f0b4c01037f230041106b220524002002200449200320044b72450440200541086a2003200420011027200528020c2107200528020821060b2000200736020420002006360200200541106a24000b4e01027f230041106b22052400200541086a20012002200310332005280208220645044020022003410020012004103f000b200528020c21012000200636020020002001360204200541106a24000b6400024002402001450d00200120034f044020012003460d010c020b200120026a2c00004140480d010b2003200320016b220449044041f08b04412141d89b041009000b200020043602042000200120026a3602000f0b20022003200120032004103f000baf0601027f23004180016b220524002005200336021c200520023602182005027f024020014181024f0440418002210603402006450440410021060c030b200020066a2c000041bf7f4a0d02200641016b21060c000b000b200520013602242005200036022020054188be0436022841000c010b200541106a20062000200141dc9c04103d200520052903103703202005419c9e0436022841050b36022c024020012002492206200120034972450440200220034d0440024002402002450d00200120024d044020012002460d010c020b200020026a2c00004140480d010b200321020b2005200236023003400240024002402002450440410021020c010b200120024d044020012002470d02200121020c010b200020026a2c00004140480d010b200541086a2002200020012004103e20052005280208220036025820052000200528020c6a36025c2005200541d8006a1032200410402201360234027f41012001418001490d001a41022001418010490d001a41034104200141808004491b0b20026a220020024f0d0141a08c04411c20041009000b200241016b21020c010b0b2005200036023c20052002360238200541d4006a4105360200200541fc006a4102360200200541f4006a4102360200200541ec006a4106360200200541e4006a410736020020054205370244200541d49f043602402005410336025c2005200541d8006a3602502005200541286a3602782005200541206a3602702005200541386a3602682005200541346a3602602005200541306a3602580c020b200541f4006a4102360200200541ec006a4102360200200541e4006a4103360200200541d4006a410436020020054204370244200541809f043602402005410336025c2005200541d8006a3602502005200541286a3602702005200541206a36026820052005411c6a3602602005200541186a3602580c010b20052002200320061b360238200541d4006a4103360200200541ec006a4102360200200541e4006a410236020020054203370244200541c49e043602402005410336025c2005200541d8006a3602502005200541286a3602682005200541206a3602602005200541386a3602580b200541406b20041026000b1a002000418080c40046044041bc8e04412b20011009000b20000b860a02087f017e4101210602402001280218220741272001411c6a28020028021022081101000d0041f4002103410221010240027f02400240027f0240024002402000280200220241096b0e050704010105000b2002412746200241dc0046720d010b2002410b74210541002101411f2100411f21040240027e024002400240024002400240024002400240024002400340200020014d0d02200120044101766a22032001490d030240200520034102744180b0046a280200410b7422044d044020042005460d03200321000c010b200341016a22012003490d050b200020016b220420004d0d000b41f08b04412141e898041009000b200341016a21010b2001411e4b0d02200141027422034180b0046a280200411576210002402001411e47044020034184b0046a280200411576220320006b220420034d0d0141f08b0441214190ad041009000b41b10520006b220441b2054f0d040b4100210320022001200141016b22054f047f2005411f4f0d0520054102744180b0046a28020041ffffff00710541000b6b220920024b0d05200441016b220120044b0d06200041b105200041b1054b1b2105200020046a41016b2103410021040240024003400240024002402001047f20002005460d0e20042004200041fcb0046a2d00006a22044b0d01200420094d0d0220000520030b4101710d0e200241808004490d022002418080084f0d04200241d9a604412641a5a70441af0141d4a80441a30310420d100c050b41a08c04411c41d0ad041009000b200141016b2101200041016a21000c010b0b200241b0a10441294182a20441a20241a4a40441b5021042450d010c0c0b200241decd0a6b412249200241b5ee0a6b410b4972200241feffff0071419ef00a46200241a29d0b6b410e497272200241e1d70b6b419f18492002419ef40b6b41e20b4972200241cba60c6b41b5db2b4972720d00200241f08338490d0b0b200241017267410276410773ad4280808080d000840c090b41a08c04411c41c898041009000b41a08c04411c41d898041009000b2001411f41f0ac04102e000b41f08b0441214180ad041009000b2005411f41e0ad04102e000b41f08b04412141a0ad041009000b41f08b04412141b0ad041009000b200541b10541c0ad04102e000b200241017267410276410773ad4280808080d000840b210a41032101200221030c060b41010c010b41020b2101200221030c030b41ee000c010b41f2000b21030b0240034002402001210241002101200321000240024002400240200241016b0e03030200010b02400240024002400240200a422088a741ff017141016b0e050004010203050b200a42ffffffff8f6083210a41fd002100410321010c060b200a42ffffffff8f608342808080802084210a41fb002100410321010c050b200a42ffffffff8f608342808080803084210a41f5002100410321010c040b200a42ffffffff8f60834280808080c00084210a41dc002100410321010c030b200aa7220141ffffffff03712001470d032001410274220041204f0d0520032000411c7176410f712200413072200041d7006a2000410a491b41ac8e04104021002001450440200a42ffffffff8f608342808080801084210a410321010c030b200a42808080807083200a42017d42ffffffff0f8384210a410321010c020b20074127200811010021060c050b41dc002100410121010b200720002008110100450d010c030b0b41c08c044121418c8e041009000b41f08c044124419c8e041009000b20060bfa0201067f230041106b22072400200120024101746a210c20004180fe0371410876210a410021020240024002400240034002402001200c470440200220012d00016a22082002490d04200141026a210b20012d00002209200a460d01200b2101200821022009200a4d0d020b200520066a2104200041ffff0371210241012103034020042005460d03200541016a210020052d000022014118744118752206410048044020002004460d0620052d0001200641ff0071410874722101200541026a21000b200141004a2002200220016b22024a730d0620024100480d0320034101732103200021050c000b000b200741086a20022008200320044180a104102f20072802082102200728020c210103402001450440200b2101200821020c020b200141016b210120022d0000200241016a2102200041ff0171470d000b0b410021030b200741106a240020034101710f0b41a08c04411c41f0a0041009000b41bc8e04412b4190a1041009000b41f08b04412141a0a1041009000be30101017f230041106b220224002002410036020c20002002410c6a027f0240024020014180014f04402001418010490d012001418080044f0d0220022001413f71418001723a000e20022001410c7641e001723a000c20022001410676413f71418001723a000d41030c030b200220013a000c41010c020b20022001413f71418001723a000d2002200141067641c001723a000c41020c010b20022001413f71418001723a000f2002200141127641f001723a000c20022001410676413f71418001723a000e20022001410c76413f71418001723a000d41040b103b200241106a24000b5501017f230041206b2202240020022000360204200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241046a418c9404200241086a101b200241206a24000b0d00200028020020012002103b0b0b002000280200200110430b4a01017f230041206b220224002000280200200241186a200141106a290200370300200241106a200141086a29020037030020022001290200370308200241086a1044200241206a24000b940101027f20002d00082101200028020422020440200141ff017121012000027f410120010d001a024020024101470d0020002d0009450d00200028020022022d00004104710d004101200228021841c5910441012002411c6a28020028020c1100000d011a0b2000280200220128021841c6910441012001411c6a28020028020c1100000b22013a00080b200141ff01714100470b5b01027f230041206b220224002001411c6a28020021032001280218200241186a2000280200220041106a290200370300200241106a200041086a290200370300200220002902003703082003200241086a101b200241206a24000b0b002000280200200110340b4900230041106b220024002000200128021841c1bf0441052001411c6a28020028020c1100003a000820002001360200200041003a00092000410036020420001048200041106a24000b4900230041106b220024002000200128021841adb604410b2001411c6a28020028020c1100003a000820002001360200200041003a00092000410036020420001048200041106a24000b1b00200028021841c1bf0441052000411c6a28020028020c1100000bfe0201037f230041406a2202240020002802002103410121000240200141186a2802002204419c8f04410c2001411c6a280200220128020c1100000d0002402003280208220004402002200036020c410121002002413c6a41013602002002420237022c200241ac8f04360228200241083602142002200241106a36023820022002410c6a36021020042001200241286a1038450d010c020b20032802002200200328020428020c11080042f4f99ee6eea3aaf9fe00520d002002200036020c410121002002413c6a41013602002002420237022c200241ac8f04360228200241093602142002200241106a36023820022002410c6a36021020042001200241286a10380d010b200328020c2100200241246a41033602002002413c6a410a360200200241346a410a36020020024203370214200241f48e0436021020022000410c6a3602382002200041086a3602302002410236022c200220003602282002200241286a36022020042001200241106a103821000b200241406b240020000bc60701017f230041d0006b22022400027f0240024002400240024002400240024002400240024020002d000041016b0e0a0102030405060708090a000b200128021841debc0441062001411c6a28020028020c1100002100200241003a001120022001360208027f410120000d001a20012d00004104714504404101200128021841c491044101200128021c28020c1100000d011a2001104d0c010b4101200128021841c291044102200128021c28020c1100000d001a20012802002100200241013a0027200241c4006a41849004360200200241206a200241276a3602002002200036022820022001290218370318200220012d00203a00482002200128020436022c20022001290210370338200220012902083703302002200241186a3602404101200241286a104d0d001a200228024041c091044102200228024428020c1100000b21002002410136020c200220003a0010200241086a10480c0a0b2002200128021841d1bc04410d2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c090b2002200128021841c3bc04410e2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c080b2002200128021841b8bc04410b2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c070b20022001280218419fbc0441192001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c060b200220012802184191bc04410e2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c050b2002200128021841fdbb0441142001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c040b2002200128021841f1bb04410c2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c030b2002200128021841e6bb04410b2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c020b2002200128021841dfbb0441072001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480c010b2002200128021841d0bb04410f2001411c6a28020028020c1100003a003020022001360228200241003a00312002410036022c200241286a10480b200241d0006a24000bd80201017f230041106b2202240002400240024002400240024002400240024020002d000041016b0e0701020304050607000b2002200128021841f8bd04410f2001411c6a28020028020c1100003a00080c070b2002200128021841debd04411a2001411c6a28020028020c1100003a00080c060b2002200128021841cbbd0441132001411c6a28020028020c1100003a00080c050b2002200128021841babd0441112001411c6a28020028020c1100003a00080c040b20022001280218419ebd04411c2001411c6a28020028020c1100003a00080c030b200220012802184189bd0441152001411c6a28020028020c1100003a00080c020b2002200128021841f8bc0441112001411c6a28020028020c1100003a00080c010b2002200128021841e4bc0441142001411c6a28020028020c1100003a00080b20022001360200200241003a00092002410036020420021048200241106a24000b3001017f2002200220016b22044f0440200020043602042000200120036a3602000f0b41a0bf044121418cbf041009000b2b01017f03402002200346450440200020036a200120036a2d00003a0000200341016a21030c010b0b20000b0bcf3f0700418080040ba107636f756c64206e6f742070726f7065726c79206465636f64652073746f7261676520656e7472792f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f73746f726167652d332e302e302d7263352f7372632f7472616974732f6d6f642e727327000100610000008f0000000a00000073746f7261676520656e7472792077617320656d707479002700010061000000900000000a0000000b00000001000000010000000c0000000d00000001000000010000000e0000005765206465636f646520604e6020656c656d656e74733b207165642f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f7061726974792d7363616c652d636f6465632d322e332e312f7372632f636f6465632e72730000fb0001005f000000cd020000170000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f696d706c732e7273656e636f756e746572656420756e6578706563746564206572726f726c01010068000000e900000017000000656e636f756e7465726564206572726f72207768696c65207175657279696e67207472616e736665727265642062616c616e63652f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f6c616e672d332e302e302d7263352f7372632f646973706174636865722e72730000340201005e000000910000000a0000006661696c656420746f2064697370617463682074686520636f6e7374727563746f722f55736572732f746d2f6768712f6769746875622e636f6d2f746173682d32732f32303231303933305f706f6c6b61646f745f6170692d636f6e74726163745f6572726f722f7265637572736976652f6c69622e7273c6020100560000001c0000000100000063616c6c6572207472616e736665727265642076616c7565206576656e2074686f75676820616c6c20696e6b21206d6573736167652064656e79207061796d656e74736661696c656420746f206469737061746368207468652063616c6c00000f00000004000000040000001000000011000000120041b087040bc202617474656d707420746f206164642077697468206f766572666c6f77130000000000000001000000140000006120666f726d617474696e6720747261697420696d706c656d656e746174696f6e2072657475726e656420616e206572726f722f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f666d742e72730000000f04010066000000470200001c0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7261775f7665632e72730041808a040be101617474656d707420746f206d756c7469706c792077697468206f766572666c6f77000000880401006a000000b50100001c0000006361706163697479206f766572666c6f77000000880401006a0000002f020000050000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f616c6c6f632f7372632f7665632f6d6f642e72730000580501006a0000008e0600000d000000580501006a000000ca060000090041f08b040b21617474656d707420746f2073756274726163742077697468206f766572666c6f770041a08c040b41617474656d707420746f206164642077697468206f766572666c6f7700000000617474656d707420746f206d756c7469706c792077697468206f766572666c6f770041f08c040bc52a617474656d707420746f2073686966742072696768742077697468206f766572666c6f772e2e000094060100020000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f636861722f6d6f642e72730000a00601006a000000a200000035000000a00601006a000000a200000021000000a00601006a000000a30000003300000063616c6c656420604f7074696f6e3a3a756e77726170282960206f6e206120604e6f6e65602076616c756500081f0100000000003a000000081f010000000000700701000100000070070100010000001500000000000000010000001600000070616e69636b65642061742027272c20a807010001000000a907010003000000696e646578206f7574206f6620626f756e64733a20746865206c656e20697320206275742074686520696e646578206973200000bc07010020000000dc0701001200000060000000170000000c0000000400000018000000190000001a000000202020202f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6275696c646572732e72730000200801006e0000002800000015000000200801006e0000002f00000021000000200801006e00000030000000120000002c0a280a282c292f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6e756d2e7273c70801006900000065000000140000003078303030313032303330343035303630373038303931303131313231333134313531363137313831393230323132323233323432353236323732383239333033313332333333343335333633373338333934303431343234333434343534363437343834393530353135323533353435353536353735383539363036313632363336343635363636373638363937303731373237333734373537363737373837393830383138323833383438353836383738383839393039313932393339343935393639373938393900001b00000004000000040000001c0000001d0000001e0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f666d742f6d6f642e7273000000240a0100690000001f0500000d000000240a010069000000230500000d000000240a0100690000004605000031000000240a0100690000004f05000031000000240a010069000000b3050000380000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d656d6368722e72730000e00a01006e000000410000001e000000e00a01006e0000004800000015000000e00a01006e0000004d0000001f000000e00a01006e0000005600000009000000e00a01006e0000005a00000005000000e00a01006e0000005a0000003d00000072616e676520737461727420696e64657820206f7574206f662072616e676520666f7220736c696365206f66206c656e67746820b00b010012000000c20b01002200000072616e676520656e6420696e64657820f40b010010000000c20b010022000000736c69636520696e64657820737461727473206174202062757420656e64732061742000140c0100160000002a0c01000d0000004b1c01006b00000095080000170000004b1c01006b000000a0080000180000004b1c01006b000000a9080000140000004b1c01006b000000f00b00000d000000736f7572636520736c696365206c656e67746820282920646f6573206e6f74206d617463682064657374696e6174696f6e20736c696365206c656e6774682028880c0100150000009d0c01002b000000c6080100010000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f697465722e72730000e00c01006a0000009100000026000000e00c01006a00000091000000110000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7472616974732e72736c0d01006c0000005d010000130000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f76616c69646174696f6e732e7273000000e80d01007100000011010000110000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f7374722f7061747465726e2e72730000006c0e01006d00000099010000470000006c0e01006d000000ac010000200000006c0e01006d000000ac010000110000006c0e01006d000000b0010000260000005b2e2e2e5d6279746520696e64657820206973206f7574206f6620626f756e6473206f6620600000210f01000b0000002c0f0100160000000008010001000000626567696e203c3d20656e642028203c3d2029207768656e20736c6963696e67206000005c0f01000e0000006a0f0100040000006e0f0100100000000008010001000000206973206e6f742061206368617220626f756e646172793b20697420697320696e7369646520202862797465732029206f662060210f01000b000000a00f010026000000c60f010008000000ce0f01000600000000080100010000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f7072696e7461626c652e727300fc0f0100730000000800000018000000fc0f0100730000000a0000001c000000fc0f0100730000001a00000036000000fc0f0100730000001e0000000900000000010305050606030706080809110a1c0b190c140d100e0d0f0410031212130916011705180219031a071c021d011f1620032b032c022d0b2e01300331023201a702a902aa04ab08fa02fb05fd04fe03ff09ad78798b8da23057588b8c901c1ddd0e0f4b4cfbfc2e2f3f5c5d5fb5e2848d8e9192a9b1babbc5c6c9cadee4e5ff00041112293134373a3b3d494a5d848e92a9b1b4babbc6cacecfe4e500040d0e11122931343a3b4546494a5e646584919b9dc9cecf0d112945495764658d91a9b4babbc5c9dfe4e5f00d11454964658084b2bcbebfd5d7f0f183858ba4a6bebfc5c7cecfdadb4898bdcdc6cecf494e4f57595e5f898e8fb1b6b7bfc1c6c7d71116175b5cf6f7feff800d6d71dedf0e0f1f6e6f1c1d5f7d7eaeafbbbcfa16171e1f46474e4f585a5c5e7e7fb5c5d4d5dcf0f1f572738f7475962f5f262e2fa7afb7bfc7cfd7df9a409798308f1fc0c1ceff4e4f5a5b07080f10272feeef6e6f373d3f42459091feff536775c8c9d0d1d8d9e7feff00205f2282df048244081b04061181ac0e80ab35280b80e003190801042f043404070301070607110a500f1207550703041c0a090308030703020303030c0405030b06010e15053a0311070605100757070207150d500443032d03010411060f0c3a041d255f206d046a2580c80582b0031a0682fd035907150b1709140c140c6a060a061a0659072b05460a2c040c040103310b2c041a060b0380ac060a06213f4c042d0374083c030f033c0738082b0582ff1118082f112d032010210f808c048297190b158894052f053b07020e180980b32d740c80d61a0c0580ff0580df0cee0d03848d033709815c1480b80880cb2a38030a06380846080c06740b1e035a0459098083181c0a16094c04808a06aba40c170431a10481da26070c050580a511816d1078282a064c04808d0480be031b030f0d0006010103010402080809020a050b020e041001110212051311140115021702190d1c051d0824016a036b02bc02d102d40cd509d602d702da01e005e102e802ee20f004f802f902fa02fb010c273b3e4e4f8f9e9e9f060709363d3e56f3d0d1041418363756577faaaeafbd35e01287898e9e040d0e11122931343a4546494a4e4f64655cb6b71b1c07080a0b141736393aa8a9d8d909379091a8070a3b3e66698f926f5feeef5a629a9b2728559da0a1a3a4a7a8adbabcc4060b0c151d3a3f4551a6a7cccda007191a22253e3fc5c604202325262833383a484a4c50535556585a5c5e606365666b73787d7f8aa4aaafb0c0d0aeaf79cc6e6f935e227b0503042d036603012f2e80821d03310f1c0424091e052b0544040e2a80aa06240424042808340b018090813709160a088098390363080930160521031b05014038044b052f040a070907402027040c0936033a051a07040c07504937330d33072e080a8126524e28082a561c1417094e041e0f430e19070a0648082709750b3f412a063b050a0651060105100305808b621e48080a80a65e22450b0a060d1339070a362c041080c03c64530c48090a46451b4808531d398107460a1d03474937030e080a0639070a81361980b7010f320d839b66750b80c48abc842f8fd18247a1b98239072a040260260a460a28051382b05b654b0439071140050b020e97f80884d62a09a2f7811f3103110408818c89046b050d03090710936080f60a73086e1746809a140c570919808781470385420f1585502b80d52d031a040281703a0501850080d7294c040a04028311444c3d80c23c06010455051b3402810e2c04640c560a80ae381d0d2c040907020e06809a83d8080d030d03740c59070c140c0438080a062808224e81540c15030305070919070709030d072980cb250a84062f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f756e69636f64652f756e69636f64655f646174612e7273000000f7150100760000004b00000028000000f7150100760000004f00000009000000f7150100760000004d00000009000000f7150100760000005400000011000000f7150100760000005600000011000000f7150100760000005700000016000000f7150100760000005800000009000000f715010076000000520000003e0000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f697465722f7472616974732f616363756d2e727300f0160100730000008d00000001000000c708010069000000ce010000050000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f697465722e7273841701006c00000085000000010000000003000083042000910560005d13a0001217a01e0c20e01eef2c202b2a30a02b6fa6602c02a8e02c1efbe02d00fea0359effe035fd016136010aa136240d6137ab0ee1382f182139301c6146f31ea14af06a614e4f6fa14e9dbc214f65d1e14f00da215000e0e15130e16153ece2a154d0e8e15420002e55f001bf5500700007002d0101010201020101480b30151001650702060202010423011e1b5b0b3a09090118040109010301052b03770f0120370101010408040103070a021d013a0101010204080109010a021a010202390104020402020303011e0203010b0239010405010204011402160601013a0101020104080107030a021e013b0101010c0109012801030139030503010407020b021d013a01020102010301050207020b021c02390201010204080109010a021d0148010401020301010801510102070c08620102090b064a021b0101010101370e01050102050b0124090166040106010202021902040310040d01020206010f01000300031d031d021e02400201070801020b09012d03770222017603040209010603db0202013a010107010101010208060a020130113f0430070101050128090c0220040202010338010102030101033a0802029803010d0107040106010302c63a01050001c32100038d016020000669020004010a200250020001030104011902050197021a120d012608190b2e0330010204020227014306020202020c0108012f01330101030202050201012a020801ee010201040100010010101000020001e201950500030102050428030401a50200040002990bb001360f3803310402024503240501083e010c0234090a0402015f03020101020601a0010308150239020101010116010e070305c308020301011701510102060101020101020102eb010204060201021b025508020101026a0101010206010165030204010500090102f5010a0201010401900402020401200a280602040801090602032e0d010200070106010152160207010201027a060301010201070101480203010101000200053b0700013f0451010002000101030405080802071e0494030037043208010e011605010f000701110207010201050007000400076d07006080f0004c61796f75744572726f722f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f616c6c6f632f6c61796f75742e72730000381b01006e0000000e010000180041c0b7040bad08617474656d707420746f206164642077697468206f766572666c6f77381b01006e000000100100003900000063616c6c65642060526573756c743a3a756e77726170282960206f6e20616e2060457272602076616c7565001f000000000000000100000020000000617373657274696f6e206661696c65643a206d6964203c3d2073656c662e6c656e28292f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f6d6f642e727300004b1c01006b000000ff050000090000000a000000081f010000000000c81c0100010000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f6275666665722e7273000000dc1c01006900000063000000090000002f55736572732f746d2f2e636172676f2f72656769737472792f7372632f6769746875622e636f6d2d316563633632393964623965633832332f696e6b5f656e762d332e302e302d7263352f7372632f656e67696e652f6f6e5f636861696e2f6578742e72730000581d0100660000006f010000140000004c6f6767696e6744697361626c6564556e6b6e6f776e4e6f7443616c6c61626c65436f64654e6f74466f756e644e6577436f6e74726163744e6f7446756e6465645472616e736665724661696c656442656c6f7753756273697374656e63655468726573686f6c644b65794e6f74466f756e6443616c6c6565526576657274656443616c6c6565547261707065644465636f646550616964556e70617961626c654d657373616765436f756c644e6f7452656164496e707574496e76616c696443616c6c506172616d6574657273496e76616c6964496e7374616e7469617465506172616d6574657273496e76616c6964506172616d6574657273556e6b6e6f776e43616c6c53656c6563746f72556e6b6e6f776e496e7374616e746961746553656c6563746f72556e6b6e6f776e53656c6563746f72003a200000081f010000000000081f0100020000002f55736572732f746d2f2e7275737475702f746f6f6c636861696e732f6e696768746c792d7838365f36342d6170706c652d64617277696e2f6c69622f727573746c69622f7372632f727573742f6c6962726172792f636f72652f7372632f736c6963652f696e6465782e72730000001c1f01006d000000e00000004c00000000000000617474656d707420746f2073756274726163742077697468206f766572666c6f774572726f7200000b000000010000000200000003000000040000000500000006000000070000000800000009"},"contract":{"name":"recursive","version":"0.1.0","authors":["[your_name] <[your_email]>"]},"spec":{"constructors":[{"args":[],"docs":[],"name":["new"],"selector":"0x9bae9d5e"}],"docs":[],"events":[],"messages":[{"args":[],"docs":[],"mutates":false,"name":["get"],"payable":false,"returnType":{"displayName":["MyEnum"],"type":1},"selector":"0x2f865bd9"},{"args":[{"name":"new","type":{"displayName":["MyEnum"],"type":1}}],"docs":[],"mutates":true,"name":["set"],"payable":false,"returnType":null,"selector":"0xe8c45eb6"}]},"storage":{"struct":{"fields":[{"layout":{"cell":{"key":"0x0000000000000000000000000000000000000000000000000000000000000000","ty":1}},"name":"value"}]}},"types":[{"def":{"variant":{"variants":[{"name":"A"},{"fields":[{"type":1,"typeName":"ink_prelude::boxed::Box"}],"name":"B"}]}},"path":["recursive","MyEnum"]}]} diff --git a/packages/api-contract/src/test/contracts/user/v0/withString.json b/packages/api-contract/src/test/contracts/user/v0/withString.json new file mode 100644 index 0000000..cf8d4d9 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v0/withString.json @@ -0,0 +1,777 @@ +{ + "metadataVersion": "0.1.0", + "source": { + "hash": "0xafcd0acf1a747cca1febe5bad81a6c0244a381ceb02635ab1069a1a396adda3f", + "language": "ink! 3.0.0-rc1", + "compiler": "rustc 1.49.0-nightly" + }, + "contract": { + "name": "erc20", + "version": "0.1.0", + "authors": [ + "[your_name] <[your_email]>" + ] + }, + "spec": { + "constructors": [ + { + "args": [ + { + "name": "initial_supply", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + }, + { + "name": "_name", + "type": { + "displayName": [ + "String" + ], + "type": 12 + } + }, + { + "name": "_symbol", + "type": { + "displayName": [ + "String" + ], + "type": 12 + } + } + ], + "docs": [], + "name": [ + "new" + ], + "selector": "0xd183512b" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 14 + } + }, + { + "docs": [], + "indexed": true, + "name": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 14 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "name": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "docs": [], + "indexed": true, + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "name": "Approval" + } + ], + "messages": [ + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "total_supply" + ], + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 1 + }, + "selector": "0xdcb736b5" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "name" + ], + "payable": false, + "returnType": { + "displayName": [ + "String" + ], + "type": 12 + }, + "selector": "0xa0a95494" + }, + { + "args": [], + "docs": [], + "mutates": false, + "name": [ + "symbol" + ], + "payable": false, + "returnType": { + "displayName": [ + "String" + ], + "type": 12 + }, + "selector": "0x57178a4a" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": [ + "balance_of" + ], + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 1 + }, + "selector": "0x56e929b2" + }, + { + "args": [ + { + "name": "owner", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + } + ], + "docs": [], + "mutates": false, + "name": [ + "allowance" + ], + "payable": false, + "returnType": { + "displayName": [ + "Balance" + ], + "type": 1 + }, + "selector": "0xf3cfff66" + }, + { + "args": [ + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "transfer" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 13 + }, + "selector": "0xfae3a09d" + }, + { + "args": [ + { + "name": "spender", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "approve" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 13 + }, + "selector": "0x03d0e114" + }, + { + "args": [ + { + "name": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 5 + } + }, + { + "name": "value", + "type": { + "displayName": [ + "Balance" + ], + "type": 1 + } + } + ], + "docs": [], + "mutates": true, + "name": [ + "transfer_from" + ], + "payable": false, + "returnType": { + "displayName": [ + "bool" + ], + "type": 13 + }, + "selector": "0xfcfb2ccd" + } + ] + }, + "storage": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0000000000000000000000000000000000000000000000000000000000000000", + "ty": 1 + } + }, + "name": "total_supply" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0100000000000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0200000000000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0200000001000000000000000000000000000000000000000000000000000000", + "ty": 4 + } + }, + "len": 4294967295, + "offset": "0x0300000000000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0200000001000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "balances" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0300000001000000000000000000000000000000000000000000000000000000", + "ty": 2 + } + }, + "name": "header" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "cell": { + "key": "0x0400000001000000000000000000000000000000000000000000000000000000", + "ty": 3 + } + }, + "name": "len" + }, + { + "layout": { + "array": { + "cellsPerElem": 1, + "layout": { + "cell": { + "key": "0x0400000002000000000000000000000000000000000000000000000000000000", + "ty": 10 + } + }, + "len": 4294967295, + "offset": "0x0500000001000000000000000000000000000000000000000000000000000000" + } + }, + "name": "elems" + } + ] + } + }, + "name": "entries" + } + ] + } + }, + "name": "keys" + }, + { + "layout": { + "hash": { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 9 + } + }, + "offset": "0x0400000002000000000000000000000000000000000000000000000000000000", + "strategy": { + "hasher": "Blake2x256", + "postfix": "", + "prefix": "0x696e6b20686173686d6170" + } + } + }, + "name": "values" + } + ] + } + }, + "name": "allowances" + }, + { + "layout": { + "cell": { + "key": "0x0500000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "name": "name" + }, + { + "layout": { + "cell": { + "key": "0x0600000002000000000000000000000000000000000000000000000000000000", + "ty": 12 + } + }, + "name": "symbol" + } + ] + } + }, + "types": [ + { + "def": { + "primitive": "u128" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "last_vacant", + "type": 3 + }, + { + "name": "len", + "type": 3 + }, + { + "name": "len_entries", + "type": 3 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "Header" + ] + }, + { + "def": { + "primitive": "u32" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 5 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "type": 6 + } + ] + } + }, + "path": [ + "ink_env", + "types", + "AccountId" + ] + }, + { + "def": { + "array": { + "len": 32, + "type": 7 + } + } + }, + { + "def": { + "primitive": "u8" + } + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "next", + "type": 3 + }, + { + "name": "prev", + "type": 3 + } + ] + } + }, + "path": [ + "ink_storage", + "collections", + "stash", + "VacantEntry" + ] + }, + { + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 1 + }, + { + "name": "key_index", + "type": 3 + } + ] + } + }, + "params": [ + 1 + ], + "path": [ + "ink_storage", + "collections", + "hashmap", + "ValueEntry" + ] + }, + { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8 + } + ], + "name": "Vacant" + }, + { + "fields": [ + { + "type": 11 + } + ], + "name": "Occupied" + } + ] + } + }, + "params": [ + 11 + ], + "path": [ + "ink_storage", + "collections", + "stash", + "Entry" + ] + }, + { + "def": { + "tuple": [ + 5, + 5 + ] + } + }, + { + "def": { + "primitive": "str" + } + }, + { + "def": { + "primitive": "bool" + } + }, + { + "def": { + "variant": { + "variants": [ + { + "name": "None" + }, + { + "fields": [ + { + "type": 5 + } + ], + "name": "Some" + } + ] + } + }, + "params": [ + 5 + ], + "path": [ + "Option" + ] + } + ] +} diff --git a/packages/api-contract/src/test/contracts/user/v3/ask.json b/packages/api-contract/src/test/contracts/user/v3/ask.json new file mode 100644 index 0000000..0d9141f --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v3/ask.json @@ -0,0 +1,550 @@ +{ + "source": { + "hash": "", + "language": "Ask! 0.4.0", + "compiler": "asc 0.19.23" + }, + "contract": { + "name": "", + "version": "", + "authors": [] + }, + "V3": { + "spec": { + "constructors": [ + { + "args": [ + { + "type": { + "type": 1, + "displayName": [ + "string" + ] + }, + "label": "name" + }, + { + "type": { + "type": 1, + "displayName": [ + "string" + ] + }, + "label": "symbol" + } + ], + "docs": [], + "label": "default", + "payable": false, + "selector": "0xed4b9d1b" + } + ], + "messages": [ + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "to" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "amount" + } + ], + "docs": [], + "label": "mint", + "selector": "0xcfdd9aa2" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "from" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "amount" + } + ], + "docs": [], + "label": "burn", + "selector": "0xb1efc17b" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 1, + "displayName": [ + "string" + ] + }, + "docs": [], + "label": "name", + "selector": "0x3adaf70d" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 1, + "displayName": [ + "string" + ] + }, + "docs": [], + "label": "symbol", + "selector": "0x9bd1933e" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 0, + "displayName": [ + "u8" + ] + }, + "docs": [], + "label": "decimal", + "selector": "0xcc3fec6d" + }, + { + "mutates": false, + "payable": false, + "args": [], + "returnType": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "docs": [], + "label": "totalSupply", + "selector": "0xcae60595" + }, + { + "mutates": false, + "payable": false, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "account" + } + ], + "returnType": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "docs": [], + "label": "balanceOf", + "selector": "0xf48def67" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "recipient" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "amount" + } + ], + "returnType": { + "type": 5, + "displayName": [ + "bool" + ] + }, + "docs": [], + "label": "transfer", + "selector": "0x84a15da1" + }, + { + "mutates": false, + "payable": false, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "owner" + }, + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "spender" + } + ], + "returnType": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "docs": [], + "label": "allowance", + "selector": "0x6a00165e" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "spender" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "amount" + } + ], + "returnType": { + "type": 5, + "displayName": [ + "bool" + ] + }, + "docs": [], + "label": "approve", + "selector": "0x681266a0" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "sender" + }, + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "recipient" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "amount" + } + ], + "returnType": { + "type": 5, + "displayName": [ + "bool" + ] + }, + "docs": [], + "label": "transferFrom", + "selector": "0x02a6e0d5" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "spender" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "addedValue" + } + ], + "returnType": { + "type": 5, + "displayName": [ + "bool" + ] + }, + "docs": [], + "label": "increaseAllowance", + "selector": "0xcb005356" + }, + { + "mutates": true, + "payable": true, + "args": [ + { + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "label": "spender" + }, + { + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "label": "subtractedValue" + } + ], + "returnType": { + "type": 5, + "displayName": [ + "bool" + ] + }, + "docs": [], + "label": "decreaseAllowance", + "selector": "0xe19fabb4" + } + ], + "events": [ + { + "id": 1, + "label": "Transfer", + "args": [ + { + "label": "from", + "indexed": false, + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "docs": [ + "" + ] + }, + { + "label": "to", + "indexed": false, + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "docs": [ + "" + ] + }, + { + "label": "value", + "indexed": false, + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "docs": [ + "" + ] + } + ], + "docs": [ + "" + ] + }, + { + "id": 2, + "label": "Approval", + "args": [ + { + "label": "owner", + "indexed": false, + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "docs": [ + "" + ] + }, + { + "label": "spender", + "indexed": false, + "type": { + "type": 3, + "displayName": [ + "AccountId" + ] + }, + "docs": [ + "" + ] + }, + { + "label": "value", + "indexed": false, + "type": { + "type": 4, + "displayName": [ + "u128" + ] + }, + "docs": [ + "" + ] + } + ], + "docs": [ + "" + ] + } + ], + "docs": [ + "" + ] + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 1, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 2, + "type": { + "def": { + "array": { + "len": 32, + "type": 0 + } + } + } + }, + { + "id": 3, + "type": { + "def": { + "composite": { + "fields": [ + { + "name": "inner", + "type": 2, + "typeName": "FixedArray32" + } + ] + }, + "path": [] + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 5, + "type": { + "def": { + "primitive": "bool" + } + } + } + ] + } +} diff --git a/packages/api-contract/src/test/contracts/user/v3/index.ts b/packages/api-contract/src/test/contracts/user/v3/index.ts new file mode 100644 index 0000000..a90320c --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v3/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as ask } from './ask.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/user/v4/events.contract.json b/packages/api-contract/src/test/contracts/user/v4/events.contract.json new file mode 100644 index 0000000..12c3f77 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v4/events.contract.json @@ -0,0 +1,2990 @@ +{ + "source": { + "hash": "0x4165bede6b0abd9016f77561a6ae14ff335af5437ec70efbb653776b18751515", + "language": "ink! 4.1.0", + "compiler": "rustc 1.70.0-nightly", + "wasm": "0x0061736d01000000014f0e60027f7f0060037f7f7f0060017f0060027f7f017f60037f7f7f017f60017f017f60047f7f7f7f017f60037e7e7f0060000060037f7e7e0060047f7f7f7f0060037f7f7e006000017f60027e7f0002f0010c057365616c310b6765745f73746f726167650006057365616c3005696e7075740000057365616c3007616464726573730000057365616c300d6465706f7369745f6576656e74000a057365616c320b7365745f73746f726167650006057365616c310d636c6561725f73746f726167650003057365616c3110636f6e7461696e735f73746f726167650003057365616c300b7365616c5f72657475726e0001057365616c300f686173685f626c616b65325f3235360001057365616c300663616c6c65720000057365616c301176616c75655f7472616e73666572726564000003656e76066d656d6f7279020102100354530400000000010101000000000102030b010100000000050002020000000000050c03030004010101050000000200000000000202020d07070002000000080008000100000100090000090100000001000004000608017f01418080040b071102066465706c6f7900480463616c6c004a0afdb201532b01017f037f2002200346047f200005200020036a200120036a2d00003a0000200341016a21030c010b0b0b6401017f024002400240024041012000280200220241066b200241054d1b41016b0e03010203000b20014100100d200120002d0004100d0f0b20014101100d20002001100e0f0b20014102100d200120002d0004100d0f0b20014103100d20014100100d0b2d01017f2000280208220220002802044904402000200241016a360208200028020020026a20013a00000f0b000b7500024002400240024002400240200028020041016b0e050102030405000b20014100100d200041086a2802002000410c6a280200200110100f0b20014101100d0f0b20014102100d0f0b20014103100d0f0b20014104100d0f0b20014105100d200041086a2802002000410c6a280200200110100bb70101047f230041306b2202240002402000280204220420002802082203490d0020002802002105200241003602082002200420036b22043602042002200320056a2205360200200128020020012802042002101020022001280208410d10112002280208220120022802044b0d0020022002280200200110122002410036022820022004360224200220053602202002200241206a1013200320022802286a22012003490d0020002001360208200241306a24000f0b000b2c01017f230041106b220324002003200136020c2003410c6a200210162002200020011011200341106a24000b4801027f024002402000280208220320026a22042003490d00200420002802044b0d00200420036b2002470d01200028020020036a20012002100b1a200020043602080f0b000b000bb00101077f230041206b2203240020004200370000200041186a22044200370000200041106a22054200370000200041086a220642003700000240200241214f0440200341186a22074200370300200341106a22084200370300200341086a22094200370300200342003703002001200220031008200420072903003700002005200829030037000020062009290300370000200020032903003700000c010b200020012002100b1a0b200341206a24000b0a0020012000412010110bb50101047f230041306b2202240002402000280204220420002802082203490d0020002802002105200241003602082002200420036b22043602042002200320056a220536020020012802002001280204200210102001280208200210132002280208220120022802044b0d0020022002280200200110122002410036022820022004360224200220053602202002200241206a1013200320022802286a22012003490d0020002001360208200241306a24000f0b000b7501037f230041206b220224002002200136020c02402000280204220320002802082201490d0020002802002104200241003602182002200320016b3602142002200120046a3602102002410c6a200241106a10162001200120022802186a22014b0d0020002001360208200241206a24000f0b000b550020002802002200413f4d044020012000410274100d0f0b200041ffff004d044020004102744101722001104d0f0b200041ffffffff034d044020004102744102722001101f0f0b20014103100d20002001101f0bc30101027f230041206b2203240020031018024041012003101945044020004108360204200041063a0000200041086a41013a00000c010b200320014201101a20032802002204410a460440200341186a200241186a290000370300200341106a200241106a290000370300200341086a200241086a29000037030020032002290000370300200020012003101b0c010b200041086a2003290204370200200041106a2003410c6a280200360200200041063a0000200020043602040b200341206a24000b6d01017f230041106b2201240020014180800136020c419083042001410c6a1009200041918304290000370001200041096a41998304290000370000200041116a41a18304290000370000200041186a41a883042900003700002000419083042d00003a0000200141106a24000b5d01017f230041206b220224002002200136020c20022000360208200242808001370214200241908304360210200241086a200241106a10472002280218220020022802144b0440000b200228021020001006200241206a2400417f470b5e02027f017e024002402002500440410d21030c010b411121032002200129032022027c22052002540d00410a21042001290310500d012005200141186a290300220258200250720d010b200020033a0004410621040b200020043602000be00202047f017e230041a0016b2203240002400240200129032042017c220750450440200341033a000020032007370308200341306a2204200241186a290000370300200341286a2205200241106a290000370300200341206a2206200241086a29000037030020032002290000370318200341e0006a2003101e20032d00600d01200341186a2202200341011031200320021022200341003a0038200341f9006a2004290300370000200341f1006a2005290300370000200341e9006a200629030037000020032003290318370061200341013a006020034198016a200341106a29030037030020034190016a200341086a2903003703002003200329030037038801200341386a200341e0006a20034188016a103220002007370308200041033a0000200120073703200c020b20004106360204200041063a0000200041086a41113a00000c010b200041063a0000200041033602040b200341a0016a24000b7d01017f230041306b220324002003200236020420032001360200200341fc8204360224200341f8820436022020032003360228200341086a200341206a101d20032d00084107460440000b20002003290308370300200041106a200341186a290300370300200041086a200341106a290300370300200341306a24000b870201047f230041206b220224002002428080013702042002419083043602002001280200200141046a2802002002105520012802082002105802402002280204220420022802082201490d00200228020021032002200420016b220436020020032001200120036a2203200210002101200420022802002205490d00024002400240410c20012001410c4f1b0e0401030300030b200041063a00000c010b2002200536021c200220033602182002200241186a102820022d00002201410647044020002002290001370001200041106a200241106a290000370000200041096a200241096a290000370000200020013a00000c010b200041073b01000b200241206a24000f0b000bae0201047f230041206b2202240020024280800137020420024190830436020041b48ca0e6012002101f20012002102002402002280204220420022802082201490d00200228020021032002200420016b220436020020032001200120036a2201200210002103200420022802002205490d002000027f02400240410c20032003410c4f1b0e0400030301030b20054120490d02200241086a200141096a290000370300200241106a200141116a290000370300200241176a200141186a290000370000200220012900013703004101210320012d00000c010b4100210341000b3a0001200020033a0000200020022903003700022000410a6a200241086a290300370000200041126a200241106a290300370000200041196a200241176a290000370000200241206a24000f0b000b2601017f230041106b220224002002200036020c20012002410c6a41041011200241106a24000b96010002400240024002400240024020002d000041016b0e050102030405000b20014100100d20002d00012001103a0f0b20014101100d20002f01022001104d0f0b20014102100d20002802042001101f0f0b20014103100d2000290308200110400f0b20014104100d2000290308200041106a290300200110420f0b20014105100d200041086a2802002000410c6a280200200110100b8e0201037f230041106b2201240020014280800137020420014190830436020041ebdcfef1072001101f2000280200200110132000280204200110130240027f2000280208220228020045044020012802082200200128020422024f0d022001280200220320006a41003a0000200041016a0c010b2001280208220020012802044f0d01200128020020006a41013a00002001200041016a360208200228020020011020200128020421022001280200210320012802080b220020024b0d002001200220006b220236020020032000200020036a20011000210020022001280200490d004101210202400240410c20002000410c4f1b0e0401020200020b410021020b200141106a240020020f0b000b910101037f230041106b2202240020024280800137020420024190830436020041b48ca0e6012002101f20002002102002402002280204220420022802082200490d0020022802002103200241003602082002200420006b3602042002200020036a3602002001200210132002280208220120022802044b0d00200320002002280200200110041a200241106a24000f0b000b5101017f230041106b2201240020014280800137020420014190830436020041b48ca0e6012001101f2000200110202001280208220020012802044b0440000b2001280200200010051a200141106a24000bcf0101037f230041106b2201240020014280800137020420014190830436020041ebdcfef1072001101f2000280200200110132000280204200110130240027f2000280208220228020045044020012802082200200128020422024f0d022001280200220320006a41003a0000200041016a0c010b2001280208220020012802044f0d01200128020020006a41013a00002001200041016a360208200228020020011020200128020421022001280200210320012802080b220020024b0d002003200010051a200141106a24000f0b000ba20101037f230041106b22022400200241086a2001102641012103024020022802080d00200128020422044120490d002000200228020c3602042001200441206b36020420012001280200220141206a360200200041086a2001290000370000200041106a200141086a290000370000200041186a200141106a290000370000200041206a200141186a290000370000410021030b20002003360200200241106a24000b4601017f20012802042202410449047f4101052001200241046b36020420012001280200220141046a3602002001280000210241000b210120002002360204200020013602000b9e0101017f230041d0006b22022400200241286a20011028024020022d00284106470440200241406b2001102920022802440440200241206a200241c8006a280200360200200241086a200241306a290300370300200241106a200241386a2903003703002002200229034037031820022002290328370300200020024128100b1a0c020b200041063a00000c010b200041063a00000b200241d0006a24000b8c0502047f037e230041f0006b22022400200241386a200110340240024002400240024002400240024020022d003841017145044020022d00390e06010203040507060b200041063a00000c070b20022001104b20022d000041017145044020022d00012101200041003a0000200020013a00010c070b200041063a00000c060b2001280204220341024f0440200041013a0000200128020022042f000021052001200341026b3602042001200441026a360200200020053b01020c060b200041063a00000c050b200241086a200110262002280208450440200228020c2101200041023a0000200020013602040c050b200041063a00000c040b200241106a210320012802042204410849047e4201052001200441086b36020420012001280200220141086a3602002001290000210642000b210720032006370308200320073703002002290310a745044020022903182106200041033a0000200020063703080c040b200041063a00000c030b200241206a210320012802042204411049047e4201052001200441106b36020420012001280200220141106a360200200141086a29000021062001290000210742000b21082003200737030820032008370300200341106a20063703002002290320a7450440200241306a290300210620022903282107200041043a000020002007370308200041106a20063703000c030b200041063a00000c020b200041063a00000c010b200241d0006a2001102920022802540440200241e8006a200241d8006a2802002201360200200241cc006a2001360000200220022903502206370360200041053a00002002200637004420002002290041370001200041086a200241c8006a2900003700000c010b200041063a00000b200241f0006a24000bfa0201067f230041306b22022400200241186a200110340240024020022d00184101710d00024020022d0019220341037122044103470440024002400240200441016b0e020102000b200341fc017141027621030c030b200220033a0025200241013a002420022001360220200241003b012c200241206a2002412c6a4102105c0d0320022f012c220341ff014d0d03200341027621030c020b200220033a0025200241013a0024200220013602202002410036022c200241206a2002412c6a4104105c0d02200228022c220341808004490d02200341027621030c010b200341044f0d01200241106a2001102620022802100d0120022802142203418080808004490d010b2003200128020422044d0440200241086a20034101103020022802082105200228020c200128020022062003100b21072001200420036b3602042001200320066a3602002000200336020820002007360204200020053602000c020b200041003602040c010b200041003602040b200241306a24000ba70101047f230041106b2201240020014280800137020420014190830436020041b4a5b3d1062001101f20002001101f02402001280204220020012802082202490d00200128020021032001200020026b220436020020032002200220036a2203200110002102200420012802002200490d004100210402400240410c20022002410c4f1b0e0400020201020b20004104490d01200328000021040b200141106a240020040f0b000b5502027f027e230041206b22002400200041106a22014200370300200042003703082000411036021c200041086a2000411c6a100a2001290300210220002903082103200041206a2400410541042002200384501b0b0b0020002001102d4101730b4601037f027f41202102034041002002450d011a200241016b210220012d0000210320002d00002104200041016a2100200141016a210120032004460d000b200420036b0b450bd70102047f027e230041206b2202240020022001360208200241848304360204200241f882043602002002428080013702142002419083043602102002200241106a105702402002280214220420022802182201490d00200228021021032002200420016b220436021020032001200120036a2201200241106a10002103200420022802102205490d00027e02400240410c20032003410c4f1b0e0400030301030b20054110490d0220012900002106200141086a2900000c010b42000b21072000200637030020002007370308200241206a24000f0b000b5b01017f230041106b220324002003418483043602082003200136020420032000360200027f4101200310210d001a41002002280200450d001a200320023602082003200136020420032000360200200310210b200341106a24000b900201047f230041106b2205240002402001450440410121020c010b200141004e0440200541086a2106027f2001417f73411f7622032001450d001a41888304280200210202402001200120036a41016b410020036b7122044d04404100200220046a22032002490d021a418c83042802002003490440200441ffff036a22032004490d02200341107640002202417f46200241ffff0371200247720d022002411074220220034180807c716a22032002490d02418c830420033602004100200220046a22032002490d031a0b41888304200336020020020c020b000b41000b21032006200136020420062003360200200528020822020d010b000b2000200236020420002001360200200541106a24000b3101017f230041106b220324002003200036020c2003410c6a2001105d20020440418483042001105d0b200341106a24000b7901017f230041d0016b22032400200341206a20004121100b1a200341c1006a20014121100b1a200341186a200241106a290300370300200341106a200241086a29030037030020032002290300370308200341f0006a200341086a41e000100b1a20034200370368200341e8006a1037200341d0016a24000b4201027f230041106b22012400200141086a2000103420012d0009210020012d00082102200141106a240041024101410220004101461b410020001b20024101711b0b3c01017f200020012802042202047f2001200241016b36020420012001280200220141016a36020020012d00000520010b3a000120002002453a00000b0f002001200041ff0171410047100d0b7501017f230041306b22022400200241086a2001101e2000027f20022d00084504402000410436020441010c010b20002002290009370001200041196a200241216a290000370000200041116a200241196a290000370000200041096a200241116a29000037000041000b3a0000200241306a24000bdf05020a7f017e230041d0016b22012400200141086a200041e800100b1a20014190830436027020014280800137027402400240024002402001290308500440200141f0006a41011015200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a41948004100f20012802a401220220002802002200490d0420012802a00121032001200220006b22023602a4012001200020036a22043602a0010c010b200141f0006a41041015200141a8016a2200200141f8006a280200360200200120012903703703a001200141a0016a220241b08004100f200141c8016a22032000280200360200200120012903a0013703c0012001200141106a2206360288012001411336028401200141bc800436028001200141c0016a20014180016a101420002003280200360200200120012903c0013703a0012001200141306a2207360298012001411136029401200141cf800436029001200220014190016a101420012802a401220220002802002200490d0320012802a0012103200141003602a8012001200220006b22043602a4012001200020036a22083602a00141e080044111200141a0016a22051010200141d0006a22092005103820012802a801220520012802a4014b0d03200141a0016a220a20012802a00120051012200141003602c801200120043602c401200120083602c001200a200141c0016a10132000200020012802c8016a22004b200020024b720d0320012903082001200220006b22023602a4012001200020036a22043602a0014200520d010b2002450d02200441003a0000200141013602a801200141286a200141a0016a22021039200141c9006a20021039200141106a200210200c010b2002450d01200441013a0000200141013602a8012006200141a0016a22021013200720021013200920021038200141e8006a2d00002002103a0b20012802a801220220012802a4014b0d002003200020012802a00120021003200141d0016a24000f0b000b200020002d0000410646044020014100100d0f0b20014101100d2000200110200b210020002d000045044020014100100d0f0b20014101100d200041016a200110130b2601017f230041106b22022400200220003a000f20012002410f6a41011011200241106a24000b9b0101027f230041106b22022400200241808001360204200241908304360200024002402001280200220341074704404190830441003a00002003410646044041022101200241023602084191830441003a00000c030b4191830441013a00002002410236020820012002100e0c010b4190830441013a000020024101360208200210440b2002280208220141818001490d00000b200020011043000b4801017f4190830441003a0000410321020240200141ff017141034604404191830441003a0000410221020c010b4192830420013a00004191830441013a00000b200020021043000b4701017f230041106b220124002001419083043602004190830441003a0000200142808081801037020420002001101f20012802082200418180014f0440000b410020001043000b4701017f230041106b220124002001419083043602004190830441003a0000200142808081801037020420002001103a20012802082200418180014f0440000b410020001043000bf70101047f230041106b2201240020014280800137020420014190830436020041002001101f02402001280204220420012802082202490d0020012802002103200141003602082001200420026b3602042001200220036a36020020002d002820011035200041296a2d00002001103520002d002a2001103a2000412b6a2d00002001103520002d002c200110352000412d6a2d00002001103520002d002e20011035200029032020011040200041106a290300200041186a290300200110412000290300200041086a290300200110422001280208220020012802044b0d00200320022001280200200010041a200141106a24000f0b000b2601017f230041106b22022400200220003703082001200241086a41081011200241106a24000b1b00200050044020024100100d0f0b20024101100d2001200210400b2a01017f230041106b2203240020032001370308200320003703002002200341101011200341106a24000b0d0020004190830420011007000b080020004101100d0b8b0101027f230041206b2202240020022001103441072103024020022d00004101710d00410621030240024020022d00010e020200010b200241086a2001102820022d000822034106460d0020002002290009370001200041106a200241186a290000370000200041096a200241116a2900003700000c010b410721030b200020033a0000200241206a24000b6201017f230041306b220224002002200136022c2002200036022820024280800137020c200241908304360208200241286a200241086a104720022802102200200228020c4b0440000b2002280208200010051a200241086a1018200241306a24000b1c0041f482042001105a20002802002001101f2000280204200110130baf0101027f230041e0006b2200240002400240102b41ff01714105470d0020004180800136023041908304200041306a100120002802302201418180014f0d00200141044f044041908304280200419bddf6f405460d020b410141011049000b000b200041106a4200370300200041086a4200370300200041276a42003700002000420037030020004200370320200041306a220120004130100b1a2001103f4190830441003b0100410041021043000b29002000027f20014504404190830441003a000041010c010b419083044181023b010041020b1043000bc25f02147f0b7e230041e0036b220024000240024002400240024002400240024002400240024002400240027f02400240027f02400240027f024002400240024002400240102b41ff01714105470d002000418080013602c00141908304200041c0016a100120002802c0012207418180014f0d000240024020074104490d002000419483043602c0032000200741046b22023602c403419083042802002208411876210320084110762105200841087621060240024002400240024002400240024002400240024002400240200841ff0171220841ea016b0e0a010d0d0d060d0d020d07000b02400240024002400240024002400240024002400240200841e2006b0e07010e171717170f000b02402008410f6b0e03121705000b0240200841c7006b0e0402171708000b0240200841ee006b0e040a171713000b0240200841cd016b0e03041714000b20084119460d0220084131460d052008413b460d0c2008418301460d06200841c101460d08200841ff0147200641ff017141a2014772200541ff017141fa0047200341df004772720d16410421070c170b200641ff017141840147200541ff017141134772200341fe0147720d15410021070c160b200641ff017141900147200541ff017141f5014772200341da004720024120497272200741246b412049720d14419a830433010021184196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041d483043602c0032000200741c4006b3602c403200041cd8304280000360238200041d0830428000036003b41bc8304290200211441b48304290200211b41cc83042d0000210441c48304290200211a200041c0016a200041c0036a104520002d00c001220d4107460d142018422086842115200041f7006a200041d0016a290000370000200041f0006a200041c9016a290000370300200020002900c101370368200020002802383602e0022000200028003b3600e302201b4208882118201ba72102410121070c150b200641ff0171413247200541ff017141a8014772200341b00147200241204972720d13200041b483043602c0032000200741246b3602c403419a830433010021144196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a104520002d00c0014107460d1320002802c403450d13200020002802c003220241016a3602c0034102210720022d0000220441024f0d13201442208684211520002903c001221b4208882118200041c8016a290300211420002903d001211a201ba721020c140b200641ff017122064103460d11200641e70147200541ff017141e5014772200341df0047200241204972720d12419b8304290000221442108821152014420888a7210341b38304310000211941a38304290000211641ab83042900002117419783042800002101419583042f00002109419483042d0000210b2014a72105410321070c130b200641ff017141e80047200541ff017141e2004772200341cd0047720d11200041c0016a200041c0036a102820002d00c00122054106460d1120003501c20120003301c60142208684211520002903d001211720002903c801211620002d00c1012103410521070c120b200641ff0171412847200541ff017141d60147722003411b47200241204972720d10200041b483043602c0032000200741246b3602c403419a830433010021184196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a102820002d00c00122024106460d1020003100c701211b20003300c501211c20003500c101211d20002903d001211a20002903c8012114200041386a200041c0036a1029200028023c450d102018422086842115201d201c201b42108684422086842118200041ea006a200041c3006a2d00003a0000200020002800393602e0022000200028003c3600e302200020002f00413b016820002d0038210420002d0040210d410621070c110b200641ff017141da0147200541ff0171413b4772200341b20147200241044972720d0f2000419883043602c0032000200741086b3602c403419483042802002101410721070c100b200641ff017141c00147200541ff017141e2004772200341fd0147720d0e200041c0016a200041c0036a102520002802c0010d0e41082107200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a721050c0f0b200641ff017141d90147200541ff017141ac0147722003411847720d0d200041c0016a200041c0036a102520002802c0010d0d200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410921070c0e0b200641ff017141cf0047200541ff017141094772200341910147720d0c200041c0016a200041c0036a102520002802c0010d0c200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410a21070c0d0b200641ff017141f10147200541ff0171412447722003418a0147720d0b200041c0016a200041c0036a102520002802c0010d0b200041c8016a290300221442108821152014420888a72103200041d0016a2903002116200041e0016a2903002119200041d8016a290300211720002802c40121012014a72105410b21070c0c0b200641ff0171419d0147200541ff017141c8004772200341d10147720d0a200041c0016a200041c0036a102720002d00c00122054106460d0a20002903e0012214420888211820003501c20120003301c60142208684211520002903d801211920002903d001211720002903c801211620002d00c10121032014a72102410c21070c0b0b200641ff017141cf0147200541ff017141b5014772200341114720024120497272200741246b411049720d09419c8304290200211641948304290200211441ac8304290200211941a483042902002117200041c483043602c0032000200741346b3602c4032014421088211541b48304290200221a42088821182014420888a721032014a7210541bc83042902002114201aa72102410e21070c0a0b200641ff017141c90147200541ff01714187014772200341fa0047200241204972720d08200041b483043602c0032000200741246b3602c403419a830433010021144196830435010041ac8304290200211941a483042902002117419c83042902002116419583042d00002103419483042d00002105200041c0016a200041c0036a102820002d00c00122024106460d08201442208684211520003500c10120003300c50120003100c7014210868442208684211820002903d001211a20002903c8012114410f21070c090b200641ff017141930147200541ff017141d90147720d072003411b460d050c070b200641ff017141e40147200541ff017141c8004772200341dc014720024120497272200741246b410849720d06419c8304290200211641948304290200211441ac8304290200211941a483042902002117200041bc83043602c00320002007412c6b3602c4032014421088211541b48304290200221a42088821182014420888a721032014a72105201aa72102411121070c070b200641ff0171418e0147200541ff017141354772200341bf0147720d05411221070c060b200641ff0171418c0147200541ff017141d0004772200341890147200241204972720d04200041b483043602c0032000200741246b3602c403419b8304290000221442108821152014420888a7210341b38304310000211941a38304290000211641ab83042900002117419783042800002101419583042f00002109419483042d0000210b2014a72105411321070c050b200641ff0171413647200541ff0171411447722003410d47200241084972720d032000419c83043602c00320002007410c6b3602c40341948304290200221642108821152016420888a721032016a72105411421070c040b200641ff017141dd0147200541ff0171419a014772200341a20147720d02411521070c030b200041c0016a200041c0036a102720002d00c00122054106460d0120002903e0012214420888211820003501c20120003301c60142208684211520002903d801211920002903d001211720002903c801211620002d00c10121032014a72102411021070c020b200541ff017141c00047200341d00147722002411049720d00200041a483043602c00341948304290200221742108821152017420888a72103419c830429020021162017a72105410d21070c010b410141011049000b200041206a200041f0006a290300370300200041276a200041f7006a290000370000200020002800e302360033200020002802e002360230200020002903683703182000428080013702c4012000419083043602c0014100200041c0016a101f20002802c401220a20002802c8012206490d0020002802c00121082000200a20066b220a3602c00120082006200620086a2208200041c0016a10002106200a20002802c001220c49410c20062006410c4f1b720d002000200c3602c401200020083602c001200041c0016a103341ff0171220f4102460d00200041c0016a103341ff017122064102460d00200041106a200041c0016a104b20002d00104101710d0020002d0011210c200041c0016a103341ff017122104102460d00200041c0016a103341ff017122114102460d00200041c0016a103341ff017122124102460d00200041c0016a103341ff017122134102460d0020002802c40122084108490d00200020002802c001220a41086a3602c00120084108460d00200a290000211d200020002802c001220e41016a3602c001200841096b210a4200211b02400240200e2d00000e020100020b200a4108490d01200020002802c001220e41086a3602c001200841116b210a200e290000211c4201211b0b200a4110490d002002ad42ff018320184208868421182005ad42ff01832003ad42ff01834208862015421086848421154108210320002802c0012205290000211e2000200541086a2900003703402000201e370338200020133a0066200020124101713a0065200020113a00642000201041017122053a00632000200c3a0062200020064101713a00612000200f3a00602000201d3703582000201c3703502000201b370348024002400240024002400240024002400240024002400240024002400240024002400240200741016b0e1500010214030405060708090a0b0c0d0e0f1f201021130b200041e8016a2014370300200041fc016a200028003336000020004189026a200041206a29030037000020004190026a200041276a290000370000200020183703e001200020163703c801200020153703c001200020043a00f8012000201a3703f001200020193703d801200020173703d001200020002802303600f9012000200d3a0080022000200029031837008102230041c0016b22012400200141086a200041c0016a220241d800100b1a200141f0006a200141d8006a290300370300200141e8006a200141d0006a2903003703002001200129034837036020014190016a200241186a29000037030020014188016a200241106a29000037030020014180016a200241086a29000037030020012002290000370378200141b0016a200141406b290300370300200141a8016a200141386a290300370300200141a0016a200141306a29030037030020012001290328370398012001200141e0006a410020012d00604106471b3602bc01200141f8006a20014198016a200141bc016a102f200141c0016a2400103e000b200020143703c802200020183703c0022000201a3703d002200020163703e802200020153703e002200020193703f802200020173703f002200041c0036a1018027f027f0240200241ff01714106470440200041c0016a200041c0026a101e20002d00c001450d0120004186036a220320002d00c30122013a0000200041a0036a2205200041d0016a2802002206360200200041a6036a20013a000020004190036a2006360200200020002f00c10122013b0184032000200041c8016a2903002214370398032000200041d4016a2902003703a8022000200041d9016a2900003700ad02200020013b01a403200020143703880320002802c4012101200020002900ad023700ad03200020002903a8023703a803200020032d00003a006a200020002f0184033b01682000200136006b200041f7006a2005280200360000200020002903980337006f20004180016a20002900ad02370000200020002903a80237007b200404404101200041e8006a200041e0026a102d0d031a0b200041e8006a200041c0036a102c04404102200041e8006a200041c0036a41848304102f450d031a0b200041d8036a20002900ad03370000200041cf036a20004190036a280200360000200020002f01a4033b01c003200020013600c30320002000290388033700c703200020002903a8033700d3032000200041a6036a2d00003a00c2030b024020044504402000200041c0026a4100200241ff01714106471b3602682000200041e8006a3602c8012000200041e0026a3602c4012000200041c0036a3602c001200041c0016a10240c010b2000428080013702c4012000419083043602c00141ebdcfef107200041c0016a2201101f200041c0036a20011013200041e0026a20011013027f200241ff01712202410646044020002802c801220120002802c40122064f0d1620002802c001220320016a41003a0000200141016a0c010b20002802c801220120002802c4014f0d1520002802c00120016a41013a00002000200141016a3602c801200041c0026a410020024106471b200041c0016a102020002802c401210620002802c001210320002802c8010b220120064b0d1420032001200120036a410010041a0b20004180016a200041d8036a290300370300200041f8006a200041d0036a290300370300200041f0006a200041c8036a29030037030020004190016a200041e8026a29030037030020004198016a200041f0026a290300370300200041a0016a200041f8026a290300370300200041b0016a200041c8026a290300370300200041b8016a200041d0026a290300370300200020002903c003370368200020002903e00237038801200020002903c0023703a801200041c8016a200041e8006a41d800100b1a200041a0026a20043a0000200042013703c001200041c0016a220110372001200041386a4130100b1a2001103f4106210241000c020b41040b210241010b2106200041cc016a200041f0006a280200360200200020002902683702c4010c250b200041cf016a2016370000200020153700c701200020193c00df01200020173700d701200020013600c301200020093b00c1012000200b3a00c001230041406a22012400200141306a200041c0016a220241186a290000370300200141286a200241106a290000370300200141206a200241086a290000370300200120022900003703182001200141186a36023c200141086a2001413c6a102e2001280208200141406b2400103d000b200020163703c801200020153703c001200020173703d001230041206b22022400200241106a200041c0016a220141086a290300370300200241186a200141106a2903003703002002200041386a36020020022001290300370308200041e8006a2204200241086a101e200241206a2400200141017220044121100b1a200041003a00c001230041106b22022400200241808001360204200241908304360200024020012d00004504404190830441003a000020024101360208200141016a200210390c010b4190830441013a000020024101360208200210440b20022802082201418180014f0440000b0c260b200020143703b002200020183703a8022000201a3703b802200020163703c802200020153703c002200020193703d802200020173703d002200041c0016a200041a8026a103620002d00c0010d1120004186036a220120002d00c30122023a0000200041c8036a2204200041d0016a2802002203360200200041a6036a220520023a0000200041a0036a22062003360200200020002f00c10122023b0184032000200041c8016a29030022143703c0032000200041d4016a2902003703682000200041d9016a220329000037006d200020023b01a403200020143703980320002802c40121022000200029006d37008d032000200029036837038803200020012d00003a00e202200020002f0184033b01e002200020023600e302200041ef026a2004280200360000200020002903c0033700e702200041f8026a200029006d370000200020002903683700f302200041c0036a22011018200041e0026a2001102c450d102000200041a8026a3602c001200041e0026a200041c0036a200041c0016a102f0d104102210241010c130b2001102a103d000b20002016370370200020153703682000201937038001200020173703782001102a2102200041c0016a2204101841012103027f4101200220041019450d001a41022001200041e8006a10190d001a200020013602c0032000200041e8006a3602c4032000428080013702c4012000419083043602c001200041c0036a200041c0016a104720002802c801220120002802c4014b0d0c4100210320002802c00122022001200120026a410010041a200041c0016a220110182001200041386a4130100b1a2001103f41030b210120032001103c000b200041cc016a2016370200200020153702c401200020193702dc01200020173702d401200020013602c001230041206b22012400200041c0016a2202280200200141186a2002411c6a290000370300200141106a200241146a290000370300200141086a2002410c6a2900003703002001200229000437030020011019200141206a2400103e000b2001102a200041c0016a22031018410121024101210620031019450d1d200020163703c801200020153703c001200020193703d801200020173703d0012001200041c0016a10190d100c1d0b2000201637037020002015370368200020193703800120002017370378200041c0016a22041018410021022004200041e8006a102c450440200041d8016a220420004180016a2203290300370300200041d0016a2205200041f8006a2206290300370300200041c8016a2207200041f0006a2208290300370300200020002903683703c001410121022001200041c0016a10190d110b41010c110b200020163703c801200020153703c001200020183703e001200020193703d801200020173703d001200041e8006a210341002106230041306b22042400200041c0016a22012802202105200128021c200441106a200141106a290300370300200441086a200141086a290300370300200420012903003703002004428080013702242004419083043602204182c7b4d979200441206a2202101f200420021020200520021010024002402004280224220220042802282205490d00200428022021072004200220056b220236022020072005200520076a2208200441206a10002105200220042802202209490d004100210702400240410c20052005410c4f1b0e0400020201020b2004200936021c20042008360218200441206a200441186a102920042802242207450d0120042802282102200428022021060b200320023602082003200736020420032006360200200441306a24000c010b000b200041cc016a200041f0006a280200360200200020002903683702c401200041003602c001230041106b22022400200241808001360204200241908304360200024041918304027f20012802004504404190830441003a00004100200141086a2802002204450d011a4191830441013a00002002410236020802402001410c6a2802002201413f4d04404192830420014102743a0000200241033602080c010b200141ffff004d0440200220014102744101723b010e20022002410e6a410210110c010b200141ffffffff034d044020014102744102722002101f0c010b4192830441033a00002002410336020820012002101f0b20022004200110112002280208220141818001490d02000b4190830441013a000041010b3a000041022101200241023602080b0c1f0b2000201637037020002015370368200041c0016a41848304200041e8006a101c20002d00c00122024106462201047f410405200041e2026a20002d00c3013a0000200041c8036a200041d0016a280200360200200020002f00c1013b01e002200020002903c8013703c00320002802d401210520002802c4010b2104200041d0016a200041c8036a280200360200200020002f01e0023b00c1012000200041e2026a2d00003a00c301200020043602c401200020002903c0033703c8010c1c0b200020163703c801200020153703c001200020193703d801200020173703d001200020143703c803200020183703c0032000200041c0016a3602c002200041e8006a200041c0026a200041c0036a101c20002d006822024106462201047f410405200041aa036a20002d006b3a0000200041e8026a200041f8006a280200360200200020002f00693b01a803200020002903703703e002200028027c2105200028026c0b2104200041d0016a200041e8026a280200360200200020002f01a8033b00c1012000200041aa036a2d00003a00c301200020043602c401200020002903e0023703c8010c1b0b200020143703c802200020183703c0022000201a3703d002200020163703c803200020153703c003200020193703d803200020173703d003200041c0016a200041c0026a103620002d00c0010d0e200041c0026a22011023200041c0036a20014101104c20004181016a200041d8036a290300370000200041f9006a200041d0036a290300370000200041f1006a200041c8036a290300370000200020002903c003370069200041013a0068200041003a00c001200041f0026a200041d0026a290300370300200041e8026a200041c8026a290300370300200020002903c0023703e002200041e8006a200041c0016a200041e0026a10320c0f0b200041c0016a2201101820004101200110192204047f200041d0016a2016370300200041d8016a2017370300200020153703c8012000418080043602c00120004280800137026c200041908304360268419cefe1ea05200041e8006a2201101f200041c8016a20011020200028026c220320002802702201490d0420002802682102200041003602702000200320016b36026c2000200120026a3602682019422088a72018a7200041e8006a101020002802702203200028026c4b0d04200220012000280268200310041a200041c0016a2201200041386a4130100b1a2001103f410a0541080b3602c001200041013a00c4012004410173230041106b2201240020014180800136020420014190830436020002400240200041c0016a22022802002203410b4704404190830441003a00002003410a46044041022102200141023602084191830441003a00000c030b4191830441013a00002001410236020820022001100c0c010b4190830441013a000020014101360208200110440b2001280208220241818001490d00000b20021043000b200041c0016a22011018410121024200211a4201211441062106410120011019450d15200c4101460440410921030c160b200041013a00622000428080013702c4012000419083043602c0014100200041c0016a101f20002802c401220420002802c8012201490d0220002802c0012102200041003602c8012000200420016b3602c4012000200120026a3602c0014101200041c0016a2204103a20052004103520002802c801220420002802c4014b0d022002200120002802c001200410041a200041c0016a200041386a2018101a20002802c0012203410a460440201d42017c2214500d03201420187c221c2014540d032014201c5404400340200020163703c801200020153703c001200020193703d801200020173703d001200041e8006a200041386a200041c0016a101b20002d00684106460d04201842017d221850450d000b0b201c500d0341002102200041003a0062200041c0016a2201200041386a4130100b1a201442807e83211a201c42017d21162001103f410321060c160b20002802cc01210220002902c40121140c140b200041033a006820002015370370200041c0016a200041e8006a101e4101210420002d00c001450440410421070c130b200041d0016a2015370300200041033a00c8012000418080043602c00120004280800137026c200041908304360268419cefe1ea05200041e8006a2201101f200041c8016a20011020200028026c220320002802702201490d01200028026821022000200320016b220636026820022001200120026a2205200041e8006a10002101200620002802682202490d010240410c20012001410c4f1b0e0400020212020b200020023602c403200020053602c003200041e8006a200041c0036a1029200028026c2206450d01410021042000280268024020002802702205450440410021050c010b200541076b22014100200120054d1b210a200641036a417c7120066b220d417f46210c41002102034002400240200220066a2d00002208411874411875220b41004e0440200c200d20026b410371720d0102402002200a4f0d000340200220066a220141046a280200200128020072418081828478710d012002200241086a22024b0d082002200a490d000b0b41002104200220054f0d0420022005200220054b1b21010340200220066a2c00004100480d032001200241016a2202470d000b0c040b4106210741012104411021010240024002400240200841f180046a2d000041026b0e030002011a0b200241016a220220054f0d19200220066a2c000041bf7f4c0d020c190b200241016a220920054f0d18200620096a2c000021090240024002400240200841f0016b0e050100000002000b200b410f6a41ff017141024b0d1b20094140480d020c1b0b200941f0006a41ff01714130490d010c1a0b2009418f7f4a0d190b200241026a220820054f0d18200620086a2c000041bf7f4a0d18200241036a220220054f0d18200220066a2c000041bf7f4c0d010c180b200241016a220920054f0d17200620096a2c00002109024002400240200841e001470440200841ed01460d01200b411f6a41ff0171410c490d02200b417e71416e470d1b20094140480d030c1b0b200941607141a07f460d020c1a0b200941a07f480d010c190b200941bf7f4a0d180b200241026a220220054f0d17200220066a2c000041bf7f4a0d170b200241016a21020c010b200241016a21020b20022005490d000b410021040b2101410a21070c120b2000280278210220002903702114200028026c21030c120b000b230041106b22012400200141848304102e200129030021142000200141086a29030037030820002014370300200141106a24002000290300200041086a290300230041106b220124002001419083043602004190830441003a00002001428080818010370204200110420c150b230041306b2201240020014180800136022c419083042001412c6a1002200141106a220441998304290000370300200141186a220341a183042900003703002001411f6a220541a88304290000370000200141918304290000370308419083042d000021062001412041001030200128020021072001280204220220063a000020022001290308370001200241096a2004290300370000200241116a2003290300370000200241186a2005290000370000200041e8006a2204410c6a4120360200200441086a200236020020042007360204200441053a0000200141306a2400200041d0016a200041f8006a290300370300200041c8016a200041f0006a290300370300200020002903683703c001230041106b220124002001418080013602042001419083043602000240200041c0016a22022d00004106470440200141013602084190830441003a00002002200110200c010b4190830441013a000020014101360208200110440b0c140b2000200041e8006a22043602c8012000200041c0036a3602c4012000200041e0026a22073602c0012000200041a8026a2201360268200041c0016a22081024200720014100104c20011023200041c0026a2207200141001031200120071022200041f0006a200029039803370300200041f8006a2006280200360200200041fc006a20002903880337020020004181016a200029008d03370000200020052d00003a006b200020002f01a4033b00692000200236026c200041013a00682003200041d8026a290300370000200041d1016a200041d0026a290300370000200041c9016a200041c8026a290300370000200020002903c0023700c101200041013a00c001200041b8036a200041b8026a290300370300200041b0036a200041b0026a290300370300200020002903a8023703a80320042008200041a8036a10320c010b200041b0036a200041d0016a2802003602002000200041c8016a2903003703a803410120002802c40122024106470d011a0b200041c0016a2201200041386a4130100b1a2001103f4106210241000b2106200041cc016a200041b0036a280200360200200020002903a8033702c4010c0e0b200020153703c001200020193703d801200020173703d001200020163703c8012001200041c0016a220110462001200041386a4130100b1a2001103f41032106410021020c0c0b200420032903003703002005200629030037030020072008290300370300200020002903683703c0012001200041c0016a220110462001200041386a4130100b1a2001103f4103210241000b2002103c000b200041f0006a200041d0016a2802003602002000200041c8016a290300370368410120002802c40122064106470d011a0b200041c0016a2201200041386a4130100b1a2001103f4106210641000b200041cc016a200041f0006a280200360200200020002903683702c401200020063602c001200041c0016a103b000b230041106b220124002001419083043602004190830441003a00002001428080818010370204201b201c200110410c090b200041cf016a2016370000200020153700c701200020193c00df01200020173700d701200020013600c301200020093b00c1012000200b3a00c001200041e8006a200041386a200041c0016a101720002d00684106462201450440200041c0016a2202200041386a4130100b1a2002103f0b200041d0016a200041f8006a290300370300200041c8016a200041f0006a290300370300200020002903683703c001230041106b220224002002418080013602042002419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200241023602084191830441003a00002004200210200c020b4191830441013a000020024102360208200441046a2002100c0c010b4190830441013a000020024101360208200210440b0c0a0b230041406a22012400200141206a22021018200141086a200041386a22042002101720012d00084106460440000b200141406b2400200041c0016a220120044130100b1a2001103f410041001049000b41062107411021010b200020053602cc01200020063602c801200020013602c401200020073602c001230041106b220124002001418080013602042001419083043602000240200041c0016a22022802002203410b4704404190830441003a00002003410a460440200141023602084191830441003a0000200241086a2802002002410c6a280200200110100c020b4191830441013a00002001410236020820022001100c0c010b4190830441013a000020014101360208200110440b20012802082201418180014f0440000b200420011043000b200041003a0062201442807e83211a2002ad2117410121020b200020163703e001200041033a00d801200020173703d001200020033602c401200020063a00c0012000201a201442ff0183843703c801230041106b220124002001418080013602042001419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200141023602084191830441003a0000200420011020200441186a200110200c020b4191830441013a000020014102360208200441046a2001100c0c010b4190830441013a000020014101360208200110440b20012802082201418180014f0440000b200220011043000b20022006103c000b200020023602c0012006200041c0016a103b000b200020053602d401200020023a00c001230041106b220224002002418080013602042002419083043602000240200041c0016a22042d0000220341074704404190830441003a000020034106470440200241023602084191830441003a00002004200210200c020b4191830441013a000020024102360208200441046a2002100e0c010b4190830441013a000020024101360208200210440b0c020b20012802082201418180014f0440000b0b410020011043000b20022802082202418180014f0440000b200120021043000b3801017f230041106b22022400200241086a2001103420022d00092101200020022d00084101713a0000200020013a0001200241106a24000b3101017f230041106b220324002003200036020c2003410c6a2001104e20020440418483042001104e0b200341106a24000b2601017f230041106b22022400200220003b010e20012002410e6a41021011200241106a24000bc30502067f057e23004190016b22022400200241106a20002001104f02402002290310a74101460440200241206a290300210920022002290318220b3703282002200937033020022000102e20022903002208200241086a290300220c84500d012002200842017d220a3703382002200c2008200a56ad7c42017d2208370340200a200b8520082009858450450440200220003602602002200241386a360264200241fc820436028401200241f88204360280012002200241e0006a36028801200241e8006a20024180016a101d20022d006822034107460d02200241d7006a2204200241f8006a2205290000370000200241d0006a2206200241f1006a22072900003703002002200229006937034820034106460d02200520042900003700002007200629030037000020022002290348370069200220033a006820022000360280012002200241286a36028401200241fc820436024c200241f88204360248200220024180016a2203360250200241c8006a2204200241e8006a220510502002200036028001200220053602840120024180830436024c200241f882043602482002200336025020042002290328200241306a29030010510b20022000360280012002200241386a36028401200241fc820436024c200241f88204360248200220024180016a36025020024280800137026c200241908304360268200241c8006a200241e8006a105220022802702203200228026c4b0d012002280268200310051a2002200136028401200220003602800120024180830436024c200241f88204360248200220024180016a36025020024280800137026c200241908304360268200241c8006a200241e8006a105320022802702201200228026c4b0d012002280268200110051a2002200036027020024184830436026c200241f88204360268200241e8006a2002290338200241406b29030010540b20024190016a24000f0b000be40102037f037e230041206b220324002003200236020c2003200136020820034280800137021420034190830436021041f8820441808304200341106a22011055200341086a2001105602402003280214220420032802182201490d00200328021021022003200420016b220436021020022001200120026a2201200341106a10002102200420032802102205490d0002400240410c20022002410c4f1b0e0400020201020b20054110490d01200141086a290000210720012900002108420121060b2000200837030820002006370300200041106a2007370300200341206a24000f0b000b870101037f230041106b2202240020024280800137020420024190830436020020002002105202402002280204220420022802082200490d0020022802002103200241003602082002200420006b3602042002200020036a3602002001200210202002280208220120022802044b0d00200320002002280200200110041a200241106a24000f0b000b890101037f230041106b2203240020034280800137020420034190830436020020002003105302402003280204220420032802082200490d0020032802002105200341003602082003200420006b3602042003200020056a36020020012002200310422003280208220420032802044b0d00200520002003280200200410041a200341106a24000f0b000b1c002000280200200041046a280200200110592000280208200110580b1c002000280200200041046a280200200110592000280208200110560b890101037f230041106b2203240020034280800137020420034190830436020020002003105702402003280204220420032802082200490d0020032802002105200341003602082003200420006b3602042003200020056a36020020012002200310422003280208220420032802044b0d00200520002003280200200410041a200341106a24000f0b000b2f01017f230041106b2203240020002002105a2003200128020036020c20022003410c6a41041011200341106a24000b140020002802002001105b2000280204200110200b1c002000280200200041046a2802002001105920002802082001105b0b210020002802002001105b20002802042200290300200041086a290300200110420b0e0020002002105a20012002105a0b0b0020002802002001101f0b2100200028020045044020014100100d0f0b20014101100d2000280200200110130b8f0101017f20002d00042103200041003a0004027f0240200345044041012000280200220028020422032002490d021a2001200028020022012002100b1a0c010b2001200041056a2d00003a00004101200028020022002802042203200241016b2202490d011a200141016a200028020022012002100b1a0b2000200320026b3602042000200120026a36020041000b0b950202037f047e230041d0006b22022400200241106a20002001104f024002402002290310a745044020022000102e2002290300220542017c22072005542203200241086a29030022062003ad7c220820065420052007581b0d022002200036023020024184830436022c200241f88204360228200241286a2007200810540c010b200241206a2903002106200229031821050b20022005370328200220063703302002200136023c20022000360238200241808304360244200241f882043602402002200241386a2203360248200241406b2204200520061051200220003602382002200241286a36023c200241fc8204360244200241f8820436024020022003360248200420011050200241d0006a24000f0b000b0bc8020300418080040bf1019c77585d4b65793a3a5472616e736665720000008801010000000000040001004b65793a3a417070726f76616c0000008801010000000000200001004b65793a3a417070726f76616c3a3a66726f6d4b65793a3a417070726f76616c3a3a746f4b65793a3a417070726f76616c3a3a696401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010041b382040b330202020202020202020202020202020202020202020202020202020202020303030303030303030303030303030304040404040041f482040b0d75b15d5d40a232ca0200000001", + "build_info": { + "build_mode": "Release", + "cargo_contract_version": "2.1.0", + "rust_toolchain": "nightly-x86_64-unknown-linux-gnu", + "wasm_opt_settings": { + "keep_debug_symbols": false, + "optimization_passes": "Z" + } + } + }, + "contract": { + "name": "collection_demo", + "version": "0.1.0", + "authors": [ + "[your_name] <[your_email]>" + ] + }, + "spec": { + "constructors": [ + { + "args": [], + "docs": [ + "Instantiate new RMRK contract" + ], + "label": "new", + "payable": false, + "returnType": { + "displayName": [ + "ink_primitives", + "ConstructorResult" + ], + "type": 9 + }, + "selector": "0x9bae9d5e" + } + ], + "docs": [], + "events": [ + { + "args": [ + { + "docs": [], + "indexed": false, + "label": "from", + "type": { + "displayName": [ + "Option" + ], + "type": 15 + } + }, + { + "docs": [], + "indexed": false, + "label": "to", + "type": { + "displayName": [ + "Option" + ], + "type": 15 + } + }, + { + "docs": [], + "indexed": false, + "label": "id", + "type": { + "displayName": [ + "Id" + ], + "type": 13 + } + } + ], + "docs": [], + "label": "Transfer" + }, + { + "args": [ + { + "docs": [], + "indexed": true, + "label": "from", + "type": { + "displayName": [ + "AccountId" + ], + "type": 0 + } + }, + { + "docs": [], + "indexed": true, + "label": "to", + "type": { + "displayName": [ + "AccountId" + ], + "type": 0 + } + }, + { + "docs": [], + "indexed": true, + "label": "id", + "type": { + "displayName": [ + "Option" + ], + "type": 17 + } + }, + { + "docs": [], + "indexed": false, + "label": "approved", + "type": { + "displayName": [ + "bool" + ], + "type": 19 + } + } + ], + "docs": [ + " Event emitted when a token approve occurs." + ], + "label": "Approval" + } + ], + "lang_error": { + "displayName": [ + "ink", + "LangError" + ], + "type": 10 + }, + "messages": [ + { + "args": [], + "docs": [], + "label": "mint", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 9 + }, + "selector": "0xcfdd9aa2" + }, + { + "args": [], + "docs": [ + " Returns current NFT total supply." + ], + "label": "PSP34::total_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 11 + }, + "selector": "0x628413fe" + }, + { + "args": [], + "docs": [ + " Returns the collection `Id` of the NFT token.", + "", + " This can represents the relationship between tokens/contracts/pallets." + ], + "label": "PSP34::collection_id", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 12 + }, + "selector": "0xffa27a5f" + }, + { + "args": [ + { + "label": "id", + "type": { + "displayName": [ + "psp34_external", + "OwnerOfInput1" + ], + "type": 13 + } + } + ], + "docs": [ + " Returns the owner of the token if any." + ], + "label": "PSP34::owner_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 14 + }, + "selector": "0x1168624d" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "psp34_external", + "BalanceOfInput1" + ], + "type": 0 + } + } + ], + "docs": [ + " Returns the balance of the owner.", + "", + " This represents the amount of unique tokens the owner has." + ], + "label": "PSP34::balance_of", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0xcde7e55f" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "psp34_external", + "AllowanceInput1" + ], + "type": 0 + } + }, + { + "label": "operator", + "type": { + "displayName": [ + "psp34_external", + "AllowanceInput2" + ], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": [ + "psp34_external", + "AllowanceInput3" + ], + "type": 17 + } + } + ], + "docs": [ + " Returns `true` if the operator is approved by the owner to withdraw `id` token.", + " If `id` is `None`, returns `true` if the operator is approved to withdraw all owner's tokens." + ], + "label": "PSP34::allowance", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 18 + }, + "selector": "0x4790f55a" + }, + { + "args": [ + { + "label": "operator", + "type": { + "displayName": [ + "psp34_external", + "ApproveInput1" + ], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": [ + "psp34_external", + "ApproveInput2" + ], + "type": 17 + } + }, + { + "label": "approved", + "type": { + "displayName": [ + "psp34_external", + "ApproveInput3" + ], + "type": 19 + } + } + ], + "docs": [ + " Approves `operator` to withdraw the `id` token from the caller's account.", + " If `id` is `None` approves or disapproves the operator for all tokens of the caller.", + "", + " On success a `Approval` event is emitted.", + "", + " # Errors", + "", + " Returns `SelfApprove` error if it is self approve.", + "", + " Returns `NotApproved` error if caller is not owner of `id`." + ], + "label": "PSP34::approve", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 20 + }, + "selector": "0x1932a8b0" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "psp34_external", + "TransferInput1" + ], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": [ + "psp34_external", + "TransferInput2" + ], + "type": 13 + } + }, + { + "label": "data", + "type": { + "displayName": [ + "psp34_external", + "TransferInput3" + ], + "type": 8 + } + } + ], + "docs": [ + " Transfer approved or owned token from caller.", + "", + " On success a `Transfer` event is emitted.", + "", + " # Errors", + "", + " Returns `TokenNotExists` error if `id` does not exist.", + "", + " Returns `NotApproved` error if `from` doesn't have allowance for transferring.", + "", + " Returns `SafeTransferCheckFailed` error if `to` doesn't accept transfer." + ], + "label": "PSP34::transfer", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 20 + }, + "selector": "0x3128d61b" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": [ + "accesscontrol_external", + "GetRoleAdminInput1" + ], + "type": 5 + } + } + ], + "docs": [ + " Returns the admin role that controls `role`. See `grant_role` and `revoke_role`." + ], + "label": "AccessControl::get_role_admin", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 16 + }, + "selector": "0x83da3bb2" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": [ + "accesscontrol_external", + "RevokeRoleInput1" + ], + "type": 5 + } + }, + { + "label": "account", + "type": { + "displayName": [ + "accesscontrol_external", + "RevokeRoleInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Revokes `role` from `account`.", + "", + " On success a `RoleRevoked` event is emitted.", + "", + " # Errors", + "", + " Returns with `MissingRole` error if caller can't grant the `role` or if `account` doesn't have `role`." + ], + "label": "AccessControl::revoke_role", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 23 + }, + "selector": "0x6e4f0991" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": [ + "accesscontrol_external", + "GrantRoleInput1" + ], + "type": 5 + } + }, + { + "label": "account", + "type": { + "displayName": [ + "accesscontrol_external", + "GrantRoleInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Grants `role` to `account`.", + "", + " On success a `RoleGranted` event is emitted.", + "", + " # Errors", + "", + " Returns with `MissingRole` error if caller can't grant the role.", + " Returns with `RoleRedundant` error `account` has `role`." + ], + "label": "AccessControl::grant_role", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 23 + }, + "selector": "0x4ac062fd" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": [ + "accesscontrol_external", + "HasRoleInput1" + ], + "type": 5 + } + }, + { + "label": "address", + "type": { + "displayName": [ + "accesscontrol_external", + "HasRoleInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Returns `true` if `account` has been granted `role`." + ], + "label": "AccessControl::has_role", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 18 + }, + "selector": "0xc1d9ac18" + }, + { + "args": [ + { + "label": "role", + "type": { + "displayName": [ + "accesscontrol_external", + "RenounceRoleInput1" + ], + "type": 5 + } + }, + { + "label": "account", + "type": { + "displayName": [ + "accesscontrol_external", + "RenounceRoleInput2" + ], + "type": 0 + } + } + ], + "docs": [ + " Revokes `role` from the calling account.", + " Roles are often managed via `grant_role` and `revoke_role`: this function's", + " purpose is to provide a mechanism for accounts to lose their privileges", + " if they are compromised (such as when a trusted device is misplaced).", + "", + " On success a `RoleRevoked` event is emitted.", + "", + " # Errors", + "", + " Returns with `InvalidCaller` error if caller is not `account`.", + " Returns with `MissingRole` error if `account` doesn't have `role`." + ], + "label": "AccessControl::renounce_role", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 23 + }, + "selector": "0xeaf1248a" + }, + { + "args": [ + { + "label": "id", + "type": { + "displayName": [ + "psp34metadata_external", + "GetAttributeInput1" + ], + "type": 13 + } + }, + { + "label": "key", + "type": { + "displayName": [ + "psp34metadata_external", + "GetAttributeInput2" + ], + "type": 8 + } + } + ], + "docs": [ + " Returns the attribute of `id` for the given `key`.", + "", + " If `id` is a collection id of the token, it returns attributes for collection." + ], + "label": "PSP34Metadata::get_attribute", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 26 + }, + "selector": "0xf19d48d1" + }, + { + "args": [ + { + "label": "owner", + "type": { + "displayName": [ + "psp34enumerable_external", + "OwnersTokenByIndexInput1" + ], + "type": 0 + } + }, + { + "label": "index", + "type": { + "displayName": [ + "psp34enumerable_external", + "OwnersTokenByIndexInput2" + ], + "type": 7 + } + } + ], + "docs": [ + " Returns a token `Id` owned by `owner` at a given `index` of its token list.", + " Use along with `balance_of` to enumerate all of ``owner``'s tokens.", + "", + " The start index is zero." + ], + "label": "PSP34Enumerable::owners_token_by_index", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 28 + }, + "selector": "0x3bcfb511" + }, + { + "args": [ + { + "label": "index", + "type": { + "displayName": [ + "psp34enumerable_external", + "TokenByIndexInput1" + ], + "type": 7 + } + } + ], + "docs": [ + " Returns a token `Id` at a given `index` of all the tokens stored by the contract.", + " Use along with `total_supply` to enumerate all tokens.", + "", + " The start index is zero." + ], + "label": "PSP34Enumerable::token_by_index", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 28 + }, + "selector": "0xcd0340d0" + }, + { + "args": [ + { + "label": "account", + "type": { + "displayName": [ + "psp34burnable_external", + "BurnInput1" + ], + "type": 0 + } + }, + { + "label": "id", + "type": { + "displayName": [ + "psp34burnable_external", + "BurnInput2" + ], + "type": 13 + } + } + ], + "docs": [ + " Destroys token with id equal to `id` from `account`", + "", + " Caller must be approved to transfer tokens from `account`", + " or to transfer token with `id`" + ], + "label": "PSP34Burnable::burn", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 20 + }, + "selector": "0x63c9877a" + }, + { + "args": [ + { + "label": "token_id", + "type": { + "displayName": [ + "minting_external", + "TokenUriInput1" + ], + "type": 6 + } + } + ], + "docs": [ + " Get URI for the token Id." + ], + "label": "Minting::token_uri", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 30 + }, + "selector": "0x7136140d" + }, + { + "args": [], + "docs": [ + " Get max supply of tokens." + ], + "label": "Minting::max_supply", + "mutates": false, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 36 + }, + "selector": "0xf38e35bf" + }, + { + "args": [ + { + "label": "token_id", + "type": { + "displayName": [ + "minting_external", + "AssignMetadataInput1" + ], + "type": 13 + } + }, + { + "label": "metadata", + "type": { + "displayName": [ + "minting_external", + "AssignMetadataInput2" + ], + "type": 8 + } + } + ], + "docs": [ + " Assign metadata to specified token." + ], + "label": "Minting::assign_metadata", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 38 + }, + "selector": "0x6893d91b" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "minting_external", + "MintInput1" + ], + "type": 0 + } + } + ], + "docs": [ + " Mint one or more tokens." + ], + "label": "Minting::mint", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 40 + }, + "selector": "0x0f8c5089" + }, + { + "args": [ + { + "label": "to", + "type": { + "displayName": [ + "minting_external", + "MintManyInput1" + ], + "type": 0 + } + }, + { + "label": "mint_amount", + "type": { + "displayName": [ + "minting_external", + "MintManyInput2" + ], + "type": 6 + } + } + ], + "docs": [ + " Mint many to specified account." + ], + "label": "Minting::mint_many", + "mutates": true, + "payable": false, + "returnType": { + "displayName": [ + "ink", + "MessageResult" + ], + "type": 42 + }, + "selector": "0xeee448dc" + } + ] + }, + "storage": { + "root": { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x1cc80634", + "ty": 0 + } + }, + "root_key": "0x1cc80634" + } + }, + "name": "token_owner" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x7e3fae6b", + "ty": 3 + } + }, + "root_key": "0x7e3fae6b" + } + }, + "name": "operator_approvals" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "enum": { + "dispatchKey": "0xca32a240", + "name": "Id", + "variants": { + "0": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 2 + } + }, + "name": "0" + } + ], + "name": "U8" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 4 + } + }, + "name": "0" + } + ], + "name": "U16" + }, + "2": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 5 + } + }, + "name": "0" + } + ], + "name": "U32" + }, + "3": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 6 + } + }, + "name": "0" + } + ], + "name": "U64" + }, + "4": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 7 + } + }, + "name": "0" + } + ], + "name": "U128" + }, + "5": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0xca32a240", + "ty": 8 + } + }, + "name": "0" + } + ], + "name": "Bytes" + } + } + } + }, + "root_key": "0xca32a240" + } + }, + "name": "enumerable" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Balances" + } + }, + "name": "balances" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "psp34" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 2 + } + }, + "name": "status" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "guard" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x6a2cd2b4", + "ty": 5 + } + }, + "root_key": "0x6a2cd2b4" + } + }, + "name": "admin_roles" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x5d5db175", + "ty": 3 + } + }, + "root_key": "0x5d5db175" + } + }, + "name": "members" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Members" + } + }, + "name": "members" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "access" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x9b2d2382", + "ty": 8 + } + }, + "root_key": "0x9b2d2382" + } + }, + "name": "attributes" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 3 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "_reserved" + } + ], + "name": "Data" + } + }, + "name": "metadata" + }, + { + "layout": { + "struct": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 6 + } + }, + "name": "last_token_id" + }, + { + "layout": { + "enum": { + "dispatchKey": "0x00000000", + "name": "Option", + "variants": { + "0": { + "fields": [], + "name": "None" + }, + "1": { + "fields": [ + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 6 + } + }, + "name": "0" + } + ], + "name": "Some" + } + } + } + }, + "name": "max_supply" + }, + { + "layout": { + "leaf": { + "key": "0x00000000", + "ty": 7 + } + }, + "name": "price_per_mint" + }, + { + "layout": { + "root": { + "layout": { + "leaf": { + "key": "0x5d58779c", + "ty": 8 + } + }, + "root_key": "0x5d58779c" + } + }, + "name": "nft_metadata" + } + ], + "name": "MintingData" + } + }, + "name": "minting" + } + ], + "name": "Key" + } + }, + "root_key": "0x00000000" + } + }, + "types": [ + { + "id": 0, + "type": { + "def": { + "composite": { + "fields": [ + { + "type": 1, + "typeName": "[u8; 32]" + } + ] + } + }, + "path": [ + "ink_primitives", + "types", + "AccountId" + ] + } + }, + { + "id": 1, + "type": { + "def": { + "array": { + "len": 32, + "type": 2 + } + } + } + }, + { + "id": 2, + "type": { + "def": { + "primitive": "u8" + } + } + }, + { + "id": 3, + "type": { + "def": { + "tuple": [] + } + } + }, + { + "id": 4, + "type": { + "def": { + "primitive": "u16" + } + } + }, + { + "id": 5, + "type": { + "def": { + "primitive": "u32" + } + } + }, + { + "id": 6, + "type": { + "def": { + "primitive": "u64" + } + } + }, + { + "id": 7, + "type": { + "def": { + "primitive": "u128" + } + } + }, + { + "id": 8, + "type": { + "def": { + "sequence": { + "type": 2 + } + } + } + }, + { + "id": 9, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 10, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 1, + "name": "CouldNotReadInput" + } + ] + } + }, + "path": [ + "ink_primitives", + "LangError" + ] + } + }, + { + "id": 11, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 7 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 7 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 12, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 13 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 13, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 2, + "typeName": "u8" + } + ], + "index": 0, + "name": "U8" + }, + { + "fields": [ + { + "type": 4, + "typeName": "u16" + } + ], + "index": 1, + "name": "U16" + }, + { + "fields": [ + { + "type": 5, + "typeName": "u32" + } + ], + "index": 2, + "name": "U32" + }, + { + "fields": [ + { + "type": 6, + "typeName": "u64" + } + ], + "index": 3, + "name": "U64" + }, + { + "fields": [ + { + "type": 7, + "typeName": "u128" + } + ], + "index": 4, + "name": "U128" + }, + { + "fields": [ + { + "type": 8, + "typeName": "Vec" + } + ], + "index": 5, + "name": "Bytes" + } + ] + } + }, + "path": [ + "openbrush_contracts", + "traits", + "types", + "Id" + ] + } + }, + { + "id": 14, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 15 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 15 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 15, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 0 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 0 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 16, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 5 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 5 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 17, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 13 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 18, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 19 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 19 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 19, + "type": { + "def": { + "primitive": "bool" + } + } + }, + { + "id": 20, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 21 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 21 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 21, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 22 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 22 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 22, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 8, + "typeName": "String" + } + ], + "index": 0, + "name": "Custom" + }, + { + "index": 1, + "name": "SelfApprove" + }, + { + "index": 2, + "name": "NotApproved" + }, + { + "index": 3, + "name": "TokenExists" + }, + { + "index": 4, + "name": "TokenNotExists" + }, + { + "fields": [ + { + "type": 8, + "typeName": "String" + } + ], + "index": 5, + "name": "SafeTransferCheckFailed" + } + ] + } + }, + "path": [ + "openbrush_contracts", + "traits", + "errors", + "psp34", + "PSP34Error" + ] + } + }, + { + "id": 23, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 24 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 24 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 24, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 25 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 25 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 25, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "InvalidCaller" + }, + { + "index": 1, + "name": "MissingRole" + }, + { + "index": 2, + "name": "RoleRedundant" + } + ] + } + }, + "path": [ + "openbrush_contracts", + "traits", + "errors", + "access_control", + "AccessControlError" + ] + } + }, + { + "id": 26, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 27 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 27 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 27, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 8 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 8 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 28, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 29 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 29 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 29, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 13 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 22 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 22 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 30, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 31 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 31 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 31, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 32 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 32 + }, + { + "name": "E", + "type": 33 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 32, + "type": { + "def": { + "primitive": "str" + } + } + }, + { + "id": 33, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 34, + "typeName": "RmrkError" + } + ], + "index": 0, + "name": "Rmrk" + }, + { + "fields": [ + { + "type": 22, + "typeName": "PSP34Error" + } + ], + "index": 1, + "name": "PSP34" + }, + { + "fields": [ + { + "type": 25, + "typeName": "AccessControlError" + } + ], + "index": 2, + "name": "AccessControl" + }, + { + "fields": [ + { + "type": 35, + "typeName": "ReentrancyGuardError" + } + ], + "index": 3, + "name": "Reentrancy" + } + ] + } + }, + "path": [ + "rmrk_common", + "errors", + "Error" + ] + } + }, + { + "id": 34, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "AcceptedAssetsMissing" + }, + { + "index": 1, + "name": "AddingPendingAsset" + }, + { + "index": 2, + "name": "AddingPendingChild" + }, + { + "index": 3, + "name": "AddressNotEquippable" + }, + { + "index": 4, + "name": "AlreadyAddedAsset" + }, + { + "index": 5, + "name": "AlreadyAddedChild" + }, + { + "index": 6, + "name": "AssetHasNoParts" + }, + { + "index": 7, + "name": "AssetIdAlreadyExists" + }, + { + "index": 8, + "name": "AssetIdNotFound" + }, + { + "index": 9, + "name": "AssetIdNotEquippable" + }, + { + "index": 10, + "name": "BadConfig" + }, + { + "index": 11, + "name": "BadMintValue" + }, + { + "index": 12, + "name": "BadPriorityLength" + }, + { + "index": 13, + "name": "CannotMintZeroTokens" + }, + { + "index": 14, + "name": "CatalogNotFoundForAsset" + }, + { + "index": 15, + "name": "ChildNotFound" + }, + { + "index": 16, + "name": "UriNotFound" + }, + { + "index": 17, + "name": "CollectionIsFull" + }, + { + "index": 18, + "name": "InvalidAssetId" + }, + { + "index": 19, + "name": "InvalidParentId" + }, + { + "index": 20, + "name": "InvalidTokenId" + }, + { + "index": 21, + "name": "NotEquipped" + }, + { + "index": 22, + "name": "NotTokenOwner" + }, + { + "index": 23, + "name": "PartIsNotSlot" + }, + { + "index": 24, + "name": "SlotAlreayUsed" + }, + { + "index": 25, + "name": "TargetAssetCannotReceiveSlot" + }, + { + "index": 26, + "name": "UnknownEquippableAsset" + }, + { + "index": 27, + "name": "UnknownPart" + }, + { + "index": 28, + "name": "UnknownPartId" + }, + { + "index": 29, + "name": "WithdrawalFailed" + } + ] + } + }, + "path": [ + "rmrk_common", + "errors", + "RmrkError" + ] + } + }, + { + "id": 35, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "ReentrantCall" + } + ] + } + }, + "path": [ + "openbrush_contracts", + "traits", + "errors", + "reentrancy_guard", + "ReentrancyGuardError" + ] + } + }, + { + "id": 36, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 37 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 37 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 37, + "type": { + "def": { + "variant": { + "variants": [ + { + "index": 0, + "name": "None" + }, + { + "fields": [ + { + "type": 6 + } + ], + "index": 1, + "name": "Some" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 6 + } + ], + "path": [ + "Option" + ] + } + }, + { + "id": 38, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 39 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 39 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 39, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 3 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 3 + }, + { + "name": "E", + "type": 33 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 40, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 41 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 41 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 41, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 13 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 33 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 42, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 43 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 10 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 43 + }, + { + "name": "E", + "type": 10 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 43, + "type": { + "def": { + "variant": { + "variants": [ + { + "fields": [ + { + "type": 44 + } + ], + "index": 0, + "name": "Ok" + }, + { + "fields": [ + { + "type": 33 + } + ], + "index": 1, + "name": "Err" + } + ] + } + }, + "params": [ + { + "name": "T", + "type": 44 + }, + { + "name": "E", + "type": 33 + } + ], + "path": [ + "Result" + ] + } + }, + { + "id": 44, + "type": { + "def": { + "tuple": [ + 13, + 13 + ] + } + } + } + ], + "version": "4" +} diff --git a/packages/api-contract/src/test/contracts/user/v4/index.ts b/packages/api-contract/src/test/contracts/user/v4/index.ts new file mode 100644 index 0000000..9a6a345 --- /dev/null +++ b/packages/api-contract/src/test/contracts/user/v4/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as events } from './events.contract.json' assert { type: 'json' }; diff --git a/packages/api-contract/src/test/contracts/util.ts b/packages/api-contract/src/test/contracts/util.ts new file mode 100644 index 0000000..300284f --- /dev/null +++ b/packages/api-contract/src/test/contracts/util.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export function createVersionedExport (versioned: Record>): Record> { + const result: Record> = {}; + + Object.entries(versioned).forEach(([version, contracts]) => + Object.entries(contracts).forEach(([name, contract]): void => { + result[`${version}_${name}`] = contract as Record; + }) + ); + + return result; +} diff --git a/packages/api-contract/src/types.ts b/packages/api-contract/src/types.ts new file mode 100644 index 0000000..842b165 --- /dev/null +++ b/packages/api-contract/src/types.ts @@ -0,0 +1,98 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiBase } from '@pezkuwi/api/base'; +import type { ApiTypes } from '@pezkuwi/api/types'; +import type { Text } from '@pezkuwi/types'; +import type { ContractExecResultResult, ContractSelector, StorageDeposit, Weight, WeightV2 } from '@pezkuwi/types/interfaces'; +import type { Codec, TypeDef } from '@pezkuwi/types/types'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { Abi } from './index.js'; + +export interface ContractBase { + readonly abi: Abi; + readonly api: ApiBase; + + getMessage: (name: string) => AbiMessage; + messages: AbiMessage[]; +} + +export interface AbiParam { + name: string; + type: TypeDef; +} + +export type AbiMessageParam = AbiParam + +export interface AbiEventParam extends AbiParam{ + indexed: boolean; +} + +export interface AbiEvent { + args: AbiEventParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedEvent; + identifier: string; + index: number; + signatureTopic?: HexString | null; +} + +export interface AbiMessage { + args: AbiMessageParam[]; + docs: string[]; + fromU8a: (data: Uint8Array) => DecodedMessage; + identifier: string; + index: number; + isConstructor?: boolean; + isDefault?: boolean; + isMutating?: boolean; + isPayable?: boolean; + method: string; + path: string[]; + returnType?: TypeDef | null; + selector: ContractSelector; + toU8a: (params: unknown[]) => Uint8Array; +} + +export type AbiConstructor = AbiMessage; + +// eslint-disable-next-line @typescript-eslint/ban-types +export type InterfaceContractCalls = Record; + +export interface ContractCallOutcome { + debugMessage: Text; + gasConsumed: Weight; + gasRequired: Weight; + output: Codec | null; + result: ContractExecResultResult; + storageDeposit: StorageDeposit; +} + +export interface DecodedEvent { + args: Codec[]; + event: AbiEvent; +} + +export interface DecodedMessage { + args: Codec[]; + message: AbiMessage; +} + +export interface ContractOptions { + gasLimit?: bigint | string | number | BN | WeightV2; + storageDepositLimit?: bigint | string | number | BN | null; + value?: bigint | BN | string | number; +} + +export interface BlueprintOptions extends ContractOptions { + salt?: Uint8Array | string | null; +} + +export interface WeightAll { + v1Weight: BN; + v2Weight: { + refTime: BN; + proofSize?: BN | undefined; + }; +} diff --git a/packages/api-contract/src/util.ts b/packages/api-contract/src/util.ts new file mode 100644 index 0000000..e282d61 --- /dev/null +++ b/packages/api-contract/src/util.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/api-contract authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SubmittableResult } from '@pezkuwi/api'; +import type { EventRecord } from '@pezkuwi/types/interfaces'; + +type ContractEvents = 'CodeStored' | 'ContractEmitted' | 'ContractExecution' | 'Instantiated'; + +export function applyOnEvent (result: SubmittableResult, types: ContractEvents[], fn: (records: EventRecord[]) => T, isRevive: boolean): T | undefined { + if (result.isInBlock || result.isFinalized) { + const section = isRevive ? 'revive' : 'contracts'; + const records = result.filterRecords(section, types); + + if (records.length) { + return fn(records); + } + } + + return undefined; +} diff --git a/packages/api-contract/tsconfig.build.json b/packages/api-contract/tsconfig.build.json new file mode 100644 index 0000000..6a1eb83 --- /dev/null +++ b/packages/api-contract/tsconfig.build.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/test/**/*", + "**/*.spec.ts", + "**/checkTypes.manual.ts", + "**/mod.ts", + "mock.ts" + ], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" } + ] +} diff --git a/packages/api-contract/tsconfig.spec.json b/packages/api-contract/tsconfig.spec.json new file mode 100644 index 0000000..38b05b5 --- /dev/null +++ b/packages/api-contract/tsconfig.spec.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "resolveJsonModule": true, + "noEmit": true + }, + "include": [ + "**/test/**/*.json", + "**/test/**/*.ts", + "**/test/**/*.wasm", + "**/checkTypes.manual.ts", + "**/*.spec.ts", + "mock.ts" + ], + "references": [ + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../api-contract/tsconfig.build.json" }, + { "path": "../api/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/packages/api-derive/README.md b/packages/api-derive/README.md new file mode 100644 index 0000000..bd26fc2 --- /dev/null +++ b/packages/api-derive/README.md @@ -0,0 +1,30 @@ +# @pezkuwi/api-derive + +Collection of high-level utility functions built on top of the @pezkuwi/api library. Designed to simplify the process of querying complex on-chain data by combining multiple RPC calls, storage queries, and runtime logic into a single, callable function. + +Instead of manually fetching and processing blockchain data, developers can use `api.derive` methods to retrieve information. + +## Available Derive Namespaces + +The derive functions are categorized into namespaces based on different common Bizinikiwi modules. Accesible by calling `api.derive.NAMESPACE` (e.g. `api.derive.balances`). The available modules are as follows: + +- [accounts](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/accounts) +- [alliance](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/alliance) +- [bagsList](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/bagsList) +- [balances](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/balances) +- [bounties](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/bounties) +- [chain](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/chain) +- [contracts](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/contracts) +- [council](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/council) +- [crowdloan](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/crowdloan) +- [democracy](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/democracy) +- [elections](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/elections) +- [imOnline](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/imOnline) +- [membership](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/membership) +- [teyrchains](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/teyrchains) +- [session](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/session) +- [society](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/society) +- [staking](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/staking) +- [technicalCommittee](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/technicalCommittee) +- [treasury](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/treasury) +- [tx](https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive/src/tx) diff --git a/packages/api-derive/package.json b/packages/api-derive/package.json new file mode 100644 index 0000000..eeb1a2c --- /dev/null +++ b/packages/api-derive/package.json @@ -0,0 +1,42 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Common functions used across Pezkuwi, derived from RPC calls and storage queries.", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api-derive#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/api-derive", + "repository": { + "directory": "packages/api-derive", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/api": "16.5.4", + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/api-base": "16.5.4", + "@pezkuwi/rpc-core": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/util-crypto": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/api": "16.5.4", + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/rpc-augment": "16.5.4", + "@pezkuwi/rpc-provider": "16.5.4", + "@pezkuwi/types-support": "16.5.4" + } +} diff --git a/packages/api-derive/src/accounts/accountId.ts b/packages/api-derive/src/accounts/accountId.ts new file mode 100644 index 0000000..6e285cb --- /dev/null +++ b/packages/api-derive/src/accounts/accountId.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, AccountIndex, Address } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { assertReturn, isU8a } from '@pezkuwi/util'; +import { decodeAddress } from '@pezkuwi/util-crypto'; + +import { memo } from '../util/index.js'; + +/** + * @name accountId + * @param {(Address | AccountId | AccountIndex | string | null)} address An accounts address in various formats. + * @description Resolves an address (in different formats) to its corresponding `AccountId`. + * @example + * ```javascript + * const ALICE = "F7Hs"; + * + * api.derive.accounts.accountId(ALICE, (accountId) => { + * console.log(`Resolved AccountId: ${accountId}`); + * }); + * ``` + */ +export function accountId (instanceId: string, api: DeriveApi): (address?: Address | AccountId | AccountIndex | string | null) => Observable { + return memo(instanceId, (address?: Address | AccountId | AccountIndex | string | null): Observable => { + const decoded = isU8a(address) + ? address + : decodeAddress((address || '').toString()); + + if (decoded.length > 8) { + return of(api.registry.createType(decoded.length === 20 ? 'AccountId20' : 'AccountId', decoded)); + } + + const accountIndex = api.registry.createType('AccountIndex', decoded); + + return api.derive.accounts.indexToId(accountIndex.toString()).pipe( + map((a) => assertReturn(a, 'Unable to retrieve accountId')) + ); + }); +} diff --git a/packages/api-derive/src/accounts/flags.ts b/packages/api-derive/src/accounts/flags.ts new file mode 100644 index 0000000..17ef43a --- /dev/null +++ b/packages/api-derive/src/accounts/flags.ts @@ -0,0 +1,90 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, Address, Balance } from '@pezkuwi/types/interfaces'; +import type{ PezpalletElectionsPhragmenSeatHolder } from '@pezkuwi/types/lookup'; +import type { Codec } from '@pezkuwi/types/types'; +import type { Option } from '@pezkuwi/types-codec'; +import type { DeriveAccountFlags, DeriveApi } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { isFunction } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type FlagsIntermediate = [ + PezpalletElectionsPhragmenSeatHolder[] | [AccountId, Balance][] | undefined, + AccountId[], + AccountId[], + AccountId[], + Option | AccountId | undefined +]; + +function parseFlags (address: AccountId | Address | string | null | undefined, [electionsMembers, councilMembers, technicalCommitteeMembers, societyMembers, sudoKey]: FlagsIntermediate): DeriveAccountFlags { + const addrStr = address?.toString(); + const isIncluded = (id: AccountId | Address | string) => + id.toString() === addrStr; + + return { + isCouncil: (electionsMembers?.map((r) => Array.isArray(r) ? r[0] : r.who) || councilMembers || []).some(isIncluded), + isSociety: (societyMembers || []).some(isIncluded), + isSudo: sudoKey?.toString() === addrStr, + isTechCommittee: (technicalCommitteeMembers || []).some(isIncluded) + }; +} + +export function _flags (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => { + const results: unknown[] = [undefined, [], [], [], undefined]; + const calls = [ + (api.query.elections || api.query['phragmenElection'] || api.query['electionsPhragmen'])?.members, + api.query.council?.members, + api.query.technicalCommittee?.members, + api.query.society?.members, + api.query.sudo?.key + ]; + const filtered = calls.filter((c) => c); + + if (!filtered.length) { + return of(results as FlagsIntermediate); + } + + return api.queryMulti(filtered).pipe( + map((values: Codec[]): FlagsIntermediate => { + let resultIndex = -1; + + for (let i = 0, count = calls.length; i < count; i++) { + if (isFunction(calls[i])) { + results[i] = values[++resultIndex]; + } + } + + return results as FlagsIntermediate; + }) + ); + }); +} + +/** + * @name flags + * @param {(AccountId | Address | string | null)} address The account identifier. + * @description Retrieves the membership flags for a given account. + * @example + * const ALICE = "F7Hs"; + * + * api.derive.accounts.flags(ALICE, (flags) => { + * console.log( + * `Account Flags:`, + * Object.keys(flags).map((flag) => `${flag}: ${flags[flag]}`) + * ); + * }); + */ +export function flags (instanceId: string, api: DeriveApi): (address?: AccountId | Address | string | null) => Observable { + return memo(instanceId, (address?: AccountId | Address | string | null): Observable => + api.derive.accounts._flags().pipe( + map((r) => parseFlags(address, r)) + ) + ); +} diff --git a/packages/api-derive/src/accounts/idAndIndex.ts b/packages/api-derive/src/accounts/idAndIndex.ts new file mode 100644 index 0000000..d421c46 --- /dev/null +++ b/packages/api-derive/src/accounts/idAndIndex.ts @@ -0,0 +1,51 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, AccountIndex, Address } from '@pezkuwi/types/interfaces'; +import type { AccountIdAndIndex, DeriveApi } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { isU8a } from '@pezkuwi/util'; +import { decodeAddress } from '@pezkuwi/util-crypto'; + +import { memo } from '../util/index.js'; + +/** + * @name idAndIndex + * @param {(Address | AccountId | AccountIndex | Uint8Array | string | null)} address An accounts address in various formats. + * @description An array containing the [[AccountId]] and [[AccountIndex]] as optional values. + * @example + * ```javascript + * api.derive.accounts.idAndIndex('F7Hs', ([id, ix]) => { + * console.log(`AccountId #${id} with corresponding AccountIndex ${ix}`); + * }); + * ``` + */ +export function idAndIndex (instanceId: string, api: DeriveApi): (address?: Address | AccountId | AccountIndex | Uint8Array | string | null) => Observable { + return memo(instanceId, (address?: Address | AccountId | AccountIndex | Uint8Array | string | null): Observable => { + try { + // yes, this can fail, don't care too much, catch will catch it + const decoded = isU8a(address) + ? address + : decodeAddress((address || '').toString()); + + if (decoded.length > 8) { + const accountId = api.registry.createType(decoded.length === 20 ? 'AccountId20' : 'AccountId', decoded); + + return api.derive.accounts.idToIndex(accountId).pipe( + map((accountIndex): AccountIdAndIndex => [accountId, accountIndex]) + ); + } + + const accountIndex = api.registry.createType('AccountIndex', decoded); + + return api.derive.accounts.indexToId(accountIndex.toString()).pipe( + map((accountId): AccountIdAndIndex => [accountId, accountIndex]) + ); + } catch { + return of([undefined, undefined]); + } + }); +} diff --git a/packages/api-derive/src/accounts/idToIndex.ts b/packages/api-derive/src/accounts/idToIndex.ts new file mode 100644 index 0000000..552fd42 --- /dev/null +++ b/packages/api-derive/src/accounts/idToIndex.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, AccountIndex } from '@pezkuwi/types/interfaces'; +import type { AccountIndexes, DeriveApi } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name idToIndex + * @description Retrieves the corresponding AccountIndex. + * @param {( AccountId | string )} accountId An accounts Id in different formats. + * @example + * ```javascript + * const ALICE = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'; + * api.derive.accounts.idToIndex(ALICE, (accountIndex) => { + * console.log(`The AccountIndex of ${ALICE} is ${accountIndex}`); + * }); + * ``` + */ +export function idToIndex (instanceId: string, api: DeriveApi): (accountId: AccountId | string) => Observable { + return memo(instanceId, (accountId: AccountId | string): Observable => + api.derive.accounts.indexes().pipe( + map((indexes: AccountIndexes): AccountIndex | undefined => + indexes[accountId.toString()] + ) + )); +} diff --git a/packages/api-derive/src/accounts/identity.ts b/packages/api-derive/src/accounts/identity.ts new file mode 100644 index 0000000..b4cc31a --- /dev/null +++ b/packages/api-derive/src/accounts/identity.ts @@ -0,0 +1,235 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Bytes, Data, Struct } from '@pezkuwi/types'; +import type { AccountId, H160 } from '@pezkuwi/types/interfaces'; +import type { PezpalletIdentityLegacyIdentityInfo, PezpalletIdentityRegistration } from '@pezkuwi/types/lookup'; +import type { Option } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { DeriveAccountRegistration, DeriveApi, DeriveHasIdentity } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { isHex, u8aToString } from '@pezkuwi/util'; + +import { firstMemo, memo } from '../util/index.js'; + +type IdentityInfoAdditional = PezpalletIdentityLegacyIdentityInfo['additional'][0]; + +interface PeopleIdentityInfo extends Struct { + display: Data; + legal: Data; + web: Data; + matrix: Data; + email: Data; + pgpFingerprint: Option; + image: Data; + twitter: Data; + github: Data; + discord: Data; +} + +const UNDEF_HEX = { toHex: () => undefined }; + +function dataAsString (data: Data): string | undefined { + if (!data) { + return data; + } + + return data.isRaw + ? u8aToString(data.asRaw.toU8a(true)) + : data.isNone + ? undefined + : data.toHex(); +} + +function extractOther (additional: IdentityInfoAdditional[]): Record { + return additional.reduce((other: Record, [_key, _value]): Record => { + const key = dataAsString(_key); + const value = dataAsString(_value); + + if (key && value) { + other[key] = value; + } + + return other; + }, {}); +} + +// handle compatibility between generations of structures +function identityCompat (identityOfOpt: Option]>> | Option): PezpalletIdentityRegistration { + const identity = identityOfOpt.unwrap(); + + return Array.isArray(identity) + ? identity[0] + : identity; +} + +function extractIdentity (identityOfOpt?: Option]>> | Option, superOf?: [AccountId, Data]): DeriveAccountRegistration { + if (!identityOfOpt?.isSome) { + return { judgements: [] }; + } + + const { info, judgements } = identityCompat(identityOfOpt); + const topDisplay = dataAsString(info.display); + + return { + discord: dataAsString((info as unknown as PeopleIdentityInfo).discord), + display: (superOf && dataAsString(superOf[1])) || topDisplay, + displayParent: superOf && topDisplay, + email: dataAsString(info.email), + github: dataAsString((info as unknown as PeopleIdentityInfo).github), + image: dataAsString(info.image), + judgements, + legal: dataAsString(info.legal), + matrix: dataAsString((info as unknown as PeopleIdentityInfo).matrix), + other: info.additional ? extractOther(info.additional) : {}, + parent: superOf?.[0], + pgp: info.pgpFingerprint.unwrapOr(UNDEF_HEX).toHex(), + riot: dataAsString(info.riot), + twitter: dataAsString(info.twitter), + web: dataAsString(info.web) + }; +} + +function getParent (api: DeriveApi, identityOfOpt: Option]>> | Option | undefined, superOfOpt: Option> | undefined): Observable<[Option]>> | Option | undefined, [AccountId, Data] | undefined]> { + if (identityOfOpt?.isSome) { + // this identity has something set + return of([identityOfOpt, undefined]); + } else if (superOfOpt?.isSome) { + const superOf = superOfOpt.unwrap(); + + return combineLatest([ + api.derive.accounts._identity(superOf[0]).pipe( + map(([info]) => info) + ), + of(superOf) + ]); + } + + // nothing of value returned + return of([undefined, undefined]); +} + +export function _identity (instanceId: string, api: DeriveApi): (accountId?: AccountId | Uint8Array | string) => Observable<[Option]>> | Option | undefined, Option> | undefined]> { + return memo(instanceId, (accountId?: AccountId | Uint8Array | string): Observable<[Option]>> | Option | undefined, Option> | undefined]> => + accountId && api.query.identity?.identityOf + ? combineLatest([ + api.query.identity.identityOf(accountId), + api.query.identity.superOf(accountId) + ]) + : of([undefined, undefined]) + ); +} + +/** + * @name identity + * @description Retrieves the on chain identity information for a given account. + * @param {(AccountId | Uint8Array | string)} accoutId The account identifier to query the identity for. + * @example + * ```javascript + * const ALICE = "13xAUH"; + * + * api.derive.accounts.identity(ALICE, (identity) => { + * console.log( + * "Account Identity:", + * Object.keys(identity).map((key) => `${key}: ${identity[key]}`) + * ); + * }); + * ``` + */ +export function identity (instanceId: string, api: DeriveApi): (accountId?: AccountId | Uint8Array | string) => Observable { + return memo(instanceId, (accountId?: AccountId | Uint8Array | string): Observable => + api.derive.accounts._identity(accountId).pipe( + switchMap(([identityOfOpt, superOfOpt]) => + getParent(api, identityOfOpt, superOfOpt) + ), + map(([identityOfOpt, superOf]) => + extractIdentity(identityOfOpt, superOf) + ), + switchMap((identity) => + getSubIdentities(identity, api, accountId) + ) + ) + ); +} + +// if an account has no parents it will extract its subidentities +// otherwise if the account is a subidentity, obtain all subidentities of its parent. +function getSubIdentities (identity: DeriveAccountRegistration, api: DeriveApi, accountId?: AccountId | Uint8Array | string): Observable { + const targetAccount = identity.parent || accountId; + + if (!targetAccount || !api.query.identity) { + // No valid accountId return the identity as-is + return of(identity); + } + + return api.query.identity.subsOf(targetAccount).pipe( + map((subsResponse) => { + const subs = subsResponse[1]; + + return { + ...identity, + subs + }; + }) + ); +} + +/** + * @name hasIdentity + * @description Checks if a specific account has an identity registered on chain. + * @param {(AccountId | Uint8Array | string)} accoutId The account identifier to query. + * @example + * ```javascript + * const ALICE = "13AU"; + * console.log(await api.derive.accounts.hasIdentity(ALICE)); + * ``` + */ +export const hasIdentity = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: AccountId | Uint8Array | string) => + api.derive.accounts.hasIdentityMulti([accountId]) +); + +/** + * @name hasIdentityMulti + * @description Checks whether multiple accounts have on chain identities registered. + * @param {(AccountId | Uint8Array | string)[]} accountIds Array of account identifiers to query. + * @example + * ```javascript + * const ALICE = "13AU"; + * const BOB = "16WW"; + * console.log(await api.derive.accounts.hasIdentityMulti([ALICE, BOB])); + * ``` + */ +export function hasIdentityMulti (instanceId: string, api: DeriveApi): (accountIds: (AccountId | Uint8Array | string)[]) => Observable { + return memo(instanceId, (accountIds: (AccountId | Uint8Array | string)[]): Observable => + api.query.identity?.identityOf + ? combineLatest([ + api.query.identity.identityOf.multi(accountIds), + api.query.identity.superOf.multi(accountIds) + ]).pipe( + map(([identities, supers]) => + identities.map((identityOfOpt, index): DeriveHasIdentity => { + const superOfOpt = supers[index]; + const parentId = superOfOpt && superOfOpt.isSome + ? superOfOpt.unwrap()[0].toString() + : undefined; + let display: string | undefined; + + if (identityOfOpt && identityOfOpt.isSome) { + const value = dataAsString(identityCompat(identityOfOpt).info.display); + + if (value && !isHex(value)) { + display = value; + } + } + + return { display, hasIdentity: !!(display || parentId), parentId }; + }) + ) + ) + : of(accountIds.map(() => ({ hasIdentity: false }))) + ); +} diff --git a/packages/api-derive/src/accounts/index.ts b/packages/api-derive/src/accounts/index.ts new file mode 100644 index 0000000..12b1561 --- /dev/null +++ b/packages/api-derive/src/accounts/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './accountId.js'; +export * from './flags.js'; +export * from './idAndIndex.js'; +export * from './identity.js'; +export * from './idToIndex.js'; +export * from './indexes.js'; +export * from './indexToId.js'; +export * from './info.js'; diff --git a/packages/api-derive/src/accounts/indexToId.ts b/packages/api-derive/src/accounts/indexToId.ts new file mode 100644 index 0000000..345e97f --- /dev/null +++ b/packages/api-derive/src/accounts/indexToId.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, AccountIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name indexToId + * @description Resolves an AccountIndex (short address) to the full AccountId. + * @param {( AccountIndex | string )} accountIndex An accounts index in different formats. + * @example + * ```javascript + * const ALICE = "13AU"; + * const id = await api.derive.accounts.indexToId(ALICE); + * console.log(id); + * ``` + */ +export function indexToId (instanceId: string, api: DeriveApi): (accountIndex: AccountIndex | string) => Observable { + return memo(instanceId, (accountIndex: AccountIndex | string): Observable => + api.query.indices + ? api.query.indices.accounts(accountIndex).pipe( + map((optResult): AccountId | undefined => + optResult.unwrapOr([])[0] + ) + ) + : of(undefined) + ); +} diff --git a/packages/api-derive/src/accounts/indexes.ts b/packages/api-derive/src/accounts/indexes.ts new file mode 100644 index 0000000..356d4e7 --- /dev/null +++ b/packages/api-derive/src/accounts/indexes.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountIndexes, DeriveApi } from '../types.js'; + +import { map, of, startWith } from 'rxjs'; + +import { memo } from '../util/index.js'; + +let indicesCache: AccountIndexes | null = null; + +function queryAccounts (api: DeriveApi): Observable { + return api.query.indices.accounts.entries().pipe( + map((entries): AccountIndexes => + entries.reduce((indexes: AccountIndexes, [key, idOpt]): AccountIndexes => { + if (idOpt.isSome) { + indexes[idOpt.unwrap()[0].toString()] = api.registry.createType('AccountIndex', key.args[0]); + } + + return indexes; + }, {}) + ) + ); +} + +/** + * @name indexes + * @returns Returns all the indexes on the system. + * @description This is an unwieldly query since it loops through + * all of the enumsets and returns all of the values found. This could be up to 32k depending + * on the number of active accounts in the system. + * @example + * ```javascript + * api.derive.accounts.indexes((indexes) => { + * console.log('All existing AccountIndexes', indexes); + * }); + * ``` + */ +export function indexes (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + indicesCache + ? of(indicesCache) + : ( + api.query.indices + ? queryAccounts(api).pipe(startWith({})) + : of({} as AccountIndexes) + ).pipe( + map((indices): AccountIndexes => { + indicesCache = indices; + + return indices; + }) + ) + ); +} diff --git a/packages/api-derive/src/accounts/info.ts b/packages/api-derive/src/accounts/info.ts new file mode 100644 index 0000000..b209531 --- /dev/null +++ b/packages/api-derive/src/accounts/info.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Bytes, Option, u32 } from '@pezkuwi/types'; +import type { AccountId, AccountIndex, Address, Balance } from '@pezkuwi/types/interfaces'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveAccountInfo, DeriveAccountRegistration, DeriveApi } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { u8aToString } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +function retrieveNick (api: DeriveApi, accountId?: AccountId): Observable { + return (( + accountId && api.query['nicks']?.['nameOf'] + ? api.query['nicks']['nameOf'](accountId) + : of(undefined) + ) as Observable> | undefined>).pipe( + map((nameOf): string | undefined => + nameOf?.isSome + ? u8aToString(nameOf.unwrap()[0]).substring(0, (api.consts['nicks']['maxLength'] as u32).toNumber()) + : undefined + ) + ); +} + +/** + * @name info + * @description Returns aux. info with regards to an account, current that includes the accountId, accountIndex, identity and nickname + * @param {(AccountIndex | AccountId | Address | Uint8Array | string | null)} address An accounts in different formats. + * @example + * ```javascript + * const ALICE = "13AU"; + * const info = await api.derive.accounts.info(ALICE); + * console.log( + * "Account Info: ", + * Object.keys(info).map((key) => `${key}: ${info[key]}`) + * ); + * ``` + */ +export function info (instanceId: string, api: DeriveApi): (address?: AccountIndex | AccountId | Address | Uint8Array | string | null) => Observable { + return memo(instanceId, (address?: AccountIndex | AccountId | Address | Uint8Array | string | null): Observable => + api.derive.accounts.idAndIndex(address).pipe( + switchMap(([accountId, accountIndex]): Observable<[Partial, DeriveAccountRegistration, string | undefined]> => + combineLatest([ + of({ accountId, accountIndex }), + api.derive.accounts.identity(accountId), + retrieveNick(api, accountId) + ]) + ), + map(([{ accountId, accountIndex }, identity, nickname]): DeriveAccountInfo => ({ + accountId, accountIndex, identity, nickname + })) + )); +} diff --git a/packages/api-derive/src/accounts/types.ts b/packages/api-derive/src/accounts/types.ts new file mode 100644 index 0000000..f932e22 --- /dev/null +++ b/packages/api-derive/src/accounts/types.ts @@ -0,0 +1,48 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, AccountIndex, RegistrationJudgement } from '@pezkuwi/types/interfaces'; +import type { Vec } from '@pezkuwi/types-codec'; + +export type AccountIdAndIndex = [AccountId | undefined, AccountIndex | undefined]; + +export type AccountIndexes = Record; + +export interface DeriveAccountRegistration { + discord?: string | undefined; + display?: string | undefined; + displayParent?: string | undefined; + email?: string | undefined; + github?: string | undefined; + image?: string | undefined; + legal?: string | undefined; + matrix?: string | undefined; + other?: Record | undefined; + parent?: AccountId | undefined; + pgp?: string | undefined; + riot?: string | undefined; + subs?: Vec | undefined; + twitter?: string | undefined; + web?: string | undefined; + judgements: RegistrationJudgement[]; +} + +export interface DeriveAccountFlags { + isCouncil: boolean; + isSociety: boolean; + isSudo: boolean; + isTechCommittee: boolean; +} + +export interface DeriveAccountInfo { + accountId?: AccountId | undefined; + accountIndex?: AccountIndex | undefined; + identity: DeriveAccountRegistration; + nickname?: string | undefined; +} + +export interface DeriveHasIdentity { + display?: string | undefined; + hasIdentity: boolean; + parentId?: string | undefined; +} diff --git a/packages/api-derive/src/alliance/index.ts b/packages/api-derive/src/alliance/index.ts new file mode 100644 index 0000000..d5b81ed --- /dev/null +++ b/packages/api-derive/src/alliance/index.ts @@ -0,0 +1,76 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js'; + +/** + * @name members + * @description Retrieves the list of members in the "allianceMotion" collective. + * @example + * ```javascript + * const members = await api.derive.alliance.members(); + * console.log(`Members: ${JSON.stringify(members)}); + * ``` + */ +export const members = /*#__PURE__*/ collectiveMembers('allianceMotion'); + +/** + * @name hasProposals + * @description Checks if there are any active proposals in the "allianceMotion" collective. + * @example + * ```javascript + * const exists = await api.derive.alliance.hasProposals(); + * console.log(exists); + * ``` + */ +export const hasProposals = /*#__PURE__*/ collectiveHasProposals('allianceMotion'); +/** + * @name proposal + * @description Retrieves details of a specific proposal in the "allianceMotion" collective by its hash. + * @example + * ```javascript + * const proposalDetails = await api.derive.alliance.proposal(PROPOSAL_HASH); + * console.log(proposalDetails); + * ``` + */ +export const proposal = /*#__PURE__*/ collectiveProposal('allianceMotion'); +/** + * @name proposalCount + * @description Retrieves the total number of proposals in the "allianceMotion" collective. + * @example + * ```javascript + * const count = await api.derive.alliance.proposalCount(); + * console.log(`Amount of proposals: ${count}`); + * ``` + */ +export const proposalCount = /*#__PURE__*/ collectiveProposalCount('allianceMotion'); +/** + * @name proposalHashes + * @description Retrieves an array of hashes for all active proposals in the "allianceMotion" collective. + * @example + * ```javascript + * const hashes = await api.derive.alliance.proposalHashes(); + * console.log(`Proposals ${JSON.stringify(hashes)}`); + * ``` + */ +export const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('allianceMotion'); +/** + * @name proposals + * @description Retrieves a list of all active proposals in the "allianceMotion" collective. + * @example + * ```javascript + * const proposals = await api.derive.alliance.proposals(); + * console.log(proposals); + * ``` + */ +export const proposals = /*#__PURE__*/ collectiveProposals('allianceMotion'); +/** + * @name prime + * @description Retrieves the prime member of the "allianceMotion" collective, if one exists. + * @example + * ```javascript + * const primeMember = await api.derive.alliance.prime(); + * console.log(primeMember); + * ``` + */ +export const prime = /*#__PURE__*/ collectivePrime('allianceMotion'); diff --git a/packages/api-derive/src/augment.ts b/packages/api-derive/src/augment.ts new file mode 100644 index 0000000..e003a98 --- /dev/null +++ b/packages/api-derive/src/augment.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/api-augment'; diff --git a/packages/api-derive/src/bagsList/get.ts b/packages/api-derive/src/bagsList/get.ts new file mode 100644 index 0000000..d48bc00 --- /dev/null +++ b/packages/api-derive/src/bagsList/get.ts @@ -0,0 +1,79 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u64 } from '@pezkuwi/types'; +import type { PezpalletBagsListListBag } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; +import type { Bag } from './types.js'; + +import { map, of, switchMap } from 'rxjs'; + +import { BN_ZERO, bnToBn, objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { getQueryInterface } from './util.js'; + +function orderBags (ids: BN[], bags: Option[]): Bag[] { + const sorted = ids + .map((id, index) => ({ + bag: bags[index].unwrapOr(null), + id, + key: id.toString() + })) + .sort((a, b) => b.id.cmp(a.id)); + const max = sorted.length - 1; + + return sorted.map((entry, index): Bag => + objectSpread(entry, { + bagLower: index === max + ? BN_ZERO + : sorted[index + 1].id, + bagUpper: entry.id, + index + }) + ); +} + +export function _getIds (instanceId: string, api: DeriveApi): (ids: (BN | number)[]) => Observable { + const query = getQueryInterface(api); + + return memo(instanceId, (_ids: (BN | number)[]): Observable => { + const ids = _ids.map((id) => bnToBn(id)); + + return ids.length + ? query.listBags.multi>(ids).pipe( + map((bags) => orderBags(ids, bags)) + ) + : of([]); + }); +} + +export function all (instanceId: string, api: DeriveApi): () => Observable { + const query = getQueryInterface(api); + + return memo(instanceId, (): Observable => + query.listBags.keys<[u64]>().pipe( + switchMap((keys) => + api.derive.bagsList._getIds(keys.map(({ args: [id] }) => id)) + ), + map((list) => + list.filter(({ bag }) => bag) + ) + ) + ); +} + +/** + * @name get + * @param {(BN | number)} id The id of the bag to retrieve. + * @description Retrieves a specific bag from the BagsList pallet by its id. + */ +export function get (instanceId: string, api: DeriveApi): (id: BN | number) => Observable { + return memo(instanceId, (id: BN | number): Observable => + api.derive.bagsList._getIds([bnToBn(id)]).pipe( + map((bags) => bags[0]) + ) + ); +} diff --git a/packages/api-derive/src/bagsList/getExpanded.ts b/packages/api-derive/src/bagsList/getExpanded.ts new file mode 100644 index 0000000..52aa7ac --- /dev/null +++ b/packages/api-derive/src/bagsList/getExpanded.ts @@ -0,0 +1,41 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; +import type { Bag, BagExpanded } from './types.js'; + +import { map, switchMap } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +/** + * @name expand + * @description Expands a given bag by retrieving all its nodes (accounts contained within the bag). + * @param {Bag} bag The bag to be expanded. + */ +export function expand (instanceId: string, api: DeriveApi): (bag: Bag) => Observable { + return memo(instanceId, (bag: Bag): Observable => + api.derive.bagsList.listNodes(bag.bag).pipe( + map((nodes) => objectSpread({ nodes }, bag)) + ) + ); +} + +/** + * @name getExpanded + * @description Retrieves and expands a specific bag from the BagsList pallet. + * @param {BN | number} id The id of the bag to expand. + */ +export function getExpanded (instanceId: string, api: DeriveApi): (id: BN | number) => Observable { + return memo(instanceId, (id: BN | number): Observable => + api.derive.bagsList.get(id).pipe( + switchMap((bag) => + api.derive.bagsList.expand(bag) + ) + ) + ); +} diff --git a/packages/api-derive/src/bagsList/index.ts b/packages/api-derive/src/bagsList/index.ts new file mode 100644 index 0000000..a6b3a7b --- /dev/null +++ b/packages/api-derive/src/bagsList/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './get.js'; +export * from './getExpanded.js'; +export * from './listNodes.js'; diff --git a/packages/api-derive/src/bagsList/listNodes.ts b/packages/api-derive/src/bagsList/listNodes.ts new file mode 100644 index 0000000..d768dac --- /dev/null +++ b/packages/api-derive/src/bagsList/listNodes.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option } from '@pezkuwi/types'; +import type { AccountId32 } from '@pezkuwi/types/interfaces'; +import type { PezpalletBagsListListBag, PezpalletBagsListListNode } from '@pezkuwi/types/lookup'; +import type { DeriveApi } from '../types.js'; + +import { BehaviorSubject, map, of, switchMap, tap, toArray } from 'rxjs'; + +import { nextTick } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { getQueryInterface } from './util.js'; + +function traverseLinks (api: DeriveApi, head: AccountId32 | string): Observable { + const subject = new BehaviorSubject(head); + const query = getQueryInterface(api); + + return subject.pipe( + switchMap((account) => + query.listNodes>(account) + ), + tap((node: Option): void => { + nextTick((): void => { + node.isSome && node.value.next.isSome + ? subject.next(node.unwrap().next.unwrap()) + : subject.complete(); + }); + }), + toArray(), // toArray since we want to startSubject to be completed + map((all: Option[]) => + all.map((o) => o.unwrap()) + ) + ); +} + +/** + * @name listNodes + * @param {(PezpalletBagsListListBag | null)} bag A reference to a specific bag in the BagsList pallet. + * @description Retrieves the list of nodes (accounts) contained in a specific bag within the BagsList pallet. + */ +export function listNodes (instanceId: string, api: DeriveApi): (bag: PezpalletBagsListListBag | null) => Observable { + return memo(instanceId, (bag: PezpalletBagsListListBag | null): Observable => + bag && bag.head.isSome + ? traverseLinks(api, bag.head.unwrap()) + : of([]) + ); +} diff --git a/packages/api-derive/src/bagsList/types.ts b/packages/api-derive/src/bagsList/types.ts new file mode 100644 index 0000000..8f084e2 --- /dev/null +++ b/packages/api-derive/src/bagsList/types.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PezpalletBagsListListBag, PezpalletBagsListListNode } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; + +export interface Bag { + bag: PezpalletBagsListListBag | null; + bagUpper: BN; + bagLower: BN; + id: BN; + index: number; + key: string; +} + +export interface BagExpanded extends Bag { + nodes: PezpalletBagsListListNode[]; +} diff --git a/packages/api-derive/src/bagsList/util.ts b/packages/api-derive/src/bagsList/util.ts new file mode 100644 index 0000000..62cd18f --- /dev/null +++ b/packages/api-derive/src/bagsList/util.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveApi } from '../types.js'; + +export function getQueryInterface (api: DeriveApi): DeriveApi['query']['voterList'] { + return ( + // latest bizinikiwi & pezkuwi + api.query.voterList || + // previous bizinikiwi + api.query['voterBagsList'] || + api.query['bagsList'] + ); +} diff --git a/packages/api-derive/src/balances/account.ts b/packages/api-derive/src/balances/account.ts new file mode 100644 index 0000000..0ff5a7c --- /dev/null +++ b/packages/api-derive/src/balances/account.ts @@ -0,0 +1,210 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { QueryableStorageEntry } from '@pezkuwi/api-base/types'; +import type { AccountData, AccountId, AccountIndex, AccountInfo, Address, Balance, Index } from '@pezkuwi/types/interfaces'; +import type { PezframeSystemAccountInfo, PezpalletBalancesAccountData } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveBalancesAccount, DeriveBalancesAccountData } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { isFunction, objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type BalanceResult = [Balance, Balance, Balance, Balance]; + +type Result = [Index, BalanceResult[], AccountType]; + +interface AccountType { isFrameAccountData: boolean } + +type DeriveCustomAccount = DeriveApi['derive'] & Record + +function zeroBalance (api: DeriveApi) { + return api.registry.createType('Balance'); +} + +function getBalance (api: DeriveApi, [freeBalance, reservedBalance, frozenFeeOrFrozen, frozenMiscOrFlags]: BalanceResult, accType: AccountType): DeriveBalancesAccountData { + const votingBalance = api.registry.createType('Balance', freeBalance.toBn()); + + if (accType.isFrameAccountData) { + return { + frameSystemAccountInfo: { + flags: frozenMiscOrFlags, + frozen: frozenFeeOrFrozen + }, + freeBalance, + frozenFee: api.registry.createType('Balance', 0), + frozenMisc: api.registry.createType('Balance', 0), + reservedBalance, + votingBalance + }; + } + + return { + freeBalance, + frozenFee: frozenFeeOrFrozen, + frozenMisc: frozenMiscOrFlags, + reservedBalance, + votingBalance + }; +} + +function calcBalances (api: DeriveApi, [accountId, [accountNonce, [primary, ...additional], accType]]: [AccountId, Result]): DeriveBalancesAccount { + return objectSpread({ + accountId, + accountNonce, + additional: additional.map((b) => getBalance(api, b, accType)) + }, getBalance(api, primary, accType)); +} + +// old +function queryBalancesFree (api: DeriveApi, accountId: AccountId): Observable { + return combineLatest([ + api.query.balances['freeBalance'](accountId), + api.query.balances['reservedBalance'](accountId), + api.query.system['accountNonce'](accountId) + ]).pipe( + map(([freeBalance, reservedBalance, accountNonce]): Result => [ + accountNonce, + [[freeBalance, reservedBalance, zeroBalance(api), zeroBalance(api)]], + { isFrameAccountData: false } + ]) + ); +} + +function queryNonceOnly (api: DeriveApi, accountId: AccountId): Observable { + const fill = (nonce: Index): Result => [ + nonce, + [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]], + { isFrameAccountData: false } + ]; + + return isFunction(api.query.system.account) + ? api.query.system.account(accountId).pipe( + map(({ nonce }) => fill(nonce)) + ) + : isFunction(api.query.system['accountNonce']) + ? api.query.system['accountNonce'](accountId).pipe( + map((nonce) => fill(nonce)) + ) + : of(fill(api.registry.createType('Index'))); +} + +function queryBalancesAccount (api: DeriveApi, accountId: AccountId, modules: string[] = ['balances']): Observable { + const balances = modules + .map((m): QueryableStorageEntry<'rxjs'> => (api.derive as DeriveCustomAccount)[m]?.customAccount || api.query[m as 'balances']?.account) + .filter((q) => isFunction(q)); + + const extract = (nonce: Index, data: AccountData[]): Result => [ + nonce, + data.map(({ feeFrozen, free, miscFrozen, reserved }): BalanceResult => [free, reserved, feeFrozen, miscFrozen]), + { isFrameAccountData: false } + ]; + + // NOTE this is for the first case where we do have instances specified + return balances.length + ? isFunction(api.query.system.account) + ? combineLatest([ + api.query.system.account(accountId), + ...balances.map((c) => c(accountId)) + ]).pipe( + map(([{ nonce }, ...balances]) => extract(nonce, balances as unknown as AccountData[])) + ) + : combineLatest([ + api.query.system['accountNonce'](accountId), + ...balances.map((c) => c(accountId)) + ]).pipe( + map(([nonce, ...balances]) => extract(nonce, balances as unknown as AccountData[])) + ) + : queryNonceOnly(api, accountId); +} + +function querySystemAccount (api: DeriveApi, accountId: AccountId): Observable { + // AccountInfo is current, support old, eg. Edgeware + return api.query.system.account>(accountId).pipe( + map((infoOrTuple): Result => { + const data = (infoOrTuple as AccountInfo).nonce + ? (infoOrTuple as AccountInfo).data + : (infoOrTuple as [Index, AccountData])[1]; + + const nonce = (infoOrTuple as AccountInfo).nonce || (infoOrTuple as [Index, AccountData])[0]; + + if (!data || data.isEmpty) { + return [ + nonce, + [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]], + { isFrameAccountData: false } + ]; + } + + const isFrameType = !!(infoOrTuple as PezframeSystemAccountInfo).data.frozen; + + if (isFrameType) { + const { flags, free, frozen, reserved } = (data as unknown as PezpalletBalancesAccountData); + + return [ + nonce, + [[free, reserved, frozen, flags]], + { isFrameAccountData: true } + ]; + } else { + const { feeFrozen, free, miscFrozen, reserved } = data; + + return [ + nonce, + [[free, reserved, feeFrozen, miscFrozen]], + { isFrameAccountData: false } + ]; + } + }) + ); +} + +/** + * @name account + * @description Retrieves the essential balance details for an account, such as free balance and account nonce. + * @param {( AccountIndex | AccountId | Address | string )} address An accountsId in different formats. + * @example + * ```javascript + * const ALICE = 'F7Hs'; + * + * api.derive.balances.all(ALICE, ({ accountId, lockedBalance }) => { + * console.log(`The account ${accountId} has a locked balance ${lockedBalance} units.`); + * }); + * ``` + */ +export function account (instanceId: string, api: DeriveApi): (address: AccountIndex | AccountId | Address | string) => Observable { + const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName, 'balances'); + const nonDefaultBalances = balanceInstances && balanceInstances[0] !== 'balances'; + + return memo(instanceId, (address: AccountIndex | AccountId | Address | string): Observable => + api.derive.accounts.accountId(address).pipe( + switchMap((accountId): Observable<[AccountId, Result]> => + (accountId + ? combineLatest([ + of(accountId), + nonDefaultBalances + ? queryBalancesAccount(api, accountId, balanceInstances) + : isFunction(api.query.system?.account) + ? querySystemAccount(api, accountId) + : isFunction(api.query.balances?.account) + ? queryBalancesAccount(api, accountId) + : isFunction(api.query.balances?.['freeBalance']) + ? queryBalancesFree(api, accountId) + : queryNonceOnly(api, accountId) + ]) + : of([api.registry.createType('AccountId'), [ + api.registry.createType('Index'), + [[zeroBalance(api), zeroBalance(api), zeroBalance(api), zeroBalance(api)]], + { isFrameAccountData: false } + ]]) + ) + ), + map((result): DeriveBalancesAccount => calcBalances(api, result)) + )); +} diff --git a/packages/api-derive/src/balances/all.ts b/packages/api-derive/src/balances/all.ts new file mode 100644 index 0000000..306a61e --- /dev/null +++ b/packages/api-derive/src/balances/all.ts @@ -0,0 +1,246 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, Vec } from '@pezkuwi/types'; +import type { AccountId, Balance, BalanceLockTo212, BlockNumber, VestingSchedule } from '@pezkuwi/types/interfaces'; +import type { PezpalletBalancesBalanceLock, PezpalletBalancesReserveData, PezpalletVestingVestingInfo } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveBalancesAccount, DeriveBalancesAccountData, DeriveBalancesAll, DeriveBalancesAllAccountData, DeriveBalancesAllVesting } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { BN, BN_ZERO, bnMax, bnMin, isFunction, objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type ResultBalance = [PezpalletVestingVestingInfo[] | null, ((PezpalletBalancesBalanceLock | BalanceLockTo212)[])[], PezpalletBalancesReserveData[][]]; +type Result = [DeriveBalancesAccount, ResultBalance, BlockNumber]; + +interface AllLocked { + allLocked: boolean, + lockedBalance: Balance, + lockedBreakdown: (PezpalletBalancesBalanceLock | BalanceLockTo212)[], + vestingLocked: Balance +} + +type DeriveCustomLocks = DeriveApi['derive'] & Record + +const VESTING_ID = '0x76657374696e6720'; + +function calcLocked (api: DeriveApi, bestNumber: BlockNumber, locks: (PezpalletBalancesBalanceLock | BalanceLockTo212)[]): AllLocked { + let lockedBalance = api.registry.createType('Balance'); + let lockedBreakdown: (PezpalletBalancesBalanceLock | BalanceLockTo212)[] = []; + let vestingLocked = api.registry.createType('Balance'); + let allLocked = false; + + if (Array.isArray(locks)) { + // only get the locks that are valid until passed the current block + lockedBreakdown = (locks as BalanceLockTo212[]).filter(({ until }): boolean => !until || (bestNumber && until.gt(bestNumber))); + allLocked = lockedBreakdown.some(({ amount }) => amount && amount.isMax()); + vestingLocked = api.registry.createType('Balance', lockedBreakdown.filter(({ id }) => id.eq(VESTING_ID)).reduce((result: BN, { amount }) => result.iadd(amount), new BN(0))); + + // get the maximum of the locks according to https://github.com/pezkuwichain/bizinikiwi/blob/master/srml/balances/src/lib.rs#L699 + const notAll = lockedBreakdown.filter(({ amount }) => amount && !amount.isMax()); + + if (notAll.length) { + lockedBalance = api.registry.createType('Balance', bnMax(...notAll.map(({ amount }): Balance => amount))); + } + } + + return { allLocked, lockedBalance, lockedBreakdown, vestingLocked }; +} + +function calcShared (api: DeriveApi, bestNumber: BlockNumber, data: DeriveBalancesAccountData, locks: (PezpalletBalancesBalanceLock | BalanceLockTo212)[]): DeriveBalancesAllAccountData { + const { allLocked, lockedBalance, lockedBreakdown, vestingLocked } = calcLocked(api, bestNumber, locks); + let transferable = null; + + if (data?.frameSystemAccountInfo?.frozen) { + const { frameSystemAccountInfo, freeBalance, reservedBalance } = data; + const noFrozenReserved = frameSystemAccountInfo.frozen.isZero() && reservedBalance.isZero(); + const ED = api.consts.balances.existentialDeposit; + const maybeED = noFrozenReserved ? new BN(0) : ED; + const frozenReserveDif = frameSystemAccountInfo.frozen.sub(reservedBalance); + + transferable = api.registry.createType( + 'Balance', + allLocked + ? 0 + : bnMax(new BN(0), freeBalance.sub(bnMax(maybeED, frozenReserveDif))) + ); + } + + return objectSpread({}, data, { + availableBalance: api.registry.createType('Balance', allLocked ? 0 : bnMax(new BN(0), data?.freeBalance ? data.freeBalance.sub(lockedBalance) : new BN(0))), + lockedBalance, + lockedBreakdown, + transferable, + vestingLocked + }); +} + +function calcVesting (bestNumber: BlockNumber, shared: DeriveBalancesAllAccountData, _vesting: PezpalletVestingVestingInfo[] | null): DeriveBalancesAllVesting { + // Calculate the vesting balances, + // - offset = balance locked at startingBlock + // - perBlock is the unlock amount + const vesting = _vesting || []; + const isVesting = !shared.vestingLocked.isZero(); + const vestedBalances = vesting.map(({ locked, perBlock, startingBlock }) => + bestNumber.gt(startingBlock) + ? bnMin(locked, perBlock.mul(bestNumber.sub(startingBlock))) + : BN_ZERO + ); + const vestedBalance = vestedBalances.reduce((all, value) => all.iadd(value), new BN(0)); + const vestingTotal = vesting.reduce((all, { locked }) => all.iadd(locked), new BN(0)); + + return { + isVesting, + vestedBalance, + vestedClaimable: isVesting + ? shared.vestingLocked.sub(vestingTotal.sub(vestedBalance)) + : BN_ZERO, + vesting: vesting + .map(({ locked, perBlock, startingBlock }, index) => ({ + endBlock: locked.div(perBlock).iadd(startingBlock), + locked, + perBlock, + startingBlock, + vested: vestedBalances[index] + })) + .filter(({ locked }) => !locked.isZero()), + vestingTotal + }; +} + +function calcBalances (api: DeriveApi, result: Result): DeriveBalancesAll { + const [data, [vesting, allLocks, namedReserves], bestNumber] = result; + const shared = calcShared(api, bestNumber, data, allLocks[0]); + + return objectSpread(shared, calcVesting(bestNumber, shared, vesting), { + accountId: data.accountId, + accountNonce: data.accountNonce, + additional: allLocks + .slice(1) + .map((l, index) => calcShared(api, bestNumber, data.additional[index], l)), + namedReserves + }); +} + +// old +function queryOld (api: DeriveApi, accountId: AccountId | string): Observable { + return combineLatest([ + api.query.balances.locks(accountId), + api.query.balances['vesting']>(accountId) + ]).pipe( + map(([locks, optVesting]): ResultBalance => { + let vestingNew = null; + + if (optVesting.isSome) { + const { offset: locked, perBlock, startingBlock } = optVesting.unwrap(); + + vestingNew = api.registry.createType('VestingInfo', { locked, perBlock, startingBlock }); + } + + return [ + vestingNew + ? [vestingNew] + : null, + [locks], + [] + ]; + }) + ); +} + +const isNonNullable = (nullable: T): nullable is NonNullable => !!nullable; + +function createCalls (calls: (((a: unknown) => Observable) | null | undefined)[]): [boolean[], ((a: unknown) => Observable)[]] { + return [ + calls.map((c) => !c), + calls.filter(isNonNullable) + ]; +} + +// current (balances, vesting) +function queryCurrent (api: DeriveApi, accountId: AccountId | string, balanceInstances: string[] = ['balances']): Observable { + const [lockEmpty, lockQueries] = createCalls>( + balanceInstances.map((m) => + (api.derive as DeriveCustomLocks)[m]?.customLocks || api.query[m as 'balances']?.locks + ) + ); + const [reserveEmpty, reserveQueries] = createCalls>( + balanceInstances.map((m) => + api.query[m as 'balances']?.reserves + ) + ); + + return combineLatest([ + api.query.vesting?.vesting + ? api.query.vesting.vesting(accountId) + : of(api.registry.createType('Option')), + lockQueries.length + ? combineLatest(lockQueries.map((c) => c(accountId))) + : of([] as Vec[]), + reserveQueries.length + ? combineLatest(reserveQueries.map((c) => c(accountId))) + : of([] as Vec[]) + ]).pipe( + map(([opt, locks, reserves]): ResultBalance => { + let offsetLock = -1; + let offsetReserve = -1; + const vesting = opt.unwrapOr(null); + + return [ + vesting + ? Array.isArray(vesting) + ? vesting + : [vesting as PezpalletVestingVestingInfo] + : null, + lockEmpty.map((e) => + e ? api.registry.createType>('Vec') : locks[++offsetLock] + ), + reserveEmpty.map((e) => + e ? api.registry.createType>('Vec') : reserves[++offsetReserve] + ) + ]; + }) + ); +} + +/** + * @name all + * @description Retrieves the complete balance information for an account, including free balance, locked balance, reserved balance, and more. + * @param {( AccountId | string )} address An accountsId in different formats. + * @example + * ```javascript + * const ALICE = 'F7Hs'; + * + * api.derive.balances.account(ALICE, (accountInfo) => { + * console.log( + * `${accountInfo.accountId} info:`, + * Object.keys(accountInfo).map((key) => `${key}: ${accountInfo[key]}`) + * ); + * }); + * ``` + */ +export function all (instanceId: string, api: DeriveApi): (address: AccountId | string) => Observable { + const balanceInstances = api.registry.getModuleInstances(api.runtimeVersion.specName, 'balances'); + + return memo(instanceId, (address: AccountId | string): Observable => + combineLatest([ + api.derive.balances.account(address), + isFunction(api.query.system?.account) || isFunction(api.query.balances?.account) + ? queryCurrent(api, address, balanceInstances) + : queryOld(api, address) + ]).pipe( + switchMap(([account, locks]) => + combineLatest([ + of(account), + of(locks), + api.derive.chain.bestNumber() + ]) + ), + map((result) => calcBalances(api, result)) + )); +} diff --git a/packages/api-derive/src/balances/index.ts b/packages/api-derive/src/balances/index.ts new file mode 100644 index 0000000..bf07f87 --- /dev/null +++ b/packages/api-derive/src/balances/index.ts @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { all } from './all.js'; + +export * from './account.js'; +export * from './votingBalances.js'; + +/** + * @name votingBalance + * @param {( AccountId | string )} address An accounts Id in different formats. + * @returns An object containing the results of various balance queries + * @example + *
+ * + * ```javascript + * const ALICE = 'F7Hs'; + * + * api.derive.balances.votingBalance(ALICE, ({ accountId, lockedBalance }) => { + * console.log(`The account ${accountId} has a locked balance ${lockedBalance} units.`); + * }); + * ``` + */ +const votingBalance = all; + +export { all, votingBalance }; diff --git a/packages/api-derive/src/balances/types.ts b/packages/api-derive/src/balances/types.ts new file mode 100644 index 0000000..3a2d3b4 --- /dev/null +++ b/packages/api-derive/src/balances/types.ts @@ -0,0 +1,79 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, Balance, BalanceLockTo212, Index } from '@pezkuwi/types/interfaces'; +import type { PezpalletBalancesBalanceLock, PezpalletBalancesReserveData } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; + +export interface DeriveBalancesAccountData { + frameSystemAccountInfo?: { + frozen: Balance; + flags: Balance; + } + freeBalance: Balance; + frozenFee: Balance; + frozenMisc: Balance; + reservedBalance: Balance; + votingBalance: Balance; +} + +export interface DeriveBalancesAccount extends DeriveBalancesAccountData { + accountId: AccountId; + accountNonce: Index; + additional: DeriveBalancesAccountData[]; +} + +export interface DeriveBalancesAllAccountData extends DeriveBalancesAccountData { + /** + * Calculated available balance. This uses the formula: max(0, free - locked) + * This is only correct when the return type of `api.query.system.account` is `AccountInfo` which was replaced by `PezframeSystemAccountInfo`. + * See `transferable` for the correct balance calculation. + * + * ref: https://github.com/pezkuwichain/bizinikiwi/pull/12951 + */ + availableBalance: Balance; + /** + * The amount of balance locked away. + */ + lockedBalance: Balance; + /** + * The breakdown of locked balances. + */ + lockedBreakdown: (PezpalletBalancesBalanceLock | BalanceLockTo212)[]; + /** + * Calculated transferable balance. This uses the formula: free - max(maybeEd, frozen - reserve) + * Where `maybeEd` means if there is no frozen and reserves it will be zero, else it will be the existential deposit. + * This is only correct when the return type of `api.query.system.account` is `PezframeSystemAccountInfo`. + * Which is the most up to date calulcation for transferrable balances. + * + * ref: https://github.com/pezkuwichain/pezkuwi-sdk/issues/1833 + */ + transferable: Balance | null; + /** + * Amount locked in vesting. + */ + vestingLocked: Balance; +} + +export interface DeriveBalancesVesting { + startingBlock: BN; + endBlock: BN; + perBlock: BN; + locked: BN; + vested: BN; +} + +export interface DeriveBalancesAllVesting { + isVesting: boolean; + vestedBalance: BN; + vestedClaimable: BN; + vesting: DeriveBalancesVesting[]; + vestingTotal: BN; +} + +export interface DeriveBalancesAll extends DeriveBalancesAccount, DeriveBalancesAllAccountData, DeriveBalancesAllVesting { + additional: DeriveBalancesAllAccountData[]; + namedReserves: PezpalletBalancesReserveData[][]; +} + +export type DeriveBalancesMap = Record; diff --git a/packages/api-derive/src/balances/votingBalances.ts b/packages/api-derive/src/balances/votingBalances.ts new file mode 100644 index 0000000..d554734 --- /dev/null +++ b/packages/api-derive/src/balances/votingBalances.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, AccountIndex, Address } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveBalancesAccount } from '../types.js'; + +import { combineLatest, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name votingBalances + * @description Retrieves the balance information for multiple accounts, typically used in governance-related contexts to check voting power. + * @param {(AccountId | AccountIndex | Address | string)[]} addresses An array of account identifiers. + * @example + * ```javascript + * const addresses = ["5D4b...Zf1", "5HGj...yrV"]; + * const balances = await api.derive.balances.votingBalances(addresses); + * console.log("Voting Balances:", balances); + * ``` + */ +export function votingBalances (instanceId: string, api: DeriveApi): (addresses?: (AccountId | AccountIndex | Address | string)[]) => Observable { + return memo(instanceId, (addresses?: (AccountId | AccountIndex | Address | string)[]): Observable => + !addresses?.length + ? of([] as DeriveBalancesAccount[]) + : combineLatest( + addresses.map((accountId): Observable => + api.derive.balances.account(accountId) + ) + ) + ); +} diff --git a/packages/api-derive/src/bounties/bounties.spec.ts b/packages/api-derive/src/bounties/bounties.spec.ts new file mode 100644 index 0000000..1559092 --- /dev/null +++ b/packages/api-derive/src/bounties/bounties.spec.ts @@ -0,0 +1,162 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { ApiPromise } from '@pezkuwi/api'; +import type { SubmittableExtrinsic } from '@pezkuwi/api-base/types'; +import type { Bytes, Option, StorageKey } from '@pezkuwi/types'; +import type { Bounty, BountyIndex, Proposal, ProposalIndex } from '@pezkuwi/types/interfaces'; +import type { Codec, InterfaceTypes } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveCollectiveProposal } from '../types.js'; + +import { firstValueFrom, of } from 'rxjs'; + +import { BountyFactory } from '../test/bountyFactory.js'; +import { BytesFactory } from '../test/bytesFactory.js'; +import { createApiWithAugmentations } from '../test/helpers.js'; +import { ProposalFactory } from '../test/proposalFactory.js'; +import { bounties } from './index.js'; + +const DEFAULT_PROPOSER = '5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM'; + +describe('bounties derive', () => { + let storageKey: (index: number) => StorageKey; + let defaultBounty: () => Bounty; + let emptyOption: (typeName: keyof InterfaceTypes) => Option; + let optionOf: (value: T) => Option; + let bountyIndex: (index: number) => BountyIndex; + let proposalIndex: (index: number) => ProposalIndex; + let bytes: (value: string) => Bytes; + let api: ApiPromise; + let createProposal: (method: SubmittableExtrinsic<'promise'>) => Proposal; + let defaultMockApi: DeriveApi; + + beforeAll(() => { + api = createApiWithAugmentations(); + + ({ bountyIndex, defaultBounty, emptyOption, optionOf, storageKey } = new BountyFactory(api)); + ({ bytes } = new BytesFactory(api.registry)); + ({ createProposal, proposalIndex } = new ProposalFactory(api)); + }); + + beforeEach(() => { + defaultMockApi = { + derive: { + council: { + proposals: () => of([] as DeriveCollectiveProposal[]) + } + }, + query: { + council: { + proposalCount: () => of(proposalIndex(2)) + }, + treasury: { + bounties: { + keys: () => of([storageKey(0), storageKey(1)]), + multi: () => of([optionOf(defaultBounty()), optionOf(defaultBounty())]) + }, + bountyCount: () => of(bountyIndex(2)), + bountyDescriptions: { + multi: () => of([ + optionOf(bytes('make pezkuwi even better')), + optionOf(bytes('some other bounty')) + ]) + } + } + }, + tx: api.tx + } as unknown as DeriveApi; + }); + + it('creates storage key', function () { + expect(storageKey(194).args[0].eq(194)).toBe(true); + }); + + it('creates proposal', function () { + expect(createProposal(api.tx.balances.transferAllowDeath('5EYCAe5ijiYfyeZ2JJCGq56LmPyNRAKzpG4QkoQkkQNB5e6Z', 1))).toBeTruthy(); + }); + + it('combines bounties with descriptions', async () => { + const mockApi = { + ...defaultMockApi, + query: { + ...defaultMockApi.query, + treasury: { + bounties: { + keys: () => of([storageKey(0), storageKey(2), storageKey(3)]), + multi: () => of([optionOf(defaultBounty()), emptyOption('Bounty'), optionOf(defaultBounty())]) + }, + bountyCount: () => of(bountyIndex(3)), + bountyDescriptions: { + multi: () => of([ + optionOf(bytes('make pezkuwi even better')), + optionOf(bytes('this will be totally ignored')), + emptyOption('Bytes') + ]) + } + } + } + } as unknown as DeriveApi; + + const result = await firstValueFrom(bounties('', mockApi)()); + + expect(result).toHaveLength(2); + expect(result[0].bounty.proposer.toString()).toEqual(DEFAULT_PROPOSER); + expect(result[0].description).toEqual('make pezkuwi even better'); + expect(result[0].index.eq(0)).toBe(true); + expect(result[1].bounty.proposer.toString()).toEqual(DEFAULT_PROPOSER); + expect(result[1].description).toEqual(''); + expect(result[1].index.eq(3)).toBe(true); + }); + + it('returns motions', async () => { + const result = await firstValueFrom(bounties('', defaultMockApi)()); + + expect(result).toHaveLength(2); + expect(result[0].proposals).toHaveLength(0); + expect(result[1].proposals).toHaveLength(0); + }); + + it('when no council, returns bounties without motions', async () => { + const mockApi = { + ...defaultMockApi, + query: { + ...defaultMockApi.query, + council: null + } + } as unknown as DeriveApi; + + const result = await firstValueFrom(bounties('', mockApi)()); + + expect(result).toHaveLength(2); + expect(result[0].bounty.proposer.toString()).toEqual(DEFAULT_PROPOSER); + expect(result[0].description).toEqual('make pezkuwi even better'); + expect(result[0].index.eq(0)).toBe(true); + expect(result[0].proposals).toHaveLength(0); + expect(result[1].bounty.proposer.toString()).toEqual(DEFAULT_PROPOSER); + expect(result[1].description).toEqual('some other bounty'); + expect(result[1].index.eq(1)).toBe(true); + expect(result[1].proposals).toHaveLength(0); + }); + + it('combines bounties with motions', async () => { + const mockApi = { + ...defaultMockApi, + derive: { + council: { + proposals: () => of([ + { proposal: createProposal(api.tx.bounties.approveBounty(1)) }, + { proposal: api.tx.treasury['approveProposal'] && createProposal(api.tx.treasury['approveProposal'](1)) }] as DeriveCollectiveProposal[]) + } + } + } as unknown as DeriveApi; + + const result = await firstValueFrom(bounties('', mockApi)()); + + expect(result).toHaveLength(2); + expect(result[0].proposals).toHaveLength(0); + expect(result[1].proposals).toHaveLength(1); + expect(result[1].proposals[0].proposal?.method).toEqual('approveBounty'); + }); +}); diff --git a/packages/api-derive/src/bounties/bounties.ts b/packages/api-derive/src/bounties/bounties.ts new file mode 100644 index 0000000..74dc745 --- /dev/null +++ b/packages/api-derive/src/bounties/bounties.ts @@ -0,0 +1,76 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Bytes, Option } from '@pezkuwi/types'; +import type { BountyIndex } from '@pezkuwi/types/interfaces'; +import type { PezpalletBountiesBounty } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveBounties, DeriveCollectiveProposal } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { filterBountiesProposals } from './helpers/filterBountyProposals.js'; + +type Result = [Option[], Option[], BountyIndex[], DeriveCollectiveProposal[]]; + +function parseResult ([maybeBounties, maybeDescriptions, ids, bountyProposals]: Result): DeriveBounties { + const bounties: DeriveBounties = []; + + maybeBounties.forEach((bounty, index) => { + if (bounty.isSome) { + bounties.push({ + bounty: bounty.unwrap(), + description: maybeDescriptions[index].unwrapOrDefault().toUtf8(), + index: ids[index], + proposals: bountyProposals.filter((bountyProposal) => + bountyProposal.proposal && ids[index].eq(bountyProposal.proposal.args[0]) + ) + }); + } + }); + + return bounties; +} + +/** + * @name bounties + * @descrive Retrieves all active bounties, their descriptions, and associated proposals. + * @example + * ```javascript + * const bounties = await api.derive.bounties(); + * console.log("Active bounties:", bounties); + * ``` + */ +export function bounties (instanceId: string, api: DeriveApi): () => Observable { + const bountyBase = api.query.bounties || api.query.treasury; + + return memo(instanceId, (): Observable => + bountyBase.bounties + ? combineLatest([ + bountyBase.bountyCount(), + api.query.council + ? api.query.council.proposalCount() + : of(0) + ]).pipe( + switchMap(() => combineLatest([ + bountyBase.bounties.keys(), + api.derive.council + ? api.derive.council.proposals() + : of([]) + ])), + switchMap(([keys, proposals]): Observable => { + const ids = keys.map(({ args: [id] }) => id); + + return combineLatest([ + bountyBase.bounties.multi(ids), + bountyBase.bountyDescriptions.multi(ids), + of(ids), + of(filterBountiesProposals(api, proposals)) + ]); + }), + map(parseResult) + ) + : of(parseResult([[], [], [], []])) + ); +} diff --git a/packages/api-derive/src/bounties/helpers/filterBountyProposals.ts b/packages/api-derive/src/bounties/helpers/filterBountyProposals.ts new file mode 100644 index 0000000..b8fd3a4 --- /dev/null +++ b/packages/api-derive/src/bounties/helpers/filterBountyProposals.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveApi, DeriveCollectiveProposal } from '../../types.js'; + +export function filterBountiesProposals (api: DeriveApi, allProposals: DeriveCollectiveProposal[]): DeriveCollectiveProposal[] { + const bountyTxBase = api.tx.bounties ? api.tx.bounties : api.tx.treasury; + const bountyProposalCalls = [bountyTxBase.approveBounty, bountyTxBase.closeBounty, bountyTxBase.proposeCurator, bountyTxBase.unassignCurator]; + + return allProposals.filter((proposal) => bountyProposalCalls.find((bountyCall) => + proposal.proposal && bountyCall.is(proposal.proposal)) + ); +} diff --git a/packages/api-derive/src/bounties/index.ts b/packages/api-derive/src/bounties/index.ts new file mode 100644 index 0000000..637b8d3 --- /dev/null +++ b/packages/api-derive/src/bounties/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './bounties.js'; diff --git a/packages/api-derive/src/bundle.ts b/packages/api-derive/src/bundle.ts new file mode 100644 index 0000000..7c1fa51 --- /dev/null +++ b/packages/api-derive/src/bundle.ts @@ -0,0 +1,140 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveCustom } from '@pezkuwi/api-base/types'; +import type { AnyFunction, AnyString } from '@pezkuwi/types/types'; +import type { ExactDerive } from './derive.js'; +import type { DeriveApi } from './types.js'; + +import { lazyDeriveSection } from './util/index.js'; +import { derive } from './derive.js'; + +export * from './derive.js'; +export * from './type/index.js'; + +interface Avail { + instances: string[]; + methods: string[]; + withDetect?: boolean; +} + +export { lazyDeriveSection }; + +// Enable derive only if some of these modules are available +const checks: Record = { + allianceMotion: { + instances: ['allianceMotion'], + methods: [] + }, + bagsList: { + instances: ['voterBagsList', 'voterList', 'bagsList'], + methods: [], + withDetect: true + }, + contracts: { + instances: ['contracts'], + methods: [] + }, + council: { + instances: ['council'], + methods: [], + withDetect: true + }, + crowdloan: { + instances: ['crowdloan'], + methods: [] + }, + democracy: { + instances: ['democracy'], + methods: [] + }, + elections: { + instances: ['phragmenElection', 'electionsPhragmen', 'elections', 'council'], + methods: [], + withDetect: true + }, + imOnline: { + instances: ['imOnline'], + methods: [] + }, + membership: { + instances: ['membership'], + methods: [] + }, + teyrchains: { + instances: ['teyrchains', 'registrar'], + methods: [] + }, + session: { + instances: ['session'], + methods: [] + }, + society: { + instances: ['society'], + methods: [] + }, + staking: { + instances: ['staking'], + methods: ['erasRewardPoints'] + }, + technicalCommittee: { + instances: ['technicalCommittee'], + methods: [], + withDetect: true + }, + treasury: { + instances: ['treasury'], + methods: [] + } +}; + +function getModuleInstances (api: DeriveApi, specName: AnyString, moduleName: string): string[] { + return api.registry.getModuleInstances(specName, moduleName) || []; +} + +/** + * Returns an object that will inject `api` into all the functions inside + * `allSections`, and keep the object architecture of `allSections`. + */ +/** @internal */ +function injectFunctions (instanceId: string, api: DeriveApi, derives: DeriveCustom): ExactDerive { + const result: Record> = {}; + const names = Object.keys(derives); + const keys = Object.keys(api.query); + const specName = api.runtimeVersion.specName; + + const filterKeys = (q: string) => keys.includes(q); + const filterInstances = (q: string) => getModuleInstances(api, specName, q).some(filterKeys); + const filterMethods = (all: string[]) => (m: string) => all.some((q) => keys.includes(q) && api.query[q][m]); + const getKeys = (s: string) => Object.keys(derives[s]); + const creator = (s: string, m: string) => derives[s][m](instanceId, api); + const isIncluded = (c: string) => (!checks[c] || ( + (checks[c].instances.some(filterKeys) && ( + !checks[c].methods.length || + checks[c].methods.every(filterMethods(checks[c].instances)) + )) || + ( + checks[c].withDetect && + checks[c].instances.some(filterInstances) + ) + )); + + for (let i = 0, count = names.length; i < count; i++) { + const name = names[i]; + + isIncluded(name) && + lazyDeriveSection(result, name, getKeys, creator); + } + + return result as ExactDerive; +} + +// FIXME The return type of this function should be {...ExactDerive, ...DeriveCustom} +// For now we just drop the custom derive typings +/** @internal */ +export function getAvailableDerives (instanceId: string, api: DeriveApi, custom: DeriveCustom = {}): ExactDerive { + return { + ...injectFunctions(instanceId, api, derive as DeriveCustom), + ...injectFunctions(instanceId, api, custom) + }; +} diff --git a/packages/api-derive/src/chain/bestNumber.ts b/packages/api-derive/src/chain/bestNumber.ts new file mode 100644 index 0000000..e5e2605 --- /dev/null +++ b/packages/api-derive/src/chain/bestNumber.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveApi } from '../types.js'; + +import { createBlockNumberDerive } from './util.js'; + +/** + * @name bestNumber + * @descrive Retrieves the latest block number. + * @example + * ```javascript + * api.derive.chain.bestNumber((blockNumber) => { + * console.log(`the current best block is #${blockNumber}`); + * }); + * ``` + */ +export const bestNumber = /*#__PURE__*/ createBlockNumberDerive( + (api: DeriveApi) => + api.rpc.chain.subscribeNewHeads() +); diff --git a/packages/api-derive/src/chain/bestNumberFinalized.ts b/packages/api-derive/src/chain/bestNumberFinalized.ts new file mode 100644 index 0000000..aea10b7 --- /dev/null +++ b/packages/api-derive/src/chain/bestNumberFinalized.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveApi } from '../types.js'; + +import { createBlockNumberDerive } from './util.js'; + +/** + * @name bestNumberFinalized + * @returns A BlockNumber + * @description Get the latest finalized block number. + * @example + * ```javascript + * api.derive.chain.bestNumberFinalized((blockNumber) => { + * console.log(`the current finalized block is #${blockNumber}`); + * }); + * ``` + */ +export const bestNumberFinalized = /*#__PURE__*/ createBlockNumberDerive( + (api: DeriveApi) => + api.rpc.chain.subscribeFinalizedHeads() +); diff --git a/packages/api-derive/src/chain/bestNumberLag.ts b/packages/api-derive/src/chain/bestNumberLag.ts new file mode 100644 index 0000000..ce5def2 --- /dev/null +++ b/packages/api-derive/src/chain/bestNumberLag.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BlockNumber } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { combineLatest, map } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name bestNumberLag + * @returns A number of blocks + * @description Calculates the lag between finalized head and best head + * @examplew + * ```javascript + * api.derive.chain.bestNumberLag((lag) => { + * console.log(`finalized is ${lag} blocks behind head`); + * }); + * ``` + */ +export function bestNumberLag (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + combineLatest([ + api.derive.chain.bestNumber(), + api.derive.chain.bestNumberFinalized() + ]).pipe( + map(([bestNumber, bestNumberFinalized]): BlockNumber => + api.registry.createType('BlockNumber', bestNumber.sub(bestNumberFinalized)) + ) + )); +} diff --git a/packages/api-derive/src/chain/getBlock.ts b/packages/api-derive/src/chain/getBlock.ts new file mode 100644 index 0000000..f4e2279 --- /dev/null +++ b/packages/api-derive/src/chain/getBlock.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { SignedBlockExtended } from '../type/types.js'; +import type { DeriveApi } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { createSignedBlockExtended } from '../type/index.js'; +import { memo } from '../util/index.js'; +import { getAuthorDetails } from './util.js'; + +/** + * @name getBlock + * @param {( Uint8Array | string )} hash A block hash as U8 array or string. + * @description Get a specific block (e.g. rpc.chain.getBlock) and extend it with the author + * @example + * ```javascript + * const { author, block } = await api.derive.chain.getBlock('0x123...456'); + * + * console.log(`block #${block.header.number} was authored by ${author}`); + * ``` + */ +export function getBlock (instanceId: string, api: DeriveApi): (hash: Uint8Array | string) => Observable { + return memo(instanceId, (blockHash: Uint8Array | string): Observable => + combineLatest([ + api.rpc.chain.getBlock(blockHash), + api.queryAt(blockHash) + ]).pipe( + switchMap(([signedBlock, queryAt]) => + combineLatest([ + of(signedBlock), + queryAt.system.events(), + getAuthorDetails(api, signedBlock.block.header, blockHash) + ]) + ), + map(([signedBlock, events, [, validators, author]]) => + createSignedBlockExtended(events.registry, signedBlock, events, validators, author) + ) + ) + ); +} diff --git a/packages/api-derive/src/chain/getBlockByNumber.ts b/packages/api-derive/src/chain/getBlockByNumber.ts new file mode 100644 index 0000000..aa152fb --- /dev/null +++ b/packages/api-derive/src/chain/getBlockByNumber.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AnyNumber } from '@pezkuwi/types/types'; +import type { SignedBlockExtended } from '../type/types.js'; +import type { DeriveApi } from '../types.js'; + +import { switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name getBlockByNumber + * @param {( BN | bigint | Uint8Array | number | string )} blockNumber + * @description Get a specific block (e.g. rpc.chain.getBlock) and extend it with the author by block number + * @example + * ```javascript + * const { author, block } = await api.derive.chain.getBlockByNumber(123); + * + * console.log(`block #${block.header.number} was authored by ${author}`); + * ``` + */ +export function getBlockByNumber (instanceId: string, api: DeriveApi): (blockNumber: AnyNumber) => Observable { + return memo(instanceId, (blockNumber: AnyNumber): Observable => + api.rpc.chain.getBlockHash(blockNumber).pipe( + switchMap((h) => api.derive.chain.getBlock(h)) + ) + ); +} diff --git a/packages/api-derive/src/chain/getHeader.ts b/packages/api-derive/src/chain/getHeader.ts new file mode 100644 index 0000000..f24ddeb --- /dev/null +++ b/packages/api-derive/src/chain/getHeader.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { HeaderExtended } from '../type/types.js'; +import type { DeriveApi } from '../types.js'; + +import { map, switchMap } from 'rxjs'; + +import { createHeaderExtended } from '../type/index.js'; +import { memo } from '../util/index.js'; +import { getAuthorDetails } from './util.js'; + +/** + * @name getHeader + * @param {( Uint8Array | string )} hash - A block hash as U8 array or string. + * @returns An array containing the block header and the block author + * @description Get a specific block header and extend it with the author + * @example + * ```javascript + * const { author, number } = await api.derive.chain.getHeader('0x123...456'); + * + * console.log(`block #${number} was authored by ${author}`); + * ``` + */ +export function getHeader (instanceId: string, api: DeriveApi): (blockHash: Uint8Array | string) => Observable { + return memo(instanceId, (blockHash: Uint8Array | string): Observable => + api.rpc.chain.getHeader(blockHash).pipe( + switchMap((header) => + getAuthorDetails(api, header, blockHash) + ), + map(([header, validators, author]) => + createHeaderExtended((validators || header).registry, header, validators, author) + ) + ) + ); +} diff --git a/packages/api-derive/src/chain/index.ts b/packages/api-derive/src/chain/index.ts new file mode 100644 index 0000000..509ec8c --- /dev/null +++ b/packages/api-derive/src/chain/index.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './bestNumber.js'; +export * from './bestNumberFinalized.js'; +export * from './bestNumberLag.js'; +export * from './getBlock.js'; +export * from './getBlockByNumber.js'; +export * from './getHeader.js'; +export * from './subscribeFinalizedBlocks.js'; +export * from './subscribeFinalizedHeads.js'; +export * from './subscribeNewBlocks.js'; +export * from './subscribeNewHeads.js'; diff --git a/packages/api-derive/src/chain/subscribeFinalizedBlocks.ts b/packages/api-derive/src/chain/subscribeFinalizedBlocks.ts new file mode 100644 index 0000000..794133a --- /dev/null +++ b/packages/api-derive/src/chain/subscribeFinalizedBlocks.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { SignedBlockExtended } from '../type/types.js'; +import type { DeriveApi } from '../types.js'; + +import { switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name subscribeFinalizedBlocks + * @description Retrieves the finalized block & events for that block + * @example + * ```javascript + * const unsub = await api.derive.chain.subscribeFinalizedBlocks((finalizedBlock) => { + * console.log(`# Finalized block ${finalizedBlock.block.hash}`); + * }); + * ``` + */ +export function subscribeFinalizedBlocks (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.chain.subscribeFinalizedHeads().pipe( + switchMap((header) => + api.derive.chain.getBlock(header.createdAtHash || header.hash) + ) + ) + ); +} diff --git a/packages/api-derive/src/chain/subscribeFinalizedHeads.ts b/packages/api-derive/src/chain/subscribeFinalizedHeads.ts new file mode 100644 index 0000000..22b2cc7 --- /dev/null +++ b/packages/api-derive/src/chain/subscribeFinalizedHeads.ts @@ -0,0 +1,62 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Hash, Header } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { from, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * Returns a header range from startHash to to (not including) endHash, i.e. lastBlock.parentHash === endHash + */ +export function _getHeaderRange (instanceId: string, api: DeriveApi): (startHash: Hash, endHash: Hash, prev?: Header[]) => Observable { + return memo(instanceId, (startHash: Hash, endHash: Hash, prev: Header[] = []): Observable => + api.rpc.chain.getHeader(startHash).pipe( + switchMap((header) => + header.parentHash.eq(endHash) + ? of([header, ...prev]) + : api.derive.chain._getHeaderRange(header.parentHash, endHash, [header, ...prev]) + ) + ) + ); +} + +/** + * @name subscribeFinalizedHeads + * @description An observable of the finalized block headers. Unlike the base + * chain.subscribeFinalizedHeads this does not skip any headers. Since finalization + * may skip specific blocks (finalization happens in terms of chains), this version + * of the derive tracks missing headers (since last retrieved) and provides them + * to the caller. + * @example + * ```javascript + * const unsub = await api.derive.chain.subscribeFinalizedHeads((finalizedHead) => { + * console.log(`${finalizedHead.hash}`); + * }); + * ``` + */ +export function subscribeFinalizedHeads (instanceId: string, api: DeriveApi): () => Observable
{ + return memo(instanceId, (): Observable
=> { + let prevHash: Hash | null = null; + + return api.rpc.chain.subscribeFinalizedHeads().pipe( + switchMap((header) => { + const endHash = prevHash; + const startHash = header.parentHash; + + prevHash = header.createdAtHash = header.hash; + + return endHash === null || startHash.eq(endHash) + ? of(header) + : api.derive.chain._getHeaderRange(startHash, endHash, [header]).pipe( + switchMap((headers) => + from(headers) + ) + ); + }) + ); + }); +} diff --git a/packages/api-derive/src/chain/subscribeNewBlocks.ts b/packages/api-derive/src/chain/subscribeNewBlocks.ts new file mode 100644 index 0000000..e8aba3b --- /dev/null +++ b/packages/api-derive/src/chain/subscribeNewBlocks.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { SignedBlockExtended } from '../type/types.js'; +import type { DeriveApi } from '../types.js'; + +import { switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name subscribeNewBlocks + * @returns The latest block & events for that block + * @example + * ```javascript + * const unsub = await api.derive.chain.subscribeNewBlocks((newBlock) => { + * console.log(`Block Hash: ${newBlock.hash}`); + * }); + * ``` + */ +export function subscribeNewBlocks (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.chain.subscribeNewHeads().pipe( + switchMap((header) => + api.derive.chain.getBlock(header.createdAtHash || header.hash) + ) + ) + ); +} diff --git a/packages/api-derive/src/chain/subscribeNewHeads.ts b/packages/api-derive/src/chain/subscribeNewHeads.ts new file mode 100644 index 0000000..67acb88 --- /dev/null +++ b/packages/api-derive/src/chain/subscribeNewHeads.ts @@ -0,0 +1,38 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { HeaderExtended } from '../type/types.js'; +import type { DeriveApi } from '../types.js'; + +import { map, switchMap } from 'rxjs'; + +import { createHeaderExtended } from '../type/index.js'; +import { memo } from '../util/index.js'; +import { getAuthorDetails } from './util.js'; + +/** + * @name subscribeNewHeads + * @returns A header with the current header (including extracted author). + * @description An observable of the current block header and it's author. + * @example + * ```javascript + * api.derive.chain.subscribeNewHeads((header) => { + * console.log(`block #${header.number} was authored by ${header.author}`); + * }); + * ``` + */ +export function subscribeNewHeads (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.rpc.chain.subscribeNewHeads().pipe( + switchMap((header) => + getAuthorDetails(api, header) + ), + map(([header, validators, author]): HeaderExtended => { + header.createdAtHash = header.hash; + + return createHeaderExtended(header.registry, header, validators, author); + }) + ) + ); +} diff --git a/packages/api-derive/src/chain/util.ts b/packages/api-derive/src/chain/util.ts new file mode 100644 index 0000000..ff9e67f --- /dev/null +++ b/packages/api-derive/src/chain/util.ts @@ -0,0 +1,112 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { QueryableStorage } from '@pezkuwi/api-base/types'; +import type { Compact, Vec } from '@pezkuwi/types'; +import type { AccountId, BlockNumber, Header } from '@pezkuwi/types/interfaces'; +import type { PezpalletImOnlineSr25519AppSr25519Public } from '@pezkuwi/types/lookup'; +import type { Codec, IOption } from '@pezkuwi/types/types'; +import type { DeriveApi } from '../types.js'; + +import { combineLatest, map, mergeMap, of, switchMap } from 'rxjs'; + +import { memo, unwrapBlockNumber } from '../util/index.js'; + +export type BlockNumberDerive = (instanceId: string, api: DeriveApi) => () => Observable; + +type OptionMapping = IOption<{ account: AccountId } & Codec>; +type OptionNimbus = IOption<{ nimbus: PezpalletImOnlineSr25519AppSr25519Public } & Codec>; + +export function createBlockNumberDerive | BlockNumber }> (fn: (api: DeriveApi) => Observable): BlockNumberDerive { + return (instanceId: string, api: DeriveApi) => + memo(instanceId, () => + fn(api).pipe( + map(unwrapBlockNumber) + ) + ); +} + +/** @internal */ +function getAuthorDetailsWithAt (header: Header, queryAt: QueryableStorage<'rxjs'>): Observable<[Header, Vec | null, AccountId | null]> { + const validators = queryAt.session?.validators + ? queryAt.session.validators() + : of(null); + + // nimbus consensus stores the session key of the block author in header logs + const { logs: [log] } = header.digest; + const loggedAuthor = (log && ( + (log.isConsensus && log.asConsensus[0].isNimbus && log.asConsensus[1]) || + (log.isPreRuntime && log.asPreRuntime[0].isNimbus && log.asPreRuntime[1]) + )); + + if (loggedAuthor) { + // use the author mapping pallet, if available (ie: moonbeam, moonriver), to map session (nimbus) key to author (collator/validator) key + if (queryAt['authorMapping']?.['mappingWithDeposit']) { + return combineLatest([ + of(header), + validators, + queryAt['authorMapping']['mappingWithDeposit'](loggedAuthor).pipe( + map((o) => + o.unwrapOr({ account: null }).account + ) + ) + ]); + } + + // fall back to session and teyrchain staking pallets, if available (ie: manta, calamari), to map session (nimbus) key to author (collator) key + if (queryAt['teyrchainStaking']?.['selectedCandidates'] && queryAt.session?.nextKeys) { + const loggedHex = loggedAuthor.toHex(); + + return combineLatest([ + of(header), + validators, + queryAt['teyrchainStaking']['selectedCandidates']>().pipe( + mergeMap((selectedCandidates) => + combineLatest([ + of(selectedCandidates), + queryAt.session.nextKeys.multi(selectedCandidates).pipe( + map((nextKeys) => + nextKeys.findIndex((o) => + o.unwrapOrDefault().nimbus.toHex() === loggedHex + ) + ) + ) + ]) + ), + map(([selectedCandidates, index]) => + index === -1 + ? null + : selectedCandidates[index] + ) + ) + ]); + } + } + + // normal operation, non-mapping + return combineLatest([ + of(header), + validators, + of(null) + ]); +} + +export function getAuthorDetails (api: DeriveApi, header: Header, blockHash?: Uint8Array | string): Observable<[Header, Vec | null, AccountId | null]> { + // For on-chain state, we need to retrieve it as per the start + // of the block being constructed, i.e. session validators would + // be at the point of the block construction, not when all operations + // has been supplied. + // + // However for the first block (no parentHash available), we would + // just use the as-is + return api.queryAt( + header.parentHash.isEmpty + ? blockHash || header.hash + : header.parentHash + ).pipe( + switchMap((queryAt) => + getAuthorDetailsWithAt(header, queryAt) + ) + ); +} diff --git a/packages/api-derive/src/checkTypes.manual.ts b/packages/api-derive/src/checkTypes.manual.ts new file mode 100644 index 0000000..0b2d628 --- /dev/null +++ b/packages/api-derive/src/checkTypes.manual.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/api-augment'; + +import { derive } from './index.js'; + +console.log(derive.chain.bestNumber); diff --git a/packages/api-derive/src/collective/helpers.ts b/packages/api-derive/src/collective/helpers.ts new file mode 100644 index 0000000..76e626b --- /dev/null +++ b/packages/api-derive/src/collective/helpers.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi } from '../types.js'; +import type { Collective } from './types.js'; + +import { of } from 'rxjs'; + +import { isFunction } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +export function getInstance (api: DeriveApi, section: string): DeriveApi['query']['council'] { + const instances = api.registry.getModuleInstances(api.runtimeVersion.specName, section); + const name = instances?.length + ? instances[0] + : section; + + return api.query[name as 'council']; +} + +export function withSection Observable> (section: Collective, fn: (query: DeriveApi['query']['council'], api: DeriveApi, instanceId: string) => F): (instanceId: string, api: DeriveApi) => F { + return (instanceId: string, api: DeriveApi) => + memo(instanceId, fn(getInstance(api, section), api, instanceId)) as unknown as F; +} + +export function callMethod (method: 'members' | 'proposals' | 'proposalCount', empty: T): (section: Collective) => (instanceId: string, api: DeriveApi) => () => Observable { + return (section: Collective) => + withSection(section, (query) => + (): Observable => + isFunction(query?.[method]) + ? query[method]() as unknown as Observable + : of(empty) + ); +} diff --git a/packages/api-derive/src/collective/index.ts b/packages/api-derive/src/collective/index.ts new file mode 100644 index 0000000..0730af1 --- /dev/null +++ b/packages/api-derive/src/collective/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './members.js'; +export * from './prime.js'; +export * from './proposals.js'; diff --git a/packages/api-derive/src/collective/members.ts b/packages/api-derive/src/collective/members.ts new file mode 100644 index 0000000..a9967de --- /dev/null +++ b/packages/api-derive/src/collective/members.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { MembersFn } from './types.js'; + +import { callMethod } from './helpers.js'; + +export const members: MembersFn = /*#__PURE__*/ callMethod('members', []); diff --git a/packages/api-derive/src/collective/prime.ts b/packages/api-derive/src/collective/prime.ts new file mode 100644 index 0000000..da85550 --- /dev/null +++ b/packages/api-derive/src/collective/prime.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { Collective, PrimeFnRet } from './types.js'; + +import { map, of } from 'rxjs'; + +import { isFunction } from '@pezkuwi/util'; + +import { withSection } from './helpers.js'; + +export function prime (section: Collective): PrimeFnRet { + return withSection(section, (query) => + (): Observable => + isFunction(query?.prime) + ? query.prime().pipe( + map((o): AccountId | null => + o.unwrapOr(null) + ) + ) + : of(null) + ); +} diff --git a/packages/api-derive/src/collective/proposals.ts b/packages/api-derive/src/collective/proposals.ts new file mode 100644 index 0000000..d77e4de --- /dev/null +++ b/packages/api-derive/src/collective/proposals.ts @@ -0,0 +1,73 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option } from '@pezkuwi/types'; +import type { Hash, Proposal, Votes } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveCollectiveProposal } from '../types.js'; +import type { Collective, HasProposalsFnRet, ProposalCountFn, ProposalFnRet, ProposalHashesFn, ProposalsFnRet } from './types.js'; + +import { catchError, combineLatest, map, of, switchMap } from 'rxjs'; + +import { isFunction } from '@pezkuwi/util'; + +import { firstObservable } from '../util/index.js'; +import { callMethod, withSection } from './helpers.js'; + +type Result = [(Hash | Uint8Array | string)[], (Option | null)[], Option[]]; + +function parse (api: DeriveApi, [hashes, proposals, votes]: Result): DeriveCollectiveProposal[] { + return proposals.map((o, index): DeriveCollectiveProposal => ({ + hash: api.registry.createType('Hash', hashes[index]), + proposal: o && o.isSome + ? o.unwrap() + : null, + votes: votes[index].unwrapOr(null) + })); +} + +function _proposalsFrom (api: DeriveApi, query: DeriveApi['query']['council'], hashes: (Hash | Uint8Array | string)[]): Observable { + return (isFunction(query?.proposals) && hashes.length + ? combineLatest([ + of(hashes), + // this should simply be api.query[section].proposalOf.multi>(hashes), + // however we have had cases on Edgeware where the indices have moved around after an + // upgrade, which results in invalid on-chain data + query.proposalOf.multi>(hashes).pipe( + catchError(() => of(hashes.map(() => null))) + ), + query.voting.multi>(hashes) + ]) + : of([[], [], []]) + ).pipe( + map((r) => parse(api, r)) + ); +} + +export function hasProposals (section: Collective): HasProposalsFnRet { + return withSection(section, (query) => + (): Observable => + of(isFunction(query?.proposals)) + ); +} + +export function proposals (section: Collective): ProposalsFnRet { + return withSection(section, (query, api) => + (): Observable => + api.derive[section as 'council'].proposalHashes().pipe( + switchMap((all) => _proposalsFrom(api, query, all)) + ) + ); +} + +export function proposal (section: Collective): ProposalFnRet { + return withSection(section, (query, api) => + (hash: Hash | Uint8Array | string): Observable => + isFunction(query?.proposals) + ? firstObservable(_proposalsFrom(api, query, [hash])) + : of(null) + ); +} + +export const proposalCount: ProposalCountFn = /*#__PURE__*/ callMethod('proposalCount', null); +export const proposalHashes: ProposalHashesFn = /*#__PURE__*/ callMethod('proposals', []); diff --git a/packages/api-derive/src/collective/types.ts b/packages/api-derive/src/collective/types.ts new file mode 100644 index 0000000..b973cd4 --- /dev/null +++ b/packages/api-derive/src/collective/types.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { u32 } from '@pezkuwi/types'; +import type { AccountId, Hash } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveCollectiveProposal } from '../types.js'; + +export type Collective = 'allianceMotion' | 'council' | 'membership' | 'technicalCommittee'; + +export type HasProposalsFnRet = (instanceId: string, api: DeriveApi) => () => Observable; +export type HasProposalsFn = (section: Collective) => HasProposalsFnRet; + +export type MembersFnRet = (instanceId: string, api: DeriveApi) => () => Observable; +export type MembersFn = (section: Collective) => MembersFnRet; + +export type PrimeFnRet = (instanceId: string, api: DeriveApi) => () => Observable; +export type PrimeFn = (section: Collective) => PrimeFnRet; + +export type ProposalFnRet = (instanceId: string, api: DeriveApi) => (hash: Hash | Uint8Array | string) => Observable; +export type ProposalFn = (section: Collective) => ProposalFnRet; + +export type ProposalsFnRet = (instanceId: string, api: DeriveApi) => () => Observable; +export type ProposalsFn = (section: Collective) => ProposalsFnRet; + +export type ProposalCountFnRet = (instanceId: string, api: DeriveApi) => () => Observable; +export type ProposalCountFn = (section: Collective) => ProposalCountFnRet; + +export type ProposalHashesFnRet = (instanceId: string, api: DeriveApi) => () => Observable; +export type ProposalHashesFn = (section: Collective) => ProposalHashesFnRet; diff --git a/packages/api-derive/src/contracts/fees.ts b/packages/api-derive/src/contracts/fees.ts new file mode 100644 index 0000000..e9884ee --- /dev/null +++ b/packages/api-derive/src/contracts/fees.ts @@ -0,0 +1,61 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi, DeriveContractFees } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +type ResultV2 = [BN, BN, BN, BN, BN, BN, BN, BN, BN, BN]; + +// query via constants (current applicable path) +function queryConstants (api: DeriveApi): Observable { + return of([ + // deprecated + api.consts.contracts['callBaseFee'] || api.registry.createType('Balance'), + api.consts.contracts['contractFee'] || api.registry.createType('Balance'), + api.consts.contracts['creationFee'] || api.registry.createType('Balance'), + api.consts.contracts['transactionBaseFee'] || api.registry.createType('Balance'), + api.consts.contracts['transactionByteFee'] || api.registry.createType('Balance'), + api.consts.contracts['transferFee'] || api.registry.createType('Balance'), + + // current + api.consts.contracts['rentByteFee'] || api.registry.createType('Balance'), + api.consts.contracts['rentDepositOffset'] || api.registry.createType('Balance'), + api.consts.contracts['surchargeReward'] || api.registry.createType('Balance'), + api.consts.contracts['tombstoneDeposit'] || api.registry.createType('Balance') + ]) as unknown as Observable; +} + +/** + * @name fees + * @returns An object containing the combined results of the queries for + * all relevant contract fees as declared in the bizinikiwi chain spec. + * @example + * ```javascript + * api.derive.contracts.fees(([creationFee, transferFee]) => { + * console.log(`The fee for creating a new contract on this chain is ${creationFee} units. The fee required to call this contract is ${transferFee} units.`); + * }); + * ``` + */ +export function fees (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => { + return queryConstants(api).pipe( + map(([callBaseFee, contractFee, creationFee, transactionBaseFee, transactionByteFee, transferFee, rentByteFee, rentDepositOffset, surchargeReward, tombstoneDeposit]): DeriveContractFees => ({ + callBaseFee, + contractFee, + creationFee, + rentByteFee, + rentDepositOffset, + surchargeReward, + tombstoneDeposit, + transactionBaseFee, + transactionByteFee, + transferFee + })) + ); + }); +} diff --git a/packages/api-derive/src/contracts/index.ts b/packages/api-derive/src/contracts/index.ts new file mode 100644 index 0000000..6b005e0 --- /dev/null +++ b/packages/api-derive/src/contracts/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './fees.js'; diff --git a/packages/api-derive/src/council/index.ts b/packages/api-derive/src/council/index.ts new file mode 100644 index 0000000..9368861 --- /dev/null +++ b/packages/api-derive/src/council/index.ts @@ -0,0 +1,79 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js'; + +export * from './votes.js'; +export * from './votesOf.js'; + +/** + * @name members + * @description Retrieves the list of members in the "council" collective. + * @example + * ```javascript + * const members = await api.derive.council.members(); + * console.log(`Members: ${JSON.stringify(members)}); + * ``` + */ +export const members = /*#__PURE__*/ collectiveMembers('council'); + +/** + * @name hasProposals + * @description Checks if there are any active proposals in the "council" collective. + * @example + * ```javascript + * const exists = await api.derive.council.hasProposals(); + * console.log(exists); + * ``` + */ +export const hasProposals = /*#__PURE__*/ collectiveHasProposals('council'); +/** + * @name proposal + * @description Retrieves details of a specific proposal in the "councilMotion" collective by its hash. + * @example + * ```javascript + * const proposalDetails = await api.derive.council.proposal(PROPOSAL_HASH); + * console.log(proposalDetails); + * ``` + */ +export const proposal = /*#__PURE__*/ collectiveProposal('council'); +/** + * @name proposalCount + * @description Retrieves the total number of proposals in the "council" collective. + * @example + * ```javascript + * const count = await api.derive.council.proposalCount(); + * console.log(`Amount of proposals: ${count}`); + * ``` + */ +export const proposalCount = /*#__PURE__*/ collectiveProposalCount('council'); +/** + * @name proposalHashes + * @description Retrieves an array of hashes for all active proposals in the "council" collective. + * @example + * ```javascript + * const hashes = await api.derive.council.proposalHashes(); + * console.log(`Proposals ${JSON.stringify(hashes)}`); + * ``` + */ +export const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('council'); +/** + * @name proposals + * @description Retrieves a list of all active proposals in the "council" collective. + * @example + * ```javascript + * const proposals = await api.derive.council.proposals(); + * console.log(proposals); + * ``` + */ +export const proposals = /*#__PURE__*/ collectiveProposals('council'); +/** + * @name prime + * @description Retrieves the prime member of the "council" collective, if one exists. + * @example + * ```javascript + * const primeMember = await api.derive.council.prime(); + * console.log(primeMember); + * ``` + */ +export const prime = /*#__PURE__*/ collectivePrime('council'); diff --git a/packages/api-derive/src/council/types.ts b/packages/api-derive/src/council/types.ts new file mode 100644 index 0000000..512397e --- /dev/null +++ b/packages/api-derive/src/council/types.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, Balance } from '@pezkuwi/types/interfaces'; + +export interface DeriveCouncilVote { + stake: Balance; + votes: AccountId[]; +} + +export type DeriveCouncilVotes = [AccountId, DeriveCouncilVote][]; diff --git a/packages/api-derive/src/council/votes.ts b/packages/api-derive/src/council/votes.ts new file mode 100644 index 0000000..5022058 --- /dev/null +++ b/packages/api-derive/src/council/votes.ts @@ -0,0 +1,97 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { QueryableModuleStorage } from '@pezkuwi/api-base/types'; +import type { Vec } from '@pezkuwi/types'; +import type { AccountId, Balance } from '@pezkuwi/types/interfaces'; +import type { PezpalletElectionsPhragmenVoter } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveCouncilVote, DeriveCouncilVotes } from '../types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +// Voter is current tuple is 2.x-era +type VoteEntry = PezpalletElectionsPhragmenVoter | ITuple<[Balance, Vec]>; + +function isVoter (value: VoteEntry): value is PezpalletElectionsPhragmenVoter { + return !Array.isArray(value); +} + +function retrieveStakeOf (elections: QueryableModuleStorage<'rxjs'>): Observable<[AccountId, Balance][]> { + return elections['stakeOf'].entries().pipe( + map((entries) => + entries.map(([{ args: [accountId] }, stake]) => [accountId, stake]) + ) + ); +} + +function retrieveVoteOf (elections: DeriveApi['query']['elections']): Observable<[AccountId, AccountId[]][]> { + return elections['votesOf'].entries, [AccountId]>().pipe( + map((entries) => + entries.map(([{ args: [accountId] }, votes]) => [accountId, votes]) + ) + ); +} + +function retrievePrev (api: DeriveApi, elections: DeriveApi['query']['elections']): Observable { + return combineLatest([ + retrieveStakeOf(elections), + retrieveVoteOf(elections) + ]).pipe( + map(([stakes, votes]): DeriveCouncilVotes => { + const result: DeriveCouncilVotes = []; + + votes.forEach(([voter, votes]): void => { + result.push([voter, { stake: api.registry.createType('Balance'), votes }]); + }); + + stakes.forEach(([staker, stake]): void => { + const entry = result.find(([voter]) => voter.eq(staker)); + + if (entry) { + entry[1].stake = stake; + } else { + result.push([staker, { stake, votes: [] }]); + } + }); + + return result; + }) + ); +} + +function retrieveCurrent (elections: DeriveApi['query']['elections']): Observable { + return elections.voting.entries().pipe( + map((entries): DeriveCouncilVotes => + entries.map(([{ args: [accountId] }, value]): [AccountId, DeriveCouncilVote] => [ + accountId, + isVoter(value) + ? { stake: value.stake, votes: value.votes } + : { stake: value[0], votes: value[1] } + ]) + ) + ); +} + +/** + * @name votes + * @description Retrieves the council election votes for all participants. + * @example + * ```javascript + * const votes = await api.derive.council.votes(); + * ``` + */ +export function votes (instanceId: string, api: DeriveApi): () => Observable { + const elections = api.query.elections || api.query['phragmenElection'] || api.query['electionsPhragmen']; + + return memo(instanceId, (): Observable => + elections + ? elections['stakeOf'] + ? retrievePrev(api, elections) + : retrieveCurrent(elections) + : of([]) + ); +} diff --git a/packages/api-derive/src/council/votesOf.ts b/packages/api-derive/src/council/votesOf.ts new file mode 100644 index 0000000..57ed090 --- /dev/null +++ b/packages/api-derive/src/council/votesOf.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveCouncilVote } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name votesOf + * @description Retrieves the council votes associated with a given account. + * @returns The stake and the list of candidates the account has voted for. + * @param {string | Uint8Array | AccountId} accountId The accountId to retrieve votes for. + * @example + * ```javascript + * const accountId = "5Gw3s7qQ9Z..."; // Replace with a valid account ID + * const votes = await api.derive.council.votesOf(accountId); + * console.log("Account votes:", votes); + * ``` + */ +export function votesOf (instanceId: string, api: DeriveApi): (accountId: string | Uint8Array | AccountId) => Observable { + return memo(instanceId, (accountId: string | Uint8Array | AccountId): Observable => + api.derive.council.votes().pipe( + map((votes): DeriveCouncilVote => + ( + votes.find(([from]) => from.eq(accountId)) || + [null, { stake: api.registry.createType('Balance'), votes: [] as AccountId[] }] + )[1] + ) + ) + ); +} diff --git a/packages/api-derive/src/crowdloan/childKey.ts b/packages/api-derive/src/crowdloan/childKey.ts new file mode 100644 index 0000000..a4494c9 --- /dev/null +++ b/packages/api-derive/src/crowdloan/childKey.ts @@ -0,0 +1,57 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u32 } from '@pezkuwi/types'; +import type { PezkuwiRuntimeCommonCrowdloanFundInfo } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; + +import { map } from 'rxjs'; + +import { u8aConcat, u8aToHex } from '@pezkuwi/util'; +import { blake2AsU8a } from '@pezkuwi/util-crypto'; + +import { memo } from '../util/index.js'; + +interface AllInfo extends PezkuwiRuntimeCommonCrowdloanFundInfo { + // previously it was named trieIndex + trieIndex?: u32; +} + +function createChildKey (info: AllInfo): string { + return u8aToHex( + u8aConcat( + ':child_storage:default:', + blake2AsU8a( + u8aConcat( + 'crowdloan', + (info.fundIndex || info.trieIndex).toU8a() + ) + ) + ) + ); +} + +/** + * @name childKey + * @description Retrieves the child storage key for a given teyrchain’s crowdloan contributions. + * This key is used to access contribution data stored in a separate child trie of the blockchain’s state. + * @param {string | number | BN} paraId The teyrchain ID for which contributions are being queried. + * @example + * ```javascript + * const childKey = await api.derive.crowdloan.childKey(3369); + * console.log("Child Key:", childKey); + * ``` + */ +export function childKey (instanceId: string, api: DeriveApi): (paraId: string | number | BN) => Observable { + return memo(instanceId, (paraId: string | number | BN): Observable => + api.query.crowdloan.funds>(paraId).pipe( + map((optInfo) => + optInfo.isSome + ? createChildKey(optInfo.unwrap()) + : null + ) + ) + ); +} diff --git a/packages/api-derive/src/crowdloan/contributions.ts b/packages/api-derive/src/crowdloan/contributions.ts new file mode 100644 index 0000000..8fa607a --- /dev/null +++ b/packages/api-derive/src/crowdloan/contributions.ts @@ -0,0 +1,142 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { StorageKey } from '@pezkuwi/types'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi, DeriveContributions } from '../types.js'; + +import { BehaviorSubject, combineLatest, EMPTY, map, of, startWith, switchMap, tap, toArray } from 'rxjs'; + +import { arrayFlatten, isFunction, nextTick } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { extractContributed } from './util.js'; + +interface Changes { + added: string[]; + blockHash: string; + removed: string[]; +} + +const PAGE_SIZE_K = 1000; // limit aligned with the 1k on the node (trie lookups are heavy) + +function _getUpdates (api: DeriveApi, paraId: string | number | BN): Observable { + let added: string[] = []; + let removed: string[] = []; + + return api.query.system.events().pipe( + switchMap((events): Observable => { + const changes = extractContributed(paraId, events); + + if (changes.added.length || changes.removed.length) { + added = added.concat(...changes.added); + removed = removed.concat(...changes.removed); + + return of({ added, addedDelta: changes.added, blockHash: events.createdAtHash?.toHex() || '-', removed, removedDelta: changes.removed }); + } + + return EMPTY; + }), + startWith({ added, addedDelta: [], blockHash: '-', removed, removedDelta: [] }) + ); +} + +function _eventTriggerAll (api: DeriveApi, paraId: string | number | BN): Observable { + return api.query.system.events().pipe( + switchMap((events): Observable => { + const items = events.filter(({ event: { data: [eventParaId], method, section } }) => + section === 'crowdloan' && + ['AllRefunded', 'Dissolved', 'PartiallyRefunded'].includes(method) && + eventParaId.eq(paraId) + ); + + return items.length + ? of(events.createdAtHash?.toHex() || '-') + : EMPTY; + }), + startWith('-') + ); +} + +function _getKeysPaged (api: DeriveApi, childKey: string): Observable { + const subject = new BehaviorSubject(undefined); + + return subject.pipe( + switchMap((startKey) => + api.rpc.childstate.getKeysPaged(childKey, '0x', PAGE_SIZE_K, startKey) + ), + tap((keys): void => { + nextTick((): void => { + keys.length === PAGE_SIZE_K + ? subject.next(keys[PAGE_SIZE_K - 1].toHex()) + : subject.complete(); + }); + }), + toArray(), // toArray since we want to startSubject to be completed + map((keyArr: StorageKey[][]) => arrayFlatten(keyArr)) + ); +} + +function _getAll (api: DeriveApi, paraId: string | number | BN, childKey: string): Observable { + return _eventTriggerAll(api, paraId).pipe( + switchMap(() => + isFunction(api.rpc.childstate.getKeysPaged) + ? _getKeysPaged(api, childKey) + : api.rpc.childstate.getKeys(childKey, '0x') + ), + map((keys) => + keys.map((k) => k.toHex()) + ) + ); +} + +function _contributions (api: DeriveApi, paraId: string | number | BN, childKey: string): Observable { + return combineLatest([ + _getAll(api, paraId, childKey), + _getUpdates(api, paraId) + ]).pipe( + map(([keys, { added, blockHash, removed }]): DeriveContributions => { + const contributorsMap: Record = {}; + + keys.forEach((k): void => { + contributorsMap[k] = true; + }); + + added.forEach((k): void => { + contributorsMap[k] = true; + }); + + removed.forEach((k): void => { + delete contributorsMap[k]; + }); + + return { + blockHash, + contributorsHex: Object.keys(contributorsMap) + }; + }) + ); +} + +/** + * @name contributions + * @description Retrieves all contributions for a given teyrchain crowdloan. + * @param {string | number | BN} paraId The teyrchain ID for which contributions are being queried. + * @example + * ```javascript + * const contributions = await api.derive.crowdloan.contributions(3369); + * console.log("Contributions:", contributions); + * ``` + */ +export function contributions (instanceId: string, api: DeriveApi): (paraId: string | number | BN) => Observable { + return memo(instanceId, (paraId: string | number | BN): Observable => + api.derive.crowdloan.childKey(paraId).pipe( + switchMap((childKey) => + childKey + ? _contributions(api, paraId, childKey) + : of({ blockHash: '-', contributorsHex: [] }) + ) + ) + ); +} diff --git a/packages/api-derive/src/crowdloan/index.ts b/packages/api-derive/src/crowdloan/index.ts new file mode 100644 index 0000000..b467369 --- /dev/null +++ b/packages/api-derive/src/crowdloan/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './childKey.js'; +export * from './contributions.js'; +export * from './ownContributions.js'; diff --git a/packages/api-derive/src/crowdloan/ownContributions.ts b/packages/api-derive/src/crowdloan/ownContributions.ts new file mode 100644 index 0000000..71f8cfb --- /dev/null +++ b/packages/api-derive/src/crowdloan/ownContributions.ts @@ -0,0 +1,81 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi, DeriveOwnContributions } from '../types.js'; + +import { combineLatest, EMPTY, map, of, startWith, switchMap } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { extractContributed } from './util.js'; + +function _getValues (api: DeriveApi, childKey: string, keys: string[]): Observable { + // We actually would love to use multi-keys https://github.com/pezkuwichain/bizinikiwi/issues/9203 + return combineLatest(keys.map((k) => api.rpc.childstate.getStorage(childKey, k))).pipe( + map((values) => + values + .map((v) => api.registry.createType('Option', v)) + .map((o) => + o.isSome + ? api.registry.createType('Balance', o.unwrap()) + : api.registry.createType('Balance') + ) + .reduce((all: DeriveOwnContributions, b, index): DeriveOwnContributions => + objectSpread(all, { [keys[index]]: b }), {}) + ) + ); +} + +function _watchOwnChanges (api: DeriveApi, paraId: string | number | BN, childkey: string, keys: string[]): Observable { + return api.query.system.events().pipe( + switchMap((events): Observable => { + const changes = extractContributed(paraId, events); + const filtered = keys.filter((k) => + changes.added.includes(k) || + changes.removed.includes(k) + ); + + return filtered.length + ? _getValues(api, childkey, filtered) + : EMPTY; + }), + startWith({}) + ); +} + +function _contributions (api: DeriveApi, paraId: string | number | BN, childKey: string, keys: string[]): Observable { + return combineLatest([ + _getValues(api, childKey, keys), + _watchOwnChanges(api, paraId, childKey, keys) + ]).pipe( + map(([all, latest]) => + objectSpread({}, all, latest) + ) + ); +} + +/** + * @name ownContributions + * @description Retrieves the contribution amounts made by specific accounts (`keys`) to a given teyrchain crowdloan (`paraId`). + * @param {string | number | BN} paraId The teyrchain ID for which contributions are being queried. + * @param {string[]} keys An array of account addresses whose contributions are to be fetched. + * @example + * ```javascript + * const contributions = await api.derive.crowdloan.ownContributions(2000, ['5Ff...PqV', '5Gg...XyZ']); + * console.log("Own Contributions:", contributions); + * ``` + */ +export function ownContributions (instanceId: string, api: DeriveApi): (paraId: string | number | BN, keys: string[]) => Observable { + return memo(instanceId, (paraId: string | number | BN, keys: string[]): Observable => + api.derive.crowdloan.childKey(paraId).pipe( + switchMap((childKey) => + childKey && keys.length + ? _contributions(api, paraId, childKey, keys) + : of({}) + ) + ) + ); +} diff --git a/packages/api-derive/src/crowdloan/types.ts b/packages/api-derive/src/crowdloan/types.ts new file mode 100644 index 0000000..36659d9 --- /dev/null +++ b/packages/api-derive/src/crowdloan/types.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Balance } from '@pezkuwi/types/interfaces'; + +export interface DeriveContributions { + blockHash: string; + contributorsHex: string[]; +} + +export type DeriveOwnContributions = Record; diff --git a/packages/api-derive/src/crowdloan/util.ts b/packages/api-derive/src/crowdloan/util.ts new file mode 100644 index 0000000..40dacc1 --- /dev/null +++ b/packages/api-derive/src/crowdloan/util.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PezframeSystemEventRecord } from '@pezkuwi/types/lookup'; +import type { Vec } from '@pezkuwi/types-codec'; +import type { BN } from '@pezkuwi/util'; + +interface Changes { + added: string[]; + blockHash: string; + removed: string[]; +} + +export function extractContributed (paraId: string | number | BN, events: Vec): Changes { + const added: string[] = []; + const removed: string[] = []; + + return events + .filter(({ event: { data: [, eventParaId], method, section } }) => + section === 'crowdloan' && + ['Contributed', 'Withdrew'].includes(method) && + eventParaId.eq(paraId) + ) + .reduce((result: Changes, { event: { data: [accountId], method } }): Changes => { + if (method === 'Contributed') { + result.added.push(accountId.toHex()); + } else { + result.removed.push(accountId.toHex()); + } + + return result; + }, { added, blockHash: events.createdAtHash?.toHex() || '-', removed }); +} diff --git a/packages/api-derive/src/democracy/dispatchQueue.ts b/packages/api-derive/src/democracy/dispatchQueue.ts new file mode 100644 index 0000000..8f90959 --- /dev/null +++ b/packages/api-derive/src/democracy/dispatchQueue.ts @@ -0,0 +1,158 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Bytes, Option, u8, u32, Vec } from '@pezkuwi/types'; +import type { BlockNumber, Call, Hash, ReferendumIndex, Scheduled } from '@pezkuwi/types/interfaces'; +import type { PezframeSupportPreimagesBounded, PezpalletSchedulerScheduled } from '@pezkuwi/types/lookup'; +import type { Codec, ITuple } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { DeriveApi, DeriveDispatch, DeriveProposalImage } from '../types.js'; + +import { catchError, combineLatest, map, of, switchMap } from 'rxjs'; + +import { Enum } from '@pezkuwi/types'; +import { isFunction, objectSpread, stringToHex } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { getImageHashBounded } from './util.js'; + +const DEMOCRACY_ID = stringToHex('democrac'); + +// included here for backwards compat +interface PezpalletSchedulerScheduledV3 extends Codec { + maybeId: Option; + priority: u8; + call: PezframeSupportScheduleMaybeHashed; + maybePeriodic: Option>; + origin: Codec; +} + +// included here for backwards compat +interface PezframeSupportScheduleMaybeHashed extends Codec { + isHash: boolean; + isValue: boolean; + asValue: Call; + asHash: Hash; +} + +interface SchedulerInfo { + at: BlockNumber; + imageHash: HexString; + index: ReferendumIndex; +} + +function isMaybeHashedOrBounded (call: PezframeSupportPreimagesBounded | PezframeSupportScheduleMaybeHashed | Call): call is PezframeSupportScheduleMaybeHashed | PezframeSupportPreimagesBounded { + // check for enum + return call instanceof Enum; +} + +function isBounded (call: PezframeSupportPreimagesBounded | PezframeSupportScheduleMaybeHashed): call is PezframeSupportPreimagesBounded { + // check for type + return (call as PezframeSupportPreimagesBounded).isInline || (call as PezframeSupportPreimagesBounded).isLegacy || (call as PezframeSupportPreimagesBounded).isLookup; +} + +function queryQueue (api: DeriveApi): Observable { + return api.query.democracy['dispatchQueue']>>().pipe( + switchMap((dispatches) => + combineLatest([ + of(dispatches), + api.derive.democracy.preimages( + dispatches.map(([, hash]) => hash)) + ]) + ), + map(([dispatches, images]) => + dispatches.map(([at, imageHash, index], dispatchIndex): DeriveDispatch => ({ + at, + image: images[dispatchIndex], + imageHash: getImageHashBounded(imageHash), + index + })) + ) + ); +} + +function schedulerEntries (api: DeriveApi): Observable<[BlockNumber[], Option[][]]> { + // We don't get entries, but rather we get the keys (triggered via finished referendums) and + // the subscribe to those keys - this means we pickup when the schedulers actually executes + // at a block, the entry for that block will become empty + return api.derive.democracy.referendumsFinished().pipe( + switchMap(() => + api.query.scheduler.agenda.keys() + ), + switchMap((keys) => { + const blockNumbers = keys.map(({ args: [blockNumber] }) => blockNumber); + + return blockNumbers.length + ? combineLatest([ + of(blockNumbers), + // this should simply be api.query.scheduler.agenda.multi, + // however we have had cases on Darwinia where the indices have moved around after an + // upgrade, which results in invalid on-chain data + api.query.scheduler.agenda.multi(blockNumbers).pipe( + catchError(() => of(blockNumbers.map(() => []))) + ) + ]) + : of<[BlockNumber[], Option[][]]>([[], []]); + }) + ); +} + +function queryScheduler (api: DeriveApi): Observable { + return schedulerEntries(api).pipe( + switchMap(([blockNumbers, agendas]): Observable<[SchedulerInfo[], (DeriveProposalImage | undefined)[]]> => { + const result: SchedulerInfo[] = []; + + blockNumbers.forEach((at, index): void => { + (agendas[index] || []).filter((o) => o.isSome).forEach((o): void => { + const scheduled = o.unwrap(); + + if (scheduled.maybeId.isSome) { + const id = scheduled.maybeId.unwrap().toHex(); + + if (id.startsWith(DEMOCRACY_ID)) { + const imageHash = isMaybeHashedOrBounded(scheduled.call) + ? isBounded(scheduled.call) + ? getImageHashBounded(scheduled.call) + : scheduled.call.isHash + ? scheduled.call.asHash.toHex() + : scheduled.call.asValue.args[0].toHex() + : scheduled.call.args[0].toHex(); + + result.push({ at, imageHash, index: api.registry.createType('(u64, ReferendumIndex)', id)[1] }); + } + } + }); + }); + + return combineLatest([ + of(result), + result.length + ? api.derive.democracy.preimages(result.map(({ imageHash }) => imageHash)) + : of([]) + ]); + }), + map(([infos, images]): DeriveDispatch[] => + infos.map((info, index) => objectSpread({ image: images[index] }, info)) + ) + ); +} + +/** + * @name dispatchQueue + * @description Retrieves the list of scheduled or pending dispatches in the governance system. + * @example + * ```javascript + * const queue = await api.derive.democracy.dispatchQueue(); + * console.log("Dispatch Queue:", queue); + * ``` + */ +export function dispatchQueue (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + isFunction(api.query.scheduler?.agenda) + ? queryScheduler(api) + : api.query.democracy['dispatchQueue'] + ? queryQueue(api) + : of([]) + ); +} diff --git a/packages/api-derive/src/democracy/index.ts b/packages/api-derive/src/democracy/index.ts new file mode 100644 index 0000000..6c8fce3 --- /dev/null +++ b/packages/api-derive/src/democracy/index.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './dispatchQueue.js'; +export * from './locks.js'; +export * from './nextExternal.js'; +export * from './preimages.js'; +export * from './proposals.js'; +export * from './referendumIds.js'; +export * from './referendums.js'; +export * from './referendumsActive.js'; +export * from './referendumsFinished.js'; +export * from './referendumsInfo.js'; +export * from './sqrtElectorate.js'; diff --git a/packages/api-derive/src/democracy/locks.ts b/packages/api-derive/src/democracy/locks.ts new file mode 100644 index 0000000..7c44633 --- /dev/null +++ b/packages/api-derive/src/democracy/locks.ts @@ -0,0 +1,114 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId, ReferendumInfoTo239, Vote } from '@pezkuwi/types/interfaces'; +import type { PezpalletDemocracyReferendumInfo, PezpalletDemocracyVoteVoting } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi, DeriveDemocracyLock } from '../types.js'; + +import { map, of, switchMap } from 'rxjs'; + +import { BN_ZERO, isUndefined } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type ReferendumInfoFinished = PezpalletDemocracyReferendumInfo['asFinished']; +type VotingDelegating = PezpalletDemocracyVoteVoting['asDelegating']; +type VotingDirect = PezpalletDemocracyVoteVoting['asDirect']; +type VotingDirectVote = VotingDirect['votes'][0]; + +const LOCKUPS = [0, 1, 2, 4, 8, 16, 32]; + +function parseEnd (api: DeriveApi, vote: Vote, { approved, end }: ReferendumInfoFinished): [BN, BN] { + return [ + end, + (approved.isTrue && vote.isAye) || (approved.isFalse && vote.isNay) + ? end.add( + ( + api.consts.democracy.voteLockingPeriod || + api.consts.democracy.enactmentPeriod + ).muln(LOCKUPS[vote.conviction.index]) + ) + : BN_ZERO + ]; +} + +function parseLock (api: DeriveApi, [referendumId, accountVote]: VotingDirectVote, referendum: PezpalletDemocracyReferendumInfo): DeriveDemocracyLock { + const { balance, vote } = accountVote.asStandard; + const [referendumEnd, unlockAt] = referendum.isFinished + ? parseEnd(api, vote, referendum.asFinished) + : [BN_ZERO, BN_ZERO]; + + return { balance, isDelegated: false, isFinished: referendum.isFinished, referendumEnd, referendumId, unlockAt, vote }; +} + +function delegateLocks (api: DeriveApi, { balance, conviction, target }: VotingDelegating): Observable { + return api.derive.democracy.locks(target).pipe( + map((available): DeriveDemocracyLock[] => + available.map(({ isFinished, referendumEnd, referendumId, unlockAt, vote }): DeriveDemocracyLock => ({ + balance, + isDelegated: true, + isFinished, + referendumEnd, + referendumId, + unlockAt: unlockAt.isZero() + ? unlockAt + : referendumEnd.add( + ( + api.consts.democracy.voteLockingPeriod || + api.consts.democracy.enactmentPeriod + ).muln(LOCKUPS[conviction.index]) + ), + vote: api.registry.createType('Vote', { aye: vote.isAye, conviction }) + })) + ) + ); +} + +function directLocks (api: DeriveApi, { votes }: VotingDirect): Observable { + if (!votes.length) { + return of([]); + } + + return api.query.democracy.referendumInfoOf.multi(votes.map(([referendumId]) => referendumId)).pipe( + map((referendums) => + votes + .map((vote, index): [VotingDirectVote, PezpalletDemocracyReferendumInfo | ReferendumInfoTo239 | null] => + [vote, referendums[index].unwrapOr(null)] + ) + .filter((item): item is [VotingDirectVote, PezpalletDemocracyReferendumInfo] => + !!item[1] && isUndefined((item[1] as ReferendumInfoTo239).end) && item[0][1].isStandard + ) + .map(([directVote, referendum]) => + parseLock(api, directVote, referendum) + ) + ) + ); +} + +/** + * @name locks + * @description Retrieves the democracy voting locks for a given account. + * @param { string | AccountId } accountId The accountId for which to retrieve democracy voting locks. + * @example + * ```javascript + * const locks = await api.derive.democracy.locks('5FfFjX...'); // Replace with an actual accountId + * console.log("Democracy Locks:", locks); + * ``` + */ +export function locks (instanceId: string, api: DeriveApi): (accountId: string | AccountId) => Observable { + return memo(instanceId, (accountId: string | AccountId): Observable => + api.query.democracy.votingOf + ? api.query.democracy.votingOf(accountId).pipe( + switchMap((voting): Observable => + voting.isDirect + ? directLocks(api, voting.asDirect) + : voting.isDelegating + ? delegateLocks(api, voting.asDelegating) + : of([]) + ) + ) + : of([]) + ); +} diff --git a/packages/api-derive/src/democracy/nextExternal.ts b/packages/api-derive/src/democracy/nextExternal.ts new file mode 100644 index 0000000..ea4ca41 --- /dev/null +++ b/packages/api-derive/src/democracy/nextExternal.ts @@ -0,0 +1,49 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option } from '@pezkuwi/types'; +import type { H256 } from '@pezkuwi/types/interfaces'; +import type { PezframeSupportPreimagesBounded, PezpalletDemocracyVoteThreshold } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveProposalExternal } from '../types.js'; + +import { map, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { getImageHashBounded } from './util.js'; + +function withImage (api: DeriveApi, nextOpt: Option>): Observable { + if (nextOpt.isNone) { + return of(null); + } + + const [hash, threshold] = nextOpt.unwrap(); + + return api.derive.democracy.preimage(hash).pipe( + map((image): DeriveProposalExternal => ({ + image, + imageHash: getImageHashBounded(hash), + threshold + })) + ); +} + +/** + * @name nextExternal + * @description Retrieves the next external proposal that is scheduled for a referendum. + * @example + * ```javascript + * const nextExternal = await api.derive.democracy.nextExternal(); + * console.log("Next external proposal:", nextExternal); + * ``` + */ +export function nextExternal (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.democracy?.nextExternal + ? api.query.democracy.nextExternal().pipe( + switchMap((nextOpt) => withImage(api, nextOpt)) + ) + : of(null) + ); +} diff --git a/packages/api-derive/src/democracy/preimages.ts b/packages/api-derive/src/democracy/preimages.ts new file mode 100644 index 0000000..4353c1e --- /dev/null +++ b/packages/api-derive/src/democracy/preimages.ts @@ -0,0 +1,171 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { u128 } from '@pezkuwi/types'; +import type { AccountId, AccountId32, Balance, BlockNumber, Call, Hash, PreimageStatus } from '@pezkuwi/types/interfaces'; +import type { PezframeSupportPreimagesBounded, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus } from '@pezkuwi/types/lookup'; +import type { Bytes, Option } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { DeriveApi, DeriveProposalImage } from '../types.js'; + +import { map, of, switchMap } from 'rxjs'; + +import { BN_ZERO, isFunction } from '@pezkuwi/util'; + +import { firstMemo, memo } from '../util/index.js'; +import { getImageHashBounded } from './util.js'; + +type PreimageInfo = [Bytes, AccountId, Balance, BlockNumber]; +type OldPreimage = ITuple; +type CompatStatusU = PezpalletPreimageRequestStatus['asUnrequested'] & { deposit: ITuple<[AccountId32, u128]> }; +type CompatStatusR = PezpalletPreimageRequestStatus['asRequested'] & { deposit: Option> }; + +function getUnrequestedTicket (status: PezpalletPreimageRequestStatus['asUnrequested']): [AccountId32, u128] { + return status.ticket || (status as CompatStatusU).deposit; +} + +function getRequestedTicket (status: PezpalletPreimageRequestStatus['asRequested']): [AccountId32, u128] { + return (status.maybeTicket || (status as CompatStatusR).deposit).unwrapOrDefault(); +} + +function isDemocracyPreimage (api: DeriveApi, imageOpt: Option | Option): imageOpt is Option { + return !!imageOpt && !api.query.democracy['dispatchQueue']; +} + +function constructProposal (api: DeriveApi, [bytes, proposer, balance, at]: PreimageInfo): DeriveProposalImage { + let proposal: Call | undefined; + + try { + proposal = api.registry.createType('Call', bytes.toU8a(true)); + } catch (error) { + console.error(error); + } + + return { at, balance, proposal, proposer }; +} + +function parseDemocracy (api: DeriveApi, imageOpt: Option | Option): DeriveProposalImage | undefined { + if (imageOpt.isNone) { + return; + } + + if (isDemocracyPreimage(api, imageOpt)) { + const status = imageOpt.unwrap(); + + if (status.isMissing) { + return; + } + + const { data, deposit, provider, since } = status.asAvailable; + + return constructProposal(api, [data, provider, deposit, since]); + } + + return constructProposal(api, imageOpt.unwrap()); +} + +function parseImage (api: DeriveApi, [proposalHash, status, bytes]: [HexString, PezpalletPreimageRequestStatus | PezpalletPreimageOldRequestStatus | null, Bytes | null]): DeriveProposalImage | undefined { + if (!status) { + return undefined; + } + + const [proposer, balance] = status.isUnrequested + ? getUnrequestedTicket((status as PezpalletPreimageRequestStatus).asUnrequested) + : getRequestedTicket((status as PezpalletPreimageRequestStatus).asRequested); + let proposal: Call | undefined; + + if (bytes) { + try { + proposal = api.registry.createType('Call', bytes.toU8a(true)); + } catch (error) { + console.error(error); + } + } + + return { at: BN_ZERO, balance, proposal, proposalHash, proposer }; +} + +function getDemocracyImages (api: DeriveApi, bounded: (Hash | Uint8Array | string | PezframeSupportPreimagesBounded)[]): Observable<(DeriveProposalImage | undefined)[]> { + const hashes = bounded.map((b) => getImageHashBounded(b)); + + return api.query.democracy['preimages'].multi>(hashes).pipe( + map((images): (DeriveProposalImage | undefined)[] => + images.map((imageOpt) => parseDemocracy(api, imageOpt)) + ) + ); +} + +function getImages (api: DeriveApi, bounded: (PezframeSupportPreimagesBounded | Uint8Array | string)[]): Observable<(DeriveProposalImage | undefined)[]> { + const hashes = bounded.map((b) => getImageHashBounded(b)); + const bytesType = api.registry.lookup.getTypeDef(api.query.preimage.preimageFor.creator.meta.type.asMap.key).type; + + return api.query.preimage.statusFor.multi(hashes).pipe( + switchMap((optStatus) => { + const statuses = optStatus.map((o) => o.unwrapOr(null)); + const keys = statuses + .map((s, i) => + s + ? bytesType === 'H256' + // first generation + ? hashes[i] + // current generation (H256,u32) + : s.isRequested + ? [hashes[i], s.asRequested.len.unwrapOr(0)] + : [hashes[i], s.asUnrequested.len] + : null + ) + .filter((p) => !!p); + + return api.query.preimage.preimageFor.multi(keys).pipe( + map((optBytes) => { + let ptr = -1; + + return statuses + .map((s, i): [HexString, PezpalletPreimageRequestStatus | PezpalletPreimageOldRequestStatus | null, Bytes | null] => + s + ? [hashes[i], s, optBytes[++ptr].unwrapOr(null)] + : [hashes[i], null, null] + ) + .map((v) => parseImage(api, v)); + }) + ); + }) + ); +} + +/** + * @name preimages + * @description Retrieves the full details (preimages) of governance proposals using their on-chain hashes. + * @param { (Hash | Uint8Array | string | PezframeSupportPreimagesBounded)[] } hashes An array of hashes representing governance proposals. + * @example + * ```javascript + * const preimages = await api.derive.democracy.preimages([HASH1, HASH2]); + * ``` + */ +export function preimages (instanceId: string, api: DeriveApi): (hashes: (Hash | Uint8Array | string | PezframeSupportPreimagesBounded)[]) => Observable<(DeriveProposalImage | undefined)[]> { + return memo(instanceId, (hashes: (Hash | Uint8Array | string | PezframeSupportPreimagesBounded)[]): Observable<(DeriveProposalImage | undefined)[]> => + hashes.length + ? isFunction(api.query.democracy['preimages']) + ? getDemocracyImages(api, hashes) + : isFunction(api.query.preimage.preimageFor) + ? getImages(api, hashes) + : of([]) + : of([]) + ); +} + +/** + * @name preimage + * @description Retrieves the full details (preimage) of a governance proposal using its on-chain hash. + * @param { Hash | Uint8Array | string | PezframeSupportPreimagesBounded } hash Hash that represents governance proposals. + * * @example + * ```javascript + * const preimage = await api.derive.democracy.preimage(HASH); + * ``` + */ +export const preimage = /*#__PURE__*/ firstMemo( + (api: DeriveApi, hash: Hash | Uint8Array | string | PezframeSupportPreimagesBounded) => + api.derive.democracy.preimages([hash]) +); diff --git a/packages/api-derive/src/democracy/proposals.ts b/packages/api-derive/src/democracy/proposals.ts new file mode 100644 index 0000000..593d942 --- /dev/null +++ b/packages/api-derive/src/democracy/proposals.ts @@ -0,0 +1,81 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, Vec } from '@pezkuwi/types'; +import type { AccountId, Balance, Hash, PropIndex } from '@pezkuwi/types/interfaces'; +import type { PezframeSupportPreimagesBounded } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveProposal, DeriveProposalImage } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { isFunction, objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { getImageHashBounded } from './util.js'; + +type DepositorsNew = Option, Balance]>>; +type DepositorsOld = Option]>>; +type Depositors = DepositorsNew | DepositorsOld; +type Proposals = ITuple<[PropIndex, Hash | PezframeSupportPreimagesBounded, AccountId]>[]; +type Result = [Proposals, (DeriveProposalImage | undefined)[], Depositors[]]; + +function isNewDepositors (depositors: ITuple<[Vec, Balance]> | ITuple<[Balance, Vec]>): depositors is ITuple<[Vec, Balance]> { + // Detect balance... + return isFunction((depositors[1] as Balance).mul); +} + +function parse ([proposals, images, optDepositors]: Result): DeriveProposal[] { + return proposals + .filter(([, , proposer], index): boolean => + !!(optDepositors[index]?.isSome) && !proposer.isEmpty + ) + .map(([index, hash, proposer], proposalIndex): DeriveProposal => { + const depositors = optDepositors[proposalIndex].unwrap(); + + return objectSpread( + { + image: images[proposalIndex], + imageHash: getImageHashBounded(hash), + index, + proposer + }, + isNewDepositors(depositors) + ? { balance: depositors[1], seconds: depositors[0] } + : { balance: depositors[0], seconds: depositors[1] } + ); + }); +} + +/** + * @name proposals + * @description Retrieves the list of active public proposals in the democracy module, along with their associated preimage data and deposit information. + * @example + * ```javascript + * const proposals = await api.derive.democracy.proposals(); + * console.log("proposals:", proposals); + * ``` + */ +export function proposals (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + isFunction(api.query.democracy?.publicProps) + ? api.query.democracy.publicProps().pipe( + switchMap((proposals) => + proposals.length + ? combineLatest([ + of(proposals), + api.derive.democracy.preimages( + proposals.map(([, hash]) => hash) + ), + api.query.democracy.depositOf.multi( + proposals.map(([index]) => index) + ) + ]) + : of([[], [], []]) + ), + map(parse) + ) + : of([]) + ); +} diff --git a/packages/api-derive/src/democracy/referendumIds.ts b/packages/api-derive/src/democracy/referendumIds.ts new file mode 100644 index 0000000..29e0b7d --- /dev/null +++ b/packages/api-derive/src/democracy/referendumIds.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { ReferendumIndex } from '@pezkuwi/types/interfaces'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name referendumIds + * @description Retrieves an array of active referendum IDs. + * @example + * ```javascript + * const referendums = await api.derive.democracy.referendumIds(); + * ``` + */ +export function referendumIds (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.democracy?.lowestUnbaked + ? api.queryMulti<[ReferendumIndex, ReferendumIndex]>([ + api.query.democracy.lowestUnbaked, + api.query.democracy.referendumCount + ]).pipe( + map(([first, total]): BN[] => + total.gt(first) + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + ? [...Array(total.sub(first).toNumber())].map((_, i): BN => first.addn(i)) + : [] + ) + ) + : of([]) + ); +} diff --git a/packages/api-derive/src/democracy/referendums.ts b/packages/api-derive/src/democracy/referendums.ts new file mode 100644 index 0000000..e33b739 --- /dev/null +++ b/packages/api-derive/src/democracy/referendums.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi, DeriveReferendumExt } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +/** + * @name referendums + * @description Retrieves information about all active referendums, including their details and associated votes. + * @example + * ```javascript + * const referendums = await api.derive.democracy.referendums(); + * ``` + */ +export function referendums (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.democracy.referendumsActive().pipe( + switchMap((referendums) => + referendums.length + ? combineLatest([ + of(referendums), + api.derive.democracy._referendumsVotes(referendums) + ]) + : of([[], []]) + ), + map(([referendums, votes]) => + referendums.map((referendum, index): DeriveReferendumExt => + objectSpread({}, referendum, votes[index]) + ) + ) + ) + ); +} diff --git a/packages/api-derive/src/democracy/referendumsActive.ts b/packages/api-derive/src/democracy/referendumsActive.ts new file mode 100644 index 0000000..fca2c05 --- /dev/null +++ b/packages/api-derive/src/democracy/referendumsActive.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi, DeriveReferendum } from '../types.js'; + +import { of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name referendumsActive + * @description Retrieves information about active referendums. + * @example + * ```javascript + * const referendums = await api.derive.democracy.referendumsActive(); + * console.log("Active Referendums:", referendums); + * ``` + */ +export function referendumsActive (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.democracy.referendumIds().pipe( + switchMap((ids): Observable => + ids.length + ? api.derive.democracy.referendumsInfo(ids) + : of([]) + ) + ) + ); +} diff --git a/packages/api-derive/src/democracy/referendumsFinished.ts b/packages/api-derive/src/democracy/referendumsFinished.ts new file mode 100644 index 0000000..96997c9 --- /dev/null +++ b/packages/api-derive/src/democracy/referendumsFinished.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { PezpalletDemocracyReferendumInfo } from '@pezkuwi/types/lookup'; +import type { DeriveApi } from '../types.js'; + +import { map, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +type ReferendumInfoFinished = PezpalletDemocracyReferendumInfo['asFinished']; + +/** + * @name referendumsFinished + * @description Retrieves information about finished referendums. + * @example + * ```javascript + * const referendums = await api.derive.democracy.referendumsFinished(); + * console.log("Finished Referendums:", referendums); + * ``` + */ +export function referendumsFinished (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.democracy.referendumIds().pipe( + switchMap((ids) => + api.query.democracy.referendumInfoOf.multi(ids) + ), + map((infos): ReferendumInfoFinished[] => + infos + .map((o) => o.unwrapOr(null)) + .filter((info): info is PezpalletDemocracyReferendumInfo => !!info && info.isFinished) + .map((info) => info.asFinished) + ) + ) + ); +} diff --git a/packages/api-derive/src/democracy/referendumsInfo.ts b/packages/api-derive/src/democracy/referendumsInfo.ts new file mode 100644 index 0000000..4189d54 --- /dev/null +++ b/packages/api-derive/src/democracy/referendumsInfo.ts @@ -0,0 +1,181 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, Vec } from '@pezkuwi/types'; +import type { AccountId, Hash, ReferendumInfoTo239, Vote } from '@pezkuwi/types/interfaces'; +import type { PezpalletDemocracyReferendumInfo, PezpalletDemocracyReferendumStatus, PezpalletDemocracyVoteVoting } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi, DeriveBalancesAccount, DeriveReferendum, DeriveReferendumVote, DeriveReferendumVotes } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { isFunction, objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { calcVotes, getImageHash, getStatus } from './util.js'; + +type VotingDelegating = PezpalletDemocracyVoteVoting['asDelegating']; +type VotingDirect = PezpalletDemocracyVoteVoting['asDirect']; +type VotingDirectVote = VotingDirect['votes'][0]; + +function votesPrev (api: DeriveApi, referendumId: BN): Observable { + return api.query.democracy['votersFor']>(referendumId).pipe( + switchMap((votersFor): Observable<[Vec, Vote[], DeriveBalancesAccount[]]> => + combineLatest([ + of(votersFor), + votersFor.length + ? api.query.democracy['voteOf'].multi( + votersFor.map((accountId): [BN | number, AccountId] => + [referendumId, accountId] + ) + ) + : of([]), + api.derive.balances.votingBalances(votersFor) + ]) + ), + map(([votersFor, votes, balances]): DeriveReferendumVote[] => + votersFor.map((accountId, index): DeriveReferendumVote => ({ + accountId, + balance: balances[index].votingBalance || api.registry.createType('Balance'), + isDelegating: false, + vote: votes[index] || api.registry.createType('Vote') + })) + ) + ); +} + +function extractVotes (mapped: [AccountId, PezpalletDemocracyVoteVoting][], referendumId: BN): DeriveReferendumVote[] { + return mapped + .filter(([, voting]) => voting.isDirect) + .map(([accountId, voting]): [AccountId, VotingDirectVote[]] => [ + accountId, + voting.asDirect.votes.filter(([idx]) => idx.eq(referendumId)) + ]) + .filter(([, directVotes]) => !!directVotes.length) + .reduce((result: DeriveReferendumVote[], [accountId, votes]) => + // FIXME We are ignoring split votes + votes.reduce((result: DeriveReferendumVote[], [, vote]): DeriveReferendumVote[] => { + if (vote.isStandard) { + result.push( + objectSpread({ + accountId, + isDelegating: false + }, vote.asStandard) + ); + } + + return result; + }, result), [] + ); +} + +function votesCurr (api: DeriveApi, referendumId: BN): Observable { + return api.query.democracy.votingOf.entries().pipe( + map((allVoting): DeriveReferendumVote[] => { + const mapped = allVoting.map(([{ args: [accountId] }, voting]): [AccountId, PezpalletDemocracyVoteVoting] => [accountId, voting]); + const votes = extractVotes(mapped, referendumId); + const delegations = mapped + .filter(([, voting]) => voting.isDelegating) + .map(([accountId, voting]): [AccountId, VotingDelegating] => [accountId, voting.asDelegating]); + + // add delegations + delegations.forEach(([accountId, { balance, conviction, target }]): void => { + // Are we delegating to a delegator + const toDelegator = delegations.find(([accountId]) => accountId.eq(target)); + const to = votes.find(({ accountId }) => accountId.eq(toDelegator ? toDelegator[0] : target)); + + // this delegation has a target + if (to) { + votes.push({ + accountId, + balance, + isDelegating: true, + vote: api.registry.createType('Vote', { aye: to.vote.isAye, conviction }) + }); + } + }); + + return votes; + }) + ); +} + +export function _referendumVotes (instanceId: string, api: DeriveApi): (referendum: DeriveReferendum) => Observable { + return memo(instanceId, (referendum: DeriveReferendum): Observable => + combineLatest([ + api.derive.democracy.sqrtElectorate(), + isFunction(api.query.democracy.votingOf) + ? votesCurr(api, referendum.index) + : votesPrev(api, referendum.index) + ]).pipe( + map(([sqrtElectorate, votes]) => + calcVotes(sqrtElectorate, referendum, votes) + ) + ) + ); +} + +export function _referendumsVotes (instanceId: string, api: DeriveApi): (referendums: DeriveReferendum[]) => Observable { + return memo(instanceId, (referendums: DeriveReferendum[]): Observable => + referendums.length + ? combineLatest( + referendums.map((referendum): Observable => + api.derive.democracy._referendumVotes(referendum) + ) + ) + : of([]) + ); +} + +export function _referendumInfo (instanceId: string, api: DeriveApi): (index: BN, info: Option) => Observable { + return memo(instanceId, (index: BN, info: Option): Observable => { + const status = getStatus(info); + + return status + ? api.derive.democracy.preimage( + (status as PezpalletDemocracyReferendumStatus).proposal || + (status as unknown as { proposalHash: Hash }).proposalHash + ).pipe( + map((image): DeriveReferendum => ({ + image, + imageHash: getImageHash(status), + index: api.registry.createType('ReferendumIndex', index), + status + })) + ) + : of(null); + }); +} + +/** + * @name referendumsInfo + * @description Retrieves information about multiple referendums by their IDs. + * @param {BN[]} ids An array of referendum IDs to query. + * @example + * ```javascript + * import { BN } from "@pezkuwi/util"; + * + * const referendumIds = [new BN(1)]; + * const referendums = await api.derive.democracy.referendumsInfo(referendumIds); + * console.log("Referendums Info:", referendums); + * ``` + */ +export function referendumsInfo (instanceId: string, api: DeriveApi): (ids: BN[]) => Observable { + return memo(instanceId, (ids: BN[]): Observable => + ids.length + ? api.query.democracy.referendumInfoOf.multi(ids).pipe( + switchMap((infos): Observable<(DeriveReferendum | null)[]> => + combineLatest( + ids.map((id, index): Observable => + api.derive.democracy._referendumInfo(id, infos[index]) + ) + ) + ), + map((infos) => + infos.filter((r): r is DeriveReferendum => !!r) + ) + ) + : of([]) + ); +} diff --git a/packages/api-derive/src/democracy/sqrtElectorate.ts b/packages/api-derive/src/democracy/sqrtElectorate.ts new file mode 100644 index 0000000..49236fd --- /dev/null +++ b/packages/api-derive/src/democracy/sqrtElectorate.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; + +import { map } from 'rxjs'; + +import { bnSqrt } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +/** + * @name sqrtElectorate + * @description Computes the square root of the total token issuance in the network. + * @example + * ```javascript + * let sqrtElectorate = await api.derive.democracy.sqrtElectorate(); + * console.log("Square root of token issuance:", sqrtElectorate); + * ``` + */ +export function sqrtElectorate (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.balances.totalIssuance().pipe( + map(bnSqrt) + ) + ); +} diff --git a/packages/api-derive/src/democracy/types.ts b/packages/api-derive/src/democracy/types.ts new file mode 100644 index 0000000..da1721d --- /dev/null +++ b/packages/api-derive/src/democracy/types.ts @@ -0,0 +1,84 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Vec } from '@pezkuwi/types'; +import type { AccountId, Balance, Call, Hash, PropIndex, ReferendumIndex, ReferendumInfoTo239, Vote } from '@pezkuwi/types/interfaces'; +import type { PezpalletDemocracyReferendumStatus, PezpalletDemocracyVoteThreshold } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; + +export interface AtBlock { + at: BN; +} + +export interface DeriveDemocracyLock { + balance: Balance; + isDelegated: boolean; + isFinished: boolean; + referendumEnd: BN; + referendumId: ReferendumIndex; + unlockAt: BN; + vote: Vote; +} + +export interface DeriveProposalImage extends AtBlock { + balance: Balance; + proposal?: Call | undefined; + proposalHash?: HexString; + proposalLen?: number; + proposer: AccountId; +} + +export interface DeriveDispatch extends AtBlock { + index: ReferendumIndex; + imageHash: HexString; + image?: DeriveProposalImage | undefined; +} + +export interface DeriveProposal { + balance?: Balance; + index: PropIndex; + image?: DeriveProposalImage | undefined; + imageHash: Hash; + proposer: AccountId; + seconds: Vec; +} + +export interface DeriveProposalExternal { + image?: DeriveProposalImage | undefined; + imageHash: HexString; + threshold: PezpalletDemocracyVoteThreshold; +} + +export interface DeriveReferendum { + index: ReferendumIndex; + image?: DeriveProposalImage | undefined; + imageHash: HexString; + status: PezpalletDemocracyReferendumStatus | ReferendumInfoTo239; +} + +export interface DeriveReferendumVote { + accountId: AccountId; + balance: Balance; + isDelegating: boolean; + vote: Vote; +} + +export interface DeriveReferendumVoteState { + allAye: DeriveReferendumVote[]; + allNay: DeriveReferendumVote[]; + voteCount: number; + voteCountAye: number; + voteCountNay: number; + votedAye: BN; + votedNay: BN; + votedTotal: BN; +} + +export interface DeriveReferendumVotes extends DeriveReferendumVoteState { + isPassing: boolean; + votes: DeriveReferendumVote[]; +} + +export interface DeriveReferendumExt extends DeriveReferendum, DeriveReferendumVotes { +} diff --git a/packages/api-derive/src/democracy/util.ts b/packages/api-derive/src/democracy/util.ts new file mode 100644 index 0000000..f556a58 --- /dev/null +++ b/packages/api-derive/src/democracy/util.ts @@ -0,0 +1,166 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Hash, ReferendumInfoTo239, Tally } from '@pezkuwi/types/interfaces'; +import type { PezframeSupportPreimagesBounded, PezpalletDemocracyReferendumInfo, PezpalletDemocracyReferendumStatus, PezpalletDemocracyVoteThreshold } from '@pezkuwi/types/lookup'; +import type { Option } from '@pezkuwi/types-codec'; +import type { HexString } from '@pezkuwi/util/types'; +import type { DeriveReferendum, DeriveReferendumVote, DeriveReferendumVotes, DeriveReferendumVoteState } from '../types.js'; + +import { BN, bnSqrt, isHex, isString, isU8a, objectSpread, stringToHex, u8aToHex } from '@pezkuwi/util'; + +interface ApproxState { + votedAye: BN; + votedNay: BN; + votedTotal: BN; +} + +function isOldInfo (info: PezpalletDemocracyReferendumInfo | ReferendumInfoTo239): info is ReferendumInfoTo239 { + return !!(info as ReferendumInfoTo239).proposalHash; +} + +function isCurrentStatus (status: PezpalletDemocracyReferendumStatus | ReferendumInfoTo239): status is PezpalletDemocracyReferendumStatus { + return !!(status as PezpalletDemocracyReferendumStatus).tally; +} + +export function compareRationals (n1: BN, d1: BN, n2: BN, d2: BN): boolean { + while (true) { + const q1 = n1.div(d1); + const q2 = n2.div(d2); + + if (q1.lt(q2)) { + return true; + } else if (q2.lt(q1)) { + return false; + } + + const r1 = n1.mod(d1); + const r2 = n2.mod(d2); + + if (r2.isZero()) { + return false; + } else if (r1.isZero()) { + return true; + } + + n1 = d2; + n2 = d1; + d1 = r2; + d2 = r1; + } +} + +function calcPassingOther (threshold: PezpalletDemocracyVoteThreshold, sqrtElectorate: BN, { votedAye, votedNay, votedTotal }: ApproxState): boolean { + const sqrtVoters = bnSqrt(votedTotal); + + return sqrtVoters.isZero() + ? false + : threshold.isSuperMajorityApprove + ? compareRationals(votedNay, sqrtVoters, votedAye, sqrtElectorate) + : compareRationals(votedNay, sqrtElectorate, votedAye, sqrtVoters); +} + +export function calcPassing (threshold: PezpalletDemocracyVoteThreshold, sqrtElectorate: BN, state: ApproxState): boolean { + return threshold.isSimpleMajority + ? state.votedAye.gt(state.votedNay) + : calcPassingOther(threshold, sqrtElectorate, state); +} + +function calcVotesPrev (votesFor: DeriveReferendumVote[]): DeriveReferendumVoteState { + return votesFor.reduce((state: DeriveReferendumVoteState, derived): DeriveReferendumVoteState => { + const { balance, vote } = derived; + const isDefault = vote.conviction.index === 0; + const counted = balance + .muln(isDefault ? 1 : vote.conviction.index) + .divn(isDefault ? 10 : 1); + + if (vote.isAye) { + state.allAye.push(derived); + state.voteCountAye++; + state.votedAye.iadd(counted); + } else { + state.allNay.push(derived); + state.voteCountNay++; + state.votedNay.iadd(counted); + } + + state.voteCount++; + state.votedTotal.iadd(counted); + + return state; + }, { allAye: [], allNay: [], voteCount: 0, voteCountAye: 0, voteCountNay: 0, votedAye: new BN(0), votedNay: new BN(0), votedTotal: new BN(0) }); +} + +function calcVotesCurrent (tally: Tally, votes: DeriveReferendumVote[]): DeriveReferendumVoteState { + const allAye: DeriveReferendumVote[] = []; + const allNay: DeriveReferendumVote[] = []; + + votes.forEach((derived): void => { + if (derived.vote.isAye) { + allAye.push(derived); + } else { + allNay.push(derived); + } + }); + + return { + allAye, + allNay, + voteCount: allAye.length + allNay.length, + voteCountAye: allAye.length, + voteCountNay: allNay.length, + votedAye: tally.ayes, + votedNay: tally.nays, + votedTotal: tally.turnout + }; +} + +export function calcVotes (sqrtElectorate: BN, referendum: DeriveReferendum, votes: DeriveReferendumVote[]): DeriveReferendumVotes { + const state = isCurrentStatus(referendum.status) + ? calcVotesCurrent(referendum.status.tally, votes) + : calcVotesPrev(votes); + + return objectSpread({}, state, { + isPassing: calcPassing(referendum.status.threshold, sqrtElectorate, state), + votes + }); +} + +export function getStatus (info: Option): PezpalletDemocracyReferendumStatus | ReferendumInfoTo239 | null { + if (info.isNone) { + return null; + } + + const unwrapped = info.unwrap(); + + return isOldInfo(unwrapped) + ? unwrapped + : unwrapped.isOngoing + ? unwrapped.asOngoing + // done, we don't include it here... only currently active + : null; +} + +export function getImageHashBounded (hash: Uint8Array | string | Hash | PezframeSupportPreimagesBounded): HexString { + return (hash as PezframeSupportPreimagesBounded).isLegacy + ? (hash as PezframeSupportPreimagesBounded).asLegacy.hash_.toHex() + : (hash as PezframeSupportPreimagesBounded).isLookup + ? (hash as PezframeSupportPreimagesBounded).asLookup.hash_.toHex() + // for inline, use the actual Bytes hash + : (hash as PezframeSupportPreimagesBounded).isInline + ? (hash as PezframeSupportPreimagesBounded).asInline.hash.toHex() + : isString(hash) + ? isHex(hash) + ? hash + : stringToHex(hash) + : isU8a(hash) + ? u8aToHex(hash) + : hash.toHex(); +} + +export function getImageHash (status: PezpalletDemocracyReferendumStatus | ReferendumInfoTo239): HexString { + return getImageHashBounded( + (status as PezpalletDemocracyReferendumStatus).proposal || + (status as ReferendumInfoTo239).proposalHash + ); +} diff --git a/packages/api-derive/src/derive.ts b/packages/api-derive/src/derive.ts new file mode 100644 index 0000000..7f0e1d5 --- /dev/null +++ b/packages/api-derive/src/derive.ts @@ -0,0 +1,41 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyFunction } from '@pezkuwi/types/types'; + +import * as accounts from './accounts/index.js'; +import * as alliance from './alliance/index.js'; +import * as bagsList from './bagsList/index.js'; +import * as balances from './balances/index.js'; +import * as bounties from './bounties/index.js'; +import * as chain from './chain/index.js'; +import * as contracts from './contracts/index.js'; +import * as council from './council/index.js'; +import * as crowdloan from './crowdloan/index.js'; +import * as democracy from './democracy/index.js'; +import * as elections from './elections/index.js'; +import * as imOnline from './imOnline/index.js'; +import * as membership from './membership/index.js'; +import * as session from './session/index.js'; +import * as society from './society/index.js'; +import * as staking from './staking/index.js'; +import * as technicalCommittee from './technicalCommittee/index.js'; +import * as teyrchains from './teyrchains/index.js'; +import * as treasury from './treasury/index.js'; +import * as tx from './tx/index.js'; + +export const derive = { accounts, alliance, bagsList, balances, bounties, chain, contracts, council, crowdloan, democracy, elections, imOnline, membership, teyrchains, session, society, staking, technicalCommittee, treasury, tx }; + +type DeriveSection
= { + [M in keyof Section]: Section[M] extends AnyFunction + ? ReturnType // ReturnType will be the inner function, i.e. without (api) argument + : never; +}; +type DeriveAllSections = { + [S in keyof AllSections]: DeriveSection +}; + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface ExactDerive extends DeriveAllSections { + // keep empty, allows for augmentation +} diff --git a/packages/api-derive/src/elections/index.ts b/packages/api-derive/src/elections/index.ts new file mode 100644 index 0000000..d317bc3 --- /dev/null +++ b/packages/api-derive/src/elections/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './info.js'; diff --git a/packages/api-derive/src/elections/info.ts b/packages/api-derive/src/elections/info.ts new file mode 100644 index 0000000..42a297d --- /dev/null +++ b/packages/api-derive/src/elections/info.ts @@ -0,0 +1,126 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { u32, Vec } from '@pezkuwi/types'; +import type { AccountId32, Balance, BlockNumber } from '@pezkuwi/types/interfaces'; +import type { PezpalletElectionsPhragmenSeatHolder } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi } from '../types.js'; +import type { DeriveElectionsInfo } from './types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +// SeatHolder is current tuple is 2.x-era Bizinikiwi +type Member = PezpalletElectionsPhragmenSeatHolder | ITuple<[AccountId32, Balance]>; + +type Candidate = AccountId32 | ITuple<[AccountId32, Balance]>; + +function isSeatHolder (value: Member): value is PezpalletElectionsPhragmenSeatHolder { + return !Array.isArray(value); +} + +function isCandidateTuple (value: Candidate): value is ITuple<[AccountId32, Balance]> { + return Array.isArray(value); +} + +function getAccountTuple (value: Member): [AccountId32, Balance] { + return isSeatHolder(value) + ? [value.who, value.stake] + : value; +} + +function getCandidate (value: Candidate): AccountId32 { + return isCandidateTuple(value) + ? value[0] + : value; +} + +function sortAccounts ([, balanceA]: [AccountId32, Balance], [, balanceB]: [AccountId32, Balance]): number { + return balanceB.cmp(balanceA); +} + +function getConstants (api: DeriveApi, elections: string | null): Partial { + return elections + ? { + candidacyBond: api.consts[elections as 'elections'].candidacyBond as Balance, + desiredRunnersUp: api.consts[elections as 'elections'].desiredRunnersUp as u32, + desiredSeats: api.consts[elections as 'elections'].desiredMembers as u32, + termDuration: api.consts[elections as 'elections'].termDuration as BlockNumber, + votingBond: api.consts[elections as 'elections']['votingBond'] as Balance, + votingBondBase: api.consts[elections as 'elections'].votingBondBase as Balance, + votingBondFactor: api.consts[elections as 'elections'].votingBondFactor as Balance + } + : {}; +} + +function getModules (api: DeriveApi): [string, string | null] { + const [council] = api.registry.getModuleInstances(api.runtimeVersion.specName, 'council') || ['council']; + const elections = api.query['phragmenElection'] + ? 'phragmenElection' + : api.query['electionsPhragmen'] + ? 'electionsPhragmen' + : api.query.elections + ? 'elections' + : null; + // In some cases council here can refer to `generalCouncil` depending on what the chain specific override is. + // Therefore, we check to see if it exists in the query field. If it does not we default to `council`. + const resolvedCouncil = api.query[council] ? council : 'council'; + + return [resolvedCouncil, elections]; +} + +function queryAll (api: DeriveApi, council: string, elections: string): Observable<[AccountId32[], Candidate[], Member[], Member[]]> { + return api.queryMulti<[Vec, Vec, Vec, Vec]>([ + api.query[council as 'council'].members, + api.query[elections as 'elections'].candidates, + api.query[elections as 'elections'].members, + api.query[elections as 'elections'].runnersUp + ]); +} + +function queryCouncil (api: DeriveApi, council: string): Observable<[AccountId32[], Candidate[], Member[], Member[]]> { + return combineLatest([ + api.query[council as 'council'].members(), + of([]), + of([]), + of([]) + ]); +} + +/** + * @name info + * @description An object containing the combined results of the storage queries for all relevant election module properties. + * @example + * ```javascript + * api.derive.elections.info(({ members, candidates }) => { + * console.log(`There are currently ${members.length} council members and ${candidates.length} prospective council candidates.`); + * }); + * ``` + */ +export function info (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => { + const [council, elections] = getModules(api); + + return ( + elections + ? queryAll(api, council, elections) + : queryCouncil(api, council) + ).pipe( + map(([councilMembers, candidates, members, runnersUp]): DeriveElectionsInfo => + objectSpread({}, getConstants(api, elections), { + candidateCount: api.registry.createType('u32', candidates.length), + candidates: candidates.map(getCandidate), + members: members.length + ? members.map(getAccountTuple).sort(sortAccounts) + : councilMembers.map((a): [AccountId32, Balance] => [a, api.registry.createType('Balance')]), + runnersUp: runnersUp.map(getAccountTuple).sort(sortAccounts) + }) + ) + ); + }); +} diff --git a/packages/api-derive/src/elections/types.ts b/packages/api-derive/src/elections/types.ts new file mode 100644 index 0000000..30d6582 --- /dev/null +++ b/packages/api-derive/src/elections/types.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { u32 } from '@pezkuwi/types'; +import type { AccountId, Balance, BlockNumber, SetIndex, VoteIndex } from '@pezkuwi/types/interfaces'; + +export interface DeriveElectionsInfo { + candidates: AccountId[]; + candidateCount: u32; + candidacyBond?: Balance; + desiredRunnersUp?: u32; + desiredSeats?: u32; + members: [AccountId, Balance][]; + nextVoterSet?: SetIndex; + runnersUp: [AccountId, Balance][]; + termDuration?: BlockNumber; + voteCount?: VoteIndex; + voterCount?: SetIndex; + votingBond?: Balance; + votingBondBase?: Balance; + votingBondFactor?: Balance; +} diff --git a/packages/api-derive/src/imOnline/index.ts b/packages/api-derive/src/imOnline/index.ts new file mode 100644 index 0000000..ead3b0a --- /dev/null +++ b/packages/api-derive/src/imOnline/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './receivedHeartbeats.js'; diff --git a/packages/api-derive/src/imOnline/receivedHeartbeats.ts b/packages/api-derive/src/imOnline/receivedHeartbeats.ts new file mode 100644 index 0000000..73356e6 --- /dev/null +++ b/packages/api-derive/src/imOnline/receivedHeartbeats.ts @@ -0,0 +1,65 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u32 } from '@pezkuwi/types'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { Codec } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveHeartbeats } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { BN_ZERO } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type Result = [DeriveHeartbeats, AccountId[], Option[], u32[]]; + +function mapResult ([result, validators, heartbeats, numBlocks]: Result): DeriveHeartbeats { + validators.forEach((validator, index): void => { + const validatorId = validator.toString(); + const blockCount = numBlocks[index]; + const hasMessage = !heartbeats[index].isEmpty; + const prev = result[validatorId]; + + if (!prev || prev.hasMessage !== hasMessage || !prev.blockCount.eq(blockCount)) { + result[validatorId] = { + blockCount, + hasMessage, + isOnline: hasMessage || blockCount.gt(BN_ZERO) + }; + } + }); + + return result; +} + +/** + * @name receivedHeartbeats + * @description Return a boolean array indicating whether the passed accounts had received heartbeats in the current session. + * @example + * ```javascript + * let unsub = await api.derive.imOnline.receivedHeartbeats((heartbeat) => { + * console.log(heartbeat); + * }); + * ``` + */ +export function receivedHeartbeats (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.imOnline?.receivedHeartbeats + ? api.derive.staking.overview().pipe( + switchMap(({ currentIndex, validators }): Observable => + combineLatest([ + of({}), + of(validators), + api.query.imOnline.receivedHeartbeats.multi( + validators.map((_address, index) => [currentIndex, index])), + api.query.imOnline.authoredBlocks.multi( + validators.map((address) => [currentIndex, address])) + ]) + ), + map(mapResult) + ) + : of({}) + ); +} diff --git a/packages/api-derive/src/index.spec.ts b/packages/api-derive/src/index.spec.ts new file mode 100644 index 0000000..4efa7fb --- /dev/null +++ b/packages/api-derive/src/index.spec.ts @@ -0,0 +1,103 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-return */ +/* eslint-disable @typescript-eslint/no-unsafe-call */ +/* eslint-disable @typescript-eslint/restrict-template-expressions */ + +import type { ExactDerive } from './index.js'; + +import { from, Observable } from 'rxjs'; + +import { ApiRx } from '@pezkuwi/api'; +import { MockProvider } from '@pezkuwi/rpc-provider/mock'; +import { TypeRegistry } from '@pezkuwi/types/create'; + +const testFunction = (api: ApiRx): any => { + return (section: S, method: M, inputs: any[]): void => { + describe(`derive.${section}.${method as string}`, (): void => { + it('should be a function', (): void => { + expect(typeof api.derive[section][method]).toBe('function'); + }); + + it('should return an Observable', (): void => { + expect((api.derive[section][method] as any)(...inputs)).toBeInstanceOf(Observable); + }); + }); + }; +}; + +function waitReady (api: ApiRx): Promise { + return new Promise((resolve) => + api.isReady.subscribe((api) => resolve(api)) + ); +} + +describe('derive', (): void => { + const registry = new TypeRegistry(); + + describe('builtin', (): void => { + const api = new ApiRx({ provider: new MockProvider(registry), registry }); + + beforeAll(async () => { + await waitReady(api); + }); + afterAll(() => api.disconnect()); + + testFunction(api)('accounts', 'idAndIndex', []); + testFunction(api)('accounts', 'idToIndex', []); + testFunction(api)('accounts', 'indexes', []); + testFunction(api)('accounts', 'indexToId', []); + + testFunction(api)('balances', 'all', []); + testFunction(api)('balances', 'votingBalance', []); + testFunction(api)('balances', 'votingBalances', []); + + testFunction(api)('chain', 'bestNumber', []); + testFunction(api)('chain', 'bestNumberFinalized', []); + + testFunction(api)('democracy', 'proposals', []); + testFunction(api)('democracy', 'referendums', []); + + testFunction(api)('elections', 'info', []); + + testFunction(api)('session', 'eraLength', []); + testFunction(api)('session', 'eraProgress', []); + testFunction(api)('session', 'sessionProgress', []); + + testFunction(api)('staking', 'account', []); + testFunction(api)('staking', 'stashes', []); + }); + + describe('custom', (): void => { + const api = new ApiRx({ + derives: { + balances: { + fees: (): any => (): Observable => from(['a', 'b']) + }, + custom: { + test: (): any => (): Observable => from([1, 2, 3]) + } + }, + provider: new MockProvider(registry), + registry, + throwOnConnect: true + }); + + beforeAll(async () => { + await waitReady(api); + }); + afterAll(() => api.disconnect()); + + // override + testFunction(api)('balances', 'fees', ['a', 'b']); + + // new + testFunction(api)('custom', 'test', [1, 2, 3]); + + // existing + testFunction(api)('chain', 'bestNumber', []); + }); +}); diff --git a/packages/api-derive/src/index.ts b/packages/api-derive/src/index.ts new file mode 100644 index 0000000..b4a671c --- /dev/null +++ b/packages/api-derive/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/api-derive/src/membership/index.ts b/packages/api-derive/src/membership/index.ts new file mode 100644 index 0000000..f482a18 --- /dev/null +++ b/packages/api-derive/src/membership/index.ts @@ -0,0 +1,76 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js'; + +/** + * @name members + * @description Retrieves the list of members in the "membership" collective. + * @example + * ```javascript + * const members = await api.derive.membership.members(); + * console.log(`Members: ${JSON.stringify(members)}); + * ``` + */ +export const members = /*#__PURE__*/ collectiveMembers('membership'); + +/** + * @name hasProposals + * @description Checks if there are any active proposals in the "membership" collective. + * @example + * ```javascript + * const exists = await api.derive.membership.hasProposals(); + * console.log(exists); + * ``` + */ +export const hasProposals = /*#__PURE__*/ collectiveHasProposals('membership'); +/** + * @name proposal + * @description Retrieves details of a specific proposal in the "membership" collective by its hash. + * @example + * ```javascript + * const proposalDetails = await api.derive.membership.proposal(PROPOSAL_HASH); + * console.log(proposalDetails); + * ``` + */ +export const proposal = /*#__PURE__*/ collectiveProposal('membership'); +/** + * @name proposalCount + * @description Retrieves the total number of proposals in the "membership" collective. + * @example + * ```javascript + * const count = await api.derive.membership.proposalCount(); + * console.log(`Amount of proposals: ${count}`); + * ``` + */ +export const proposalCount = /*#__PURE__*/ collectiveProposalCount('membership'); +/** + * @name proposalHashes + * @description Retrieves an array of hashes for all active proposals in the "membership" collective. + * @example + * ```javascript + * const hashes = await api.derive.membership.proposalHashes(); + * console.log(`Proposals ${JSON.stringify(hashes)}`); + * ``` + */ +export const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('membership'); +/** + * @name proposals + * @description Retrieves a list of all active proposals in the "membership" collective. + * @example + * ```javascript + * const proposals = await api.derive.membership.proposals(); + * console.log(proposals); + * ``` + */ +export const proposals = /*#__PURE__*/ collectiveProposals('membership'); +/** + * @name prime + * @description Retrieves the prime member of the "membership" collective, if one exists. + * @example + * ```javascript + * const primeMember = await api.derive.membership.prime(); + * console.log(primeMember); + * ``` + */ +export const prime = /*#__PURE__*/ collectivePrime('membership'); diff --git a/packages/api-derive/src/mod.ts b/packages/api-derive/src/mod.ts new file mode 100644 index 0000000..12ecc67 --- /dev/null +++ b/packages/api-derive/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/api-derive/src/packageDetect.ts b/packages/api-derive/src/packageDetect.ts new file mode 100644 index 0000000..edef787 --- /dev/null +++ b/packages/api-derive/src/packageDetect.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2026 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, []); diff --git a/packages/api-derive/src/packageInfo.ts b/packages/api-derive/src/packageInfo.ts new file mode 100644 index 0000000..bd4b63e --- /dev/null +++ b/packages/api-derive/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/api-derive', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/api-derive/src/session/index.ts b/packages/api-derive/src/session/index.ts new file mode 100644 index 0000000..90420a0 --- /dev/null +++ b/packages/api-derive/src/session/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './indexes.js'; +export * from './info.js'; +export * from './progress.js'; diff --git a/packages/api-derive/src/session/indexes.ts b/packages/api-derive/src/session/indexes.ts new file mode 100644 index 0000000..efb74cc --- /dev/null +++ b/packages/api-derive/src/session/indexes.ts @@ -0,0 +1,90 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u32 } from '@pezkuwi/types'; +import type { ActiveEraInfo, EraIndex, Moment, SessionIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveSessionIndexes } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +// parse into Indexes +function parse ([currentIndex, activeEra, activeEraStart, currentEra, validatorCount]: [SessionIndex, EraIndex, Option, EraIndex, u32]): DeriveSessionIndexes { + return { + activeEra, + activeEraStart, + currentEra, + currentIndex, + validatorCount + }; +} + +// query based on latest +function queryStaking (api: DeriveApi): Observable { + return api.queryMulti<[SessionIndex, Option, Option, u32]>([ + api.query.session.currentIndex, + api.query.staking.activeEra, + api.query.staking.currentEra, + api.query.staking.validatorCount + ]).pipe( + map(([currentIndex, activeOpt, currentEra, validatorCount]): DeriveSessionIndexes => { + const { index, start } = activeOpt.unwrapOrDefault(); + + return parse([ + currentIndex, + index, + start, + currentEra.unwrapOrDefault(), + validatorCount + ]); + }) + ); +} + +// query based on latest +function querySession (api: DeriveApi): Observable { + return api.query.session.currentIndex().pipe( + map((currentIndex): DeriveSessionIndexes => parse([ + currentIndex, + api.registry.createType('EraIndex'), + api.registry.createType('Option'), + api.registry.createType('EraIndex'), + api.registry.createType('u32') + ])) + ); +} + +// empty set when none is available +function empty (api: DeriveApi): Observable { + return of(parse([ + api.registry.createType('SessionIndex', 1), + api.registry.createType('EraIndex'), + api.registry.createType('Option'), + api.registry.createType('EraIndex'), + api.registry.createType('u32') + ])); +} + +/** + * @name indexes + * @description Retrieves session-related index data, adapting to whether + * the chain has staking enabled. + * @example + * ```javascript + * api.derive.session.indexes((indexes) => { + * console.log(`Current session index: ${indexes.currentIndex}`); + * console.log(`Validator count: ${indexes.validatorCount}`); + * }); + * ``` + */ +export function indexes (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.session + ? api.query.staking + ? queryStaking(api) + : querySession(api) + : empty(api) + ); +} diff --git a/packages/api-derive/src/session/info.ts b/packages/api-derive/src/session/info.ts new file mode 100644 index 0000000..c14cbc0 --- /dev/null +++ b/packages/api-derive/src/session/info.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi, DeriveSessionInfo } from '../types.js'; + +import { map } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +/** + * @name info + * @description Retrieves all the session and era query and calculates specific values on it as the length of the session and eras. + * @example + * ```javascript + * api.derive.session.info((info) => { + * console.log(`Session info ${JSON.stringify(info)}`); + * }); + * ``` + */ +export function info (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.session.indexes().pipe( + map((indexes) => { + const sessionLength = api.consts?.babe?.epochDuration || api.registry.createType('u64', 1); + const sessionsPerEra = api.consts?.staking?.sessionsPerEra || api.registry.createType('SessionIndex', 1); + + return objectSpread({ + eraLength: api.registry.createType('BlockNumber', sessionsPerEra.mul(sessionLength)), + isEpoch: !!api.query.babe, + sessionLength, + sessionsPerEra + }, indexes); + }) + ) + ); +} diff --git a/packages/api-derive/src/session/progress.ts b/packages/api-derive/src/session/progress.ts new file mode 100644 index 0000000..9301e92 --- /dev/null +++ b/packages/api-derive/src/session/progress.ts @@ -0,0 +1,130 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u64 } from '@pezkuwi/types'; +import type { BlockNumber, SessionIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveSessionInfo, DeriveSessionProgress } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type ResultSlotsNoSession = [u64, u64, u64]; +type ResultSlots = [u64, u64, u64, Option]; +type ResultSlotsFlat = [u64, u64, u64, SessionIndex]; + +function withProgressField (field: 'eraLength' | 'eraProgress' | 'sessionProgress'): (instanceId: string, api: DeriveApi) => () => Observable { + return (instanceId: string, api: DeriveApi) => + memo(instanceId, (): Observable => + api.derive.session.progress().pipe( + map((info) => info[field]) + ) + ); +} + +function createDerive (api: DeriveApi, info: DeriveSessionInfo, [currentSlot, epochIndex, epochOrGenesisStartSlot, activeEraStartSessionIndex]: ResultSlotsFlat): DeriveSessionProgress { + const epochStartSlot = epochIndex.mul(info.sessionLength).iadd(epochOrGenesisStartSlot); + const sessionProgress = currentSlot.sub(epochStartSlot); + const eraProgress = info.currentIndex.sub(activeEraStartSessionIndex).imul(info.sessionLength).iadd(sessionProgress); + + return objectSpread({ + eraProgress: api.registry.createType('BlockNumber', eraProgress), + sessionProgress: api.registry.createType('BlockNumber', sessionProgress) + }, info); +} + +function queryAura (api: DeriveApi): Observable { + return api.derive.session.info().pipe( + map((info): DeriveSessionProgress => + objectSpread({ + eraProgress: api.registry.createType('BlockNumber'), + sessionProgress: api.registry.createType('BlockNumber') + }, info) + ) + ); +} + +function queryBabe (api: DeriveApi): Observable<[DeriveSessionInfo, ResultSlotsFlat]> { + return api.derive.session.info().pipe( + switchMap((info): Observable<[DeriveSessionInfo, ResultSlots | ResultSlotsNoSession]> => + combineLatest([ + of(info), + // we may have no staking, but have babe (permissioned) + api.query.staking?.erasStartSessionIndex + ? api.queryMulti([ + api.query.babe.currentSlot, + api.query.babe.epochIndex, + api.query.babe.genesisSlot, + [api.query.staking.erasStartSessionIndex, info.activeEra] + ]) + : api.queryMulti([ + api.query.babe.currentSlot, + api.query.babe.epochIndex, + api.query.babe.genesisSlot + ]) + ]) + ), + map(([info, [currentSlot, epochIndex, genesisSlot, optStartIndex]]): [DeriveSessionInfo, ResultSlotsFlat] => [ + info, [currentSlot, epochIndex, genesisSlot, optStartIndex && optStartIndex.isSome ? optStartIndex.unwrap() : api.registry.createType('SessionIndex', 1)] + ]) + ); +} + +/** + * @name progress + * @description Retrieves session information and progress. + * @example + * ```javascript + * api.derive.session.progress((progress) => { + * console.log(`Session progress ${JSON.stringify(progress)}`); + * }); + * ``` + */ +export function progress (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.babe + ? queryBabe(api).pipe( + map(([info, slots]: [DeriveSessionInfo, ResultSlotsFlat]): DeriveSessionProgress => + createDerive(api, info, slots) + ) + ) + : queryAura(api) + ); +} + +/** + * @name eraLenght + * @description Retrieves the total length of the current era. + * @example + * ```javascript + * api.derive.session.eraLength((length) => { + * console.log(`Current era length: ${length} sessions`); + * }); + * ``` + */ +export const eraLength = /*#__PURE__*/ withProgressField('eraLength'); +/** + * @name eraProgress + * @description Retrieves the progress of the current era. + * @example + * ```javascript + * api.derive.session.eraProgress((progress) => { + * console.log(`Current era progress: ${progress} sessions`); + * }); + * ``` + */ +export const eraProgress = /*#__PURE__*/ withProgressField('eraProgress'); +/** + * @name sessionProgress + * @description Retrieves the progress of the current session. + * @example + * ```javascript + * api.derive.session.sessionProgress((progress) => { + * console.log(`Current session progress: ${progress} slots`); + * }); + * ``` + */ +export const sessionProgress = /*#__PURE__*/ withProgressField('sessionProgress'); diff --git a/packages/api-derive/src/session/types.ts b/packages/api-derive/src/session/types.ts new file mode 100644 index 0000000..c2a3d40 --- /dev/null +++ b/packages/api-derive/src/session/types.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Option, u32, u64 } from '@pezkuwi/types'; +import type { BlockNumber, EraIndex, Moment, SessionIndex } from '@pezkuwi/types/interfaces'; + +export interface DeriveSessionIndexes { + activeEra: EraIndex; + activeEraStart: Option; + currentEra: EraIndex; + currentIndex: SessionIndex; + validatorCount: u32; +} + +export interface DeriveSessionInfo extends DeriveSessionIndexes { + eraLength: BlockNumber; + isEpoch: boolean; + sessionLength: u64; + sessionsPerEra: SessionIndex; +} + +export interface DeriveSessionProgress extends DeriveSessionInfo { + eraProgress: BlockNumber; + sessionProgress: BlockNumber; +} diff --git a/packages/api-derive/src/society/candidates.ts b/packages/api-derive/src/society/candidates.ts new file mode 100644 index 0000000..eb32e41 --- /dev/null +++ b/packages/api-derive/src/society/candidates.ts @@ -0,0 +1,71 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId32, BalanceOf } from '@pezkuwi/types/interfaces'; +import type { PezpalletSocietyBid, PezpalletSocietyBidKind, PezpalletSocietyCandidacy } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { Option, Vec } from '@pezkuwi/types-codec'; +import type { DeriveApi, DeriveSocietyCandidate } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +type ResultSuspend = Option>; +type Result = [PezpalletSocietyBid[], ResultSuspend[]] + +function getPrev (api: DeriveApi): Observable { + return api.query.society.candidates>().pipe( + switchMap((candidates): Observable => + combineLatest([ + of(candidates), + api.query.society['suspendedCandidates'].multi>>( + candidates.map(({ who }) => who) + ) + ]) + ), + map(([candidates, suspended]: Result): DeriveSocietyCandidate[] => + candidates.map(({ kind, value, who }, index) => ({ + accountId: who, + isSuspended: suspended[index].isSome, + kind, + value + })) + ) + ); +} + +function getCurr (api: DeriveApi) { + return api.query.society.candidates.entries().pipe( + map((entries) => + entries + .filter(([, opt]) => opt.isSome) + .map(([{ args: [accountId] }, opt]): [AccountId32, PezpalletSocietyCandidacy] => [accountId, opt.unwrap()]) + // FIXME We are missing the new fields from the candidate record + .map(([accountId, { bid, kind }]) => ({ + accountId, + isSuspended: false, + kind, + value: bid + })) + ) + ); +} + +/** + * @name candidate + * @description Retrieves the list of candidates for the society module. + * @example + * ```javascript + * const societyCandidates = await api.derive.society.candidates(); + * console.log(societyCandidates); + * ``` + */ +export function candidates (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.society['suspendedCandidates'] && api.query.society.candidates.creator.meta.type.isPlain + ? getPrev(api) + : getCurr(api) + ); +} diff --git a/packages/api-derive/src/society/index.ts b/packages/api-derive/src/society/index.ts new file mode 100644 index 0000000..451ff28 --- /dev/null +++ b/packages/api-derive/src/society/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './candidates.js'; +export * from './info.js'; +export * from './member.js'; +export * from './members.js'; diff --git a/packages/api-derive/src/society/info.ts b/packages/api-derive/src/society/info.ts new file mode 100644 index 0000000..9668156 --- /dev/null +++ b/packages/api-derive/src/society/info.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u32, Vec } from '@pezkuwi/types'; +import type { AccountId, BalanceOf } from '@pezkuwi/types/interfaces'; +import type { PezpalletSocietyBid } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveSociety } from '../types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; + +type Result = [Vec, Option | undefined, Option, Option, u32 | undefined, BalanceOf] + +/** + * @name info + * @description Get the overall info for a society. + * @example + * ```javascript + * const societyInfo = await api.derive.society.candidates(); + * console.log(societyInfo); + * ``` + */ +export function info (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + combineLatest([ + api.query.society.bids(), + api.query.society['defender'] + ? api.query.society['defender']>() + : of(undefined), + api.query.society.founder(), + api.query.society.head(), + api.query.society['maxMembers'] + ? api.query.society['maxMembers']() + : of(undefined), + api.query.society.pot() + ]).pipe( + map(([bids, defender, founder, head, maxMembers, pot]: Result): DeriveSociety => ({ + bids, + defender: defender?.unwrapOr(undefined), + founder: founder.unwrapOr(undefined), + hasDefender: (defender?.isSome && head.isSome && !head.eq(defender)) || false, + head: head.unwrapOr(undefined), + maxMembers, + pot + })) + ) + ); +} diff --git a/packages/api-derive/src/society/member.ts b/packages/api-derive/src/society/member.ts new file mode 100644 index 0000000..8bb1c47 --- /dev/null +++ b/packages/api-derive/src/society/member.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveSocietyMember } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name member + * @description Get the member info for a society. + * @param { AccountId } accountId + * @example + * ```javascript + * const member = await api.derive.society.member(ALICE); + * console.log(member); + * ``` + */ +export function member (instanceId: string, api: DeriveApi): (accountId: AccountId) => Observable { + return memo(instanceId, (accountId: AccountId): Observable => + api.derive.society._members([accountId]).pipe( + map(([result]) => result) + ) + ); +} diff --git a/packages/api-derive/src/society/members.ts b/packages/api-derive/src/society/members.ts new file mode 100644 index 0000000..41d0a67 --- /dev/null +++ b/packages/api-derive/src/society/members.ts @@ -0,0 +1,107 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { PezpalletSocietyVote, PezpalletSocietyVouchingStatus } from '@pezkuwi/types/lookup'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { bool, Option, u32, u128, Vec } from '@pezkuwi/types-codec'; +import type { DeriveApi, DeriveSocietyMember } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +function _membersPrev (api: DeriveApi, accountIds: AccountId[]): Observable { + return combineLatest([ + of(accountIds), + api.query.society.payouts.multi>>(accountIds), + api.query.society['strikes'].multi(accountIds), + api.query.society.defenderVotes.multi>(accountIds), + api.query.society.suspendedMembers.multi(accountIds), + api.query.society['vouching'].multi>(accountIds) + ]).pipe( + map(([accountIds, payouts, strikes, defenderVotes, suspended, vouching]) => + accountIds.map((accountId, index) => ({ + accountId, + isDefenderVoter: defenderVotes[index].isSome, + isSuspended: suspended[index].isTrue, + payouts: payouts[index], + strikes: strikes[index], + vote: defenderVotes[index].unwrapOr(undefined), + vouching: vouching[index].unwrapOr(undefined) + })) + ) + ); +} + +function _membersCurr (api: DeriveApi, accountIds: AccountId[]): Observable { + return combineLatest([ + of(accountIds), + api.query.society.members.multi(accountIds), + api.query.society.payouts.multi(accountIds), + api.query.society.challengeRoundCount().pipe( + switchMap((round) => + api.query.society.defenderVotes.multi(accountIds.map((accountId) => [round, accountId])) + ) + ), + api.query.society.suspendedMembers.multi(accountIds) + ]).pipe( + map(([accountIds, members, payouts, defenderVotes, suspendedMembers]) => + accountIds + .map((accountId, index) => + members[index].isSome + ? { + accountId, + isDefenderVoter: defenderVotes[index].isSome, + isSuspended: suspendedMembers[index].isSome, + member: members[index].unwrap(), + payouts: payouts[index].payouts + } + : null + ) + .filter((m): m is NonNullable => !!m) + .map(({ accountId, isDefenderVoter, isSuspended, member, payouts }) => ({ + accountId, + isDefenderVoter, + isSuspended, + payouts, + strikes: member.strikes, + vouching: member.vouching.unwrapOr(undefined) + })) + ) + ); +} + +export function _members (instanceId: string, api: DeriveApi): (accountIds: AccountId[]) => Observable { + return memo(instanceId, (accountIds: AccountId[]): Observable => + api.query.society.members.creator.meta.type.isMap + ? _membersCurr(api, accountIds) + : _membersPrev(api, accountIds) + ); +} + +/** + * @name members + * @description Get the society members. + * @example + * ```javascript + * const members = await api.derive.society.members(); + * console.log(members); + * ``` + */ +export function members (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.society.members.creator.meta.type.isMap + ? api.query.society.members.keys().pipe( + switchMap((keys) => + api.derive.society._members( + keys.map(({ args: [accountId] }) => accountId) + ) + ) + ) + : api.query.society.members>().pipe( + switchMap((members) => api.derive.society._members(members)) + ) + ); +} diff --git a/packages/api-derive/src/society/types.ts b/packages/api-derive/src/society/types.ts new file mode 100644 index 0000000..60de4bf --- /dev/null +++ b/packages/api-derive/src/society/types.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { u32 } from '@pezkuwi/types'; +import type { AccountId, Balance, BalanceOf, BlockNumber, StrikeCount } from '@pezkuwi/types/interfaces'; +import type { PezpalletSocietyBid, PezpalletSocietyBidKind, PezpalletSocietyVote, PezpalletSocietyVouchingStatus } from '@pezkuwi/types/lookup'; + +export interface DeriveSociety { + bids: PezpalletSocietyBid[]; + defender?: AccountId | undefined; + hasDefender: boolean; + head?: AccountId | undefined; + founder?: AccountId | undefined; + maxMembers?: u32 | undefined; + pot: BalanceOf; +} + +export interface DeriveSocietyCandidate { + accountId: AccountId; + kind: PezpalletSocietyBidKind; + value: Balance; + isSuspended: boolean; +} + +export interface DeriveSocietyMember { + accountId: AccountId; + isDefenderVoter: boolean; + isSuspended: boolean; + payouts: [BlockNumber, Balance][]; + strikes: StrikeCount; + vote?: PezpalletSocietyVote | undefined; + vouching?: PezpalletSocietyVouchingStatus | undefined; +} diff --git a/packages/api-derive/src/staking/account.ts b/packages/api-derive/src/staking/account.ts new file mode 100644 index 0000000..cecfe0b --- /dev/null +++ b/packages/api-derive/src/staking/account.ts @@ -0,0 +1,112 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Balance } from '@pezkuwi/types/interfaces'; +import type { PezpalletStakingStakingLedger, PezpalletStakingUnlockChunk } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveSessionInfo, DeriveStakingAccount, DeriveStakingKeys, DeriveStakingQuery, DeriveUnlocking } from '../types.js'; +import type { StakingQueryFlags } from './types.js'; + +import { combineLatest, map, switchMap } from 'rxjs'; + +import { BN, BN_ZERO, objectSpread } from '@pezkuwi/util'; + +import { firstMemo, memo } from '../util/index.js'; + +const QUERY_OPTS = { + withDestination: true, + withLedger: true, + withNominations: true, + withPrefs: true +}; + +function groupByEra (list: PezpalletStakingUnlockChunk[]): Record { + return list.reduce((map: Record, { era, value }): Record => { + const key = era.toString(); + + map[key] = (map[key] || BN_ZERO).add(value.unwrap()); + + return map; + }, {}); +} + +function calculateUnlocking (api: DeriveApi, stakingLedger: PezpalletStakingStakingLedger | undefined, sessionInfo: DeriveSessionInfo): DeriveUnlocking[] | undefined { + const results = Object + .entries(groupByEra( + (stakingLedger?.unlocking || []).filter(({ era }) => era.unwrap().gt(sessionInfo.activeEra)) + )) + .map(([eraString, value]): DeriveUnlocking => ({ + remainingEras: new BN(eraString).isub(sessionInfo.activeEra), + value: api.registry.createType('Balance', value) + })); + + return results.length + ? results + : undefined; +} + +function redeemableSum (api: DeriveApi, stakingLedger: PezpalletStakingStakingLedger | undefined, sessionInfo: DeriveSessionInfo): Balance { + return api.registry.createType('Balance', (stakingLedger?.unlocking || [] as PezpalletStakingUnlockChunk[]).reduce((total, { era, value }): BN => { + // aligns with https://github.com/pezkuwichain/bizinikiwi/blob/fdfdc73f9e64dc47934b72eb9af3e1989e4ba699/frame/staking/src/pallet/mod.rs#L973-L975 + // (ensure currentEra >= era passed, as per https://github.com/pezkuwichain/bizinikiwi/blob/fdfdc73f9e64dc47934b72eb9af3e1989e4ba699/frame/staking/src/lib.rs#L477-L494) + // NOTE: Previously we used activeEra >= era, which is incorrect for the last session + return era.unwrap().gt(sessionInfo.currentEra) + ? total + : total.iadd(value.unwrap()); + }, new BN(0))); +} + +function parseResult (api: DeriveApi, sessionInfo: DeriveSessionInfo, keys: DeriveStakingKeys, query: DeriveStakingQuery): DeriveStakingAccount { + return objectSpread({}, keys, query, { + redeemable: redeemableSum(api, query.stakingLedger, sessionInfo), + unlocking: calculateUnlocking(api, query.stakingLedger, sessionInfo) + }); +} + +/** + * @name accounts + * @param {(Uint8Array | string)[]} accountIds List of account stashes + * @param {StakingQueryFlags} opts optional filtering flag + * @description From a list of stashes, fill in all the relevant staking details + * @example + * ```javascript + * const accounts = await api.derive.staking.accounts([ + * "149B17nn7zVL4SkLSNmANupEkGexUBAxVrdk4bbWFZYibkFc", + * ]); + * console.log("First account staking info:", accounts[0]); + * ``` + */ +export function accounts (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], opts?: StakingQueryFlags) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], opts: StakingQueryFlags = QUERY_OPTS): Observable => + api.derive.session.info().pipe( + switchMap((sessionInfo) => + combineLatest([ + api.derive.staking.keysMulti(accountIds), + api.derive.staking.queryMulti(accountIds, opts) + ]).pipe( + map(([keys, queries]) => + queries.map((q, index) => parseResult(api, sessionInfo, keys[index], q)) + ) + ) + ) + ) + ); +} + +/** + * @name account + * @param {(Uint8Array | string)} accountId AccountId of the stash. + * @param {StakingQueryFlags} opts (Optional) filtering flag. + * @description From a stash, retrieve the controllerId and fill in all the relevant staking details. + * @example + * ```javascript + * const accountStakingData = await api.derive.staking.account( + * "149B17nn7zVL4SkLSNmANupEkGexUBAxVrdk4bbWFZYibkFc" + * ); + * console.log(accountStakingData); + * ``` + */ +export const account = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: Uint8Array | string, opts?: StakingQueryFlags) => + api.derive.staking.accounts([accountId], opts) +); diff --git a/packages/api-derive/src/staking/cache.ts b/packages/api-derive/src/staking/cache.ts new file mode 100644 index 0000000..1807c56 --- /dev/null +++ b/packages/api-derive/src/staking/cache.ts @@ -0,0 +1,48 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { EraIndex } from '@pezkuwi/types/interfaces'; + +import { deriveCache } from '../util/index.js'; + +export function getEraCache (CACHE_KEY: string, era: EraIndex, withActive?: boolean): [string, T | undefined] { + const cacheKey = `${CACHE_KEY}-${era.toString()}`; + + return [ + cacheKey, + withActive + ? undefined + : deriveCache.get(cacheKey) + ]; +} + +export function getEraMultiCache (CACHE_KEY: string, eras: EraIndex[], withActive?: boolean): T[] { + const cached: T[] = withActive + ? [] + : eras + .map((e) => deriveCache.get(`${CACHE_KEY}-${e.toString()}`)) + .filter((v): v is T => !!v); + + return cached; +} + +export function setEraCache (cacheKey: string, withActive: boolean, value: T): T { + !withActive && deriveCache.set(cacheKey, value); + + return value; +} + +export function setEraMultiCache (CACHE_KEY: string, withActive: boolean, values: T[]): T[] { + !withActive && values.forEach((v) => deriveCache.set(`${CACHE_KEY}-${v.era.toString()}`, v)); + + return values; +} + +export function filterCachedEras (eras: EraIndex[], cached: T[], query: T[]): T[] { + return eras + .map((e) => + cached.find(({ era }) => e.eq(era)) || + query.find(({ era }) => e.eq(era)) + ) + .filter((e): e is T => !!e); +} diff --git a/packages/api-derive/src/staking/currentPoints.ts b/packages/api-derive/src/staking/currentPoints.ts new file mode 100644 index 0000000..f520124 --- /dev/null +++ b/packages/api-derive/src/staking/currentPoints.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { PezpalletStakingEraRewardPoints } from '@pezkuwi/types/lookup'; +import type { DeriveApi } from '../types.js'; + +import { switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name currentPoints + * @description Retrieve the staking overview, including elected and points earned. + * @example + * ```javascript + * const currentPoints = await api.derive.staking.currentPoints(); + * console.log(currentPoints.toHuman()); + * ``` + */ +export function currentPoints (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.derive.session.indexes().pipe( + switchMap(({ activeEra }) => + api.query.staking.erasRewardPoints(activeEra) + ) + )); +} diff --git a/packages/api-derive/src/staking/electedInfo.ts b/packages/api-derive/src/staking/electedInfo.ts new file mode 100644 index 0000000..aa5a720 --- /dev/null +++ b/packages/api-derive/src/staking/electedInfo.ts @@ -0,0 +1,54 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveStakingElected, StakingQueryFlags } from '../types.js'; + +import { map, switchMap } from 'rxjs'; + +import { arrayFlatten } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +const DEFAULT_FLAGS = { withController: true, withExposure: true, withPrefs: true }; + +function combineAccounts (nextElected: AccountId[], validators: AccountId[]): AccountId[] { + return arrayFlatten([nextElected, validators.filter((v) => !nextElected.find((n) => n.eq(v)))]); +} + +/** + * @name electedInfo + * @param {StakingQueryFlags} flags? (Optional) Query flags to filter the staking data. + * @param {number} page? (Optional) The page index for paginated results. + * @description Retrieves detailed staking information about the next elected validators and their associated staking data. + * @example + * ```javascript + * const { nextElected, validators, info } = + * await api.derive.staking.electedInfo(); + * console.log( + * "Next Elected Validators:", + * nextElected.map((acc) => acc.toString()) + * ); + * console.log( + * "Current Validators:", + * validators.map((acc) => acc.toString()) + * ); + * console.log("Validator Staking Info:", info); + * ``` + */ +export function electedInfo (instanceId: string, api: DeriveApi): (flags?: StakingQueryFlags, page?: number) => Observable { + return memo(instanceId, (flags: StakingQueryFlags = DEFAULT_FLAGS, page = 0): Observable => + api.derive.staking.validators().pipe( + switchMap(({ nextElected, validators }): Observable => + api.derive.staking.queryMulti(combineAccounts(nextElected, validators), flags, page).pipe( + map((info): DeriveStakingElected => ({ + info, + nextElected, + validators + })) + ) + ) + ) + ); +} diff --git a/packages/api-derive/src/staking/erasExposure.ts b/packages/api-derive/src/staking/erasExposure.ts new file mode 100644 index 0000000..c820098 --- /dev/null +++ b/packages/api-derive/src/staking/erasExposure.ts @@ -0,0 +1,105 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, StorageKey, u32 } from '@pezkuwi/types'; +import type { AccountId, AccountId32, EraIndex } from '@pezkuwi/types/interfaces'; +import type { PezspStakingExposure, PezspStakingExposurePage } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveEraExposurePaged, DeriveEraNominatorExposure, DeriveEraValidatorExposure, DeriveEraValidatorExposurePaged } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { getEraCache, setEraCache } from './cache.js'; +import { combineEras, erasHistoricApply, singleEra } from './util.js'; + +type KeysAndExposures = [StorageKey<[EraIndex, AccountId]>, PezspStakingExposure][]; +type KeysAndExposuresPaged = [StorageKey<[u32, AccountId32, u32]>, Option][]; + +const CACHE_KEY = 'eraExposure'; + +function mapStakersClipped (era: EraIndex, stakers: KeysAndExposures): DeriveEraExposurePaged { + const nominators: DeriveEraNominatorExposure = {}; + const validators: DeriveEraValidatorExposure = {}; + + stakers.forEach(([key, exposure]): void => { + const validatorId = key.args[1].toString(); + + validators[validatorId] = exposure; + + exposure.others.forEach(({ who }, validatorIndex): void => { + const nominatorId = who.toString(); + + nominators[nominatorId] = nominators[nominatorId] || []; + nominators[nominatorId].push({ validatorId, validatorIndex }); + }); + }); + + return { era, nominators, validators }; +} + +function mapStakersPaged (era: EraIndex, stakers: KeysAndExposuresPaged): DeriveEraExposurePaged { + const nominators: DeriveEraNominatorExposure = {}; + const validators: DeriveEraValidatorExposurePaged = {}; + + stakers.forEach(([key, exposureOpt]): void => { + if (exposureOpt.isSome) { + const validatorId = key.args[1].toString(); + const exposure = exposureOpt.unwrap(); + + validators[validatorId] = exposure; + + exposure.others.forEach(({ who }, validatorIndex): void => { + const nominatorId = who.toString(); + + nominators[nominatorId] = nominators[nominatorId] || []; + nominators[nominatorId].push({ validatorId, validatorIndex }); + }); + } + }); + + return { era, nominators, validators }; +} + +/** + * erasStakersClipped will be deprecated and replaced with erasStakersPaged. Therefore support is given for both + * storage queries until erasStakersClipped has been completely out of use. + */ +export function _eraExposure (instanceId: string, api: DeriveApi): (era: EraIndex, withActive?: boolean) => Observable { + return memo(instanceId, (era: EraIndex, withActive = false): Observable => { + const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive); + + return cached + ? of(cached) + : api.query.staking.erasStakersPaged + ? api.query.staking.erasStakersPaged.entries>(era).pipe( + map((r) => setEraCache(cacheKey, withActive, mapStakersPaged(era, r))) + ) + : api.query.staking.erasStakersClipped.entries(era).pipe( + map((r) => setEraCache(cacheKey, withActive, mapStakersClipped(era, r))) + ); + }); +} + +/** + * @name eraExposure + * @description Retrieves the staking exposure (nominators and total stake) for a specific era. + * @param {EraIndex} eras The staking era to query. + * @example + * ```javascript + * const era = api.createType("EraIndex", 1000); + * const exposure = await api.derive.staking.eraExposure(era); + * ``` + */ +export const eraExposure = /*#__PURE__*/ singleEra('_eraExposure'); +export const _erasExposure = /*#__PURE__*/ combineEras('_eraExposure'); +/** + * @name erasExposure + * @description Retrieves staking exposure details for multiple past eras. + * @param {boolean} withActive? (Optional) Whether to include the active era in the result. + * @example + * ```javascript + * const exposure = await api.derive.staking.erasExposure(true); + * ``` + */ +export const erasExposure = /*#__PURE__*/ erasHistoricApply('_erasExposure'); diff --git a/packages/api-derive/src/staking/erasHistoric.ts b/packages/api-derive/src/staking/erasHistoric.ts new file mode 100644 index 0000000..a0187bb --- /dev/null +++ b/packages/api-derive/src/staking/erasHistoric.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { u32 } from '@pezkuwi/types'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { BN_ONE, BN_ZERO } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +/** + * @name erasHistoric + * @param {boolean} withActive? (Optional) Whether to include the active era in the result. + */ +export function erasHistoric (instanceId: string, api: DeriveApi): (withActive?: boolean) => Observable { + return memo(instanceId, (withActive?: boolean): Observable => + combineLatest([ + api.query.staking.activeEra(), + api.consts.staking.historyDepth + ? of(api.consts.staking.historyDepth) + : api.query.staking['historyDepth']() + ]).pipe( + map(([activeEraOpt, historyDepth]): EraIndex[] => { + const result: EraIndex[] = []; + const max = historyDepth.toNumber(); + const activeEra: BN = activeEraOpt.unwrapOrDefault().index; + let lastEra = activeEra; + + while (lastEra.gte(BN_ZERO) && (result.length < max)) { + if ((lastEra !== activeEra) || (withActive === true)) { + result.push(api.registry.createType('EraIndex', lastEra)); + } + + lastEra = lastEra.sub(BN_ONE); + } + + // go from oldest to newest + return result.reverse(); + }) + ) + ); +} diff --git a/packages/api-derive/src/staking/erasPoints.ts b/packages/api-derive/src/staking/erasPoints.ts new file mode 100644 index 0000000..6b0fb88 --- /dev/null +++ b/packages/api-derive/src/staking/erasPoints.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { PezpalletStakingEraRewardPoints } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveEraPoints, DeriveEraValPoints } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { BN_ZERO } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { filterCachedEras, getEraMultiCache, setEraMultiCache } from './cache.js'; +import { erasHistoricApply, filterEras } from './util.js'; + +const CACHE_KEY = 'eraPoints'; + +function mapValidators ({ individual }: PezpalletStakingEraRewardPoints): DeriveEraValPoints { + return [...individual.entries()] + .filter(([, points]) => points.gt(BN_ZERO)) + .reduce((result: DeriveEraValPoints, [validatorId, points]): DeriveEraValPoints => { + result[validatorId.toString()] = points; + + return result; + }, {}); +} + +function mapPoints (eras: EraIndex[], points: PezpalletStakingEraRewardPoints[]): DeriveEraPoints[] { + return eras.map((era, index): DeriveEraPoints => ({ + era, + eraPoints: points[index].total, + validators: mapValidators(points[index]) + })); +} + +export function _erasPoints (instanceId: string, api: DeriveApi): (eras: EraIndex[], withActive: boolean) => Observable { + return memo(instanceId, (eras: EraIndex[], withActive: boolean): Observable => { + if (!eras.length) { + return of([]); + } + + const cached = getEraMultiCache(CACHE_KEY, eras, withActive); + const remaining = filterEras(eras, cached); + + return !remaining.length + ? of(cached) + : api.query.staking.erasRewardPoints.multi(remaining).pipe( + map((p) => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapPoints(remaining, p)))) + ); + }); +} + +/** + * @name erasPoints + * @description Retrieves historical era points with its validators. + * @param {boolean} withActive? (Optional) Whether to include the active era in the result. + * @example + * ```javascript + * const points = await api.derive.staking.erasPoints(true); + * console.log( + * "Validator points:", + * points.map(({ era, eraPoints }) => `Era: ${era}, points ${eraPoints}`) + * ); + * ``` + */ +export const erasPoints = /*#__PURE__*/ erasHistoricApply('_erasPoints'); diff --git a/packages/api-derive/src/staking/erasPrefs.ts b/packages/api-derive/src/staking/erasPrefs.ts new file mode 100644 index 0000000..e3e8ac4 --- /dev/null +++ b/packages/api-derive/src/staking/erasPrefs.ts @@ -0,0 +1,63 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { StorageKey } from '@pezkuwi/types'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { PezpalletStakingValidatorPrefs } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveEraPrefs, DeriveEraValPrefs } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { getEraCache, setEraCache } from './cache.js'; +import { combineEras, erasHistoricApply, singleEra } from './util.js'; + +const CACHE_KEY = 'eraPrefs'; + +function mapPrefs (era: EraIndex, all: [StorageKey, PezpalletStakingValidatorPrefs][]): DeriveEraPrefs { + const validators: DeriveEraValPrefs = {}; + + all.forEach(([key, prefs]): void => { + validators[key.args[1].toString()] = prefs; + }); + + return { era, validators }; +} + +export function _eraPrefs (instanceId: string, api: DeriveApi): (era: EraIndex, withActive: boolean) => Observable { + return memo(instanceId, (era: EraIndex, withActive: boolean): Observable => { + const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive); + + return cached + ? of(cached) + : api.query.staking.erasValidatorPrefs.entries(era).pipe( + map((r) => setEraCache(cacheKey, withActive, mapPrefs(era, r))) + ); + }); +} + +/** + * @name eraPrefs + * @description Retrieves the validators commission preferences for a given staking era. + * @param {EraIndex} era The staking era to query. + * @example + * ```javascript + * const era = api.createType("EraIndex", 1000); + * const prefs = await api.derive.staking.eraPrefs(era); + * console.log(JSON.stringify(prefs)); + * ``` + */ +export const eraPrefs = /*#__PURE__*/ singleEra('_eraPrefs'); +export const _erasPrefs = /*#__PURE__*/ combineEras('_eraPrefs'); + +/** + * @name erasPrefs + * @description Retrieves validators commission preferences for multiple past staking eras + * @param {boolean} withActive? (Optional) Whether to include the active era in the result. + * @example + * ```javascript + * const prefs = await api.derive.staking.erasPrefs(true); + * ``` + */ +export const erasPrefs = /*#__PURE__*/ erasHistoricApply('_erasPrefs'); diff --git a/packages/api-derive/src/staking/erasRewards.ts b/packages/api-derive/src/staking/erasRewards.ts new file mode 100644 index 0000000..55a7d1c --- /dev/null +++ b/packages/api-derive/src/staking/erasRewards.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option } from '@pezkuwi/types'; +import type { Balance, EraIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveEraRewards } from '../types.js'; + +import { map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { filterCachedEras, getEraMultiCache, setEraMultiCache } from './cache.js'; +import { erasHistoricApply, filterEras } from './util.js'; + +const CACHE_KEY = 'eraRewards'; + +function mapRewards (eras: EraIndex[], optRewards: Option[]): DeriveEraRewards[] { + return eras.map((era, index): DeriveEraRewards => ({ + era, + eraReward: optRewards[index].unwrapOrDefault() + })); +} + +export function _erasRewards (instanceId: string, api: DeriveApi): (eras: EraIndex[], withActive: boolean) => Observable { + return memo(instanceId, (eras: EraIndex[], withActive: boolean): Observable => { + if (!eras.length) { + return of([]); + } + + const cached = getEraMultiCache(CACHE_KEY, eras, withActive); + const remaining = filterEras(eras, cached); + + if (!remaining.length) { + return of(cached); + } + + return api.query.staking.erasValidatorReward.multi(remaining).pipe( + map((r) => filterCachedEras(eras, cached, setEraMultiCache(CACHE_KEY, withActive, mapRewards(remaining, r)))) + ); + }); +} + +/** + * @name erasRewards + * @description Retrieves rewards for historical eras. + * @param {boolean} withActive? (Optional) Whether to include the active era in the result. + * @example + * ```javascript + * const rewards = await api.derive.staking.erasRewards(true); + * ``` + */ +export const erasRewards = /*#__PURE__*/ erasHistoricApply('_erasRewards'); diff --git a/packages/api-derive/src/staking/erasSlashes.ts b/packages/api-derive/src/staking/erasSlashes.ts new file mode 100644 index 0000000..b7626f9 --- /dev/null +++ b/packages/api-derive/src/staking/erasSlashes.ts @@ -0,0 +1,69 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, StorageKey } from '@pezkuwi/types'; +import type { BalanceOf, EraIndex, Perbill } from '@pezkuwi/types/interfaces'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveEraSlashes, DeriveEraValSlash } from '../types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { getEraCache, setEraCache } from './cache.js'; +import { combineEras, erasHistoricApply, singleEra } from './util.js'; + +const CACHE_KEY = 'eraSlashes'; + +function mapSlashes (era: EraIndex, noms: [StorageKey, Option][], vals: [StorageKey, Option>][]): DeriveEraSlashes { + const nominators: DeriveEraValSlash = {}; + const validators: DeriveEraValSlash = {}; + + noms.forEach(([key, optBalance]): void => { + nominators[key.args[1].toString()] = optBalance.unwrap(); + }); + + vals.forEach(([key, optRes]): void => { + validators[key.args[1].toString()] = optRes.unwrapOrDefault()[1]; + }); + + return { era, nominators, validators }; +} + +export function _eraSlashes (instanceId: string, api: DeriveApi): (era: EraIndex, withActive: boolean) => Observable { + return memo(instanceId, (era: EraIndex, withActive: boolean): Observable => { + const [cacheKey, cached] = getEraCache(CACHE_KEY, era, withActive); + + return cached + ? of(cached) + : combineLatest([ + api.query.staking.nominatorSlashInEra.entries(era), + api.query.staking.validatorSlashInEra.entries(era) + ]).pipe( + map(([n, v]) => setEraCache(cacheKey, withActive, mapSlashes(era, n, v))) + ); + }); +} + +/** + * @name eraSlashes + * @description Retrieves the slashes for a specific staking era. + * @param {EraIndex} eras The staking era to query. + * @example + * ```javascript + * const era = api.createType("EraIndex", 1000); + * const slashes = await api.derive.staking.eraSlashes(era); + * ``` + */ +export const eraSlashes = /*#__PURE__*/ singleEra('_eraSlashes'); +export const _erasSlashes = /*#__PURE__*/ combineEras('_eraSlashes'); +/** + * @name erasSlashes + * @description Retrieves slashes for historical eras. + * @param {boolean} withActive? (Optional) Whether to include the active era in the result. + * @example + * ```javascript + * const slashes = await api.derive.staking.erasSlashes(true); + * ``` + */ +export const erasSlashes = /*#__PURE__*/ erasHistoricApply('_erasSlashes'); diff --git a/packages/api-derive/src/staking/index.ts b/packages/api-derive/src/staking/index.ts new file mode 100644 index 0000000..6568026 --- /dev/null +++ b/packages/api-derive/src/staking/index.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './account.js'; +export * from './currentPoints.js'; +export * from './electedInfo.js'; +export * from './erasExposure.js'; +export * from './erasHistoric.js'; +export * from './erasPoints.js'; +export * from './erasPrefs.js'; +export * from './erasRewards.js'; +export * from './erasSlashes.js'; +export * from './keys.js'; +export * from './overview.js'; +export * from './ownExposure.js'; +export * from './ownSlashes.js'; +export * from './query.js'; +export * from './stakerExposure.js'; +export * from './stakerPoints.js'; +export * from './stakerPrefs.js'; +export * from './stakerRewards.js'; +export * from './stakerSlashes.js'; +export * from './stashes.js'; +export * from './validators.js'; +export * from './waitingInfo.js'; diff --git a/packages/api-derive/src/staking/keys.ts b/packages/api-derive/src/staking/keys.ts new file mode 100644 index 0000000..704d665 --- /dev/null +++ b/packages/api-derive/src/staking/keys.ts @@ -0,0 +1,86 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option } from '@pezkuwi/types'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { KitchensinkRuntimeSessionKeys } from '@pezkuwi/types/lookup'; +import type { DeriveApi } from '../types.js'; +import type { DeriveStakingKeys } from './types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { firstMemo, memo } from '../util/index.js'; + +function extractsIds (stashId: Uint8Array | string, queuedKeys: [AccountId, KitchensinkRuntimeSessionKeys | AccountId[]][], nextKeys: Option): DeriveStakingKeys { + const sessionIds = (queuedKeys.find(([currentId]) => currentId.eq(stashId)) || [undefined, [] as AccountId[]])[1]; + const nextSessionIds = nextKeys.unwrapOr([] as AccountId[]); + + return { + nextSessionIds: Array.isArray(nextSessionIds) + ? nextSessionIds + : [...nextSessionIds.values()] as AccountId[], + sessionIds: Array.isArray(sessionIds) + ? sessionIds + : [...sessionIds.values()] as AccountId[] + }; +} + +/** + * @name keys + * @param { Uint8Array | string } stashId The stash account ID whose session keys are to be retrieved. + * @description Retrieves the session keys associated with a given stash account. + * @example + * ```javascript + * const keys = await api.derive.staking.keys( + * ALICE + * ); + * console.log( + * "Session keys:", + * keys.sessionIds.map((key) => `Key: ${key}`) + * ); + * ``` + */ +export const keys = /*#__PURE__*/ firstMemo( + (api: DeriveApi, stashId: Uint8Array | string) => + api.derive.staking.keysMulti([stashId]) +); + +/** + * @name keysMulti + * @description Retrieves session keys for multiple stash accounts. + * @param { (Uint8Array | string)[] } stashIds Array of stash account IDs. + * @example + * ```javascript + * const keysMulti = await api.derive.staking.keysMulti([ ALICE, BOB ]); + * keysMulti.forEach((keys) => { + * console.log( + * "Session keys:", + * keys.sessionIds.map((key) => `Key: ${key}`) + * ); + * }); + * ``` + */ +export function keysMulti (instanceId: string, api: DeriveApi): (stashIds: (Uint8Array | string)[]) => Observable { + return memo(instanceId, (stashIds: (Uint8Array | string)[]): Observable => + stashIds.length + ? api.query.session.queuedKeys().pipe( + switchMap((queuedKeys) => + combineLatest([ + of(queuedKeys), + // eslint-disable-next-line @typescript-eslint/dot-notation + api.consts['session']?.['dedupKeyPrefix'] + // eslint-disable-next-line @typescript-eslint/dot-notation + ? api.query.session.nextKeys.multi(stashIds.map((s) => [api.consts['session']['dedupKeyPrefix'], s])) + : combineLatest(stashIds.map((s) => api.query.session.nextKeys(s))) + ]) + ), + map(([queuedKeys, nextKeys]) => + stashIds.map((stashId, index) => + extractsIds(stashId, queuedKeys, nextKeys[index]) + ) + ) + ) + : of([]) + ); +} diff --git a/packages/api-derive/src/staking/overview.ts b/packages/api-derive/src/staking/overview.ts new file mode 100644 index 0000000..ee84090 --- /dev/null +++ b/packages/api-derive/src/staking/overview.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi, DeriveStakingOverview } from '../types.js'; + +import { combineLatest, map } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +/** + * @name overview + * @description Retrieve the staking overview, including elected validators and points earned. + * @example + * ```javascript + * const { + * activeEra, + * activeEraStart, + * currentEra, + * currentIndex, + * nextElected, + * validatorCount, + * validators, + * } = await api.derive.staking.overview(); + * ``` + */ +export function overview (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + combineLatest([ + api.derive.session.indexes(), + api.derive.staking.validators() + ]).pipe( + map(([indexes, { nextElected, validators }]): DeriveStakingOverview => + objectSpread({}, indexes, { + nextElected, + validators + }) + ) + )); +} diff --git a/packages/api-derive/src/staking/ownExposure.ts b/packages/api-derive/src/staking/ownExposure.ts new file mode 100644 index 0000000..543b853 --- /dev/null +++ b/packages/api-derive/src/staking/ownExposure.ts @@ -0,0 +1,83 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, u32 } from '@pezkuwi/types'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { PezspStakingExposure, PezspStakingExposurePage, PezspStakingPagedExposureMetadata } from '@pezkuwi/types/lookup'; +import type { AnyNumber } from '@pezkuwi/types-codec/types'; +import type { DeriveApi, DeriveOwnExposure } from '../types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { firstMemo, memo } from '../util/index.js'; +import { erasHistoricApplyAccount } from './util.js'; + +export function _ownExposures (instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean, page: u32 | AnyNumber) => Observable { + return memo(instanceId, (accountId: Uint8Array | string, eras: EraIndex[], _withActive: boolean, page: u32 | AnyNumber): Observable => { + const emptyStakingExposure = api.registry.createType('Exposure'); + // The reason we don't explicitly make the actual types is for compatibility. If the chain doesn't have the noted type it will fail + // on construction. Therefore we just make an empty option. + const emptyOptionPage = api.registry.createType>('Option'); + const emptyOptionMeta = api.registry.createType>('Option'); + + return eras.length + ? combineLatest([ + // Backwards and forward compat for historical integrity when using `erasHistoricApplyAccount` + api.query.staking.erasStakersClipped + ? combineLatest(eras.map((e) => api.query.staking.erasStakersClipped(e, accountId))) + : of(eras.map((_) => emptyStakingExposure)), + api.query.staking.erasStakers + ? combineLatest(eras.map((e) => api.query.staking.erasStakers(e, accountId))) + : of(eras.map((_) => emptyStakingExposure)), + api.query.staking.erasStakersPaged + ? combineLatest(eras.map((e) => api.query.staking.erasStakersPaged>(e, accountId, page))) + : of(eras.map((_) => emptyOptionPage)), + api.query.staking.erasStakersOverview + ? combineLatest(eras.map((e) => api.query.staking.erasStakersOverview(e, accountId))) + : of(eras.map((_) => emptyOptionMeta)) + ]).pipe( + map(([clp, exp, paged, expMeta]): DeriveOwnExposure[] => + eras.map((era, index) => ({ clipped: clp[index], era, exposure: exp[index], exposureMeta: expMeta[index], exposurePaged: paged[index] })) + ) + ) + : of([]); + } + ); +} + +/** + * @name ownExposure + * @description Retrieves the staking exposure of a validator for a specific era, including their own stake. + * @param { Uint8Array | string } accountId The validator stash account. + * @param {EraIndex} era The staking era to query. + * @param { u32 | AnyNumber } page? (Optional) The pagination index. + * @example + * ```javascript + * const era = api.createType("EraIndex", 1000); + * const exposure = await api.derive.staking.ownExposure( + * "11VR4pF6c7kfBhfmuwwjWY3FodeYBKWx7ix2rsRCU2q6hqJ", + * era + * ); + * console.log(JSON.stringify(exposure)); + * ``` + */ +export const ownExposure = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: Uint8Array | string, era: EraIndex, page?: u32 | AnyNumber) => + api.derive.staking._ownExposures(accountId, [era], true, page || 0) +); + +/** + * @name ownExposures + * @description Retrieves staking exposures for a validator across multiple historical eras. + * @param { Uint8Array | string } accountId The validator stash account. + * @param { boolean } withActive Whether to include the active era. + * @example + * ```javascript + * const exposures = await api.derive.staking.ownExposures( + * ALICE, + * true + * ); + * ``` + */ +export const ownExposures = /*#__PURE__*/ erasHistoricApplyAccount('_ownExposures'); diff --git a/packages/api-derive/src/staking/ownSlashes.ts b/packages/api-derive/src/staking/ownSlashes.ts new file mode 100644 index 0000000..c4e0fc2 --- /dev/null +++ b/packages/api-derive/src/staking/ownSlashes.ts @@ -0,0 +1,68 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BalanceOf, EraIndex, Perbill } from '@pezkuwi/types/interfaces'; +import type { ITuple } from '@pezkuwi/types/types'; +import type { DeriveApi, DeriveStakerSlashes } from '../types.js'; + +import { combineLatest, map, of } from 'rxjs'; + +import { firstMemo, memo } from '../util/index.js'; +import { erasHistoricApplyAccount } from './util.js'; + +export function _ownSlashes (instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable { + return memo(instanceId, (accountId: Uint8Array | string, eras: EraIndex[], _withActive: boolean): Observable => + eras.length + ? combineLatest([ + combineLatest(eras.map((e) => api.query.staking.validatorSlashInEra(e, accountId))), + combineLatest(eras.map((e) => api.query.staking.nominatorSlashInEra(e, accountId))) + ]).pipe( + map(([vals, noms]): DeriveStakerSlashes[] => + eras.map((era, index) => ({ + era, + total: vals[index].isSome + ? (vals[index].unwrap() as ITuple<[Perbill, BalanceOf]>)[1] + : (noms[index].unwrapOrDefault() as BalanceOf) + })) + ) + ) + : of([]) + ); +} + +/** + * @name ownSlash + * @description Retrieves the slashes applied to a specific account in a given era. + * @param { Uint8Array | string } accountId The validator stash account. + * @param {EraIndex} era The staking era to query. + * @example + * ```javascript + * const era = api.createType("EraIndex", 1000); + * const slashedAmount = await api.derive.staking.ownSlash( + * ALICE, + * era + * ); + * console.log(`Era: ${slashedAmount.era}, total ${slashedAmount.total}`); + * ``` + */ +export const ownSlash = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: Uint8Array | string, era: EraIndex) => + api.derive.staking._ownSlashes(accountId, [era], true) +); + +/** + * @name ownSlashes + * @description Retrieves the slashes for a specific account across all historic eras. + * @param { Uint8Array | string } accountId The validator stash account. + * @param { boolean } withActive Whether to include the active era. + * @example + * ```javascript + * const slashes = await api.derive.staking.ownSlashes( + * ALICE, + * true + * ); + * console.log(slashes); + * ``` + */ +export const ownSlashes = /*#__PURE__*/ erasHistoricApplyAccount('_ownSlashes'); diff --git a/packages/api-derive/src/staking/query.ts b/packages/api-derive/src/staking/query.ts new file mode 100644 index 0000000..6678786 --- /dev/null +++ b/packages/api-derive/src/staking/query.ts @@ -0,0 +1,230 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option, StorageKey, u32, Vec } from '@pezkuwi/types'; +import type { AccountId, EraIndex } from '@pezkuwi/types/interfaces'; +import type { PezpalletStakingNominations, PezpalletStakingRewardDestination, PezpalletStakingStakingLedger, PezpalletStakingValidatorPrefs, PezspStakingExposure, PezspStakingExposurePage, PezspStakingPagedExposureMetadata } from '@pezkuwi/types/lookup'; +import type { AnyNumber } from '@pezkuwi/types-codec/types'; +import type { DeriveApi, DeriveStakingQuery, StakingQueryFlags } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { firstMemo, memo } from '../util/index.js'; + +// handle compatibility between generations of structures +function rewardDestinationCompat (rewardDestination: PezpalletStakingRewardDestination | Option): PezpalletStakingRewardDestination | null { + // We ensure the type is an Option by checking if isSome is a boolean. When isSome doesn't exist it will always return undefined. + return typeof (rewardDestination as Option).isSome === 'boolean' + ? (rewardDestination as Option).unwrapOr(null) + : (rewardDestination as PezpalletStakingRewardDestination); +} + +function filterClaimedRewards (api: DeriveApi, cl: number[]): Vec { + return api.registry.createType('Vec', cl.filter((c) => c !== -1)); +} + +function filterRewards (stashIds: AccountId[], eras: number[], claimedRewards: [StorageKey<[u32, AccountId]>, Vec][], stakersOverview: [StorageKey<[u32, AccountId]>, Option][]): number[][] { + const claimedData: Record> = {}; + const overviewData: Record> = {}; + const ids = stashIds.map((i) => i.toString()); + + claimedRewards.forEach(([keys, rewards]) => { + const id = keys.args[1].toString(); + const era = keys.args[0].toNumber(); + + if (ids.includes(id)) { + if (claimedData[id]) { + claimedData[id].set(era, rewards.toArray()); + } else { + claimedData[id] = new Map(); + claimedData[id].set(era, rewards.toArray()); + } + } + }); + + stakersOverview.forEach(([keys, overview]) => { + const id = keys.args[1].toString(); + const era = keys.args[0].toNumber(); + + if (ids.includes(id) && overview.isSome) { + if (overviewData[id]) { + overviewData[id].set(era, overview.unwrap().pageCount); + } else { + overviewData[id] = new Map(); + overviewData[id].set(era, overview.unwrap().pageCount); + } + } + }); + + return stashIds.map((id) => { + const rewardsPerEra = claimedData[id.toString()]; + const overviewPerEra = overviewData[id.toString()]; + + return eras.map((era) => { + if (rewardsPerEra && rewardsPerEra.has(era) && overviewPerEra && overviewPerEra.has(era)) { + const rewards = rewardsPerEra.get(era) as unknown as u32[]; + const pageCount = overviewPerEra.get(era) as unknown as u32; + + return rewards.length === pageCount.toNumber() + ? era + : -1; + } + + return -1; + }); + }); +} + +function parseDetails (api: DeriveApi, stashId: AccountId, controllerIdOpt: Option | null, nominatorsOpt: Option, rewardDestinationOpts: Option | PezpalletStakingRewardDestination, validatorPrefs: PezpalletStakingValidatorPrefs, exposure: Option, stakingLedgerOpt: Option, exposureMeta: Option, claimedRewards: number[], exposureEraStakers: PezspStakingExposure): DeriveStakingQuery { + return { + accountId: stashId, + claimedRewardsEras: filterClaimedRewards(api, claimedRewards), + controllerId: controllerIdOpt?.unwrapOr(null) || null, + exposureEraStakers, + exposureMeta, + exposurePaged: exposure, + nominators: nominatorsOpt.isSome + ? nominatorsOpt.unwrap().targets + : [], + rewardDestination: rewardDestinationCompat(rewardDestinationOpts), + stakingLedger: stakingLedgerOpt.unwrapOrDefault(), + stashId, + validatorPrefs + }; +} + +function getLedgers (api: DeriveApi, optIds: (Option | null)[], { withLedger = false }: StakingQueryFlags): Observable[]> { + const ids = optIds + .filter((o): o is Option => withLedger && !!o && o.isSome) + .map((o) => o.unwrap()); + const emptyLed = api.registry.createType>('Option'); + + return ( + ids.length + ? combineLatest(ids.map((s) => api.query.staking.ledger(s))) + : of([]) + ).pipe( + map((optLedgers): Option[] => { + let offset = -1; + + return optIds.map((o): Option => + o && o.isSome + ? optLedgers[++offset] || emptyLed + : emptyLed + ); + }) + ); +} + +function getStashInfo (api: DeriveApi, stashIds: AccountId[], activeEra: EraIndex, { withClaimedRewardsEras, withController, withDestination, withExposure, withExposureErasStakersLegacy, withExposureMeta, withLedger, withNominations, withPrefs }: StakingQueryFlags, page: u32 | AnyNumber): Observable<[(Option | null)[], Option[], Option[], PezpalletStakingValidatorPrefs[], Option[], Option[], number[][], PezspStakingExposure[]]> { + const emptyNoms = api.registry.createType>('Option'); + const emptyRewa = api.registry.createType>('RewardDestination'); + const emptyExpoEraStakers = api.registry.createType('Exposure'); + const emptyPrefs = api.registry.createType('ValidatorPrefs'); + // The reason we don't explicitly make the actual types is for compatibility. If the chain doesn't have the noted type it will fail + // on construction. Therefore we just make an empty option. + const emptyExpo = api.registry.createType>('Option'); + const emptyExpoMeta = api.registry.createType>('Option'); + const emptyClaimedRewards = [-1]; + + const depth = Number(api.consts.staking.historyDepth.toNumber()); + const eras = new Array(depth).fill(0).map((_, idx) => { + if (idx === 0) { + return activeEra.toNumber() - 1; + } + + return activeEra.toNumber() - idx - 1; + }); + + return combineLatest([ + withController || withLedger + ? combineLatest(stashIds.map((s) => api.query.staking.bonded(s))) + : of(stashIds.map(() => null)), + withNominations + ? combineLatest(stashIds.map((s) => api.query.staking.nominators(s))) + : of(stashIds.map(() => emptyNoms)), + withDestination + ? combineLatest(stashIds.map((s) => api.query.staking.payee(s))) + : of(stashIds.map(() => emptyRewa)), + withPrefs + ? combineLatest(stashIds.map((s) => api.query.staking.validators(s))) + : of(stashIds.map(() => emptyPrefs)), + withExposure && api.query.staking.erasStakersPaged + ? combineLatest(stashIds.map((s) => api.query.staking.erasStakersPaged>(activeEra, s, page))) + : of(stashIds.map(() => emptyExpo)), + withExposureMeta && api.query.staking.erasStakersOverview + ? combineLatest(stashIds.map((s) => api.query.staking.erasStakersOverview(activeEra, s))) + : of(stashIds.map(() => emptyExpoMeta)), + withClaimedRewardsEras && api.query.staking.claimedRewards + ? combineLatest([ + api.query.staking.claimedRewards.entries>(), + api.query.staking.erasStakersOverview.entries>() + ]).pipe( + map(([rewardsStorageVec, overviewStorageVec]) => filterRewards(stashIds, eras, rewardsStorageVec, overviewStorageVec)) + ) + : of(stashIds.map(() => emptyClaimedRewards)), + withExposureErasStakersLegacy && api.query.staking.erasStakers + ? combineLatest(stashIds.map((s) => api.query.staking.erasStakers(activeEra, s))) + : of(stashIds.map(() => emptyExpoEraStakers)) + ]); +} + +function getBatch (api: DeriveApi, activeEra: EraIndex, stashIds: AccountId[], flags: StakingQueryFlags, page: u32 | AnyNumber): Observable { + return getStashInfo(api, stashIds, activeEra, flags, page).pipe( + switchMap(([controllerIdOpt, nominatorsOpt, rewardDestination, validatorPrefs, exposure, exposureMeta, claimedRewardsEras, exposureEraStakers]): Observable => + getLedgers(api, controllerIdOpt, flags).pipe( + map((stakingLedgerOpts) => + stashIds.map((stashId, index) => + parseDetails(api, stashId, controllerIdOpt[index], nominatorsOpt[index], rewardDestination[index], validatorPrefs[index], exposure[index], stakingLedgerOpts[index], exposureMeta[index], claimedRewardsEras[index], exposureEraStakers[index]) + ) + ) + ) + ) + ); +} + +/** + * @name query + * @param { Uint8Array | string } accountId The stash account to query. + * @param { StakingQueryFlags } flags Flags to customize the query. + * @param { u32 } page (Optional) pagination parameter. + * @description Retrieves staking details for a given stash account. + * @example + * ```javascript + * const stakingInfo = await api.derive.staking.query( + * ALICE, + * {} + * ); + * ``` + */ +export const query = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: Uint8Array | string, flags: StakingQueryFlags, page?: u32) => + api.derive.staking.queryMulti([accountId], flags, page) +); + +/** + * @name queryMulti + * @param { (Uint8Array | string)[] } accountIds List of stash accounts to query. + * @param { StakingQueryFlags } flags Flags to customize the query. + * @param { u32 } page (Optional) pagination parameter. + * @description Retrieves staking details for multiple stash accounts. + * @example + * ```javascript + * const stakingInfos = await api.derive.staking.queryMulti([stashId1, stashId2], {}); + * ``` + */ +export function queryMulti (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], flags: StakingQueryFlags, page?: u32 | AnyNumber) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], flags: StakingQueryFlags, page?: u32 | AnyNumber): Observable => + api.derive.session.indexes().pipe( + switchMap(({ activeEra }): Observable => { + const stashIds = accountIds.map((a) => api.registry.createType('AccountId', a)); + const p = page || 0; + + return stashIds.length + ? getBatch(api, activeEra, stashIds, flags, p) + : of([]); + }) + ) + ); +} diff --git a/packages/api-derive/src/staking/stakerExposure.ts b/packages/api-derive/src/staking/stakerExposure.ts new file mode 100644 index 0000000..d5fb09d --- /dev/null +++ b/packages/api-derive/src/staking/stakerExposure.ts @@ -0,0 +1,78 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; +import type { DeriveEraValidatorExposurePaged, DeriveStakerExposure } from './types.js'; + +import { map, switchMap } from 'rxjs'; + +import { firstMemo, memo } from '../util/index.js'; + +export function _stakerExposures (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], eras: EraIndex[], withActive?: boolean) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], eras: EraIndex[], withActive = false): Observable => { + const stakerIds = accountIds.map((a) => api.registry.createType('AccountId', a).toString()); + + return api.derive.staking._erasExposure(eras, withActive).pipe( + map((exposures): DeriveStakerExposure[][] => + stakerIds.map((stakerId) => + exposures.map(({ era, nominators: allNominators, validators: allValidators }): DeriveStakerExposure => { + const isValidator = !!allValidators[stakerId]; + const validators: DeriveEraValidatorExposurePaged = {}; + const nominating = allNominators[stakerId] || []; + + if (isValidator) { + validators[stakerId] = allValidators[stakerId]; + } else if (nominating) { + nominating.forEach(({ validatorId }): void => { + validators[validatorId] = allValidators[validatorId]; + }); + } + + return { era, isEmpty: !Object.keys(validators).length, isValidator, nominating, validators }; + }) + ) + ) + ); + }); +} + +/** + * @name stakerExposures + * @param { (Uint8Array | string)[] } accountIds List of validator stash accounts. + * @param { boolean } withActive Whether to include the active era. + * @description Retrieves staking exposure for multiple accounts across historical eras. + * @example + * ```javascript + * const exposure = await api.derive.staking.stakerExposures( + * [ALICE, BOB], + * true + * ); + * ``` +*/ +export function stakerExposures (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], withActive?: boolean) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], withActive = false): Observable => + api.derive.staking.erasHistoric(withActive).pipe( + switchMap((eras) => api.derive.staking._stakerExposures(accountIds, eras, withActive)) + ) + ); +} + +/** + * @name stakerExposure + * @param { Uint8Array | string } accountId The validator stash account. + * @param { boolean } withActive Whether to include the active era. + * @description Retrieves staking exposure for a single account across historical eras. Exposure refers to the total stake associated with a validator. + * @example + * ```javascript + * const exposure = await api.derive.staking.stakerExposure( + * ALICE, + * true + * ); + * ``` +*/ +export const stakerExposure = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: Uint8Array | string, withActive?: boolean) => + api.derive.staking.stakerExposures([accountId], withActive) +); diff --git a/packages/api-derive/src/staking/stakerPoints.ts b/packages/api-derive/src/staking/stakerPoints.ts new file mode 100644 index 0000000..fbf264c --- /dev/null +++ b/packages/api-derive/src/staking/stakerPoints.ts @@ -0,0 +1,46 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveStakerPoints } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { erasHistoricApplyAccount } from './util.js'; + +export function _stakerPoints (instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable { + return memo(instanceId, (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean): Observable => { + const stakerId = api.registry.createType('AccountId', accountId).toString(); + + return api.derive.staking._erasPoints(eras, withActive).pipe( + map((points): DeriveStakerPoints[] => + points.map(({ era, eraPoints, validators }): DeriveStakerPoints => ({ + era, + eraPoints, + points: validators[stakerId] || api.registry.createType('RewardPoint') + })) + ) + ); + }); +} + +/** + * @name stakerPoints + * @param { Uint8Array | string } accountId The stakers AccountId. + * @param { boolean } withActive Whether to include the active era. + * @description Retrieves the era reward points earned by a given staker across all eras. + * @example + * ```javascript + * const points = await api.derive.staking.stakerPoints( + * ALICE, //Alice accountId + * false + * ); + * console.log( + * 'Validator Era Points:', + * points.map(({ era, points }) => `Era ${era}: ${points.toString()} points`) + * ); + * ``` +*/ +export const stakerPoints = /*#__PURE__*/ erasHistoricApplyAccount('_stakerPoints'); diff --git a/packages/api-derive/src/staking/stakerPrefs.ts b/packages/api-derive/src/staking/stakerPrefs.ts new file mode 100644 index 0000000..67d48b0 --- /dev/null +++ b/packages/api-derive/src/staking/stakerPrefs.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveStakerPrefs } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { erasHistoricApplyAccount } from './util.js'; + +export function _stakerPrefs (instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable { + return memo(instanceId, (accountId: Uint8Array | string, eras: EraIndex[], _withActive: boolean): Observable => + api.query.staking.erasValidatorPrefs.multi(eras.map((e) => [e, accountId])).pipe( + map((all): DeriveStakerPrefs[] => + all.map((validatorPrefs, index): DeriveStakerPrefs => ({ + era: eras[index], + validatorPrefs + })) + ) + ) + ); +} + +/** + * @name stakerPrefs + * @param { Uint8Array | string } accountId The stakers AccountId. + * @param { boolean } withActive Whether to include the active era. + * @description Retrieves the validator preferences for a given staker across historical eras. + * @example + * ```javascript + * const prefs = await api.derive.staking.stakerPrefs( + * ALICE, //Alice accountId + * false + * ); + * console.log( + * 'Validator Preferences:', + * prefs.map( + * ({ era, validatorPrefs }) => `Era ${era}: Commission ${validatorPrefs.commission.toString()}` + * ) + * ); + * ``` +*/ +export const stakerPrefs = /*#__PURE__*/ erasHistoricApplyAccount('_stakerPrefs'); diff --git a/packages/api-derive/src/staking/stakerRewards.ts b/packages/api-derive/src/staking/stakerRewards.ts new file mode 100644 index 0000000..16470c6 --- /dev/null +++ b/packages/api-derive/src/staking/stakerRewards.ts @@ -0,0 +1,298 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { u32, Vec } from '@pezkuwi/types'; +import type { AccountId, EraIndex } from '@pezkuwi/types/interfaces'; +import type { PezpalletStakingStakingLedger, PezspStakingExposure, PezspStakingExposurePage } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi, DeriveEraPoints, DeriveEraPrefs, DeriveEraRewards, DeriveEraValPoints, DeriveEraValPrefs, DeriveStakerExposure, DeriveStakerReward, DeriveStakerRewardValidator } from '../types.js'; +import type { DeriveStakingQuery } from './types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { BN_BILLION, BN_ZERO, objectSpread } from '@pezkuwi/util'; + +import { firstMemo, memo } from '../util/index.js'; + +type ErasResult = [DeriveEraPoints[], DeriveEraPrefs[], DeriveEraRewards[]]; + +// handle compatibility between generations of structures +function extractCompatRewards (claimedRewardsEras: Vec, ledger?: PezpalletStakingStakingLedger): u32[] { + const l = ledger + ? ( + ledger.legacyClaimedRewards || + (ledger as PezpalletStakingStakingLedger & { claimedRewards: Vec }).claimedRewards + )?.toArray() + : [] as unknown as Vec; + + return (claimedRewardsEras.toArray() || []).concat(l); +} + +function parseRewards (api: DeriveApi, stashId: AccountId, [erasPoints, erasPrefs, erasRewards]: ErasResult, exposures: DeriveStakerExposure[], claimedRewardsEras: Vec): DeriveStakerReward[] { + return exposures.map(({ era, isEmpty, isValidator, nominating, validators: eraValidators }): DeriveStakerReward => { + const { eraPoints, validators: allValPoints } = erasPoints.find((p) => p.era.eq(era)) || { eraPoints: BN_ZERO, validators: {} as DeriveEraValPoints }; + const { eraReward } = erasRewards.find((r) => r.era.eq(era)) || { eraReward: api.registry.createType('Balance') }; + const { validators: allValPrefs } = erasPrefs.find((p) => p.era.eq(era)) || { validators: {} as DeriveEraValPrefs }; + const validators: Record = {}; + const stakerId = stashId.toString(); + + Object.entries(eraValidators).forEach(([validatorId, exposure]): void => { + const valPoints = allValPoints[validatorId] || BN_ZERO; + const valComm = allValPrefs[validatorId]?.commission.unwrap() || BN_ZERO; + const expTotal = (exposure as PezspStakingExposure).total + ? (exposure as PezspStakingExposure).total?.unwrap() + : (exposure as PezspStakingExposurePage).pageTotal + ? (exposure as PezspStakingExposurePage).pageTotal?.unwrap() + : BN_ZERO; + let avail = BN_ZERO; + let value: BN | undefined; + + if (!(expTotal.isZero() || valPoints.isZero() || eraPoints.isZero())) { + avail = eraReward.mul(valPoints).div(eraPoints); + + const valCut = valComm.mul(avail).div(BN_BILLION); + let staked: BN; + + if (validatorId === stakerId) { + if ((exposure as PezspStakingExposure).own) { + staked = (exposure as PezspStakingExposure).own.unwrap(); + } else { + const expAccount = exposure.others.find(({ who }) => who.eq(validatorId)); + + staked = expAccount + ? expAccount.value.unwrap() + : BN_ZERO; + } + } else { + const stakerExp = exposure.others.find(({ who }) => who.eq(stakerId)); + + staked = stakerExp + ? stakerExp.value.unwrap() + : BN_ZERO; + } + + value = avail.sub(valCut).imul(staked).div(expTotal).iadd(validatorId === stakerId ? valCut : BN_ZERO); + } + + validators[validatorId] = { + total: api.registry.createType('Balance', avail), + value: api.registry.createType('Balance', value) + }; + }); + + return { + era, + eraReward, + // This might not always be accurate as you need validator account information in order to see if the rewards have been claimed. + // This is possibly adjusted in `filterRewards` when need be. + isClaimed: claimedRewardsEras.some((c) => c.eq(era)), + isEmpty, + isValidator, + nominating, + validators + }; + }); +} + +function allUniqValidators (rewards: DeriveStakerReward[][]): [string[], string[][]] { + return rewards.reduce(([all, perStash]: [string[], string[][]], rewards) => { + const uniq: string[] = []; + + perStash.push(uniq); + rewards.forEach(({ validators }) => + Object.keys(validators).forEach((validatorId): void => { + if (!uniq.includes(validatorId)) { + uniq.push(validatorId); + + if (!all.includes(validatorId)) { + all.push(validatorId); + } + } + }) + ); + + return [all, perStash]; + }, [[], []]); +} + +function removeClaimed (validators: string[], queryValidators: DeriveStakingQuery[], reward: DeriveStakerReward, claimedRewardsEras: Vec): void { + const rm: string[] = []; + + Object.keys(reward.validators).forEach((validatorId): void => { + const index = validators.indexOf(validatorId); + + if (index !== -1) { + const valLedger = queryValidators[index].stakingLedger; + + if (extractCompatRewards(claimedRewardsEras, valLedger).some((e) => reward.era?.eq(e))) { + rm.push(validatorId); + } + } + }); + + rm.forEach((validatorId): void => { + delete reward.validators[validatorId]; + }); +} + +function filterRewards (eras: EraIndex[], valInfo: [string, DeriveStakingQuery][], { claimedRewardsEras, rewards, stakingLedger }: { rewards: DeriveStakerReward[]; stakingLedger: PezpalletStakingStakingLedger, claimedRewardsEras: Vec }): DeriveStakerReward[] { + const filter = eras.filter((e) => !extractCompatRewards(claimedRewardsEras, stakingLedger).some((s) => s?.eq(e))); + const validators = valInfo.map(([v]) => v); + const queryValidators = valInfo.map(([, q]) => q); + + return rewards + .filter(({ isEmpty }) => !isEmpty) + .filter((reward): boolean => { + if (!filter.some((e) => reward.era.eq(e))) { + return false; + } + + removeClaimed(validators, queryValidators, reward, claimedRewardsEras); + + return true; + }) + .filter(({ validators }) => Object.keys(validators).length !== 0) + .map((reward) => { + let isClaimed = reward.isClaimed; + const valKeys = Object.keys(reward.validators); + + if (!reward.isClaimed && valKeys.length) { + for (const key of valKeys) { + const info = queryValidators.find((i) => i.accountId.toString() === key); + + if (info) { + isClaimed = info.claimedRewardsEras?.toArray().some((era) => era.eq(reward.era)); + break; + } + } + } + + return objectSpread({}, reward, { + isClaimed, + nominators: reward.nominating.filter((n) => reward.validators[n.validatorId]) + }); + }); +} + +export function _stakerRewardsEras (instanceId: string, api: DeriveApi): (eras: EraIndex[], withActive?: boolean) => Observable { + return memo(instanceId, (eras: EraIndex[], withActive = false): Observable => + combineLatest([ + api.derive.staking._erasPoints(eras, withActive), + api.derive.staking._erasPrefs(eras, withActive), + api.derive.staking._erasRewards(eras, withActive) + ]) + ); +} + +export function _stakerRewards (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], eras: EraIndex[], withActive?: boolean) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], eras: EraIndex[], withActive = false): Observable => { + // Ensures that when number or string types are passed in they are sanitized + // Ref: https://github.com/pezkuwichain/pezkuwi-api/issues/5910 + const sanitizedEras: EraIndex[] = eras.map((e) => typeof e === 'number' || typeof e === 'string' ? api.registry.createType('u32', e) : e); + + return combineLatest([ + api.derive.staking.queryMulti(accountIds, { withClaimedRewardsEras: true, withLedger: true }), + api.derive.staking._stakerExposures(accountIds, sanitizedEras, withActive), + api.derive.staking._stakerRewardsEras(sanitizedEras, withActive) + ]).pipe( + switchMap(([queries, exposures, erasResult]): Observable => { + const allRewards = queries.map(({ claimedRewardsEras, stakingLedger, stashId }, index): DeriveStakerReward[] => + (!stashId || (!stakingLedger && !claimedRewardsEras)) + ? [] + : parseRewards(api, stashId, erasResult, exposures[index], claimedRewardsEras) + ); + + if (withActive) { + return of(allRewards); + } + + const [allValidators, stashValidators] = allUniqValidators(allRewards); + + return api.derive.staking.queryMulti(allValidators, { withClaimedRewardsEras: true, withLedger: true }).pipe( + map((queriedVals): DeriveStakerReward[][] => + queries.map(({ claimedRewardsEras, stakingLedger }, index): DeriveStakerReward[] => + filterRewards( + eras, + stashValidators[index] + .map((validatorId): [string, DeriveStakingQuery | undefined] => [ + validatorId, + queriedVals.find((q) => q.accountId.eq(validatorId)) + ]) + .filter((v): v is [string, DeriveStakingQuery] => !!v[1]), + { + claimedRewardsEras, + rewards: allRewards[index], + stakingLedger + } + ) + ) + ) + ); + }) + ); + } + ); +} + +/** + * @name stakerRewards + * @description Staking rewards history for a given staker. + * @param { Uint8Array | string } accountId The stakers AccountId. + * @param { boolean } withActive Whether to include the active era. + * @example + * ```javascript + * const rewards = await api.derive.staking.stakerRewards( + * ALICE, //Alice accountId + * false + * ); + * ``` + */ +export const stakerRewards = /*#__PURE__*/ firstMemo( + (api: DeriveApi, accountId: Uint8Array | string, withActive?: boolean) => + api.derive.staking.erasHistoric(withActive).pipe( + switchMap((eras) => api.derive.staking._stakerRewards([accountId], eras, withActive)) + ) +); + +/** + * @name stakerRewardsMultiEras + * @description Staking rewards for multiple stakers over specific eras. + * @param { Uint8Array | string } accountIds List of stakers identified by their AccountId. + * @param { EraIndex[] } eras Eras for which to retrieve the data. + * @example + * ```javascript + * const rewards = await api.derive.staking.stakerRewardsMultiEras( + * [ALICE, BOB, CHARLIER], //accountIds + * [100,101] //eras + * ); + * ``` + */ +export function stakerRewardsMultiEras (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], eras: EraIndex[]) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], eras: EraIndex[]): Observable => + accountIds.length && eras.length + ? api.derive.staking._stakerRewards(accountIds, eras, false) + : of([]) + ); +} + +/** + * @name stakerRewardsMulti + * @description Staking rewards for multiple stakers. + * @param { Uint8Array | string } accountIds List of stakers identified by their AccountId. + * @param { boolean } withActive Whether to include the active era. + * @example + * ```javascript + * const rewards = await api.derive.staking.stakerRewardsMulti( + * [ALICE, BOB, CHARLIER], //accountIds + * true + * ); + * ``` + */ +export function stakerRewardsMulti (instanceId: string, api: DeriveApi): (accountIds: (Uint8Array | string)[], withActive?: boolean) => Observable { + return memo(instanceId, (accountIds: (Uint8Array | string)[], withActive = false): Observable => + api.derive.staking.erasHistoric(withActive).pipe( + switchMap((eras) => api.derive.staking.stakerRewardsMultiEras(accountIds, eras)) + ) + ); +} diff --git a/packages/api-derive/src/staking/stakerSlashes.ts b/packages/api-derive/src/staking/stakerSlashes.ts new file mode 100644 index 0000000..1f4e1ed --- /dev/null +++ b/packages/api-derive/src/staking/stakerSlashes.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveStakerSlashes } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; +import { erasHistoricApplyAccount } from './util.js'; + +export function _stakerSlashes (instanceId: string, api: DeriveApi): (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean) => Observable { + return memo(instanceId, (accountId: Uint8Array | string, eras: EraIndex[], withActive: boolean): Observable => { + const stakerId = api.registry.createType('AccountId', accountId).toString(); + + return api.derive.staking._erasSlashes(eras, withActive).pipe( + map((slashes): DeriveStakerSlashes[] => + slashes.map(({ era, nominators, validators }): DeriveStakerSlashes => ({ + era, + total: nominators[stakerId] || validators[stakerId] || api.registry.createType('Balance') + })) + ) + ); + }); +} + +/** + * @name stakerSlashes + * @param { Uint8Array | string } accountId The stakers AccountId. + * @param { boolean } withActive Whether to include the active era. + * @description Retrieve the historical slashes (penalties) for a given staker. + * @example + * ```javascript + * const stakerSlashes = await api.derive.staking.stakerSlashes( + * ALICE, //Alice accountId + * true + * ); + * console.log( + * 'Staker Slashes:', + * stakerSlashes.map(({ era, total }) => `Era ${era}: Slashed ${total.toString()}`) + * ); + * ``` + */ +export const stakerSlashes = /*#__PURE__*/ erasHistoricApplyAccount('_stakerSlashes'); diff --git a/packages/api-derive/src/staking/stashes.ts b/packages/api-derive/src/staking/stashes.ts new file mode 100644 index 0000000..f338b4f --- /dev/null +++ b/packages/api-derive/src/staking/stashes.ts @@ -0,0 +1,55 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { map, startWith, switchMap } from 'rxjs'; + +import { drr, memo } from '../util/index.js'; + +function onBondedEvent (api: DeriveApi): Observable { + let current = Date.now(); + + return api.query.system.events().pipe( + map((events): number => { + current = events.filter(({ event, phase }): boolean => { + try { + return phase.isApplyExtrinsic && + event.section === 'staking' && + event.method === 'Bonded'; + } catch { + return false; + } + }) + ? Date.now() + : current; + + return current; + }), + startWith(current), + drr({ skipTimeout: true }) + ); +} + +/** + * @name stashes + * @description Retrieve the list of all validator stashes. + * @example + * ```javascript + * const stashes = await api.derive.staking.stashes(); + * console.log( + * "Validator Stashes:", + * stashes.map((s) => s.toString()) + * ); + * ``` + */ +export function stashes (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + onBondedEvent(api).pipe( + switchMap(() => api.query.staking.validators.keys()), + map((keys) => keys.map(({ args: [v] }) => v).filter((a) => a)) + ) + ); +} diff --git a/packages/api-derive/src/staking/types.ts b/packages/api-derive/src/staking/types.ts new file mode 100644 index 0000000..e4ebfd1 --- /dev/null +++ b/packages/api-derive/src/staking/types.ts @@ -0,0 +1,174 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Option, u32, Vec } from '@pezkuwi/types'; +import type { AccountId, Balance, EraIndex, RewardPoint } from '@pezkuwi/types/interfaces'; +import type { PezpalletStakingRewardDestination, PezpalletStakingStakingLedger, PezpalletStakingValidatorPrefs, PezspStakingExposure, PezspStakingExposurePage, PezspStakingPagedExposureMetadata } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveSessionIndexes } from '../session/types.js'; + +export type DeriveEraValPoints = Record; + +export type DeriveEraValPrefs = Record; + +export type DeriveEraValSlash = Record; + +export interface DeriveEraPoints { + era: EraIndex; + eraPoints: RewardPoint; + validators: DeriveEraValPoints; +} + +export interface DeriveEraPrefs { + era: EraIndex; + validators: DeriveEraValPrefs; +} + +export interface DeriveEraRewards { + era: EraIndex; + eraReward: Balance; +} + +export interface DeriveEraSlashes { + era: EraIndex; + nominators: DeriveEraValSlash; + validators: DeriveEraValSlash; +} + +export interface DeriveStakerPoints { + era: EraIndex; + eraPoints: RewardPoint; + points: RewardPoint; +} + +export interface DeriveOwnExposure { + clipped: PezspStakingExposure; + exposurePaged: Option; + era: EraIndex; + exposure: PezspStakingExposure; + exposureMeta: Option; +} + +export interface DeriveEraExposureNominating { + validatorId: string; + validatorIndex: number; +} + +export type DeriveEraNominatorExposure = Record; + +export type DeriveEraValidatorExposure = Record; + +export type DeriveEraValidatorExposurePaged = Record; + +export interface DeriveEraExposure { + era: EraIndex; + nominators: DeriveEraNominatorExposure; + validators: DeriveEraValidatorExposure; +} + +export interface DeriveEraExposurePaged { + era: EraIndex; + nominators: DeriveEraNominatorExposure; + validators: DeriveEraValidatorExposurePaged; +} + +export interface DeriveStakerExposure { + era: EraIndex; + isEmpty: boolean; + isValidator: boolean; + nominating: DeriveEraExposureNominating[]; + validators: DeriveEraValidatorExposurePaged; +} + +export interface DeriveStakerPrefs { + era: EraIndex; + validatorPrefs: PezpalletStakingValidatorPrefs; +} + +export interface DeriveStakerRewardValidator { + total: Balance; + value: Balance; +} + +export interface DeriveStakerReward { + era: EraIndex; + eraReward: Balance; + isClaimed: boolean; + isEmpty: boolean; + isValidator: boolean; + nominating: DeriveEraExposureNominating[]; + validators: Record; +} + +export interface DeriveStakerSlashes { + era: EraIndex; + total: Balance; +} + +export type DeriveOwnSlashes = DeriveStakerSlashes; + +export interface DeriveStakingKeys { + nextSessionIds: AccountId[]; + sessionIds: AccountId[]; +} + +export interface DeriveStakingValidators { + nextElected: AccountId[]; + validators: AccountId[]; +} + +export interface DeriveStakingStash { + controllerId: AccountId | null; + // Legacy Support for erasStakers + exposureEraStakers: PezspStakingExposure; + exposurePaged: Option; + exposureMeta: Option; + nominators: AccountId[]; + rewardDestination: PezpalletStakingRewardDestination | null; + stashId: AccountId; + validatorPrefs: PezpalletStakingValidatorPrefs; + claimedRewardsEras: Vec +} + +export interface DeriveStakingQuery extends DeriveStakingStash { + accountId: AccountId; + stakingLedger: PezpalletStakingStakingLedger; +} + +export interface DeriveStakingElected { + info: DeriveStakingQuery[]; + nextElected: AccountId[]; + validators: AccountId[]; +} + +export interface DeriveStakingWaiting { + info: DeriveStakingQuery[]; + waiting: AccountId[]; +} + +export interface DeriveUnlocking { + remainingEras: BN; + value: Balance; +} + +export interface DeriveStakingAccount extends DeriveStakingQuery, DeriveStakingKeys { + redeemable?: Balance; + unlocking?: DeriveUnlocking[]; +} + +export interface DeriveStakingOverview extends DeriveSessionIndexes { + nextElected: AccountId[]; + validators: AccountId[]; +} + +export interface StakingQueryFlags { + withController?: boolean; + withDestination?: boolean; + withExposure?: boolean; + withExposureErasStakersLegacy?: boolean, + withLedger?: boolean; + withNominations?: boolean; + withPrefs?: boolean; + withExposureMeta?: boolean; + withClaimedRewardsEras?: boolean; +} diff --git a/packages/api-derive/src/staking/util.ts b/packages/api-derive/src/staking/util.ts new file mode 100644 index 0000000..dea6e5a --- /dev/null +++ b/packages/api-derive/src/staking/util.ts @@ -0,0 +1,94 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { ObsInnerType } from '@pezkuwi/api-base/types'; +import type { u32 } from '@pezkuwi/types'; +import type { EraIndex } from '@pezkuwi/types/interfaces'; +import type { AnyNumber } from '@pezkuwi/types-codec/types'; +import type { ExactDerive } from '../derive.js'; +import type { DeriveApi } from '../types.js'; + +import { BehaviorSubject, combineLatest, map, of, switchMap, tap, toArray } from 'rxjs'; + +import { arrayChunk, arrayFlatten, nextTick } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; + +type ApplyReturn = ReturnType; + +// only retrieve a maximum of 14 eras (84 / 6) at a time +// (This is not empirically calculated. Rather smaller sizes take longer +// time due to the serial nature, large sizes may tie up the RPCs) +const ERA_CHUNK_SIZE = 14; + +function chunkEras (eras: EraIndex[], fn: (eras: EraIndex[]) => Observable): Observable { + const chunked = arrayChunk(eras, ERA_CHUNK_SIZE); + let index = 0; + const subject = new BehaviorSubject(chunked[index]); + + return subject.pipe( + switchMap(fn), + tap((): void => { + nextTick((): void => { + index++; + + index === chunked.length + ? subject.complete() + : subject.next(chunked[index]); + }); + }), + toArray(), + map(arrayFlatten) + ); +} + +export function filterEras (eras: EraIndex[], list: T[]): EraIndex[] { + return eras.filter((e) => !list.some(({ era }) => e.eq(era))); +} + +export function erasHistoricApply (fn: F): (instanceId: string, api: DeriveApi) => (withActive?: boolean) => ApplyReturn { + return (instanceId: string, api: DeriveApi) => + // Cannot quite get the typing right, but it is right in the code + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + memo(instanceId, (withActive = false) => + api.derive.staking.erasHistoric(withActive).pipe( + switchMap((e) => api.derive.staking[fn](e, withActive)) + ) + ) as any; +} + +export function erasHistoricApplyAccount (fn: F): (instanceId: string, api: DeriveApi) => (accountId: string | Uint8Array, withActive?: boolean) => ApplyReturn { + return (instanceId: string, api: DeriveApi) => + // Cannot quite get the typing right, but it is right in the code + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + memo(instanceId, (accountId: string | Uint8Array, withActive = false, page?: u32 | AnyNumber) => + api.derive.staking.erasHistoric(withActive).pipe( + switchMap((e) => api.derive.staking[fn](accountId, e, withActive, page || 0)) + ) + ) as any; +} + +export function singleEra (fn: F): (instanceId: string, api: DeriveApi) => (era: EraIndex) => ApplyReturn { + return (instanceId: string, api: DeriveApi) => + // Cannot quite get the typing right, but it is right in the code + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + memo(instanceId, (era: EraIndex) => + api.derive.staking[fn](era, true) + ) as any; +} + +export function combineEras (fn: F): (instanceId: string, api: DeriveApi) => (eras: EraIndex[], withActive: boolean) => Observable>[]> { + return (instanceId: string, api: DeriveApi) => + // Cannot quite get the typing right, but it is right in the code + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + memo(instanceId, (eras: EraIndex[], withActive: boolean) => + !eras.length + ? of([]) + : chunkEras(eras, (eras) => + combineLatest( + eras.map((e) => api.derive.staking[fn](e, withActive)) + ) + ) + ) as any; +} diff --git a/packages/api-derive/src/staking/validators.ts b/packages/api-derive/src/staking/validators.ts new file mode 100644 index 0000000..4e8437a --- /dev/null +++ b/packages/api-derive/src/staking/validators.ts @@ -0,0 +1,82 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AccountId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveStakingValidators } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +/** + * @name nextElected + * @description Retrieves the list of accounts that are set to be the next elected validators in the staking system. It provides a preview of who will be validators in the next staking era. + * @example + * ```javascript + * const nextElected = await api.derive.staking.nextElected(); + * console.log( + * "Next Elected Validators:", + * nextElected.map((acc) => acc.toString()) + * ); + * ``` + */ +export function nextElected (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + // Compatibility for future generation changes in staking. + api.query.staking.erasStakersOverview + ? api.derive.session.indexes().pipe( + // only populate for next era in the last session, so track both here - entries are not + // subscriptions, so we need a trigger - currentIndex acts as that trigger to refresh + switchMap(({ currentEra }) => api.query.staking.erasStakersOverview.keys(currentEra)), + // Dedupe any duplicates + map((keys) => [...new Set(keys.map(({ args: [, accountId] }) => accountId.toString()))].map((a) => api.registry.createType('AccountId', a))) + ) + : api.query.staking.erasStakers + ? api.derive.session.indexes().pipe( + // only populate for next era in the last session, so track both here - entries are not + // subscriptions, so we need a trigger - currentIndex acts as that trigger to refresh + switchMap(({ currentEra }) => api.query.staking.erasStakers.keys(currentEra)), + // Dedupe any duplicates + map((keys) => [...new Set(keys.map(({ args: [, accountId] }) => accountId.toString()))].map((a) => api.registry.createType('AccountId', a))) + ) + : api.query.staking['currentElected']() + ); +} + +/** + * @name validators + * @description Retrieve latest list of validators. + * @example + * ```javascript + * const { validators, nextElected } = await api.derive.staking.validators(); + * console.log( + * "Current Validators:", + * validators.map((v) => v.toString()) + * ); + * console.log( + * "Next Elected Validators:", + * nextElected.map((v) => v.toString()) + * ); + * ``` + */ +export function validators (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + // Sadly the node-template is (for some obscure reason) not comprehensive, so while the derive works + // in all actual real-world deployed chains, it does create some confusion for limited template chains + combineLatest([ + api.query.session + ? api.query.session.validators() + : of([]), + api.query.staking + ? api.derive.staking.nextElected() + : of([]) + ]).pipe( + map(([validators, nextElected]): DeriveStakingValidators => ({ + nextElected: nextElected.length + ? nextElected + : validators, + validators + })) + )); +} diff --git a/packages/api-derive/src/staking/waitingInfo.ts b/packages/api-derive/src/staking/waitingInfo.ts new file mode 100644 index 0000000..a6a4ae0 --- /dev/null +++ b/packages/api-derive/src/staking/waitingInfo.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi, DeriveStakingWaiting, StakingQueryFlags } from '../types.js'; + +import { combineLatest, map, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +const DEFAULT_FLAGS = { withController: true, withPrefs: true }; + +/** + * @name waitingInfo + * @param {StakingQueryFlags} flags? (Optional) Query flags to filter the staking data. + * @description Staking candidates who are waiting to become validators. + * @example + * ```javascript + * const { waiting, info } = await api.derive.staking.waitingInfo(); + * console.log( + * "Waiting Candidates:", + * waiting.map((acc) => acc.toString()) + * ); + * ``` + */ +export function waitingInfo (instanceId: string, api: DeriveApi): (flags?: StakingQueryFlags) => Observable { + return memo(instanceId, (flags: StakingQueryFlags = DEFAULT_FLAGS): Observable => + combineLatest([ + api.derive.staking.validators(), + api.derive.staking.stashes() + ]).pipe( + switchMap(([{ nextElected }, stashes]): Observable => { + const elected = nextElected.map((a) => a.toString()); + const waiting = stashes.filter((v) => !elected.includes(v.toString())); + + return api.derive.staking.queryMulti(waiting, flags).pipe( + map((info): DeriveStakingWaiting => ({ + info, + waiting + })) + ); + }) + ) + ); +} diff --git a/packages/api-derive/src/technicalCommittee/index.ts b/packages/api-derive/src/technicalCommittee/index.ts new file mode 100644 index 0000000..fa4f9f8 --- /dev/null +++ b/packages/api-derive/src/technicalCommittee/index.ts @@ -0,0 +1,76 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { hasProposals as collectiveHasProposals, members as collectiveMembers, prime as collectivePrime, proposal as collectiveProposal, proposalCount as collectiveProposalCount, proposalHashes as collectiveProposalHashes, proposals as collectiveProposals } from '../collective/index.js'; + +/** + * @name members + * @description Retrieves the list of members in the "technicalCommittee" collective. + * @example + * ```javascript + * const members = await api.derive.technicalCommittee.members(); + * console.log(`Members: ${JSON.stringify(members)}); + * ``` + */ +export const members = /*#__PURE__*/ collectiveMembers('technicalCommittee'); + +/** + * @name hasProposals + * @description Checks if there are any active proposals in the "technicalCommittee" collective. + * @example + * ```javascript + * const exists = await api.derive.technicalCommittee.hasProposals(); + * console.log(exists); + * ``` + */ +export const hasProposals = /*#__PURE__*/ collectiveHasProposals('technicalCommittee'); +/** + * @name proposal + * @description Retrieves details of a specific proposal in the "technicalCommitteeMotion" collective by its hash. + * @example + * ```javascript + * const proposalDetails = await api.derive.technicalCommittee.proposal(PROPOSAL_HASH); + * console.log(proposalDetails); + * ``` + */ +export const proposal = /*#__PURE__*/ collectiveProposal('technicalCommittee'); +/** + * @name proposalCount + * @description Retrieves the total number of proposals in the "technicalCommittee" collective. + * @example + * ```javascript + * const count = await api.derive.technicalCommittee.proposalCount(); + * console.log(`Amount of proposals: ${count}`); + * ``` + */ +export const proposalCount = /*#__PURE__*/ collectiveProposalCount('technicalCommittee'); +/** + * @name proposalHashes + * @description Retrieves an array of hashes for all active proposals in the "technicalCommittee" collective. + * @example + * ```javascript + * const hashes = await api.derive.technicalCommittee.proposalHashes(); + * console.log(`Proposals ${JSON.stringify(hashes)}`); + * ``` + */ +export const proposalHashes = /*#__PURE__*/ collectiveProposalHashes('technicalCommittee'); +/** + * @name proposals + * @description Retrieves a list of all active proposals in the "technicalCommittee" collective. + * @example + * ```javascript + * const proposals = await api.derive.technicalCommittee.proposals(); + * console.log(proposals); + * ``` + */ +export const proposals = /*#__PURE__*/ collectiveProposals('technicalCommittee'); +/** + * @name prime + * @description Retrieves the prime member of the "technicalCommittee" collective, if one exists. + * @example + * ```javascript + * const primeMember = await api.derive.technicalCommittee.prime(); + * console.log(primeMember); + * ``` + */ +export const prime = /*#__PURE__*/ collectivePrime('technicalCommittee'); diff --git a/packages/api-derive/src/test/bountyFactory.ts b/packages/api-derive/src/test/bountyFactory.ts new file mode 100644 index 0000000..9f21d84 --- /dev/null +++ b/packages/api-derive/src/test/bountyFactory.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiPromise } from '@pezkuwi/api'; +import type { Bounty, BountyIndex } from '@pezkuwi/types/interfaces'; +import type { Codec, CodecClass, InterfaceTypes, Registry } from '@pezkuwi/types/types'; + +import { Option, StorageKey } from '@pezkuwi/types'; + +export class BountyFactory { + readonly #api: ApiPromise; + readonly #registry: Registry; + + constructor (api: ApiPromise) { + this.#api = api; + this.#registry = this.#api.registry; + } + + public storageKey = (index: number): StorageKey => { + const key = new StorageKey(this.#registry, this.#api.query.bounties.bounties.key(this.bountyIndex(index))); + + return key.setMeta(this.#api.query.bounties.bounties.creator.meta); + }; + + public bountyIndex = (index: number): BountyIndex => + this.#registry.createType('BountyIndex', index); + + public defaultBounty = (): Bounty => + this.#registry.createType('Bounty'); + + public optionOf = (value: T): Option => { + const typeName = this.#registry.getClassName(value.constructor as CodecClass); + + return new Option(this.#registry, typeName as keyof InterfaceTypes, value); + }; + + public emptyOption = (typeName: keyof InterfaceTypes): Option => + new Option(this.#registry, typeName); +} diff --git a/packages/api-derive/src/test/bytesFactory.ts b/packages/api-derive/src/test/bytesFactory.ts new file mode 100644 index 0000000..6a1c61a --- /dev/null +++ b/packages/api-derive/src/test/bytesFactory.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes } from '@pezkuwi/types'; +import type { Registry } from '@pezkuwi/types/types'; + +export class BytesFactory { + #registry: Registry; + + constructor (registry: Registry) { + this.#registry = registry; + } + + public bytes = (value: string): Bytes => this.#registry.createType('Bytes', value); +} diff --git a/packages/api-derive/src/test/helpers.ts b/packages/api-derive/src/test/helpers.ts new file mode 100644 index 0000000..83a3855 --- /dev/null +++ b/packages/api-derive/src/test/helpers.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { ApiPromise, WsProvider } from '@pezkuwi/api'; +import { Metadata, TypeRegistry } from '@pezkuwi/types'; +import metaStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +export function createApiWithAugmentations (): ApiPromise { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metaStatic); + + registry.setMetadata(metadata); + + const api = new ApiPromise({ + provider: new WsProvider('ws://', false), + registry + }); + + // eslint-disable-next-line deprecation/deprecation + api.injectMetadata(metadata, true, registry); + + return api; +} diff --git a/packages/api-derive/src/test/proposalFactory.ts b/packages/api-derive/src/test/proposalFactory.ts new file mode 100644 index 0000000..432c196 --- /dev/null +++ b/packages/api-derive/src/test/proposalFactory.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiPromise } from '@pezkuwi/api'; +import type { SubmittableExtrinsic } from '@pezkuwi/api-base/types'; +import type { Proposal, ProposalIndex } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; + +export class ProposalFactory { + readonly #api: ApiPromise; + readonly #registry: Registry; + + constructor (api: ApiPromise) { + this.#api = api; + this.#registry = this.#api.registry; + } + + public createProposal = (method: SubmittableExtrinsic<'promise'>): Proposal => { + return this.#registry.createType('Proposal', method); + }; + + public proposalIndex = (index: number): ProposalIndex => { + return this.#registry.createType('ProposalIndex', index); + }; +} diff --git a/packages/api-derive/src/teyrchains/index.ts b/packages/api-derive/src/teyrchains/index.ts new file mode 100644 index 0000000..68e899c --- /dev/null +++ b/packages/api-derive/src/teyrchains/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './info.js'; +export * from './overview.js'; diff --git a/packages/api-derive/src/teyrchains/info.ts b/packages/api-derive/src/teyrchains/info.ts new file mode 100644 index 0000000..16aa8b6 --- /dev/null +++ b/packages/api-derive/src/teyrchains/info.ts @@ -0,0 +1,111 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { CollatorId, ParaId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveTeyrchainActive, DeriveTeyrchainFull, DeriveTeyrchainInfo } from '../types.js'; +import type { Active, DidUpdate, Heads, ParaInfoResult, PendingSwap, RelayDispatchQueue, RetryQueue, SelectedThreads } from './types.js'; + +import { map, of } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { didUpdateToBool } from './util.js'; + +type Result = [ + Active, + RetryQueue, + SelectedThreads, + DidUpdate, + ParaInfoResult, + PendingSwap, + Heads, + RelayDispatchQueue +]; + +function parseActive (id: ParaId, active: Active): DeriveTeyrchainActive | null { + const found = active.find(([paraId]) => paraId === id); + + if (found && found[1].isSome) { + const [collatorId, retriable] = found[1].unwrap(); + + return objectSpread( + { collatorId }, + retriable.isWithRetries + ? { + isRetriable: true, + retries: retriable.asWithRetries.toNumber() + } + : { + isRetriable: false, + retries: 0 + } + ); + } + + return null; +} + +function parseCollators (id: ParaId, collatorQueue: SelectedThreads | RetryQueue): (CollatorId | null)[] { + return collatorQueue.map((queue): CollatorId | null => { + const found = queue.find(([paraId]) => paraId === id); + + return found ? found[1] : null; + }); +} + +function parse (id: ParaId, [active, retryQueue, selectedThreads, didUpdate, info, pendingSwap, heads, relayDispatchQueue]: Result): DeriveTeyrchainFull | null { + if (info.isNone) { + return null; + } + + return { + active: parseActive(id, active), + didUpdate: didUpdateToBool(didUpdate, id), + heads, + id, + info: objectSpread({ id }, info.unwrap()), + pendingSwapId: pendingSwap.unwrapOr(null), + relayDispatchQueue, + retryCollators: parseCollators(id, retryQueue), + selectedCollators: parseCollators(id, selectedThreads) + }; +} + +/** + * @name info + * @param {ParaId | number} id A unique numeric (non-negative integer) identifier for a teyrchain. + * @description Retrieves detailed information about a specific teyrchain. + * @example + * ```javascript + * await api.derive.teyrchains.info(1000, (info) => { + * if (info) { + * console.log(`Teyrchain ${info.id.toString()} is active: ${info.active}`); + * } else { + * console.log("Teyrchain information not available."); + * } + * }); + * ``` +*/ +export function info (instanceId: string, api: DeriveApi): (id: ParaId | number) => Observable { + return memo(instanceId, (id: ParaId | number): Observable => + api.query.registrar && api.query['teyrchains'] + ? api.queryMulti([ + api.query.registrar['active'], + api.query.registrar['retryQueue'], + api.query.registrar['selectedThreads'], + api.query['teyrchains']['didUpdate'], + [api.query.registrar.paras, id], + [api.query.registrar.pendingSwap, id], + [api.query['teyrchains']['heads'], id], + [api.query['teyrchains']['relayDispatchQueue'], id] + ]) + .pipe( + map((result: Result): DeriveTeyrchainFull | null => + parse(api.registry.createType('ParaId', id), result) + ) + ) + : of(null) + ); +} diff --git a/packages/api-derive/src/teyrchains/overview.ts b/packages/api-derive/src/teyrchains/overview.ts new file mode 100644 index 0000000..e26d5a2 --- /dev/null +++ b/packages/api-derive/src/teyrchains/overview.ts @@ -0,0 +1,63 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { ParaId } from '@pezkuwi/types/interfaces'; +import type { DeriveApi, DeriveTeyrchain, DeriveTeyrchainInfo } from '../types.js'; +import type { DidUpdate, ParaInfoResult, PendingSwap, RelayDispatchQueueSize } from './types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { memo } from '../util/index.js'; +import { didUpdateToBool } from './util.js'; + +type Result = [ + ParaId[], + DidUpdate, + RelayDispatchQueueSize[], + ParaInfoResult[], + PendingSwap[] +]; + +function parse ([ids, didUpdate, relayDispatchQueueSizes, infos, pendingSwaps]: Result): DeriveTeyrchain[] { + return ids.map((id, index): DeriveTeyrchain => ({ + didUpdate: didUpdateToBool(didUpdate, id), + id, + info: objectSpread({ id }, infos[index].unwrapOr(null)), + pendingSwapId: pendingSwaps[index].unwrapOr(null), + relayDispatchQueueSize: relayDispatchQueueSizes[index][0].toNumber() + })); +} + +/** + * @name overview + * @description Retrieves an overview of all registered teyrchains. + * @example + * ```javascript + * await api.derive.teyrchains.overview((overview) => { + * teyrchains.forEach(teyrchain => { + * console.log(`Teyrchain ${teyrchain.id.toString()} is registered.`); + * }); + * }); + * ``` + */ +export function overview (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.registrar?.['teyrchains'] && api.query['teyrchains'] + ? api.query.registrar['teyrchains']().pipe( + switchMap((paraIds) => + combineLatest([ + of(paraIds), + api.query['teyrchains']['didUpdate'](), + api.query['teyrchains']['relayDispatchQueueSize'].multi(paraIds), + api.query.registrar.paras.multi(paraIds), + api.query.registrar.pendingSwap.multi(paraIds) + ]) + ), + map(parse) + ) + : of([] as DeriveTeyrchain[]) + ); +} diff --git a/packages/api-derive/src/teyrchains/types.ts b/packages/api-derive/src/teyrchains/types.ts new file mode 100644 index 0000000..1b46470 --- /dev/null +++ b/packages/api-derive/src/teyrchains/types.ts @@ -0,0 +1,46 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes, Option, u32, Vec } from '@pezkuwi/types'; +import type { CollatorId, ParaId, ParaInfo, Retriable, UpwardMessage } from '@pezkuwi/types/interfaces'; +import type { ITuple } from '@pezkuwi/types/types'; + +export type ParaInfoResult = Option; +export type PendingSwap = Option; +export type Active = Vec>]>>; +export type RetryQueue = Vec>> +export type SelectedThreads = Vec>> +export type Code = Bytes; +export type Heads = Bytes; +export type RelayDispatchQueue = Vec +export type RelayDispatchQueueSize = ITuple<[u32, u32]>; +export type DidUpdate = Option>; + +export interface DeriveTeyrchainActive { + collatorId: CollatorId; + isRetriable: boolean; + retries: number; +} + +export interface DeriveTeyrchainInfo extends ParaInfo { + id: ParaId; + icon?: string; + name?: string; + owner?: string; +} + +export interface DeriveTeyrchain { + didUpdate: boolean; + pendingSwapId: ParaId | null; + id: ParaId; + info: DeriveTeyrchainInfo | null; + relayDispatchQueueSize?: number; +} + +export interface DeriveTeyrchainFull extends DeriveTeyrchain { + active: DeriveTeyrchainActive | null; + heads: Bytes | null; + relayDispatchQueue: UpwardMessage[]; + retryCollators: (CollatorId | null)[]; + selectedCollators: (CollatorId | null)[]; +} diff --git a/packages/api-derive/src/teyrchains/util.ts b/packages/api-derive/src/teyrchains/util.ts new file mode 100644 index 0000000..5c71721 --- /dev/null +++ b/packages/api-derive/src/teyrchains/util.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ParaId } from '@pezkuwi/types/interfaces'; +import type { DidUpdate } from './types.js'; + +export function didUpdateToBool (didUpdate: DidUpdate, id: ParaId): boolean { + return didUpdate.isSome + ? didUpdate.unwrap().some((paraId) => paraId.eq(id)) + : false; +} diff --git a/packages/api-derive/src/treasury/index.ts b/packages/api-derive/src/treasury/index.ts new file mode 100644 index 0000000..b899520 --- /dev/null +++ b/packages/api-derive/src/treasury/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './proposals.js'; diff --git a/packages/api-derive/src/treasury/proposals.ts b/packages/api-derive/src/treasury/proposals.ts new file mode 100644 index 0000000..b224465 --- /dev/null +++ b/packages/api-derive/src/treasury/proposals.ts @@ -0,0 +1,109 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { Option } from '@pezkuwi/types'; +import type { ProposalIndex } from '@pezkuwi/types/interfaces'; +import type { PezpalletTreasuryProposal } from '@pezkuwi/types/lookup'; +import type { DeriveApi, DeriveCollectiveProposal, DeriveTreasuryProposal, DeriveTreasuryProposals } from '../types.js'; + +import { combineLatest, map, of, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +interface Result { + allIds: ProposalIndex[]; + allProposals: Option[]; + approvalIds: ProposalIndex[]; + councilProposals: DeriveCollectiveProposal[]; + proposalCount: ProposalIndex; +} + +function parseResult (api: DeriveApi, { allIds, allProposals, approvalIds, councilProposals, proposalCount }: Result): DeriveTreasuryProposals { + const approvals: DeriveTreasuryProposal[] = []; + const proposals: DeriveTreasuryProposal[] = []; + const councilTreasury = councilProposals.filter(({ proposal }) => + // FIXME `approveProposal` and `rejectProposal` have been removed in bizinikiwi and released in 1.14 + // in favor of `spend`. See: https://github.com/pezkuwichain/pezkuwi-sdk/pull/3820 + proposal && ( + (api.tx.treasury['approveProposal'] && api.tx.treasury['approveProposal'].is(proposal)) || + (api.tx.treasury['rejectProposal'] && api.tx.treasury['rejectProposal'].is(proposal)) + ) + ); + + allIds.forEach((id, index): void => { + if (allProposals[index].isSome) { + const council = councilTreasury + .filter(({ proposal }) => proposal && id.eq(proposal.args[0])) + .sort((a, b) => + a.proposal && b.proposal + ? a.proposal.method.localeCompare(b.proposal.method) + : a.proposal + ? -1 + : 1 + ); + const isApproval = approvalIds.some((approvalId) => approvalId.eq(id)); + const derived = { council, id, proposal: allProposals[index].unwrap() }; + + if (isApproval) { + approvals.push(derived); + } else { + proposals.push(derived); + } + } + }); + + return { approvals, proposalCount, proposals }; +} + +function retrieveProposals (api: DeriveApi, proposalCount: ProposalIndex, approvalIds: ProposalIndex[]): Observable { + const proposalIds: ProposalIndex[] = []; + const count = proposalCount.toNumber(); + + for (let index = 0; index < count; index++) { + if (!approvalIds.some((id) => id.eqn(index))) { + proposalIds.push(api.registry.createType('ProposalIndex', index)); + } + } + + const allIds = [...proposalIds, ...approvalIds]; + + return combineLatest([ + api.query.treasury.proposals.multi(allIds), + api.derive.council + ? api.derive.council.proposals() + : of([] as DeriveCollectiveProposal[]) + ]).pipe( + map(([allProposals, councilProposals]): DeriveTreasuryProposals => + parseResult(api, { allIds, allProposals, approvalIds, councilProposals, proposalCount }) + ) + ); +} + +/** + * @name proposals + * @description Retrieve all active and approved treasury proposals, along with their info. + * @example + * ```javascript + * const treasuryProposals = await api.derive.treasury.proposals(); + * console.log(treasuryProposals); + * ``` + */ +export function proposals (instanceId: string, api: DeriveApi): () => Observable { + return memo(instanceId, (): Observable => + api.query.treasury + ? combineLatest([ + api.query.treasury.proposalCount(), + api.query.treasury.approvals() + ]).pipe( + switchMap(([proposalCount, approvalIds]) => + retrieveProposals(api, proposalCount, approvalIds) + ) + ) + : of({ + approvals: [], + proposalCount: api.registry.createType('ProposalIndex'), + proposals: [] + } as DeriveTreasuryProposals) + ); +} diff --git a/packages/api-derive/src/tx/constants.ts b/packages/api-derive/src/tx/constants.ts new file mode 100644 index 0000000..e755c4b --- /dev/null +++ b/packages/api-derive/src/tx/constants.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { BN } from '@pezkuwi/util'; + +export const FALLBACK_MAX_HASH_COUNT = 250; + +// default here to 5 min eras, adjusted based on the actual blocktime +export const FALLBACK_PERIOD = new BN(6 * 1000); + +export const MAX_FINALITY_LAG = new BN(5); + +export const MORTAL_PERIOD = new BN(5 * 60 * 1000); diff --git a/packages/api-derive/src/tx/events.ts b/packages/api-derive/src/tx/events.ts new file mode 100644 index 0000000..135f8aa --- /dev/null +++ b/packages/api-derive/src/tx/events.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { EventRecord, Hash, SignedBlock } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { combineLatest, map, switchMap } from 'rxjs'; + +import { memo } from '../util/index.js'; + +interface Result { + block: SignedBlock; + events: EventRecord[]; +} + +/** + * @name events + * @param {Hash} at Block hash to query at. + * @description Retrieves the block information alongside its events at a given block hash + * @example + * ```javascript + * const blockHash = api.registry.createType( + * "Hash", + * "0xf1dc2efe8265be67deea5e91b05a98a7f9f81f66854e92825cf36f541beb7af6" + * ); + * const { events, block } = await api.derive.tx.events(blockHash); + * ``` + */ +export function events (instanceId: string, api: DeriveApi): (at: Hash) => Observable { + return memo(instanceId, (blockHash: Hash) => + combineLatest([ + api.rpc.chain.getBlock(blockHash), + api.queryAt(blockHash).pipe( + switchMap((queryAt) => + queryAt.system.events() + ) + ) + ]).pipe( + map(([block, events]) => ({ block, events })) + ) + ); +} diff --git a/packages/api-derive/src/tx/extrinsicInfo.ts b/packages/api-derive/src/tx/extrinsicInfo.ts new file mode 100644 index 0000000..f49d3ae --- /dev/null +++ b/packages/api-derive/src/tx/extrinsicInfo.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { GenericExtrinsic } from '@pezkuwi/types'; +import type { EventRecord, Hash } from '@pezkuwi/types/interfaces'; +import type { DeriveApi } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '../util/index.js'; + +interface ExtrinsicInfo { + blockHash: Hash | string, + blockNumber: number, + extrinsic: GenericExtrinsic, + events: EventRecord[] + success: boolean +} + +interface ExtrinsicsInfo { + blockHash: Hash | string, + blockNumber: number, + extrinsics: { + events: EventRecord[] + extrinsic: GenericExtrinsic, + success: boolean + }[], +} + +/** + * @name extrinsicInfo + * @param { Hash } at The block hash to query at. + * @param { Uint8Array | string } transactionHash A transaction hash as U8 array or string. + * @description Retrieves the extrinsic information and its events. + * @example + * ```javascript + * const blockHash = api.registry.createType( + * 'Hash', + * '0xb772e4949d2f3eb5ba356aa43f885cc4f9097ee9812c5436543f3846a0491729' + * ); + * const extrinsicInfo = await api.derive.tx.extrinsicInfo( + * blockHash, + * '0xcd96520b05e0c4648ea365f3f063f27c5cdd8be10d41a1c44566428c91f37dcb' + * ); + * + * console.log(extrinsicInfo.extrinsic.toHuman()); + * ``` + */ +export function extrinsicInfo (instanceId: string, api: DeriveApi): (at: Hash, transactionHash: Uint8Array | string) => Observable { + return memo(instanceId, (at: Hash, transactionHash: Uint8Array | string): Observable => { + return api.derive.tx.events(at).pipe(map(({ block, events }) => { + const index = block.block.extrinsics.findIndex((ext) => ext.hash.toString() === transactionHash); + + if (index === -1) { + return null; + } + + const extEvents = events.filter( + ({ phase }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eq(index) + ); + + return { + blockHash: block.hash.toHex(), + blockNumber: block.block.header.number.toNumber(), + events: extEvents, + extrinsic: block.block.extrinsics[index], + success: (extEvents.findIndex((ev) => ev.event.method === 'ExtrinsicSuccess') !== -1) + }; + })); + }); +} + +/** + * @name accountExtrinsics + * @description Retrieves information about every extrinsic submitted by an account at a given block. + * @param { Hash } at The block hash to query at. + * @param { Uint8Array | strings } accountId The account identifier to query. + * @example + * ```javascript + const blockHash = api.registry.createType( + 'Hash', + '0xb772e4949d2f3eb5ba356aa43f885cc4f9097ee9812c5436543f3846a0491729' + ); + const extrinsicsInfo = await api.derive.tx.accountExtrinsics( + blockHash, + '0x21895DdfD4640b4e0aDCa2865b907f2CE6e6B777' + ); + + console.log(extrinsicsInfo.extrinsics[0]).extrinsic.toHuman(); + * ``` + */ +export function accountExtrinsics (instanceId: string, api: DeriveApi): (at: Hash, accountId: Uint8Array | string) => Observable { + return memo(instanceId, (at: Hash, accountId: Uint8Array | string): Observable => { + return api.derive.tx.events(at).pipe(map(({ block, events }) => { + const indexes: number[] = []; + + return { + blockHash: block.hash.toHex(), + blockNumber: block.block.header.number.toNumber(), + extrinsics: block.block.extrinsics.filter((ext, index) => { + if (ext.signer.toString() === accountId) { + indexes.push(index); + + return true; + } + + return false; + }).map((ext, i) => { + const extEvents = events.filter( + ({ phase }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eq(indexes[i]) + ); + + return { + events: extEvents, + extrinsic: ext, + success: (extEvents.findIndex((ev) => ev.event.method === 'ExtrinsicSuccess') !== -1) + }; + }) + }; + })); + }); +} diff --git a/packages/api-derive/src/tx/index.ts b/packages/api-derive/src/tx/index.ts new file mode 100644 index 0000000..bc4a8c1 --- /dev/null +++ b/packages/api-derive/src/tx/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './events.js'; +export * from './extrinsicInfo.js'; +export * from './signingInfo.js'; diff --git a/packages/api-derive/src/tx/signingInfo.ts b/packages/api-derive/src/tx/signingInfo.ts new file mode 100644 index 0000000..d9da583 --- /dev/null +++ b/packages/api-derive/src/tx/signingInfo.ts @@ -0,0 +1,129 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AugmentedConsts } from '@pezkuwi/api-base/types'; +import type { u64 } from '@pezkuwi/types'; +import type { Header, Index } from '@pezkuwi/types/interfaces'; +import type { AnyNumber, Codec, IExtrinsicEra } from '@pezkuwi/types/types'; +import type { BN } from '@pezkuwi/util'; +import type { DeriveApi } from '../types.js'; + +import { catchError, combineLatest, map, of, switchMap } from 'rxjs'; + +import { isNumber, isUndefined } from '@pezkuwi/util'; + +import { unwrapBlockNumber } from '../util/index.js'; +import { FALLBACK_MAX_HASH_COUNT, FALLBACK_PERIOD, MAX_FINALITY_LAG, MORTAL_PERIOD } from './constants.js'; + +interface Result { + header: Header | null; + mortalLength: number; + nonce: Index; +} + +function latestNonce (api: DeriveApi, address: string): Observable { + return api.derive.balances.account(address).pipe( + map(({ accountNonce }) => accountNonce) + ); +} + +function nextNonce (api: DeriveApi, address: string): Observable { + if (api.call.accountNonceApi) { + return api.call.accountNonceApi.accountNonce(address); + } else { + return api.rpc.system?.accountNextIndex + ? api.rpc.system.accountNextIndex(address) + : latestNonce(api, address); + } +} + +function signingHeader (api: DeriveApi): Observable
{ + return combineLatest([ + api.rpc.chain.getHeader().pipe( + switchMap((header) => + // check for chains at genesis (until block 1 is produced, e.g. 6s), since + // we do need to allow transactions at chain start (also dev/seal chains) + header.parentHash.isEmpty + ? of(header) + // in the case of the current block, we use the parent to minimize the + // impact of forks on the system, but not completely remove it + : api.rpc.chain.getHeader(header.parentHash).pipe( + catchError(() => of(header)) + ) + ) + ), + api.rpc.chain.getFinalizedHead().pipe( + switchMap((hash) => + api.rpc.chain.getHeader(hash).pipe( + catchError(() => of(null)) + ) + ) + ) + ]).pipe( + map(([current, finalized]) => + // determine the hash to use, current when lag > max, else finalized + !finalized || unwrapBlockNumber(current).sub(unwrapBlockNumber(finalized)).gt(MAX_FINALITY_LAG) + ? current + : finalized + ) + ); +} + +interface Aura { + slotDuration: u64 & AugmentedConsts<'rxjs'>; +} + +function babeOrAuraPeriod (api: DeriveApi): BN | undefined { + const period = api.consts.babe?.expectedBlockTime || + // this will be present ones https://github.com/pezkuwichain/pezkuwi-sdk/pull/3732 is merged + + // eslint-disable-next-line + (api.consts['aura'] as unknown as Aura)?.['slotDuration'] || + api.consts.timestamp?.minimumPeriod.muln(2); + + return period && period.isZero && !period.isZero() ? period : undefined; +} + +/** + * @name signingInfo + * @description Retrieves signing-related information for an account, including the nonce, block header, and mortal length. + * @param {string} address The account address for which signing information is needed. + * @param { BN | bigint | Uint8Array | number | string } nonce? (Optional) The nonce to use. If `undefined`, the latest nonce is retrieved. + * @param { IExtrinsicEra | number } era? (Optional) The transaction era. + * @example + * ```javascript + * const info = await api.derive.tx.signingInfo( + * "14mM9FRDDtwSYicjNxSvMfQkap8o4m9zHq7hNW4JpbSL4PPU" + * ); + * console.log(info); + * ``` + */ +export function signingInfo (_instanceId: string, api: DeriveApi): (address: string, nonce?: AnyNumber | Codec, era?: IExtrinsicEra | number) => Observable { + // no memo, we want to do this fresh on each run + return (address: string, nonce?: AnyNumber | Codec, era?: IExtrinsicEra | number): Observable => + combineLatest([ + // retrieve nonce if none was specified + isUndefined(nonce) + ? latestNonce(api, address) + : nonce === -1 + ? nextNonce(api, address) + : of(api.registry.createType('Index', nonce)), + // if no era (create) or era > 0 (mortal), do block retrieval + (isUndefined(era) || (isNumber(era) && era > 0)) + ? signingHeader(api) + : of(null) + ]).pipe( + map(([nonce, header]) => ({ + header, + mortalLength: Math.min( + api.consts.system?.blockHashCount?.toNumber() || FALLBACK_MAX_HASH_COUNT, + MORTAL_PERIOD + .div(babeOrAuraPeriod(api) || FALLBACK_PERIOD) + .iadd(MAX_FINALITY_LAG) + .toNumber() + ), + nonce + })) + ); +} diff --git a/packages/api-derive/src/type/HeaderExtended.ts b/packages/api-derive/src/type/HeaderExtended.ts new file mode 100644 index 0000000..0afe775 --- /dev/null +++ b/packages/api-derive/src/type/HeaderExtended.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, Header } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; +import type { HeaderExtended } from './types.js'; + +import { extractAuthor } from './util.js'; + +export function createHeaderExtended (registry: Registry, header?: Header, validators?: AccountId[] | null, author?: AccountId | null): HeaderExtended { + // an instance of the base extrinsic for us to extend + const HeaderBase = registry.createClass('Header'); + + class Implementation extends HeaderBase implements HeaderExtended { + readonly #author?: AccountId | undefined; + + constructor (registry: Registry, header?: Header, validators?: AccountId[] | null, author?: AccountId | null) { + super(registry, header); + + this.#author = author || extractAuthor(this.digest, validators || []); + this.createdAtHash = header?.createdAtHash; + } + + /** + * @description Convenience method, returns the author for the block + */ + public get author (): AccountId | undefined { + return this.#author; + } + } + + return new Implementation(registry, header, validators, author); +} diff --git a/packages/api-derive/src/type/SignedBlockExtended.ts b/packages/api-derive/src/type/SignedBlockExtended.ts new file mode 100644 index 0000000..6b2b12e --- /dev/null +++ b/packages/api-derive/src/type/SignedBlockExtended.ts @@ -0,0 +1,75 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, DispatchError, DispatchInfo, EventRecord, Extrinsic, SignedBlock } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; +import type { SignedBlockExtended, TxWithEvent } from './types.js'; + +import { extractAuthor } from './util.js'; + +function mapExtrinsics (extrinsics: Extrinsic[], records: EventRecord[]): TxWithEvent[] { + return extrinsics.map((extrinsic, index): TxWithEvent => { + let dispatchError: DispatchError | undefined; + let dispatchInfo: DispatchInfo | undefined; + + const events = records + .filter(({ phase }) => phase.isApplyExtrinsic && phase.asApplyExtrinsic.eq(index)) + .map(({ event }) => { + if (event.section === 'system') { + if (event.method === 'ExtrinsicSuccess') { + dispatchInfo = event.data[0] as DispatchInfo; + } else if (event.method === 'ExtrinsicFailed') { + dispatchError = event.data[0] as DispatchError; + dispatchInfo = event.data[1] as DispatchInfo; + } + } + + return event; + }); + + return { dispatchError, dispatchInfo, events, extrinsic }; + }); +} + +export function createSignedBlockExtended (registry: Registry, block?: SignedBlock, events?: EventRecord[], validators?: AccountId[] | null, author?: AccountId | null): SignedBlockExtended { + // an instance of the base extrinsic for us to extend + const SignedBlockBase = registry.createClass('SignedBlock'); + + class Implementation extends SignedBlockBase implements SignedBlockExtended { + readonly #author?: AccountId | undefined; + readonly #events: EventRecord[]; + readonly #extrinsics: TxWithEvent[]; + + constructor (registry: Registry, block?: SignedBlock, events?: EventRecord[], validators?: AccountId[] | null, author?: AccountId | null) { + super(registry, block); + + this.#author = author || extractAuthor(this.block.header.digest, validators || []); + this.#events = events || ([] as EventRecord[]); + this.#extrinsics = mapExtrinsics(this.block.extrinsics, this.#events); + this.createdAtHash = block?.createdAtHash; + } + + /** + * @description Convenience method, returns the author for the block + */ + public get author (): AccountId | undefined { + return this.#author; + } + + /** + * @description Convenience method, returns the events associated with the block + */ + public get events (): EventRecord[] { + return this.#events; + } + + /** + * @description Returns the extrinsics and their events, mapped + */ + public get extrinsics (): TxWithEvent[] { + return this.#extrinsics; + } + } + + return new Implementation(registry, block, events, validators, author); +} diff --git a/packages/api-derive/src/type/index.ts b/packages/api-derive/src/type/index.ts new file mode 100644 index 0000000..4b22a3b --- /dev/null +++ b/packages/api-derive/src/type/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { createHeaderExtended } from './HeaderExtended.js'; +export { createSignedBlockExtended } from './SignedBlockExtended.js'; diff --git a/packages/api-derive/src/type/types.ts b/packages/api-derive/src/type/types.ts new file mode 100644 index 0000000..0eb3e63 --- /dev/null +++ b/packages/api-derive/src/type/types.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, DispatchError, DispatchInfo, Event, EventRecord, Extrinsic, Header, SignedBlock } from '@pezkuwi/types/interfaces'; + +export interface HeaderExtended extends Header { + readonly author: AccountId | undefined; +} + +export interface SignedBlockExtended extends SignedBlock { + readonly author: AccountId | undefined; + readonly events: EventRecord[]; + readonly extrinsics: TxWithEvent[]; +} + +export interface TxWithEvent { + dispatchError?: DispatchError | undefined; + dispatchInfo?: DispatchInfo | undefined; + events: Event[]; + extrinsic: Extrinsic; +} diff --git a/packages/api-derive/src/type/util.ts b/packages/api-derive/src/type/util.ts new file mode 100644 index 0000000..8a9fc3d --- /dev/null +++ b/packages/api-derive/src/type/util.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, Digest } from '@pezkuwi/types/interfaces'; + +export function extractAuthor (digest: Digest, sessionValidators: AccountId[]): AccountId | undefined { + const [citem] = digest.logs.filter((e) => e.isConsensus); + const preRuntimeItems = digest.logs.filter((e) => e.isPreRuntime); + const [sitem] = digest.logs.filter((e) => e.isSeal); + let accountId: AccountId | undefined; + + try { + // This is critical to be first for BABE (before Consensus) + // If not first, we end up dropping the author at session-end + // Iterate through ALL preRuntime logs to find a recognized engine + // (teyrchains may have multiple preRuntime logs, e.g., CMLS + aura) + for (const pitem of preRuntimeItems) { + const [engine, data] = pitem.asPreRuntime; + + accountId = engine.extractAuthor(data, sessionValidators); + + // Stop at first recognized engine that returns an author + if (accountId) { + return accountId; + } + } + + if (!accountId && citem) { + const [engine, data] = citem.asConsensus; + + accountId = engine.extractAuthor(data, sessionValidators); + } + + // SEAL, still used in e.g. Kulupu for pow + if (!accountId && sitem) { + const [engine, data] = sitem.asSeal; + + accountId = engine.extractAuthor(data, sessionValidators); + } + } catch { + // ignore + } + + return accountId; +} diff --git a/packages/api-derive/src/types.ts b/packages/api-derive/src/types.ts new file mode 100644 index 0000000..197e2a0 --- /dev/null +++ b/packages/api-derive/src/types.ts @@ -0,0 +1,97 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiInterfaceRx } from '@pezkuwi/api-base/types'; +import type { u32 } from '@pezkuwi/types'; +import type { Balance, BlockNumber, BountyIndex, Hash, Proposal, ProposalIndex, SetIndex, Votes } from '@pezkuwi/types/interfaces'; +import type { PezpalletBountiesBounty, PezpalletTreasuryProposal } from '@pezkuwi/types/lookup'; +import type { BN } from '@pezkuwi/util'; +import type { ExactDerive } from './derive.js'; + +export * from './accounts/types.js'; +export * from './bagsList/types.js'; +export * from './balances/types.js'; +export * from './council/types.js'; +export * from './crowdloan/types.js'; +export * from './democracy/types.js'; +export * from './elections/types.js'; +export * from './session/types.js'; +export * from './society/types.js'; +export * from './staking/types.js'; +export * from './teyrchains/types.js'; +export * from './type/types.js'; + +export interface DeriveApi extends ApiInterfaceRx { + derive: ExactDerive; +} + +export interface DeriveContractFees { + callBaseFee: BN; + contractFee: BN; + creationFee: BN; + rentByteFee: BN; + rentDepositOffset: BN; + surchargeReward: BN; + tombstoneDeposit: BN; + transactionBaseFee: BN; + transactionByteFee: BN; + transferFee: BN; +} + +export interface DeriveCollectiveProposal { + hash: Hash; + proposal: Proposal | null; + votes: Votes | null; +} + +export interface DeriveFees { + creationFee: Balance; + existentialDeposit: Balance; + transactionBaseFee: Balance; + transactionByteFee: Balance; + transferFee: Balance; +} + +export interface DeriveHeartbeatAuthor { + blockCount: u32; + hasMessage: boolean; + isOnline: boolean; +} + +export type DeriveHeartbeats = Record; + +export interface RecentlyOffline { + blockNumber: BlockNumber; + count: BN; +} + +export type DeriveRecentlyOffline = Record; + +export interface DeriveTreasuryProposal { + council: DeriveCollectiveProposal[]; + id: ProposalIndex; + proposal: PezpalletTreasuryProposal; +} + +export interface DeriveTreasuryProposals { + approvals: DeriveTreasuryProposal[]; + proposalCount: ProposalIndex; + proposals: DeriveTreasuryProposal[]; +} + +export interface VoterPosition { + globalIndex: BN; + index: BN; + setIndex: SetIndex; +} + +export type DeriveVoterPositions = Record; + +export interface DeriveBounty { + bounty: PezpalletBountiesBounty; + description: string; + index: BountyIndex; + proposals: DeriveCollectiveProposal[]; +} + +export type DeriveBounties = DeriveBounty[]; diff --git a/packages/api-derive/src/util/approvalFlagToBools.spec.ts b/packages/api-derive/src/util/approvalFlagToBools.spec.ts new file mode 100644 index 0000000..97389e8 --- /dev/null +++ b/packages/api-derive/src/util/approvalFlagToBools.spec.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { ApprovalFlag } from '@pezkuwi/types/interfaces'; + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { approvalFlagsToBools } from './approvalFlagsToBools.js'; + +describe('approvalFlagsToBools', (): void => { + const registry = new TypeRegistry(); + + it('translates and empty array to empty', (): void => { + expect( + approvalFlagsToBools([] as ApprovalFlag[]) + ).toEqual([]); + }); + + it('translates a single input', (): void => { + expect( + approvalFlagsToBools([ + registry.createType('ApprovalFlag', 0b1010) + ]) + ).toEqual([false, true, false, true]); + }); + + it('translates multiple inputs', (): void => { + expect( + approvalFlagsToBools([ + registry.createType('ApprovalFlag', 0b0000), + registry.createType('ApprovalFlag', 0b1100) + ]) + ).toEqual([false, false, false, true, true]); + }); +}); diff --git a/packages/api-derive/src/util/approvalFlagsToBools.ts b/packages/api-derive/src/util/approvalFlagsToBools.ts new file mode 100644 index 0000000..fa8b042 --- /dev/null +++ b/packages/api-derive/src/util/approvalFlagsToBools.ts @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Vec } from '@pezkuwi/types'; +import type { ApprovalFlag } from '@pezkuwi/types/interfaces/elections'; + +/** @internal */ +export function approvalFlagsToBools (flags: Vec | ApprovalFlag[]): boolean[] { + const bools: boolean[] = []; + + for (let i = 0, count = flags.length; i < count; i++) { + const str = flags[i].toString(2); + + // read from lowest bit to highest + for (const bit of str.split('').reverse()) { + bools.push(!!parseInt(bit, 10)); + } + } + + // slice off trailing "false" values, as in bizinikiwi + const lastApproval = bools.lastIndexOf(true); + + return lastApproval >= 0 + ? bools.slice(0, lastApproval + 1) + : []; +} diff --git a/packages/api-derive/src/util/blockNumber.ts b/packages/api-derive/src/util/blockNumber.ts new file mode 100644 index 0000000..fca47e2 --- /dev/null +++ b/packages/api-derive/src/util/blockNumber.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Compact } from '@pezkuwi/types'; +import type { BlockNumber } from '@pezkuwi/types/interfaces'; + +import { isCompact } from '@pezkuwi/util'; + +interface CompatHeader { number: Compact | BlockNumber } + +export function unwrapBlockNumber (hdr: CompatHeader): BlockNumber { + return isCompact(hdr.number) + ? hdr.number.unwrap() + : hdr.number; +} diff --git a/packages/api-derive/src/util/cache.ts b/packages/api-derive/src/util/cache.ts new file mode 100644 index 0000000..875d1c4 --- /dev/null +++ b/packages/api-derive/src/util/cache.ts @@ -0,0 +1,65 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveCache } from './types.js'; + +import { deriveNoopCache } from './cacheImpl.js'; + +interface CacheValue { + v: T; + x: number; +} + +const CACHE_EXPIRY = 7 * (24 * 60) * (60 * 1000); + +let deriveCache: DeriveCache; + +function wrapCache (keyStart: string, cache: DeriveCache): DeriveCache { + return { + del: (partial: string): void => cache.del(`${keyStart}${partial}`), + forEach: cache.forEach, + get: (partial: string): T | undefined => { + const key = `${keyStart}${partial}`; + const cached = cache.get>(key); + + if (cached) { + cached.x = Date.now(); + cache.set(key, cached); + + return cached.v; + } + + return undefined; + }, + set: (partial: string, v: unknown): void => { + cache.set(`${keyStart}${partial}`, { v, x: Date.now() }); + } + }; +} + +function clearCache (cache: DeriveCache): void { + // clear all expired values + const now = Date.now(); + const all: string[] = []; + + cache.forEach((key: string, { x }: CacheValue): void => { + ((now - x) > CACHE_EXPIRY) && all.push(key); + }); + + // don't do delete inside loop, just in-case + all.forEach((key) => cache.del(key)); +} + +export function setDeriveCache (prefix = '', cache?: DeriveCache): void { + deriveCache = cache + ? wrapCache(`derive:${prefix}:`, cache) + : deriveNoopCache; + + if (cache) { + clearCache(cache); + } +} + +setDeriveCache(); + +export { deriveCache }; diff --git a/packages/api-derive/src/util/cacheImpl.ts b/packages/api-derive/src/util/cacheImpl.ts new file mode 100644 index 0000000..b36d0a4 --- /dev/null +++ b/packages/api-derive/src/util/cacheImpl.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DeriveCache } from './types.js'; + +const mapCache = new Map(); + +export const deriveMapCache: DeriveCache = { + del: (key: string): void => { + mapCache.delete(key); + }, + forEach: (cb: (key: string, value: any) => void): void => { + for (const [k, v] of mapCache.entries()) { + cb(k, v); + } + }, + get: (key: string): T | undefined => { + return mapCache.get(key) as T; + }, + set: (key: string, value: any): void => { + mapCache.set(key, value); + } +}; + +export const deriveNoopCache: DeriveCache = { + del: (): void => undefined, + forEach: () => undefined, + get: (): undefined => undefined, + set: (_: string, value: unknown): unknown => value +}; diff --git a/packages/api-derive/src/util/first.ts b/packages/api-derive/src/util/first.ts new file mode 100644 index 0000000..c961a9f --- /dev/null +++ b/packages/api-derive/src/util/first.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { DeriveApi } from '../types.js'; + +import { map } from 'rxjs'; + +import { memo } from '@pezkuwi/rpc-core'; + +export function firstObservable (obs: Observable): Observable { + return obs.pipe(map(([a]) => a)); +} + +export function firstMemo (fn: (api: DeriveApi, ...args: A) => Observable): (instanceId: string, api: DeriveApi) => (...args: A) => Observable { + return (instanceId: string, api: DeriveApi) => + memo(instanceId, (...args: A) => + firstObservable(fn(api, ...args)) + ); +} diff --git a/packages/api-derive/src/util/index.ts b/packages/api-derive/src/util/index.ts new file mode 100644 index 0000000..cd8fdb9 --- /dev/null +++ b/packages/api-derive/src/util/index.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { drr, memo } from '@pezkuwi/rpc-core'; + +// all starred +export * from './approvalFlagsToBools.js'; +export * from './blockNumber.js'; +export * from './cache.js'; +export * from './cacheImpl.js'; +export * from './first.js'; +export * from './lazy.js'; diff --git a/packages/api-derive/src/util/lazy.ts b/packages/api-derive/src/util/lazy.ts new file mode 100644 index 0000000..3b4fb32 --- /dev/null +++ b/packages/api-derive/src/util/lazy.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { lazyMethod, lazyMethods } from '@pezkuwi/util'; + +type LazySection = Record; + +type LazyRecord = Record>; + +export function lazyDeriveSection (result: LazyRecord, section: string, getKeys: (s: string) => string[], creator: (s: string, m: string) => T): void { + lazyMethod(result, section, () => + lazyMethods({}, getKeys(section), (method: string) => + creator(section, method) + ) + ); +} diff --git a/packages/api-derive/src/util/types.ts b/packages/api-derive/src/util/types.ts new file mode 100644 index 0000000..bad3586 --- /dev/null +++ b/packages/api-derive/src/util/types.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export interface DeriveCache { + del: (key: string) => void; + forEach: (cb: (key: string, value: any) => void) => void; + get: (key: string) => T | undefined; + set: (key: string, value: any) => void; +} diff --git a/packages/api-derive/tsconfig.build.json b/packages/api-derive/tsconfig.build.json new file mode 100644 index 0000000..e276033 --- /dev/null +++ b/packages/api-derive/tsconfig.build.json @@ -0,0 +1,21 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/test/*", + "**/checkTypes.manual.ts", + "**/mod.ts", + "**/*.spec.ts" + ], + "references": [ + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../rpc-core/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" } + ] +} diff --git a/packages/api-derive/tsconfig.spec.json b/packages/api-derive/tsconfig.spec.json new file mode 100644 index 0000000..78a8a4f --- /dev/null +++ b/packages/api-derive/tsconfig.spec.json @@ -0,0 +1,27 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/test/*.ts", + "**/checkTypes.manual.ts", + "**/*.spec.ts" + ], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../api-derive/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" } + ] +} diff --git a/packages/api/README.md b/packages/api/README.md new file mode 100644 index 0000000..01caa85 --- /dev/null +++ b/packages/api/README.md @@ -0,0 +1,100 @@ +# @pezkuwi/api + +The Pezkuwi-JS API provides easy-to-use wrappers around JSONRPC calls that flow from an application to a node. It handles all the encoding and decoding or parameters, provides access to RPC functions and allows for the query of chain state and the submission of transactions. + +The API wrappers provide a standard interface for use - + +- A static `.create()` that returns an API instance when connected, decorated and ready-to use. ApiOptions can include an optional WsProvider and optional custom type definitions `{ provider: , types: }`. +- The above is just a wrapper for `new Api() `, exposing the `isReady` getter +- `api.rpc.
.` provides access to actual RPC calls, be it for queries, submission or retrieving chain information + - [RPC (node interface)](https://js.pezkuwichain.app/docs/bizinikiwi/rpc) +- `api.query.
.` provides access to chain state queries. These are dynamically populated based on what the runtime provides + - [Storage chain state (runtime node interface)](https://js.pezkuwichain.app/docs/bizinikiwi/storage) +- `api.tx.
.` provides the ability to create a transaction, like chain state, this list is populated from a runtime query + - [Extrinsics (runtime node interface)](https://js.pezkuwichain.app/docs/bizinikiwi/extrinsics) +- `api.consts.
.` provides access to the module constants (parameter types). + - [Constants (runtime node interface)](https://js.pezkuwichain.app/docs/bizinikiwi/constants) + +## API Selection + +There are two flavours of the API provided, one allowing a standard interface via JavaScript Promises and the second provides an Observable wrapper using [RxJS](https://github.com/ReactiveX/rxjs). Depending on your use-case and familiarity, you can choose either (or even both) for your application. + +- [[ApiPromise]] All interface calls returns Promises, including the static `.create(...)`. Additionally any subscription method uses `(value) => {}` callbacks, returning the value as the subscription is updated. +- [[ApiRx]] All interface calls return RxJS Observables, including the static `.create(...)`. In the same fashion subscription-based methods return long-running Observables that update with the latest values. + +## Dynamic by default + +Bizinikiwi (upon which Pezkuwi is built) uses on-chain WASM runtimes, allowing for upgradability. Each runtime defining the actual chain extrinsics (submitted transactions and block intrinsics) as well as available entries in the chain state. Due to this, the API endpoints for queries and transactions are dynamically populated from the running chain. + +Due to this dynamic nature, this API departs from traditional APIs which only has fixed endpoints, driving use by what is available by the runtime. As a start, this generic nature has a learning curve, although the provided documentation, examples and linked documentation tries to make that experience as seamless as possible. + +## Installation & import + +Installation - + +``` +npm install --save @pezkuwi/api +``` + +Subscribing to blocks via Promise-based API - + +```javascript +import { ApiPromise } from '@pezkuwi/api'; + +// initialise via static create +const api = await ApiPromise.create(); + +// make a call to retrieve the current network head +api.rpc.chain.subscribeNewHeads((header) => { + console.log(`Chain is at #${header.number}`); +}); +``` + +Subscribing to blocks via RxJS-based API - + +```javascript +import { ApiRx } from '@pezkuwi/api'; + +// initialise via static create +const api = await ApiRx.create().toPromise(); + +// make a call to retrieve the current network head +api.rpc.chain.subscribeNewHeads().subscribe((header) => { + console.log(`Chain is at #${header.number}`); +}); +``` + +## Registering custom types + +Additional types used by runtime modules can be added when a new instance of the API is created. This is necessary if the runtime modules use types which are not available in the base Bizinikiwi runtime. + +```javascript +import { ApiPromise } from '@pezkuwi/api'; + +// initialise via static create and register custom types +const api = await ApiPromise.create({ + types: { + CustomTypesExample: { + "id": "u32", + "data": "Vec", + "deposit": "Balance", + "owner": "AccountId", + "application_expiry": "Moment", + "whitelisted": "bool", + "challenge_id": "u32" + } + } +}); +``` + +## Users + +Some of the users of the API (let us know if you are missing from the list), include - + +- [Pezkuwi-JS UI](https://github.com/pezkuwichain/pezkuwi-apps) A user-interface that allows you to make transactions, query the network or participate in actions on the network such as referendums and staking +- [KodaDot](https://github.com/vue-pezkuwi/apps) ([twitter](https://twitter.com/KodaDot)) - Vue.js web wallet, governance dashboard and aspiring performance (lightweight) alternative to original apps, mobile-first. +- [Polkabot](https://gitlab.com/Polkabot) Polkabot is a Matrix chatbot that keeps an eye on the Pezkuwi network. You can see Polkabot in action in https://matrix.to/#/#pezkuwi-network-status:matrix.org +- [Polkawallet.io](https://polkawallet.io) and [Polkawallet (Github)](https://github.com/polkawallet-io/polkawallet-RN/) A mobile wallet for the Pezkuwi network to manage funds and make transactions, available on both Androind and iOS +- [PolkaStats.io](https://polkastats.io), [PolkaStats frontend GitHub repository](https://github.com/Colm3na/polkastats-v2) and [PolkaStats backend GitHub repository](https://github.com/Colm3na/polkastats-backend-v2) Pezkuwi network statistics (currently Zagros and Alexander). Shows network information and staking details from validators and intentions. +- [Pezkuwi API Server (GitHub)](https://github.com/SimplyVC/pezkuwi_api_server) A lightweight server for querying Pezkuwi nodes from any language, built primarily as a backend for [PANIC for Pezkuwi (GitHub)](https://github.com/SimplyVC/panic_pezkuwi/), a validator monitoring and alerting tool. +- [Identity Registrar #1 from Chevdor on Zagros, Zagros and Pezkuwi](https://www.chevdor.com/tags/registrar/) diff --git a/packages/api/package.json b/packages/api/package.json new file mode 100644 index 0000000..67d17d5 --- /dev/null +++ b/packages/api/package.json @@ -0,0 +1,46 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Promise and RxJS wrappers around the Pezkuwi JS RPC", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/api#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/api", + "repository": { + "directory": "packages/api", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/api-base": "16.5.4", + "@pezkuwi/api-derive": "16.5.4", + "@pezkuwi/keyring": "^14.0.1", + "@pezkuwi/rpc-augment": "16.5.4", + "@pezkuwi/rpc-core": "16.5.4", + "@pezkuwi/rpc-provider": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-augment": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/types-create": "16.5.4", + "@pezkuwi/types-known": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/util-crypto": "^14.0.1", + "eventemitter3": "^5.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/types-support": "16.5.4" + } +} diff --git a/packages/api/src/augment.ts b/packages/api/src/augment.ts new file mode 100644 index 0000000..c783c1e --- /dev/null +++ b/packages/api/src/augment.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/api-augment'; diff --git a/packages/api/src/base/Decorate.ts b/packages/api/src/base/Decorate.ts new file mode 100644 index 0000000..3fb782a --- /dev/null +++ b/packages/api/src/base/Decorate.ts @@ -0,0 +1,1103 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { AugmentedCall, DeriveCustom, QueryableCalls } from '@pezkuwi/api-base/types'; +import type { RpcInterface } from '@pezkuwi/rpc-core/types'; +import type { Metadata, StorageKey, Text, u64, Vec } from '@pezkuwi/types'; +import type { Call, Hash, RuntimeApiMethodMetadataV16, RuntimeVersion } from '@pezkuwi/types/interfaces'; +import type { DecoratedMeta } from '@pezkuwi/types/metadata/decorate/types'; +import type { StorageEntry } from '@pezkuwi/types/primitive/types'; +import type { AnyFunction, AnyJson, AnyTuple, CallFunction, Codec, DefinitionCall, DefinitionCallNamed, DefinitionRpc, DefinitionRpcSub, DefinitionsCall, DefinitionsCallEntry, DetectCodec, IMethod, IStorageKey, Registry, RegistryError, RegistryTypes } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { SubmittableExtrinsic } from '../submittable/types.js'; +import type { ApiDecoration, ApiInterfaceRx, ApiOptions, ApiTypes, AugmentedQuery, DecoratedErrors, DecoratedEvents, DecoratedRpc, DecorateMethod, GenericStorageEntryFunction, PaginationOptions, QueryableConsts, QueryableStorage, QueryableStorageEntry, QueryableStorageEntryAt, QueryableStorageMulti, QueryableStorageMultiArg, SubmittableExtrinsicFunction, SubmittableExtrinsics } from '../types/index.js'; +import type { AllDerives } from '../util/decorate.js'; +import type { VersionedRegistry } from './types.js'; + +import { BehaviorSubject, combineLatest, from, map, of, switchMap, tap, toArray } from 'rxjs'; + +import { getAvailableDerives } from '@pezkuwi/api-derive'; +import { memo, RpcCore } from '@pezkuwi/rpc-core'; +import { WsProvider } from '@pezkuwi/rpc-provider'; +import { expandMetadata, GenericExtrinsic, typeDefinitions, TypeRegistry } from '@pezkuwi/types'; +import { getSpecRuntime } from '@pezkuwi/types-known'; +import { arrayChunk, arrayFlatten, assertReturn, BN, compactStripLength, lazyMethod, lazyMethods, logger, nextTick, objectSpread, stringCamelCase, stringUpperFirst, u8aConcatStrict, u8aToHex } from '@pezkuwi/util'; +import { blake2AsHex } from '@pezkuwi/util-crypto'; + +import { createSubmittable } from '../submittable/index.js'; +import { augmentObject } from '../util/augmentObject.js'; +import { decorateDeriveSections } from '../util/decorate.js'; +import { extractStorageArgs } from '../util/validate.js'; +import { Events } from './Events.js'; +import { findCall, findError } from './find.js'; + +interface MetaDecoration { + callIndex?: Uint8Array; + meta: Record; + method: string; + section: string; + toJSON: () => any; +} + +interface FullDecoration { + createdAt?: Uint8Array | undefined; + decoratedApi: ApiDecoration; + decoratedMeta: DecoratedMeta; +} + +// the max amount of keys/values that we will retrieve at once +const PAGE_SIZE_K = 1000; // limit aligned with the 1k on the node (trie lookups are heavy) +const PAGE_SIZE_V = 250; // limited since the data may be > 16MB (e.g. misfiring elections) +const PAGE_SIZE_Q = 50; // queue of pending storage queries (mapped together, next tick) + +const l = logger('api/init'); + +let instanceCounter = 0; + +function getAtQueryFn (api: ApiDecoration, { method, section }: StorageEntry): AugmentedQuery<'rxjs', GenericStorageEntryFunction, AnyTuple> { + return assertReturn(api.rx.query[section] && api.rx.query[section][method], () => `query.${section}.${method} is not available in this version of the metadata`); +} + +export abstract class Decorate extends Events { + readonly #instanceId: string; + readonly #runtimeLog: Record = {}; + + #registry: Registry; + #storageGetQ: [Observable, [StorageEntry, unknown[]][]][] = []; + #storageSubQ: [Observable, [StorageEntry, unknown[]][]][] = []; + + // HACK Use BN import so decorateDerive works... yes, wtf. + protected __phantom = new BN(0); + + protected _type: ApiTypes; + protected _call: QueryableCalls = {} as QueryableCalls; + protected _consts: QueryableConsts = {} as QueryableConsts; + protected _derive?: ReturnType['_decorateDerive']>; + protected _errors: DecoratedErrors = {} as DecoratedErrors; + protected _events: DecoratedEvents = {} as DecoratedEvents; + protected _extrinsics?: SubmittableExtrinsics; + protected _extrinsicType = GenericExtrinsic.LATEST_EXTRINSIC_VERSION; + protected _genesisHash?: Hash; + protected _isConnected: BehaviorSubject; + protected _isReady = false; + protected _query: QueryableStorage = {} as QueryableStorage; + protected _queryMulti?: QueryableStorageMulti; + protected _rpc?: DecoratedRpc; + protected _rpcCore: RpcCore & RpcInterface; + protected _runtimeMap: Record = {}; + protected _runtimeChain?: Text; + protected _runtimeMetadata?: Metadata; + protected _runtimeVersion?: RuntimeVersion; + protected _rx: ApiInterfaceRx = { call: {} as QueryableCalls<'rxjs'>, consts: {} as QueryableConsts<'rxjs'>, query: {} as QueryableStorage<'rxjs'>, tx: {} as SubmittableExtrinsics<'rxjs'> } as ApiInterfaceRx; + + protected readonly _options: ApiOptions; + + /** + * This is the one and only method concrete children classes need to implement. + * It's a higher-order function, which takes one argument + * `method: Method extends (...args: any[]) => Observable` + * (and one optional `options`), and should return the user facing method. + * For example: + * - For ApiRx, `decorateMethod` should just be identity, because the input + * function is already an Observable + * - For ApiPromise, `decorateMethod` should return a function that takes all + * the parameters from `method`, adds an optional `callback` argument, and + * returns a Promise. + * + * We could easily imagine other user-facing interfaces, which are simply + * implemented by transforming the Observable to Stream/Iterator/Kefir/Bacon + * via `decorateMethod`. + */ + protected _decorateMethod: DecorateMethod; + + /** + * @description Create an instance of the class + * + * @param options Options object to create API instance or a Provider instance + * + * @example + *
+ * + * ```javascript + * import Api from '@pezkuwi/api/promise'; + * + * const api = new Api().isReady(); + * + * api.rpc.subscribeNewHeads((header) => { + * console.log(`new block #${header.number.toNumber()}`); + * }); + * ``` + */ + constructor (options: ApiOptions, type: ApiTypes, decorateMethod: DecorateMethod) { + super(); + + this.#instanceId = `${++instanceCounter}`; + this.#registry = options.source?.registry || options.registry || new TypeRegistry(); + this._rx.callAt = (blockHash: Uint8Array | string, knownVersion?: RuntimeVersion) => + from(this.at(blockHash, knownVersion)).pipe(map((a) => a.rx.call)); + this._rx.queryAt = (blockHash: Uint8Array | string, knownVersion?: RuntimeVersion) => + from(this.at(blockHash, knownVersion)).pipe(map((a) => a.rx.query)); + this._rx.registry = this.#registry; + this._decorateMethod = decorateMethod; + this._options = options; + this._type = type; + + const provider = options.source + ? options.source._rpcCore.provider.isClonable + ? options.source._rpcCore.provider.clone() + : options.source._rpcCore.provider + : (options.provider || new WsProvider()); + + // The RPC interface decorates the known interfaces on init + this._rpcCore = new RpcCore(this.#instanceId, this.#registry, { + isPedantic: this._options.isPedantic, + provider, + rpcCacheCapacity: this._options.rpcCacheCapacity, + ttl: this._options.provider?.ttl, + userRpc: this._options.rpc + }) as (RpcCore & RpcInterface); + this._isConnected = new BehaviorSubject(this._rpcCore.provider.isConnected); + this._rx.hasSubscriptions = this._rpcCore.provider.hasSubscriptions; + } + + public abstract at (blockHash: Uint8Array | string, knownVersion?: RuntimeVersion): Promise>; + + /** + * @description Return the current used registry + */ + public get registry (): Registry { + return this.#registry; + } + + /** + * @description Creates an instance of a type as registered + */ + public createType (type: K, ...params: unknown[]): DetectCodec { + return this.#registry.createType(type, ...params); + } + + /** + * @description Register additional user-defined of chain-specific types in the type registry + */ + public registerTypes (types?: RegistryTypes): void { + types && this.#registry.register(types); + } + + /** + * @returns `true` if the API operates with subscriptions + */ + get hasSubscriptions (): boolean { + return this._rpcCore.provider.hasSubscriptions; + } + + /** + * @returns `true` if the API decorate multi-key queries + */ + get supportMulti (): boolean { + return this._rpcCore.provider.hasSubscriptions || !!this._rpcCore.state.queryStorageAt; + } + + protected _emptyDecorated (registry: Registry, blockHash?: Uint8Array): ApiDecoration { + return { + call: {}, + consts: {}, + errors: {}, + events: {}, + query: {}, + registry, + rx: { + call: {}, + query: {} + }, + tx: createSubmittable(this._type, this._rx, this._decorateMethod, registry, blockHash) + } as ApiDecoration; + } + + protected _createDecorated (registry: VersionedRegistry, fromEmpty: boolean, decoratedApi: ApiDecoration | null, blockHash?: Uint8Array): FullDecoration { + if (!decoratedApi) { + decoratedApi = this._emptyDecorated(registry.registry, blockHash); + } + + if (fromEmpty || !registry.decoratedMeta) { + registry.decoratedMeta = expandMetadata(registry.registry, registry.metadata); + } + + const runtime = this._decorateCalls(registry, this._decorateMethod, blockHash); + const runtimeRx = this._decorateCalls<'rxjs'>(registry, this._rxDecorateMethod, blockHash); + const storage = this._decorateStorage(registry.decoratedMeta, this._decorateMethod, blockHash); + const storageRx = this._decorateStorage<'rxjs'>(registry.decoratedMeta, this._rxDecorateMethod, blockHash); + + augmentObject('consts', registry.decoratedMeta.consts, decoratedApi.consts, fromEmpty); + augmentObject('errors', registry.decoratedMeta.errors, decoratedApi.errors, fromEmpty); + augmentObject('events', registry.decoratedMeta.events, decoratedApi.events, fromEmpty); + augmentObject('query', storage, decoratedApi.query, fromEmpty); + augmentObject('query', storageRx, decoratedApi.rx.query, fromEmpty); + augmentObject('call', runtime, decoratedApi.call, fromEmpty); + augmentObject('call', runtimeRx, decoratedApi.rx.call, fromEmpty); + + decoratedApi.findCall = (callIndex: Uint8Array | string): CallFunction => + findCall(registry.registry, callIndex); + decoratedApi.findError = (errorIndex: Uint8Array | string): RegistryError => + findError(registry.registry, errorIndex); + decoratedApi.queryMulti = blockHash + ? this._decorateMultiAt(decoratedApi, this._decorateMethod, blockHash) + : this._decorateMulti(this._decorateMethod); + decoratedApi.runtimeVersion = registry.runtimeVersion; + + return { + createdAt: blockHash, + decoratedApi, + decoratedMeta: registry.decoratedMeta + }; + } + + protected _injectMetadata (registry: VersionedRegistry, fromEmpty = false): void { + // clear the decoration, we are redoing it here + if (fromEmpty || !registry.decoratedApi) { + registry.decoratedApi = this._emptyDecorated(registry.registry); + } + + const { decoratedApi, decoratedMeta } = this._createDecorated(registry, fromEmpty, registry.decoratedApi); + + this._call = decoratedApi.call; + this._consts = decoratedApi.consts; + this._errors = decoratedApi.errors; + this._events = decoratedApi.events; + this._query = decoratedApi.query; + + this._rx.call = decoratedApi.rx.call; + this._rx.query = decoratedApi.rx.query; + + const tx = this._decorateExtrinsics(decoratedMeta, this._decorateMethod); + const rxtx = this._decorateExtrinsics(decoratedMeta, this._rxDecorateMethod); + + if (fromEmpty || !this._extrinsics) { + this._extrinsics = tx; + this._rx.tx = rxtx; + } else { + augmentObject('tx', tx, this._extrinsics, false); + augmentObject(null, rxtx, this._rx.tx, false); + } + + augmentObject(null, decoratedMeta.consts, this._rx.consts, fromEmpty); + + this.emit('decorated'); + } + + /** + * @deprecated + * backwards compatible endpoint for metadata injection, may be removed in the future (However, it is still useful for testing injection) + */ + public injectMetadata (metadata: Metadata, fromEmpty?: boolean, registry?: Registry): void { + this._injectMetadata({ counter: 0, metadata, registry: registry || this.#registry, runtimeVersion: this.#registry.createType('RuntimeVersionPartial') }, fromEmpty); + } + + private _decorateFunctionMeta (input: MetaDecoration, output: MetaDecoration): MetaDecoration { + output.meta = input.meta; + output.method = input.method; + output.section = input.section; + output.toJSON = input.toJSON; + + if (input.callIndex) { + output.callIndex = input.callIndex; + } + + return output; + } + + // Filter all RPC methods based on the results of the rpc_methods call. We do this in the following + // manner to cater for both old and new: + // - when the number of entries are 0, only remove the ones with isOptional (account & contracts) + // - when non-zero, remove anything that is not in the array (we don't do this) + protected _filterRpc (methods: string[], additional: Record>): void { + // add any specific user-base RPCs + if (Object.keys(additional).length !== 0) { + this._rpcCore.addUserInterfaces(additional); + + // re-decorate, only adding any new additional interfaces + this._decorateRpc(this._rpcCore, this._decorateMethod, this._rpc); + this._decorateRpc(this._rpcCore, this._rxDecorateMethod, this._rx.rpc); + } + + // extract the actual sections from the methods (this is useful when + // we try and create mappings to runtime names via a hash mapping) + const sectionMap: Record = {}; + + for (let i = 0, count = methods.length; i < count; i++) { + const [section] = methods[i].split('_'); + + sectionMap[section] = true; + } + + // convert the actual section names into an easy name lookup + const sections = Object.keys(sectionMap); + + for (let i = 0, count = sections.length; i < count; i++) { + const nameA = stringUpperFirst(sections[i]); + const nameB = `${nameA}Api`; + + this._runtimeMap[blake2AsHex(nameA, 64)] = nameA; + this._runtimeMap[blake2AsHex(nameB, 64)] = nameB; + } + + // finally we filter the actual methods to expose + this._filterRpcMethods(methods); + } + + protected _filterRpcMethods (exposed: string[]): void { + const hasResults = exposed.length !== 0; + const allKnown = [...this._rpcCore.mapping.entries()]; + const allKeys: string[] = []; + const count = allKnown.length; + + for (let i = 0; i < count; i++) { + const [, { alias, endpoint, method, pubsub, section }] = allKnown[i]; + + allKeys.push(`${section}_${method}`); + + if (pubsub) { + allKeys.push(`${section}_${pubsub[1]}`); + allKeys.push(`${section}_${pubsub[2]}`); + } + + if (alias) { + allKeys.push(...alias); + } + + if (endpoint) { + allKeys.push(endpoint); + } + } + + const unknown = exposed.filter((k: string) => + !allKeys.includes(k) && + !k.includes('_unstable_') + ); + + if (unknown.length && !this._options.noInitWarn) { + l.warn(`RPC methods not decorated: ${unknown.join(', ')}`); + } + + // loop through all entries we have (populated in decorate) and filter as required + // only remove when we have results and method missing, or with no results if optional + for (let i = 0; i < count; i++) { + const [k, { method, section }] = allKnown[i]; + + if (hasResults && !exposed.includes(k) && k !== 'rpc_methods') { + if ((this._rpc as unknown as Record>)[section]) { + delete (this._rpc as unknown as Record>)[section][method]; + delete (this._rx.rpc as unknown as Record>)[section][method]; + } + } + } + } + + private _rpcSubmitter (decorateMethod: DecorateMethod): DecoratedRpc { + const method = (method: string, ...params: any[]) => { + return from(this._rpcCore.provider.send(method, params)); + }; + + return decorateMethod(method) as DecoratedRpc; + } + + protected _decorateRpc (rpc: RpcCore & RpcInterface, decorateMethod: DecorateMethod, input: Partial> = this._rpcSubmitter(decorateMethod)): DecoratedRpc { + const out: Record> = input; + + const decorateFn = (section: string, method: string): unknown => { + const source = rpc[section as 'chain'][method as 'getHeader']; + const fn = decorateMethod(source, { methodName: method }) as { + meta: unknown; + raw: unknown; + }; + + fn.meta = source.meta; + fn.raw = decorateMethod(source.raw, { methodName: method }) as unknown; + + return fn; + }; + + for (let s = 0, scount = rpc.sections.length; s < scount; s++) { + const section = rpc.sections[s]; + + if (!Object.prototype.hasOwnProperty.call(out, section)) { + const methods = Object.keys(rpc[section as 'chain']); + + const decorateInternal = (method: string) => + decorateFn(section, method); + + for (let m = 0, mcount = methods.length; m < mcount; m++) { + const method = methods[m]; + + // skip subscriptions where we have a non-subscribe interface + if (this.hasSubscriptions || !(method.startsWith('subscribe') || method.startsWith('unsubscribe'))) { + if (!Object.prototype.hasOwnProperty.call(out, section)) { + out[section] = {}; + } + + lazyMethod(out[section], method, decorateInternal); + } + } + } + } + + return out as unknown as DecoratedRpc; + } + + // add all definition entries + protected _addRuntimeDef (result: DefinitionsCall, additional?: DefinitionsCall): void { + if (!additional) { + return; + } + + const entries = Object.entries(additional); + + for (let j = 0, ecount = entries.length; j < ecount; j++) { + const [key, defs] = entries[j]; + + if (result[key]) { + // we have this one already, step through for new versions or + // new methods and add those as applicable + for (let k = 0, dcount = defs.length; k < dcount; k++) { + const def = defs[k]; + const prev = result[key].find(({ version }) => def.version === version); + + if (prev) { + // interleave the new methods with the old - last definition wins + objectSpread(prev.methods, def.methods); + } else { + // we don't have this specific version, add it + result[key].push(def); + } + } + } else { + // we don't have this runtime definition, add it as-is + result[key] = defs; + } + } + } + + // extract all runtime definitions + protected _getRuntimeDefs (registry: Registry, specName: Text, chain: Text | string = ''): [string, DefinitionsCallEntry[]][] { + const result: DefinitionsCall = {}; + const defValues = Object.values(typeDefinitions); + + // options > chain/spec > built-in, apply in reverse order with + // methods overriding previous definitions (or interleave missing) + for (let i = 0, count = defValues.length; i < count; i++) { + this._addRuntimeDef(result, defValues[i].runtime); + } + + this._addRuntimeDef(result, getSpecRuntime(registry, chain, specName)); + this._addRuntimeDef(result, this._options.runtime); + + return Object.entries(result); + } + + // Helper for _getRuntimeDefsViaMetadata + protected _getMethods (registry: Registry, methods: Vec) { + const result: Record = {}; + + methods.forEach((m) => { + const { docs, inputs, name, output } = m; + + result[name.toString()] = { + description: docs.map((d) => d.toString()).join(), + params: inputs.map(({ name, type }) => { + return { name: name.toString(), type: registry.lookup.getName(type) || registry.lookup.getTypeDef(type).type }; + }), + type: registry.lookup.getName(output) || registry.lookup.getTypeDef(output).type + }; + }); + + return result; + } + + // Maintains the same structure as `_getRuntimeDefs` in order to make conversion easier. + protected _getRuntimeDefsViaMetadata (registry: Registry): [string, DefinitionsCallEntry[]][] { + const result: DefinitionsCall = {}; + const { apis } = registry.metadata; + + for (let i = 0, count = apis.length; i < count; i++) { + const { methods, name } = apis[i]; + + result[name.toString()] = [{ + methods: this._getMethods(registry, methods), + // We set the version to 0 here since it will not be relevant when we are grabbing the runtime apis + // from the Metadata. + version: 0 + }]; + } + + return Object.entries(result); + } + + // When the calls are available in the metadata, it will generate them based off of the metadata. + // When they are not available it will use the hardcoded calls generated in the static types. + protected _decorateCalls ({ registry, runtimeVersion: { apis, specName, specVersion } }: VersionedRegistry, decorateMethod: DecorateMethod, blockHash?: Uint8Array | string | null): QueryableCalls { + const result = {} as QueryableCalls; + const named: Record> = {}; + const hashes: Record = {}; + const isApiInMetadata = registry.metadata.apis.length > 0; + const sections = isApiInMetadata ? this._getRuntimeDefsViaMetadata(registry) : this._getRuntimeDefs(registry, specName, this._runtimeChain); + const older: string[] = []; + const implName = `${specName.toString()}/${specVersion.toString()}`; + const hasLogged = this.#runtimeLog[implName] || false; + + this.#runtimeLog[implName] = true; + + if (isApiInMetadata) { + for (let i = 0, scount = sections.length; i < scount; i++) { + const [_section, secs] = sections[i]; + const sec = secs[0]; + const sectionHash = blake2AsHex(_section, 64); + + const section = stringCamelCase(_section); + const methods = Object.entries(sec.methods); + + if (!named[section]) { + named[section] = {}; + } + + for (let m = 0, mcount = methods.length; m < mcount; m++) { + const [_method, def] = methods[m]; + const method = stringCamelCase(_method); + + named[section][method] = objectSpread({ method, name: `${_section}_${_method}`, section, sectionHash }, def); + } + } + } else { + for (let i = 0, scount = sections.length; i < scount; i++) { + const [_section, secs] = sections[i]; + const sectionHash = blake2AsHex(_section, 64); + const rtApi = apis.find(([a]) => a.eq(sectionHash)); + + hashes[sectionHash] = true; + + if (rtApi) { + const all = secs.map(({ version }) => version).sort(); + const sec = secs.find(({ version }) => rtApi[1].eq(version)); + + if (sec) { + const section = stringCamelCase(_section); + const methods = Object.entries(sec.methods); + + if (methods.length) { + if (!named[section]) { + named[section] = {}; + } + + for (let m = 0, mcount = methods.length; m < mcount; m++) { + const [_method, def] = methods[m]; + const method = stringCamelCase(_method); + + named[section][method] = objectSpread({ method, name: `${_section}_${_method}`, section, sectionHash }, def); + } + } + } else { + older.push(`${_section}/${rtApi[1].toString()} (${all.join('/')} known)`); + } + } + } + + // find the runtimes that we don't have hashes for + const notFound = apis + .map(([a, v]): [HexString, string] => [a.toHex(), v.toString()]) + .filter(([a]) => !hashes[a]) + .map(([a, v]) => `${this._runtimeMap[a] || a}/${v}`); + + if (!this._options.noInitWarn && !hasLogged) { + if (older.length) { + l.warn(`${implName}: Not decorating runtime apis without matching versions: ${older.join(', ')}`); + } + + if (notFound.length) { + l.warn(`${implName}: Not decorating unknown runtime apis: ${notFound.join(', ')}`); + } + } + } + + const stateCall = blockHash + ? (name: string, bytes: Uint8Array) => this._rpcCore.state.call(name, bytes, blockHash) + : (name: string, bytes: Uint8Array) => this._rpcCore.state.call(name, bytes); + + const lazySection = (section: string) => + lazyMethods({}, Object.keys(named[section]), (method: string) => + this._decorateCall(registry, named[section][method], stateCall, decorateMethod) + ); + + const modules = Object.keys(named); + + for (let i = 0, count = modules.length; i < count; i++) { + lazyMethod(result, modules[i], lazySection); + } + + return result; + } + + protected _decorateCall (registry: Registry, def: DefinitionCallNamed, stateCall: (method: string, bytes: Uint8Array) => Observable, decorateMethod: DecorateMethod): AugmentedCall { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const decorated = decorateMethod((...args: unknown[]): Observable => { + if (args.length !== def.params.length) { + throw new Error(`${def.name}:: Expected ${def.params.length} arguments, found ${args.length}`); + } + + const bytes = registry.createType('Raw', u8aConcatStrict( + args.map((a, i) => registry.createTypeUnsafe(def.params[i].type, [a]).toU8a()) + )); + + return stateCall(def.name, bytes).pipe( + map((r) => registry.createTypeUnsafe(def.type, [r])) + ); + }); + + (decorated as AugmentedCall).meta = def; + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return decorated; + } + + // only be called if supportMulti is true + protected _decorateMulti (decorateMethod: DecorateMethod): QueryableStorageMulti { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return decorateMethod((keys: QueryableStorageMultiArg[]): Observable => + keys.length + ? (this.hasSubscriptions + ? this._rpcCore.state.subscribeStorage + : this._rpcCore.state.queryStorageAt + )(keys.map((args: QueryableStorageMultiArg): [StorageEntry, ...unknown[]] => + Array.isArray(args) + ? args[0].creator.meta.type.isPlain + ? [args[0].creator] + : args[0].creator.meta.type.asMap.hashers.length === 1 + ? [args[0].creator, args.slice(1)] + : [args[0].creator, ...args.slice(1)] + : [args.creator] + )) + : of([]) + ); + } + + protected _decorateMultiAt (atApi: ApiDecoration, decorateMethod: DecorateMethod, blockHash: Uint8Array | string): QueryableStorageMulti { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return decorateMethod((calls: QueryableStorageMultiArg[]): Observable => + calls.length + ? this._rpcCore.state.queryStorageAt( + calls.map((args: QueryableStorageMultiArg) => { + if (Array.isArray(args)) { + const { creator } = getAtQueryFn(atApi, args[0].creator); + + return creator.meta.type.isPlain + ? [creator] + : creator.meta.type.asMap.hashers.length === 1 + ? [creator, args.slice(1)] + : [creator, ...args.slice(1)]; + } + + return [getAtQueryFn(atApi, args.creator).creator]; + }), + blockHash) + : of([]) + ); + } + + protected _decorateExtrinsics ({ tx }: DecoratedMeta, decorateMethod: DecorateMethod): SubmittableExtrinsics { + const result = createSubmittable(this._type, this._rx, decorateMethod) as SubmittableExtrinsics; + + const lazySection = (section: string) => + lazyMethods({}, Object.keys(tx[section]), (method: string) => + method.startsWith('$') + ? tx[section][method] + : this._decorateExtrinsicEntry(tx[section][method], result) + ); + + const sections = Object.keys(tx); + + for (let i = 0, count = sections.length; i < count; i++) { + lazyMethod(result, sections[i], lazySection); + } + + return result; + } + + private _decorateExtrinsicEntry (method: CallFunction, creator: (value: Call | Uint8Array | string) => SubmittableExtrinsic): SubmittableExtrinsicFunction { + const decorated = (...params: unknown[]): SubmittableExtrinsic => + creator(method(...params)); + + // pass through the `.is` + decorated.is = (other: IMethod) => + method.is(other); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return this._decorateFunctionMeta(method as unknown as MetaDecoration, decorated as unknown as MetaDecoration) as unknown as SubmittableExtrinsicFunction; + } + + protected _decorateStorage ({ query, registry }: DecoratedMeta, decorateMethod: DecorateMethod, blockHash?: Uint8Array): QueryableStorage { + const result = {} as QueryableStorage; + + const lazySection = (section: string) => + lazyMethods({}, Object.keys(query[section]), (method: string) => + blockHash + ? this._decorateStorageEntryAt(registry, query[section][method], decorateMethod, blockHash) + : this._decorateStorageEntry(query[section][method], decorateMethod) + ); + + const sections = Object.keys(query); + + for (let i = 0, count = sections.length; i < count; i++) { + lazyMethod(result, sections[i], lazySection); + } + + return result; + } + + private _decorateStorageEntry (creator: StorageEntry, decorateMethod: DecorateMethod): QueryableStorageEntry { + const getArgs = (args: unknown[], registry?: Registry) => + extractStorageArgs(registry || this.#registry, creator, args); + + const getQueryAt = (blockHash: Hash | Uint8Array | string): Observable> => + from(this.at(blockHash)).pipe( + map((api) => getAtQueryFn(api, creator))); + + // Disable this where it occurs for each field we are decorating + /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */ + + const decorated: AugmentedQuery<'rxjs', GenericStorageEntryFunction, AnyTuple> & MetaDecoration = this._decorateStorageCall(creator, decorateMethod); + + decorated.creator = creator; + + // eslint-disable-next-line deprecation/deprecation + decorated.at = decorateMethod((blockHash: Hash, ...args: unknown[]): Observable => + getQueryAt(blockHash).pipe( + switchMap((q) => q(...args)))); + + decorated.hash = decorateMethod((...args: unknown[]): Observable => + this._rpcCore.state.getStorageHash(getArgs(args))); + + decorated.is = (key: IStorageKey): key is IStorageKey => + key.section === creator.section && + key.method === creator.method; + + decorated.key = (...args: unknown[]): string => + u8aToHex(compactStripLength(creator(...args))[1]); + + decorated.keyPrefix = (...args: unknown[]): string => + u8aToHex(creator.keyPrefix(...args)); + + decorated.size = decorateMethod((...args: unknown[]): Observable => + this._rpcCore.state.getStorageSize(getArgs(args))); + + // eslint-disable-next-line deprecation/deprecation + decorated.sizeAt = decorateMethod((blockHash: Hash | Uint8Array | string, ...args: unknown[]): Observable => + getQueryAt(blockHash).pipe( + switchMap((q) => + this._rpcCore.state.getStorageSize(getArgs(args, q.creator.meta.registry), blockHash)))); + + // .keys() & .entries() only available on map types + if (creator.iterKey && creator.meta.type.isMap) { + decorated.entries = decorateMethod( + memo(this.#instanceId, (...args: unknown[]): Observable<[StorageKey, Codec][]> => + this._retrieveMapEntries(creator, null, args))); + + // eslint-disable-next-line deprecation/deprecation + decorated.entriesAt = decorateMethod( + memo(this.#instanceId, (blockHash: Hash | Uint8Array | string, ...args: unknown[]): Observable<[StorageKey, Codec][]> => + getQueryAt(blockHash).pipe( + switchMap((q) => this._retrieveMapEntries(q.creator, blockHash, args))))); + + decorated.entriesPaged = decorateMethod( + memo(this.#instanceId, (opts: PaginationOptions): Observable<[StorageKey, Codec][]> => + this._retrieveMapEntriesPaged(creator, undefined, opts))); + + decorated.keys = decorateMethod( + memo(this.#instanceId, (...args: unknown[]): Observable => + this._retrieveMapKeys(creator, null, args))); + + // eslint-disable-next-line deprecation/deprecation + decorated.keysAt = decorateMethod( + memo(this.#instanceId, (blockHash: Hash | Uint8Array | string, ...args: unknown[]): Observable => + getQueryAt(blockHash).pipe( + switchMap((q) => this._retrieveMapKeys(q.creator, blockHash, args))))); + + decorated.keysPaged = decorateMethod( + memo(this.#instanceId, (opts: PaginationOptions): Observable => + this._retrieveMapKeysPaged(creator, undefined, opts))); + } + + if (this.supportMulti && creator.meta.type.isMap) { + // When using double map storage function, user need to pass double map key as an array + decorated.multi = decorateMethod((args: unknown[]): Observable => + creator.meta.type.asMap.hashers.length === 1 + ? this._retrieveMulti(args.map((a) => [creator, [a]])) + : this._retrieveMulti(args.map((a) => [creator, a as unknown[]])) + ); + } + + /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */ + + return this._decorateFunctionMeta(creator as unknown as MetaDecoration, decorated) as unknown as QueryableStorageEntry; + } + + private _decorateStorageEntryAt (registry: Registry, creator: StorageEntry, decorateMethod: DecorateMethod, blockHash: Uint8Array): QueryableStorageEntryAt { + const getArgs = (args: unknown[]): unknown[] => extractStorageArgs(registry, creator, args); + + // Disable this where it occurs for each field we are decorating + /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */ + + const decorated: AugmentedQuery<'rxjs', GenericStorageEntryFunction, AnyTuple> & MetaDecoration = decorateMethod((...args: unknown[]): Observable => + this._rpcCore.state.getStorage(getArgs(args), blockHash)); + + decorated.creator = creator; + + decorated.hash = decorateMethod((...args: unknown[]): Observable => + this._rpcCore.state.getStorageHash(getArgs(args), blockHash)); + + decorated.is = (key: IStorageKey): key is IStorageKey => + key.section === creator.section && + key.method === creator.method; + + decorated.key = (...args: unknown[]): string => + u8aToHex(compactStripLength(creator(...args))[1]); + + decorated.keyPrefix = (...keys: unknown[]): string => + u8aToHex(creator.keyPrefix(...keys)); + + decorated.size = decorateMethod((...args: unknown[]): Observable => + this._rpcCore.state.getStorageSize(getArgs(args), blockHash)); + + // .keys() & .entries() only available on map types + if (creator.iterKey && creator.meta.type.isMap) { + decorated.entries = decorateMethod( + memo(this.#instanceId, (...args: unknown[]): Observable<[StorageKey, Codec][]> => + this._retrieveMapEntries(creator, blockHash, args))); + + decorated.entriesPaged = decorateMethod( + memo(this.#instanceId, (opts: PaginationOptions): Observable<[StorageKey, Codec][]> => + this._retrieveMapEntriesPaged(creator, blockHash, opts))); + + decorated.keys = decorateMethod( + memo(this.#instanceId, (...args: unknown[]): Observable => + this._retrieveMapKeys(creator, blockHash, args))); + + decorated.keysPaged = decorateMethod( + memo(this.#instanceId, (opts: PaginationOptions): Observable => + this._retrieveMapKeysPaged(creator, blockHash, opts))); + } + + if (this.supportMulti && creator.meta.type.isMap) { + // When using double map storage function, user need to pass double map key as an array + decorated.multi = decorateMethod((args: unknown[]): Observable => + creator.meta.type.asMap.hashers.length === 1 + ? this._retrieveMulti(args.map((a) => [creator, [a]]), blockHash) + : this._retrieveMulti(args.map((a) => [creator, a as unknown[]]), blockHash) + ); + } + + /* eslint-enable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */ + + return this._decorateFunctionMeta(creator as unknown as MetaDecoration, decorated) as unknown as QueryableStorageEntry; + } + + private _queueStorage (call: [StorageEntry, unknown[]], queue: [Observable, [StorageEntry, unknown[]][]][]): Observable { + const query = queue === this.#storageSubQ + ? this._rpcCore.state.subscribeStorage + : this._rpcCore.state.queryStorageAt; + let queueIdx = queue.length - 1; + let valueIdx = 0; + let valueObs: Observable; + + // if we don't have queue entries yet, + // or the current queue has fired (see from below), + // or the current queue has the max entries, + // then we create a new queue + if (queueIdx === -1 || !queue[queueIdx] || queue[queueIdx][1].length === PAGE_SIZE_Q) { + queueIdx++; + + valueObs = from( + // we delay the execution until the next tick, this allows + // any queries made in this timeframe to be added to the same + // queue for a single query + new Promise<[StorageEntry, unknown[]][]>((resolve): void => { + nextTick((): void => { + // get all the calls in this instance, resolve with it + // and then clear the queue so we don't add more + // (anything after this will be added to a new queue) + const calls = queue[queueIdx][1]; + + delete queue[queueIdx]; + + resolve(calls); + }); + }) + ).pipe( + switchMap((calls) => query(calls)) + ); + + queue.push([valueObs, [call]]); + } else { + valueObs = queue[queueIdx][0]; + valueIdx = queue[queueIdx][1].length; + + queue[queueIdx][1].push(call); + } + + return valueObs.pipe( + // return the single value at this index + map((values) => values[valueIdx]) + ); + } + + // Decorate the base storage call. In the case or rxjs or promise-without-callback (await) + // we make a subscription, alternatively we push this through a single-shot query + private _decorateStorageCall (creator: StorageEntry, decorateMethod: DecorateMethod): ReturnType> { + const memoed = memo(this.#instanceId, (...args: unknown[]): Observable => { + const call = extractStorageArgs(this.#registry, creator, args); + + if (!this.hasSubscriptions) { + return this._rpcCore.state.getStorage(call); + } + + return this._queueStorage(call, this.#storageSubQ); + }); + + return decorateMethod(memoed, { + methodName: creator.method, + overrideNoSub: (...args: unknown[]) => + this._queueStorage(extractStorageArgs(this.#registry, creator, args), this.#storageGetQ) + }); + } + + // retrieve a set of values for a specific set of keys - here we chunk the keys into PAGE_SIZE sizes + private _retrieveMulti (keys: [StorageEntry, unknown[]][], blockHash?: Uint8Array): Observable { + if (!keys.length) { + return of([]); + } + + const query = this.hasSubscriptions && !blockHash + ? this._rpcCore.state.subscribeStorage + : this._rpcCore.state.queryStorageAt; + + if (keys.length <= PAGE_SIZE_V) { + return blockHash + ? query(keys, blockHash) + : query(keys); + } + + return combineLatest( + arrayChunk(keys, PAGE_SIZE_V).map((k) => + blockHash + ? query(k, blockHash) + : query(k) + ) + ).pipe( + map(arrayFlatten) + ); + } + + private _retrieveMapKeys ({ iterKey, meta, method, section }: StorageEntry, at: Hash | Uint8Array | string | null, args: unknown[]): Observable { + if (!iterKey || !meta.type.isMap) { + throw new Error('keys can only be retrieved on maps'); + } + + const headKey = iterKey(...args).toHex(); + const startSubject = new BehaviorSubject(headKey); + const query = at + ? (startKey: string) => + this._rpcCore.state.getKeysPaged(headKey, PAGE_SIZE_K, startKey, at) + : (startKey: string) => + this._rpcCore.state.getKeysPaged(headKey, PAGE_SIZE_K, startKey); + const setMeta = (key: StorageKey) => key.setMeta(meta, section, method); + + return startSubject.pipe( + switchMap(query), + map((keys) => keys.map(setMeta)), + tap((keys) => + nextTick((): void => { + keys.length === PAGE_SIZE_K + ? startSubject.next(keys[PAGE_SIZE_K - 1].toHex()) + : startSubject.complete(); + }) + ), + toArray(), // toArray since we want to startSubject to be completed + map(arrayFlatten) + ); + } + + private _retrieveMapKeysPaged ({ iterKey, meta, method, section }: StorageEntry, at: Hash | Uint8Array | string | undefined, opts: PaginationOptions): Observable { + if (!iterKey || !meta.type.isMap) { + throw new Error('keys can only be retrieved on maps'); + } + + const setMeta = (key: StorageKey) => key.setMeta(meta, section, method); + const query = at + ? (headKey: string) => + this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey, at) + : (headKey: string) => + this._rpcCore.state.getKeysPaged(headKey, opts.pageSize, opts.startKey || headKey); + + return query(iterKey(...opts.args).toHex()).pipe( + map((keys) => keys.map(setMeta)) + ); + } + + private _retrieveMapEntries (entry: StorageEntry, at: Hash | Uint8Array | string | null, args: unknown[]): Observable<[StorageKey, Codec][]> { + const query = at + ? (keys: StorageKey[]) => + this._rpcCore.state.queryStorageAt(keys, at) + : (keys: StorageKey[]) => + this._rpcCore.state.queryStorageAt(keys); + + return this._retrieveMapKeys(entry, at, args).pipe( + switchMap((keys) => + keys.length + ? combineLatest(arrayChunk(keys, PAGE_SIZE_V).map(query)).pipe( + map((valsArr) => + arrayFlatten(valsArr).map((value, index): [StorageKey, Codec] => [keys[index], value]) + ) + ) + : of([]) + ) + ); + } + + private _retrieveMapEntriesPaged (entry: StorageEntry, at: Hash | Uint8Array | string | undefined, opts: PaginationOptions): Observable<[StorageKey, Codec][]> { + const query = at + ? (keys: StorageKey[]) => + this._rpcCore.state.queryStorageAt(keys, at) + : (keys: StorageKey[]) => + this._rpcCore.state.queryStorageAt(keys); + + return this._retrieveMapKeysPaged(entry, at, opts).pipe( + switchMap((keys) => + keys.length + ? query(keys).pipe( + map((valsArr) => + valsArr.map((value, index): [StorageKey, Codec] => [keys[index], value]) + ) + ) + : of([]) + ) + ); + } + + protected _decorateDeriveRx (decorateMethod: DecorateMethod): AllDerives<'rxjs'> { + const specName = this._runtimeVersion?.specName.toString(); + + // Pull in derive from api-derive + const available = getAvailableDerives(this.#instanceId, this._rx, objectSpread({}, this._options.derives, this._options.typesBundle?.spec?.[specName || '']?.derives)); + + return decorateDeriveSections<'rxjs'>(decorateMethod, available); + } + + protected _decorateDerive (decorateMethod: DecorateMethod): AllDerives { + return decorateDeriveSections(decorateMethod, this._rx.derive); + } + + /** + * Put the `this.onCall` function of ApiRx here, because it is needed by + * `api._rx`. + */ + protected _rxDecorateMethod = (method: Method): Method => { + return method; + }; +} diff --git a/packages/api/src/base/Events.ts b/packages/api/src/base/Events.ts new file mode 100644 index 0000000..7144c5d --- /dev/null +++ b/packages/api/src/base/Events.ts @@ -0,0 +1,91 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiInterfaceEvents } from '../types/index.js'; + +import { EventEmitter } from 'eventemitter3'; + +export class Events { + #eventemitter = new EventEmitter(); + + protected emit (type: ApiInterfaceEvents, ...args: unknown[]): boolean { + return this.#eventemitter.emit(type, ...args); + } + + /** + * @description Attach an eventemitter handler to listen to a specific event + * + * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error` + * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments. + * + * @example + *
+ * + * ```javascript + * api.on('connected', (): void => { + * console.log('API has been connected to the endpoint'); + * }); + * + * api.on('disconnected', (): void => { + * console.log('API has been disconnected from the endpoint'); + * }); + * ``` + */ + public on (type: ApiInterfaceEvents, handler: (...args: any[]) => any): this { + this.#eventemitter.on(type, handler); + + return this; + } + + /** + * @description Remove the given eventemitter handler + * + * @param type The type of event the callback was attached to. Available events are `connected`, `disconnected`, `ready` and `error` + * @param handler The callback to unregister. + * + * @example + *
+ * + * ```javascript + * const handler = (): void => { + * console.log('Connected !); + * }; + * + * // Start listening + * api.on('connected', handler); + * + * // Stop listening + * api.off('connected', handler); + * ``` + */ + public off (type: ApiInterfaceEvents, handler: (...args: any[]) => any): this { + this.#eventemitter.removeListener(type, handler); + + return this; + } + + /** + * @description Attach an one-time eventemitter handler to listen to a specific event + * + * @param type The type of event to listen to. Available events are `connected`, `disconnected`, `ready` and `error` + * @param handler The callback to be called when the event fires. Depending on the event type, it could fire with additional arguments. + * + * @example + *
+ * + * ```javascript + * api.once('connected', (): void => { + * console.log('API has been connected to the endpoint'); + * }); + * + * api.once('disconnected', (): void => { + * console.log('API has been disconnected from the endpoint'); + * }); + * ``` + */ + public once (type: ApiInterfaceEvents, handler: (...args: any[]) => any): this { + this.#eventemitter.once(type, handler); + + return this; + } +} diff --git a/packages/api/src/base/Getters.ts b/packages/api/src/base/Getters.ts new file mode 100644 index 0000000..7d8bddc --- /dev/null +++ b/packages/api/src/base/Getters.ts @@ -0,0 +1,245 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { RpcCoreStats, RpcInterface } from '@pezkuwi/rpc-core/types'; +import type { Text } from '@pezkuwi/types'; +import type { Hash, RuntimeVersion } from '@pezkuwi/types/interfaces'; +import type { Metadata } from '@pezkuwi/types/metadata'; +import type { CallFunction, RegistryError } from '@pezkuwi/types/types'; +import type { ApiDecoration, ApiInterfaceRx, ApiTypes, DecoratedErrors, DecoratedEvents, DecoratedRpc, QueryableCalls, QueryableConsts, QueryableStorage, QueryableStorageMulti, SubmittableExtrinsics } from '../types/index.js'; + +import { packageInfo } from '../packageInfo.js'; +import { findCall, findError } from './find.js'; +import { Init } from './Init.js'; + +interface PkgJson { + name: string; + version: string; +} + +function assertResult (value: T | undefined): T { + if (value === undefined) { + throw new Error("Api interfaces needs to be initialized before using, wait for 'isReady'"); + } + + return value; +} + +export abstract class Getters extends Init implements ApiDecoration { + /** + * @description Runtime call interfaces (currently untyped, only decorated via API options) + */ + public get call (): QueryableCalls { + return assertResult(this._call); + } + + /** + * @description Contains the parameter types (constants) of all modules. + * + * The values are instances of the appropriate type and are accessible using `section`.`constantName`, + * + * @example + *
+ * + * ```javascript + * console.log(api.consts.democracy.enactmentPeriod.toString()) + * ``` + */ + public get consts (): QueryableConsts { + return assertResult(this._consts); + } + + /** + * @description Derived results that are injected into the API, allowing for combinations of various query results. + * + * @example + *
+ * + * ```javascript + * api.derive.chain.bestNumber((number) => { + * console.log('best number', number); + * }); + * ``` + */ + public get derive (): ReturnType['_decorateDerive']> { + return assertResult(this._derive); + } + + /** + * @description Errors from metadata + */ + public get errors (): DecoratedErrors { + return assertResult(this._errors); + } + + /** + * @description Events from metadata + */ + public get events (): DecoratedEvents { + return assertResult(this._events); + } + + /** + * @description Returns the version of extrinsics in-use on this chain + */ + public get extrinsicVersion (): number { + return this._extrinsicType; + } + + /** + * @description Contains the genesis Hash of the attached chain. Apart from being useful to determine the actual chain, it can also be used to sign immortal transactions. + */ + public get genesisHash (): Hash { + return assertResult(this._genesisHash); + } + + /** + * @description true is the underlying provider is connected + */ + public get isConnected (): boolean { + return this._isConnected.getValue(); + } + + /** + * @description The library information name & version (from package.json) + */ + public get libraryInfo (): string { + return `${(packageInfo as PkgJson).name} v${(packageInfo as PkgJson).version}`; + } + + /** + * @description Contains all the chain state modules and their subsequent methods in the API. These are attached dynamically from the runtime metadata. + * + * All calls inside the namespace, is denoted by `section`.`method` and may take an optional query parameter. As an example, `api.query.timestamp.now()` (current block timestamp) does not take parameters, while `api.query.system.account()` (retrieving the associated nonce & balances for an account), takes the `AccountId` as a parameter. + * + * @example + *
+ * + * ```javascript + * api.query.system.account(, ([nonce, balance]) => { + * console.log('new free balance', balance.free, 'new nonce', nonce); + * }); + * ``` + */ + public get query (): QueryableStorage { + return assertResult(this._query); + } + + /** + * @description Allows for the querying of multiple storage entries and the combination thereof into a single result. This is a very optimal way to make multiple queries since it only makes a single connection to the node and retrieves the data over one subscription. + * + * @example + *
+ * + * ```javascript + * const unsub = await api.queryMulti( + * [ + * // you can include the storage without any parameters + * api.query.balances.totalIssuance, + * // or you can pass parameters to the storage query + * [api.query.system.account, '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'] + * ], + * ([existential, [, { free }]]) => { + * console.log(`You have ${free.sub(existential)} more than the existential deposit`); + * + * unsub(); + * } + * ); + * ``` + */ + public get queryMulti (): QueryableStorageMulti { + return assertResult(this._queryMulti); + } + + /** + * @description Contains all the raw rpc sections and their subsequent methods in the API as defined by the jsonrpc interface definitions. Unlike the dynamic `api.query` and `api.tx` sections, these methods are fixed (although extensible with node upgrades) and not determined by the runtime. + * + * RPC endpoints available here allow for the query of chain, node and system information, in addition to providing interfaces for the raw queries of state (using known keys) and the submission of transactions. + * + * @example + *
+ * + * ```javascript + * api.rpc.chain.subscribeNewHeads((header) => { + * console.log('new header', header); + * }); + * ``` + */ + public get rpc (): DecoratedRpc { + return assertResult(this._rpc); + } + + /** + * @description Contains the chain information for the current node. + */ + public get runtimeChain (): Text { + return assertResult(this._runtimeChain); + } + + /** + * @description Yields the current attached runtime metadata. Generally this is only used to construct extrinsics & storage, but is useful for current runtime inspection. + */ + public get runtimeMetadata (): Metadata { + return assertResult(this._runtimeMetadata); + } + + /** + * @description Contains the version information for the current runtime. + */ + public get runtimeVersion (): RuntimeVersion { + return assertResult(this._runtimeVersion); + } + + /** + * @description The underlying Rx API interface + */ + public get rx (): Pick { + return assertResult(this._rx as Pick); + } + + /** + * @description Returns the underlying provider stats + */ + public get stats (): RpcCoreStats | undefined { + return this._rpcCore.stats; + } + + /** + * @description The type of this API instance, either 'rxjs' or 'promise' + */ + public get type (): ApiTypes { + return this._type; + } + + /** + * @description Contains all the extrinsic modules and their subsequent methods in the API. It allows for the construction of transactions and the submission thereof. These are attached dynamically from the runtime metadata. + * + * @example + *
+ * + * ```javascript + * api.tx.balances + * .transferAllowDeath(, ) + * .signAndSend(, ({status}) => { + * console.log('tx status', status.asFinalized.toHex()); + * }); + * ``` + */ + public get tx (): SubmittableExtrinsics { + return assertResult(this._extrinsics); + } + + /** + * @description Finds the definition for a specific [[CallFunction]] based on the index supplied + */ + public findCall (callIndex: Uint8Array | string): CallFunction { + return findCall(this.registry, callIndex); + } + + /** + * @description Finds the definition for a specific [[RegistryError]] based on the index supplied + */ + public findError (errorIndex: Uint8Array | string): RegistryError { + return findError(this.registry, errorIndex); + } +} diff --git a/packages/api/src/base/Init.ts b/packages/api/src/base/Init.ts new file mode 100644 index 0000000..9efb532 --- /dev/null +++ b/packages/api/src/base/Init.ts @@ -0,0 +1,525 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable, Subscription } from 'rxjs'; +import type { Bytes, Text, u32, Vec } from '@pezkuwi/types'; +import type { ExtDef } from '@pezkuwi/types/extrinsic/signedExtensions/types'; +import type { BlockHash, ChainProperties, Hash, HeaderPartial, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types/types'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { ApiBase, ApiDecoration, ApiOptions, ApiTypes, DecorateMethod } from '../types/index.js'; +import type { VersionedRegistry } from './types.js'; + +import { firstValueFrom, map, of, switchMap } from 'rxjs'; + +import { Metadata, TypeRegistry } from '@pezkuwi/types'; +import { LATEST_EXTRINSIC_VERSION } from '@pezkuwi/types/extrinsic/constants'; +import { getSpecAlias, getSpecExtensions, getSpecHasher, getSpecRpc, getSpecTypes, getUpgradeVersion } from '@pezkuwi/types-known'; +import { assertReturn, BN_ZERO, isUndefined, logger, noop, objectSpread, u8aEq, u8aToHex, u8aToU8a } from '@pezkuwi/util'; +import { blake2AsHex, cryptoWaitReady } from '@pezkuwi/util-crypto'; + +import { Decorate } from './Decorate.js'; + +const KEEPALIVE_INTERVAL = 10000; +const WITH_VERSION_SHORTCUT = false; + +const SUPPORTED_METADATA_VERSIONS = [16, 15, 14]; + +const l = logger('api/init'); + +function textToString (t: Text): string { + return t.toString(); +} + +export abstract class Init extends Decorate { + #atLast: [string, ApiDecoration] | null = null; + #healthTimer: ReturnType | null = null; + #registries: VersionedRegistry[] = []; + #updateSub?: Subscription | null = null; + #waitingRegistries: Record>> = {}; + + constructor (options: ApiOptions, type: ApiTypes, decorateMethod: DecorateMethod) { + super(options, type, decorateMethod); + + // all injected types added to the registry for overrides + this.registry.setKnownTypes(options); + + // We only register the types (global) if this is not a cloned instance. + // Do right up-front, so we get in the user types before we are actually + // doing anything on-chain, this ensures we have the overrides in-place + if (!options.source) { + this.registerTypes(options.types); + } else { + this.#registries = options.source.#registries as VersionedRegistry[]; + } + + this._rpc = this._decorateRpc(this._rpcCore, this._decorateMethod); + this._rx.rpc = this._decorateRpc(this._rpcCore, this._rxDecorateMethod); + + if (this.supportMulti) { + this._queryMulti = this._decorateMulti(this._decorateMethod); + this._rx.queryMulti = this._decorateMulti(this._rxDecorateMethod); + } + + this._rx.signer = options.signer; + + this._rpcCore.setRegistrySwap((blockHash: Uint8Array) => this.getBlockRegistry(blockHash)); + + this._rpcCore.setResolveBlockHash((blockNumber) => firstValueFrom(this._rpcCore.chain.getBlockHash(blockNumber))); + + if (this.hasSubscriptions) { + this._rpcCore.provider.on('disconnected', () => this.#onProviderDisconnect()); + this._rpcCore.provider.on('error', (e: Error) => this.#onProviderError(e)); + this._rpcCore.provider.on('connected', () => this.#onProviderConnect()); + } else if (!this._options.noInitWarn) { + l.warn('Api will be available in a limited mode since the provider does not support subscriptions'); + } + + // If the provider was instantiated earlier, and has already emitted a + // 'connected' event, then the `on('connected')` won't fire anymore. To + // cater for this case, we call manually `this._onProviderConnect`. + if (this._rpcCore.provider.isConnected) { + this.#onProviderConnect().catch(noop); + } + } + + /** + * @description Decorates a registry based on the runtime version + */ + private _initRegistry (registry: Registry, chain: Text, version: { specName: Text, specVersion: BN }, metadata: Metadata, chainProps?: ChainProperties): void { + registry.clearCache(); + registry.setChainProperties(chainProps || this.registry.getChainProperties()); + registry.setKnownTypes(this._options); + registry.register(getSpecTypes(registry, chain, version.specName, version.specVersion)); + registry.setHasher(getSpecHasher(registry, chain, version.specName)); + + // for bundled types, pull through the aliases defined + if (registry.knownTypes.typesBundle) { + registry.knownTypes.typesAlias = getSpecAlias(registry, chain, version.specName); + } + + registry.setMetadata(metadata, undefined, objectSpread({}, getSpecExtensions(registry, chain, version.specName), this._options.signedExtensions), this._options.noInitWarn); + } + + /** + * @description Returns the default versioned registry + */ + private _getDefaultRegistry (): VersionedRegistry { + return assertReturn(this.#registries.find(({ isDefault }) => isDefault), 'Initialization error, cannot find the default registry'); + } + + /** + * @description Returns a decorated API instance at a specific point in time + */ + public async at (blockHash: Uint8Array | string, knownVersion?: RuntimeVersion): Promise> { + const u8aHash = u8aToU8a(blockHash); + const u8aHex = u8aToHex(u8aHash); + const registry = await this.getBlockRegistry(u8aHash, knownVersion); + + if (!this.#atLast || this.#atLast[0] !== u8aHex) { + // always create a new decoration - since we are pointing to a specific hash, this + // means that all queries needs to use that hash (not a previous one already existing) + this.#atLast = [u8aHex, this._createDecorated(registry, true, null, u8aHash).decoratedApi]; + } + + return this.#atLast[1]; + } + + private async _createBlockRegistry (blockHash: Uint8Array, header: HeaderPartial, version: RuntimeVersionPartial): Promise> { + const registry = new TypeRegistry(blockHash); + const metadata = await this._retrieveMetadata(version.apis, header.parentHash, registry); + const runtimeChain = this._runtimeChain; + + if (!runtimeChain) { + throw new Error('Invalid initializion order, runtimeChain is not available'); + } + + this._initRegistry(registry, runtimeChain, version, metadata); + + // add our new registry + const result = { counter: 0, lastBlockHash: blockHash, metadata, registry, runtimeVersion: version }; + + this.#registries.push(result); + + return result; + } + + private _cacheBlockRegistryProgress (key: HexString, creator: () => Promise>): Promise> { + // look for waiting resolves + let waiting = this.#waitingRegistries[key]; + + if (isUndefined(waiting)) { + // nothing waiting, construct new + waiting = this.#waitingRegistries[key] = new Promise>((resolve, reject): void => { + creator() + .then((registry): void => { + delete this.#waitingRegistries[key]; + resolve(registry); + }) + .catch((error): void => { + delete this.#waitingRegistries[key]; + reject(error); + }); + }); + } + + return waiting; + } + + private _getBlockRegistryViaVersion (blockHash: Uint8Array, version?: RuntimeVersionPartial): VersionedRegistry | null { + if (version) { + // check for pre-existing registries. We also check specName, e.g. it + // could be changed like in Westmint with upgrade from shell -> westmint + const existingViaVersion = this.#registries.find(({ runtimeVersion: { specName, specVersion } }) => + specName.eq(version.specName) && + specVersion.eq(version.specVersion) + ); + + if (existingViaVersion) { + existingViaVersion.counter++; + existingViaVersion.lastBlockHash = blockHash; + + return existingViaVersion; + } + } + + return null; + } + + private async _getBlockRegistryViaHash (blockHash: Uint8Array): Promise> { + // ensure we have everything required + if (!this._genesisHash || !this._runtimeVersion) { + throw new Error('Cannot retrieve data on an uninitialized chain'); + } + + // We have to assume that on the RPC layer the calls used here does not call back into + // the registry swap, so getHeader & getRuntimeVersion should not be historic + const header = this.registry.createType('HeaderPartial', + this._genesisHash.eq(blockHash) + ? { number: BN_ZERO, parentHash: this._genesisHash } + : await firstValueFrom(this._rpcCore.chain.getHeader.raw(blockHash)) + ); + + if (header.parentHash.isEmpty) { + l.warn(`Unable to retrieve header ${blockHash.toString()} and parent ${header.parentHash.toString()} from supplied hash`); + throw new Error('Unable to retrieve header and parent from supplied hash'); + } + + // get the runtime version, either on-chain or via an known upgrade history + const [firstVersion, lastVersion] = getUpgradeVersion(this._genesisHash, header.number); + const version = this.registry.createType('RuntimeVersionPartial', + WITH_VERSION_SHORTCUT && ( + firstVersion && ( + lastVersion || + firstVersion.specVersion.eq(this._runtimeVersion.specVersion) + ) + ) + ? { apis: firstVersion.apis, specName: this._runtimeVersion.specName, specVersion: firstVersion.specVersion } + : await firstValueFrom(this._rpcCore.state.getRuntimeVersion.raw(header.parentHash)) + ); + + return ( + // try to find via version + this._getBlockRegistryViaVersion(blockHash, version) || + // return new or in-flight result + await this._cacheBlockRegistryProgress(version.toHex(), () => this._createBlockRegistry(blockHash, header, version)) + ); + } + + /** + * @description Sets up a registry based on the block hash defined + */ + public async getBlockRegistry (blockHash: Uint8Array, knownVersion?: RuntimeVersion): Promise> { + return ( + // try to find via blockHash + this.#registries.find(({ lastBlockHash }) => + lastBlockHash && u8aEq(lastBlockHash, blockHash) + ) || + // try to find via version + this._getBlockRegistryViaVersion(blockHash, knownVersion) || + // return new or in-flight result + await this._cacheBlockRegistryProgress(u8aToHex(blockHash), () => this._getBlockRegistryViaHash(blockHash)) + ); + } + + protected async _loadMeta (): Promise { + // on re-connection to the same chain, we don't want to re-do everything from chain again + if (this._isReady) { + // on re-connection only re-subscribe to chain updates if we are not a clone + if (!this._options.source) { + this._subscribeUpdates(); + } + + return true; + } + + this._unsubscribeUpdates(); + + // only load from on-chain if we are not a clone (default path), alternatively + // just use the values from the source instance provided + [this._genesisHash, this._runtimeMetadata] = this._options.source?._isReady + ? await this._metaFromSource(this._options.source) + : await this._metaFromChain(this._options.metadata); + + return this._initFromMeta(this._runtimeMetadata); + } + + // eslint-disable-next-line @typescript-eslint/require-await + private async _metaFromSource (source: ApiBase): Promise<[Hash, Metadata]> { + this._extrinsicType = source.extrinsicVersion; + this._runtimeChain = source.runtimeChain; + this._runtimeVersion = source.runtimeVersion; + + // manually build a list of all available methods in this RPC, we are + // going to filter on it to align the cloned RPC without making a call + const sections = Object.keys(source.rpc); + const rpcs: string[] = []; + + for (let s = 0, scount = sections.length; s < scount; s++) { + const section = sections[s]; + const methods = Object.keys((source.rpc as unknown as Record>)[section]); + + for (let m = 0, mcount = methods.length; m < mcount; m++) { + rpcs.push(`${section}_${methods[m]}`); + } + } + + this._filterRpc(rpcs, getSpecRpc(this.registry, source.runtimeChain, source.runtimeVersion.specName)); + + return [source.genesisHash, source.runtimeMetadata]; + } + + // subscribe to metadata updates, inject the types on changes + private _subscribeUpdates (): void { + if (this.#updateSub || !this.hasSubscriptions) { + return; + } + + this.#updateSub = this._rpcCore.state.subscribeRuntimeVersion().pipe( + switchMap((version: RuntimeVersion): Observable => + // only retrieve the metadata when the on-chain version has been changed + this._runtimeVersion?.specVersion.eq(version.specVersion) + ? of(false) + : this._rpcCore.state.getMetadata().pipe( + map((metadata: Metadata): boolean => { + l.log(`Runtime version updated to spec=${version.specVersion.toString()}, tx=${version.transactionVersion.toString()}`); + + this._runtimeMetadata = metadata; + this._runtimeVersion = version; + this._rx.runtimeVersion = version; + + // update the default registry version + const thisRegistry = this._getDefaultRegistry(); + const runtimeChain = this._runtimeChain; + + if (!runtimeChain) { + throw new Error('Invalid initializion order, runtimeChain is not available'); + } + + // setup the data as per the current versions + thisRegistry.metadata = metadata; + thisRegistry.runtimeVersion = version; + + this._initRegistry(this.registry, runtimeChain, version, metadata); + this._injectMetadata(thisRegistry, true); + + return true; + }) + ) + ) + ).subscribe(); + } + + private async _metaFromChain (optMetadata?: Record): Promise<[Hash, Metadata]> { + const [genesisHash, runtimeVersion, chain, chainProps, rpcMethods] = await Promise.all([ + firstValueFrom(this._rpcCore.chain.getBlockHash(0)), + firstValueFrom(this._rpcCore.state.getRuntimeVersion()), + firstValueFrom(this._rpcCore.system.chain()), + firstValueFrom(this._rpcCore.system.properties()), + firstValueFrom(this._rpcCore.rpc.methods()) + ]); + + // set our chain version & genesisHash as returned + this._runtimeChain = chain; + this._runtimeVersion = runtimeVersion; + this._rx.runtimeVersion = runtimeVersion; + + // retrieve metadata, either from chain or as pass-in via options + const metadataKey = `${genesisHash.toHex() || '0x'}-${runtimeVersion.specVersion.toString()}`; + const metadata = optMetadata?.[metadataKey] + ? new Metadata(this.registry, optMetadata[metadataKey]) + : await this._retrieveMetadata(runtimeVersion.apis); + + // initializes the registry & RPC + this._initRegistry(this.registry, chain, runtimeVersion, metadata, chainProps); + this._filterRpc(rpcMethods.methods.map(textToString), getSpecRpc(this.registry, chain, runtimeVersion.specName)); + this._subscribeUpdates(); + + // setup the initial registry, when we have none + if (!this.#registries.length) { + this.#registries.push({ counter: 0, isDefault: true, metadata, registry: this.registry, runtimeVersion }); + } + + // get unique types & validate + metadata.getUniqTypes(this._options.throwOnUnknown || false); + + return [genesisHash, metadata]; + } + + private _initFromMeta (metadata: Metadata): boolean { + const runtimeVersion = this._runtimeVersion; + + if (!runtimeVersion) { + throw new Error('Invalid initializion order, runtimeVersion is not available'); + } + + // ExtrinsicV5 is not fully supported yet, for that reason we default to version 4 + this._extrinsicType = metadata.asLatest.extrinsic.versions.at(0) || LATEST_EXTRINSIC_VERSION; + this._rx.extrinsicType = this._extrinsicType; + this._rx.genesisHash = this._genesisHash; + this._rx.runtimeVersion = runtimeVersion; + + // inject metadata and adjust the types as detected + this._injectMetadata(this._getDefaultRegistry(), true); + + // derive is last, since it uses the decorated rx + this._rx.derive = this._decorateDeriveRx(this._rxDecorateMethod); + this._derive = this._decorateDerive(this._decorateMethod); + + return true; + } + + /** + * @internal + * + * Tries to use runtime api calls to retrieve metadata. This ensures the api initializes with the latest metadata. + * If the runtime call is not there it will use the rpc method. + */ + private async _retrieveMetadata (apis: Vec, at?: BlockHash | string | Uint8Array, registry?: TypeRegistry): Promise { + let metadataVersion: u32 | null = null; + const metadataApi = apis.find(([a]) => a.eq(blake2AsHex('Metadata', 64))); + const typeRegistry = registry || this.registry; + + // This chain does not have support for the metadataApi, or does not have the required version. + if (!metadataApi || metadataApi[1].toNumber() < 2) { + l.warn('MetadataApi not available, rpc::state::get_metadata will be used.'); + + return at + ? new Metadata(typeRegistry, await firstValueFrom(this._rpcCore.state.getMetadata.raw(at))) + : await firstValueFrom(this._rpcCore.state.getMetadata()); + } + + try { + const metadataVersionsAsBytes = at + ? await firstValueFrom(this._rpcCore.state.call.raw('Metadata_metadata_versions', '0x', at)) + : await firstValueFrom(this._rpcCore.state.call('Metadata_metadata_versions', '0x')); + const versions = typeRegistry.createType('Vec', metadataVersionsAsBytes); + + // For unstable versions of the metadata the last value is set to u32 MAX in the runtime. This ensures only supported stable versions are used. + metadataVersion = versions.filter((ver) => SUPPORTED_METADATA_VERSIONS.includes(ver.toNumber())).reduce((largest, current) => current.gt(largest) ? current : largest); + } catch (e) { + l.debug((e as Error).message); + l.warn('error with state_call::Metadata_metadata_versions, rpc::state::get_metadata will be used'); + } + + // When the metadata version does not align with the latest supported versions we ensure not to call the metadata runtime call. + // I noticed on some previous runtimes that have support for `Metadata_metadata_at_version` that very irregular versions were being returned. + // This was evident with runtime 1000000 - it return a very large number. This ensures we always stick within what is supported. + if (metadataVersion && !SUPPORTED_METADATA_VERSIONS.includes(metadataVersion.toNumber())) { + metadataVersion = null; + } + + if (metadataVersion) { + try { + const metadataBytes = at + ? await firstValueFrom(this._rpcCore.state.call.raw('Metadata_metadata_at_version', u8aToHex(metadataVersion.toU8a()), at)) + : await firstValueFrom(this._rpcCore.state.call('Metadata_metadata_at_version', u8aToHex(metadataVersion.toU8a()))); + // When the metadata is called with `at` it is required to use `.raw`. Therefore since the length prefix is not present the + // need to create a `Raw` type is necessary before creating the `OpaqueMetadata` type or else there will be a magic number + // mismatch + const rawMeta = at + ? typeRegistry.createType('Raw', metadataBytes).toU8a() + : metadataBytes; + const opaqueMetadata = typeRegistry.createType('Option', rawMeta).unwrapOr(null); + + if (opaqueMetadata) { + return new Metadata(typeRegistry, opaqueMetadata.toHex()); + } + } catch (e) { + l.debug((e as Error).message); + l.warn('error with state_call::Metadata_metadata_at_version, rpc::state::get_metadata will be used'); + } + } + + return at + ? new Metadata(typeRegistry, await firstValueFrom(this._rpcCore.state.getMetadata.raw(at))) + : await firstValueFrom(this._rpcCore.state.getMetadata()); + } + + private _subscribeHealth (): void { + this._unsubscribeHealth(); + + // Only enable the health keepalive on WS, not needed on HTTP + this.#healthTimer = this.hasSubscriptions + ? setInterval((): void => { + firstValueFrom(this._rpcCore.system.health.raw()).catch(noop); + }, KEEPALIVE_INTERVAL) + : null; + } + + private _unsubscribeHealth (): void { + if (this.#healthTimer) { + clearInterval(this.#healthTimer); + this.#healthTimer = null; + } + } + + private _unsubscribeUpdates (): void { + if (this.#updateSub) { + this.#updateSub.unsubscribe(); + this.#updateSub = null; + } + } + + protected _unsubscribe (): void { + this._unsubscribeHealth(); + this._unsubscribeUpdates(); + } + + async #onProviderConnect (): Promise { + this._isConnected.next(true); + this.emit('connected'); + + try { + const cryptoReady = this._options.initWasm === false + ? true + : await cryptoWaitReady(); + const hasMeta = await this._loadMeta(); + + this._subscribeHealth(); + + if (hasMeta && !this._isReady && cryptoReady) { + this._isReady = true; + + this.emit('ready', this); + } + } catch (_error) { + const error = new Error(`FATAL: Unable to initialize the API: ${(_error as Error).message}`); + + l.error(error); + + this.emit('error', error); + } + } + + #onProviderDisconnect (): void { + this._isConnected.next(false); + this._unsubscribe(); + this.emit('disconnected'); + } + + #onProviderError (error: Error): void { + this.emit('error', error); + } +} diff --git a/packages/api/src/base/find.ts b/packages/api/src/base/find.ts new file mode 100644 index 0000000..a969e9c --- /dev/null +++ b/packages/api/src/base/find.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { CallFunction, Registry, RegistryError } from '@pezkuwi/types/types'; + +import { u8aToU8a } from '@pezkuwi/util'; + +export function findCall (registry: Registry, callIndex: Uint8Array | string): CallFunction { + return registry.findMetaCall(u8aToU8a(callIndex)); +} + +export function findError (registry: Registry, errorIndex: Uint8Array | string): RegistryError { + return registry.findMetaError(u8aToU8a(errorIndex)); +} diff --git a/packages/api/src/base/index.ts b/packages/api/src/base/index.ts new file mode 100644 index 0000000..3e052d4 --- /dev/null +++ b/packages/api/src/base/index.ts @@ -0,0 +1,85 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SignerPayloadRawBase } from '@pezkuwi/types/types'; +import type { ApiOptions, ApiTypes, DecorateMethod, Signer } from '../types/index.js'; + +import { isString, objectSpread, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { Getters } from './Getters.js'; + +interface KeyringSigner { + sign (message: Uint8Array): Uint8Array; +} + +interface SignerRawOptions { + signer?: Signer; +} + +export abstract class ApiBase extends Getters { + /** + * @description Create an instance of the class + * + * @param options Options object to create API instance or a Provider instance + * + * @example + *
+ * + * ```javascript + * import Api from '@pezkuwi/api/promise'; + * + * const api = new Api().isReady(); + * + * api.rpc.subscribeNewHeads((header) => { + * console.log(`new block #${header.number.toNumber()}`); + * }); + * ``` + */ + constructor (options: ApiOptions = {}, type: ApiTypes, decorateMethod: DecorateMethod) { + super(options, type, decorateMethod); + } + + /** + * @description Connect from the underlying provider, halting all network traffic + */ + public connect (): Promise { + return this._rpcCore.connect(); + } + + /** + * @description Disconnect from the underlying provider, halting all network traffic + */ + public disconnect (): Promise { + this._unsubscribe(); + + return this._rpcCore.disconnect(); + } + + /** + * @description Set an external signer which will be used to sign extrinsic when account passed in is not KeyringPair + */ + public setSigner (signer: Signer | undefined): void { + this._rx.signer = signer; + } + + /** + * @description Signs a raw signer payload, string or Uint8Array + */ + public async sign (address: KeyringSigner | string, data: SignerPayloadRawBase, { signer }: SignerRawOptions = {}): Promise { + if (isString(address)) { + const _signer = signer || this._rx.signer; + + if (!_signer?.signRaw) { + throw new Error('No signer exists with a signRaw interface. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.'); + } + + return ( + await _signer.signRaw( + objectSpread({ type: 'bytes' }, data, { address }) + ) + ).signature; + } + + return u8aToHex(address.sign(u8aToU8a(data.data))); + } +} diff --git a/packages/api/src/base/types.ts b/packages/api/src/base/types.ts new file mode 100644 index 0000000..b8ebafe --- /dev/null +++ b/packages/api/src/base/types.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Metadata } from '@pezkuwi/types'; +import type { RuntimeVersionPartial } from '@pezkuwi/types/interfaces'; +import type { DecoratedMeta } from '@pezkuwi/types/metadata/decorate/types'; +import type { Registry } from '@pezkuwi/types/types'; +import type { ApiDecoration, ApiTypes } from '../types/index.js'; + +export interface VersionedRegistry { + counter: number; + decoratedApi?: ApiDecoration; + decoratedMeta?: DecoratedMeta; + isDefault?: boolean; + lastBlockHash?: Uint8Array | null; + metadata: Metadata; + registry: Registry; + runtimeVersion: RuntimeVersionPartial; +} diff --git a/packages/api/src/bundle.ts b/packages/api/src/bundle.ts new file mode 100644 index 0000000..eede1b0 --- /dev/null +++ b/packages/api/src/bundle.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/rpc-augment'; + +// all external +export { Keyring } from '@pezkuwi/keyring'; +export { HttpProvider, ScProvider, WsProvider } from '@pezkuwi/rpc-provider'; + +// all named +export { packageInfo } from './packageInfo.js'; +export { SubmittableResult } from './submittable/index.js'; + +// all starred +export * from './promise/index.js'; +export * from './rx/index.js'; diff --git a/packages/api/src/checkTypes.manual.ts b/packages/api/src/checkTypes.manual.ts new file mode 100644 index 0000000..2dc648c --- /dev/null +++ b/packages/api/src/checkTypes.manual.ts @@ -0,0 +1,323 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Simple non-runnable checks to test type definitions in the editor itself + +import '@pezkuwi/api-augment'; + +import type { HeaderExtended } from '@pezkuwi/api-derive/types'; +import type { TestKeyringMapBizinikiwi } from '@pezkuwi/keyring/testingPairs'; +import type { StorageKey } from '@pezkuwi/types'; +import type { AccountId, Balance, DispatchErrorModule, Event, Header, Index } from '@pezkuwi/types/interfaces'; +import type { PezframeSystemAccountInfo } from '@pezkuwi/types/lookup'; +import type { AnyTuple, IExtrinsic, IMethod } from '@pezkuwi/types/types'; +import type { SubmittableResult } from './index.js'; + +import { ApiPromise } from '@pezkuwi/api'; +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import { createTypeUnsafe, TypeRegistry } from '@pezkuwi/types/create'; + +const registry = new TypeRegistry(); + +async function calls (api: ApiPromise): Promise { + // it allows defaults + const testSetId = await api.call.grandpaApi.currentSetId(); + + // it allows type overrides (generally shouldn't be used, but available) + const testSetIdO = await api.call.grandpaApi.currentSetId(); + + // it allows actual params + const nonce = await api.call.accountNonceApi.accountNonce('5Test'); + + console.log(testSetId.toNumber(), testSetIdO.isAscii, nonce.toNumber()); +} + +function consts (api: ApiPromise): void { + // constants has actual value & metadata + console.log( + api.consts['notIn']['augmentation'], + api.consts.balances.existentialDeposit.toNumber(), + api.consts.balances.existentialDeposit.meta.docs.map((s) => s.toString()).join(''), + api.consts.system.blockWeights.maxBlock.refTime.toNumber() + ); +} + +async function derive (api: ApiPromise): Promise { + await api.derive.chain.subscribeNewHeads((header: HeaderExtended): void => { + console.log('current author:', header.author); + }); + + const info = await api.derive.balances.account('0x1234'); + + console.log('info', info); +} + +function errors (api: ApiPromise): void { + const someError = {} as DispatchErrorModule; + + // existing + console.log(api.errors.vesting.AmountLow.is(someError)); + + // non-existing error, existing module + console.log(api.errors.vesting['NonAugmented'].is(someError)); + + // something random + console.log(api.errors['thisIsNot']['Augmented'].is(someError)); +} + +function events (api: ApiPromise): void { + const event = {} as Event; + + // existing + if (api.events.balances.Transfer.is(event)) { + // the types are correctly expanded + const [afrom, ato, aamount] = event.data; + + console.log( + afrom.toHuman(), + ato.toHuman(), + aamount.toBn() + ); + + // the types have getters + const { amount, from, to } = event.data; + + console.log( + from.toHuman(), + to.toHuman(), + amount.toBn() + ); + } + + // something with only tuple data + if (api.events.staking.Bonded.is(event)) { + const [account, amount] = event.data; + + console.log(account.toHuman(), amount.toBn()); + } + + // something random, just codec[] + if (api.events['not']['Augmented'].is(event)) { + const [a, b] = event.data; + + console.log(a.toHuman(), b.toHuman()); + } +} + +async function query (api: ApiPromise, pairs: TestKeyringMapBizinikiwi): Promise { + const intentions = await api.query.staking.bonded(); + + console.log('intentions:', intentions); + + // api.query.*.* is well-typed + const bar = await api.query['notIn']['augmentation'](); // bar is Codec (unknown module) + const bal = await api.query.balances.totalIssuance(); // bal is Balance + const bal2 = await api.query.balances.totalIssuance('WRONG_ARG'); // bal2 is Codec (wrong args) + const override = await api.query.balances.totalIssuance
(); // override is still available + + // eslint-disable-next-line deprecation/deprecation + const oldBal = await api.query.balances.totalIssuance.at('abcd'); + + // For older queries we can cast with `` (newer chain have multi typed) + const multia = await api.query.balances['freeBalance'].multi([pairs.alice.address, pairs.bob.address]); + const multib = await api.query.system.account.multi([pairs.alice.address, pairs.bob.address]); + + await api.query.system.account(pairs.alice.address); + await api.query.system.account(pairs.alice.address); + + console.log('query types:', bar, bal, bal2, override, oldBal, multia, multib); +} + +async function queryExtra (api: ApiPromise): Promise { + // events destructing + await api.query.system.events((records): void => { + records.forEach(({ event, phase }): void => { + if (phase.isApplyExtrinsic) { + // Dunno... this should work + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const [accountId, value]: [AccountId, Balance] = event.data; + + console.log(`${accountId.toString()} has ${value.toHuman()}`); + } + }); + }); + + // at queries + // eslint-disable-next-line deprecation/deprecation + const events = await api.query.system.events.at('0x12345'); + + console.log(`Received ${events.length} events:`); + + // check entries() + await api.query.system.account.entries(); // should not take a param + await api.query.staking.nominatorSlashInEra.entries(123); // should take a param + + // nmap with keys + await api.query.assets.approvals.keys(123, 'blah'); + await api.query.assets.account.keys(123); + await api.query.assets.account.entries(123); + await api.query.assets['notAugmented'].keys(); + + // is + const key = {} as StorageKey; + + if (api.query.balances.account.is(key)) { + const [accountId] = key.args; + + // should be AccountId type + console.log(accountId.toHuman()); + } +} + +async function queryMulti (api: ApiPromise, pairs: TestKeyringMapBizinikiwi): Promise { + // check multi for unsub + const multiUnsub = await api.queryMulti([ + [api.query.staking.validators], + [api.query.system.events] + ], (values): void => { + console.log('values', values); + + multiUnsub(); + }); + + // check multi , Promise result + const multiRes = await api.queryMulti([ + [api.query.system.account, pairs.eve.address], + // older chains only + [api.query.system['accountNonce'], pairs.eve.address] + ]); + + console.log(multiRes); + + // check multi, via at + const apiAt = await api.at('0x12345678'); + const multiResAt = await apiAt.queryMulti([ + api.query.timestamp.now, + [apiAt.query.staking.validators], + [apiAt.query.system.account, pairs.eve.address] + ]); + + console.log(multiResAt); +} + +async function rpc (api: ApiPromise): Promise { + // defaults + await api.rpc.chain.subscribeNewHeads((header): void => { + console.log('current header #', header.number.toNumber()); + }); + + // with generic params + await api.rpc.state.subscribeStorage<[Balance]>(['my_balance_key'], ([balance]): void => { + console.log('current balance:', balance.toString()); + }); + + // using json & raw + await api.rpc.chain.getBlock.raw('0x123456'); + + // using raw subs + await api.rpc.chain.subscribeNewHeads.raw((result: Uint8Array): void => { + console.log(result); + }); + + // deprecated methods + // eslint-disable-next-line deprecation/deprecation + await api.rpc.state.getPairs('123'); +} + +function types (api: ApiPromise): void { + // check correct types with `createType` + const balance = registry.createType('Balance', 2); + const gas = registry.createType('Gas', 2); + const compact = registry.createType('Compact', 2); + const f32 = registry.createType('f32'); + const u32 = registry.createType('u32'); + const raw = registry.createType('Raw'); + // const random = registry.createType('RandomType', 2); // This one should deliberately show a TS error + + const gasUnsafe = createTypeUnsafe(registry, 'Gas', [2]); + const overriddenUnsafe = createTypeUnsafe
(registry, 'Gas', [2]); + + console.log(balance, gas, compact, gasUnsafe, overriddenUnsafe, u32.toNumber(), f32.toNumber(), api.createType('AccountData'), raw.subarray(0, 10)); +} + +async function tx (api: ApiPromise, pairs: TestKeyringMapBizinikiwi): Promise { + // transfer, also allows for bigint inputs here + const transfer = api.tx.balances.transferAllowDeath(pairs.bob.address, BigInt(123456789)); + + console.log('transfer casted', transfer as IMethod, transfer as IExtrinsic); + + // simple "return the hash" variant + console.log('hash:', (await transfer.signAndSend(pairs.alice)).toHex()); + + // passing options, but waiting for hash + const nonce = await api.query.system['accountNonce'](pairs.alice.address); + + (await api.tx.balances + .transferAllowDeath(pairs.bob.address, 12345) + .signAndSend(pairs.alice, { nonce }) + ).toHex(); + + // just with the callback + await api.tx.balances + .transferAllowDeath(pairs.bob.address, 12345) + .signAndSend(pairs.alice, ({ status }: SubmittableResult) => console.log(status.type)); + + // with options and the callback + const nonce2 = await api.query.system['accountNonce'](pairs.alice.address); + const unsub2 = await api.tx.balances + .transferAllowDeath(pairs.bob.address, 12345) + .signAndSend(pairs.alice, { nonce: nonce2 }, ({ status }: SubmittableResult): void => { + console.log('transfer status:', status.type); + + unsub2(); + }); + + // it allows for query & then using the submittable + const second = api.tx.democracy.second(123); + + await second.signAndSend('123', (result) => console.log(result)); + + // it handles enum inputs correctly + await api.tx.democracy['proxyVote'](123, { Split: { nay: 456, yay: 123 } }).signAndSend(pairs.alice); + + // is + if (api.tx.balances.transferAllowDeath.is(second)) { + const [recipientId, balance] = second.args; + + // should be LookupSource & Balance types + console.log(recipientId.toHuman(), balance.toNumber()); + } +} + +async function at (api: ApiPromise): Promise { + const apiAt = await api.at('0x1234'); + + // get old balances + console.log(await apiAt.query.balances['freeBalance']('0x1234')); + + // get some constants + console.log(apiAt.consts.balances.existentialDeposit); +} + +async function main (): Promise { + const api = await ApiPromise.create(); + const pairs = createTestPairs(); + + await Promise.all([ + calls(api), + consts(api), + derive(api), + errors(api), + events(api), + query(api, pairs), + queryExtra(api), + queryMulti(api, pairs), + rpc(api), + types(api), + tx(api, pairs), + at(api) + ]); +} + +main().catch(console.error); diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts new file mode 100644 index 0000000..e1034bd --- /dev/null +++ b/packages/api/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/api/src/mod.ts b/packages/api/src/mod.ts new file mode 100644 index 0000000..44571a2 --- /dev/null +++ b/packages/api/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/api/src/packageDetect.ts b/packages/api/src/packageDetect.ts new file mode 100644 index 0000000..efaf778 --- /dev/null +++ b/packages/api/src/packageDetect.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2026 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as deriveInfo } from '@pezkuwi/api-derive/packageInfo'; +import { packageInfo as coreInfo } from '@pezkuwi/rpc-core/packageInfo'; +import { packageInfo as providerInfo } from '@pezkuwi/rpc-provider/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { packageInfo as knownInfo } from '@pezkuwi/types-known/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [coreInfo, deriveInfo, knownInfo, providerInfo, typesInfo]); diff --git a/packages/api/src/packageInfo.ts b/packages/api/src/packageInfo.ts new file mode 100644 index 0000000..9c10203 --- /dev/null +++ b/packages/api/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/api', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/api/src/promise/Api.ts b/packages/api/src/promise/Api.ts new file mode 100644 index 0000000..ecbe18b --- /dev/null +++ b/packages/api/src/promise/Api.ts @@ -0,0 +1,214 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiOptions, UnsubscribePromise } from '../types/index.js'; +import type { CombinatorCallback, CombinatorFunction } from './Combinator.js'; + +import { noop, objectSpread } from '@pezkuwi/util'; + +import { ApiBase } from '../base/index.js'; +import { Combinator } from './Combinator.js'; +import { promiseTracker, toPromiseMethod } from './decorateMethod.js'; + +/** + * # @pezkuwi/api/promise + * + * ## Overview + * + * @name ApiPromise + * @description + * ApiPromise is a standard JavaScript wrapper around the RPC and interfaces on the Pezkuwi network. As a full Promise-based, all interface calls return Promises, including the static `.create(...)`. Subscription calls utilise `(value) => {}` callbacks to pass through the latest values. + * + * The API is well suited to real-time applications where either the single-shot state is needed or use is to be made of the subscription-based features of Pezkuwi (and Bizinikiwi) clients. + * + * @see [[ApiRx]] + * + * ## Usage + * + * Making rpc calls - + *
+ * + * ```javascript + * import ApiPromise from '@pezkuwi/api/promise'; + * + * // initialise via static create + * const api = await ApiPromise.create(); + * + * // make a subscription to the network head + * api.rpc.chain.subscribeNewHeads((header) => { + * console.log(`Chain is at #${header.number}`); + * }); + * ``` + *
+ * + * Subscribing to chain state - + *
+ * + * ```javascript + * import { ApiPromise, WsProvider } from '@pezkuwi/api'; + * + * // initialise a provider with a specific endpoint + * const provider = new WsProvider('wss://example.com:9944') + * + * // initialise via isReady & new with specific provider + * const api = await new ApiPromise({ provider }).isReady; + * + * // retrieve the block target time + * const blockPeriod = await api.query.timestamp.blockPeriod().toNumber(); + * let last = 0; + * + * // subscribe to the current block timestamp, updates automatically (callback provided) + * api.query.timestamp.now((timestamp) => { + * const elapsed = last + * ? `, ${timestamp.toNumber() - last}s since last` + * : ''; + * + * last = timestamp.toNumber(); + * console.log(`timestamp ${timestamp}${elapsed} (${blockPeriod}s target)`); + * }); + * ``` + *
+ * + * Submitting a transaction - + *
+ * + * ```javascript + * import ApiPromise from '@pezkuwi/api/promise'; + * + * ApiPromise.create().then((api) => { + * const [nonce] = await api.query.system.account(keyring.alice.address); + * + * api.tx.balances + * // create transfer + * transfer(keyring.bob.address, 12345) + * // sign the transcation + * .sign(keyring.alice, { nonce }) + * // send the transaction (optional status callback) + * .send((status) => { + * console.log(`current status ${status.type}`); + * }) + * // retrieve the submitted extrinsic hash + * .then((hash) => { + * console.log(`submitted with hash ${hash}`); + * }); + * }); + * ``` + */ +export class ApiPromise extends ApiBase<'promise'> { + #isReadyPromise: Promise; + #isReadyOrErrorPromise: Promise; + + /** + * @description Creates an instance of the ApiPromise class + * @param options Options to create an instance. This can be either [[ApiOptions]] or + * an [[WsProvider]]. + * @example + *
+ * + * ```javascript + * import Api from '@pezkuwi/api/promise'; + * + * new Api().isReady.then((api) => { + * api.rpc.subscribeNewHeads((header) => { + * console.log(`new block #${header.number.toNumber()}`); + * }); + * }); + * ``` + */ + constructor (options?: ApiOptions) { + super(options, 'promise', toPromiseMethod); + + this.#isReadyPromise = new Promise((resolve): void => { + super.once('ready', () => resolve(this)); + }); + + this.#isReadyOrErrorPromise = new Promise((resolve, reject): void => { + const tracker = promiseTracker(resolve, reject); + + super.once('ready', () => tracker.resolve(this)); + super.once('error', (error: Error) => tracker.reject(error)); + }); + } + + /** + * @description Creates an ApiPromise instance using the supplied provider. Returns an Promise containing the actual Api instance. + * @param options options that is passed to the class contructor. Can be either [[ApiOptions]] or a + * provider (see the constructor arguments) + * @example + *
+ * + * ```javascript + * import Api from '@pezkuwi/api/promise'; + * + * Api.create().then(async (api) => { + * const timestamp = await api.query.timestamp.now(); + * + * console.log(`lastest block timestamp ${timestamp}`); + * }); + * ``` + */ + public static create (options?: ApiOptions): Promise { + const instance = new ApiPromise(options); + + if (options && options.throwOnConnect) { + return instance.isReadyOrError; + } + + // Swallow any rejections on isReadyOrError + // (in Node 15.x this creates issues, when not being looked at) + instance.isReadyOrError.catch(noop); + + return instance.isReady; + } + + /** + * @description Promise that resolves the first time we are connected and loaded + */ + public get isReady (): Promise { + return this.#isReadyPromise; + } + + /** + * @description Promise that resolves if we can connect, or reject if there is an error + */ + public get isReadyOrError (): Promise { + return this.#isReadyOrErrorPromise; + } + + /** + * @description Returns a clone of this ApiPromise instance (new underlying provider connection) + */ + public clone (): ApiPromise { + return new ApiPromise( + objectSpread({}, this._options, { source: this }) + ); + } + + /** + * @description Creates a combinator that can be used to combine the latest results from multiple subscriptions + * @param fns An array of function to combine, each in the form of `(cb: (value: void)) => void` + * @param callback A callback that will return an Array of all the values this combinator has been applied to + * @example + *
+ * + * ```javascript + * const address = '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFacT7'; + * + * // combines values from balance & nonce as it updates + * api.combineLatest([ + * api.rpc.chain.subscribeNewHeads, + * (cb) => api.query.system.account(address, cb) + * ], ([head, [balance, nonce]]) => { + * console.log(`#${head.number}: You have ${balance.free} units, with ${nonce} transactions sent`); + * }); + * ``` + */ + // eslint-disable-next-line @typescript-eslint/require-await + public async combineLatest (fns: (CombinatorFunction | [CombinatorFunction, ...any[]])[], callback: CombinatorCallback): UnsubscribePromise { + const combinator = new Combinator(fns, callback); + + return (): void => { + combinator.unsubscribe(); + }; + } +} diff --git a/packages/api/src/promise/Combinator.ts b/packages/api/src/promise/Combinator.ts new file mode 100644 index 0000000..d896cfb --- /dev/null +++ b/packages/api/src/promise/Combinator.ts @@ -0,0 +1,91 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Callback } from '@pezkuwi/types/types'; +import type { UnsubscribePromise } from '../types/index.js'; + +import { isFunction, noop } from '@pezkuwi/util'; + +export type CombinatorCallback = Callback; + +export type CombinatorFunction = (cb: Callback) => UnsubscribePromise; + +export class Combinator { + #allHasFired = false; + #callback: CombinatorCallback; + #fired: boolean[] = []; + #fns: CombinatorFunction[] = []; + #isActive = true; + #results: unknown[] = []; + #subscriptions: UnsubscribePromise[] = []; + + constructor (fns: (CombinatorFunction | [CombinatorFunction, ...unknown[]])[], callback: CombinatorCallback) { + this.#callback = callback; + + // eslint-disable-next-line @typescript-eslint/no-floating-promises, @typescript-eslint/require-await + this.#subscriptions = fns.map(async (input, index): UnsubscribePromise => { + const [fn, ...args] = Array.isArray(input) + ? input + : [input]; + + this.#fired.push(false); + this.#fns.push(fn); + + // Not quite 100% how to have a variable number at the front here + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/ban-types + return (fn as Function)(...args, this._createCallback(index)); + }); + } + + protected _allHasFired (): boolean { + this.#allHasFired ||= this.#fired.filter((hasFired): boolean => !hasFired).length === 0; + + return this.#allHasFired; + } + + protected _createCallback (index: number): (value: any) => void { + return (value: unknown): void => { + this.#fired[index] = true; + this.#results[index] = value; + + this._triggerUpdate(); + }; + } + + protected _triggerUpdate (): void { + if (!this.#isActive || !isFunction(this.#callback) || !this._allHasFired()) { + return; + } + + try { + Promise + .resolve(this.#callback(this.#results as T)) + .catch(noop); + } catch { + // swallow, we don't want the handler to trip us up + } + } + + public unsubscribe (): void { + if (!this.#isActive) { + return; + } + + this.#isActive = false; + + Promise + .all(this.#subscriptions.map(async (subscription): Promise => { + try { + const unsubscribe = await subscription; + + if (isFunction(unsubscribe)) { + unsubscribe(); + } + } catch { + // ignore + } + })).catch(() => { + // ignore, already ignored above, should never throw + }); + } +} diff --git a/packages/api/src/promise/Combinators.spec.ts b/packages/api/src/promise/Combinators.spec.ts new file mode 100644 index 0000000..8753645 --- /dev/null +++ b/packages/api/src/promise/Combinators.spec.ts @@ -0,0 +1,109 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { UnsubscribePromise } from '../types/index.js'; + +import { Combinator } from './Combinator.js'; + +describe('Combinator', (): void => { + let fns: ((value: any) => void)[] = []; + + // eslint-disable-next-line @typescript-eslint/require-await + const storeFn = async (cb: (value: any) => void): UnsubscribePromise => { + fns.push(cb); + + return (): void => undefined; + }; + + beforeEach((): void => { + fns = []; + }); + + it('triggers on all values', async (): Promise => { + await new Promise((resolve) => { + let count = 0; + const combinator = new Combinator( + [storeFn], + (value: any[]): void => { + expect(value[0]).toEqual(`test${count}`); + + count++; + + if (count === 3) { + resolve(true); + } + } + ); + + fns[0]('test0'); + fns[0]('test1'); + fns[0]('test2'); + + expect(combinator).toBeDefined(); + }); + }); + + it('combines values from 2 sources, firing when it has all results', async (): Promise => { + await new Promise((resolve) => { + const combinator = new Combinator( + [storeFn, storeFn], + (value: any[]): void => { + expect(value).toEqual(['test0', 'test1']); + + resolve(true); + } + ); + + fns[0]('test0'); + fns[1]('test1'); + + expect(combinator).toBeDefined(); + }); + }); + + it('combines values from 2 sources, allowing multiple updates', async (): Promise => { + await new Promise((resolve) => { + let count = 0; + const combinator = new Combinator( + [storeFn, storeFn], + (value: any[]): void => { + expect(value).toEqual( + count === 0 + ? ['test0', 'test1'] + : ['test2', 'test1']); + + count++; + + if (count === 2) { + resolve(true); + } + } + ); + + fns[0]('test0'); + fns[1]('test1'); + fns[0]('test2'); + + expect(combinator).toBeDefined(); + }); + }); + + // eslint-disable-next-line jest/expect-expect + it('unsubscribes as required', async (): Promise => { + await new Promise((resolve) => { + // eslint-disable-next-line @typescript-eslint/require-await + const mocker = () => Promise.resolve(resolve); + const combinator = new Combinator([ + mocker, + // eslint-disable-next-line @typescript-eslint/require-await + async (): UnsubscribePromise => (): void => undefined + ], (_: any[]): void => { + // ignore + }); + + combinator.unsubscribe(); + }); + }); +}); diff --git a/packages/api/src/promise/decorateMethod.ts b/packages/api/src/promise/decorateMethod.ts new file mode 100644 index 0000000..b21d639 --- /dev/null +++ b/packages/api/src/promise/decorateMethod.ts @@ -0,0 +1,118 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable, Subscription } from 'rxjs'; +import type { Callback, Codec } from '@pezkuwi/types/types'; +import type { DecorateFn, DecorateMethodOptions, ObsInnerType, StorageEntryPromiseOverloads, UnsubscribePromise, VoidFn } from '../types/index.js'; + +import { catchError, EMPTY, tap } from 'rxjs'; + +import { isFunction, nextTick } from '@pezkuwi/util'; + +interface Tracker { + reject: (value: Error) => Observable; + resolve: (value: T) => void; +} + +type CodecReturnType Observable> = + T extends (...args: any) => infer R + ? R extends Observable + ? ObsInnerType + : never + : never; + +// a Promise completion tracker, wrapping an isComplete variable that ensures +// that the promise only resolves once +export function promiseTracker (resolve: (value: T) => void, reject: (value: Error) => void): Tracker { + let isCompleted = false; + + return { + reject: (error: Error): Observable => { + if (!isCompleted) { + isCompleted = true; + + reject(error); + } + + return EMPTY; + }, + resolve: (value: T): void => { + if (!isCompleted) { + isCompleted = true; + + resolve(value); + } + } + }; +} + +// extract the arguments and callback params from a value array possibly containing a callback +function extractArgs (args: unknown[], needsCallback: boolean): [unknown[], Callback | undefined] { + const actualArgs = args.slice(); + + // If the last arg is a function, we pop it, put it into callback. + // actualArgs will then hold the actual arguments to be passed to `method` + const callback = (args.length && isFunction(args[args.length - 1])) + ? actualArgs.pop() as Callback + : undefined; + + // When we need a subscription, ensure that a valid callback is actually passed + if (needsCallback && !isFunction(callback)) { + throw new Error('Expected a callback to be passed with subscriptions'); + } + + return [actualArgs, callback]; +} + +// Decorate a call for a single-shot result - retrieve and then immediate unsubscribe +function decorateCall>> (method: M, args: unknown[]): Promise> { + return new Promise((resolve, reject): void => { + // single result tracker - either reject with Error or resolve with Codec result + const tracker = promiseTracker(resolve, reject); + + // encoding errors reject immediately, any result unsubscribes and resolves + const subscription: Subscription = method(...args) + .pipe( + catchError((error: Error) => tracker.reject(error)) + ) + .subscribe((result): void => { + tracker.resolve(result); + + nextTick(() => subscription.unsubscribe()); + }); + }); +} + +// Decorate a subscription where we have a result callback specified +function decorateSubscribe>> (method: M, args: unknown[], resultCb: Callback): UnsubscribePromise { + return new Promise((resolve, reject): void => { + // either reject with error or resolve with unsubscribe callback + const tracker = promiseTracker(resolve, reject); + + // errors reject immediately, the first result resolves with an unsubscribe promise, all results via callback + const subscription: Subscription = method(...args) + .pipe( + catchError((error: Error) => tracker.reject(error)), + tap(() => tracker.resolve(() => subscription.unsubscribe())) + ) + .subscribe((result): void => { + // queue result (back of queue to clear current) + nextTick(() => resultCb(result)); + }); + }); +} + +/** + * @description Decorate method for ApiPromise, where the results are converted to the Promise equivalent + */ +export function toPromiseMethod>> (method: M, options?: DecorateMethodOptions): StorageEntryPromiseOverloads { + const needsCallback = !!(options?.methodName && options.methodName.includes('subscribe')); + + return function (...args: unknown[]): Promise> | UnsubscribePromise { + const [actualArgs, resultCb] = extractArgs(args, needsCallback); + + return resultCb + ? decorateSubscribe(method, actualArgs, resultCb) + : decorateCall((options?.overrideNoSub as M) || method, actualArgs); + } as StorageEntryPromiseOverloads; +} diff --git a/packages/api/src/promise/index.spec.ts b/packages/api/src/promise/index.spec.ts new file mode 100644 index 0000000..4dff189 --- /dev/null +++ b/packages/api/src/promise/index.spec.ts @@ -0,0 +1,167 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { HexString } from '@pezkuwi/util/types'; +import type { SubmittableExtrinsic } from '../types/index.js'; + +import { createPair } from '@pezkuwi/keyring/pair'; +import { createTestKeyring } from '@pezkuwi/keyring/testing'; +import { MockProvider } from '@pezkuwi/rpc-provider/mock'; +import { TypeRegistry } from '@pezkuwi/types'; +import { hexToU8a } from '@pezkuwi/util'; + +import { SingleAccountSigner } from '../test/index.js'; +import { ApiPromise } from './index.js'; + +const TRANSFER_SIG = '0xbb861f9c905d860d303101dfd23a6042251721ca65fb1a58e317d628f08484767a3604afeaede64a4116d08daae3c285ea2ea97c8b6c7b3548e90df327c4e60c'; + +describe('ApiPromise', (): void => { + const registry = new TypeRegistry(); + const keyring = createTestKeyring({ type: 'ed25519' }); + const aliceEd = keyring.addPair( + createPair({ toSS58: keyring.encodeAddress, type: 'ed25519' }, { + publicKey: hexToU8a('0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee'), + secretKey: hexToU8a('0xabf8e5bdbe30c65656c0a3cbd181ff8a56294a69dfedd27982aace4a7690911588dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee') + }) + ); + let provider: MockProvider; + + async function createTransfer (): Promise<{ api: ApiPromise; transfer: SubmittableExtrinsic<'promise'> }> { + provider.subscriptions.state_subscribeStorage.lastValue = { + changes: [ + [ + '0x26aa394eea5630e07c48ae0c9558cef79c2f82b23e5fd031fb54c292794b4cc4d560eb8d00e57357cf76492334e43bb2ecaa9f28df6a8c4426d7b6090f7ad3c9', + '0x00' + ] + ] + }; + + const signer = new SingleAccountSigner(registry, aliceEd); + const api = await ApiPromise.create({ provider, registry, signer, throwOnConnect: true }); + const transfer = api.tx.balances.transferAllowDeath(keyring.getPair('0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e').address, 321564789876512345n); + + return { api, transfer: await transfer.signAsync(aliceEd.address, {}) }; + } + + beforeEach((): void => { + provider = new MockProvider(registry); + }); + + afterEach(async () => { + await provider.disconnect(); + }); + + describe('initialization', (): void => { + it('Create API instance with metadata map and makes the runtime, rpc, state & extrinsics available', async (): Promise => { + const rpcData = await provider.send('state_getMetadata', []); + const genesisHash = registry.createType('Hash', await provider.send('chain_getBlockHash', [])).toHex(); + const specVersion = 0; + const api = await ApiPromise.create({ metadata: { [`${genesisHash}-${specVersion}`]: rpcData }, provider, registry, throwOnConnect: true }); + + expect(api.genesisHash).toBeDefined(); + expect(api.runtimeMetadata).toBeDefined(); + expect(api.runtimeVersion).toBeDefined(); + expect(api.rpc).toBeDefined(); + expect(api.query).toBeDefined(); + expect(api.tx).toBeDefined(); + expect(api.derive).toBeDefined(); + + await api.disconnect(); + }); + + it('Create API instance without metadata and makes the runtime, rpc, state & extrinsics available', async (): Promise => { + const metadata = {}; + const api = await ApiPromise.create({ metadata, provider, registry, throwOnConnect: true }); + + expect(api.genesisHash).toBeDefined(); + expect(api.runtimeMetadata).toBeDefined(); + expect(api.runtimeVersion).toBeDefined(); + expect(api.rpc).toBeDefined(); + expect(api.query).toBeDefined(); + expect(api.tx).toBeDefined(); + expect(api.derive).toBeDefined(); + + await api.disconnect(); + }); + + // eslint-disable-next-line jest/expect-expect + it('Create API instance will error on failure to await ready', async (): Promise => { + class ErrorApiPromise extends ApiPromise { + constructor () { + super({ provider }); + } + + protected override _loadMeta (): Promise { + throw new Error('Simulate failure to load meta'); + } + } + + try { + const api = await ErrorApiPromise.create({ provider, throwOnConnect: true }); + + await api.disconnect(); + + throw new Error('Expected an error but none occurred.'); + } catch { + // Pass + } + }); + }); + + describe('api.sign', (): void => { + const ADDR = '5FA9nQDVg267DEd8m1ZypXLBnvN7SFxYwV7ndqSYGiN9TTpu'; + const TEST = { data: '0x0102030405060708090a0b0c0d0e0f112233445566778899aabbccddeeff' }; + const SIG = '0x659effefbbe5ab4d7136ebb5084b959eb424e32b862307371be4721ac2c46334245af4f1476c36c5e5aff04396c2fdd2ce561ec90382821d4aa071b559b1db0f'; + + it('signs data using a specified keyring', async (): Promise => { + const api = await ApiPromise.create({ provider, registry, throwOnConnect: true }); + const sig = await api.sign(aliceEd, TEST); + + expect(sig).toEqual(SIG); + + await api.disconnect(); + }); + + it('signs data using an external signer', async (): Promise => { + const api = await ApiPromise.create({ provider, registry, signer: new SingleAccountSigner(registry, aliceEd), throwOnConnect: true }); + const sig = await api.sign(ADDR, TEST); + + expect(sig).toEqual(SIG); + + await api.disconnect(); + }); + }); + + describe('decorator.signAsync', (): void => { + it('signs a transfer using an external signer', async (): Promise => { + const { api, transfer } = await createTransfer(); + + expect(transfer.signature.toHex()).toEqual(TRANSFER_SIG); + + await api.disconnect(); + }); + }); + + describe('api.tx(...)', (): void => { + it('allows construction from existing extrinsic', async (): Promise => { + const { api, transfer } = await createTransfer(); + + expect(api.tx(transfer.toHex()).signature.toHex()).toEqual(TRANSFER_SIG); + expect(api.tx(transfer).signature.toHex()).toEqual(TRANSFER_SIG); + + await api.disconnect(); + }); + }); + + describe('api.rpc(...)', (): void => { + it('allows sending rpc call', async (): Promise => { + const { api } = await createTransfer(); + + expect(await api.rpc('dev_echo', 'hello', 'world')).toEqual(['hello', 'world']); + + await api.disconnect(); + }); + }); +}); diff --git a/packages/api/src/promise/index.ts b/packages/api/src/promise/index.ts new file mode 100644 index 0000000..df10798 --- /dev/null +++ b/packages/api/src/promise/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { ApiPromise } from './Api.js'; +export { toPromiseMethod } from './decorateMethod.js'; diff --git a/packages/api/src/promise/types.ts b/packages/api/src/promise/types.ts new file mode 100644 index 0000000..b31e2d3 --- /dev/null +++ b/packages/api/src/promise/types.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SubmittableExtrinsic as SubmittableExtrinsicBase } from '../submittable/types.js'; +import type { QueryableStorageEntry as QueryableStorageEntryBase, SubmittableExtrinsicFunction as SubmittableExtrinsicFunctionBase } from '../types/index.js'; + +export type QueryableStorageEntry = QueryableStorageEntryBase<'promise'>; +export type SubmittableExtrinsic = SubmittableExtrinsicBase<'promise'>; +export type SubmittableExtrinsicFunction = SubmittableExtrinsicFunctionBase<'promise'>; diff --git a/packages/api/src/rx/Api.ts b/packages/api/src/rx/Api.ts new file mode 100644 index 0000000..a08a544 --- /dev/null +++ b/packages/api/src/rx/Api.ts @@ -0,0 +1,186 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { ApiOptions } from '../types/index.js'; + +import { from } from 'rxjs'; + +import { objectSpread } from '@pezkuwi/util'; + +import { ApiBase } from '../base/index.js'; +import { toRxMethod } from './decorateMethod.js'; + +/** + * # @pezkuwi/api/rx + * + * ## Overview + * + * @name ApiRx + * + * @description + * ApiRx is a powerful RxJS Observable wrapper around the RPC and interfaces on the Pezkuwi network. As a full Observable API, all interface calls return RxJS Observables, including the static `.create(...)`. In the same fashion and subscription-based methods return long-running Observables that update with the latest values. + * + * The API is well suited to real-time applications where the latest state is needed, unlocking the subscription-based features of Pezkuwi (and Bizinikiwi) clients. Some familiarity with RxJS is a requirement to use the API, however just understanding `.subscribe` and `.pipe` on Observables will unlock full-scale use thereof. + * + * @see [[ApiPromise]] + * + * ## Usage + * + * Making rpc calls - + *
+ * + * ```javascript + * import ApiRx from '@pezkuwi/api/rx'; + * + * // initialize via Promise & static create + * const api = await ApiRx.create().toPromise(); + * + * // make a call to retrieve the current network head + * api.rpc.chain.subscribeNewHeads().subscribe((header) => { + * console.log(`Chain is at #${header.number}`); + * }); + * ``` + *
+ * + * Subscribing to chain state - + *
+ * + * ```javascript + * import { combineLatest, pairwise, switchMap } from 'rxjs'; + * import { ApiRx, WsProvider } from '@pezkuwi/api'; + * + * + * // initialize a provider with a specific endpoint + * const provider = new WsProvider('wss://example.com:9944') + * + * // initialize via isReady & new with specific provider + * new ApiRx({ provider }) + * .isReady + * .pipe( + * switchMap((api) => + * combineLatest([ + * api.query.timestamp.blockPeriod(), + * api.query.timestamp.now().pipe(pairwise()) + * ]) + * ) + * ) + * .subscribe(([blockPeriod, timestamp]) => { + * const elapsed = timestamp[1].toNumber() - timestamp[0].toNumber(); + * console.log(`timestamp ${timestamp[1]} \nelapsed ${elapsed} \n(${blockPeriod}s target)`); + * }); + * ``` + *
+ * + * Submitting a transaction - + *
+ * + * ```javascript + * import { first, switchMap } from 'rxjs'; + * import ApiRx from '@pezkuwi/api/rx'; + * + * // import the test keyring (already has dev keys for Alice, Bob, Charlie, Eve & Ferdie) + * import testingPairs from '@pezkuwi/keyring/testingPairs'; + * const keyring = testingPairs(); + * + * // get api via Promise + * const api = await ApiRx.create().toPromise(); + * + * // retrieve nonce for the account + * api.query.system + * .account(keyring.alice.address) + * .pipe( + * first(), + * // pipe nonce into transfer + * switchMap(([nonce]) => + * api.tx.balances + * // create transfer + * .transferAllowDeath(keyring.bob.address, 12345) + * // sign the transaction + * .sign(keyring.alice, { nonce }) + * // send the transaction + * .send() + * ) + * ) + * // subscribe to overall result + * .subscribe(({ status }) => { + * if (status.isInBlock) { + * console.log('Completed at block hash', status.asFinalized.toHex()); + * } + * }); + * ``` + */ +export class ApiRx extends ApiBase<'rxjs'> { + #isReadyRx: Observable; + + /** + * @description Create an instance of the ApiRx class + * @param options Options to create an instance. Can be either [[ApiOptions]] or [[WsProvider]] + * @example + *
+ * + * ```javascript + * import { switchMap } from 'rxjs'; + * import Api from '@pezkuwi/api/rx'; + * + * new Api().isReady + * .pipe( + * switchMap((api) => + * api.rpc.chain.subscribeNewHeads() + * )) + * .subscribe((header) => { + * console.log(`new block #${header.number.toNumber()}`); + * }); + * ``` + */ + constructor (options?: ApiOptions) { + super(options, 'rxjs', toRxMethod); + + this.#isReadyRx = from>( + // You can create an observable from an event, however my mind groks this form better + new Promise((resolve): void => { + super.on('ready', () => resolve(this)); + }) + ); + } + + /** + * @description Creates an ApiRx instance using the supplied provider. Returns an Observable containing the actual Api instance. + * @param options options that is passed to the class constructor. Can be either [[ApiOptions]] or [[WsProvider]] + * @example + *
+ * + * ```javascript + * import { switchMap } from 'rxjs'; + * import Api from '@pezkuwi/api/rx'; + * + * Api.create() + * .pipe( + * switchMap((api) => + * api.rpc.chain.subscribeNewHeads() + * )) + * .subscribe((header) => { + * console.log(`new block #${header.number.toNumber()}`); + * }); + * ``` + */ + public static create (options?: ApiOptions): Observable { + return new ApiRx(options).isReady; + } + + /** + * @description Observable that returns the first time we are connected and loaded + */ + public get isReady (): Observable { + return this.#isReadyRx; + } + + /** + * @description Returns a clone of this ApiRx instance (new underlying provider connection) + */ + public clone (): ApiRx { + return new ApiRx( + objectSpread({}, this._options, { source: this }) + ); + } +} diff --git a/packages/api/src/rx/decorateMethod.ts b/packages/api/src/rx/decorateMethod.ts new file mode 100644 index 0000000..b69965f --- /dev/null +++ b/packages/api/src/rx/decorateMethod.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec } from '@pezkuwi/types/types'; +import type { DecorateFn } from '../types/index.js'; + +export function toRxMethod > (method: M): M { + return method; +} diff --git a/packages/api/src/rx/index.ts b/packages/api/src/rx/index.ts new file mode 100644 index 0000000..44574f2 --- /dev/null +++ b/packages/api/src/rx/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { ApiRx } from './Api.js'; +export { toRxMethod } from './decorateMethod.js'; diff --git a/packages/api/src/submittable/Result.ts b/packages/api/src/submittable/Result.ts new file mode 100644 index 0000000..2ac8ea1 --- /dev/null +++ b/packages/api/src/submittable/Result.ts @@ -0,0 +1,111 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BlockNumber, DispatchError, DispatchInfo, EventRecord, ExtrinsicStatus, Hash } from '@pezkuwi/types/interfaces'; +import type { AnyJson, ISubmittableResult } from '@pezkuwi/types/types'; +import type { SubmittableResultValue } from './types.js'; + +const recordIdentity = (record: EventRecord) => record; + +function filterAndApply (events: EventRecord[], section: string, methods: string[], onFound: (record: EventRecord) => T): T[] { + return events + .filter(({ event }) => + section === event.section && + methods.includes(event.method) + ) + .map((record) => onFound(record)); +} + +function getDispatchError ({ event: { data: [dispatchError] } }: EventRecord): DispatchError { + return dispatchError as DispatchError; +} + +function getDispatchInfo ({ event: { data, method } }: EventRecord): DispatchInfo { + return method === 'ExtrinsicSuccess' + ? data[0] as DispatchInfo + : data[1] as DispatchInfo; +} + +function extractError (events: EventRecord[] = []): DispatchError | undefined { + return filterAndApply(events, 'system', ['ExtrinsicFailed'], getDispatchError)[0]; +} + +function extractInfo (events: EventRecord[] = []): DispatchInfo | undefined { + return filterAndApply(events, 'system', ['ExtrinsicFailed', 'ExtrinsicSuccess'], getDispatchInfo)[0]; +} + +export class SubmittableResult implements ISubmittableResult { + readonly dispatchError?: DispatchError | undefined; + + readonly dispatchInfo?: DispatchInfo | undefined; + + readonly internalError?: Error | undefined; + + readonly events: EventRecord[]; + + readonly status: ExtrinsicStatus; + + readonly txHash: Hash; + + readonly txIndex?: number | undefined; + + readonly blockNumber?: BlockNumber | undefined; + + constructor ({ blockNumber, dispatchError, dispatchInfo, events, internalError, status, txHash, txIndex }: SubmittableResultValue) { + this.dispatchError = dispatchError || extractError(events); + this.dispatchInfo = dispatchInfo || extractInfo(events); + this.events = events || []; + this.internalError = internalError; + this.status = status; + this.txHash = txHash; + this.txIndex = txIndex; + this.blockNumber = blockNumber; + } + + public get isCompleted (): boolean { + return this.isError || this.status.isInBlock || this.status.isFinalized; + } + + public get isError (): boolean { + return this.status.isDropped || this.status.isFinalityTimeout || this.status.isInvalid || this.status.isUsurped; + } + + public get isFinalized (): boolean { + return this.status.isFinalized; + } + + public get isInBlock (): boolean { + return this.status.isInBlock; + } + + public get isWarning (): boolean { + return this.status.isRetracted; + } + + /** + * @description Filters EventRecords for the specified method & section (there could be multiple) + */ + public filterRecords (section: string, method: string | string[]): EventRecord[] { + return filterAndApply(this.events, section, Array.isArray(method) ? method : [method], recordIdentity); + } + + /** + * @description Finds an EventRecord for the specified method & section + */ + public findRecord (section: string, method: string | string[]): EventRecord | undefined { + return this.filterRecords(section, method)[0]; + } + + /** + * @description Creates a human representation of the output + */ + public toHuman (isExtended?: boolean): AnyJson { + return { + dispatchError: this.dispatchError?.toHuman(), + dispatchInfo: this.dispatchInfo?.toHuman(), + events: this.events.map((e) => e.toHuman(isExtended)), + internalError: this.internalError?.message.toString(), + status: this.status.toHuman(isExtended) + }; + } +} diff --git a/packages/api/src/submittable/createClass.ts b/packages/api/src/submittable/createClass.ts new file mode 100644 index 0000000..182fe43 --- /dev/null +++ b/packages/api/src/submittable/createClass.ts @@ -0,0 +1,438 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable no-dupe-class-members */ + +import type { Observable } from 'rxjs'; +import type { Address, ApplyExtrinsicResult, Call, Extrinsic, ExtrinsicEra, ExtrinsicStatus, Hash, Header, Index, RuntimeDispatchInfo, SignerPayload } from '@pezkuwi/types/interfaces'; +import type { Callback, Codec, CodecClass, ISubmittableResult, SignatureOptions } from '@pezkuwi/types/types'; +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { ApiBase } from '../base/index.js'; +import type { ApiInterfaceRx, ApiTypes, PromiseOrObs, SignerResult } from '../types/index.js'; +import type { AddressOrPair, SignerOptions, SubmittableDryRunResult, SubmittableExtrinsic, SubmittablePaymentResult, SubmittableResultResult, SubmittableResultSubscription } from './types.js'; + +import { catchError, first, map, mergeMap, of, switchMap, tap } from 'rxjs'; + +import { identity, isBn, isFunction, isNumber, isString, isU8a, objectSpread } from '@pezkuwi/util'; + +import { filterEvents, isKeyringPair } from '../util/index.js'; +import { SubmittableResult } from './Result.js'; + +interface SubmittableOptions { + api: ApiInterfaceRx; + apiType: ApiTypes; + blockHash?: Uint8Array | undefined; + decorateMethod: ApiBase['_decorateMethod']; +} + +interface UpdateInfo { + options: SignatureOptions; + updateId: number; + signedTransaction: HexString | Uint8Array | null; +} + +interface SignerInfo { + id: number; + signedTransaction?: HexString | Uint8Array; +} + +function makeEraOptions (api: ApiInterfaceRx, registry: Registry, partialOptions: Partial, { header, mortalLength, nonce }: { header: Header | null; mortalLength: number; nonce: Index }): SignatureOptions { + if (!header) { + if (partialOptions.era && !partialOptions.blockHash) { + throw new Error('Expected blockHash to be passed alongside non-immortal era options'); + } + + if (isNumber(partialOptions.era)) { + // since we have no header, it is immortal, remove any option overrides + // so we only supply the genesisHash and no era to the construction + delete partialOptions.era; + delete partialOptions.blockHash; + } + + return makeSignOptions(api, partialOptions, { nonce }); + } + + return makeSignOptions(api, partialOptions, { + blockHash: header.hash, + era: registry.createTypeUnsafe('ExtrinsicEra', [{ + current: header.number, + period: partialOptions.era || mortalLength + }]), + nonce + }); +} + +function makeSignAndSendOptions (partialOptions?: Partial | Callback, statusCb?: Callback): [Partial, Callback | undefined] { + let options: Partial = {}; + + if (isFunction(partialOptions)) { + statusCb = partialOptions; + } else { + options = objectSpread({}, partialOptions); + } + + return [options, statusCb]; +} + +function makeSignOptions (api: ApiInterfaceRx, partialOptions: Partial, extras: { blockHash?: Hash; era?: ExtrinsicEra; nonce?: Index }): SignatureOptions { + return objectSpread( + { blockHash: api.genesisHash, genesisHash: api.genesisHash }, + partialOptions, + extras, + { runtimeVersion: api.runtimeVersion, signedExtensions: api.registry.signedExtensions, version: api.extrinsicType } + ); +} + +function optionsOrNonce (partialOptions: Partial = {}): Partial { + return isBn(partialOptions) || isNumber(partialOptions) + ? { nonce: partialOptions } + : partialOptions; +} + +export function createClass ({ api, apiType, blockHash, decorateMethod }: SubmittableOptions): CodecClass> { + // an instance of the base extrinsic for us to extend + const ExtrinsicBase = api.registry.createClass('Extrinsic'); + const extrinsicInfoMap = new WeakMap, UpdateInfo>(); + + class Submittable extends ExtrinsicBase implements SubmittableExtrinsic { + readonly #ignoreStatusCb: boolean; + + #transformResult = identity; + + constructor (registry: Registry, extrinsic: Call | Extrinsic | Uint8Array | string) { + super(registry, extrinsic, { version: api.extrinsicType }); + + this.#ignoreStatusCb = apiType === 'rxjs'; + } + + public get hasDryRun (): boolean { + return isFunction(api.rpc.system?.dryRun); + } + + public get hasPaymentInfo (): boolean { + return isFunction(api.call.transactionPaymentApi?.queryInfo); + } + + // dry run an extrinsic + public dryRun (account: AddressOrPair, optionsOrHash?: Partial | Uint8Array | string): SubmittableDryRunResult { + if (!this.hasDryRun) { + throw new Error('The system.dryRun RPC call is not available in your environment'); + } + + if (blockHash || isString(optionsOrHash) || isU8a(optionsOrHash)) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return decorateMethod( + () => api.rpc.system.dryRun(this.toHex(), blockHash || optionsOrHash as string) + ); + } + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call + return decorateMethod( + (): Observable => + this.#observeSign(account, optionsOrHash).pipe( + switchMap(() => api.rpc.system.dryRun(this.toHex())) + ) + )(); + } + + // calculate the payment info for this transaction (if signed and submitted) + public paymentInfo (account: AddressOrPair, optionsOrHash?: Partial | Uint8Array | string): SubmittablePaymentResult { + if (!this.hasPaymentInfo) { + throw new Error('The transactionPaymentApi.queryInfo runtime call is not available in your environment'); + } + + if (blockHash || isString(optionsOrHash) || isU8a(optionsOrHash)) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return + return decorateMethod( + (): Observable => + api.callAt(blockHash || optionsOrHash as string).pipe( + switchMap((callAt): Observable => { + const u8a = this.toU8a(); + + return callAt.transactionPaymentApi.queryInfo(u8a, u8a.length); + }) + ) + ); + } + + const [allOptions] = makeSignAndSendOptions(optionsOrHash); + const address = isKeyringPair(account) ? account.address : account.toString(); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call + return decorateMethod( + (): Observable => + api.derive.tx.signingInfo(address, allOptions.nonce, allOptions.era).pipe( + first(), + switchMap((signingInfo): Observable => { + // setup our options (same way as in signAndSend) + const eraOptions = makeEraOptions(api, this.registry, allOptions, signingInfo); + const signOptions = makeSignOptions(api, eraOptions, {}); + + // 1. Don't use the internal objects inside the new tx (hence toU8a) + // 2. Don't override the data from existing signed extrinsics + // 3. Ensure that this object stays intact, with no new sign after operation + const u8a = api.tx(this.toU8a()).signFake(address, signOptions).toU8a(); + + return api.call.transactionPaymentApi.queryInfo(u8a, u8a.length); + }) + ) + )(); + } + + // send with an immediate Hash result + public send (): SubmittableResultResult; + + // send with a status callback + public send (statusCb: Callback): SubmittableResultSubscription; + + // send implementation for both immediate Hash and statusCb variants + public send (statusCb?: Callback): SubmittableResultResult | SubmittableResultSubscription { + const isSubscription = api.hasSubscriptions && (this.#ignoreStatusCb || !!statusCb); + const updatedInfo = extrinsicInfoMap.get(this); + + extrinsicInfoMap.delete(this); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call + return decorateMethod( + isSubscription + ? () => this.#observeSubscribe(updatedInfo) + : () => this.#observeSend(updatedInfo) + )(statusCb); + } + + /** + * @description Signs a transaction, returning `this` to allow chaining. E.g.: `signAsync(...).send()`. Like `.signAndSend` this will retrieve the nonce and blockHash to send the tx with. + */ + public signAsync (account: AddressOrPair, partialOptions?: Partial): PromiseOrObs { + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call + return decorateMethod( + (): Observable => + this.#observeSign(account, partialOptions).pipe( + map((info) => { + // If we got a full signed transaction from the signer, attach it + if (info.signedTransaction) { + const extrinsic = new Submittable(api.registry, info.signedTransaction); + + extrinsicInfoMap.set(this, info); + + return extrinsic as this; + } + + // Fallback if signer didn’t return signedTransaction + return this; + }) + ) + )(); + } + + // signAndSend with an immediate Hash result + public signAndSend (account: AddressOrPair, partialOptions?: Partial): SubmittableResultResult; + + // signAndSend with a subscription, i.e. callback provided + public signAndSend (account: AddressOrPair, statusCb: Callback): SubmittableResultSubscription; + + // signAndSend with options and a callback + public signAndSend (account: AddressOrPair, partialOptions: Partial, statusCb?: Callback): SubmittableResultSubscription; + + // signAndSend implementation for all 3 cases above + public signAndSend (account: AddressOrPair, partialOptions?: Partial | Callback, optionalStatusCb?: Callback): SubmittableResultResult | SubmittableResultSubscription { + const [options, statusCb] = makeSignAndSendOptions(partialOptions, optionalStatusCb); + const isSubscription = api.hasSubscriptions && (this.#ignoreStatusCb || !!statusCb); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-return,@typescript-eslint/no-unsafe-call + return decorateMethod( + (): Observable => ( + this.#observeSign(account, options).pipe( + switchMap((info): Observable | Observable => + isSubscription + ? this.#observeSubscribe(info) + : this.#observeSend(info) + ) + ) as Observable) // FIXME This is wrong, SubmittableResult is _not_ a codec + )(statusCb); + } + + // adds a transform to the result, applied before result is returned + withResultTransform (transform: (input: ISubmittableResult) => ISubmittableResult): this { + this.#transformResult = transform; + + return this; + } + + #observeSign = (account: AddressOrPair, partialOptions?: Partial): Observable => { + const address = isKeyringPair(account) ? account.address : account.toString(); + const options = optionsOrNonce(partialOptions); + + return api.derive.tx.signingInfo(address, options.nonce, options.era).pipe( + first(), + mergeMap(async (signingInfo): Promise => { + const eraOptions = makeEraOptions(api, this.registry, options, signingInfo); + let updateId = -1; + let signedTx = null; + + if (isKeyringPair(account)) { + this.sign(account, eraOptions); + } else { + const result = await this.#signViaSigner(address, eraOptions, signingInfo.header); + + updateId = result.id; + + if (result.signedTransaction) { + signedTx = result.signedTransaction; + } + } + + return { options: eraOptions, signedTransaction: signedTx, updateId }; + }) + ); + }; + + #observeStatus = (txHash: Hash, status: ExtrinsicStatus): Observable => { + if (!status.isFinalized && !status.isInBlock) { + return of(this.#transformResult(new SubmittableResult({ + status, + txHash + }))); + } + + const blockHash = status.isInBlock + ? status.asInBlock + : status.asFinalized; + + return api.derive.tx.events(blockHash).pipe( + map(({ block, events }): ISubmittableResult => + this.#transformResult(new SubmittableResult({ + ...filterEvents(txHash, block, events, status), + status, + txHash + })) + ), + catchError((internalError: Error) => + of(this.#transformResult(new SubmittableResult({ + internalError, + status, + txHash + }))) + ) + ); + }; + + #observeSend = (info?: UpdateInfo): Observable => { + return api.rpc.author.submitExtrinsic(info?.signedTransaction || this).pipe( + tap((hash): void => { + this.#updateSigner(hash, info); + }) + ); + }; + + #observeSubscribe = (info?: UpdateInfo): Observable => { + const txHash = this.hash; + + return api.rpc.author.submitAndWatchExtrinsic(info?.signedTransaction || this).pipe( + switchMap((status): Observable => + this.#observeStatus(txHash, status) + ), + tap((status): void => { + this.#updateSigner(status, info); + }) + ); + }; + + #signViaSigner = async (address: Address | string | Uint8Array, options: SignatureOptions, header: Header | null): Promise => { + const signer = options.signer || api.signer; + const allowCallDataAlteration = options.allowCallDataAlteration ?? true; + + if (!signer) { + throw new Error('No signer specified, either via api.setSigner or via sign options. You possibly need to pass through an explicit keypair for the origin so it can be used for signing.'); + } + + const payload = this.registry.createTypeUnsafe('SignerPayload', [objectSpread({}, options, { + address, + blockNumber: header ? header.number : 0, + method: this.method + })]); + let result: SignerResult; + + if (isFunction(signer.signPayload)) { + result = await signer.signPayload(payload.toPayload()); + + if (result.signedTransaction && !options.withSignedTransaction) { + throw new Error('The `signedTransaction` field may not be submitted when `withSignedTransaction` is disabled'); + } + + if (result.signedTransaction && options.withSignedTransaction) { + const ext = this.registry.createTypeUnsafe('Extrinsic', [result.signedTransaction]); + const newSignerPayload = this.registry.createTypeUnsafe('SignerPayload', [objectSpread({}, { + address, + assetId: ext.assetId && ext.assetId.isSome ? ext.assetId.toHex() : null, + blockHash: payload.blockHash, + blockNumber: header ? header.number : 0, + era: ext.era.toHex(), + genesisHash: payload.genesisHash, + metadataHash: ext.metadataHash ? ext.metadataHash.toHex() : null, + method: ext.method.toHex(), + mode: ext.mode ? ext.mode.toHex() : null, + nonce: ext.nonce.toHex(), + runtimeVersion: payload.runtimeVersion, + signedExtensions: payload.signedExtensions, + tip: ext.tip ? ext.tip.toHex() : null, + version: payload.version + })]); + + if (!ext.isSigned) { + throw new Error(`When using the signedTransaction field, the transaction must be signed. Recieved isSigned: ${ext.isSigned}`); + } + + if (!allowCallDataAlteration) { + this.#validateSignedTransaction(payload, ext); + } + + // This is only used for signAsync - signAndSend does not need to adjust the super payload or + // add the signature. + super.addSignature(address, result.signature, newSignerPayload.toPayload()); + + return { id: result.id, signedTransaction: result.signedTransaction }; + } + } else if (isFunction(signer.signRaw)) { + result = await signer.signRaw(payload.toRaw()); + } else { + throw new Error('Invalid signer interface, it should implement either signPayload or signRaw (or both)'); + } + + // Here we explicitly call `toPayload()` again instead of working with an object + // (reference) as passed to the signer. This means that we are sure that the + // payload data is not modified from our inputs, but the signer + super.addSignature(address, result.signature, payload.toPayload()); + + return { id: result.id }; + }; + + #updateSigner = (status: Hash | ISubmittableResult, info?: UpdateInfo): void => { + if (info && (info.updateId !== -1)) { + const { options, updateId } = info; + const signer = options.signer || api.signer; + + if (signer && isFunction(signer.update)) { + signer.update(updateId, status); + } + } + }; + + /** + * When a signer includes `signedTransaction` within the SignerResult this will validate + * specific fields within the signed extrinsic against the original payload that was passed + * to the signer. + */ + #validateSignedTransaction = (signerPayload: SignerPayload, signedExt: Extrinsic): void => { + const payload = signerPayload.toPayload(); + const errMsg = (field: string) => `signAndSend: ${field} does not match the original payload`; + + if (payload.method !== signedExt.method.toHex()) { + throw new Error(errMsg('call data')); + } + }; + } + + return Submittable; +} diff --git a/packages/api/src/submittable/createSubmittable.ts b/packages/api/src/submittable/createSubmittable.ts new file mode 100644 index 0000000..8492db9 --- /dev/null +++ b/packages/api/src/submittable/createSubmittable.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Call, Extrinsic } from '@pezkuwi/types/interfaces'; +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { ApiBase } from '../base/index.js'; +import type { ApiInterfaceRx, ApiTypes } from '../types/index.js'; +import type { SubmittableExtrinsic } from './types.js'; + +import { createClass } from './createClass.js'; + +type Creator = (extrinsic: Call | Uint8Array | string) => SubmittableExtrinsic; + +export function createSubmittable (apiType: ApiTypes, api: ApiInterfaceRx, decorateMethod: ApiBase['_decorateMethod'], registry?: Registry, blockHash?: Uint8Array): Creator { + const Submittable = createClass({ api, apiType, blockHash, decorateMethod }); + + return (extrinsic: Call | Extrinsic | Uint8Array | string): SubmittableExtrinsic => + new Submittable(registry || api.registry, extrinsic); +} diff --git a/packages/api/src/submittable/index.ts b/packages/api/src/submittable/index.ts new file mode 100644 index 0000000..ca3dfe7 --- /dev/null +++ b/packages/api/src/submittable/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { createSubmittable } from './createSubmittable.js'; +export { SubmittableResult } from './Result.js'; diff --git a/packages/api/src/submittable/types.ts b/packages/api/src/submittable/types.ts new file mode 100644 index 0000000..709edc1 --- /dev/null +++ b/packages/api/src/submittable/types.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export type { AddressOrPair, SignerOptions, SubmittableDryRunResult, SubmittableExtrinsic, SubmittablePaymentResult, SubmittableResultResult, SubmittableResultSubscription, SubmittableResultValue } from '@pezkuwi/api-base/types'; diff --git a/packages/api/src/test/SingleAccountSigner.ts b/packages/api/src/test/SingleAccountSigner.ts new file mode 100644 index 0000000..a132cde --- /dev/null +++ b/packages/api/src/test/SingleAccountSigner.ts @@ -0,0 +1,53 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { KeyringPair } from '@pezkuwi/keyring/types'; +import type { Registry, SignerPayloadJSON, SignerPayloadRaw } from '@pezkuwi/types/types'; +import type { Signer, SignerResult } from '../types/index.js'; + +import { hexToU8a, objectSpread, u8aToHex } from '@pezkuwi/util'; + +let id = 0; + +export class SingleAccountSigner implements Signer { + readonly #keyringPair: KeyringPair; + readonly #registry: Registry; + readonly #signDelay: number; + + constructor (registry: Registry, keyringPair: KeyringPair, signDelay = 0) { + this.#keyringPair = keyringPair; + this.#registry = registry; + this.#signDelay = signDelay; + } + + public async signPayload (payload: SignerPayloadJSON): Promise { + if (payload.address !== this.#keyringPair.address) { + throw new Error('Signer does not have the keyringPair'); + } + + return new Promise((resolve): void => { + setTimeout((): void => { + const signed = this.#registry.createType('ExtrinsicPayload', payload, { version: payload.version }).sign(this.#keyringPair); + + resolve(objectSpread({ id: ++id }, signed)); + }, this.#signDelay); + }); + } + + public async signRaw ({ address, data }: SignerPayloadRaw): Promise { + if (address !== this.#keyringPair.address) { + throw new Error('Signer does not have the keyringPair'); + } + + return new Promise((resolve): void => { + setTimeout((): void => { + const signature = u8aToHex(this.#keyringPair.sign(hexToU8a(data))); + + resolve({ + id: ++id, + signature + }); + }, this.#signDelay); + }); + } +} diff --git a/packages/api/src/test/index.ts b/packages/api/src/test/index.ts new file mode 100644 index 0000000..0b68651 --- /dev/null +++ b/packages/api/src/test/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './logEvents.js'; +export * from './SingleAccountSigner.js'; diff --git a/packages/api/src/test/logEvents.ts b/packages/api/src/test/logEvents.ts new file mode 100644 index 0000000..d7952b3 --- /dev/null +++ b/packages/api/src/test/logEvents.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { EventRecord } from '@pezkuwi/types/interfaces'; +import type { SubmittableResult } from '../index.js'; + +// log all events for the transfers, calling done() when finalized +export const logEvents = (done: () => Record): (r: SubmittableResult) => void => + ({ events, status }: SubmittableResult): void => { + console.log('Transaction status:', status.type); + + if (status.isInBlock) { + console.log('Completed at block hash', status.value.toHex()); + console.log('Events:'); + + events.forEach(({ event: { data, method, section }, phase }: EventRecord): void => { + console.log('\t', phase.toString(), `: ${section}.${method}`, data.toString()); + }); + + if (events.length) { + done(); + } + } + }; diff --git a/packages/api/src/types/calls.ts b/packages/api/src/types/calls.ts new file mode 100644 index 0000000..5305df1 --- /dev/null +++ b/packages/api/src/types/calls.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from '@pezkuwi/api-base/types/calls'; diff --git a/packages/api/src/types/consts.ts b/packages/api/src/types/consts.ts new file mode 100644 index 0000000..bf5517c --- /dev/null +++ b/packages/api/src/types/consts.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from '@pezkuwi/api-base/types/consts'; diff --git a/packages/api/src/types/errors.ts b/packages/api/src/types/errors.ts new file mode 100644 index 0000000..9b15f4c --- /dev/null +++ b/packages/api/src/types/errors.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from '@pezkuwi/api-base/types/errors'; diff --git a/packages/api/src/types/events.ts b/packages/api/src/types/events.ts new file mode 100644 index 0000000..3ec2f1a --- /dev/null +++ b/packages/api/src/types/events.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from '@pezkuwi/api-base/types/events'; diff --git a/packages/api/src/types/index.ts b/packages/api/src/types/index.ts new file mode 100644 index 0000000..175190a --- /dev/null +++ b/packages/api/src/types/index.ts @@ -0,0 +1,137 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ApiTypes, DeriveCustom, QueryableStorageMulti } from '@pezkuwi/api-base/types'; +import type { ApiInterfaceRx as ApiInterfaceBase } from '@pezkuwi/api-base/types/api'; +import type { QueryableCalls } from '@pezkuwi/api-base/types/calls'; +import type { QueryableConsts } from '@pezkuwi/api-base/types/consts'; +import type { DecoratedErrors } from '@pezkuwi/api-base/types/errors'; +import type { DecoratedEvents } from '@pezkuwi/api-base/types/events'; +import type { QueryableStorage } from '@pezkuwi/api-base/types/storage'; +import type { ProviderInterface, ProviderInterfaceEmitted } from '@pezkuwi/rpc-provider/types'; +import type { ExtDef } from '@pezkuwi/types/extrinsic/signedExtensions/types'; +import type { Call, Extrinsic, Hash, RuntimeVersionPartial } from '@pezkuwi/types/interfaces'; +import type { CallFunction, DefinitionRpc, DefinitionRpcSub, DefinitionsCall, RegisteredTypes, Registry, RegistryError, SignatureOptions, Signer } from '@pezkuwi/types/types'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { ApiBase } from '../base/index.js'; +import type { SubmittableExtrinsic } from '../types/submittable.js'; +import type { AllDerives } from '../util/decorate.js'; + +// types +export type { Signer, SignerResult } from '@pezkuwi/types/types'; + +// all named +export { ApiBase } from '../base/index.js'; + +// all starred +// eslint-disable-next-line import/export +export * from '@pezkuwi/api/types/calls'; +// eslint-disable-next-line import/export +export * from '@pezkuwi/api/types/consts'; +// eslint-disable-next-line import/export +export * from '@pezkuwi/api/types/errors'; +// eslint-disable-next-line import/export +export * from '@pezkuwi/api/types/events'; +// eslint-disable-next-line import/export +export * from '@pezkuwi/api/types/storage'; +// eslint-disable-next-line import/export +export * from '@pezkuwi/api/types/submittable'; +// eslint-disable-next-line import/export +export * from '@pezkuwi/api-base/types'; + +// A smaller interface of ApiRx, used in derive and in SubmittableExtrinsic +export interface ApiInterfaceRx extends ApiInterfaceBase { + derive: AllDerives<'rxjs'>; +} + +export interface ApiOptions extends RegisteredTypes { + /** + * @description Add custom derives to be injected + */ + derives?: DeriveCustom; + /** + * @description Control the initialization of the wasm libraries. When not specified, it defaults to `true`, initializing the wasm libraries, set to `false` to not initialize wasm. (No sr25519 support) + */ + initWasm?: boolean; + /** + * @description Controls the checking of storage values once they have been contructed. When not specified this defaults to `true`. Set to `false` to forgo any checking on storage results. + */ + isPedantic?: boolean; + /** + * @description pre-bundles is a map of 'genesis hash and runtime spec version' as key to a metadata hex string + * if genesis hash and runtime spec version matches, then use metadata, else fetch it from chain + */ + metadata?: Record; + /** + * @description Don't display any warnings on initialization (missing RPC methods & runtime calls) + */ + noInitWarn?: boolean; + /** + * @description Transport Provider from rpc-provider. If not specified, it will default to + * connecting to a WsProvider connecting localhost with the default port, i.e. `ws://127.0.0.1:9944` + */ + provider?: ProviderInterface; + /** + * @description A type registry to use along with this instance + */ + registry?: Registry; + /** + * @description User-defined RPC methods + */ + rpc?: Record>; + /** + * @description Defines the size of the cache for the rpc-core. Defaults to 1024 * 10 * 10. + */ + rpcCacheCapacity?: number; + /** + * @description Overrides for state_call usage (this will be removed in some future version) + */ + runtime?: DefinitionsCall; + /** + * @description Any chain-specific signed extensions that are now well-known + */ + signedExtensions?: ExtDef; + /** + * @description An external signer which will be used to sign extrinsic when account passed in is not KeyringPair + */ + signer?: Signer; + /** + * @description The source object to use for runtime information (only used when cloning) + */ + source?: ApiBase; + /** + * @description Throws an error when the initial connection fails (same as isReadyOrError) + */ + throwOnConnect?: boolean; + /** + * @description Throws an error when some types are unknown (useful with throwOnConnect) + */ + throwOnUnknown?: boolean; +} + +export type ApiInterfaceEvents = ProviderInterfaceEmitted | 'ready' | 'decorated'; + +export interface SignerOptions extends SignatureOptions { + blockNumber: BN; + genesisHash: Hash; +} + +export interface ApiDecoration { + call: QueryableCalls; + consts: QueryableConsts; + errors: DecoratedErrors; + events: DecoratedEvents; + query: QueryableStorage; + registry: Registry; + runtimeVersion: RuntimeVersionPartial; + rx: { + call: QueryableCalls<'rxjs'>; + query: QueryableStorage<'rxjs'>; + }; + tx: (extrinsic: Call | Extrinsic | Uint8Array | string) => SubmittableExtrinsic; + + findCall (callIndex: Uint8Array | string): CallFunction; + findError (errorIndex: Uint8Array | string): RegistryError; + queryMulti: QueryableStorageMulti; +} diff --git a/packages/api/src/types/storage.ts b/packages/api/src/types/storage.ts new file mode 100644 index 0000000..fb80614 --- /dev/null +++ b/packages/api/src/types/storage.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from '@pezkuwi/api-base/types/storage'; diff --git a/packages/api/src/types/submittable.ts b/packages/api/src/types/submittable.ts new file mode 100644 index 0000000..e4a89dc --- /dev/null +++ b/packages/api/src/types/submittable.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/api-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from '@pezkuwi/api-base/types/submittable'; diff --git a/packages/api/src/util/augmentObject.spec.ts b/packages/api/src/util/augmentObject.spec.ts new file mode 100644 index 0000000..0318376 --- /dev/null +++ b/packages/api/src/util/augmentObject.spec.ts @@ -0,0 +1,54 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { augmentObject } from './augmentObject.js'; + +describe('augmentObject', (): void => { + let spy: ReturnType; + + beforeEach((): void => { + spy = jest.spyOn(console, 'warn'); + }); + + afterEach((): void => { + spy.mockRestore(); + }); + + it('logs added/removed sections and methods', (): void => { + augmentObject( + 'test', + { bar: { b: 1 }, foo: { d: 1, f: 1 }, new: { z: 1 } }, + { bar: { a: 1, c: 1 }, baz: { a: 1 }, foo: { c: 1, f: 1 } } + ); + + expect(spy).toHaveBeenCalledWith( + expect.anything(), + expect.stringMatching(/API\/AUGMENT/), + 'api.test: Found 1 added and 1 removed modules:\n\t added: new\n\tremoved: baz' + ); + expect(spy).toHaveBeenCalledWith( + expect.anything(), + expect.stringMatching(/API\/AUGMENT/), + 'api.test: Found 2 added and 3 removed calls:\n\t added: bar.b, foo.d\n\tremoved: bar.a, bar.c, foo.c' + ); + }); + + it('copies sections to the dest', (): void => { + const src = { bar: { b: 1 }, foo: { a: 1 } }; + + expect(augmentObject('test', src, {})).toEqual(src); + }); + + it('adds fields to existing sections', (): void => { + const src = { bar: { b: 1 }, foo: { a: 1 } }; + const dst = { baz: { c: 1 }, foo: { b: 2 } }; + + expect(augmentObject('test', src, dst)).toEqual({ + bar: { b: 1 }, + baz: { c: 1 }, + foo: { a: 1, b: 2 } + }); + }); +}); diff --git a/packages/api/src/util/augmentObject.ts b/packages/api/src/util/augmentObject.ts new file mode 100644 index 0000000..2ba4acf --- /dev/null +++ b/packages/api/src/util/augmentObject.ts @@ -0,0 +1,112 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { lazyMethods, logger, objectClear } from '@pezkuwi/util'; + +type Sections = Record>; + +type Methods = Record; + +type StringsStrings = [string[], string[]]; + +const l = logger('api/augment'); + +function logLength (type: 'added' | 'removed', values: string[], and: string[] = []): string { + return values.length + ? ` ${values.length} ${type}${and.length ? ' and' : ''}` + : ''; +} + +function logValues (type: 'added' | 'removed', values: string[]): string { + return values.length + ? `\n\t${type.padStart(7)}: ${values.sort().join(', ')}` + : ''; +} + +// log details to console +function warn (prefix: string, type: 'calls' | 'modules', [added, removed]: StringsStrings): void { + if (added.length || removed.length) { + l.warn(`api.${prefix}: Found${logLength('added', added, removed)}${logLength('removed', removed)} ${type}:${logValues('added', added)}${logValues('removed', removed)}`); + } +} + +function findSectionExcludes (a: string[], b: string[]): string[] { + return a.filter((s) => !b.includes(s)); +} + +function findSectionIncludes (a: string[], b: string[]): string[] { + return a.filter((s) => b.includes(s)); +} + +function extractSections (src: Sections, dst: Sections): StringsStrings { + const srcSections = Object.keys(src); + const dstSections = Object.keys(dst); + + return [ + findSectionExcludes(srcSections, dstSections), + findSectionExcludes(dstSections, srcSections) + ]; +} + +function findMethodExcludes (src: Sections, dst: Sections): string[] { + const srcSections = Object.keys(src); + const dstSections = findSectionIncludes(Object.keys(dst), srcSections); + const excludes: string[] = []; + + for (let s = 0, scount = dstSections.length; s < scount; s++) { + const section = dstSections[s]; + const srcMethods = Object.keys(src[section]); + const dstMethods = Object.keys(dst[section]); + + for (let d = 0, mcount = dstMethods.length; d < mcount; d++) { + const method = dstMethods[d]; + + if (!srcMethods.includes(method)) { + excludes.push(`${section}.${method}`); + } + } + } + + return excludes; +} + +function extractMethods (src: Sections, dst: Sections): StringsStrings { + return [ + findMethodExcludes(dst, src), + findMethodExcludes(src, dst) + ]; +} + +/** + * @description Takes a decorated api section (e.g. api.tx) and augment it with the details. It does not override what is + * already available, but rather just adds new missing items into the result object. + * @internal + */ +export function augmentObject (prefix: string | null, src: Sections, dst: Sections, fromEmpty = false): Sections { + fromEmpty && objectClear(dst); + + // NOTE: This part is slightly problematic since it will get the + // values for at least all the sections and the names of the methods + // (Since methods won't be decorated before lazy, this _may_ be ok) + if (prefix && Object.keys(dst).length) { + warn(prefix, 'modules', extractSections(src, dst)); + warn(prefix, 'calls', extractMethods(src, dst)); + } + + const sections = Object.keys(src); + + for (let i = 0, count = sections.length; i < count; i++) { + const section = sections[i]; + const methods = src[section]; + + // We don't set here with a lazy interface, we decorate based + // on the top-level structure (this bypasses adding lazy onto lazy) + if (!dst[section]) { + dst[section] = {}; + } + + lazyMethods(dst[section], Object.keys(methods), (m: string) => methods[m]); + } + + return dst; +} diff --git a/packages/api/src/util/decorate.ts b/packages/api/src/util/decorate.ts new file mode 100644 index 0000000..97f5f85 --- /dev/null +++ b/packages/api/src/util/decorate.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExactDerive } from '@pezkuwi/api-derive'; +import type { AnyFunction } from '@pezkuwi/types/types'; +import type { ApiTypes, DecorateMethod, MethodResult } from '../types/index.js'; + +import { lazyDeriveSection } from '@pezkuwi/api-derive'; + +type AnyDeriveSection = Record; + +// Most generic typings for `api.derive.*.*` +type AnyDerive = Record; + +// Exact typings for a particular section `api.derive.section.*` +type DeriveSection = { + [M in keyof Section]: MethodResult +}; + +// Exact typings for all sections `api.derive.*.*` +export type AllDerives = { + [S in keyof ExactDerive]: DeriveSection +}; + +/** + * This is a section decorator which keeps all type information. + */ +export function decorateDeriveSections (decorateMethod: DecorateMethod, derives: AnyDerive): AllDerives { + const getKeys = (s: string) => + Object.keys(derives[s]); + + const creator = (s: string, m: string) => + decorateMethod(derives[s][m]) as AnyFunction; + + const result: AnyDerive = {}; + const names = Object.keys(derives); + + for (let i = 0, count = names.length; i < count; i++) { + lazyDeriveSection(result, names[i], getKeys, creator); + } + + return result as AllDerives; +} diff --git a/packages/api/src/util/filterEvents.ts b/packages/api/src/util/filterEvents.ts new file mode 100644 index 0000000..8ff542c --- /dev/null +++ b/packages/api/src/util/filterEvents.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BlockNumber, EventRecord, ExtrinsicStatus, H256, SignedBlock } from '@pezkuwi/types/interfaces'; + +import { isCompact } from '@pezkuwi/util'; + +import { l } from './logging.js'; + +export function filterEvents (txHash: H256, { block: { extrinsics, header } }: SignedBlock, allEvents: EventRecord[], status: ExtrinsicStatus): { events?: EventRecord[], txIndex?: number, blockNumber?: BlockNumber } { + // extrinsics to hashes + for (const [txIndex, x] of extrinsics.entries()) { + if (x.hash.eq(txHash)) { + return { + blockNumber: isCompact(header.number) ? header.number.unwrap() : header.number, + events: allEvents.filter(({ phase }) => + phase.isApplyExtrinsic && + phase.asApplyExtrinsic.eqn(txIndex) + ), + txIndex + }; + } + } + + // if we do get the block after finalized, it _should_ be there + // only warn on filtering with isInBlock (finalization finalizes after) + if (status.isInBlock) { + const allHashes = extrinsics.map((x) => x.hash.toHex()); + + l.warn(`block ${header.hash.toHex()}: Unable to find extrinsic ${txHash.toHex()} inside ${allHashes.join(', ')}`); + } + + return {}; +} diff --git a/packages/api/src/util/index.ts b/packages/api/src/util/index.ts new file mode 100644 index 0000000..5de3d06 --- /dev/null +++ b/packages/api/src/util/index.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { filterEvents } from './filterEvents.js'; +export { isKeyringPair } from './isKeyringPair.js'; +export { l } from './logging.js'; + +// all starred +export * from './decorate.js'; diff --git a/packages/api/src/util/isKeyringPair.ts b/packages/api/src/util/isKeyringPair.ts new file mode 100644 index 0000000..de14c1e --- /dev/null +++ b/packages/api/src/util/isKeyringPair.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AccountId, Address } from '@pezkuwi/types/interfaces'; +import type { IKeyringPair } from '@pezkuwi/types/types'; + +import { isFunction } from '@pezkuwi/util'; + +export function isKeyringPair (account: string | IKeyringPair | AccountId | Address): account is IKeyringPair { + return isFunction((account as IKeyringPair).sign); +} diff --git a/packages/api/src/util/logging.ts b/packages/api/src/util/logging.ts new file mode 100644 index 0000000..5d87209 --- /dev/null +++ b/packages/api/src/util/logging.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { logger } from '@pezkuwi/util'; + +export const l = /*#__PURE__*/ logger('api/util'); diff --git a/packages/api/src/util/validate.spec.ts b/packages/api/src/util/validate.spec.ts new file mode 100644 index 0000000..697b684 --- /dev/null +++ b/packages/api/src/util/validate.spec.ts @@ -0,0 +1,72 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { decorateStorage, Metadata, TypeRegistry } from '@pezkuwi/types'; +import metaStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { extractStorageArgs } from './validate.js'; + +describe('extractStorageArgs', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metaStatic); + + registry.setMetadata(metadata); + + const storage = decorateStorage(registry, metadata.asLatest, metadata.version); + + it('validates no-arg plain', (): void => { + expect( + extractStorageArgs(registry, storage['timestamp']['now'], []) + ).toEqual([storage['timestamp']['now'], []]); + }); + + it('validates no-arg plain (with undefined, undefined)', (): void => { + expect( + extractStorageArgs(registry, storage['timestamp']['now'], [undefined, undefined]) + ).toEqual([storage['timestamp']['now'], []]); + }); + + it('validates no-arg plain (failing when there are args)', (): void => { + expect( + () => extractStorageArgs(registry, storage['timestamp']['now'], [123, 456]) + ).toThrow('timestamp.now() does not take any arguments, 2 found'); + }); + + it('validates map, 1 arg', (): void => { + expect( + extractStorageArgs(registry, storage['staking']['payee'], ['abc']) + ).toEqual([storage['staking']['payee'], ['abc']]); + }); + + it('validates map, 1 arg (failing with no args)', (): void => { + expect( + () => extractStorageArgs(registry, storage['staking']['payee'], []) + ).toThrow('staking.payee(AccountId32) is a map, requiring 1 arguments, 0 found'); + }); + + it('validates map, 1 arg (failing with more args)', (): void => { + expect( + () => extractStorageArgs(registry, storage['staking']['payee'], ['abc', 'def']) + ).toThrow('staking.payee(AccountId32) is a map, requiring 1 arguments, 2 found'); + }); + + it('validates doublemap, 2 args', (): void => { + expect( + extractStorageArgs(registry, storage['staking']['erasStakers'], [1, '0x1234']) + ).toEqual([storage['staking']['erasStakers'], [1, '0x1234']]); + }); + + it('validates doublemap, 2 args (failing with no args)', (): void => { + expect( + () => extractStorageArgs(registry, storage['staking']['erasStakers'], []) + ).toThrow('staking.erasStakers(u32, AccountId32) is a map, requiring 2 arguments, 0 found'); + }); + + it('validates doublemap, 2 args (failing with 1 arg)', (): void => { + expect( + () => extractStorageArgs(registry, storage['staking']['erasStakers'], [123]) + ).toThrow('staking.erasStakers(u32, AccountId32) is a map, requiring 2 arguments, 1 found'); + }); +}); diff --git a/packages/api/src/util/validate.ts b/packages/api/src/util/validate.ts new file mode 100644 index 0000000..f6df5b0 --- /dev/null +++ b/packages/api/src/util/validate.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SiLookupTypeId } from '@pezkuwi/types/interfaces'; +import type { StorageEntry } from '@pezkuwi/types/primitive/types'; +import type { Registry } from '@pezkuwi/types/types'; + +import { isUndefined } from '@pezkuwi/util'; + +function sig ({ lookup }: Registry, { method, section }: StorageEntry, args: SiLookupTypeId[]): string { + return `${section}.${method}(${args.map((a) => lookup.getTypeDef(a).type).join(', ')})`; +} + +// sets up the arguments in the form of [creator, args] ready to be used in a storage +// call. Additionally, it verifies that the correct number of arguments have been passed +export function extractStorageArgs (registry: Registry, creator: StorageEntry, _args: unknown[]): [StorageEntry, unknown[]] { + const args = _args.filter((a) => !isUndefined(a)); + + if (creator.meta.type.isPlain) { + if (args.length !== 0) { + throw new Error(`${sig(registry, creator, [])} does not take any arguments, ${args.length} found`); + } + } else { + const { hashers, key } = creator.meta.type.asMap; + const keys = hashers.length === 1 + ? [key] + : registry.lookup.getSiType(key).def.asTuple.map((t) => t); + + if (args.length !== keys.length) { + throw new Error(`${sig(registry, creator, keys)} is a map, requiring ${keys.length} arguments, ${args.length} found`); + } + } + + // pass as tuple + return [creator, args]; +} diff --git a/packages/api/tsconfig.build.json b/packages/api/tsconfig.build.json new file mode 100644 index 0000000..d8534c9 --- /dev/null +++ b/packages/api/tsconfig.build.json @@ -0,0 +1,25 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/checkTypes.manual.ts", + "**/mod.ts", + "**/*.spec.ts", + "**/test/**/*" + ], + "references": [ + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../api-derive/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../rpc-core/tsconfig.build.json" }, + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-known/tsconfig.build.json" } + ] +} diff --git a/packages/api/tsconfig.spec.json b/packages/api/tsconfig.spec.json new file mode 100644 index 0000000..10ee739 --- /dev/null +++ b/packages/api/tsconfig.spec.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/checkTypes.manual.ts", + "**/*.spec.ts", + "**/test/**/*" + ], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../api-base/tsconfig.build.json" }, + { "path": "../api-derive/tsconfig.build.json" }, + { "path": "../rpc-core/tsconfig.build.json" }, + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-known/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" } + ] +} diff --git a/packages/rpc-augment/README.md b/packages/rpc-augment/README.md new file mode 100644 index 0000000..7b97108 --- /dev/null +++ b/packages/rpc-augment/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/rpc-augment + +Generated augmentation. diff --git a/packages/rpc-augment/package.json b/packages/rpc-augment/package.json new file mode 100644 index 0000000..11640fa --- /dev/null +++ b/packages/rpc-augment/package.json @@ -0,0 +1,30 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "RPC generated augmentation", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/rpc-augment#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/rpc-augment", + "repository": { + "directory": "packages/rpc-augment", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/rpc-core": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "tslib": "^2.8.1" + } +} diff --git a/packages/rpc-augment/src/augment/index.ts b/packages/rpc-augment/src/augment/index.ts new file mode 100644 index 0000000..dbde740 --- /dev/null +++ b/packages/rpc-augment/src/augment/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/rpc-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './jsonrpc.js'; diff --git a/packages/rpc-augment/src/augment/jsonrpc.ts b/packages/rpc-augment/src/augment/jsonrpc.ts new file mode 100644 index 0000000..f5beaa4 --- /dev/null +++ b/packages/rpc-augment/src/augment/jsonrpc.ts @@ -0,0 +1,621 @@ +// Auto-generated via `yarn polkadot-types-from-chain`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/rpc-core/types/jsonrpc'; + +import type { AugmentedRpc } from '@pezkuwi/rpc-core/types'; +import type { Metadata, StorageKey } from '@pezkuwi/types'; +import type { Bytes, HashMap, Json, Null, Option, Text, U256, U64, Vec, bool, f64, u32, u64 } from '@pezkuwi/types-codec'; +import type { AnyNumber, Codec } from '@pezkuwi/types-codec/types'; +import type { ExtrinsicOrHash, ExtrinsicStatus } from '@pezkuwi/types/interfaces/author'; +import type { EpochAuthorship } from '@pezkuwi/types/interfaces/babe'; +import type { BeefyVersionedFinalityProof } from '@pezkuwi/types/interfaces/beefy'; +import type { BlockHash } from '@pezkuwi/types/interfaces/chain'; +import type { PrefixedStorageKey } from '@pezkuwi/types/interfaces/childstate'; +import type { AuthorityId } from '@pezkuwi/types/interfaces/consensus'; +import type { CodeUploadRequest, CodeUploadResult, ContractCallRequest, ContractExecResult, ContractInstantiateResult, InstantiateRequestV1 } from '@pezkuwi/types/interfaces/contracts'; +import type { BlockStats } from '@pezkuwi/types/interfaces/dev'; +import type { CreatedBlock } from '@pezkuwi/types/interfaces/engine'; +import type { EthAccount, EthCallRequest, EthFeeHistory, EthFilter, EthFilterChanges, EthLog, EthReceipt, EthRichBlock, EthSubKind, EthSubParams, EthSyncStatus, EthTransaction, EthTransactionRequest, EthWork } from '@pezkuwi/types/interfaces/eth'; +import type { Extrinsic } from '@pezkuwi/types/interfaces/extrinsics'; +import type { EncodedFinalityProofs, JustificationNotification, ReportedRoundStates } from '@pezkuwi/types/interfaces/grandpa'; +import type { MmrHash, MmrLeafBatchProof } from '@pezkuwi/types/interfaces/mmr'; +import type { StorageKind } from '@pezkuwi/types/interfaces/offchain'; +import type { FeeDetails, RuntimeDispatchInfoV1 } from '@pezkuwi/types/interfaces/payment'; +import type { RpcMethods } from '@pezkuwi/types/interfaces/rpc'; +import type { AccountId, BlockNumber, H160, H256, H64, Hash, Header, Index, Justification, KeyValue, SignedBlock, StorageData } from '@pezkuwi/types/interfaces/runtime'; +import type { MigrationStatusResult, ReadProof, RuntimeVersion, TraceBlockResponse } from '@pezkuwi/types/interfaces/state'; +import type { ApplyExtrinsicResult, ChainProperties, ChainType, Health, NetworkState, NodeRole, PeerInfo, SyncState } from '@pezkuwi/types/interfaces/system'; +import type { IExtrinsic, Observable } from '@pezkuwi/types/types'; + +export type __AugmentedRpc = AugmentedRpc<() => unknown>; + +declare module '@pezkuwi/rpc-core/types/jsonrpc' { + interface RpcInterface { + author: { + /** + * Returns true if the keystore has private keys for the given public key and key type. + **/ + hasKey: AugmentedRpc<(publicKey: Bytes | string | Uint8Array, keyType: Text | string) => Observable>; + /** + * Returns true if the keystore has private keys for the given session public keys. + **/ + hasSessionKeys: AugmentedRpc<(sessionKeys: Bytes | string | Uint8Array) => Observable>; + /** + * Insert a key into the keystore. + **/ + insertKey: AugmentedRpc<(keyType: Text | string, suri: Text | string, publicKey: Bytes | string | Uint8Array) => Observable>; + /** + * Returns all pending extrinsics, potentially grouped by sender + **/ + pendingExtrinsics: AugmentedRpc<() => Observable>>; + /** + * Remove given extrinsic from the pool and temporarily ban it to prevent reimporting + **/ + removeExtrinsic: AugmentedRpc<(bytesOrHash: Vec | (ExtrinsicOrHash | { Hash: any } | { Extrinsic: any } | string | Uint8Array)[]) => Observable>>; + /** + * Generate new session keys and returns the corresponding public keys + **/ + rotateKeys: AugmentedRpc<() => Observable>; + /** + * Submit and subscribe to watch an extrinsic until unsubscribed + **/ + submitAndWatchExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable>; + /** + * Submit a fully formatted extrinsic for block inclusion + **/ + submitExtrinsic: AugmentedRpc<(extrinsic: Extrinsic | IExtrinsic | string | Uint8Array) => Observable>; + }; + babe: { + /** + * Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore + **/ + epochAuthorship: AugmentedRpc<() => Observable>>; + }; + beefy: { + /** + * Returns hash of the latest BEEFY finalized block as seen by this client. + **/ + getFinalizedHead: AugmentedRpc<() => Observable>; + /** + * Returns the block most recently finalized by BEEFY, alongside its justification. + **/ + subscribeJustifications: AugmentedRpc<() => Observable>; + }; + chain: { + /** + * Get header and body of a relay chain block + **/ + getBlock: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable>; + /** + * Get the block hash for a specific block + **/ + getBlockHash: AugmentedRpc<(blockNumber?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Get hash of the last finalized block in the canon chain + **/ + getFinalizedHead: AugmentedRpc<() => Observable>; + /** + * Retrieves the header for a specific block + **/ + getHeader: AugmentedRpc<(hash?: BlockHash | string | Uint8Array) => Observable
>; + /** + * Retrieves the newest header via subscription + **/ + subscribeAllHeads: AugmentedRpc<() => Observable
>; + /** + * Retrieves the best finalized header via subscription + **/ + subscribeFinalizedHeads: AugmentedRpc<() => Observable
>; + /** + * Retrieves the best header via subscription + **/ + subscribeNewHeads: AugmentedRpc<() => Observable
>; + }; + childstate: { + /** + * Returns the keys with prefix from a child storage, leave empty to get all the keys + **/ + getKeys: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable>>; + /** + * Returns the keys with prefix from a child storage with pagination support + **/ + getKeysPaged: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, prefix: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable>>; + /** + * Returns a child storage entry at a specific block state + **/ + getStorage: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable>>; + /** + * Returns child storage entries for multiple keys at a specific block state + **/ + getStorageEntries: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, keys: Vec | (StorageKey | string | Uint8Array | any)[], at?: Hash | string | Uint8Array) => Observable>>>; + /** + * Returns the hash of a child storage entry at a block state + **/ + getStorageHash: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable>>; + /** + * Returns the size of a child storage entry at a block state + **/ + getStorageSize: AugmentedRpc<(childKey: PrefixedStorageKey | string | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: Hash | string | Uint8Array) => Observable>>; + }; + contracts: { + /** + * @deprecated Use the runtime interface `api.call.contractsApi.call` instead + * Executes a call to a contract + **/ + call: AugmentedRpc<(callRequest: ContractCallRequest | { origin?: any; dest?: any; value?: any; gasLimit?: any; storageDepositLimit?: any; inputData?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * @deprecated Use the runtime interface `api.call.contractsApi.getStorage` instead + * Returns the value under a specified storage key in a contract + **/ + getStorage: AugmentedRpc<(address: AccountId | string | Uint8Array, key: H256 | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>>; + /** + * @deprecated Use the runtime interface `api.call.contractsApi.instantiate` instead + * Instantiate a new contract + **/ + instantiate: AugmentedRpc<(request: InstantiateRequestV1 | { origin?: any; value?: any; gasLimit?: any; code?: any; data?: any; salt?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * @deprecated Not available in newer versions of the contracts interfaces + * Returns the projected time a given contract will be able to sustain paying its rent + **/ + rentProjection: AugmentedRpc<(address: AccountId | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>>; + /** + * @deprecated Use the runtime interface `api.call.contractsApi.uploadCode` instead + * Upload new code without instantiating a contract from it + **/ + uploadCode: AugmentedRpc<(uploadRequest: CodeUploadRequest | { origin?: any; code?: any; storageDepositLimit?: any } | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + }; + dev: { + /** + * Reexecute the specified `block_hash` and gather statistics while doing so + **/ + getBlockStats: AugmentedRpc<(at: Hash | string | Uint8Array) => Observable>>; + }; + engine: { + /** + * Instructs the manual-seal authorship task to create a new block + **/ + createBlock: AugmentedRpc<(createEmpty: bool | boolean | Uint8Array, finalize: bool | boolean | Uint8Array, parentHash?: BlockHash | string | Uint8Array) => Observable>; + /** + * Instructs the manual-seal authorship task to finalize a block + **/ + finalizeBlock: AugmentedRpc<(hash: BlockHash | string | Uint8Array, justification?: Justification) => Observable>; + }; + eth: { + /** + * Returns accounts list. + **/ + accounts: AugmentedRpc<() => Observable>>; + /** + * Returns the blockNumber + **/ + blockNumber: AugmentedRpc<() => Observable>; + /** + * Call contract, returning the output data. + **/ + call: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns the chain ID used for transaction signing at the current best block. None is returned if not available. + **/ + chainId: AugmentedRpc<() => Observable>; + /** + * Returns block author. + **/ + coinbase: AugmentedRpc<() => Observable>; + /** + * Estimate gas needed for execution of given contract. + **/ + estimateGas: AugmentedRpc<(request: EthCallRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns fee history for given block count & reward percentiles + **/ + feeHistory: AugmentedRpc<(blockCount: U256 | AnyNumber | Uint8Array, newestBlock: BlockNumber | AnyNumber | Uint8Array, rewardPercentiles: Option> | null | Uint8Array | Vec | (f64)[]) => Observable>; + /** + * Returns current gas price. + **/ + gasPrice: AugmentedRpc<() => Observable>; + /** + * Returns balance of the given account. + **/ + getBalance: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns block with given hash. + **/ + getBlockByHash: AugmentedRpc<(hash: H256 | string | Uint8Array, full: bool | boolean | Uint8Array) => Observable>>; + /** + * Returns block with given number. + **/ + getBlockByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array, full: bool | boolean | Uint8Array) => Observable>>; + /** + * Returns the number of transactions in a block with given hash. + **/ + getBlockTransactionCountByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; + /** + * Returns the number of transactions in a block with given block number. + **/ + getBlockTransactionCountByNumber: AugmentedRpc<(block: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns the code at given address at given time (block number). + **/ + getCode: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns filter changes since last poll. + **/ + getFilterChanges: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable>; + /** + * Returns all logs matching given filter (in a range 'from' - 'to'). + **/ + getFilterLogs: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable>>; + /** + * Returns logs matching given filter object. + **/ + getLogs: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable>>; + /** + * Returns proof for account and storage. + **/ + getProof: AugmentedRpc<(address: H160 | string | Uint8Array, storageKeys: Vec | (H256 | string | Uint8Array)[], number: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns content of the storage at given address. + **/ + getStorageAt: AugmentedRpc<(address: H160 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns transaction at given block hash and index. + **/ + getTransactionByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable>; + /** + * Returns transaction by given block number and index. + **/ + getTransactionByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable>; + /** + * Get transaction by its hash. + **/ + getTransactionByHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; + /** + * Returns the number of transactions sent from given address at given time (block number). + **/ + getTransactionCount: AugmentedRpc<(address: H160 | string | Uint8Array, number?: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns transaction receipt by transaction hash. + **/ + getTransactionReceipt: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; + /** + * Returns an uncles at given block and index. + **/ + getUncleByBlockHashAndIndex: AugmentedRpc<(hash: H256 | string | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable>; + /** + * Returns an uncles at given block and index. + **/ + getUncleByBlockNumberAndIndex: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array, index: U256 | AnyNumber | Uint8Array) => Observable>; + /** + * Returns the number of uncles in a block with given hash. + **/ + getUncleCountByBlockHash: AugmentedRpc<(hash: H256 | string | Uint8Array) => Observable>; + /** + * Returns the number of uncles in a block with given block number. + **/ + getUncleCountByBlockNumber: AugmentedRpc<(number: BlockNumber | AnyNumber | Uint8Array) => Observable>; + /** + * Returns the hash of the current block, the seedHash, and the boundary condition to be met. + **/ + getWork: AugmentedRpc<() => Observable>; + /** + * Returns the number of hashes per second that the node is mining with. + **/ + hashrate: AugmentedRpc<() => Observable>; + /** + * Returns max priority fee per gas + **/ + maxPriorityFeePerGas: AugmentedRpc<() => Observable>; + /** + * Returns true if client is actively mining new blocks. + **/ + mining: AugmentedRpc<() => Observable>; + /** + * Returns id of new block filter. + **/ + newBlockFilter: AugmentedRpc<() => Observable>; + /** + * Returns id of new filter. + **/ + newFilter: AugmentedRpc<(filter: EthFilter | { fromBlock?: any; toBlock?: any; blockHash?: any; address?: any; topics?: any } | string | Uint8Array) => Observable>; + /** + * Returns id of new block filter. + **/ + newPendingTransactionFilter: AugmentedRpc<() => Observable>; + /** + * Returns protocol version encoded as a string (quotes are necessary). + **/ + protocolVersion: AugmentedRpc<() => Observable>; + /** + * Sends signed transaction, returning its hash. + **/ + sendRawTransaction: AugmentedRpc<(bytes: Bytes | string | Uint8Array) => Observable>; + /** + * Sends transaction; will block waiting for signer to return the transaction hash + **/ + sendTransaction: AugmentedRpc<(tx: EthTransactionRequest | { from?: any; to?: any; gasPrice?: any; gas?: any; value?: any; data?: any; nonce?: any } | string | Uint8Array) => Observable>; + /** + * Used for submitting mining hashrate. + **/ + submitHashrate: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array, hash: H256 | string | Uint8Array) => Observable>; + /** + * Used for submitting a proof-of-work solution. + **/ + submitWork: AugmentedRpc<(nonce: H64 | string | Uint8Array, headerHash: H256 | string | Uint8Array, mixDigest: H256 | string | Uint8Array) => Observable>; + /** + * Subscribe to Eth subscription. + **/ + subscribe: AugmentedRpc<(kind: EthSubKind | 'newHeads' | 'logs' | 'newPendingTransactions' | 'syncing' | number | Uint8Array, params?: EthSubParams | { None: any } | { Logs: any } | string | Uint8Array) => Observable>; + /** + * Returns an object with data about the sync status or false. + **/ + syncing: AugmentedRpc<() => Observable>; + /** + * Uninstalls filter. + **/ + uninstallFilter: AugmentedRpc<(index: U256 | AnyNumber | Uint8Array) => Observable>; + }; + grandpa: { + /** + * Prove finality for the given block number, returning the Justification for the last block in the set. + **/ + proveFinality: AugmentedRpc<(blockNumber: BlockNumber | AnyNumber | Uint8Array) => Observable>>; + /** + * Returns the state of the current best round state as well as the ongoing background rounds + **/ + roundState: AugmentedRpc<() => Observable>; + /** + * Subscribes to grandpa justifications + **/ + subscribeJustifications: AugmentedRpc<() => Observable>; + }; + mmr: { + /** + * Generate MMR proof for the given block numbers. + **/ + generateProof: AugmentedRpc<(blockNumbers: Vec | (u64 | AnyNumber | Uint8Array)[], bestKnownBlockNumber?: u64 | AnyNumber | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Get the MMR root hash for the current best block. + **/ + root: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Verify an MMR proof + **/ + verifyProof: AugmentedRpc<(proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array) => Observable>; + /** + * Verify an MMR proof statelessly given an mmr_root + **/ + verifyProofStateless: AugmentedRpc<(root: MmrHash | string | Uint8Array, proof: MmrLeafBatchProof | { blockHash?: any; leaves?: any; proof?: any } | string | Uint8Array) => Observable>; + }; + net: { + /** + * Returns true if client is actively listening for network connections. Otherwise false. + **/ + listening: AugmentedRpc<() => Observable>; + /** + * Returns number of peers connected to node. + **/ + peerCount: AugmentedRpc<() => Observable>; + /** + * Returns protocol version. + **/ + version: AugmentedRpc<() => Observable>; + }; + offchain: { + /** + * Clear offchain local storage under given key and prefix + **/ + localStorageClear: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable>; + /** + * Get offchain local storage under given key and prefix + **/ + localStorageGet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array) => Observable>>; + /** + * Set offchain local storage under given key and prefix + **/ + localStorageSet: AugmentedRpc<(kind: StorageKind | 'PERSISTENT' | 'LOCAL' | number | Uint8Array, key: Bytes | string | Uint8Array, value: Bytes | string | Uint8Array) => Observable>; + }; + payment: { + /** + * @deprecated Use `api.call.transactionPaymentApi.queryFeeDetails` instead + * Query the detailed fee of a given encoded extrinsic + **/ + queryFeeDetails: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * @deprecated Use `api.call.transactionPaymentApi.queryInfo` instead + * Retrieves the fee information for an encoded extrinsic + **/ + queryInfo: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + }; + rpc: { + /** + * Retrieves the list of RPC methods that are exposed by the node + **/ + methods: AugmentedRpc<() => Observable>; + }; + state: { + /** + * Perform a call to a builtin on the chain + **/ + call: AugmentedRpc<(method: Text | string, data: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Retrieves the keys with prefix of a specific child storage + **/ + getChildKeys: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>>; + /** + * Returns proof of storage for child key entries at a specific block state. + **/ + getChildReadProof: AugmentedRpc<(childStorageKey: PrefixedStorageKey | string | Uint8Array, keys: Vec | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Retrieves the child storage for a key + **/ + getChildStorage: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Retrieves the child storage hash + **/ + getChildStorageHash: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Retrieves the child storage size + **/ + getChildStorageSize: AugmentedRpc<(childStorageKey: StorageKey | string | Uint8Array | any, childDefinition: StorageKey | string | Uint8Array | any, childType: u32 | AnyNumber | Uint8Array, key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys + * Retrieves the keys with a certain prefix + **/ + getKeys: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>>; + /** + * Returns the keys with prefix with pagination support. + **/ + getKeysPaged: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, count: u32 | AnyNumber | Uint8Array, startKey?: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>>; + /** + * Returns the runtime metadata + **/ + getMetadata: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; + /** + * @deprecated Use `api.rpc.state.getKeysPaged` to retrieve keys + * Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged) + **/ + getPairs: AugmentedRpc<(prefix: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>>; + /** + * Returns proof of storage entries at a specific block state + **/ + getReadProof: AugmentedRpc<(keys: Vec | (StorageKey | string | Uint8Array | any)[], at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Get the runtime version + **/ + getRuntimeVersion: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Retrieves the storage for a key + **/ + getStorage: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, block?: Hash | Uint8Array | string) => Observable>; + /** + * Retrieves the storage hash + **/ + getStorageHash: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Retrieves the storage size + **/ + getStorageSize: AugmentedRpc<(key: StorageKey | string | Uint8Array | any, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Query historical storage entries (by key) starting from a start block + **/ + queryStorage: AugmentedRpc<(keys: Vec | (StorageKey | string | Uint8Array | any)[], fromBlock?: Hash | Uint8Array | string, toBlock?: Hash | Uint8Array | string) => Observable<[Hash, T][]>>; + /** + * Query storage entries (by key) starting at block hash given as the second parameter + **/ + queryStorageAt: AugmentedRpc<(keys: Vec | (StorageKey | string | Uint8Array | any)[], at?: Hash | Uint8Array | string) => Observable>; + /** + * Retrieves the runtime version via subscription + **/ + subscribeRuntimeVersion: AugmentedRpc<() => Observable>; + /** + * Subscribes to storage changes for the provided keys + **/ + subscribeStorage: AugmentedRpc<(keys?: Vec | (StorageKey | string | Uint8Array | any)[]) => Observable>; + /** + * Provides a way to trace the re-execution of a single block + **/ + traceBlock: AugmentedRpc<(block: Hash | string | Uint8Array, targets: Option | null | Uint8Array | Text | string, storageKeys: Option | null | Uint8Array | Text | string, methods: Option | null | Uint8Array | Text | string) => Observable>; + /** + * Check current migration state + **/ + trieMigrationStatus: AugmentedRpc<(at?: BlockHash | string | Uint8Array) => Observable>; + }; + syncstate: { + /** + * Returns the json-serialized chainspec running the node, with a sync state. + **/ + genSyncSpec: AugmentedRpc<(raw: bool | boolean | Uint8Array) => Observable>; + }; + system: { + /** + * Retrieves the next accountIndex as available on the node + **/ + accountNextIndex: AugmentedRpc<(accountId: AccountId | string | Uint8Array) => Observable>; + /** + * Adds the supplied directives to the current log filter + **/ + addLogFilter: AugmentedRpc<(directives: Text | string) => Observable>; + /** + * Adds a reserved peer + **/ + addReservedPeer: AugmentedRpc<(peer: Text | string) => Observable>; + /** + * Retrieves the chain + **/ + chain: AugmentedRpc<() => Observable>; + /** + * Retrieves the chain type + **/ + chainType: AugmentedRpc<() => Observable>; + /** + * Dry run an extrinsic at a given block + **/ + dryRun: AugmentedRpc<(extrinsic: Bytes | string | Uint8Array, at?: BlockHash | string | Uint8Array) => Observable>; + /** + * Return health status of the node + **/ + health: AugmentedRpc<() => Observable>; + /** + * The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example + **/ + localListenAddresses: AugmentedRpc<() => Observable>>; + /** + * Returns the base58-encoded PeerId of the node + **/ + localPeerId: AugmentedRpc<() => Observable>; + /** + * Retrieves the node name + **/ + name: AugmentedRpc<() => Observable>; + /** + * Returns current state of the network + **/ + networkState: AugmentedRpc<() => Observable>; + /** + * Returns the roles the node is running as + **/ + nodeRoles: AugmentedRpc<() => Observable>>; + /** + * Returns the currently connected peers + **/ + peers: AugmentedRpc<() => Observable>>; + /** + * Get a custom set of properties as a JSON object, defined in the chain spec + **/ + properties: AugmentedRpc<() => Observable>; + /** + * Remove a reserved peer + **/ + removeReservedPeer: AugmentedRpc<(peerId: Text | string) => Observable>; + /** + * Returns the list of reserved peers + **/ + reservedPeers: AugmentedRpc<() => Observable>>; + /** + * Resets the log filter to Bizinikiwi defaults + **/ + resetLogFilter: AugmentedRpc<() => Observable>; + /** + * Returns the state of the syncing of the node + **/ + syncState: AugmentedRpc<() => Observable>; + /** + * Retrieves the version of the node + **/ + version: AugmentedRpc<() => Observable>; + }; + web3: { + /** + * Returns current client version. + **/ + clientVersion: AugmentedRpc<() => Observable>; + /** + * Returns sha3 of the given data + **/ + sha3: AugmentedRpc<(data: Bytes | string | Uint8Array) => Observable>; + }; + } // RpcInterface +} // declare module diff --git a/packages/rpc-augment/src/bundle.ts b/packages/rpc-augment/src/bundle.ts new file mode 100644 index 0000000..003c5bb --- /dev/null +++ b/packages/rpc-augment/src/bundle.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/rpc-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './augment/index.js'; + +export { packageInfo } from './packageInfo.js'; diff --git a/packages/rpc-augment/src/index.ts b/packages/rpc-augment/src/index.ts new file mode 100644 index 0000000..4863537 --- /dev/null +++ b/packages/rpc-augment/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/rpc-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/rpc-augment/src/mod.ts b/packages/rpc-augment/src/mod.ts new file mode 100644 index 0000000..62dee91 --- /dev/null +++ b/packages/rpc-augment/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/rpc-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/rpc-augment/src/packageDetect.ts b/packages/rpc-augment/src/packageDetect.ts new file mode 100644 index 0000000..1a54f21 --- /dev/null +++ b/packages/rpc-augment/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2026 @pezkuwi/rpc-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as coreInfo } from '@pezkuwi/rpc-core/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [coreInfo, typesInfo]); diff --git a/packages/rpc-augment/src/packageInfo.ts b/packages/rpc-augment/src/packageInfo.ts new file mode 100644 index 0000000..7a57c43 --- /dev/null +++ b/packages/rpc-augment/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/rpc-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/rpc-augment', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/rpc-augment/tsconfig.build.json b/packages/rpc-augment/tsconfig.build.json new file mode 100644 index 0000000..8840a14 --- /dev/null +++ b/packages/rpc-augment/tsconfig.build.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/mod.ts" + ], + "references": [ + { "path": "../rpc-core/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" } + ] +} diff --git a/packages/rpc-core/README.md b/packages/rpc-core/README.md new file mode 100644 index 0000000..6e1b78e --- /dev/null +++ b/packages/rpc-core/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/rpc-core + +This library provides a clean wrapper around all the methods exposed by a Pezkuwi network client. It is only used internally to the API. diff --git a/packages/rpc-core/package.json b/packages/rpc-core/package.json new file mode 100644 index 0000000..0aa49e4 --- /dev/null +++ b/packages/rpc-core/package.json @@ -0,0 +1,35 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "A JavaScript wrapper for the Pezkuwi JsonRPC interface", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/rpc-core#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/rpc-core", + "repository": { + "directory": "packages/rpc-core", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/rpc-augment": "16.5.4", + "@pezkuwi/rpc-provider": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/keyring": "^14.0.1", + "@pezkuwi/rpc-augment": "16.5.4" + } +} diff --git a/packages/rpc-core/src/bundle.ts b/packages/rpc-core/src/bundle.ts new file mode 100644 index 0000000..f46b82e --- /dev/null +++ b/packages/rpc-core/src/bundle.ts @@ -0,0 +1,535 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observer } from 'rxjs'; +import type { ProviderInterface, ProviderInterfaceCallback } from '@pezkuwi/rpc-provider/types'; +import type { StorageKey, Vec } from '@pezkuwi/types'; +import type { Hash } from '@pezkuwi/types/interfaces'; +import type { AnyJson, AnyNumber, Codec, DefinitionRpc, DefinitionRpcExt, DefinitionRpcSub, Registry } from '@pezkuwi/types/types'; +import type { Memoized } from '@pezkuwi/util/types'; +import type { RpcCoreStats, RpcInterfaceMethod } from './types/index.js'; + +import { Observable, publishReplay, refCount } from 'rxjs'; + +import { LRUCache } from '@pezkuwi/rpc-provider'; +import { rpcDefinitions } from '@pezkuwi/types'; +import { unwrapStorageSi } from '@pezkuwi/types/util'; +import { hexToU8a, isFunction, isNull, isUndefined, lazyMethod, logger, memoize, objectSpread, u8aConcat, u8aToU8a } from '@pezkuwi/util'; + +import { drr, refCountDelay } from './util/index.js'; + +export { packageInfo } from './packageInfo.js'; +export * from './util/index.js'; + +interface StorageChangeSetJSON { + block: string; + changes: [string, string | null][]; +} + +type MemoizedRpcInterfaceMethod = Memoized & { + raw: Memoized; + meta: DefinitionRpc; +} + +interface Options { + isPedantic?: boolean; + provider: ProviderInterface; + /** + * Custom size of the rpc LRUCache capacity. Defaults to `RPC_CORE_DEFAULT_CAPACITY` (1024 * 10 * 10) + */ + rpcCacheCapacity?: number; + ttl?: number | null; + userRpc?: Record>; +} + +const l = logger('rpc-core'); + +const EMPTY_META = { + fallback: undefined, + modifier: { isOptional: true }, + type: { + asMap: { linked: { isTrue: false } }, + isMap: false + } +}; + +const RPC_CORE_DEFAULT_CAPACITY = 1024 * 10 * 10; + +// utility method to create a nicely-formatted error +/** @internal */ +function logErrorMessage (method: string, { noErrorLog, params, type }: DefinitionRpc, error: Error): void { + if (noErrorLog) { + return; + } + + l.error(`${method}(${ + params.map(({ isOptional, name, type }): string => + `${name}${isOptional ? '?' : ''}: ${type}` + ).join(', ') + }): ${type}:: ${error.message}`); +} + +function isTreatAsHex (key: StorageKey): boolean { + // :code is problematic - it does not have the length attached, which is + // unlike all other storage entries where it is indeed properly encoded + return ['0x3a636f6465'].includes(key.toHex()); +} + +/** + * @name Rpc + * @summary The API may use a HTTP or WebSockets provider. + * @description It allows for querying a Pezkuwi Client Node. + * WebSockets provider is recommended since HTTP provider only supports basic querying. + * + * ```mermaid + * graph LR; + * A[Api] --> |WebSockets| B[WsProvider]; + * B --> |endpoint| C[ws://127.0.0.1:9944] + * ``` + * + * @example + *
+ * + * ```javascript + * import Rpc from '@pezkuwi/rpc-core'; + * import { WsProvider } from '@pezkuwi/rpc-provider/ws'; + * + * const provider = new WsProvider('ws://127.0.0.1:9944'); + * const rpc = new Rpc(provider); + * ``` + */ +export class RpcCore { + readonly #instanceId: string; + readonly #isPedantic: boolean; + readonly #registryDefault: Registry; + readonly #storageCache: LRUCache; + #storageCacheHits = 0; + + #getBlockRegistry?: (blockHash: Uint8Array) => Promise<{ registry: Registry }>; + #getBlockHash?: (blockNumber: AnyNumber) => Promise; + + readonly mapping = new Map(); + readonly provider: ProviderInterface; + readonly sections: string[] = []; + + /** + * @constructor + * Default constructor for the core RPC handler + * @param {Registry} registry Type Registry + * @param {ProviderInterface} options.provider An API provider using any of the supported providers (HTTP, SC or WebSocket) + * @param {number} [options.rpcCacheCapacity] Custom size of the rpc LRUCache capacity. Defaults to `RPC_CORE_DEFAULT_CAPACITY` (1024 * 10 * 10) + */ + constructor (instanceId: string, registry: Registry, { isPedantic = true, provider, rpcCacheCapacity, ttl, userRpc = {} }: Options) { + if (!provider || !isFunction(provider.send)) { + throw new Error('Expected Provider to API create'); + } + + this.#instanceId = instanceId; + this.#isPedantic = isPedantic; + this.#registryDefault = registry; + this.provider = provider; + + const sectionNames = Object.keys(rpcDefinitions); + + // these are the base keys (i.e. part of jsonrpc) + this.sections.push(...sectionNames); + this.#storageCache = new LRUCache(rpcCacheCapacity || RPC_CORE_DEFAULT_CAPACITY, ttl); + // decorate all interfaces, defined and user on this instance + this.addUserInterfaces(userRpc); + } + + /** + * @description Returns the connected status of a provider + */ + public get isConnected (): boolean { + return this.provider.isConnected; + } + + /** + * @description Manually connect from the attached provider + */ + public connect (): Promise { + return this.provider.connect(); + } + + /** + * @description Manually disconnect from the attached provider + */ + public async disconnect (): Promise { + return this.provider.disconnect(); + } + + /** + * @description Returns the underlying core stats, including those from teh provider + */ + public get stats (): RpcCoreStats | undefined { + const stats = this.provider.stats; + + return stats + ? { + ...stats, + core: { + cacheHits: this.#storageCacheHits, + cacheSize: this.#storageCache.length + } + } + : undefined; + } + + /** + * @description Sets a registry swap (typically from Api) + */ + public setRegistrySwap (registrySwap: (blockHash: Uint8Array) => Promise<{ registry: Registry }>): void { + this.#getBlockRegistry = memoize(registrySwap, { + getInstanceId: () => this.#instanceId + }); + } + + /** + * @description Sets a function to resolve block hash from block number + */ + public setResolveBlockHash (resolveBlockHash: (blockNumber: AnyNumber) => Promise): void { + this.#getBlockHash = memoize(resolveBlockHash, { + getInstanceId: () => this.#instanceId + }); + } + + public addUserInterfaces (userRpc: Record>): void { + // add any extra user-defined sections + this.sections.push(...Object.keys(userRpc).filter((k) => !this.sections.includes(k))); + + for (let s = 0, scount = this.sections.length; s < scount; s++) { + const section = this.sections[s]; + const defs = objectSpread>({}, rpcDefinitions[section as 'babe'], userRpc[section]); + const methods = Object.keys(defs); + + for (let m = 0, mcount = methods.length; m < mcount; m++) { + const method = methods[m]; + const def = defs[method]; + const jsonrpc = def.endpoint || `${section}_${method}`; + + if (!this.mapping.has(jsonrpc)) { + const isSubscription = !!(def as DefinitionRpcSub).pubsub; + + if (!(this as Record)[section]) { + (this as Record)[section] = {}; + } + + this.mapping.set(jsonrpc, objectSpread({}, def, { isSubscription, jsonrpc, method, section })); + + lazyMethod(this[section as 'connect'], method, () => + isSubscription + ? this._createMethodSubscribe(section, method, def as DefinitionRpcSub) + : this._createMethodSend(section, method, def) + ); + } + } + } + } + + private _memomize (creator: (isScale: boolean) => (...values: unknown[]) => Observable, def: DefinitionRpc): MemoizedRpcInterfaceMethod { + const memoOpts = { getInstanceId: () => this.#instanceId }; + const memoized = memoize(creator(true) as RpcInterfaceMethod, memoOpts); + + memoized.raw = memoize(creator(false), memoOpts); + memoized.meta = def; + + return memoized as MemoizedRpcInterfaceMethod; + } + + private _formatResult (isScale: boolean, registry: Registry, blockHash: string | Uint8Array | null | undefined, method: string, def: DefinitionRpc, params: Codec[], result: unknown): T { + return isScale + ? this._formatOutput(registry, blockHash, method, def, params, result) as unknown as T + : result as T; + } + + private _createMethodSend (section: string, method: string, def: DefinitionRpc): RpcInterfaceMethod { + const rpcName = def.endpoint || `${section}_${method}`; + const hashIndex = def.params.findIndex(({ isHistoric }) => isHistoric); + let memoized: null | MemoizedRpcInterfaceMethod = null; + + // execute the RPC call, doing a registry swap for historic as applicable + const callWithRegistry = async (isScale: boolean, values: unknown[]): Promise => { + const blockId = hashIndex === -1 + ? null + : values[hashIndex]; + + const blockHash = blockId && def.params[hashIndex].type === 'BlockNumber' + ? await this.#getBlockHash?.(blockId as AnyNumber) + : blockId as (Uint8Array | string | null | undefined); + + const { registry } = isScale && blockHash && this.#getBlockRegistry + ? await this.#getBlockRegistry(u8aToU8a(blockHash)) + : { registry: this.#registryDefault }; + + const params = this._formatParams(registry, null, def, values); + + // only cache .at() queries, e.g. where valid blockHash was supplied + const result = await this.provider.send(rpcName, params.map((p) => p.toJSON()), !!blockHash); + + return this._formatResult(isScale, registry, blockHash, method, def, params, result); + }; + + const creator = (isScale: boolean) => (...values: unknown[]): Observable => { + const isDelayed = isScale && hashIndex !== -1 && !!values[hashIndex]; + + return new Observable((observer: Observer): () => void => { + callWithRegistry(isScale, values) + .then((value): void => { + observer.next(value); + observer.complete(); + }) + .catch((error: Error): void => { + logErrorMessage(method, def, error); + + observer.error(error); + observer.complete(); + }); + + return (): void => { + // delete old results from cache + if (isScale) { + memoized?.unmemoize(...values); + } else { + memoized?.raw.unmemoize(...values); + } + }; + }).pipe( + // eslint-disable-next-line deprecation/deprecation + publishReplay(1), // create a Replay(1) + isDelayed + ? refCountDelay() // Unsubscribe after delay + // eslint-disable-next-line deprecation/deprecation + : refCount() + ); + }; + + memoized = this._memomize(creator, def); + + return memoized; + } + + // create a subscriptor, it subscribes once and resolves with the id as subscribe + private _createSubscriber ({ paramsJson, subName, subType, update }: { subType: string; subName: string; paramsJson: AnyJson[]; update: ProviderInterfaceCallback }, errorHandler: (error: Error) => void): Promise { + return new Promise((resolve, reject): void => { + this.provider + .subscribe(subType, subName, paramsJson, update) + .then(resolve) + .catch((error: Error): void => { + errorHandler(error); + reject(error); + }); + }); + } + + private _createMethodSubscribe (section: string, method: string, def: DefinitionRpcSub): RpcInterfaceMethod { + const [updateType, subMethod, unsubMethod] = def.pubsub; + const subName = `${section}_${subMethod}`; + const unsubName = `${section}_${unsubMethod}`; + const subType = `${section}_${updateType}`; + let memoized: null | MemoizedRpcInterfaceMethod = null; + + const creator = (isScale: boolean) => (...values: unknown[]): Observable => { + return new Observable((observer: Observer): () => void => { + // Have at least an empty promise, as used in the unsubscribe + let subscriptionPromise: Promise = Promise.resolve(null); + const registry = this.#registryDefault; + + const errorHandler = (error: Error): void => { + logErrorMessage(method, def, error); + + observer.error(error); + }; + + try { + const params = this._formatParams(registry, null, def, values); + + const update = (error?: Error | null, result?: unknown): void => { + if (error) { + logErrorMessage(method, def, error); + + return; + } + + try { + observer.next(this._formatResult(isScale, registry, null, method, def, params, result)); + } catch (error) { + observer.error(error); + } + }; + + subscriptionPromise = this._createSubscriber({ paramsJson: params.map((p) => p.toJSON()), subName, subType, update }, errorHandler); + } catch (error) { + errorHandler(error as Error); + } + + // Teardown logic + return (): void => { + // Delete from cache, so old results don't hang around + if (isScale) { + memoized?.unmemoize(...values); + } else { + memoized?.raw.unmemoize(...values); + } + + // Unsubscribe from provider + subscriptionPromise + .then((subscriptionId): Promise => + isNull(subscriptionId) + ? Promise.resolve(false) + : this.provider.unsubscribe(subType, unsubName, subscriptionId) + ) + .catch((error: Error) => logErrorMessage(method, def, error)); + }; + }).pipe(drr()); + }; + + memoized = this._memomize(creator, def); + + return memoized; + } + + private _formatParams (registry: Registry, blockHash: Uint8Array | string | null | undefined, def: DefinitionRpc, inputs: unknown[]): Codec[] { + const count = inputs.length; + const reqCount = def.params.filter(({ isOptional }) => !isOptional).length; + + if (count < reqCount || count > def.params.length) { + throw new Error(`Expected ${def.params.length} parameters${reqCount === def.params.length ? '' : ` (${def.params.length - reqCount} optional)`}, ${count} found instead`); + } + + const params = new Array(count); + + for (let i = 0; i < count; i++) { + params[i] = registry.createTypeUnsafe(def.params[i].type, [inputs[i]], { blockHash }); + } + + return params; + } + + private _formatOutput (registry: Registry, blockHash: Uint8Array | string | null | undefined, method: string, rpc: DefinitionRpc, params: Codec[], result?: unknown): Codec | Codec[] { + if (rpc.type === 'StorageData') { + const key = params[0] as StorageKey; + + return this._formatStorageData(registry, blockHash, key, result as string); + } else if (rpc.type === 'StorageChangeSet') { + const keys = params[0] as Vec; + + return keys + ? this._formatStorageSet(registry, (result as StorageChangeSetJSON).block, keys, (result as StorageChangeSetJSON).changes) + : registry.createType('StorageChangeSet', result); + } else if (rpc.type === 'Vec') { + const jsonSet = (result as StorageChangeSetJSON[]); + const count = jsonSet.length; + const mapped = new Array<[Hash, Codec[]]>(count); + + for (let i = 0; i < count; i++) { + const { block, changes } = jsonSet[i]; + + mapped[i] = [ + registry.createType('BlockHash', block), + this._formatStorageSet(registry, block, params[0] as Vec, changes) + ]; + } + + // we only query at a specific block, not a range - flatten + return method === 'queryStorageAt' + ? mapped[0][1] + : mapped as unknown as Codec[]; + } + + return registry.createTypeUnsafe(rpc.type, [result], { blockHash }); + } + + private _formatStorageData (registry: Registry, blockHash: Uint8Array | string | null | undefined, key: StorageKey, value: string | null): Codec { + const isEmpty = isNull(value); + + // we convert to Uint8Array since it maps to the raw encoding, all + // data will be correctly encoded (incl. numbers, excl. :code) + const input = isEmpty + ? null + : isTreatAsHex(key) + ? value + : u8aToU8a(value); + + return this._newType(registry, blockHash, key, input, isEmpty); + } + + private _formatStorageSet (registry: Registry, blockHash: string, keys: Vec, changes: [string, string | null][]): Codec[] { + // For StorageChangeSet, the changes has the [key, value] mappings + const count = keys.length; + const withCache = count !== 1; + const values = new Array(count); + + // multiple return values (via state.storage subscription), decode the + // values one at a time, all based on the supplied query types + for (let i = 0; i < count; i++) { + values[i] = this._formatStorageSetEntry(registry, blockHash, keys[i], changes, withCache, i); + } + + return values; + } + + private _formatStorageSetEntry (registry: Registry, blockHash: string, key: StorageKey, changes: [string, string | null][], withCache: boolean, entryIndex: number): Codec { + const hexKey = key.toHex(); + const found = changes.find(([key]) => key === hexKey); + const isNotFound = isUndefined(found); + + // if we don't find the value, this is our fallback + // - in the case of an array of values, fill the hole from the cache + // - if a single result value, don't fill - it is not an update hole + // - fallback to an empty option in all cases + if (isNotFound && withCache) { + const cached = this.#storageCache.get(hexKey) as Codec | undefined; + + if (cached) { + this.#storageCacheHits++; + + return cached; + } + } + + const value = isNotFound + ? null + : found[1]; + const isEmpty = isNull(value); + const input = isEmpty || isTreatAsHex(key) + ? value + : u8aToU8a(value); + const codec = this._newType(registry, blockHash, key, input, isEmpty, entryIndex); + + this._setToCache(hexKey, codec); + + return codec; + } + + private _setToCache (key: string, value: Codec): void { + this.#storageCache.set(key, value); + } + + private _newType (registry: Registry, blockHash: Uint8Array | string | null | undefined, key: StorageKey, input: string | Uint8Array | null, isEmpty: boolean, entryIndex = -1): Codec { + // single return value (via state.getStorage), decode the value based on the + // outputType that we have specified. Fallback to Raw on nothing + const type = key.meta ? registry.createLookupType(unwrapStorageSi(key.meta.type)) : (key.outputType || 'Raw'); + const meta = key.meta || EMPTY_META; + const entryNum = entryIndex === -1 + ? '' + : ` entry ${entryIndex}:`; + + try { + return registry.createTypeUnsafe(type, [ + isEmpty + ? meta.fallback + // For old-style Linkage, we add an empty linkage at the end + ? type.includes('Linkage<') + ? u8aConcat(hexToU8a(meta.fallback.toHex()), new Uint8Array(2)) + : hexToU8a(meta.fallback.toHex()) + : undefined + : meta.modifier.isOptional + ? registry.createTypeUnsafe(type, [input], { blockHash, isPedantic: this.#isPedantic }) + : input + ], { blockHash, isFallback: isEmpty && !!meta.fallback, isOptional: meta.modifier.isOptional, isPedantic: this.#isPedantic && !meta.modifier.isOptional }); + } catch (error) { + throw new Error(`Unable to decode storage ${key.section || 'unknown'}.${key.method || 'unknown'}:${entryNum}: ${(error as Error).message}`); + } + } +} diff --git a/packages/rpc-core/src/cached.spec.ts b/packages/rpc-core/src/cached.spec.ts new file mode 100644 index 0000000..6c5135b --- /dev/null +++ b/packages/rpc-core/src/cached.spec.ts @@ -0,0 +1,129 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { RpcInterface } from './types/index.js'; + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import { MockProvider } from '@pezkuwi/rpc-provider/mock'; +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { RpcCore } from './index.js'; + +describe('Cached Observables', (): void => { + const registry = new TypeRegistry(); + let rpc: RpcCore & RpcInterface; + let provider: MockProvider; + const keyring = createTestPairs(); + + beforeEach((): void => { + provider = new MockProvider(registry); + rpc = new RpcCore('123', registry, { provider }) as (RpcCore & RpcInterface); + }); + + afterEach(async () => { + await provider.disconnect(); + }); + + it('creates a single observable for subscriptions (multiple calls)', (): void => { + const observable1 = rpc.state.subscribeStorage([123]); + const observable2 = rpc.state.subscribeStorage([123]); + + expect(observable2).toBe(observable1); + }); + + it('creates a single observable for subscriptions (multiple calls, no arguments)', (): void => { + const observable1 = rpc.chain.subscribeNewHeads(); + const observable2 = rpc.chain.subscribeNewHeads(); + + expect(observable2).toBe(observable1); + }); + + it('creates a single observable (multiple calls, different arguments that should be cached together)', (): void => { + const observable1 = rpc.state.subscribeStorage([keyring.alice.address]); + const observable2 = rpc.state.subscribeStorage([registry.createType('AccountId', keyring.alice.address)]); + + expect(observable2).toBe(observable1); + }); + + it('creates multiple observables for different values', (): void => { + const observable1 = rpc.chain.getBlockHash(123); + const observable2 = rpc.chain.getBlockHash(456); + + expect(observable2).not.toBe(observable1); + }); + + it('subscribes to the same one if within the period (unbsub delay)', async (): Promise => { + const observable1 = rpc.chain.subscribeNewHeads(); + const sub1 = observable1.subscribe(); + + sub1.unsubscribe(); + + await new Promise((resolve) => { + setTimeout((): void => { + const observable2 = rpc.chain.subscribeNewHeads(); + const sub2 = observable2.subscribe(); + + expect(observable1).toBe(observable2); + + sub2.unsubscribe(); + resolve(true); + }, 500); + }); + }); + + it('clears cache if there are no more subscribers', async (): Promise => { + const observable1 = rpc.chain.subscribeNewHeads(); + const observable2 = rpc.chain.subscribeNewHeads(); + const sub1 = observable1.subscribe(); + const sub2 = observable2.subscribe(); + + expect(observable1).toBe(observable2); + + sub1.unsubscribe(); + sub2.unsubscribe(); + + await new Promise((resolve) => { + setTimeout((): void => { + // No more subscribers, now create a new observable + const observable3 = rpc.chain.subscribeNewHeads(); + + expect(observable3).not.toBe(observable1); + resolve(true); + }, 3500); + }); + }); + + it('creates different observables for different methods but same arguments', (): void => { + // params do not match here + const observable1 = rpc.chain.getHeader('123'); + const observable2 = rpc.chain.getBlockHash('123'); + + expect(observable2).not.toBe(observable1); + }); + + it('creates single observables for subsequent one-shots', (): void => { + const observable1 = rpc.chain.getBlockHash(123); + const observable2 = rpc.chain.getBlockHash(123); + + expect(observable2).toBe(observable1); + }); + + it('creates multiple observables for subsequent one-shots delayed', async (): Promise => { + const observable1 = rpc.chain.getBlockHash(123); + + const sub = observable1.subscribe((): void => { + sub.unsubscribe(); + }); + + expect(rpc.chain.getBlockHash(123)).toBe(observable1); + + await new Promise((resolve) => { + setTimeout((): void => { + expect(rpc.chain.getBlockHash(123)).not.toBe(observable1); + resolve(true); + }, 3500); + }); + }); +}); diff --git a/packages/rpc-core/src/checkTypes.manual.ts b/packages/rpc-core/src/checkTypes.manual.ts new file mode 100644 index 0000000..9bb7b96 --- /dev/null +++ b/packages/rpc-core/src/checkTypes.manual.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/rpc-augment'; diff --git a/packages/rpc-core/src/index.spec.ts b/packages/rpc-core/src/index.spec.ts new file mode 100644 index 0000000..78f8615 --- /dev/null +++ b/packages/rpc-core/src/index.spec.ts @@ -0,0 +1,55 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { ProviderInterface } from '@pezkuwi/rpc-provider/types'; + +import { MockProvider } from '@pezkuwi/rpc-provider/mock'; +import { TypeRegistry } from '@pezkuwi/types/create'; +import { isFunction } from '@pezkuwi/util'; + +import { RpcCore } from './index.js'; + +describe('Api', (): void => { + const registry = new TypeRegistry(); + + it('requires a provider with a send method', (): void => { + expect( + () => new RpcCore('234', registry, { provider: {} as unknown as ProviderInterface }) + ).toThrow(/Expected Provider/); + }); + + it('allows for the definition of user RPCs', async () => { + const provider = new MockProvider(registry); + const rpc = new RpcCore('567', registry, { + provider, + userRpc: { + testing: { + foo: { + description: 'foo', + params: [{ name: 'bar', type: 'u32' }], + type: 'Balance' + } + } + } + }); + + expect(isFunction((rpc as unknown as { testing: { foo: boolean } }).testing.foo)).toBe(true); + expect(rpc.sections.includes('testing')).toBe(true); + expect(rpc.mapping.get('testing_foo')).toEqual({ + description: 'foo', + isSubscription: false, + jsonrpc: 'testing_foo', + method: 'foo', + params: [{ + name: 'bar', + type: 'u32' + }], + section: 'testing', + type: 'Balance' + }); + + await provider.disconnect(); + }); +}); diff --git a/packages/rpc-core/src/index.ts b/packages/rpc-core/src/index.ts new file mode 100644 index 0000000..1d5ec0b --- /dev/null +++ b/packages/rpc-core/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/rpc-core/src/methodSend.spec.ts b/packages/rpc-core/src/methodSend.spec.ts new file mode 100644 index 0000000..92dc0ff --- /dev/null +++ b/packages/rpc-core/src/methodSend.spec.ts @@ -0,0 +1,75 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { ProviderInterface } from '@pezkuwi/rpc-provider/types'; +import type { DefinitionRpc } from '@pezkuwi/types/types'; + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { RpcCore } from './index.js'; + +describe('methodSend', (): void => { + const registry = new TypeRegistry(); + let rpc: RpcCore; + let methods: { blah: DefinitionRpc; bleh: DefinitionRpc }; + let provider: ProviderInterface; + + beforeEach((): void => { + methods = { + blah: { + description: 'test', + params: [ + { name: 'foo', type: 'Bytes' } + ], + type: 'Bytes' + }, + bleh: { + description: 'test', + params: [], + type: 'Bytes' + } + }; + + provider = { + send: jest.fn((_method: string, params: unknown[]): Promise => + Promise.resolve(params[0]) + ) + } as unknown as ProviderInterface; + + rpc = new RpcCore('987', registry, { provider }); + }); + + it('checks for mismatched parameters', async (): Promise => { + // private method + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access + const method = (rpc as any)._createMethodSend('test', 'bleh', methods.bleh); + + await new Promise((resolve) => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access + method(1).subscribe( + (): void => undefined, + (error: Error): void => { + expect(error.message).toMatch(/parameters, 1 found instead/); + resolve(true); + }); + }); + }); + + it('calls the provider with the correct parameters', async (): Promise => { + // private method + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment,@typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access + const method = (rpc as any)._createMethodSend('test', 'blah', methods.blah); + + await new Promise((resolve) => { + // Args are length-prefixed, because it's a Bytes + // eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access + method(new Uint8Array([2 << 2, 0x12, 0x34])).subscribe((): void => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + expect(provider.send).toHaveBeenCalledWith('test_blah', ['0x1234'], false); + resolve(true); + }); + }); + }); +}); diff --git a/packages/rpc-core/src/mod.ts b/packages/rpc-core/src/mod.ts new file mode 100644 index 0000000..9011b53 --- /dev/null +++ b/packages/rpc-core/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/rpc-core/src/packageDetect.ts b/packages/rpc-core/src/packageDetect.ts new file mode 100644 index 0000000..e766ff7 --- /dev/null +++ b/packages/rpc-core/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2026 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as providerInfo } from '@pezkuwi/rpc-provider/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [providerInfo, typesInfo]); diff --git a/packages/rpc-core/src/packageInfo.ts b/packages/rpc-core/src/packageInfo.ts new file mode 100644 index 0000000..1e92984 --- /dev/null +++ b/packages/rpc-core/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/rpc-core', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/rpc-core/src/replay.spec.ts b/packages/rpc-core/src/replay.spec.ts new file mode 100644 index 0000000..ba54189 --- /dev/null +++ b/packages/rpc-core/src/replay.spec.ts @@ -0,0 +1,73 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { RpcInterface } from './types/index.js'; + +import { MockProvider } from '@pezkuwi/rpc-provider/mock'; +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { RpcCore } from './index.js'; + +describe('replay', (): void => { + const registry = new TypeRegistry(); + let rpc: RpcCore & RpcInterface; + let provider: MockProvider; + + beforeEach((): void => { + provider = new MockProvider(registry); + rpc = new RpcCore('653', registry, { provider }) as (RpcCore & RpcInterface); + }); + + afterEach(async () => { + await provider.disconnect(); + }); + + it('returns the observable value', async (): Promise => { + await new Promise((resolve) => { + rpc.system.chain().subscribe((value?: { toString: () => string }): void => { + if (value) { + // eslint-disable-next-line jest/no-conditional-expect + expect(value.toString()).toEqual('mockChain'); // Defined in MockProvider + resolve(true); + } + }); + }); + }); + + it('replay(1) works as expected', async (): Promise => { + const observable = rpc.system.chain(); + let a: any; + + observable.subscribe((value?: unknown): void => { + a = value; + }); + + await new Promise((resolve) => { + setTimeout((): void => { + // Subscribe again to the same observable, it should fire value immediately + observable.subscribe((value: any): void => { + expect(value).toEqual(a); + resolve(true); + }); + }, 1000); + }); + }); + + it('unsubscribes as required', async (): Promise => { + rpc.provider.unsubscribe = jest.fn(); + + await new Promise((resolve) => { + const subscription = rpc.chain.subscribeNewHeads().subscribe((): void => { + subscription.unsubscribe(); + + // There's a promise inside .unsubscribe(), wait a bit (> 2s) + setTimeout((): void => { + expect(rpc.provider.unsubscribe).toHaveBeenCalled(); + resolve(true); + }, 3500); + }); + }); + }); +}); diff --git a/packages/rpc-core/src/types/base.ts b/packages/rpc-core/src/types/base.ts new file mode 100644 index 0000000..e06ada3 --- /dev/null +++ b/packages/rpc-core/src/types/base.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { ProviderInterface } from '@pezkuwi/rpc-provider/types'; +import type { AnyFunction, Codec, DefinitionRpc } from '@pezkuwi/types/types'; + +export interface RpcInterfaceMethod { + (...params: unknown[]): Observable; + raw (...params: unknown[]): Observable; + meta: DefinitionRpc; +} + +export type AugmentedRpc = F & { + raw: (...params: Parameters) => Observable; + meta: DefinitionRpc; +}; + +/** Stats from the rpc-core layer, including the provider stats */ +export interface RpcCoreStats extends NonNullable { + /** Internal stats for the rpc-core layer */ + core: { + /** The number of values retrieved from the core cache */ + cacheHits: number; + /** The number of entries in the core cache */ + cacheSize: number; + } +} diff --git a/packages/rpc-core/src/types/index.ts b/packages/rpc-core/src/types/index.ts new file mode 100644 index 0000000..738f3cc --- /dev/null +++ b/packages/rpc-core/src/types/index.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// augmented, do an augmentation export +export * from '@pezkuwi/rpc-core/types/jsonrpc'; + +// normal exports +export * from './base.js'; diff --git a/packages/rpc-core/src/types/jsonrpc.ts b/packages/rpc-core/src/types/jsonrpc.ts new file mode 100644 index 0000000..3ca8ecc --- /dev/null +++ b/packages/rpc-core/src/types/jsonrpc.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// eslint-disable-next-line @typescript-eslint/no-empty-interface +export interface RpcInterface { + // augmented +} diff --git a/packages/rpc-core/src/util/drr.spec.ts b/packages/rpc-core/src/util/drr.spec.ts new file mode 100644 index 0000000..89637fa --- /dev/null +++ b/packages/rpc-core/src/util/drr.spec.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { of, timer } from 'rxjs'; + +import { drr } from './index.js'; + +describe('drr', (): void => { + it('should not fire twice the same value', async (): Promise => { + let count = 0; + const sub = of(1, 1).pipe(drr({ delay: 500 })).subscribe((): void => { + ++count; + }); + + await new Promise((resolve) => { + setTimeout((): void => { + expect(count).toBe(1); + sub.unsubscribe(); + + setTimeout(() => { + resolve(true); + }, 2000); + }, 50); + }); + }); + + it('should be a ReplaySubject(1)', async (): Promise => { + const obs = timer(0, 100).pipe(drr({ delay: 500 })); // Starts at 0, increments every 100ms + const sub = obs.subscribe(); // Fire the observable + + await new Promise((resolve) => { + // Subscribe another time after some time, i.e. after the observable has fired + setTimeout((): void => { + const sub = obs.subscribe((value): void => { + expect(value > 1).toBe(true); + + setTimeout(() => { + resolve(true); + }, 2000); + }); + + sub.unsubscribe(); + }, 500); + + sub.unsubscribe(); + }); + }); +}); diff --git a/packages/rpc-core/src/util/drr.ts b/packages/rpc-core/src/util/drr.ts new file mode 100644 index 0000000..7c7abbf --- /dev/null +++ b/packages/rpc-core/src/util/drr.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; + +import { catchError, distinctUntilChanged, publishReplay, refCount, tap } from 'rxjs'; + +import { stringify } from '@pezkuwi/util'; + +import { refCountDelay } from './refCountDelay.js'; + +export type DrrResult = (source$: Observable) => Observable; + +interface Options { + delay?: number; + skipChange?: boolean; + skipTimeout?: boolean; +} + +function CMP (a: unknown, b: unknown): boolean { + return stringify({ t: a }) === stringify({ t: b }); +} + +function ERR (error: Error): Observable { + throw error; +} + +function NOOP (): void { + // empty +} + +/** + * Shorthand for distinctUntilChanged(), publishReplay(1) and refCount(). + * + * @ignore + * @internal + */ +export function drr ({ delay, skipChange = false, skipTimeout = false }: Options = {}): DrrResult { + return (source$: Observable): Observable => + source$.pipe( + catchError(ERR), + skipChange + ? tap(NOOP) + : distinctUntilChanged(CMP), + // eslint-disable-next-line deprecation/deprecation + publishReplay(1), + skipTimeout + // eslint-disable-next-line deprecation/deprecation + ? refCount() + : refCountDelay(delay) + ); +} diff --git a/packages/rpc-core/src/util/index.ts b/packages/rpc-core/src/util/index.ts new file mode 100644 index 0000000..644b7ff --- /dev/null +++ b/packages/rpc-core/src/util/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './drr.js'; +export * from './memo.js'; +export * from './refCountDelay.js'; diff --git a/packages/rpc-core/src/util/memo.ts b/packages/rpc-core/src/util/memo.ts new file mode 100644 index 0000000..b1e240c --- /dev/null +++ b/packages/rpc-core/src/util/memo.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/api-derive authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observer, TeardownLogic } from 'rxjs'; +import type { Memoized } from '@pezkuwi/util/types'; + +import { Observable } from 'rxjs'; + +import { memoize } from '@pezkuwi/util'; + +import { drr } from './drr.js'; + +type ObsFn = (...params: unknown[]) => Observable; + +// Wraps a derive, doing 2 things to optimize calls - +// 1. creates a memo of the inner fn -> Observable, removing when unsubscribed +// 2. wraps the observable in a drr() (which includes an unsub delay) +/** @internal */ +// eslint-disable-next-line @typescript-eslint/ban-types +export function memo (instanceId: string, inner: Function): Memoized> { + const options = { getInstanceId: () => instanceId }; + const cached = memoize( + (...params: unknown[]): Observable => + new Observable((observer: Observer): TeardownLogic => { + const subscription = (inner as ObsFn)(...params).subscribe(observer); + + return (): void => { + cached.unmemoize(...params); + subscription.unsubscribe(); + }; + }).pipe(drr()), + options + ); + + return cached; +} diff --git a/packages/rpc-core/src/util/refCountDelay.ts b/packages/rpc-core/src/util/refCountDelay.ts new file mode 100644 index 0000000..5fc0f87 --- /dev/null +++ b/packages/rpc-core/src/util/refCountDelay.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/rpc-core authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ConnectableObservable, MonoTypeOperatorFunction, TeardownLogic } from 'rxjs'; + +import { asapScheduler, Observable, Subscription } from 'rxjs'; + +/** @internal */ +export function refCountDelay (delay = 1750): MonoTypeOperatorFunction { + return (source: Observable): Observable => { + // state: 0 = disconnected, 1 = disconnecting, 2 = connecting, 3 = connected + let [state, refCount, connection, scheduler] = [0, 0, Subscription.EMPTY, Subscription.EMPTY]; + + return new Observable((ob): TeardownLogic => { + source.subscribe(ob); + + if (refCount++ === 0) { + if (state === 1) { + scheduler.unsubscribe(); + } else { + // eslint-disable-next-line deprecation/deprecation + connection = (source as ConnectableObservable).connect(); + } + + state = 3; + } + + return (): void => { + if (--refCount === 0) { + if (state === 2) { + state = 0; + scheduler.unsubscribe(); + } else { + // state === 3 + state = 1; + scheduler = asapScheduler.schedule((): void => { + state = 0; + connection.unsubscribe(); + }, delay); + } + } + }; + }); + }; +} diff --git a/packages/rpc-core/tsconfig.build.json b/packages/rpc-core/tsconfig.build.json new file mode 100644 index 0000000..fbaa774 --- /dev/null +++ b/packages/rpc-core/tsconfig.build.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/checkTypes.manual.ts", + "**/mod.ts", + "**/*.spec.ts" + ], + "references": [ + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/packages/rpc-core/tsconfig.spec.json b/packages/rpc-core/tsconfig.spec.json new file mode 100644 index 0000000..8d5d955 --- /dev/null +++ b/packages/rpc-core/tsconfig.spec.json @@ -0,0 +1,20 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/checkTypes.manual.ts", + "**/*.spec.ts" + ], + "references": [ + { "path": "../rpc-core/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/packages/rpc-provider/README.md b/packages/rpc-provider/README.md new file mode 100644 index 0000000..98a42b7 --- /dev/null +++ b/packages/rpc-provider/README.md @@ -0,0 +1,68 @@ +# @pezkuwi/rpc-provider + +Generic transport providers to handle the transport of method calls to and from Pezkuwi clients from applications interacting with it. It provides an interface to making RPC calls and is generally, unless you are operating at a low-level and taking care of encoding and decoding of parameters/results, it won't be directly used, rather only passed to a higher-level interface. + +## Provider Selection + +There are three flavours of the providers provided, one allowing for using HTTP as a transport mechanism, the other using WebSockets, and the third one uses bizinikiwi light-client through @bizinikiwi/connect. It is generally recommended to use the [[WsProvider]] since in addition to standard calls, it allows for subscriptions where all changes to state can be pushed from the node to the client. + +All providers are usable (as is the API), in both browser-based and Node.js environments. Polyfills for unsupported functionality are automatically applied based on feature-detection. + +## Usage + +Installation - + +``` +yarn add @pezkuwi/rpc-provider +``` + +WebSocket Initialization - + +```javascript +import { WsProvider } from '@pezkuwi/rpc-provider'; + +// this is the actual default endpoint +const provider = new WsProvider('ws://127.0.0.1:9944'); +const version = await provider.send('client_version', []); + +console.log('client version', version); +``` + +HTTP Initialization - + +```javascript +import { HttpProvider } from '@pezkuwi/rpc-provider'; + +// this is the actual default endpoint +const provider = new HttpProvider('http://127.0.0.1:9933'); +const version = await provider.send('chain_getBlockHash', []); + +console.log('latest block Hash', hash); +``` + +@bizinikiwi/connect Initialization - + +Instantiating a Provider for the Pezkuwi Relay Chain: +```javascript +import { ScProvider } from '@pezkuwi/rpc-provider'; +import * as Sc from '@bizinikiwi/connect'; + +const provider = new ScProvider(Sc, Sc.WellKnownChain.pezkuwi); + +await provider.connect(); + +const version = await provider.send('chain_getBlockHash', []); +``` + +Instantiating a Provider for a Pezkuwi teyrchain: +```javascript +import { ScProvider } from '@pezkuwi/rpc-provider'; +import * as Sc from '@bizinikiwi/connect'; + +const pezkuwiProvider = new ScProvider(Sc, Sc.WellKnownChain.pezkuwi); +const teyrchainProvider = new ScProvider(Sc, teyrchainSpec, pezkuwiProvider); + +await teyrchainProvider.connect(); + +const version = await teyrchainProvider.send('chain_getBlockHash', []); +``` diff --git a/packages/rpc-provider/package.json b/packages/rpc-provider/package.json new file mode 100644 index 0000000..92b29c7 --- /dev/null +++ b/packages/rpc-provider/package.json @@ -0,0 +1,43 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Transport providers for the API", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/rpc-provider#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/rpc-provider", + "repository": { + "directory": "packages/rpc-provider", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/keyring": "^14.0.1", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-support": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/util-crypto": "^14.0.1", + "@pezkuwi/x-fetch": "^14.0.1", + "@pezkuwi/x-global": "^14.0.1", + "@pezkuwi/x-ws": "^14.0.1", + "eventemitter3": "^5.0.1", + "mock-socket": "^9.3.1", + "nock": "^13.5.5", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@bizinikiwi/connect": "2.1.9" + }, + "optionalDependencies": { + "@bizinikiwi/connect": "2.1.9" + } +} diff --git a/packages/rpc-provider/src/bizinikiwi-connect/Health.ts b/packages/rpc-provider/src/bizinikiwi-connect/Health.ts new file mode 100644 index 0000000..a8d3a00 --- /dev/null +++ b/packages/rpc-provider/src/bizinikiwi-connect/Health.ts @@ -0,0 +1,325 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HealthChecker, SmoldotHealth } from './types.js'; + +import { stringify } from '@pezkuwi/util'; + +interface JSONRequest { + id: string; + jsonrpc: '2.0', + method: string; + params: unknown[]; +} + +/* + * Creates a new health checker. + * + * The role of the health checker is to report to the user the health of a smoldot chain. + * + * In order to use it, start by creating a health checker, and call `setSendJsonRpc` to set the + * way to send a JSON-RPC request to a chain. The health checker is disabled by default. Use + * `start()` in order to start the health checks. The `start()` function must be passed a callback called + * when an update to the health of the node is available. + * + * In order to send a JSON-RPC request to the chain, you **must** use the `sendJsonRpc` function + * of the health checker. The health checker rewrites the `id` of the requests it receives. + * + * When the chain send a JSON-RPC response, it must be passed to `responsePassThrough()`. This + * function intercepts the responses destined to the requests that have been emitted by the health + * checker and returns `null`. If the response doesn't concern the health checker, the response is + * simply returned by the function. + * + * # How it works + * + * The health checker periodically calls the `system_health` JSON-RPC call in order to determine + * the health of the chain. + * + * In addition to this, as long as the health check reports that `isSyncing` is `true`, the + * health checker also maintains a subscription to new best blocks using `chain_subscribeNewHeads`. + * Whenever a new block is notified, a health check is performed immediately in order to determine + * whether `isSyncing` has changed to `false`. + * + * Thanks to this subscription, the latency of the report of the switch from `isSyncing: true` to + * `isSyncing: false` is very low. + * + */ +export function healthChecker (): HealthChecker { + // `null` if health checker is not started. + let checker: null | InnerChecker = null; + let sendJsonRpc: null | ((request: string) => void) = null; + + return { + responsePassThrough: (jsonRpcResponse) => { + if (checker === null) { + return jsonRpcResponse; + } + + return checker.responsePassThrough(jsonRpcResponse); + }, + sendJsonRpc: (request) => { + if (!sendJsonRpc) { + throw new Error('setSendJsonRpc must be called before sending requests'); + } + + if (checker === null) { + sendJsonRpc(request); + } else { + checker.sendJsonRpc(request); + } + }, + setSendJsonRpc: (cb) => { + sendJsonRpc = cb; + }, + start: (healthCallback) => { + if (checker !== null) { + throw new Error("Can't start the health checker multiple times in parallel"); + } else if (!sendJsonRpc) { + throw new Error('setSendJsonRpc must be called before starting the health checks'); + } + + checker = new InnerChecker(healthCallback, sendJsonRpc); + checker.update(true); + }, + stop: () => { + if (checker === null) { + return; + } // Already stopped. + + checker.destroy(); + checker = null; + } + }; +} + +class InnerChecker { + #healthCallback: (health: SmoldotHealth) => void; + #currentHealthCheckId: string | null = null; + #currentHealthTimeout: ReturnType | null = null; + #currentSubunsubRequestId: string | null = null; + #currentSubscriptionId: string | null = null; + #requestToSmoldot: (request: JSONRequest) => void; + #isSyncing = false; + #nextRequestId = 0; + + constructor (healthCallback: (health: SmoldotHealth) => void, requestToSmoldot: (request: string) => void) { + this.#healthCallback = healthCallback; + this.#requestToSmoldot = (request: JSONRequest) => requestToSmoldot(stringify(request)); + } + + sendJsonRpc = (request: string): void => { + // Replace the `id` in the request to prefix the request ID with `extern:`. + let parsedRequest: JSONRequest; + + try { + parsedRequest = JSON.parse(request) as JSONRequest; + } catch { + return; + } + + if (parsedRequest.id) { + const newId = 'extern:' + stringify(parsedRequest.id); + + parsedRequest.id = newId; + } + + this.#requestToSmoldot(parsedRequest); + }; + + responsePassThrough = (jsonRpcResponse: string): string | null => { + let parsedResponse: {id: string, result?: SmoldotHealth, params?: { subscription: string }}; + + try { + parsedResponse = JSON.parse(jsonRpcResponse) as { id: string, result?: SmoldotHealth }; + } catch { + return jsonRpcResponse; + } + + // Check whether response is a response to `system_health`. + if (parsedResponse.id && this.#currentHealthCheckId === parsedResponse.id) { + this.#currentHealthCheckId = null; + + // Check whether query was successful. It is possible for queries to fail for + // various reasons, such as the client being overloaded. + if (!parsedResponse.result) { + this.update(false); + + return null; + } + + this.#healthCallback(parsedResponse.result); + this.#isSyncing = parsedResponse.result.isSyncing; + this.update(false); + + return null; + } + + // Check whether response is a response to the subscription or unsubscription. + if ( + parsedResponse.id && + this.#currentSubunsubRequestId === parsedResponse.id + ) { + this.#currentSubunsubRequestId = null; + + // Check whether query was successful. It is possible for queries to fail for + // various reasons, such as the client being overloaded. + if (!parsedResponse.result) { + this.update(false); + + return null; + } + + if (this.#currentSubscriptionId) { + this.#currentSubscriptionId = null; + } else { + this.#currentSubscriptionId = parsedResponse.result as unknown as string; + } + + this.update(false); + + return null; + } + + // Check whether response is a notification to a subscription. + if ( + parsedResponse.params && + this.#currentSubscriptionId && + parsedResponse.params.subscription === this.#currentSubscriptionId + ) { + // Note that after a successful subscription, a notification containing + // the current best block is always returned. Considering that a + // subscription is performed in response to a health check, calling + // `startHealthCheck()` here will lead to a second health check. + // It might seem redundant to perform two health checks in a quick + // succession, but doing so doesn't lead to any problem, and it is + // actually possible for the health to have changed in between as the + // current best block might have been updated during the subscription + // request. + this.update(true); + + return null; + } + + // Response doesn't concern us. + if (parsedResponse.id) { + const id: string = parsedResponse.id; + + // Need to remove the `extern:` prefix. + if (!id.startsWith('extern:')) { + throw new Error('State inconsistency in health checker'); + } + + const newId = JSON.parse(id.slice('extern:'.length)) as string; + + parsedResponse.id = newId; + } + + return stringify(parsedResponse); + }; + + update = (startNow: boolean): void => { + // If `startNow`, clear `#currentHealthTimeout` so that it is set below. + if (startNow && this.#currentHealthTimeout) { + clearTimeout(this.#currentHealthTimeout); + this.#currentHealthTimeout = null; + } + + if (!this.#currentHealthTimeout) { + const startHealthRequest = () => { + this.#currentHealthTimeout = null; + + // No matter what, don't start a health request if there is already one in progress. + // This is sane to do because receiving a response to a health request calls `update()`. + if (this.#currentHealthCheckId) { + return; + } + + // Actual request starting. + this.#currentHealthCheckId = `health-checker:${this.#nextRequestId}`; + this.#nextRequestId += 1; + + this.#requestToSmoldot({ + id: this.#currentHealthCheckId, + jsonrpc: '2.0', + method: 'system_health', + params: [] + }); + }; + + if (startNow) { + startHealthRequest(); + } else { + this.#currentHealthTimeout = setTimeout(startHealthRequest, 1000); + } + } + + if ( + this.#isSyncing && + !this.#currentSubscriptionId && + !this.#currentSubunsubRequestId + ) { + this.startSubscription(); + } + + if ( + !this.#isSyncing && + this.#currentSubscriptionId && + !this.#currentSubunsubRequestId + ) { + this.endSubscription(); + } + }; + + startSubscription = (): void => { + if (this.#currentSubunsubRequestId || this.#currentSubscriptionId) { + throw new Error('Internal error in health checker'); + } + + this.#currentSubunsubRequestId = `health-checker:${this.#nextRequestId}`; + this.#nextRequestId += 1; + + this.#requestToSmoldot({ + id: this.#currentSubunsubRequestId, + jsonrpc: '2.0', + method: 'chain_subscribeNewHeads', + params: [] + }); + }; + + endSubscription = (): void => { + if (this.#currentSubunsubRequestId || !this.#currentSubscriptionId) { + throw new Error('Internal error in health checker'); + } + + this.#currentSubunsubRequestId = `health-checker:${this.#nextRequestId}`; + this.#nextRequestId += 1; + + this.#requestToSmoldot({ + id: this.#currentSubunsubRequestId, + jsonrpc: '2.0', + method: 'chain_unsubscribeNewHeads', + params: [this.#currentSubscriptionId] + }); + }; + + destroy = (): void => { + if (this.#currentHealthTimeout) { + clearTimeout(this.#currentHealthTimeout); + this.#currentHealthTimeout = null; + } + }; +} + +export class HealthCheckError extends Error { + readonly #cause: unknown; + + getCause (): unknown { + return this.#cause; + } + + constructor (response: unknown, message = 'Got error response asking for system health') { + super(message); + + this.#cause = response; + } +} diff --git a/packages/rpc-provider/src/bizinikiwi-connect/index.spec.ts b/packages/rpc-provider/src/bizinikiwi-connect/index.spec.ts new file mode 100644 index 0000000..f10c954 --- /dev/null +++ b/packages/rpc-provider/src/bizinikiwi-connect/index.spec.ts @@ -0,0 +1,671 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type * as Sc from '@bizinikiwi/connect'; +import type { HealthChecker, SmoldotHealth } from './types.js'; + +import { stringify } from '@pezkuwi/util'; + +import { ScProvider } from './index.js'; + +interface MockChain extends Sc.Chain { + _spec: () => string; + _recevedRequests: () => string[]; + _isTerminated: () => boolean; + _triggerCallback: (response: string | object) => void; + _setTerminateInterceptor: (fn: () => void) => void; + _setSendJsonRpcInterceptor: (fn: (rpc: string) => void) => void; + _getLatestRequest: () => string; +} + +interface MockedHealthChecker extends HealthChecker { + _isActive: () => boolean; + _triggerHealthUpdate: (update: SmoldotHealth) => void; +} + +type MockSc = typeof Sc & { + latestChain: () => MockChain; +}; + +enum WellKnownChain { + pezkuwi = 'pezkuwi', + ksmcc3 = 'ksmcc3', + pezkuwichain_v2_2 = 'pezkuwichain_v2_2', + dicle2 = 'dicle2' +} + +const wait = (ms: number) => + new Promise((resolve) => + setTimeout(resolve, ms) + ); + +function healthCheckerMock (): MockedHealthChecker { + let cb: (health: SmoldotHealth) => void = () => undefined; + let sendJsonRpc: (request: string) => void = () => undefined; + let isActive = false; + + return { + _isActive: () => isActive, + _triggerHealthUpdate: (update: SmoldotHealth) => { + cb(update); + }, + responsePassThrough: (response) => response, + sendJsonRpc: (...args) => sendJsonRpc(...args), + setSendJsonRpc: (cb) => { + sendJsonRpc = cb; + }, + start: (x) => { + isActive = true; + cb = x; + }, + stop: () => { + isActive = false; + } + }; +} + +function healthCheckerFactory () { + const _healthCheckers: MockedHealthChecker[] = []; + + return { + _healthCheckers, + _latestHealthChecker: () => _healthCheckers.slice(-1)[0], + healthChecker: () => { + const result = healthCheckerMock(); + + _healthCheckers.push(result); + + return result; + } + }; +} + +function getFakeChain (spec: string): MockChain { + const _receivedRequests: string[] = []; + let _isTerminated = false; + const _pendingResponses: string[] = []; + let _responseResolver: ((value: string) => void) | null = null; + + let terminateInterceptor = Function.prototype; + let sendJsonRpcInterceptor = Function.prototype; + + const triggerCallback = (response: string | object) => { + const res = typeof response === 'string' ? response : stringify(response); + + if (_responseResolver) { + _responseResolver(res); + _responseResolver = null; + } else { + _pendingResponses.push(res); + } + }; + + const nextJsonRpcResponse = (): Promise => { + if (_pendingResponses.length > 0) { + return Promise.resolve(_pendingResponses.shift()!); + } + + return new Promise((resolve) => { + _responseResolver = resolve; + }); + }; + + const jsonRpcResponses: AsyncIterableIterator = { + [Symbol.asyncIterator] () { + return this; + }, + async next () { + if (_isTerminated) { + return { done: true, value: undefined }; + } + + const value = await nextJsonRpcResponse(); + + return { done: false, value }; + } + }; + + return { + _getLatestRequest: () => _receivedRequests[_receivedRequests.length - 1], + _isTerminated: () => _isTerminated, + _recevedRequests: () => _receivedRequests, + _setSendJsonRpcInterceptor: (fn) => { + sendJsonRpcInterceptor = fn; + }, + _setTerminateInterceptor: (fn) => { + terminateInterceptor = fn; + }, + _spec: () => spec, + _triggerCallback: triggerCallback, + addChain: (chainSpec) => + Promise.resolve(getFakeChain(chainSpec)), + remove: () => { + terminateInterceptor(); + _isTerminated = true; + }, + sendJsonRpc: (rpc) => { + sendJsonRpcInterceptor(rpc); + _receivedRequests.push(rpc); + }, + nextJsonRpcResponse, + jsonRpcResponses + }; +} + +function getFakeClient () { + const chains: MockChain[] = []; + let addChainInterceptor: Promise = Promise.resolve(); + let addWellKnownChainInterceptor: Promise = Promise.resolve(); + + return { + _chains: () => chains, + _setAddChainInterceptor: (interceptor: Promise) => { + addChainInterceptor = interceptor; + }, + _setAddWellKnownChainInterceptor: (interceptor: Promise) => { + addWellKnownChainInterceptor = interceptor; + }, + addChain: (chainSpec: string): Promise => + addChainInterceptor.then(() => { + const result = getFakeChain(chainSpec); + + chains.push(result); + + return result; + }), + addWellKnownChain: ( + wellKnownChain: string + ): Promise => + addWellKnownChainInterceptor.then(() => { + const result = getFakeChain(wellKnownChain); + + chains.push(result); + + return result; + }) + }; +} + +function connectorFactory (): MockSc { + const clients: ReturnType[] = []; + const latestClient = () => clients[clients.length - 1]; + + return { + WellKnownChain, + _clients: () => clients, + createScClient: () => { + const result = getFakeClient(); + + clients.push(result); + + return result; + }, + latestChain: () => + latestClient()._chains()[latestClient()._chains().length - 1], + latestClient + } as unknown as MockSc; +} + +function setChainSyncyingStatus (isSyncing: boolean): void { + getCurrentHealthChecker()._triggerHealthUpdate({ + isSyncing, + peers: 1, + shouldHavePeers: true + }); +} + +let mockSc: MockSc; +let mockedHealthChecker: ReturnType; +const getCurrentHealthChecker = () => mockedHealthChecker._latestHealthChecker(); + +describe('ScProvider', () => { + beforeAll(() => { + mockSc = connectorFactory(); + mockedHealthChecker = healthCheckerFactory(); + }); + + describe('on', () => { + it('emits `connected` as soon as the chain is not syncing', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + const onConnected = jest.fn(); + + provider.on('connected', onConnected); + + expect(onConnected).not.toHaveBeenCalled(); + setChainSyncyingStatus(false); + expect(onConnected).toHaveBeenCalled(); + }); + + it('stops receiving notifications after unsubscribing', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + const onConnected = jest.fn(); + + provider.on('connected', onConnected)(); + expect(onConnected).not.toHaveBeenCalled(); + + setChainSyncyingStatus(false); + expect(onConnected).not.toHaveBeenCalled(); + }); + + it('synchronously emits connected if the Provider is already `connected`', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + setChainSyncyingStatus(false); + + const onConnected = jest.fn(); + + provider.on('connected', onConnected); + expect(onConnected).toHaveBeenCalled(); + }); + + it('emits `disconnected` once the chain goes back to syncing', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + setChainSyncyingStatus(false); + + const onConnected = jest.fn(); + const onDisconnected = jest.fn(); + + provider.on('connected', onConnected); + provider.on('disconnected', onDisconnected); + + expect(onConnected).toHaveBeenCalled(); + expect(onDisconnected).not.toHaveBeenCalled(); + + onConnected.mockReset(); + setChainSyncyingStatus(true); + + expect(onConnected).not.toHaveBeenCalled(); + expect(onDisconnected).toHaveBeenCalled(); + }); + }); + + describe('hasSubscriptions', () => { + it('supports subscriptions', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + expect(provider.hasSubscriptions).toBe(true); + }); + }); + + describe('clone', () => { + it('can not be clonned', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + expect(() => provider.clone()).toThrow(); + }); + }); + + describe('connect', () => { + it('does not create a new chain when trying to re-connect while the current chain is syncing', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + expect(chain).toBe(mockSc.latestChain()); + }); + + it('throws when trying to connect on an already connected Provider', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + setChainSyncyingStatus(false); + + await expect( + provider.connect(undefined, mockedHealthChecker.healthChecker) + ).rejects.toThrow(/Already connected/); + }); + }); + + describe('disconnect', () => { + it('removes the chain and cleans up', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + await provider.disconnect(); + + expect(chain._isTerminated()).toBe(true); + }); + + // eslint-disable-next-line jest/expect-expect + it('does not throw when disconnecting on an already disconnected Provider', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + await provider.disconnect(); + await provider.disconnect(); + }); + }); + + describe('send', () => { + it('throws when trying to send a request while the Provider is not connected', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + await expect(provider.send('', [])).rejects.toThrow(); + }); + + it('receives responses to its requests', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + setChainSyncyingStatus(false); + + const responsePromise = provider.send('getData', ['foo']); + + await wait(0); + expect(chain._getLatestRequest()).toEqual( + '{"id":1,"jsonrpc":"2.0","method":"getData","params":["foo"]}' + ); + + const result = { foo: 'foo' }; + + chain._triggerCallback({ + id: 1, + jsonrpc: '2.0', + result + }); + + const response = await responsePromise; + + expect(response).toEqual(result); + }); + + it("rejects when the response can't be deserialized", async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + setChainSyncyingStatus(false); + + setTimeout(() => { + chain._triggerCallback({ + id: 1, + jsonrpc: '2.0' + }); + }, 0); + + await expect(provider.send('getData', ['foo'])).rejects.toThrow(); + }); + + it('rejects when the smoldot chain has crashed', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + setChainSyncyingStatus(false); + await wait(0); + + chain._setSendJsonRpcInterceptor(() => { + throw new Error('boom!'); + }); + + await expect( + provider.send('getData', ['foo']) + ).rejects.toThrow(/Disconnected/); + expect(provider.isConnected).toBe(false); + }); + }); + + describe('subscribe', () => { + it('subscribes and recives messages until it unsubscribes', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + setChainSyncyingStatus(false); + + const unsubscribeToken = 'unsubscribeToken'; + + setTimeout(() => { + chain._triggerCallback({ + id: 1, + jsonrpc: '2.0', + result: unsubscribeToken + }); + }, 0); + + const cb = jest.fn(); + const token = await provider.subscribe( + 'foo', + 'chain_subscribeNewHeads', + ['baz'], + cb + ); + + expect(token).toBe(unsubscribeToken); + expect(cb).not.toHaveBeenCalled(); + + chain._triggerCallback({ + jsonrpc: '2.0', + method: 'foo', + params: { + result: 1, + subscription: token + } + }); + expect(cb).toHaveBeenCalledTimes(1); + expect(cb).toHaveBeenLastCalledWith(null, 1); + + chain._triggerCallback({ + jsonrpc: '2.0', + method: 'foo', + params: { + result: 2, + subscription: token + } + }); + expect(cb).toHaveBeenCalledTimes(2); + expect(cb).toHaveBeenLastCalledWith(null, 2); + + provider + .unsubscribe('foo', 'chain_unsubscribeNewHeads', unsubscribeToken) + .catch(console.error); + + chain._triggerCallback({ + jsonrpc: '2.0', + method: 'foo', + params: { + result: 3, + subscription: token + } + }); + expect(cb).toHaveBeenCalledTimes(2); + expect(cb).toHaveBeenLastCalledWith(null, 2); + }); + + it('ignores subscription messages that were received before the subscription token', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + setChainSyncyingStatus(false); + + const unsubscribeToken = 'unsubscribeToken'; + + chain._triggerCallback({ + jsonrpc: '2.0', + method: 'foo', + params: { + result: 1, + subscription: unsubscribeToken + } + }); + setTimeout(() => { + chain._triggerCallback({ + id: 1, + jsonrpc: '2.0', + result: unsubscribeToken + }); + }, 0); + + const cb = jest.fn(); + const token = await provider.subscribe( + 'foo', + 'chain_subscribeNewHeads', + ['baz'], + cb + ); + + expect(token).toBe(unsubscribeToken); + expect(cb).not.toHaveBeenCalled(); + }); + + it('emits the error when the message has an error', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + setChainSyncyingStatus(false); + await wait(0); + + const unsubscribeToken = 'unsubscribeToken'; + + setTimeout(() => { + chain._triggerCallback({ + id: 1, + jsonrpc: '2.0', + result: unsubscribeToken + }); + }, 0); + + const cb = jest.fn(); + const token = await provider.subscribe( + 'foo', + 'chain_subscribeNewHeads', + ['baz'], + cb + ); + + chain._triggerCallback({ + jsonrpc: '2.0', + method: 'foo', + params: { + error: 'boom', + subscription: unsubscribeToken + } + }); + + expect(token).toBe(unsubscribeToken); + expect(cb).toHaveBeenCalledTimes(1); + expect(cb).toHaveBeenLastCalledWith(expect.any(Error), undefined); + }); + + it('errors when subscribing to an unsupported method', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + setChainSyncyingStatus(false); + + await wait(0); + await expect( + provider.subscribe('foo', 'bar', ['baz'], () => undefined) + ).rejects.toThrow(/Unsupported subscribe method: bar/); + }); + }); + + describe('unsubscribe', () => { + it('rejects when trying to unsubscribe from un unexisting subscription', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + + setChainSyncyingStatus(false); + + await expect( + provider.unsubscribe('', '', '') + ).rejects.toThrow(/Unable to find active subscription/); + }); + }); + + it('cleans up the stale subscriptions once it reconnects', async () => { + const provider = new ScProvider(mockSc, ''); + + await provider.connect(undefined, mockedHealthChecker.healthChecker); + const chain = mockSc.latestChain(); + + // setting the syncing status of the chain to fals so that the Provider + // gets `connected` + setChainSyncyingStatus(false); + + // while connected we create a subscription + const unsubscribeToken = 'unsubscribeToken'; + + setTimeout(() => { + chain._triggerCallback({ + id: 1, + jsonrpc: '2.0', + result: unsubscribeToken + }); + }, 0); + + const cb = jest.fn(); + const token = await provider.subscribe( + 'foo', + 'chain_subscribeNewHeads', + ['baz'], + cb + ); + + // setting the syncing status of the chain to fals so that the Provider + // gets `disconnected` + setChainSyncyingStatus(true); + + // let's wait some time in order to ensure that the stale unsubscription + // messages are not sent until the chain syncing status changes back to false + await wait(200); + + // before we let the healthChecker know that the chain is no longer syncing, + // let's make sure that the chain has received the correct request, and + // most importantly that it has not received a request for unsubscribing + // from the stale subscription, since that request should happen once the + // chain is no longer syncing + expect(chain._recevedRequests()).toEqual([ + '{"id":1,"jsonrpc":"2.0","method":"chain_subscribeNewHeads","params":["baz"]}' + ]); + + // lets change the sync status back to false + setChainSyncyingStatus(false); + + // let's wait one tick to ensure that the microtasks got processed + await wait(0); + + // let's make sure that we have now sent the request for killing the + // stale subscription + expect(chain._recevedRequests()).toEqual([ + '{"id":1,"jsonrpc":"2.0","method":"chain_subscribeNewHeads","params":["baz"]}', + `{"id":2,"jsonrpc":"2.0","method":"chain_unsubscribeNewHeads","params":["${token}"]}`, + '{"id":3,"jsonrpc":"2.0","method":"chain_subscribeNewHeads","params":["baz"]}' + ]); + }); +}); diff --git a/packages/rpc-provider/src/bizinikiwi-connect/index.ts b/packages/rpc-provider/src/bizinikiwi-connect/index.ts new file mode 100644 index 0000000..02f8604 --- /dev/null +++ b/packages/rpc-provider/src/bizinikiwi-connect/index.ts @@ -0,0 +1,427 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type * as ScType from '@bizinikiwi/connect'; +import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted } from '../types.js'; + +import { EventEmitter } from 'eventemitter3'; + +import { isError, isFunction, isObject, logger, noop, objectSpread } from '@pezkuwi/util'; + +import { RpcCoder } from '../coder/index.js'; +import { healthChecker } from './Health.js'; + +type ResponseCallback = (response: string | Error) => void; + +// We define the interface with items we use - this means that we don't really +// need to be passed a full `import * as Sc from '@ubstrate/connect'`, but can +// also make do with a { WellKnownChain, createScClient } interface +interface BizinikiwiConnect { + WellKnownChain: typeof ScType['WellKnownChain']; + createScClient: typeof ScType['createScClient']; +} + +const l = logger('api-bizinikiwi-connect'); + +// These methods have been taken from: +// https://github.com/pezkuwichain/smoldot/blob/17425040ddda47d539556eeaf62b88c4240d1d42/src/json_rpc/methods.rs#L338-L462 +// It's important to take into account that smoldot is adding support to the new +// json-rpc-interface https://pezkuwichain.github.io/json-rpc-interface-spec/ +// However, at the moment this list only includes methods that belong to the "old" API +const subscriptionUnsubscriptionMethods = new Map([ + ['author_submitAndWatchExtrinsic', 'author_unwatchExtrinsic'], + ['chain_subscribeAllHeads', 'chain_unsubscribeAllHeads'], + ['chain_subscribeFinalizedHeads', 'chain_unsubscribeFinalizedHeads'], + ['chain_subscribeFinalisedHeads', 'chain_subscribeFinalisedHeads'], + ['chain_subscribeNewHeads', 'chain_unsubscribeNewHeads'], + ['chain_subscribeNewHead', 'chain_unsubscribeNewHead'], + ['chain_subscribeRuntimeVersion', 'chain_unsubscribeRuntimeVersion'], + ['subscribe_newHead', 'unsubscribe_newHead'], + ['state_subscribeRuntimeVersion', 'state_unsubscribeRuntimeVersion'], + ['state_subscribeStorage', 'state_unsubscribeStorage'] +]); + +const scClients = new WeakMap(); + +interface ActiveSubs { + type: string, + method: string, + params: any[], + callback: ProviderInterfaceCallback +} + +export class ScProvider implements ProviderInterface { + readonly #Sc: BizinikiwiConnect; + readonly #coder: RpcCoder = new RpcCoder(); + readonly #spec: string | ScType.WellKnownChain; + readonly #sharedSandbox?: ScProvider | undefined; + readonly #subscriptions = new Map(); + readonly #resubscribeMethods = new Map(); + readonly #requests = new Map(); + readonly #wellKnownChains: Set; + readonly #eventemitter: EventEmitter = new EventEmitter(); + + #chain: Promise | null = null; + #isChainReady = false; + + public constructor (Sc: BizinikiwiConnect, spec: string | ScType.WellKnownChain, sharedSandbox?: ScProvider) { + if (!isObject(Sc) || !isObject(Sc.WellKnownChain) || !isFunction(Sc.createScClient)) { + throw new Error('Expected an @bizinikiwi/connect interface as first parameter to ScProvider'); + } + + this.#Sc = Sc; + this.#spec = spec; + this.#sharedSandbox = sharedSandbox; + this.#wellKnownChains = new Set(Object.values(Sc.WellKnownChain)); + } + + public get hasSubscriptions (): boolean { + // Indicates that subscriptions are supported + return !!true; + } + + public get isClonable (): boolean { + return !!false; + } + + public get isConnected (): boolean { + return !!this.#chain && this.#isChainReady; + } + + public clone (): ProviderInterface { + throw new Error('clone() is not supported.'); + } + + // Config details can be found in @bizinikiwi/connect repo following the link: + // https://github.com/pezkuwichain/bizinikiwi-connect/blob/main/packages/connect/src/connector/index.ts + async connect (config?: ScType.Config, checkerFactory = healthChecker): Promise { + if (this.isConnected) { + throw new Error('Already connected!'); + } + + // it could happen that after emitting `disconnected` due to the fact that + // smoldot is syncing, the consumer tries to reconnect after a certain amount + // of time... In which case we want to make sure that we don't create a new + // chain. + if (this.#chain) { + await this.#chain; + + return; + } + + if (this.#sharedSandbox && !this.#sharedSandbox.isConnected) { + await this.#sharedSandbox.connect(); + } + + const client = this.#sharedSandbox + ? scClients.get(this.#sharedSandbox) + : this.#Sc.createScClient(config); + + if (!client) { + throw new Error('Unknown ScProvider!'); + } + + scClients.set(this, client); + + const hc = checkerFactory(); + + const onResponse = (res: string): void => { + const hcRes = hc.responsePassThrough(res); + + if (!hcRes) { + return; + } + + const response = JSON.parse(hcRes) as JsonRpcResponse; + let decodedResponse: string | Error; + + try { + decodedResponse = this.#coder.decodeResponse(response); + } catch (e) { + decodedResponse = e as Error; + } + + // It's not a subscription message, but rather a standar RPC response + if (response.params?.subscription === undefined || !response.method) { + return this.#requests.get(response.id)?.(decodedResponse); + } + + // We are dealing with a subscription message + const subscriptionId = `${response.method}::${response.params.subscription}`; + + const callback = this.#subscriptions.get(subscriptionId)?.[0]; + + callback?.(decodedResponse); + }; + + const addChain = this.#sharedSandbox + ? (async (...args) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const source = this.#sharedSandbox!; + + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + return (await source.#chain)!.addChain(...args); + }) as ScType.AddChain + : this.#wellKnownChains.has(this.#spec as ScType.WellKnownChain) + ? client.addWellKnownChain + : client.addChain; + + this.#chain = addChain(this.#spec as ScType.WellKnownChain).then((chain) => { + hc.setSendJsonRpc(chain.sendJsonRpc); + + // Start async response processing loop + // This replaces the callback-based API from older @substrate/connect versions + (async () => { + try { + for await (const res of chain.jsonRpcResponses) { + onResponse(res); + } + } catch { + // Chain was removed or connection closed - this is expected + } + })(); + + this.#isChainReady = false; + + const cleanup = () => { + // If there are any callbacks left, we have to reject/error them. + // Otherwise, that would cause a memory leak. + const disconnectionError = new Error('Disconnected'); + + this.#requests.forEach((cb) => cb(disconnectionError)); + this.#subscriptions.forEach(([cb]) => cb(disconnectionError)); + this.#subscriptions.clear(); + }; + + const staleSubscriptions: { + unsubscribeMethod: string + id: number | string + }[] = []; + + const killStaleSubscriptions = () => { + if (staleSubscriptions.length === 0) { + return; + } + + const stale = staleSubscriptions.pop(); + + if (!stale) { + throw new Error('Unable to get stale subscription'); + } + + const { id, unsubscribeMethod } = stale; + + Promise + .race([ + this.send(unsubscribeMethod, [id]).catch(noop), + new Promise((resolve) => setTimeout(resolve, 500)) + ]) + .then(killStaleSubscriptions) + .catch(noop); + }; + + hc.start((health) => { + const isReady = + !health.isSyncing && (health.peers > 0 || !health.shouldHavePeers); + + // if it's the same as before, then nothing has changed and we are done + if (this.#isChainReady === isReady) { + return; + } + + this.#isChainReady = isReady; + + if (!isReady) { + // If we've reached this point, that means that the chain used to be "ready" + // and now we are about to emit `disconnected`. + // + // This will cause the PezkuwiJs API think that the connection is + // actually dead. In reality the smoldot chain is not dead, of course. + // However, we have to cleanup all the existing callbacks because when + // the smoldot chain stops syncing, then we will emit `connected` and + // the PezkuwiJs API will try to re-create the previous + // subscriptions and requests. Although, now is not a good moment + // to be sending unsubscription messages to the smoldot chain, we + // should wait until is no longer syncing to send the unsubscription + // messages from the stale subscriptions of the previous connection. + // + // That's why -before we perform the cleanup of `this.#subscriptions`- + // we keep the necessary information that we will need later on to + // kill the stale subscriptions. + [...this.#subscriptions.values()].forEach((s) => { + staleSubscriptions.push(s[1]); + }); + cleanup(); + + this.#eventemitter.emit('disconnected'); + } else { + killStaleSubscriptions(); + + this.#eventemitter.emit('connected'); + + if (this.#resubscribeMethods.size) { + this.#resubscribe(); + } + } + }); + + return objectSpread({}, chain, { + remove: () => { + hc.stop(); + chain.remove(); + cleanup(); + }, + sendJsonRpc: hc.sendJsonRpc.bind(hc) + }); + }); + + try { + await this.#chain; + } catch (e) { + this.#chain = null; + this.#eventemitter.emit('error', e); + throw e; + } + } + + #resubscribe = (): void => { + const promises: any[] = []; + + this.#resubscribeMethods.forEach((subDetails: ActiveSubs): void => { + // only re-create subscriptions which are not in author (only area where + // transactions are created, i.e. submissions such as 'author_submitAndWatchExtrinsic' + // are not included (and will not be re-broadcast) + if (subDetails.type.startsWith('author_')) { + return; + } + + try { + const promise = new Promise((resolve) => { + this.subscribe(subDetails.type, subDetails.method, subDetails.params, subDetails.callback).catch((error) => console.log(error)); + resolve(); + }); + + promises.push(promise); + } catch (error) { + l.error(error); + } + }); + + Promise.all(promises).catch((err) => l.log(err)); + }; + + async disconnect (): Promise { + if (!this.#chain) { + return; + } + + const chain = await this.#chain; + + this.#chain = null; + this.#isChainReady = false; + + try { + chain.remove(); + } catch (_) {} + + this.#eventemitter.emit('disconnected'); + } + + public on (type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void { + // It's possible. Although, quite unlikely, that by the time that pezkuwi + // subscribes to the `connected` event, the Provider is already connected. + // In that case, we must emit to let the consumer know that we are connected. + if (type === 'connected' && this.isConnected) { + sub(); + } + + this.#eventemitter.on(type, sub); + + return (): void => { + this.#eventemitter.removeListener(type, sub); + }; + } + + public async send (method: string, params: unknown[]): Promise { + if (!this.isConnected || !this.#chain) { + throw new Error('Provider is not connected'); + } + + const chain = await this.#chain; + const [id, json] = this.#coder.encodeJson(method, params); + + const result = new Promise((resolve, reject): void => { + this.#requests.set(id, (response) => { + (isError(response) ? reject : resolve)(response as unknown as T); + }); + + try { + chain.sendJsonRpc(json); + } catch (e) { + this.#chain = null; + + try { + chain.remove(); + } catch (_) {} + + this.#eventemitter.emit('error', e); + } + }); + + try { + return await result; + } finally { + // let's ensure that once the Promise is resolved/rejected, then we remove + // remove its entry from the internal #requests + this.#requests.delete(id); + } + } + + public async subscribe (type: string, method: string, params: any[], callback: ProviderInterfaceCallback): Promise { + if (!subscriptionUnsubscriptionMethods.has(method)) { + throw new Error(`Unsupported subscribe method: ${method}`); + } + + const id = await this.send(method, params); + const subscriptionId = `${type}::${id}`; + + const cb = (response: Error | string) => { + if (response instanceof Error) { + callback(response, undefined); + } else { + callback(null, response); + } + }; + + const unsubscribeMethod = subscriptionUnsubscriptionMethods.get(method); + + if (!unsubscribeMethod) { + throw new Error('Invalid unsubscribe method found'); + } + + this.#resubscribeMethods.set(subscriptionId, { callback, method, params, type }); + + this.#subscriptions.set(subscriptionId, [cb, { id, unsubscribeMethod }]); + + return id; + } + + public unsubscribe (type: string, method: string, id: number | string): Promise { + if (!this.isConnected) { + throw new Error('Provider is not connected'); + } + + const subscriptionId = `${type}::${id}`; + + if (!this.#subscriptions.has(subscriptionId)) { + return Promise.reject( + new Error(`Unable to find active subscription=${subscriptionId}`) + ); + } + + this.#resubscribeMethods.delete(subscriptionId); + this.#subscriptions.delete(subscriptionId); + + return this.send(method, [id]); + } +} diff --git a/packages/rpc-provider/src/bizinikiwi-connect/types.ts b/packages/rpc-provider/src/bizinikiwi-connect/types.ts new file mode 100644 index 0000000..371f497 --- /dev/null +++ b/packages/rpc-provider/src/bizinikiwi-connect/types.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export interface SmoldotHealth { + isSyncing: boolean + peers: number + shouldHavePeers: boolean +} + +export interface HealthChecker { + setSendJsonRpc(sendRequest: (request: string) => void): void + start(healthCallback: (health: SmoldotHealth) => void): void + stop(): void + sendJsonRpc(request: string): void + responsePassThrough(response: string): string | null +} diff --git a/packages/rpc-provider/src/bundle.ts b/packages/rpc-provider/src/bundle.ts new file mode 100644 index 0000000..3e2c40e --- /dev/null +++ b/packages/rpc-provider/src/bundle.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { ScProvider } from './bizinikiwi-connect/index.js'; +export { HttpProvider } from './http/index.js'; +export { DEFAULT_CAPACITY, LRUCache } from './lru.js'; +export { packageInfo } from './packageInfo.js'; +export { WsProvider } from './ws/index.js'; diff --git a/packages/rpc-provider/src/coder/decodeResponse.spec.ts b/packages/rpc-provider/src/coder/decodeResponse.spec.ts new file mode 100644 index 0000000..1e66fea --- /dev/null +++ b/packages/rpc-provider/src/coder/decodeResponse.spec.ts @@ -0,0 +1,70 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { JsonRpcResponse } from '../types.js'; + +import { RpcCoder } from './index.js'; + +describe('decodeResponse', (): void => { + let coder: RpcCoder; + + beforeEach((): void => { + coder = new RpcCoder(); + }); + + it('expects a non-empty input object', (): void => { + expect( + () => coder.decodeResponse(undefined as unknown as JsonRpcResponse) + ).toThrow(/Invalid jsonrpc/); + }); + + it('expects a valid jsonrpc field', (): void => { + expect( + () => coder.decodeResponse({} as JsonRpcResponse) + ).toThrow(/Invalid jsonrpc/); + }); + + it('expects a valid id field', (): void => { + expect( + () => coder.decodeResponse({ jsonrpc: '2.0' } as JsonRpcResponse) + ).toThrow(/Invalid id/); + }); + + it('expects a valid result field', (): void => { + expect( + () => coder.decodeResponse({ id: 1, jsonrpc: '2.0' } as JsonRpcResponse) + ).toThrow(/No result/); + }); + + it('throws any error found', (): void => { + expect( + () => coder.decodeResponse({ error: { code: 123, message: 'test error' }, id: 1, jsonrpc: '2.0' } as JsonRpcResponse) + ).toThrow(/123: test error/); + }); + + it('throws any error found, with data', (): void => { + expect( + () => coder.decodeResponse({ error: { code: 123, data: 'Error("Some random error description")', message: 'test error' }, id: 1, jsonrpc: '2.0' } as JsonRpcResponse) + ).toThrow(/123: test error: Some random error description/); + }); + + it('allows for number subscription ids', (): void => { + expect( + coder.decodeResponse({ id: 1, jsonrpc: '2.0', method: 'test', params: { result: 'test result', subscription: 1 } } as JsonRpcResponse) + ).toEqual('test result'); + }); + + it('allows for string subscription ids', (): void => { + expect( + coder.decodeResponse({ id: 1, jsonrpc: '2.0', method: 'test', params: { result: 'test result', subscription: 'abc' } } as JsonRpcResponse) + ).toEqual('test result'); + }); + + it('returns the result', (): void => { + expect( + coder.decodeResponse({ id: 1, jsonrpc: '2.0', result: 'some result' } as JsonRpcResponse) + ).toEqual('some result'); + }); +}); diff --git a/packages/rpc-provider/src/coder/encodeJson.spec.ts b/packages/rpc-provider/src/coder/encodeJson.spec.ts new file mode 100644 index 0000000..ee4e4cd --- /dev/null +++ b/packages/rpc-provider/src/coder/encodeJson.spec.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { RpcCoder } from './index.js'; + +describe('encodeJson', (): void => { + let coder: RpcCoder; + + beforeEach((): void => { + coder = new RpcCoder(); + }); + + it('encodes a valid JsonRPC JSON string', (): void => { + expect( + coder.encodeJson('method', ['params']) + ).toEqual([1, '{"id":1,"jsonrpc":"2.0","method":"method","params":["params"]}']); + }); +}); diff --git a/packages/rpc-provider/src/coder/encodeObject.spec.ts b/packages/rpc-provider/src/coder/encodeObject.spec.ts new file mode 100644 index 0000000..65b555d --- /dev/null +++ b/packages/rpc-provider/src/coder/encodeObject.spec.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { RpcCoder } from './index.js'; + +describe('encodeObject', (): void => { + let coder: RpcCoder; + + beforeEach((): void => { + coder = new RpcCoder(); + }); + + it('encodes a valid JsonRPC object', (): void => { + expect( + coder.encodeObject('method', ['a', 'b']) + ).toEqual([1, { + id: 1, + jsonrpc: '2.0', + method: 'method', + params: ['a', 'b'] + }]); + }); +}); diff --git a/packages/rpc-provider/src/coder/error.spec.ts b/packages/rpc-provider/src/coder/error.spec.ts new file mode 100644 index 0000000..d5f9eb2 --- /dev/null +++ b/packages/rpc-provider/src/coder/error.spec.ts @@ -0,0 +1,111 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { isError } from '@pezkuwi/util'; + +import RpcError from './error.js'; + +describe('RpcError', (): void => { + describe('constructor', (): void => { + it('constructs an Error that is still an Error', (): void => { + expect( + isError( + new RpcError() + ) + ).toEqual(true); + }); + }); + + describe('static', (): void => { + it('exposes the .CODES as a static', (): void => { + expect( + Object.keys(RpcError.CODES) + ).not.toEqual(0); + }); + }); + + describe('constructor properties', (): void => { + it('sets the .message property', (): void => { + expect( + new RpcError('test message').message + ).toEqual('test message'); + }); + + it("sets the .message to '' when not set", (): void => { + expect( + new RpcError().message + ).toEqual(''); + }); + + it('sets the .code property', (): void => { + expect( + new RpcError('test message', 1234).code + ).toEqual(1234); + }); + + it('sets the .code to UKNOWN when not set', (): void => { + expect( + new RpcError('test message').code + ).toEqual(RpcError.CODES.UNKNOWN); + }); + + it('sets the .data property', (): void => { + const data = 'here'; + + expect( + new RpcError('test message', 1234, data).data + ).toEqual(data); + }); + + it('sets the .data property to generic value', (): void => { + const data = { custom: 'value' } as const; + + expect( + new RpcError('test message', 1234, data).data + ).toEqual(data); + }); + }); + + describe('stack traces', (): void => { + // eslint-disable-next-line @typescript-eslint/ban-types + let captureStackTrace: (targetObject: Record, constructorOpt?: Function | undefined) => void; + + beforeEach((): void => { + captureStackTrace = Error.captureStackTrace; + + Error.captureStackTrace = function (error): void { + Object.defineProperty(error, 'stack', { + configurable: true, + get: function getStack (): string { + const value = 'some stack returned'; + + Object.defineProperty(this, 'stack', { value }); + + return value; + } + }); + }; + }); + + afterEach((): void => { + Error.captureStackTrace = captureStackTrace; + }); + + it('captures via captureStackTrace when available', (): void => { + expect( + new RpcError().stack + ).toEqual('some stack returned'); + }); + + it('captures via stack when captureStackTrace not available', (): void => { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + Error.captureStackTrace = null as any; + + expect( + new RpcError().stack.length + ).not.toEqual(0); + }); + }); +}); diff --git a/packages/rpc-provider/src/coder/error.ts b/packages/rpc-provider/src/coder/error.ts new file mode 100644 index 0000000..41f5546 --- /dev/null +++ b/packages/rpc-provider/src/coder/error.ts @@ -0,0 +1,66 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { RpcErrorInterface } from '../types.js'; + +import { isFunction } from '@pezkuwi/util'; + +const UNKNOWN = -99999; + +function extend> (that: RpcError, name: K, value: RpcError[K]): void { + Object.defineProperty(that, name, { + configurable: true, + enumerable: false, + value + }); +} + +/** + * @name RpcError + * @summary Extension to the basic JS Error. + * @description + * The built-in JavaScript Error class is extended by adding a code to allow for Error categorization. In addition to the normal `stack`, `message`, the numeric `code` and `data` (any types) parameters are available on the object. + * @example + *
+ * + * ```javascript + * const { RpcError } from '@pezkuwi/util'); + * + * throw new RpcError('some message', RpcError.CODES.METHOD_NOT_FOUND); // => error.code = -32601 + * ``` + */ +export default class RpcError extends Error implements RpcErrorInterface { + public code!: number; + + public data?: T; + + public override message!: string; + + public override name!: string; + + public override stack!: string; + + public constructor (message = '', code: number = UNKNOWN, data?: T) { + super(); + + extend(this, 'message', String(message)); + extend(this, 'name', this.constructor.name); + extend(this, 'data', data); + extend(this, 'code', code); + + if (isFunction(Error.captureStackTrace)) { + Error.captureStackTrace(this, this.constructor); + } else { + const { stack } = new Error(message); + + stack && extend(this, 'stack', stack); + } + } + + public static CODES = { + ASSERT: -90009, + INVALID_JSONRPC: -99998, + METHOD_NOT_FOUND: -32601, // Rust client + UNKNOWN + }; +} diff --git a/packages/rpc-provider/src/coder/index.ts b/packages/rpc-provider/src/coder/index.ts new file mode 100644 index 0000000..d17d81d --- /dev/null +++ b/packages/rpc-provider/src/coder/index.ts @@ -0,0 +1,88 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { JsonRpcRequest, JsonRpcResponse, JsonRpcResponseBaseError } from '../types.js'; + +import { isNumber, isString, isUndefined, stringify } from '@pezkuwi/util'; + +import RpcError from './error.js'; + +function formatErrorData (data?: string | number): string { + if (isUndefined(data)) { + return ''; + } + + const formatted = `: ${isString(data) + ? data.replace(/Error\("/g, '').replace(/\("/g, '(').replace(/"\)/g, ')').replace(/\(/g, ', ').replace(/\)/g, '') + : stringify(data)}`; + + // We need some sort of cut-off here since these can be very large and + // very nested, pick a number and trim the result display to it + return formatted.length <= 256 + ? formatted + : `${formatted.substring(0, 255)}…`; +} + +function checkError (error?: JsonRpcResponseBaseError): void { + if (error) { + const { code, data, message } = error; + + throw new RpcError(`${code}: ${message}${formatErrorData(data)}`, code, data); + } +} + +/** @internal */ +export class RpcCoder { + #id = 0; + + public decodeResponse (response?: JsonRpcResponse): T { + if (!response || response.jsonrpc !== '2.0') { + throw new Error('Invalid jsonrpc field in decoded object'); + } + + const isSubscription = !isUndefined(response.params) && !isUndefined(response.method); + + if ( + !isNumber(response.id) && + ( + !isSubscription || ( + !isNumber(response.params.subscription) && + !isString(response.params.subscription) + ) + ) + ) { + throw new Error('Invalid id field in decoded object'); + } + + checkError(response.error); + + if (response.result === undefined && !isSubscription) { + throw new Error('No result found in jsonrpc response'); + } + + if (isSubscription) { + checkError(response.params.error); + + return response.params.result; + } + + return response.result; + } + + public encodeJson (method: string, params: unknown[]): [number, string] { + const [id, data] = this.encodeObject(method, params); + + return [id, stringify(data)]; + } + + public encodeObject (method: string, params: unknown[]): [number, JsonRpcRequest] { + const id = ++this.#id; + + return [id, { + id, + jsonrpc: '2.0', + method, + params + }]; + } +} diff --git a/packages/rpc-provider/src/defaults.ts b/packages/rpc-provider/src/defaults.ts new file mode 100644 index 0000000..ce71d86 --- /dev/null +++ b/packages/rpc-provider/src/defaults.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +const HTTP_URL = 'http://127.0.0.1:9933'; +const WS_URL = 'ws://127.0.0.1:9944'; + +export default { + HTTP_URL, + WS_URL +}; diff --git a/packages/rpc-provider/src/http/index.spec.ts b/packages/rpc-provider/src/http/index.spec.ts new file mode 100644 index 0000000..3c3ddbc --- /dev/null +++ b/packages/rpc-provider/src/http/index.spec.ts @@ -0,0 +1,72 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TEST_HTTP_URL } from '../mock/mockHttp.js'; +import { HttpProvider } from './index.js'; + +describe('Http', (): void => { + let http: HttpProvider; + + beforeEach((): void => { + http = new HttpProvider(TEST_HTTP_URL); + }); + + it('requires an http:// prefixed endpoint', (): void => { + expect( + () => new HttpProvider('ws://') + ).toThrow(/with 'http/); + }); + + it('allows https:// endpoints', (): void => { + expect( + () => new HttpProvider('https://') + ).not.toThrow(); + }); + + it('allows custom headers', (): void => { + expect( + () => new HttpProvider('https://', { foo: 'bar' }) + ).not.toThrow(); + }); + + it('should throw error on negative cache capacity or TTL', () => { + expect(() => + new HttpProvider(TEST_HTTP_URL, {}, -5, 30000) + ).toThrow(/'capacity' must be a non-negative integer/); + + expect(() => + new HttpProvider(TEST_HTTP_URL, {}, 1024, -1000) + ).toThrow(/'ttl' must be between 0 and 1800000 ms or null to disable/); + }); + + it('allow clone', (): void => { + const clone = http.clone(); + /* eslint-disable */ + expect((clone as any)['#endpoint']).toEqual((http as any)['#endpoint']); + expect((clone as any)['#headers']).toEqual((http as any)['#headers']); + /* eslint-enable */ + }); + + it('always returns isConnected true', (): void => { + expect(http.isConnected).toEqual(true); + }); + + it('does not (yet) support subscribe', async (): Promise => { + await http.subscribe('', '', [], (cb): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect(cb).toEqual(expect.anything()); + }).catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/does not have subscriptions/); + }); + }); + + it('does not (yet) support unsubscribe', async (): Promise => { + await http.unsubscribe('', '', 0).catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/does not have subscriptions/); + }); + }); +}); diff --git a/packages/rpc-provider/src/http/index.ts b/packages/rpc-provider/src/http/index.ts new file mode 100644 index 0000000..a3b6c6f --- /dev/null +++ b/packages/rpc-provider/src/http/index.ts @@ -0,0 +1,238 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type RpcError from '../coder/error.js'; +import type { JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, ProviderStats } from '../types.js'; + +import { logger, noop, stringify } from '@pezkuwi/util'; +import { fetch } from '@pezkuwi/x-fetch'; + +import { RpcCoder } from '../coder/index.js'; +import defaults from '../defaults.js'; +import { DEFAULT_CAPACITY, DEFAULT_TTL, LRUCache } from '../lru.js'; + +const ERROR_SUBSCRIBE = 'HTTP Provider does not have subscriptions, use WebSockets instead'; + +const l = logger('api-http'); + +/** + * # @pezkuwi/rpc-provider + * + * @name HttpProvider + * + * @description The HTTP Provider allows sending requests using HTTP to a HTTP RPC server TCP port. It does not support subscriptions so you won't be able to listen to events such as new blocks or balance changes. It is usually preferable using the [[WsProvider]]. + * + * @example + *
+ * + * ```javascript + * import Api from '@pezkuwi/api/promise'; + * import { HttpProvider } from '@pezkuwi/rpc-provider'; + * + * const provider = new HttpProvider('http://127.0.0.1:9933'); + * const api = new Api(provider); + * ``` + * + * @see [[WsProvider]] + */ +export class HttpProvider implements ProviderInterface { + readonly #callCache: LRUCache; + readonly #cacheCapacity: number; + readonly #coder: RpcCoder; + readonly #endpoint: string; + readonly #headers: Record; + readonly #stats: ProviderStats; + readonly #ttl: number | null | undefined; + + /** + * @param {string} endpoint The endpoint url starting with http:// + * @param {Record} headers The headers provided to the underlying Http Endpoint + * @param {number} [cacheCapacity] Custom size of the HttpProvider LRUCache. Defaults to `DEFAULT_CAPACITY` (1024) + * @param {number} [cacheTtl] Custom TTL of the HttpProvider LRUCache. Determines how long an object can live in the cache. Defaults to `DEFAULT_TTL` (30000) + */ + constructor (endpoint: string = defaults.HTTP_URL, headers: Record = {}, cacheCapacity?: number, cacheTtl?: number | null) { + if (!/^(https|http):\/\//.test(endpoint)) { + throw new Error(`Endpoint should start with 'http://' or 'https://', received '${endpoint}'`); + } + + this.#coder = new RpcCoder(); + this.#endpoint = endpoint; + this.#headers = headers; + this.#cacheCapacity = cacheCapacity === 0 ? 0 : cacheCapacity || DEFAULT_CAPACITY; + + const ttl = cacheTtl === undefined ? DEFAULT_TTL : cacheTtl; + + this.#callCache = new LRUCache(cacheCapacity === 0 ? 0 : cacheCapacity || DEFAULT_CAPACITY, ttl); + this.#ttl = cacheTtl; + + this.#stats = { + active: { requests: 0, subscriptions: 0 }, + total: { bytesRecv: 0, bytesSent: 0, cached: 0, errors: 0, requests: 0, subscriptions: 0, timeout: 0 } + }; + } + + /** + * @summary `true` when this provider supports subscriptions + */ + public get hasSubscriptions (): boolean { + return !!false; + } + + /** + * @description Returns a clone of the object + */ + public clone (): HttpProvider { + return new HttpProvider(this.#endpoint, this.#headers); + } + + /** + * @description Manually connect from the connection + */ + public async connect (): Promise { + // noop + } + + /** + * @description Manually disconnect from the connection + */ + public async disconnect (): Promise { + // noop + } + + /** + * @description Returns the connection stats + */ + public get stats (): ProviderStats { + return this.#stats; + } + + /** + * @description Returns the connection stats + */ + public get ttl (): number | null | undefined { + return this.#ttl; + } + + /** + * @summary `true` when this provider supports clone() + */ + public get isClonable (): boolean { + return !!true; + } + + /** + * @summary Whether the node is connected or not. + * @return {boolean} true if connected + */ + public get isConnected (): boolean { + return !!true; + } + + /** + * @summary Events are not supported with the HttpProvider, see [[WsProvider]]. + * @description HTTP Provider does not have 'on' emitters. WebSockets should be used instead. + */ + public on (_type: ProviderInterfaceEmitted, _sub: ProviderInterfaceEmitCb): () => void { + l.error('HTTP Provider does not have \'on\' emitters, use WebSockets instead'); + + return noop; + } + + /** + * @summary Send HTTP POST Request with Body to configured HTTP Endpoint. + */ + public async send (method: string, params: unknown[], isCacheable?: boolean): Promise { + this.#stats.total.requests++; + + const [, body] = this.#coder.encodeJson(method, params); + + if (this.#cacheCapacity === 0) { + return this.#send(body); + } + + const cacheKey = isCacheable ? `${method}::${stringify(params)}` : ''; + let resultPromise: Promise | null = isCacheable + ? this.#callCache.get(cacheKey) + : null; + + if (!resultPromise) { + resultPromise = this.#send(body); + + if (isCacheable) { + this.#callCache.set(cacheKey, resultPromise); + } + } else { + this.#stats.total.cached++; + } + + return resultPromise; + } + + async #send (body: string): Promise { + this.#stats.active.requests++; + this.#stats.total.bytesSent += body.length; + + try { + const response = await fetch(this.#endpoint, { + body, + headers: { + Accept: 'application/json', + 'Content-Length': `${body.length}`, + 'Content-Type': 'application/json', + ...this.#headers + }, + method: 'POST' + }); + + if (!response.ok) { + throw new Error(`[${response.status}]: ${response.statusText}`); + } + + const result = await response.text(); + + this.#stats.total.bytesRecv += result.length; + + const decoded = this.#coder.decodeResponse(JSON.parse(result) as JsonRpcResponse); + + this.#stats.active.requests--; + + return decoded; + } catch (e) { + this.#stats.active.requests--; + this.#stats.total.errors++; + + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const { method, params } = JSON.parse(body); + + const rpcError: RpcError = e as RpcError; + + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const failedRequest = `\nFailed HTTP Request: ${JSON.stringify({ method, params })}`; + + // Provide HTTP Request alongside the error + rpcError.message = `${rpcError.message}${failedRequest}`; + + throw rpcError; + } + } + + /** + * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]]. + */ + // eslint-disable-next-line @typescript-eslint/require-await + public async subscribe (_types: string, _method: string, _params: unknown[], _cb: ProviderInterfaceCallback): Promise { + l.error(ERROR_SUBSCRIBE); + + throw new Error(ERROR_SUBSCRIBE); + } + + /** + * @summary Subscriptions are not supported with the HttpProvider, see [[WsProvider]]. + */ + // eslint-disable-next-line @typescript-eslint/require-await + public async unsubscribe (_type: string, _method: string, _id: number): Promise { + l.error(ERROR_SUBSCRIBE); + + throw new Error(ERROR_SUBSCRIBE); + } +} diff --git a/packages/rpc-provider/src/http/send.spec.ts b/packages/rpc-provider/src/http/send.spec.ts new file mode 100644 index 0000000..c9f863b --- /dev/null +++ b/packages/rpc-provider/src/http/send.spec.ts @@ -0,0 +1,61 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Mock } from '../mock/types.js'; + +import { mockHttp, TEST_HTTP_URL } from '../mock/mockHttp.js'; +import { HttpProvider } from './index.js'; + +// Does not work with Node 18 (native fetch) +// See https://github.com/nock/nock/issues/2397 +// eslint-disable-next-line jest/no-disabled-tests +describe.skip('send', (): void => { + let http: HttpProvider; + let mock: Mock; + + beforeEach((): void => { + http = new HttpProvider(TEST_HTTP_URL); + }); + + afterEach(async () => { + if (mock) { + await mock.done(); + } + }); + + it('passes the body through correctly', (): Promise => { + mock = mockHttp([{ + method: 'test_body', + reply: { + result: 'ok' + } + }]); + + return http + .send('test_body', ['param']) + .then((): void => { + expect(mock.body['test_body']).toEqual({ + id: 1, + jsonrpc: '2.0', + method: 'test_body', + params: ['param'] + }); + }); + }); + + it('throws error when !response.ok', async (): Promise => { + mock = mockHttp([{ + code: 500, + method: 'test_error' + }]); + + return http + .send('test_error', []) + .catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/\[500\]/); + }); + }); +}); diff --git a/packages/rpc-provider/src/http/types.ts b/packages/rpc-provider/src/http/types.ts new file mode 100644 index 0000000..a8c221d --- /dev/null +++ b/packages/rpc-provider/src/http/types.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Logger } from '@pezkuwi/util/types'; +import type { RpcCoder } from '../coder/index.js'; + +export interface HttpState { + coder: RpcCoder; + endpoint: string; + l: Logger; +} diff --git a/packages/rpc-provider/src/index.ts b/packages/rpc-provider/src/index.ts new file mode 100644 index 0000000..c8c3193 --- /dev/null +++ b/packages/rpc-provider/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/rpc-provider/src/lru.spec.ts b/packages/rpc-provider/src/lru.spec.ts new file mode 100644 index 0000000..73ce9c0 --- /dev/null +++ b/packages/rpc-provider/src/lru.spec.ts @@ -0,0 +1,74 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { LRUCache } from './lru.js'; + +describe('LRUCache', (): void => { + let lru: LRUCache | undefined; + + beforeEach((): void => { + lru = new LRUCache(4, 500); + }); + + it('allows getting of items below capacity', (): void => { + const keys = ['1', '2', '3', '4']; + + keys.forEach((k) => lru?.set(k, `${k}${k}${k}`)); + const lruKeys = lru?.keys(); + + expect(lruKeys?.join(', ')).toBe(keys.reverse().join(', ')); + expect(lru?.length === lru?.lengthData && lru?.length === lru?.lengthRefs).toBe(true); + + keys.forEach((k) => expect(lru?.get(k)).toEqual(`${k}${k}${k}`)); + }); + + it('drops items when at capacity', (): void => { + const keys = ['1', '2', '3', '4', '5', '6']; + + keys.forEach((k) => lru?.set(k, `${k}${k}${k}`)); + + expect(lru?.keys().join(', ')).toEqual(keys.slice(2).reverse().join(', ')); + expect(lru?.length === lru?.lengthData && lru?.length === lru?.lengthRefs).toBe(true); + + keys.slice(2).forEach((k) => expect(lru?.get(k)).toEqual(`${k}${k}${k}`)); + }); + + it('adjusts the order as they are used', (): void => { + const keys = ['1', '2', '3', '4', '5']; + + keys.forEach((k) => lru?.set(k, `${k}${k}${k}`)); + + expect(lru?.entries()).toEqual([['5', '555'], ['4', '444'], ['3', '333'], ['2', '222']]); + expect(lru?.length === lru?.lengthData && lru?.length === lru?.lengthRefs).toBe(true); + + lru?.get('3'); + + expect(lru?.entries()).toEqual([['3', '333'], ['5', '555'], ['4', '444'], ['2', '222']]); + expect(lru?.length === lru?.lengthData && lru?.length === lru?.lengthRefs).toBe(true); + + lru?.set('4', '4433'); + + expect(lru?.entries()).toEqual([['4', '4433'], ['3', '333'], ['5', '555'], ['2', '222']]); + expect(lru?.length === lru?.lengthData && lru?.length === lru?.lengthRefs).toBe(true); + + lru?.set('6', '666'); + + expect(lru?.entries()).toEqual([['6', '666'], ['4', '4433'], ['3', '333'], ['5', '555']]); + expect(lru?.length === lru?.lengthData && lru?.length === lru?.lengthRefs).toBe(true); + }); + + it('evicts items with TTL', (): void => { + const keys = ['1', '2', '3', '4', '5']; + + keys.forEach((k) => lru?.set(k, `${k}${k}${k}`)); + + expect(lru?.entries()).toEqual([['5', '555'], ['4', '444'], ['3', '333'], ['2', '222']]); + + setTimeout((): void => { + lru?.get('3'); + expect(lru?.entries()).toEqual([['3', '333']]); + }, 800); + }); +}); diff --git a/packages/rpc-provider/src/lru.ts b/packages/rpc-provider/src/lru.ts new file mode 100644 index 0000000..e5ef059 --- /dev/null +++ b/packages/rpc-provider/src/lru.ts @@ -0,0 +1,197 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Assuming all 1.5MB responses, we apply a default allowing for 192MB +// cache space (depending on the historic queries this would vary, metadata +// for Zagros/Pezkuwi/Bizinikiwi falls between 600-750K, 2x for estimate) + +export const DEFAULT_CAPACITY = 1024; +export const DEFAULT_TTL = 30000; // 30 seconds +const MAX_TTL = 1800_000; // 30 minutes + +// If the user decides to disable the TTL we set the value +// to a very high number (A year = 365 * 24 * 60 * 60 * 1000). +const DISABLED_TTL = 31_536_000_000; + +class LRUNode { + readonly key: string; + #expires: number; + #ttl: number; + readonly createdAt: number; + + public next: LRUNode; + public prev: LRUNode; + + constructor (key: string, ttl: number) { + this.key = key; + this.#ttl = ttl; + this.#expires = Date.now() + ttl; + this.createdAt = Date.now(); + this.next = this.prev = this; + } + + public refresh (): void { + this.#expires = Date.now() + this.#ttl; + } + + public get expiry (): number { + return this.#expires; + } +} + +// https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU +export class LRUCache { + readonly capacity: number; + + readonly #data = new Map(); + readonly #refs = new Map(); + + #length = 0; + #head: LRUNode; + #tail: LRUNode; + + readonly #ttl: number; + + constructor (capacity = DEFAULT_CAPACITY, ttl: number | null = DEFAULT_TTL) { + // Validate capacity + if (!Number.isInteger(capacity) || capacity < 0) { + throw new Error(`LRUCache initialization error: 'capacity' must be a non-negative integer. Received: ${capacity}`); + } + + // Validate ttl + if (ttl !== null && (!Number.isFinite(ttl) || ttl < 0 || ttl > MAX_TTL)) { + throw new Error(`LRUCache initialization error: 'ttl' must be between 0 and ${MAX_TTL} ms or null to disable. Received: ${ttl}`); + } + + this.capacity = capacity; + ttl ? this.#ttl = ttl : this.#ttl = DISABLED_TTL; + this.#head = this.#tail = new LRUNode('', this.#ttl); + } + + get ttl (): number | null { + return this.#ttl; + } + + get length (): number { + return this.#length; + } + + get lengthData (): number { + return this.#data.size; + } + + get lengthRefs (): number { + return this.#refs.size; + } + + entries (): [string, unknown][] { + const keys = this.keys(); + const count = keys.length; + const entries = new Array<[string, unknown]>(count); + + for (let i = 0; i < count; i++) { + const key = keys[i]; + + entries[i] = [key, this.#data.get(key)]; + } + + return entries; + } + + keys (): string[] { + const keys: string[] = []; + + if (this.#length) { + let curr = this.#head; + + while (curr !== this.#tail) { + keys.push(curr.key); + curr = curr.next; + } + + keys.push(curr.key); + } + + return keys; + } + + get (key: string): T | null { + const data = this.#data.get(key); + + if (data) { + this.#toHead(key); + + // Evict TTL once data is refreshed + this.#evictTTL(); + + return data as T; + } + + this.#evictTTL(); + + return null; + } + + set (key: string, value: T): void { + if (this.#data.has(key)) { + this.#toHead(key); + } else { + const node = new LRUNode(key, this.#ttl); + + this.#refs.set(node.key, node); + + if (this.length === 0) { + this.#head = this.#tail = node; + } else { + this.#head.prev = node; + node.next = this.#head; + this.#head = node; + } + + if (this.#length === this.capacity) { + this.#data.delete(this.#tail.key); + this.#refs.delete(this.#tail.key); + + this.#tail = this.#tail.prev; + this.#tail.next = this.#head; + } else { + this.#length += 1; + } + } + + // Evict TTL once data is refreshed or added + this.#evictTTL(); + + this.#data.set(key, value); + } + + #evictTTL () { + // Find last node to keep + // traverse map to find the expired nodes + while (this.#tail.expiry && this.#tail.expiry < Date.now() && this.#length > 0) { + this.#refs.delete(this.#tail.key); + this.#data.delete(this.#tail.key); + this.#length -= 1; + this.#tail = this.#tail.prev; + this.#tail.next = this.#head; + } + + if (this.#length === 0) { + this.#head = this.#tail = new LRUNode('', this.#ttl); + } + } + + #toHead (key: string): void { + const ref = this.#refs.get(key); + + if (ref && ref !== this.#head) { + ref.refresh(); + ref.prev.next = ref.next; + ref.next.prev = ref.prev; + ref.next = this.#head; + + this.#head.prev = ref; + this.#head = ref; + } + } +} diff --git a/packages/rpc-provider/src/mock/index.ts b/packages/rpc-provider/src/mock/index.ts new file mode 100644 index 0000000..f2410a7 --- /dev/null +++ b/packages/rpc-provider/src/mock/index.ts @@ -0,0 +1,259 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable camelcase */ + +import type { Header } from '@pezkuwi/types/interfaces'; +import type { Codec, Registry } from '@pezkuwi/types/types'; +import type { ProviderInterface, ProviderInterfaceEmitCb, ProviderInterfaceEmitted } from '../types.js'; +import type { MockStateDb, MockStateSubscriptionCallback, MockStateSubscriptions } from './types.js'; + +import { EventEmitter } from 'eventemitter3'; + +import { createTestKeyring } from '@pezkuwi/keyring/testing'; +import { decorateStorage, Metadata } from '@pezkuwi/types'; +import jsonrpc from '@pezkuwi/types/interfaces/jsonrpc'; +import rpcHeader from '@pezkuwi/types-support/json/Header.004.json' assert { type: 'json' }; +import rpcSignedBlock from '@pezkuwi/types-support/json/SignedBlock.004.immortal.json' assert { type: 'json' }; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { BN, bnToU8a, logger, u8aToHex } from '@pezkuwi/util'; +import { randomAsU8a } from '@pezkuwi/util-crypto'; + +const INTERVAL = 1000; +const SUBSCRIPTIONS: string[] = Array.prototype.concat.apply( + [], + Object.values(jsonrpc).map((section): string[] => + Object + .values(section) + .filter(({ isSubscription }) => isSubscription) + .map(({ jsonrpc }) => jsonrpc) + .concat('chain_subscribeNewHead') + ) +) as string[]; + +const keyring = createTestKeyring({ type: 'ed25519' }); +const l = logger('api-mock'); + +/** + * A mock provider mainly used for testing. + * @return {ProviderInterface} The mock provider + * @internal + */ +export class MockProvider implements ProviderInterface { + private db: MockStateDb = {}; + + private emitter = new EventEmitter(); + + private intervalId?: ReturnType | null; + + public isUpdating = true; + + private registry: Registry; + + private prevNumber = new BN(-1); + + private requests: Record unknown> = { + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + chain_getBlock: () => this.registry.createType('SignedBlock', rpcSignedBlock.result).toJSON(), + chain_getBlockHash: () => '0x1234000000000000000000000000000000000000000000000000000000000000', + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + chain_getFinalizedHead: () => this.registry.createType('Header', rpcHeader.result).hash, + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + chain_getHeader: () => this.registry.createType('Header', rpcHeader.result).toJSON(), + rpc_methods: () => this.registry.createType('RpcMethods').toJSON(), + state_getKeys: () => [], + state_getKeysPaged: () => [], + state_getMetadata: () => rpcMetadata, + state_getRuntimeVersion: () => this.registry.createType('RuntimeVersion').toHex(), + state_getStorage: (storage: MockStateDb, [key]: string[]) => u8aToHex(storage[key]), + system_chain: () => 'mockChain', + system_health: () => ({}), + system_name: () => 'mockClient', + system_properties: () => ({ ss58Format: 42 }), + system_upgradedToTripleRefCount: () => this.registry.createType('bool', true), + system_version: () => '9.8.7', + // eslint-disable-next-line @typescript-eslint/no-unsafe-return, sort-keys + dev_echo: (_, params: any) => params + }; + + public subscriptions: MockStateSubscriptions = SUBSCRIPTIONS.reduce((subs, name): MockStateSubscriptions => { + subs[name] = { + callbacks: {}, + lastValue: null + }; + + return subs; + }, ({} as MockStateSubscriptions)); + + private subscriptionId = 0; + + private subscriptionMap: Record = {}; + + constructor (registry: Registry) { + this.registry = registry; + + this.init(); + } + + public get hasSubscriptions (): boolean { + return !!true; + } + + public clone (): MockProvider { + throw new Error('Unimplemented'); + } + + public async connect (): Promise { + // noop + } + + // eslint-disable-next-line @typescript-eslint/require-await + public async disconnect (): Promise { + if (this.intervalId) { + clearInterval(this.intervalId); + this.intervalId = null; + } + } + + public get isClonable (): boolean { + return !!false; + } + + public get isConnected (): boolean { + return !!true; + } + + public on (type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void { + this.emitter.on(type, sub); + + return (): void => { + this.emitter.removeListener(type, sub); + }; + } + + // eslint-disable-next-line @typescript-eslint/require-await + public async send (method: string, params: unknown[]): Promise { + l.debug(() => ['send', method, params]); + + if (!this.requests[method]) { + throw new Error(`provider.send: Invalid method '${method}'`); + } + + return this.requests[method](this.db, params) as T; + } + + // eslint-disable-next-line @typescript-eslint/require-await + public async subscribe (_type: string, method: string, ...params: unknown[]): Promise { + l.debug(() => ['subscribe', method, params]); + + if (!this.subscriptions[method]) { + throw new Error(`provider.subscribe: Invalid method '${method}'`); + } + + const callback = params.pop() as MockStateSubscriptionCallback; + const id = ++this.subscriptionId; + + this.subscriptions[method].callbacks[id] = callback; + this.subscriptionMap[id] = method; + + if (this.subscriptions[method].lastValue !== null) { + callback(null, this.subscriptions[method].lastValue); + } + + return id; + } + + // eslint-disable-next-line @typescript-eslint/require-await + public async unsubscribe (_type: string, _method: string, id: number): Promise { + const sub = this.subscriptionMap[id]; + + l.debug(() => ['unsubscribe', id, sub]); + + if (!sub) { + throw new Error(`Unable to find subscription for ${id}`); + } + + delete this.subscriptionMap[id]; + delete this.subscriptions[sub].callbacks[id]; + + return true; + } + + private init (): void { + const emitEvents: ProviderInterfaceEmitted[] = ['connected', 'disconnected']; + let emitIndex = 0; + let newHead = this.makeBlockHeader(); + let counter = -1; + + const metadata = new Metadata(this.registry, rpcMetadata); + + this.registry.setMetadata(metadata); + + const query = decorateStorage(this.registry, metadata.asLatest, metadata.version); + + // Do something every 1 seconds + this.intervalId = setInterval((): void => { + if (!this.isUpdating) { + return; + } + + // create a new header (next block) + newHead = this.makeBlockHeader(); + + // increment the balances and nonce for each account + keyring.getPairs().forEach(({ publicKey }, index): void => { + this.setStateBn(query['system']['account'](publicKey), newHead.number.toBn().addn(index)); + }); + + // set the timestamp for the current block + this.setStateBn(query['timestamp']['now'](), Math.floor(Date.now() / 1000)); + this.updateSubs('chain_subscribeNewHead', newHead); + + // We emit connected/disconnected at intervals + if (++counter % 2 === 1) { + if (++emitIndex === emitEvents.length) { + emitIndex = 0; + } + + this.emitter.emit(emitEvents[emitIndex]); + } + }, INTERVAL); + } + + private makeBlockHeader (): Header { + const blockNumber = this.prevNumber.addn(1); + const header = this.registry.createType('Header', { + digest: { + logs: [] + }, + extrinsicsRoot: randomAsU8a(), + number: blockNumber, + parentHash: blockNumber.isZero() + ? new Uint8Array(32) + : bnToU8a(this.prevNumber, { bitLength: 256, isLe: false }), + stateRoot: bnToU8a(blockNumber, { bitLength: 256, isLe: false }) + }); + + this.prevNumber = blockNumber; + + return header as unknown as Header; + } + + private setStateBn (key: Uint8Array, value: BN | number): void { + this.db[u8aToHex(key)] = bnToU8a(value, { bitLength: 64, isLe: true }); + } + + private updateSubs (method: string, value: Codec): void { + this.subscriptions[method].lastValue = value; + + Object + .values(this.subscriptions[method].callbacks) + .forEach((cb): void => { + try { + cb(null, value.toJSON()); + } catch (error) { + l.error(`Error on '${method}' subscription`, error); + } + }); + } +} diff --git a/packages/rpc-provider/src/mock/mockHttp.ts b/packages/rpc-provider/src/mock/mockHttp.ts new file mode 100644 index 0000000..c3639c2 --- /dev/null +++ b/packages/rpc-provider/src/mock/mockHttp.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Mock } from './types.js'; + +import nock from 'nock'; + +interface Request { + code?: number; + method: string; + reply?: Record; +} + +interface HttpMock extends Mock { + post: (uri: string) => { + reply: (code: number, handler: (uri: string, body: { id: string }) => unknown) => HttpMock + } +} + +export const TEST_HTTP_URL = 'http://localhost:9944'; + +export function mockHttp (requests: Request[]): Mock { + nock.cleanAll(); + + return requests.reduce((scope: HttpMock, request: Request) => + scope + .post('/') + .reply(request.code || 200, (_uri: string, body: { id: string }) => { + scope.body = scope.body || {}; + scope.body[request.method] = body; + + return Object.assign({ id: body.id, jsonrpc: '2.0' }, request.reply || {}) as unknown; + }), + nock(TEST_HTTP_URL) as unknown as HttpMock); +} diff --git a/packages/rpc-provider/src/mock/mockWs.ts b/packages/rpc-provider/src/mock/mockWs.ts new file mode 100644 index 0000000..ee84272 --- /dev/null +++ b/packages/rpc-provider/src/mock/mockWs.ts @@ -0,0 +1,92 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Server, WebSocket } from 'mock-socket'; + +import { stringify } from '@pezkuwi/util'; + +interface Scope { + body: Record>; + requests: number; + server: Server; + done: any; +} + +interface ErrorDef { + id: number; + error: { + code: number; + message: string; + }; +} + +interface ReplyDef { + id: number; + reply: { + result: unknown; + }; +} + +interface RpcBase { + id: number; + jsonrpc: '2.0'; +} + +type RpcError = RpcBase & ErrorDef; +type RpcReply = RpcBase & { result: unknown }; + +export type Request = { method: string } & (ErrorDef | ReplyDef); + +global.WebSocket = WebSocket as typeof global.WebSocket; + +export const TEST_WS_URL = 'ws://localhost:9955'; + +// should be JSONRPC def return +function createError ({ error: { code, message }, id }: ErrorDef): RpcError { + return { + error: { + code, + message + }, + id, + jsonrpc: '2.0' + }; +} + +// should be JSONRPC def return +function createReply ({ id, reply: { result } }: ReplyDef): RpcReply { + return { + id, + jsonrpc: '2.0', + result + }; +} + +// scope definition returned +export function mockWs (requests: Request[], wsUrl: string = TEST_WS_URL): Scope { + const server = new Server(wsUrl); + + let requestCount = 0; + const scope: Scope = { + body: {}, + done: () => new Promise((resolve) => server.stop(resolve)), + requests: 0, + server + }; + + server.on('connection', (socket): void => { + socket.on('message', (body): void => { + const request = requests[requestCount]; + const response = (request as ErrorDef).error + ? createError(request as ErrorDef) + : createReply(request as ReplyDef); + + scope.body[request.method] = body as unknown as Record; + requestCount++; + + socket.send(stringify(response)); + }); + }); + + return scope; +} diff --git a/packages/rpc-provider/src/mock/on.spec.ts b/packages/rpc-provider/src/mock/on.spec.ts new file mode 100644 index 0000000..bc21fae --- /dev/null +++ b/packages/rpc-provider/src/mock/on.spec.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { ProviderInterfaceEmitted } from '../types.js'; + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { MockProvider } from './index.js'; + +describe('on', (): void => { + const registry = new TypeRegistry(); + let mock: MockProvider; + + beforeEach((): void => { + mock = new MockProvider(registry); + }); + + afterEach(async () => { + await mock.disconnect(); + }); + + // eslint-disable-next-line jest/expect-expect + it('emits both connected and disconnected events', async (): Promise => { + const events: Record = { connected: false, disconnected: false }; + + await new Promise((resolve) => { + const handler = (type: ProviderInterfaceEmitted): void => { + mock.on(type, (): void => { + events[type] = true; + + if (Object.values(events).filter((value): boolean => value).length === 2) { + resolve(true); + } + }); + }; + + handler('connected'); + handler('disconnected'); + }); + }); +}); diff --git a/packages/rpc-provider/src/mock/send.spec.ts b/packages/rpc-provider/src/mock/send.spec.ts new file mode 100644 index 0000000..6dfbbf8 --- /dev/null +++ b/packages/rpc-provider/src/mock/send.spec.ts @@ -0,0 +1,38 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { MockProvider } from './index.js'; + +describe('send', (): void => { + const registry = new TypeRegistry(); + let mock: MockProvider; + + beforeEach((): void => { + mock = new MockProvider(registry); + }); + + afterEach(async () => { + await mock.disconnect(); + }); + + it('fails on non-supported methods', (): Promise => { + return mock + .send('something_invalid', []) + .catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/Invalid method/); + }); + }); + + it('returns values for mocked requests', (): Promise => { + return mock + .send('system_name', []) + .then((result): void => { + expect(result).toBe('mockClient'); + }); + }); +}); diff --git a/packages/rpc-provider/src/mock/subscribe.spec.ts b/packages/rpc-provider/src/mock/subscribe.spec.ts new file mode 100644 index 0000000..b580e26 --- /dev/null +++ b/packages/rpc-provider/src/mock/subscribe.spec.ts @@ -0,0 +1,81 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { MockProvider } from './index.js'; + +describe('subscribe', (): void => { + const registry = new TypeRegistry(); + let mock: MockProvider; + + beforeEach((): void => { + mock = new MockProvider(registry); + }); + + afterEach(async () => { + await mock.disconnect(); + }); + + it('fails on unknown methods', async (): Promise => { + await mock + .subscribe('test', 'test_notFound') + .catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/Invalid method 'test_notFound'/); + }); + }); + + it('returns a subscription id', async (): Promise => { + await mock + .subscribe('chain_newHead', 'chain_subscribeNewHead', (): void => undefined) + .then((id): void => { + expect(id).toEqual(1); + }); + }); + + it('calls back with the last known value', async (): Promise => { + mock.isUpdating = false; + mock.subscriptions.chain_subscribeNewHead.lastValue = 'testValue'; + + await new Promise((resolve) => { + mock.subscribe('chain_newHead', 'chain_subscribeNewHead', (_: any, value: string): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect(value).toEqual('testValue'); + resolve(true); + }).catch(console.error); + }); + }); + + // eslint-disable-next-line jest/expect-expect + it('calls back with new headers', async (): Promise => { + await new Promise((resolve) => { + mock.subscribe('chain_newHead', 'chain_subscribeNewHead', (_: any, header: { number: number }): void => { + if (header.number === 4) { + resolve(true); + } + }).catch(console.error); + }); + }); + + // eslint-disable-next-line jest/expect-expect + it('handles errors within callbacks gracefully', async (): Promise => { + let hasThrown = false; + + await new Promise((resolve) => { + mock.subscribe('chain_newHead', 'chain_subscribeNewHead', (_: any, header: { number: number }): void => { + if (!hasThrown) { + hasThrown = true; + + throw new Error('testing'); + } + + if (header.number === 3) { + resolve(true); + } + }).catch(console.error); + }); + }); +}); diff --git a/packages/rpc-provider/src/mock/types.ts b/packages/rpc-provider/src/mock/types.ts new file mode 100644 index 0000000..8d3dd9d --- /dev/null +++ b/packages/rpc-provider/src/mock/types.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Server } from 'mock-socket'; + +export type Global = typeof globalThis & { + WebSocket: typeof WebSocket; + fetch: any; +} + +export interface Mock { + body: Record>; + requests: number; + server: Server; + done: () => Promise; +} + +export type MockStateSubscriptionCallback = (error: Error | null, value: any) => void; + +export interface MockStateSubscription { + callbacks: Record; + lastValue: any; +} + +export interface MockStateSubscriptions { + // known + chain_subscribeNewHead: MockStateSubscription; + state_subscribeStorage: MockStateSubscription; + + // others + [key: string]: MockStateSubscription; +} + +export type MockStateDb = Record; + +export type MockStateRequests = Record string>; diff --git a/packages/rpc-provider/src/mock/unsubscribe.spec.ts b/packages/rpc-provider/src/mock/unsubscribe.spec.ts new file mode 100644 index 0000000..2f3a71f --- /dev/null +++ b/packages/rpc-provider/src/mock/unsubscribe.spec.ts @@ -0,0 +1,57 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { MockProvider } from './index.js'; + +describe('unsubscribe', (): void => { + const registry = new TypeRegistry(); + let mock: MockProvider; + let id: number; + + beforeEach((): Promise => { + mock = new MockProvider(registry); + + return mock + .subscribe('chain_newHead', 'chain_subscribeNewHead', (): void => undefined) + .then((_id): void => { + id = _id; + }); + }); + + afterEach(async () => { + await mock.disconnect(); + }); + + it('fails on unknown ids', async (): Promise => { + await mock + .unsubscribe('chain_newHead', 'chain_subscribeNewHead', 5) + .catch((error): boolean => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/Unable to find/); + + return false; + }); + }); + + // eslint-disable-next-line jest/expect-expect + it('unsubscribes successfully', async (): Promise => { + await mock.unsubscribe('chain_newHead', 'chain_subscribeNewHead', id); + }); + + it('fails on double unsubscribe', async (): Promise => { + await mock.unsubscribe('chain_newHead', 'chain_subscribeNewHead', id) + .then((): Promise => + mock.unsubscribe('chain_newHead', 'chain_subscribeNewHead', id) + ) + .catch((error): boolean => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/Unable to find/); + + return false; + }); + }); +}); diff --git a/packages/rpc-provider/src/mod.ts b/packages/rpc-provider/src/mod.ts new file mode 100644 index 0000000..651b238 --- /dev/null +++ b/packages/rpc-provider/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/rpc-provider/src/packageDetect.ts b/packages/rpc-provider/src/packageDetect.ts new file mode 100644 index 0000000..e9bbf40 --- /dev/null +++ b/packages/rpc-provider/src/packageDetect.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2026 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [typesInfo]); diff --git a/packages/rpc-provider/src/packageInfo.ts b/packages/rpc-provider/src/packageInfo.ts new file mode 100644 index 0000000..c318b6e --- /dev/null +++ b/packages/rpc-provider/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/rpc-provider', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/rpc-provider/src/types.ts b/packages/rpc-provider/src/types.ts new file mode 100644 index 0000000..e38fb06 --- /dev/null +++ b/packages/rpc-provider/src/types.ts @@ -0,0 +1,101 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export interface JsonRpcObject { + id: number; + jsonrpc: '2.0'; +} + +export interface JsonRpcRequest extends JsonRpcObject { + method: string; + params: unknown[]; +} + +export interface JsonRpcResponseBaseError { + code: number; + data?: number | string; + message: string; +} + +export interface RpcErrorInterface { + code: number; + data?: T; + message: string; + stack: string; +} + +interface JsonRpcResponseSingle { + error?: JsonRpcResponseBaseError; + result: T; +} + +interface JsonRpcResponseSubscription { + method?: string; + params: { + error?: JsonRpcResponseBaseError; + result: T; + subscription: number | string; + }; +} + +export type JsonRpcResponseBase = JsonRpcResponseSingle & JsonRpcResponseSubscription; + +export type JsonRpcResponse = JsonRpcObject & JsonRpcResponseBase; + +export type ProviderInterfaceCallback = (error: Error | null, result: any) => void; + +export type ProviderInterfaceEmitted = 'connected' | 'disconnected' | 'error'; + +export type ProviderInterfaceEmitCb = (value?: any) => any; + +export interface ProviderInterface { + /** true if the provider supports subscriptions (not available for HTTP) */ + readonly hasSubscriptions: boolean; + /** true if the clone() functionality is available on the provider */ + readonly isClonable: boolean; + /** true if the provider is currently connected (ws/sc has connection logic) */ + readonly isConnected: boolean; + /** (optional) stats for the provider with connections/bytes */ + readonly stats?: ProviderStats; + /** (optional) stats for the provider with connections/bytes */ + readonly ttl?: number | null; + + clone (): ProviderInterface; + connect (): Promise; + disconnect (): Promise; + on (type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void; + send (method: string, params: unknown[], isCacheable?: boolean): Promise; + subscribe (type: string, method: string, params: unknown[], cb: ProviderInterfaceCallback): Promise; + unsubscribe (type: string, method: string, id: number | string): Promise; +} + +/** Stats for a specific endpoint */ +export interface EndpointStats { + /** The total number of bytes sent */ + bytesRecv: number; + /** The total number of bytes received */ + bytesSent: number; + /** The number of cached/in-progress requests made */ + cached: number; + /** The number of errors found */ + errors: number; + /** The number of requests */ + requests: number; + /** The number of subscriptions */ + subscriptions: number; + /** The number of request timeouts */ + timeout: number; +} + +/** Overall stats for the provider */ +export interface ProviderStats { + /** Details for the active/open requests */ + active: { + /** Number of active requests */ + requests: number; + /** Number of active subscriptions */ + subscriptions: number; + }; + /** The total requests that have been made */ + total: EndpointStats; +} diff --git a/packages/rpc-provider/src/ws/connect.spec.ts b/packages/rpc-provider/src/ws/connect.spec.ts new file mode 100644 index 0000000..17c3873 --- /dev/null +++ b/packages/rpc-provider/src/ws/connect.spec.ts @@ -0,0 +1,167 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Mock } from '../mock/types.js'; + +import { mockWs } from '../mock/mockWs.js'; +import { WsProvider } from './index.js'; + +const TEST_WS_URL = 'ws://localhost-connect.spec.ts:9988'; + +function sleep (ms = 100): Promise { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +describe('onConnect', (): void => { + let mocks: Mock[]; + let provider: WsProvider | null; + + beforeEach((): void => { + mocks = [mockWs([], TEST_WS_URL)]; + }); + + afterEach(async () => { + if (provider) { + await provider.disconnect(); + await sleep(); + + provider = null; + } + + await Promise.all(mocks.map((m) => m.done())); + await sleep(); + }); + + it('Does not connect when autoConnect is false', async () => { + provider = new WsProvider(TEST_WS_URL, 0); + + await sleep(); + + expect(provider.isConnected).toBe(false); + + await provider.connect(); + await sleep(); + + expect(provider.isConnected).toBe(true); + + await provider.disconnect(); + await sleep(); + + expect(provider.isConnected).toBe(false); + }); + + it('Does connect when autoConnect is true', async () => { + provider = new WsProvider(TEST_WS_URL, 1); + + await sleep(); + + expect(provider.isConnected).toBe(true); + }); + + it('Creates a new WebSocket instance by calling the connect() method', async () => { + provider = new WsProvider(TEST_WS_URL, false); + + expect(provider.isConnected).toBe(false); + expect(mocks[0].server.clients().length).toBe(0); + + await provider.connect(); + await sleep(); + + expect(provider.isConnected).toBe(true); + expect(mocks[0].server.clients()).toHaveLength(1); + }); + + it('Connects to first endpoint when an array is given', async () => { + provider = new WsProvider([TEST_WS_URL], 1); + + await sleep(); + + expect(provider.isConnected).toBe(true); + expect(mocks[0].server.clients()).toHaveLength(1); + }); + + it('Does not allow connect() on already-connected', async () => { + provider = new WsProvider([TEST_WS_URL], 1); + + await sleep(); + + expect(provider.isConnected).toBe(true); + + await expect( + provider.connect() + ).rejects.toThrow(/already connected/); + }); + + it('Connects to the second endpoint when the first is unreachable', async () => { + const endpoints: string[] = ['ws://localhost-unreachable-connect.spec.ts:9956', TEST_WS_URL]; + + provider = new WsProvider(endpoints, 1); + + await sleep(); + + expect(mocks[0].server.clients()).toHaveLength(1); + expect(provider.isConnected).toBe(true); + }); + + it('Connects to the second endpoint when the first is dropped', async () => { + const endpoints: string[] = [TEST_WS_URL, 'ws://localhost-connect.spec.ts:9957']; + + mocks.push(mockWs([], endpoints[1])); + + provider = new WsProvider(endpoints, 1); + + await sleep(); + + // Check that first server is connected + expect(mocks[0].server.clients()).toHaveLength(1); + expect(mocks[1].server.clients()).toHaveLength(0); + + // Close connection from first server + mocks[0].server.clients()[0].close(); + + await sleep(); + + // Check that second server is connected + expect(mocks[1].server.clients()).toHaveLength(1); + expect(provider.isConnected).toBe(true); + }); + + it('Round-robin of endpoints on WsProvider', async () => { + const endpoints: string[] = [ + TEST_WS_URL, + 'ws://localhost-connect.spec.ts:9956', + 'ws://localhost-connect.spec.ts:9957', + 'ws://invalid-connect.spec.ts:9956', + 'ws://localhost-connect.spec.ts:9958' + ]; + + mocks.push(mockWs([], endpoints[1])); + mocks.push(mockWs([], endpoints[2])); + mocks.push(mockWs([], endpoints[4])); + + const mockNext = [ + mocks[1], + mocks[2], + mocks[3], + mocks[0] + ]; + + provider = new WsProvider(endpoints, 1); + + for (let round = 0; round < 2; round++) { + for (let mock = 0; mock < mocks.length; mock++) { + await sleep(); + + // Wwe are connected, the current mock has the connection and the next doesn't + expect(provider.isConnected).toBe(true); + expect(mocks[mock].server.clients()).toHaveLength(1); + expect(mockNext[mock].server.clients()).toHaveLength(0); + + // Close connection from first server + mocks[mock].server.clients()[0].close(); + } + } + }); +}); diff --git a/packages/rpc-provider/src/ws/errors.ts b/packages/rpc-provider/src/ws/errors.ts new file mode 100644 index 0000000..f7ca382 --- /dev/null +++ b/packages/rpc-provider/src/ws/errors.ts @@ -0,0 +1,41 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// from https://stackoverflow.com/questions/19304157/getting-the-reason-why-websockets-closed-with-close-code-1006 + +const known: Record = { + 1000: 'Normal Closure', + 1001: 'Going Away', + 1002: 'Protocol Error', + 1003: 'Unsupported Data', + 1004: '(For future)', + 1005: 'No Status Received', + 1006: 'Abnormal Closure', + 1007: 'Invalid frame payload data', + 1008: 'Policy Violation', + 1009: 'Message too big', + 1010: 'Missing Extension', + 1011: 'Internal Error', + 1012: 'Service Restart', + 1013: 'Try Again Later', + 1014: 'Bad Gateway', + 1015: 'TLS Handshake' +}; + +export function getWSErrorString (code: number): string { + if (code >= 0 && code <= 999) { + return '(Unused)'; + } else if (code >= 1016) { + if (code <= 1999) { + return '(For WebSocket standard)'; + } else if (code <= 2999) { + return '(For WebSocket extensions)'; + } else if (code <= 3999) { + return '(For libraries and frameworks)'; + } else if (code <= 4999) { + return '(For applications)'; + } + } + + return known[code] || '(Unknown)'; +} diff --git a/packages/rpc-provider/src/ws/index.spec.ts b/packages/rpc-provider/src/ws/index.spec.ts new file mode 100644 index 0000000..a7fc737 --- /dev/null +++ b/packages/rpc-provider/src/ws/index.spec.ts @@ -0,0 +1,97 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Request } from '../mock/mockWs.js'; +import type { Mock } from '../mock/types.js'; + +import { mockWs } from '../mock/mockWs.js'; +import { WsProvider } from './index.js'; + +const TEST_WS_URL = 'ws://localhost-index.spec.ts:9977'; + +let provider: WsProvider | null; +let mock: Mock; + +function createWs (requests: Request[], autoConnect = 1000, headers?: Record, timeout?: number): WsProvider { + mock = mockWs(requests, TEST_WS_URL); + provider = new WsProvider(TEST_WS_URL, autoConnect, headers, timeout); + + return provider; +} + +describe('Ws', (): void => { + afterEach(async () => { + if (mock) { + await mock.done(); + } + + if (provider) { + await provider.disconnect(); + provider = null; + } + }); + + it('returns the connected state', (): void => { + expect( + createWs([]).isConnected + ).toEqual(false); + }); + + // eslint-disable-next-line jest/expect-expect + it('allows you to initialize the provider with custom headers', () => { + createWs([], 100, { foo: 'bar' }); + }); + + // eslint-disable-next-line jest/expect-expect + it('allows you to set custom timeout value for handlers', () => { + const CUSTOM_TIMEOUT_S = 90; + const CUSTOM_TIMEOUT_MS = CUSTOM_TIMEOUT_S * 1000; + + createWs([], 100, { foo: 'bar' }, CUSTOM_TIMEOUT_MS); + }); +}); + +describe('Endpoint Parsing', (): void => { + // eslint-disable-next-line jest/expect-expect + it('Succeeds when WsProvider endpoint is a valid string', () => { + /* eslint-disable no-new */ + new WsProvider(TEST_WS_URL, 0); + }); + + it('should throw error on negative cache capacity or TTL', () => { + expect(() => new WsProvider(TEST_WS_URL, false, {}, undefined, -5, 30000)).toThrow(/'capacity' must be a non-negative integer/); + expect(() => new WsProvider(TEST_WS_URL, false, {}, undefined, 1024, -1000)).toThrow(/'ttl' must be between 0 and 1800000 ms or null to disable/); + }); + + it('Throws when WsProvider endpoint is an invalid string', () => { + expect( + () => new WsProvider('http://127.0.0.1:9955', 0) + ).toThrow(/^Endpoint should start with /); + }); + + // eslint-disable-next-line jest/expect-expect + it('Succeeds when WsProvider endpoint is a valid array', () => { + const endpoints: string[] = ['ws://127.0.0.1:9955', 'wss://testnet.io:9944', 'ws://mychain.com:9933']; + + /* eslint-disable no-new */ + new WsProvider(endpoints, 0); + }); + + it('Throws when WsProvider endpoint is an empty array', () => { + const endpoints: string[] = []; + + expect( + () => new WsProvider(endpoints, 0) + ).toThrow('WsProvider requires at least one Endpoint'); + }); + + it('Throws when WsProvider endpoint is an invalid array', () => { + const endpoints: string[] = ['ws://127.0.0.1:9955', 'http://bad.co:9944', 'ws://mychain.com:9933']; + + expect( + () => new WsProvider(endpoints, 0) + ).toThrow(/^Endpoint should start with /); + }); +}); diff --git a/packages/rpc-provider/src/ws/index.ts b/packages/rpc-provider/src/ws/index.ts new file mode 100644 index 0000000..6313cc9 --- /dev/null +++ b/packages/rpc-provider/src/ws/index.ts @@ -0,0 +1,652 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Class } from '@pezkuwi/util/types'; +import type RpcError from '../coder/error.js'; +import type { EndpointStats, JsonRpcResponse, ProviderInterface, ProviderInterfaceCallback, ProviderInterfaceEmitCb, ProviderInterfaceEmitted, ProviderStats } from '../types.js'; + +import { EventEmitter } from 'eventemitter3'; + +import { isChildClass, isNull, isUndefined, logger, noop, objectSpread, stringify } from '@pezkuwi/util'; +import { xglobal } from '@pezkuwi/x-global'; +import { WebSocket } from '@pezkuwi/x-ws'; + +import { RpcCoder } from '../coder/index.js'; +import defaults from '../defaults.js'; +import { DEFAULT_CAPACITY, DEFAULT_TTL, LRUCache } from '../lru.js'; +import { getWSErrorString } from './errors.js'; + +interface SubscriptionHandler { + callback: ProviderInterfaceCallback; + type: string; +} + +interface WsStateAwaiting { + callback: ProviderInterfaceCallback; + method: string; + params: unknown[]; + start: number; + subscription?: SubscriptionHandler | undefined; +} + +interface WsStateSubscription extends SubscriptionHandler { + method: string; + params: unknown[]; +} + +const ALIASES: Record = { + chain_finalisedHead: 'chain_finalizedHead', + chain_subscribeFinalisedHeads: 'chain_subscribeFinalizedHeads', + chain_unsubscribeFinalisedHeads: 'chain_unsubscribeFinalizedHeads' +}; + +const RETRY_DELAY = 2_500; + +const DEFAULT_TIMEOUT_MS = 60 * 1000; +const TIMEOUT_INTERVAL = 5_000; + +const l = logger('api-ws'); + +/** @internal Clears a Record<*> of all keys, optionally with all callback on clear */ +function eraseRecord (record: Record, cb?: (item: T) => void): void { + Object.keys(record).forEach((key): void => { + if (cb) { + cb(record[key]); + } + + delete record[key]; + }); +} + +/** @internal Creates a default/empty stats object */ +function defaultEndpointStats (): EndpointStats { + return { bytesRecv: 0, bytesSent: 0, cached: 0, errors: 0, requests: 0, subscriptions: 0, timeout: 0 }; +} + +/** + * # @pezkuwi/rpc-provider/ws + * + * @name WsProvider + * + * @description The WebSocket Provider allows sending requests using WebSocket to a WebSocket RPC server TCP port. Unlike the [[HttpProvider]], it does support subscriptions and allows listening to events such as new blocks or balance changes. + * + * @example + *
+ * + * ```javascript + * import Api from '@pezkuwi/api/promise'; + * import { WsProvider } from '@pezkuwi/rpc-provider/ws'; + * + * const provider = new WsProvider('ws://127.0.0.1:9944'); + * const api = new Api(provider); + * ``` + * + * @see [[HttpProvider]] + */ +export class WsProvider implements ProviderInterface { + readonly #callCache: LRUCache; + readonly #coder: RpcCoder; + readonly #endpoints: string[]; + readonly #headers: Record; + readonly #eventemitter: EventEmitter; + readonly #handlers: Record = {}; + readonly #isReadyPromise: Promise; + readonly #stats: ProviderStats; + readonly #waitingForId: Record> = {}; + readonly #cacheCapacity: number; + readonly #ttl: number | null | undefined; + + #autoConnectMs: number; + #endpointIndex: number; + #endpointStats: EndpointStats; + #isConnected = false; + #subscriptions: Record = {}; + #timeoutId?: ReturnType | null = null; + #websocket: WebSocket | null; + #timeout: number; + + /** + * @param {string | string[]} endpoint The endpoint url. Usually `ws://ip:9944` or `wss://ip:9944`, may provide an array of endpoint strings. + * @param {number | false} autoConnectMs Whether to connect automatically or not (default). Provided value is used as a delay between retries. + * @param {Record} headers The headers provided to the underlying WebSocket + * @param {number} [timeout] Custom timeout value used per request . Defaults to `DEFAULT_TIMEOUT_MS` + * @param {number} [cacheCapacity] Custom size of the WsProvider LRUCache. Defaults to `DEFAULT_CAPACITY` (1024) + * @param {number} [cacheTtl] Custom TTL of the WsProvider LRUCache. Determines how long an object can live in the cache. Defaults to DEFAULT_TTL` (30000) + */ + constructor (endpoint: string | string[] = defaults.WS_URL, autoConnectMs: number | false = RETRY_DELAY, headers: Record = {}, timeout?: number, cacheCapacity?: number, cacheTtl?: number | null) { + const endpoints = Array.isArray(endpoint) + ? endpoint + : [endpoint]; + + if (endpoints.length === 0) { + throw new Error('WsProvider requires at least one Endpoint'); + } + + endpoints.forEach((endpoint) => { + if (!/^(wss|ws):\/\//.test(endpoint)) { + throw new Error(`Endpoint should start with 'ws://', received '${endpoint}'`); + } + }); + const ttl = cacheTtl === undefined ? DEFAULT_TTL : cacheTtl; + + this.#callCache = new LRUCache(cacheCapacity === 0 ? 0 : cacheCapacity || DEFAULT_CAPACITY, ttl); + this.#ttl = cacheTtl; + this.#cacheCapacity = cacheCapacity || DEFAULT_CAPACITY; + this.#eventemitter = new EventEmitter(); + this.#autoConnectMs = autoConnectMs || 0; + this.#coder = new RpcCoder(); + this.#endpointIndex = -1; + this.#endpoints = endpoints; + this.#headers = headers; + this.#websocket = null; + this.#stats = { + active: { requests: 0, subscriptions: 0 }, + total: defaultEndpointStats() + }; + this.#endpointStats = defaultEndpointStats(); + this.#timeout = timeout || DEFAULT_TIMEOUT_MS; + + if (autoConnectMs && autoConnectMs > 0) { + this.connectWithRetry().catch(noop); + } + + this.#isReadyPromise = new Promise((resolve): void => { + this.#eventemitter.once('connected', (): void => { + resolve(this); + }); + }); + } + + /** + * @summary `true` when this provider supports subscriptions + */ + public get hasSubscriptions (): boolean { + return !!true; + } + + /** + * @summary `true` when this provider supports clone() + */ + public get isClonable (): boolean { + return !!true; + } + + /** + * @summary Whether the node is connected or not. + * @return {boolean} true if connected + */ + public get isConnected (): boolean { + return this.#isConnected; + } + + /** + * @description Promise that resolves the first time we are connected and loaded + */ + public get isReady (): Promise { + return this.#isReadyPromise; + } + + public get endpoint (): string { + return this.#endpoints[this.#endpointIndex]; + } + + /** + * @description Returns a clone of the object + */ + public clone (): WsProvider { + return new WsProvider(this.#endpoints); + } + + protected selectEndpointIndex (endpoints: string[]): number { + return (this.#endpointIndex + 1) % endpoints.length; + } + + /** + * @summary Manually connect + * @description The [[WsProvider]] connects automatically by default, however if you decided otherwise, you may + * connect manually using this method. + */ + // eslint-disable-next-line @typescript-eslint/require-await + public async connect (): Promise { + if (this.#websocket) { + throw new Error('WebSocket is already connected'); + } + + try { + this.#endpointIndex = this.selectEndpointIndex(this.#endpoints); + + // the as here is Deno-specific - not available on the globalThis + this.#websocket = typeof xglobal.WebSocket !== 'undefined' && isChildClass(xglobal.WebSocket as unknown as Class, WebSocket) + ? new WebSocket(this.endpoint) + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore - WS may be an instance of ws, which supports options + : new WebSocket(this.endpoint, undefined, { + headers: this.#headers + }); + + if (this.#websocket) { + this.#websocket.onclose = this.#onSocketClose; + this.#websocket.onerror = this.#onSocketError; + this.#websocket.onmessage = this.#onSocketMessage; + this.#websocket.onopen = this.#onSocketOpen; + } + + // timeout any handlers that have not had a response + this.#timeoutId = setInterval(() => this.#timeoutHandlers(), TIMEOUT_INTERVAL); + } catch (error) { + l.error(error); + + this.#emit('error', error); + + throw error; + } + } + + /** + * @description Connect, never throwing an error, but rather forcing a retry + */ + public async connectWithRetry (): Promise { + if (this.#autoConnectMs > 0) { + try { + await this.connect(); + } catch { + setTimeout((): void => { + this.connectWithRetry().catch(noop); + }, this.#autoConnectMs); + } + } + } + + /** + * @description Manually disconnect from the connection, clearing auto-connect logic + */ + // eslint-disable-next-line @typescript-eslint/require-await + public async disconnect (): Promise { + // switch off autoConnect, we are in manual mode now + this.#autoConnectMs = 0; + + try { + if (this.#websocket) { + // 1000 - Normal closure; the connection successfully completed + this.#websocket.close(1000); + } + } catch (error) { + l.error(error); + + this.#emit('error', error); + + throw error; + } + } + + /** + * @description Returns the connection stats + */ + public get stats (): ProviderStats { + return { + active: { + requests: Object.keys(this.#handlers).length, + subscriptions: Object.keys(this.#subscriptions).length + }, + total: this.#stats.total + }; + } + + /** + * @description Returns the connection stats + */ + public get ttl (): number | null | undefined { + return this.#ttl; + } + + public get endpointStats (): EndpointStats { + return this.#endpointStats; + } + + /** + * @summary Listens on events after having subscribed using the [[subscribe]] function. + * @param {ProviderInterfaceEmitted} type Event + * @param {ProviderInterfaceEmitCb} sub Callback + * @return unsubscribe function + */ + public on (type: ProviderInterfaceEmitted, sub: ProviderInterfaceEmitCb): () => void { + this.#eventemitter.on(type, sub); + + return (): void => { + this.#eventemitter.removeListener(type, sub); + }; + } + + /** + * @summary Send JSON data using WebSockets to configured HTTP Endpoint or queue. + * @param method The RPC methods to execute + * @param params Encoded parameters as applicable for the method + * @param subscription Subscription details (internally used) + */ + public send (method: string, params: unknown[], isCacheable?: boolean, subscription?: SubscriptionHandler): Promise { + this.#endpointStats.requests++; + this.#stats.total.requests++; + + const [id, body] = this.#coder.encodeJson(method, params); + + if (this.#cacheCapacity === 0) { + return this.#send(id, body, method, params, subscription); + } + + const cacheKey = isCacheable ? `${method}::${stringify(params)}` : ''; + let resultPromise: Promise | null = isCacheable + ? this.#callCache.get(cacheKey) + : null; + + if (!resultPromise) { + resultPromise = this.#send(id, body, method, params, subscription); + + if (isCacheable) { + this.#callCache.set(cacheKey, resultPromise); + } + } else { + this.#endpointStats.cached++; + this.#stats.total.cached++; + } + + return resultPromise; + } + + async #send (id: number, body: string, method: string, params: unknown[], subscription?: SubscriptionHandler): Promise { + return new Promise((resolve, reject): void => { + try { + if (!this.isConnected || this.#websocket === null) { + throw new Error('WebSocket is not connected'); + } + + const callback = (error?: Error | null, result?: T): void => { + error + ? reject(error) + : resolve(result as T); + }; + + l.debug(() => ['calling', method, body]); + + this.#handlers[id] = { + callback, + method, + params, + start: Date.now(), + subscription + }; + + const bytesSent = body.length; + + this.#endpointStats.bytesSent += bytesSent; + this.#stats.total.bytesSent += bytesSent; + + this.#websocket.send(body); + } catch (error) { + this.#endpointStats.errors++; + this.#stats.total.errors++; + + const rpcError: RpcError = error as RpcError; + const failedRequest = `\nFailed WS Request: ${JSON.stringify({ method, params })}`; + + // Provide WS Request alongside the error + rpcError.message = `${rpcError.message}${failedRequest}`; + reject(rpcError); + } + }); + } + + /** + * @name subscribe + * @summary Allows subscribing to a specific event. + * + * @example + *
+ * + * ```javascript + * const provider = new WsProvider('ws://127.0.0.1:9944'); + * const rpc = new Rpc(provider); + * + * rpc.state.subscribeStorage([[storage.system.account,
]], (_, values) => { + * console.log(values) + * }).then((subscriptionId) => { + * console.log('balance changes subscription id: ', subscriptionId) + * }) + * ``` + */ + public subscribe (type: string, method: string, params: unknown[], callback: ProviderInterfaceCallback): Promise { + this.#endpointStats.subscriptions++; + this.#stats.total.subscriptions++; + + // subscriptions are not cached, LRU applies to .at() only + return this.send(method, params, false, { callback, type }); + } + + /** + * @summary Allows unsubscribing to subscriptions made with [[subscribe]]. + */ + public async unsubscribe (type: string, method: string, id: number | string): Promise { + const subscription = `${type}::${id}`; + + // FIXME This now could happen with re-subscriptions. The issue is that with a re-sub + // the assigned id now does not match what the API user originally received. It has + // a slight complication in solving - since we cannot rely on the send id, but rather + // need to find the actual subscription id to map it + if (isUndefined(this.#subscriptions[subscription])) { + l.debug(() => `Unable to find active subscription=${subscription}`); + + return false; + } + + delete this.#subscriptions[subscription]; + + try { + return this.isConnected && !isNull(this.#websocket) + ? this.send(method, [id]) + : true; + } catch { + return false; + } + } + + #emit = (type: ProviderInterfaceEmitted, ...args: unknown[]): void => { + this.#eventemitter.emit(type, ...args); + }; + + #onSocketClose = (event: CloseEvent): void => { + const error = new Error(`disconnected from ${this.endpoint}: ${event.code}:: ${event.reason || getWSErrorString(event.code)}`); + + if (this.#autoConnectMs > 0) { + l.error(error.message); + } + + this.#isConnected = false; + + if (this.#websocket) { + this.#websocket.onclose = null; + this.#websocket.onerror = null; + this.#websocket.onmessage = null; + this.#websocket.onopen = null; + this.#websocket = null; + } + + if (this.#timeoutId) { + clearInterval(this.#timeoutId); + this.#timeoutId = null; + } + + // reject all hanging requests + eraseRecord(this.#handlers, (h) => { + try { + h.callback(error, undefined); + } catch (err) { + // does not throw + l.error(err); + } + }); + eraseRecord(this.#waitingForId); + + // Reset stats for active endpoint + this.#endpointStats = defaultEndpointStats(); + + this.#emit('disconnected'); + + if (this.#autoConnectMs > 0) { + setTimeout((): void => { + this.connectWithRetry().catch(noop); + }, this.#autoConnectMs); + } + }; + + #onSocketError = (error: Event): void => { + l.debug(() => ['socket error', error]); + this.#emit('error', error); + }; + + #onSocketMessage = (message: MessageEvent): void => { + l.debug(() => ['received', message.data]); + + const bytesRecv = message.data.length; + + this.#endpointStats.bytesRecv += bytesRecv; + this.#stats.total.bytesRecv += bytesRecv; + + const response = JSON.parse(message.data) as JsonRpcResponse; + + return isUndefined(response.method) + ? this.#onSocketMessageResult(response) + : this.#onSocketMessageSubscribe(response); + }; + + #onSocketMessageResult = (response: JsonRpcResponse): void => { + const handler = this.#handlers[response.id]; + + if (!handler) { + l.debug(() => `Unable to find handler for id=${response.id}`); + + return; + } + + try { + const { method, params, subscription } = handler; + const result = this.#coder.decodeResponse(response); + + // first send the result - in case of subs, we may have an update + // immediately if we have some queued results already + handler.callback(null, result); + + if (subscription) { + const subId = `${subscription.type}::${result}`; + + this.#subscriptions[subId] = objectSpread({}, subscription, { + method, + params + }); + + // if we have a result waiting for this subscription already + if (this.#waitingForId[subId]) { + this.#onSocketMessageSubscribe(this.#waitingForId[subId]); + } + } + } catch (error) { + this.#endpointStats.errors++; + this.#stats.total.errors++; + + handler.callback(error as Error, undefined); + } + + delete this.#handlers[response.id]; + }; + + #onSocketMessageSubscribe = (response: JsonRpcResponse): void => { + if (!response.method) { + throw new Error('No method found in JSONRPC response'); + } + + const method = ALIASES[response.method] || response.method; + const subId = `${method}::${response.params.subscription}`; + const handler = this.#subscriptions[subId]; + + if (!handler) { + // store the JSON, we could have out-of-order subid coming in + this.#waitingForId[subId] = response; + + l.debug(() => `Unable to find handler for subscription=${subId}`); + + return; + } + + // housekeeping + delete this.#waitingForId[subId]; + + try { + const result = this.#coder.decodeResponse(response); + + handler.callback(null, result); + } catch (error) { + this.#endpointStats.errors++; + this.#stats.total.errors++; + + handler.callback(error as Error, undefined); + } + }; + + #onSocketOpen = (): boolean => { + if (this.#websocket === null) { + throw new Error('WebSocket cannot be null in onOpen'); + } + + l.debug(() => ['connected to', this.endpoint]); + + this.#isConnected = true; + + this.#resubscribe(); + + this.#emit('connected'); + + return true; + }; + + #resubscribe = (): void => { + const subscriptions = this.#subscriptions; + + this.#subscriptions = {}; + + Promise.all(Object.keys(subscriptions).map(async (id): Promise => { + const { callback, method, params, type } = subscriptions[id]; + + // only re-create subscriptions which are not in author (only area where + // transactions are created, i.e. submissions such as 'author_submitAndWatchExtrinsic' + // are not included (and will not be re-broadcast) + if (type.startsWith('author_')) { + return; + } + + try { + await this.subscribe(type, method, params, callback); + } catch (error) { + l.error(error); + } + })).catch(l.error); + }; + + #timeoutHandlers = (): void => { + const now = Date.now(); + const ids = Object.keys(this.#handlers); + + for (let i = 0, count = ids.length; i < count; i++) { + const handler = this.#handlers[ids[i]]; + + if ((now - handler.start) > this.#timeout) { + try { + handler.callback(new Error(`No response received from RPC endpoint in ${this.#timeout / 1000}s`), undefined); + } catch { + // ignore + } + + this.#endpointStats.timeout++; + this.#stats.total.timeout++; + delete this.#handlers[ids[i]]; + } + } + }; +} diff --git a/packages/rpc-provider/src/ws/send.spec.ts b/packages/rpc-provider/src/ws/send.spec.ts new file mode 100644 index 0000000..dcafecc --- /dev/null +++ b/packages/rpc-provider/src/ws/send.spec.ts @@ -0,0 +1,126 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Request } from '../mock/mockWs.js'; +import type { Global, Mock } from '../mock/types.js'; + +import { mockWs } from '../mock/mockWs.js'; +import { WsProvider } from './index.js'; + +declare const global: Global; + +const TEST_WS_URL = 'ws://localhost-send.spec.ts:9965'; + +let provider: WsProvider | null; +let mock: Mock; + +function createMock (requests: Request[]): void { + mock = mockWs(requests, TEST_WS_URL); +} + +function createWs (autoConnect = 1000): Promise { + provider = new WsProvider(TEST_WS_URL, autoConnect); + + return provider.isReady; +} + +describe('send', (): void => { + let globalWs: typeof WebSocket; + + beforeEach((): void => { + globalWs = global.WebSocket; + }); + + afterEach(async () => { + global.WebSocket = globalWs; + + if (mock) { + await mock.done(); + } + + if (provider) { + await provider.disconnect(); + provider = null; + } + }); + + it('handles internal errors', (): Promise => { + createMock([{ + id: 1, + method: 'test_body', + reply: { + result: 'ok' + } + }]); + + return createWs().then((ws) => + ws + .send('test_encoding', [{ error: 'send error' }]) + .catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toEqual('send error'); + }) + ); + }); + + it('passes the body through correctly', (): Promise => { + createMock([{ + id: 1, + method: 'test_body', + reply: { + result: 'ok' + } + }]); + + return createWs().then((ws) => + ws + .send('test_body', ['param']) + .then((): void => { + expect( + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + (mock.body as any).test_body + ).toEqual('{"id":1,"jsonrpc":"2.0","method":"test_body","params":["param"]}'); + }) + ); + }); + + it('throws error when !response.ok', (): Promise => { + createMock([{ + error: { + code: 666, + message: 'error' + }, + id: 1, + method: 'something' + }]); + + return createWs().then((ws) => + ws + .send('test_error', []) + .catch((error): void => { + // eslint-disable-next-line jest/no-conditional-expect + expect((error as Error).message).toMatch(/666: error/); + }) + ); + }); + + it('adds subscriptions', (): Promise => { + createMock([{ + id: 1, + method: 'test_sub', + reply: { + result: 1 + } + }]); + + return createWs().then((ws) => + ws + .send('test_sub', []) + .then((id): void => { + expect(id).toEqual(1); + }) + ); + }); +}); diff --git a/packages/rpc-provider/src/ws/state.spec.ts b/packages/rpc-provider/src/ws/state.spec.ts new file mode 100644 index 0000000..0887a0d --- /dev/null +++ b/packages/rpc-provider/src/ws/state.spec.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { WsProvider } from './index.js'; + +describe('state', (): void => { + it('requires an ws:// prefixed endpoint', (): void => { + expect( + () => new WsProvider('http://', 0) + ).toThrow(/with 'ws/); + }); + + it('allows wss:// endpoints', (): void => { + expect( + () => new WsProvider('wss://', 0) + ).not.toThrow(); + }); +}); diff --git a/packages/rpc-provider/src/ws/subscribe.spec.ts b/packages/rpc-provider/src/ws/subscribe.spec.ts new file mode 100644 index 0000000..ce1668e --- /dev/null +++ b/packages/rpc-provider/src/ws/subscribe.spec.ts @@ -0,0 +1,68 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Request } from '../mock/mockWs.js'; +import type { Global, Mock } from './../mock/types.js'; + +import { mockWs } from '../mock/mockWs.js'; +import { WsProvider } from './index.js'; + +declare const global: Global; + +const TEST_WS_URL = 'ws://localhost-subscribe.test.ts:9933'; + +let provider: WsProvider | null; +let mock: Mock; + +function createMock (requests: Request[]): void { + mock = mockWs(requests, TEST_WS_URL); +} + +function createWs (autoConnect = 1000): Promise { + provider = new WsProvider(TEST_WS_URL, autoConnect); + + return provider.isReady; +} + +describe('subscribe', (): void => { + let globalWs: typeof WebSocket; + + beforeEach((): void => { + globalWs = global.WebSocket; + }); + + afterEach(async () => { + global.WebSocket = globalWs; + + if (mock) { + await mock.done(); + } + + if (provider) { + await provider.disconnect(); + provider = null; + } + }); + + it('adds subscriptions', (): Promise => { + createMock([{ + id: 1, + method: 'test_sub', + reply: { + result: 1 + } + }]); + + return createWs().then((ws) => + ws + .subscribe('type', 'test_sub', [], (cb): void => { + expect(cb).toEqual(expect.anything()); + }) + .then((id): void => { + expect(id).toEqual(1); + }) + ); + }); +}); diff --git a/packages/rpc-provider/src/ws/unsubscribe.spec.ts b/packages/rpc-provider/src/ws/unsubscribe.spec.ts new file mode 100644 index 0000000..ade7ad6 --- /dev/null +++ b/packages/rpc-provider/src/ws/unsubscribe.spec.ts @@ -0,0 +1,100 @@ +// Copyright 2017-2025 @pezkuwi/rpc-provider authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Request } from '../mock/mockWs.js'; +import type { Global, Mock } from './../mock/types.js'; + +import { mockWs } from '../mock/mockWs.js'; +import { WsProvider } from './index.js'; + +declare const global: Global; + +const TEST_WS_URL = 'ws://localhost-unsubscribe.test.ts:9933'; + +let provider: WsProvider | null; +let mock: Mock; + +function createMock (requests: Request[]): void { + mock = mockWs(requests, TEST_WS_URL); +} + +function createWs (autoConnect = 1000): Promise { + provider = new WsProvider(TEST_WS_URL, autoConnect); + + return provider.isReady; +} + +describe('subscribe', (): void => { + let globalWs: typeof WebSocket; + + beforeEach((): void => { + globalWs = global.WebSocket; + }); + + afterEach(async () => { + global.WebSocket = globalWs; + + if (mock) { + await mock.done(); + } + + if (provider) { + await provider.disconnect(); + provider = null; + } + }); + + it('removes subscriptions', async (): Promise => { + createMock([ + { + id: 1, + method: 'subscribe_test', + reply: { + result: 1 + } + }, + { + id: 2, + method: 'unsubscribe_test', + reply: { + result: true + } + } + ]); + + await createWs().then((ws) => + ws + .subscribe('test', 'subscribe_test', [], (cb): void => { + expect(cb).toEqual(expect.anything()); + }) + .then((id): Promise => { + return ws.unsubscribe('test', 'subscribe_test', id); + }) + ); + }); + + it('fails when sub not found', (): Promise => { + createMock([{ + id: 1, + method: 'subscribe_test', + reply: { + result: 1 + } + }]); + + return createWs().then((ws) => + ws + .subscribe('test', 'subscribe_test', [], (cb): void => { + expect(cb).toEqual(expect.anything()); + }) + .then((): Promise => { + return ws.unsubscribe('test', 'subscribe_test', 111); + }) + .then((result): void => { + expect(result).toBe(false); + }) + ); + }); +}); diff --git a/packages/rpc-provider/tsconfig.build.json b/packages/rpc-provider/tsconfig.build.json new file mode 100644 index 0000000..e4b9f97 --- /dev/null +++ b/packages/rpc-provider/tsconfig.build.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "resolveJsonModule": true + }, + "exclude": [ + "**/*.spec.ts", + "**/mod.ts" + ], + "references": [ + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" } + ] +} diff --git a/packages/rpc-provider/tsconfig.spec.json b/packages/rpc-provider/tsconfig.spec.json new file mode 100644 index 0000000..b13f18e --- /dev/null +++ b/packages/rpc-provider/tsconfig.spec.json @@ -0,0 +1,18 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "resolveJsonModule": true, + "noEmit": true + }, + "include": [ + "**/*.spec.ts" + ], + "references": [ + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/packages/typegen/README.md b/packages/typegen/README.md new file mode 100644 index 0000000..c994911 --- /dev/null +++ b/packages/typegen/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/typegen + +A collection of type generation scripts, allowing the input of metadata and definitions for the creation of TS outputs. diff --git a/packages/typegen/package.json b/packages/typegen/package.json new file mode 100644 index 0000000..3044610 --- /dev/null +++ b/packages/typegen/package.json @@ -0,0 +1,52 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Type generation scripts", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/typegen#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/typegen", + "repository": { + "directory": "packages/typegen", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "bin": { + "pezkuwi-types-chain-info": "./scripts/pezkuwi-types-chain-info.mjs", + "pezkuwi-types-from-chain": "./scripts/pezkuwi-types-from-chain.mjs", + "pezkuwi-types-from-defs": "./scripts/pezkuwi-types-from-defs.mjs", + "pezkuwi-types-internal-interfaces": "./scripts/pezkuwi-types-internal-interfaces.mjs", + "pezkuwi-types-internal-metadata": "./scripts/pezkuwi-types-internal-metadata.mjs" + }, + "dependencies": { + "@pezkuwi/api": "16.5.4", + "@pezkuwi/api-augment": "16.5.4", + "@pezkuwi/api-derive": "16.5.4", + "@pezkuwi/rpc-augment": "16.5.4", + "@pezkuwi/rpc-provider": "16.5.4", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-augment": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/types-create": "16.5.4", + "@pezkuwi/types-support": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/util-crypto": "^14.0.1", + "@pezkuwi/x-ws": "^14.0.1", + "comment-parser": "^1.4.1", + "handlebars": "^4.7.8", + "tslib": "^2.8.1", + "yargs": "^17.7.2" + }, + "devDependencies": { + "@types/yargs": "^17.0.33" + } +} diff --git a/packages/typegen/scripts/pezkuwi-types-chain-info.mjs b/packages/typegen/scripts/pezkuwi-types-chain-info.mjs new file mode 100755 index 0000000..bd17d37 --- /dev/null +++ b/packages/typegen/scripts/pezkuwi-types-chain-info.mjs @@ -0,0 +1,7 @@ +#!/usr/bin/env node +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { main } from '@pezkuwi/typegen/extractChain'; + +main(); diff --git a/packages/typegen/scripts/pezkuwi-types-from-chain.mjs b/packages/typegen/scripts/pezkuwi-types-from-chain.mjs new file mode 100755 index 0000000..39c5002 --- /dev/null +++ b/packages/typegen/scripts/pezkuwi-types-from-chain.mjs @@ -0,0 +1,7 @@ +#!/usr/bin/env node +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { main } from '@pezkuwi/typegen/fromChain'; + +main(); diff --git a/packages/typegen/scripts/pezkuwi-types-from-defs.mjs b/packages/typegen/scripts/pezkuwi-types-from-defs.mjs new file mode 100755 index 0000000..0940717 --- /dev/null +++ b/packages/typegen/scripts/pezkuwi-types-from-defs.mjs @@ -0,0 +1,7 @@ +#!/usr/bin/env node +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { main } from '@pezkuwi/typegen/fromDefs'; + +main(); diff --git a/packages/typegen/scripts/pezkuwi-types-internal-interfaces.mjs b/packages/typegen/scripts/pezkuwi-types-internal-interfaces.mjs new file mode 100755 index 0000000..e036d53 --- /dev/null +++ b/packages/typegen/scripts/pezkuwi-types-internal-interfaces.mjs @@ -0,0 +1,7 @@ +#!/usr/bin/env node +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { main } from '@pezkuwi/typegen/interfacesTs'; + +main(); diff --git a/packages/typegen/scripts/pezkuwi-types-internal-metadata.mjs b/packages/typegen/scripts/pezkuwi-types-internal-metadata.mjs new file mode 100755 index 0000000..46b9443 --- /dev/null +++ b/packages/typegen/scripts/pezkuwi-types-internal-metadata.mjs @@ -0,0 +1,7 @@ +#!/usr/bin/env node +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { main } from '@pezkuwi/typegen/metadataMd'; + +main(); diff --git a/packages/typegen/src/augment.ts b/packages/typegen/src/augment.ts new file mode 100644 index 0000000..22962aa --- /dev/null +++ b/packages/typegen/src/augment.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/api-augment'; +import '@pezkuwi/rpc-augment'; diff --git a/packages/typegen/src/bundle.ts b/packages/typegen/src/bundle.ts new file mode 100644 index 0000000..8f59c2f --- /dev/null +++ b/packages/typegen/src/bundle.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { packageInfo } from './packageInfo.js'; +export { formatType } from './util/formatting.js'; diff --git a/packages/typegen/src/extractChain.ts b/packages/typegen/src/extractChain.ts new file mode 100644 index 0000000..1c8822a --- /dev/null +++ b/packages/typegen/src/extractChain.ts @@ -0,0 +1,54 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Connects to the local chain and outputs a re-usable calls-only chain definition in the form +// export default { chain: 'Development', genesisHash: '0x27b6d5e0f4fdce1c4d20b82406f193acacce0c19e0d2c0e7ca47725c2572a06a', ss58Format: 42, tokenDecimals: 0, tokenSymbol: 'UNIT'; metaCalls: 'bWV0...4AAA==' }; + +import process from 'node:process'; +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { ApiPromise, WsProvider } from '@pezkuwi/api'; + +/** @internal */ +async function run (ws: string): Promise { + const provider = new WsProvider(ws); + const api = await ApiPromise.create({ provider, throwOnConnect: true }); + const [chain, props] = await Promise.all([ + api.rpc.system.chain(), + api.rpc.system.properties() + ]); + + // output the chain info, for easy re-use + console.error(`// Generated via 'yarn run chain:info ${ws}'\n\nexport default {\n chain: '${chain.toString()}',\n genesisHash: '${api.genesisHash.toHex()}',\n specVersion: ${api.runtimeVersion.specVersion.toNumber()},\n ss58Format: ${props.ss58Format.unwrapOr(42).toString()},\n tokenDecimals: ${props.tokenDecimals.unwrapOr(0).toString()},\n tokenSymbol: '${props.tokenSymbol.unwrapOr('UNIT').toString()}',\n metaCalls: '${Buffer.from(api.runtimeMetadata.asCallsOnly.toU8a()).toString('base64')}'\n};`); + + // show any missing types + api.runtimeMetadata.getUniqTypes(false); +} + +interface ArgV { ws: string } + +export function main (): void { + // retrieve and parse arguments - we do this globally, since this is a single command + const { ws } = yargs(hideBin(process.argv)) + .usage('Usage: [options]') + .wrap(120) + .strict() + .options({ + ws: { + default: 'ws://127.0.0.1:9944', + description: 'The API endpoint to connect to, e.g. wss://dicle-rpc.pezkuwi.io', + required: true, + type: 'string' + } + }).argv as ArgV; + + run(ws) + .then((): void => { + process.exit(0); + }) + .catch((error: Error) => { + console.error('FATAL:', error.message); + process.exit(-1); + }); +} diff --git a/packages/typegen/src/fromChain.ts b/packages/typegen/src/fromChain.ts new file mode 100644 index 0000000..b9de1aa --- /dev/null +++ b/packages/typegen/src/fromChain.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions, DefinitionsTypes } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import fs from 'node:fs'; +import path from 'node:path'; +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { formatNumber, isHex } from '@pezkuwi/util'; + +import { generateDefaultConsts, generateDefaultErrors, generateDefaultEvents, generateDefaultQuery, generateDefaultRpc, generateDefaultRuntime, generateDefaultTx } from './generate/index.js'; +import { assertDir, assertFile, getMetadataViaWs, HEADER, writeFile } from './util/index.js'; + +async function generate (metaHex: HexString, pkg: string | undefined, output: string, isStrict?: boolean): Promise { + console.log(`Generating from metadata, ${formatNumber((metaHex.length - 2) / 2)} bytes`); + + const outputPath = assertDir(path.join(process.cwd(), output)); + let extraTypes: Record = {}; + let customLookupDefinitions: Definitions = { rpc: {}, types: {} }; + + if (pkg) { + try { + const defCont = await import( + assertFile(path.join(outputPath, 'definitions.ts')) + ) as Record; + + extraTypes = { + [pkg]: defCont + }; + } catch (error) { + console.error('ERROR: No custom definitions found:', (error as Error).message); + } + } + + try { + const lookCont = await import( + assertFile(path.join(outputPath, 'lookup.ts')) + ) as { default: DefinitionsTypes }; + + customLookupDefinitions = { + rpc: {}, + types: lookCont.default + }; + } catch (error) { + console.error('ERROR: No lookup definitions found:', (error as Error).message); + } + + generateDefaultConsts(path.join(outputPath, 'augment-api-consts.ts'), metaHex, extraTypes, isStrict, customLookupDefinitions); + generateDefaultErrors(path.join(outputPath, 'augment-api-errors.ts'), metaHex, extraTypes, isStrict); + generateDefaultEvents(path.join(outputPath, 'augment-api-events.ts'), metaHex, extraTypes, isStrict, customLookupDefinitions); + generateDefaultQuery(path.join(outputPath, 'augment-api-query.ts'), metaHex, extraTypes, isStrict, customLookupDefinitions); + generateDefaultRpc(path.join(outputPath, 'augment-api-rpc.ts'), extraTypes); + generateDefaultRuntime(path.join(outputPath, 'augment-api-runtime.ts'), metaHex, extraTypes, isStrict, customLookupDefinitions); + generateDefaultTx(path.join(outputPath, 'augment-api-tx.ts'), metaHex, extraTypes, isStrict, customLookupDefinitions); + + writeFile(path.join(outputPath, 'augment-api.ts'), (): string => + [ + HEADER('chain'), + ...[ + ...['consts', 'errors', 'events', 'query', 'tx', 'rpc', 'runtime'] + .filter((key) => !!key) + .map((key) => `./augment-api-${key}.js`) + ].map((path) => `import '${path}';\n`) + ].join('') + ); + + process.exit(0); +} + +interface ArgV { endpoint: string; output: string; package?: string; strict?: boolean } + +async function mainPromise (): Promise { + const { endpoint, output, package: pkg, strict: isStrict } = yargs(hideBin(process.argv)).strict().options({ + endpoint: { + description: 'The endpoint to connect to (e.g. wss://dicle-rpc.pezkuwi.io) or relative path to a file containing the JSON output of an RPC state_getMetadata call', + required: true, + type: 'string' + }, + output: { + description: 'The target directory to write the data to', + required: true, + type: 'string' + }, + package: { + description: 'Optional package in output location (for extra definitions)', + type: 'string' + }, + strict: { + description: 'Turns on strict mode, no output of catch-all generic versions', + type: 'boolean' + } + }).argv as ArgV; + + let metaHex: HexString; + + if (endpoint.startsWith('wss://') || endpoint.startsWith('ws://')) { + metaHex = await getMetadataViaWs(endpoint); + } else { + metaHex = ( + JSON.parse( + fs.readFileSync(assertFile(path.join(process.cwd(), endpoint)), 'utf-8') + ) as { result: HexString } + ).result; + + if (!isHex(metaHex)) { + throw new Error('Invalid metadata file'); + } + } + + await generate(metaHex, pkg, output, isStrict); +} + +export function main (): void { + mainPromise().catch((error) => { + console.error(); + console.error(error); + console.error(); + process.exit(1); + }); +} diff --git a/packages/typegen/src/fromDefs.ts b/packages/typegen/src/fromDefs.ts new file mode 100644 index 0000000..e4fc6c2 --- /dev/null +++ b/packages/typegen/src/fromDefs.ts @@ -0,0 +1,106 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; + +import fs from 'node:fs'; +import path from 'node:path'; +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import * as bizinikiwiDefs from '@pezkuwi/types/interfaces/definitions'; +import { isHex } from '@pezkuwi/util'; + +import { generateDefaultLookup } from './generate/index.js'; +import { generateInterfaceTypes } from './generate/interfaceRegistry.js'; +import { generateTsDef } from './generate/tsDef.js'; +import { assertDir, assertFile, getMetadataViaWs } from './util/index.js'; + +interface ArgV { input: string; package: string; endpoint?: string; } + +async function mainPromise (): Promise { + const { endpoint, input, package: pkg } = yargs(hideBin(process.argv)).strict().options({ + endpoint: { + description: 'The endpoint to connect to (e.g. wss://dicle-rpc.pezkuwi.io) or relative path to a file containing the JSON output of an RPC state_getMetadata call', + type: 'string' + }, + input: { + description: 'The directory to use for the user definitions', + required: true, + type: 'string' + }, + package: { + description: 'The package name & path to use for the user types', + required: true, + type: 'string' + } + }).argv as ArgV; + + const inputPath = assertDir(path.join(process.cwd(), input)); + let userDefs: Record = {}; + + try { + const defCont = await import( + assertFile(path.join(inputPath, 'definitions.ts')) + ) as Record; + + userDefs = defCont; + } catch (error) { + console.error('ERROR: Unable to load user definitions:', (error as Error).message); + } + + const userKeys = Object.keys(userDefs); + const filteredBase = Object + .entries(bizinikiwiDefs as Record) + .filter(([key]) => { + if (userKeys.includes(key)) { + console.warn(`Override found for ${key} in user types, ignoring in @pezkuwi/types`); + + return false; + } + + return true; + }) + .reduce((defs: Record, [key, value]) => { + defs[key] = value; + + return defs; + }, {}); + + const allDefs = { + '@pezkuwi/types/interfaces': filteredBase, + [pkg]: userDefs + }; + + generateTsDef(allDefs, inputPath, pkg); + generateInterfaceTypes(allDefs, path.join(inputPath, 'augment-types.ts')); + + if (endpoint) { + let metaHex: HexString; + + if (endpoint.startsWith('wss://') || endpoint.startsWith('ws://')) { + metaHex = await getMetadataViaWs(endpoint); + } else { + metaHex = ( + JSON.parse( + fs.readFileSync(assertFile(path.join(process.cwd(), endpoint)), 'utf-8') + ) as { result: HexString } + ).result; + + if (!isHex(metaHex)) { + throw new Error('Invalid metadata file'); + } + } + + generateDefaultLookup(inputPath, metaHex); + } +} + +export function main (): void { + mainPromise().catch((error) => { + console.error(); + console.error(error); + console.error(); + process.exit(1); + }); +} diff --git a/packages/typegen/src/generate/consts.ts b/packages/typegen/src/generate/consts.ts new file mode 100644 index 0000000..ec57cd7 --- /dev/null +++ b/packages/typegen/src/generate/consts.ts @@ -0,0 +1,112 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Metadata } from '@pezkuwi/types/metadata/Metadata'; +import type { Definitions } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import Handlebars from 'handlebars'; + +import * as defaultDefs from '@pezkuwi/types/interfaces/definitions'; +import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions'; +import { stringCamelCase } from '@pezkuwi/util'; + +import { compareName, createImports, formatType, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js'; +import { ignoreUnusedLookups } from './lookup.js'; +import { type ExtraTypes, getDeprecationNotice } from './types.js'; + +const generateForMetaTemplate = Handlebars.compile(readTemplate('consts')); + +/** @internal */ +function generateForMeta (meta: Metadata, dest: string, extraTypes: ExtraTypes, isStrict: boolean, customLookupDefinitions?: Definitions): void { + writeFile(dest, (): string => { + const allTypes = { + '@pezkuwi/types-augment': { + lookup: { + ...lookupDefinitions, + ...customLookupDefinitions + } + }, + '@pezkuwi/types/interfaces': defaultDefs, + ...extraTypes + }; + const imports = createImports(allTypes); + const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => { + return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs); + }, {}); + const { lookup, pallets, registry } = meta.asLatest; + const usedTypes = new Set([]); + + const modules = pallets + .filter(({ constants }) => constants.length > 0) + .map(({ constants, name }) => { + if (!isStrict) { + setImports(allDefs, imports, ['Codec']); + } + + const items = constants + .map(({ deprecationInfo, docs, name, type }) => { + const typeDef = lookup.getTypeDef(type); + const returnType = rebrandTypeName(typeDef.lookupName || '') || formatType(registry, allDefs, typeDef, imports); + + if (!deprecationInfo.isNotDeprecated) { + const deprecationNotice = getDeprecationNotice(deprecationInfo, stringCamelCase(name), 'Constant'); + + const items = docs.length + ? ['', deprecationNotice] + : [deprecationNotice]; + + docs.push(...items.map((text) => registry.createType('Text', text))); + } + + // Add the type to the list of used types + if (!(imports.primitiveTypes[returnType])) { + usedTypes.add(returnType); + } + + setImports(allDefs, imports, [returnType]); + + return { + docs, + name: stringCamelCase(name), + type: returnType + }; + }) + .sort(compareName); + + return { + items, + name: stringCamelCase(name) + }; + }) + .sort(compareName); + + // filter out the unused lookup types from imports + ignoreUnusedLookups([...usedTypes], imports); + + return generateForMetaTemplate({ + headerType: 'chain', + imports, + isStrict, + modules, + types: [ + ...Object.keys(imports.localTypes).sort().map<{ file: string; types: string[] }>((packagePath) => ({ + file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })), + { + file: '@pezkuwi/api-base/types', + types: ['ApiTypes', 'AugmentedConst'] + } + ] + }); + }); +} + +// Call `generateForMeta()` with current static metadata +/** @internal */ +export function generateDefaultConsts (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false, customLookupDefinitions?: Definitions): void { + const { metadata } = initMeta(data, extraTypes); + + return generateForMeta(metadata, dest, extraTypes, isStrict, customLookupDefinitions); +} diff --git a/packages/typegen/src/generate/errors.ts b/packages/typegen/src/generate/errors.ts new file mode 100644 index 0000000..5157858 --- /dev/null +++ b/packages/typegen/src/generate/errors.ts @@ -0,0 +1,75 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { VariantDeprecationInfoV16 } from '@pezkuwi/types/interfaces'; +import type { Metadata } from '@pezkuwi/types/metadata/Metadata'; +import type { HexString } from '@pezkuwi/util/types'; + +import Handlebars from 'handlebars'; + +import { stringCamelCase } from '@pezkuwi/util'; + +import { compareName, createImports, initMeta, readTemplate, writeFile } from '../util/index.js'; +import { type ExtraTypes, getDeprecationNotice } from './types.js'; + +const generateForMetaTemplate = Handlebars.compile(readTemplate('errors')); + +/** @internal */ +function generateForMeta (meta: Metadata, dest: string, isStrict: boolean): void { + writeFile(dest, (): string => { + const imports = createImports({}); + const { lookup, pallets } = meta.asLatest; + const modules = pallets + .filter(({ errors }) => errors.isSome) + .map((data) => { + const name = data.name; + const errors = data.errors.unwrap(); + const deprecationInfo = errors.deprecationInfo.toJSON(); + + return { + items: lookup.getSiType(errors.type).def.asVariant.variants + .map(({ docs, index, name }) => { + const rawStatus = deprecationInfo?.[index.toNumber()]; + + if (rawStatus) { + const deprecationVariantInfo: VariantDeprecationInfoV16 = meta.registry.createTypeUnsafe('VariantDeprecationInfoV16', [rawStatus]); + + const deprecationNotice = getDeprecationNotice(deprecationVariantInfo, name.toString()); + const notice = docs.length ? ['', deprecationNotice] : [deprecationNotice]; + + docs.push(...notice.map((text) => meta.registry.createType('Text', text))); + } + + return { + docs, + name: name.toString() + }; + }) + .sort(compareName), + name: stringCamelCase(name) + }; + }) + .sort(compareName); + + return generateForMetaTemplate({ + headerType: 'chain', + imports, + isStrict, + modules, + types: [ + { + file: '@pezkuwi/api-base/types', + types: ['ApiTypes', 'AugmentedError'] + } + ] + }); + }); +} + +// Call `generateForMeta()` with current static metadata +/** @internal */ +export function generateDefaultErrors (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false): void { + const { metadata } = initMeta(data, extraTypes); + + return generateForMeta(metadata, dest, isStrict); +} diff --git a/packages/typegen/src/generate/events.ts b/packages/typegen/src/generate/events.ts new file mode 100644 index 0000000..6fd8788 --- /dev/null +++ b/packages/typegen/src/generate/events.ts @@ -0,0 +1,165 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { VariantDeprecationInfoV16 } from '@pezkuwi/types/interfaces'; +import type { Metadata } from '@pezkuwi/types/metadata/Metadata'; +import type { Definitions } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import Handlebars from 'handlebars'; + +import * as defaultDefs from '@pezkuwi/types/interfaces/definitions'; +import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions'; +import { stringCamelCase } from '@pezkuwi/util'; + +import { compareName, createImports, formatType, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js'; +import { ignoreUnusedLookups } from './lookup.js'; +import { type ExtraTypes, getDeprecationNotice } from './types.js'; + +const generateForMetaTemplate = Handlebars.compile(readTemplate('events')); + +// For babel itself we need some extra aliasing +// Also avoid reserved words to prevent generating invalid TS +// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Lexical_grammar#reserved_words +const ALIAS = [ + 'symbol', + 'break', + 'case', + 'catch', + 'class', + 'const', + 'continue', + 'debugger', + 'default', + 'delete', + 'do', + 'else', + 'export', + 'extends', + 'false', + 'finally', + 'for', + 'function', + 'if', + 'import', + 'in', + 'instanceof', + 'new', + 'null', + 'return', + 'static', + 'super', + 'switch', + 'this', + 'throw', + 'true', + 'try', + 'typeof', + 'var', + 'void', + 'while', + 'with', + 'yield' +]; + +/** @internal */ +function generateForMeta (meta: Metadata, dest: string, extraTypes: ExtraTypes, isStrict: boolean, customLookupDefinitions?: Definitions): void { + writeFile(dest, (): string => { + const allTypes = { + '@pezkuwi/types-augment': { + lookup: { + ...lookupDefinitions, + ...customLookupDefinitions + } + }, + '@pezkuwi/types/interfaces': defaultDefs, + ...extraTypes + }; + const imports = createImports(allTypes); + const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => { + return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs); + }, {}); + const { lookup, pallets, registry } = meta.asLatest; + const usedTypes = new Set([]); + const modules = pallets + .filter(({ events }) => events.isSome) + .map((data) => { + const name = data.name; + const events = data.events.unwrap(); + const deprecationInfo = events.deprecationInfo.toJSON(); + + return { + items: lookup.getSiType(events.type).def.asVariant.variants + .map(({ docs, fields, index, name }) => { + const rawStatus = deprecationInfo?.[index.toNumber()]; + + if (rawStatus) { + const deprecationVariantInfo: VariantDeprecationInfoV16 = meta.registry.createTypeUnsafe('VariantDeprecationInfoV16', [rawStatus]); + const deprecationNotice = getDeprecationNotice(deprecationVariantInfo, name.toString()); + const notice = docs.length ? ['', deprecationNotice] : [deprecationNotice]; + + docs.push(...notice.map((text) => meta.registry.createType('Text', text))); + } + + const args = fields + .map(({ type }) => lookup.getTypeDef(type)) + .map((typeDef) => { + const arg = rebrandTypeName(typeDef.lookupName || '') || formatType(registry, allDefs, typeDef, imports); + + // Add the type to the list of used types + if (!(imports.primitiveTypes[arg])) { + usedTypes.add(arg); + } + + return arg; + }); + + const names = fields + .map(({ name }) => registry.lookup.sanitizeField(name)[0]) + .filter((n): n is string => !!n); + + setImports(allDefs, imports, args); + + return { + docs, + name: name.toString(), + type: names.length !== 0 && names.length === args.length + ? `[${names.map((n, i) => `${ALIAS.includes(n) ? `${n}_` : n}: ${args[i]}`).join(', ')}], { ${names.map((n, i) => `${n}: ${args[i]}`).join(', ')} }` + : `[${args.join(', ')}]` + }; + }) + .sort(compareName), + name: stringCamelCase(name) + }; + }) + .sort(compareName); + + // filter out the unused lookup types from imports + ignoreUnusedLookups([...usedTypes], imports); + + return generateForMetaTemplate({ + headerType: 'chain', + imports, + isStrict, + modules, + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })), + { + file: '@pezkuwi/api-base/types', + types: ['ApiTypes', 'AugmentedEvent'] + } + ] + }); + }); +} + +// Call `generateForMeta()` with current static metadata +/** @internal */ +export function generateDefaultEvents (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false, customLookupDefinitions?: Definitions): void { + const { metadata } = initMeta(data, extraTypes); + + return generateForMeta(metadata, dest, extraTypes, isStrict, customLookupDefinitions); +} diff --git a/packages/typegen/src/generate/index.ts b/packages/typegen/src/generate/index.ts new file mode 100644 index 0000000..94370b5 --- /dev/null +++ b/packages/typegen/src/generate/index.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { generateDefaultConsts } from './consts.js'; +export { generateDefaultErrors } from './errors.js'; +export { generateDefaultEvents } from './events.js'; +export { generateDefaultInterface } from './interfaceRegistry.js'; +export { generateDefaultLookup } from './lookup.js'; +export { generateDefaultQuery } from './query.js'; +export { generateDefaultRpc } from './rpc.js'; +export { generateDefaultRuntime } from './runtime.js'; +export { generateDefaultTsDef } from './tsDef.js'; +export { generateDefaultTx } from './tx.js'; diff --git a/packages/typegen/src/generate/interfaceRegistry.ts b/packages/typegen/src/generate/interfaceRegistry.ts new file mode 100644 index 0000000..ff2c16d --- /dev/null +++ b/packages/typegen/src/generate/interfaceRegistry.ts @@ -0,0 +1,85 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ModuleTypes } from '../util/imports.js'; + +import Handlebars from 'handlebars'; + +import { Json, Raw } from '@pezkuwi/types/codec'; +import { TypeRegistry } from '@pezkuwi/types/create'; +import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions'; +import * as defaultPrimitives from '@pezkuwi/types/primitive'; + +import { createImports, readTemplate, setImports, writeFile } from '../util/index.js'; + +const primitiveClasses = { + ...defaultPrimitives, + Json, + Raw +}; + +const generateInterfaceTypesTemplate = Handlebars.compile(readTemplate('interfaceRegistry')); + +/** @internal */ +export function generateInterfaceTypes (importDefinitions: Record>, dest: string): void { + const registry = new TypeRegistry(); + + writeFile(dest, (): string => { + Object.entries(importDefinitions).reduce((acc, def) => Object.assign(acc, def), {}); + + const imports = createImports(importDefinitions); + const definitions = imports.definitions; + const items: string[] = []; + + // first we create imports for our known classes from the API + Object + .keys(primitiveClasses) + .filter((name) => !name.includes('Generic')) + .forEach((primitiveName): void => { + setImports(definitions, imports, [primitiveName]); + + items.push(primitiveName); + }); + + const existingTypes: Record = {}; + + // ensure we have everything registered since we will get the definition + // form the available types (so any unknown should show after this) + Object.values(definitions).forEach(({ types }) => { + registry.register(types as Record); + }); + + // create imports for everything that we have available + Object.values(definitions).forEach(({ types }) => { + setImports(definitions, imports, Object.keys(types)); + + const uniqueTypes = Object.keys(types).filter((type) => !existingTypes[type]); + + uniqueTypes.forEach((type): void => { + existingTypes[type] = true; + + items.push(type); + }); + }); + + return generateInterfaceTypesTemplate({ + headerType: 'defs', + imports, + items: items.sort((a, b) => a.localeCompare(b)), + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath, + types: Object.keys(imports.localTypes[packagePath]) + })) + ] + }); + }); +} + +// Generate `packages/types/src/interfaceRegistry.ts`, the registry of all interfaces +export function generateDefaultInterface (): void { + generateInterfaceTypes( + { '@pezkuwi/types/interfaces': defaultDefinitions }, + 'packages/types-augment/src/registry/interfaces.ts' + ); +} diff --git a/packages/typegen/src/generate/lookup.ts b/packages/typegen/src/generate/lookup.ts new file mode 100644 index 0000000..d87369e --- /dev/null +++ b/packages/typegen/src/generate/lookup.ts @@ -0,0 +1,322 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PortableType, SiLookupTypeId, SiPath, SiTypeParameter } from '@pezkuwi/types/interfaces'; +import type { PortableRegistry } from '@pezkuwi/types/metadata'; +import type { Registry } from '@pezkuwi/types/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import Handlebars from 'handlebars'; +import path from 'node:path'; + +import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions'; +import staticAhDicle from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-hex'; +import staticAhPezkuwi from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-hex'; +import staticBizinikiwi from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex'; +import staticDicle from '@pezkuwi/types-support/metadata/v15/dicle-hex'; +import staticPezkuwi from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex'; +import { isString, stringify } from '@pezkuwi/util'; + +import { createImports, exportInterface, initMeta, readTemplate, rebrandTypeName, type TypeImports, writeFile } from '../util/index.js'; +import { typeEncoders } from './tsDef.js'; + +// Deep rebrand TypeDef including all nested sub types +// isTopLevel indicates whether this is a top-level type (should set name from lookupName) or a sub type (preserve name) +function deepRebrandTypeDef (typeDef: TypeDef, isTopLevel = true): TypeDef { + const rebrandedLookupName = typeDef.lookupName ? rebrandTypeName(typeDef.lookupName) : typeDef.lookupName; + + const rebranded: TypeDef = { + ...typeDef, + type: rebrandTypeName(typeDef.type), + // For top-level types: set name from lookupName (mimics original: typeDef.name = typeDef.lookupName) + // For sub types (enum variants, struct fields): preserve the original name (field/variant name) + name: isTopLevel ? (rebrandedLookupName || typeDef.name) : typeDef.name, + lookupName: rebrandedLookupName, + lookupNameRoot: typeDef.lookupNameRoot ? rebrandTypeName(typeDef.lookupNameRoot) : typeDef.lookupNameRoot + }; + + // Recursively rebrand sub types (mark as not top-level) + if (typeDef.sub) { + if (Array.isArray(typeDef.sub)) { + rebranded.sub = typeDef.sub.map((s) => deepRebrandTypeDef(s, false)); + } else { + rebranded.sub = deepRebrandTypeDef(typeDef.sub, false); + } + } + + return rebranded; +} + +// Record +interface ParsedDef { + _set: Record; + + [key: string]: string | Record | Record; +} + +const WITH_TYPEDEF = false; + +const generateLookupDefsTmpl = Handlebars.compile(readTemplate('lookup/defs')); +const generateLookupDefsNamedTmpl = Handlebars.compile(readTemplate('lookup/defs-named')); +const generateLookupIndexTmpl = Handlebars.compile(readTemplate('lookup/index')); +const generateLookupTypesTmpl = Handlebars.compile(readTemplate('lookup/types')); +const generateRegistryTmpl = Handlebars.compile(readTemplate('interfaceRegistry')); + +function generateParamType (registry: Registry, { name, type }: SiTypeParameter): string { + if (type.isSome) { + const link = registry.lookup.types[type.unwrap().toNumber()]; + + if (link.type.path.length) { + return generateTypeDocs(registry, null, link.type.path, link.type.params); + } + } + + return name.toString(); +} + +function generateTypeDocs (registry: Registry, id: SiLookupTypeId | null, path: SiPath, params: SiTypeParameter[]): string { + return `${id ? `${registry.createLookupType(id)}${path.length ? ': ' : ''}` : ''}${path.map((p) => p.toString()).join('::')}${params.length ? `<${params.map((p) => generateParamType(registry, p)).join(', ')}>` : ''}`; +} + +function formatObject (lines: string[]): string[] { + const max = lines.length - 1; + + return [ + '{', + ...lines.map((l, index) => + (l.endsWith(',') || l.endsWith('{') || index === max || lines[index + 1].endsWith('}') || lines[index + 1].endsWith('}')) + ? l + : `${l},` + ), + '}' + ]; +} + +function expandSet (parsed: Record): string[] { + return formatObject( + Object.entries(parsed).reduce((all, [k, v]) => { + all.push(`${k}: ${v}`); + + return all; + }, []) + ); +} + +function expandObject (parsed: ParsedDef): string[] { + if (parsed._set) { + return expandSet(parsed._set); + } + + return formatObject( + Object.entries(parsed).reduce((all, [k, v]) => { + const inner = isString(v) + ? expandType(v) + : Array.isArray(v) + ? [`[${(v as string[]).map((e) => `'${e}'`).join(', ')}]`] + : expandObject(v as ParsedDef); + + inner.forEach((l, index): void => { + all.push(`${ + index === 0 + ? `${k}: ${l}` + : `${l}` + }`); + }); + + return all; + }, []) + ); +} + +function expandType (encoded: string): string[] { + if (!encoded.startsWith('{')) { + return [`'${rebrandTypeName(encoded)}'`]; + } + + return expandObject(JSON.parse(encoded) as ParsedDef); +} + +function expandDefToString ({ lookupNameRoot, type }: TypeDef, indent: number): string { + if (lookupNameRoot) { + return `'${rebrandTypeName(lookupNameRoot)}'`; + } + + const lines = expandType(type); + let inc = 0; + + return lines.map((l, index) => { + let r: string; + + if (l.endsWith('{')) { + r = index === 0 + ? l + : `${' '.padStart(indent + inc)}${l}`; + inc += 2; + } else { + if (l.endsWith('},') || l.endsWith('}')) { + inc -= 2; + } + + r = index === 0 + ? l + : `${' '.padStart(indent + inc)}${l}`; + } + + return r; + }).join('\n'); +} + +function getFilteredTypes (lookup: PortableRegistry, exclude: string[] = []): [PortableType, TypeDef][] { + const named = lookup.types.filter(({ id }) => !!lookup.getTypeDef(id).lookupName); + const names = named.map(({ id }) => lookup.getName(id)); + + return named + .filter((_, index) => + !names.some((n, iindex) => + index > iindex && + n === names[index] + ) + ) + .map((p): [PortableType, TypeDef] => [p, lookup.getTypeDef(p.id)]) + .filter(([, typeDef]) => !exclude.includes(typeDef.lookupName || '')); +} + +function generateLookupDefs (registry: Registry, filtered: [PortableType, TypeDef][], destDir: string, subPath?: string): void { + writeFile(path.join(destDir, `${subPath || 'definitions'}.ts`), (): string => { + const all = filtered.map(([{ id, type: { params, path } }, typeDef]) => { + const typeLookup = registry.createLookupType(id); + const def = expandDefToString(typeDef, subPath ? 2 : 4); + + return { + docs: [ + generateTypeDocs(registry, id, path, params), + WITH_TYPEDEF + ? `@typeDef ${stringify(typeDef)}` + : null + ].filter((d): d is string => !!d), + type: { def, typeLookup, typeName: typeDef.lookupName ? rebrandTypeName(typeDef.lookupName) : undefined } + }; + }); + const max = all.length - 1; + + return (subPath ? generateLookupDefsNamedTmpl : generateLookupDefsTmpl)({ + defs: all.map(({ docs, type }, i) => { + const { def, typeLookup, typeName } = type; + + return { + defs: [ + [typeName || typeLookup, `${def}${i !== max ? ',' : ''}`] + ].map(([n, t]) => `${n}: ${t}`), + docs + }; + }), + headerType: 'defs' + }); + }); +} + +function generateLookupTypes (registry: Registry, filtered: [PortableType, TypeDef][], destDir: string, subPath?: string): void { + const imports = { + ...createImports( + { '@pezkuwi/types/interfaces': defaultDefinitions }, + { types: {} } + ), + interfaces: [] + }; + const items = filtered + .map(([, typeDef]) => { + // Deep rebrand the type names (including nested sub types) before generating interfaces + const rebranded = deepRebrandTypeDef(typeDef); + + return rebranded.lookupNameRoot && rebranded.lookupName + ? exportInterface(rebranded.lookupIndex, rebranded.lookupName, rebranded.lookupNameRoot) + : typeEncoders[rebranded.info](registry, imports.definitions, rebranded, imports); + }) + .filter((t): t is string => !!t) + .map((t) => t.replace(/\nexport /, '\n')); + + writeFile(path.join(destDir, `types${subPath ? `-${subPath}` : ''}.ts`), () => generateLookupTypesTmpl({ + headerType: 'defs', + imports, + items: items.map((l) => + l + .split('\n') + .map((l) => l.length ? ` ${l}` : '') + .join('\n') + ), + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath, + types: Object.keys(imports.localTypes[packagePath]) + })) + ] + }), true); + writeFile(path.join(destDir, 'index.ts'), () => generateLookupIndexTmpl({ headerType: 'defs' }), true); +} + +function generateRegistry (_registry: Registry, filtered: [PortableType, TypeDef][], destDir: string, subPath: string): void { + writeFile(path.join(destDir, `${subPath}.ts`), (): string => { + const items = filtered + .map(([, { lookupName }]) => lookupName ? rebrandTypeName(lookupName) : lookupName) + .filter((n): n is string => !!n) + .sort() + .reduce((all: string[], n) => all.includes(n) ? all : all.concat(n), []); + const imports = createImports({}, { types: {} }); + + imports.lookupTypes = items.reduce((all, n) => ({ ...all, [n]: true }), {}); + + return generateRegistryTmpl({ + headerType: 'defs', + imports, + items, + types: [] + }); + }, true); +} + +function generateLookup (destDir: string, entries: [string, HexString][]): void { + entries.reduce((exclude, [subPath, staticMeta]): string[] => { + const { lookup, registry } = initMeta(staticMeta).metadata.asLatest; + const filtered = getFilteredTypes(lookup, exclude); + + generateLookupDefs(registry, filtered, destDir, subPath); + generateLookupTypes(registry, filtered, destDir, subPath); + generateRegistry(registry, filtered, destDir, subPath === 'lookup' ? 'registry' : `../registry/${subPath}`); + + return exclude.concat( + ...filtered + .map(([, typeDef]) => typeDef.lookupName) + .filter((n): n is string => !!n) + ); + }, []); +} + +// Generate `packages/types/src/lookup/*s`, the registry of all lookup types +export function generateDefaultLookup (destDir = 'packages/types-augment/src/lookup', staticData?: HexString): void { + generateLookup( + destDir, + staticData + ? [['lookup', staticData]] + : [ + ['bizinikiwi', staticBizinikiwi], + ['pezkuwi', staticPezkuwi], + ['dicle', staticDicle], + ['assetHubPezkuwi', staticAhPezkuwi], + ['assetHubDicle', staticAhDicle] + ] + ); +} + +// Based on a list of types, it filters out the lookup types that are not needed. +export function ignoreUnusedLookups (usedTypes: string[], imports: TypeImports) { + const usedStringified = usedTypes.toString(); + + const [lookupKey, typeDefinitions] = Object.entries(imports.localTypes).find(([typeModule, _]) => typeModule.includes('/lookup')) || ['', {}]; + + Object.keys(typeDefinitions).forEach((typeDef) => { + if (!(usedStringified.includes(typeDef))) { + delete (imports.localTypes[lookupKey])[typeDef]; + } + }); +} diff --git a/packages/typegen/src/generate/query.ts b/packages/typegen/src/generate/query.ts new file mode 100644 index 0000000..c2c6ff1 --- /dev/null +++ b/packages/typegen/src/generate/query.ts @@ -0,0 +1,169 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { StorageEntryMetadataLatest } from '@pezkuwi/types/interfaces'; +import type { Metadata, PortableRegistry } from '@pezkuwi/types/metadata'; +import type { Definitions, Registry } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { ModuleTypes, TypeImports } from '../util/imports.js'; + +import Handlebars from 'handlebars'; + +import * as defaultDefs from '@pezkuwi/types/interfaces/definitions'; +import { unwrapStorageSi } from '@pezkuwi/types/util'; +import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions'; +import { stringCamelCase } from '@pezkuwi/util'; + +import { compareName, createImports, formatType, getSimilarTypes, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js'; +import { ignoreUnusedLookups } from './lookup.js'; +import { type ExtraTypes, getDeprecationNotice } from './types.js'; + +const generateForMetaTemplate = Handlebars.compile(readTemplate('query')); + +// From a storage entry metadata, we return [args, returnType] +/** @internal */ +function entrySignature (lookup: PortableRegistry, allDefs: Record, registry: Registry, section: string, storageEntry: StorageEntryMetadataLatest, imports: TypeImports): [boolean, string, string, string] { + try { + const outputType = lookup.getTypeDef(unwrapStorageSi(storageEntry.type)); + + if (storageEntry.type.isPlain) { + const typeDef = lookup.getTypeDef(storageEntry.type.asPlain); + + setImports(allDefs, imports, [ + rebrandTypeName(typeDef.lookupName || typeDef.type), + storageEntry.modifier.isOptional + ? 'Option' + : null + ]); + + return [storageEntry.modifier.isOptional, '', '', formatType(registry, allDefs, outputType, imports)]; + } else if (storageEntry.type.isMap) { + const { hashers, key, value } = storageEntry.type.asMap; + const keyDefs = hashers.length === 1 + ? [lookup.getTypeDef(key)] + : lookup.getSiType(key).def.asTuple.map((k) => lookup.getTypeDef(k)); + const similarTypes = keyDefs.map((k) => getSimilarTypes(registry, allDefs, k.lookupName || k.type, imports)); + const keyTypes = similarTypes.map((t) => t.join(' | ')); + const defValue = lookup.getTypeDef(value); + + setImports(allDefs, imports, [ + ...similarTypes.reduce((all, t) => all.concat(t), []), + storageEntry.modifier.isOptional + ? 'Option' + : null, + rebrandTypeName(defValue.lookupName || defValue.type) + ]); + + return [ + storageEntry.modifier.isOptional, + keyDefs.map((k) => formatType(registry, allDefs, k.lookupName || k.type, imports)).join(', '), + keyTypes.map((t, i) => `arg${keyTypes.length === 1 ? '' : (i + 1)}: ${t}`).join(', '), + rebrandTypeName(outputType.lookupName || '') || formatType(registry, allDefs, outputType, imports) + ]; + } + + throw new Error(`Expected Plain or Map type, found ${storageEntry.type.type}`); + } catch (error) { + throw new Error(`entrySignature: Cannot create signature for query ${section}.${storageEntry.name.toString()}:: ${(error as Error).message}`); + } +} + +/** @internal */ +function generateForMeta (registry: Registry, meta: Metadata, dest: string, extraTypes: ExtraTypes, isStrict: boolean, customLookupDefinitions?: Definitions): void { + writeFile(dest, (): string => { + const allTypes: ExtraTypes = { + '@pezkuwi/types-augment': { + lookup: { + ...lookupDefinitions, + ...customLookupDefinitions + } + }, + '@pezkuwi/types/interfaces': defaultDefs, + ...extraTypes + }; + + const imports = createImports(allTypes); + const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => { + return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs); + }, {}); + const { lookup, pallets } = meta.asLatest; + const usedTypes = new Set([]); + const modules = pallets + .filter(({ storage }) => storage.isSome) + .map(({ name, storage }) => { + const items = storage.unwrap().items + .map((storageEntry) => { + const { deprecationInfo, docs, name } = storageEntry; + const [isOptional, args, params, _returnType] = entrySignature(lookup, allDefs, registry, name.toString(), storageEntry, imports); + + if (!deprecationInfo.isNotDeprecated) { + const deprecationNotice = getDeprecationNotice(deprecationInfo, stringCamelCase(name)); + const items = docs.length + ? ['', deprecationNotice] + : [deprecationNotice]; + + docs.push(...items.map((text) => registry.createType('Text', text))); + } + + // Add the type and args to the list of used types + if (!(imports.primitiveTypes[_returnType])) { + usedTypes.add(_returnType); + } + + if (!(imports.primitiveTypes[args])) { + usedTypes.add(args); + } + + const returnType = isOptional + ? `Option<${_returnType}>` + : _returnType; + + return { + args, + docs, + entryType: 'AugmentedQuery', + name: stringCamelCase(storageEntry.name), + params, + returnType + }; + }) + .sort(compareName); + + return { + items, + name: stringCamelCase(name) + }; + }) + .sort(compareName); + + imports.typesTypes['Observable'] = true; + + // filter out the unused lookup types from imports + ignoreUnusedLookups([...usedTypes], imports); + + return generateForMetaTemplate({ + headerType: 'chain', + imports, + isStrict, + modules, + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })), + { + file: '@pezkuwi/api-base/types', + types: ['ApiTypes', 'AugmentedQuery', 'QueryableStorageEntry'] + } + ] + }); + }); +} + +// Call `generateForMeta()` with current static metadata +/** @internal */ +export function generateDefaultQuery (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false, customLookupDefinitions?: Definitions): void { + const { metadata, registry } = initMeta(data, extraTypes); + + return generateForMeta(registry, metadata, dest, extraTypes, isStrict, customLookupDefinitions); +} diff --git a/packages/typegen/src/generate/rpc.ts b/packages/typegen/src/generate/rpc.ts new file mode 100644 index 0000000..dac19e7 --- /dev/null +++ b/packages/typegen/src/generate/rpc.ts @@ -0,0 +1,158 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { TypeRegistry } from '@pezkuwi/types/create'; +import type { Definitions } from '@pezkuwi/types/types'; +import type { ExtraTypes } from './types.js'; + +import Handlebars from 'handlebars'; + +import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions'; +import staticBizinikiwi from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { createImports, formatType, getSimilarTypes, initMeta, readTemplate, setImports, writeFile } from '../util/index.js'; + +interface ItemDef { + args: string; + docs: string[]; + generic: string | undefined; + name: string; + type: string | undefined; +} + +interface ModuleDef { + items: ItemDef[]; + name: string; +} + +const StorageKeyType = 'StorageKey | string | Uint8Array | any'; + +const generateRpcTypesTemplate = Handlebars.compile(readTemplate('rpc')); + +/** @internal */ +export function generateRpcTypes (registry: TypeRegistry, importDefinitions: Record, dest: string, extraTypes: ExtraTypes): void { + writeFile(dest, (): string => { + const allTypes: ExtraTypes = { '@pezkuwi/types/interfaces': importDefinitions, ...extraTypes }; + const imports = createImports(allTypes); + const definitions = imports.definitions as Record; + const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => { + return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs); + }, {}); + + const rpcKeys = Object + .keys(definitions) + .filter((key) => Object.keys(definitions[key].rpc || {}).length !== 0) + .sort(); + + const additional: Record = {}; + const modules = rpcKeys.map((sectionFullName) => { + const rpc = definitions[sectionFullName].rpc || {}; + const section = sectionFullName.split('/').pop(); + + const allMethods = Object.keys(rpc).sort().map((methodName) => { + const def = rpc[methodName]; + + let args; + let type; + let generic; + + // These are too hard to type with generics, do manual overrides + if (section === 'state') { + setImports(allDefs, imports, ['Codec', 'Hash', 'StorageKey', 'Vec']); + + if (methodName === 'getStorage') { + generic = 'T = Codec'; + args = [`key: ${StorageKeyType}, block?: Hash | Uint8Array | string`]; + type = 'T'; + } else if (methodName === 'queryStorage') { + generic = 'T = Codec[]'; + args = [`keys: Vec | (${StorageKeyType})[], fromBlock?: Hash | Uint8Array | string, toBlock?: Hash | Uint8Array | string`]; + type = '[Hash, T][]'; + } else if (methodName === 'queryStorageAt') { + generic = 'T = Codec[]'; + args = [`keys: Vec | (${StorageKeyType})[], at?: Hash | Uint8Array | string`]; + type = 'T'; + } else if (methodName === 'subscribeStorage') { + generic = 'T = Codec[]'; + args = [`keys?: Vec | (${StorageKeyType})[]`]; + type = 'T'; + } + } + + if (args === undefined) { + setImports(allDefs, imports, [def.type]); + + args = def.params.map((param) => { + const similarTypes = getSimilarTypes(registry, definitions, param.type, imports); + + setImports(allDefs, imports, [param.type, ...similarTypes]); + + return `${param.name}${param.isOptional ? '?' : ''}: ${similarTypes.join(' | ')}`; + }); + + type = formatType(registry, allDefs, def.type, imports); + generic = ''; + } + + const item = { + args: args.join(', '), + docs: def.deprecated + ? [`@deprecated ${def.deprecated}`, def.description] + : [def.description], + generic, + name: methodName, + type + }; + + if (def.aliasSection) { + if (!additional[def.aliasSection]) { + additional[def.aliasSection] = { + items: [], + name: def.aliasSection + }; + } + + additional[def.aliasSection].items.push(item); + + return null; + } + + return item; + }).filter((item): item is ItemDef => !!item); + + return { + items: allMethods, + name: section || 'unknown' + }; + }).concat(...Object.values(additional)).sort((a, b) => a.name.localeCompare(b.name)); + + imports.typesTypes['Observable'] = true; + + return generateRpcTypesTemplate({ + headerType: 'chain', + imports, + modules, + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })), + { + file: '@pezkuwi/rpc-core/types', + types: ['AugmentedRpc'] + } + ] + }); + }); +} + +export function generateDefaultRpc (dest = 'packages/rpc-augment/src/augment/jsonrpc.ts', extraTypes: ExtraTypes = {}): void { + const { registry } = initMeta(staticBizinikiwi, extraTypes); + + generateRpcTypes( + registry, + defaultDefinitions, + dest, + extraTypes + ); +} diff --git a/packages/typegen/src/generate/runtime.ts b/packages/typegen/src/generate/runtime.ts new file mode 100644 index 0000000..15cbd07 --- /dev/null +++ b/packages/typegen/src/generate/runtime.ts @@ -0,0 +1,293 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { RuntimeApiMethodMetadataV16, SiLookupTypeId } from '@pezkuwi/types/interfaces'; +import type { Metadata } from '@pezkuwi/types/metadata/Metadata'; +import type { DefinitionCall, DefinitionCallNamed, Definitions, DefinitionsCall, Registry } from '@pezkuwi/types/types'; +import type { Vec } from '@pezkuwi/types-codec'; +import type { HexString } from '@pezkuwi/util/types'; + +import Handlebars from 'handlebars'; + +import * as defaultDefs from '@pezkuwi/types/interfaces/definitions'; +import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions'; +import { objectSpread, stringCamelCase } from '@pezkuwi/util'; +import { blake2AsHex } from '@pezkuwi/util-crypto'; + +import { createImports, formatType, getSimilarTypes, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js'; +import { type ExtraTypes, getDeprecationNotice } from './types.js'; + +type Apis = [HexString, number][]; + +const generateCallsTypesTemplate = Handlebars.compile(readTemplate('calls')); + +// This works similar to the PATHS_ALIAS set from the PortableRegistry +const aliases: Record = { + AssetHubZagrosRuntimeRuntimeCall: 'RuntimeCall', + AssetHubPezkuwiRuntimeRuntimeCall: 'RuntimeCall', + AssetHubDicleRuntimeOriginCaller: 'OriginCaller', + AssetHubDicleRuntimeRuntimeCall: 'RuntimeCall', + DicleRuntimeConstantsProxyProxyType: 'ProxyType', + KitchensinkRuntimeRuntimeCall: 'RuntimeCall', + KitchensinkRuntimeRuntimeParametersKey: 'RuntimeParametersKey', + OpaqueValue: 'Bytes', + PezkuwiTeyrchainPrimitivesPrimitivesId: 'ParaId', + PezkuwiTeyrchainPrimitivesPrimitivesValidationCodeHash: 'ValidationCodeHash', + PezkuwiPrimitivesV7SlashingOpaqueKeyOwnershipProof: 'OpaqueKeyOwnershipProof', + PezkuwiPrimitivesV8SlashingOpaqueKeyOwnershipProof: 'OpaqueKeyOwnershipProof', + PezkuwiRuntimeRuntimeCall: 'RuntimeCall', + PrimitiveTypesH160: 'H160', + PrimitiveTypesH256: 'H256', + PrimitiveTypesU256: 'U256', + PezspConsensusBabeOpaqueKeyOwnershipProof: 'OpaqueKeyOwnershipProof', + PezspConsensusSlotsSlot: 'Slot', + PezspConsensusSlotsSlotDuration: 'SlotDuration', + PezspCoreCryptoAccountId32: 'AccountId32', + PezspCoreOpaqueMetadata: 'OpaqueMetadata', + PezspRuntimeOpaqueValue: 'Bytes', + PezspRuntimeUncheckedExtrinsic: 'Extrinsic', + StagingDicleRuntimeOriginCaller: 'OriginCaller', + StagingDicleRuntimeRuntimeCall: 'RuntimeCall', + StagingDicleRuntimeRuntimeParameters: 'RuntimeParameters', + StagingDicleRuntimeRuntimeParametersKey: 'RuntimeParametersKey', + StagingZagrosRuntimeRuntimeCall: 'RuntimeCall' +}; + +const getTypesViaAlias = (registry: Registry, id: SiLookupTypeId) => { + const rawTypeName = registry.lookup.getName(id) || registry.lookup.getTypeDef(id).type; + const typeName = rebrandTypeName(rawTypeName); + + if (aliases[typeName]) { + return aliases[typeName]; + } + + return typeName; +}; + +/** @internal */ +function getMethods (registry: Registry, methods: Vec) { + const result: Record = {}; + + methods.forEach((m) => { + const { deprecationInfo, docs, inputs, name, output } = m; + let description = docs.map((d) => d.toString()).join(); + + if (!deprecationInfo.isNotDeprecated) { + const deprecationNotice = getDeprecationNotice(deprecationInfo, stringCamelCase(name)); + const notice = description.length ? `\n * ${deprecationNotice}` : ` * ${deprecationNotice}`; + + description += notice; + } + + result[name.toString()] = { + description, + params: inputs.map(({ name, type }) => { + return { name: name.toString(), type: getTypesViaAlias(registry, type) }; + }), + type: getTypesViaAlias(registry, output) + }; + }); + + return result; +} + +/** @internal */ +function getRuntimeDefViaMetadata (registry: Registry) { + const result: DefinitionsCall = {}; + const { apis } = registry.metadata; + + for (let i = 0, count = apis.length; i < count; i++) { + const { methods, name } = apis[i]; + + result[name.toString()] = [{ + methods: getMethods(registry, methods), + // We set the version to 0 here since it will not be relevant when we are grabbing the runtime apis + // from the Metadata. + version: 0 + }]; + } + + return Object.entries(result); +} + +/** @internal */ +function getDefs (apis: Apis | null, defs: Record, registry: Registry): Record> { + const named: Record> = {}; + const all = Object.values(defs); + const isApiInMetadata = registry.metadata.apis.length > 0; + + if (isApiInMetadata) { + const sections = getRuntimeDefViaMetadata(registry); + + for (let j = 0, jcount = sections.length; j < jcount; j++) { + const [_section, secs] = sections[j]; + const sec = secs[0]; + const sectionHash = blake2AsHex(_section, 64); + + const section = stringCamelCase(_section); + const methods = Object.entries(sec.methods); + + if (!named[section]) { + named[section] = {}; + } + + for (let m = 0, mcount = methods.length; m < mcount; m++) { + const [_method, def] = methods[m]; + const method = stringCamelCase(_method); + + named[section][method] = objectSpread({ method, name: `${_section}_${_method}`, section, sectionHash }, def); + } + } + } else { + for (let j = 0, jcount = all.length; j < jcount; j++) { + const set = all[j].runtime; + + if (set) { + const sections = Object.entries(set); + + for (let i = 0, scount = sections.length; i < scount; i++) { + const [_section, sec] = sections[i]; + const sectionHash = blake2AsHex(_section, 64); + const api = apis?.find(([h]) => h === sectionHash); + + if (api) { + const ver = sec.find(({ version }) => version === api[1]); + + if (ver) { + const methods = Object.entries(ver.methods); + const mcount = methods.length; + + if (mcount) { + const section = stringCamelCase(_section); + + if (!named[section]) { + named[section] = {}; + } + + for (let m = 0; m < mcount; m++) { + const [_method, def] = methods[m]; + const method = stringCamelCase(_method); + + named[section][method] = objectSpread({ method, name: `${_section}_${method}`, section, sectionHash, version: ver.version }, def); + } + } + } else { + console.warn(`Unable to find matching version for runtime ${_section}, expected ${api[1]}`); + } + } + } + } + } + } + + return named; +} + +/** @internal */ +export function generateCallTypes (registry: Registry, meta: Metadata, dest: string, extraTypes: ExtraTypes, isStrict: boolean, customLookupDefinitions?: Definitions): void { + writeFile(dest, (): string => { + const allTypes: ExtraTypes = { + '@pezkuwi/types-augment': { + lookup: { + ...lookupDefinitions, + ...customLookupDefinitions + } + }, + '@pezkuwi/types/interfaces': defaultDefs, + ...extraTypes + }; + const imports = createImports(allTypes); + + // find the system.Version in metadata + let apis: Apis | null = null; + const sysp = meta.asLatest.pallets.find(({ name }) => name.eq('System')); + + if (sysp) { + const verc = sysp.constants.find(({ name }) => name.eq('Version')); + + if (verc) { + apis = registry.createType('RuntimeVersion', verc.value).apis.map(([k, v]): [HexString, number] => [k.toHex(), v.toNumber()]); + } else { + console.error('Unable to find System.Version pallet, skipping API extraction'); + } + } else { + console.error('Unable to find System pallet, skipping API extraction'); + } + + const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => { + return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs); + }, {}); + const definitions = getDefs(apis, imports.definitions as Record, registry); + const callKeys = Object.keys(definitions); + + const modules = callKeys.map((section) => { + const calls = definitions[section]; + + const allMethods = Object.keys(calls).sort().map((methodName) => { + const def = calls[methodName]; + + setImports(allDefs, imports, [def.type]); + + const args = def.params.map((param) => { + const similarTypes = getSimilarTypes(registry, imports.definitions, param.type, imports); + + setImports(allDefs, imports, [param.type, ...similarTypes]); + + return `${param.name}: ${similarTypes.join(' | ')}`; + }); + + return { + args: args.join(', '), + docs: [def.description], + name: methodName, + sectionHash: def.sectionHash, + sectionName: def.section, + sectionVersion: def.version, + type: formatType(registry, allDefs, def.type, imports) + }; + }).sort((a, b) => a.name.localeCompare(b.name)); + + return { + items: allMethods, + name: section || 'unknown', + sectionHash: allMethods.length && allMethods[0].sectionHash, + sectionName: allMethods.length && allMethods[0].sectionName, + sectionVersion: allMethods.length && allMethods[0].sectionVersion + }; + }).filter(({ items }) => items.length).sort((a, b) => a.name.localeCompare(b.name)); + + if (modules.length) { + imports.typesTypes['Observable'] = true; + } + + return generateCallsTypesTemplate({ + headerType: 'chain', + imports, + isStrict, + modules, + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })), + { + file: '@pezkuwi/api-base/types', + types: ['ApiTypes', 'AugmentedCall', 'DecoratedCallBase'] + } + ] + }); + }); +} + +export function generateDefaultRuntime (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false, customLookupDefinitions?: Definitions): void { + const { metadata, registry } = initMeta(data, extraTypes); + + generateCallTypes( + registry, + metadata, + dest, + extraTypes, + isStrict, + customLookupDefinitions + ); +} diff --git a/packages/typegen/src/generate/tsDef.ts b/packages/typegen/src/generate/tsDef.ts new file mode 100644 index 0000000..1b58e35 --- /dev/null +++ b/packages/typegen/src/generate/tsDef.ts @@ -0,0 +1,321 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { ModuleTypes } from '../util/imports.js'; +import type { TypeImports } from '../util/index.js'; + +import Handlebars from 'handlebars'; +import path from 'node:path'; + +import { TypeRegistry } from '@pezkuwi/types/create'; +import * as defaultDefinitions from '@pezkuwi/types/interfaces/definitions'; +import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create'; +import { assert, isString, stringify, stringPascalCase } from '@pezkuwi/util'; + +import { createImports, exportInterface, formatType, readTemplate, setImports, writeFile } from '../util/index.js'; + +interface Imports extends TypeImports { + interfaces: [string, string][]; +} + +const generateTsDefIndexTemplate = Handlebars.compile(readTemplate('tsDef/index')); +const generateTsDefModuleTypesTemplate = Handlebars.compile(readTemplate('tsDef/moduleTypes')); +const generateTsDefTypesTemplate = Handlebars.compile(readTemplate('tsDef/types')); + +// helper to generate a `readonly : ;` getter +/** @internal */ +export function createGetter (definitions: Record, name = '', type: string, imports: TypeImports): string { + setImports(definitions, imports, [type]); + + return ` readonly ${name}: ${type};\n`; +} + +/** @internal */ +function errorUnhandled (_: Registry, _definitions: Record, def: TypeDef, _imports: TypeImports): string { + throw new Error(`Generate: ${def.name || ''}: Unhandled type ${TypeDefInfo[def.info]}`); +} + +/** @internal */ +function tsExport (registry: Registry, definitions: Record, def: TypeDef, imports: TypeImports): string { + return exportInterface(def.lookupIndex, def.name, formatType(registry, definitions, def, imports, false)); +} + +/** @internal */ +function tsEnum (registry: Registry, definitions: Record, { lookupIndex, name: enumName, sub }: TypeDef, imports: TypeImports, withShortcut = false): string { + setImports(definitions, imports, ['Enum']); + + const indent = withShortcut ? ' ' : ''; + const named = (sub as TypeDef[]).filter(({ name }) => !!name && !name.startsWith('__Unused')); + const keys = named.map((def): string => { + const { info, lookupName, name = '', sub, type } = def; + const getter = stringPascalCase(name.replace(' ', '_')); + const isComplex = [TypeDefInfo.Option, TypeDefInfo.Range, TypeDefInfo.RangeInclusive, TypeDefInfo.Result, TypeDefInfo.Struct, TypeDefInfo.Tuple, TypeDefInfo.Vec, TypeDefInfo.VecFixed].includes(info); + + let extractedLookupName; + + // When the parent type does not have a lookupName, and the sub type is the same + // type as the parent we can take the lookupName from the sub. + // This is specific to `StagingXcmV4Junction`. + // see: https://github.com/pezkuwichain/pezkuwi-api/pull/5812 + if (sub && !Array.isArray(sub) && type.includes(`${sub.type};`)) { + if (sub.lookupName === 'StagingXcmV4Junction') { + extractedLookupName = sub.lookupName; + } else if (sub.lookupName === 'StagingXcmV5Junction') { + extractedLookupName = `Vec<${sub.lookupName}>`; + } + } + + const asGetter = type === 'Null' || info === TypeDefInfo.DoNotConstruct + ? '' + : createGetter(definitions, `as${getter}`, lookupName || extractedLookupName || (isComplex ? formatType(registry, definitions, info === TypeDefInfo.Struct ? def : type, imports, withShortcut) : type), imports); + const isGetter = info === TypeDefInfo.DoNotConstruct + ? '' + : createGetter(definitions, `is${getter}`, 'boolean', imports); + + switch (info) { + case TypeDefInfo.Compact: + case TypeDefInfo.Plain: + case TypeDefInfo.Range: + case TypeDefInfo.RangeInclusive: + case TypeDefInfo.Result: + case TypeDefInfo.Si: + case TypeDefInfo.Struct: + case TypeDefInfo.Tuple: + case TypeDefInfo.Vec: + case TypeDefInfo.BTreeMap: + case TypeDefInfo.BTreeSet: + case TypeDefInfo.Option: + case TypeDefInfo.VecFixed: + case TypeDefInfo.WrapperKeepOpaque: + case TypeDefInfo.WrapperOpaque: + return `${indent}${isGetter}${indent}${asGetter}`; + + case TypeDefInfo.DoNotConstruct: + case TypeDefInfo.Null: + return `${indent}${isGetter}`; + + default: + throw new Error(`Enum: ${enumName || 'undefined'}: Unhandled type ${TypeDefInfo[info]}, ${stringify(def)}`); + } + }); + + return exportInterface(lookupIndex, enumName, 'Enum', `${keys.join('')} ${indent}readonly type: ${named.map(({ name = '' }) => `'${stringPascalCase(name.replace(' ', '_'))}'`).join(' | ')};\n`, withShortcut); +} + +function tsInt (_: Registry, definitions: Record, def: TypeDef, imports: TypeImports, type: 'Int' | 'UInt' = 'Int'): string { + setImports(definitions, imports, [type]); + + return exportInterface(def.lookupIndex, def.name, type); +} + +/** @internal */ +function tsNull (_registry: Registry, definitions: Record, { lookupIndex = -1, name }: TypeDef, imports: TypeImports): string { + setImports(definitions, imports, ['Null']); + + // * @description extends [[${base}]] + const doc = `/** @name ${name || ''}${lookupIndex !== -1 ? ` (${lookupIndex})` : ''} */\n`; + + return `${doc}export type ${name || ''} = Null;`; +} + +/** @internal */ +function tsResultGetter (registry: Registry, definitions: Record, resultName = '', getter: 'Ok' | 'Err', def: TypeDef, imports: TypeImports): string { + const { info, lookupName, type } = def; + const asGetter = type === 'Null' + ? '' + : createGetter(definitions, `as${getter}`, lookupName || (info === TypeDefInfo.Tuple ? formatType(registry, definitions, def, imports, false) : type), imports); + const isGetter = createGetter(definitions, `is${getter}`, 'boolean', imports); + + switch (info) { + case TypeDefInfo.Option: + case TypeDefInfo.Plain: + case TypeDefInfo.Si: + case TypeDefInfo.Tuple: + case TypeDefInfo.Vec: + case TypeDefInfo.BTreeMap: + case TypeDefInfo.BTreeSet: + case TypeDefInfo.WrapperKeepOpaque: + case TypeDefInfo.WrapperOpaque: + return `${isGetter}${asGetter}`; + + case TypeDefInfo.Null: + return `${isGetter}`; + + default: + throw new Error(`Result: ${resultName}: Unhandled type ${TypeDefInfo[info]}, ${stringify(def)}`); + } +} + +/** @internal */ +function tsResult (registry: Registry, definitions: Record, def: TypeDef, imports: TypeImports): string { + const [okDef, errorDef] = (def.sub as TypeDef[]); + const inner = [ + tsResultGetter(registry, definitions, def.name, 'Err', errorDef, imports), + tsResultGetter(registry, definitions, def.name, 'Ok', okDef, imports) + ].join(''); + + setImports(definitions, imports, [def.type]); + + const fmtType = def.lookupName && def.name !== def.lookupName + ? def.lookupName + : formatType(registry, definitions, def, imports, false); + + return exportInterface(def.lookupIndex, def.name, fmtType, inner); +} + +/** @internal */ +function tsSi (_registry: Registry, _definitions: Record, typeDef: TypeDef, _imports: TypeImports): string { + // FIXME + return `// SI: ${stringify(typeDef)}`; +} + +/** @internal */ +function tsSet (_: Registry, definitions: Record, { lookupIndex, name: setName, sub }: TypeDef, imports: TypeImports): string { + setImports(definitions, imports, ['Set']); + + const types = (sub as TypeDef[]).map(({ name }): string => { + assert(name, 'Invalid TypeDef found, no name specified'); + + return createGetter(definitions, `is${name}`, 'boolean', imports); + }); + + return exportInterface(lookupIndex, setName, 'Set', types.join('')); +} + +/** @internal */ +function tsStruct (registry: Registry, definitions: Record, { lookupIndex, name: structName, sub }: TypeDef, imports: TypeImports): string { + setImports(definitions, imports, ['Struct']); + + const keys = (sub as TypeDef[]).map((def): string => { + const fmtType = def.lookupName && def.name !== def.lookupName + ? def.lookupName + : def.info === TypeDefInfo.Enum + ? `${tsEnum(registry, definitions, def, imports, true)} & Enum` + : formatType(registry, definitions, def, imports, false); + + return createGetter(definitions, def.name, fmtType, imports); + }); + + return exportInterface(lookupIndex, structName, 'Struct', keys.join('')); +} + +/** @internal */ +function tsUInt (registry: Registry, definitions: Record, def: TypeDef, imports: TypeImports): string { + return tsInt(registry, definitions, def, imports, 'UInt'); +} + +/** @internal */ +function tsVec (registry: Registry, definitions: Record, def: TypeDef, imports: TypeImports): string { + const type = (def.sub as TypeDef).type; + + if (type === 'u8') { + if (def.info === TypeDefInfo.VecFixed) { + setImports(definitions, imports, ['U8aFixed']); + + return exportInterface(def.lookupIndex, def.name, 'U8aFixed'); + } else { + setImports(definitions, imports, ['Bytes']); + + return exportInterface(def.lookupIndex, def.name, 'Bytes'); + } + } + + const fmtType = def.lookupName && def.name !== def.lookupName + ? def.lookupName + : formatType(registry, definitions, def, imports, false); + + return exportInterface(def.lookupIndex, def.name, fmtType); +} + +// handlers are defined externally to use - this means that when we do a +// `generators[typedef.info](...)` TS will show any unhandled types. Rather +// we are being explicit in having no handlers where we do not support (yet) +export const typeEncoders: Record, def: TypeDef, imports: TypeImports) => string> = { + [TypeDefInfo.BTreeMap]: tsExport, + [TypeDefInfo.BTreeSet]: tsExport, + [TypeDefInfo.Compact]: tsExport, + [TypeDefInfo.DoNotConstruct]: tsExport, + [TypeDefInfo.Enum]: tsEnum, + [TypeDefInfo.HashMap]: tsExport, + [TypeDefInfo.Int]: tsInt, + [TypeDefInfo.Linkage]: errorUnhandled, + [TypeDefInfo.Null]: tsNull, + [TypeDefInfo.Option]: tsExport, + [TypeDefInfo.Plain]: tsExport, + [TypeDefInfo.Range]: tsExport, + [TypeDefInfo.RangeInclusive]: tsExport, + [TypeDefInfo.Result]: tsResult, + [TypeDefInfo.Set]: tsSet, + [TypeDefInfo.Si]: tsSi, + [TypeDefInfo.Struct]: tsStruct, + [TypeDefInfo.Tuple]: tsExport, + [TypeDefInfo.UInt]: tsUInt, + [TypeDefInfo.Vec]: tsVec, + [TypeDefInfo.VecFixed]: tsVec, + [TypeDefInfo.WrapperKeepOpaque]: tsExport, + [TypeDefInfo.WrapperOpaque]: tsExport +}; + +/** @internal */ +function generateInterfaces (registry: Registry, definitions: Record, { types }: { types: Record }, imports: Imports): [string, string][] { + return Object.entries(types).map(([name, type]): [string, string] => { + const def = getTypeDef(isString(type) ? type : stringify(type), { name }); + + return [name, typeEncoders[def.info](registry, definitions, def, imports)]; + }); +} + +/** @internal */ +export function generateTsDefFor (registry: Registry, importDefinitions: Record>, defName: string, { types }: { types: Record }, outputDir: string): void { + const imports = { ...createImports(importDefinitions, { types }), interfaces: [] } as Imports; + const definitions = imports.definitions; + const interfaces = generateInterfaces(registry, definitions, { types }, imports); + const items = interfaces.sort((a, b) => a[0].localeCompare(b[0])).map(([, definition]) => definition); + + writeFile(path.join(outputDir, defName, 'types.ts'), () => generateTsDefModuleTypesTemplate({ + headerType: 'defs', + imports, + items, + name: defName, + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath.replace('@pezkuwi/types/augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })) + ] + }), true); + writeFile(path.join(outputDir, defName, 'index.ts'), () => generateTsDefIndexTemplate({ headerType: 'defs' }), true); +} + +/** @internal */ +export function generateTsDef (importDefinitions: Record>, outputDir: string, generatingPackage: string): void { + const registry = new TypeRegistry(); + + writeFile(path.join(outputDir, 'types.ts'), (): string => { + const definitions = importDefinitions[generatingPackage]; + + Object.entries(definitions).forEach(([defName, obj]): void => { + console.log(`\tExtracting interfaces for ${defName}`); + + generateTsDefFor(registry, importDefinitions, defName, obj, outputDir); + }); + + return generateTsDefTypesTemplate({ + headerType: 'defs', + items: Object.keys(definitions) + }); + }); + + writeFile(path.join(outputDir, 'index.ts'), () => generateTsDefIndexTemplate({ headerType: 'defs' }), true); +} + +/** @internal */ +export function generateDefaultTsDef (): void { + generateTsDef( + { '@pezkuwi/types/interfaces': defaultDefinitions }, + 'packages/types/src/interfaces', + '@pezkuwi/types/interfaces' + ); +} diff --git a/packages/typegen/src/generate/tx.ts b/packages/typegen/src/generate/tx.ts new file mode 100644 index 0000000..559d3a0 --- /dev/null +++ b/packages/typegen/src/generate/tx.ts @@ -0,0 +1,152 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { VariantDeprecationInfoV16 } from '@pezkuwi/types/interfaces'; +import type { Metadata } from '@pezkuwi/types/metadata/Metadata'; +import type { Text } from '@pezkuwi/types/primitive'; +import type { Definitions, Registry } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import Handlebars from 'handlebars'; + +import * as defaultDefs from '@pezkuwi/types/interfaces/definitions'; +import lookupDefinitions from '@pezkuwi/types-augment/lookup/definitions'; +import { stringCamelCase } from '@pezkuwi/util'; + +import { compareName, createImports, formatType, getSimilarTypes, initMeta, readTemplate, rebrandTypeName, setImports, writeFile } from '../util/index.js'; +import { ignoreUnusedLookups } from './lookup.js'; +import { type ExtraTypes, getDeprecationNotice } from './types.js'; + +const MAPPED_NAMES: Record = { + class: 'clazz', + new: 'updated' +}; + +const generateForMetaTemplate = Handlebars.compile(readTemplate('tx')); + +function mapName (_name: Text): string { + const name = stringCamelCase(_name); + + return MAPPED_NAMES[name] || name; +} + +/** @internal */ +function generateForMeta (registry: Registry, meta: Metadata, dest: string, extraTypes: ExtraTypes, isStrict: boolean, customLookupDefinitions?: Definitions): void { + writeFile(dest, (): string => { + const allTypes: ExtraTypes = { + '@pezkuwi/types-augment': { + lookup: { + ...lookupDefinitions, + ...customLookupDefinitions + } + }, + '@pezkuwi/types/interfaces': defaultDefs, + ...extraTypes + }; + const imports = createImports(allTypes); + const allDefs = Object.entries(allTypes).reduce((defs, [path, obj]) => { + return Object.entries(obj).reduce((defs, [key, value]) => ({ ...defs, [`${path}/${key}`]: value }), defs); + }, {}); + const { lookup, pallets } = meta.asLatest; + const usedTypes = new Set([]); + const modules = pallets + .sort(compareName) + .filter(({ calls }) => calls.isSome) + .map((data) => { + const name = data.name; + const calls = data.calls.unwrap(); + const deprecationInfo = calls.deprecationInfo.toJSON(); + + setImports(allDefs, imports, ['SubmittableExtrinsic']); + + const sectionName = stringCamelCase(name); + const items = lookup.getSiType(calls.type).def.asVariant.variants + .map(({ docs, fields, index, name }) => { + const rawStatus = deprecationInfo?.[index.toNumber()]; + + if (rawStatus) { + const deprecationVariantInfo: VariantDeprecationInfoV16 = meta.registry.createTypeUnsafe('VariantDeprecationInfoV16', [rawStatus]); + const deprecationNotice = getDeprecationNotice(deprecationVariantInfo, name.toString(), 'Call'); + const notice = docs.length ? ['', deprecationNotice] : [deprecationNotice]; + + docs.push(...notice.map((text) => meta.registry.createType('Text', text))); + } + + const typesInfo = fields.map(({ name, type, typeName }, index): [string, string, string] => { + const typeDef = registry.lookup.getTypeDef(type); + + return [ + name.isSome + ? mapName(name.unwrap()) + : `param${index}`, + rebrandTypeName(typeName.isSome + ? typeName.toString() + : typeDef.type), + rebrandTypeName(typeDef.isFromSi + ? typeDef.type + : typeDef.lookupName || typeDef.type) + ]; + }); + + const params = typesInfo + .map(([name,, typeStr]) => { + const similarTypes = getSimilarTypes(registry, allDefs, typeStr, imports); + + setImports(allDefs, imports, [typeStr, ...similarTypes]); + + // Add the type to the list of used types + if (!(imports.primitiveTypes[typeStr])) { + usedTypes.add(typeStr); + } + + return `${name}: ${similarTypes.join(' | ')}`; + }) + .join(', '); + + return { + args: typesInfo.map(([,, typeStr]) => + formatType(registry, allDefs, typeStr, imports) + ).join(', '), + docs, + name: stringCamelCase(name), + params + }; + }) + .sort(compareName); + + return { + items, + name: sectionName + }; + }) + .sort(compareName); + + // filter out the unused lookup types from imports + ignoreUnusedLookups([...usedTypes], imports); + + return generateForMetaTemplate({ + headerType: 'chain', + imports, + isStrict, + modules, + types: [ + ...Object.keys(imports.localTypes).sort().map((packagePath): { file: string; types: string[] } => ({ + file: packagePath.replace('@pezkuwi/types-augment', '@pezkuwi/types'), + types: Object.keys(imports.localTypes[packagePath]) + })), + { + file: '@pezkuwi/api-base/types', + types: ['ApiTypes', 'AugmentedSubmittable', 'SubmittableExtrinsic', 'SubmittableExtrinsicFunction'] + } + ] + }); + }); +} + +// Call `generateForMeta()` with current static metadata +/** @internal */ +export function generateDefaultTx (dest: string, data: HexString, extraTypes: ExtraTypes = {}, isStrict = false, customLookupDefinitions?: Definitions): void { + const { metadata, registry } = initMeta(data, extraTypes); + + return generateForMeta(registry, metadata, dest, extraTypes, isStrict, customLookupDefinitions); +} diff --git a/packages/typegen/src/generate/types.ts b/packages/typegen/src/generate/types.ts new file mode 100644 index 0000000..6cab56a --- /dev/null +++ b/packages/typegen/src/generate/types.ts @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Option, Text } from '@pezkuwi/types-codec'; + +export type ExtraTypes = Record; + types: Record; +}>>; + +export function getDeprecationNotice }}> (deprecationInfo: T, name: string, label?: string): string { + let deprecationNotice = '@deprecated'; + + if (deprecationInfo.isDeprecated) { + const { note, since } = deprecationInfo.asDeprecated; + const sinceText = since.isSome ? ` Since ${since.unwrap().toString()}.` : ''; + + deprecationNotice += ` ${note.toString()}${sinceText}`; + } else { + const labelText = label ? `${label} ` : ''; + + deprecationNotice += ` ${labelText}${name} has been deprecated`; + } + + return deprecationNotice; +} diff --git a/packages/typegen/src/index.ts b/packages/typegen/src/index.ts new file mode 100644 index 0000000..d123e4b --- /dev/null +++ b/packages/typegen/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/typegen/src/interfacesTs.ts b/packages/typegen/src/interfacesTs.ts new file mode 100644 index 0000000..ad90336 --- /dev/null +++ b/packages/typegen/src/interfacesTs.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; + +// TODO: replace v15 to v16 once metadata is updated +import assetHubDicle from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-hex'; +import assetHubPezkuwi from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-hex'; +import bizinikiwi from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex'; +import dicle from '@pezkuwi/types-support/metadata/v15/dicle-hex'; +import pezkuwi from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex'; + +import { generateDefaultConsts, generateDefaultErrors, generateDefaultEvents, generateDefaultInterface, generateDefaultLookup, generateDefaultQuery, generateDefaultRpc, generateDefaultRuntime, generateDefaultTsDef, generateDefaultTx } from './generate/index.js'; + +const BASE = 'packages/api-augment/src'; +const METAS = Object.entries({ assetHubDicle, assetHubPezkuwi, dicle, pezkuwi, bizinikiwi }); + +export function main (): void { + generateDefaultInterface(); + generateDefaultLookup(); + generateDefaultRpc(); + generateDefaultTsDef(); + + for (const [name, staticMeta] of METAS) { + console.log(); + console.log(`*** Generating for ${name}`); + + generateDefaultConsts(`${BASE}/${name}/consts.ts`, staticMeta); + generateDefaultErrors(`${BASE}/${name}/errors.ts`, staticMeta); + generateDefaultEvents(`${BASE}/${name}/events.ts`, staticMeta); + generateDefaultQuery(`${BASE}/${name}/query.ts`, staticMeta); + generateDefaultRuntime(`${BASE}/${name}/runtime.ts`, staticMeta); + generateDefaultTx(`${BASE}/${name}/tx.ts`, staticMeta); + } +} diff --git a/packages/typegen/src/metadataMd.ts b/packages/typegen/src/metadataMd.ts new file mode 100644 index 0000000..5d06036 --- /dev/null +++ b/packages/typegen/src/metadataMd.ts @@ -0,0 +1,844 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { MetadataLatest, RuntimeApiMethodMetadataV16, SiLookupTypeId } from '@pezkuwi/types/interfaces'; +import type { PortableRegistry } from '@pezkuwi/types/metadata'; +import type { Text } from '@pezkuwi/types/primitive'; +import type { Codec, DefinitionCall, DefinitionRpcParam, DefinitionsCall, Registry } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import { parse, type Spec } from 'comment-parser'; +import fs from 'node:fs'; +import path, { dirname, resolve } from 'node:path'; +import process from 'node:process'; +import { fileURLToPath } from 'node:url'; +import yargs from 'yargs'; +import { hideBin } from 'yargs/helpers'; + +import { derive } from '@pezkuwi/api-derive'; +import { Metadata, TypeRegistry, Vec } from '@pezkuwi/types'; +import * as definitions from '@pezkuwi/types/interfaces/definitions'; +import { getStorage as getBizinikiwiStorage } from '@pezkuwi/types/metadata/decorate/storage/getStorage'; +import { unwrapStorageType } from '@pezkuwi/types/util'; +import assetHubDicleMeta from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-hex'; +import assetHubDicleRpc from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-rpc'; +import assetHubDicleVer from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-ver'; +import assetHubPezkuwiMeta from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-hex'; +import assetHubPezkuwiRpc from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-rpc'; +import assetHubPezkuwiVer from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-ver'; +import bizinikiwiMeta from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex'; +import dicleMeta from '@pezkuwi/types-support/metadata/v15/dicle-hex'; +import dicleRpc from '@pezkuwi/types-support/metadata/v15/dicle-rpc'; +import dicleVer from '@pezkuwi/types-support/metadata/v15/dicle-ver'; +import pezkuwiMeta from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex'; +import pezkuwiRpc from '@pezkuwi/types-support/metadata/v15/pezkuwi-rpc'; +import pezkuwiVer from '@pezkuwi/types-support/metadata/v15/pezkuwi-ver'; +import { isHex, stringCamelCase, stringLowerFirst } from '@pezkuwi/util'; +import { blake2AsHex } from '@pezkuwi/util-crypto'; + +import { assertFile, getMetadataViaWs, getRpcMethodsViaWs, getRuntimeVersionViaWs } from './util/index.js'; + +interface SectionItem { + link?: string; + name: string; + [bullet: string]: undefined | string | Vec; +} + +interface Section { + link?: string; + name: string; + description?: string; + items: SectionItem[]; +} + +interface Page { + title: string; + description: string; + sections: Section[]; +} + +type ApiDef = [apiHash: string, apiVersion: number]; + +interface StaticDef { + meta: HexString; + rpc?: { methods: string[] }; + ver?: { apis: ApiDef[] } +} + +interface Derive { + name: string | null; + description: string | null; + params: DeriveParam[]; + returns: string | null; + example: string | null; +} + +interface DeriveParam { + description: string | null; + name: string | null; + type: string | null; +} + +const headerFn = (runtimeDesc: string) => `\n\n(NOTE: These were generated from a static/snapshot view of a recent ${runtimeDesc}. Some items may not be available in older nodes, or in any customized implementations.)`; + +const ALL_STATIC: Record = { + 'asset-hub-dicle': { + meta: assetHubDicleMeta, + rpc: assetHubDicleRpc, + ver: assetHubDicleVer as unknown as { apis: ApiDef[] } + }, + 'asset-hub-pezkuwi': { + meta: assetHubPezkuwiMeta, + rpc: assetHubPezkuwiRpc, + ver: assetHubPezkuwiVer as unknown as { apis: ApiDef[] } + }, + dicle: { + meta: dicleMeta, + rpc: dicleRpc, + ver: dicleVer as unknown as { apis: ApiDef[] } + }, + pezkuwi: { + meta: pezkuwiMeta, + rpc: pezkuwiRpc, + ver: pezkuwiVer as unknown as { apis: ApiDef[] } + }, + bizinikiwi: { + meta: bizinikiwiMeta + } +}; + +/** @internal */ +function docsVecToMarkdown (docLines: Vec, indent = 0): string { + const md = docLines + .map((docLine) => + docLine + .toString() + .trimStart() + .replace(/^r"/g, '') + .trimStart() + ) + .reduce((md, docLine) => // generate paragraphs + !docLine.length + ? `${md}\n\n` // empty line + : /^[*-]/.test(docLine.trimStart()) && !md.endsWith('\n\n') + ? `${md}\n\n${docLine}` // line calling for a preceding linebreak + : `${md} ${docLine.replace(/^#{1,3} /, '#### ')} ` + , '') + .replace(/#### /g, '') + .replace(/(.|\n)*?<\/weight>/g, '') + .replace(/#### Weight:/g, 'Weight:'); + + // prefix each line with indentation + return md?.split('\n\n').map((line) => `${' '.repeat(indent)}${line}`).join('\n\n'); +} + +function renderPage (page: Page): string { + let md = `---\ntitle: ${page.title}\n---\n\n`; + + if (page.description) { + md += `${page.description}\n\n`; + } + + // index + page.sections.forEach((section) => { + md += `- **[${stringCamelCase(section.name)}](#${stringCamelCase(section.name).toLowerCase()})**\n\n`; + }); + + // contents + page.sections.forEach((section) => { + md += '\n___\n\n\n'; + md += section.link + ? `

${section.name}

\n` + : `## ${section.name}\n`; + + if (section.description) { + md += `\n_${section.description}_\n`; + } + + section.items.forEach((item) => { + md += ' \n'; + md += item.link + ? `

${item.name}

` + : `### ${item.name}`; + + Object + .keys(item) + .filter((key) => !['link', 'name'].includes(key)) + .forEach((bullet) => { + md += `\n- **${bullet}**: ${ + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions + item[bullet] instanceof Vec + ? docsVecToMarkdown(item[bullet], 2).toString() + : item[bullet] + }`; + }); + + md += '\n'; + }); + }); + + return md; +} + +function sortByName (a: T, b: T): number { + // case insensitive (all-uppercase) sorting + return a.name.toString().toUpperCase().localeCompare(b.name.toString().toUpperCase()); +} + +function getSiName (lookup: PortableRegistry, type: SiLookupTypeId): string { + const typeDef = lookup.getTypeDef(type); + + return typeDef.lookupName || typeDef.type; +} + +/** @internal */ +function addRpc (_runtimeDesc: string, rpcMethods?: string[]): string { + return renderPage({ + description: 'The following sections contain known RPC methods that may be available on specific nodes (depending on configuration and available pallets) and allow you to interact with the actual node, query, and submit.', + sections: Object + .keys(definitions) + .filter((key) => Object.keys(definitions[key as 'babe'].rpc || {}).length !== 0) + .sort() + .reduce((all: Section[], _sectionName): Section[] => { + const section = definitions[_sectionName as 'babe']; + + Object + .keys(section.rpc || {}) + .sort() + .forEach((methodName) => { + const method = section.rpc?.[methodName]; + + if (!method) { + throw new Error(`No ${methodName} RPC found in ${_sectionName}`); + } + + const sectionName = method.aliasSection || _sectionName; + const jsonrpc = (method.endpoint || `${sectionName}_${methodName}`); + + if (rpcMethods) { + // if we are passing the rpcMethods params and we cannot find this method, skip it + if (jsonrpc !== 'rpc_methods' && !rpcMethods.includes(jsonrpc)) { + return; + } + } + + const topName = method.aliasSection ? `${_sectionName}/${method.aliasSection}` : _sectionName; + let container = all.find(({ name }) => name === topName); + + if (!container) { + container = { items: [], name: topName }; + + all.push(container); + } + + const args = method.params.map(({ isOptional, name, type }: DefinitionRpcParam): string => { + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands + return name + (isOptional ? '?' : '') + ': `' + type + '`'; + }).join(', '); + const type = '`' + method.type + '`'; + + container.items.push({ + interface: '`' + `api.rpc.${sectionName}.${methodName}` + '`', + jsonrpc: '`' + jsonrpc + '`', + // link: jsonrpc, + name: `${methodName}(${args}): ${type}`, + ...((method.description && { summary: method.description }) || {}), + ...((method.deprecated && { deprecated: method.deprecated }) || {}), + ...((method.isUnsafe && { unsafe: 'This method is only active with appropriate flags' }) || {}) + }); + }); + + return all; + }, []).sort(sortByName), + title: 'JSON-RPC' + }); +} + +/** @internal */ +function getMethods (registry: Registry, methods: Vec) { + const result: Record = {}; + + methods.forEach((m) => { + const { docs, inputs, name, output } = m; + + result[name.toString()] = { + description: docs.map((d) => d.toString()).join(), + params: inputs.map(({ name, type }) => { + return { name: name.toString(), type: registry.lookup.getName(type) || registry.lookup.getTypeDef(type).type }; + }), + type: registry.lookup.getName(output) || registry.lookup.getTypeDef(output).type + }; + }); + + return result; +} + +/** @internal */ +function getRuntimeDefViaMetadata (registry: Registry) { + const result: DefinitionsCall = {}; + const { apis } = registry.metadata; + + for (let i = 0, count = apis.length; i < count; i++) { + const { methods, name } = apis[i]; + + result[name.toString()] = [{ + methods: getMethods(registry, methods), + // We set the version to 0 here since it will not be relevant when we are grabbing the runtime apis + // from the Metadata. + version: 0 + }]; + } + + return Object.entries(result); +} + +function runtimeSections (registry: Registry) { + const sections = getRuntimeDefViaMetadata(registry); + const all = []; + + for (let j = 0, jcount = sections.length; j < jcount; j++) { + const [_section, secs] = sections[j]; + const sec = secs[0]; + + const section = stringCamelCase(_section); + const methods = Object.entries(sec.methods); + + const container: Section = { items: [], name: section }; + + all.push(container); + + methods + .sort(([a], [b]) => a.localeCompare(b)) + .forEach(([methodName, { description, params, type }]): void => { + const args = params.map(({ name, type }): string => { + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands + return name + ': `' + type + '`'; + }).join(', '); + + container.items.push({ + interface: '`' + `api.call.${stringCamelCase(section)}.${stringCamelCase(methodName)}` + '`', + name: `${stringCamelCase(methodName)}(${args}): ${'`' + type + '`'}`, + runtime: '`' + `${section}_${methodName}` + '`', + summary: description + }); + }); + } + + return all.sort(sortByName); +} + +/** @internal */ +function addRuntime (_runtimeDesc: string, registry: Registry): string { + return renderPage({ + description: 'The following section contains known runtime calls that may be available on specific runtimes (depending on configuration and available pallets). These call directly into the WASM runtime for queries and operations.', + sections: runtimeSections(registry), + title: 'Runtime' + }); +} + +/** @internal */ +function addLegacyRuntime (_runtimeDesc: string, _registry: Registry, apis?: ApiDef[]) { + return renderPage({ + description: 'The following section contains known runtime calls that may be available on specific runtimes (depending on configuration and available pallets). These call directly into the WASM runtime for queries and operations.', + sections: Object + .keys(definitions) + .filter((key) => Object.keys(definitions[key as 'babe'].runtime || {}).length !== 0) + .sort() + .reduce((all: Section[], _sectionName): Section[] => { + Object + .entries(definitions[_sectionName as 'babe'].runtime || {}) + .forEach(([apiName, versions]) => { + versions + .sort((a, b) => b.version - a.version) + .forEach(({ methods, version }, index) => { + if (apis) { + // if we are passing the api hashes and we cannot find this one, skip it + const apiHash = blake2AsHex(apiName, 64); + const api = apis.find(([hash]) => hash === apiHash); + + if (!api || api[1] !== version) { + return; + } + } else if (index) { + // we only want the highest version + return; + } + + const container: Section = { items: [], name: apiName }; + + all.push(container); + + Object + .entries(methods) + .sort(([a], [b]) => a.localeCompare(b)) + .forEach(([methodName, { description, params, type }]): void => { + const args = params.map(({ name, type }): string => { + // eslint-disable-next-line @typescript-eslint/restrict-plus-operands + return name + ': `' + type + '`'; + }).join(', '); + + container.items.push({ + interface: '`' + `api.call.${stringCamelCase(apiName)}.${stringCamelCase(methodName)}` + '`', + name: `${stringCamelCase(methodName)}(${args}): ${'`' + type + '`'}`, + runtime: '`' + `${apiName}_${methodName}` + '`', + summary: description + }); + }); + }); + }); + + return all; + }, []).sort(sortByName), + title: 'Runtime' + }); +} + +/** @internal */ +function addConstants (runtimeDesc: string, { lookup, pallets }: MetadataLatest): string { + return renderPage({ + description: `The following sections contain the module constants, also known as parameter types. These can only be changed as part of a runtime upgrade. On the api, these are exposed via \`api.consts..\`. ${headerFn(runtimeDesc)}`, + sections: pallets + .sort(sortByName) + .filter(({ constants }) => !constants.isEmpty) + .map(({ constants, name }) => { + const sectionName = stringLowerFirst(name); + + return { + items: constants + .sort(sortByName) + .map(({ docs, name, type }) => { + const methodName = stringCamelCase(name); + + return { + interface: '`' + `api.consts.${sectionName}.${methodName}` + '`', + name: `${methodName}: ` + '`' + getSiName(lookup, type) + '`', + ...(docs.length && { summary: docs }) + }; + }), + name: sectionName + }; + }), + title: 'Constants' + }); +} + +/** @internal */ +function addStorage (runtimeDesc: string, { lookup, pallets, registry }: MetadataLatest): string { + const { bizinikiwi } = getBizinikiwiStorage(registry); + const moduleSections = pallets + .sort(sortByName) + .filter((moduleMetadata) => !moduleMetadata.storage.isNone) + .map((moduleMetadata): Section => { + const sectionName = stringLowerFirst(moduleMetadata.name); + + return { + items: moduleMetadata.storage.unwrap().items + .sort(sortByName) + .map((func) => { + let arg = ''; + + if (func.type.isMap) { + const { hashers, key } = func.type.asMap; + + arg = '`' + ( + hashers.length === 1 + ? getSiName(lookup, key) + : lookup.getSiType(key).def.asTuple.map((t) => getSiName(lookup, t)).join(', ') + ) + '`'; + } + + const methodName = stringLowerFirst(func.name); + const outputType = unwrapStorageType(registry, func.type, func.modifier.isOptional); + + return { + interface: '`' + `api.query.${sectionName}.${methodName}` + '`', + name: `${methodName}(${arg}): ` + '`' + outputType + '`', + ...(func.docs.length && { summary: func.docs }) + }; + }), + name: sectionName + }; + }); + + return renderPage({ + description: `The following sections contain Storage methods are part of the ${runtimeDesc}. On the api, these are exposed via \`api.query..\`. ${headerFn(runtimeDesc)}`, + sections: moduleSections.concat([{ + description: 'These are well-known keys that are always available to the runtime implementation of any Bizinikiwi-based network.', + items: Object.entries(bizinikiwi).map(([name, { meta }]) => { + const arg = meta.type.isMap + ? ('`' + getSiName(lookup, meta.type.asMap.key) + '`') + : ''; + const methodName = stringLowerFirst(name); + const outputType = unwrapStorageType(registry, meta.type, meta.modifier.isOptional); + + return { + interface: '`' + `api.query.bizinikiwi.${methodName}` + '`', + name: `${methodName}(${arg}): ` + '`' + outputType + '`', + summary: meta.docs + }; + }), + name: 'bizinikiwi' + }]).sort(sortByName), + title: 'Storage' + }); +} + +/** @internal */ +function addExtrinsics (runtimeDesc: string, { lookup, pallets }: MetadataLatest): string { + return renderPage({ + description: `The following sections contain Extrinsics methods are part of the ${runtimeDesc}. On the api, these are exposed via \`api.tx..\`. ${headerFn(runtimeDesc)}`, + sections: pallets + .sort(sortByName) + .filter(({ calls }) => calls.isSome) + .map(({ calls, name }) => { + const sectionName = stringCamelCase(name); + + return { + items: lookup.getSiType(calls.unwrap().type).def.asVariant.variants + .sort(sortByName) + .map(({ docs, fields, name }, index) => { + const methodName = stringCamelCase(name); + const args = fields.map(({ name, type }) => + `${name.isSome ? name.toString() : `param${index}`}: ` + '`' + getSiName(lookup, type) + '`' + ).join(', '); + + return { + interface: '`' + `api.tx.${sectionName}.${methodName}` + '`', + name: `${methodName}(${args})`, + ...(docs.length && { summary: docs }) + }; + }), + name: sectionName + }; + }), + title: 'Extrinsics' + }); +} + +/** @internal */ +function addEvents (runtimeDesc: string, { lookup, pallets }: MetadataLatest): string { + return renderPage({ + description: `Events are emitted for certain operations on the runtime. The following sections describe the events that are part of the ${runtimeDesc}. ${headerFn(runtimeDesc)}`, + sections: pallets + .sort(sortByName) + .filter(({ events }) => events.isSome) + .map((meta) => ({ + items: lookup.getSiType(meta.events.unwrap().type).def.asVariant.variants + .sort(sortByName) + .map(({ docs, fields, name }) => { + const methodName = name.toString(); + const args = fields.map(({ type }) => + '`' + getSiName(lookup, type) + '`' + ).join(', '); + + return { + interface: '`' + `api.events.${stringCamelCase(meta.name)}.${methodName}.is` + '`', + name: `${methodName}(${args})`, + ...(docs.length && { summary: docs }) + }; + }), + name: stringCamelCase(meta.name) + })), + title: 'Events' + }); +} + +/** @internal */ +function addErrors (runtimeDesc: string, { lookup, pallets }: MetadataLatest): string { + return renderPage({ + description: `This page lists the errors that can be encountered in the different modules. ${headerFn(runtimeDesc)}`, + sections: pallets + .sort(sortByName) + .filter(({ errors }) => errors.isSome) + .map((moduleMetadata) => ({ + items: lookup.getSiType(moduleMetadata.errors.unwrap().type).def.asVariant.variants + .sort(sortByName) + .map((error) => ({ + interface: '`' + `api.errors.${stringCamelCase(moduleMetadata.name)}.${error.name.toString()}.is` + '`', + name: error.name.toString(), + ...(error.docs.length && { summary: error.docs }) + })), + name: stringLowerFirst(moduleMetadata.name) + })), + title: 'Errors' + }); +} + +function getDependencyBasePath (moduleName: string): string { + const modulePath = import.meta.resolve(moduleName); + + return resolve(dirname(fileURLToPath(modulePath))); +} + +const BASE_DERIVE_PATH = getDependencyBasePath('@pezkuwi/api-derive'); + +// It finds all typescript file paths withing a given derive module. +const obtainDeriveFiles = (deriveModule: string) => { + const filePath = `${BASE_DERIVE_PATH}/${deriveModule}`; + const files = fs.readdirSync(filePath); + + return files + .filter((file) => file.endsWith('.js')) + .map((file) => `${deriveModule}/${file}`); +}; + +function extractDeriveDescription (tags: Spec[], name: string) { + const descriptionTag = tags.find((tag) => tag.tag === name); + + return descriptionTag + ? `${descriptionTag.name ?? ''} ${descriptionTag.description ?? ''}`.trim() + : null; +} + +function extractDeriveParams (tags: Spec[]) { + const descriptionTag = tags + .filter((tag) => tag.tag === 'param') + .map((param) => { + return { + description: param.description ?? null, + name: param.name ?? null, + type: param.type ?? null + }; + }); + + return descriptionTag; +} + +function extractDeriveExample (tags: Spec[]) { + const exampleTag = tags.find((tag) => tag.tag === 'example'); + + if (!exampleTag) { + return null; + } + + let example = ''; + const inCodeBlock = { done: false, found: false }; + + // Obtain code block from example tag. + exampleTag.source.forEach((line) => { + if (inCodeBlock.done) { + return; + } + + if (line.source.indexOf('```') !== -1 && !inCodeBlock.found) { + inCodeBlock.found = true; + } else if (line.source.indexOf('```') !== -1 && inCodeBlock.found) { + inCodeBlock.done = true; + } + + if (!inCodeBlock.found) { + return; + } + + example += line.source.slice(2, line.source.length); + + if (!inCodeBlock.done) { + example += '\n'; + } + }); + + return example; +} + +// Parses the comments of a given derive file and adds the +// relevant information (name, description, params, returns, example). +const getDeriveDocs = ( + metadata: Record, + file: string +) => { + const filePath = `${BASE_DERIVE_PATH}/${file}`; + const deriveModule = file.split('/')[0]; + const fileContent = fs.readFileSync(filePath, 'utf8'); + const comments = parse(fileContent); + + const docs: Derive[] = comments + .filter((comment) => comment.tags) + .map((comment) => { + return { + description: extractDeriveDescription(comment.tags, 'description'), + example: extractDeriveExample(comment.tags), + name: comment.tags.find((tag) => tag.tag === 'name')?.name || null, + params: extractDeriveParams(comment.tags), + returns: extractDeriveDescription(comment.tags, 'returns') + }; + }); + + metadata[deriveModule] + ? (metadata[deriveModule] = [...metadata[deriveModule], ...docs]) + : (metadata[deriveModule] = [...docs]); +}; + +function renderDerives (metadata: Record) { + let md = '---\ntitle: Derives\n---\n\nThis page lists the derives that can be encountered in the different modules. Designed to simplify the process of querying complex on-chain data by combining multiple RPC calls, storage queries, and runtime logic into a single, callable function. \n\nInstead of manually fetching and processing blockchain data, developers can use `api.derive..()` to retrieve information.\n\n'; + const deriveModules = Object.keys(metadata).filter( + (d) => metadata[d].length !== 0 + ); + + // index + deriveModules.forEach((deriveModule) => { + md += `- **[${deriveModule}](#${deriveModule})**\n\n`; + }); + + // contents + deriveModules.forEach((deriveModule) => { + md += `\n___\n## ${deriveModule}\n`; + + metadata[deriveModule] + .filter((item) => item.name) + .forEach((item) => { + const { description, example, name, params, returns } = item; + + md += ` \n### [${name}](#${name})`; + + if (description) { + md += `\n${description}`; + } + + md += `\n- **interface**: \`api.derive.${deriveModule}.${name}\``; + + if (params.length) { + md += '\n- **params**:\n'; + params.forEach( + (param) => + (md += ` - ${param.name} \`${param.type}\`: ${param.description}\n`) + ); + } + + if (returns) { + md += `\n- **returns**: ${returns}`; + } + + if (example) { + md += `\n- **example**: \n${example}`; + } + }); + }); + + return md; +} + +function generateDerives () { + let fileList: string[] = []; + + Object.keys(derive).forEach((deriveModule) => { + fileList = [...fileList, ...obtainDeriveFiles(deriveModule)]; + }); + + const metadata = {}; + + fileList.forEach((file) => { + getDeriveDocs(metadata, file); + }); + + return renderDerives(metadata); +} + +/** @internal */ +function writeFile (name: string, ...chunks: any[]): void { + const writeStream = fs.createWriteStream(name, { encoding: 'utf8', flags: 'w' }); + + writeStream.on('finish', (): void => { + console.log(`Completed writing ${name}`); + }); + + chunks.forEach((chunk): void => { + writeStream.write(chunk); + }); + + writeStream.end(); +} + +interface ArgV { chain?: string; endpoint?: string; metadataVer?: number; } + +async function mainPromise (): Promise { + const { chain, endpoint, metadataVer } = yargs(hideBin(process.argv)).strict().options({ + chain: { + description: 'The chain name to use for the output (defaults to "Bizinikiwi")', + type: 'string' + }, + endpoint: { + description: 'The endpoint to connect to (e.g. wss://dicle-rpc.pezkuwi.io) or relative path to a file containing the JSON output of an RPC state_getMetadata call', + type: 'string' + }, + metadataVer: { + description: 'The metadata version to use for generating type information. This will use state_call::Metadata_metadata_at_version to query metadata', + type: 'number' + } + }).argv as ArgV; + + /** + * This is unique to when the endpoint arg is used. Since the endpoint requires us to query the chain, it may query the chains + * rpc state_getMetadata method to get metadata, but this restricts us to v14 only. Therefore we must also check if the `metadataVer` is passed + * in as well. These checks will help us decide if we are using v14 or newer. + */ + const useV14Metadata = endpoint && ((metadataVer && metadataVer < 15) || !metadataVer); + const chainName = chain || 'Bizinikiwi'; + let metaHex: HexString; + let rpcMethods: string[] | undefined; + let runtimeApis: ApiDef[] | undefined; + + if (endpoint) { + if (endpoint.startsWith('wss://') || endpoint.startsWith('ws://')) { + metaHex = await getMetadataViaWs(endpoint, metadataVer); + rpcMethods = await getRpcMethodsViaWs(endpoint); + runtimeApis = await getRuntimeVersionViaWs(endpoint); + } else { + metaHex = ( + JSON.parse( + fs.readFileSync(assertFile(path.join(process.cwd(), endpoint)), 'utf-8') + ) as { result: HexString } + ).result; + + if (!isHex(metaHex)) { + throw new Error('Invalid metadata file'); + } + } + } else if (ALL_STATIC[chainName.toLowerCase()]) { + metaHex = ALL_STATIC[chainName.toLowerCase()].meta; + rpcMethods = ALL_STATIC[chainName.toLowerCase()].rpc?.methods; + } else { + metaHex = bizinikiwiMeta; + } + + let metadata: Metadata; + const registry = new TypeRegistry(); + + if (useV14Metadata) { + metadata = new Metadata(registry, metaHex); + } else { + const opaqueMetadata = registry.createType('Option', registry.createType('Raw', metaHex).toU8a()).unwrap(); + + metadata = new Metadata(registry, opaqueMetadata.toHex()); + } + + registry.setMetadata(metadata); + + const latest = metadata.asLatest; + const runtimeDesc = `default ${chainName} runtime`; + const docRoot = `docs/${chainName.toLowerCase()}`; + + writeFile(`${docRoot}/rpc.md`, addRpc(runtimeDesc, rpcMethods)); + + useV14Metadata + ? writeFile(`${docRoot}/runtime.md`, addLegacyRuntime(runtimeDesc, registry, runtimeApis)) + : writeFile(`${docRoot}/runtime.md`, addRuntime(runtimeDesc, registry)); + + writeFile(`${docRoot}/constants.md`, addConstants(runtimeDesc, latest)); + writeFile(`${docRoot}/storage.md`, addStorage(runtimeDesc, latest)); + writeFile(`${docRoot}/extrinsics.md`, addExtrinsics(runtimeDesc, latest)); + writeFile(`${docRoot}/events.md`, addEvents(runtimeDesc, latest)); + writeFile(`${docRoot}/errors.md`, addErrors(runtimeDesc, latest)); + + if (chainName === 'Bizinikiwi') { + writeFile('docs/derives/derives.md', generateDerives()); + } +} + +export function main (): void { + mainPromise().catch((error) => { + console.error(); + console.error(error); + console.error(); + process.exit(1); + }); +} diff --git a/packages/typegen/src/packageDetect.ts b/packages/typegen/src/packageDetect.ts new file mode 100644 index 0000000..4263ede --- /dev/null +++ b/packages/typegen/src/packageDetect.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2026 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as apiInfo } from '@pezkuwi/api/packageInfo'; +import { packageInfo as providerInfo } from '@pezkuwi/rpc-provider/packageInfo'; +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [apiInfo, providerInfo, typesInfo]); diff --git a/packages/typegen/src/packageInfo.ts b/packages/typegen/src/packageInfo.ts new file mode 100644 index 0000000..74cd67b --- /dev/null +++ b/packages/typegen/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/typegen', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/typegen/src/templates/calls.hbs b/packages/typegen/src/templates/calls.hbs new file mode 100644 index 0000000..8158296 --- /dev/null +++ b/packages/typegen/src/templates/calls.hbs @@ -0,0 +1,30 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/calls'; + +{{{ importsAll }}} + +export type __AugmentedCall = AugmentedCall; +export type __DecoratedCallBase = DecoratedCallBase; + +declare module '@pezkuwi/api-base/types/calls' { + interface AugmentedCalls { + {{#each modules}} + /** {{{sectionHash}}}/{{{sectionVersion}}} */ + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: AugmentedCall Observable<{{{type}}}>>; + {{/each}} + {{#unless @root.isStrict}} + /** + * Generic call + **/ + [key: string]: DecoratedCallBase; + {{/unless}} + }; + {{/each}} + } // AugmentedCalls +} // declare module diff --git a/packages/typegen/src/templates/consts.hbs b/packages/typegen/src/templates/consts.hbs new file mode 100644 index 0000000..cf4bcea --- /dev/null +++ b/packages/typegen/src/templates/consts.hbs @@ -0,0 +1,28 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/consts'; + +{{{ importsAll }}} + +export type __AugmentedConst = AugmentedConst; + +declare module '@pezkuwi/api-base/types/consts' { + interface AugmentedConsts { + {{#each modules}} + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: {{{type}}} & AugmentedConst; + {{/each}} + {{#unless @root.isStrict}} + /** + * Generic const + **/ + [key: string]: Codec; + {{/unless}} + }; + {{/each}} + } // AugmentedConsts +} // declare module diff --git a/packages/typegen/src/templates/docs.hbs b/packages/typegen/src/templates/docs.hbs new file mode 100644 index 0000000..236ddef --- /dev/null +++ b/packages/typegen/src/templates/docs.hbs @@ -0,0 +1,7 @@ +{{#if docs.length}} +/** +{{#each docs}} + * {{#trim}}{{{this}}}{{/trim}} +{{/each}} + **/ +{{/if}} diff --git a/packages/typegen/src/templates/errors.hbs b/packages/typegen/src/templates/errors.hbs new file mode 100644 index 0000000..510b19c --- /dev/null +++ b/packages/typegen/src/templates/errors.hbs @@ -0,0 +1,28 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/errors'; + +{{{ importsAll }}} + +export type __AugmentedError = AugmentedError; + +declare module '@pezkuwi/api-base/types/errors' { + interface AugmentedErrors { + {{#each modules}} + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: AugmentedError; + {{/each}} + {{#unless @root.isStrict}} + /** + * Generic error + **/ + [key: string]: AugmentedError; + {{/unless}} + }; + {{/each}} + } // AugmentedErrors +} // declare module diff --git a/packages/typegen/src/templates/events.hbs b/packages/typegen/src/templates/events.hbs new file mode 100644 index 0000000..7bbf312 --- /dev/null +++ b/packages/typegen/src/templates/events.hbs @@ -0,0 +1,28 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/events'; + +{{{ importsAll }}} + +export type __AugmentedEvent = AugmentedEvent; + +declare module '@pezkuwi/api-base/types/events' { + interface AugmentedEvents { + {{#each modules}} + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: AugmentedEvent; + {{/each}} + {{#unless @root.isStrict}} + /** + * Generic event + **/ + [key: string]: AugmentedEvent; + {{/unless}} + }; + {{/each}} + } // AugmentedEvents +} // declare module diff --git a/packages/typegen/src/templates/header.hbs b/packages/typegen/src/templates/header.hbs new file mode 100644 index 0000000..c122d99 --- /dev/null +++ b/packages/typegen/src/templates/header.hbs @@ -0,0 +1,2 @@ +// Auto-generated via `yarn polkadot-types-from-{{headerType}}`, do not edit +/* eslint-disable */ diff --git a/packages/typegen/src/templates/interfaceRegistry.hbs b/packages/typegen/src/templates/interfaceRegistry.hbs new file mode 100644 index 0000000..b9561b9 --- /dev/null +++ b/packages/typegen/src/templates/interfaceRegistry.hbs @@ -0,0 +1,15 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +{{{ importsAll }}} + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + {{#each items}} + {{{this}}}: {{{this}}}; + {{/each}} + } // InterfaceTypes +} // declare module diff --git a/packages/typegen/src/templates/lookup/defs-named.hbs b/packages/typegen/src/templates/lookup/defs-named.hbs new file mode 100644 index 0000000..d371c1c --- /dev/null +++ b/packages/typegen/src/templates/lookup/defs-named.hbs @@ -0,0 +1,12 @@ +{{> header }} + +/* eslint-disable sort-keys */ + +export default { + {{#each defs}} + {{> docs}} + {{#each defs}} + {{{this}}} + {{/each}} + {{/each}} +}; diff --git a/packages/typegen/src/templates/lookup/defs.hbs b/packages/typegen/src/templates/lookup/defs.hbs new file mode 100644 index 0000000..4f5e056 --- /dev/null +++ b/packages/typegen/src/templates/lookup/defs.hbs @@ -0,0 +1,15 @@ +{{> header }} + +/* eslint-disable sort-keys */ + +export default { + rpc: {}, + types: { + {{#each defs}} + {{> docs}} + {{#each defs}} + {{{this}}} + {{/each}} + {{/each}} + } +}; diff --git a/packages/typegen/src/templates/lookup/index.hbs b/packages/typegen/src/templates/lookup/index.hbs new file mode 100644 index 0000000..52c0157 --- /dev/null +++ b/packages/typegen/src/templates/lookup/index.hbs @@ -0,0 +1,3 @@ +{{> header }} + +export * from './types.js'; diff --git a/packages/typegen/src/templates/lookup/types.hbs b/packages/typegen/src/templates/lookup/types.hbs new file mode 100644 index 0000000..05f30fb --- /dev/null +++ b/packages/typegen/src/templates/lookup/types.hbs @@ -0,0 +1,14 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/lookup'; + +{{{ importsAll }}} + +declare module '@pezkuwi/types/lookup' { + {{#each items}} +{{{this}}} + + {{/each}} +} // declare module diff --git a/packages/typegen/src/templates/query.hbs b/packages/typegen/src/templates/query.hbs new file mode 100644 index 0000000..5c2c95d --- /dev/null +++ b/packages/typegen/src/templates/query.hbs @@ -0,0 +1,29 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/storage'; + +{{{ importsAll }}} + +export type __AugmentedQuery = AugmentedQuery unknown>; +export type __QueryableStorageEntry = QueryableStorageEntry; + +declare module '@pezkuwi/api-base/types/storage' { + interface AugmentedQueries { + {{#each modules}} + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: {{{entryType}}} Observable<{{{returnType}}}>, [{{{args}}}]>{{#unless @root.isStrict}} & QueryableStorageEntry{{/unless}}; + {{/each}} + {{#unless @root.isStrict}} + /** + * Generic query + **/ + [key: string]: QueryableStorageEntry; + {{/unless}} + }; + {{/each}} + } // AugmentedQueries +} // declare module diff --git a/packages/typegen/src/templates/rpc.hbs b/packages/typegen/src/templates/rpc.hbs new file mode 100644 index 0000000..f566787 --- /dev/null +++ b/packages/typegen/src/templates/rpc.hbs @@ -0,0 +1,22 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/rpc-core/types/jsonrpc'; + +{{{ importsAll }}} + +export type __AugmentedRpc = AugmentedRpc<() => unknown>; + +declare module '@pezkuwi/rpc-core/types/jsonrpc' { + interface RpcInterface { + {{#each modules}} + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: AugmentedRpc<{{#if generic}}<{{{generic}}}>{{/if}}({{{args}}}) => Observable<{{{type}}}>>; + {{/each}} + }; + {{/each}} + } // RpcInterface +} // declare module diff --git a/packages/typegen/src/templates/tsDef/index.hbs b/packages/typegen/src/templates/tsDef/index.hbs new file mode 100644 index 0000000..52c0157 --- /dev/null +++ b/packages/typegen/src/templates/tsDef/index.hbs @@ -0,0 +1,3 @@ +{{> header }} + +export * from './types.js'; diff --git a/packages/typegen/src/templates/tsDef/moduleTypes.hbs b/packages/typegen/src/templates/tsDef/moduleTypes.hbs new file mode 100644 index 0000000..ddcb15c --- /dev/null +++ b/packages/typegen/src/templates/tsDef/moduleTypes.hbs @@ -0,0 +1,10 @@ +{{> header }} + +{{{ importsAll }}} + +{{#each items}} +{{{this}}} + +{{/each}} + +export type PHANTOM_{{#upper}}{{{name}}}{{/upper}} = '{{{name}}}'; diff --git a/packages/typegen/src/templates/tsDef/types.hbs b/packages/typegen/src/templates/tsDef/types.hbs new file mode 100644 index 0000000..f3fe4ba --- /dev/null +++ b/packages/typegen/src/templates/tsDef/types.hbs @@ -0,0 +1,7 @@ +{{> header }} + +{{#each items}} +export * from './{{{this}}}/types.js'; +{{/each}} + +export type PHANTOM_GENERATED = 'generated'; diff --git a/packages/typegen/src/templates/tx.hbs b/packages/typegen/src/templates/tx.hbs new file mode 100644 index 0000000..eba18d3 --- /dev/null +++ b/packages/typegen/src/templates/tx.hbs @@ -0,0 +1,30 @@ +{{> header }} + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/api-base/types/submittable'; + +{{{ importsAll }}} + +export type __AugmentedSubmittable = AugmentedSubmittable<() => unknown>; +export type __SubmittableExtrinsic = SubmittableExtrinsic; +export type __SubmittableExtrinsicFunction = SubmittableExtrinsicFunction; + +declare module '@pezkuwi/api-base/types/submittable' { + interface AugmentedSubmittables { + {{#each modules}} + {{{name}}}: { + {{#each items}} + {{> docs}} + {{{name}}}: AugmentedSubmittable<({{{params}}}) => SubmittableExtrinsic, [{{{args}}}]>; + {{/each}} + {{#unless @root.isStrict}} + /** + * Generic tx + **/ + [key: string]: SubmittableExtrinsicFunction; + {{/unless}} + }; + {{/each}} + } // AugmentedSubmittables +} // declare module diff --git a/packages/typegen/src/util/assert.ts b/packages/typegen/src/util/assert.ts new file mode 100644 index 0000000..eca8678 --- /dev/null +++ b/packages/typegen/src/util/assert.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import fs from 'node:fs'; + +import { assert } from '@pezkuwi/util'; + +export function assertDir (path: string): string { + assert(fs.existsSync(path) && fs.lstatSync(path).isDirectory(), `${path} is not a directory`); + + return path; +} + +export function assertFile (path: string): string { + assert(fs.existsSync(path) && fs.lstatSync(path).isFile(), `${path} is not a file`); + + return path; +} diff --git a/packages/typegen/src/util/derived.spec.ts b/packages/typegen/src/util/derived.spec.ts new file mode 100644 index 0000000..3a14254 --- /dev/null +++ b/packages/typegen/src/util/derived.spec.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types/create'; + +import { getSimilarTypes } from './derived.js'; + +describe('getSimilarTypes', (): void => { + const registry = new TypeRegistry(); + const mockImports = { + codecTypes: {}, + definitions: {}, + extrinsicTypes: {}, + genericTypes: {}, + ignoredTypes: [], + localTypes: {}, + lookupTypes: {}, + metadataTypes: {}, + primitiveTypes: {}, + typeToModule: {}, + typesTypes: {} + }; + + it('handles nested Tuples', (): void => { + expect(getSimilarTypes(registry, {}, '(AccountId, (Balance, u32), u64)', mockImports)).toEqual([ + 'ITuple<[AccountId, ITuple<[Balance, u32]>, u64]>', + '[AccountId | string | Uint8Array, ITuple<[Balance, u32]> | [Balance | AnyNumber | Uint8Array, u32 | AnyNumber | Uint8Array], u64 | AnyNumber | Uint8Array]' + ]); + }); + + it('handles vectors of slices', (): void => { + expect(getSimilarTypes(registry, {}, 'Vec<[u8;4]>', mockImports)).toEqual([ + 'Vec' + ]); + expect(getSimilarTypes(registry, {}, 'Vec<[Balance;8]>', mockImports)).toEqual([ + 'Vec>' + ]); + }); + + it('handles structs', (): void => { + expect(getSimilarTypes(registry, {}, '{ "a": "u8", "b": "Vec" }', mockImports)).toEqual([ + `{ + readonly a: u8; + readonly b: Bytes; + } & Struct`, '{ a?: any; b?: any }', 'string', 'Uint8Array' + ]); + }); + it('handles vectors of structs', (): void => { + expect(getSimilarTypes(registry, {}, 'Vec<{ "a": "H256", "b": "Vec" }>', mockImports)).toEqual([ + `Vec<{ + readonly a: H256; + readonly b: Vec; + } & Struct>` + ]); + }); +}); diff --git a/packages/typegen/src/util/derived.ts b/packages/typegen/src/util/derived.ts new file mode 100644 index 0000000..9d2951b --- /dev/null +++ b/packages/typegen/src/util/derived.ts @@ -0,0 +1,133 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { CodecClass, Registry } from '@pezkuwi/types/types'; +import type { UInt } from '@pezkuwi/types-codec'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { ModuleTypes, TypeImports } from './imports.js'; + +import { GenericAccountId, GenericCall, GenericLookupSource, GenericVote } from '@pezkuwi/types/generic'; +import { AllConvictions } from '@pezkuwi/types/interfaces/democracy/definitions'; +import { AbstractInt, bool, Compact, Enum, Null, Option, Struct, Tuple, Vec, WrapperKeepOpaque, WrapperOpaque } from '@pezkuwi/types-codec'; +import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create'; +import { isChildClass, stringify } from '@pezkuwi/util'; + +import { formatType } from './formatting.js'; +import { setImports } from './imports.js'; + +function arrayToStrType (arr: string[]): string { + return `${arr.map((c) => `'${c}'`).join(' | ')}`; +} + +const voteConvictions = arrayToStrType(AllConvictions); + +// Make types a little bit more flexible +// - if param instanceof AbstractInt, then param: u64 | Uint8array | AnyNumber +// etc +/** @internal */ +export function getSimilarTypes (registry: Registry, definitions: Record, _type: string, imports: TypeImports): string[] { + const typeParts = _type.split('::'); + const type = typeParts[typeParts.length - 1]; + const possibleTypes = [formatType(registry, definitions, type, imports)]; + + if (type === 'Extrinsic') { + setImports(definitions, imports, ['IExtrinsic']); + + return ['Extrinsic', 'IExtrinsic', 'string', 'Uint8Array']; + } else if (type === 'Keys') { + // This one is weird... surely it should popup as a Tuple? (but either way better as defined hex) + return ['Keys', 'string', 'Uint8Array']; + } else if (type === 'StorageKey') { + // TODO We can do better + return ['StorageKey', 'string', 'Uint8Array', 'any']; + } else if (type === '()') { + return ['null']; + } + + const Clazz = registry.createClass(type); + + if (isChildClass(Vec, Clazz)) { + const vecDef = getTypeDef(type); + const subDef = (vecDef.sub) as TypeDef; + + // this could be that we define a Vec type and refer to it by name + if (subDef) { + if (subDef.info === TypeDefInfo.Plain) { + possibleTypes.push(`(${getSimilarTypes(registry, definitions, subDef.type, imports).join(' | ')})[]`); + } else if (subDef.info === TypeDefInfo.Tuple) { + const subs = (subDef.sub as TypeDef[]).map(({ type }): string => + getSimilarTypes(registry, definitions, type, imports).join(' | ') + ); + + possibleTypes.push(`([${subs.join(', ')}])[]`); + } else if (subDef.info === TypeDefInfo.Option || subDef.info === TypeDefInfo.Vec || subDef.info === TypeDefInfo.VecFixed) { + // TODO: Add possibleTypes so imports work + } else if (subDef.info === TypeDefInfo.Struct) { + // TODO: Add possibleTypes so imports work + } else { + throw new Error(`Unhandled subtype in Vec, ${stringify(subDef)}`); + } + } + } else if (isChildClass(Enum, Clazz)) { + const { defKeys, isBasic } = new (Clazz as CodecClass)(registry) as Enum; + const keys = defKeys.filter((v) => !v.startsWith('__Unused')); + + if (isBasic) { + possibleTypes.push(arrayToStrType(keys), 'number'); + } else { + // TODO We don't really want any here, these should be expanded + possibleTypes.push(...keys.map((k) => `{ ${k}: any }`), 'string'); + } + + possibleTypes.push('Uint8Array'); + } else if (isChildClass(AbstractInt as unknown as CodecClass, Clazz) || isChildClass(Compact, Clazz)) { + possibleTypes.push('AnyNumber', 'Uint8Array'); + } else if (isChildClass(GenericLookupSource, Clazz)) { + possibleTypes.push('Address', 'AccountId', 'AccountIndex', 'LookupSource', 'string', 'Uint8Array'); + } else if (isChildClass(GenericAccountId, Clazz)) { + possibleTypes.push('string', 'Uint8Array'); + } else if (isChildClass(GenericCall, Clazz)) { + possibleTypes.push('IMethod', 'string', 'Uint8Array'); + } else if (isChildClass(bool, Clazz)) { + possibleTypes.push('boolean', 'Uint8Array'); + } else if (isChildClass(Null, Clazz)) { + possibleTypes.push('null'); + } else if (isChildClass(Struct, Clazz)) { + const s = new (Clazz as CodecClass)(registry) as Struct; + const obj = s.defKeys.map((key): string => `${key}?: any`).join('; '); + + possibleTypes.push(`{ ${obj} }`, 'string', 'Uint8Array'); + } else if (isChildClass(Option, Clazz)) { + possibleTypes.push('null', 'Uint8Array'); + + const optDef = getTypeDef(type); + const subDef = (optDef.sub) as TypeDef; + + if (subDef) { + possibleTypes.push(...getSimilarTypes(registry, definitions, subDef.type, imports)); + } else { + possibleTypes.push('object', 'string'); + } + } else if (isChildClass(GenericVote, Clazz)) { + possibleTypes.push(`{ aye: boolean; conviction?: ${voteConvictions} | number }`, 'boolean', 'string', 'Uint8Array'); + } else if (isChildClass(WrapperKeepOpaque, Clazz) || isChildClass(WrapperOpaque, Clazz)) { + // TODO inspect container + possibleTypes.push('object', 'string', 'Uint8Array'); + } else if (isChildClass(Uint8Array, Clazz)) { + possibleTypes.push('string', 'Uint8Array'); + } else if (isChildClass(String, Clazz)) { + possibleTypes.push('string'); + } else if (isChildClass(Tuple, Clazz)) { + const tupDef = getTypeDef(type); + const subDef = tupDef.sub; + + // this could be that we define a Tuple type and refer to it by name + if (Array.isArray(subDef)) { + const subs = subDef.map(({ type }) => getSimilarTypes(registry, definitions, type, imports).join(' | ')); + + possibleTypes.push(`[${subs.join(', ')}]`); + } + } + + return [...new Set(possibleTypes)]; +} diff --git a/packages/typegen/src/util/docs.ts b/packages/typegen/src/util/docs.ts new file mode 100644 index 0000000..b3366f8 --- /dev/null +++ b/packages/typegen/src/util/docs.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import Handlebars from 'handlebars'; + +import { readTemplate } from './file.js'; + +Handlebars.registerPartial({ + docs: Handlebars.compile(readTemplate('docs')) +}); + +// empty export +export const __TYPEGEN_DUMMY_DOCS = 'DUMMY_DOCS'; diff --git a/packages/typegen/src/util/file.ts b/packages/typegen/src/util/file.ts new file mode 100644 index 0000000..9aa3b55 --- /dev/null +++ b/packages/typegen/src/util/file.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import fs from 'node:fs'; +import path from 'node:path'; +import process from 'node:process'; + +import { packageInfo } from '../packageInfo.js'; + +export function writeFile (dest: string, generator: () => string, noLog?: boolean): void { + !noLog && console.log(`${dest}\n\tGenerating`); + + let generated = generator(); + + while (generated.includes('\n\n\n')) { + generated = generated.replace(/\n\n\n/g, '\n\n'); + } + + !noLog && console.log('\tWriting'); + + fs.writeFileSync(dest, generated, { flag: 'w' }); + + !noLog && console.log(''); +} + +export function readTemplate (template: string): string { + // Inside the api repo itself, it will be 'auto' + const rootDir = packageInfo.path === 'auto' + ? path.join(process.cwd(), 'packages/typegen/src') + : packageInfo.path; + + // NOTE With cjs in a subdir, search one lower as well + const file = ['./templates', '../templates'] + .map((p) => path.join(rootDir, p, `${template}.hbs`)) + .find((p) => fs.existsSync(p)); + + if (!file) { + throw new Error(`Unable to locate ${template}.hbs from ${rootDir}`); + } + + return fs.readFileSync(file).toString(); +} diff --git a/packages/typegen/src/util/formatting.spec.ts b/packages/typegen/src/util/formatting.spec.ts new file mode 100644 index 0000000..b7e2f2c --- /dev/null +++ b/packages/typegen/src/util/formatting.spec.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; + +import { formatType } from './formatting.js'; + +describe('formatType', (): void => { + const registry = new TypeRegistry(); + + it('handles nested Tuples', (): void => { + expect( + formatType(registry, {}, '(AccountId, (Balance, u32), u64)', { + codecTypes: {}, + definitions: {}, + extrinsicTypes: {}, + genericTypes: {}, + ignoredTypes: [], + localTypes: {}, + lookupTypes: {}, + metadataTypes: {}, + primitiveTypes: {}, + typeToModule: {}, + typesTypes: {} + }) + ).toEqual('ITuple<[AccountId, ITuple<[Balance, u32]>, u64]>'); + }); +}); diff --git a/packages/typegen/src/util/formatting.ts b/packages/typegen/src/util/formatting.ts new file mode 100644 index 0000000..3497ce0 --- /dev/null +++ b/packages/typegen/src/util/formatting.ts @@ -0,0 +1,322 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyString, Registry } from '@pezkuwi/types/types'; +import type { LookupString } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { ModuleTypes, TypeImports } from './imports.js'; + +import Handlebars from 'handlebars'; + +import * as typesCodec from '@pezkuwi/types-codec'; +import { getTypeDef, paramsNotation, TypeDefInfo } from '@pezkuwi/types-create'; +import { isString, stringify } from '@pezkuwi/util'; + +import { readTemplate } from './file.js'; +import { setImports } from './imports.js'; + +// Rebrand type names from Polkadot SDK to Pezkuwi SDK +function rebrandTypeName (typeName: string): string { + return typeName + // Main projects + .replace(/Polkadot/g, 'Pezkuwi') + .replace(/Substrate/g, 'Bizinikiwi') + .replace(/Cumulus/g, 'Pezcumulus') + // Networks + .replace(/Kusama/g, 'Dicle') + .replace(/Westend/g, 'Zagros') + .replace(/Rococo/g, 'Pezkuwichain') + // Chain types + .replace(/Parachain/g, 'Teyrchain') + // Module prefixes (in PascalCase type names) + .replace(/Frame(?=[A-Z])/g, 'Pezframe') + .replace(/Pallet(?=[A-Z])/g, 'Pezpallet') + // Primitives prefixes (sp_ becomes Sp in type names) + .replace(/^Sp(?=[A-Z])/g, 'Pezsp') + .replace(/([^a-zA-Z])Sp(?=[A-Z])/g, '$1Pezsp') + // Client prefixes (sc_ becomes Sc in type names) + .replace(/^Sc(?=[A-Z])/g, 'Pezsc') + .replace(/([^a-zA-Z])Sc(?=[A-Z])/g, '$1Pezsc'); +} + +interface ImportDef { + file: string; + types: string[]; +} + +interface This { + imports: TypeImports; + types: ImportDef[]; +} + +const NO_CODEC = ['Tuple', 'VecFixed']; +const ON_CODEC = Object.keys(typesCodec); +const ON_CODEC_TYPES = ['Codec', 'AnyJson', 'AnyFunction', 'AnyNumber', 'AnyString', 'AnyTuple', 'AnyU8a', 'ICompact', 'IEnum', 'IMap', 'INumber', 'IOption', 'IResult', 'ISet', 'IStruct', 'ITuple', 'IU8a', 'IVec', 'IMethod']; + +export const HEADER = (type: 'chain' | 'defs'): string => `// Auto-generated via \`yarn pezkuwi-types-from-${type}\`, do not edit\n/* eslint-disable */\n\n`; + +function extractImports ({ imports, types }: This): string[] { + const toplevel = [ + ...Object.keys(imports.codecTypes), + ...Object.keys(imports.extrinsicTypes), + ...Object.keys(imports.genericTypes), + ...Object.keys(imports.metadataTypes), + ...Object.keys(imports.primitiveTypes) + ]; + + return [ + { + file: '@pezkuwi/types', + types: toplevel.filter((n) => + !NO_CODEC.includes(n) && !ON_CODEC.includes(n) + ) + }, + { + file: '@pezkuwi/types/lookup', + types: Object.keys(imports.lookupTypes) + }, + { + file: '@pezkuwi/types/types', + types: Object.keys(imports.typesTypes).filter((n) => + !ON_CODEC_TYPES.includes(n) + ) + }, + { + file: '@pezkuwi/types-codec', + types: toplevel.filter((n) => + !NO_CODEC.includes(n) && ON_CODEC.includes(n) + ) + }, + { + file: '@pezkuwi/types-codec/types', + types: Object.keys(imports.typesTypes).filter((n) => + ON_CODEC_TYPES.includes(n) + ) + }, + ...types + ] + .filter(({ types }) => types.length) + .sort(({ file }, b) => file.localeCompare(b.file)) + .map(({ file, types }) => `import type { ${types.sort().join(', ')} } from '${file}';`); +} + +Handlebars.registerPartial({ + header: Handlebars.compile(readTemplate('header')) +}); + +Handlebars.registerHelper({ + importsAll () { + return extractImports(this as unknown as This) + .join('\n'); + }, + importsPackage () { + return extractImports(this as unknown as This) + .filter((l) => !l.includes("from '.")) + .join('\n '); + }, + importsRelative () { + return extractImports(this as unknown as This) + .filter((l) => l.includes("from '.")) + .join('\n'); + }, + trim (options: { fn: (self: unknown) => string }) { + return options.fn(this).trim(); + }, + upper (options: { fn: (self: unknown) => string }) { + return options.fn(this).toUpperCase(); + } +}); + +// helper to generate a `export interface extends {} +/** @internal */ +export function exportInterface (lookupIndex = -1, name = '', base: string, body = '', withShortcut = false): string { + // * @description extends [[${base}]] + const doc = withShortcut + ? '' + : `/** @name ${name}${lookupIndex !== -1 ? ` (${lookupIndex})` : ''} */\n`; + + return `${doc}${withShortcut ? '' : `export interface ${name} extends ${base} `}{${body.length ? '\n' : ''}${body}${withShortcut ? ' ' : ''}}`; +} + +function singleParamNotation (registry: Registry, wrapper: string, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean): string { + const sub = (typeDef.sub as TypeDef); + const lookupName = rebrandTypeName(sub.lookupName || ''); + + setImports(definitions, imports, [wrapper, lookupName]); + + return paramsNotation(wrapper, lookupName || formatType(registry, definitions, sub.type, imports, withShortcut)); +} + +function dualParamsNotation (registry: Registry, wrapper: string, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean): string { + const [a, b] = (typeDef.sub as TypeDef[]); + const aLookupName = rebrandTypeName(a.lookupName || ''); + const bLookupName = rebrandTypeName(b.lookupName || ''); + + setImports(definitions, imports, [wrapper, aLookupName, bLookupName]); + + return paramsNotation(wrapper, [ + aLookupName || formatType(registry, definitions, a.type, imports, withShortcut), + bLookupName || formatType(registry, definitions, b.type, imports, withShortcut) + ]); +} + +const formatters: Record, imports: TypeImports, withShortcut: boolean) => string> = { + [TypeDefInfo.Compact]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'Compact', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.DoNotConstruct]: (_registry: Registry, _typeDef: TypeDef, definitions: Record, imports: TypeImports, _withShortcut: boolean) => { + setImports(definitions, imports, ['DoNotConstruct']); + + return 'DoNotConstruct'; + }, + + [TypeDefInfo.Enum]: (_registry: Registry, typeDef: TypeDef, _definitions: Record, _imports: TypeImports, _withShortcut: boolean) => { + if (typeDef.lookupName) { + return rebrandTypeName(typeDef.lookupName); + } + + throw new Error(`TypeDefInfo.Enum: Parameter formatting not implemented on ${stringify(typeDef)}`); + }, + + [TypeDefInfo.Int]: (_registry: Registry, typeDef: TypeDef, _definitions: Record, _imports: TypeImports, _withShortcut: boolean) => { + throw new Error(`TypeDefInfo.Int: Parameter formatting not implemented on ${stringify(typeDef)}`); + }, + + [TypeDefInfo.UInt]: (_registry: Registry, typeDef: TypeDef, _definitions: Record, _imports: TypeImports, _withShortcut: boolean) => { + throw new Error(`TypeDefInfo.UInt: Parameter formatting not implemented on ${stringify(typeDef)}`); + }, + + [TypeDefInfo.Null]: (_registry: Registry, _typeDef: TypeDef, definitions: Record, imports: TypeImports, _withShortcut: boolean) => { + setImports(definitions, imports, ['Null']); + + return 'Null'; + }, + + [TypeDefInfo.Option]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'Option', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.Plain]: (_registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, _withShortcut: boolean) => { + setImports(definitions, imports, [rebrandTypeName(typeDef.type)]); + + return rebrandTypeName(typeDef.type); + }, + + [TypeDefInfo.Range]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'Range', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.RangeInclusive]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'RangeInclusive', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.Set]: (_registry: Registry, typeDef: TypeDef, _definitions: Record, _imports: TypeImports, _withShortcut: boolean) => { + throw new Error(`TypeDefInfo.Set: Parameter formatting not implemented on ${stringify(typeDef)}`); + }, + + [TypeDefInfo.Si]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return formatType(registry, definitions, registry.lookup.getTypeDef(typeDef.type as LookupString), imports, withShortcut); + }, + + [TypeDefInfo.Struct]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + if (typeDef.lookupName) { + return rebrandTypeName(typeDef.lookupName); + } + + const sub = typeDef.sub as TypeDef[]; + + setImports(definitions, imports, ['Struct', ...sub.map(({ lookupName }) => rebrandTypeName(lookupName || ''))]); + + return `{${withShortcut ? ' ' : '\n'}${ + sub.map(({ lookupName, name, type }, index) => [ + name || `unknown${index}`, + rebrandTypeName(lookupName || '') || formatType(registry, definitions, type, imports, withShortcut) + ]).map(([k, t]) => `${withShortcut ? '' : ' readonly '}${k}: ${t};`).join(withShortcut ? ' ' : '\n') + }${withShortcut ? ' ' : '\n '}} & Struct`; + }, + + [TypeDefInfo.Tuple]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + const sub = typeDef.sub as TypeDef[]; + + setImports(definitions, imports, ['ITuple', ...sub.map(({ lookupName }) => rebrandTypeName(lookupName || ''))]); + + // `(a,b)` gets transformed into `ITuple<[a, b]>` + return paramsNotation('ITuple', `[${ + sub.map(({ lookupName, type }) => + rebrandTypeName(lookupName || '') || formatType(registry, definitions, type, imports, withShortcut) + ).join(', ') + }]`); + }, + + [TypeDefInfo.Vec]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'Vec', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.VecFixed]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + const sub = (typeDef.sub as TypeDef); + + if (sub.type === 'u8') { + setImports(definitions, imports, ['U8aFixed']); + + return 'U8aFixed'; + } + + return singleParamNotation(registry, 'Vec', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.BTreeMap]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return dualParamsNotation(registry, 'BTreeMap', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.BTreeSet]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'BTreeSet', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.HashMap]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return dualParamsNotation(registry, 'HashMap', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.Linkage]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'Linkage', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.Result]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return dualParamsNotation(registry, 'Result', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.WrapperKeepOpaque]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'WrapperKeepOpaque', typeDef, definitions, imports, withShortcut); + }, + + [TypeDefInfo.WrapperOpaque]: (registry: Registry, typeDef: TypeDef, definitions: Record, imports: TypeImports, withShortcut: boolean) => { + return singleParamNotation(registry, 'WrapperOpaque', typeDef, definitions, imports, withShortcut); + } +}; + +/** + * Correctly format a given type + */ +/** @internal */ +// eslint-disable-next-line @typescript-eslint/ban-types +export function formatType (registry: Registry, definitions: Record, type: AnyString | TypeDef, imports: TypeImports, withShortcut = false): string { + let typeDef: TypeDef; + + if (isString(type)) { + const _type = type.toString(); + + // If type is "unorthodox" (i.e. `{ something: any }` for an Enum input or `[a | b | c, d | e | f]` for a Tuple's similar types), + // we return it as-is + if (withShortcut && /(^{.+:.+})|^\([^,]+\)|^\(.+\)\[\]|^\[.+\]/.exec(_type) && !/\[\w+;\w+\]/.exec(_type)) { + return rebrandTypeName(_type); + } + + typeDef = getTypeDef(type); + } else { + typeDef = type; + } + + setImports(definitions, imports, [rebrandTypeName(typeDef.lookupName || typeDef.type)]); + + return rebrandTypeName(formatters[typeDef.info](registry, typeDef, definitions, imports, withShortcut)); +} diff --git a/packages/typegen/src/util/imports.ts b/packages/typegen/src/util/imports.ts new file mode 100644 index 0000000..c5288d1 --- /dev/null +++ b/packages/typegen/src/util/imports.ts @@ -0,0 +1,164 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import * as codecClasses from '@pezkuwi/types/codec'; +import * as extrinsicClasses from '@pezkuwi/types/extrinsic'; +import * as genericClasses from '@pezkuwi/types/generic'; +import * as primitiveClasses from '@pezkuwi/types/primitive'; +import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create'; + +export interface ModuleTypes { + types: Record; +} + +// these map all the codec and primitive types for import, see the TypeImports below. If +// we have an unseen type, it is `undefined`/`false`, if we need to import it, it is `true` +type TypeExist = Record; + +// local and absolute imports map to this format +// { [moduleName]: { [typeName]: true } } +type TypeExistMap = Record; + +export interface TypeImports { + codecTypes: TypeExist; // `import {} from '@pezkuwi/types/codec` + extrinsicTypes: TypeExist; // `import {} from '@pezkuwi/types/extrinsic` + genericTypes: TypeExist; // `import {} from '@pezkuwi/types/generic` + ignoredTypes: string[]; // No need to import these types + localTypes: TypeExistMap; // `import {} from '../something'` + lookupTypes: TypeExistMap; // `import {} from '@pezkuwi/types/lookup` + primitiveTypes: TypeExist; // `import {} from '@pezkuwi/types/primitive` + metadataTypes: TypeExist; // `import {} from '@pezkuwi/types/metadata` + typesTypes: TypeExist; // `import {} from '@pezkuwi/types/types` + definitions: Record; // all definitions + typeToModule: Record; +} + +// returns the top-level types in the alternatives list, taking into account nested [], <> and () items +// E.g. for the string '[a, d | e]' we return the array ['a', 'd', 'e'] +function splitAlternatives (type: string): string[] { + const alternatives = []; + let beginOfAlternative = 1; + let level = 0; + + // we assume that the string starts with '[' + for (let i = 1, count = type.length; i < count; i++) { + if (level === 0) { + switch (type[i]) { + case ']': + case ',': + case '|': + alternatives.push(type.substring(beginOfAlternative, i).trim()); + beginOfAlternative = i + 1; + break; + } + } + + switch (type[i]) { + case '[': + case '(': + case '<': + level++; + break; + case ']': + case ')': + case '>': + level--; + break; + } + } + + return alternatives; +} + +// Maps the types as found to the source location. This is used to generate the +// imports in the output file, dep-duped and sorted +/** @internal */ +export function setImports (allDefs: Record, imports: TypeImports, types: (string | null | undefined)[]): void { + const { codecTypes, extrinsicTypes, genericTypes, ignoredTypes, localTypes, metadataTypes, primitiveTypes, typesTypes } = imports; + + types.filter((t): t is string => !!t).forEach((type): void => { + if (ignoredTypes.includes(type)) { + // do nothing + } else if (['AnyNumber', 'CallFunction', 'Codec', 'IExtrinsic', 'IMethod', 'ITuple'].includes(type)) { + typesTypes[type] = true; + } else if (['Metadata', 'PortableRegistry'].includes(type)) { + metadataTypes[type] = true; + } else if ((codecClasses as Record)[type]) { + codecTypes[type] = true; + } else if ((extrinsicClasses as Record)[type]) { + extrinsicTypes[type] = true; + } else if ((genericClasses as Record)[type]) { + genericTypes[type] = true; + } else if ((primitiveClasses as Record)[type]) { + primitiveTypes[type] = true; + } else if (type.startsWith('[') && type.includes('|')) { + const splitTypes = splitAlternatives(type); + + setImports(allDefs, imports, splitTypes); + } else if (type.includes('<') || type.includes('(') || type.includes('[')) { + // If the type is a bit special (tuple, fixed u8, nested type...), then we + // need to parse it with `getTypeDef`. + const typeDef = getTypeDef(type); + + setImports(allDefs, imports, [TypeDefInfo[typeDef.info]]); + + // TypeDef.sub is a `TypeDef | TypeDef[]` + if (Array.isArray(typeDef.sub)) { + typeDef.sub.forEach((subType) => setImports(allDefs, imports, [subType.lookupName || subType.type])); + } else if (typeDef.sub && (typeDef.info !== TypeDefInfo.VecFixed || typeDef.sub.type !== 'u8')) { + // typeDef.sub is a TypeDef in this case + setImports(allDefs, imports, [typeDef.sub.lookupName || typeDef.sub.type]); + } + } else { + // find this module inside the exports from the rest + const [moduleName] = Object.entries(allDefs).find(([, { types }]): boolean => + Object.keys(types).includes(type) + ) || [null]; + + if (moduleName) { + localTypes[moduleName][type] = true; + } + } + }); +} + +// Create an Imports object, can be pre-filled with `ignoredTypes` +/** @internal */ +export function createImports (importDefinitions: Record>, { types }: ModuleTypes = { types: {} }): TypeImports { + const definitions = {} as Record; + const typeToModule = {} as Record; + + Object.entries(importDefinitions).forEach(([packagePath, packageDef]): void => { + Object.entries(packageDef).forEach(([name, moduleDef]): void => { + const fullName = `${packagePath}/${name}`; + + definitions[fullName] = moduleDef; + + Object.keys(moduleDef.types).forEach((type): void => { + if (typeToModule[type]) { + console.warn(`\t\tWARN: Overwriting duplicated type '${type}' ${typeToModule[type]} -> ${fullName}`); + } + + typeToModule[type] = fullName; + }); + }); + }); + + return { + codecTypes: {}, + definitions, + extrinsicTypes: {}, + genericTypes: {}, + ignoredTypes: Object.keys(types), + localTypes: Object.keys(definitions).reduce((local: Record, mod): Record => { + local[mod] = {}; + + return local; + }, {}), + lookupTypes: {}, + metadataTypes: {}, + primitiveTypes: {}, + typeToModule, + typesTypes: {} + }; +} diff --git a/packages/typegen/src/util/index.ts b/packages/typegen/src/util/index.ts new file mode 100644 index 0000000..eb0cedf --- /dev/null +++ b/packages/typegen/src/util/index.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './assert.js'; +export * from './derived.js'; +export * from './docs.js'; +export * from './file.js'; +export * from './formatting.js'; +export * from './imports.js'; +export * from './initMeta.js'; +export * from './register.js'; +export * from './wsMeta.js'; + +interface Cmp { name: { toString(): string } } + +export function compareName (a: Cmp, b: Cmp): number { + return a.name.toString().localeCompare(b.name.toString()); +} + +// Rebrand type names from Polkadot SDK to Pezkuwi SDK +export function rebrandTypeName (typeName: string): string { + return typeName + // Main projects + .replace(/Polkadot/g, 'Pezkuwi') + .replace(/Substrate/g, 'Bizinikiwi') + .replace(/Cumulus/g, 'Pezcumulus') + // Networks + .replace(/Kusama/g, 'Dicle') + .replace(/Westend/g, 'Zagros') + .replace(/Rococo/g, 'Pezkuwichain') + // Chain types + .replace(/Parachain/g, 'Teyrchain') + // Module prefixes (in PascalCase type names) + .replace(/Frame(?=[A-Z])/g, 'Pezframe') + .replace(/Pallet(?=[A-Z])/g, 'Pezpallet') + // Primitives prefixes (sp_ becomes Sp in type names) + .replace(/^Sp(?=[A-Z])/g, 'Pezsp') + .replace(/([^a-zA-Z])Sp(?=[A-Z])/g, '$1Pezsp') + // Client prefixes (sc_ becomes Sc in type names) + .replace(/^Sc(?=[A-Z])/g, 'Pezsc') + .replace(/([^a-zA-Z])Sc(?=[A-Z])/g, '$1Pezsc'); +} diff --git a/packages/typegen/src/util/initMeta.ts b/packages/typegen/src/util/initMeta.ts new file mode 100644 index 0000000..28b3f91 --- /dev/null +++ b/packages/typegen/src/util/initMeta.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { ExtraTypes } from '../generate/types.js'; + +import { Metadata, TypeRegistry } from '@pezkuwi/types'; + +import { registerDefinitions } from './register.js'; + +interface Result { + metadata: Metadata; + registry: TypeRegistry; +} + +/** + * This helper method has been transitioned to work with V14, V15 and up. + */ +export function initMeta (staticMeta: HexString, extraTypes: ExtraTypes = {}): Result { + const registry = new TypeRegistry(); + + registerDefinitions(registry, extraTypes); + + let metadata: Metadata; + + try { + const opaqueMetadata = registry.createType('Option', registry.createType('Raw', staticMeta).toU8a()).unwrap(); + + metadata = new Metadata(registry, opaqueMetadata.toHex()); + } catch { + metadata = new Metadata(registry, staticMeta); + } + + registry.setMetadata(metadata); + + return { metadata, registry }; +} diff --git a/packages/typegen/src/util/register.ts b/packages/typegen/src/util/register.ts new file mode 100644 index 0000000..f2a5235 --- /dev/null +++ b/packages/typegen/src/util/register.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { TypeRegistry } from '@pezkuwi/types/create'; + +export function registerDefinitions (registry: TypeRegistry, extras: Record }>>): void { + Object.values(extras).forEach((def): void => { + Object.values(def).forEach(({ types }): void => { + registry.register(types); + }); + }); +} diff --git a/packages/typegen/src/util/wsMeta.ts b/packages/typegen/src/util/wsMeta.ts new file mode 100644 index 0000000..f90e0c5 --- /dev/null +++ b/packages/typegen/src/util/wsMeta.ts @@ -0,0 +1,70 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; + +import { promiseTracker } from '@pezkuwi/api/promise/decorateMethod'; +import { TypeRegistry } from '@pezkuwi/types'; +import { stringify, u8aToHex } from '@pezkuwi/util'; +import { WebSocket } from '@pezkuwi/x-ws'; + +async function getWsData (endpoint: string, method: 'rpc_methods' | 'state_call' | 'state_getMetadata' | 'state_getRuntimeVersion', params?: string[]): Promise { + return new Promise((resolve, reject): void => { + const tracker = promiseTracker(resolve, reject); + + try { + const websocket = new WebSocket(endpoint); + + websocket.onclose = (event: { code: number; reason: string }): void => { + if (event.code !== 1000) { + tracker.reject(new Error(`disconnected, code: '${event.code}' reason: '${event.reason}'`)); + } + }; + + websocket.onerror = (event: unknown): void => { + tracker.reject(new Error(`WebSocket error:: ${stringify(event)}`)); + }; + + websocket.onopen = (): void => { + console.log('connected'); + params + ? websocket.send(`{"id":"1","jsonrpc":"2.0","method":"${method}","params":[${params.map((param) => `"${param}"`).join(',')}]}`) + : websocket.send(`{"id":"1","jsonrpc":"2.0","method":"${method}","params":[]}`); + }; + + websocket.onmessage = (message: { data: string }): void => { + try { + tracker.resolve((JSON.parse(message.data) as { result: T }).result); + } catch (error) { + tracker.reject(error as Error); + } + + websocket.close(); + }; + } catch (error) { + tracker.reject(error as Error); + } + }); +} + +export async function getMetadataViaWs (endpoint: string, metadataVer?: number): Promise { + const registry = new TypeRegistry(); + + if (metadataVer) { + return await getWsData(endpoint, 'state_call', ['Metadata_metadata_at_version', u8aToHex(registry.createType('u32', metadataVer).toU8a())]); + } else { + return await getWsData(endpoint, 'state_getMetadata'); + } +} + +export async function getRpcMethodsViaWs (endpoint: string): Promise { + const result = await getWsData<{ methods: string[] }>(endpoint, 'rpc_methods'); + + return result.methods; +} + +export async function getRuntimeVersionViaWs (endpoint: string): Promise<[apiHash: string, apiVersion: number][]> { + const result = await getWsData<{ apis: [string, number][] }>(endpoint, 'state_getRuntimeVersion'); + + return result.apis; +} diff --git a/packages/typegen/tsconfig.build.json b/packages/typegen/tsconfig.build.json new file mode 100644 index 0000000..c8fe764 --- /dev/null +++ b/packages/typegen/tsconfig.build.json @@ -0,0 +1,28 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "scripts/**/*", + "**/*.spec.ts", + "**/mod.ts" + ], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../api-augment/tsconfig.build.json" }, + { "path": "../api-derive/tsconfig.build.json" }, + { "path": "../rpc-augment/tsconfig.build.json" }, + { "path": "../rpc-provider/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" } + ] +} diff --git a/packages/typegen/tsconfig.scripts.json b/packages/typegen/tsconfig.scripts.json new file mode 100644 index 0000000..aaed4d9 --- /dev/null +++ b/packages/typegen/tsconfig.scripts.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./scripts", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "scripts/**/*" + ], + "exclude": [ + "src/**/*" + ], + "references": [ + { "path": "../typegen/tsconfig.build.json" } + ] +} diff --git a/packages/typegen/tsconfig.spec.json b/packages/typegen/tsconfig.spec.json new file mode 100644 index 0000000..3e04615 --- /dev/null +++ b/packages/typegen/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/*.spec.ts" + ], + "references": [ + { "path": "../typegen/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" } + ] +} diff --git a/packages/types-augment/README.md b/packages/types-augment/README.md new file mode 100644 index 0000000..817d224 --- /dev/null +++ b/packages/types-augment/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/types-augment + +Generated augmentation. diff --git a/packages/types-augment/package.json b/packages/types-augment/package.json new file mode 100644 index 0000000..544ae6a --- /dev/null +++ b/packages/types-augment/package.json @@ -0,0 +1,29 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Types generated augmentation", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/types-augment#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/types-augment", + "repository": { + "directory": "packages/types-augment", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "tslib": "^2.8.1" + } +} diff --git a/packages/types-augment/src/augment.ts b/packages/types-augment/src/augment.ts new file mode 100644 index 0000000..2e72f81 --- /dev/null +++ b/packages/types-augment/src/augment.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './registry/index.js'; +import './lookup/index.js'; diff --git a/packages/types-augment/src/bundle.ts b/packages/types-augment/src/bundle.ts new file mode 100644 index 0000000..f942501 --- /dev/null +++ b/packages/types-augment/src/bundle.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './augment.js'; + +export { packageInfo } from './packageInfo.js'; diff --git a/packages/types-augment/src/index.ts b/packages/types-augment/src/index.ts new file mode 100644 index 0000000..454ff6d --- /dev/null +++ b/packages/types-augment/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/types-augment/src/lookup/assetHubDicle.ts b/packages/types-augment/src/lookup/assetHubDicle.ts new file mode 100644 index 0000000..634bcc0 --- /dev/null +++ b/packages/types-augment/src/lookup/assetHubDicle.ts @@ -0,0 +1,1165 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +/* eslint-disable sort-keys */ + +export default { + /** + * Lookup32: asset_hub_kusama_runtime::RuntimeTask + **/ + AssetHubDicleRuntimeRuntimeTask: 'Null', + /** + * Lookup43: asset_hub_kusama_runtime::RuntimeParametersKey + **/ + AssetHubDicleRuntimeRuntimeParametersKey: { + _enum: { + Issuance: 'AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey', + Treasury: 'AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey', + StakingElection: 'AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey', + Scheduler: 'AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey', + MessageQueue: 'AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey' + } + }, + /** + * Lookup44: asset_hub_kusama_runtime::dynamic_params::issuance::ParametersKey + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey: { + _enum: ['MinInflation', 'MaxInflation', 'IdealStake', 'Falloff'] + }, + /** + * Lookup45: asset_hub_kusama_runtime::dynamic_params::issuance::MinInflation + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation: 'Null', + /** + * Lookup46: asset_hub_kusama_runtime::dynamic_params::issuance::MaxInflation + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation: 'Null', + /** + * Lookup47: asset_hub_kusama_runtime::dynamic_params::issuance::IdealStake + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake: 'Null', + /** + * Lookup48: asset_hub_kusama_runtime::dynamic_params::issuance::Falloff + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceFalloff: 'Null', + /** + * Lookup49: asset_hub_kusama_runtime::dynamic_params::treasury::ParametersKey + **/ + AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey: { + _enum: ['BurnPortion', 'BurnDestination'] + }, + /** + * Lookup50: asset_hub_kusama_runtime::dynamic_params::treasury::BurnPortion + **/ + AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion: 'Null', + /** + * Lookup51: asset_hub_kusama_runtime::dynamic_params::treasury::BurnDestination + **/ + AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination: 'Null', + /** + * Lookup52: asset_hub_kusama_runtime::dynamic_params::staking_election::ParametersKey + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey: { + _enum: ['SignedPhase', 'MaxSignedSubmissions', 'UnsignedPhase', 'MinerPages', 'MaxElectingVoters', 'TargetSnapshotPerBlock', 'MaxEraDuration'] + }, + /** + * Lookup53: asset_hub_kusama_runtime::dynamic_params::staking_election::SignedPhase + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase: 'Null', + /** + * Lookup54: asset_hub_kusama_runtime::dynamic_params::staking_election::MaxSignedSubmissions + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions: 'Null', + /** + * Lookup55: asset_hub_kusama_runtime::dynamic_params::staking_election::UnsignedPhase + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase: 'Null', + /** + * Lookup56: asset_hub_kusama_runtime::dynamic_params::staking_election::MinerPages + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages: 'Null', + /** + * Lookup57: asset_hub_kusama_runtime::dynamic_params::staking_election::MaxElectingVoters + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters: 'Null', + /** + * Lookup58: asset_hub_kusama_runtime::dynamic_params::staking_election::TargetSnapshotPerBlock + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock: 'Null', + /** + * Lookup59: asset_hub_kusama_runtime::dynamic_params::staking_election::MaxEraDuration + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration: 'Null', + /** + * Lookup60: asset_hub_kusama_runtime::dynamic_params::scheduler::ParametersKey + **/ + AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey: { + _enum: ['MaxScheduledPerBlock', 'MaximumWeight'] + }, + /** + * Lookup61: asset_hub_kusama_runtime::dynamic_params::scheduler::MaxScheduledPerBlock + **/ + AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock: 'Null', + /** + * Lookup62: asset_hub_kusama_runtime::dynamic_params::scheduler::MaximumWeight + **/ + AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight: 'Null', + /** + * Lookup63: asset_hub_kusama_runtime::dynamic_params::message_queue::ParametersKey + **/ + AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey: { + _enum: ['MaxOnInitWeight', 'MaxOnIdleWeight'] + }, + /** + * Lookup64: asset_hub_kusama_runtime::dynamic_params::message_queue::MaxOnInitWeight + **/ + AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight: 'Null', + /** + * Lookup65: asset_hub_kusama_runtime::dynamic_params::message_queue::MaxOnIdleWeight + **/ + AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight: 'Null', + /** + * Lookup67: asset_hub_kusama_runtime::RuntimeParametersValue + **/ + AssetHubDicleRuntimeRuntimeParametersValue: { + _enum: { + Issuance: 'AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue', + Treasury: 'AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue', + StakingElection: 'AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue', + Scheduler: 'AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue', + MessageQueue: 'AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue' + } + }, + /** + * Lookup68: asset_hub_kusama_runtime::dynamic_params::issuance::ParametersValue + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue: { + _enum: { + MinInflation: 'Perquintill', + MaxInflation: 'Perquintill', + IdealStake: 'Perquintill', + Falloff: 'Perquintill' + } + }, + /** + * Lookup70: asset_hub_kusama_runtime::dynamic_params::treasury::ParametersValue + **/ + AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue: { + _enum: { + BurnPortion: 'Permill', + BurnDestination: 'AssetHubDicleRuntimeTreasuryBurnDestinationAccount' + } + }, + /** + * Lookup72: asset_hub_kusama_runtime::treasury::BurnDestinationAccount + **/ + AssetHubDicleRuntimeTreasuryBurnDestinationAccount: 'Option', + /** + * Lookup74: asset_hub_kusama_runtime::dynamic_params::staking_election::ParametersValue + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue: { + _enum: { + SignedPhase: 'u32', + MaxSignedSubmissions: 'u32', + UnsignedPhase: 'u32', + MinerPages: 'u32', + MaxElectingVoters: 'u32', + TargetSnapshotPerBlock: 'u32', + MaxEraDuration: 'u64' + } + }, + /** + * Lookup75: asset_hub_kusama_runtime::dynamic_params::scheduler::ParametersValue + **/ + AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue: { + _enum: { + MaxScheduledPerBlock: 'u32', + MaximumWeight: 'PezspWeightsWeightV2Weight' + } + }, + /** + * Lookup76: asset_hub_kusama_runtime::dynamic_params::message_queue::ParametersValue + **/ + AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue: { + _enum: { + MaxOnInitWeight: 'Option', + MaxOnIdleWeight: 'Option' + } + }, + /** + * Lookup193: asset_hub_kusama_runtime::ProxyType + **/ + AssetHubDicleRuntimeProxyType: { + _enum: ['Any', 'NonTransfer', 'CancelProxy', 'Assets', 'AssetOwner', 'AssetManager', 'Collator', 'Governance', 'Staking', 'NominationPools', 'Auction', 'ParaRegistration', 'Society', 'Spokesperson'] + }, + /** + * Lookup220: asset_hub_kusama_runtime::Runtime + **/ + AssetHubDicleRuntimeRuntime: 'Null', + /** + * Lookup308: asset_hub_kusama_runtime::RuntimeParameters + **/ + AssetHubDicleRuntimeRuntimeParameters: { + _enum: { + Issuance: 'AssetHubDicleRuntimeDynamicParamsIssuanceParameters', + Treasury: 'AssetHubDicleRuntimeDynamicParamsTreasuryParameters', + StakingElection: 'AssetHubDicleRuntimeDynamicParamsStakingElectionParameters', + Scheduler: 'AssetHubDicleRuntimeDynamicParamsSchedulerParameters', + MessageQueue: 'AssetHubDicleRuntimeDynamicParamsMessageQueueParameters' + } + }, + /** + * Lookup309: asset_hub_kusama_runtime::dynamic_params::issuance::Parameters + **/ + AssetHubDicleRuntimeDynamicParamsIssuanceParameters: { + _enum: { + MinInflation: '(AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation,Option)', + MaxInflation: '(AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation,Option)', + IdealStake: '(AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake,Option)', + Falloff: '(AssetHubDicleRuntimeDynamicParamsIssuanceFalloff,Option)' + } + }, + /** + * Lookup311: asset_hub_kusama_runtime::dynamic_params::treasury::Parameters + **/ + AssetHubDicleRuntimeDynamicParamsTreasuryParameters: { + _enum: { + BurnPortion: '(AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion,Option)', + BurnDestination: '(AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination,Option)' + } + }, + /** + * Lookup314: asset_hub_kusama_runtime::dynamic_params::staking_election::Parameters + **/ + AssetHubDicleRuntimeDynamicParamsStakingElectionParameters: { + _enum: { + SignedPhase: '(AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase,Option)', + MaxSignedSubmissions: '(AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions,Option)', + UnsignedPhase: '(AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase,Option)', + MinerPages: '(AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages,Option)', + MaxElectingVoters: '(AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters,Option)', + TargetSnapshotPerBlock: '(AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock,Option)', + MaxEraDuration: '(AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration,Option)' + } + }, + /** + * Lookup315: asset_hub_kusama_runtime::dynamic_params::scheduler::Parameters + **/ + AssetHubDicleRuntimeDynamicParamsSchedulerParameters: { + _enum: { + MaxScheduledPerBlock: '(AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock,Option)', + MaximumWeight: '(AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight,Option)' + } + }, + /** + * Lookup316: asset_hub_kusama_runtime::dynamic_params::message_queue::Parameters + **/ + AssetHubDicleRuntimeDynamicParamsMessageQueueParameters: { + _enum: { + MaxOnInitWeight: '(AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight,Option>)', + MaxOnIdleWeight: '(AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight,Option>)' + } + }, + /** + * Lookup333: asset_hub_kusama_runtime::SessionKeys + **/ + AssetHubDicleRuntimeSessionKeys: { + aura: 'PezspConsensusAuraSr25519AppSr25519Public' + }, + /** + * Lookup334: sp_consensus_aura::sr25519::app_sr25519::Public + **/ + PezspConsensusAuraSr25519AppSr25519Public: '[u8;32]', + /** + * Lookup385: asset_hub_kusama_runtime::OriginCaller + **/ + AssetHubDicleRuntimeOriginCaller: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + PolkadotXcm: 'PezpalletXcmOrigin', + CumulusXcm: 'PezcumulusPezpalletXcmOrigin', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + Origins: 'AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin' + } + }, + /** + * Lookup389: asset_hub_kusama_runtime::governance::origins::pallet_custom_origins::Origin + **/ + AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: { + _enum: ['StakingAdmin', 'Treasurer', 'FellowshipAdmin', 'GeneralAdmin', 'AuctionAdmin', 'LeaseAdmin', 'ReferendumCanceller', 'ReferendumKiller', 'SmallTipper', 'BigTipper', 'SmallSpender', 'MediumSpender', 'BigSpender', 'WhitelistedCaller', 'FellowshipInitiates', 'Fellows', 'FellowshipExperts', 'FellowshipMasters', 'Fellowship1Dan', 'Fellowship2Dan', 'Fellowship3Dan', 'Fellowship4Dan', 'Fellowship5Dan', 'Fellowship6Dan', 'Fellowship7Dan', 'Fellowship8Dan', 'Fellowship9Dan', 'WishForChange'] + }, + /** + * Lookup394: pallet_remote_proxy::pallet::Call + **/ + PezpalletRemoteProxyCall: { + _enum: { + remote_proxy: { + real: 'MultiAddress', + forceProxyType: 'Option', + call: 'RuntimeCall', + proof: 'PezpalletRemoteProxyRemoteProxyProof', + }, + register_remote_proxy_proof: { + proof: 'PezpalletRemoteProxyRemoteProxyProof', + }, + remote_proxy_with_registered_proof: { + real: 'MultiAddress', + forceProxyType: 'Option', + call: 'RuntimeCall' + } + } + }, + /** + * Lookup395: pallet_remote_proxy::pallet::RemoteProxyProof + **/ + PezpalletRemoteProxyRemoteProxyProof: { + _enum: { + RelayChain: { + proof: 'Vec', + block: 'u32' + } + } + }, + /** + * Lookup466: asset_hub_kusama_runtime::staking::NposCompactSolution24 + **/ + AssetHubDicleRuntimeStakingNposCompactSolution24: { + votes1: 'Vec<(Compact,Compact)>', + votes2: 'Vec<(Compact,(Compact,Compact),Compact)>', + votes3: 'Vec<(Compact,[(Compact,Compact);2],Compact)>', + votes4: 'Vec<(Compact,[(Compact,Compact);3],Compact)>', + votes5: 'Vec<(Compact,[(Compact,Compact);4],Compact)>', + votes6: 'Vec<(Compact,[(Compact,Compact);5],Compact)>', + votes7: 'Vec<(Compact,[(Compact,Compact);6],Compact)>', + votes8: 'Vec<(Compact,[(Compact,Compact);7],Compact)>', + votes9: 'Vec<(Compact,[(Compact,Compact);8],Compact)>', + votes10: 'Vec<(Compact,[(Compact,Compact);9],Compact)>', + votes11: 'Vec<(Compact,[(Compact,Compact);10],Compact)>', + votes12: 'Vec<(Compact,[(Compact,Compact);11],Compact)>', + votes13: 'Vec<(Compact,[(Compact,Compact);12],Compact)>', + votes14: 'Vec<(Compact,[(Compact,Compact);13],Compact)>', + votes15: 'Vec<(Compact,[(Compact,Compact);14],Compact)>', + votes16: 'Vec<(Compact,[(Compact,Compact);15],Compact)>', + votes17: 'Vec<(Compact,[(Compact,Compact);16],Compact)>', + votes18: 'Vec<(Compact,[(Compact,Compact);17],Compact)>', + votes19: 'Vec<(Compact,[(Compact,Compact);18],Compact)>', + votes20: 'Vec<(Compact,[(Compact,Compact);19],Compact)>', + votes21: 'Vec<(Compact,[(Compact,Compact);20],Compact)>', + votes22: 'Vec<(Compact,[(Compact,Compact);21],Compact)>', + votes23: 'Vec<(Compact,[(Compact,Compact);22],Compact)>', + votes24: 'Vec<(Compact,[(Compact,Compact);23],Compact)>' + }, + /** + * Lookup598: pallet_proxy::ProxyDefinition + **/ + PezpalletProxyProxyDefinitionDicleRuntimeConstantsProxyProxyType: { + delegate: 'AccountId32', + proxyType: 'DicleRuntimeConstantsProxyProxyType', + delay: 'u32' + }, + /** + * Lookup650: asset_hub_kusama_runtime::ah_migration::RcPalletsOrigin + **/ + AssetHubDicleRuntimeAhMigrationRcPalletsOrigin: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + Origins: 'AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin' + } + }, + /** + * Lookup746: pallet_rc_migrator::recovery::PortableRecoveryMessage + **/ + PezpalletRcMigratorRecoveryPortableRecoveryMessage: { + _enum: { + Recoverable: '(AccountId32,PezpalletRcMigratorRecoveryPortableRecoveryConfig)', + ActiveRecoveries: '(AccountId32,AccountId32,PezpalletRcMigratorRecoveryPortableActiveRecovery)', + Proxy: '(AccountId32,AccountId32)' + } + }, + /** + * Lookup748: pallet_rc_migrator::recovery::PortableRecoveryConfig + **/ + PezpalletRcMigratorRecoveryPortableRecoveryConfig: { + delayPeriod: 'u32', + deposit: 'u128', + friends: 'PezpalletRcMigratorRecoveryPortableRecoveryFriends', + threshold: 'u16' + }, + /** + * Lookup749: pallet_rc_migrator::recovery::PortableRecoveryFriends + **/ + PezpalletRcMigratorRecoveryPortableRecoveryFriends: { + friends: 'Vec' + }, + /** + * Lookup752: pallet_rc_migrator::recovery::PortableActiveRecovery + **/ + PezpalletRcMigratorRecoveryPortableActiveRecovery: { + created: 'u32', + deposit: 'u128', + friends: 'PezpalletRcMigratorRecoveryPortableRecoveryFriends' + }, + /** + * Lookup755: pallet_rc_migrator::society::PortableSocietyMessage + **/ + PezpalletRcMigratorSocietyPortableSocietyMessage: { + _enum: { + Values: 'PezpalletRcMigratorSocietySocietyValues', + Member: '(AccountId32,PezpalletRcMigratorSocietyPortableMemberRecord)', + Payout: '(AccountId32,PezpalletRcMigratorSocietyPortablePayoutRecord)', + MemberByIndex: '(u32,AccountId32)', + SuspendedMembers: '(AccountId32,PezpalletRcMigratorSocietyPortableMemberRecord)', + Candidates: '(AccountId32,PezpalletRcMigratorSocietyPortableCandidacy)', + Votes: '(AccountId32,AccountId32,PezpalletRcMigratorSocietyPortableVote)', + VoteClearCursor: '(AccountId32,Bytes)', + DefenderVotes: '(u32,AccountId32,PezpalletRcMigratorSocietyPortableVote)' + } + }, + /** + * Lookup756: pallet_rc_migrator::society::SocietyValues + **/ + PezpalletRcMigratorSocietySocietyValues: { + parameters: 'Option', + pot: 'Option', + founder: 'Option', + head: 'Option', + rules: 'Option', + memberCount: 'Option', + roundCount: 'Option', + bids: 'Option>', + sceptic: 'Option', + nextHead: 'Option', + challengeRoundCount: 'Option', + defending: 'Option<(AccountId32,AccountId32,PezpalletRcMigratorSocietyPortableTally)>', + nextIntakeAt: 'Option', + nextChallengeAt: 'Option' + }, + /** + * Lookup758: pallet_rc_migrator::society::PortableGroupParams + **/ + PezpalletRcMigratorSocietyPortableGroupParams: { + maxMembers: 'u32', + maxIntake: 'u32', + maxStrikes: 'u32', + candidateDeposit: 'u128' + }, + /** + * Lookup761: pallet_rc_migrator::society::PortableBid + **/ + PezpalletRcMigratorSocietyPortableBid: { + who: 'AccountId32', + kind: 'PezpalletRcMigratorSocietyPortableBidKind', + value: 'u128' + }, + /** + * Lookup762: pallet_rc_migrator::society::PortableBidKind + **/ + PezpalletRcMigratorSocietyPortableBidKind: { + _enum: { + Deposit: 'u128', + Vouch: '(AccountId32,u128)' + } + }, + /** + * Lookup764: pallet_rc_migrator::society::PortableIntakeRecord + **/ + PezpalletRcMigratorSocietyPortableIntakeRecord: { + who: 'AccountId32', + bid: 'u128', + round: 'u32' + }, + /** + * Lookup767: pallet_rc_migrator::society::PortableTally + **/ + PezpalletRcMigratorSocietyPortableTally: { + approvals: 'u32', + rejections: 'u32' + }, + /** + * Lookup768: pallet_rc_migrator::society::PortableMemberRecord + **/ + PezpalletRcMigratorSocietyPortableMemberRecord: { + rank: 'u32', + strikes: 'u32', + vouching: 'Option', + index: 'u32' + }, + /** + * Lookup770: pallet_rc_migrator::society::PortableVouchingStatus + **/ + PezpalletRcMigratorSocietyPortableVouchingStatus: { + _enum: ['Vouching', 'Banned'] + }, + /** + * Lookup771: pallet_rc_migrator::society::PortablePayoutRecord + **/ + PezpalletRcMigratorSocietyPortablePayoutRecord: { + paid: 'u128', + payouts: 'Vec<(u32,u128)>' + }, + /** + * Lookup772: pallet_rc_migrator::society::PortableCandidacy + **/ + PezpalletRcMigratorSocietyPortableCandidacy: { + round: 'u32', + kind: 'PezpalletRcMigratorSocietyPortableBidKind', + bid: 'u128', + tally: 'PezpalletRcMigratorSocietyPortableTally', + skepticStruck: 'bool' + }, + /** + * Lookup773: pallet_rc_migrator::society::PortableVote + **/ + PezpalletRcMigratorSocietyPortableVote: { + approve: 'bool', + weight: 'u32' + }, + /** + * Lookup853: asset_hub_kusama_runtime::RuntimeHoldReason + **/ + AssetHubDicleRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + Preimage: 'PezpalletPreimageHoldReason', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + Session: 'PezpalletSessionHoldReason', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + PolkadotXcm: 'PezpalletXcmHoldReason', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + NftFractionalization: 'PezpalletNftFractionalizationHoldReason', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + Revive: 'PezpalletReviveHoldReason', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationHoldReason', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingHoldReason', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + MultiBlockElectionSigned: 'PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason', + Staking: 'PezpalletStakingAsyncPezpalletHoldReason' + } + }, + /** + * Lookup861: asset_hub_kusama_runtime::RuntimeFreezeReason + **/ + AssetHubDicleRuntimeRuntimeFreezeReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + NominationPools: 'PezpalletNominationPoolsFreezeReason' + } + }, + /** + * Lookup939: pallet_proxy::ProxyDefinition + **/ + PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType: { + delegate: 'AccountId32', + proxyType: 'AssetHubDicleRuntimeProxyType', + delay: 'u32' + }, + /** + * Lookup947: pallet_remote_proxy::pallet::Error + **/ + PezpalletRemoteProxyError: { + _enum: ['CouldNotConvertLocalToRemoteAccountId', 'UnknownProofAnchorBlock', 'InvalidProof', 'ProxyDefinitionDecodingFailed', 'Unannounced', 'DidNotFindMatchingProxyDefinition', 'ProxyProofNotRegistered'] + }, + /** + * Lookup1023: pallet_revive::vm::CodeInfo + **/ + PezpalletReviveVmCodeInfo: { + owner: 'AccountId32', + deposit: 'Compact', + refcount: 'Compact', + codeLen: 'u32', + behaviourVersion: 'u32' + }, + /** + * Lookup1024: pallet_revive::storage::AccountInfo + **/ + PezpalletReviveStorageAccountInfo: { + accountType: 'PezpalletReviveStorageAccountType', + dust: 'u32' + }, + /** + * Lookup1025: pallet_revive::storage::AccountType + **/ + PezpalletReviveStorageAccountType: { + _enum: { + Contract: 'PezpalletReviveStorageContractInfo', + EOA: 'Null' + } + }, + /** + * Lookup1233: pallet_revive::evm::api::debug_rpc_types::PrestateTracerConfig + **/ + PezpalletReviveEvmApiDebugRpcTypesPrestateTracerConfig: { + diffMode: 'bool', + disableStorage: 'bool', + disableCode: 'bool' + }, + /** + * Lookup1242: pallet_revive::evm::api::debug_rpc_types::PrestateTrace + **/ + PezpalletReviveEvmApiDebugRpcTypesPrestateTrace: { + _enum: { + Prestate: 'BTreeMap', + DiffMode: { + pre: 'BTreeMap', + post: 'BTreeMap' + } + } + }, + /** + * Lookup1244: pallet_revive::evm::api::debug_rpc_types::PrestateTraceInfo + **/ + PezpalletReviveEvmApiDebugRpcTypesPrestateTraceInfo: { + balance: 'Option', + nonce: 'Option', + code: 'Option', + storage: 'BTreeMap>' + }, + /** + * Lookup1252: asset_hub_kusama_runtime::RuntimeError + **/ + AssetHubDicleRuntimeRuntimeError: { + _enum: { + System: 'PezframeSystemError', + ParachainSystem: 'PezcumulusPezpalletTeyrchainSystemError', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + MultiBlockMigrations: 'PezpalletMigrationsError', + Preimage: 'PezpalletPreimageError', + Scheduler: 'PezpalletSchedulerError', + __Unused8: 'Null', + __Unused9: 'Null', + Balances: 'PezpalletBalancesError', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + Vesting: 'PezpalletVestingError', + Claims: 'PezkuwiRuntimeCommonClaimsPezpalletError', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + CollatorSelection: 'PezpalletCollatorSelectionError', + Session: 'PezpalletSessionError', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + XcmpQueue: 'PezcumulusPezpalletXcmpQueueError', + PolkadotXcm: 'PezpalletXcmError', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + MessageQueue: 'PezpalletMessageQueueError', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + Utility: 'PezpalletUtilityError', + Multisig: 'PezpalletMultisigError', + Proxy: 'PezpalletProxyError', + RemoteProxyRelayChain: 'PezpalletRemoteProxyError', + Indices: 'PezpalletIndicesError', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + Assets: 'PezpalletAssetsError', + Uniques: 'PezpalletUniquesError', + Nfts: 'PezpalletNftsError', + ForeignAssets: 'PezpalletAssetsError', + NftFractionalization: 'PezpalletNftFractionalizationError', + PoolAssets: 'PezpalletAssetsError', + AssetConversion: 'PezpalletAssetConversionError', + Recovery: 'PezpalletRecoveryError', + Society: 'PezpalletSocietyError', + __Unused59: 'Null', + Revive: 'PezpalletReviveError', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationError', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + NominationPools: 'PezpalletNominationPoolsError', + __Unused81: 'Null', + VoterList: 'PezpalletBagsListError', + DelegatedStaking: 'PezpalletDelegatedStakingError', + __Unused84: 'Null', + MultiBlockElection: 'PezpalletElectionProviderMultiBlockError', + __Unused86: 'Null', + __Unused87: 'Null', + MultiBlockElectionSigned: 'PezpalletElectionProviderMultiBlockSignedPezpalletError', + Staking: 'PezpalletStakingAsyncPezpalletError', + Treasury: 'PezpalletTreasuryError', + ConvictionVoting: 'PezpalletConvictionVotingError', + Referenda: 'PezpalletReferendaError', + __Unused93: 'Null', + Whitelist: 'PezpalletWhitelistError', + Bounties: 'PezpalletBountiesError', + ChildBounties: 'PezpalletChildBountiesError', + AssetRate: 'PezpalletAssetRateError', + __Unused98: 'Null', + __Unused99: 'Null', + __Unused100: 'Null', + __Unused101: 'Null', + __Unused102: 'Null', + __Unused103: 'Null', + __Unused104: 'Null', + __Unused105: 'Null', + __Unused106: 'Null', + __Unused107: 'Null', + __Unused108: 'Null', + __Unused109: 'Null', + __Unused110: 'Null', + __Unused111: 'Null', + __Unused112: 'Null', + __Unused113: 'Null', + __Unused114: 'Null', + __Unused115: 'Null', + __Unused116: 'Null', + __Unused117: 'Null', + __Unused118: 'Null', + __Unused119: 'Null', + __Unused120: 'Null', + __Unused121: 'Null', + __Unused122: 'Null', + __Unused123: 'Null', + __Unused124: 'Null', + __Unused125: 'Null', + __Unused126: 'Null', + __Unused127: 'Null', + __Unused128: 'Null', + __Unused129: 'Null', + __Unused130: 'Null', + __Unused131: 'Null', + __Unused132: 'Null', + __Unused133: 'Null', + __Unused134: 'Null', + __Unused135: 'Null', + __Unused136: 'Null', + __Unused137: 'Null', + __Unused138: 'Null', + __Unused139: 'Null', + __Unused140: 'Null', + __Unused141: 'Null', + __Unused142: 'Null', + __Unused143: 'Null', + __Unused144: 'Null', + __Unused145: 'Null', + __Unused146: 'Null', + __Unused147: 'Null', + __Unused148: 'Null', + __Unused149: 'Null', + __Unused150: 'Null', + __Unused151: 'Null', + __Unused152: 'Null', + __Unused153: 'Null', + __Unused154: 'Null', + __Unused155: 'Null', + __Unused156: 'Null', + __Unused157: 'Null', + __Unused158: 'Null', + __Unused159: 'Null', + __Unused160: 'Null', + __Unused161: 'Null', + __Unused162: 'Null', + __Unused163: 'Null', + __Unused164: 'Null', + __Unused165: 'Null', + __Unused166: 'Null', + __Unused167: 'Null', + __Unused168: 'Null', + __Unused169: 'Null', + __Unused170: 'Null', + __Unused171: 'Null', + __Unused172: 'Null', + __Unused173: 'Null', + __Unused174: 'Null', + __Unused175: 'Null', + __Unused176: 'Null', + __Unused177: 'Null', + __Unused178: 'Null', + __Unused179: 'Null', + __Unused180: 'Null', + __Unused181: 'Null', + __Unused182: 'Null', + __Unused183: 'Null', + __Unused184: 'Null', + __Unused185: 'Null', + __Unused186: 'Null', + __Unused187: 'Null', + __Unused188: 'Null', + __Unused189: 'Null', + __Unused190: 'Null', + __Unused191: 'Null', + __Unused192: 'Null', + __Unused193: 'Null', + __Unused194: 'Null', + __Unused195: 'Null', + __Unused196: 'Null', + __Unused197: 'Null', + __Unused198: 'Null', + __Unused199: 'Null', + __Unused200: 'Null', + __Unused201: 'Null', + __Unused202: 'Null', + __Unused203: 'Null', + __Unused204: 'Null', + __Unused205: 'Null', + __Unused206: 'Null', + __Unused207: 'Null', + __Unused208: 'Null', + __Unused209: 'Null', + __Unused210: 'Null', + __Unused211: 'Null', + __Unused212: 'Null', + __Unused213: 'Null', + __Unused214: 'Null', + __Unused215: 'Null', + __Unused216: 'Null', + __Unused217: 'Null', + __Unused218: 'Null', + __Unused219: 'Null', + __Unused220: 'Null', + __Unused221: 'Null', + __Unused222: 'Null', + __Unused223: 'Null', + __Unused224: 'Null', + __Unused225: 'Null', + __Unused226: 'Null', + __Unused227: 'Null', + __Unused228: 'Null', + __Unused229: 'Null', + __Unused230: 'Null', + __Unused231: 'Null', + __Unused232: 'Null', + __Unused233: 'Null', + __Unused234: 'Null', + __Unused235: 'Null', + __Unused236: 'Null', + __Unused237: 'Null', + __Unused238: 'Null', + __Unused239: 'Null', + __Unused240: 'Null', + __Unused241: 'Null', + __Unused242: 'Null', + __Unused243: 'Null', + __Unused244: 'Null', + __Unused245: 'Null', + __Unused246: 'Null', + __Unused247: 'Null', + __Unused248: 'Null', + __Unused249: 'Null', + __Unused250: 'Null', + __Unused251: 'Null', + __Unused252: 'Null', + __Unused253: 'Null', + AhOps: 'PezpalletAhOpsError', + AhMigrator: 'PezpalletAhMigratorError' + } + } +}; diff --git a/packages/types-augment/src/lookup/assetHubPezkuwi.ts b/packages/types-augment/src/lookup/assetHubPezkuwi.ts new file mode 100644 index 0000000..ebf80d2 --- /dev/null +++ b/packages/types-augment/src/lookup/assetHubPezkuwi.ts @@ -0,0 +1,2980 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +/* eslint-disable sort-keys */ + +export default { + /** + * Lookup32: asset_hub_polkadot_runtime::RuntimeTask + **/ + AssetHubPezkuwiRuntimeRuntimeTask: 'Null', + /** + * Lookup33: cumulus_pallet_parachain_system::pallet::Event + **/ + PezcumulusPezpalletTeyrchainSystemEvent: { + _enum: { + ValidationFunctionStored: 'Null', + ValidationFunctionApplied: { + relayChainBlockNum: 'u32', + }, + ValidationFunctionDiscarded: 'Null', + DownwardMessagesReceived: { + count: 'u32', + }, + DownwardMessagesProcessed: { + weightUsed: 'PezspWeightsWeightV2Weight', + dmqHead: 'H256', + }, + UpwardMessageSent: { + messageHash: 'Option<[u8;32]>' + } + } + }, + /** + * Lookup41: asset_hub_polkadot_runtime::RuntimeParametersKey + **/ + AssetHubPezkuwiRuntimeRuntimeParametersKey: { + _enum: { + StakingElection: 'AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey', + Scheduler: 'AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey', + MessageQueue: 'AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey' + } + }, + /** + * Lookup42: asset_hub_polkadot_runtime::dynamic_params::staking_election::ParametersKey + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey: { + _enum: ['SignedPhase', 'MaxSignedSubmissions', 'UnsignedPhase', 'MinerPages', 'MaxElectingVoters', 'TargetSnapshotPerBlock', 'MaxEraDuration'] + }, + /** + * Lookup43: asset_hub_polkadot_runtime::dynamic_params::staking_election::SignedPhase + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase: 'Null', + /** + * Lookup44: asset_hub_polkadot_runtime::dynamic_params::staking_election::MaxSignedSubmissions + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions: 'Null', + /** + * Lookup45: asset_hub_polkadot_runtime::dynamic_params::staking_election::UnsignedPhase + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase: 'Null', + /** + * Lookup46: asset_hub_polkadot_runtime::dynamic_params::staking_election::MinerPages + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages: 'Null', + /** + * Lookup47: asset_hub_polkadot_runtime::dynamic_params::staking_election::MaxElectingVoters + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters: 'Null', + /** + * Lookup48: asset_hub_polkadot_runtime::dynamic_params::staking_election::TargetSnapshotPerBlock + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock: 'Null', + /** + * Lookup49: asset_hub_polkadot_runtime::dynamic_params::staking_election::MaxEraDuration + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration: 'Null', + /** + * Lookup50: asset_hub_polkadot_runtime::dynamic_params::scheduler::ParametersKey + **/ + AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey: { + _enum: ['MaxScheduledPerBlock', 'MaximumWeight'] + }, + /** + * Lookup51: asset_hub_polkadot_runtime::dynamic_params::scheduler::MaxScheduledPerBlock + **/ + AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock: 'Null', + /** + * Lookup52: asset_hub_polkadot_runtime::dynamic_params::scheduler::MaximumWeight + **/ + AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight: 'Null', + /** + * Lookup53: asset_hub_polkadot_runtime::dynamic_params::message_queue::ParametersKey + **/ + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey: { + _enum: ['MaxOnInitWeight', 'MaxOnIdleWeight'] + }, + /** + * Lookup54: asset_hub_polkadot_runtime::dynamic_params::message_queue::MaxOnInitWeight + **/ + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight: 'Null', + /** + * Lookup55: asset_hub_polkadot_runtime::dynamic_params::message_queue::MaxOnIdleWeight + **/ + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight: 'Null', + /** + * Lookup57: asset_hub_polkadot_runtime::RuntimeParametersValue + **/ + AssetHubPezkuwiRuntimeRuntimeParametersValue: { + _enum: { + StakingElection: 'AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue', + Scheduler: 'AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue', + MessageQueue: 'AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue' + } + }, + /** + * Lookup58: asset_hub_polkadot_runtime::dynamic_params::staking_election::ParametersValue + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue: { + _enum: { + SignedPhase: 'u32', + MaxSignedSubmissions: 'u32', + UnsignedPhase: 'u32', + MinerPages: 'u32', + MaxElectingVoters: 'u32', + TargetSnapshotPerBlock: 'u32', + MaxEraDuration: 'u64' + } + }, + /** + * Lookup59: asset_hub_polkadot_runtime::dynamic_params::scheduler::ParametersValue + **/ + AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue: { + _enum: { + MaxScheduledPerBlock: 'u32', + MaximumWeight: 'PezspWeightsWeightV2Weight' + } + }, + /** + * Lookup60: asset_hub_polkadot_runtime::dynamic_params::message_queue::ParametersValue + **/ + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue: { + _enum: { + MaxOnInitWeight: 'Option', + MaxOnIdleWeight: 'Option' + } + }, + /** + * Lookup88: pallet_collator_selection::pallet::Event + **/ + PezpalletCollatorSelectionEvent: { + _enum: { + NewInvulnerables: { + invulnerables: 'Vec', + }, + InvulnerableAdded: { + accountId: 'AccountId32', + }, + InvulnerableRemoved: { + accountId: 'AccountId32', + }, + NewDesiredCandidates: { + desiredCandidates: 'u32', + }, + NewCandidacyBond: { + bondAmount: 'u128', + }, + CandidateAdded: { + accountId: 'AccountId32', + deposit: 'u128', + }, + CandidateBondUpdated: { + accountId: 'AccountId32', + deposit: 'u128', + }, + CandidateRemoved: { + accountId: 'AccountId32', + }, + CandidateReplaced: { + _alias: { + new_: 'new', + }, + old: 'AccountId32', + new_: 'AccountId32', + deposit: 'u128', + }, + InvalidInvulnerableSkipped: { + accountId: 'AccountId32' + } + } + }, + /** + * Lookup91: cumulus_pallet_xcmp_queue::pallet::Event + **/ + PezcumulusPezpalletXcmpQueueEvent: { + _enum: { + XcmpMessageSent: { + messageHash: '[u8;32]' + } + } + }, + /** + * Lookup166: cumulus_pallet_xcm::pallet::Event + **/ + PezcumulusPezpalletXcmEvent: { + _enum: { + InvalidFormat: '[u8;32]', + UnsupportedVersion: '[u8;32]', + ExecutedDownward: '([u8;32],StagingXcmV5TraitsOutcome)' + } + }, + /** + * Lookup167: pallet_xcm_bridge_hub_router::pallet::Event + **/ + PezpalletXcmBridgeHubRouterEvent: { + _enum: { + DeliveryFeeFactorDecreased: { + newValue: 'u128', + }, + DeliveryFeeFactorIncreased: { + newValue: 'u128' + } + } + }, + /** + * Lookup170: cumulus_primitives_core::AggregateMessageOrigin + **/ + PezcumulusPrimitivesCoreAggregateMessageOrigin: { + _enum: { + Here: 'Null', + Parent: 'Null', + Sibling: 'u32' + } + }, + /** + * Lookup173: snowbridge_pallet_system_frontend::pallet::Event + **/ + SnowbridgePezpalletSystemFrontendEvent: { + _enum: { + MessageSent: { + origin: 'StagingXcmV5Location', + destination: 'StagingXcmV5Location', + message: 'StagingXcmV5Xcm', + messageId: '[u8;32]', + }, + ExportOperatingModeChanged: { + mode: 'SnowbridgeCoreOperatingModeBasicOperatingMode' + } + } + }, + /** + * Lookup174: snowbridge_core::operating_mode::BasicOperatingMode + **/ + SnowbridgeCoreOperatingModeBasicOperatingMode: { + _enum: ['Normal', 'Halted'] + }, + /** + * Lookup179: asset_hub_polkadot_runtime::ProxyType + **/ + AssetHubPezkuwiRuntimeProxyType: { + _enum: ['Any', 'NonTransfer', 'CancelProxy', 'Assets', 'AssetOwner', 'AssetManager', 'Collator', 'Governance', 'Staking', 'NominationPools', 'Auction', 'ParaRegistration'] + }, + /** + * Lookup207: parachains_common::pay::VersionedLocatableAccount + **/ + TeyrchainsCommonPayVersionedLocatableAccount: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + V4: { + location: 'StagingXcmV4Location', + accountId: 'StagingXcmV4Location', + }, + V5: { + location: 'StagingXcmV5Location', + accountId: 'StagingXcmV5Location' + } + } + }, + /** + * Lookup218: cumulus_pallet_parachain_system::pallet::Call + **/ + PezcumulusPezpalletTeyrchainSystemCall: { + _enum: { + set_validation_data: { + data: 'PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData', + inboundMessagesData: 'PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData', + }, + sudo_send_upward_message: { + message: 'Bytes' + } + } + }, + /** + * Lookup219: cumulus_pallet_parachain_system::parachain_inherent::BasicParachainInherentData + **/ + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData: { + validationData: 'PezkuwiPrimitivesV8PersistedValidationData', + relayChainState: 'PezspTrieStorageProof', + relayParentDescendants: 'Vec', + collatorPeerId: 'Option' + }, + /** + * Lookup222: sp_trie::storage_proof::StorageProof + **/ + PezspTrieStorageProof: { + trieNodes: 'BTreeSet' + }, + /** + * Lookup227: cumulus_pallet_parachain_system::parachain_inherent::InboundMessagesData + **/ + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData: { + downwardMessages: { + fullMessages: 'Vec', + hashedMessages: 'Vec' + }, + horizontalMessages: 'PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection' + }, + /** + * Lookup232: cumulus_primitives_parachain_inherent::HashedMessage + **/ + PezcumulusPrimitivesTeyrchainInherentHashedMessage: { + sentAt: 'u32', + msgHash: 'H256' + }, + /** + * Lookup233: cumulus_pallet_parachain_system::parachain_inherent::AbridgedInboundMessagesCollection + **/ + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection: { + fullMessages: 'Vec<(u32,PezkuwiCorePrimitivesInboundHrmpMessage)>', + hashedMessages: 'Vec<(u32,PezcumulusPrimitivesTeyrchainInherentHashedMessage)>' + }, + /** + * Lookup240: staging_parachain_info::pallet::Call + **/ + StagingTeyrchainInfoCall: 'Null', + /** + * Lookup246: asset_hub_polkadot_runtime::RuntimeParameters + **/ + AssetHubPezkuwiRuntimeRuntimeParameters: { + _enum: { + StakingElection: 'AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters', + Scheduler: 'AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters', + MessageQueue: 'AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters' + } + }, + /** + * Lookup247: asset_hub_polkadot_runtime::dynamic_params::staking_election::Parameters + **/ + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters: { + _enum: { + SignedPhase: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase,Option)', + MaxSignedSubmissions: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions,Option)', + UnsignedPhase: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase,Option)', + MinerPages: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages,Option)', + MaxElectingVoters: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters,Option)', + TargetSnapshotPerBlock: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock,Option)', + MaxEraDuration: '(AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration,Option)' + } + }, + /** + * Lookup248: asset_hub_polkadot_runtime::dynamic_params::scheduler::Parameters + **/ + AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters: { + _enum: { + MaxScheduledPerBlock: '(AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock,Option)', + MaximumWeight: '(AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight,Option)' + } + }, + /** + * Lookup249: asset_hub_polkadot_runtime::dynamic_params::message_queue::Parameters + **/ + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters: { + _enum: { + MaxOnInitWeight: '(AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight,Option>)', + MaxOnIdleWeight: '(AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight,Option>)' + } + }, + /** + * Lookup264: pallet_collator_selection::pallet::Call + **/ + PezpalletCollatorSelectionCall: { + _enum: { + set_invulnerables: { + _alias: { + new_: 'new', + }, + new_: 'Vec', + }, + set_desired_candidates: { + max: 'u32', + }, + set_candidacy_bond: { + bond: 'u128', + }, + register_as_candidate: 'Null', + leave_intent: 'Null', + add_invulnerable: { + who: 'AccountId32', + }, + remove_invulnerable: { + who: 'AccountId32', + }, + update_bond: { + newDeposit: 'u128', + }, + take_candidate_slot: { + deposit: 'u128', + target: 'AccountId32' + } + } + }, + /** + * Lookup266: asset_hub_polkadot_runtime::SessionKeys + **/ + AssetHubPezkuwiRuntimeSessionKeys: { + aura: 'PezspConsensusAuraEd25519AppEd25519Public' + }, + /** + * Lookup267: sp_consensus_aura::ed25519::app_ed25519::Public + **/ + PezspConsensusAuraEd25519AppEd25519Public: '[u8;32]', + /** + * Lookup268: cumulus_pallet_xcmp_queue::pallet::Call + **/ + PezcumulusPezpalletXcmpQueueCall: { + _enum: { + __Unused0: 'Null', + suspend_xcm_execution: 'Null', + resume_xcm_execution: 'Null', + update_suspend_threshold: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + update_drop_threshold: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + update_resume_threshold: { + _alias: { + new_: 'new', + }, + new_: 'u32' + } + } + }, + /** + * Lookup313: cumulus_pallet_xcm::pallet::Call + **/ + PezcumulusPezpalletXcmCall: 'Null', + /** + * Lookup314: pallet_xcm_bridge_hub_router::pallet::Call + **/ + PezpalletXcmBridgeHubRouterCall: { + _enum: { + report_bridge_status: { + bridgeId: 'H256', + isCongested: 'bool' + } + } + }, + /** + * Lookup316: snowbridge_pallet_system_frontend::pallet::Call + **/ + SnowbridgePezpalletSystemFrontendCall: { + _enum: { + set_operating_mode: { + mode: 'SnowbridgeCoreOperatingModeBasicOperatingMode', + }, + register_token: { + assetId: 'XcmVersionedLocation', + metadata: 'SnowbridgeCoreAssetMetadata', + feeAsset: 'StagingXcmV5Asset', + }, + add_tip: { + messageId: 'SnowbridgeCoreRewardMessageId', + asset: 'StagingXcmV5Asset' + } + } + }, + /** + * Lookup317: snowbridge_core::AssetMetadata + **/ + SnowbridgeCoreAssetMetadata: { + name: 'Bytes', + symbol: 'Bytes', + decimals: 'u8' + }, + /** + * Lookup318: snowbridge_core::reward::MessageId + **/ + SnowbridgeCoreRewardMessageId: { + _enum: { + Inbound: 'u64', + Outbound: 'u64' + } + }, + /** + * Lookup321: asset_hub_polkadot_runtime::OriginCaller + **/ + AssetHubPezkuwiRuntimeOriginCaller: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + PolkadotXcm: 'PezpalletXcmOrigin', + CumulusXcm: 'PezcumulusPezpalletXcmOrigin', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + Origins: 'AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin' + } + }, + /** + * Lookup324: cumulus_pallet_xcm::pallet::Origin + **/ + PezcumulusPezpalletXcmOrigin: { + _enum: { + Relay: 'Null', + SiblingParachain: 'u32' + } + }, + /** + * Lookup325: asset_hub_polkadot_runtime::governance::origins::pallet_custom_origins::Origin + **/ + AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: { + _enum: ['StakingAdmin', 'Treasurer', 'FellowshipAdmin', 'GeneralAdmin', 'AuctionAdmin', 'LeaseAdmin', 'ReferendumCanceller', 'ReferendumKiller', 'SmallTipper', 'BigTipper', 'SmallSpender', 'MediumSpender', 'BigSpender', 'WhitelistedCaller', 'WishForChange'] + }, + /** + * Lookup392: pallet_staking_async_rc_client::pallet::Call + **/ + PezpalletStakingAsyncRcClientCall: { + _enum: { + relay_session_report: { + report: 'PezpalletStakingAsyncRcClientSessionReport', + }, + relay_new_offence_paged: { + offences: 'Vec<(u32,PezpalletStakingAsyncRcClientOffence)>' + } + } + }, + /** + * Lookup401: pallet_election_provider_multi_block::pallet::Call + **/ + PezpalletElectionProviderMultiBlockCall: { + _enum: { + manage: { + op: 'PezpalletElectionProviderMultiBlockAdminOperation' + } + } + }, + /** + * Lookup402: pallet_election_provider_multi_block::AdminOperation + **/ + PezpalletElectionProviderMultiBlockAdminOperation: { + _enum: { + ForceRotateRound: 'Null', + ForceSetPhase: 'PezpalletElectionProviderMultiBlockPhase', + EmergencySetSolution: '(PezframeElectionProviderSupportBoundedSupports,PezspNposElectionsElectionScore)', + EmergencyFallback: 'Null', + SetMinUntrustedScore: 'PezspNposElectionsElectionScore' + } + }, + /** + * Lookup403: pallet_election_provider_multi_block::types::Phase + **/ + PezpalletElectionProviderMultiBlockPhase: { + _enum: { + Off: 'Null', + Signed: 'u32', + SignedValidation: 'u32', + Unsigned: 'u32', + Snapshot: 'u32', + Done: 'Null', + Export: 'u32', + Emergency: 'Null' + } + }, + /** + * Lookup413: pallet_election_provider_multi_block::verifier::impls::pallet::Call + **/ + PezpalletElectionProviderMultiBlockVerifierImplsPezpalletCall: 'Null', + /** + * Lookup414: pallet_election_provider_multi_block::unsigned::pallet::Call + **/ + PezpalletElectionProviderMultiBlockUnsignedPezpalletCall: { + _enum: { + submit_unsigned: { + pagedSolution: 'PezpalletElectionProviderMultiBlockPagedRawSolution' + } + } + }, + /** + * Lookup415: pallet_election_provider_multi_block::types::PagedRawSolution + **/ + PezpalletElectionProviderMultiBlockPagedRawSolution: { + solutionPages: 'Vec', + score: 'PezspNposElectionsElectionScore', + round: 'u32' + }, + /** + * Lookup417: asset_hub_polkadot_runtime::staking::NposCompactSolution16 + **/ + AssetHubPezkuwiRuntimeStakingNposCompactSolution16: { + votes1: 'Vec<(Compact,Compact)>', + votes2: 'Vec<(Compact,(Compact,Compact),Compact)>', + votes3: 'Vec<(Compact,[(Compact,Compact);2],Compact)>', + votes4: 'Vec<(Compact,[(Compact,Compact);3],Compact)>', + votes5: 'Vec<(Compact,[(Compact,Compact);4],Compact)>', + votes6: 'Vec<(Compact,[(Compact,Compact);5],Compact)>', + votes7: 'Vec<(Compact,[(Compact,Compact);6],Compact)>', + votes8: 'Vec<(Compact,[(Compact,Compact);7],Compact)>', + votes9: 'Vec<(Compact,[(Compact,Compact);8],Compact)>', + votes10: 'Vec<(Compact,[(Compact,Compact);9],Compact)>', + votes11: 'Vec<(Compact,[(Compact,Compact);10],Compact)>', + votes12: 'Vec<(Compact,[(Compact,Compact);11],Compact)>', + votes13: 'Vec<(Compact,[(Compact,Compact);12],Compact)>', + votes14: 'Vec<(Compact,[(Compact,Compact);13],Compact)>', + votes15: 'Vec<(Compact,[(Compact,Compact);14],Compact)>', + votes16: 'Vec<(Compact,[(Compact,Compact);15],Compact)>' + }, + /** + * Lookup468: pallet_election_provider_multi_block::signed::pallet::Call + **/ + PezpalletElectionProviderMultiBlockSignedPezpalletCall: { + _enum: { + register: { + claimedScore: 'PezspNposElectionsElectionScore', + }, + submit_page: { + page: 'u32', + maybeSolution: 'Option', + }, + bail: 'Null', + clear_old_round_data: { + round: 'u32', + witnessPages: 'u32', + }, + set_invulnerables: { + inv: 'Vec' + } + } + }, + /** + * Lookup470: pallet_staking_async::pallet::pallet::Call + **/ + PezpalletStakingAsyncPezpalletCall: { + _enum: { + bond: { + value: 'Compact', + payee: 'PezpalletStakingAsyncRewardDestination', + }, + bond_extra: { + maxAdditional: 'Compact', + }, + unbond: { + value: 'Compact', + }, + withdraw_unbonded: { + numSlashingSpans: 'u32', + }, + validate: { + prefs: 'PezpalletStakingAsyncValidatorPrefs', + }, + nominate: { + targets: 'Vec', + }, + chill: 'Null', + set_payee: { + payee: 'PezpalletStakingAsyncRewardDestination', + }, + set_controller: 'Null', + set_validator_count: { + _alias: { + new_: 'new', + }, + new_: 'Compact', + }, + increase_validator_count: { + additional: 'Compact', + }, + scale_validator_count: { + factor: 'Percent', + }, + force_no_eras: 'Null', + force_new_era: 'Null', + set_invulnerables: { + invulnerables: 'Vec', + }, + force_unstake: { + stash: 'AccountId32', + numSlashingSpans: 'u32', + }, + force_new_era_always: 'Null', + cancel_deferred_slash: { + era: 'u32', + validatorSlashes: 'Vec<(AccountId32,Perbill)>', + }, + payout_stakers: { + validatorStash: 'AccountId32', + era: 'u32', + }, + rebond: { + value: 'Compact', + }, + reap_stash: { + stash: 'AccountId32', + numSlashingSpans: 'u32', + }, + kick: { + who: 'Vec', + }, + set_staking_configs: { + minNominatorBond: 'PezpalletStakingAsyncPezpalletConfigOpU128', + minValidatorBond: 'PezpalletStakingAsyncPezpalletConfigOpU128', + maxNominatorCount: 'PezpalletStakingAsyncPezpalletConfigOpU32', + maxValidatorCount: 'PezpalletStakingAsyncPezpalletConfigOpU32', + chillThreshold: 'PezpalletStakingAsyncPezpalletConfigOpPercent', + minCommission: 'PezpalletStakingAsyncPezpalletConfigOpPerbill', + maxStakedRewards: 'PezpalletStakingAsyncPezpalletConfigOpPercent', + }, + chill_other: { + stash: 'AccountId32', + }, + force_apply_min_commission: { + validatorStash: 'AccountId32', + }, + set_min_commission: { + _alias: { + new_: 'new', + }, + new_: 'Perbill', + }, + payout_stakers_by_page: { + validatorStash: 'AccountId32', + era: 'u32', + page: 'u32', + }, + update_payee: { + controller: 'AccountId32', + }, + deprecate_controller_batch: { + controllers: 'Vec', + }, + restore_ledger: { + stash: 'AccountId32', + maybeController: 'Option', + maybeTotal: 'Option', + maybeUnlocking: 'Option>', + }, + migrate_currency: { + stash: 'AccountId32', + }, + apply_slash: { + slashEra: 'u32', + slashKey: '(AccountId32,Perbill,u32)', + }, + prune_era_step: { + era: 'u32' + } + } + }, + /** + * Lookup471: pallet_staking_async::RewardDestination + **/ + PezpalletStakingAsyncRewardDestination: { + _enum: { + Staked: 'Null', + Stash: 'Null', + Controller: 'Null', + Account: 'AccountId32', + None: 'Null' + } + }, + /** + * Lookup472: pallet_staking_async::ValidatorPrefs + **/ + PezpalletStakingAsyncValidatorPrefs: { + commission: 'Compact', + blocked: 'bool' + }, + /** + * Lookup478: pallet_staking_async::pallet::pallet::ConfigOp + **/ + PezpalletStakingAsyncPezpalletConfigOpU128: { + _enum: { + Noop: 'Null', + Set: 'u128', + Remove: 'Null' + } + }, + /** + * Lookup479: pallet_staking_async::pallet::pallet::ConfigOp + **/ + PezpalletStakingAsyncPezpalletConfigOpU32: { + _enum: { + Noop: 'Null', + Set: 'u32', + Remove: 'Null' + } + }, + /** + * Lookup480: pallet_staking_async::pallet::pallet::ConfigOp + **/ + PezpalletStakingAsyncPezpalletConfigOpPercent: { + _enum: { + Noop: 'Null', + Set: 'Percent', + Remove: 'Null' + } + }, + /** + * Lookup481: pallet_staking_async::pallet::pallet::ConfigOp + **/ + PezpalletStakingAsyncPezpalletConfigOpPerbill: { + _enum: { + Noop: 'Null', + Set: 'Perbill', + Remove: 'Null' + } + }, + /** + * Lookup485: pallet_staking_async::ledger::UnlockChunk + **/ + PezpalletStakingAsyncLedgerUnlockChunk: { + value: 'Compact', + era: 'Compact' + }, + /** + * Lookup488: pallet_ah_ops::pallet::Call + **/ + PezpalletAhOpsCall: { + _enum: { + unreserve_lease_deposit: { + block: 'u32', + depositor: 'Option', + paraId: 'u32', + }, + withdraw_crowdloan_contribution: { + block: 'u32', + depositor: 'Option', + paraId: 'u32', + }, + unreserve_crowdloan_reserve: { + block: 'u32', + depositor: 'Option', + paraId: 'u32', + }, + transfer_to_post_migration_treasury: { + assetId: 'StagingXcmV5Location' + } + } + }, + /** + * Lookup489: pallet_ah_migrator::pallet::Call + **/ + PezpalletAhMigratorCall: { + _enum: { + receive_accounts: { + accounts: 'Vec', + }, + receive_multisigs: { + accounts: 'Vec', + }, + receive_proxy_proxies: { + proxies: 'Vec', + }, + receive_proxy_announcements: { + announcements: 'Vec', + }, + receive_preimage_chunks: { + chunks: 'Vec', + }, + receive_preimage_request_status: { + requestStatus: 'Vec', + }, + receive_preimage_legacy_status: { + legacyStatus: 'Vec', + }, + receive_nom_pools_messages: { + messages: 'Vec', + }, + receive_vesting_schedules: { + schedules: 'Vec', + }, + __Unused9: 'Null', + receive_referenda_values: { + values: 'Vec', + }, + receive_referendums: { + referendums: 'Vec<(u32,PezpalletReferendaReferendumInfoRcPalletsOrigin)>', + }, + receive_claims: { + messages: 'Vec', + }, + receive_bags_list_messages: { + messages: 'Vec', + }, + receive_scheduler_messages: { + messages: 'Vec', + }, + receive_indices: { + indices: 'Vec', + }, + receive_conviction_voting_messages: { + messages: 'Vec', + }, + receive_bounties_messages: { + messages: 'Vec', + }, + receive_asset_rates: { + rates: 'Vec<(PezkuwiRuntimeCommonImplsVersionedLocatableAsset,u128)>', + }, + receive_crowdloan_messages: { + messages: 'Vec', + }, + receive_referenda_metadata: { + metadata: 'Vec<(u32,H256)>', + }, + receive_treasury_messages: { + messages: 'Vec', + }, + receive_scheduler_agenda_messages: { + messages: 'Vec', + }, + receive_delegated_staking_messages: { + messages: 'Vec', + }, + receive_child_bounties_messages: { + messages: 'Vec', + }, + receive_staking_messages: { + messages: 'Vec', + }, + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + __Unused99: 'Null', + force_set_stage: { + stage: 'PezpalletAhMigratorMigrationStage', + }, + start_migration: 'Null', + set_dmp_queue_priority: { + _alias: { + new_: 'new', + }, + new_: 'PezpalletRcMigratorQueuePriority', + }, + set_manager: { + _alias: { + new_: 'new', + }, + new_: 'Option', + }, + __Unused104: 'Null', + __Unused105: 'Null', + __Unused106: 'Null', + __Unused107: 'Null', + __Unused108: 'Null', + __Unused109: 'Null', + finish_migration: { + data: 'Option', + coolOffEndAt: 'u32', + }, + send_xcm_message: { + dest: 'XcmVersionedLocation', + message: 'XcmVersionedXcm' + } + } + }, + /** + * Lookup491: pallet_rc_migrator::accounts::Account + **/ + PezpalletRcMigratorAccountsAccount: { + who: 'AccountId32', + free: 'u128', + reserved: 'u128', + frozen: 'u128', + holds: 'Vec', + freezes: 'Vec', + locks: 'Vec', + unnamedReserve: 'u128', + consumers: 'u8', + providers: 'u8' + }, + /** + * Lookup492: pallet_rc_migrator::types::PortableHoldReason + **/ + PezpalletRcMigratorPortableHoldReason: { + _enum: { + Preimage: 'PezpalletPreimageHoldReason', + Staking: 'PezpalletStakingPezpalletHoldReason', + StateTrieMigration: 'PezpalletStateTrieMigrationHoldReason', + DelegatedStaking: 'PezpalletDelegatedStakingHoldReason', + Session: 'PezpalletSessionHoldReason', + XcmPallet: 'PezpalletXcmHoldReason' + } + }, + /** + * Lookup499: pallet_rc_migrator::types::PortableFreezeReason + **/ + PezpalletRcMigratorPortableFreezeReason: { + _enum: { + NominationPools: 'PezpalletNominationPoolsFreezeReason' + } + }, + /** + * Lookup502: frame_support::traits::tokens::misc::IdAmount + **/ + PezframeSupportTokensMiscIdAmountPortableHoldReason: { + id: 'PezpalletRcMigratorPortableHoldReason', + amount: 'u128' + }, + /** + * Lookup505: frame_support::traits::tokens::misc::IdAmount + **/ + PezframeSupportTokensMiscIdAmountPortableFreezeReason: { + id: 'PezpalletRcMigratorPortableFreezeReason', + amount: 'u128' + }, + /** + * Lookup512: pallet_rc_migrator::multisig::RcMultisig + **/ + PezpalletRcMigratorMultisigRcMultisig: { + creator: 'AccountId32', + deposit: 'u128' + }, + /** + * Lookup514: pallet_rc_migrator::proxy::RcProxy + **/ + PezpalletRcMigratorProxyRcProxy: { + delegator: 'AccountId32', + deposit: 'u128', + proxies: 'Vec' + }, + /** + * Lookup517: pallet_proxy::ProxyDefinition + **/ + PezpalletProxyProxyDefinitionPezkuwiRuntimeConstantsProxyProxyType: { + delegate: 'AccountId32', + proxyType: 'PezkuwiRuntimeConstantsProxyProxyType', + delay: 'u32' + }, + /** + * Lookup519: pallet_rc_migrator::proxy::RcProxyAnnouncement + **/ + PezpalletRcMigratorProxyRcProxyAnnouncement: { + depositor: 'AccountId32', + deposit: 'u128' + }, + /** + * Lookup521: pallet_rc_migrator::preimage::chunks::RcPreimageChunk + **/ + PezpalletRcMigratorPreimageChunksRcPreimageChunk: { + preimageHash: 'H256', + preimageLen: 'u32', + chunkByteOffset: 'u32', + chunkBytes: 'Bytes' + }, + /** + * Lookup524: pallet_rc_migrator::preimage::request_status::PortableRequestStatus + **/ + PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus: { + _alias: { + hash_: 'hash' + }, + hash_: 'H256', + requestStatus: 'PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner' + }, + /** + * Lookup525: pallet_rc_migrator::preimage::request_status::PortableRequestStatusInner + **/ + PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner: { + _enum: { + Unrequested: { + ticket: '(AccountId32,Bytes)', + len: 'u32', + }, + Requested: { + maybeTicket: 'Option<(AccountId32,Bytes)>', + count: 'u32', + maybeLen: 'Option' + } + } + }, + /** + * Lookup530: pallet_rc_migrator::preimage::legacy_request_status::RcPreimageLegacyStatus + **/ + PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus: { + _alias: { + hash_: 'hash' + }, + hash_: 'H256', + depositor: 'AccountId32', + deposit: 'u128' + }, + /** + * Lookup532: pallet_rc_migrator::staking::nom_pools::RcNomPoolsMessage + **/ + PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage: { + _enum: { + StorageValues: { + values: 'PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues', + }, + PoolMembers: { + member: '(AccountId32,PezpalletNominationPoolsPoolMember)', + }, + BondedPools: { + pool: '(u32,PezpalletNominationPoolsBondedPoolInner)', + }, + RewardPools: { + rewards: '(u32,PezpalletRcMigratorStakingNomPoolsAliasRewardPool)', + }, + SubPoolsStorage: { + subPools: '(u32,PezpalletRcMigratorStakingNomPoolsAliasSubPools)', + }, + Metadata: { + meta: '(u32,Bytes)', + }, + ReversePoolIdLookup: { + lookups: '(AccountId32,u32)', + }, + ClaimPermissions: { + perms: '(AccountId32,PezpalletNominationPoolsClaimPermission)' + } + } + }, + /** + * Lookup533: pallet_rc_migrator::staking::nom_pools::NomPoolsStorageValues + **/ + PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues: { + totalValueLocked: 'Option', + minJoinBond: 'Option', + minCreateBond: 'Option', + maxPools: 'Option', + maxPoolMembers: 'Option', + maxPoolMembersPerPool: 'Option', + globalMaxCommission: 'Option', + lastPoolId: 'Option' + }, + /** + * Lookup547: pallet_rc_migrator::staking::nom_pools_alias::RewardPool + **/ + PezpalletRcMigratorStakingNomPoolsAliasRewardPool: { + lastRecordedRewardCounter: 'u128', + lastRecordedTotalPayouts: 'u128', + totalRewardsClaimed: 'u128', + totalCommissionPending: 'u128', + totalCommissionClaimed: 'u128' + }, + /** + * Lookup549: pallet_rc_migrator::staking::nom_pools_alias::SubPools + **/ + PezpalletRcMigratorStakingNomPoolsAliasSubPools: { + noEra: 'PezpalletRcMigratorStakingNomPoolsAliasUnbondPool', + withEra: 'BTreeMap' + }, + /** + * Lookup550: pallet_rc_migrator::staking::nom_pools_alias::UnbondPool + **/ + PezpalletRcMigratorStakingNomPoolsAliasUnbondPool: { + points: 'u128', + balance: 'u128' + }, + /** + * Lookup558: pallet_rc_migrator::vesting::RcVestingSchedule + **/ + PezpalletRcMigratorVestingRcVestingSchedule: { + who: 'AccountId32', + schedules: 'Vec' + }, + /** + * Lookup562: pallet_rc_migrator::referenda::ReferendaMessage + **/ + PezpalletRcMigratorReferendaReferendaMessage: { + referendumCount: 'Option', + decidingCount: 'Vec<(u16,u32)>', + trackQueue: 'Vec<(u16,Vec<(u32,u128)>)>' + }, + /** + * Lookup569: pallet_referenda::types::ReferendumInfo, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumInfoRcPalletsOrigin: { + _enum: { + Ongoing: 'PezpalletReferendaReferendumStatusRcPalletsOrigin', + Approved: '(u32,Option,Option)', + Rejected: '(u32,Option,Option)', + Cancelled: '(u32,Option,Option)', + TimedOut: '(u32,Option,Option)', + Killed: 'u32' + } + }, + /** + * Lookup570: asset_hub_polkadot_runtime::ah_migration::RcPalletsOrigin + **/ + AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + Origins: 'AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin' + } + }, + /** + * Lookup572: pallet_referenda::types::ReferendumStatus, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumStatusRcPalletsOrigin: { + track: 'u16', + origin: 'AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin', + proposal: 'PezframeSupportPreimagesBounded', + enactment: 'PezframeSupportScheduleDispatchTime', + submitted: 'u32', + submissionDeposit: 'PezpalletReferendaDeposit', + decisionDeposit: 'Option', + deciding: 'Option', + tally: 'PezpalletConvictionVotingTally', + inQueue: 'bool', + alarm: 'Option<(u32,(u32,u32))>' + }, + /** + * Lookup580: pallet_rc_migrator::claims::RcClaimsMessage + **/ + PezpalletRcMigratorClaimsRcClaimsMessage: { + _enum: { + StorageValues: { + total: 'u128', + }, + Claims: '(PezkuwiRuntimeCommonClaimsEthereumAddress,u128)', + Vesting: { + who: 'PezkuwiRuntimeCommonClaimsEthereumAddress', + schedule: '(u128,u128,u32)', + }, + Signing: '(PezkuwiRuntimeCommonClaimsEthereumAddress,PezkuwiRuntimeCommonClaimsStatementKind)', + Preclaims: '(AccountId32,PezkuwiRuntimeCommonClaimsEthereumAddress)' + } + }, + /** + * Lookup585: pallet_rc_migrator::staking::bags_list::PortableBagsListMessage + **/ + PezpalletRcMigratorStakingBagsListPortableBagsListMessage: { + _enum: { + Node: { + id: 'AccountId32', + node: 'PezpalletRcMigratorStakingBagsListPortableNode', + }, + Bag: { + score: 'u64', + bag: 'PezpalletRcMigratorStakingBagsListPortableBag' + } + } + }, + /** + * Lookup586: pallet_rc_migrator::staking::bags_list::PortableNode + **/ + PezpalletRcMigratorStakingBagsListPortableNode: { + id: 'AccountId32', + prev: 'Option', + next: 'Option', + bagUpper: 'u64', + score: 'u64' + }, + /** + * Lookup587: pallet_rc_migrator::staking::bags_list::PortableBag + **/ + PezpalletRcMigratorStakingBagsListPortableBag: { + head: 'Option', + tail: 'Option', + bagUpper: 'u64' + }, + /** + * Lookup589: pallet_rc_migrator::scheduler::RcSchedulerMessage + **/ + PezpalletRcMigratorSchedulerRcSchedulerMessage: { + _enum: { + IncompleteSince: 'u32', + Retries: '((u32,u32),PezpalletSchedulerRetryConfig)', + Lookup: '([u8;32],(u32,u32))' + } + }, + /** + * Lookup594: pallet_rc_migrator::indices::RcIndicesIndex + **/ + PezpalletRcMigratorIndicesRcIndicesIndex: { + index: 'u32', + who: 'AccountId32', + deposit: 'u128', + frozen: 'bool' + }, + /** + * Lookup596: pallet_rc_migrator::conviction_voting::RcConvictionVotingMessage, Balance> + **/ + PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage: { + _enum: { + VotingFor: '(AccountId32,u16,PezpalletConvictionVotingVoteVoting)', + ClassLocksFor: '(AccountId32,Vec<(u16,u128)>)' + } + }, + /** + * Lookup608: pallet_rc_migrator::bounties::RcBountiesMessage + **/ + PezpalletRcMigratorBountiesRcBountiesMessage: { + _enum: { + BountyCount: 'u32', + BountyApprovals: 'Vec', + BountyDescriptions: '(u32,Bytes)', + Bounties: '(u32,PezpalletRcMigratorBountiesAliasBounty)' + } + }, + /** + * Lookup611: pallet_rc_migrator::bounties::alias::Bounty + **/ + PezpalletRcMigratorBountiesAliasBounty: { + proposer: 'AccountId32', + value: 'u128', + fee: 'u128', + curatorDeposit: 'u128', + bond: 'u128', + status: 'PezpalletBountiesBountyStatus' + }, + /** + * Lookup616: pallet_rc_migrator::crowdloan::RcCrowdloanMessage + **/ + PezpalletRcMigratorCrowdloanRcCrowdloanMessage: { + _enum: { + LeaseReserve: { + unreserveBlock: 'u32', + account: 'AccountId32', + paraId: 'u32', + amount: 'u128', + }, + CrowdloanContribution: { + withdrawBlock: 'u32', + contributor: 'AccountId32', + paraId: 'u32', + amount: 'u128', + crowdloanAccount: 'AccountId32', + }, + CrowdloanReserve: { + unreserveBlock: 'u32', + depositor: 'AccountId32', + paraId: 'u32', + amount: 'u128' + } + } + }, + /** + * Lookup620: pallet_rc_migrator::treasury::PortableTreasuryMessage + **/ + PezpalletRcMigratorTreasuryPortableTreasuryMessage: { + _enum: { + ProposalCount: 'u32', + Proposals: '(u32,PezpalletTreasuryProposal)', + Approvals: 'Vec', + SpendCount: 'u32', + Spends: { + id: 'u32', + status: 'PezpalletRcMigratorTreasuryPortableSpendStatus', + }, + LastSpendPeriod: 'Option', + Funds: 'Null' + } + }, + /** + * Lookup623: pallet_rc_migrator::treasury::PortableSpendStatus + **/ + PezpalletRcMigratorTreasuryPortableSpendStatus: { + assetKind: 'PezkuwiRuntimeCommonImplsVersionedLocatableAsset', + amount: 'u128', + beneficiary: 'XcmVersionedLocation', + validFrom: 'u32', + expireAt: 'u32', + status: 'PezpalletRcMigratorTreasuryPortablePaymentState' + }, + /** + * Lookup624: pallet_rc_migrator::treasury::PortablePaymentState + **/ + PezpalletRcMigratorTreasuryPortablePaymentState: { + _enum: { + Pending: 'Null', + Attempted: { + id: 'u64', + }, + Failed: 'Null' + } + }, + /** + * Lookup626: pallet_rc_migrator::scheduler::SchedulerAgendaMessage, BlockNumber, asset_hub_polkadot_runtime::ah_migration::RcPalletsOrigin>> + **/ + PezpalletRcMigratorSchedulerSchedulerAgendaMessage: { + block: 'u32', + agenda: 'Vec>' + }, + /** + * Lookup627: pallet_rc_migrator::scheduler::alias::Scheduled, BlockNumber, asset_hub_polkadot_runtime::ah_migration::RcPalletsOrigin> + **/ + PezpalletRcMigratorSchedulerAliasScheduled: { + maybeId: 'Option<[u8;32]>', + priority: 'u8', + call: 'PezframeSupportPreimagesBounded', + maybePeriodic: 'Option<(u32,u32)>', + origin: 'AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin' + }, + /** + * Lookup631: pallet_rc_migrator::staking::delegated_staking::PortableDelegatedStakingMessage + **/ + PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage: { + _enum: { + Delegators: { + delegator: 'AccountId32', + agent: 'AccountId32', + amount: 'u128', + }, + Agents: { + agent: 'AccountId32', + payee: 'AccountId32', + totalDelegated: 'u128', + unclaimedWithdrawals: 'u128', + pendingSlash: 'u128' + } + } + }, + /** + * Lookup633: pallet_rc_migrator::child_bounties::PortableChildBountiesMessage + **/ + PezpalletRcMigratorChildBountiesPortableChildBountiesMessage: { + _enum: { + ChildBountyCount: 'u32', + ParentChildBounties: '(u32,u32)', + ParentTotalChildBounties: '(u32,u32)', + ChildBounty: { + parentId: 'u32', + childId: 'u32', + childBounty: 'PezpalletRcMigratorChildBountiesPortableChildBounty', + }, + ChildBountyDescriptionsV1: { + parentId: 'u32', + childId: 'u32', + description: 'Bytes', + }, + V0ToV1ChildBountyIds: { + v0ChildId: 'u32', + parentId: 'u32', + v1ChildId: 'u32', + }, + ChildrenCuratorFees: { + childId: 'u32', + amount: 'u128' + } + } + }, + /** + * Lookup634: pallet_rc_migrator::child_bounties::PortableChildBounty + **/ + PezpalletRcMigratorChildBountiesPortableChildBounty: { + parentBounty: 'u32', + value: 'u128', + fee: 'u128', + curatorDeposit: 'u128', + status: 'PezpalletRcMigratorChildBountiesPortableChildBountyStatus' + }, + /** + * Lookup635: pallet_rc_migrator::child_bounties::PortableChildBountyStatus + **/ + PezpalletRcMigratorChildBountiesPortableChildBountyStatus: { + _enum: { + Added: 'Null', + CuratorProposed: { + curator: 'AccountId32', + }, + Active: { + curator: 'AccountId32', + }, + PendingPayout: { + curator: 'AccountId32', + beneficiary: 'AccountId32', + unlockAt: 'u32' + } + } + }, + /** + * Lookup638: pallet_rc_migrator::staking::message::PortableStakingMessage + **/ + PezpalletRcMigratorStakingMessagePortableStakingMessage: { + _enum: { + Values: 'PezpalletRcMigratorStakingMessageStakingValues', + Invulnerables: 'Vec', + Bonded: { + stash: 'AccountId32', + controller: 'AccountId32', + }, + Ledger: { + controller: 'AccountId32', + ledger: 'PezpalletRcMigratorStakingMessagePortableStakingLedger', + }, + Payee: { + stash: 'AccountId32', + payment: 'PezpalletRcMigratorStakingMessagePortableRewardDestination', + }, + Validators: { + stash: 'AccountId32', + validators: 'PezpalletRcMigratorStakingMessagePortableValidatorPrefs', + }, + Nominators: { + stash: 'AccountId32', + nominations: 'PezpalletRcMigratorStakingMessagePortableNominations', + }, + VirtualStakers: 'AccountId32', + ErasStakersOverview: { + era: 'u32', + validator: 'AccountId32', + exposure: 'PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata', + }, + ErasStakersPaged: { + era: 'u32', + validator: 'AccountId32', + page: 'u32', + exposure: 'PezpalletRcMigratorStakingMessagePortableExposurePage', + }, + ClaimedRewards: { + era: 'u32', + validator: 'AccountId32', + rewards: 'Vec', + }, + ErasValidatorPrefs: { + era: 'u32', + validator: 'AccountId32', + prefs: 'PezpalletRcMigratorStakingMessagePortableValidatorPrefs', + }, + ErasValidatorReward: { + era: 'u32', + reward: 'u128', + }, + ErasRewardPoints: { + era: 'u32', + points: 'PezpalletRcMigratorStakingMessagePortableEraRewardPoints', + }, + ErasTotalStake: { + era: 'u32', + totalStake: 'u128', + }, + UnappliedSlashes: { + era: 'u32', + slash: 'PezpalletRcMigratorStakingMessagePortableUnappliedSlash', + }, + BondedEras: 'Vec<(u32,u32)>', + ValidatorSlashInEra: { + era: 'u32', + validator: 'AccountId32', + slash: '(Perbill,u128)' + } + } + }, + /** + * Lookup639: pallet_rc_migrator::staking::message::StakingValues + **/ + PezpalletRcMigratorStakingMessageStakingValues: { + validatorCount: 'Option', + minValidatorCount: 'Option', + minNominatorBond: 'Option', + minValidatorBond: 'Option', + minActiveStake: 'Option', + minCommission: 'Option', + maxValidatorsCount: 'Option', + maxNominatorsCount: 'Option', + currentEra: 'Option', + activeEra: 'Option', + forceEra: 'Option', + maxStakedRewards: 'Option', + slashRewardFraction: 'Option', + canceledSlashPayout: 'Option', + currentPlannedSession: 'Option', + chillThreshold: 'Option' + }, + /** + * Lookup641: pallet_rc_migrator::staking::message::PortableActiveEraInfo + **/ + PezpalletRcMigratorStakingMessagePortableActiveEraInfo: { + index: 'u32', + start: 'Option' + }, + /** + * Lookup643: pallet_rc_migrator::staking::message::PortableForcing + **/ + PezpalletRcMigratorStakingMessagePortableForcing: { + _enum: ['NotForcing', 'ForceNew', 'ForceNone', 'ForceAlways'] + }, + /** + * Lookup645: pallet_rc_migrator::staking::message::PortableStakingLedger + **/ + PezpalletRcMigratorStakingMessagePortableStakingLedger: { + stash: 'AccountId32', + total: 'u128', + active: 'u128', + unlocking: 'Vec' + }, + /** + * Lookup647: pallet_rc_migrator::staking::message::PortableUnlockChunk + **/ + PezpalletRcMigratorStakingMessagePortableUnlockChunk: { + value: 'u128', + era: 'u32' + }, + /** + * Lookup649: pallet_rc_migrator::staking::message::PortableRewardDestination + **/ + PezpalletRcMigratorStakingMessagePortableRewardDestination: { + _enum: { + Staked: 'Null', + Stash: 'Null', + Controller: 'Null', + Account: 'AccountId32', + None: 'Null' + } + }, + /** + * Lookup650: pallet_rc_migrator::staking::message::PortableValidatorPrefs + **/ + PezpalletRcMigratorStakingMessagePortableValidatorPrefs: { + commission: 'Perbill', + blocked: 'bool' + }, + /** + * Lookup651: pallet_rc_migrator::staking::message::PortableNominations + **/ + PezpalletRcMigratorStakingMessagePortableNominations: { + targets: 'Vec', + submittedIn: 'u32', + suppressed: 'bool' + }, + /** + * Lookup653: pallet_rc_migrator::staking::message::PortablePagedExposureMetadata + **/ + PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata: { + total: 'u128', + own: 'u128', + nominatorCount: 'u32', + pageCount: 'u32' + }, + /** + * Lookup654: pallet_rc_migrator::staking::message::PortableExposurePage + **/ + PezpalletRcMigratorStakingMessagePortableExposurePage: { + pageTotal: 'u128', + others: 'Vec' + }, + /** + * Lookup656: pallet_rc_migrator::staking::message::PortableIndividualExposure + **/ + PezpalletRcMigratorStakingMessagePortableIndividualExposure: { + who: 'AccountId32', + value: 'u128' + }, + /** + * Lookup658: pallet_rc_migrator::staking::message::PortableEraRewardPoints + **/ + PezpalletRcMigratorStakingMessagePortableEraRewardPoints: { + total: 'u32', + individual: 'Vec<(AccountId32,u32)>' + }, + /** + * Lookup660: pallet_rc_migrator::staking::message::PortableUnappliedSlash + **/ + PezpalletRcMigratorStakingMessagePortableUnappliedSlash: { + validator: 'AccountId32', + own: 'u128', + others: 'Vec<(AccountId32,u128)>', + reporters: 'Vec', + payout: 'u128' + }, + /** + * Lookup665: pallet_ah_migrator::MigrationStage + **/ + PezpalletAhMigratorMigrationStage: { + _enum: { + Pending: 'Null', + DataMigrationOngoing: 'Null', + MigrationDone: 'Null', + CoolOff: { + endAt: 'u32' + } + } + }, + /** + * Lookup668: pallet_rc_migrator::types::MigrationFinishedData + **/ + PezpalletRcMigratorMigrationFinishedData: { + rcBalanceKept: 'u128' + }, + /** + * Lookup683: pallet_staking_async_rc_client::pallet::Event + **/ + PezpalletStakingAsyncRcClientEvent: { + _enum: { + SessionReportReceived: { + endIndex: 'u32', + activationTimestamp: 'Option<(u64,u32)>', + validatorPointsCounts: 'u32', + leftover: 'bool', + }, + OffenceReceived: { + slashSession: 'u32', + offencesCount: 'u32', + }, + Unexpected: 'PezpalletStakingAsyncRcClientUnexpectedKind' + } + }, + /** + * Lookup684: pallet_staking_async_rc_client::pallet::UnexpectedKind + **/ + PezpalletStakingAsyncRcClientUnexpectedKind: { + _enum: ['SessionReportIntegrityFailed', 'ValidatorSetIntegrityFailed', 'SessionSkipped', 'SessionAlreadyProcessed', 'ValidatorSetSendFailed', 'ValidatorSetDropped'] + }, + /** + * Lookup685: pallet_election_provider_multi_block::pallet::Event + **/ + PezpalletElectionProviderMultiBlockEvent: { + _enum: { + PhaseTransitioned: { + from: 'PezpalletElectionProviderMultiBlockPhase', + to: 'PezpalletElectionProviderMultiBlockPhase', + }, + UnexpectedTargetSnapshotFailed: 'Null', + UnexpectedVoterSnapshotFailed: 'Null' + } + }, + /** + * Lookup686: pallet_election_provider_multi_block::verifier::impls::pallet::Event + **/ + PezpalletElectionProviderMultiBlockVerifierImplsPezpalletEvent: { + _enum: { + VerificationFailed: '(u32,PezpalletElectionProviderMultiBlockVerifierFeasibilityError)', + Verified: '(u32,u32)', + Queued: '(PezspNposElectionsElectionScore,Option)' + } + }, + /** + * Lookup687: pallet_election_provider_multi_block::verifier::FeasibilityError + **/ + PezpalletElectionProviderMultiBlockVerifierFeasibilityError: { + _enum: { + WrongWinnerCount: 'Null', + SnapshotUnavailable: 'Null', + InvalidVote: 'Null', + InvalidVoter: 'Null', + InvalidWinner: 'Null', + InvalidScore: 'Null', + InvalidRound: 'Null', + ScoreTooLow: 'Null', + FailedToBoundSupport: 'Null', + NposElection: 'PezspNposElectionsError', + Incomplete: 'Null' + } + }, + /** + * Lookup688: sp_npos_elections::Error + **/ + PezspNposElectionsError: { + _enum: ['SolutionWeightOverflow', 'SolutionTargetOverflow', 'SolutionInvalidIndex', 'SolutionInvalidPageIndex', 'ArithmeticError', 'InvalidSupportEdge', 'TooManyVoters', 'BoundsExceeded', 'DuplicateVoter', 'DuplicateTarget'] + }, + /** + * Lookup690: pallet_election_provider_multi_block::signed::pallet::Event + **/ + PezpalletElectionProviderMultiBlockSignedPezpalletEvent: { + _enum: { + Registered: '(u32,AccountId32,PezspNposElectionsElectionScore)', + Stored: '(u32,AccountId32,u32)', + Rewarded: '(u32,AccountId32,u128)', + Slashed: '(u32,AccountId32,u128)', + Ejected: '(u32,AccountId32)', + Discarded: '(u32,AccountId32)', + Bailed: '(u32,AccountId32)' + } + }, + /** + * Lookup691: pallet_staking_async::pallet::pallet::Event + **/ + PezpalletStakingAsyncPezpalletEvent: { + _enum: { + EraPaid: { + eraIndex: 'u32', + validatorPayout: 'u128', + remainder: 'u128', + }, + Rewarded: { + stash: 'AccountId32', + dest: 'PezpalletStakingAsyncRewardDestination', + amount: 'u128', + }, + Slashed: { + staker: 'AccountId32', + amount: 'u128', + }, + OldSlashingReportDiscarded: { + sessionIndex: 'u32', + }, + Bonded: { + stash: 'AccountId32', + amount: 'u128', + }, + Unbonded: { + stash: 'AccountId32', + amount: 'u128', + }, + Withdrawn: { + stash: 'AccountId32', + amount: 'u128', + }, + StakerRemoved: { + stash: 'AccountId32', + }, + Kicked: { + nominator: 'AccountId32', + stash: 'AccountId32', + }, + Chilled: { + stash: 'AccountId32', + }, + PayoutStarted: { + eraIndex: 'u32', + validatorStash: 'AccountId32', + page: 'u32', + next: 'Option', + }, + ValidatorPrefsSet: { + stash: 'AccountId32', + prefs: 'PezpalletStakingAsyncValidatorPrefs', + }, + SnapshotVotersSizeExceeded: { + _alias: { + size_: 'size', + }, + size_: 'u32', + }, + SnapshotTargetsSizeExceeded: { + _alias: { + size_: 'size', + }, + size_: 'u32', + }, + ForceEra: { + mode: 'PezpalletStakingAsyncForcing', + }, + ControllerBatchDeprecated: { + failures: 'u32', + }, + CurrencyMigrated: { + stash: 'AccountId32', + forceWithdraw: 'u128', + }, + PagedElectionProceeded: { + page: 'u32', + result: 'Result', + }, + OffenceReported: { + offenceEra: 'u32', + validator: 'AccountId32', + fraction: 'Perbill', + }, + SlashComputed: { + offenceEra: 'u32', + slashEra: 'u32', + offender: 'AccountId32', + page: 'u32', + }, + SlashCancelled: { + slashEra: 'u32', + validator: 'AccountId32', + }, + SessionRotated: { + startingSession: 'u32', + activeEra: 'u32', + plannedEra: 'u32', + }, + Unexpected: 'PezpalletStakingAsyncPezpalletUnexpectedKind', + OffenceTooOld: { + offenceEra: 'u32', + validator: 'AccountId32', + fraction: 'Perbill', + }, + EraPruned: { + index: 'u32' + } + } + }, + /** + * Lookup692: pallet_staking_async::Forcing + **/ + PezpalletStakingAsyncForcing: { + _enum: ['NotForcing', 'ForceNew', 'ForceNone', 'ForceAlways'] + }, + /** + * Lookup694: pallet_staking_async::pallet::pallet::UnexpectedKind + **/ + PezpalletStakingAsyncPezpalletUnexpectedKind: { + _enum: ['EraDurationBoundExceeded', 'UnknownValidatorActivation'] + }, + /** + * Lookup695: pallet_ah_ops::pallet::Event + **/ + PezpalletAhOpsEvent: { + _enum: { + LeaseUnreserveRemaining: { + depositor: 'AccountId32', + paraId: 'u32', + remaining: 'u128', + }, + CrowdloanUnreserveRemaining: { + depositor: 'AccountId32', + paraId: 'u32', + remaining: 'u128', + }, + SovereignMigrated: { + paraId: 'u32', + from: 'AccountId32', + to: 'AccountId32', + derivationIndex: 'Option' + } + } + }, + /** + * Lookup696: pallet_ah_migrator::pallet::Event + **/ + PezpalletAhMigratorEvent: { + _enum: { + StageTransition: { + _alias: { + new_: 'new', + }, + old: 'PezpalletAhMigratorMigrationStage', + new_: 'PezpalletAhMigratorMigrationStage', + }, + BatchReceived: { + pallet: 'PezpalletAhMigratorPezpalletEventName', + count: 'u32', + }, + BatchProcessed: { + pallet: 'PezpalletAhMigratorPezpalletEventName', + countGood: 'u32', + countBad: 'u32', + }, + AssetHubMigrationStarted: 'Null', + AssetHubMigrationFinished: 'Null', + DmpQueuePrioritySet: { + prioritized: 'bool', + cycleBlock: 'u32', + cyclePeriod: 'u32', + }, + DmpQueuePriorityConfigSet: { + _alias: { + new_: 'new', + }, + old: 'PezpalletRcMigratorQueuePriority', + new_: 'PezpalletRcMigratorQueuePriority', + }, + BalancesBeforeRecordSet: { + checkingAccount: 'u128', + totalIssuance: 'u128', + }, + BalancesBeforeRecordConsumed: { + checkingAccount: 'u128', + totalIssuance: 'u128', + }, + ReferendumCanceled: { + id: 'u32', + }, + ManagerSet: { + _alias: { + new_: 'new', + }, + old: 'Option', + new_: 'Option', + }, + AccountTranslatedParachainSovereign: { + from: 'AccountId32', + to: 'AccountId32', + }, + AccountTranslatedParachainSovereignDerived: { + from: 'AccountId32', + to: 'AccountId32', + derivationIndex: 'u16', + }, + XcmSent: { + origin: 'StagingXcmV5Location', + destination: 'StagingXcmV5Location', + message: 'StagingXcmV5Xcm', + messageId: '[u8;32]', + }, + FailedToUnreserveMultisigDeposit: { + expectedAmount: 'u128', + missingAmount: 'u128', + account: 'AccountId32', + }, + FailedToUnreservePreimageDeposit: { + expectedAmount: 'u128', + missingAmount: 'u128', + account: 'AccountId32' + } + } + }, + /** + * Lookup697: pallet_ah_migrator::PalletEventName + **/ + PezpalletAhMigratorPezpalletEventName: { + _enum: ['AssetRates', 'BagsList', 'Balances', 'Bounties', 'ChildBounties', 'Claims', 'ConvictionVoting', 'Crowdloan', 'DelegatedStaking', 'Indices', 'Multisig', 'NomPools', 'PreimageChunk', 'PreimageLegacyStatus', 'PreimageRequestStatus', 'ProxyAnnouncements', 'ProxyProxies', 'Recovery', 'ReferendaMetadata', 'ReferendaReferendums', 'ReferendaValues', 'Scheduler', 'SchedulerAgenda', 'Staking', 'Treasury', 'Vesting', 'Society'] + }, + /** + * Lookup715: cumulus_pallet_parachain_system::unincluded_segment::Ancestor + **/ + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor: { + usedBandwidth: 'PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth', + paraHeadHash: 'Option', + consumedGoAheadSignal: 'Option' + }, + /** + * Lookup716: cumulus_pallet_parachain_system::unincluded_segment::UsedBandwidth + **/ + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth: { + umpMsgCount: 'u32', + umpTotalBytes: 'u32', + hrmpOutgoing: 'BTreeMap' + }, + /** + * Lookup718: cumulus_pallet_parachain_system::unincluded_segment::HrmpChannelUpdate + **/ + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentHrmpChannelUpdate: { + msgCount: 'u32', + totalBytes: 'u32' + }, + /** + * Lookup723: cumulus_pallet_parachain_system::unincluded_segment::SegmentTracker + **/ + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker: { + usedBandwidth: 'PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth', + hrmpWatermark: 'Option', + consumedGoAheadSignal: 'Option' + }, + /** + * Lookup726: cumulus_pallet_parachain_system::relay_state_snapshot::MessagingStateSnapshot + **/ + PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot: { + dmqMqcHead: 'H256', + relayDispatchQueueRemainingCapacity: 'PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity', + ingressChannels: 'Vec<(u32,PezkuwiPrimitivesV8AbridgedHrmpChannel)>', + egressChannels: 'Vec<(u32,PezkuwiPrimitivesV8AbridgedHrmpChannel)>' + }, + /** + * Lookup727: cumulus_pallet_parachain_system::relay_state_snapshot::RelayDispatchQueueRemainingCapacity + **/ + PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: { + remainingCount: 'u32', + remainingSize: 'u32' + }, + /** + * Lookup730: polkadot_primitives::v8::AbridgedHrmpChannel + **/ + PezkuwiPrimitivesV8AbridgedHrmpChannel: { + maxCapacity: 'u32', + maxTotalSize: 'u32', + maxMessageSize: 'u32', + msgCount: 'u32', + totalSize: 'u32', + mqcHead: 'Option' + }, + /** + * Lookup731: polkadot_primitives::v8::AbridgedHostConfiguration + **/ + PezkuwiPrimitivesV8AbridgedHostConfiguration: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + maxUpwardQueueCount: 'u32', + maxUpwardQueueSize: 'u32', + maxUpwardMessageSize: 'u32', + maxUpwardMessageNumPerCandidate: 'u32', + hrmpMaxMessageNumPerCandidate: 'u32', + validationUpgradeCooldown: 'u32', + validationUpgradeDelay: 'u32', + asyncBackingParams: 'PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams' + }, + /** + * Lookup737: cumulus_pallet_parachain_system::parachain_inherent::InboundMessageId + **/ + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId: { + sentAt: 'u32', + reverseIdx: 'u32' + }, + /** + * Lookup740: cumulus_pallet_parachain_system::pallet::Error + **/ + PezcumulusPezpalletTeyrchainSystemError: { + _enum: ['OverlappingUpgrades', 'ProhibitedByPolkadot', 'TooBig', 'ValidationDataNotAvailable', 'HostConfigurationNotAvailable', 'NotScheduled'] + }, + /** + * Lookup761: asset_hub_polkadot_runtime::RuntimeHoldReason + **/ + AssetHubPezkuwiRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + Preimage: 'PezpalletPreimageHoldReason', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + Session: 'PezpalletSessionHoldReason', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + PolkadotXcm: 'PezpalletXcmHoldReason', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationHoldReason', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingHoldReason', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + MultiBlockElectionSigned: 'PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason', + Staking: 'PezpalletStakingAsyncPezpalletHoldReason' + } + }, + /** + * Lookup762: pallet_election_provider_multi_block::signed::pallet::HoldReason + **/ + PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason: { + _enum: ['SignedSubmission'] + }, + /** + * Lookup763: pallet_staking_async::pallet::pallet::HoldReason + **/ + PezpalletStakingAsyncPezpalletHoldReason: { + _enum: ['Staking'] + }, + /** + * Lookup767: asset_hub_polkadot_runtime::RuntimeFreezeReason + **/ + AssetHubPezkuwiRuntimeRuntimeFreezeReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + NominationPools: 'PezpalletNominationPoolsFreezeReason' + } + }, + /** + * Lookup776: pallet_collator_selection::pallet::CandidateInfo + **/ + PezpalletCollatorSelectionCandidateInfo: { + who: 'AccountId32', + deposit: 'u128' + }, + /** + * Lookup779: pallet_collator_selection::pallet::Error + **/ + PezpalletCollatorSelectionError: { + _enum: ['TooManyCandidates', 'TooFewEligibleCollators', 'AlreadyCandidate', 'NotCandidate', 'TooManyInvulnerables', 'AlreadyInvulnerable', 'NotInvulnerable', 'NoAssociatedValidatorId', 'ValidatorNotRegistered', 'InsertToCandidateListFailed', 'RemoveFromCandidateListFailed', 'DepositTooLow', 'UpdateCandidateListFailed', 'InsufficientBond', 'TargetIsNotCandidate', 'IdenticalDeposit', 'InvalidUnreserve'] + }, + /** + * Lookup796: cumulus_pallet_xcmp_queue::OutboundChannelDetails + **/ + PezcumulusPezpalletXcmpQueueOutboundChannelDetails: { + recipient: 'u32', + state: 'PezcumulusPezpalletXcmpQueueOutboundState', + signalsExist: 'bool', + firstIndex: 'u16', + lastIndex: 'u16' + }, + /** + * Lookup797: cumulus_pallet_xcmp_queue::OutboundState + **/ + PezcumulusPezpalletXcmpQueueOutboundState: { + _enum: ['Ok', 'Suspended'] + }, + /** + * Lookup801: cumulus_pallet_xcmp_queue::QueueConfigData + **/ + PezcumulusPezpalletXcmpQueueQueueConfigData: { + suspendThreshold: 'u32', + dropThreshold: 'u32', + resumeThreshold: 'u32' + }, + /** + * Lookup802: cumulus_pallet_xcmp_queue::pallet::Error + **/ + PezcumulusPezpalletXcmpQueueError: { + _enum: ['BadQueueConfig', 'AlreadySuspended', 'AlreadyResumed', 'TooManyActiveOutboundChannels', 'TooBig'] + }, + /** + * Lookup831: bp_xcm_bridge_hub_router::BridgeState + **/ + BpXcmBridgeHubRouterBridgeState: { + deliveryFeeFactor: 'u128', + isCongested: 'bool' + }, + /** + * Lookup839: snowbridge_pallet_system_frontend::pallet::Error + **/ + SnowbridgePezpalletSystemFrontendError: { + _enum: ['UnsupportedLocationVersion', 'InvalidAssetOwner', 'SendFailure', 'FeesNotMet', 'LocationConversionFailed', 'Halted', 'Unreachable', 'UnsupportedAsset', 'WithdrawError', 'InvalidAccount', 'SwapError', 'BurnError', 'TipAmountZero'] + }, + /** + * Lookup847: pallet_proxy::ProxyDefinition + **/ + PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType: { + delegate: 'AccountId32', + proxyType: 'AssetHubPezkuwiRuntimeProxyType', + delay: 'u32' + }, + /** + * Lookup917: pallet_referenda::types::ReferendumInfo, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumInfoOriginCaller: { + _enum: { + Ongoing: 'PezpalletReferendaReferendumStatusOriginCaller', + Approved: '(u32,Option,Option)', + Rejected: '(u32,Option,Option)', + Cancelled: '(u32,Option,Option)', + TimedOut: '(u32,Option,Option)', + Killed: 'u32' + } + }, + /** + * Lookup918: pallet_referenda::types::ReferendumStatus, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumStatusOriginCaller: { + track: 'u16', + origin: 'AssetHubPezkuwiRuntimeOriginCaller', + proposal: 'PezframeSupportPreimagesBounded', + enactment: 'PezframeSupportScheduleDispatchTime', + submitted: 'u32', + submissionDeposit: 'PezpalletReferendaDeposit', + decisionDeposit: 'Option', + deciding: 'Option', + tally: 'PezpalletConvictionVotingTally', + inQueue: 'bool', + alarm: 'Option<(u32,(u32,u32))>' + }, + /** + * Lookup959: pallet_election_provider_multi_block::pallet::Error + **/ + PezpalletElectionProviderMultiBlockError: { + _enum: ['Fallback', 'UnexpectedPhase', 'Snapshot'] + }, + /** + * Lookup960: pallet_election_provider_multi_block::verifier::impls::ValidSolution + **/ + PezpalletElectionProviderMultiBlockVerifierImplsValidSolution: { + _enum: ['X', 'Y'] + }, + /** + * Lookup963: pallet_election_provider_multi_block::verifier::impls::PartialBackings + **/ + PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings: { + total: 'u128', + backers: 'u32' + }, + /** + * Lookup965: pallet_election_provider_multi_block::verifier::impls::Status + **/ + PezpalletElectionProviderMultiBlockVerifierImplsStatus: { + _enum: { + Ongoing: 'u32', + Nothing: 'Null' + } + }, + /** + * Lookup970: pallet_election_provider_multi_block::signed::SubmissionMetadata + **/ + PezpalletElectionProviderMultiBlockSignedSubmissionMetadata: { + deposit: 'u128', + fee: 'u128', + reward: 'u128', + claimedScore: 'PezspNposElectionsElectionScore', + pages: 'Vec' + }, + /** + * Lookup973: pallet_election_provider_multi_block::signed::pallet::Error + **/ + PezpalletElectionProviderMultiBlockSignedPezpalletError: { + _enum: ['PhaseNotSigned', 'Duplicate', 'QueueFull', 'BadPageIndex', 'NotRegistered', 'NoSubmission', 'RoundNotOver', 'BadWitnessData', 'TooManyInvulnerables'] + }, + /** + * Lookup974: pallet_staking_async::ledger::StakingLedger + **/ + PezpalletStakingAsyncLedgerStakingLedger: { + stash: 'AccountId32', + total: 'Compact', + active: 'Compact', + unlocking: 'Vec' + }, + /** + * Lookup975: pallet_staking_async::Nominations + **/ + PezpalletStakingAsyncNominations: { + targets: 'Vec', + submittedIn: 'u32', + suppressed: 'bool' + }, + /** + * Lookup976: pallet_staking_async::ActiveEraInfo + **/ + PezpalletStakingAsyncActiveEraInfo: { + index: 'u32', + start: 'Option' + }, + /** + * Lookup979: pallet_staking_async::pallet::pallet::BoundedExposurePage + **/ + PezpalletStakingAsyncPezpalletBoundedExposurePage: 'PezspStakingExposurePage', + /** + * Lookup984: pallet_staking_async::EraRewardPoints + **/ + PezpalletStakingAsyncEraRewardPoints: { + total: 'u32', + individual: 'BTreeMap' + }, + /** + * Lookup987: pallet_staking_async::slashing::OffenceRecord + **/ + PezpalletStakingAsyncSlashingOffenceRecord: { + reporter: 'Option', + reportedEra: 'u32', + exposurePage: 'u32', + slashFraction: 'Perbill', + priorSlashFraction: 'Perbill' + }, + /** + * Lookup991: pallet_staking_async::UnappliedSlash + **/ + PezpalletStakingAsyncUnappliedSlash: { + validator: 'AccountId32', + own: 'u128', + others: 'Vec<(AccountId32,u128)>', + reporter: 'Option', + payout: 'u128' + }, + /** + * Lookup994: pallet_staking_async::SnapshotStatus + **/ + PezpalletStakingAsyncSnapshotStatus: { + _enum: { + Ongoing: 'AccountId32', + Consumed: 'Null', + Waiting: 'Null' + } + }, + /** + * Lookup996: pallet_staking_async::pallet::pallet::PruningStep + **/ + PezpalletStakingAsyncPezpalletPruningStep: { + _enum: ['ErasStakersPaged', 'ErasStakersOverview', 'ErasValidatorPrefs', 'ClaimedRewards', 'ErasValidatorReward', 'ErasRewardPoints', 'ErasTotalStake'] + }, + /** + * Lookup997: pallet_staking_async::pallet::pallet::Error + **/ + PezpalletStakingAsyncPezpalletError: { + _enum: ['NotController', 'NotStash', 'AlreadyBonded', 'AlreadyPaired', 'EmptyTargets', 'DuplicateIndex', 'InvalidSlashRecord', 'InsufficientBond', 'NoMoreChunks', 'NoUnlockChunk', 'FundedTarget', 'InvalidEraToReward', 'InvalidNumberOfNominations', 'AlreadyClaimed', 'InvalidPage', 'IncorrectHistoryDepth', 'BadState', 'TooManyTargets', 'BadTarget', 'CannotChillOther', 'TooManyNominators', 'TooManyValidators', 'CommissionTooLow', 'BoundNotMet', 'ControllerDeprecated', 'CannotRestoreLedger', 'RewardDestinationRestricted', 'NotEnoughFunds', 'VirtualStakerNotAllowed', 'CannotReapStash', 'AlreadyMigrated', 'EraNotStarted', 'Restricted', 'UnappliedSlashesInPreviousEra', 'EraNotPrunable', 'CancelledSlash'] + }, + /** + * Lookup999: pallet_ah_ops::pallet::Error + **/ + PezpalletAhOpsError: { + _enum: ['NoLeaseReserve', 'NoCrowdloanContribution', 'NoCrowdloanReserve', 'FailedToWithdrawCrowdloanContribution', 'NotYet', 'ContributionsRemaining', 'WrongDerivedTranslation', 'NotSovereign', 'InternalError', 'MigrationNotCompleted', 'ZeroBalance'] + }, + /** + * Lookup1000: pallet_ah_migrator::BalancesBefore + **/ + PezpalletAhMigratorBalancesBefore: { + checkingAccount: 'u128', + totalIssuance: 'u128' + }, + /** + * Lookup1001: pallet_ah_migrator::pallet::Error + **/ + PezpalletAhMigratorError: { + _enum: ['FailedToUnreserveDeposit', 'FailedToProcessAccount', 'InsertConflict', 'FailedToConvertType', 'PreimageNotFound', 'FailedToConvertCall', 'FailedToBoundCall', 'XcmError', 'FailedToIntegrateVestingSchedule', 'FailedToCalculateCheckingAccount', 'FailedToBoundVector', 'DmpQueuePriorityAlreadySet', 'InvalidParameter', 'PreimageMissing', 'PreimageTooBig', 'PreimageChunkMissing', 'PreimageStatusInvalid', 'BadXcmVersion', 'InvalidOrigin'] + }, + /** + * Lookup1014: asset_hub_polkadot_runtime::Runtime + **/ + AssetHubPezkuwiRuntimeRuntime: 'Null', + /** + * Lookup1062: xcm::VersionedAsset + **/ + XcmVersionedAsset: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: 'XcmV3MultiAsset', + V4: 'StagingXcmV4Asset', + V5: 'StagingXcmV5Asset' + } + }, + /** + * Lookup1064: xcm_runtime_apis::trusted_query::Error + **/ + XcmRuntimeApisTrustedQueryError: { + _enum: ['VersionedAssetConversionFailed', 'VersionedLocationConversionFailed'] + }, + /** + * Lookup1066: xcm_runtime_apis::authorized_aliases::Error + **/ + XcmRuntimeApisAuthorizedAliasesError: { + _enum: ['LocationVersionConversionFailed'] + }, + /** + * Lookup1069: assets_common::runtime_api::FungiblesAccessError + **/ + AssetsCommonRuntimeApiFungiblesAccessError: { + _enum: ['AssetIdConversionFailed', 'AmountToBalanceConversionFailed'] + }, + /** + * Lookup1070: cumulus_primitives_core::CollationInfo + **/ + PezcumulusPrimitivesCoreCollationInfo: { + upwardMessages: 'Vec', + horizontalMessages: 'Vec', + newValidationCode: 'Option', + processedDownwardMessages: 'u32', + hrmpWatermark: 'u32', + headData: 'Bytes' + }, + /** + * Lookup1079: asset_hub_polkadot_runtime::RuntimeError + **/ + AssetHubPezkuwiRuntimeRuntimeError: { + _enum: { + System: 'PezframeSystemError', + ParachainSystem: 'PezcumulusPezpalletTeyrchainSystemError', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + Preimage: 'PezpalletPreimageError', + Scheduler: 'PezpalletSchedulerError', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + Balances: 'PezpalletBalancesError', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + Vesting: 'PezpalletVestingError', + Claims: 'PezkuwiRuntimeCommonClaimsPezpalletError', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + CollatorSelection: 'PezpalletCollatorSelectionError', + Session: 'PezpalletSessionError', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + XcmpQueue: 'PezcumulusPezpalletXcmpQueueError', + PolkadotXcm: 'PezpalletXcmError', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + MessageQueue: 'PezpalletMessageQueueError', + SnowbridgeSystemFrontend: 'SnowbridgePezpalletSystemFrontendError', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + Utility: 'PezpalletUtilityError', + Multisig: 'PezpalletMultisigError', + Proxy: 'PezpalletProxyError', + Indices: 'PezpalletIndicesError', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + Assets: 'PezpalletAssetsError', + Uniques: 'PezpalletUniquesError', + Nfts: 'PezpalletNftsError', + ForeignAssets: 'PezpalletAssetsError', + PoolAssets: 'PezpalletAssetsError', + AssetConversion: 'PezpalletAssetConversionError', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + Treasury: 'PezpalletTreasuryError', + ConvictionVoting: 'PezpalletConvictionVotingError', + Referenda: 'PezpalletReferendaError', + __Unused63: 'Null', + Whitelist: 'PezpalletWhitelistError', + Bounties: 'PezpalletBountiesError', + ChildBounties: 'PezpalletChildBountiesError', + AssetRate: 'PezpalletAssetRateError', + __Unused68: 'Null', + __Unused69: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationError', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + NominationPools: 'PezpalletNominationPoolsError', + __Unused81: 'Null', + VoterList: 'PezpalletBagsListError', + DelegatedStaking: 'PezpalletDelegatedStakingError', + __Unused84: 'Null', + MultiBlockElection: 'PezpalletElectionProviderMultiBlockError', + __Unused86: 'Null', + __Unused87: 'Null', + MultiBlockElectionSigned: 'PezpalletElectionProviderMultiBlockSignedPezpalletError', + Staking: 'PezpalletStakingAsyncPezpalletError', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + __Unused99: 'Null', + __Unused100: 'Null', + __Unused101: 'Null', + __Unused102: 'Null', + __Unused103: 'Null', + __Unused104: 'Null', + __Unused105: 'Null', + __Unused106: 'Null', + __Unused107: 'Null', + __Unused108: 'Null', + __Unused109: 'Null', + __Unused110: 'Null', + __Unused111: 'Null', + __Unused112: 'Null', + __Unused113: 'Null', + __Unused114: 'Null', + __Unused115: 'Null', + __Unused116: 'Null', + __Unused117: 'Null', + __Unused118: 'Null', + __Unused119: 'Null', + __Unused120: 'Null', + __Unused121: 'Null', + __Unused122: 'Null', + __Unused123: 'Null', + __Unused124: 'Null', + __Unused125: 'Null', + __Unused126: 'Null', + __Unused127: 'Null', + __Unused128: 'Null', + __Unused129: 'Null', + __Unused130: 'Null', + __Unused131: 'Null', + __Unused132: 'Null', + __Unused133: 'Null', + __Unused134: 'Null', + __Unused135: 'Null', + __Unused136: 'Null', + __Unused137: 'Null', + __Unused138: 'Null', + __Unused139: 'Null', + __Unused140: 'Null', + __Unused141: 'Null', + __Unused142: 'Null', + __Unused143: 'Null', + __Unused144: 'Null', + __Unused145: 'Null', + __Unused146: 'Null', + __Unused147: 'Null', + __Unused148: 'Null', + __Unused149: 'Null', + __Unused150: 'Null', + __Unused151: 'Null', + __Unused152: 'Null', + __Unused153: 'Null', + __Unused154: 'Null', + __Unused155: 'Null', + __Unused156: 'Null', + __Unused157: 'Null', + __Unused158: 'Null', + __Unused159: 'Null', + __Unused160: 'Null', + __Unused161: 'Null', + __Unused162: 'Null', + __Unused163: 'Null', + __Unused164: 'Null', + __Unused165: 'Null', + __Unused166: 'Null', + __Unused167: 'Null', + __Unused168: 'Null', + __Unused169: 'Null', + __Unused170: 'Null', + __Unused171: 'Null', + __Unused172: 'Null', + __Unused173: 'Null', + __Unused174: 'Null', + __Unused175: 'Null', + __Unused176: 'Null', + __Unused177: 'Null', + __Unused178: 'Null', + __Unused179: 'Null', + __Unused180: 'Null', + __Unused181: 'Null', + __Unused182: 'Null', + __Unused183: 'Null', + __Unused184: 'Null', + __Unused185: 'Null', + __Unused186: 'Null', + __Unused187: 'Null', + __Unused188: 'Null', + __Unused189: 'Null', + __Unused190: 'Null', + __Unused191: 'Null', + __Unused192: 'Null', + __Unused193: 'Null', + __Unused194: 'Null', + __Unused195: 'Null', + __Unused196: 'Null', + __Unused197: 'Null', + __Unused198: 'Null', + __Unused199: 'Null', + __Unused200: 'Null', + __Unused201: 'Null', + __Unused202: 'Null', + __Unused203: 'Null', + __Unused204: 'Null', + __Unused205: 'Null', + __Unused206: 'Null', + __Unused207: 'Null', + __Unused208: 'Null', + __Unused209: 'Null', + __Unused210: 'Null', + __Unused211: 'Null', + __Unused212: 'Null', + __Unused213: 'Null', + __Unused214: 'Null', + __Unused215: 'Null', + __Unused216: 'Null', + __Unused217: 'Null', + __Unused218: 'Null', + __Unused219: 'Null', + __Unused220: 'Null', + __Unused221: 'Null', + __Unused222: 'Null', + __Unused223: 'Null', + __Unused224: 'Null', + __Unused225: 'Null', + __Unused226: 'Null', + __Unused227: 'Null', + __Unused228: 'Null', + __Unused229: 'Null', + __Unused230: 'Null', + __Unused231: 'Null', + __Unused232: 'Null', + __Unused233: 'Null', + __Unused234: 'Null', + __Unused235: 'Null', + __Unused236: 'Null', + __Unused237: 'Null', + __Unused238: 'Null', + __Unused239: 'Null', + __Unused240: 'Null', + __Unused241: 'Null', + __Unused242: 'Null', + __Unused243: 'Null', + __Unused244: 'Null', + __Unused245: 'Null', + __Unused246: 'Null', + __Unused247: 'Null', + __Unused248: 'Null', + __Unused249: 'Null', + __Unused250: 'Null', + __Unused251: 'Null', + __Unused252: 'Null', + __Unused253: 'Null', + AhOps: 'PezpalletAhOpsError', + AhMigrator: 'PezpalletAhMigratorError' + } + } +}; diff --git a/packages/types-augment/src/lookup/bizinikiwi.ts b/packages/types-augment/src/lookup/bizinikiwi.ts new file mode 100644 index 0000000..0c02879 --- /dev/null +++ b/packages/types-augment/src/lookup/bizinikiwi.ts @@ -0,0 +1,9674 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +/* eslint-disable sort-keys */ + +export default { + /** + * Lookup3: frame_system::AccountInfo> + **/ + PezframeSystemAccountInfo: { + nonce: 'u32', + consumers: 'u32', + providers: 'u32', + sufficients: 'u32', + data: 'PezpalletBalancesAccountData' + }, + /** + * Lookup5: pallet_balances::types::AccountData + **/ + PezpalletBalancesAccountData: { + free: 'u128', + reserved: 'u128', + frozen: 'u128', + flags: 'u128' + }, + /** + * Lookup9: frame_support::dispatch::PerDispatchClass + **/ + PezframeSupportDispatchPerDispatchClassWeight: { + normal: 'PezspWeightsWeightV2Weight', + operational: 'PezspWeightsWeightV2Weight', + mandatory: 'PezspWeightsWeightV2Weight' + }, + /** + * Lookup10: sp_weights::weight_v2::Weight + **/ + PezspWeightsWeightV2Weight: { + refTime: 'Compact', + proofSize: 'Compact' + }, + /** + * Lookup15: sp_runtime::generic::digest::Digest + **/ + PezspRuntimeDigest: { + logs: 'Vec' + }, + /** + * Lookup17: sp_runtime::generic::digest::DigestItem + **/ + PezspRuntimeDigestDigestItem: { + _enum: { + Other: 'Bytes', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + Consensus: '([u8;4],Bytes)', + Seal: '([u8;4],Bytes)', + PreRuntime: '([u8;4],Bytes)', + __Unused7: 'Null', + RuntimeEnvironmentUpdated: 'Null' + } + }, + /** + * Lookup20: frame_system::EventRecord + **/ + PezframeSystemEventRecord: { + phase: 'PezframeSystemPhase', + event: 'RuntimeEvent', + topics: 'Vec' + }, + /** + * Lookup22: frame_system::pallet::Event + **/ + PezframeSystemEvent: { + _enum: { + ExtrinsicSuccess: { + dispatchInfo: 'PezframeSystemDispatchEventInfo', + }, + ExtrinsicFailed: { + dispatchError: 'PezspRuntimeDispatchError', + dispatchInfo: 'PezframeSystemDispatchEventInfo', + }, + CodeUpdated: 'Null', + NewAccount: { + account: 'AccountId32', + }, + KilledAccount: { + account: 'AccountId32', + }, + Remarked: { + _alias: { + hash_: 'hash', + }, + sender: 'AccountId32', + hash_: 'H256', + }, + UpgradeAuthorized: { + codeHash: 'H256', + checkVersion: 'bool', + }, + RejectedInvalidAuthorizedUpgrade: { + codeHash: 'H256', + error: 'PezspRuntimeDispatchError' + } + } + }, + /** + * Lookup23: frame_system::DispatchEventInfo + **/ + PezframeSystemDispatchEventInfo: { + weight: 'PezspWeightsWeightV2Weight', + class: 'PezframeSupportDispatchDispatchClass', + paysFee: 'PezframeSupportDispatchPays' + }, + /** + * Lookup24: frame_support::dispatch::DispatchClass + **/ + PezframeSupportDispatchDispatchClass: { + _enum: ['Normal', 'Operational', 'Mandatory'] + }, + /** + * Lookup25: frame_support::dispatch::Pays + **/ + PezframeSupportDispatchPays: { + _enum: ['Yes', 'No'] + }, + /** + * Lookup26: sp_runtime::DispatchError + **/ + PezspRuntimeDispatchError: { + _enum: { + Other: 'Null', + CannotLookup: 'Null', + BadOrigin: 'Null', + Module: 'PezspRuntimeModuleError', + ConsumerRemaining: 'Null', + NoProviders: 'Null', + TooManyConsumers: 'Null', + Token: 'PezspRuntimeTokenError', + Arithmetic: 'PezspArithmeticArithmeticError', + Transactional: 'PezspRuntimeTransactionalError', + Exhausted: 'Null', + Corruption: 'Null', + Unavailable: 'Null', + RootNotAllowed: 'Null', + Trie: 'PezspRuntimeProvingTrieTrieError' + } + }, + /** + * Lookup27: sp_runtime::ModuleError + **/ + PezspRuntimeModuleError: { + index: 'u8', + error: '[u8;4]' + }, + /** + * Lookup28: sp_runtime::TokenError + **/ + PezspRuntimeTokenError: { + _enum: ['FundsUnavailable', 'OnlyProvider', 'BelowMinimum', 'CannotCreate', 'UnknownAsset', 'Frozen', 'Unsupported', 'CannotCreateHold', 'NotExpendable', 'Blocked'] + }, + /** + * Lookup29: sp_arithmetic::ArithmeticError + **/ + PezspArithmeticArithmeticError: { + _enum: ['Underflow', 'Overflow', 'DivisionByZero'] + }, + /** + * Lookup30: sp_runtime::TransactionalError + **/ + PezspRuntimeTransactionalError: { + _enum: ['LimitReached', 'NoLayer'] + }, + /** + * Lookup31: sp_runtime::proving_trie::TrieError + **/ + PezspRuntimeProvingTrieTrieError: { + _enum: ['InvalidStateRoot', 'IncompleteDatabase', 'ValueAtIncompleteKey', 'DecoderError', 'InvalidHash', 'DuplicateKey', 'ExtraneousNode', 'ExtraneousValue', 'ExtraneousHashReference', 'InvalidChildReference', 'ValueMismatch', 'IncompleteProof', 'RootMismatch', 'DecodeError'] + }, + /** + * Lookup32: pallet_utility::pallet::Event + **/ + PezpalletUtilityEvent: { + _enum: { + BatchInterrupted: { + index: 'u32', + error: 'PezspRuntimeDispatchError', + }, + BatchCompleted: 'Null', + BatchCompletedWithErrors: 'Null', + ItemCompleted: 'Null', + ItemFailed: { + error: 'PezspRuntimeDispatchError', + }, + DispatchedAs: { + result: 'Result', + }, + IfElseMainSuccess: 'Null', + IfElseFallbackCalled: { + mainError: 'PezspRuntimeDispatchError' + } + } + }, + /** + * Lookup35: pallet_indices::pallet::Event + **/ + PezpalletIndicesEvent: { + _enum: { + IndexAssigned: { + who: 'AccountId32', + index: 'u32', + }, + IndexFreed: { + index: 'u32', + }, + IndexFrozen: { + index: 'u32', + who: 'AccountId32', + }, + DepositPoked: { + who: 'AccountId32', + index: 'u32', + oldDeposit: 'u128', + newDeposit: 'u128' + } + } + }, + /** + * Lookup36: pallet_balances::pallet::Event + **/ + PezpalletBalancesEvent: { + _enum: { + Endowed: { + account: 'AccountId32', + freeBalance: 'u128', + }, + DustLost: { + account: 'AccountId32', + amount: 'u128', + }, + Transfer: { + from: 'AccountId32', + to: 'AccountId32', + amount: 'u128', + }, + BalanceSet: { + who: 'AccountId32', + free: 'u128', + }, + Reserved: { + who: 'AccountId32', + amount: 'u128', + }, + Unreserved: { + who: 'AccountId32', + amount: 'u128', + }, + ReserveRepatriated: { + from: 'AccountId32', + to: 'AccountId32', + amount: 'u128', + destinationStatus: 'PezframeSupportTokensMiscBalanceStatus', + }, + Deposit: { + who: 'AccountId32', + amount: 'u128', + }, + Withdraw: { + who: 'AccountId32', + amount: 'u128', + }, + Slashed: { + who: 'AccountId32', + amount: 'u128', + }, + Minted: { + who: 'AccountId32', + amount: 'u128', + }, + Burned: { + who: 'AccountId32', + amount: 'u128', + }, + Suspended: { + who: 'AccountId32', + amount: 'u128', + }, + Restored: { + who: 'AccountId32', + amount: 'u128', + }, + Upgraded: { + who: 'AccountId32', + }, + Issued: { + amount: 'u128', + }, + Rescinded: { + amount: 'u128', + }, + Locked: { + who: 'AccountId32', + amount: 'u128', + }, + Unlocked: { + who: 'AccountId32', + amount: 'u128', + }, + Frozen: { + who: 'AccountId32', + amount: 'u128', + }, + Thawed: { + who: 'AccountId32', + amount: 'u128', + }, + TotalIssuanceForced: { + _alias: { + new_: 'new', + }, + old: 'u128', + new_: 'u128' + } + } + }, + /** + * Lookup37: frame_support::traits::tokens::misc::BalanceStatus + **/ + PezframeSupportTokensMiscBalanceStatus: { + _enum: ['Free', 'Reserved'] + }, + /** + * Lookup38: pallet_transaction_payment::pallet::Event + **/ + PezpalletTransactionPaymentEvent: { + _enum: { + TransactionFeePaid: { + who: 'AccountId32', + actualFee: 'u128', + tip: 'u128' + } + } + }, + /** + * Lookup39: pallet_asset_conversion_tx_payment::pallet::Event + **/ + PezpalletAssetConversionTxPaymentEvent: { + _enum: { + AssetTxFeePaid: { + who: 'AccountId32', + actualFee: 'u128', + tip: 'u128', + assetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + }, + AssetRefundFailed: { + nativeAmountKept: 'u128' + } + } + }, + /** + * Lookup40: frame_support::traits::tokens::fungible::union_of::NativeOrWithId + **/ + PezframeSupportTokensFungibleUnionOfNativeOrWithId: { + _enum: { + Native: 'Null', + WithId: 'u32' + } + }, + /** + * Lookup41: pallet_election_provider_multi_phase::pallet::Event + **/ + PezpalletElectionProviderMultiPhaseEvent: { + _enum: { + SolutionStored: { + compute: 'PezpalletElectionProviderMultiPhaseElectionCompute', + origin: 'Option', + prevEjected: 'bool', + }, + ElectionFinalized: { + compute: 'PezpalletElectionProviderMultiPhaseElectionCompute', + score: 'PezspNposElectionsElectionScore', + }, + ElectionFailed: 'Null', + Rewarded: { + account: 'AccountId32', + value: 'u128', + }, + Slashed: { + account: 'AccountId32', + value: 'u128', + }, + PhaseTransitioned: { + from: 'PezpalletElectionProviderMultiPhasePhase', + to: 'PezpalletElectionProviderMultiPhasePhase', + round: 'u32' + } + } + }, + /** + * Lookup42: pallet_election_provider_multi_phase::ElectionCompute + **/ + PezpalletElectionProviderMultiPhaseElectionCompute: { + _enum: ['OnChain', 'Signed', 'Unsigned', 'Fallback', 'Emergency'] + }, + /** + * Lookup44: sp_npos_elections::ElectionScore + **/ + PezspNposElectionsElectionScore: { + minimalStake: 'u128', + sumStake: 'u128', + sumStakeSquared: 'u128' + }, + /** + * Lookup45: pallet_election_provider_multi_phase::Phase + **/ + PezpalletElectionProviderMultiPhasePhase: { + _enum: { + Off: 'Null', + Signed: 'Null', + Unsigned: '(bool,u32)', + Emergency: 'Null' + } + }, + /** + * Lookup47: pallet_staking::pallet::pallet::Event + **/ + PezpalletStakingPezpalletEvent: { + _enum: { + EraPaid: { + eraIndex: 'u32', + validatorPayout: 'u128', + remainder: 'u128', + }, + Rewarded: { + stash: 'AccountId32', + dest: 'PezpalletStakingRewardDestination', + amount: 'u128', + }, + Slashed: { + staker: 'AccountId32', + amount: 'u128', + }, + SlashReported: { + validator: 'AccountId32', + fraction: 'Perbill', + slashEra: 'u32', + }, + OldSlashingReportDiscarded: { + sessionIndex: 'u32', + }, + StakersElected: 'Null', + Bonded: { + stash: 'AccountId32', + amount: 'u128', + }, + Unbonded: { + stash: 'AccountId32', + amount: 'u128', + }, + Withdrawn: { + stash: 'AccountId32', + amount: 'u128', + }, + Kicked: { + nominator: 'AccountId32', + stash: 'AccountId32', + }, + StakingElectionFailed: 'Null', + Chilled: { + stash: 'AccountId32', + }, + PayoutStarted: { + eraIndex: 'u32', + validatorStash: 'AccountId32', + page: 'u32', + next: 'Option', + }, + ValidatorPrefsSet: { + stash: 'AccountId32', + prefs: 'PezpalletStakingValidatorPrefs', + }, + SnapshotVotersSizeExceeded: { + _alias: { + size_: 'size', + }, + size_: 'u32', + }, + SnapshotTargetsSizeExceeded: { + _alias: { + size_: 'size', + }, + size_: 'u32', + }, + ForceEra: { + mode: 'PezpalletStakingForcing', + }, + ControllerBatchDeprecated: { + failures: 'u32', + }, + CurrencyMigrated: { + stash: 'AccountId32', + forceWithdraw: 'u128' + } + } + }, + /** + * Lookup48: pallet_staking::RewardDestination + **/ + PezpalletStakingRewardDestination: { + _enum: { + Staked: 'Null', + Stash: 'Null', + Controller: 'Null', + Account: 'AccountId32', + None: 'Null' + } + }, + /** + * Lookup51: pallet_staking::ValidatorPrefs + **/ + PezpalletStakingValidatorPrefs: { + commission: 'Compact', + blocked: 'bool' + }, + /** + * Lookup53: pallet_staking::Forcing + **/ + PezpalletStakingForcing: { + _enum: ['NotForcing', 'ForceNew', 'ForceNone', 'ForceAlways'] + }, + /** + * Lookup54: pallet_session::pallet::Event + **/ + PezpalletSessionEvent: { + _enum: { + NewSession: { + sessionIndex: 'u32', + }, + ValidatorDisabled: { + validator: 'AccountId32', + }, + ValidatorReenabled: { + validator: 'AccountId32' + } + } + }, + /** + * Lookup55: pallet_democracy::pallet::Event + **/ + PezpalletDemocracyEvent: { + _enum: { + Proposed: { + proposalIndex: 'u32', + deposit: 'u128', + }, + Tabled: { + proposalIndex: 'u32', + deposit: 'u128', + }, + ExternalTabled: 'Null', + Started: { + refIndex: 'u32', + threshold: 'PezpalletDemocracyVoteThreshold', + }, + Passed: { + refIndex: 'u32', + }, + NotPassed: { + refIndex: 'u32', + }, + Cancelled: { + refIndex: 'u32', + }, + Delegated: { + who: 'AccountId32', + target: 'AccountId32', + }, + Undelegated: { + account: 'AccountId32', + }, + Vetoed: { + who: 'AccountId32', + proposalHash: 'H256', + until: 'u32', + }, + Blacklisted: { + proposalHash: 'H256', + }, + Voted: { + voter: 'AccountId32', + refIndex: 'u32', + vote: 'PezpalletDemocracyVoteAccountVote', + }, + Seconded: { + seconder: 'AccountId32', + propIndex: 'u32', + }, + ProposalCanceled: { + propIndex: 'u32', + }, + MetadataSet: { + _alias: { + hash_: 'hash', + }, + owner: 'PezpalletDemocracyMetadataOwner', + hash_: 'H256', + }, + MetadataCleared: { + _alias: { + hash_: 'hash', + }, + owner: 'PezpalletDemocracyMetadataOwner', + hash_: 'H256', + }, + MetadataTransferred: { + _alias: { + hash_: 'hash', + }, + prevOwner: 'PezpalletDemocracyMetadataOwner', + owner: 'PezpalletDemocracyMetadataOwner', + hash_: 'H256' + } + } + }, + /** + * Lookup56: pallet_democracy::vote_threshold::VoteThreshold + **/ + PezpalletDemocracyVoteThreshold: { + _enum: ['SuperMajorityApprove', 'SuperMajorityAgainst', 'SimpleMajority'] + }, + /** + * Lookup57: pallet_democracy::vote::AccountVote + **/ + PezpalletDemocracyVoteAccountVote: { + _enum: { + Standard: { + vote: 'Vote', + balance: 'u128', + }, + Split: { + aye: 'u128', + nay: 'u128' + } + } + }, + /** + * Lookup59: pallet_democracy::types::MetadataOwner + **/ + PezpalletDemocracyMetadataOwner: { + _enum: { + External: 'Null', + Proposal: 'u32', + Referendum: 'u32' + } + }, + /** + * Lookup60: pallet_collective::pallet::Event + **/ + PezpalletCollectiveEvent: { + _enum: { + Proposed: { + account: 'AccountId32', + proposalIndex: 'u32', + proposalHash: 'H256', + threshold: 'u32', + }, + Voted: { + account: 'AccountId32', + proposalHash: 'H256', + voted: 'bool', + yes: 'u32', + no: 'u32', + }, + Approved: { + proposalHash: 'H256', + }, + Disapproved: { + proposalHash: 'H256', + }, + Executed: { + proposalHash: 'H256', + result: 'Result', + }, + MemberExecuted: { + proposalHash: 'H256', + result: 'Result', + }, + Closed: { + proposalHash: 'H256', + yes: 'u32', + no: 'u32', + }, + Killed: { + proposalHash: 'H256', + }, + ProposalCostBurned: { + proposalHash: 'H256', + who: 'AccountId32', + }, + ProposalCostReleased: { + proposalHash: 'H256', + who: 'AccountId32' + } + } + }, + /** + * Lookup62: pallet_elections_phragmen::pallet::Event + **/ + PezpalletElectionsPhragmenEvent: { + _enum: { + NewTerm: { + newMembers: 'Vec<(AccountId32,u128)>', + }, + EmptyTerm: 'Null', + ElectionError: 'Null', + MemberKicked: { + member: 'AccountId32', + }, + Renounced: { + candidate: 'AccountId32', + }, + CandidateSlashed: { + candidate: 'AccountId32', + amount: 'u128', + }, + SeatHolderSlashed: { + seatHolder: 'AccountId32', + amount: 'u128' + } + } + }, + /** + * Lookup65: pallet_membership::pallet::Event + **/ + PezpalletMembershipEvent: { + _enum: ['MemberAdded', 'MemberRemoved', 'MembersSwapped', 'MembersReset', 'KeyChanged', 'Dummy'] + }, + /** + * Lookup66: pallet_grandpa::pallet::Event + **/ + PezpalletGrandpaEvent: { + _enum: { + NewAuthorities: { + authoritySet: 'Vec<(PezspConsensusGrandpaAppPublic,u64)>', + }, + Paused: 'Null', + Resumed: 'Null' + } + }, + /** + * Lookup69: sp_consensus_grandpa::app::Public + **/ + PezspConsensusGrandpaAppPublic: '[u8;32]', + /** + * Lookup70: pallet_treasury::pallet::Event + **/ + PezpalletTreasuryEvent: { + _enum: { + Spending: { + budgetRemaining: 'u128', + }, + Awarded: { + proposalIndex: 'u32', + award: 'u128', + account: 'AccountId32', + }, + Burnt: { + burntFunds: 'u128', + }, + Rollover: { + rolloverBalance: 'u128', + }, + Deposit: { + value: 'u128', + }, + SpendApproved: { + proposalIndex: 'u32', + amount: 'u128', + beneficiary: 'AccountId32', + }, + UpdatedInactive: { + reactivated: 'u128', + deactivated: 'u128', + }, + AssetSpendApproved: { + index: 'u32', + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + amount: 'u128', + beneficiary: 'AccountId32', + validFrom: 'u32', + expireAt: 'u32', + }, + AssetSpendVoided: { + index: 'u32', + }, + Paid: { + index: 'u32', + paymentId: 'Null', + }, + PaymentFailed: { + index: 'u32', + paymentId: 'Null', + }, + SpendProcessed: { + index: 'u32' + } + } + }, + /** + * Lookup71: pallet_asset_rate::pallet::Event + **/ + PezpalletAssetRateEvent: { + _enum: { + AssetRateCreated: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rate: 'u128', + }, + AssetRateRemoved: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + }, + AssetRateUpdated: { + _alias: { + new_: 'new', + }, + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + old: 'u128', + new_: 'u128' + } + } + }, + /** + * Lookup73: pallet_contracts::pallet::Event + **/ + PezpalletContractsEvent: { + _enum: { + Instantiated: { + deployer: 'AccountId32', + contract: 'AccountId32', + }, + Terminated: { + contract: 'AccountId32', + beneficiary: 'AccountId32', + }, + CodeStored: { + codeHash: 'H256', + depositHeld: 'u128', + uploader: 'AccountId32', + }, + ContractEmitted: { + contract: 'AccountId32', + data: 'Bytes', + }, + CodeRemoved: { + codeHash: 'H256', + depositReleased: 'u128', + remover: 'AccountId32', + }, + ContractCodeUpdated: { + contract: 'AccountId32', + newCodeHash: 'H256', + oldCodeHash: 'H256', + }, + Called: { + caller: 'PezpalletContractsOrigin', + contract: 'AccountId32', + }, + DelegateCalled: { + contract: 'AccountId32', + codeHash: 'H256', + }, + StorageDepositTransferredAndHeld: { + from: 'AccountId32', + to: 'AccountId32', + amount: 'u128', + }, + StorageDepositTransferredAndReleased: { + from: 'AccountId32', + to: 'AccountId32', + amount: 'u128' + } + } + }, + /** + * Lookup74: pallet_contracts::Origin + **/ + PezpalletContractsOrigin: { + _enum: { + Root: 'Null', + Signed: 'AccountId32' + } + }, + /** + * Lookup75: kitchensink_runtime::Runtime + **/ + KitchensinkRuntimeRuntime: 'Null', + /** + * Lookup76: pallet_sudo::pallet::Event + **/ + PezpalletSudoEvent: { + _enum: { + Sudid: { + sudoResult: 'Result', + }, + KeyChanged: { + _alias: { + new_: 'new', + }, + old: 'Option', + new_: 'AccountId32', + }, + KeyRemoved: 'Null', + SudoAsDone: { + sudoResult: 'Result' + } + } + }, + /** + * Lookup77: pallet_im_online::pallet::Event + **/ + PezpalletImOnlineEvent: { + _enum: { + HeartbeatReceived: { + authorityId: 'PezpalletImOnlineSr25519AppSr25519Public', + }, + AllGood: 'Null', + SomeOffline: { + offline: 'Vec<(AccountId32,Null)>' + } + } + }, + /** + * Lookup78: pallet_im_online::sr25519::app_sr25519::Public + **/ + PezpalletImOnlineSr25519AppSr25519Public: '[u8;32]', + /** + * Lookup81: pallet_offences::pallet::Event + **/ + PezpalletOffencesEvent: { + _enum: { + Offence: { + kind: '[u8;16]', + timeslot: 'Bytes' + } + } + }, + /** + * Lookup83: pallet_identity::pallet::Event + **/ + PezpalletIdentityEvent: { + _enum: { + IdentitySet: { + who: 'AccountId32', + }, + IdentityCleared: { + who: 'AccountId32', + deposit: 'u128', + }, + IdentityKilled: { + who: 'AccountId32', + deposit: 'u128', + }, + JudgementRequested: { + who: 'AccountId32', + registrarIndex: 'u32', + }, + JudgementUnrequested: { + who: 'AccountId32', + registrarIndex: 'u32', + }, + JudgementGiven: { + target: 'AccountId32', + registrarIndex: 'u32', + }, + RegistrarAdded: { + registrarIndex: 'u32', + }, + SubIdentityAdded: { + sub: 'AccountId32', + main: 'AccountId32', + deposit: 'u128', + }, + SubIdentitiesSet: { + main: 'AccountId32', + numberOfSubs: 'u32', + newDeposit: 'u128', + }, + SubIdentityRenamed: { + sub: 'AccountId32', + main: 'AccountId32', + }, + SubIdentityRemoved: { + sub: 'AccountId32', + main: 'AccountId32', + deposit: 'u128', + }, + SubIdentityRevoked: { + sub: 'AccountId32', + main: 'AccountId32', + deposit: 'u128', + }, + AuthorityAdded: { + authority: 'AccountId32', + }, + AuthorityRemoved: { + authority: 'AccountId32', + }, + UsernameSet: { + who: 'AccountId32', + username: 'Bytes', + }, + UsernameQueued: { + who: 'AccountId32', + username: 'Bytes', + expiration: 'u32', + }, + PreapprovalExpired: { + whose: 'AccountId32', + }, + PrimaryUsernameSet: { + who: 'AccountId32', + username: 'Bytes', + }, + DanglingUsernameRemoved: { + who: 'AccountId32', + username: 'Bytes', + }, + UsernameUnbound: { + username: 'Bytes', + }, + UsernameRemoved: { + username: 'Bytes', + }, + UsernameKilled: { + username: 'Bytes' + } + } + }, + /** + * Lookup85: pallet_society::pallet::Event + **/ + PezpalletSocietyEvent: { + _enum: { + Founded: { + founder: 'AccountId32', + }, + Bid: { + candidateId: 'AccountId32', + offer: 'u128', + }, + Vouch: { + candidateId: 'AccountId32', + offer: 'u128', + vouching: 'AccountId32', + }, + AutoUnbid: { + candidate: 'AccountId32', + }, + Unbid: { + candidate: 'AccountId32', + }, + Unvouch: { + candidate: 'AccountId32', + }, + Inducted: { + primary: 'AccountId32', + candidates: 'Vec', + }, + SuspendedMemberJudgement: { + who: 'AccountId32', + judged: 'bool', + }, + CandidateSuspended: { + candidate: 'AccountId32', + }, + MemberSuspended: { + member: 'AccountId32', + }, + Challenged: { + member: 'AccountId32', + }, + Vote: { + candidate: 'AccountId32', + voter: 'AccountId32', + vote: 'bool', + }, + DefenderVote: { + voter: 'AccountId32', + vote: 'bool', + }, + NewParams: { + params: 'PezpalletSocietyGroupParams', + }, + Unfounded: { + founder: 'AccountId32', + }, + Deposit: { + value: 'u128', + }, + Elevated: { + member: 'AccountId32', + rank: 'u32' + } + } + }, + /** + * Lookup87: pallet_society::GroupParams + **/ + PezpalletSocietyGroupParams: { + maxMembers: 'u32', + maxIntake: 'u32', + maxStrikes: 'u32', + candidateDeposit: 'u128' + }, + /** + * Lookup88: pallet_recovery::pallet::Event + **/ + PezpalletRecoveryEvent: { + _enum: { + RecoveryCreated: { + account: 'AccountId32', + }, + RecoveryInitiated: { + lostAccount: 'AccountId32', + rescuerAccount: 'AccountId32', + }, + RecoveryVouched: { + lostAccount: 'AccountId32', + rescuerAccount: 'AccountId32', + sender: 'AccountId32', + }, + RecoveryClosed: { + lostAccount: 'AccountId32', + rescuerAccount: 'AccountId32', + }, + AccountRecovered: { + lostAccount: 'AccountId32', + rescuerAccount: 'AccountId32', + }, + RecoveryRemoved: { + lostAccount: 'AccountId32' + } + } + }, + /** + * Lookup89: pallet_vesting::pallet::Event + **/ + PezpalletVestingEvent: { + _enum: { + VestingUpdated: { + account: 'AccountId32', + unvested: 'u128', + }, + VestingCompleted: { + account: 'AccountId32' + } + } + }, + /** + * Lookup90: pallet_scheduler::pallet::Event + **/ + PezpalletSchedulerEvent: { + _enum: { + Scheduled: { + when: 'u32', + index: 'u32', + }, + Canceled: { + when: 'u32', + index: 'u32', + }, + Dispatched: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + result: 'Result', + }, + RetrySet: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + period: 'u32', + retries: 'u8', + }, + RetryCancelled: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + CallUnavailable: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + PeriodicFailed: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + RetryFailed: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + PermanentlyOverweight: { + task: '(u32,u32)', + id: 'Option<[u8;32]>', + }, + AgendaIncomplete: { + when: 'u32' + } + } + }, + /** + * Lookup93: pallet_glutton::pallet::Event + **/ + PezpalletGluttonEvent: { + _enum: { + PalletInitialized: { + reinit: 'bool', + }, + ComputationLimitSet: { + compute: 'u64', + }, + StorageLimitSet: { + storage: 'u64', + }, + BlockLengthLimitSet: { + blockLength: 'u64' + } + } + }, + /** + * Lookup95: pallet_preimage::pallet::Event + **/ + PezpalletPreimageEvent: { + _enum: { + Noted: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + Requested: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + Cleared: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256' + } + } + }, + /** + * Lookup96: pallet_proxy::pallet::Event + **/ + PezpalletProxyEvent: { + _enum: { + ProxyExecuted: { + result: 'Result', + }, + PureCreated: { + pure: 'AccountId32', + who: 'AccountId32', + proxyType: 'KitchensinkRuntimeProxyType', + disambiguationIndex: 'u16', + }, + Announced: { + real: 'AccountId32', + proxy: 'AccountId32', + callHash: 'H256', + }, + ProxyAdded: { + delegator: 'AccountId32', + delegatee: 'AccountId32', + proxyType: 'KitchensinkRuntimeProxyType', + delay: 'u32', + }, + ProxyRemoved: { + delegator: 'AccountId32', + delegatee: 'AccountId32', + proxyType: 'KitchensinkRuntimeProxyType', + delay: 'u32', + }, + DepositPoked: { + who: 'AccountId32', + kind: 'PezpalletProxyDepositKind', + oldDeposit: 'u128', + newDeposit: 'u128' + } + } + }, + /** + * Lookup97: kitchensink_runtime::ProxyType + **/ + KitchensinkRuntimeProxyType: { + _enum: ['Any', 'NonTransfer', 'Governance', 'Staking'] + }, + /** + * Lookup99: pallet_proxy::DepositKind + **/ + PezpalletProxyDepositKind: { + _enum: ['Proxies', 'Announcements'] + }, + /** + * Lookup100: pallet_multisig::pallet::Event + **/ + PezpalletMultisigEvent: { + _enum: { + NewMultisig: { + approving: 'AccountId32', + multisig: 'AccountId32', + callHash: '[u8;32]', + }, + MultisigApproval: { + approving: 'AccountId32', + timepoint: 'PezpalletMultisigTimepoint', + multisig: 'AccountId32', + callHash: '[u8;32]', + }, + MultisigExecuted: { + approving: 'AccountId32', + timepoint: 'PezpalletMultisigTimepoint', + multisig: 'AccountId32', + callHash: '[u8;32]', + result: 'Result', + }, + MultisigCancelled: { + cancelling: 'AccountId32', + timepoint: 'PezpalletMultisigTimepoint', + multisig: 'AccountId32', + callHash: '[u8;32]', + }, + DepositPoked: { + who: 'AccountId32', + callHash: '[u8;32]', + oldDeposit: 'u128', + newDeposit: 'u128' + } + } + }, + /** + * Lookup101: pallet_multisig::Timepoint + **/ + PezpalletMultisigTimepoint: { + height: 'u32', + index: 'u32' + }, + /** + * Lookup102: pallet_bounties::pallet::Event + **/ + PezpalletBountiesEvent: { + _enum: { + BountyProposed: { + index: 'u32', + }, + BountyRejected: { + index: 'u32', + bond: 'u128', + }, + BountyBecameActive: { + index: 'u32', + }, + BountyAwarded: { + index: 'u32', + beneficiary: 'AccountId32', + }, + BountyClaimed: { + index: 'u32', + payout: 'u128', + beneficiary: 'AccountId32', + }, + BountyCanceled: { + index: 'u32', + }, + BountyExtended: { + index: 'u32', + }, + BountyApproved: { + index: 'u32', + }, + CuratorProposed: { + bountyId: 'u32', + curator: 'AccountId32', + }, + CuratorUnassigned: { + bountyId: 'u32', + }, + CuratorAccepted: { + bountyId: 'u32', + curator: 'AccountId32' + } + } + }, + /** + * Lookup103: pallet_tips::pallet::Event + **/ + PezpalletTipsEvent: { + _enum: { + NewTip: { + tipHash: 'H256', + }, + TipClosing: { + tipHash: 'H256', + }, + TipClosed: { + tipHash: 'H256', + who: 'AccountId32', + payout: 'u128', + }, + TipRetracted: { + tipHash: 'H256', + }, + TipSlashed: { + tipHash: 'H256', + finder: 'AccountId32', + deposit: 'u128' + } + } + }, + /** + * Lookup104: pallet_assets::pallet::Event + **/ + PezpalletAssetsEvent: { + _enum: { + Created: { + assetId: 'u32', + creator: 'AccountId32', + owner: 'AccountId32', + }, + Issued: { + assetId: 'u32', + owner: 'AccountId32', + amount: 'u128', + }, + Transferred: { + assetId: 'u32', + from: 'AccountId32', + to: 'AccountId32', + amount: 'u128', + }, + Burned: { + assetId: 'u32', + owner: 'AccountId32', + balance: 'u128', + }, + TeamChanged: { + assetId: 'u32', + issuer: 'AccountId32', + admin: 'AccountId32', + freezer: 'AccountId32', + }, + OwnerChanged: { + assetId: 'u32', + owner: 'AccountId32', + }, + Frozen: { + assetId: 'u32', + who: 'AccountId32', + }, + Thawed: { + assetId: 'u32', + who: 'AccountId32', + }, + AssetFrozen: { + assetId: 'u32', + }, + AssetThawed: { + assetId: 'u32', + }, + AccountsDestroyed: { + assetId: 'u32', + accountsDestroyed: 'u32', + accountsRemaining: 'u32', + }, + ApprovalsDestroyed: { + assetId: 'u32', + approvalsDestroyed: 'u32', + approvalsRemaining: 'u32', + }, + DestructionStarted: { + assetId: 'u32', + }, + Destroyed: { + assetId: 'u32', + }, + ForceCreated: { + assetId: 'u32', + owner: 'AccountId32', + }, + MetadataSet: { + assetId: 'u32', + name: 'Bytes', + symbol: 'Bytes', + decimals: 'u8', + isFrozen: 'bool', + }, + MetadataCleared: { + assetId: 'u32', + }, + ApprovedTransfer: { + assetId: 'u32', + source: 'AccountId32', + delegate: 'AccountId32', + amount: 'u128', + }, + ApprovalCancelled: { + assetId: 'u32', + owner: 'AccountId32', + delegate: 'AccountId32', + }, + TransferredApproved: { + assetId: 'u32', + owner: 'AccountId32', + delegate: 'AccountId32', + destination: 'AccountId32', + amount: 'u128', + }, + AssetStatusChanged: { + assetId: 'u32', + }, + AssetMinBalanceChanged: { + assetId: 'u32', + newMinBalance: 'u128', + }, + Touched: { + assetId: 'u32', + who: 'AccountId32', + depositor: 'AccountId32', + }, + Blocked: { + assetId: 'u32', + who: 'AccountId32', + }, + Deposited: { + assetId: 'u32', + who: 'AccountId32', + amount: 'u128', + }, + Withdrawn: { + assetId: 'u32', + who: 'AccountId32', + amount: 'u128' + } + } + }, + /** + * Lookup106: pallet_lottery::pallet::Event + **/ + PezpalletLotteryEvent: { + _enum: { + LotteryStarted: 'Null', + CallsUpdated: 'Null', + Winner: { + winner: 'AccountId32', + lotteryBalance: 'u128', + }, + TicketBought: { + who: 'AccountId32', + callIndex: '(u8,u8)' + } + } + }, + /** + * Lookup108: pallet_nis::pallet::Event + **/ + PezpalletNisEvent: { + _enum: { + BidPlaced: { + who: 'AccountId32', + amount: 'u128', + duration: 'u32', + }, + BidRetracted: { + who: 'AccountId32', + amount: 'u128', + duration: 'u32', + }, + BidDropped: { + who: 'AccountId32', + amount: 'u128', + duration: 'u32', + }, + Issued: { + index: 'u32', + expiry: 'u32', + who: 'AccountId32', + proportion: 'Perquintill', + amount: 'u128', + }, + Thawed: { + index: 'u32', + who: 'AccountId32', + proportion: 'Perquintill', + amount: 'u128', + dropped: 'bool', + }, + Funded: { + deficit: 'u128', + }, + Transferred: { + from: 'AccountId32', + to: 'AccountId32', + index: 'u32' + } + } + }, + /** + * Lookup110: pallet_uniques::pallet::Event + **/ + PezpalletUniquesEvent: { + _enum: { + Created: { + collection: 'u32', + creator: 'AccountId32', + owner: 'AccountId32', + }, + ForceCreated: { + collection: 'u32', + owner: 'AccountId32', + }, + Destroyed: { + collection: 'u32', + }, + Issued: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + }, + Transferred: { + collection: 'u32', + item: 'u32', + from: 'AccountId32', + to: 'AccountId32', + }, + Burned: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + }, + Frozen: { + collection: 'u32', + item: 'u32', + }, + Thawed: { + collection: 'u32', + item: 'u32', + }, + CollectionFrozen: { + collection: 'u32', + }, + CollectionThawed: { + collection: 'u32', + }, + OwnerChanged: { + collection: 'u32', + newOwner: 'AccountId32', + }, + TeamChanged: { + collection: 'u32', + issuer: 'AccountId32', + admin: 'AccountId32', + freezer: 'AccountId32', + }, + ApprovedTransfer: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + delegate: 'AccountId32', + }, + ApprovalCancelled: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + delegate: 'AccountId32', + }, + ItemStatusChanged: { + collection: 'u32', + }, + CollectionMetadataSet: { + collection: 'u32', + data: 'Bytes', + isFrozen: 'bool', + }, + CollectionMetadataCleared: { + collection: 'u32', + }, + MetadataSet: { + collection: 'u32', + item: 'u32', + data: 'Bytes', + isFrozen: 'bool', + }, + MetadataCleared: { + collection: 'u32', + item: 'u32', + }, + Redeposited: { + collection: 'u32', + successfulItems: 'Vec', + }, + AttributeSet: { + collection: 'u32', + maybeItem: 'Option', + key: 'Bytes', + value: 'Bytes', + }, + AttributeCleared: { + collection: 'u32', + maybeItem: 'Option', + key: 'Bytes', + }, + OwnershipAcceptanceChanged: { + who: 'AccountId32', + maybeCollection: 'Option', + }, + CollectionMaxSupplySet: { + collection: 'u32', + maxSupply: 'u32', + }, + ItemPriceSet: { + collection: 'u32', + item: 'u32', + price: 'u128', + whitelistedBuyer: 'Option', + }, + ItemPriceRemoved: { + collection: 'u32', + item: 'u32', + }, + ItemBought: { + collection: 'u32', + item: 'u32', + price: 'u128', + seller: 'AccountId32', + buyer: 'AccountId32' + } + } + }, + /** + * Lookup114: pallet_nfts::pallet::Event + **/ + PezpalletNftsEvent: { + _enum: { + Created: { + collection: 'u32', + creator: 'AccountId32', + owner: 'AccountId32', + }, + ForceCreated: { + collection: 'u32', + owner: 'AccountId32', + }, + Destroyed: { + collection: 'u32', + }, + Issued: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + }, + Transferred: { + collection: 'u32', + item: 'u32', + from: 'AccountId32', + to: 'AccountId32', + }, + Burned: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + }, + ItemTransferLocked: { + collection: 'u32', + item: 'u32', + }, + ItemTransferUnlocked: { + collection: 'u32', + item: 'u32', + }, + ItemPropertiesLocked: { + collection: 'u32', + item: 'u32', + lockMetadata: 'bool', + lockAttributes: 'bool', + }, + CollectionLocked: { + collection: 'u32', + }, + OwnerChanged: { + collection: 'u32', + newOwner: 'AccountId32', + }, + TeamChanged: { + collection: 'u32', + issuer: 'Option', + admin: 'Option', + freezer: 'Option', + }, + TransferApproved: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + delegate: 'AccountId32', + deadline: 'Option', + }, + ApprovalCancelled: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + delegate: 'AccountId32', + }, + AllApprovalsCancelled: { + collection: 'u32', + item: 'u32', + owner: 'AccountId32', + }, + CollectionConfigChanged: { + collection: 'u32', + }, + CollectionMetadataSet: { + collection: 'u32', + data: 'Bytes', + }, + CollectionMetadataCleared: { + collection: 'u32', + }, + ItemMetadataSet: { + collection: 'u32', + item: 'u32', + data: 'Bytes', + }, + ItemMetadataCleared: { + collection: 'u32', + item: 'u32', + }, + Redeposited: { + collection: 'u32', + successfulItems: 'Vec', + }, + AttributeSet: { + collection: 'u32', + maybeItem: 'Option', + key: 'Bytes', + value: 'Bytes', + namespace: 'PezpalletNftsAttributeNamespace', + }, + AttributeCleared: { + collection: 'u32', + maybeItem: 'Option', + key: 'Bytes', + namespace: 'PezpalletNftsAttributeNamespace', + }, + ItemAttributesApprovalAdded: { + collection: 'u32', + item: 'u32', + delegate: 'AccountId32', + }, + ItemAttributesApprovalRemoved: { + collection: 'u32', + item: 'u32', + delegate: 'AccountId32', + }, + OwnershipAcceptanceChanged: { + who: 'AccountId32', + maybeCollection: 'Option', + }, + CollectionMaxSupplySet: { + collection: 'u32', + maxSupply: 'u32', + }, + CollectionMintSettingsUpdated: { + collection: 'u32', + }, + NextCollectionIdIncremented: { + nextId: 'Option', + }, + ItemPriceSet: { + collection: 'u32', + item: 'u32', + price: 'u128', + whitelistedBuyer: 'Option', + }, + ItemPriceRemoved: { + collection: 'u32', + item: 'u32', + }, + ItemBought: { + collection: 'u32', + item: 'u32', + price: 'u128', + seller: 'AccountId32', + buyer: 'AccountId32', + }, + TipSent: { + collection: 'u32', + item: 'u32', + sender: 'AccountId32', + receiver: 'AccountId32', + amount: 'u128', + }, + SwapCreated: { + offeredCollection: 'u32', + offeredItem: 'u32', + desiredCollection: 'u32', + desiredItem: 'Option', + price: 'Option', + deadline: 'u32', + }, + SwapCancelled: { + offeredCollection: 'u32', + offeredItem: 'u32', + desiredCollection: 'u32', + desiredItem: 'Option', + price: 'Option', + deadline: 'u32', + }, + SwapClaimed: { + sentCollection: 'u32', + sentItem: 'u32', + sentItemOwner: 'AccountId32', + receivedCollection: 'u32', + receivedItem: 'u32', + receivedItemOwner: 'AccountId32', + price: 'Option', + deadline: 'u32', + }, + PreSignedAttributesSet: { + collection: 'u32', + item: 'u32', + namespace: 'PezpalletNftsAttributeNamespace', + }, + PalletAttributeSet: { + collection: 'u32', + item: 'Option', + attribute: 'PezpalletNftsPezpalletAttributes', + value: 'Bytes' + } + } + }, + /** + * Lookup116: pallet_nfts::types::AttributeNamespace + **/ + PezpalletNftsAttributeNamespace: { + _enum: { + Pallet: 'Null', + CollectionOwner: 'Null', + ItemOwner: 'Null', + Account: 'AccountId32' + } + }, + /** + * Lookup118: pallet_nfts::types::PriceWithDirection + **/ + PezpalletNftsPriceWithDirection: { + amount: 'u128', + direction: 'PezpalletNftsPriceDirection' + }, + /** + * Lookup119: pallet_nfts::types::PriceDirection + **/ + PezpalletNftsPriceDirection: { + _enum: ['Send', 'Receive'] + }, + /** + * Lookup120: pallet_nfts::types::PalletAttributes + **/ + PezpalletNftsPezpalletAttributes: { + _enum: { + UsedToClaim: 'u32', + TransferDisabled: 'Null' + } + }, + /** + * Lookup121: pallet_nft_fractionalization::pallet::Event + **/ + PezpalletNftFractionalizationEvent: { + _enum: { + NftFractionalized: { + nftCollection: 'u32', + nft: 'u32', + fractions: 'u128', + asset: 'u32', + beneficiary: 'AccountId32', + }, + NftUnified: { + nftCollection: 'u32', + nft: 'u32', + asset: 'u32', + beneficiary: 'AccountId32' + } + } + }, + /** + * Lookup122: pallet_salary::pallet::Event + **/ + PezpalletSalaryEvent: { + _enum: { + Inducted: { + who: 'AccountId32', + }, + Registered: { + who: 'AccountId32', + amount: 'u128', + }, + Paid: { + who: 'AccountId32', + beneficiary: 'AccountId32', + amount: 'u128', + id: 'Null', + }, + CycleStarted: { + index: 'u32', + }, + Swapped: { + who: 'AccountId32', + newWho: 'AccountId32' + } + } + }, + /** + * Lookup123: pallet_core_fellowship::pallet::Event + **/ + PezpalletCoreFellowshipEvent: { + _enum: { + ParamsChanged: { + params: 'PezpalletCoreFellowshipParamsTypeU128', + }, + ActiveChanged: { + who: 'AccountId32', + isActive: 'bool', + }, + Inducted: { + who: 'AccountId32', + }, + Offboarded: { + who: 'AccountId32', + }, + Promoted: { + who: 'AccountId32', + toRank: 'u16', + }, + Demoted: { + who: 'AccountId32', + toRank: 'u16', + }, + Proven: { + who: 'AccountId32', + atRank: 'u16', + }, + Requested: { + who: 'AccountId32', + wish: 'PezpalletCoreFellowshipWish', + }, + EvidenceJudged: { + who: 'AccountId32', + wish: 'PezpalletCoreFellowshipWish', + evidence: 'Bytes', + oldRank: 'u16', + newRank: 'Option', + }, + Imported: { + who: 'AccountId32', + rank: 'u16', + }, + Swapped: { + who: 'AccountId32', + newWho: 'AccountId32' + } + } + }, + /** + * Lookup124: pallet_core_fellowship::ParamsType + **/ + PezpalletCoreFellowshipParamsTypeU128: { + activeSalary: 'Vec', + passiveSalary: 'Vec', + demotionPeriod: 'Vec', + minPromotionPeriod: 'Vec', + offboardTimeout: 'u32' + }, + /** + * Lookup128: pallet_core_fellowship::Wish + **/ + PezpalletCoreFellowshipWish: { + _enum: ['Retention', 'Promotion'] + }, + /** + * Lookup131: pallet_transaction_storage::pallet::Event + **/ + PezpalletTransactionStorageEvent: { + _enum: { + Stored: { + index: 'u32', + }, + Renewed: { + index: 'u32', + }, + ProofChecked: 'Null' + } + }, + /** + * Lookup132: pallet_bags_list::pallet::Event + **/ + PezpalletBagsListEvent: { + _enum: { + Rebagged: { + who: 'AccountId32', + from: 'u64', + to: 'u64', + }, + ScoreUpdated: { + who: 'AccountId32', + newScore: 'u64' + } + } + }, + /** + * Lookup133: pallet_state_trie_migration::pallet::Event + **/ + PezpalletStateTrieMigrationEvent: { + _enum: { + Migrated: { + top: 'u32', + child: 'u32', + compute: 'PezpalletStateTrieMigrationMigrationCompute', + }, + Slashed: { + who: 'AccountId32', + amount: 'u128', + }, + AutoMigrationFinished: 'Null', + Halted: { + error: 'PezpalletStateTrieMigrationError' + } + } + }, + /** + * Lookup134: pallet_state_trie_migration::pallet::MigrationCompute + **/ + PezpalletStateTrieMigrationMigrationCompute: { + _enum: ['Signed', 'Auto'] + }, + /** + * Lookup135: pallet_state_trie_migration::pallet::Error + **/ + PezpalletStateTrieMigrationError: { + _enum: ['MaxSignedLimits', 'KeyTooLong', 'NotEnoughFunds', 'BadWitness', 'SignedMigrationNotAllowed', 'BadChildRoot'] + }, + /** + * Lookup136: pallet_child_bounties::pallet::Event + **/ + PezpalletChildBountiesEvent: { + _enum: { + Added: { + index: 'u32', + childIndex: 'u32', + }, + Awarded: { + index: 'u32', + childIndex: 'u32', + beneficiary: 'AccountId32', + }, + Claimed: { + index: 'u32', + childIndex: 'u32', + payout: 'u128', + beneficiary: 'AccountId32', + }, + Canceled: { + index: 'u32', + childIndex: 'u32' + } + } + }, + /** + * Lookup137: pallet_referenda::pallet::Event + **/ + PezpalletReferendaEvent: { + _enum: { + Submitted: { + index: 'u32', + track: 'u16', + proposal: 'PezframeSupportPreimagesBounded', + }, + DecisionDepositPlaced: { + index: 'u32', + who: 'AccountId32', + amount: 'u128', + }, + DecisionDepositRefunded: { + index: 'u32', + who: 'AccountId32', + amount: 'u128', + }, + DepositSlashed: { + who: 'AccountId32', + amount: 'u128', + }, + DecisionStarted: { + index: 'u32', + track: 'u16', + proposal: 'PezframeSupportPreimagesBounded', + tally: 'PezpalletConvictionVotingTally', + }, + ConfirmStarted: { + index: 'u32', + }, + ConfirmAborted: { + index: 'u32', + }, + Confirmed: { + index: 'u32', + tally: 'PezpalletConvictionVotingTally', + }, + Approved: { + index: 'u32', + }, + Rejected: { + index: 'u32', + tally: 'PezpalletConvictionVotingTally', + }, + TimedOut: { + index: 'u32', + tally: 'PezpalletConvictionVotingTally', + }, + Cancelled: { + index: 'u32', + tally: 'PezpalletConvictionVotingTally', + }, + Killed: { + index: 'u32', + tally: 'PezpalletConvictionVotingTally', + }, + SubmissionDepositRefunded: { + index: 'u32', + who: 'AccountId32', + amount: 'u128', + }, + MetadataSet: { + _alias: { + hash_: 'hash', + }, + index: 'u32', + hash_: 'H256', + }, + MetadataCleared: { + _alias: { + hash_: 'hash', + }, + index: 'u32', + hash_: 'H256' + } + } + }, + /** + * Lookup138: frame_support::traits::preimages::Bounded + **/ + PezframeSupportPreimagesBounded: { + _enum: { + Legacy: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + Inline: 'Bytes', + Lookup: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + len: 'u32' + } + } + }, + /** + * Lookup140: frame_system::pallet::Call + **/ + PezframeSystemCall: { + _enum: { + remark: { + remark: 'Bytes', + }, + set_heap_pages: { + pages: 'u64', + }, + set_code: { + code: 'Bytes', + }, + set_code_without_checks: { + code: 'Bytes', + }, + set_storage: { + items: 'Vec<(Bytes,Bytes)>', + }, + kill_storage: { + _alias: { + keys_: 'keys', + }, + keys_: 'Vec', + }, + kill_prefix: { + prefix: 'Bytes', + subkeys: 'u32', + }, + remark_with_event: { + remark: 'Bytes', + }, + __Unused8: 'Null', + authorize_upgrade: { + codeHash: 'H256', + }, + authorize_upgrade_without_checks: { + codeHash: 'H256', + }, + apply_authorized_upgrade: { + code: 'Bytes' + } + } + }, + /** + * Lookup144: pallet_utility::pallet::Call + **/ + PezpalletUtilityCall: { + _enum: { + batch: { + calls: 'Vec', + }, + as_derivative: { + index: 'u16', + call: 'RuntimeCall', + }, + batch_all: { + calls: 'Vec', + }, + dispatch_as: { + asOrigin: 'KitchensinkRuntimeOriginCaller', + call: 'RuntimeCall', + }, + force_batch: { + calls: 'Vec', + }, + with_weight: { + call: 'RuntimeCall', + weight: 'PezspWeightsWeightV2Weight', + }, + if_else: { + main: 'RuntimeCall', + fallback: 'RuntimeCall', + }, + dispatch_as_fallible: { + asOrigin: 'KitchensinkRuntimeOriginCaller', + call: 'RuntimeCall' + } + } + }, + /** + * Lookup146: kitchensink_runtime::OriginCaller + **/ + KitchensinkRuntimeOriginCaller: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + Council: 'PezpalletCollectiveRawOrigin', + TechnicalCommittee: 'PezpalletCollectiveRawOrigin', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + AllianceMotion: 'PezpalletCollectiveRawOrigin' + } + }, + /** + * Lookup147: frame_support::dispatch::RawOrigin + **/ + PezframeSupportDispatchRawOrigin: { + _enum: { + Root: 'Null', + Signed: 'AccountId32', + None: 'Null' + } + }, + /** + * Lookup148: pallet_collective::RawOrigin + **/ + PezpalletCollectiveRawOrigin: { + _enum: { + Members: '(u32,u32)', + Member: 'AccountId32', + _Phantom: 'Null' + } + }, + /** + * Lookup151: pallet_babe::pallet::Call + **/ + PezpalletBabeCall: { + _enum: { + report_equivocation: { + equivocationProof: 'PezspConsensusSlotsEquivocationProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + report_equivocation_unsigned: { + equivocationProof: 'PezspConsensusSlotsEquivocationProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + plan_config_change: { + config: 'PezspConsensusBabeDigestsNextConfigDescriptor' + } + } + }, + /** + * Lookup152: sp_consensus_slots::EquivocationProof, sp_consensus_babe::app::Public> + **/ + PezspConsensusSlotsEquivocationProof: { + offender: 'PezspConsensusBabeAppPublic', + slot: 'u64', + firstHeader: 'PezspRuntimeHeader', + secondHeader: 'PezspRuntimeHeader' + }, + /** + * Lookup153: sp_runtime::generic::header::Header + **/ + PezspRuntimeHeader: { + parentHash: 'H256', + number: 'Compact', + stateRoot: 'H256', + extrinsicsRoot: 'H256', + digest: 'PezspRuntimeDigest' + }, + /** + * Lookup155: sp_consensus_babe::app::Public + **/ + PezspConsensusBabeAppPublic: '[u8;32]', + /** + * Lookup157: sp_session::MembershipProof + **/ + PezspSessionMembershipProof: { + session: 'u32', + trieNodes: 'Vec', + validatorCount: 'u32' + }, + /** + * Lookup158: sp_consensus_babe::digests::NextConfigDescriptor + **/ + PezspConsensusBabeDigestsNextConfigDescriptor: { + _enum: { + __Unused0: 'Null', + V1: { + c: '(u64,u64)', + allowedSlots: 'PezspConsensusBabeAllowedSlots' + } + } + }, + /** + * Lookup160: sp_consensus_babe::AllowedSlots + **/ + PezspConsensusBabeAllowedSlots: { + _enum: ['PrimarySlots', 'PrimaryAndSecondaryPlainSlots', 'PrimaryAndSecondaryVRFSlots'] + }, + /** + * Lookup161: pallet_timestamp::pallet::Call + **/ + PezpalletTimestampCall: { + _enum: { + set: { + now: 'Compact' + } + } + }, + /** + * Lookup162: pallet_indices::pallet::Call + **/ + PezpalletIndicesCall: { + _enum: { + claim: { + index: 'u32', + }, + transfer: { + _alias: { + new_: 'new', + }, + new_: 'MultiAddress', + index: 'u32', + }, + free: { + index: 'u32', + }, + force_transfer: { + _alias: { + new_: 'new', + }, + new_: 'MultiAddress', + index: 'u32', + freeze: 'bool', + }, + freeze: { + index: 'u32', + }, + poke_deposit: { + index: 'u32' + } + } + }, + /** + * Lookup165: pallet_balances::pallet::Call + **/ + PezpalletBalancesCall: { + _enum: { + transfer_allow_death: { + dest: 'MultiAddress', + value: 'Compact', + }, + __Unused1: 'Null', + force_transfer: { + source: 'MultiAddress', + dest: 'MultiAddress', + value: 'Compact', + }, + transfer_keep_alive: { + dest: 'MultiAddress', + value: 'Compact', + }, + transfer_all: { + dest: 'MultiAddress', + keepAlive: 'bool', + }, + force_unreserve: { + who: 'MultiAddress', + amount: 'u128', + }, + upgrade_accounts: { + who: 'Vec', + }, + __Unused7: 'Null', + force_set_balance: { + who: 'MultiAddress', + newFree: 'Compact', + }, + force_adjust_total_issuance: { + direction: 'PezpalletBalancesAdjustmentDirection', + delta: 'Compact', + }, + burn: { + value: 'Compact', + keepAlive: 'bool' + } + } + }, + /** + * Lookup167: pallet_balances::types::AdjustmentDirection + **/ + PezpalletBalancesAdjustmentDirection: { + _enum: ['Increase', 'Decrease'] + }, + /** + * Lookup168: pallet_election_provider_multi_phase::pallet::Call + **/ + PezpalletElectionProviderMultiPhaseCall: { + _enum: { + submit_unsigned: { + rawSolution: 'PezpalletElectionProviderMultiPhaseRawSolution', + witness: 'PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize', + }, + set_minimum_untrusted_score: { + maybeNextScore: 'Option', + }, + set_emergency_election_result: { + supports: 'Vec<(AccountId32,PezspNposElectionsSupport)>', + }, + submit: { + rawSolution: 'PezpalletElectionProviderMultiPhaseRawSolution', + }, + governance_fallback: { + maybeMaxVoters: 'Option', + maybeMaxTargets: 'Option' + } + } + }, + /** + * Lookup169: pallet_election_provider_multi_phase::RawSolution + **/ + PezpalletElectionProviderMultiPhaseRawSolution: { + solution: 'KitchensinkRuntimeNposSolution16', + score: 'PezspNposElectionsElectionScore', + round: 'u32' + }, + /** + * Lookup170: kitchensink_runtime::NposSolution16 + **/ + KitchensinkRuntimeNposSolution16: { + votes1: 'Vec<(Compact,Compact)>', + votes2: 'Vec<(Compact,(Compact,Compact),Compact)>', + votes3: 'Vec<(Compact,[(Compact,Compact);2],Compact)>', + votes4: 'Vec<(Compact,[(Compact,Compact);3],Compact)>', + votes5: 'Vec<(Compact,[(Compact,Compact);4],Compact)>', + votes6: 'Vec<(Compact,[(Compact,Compact);5],Compact)>', + votes7: 'Vec<(Compact,[(Compact,Compact);6],Compact)>', + votes8: 'Vec<(Compact,[(Compact,Compact);7],Compact)>', + votes9: 'Vec<(Compact,[(Compact,Compact);8],Compact)>', + votes10: 'Vec<(Compact,[(Compact,Compact);9],Compact)>', + votes11: 'Vec<(Compact,[(Compact,Compact);10],Compact)>', + votes12: 'Vec<(Compact,[(Compact,Compact);11],Compact)>', + votes13: 'Vec<(Compact,[(Compact,Compact);12],Compact)>', + votes14: 'Vec<(Compact,[(Compact,Compact);13],Compact)>', + votes15: 'Vec<(Compact,[(Compact,Compact);14],Compact)>', + votes16: 'Vec<(Compact,[(Compact,Compact);15],Compact)>' + }, + /** + * Lookup221: pallet_election_provider_multi_phase::SolutionOrSnapshotSize + **/ + PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize: { + voters: 'Compact', + targets: 'Compact' + }, + /** + * Lookup225: sp_npos_elections::Support + **/ + PezspNposElectionsSupport: { + total: 'u128', + voters: 'Vec<(AccountId32,u128)>' + }, + /** + * Lookup226: pallet_staking::pallet::pallet::Call + **/ + PezpalletStakingPezpalletCall: { + _enum: { + bond: { + value: 'Compact', + payee: 'PezpalletStakingRewardDestination', + }, + bond_extra: { + maxAdditional: 'Compact', + }, + unbond: { + value: 'Compact', + }, + withdraw_unbonded: { + numSlashingSpans: 'u32', + }, + validate: { + prefs: 'PezpalletStakingValidatorPrefs', + }, + nominate: { + targets: 'Vec', + }, + chill: 'Null', + set_payee: { + payee: 'PezpalletStakingRewardDestination', + }, + set_controller: 'Null', + set_validator_count: { + _alias: { + new_: 'new', + }, + new_: 'Compact', + }, + increase_validator_count: { + additional: 'Compact', + }, + scale_validator_count: { + factor: 'Percent', + }, + force_no_eras: 'Null', + force_new_era: 'Null', + set_invulnerables: { + invulnerables: 'Vec', + }, + force_unstake: { + stash: 'AccountId32', + numSlashingSpans: 'u32', + }, + force_new_era_always: 'Null', + cancel_deferred_slash: { + era: 'u32', + slashIndices: 'Vec', + }, + payout_stakers: { + validatorStash: 'AccountId32', + era: 'u32', + }, + rebond: { + value: 'Compact', + }, + reap_stash: { + stash: 'AccountId32', + numSlashingSpans: 'u32', + }, + kick: { + who: 'Vec', + }, + set_staking_configs: { + minNominatorBond: 'PezpalletStakingPezpalletConfigOpU128', + minValidatorBond: 'PezpalletStakingPezpalletConfigOpU128', + maxNominatorCount: 'PezpalletStakingPezpalletConfigOpU32', + maxValidatorCount: 'PezpalletStakingPezpalletConfigOpU32', + chillThreshold: 'PezpalletStakingPezpalletConfigOpPercent', + minCommission: 'PezpalletStakingPezpalletConfigOpPerbill', + maxStakedRewards: 'PezpalletStakingPezpalletConfigOpPercent', + }, + chill_other: { + stash: 'AccountId32', + }, + force_apply_min_commission: { + validatorStash: 'AccountId32', + }, + set_min_commission: { + _alias: { + new_: 'new', + }, + new_: 'Perbill', + }, + payout_stakers_by_page: { + validatorStash: 'AccountId32', + era: 'u32', + page: 'u32', + }, + update_payee: { + controller: 'AccountId32', + }, + deprecate_controller_batch: { + controllers: 'Vec', + }, + restore_ledger: { + stash: 'AccountId32', + maybeController: 'Option', + maybeTotal: 'Option', + maybeUnlocking: 'Option>', + }, + migrate_currency: { + stash: 'AccountId32', + }, + __Unused31: 'Null', + __Unused32: 'Null', + manual_slash: { + validatorStash: 'AccountId32', + era: 'u32', + slashFraction: 'Perbill' + } + } + }, + /** + * Lookup229: pallet_staking::pallet::pallet::ConfigOp + **/ + PezpalletStakingPezpalletConfigOpU128: { + _enum: { + Noop: 'Null', + Set: 'u128', + Remove: 'Null' + } + }, + /** + * Lookup230: pallet_staking::pallet::pallet::ConfigOp + **/ + PezpalletStakingPezpalletConfigOpU32: { + _enum: { + Noop: 'Null', + Set: 'u32', + Remove: 'Null' + } + }, + /** + * Lookup231: pallet_staking::pallet::pallet::ConfigOp + **/ + PezpalletStakingPezpalletConfigOpPercent: { + _enum: { + Noop: 'Null', + Set: 'Percent', + Remove: 'Null' + } + }, + /** + * Lookup232: pallet_staking::pallet::pallet::ConfigOp + **/ + PezpalletStakingPezpalletConfigOpPerbill: { + _enum: { + Noop: 'Null', + Set: 'Perbill', + Remove: 'Null' + } + }, + /** + * Lookup237: pallet_staking::UnlockChunk + **/ + PezpalletStakingUnlockChunk: { + value: 'Compact', + era: 'Compact' + }, + /** + * Lookup239: pallet_session::pallet::Call + **/ + PezpalletSessionCall: { + _enum: { + set_keys: { + _alias: { + keys_: 'keys', + }, + keys_: 'KitchensinkRuntimeSessionKeys', + proof: 'Bytes', + }, + purge_keys: 'Null' + } + }, + /** + * Lookup240: kitchensink_runtime::SessionKeys + **/ + KitchensinkRuntimeSessionKeys: { + grandpa: 'PezspConsensusGrandpaAppPublic', + babe: 'PezspConsensusBabeAppPublic', + imOnline: 'PezpalletImOnlineSr25519AppSr25519Public', + authorityDiscovery: 'PezspAuthorityDiscoveryAppPublic', + mixnet: 'PezspMixnetAppPublic', + beefy: 'PezspConsensusBeefyEcdsaCryptoPublic' + }, + /** + * Lookup241: sp_authority_discovery::app::Public + **/ + PezspAuthorityDiscoveryAppPublic: '[u8;32]', + /** + * Lookup242: sp_mixnet::types::app::Public + **/ + PezspMixnetAppPublic: '[u8;32]', + /** + * Lookup243: sp_consensus_beefy::ecdsa_crypto::Public + **/ + PezspConsensusBeefyEcdsaCryptoPublic: '[u8;33]', + /** + * Lookup245: pallet_democracy::pallet::Call + **/ + PezpalletDemocracyCall: { + _enum: { + propose: { + proposal: 'PezframeSupportPreimagesBounded', + value: 'Compact', + }, + second: { + proposal: 'Compact', + }, + vote: { + refIndex: 'Compact', + vote: 'PezpalletDemocracyVoteAccountVote', + }, + emergency_cancel: { + refIndex: 'u32', + }, + external_propose: { + proposal: 'PezframeSupportPreimagesBounded', + }, + external_propose_majority: { + proposal: 'PezframeSupportPreimagesBounded', + }, + external_propose_default: { + proposal: 'PezframeSupportPreimagesBounded', + }, + fast_track: { + proposalHash: 'H256', + votingPeriod: 'u32', + delay: 'u32', + }, + veto_external: { + proposalHash: 'H256', + }, + cancel_referendum: { + refIndex: 'Compact', + }, + delegate: { + to: 'MultiAddress', + conviction: 'PezpalletDemocracyConviction', + balance: 'u128', + }, + undelegate: 'Null', + clear_public_proposals: 'Null', + unlock: { + target: 'MultiAddress', + }, + remove_vote: { + index: 'u32', + }, + remove_other_vote: { + target: 'MultiAddress', + index: 'u32', + }, + blacklist: { + proposalHash: 'H256', + maybeRefIndex: 'Option', + }, + cancel_proposal: { + propIndex: 'Compact', + }, + set_metadata: { + owner: 'PezpalletDemocracyMetadataOwner', + maybeHash: 'Option' + } + } + }, + /** + * Lookup246: pallet_democracy::conviction::Conviction + **/ + PezpalletDemocracyConviction: { + _enum: ['None', 'Locked1x', 'Locked2x', 'Locked3x', 'Locked4x', 'Locked5x', 'Locked6x'] + }, + /** + * Lookup248: pallet_collective::pallet::Call + **/ + PezpalletCollectiveCall: { + _enum: { + set_members: { + newMembers: 'Vec', + prime: 'Option', + oldCount: 'u32', + }, + execute: { + proposal: 'RuntimeCall', + lengthBound: 'Compact', + }, + propose: { + threshold: 'Compact', + proposal: 'RuntimeCall', + lengthBound: 'Compact', + }, + vote: { + proposal: 'H256', + index: 'Compact', + approve: 'bool', + }, + __Unused4: 'Null', + disapprove_proposal: { + proposalHash: 'H256', + }, + close: { + proposalHash: 'H256', + index: 'Compact', + proposalWeightBound: 'PezspWeightsWeightV2Weight', + lengthBound: 'Compact', + }, + kill: { + proposalHash: 'H256', + }, + release_proposal_cost: { + proposalHash: 'H256' + } + } + }, + /** + * Lookup250: pallet_elections_phragmen::pallet::Call + **/ + PezpalletElectionsPhragmenCall: { + _enum: { + vote: { + votes: 'Vec', + value: 'Compact', + }, + remove_voter: 'Null', + submit_candidacy: { + candidateCount: 'Compact', + }, + renounce_candidacy: { + renouncing: 'PezpalletElectionsPhragmenRenouncing', + }, + remove_member: { + who: 'MultiAddress', + slashBond: 'bool', + rerunElection: 'bool', + }, + clean_defunct_voters: { + numVoters: 'u32', + numDefunct: 'u32' + } + } + }, + /** + * Lookup251: pallet_elections_phragmen::Renouncing + **/ + PezpalletElectionsPhragmenRenouncing: { + _enum: { + Member: 'Null', + RunnerUp: 'Null', + Candidate: 'Compact' + } + }, + /** + * Lookup252: pallet_membership::pallet::Call + **/ + PezpalletMembershipCall: { + _enum: { + add_member: { + who: 'MultiAddress', + }, + remove_member: { + who: 'MultiAddress', + }, + swap_member: { + remove: 'MultiAddress', + add: 'MultiAddress', + }, + reset_members: { + members: 'Vec', + }, + change_key: { + _alias: { + new_: 'new', + }, + new_: 'MultiAddress', + }, + set_prime: { + who: 'MultiAddress', + }, + clear_prime: 'Null' + } + }, + /** + * Lookup253: pallet_grandpa::pallet::Call + **/ + PezpalletGrandpaCall: { + _enum: { + report_equivocation: { + equivocationProof: 'PezspConsensusGrandpaEquivocationProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + report_equivocation_unsigned: { + equivocationProof: 'PezspConsensusGrandpaEquivocationProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + note_stalled: { + delay: 'u32', + bestFinalizedBlockNumber: 'u32' + } + } + }, + /** + * Lookup254: sp_consensus_grandpa::EquivocationProof + **/ + PezspConsensusGrandpaEquivocationProof: { + setId: 'u64', + equivocation: 'PezspConsensusGrandpaEquivocation' + }, + /** + * Lookup255: sp_consensus_grandpa::Equivocation + **/ + PezspConsensusGrandpaEquivocation: { + _enum: { + Prevote: 'FinalityGrandpaEquivocationPrevote', + Precommit: 'FinalityGrandpaEquivocationPrecommit' + } + }, + /** + * Lookup256: finality_grandpa::Equivocation, sp_consensus_grandpa::app::Signature> + **/ + FinalityGrandpaEquivocationPrevote: { + roundNumber: 'u64', + identity: 'PezspConsensusGrandpaAppPublic', + first: '(FinalityGrandpaPrevote,PezspConsensusGrandpaAppSignature)', + second: '(FinalityGrandpaPrevote,PezspConsensusGrandpaAppSignature)' + }, + /** + * Lookup257: finality_grandpa::Prevote + **/ + FinalityGrandpaPrevote: { + targetHash: 'H256', + targetNumber: 'u32' + }, + /** + * Lookup258: sp_consensus_grandpa::app::Signature + **/ + PezspConsensusGrandpaAppSignature: '[u8;64]', + /** + * Lookup261: finality_grandpa::Equivocation, sp_consensus_grandpa::app::Signature> + **/ + FinalityGrandpaEquivocationPrecommit: { + roundNumber: 'u64', + identity: 'PezspConsensusGrandpaAppPublic', + first: '(FinalityGrandpaPrecommit,PezspConsensusGrandpaAppSignature)', + second: '(FinalityGrandpaPrecommit,PezspConsensusGrandpaAppSignature)' + }, + /** + * Lookup262: finality_grandpa::Precommit + **/ + FinalityGrandpaPrecommit: { + targetHash: 'H256', + targetNumber: 'u32' + }, + /** + * Lookup264: pallet_treasury::pallet::Call + **/ + PezpalletTreasuryCall: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + spend_local: { + amount: 'Compact', + beneficiary: 'MultiAddress', + }, + remove_approval: { + proposalId: 'Compact', + }, + spend: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + amount: 'Compact', + beneficiary: 'MultiAddress', + validFrom: 'Option', + }, + payout: { + index: 'u32', + }, + check_status: { + index: 'u32', + }, + void_spend: { + index: 'u32' + } + } + }, + /** + * Lookup265: pallet_asset_rate::pallet::Call + **/ + PezpalletAssetRateCall: { + _enum: { + create: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rate: 'u128', + }, + update: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rate: 'u128', + }, + remove: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId' + } + } + }, + /** + * Lookup266: pallet_contracts::pallet::Call + **/ + PezpalletContractsCall: { + _enum: { + call_old_weight: { + dest: 'MultiAddress', + value: 'Compact', + gasLimit: 'Compact', + storageDepositLimit: 'Option>', + data: 'Bytes', + }, + instantiate_with_code_old_weight: { + value: 'Compact', + gasLimit: 'Compact', + storageDepositLimit: 'Option>', + code: 'Bytes', + data: 'Bytes', + salt: 'Bytes', + }, + instantiate_old_weight: { + value: 'Compact', + gasLimit: 'Compact', + storageDepositLimit: 'Option>', + codeHash: 'H256', + data: 'Bytes', + salt: 'Bytes', + }, + upload_code: { + code: 'Bytes', + storageDepositLimit: 'Option>', + determinism: 'PezpalletContractsWasmDeterminism', + }, + remove_code: { + codeHash: 'H256', + }, + set_code: { + dest: 'MultiAddress', + codeHash: 'H256', + }, + call: { + dest: 'MultiAddress', + value: 'Compact', + gasLimit: 'PezspWeightsWeightV2Weight', + storageDepositLimit: 'Option>', + data: 'Bytes', + }, + instantiate_with_code: { + value: 'Compact', + gasLimit: 'PezspWeightsWeightV2Weight', + storageDepositLimit: 'Option>', + code: 'Bytes', + data: 'Bytes', + salt: 'Bytes', + }, + instantiate: { + value: 'Compact', + gasLimit: 'PezspWeightsWeightV2Weight', + storageDepositLimit: 'Option>', + codeHash: 'H256', + data: 'Bytes', + salt: 'Bytes', + }, + migrate: { + weightLimit: 'PezspWeightsWeightV2Weight' + } + } + }, + /** + * Lookup268: pallet_contracts::wasm::Determinism + **/ + PezpalletContractsWasmDeterminism: { + _enum: ['Enforced', 'Relaxed'] + }, + /** + * Lookup269: pallet_sudo::pallet::Call + **/ + PezpalletSudoCall: { + _enum: { + sudo: { + call: 'RuntimeCall', + }, + sudo_unchecked_weight: { + call: 'RuntimeCall', + weight: 'PezspWeightsWeightV2Weight', + }, + set_key: { + _alias: { + new_: 'new', + }, + new_: 'MultiAddress', + }, + sudo_as: { + who: 'MultiAddress', + call: 'RuntimeCall', + }, + remove_key: 'Null' + } + }, + /** + * Lookup270: pallet_im_online::pallet::Call + **/ + PezpalletImOnlineCall: { + _enum: { + heartbeat: { + heartbeat: 'PezpalletImOnlineHeartbeat', + signature: 'PezpalletImOnlineSr25519AppSr25519Signature' + } + } + }, + /** + * Lookup271: pallet_im_online::Heartbeat + **/ + PezpalletImOnlineHeartbeat: { + blockNumber: 'u32', + sessionIndex: 'u32', + authorityIndex: 'u32', + validatorsLen: 'u32' + }, + /** + * Lookup272: pallet_im_online::sr25519::app_sr25519::Signature + **/ + PezpalletImOnlineSr25519AppSr25519Signature: '[u8;64]', + /** + * Lookup273: pallet_identity::pallet::Call + **/ + PezpalletIdentityCall: { + _enum: { + add_registrar: { + account: 'MultiAddress', + }, + set_identity: { + info: 'PezpalletIdentityLegacyIdentityInfo', + }, + set_subs: { + subs: 'Vec<(AccountId32,Data)>', + }, + clear_identity: 'Null', + request_judgement: { + regIndex: 'Compact', + maxFee: 'Compact', + }, + cancel_request: { + regIndex: 'u32', + }, + set_fee: { + index: 'Compact', + fee: 'Compact', + }, + set_account_id: { + _alias: { + new_: 'new', + }, + index: 'Compact', + new_: 'MultiAddress', + }, + set_fields: { + index: 'Compact', + fields: 'u64', + }, + provide_judgement: { + regIndex: 'Compact', + target: 'MultiAddress', + judgement: 'PezpalletIdentityJudgement', + identity: 'H256', + }, + kill_identity: { + target: 'MultiAddress', + }, + add_sub: { + sub: 'MultiAddress', + data: 'Data', + }, + rename_sub: { + sub: 'MultiAddress', + data: 'Data', + }, + remove_sub: { + sub: 'MultiAddress', + }, + quit_sub: 'Null', + add_username_authority: { + authority: 'MultiAddress', + suffix: 'Bytes', + allocation: 'u32', + }, + remove_username_authority: { + suffix: 'Bytes', + authority: 'MultiAddress', + }, + set_username_for: { + who: 'MultiAddress', + username: 'Bytes', + signature: 'Option', + useAllocation: 'bool', + }, + accept_username: { + username: 'Bytes', + }, + remove_expired_approval: { + username: 'Bytes', + }, + set_primary_username: { + username: 'Bytes', + }, + unbind_username: { + username: 'Bytes', + }, + remove_username: { + username: 'Bytes', + }, + kill_username: { + username: 'Bytes' + } + } + }, + /** + * Lookup274: pallet_identity::legacy::IdentityInfo + **/ + PezpalletIdentityLegacyIdentityInfo: { + additional: 'Vec<(Data,Data)>', + display: 'Data', + legal: 'Data', + web: 'Data', + riot: 'Data', + email: 'Data', + pgpFingerprint: 'Option<[u8;20]>', + image: 'Data', + twitter: 'Data' + }, + /** + * Lookup311: pallet_identity::types::Judgement + **/ + PezpalletIdentityJudgement: { + _enum: { + Unknown: 'Null', + FeePaid: 'u128', + Reasonable: 'Null', + KnownGood: 'Null', + OutOfDate: 'Null', + LowQuality: 'Null', + Erroneous: 'Null' + } + }, + /** + * Lookup313: sp_runtime::MultiSignature + **/ + PezspRuntimeMultiSignature: { + _enum: { + Ed25519: '[u8;64]', + Sr25519: '[u8;64]', + Ecdsa: '[u8;65]' + } + }, + /** + * Lookup315: pallet_society::pallet::Call + **/ + PezpalletSocietyCall: { + _enum: { + bid: { + value: 'u128', + }, + unbid: 'Null', + vouch: { + who: 'MultiAddress', + value: 'u128', + tip: 'u128', + }, + unvouch: 'Null', + vote: { + candidate: 'MultiAddress', + approve: 'bool', + }, + defender_vote: { + approve: 'bool', + }, + payout: 'Null', + waive_repay: { + amount: 'u128', + }, + found_society: { + founder: 'MultiAddress', + maxMembers: 'u32', + maxIntake: 'u32', + maxStrikes: 'u32', + candidateDeposit: 'u128', + rules: 'Bytes', + }, + dissolve: 'Null', + judge_suspended_member: { + who: 'MultiAddress', + forgive: 'bool', + }, + set_parameters: { + maxMembers: 'u32', + maxIntake: 'u32', + maxStrikes: 'u32', + candidateDeposit: 'u128', + }, + punish_skeptic: 'Null', + claim_membership: 'Null', + bestow_membership: { + candidate: 'AccountId32', + }, + kick_candidate: { + candidate: 'AccountId32', + }, + resign_candidacy: 'Null', + drop_candidate: { + candidate: 'AccountId32', + }, + cleanup_candidacy: { + candidate: 'AccountId32', + max: 'u32', + }, + cleanup_challenge: { + challengeRound: 'u32', + max: 'u32' + } + } + }, + /** + * Lookup316: pallet_recovery::pallet::Call + **/ + PezpalletRecoveryCall: { + _enum: { + as_recovered: { + account: 'MultiAddress', + call: 'RuntimeCall', + }, + set_recovered: { + lost: 'MultiAddress', + rescuer: 'MultiAddress', + }, + create_recovery: { + friends: 'Vec', + threshold: 'u16', + delayPeriod: 'u32', + }, + initiate_recovery: { + account: 'MultiAddress', + }, + vouch_recovery: { + lost: 'MultiAddress', + rescuer: 'MultiAddress', + }, + claim_recovery: { + account: 'MultiAddress', + }, + close_recovery: { + rescuer: 'MultiAddress', + }, + remove_recovery: 'Null', + cancel_recovered: { + account: 'MultiAddress' + } + } + }, + /** + * Lookup317: pallet_vesting::pallet::Call + **/ + PezpalletVestingCall: { + _enum: { + vest: 'Null', + vest_other: { + target: 'MultiAddress', + }, + vested_transfer: { + target: 'MultiAddress', + schedule: 'PezpalletVestingVestingInfo', + }, + force_vested_transfer: { + source: 'MultiAddress', + target: 'MultiAddress', + schedule: 'PezpalletVestingVestingInfo', + }, + merge_schedules: { + schedule1Index: 'u32', + schedule2Index: 'u32', + }, + force_remove_vesting_schedule: { + target: 'MultiAddress', + scheduleIndex: 'u32' + } + } + }, + /** + * Lookup318: pallet_vesting::vesting_info::VestingInfo + **/ + PezpalletVestingVestingInfo: { + locked: 'u128', + perBlock: 'u128', + startingBlock: 'u32' + }, + /** + * Lookup319: pallet_scheduler::pallet::Call + **/ + PezpalletSchedulerCall: { + _enum: { + schedule: { + when: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'RuntimeCall', + }, + cancel: { + when: 'u32', + index: 'u32', + }, + schedule_named: { + id: '[u8;32]', + when: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'RuntimeCall', + }, + cancel_named: { + id: '[u8;32]', + }, + schedule_after: { + after: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'RuntimeCall', + }, + schedule_named_after: { + id: '[u8;32]', + after: 'u32', + maybePeriodic: 'Option<(u32,u32)>', + priority: 'u8', + call: 'RuntimeCall', + }, + set_retry: { + task: '(u32,u32)', + retries: 'u8', + period: 'u32', + }, + set_retry_named: { + id: '[u8;32]', + retries: 'u8', + period: 'u32', + }, + cancel_retry: { + task: '(u32,u32)', + }, + cancel_retry_named: { + id: '[u8;32]' + } + } + }, + /** + * Lookup321: pallet_glutton::pallet::Call + **/ + PezpalletGluttonCall: { + _enum: { + initialize_pallet: { + newCount: 'u32', + witnessCount: 'Option', + }, + set_compute: { + compute: 'u64', + }, + set_storage: { + storage: 'u64', + }, + bloat: { + garbage: 'Vec<[u8;1024]>', + }, + set_block_length: { + blockLength: 'u64' + } + } + }, + /** + * Lookup324: pallet_preimage::pallet::Call + **/ + PezpalletPreimageCall: { + _enum: { + note_preimage: { + bytes: 'Bytes', + }, + unnote_preimage: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + request_preimage: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + unrequest_preimage: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + ensure_updated: { + hashes: 'Vec' + } + } + }, + /** + * Lookup326: pallet_proxy::pallet::Call + **/ + PezpalletProxyCall: { + _enum: { + proxy: { + real: 'MultiAddress', + forceProxyType: 'Option', + call: 'RuntimeCall', + }, + add_proxy: { + delegate: 'MultiAddress', + proxyType: 'KitchensinkRuntimeProxyType', + delay: 'u32', + }, + remove_proxy: { + delegate: 'MultiAddress', + proxyType: 'KitchensinkRuntimeProxyType', + delay: 'u32', + }, + remove_proxies: 'Null', + create_pure: { + proxyType: 'KitchensinkRuntimeProxyType', + delay: 'u32', + index: 'u16', + }, + kill_pure: { + spawner: 'MultiAddress', + proxyType: 'KitchensinkRuntimeProxyType', + index: 'u16', + height: 'Compact', + extIndex: 'Compact', + }, + announce: { + real: 'MultiAddress', + callHash: 'H256', + }, + remove_announcement: { + real: 'MultiAddress', + callHash: 'H256', + }, + reject_announcement: { + delegate: 'MultiAddress', + callHash: 'H256', + }, + proxy_announced: { + delegate: 'MultiAddress', + real: 'MultiAddress', + forceProxyType: 'Option', + call: 'RuntimeCall', + }, + poke_deposit: 'Null' + } + }, + /** + * Lookup328: pallet_multisig::pallet::Call + **/ + PezpalletMultisigCall: { + _enum: { + as_multi_threshold_1: { + otherSignatories: 'Vec', + call: 'RuntimeCall', + }, + as_multi: { + threshold: 'u16', + otherSignatories: 'Vec', + maybeTimepoint: 'Option', + call: 'RuntimeCall', + maxWeight: 'PezspWeightsWeightV2Weight', + }, + approve_as_multi: { + threshold: 'u16', + otherSignatories: 'Vec', + maybeTimepoint: 'Option', + callHash: '[u8;32]', + maxWeight: 'PezspWeightsWeightV2Weight', + }, + cancel_as_multi: { + threshold: 'u16', + otherSignatories: 'Vec', + timepoint: 'PezpalletMultisigTimepoint', + callHash: '[u8;32]', + }, + poke_deposit: { + threshold: 'u16', + otherSignatories: 'Vec', + callHash: '[u8;32]' + } + } + }, + /** + * Lookup330: pallet_bounties::pallet::Call + **/ + PezpalletBountiesCall: { + _enum: { + propose_bounty: { + value: 'Compact', + description: 'Bytes', + }, + approve_bounty: { + bountyId: 'Compact', + }, + propose_curator: { + bountyId: 'Compact', + curator: 'MultiAddress', + fee: 'Compact', + }, + unassign_curator: { + bountyId: 'Compact', + }, + accept_curator: { + bountyId: 'Compact', + }, + award_bounty: { + bountyId: 'Compact', + beneficiary: 'MultiAddress', + }, + claim_bounty: { + bountyId: 'Compact', + }, + close_bounty: { + bountyId: 'Compact', + }, + extend_bounty_expiry: { + bountyId: 'Compact', + remark: 'Bytes', + }, + approve_bounty_with_curator: { + bountyId: 'Compact', + curator: 'MultiAddress', + fee: 'Compact' + } + } + }, + /** + * Lookup331: pallet_tips::pallet::Call + **/ + PezpalletTipsCall: { + _enum: { + report_awesome: { + reason: 'Bytes', + who: 'MultiAddress', + }, + retract_tip: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + tip_new: { + reason: 'Bytes', + who: 'MultiAddress', + tipValue: 'Compact', + }, + tip: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + tipValue: 'Compact', + }, + close_tip: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + }, + slash_tip: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256' + } + } + }, + /** + * Lookup332: pallet_assets::pallet::Call + **/ + PezpalletAssetsCall: { + _enum: { + create: { + id: 'Compact', + admin: 'MultiAddress', + minBalance: 'u128', + }, + force_create: { + id: 'Compact', + owner: 'MultiAddress', + isSufficient: 'bool', + minBalance: 'Compact', + }, + start_destroy: { + id: 'Compact', + }, + destroy_accounts: { + id: 'Compact', + }, + destroy_approvals: { + id: 'Compact', + }, + finish_destroy: { + id: 'Compact', + }, + mint: { + id: 'Compact', + beneficiary: 'MultiAddress', + amount: 'Compact', + }, + burn: { + id: 'Compact', + who: 'MultiAddress', + amount: 'Compact', + }, + transfer: { + id: 'Compact', + target: 'MultiAddress', + amount: 'Compact', + }, + transfer_keep_alive: { + id: 'Compact', + target: 'MultiAddress', + amount: 'Compact', + }, + force_transfer: { + id: 'Compact', + source: 'MultiAddress', + dest: 'MultiAddress', + amount: 'Compact', + }, + freeze: { + id: 'Compact', + who: 'MultiAddress', + }, + thaw: { + id: 'Compact', + who: 'MultiAddress', + }, + freeze_asset: { + id: 'Compact', + }, + thaw_asset: { + id: 'Compact', + }, + transfer_ownership: { + id: 'Compact', + owner: 'MultiAddress', + }, + set_team: { + id: 'Compact', + issuer: 'MultiAddress', + admin: 'MultiAddress', + freezer: 'MultiAddress', + }, + set_metadata: { + id: 'Compact', + name: 'Bytes', + symbol: 'Bytes', + decimals: 'u8', + }, + clear_metadata: { + id: 'Compact', + }, + force_set_metadata: { + id: 'Compact', + name: 'Bytes', + symbol: 'Bytes', + decimals: 'u8', + isFrozen: 'bool', + }, + force_clear_metadata: { + id: 'Compact', + }, + force_asset_status: { + id: 'Compact', + owner: 'MultiAddress', + issuer: 'MultiAddress', + admin: 'MultiAddress', + freezer: 'MultiAddress', + minBalance: 'Compact', + isSufficient: 'bool', + isFrozen: 'bool', + }, + approve_transfer: { + id: 'Compact', + delegate: 'MultiAddress', + amount: 'Compact', + }, + cancel_approval: { + id: 'Compact', + delegate: 'MultiAddress', + }, + force_cancel_approval: { + id: 'Compact', + owner: 'MultiAddress', + delegate: 'MultiAddress', + }, + transfer_approved: { + id: 'Compact', + owner: 'MultiAddress', + destination: 'MultiAddress', + amount: 'Compact', + }, + touch: { + id: 'Compact', + }, + refund: { + id: 'Compact', + allowBurn: 'bool', + }, + set_min_balance: { + id: 'Compact', + minBalance: 'u128', + }, + touch_other: { + id: 'Compact', + who: 'MultiAddress', + }, + refund_other: { + id: 'Compact', + who: 'MultiAddress', + }, + block: { + id: 'Compact', + who: 'MultiAddress', + }, + transfer_all: { + id: 'Compact', + dest: 'MultiAddress', + keepAlive: 'bool' + } + } + }, + /** + * Lookup334: pallet_beefy::pallet::Call + **/ + PezpalletBeefyCall: { + _enum: { + report_double_voting: { + equivocationProof: 'PezspConsensusBeefyDoubleVotingProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + report_double_voting_unsigned: { + equivocationProof: 'PezspConsensusBeefyDoubleVotingProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + set_new_genesis: { + delayInBlocks: 'u32', + }, + report_fork_voting: { + equivocationProof: 'PezspConsensusBeefyForkVotingProofAncestryProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + report_fork_voting_unsigned: { + equivocationProof: 'PezspConsensusBeefyForkVotingProofAncestryProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + report_future_block_voting: { + equivocationProof: 'PezspConsensusBeefyFutureBlockVotingProof', + keyOwnerProof: 'PezspSessionMembershipProof', + }, + report_future_block_voting_unsigned: { + equivocationProof: 'PezspConsensusBeefyFutureBlockVotingProof', + keyOwnerProof: 'PezspSessionMembershipProof' + } + } + }, + /** + * Lookup335: sp_consensus_beefy::DoubleVotingProof + **/ + PezspConsensusBeefyDoubleVotingProof: { + first: 'PezspConsensusBeefyVoteMessage', + second: 'PezspConsensusBeefyVoteMessage' + }, + /** + * Lookup336: sp_consensus_beefy::ecdsa_crypto::Signature + **/ + PezspConsensusBeefyEcdsaCryptoSignature: '[u8;65]', + /** + * Lookup337: sp_consensus_beefy::VoteMessage + **/ + PezspConsensusBeefyVoteMessage: { + commitment: 'PezspConsensusBeefyCommitment', + id: 'PezspConsensusBeefyEcdsaCryptoPublic', + signature: 'PezspConsensusBeefyEcdsaCryptoSignature' + }, + /** + * Lookup338: sp_consensus_beefy::commitment::Commitment + **/ + PezspConsensusBeefyCommitment: { + payload: 'PezspConsensusBeefyPayload', + blockNumber: 'u32', + validatorSetId: 'u64' + }, + /** + * Lookup339: sp_consensus_beefy::payload::Payload + **/ + PezspConsensusBeefyPayload: 'Vec<([u8;2],Bytes)>', + /** + * Lookup342: sp_consensus_beefy::ForkVotingProof, sp_consensus_beefy::ecdsa_crypto::Public, sp_mmr_primitives::AncestryProof> + **/ + PezspConsensusBeefyForkVotingProofAncestryProof: { + vote: 'PezspConsensusBeefyVoteMessage', + ancestryProof: 'PezspMmrPrimitivesAncestryProof', + header: 'PezspRuntimeHeader' + }, + /** + * Lookup343: sp_mmr_primitives::AncestryProof + **/ + PezspMmrPrimitivesAncestryProof: { + prevPeaks: 'Vec', + prevLeafCount: 'u64', + leafCount: 'u64', + items: 'Vec<(u64,H256)>' + }, + /** + * Lookup346: sp_consensus_beefy::FutureBlockVotingProof + **/ + PezspConsensusBeefyFutureBlockVotingProof: { + vote: 'PezspConsensusBeefyVoteMessage' + }, + /** + * Lookup347: pallet_lottery::pallet::Call + **/ + PezpalletLotteryCall: { + _enum: { + buy_ticket: { + call: 'RuntimeCall', + }, + set_calls: { + calls: 'Vec', + }, + start_lottery: { + price: 'u128', + length: 'u32', + delay: 'u32', + repeat: 'bool', + }, + stop_repeat: 'Null' + } + }, + /** + * Lookup348: pallet_nis::pallet::Call + **/ + PezpalletNisCall: { + _enum: { + place_bid: { + amount: 'Compact', + duration: 'u32', + }, + retract_bid: { + amount: 'Compact', + duration: 'u32', + }, + fund_deficit: 'Null', + thaw_private: { + index: 'Compact', + maybeProportion: 'Option', + }, + thaw_communal: { + index: 'Compact', + }, + communify: { + index: 'Compact', + }, + privatize: { + index: 'Compact' + } + } + }, + /** + * Lookup350: pallet_uniques::pallet::Call + **/ + PezpalletUniquesCall: { + _enum: { + create: { + collection: 'u32', + admin: 'MultiAddress', + }, + force_create: { + collection: 'u32', + owner: 'MultiAddress', + freeHolding: 'bool', + }, + destroy: { + collection: 'u32', + witness: 'PezpalletUniquesDestroyWitness', + }, + mint: { + collection: 'u32', + item: 'u32', + owner: 'MultiAddress', + }, + burn: { + collection: 'u32', + item: 'u32', + checkOwner: 'Option', + }, + transfer: { + collection: 'u32', + item: 'u32', + dest: 'MultiAddress', + }, + redeposit: { + collection: 'u32', + items: 'Vec', + }, + freeze: { + collection: 'u32', + item: 'u32', + }, + thaw: { + collection: 'u32', + item: 'u32', + }, + freeze_collection: { + collection: 'u32', + }, + thaw_collection: { + collection: 'u32', + }, + transfer_ownership: { + collection: 'u32', + newOwner: 'MultiAddress', + }, + set_team: { + collection: 'u32', + issuer: 'MultiAddress', + admin: 'MultiAddress', + freezer: 'MultiAddress', + }, + approve_transfer: { + collection: 'u32', + item: 'u32', + delegate: 'MultiAddress', + }, + cancel_approval: { + collection: 'u32', + item: 'u32', + maybeCheckDelegate: 'Option', + }, + force_item_status: { + collection: 'u32', + owner: 'MultiAddress', + issuer: 'MultiAddress', + admin: 'MultiAddress', + freezer: 'MultiAddress', + freeHolding: 'bool', + isFrozen: 'bool', + }, + set_attribute: { + collection: 'u32', + maybeItem: 'Option', + key: 'Bytes', + value: 'Bytes', + }, + clear_attribute: { + collection: 'u32', + maybeItem: 'Option', + key: 'Bytes', + }, + set_metadata: { + collection: 'u32', + item: 'u32', + data: 'Bytes', + isFrozen: 'bool', + }, + clear_metadata: { + collection: 'u32', + item: 'u32', + }, + set_collection_metadata: { + collection: 'u32', + data: 'Bytes', + isFrozen: 'bool', + }, + clear_collection_metadata: { + collection: 'u32', + }, + set_accept_ownership: { + maybeCollection: 'Option', + }, + set_collection_max_supply: { + collection: 'u32', + maxSupply: 'u32', + }, + set_price: { + collection: 'u32', + item: 'u32', + price: 'Option', + whitelistedBuyer: 'Option', + }, + buy_item: { + collection: 'u32', + item: 'u32', + bidPrice: 'u128' + } + } + }, + /** + * Lookup351: pallet_uniques::types::DestroyWitness + **/ + PezpalletUniquesDestroyWitness: { + items: 'Compact', + itemMetadatas: 'Compact', + attributes: 'Compact' + }, + /** + * Lookup353: pallet_nfts::pallet::Call + **/ + PezpalletNftsCall: { + _enum: { + create: { + admin: 'MultiAddress', + config: 'PezpalletNftsCollectionConfig', + }, + force_create: { + owner: 'MultiAddress', + config: 'PezpalletNftsCollectionConfig', + }, + destroy: { + collection: 'u32', + witness: 'PezpalletNftsDestroyWitness', + }, + mint: { + collection: 'u32', + item: 'u32', + mintTo: 'MultiAddress', + witnessData: 'Option', + }, + force_mint: { + collection: 'u32', + item: 'u32', + mintTo: 'MultiAddress', + itemConfig: 'PezpalletNftsItemConfig', + }, + burn: { + collection: 'u32', + item: 'u32', + }, + transfer: { + collection: 'u32', + item: 'u32', + dest: 'MultiAddress', + }, + redeposit: { + collection: 'u32', + items: 'Vec', + }, + lock_item_transfer: { + collection: 'u32', + item: 'u32', + }, + unlock_item_transfer: { + collection: 'u32', + item: 'u32', + }, + lock_collection: { + collection: 'u32', + lockSettings: 'u64', + }, + transfer_ownership: { + collection: 'u32', + newOwner: 'MultiAddress', + }, + set_team: { + collection: 'u32', + issuer: 'Option', + admin: 'Option', + freezer: 'Option', + }, + force_collection_owner: { + collection: 'u32', + owner: 'MultiAddress', + }, + force_collection_config: { + collection: 'u32', + config: 'PezpalletNftsCollectionConfig', + }, + approve_transfer: { + collection: 'u32', + item: 'u32', + delegate: 'MultiAddress', + maybeDeadline: 'Option', + }, + cancel_approval: { + collection: 'u32', + item: 'u32', + delegate: 'MultiAddress', + }, + clear_all_transfer_approvals: { + collection: 'u32', + item: 'u32', + }, + lock_item_properties: { + collection: 'u32', + item: 'u32', + lockMetadata: 'bool', + lockAttributes: 'bool', + }, + set_attribute: { + collection: 'u32', + maybeItem: 'Option', + namespace: 'PezpalletNftsAttributeNamespace', + key: 'Bytes', + value: 'Bytes', + }, + force_set_attribute: { + setAs: 'Option', + collection: 'u32', + maybeItem: 'Option', + namespace: 'PezpalletNftsAttributeNamespace', + key: 'Bytes', + value: 'Bytes', + }, + clear_attribute: { + collection: 'u32', + maybeItem: 'Option', + namespace: 'PezpalletNftsAttributeNamespace', + key: 'Bytes', + }, + approve_item_attributes: { + collection: 'u32', + item: 'u32', + delegate: 'MultiAddress', + }, + cancel_item_attributes_approval: { + collection: 'u32', + item: 'u32', + delegate: 'MultiAddress', + witness: 'PezpalletNftsCancelAttributesApprovalWitness', + }, + set_metadata: { + collection: 'u32', + item: 'u32', + data: 'Bytes', + }, + clear_metadata: { + collection: 'u32', + item: 'u32', + }, + set_collection_metadata: { + collection: 'u32', + data: 'Bytes', + }, + clear_collection_metadata: { + collection: 'u32', + }, + set_accept_ownership: { + maybeCollection: 'Option', + }, + set_collection_max_supply: { + collection: 'u32', + maxSupply: 'u32', + }, + update_mint_settings: { + collection: 'u32', + mintSettings: 'PezpalletNftsMintSettings', + }, + set_price: { + collection: 'u32', + item: 'u32', + price: 'Option', + whitelistedBuyer: 'Option', + }, + buy_item: { + collection: 'u32', + item: 'u32', + bidPrice: 'u128', + }, + pay_tips: { + tips: 'Vec', + }, + create_swap: { + offeredCollection: 'u32', + offeredItem: 'u32', + desiredCollection: 'u32', + maybeDesiredItem: 'Option', + maybePrice: 'Option', + duration: 'u32', + }, + cancel_swap: { + offeredCollection: 'u32', + offeredItem: 'u32', + }, + claim_swap: { + sendCollection: 'u32', + sendItem: 'u32', + receiveCollection: 'u32', + receiveItem: 'u32', + witnessPrice: 'Option', + }, + mint_pre_signed: { + mintData: 'PezpalletNftsPreSignedMint', + signature: 'PezspRuntimeMultiSignature', + signer: 'AccountId32', + }, + set_attributes_pre_signed: { + data: 'PezpalletNftsPreSignedAttributes', + signature: 'PezspRuntimeMultiSignature', + signer: 'AccountId32' + } + } + }, + /** + * Lookup354: pallet_nfts::types::CollectionConfig + **/ + PezpalletNftsCollectionConfig: { + settings: 'u64', + maxSupply: 'Option', + mintSettings: 'PezpalletNftsMintSettings' + }, + /** + * Lookup356: pallet_nfts::types::CollectionSetting + **/ + PezpalletNftsCollectionSetting: { + _enum: ['__Unused0', 'TransferableItems', 'UnlockedMetadata', '__Unused3', 'UnlockedAttributes', '__Unused5', '__Unused6', '__Unused7', 'UnlockedMaxSupply', '__Unused9', '__Unused10', '__Unused11', '__Unused12', '__Unused13', '__Unused14', '__Unused15', 'DepositRequired'] + }, + /** + * Lookup357: pallet_nfts::types::MintSettings + **/ + PezpalletNftsMintSettings: { + mintType: 'PezpalletNftsMintType', + price: 'Option', + startBlock: 'Option', + endBlock: 'Option', + defaultItemSettings: 'u64' + }, + /** + * Lookup358: pallet_nfts::types::MintType + **/ + PezpalletNftsMintType: { + _enum: { + Issuer: 'Null', + Public: 'Null', + HolderOf: 'u32' + } + }, + /** + * Lookup360: pallet_nfts::types::ItemSetting + **/ + PezpalletNftsItemSetting: { + _enum: ['__Unused0', 'Transferable', 'UnlockedMetadata', '__Unused3', 'UnlockedAttributes'] + }, + /** + * Lookup361: pallet_nfts::types::DestroyWitness + **/ + PezpalletNftsDestroyWitness: { + itemMetadatas: 'Compact', + itemConfigs: 'Compact', + attributes: 'Compact' + }, + /** + * Lookup363: pallet_nfts::types::MintWitness + **/ + PezpalletNftsMintWitness: { + ownedItem: 'Option', + mintPrice: 'Option' + }, + /** + * Lookup364: pallet_nfts::types::ItemConfig + **/ + PezpalletNftsItemConfig: { + settings: 'u64' + }, + /** + * Lookup365: pallet_nfts::types::CancelAttributesApprovalWitness + **/ + PezpalletNftsCancelAttributesApprovalWitness: { + accountAttributes: 'u32' + }, + /** + * Lookup367: pallet_nfts::types::ItemTip + **/ + PezpalletNftsItemTip: { + collection: 'u32', + item: 'u32', + receiver: 'AccountId32', + amount: 'u128' + }, + /** + * Lookup369: pallet_nfts::types::PreSignedMint + **/ + PezpalletNftsPreSignedMint: { + collection: 'u32', + item: 'u32', + attributes: 'Vec<(Bytes,Bytes)>', + metadata: 'Bytes', + onlyAccount: 'Option', + deadline: 'u32', + mintPrice: 'Option' + }, + /** + * Lookup370: pallet_nfts::types::PreSignedAttributes + **/ + PezpalletNftsPreSignedAttributes: { + collection: 'u32', + item: 'u32', + attributes: 'Vec<(Bytes,Bytes)>', + namespace: 'PezpalletNftsAttributeNamespace', + deadline: 'u32' + }, + /** + * Lookup371: pallet_nft_fractionalization::pallet::Call + **/ + PezpalletNftFractionalizationCall: { + _enum: { + fractionalize: { + nftCollectionId: 'u32', + nftId: 'u32', + assetId: 'u32', + beneficiary: 'MultiAddress', + fractions: 'u128', + }, + unify: { + nftCollectionId: 'u32', + nftId: 'u32', + assetId: 'u32', + beneficiary: 'MultiAddress' + } + } + }, + /** + * Lookup372: pallet_salary::pallet::Call + **/ + PezpalletSalaryCall: { + _enum: { + init: 'Null', + bump: 'Null', + induct: 'Null', + register: 'Null', + payout: 'Null', + payout_other: { + beneficiary: 'AccountId32', + }, + check_payment: 'Null' + } + }, + /** + * Lookup373: pallet_core_fellowship::pallet::Call + **/ + PezpalletCoreFellowshipCall: { + _enum: { + bump: { + who: 'AccountId32', + }, + set_params: { + params: 'PezpalletCoreFellowshipParamsTypeU128', + }, + set_active: { + isActive: 'bool', + }, + approve: { + who: 'AccountId32', + atRank: 'u16', + }, + induct: { + who: 'AccountId32', + }, + promote: { + who: 'AccountId32', + toRank: 'u16', + }, + offboard: { + who: 'AccountId32', + }, + submit_evidence: { + wish: 'PezpalletCoreFellowshipWish', + evidence: 'Bytes', + }, + import: 'Null', + set_partial_params: { + partialParams: 'PezpalletCoreFellowshipParamsTypeOption', + }, + promote_fast: { + who: 'AccountId32', + toRank: 'u16', + }, + import_member: { + who: 'AccountId32' + } + } + }, + /** + * Lookup374: pallet_core_fellowship::ParamsType, Option, Ranks> + **/ + PezpalletCoreFellowshipParamsTypeOption: { + activeSalary: 'Vec>', + passiveSalary: 'Vec>', + demotionPeriod: 'Vec>', + minPromotionPeriod: 'Vec>', + offboardTimeout: 'Option' + }, + /** + * Lookup379: pallet_transaction_storage::pallet::Call + **/ + PezpalletTransactionStorageCall: { + _enum: { + store: { + data: 'Bytes', + }, + renew: { + block: 'u32', + index: 'u32', + }, + check_proof: { + proof: 'PezspTransactionStorageProofTransactionStorageProof' + } + } + }, + /** + * Lookup380: sp_transaction_storage_proof::TransactionStorageProof + **/ + PezspTransactionStorageProofTransactionStorageProof: { + chunk: 'Bytes', + proof: 'Vec' + }, + /** + * Lookup381: pallet_bags_list::pallet::Call + **/ + PezpalletBagsListCall: { + _enum: { + rebag: { + dislocated: 'MultiAddress', + }, + put_in_front_of: { + lighter: 'MultiAddress', + }, + put_in_front_of_other: { + heavier: 'MultiAddress', + lighter: 'MultiAddress' + } + } + }, + /** + * Lookup382: pallet_state_trie_migration::pallet::Call + **/ + PezpalletStateTrieMigrationCall: { + _enum: { + control_auto_migration: { + maybeConfig: 'Option', + }, + continue_migrate: { + limits: 'PezpalletStateTrieMigrationMigrationLimits', + realSizeUpper: 'u32', + witnessTask: 'PezpalletStateTrieMigrationMigrationTask', + }, + migrate_custom_top: { + _alias: { + keys_: 'keys', + }, + keys_: 'Vec', + witnessSize: 'u32', + }, + migrate_custom_child: { + root: 'Bytes', + childKeys: 'Vec', + totalSize: 'u32', + }, + set_signed_max_limits: { + limits: 'PezpalletStateTrieMigrationMigrationLimits', + }, + force_set_progress: { + progressTop: 'PezpalletStateTrieMigrationProgress', + progressChild: 'PezpalletStateTrieMigrationProgress' + } + } + }, + /** + * Lookup384: pallet_state_trie_migration::pallet::MigrationLimits + **/ + PezpalletStateTrieMigrationMigrationLimits: { + _alias: { + size_: 'size' + }, + size_: 'u32', + item: 'u32' + }, + /** + * Lookup385: pallet_state_trie_migration::pallet::MigrationTask + **/ + PezpalletStateTrieMigrationMigrationTask: { + _alias: { + size_: 'size' + }, + progressTop: 'PezpalletStateTrieMigrationProgress', + progressChild: 'PezpalletStateTrieMigrationProgress', + size_: 'u32', + topItems: 'u32', + childItems: 'u32' + }, + /** + * Lookup386: pallet_state_trie_migration::pallet::Progress + **/ + PezpalletStateTrieMigrationProgress: { + _enum: { + ToStart: 'Null', + LastKey: 'Bytes', + Complete: 'Null' + } + }, + /** + * Lookup388: pallet_child_bounties::pallet::Call + **/ + PezpalletChildBountiesCall: { + _enum: { + add_child_bounty: { + parentBountyId: 'Compact', + value: 'Compact', + description: 'Bytes', + }, + propose_curator: { + parentBountyId: 'Compact', + childBountyId: 'Compact', + curator: 'MultiAddress', + fee: 'Compact', + }, + accept_curator: { + parentBountyId: 'Compact', + childBountyId: 'Compact', + }, + unassign_curator: { + parentBountyId: 'Compact', + childBountyId: 'Compact', + }, + award_child_bounty: { + parentBountyId: 'Compact', + childBountyId: 'Compact', + beneficiary: 'MultiAddress', + }, + claim_child_bounty: { + parentBountyId: 'Compact', + childBountyId: 'Compact', + }, + close_child_bounty: { + parentBountyId: 'Compact', + childBountyId: 'Compact' + } + } + }, + /** + * Lookup389: pallet_referenda::pallet::Call + **/ + PezpalletReferendaCall: { + _enum: { + submit: { + proposalOrigin: 'KitchensinkRuntimeOriginCaller', + proposal: 'PezframeSupportPreimagesBounded', + enactmentMoment: 'PezframeSupportScheduleDispatchTime', + }, + place_decision_deposit: { + index: 'u32', + }, + refund_decision_deposit: { + index: 'u32', + }, + cancel: { + index: 'u32', + }, + kill: { + index: 'u32', + }, + nudge_referendum: { + index: 'u32', + }, + one_fewer_deciding: { + track: 'u16', + }, + refund_submission_deposit: { + index: 'u32', + }, + set_metadata: { + index: 'u32', + maybeHash: 'Option' + } + } + }, + /** + * Lookup390: frame_support::traits::schedule::DispatchTime + **/ + PezframeSupportScheduleDispatchTime: { + _enum: { + At: 'u32', + After: 'u32' + } + }, + /** + * Lookup391: pallet_remark::pallet::Call + **/ + PezpalletRemarkCall: { + _enum: { + store: { + remark: 'Bytes' + } + } + }, + /** + * Lookup392: pallet_root_testing::pallet::Call + **/ + PezpalletRootTestingCall: { + _enum: { + fill_block: { + ratio: 'Perbill', + }, + trigger_defensive: 'Null' + } + }, + /** + * Lookup393: pallet_conviction_voting::pallet::Call + **/ + PezpalletConvictionVotingCall: { + _enum: { + vote: { + pollIndex: 'Compact', + vote: 'PezpalletConvictionVotingVoteAccountVote', + }, + delegate: { + class: 'u16', + to: 'MultiAddress', + conviction: 'PezpalletConvictionVotingConviction', + balance: 'u128', + }, + undelegate: { + class: 'u16', + }, + unlock: { + class: 'u16', + target: 'MultiAddress', + }, + remove_vote: { + class: 'Option', + index: 'u32', + }, + remove_other_vote: { + target: 'MultiAddress', + class: 'u16', + index: 'u32' + } + } + }, + /** + * Lookup394: pallet_conviction_voting::vote::AccountVote + **/ + PezpalletConvictionVotingVoteAccountVote: { + _enum: { + Standard: { + vote: 'Vote', + balance: 'u128', + }, + Split: { + aye: 'u128', + nay: 'u128', + }, + SplitAbstain: { + aye: 'u128', + nay: 'u128', + abstain: 'u128' + } + } + }, + /** + * Lookup396: pallet_conviction_voting::conviction::Conviction + **/ + PezpalletConvictionVotingConviction: { + _enum: ['None', 'Locked1x', 'Locked2x', 'Locked3x', 'Locked4x', 'Locked5x', 'Locked6x'] + }, + /** + * Lookup397: pallet_whitelist::pallet::Call + **/ + PezpalletWhitelistCall: { + _enum: { + whitelist_call: { + callHash: 'H256', + }, + remove_whitelisted_call: { + callHash: 'H256', + }, + dispatch_whitelisted_call: { + callHash: 'H256', + callEncodedLen: 'u32', + callWeightWitness: 'PezspWeightsWeightV2Weight', + }, + dispatch_whitelisted_call_with_preimage: { + call: 'RuntimeCall' + } + } + }, + /** + * Lookup399: pallet_alliance::pallet::Call + **/ + PezpalletAllianceCall: { + _enum: { + propose: { + threshold: 'Compact', + proposal: 'RuntimeCall', + lengthBound: 'Compact', + }, + vote: { + proposal: 'H256', + index: 'Compact', + approve: 'bool', + }, + __Unused2: 'Null', + init_members: { + fellows: 'Vec', + allies: 'Vec', + }, + disband: { + witness: 'PezpalletAllianceDisbandWitness', + }, + set_rule: { + rule: 'PezpalletAllianceCid', + }, + announce: { + announcement: 'PezpalletAllianceCid', + }, + remove_announcement: { + announcement: 'PezpalletAllianceCid', + }, + join_alliance: 'Null', + nominate_ally: { + who: 'MultiAddress', + }, + elevate_ally: { + ally: 'MultiAddress', + }, + give_retirement_notice: 'Null', + retire: 'Null', + kick_member: { + who: 'MultiAddress', + }, + add_unscrupulous_items: { + items: 'Vec', + }, + remove_unscrupulous_items: { + items: 'Vec', + }, + close: { + proposalHash: 'H256', + index: 'Compact', + proposalWeightBound: 'PezspWeightsWeightV2Weight', + lengthBound: 'Compact', + }, + abdicate_fellow_status: 'Null' + } + }, + /** + * Lookup400: pallet_alliance::types::DisbandWitness + **/ + PezpalletAllianceDisbandWitness: { + fellowMembers: 'Compact', + allyMembers: 'Compact' + }, + /** + * Lookup401: pallet_alliance::types::Cid + **/ + PezpalletAllianceCid: { + _alias: { + hash_: 'hash' + }, + version: 'PezpalletAllianceVersion', + codec: 'u64', + hash_: 'PezpalletAllianceMultihash' + }, + /** + * Lookup402: pallet_alliance::types::Version + **/ + PezpalletAllianceVersion: { + _enum: ['V0', 'V1'] + }, + /** + * Lookup403: pallet_alliance::types::Multihash + **/ + PezpalletAllianceMultihash: { + code: 'u64', + digest: 'Bytes' + }, + /** + * Lookup406: pallet_alliance::UnscrupulousItem> + **/ + PezpalletAllianceUnscrupulousItem: { + _enum: { + AccountId: 'AccountId32', + Website: 'Bytes' + } + }, + /** + * Lookup408: pallet_nomination_pools::pallet::Call + **/ + PezpalletNominationPoolsCall: { + _enum: { + join: { + amount: 'Compact', + poolId: 'u32', + }, + bond_extra: { + extra: 'PezpalletNominationPoolsBondExtra', + }, + claim_payout: 'Null', + unbond: { + memberAccount: 'MultiAddress', + unbondingPoints: 'Compact', + }, + pool_withdraw_unbonded: { + poolId: 'u32', + numSlashingSpans: 'u32', + }, + withdraw_unbonded: { + memberAccount: 'MultiAddress', + numSlashingSpans: 'u32', + }, + create: { + amount: 'Compact', + root: 'MultiAddress', + nominator: 'MultiAddress', + bouncer: 'MultiAddress', + }, + create_with_pool_id: { + amount: 'Compact', + root: 'MultiAddress', + nominator: 'MultiAddress', + bouncer: 'MultiAddress', + poolId: 'u32', + }, + nominate: { + poolId: 'u32', + validators: 'Vec', + }, + set_state: { + poolId: 'u32', + state: 'PezpalletNominationPoolsPoolState', + }, + set_metadata: { + poolId: 'u32', + metadata: 'Bytes', + }, + set_configs: { + minJoinBond: 'PezpalletNominationPoolsConfigOpU128', + minCreateBond: 'PezpalletNominationPoolsConfigOpU128', + maxPools: 'PezpalletNominationPoolsConfigOpU32', + maxMembers: 'PezpalletNominationPoolsConfigOpU32', + maxMembersPerPool: 'PezpalletNominationPoolsConfigOpU32', + globalMaxCommission: 'PezpalletNominationPoolsConfigOpPerbill', + }, + update_roles: { + poolId: 'u32', + newRoot: 'PezpalletNominationPoolsConfigOpAccountId32', + newNominator: 'PezpalletNominationPoolsConfigOpAccountId32', + newBouncer: 'PezpalletNominationPoolsConfigOpAccountId32', + }, + chill: { + poolId: 'u32', + }, + bond_extra_other: { + member: 'MultiAddress', + extra: 'PezpalletNominationPoolsBondExtra', + }, + set_claim_permission: { + permission: 'PezpalletNominationPoolsClaimPermission', + }, + claim_payout_other: { + other: 'AccountId32', + }, + set_commission: { + poolId: 'u32', + newCommission: 'Option<(Perbill,AccountId32)>', + }, + set_commission_max: { + poolId: 'u32', + maxCommission: 'Perbill', + }, + set_commission_change_rate: { + poolId: 'u32', + changeRate: 'PezpalletNominationPoolsCommissionChangeRate', + }, + claim_commission: { + poolId: 'u32', + }, + adjust_pool_deposit: { + poolId: 'u32', + }, + set_commission_claim_permission: { + poolId: 'u32', + permission: 'Option', + }, + apply_slash: { + memberAccount: 'MultiAddress', + }, + migrate_delegation: { + memberAccount: 'MultiAddress', + }, + migrate_pool_to_delegate_stake: { + poolId: 'u32' + } + } + }, + /** + * Lookup409: pallet_nomination_pools::BondExtra + **/ + PezpalletNominationPoolsBondExtra: { + _enum: { + FreeBalance: 'u128', + Rewards: 'Null' + } + }, + /** + * Lookup410: pallet_nomination_pools::PoolState + **/ + PezpalletNominationPoolsPoolState: { + _enum: ['Open', 'Blocked', 'Destroying'] + }, + /** + * Lookup411: pallet_nomination_pools::ConfigOp + **/ + PezpalletNominationPoolsConfigOpU128: { + _enum: { + Noop: 'Null', + Set: 'u128', + Remove: 'Null' + } + }, + /** + * Lookup412: pallet_nomination_pools::ConfigOp + **/ + PezpalletNominationPoolsConfigOpU32: { + _enum: { + Noop: 'Null', + Set: 'u32', + Remove: 'Null' + } + }, + /** + * Lookup413: pallet_nomination_pools::ConfigOp + **/ + PezpalletNominationPoolsConfigOpPerbill: { + _enum: { + Noop: 'Null', + Set: 'Perbill', + Remove: 'Null' + } + }, + /** + * Lookup414: pallet_nomination_pools::ConfigOp + **/ + PezpalletNominationPoolsConfigOpAccountId32: { + _enum: { + Noop: 'Null', + Set: 'AccountId32', + Remove: 'Null' + } + }, + /** + * Lookup415: pallet_nomination_pools::ClaimPermission + **/ + PezpalletNominationPoolsClaimPermission: { + _enum: ['Permissioned', 'PermissionlessCompound', 'PermissionlessWithdraw', 'PermissionlessAll'] + }, + /** + * Lookup418: pallet_nomination_pools::CommissionChangeRate + **/ + PezpalletNominationPoolsCommissionChangeRate: { + maxIncrease: 'Perbill', + minDelay: 'u32' + }, + /** + * Lookup420: pallet_nomination_pools::CommissionClaimPermission + **/ + PezpalletNominationPoolsCommissionClaimPermission: { + _enum: { + Permissionless: 'Null', + Account: 'AccountId32' + } + }, + /** + * Lookup422: pallet_ranked_collective::pallet::Call + **/ + PezpalletRankedCollectiveCall: { + _enum: { + add_member: { + who: 'MultiAddress', + }, + promote_member: { + who: 'MultiAddress', + }, + demote_member: { + who: 'MultiAddress', + }, + remove_member: { + who: 'MultiAddress', + minRank: 'u16', + }, + vote: { + poll: 'u32', + aye: 'bool', + }, + cleanup_poll: { + pollIndex: 'u32', + max: 'u32', + }, + exchange_member: { + who: 'MultiAddress', + newWho: 'MultiAddress' + } + } + }, + /** + * Lookup423: pallet_asset_conversion::pallet::Call + **/ + PezpalletAssetConversionCall: { + _enum: { + create_pool: { + asset1: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + asset2: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + }, + add_liquidity: { + asset1: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + asset2: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + amount1Desired: 'u128', + amount2Desired: 'u128', + amount1Min: 'u128', + amount2Min: 'u128', + mintTo: 'AccountId32', + }, + remove_liquidity: { + asset1: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + asset2: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + lpTokenBurn: 'u128', + amount1MinReceive: 'u128', + amount2MinReceive: 'u128', + withdrawTo: 'AccountId32', + }, + swap_exact_tokens_for_tokens: { + path: 'Vec', + amountIn: 'u128', + amountOutMin: 'u128', + sendTo: 'AccountId32', + keepAlive: 'bool', + }, + swap_tokens_for_exact_tokens: { + path: 'Vec', + amountOut: 'u128', + amountInMax: 'u128', + sendTo: 'AccountId32', + keepAlive: 'bool', + }, + touch: { + asset1: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + asset2: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId' + } + } + }, + /** + * Lookup425: pallet_fast_unstake::pallet::Call + **/ + PezpalletFastUnstakeCall: { + _enum: { + register_fast_unstake: 'Null', + deregister: 'Null', + control: { + erasToCheck: 'u32' + } + } + }, + /** + * Lookup426: pallet_message_queue::pallet::Call + **/ + PezpalletMessageQueueCall: { + _enum: { + reap_page: { + messageOrigin: 'u32', + pageIndex: 'u32', + }, + execute_overweight: { + messageOrigin: 'u32', + page: 'u32', + index: 'u32', + weightLimit: 'PezspWeightsWeightV2Weight' + } + } + }, + /** + * Lookup427: frame_benchmarking_pallet_pov::pallet::Call + **/ + PezframeBenchmarkingPezpalletPovCall: { + _enum: ['emit_event', 'noop'] + }, + /** + * Lookup428: pallet_tx_pause::pallet::Call + **/ + PezpalletTxPauseCall: { + _enum: { + pause: { + fullName: '(Bytes,Bytes)', + }, + unpause: { + ident: '(Bytes,Bytes)' + } + } + }, + /** + * Lookup430: pallet_safe_mode::pallet::Call + **/ + PezpalletSafeModeCall: { + _enum: { + enter: 'Null', + force_enter: 'Null', + extend: 'Null', + force_extend: 'Null', + force_exit: 'Null', + force_slash_deposit: { + account: 'AccountId32', + block: 'u32', + }, + release_deposit: { + account: 'AccountId32', + block: 'u32', + }, + force_release_deposit: { + account: 'AccountId32', + block: 'u32' + } + } + }, + /** + * Lookup431: pallet_migrations::pallet::Call + **/ + PezpalletMigrationsCall: { + _enum: { + force_set_cursor: { + cursor: 'Option', + }, + force_set_active_cursor: { + index: 'u32', + innerCursor: 'Option', + startedAt: 'Option', + }, + force_onboard_mbms: 'Null', + clear_historic: { + selector: 'PezpalletMigrationsHistoricCleanupSelector' + } + } + }, + /** + * Lookup433: pallet_migrations::MigrationCursor, BlockNumber> + **/ + PezpalletMigrationsMigrationCursor: { + _enum: { + Active: 'PezpalletMigrationsActiveCursor', + Stuck: 'Null' + } + }, + /** + * Lookup435: pallet_migrations::ActiveCursor, BlockNumber> + **/ + PezpalletMigrationsActiveCursor: { + index: 'u32', + innerCursor: 'Option', + startedAt: 'u32' + }, + /** + * Lookup437: pallet_migrations::HistoricCleanupSelector> + **/ + PezpalletMigrationsHistoricCleanupSelector: { + _enum: { + Specific: 'Vec', + Wildcard: { + limit: 'Option', + previousCursor: 'Option' + } + } + }, + /** + * Lookup440: pallet_broker::pallet::Call + **/ + PezpalletBrokerCall: { + _enum: { + configure: { + config: 'PezpalletBrokerConfigRecord', + }, + reserve: { + workload: 'Vec', + }, + unreserve: { + itemIndex: 'u32', + }, + set_lease: { + task: 'u32', + until: 'u32', + }, + start_sales: { + endPrice: 'u128', + extraCores: 'u16', + }, + purchase: { + priceLimit: 'u128', + }, + renew: { + core: 'u16', + }, + transfer: { + regionId: 'PezpalletBrokerRegionId', + newOwner: 'AccountId32', + }, + partition: { + regionId: 'PezpalletBrokerRegionId', + pivot: 'u32', + }, + interlace: { + regionId: 'PezpalletBrokerRegionId', + pivot: 'PezpalletBrokerCoreMask', + }, + assign: { + regionId: 'PezpalletBrokerRegionId', + task: 'u32', + finality: 'PezpalletBrokerFinality', + }, + pool: { + regionId: 'PezpalletBrokerRegionId', + payee: 'AccountId32', + finality: 'PezpalletBrokerFinality', + }, + claim_revenue: { + regionId: 'PezpalletBrokerRegionId', + maxTimeslices: 'u32', + }, + purchase_credit: { + amount: 'u128', + beneficiary: 'AccountId32', + }, + drop_region: { + regionId: 'PezpalletBrokerRegionId', + }, + drop_contribution: { + regionId: 'PezpalletBrokerRegionId', + }, + drop_history: { + when: 'u32', + }, + drop_renewal: { + core: 'u16', + when: 'u32', + }, + request_core_count: { + coreCount: 'u16', + }, + notify_core_count: { + coreCount: 'u16', + }, + notify_revenue: { + revenue: 'PezpalletBrokerOnDemandRevenueRecord', + }, + enable_auto_renew: { + core: 'u16', + task: 'u32', + workloadEndHint: 'Option', + }, + disable_auto_renew: { + core: 'u16', + task: 'u32', + }, + force_reserve: { + workload: 'Vec', + core: 'u16', + }, + remove_lease: { + task: 'u32', + }, + __Unused25: 'Null', + remove_assignment: { + regionId: 'PezpalletBrokerRegionId', + }, + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + swap_leases: { + id: 'u32', + other: 'u32' + } + } + }, + /** + * Lookup441: pallet_broker::types::ConfigRecord + **/ + PezpalletBrokerConfigRecord: { + advanceNotice: 'u32', + interludeLength: 'u32', + leadinLength: 'u32', + regionLength: 'u32', + idealBulkProportion: 'Perbill', + limitCoresOffered: 'Option', + renewalBump: 'Perbill', + contributionTimeout: 'u32' + }, + /** + * Lookup443: pallet_broker::types::ScheduleItem + **/ + PezpalletBrokerScheduleItem: { + mask: 'PezpalletBrokerCoreMask', + assignment: 'PezpalletBrokerCoretimeInterfaceCoreAssignment' + }, + /** + * Lookup444: pallet_broker::core_mask::CoreMask + **/ + PezpalletBrokerCoreMask: '[u8;10]', + /** + * Lookup445: pallet_broker::coretime_interface::CoreAssignment + **/ + PezpalletBrokerCoretimeInterfaceCoreAssignment: { + _enum: { + Idle: 'Null', + Pool: 'Null', + Task: 'u32' + } + }, + /** + * Lookup447: pallet_broker::types::RegionId + **/ + PezpalletBrokerRegionId: { + begin: 'u32', + core: 'u16', + mask: 'PezpalletBrokerCoreMask' + }, + /** + * Lookup448: pallet_broker::types::Finality + **/ + PezpalletBrokerFinality: { + _enum: ['Provisional', 'Final'] + }, + /** + * Lookup449: pallet_broker::types::OnDemandRevenueRecord + **/ + PezpalletBrokerOnDemandRevenueRecord: { + until: 'u32', + amount: 'u128' + }, + /** + * Lookup450: pallet_mixnet::pallet::Call + **/ + PezpalletMixnetCall: { + _enum: { + register: { + registration: 'PezpalletMixnetRegistration', + signature: 'PezspMixnetAppSignature' + } + } + }, + /** + * Lookup451: pallet_mixnet::Registration, S>>> + **/ + PezpalletMixnetRegistration: { + blockNumber: 'u32', + sessionIndex: 'u32', + authorityIndex: 'u32', + mixnode: 'PezpalletMixnetBoundedMixnode' + }, + /** + * Lookup452: pallet_mixnet::BoundedMixnode, S>> + **/ + PezpalletMixnetBoundedMixnode: { + kxPublic: '[u8;32]', + peerId: '[u8;32]', + externalAddresses: 'Vec' + }, + /** + * Lookup455: sp_mixnet::types::app::Signature + **/ + PezspMixnetAppSignature: '[u8;64]', + /** + * Lookup456: pallet_parameters::pallet::Call + **/ + PezpalletParametersCall: { + _enum: { + set_parameter: { + keyValue: 'KitchensinkRuntimeRuntimeParameters' + } + } + }, + /** + * Lookup457: kitchensink_runtime::RuntimeParameters + **/ + KitchensinkRuntimeRuntimeParameters: { + _enum: { + Storage: 'KitchensinkRuntimeDynamicParamsStorageParameters', + Referenda: 'KitchensinkRuntimeDynamicParamsReferendaParameters' + } + }, + /** + * Lookup458: kitchensink_runtime::dynamic_params::storage::Parameters + **/ + KitchensinkRuntimeDynamicParamsStorageParameters: { + _enum: { + BaseDeposit: '(KitchensinkRuntimeDynamicParamsStorageBaseDeposit,Option)', + ByteDeposit: '(KitchensinkRuntimeDynamicParamsStorageByteDeposit,Option)' + } + }, + /** + * Lookup459: kitchensink_runtime::dynamic_params::storage::BaseDeposit + **/ + KitchensinkRuntimeDynamicParamsStorageBaseDeposit: 'Null', + /** + * Lookup460: kitchensink_runtime::dynamic_params::storage::ByteDeposit + **/ + KitchensinkRuntimeDynamicParamsStorageByteDeposit: 'Null', + /** + * Lookup461: kitchensink_runtime::dynamic_params::referenda::Parameters + **/ + KitchensinkRuntimeDynamicParamsReferendaParameters: { + _enum: { + Tracks: '(KitchensinkRuntimeDynamicParamsReferendaTracks,Option>)', + Origins: '(KitchensinkRuntimeDynamicParamsReferendaOrigins,Option>)' + } + }, + /** + * Lookup462: kitchensink_runtime::dynamic_params::referenda::Tracks + **/ + KitchensinkRuntimeDynamicParamsReferendaTracks: 'Null', + /** + * Lookup465: pallet_referenda::types::Track + **/ + PezpalletReferendaTrack: { + id: 'u16', + info: { + name: '[u8;25]', + maxDeciding: 'u32', + decisionDeposit: 'u128', + preparePeriod: 'u32', + decisionPeriod: 'u32', + confirmPeriod: 'u32', + minEnactmentPeriod: 'u32', + minApproval: 'PezpalletReferendaCurve', + minSupport: 'PezpalletReferendaCurve' + } + }, + /** + * Lookup467: pallet_referenda::types::Curve + **/ + PezpalletReferendaCurve: { + _enum: { + LinearDecreasing: { + length: 'Perbill', + floor: 'Perbill', + ceil: 'Perbill', + }, + SteppedDecreasing: { + begin: 'Perbill', + end: 'Perbill', + step: 'Perbill', + period: 'Perbill', + }, + Reciprocal: { + factor: 'i64', + xOffset: 'i64', + yOffset: 'i64' + } + } + }, + /** + * Lookup471: kitchensink_runtime::dynamic_params::referenda::Origins + **/ + KitchensinkRuntimeDynamicParamsReferendaOrigins: 'Null', + /** + * Lookup476: pallet_asset_conversion_ops::pallet::Call + **/ + PezpalletAssetConversionOpsCall: { + _enum: { + migrate_to_new_account: { + asset1: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + asset2: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId' + } + } + }, + /** + * Lookup477: pallet_revive::pallet::Call + **/ + PezpalletReviveCall: { + _enum: { + eth_transact: { + payload: 'Bytes', + }, + call: { + dest: 'H160', + value: 'Compact', + gasLimit: 'PezspWeightsWeightV2Weight', + storageDepositLimit: 'Compact', + data: 'Bytes', + }, + instantiate: { + value: 'Compact', + gasLimit: 'PezspWeightsWeightV2Weight', + storageDepositLimit: 'Compact', + codeHash: 'H256', + data: 'Bytes', + salt: 'Option<[u8;32]>', + }, + instantiate_with_code: { + value: 'Compact', + gasLimit: 'PezspWeightsWeightV2Weight', + storageDepositLimit: 'Compact', + code: 'Bytes', + data: 'Bytes', + salt: 'Option<[u8;32]>', + }, + upload_code: { + code: 'Bytes', + storageDepositLimit: 'Compact', + }, + remove_code: { + codeHash: 'H256', + }, + set_code: { + dest: 'H160', + codeHash: 'H256', + }, + map_account: 'Null', + unmap_account: 'Null', + dispatch_as_fallback_account: { + call: 'RuntimeCall' + } + } + }, + /** + * Lookup479: pallet_asset_rewards::pallet::Call + **/ + PezpalletAssetRewardsCall: { + _enum: { + create_pool: { + stakedAssetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rewardAssetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rewardRatePerBlock: 'u128', + expiry: 'PezframeSupportScheduleDispatchTime', + admin: 'Option', + }, + stake: { + poolId: 'u32', + amount: 'u128', + }, + unstake: { + poolId: 'u32', + amount: 'u128', + staker: 'Option', + }, + harvest_rewards: { + poolId: 'u32', + staker: 'Option', + }, + set_pool_reward_rate_per_block: { + poolId: 'u32', + newRewardRatePerBlock: 'u128', + }, + set_pool_admin: { + poolId: 'u32', + newAdmin: 'AccountId32', + }, + set_pool_expiry_block: { + poolId: 'u32', + newExpiry: 'PezframeSupportScheduleDispatchTime', + }, + deposit_reward_tokens: { + poolId: 'u32', + amount: 'u128', + }, + cleanup_pool: { + poolId: 'u32' + } + } + }, + /** + * Lookup480: pallet_meta_tx::pallet::Call + **/ + PezpalletMetaTxCall: { + _enum: { + dispatch: { + metaTx: 'PezpalletMetaTxMetaTx' + } + } + }, + /** + * Lookup481: pallet_meta_tx::MetaTx + **/ + PezpalletMetaTxMetaTx: { + call: 'RuntimeCall', + extensionVersion: 'u8', + extension: '(PezpalletVerifySignatureExtensionVerifySignature,PezpalletMetaTxExtensionMetaTxMarker,PezframeSystemExtensionsCheckNonZeroSender,PezframeSystemExtensionsCheckSpecVersion,PezframeSystemExtensionsCheckTxVersion,PezframeSystemExtensionsCheckGenesis,Era,PezframeSystemExtensionsCheckNonce,PezframeMetadataHashExtensionCheckMetadataHash)' + }, + /** + * Lookup483: pallet_verify_signature::extension::VerifySignature + **/ + PezpalletVerifySignatureExtensionVerifySignature: { + _enum: { + Signed: { + signature: 'PezspRuntimeMultiSignature', + account: 'AccountId32', + }, + Disabled: 'Null' + } + }, + /** + * Lookup484: pallet_meta_tx::extension::MetaTxMarker + **/ + PezpalletMetaTxExtensionMetaTxMarker: 'Null', + /** + * Lookup485: frame_system::extensions::check_non_zero_sender::CheckNonZeroSender + **/ + PezframeSystemExtensionsCheckNonZeroSender: 'Null', + /** + * Lookup486: frame_system::extensions::check_spec_version::CheckSpecVersion + **/ + PezframeSystemExtensionsCheckSpecVersion: 'Null', + /** + * Lookup487: frame_system::extensions::check_tx_version::CheckTxVersion + **/ + PezframeSystemExtensionsCheckTxVersion: 'Null', + /** + * Lookup488: frame_system::extensions::check_genesis::CheckGenesis + **/ + PezframeSystemExtensionsCheckGenesis: 'Null', + /** + * Lookup491: frame_system::extensions::check_nonce::CheckNonce + **/ + PezframeSystemExtensionsCheckNonce: 'Compact', + /** + * Lookup492: frame_metadata_hash_extension::CheckMetadataHash + **/ + PezframeMetadataHashExtensionCheckMetadataHash: { + mode: 'PezframeMetadataHashExtensionMode' + }, + /** + * Lookup493: frame_metadata_hash_extension::Mode + **/ + PezframeMetadataHashExtensionMode: { + _enum: ['Disabled', 'Enabled'] + }, + /** + * Lookup494: sp_runtime::traits::BlakeTwo256 + **/ + PezspRuntimeBlakeTwo256: 'Null', + /** + * Lookup495: pallet_conviction_voting::types::Tally + **/ + PezpalletConvictionVotingTally: { + ayes: 'u128', + nays: 'u128', + support: 'u128' + }, + /** + * Lookup496: pallet_remark::pallet::Event + **/ + PezpalletRemarkEvent: { + _enum: { + Stored: { + sender: 'AccountId32', + contentHash: 'H256' + } + } + }, + /** + * Lookup497: pallet_root_testing::pallet::Event + **/ + PezpalletRootTestingEvent: { + _enum: ['DefensiveTestCall'] + }, + /** + * Lookup498: pallet_conviction_voting::pallet::Event + **/ + PezpalletConvictionVotingEvent: { + _enum: { + Delegated: '(AccountId32,AccountId32)', + Undelegated: 'AccountId32', + Voted: { + who: 'AccountId32', + vote: 'PezpalletConvictionVotingVoteAccountVote', + }, + VoteRemoved: { + who: 'AccountId32', + vote: 'PezpalletConvictionVotingVoteAccountVote', + }, + VoteUnlocked: { + who: 'AccountId32', + class: 'u16' + } + } + }, + /** + * Lookup499: pallet_whitelist::pallet::Event + **/ + PezpalletWhitelistEvent: { + _enum: { + CallWhitelisted: { + callHash: 'H256', + }, + WhitelistedCallRemoved: { + callHash: 'H256', + }, + WhitelistedCallDispatched: { + callHash: 'H256', + result: 'Result' + } + } + }, + /** + * Lookup501: frame_support::dispatch::PostDispatchInfo + **/ + PezframeSupportDispatchPostDispatchInfo: { + actualWeight: 'Option', + paysFee: 'PezframeSupportDispatchPays' + }, + /** + * Lookup503: sp_runtime::DispatchErrorWithPostInfo + **/ + PezspRuntimeDispatchErrorWithPostInfo: { + postInfo: 'PezframeSupportDispatchPostDispatchInfo', + error: 'PezspRuntimeDispatchError' + }, + /** + * Lookup505: pallet_alliance::pallet::Event + **/ + PezpalletAllianceEvent: { + _enum: { + NewRuleSet: { + rule: 'PezpalletAllianceCid', + }, + Announced: { + announcement: 'PezpalletAllianceCid', + }, + AnnouncementRemoved: { + announcement: 'PezpalletAllianceCid', + }, + MembersInitialized: { + fellows: 'Vec', + allies: 'Vec', + }, + NewAllyJoined: { + ally: 'AccountId32', + nominator: 'Option', + reserved: 'Option', + }, + AllyElevated: { + ally: 'AccountId32', + }, + MemberRetirementPeriodStarted: { + member: 'AccountId32', + }, + MemberRetired: { + member: 'AccountId32', + unreserved: 'Option', + }, + MemberKicked: { + member: 'AccountId32', + slashed: 'Option', + }, + UnscrupulousItemAdded: { + items: 'Vec', + }, + UnscrupulousItemRemoved: { + items: 'Vec', + }, + AllianceDisbanded: { + fellowMembers: 'u32', + allyMembers: 'u32', + unreserved: 'u32', + }, + FellowAbdicated: { + fellow: 'AccountId32' + } + } + }, + /** + * Lookup506: pallet_nomination_pools::pallet::Event + **/ + PezpalletNominationPoolsEvent: { + _enum: { + Created: { + depositor: 'AccountId32', + poolId: 'u32', + }, + Bonded: { + member: 'AccountId32', + poolId: 'u32', + bonded: 'u128', + joined: 'bool', + }, + PaidOut: { + member: 'AccountId32', + poolId: 'u32', + payout: 'u128', + }, + Unbonded: { + member: 'AccountId32', + poolId: 'u32', + balance: 'u128', + points: 'u128', + era: 'u32', + }, + Withdrawn: { + member: 'AccountId32', + poolId: 'u32', + balance: 'u128', + points: 'u128', + }, + Destroyed: { + poolId: 'u32', + }, + StateChanged: { + poolId: 'u32', + newState: 'PezpalletNominationPoolsPoolState', + }, + MemberRemoved: { + poolId: 'u32', + member: 'AccountId32', + releasedBalance: 'u128', + }, + RolesUpdated: { + root: 'Option', + bouncer: 'Option', + nominator: 'Option', + }, + PoolSlashed: { + poolId: 'u32', + balance: 'u128', + }, + UnbondingPoolSlashed: { + poolId: 'u32', + era: 'u32', + balance: 'u128', + }, + PoolCommissionUpdated: { + poolId: 'u32', + current: 'Option<(Perbill,AccountId32)>', + }, + PoolMaxCommissionUpdated: { + poolId: 'u32', + maxCommission: 'Perbill', + }, + PoolCommissionChangeRateUpdated: { + poolId: 'u32', + changeRate: 'PezpalletNominationPoolsCommissionChangeRate', + }, + PoolCommissionClaimPermissionUpdated: { + poolId: 'u32', + permission: 'Option', + }, + PoolCommissionClaimed: { + poolId: 'u32', + commission: 'u128', + }, + MinBalanceDeficitAdjusted: { + poolId: 'u32', + amount: 'u128', + }, + MinBalanceExcessAdjusted: { + poolId: 'u32', + amount: 'u128', + }, + MemberClaimPermissionUpdated: { + member: 'AccountId32', + permission: 'PezpalletNominationPoolsClaimPermission', + }, + MetadataUpdated: { + poolId: 'u32', + caller: 'AccountId32', + }, + PoolNominationMade: { + poolId: 'u32', + caller: 'AccountId32', + }, + PoolNominatorChilled: { + poolId: 'u32', + caller: 'AccountId32', + }, + GlobalParamsUpdated: { + minJoinBond: 'u128', + minCreateBond: 'u128', + maxPools: 'Option', + maxMembers: 'Option', + maxMembersPerPool: 'Option', + globalMaxCommission: 'Option' + } + } + }, + /** + * Lookup509: pallet_ranked_collective::Tally + **/ + PezpalletRankedCollectiveTally: { + bareAyes: 'u32', + ayes: 'u32', + nays: 'u32' + }, + /** + * Lookup510: pallet_ranked_collective::pallet::Event + **/ + PezpalletRankedCollectiveEvent: { + _enum: { + MemberAdded: { + who: 'AccountId32', + }, + RankChanged: { + who: 'AccountId32', + rank: 'u16', + }, + MemberRemoved: { + who: 'AccountId32', + rank: 'u16', + }, + Voted: { + who: 'AccountId32', + poll: 'u32', + vote: 'PezpalletRankedCollectiveVoteRecord', + tally: 'PezpalletRankedCollectiveTally', + }, + MemberExchanged: { + who: 'AccountId32', + newWho: 'AccountId32' + } + } + }, + /** + * Lookup511: pallet_ranked_collective::VoteRecord + **/ + PezpalletRankedCollectiveVoteRecord: { + _enum: { + Aye: 'u32', + Nay: 'u32' + } + }, + /** + * Lookup512: pallet_asset_conversion::pallet::Event + **/ + PezpalletAssetConversionEvent: { + _enum: { + PoolCreated: { + creator: 'AccountId32', + poolId: '(PezframeSupportTokensFungibleUnionOfNativeOrWithId,PezframeSupportTokensFungibleUnionOfNativeOrWithId)', + poolAccount: 'AccountId32', + lpToken: 'u32', + }, + LiquidityAdded: { + who: 'AccountId32', + mintTo: 'AccountId32', + poolId: '(PezframeSupportTokensFungibleUnionOfNativeOrWithId,PezframeSupportTokensFungibleUnionOfNativeOrWithId)', + amount1Provided: 'u128', + amount2Provided: 'u128', + lpToken: 'u32', + lpTokenMinted: 'u128', + }, + LiquidityRemoved: { + who: 'AccountId32', + withdrawTo: 'AccountId32', + poolId: '(PezframeSupportTokensFungibleUnionOfNativeOrWithId,PezframeSupportTokensFungibleUnionOfNativeOrWithId)', + amount1: 'u128', + amount2: 'u128', + lpToken: 'u32', + lpTokenBurned: 'u128', + withdrawalFee: 'Permill', + }, + SwapExecuted: { + who: 'AccountId32', + sendTo: 'AccountId32', + amountIn: 'u128', + amountOut: 'u128', + path: 'Vec<(PezframeSupportTokensFungibleUnionOfNativeOrWithId,u128)>', + }, + SwapCreditExecuted: { + amountIn: 'u128', + amountOut: 'u128', + path: 'Vec<(PezframeSupportTokensFungibleUnionOfNativeOrWithId,u128)>', + }, + Touched: { + poolId: '(PezframeSupportTokensFungibleUnionOfNativeOrWithId,PezframeSupportTokensFungibleUnionOfNativeOrWithId)', + who: 'AccountId32' + } + } + }, + /** + * Lookup517: pallet_fast_unstake::pallet::Event + **/ + PezpalletFastUnstakeEvent: { + _enum: { + Unstaked: { + stash: 'AccountId32', + result: 'Result', + }, + Slashed: { + stash: 'AccountId32', + amount: 'u128', + }, + BatchChecked: { + eras: 'Vec', + }, + BatchFinished: { + _alias: { + size_: 'size', + }, + size_: 'u32', + }, + InternalError: 'Null' + } + }, + /** + * Lookup518: pallet_message_queue::pallet::Event + **/ + PezpalletMessageQueueEvent: { + _enum: { + ProcessingFailed: { + id: 'H256', + origin: 'u32', + error: 'PezframeSupportMessagesProcessMessageError', + }, + Processed: { + id: 'H256', + origin: 'u32', + weightUsed: 'PezspWeightsWeightV2Weight', + success: 'bool', + }, + OverweightEnqueued: { + id: '[u8;32]', + origin: 'u32', + pageIndex: 'u32', + messageIndex: 'u32', + }, + PageReaped: { + origin: 'u32', + index: 'u32' + } + } + }, + /** + * Lookup519: frame_support::traits::messages::ProcessMessageError + **/ + PezframeSupportMessagesProcessMessageError: { + _enum: { + BadFormat: 'Null', + Corrupt: 'Null', + Unsupported: 'Null', + Overweight: 'PezspWeightsWeightV2Weight', + Yield: 'Null', + StackLimitReached: 'Null' + } + }, + /** + * Lookup520: frame_benchmarking_pallet_pov::pallet::Event + **/ + PezframeBenchmarkingPezpalletPovEvent: { + _enum: ['TestEvent'] + }, + /** + * Lookup521: pallet_tx_pause::pallet::Event + **/ + PezpalletTxPauseEvent: { + _enum: { + CallPaused: { + fullName: '(Bytes,Bytes)', + }, + CallUnpaused: { + fullName: '(Bytes,Bytes)' + } + } + }, + /** + * Lookup522: pallet_safe_mode::pallet::Event + **/ + PezpalletSafeModeEvent: { + _enum: { + Entered: { + until: 'u32', + }, + Extended: { + until: 'u32', + }, + Exited: { + reason: 'PezpalletSafeModeExitReason', + }, + DepositPlaced: { + account: 'AccountId32', + amount: 'u128', + }, + DepositReleased: { + account: 'AccountId32', + amount: 'u128', + }, + DepositSlashed: { + account: 'AccountId32', + amount: 'u128', + }, + CannotDeposit: 'Null', + CannotRelease: 'Null' + } + }, + /** + * Lookup523: pallet_safe_mode::pallet::ExitReason + **/ + PezpalletSafeModeExitReason: { + _enum: ['Timeout', 'Force'] + }, + /** + * Lookup524: pallet_statement::pallet::Event + **/ + PezpalletStatementEvent: { + _enum: { + NewStatement: { + account: 'AccountId32', + statement: 'PezspStatementStoreStatement' + } + } + }, + /** + * Lookup525: sp_statement_store::Statement + **/ + PezspStatementStoreStatement: { + proof: 'Option', + decryptionKey: 'Option<[u8;32]>', + channel: 'Option<[u8;32]>', + priority: 'Option', + numTopics: 'u8', + topics: '[[u8;32];4]', + data: 'Option' + }, + /** + * Lookup527: sp_statement_store::Proof + **/ + PezspStatementStoreProof: { + _enum: { + Sr25519: { + signature: '[u8;64]', + signer: '[u8;32]', + }, + Ed25519: { + signature: '[u8;64]', + signer: '[u8;32]', + }, + Secp256k1Ecdsa: { + signature: '[u8;65]', + signer: '[u8;33]', + }, + OnChain: { + who: '[u8;32]', + blockHash: '[u8;32]', + eventIndex: 'u64' + } + } + }, + /** + * Lookup529: pallet_migrations::pallet::Event + **/ + PezpalletMigrationsEvent: { + _enum: { + UpgradeStarted: { + migrations: 'u32', + }, + UpgradeCompleted: 'Null', + UpgradeFailed: 'Null', + MigrationSkipped: { + index: 'u32', + }, + MigrationAdvanced: { + index: 'u32', + took: 'u32', + }, + MigrationCompleted: { + index: 'u32', + took: 'u32', + }, + MigrationFailed: { + index: 'u32', + took: 'u32', + }, + HistoricCleared: { + nextCursor: 'Option' + } + } + }, + /** + * Lookup530: pallet_broker::pallet::Event + **/ + PezpalletBrokerEvent: { + _enum: { + Purchased: { + who: 'AccountId32', + regionId: 'PezpalletBrokerRegionId', + price: 'u128', + duration: 'u32', + }, + Renewable: { + core: 'u16', + price: 'u128', + begin: 'u32', + workload: 'Vec', + }, + Renewed: { + who: 'AccountId32', + price: 'u128', + oldCore: 'u16', + core: 'u16', + begin: 'u32', + duration: 'u32', + workload: 'Vec', + }, + Transferred: { + regionId: 'PezpalletBrokerRegionId', + duration: 'u32', + oldOwner: 'Option', + owner: 'Option', + }, + Partitioned: { + oldRegionId: 'PezpalletBrokerRegionId', + newRegionIds: '(PezpalletBrokerRegionId,PezpalletBrokerRegionId)', + }, + Interlaced: { + oldRegionId: 'PezpalletBrokerRegionId', + newRegionIds: '(PezpalletBrokerRegionId,PezpalletBrokerRegionId)', + }, + Assigned: { + regionId: 'PezpalletBrokerRegionId', + duration: 'u32', + task: 'u32', + }, + AssignmentRemoved: { + regionId: 'PezpalletBrokerRegionId', + }, + Pooled: { + regionId: 'PezpalletBrokerRegionId', + duration: 'u32', + }, + CoreCountRequested: { + coreCount: 'u16', + }, + CoreCountChanged: { + coreCount: 'u16', + }, + ReservationMade: { + index: 'u32', + workload: 'Vec', + }, + ReservationCancelled: { + index: 'u32', + workload: 'Vec', + }, + SaleInitialized: { + saleStart: 'u32', + leadinLength: 'u32', + startPrice: 'u128', + endPrice: 'u128', + regionBegin: 'u32', + regionEnd: 'u32', + idealCoresSold: 'u16', + coresOffered: 'u16', + }, + Leased: { + task: 'u32', + until: 'u32', + }, + LeaseRemoved: { + task: 'u32', + }, + LeaseEnding: { + task: 'u32', + when: 'u32', + }, + SalesStarted: { + price: 'u128', + coreCount: 'u16', + }, + RevenueClaimBegun: { + region: 'PezpalletBrokerRegionId', + maxTimeslices: 'u32', + }, + RevenueClaimItem: { + when: 'u32', + amount: 'u128', + }, + RevenueClaimPaid: { + who: 'AccountId32', + amount: 'u128', + next: 'Option', + }, + CreditPurchased: { + who: 'AccountId32', + beneficiary: 'AccountId32', + amount: 'u128', + }, + RegionDropped: { + regionId: 'PezpalletBrokerRegionId', + duration: 'u32', + }, + ContributionDropped: { + regionId: 'PezpalletBrokerRegionId', + }, + HistoryInitialized: { + when: 'u32', + privatePoolSize: 'u32', + systemPoolSize: 'u32', + }, + HistoryDropped: { + when: 'u32', + revenue: 'u128', + }, + HistoryIgnored: { + when: 'u32', + revenue: 'u128', + }, + ClaimsReady: { + when: 'u32', + systemPayout: 'u128', + privatePayout: 'u128', + }, + CoreAssigned: { + core: 'u16', + when: 'u32', + assignment: 'Vec<(PezpalletBrokerCoretimeInterfaceCoreAssignment,u16)>', + }, + PotentialRenewalDropped: { + when: 'u32', + core: 'u16', + }, + AutoRenewalEnabled: { + core: 'u16', + task: 'u32', + }, + AutoRenewalDisabled: { + core: 'u16', + task: 'u32', + }, + AutoRenewalFailed: { + core: 'u16', + payer: 'Option', + }, + AutoRenewalLimitReached: 'Null' + } + }, + /** + * Lookup535: pallet_parameters::pallet::Event + **/ + PezpalletParametersEvent: { + _enum: { + Updated: { + key: 'KitchensinkRuntimeRuntimeParametersKey', + oldValue: 'Option', + newValue: 'Option' + } + } + }, + /** + * Lookup536: kitchensink_runtime::RuntimeParametersKey + **/ + KitchensinkRuntimeRuntimeParametersKey: { + _enum: { + Storage: 'KitchensinkRuntimeDynamicParamsStorageParametersKey', + Referenda: 'KitchensinkRuntimeDynamicParamsReferendaParametersKey' + } + }, + /** + * Lookup537: kitchensink_runtime::dynamic_params::storage::ParametersKey + **/ + KitchensinkRuntimeDynamicParamsStorageParametersKey: { + _enum: ['BaseDeposit', 'ByteDeposit'] + }, + /** + * Lookup538: kitchensink_runtime::dynamic_params::referenda::ParametersKey + **/ + KitchensinkRuntimeDynamicParamsReferendaParametersKey: { + _enum: ['Tracks', 'Origins'] + }, + /** + * Lookup540: kitchensink_runtime::RuntimeParametersValue + **/ + KitchensinkRuntimeRuntimeParametersValue: { + _enum: { + Storage: 'KitchensinkRuntimeDynamicParamsStorageParametersValue', + Referenda: 'KitchensinkRuntimeDynamicParamsReferendaParametersValue' + } + }, + /** + * Lookup541: kitchensink_runtime::dynamic_params::storage::ParametersValue + **/ + KitchensinkRuntimeDynamicParamsStorageParametersValue: { + _enum: { + BaseDeposit: 'u128', + ByteDeposit: 'u128' + } + }, + /** + * Lookup542: kitchensink_runtime::dynamic_params::referenda::ParametersValue + **/ + KitchensinkRuntimeDynamicParamsReferendaParametersValue: { + _enum: { + Tracks: 'Vec', + Origins: 'Vec<(KitchensinkRuntimeOriginCaller,u16)>' + } + }, + /** + * Lookup543: pallet_skip_feeless_payment::pallet::Event + **/ + PezpalletSkipFeelessPaymentEvent: { + _enum: { + FeeSkipped: { + origin: 'KitchensinkRuntimeOriginCaller' + } + } + }, + /** + * Lookup544: pallet_asset_conversion_ops::pallet::Event + **/ + PezpalletAssetConversionOpsEvent: { + _enum: { + MigratedToNewAccount: { + poolId: '(PezframeSupportTokensFungibleUnionOfNativeOrWithId,PezframeSupportTokensFungibleUnionOfNativeOrWithId)', + priorAccount: 'AccountId32', + newAccount: 'AccountId32' + } + } + }, + /** + * Lookup545: pallet_revive::pallet::Event + **/ + PezpalletReviveEvent: { + _enum: { + ContractEmitted: { + contract: 'H160', + data: 'Bytes', + topics: 'Vec' + } + } + }, + /** + * Lookup546: pallet_delegated_staking::pallet::Event + **/ + PezpalletDelegatedStakingEvent: { + _enum: { + Delegated: { + agent: 'AccountId32', + delegator: 'AccountId32', + amount: 'u128', + }, + Released: { + agent: 'AccountId32', + delegator: 'AccountId32', + amount: 'u128', + }, + Slashed: { + agent: 'AccountId32', + delegator: 'AccountId32', + amount: 'u128', + }, + MigratedDelegation: { + agent: 'AccountId32', + delegator: 'AccountId32', + amount: 'u128' + } + } + }, + /** + * Lookup547: pallet_asset_rewards::pallet::Event + **/ + PezpalletAssetRewardsEvent: { + _enum: { + Staked: { + staker: 'AccountId32', + poolId: 'u32', + amount: 'u128', + }, + Unstaked: { + caller: 'AccountId32', + staker: 'AccountId32', + poolId: 'u32', + amount: 'u128', + }, + RewardsHarvested: { + caller: 'AccountId32', + staker: 'AccountId32', + poolId: 'u32', + amount: 'u128', + }, + PoolCreated: { + creator: 'AccountId32', + poolId: 'u32', + stakedAssetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rewardAssetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rewardRatePerBlock: 'u128', + expiryBlock: 'u32', + admin: 'AccountId32', + }, + PoolRewardRateModified: { + poolId: 'u32', + newRewardRatePerBlock: 'u128', + }, + PoolAdminModified: { + poolId: 'u32', + newAdmin: 'AccountId32', + }, + PoolExpiryBlockModified: { + poolId: 'u32', + newExpiryBlock: 'u32', + }, + PoolCleanedUp: { + poolId: 'u32' + } + } + }, + /** + * Lookup548: pallet_assets_freezer::pallet::Event + **/ + PezpalletAssetsFreezerEvent: { + _enum: { + Frozen: { + who: 'AccountId32', + assetId: 'u32', + amount: 'u128', + }, + Thawed: { + who: 'AccountId32', + assetId: 'u32', + amount: 'u128' + } + } + }, + /** + * Lookup549: pallet_meta_tx::pallet::Event + **/ + PezpalletMetaTxEvent: { + _enum: { + Dispatched: { + result: 'Result' + } + } + }, + /** + * Lookup550: frame_system::Phase + **/ + PezframeSystemPhase: { + _enum: { + ApplyExtrinsic: 'u32', + Finalization: 'Null', + Initialization: 'Null' + } + }, + /** + * Lookup552: frame_system::LastRuntimeUpgradeInfo + **/ + PezframeSystemLastRuntimeUpgradeInfo: { + specVersion: 'Compact', + specName: 'Text' + }, + /** + * Lookup555: frame_system::CodeUpgradeAuthorization + **/ + PezframeSystemCodeUpgradeAuthorization: { + codeHash: 'H256', + checkVersion: 'bool' + }, + /** + * Lookup556: frame_system::limits::BlockWeights + **/ + PezframeSystemLimitsBlockWeights: { + baseBlock: 'PezspWeightsWeightV2Weight', + maxBlock: 'PezspWeightsWeightV2Weight', + perClass: 'PezframeSupportDispatchPerDispatchClassWeightsPerClass' + }, + /** + * Lookup557: frame_support::dispatch::PerDispatchClass + **/ + PezframeSupportDispatchPerDispatchClassWeightsPerClass: { + normal: 'PezframeSystemLimitsWeightsPerClass', + operational: 'PezframeSystemLimitsWeightsPerClass', + mandatory: 'PezframeSystemLimitsWeightsPerClass' + }, + /** + * Lookup558: frame_system::limits::WeightsPerClass + **/ + PezframeSystemLimitsWeightsPerClass: { + baseExtrinsic: 'PezspWeightsWeightV2Weight', + maxExtrinsic: 'Option', + maxTotal: 'Option', + reserved: 'Option' + }, + /** + * Lookup559: frame_system::limits::BlockLength + **/ + PezframeSystemLimitsBlockLength: { + max: 'PezframeSupportDispatchPerDispatchClassU32' + }, + /** + * Lookup560: frame_support::dispatch::PerDispatchClass + **/ + PezframeSupportDispatchPerDispatchClassU32: { + normal: 'u32', + operational: 'u32', + mandatory: 'u32' + }, + /** + * Lookup561: sp_weights::RuntimeDbWeight + **/ + PezspWeightsRuntimeDbWeight: { + read: 'u64', + write: 'u64' + }, + /** + * Lookup562: sp_version::RuntimeVersion + **/ + PezspVersionRuntimeVersion: { + specName: 'Text', + implName: 'Text', + authoringVersion: 'u32', + specVersion: 'u32', + implVersion: 'u32', + apis: 'Vec<([u8;8],u32)>', + transactionVersion: 'u32', + systemVersion: 'u8' + }, + /** + * Lookup566: frame_system::pallet::Error + **/ + PezframeSystemError: { + _enum: ['InvalidSpecName', 'SpecVersionNeedsToIncrease', 'FailedToExtractRuntimeVersion', 'NonDefaultComposite', 'NonZeroRefCount', 'CallFiltered', 'MultiBlockMigrationsOngoing', 'NothingAuthorized', 'Unauthorized'] + }, + /** + * Lookup567: pallet_utility::pallet::Error + **/ + PezpalletUtilityError: { + _enum: ['TooManyCalls'] + }, + /** + * Lookup574: sp_consensus_babe::digests::PreDigest + **/ + PezspConsensusBabeDigestsPreDigest: { + _enum: { + __Unused0: 'Null', + Primary: 'PezspConsensusBabeDigestsPrimaryPreDigest', + SecondaryPlain: 'PezspConsensusBabeDigestsSecondaryPlainPreDigest', + SecondaryVRF: 'PezspConsensusBabeDigestsSecondaryVRFPreDigest' + } + }, + /** + * Lookup575: sp_consensus_babe::digests::PrimaryPreDigest + **/ + PezspConsensusBabeDigestsPrimaryPreDigest: { + authorityIndex: 'u32', + slot: 'u64', + vrfSignature: 'PezspCoreSr25519VrfVrfSignature' + }, + /** + * Lookup576: sp_core::sr25519::vrf::VrfSignature + **/ + PezspCoreSr25519VrfVrfSignature: { + preOutput: '[u8;32]', + proof: '[u8;64]' + }, + /** + * Lookup577: sp_consensus_babe::digests::SecondaryPlainPreDigest + **/ + PezspConsensusBabeDigestsSecondaryPlainPreDigest: { + authorityIndex: 'u32', + slot: 'u64' + }, + /** + * Lookup578: sp_consensus_babe::digests::SecondaryVRFPreDigest + **/ + PezspConsensusBabeDigestsSecondaryVRFPreDigest: { + authorityIndex: 'u32', + slot: 'u64', + vrfSignature: 'PezspCoreSr25519VrfVrfSignature' + }, + /** + * Lookup579: sp_consensus_babe::BabeEpochConfiguration + **/ + PezspConsensusBabeBabeEpochConfiguration: { + c: '(u64,u64)', + allowedSlots: 'PezspConsensusBabeAllowedSlots' + }, + /** + * Lookup583: pallet_babe::pallet::Error + **/ + PezpalletBabeError: { + _enum: ['InvalidEquivocationProof', 'InvalidKeyOwnershipProof', 'DuplicateOffenceReport', 'InvalidConfiguration'] + }, + /** + * Lookup585: pallet_indices::pallet::Error + **/ + PezpalletIndicesError: { + _enum: ['NotAssigned', 'NotOwner', 'InUse', 'NotTransfer', 'Permanent'] + }, + /** + * Lookup587: pallet_balances::types::BalanceLock + **/ + PezpalletBalancesBalanceLock: { + id: '[u8;8]', + amount: 'u128', + reasons: 'PezpalletBalancesReasons' + }, + /** + * Lookup588: pallet_balances::types::Reasons + **/ + PezpalletBalancesReasons: { + _enum: ['Fee', 'Misc', 'All'] + }, + /** + * Lookup591: pallet_balances::types::ReserveData + **/ + PezpalletBalancesReserveData: { + id: '[u8;8]', + amount: 'u128' + }, + /** + * Lookup594: frame_support::traits::tokens::misc::IdAmount + **/ + PezframeSupportTokensMiscIdAmountRuntimeHoldReason: { + id: 'KitchensinkRuntimeRuntimeHoldReason', + amount: 'u128' + }, + /** + * Lookup595: kitchensink_runtime::RuntimeHoldReason + **/ + KitchensinkRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + Staking: 'PezpalletStakingPezpalletHoldReason', + __Unused12: 'Null', + __Unused13: 'Null', + Council: 'PezpalletCollectiveHoldReason', + TechnicalCommittee: 'PezpalletCollectiveHoldReason', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + Contracts: 'PezpalletContractsHoldReason', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + Preimage: 'PezpalletPreimageHoldReason', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + Nis: 'PezpalletNisHoldReason', + __Unused46: 'Null', + __Unused47: 'Null', + NftFractionalization: 'PezpalletNftFractionalizationHoldReason', + __Unused49: 'Null', + __Unused50: 'Null', + TransactionStorage: 'PezpalletTransactionStorageHoldReason', + __Unused52: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationHoldReason', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + AllianceMotion: 'PezpalletCollectiveHoldReason', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + SafeMode: 'PezpalletSafeModeHoldReason', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + Revive: 'PezpalletReviveHoldReason', + __Unused81: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingHoldReason', + AssetRewards: 'PezpalletAssetRewardsHoldReason' + } + }, + /** + * Lookup596: pallet_staking::pallet::pallet::HoldReason + **/ + PezpalletStakingPezpalletHoldReason: { + _enum: ['Staking'] + }, + /** + * Lookup597: pallet_collective::pallet::HoldReason + **/ + PezpalletCollectiveHoldReason: { + _enum: ['ProposalSubmission'] + }, + /** + * Lookup599: pallet_contracts::pallet::HoldReason + **/ + PezpalletContractsHoldReason: { + _enum: ['CodeUploadDepositReserve', 'StorageDepositReserve'] + }, + /** + * Lookup600: pallet_preimage::pallet::HoldReason + **/ + PezpalletPreimageHoldReason: { + _enum: ['Preimage'] + }, + /** + * Lookup601: pallet_nis::pallet::HoldReason + **/ + PezpalletNisHoldReason: { + _enum: ['NftReceipt'] + }, + /** + * Lookup602: pallet_nft_fractionalization::pallet::HoldReason + **/ + PezpalletNftFractionalizationHoldReason: { + _enum: ['Fractionalized'] + }, + /** + * Lookup603: pallet_transaction_storage::pallet::HoldReason + **/ + PezpalletTransactionStorageHoldReason: { + _enum: ['StorageFeeHold'] + }, + /** + * Lookup604: pallet_state_trie_migration::pallet::HoldReason + **/ + PezpalletStateTrieMigrationHoldReason: { + _enum: ['SlashForMigrate'] + }, + /** + * Lookup606: pallet_safe_mode::pallet::HoldReason + **/ + PezpalletSafeModeHoldReason: { + _enum: ['EnterOrExtend'] + }, + /** + * Lookup607: pallet_revive::pallet::HoldReason + **/ + PezpalletReviveHoldReason: { + _enum: ['CodeUploadDepositReserve', 'StorageDepositReserve', 'AddressMapping'] + }, + /** + * Lookup608: pallet_delegated_staking::pallet::HoldReason + **/ + PezpalletDelegatedStakingHoldReason: { + _enum: ['StakingDelegation'] + }, + /** + * Lookup609: pallet_asset_rewards::pallet::HoldReason + **/ + PezpalletAssetRewardsHoldReason: { + _enum: ['PoolCreation'] + }, + /** + * Lookup612: frame_support::traits::tokens::misc::IdAmount + **/ + PezframeSupportTokensMiscIdAmountRuntimeFreezeReason: { + id: 'KitchensinkRuntimeRuntimeFreezeReason', + amount: 'u128' + }, + /** + * Lookup613: kitchensink_runtime::RuntimeFreezeReason + **/ + KitchensinkRuntimeRuntimeFreezeReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + NominationPools: 'PezpalletNominationPoolsFreezeReason', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + AssetRewards: 'PezpalletAssetRewardsFreezeReason' + } + }, + /** + * Lookup614: pallet_nomination_pools::pallet::FreezeReason + **/ + PezpalletNominationPoolsFreezeReason: { + _enum: ['PoolMinBalance'] + }, + /** + * Lookup615: pallet_asset_rewards::pallet::FreezeReason + **/ + PezpalletAssetRewardsFreezeReason: { + _enum: ['Staked'] + }, + /** + * Lookup617: pallet_balances::pallet::Error + **/ + PezpalletBalancesError: { + _enum: ['VestingBalance', 'LiquidityRestrictions', 'InsufficientBalance', 'ExistentialDeposit', 'Expendability', 'ExistingVestingSchedule', 'DeadAccount', 'TooManyReserves', 'TooManyHolds', 'TooManyFreezes', 'IssuanceDeactivated', 'DeltaZero'] + }, + /** + * Lookup618: pallet_transaction_payment::Releases + **/ + PezpalletTransactionPaymentReleases: { + _enum: ['V1Ancient', 'V2'] + }, + /** + * Lookup619: pallet_election_provider_multi_phase::ReadySolution + **/ + PezpalletElectionProviderMultiPhaseReadySolution: { + supports: 'Vec<(AccountId32,PezspNposElectionsSupport)>', + score: 'PezspNposElectionsElectionScore', + compute: 'PezpalletElectionProviderMultiPhaseElectionCompute' + }, + /** + * Lookup621: pallet_election_provider_multi_phase::RoundSnapshot + **/ + PezpalletElectionProviderMultiPhaseRoundSnapshot: { + voters: 'Vec<(AccountId32,u64,Vec)>', + targets: 'Vec' + }, + /** + * Lookup628: pallet_election_provider_multi_phase::signed::SignedSubmission + **/ + PezpalletElectionProviderMultiPhaseSignedSignedSubmission: { + who: 'AccountId32', + deposit: 'u128', + rawSolution: 'PezpalletElectionProviderMultiPhaseRawSolution', + callFee: 'u128' + }, + /** + * Lookup629: pallet_election_provider_multi_phase::pallet::Error + **/ + PezpalletElectionProviderMultiPhaseError: { + _enum: ['PreDispatchEarlySubmission', 'PreDispatchWrongWinnerCount', 'PreDispatchWeakSubmission', 'SignedQueueFull', 'SignedCannotPayDeposit', 'SignedInvalidWitness', 'SignedTooMuchWeight', 'OcwCallWrongEra', 'MissingSnapshotMetadata', 'InvalidSubmissionIndex', 'CallNotAllowed', 'FallbackFailed', 'BoundNotMet', 'TooManyWinners', 'PreDispatchDifferentRound'] + }, + /** + * Lookup630: pallet_staking::StakingLedger + **/ + PezpalletStakingStakingLedger: { + stash: 'AccountId32', + total: 'Compact', + active: 'Compact', + unlocking: 'Vec', + legacyClaimedRewards: 'Vec' + }, + /** + * Lookup632: pallet_staking::Nominations + **/ + PezpalletStakingNominations: { + targets: 'Vec', + submittedIn: 'u32', + suppressed: 'bool' + }, + /** + * Lookup633: pallet_staking::ActiveEraInfo + **/ + PezpalletStakingActiveEraInfo: { + index: 'u32', + start: 'Option' + }, + /** + * Lookup636: sp_staking::Exposure + **/ + PezspStakingExposure: { + total: 'Compact', + own: 'Compact', + others: 'Vec' + }, + /** + * Lookup638: sp_staking::IndividualExposure + **/ + PezspStakingIndividualExposure: { + who: 'AccountId32', + value: 'Compact' + }, + /** + * Lookup639: sp_staking::PagedExposureMetadata + **/ + PezspStakingPagedExposureMetadata: { + total: 'Compact', + own: 'Compact', + nominatorCount: 'u32', + pageCount: 'u32' + }, + /** + * Lookup641: sp_staking::ExposurePage + **/ + PezspStakingExposurePage: { + pageTotal: 'Compact', + others: 'Vec' + }, + /** + * Lookup642: pallet_staking::EraRewardPoints + **/ + PezpalletStakingEraRewardPoints: { + total: 'u32', + individual: 'BTreeMap' + }, + /** + * Lookup647: pallet_staking::UnappliedSlash + **/ + PezpalletStakingUnappliedSlash: { + validator: 'AccountId32', + own: 'u128', + others: 'Vec<(AccountId32,u128)>', + reporters: 'Vec', + payout: 'u128' + }, + /** + * Lookup649: pallet_staking::slashing::SlashingSpans + **/ + PezpalletStakingSlashingSlashingSpans: { + spanIndex: 'u32', + lastStart: 'u32', + lastNonzeroSlash: 'u32', + prior: 'Vec' + }, + /** + * Lookup650: pallet_staking::slashing::SpanRecord + **/ + PezpalletStakingSlashingSpanRecord: { + slashed: 'u128', + paidOut: 'u128' + }, + /** + * Lookup651: pallet_staking::pallet::pallet::Error + **/ + PezpalletStakingPezpalletError: { + _enum: ['NotController', 'NotStash', 'AlreadyBonded', 'AlreadyPaired', 'EmptyTargets', 'DuplicateIndex', 'InvalidSlashIndex', 'InsufficientBond', 'NoMoreChunks', 'NoUnlockChunk', 'FundedTarget', 'InvalidEraToReward', 'InvalidNumberOfNominations', 'NotSortedAndUnique', 'AlreadyClaimed', 'InvalidPage', 'IncorrectHistoryDepth', 'IncorrectSlashingSpans', 'BadState', 'TooManyTargets', 'BadTarget', 'CannotChillOther', 'TooManyNominators', 'TooManyValidators', 'CommissionTooLow', 'BoundNotMet', 'ControllerDeprecated', 'CannotRestoreLedger', 'RewardDestinationRestricted', 'NotEnoughFunds', 'VirtualStakerNotAllowed', 'CannotReapStash', 'AlreadyMigrated', 'Restricted'] + }, + /** + * Lookup658: sp_core::crypto::KeyTypeId + **/ + PezspCoreCryptoKeyTypeId: '[u8;4]', + /** + * Lookup659: pallet_session::pallet::Error + **/ + PezpalletSessionError: { + _enum: ['InvalidProof', 'NoAssociatedValidatorId', 'DuplicatedKey', 'NoKeys', 'NoAccount'] + }, + /** + * Lookup665: pallet_democracy::types::ReferendumInfo, Balance> + **/ + PezpalletDemocracyReferendumInfo: { + _enum: { + Ongoing: 'PezpalletDemocracyReferendumStatus', + Finished: { + approved: 'bool', + end: 'u32' + } + } + }, + /** + * Lookup666: pallet_democracy::types::ReferendumStatus, Balance> + **/ + PezpalletDemocracyReferendumStatus: { + end: 'u32', + proposal: 'PezframeSupportPreimagesBounded', + threshold: 'PezpalletDemocracyVoteThreshold', + delay: 'u32', + tally: 'PezpalletDemocracyTally' + }, + /** + * Lookup667: pallet_democracy::types::Tally + **/ + PezpalletDemocracyTally: { + ayes: 'u128', + nays: 'u128', + turnout: 'u128' + }, + /** + * Lookup668: pallet_democracy::vote::Voting + **/ + PezpalletDemocracyVoteVoting: { + _enum: { + Direct: { + votes: 'Vec<(u32,PezpalletDemocracyVoteAccountVote)>', + delegations: 'PezpalletDemocracyDelegations', + prior: 'PezpalletDemocracyVotePriorLock', + }, + Delegating: { + balance: 'u128', + target: 'AccountId32', + conviction: 'PezpalletDemocracyConviction', + delegations: 'PezpalletDemocracyDelegations', + prior: 'PezpalletDemocracyVotePriorLock' + } + } + }, + /** + * Lookup672: pallet_democracy::types::Delegations + **/ + PezpalletDemocracyDelegations: { + votes: 'u128', + capital: 'u128' + }, + /** + * Lookup673: pallet_democracy::vote::PriorLock + **/ + PezpalletDemocracyVotePriorLock: '(u32,u128)', + /** + * Lookup676: pallet_democracy::pallet::Error + **/ + PezpalletDemocracyError: { + _enum: ['ValueLow', 'ProposalMissing', 'AlreadyCanceled', 'DuplicateProposal', 'ProposalBlacklisted', 'NotSimpleMajority', 'InvalidHash', 'NoProposal', 'AlreadyVetoed', 'ReferendumInvalid', 'NoneWaiting', 'NotVoter', 'NoPermission', 'AlreadyDelegating', 'InsufficientFunds', 'NotDelegating', 'VotesExist', 'InstantNotAllowed', 'Nonsense', 'WrongUpperBound', 'MaxVotesReached', 'TooMany', 'VotingPeriodLow', 'PreimageNotExist'] + }, + /** + * Lookup680: pallet_collective::Votes + **/ + PezpalletCollectiveVotes: { + index: 'u32', + threshold: 'u32', + ayes: 'Vec', + nays: 'Vec', + end: 'u32' + }, + /** + * Lookup681: pallet_collective::pallet::Error + **/ + PezpalletCollectiveError: { + _enum: ['NotMember', 'DuplicateProposal', 'ProposalMissing', 'WrongIndex', 'DuplicateVote', 'AlreadyInitialized', 'TooEarly', 'TooManyProposals', 'WrongProposalWeight', 'WrongProposalLength', 'PrimeAccountNotMember', 'ProposalActive'] + }, + /** + * Lookup685: pallet_elections_phragmen::SeatHolder + **/ + PezpalletElectionsPhragmenSeatHolder: { + who: 'AccountId32', + stake: 'u128', + deposit: 'u128' + }, + /** + * Lookup686: pallet_elections_phragmen::Voter + **/ + PezpalletElectionsPhragmenVoter: { + votes: 'Vec', + stake: 'u128', + deposit: 'u128' + }, + /** + * Lookup687: pallet_elections_phragmen::pallet::Error + **/ + PezpalletElectionsPhragmenError: { + _enum: ['UnableToVote', 'NoVotes', 'TooManyVotes', 'MaximumVotesExceeded', 'LowBalance', 'UnableToPayBond', 'MustBeVoter', 'DuplicatedCandidate', 'TooManyCandidates', 'MemberSubmit', 'RunnerUpSubmit', 'InsufficientCandidateFunds', 'NotMember', 'InvalidWitnessData', 'InvalidVoteCount', 'InvalidRenouncing', 'InvalidReplacement'] + }, + /** + * Lookup689: pallet_membership::pallet::Error + **/ + PezpalletMembershipError: { + _enum: ['AlreadyMember', 'NotMember', 'TooManyMembers'] + }, + /** + * Lookup690: pallet_grandpa::StoredState + **/ + PezpalletGrandpaStoredState: { + _enum: { + Live: 'Null', + PendingPause: { + scheduledAt: 'u32', + delay: 'u32', + }, + Paused: 'Null', + PendingResume: { + scheduledAt: 'u32', + delay: 'u32' + } + } + }, + /** + * Lookup691: pallet_grandpa::StoredPendingChange + **/ + PezpalletGrandpaStoredPendingChange: { + scheduledAt: 'u32', + delay: 'u32', + nextAuthorities: 'Vec<(PezspConsensusGrandpaAppPublic,u64)>', + forced: 'Option' + }, + /** + * Lookup693: pallet_grandpa::pallet::Error + **/ + PezpalletGrandpaError: { + _enum: ['PauseFailed', 'ResumeFailed', 'ChangePending', 'TooSoon', 'InvalidKeyOwnershipProof', 'InvalidEquivocationProof', 'DuplicateOffenceReport'] + }, + /** + * Lookup694: pallet_treasury::Proposal + **/ + PezpalletTreasuryProposal: { + proposer: 'AccountId32', + value: 'u128', + beneficiary: 'AccountId32', + bond: 'u128' + }, + /** + * Lookup696: pallet_treasury::SpendStatus, AssetBalance, sp_core::crypto::AccountId32, BlockNumber, PaymentId> + **/ + PezpalletTreasurySpendStatus: { + assetKind: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + amount: 'u128', + beneficiary: 'AccountId32', + validFrom: 'u32', + expireAt: 'u32', + status: 'PezpalletTreasuryPaymentState' + }, + /** + * Lookup697: pallet_treasury::PaymentState + **/ + PezpalletTreasuryPaymentState: { + _enum: { + Pending: 'Null', + Attempted: { + id: 'Null', + }, + Failed: 'Null' + } + }, + /** + * Lookup698: frame_support::PalletId + **/ + PezframeSupportPezpalletId: '[u8;8]', + /** + * Lookup699: pallet_treasury::pallet::Error + **/ + PezpalletTreasuryError: { + _enum: ['InvalidIndex', 'TooManyApprovals', 'InsufficientPermission', 'ProposalNotApproved', 'FailedToConvertBalance', 'SpendExpired', 'EarlyPayout', 'AlreadyAttempted', 'PayoutError', 'NotAttempted', 'Inconclusive'] + }, + /** + * Lookup700: pallet_asset_rate::pallet::Error + **/ + PezpalletAssetRateError: { + _enum: ['UnknownAssetKind', 'AlreadyExists', 'Overflow'] + }, + /** + * Lookup702: pallet_contracts::wasm::CodeInfo + **/ + PezpalletContractsWasmCodeInfo: { + owner: 'AccountId32', + deposit: 'Compact', + refcount: 'Compact', + determinism: 'PezpalletContractsWasmDeterminism', + codeLen: 'u32' + }, + /** + * Lookup703: pallet_contracts::storage::ContractInfo + **/ + PezpalletContractsStorageContractInfo: { + trieId: 'Bytes', + codeHash: 'H256', + storageBytes: 'u32', + storageItems: 'u32', + storageByteDeposit: 'u128', + storageItemDeposit: 'u128', + storageBaseDeposit: 'u128', + delegateDependencies: 'BTreeMap' + }, + /** + * Lookup708: pallet_contracts::storage::DeletionQueueManager + **/ + PezpalletContractsStorageDeletionQueueManager: { + insertCounter: 'u32', + deleteCounter: 'u32' + }, + /** + * Lookup710: pallet_contracts::schedule::Schedule + **/ + PezpalletContractsSchedule: { + limits: 'PezpalletContractsScheduleLimits', + instructionWeights: 'PezpalletContractsScheduleInstructionWeights' + }, + /** + * Lookup711: pallet_contracts::schedule::Limits + **/ + PezpalletContractsScheduleLimits: { + eventTopics: 'u32', + memoryPages: 'u32', + subjectLen: 'u32', + payloadLen: 'u32', + runtimeMemory: 'u32', + validatorRuntimeMemory: 'u32', + eventRefTime: 'u64' + }, + /** + * Lookup712: pallet_contracts::schedule::InstructionWeights + **/ + PezpalletContractsScheduleInstructionWeights: { + base: 'u32' + }, + /** + * Lookup713: pallet_contracts::Environment + **/ + PezpalletContractsEnvironment: { + _alias: { + hash_: 'hash' + }, + accountId: 'PezpalletContractsEnvironmentTypeAccountId32', + balance: 'PezpalletContractsEnvironmentTypeU128', + hash_: 'PezpalletContractsEnvironmentTypeH256', + hasher: 'PezpalletContractsEnvironmentTypeBlakeTwo256', + timestamp: 'PezpalletContractsEnvironmentTypeU64', + blockNumber: 'PezpalletContractsEnvironmentTypeU32' + }, + /** + * Lookup714: pallet_contracts::EnvironmentType + **/ + PezpalletContractsEnvironmentTypeAccountId32: 'Null', + /** + * Lookup715: pallet_contracts::EnvironmentType + **/ + PezpalletContractsEnvironmentTypeU128: 'Null', + /** + * Lookup716: pallet_contracts::EnvironmentType + **/ + PezpalletContractsEnvironmentTypeH256: 'Null', + /** + * Lookup717: pallet_contracts::EnvironmentType + **/ + PezpalletContractsEnvironmentTypeBlakeTwo256: 'Null', + /** + * Lookup718: pallet_contracts::EnvironmentType + **/ + PezpalletContractsEnvironmentTypeU64: 'Null', + /** + * Lookup719: pallet_contracts::EnvironmentType + **/ + PezpalletContractsEnvironmentTypeU32: 'Null', + /** + * Lookup721: pallet_contracts::pallet::Error + **/ + PezpalletContractsError: { + _enum: ['InvalidSchedule', 'InvalidCallFlags', 'OutOfGas', 'OutputBufferTooSmall', 'TransferFailed', 'MaxCallDepthReached', 'ContractNotFound', 'CodeTooLarge', 'CodeNotFound', 'CodeInfoNotFound', 'OutOfBounds', 'DecodingFailed', 'ContractTrapped', 'ValueTooLarge', 'TerminatedWhileReentrant', 'InputForwarded', 'RandomSubjectTooLong', 'TooManyTopics', 'NoChainExtension', 'XCMDecodeFailed', 'DuplicateContract', 'TerminatedInConstructor', 'ReentranceDenied', 'StateChangeDenied', 'StorageDepositNotEnoughFunds', 'StorageDepositLimitExhausted', 'CodeInUse', 'ContractReverted', 'CodeRejected', 'Indeterministic', 'MigrationInProgress', 'NoMigrationPerformed', 'MaxDelegateDependenciesReached', 'DelegateDependencyNotFound', 'DelegateDependencyAlreadyExists', 'CannotAddSelfAsDelegateDependency', 'OutOfTransientStorage'] + }, + /** + * Lookup722: pallet_sudo::pallet::Error + **/ + PezpalletSudoError: { + _enum: ['RequireSudo'] + }, + /** + * Lookup725: pallet_im_online::pallet::Error + **/ + PezpalletImOnlineError: { + _enum: ['InvalidKey', 'DuplicatedHeartbeat'] + }, + /** + * Lookup728: sp_staking::offence::OffenceDetails + **/ + PezspStakingOffenceOffenceDetails: { + offender: '(AccountId32,Null)', + reporters: 'Vec' + }, + /** + * Lookup732: pallet_identity::types::Registration> + **/ + PezpalletIdentityRegistration: { + judgements: 'Vec<(u32,PezpalletIdentityJudgement)>', + deposit: 'u128', + info: 'PezpalletIdentityLegacyIdentityInfo' + }, + /** + * Lookup740: pallet_identity::types::RegistrarInfo + **/ + PezpalletIdentityRegistrarInfo: { + account: 'AccountId32', + fee: 'u128', + fields: 'u64' + }, + /** + * Lookup743: pallet_identity::types::AuthorityProperties + **/ + PezpalletIdentityAuthorityProperties: { + accountId: 'AccountId32', + allocation: 'u32' + }, + /** + * Lookup744: pallet_identity::types::UsernameInformation + **/ + PezpalletIdentityUsernameInformation: { + owner: 'AccountId32', + provider: 'PezpalletIdentityProvider' + }, + /** + * Lookup745: pallet_identity::types::Provider + **/ + PezpalletIdentityProvider: { + _enum: { + Allocation: 'Null', + AuthorityDeposit: 'u128', + System: 'Null' + } + }, + /** + * Lookup747: pallet_identity::pallet::Error + **/ + PezpalletIdentityError: { + _enum: ['TooManySubAccounts', 'NotFound', 'NotNamed', 'EmptyIndex', 'FeeChanged', 'NoIdentity', 'StickyJudgement', 'JudgementGiven', 'InvalidJudgement', 'InvalidIndex', 'InvalidTarget', 'TooManyRegistrars', 'AlreadyClaimed', 'NotSub', 'NotOwned', 'JudgementForDifferentIdentity', 'JudgementPaymentFailed', 'InvalidSuffix', 'NotUsernameAuthority', 'NoAllocation', 'InvalidSignature', 'RequiresSignature', 'InvalidUsername', 'UsernameTaken', 'NoUsername', 'NotExpired', 'TooEarly', 'NotUnbinding', 'AlreadyUnbinding', 'InsufficientPrivileges'] + }, + /** + * Lookup748: pallet_society::MemberRecord + **/ + PezpalletSocietyMemberRecord: { + rank: 'u32', + strikes: 'u32', + vouching: 'Option', + index: 'u32' + }, + /** + * Lookup750: pallet_society::VouchingStatus + **/ + PezpalletSocietyVouchingStatus: { + _enum: ['Vouching', 'Banned'] + }, + /** + * Lookup751: pallet_society::PayoutRecord> + **/ + PezpalletSocietyPayoutRecord: { + paid: 'u128', + payouts: 'Vec<(u32,u128)>' + }, + /** + * Lookup756: pallet_society::Bid + **/ + PezpalletSocietyBid: { + who: 'AccountId32', + kind: 'PezpalletSocietyBidKind', + value: 'u128' + }, + /** + * Lookup757: pallet_society::BidKind + **/ + PezpalletSocietyBidKind: { + _enum: { + Deposit: 'u128', + Vouch: '(AccountId32,u128)' + } + }, + /** + * Lookup759: pallet_society::Candidacy + **/ + PezpalletSocietyCandidacy: { + round: 'u32', + kind: 'PezpalletSocietyBidKind', + bid: 'u128', + tally: 'PezpalletSocietyTally', + skepticStruck: 'bool' + }, + /** + * Lookup760: pallet_society::Tally + **/ + PezpalletSocietyTally: { + approvals: 'u32', + rejections: 'u32' + }, + /** + * Lookup762: pallet_society::Vote + **/ + PezpalletSocietyVote: { + approve: 'bool', + weight: 'u32' + }, + /** + * Lookup764: pallet_society::IntakeRecord + **/ + PezpalletSocietyIntakeRecord: { + who: 'AccountId32', + bid: 'u128', + round: 'u32' + }, + /** + * Lookup766: pallet_society::pallet::Error + **/ + PezpalletSocietyError: { + _enum: ['NotMember', 'AlreadyMember', 'Suspended', 'NotSuspended', 'NoPayout', 'AlreadyFounded', 'InsufficientPot', 'AlreadyVouching', 'NotVouchingOnBidder', 'Head', 'Founder', 'AlreadyBid', 'AlreadyCandidate', 'NotCandidate', 'MaxMembers', 'NotFounder', 'NotHead', 'NotApproved', 'NotRejected', 'Approved', 'Rejected', 'InProgress', 'TooEarly', 'Voted', 'Expired', 'NotBidder', 'NoDefender', 'NotGroup', 'AlreadyElevated', 'AlreadyPunished', 'InsufficientFunds', 'NoVotes'] + }, + /** + * Lookup767: pallet_recovery::RecoveryConfig> + **/ + PezpalletRecoveryRecoveryConfig: { + delayPeriod: 'u32', + deposit: 'u128', + friends: 'Vec', + threshold: 'u16' + }, + /** + * Lookup769: pallet_recovery::ActiveRecovery> + **/ + PezpalletRecoveryActiveRecovery: { + created: 'u32', + deposit: 'u128', + friends: 'Vec' + }, + /** + * Lookup770: pallet_recovery::pallet::Error + **/ + PezpalletRecoveryError: { + _enum: ['NotAllowed', 'ZeroThreshold', 'NotEnoughFriends', 'MaxFriends', 'NotSorted', 'NotRecoverable', 'AlreadyRecoverable', 'AlreadyStarted', 'NotStarted', 'NotFriend', 'DelayPeriod', 'AlreadyVouched', 'Threshold', 'StillActive', 'AlreadyProxy', 'BadState'] + }, + /** + * Lookup773: pallet_vesting::Releases + **/ + PezpalletVestingReleases: { + _enum: ['V0', 'V1'] + }, + /** + * Lookup774: pallet_vesting::pallet::Error + **/ + PezpalletVestingError: { + _enum: ['NotVesting', 'AtMaxVestingSchedules', 'AmountLow', 'ScheduleIndexOutOfBounds', 'InvalidScheduleParams'] + }, + /** + * Lookup777: pallet_scheduler::Scheduled, BlockNumber, kitchensink_runtime::OriginCaller, sp_core::crypto::AccountId32> + **/ + PezpalletSchedulerScheduled: { + maybeId: 'Option<[u8;32]>', + priority: 'u8', + call: 'PezframeSupportPreimagesBounded', + maybePeriodic: 'Option<(u32,u32)>', + origin: 'KitchensinkRuntimeOriginCaller' + }, + /** + * Lookup779: pallet_scheduler::RetryConfig + **/ + PezpalletSchedulerRetryConfig: { + totalRetries: 'u8', + remaining: 'u8', + period: 'u32' + }, + /** + * Lookup780: pallet_scheduler::pallet::Error + **/ + PezpalletSchedulerError: { + _enum: ['FailedToSchedule', 'NotFound', 'TargetBlockNumberInPast', 'RescheduleNoChange', 'Named'] + }, + /** + * Lookup781: pallet_glutton::pallet::Error + **/ + PezpalletGluttonError: { + _enum: ['AlreadyInitialized', 'InsaneLimit'] + }, + /** + * Lookup782: pallet_preimage::OldRequestStatus + **/ + PezpalletPreimageOldRequestStatus: { + _enum: { + Unrequested: { + deposit: '(AccountId32,u128)', + len: 'u32', + }, + Requested: { + deposit: 'Option<(AccountId32,u128)>', + count: 'u32', + len: 'Option' + } + } + }, + /** + * Lookup784: pallet_preimage::RequestStatus> + **/ + PezpalletPreimageRequestStatus: { + _enum: { + Unrequested: { + ticket: '(AccountId32,u128)', + len: 'u32', + }, + Requested: { + maybeTicket: 'Option<(AccountId32,u128)>', + count: 'u32', + maybeLen: 'Option' + } + } + }, + /** + * Lookup789: pallet_preimage::pallet::Error + **/ + PezpalletPreimageError: { + _enum: ['TooBig', 'AlreadyNoted', 'NotAuthorized', 'NotNoted', 'Requested', 'NotRequested', 'TooMany', 'TooFew'] + }, + /** + * Lookup792: pallet_proxy::ProxyDefinition + **/ + PezpalletProxyProxyDefinition: { + delegate: 'AccountId32', + proxyType: 'KitchensinkRuntimeProxyType', + delay: 'u32' + }, + /** + * Lookup796: pallet_proxy::Announcement + **/ + PezpalletProxyAnnouncement: { + real: 'AccountId32', + callHash: 'H256', + height: 'u32' + }, + /** + * Lookup798: pallet_proxy::pallet::Error + **/ + PezpalletProxyError: { + _enum: ['TooMany', 'NotFound', 'NotProxy', 'Unproxyable', 'Duplicate', 'NoPermission', 'Unannounced', 'NoSelfProxy'] + }, + /** + * Lookup800: pallet_multisig::Multisig + **/ + PezpalletMultisigMultisig: { + when: 'PezpalletMultisigTimepoint', + deposit: 'u128', + depositor: 'AccountId32', + approvals: 'Vec' + }, + /** + * Lookup801: pallet_multisig::pallet::Error + **/ + PezpalletMultisigError: { + _enum: ['MinimumThreshold', 'AlreadyApproved', 'NoApprovalsNeeded', 'TooFewSignatories', 'TooManySignatories', 'SignatoriesOutOfOrder', 'SenderInSignatories', 'NotFound', 'NotOwner', 'NoTimepoint', 'WrongTimepoint', 'UnexpectedTimepoint', 'MaxWeightTooLow', 'AlreadyStored'] + }, + /** + * Lookup802: pallet_bounties::Bounty + **/ + PezpalletBountiesBounty: { + proposer: 'AccountId32', + value: 'u128', + fee: 'u128', + curatorDeposit: 'u128', + bond: 'u128', + status: 'PezpalletBountiesBountyStatus' + }, + /** + * Lookup803: pallet_bounties::BountyStatus + **/ + PezpalletBountiesBountyStatus: { + _enum: { + Proposed: 'Null', + Approved: 'Null', + Funded: 'Null', + CuratorProposed: { + curator: 'AccountId32', + }, + Active: { + curator: 'AccountId32', + updateDue: 'u32', + }, + PendingPayout: { + curator: 'AccountId32', + beneficiary: 'AccountId32', + unlockAt: 'u32', + }, + ApprovedWithCurator: { + curator: 'AccountId32' + } + } + }, + /** + * Lookup805: pallet_bounties::pallet::Error + **/ + PezpalletBountiesError: { + _enum: ['InsufficientProposersBalance', 'InvalidIndex', 'ReasonTooBig', 'UnexpectedStatus', 'RequireCurator', 'InvalidValue', 'InvalidFee', 'PendingPayout', 'Premature', 'HasActiveChildBounty', 'TooManyQueued'] + }, + /** + * Lookup806: pallet_tips::OpenTip + **/ + PezpalletTipsOpenTip: { + reason: 'H256', + who: 'AccountId32', + finder: 'AccountId32', + deposit: 'u128', + closes: 'Option', + tips: 'Vec<(AccountId32,u128)>', + findersFee: 'bool' + }, + /** + * Lookup807: pallet_tips::pallet::Error + **/ + PezpalletTipsError: { + _enum: ['ReasonTooBig', 'AlreadyKnown', 'UnknownTip', 'MaxTipAmountExceeded', 'NotFinder', 'StillOpen', 'Premature'] + }, + /** + * Lookup808: pallet_assets::types::AssetDetails + **/ + PezpalletAssetsAssetDetails: { + owner: 'AccountId32', + issuer: 'AccountId32', + admin: 'AccountId32', + freezer: 'AccountId32', + supply: 'u128', + deposit: 'u128', + minBalance: 'u128', + isSufficient: 'bool', + accounts: 'u32', + sufficients: 'u32', + approvals: 'u32', + status: 'PezpalletAssetsAssetStatus' + }, + /** + * Lookup809: pallet_assets::types::AssetStatus + **/ + PezpalletAssetsAssetStatus: { + _enum: ['Live', 'Frozen', 'Destroying'] + }, + /** + * Lookup810: pallet_assets::types::AssetAccount + **/ + PezpalletAssetsAssetAccount: { + balance: 'u128', + status: 'PezpalletAssetsAccountStatus', + reason: 'PezpalletAssetsExistenceReason', + extra: 'Null' + }, + /** + * Lookup811: pallet_assets::types::AccountStatus + **/ + PezpalletAssetsAccountStatus: { + _enum: ['Liquid', 'Frozen', 'Blocked'] + }, + /** + * Lookup812: pallet_assets::types::ExistenceReason + **/ + PezpalletAssetsExistenceReason: { + _enum: { + Consumer: 'Null', + Sufficient: 'Null', + DepositHeld: 'u128', + DepositRefunded: 'Null', + DepositFrom: '(AccountId32,u128)' + } + }, + /** + * Lookup814: pallet_assets::types::Approval + **/ + PezpalletAssetsApproval: { + amount: 'u128', + deposit: 'u128' + }, + /** + * Lookup815: pallet_assets::types::AssetMetadata> + **/ + PezpalletAssetsAssetMetadata: { + deposit: 'u128', + name: 'Bytes', + symbol: 'Bytes', + decimals: 'u8', + isFrozen: 'bool' + }, + /** + * Lookup817: pallet_assets::pallet::Error + **/ + PezpalletAssetsError: { + _enum: ['BalanceLow', 'NoAccount', 'NoPermission', 'Unknown', 'Frozen', 'InUse', 'BadWitness', 'MinBalanceZero', 'UnavailableConsumer', 'BadMetadata', 'Unapproved', 'WouldDie', 'AlreadyExists', 'NoDeposit', 'WouldBurn', 'LiveAsset', 'AssetNotLive', 'IncorrectStatus', 'NotFrozen', 'CallbackFailed', 'BadAssetId', 'ContainsFreezes', 'ContainsHolds'] + }, + /** + * Lookup821: pallet_beefy::pallet::Error + **/ + PezpalletBeefyError: { + _enum: ['InvalidKeyOwnershipProof', 'InvalidDoubleVotingProof', 'InvalidForkVotingProof', 'InvalidFutureBlockVotingProof', 'InvalidEquivocationProofSession', 'DuplicateOffenceReport', 'InvalidConfiguration'] + }, + /** + * Lookup822: sp_consensus_beefy::mmr::BeefyAuthoritySet + **/ + PezspConsensusBeefyMmrBeefyAuthoritySet: { + id: 'u64', + len: 'u32', + keysetCommitment: 'H256' + }, + /** + * Lookup823: pallet_lottery::LotteryConfig + **/ + PezpalletLotteryLotteryConfig: { + price: 'u128', + start: 'u32', + length: 'u32', + delay: 'u32', + repeat: 'bool' + }, + /** + * Lookup827: pallet_lottery::pallet::Error + **/ + PezpalletLotteryError: { + _enum: ['NotConfigured', 'InProgress', 'AlreadyEnded', 'InvalidCall', 'AlreadyParticipating', 'TooManyCalls', 'EncodingFailed'] + }, + /** + * Lookup830: pallet_nis::pallet::Bid + **/ + PezpalletNisBid: { + amount: 'u128', + who: 'AccountId32' + }, + /** + * Lookup832: pallet_nis::pallet::SummaryRecord + **/ + PezpalletNisSummaryRecord: { + proportionOwed: 'Perquintill', + index: 'u32', + thawed: 'Perquintill', + lastPeriod: 'u32', + receiptsOnHold: 'u128' + }, + /** + * Lookup833: pallet_nis::pallet::ReceiptRecord + **/ + PezpalletNisReceiptRecord: { + proportion: 'Perquintill', + owner: 'Option<(AccountId32,u128)>', + expiry: 'u32' + }, + /** + * Lookup835: pallet_nis::pallet::Error + **/ + PezpalletNisError: { + _enum: ['DurationTooSmall', 'DurationTooBig', 'AmountTooSmall', 'BidTooLow', 'UnknownReceipt', 'NotOwner', 'NotExpired', 'UnknownBid', 'PortionTooBig', 'Unfunded', 'AlreadyFunded', 'Throttled', 'MakesDust', 'AlreadyCommunal', 'AlreadyPrivate'] + }, + /** + * Lookup836: pallet_uniques::types::CollectionDetails + **/ + PezpalletUniquesCollectionDetails: { + owner: 'AccountId32', + issuer: 'AccountId32', + admin: 'AccountId32', + freezer: 'AccountId32', + totalDeposit: 'u128', + freeHolding: 'bool', + items: 'u32', + itemMetadatas: 'u32', + attributes: 'u32', + isFrozen: 'bool' + }, + /** + * Lookup838: pallet_uniques::types::ItemDetails + **/ + PezpalletUniquesItemDetails: { + owner: 'AccountId32', + approved: 'Option', + isFrozen: 'bool', + deposit: 'u128' + }, + /** + * Lookup839: pallet_uniques::types::CollectionMetadata + **/ + PezpalletUniquesCollectionMetadata: { + deposit: 'u128', + data: 'Bytes', + isFrozen: 'bool' + }, + /** + * Lookup840: pallet_uniques::types::ItemMetadata + **/ + PezpalletUniquesItemMetadata: { + deposit: 'u128', + data: 'Bytes', + isFrozen: 'bool' + }, + /** + * Lookup844: pallet_uniques::pallet::Error + **/ + PezpalletUniquesError: { + _enum: ['NoPermission', 'UnknownCollection', 'AlreadyExists', 'WrongOwner', 'BadWitness', 'InUse', 'Frozen', 'WrongDelegate', 'NoDelegate', 'Unapproved', 'Unaccepted', 'Locked', 'MaxSupplyReached', 'MaxSupplyAlreadySet', 'MaxSupplyTooSmall', 'UnknownItem', 'NotForSale', 'BidTooLow'] + }, + /** + * Lookup845: pallet_nfts::types::CollectionDetails + **/ + PezpalletNftsCollectionDetails: { + owner: 'AccountId32', + ownerDeposit: 'u128', + items: 'u32', + itemMetadatas: 'u32', + itemConfigs: 'u32', + attributes: 'u32' + }, + /** + * Lookup847: pallet_nfts::types::CollectionRole + **/ + PezpalletNftsCollectionRole: { + _enum: ['__Unused0', 'Issuer', 'Freezer', '__Unused3', 'Admin'] + }, + /** + * Lookup848: pallet_nfts::types::ItemDetails, bounded_collections::bounded_btree_map::BoundedBTreeMap, S>> + **/ + PezpalletNftsItemDetails: { + owner: 'AccountId32', + approvals: 'BTreeMap>', + deposit: 'PezpalletNftsItemDeposit' + }, + /** + * Lookup849: pallet_nfts::types::ItemDeposit + **/ + PezpalletNftsItemDeposit: { + account: 'AccountId32', + amount: 'u128' + }, + /** + * Lookup854: pallet_nfts::types::CollectionMetadata + **/ + PezpalletNftsCollectionMetadata: { + deposit: 'u128', + data: 'Bytes' + }, + /** + * Lookup855: pallet_nfts::types::ItemMetadata, StringLimit> + **/ + PezpalletNftsItemMetadata: { + deposit: 'PezpalletNftsItemMetadataDeposit', + data: 'Bytes' + }, + /** + * Lookup856: pallet_nfts::types::ItemMetadataDeposit + **/ + PezpalletNftsItemMetadataDeposit: { + account: 'Option', + amount: 'u128' + }, + /** + * Lookup859: pallet_nfts::types::AttributeDeposit + **/ + PezpalletNftsAttributeDeposit: { + account: 'Option', + amount: 'u128' + }, + /** + * Lookup862: pallet_nfts::types::PendingSwap, Deadline> + **/ + PezpalletNftsPendingSwap: { + desiredCollection: 'u32', + desiredItem: 'Option', + price: 'Option', + deadline: 'u32' + }, + /** + * Lookup864: pallet_nfts::types::PalletFeature + **/ + PezpalletNftsPezpalletFeature: { + _enum: ['__Unused0', 'Trading', 'Attributes', '__Unused3', 'Approvals', '__Unused5', '__Unused6', '__Unused7', 'Swaps'] + }, + /** + * Lookup865: pallet_nfts::pallet::Error + **/ + PezpalletNftsError: { + _enum: ['NoPermission', 'UnknownCollection', 'AlreadyExists', 'ApprovalExpired', 'WrongOwner', 'BadWitness', 'CollectionIdInUse', 'ItemsNonTransferable', 'NotDelegate', 'WrongDelegate', 'Unapproved', 'Unaccepted', 'ItemLocked', 'LockedItemAttributes', 'LockedCollectionAttributes', 'LockedItemMetadata', 'LockedCollectionMetadata', 'MaxSupplyReached', 'MaxSupplyLocked', 'MaxSupplyTooSmall', 'UnknownItem', 'UnknownSwap', 'MetadataNotFound', 'AttributeNotFound', 'NotForSale', 'BidTooLow', 'ReachedApprovalLimit', 'DeadlineExpired', 'WrongDuration', 'MethodDisabled', 'WrongSetting', 'InconsistentItemConfig', 'NoConfig', 'RolesNotCleared', 'MintNotStarted', 'MintEnded', 'AlreadyClaimed', 'IncorrectData', 'WrongOrigin', 'WrongSignature', 'IncorrectMetadata', 'MaxAttributesLimitReached', 'WrongNamespace', 'CollectionNotEmpty', 'WitnessRequired'] + }, + /** + * Lookup866: pallet_nft_fractionalization::types::Details + **/ + PezpalletNftFractionalizationDetails: { + asset: 'u32', + fractions: 'u128', + deposit: 'u128', + assetCreator: 'AccountId32' + }, + /** + * Lookup867: pallet_nft_fractionalization::pallet::Error + **/ + PezpalletNftFractionalizationError: { + _enum: ['IncorrectAssetId', 'NoPermission', 'NftNotFound', 'NftNotFractionalized'] + }, + /** + * Lookup868: pallet_salary::StatusType + **/ + PezpalletSalaryStatusType: { + cycleIndex: 'u32', + cycleStart: 'u32', + budget: 'u128', + totalRegistrations: 'u128', + totalUnregisteredPaid: 'u128' + }, + /** + * Lookup869: pallet_salary::ClaimantStatus + **/ + PezpalletSalaryClaimantStatus: { + lastActive: 'u32', + status: 'PezpalletSalaryClaimState' + }, + /** + * Lookup870: pallet_salary::ClaimState + **/ + PezpalletSalaryClaimState: { + _enum: { + Nothing: 'Null', + Registered: 'u128', + Attempted: { + registered: 'Option', + id: 'Null', + amount: 'u128' + } + } + }, + /** + * Lookup871: pallet_salary::pallet::Error + **/ + PezpalletSalaryError: { + _enum: ['AlreadyStarted', 'NotMember', 'AlreadyInducted', 'NotInducted', 'NoClaim', 'ClaimZero', 'TooLate', 'TooEarly', 'NotYet', 'NotStarted', 'Bankrupt', 'PayError', 'Inconclusive', 'NotCurrent'] + }, + /** + * Lookup872: pallet_core_fellowship::MemberStatus + **/ + PezpalletCoreFellowshipMemberStatus: { + isActive: 'bool', + lastPromotion: 'u32', + lastProof: 'u32' + }, + /** + * Lookup874: pallet_core_fellowship::pallet::Error + **/ + PezpalletCoreFellowshipError: { + _enum: ['Unranked', 'Ranked', 'UnexpectedRank', 'InvalidRank', 'NoPermission', 'NothingDoing', 'AlreadyInducted', 'NotTracked', 'TooSoon'] + }, + /** + * Lookup876: pallet_transaction_storage::TransactionInfo + **/ + PezpalletTransactionStorageTransactionInfo: { + _alias: { + size_: 'size' + }, + chunkRoot: 'H256', + contentHash: 'H256', + size_: 'u32', + blockChunks: 'u32' + }, + /** + * Lookup878: pallet_transaction_storage::pallet::Error + **/ + PezpalletTransactionStorageError: { + _enum: ['NotConfigured', 'RenewedNotFound', 'EmptyTransaction', 'UnexpectedProof', 'InvalidProof', 'MissingProof', 'MissingStateData', 'DoubleCheck', 'ProofNotChecked', 'TransactionTooLarge', 'TooManyTransactions', 'BadContext'] + }, + /** + * Lookup879: pallet_bags_list::list::Node + **/ + PezpalletBagsListListNode: { + id: 'AccountId32', + prev: 'Option', + next: 'Option', + bagUpper: 'u64', + score: 'u64' + }, + /** + * Lookup880: pallet_bags_list::list::Bag + **/ + PezpalletBagsListListBag: { + head: 'Option', + tail: 'Option' + }, + /** + * Lookup882: pallet_bags_list::pallet::Error + **/ + PezpalletBagsListError: { + _enum: { + List: 'PezpalletBagsListListListError' + } + }, + /** + * Lookup883: pallet_bags_list::list::ListError + **/ + PezpalletBagsListListListError: { + _enum: ['Duplicate', 'NotHeavier', 'NotInSameBag', 'NodeNotFound'] + }, + /** + * Lookup884: pallet_child_bounties::ChildBounty + **/ + PezpalletChildBountiesChildBounty: { + parentBounty: 'u32', + value: 'u128', + fee: 'u128', + curatorDeposit: 'u128', + status: 'PezpalletChildBountiesChildBountyStatus' + }, + /** + * Lookup885: pallet_child_bounties::ChildBountyStatus + **/ + PezpalletChildBountiesChildBountyStatus: { + _enum: { + Added: 'Null', + CuratorProposed: { + curator: 'AccountId32', + }, + Active: { + curator: 'AccountId32', + }, + PendingPayout: { + curator: 'AccountId32', + beneficiary: 'AccountId32', + unlockAt: 'u32' + } + } + }, + /** + * Lookup886: pallet_child_bounties::pallet::Error + **/ + PezpalletChildBountiesError: { + _enum: ['ParentBountyNotActive', 'InsufficientBountyBalance', 'TooManyChildBounties'] + }, + /** + * Lookup887: pallet_referenda::types::ReferendumInfo, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumInfoConvictionVotingTally: { + _enum: { + Ongoing: 'PezpalletReferendaReferendumStatusConvictionVotingTally', + Approved: '(u32,Option,Option)', + Rejected: '(u32,Option,Option)', + Cancelled: '(u32,Option,Option)', + TimedOut: '(u32,Option,Option)', + Killed: 'u32' + } + }, + /** + * Lookup888: pallet_referenda::types::ReferendumStatus, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumStatusConvictionVotingTally: { + track: 'u16', + origin: 'KitchensinkRuntimeOriginCaller', + proposal: 'PezframeSupportPreimagesBounded', + enactment: 'PezframeSupportScheduleDispatchTime', + submitted: 'u32', + submissionDeposit: 'PezpalletReferendaDeposit', + decisionDeposit: 'Option', + deciding: 'Option', + tally: 'PezpalletConvictionVotingTally', + inQueue: 'bool', + alarm: 'Option<(u32,(u32,u32))>' + }, + /** + * Lookup889: pallet_referenda::types::Deposit + **/ + PezpalletReferendaDeposit: { + who: 'AccountId32', + amount: 'u128' + }, + /** + * Lookup892: pallet_referenda::types::DecidingStatus + **/ + PezpalletReferendaDecidingStatus: { + since: 'u32', + confirming: 'Option' + }, + /** + * Lookup898: pallet_referenda::types::TrackDetails + **/ + PezpalletReferendaTrackDetails: { + name: 'Text', + maxDeciding: 'u32', + decisionDeposit: 'u128', + preparePeriod: 'u32', + decisionPeriod: 'u32', + confirmPeriod: 'u32', + minEnactmentPeriod: 'u32', + minApproval: 'PezpalletReferendaCurve', + minSupport: 'PezpalletReferendaCurve' + }, + /** + * Lookup899: pallet_referenda::pallet::Error + **/ + PezpalletReferendaError: { + _enum: ['NotOngoing', 'HasDeposit', 'BadTrack', 'Full', 'QueueEmpty', 'BadReferendum', 'NothingToDo', 'NoTrack', 'Unfinished', 'NoPermission', 'NoDeposit', 'BadStatus', 'PreimageNotExist', 'PreimageStoredWithDifferentLength'] + }, + /** + * Lookup900: pallet_remark::pallet::Error + **/ + PezpalletRemarkError: { + _enum: ['Empty', 'BadContext'] + }, + /** + * Lookup902: pallet_conviction_voting::vote::Voting + **/ + PezpalletConvictionVotingVoteVoting: { + _enum: { + Casting: 'PezpalletConvictionVotingVoteCasting', + Delegating: 'PezpalletConvictionVotingVoteDelegating' + } + }, + /** + * Lookup903: pallet_conviction_voting::vote::Casting + **/ + PezpalletConvictionVotingVoteCasting: { + votes: 'Vec<(u32,PezpalletConvictionVotingVoteAccountVote)>', + delegations: 'PezpalletConvictionVotingDelegations', + prior: 'PezpalletConvictionVotingVotePriorLock' + }, + /** + * Lookup907: pallet_conviction_voting::types::Delegations + **/ + PezpalletConvictionVotingDelegations: { + votes: 'u128', + capital: 'u128' + }, + /** + * Lookup908: pallet_conviction_voting::vote::PriorLock + **/ + PezpalletConvictionVotingVotePriorLock: '(u32,u128)', + /** + * Lookup909: pallet_conviction_voting::vote::Delegating + **/ + PezpalletConvictionVotingVoteDelegating: { + balance: 'u128', + target: 'AccountId32', + conviction: 'PezpalletConvictionVotingConviction', + delegations: 'PezpalletConvictionVotingDelegations', + prior: 'PezpalletConvictionVotingVotePriorLock' + }, + /** + * Lookup913: pallet_conviction_voting::pallet::Error + **/ + PezpalletConvictionVotingError: { + _enum: ['NotOngoing', 'NotVoter', 'NoPermission', 'NoPermissionYet', 'AlreadyDelegating', 'AlreadyVoting', 'InsufficientFunds', 'NotDelegating', 'Nonsense', 'MaxVotesReached', 'ClassNeeded', 'BadClass'] + }, + /** + * Lookup914: pallet_whitelist::pallet::Error + **/ + PezpalletWhitelistError: { + _enum: ['UnavailablePreImage', 'UndecodableCall', 'InvalidCallWeightWitness', 'CallIsNotWhitelisted', 'CallAlreadyWhitelisted'] + }, + /** + * Lookup919: pallet_alliance::MemberRole + **/ + PezpalletAllianceMemberRole: { + _enum: ['Fellow', 'Ally', 'Retiring'] + }, + /** + * Lookup923: pallet_alliance::pallet::Error + **/ + PezpalletAllianceError: { + _enum: ['AllianceNotYetInitialized', 'AllianceAlreadyInitialized', 'AlreadyMember', 'NotMember', 'NotAlly', 'NoVotingRights', 'AlreadyElevated', 'AlreadyUnscrupulous', 'AccountNonGrata', 'NotListedAsUnscrupulous', 'TooManyUnscrupulousItems', 'TooLongWebsiteUrl', 'InsufficientFunds', 'WithoutRequiredIdentityFields', 'WithoutGoodIdentityJudgement', 'MissingProposalHash', 'MissingAnnouncement', 'TooManyMembers', 'TooManyAnnouncements', 'BadWitness', 'AlreadyRetiring', 'RetirementNoticeNotGiven', 'RetirementPeriodNotPassed', 'FellowsMissing'] + }, + /** + * Lookup924: pallet_nomination_pools::PoolMember + **/ + PezpalletNominationPoolsPoolMember: { + poolId: 'u32', + points: 'u128', + lastRecordedRewardCounter: 'u128', + unbondingEras: 'BTreeMap' + }, + /** + * Lookup927: pallet_nomination_pools::BondedPoolInner + **/ + PezpalletNominationPoolsBondedPoolInner: { + commission: 'PezpalletNominationPoolsCommission', + memberCounter: 'u32', + points: 'u128', + roles: 'PezpalletNominationPoolsPoolRoles', + state: 'PezpalletNominationPoolsPoolState' + }, + /** + * Lookup928: pallet_nomination_pools::Commission + **/ + PezpalletNominationPoolsCommission: { + current: 'Option<(Perbill,AccountId32)>', + max: 'Option', + changeRate: 'Option', + throttleFrom: 'Option', + claimPermission: 'Option' + }, + /** + * Lookup930: pallet_nomination_pools::PoolRoles + **/ + PezpalletNominationPoolsPoolRoles: { + depositor: 'AccountId32', + root: 'Option', + nominator: 'Option', + bouncer: 'Option' + }, + /** + * Lookup931: pallet_nomination_pools::RewardPool + **/ + PezpalletNominationPoolsRewardPool: { + lastRecordedRewardCounter: 'u128', + lastRecordedTotalPayouts: 'u128', + totalRewardsClaimed: 'u128', + totalCommissionPending: 'u128', + totalCommissionClaimed: 'u128' + }, + /** + * Lookup932: pallet_nomination_pools::SubPools + **/ + PezpalletNominationPoolsSubPools: { + noEra: 'PezpalletNominationPoolsUnbondPool', + withEra: 'BTreeMap' + }, + /** + * Lookup933: pallet_nomination_pools::UnbondPool + **/ + PezpalletNominationPoolsUnbondPool: { + points: 'u128', + balance: 'u128' + }, + /** + * Lookup938: pallet_nomination_pools::pallet::Error + **/ + PezpalletNominationPoolsError: { + _enum: { + PoolNotFound: 'Null', + PoolMemberNotFound: 'Null', + RewardPoolNotFound: 'Null', + SubPoolsNotFound: 'Null', + AccountBelongsToOtherPool: 'Null', + FullyUnbonding: 'Null', + MaxUnbondingLimit: 'Null', + CannotWithdrawAny: 'Null', + MinimumBondNotMet: 'Null', + OverflowRisk: 'Null', + NotDestroying: 'Null', + NotNominator: 'Null', + NotKickerOrDestroying: 'Null', + NotOpen: 'Null', + MaxPools: 'Null', + MaxPoolMembers: 'Null', + CanNotChangeState: 'Null', + DoesNotHavePermission: 'Null', + MetadataExceedsMaxLen: 'Null', + Defensive: 'PezpalletNominationPoolsDefensiveError', + PartialUnbondNotAllowedPermissionlessly: 'Null', + MaxCommissionRestricted: 'Null', + CommissionExceedsMaximum: 'Null', + CommissionExceedsGlobalMaximum: 'Null', + CommissionChangeThrottled: 'Null', + CommissionChangeRateNotAllowed: 'Null', + NoPendingCommission: 'Null', + NoCommissionCurrentSet: 'Null', + PoolIdInUse: 'Null', + InvalidPoolId: 'Null', + BondExtraRestricted: 'Null', + NothingToAdjust: 'Null', + NothingToSlash: 'Null', + SlashTooLow: 'Null', + AlreadyMigrated: 'Null', + NotMigrated: 'Null', + NotSupported: 'Null', + Restricted: 'Null' + } + }, + /** + * Lookup939: pallet_nomination_pools::pallet::DefensiveError + **/ + PezpalletNominationPoolsDefensiveError: { + _enum: ['NotEnoughSpaceInUnbondPool', 'PoolNotFound', 'RewardPoolNotFound', 'SubPoolsNotFound', 'BondedStashKilledPrematurely', 'DelegationUnsupported', 'SlashNotApplied'] + }, + /** + * Lookup940: pallet_referenda::types::ReferendumInfo, Balance, pallet_ranked_collective::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumInfoRankedCollectiveTally: { + _enum: { + Ongoing: 'PezpalletReferendaReferendumStatusRankedCollectiveTally', + Approved: '(u32,Option,Option)', + Rejected: '(u32,Option,Option)', + Cancelled: '(u32,Option,Option)', + TimedOut: '(u32,Option,Option)', + Killed: 'u32' + } + }, + /** + * Lookup941: pallet_referenda::types::ReferendumStatus, Balance, pallet_ranked_collective::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumStatusRankedCollectiveTally: { + track: 'u16', + origin: 'KitchensinkRuntimeOriginCaller', + proposal: 'PezframeSupportPreimagesBounded', + enactment: 'PezframeSupportScheduleDispatchTime', + submitted: 'u32', + submissionDeposit: 'PezpalletReferendaDeposit', + decisionDeposit: 'Option', + deciding: 'Option', + tally: 'PezpalletRankedCollectiveTally', + inQueue: 'bool', + alarm: 'Option<(u32,(u32,u32))>' + }, + /** + * Lookup944: pallet_ranked_collective::MemberRecord + **/ + PezpalletRankedCollectiveMemberRecord: { + rank: 'u16' + }, + /** + * Lookup948: pallet_ranked_collective::pallet::Error + **/ + PezpalletRankedCollectiveError: { + _enum: ['AlreadyMember', 'NotMember', 'NotPolling', 'Ongoing', 'NoneRemaining', 'Corruption', 'RankTooLow', 'InvalidWitness', 'NoPermission', 'SameMember', 'TooManyMembers'] + }, + /** + * Lookup949: pallet_asset_conversion::types::PoolInfo + **/ + PezpalletAssetConversionPoolInfo: { + lpToken: 'u32' + }, + /** + * Lookup950: pallet_asset_conversion::pallet::Error + **/ + PezpalletAssetConversionError: { + _enum: ['InvalidAssetPair', 'PoolExists', 'WrongDesiredAmount', 'AmountOneLessThanMinimal', 'AmountTwoLessThanMinimal', 'ReserveLeftLessThanMinimal', 'AmountOutTooHigh', 'PoolNotFound', 'Overflow', 'AssetOneDepositDidNotMeetMinimum', 'AssetTwoDepositDidNotMeetMinimum', 'AssetOneWithdrawalDidNotMeetMinimum', 'AssetTwoWithdrawalDidNotMeetMinimum', 'OptimalAmountLessThanDesired', 'InsufficientLiquidityMinted', 'ZeroLiquidity', 'ZeroAmount', 'ProvidedMinimumNotSufficientForSwap', 'ProvidedMaximumNotSufficientForSwap', 'InvalidPath', 'NonUniquePath', 'IncorrectPoolAssetId', 'BelowMinimum'] + }, + /** + * Lookup951: pallet_fast_unstake::types::UnstakeRequest + **/ + PezpalletFastUnstakeUnstakeRequest: { + stashes: 'Vec<(AccountId32,u128)>', + checked: 'Vec' + }, + /** + * Lookup954: pallet_fast_unstake::pallet::Error + **/ + PezpalletFastUnstakeError: { + _enum: ['NotController', 'AlreadyQueued', 'NotFullyBonded', 'NotQueued', 'AlreadyHead', 'CallNotAllowed'] + }, + /** + * Lookup955: pallet_message_queue::BookState + **/ + PezpalletMessageQueueBookState: { + _alias: { + size_: 'size' + }, + begin: 'u32', + end: 'u32', + count: 'u32', + readyNeighbours: 'Option', + messageCount: 'u64', + size_: 'u64' + }, + /** + * Lookup957: pallet_message_queue::Neighbours + **/ + PezpalletMessageQueueNeighbours: { + prev: 'u32', + next: 'u32' + }, + /** + * Lookup958: pallet_message_queue::Page + **/ + PezpalletMessageQueuePage: { + remaining: 'u32', + remainingSize: 'u32', + firstIndex: 'u32', + first: 'u32', + last: 'u32', + heap: 'Bytes' + }, + /** + * Lookup960: pallet_message_queue::pallet::Error + **/ + PezpalletMessageQueueError: { + _enum: ['NotReapable', 'NoPage', 'NoMessage', 'AlreadyProcessed', 'Queued', 'InsufficientWeight', 'TemporarilyUnprocessable', 'QueuePaused', 'RecursiveDisallowed'] + }, + /** + * Lookup961: pallet_tx_pause::pallet::Error + **/ + PezpalletTxPauseError: { + _enum: ['IsPaused', 'IsUnpaused', 'Unpausable', 'NotFound'] + }, + /** + * Lookup962: pallet_safe_mode::pallet::Error + **/ + PezpalletSafeModeError: { + _enum: ['Entered', 'Exited', 'NotConfigured', 'NoDeposit', 'AlreadyDeposited', 'CannotReleaseYet', 'CurrencyError'] + }, + /** + * Lookup963: pallet_migrations::pallet::Error + **/ + PezpalletMigrationsError: { + _enum: ['Ongoing'] + }, + /** + * Lookup967: pallet_broker::types::LeaseRecordItem + **/ + PezpalletBrokerLeaseRecordItem: { + until: 'u32', + task: 'u32' + }, + /** + * Lookup969: pallet_broker::types::StatusRecord + **/ + PezpalletBrokerStatusRecord: { + coreCount: 'u16', + privatePoolSize: 'u32', + systemPoolSize: 'u32', + lastCommittedTimeslice: 'u32', + lastTimeslice: 'u32' + }, + /** + * Lookup970: pallet_broker::types::SaleInfoRecord + **/ + PezpalletBrokerSaleInfoRecord: { + saleStart: 'u32', + leadinLength: 'u32', + endPrice: 'u128', + regionBegin: 'u32', + regionEnd: 'u32', + idealCoresSold: 'u16', + coresOffered: 'u16', + firstCore: 'u16', + selloutPrice: 'Option', + coresSold: 'u16' + }, + /** + * Lookup971: pallet_broker::types::PotentialRenewalId + **/ + PezpalletBrokerPotentialRenewalId: { + core: 'u16', + when: 'u32' + }, + /** + * Lookup972: pallet_broker::types::PotentialRenewalRecord + **/ + PezpalletBrokerPotentialRenewalRecord: { + price: 'u128', + completion: 'PezpalletBrokerCompletionStatus' + }, + /** + * Lookup973: pallet_broker::types::CompletionStatus + **/ + PezpalletBrokerCompletionStatus: { + _enum: { + Partial: 'PezpalletBrokerCoreMask', + Complete: 'Vec' + } + }, + /** + * Lookup974: pallet_broker::types::RegionRecord + **/ + PezpalletBrokerRegionRecord: { + end: 'u32', + owner: 'Option', + paid: 'Option' + }, + /** + * Lookup976: pallet_broker::types::ContributionRecord + **/ + PezpalletBrokerContributionRecord: { + length: 'u32', + payee: 'AccountId32' + }, + /** + * Lookup977: pallet_broker::types::PoolIoRecord + **/ + PezpalletBrokerPoolIoRecord: { + private: 'i32', + system: 'i32' + }, + /** + * Lookup979: pallet_broker::types::InstaPoolHistoryRecord + **/ + PezpalletBrokerInstaPoolHistoryRecord: { + privateContributions: 'u32', + systemContributions: 'u32', + maybePayout: 'Option' + }, + /** + * Lookup981: pallet_broker::types::AutoRenewalRecord + **/ + PezpalletBrokerAutoRenewalRecord: { + core: 'u16', + task: 'u32', + nextRenewal: 'u32' + }, + /** + * Lookup983: pallet_broker::pallet::Error + **/ + PezpalletBrokerError: { + _enum: ['UnknownRegion', 'NotOwner', 'PivotTooLate', 'PivotTooEarly', 'ExteriorPivot', 'VoidPivot', 'CompletePivot', 'CorruptWorkplan', 'NoSales', 'Overpriced', 'Unavailable', 'SoldOut', 'WrongTime', 'NotAllowed', 'Uninitialized', 'TooEarly', 'NothingToDo', 'TooManyReservations', 'TooManyLeases', 'LeaseNotFound', 'UnknownRevenue', 'UnknownContribution', 'IncompleteAssignment', 'StillValid', 'NoHistory', 'UnknownReservation', 'UnknownRenewal', 'AlreadyExpired', 'InvalidConfig', 'NoClaimTimeslices', 'NoPermission', 'TooManyAutoRenewals', 'NonTaskAutoRenewal', 'SovereignAccountNotFound', 'AutoRenewalNotEnabled', 'AssignmentNotFound', 'CreditPurchaseTooSmall'] + }, + /** + * Lookup984: pallet_example_tasks::pallet::Error + **/ + PezpalletExampleTasksError: { + _enum: ['NotFound'] + }, + /** + * Lookup985: pallet_asset_conversion_ops::pallet::Error + **/ + PezpalletAssetConversionOpsError: { + _enum: ['InvalidAssetPair', 'PoolNotFound', 'ZeroBalance', 'PartialTransfer'] + }, + /** + * Lookup987: pallet_revive::wasm::CodeInfo + **/ + PezpalletReviveWasmCodeInfo: { + owner: 'AccountId32', + deposit: 'Compact', + refcount: 'Compact', + codeLen: 'u32', + behaviourVersion: 'u32' + }, + /** + * Lookup988: pallet_revive::storage::ContractInfo + **/ + PezpalletReviveStorageContractInfo: { + trieId: 'Bytes', + codeHash: 'H256', + storageBytes: 'u32', + storageItems: 'u32', + storageByteDeposit: 'u128', + storageItemDeposit: 'u128', + storageBaseDeposit: 'u128', + immutableDataLen: 'u32' + }, + /** + * Lookup990: pallet_revive::storage::DeletionQueueManager + **/ + PezpalletReviveStorageDeletionQueueManager: { + insertCounter: 'u32', + deleteCounter: 'u32' + }, + /** + * Lookup991: pallet_revive::pallet::Error + **/ + PezpalletReviveError: { + _enum: ['InvalidSchedule', 'InvalidCallFlags', 'OutOfGas', 'TransferFailed', 'MaxCallDepthReached', 'ContractNotFound', 'CodeNotFound', 'CodeInfoNotFound', 'OutOfBounds', 'DecodingFailed', 'ContractTrapped', 'ValueTooLarge', 'TerminatedWhileReentrant', 'InputForwarded', 'TooManyTopics', 'NoChainExtension', 'XCMDecodeFailed', 'DuplicateContract', 'TerminatedInConstructor', 'ReentranceDenied', 'ReenteredPallet', 'StateChangeDenied', 'StorageDepositNotEnoughFunds', 'StorageDepositLimitExhausted', 'CodeInUse', 'ContractReverted', 'CodeRejected', 'BlobTooLarge', 'StaticMemoryTooLarge', 'BasicBlockTooLarge', 'InvalidInstruction', 'MaxDelegateDependenciesReached', 'DelegateDependencyNotFound', 'DelegateDependencyAlreadyExists', 'CannotAddSelfAsDelegateDependency', 'OutOfTransientStorage', 'InvalidSyscall', 'InvalidStorageFlags', 'ExecutionFailed', 'BalanceConversionFailed', 'DecimalPrecisionLoss', 'InvalidImmutableAccess', 'AccountUnmapped', 'AccountAlreadyMapped', 'InvalidGenericTransaction', 'RefcountOverOrUnderflow', 'UnsupportedPrecompileAddress', 'PrecompileFailure'] + }, + /** + * Lookup992: pallet_delegated_staking::types::Delegation + **/ + PezpalletDelegatedStakingDelegation: { + agent: 'AccountId32', + amount: 'u128' + }, + /** + * Lookup993: pallet_delegated_staking::types::AgentLedger + **/ + PezpalletDelegatedStakingAgentLedger: { + payee: 'AccountId32', + totalDelegated: 'Compact', + unclaimedWithdrawals: 'Compact', + pendingSlash: 'Compact' + }, + /** + * Lookup994: pallet_delegated_staking::pallet::Error + **/ + PezpalletDelegatedStakingError: { + _enum: ['NotAllowed', 'AlreadyStaking', 'InvalidRewardDestination', 'InvalidDelegation', 'NotEnoughFunds', 'NotAgent', 'NotDelegator', 'BadState', 'UnappliedSlash', 'NothingToSlash', 'WithdrawFailed', 'NotSupported'] + }, + /** + * Lookup995: pallet_asset_rewards::PoolStakerInfo + **/ + PezpalletAssetRewardsPoolStakerInfo: { + amount: 'u128', + rewards: 'u128', + rewardPerTokenPaid: 'u128' + }, + /** + * Lookup996: pallet_asset_rewards::PoolInfo, Balance, BlockNumber> + **/ + PezpalletAssetRewardsPoolInfo: { + stakedAssetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rewardAssetId: 'PezframeSupportTokensFungibleUnionOfNativeOrWithId', + rewardRatePerBlock: 'u128', + expiryBlock: 'u32', + admin: 'AccountId32', + totalTokensStaked: 'u128', + rewardPerTokenStored: 'u128', + lastUpdateBlock: 'u32', + account: 'AccountId32' + }, + /** + * Lookup999: pallet_asset_rewards::pallet::Error + **/ + PezpalletAssetRewardsError: { + _enum: ['NotEnoughTokens', 'NonExistentPool', 'NonExistentStaker', 'NonExistentAsset', 'BlockNumberConversionError', 'ExpiryBlockMustBeInTheFuture', 'InsufficientFunds', 'ExpiryCut', 'RewardRateCut', 'NonEmptyPool'] + }, + /** + * Lookup1000: pallet_assets_freezer::pallet::Error + **/ + PezpalletAssetsFreezerError: { + _enum: ['TooManyFreezes'] + }, + /** + * Lookup1001: pallet_meta_tx::pallet::Error + **/ + PezpalletMetaTxError: { + _enum: ['BadProof', 'Future', 'Stale', 'AncientBirthBlock', 'UnknownOrigin', 'Invalid'] + }, + /** + * Lookup1003: frame_system::extensions::check_weight::CheckWeight + **/ + PezframeSystemExtensionsCheckWeight: 'Null', + /** + * Lookup1004: pallet_asset_conversion_tx_payment::ChargeAssetTxPayment + **/ + PezpalletAssetConversionTxPaymentChargeAssetTxPayment: { + tip: 'Compact', + assetId: 'Option' + }, + /** + * Lookup1006: frame_system::extensions::weight_reclaim::WeightReclaim + **/ + PezframeSystemExtensionsWeightReclaim: 'Null', + /** + * Lookup1007: sp_runtime::generic::block::Block, sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic, kitchensink_runtime::RuntimeCall, sp_runtime::MultiSignature, Extra>> + **/ + PezspRuntimeBlock: { + header: 'PezspRuntimeHeader', + extrinsics: 'Vec' + }, + /** + * Lookup1010: sp_runtime::ExtrinsicInclusionMode + **/ + PezspRuntimeExtrinsicInclusionMode: { + _enum: ['AllExtrinsics', 'OnlyInherents'] + }, + /** + * Lookup1013: frame_support::view_functions::ViewFunctionId + **/ + PezframeSupportViewFunctionsViewFunctionId: { + prefix: '[u8;16]', + suffix: '[u8;16]' + }, + /** + * Lookup1015: frame_support::view_functions::ViewFunctionDispatchError + **/ + PezframeSupportViewFunctionsViewFunctionDispatchError: { + _enum: { + NotImplemented: 'Null', + NotFound: 'PezframeSupportViewFunctionsViewFunctionId', + Codec: 'Null' + } + }, + /** + * Lookup1017: sp_runtime::transaction_validity::TransactionValidityError + **/ + PezspRuntimeTransactionValidityTransactionValidityError: { + _enum: { + Invalid: 'PezspRuntimeTransactionValidityInvalidTransaction', + Unknown: 'PezspRuntimeTransactionValidityUnknownTransaction' + } + }, + /** + * Lookup1018: sp_runtime::transaction_validity::InvalidTransaction + **/ + PezspRuntimeTransactionValidityInvalidTransaction: { + _enum: { + Call: 'Null', + Payment: 'Null', + Future: 'Null', + Stale: 'Null', + BadProof: 'Null', + AncientBirthBlock: 'Null', + ExhaustsResources: 'Null', + Custom: 'u8', + BadMandatory: 'Null', + MandatoryValidation: 'Null', + BadSigner: 'Null', + IndeterminateImplicit: 'Null', + UnknownOrigin: 'Null' + } + }, + /** + * Lookup1019: sp_runtime::transaction_validity::UnknownTransaction + **/ + PezspRuntimeTransactionValidityUnknownTransaction: { + _enum: { + CannotLookup: 'Null', + NoUnsignedValidator: 'Null', + Custom: 'u8' + } + }, + /** + * Lookup1020: sp_inherents::InherentData + **/ + PezspInherentsInherentData: { + data: 'BTreeMap<[u8;8], Bytes>' + }, + /** + * Lookup1024: sp_inherents::CheckInherentsResult + **/ + PezspInherentsCheckInherentsResult: { + okay: 'bool', + fatalError: 'bool', + errors: 'PezspInherentsInherentData' + }, + /** + * Lookup1025: sp_runtime::transaction_validity::TransactionSource + **/ + PezspRuntimeTransactionValidityTransactionSource: { + _enum: ['InBlock', 'Local', 'External'] + }, + /** + * Lookup1027: sp_runtime::transaction_validity::ValidTransaction + **/ + PezspRuntimeTransactionValidityValidTransaction: { + priority: 'u64', + requires: 'Vec', + provides: 'Vec', + longevity: 'u64', + propagate: 'bool' + }, + /** + * Lookup1028: sp_statement_store::runtime_api::StatementSource + **/ + PezspStatementStoreRuntimeApiStatementSource: { + _enum: ['Chain', 'Network', 'Local'] + }, + /** + * Lookup1030: sp_statement_store::runtime_api::ValidStatement + **/ + PezspStatementStoreRuntimeApiValidStatement: { + maxCount: 'u32', + maxSize: 'u32' + }, + /** + * Lookup1031: sp_statement_store::runtime_api::InvalidStatement + **/ + PezspStatementStoreRuntimeApiInvalidStatement: { + _enum: ['BadProof', 'NoProof', 'InternalError'] + }, + /** + * Lookup1035: sp_consensus_babe::BabeConfiguration + **/ + PezspConsensusBabeBabeConfiguration: { + slotDuration: 'u64', + epochLength: 'u64', + c: '(u64,u64)', + authorities: 'Vec<(PezspConsensusBabeAppPublic,u64)>', + randomness: '[u8;32]', + allowedSlots: 'PezspConsensusBabeAllowedSlots' + }, + /** + * Lookup1036: sp_consensus_babe::Epoch + **/ + PezspConsensusBabeEpoch: { + epochIndex: 'u64', + startSlot: 'u64', + duration: 'u64', + authorities: 'Vec<(PezspConsensusBabeAppPublic,u64)>', + randomness: '[u8;32]', + config: 'PezspConsensusBabeBabeEpochConfiguration' + }, + /** + * Lookup1041: pallet_contracts::primitives::ExecReturnValue + **/ + PezpalletContractsPrimitivesExecReturnValue: { + flags: 'PezpalletContractsUapiFlagsReturnFlags', + data: 'Bytes' + }, + /** + * Lookup1042: pallet_contracts_uapi::flags::ReturnFlags + **/ + PezpalletContractsUapiFlagsReturnFlags: { + bits: 'u32' + }, + /** + * Lookup1043: pallet_contracts::primitives::StorageDeposit + **/ + PezpalletContractsPrimitivesStorageDeposit: { + _enum: { + Refund: 'u128', + Charge: 'u128' + } + }, + /** + * Lookup1046: pallet_contracts::primitives::Code + **/ + PezpalletContractsPrimitivesCode: { + _enum: { + Upload: 'Bytes', + Existing: 'H256' + } + }, + /** + * Lookup1047: pallet_contracts::primitives::ContractResult, sp_runtime::DispatchError>, Balance, frame_system::EventRecord> + **/ + PezpalletContractsPrimitivesContractResult: { + gasConsumed: 'PezspWeightsWeightV2Weight', + gasRequired: 'PezspWeightsWeightV2Weight', + storageDeposit: 'PezpalletContractsPrimitivesStorageDeposit', + debugMessage: 'Bytes', + result: 'Result', + events: 'Option>' + }, + /** + * Lookup1049: pallet_contracts::primitives::InstantiateReturnValue + **/ + PezpalletContractsPrimitivesInstantiateReturnValue: { + result: 'PezpalletContractsPrimitivesExecReturnValue', + accountId: 'AccountId32' + }, + /** + * Lookup1051: pallet_contracts::primitives::CodeUploadReturnValue + **/ + PezpalletContractsPrimitivesCodeUploadReturnValue: { + codeHash: 'H256', + deposit: 'u128' + }, + /** + * Lookup1053: pallet_contracts::primitives::ContractAccessError + **/ + PezpalletContractsPrimitivesContractAccessError: { + _enum: ['DoesntExist', 'KeyDecodingFailed', 'MigrationInProgress'] + }, + /** + * Lookup1056: pallet_revive::primitives::ContractResult + **/ + PezpalletRevivePrimitivesContractResultExecReturnValue: { + gasConsumed: 'PezspWeightsWeightV2Weight', + gasRequired: 'PezspWeightsWeightV2Weight', + storageDeposit: 'PezpalletRevivePrimitivesStorageDeposit', + result: 'Result' + }, + /** + * Lookup1057: pallet_revive::primitives::ExecReturnValue + **/ + PezpalletRevivePrimitivesExecReturnValue: { + flags: 'PezpalletReviveUapiFlagsReturnFlags', + data: 'Bytes' + }, + /** + * Lookup1058: pallet_revive_uapi::flags::ReturnFlags + **/ + PezpalletReviveUapiFlagsReturnFlags: { + bits: 'u32' + }, + /** + * Lookup1059: pallet_revive::primitives::StorageDeposit + **/ + PezpalletRevivePrimitivesStorageDeposit: { + _enum: { + Refund: 'u128', + Charge: 'u128' + } + }, + /** + * Lookup1061: pallet_revive::primitives::Code + **/ + PezpalletRevivePrimitivesCode: { + _enum: { + Upload: 'Bytes', + Existing: 'H256' + } + }, + /** + * Lookup1062: pallet_revive::primitives::ContractResult + **/ + PezpalletRevivePrimitivesContractResultInstantiateReturnValue: { + gasConsumed: 'PezspWeightsWeightV2Weight', + gasRequired: 'PezspWeightsWeightV2Weight', + storageDeposit: 'PezpalletRevivePrimitivesStorageDeposit', + result: 'Result' + }, + /** + * Lookup1063: pallet_revive::primitives::InstantiateReturnValue + **/ + PezpalletRevivePrimitivesInstantiateReturnValue: { + result: 'PezpalletRevivePrimitivesExecReturnValue', + addr: 'H160' + }, + /** + * Lookup1065: pallet_revive::evm::api::rpc_types_gen::GenericTransaction + **/ + PezpalletReviveEvmApiRpcTypesGenGenericTransaction: { + _alias: { + r_type: 'r#type' + }, + accessList: 'Option>', + blobVersionedHashes: 'Vec', + blobs: 'Vec', + chainId: 'Option', + from: 'Option', + gas: 'Option', + gasPrice: 'Option', + input: 'PezpalletReviveEvmApiRpcTypesGenInputOrData', + maxFeePerBlobGas: 'Option', + maxFeePerGas: 'Option', + maxPriorityFeePerGas: 'Option', + nonce: 'Option', + to: 'Option', + r_type: 'Option', + value: 'Option' + }, + /** + * Lookup1068: pallet_revive::evm::api::rpc_types_gen::AccessListEntry + **/ + PezpalletReviveEvmApiRpcTypesGenAccessListEntry: { + address: 'H160', + storageKeys: 'Vec' + }, + /** + * Lookup1073: pallet_revive::evm::api::rpc_types_gen::InputOrData + **/ + PezpalletReviveEvmApiRpcTypesGenInputOrData: { + input: 'Option', + data: 'Option' + }, + /** + * Lookup1078: pallet_revive::primitives::EthTransactInfo + **/ + PezpalletRevivePrimitivesEthTransactInfo: { + gasRequired: 'PezspWeightsWeightV2Weight', + storageDeposit: 'u128', + ethGas: 'U256', + data: 'Bytes' + }, + /** + * Lookup1079: pallet_revive::primitives::EthTransactError + **/ + PezpalletRevivePrimitivesEthTransactError: { + _enum: { + Data: 'Bytes', + Message: 'Text' + } + }, + /** + * Lookup1081: pallet_revive::primitives::CodeUploadReturnValue + **/ + PezpalletRevivePrimitivesCodeUploadReturnValue: { + codeHash: 'H256', + deposit: 'u128' + }, + /** + * Lookup1083: pallet_revive::primitives::ContractAccessError + **/ + PezpalletRevivePrimitivesContractAccessError: { + _enum: ['DoesntExist', 'KeyDecodingFailed'] + }, + /** + * Lookup1084: pallet_revive::evm::api::debug_rpc_types::TracerType + **/ + PezpalletReviveEvmApiDebugRpcTypesTracerType: { + _enum: { + CallTracer: 'Option' + } + }, + /** + * Lookup1086: pallet_revive::evm::api::debug_rpc_types::CallTracerConfig + **/ + PezpalletReviveEvmApiDebugRpcTypesCallTracerConfig: { + withLogs: 'bool', + onlyTopCall: 'bool' + }, + /** + * Lookup1089: pallet_revive::evm::api::debug_rpc_types::Trace + **/ + PezpalletReviveEvmApiDebugRpcTypesTrace: { + _enum: { + Call: 'PezpalletReviveEvmApiDebugRpcTypesCallTrace' + } + }, + /** + * Lookup1090: pallet_revive::evm::api::debug_rpc_types::CallTrace + **/ + PezpalletReviveEvmApiDebugRpcTypesCallTrace: { + from: 'H160', + gas: 'U256', + gasUsed: 'U256', + to: 'H160', + input: 'Bytes', + output: 'Bytes', + error: 'Option', + revertReason: 'Option', + calls: 'Vec', + logs: 'Vec', + value: 'Option', + callType: 'PezpalletReviveEvmApiDebugRpcTypesCallType' + }, + /** + * Lookup1094: pallet_revive::evm::api::debug_rpc_types::CallLog + **/ + PezpalletReviveEvmApiDebugRpcTypesCallLog: { + address: 'H160', + topics: 'Vec', + data: 'Bytes', + position: 'u32' + }, + /** + * Lookup1095: pallet_revive::evm::api::debug_rpc_types::CallType + **/ + PezpalletReviveEvmApiDebugRpcTypesCallType: { + _enum: ['Call', 'StaticCall', 'DelegateCall'] + }, + /** + * Lookup1098: pallet_transaction_payment::types::RuntimeDispatchInfo + **/ + PezpalletTransactionPaymentRuntimeDispatchInfo: { + weight: 'PezspWeightsWeightV2Weight', + class: 'PezframeSupportDispatchDispatchClass', + partialFee: 'u128' + }, + /** + * Lookup1099: pallet_transaction_payment::types::FeeDetails + **/ + PezpalletTransactionPaymentFeeDetails: { + inclusionFee: 'Option', + tip: 'u128' + }, + /** + * Lookup1101: pallet_transaction_payment::types::InclusionFee + **/ + PezpalletTransactionPaymentInclusionFee: { + baseFee: 'u128', + lenFee: 'u128', + adjustedWeightFee: 'u128' + }, + /** + * Lookup1105: sp_consensus_beefy::ValidatorSet + **/ + PezspConsensusBeefyValidatorSet: { + validators: 'Vec', + id: 'u64' + }, + /** + * Lookup1106: sp_consensus_beefy::ForkVotingProof, sp_consensus_beefy::ecdsa_crypto::Public, sp_runtime::OpaqueValue> + **/ + PezspConsensusBeefyForkVotingProofOpaqueValue: { + vote: 'PezspConsensusBeefyVoteMessage', + ancestryProof: 'Bytes', + header: 'PezspRuntimeHeader' + }, + /** + * Lookup1108: sp_mmr_primitives::Error + **/ + PezspMmrPrimitivesError: { + _enum: ['InvalidNumericOp', 'Push', 'GetRoot', 'Commit', 'GenerateProof', 'Verify', 'LeafNotFound', 'PalletNotIncluded', 'InvalidLeafIndex', 'InvalidBestKnownBlock'] + }, + /** + * Lookup1114: sp_mmr_primitives::LeafProof + **/ + PezspMmrPrimitivesLeafProof: { + leafIndices: 'Vec', + leafCount: 'u64', + items: 'Vec' + }, + /** + * Lookup1116: sp_mixnet::types::SessionStatus + **/ + PezspMixnetSessionStatus: { + currentIndex: 'u32', + phase: 'PezspMixnetSessionPhase' + }, + /** + * Lookup1117: sp_mixnet::types::SessionPhase + **/ + PezspMixnetSessionPhase: { + _enum: ['CoverToCurrent', 'RequestsToCurrent', 'CoverToPrev', 'DisconnectFromPrev'] + }, + /** + * Lookup1120: sp_mixnet::types::Mixnode + **/ + PezspMixnetMixnode: { + kxPublic: '[u8;32]', + peerId: '[u8;32]', + externalAddresses: 'Vec' + }, + /** + * Lookup1121: sp_mixnet::types::MixnodesErr + **/ + PezspMixnetMixnodesErr: { + _enum: { + InsufficientRegistrations: { + num: 'u32', + min: 'u32' + } + } + }, + /** + * Lookup1127: kitchensink_runtime::RuntimeError + **/ + KitchensinkRuntimeRuntimeError: { + _enum: { + System: 'PezframeSystemError', + Utility: 'PezpalletUtilityError', + Babe: 'PezpalletBabeError', + __Unused3: 'Null', + __Unused4: 'Null', + Indices: 'PezpalletIndicesError', + Balances: 'PezpalletBalancesError', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + ElectionProviderMultiPhase: 'PezpalletElectionProviderMultiPhaseError', + Staking: 'PezpalletStakingPezpalletError', + Session: 'PezpalletSessionError', + Democracy: 'PezpalletDemocracyError', + Council: 'PezpalletCollectiveError', + TechnicalCommittee: 'PezpalletCollectiveError', + Elections: 'PezpalletElectionsPhragmenError', + TechnicalMembership: 'PezpalletMembershipError', + Grandpa: 'PezpalletGrandpaError', + Treasury: 'PezpalletTreasuryError', + AssetRate: 'PezpalletAssetRateError', + Contracts: 'PezpalletContractsError', + Sudo: 'PezpalletSudoError', + ImOnline: 'PezpalletImOnlineError', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + Identity: 'PezpalletIdentityError', + Society: 'PezpalletSocietyError', + Recovery: 'PezpalletRecoveryError', + Vesting: 'PezpalletVestingError', + Scheduler: 'PezpalletSchedulerError', + Glutton: 'PezpalletGluttonError', + Preimage: 'PezpalletPreimageError', + Proxy: 'PezpalletProxyError', + Multisig: 'PezpalletMultisigError', + Bounties: 'PezpalletBountiesError', + Tips: 'PezpalletTipsError', + Assets: 'PezpalletAssetsError', + PoolAssets: 'PezpalletAssetsError', + Beefy: 'PezpalletBeefyError', + __Unused42: 'Null', + __Unused43: 'Null', + Lottery: 'PezpalletLotteryError', + Nis: 'PezpalletNisError', + Uniques: 'PezpalletUniquesError', + Nfts: 'PezpalletNftsError', + NftFractionalization: 'PezpalletNftFractionalizationError', + Salary: 'PezpalletSalaryError', + CoreFellowship: 'PezpalletCoreFellowshipError', + TransactionStorage: 'PezpalletTransactionStorageError', + VoterList: 'PezpalletBagsListError', + StateTrieMigration: 'PezpalletStateTrieMigrationError', + ChildBounties: 'PezpalletChildBountiesError', + Referenda: 'PezpalletReferendaError', + Remark: 'PezpalletRemarkError', + __Unused57: 'Null', + ConvictionVoting: 'PezpalletConvictionVotingError', + Whitelist: 'PezpalletWhitelistError', + AllianceMotion: 'PezpalletCollectiveError', + Alliance: 'PezpalletAllianceError', + NominationPools: 'PezpalletNominationPoolsError', + RankedPolls: 'PezpalletReferendaError', + RankedCollective: 'PezpalletRankedCollectiveError', + AssetConversion: 'PezpalletAssetConversionError', + FastUnstake: 'PezpalletFastUnstakeError', + MessageQueue: 'PezpalletMessageQueueError', + __Unused68: 'Null', + TxPause: 'PezpalletTxPauseError', + SafeMode: 'PezpalletSafeModeError', + __Unused71: 'Null', + MultiBlockMigrations: 'PezpalletMigrationsError', + Broker: 'PezpalletBrokerError', + TasksExample: 'PezpalletExampleTasksError', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + AssetConversionMigration: 'PezpalletAssetConversionOpsError', + Revive: 'PezpalletReviveError', + __Unused81: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingError', + AssetRewards: 'PezpalletAssetRewardsError', + AssetsFreezer: 'PezpalletAssetsFreezerError', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + MetaTx: 'PezpalletMetaTxError' + } + } +}; diff --git a/packages/types-augment/src/lookup/definitions.ts b/packages/types-augment/src/lookup/definitions.ts new file mode 100644 index 0000000..9d415fe --- /dev/null +++ b/packages/types-augment/src/lookup/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types-lookup authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions } from '@pezkuwi/types/types'; + +import { objectSpread } from '@pezkuwi/util'; + +import assetHubDicle from './assetHubDicle.js'; +import assetHubPezkuwi from './assetHubPezkuwi.js'; +import bizinikiwi from './bizinikiwi.js'; +import dicle from './dicle.js'; +import pezkuwi from './pezkuwi.js'; + +export default { + rpc: {}, + // Not 100% sure it is relevant, however the order here is the same + // as exposed in the typegen lookup order + types: objectSpread({}, bizinikiwi, pezkuwi, dicle, assetHubPezkuwi, assetHubDicle) +} as Definitions; diff --git a/packages/types-augment/src/lookup/dicle.ts b/packages/types-augment/src/lookup/dicle.ts new file mode 100644 index 0000000..de9f8a2 --- /dev/null +++ b/packages/types-augment/src/lookup/dicle.ts @@ -0,0 +1,739 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +/* eslint-disable sort-keys */ + +export default { + /** + * Lookup138: staging_kusama_runtime::SessionKeys + **/ + StagingDicleRuntimeSessionKeys: { + grandpa: 'PezspConsensusGrandpaAppPublic', + babe: 'PezspConsensusBabeAppPublic', + paraValidator: 'PezkuwiPrimitivesV8ValidatorAppPublic', + paraAssignment: 'PezkuwiPrimitivesV8AssignmentAppPublic', + authorityDiscovery: 'PezspAuthorityDiscoveryAppPublic', + beefy: 'PezspConsensusBeefyEcdsaCryptoPublic' + }, + /** + * Lookup160: staging_kusama_runtime::OriginCaller + **/ + StagingDicleRuntimeOriginCaller: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + Origins: 'StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + ParachainsOrigin: 'PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + XcmPallet: 'PezpalletXcmOrigin' + } + }, + /** + * Lookup162: staging_kusama_runtime::governance::origins::pallet_custom_origins::Origin + **/ + StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: { + _enum: ['StakingAdmin', 'Treasurer', 'FellowshipAdmin', 'GeneralAdmin', 'AuctionAdmin', 'LeaseAdmin', 'ReferendumCanceller', 'ReferendumKiller', 'SmallTipper', 'BigTipper', 'SmallSpender', 'MediumSpender', 'BigSpender', 'WhitelistedCaller', 'FellowshipInitiates', 'Fellows', 'FellowshipExperts', 'FellowshipMasters', 'Fellowship1Dan', 'Fellowship2Dan', 'Fellowship3Dan', 'Fellowship4Dan', 'Fellowship5Dan', 'Fellowship6Dan', 'Fellowship7Dan', 'Fellowship8Dan', 'Fellowship9Dan', 'WishForChange'] + }, + /** + * Lookup172: staging_kusama_runtime::RuntimeParameters + **/ + StagingDicleRuntimeRuntimeParameters: { + _enum: { + Inflation: 'StagingDicleRuntimeDynamicParamsInflationParameters', + Treasury: 'StagingDicleRuntimeDynamicParamsTreasuryParameters' + } + }, + /** + * Lookup173: staging_kusama_runtime::dynamic_params::inflation::Parameters + **/ + StagingDicleRuntimeDynamicParamsInflationParameters: { + _enum: { + MinInflation: '(StagingDicleRuntimeDynamicParamsInflationMinInflation,Option)', + MaxInflation: '(StagingDicleRuntimeDynamicParamsInflationMaxInflation,Option)', + IdealStake: '(StagingDicleRuntimeDynamicParamsInflationIdealStake,Option)', + Falloff: '(StagingDicleRuntimeDynamicParamsInflationFalloff,Option)', + UseAuctionSlots: '(StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots,Option)' + } + }, + /** + * Lookup174: staging_kusama_runtime::dynamic_params::inflation::MinInflation + **/ + StagingDicleRuntimeDynamicParamsInflationMinInflation: 'Null', + /** + * Lookup177: staging_kusama_runtime::dynamic_params::inflation::MaxInflation + **/ + StagingDicleRuntimeDynamicParamsInflationMaxInflation: 'Null', + /** + * Lookup178: staging_kusama_runtime::dynamic_params::inflation::IdealStake + **/ + StagingDicleRuntimeDynamicParamsInflationIdealStake: 'Null', + /** + * Lookup179: staging_kusama_runtime::dynamic_params::inflation::Falloff + **/ + StagingDicleRuntimeDynamicParamsInflationFalloff: 'Null', + /** + * Lookup180: staging_kusama_runtime::dynamic_params::inflation::UseAuctionSlots + **/ + StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots: 'Null', + /** + * Lookup182: staging_kusama_runtime::dynamic_params::treasury::Parameters + **/ + StagingDicleRuntimeDynamicParamsTreasuryParameters: { + _enum: { + BurnPortion: '(StagingDicleRuntimeDynamicParamsTreasuryBurnPortion,Option)', + BurnDestination: '(StagingDicleRuntimeDynamicParamsTreasuryBurnDestination,Option)' + } + }, + /** + * Lookup183: staging_kusama_runtime::dynamic_params::treasury::BurnPortion + **/ + StagingDicleRuntimeDynamicParamsTreasuryBurnPortion: 'Null', + /** + * Lookup186: staging_kusama_runtime::dynamic_params::treasury::BurnDestination + **/ + StagingDicleRuntimeDynamicParamsTreasuryBurnDestination: 'Null', + /** + * Lookup188: staging_kusama_runtime::BurnDestinationAccount + **/ + StagingDicleRuntimeBurnDestinationAccount: 'Option', + /** + * Lookup209: kusama_runtime_constants::proxy::ProxyType + **/ + DicleRuntimeConstantsProxyProxyType: { + _enum: ['Any', 'NonTransfer', 'Governance', 'Staking', '__Unused4', 'CancelProxy', 'Auction', 'Society', 'NominationPools', 'Spokesperson', 'ParaRegistration'] + }, + /** + * Lookup219: staging_kusama_runtime::NposCompactSolution24 + **/ + StagingDicleRuntimeNposCompactSolution24: { + votes1: 'Vec<(Compact,Compact)>', + votes2: 'Vec<(Compact,(Compact,Compact),Compact)>', + votes3: 'Vec<(Compact,[(Compact,Compact);2],Compact)>', + votes4: 'Vec<(Compact,[(Compact,Compact);3],Compact)>', + votes5: 'Vec<(Compact,[(Compact,Compact);4],Compact)>', + votes6: 'Vec<(Compact,[(Compact,Compact);5],Compact)>', + votes7: 'Vec<(Compact,[(Compact,Compact);6],Compact)>', + votes8: 'Vec<(Compact,[(Compact,Compact);7],Compact)>', + votes9: 'Vec<(Compact,[(Compact,Compact);8],Compact)>', + votes10: 'Vec<(Compact,[(Compact,Compact);9],Compact)>', + votes11: 'Vec<(Compact,[(Compact,Compact);10],Compact)>', + votes12: 'Vec<(Compact,[(Compact,Compact);11],Compact)>', + votes13: 'Vec<(Compact,[(Compact,Compact);12],Compact)>', + votes14: 'Vec<(Compact,[(Compact,Compact);13],Compact)>', + votes15: 'Vec<(Compact,[(Compact,Compact);14],Compact)>', + votes16: 'Vec<(Compact,[(Compact,Compact);15],Compact)>', + votes17: 'Vec<(Compact,[(Compact,Compact);16],Compact)>', + votes18: 'Vec<(Compact,[(Compact,Compact);17],Compact)>', + votes19: 'Vec<(Compact,[(Compact,Compact);18],Compact)>', + votes20: 'Vec<(Compact,[(Compact,Compact);19],Compact)>', + votes21: 'Vec<(Compact,[(Compact,Compact);20],Compact)>', + votes22: 'Vec<(Compact,[(Compact,Compact);21],Compact)>', + votes23: 'Vec<(Compact,[(Compact,Compact);22],Compact)>', + votes24: 'Vec<(Compact,[(Compact,Compact);23],Compact)>' + }, + /** + * Lookup539: pallet_rc_migrator::recovery::RecoveryStage + **/ + PezpalletRcMigratorRecoveryRecoveryStage: { + _enum: { + Recoverable: 'Option', + ActiveRecoveries: 'Option<(AccountId32,AccountId32)>', + Proxy: 'Option', + Finished: 'Null' + } + }, + /** + * Lookup543: pallet_rc_migrator::society::SocietyStage + **/ + PezpalletRcMigratorSocietySocietyStage: { + _enum: { + Values: 'Null', + Members: 'Option', + Payouts: 'Option', + MemberByIndex: 'Option', + SuspendedMembers: 'Option', + Candidates: 'Option', + Votes: 'Option<(AccountId32,AccountId32)>', + VoteClearCursor: 'Option', + DefenderVotes: 'Option<(u32,AccountId32)>', + Finished: 'Null' + } + }, + /** + * Lookup566: staging_kusama_runtime::RuntimeParametersKey + **/ + StagingDicleRuntimeRuntimeParametersKey: { + _enum: { + Inflation: 'StagingDicleRuntimeDynamicParamsInflationParametersKey', + Treasury: 'StagingDicleRuntimeDynamicParamsTreasuryParametersKey' + } + }, + /** + * Lookup567: staging_kusama_runtime::dynamic_params::inflation::ParametersKey + **/ + StagingDicleRuntimeDynamicParamsInflationParametersKey: { + _enum: ['MinInflation', 'MaxInflation', 'IdealStake', 'Falloff', 'UseAuctionSlots'] + }, + /** + * Lookup568: staging_kusama_runtime::dynamic_params::treasury::ParametersKey + **/ + StagingDicleRuntimeDynamicParamsTreasuryParametersKey: { + _enum: ['BurnPortion', 'BurnDestination'] + }, + /** + * Lookup570: staging_kusama_runtime::RuntimeParametersValue + **/ + StagingDicleRuntimeRuntimeParametersValue: { + _enum: { + Inflation: 'StagingDicleRuntimeDynamicParamsInflationParametersValue', + Treasury: 'StagingDicleRuntimeDynamicParamsTreasuryParametersValue' + } + }, + /** + * Lookup571: staging_kusama_runtime::dynamic_params::inflation::ParametersValue + **/ + StagingDicleRuntimeDynamicParamsInflationParametersValue: { + _enum: { + MinInflation: 'Perquintill', + MaxInflation: 'Perquintill', + IdealStake: 'Perquintill', + Falloff: 'Perquintill', + UseAuctionSlots: 'bool' + } + }, + /** + * Lookup572: staging_kusama_runtime::dynamic_params::treasury::ParametersValue + **/ + StagingDicleRuntimeDynamicParamsTreasuryParametersValue: { + _enum: { + BurnPortion: 'Permill', + BurnDestination: 'StagingDicleRuntimeBurnDestinationAccount' + } + }, + /** + * Lookup579: pallet_recovery::DepositKind + **/ + PezpalletRecoveryDepositKind: { + _enum: { + RecoveryConfig: 'Null', + ActiveRecoveryFor: 'AccountId32' + } + }, + /** + * Lookup580: staging_kusama_runtime::Runtime + **/ + StagingDicleRuntimeRuntime: 'Null', + /** + * Lookup668: staging_kusama_runtime::RuntimeHoldReason + **/ + StagingDicleRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + Staking: 'PezpalletStakingPezpalletHoldReason', + __Unused7: 'Null', + Session: 'PezpalletSessionHoldReason', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + Preimage: 'PezpalletPreimageHoldReason', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingHoldReason', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + XcmPallet: 'PezpalletXcmHoldReason' + } + }, + /** + * Lookup677: staging_kusama_runtime::RuntimeFreezeReason + **/ + StagingDicleRuntimeRuntimeFreezeReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + NominationPools: 'PezpalletNominationPoolsFreezeReason' + } + }, + /** + * Lookup1159: staging_kusama_runtime::RuntimeError + **/ + StagingDicleRuntimeRuntimeError: { + _enum: { + System: 'PezframeSystemError', + Babe: 'PezpalletBabeError', + __Unused2: 'Null', + Indices: 'PezpalletIndicesError', + Balances: 'PezpalletBalancesError', + __Unused5: 'Null', + Staking: 'PezpalletStakingPezpalletError', + __Unused7: 'Null', + Session: 'PezpalletSessionError', + __Unused9: 'Null', + Grandpa: 'PezpalletGrandpaError', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + Treasury: 'PezpalletTreasuryError', + Claims: 'PezkuwiRuntimeCommonClaimsPezpalletError', + ConvictionVoting: 'PezpalletConvictionVotingError', + Referenda: 'PezpalletReferendaError', + FellowshipCollective: 'PezpalletRankedCollectiveError', + FellowshipReferenda: 'PezpalletReferendaError', + Utility: 'PezpalletUtilityError', + __Unused25: 'Null', + Society: 'PezpalletSocietyError', + Recovery: 'PezpalletRecoveryError', + Vesting: 'PezpalletVestingError', + Scheduler: 'PezpalletSchedulerError', + Proxy: 'PezpalletProxyError', + Multisig: 'PezpalletMultisigError', + Preimage: 'PezpalletPreimageError', + __Unused33: 'Null', + __Unused34: 'Null', + Bounties: 'PezpalletBountiesError', + __Unused36: 'Null', + ElectionProviderMultiPhase: 'PezpalletElectionProviderMultiPhaseError', + __Unused38: 'Null', + VoterList: 'PezpalletBagsListError', + ChildBounties: 'PezpalletChildBountiesError', + NominationPools: 'PezpalletNominationPoolsError', + FastUnstake: 'PezpalletFastUnstakeError', + __Unused43: 'Null', + Whitelist: 'PezpalletWhitelistError', + __Unused45: 'Null', + __Unused46: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingError', + StakingAhClient: 'PezpalletStakingAsyncAhClientError', + __Unused49: 'Null', + __Unused50: 'Null', + Configuration: 'PezkuwiRuntimeTeyrchainsConfigurationPezpalletError', + __Unused52: 'Null', + ParaInclusion: 'PezkuwiRuntimeTeyrchainsInclusionPezpalletError', + ParaInherent: 'PezkuwiRuntimeTeyrchainsParasInherentPezpalletError', + __Unused55: 'Null', + Paras: 'PezkuwiRuntimeTeyrchainsParasPezpalletError', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + Hrmp: 'PezkuwiRuntimeTeyrchainsHrmpPezpalletError', + __Unused61: 'Null', + ParasDisputes: 'PezkuwiRuntimeTeyrchainsDisputesPezpalletError', + ParasSlashing: 'PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError', + OnDemandAssignmentProvider: 'PezkuwiRuntimeTeyrchainsOnDemandPezpalletError', + CoretimeAssignmentProvider: 'PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + Registrar: 'PezkuwiRuntimeCommonParasRegistrarPezpalletError', + Slots: 'PezkuwiRuntimeCommonSlotsPezpalletError', + Auctions: 'PezkuwiRuntimeCommonAuctionsPezpalletError', + Crowdloan: 'PezkuwiRuntimeCommonCrowdloanPezpalletError', + Coretime: 'PezkuwiRuntimeTeyrchainsCoretimePezpalletError', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + XcmPallet: 'PezpalletXcmError', + MessageQueue: 'PezpalletMessageQueueError', + AssetRate: 'PezpalletAssetRateError', + __Unused102: 'Null', + __Unused103: 'Null', + __Unused104: 'Null', + __Unused105: 'Null', + __Unused106: 'Null', + __Unused107: 'Null', + __Unused108: 'Null', + __Unused109: 'Null', + __Unused110: 'Null', + __Unused111: 'Null', + __Unused112: 'Null', + __Unused113: 'Null', + __Unused114: 'Null', + __Unused115: 'Null', + __Unused116: 'Null', + __Unused117: 'Null', + __Unused118: 'Null', + __Unused119: 'Null', + __Unused120: 'Null', + __Unused121: 'Null', + __Unused122: 'Null', + __Unused123: 'Null', + __Unused124: 'Null', + __Unused125: 'Null', + __Unused126: 'Null', + __Unused127: 'Null', + __Unused128: 'Null', + __Unused129: 'Null', + __Unused130: 'Null', + __Unused131: 'Null', + __Unused132: 'Null', + __Unused133: 'Null', + __Unused134: 'Null', + __Unused135: 'Null', + __Unused136: 'Null', + __Unused137: 'Null', + __Unused138: 'Null', + __Unused139: 'Null', + __Unused140: 'Null', + __Unused141: 'Null', + __Unused142: 'Null', + __Unused143: 'Null', + __Unused144: 'Null', + __Unused145: 'Null', + __Unused146: 'Null', + __Unused147: 'Null', + __Unused148: 'Null', + __Unused149: 'Null', + __Unused150: 'Null', + __Unused151: 'Null', + __Unused152: 'Null', + __Unused153: 'Null', + __Unused154: 'Null', + __Unused155: 'Null', + __Unused156: 'Null', + __Unused157: 'Null', + __Unused158: 'Null', + __Unused159: 'Null', + __Unused160: 'Null', + __Unused161: 'Null', + __Unused162: 'Null', + __Unused163: 'Null', + __Unused164: 'Null', + __Unused165: 'Null', + __Unused166: 'Null', + __Unused167: 'Null', + __Unused168: 'Null', + __Unused169: 'Null', + __Unused170: 'Null', + __Unused171: 'Null', + __Unused172: 'Null', + __Unused173: 'Null', + __Unused174: 'Null', + __Unused175: 'Null', + __Unused176: 'Null', + __Unused177: 'Null', + __Unused178: 'Null', + __Unused179: 'Null', + __Unused180: 'Null', + __Unused181: 'Null', + __Unused182: 'Null', + __Unused183: 'Null', + __Unused184: 'Null', + __Unused185: 'Null', + __Unused186: 'Null', + __Unused187: 'Null', + __Unused188: 'Null', + __Unused189: 'Null', + __Unused190: 'Null', + __Unused191: 'Null', + __Unused192: 'Null', + __Unused193: 'Null', + __Unused194: 'Null', + __Unused195: 'Null', + __Unused196: 'Null', + __Unused197: 'Null', + __Unused198: 'Null', + __Unused199: 'Null', + Beefy: 'PezpalletBeefyError', + __Unused201: 'Null', + __Unused202: 'Null', + __Unused203: 'Null', + __Unused204: 'Null', + __Unused205: 'Null', + __Unused206: 'Null', + __Unused207: 'Null', + __Unused208: 'Null', + __Unused209: 'Null', + __Unused210: 'Null', + __Unused211: 'Null', + __Unused212: 'Null', + __Unused213: 'Null', + __Unused214: 'Null', + __Unused215: 'Null', + __Unused216: 'Null', + __Unused217: 'Null', + __Unused218: 'Null', + __Unused219: 'Null', + __Unused220: 'Null', + __Unused221: 'Null', + __Unused222: 'Null', + __Unused223: 'Null', + __Unused224: 'Null', + __Unused225: 'Null', + __Unused226: 'Null', + __Unused227: 'Null', + __Unused228: 'Null', + __Unused229: 'Null', + __Unused230: 'Null', + __Unused231: 'Null', + __Unused232: 'Null', + __Unused233: 'Null', + __Unused234: 'Null', + __Unused235: 'Null', + __Unused236: 'Null', + __Unused237: 'Null', + __Unused238: 'Null', + __Unused239: 'Null', + __Unused240: 'Null', + __Unused241: 'Null', + __Unused242: 'Null', + __Unused243: 'Null', + __Unused244: 'Null', + __Unused245: 'Null', + __Unused246: 'Null', + __Unused247: 'Null', + __Unused248: 'Null', + __Unused249: 'Null', + __Unused250: 'Null', + __Unused251: 'Null', + __Unused252: 'Null', + __Unused253: 'Null', + __Unused254: 'Null', + RcMigrator: 'PezpalletRcMigratorError' + } + } +}; diff --git a/packages/types-augment/src/lookup/index.ts b/packages/types-augment/src/lookup/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types-augment/src/lookup/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types-augment/src/lookup/pezkuwi.ts b/packages/types-augment/src/lookup/pezkuwi.ts new file mode 100644 index 0000000..fa0afe7 --- /dev/null +++ b/packages/types-augment/src/lookup/pezkuwi.ts @@ -0,0 +1,4769 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +/* eslint-disable sort-keys */ + +export default { + /** + * Lookup41: pallet_balances::pallet::UnexpectedKind + **/ + PezpalletBalancesUnexpectedKind: { + _enum: ['BalanceUpdated', 'FailedToMutateAccount'] + }, + /** + * Lookup52: pallet_session::historical::pallet::Event + **/ + PezpalletSessionHistoricalPezpalletEvent: { + _enum: { + RootStored: { + index: 'u32', + }, + RootsPruned: { + upTo: 'u32' + } + } + }, + /** + * Lookup59: polkadot_runtime_common::impls::VersionedLocatableAsset + **/ + PezkuwiRuntimeCommonImplsVersionedLocatableAsset: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: { + location: 'StagingXcmV3MultiLocation', + assetId: 'XcmV3MultiassetAssetId', + }, + V4: { + location: 'StagingXcmV4Location', + assetId: 'StagingXcmV4AssetAssetId', + }, + V5: { + location: 'StagingXcmV5Location', + assetId: 'StagingXcmV5AssetAssetId' + } + } + }, + /** + * Lookup60: staging_xcm::v3::multilocation::MultiLocation + **/ + StagingXcmV3MultiLocation: { + parents: 'u8', + interior: 'XcmV3Junctions' + }, + /** + * Lookup61: xcm::v3::junctions::Junctions + **/ + XcmV3Junctions: { + _enum: { + Here: 'Null', + X1: 'XcmV3Junction', + X2: '(XcmV3Junction,XcmV3Junction)', + X3: '(XcmV3Junction,XcmV3Junction,XcmV3Junction)', + X4: '(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)', + X5: '(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)', + X6: '(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)', + X7: '(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)', + X8: '(XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction,XcmV3Junction)' + } + }, + /** + * Lookup62: xcm::v3::junction::Junction + **/ + XcmV3Junction: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]', + }, + AccountIndex64: { + network: 'Option', + index: 'Compact', + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]', + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]', + }, + OnlyChild: 'Null', + Plurality: { + id: 'XcmV3JunctionBodyId', + part: 'XcmV3JunctionBodyPart', + }, + GlobalConsensus: 'XcmV3JunctionNetworkId' + } + }, + /** + * Lookup65: xcm::v3::junction::NetworkId + **/ + XcmV3JunctionNetworkId: { + _enum: { + ByGenesis: '[u8;32]', + ByFork: { + blockNumber: 'u64', + blockHash: '[u8;32]', + }, + Polkadot: 'Null', + Kusama: 'Null', + Westend: 'Null', + Rococo: 'Null', + Wococo: 'Null', + Ethereum: { + chainId: 'Compact', + }, + BitcoinCore: 'Null', + BitcoinCash: 'Null', + PolkadotBulletin: 'Null' + } + }, + /** + * Lookup68: xcm::v3::junction::BodyId + **/ + XcmV3JunctionBodyId: { + _enum: { + Unit: 'Null', + Moniker: '[u8;4]', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null', + Defense: 'Null', + Administration: 'Null', + Treasury: 'Null' + } + }, + /** + * Lookup69: xcm::v3::junction::BodyPart + **/ + XcmV3JunctionBodyPart: { + _enum: { + Voice: 'Null', + Members: { + count: 'Compact', + }, + Fraction: { + nom: 'Compact', + denom: 'Compact', + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact', + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + /** + * Lookup70: xcm::v3::multiasset::AssetId + **/ + XcmV3MultiassetAssetId: { + _enum: { + Concrete: 'StagingXcmV3MultiLocation', + Abstract: '[u8;32]' + } + }, + /** + * Lookup71: staging_xcm::v4::location::Location + **/ + StagingXcmV4Location: { + parents: 'u8', + interior: 'StagingXcmV4Junctions' + }, + /** + * Lookup72: staging_xcm::v4::junctions::Junctions + **/ + StagingXcmV4Junctions: { + _enum: { + Here: 'Null', + X1: '[Lookup74;1]', + X2: '[Lookup74;2]', + X3: '[Lookup74;3]', + X4: '[Lookup74;4]', + X5: '[Lookup74;5]', + X6: '[Lookup74;6]', + X7: '[Lookup74;7]', + X8: '[Lookup74;8]' + } + }, + /** + * Lookup74: staging_xcm::v4::junction::Junction + **/ + StagingXcmV4Junction: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]', + }, + AccountIndex64: { + network: 'Option', + index: 'Compact', + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]', + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]', + }, + OnlyChild: 'Null', + Plurality: { + id: 'XcmV3JunctionBodyId', + part: 'XcmV3JunctionBodyPart', + }, + GlobalConsensus: 'StagingXcmV4JunctionNetworkId' + } + }, + /** + * Lookup76: staging_xcm::v4::junction::NetworkId + **/ + StagingXcmV4JunctionNetworkId: { + _enum: { + ByGenesis: '[u8;32]', + ByFork: { + blockNumber: 'u64', + blockHash: '[u8;32]', + }, + Polkadot: 'Null', + Kusama: 'Null', + Westend: 'Null', + Rococo: 'Null', + Wococo: 'Null', + Ethereum: { + chainId: 'Compact', + }, + BitcoinCore: 'Null', + BitcoinCash: 'Null', + PolkadotBulletin: 'Null' + } + }, + /** + * Lookup84: staging_xcm::v4::asset::AssetId + **/ + StagingXcmV4AssetAssetId: 'StagingXcmV4Location', + /** + * Lookup85: staging_xcm::v5::location::Location + **/ + StagingXcmV5Location: { + parents: 'u8', + interior: 'StagingXcmV5Junctions' + }, + /** + * Lookup86: staging_xcm::v5::junctions::Junctions + **/ + StagingXcmV5Junctions: { + _enum: { + Here: 'Null', + X1: '[Lookup88;1]', + X2: '[Lookup88;2]', + X3: '[Lookup88;3]', + X4: '[Lookup88;4]', + X5: '[Lookup88;5]', + X6: '[Lookup88;6]', + X7: '[Lookup88;7]', + X8: '[Lookup88;8]' + } + }, + /** + * Lookup88: staging_xcm::v5::junction::Junction + **/ + StagingXcmV5Junction: { + _enum: { + Parachain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]', + }, + AccountIndex64: { + network: 'Option', + index: 'Compact', + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]', + }, + PalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]', + }, + OnlyChild: 'Null', + Plurality: { + id: 'XcmV3JunctionBodyId', + part: 'XcmV3JunctionBodyPart', + }, + GlobalConsensus: 'StagingXcmV5JunctionNetworkId' + } + }, + /** + * Lookup90: staging_xcm::v5::junction::NetworkId + **/ + StagingXcmV5JunctionNetworkId: { + _enum: { + ByGenesis: '[u8;32]', + ByFork: { + blockNumber: 'u64', + blockHash: '[u8;32]', + }, + Polkadot: 'Null', + Kusama: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + Ethereum: { + chainId: 'Compact', + }, + BitcoinCore: 'Null', + BitcoinCash: 'Null', + PolkadotBulletin: 'Null' + } + }, + /** + * Lookup98: staging_xcm::v5::asset::AssetId + **/ + StagingXcmV5AssetAssetId: 'StagingXcmV5Location', + /** + * Lookup99: xcm::VersionedLocation + **/ + XcmVersionedLocation: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: 'StagingXcmV3MultiLocation', + V4: 'StagingXcmV4Location', + V5: 'StagingXcmV5Location' + } + }, + /** + * Lookup147: polkadot_runtime::SessionKeys + **/ + PezkuwiRuntimeSessionKeys: { + grandpa: 'PezspConsensusGrandpaAppPublic', + babe: 'PezspConsensusBabeAppPublic', + paraValidator: 'PezkuwiPrimitivesV8ValidatorAppPublic', + paraAssignment: 'PezkuwiPrimitivesV8AssignmentAppPublic', + authorityDiscovery: 'PezspAuthorityDiscoveryAppPublic', + beefy: 'PezspConsensusBeefyEcdsaCryptoPublic' + }, + /** + * Lookup148: polkadot_primitives::v8::validator_app::Public + **/ + PezkuwiPrimitivesV8ValidatorAppPublic: '[u8;32]', + /** + * Lookup149: polkadot_primitives::v8::assignment_app::Public + **/ + PezkuwiPrimitivesV8AssignmentAppPublic: '[u8;32]', + /** + * Lookup169: polkadot_runtime::OriginCaller + **/ + PezkuwiRuntimeOriginCaller: { + _enum: { + system: 'PezframeSupportDispatchRawOrigin', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + Origins: 'PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + __Unused41: 'Null', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + ParachainsOrigin: 'PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + __Unused98: 'Null', + XcmPallet: 'PezpalletXcmOrigin' + } + }, + /** + * Lookup171: polkadot_runtime::governance::origins::pallet_custom_origins::Origin + **/ + PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: { + _enum: ['StakingAdmin', 'Treasurer', 'FellowshipAdmin', 'GeneralAdmin', 'AuctionAdmin', 'LeaseAdmin', 'ReferendumCanceller', 'ReferendumKiller', 'SmallTipper', 'BigTipper', 'SmallSpender', 'MediumSpender', 'BigSpender', 'WhitelistedCaller', 'WishForChange'] + }, + /** + * Lookup172: polkadot_runtime_parachains::origin::pallet::Origin + **/ + PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin: { + _enum: { + Parachain: 'u32' + } + }, + /** + * Lookup174: pallet_xcm::pallet::Origin + **/ + PezpalletXcmOrigin: { + _enum: { + Xcm: 'StagingXcmV5Location', + Response: 'StagingXcmV5Location' + } + }, + /** + * Lookup178: polkadot_runtime_common::claims::pallet::Call + **/ + PezkuwiRuntimeCommonClaimsPezpalletCall: { + _enum: { + claim: { + dest: 'AccountId32', + ethereumSignature: 'PezkuwiRuntimeCommonClaimsEcdsaSignature', + }, + mint_claim: { + who: 'PezkuwiRuntimeCommonClaimsEthereumAddress', + value: 'u128', + vestingSchedule: 'Option<(u128,u128,u32)>', + statement: 'Option', + }, + claim_attest: { + dest: 'AccountId32', + ethereumSignature: 'PezkuwiRuntimeCommonClaimsEcdsaSignature', + statement: 'Bytes', + }, + attest: { + statement: 'Bytes', + }, + move_claim: { + _alias: { + new_: 'new', + }, + old: 'PezkuwiRuntimeCommonClaimsEthereumAddress', + new_: 'PezkuwiRuntimeCommonClaimsEthereumAddress', + maybePreclaim: 'Option' + } + } + }, + /** + * Lookup179: polkadot_runtime_common::claims::EcdsaSignature + **/ + PezkuwiRuntimeCommonClaimsEcdsaSignature: '[u8;65]', + /** + * Lookup181: polkadot_runtime_common::claims::EthereumAddress + **/ + PezkuwiRuntimeCommonClaimsEthereumAddress: '[u8;20]', + /** + * Lookup185: polkadot_runtime_common::claims::StatementKind + **/ + PezkuwiRuntimeCommonClaimsStatementKind: { + _enum: ['Regular', 'Saft'] + }, + /** + * Lookup192: polkadot_runtime_constants::proxy::ProxyType + **/ + PezkuwiRuntimeConstantsProxyProxyType: { + _enum: ['Any', 'NonTransfer', 'Governance', 'Staking', '__Unused4', '__Unused5', 'CancelProxy', 'Auction', 'NominationPools', 'ParaRegistration'] + }, + /** + * Lookup200: polkadot_runtime::NposCompactSolution16 + **/ + PezkuwiRuntimeNposCompactSolution16: { + votes1: 'Vec<(Compact,Compact)>', + votes2: 'Vec<(Compact,(Compact,Compact),Compact)>', + votes3: 'Vec<(Compact,[(Compact,Compact);2],Compact)>', + votes4: 'Vec<(Compact,[(Compact,Compact);3],Compact)>', + votes5: 'Vec<(Compact,[(Compact,Compact);4],Compact)>', + votes6: 'Vec<(Compact,[(Compact,Compact);5],Compact)>', + votes7: 'Vec<(Compact,[(Compact,Compact);6],Compact)>', + votes8: 'Vec<(Compact,[(Compact,Compact);7],Compact)>', + votes9: 'Vec<(Compact,[(Compact,Compact);8],Compact)>', + votes10: 'Vec<(Compact,[(Compact,Compact);9],Compact)>', + votes11: 'Vec<(Compact,[(Compact,Compact);10],Compact)>', + votes12: 'Vec<(Compact,[(Compact,Compact);11],Compact)>', + votes13: 'Vec<(Compact,[(Compact,Compact);12],Compact)>', + votes14: 'Vec<(Compact,[(Compact,Compact);13],Compact)>', + votes15: 'Vec<(Compact,[(Compact,Compact);14],Compact)>', + votes16: 'Vec<(Compact,[(Compact,Compact);15],Compact)>' + }, + /** + * Lookup274: pallet_staking_async_ah_client::pallet::Call + **/ + PezpalletStakingAsyncAhClientCall: { + _enum: { + validator_set: { + report: 'PezpalletStakingAsyncRcClientValidatorSetReport', + }, + set_mode: { + mode: 'PezpalletStakingAsyncAhClientOperatingMode', + }, + force_on_migration_end: 'Null' + } + }, + /** + * Lookup275: pallet_staking_async_rc_client::ValidatorSetReport + **/ + PezpalletStakingAsyncRcClientValidatorSetReport: { + newValidatorSet: 'Vec', + id: 'u32', + pruneUpTo: 'Option', + leftover: 'bool' + }, + /** + * Lookup276: pallet_staking_async_ah_client::OperatingMode + **/ + PezpalletStakingAsyncAhClientOperatingMode: { + _enum: ['Passive', 'Buffered', 'Active'] + }, + /** + * Lookup277: polkadot_runtime_parachains::configuration::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsConfigurationPezpalletCall: { + _enum: { + set_validation_upgrade_cooldown: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_validation_upgrade_delay: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_code_retention_period: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_code_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_pov_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_head_data_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_coretime_cores: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused7: 'Null', + set_group_rotation_frequency: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_paras_availability_period: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused10: 'Null', + set_scheduling_lookahead: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_validators_per_core: { + _alias: { + new_: 'new', + }, + new_: 'Option', + }, + set_max_validators: { + _alias: { + new_: 'new', + }, + new_: 'Option', + }, + set_dispute_period: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_dispute_post_conclusion_acceptance_period: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused16: 'Null', + __Unused17: 'Null', + set_no_show_slots: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_n_delay_tranches: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_zeroth_delay_tranche_width: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_needed_approvals: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_relay_vrf_modulo_samples: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_upward_queue_count: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_upward_queue_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_downward_message_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused26: 'Null', + set_max_upward_message_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_max_upward_message_num_per_candidate: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_hrmp_open_request_ttl: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_hrmp_sender_deposit: { + _alias: { + new_: 'new', + }, + new_: 'u128', + }, + set_hrmp_recipient_deposit: { + _alias: { + new_: 'new', + }, + new_: 'u128', + }, + set_hrmp_channel_max_capacity: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_hrmp_channel_max_total_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_hrmp_max_parachain_inbound_channels: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused35: 'Null', + set_hrmp_channel_max_message_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_hrmp_max_parachain_outbound_channels: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused38: 'Null', + set_hrmp_max_message_num_per_candidate: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + __Unused40: 'Null', + __Unused41: 'Null', + set_pvf_voting_ttl: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_minimum_validation_upgrade_delay: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_bypass_consistency_check: { + _alias: { + new_: 'new', + }, + new_: 'bool', + }, + set_async_backing_params: { + _alias: { + new_: 'new', + }, + new_: 'PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams', + }, + set_executor_params: { + _alias: { + new_: 'new', + }, + new_: 'PezkuwiPrimitivesV8ExecutorParams', + }, + set_on_demand_base_fee: { + _alias: { + new_: 'new', + }, + new_: 'u128', + }, + set_on_demand_fee_variability: { + _alias: { + new_: 'new', + }, + new_: 'Perbill', + }, + set_on_demand_queue_max_size: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_on_demand_target_queue_utilization: { + _alias: { + new_: 'new', + }, + new_: 'Perbill', + }, + __Unused51: 'Null', + set_minimum_backing_votes: { + _alias: { + new_: 'new', + }, + new_: 'u32', + }, + set_node_feature: { + index: 'u8', + value: 'bool', + }, + set_approval_voting_params: { + _alias: { + new_: 'new', + }, + new_: 'PezkuwiPrimitivesV8ApprovalVotingParams', + }, + set_scheduler_params: { + _alias: { + new_: 'new', + }, + new_: 'PezkuwiPrimitivesV8SchedulerParams' + } + } + }, + /** + * Lookup278: polkadot_primitives::v8::async_backing::AsyncBackingParams + **/ + PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams: { + maxCandidateDepth: 'u32', + allowedAncestryLen: 'u32' + }, + /** + * Lookup279: polkadot_primitives::v8::executor_params::ExecutorParams + **/ + PezkuwiPrimitivesV8ExecutorParams: 'Vec', + /** + * Lookup281: polkadot_primitives::v8::executor_params::ExecutorParam + **/ + PezkuwiPrimitivesV8ExecutorParamsExecutorParam: { + _enum: { + __Unused0: 'Null', + MaxMemoryPages: 'u32', + StackLogicalMax: 'u32', + StackNativeMax: 'u32', + PrecheckingMaxMemory: 'u64', + PvfPrepTimeout: '(PezkuwiPrimitivesV8PvfPrepKind,u64)', + PvfExecTimeout: '(PezkuwiPrimitivesV8PvfExecKind,u64)', + WasmExtBulkMemory: 'Null' + } + }, + /** + * Lookup282: polkadot_primitives::v8::PvfPrepKind + **/ + PezkuwiPrimitivesV8PvfPrepKind: { + _enum: ['Precheck', 'Prepare'] + }, + /** + * Lookup283: polkadot_primitives::v8::PvfExecKind + **/ + PezkuwiPrimitivesV8PvfExecKind: { + _enum: ['Backing', 'Approval'] + }, + /** + * Lookup284: polkadot_primitives::v8::ApprovalVotingParams + **/ + PezkuwiPrimitivesV8ApprovalVotingParams: { + maxApprovalCoalesceCount: 'u32' + }, + /** + * Lookup285: polkadot_primitives::v8::SchedulerParams + **/ + PezkuwiPrimitivesV8SchedulerParams: { + groupRotationFrequency: 'u32', + parasAvailabilityPeriod: 'u32', + maxValidatorsPerCore: 'Option', + lookahead: 'u32', + numCores: 'u32', + maxAvailabilityTimeouts: 'u32', + onDemandQueueMaxSize: 'u32', + onDemandTargetQueueUtilization: 'Perbill', + onDemandFeeVariability: 'Perbill', + onDemandBaseFee: 'u128', + ttl: 'u32' + }, + /** + * Lookup286: polkadot_runtime_parachains::shared::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsSharedPezpalletCall: 'Null', + /** + * Lookup287: polkadot_runtime_parachains::inclusion::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsInclusionPezpalletCall: 'Null', + /** + * Lookup288: polkadot_runtime_parachains::paras_inherent::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsParasInherentPezpalletCall: { + _enum: { + enter: { + data: 'PezkuwiPrimitivesVstagingInherentData' + } + } + }, + /** + * Lookup289: polkadot_primitives::vstaging::InherentData> + **/ + PezkuwiPrimitivesVstagingInherentData: { + bitfields: 'Vec', + backedCandidates: 'Vec', + disputes: 'Vec', + parentHeader: 'PezspRuntimeHeader' + }, + /** + * Lookup291: polkadot_primitives::v8::signed::UncheckedSigned + **/ + PezkuwiPrimitivesV8SignedUncheckedSigned: { + payload: 'BitVec', + validatorIndex: 'u32', + signature: 'PezkuwiPrimitivesV8ValidatorAppSignature' + }, + /** + * Lookup294: bitvec::order::Lsb0 + **/ + BitvecOrderLsb0: 'Null', + /** + * Lookup296: polkadot_primitives::v8::validator_app::Signature + **/ + PezkuwiPrimitivesV8ValidatorAppSignature: '[u8;64]', + /** + * Lookup298: polkadot_primitives::vstaging::BackedCandidate + **/ + PezkuwiPrimitivesVstagingBackedCandidate: { + candidate: 'PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2', + validityVotes: 'Vec', + validatorIndices: 'BitVec' + }, + /** + * Lookup299: polkadot_primitives::vstaging::CommittedCandidateReceiptV2 + **/ + PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2: { + descriptor: 'PezkuwiPrimitivesVstagingCandidateDescriptorV2', + commitments: 'PezkuwiPrimitivesV8CandidateCommitments' + }, + /** + * Lookup300: polkadot_primitives::vstaging::CandidateDescriptorV2 + **/ + PezkuwiPrimitivesVstagingCandidateDescriptorV2: { + paraId: 'u32', + relayParent: 'H256', + version: 'u8', + coreIndex: 'u16', + sessionIndex: 'u32', + reserved1: '[u8;25]', + persistedValidationDataHash: 'H256', + povHash: 'H256', + erasureRoot: 'H256', + reserved2: '[u8;64]', + paraHead: 'H256', + validationCodeHash: 'H256' + }, + /** + * Lookup304: polkadot_primitives::v8::CandidateCommitments + **/ + PezkuwiPrimitivesV8CandidateCommitments: { + upwardMessages: 'Vec', + horizontalMessages: 'Vec', + newValidationCode: 'Option', + headData: 'Bytes', + processedDownwardMessages: 'u32', + hrmpWatermark: 'u32' + }, + /** + * Lookup307: polkadot_core_primitives::OutboundHrmpMessage + **/ + PezkuwiCorePrimitivesOutboundHrmpMessage: { + recipient: 'u32', + data: 'Bytes' + }, + /** + * Lookup313: polkadot_primitives::v8::ValidityAttestation + **/ + PezkuwiPrimitivesV8ValidityAttestation: { + _enum: { + __Unused0: 'Null', + Implicit: 'PezkuwiPrimitivesV8ValidatorAppSignature', + Explicit: 'PezkuwiPrimitivesV8ValidatorAppSignature' + } + }, + /** + * Lookup315: polkadot_primitives::v8::DisputeStatementSet + **/ + PezkuwiPrimitivesV8DisputeStatementSet: { + candidateHash: 'H256', + session: 'u32', + statements: 'Vec<(PezkuwiPrimitivesV8DisputeStatement,u32,PezkuwiPrimitivesV8ValidatorAppSignature)>' + }, + /** + * Lookup319: polkadot_primitives::v8::DisputeStatement + **/ + PezkuwiPrimitivesV8DisputeStatement: { + _enum: { + Valid: 'PezkuwiPrimitivesV8ValidDisputeStatementKind', + Invalid: 'PezkuwiPrimitivesV8InvalidDisputeStatementKind' + } + }, + /** + * Lookup320: polkadot_primitives::v8::ValidDisputeStatementKind + **/ + PezkuwiPrimitivesV8ValidDisputeStatementKind: { + _enum: { + Explicit: 'Null', + BackingSeconded: 'H256', + BackingValid: 'H256', + ApprovalChecking: 'Null', + ApprovalCheckingMultipleCandidates: 'Vec' + } + }, + /** + * Lookup322: polkadot_primitives::v8::InvalidDisputeStatementKind + **/ + PezkuwiPrimitivesV8InvalidDisputeStatementKind: { + _enum: ['Explicit'] + }, + /** + * Lookup323: polkadot_runtime_parachains::paras::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsParasPezpalletCall: { + _enum: { + force_set_current_code: { + para: 'u32', + newCode: 'Bytes', + }, + force_set_current_head: { + para: 'u32', + newHead: 'Bytes', + }, + force_schedule_code_upgrade: { + para: 'u32', + newCode: 'Bytes', + relayParentNumber: 'u32', + }, + force_note_new_head: { + para: 'u32', + newHead: 'Bytes', + }, + force_queue_action: { + para: 'u32', + }, + add_trusted_validation_code: { + validationCode: 'Bytes', + }, + poke_unused_validation_code: { + validationCodeHash: 'H256', + }, + include_pvf_check_statement: { + stmt: 'PezkuwiPrimitivesV8PvfCheckStatement', + signature: 'PezkuwiPrimitivesV8ValidatorAppSignature', + }, + force_set_most_recent_context: { + para: 'u32', + context: 'u32', + }, + remove_upgrade_cooldown: { + para: 'u32', + }, + authorize_force_set_current_code_hash: { + para: 'u32', + newCodeHash: 'H256', + validPeriod: 'u32', + }, + apply_authorized_force_set_current_code: { + para: 'u32', + newCode: 'Bytes' + } + } + }, + /** + * Lookup324: polkadot_primitives::v8::PvfCheckStatement + **/ + PezkuwiPrimitivesV8PvfCheckStatement: { + accept: 'bool', + subject: 'H256', + sessionIndex: 'u32', + validatorIndex: 'u32' + }, + /** + * Lookup325: polkadot_runtime_parachains::initializer::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsInitializerPezpalletCall: { + _enum: { + force_approve: { + upTo: 'u32' + } + } + }, + /** + * Lookup326: polkadot_runtime_parachains::hrmp::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsHrmpPezpalletCall: { + _enum: { + hrmp_init_open_channel: { + recipient: 'u32', + proposedMaxCapacity: 'u32', + proposedMaxMessageSize: 'u32', + }, + hrmp_accept_open_channel: { + sender: 'u32', + }, + hrmp_close_channel: { + channelId: 'PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId', + }, + force_clean_hrmp: { + para: 'u32', + numInbound: 'u32', + numOutbound: 'u32', + }, + force_process_hrmp_open: { + channels: 'u32', + }, + force_process_hrmp_close: { + channels: 'u32', + }, + hrmp_cancel_open_request: { + channelId: 'PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId', + openRequests: 'u32', + }, + force_open_hrmp_channel: { + sender: 'u32', + recipient: 'u32', + maxCapacity: 'u32', + maxMessageSize: 'u32', + }, + establish_system_channel: { + sender: 'u32', + recipient: 'u32', + }, + poke_channel_deposits: { + sender: 'u32', + recipient: 'u32', + }, + establish_channel_with_system: { + targetSystemChain: 'u32' + } + } + }, + /** + * Lookup327: polkadot_parachain_primitives::primitives::HrmpChannelId + **/ + PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId: { + sender: 'u32', + recipient: 'u32' + }, + /** + * Lookup328: polkadot_runtime_parachains::disputes::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsDisputesPezpalletCall: { + _enum: ['force_unfreeze'] + }, + /** + * Lookup329: polkadot_runtime_parachains::disputes::slashing::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletCall: { + _enum: { + report_dispute_lost_unsigned: { + disputeProof: 'PezkuwiPrimitivesVstagingDisputeProof', + keyOwnerProof: 'PezspSessionMembershipProof' + } + } + }, + /** + * Lookup330: polkadot_primitives::vstaging::DisputeProof + **/ + PezkuwiPrimitivesVstagingDisputeProof: { + timeSlot: 'PezkuwiPrimitivesV8SlashingDisputesTimeSlot', + kind: 'PezkuwiPrimitivesVstagingDisputeOffenceKind', + validatorIndex: 'u32', + validatorId: 'PezkuwiPrimitivesV8ValidatorAppPublic' + }, + /** + * Lookup331: polkadot_primitives::v8::slashing::DisputesTimeSlot + **/ + PezkuwiPrimitivesV8SlashingDisputesTimeSlot: { + sessionIndex: 'u32', + candidateHash: 'H256' + }, + /** + * Lookup332: polkadot_primitives::vstaging::DisputeOffenceKind + **/ + PezkuwiPrimitivesVstagingDisputeOffenceKind: { + _enum: ['ForInvalidBacked', 'AgainstValid', 'ForInvalidApproved'] + }, + /** + * Lookup333: polkadot_runtime_parachains::on_demand::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsOnDemandPezpalletCall: { + _enum: { + place_order_allow_death: { + maxAmount: 'u128', + paraId: 'u32', + }, + place_order_keep_alive: { + maxAmount: 'u128', + paraId: 'u32', + }, + place_order_with_credits: { + maxAmount: 'u128', + paraId: 'u32' + } + } + }, + /** + * Lookup334: polkadot_runtime_common::paras_registrar::pallet::Call + **/ + PezkuwiRuntimeCommonParasRegistrarPezpalletCall: { + _enum: { + register: { + id: 'u32', + genesisHead: 'Bytes', + validationCode: 'Bytes', + }, + force_register: { + who: 'AccountId32', + deposit: 'u128', + id: 'u32', + genesisHead: 'Bytes', + validationCode: 'Bytes', + }, + deregister: { + id: 'u32', + }, + swap: { + id: 'u32', + other: 'u32', + }, + remove_lock: { + para: 'u32', + }, + reserve: 'Null', + add_lock: { + para: 'u32', + }, + schedule_code_upgrade: { + para: 'u32', + newCode: 'Bytes', + }, + set_current_head: { + para: 'u32', + newHead: 'Bytes' + } + } + }, + /** + * Lookup335: polkadot_runtime_common::slots::pallet::Call + **/ + PezkuwiRuntimeCommonSlotsPezpalletCall: { + _enum: { + force_lease: { + para: 'u32', + leaser: 'AccountId32', + amount: 'u128', + periodBegin: 'u32', + periodCount: 'u32', + }, + clear_all_leases: { + para: 'u32', + }, + trigger_onboard: { + para: 'u32' + } + } + }, + /** + * Lookup336: polkadot_runtime_common::auctions::pallet::Call + **/ + PezkuwiRuntimeCommonAuctionsPezpalletCall: { + _enum: { + new_auction: { + duration: 'Compact', + leasePeriodIndex: 'Compact', + }, + bid: { + para: 'Compact', + auctionIndex: 'Compact', + firstSlot: 'Compact', + lastSlot: 'Compact', + amount: 'Compact', + }, + cancel_auction: 'Null' + } + }, + /** + * Lookup338: polkadot_runtime_common::crowdloan::pallet::Call + **/ + PezkuwiRuntimeCommonCrowdloanPezpalletCall: { + _enum: { + create: { + index: 'Compact', + cap: 'Compact', + firstPeriod: 'Compact', + lastPeriod: 'Compact', + end: 'Compact', + verifier: 'Option', + }, + contribute: { + index: 'Compact', + value: 'Compact', + signature: 'Option', + }, + withdraw: { + who: 'AccountId32', + index: 'Compact', + }, + refund: { + index: 'Compact', + }, + dissolve: { + index: 'Compact', + }, + edit: { + index: 'Compact', + cap: 'Compact', + firstPeriod: 'Compact', + lastPeriod: 'Compact', + end: 'Compact', + verifier: 'Option', + }, + add_memo: { + index: 'u32', + memo: 'Bytes', + }, + poke: { + index: 'u32', + }, + contribute_all: { + index: 'Compact', + signature: 'Option' + } + } + }, + /** + * Lookup340: sp_runtime::MultiSigner + **/ + PezspRuntimeMultiSigner: { + _enum: { + Ed25519: '[u8;32]', + Sr25519: '[u8;32]', + Ecdsa: '[u8;33]' + } + }, + /** + * Lookup343: polkadot_runtime_parachains::coretime::pallet::Call + **/ + PezkuwiRuntimeTeyrchainsCoretimePezpalletCall: { + _enum: { + __Unused0: 'Null', + request_core_count: { + count: 'u16', + }, + request_revenue_at: { + when: 'u32', + }, + credit_account: { + who: 'AccountId32', + amount: 'u128', + }, + assign_core: { + core: 'u16', + begin: 'u32', + assignment: 'Vec<(PezpalletBrokerCoretimeInterfaceCoreAssignment,u16)>', + endHint: 'Option' + } + } + }, + /** + * Lookup354: pallet_xcm::pallet::Call + **/ + PezpalletXcmCall: { + _enum: { + send: { + dest: 'XcmVersionedLocation', + message: 'XcmVersionedXcm', + }, + teleport_assets: { + dest: 'XcmVersionedLocation', + beneficiary: 'XcmVersionedLocation', + assets: 'XcmVersionedAssets', + feeAssetItem: 'u32', + }, + reserve_transfer_assets: { + dest: 'XcmVersionedLocation', + beneficiary: 'XcmVersionedLocation', + assets: 'XcmVersionedAssets', + feeAssetItem: 'u32', + }, + execute: { + message: 'XcmVersionedXcm', + maxWeight: 'PezspWeightsWeightV2Weight', + }, + force_xcm_version: { + location: 'StagingXcmV5Location', + version: 'u32', + }, + force_default_xcm_version: { + maybeXcmVersion: 'Option', + }, + force_subscribe_version_notify: { + location: 'XcmVersionedLocation', + }, + force_unsubscribe_version_notify: { + location: 'XcmVersionedLocation', + }, + limited_reserve_transfer_assets: { + dest: 'XcmVersionedLocation', + beneficiary: 'XcmVersionedLocation', + assets: 'XcmVersionedAssets', + feeAssetItem: 'u32', + weightLimit: 'XcmV3WeightLimit', + }, + limited_teleport_assets: { + dest: 'XcmVersionedLocation', + beneficiary: 'XcmVersionedLocation', + assets: 'XcmVersionedAssets', + feeAssetItem: 'u32', + weightLimit: 'XcmV3WeightLimit', + }, + force_suspension: { + suspended: 'bool', + }, + transfer_assets: { + dest: 'XcmVersionedLocation', + beneficiary: 'XcmVersionedLocation', + assets: 'XcmVersionedAssets', + feeAssetItem: 'u32', + weightLimit: 'XcmV3WeightLimit', + }, + claim_assets: { + assets: 'XcmVersionedAssets', + beneficiary: 'XcmVersionedLocation', + }, + transfer_assets_using_type_and_then: { + dest: 'XcmVersionedLocation', + assets: 'XcmVersionedAssets', + assetsTransferType: 'StagingXcmExecutorAssetTransferTransferType', + remoteFeesId: 'XcmVersionedAssetId', + feesTransferType: 'StagingXcmExecutorAssetTransferTransferType', + customXcmOnDest: 'XcmVersionedXcm', + weightLimit: 'XcmV3WeightLimit', + }, + add_authorized_alias: { + aliaser: 'XcmVersionedLocation', + expires: 'Option', + }, + remove_authorized_alias: { + aliaser: 'XcmVersionedLocation', + }, + remove_all_authorized_aliases: 'Null' + } + }, + /** + * Lookup355: xcm::VersionedXcm + **/ + XcmVersionedXcm: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: 'XcmV3Xcm', + V4: 'StagingXcmV4Xcm', + V5: 'StagingXcmV5Xcm' + } + }, + /** + * Lookup356: xcm::v3::Xcm + **/ + XcmV3Xcm: 'Vec', + /** + * Lookup358: xcm::v3::Instruction + **/ + XcmV3Instruction: { + _enum: { + WithdrawAsset: 'XcmV3MultiassetMultiAssets', + ReserveAssetDeposited: 'XcmV3MultiassetMultiAssets', + ReceiveTeleportedAsset: 'XcmV3MultiassetMultiAssets', + QueryResponse: { + queryId: 'Compact', + response: 'XcmV3Response', + maxWeight: 'PezspWeightsWeightV2Weight', + querier: 'Option', + }, + TransferAsset: { + assets: 'XcmV3MultiassetMultiAssets', + beneficiary: 'StagingXcmV3MultiLocation', + }, + TransferReserveAsset: { + assets: 'XcmV3MultiassetMultiAssets', + dest: 'StagingXcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + Transact: { + originKind: 'XcmV3OriginKind', + requireWeightAtMost: 'PezspWeightsWeightV2Weight', + call: 'XcmDoubleEncoded', + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact', + }, + HrmpChannelAccepted: { + recipient: 'Compact', + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact', + }, + ClearOrigin: 'Null', + DescendOrigin: 'XcmV3Junctions', + ReportError: 'XcmV3QueryResponseInfo', + DepositAsset: { + assets: 'XcmV3MultiassetMultiAssetFilter', + beneficiary: 'StagingXcmV3MultiLocation', + }, + DepositReserveAsset: { + assets: 'XcmV3MultiassetMultiAssetFilter', + dest: 'StagingXcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + ExchangeAsset: { + give: 'XcmV3MultiassetMultiAssetFilter', + want: 'XcmV3MultiassetMultiAssets', + maximal: 'bool', + }, + InitiateReserveWithdraw: { + assets: 'XcmV3MultiassetMultiAssetFilter', + reserve: 'StagingXcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + InitiateTeleport: { + assets: 'XcmV3MultiassetMultiAssetFilter', + dest: 'StagingXcmV3MultiLocation', + xcm: 'XcmV3Xcm', + }, + ReportHolding: { + responseInfo: 'XcmV3QueryResponseInfo', + assets: 'XcmV3MultiassetMultiAssetFilter', + }, + BuyExecution: { + fees: 'XcmV3MultiAsset', + weightLimit: 'XcmV3WeightLimit', + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV3Xcm', + SetAppendix: 'XcmV3Xcm', + ClearError: 'Null', + ClaimAsset: { + assets: 'XcmV3MultiassetMultiAssets', + ticket: 'StagingXcmV3MultiLocation', + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'PezspWeightsWeightV2Weight', + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'XcmV3MultiassetMultiAssets', + ExpectAsset: 'XcmV3MultiassetMultiAssets', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32,XcmV3TraitsError)>', + ExpectTransactStatus: 'XcmV3MaybeErrorCode', + QueryPallet: { + moduleName: 'Bytes', + responseInfo: 'XcmV3QueryResponseInfo', + }, + ExpectPallet: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + crateMajor: 'Compact', + minCrateMinor: 'Compact', + }, + ReportTransactStatus: 'XcmV3QueryResponseInfo', + ClearTransactStatus: 'Null', + UniversalOrigin: 'XcmV3Junction', + ExportMessage: { + network: 'XcmV3JunctionNetworkId', + destination: 'XcmV3Junctions', + xcm: 'XcmV3Xcm', + }, + LockAsset: { + asset: 'XcmV3MultiAsset', + unlocker: 'StagingXcmV3MultiLocation', + }, + UnlockAsset: { + asset: 'XcmV3MultiAsset', + target: 'StagingXcmV3MultiLocation', + }, + NoteUnlockable: { + asset: 'XcmV3MultiAsset', + owner: 'StagingXcmV3MultiLocation', + }, + RequestUnlock: { + asset: 'XcmV3MultiAsset', + locker: 'StagingXcmV3MultiLocation', + }, + SetFeesMode: { + jitWithdraw: 'bool', + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'StagingXcmV3MultiLocation', + UnpaidExecution: { + weightLimit: 'XcmV3WeightLimit', + checkOrigin: 'Option' + } + } + }, + /** + * Lookup359: xcm::v3::multiasset::MultiAssets + **/ + XcmV3MultiassetMultiAssets: 'Vec', + /** + * Lookup361: xcm::v3::multiasset::MultiAsset + **/ + XcmV3MultiAsset: { + id: 'XcmV3MultiassetAssetId', + fun: 'XcmV3MultiassetFungibility' + }, + /** + * Lookup362: xcm::v3::multiasset::Fungibility + **/ + XcmV3MultiassetFungibility: { + _enum: { + Fungible: 'Compact', + NonFungible: 'XcmV3MultiassetAssetInstance' + } + }, + /** + * Lookup363: xcm::v3::multiasset::AssetInstance + **/ + XcmV3MultiassetAssetInstance: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + /** + * Lookup365: xcm::v3::Response + **/ + XcmV3Response: { + _enum: { + Null: 'Null', + Assets: 'XcmV3MultiassetMultiAssets', + ExecutionResult: 'Option<(u32,XcmV3TraitsError)>', + Version: 'u32', + PalletsInfo: 'Vec', + DispatchResult: 'XcmV3MaybeErrorCode' + } + }, + /** + * Lookup368: xcm::v3::traits::Error + **/ + XcmV3TraitsError: { + _enum: { + Overflow: 'Null', + Unimplemented: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + LocationFull: 'Null', + LocationNotInvertible: 'Null', + BadOrigin: 'Null', + InvalidLocation: 'Null', + AssetNotFound: 'Null', + FailedToTransactAsset: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + ExceedsMaxMessageSize: 'Null', + DestinationUnsupported: 'Null', + Transport: 'Null', + Unroutable: 'Null', + UnknownClaim: 'Null', + FailedToDecode: 'Null', + MaxWeightInvalid: 'Null', + NotHoldingFees: 'Null', + TooExpensive: 'Null', + Trap: 'u64', + ExpectationFalse: 'Null', + PalletNotFound: 'Null', + NameMismatch: 'Null', + VersionIncompatible: 'Null', + HoldingWouldOverflow: 'Null', + ExportError: 'Null', + ReanchorFailed: 'Null', + NoDeal: 'Null', + FeesNotMet: 'Null', + LockError: 'Null', + NoPermission: 'Null', + Unanchored: 'Null', + NotDepositable: 'Null', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'PezspWeightsWeightV2Weight', + Barrier: 'Null', + WeightNotComputable: 'Null', + ExceedsStackLimit: 'Null' + } + }, + /** + * Lookup370: xcm::v3::PalletInfo + **/ + XcmV3PezpalletInfo: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + major: 'Compact', + minor: 'Compact', + patch: 'Compact' + }, + /** + * Lookup373: xcm::v3::MaybeErrorCode + **/ + XcmV3MaybeErrorCode: { + _enum: { + Success: 'Null', + Error: 'Bytes', + TruncatedError: 'Bytes' + } + }, + /** + * Lookup376: xcm::v3::OriginKind + **/ + XcmV3OriginKind: { + _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm'] + }, + /** + * Lookup377: xcm::double_encoded::DoubleEncoded + **/ + XcmDoubleEncoded: { + encoded: 'Bytes' + }, + /** + * Lookup378: xcm::v3::QueryResponseInfo + **/ + XcmV3QueryResponseInfo: { + destination: 'StagingXcmV3MultiLocation', + queryId: 'Compact', + maxWeight: 'PezspWeightsWeightV2Weight' + }, + /** + * Lookup379: xcm::v3::multiasset::MultiAssetFilter + **/ + XcmV3MultiassetMultiAssetFilter: { + _enum: { + Definite: 'XcmV3MultiassetMultiAssets', + Wild: 'XcmV3MultiassetWildMultiAsset' + } + }, + /** + * Lookup380: xcm::v3::multiasset::WildMultiAsset + **/ + XcmV3MultiassetWildMultiAsset: { + _enum: { + All: 'Null', + AllOf: { + id: 'XcmV3MultiassetAssetId', + fun: 'XcmV3MultiassetWildFungibility', + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'XcmV3MultiassetAssetId', + fun: 'XcmV3MultiassetWildFungibility', + count: 'Compact' + } + } + }, + /** + * Lookup381: xcm::v3::multiasset::WildFungibility + **/ + XcmV3MultiassetWildFungibility: { + _enum: ['Fungible', 'NonFungible'] + }, + /** + * Lookup382: xcm::v3::WeightLimit + **/ + XcmV3WeightLimit: { + _enum: { + Unlimited: 'Null', + Limited: 'PezspWeightsWeightV2Weight' + } + }, + /** + * Lookup383: staging_xcm::v4::Xcm + **/ + StagingXcmV4Xcm: 'Vec', + /** + * Lookup385: staging_xcm::v4::Instruction + **/ + StagingXcmV4Instruction: { + _enum: { + WithdrawAsset: 'StagingXcmV4AssetAssets', + ReserveAssetDeposited: 'StagingXcmV4AssetAssets', + ReceiveTeleportedAsset: 'StagingXcmV4AssetAssets', + QueryResponse: { + queryId: 'Compact', + response: 'StagingXcmV4Response', + maxWeight: 'PezspWeightsWeightV2Weight', + querier: 'Option', + }, + TransferAsset: { + assets: 'StagingXcmV4AssetAssets', + beneficiary: 'StagingXcmV4Location', + }, + TransferReserveAsset: { + assets: 'StagingXcmV4AssetAssets', + dest: 'StagingXcmV4Location', + xcm: 'StagingXcmV4Xcm', + }, + Transact: { + originKind: 'XcmV3OriginKind', + requireWeightAtMost: 'PezspWeightsWeightV2Weight', + call: 'XcmDoubleEncoded', + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact', + }, + HrmpChannelAccepted: { + recipient: 'Compact', + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact', + }, + ClearOrigin: 'Null', + DescendOrigin: 'StagingXcmV4Junctions', + ReportError: 'StagingXcmV4QueryResponseInfo', + DepositAsset: { + assets: 'StagingXcmV4AssetAssetFilter', + beneficiary: 'StagingXcmV4Location', + }, + DepositReserveAsset: { + assets: 'StagingXcmV4AssetAssetFilter', + dest: 'StagingXcmV4Location', + xcm: 'StagingXcmV4Xcm', + }, + ExchangeAsset: { + give: 'StagingXcmV4AssetAssetFilter', + want: 'StagingXcmV4AssetAssets', + maximal: 'bool', + }, + InitiateReserveWithdraw: { + assets: 'StagingXcmV4AssetAssetFilter', + reserve: 'StagingXcmV4Location', + xcm: 'StagingXcmV4Xcm', + }, + InitiateTeleport: { + assets: 'StagingXcmV4AssetAssetFilter', + dest: 'StagingXcmV4Location', + xcm: 'StagingXcmV4Xcm', + }, + ReportHolding: { + responseInfo: 'StagingXcmV4QueryResponseInfo', + assets: 'StagingXcmV4AssetAssetFilter', + }, + BuyExecution: { + fees: 'StagingXcmV4Asset', + weightLimit: 'XcmV3WeightLimit', + }, + RefundSurplus: 'Null', + SetErrorHandler: 'StagingXcmV4Xcm', + SetAppendix: 'StagingXcmV4Xcm', + ClearError: 'Null', + ClaimAsset: { + assets: 'StagingXcmV4AssetAssets', + ticket: 'StagingXcmV4Location', + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'PezspWeightsWeightV2Weight', + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'StagingXcmV4AssetAssets', + ExpectAsset: 'StagingXcmV4AssetAssets', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32,XcmV3TraitsError)>', + ExpectTransactStatus: 'XcmV3MaybeErrorCode', + QueryPallet: { + moduleName: 'Bytes', + responseInfo: 'StagingXcmV4QueryResponseInfo', + }, + ExpectPallet: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + crateMajor: 'Compact', + minCrateMinor: 'Compact', + }, + ReportTransactStatus: 'StagingXcmV4QueryResponseInfo', + ClearTransactStatus: 'Null', + UniversalOrigin: 'StagingXcmV4Junction', + ExportMessage: { + network: 'StagingXcmV4JunctionNetworkId', + destination: 'StagingXcmV4Junctions', + xcm: 'StagingXcmV4Xcm', + }, + LockAsset: { + asset: 'StagingXcmV4Asset', + unlocker: 'StagingXcmV4Location', + }, + UnlockAsset: { + asset: 'StagingXcmV4Asset', + target: 'StagingXcmV4Location', + }, + NoteUnlockable: { + asset: 'StagingXcmV4Asset', + owner: 'StagingXcmV4Location', + }, + RequestUnlock: { + asset: 'StagingXcmV4Asset', + locker: 'StagingXcmV4Location', + }, + SetFeesMode: { + jitWithdraw: 'bool', + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'StagingXcmV4Location', + UnpaidExecution: { + weightLimit: 'XcmV3WeightLimit', + checkOrigin: 'Option' + } + } + }, + /** + * Lookup386: staging_xcm::v4::asset::Assets + **/ + StagingXcmV4AssetAssets: 'Vec', + /** + * Lookup388: staging_xcm::v4::asset::Asset + **/ + StagingXcmV4Asset: { + id: 'StagingXcmV4AssetAssetId', + fun: 'StagingXcmV4AssetFungibility' + }, + /** + * Lookup389: staging_xcm::v4::asset::Fungibility + **/ + StagingXcmV4AssetFungibility: { + _enum: { + Fungible: 'Compact', + NonFungible: 'StagingXcmV4AssetAssetInstance' + } + }, + /** + * Lookup390: staging_xcm::v4::asset::AssetInstance + **/ + StagingXcmV4AssetAssetInstance: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + /** + * Lookup391: staging_xcm::v4::Response + **/ + StagingXcmV4Response: { + _enum: { + Null: 'Null', + Assets: 'StagingXcmV4AssetAssets', + ExecutionResult: 'Option<(u32,XcmV3TraitsError)>', + Version: 'u32', + PalletsInfo: 'Vec', + DispatchResult: 'XcmV3MaybeErrorCode' + } + }, + /** + * Lookup393: staging_xcm::v4::PalletInfo + **/ + StagingXcmV4PezpalletInfo: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + major: 'Compact', + minor: 'Compact', + patch: 'Compact' + }, + /** + * Lookup397: staging_xcm::v4::QueryResponseInfo + **/ + StagingXcmV4QueryResponseInfo: { + destination: 'StagingXcmV4Location', + queryId: 'Compact', + maxWeight: 'PezspWeightsWeightV2Weight' + }, + /** + * Lookup398: staging_xcm::v4::asset::AssetFilter + **/ + StagingXcmV4AssetAssetFilter: { + _enum: { + Definite: 'StagingXcmV4AssetAssets', + Wild: 'StagingXcmV4AssetWildAsset' + } + }, + /** + * Lookup399: staging_xcm::v4::asset::WildAsset + **/ + StagingXcmV4AssetWildAsset: { + _enum: { + All: 'Null', + AllOf: { + id: 'StagingXcmV4AssetAssetId', + fun: 'StagingXcmV4AssetWildFungibility', + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'StagingXcmV4AssetAssetId', + fun: 'StagingXcmV4AssetWildFungibility', + count: 'Compact' + } + } + }, + /** + * Lookup400: staging_xcm::v4::asset::WildFungibility + **/ + StagingXcmV4AssetWildFungibility: { + _enum: ['Fungible', 'NonFungible'] + }, + /** + * Lookup401: staging_xcm::v5::Xcm + **/ + StagingXcmV5Xcm: 'Vec', + /** + * Lookup403: staging_xcm::v5::Instruction + **/ + StagingXcmV5Instruction: { + _enum: { + WithdrawAsset: 'StagingXcmV5AssetAssets', + ReserveAssetDeposited: 'StagingXcmV5AssetAssets', + ReceiveTeleportedAsset: 'StagingXcmV5AssetAssets', + QueryResponse: { + queryId: 'Compact', + response: 'StagingXcmV5Response', + maxWeight: 'PezspWeightsWeightV2Weight', + querier: 'Option', + }, + TransferAsset: { + assets: 'StagingXcmV5AssetAssets', + beneficiary: 'StagingXcmV5Location', + }, + TransferReserveAsset: { + assets: 'StagingXcmV5AssetAssets', + dest: 'StagingXcmV5Location', + xcm: 'StagingXcmV5Xcm', + }, + Transact: { + originKind: 'XcmV3OriginKind', + fallbackMaxWeight: 'Option', + call: 'XcmDoubleEncoded', + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact', + }, + HrmpChannelAccepted: { + recipient: 'Compact', + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact', + }, + ClearOrigin: 'Null', + DescendOrigin: 'StagingXcmV5Junctions', + ReportError: 'StagingXcmV5QueryResponseInfo', + DepositAsset: { + assets: 'StagingXcmV5AssetAssetFilter', + beneficiary: 'StagingXcmV5Location', + }, + DepositReserveAsset: { + assets: 'StagingXcmV5AssetAssetFilter', + dest: 'StagingXcmV5Location', + xcm: 'StagingXcmV5Xcm', + }, + ExchangeAsset: { + give: 'StagingXcmV5AssetAssetFilter', + want: 'StagingXcmV5AssetAssets', + maximal: 'bool', + }, + InitiateReserveWithdraw: { + assets: 'StagingXcmV5AssetAssetFilter', + reserve: 'StagingXcmV5Location', + xcm: 'StagingXcmV5Xcm', + }, + InitiateTeleport: { + assets: 'StagingXcmV5AssetAssetFilter', + dest: 'StagingXcmV5Location', + xcm: 'StagingXcmV5Xcm', + }, + ReportHolding: { + responseInfo: 'StagingXcmV5QueryResponseInfo', + assets: 'StagingXcmV5AssetAssetFilter', + }, + BuyExecution: { + fees: 'StagingXcmV5Asset', + weightLimit: 'XcmV3WeightLimit', + }, + RefundSurplus: 'Null', + SetErrorHandler: 'StagingXcmV5Xcm', + SetAppendix: 'StagingXcmV5Xcm', + ClearError: 'Null', + ClaimAsset: { + assets: 'StagingXcmV5AssetAssets', + ticket: 'StagingXcmV5Location', + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'PezspWeightsWeightV2Weight', + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'StagingXcmV5AssetAssets', + ExpectAsset: 'StagingXcmV5AssetAssets', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32,XcmV5TraitsError)>', + ExpectTransactStatus: 'XcmV3MaybeErrorCode', + QueryPallet: { + moduleName: 'Bytes', + responseInfo: 'StagingXcmV5QueryResponseInfo', + }, + ExpectPallet: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + crateMajor: 'Compact', + minCrateMinor: 'Compact', + }, + ReportTransactStatus: 'StagingXcmV5QueryResponseInfo', + ClearTransactStatus: 'Null', + UniversalOrigin: 'StagingXcmV5Junction', + ExportMessage: { + network: 'StagingXcmV5JunctionNetworkId', + destination: 'StagingXcmV5Junctions', + xcm: 'StagingXcmV5Xcm', + }, + LockAsset: { + asset: 'StagingXcmV5Asset', + unlocker: 'StagingXcmV5Location', + }, + UnlockAsset: { + asset: 'StagingXcmV5Asset', + target: 'StagingXcmV5Location', + }, + NoteUnlockable: { + asset: 'StagingXcmV5Asset', + owner: 'StagingXcmV5Location', + }, + RequestUnlock: { + asset: 'StagingXcmV5Asset', + locker: 'StagingXcmV5Location', + }, + SetFeesMode: { + jitWithdraw: 'bool', + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'StagingXcmV5Location', + UnpaidExecution: { + weightLimit: 'XcmV3WeightLimit', + checkOrigin: 'Option', + }, + PayFees: { + asset: 'StagingXcmV5Asset', + }, + InitiateTransfer: { + destination: 'StagingXcmV5Location', + remoteFees: 'Option', + preserveOrigin: 'bool', + assets: 'Vec', + remoteXcm: 'StagingXcmV5Xcm', + }, + ExecuteWithOrigin: { + descendantOrigin: 'Option', + xcm: 'StagingXcmV5Xcm', + }, + SetHints: { + hints: 'Vec' + } + } + }, + /** + * Lookup404: staging_xcm::v5::asset::Assets + **/ + StagingXcmV5AssetAssets: 'Vec', + /** + * Lookup406: staging_xcm::v5::asset::Asset + **/ + StagingXcmV5Asset: { + id: 'StagingXcmV5AssetAssetId', + fun: 'StagingXcmV5AssetFungibility' + }, + /** + * Lookup407: staging_xcm::v5::asset::Fungibility + **/ + StagingXcmV5AssetFungibility: { + _enum: { + Fungible: 'Compact', + NonFungible: 'StagingXcmV5AssetAssetInstance' + } + }, + /** + * Lookup408: staging_xcm::v5::asset::AssetInstance + **/ + StagingXcmV5AssetAssetInstance: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + /** + * Lookup409: staging_xcm::v5::Response + **/ + StagingXcmV5Response: { + _enum: { + Null: 'Null', + Assets: 'StagingXcmV5AssetAssets', + ExecutionResult: 'Option<(u32,XcmV5TraitsError)>', + Version: 'u32', + PalletsInfo: 'Vec', + DispatchResult: 'XcmV3MaybeErrorCode' + } + }, + /** + * Lookup412: xcm::v5::traits::Error + **/ + XcmV5TraitsError: { + _enum: { + Overflow: 'Null', + Unimplemented: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + LocationFull: 'Null', + LocationNotInvertible: 'Null', + BadOrigin: 'Null', + InvalidLocation: 'Null', + AssetNotFound: 'Null', + FailedToTransactAsset: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + ExceedsMaxMessageSize: 'Null', + DestinationUnsupported: 'Null', + Transport: 'Null', + Unroutable: 'Null', + UnknownClaim: 'Null', + FailedToDecode: 'Null', + MaxWeightInvalid: 'Null', + NotHoldingFees: 'Null', + TooExpensive: 'Null', + Trap: 'u64', + ExpectationFalse: 'Null', + PalletNotFound: 'Null', + NameMismatch: 'Null', + VersionIncompatible: 'Null', + HoldingWouldOverflow: 'Null', + ExportError: 'Null', + ReanchorFailed: 'Null', + NoDeal: 'Null', + FeesNotMet: 'Null', + LockError: 'Null', + NoPermission: 'Null', + Unanchored: 'Null', + NotDepositable: 'Null', + TooManyAssets: 'Null', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'PezspWeightsWeightV2Weight', + Barrier: 'Null', + WeightNotComputable: 'Null', + ExceedsStackLimit: 'Null' + } + }, + /** + * Lookup414: staging_xcm::v5::PalletInfo + **/ + StagingXcmV5PezpalletInfo: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + major: 'Compact', + minor: 'Compact', + patch: 'Compact' + }, + /** + * Lookup419: staging_xcm::v5::QueryResponseInfo + **/ + StagingXcmV5QueryResponseInfo: { + destination: 'StagingXcmV5Location', + queryId: 'Compact', + maxWeight: 'PezspWeightsWeightV2Weight' + }, + /** + * Lookup420: staging_xcm::v5::asset::AssetFilter + **/ + StagingXcmV5AssetAssetFilter: { + _enum: { + Definite: 'StagingXcmV5AssetAssets', + Wild: 'StagingXcmV5AssetWildAsset' + } + }, + /** + * Lookup421: staging_xcm::v5::asset::WildAsset + **/ + StagingXcmV5AssetWildAsset: { + _enum: { + All: 'Null', + AllOf: { + id: 'StagingXcmV5AssetAssetId', + fun: 'StagingXcmV5AssetWildFungibility', + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'StagingXcmV5AssetAssetId', + fun: 'StagingXcmV5AssetWildFungibility', + count: 'Compact' + } + } + }, + /** + * Lookup422: staging_xcm::v5::asset::WildFungibility + **/ + StagingXcmV5AssetWildFungibility: { + _enum: ['Fungible', 'NonFungible'] + }, + /** + * Lookup424: staging_xcm::v5::asset::AssetTransferFilter + **/ + StagingXcmV5AssetAssetTransferFilter: { + _enum: { + Teleport: 'StagingXcmV5AssetAssetFilter', + ReserveDeposit: 'StagingXcmV5AssetAssetFilter', + ReserveWithdraw: 'StagingXcmV5AssetAssetFilter' + } + }, + /** + * Lookup429: staging_xcm::v5::Hint + **/ + StagingXcmV5Hint: { + _enum: { + AssetClaimer: { + location: 'StagingXcmV5Location' + } + } + }, + /** + * Lookup431: xcm::VersionedAssets + **/ + XcmVersionedAssets: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: 'XcmV3MultiassetMultiAssets', + V4: 'StagingXcmV4AssetAssets', + V5: 'StagingXcmV5AssetAssets' + } + }, + /** + * Lookup443: staging_xcm_executor::traits::asset_transfer::TransferType + **/ + StagingXcmExecutorAssetTransferTransferType: { + _enum: { + Teleport: 'Null', + LocalReserve: 'Null', + DestinationReserve: 'Null', + RemoteReserve: 'XcmVersionedLocation' + } + }, + /** + * Lookup444: xcm::VersionedAssetId + **/ + XcmVersionedAssetId: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: 'XcmV3MultiassetAssetId', + V4: 'StagingXcmV4AssetAssetId', + V5: 'StagingXcmV5AssetAssetId' + } + }, + /** + * Lookup447: polkadot_runtime_parachains::inclusion::AggregateMessageOrigin + **/ + PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin: { + _enum: { + Ump: 'PezkuwiRuntimeTeyrchainsInclusionUmpQueueId' + } + }, + /** + * Lookup448: polkadot_runtime_parachains::inclusion::UmpQueueId + **/ + PezkuwiRuntimeTeyrchainsInclusionUmpQueueId: { + _enum: { + Para: 'u32' + } + }, + /** + * Lookup465: pallet_rc_migrator::pallet::Call + **/ + PezpalletRcMigratorCall: { + _enum: { + force_set_stage: { + stage: 'PezpalletRcMigratorMigrationStage', + }, + schedule_migration: { + start: 'PezframeSupportScheduleDispatchTime', + warmUp: 'PezframeSupportScheduleDispatchTime', + coolOff: 'PezframeSupportScheduleDispatchTime', + unsafeIgnoreStakingLockCheck: 'bool', + }, + start_data_migration: 'Null', + receive_query_response: { + queryId: 'u64', + response: 'StagingXcmV5Response', + }, + resend_xcm: { + queryId: 'u64', + }, + set_unprocessed_msg_buffer: { + _alias: { + new_: 'new', + }, + new_: 'Option', + }, + set_ah_ump_queue_priority: { + _alias: { + new_: 'new', + }, + new_: 'PezpalletRcMigratorQueuePriority', + }, + set_manager: { + _alias: { + new_: 'new', + }, + new_: 'Option', + }, + send_xcm_message: { + dest: 'XcmVersionedLocation', + message: 'XcmVersionedXcm', + }, + preserve_accounts: { + accounts: 'Vec', + }, + set_canceller: { + _alias: { + new_: 'new', + }, + new_: 'Option', + }, + pause_migration: 'Null', + cancel_migration: 'Null', + vote_manager_multisig: { + payload: 'PezpalletRcMigratorManagerMultisigVote', + sig: 'PezspRuntimeMultiSignature', + }, + set_settings: { + settings: 'Option' + } + } + }, + /** + * Lookup466: pallet_rc_migrator::MigrationStage + **/ + PezpalletRcMigratorMigrationStage: { + _enum: { + Pending: 'Null', + MigrationPaused: 'Null', + Scheduled: { + start: 'u32', + }, + WaitingForAh: 'Null', + WarmUp: { + endAt: 'u32', + }, + Starting: 'Null', + PureProxyCandidatesMigrationInit: 'Null', + AccountsMigrationInit: 'Null', + AccountsMigrationOngoing: { + lastKey: 'Option', + }, + AccountsMigrationDone: 'Null', + MultisigMigrationInit: 'Null', + MultisigMigrationOngoing: { + lastKey: 'Option<(AccountId32,[u8;32])>', + }, + MultisigMigrationDone: 'Null', + ClaimsMigrationInit: 'Null', + ClaimsMigrationOngoing: { + currentKey: 'Option', + }, + ClaimsMigrationDone: 'Null', + ProxyMigrationInit: 'Null', + ProxyMigrationProxies: { + lastKey: 'Option', + }, + ProxyMigrationAnnouncements: { + lastKey: 'Option', + }, + ProxyMigrationDone: 'Null', + PreimageMigrationInit: 'Null', + PreimageMigrationChunksOngoing: { + lastKey: 'Option<((H256,u32),u32)>', + }, + PreimageMigrationChunksDone: 'Null', + PreimageMigrationRequestStatusOngoing: { + nextKey: 'Option', + }, + PreimageMigrationRequestStatusDone: 'Null', + PreimageMigrationLegacyRequestStatusInit: 'Null', + PreimageMigrationLegacyRequestStatusOngoing: { + nextKey: 'Option', + }, + PreimageMigrationLegacyRequestStatusDone: 'Null', + PreimageMigrationDone: 'Null', + NomPoolsMigrationInit: 'Null', + NomPoolsMigrationOngoing: { + nextKey: 'Option', + }, + NomPoolsMigrationDone: 'Null', + VestingMigrationInit: 'Null', + VestingMigrationOngoing: { + nextKey: 'Option', + }, + VestingMigrationDone: 'Null', + DelegatedStakingMigrationInit: 'Null', + DelegatedStakingMigrationOngoing: { + nextKey: 'Option', + }, + DelegatedStakingMigrationDone: 'Null', + IndicesMigrationInit: 'Null', + IndicesMigrationOngoing: { + nextKey: 'Option', + }, + IndicesMigrationDone: 'Null', + ReferendaMigrationInit: 'Null', + ReferendaMigrationOngoing: { + lastKey: 'Option', + }, + ReferendaMigrationDone: 'Null', + BagsListMigrationInit: 'Null', + BagsListMigrationOngoing: { + nextKey: 'Option', + }, + BagsListMigrationDone: 'Null', + SchedulerMigrationInit: 'Null', + SchedulerMigrationOngoing: { + lastKey: 'Option', + }, + SchedulerAgendaMigrationOngoing: { + lastKey: 'Option', + }, + SchedulerMigrationDone: 'Null', + ConvictionVotingMigrationInit: 'Null', + ConvictionVotingMigrationOngoing: { + lastKey: 'Option', + }, + ConvictionVotingMigrationDone: 'Null', + BountiesMigrationInit: 'Null', + BountiesMigrationOngoing: { + lastKey: 'Option', + }, + BountiesMigrationDone: 'Null', + ChildBountiesMigrationInit: 'Null', + ChildBountiesMigrationOngoing: { + lastKey: 'Option', + }, + ChildBountiesMigrationDone: 'Null', + AssetRateMigrationInit: 'Null', + AssetRateMigrationOngoing: { + lastKey: 'Option', + }, + AssetRateMigrationDone: 'Null', + CrowdloanMigrationInit: 'Null', + CrowdloanMigrationOngoing: { + lastKey: 'Option', + }, + CrowdloanMigrationDone: 'Null', + TreasuryMigrationInit: 'Null', + TreasuryMigrationOngoing: { + lastKey: 'Option', + }, + TreasuryMigrationDone: 'Null', + StakingMigrationInit: 'Null', + StakingMigrationOngoing: { + nextKey: 'Option', + }, + StakingMigrationDone: 'Null', + CoolOff: { + endAt: 'u32', + }, + SignalMigrationFinish: 'Null', + MigrationDone: 'Null' + } + }, + /** + * Lookup470: pallet_rc_migrator::claims::ClaimsStage + **/ + PezpalletRcMigratorClaimsClaimsStage: { + _enum: { + StorageValues: 'Null', + Claims: 'Option', + Vesting: 'Option', + Signing: 'Option', + Preclaims: 'Option', + Finished: 'Null' + } + }, + /** + * Lookup476: pallet_rc_migrator::staking::nom_pools::NomPoolsStage + **/ + PezpalletRcMigratorStakingNomPoolsNomPoolsStage: { + _enum: { + StorageValues: 'Null', + PoolMembers: 'Option', + BondedPools: 'Option', + RewardPools: 'Option', + SubPoolsStorage: 'Option', + Metadata: 'Option', + ReversePoolIdLookup: 'Option', + ClaimPermissions: 'Option', + Finished: 'Null' + } + }, + /** + * Lookup478: pallet_rc_migrator::staking::delegated_staking::DelegatedStakingStage + **/ + PezpalletRcMigratorStakingDelegatedStakingDelegatedStakingStage: { + _enum: { + Delegators: 'Option', + Agents: 'Option', + Finished: 'Null' + } + }, + /** + * Lookup481: pallet_rc_migrator::referenda::ReferendaStage + **/ + PezpalletRcMigratorReferendaReferendaStage: { + _enum: { + StorageValues: 'Null', + Metadata: 'Option', + ReferendumInfo: 'Option' + } + }, + /** + * Lookup483: pallet_rc_migrator::staking::bags_list::BagsListStage + **/ + PezpalletRcMigratorStakingBagsListBagsListStage: { + _enum: { + ListNodes: 'Option', + ListBags: 'Option', + Finished: 'Null' + } + }, + /** + * Lookup485: pallet_rc_migrator::scheduler::SchedulerStage + **/ + PezpalletRcMigratorSchedulerSchedulerStage: { + _enum: { + IncompleteSince: 'Null', + Retries: 'Option<(u32,u32)>', + Lookup: 'Option<[u8;32]>', + Finished: 'Null' + } + }, + /** + * Lookup487: pallet_rc_migrator::conviction_voting::ConvictionVotingStage + **/ + PezpalletRcMigratorConvictionVotingConvictionVotingStage: { + _enum: { + VotingFor: 'Option<(AccountId32,u16)>', + ClassLocksFor: 'Option', + Finished: 'Null' + } + }, + /** + * Lookup491: pallet_rc_migrator::bounties::BountiesStage + **/ + PezpalletRcMigratorBountiesBountiesStage: { + _enum: { + BountyCount: 'Null', + BountyApprovals: 'Null', + BountyDescriptions: { + lastKey: 'Option', + }, + Bounties: { + lastKey: 'Option', + }, + Finished: 'Null' + } + }, + /** + * Lookup493: pallet_rc_migrator::child_bounties::ChildBountiesStage + **/ + PezpalletRcMigratorChildBountiesChildBountiesStage: { + _enum: { + ChildBountyCount: 'Null', + ParentChildBounties: { + parentId: 'Option', + }, + ParentTotalChildBounties: { + parentId: 'Option', + }, + ChildBounties: { + ids: 'Option<(u32,u32)>', + }, + ChildBountyDescriptionsV1: { + ids: 'Option<(u32,u32)>', + }, + V0ToV1ChildBountyIds: { + childId: 'Option', + }, + ChildrenCuratorFees: { + childId: 'Option', + }, + Finished: 'Null' + } + }, + /** + * Lookup496: pallet_rc_migrator::crowdloan::CrowdloanStage + **/ + PezpalletRcMigratorCrowdloanCrowdloanStage: { + _enum: { + Setup: 'Null', + LeaseReserve: { + lastKey: 'Option', + }, + CrowdloanContribution: { + lastKey: 'Option', + }, + CrowdloanReserve: 'Null', + Finished: 'Null' + } + }, + /** + * Lookup499: pallet_rc_migrator::treasury::TreasuryStage + **/ + PezpalletRcMigratorTreasuryTreasuryStage: { + _enum: { + ProposalCount: 'Null', + Proposals: 'Option', + Approvals: 'Null', + SpendCount: 'Null', + Spends: 'Option', + LastSpendPeriod: 'Null', + Funds: 'Null', + Finished: 'Null' + } + }, + /** + * Lookup501: pallet_rc_migrator::staking::staking_impl::StakingStage + **/ + PezpalletRcMigratorStakingStakingImplStakingStage: { + _enum: { + Values: 'Null', + Invulnerables: 'Null', + Bonded: 'Option', + Ledger: 'Option', + Payee: 'Option', + Validators: 'Option', + Nominators: 'Option', + VirtualStakers: 'Option', + ErasStakersOverview: 'Option<(u32,AccountId32)>', + ErasStakersPaged: 'Option<(u32,AccountId32,u32)>', + ClaimedRewards: 'Option<(u32,AccountId32)>', + ErasValidatorPrefs: 'Option<(u32,AccountId32)>', + ErasValidatorReward: 'Option', + ErasRewardPoints: 'Option', + ErasTotalStake: 'Option', + UnappliedSlashes: 'Option', + BondedEras: 'Null', + ValidatorSlashInEra: 'Option<(u32,AccountId32)>', + NominatorSlashInEra: 'Option<(u32,AccountId32)>', + SlashingSpans: 'Option', + SpanSlash: 'Option<(AccountId32,u32)>', + Finished: 'Null' + } + }, + /** + * Lookup508: pallet_rc_migrator::types::QueuePriority + **/ + PezpalletRcMigratorQueuePriority: { + _enum: { + Config: 'Null', + OverrideConfig: '(u32,u32)', + Disabled: 'Null' + } + }, + /** + * Lookup509: pallet_rc_migrator::pallet::ManagerMultisigVote + **/ + PezpalletRcMigratorManagerMultisigVote: { + who: 'PezspRuntimeMultiSigner', + call: 'RuntimeCall', + round: 'u32' + }, + /** + * Lookup511: pallet_rc_migrator::MigrationSettings + **/ + PezpalletRcMigratorMigrationSettings: { + maxAccountsPerBlock: 'Option', + maxItemsPerBlock: 'Option' + }, + /** + * Lookup519: polkadot_runtime_common::claims::pallet::Event + **/ + PezkuwiRuntimeCommonClaimsPezpalletEvent: { + _enum: { + Claimed: { + who: 'AccountId32', + ethereumAddress: 'PezkuwiRuntimeCommonClaimsEthereumAddress', + amount: 'u128' + } + } + }, + /** + * Lookup536: pallet_staking_async_ah_client::pallet::Event + **/ + PezpalletStakingAsyncAhClientEvent: { + _enum: { + ValidatorSetReceived: { + id: 'u32', + newValidatorSetCount: 'u32', + pruneUpTo: 'Option', + leftover: 'bool', + }, + CouldNotMergeAndDropped: 'Null', + SetTooSmallAndDropped: 'Null', + Unexpected: 'PezpalletStakingAsyncAhClientUnexpectedKind' + } + }, + /** + * Lookup537: pallet_staking_async_ah_client::pallet::UnexpectedKind + **/ + PezpalletStakingAsyncAhClientUnexpectedKind: { + _enum: ['ReceivedValidatorSetWhilePassive', 'UnexpectedModeTransition', 'SessionReportSendFailed', 'SessionReportDropped', 'OffenceSendFailed', 'ValidatorPointDropped'] + }, + /** + * Lookup538: polkadot_runtime_parachains::inclusion::pallet::Event + **/ + PezkuwiRuntimeTeyrchainsInclusionPezpalletEvent: { + _enum: { + CandidateBacked: '(PezkuwiPrimitivesVstagingCandidateReceiptV2,Bytes,u32,u32)', + CandidateIncluded: '(PezkuwiPrimitivesVstagingCandidateReceiptV2,Bytes,u32,u32)', + CandidateTimedOut: '(PezkuwiPrimitivesVstagingCandidateReceiptV2,Bytes,u32)', + UpwardMessagesReceived: { + from: 'u32', + count: 'u32' + } + } + }, + /** + * Lookup539: polkadot_primitives::vstaging::CandidateReceiptV2 + **/ + PezkuwiPrimitivesVstagingCandidateReceiptV2: { + descriptor: 'PezkuwiPrimitivesVstagingCandidateDescriptorV2', + commitmentsHash: 'H256' + }, + /** + * Lookup542: polkadot_runtime_parachains::paras::pallet::Event + **/ + PezkuwiRuntimeTeyrchainsParasPezpalletEvent: { + _enum: { + CurrentCodeUpdated: 'u32', + CurrentHeadUpdated: 'u32', + CodeUpgradeScheduled: 'u32', + NewHeadNoted: 'u32', + ActionQueued: '(u32,u32)', + PvfCheckStarted: '(H256,u32)', + PvfCheckAccepted: '(H256,u32)', + PvfCheckRejected: '(H256,u32)', + UpgradeCooldownRemoved: { + paraId: 'u32', + }, + CodeAuthorized: { + paraId: 'u32', + codeHash: 'H256', + expireAt: 'u32' + } + } + }, + /** + * Lookup543: polkadot_runtime_parachains::hrmp::pallet::Event + **/ + PezkuwiRuntimeTeyrchainsHrmpPezpalletEvent: { + _enum: { + OpenChannelRequested: { + sender: 'u32', + recipient: 'u32', + proposedMaxCapacity: 'u32', + proposedMaxMessageSize: 'u32', + }, + OpenChannelCanceled: { + byParachain: 'u32', + channelId: 'PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId', + }, + OpenChannelAccepted: { + sender: 'u32', + recipient: 'u32', + }, + ChannelClosed: { + byParachain: 'u32', + channelId: 'PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId', + }, + HrmpChannelForceOpened: { + sender: 'u32', + recipient: 'u32', + proposedMaxCapacity: 'u32', + proposedMaxMessageSize: 'u32', + }, + HrmpSystemChannelOpened: { + sender: 'u32', + recipient: 'u32', + proposedMaxCapacity: 'u32', + proposedMaxMessageSize: 'u32', + }, + OpenChannelDepositsUpdated: { + sender: 'u32', + recipient: 'u32' + } + } + }, + /** + * Lookup544: polkadot_runtime_parachains::disputes::pallet::Event + **/ + PezkuwiRuntimeTeyrchainsDisputesPezpalletEvent: { + _enum: { + DisputeInitiated: '(H256,PezkuwiRuntimeTeyrchainsDisputesDisputeLocation)', + DisputeConcluded: '(H256,PezkuwiRuntimeTeyrchainsDisputesDisputeResult)', + Revert: 'u32' + } + }, + /** + * Lookup545: polkadot_runtime_parachains::disputes::DisputeLocation + **/ + PezkuwiRuntimeTeyrchainsDisputesDisputeLocation: { + _enum: ['Local', 'Remote'] + }, + /** + * Lookup546: polkadot_runtime_parachains::disputes::DisputeResult + **/ + PezkuwiRuntimeTeyrchainsDisputesDisputeResult: { + _enum: ['Valid', 'Invalid'] + }, + /** + * Lookup547: polkadot_runtime_parachains::on_demand::pallet::Event + **/ + PezkuwiRuntimeTeyrchainsOnDemandPezpalletEvent: { + _enum: { + OnDemandOrderPlaced: { + paraId: 'u32', + spotPrice: 'u128', + orderedBy: 'AccountId32', + }, + SpotPriceSet: { + spotPrice: 'u128', + }, + AccountCredited: { + who: 'AccountId32', + amount: 'u128' + } + } + }, + /** + * Lookup548: polkadot_runtime_common::paras_registrar::pallet::Event + **/ + PezkuwiRuntimeCommonParasRegistrarPezpalletEvent: { + _enum: { + Registered: { + paraId: 'u32', + manager: 'AccountId32', + }, + Deregistered: { + paraId: 'u32', + }, + Reserved: { + paraId: 'u32', + who: 'AccountId32', + }, + Swapped: { + paraId: 'u32', + otherId: 'u32' + } + } + }, + /** + * Lookup549: polkadot_runtime_common::slots::pallet::Event + **/ + PezkuwiRuntimeCommonSlotsPezpalletEvent: { + _enum: { + NewLeasePeriod: { + leasePeriod: 'u32', + }, + Leased: { + paraId: 'u32', + leaser: 'AccountId32', + periodBegin: 'u32', + periodCount: 'u32', + extraReserved: 'u128', + totalAmount: 'u128' + } + } + }, + /** + * Lookup550: polkadot_runtime_common::auctions::pallet::Event + **/ + PezkuwiRuntimeCommonAuctionsPezpalletEvent: { + _enum: { + AuctionStarted: { + auctionIndex: 'u32', + leasePeriod: 'u32', + ending: 'u32', + }, + AuctionClosed: { + auctionIndex: 'u32', + }, + Reserved: { + bidder: 'AccountId32', + extraReserved: 'u128', + totalAmount: 'u128', + }, + Unreserved: { + bidder: 'AccountId32', + amount: 'u128', + }, + ReserveConfiscated: { + paraId: 'u32', + leaser: 'AccountId32', + amount: 'u128', + }, + BidAccepted: { + bidder: 'AccountId32', + paraId: 'u32', + amount: 'u128', + firstSlot: 'u32', + lastSlot: 'u32', + }, + WinningOffset: { + auctionIndex: 'u32', + blockNumber: 'u32' + } + } + }, + /** + * Lookup551: polkadot_runtime_common::crowdloan::pallet::Event + **/ + PezkuwiRuntimeCommonCrowdloanPezpalletEvent: { + _enum: { + Created: { + paraId: 'u32', + }, + Contributed: { + who: 'AccountId32', + fundIndex: 'u32', + amount: 'u128', + }, + Withdrew: { + who: 'AccountId32', + fundIndex: 'u32', + amount: 'u128', + }, + PartiallyRefunded: { + paraId: 'u32', + }, + AllRefunded: { + paraId: 'u32', + }, + Dissolved: { + paraId: 'u32', + }, + HandleBidResult: { + paraId: 'u32', + result: 'Result', + }, + Edited: { + paraId: 'u32', + }, + MemoUpdated: { + who: 'AccountId32', + paraId: 'u32', + memo: 'Bytes', + }, + AddedToNewRaise: { + paraId: 'u32' + } + } + }, + /** + * Lookup552: polkadot_runtime_parachains::coretime::pallet::Event + **/ + PezkuwiRuntimeTeyrchainsCoretimePezpalletEvent: { + _enum: { + RevenueInfoRequested: { + when: 'u32', + }, + CoreAssigned: { + core: 'u32' + } + } + }, + /** + * Lookup556: pallet_xcm::pallet::Event + **/ + PezpalletXcmEvent: { + _enum: { + Attempted: { + outcome: 'StagingXcmV5TraitsOutcome', + }, + Sent: { + origin: 'StagingXcmV5Location', + destination: 'StagingXcmV5Location', + message: 'StagingXcmV5Xcm', + messageId: '[u8;32]', + }, + SendFailed: { + origin: 'StagingXcmV5Location', + destination: 'StagingXcmV5Location', + error: 'XcmV3TraitsSendError', + messageId: '[u8;32]', + }, + ProcessXcmError: { + origin: 'StagingXcmV5Location', + error: 'XcmV5TraitsError', + messageId: '[u8;32]', + }, + UnexpectedResponse: { + origin: 'StagingXcmV5Location', + queryId: 'u64', + }, + ResponseReady: { + queryId: 'u64', + response: 'StagingXcmV5Response', + }, + Notified: { + queryId: 'u64', + palletIndex: 'u8', + callIndex: 'u8', + }, + NotifyOverweight: { + queryId: 'u64', + palletIndex: 'u8', + callIndex: 'u8', + actualWeight: 'PezspWeightsWeightV2Weight', + maxBudgetedWeight: 'PezspWeightsWeightV2Weight', + }, + NotifyDispatchError: { + queryId: 'u64', + palletIndex: 'u8', + callIndex: 'u8', + }, + NotifyDecodeFailed: { + queryId: 'u64', + palletIndex: 'u8', + callIndex: 'u8', + }, + InvalidResponder: { + origin: 'StagingXcmV5Location', + queryId: 'u64', + expectedLocation: 'Option', + }, + InvalidResponderVersion: { + origin: 'StagingXcmV5Location', + queryId: 'u64', + }, + ResponseTaken: { + queryId: 'u64', + }, + AssetsTrapped: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + origin: 'StagingXcmV5Location', + assets: 'XcmVersionedAssets', + }, + VersionChangeNotified: { + destination: 'StagingXcmV5Location', + result: 'u32', + cost: 'StagingXcmV5AssetAssets', + messageId: '[u8;32]', + }, + SupportedVersionChanged: { + location: 'StagingXcmV5Location', + version: 'u32', + }, + NotifyTargetSendFail: { + location: 'StagingXcmV5Location', + queryId: 'u64', + error: 'XcmV5TraitsError', + }, + NotifyTargetMigrationFail: { + location: 'XcmVersionedLocation', + queryId: 'u64', + }, + InvalidQuerierVersion: { + origin: 'StagingXcmV5Location', + queryId: 'u64', + }, + InvalidQuerier: { + origin: 'StagingXcmV5Location', + queryId: 'u64', + expectedQuerier: 'StagingXcmV5Location', + maybeActualQuerier: 'Option', + }, + VersionNotifyStarted: { + destination: 'StagingXcmV5Location', + cost: 'StagingXcmV5AssetAssets', + messageId: '[u8;32]', + }, + VersionNotifyRequested: { + destination: 'StagingXcmV5Location', + cost: 'StagingXcmV5AssetAssets', + messageId: '[u8;32]', + }, + VersionNotifyUnrequested: { + destination: 'StagingXcmV5Location', + cost: 'StagingXcmV5AssetAssets', + messageId: '[u8;32]', + }, + FeesPaid: { + paying: 'StagingXcmV5Location', + fees: 'StagingXcmV5AssetAssets', + }, + AssetsClaimed: { + _alias: { + hash_: 'hash', + }, + hash_: 'H256', + origin: 'StagingXcmV5Location', + assets: 'XcmVersionedAssets', + }, + VersionMigrationFinished: { + version: 'u32', + }, + AliasAuthorized: { + aliaser: 'StagingXcmV5Location', + target: 'StagingXcmV5Location', + expiry: 'Option', + }, + AliasAuthorizationRemoved: { + aliaser: 'StagingXcmV5Location', + target: 'StagingXcmV5Location', + }, + AliasesAuthorizationsRemoved: { + target: 'StagingXcmV5Location' + } + } + }, + /** + * Lookup557: staging_xcm::v5::traits::Outcome + **/ + StagingXcmV5TraitsOutcome: { + _enum: { + Complete: { + used: 'PezspWeightsWeightV2Weight', + }, + Incomplete: { + used: 'PezspWeightsWeightV2Weight', + error: 'StagingXcmV5TraitsInstructionError', + }, + Error: 'StagingXcmV5TraitsInstructionError' + } + }, + /** + * Lookup558: staging_xcm::v5::traits::InstructionError + **/ + StagingXcmV5TraitsInstructionError: { + index: 'u8', + error: 'XcmV5TraitsError' + }, + /** + * Lookup559: xcm::v3::traits::SendError + **/ + XcmV3TraitsSendError: { + _enum: ['NotApplicable', 'Transport', 'Unroutable', 'DestinationUnsupported', 'ExceedsMaxMessageSize', 'MissingArgument', 'Fees'] + }, + /** + * Lookup563: pallet_rc_migrator::pallet::Event + **/ + PezpalletRcMigratorEvent: { + _enum: { + StageTransition: { + _alias: { + new_: 'new', + }, + old: 'PezpalletRcMigratorMigrationStage', + new_: 'PezpalletRcMigratorMigrationStage', + }, + AssetHubMigrationStarted: 'Null', + AssetHubMigrationFinished: 'Null', + QueryResponseReceived: { + queryId: 'u64', + response: 'XcmV3MaybeErrorCode', + }, + XcmResendAttempt: { + queryId: 'u64', + sendError: 'Option', + }, + UnprocessedMsgBufferSet: { + _alias: { + new_: 'new', + }, + new_: 'u32', + old: 'u32', + }, + AhUmpQueuePrioritySet: { + prioritized: 'bool', + cycleBlock: 'u32', + cyclePeriod: 'u32', + }, + AhUmpQueuePriorityConfigSet: { + _alias: { + new_: 'new', + }, + old: 'PezpalletRcMigratorQueuePriority', + new_: 'PezpalletRcMigratorQueuePriority', + }, + MigratedBalanceRecordSet: { + kept: 'u128', + migrated: 'u128', + }, + MigratedBalanceConsumed: { + kept: 'u128', + migrated: 'u128', + }, + ManagerSet: { + _alias: { + new_: 'new', + }, + old: 'Option', + new_: 'Option', + }, + XcmSent: { + origin: 'StagingXcmV5Location', + destination: 'StagingXcmV5Location', + message: 'StagingXcmV5Xcm', + messageId: '[u8;32]', + }, + StakingElectionsPaused: 'Null', + AccountsPreserved: { + accounts: 'Vec', + }, + CancellerSet: { + _alias: { + new_: 'new', + }, + old: 'Option', + new_: 'Option', + }, + MigrationPaused: { + pauseStage: 'PezpalletRcMigratorMigrationStage', + }, + MigrationCancelled: 'Null', + PureAccountsIndexed: { + numPureAccounts: 'u32', + }, + ManagerMultisigDispatched: { + res: 'Result', + }, + ManagerMultisigVoted: { + votes: 'u32', + }, + MigrationSettingsSet: { + _alias: { + new_: 'new', + }, + old: 'Option', + new_: 'Option' + } + } + }, + /** + * Lookup623: polkadot_runtime::RuntimeHoldReason + **/ + PezkuwiRuntimeRuntimeHoldReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + Staking: 'PezpalletStakingPezpalletHoldReason', + __Unused8: 'Null', + Session: 'PezpalletSessionHoldReason', + Preimage: 'PezpalletPreimageHoldReason', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + __Unused39: 'Null', + __Unused40: 'Null', + DelegatedStaking: 'PezpalletDelegatedStakingHoldReason', + __Unused42: 'Null', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + __Unused51: 'Null', + __Unused52: 'Null', + __Unused53: 'Null', + __Unused54: 'Null', + __Unused55: 'Null', + __Unused56: 'Null', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + __Unused60: 'Null', + __Unused61: 'Null', + __Unused62: 'Null', + __Unused63: 'Null', + __Unused64: 'Null', + __Unused65: 'Null', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + __Unused70: 'Null', + __Unused71: 'Null', + __Unused72: 'Null', + __Unused73: 'Null', + __Unused74: 'Null', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationHoldReason', + XcmPallet: 'PezpalletXcmHoldReason' + } + }, + /** + * Lookup626: pallet_session::pallet::HoldReason + **/ + PezpalletSessionHoldReason: { + _enum: ['Keys'] + }, + /** + * Lookup629: pallet_xcm::pallet::HoldReason + **/ + PezpalletXcmHoldReason: { + _enum: ['AuthorizeAlias'] + }, + /** + * Lookup633: polkadot_runtime::RuntimeFreezeReason + **/ + PezkuwiRuntimeRuntimeFreezeReason: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + __Unused3: 'Null', + __Unused4: 'Null', + __Unused5: 'Null', + __Unused6: 'Null', + __Unused7: 'Null', + __Unused8: 'Null', + __Unused9: 'Null', + __Unused10: 'Null', + __Unused11: 'Null', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + __Unused19: 'Null', + __Unused20: 'Null', + __Unused21: 'Null', + __Unused22: 'Null', + __Unused23: 'Null', + __Unused24: 'Null', + __Unused25: 'Null', + __Unused26: 'Null', + __Unused27: 'Null', + __Unused28: 'Null', + __Unused29: 'Null', + __Unused30: 'Null', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + __Unused34: 'Null', + __Unused35: 'Null', + __Unused36: 'Null', + __Unused37: 'Null', + __Unused38: 'Null', + NominationPools: 'PezpalletNominationPoolsFreezeReason' + } + }, + /** + * Lookup693: pallet_referenda::types::ReferendumInfo, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumInfo: { + _enum: { + Ongoing: 'PezpalletReferendaReferendumStatus', + Approved: '(u32,Option,Option)', + Rejected: '(u32,Option,Option)', + Cancelled: '(u32,Option,Option)', + TimedOut: '(u32,Option,Option)', + Killed: 'u32' + } + }, + /** + * Lookup694: pallet_referenda::types::ReferendumStatus, Balance, pallet_conviction_voting::types::Tally, sp_core::crypto::AccountId32, ScheduleAddress> + **/ + PezpalletReferendaReferendumStatus: { + track: 'u16', + origin: 'PezkuwiRuntimeOriginCaller', + proposal: 'PezframeSupportPreimagesBounded', + enactment: 'PezframeSupportScheduleDispatchTime', + submitted: 'u32', + submissionDeposit: 'PezpalletReferendaDeposit', + decisionDeposit: 'Option', + deciding: 'Option', + tally: 'PezpalletConvictionVotingTally', + inQueue: 'bool', + alarm: 'Option<(u32,(u32,u32))>' + }, + /** + * Lookup712: polkadot_runtime_common::claims::pallet::Error + **/ + PezkuwiRuntimeCommonClaimsPezpalletError: { + _enum: ['InvalidEthereumSignature', 'SignerHasNoClaim', 'SenderHasNoClaim', 'PotUnderflow', 'InvalidStatement', 'VestedBalanceExists'] + }, + /** + * Lookup738: frame_election_provider_support::BoundedSupports + **/ + PezframeElectionProviderSupportBoundedSupports: 'Vec<(AccountId32,PezframeElectionProviderSupportBoundedSupport)>', + /** + * Lookup741: frame_election_provider_support::BoundedSupport + **/ + PezframeElectionProviderSupportBoundedSupport: { + total: 'u128', + voters: 'Vec<(AccountId32,u128)>' + }, + /** + * Lookup783: pallet_staking_async_rc_client::SessionReport + **/ + PezpalletStakingAsyncRcClientSessionReport: { + endIndex: 'u32', + validatorPoints: 'Vec<(AccountId32,u32)>', + activationTimestamp: 'Option<(u64,u32)>', + leftover: 'bool' + }, + /** + * Lookup787: pallet_staking_async_rc_client::Offence + **/ + PezpalletStakingAsyncRcClientOffence: { + offender: 'AccountId32', + reporters: 'Vec', + slashFraction: 'Perbill' + }, + /** + * Lookup789: pallet_staking_async_ah_client::pallet::Error + **/ + PezpalletStakingAsyncAhClientError: { + _enum: ['Blocked'] + }, + /** + * Lookup790: polkadot_runtime_parachains::configuration::HostConfiguration + **/ + PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + maxUpwardQueueCount: 'u32', + maxUpwardQueueSize: 'u32', + maxUpwardMessageSize: 'u32', + maxUpwardMessageNumPerCandidate: 'u32', + hrmpMaxMessageNumPerCandidate: 'u32', + validationUpgradeCooldown: 'u32', + validationUpgradeDelay: 'u32', + asyncBackingParams: 'PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams', + maxPovSize: 'u32', + maxDownwardMessageSize: 'u32', + hrmpMaxParachainOutboundChannels: 'u32', + hrmpSenderDeposit: 'u128', + hrmpRecipientDeposit: 'u128', + hrmpChannelMaxCapacity: 'u32', + hrmpChannelMaxTotalSize: 'u32', + hrmpMaxParachainInboundChannels: 'u32', + hrmpChannelMaxMessageSize: 'u32', + executorParams: 'PezkuwiPrimitivesV8ExecutorParams', + codeRetentionPeriod: 'u32', + maxValidators: 'Option', + disputePeriod: 'u32', + disputePostConclusionAcceptancePeriod: 'u32', + noShowSlots: 'u32', + nDelayTranches: 'u32', + zerothDelayTrancheWidth: 'u32', + neededApprovals: 'u32', + relayVrfModuloSamples: 'u32', + pvfVotingTtl: 'u32', + minimumValidationUpgradeDelay: 'u32', + minimumBackingVotes: 'u32', + nodeFeatures: 'BitVec', + approvalVotingParams: 'PezkuwiPrimitivesV8ApprovalVotingParams', + schedulerParams: 'PezkuwiPrimitivesV8SchedulerParams' + }, + /** + * Lookup793: polkadot_runtime_parachains::configuration::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsConfigurationPezpalletError: { + _enum: ['InvalidNewValue'] + }, + /** + * Lookup796: polkadot_runtime_parachains::shared::AllowedRelayParentsTracker + **/ + PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker: { + buffer: 'Vec', + latestNumber: 'u32' + }, + /** + * Lookup798: polkadot_runtime_parachains::shared::RelayParentInfo + **/ + PezkuwiRuntimeTeyrchainsSharedRelayParentInfo: { + relayParent: 'H256', + stateRoot: 'H256', + claimQueue: 'BTreeMap>>' + }, + /** + * Lookup808: polkadot_runtime_parachains::inclusion::CandidatePendingAvailability + **/ + PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability: { + _alias: { + hash_: 'hash' + }, + core: 'u32', + hash_: 'H256', + descriptor: 'PezkuwiPrimitivesVstagingCandidateDescriptorV2', + commitments: 'PezkuwiPrimitivesV8CandidateCommitments', + availabilityVotes: 'BitVec', + backers: 'BitVec', + relayParentNumber: 'u32', + backedInNumber: 'u32', + backingGroup: 'u32' + }, + /** + * Lookup809: polkadot_runtime_parachains::inclusion::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsInclusionPezpalletError: { + _enum: ['ValidatorIndexOutOfBounds', 'UnscheduledCandidate', 'HeadDataTooLarge', 'PrematureCodeUpgrade', 'NewCodeTooLarge', 'DisallowedRelayParent', 'InvalidAssignment', 'InvalidGroupIndex', 'InsufficientBacking', 'InvalidBacking', 'ValidationDataHashMismatch', 'IncorrectDownwardMessageHandling', 'InvalidUpwardMessages', 'HrmpWatermarkMishandling', 'InvalidOutboundHrmp', 'InvalidValidationCodeHash', 'ParaHeadMismatch'] + }, + /** + * Lookup810: polkadot_primitives::vstaging::ScrapedOnChainVotes + **/ + PezkuwiPrimitivesVstagingScrapedOnChainVotes: { + session: 'u32', + backingValidatorsPerCandidate: 'Vec<(PezkuwiPrimitivesVstagingCandidateReceiptV2,Vec<(u32,PezkuwiPrimitivesV8ValidityAttestation)>)>', + disputes: 'Vec' + }, + /** + * Lookup815: polkadot_runtime_parachains::paras_inherent::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsParasInherentPezpalletError: { + _enum: ['TooManyInclusionInherents', 'InvalidParentHeader', 'InherentDataFilteredDuringExecution', 'UnscheduledCandidate'] + }, + /** + * Lookup819: polkadot_runtime_parachains::scheduler::common::Assignment + **/ + PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment: { + _enum: { + Pool: { + paraId: 'u32', + coreIndex: 'u32', + }, + Bulk: 'u32' + } + }, + /** + * Lookup822: polkadot_runtime_parachains::paras::PvfCheckActiveVoteState + **/ + PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState: { + votesAccept: 'BitVec', + votesReject: 'BitVec', + age: 'u32', + createdAt: 'u32', + causes: 'Vec' + }, + /** + * Lookup824: polkadot_runtime_parachains::paras::PvfCheckCause + **/ + PezkuwiRuntimeTeyrchainsParasPvfCheckCause: { + _enum: { + Onboarding: 'u32', + Upgrade: { + id: 'u32', + includedAt: 'u32', + upgradeStrategy: 'PezkuwiRuntimeTeyrchainsParasUpgradeStrategy' + } + } + }, + /** + * Lookup825: polkadot_runtime_parachains::paras::UpgradeStrategy + **/ + PezkuwiRuntimeTeyrchainsParasUpgradeStrategy: { + _enum: ['SetGoAheadSignal', 'ApplyAtExpectedBlock'] + }, + /** + * Lookup828: polkadot_runtime_parachains::paras::ParaLifecycle + **/ + PezkuwiRuntimeTeyrchainsParasParaLifecycle: { + _enum: ['Onboarding', 'Parathread', 'Parachain', 'UpgradingParathread', 'DowngradingParachain', 'OffboardingParathread', 'OffboardingParachain'] + }, + /** + * Lookup830: polkadot_runtime_parachains::paras::ParaPastCodeMeta + **/ + PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta: { + upgradeTimes: 'Vec', + lastPruned: 'Option' + }, + /** + * Lookup832: polkadot_runtime_parachains::paras::ReplacementTimes + **/ + PezkuwiRuntimeTeyrchainsParasReplacementTimes: { + expectedAt: 'u32', + activatedAt: 'u32' + }, + /** + * Lookup834: polkadot_runtime_parachains::paras::AuthorizedCodeHashAndExpiry + **/ + PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry: { + codeHash: 'H256', + expireAt: 'u32' + }, + /** + * Lookup835: polkadot_primitives::v8::UpgradeGoAhead + **/ + PezkuwiPrimitivesV8UpgradeGoAhead: { + _enum: ['Abort', 'GoAhead'] + }, + /** + * Lookup836: polkadot_primitives::v8::UpgradeRestriction + **/ + PezkuwiPrimitivesV8UpgradeRestriction: { + _enum: ['Present'] + }, + /** + * Lookup837: polkadot_runtime_parachains::paras::ParaGenesisArgs + **/ + PezkuwiRuntimeTeyrchainsParasParaGenesisArgs: { + genesisHead: 'Bytes', + validationCode: 'Bytes', + paraKind: 'bool' + }, + /** + * Lookup838: polkadot_runtime_parachains::paras::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsParasPezpalletError: { + _enum: ['NotRegistered', 'CannotOnboard', 'CannotOffboard', 'CannotUpgrade', 'CannotDowngrade', 'PvfCheckStatementStale', 'PvfCheckStatementFuture', 'PvfCheckValidatorIndexOutOfBounds', 'PvfCheckInvalidSignature', 'PvfCheckDoubleVote', 'PvfCheckSubjectInvalid', 'CannotUpgradeCode', 'InvalidCode', 'NothingAuthorized', 'Unauthorized', 'InvalidBlockNumber'] + }, + /** + * Lookup840: polkadot_runtime_parachains::initializer::BufferedSessionChange + **/ + PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange: { + validators: 'Vec', + queued: 'Vec', + sessionIndex: 'u32' + }, + /** + * Lookup842: polkadot_core_primitives::InboundDownwardMessage + **/ + PezkuwiCorePrimitivesInboundDownwardMessage: { + sentAt: 'u32', + msg: 'Bytes' + }, + /** + * Lookup843: polkadot_runtime_parachains::hrmp::HrmpOpenChannelRequest + **/ + PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest: { + confirmed: 'bool', + age: 'u32', + senderDeposit: 'u128', + maxMessageSize: 'u32', + maxCapacity: 'u32', + maxTotalSize: 'u32' + }, + /** + * Lookup845: polkadot_runtime_parachains::hrmp::HrmpChannel + **/ + PezkuwiRuntimeTeyrchainsHrmpHrmpChannel: { + maxCapacity: 'u32', + maxTotalSize: 'u32', + maxMessageSize: 'u32', + msgCount: 'u32', + totalSize: 'u32', + mqcHead: 'Option', + senderDeposit: 'u128', + recipientDeposit: 'u128' + }, + /** + * Lookup847: polkadot_core_primitives::InboundHrmpMessage + **/ + PezkuwiCorePrimitivesInboundHrmpMessage: { + sentAt: 'u32', + data: 'Bytes' + }, + /** + * Lookup850: polkadot_runtime_parachains::hrmp::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsHrmpPezpalletError: { + _enum: ['OpenHrmpChannelToSelf', 'OpenHrmpChannelInvalidRecipient', 'OpenHrmpChannelZeroCapacity', 'OpenHrmpChannelCapacityExceedsLimit', 'OpenHrmpChannelZeroMessageSize', 'OpenHrmpChannelMessageSizeExceedsLimit', 'OpenHrmpChannelAlreadyExists', 'OpenHrmpChannelAlreadyRequested', 'OpenHrmpChannelLimitExceeded', 'AcceptHrmpChannelDoesntExist', 'AcceptHrmpChannelAlreadyConfirmed', 'AcceptHrmpChannelLimitExceeded', 'CloseHrmpChannelUnauthorized', 'CloseHrmpChannelDoesntExist', 'CloseHrmpChannelAlreadyUnderway', 'CancelHrmpOpenChannelUnauthorized', 'OpenHrmpChannelDoesntExist', 'OpenHrmpChannelAlreadyConfirmed', 'WrongWitness', 'ChannelCreationNotAuthorized'] + }, + /** + * Lookup852: polkadot_primitives::v8::SessionInfo + **/ + PezkuwiPrimitivesV8SessionInfo: { + activeValidatorIndices: 'Vec', + randomSeed: '[u8;32]', + disputePeriod: 'u32', + validators: 'PezkuwiPrimitivesV8IndexedVecValidatorIndex', + discoveryKeys: 'Vec', + assignmentKeys: 'Vec', + validatorGroups: 'PezkuwiPrimitivesV8IndexedVecGroupIndex', + nCores: 'u32', + zerothDelayTrancheWidth: 'u32', + relayVrfModuloSamples: 'u32', + nDelayTranches: 'u32', + noShowSlots: 'u32', + neededApprovals: 'u32' + }, + /** + * Lookup853: polkadot_primitives::v8::IndexedVec + **/ + PezkuwiPrimitivesV8IndexedVecValidatorIndex: 'Vec', + /** + * Lookup854: polkadot_primitives::v8::IndexedVec + **/ + PezkuwiPrimitivesV8IndexedVecGroupIndex: 'Vec>', + /** + * Lookup856: polkadot_primitives::v8::DisputeState + **/ + PezkuwiPrimitivesV8DisputeState: { + validatorsFor: 'BitVec', + validatorsAgainst: 'BitVec', + start: 'u32', + concludedAt: 'Option' + }, + /** + * Lookup858: polkadot_runtime_parachains::disputes::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsDisputesPezpalletError: { + _enum: ['DuplicateDisputeStatementSets', 'AncientDisputeStatement', 'ValidatorIndexOutOfBounds', 'InvalidSignature', 'DuplicateStatement', 'SingleSidedDispute', 'MaliciousBacker', 'MissingBackingVotes', 'UnconfirmedDispute'] + }, + /** + * Lookup859: polkadot_primitives::vstaging::PendingSlashes + **/ + PezkuwiPrimitivesVstagingPendingSlashes: { + _alias: { + keys_: 'keys' + }, + keys_: 'BTreeMap', + kind: 'PezkuwiPrimitivesVstagingDisputeOffenceKind' + }, + /** + * Lookup863: polkadot_runtime_parachains::disputes::slashing::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError: { + _enum: ['InvalidKeyOwnershipProof', 'InvalidSessionIndex', 'InvalidCandidateHash', 'InvalidValidatorIndex', 'ValidatorIndexIdMismatch', 'DuplicateSlashingReport'] + }, + /** + * Lookup864: polkadot_runtime_parachains::on_demand::types::CoreAffinityCount + **/ + PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount: { + coreIndex: 'u32', + count: 'u32' + }, + /** + * Lookup865: polkadot_runtime_parachains::on_demand::types::QueueStatusType + **/ + PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType: { + traffic: 'u128', + nextIndex: 'u32', + smallestIndex: 'u32', + freedIndices: 'BinaryHeapReverseQueueIndex' + }, + /** + * Lookup867: BinaryHeap + **/ + BinaryHeapReverseQueueIndex: 'Vec', + /** + * Lookup870: BinaryHeap + **/ + BinaryHeapEnqueuedOrder: 'Vec', + /** + * Lookup871: polkadot_runtime_parachains::on_demand::types::EnqueuedOrder + **/ + PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder: { + paraId: 'u32', + idx: 'u32' + }, + /** + * Lookup875: polkadot_runtime_parachains::on_demand::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsOnDemandPezpalletError: { + _enum: ['QueueFull', 'SpotPriceHigherThanMaxAmount', 'InsufficientCredits'] + }, + /** + * Lookup877: polkadot_runtime_parachains::assigner_coretime::Schedule + **/ + PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule: { + assignments: 'Vec<(PezpalletBrokerCoretimeInterfaceCoreAssignment,u16)>', + endHint: 'Option', + nextSchedule: 'Option' + }, + /** + * Lookup878: polkadot_runtime_parachains::assigner_coretime::CoreDescriptor + **/ + PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor: { + queue: 'Option', + currentWork: 'Option' + }, + /** + * Lookup880: polkadot_runtime_parachains::assigner_coretime::QueueDescriptor + **/ + PezkuwiRuntimeTeyrchainsAssignerCoretimeQueueDescriptor: { + first: 'u32', + last: 'u32' + }, + /** + * Lookup882: polkadot_runtime_parachains::assigner_coretime::WorkState + **/ + PezkuwiRuntimeTeyrchainsAssignerCoretimeWorkState: { + assignments: 'Vec<(PezpalletBrokerCoretimeInterfaceCoreAssignment,PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState)>', + endHint: 'Option', + pos: 'u16', + step: 'u16' + }, + /** + * Lookup885: polkadot_runtime_parachains::assigner_coretime::AssignmentState + **/ + PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState: { + ratio: 'u16', + remaining: 'u16' + }, + /** + * Lookup886: polkadot_runtime_parachains::assigner_coretime::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError: { + _enum: ['AssignmentsEmpty', 'DisallowedInsert'] + }, + /** + * Lookup887: polkadot_runtime_common::paras_registrar::ParaInfo + **/ + PezkuwiRuntimeCommonParasRegistrarParaInfo: { + manager: 'AccountId32', + deposit: 'u128', + locked: 'Option' + }, + /** + * Lookup889: polkadot_runtime_common::paras_registrar::pallet::Error + **/ + PezkuwiRuntimeCommonParasRegistrarPezpalletError: { + _enum: ['NotRegistered', 'AlreadyRegistered', 'NotOwner', 'CodeTooLarge', 'HeadDataTooLarge', 'NotParachain', 'NotParathread', 'CannotDeregister', 'CannotDowngrade', 'CannotUpgrade', 'ParaLocked', 'NotReserved', 'InvalidCode', 'CannotSwap'] + }, + /** + * Lookup891: polkadot_runtime_common::slots::pallet::Error + **/ + PezkuwiRuntimeCommonSlotsPezpalletError: { + _enum: ['ParaNotOnboarding', 'LeaseError'] + }, + /** + * Lookup896: polkadot_runtime_common::auctions::pallet::Error + **/ + PezkuwiRuntimeCommonAuctionsPezpalletError: { + _enum: ['AuctionInProgress', 'LeasePeriodInPast', 'ParaNotRegistered', 'NotCurrentAuction', 'NotAuction', 'AuctionEnded', 'AlreadyLeasedOut'] + }, + /** + * Lookup897: polkadot_runtime_common::crowdloan::FundInfo + **/ + PezkuwiRuntimeCommonCrowdloanFundInfo: { + depositor: 'AccountId32', + verifier: 'Option', + deposit: 'u128', + raised: 'u128', + end: 'u32', + cap: 'u128', + lastContribution: 'PezkuwiRuntimeCommonCrowdloanLastContribution', + firstPeriod: 'u32', + lastPeriod: 'u32', + fundIndex: 'u32' + }, + /** + * Lookup898: polkadot_runtime_common::crowdloan::LastContribution + **/ + PezkuwiRuntimeCommonCrowdloanLastContribution: { + _enum: { + Never: 'Null', + PreEnding: 'u32', + Ending: 'u32' + } + }, + /** + * Lookup899: polkadot_runtime_common::crowdloan::pallet::Error + **/ + PezkuwiRuntimeCommonCrowdloanPezpalletError: { + _enum: ['FirstPeriodInPast', 'FirstPeriodTooFarInFuture', 'LastPeriodBeforeFirstPeriod', 'LastPeriodTooFarInFuture', 'CannotEndInPast', 'EndTooFarInFuture', 'Overflow', 'ContributionTooSmall', 'InvalidParaId', 'CapExceeded', 'ContributionPeriodOver', 'InvalidOrigin', 'NotParachain', 'LeaseActive', 'BidOrLeaseActive', 'FundNotEnded', 'NoContributions', 'NotReadyToDissolve', 'InvalidSignature', 'MemoTooLarge', 'AlreadyInNewRaise', 'VrfDelayInProgress', 'NoLeasePeriod'] + }, + /** + * Lookup900: polkadot_runtime_parachains::coretime::pallet::Error + **/ + PezkuwiRuntimeTeyrchainsCoretimePezpalletError: { + _enum: ['NotBroker', 'RequestedFutureRevenue', 'AssetTransferFailed'] + }, + /** + * Lookup901: pallet_xcm::pallet::QueryStatus + **/ + PezpalletXcmQueryStatus: { + _enum: { + Pending: { + responder: 'XcmVersionedLocation', + maybeMatchQuerier: 'Option', + maybeNotify: 'Option<(u8,u8)>', + timeout: 'u32', + }, + VersionNotifier: { + origin: 'XcmVersionedLocation', + isActive: 'bool', + }, + Ready: { + response: 'XcmVersionedResponse', + at: 'u32' + } + } + }, + /** + * Lookup905: xcm::VersionedResponse + **/ + XcmVersionedResponse: { + _enum: { + __Unused0: 'Null', + __Unused1: 'Null', + __Unused2: 'Null', + V3: 'XcmV3Response', + V4: 'StagingXcmV4Response', + V5: 'StagingXcmV5Response' + } + }, + /** + * Lookup911: pallet_xcm::pallet::VersionMigrationStage + **/ + PezpalletXcmVersionMigrationStage: { + _enum: { + MigrateSupportedVersion: 'Null', + MigrateVersionNotifiers: 'Null', + NotifyCurrentTargets: 'Option', + MigrateAndNotifyOldTargets: 'Null' + } + }, + /** + * Lookup914: pallet_xcm::pallet::RemoteLockedFungibleRecord + **/ + PezpalletXcmRemoteLockedFungibleRecord: { + amount: 'u128', + owner: 'XcmVersionedLocation', + locker: 'XcmVersionedLocation', + consumers: 'Vec<(Null,u128)>' + }, + /** + * Lookup921: pallet_xcm::AuthorizedAliasesEntry + **/ + PezpalletXcmAuthorizedAliasesEntry: { + aliasers: 'Vec', + ticket: 'PezframeSupportStorageDisabled' + }, + /** + * Lookup922: frame_support::traits::storage::Disabled + **/ + PezframeSupportStorageDisabled: 'Null', + /** + * Lookup923: pallet_xcm::pallet::MaxAuthorizedAliases + **/ + PezpalletXcmMaxAuthorizedAliases: 'Null', + /** + * Lookup925: xcm_runtime_apis::authorized_aliases::OriginAliaser + **/ + XcmRuntimeApisAuthorizedAliasesOriginAliaser: { + location: 'XcmVersionedLocation', + expiry: 'Option' + }, + /** + * Lookup927: pallet_xcm::pallet::Error + **/ + PezpalletXcmError: { + _enum: { + Unreachable: 'Null', + SendFailure: 'Null', + Filtered: 'Null', + UnweighableMessage: 'Null', + DestinationNotInvertible: 'Null', + Empty: 'Null', + CannotReanchor: 'Null', + TooManyAssets: 'Null', + InvalidOrigin: 'Null', + BadVersion: 'Null', + BadLocation: 'Null', + NoSubscription: 'Null', + AlreadySubscribed: 'Null', + CannotCheckOutTeleport: 'Null', + LowBalance: 'Null', + TooManyLocks: 'Null', + AccountNotSovereign: 'Null', + FeesNotMet: 'Null', + LockNotFound: 'Null', + InUse: 'Null', + __Unused20: 'Null', + InvalidAssetUnknownReserve: 'Null', + InvalidAssetUnsupportedReserve: 'Null', + TooManyReserves: 'Null', + LocalExecutionIncomplete: 'Null', + TooManyAuthorizedAliases: 'Null', + ExpiresInPast: 'Null', + AliasNotFound: 'Null', + LocalExecutionIncompleteWithError: { + index: 'u8', + error: 'PezpalletXcmErrorsExecutionError' + } + } + }, + /** + * Lookup928: pallet_xcm::errors::ExecutionError + **/ + PezpalletXcmErrorsExecutionError: { + _enum: ['Overflow', 'Unimplemented', 'UntrustedReserveLocation', 'UntrustedTeleportLocation', 'LocationFull', 'LocationNotInvertible', 'BadOrigin', 'InvalidLocation', 'AssetNotFound', 'FailedToTransactAsset', 'NotWithdrawable', 'LocationCannotHold', 'ExceedsMaxMessageSize', 'DestinationUnsupported', 'Transport', 'Unroutable', 'UnknownClaim', 'FailedToDecode', 'MaxWeightInvalid', 'NotHoldingFees', 'TooExpensive', 'Trap', 'ExpectationFalse', 'PalletNotFound', 'NameMismatch', 'VersionIncompatible', 'HoldingWouldOverflow', 'ExportError', 'ReanchorFailed', 'NoDeal', 'FeesNotMet', 'LockError', 'NoPermission', 'Unanchored', 'NotDepositable', 'TooManyAssets', 'UnhandledXcmVersion', 'WeightLimitReached', 'Barrier', 'WeightNotComputable', 'ExceedsStackLimit'] + }, + /** + * Lookup941: pallet_rc_migrator::accounts::AccountState + **/ + PezpalletRcMigratorAccountsAccountState: { + _enum: { + Migrate: 'Null', + Preserve: 'Null', + Part: { + free: 'u128', + reserved: 'u128', + consumers: 'u32' + } + } + }, + /** + * Lookup942: pallet_rc_migrator::accounts::MigratedBalances + **/ + PezpalletRcMigratorAccountsMigratedBalances: { + kept: 'u128', + migrated: 'u128' + }, + /** + * Lookup943: pallet_rc_migrator::pallet::Error + **/ + PezpalletRcMigratorError: { + _enum: ['Unreachable', 'OutOfWeight', 'XcmError', 'FailedToWithdrawAccount', 'PastBlockNumber', 'EraEndsTooSoon', 'BalanceOverflow', 'BalanceUnderflow', 'InvalidQueryResponse', 'QueryNotFound', 'XcmSendError', 'UnreachableStage', 'InvalidParameter', 'AhUmpQueuePriorityAlreadySet', 'AccountReferenced', 'BadXcmVersion', 'InvalidOrigin', 'InvalidStageTransition', 'UnsignedValidationFailed'] + }, + /** + * Lookup953: pallet_transaction_payment::ChargeTransactionPayment + **/ + PezpalletTransactionPaymentChargeTransactionPayment: 'Compact', + /** + * Lookup954: polkadot_runtime_common::claims::PrevalidateAttests + **/ + PezkuwiRuntimeCommonClaimsPrevalidateAttests: 'Null', + /** + * Lookup957: polkadot_runtime::Runtime + **/ + PezkuwiRuntimeRuntime: 'Null', + /** + * Lookup958: relay_common::apis::InflationInfo + **/ + RelayCommonApisInflationInfo: { + inflation: 'Perquintill', + nextMint: '(u128,u128)' + }, + /** + * Lookup981: polkadot_primitives::v8::GroupRotationInfo + **/ + PezkuwiPrimitivesV8GroupRotationInfo: { + sessionStartBlock: 'u32', + groupRotationFrequency: 'u32', + now: 'u32' + }, + /** + * Lookup983: polkadot_primitives::vstaging::CoreState + **/ + PezkuwiPrimitivesVstagingCoreState: { + _enum: { + Occupied: 'PezkuwiPrimitivesVstagingOccupiedCore', + Scheduled: 'PezkuwiPrimitivesV8ScheduledCore', + Free: 'Null' + } + }, + /** + * Lookup984: polkadot_primitives::vstaging::OccupiedCore + **/ + PezkuwiPrimitivesVstagingOccupiedCore: { + nextUpOnAvailable: 'Option', + occupiedSince: 'u32', + timeOutAt: 'u32', + nextUpOnTimeOut: 'Option', + availability: 'BitVec', + groupResponsible: 'u32', + candidateHash: 'H256', + candidateDescriptor: 'PezkuwiPrimitivesVstagingCandidateDescriptorV2' + }, + /** + * Lookup986: polkadot_primitives::v8::ScheduledCore + **/ + PezkuwiPrimitivesV8ScheduledCore: { + paraId: 'u32', + collator: 'Option' + }, + /** + * Lookup988: polkadot_primitives::v8::collator_app::Public + **/ + PezkuwiPrimitivesV8CollatorAppPublic: '[u8;32]', + /** + * Lookup989: polkadot_primitives::v8::OccupiedCoreAssumption + **/ + PezkuwiPrimitivesV8OccupiedCoreAssumption: { + _enum: ['Included', 'TimedOut', 'Free'] + }, + /** + * Lookup991: polkadot_primitives::v8::PersistedValidationData + **/ + PezkuwiPrimitivesV8PersistedValidationData: { + parentHead: 'Bytes', + relayParentNumber: 'u32', + relayParentStorageRoot: 'H256', + maxPovSize: 'u32' + }, + /** + * Lookup996: polkadot_primitives::vstaging::CandidateEvent + **/ + PezkuwiPrimitivesVstagingCandidateEvent: { + _enum: { + CandidateBacked: '(PezkuwiPrimitivesVstagingCandidateReceiptV2,Bytes,u32,u32)', + CandidateIncluded: '(PezkuwiPrimitivesVstagingCandidateReceiptV2,Bytes,u32,u32)', + CandidateTimedOut: '(PezkuwiPrimitivesVstagingCandidateReceiptV2,Bytes,u32)' + } + }, + /** + * Lookup1008: polkadot_primitives::v8::slashing::PendingSlashes + **/ + PezkuwiPrimitivesV8SlashingPendingSlashes: { + _alias: { + keys_: 'keys' + }, + keys_: 'BTreeMap', + kind: 'PezkuwiPrimitivesV8SlashingSlashingOffenceKind' + }, + /** + * Lookup1009: polkadot_primitives::v8::slashing::SlashingOffenceKind + **/ + PezkuwiPrimitivesV8SlashingSlashingOffenceKind: { + _enum: ['ForInvalid', 'AgainstValid'] + }, + /** + * Lookup1012: polkadot_primitives::v8::slashing::DisputeProof + **/ + PezkuwiPrimitivesV8SlashingDisputeProof: { + timeSlot: 'PezkuwiPrimitivesV8SlashingDisputesTimeSlot', + kind: 'PezkuwiPrimitivesV8SlashingSlashingOffenceKind', + validatorIndex: 'u32', + validatorId: 'PezkuwiPrimitivesV8ValidatorAppPublic' + }, + /** + * Lookup1014: polkadot_primitives::vstaging::async_backing::BackingState + **/ + PezkuwiPrimitivesVstagingAsyncBackingBackingState: { + constraints: 'PezkuwiPrimitivesV8AsyncBackingConstraints', + pendingAvailability: 'Vec' + }, + /** + * Lookup1015: polkadot_primitives::v8::async_backing::Constraints + **/ + PezkuwiPrimitivesV8AsyncBackingConstraints: { + minRelayParentNumber: 'u32', + maxPovSize: 'u32', + maxCodeSize: 'u32', + umpRemaining: 'u32', + umpRemainingBytes: 'u32', + maxUmpNumPerCandidate: 'u32', + dmpRemainingMessages: 'Vec', + hrmpInbound: 'PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations', + hrmpChannelsOut: 'Vec<(u32,PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations)>', + maxHrmpNumPerCandidate: 'u32', + requiredParent: 'Bytes', + validationCodeHash: 'H256', + upgradeRestriction: 'Option', + futureValidationCode: 'Option<(u32,H256)>' + }, + /** + * Lookup1016: polkadot_primitives::v8::async_backing::InboundHrmpLimitations + **/ + PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations: { + validWatermarks: 'Vec' + }, + /** + * Lookup1019: polkadot_primitives::v8::async_backing::OutboundHrmpChannelLimitations + **/ + PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations: { + bytesRemaining: 'u32', + messagesRemaining: 'u32' + }, + /** + * Lookup1024: polkadot_primitives::vstaging::async_backing::CandidatePendingAvailability + **/ + PezkuwiPrimitivesVstagingAsyncBackingCandidatePendingAvailability: { + candidateHash: 'H256', + descriptor: 'PezkuwiPrimitivesVstagingCandidateDescriptorV2', + commitments: 'PezkuwiPrimitivesV8CandidateCommitments', + relayParentNumber: 'u32', + maxPovSize: 'u32' + }, + /** + * Lookup1030: polkadot_primitives::vstaging::async_backing::Constraints + **/ + PezkuwiPrimitivesVstagingAsyncBackingConstraints: { + minRelayParentNumber: 'u32', + maxPovSize: 'u32', + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + umpRemaining: 'u32', + umpRemainingBytes: 'u32', + maxUmpNumPerCandidate: 'u32', + dmpRemainingMessages: 'Vec', + hrmpInbound: 'PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations', + hrmpChannelsOut: 'Vec<(u32,PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations)>', + maxHrmpNumPerCandidate: 'u32', + requiredParent: 'Bytes', + validationCodeHash: 'H256', + upgradeRestriction: 'Option', + futureValidationCode: 'Option<(u32,H256)>' + }, + /** + * Lookup1061: xcm_runtime_apis::fees::Error + **/ + XcmRuntimeApisFeesError: { + _enum: ['Unimplemented', 'VersionedConversionFailed', 'WeightNotComputable', 'UnhandledXcmVersion', 'AssetNotFound', 'Unroutable'] + }, + /** + * Lookup1066: xcm_runtime_apis::dry_run::CallDryRunEffects + **/ + XcmRuntimeApisDryRunCallDryRunEffects: { + executionResult: 'Result', + emittedEvents: 'Vec', + localXcm: 'Option', + forwardedXcms: 'Vec<(XcmVersionedLocation,Vec)>' + }, + /** + * Lookup1072: xcm_runtime_apis::dry_run::Error + **/ + XcmRuntimeApisDryRunError: { + _enum: ['Unimplemented', 'VersionedConversionFailed'] + }, + /** + * Lookup1074: xcm_runtime_apis::dry_run::XcmDryRunEffects + **/ + XcmRuntimeApisDryRunXcmDryRunEffects: { + executionResult: 'StagingXcmV5TraitsOutcome', + emittedEvents: 'Vec', + forwardedXcms: 'Vec<(XcmVersionedLocation,Vec)>' + }, + /** + * Lookup1076: xcm_runtime_apis::conversions::Error + **/ + XcmRuntimeApisConversionsError: { + _enum: ['Unsupported', 'VersionedConversionFailed'] + }, + /** + * Lookup1080: polkadot_runtime::RuntimeError + **/ + PezkuwiRuntimeRuntimeError: { + _enum: { + System: 'PezframeSystemError', + Scheduler: 'PezpalletSchedulerError', + Babe: 'PezpalletBabeError', + __Unused3: 'Null', + Indices: 'PezpalletIndicesError', + Balances: 'PezpalletBalancesError', + __Unused6: 'Null', + Staking: 'PezpalletStakingPezpalletError', + __Unused8: 'Null', + Session: 'PezpalletSessionError', + Preimage: 'PezpalletPreimageError', + Grandpa: 'PezpalletGrandpaError', + __Unused12: 'Null', + __Unused13: 'Null', + __Unused14: 'Null', + __Unused15: 'Null', + __Unused16: 'Null', + __Unused17: 'Null', + __Unused18: 'Null', + Treasury: 'PezpalletTreasuryError', + ConvictionVoting: 'PezpalletConvictionVotingError', + Referenda: 'PezpalletReferendaError', + __Unused22: 'Null', + Whitelist: 'PezpalletWhitelistError', + Claims: 'PezkuwiRuntimeCommonClaimsPezpalletError', + Vesting: 'PezpalletVestingError', + Utility: 'PezpalletUtilityError', + __Unused27: 'Null', + __Unused28: 'Null', + Proxy: 'PezpalletProxyError', + Multisig: 'PezpalletMultisigError', + __Unused31: 'Null', + __Unused32: 'Null', + __Unused33: 'Null', + Bounties: 'PezpalletBountiesError', + __Unused35: 'Null', + ElectionProviderMultiPhase: 'PezpalletElectionProviderMultiPhaseError', + VoterList: 'PezpalletBagsListError', + ChildBounties: 'PezpalletChildBountiesError', + NominationPools: 'PezpalletNominationPoolsError', + FastUnstake: 'PezpalletFastUnstakeError', + DelegatedStaking: 'PezpalletDelegatedStakingError', + StakingAhClient: 'PezpalletStakingAsyncAhClientError', + __Unused43: 'Null', + __Unused44: 'Null', + __Unused45: 'Null', + __Unused46: 'Null', + __Unused47: 'Null', + __Unused48: 'Null', + __Unused49: 'Null', + __Unused50: 'Null', + Configuration: 'PezkuwiRuntimeTeyrchainsConfigurationPezpalletError', + __Unused52: 'Null', + ParaInclusion: 'PezkuwiRuntimeTeyrchainsInclusionPezpalletError', + ParaInherent: 'PezkuwiRuntimeTeyrchainsParasInherentPezpalletError', + __Unused55: 'Null', + Paras: 'PezkuwiRuntimeTeyrchainsParasPezpalletError', + __Unused57: 'Null', + __Unused58: 'Null', + __Unused59: 'Null', + Hrmp: 'PezkuwiRuntimeTeyrchainsHrmpPezpalletError', + __Unused61: 'Null', + ParasDisputes: 'PezkuwiRuntimeTeyrchainsDisputesPezpalletError', + ParasSlashing: 'PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError', + OnDemand: 'PezkuwiRuntimeTeyrchainsOnDemandPezpalletError', + CoretimeAssignmentProvider: 'PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError', + __Unused66: 'Null', + __Unused67: 'Null', + __Unused68: 'Null', + __Unused69: 'Null', + Registrar: 'PezkuwiRuntimeCommonParasRegistrarPezpalletError', + Slots: 'PezkuwiRuntimeCommonSlotsPezpalletError', + Auctions: 'PezkuwiRuntimeCommonAuctionsPezpalletError', + Crowdloan: 'PezkuwiRuntimeCommonCrowdloanPezpalletError', + Coretime: 'PezkuwiRuntimeTeyrchainsCoretimePezpalletError', + __Unused75: 'Null', + __Unused76: 'Null', + __Unused77: 'Null', + __Unused78: 'Null', + __Unused79: 'Null', + __Unused80: 'Null', + __Unused81: 'Null', + __Unused82: 'Null', + __Unused83: 'Null', + __Unused84: 'Null', + __Unused85: 'Null', + __Unused86: 'Null', + __Unused87: 'Null', + __Unused88: 'Null', + __Unused89: 'Null', + __Unused90: 'Null', + __Unused91: 'Null', + __Unused92: 'Null', + __Unused93: 'Null', + __Unused94: 'Null', + __Unused95: 'Null', + __Unused96: 'Null', + __Unused97: 'Null', + StateTrieMigration: 'PezpalletStateTrieMigrationError', + XcmPallet: 'PezpalletXcmError', + MessageQueue: 'PezpalletMessageQueueError', + AssetRate: 'PezpalletAssetRateError', + __Unused102: 'Null', + __Unused103: 'Null', + __Unused104: 'Null', + __Unused105: 'Null', + __Unused106: 'Null', + __Unused107: 'Null', + __Unused108: 'Null', + __Unused109: 'Null', + __Unused110: 'Null', + __Unused111: 'Null', + __Unused112: 'Null', + __Unused113: 'Null', + __Unused114: 'Null', + __Unused115: 'Null', + __Unused116: 'Null', + __Unused117: 'Null', + __Unused118: 'Null', + __Unused119: 'Null', + __Unused120: 'Null', + __Unused121: 'Null', + __Unused122: 'Null', + __Unused123: 'Null', + __Unused124: 'Null', + __Unused125: 'Null', + __Unused126: 'Null', + __Unused127: 'Null', + __Unused128: 'Null', + __Unused129: 'Null', + __Unused130: 'Null', + __Unused131: 'Null', + __Unused132: 'Null', + __Unused133: 'Null', + __Unused134: 'Null', + __Unused135: 'Null', + __Unused136: 'Null', + __Unused137: 'Null', + __Unused138: 'Null', + __Unused139: 'Null', + __Unused140: 'Null', + __Unused141: 'Null', + __Unused142: 'Null', + __Unused143: 'Null', + __Unused144: 'Null', + __Unused145: 'Null', + __Unused146: 'Null', + __Unused147: 'Null', + __Unused148: 'Null', + __Unused149: 'Null', + __Unused150: 'Null', + __Unused151: 'Null', + __Unused152: 'Null', + __Unused153: 'Null', + __Unused154: 'Null', + __Unused155: 'Null', + __Unused156: 'Null', + __Unused157: 'Null', + __Unused158: 'Null', + __Unused159: 'Null', + __Unused160: 'Null', + __Unused161: 'Null', + __Unused162: 'Null', + __Unused163: 'Null', + __Unused164: 'Null', + __Unused165: 'Null', + __Unused166: 'Null', + __Unused167: 'Null', + __Unused168: 'Null', + __Unused169: 'Null', + __Unused170: 'Null', + __Unused171: 'Null', + __Unused172: 'Null', + __Unused173: 'Null', + __Unused174: 'Null', + __Unused175: 'Null', + __Unused176: 'Null', + __Unused177: 'Null', + __Unused178: 'Null', + __Unused179: 'Null', + __Unused180: 'Null', + __Unused181: 'Null', + __Unused182: 'Null', + __Unused183: 'Null', + __Unused184: 'Null', + __Unused185: 'Null', + __Unused186: 'Null', + __Unused187: 'Null', + __Unused188: 'Null', + __Unused189: 'Null', + __Unused190: 'Null', + __Unused191: 'Null', + __Unused192: 'Null', + __Unused193: 'Null', + __Unused194: 'Null', + __Unused195: 'Null', + __Unused196: 'Null', + __Unused197: 'Null', + __Unused198: 'Null', + __Unused199: 'Null', + Beefy: 'PezpalletBeefyError', + __Unused201: 'Null', + __Unused202: 'Null', + __Unused203: 'Null', + __Unused204: 'Null', + __Unused205: 'Null', + __Unused206: 'Null', + __Unused207: 'Null', + __Unused208: 'Null', + __Unused209: 'Null', + __Unused210: 'Null', + __Unused211: 'Null', + __Unused212: 'Null', + __Unused213: 'Null', + __Unused214: 'Null', + __Unused215: 'Null', + __Unused216: 'Null', + __Unused217: 'Null', + __Unused218: 'Null', + __Unused219: 'Null', + __Unused220: 'Null', + __Unused221: 'Null', + __Unused222: 'Null', + __Unused223: 'Null', + __Unused224: 'Null', + __Unused225: 'Null', + __Unused226: 'Null', + __Unused227: 'Null', + __Unused228: 'Null', + __Unused229: 'Null', + __Unused230: 'Null', + __Unused231: 'Null', + __Unused232: 'Null', + __Unused233: 'Null', + __Unused234: 'Null', + __Unused235: 'Null', + __Unused236: 'Null', + __Unused237: 'Null', + __Unused238: 'Null', + __Unused239: 'Null', + __Unused240: 'Null', + __Unused241: 'Null', + __Unused242: 'Null', + __Unused243: 'Null', + __Unused244: 'Null', + __Unused245: 'Null', + __Unused246: 'Null', + __Unused247: 'Null', + __Unused248: 'Null', + __Unused249: 'Null', + __Unused250: 'Null', + __Unused251: 'Null', + __Unused252: 'Null', + __Unused253: 'Null', + __Unused254: 'Null', + RcMigrator: 'PezpalletRcMigratorError' + } + } +}; diff --git a/packages/types-augment/src/lookup/types-assetHubDicle.ts b/packages/types-augment/src/lookup/types-assetHubDicle.ts new file mode 100644 index 0000000..6eef625 --- /dev/null +++ b/packages/types-augment/src/lookup/types-assetHubDicle.ts @@ -0,0 +1,764 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/lookup'; + +import type { BTreeMap, Bytes, Compact, Enum, Null, Option, Struct, U256, U8aFixed, Vec, bool, u128, u16, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H160, H256, MultiAddress, PerU16, Permill, Perquintill, RuntimeCall } from '@pezkuwi/types/interfaces/runtime'; + +declare module '@pezkuwi/types/lookup' { + /** @name AssetHubDicleRuntimeRuntimeTask (32) */ + type AssetHubDicleRuntimeRuntimeTask = Null; + + /** @name AssetHubDicleRuntimeRuntimeParametersKey (43) */ + interface AssetHubDicleRuntimeRuntimeParametersKey extends Enum { + readonly isIssuance: boolean; + readonly asIssuance: AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey; + readonly isTreasury: boolean; + readonly asTreasury: AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey; + readonly isStakingElection: boolean; + readonly asStakingElection: AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey; + readonly isScheduler: boolean; + readonly asScheduler: AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey; + readonly isMessageQueue: boolean; + readonly asMessageQueue: AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey; + readonly type: 'Issuance' | 'Treasury' | 'StakingElection' | 'Scheduler' | 'MessageQueue'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey (44) */ + interface AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey extends Enum { + readonly isMinInflation: boolean; + readonly isMaxInflation: boolean; + readonly isIdealStake: boolean; + readonly isFalloff: boolean; + readonly type: 'MinInflation' | 'MaxInflation' | 'IdealStake' | 'Falloff'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation (45) */ + type AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation (46) */ + type AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake (47) */ + type AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceFalloff (48) */ + type AssetHubDicleRuntimeDynamicParamsIssuanceFalloff = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey (49) */ + interface AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey extends Enum { + readonly isBurnPortion: boolean; + readonly isBurnDestination: boolean; + readonly type: 'BurnPortion' | 'BurnDestination'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion (50) */ + type AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination (51) */ + type AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey (52) */ + interface AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey extends Enum { + readonly isSignedPhase: boolean; + readonly isMaxSignedSubmissions: boolean; + readonly isUnsignedPhase: boolean; + readonly isMinerPages: boolean; + readonly isMaxElectingVoters: boolean; + readonly isTargetSnapshotPerBlock: boolean; + readonly isMaxEraDuration: boolean; + readonly type: 'SignedPhase' | 'MaxSignedSubmissions' | 'UnsignedPhase' | 'MinerPages' | 'MaxElectingVoters' | 'TargetSnapshotPerBlock' | 'MaxEraDuration'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase (53) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions (54) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase (55) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages (56) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters (57) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock (58) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration (59) */ + type AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey (60) */ + interface AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey extends Enum { + readonly isMaxScheduledPerBlock: boolean; + readonly isMaximumWeight: boolean; + readonly type: 'MaxScheduledPerBlock' | 'MaximumWeight'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock (61) */ + type AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight (62) */ + type AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey (63) */ + interface AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey extends Enum { + readonly isMaxOnInitWeight: boolean; + readonly isMaxOnIdleWeight: boolean; + readonly type: 'MaxOnInitWeight' | 'MaxOnIdleWeight'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight (64) */ + type AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight = Null; + + /** @name AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight (65) */ + type AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight = Null; + + /** @name AssetHubDicleRuntimeRuntimeParametersValue (67) */ + interface AssetHubDicleRuntimeRuntimeParametersValue extends Enum { + readonly isIssuance: boolean; + readonly asIssuance: AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue; + readonly isTreasury: boolean; + readonly asTreasury: AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue; + readonly isStakingElection: boolean; + readonly asStakingElection: AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue; + readonly isScheduler: boolean; + readonly asScheduler: AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue; + readonly isMessageQueue: boolean; + readonly asMessageQueue: AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue; + readonly type: 'Issuance' | 'Treasury' | 'StakingElection' | 'Scheduler' | 'MessageQueue'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue (68) */ + interface AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue extends Enum { + readonly isMinInflation: boolean; + readonly asMinInflation: Perquintill; + readonly isMaxInflation: boolean; + readonly asMaxInflation: Perquintill; + readonly isIdealStake: boolean; + readonly asIdealStake: Perquintill; + readonly isFalloff: boolean; + readonly asFalloff: Perquintill; + readonly type: 'MinInflation' | 'MaxInflation' | 'IdealStake' | 'Falloff'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue (70) */ + interface AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue extends Enum { + readonly isBurnPortion: boolean; + readonly asBurnPortion: Permill; + readonly isBurnDestination: boolean; + readonly asBurnDestination: AssetHubDicleRuntimeTreasuryBurnDestinationAccount; + readonly type: 'BurnPortion' | 'BurnDestination'; + } + + /** @name AssetHubDicleRuntimeTreasuryBurnDestinationAccount (72) */ + interface AssetHubDicleRuntimeTreasuryBurnDestinationAccount extends Option {} + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue (74) */ + interface AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue extends Enum { + readonly isSignedPhase: boolean; + readonly asSignedPhase: u32; + readonly isMaxSignedSubmissions: boolean; + readonly asMaxSignedSubmissions: u32; + readonly isUnsignedPhase: boolean; + readonly asUnsignedPhase: u32; + readonly isMinerPages: boolean; + readonly asMinerPages: u32; + readonly isMaxElectingVoters: boolean; + readonly asMaxElectingVoters: u32; + readonly isTargetSnapshotPerBlock: boolean; + readonly asTargetSnapshotPerBlock: u32; + readonly isMaxEraDuration: boolean; + readonly asMaxEraDuration: u64; + readonly type: 'SignedPhase' | 'MaxSignedSubmissions' | 'UnsignedPhase' | 'MinerPages' | 'MaxElectingVoters' | 'TargetSnapshotPerBlock' | 'MaxEraDuration'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue (75) */ + interface AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue extends Enum { + readonly isMaxScheduledPerBlock: boolean; + readonly asMaxScheduledPerBlock: u32; + readonly isMaximumWeight: boolean; + readonly asMaximumWeight: PezspWeightsWeightV2Weight; + readonly type: 'MaxScheduledPerBlock' | 'MaximumWeight'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue (76) */ + interface AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue extends Enum { + readonly isMaxOnInitWeight: boolean; + readonly asMaxOnInitWeight: Option; + readonly isMaxOnIdleWeight: boolean; + readonly asMaxOnIdleWeight: Option; + readonly type: 'MaxOnInitWeight' | 'MaxOnIdleWeight'; + } + + /** @name AssetHubDicleRuntimeProxyType (193) */ + interface AssetHubDicleRuntimeProxyType extends Enum { + readonly isAny: boolean; + readonly isNonTransfer: boolean; + readonly isCancelProxy: boolean; + readonly isAssets: boolean; + readonly isAssetOwner: boolean; + readonly isAssetManager: boolean; + readonly isCollator: boolean; + readonly isGovernance: boolean; + readonly isStaking: boolean; + readonly isNominationPools: boolean; + readonly isAuction: boolean; + readonly isParaRegistration: boolean; + readonly isSociety: boolean; + readonly isSpokesperson: boolean; + readonly type: 'Any' | 'NonTransfer' | 'CancelProxy' | 'Assets' | 'AssetOwner' | 'AssetManager' | 'Collator' | 'Governance' | 'Staking' | 'NominationPools' | 'Auction' | 'ParaRegistration' | 'Society' | 'Spokesperson'; + } + + /** @name AssetHubDicleRuntimeRuntime (220) */ + type AssetHubDicleRuntimeRuntime = Null; + + /** @name AssetHubDicleRuntimeRuntimeParameters (308) */ + interface AssetHubDicleRuntimeRuntimeParameters extends Enum { + readonly isIssuance: boolean; + readonly asIssuance: AssetHubDicleRuntimeDynamicParamsIssuanceParameters; + readonly isTreasury: boolean; + readonly asTreasury: AssetHubDicleRuntimeDynamicParamsTreasuryParameters; + readonly isStakingElection: boolean; + readonly asStakingElection: AssetHubDicleRuntimeDynamicParamsStakingElectionParameters; + readonly isScheduler: boolean; + readonly asScheduler: AssetHubDicleRuntimeDynamicParamsSchedulerParameters; + readonly isMessageQueue: boolean; + readonly asMessageQueue: AssetHubDicleRuntimeDynamicParamsMessageQueueParameters; + readonly type: 'Issuance' | 'Treasury' | 'StakingElection' | 'Scheduler' | 'MessageQueue'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsIssuanceParameters (309) */ + interface AssetHubDicleRuntimeDynamicParamsIssuanceParameters extends Enum { + readonly isMinInflation: boolean; + readonly asMinInflation: ITuple<[AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation, Option]>; + readonly isMaxInflation: boolean; + readonly asMaxInflation: ITuple<[AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation, Option]>; + readonly isIdealStake: boolean; + readonly asIdealStake: ITuple<[AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake, Option]>; + readonly isFalloff: boolean; + readonly asFalloff: ITuple<[AssetHubDicleRuntimeDynamicParamsIssuanceFalloff, Option]>; + readonly type: 'MinInflation' | 'MaxInflation' | 'IdealStake' | 'Falloff'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsTreasuryParameters (311) */ + interface AssetHubDicleRuntimeDynamicParamsTreasuryParameters extends Enum { + readonly isBurnPortion: boolean; + readonly asBurnPortion: ITuple<[AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion, Option]>; + readonly isBurnDestination: boolean; + readonly asBurnDestination: ITuple<[AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination, Option]>; + readonly type: 'BurnPortion' | 'BurnDestination'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsStakingElectionParameters (314) */ + interface AssetHubDicleRuntimeDynamicParamsStakingElectionParameters extends Enum { + readonly isSignedPhase: boolean; + readonly asSignedPhase: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase, Option]>; + readonly isMaxSignedSubmissions: boolean; + readonly asMaxSignedSubmissions: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions, Option]>; + readonly isUnsignedPhase: boolean; + readonly asUnsignedPhase: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase, Option]>; + readonly isMinerPages: boolean; + readonly asMinerPages: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages, Option]>; + readonly isMaxElectingVoters: boolean; + readonly asMaxElectingVoters: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters, Option]>; + readonly isTargetSnapshotPerBlock: boolean; + readonly asTargetSnapshotPerBlock: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock, Option]>; + readonly isMaxEraDuration: boolean; + readonly asMaxEraDuration: ITuple<[AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration, Option]>; + readonly type: 'SignedPhase' | 'MaxSignedSubmissions' | 'UnsignedPhase' | 'MinerPages' | 'MaxElectingVoters' | 'TargetSnapshotPerBlock' | 'MaxEraDuration'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsSchedulerParameters (315) */ + interface AssetHubDicleRuntimeDynamicParamsSchedulerParameters extends Enum { + readonly isMaxScheduledPerBlock: boolean; + readonly asMaxScheduledPerBlock: ITuple<[AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock, Option]>; + readonly isMaximumWeight: boolean; + readonly asMaximumWeight: ITuple<[AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight, Option]>; + readonly type: 'MaxScheduledPerBlock' | 'MaximumWeight'; + } + + /** @name AssetHubDicleRuntimeDynamicParamsMessageQueueParameters (316) */ + interface AssetHubDicleRuntimeDynamicParamsMessageQueueParameters extends Enum { + readonly isMaxOnInitWeight: boolean; + readonly asMaxOnInitWeight: ITuple<[AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight, Option>]>; + readonly isMaxOnIdleWeight: boolean; + readonly asMaxOnIdleWeight: ITuple<[AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight, Option>]>; + readonly type: 'MaxOnInitWeight' | 'MaxOnIdleWeight'; + } + + /** @name AssetHubDicleRuntimeSessionKeys (333) */ + interface AssetHubDicleRuntimeSessionKeys extends Struct { + readonly aura: PezspConsensusAuraSr25519AppSr25519Public; + } + + /** @name PezspConsensusAuraSr25519AppSr25519Public (334) */ + interface PezspConsensusAuraSr25519AppSr25519Public extends U8aFixed {} + + /** @name AssetHubDicleRuntimeOriginCaller (385) */ + interface AssetHubDicleRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PezpalletXcmOrigin; + readonly isCumulusXcm: boolean; + readonly asCumulusXcm: PezcumulusPezpalletXcmOrigin; + readonly isOrigins: boolean; + readonly asOrigins: AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + readonly type: 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Origins'; + } + + /** @name AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin (389) */ + interface AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin extends Enum { + readonly isStakingAdmin: boolean; + readonly isTreasurer: boolean; + readonly isFellowshipAdmin: boolean; + readonly isGeneralAdmin: boolean; + readonly isAuctionAdmin: boolean; + readonly isLeaseAdmin: boolean; + readonly isReferendumCanceller: boolean; + readonly isReferendumKiller: boolean; + readonly isSmallTipper: boolean; + readonly isBigTipper: boolean; + readonly isSmallSpender: boolean; + readonly isMediumSpender: boolean; + readonly isBigSpender: boolean; + readonly isWhitelistedCaller: boolean; + readonly isFellowshipInitiates: boolean; + readonly isFellows: boolean; + readonly isFellowshipExperts: boolean; + readonly isFellowshipMasters: boolean; + readonly isFellowship1Dan: boolean; + readonly isFellowship2Dan: boolean; + readonly isFellowship3Dan: boolean; + readonly isFellowship4Dan: boolean; + readonly isFellowship5Dan: boolean; + readonly isFellowship6Dan: boolean; + readonly isFellowship7Dan: boolean; + readonly isFellowship8Dan: boolean; + readonly isFellowship9Dan: boolean; + readonly isWishForChange: boolean; + readonly type: 'StakingAdmin' | 'Treasurer' | 'FellowshipAdmin' | 'GeneralAdmin' | 'AuctionAdmin' | 'LeaseAdmin' | 'ReferendumCanceller' | 'ReferendumKiller' | 'SmallTipper' | 'BigTipper' | 'SmallSpender' | 'MediumSpender' | 'BigSpender' | 'WhitelistedCaller' | 'FellowshipInitiates' | 'Fellows' | 'FellowshipExperts' | 'FellowshipMasters' | 'Fellowship1Dan' | 'Fellowship2Dan' | 'Fellowship3Dan' | 'Fellowship4Dan' | 'Fellowship5Dan' | 'Fellowship6Dan' | 'Fellowship7Dan' | 'Fellowship8Dan' | 'Fellowship9Dan' | 'WishForChange'; + } + + /** @name PezpalletRemoteProxyCall (394) */ + interface PezpalletRemoteProxyCall extends Enum { + readonly isRemoteProxy: boolean; + readonly asRemoteProxy: { + readonly real: MultiAddress; + readonly forceProxyType: Option; + readonly call: RuntimeCall; + readonly proof: PezpalletRemoteProxyRemoteProxyProof; + } & Struct; + readonly isRegisterRemoteProxyProof: boolean; + readonly asRegisterRemoteProxyProof: { + readonly proof: PezpalletRemoteProxyRemoteProxyProof; + } & Struct; + readonly isRemoteProxyWithRegisteredProof: boolean; + readonly asRemoteProxyWithRegisteredProof: { + readonly real: MultiAddress; + readonly forceProxyType: Option; + readonly call: RuntimeCall; + } & Struct; + readonly type: 'RemoteProxy' | 'RegisterRemoteProxyProof' | 'RemoteProxyWithRegisteredProof'; + } + + /** @name PezpalletRemoteProxyRemoteProxyProof (395) */ + interface PezpalletRemoteProxyRemoteProxyProof extends Enum { + readonly isRelayChain: boolean; + readonly asRelayChain: { + readonly proof: Vec; + readonly block: u32; + } & Struct; + readonly type: 'RelayChain'; + } + + /** @name AssetHubDicleRuntimeStakingNposCompactSolution24 (466) */ + interface AssetHubDicleRuntimeStakingNposCompactSolution24 extends Struct { + readonly votes1: Vec, Compact]>>; + readonly votes2: Vec, ITuple<[Compact, Compact]>, Compact]>>; + readonly votes3: Vec, Vec, Compact]>>, Compact]>>; + readonly votes4: Vec, Vec, Compact]>>, Compact]>>; + readonly votes5: Vec, Vec, Compact]>>, Compact]>>; + readonly votes6: Vec, Vec, Compact]>>, Compact]>>; + readonly votes7: Vec, Vec, Compact]>>, Compact]>>; + readonly votes8: Vec, Vec, Compact]>>, Compact]>>; + readonly votes9: Vec, Vec, Compact]>>, Compact]>>; + readonly votes10: Vec, Vec, Compact]>>, Compact]>>; + readonly votes11: Vec, Vec, Compact]>>, Compact]>>; + readonly votes12: Vec, Vec, Compact]>>, Compact]>>; + readonly votes13: Vec, Vec, Compact]>>, Compact]>>; + readonly votes14: Vec, Vec, Compact]>>, Compact]>>; + readonly votes15: Vec, Vec, Compact]>>, Compact]>>; + readonly votes16: Vec, Vec, Compact]>>, Compact]>>; + readonly votes17: Vec, Vec, Compact]>>, Compact]>>; + readonly votes18: Vec, Vec, Compact]>>, Compact]>>; + readonly votes19: Vec, Vec, Compact]>>, Compact]>>; + readonly votes20: Vec, Vec, Compact]>>, Compact]>>; + readonly votes21: Vec, Vec, Compact]>>, Compact]>>; + readonly votes22: Vec, Vec, Compact]>>, Compact]>>; + readonly votes23: Vec, Vec, Compact]>>, Compact]>>; + readonly votes24: Vec, Vec, Compact]>>, Compact]>>; + } + + /** @name PezpalletProxyProxyDefinitionDicleRuntimeConstantsProxyProxyType (598) */ + interface PezpalletProxyProxyDefinitionDicleRuntimeConstantsProxyProxyType extends Struct { + readonly delegate: AccountId32; + readonly proxyType: DicleRuntimeConstantsProxyProxyType; + readonly delay: u32; + } + + /** @name AssetHubDicleRuntimeAhMigrationRcPalletsOrigin (650) */ + interface AssetHubDicleRuntimeAhMigrationRcPalletsOrigin extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isOrigins: boolean; + readonly asOrigins: AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + readonly type: 'System' | 'Origins'; + } + + /** @name PezpalletRcMigratorRecoveryPortableRecoveryMessage (746) */ + interface PezpalletRcMigratorRecoveryPortableRecoveryMessage extends Enum { + readonly isRecoverable: boolean; + readonly asRecoverable: ITuple<[AccountId32, PezpalletRcMigratorRecoveryPortableRecoveryConfig]>; + readonly isActiveRecoveries: boolean; + readonly asActiveRecoveries: ITuple<[AccountId32, AccountId32, PezpalletRcMigratorRecoveryPortableActiveRecovery]>; + readonly isProxy: boolean; + readonly asProxy: ITuple<[AccountId32, AccountId32]>; + readonly type: 'Recoverable' | 'ActiveRecoveries' | 'Proxy'; + } + + /** @name PezpalletRcMigratorRecoveryPortableRecoveryConfig (748) */ + interface PezpalletRcMigratorRecoveryPortableRecoveryConfig extends Struct { + readonly delayPeriod: u32; + readonly deposit: u128; + readonly friends: PezpalletRcMigratorRecoveryPortableRecoveryFriends; + readonly threshold: u16; + } + + /** @name PezpalletRcMigratorRecoveryPortableRecoveryFriends (749) */ + interface PezpalletRcMigratorRecoveryPortableRecoveryFriends extends Struct { + readonly friends: Vec; + } + + /** @name PezpalletRcMigratorRecoveryPortableActiveRecovery (752) */ + interface PezpalletRcMigratorRecoveryPortableActiveRecovery extends Struct { + readonly created: u32; + readonly deposit: u128; + readonly friends: PezpalletRcMigratorRecoveryPortableRecoveryFriends; + } + + /** @name PezpalletRcMigratorSocietyPortableSocietyMessage (755) */ + interface PezpalletRcMigratorSocietyPortableSocietyMessage extends Enum { + readonly isValues: boolean; + readonly asValues: PezpalletRcMigratorSocietySocietyValues; + readonly isMember: boolean; + readonly asMember: ITuple<[AccountId32, PezpalletRcMigratorSocietyPortableMemberRecord]>; + readonly isPayout: boolean; + readonly asPayout: ITuple<[AccountId32, PezpalletRcMigratorSocietyPortablePayoutRecord]>; + readonly isMemberByIndex: boolean; + readonly asMemberByIndex: ITuple<[u32, AccountId32]>; + readonly isSuspendedMembers: boolean; + readonly asSuspendedMembers: ITuple<[AccountId32, PezpalletRcMigratorSocietyPortableMemberRecord]>; + readonly isCandidates: boolean; + readonly asCandidates: ITuple<[AccountId32, PezpalletRcMigratorSocietyPortableCandidacy]>; + readonly isVotes: boolean; + readonly asVotes: ITuple<[AccountId32, AccountId32, PezpalletRcMigratorSocietyPortableVote]>; + readonly isVoteClearCursor: boolean; + readonly asVoteClearCursor: ITuple<[AccountId32, Bytes]>; + readonly isDefenderVotes: boolean; + readonly asDefenderVotes: ITuple<[u32, AccountId32, PezpalletRcMigratorSocietyPortableVote]>; + readonly type: 'Values' | 'Member' | 'Payout' | 'MemberByIndex' | 'SuspendedMembers' | 'Candidates' | 'Votes' | 'VoteClearCursor' | 'DefenderVotes'; + } + + /** @name PezpalletRcMigratorSocietySocietyValues (756) */ + interface PezpalletRcMigratorSocietySocietyValues extends Struct { + readonly parameters: Option; + readonly pot: Option; + readonly founder: Option; + readonly head: Option; + readonly rules: Option; + readonly memberCount: Option; + readonly roundCount: Option; + readonly bids: Option>; + readonly sceptic: Option; + readonly nextHead: Option; + readonly challengeRoundCount: Option; + readonly defending: Option>; + readonly nextIntakeAt: Option; + readonly nextChallengeAt: Option; + } + + /** @name PezpalletRcMigratorSocietyPortableGroupParams (758) */ + interface PezpalletRcMigratorSocietyPortableGroupParams extends Struct { + readonly maxMembers: u32; + readonly maxIntake: u32; + readonly maxStrikes: u32; + readonly candidateDeposit: u128; + } + + /** @name PezpalletRcMigratorSocietyPortableBid (761) */ + interface PezpalletRcMigratorSocietyPortableBid extends Struct { + readonly who: AccountId32; + readonly kind: PezpalletRcMigratorSocietyPortableBidKind; + readonly value: u128; + } + + /** @name PezpalletRcMigratorSocietyPortableBidKind (762) */ + interface PezpalletRcMigratorSocietyPortableBidKind extends Enum { + readonly isDeposit: boolean; + readonly asDeposit: u128; + readonly isVouch: boolean; + readonly asVouch: ITuple<[AccountId32, u128]>; + readonly type: 'Deposit' | 'Vouch'; + } + + /** @name PezpalletRcMigratorSocietyPortableIntakeRecord (764) */ + interface PezpalletRcMigratorSocietyPortableIntakeRecord extends Struct { + readonly who: AccountId32; + readonly bid: u128; + readonly round: u32; + } + + /** @name PezpalletRcMigratorSocietyPortableTally (767) */ + interface PezpalletRcMigratorSocietyPortableTally extends Struct { + readonly approvals: u32; + readonly rejections: u32; + } + + /** @name PezpalletRcMigratorSocietyPortableMemberRecord (768) */ + interface PezpalletRcMigratorSocietyPortableMemberRecord extends Struct { + readonly rank: u32; + readonly strikes: u32; + readonly vouching: Option; + readonly index: u32; + } + + /** @name PezpalletRcMigratorSocietyPortableVouchingStatus (770) */ + interface PezpalletRcMigratorSocietyPortableVouchingStatus extends Enum { + readonly isVouching: boolean; + readonly isBanned: boolean; + readonly type: 'Vouching' | 'Banned'; + } + + /** @name PezpalletRcMigratorSocietyPortablePayoutRecord (771) */ + interface PezpalletRcMigratorSocietyPortablePayoutRecord extends Struct { + readonly paid: u128; + readonly payouts: Vec>; + } + + /** @name PezpalletRcMigratorSocietyPortableCandidacy (772) */ + interface PezpalletRcMigratorSocietyPortableCandidacy extends Struct { + readonly round: u32; + readonly kind: PezpalletRcMigratorSocietyPortableBidKind; + readonly bid: u128; + readonly tally: PezpalletRcMigratorSocietyPortableTally; + readonly skepticStruck: bool; + } + + /** @name PezpalletRcMigratorSocietyPortableVote (773) */ + interface PezpalletRcMigratorSocietyPortableVote extends Struct { + readonly approve: bool; + readonly weight: u32; + } + + /** @name AssetHubDicleRuntimeRuntimeHoldReason (853) */ + interface AssetHubDicleRuntimeRuntimeHoldReason extends Enum { + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageHoldReason; + readonly isSession: boolean; + readonly asSession: PezpalletSessionHoldReason; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PezpalletXcmHoldReason; + readonly isNftFractionalization: boolean; + readonly asNftFractionalization: PezpalletNftFractionalizationHoldReason; + readonly isRevive: boolean; + readonly asRevive: PezpalletReviveHoldReason; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationHoldReason; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingHoldReason; + readonly isMultiBlockElectionSigned: boolean; + readonly asMultiBlockElectionSigned: PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingAsyncPezpalletHoldReason; + readonly type: 'Preimage' | 'Session' | 'PolkadotXcm' | 'NftFractionalization' | 'Revive' | 'StateTrieMigration' | 'DelegatedStaking' | 'MultiBlockElectionSigned' | 'Staking'; + } + + /** @name AssetHubDicleRuntimeRuntimeFreezeReason (861) */ + interface AssetHubDicleRuntimeRuntimeFreezeReason extends Enum { + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsFreezeReason; + readonly type: 'NominationPools'; + } + + /** @name PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType (939) */ + interface PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType extends Struct { + readonly delegate: AccountId32; + readonly proxyType: AssetHubDicleRuntimeProxyType; + readonly delay: u32; + } + + /** @name PezpalletRemoteProxyError (947) */ + interface PezpalletRemoteProxyError extends Enum { + readonly isCouldNotConvertLocalToRemoteAccountId: boolean; + readonly isUnknownProofAnchorBlock: boolean; + readonly isInvalidProof: boolean; + readonly isProxyDefinitionDecodingFailed: boolean; + readonly isUnannounced: boolean; + readonly isDidNotFindMatchingProxyDefinition: boolean; + readonly isProxyProofNotRegistered: boolean; + readonly type: 'CouldNotConvertLocalToRemoteAccountId' | 'UnknownProofAnchorBlock' | 'InvalidProof' | 'ProxyDefinitionDecodingFailed' | 'Unannounced' | 'DidNotFindMatchingProxyDefinition' | 'ProxyProofNotRegistered'; + } + + /** @name PezpalletReviveVmCodeInfo (1023) */ + interface PezpalletReviveVmCodeInfo extends Struct { + readonly owner: AccountId32; + readonly deposit: Compact; + readonly refcount: Compact; + readonly codeLen: u32; + readonly behaviourVersion: u32; + } + + /** @name PezpalletReviveStorageAccountInfo (1024) */ + interface PezpalletReviveStorageAccountInfo extends Struct { + readonly accountType: PezpalletReviveStorageAccountType; + readonly dust: u32; + } + + /** @name PezpalletReviveStorageAccountType (1025) */ + interface PezpalletReviveStorageAccountType extends Enum { + readonly isContract: boolean; + readonly asContract: PezpalletReviveStorageContractInfo; + readonly isEoa: boolean; + readonly type: 'Contract' | 'Eoa'; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesPrestateTracerConfig (1233) */ + interface PezpalletReviveEvmApiDebugRpcTypesPrestateTracerConfig extends Struct { + readonly diffMode: bool; + readonly disableStorage: bool; + readonly disableCode: bool; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesPrestateTrace (1242) */ + interface PezpalletReviveEvmApiDebugRpcTypesPrestateTrace extends Enum { + readonly isPrestate: boolean; + readonly asPrestate: BTreeMap; + readonly isDiffMode: boolean; + readonly asDiffMode: { + readonly pre: BTreeMap; + readonly post: BTreeMap; + } & Struct; + readonly type: 'Prestate' | 'DiffMode'; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesPrestateTraceInfo (1244) */ + interface PezpalletReviveEvmApiDebugRpcTypesPrestateTraceInfo extends Struct { + readonly balance: Option; + readonly nonce: Option; + readonly code: Option; + readonly storage: BTreeMap>; + } + + /** @name AssetHubDicleRuntimeRuntimeError (1252) */ + interface AssetHubDicleRuntimeRuntimeError extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSystemError; + readonly isParachainSystem: boolean; + readonly asParachainSystem: PezcumulusPezpalletTeyrchainSystemError; + readonly isMultiBlockMigrations: boolean; + readonly asMultiBlockMigrations: PezpalletMigrationsError; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageError; + readonly isScheduler: boolean; + readonly asScheduler: PezpalletSchedulerError; + readonly isBalances: boolean; + readonly asBalances: PezpalletBalancesError; + readonly isVesting: boolean; + readonly asVesting: PezpalletVestingError; + readonly isClaims: boolean; + readonly asClaims: PezkuwiRuntimeCommonClaimsPezpalletError; + readonly isCollatorSelection: boolean; + readonly asCollatorSelection: PezpalletCollatorSelectionError; + readonly isSession: boolean; + readonly asSession: PezpalletSessionError; + readonly isXcmpQueue: boolean; + readonly asXcmpQueue: PezcumulusPezpalletXcmpQueueError; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PezpalletXcmError; + readonly isMessageQueue: boolean; + readonly asMessageQueue: PezpalletMessageQueueError; + readonly isUtility: boolean; + readonly asUtility: PezpalletUtilityError; + readonly isMultisig: boolean; + readonly asMultisig: PezpalletMultisigError; + readonly isProxy: boolean; + readonly asProxy: PezpalletProxyError; + readonly isRemoteProxyRelayChain: boolean; + readonly asRemoteProxyRelayChain: PezpalletRemoteProxyError; + readonly isIndices: boolean; + readonly asIndices: PezpalletIndicesError; + readonly isAssets: boolean; + readonly asAssets: PezpalletAssetsError; + readonly isUniques: boolean; + readonly asUniques: PezpalletUniquesError; + readonly isNfts: boolean; + readonly asNfts: PezpalletNftsError; + readonly isForeignAssets: boolean; + readonly asForeignAssets: PezpalletAssetsError; + readonly isNftFractionalization: boolean; + readonly asNftFractionalization: PezpalletNftFractionalizationError; + readonly isPoolAssets: boolean; + readonly asPoolAssets: PezpalletAssetsError; + readonly isAssetConversion: boolean; + readonly asAssetConversion: PezpalletAssetConversionError; + readonly isRecovery: boolean; + readonly asRecovery: PezpalletRecoveryError; + readonly isSociety: boolean; + readonly asSociety: PezpalletSocietyError; + readonly isRevive: boolean; + readonly asRevive: PezpalletReviveError; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationError; + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsError; + readonly isVoterList: boolean; + readonly asVoterList: PezpalletBagsListError; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingError; + readonly isMultiBlockElection: boolean; + readonly asMultiBlockElection: PezpalletElectionProviderMultiBlockError; + readonly isMultiBlockElectionSigned: boolean; + readonly asMultiBlockElectionSigned: PezpalletElectionProviderMultiBlockSignedPezpalletError; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingAsyncPezpalletError; + readonly isTreasury: boolean; + readonly asTreasury: PezpalletTreasuryError; + readonly isConvictionVoting: boolean; + readonly asConvictionVoting: PezpalletConvictionVotingError; + readonly isReferenda: boolean; + readonly asReferenda: PezpalletReferendaError; + readonly isWhitelist: boolean; + readonly asWhitelist: PezpalletWhitelistError; + readonly isBounties: boolean; + readonly asBounties: PezpalletBountiesError; + readonly isChildBounties: boolean; + readonly asChildBounties: PezpalletChildBountiesError; + readonly isAssetRate: boolean; + readonly asAssetRate: PezpalletAssetRateError; + readonly isAhOps: boolean; + readonly asAhOps: PezpalletAhOpsError; + readonly isAhMigrator: boolean; + readonly asAhMigrator: PezpalletAhMigratorError; + readonly type: 'System' | 'ParachainSystem' | 'MultiBlockMigrations' | 'Preimage' | 'Scheduler' | 'Balances' | 'Vesting' | 'Claims' | 'CollatorSelection' | 'Session' | 'XcmpQueue' | 'PolkadotXcm' | 'MessageQueue' | 'Utility' | 'Multisig' | 'Proxy' | 'RemoteProxyRelayChain' | 'Indices' | 'Assets' | 'Uniques' | 'Nfts' | 'ForeignAssets' | 'NftFractionalization' | 'PoolAssets' | 'AssetConversion' | 'Recovery' | 'Society' | 'Revive' | 'StateTrieMigration' | 'NominationPools' | 'VoterList' | 'DelegatedStaking' | 'MultiBlockElection' | 'MultiBlockElectionSigned' | 'Staking' | 'Treasury' | 'ConvictionVoting' | 'Referenda' | 'Whitelist' | 'Bounties' | 'ChildBounties' | 'AssetRate' | 'AhOps' | 'AhMigrator'; + } + +} // declare module diff --git a/packages/types-augment/src/lookup/types-assetHubPezkuwi.ts b/packages/types-augment/src/lookup/types-assetHubPezkuwi.ts new file mode 100644 index 0000000..9d9295e --- /dev/null +++ b/packages/types-augment/src/lookup/types-assetHubPezkuwi.ts @@ -0,0 +1,2710 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/lookup'; + +import type { BTreeMap, BTreeSet, Bytes, Compact, Enum, Null, Option, Result, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, MultiAddress, PerU16, Perbill, Percent } from '@pezkuwi/types/interfaces/runtime'; + +declare module '@pezkuwi/types/lookup' { + /** @name AssetHubPezkuwiRuntimeRuntimeTask (32) */ + type AssetHubPezkuwiRuntimeRuntimeTask = Null; + + /** @name PezcumulusPezpalletTeyrchainSystemEvent (33) */ + interface PezcumulusPezpalletTeyrchainSystemEvent extends Enum { + readonly isValidationFunctionStored: boolean; + readonly isValidationFunctionApplied: boolean; + readonly asValidationFunctionApplied: { + readonly relayChainBlockNum: u32; + } & Struct; + readonly isValidationFunctionDiscarded: boolean; + readonly isDownwardMessagesReceived: boolean; + readonly asDownwardMessagesReceived: { + readonly count: u32; + } & Struct; + readonly isDownwardMessagesProcessed: boolean; + readonly asDownwardMessagesProcessed: { + readonly weightUsed: PezspWeightsWeightV2Weight; + readonly dmqHead: H256; + } & Struct; + readonly isUpwardMessageSent: boolean; + readonly asUpwardMessageSent: { + readonly messageHash: Option; + } & Struct; + readonly type: 'ValidationFunctionStored' | 'ValidationFunctionApplied' | 'ValidationFunctionDiscarded' | 'DownwardMessagesReceived' | 'DownwardMessagesProcessed' | 'UpwardMessageSent'; + } + + /** @name AssetHubPezkuwiRuntimeRuntimeParametersKey (41) */ + interface AssetHubPezkuwiRuntimeRuntimeParametersKey extends Enum { + readonly isStakingElection: boolean; + readonly asStakingElection: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey; + readonly isScheduler: boolean; + readonly asScheduler: AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey; + readonly isMessageQueue: boolean; + readonly asMessageQueue: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey; + readonly type: 'StakingElection' | 'Scheduler' | 'MessageQueue'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey (42) */ + interface AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey extends Enum { + readonly isSignedPhase: boolean; + readonly isMaxSignedSubmissions: boolean; + readonly isUnsignedPhase: boolean; + readonly isMinerPages: boolean; + readonly isMaxElectingVoters: boolean; + readonly isTargetSnapshotPerBlock: boolean; + readonly isMaxEraDuration: boolean; + readonly type: 'SignedPhase' | 'MaxSignedSubmissions' | 'UnsignedPhase' | 'MinerPages' | 'MaxElectingVoters' | 'TargetSnapshotPerBlock' | 'MaxEraDuration'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase (43) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions (44) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase (45) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages (46) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters (47) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock (48) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration (49) */ + type AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey (50) */ + interface AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey extends Enum { + readonly isMaxScheduledPerBlock: boolean; + readonly isMaximumWeight: boolean; + readonly type: 'MaxScheduledPerBlock' | 'MaximumWeight'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock (51) */ + type AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight (52) */ + type AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey (53) */ + interface AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey extends Enum { + readonly isMaxOnInitWeight: boolean; + readonly isMaxOnIdleWeight: boolean; + readonly type: 'MaxOnInitWeight' | 'MaxOnIdleWeight'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight (54) */ + type AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight = Null; + + /** @name AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight (55) */ + type AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight = Null; + + /** @name AssetHubPezkuwiRuntimeRuntimeParametersValue (57) */ + interface AssetHubPezkuwiRuntimeRuntimeParametersValue extends Enum { + readonly isStakingElection: boolean; + readonly asStakingElection: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue; + readonly isScheduler: boolean; + readonly asScheduler: AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue; + readonly isMessageQueue: boolean; + readonly asMessageQueue: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue; + readonly type: 'StakingElection' | 'Scheduler' | 'MessageQueue'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue (58) */ + interface AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue extends Enum { + readonly isSignedPhase: boolean; + readonly asSignedPhase: u32; + readonly isMaxSignedSubmissions: boolean; + readonly asMaxSignedSubmissions: u32; + readonly isUnsignedPhase: boolean; + readonly asUnsignedPhase: u32; + readonly isMinerPages: boolean; + readonly asMinerPages: u32; + readonly isMaxElectingVoters: boolean; + readonly asMaxElectingVoters: u32; + readonly isTargetSnapshotPerBlock: boolean; + readonly asTargetSnapshotPerBlock: u32; + readonly isMaxEraDuration: boolean; + readonly asMaxEraDuration: u64; + readonly type: 'SignedPhase' | 'MaxSignedSubmissions' | 'UnsignedPhase' | 'MinerPages' | 'MaxElectingVoters' | 'TargetSnapshotPerBlock' | 'MaxEraDuration'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue (59) */ + interface AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue extends Enum { + readonly isMaxScheduledPerBlock: boolean; + readonly asMaxScheduledPerBlock: u32; + readonly isMaximumWeight: boolean; + readonly asMaximumWeight: PezspWeightsWeightV2Weight; + readonly type: 'MaxScheduledPerBlock' | 'MaximumWeight'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue (60) */ + interface AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue extends Enum { + readonly isMaxOnInitWeight: boolean; + readonly asMaxOnInitWeight: Option; + readonly isMaxOnIdleWeight: boolean; + readonly asMaxOnIdleWeight: Option; + readonly type: 'MaxOnInitWeight' | 'MaxOnIdleWeight'; + } + + /** @name PezpalletCollatorSelectionEvent (88) */ + interface PezpalletCollatorSelectionEvent extends Enum { + readonly isNewInvulnerables: boolean; + readonly asNewInvulnerables: { + readonly invulnerables: Vec; + } & Struct; + readonly isInvulnerableAdded: boolean; + readonly asInvulnerableAdded: { + readonly accountId: AccountId32; + } & Struct; + readonly isInvulnerableRemoved: boolean; + readonly asInvulnerableRemoved: { + readonly accountId: AccountId32; + } & Struct; + readonly isNewDesiredCandidates: boolean; + readonly asNewDesiredCandidates: { + readonly desiredCandidates: u32; + } & Struct; + readonly isNewCandidacyBond: boolean; + readonly asNewCandidacyBond: { + readonly bondAmount: u128; + } & Struct; + readonly isCandidateAdded: boolean; + readonly asCandidateAdded: { + readonly accountId: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isCandidateBondUpdated: boolean; + readonly asCandidateBondUpdated: { + readonly accountId: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isCandidateRemoved: boolean; + readonly asCandidateRemoved: { + readonly accountId: AccountId32; + } & Struct; + readonly isCandidateReplaced: boolean; + readonly asCandidateReplaced: { + readonly old: AccountId32; + readonly new_: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isInvalidInvulnerableSkipped: boolean; + readonly asInvalidInvulnerableSkipped: { + readonly accountId: AccountId32; + } & Struct; + readonly type: 'NewInvulnerables' | 'InvulnerableAdded' | 'InvulnerableRemoved' | 'NewDesiredCandidates' | 'NewCandidacyBond' | 'CandidateAdded' | 'CandidateBondUpdated' | 'CandidateRemoved' | 'CandidateReplaced' | 'InvalidInvulnerableSkipped'; + } + + /** @name PezcumulusPezpalletXcmpQueueEvent (91) */ + interface PezcumulusPezpalletXcmpQueueEvent extends Enum { + readonly isXcmpMessageSent: boolean; + readonly asXcmpMessageSent: { + readonly messageHash: U8aFixed; + } & Struct; + readonly type: 'XcmpMessageSent'; + } + + /** @name PezcumulusPezpalletXcmEvent (166) */ + interface PezcumulusPezpalletXcmEvent extends Enum { + readonly isInvalidFormat: boolean; + readonly asInvalidFormat: U8aFixed; + readonly isUnsupportedVersion: boolean; + readonly asUnsupportedVersion: U8aFixed; + readonly isExecutedDownward: boolean; + readonly asExecutedDownward: ITuple<[U8aFixed, StagingXcmV5TraitsOutcome]>; + readonly type: 'InvalidFormat' | 'UnsupportedVersion' | 'ExecutedDownward'; + } + + /** @name PezpalletXcmBridgeHubRouterEvent (167) */ + interface PezpalletXcmBridgeHubRouterEvent extends Enum { + readonly isDeliveryFeeFactorDecreased: boolean; + readonly asDeliveryFeeFactorDecreased: { + readonly newValue: u128; + } & Struct; + readonly isDeliveryFeeFactorIncreased: boolean; + readonly asDeliveryFeeFactorIncreased: { + readonly newValue: u128; + } & Struct; + readonly type: 'DeliveryFeeFactorDecreased' | 'DeliveryFeeFactorIncreased'; + } + + /** @name PezcumulusPrimitivesCoreAggregateMessageOrigin (170) */ + interface PezcumulusPrimitivesCoreAggregateMessageOrigin extends Enum { + readonly isHere: boolean; + readonly isParent: boolean; + readonly isSibling: boolean; + readonly asSibling: u32; + readonly type: 'Here' | 'Parent' | 'Sibling'; + } + + /** @name SnowbridgePezpalletSystemFrontendEvent (173) */ + interface SnowbridgePezpalletSystemFrontendEvent extends Enum { + readonly isMessageSent: boolean; + readonly asMessageSent: { + readonly origin: StagingXcmV5Location; + readonly destination: StagingXcmV5Location; + readonly message: StagingXcmV5Xcm; + readonly messageId: U8aFixed; + } & Struct; + readonly isExportOperatingModeChanged: boolean; + readonly asExportOperatingModeChanged: { + readonly mode: SnowbridgeCoreOperatingModeBasicOperatingMode; + } & Struct; + readonly type: 'MessageSent' | 'ExportOperatingModeChanged'; + } + + /** @name SnowbridgeCoreOperatingModeBasicOperatingMode (174) */ + interface SnowbridgeCoreOperatingModeBasicOperatingMode extends Enum { + readonly isNormal: boolean; + readonly isHalted: boolean; + readonly type: 'Normal' | 'Halted'; + } + + /** @name AssetHubPezkuwiRuntimeProxyType (179) */ + interface AssetHubPezkuwiRuntimeProxyType extends Enum { + readonly isAny: boolean; + readonly isNonTransfer: boolean; + readonly isCancelProxy: boolean; + readonly isAssets: boolean; + readonly isAssetOwner: boolean; + readonly isAssetManager: boolean; + readonly isCollator: boolean; + readonly isGovernance: boolean; + readonly isStaking: boolean; + readonly isNominationPools: boolean; + readonly isAuction: boolean; + readonly isParaRegistration: boolean; + readonly type: 'Any' | 'NonTransfer' | 'CancelProxy' | 'Assets' | 'AssetOwner' | 'AssetManager' | 'Collator' | 'Governance' | 'Staking' | 'NominationPools' | 'Auction' | 'ParaRegistration'; + } + + /** @name TeyrchainsCommonPayVersionedLocatableAccount (207) */ + interface TeyrchainsCommonPayVersionedLocatableAccount extends Enum { + readonly isV4: boolean; + readonly asV4: { + readonly location: StagingXcmV4Location; + readonly accountId: StagingXcmV4Location; + } & Struct; + readonly isV5: boolean; + readonly asV5: { + readonly location: StagingXcmV5Location; + readonly accountId: StagingXcmV5Location; + } & Struct; + readonly type: 'V4' | 'V5'; + } + + /** @name PezcumulusPezpalletTeyrchainSystemCall (218) */ + interface PezcumulusPezpalletTeyrchainSystemCall extends Enum { + readonly isSetValidationData: boolean; + readonly asSetValidationData: { + readonly data: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData; + readonly inboundMessagesData: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData; + } & Struct; + readonly isSudoSendUpwardMessage: boolean; + readonly asSudoSendUpwardMessage: { + readonly message: Bytes; + } & Struct; + readonly type: 'SetValidationData' | 'SudoSendUpwardMessage'; + } + + /** @name PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData (219) */ + interface PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData extends Struct { + readonly validationData: PezkuwiPrimitivesV8PersistedValidationData; + readonly relayChainState: PezspTrieStorageProof; + readonly relayParentDescendants: Vec; + readonly collatorPeerId: Option; + } + + /** @name PezspTrieStorageProof (222) */ + interface PezspTrieStorageProof extends Struct { + readonly trieNodes: BTreeSet; + } + + /** @name PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData (227) */ + interface PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData extends Struct { + readonly downwardMessages: { + readonly fullMessages: Vec; + readonly hashedMessages: Vec; + } & Struct; + readonly horizontalMessages: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection; + } + + /** @name PezcumulusPrimitivesTeyrchainInherentHashedMessage (232) */ + interface PezcumulusPrimitivesTeyrchainInherentHashedMessage extends Struct { + readonly sentAt: u32; + readonly msgHash: H256; + } + + /** @name PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection (233) */ + interface PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection extends Struct { + readonly fullMessages: Vec>; + readonly hashedMessages: Vec>; + } + + /** @name StagingTeyrchainInfoCall (240) */ + type StagingTeyrchainInfoCall = Null; + + /** @name AssetHubPezkuwiRuntimeRuntimeParameters (246) */ + interface AssetHubPezkuwiRuntimeRuntimeParameters extends Enum { + readonly isStakingElection: boolean; + readonly asStakingElection: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters; + readonly isScheduler: boolean; + readonly asScheduler: AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters; + readonly isMessageQueue: boolean; + readonly asMessageQueue: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters; + readonly type: 'StakingElection' | 'Scheduler' | 'MessageQueue'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters (247) */ + interface AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters extends Enum { + readonly isSignedPhase: boolean; + readonly asSignedPhase: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase, Option]>; + readonly isMaxSignedSubmissions: boolean; + readonly asMaxSignedSubmissions: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions, Option]>; + readonly isUnsignedPhase: boolean; + readonly asUnsignedPhase: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase, Option]>; + readonly isMinerPages: boolean; + readonly asMinerPages: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages, Option]>; + readonly isMaxElectingVoters: boolean; + readonly asMaxElectingVoters: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters, Option]>; + readonly isTargetSnapshotPerBlock: boolean; + readonly asTargetSnapshotPerBlock: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock, Option]>; + readonly isMaxEraDuration: boolean; + readonly asMaxEraDuration: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration, Option]>; + readonly type: 'SignedPhase' | 'MaxSignedSubmissions' | 'UnsignedPhase' | 'MinerPages' | 'MaxElectingVoters' | 'TargetSnapshotPerBlock' | 'MaxEraDuration'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters (248) */ + interface AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters extends Enum { + readonly isMaxScheduledPerBlock: boolean; + readonly asMaxScheduledPerBlock: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock, Option]>; + readonly isMaximumWeight: boolean; + readonly asMaximumWeight: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight, Option]>; + readonly type: 'MaxScheduledPerBlock' | 'MaximumWeight'; + } + + /** @name AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters (249) */ + interface AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters extends Enum { + readonly isMaxOnInitWeight: boolean; + readonly asMaxOnInitWeight: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight, Option>]>; + readonly isMaxOnIdleWeight: boolean; + readonly asMaxOnIdleWeight: ITuple<[AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight, Option>]>; + readonly type: 'MaxOnInitWeight' | 'MaxOnIdleWeight'; + } + + /** @name PezpalletCollatorSelectionCall (264) */ + interface PezpalletCollatorSelectionCall extends Enum { + readonly isSetInvulnerables: boolean; + readonly asSetInvulnerables: { + readonly new_: Vec; + } & Struct; + readonly isSetDesiredCandidates: boolean; + readonly asSetDesiredCandidates: { + readonly max: u32; + } & Struct; + readonly isSetCandidacyBond: boolean; + readonly asSetCandidacyBond: { + readonly bond: u128; + } & Struct; + readonly isRegisterAsCandidate: boolean; + readonly isLeaveIntent: boolean; + readonly isAddInvulnerable: boolean; + readonly asAddInvulnerable: { + readonly who: AccountId32; + } & Struct; + readonly isRemoveInvulnerable: boolean; + readonly asRemoveInvulnerable: { + readonly who: AccountId32; + } & Struct; + readonly isUpdateBond: boolean; + readonly asUpdateBond: { + readonly newDeposit: u128; + } & Struct; + readonly isTakeCandidateSlot: boolean; + readonly asTakeCandidateSlot: { + readonly deposit: u128; + readonly target: AccountId32; + } & Struct; + readonly type: 'SetInvulnerables' | 'SetDesiredCandidates' | 'SetCandidacyBond' | 'RegisterAsCandidate' | 'LeaveIntent' | 'AddInvulnerable' | 'RemoveInvulnerable' | 'UpdateBond' | 'TakeCandidateSlot'; + } + + /** @name AssetHubPezkuwiRuntimeSessionKeys (266) */ + interface AssetHubPezkuwiRuntimeSessionKeys extends Struct { + readonly aura: PezspConsensusAuraEd25519AppEd25519Public; + } + + /** @name PezspConsensusAuraEd25519AppEd25519Public (267) */ + interface PezspConsensusAuraEd25519AppEd25519Public extends U8aFixed {} + + /** @name PezcumulusPezpalletXcmpQueueCall (268) */ + interface PezcumulusPezpalletXcmpQueueCall extends Enum { + readonly isSuspendXcmExecution: boolean; + readonly isResumeXcmExecution: boolean; + readonly isUpdateSuspendThreshold: boolean; + readonly asUpdateSuspendThreshold: { + readonly new_: u32; + } & Struct; + readonly isUpdateDropThreshold: boolean; + readonly asUpdateDropThreshold: { + readonly new_: u32; + } & Struct; + readonly isUpdateResumeThreshold: boolean; + readonly asUpdateResumeThreshold: { + readonly new_: u32; + } & Struct; + readonly type: 'SuspendXcmExecution' | 'ResumeXcmExecution' | 'UpdateSuspendThreshold' | 'UpdateDropThreshold' | 'UpdateResumeThreshold'; + } + + /** @name PezcumulusPezpalletXcmCall (313) */ + type PezcumulusPezpalletXcmCall = Null; + + /** @name PezpalletXcmBridgeHubRouterCall (314) */ + interface PezpalletXcmBridgeHubRouterCall extends Enum { + readonly isReportBridgeStatus: boolean; + readonly asReportBridgeStatus: { + readonly bridgeId: H256; + readonly isCongested: bool; + } & Struct; + readonly type: 'ReportBridgeStatus'; + } + + /** @name SnowbridgePezpalletSystemFrontendCall (316) */ + interface SnowbridgePezpalletSystemFrontendCall extends Enum { + readonly isSetOperatingMode: boolean; + readonly asSetOperatingMode: { + readonly mode: SnowbridgeCoreOperatingModeBasicOperatingMode; + } & Struct; + readonly isRegisterToken: boolean; + readonly asRegisterToken: { + readonly assetId: XcmVersionedLocation; + readonly metadata: SnowbridgeCoreAssetMetadata; + readonly feeAsset: StagingXcmV5Asset; + } & Struct; + readonly isAddTip: boolean; + readonly asAddTip: { + readonly messageId: SnowbridgeCoreRewardMessageId; + readonly asset: StagingXcmV5Asset; + } & Struct; + readonly type: 'SetOperatingMode' | 'RegisterToken' | 'AddTip'; + } + + /** @name SnowbridgeCoreAssetMetadata (317) */ + interface SnowbridgeCoreAssetMetadata extends Struct { + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + } + + /** @name SnowbridgeCoreRewardMessageId (318) */ + interface SnowbridgeCoreRewardMessageId extends Enum { + readonly isInbound: boolean; + readonly asInbound: u64; + readonly isOutbound: boolean; + readonly asOutbound: u64; + readonly type: 'Inbound' | 'Outbound'; + } + + /** @name AssetHubPezkuwiRuntimeOriginCaller (321) */ + interface AssetHubPezkuwiRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PezpalletXcmOrigin; + readonly isCumulusXcm: boolean; + readonly asCumulusXcm: PezcumulusPezpalletXcmOrigin; + readonly isOrigins: boolean; + readonly asOrigins: AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + readonly type: 'System' | 'PolkadotXcm' | 'CumulusXcm' | 'Origins'; + } + + /** @name PezcumulusPezpalletXcmOrigin (324) */ + interface PezcumulusPezpalletXcmOrigin extends Enum { + readonly isRelay: boolean; + readonly isSiblingParachain: boolean; + readonly asSiblingParachain: u32; + readonly type: 'Relay' | 'SiblingParachain'; + } + + /** @name AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin (325) */ + interface AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin extends Enum { + readonly isStakingAdmin: boolean; + readonly isTreasurer: boolean; + readonly isFellowshipAdmin: boolean; + readonly isGeneralAdmin: boolean; + readonly isAuctionAdmin: boolean; + readonly isLeaseAdmin: boolean; + readonly isReferendumCanceller: boolean; + readonly isReferendumKiller: boolean; + readonly isSmallTipper: boolean; + readonly isBigTipper: boolean; + readonly isSmallSpender: boolean; + readonly isMediumSpender: boolean; + readonly isBigSpender: boolean; + readonly isWhitelistedCaller: boolean; + readonly isWishForChange: boolean; + readonly type: 'StakingAdmin' | 'Treasurer' | 'FellowshipAdmin' | 'GeneralAdmin' | 'AuctionAdmin' | 'LeaseAdmin' | 'ReferendumCanceller' | 'ReferendumKiller' | 'SmallTipper' | 'BigTipper' | 'SmallSpender' | 'MediumSpender' | 'BigSpender' | 'WhitelistedCaller' | 'WishForChange'; + } + + /** @name PezpalletStakingAsyncRcClientCall (392) */ + interface PezpalletStakingAsyncRcClientCall extends Enum { + readonly isRelaySessionReport: boolean; + readonly asRelaySessionReport: { + readonly report: PezpalletStakingAsyncRcClientSessionReport; + } & Struct; + readonly isRelayNewOffencePaged: boolean; + readonly asRelayNewOffencePaged: { + readonly offences: Vec>; + } & Struct; + readonly type: 'RelaySessionReport' | 'RelayNewOffencePaged'; + } + + /** @name PezpalletElectionProviderMultiBlockCall (401) */ + interface PezpalletElectionProviderMultiBlockCall extends Enum { + readonly isManage: boolean; + readonly asManage: { + readonly op: PezpalletElectionProviderMultiBlockAdminOperation; + } & Struct; + readonly type: 'Manage'; + } + + /** @name PezpalletElectionProviderMultiBlockAdminOperation (402) */ + interface PezpalletElectionProviderMultiBlockAdminOperation extends Enum { + readonly isForceRotateRound: boolean; + readonly isForceSetPhase: boolean; + readonly asForceSetPhase: PezpalletElectionProviderMultiBlockPhase; + readonly isEmergencySetSolution: boolean; + readonly asEmergencySetSolution: ITuple<[PezframeElectionProviderSupportBoundedSupports, PezspNposElectionsElectionScore]>; + readonly isEmergencyFallback: boolean; + readonly isSetMinUntrustedScore: boolean; + readonly asSetMinUntrustedScore: PezspNposElectionsElectionScore; + readonly type: 'ForceRotateRound' | 'ForceSetPhase' | 'EmergencySetSolution' | 'EmergencyFallback' | 'SetMinUntrustedScore'; + } + + /** @name PezpalletElectionProviderMultiBlockPhase (403) */ + interface PezpalletElectionProviderMultiBlockPhase extends Enum { + readonly isOff: boolean; + readonly isSigned: boolean; + readonly asSigned: u32; + readonly isSignedValidation: boolean; + readonly asSignedValidation: u32; + readonly isUnsigned: boolean; + readonly asUnsigned: u32; + readonly isSnapshot: boolean; + readonly asSnapshot: u32; + readonly isDone: boolean; + readonly isExport: boolean; + readonly asExport: u32; + readonly isEmergency: boolean; + readonly type: 'Off' | 'Signed' | 'SignedValidation' | 'Unsigned' | 'Snapshot' | 'Done' | 'Export' | 'Emergency'; + } + + /** @name PezpalletElectionProviderMultiBlockVerifierImplsPezpalletCall (413) */ + type PezpalletElectionProviderMultiBlockVerifierImplsPezpalletCall = Null; + + /** @name PezpalletElectionProviderMultiBlockUnsignedPezpalletCall (414) */ + interface PezpalletElectionProviderMultiBlockUnsignedPezpalletCall extends Enum { + readonly isSubmitUnsigned: boolean; + readonly asSubmitUnsigned: { + readonly pagedSolution: PezpalletElectionProviderMultiBlockPagedRawSolution; + } & Struct; + readonly type: 'SubmitUnsigned'; + } + + /** @name PezpalletElectionProviderMultiBlockPagedRawSolution (415) */ + interface PezpalletElectionProviderMultiBlockPagedRawSolution extends Struct { + readonly solutionPages: Vec; + readonly score: PezspNposElectionsElectionScore; + readonly round: u32; + } + + /** @name AssetHubPezkuwiRuntimeStakingNposCompactSolution16 (417) */ + interface AssetHubPezkuwiRuntimeStakingNposCompactSolution16 extends Struct { + readonly votes1: Vec, Compact]>>; + readonly votes2: Vec, ITuple<[Compact, Compact]>, Compact]>>; + readonly votes3: Vec, Vec, Compact]>>, Compact]>>; + readonly votes4: Vec, Vec, Compact]>>, Compact]>>; + readonly votes5: Vec, Vec, Compact]>>, Compact]>>; + readonly votes6: Vec, Vec, Compact]>>, Compact]>>; + readonly votes7: Vec, Vec, Compact]>>, Compact]>>; + readonly votes8: Vec, Vec, Compact]>>, Compact]>>; + readonly votes9: Vec, Vec, Compact]>>, Compact]>>; + readonly votes10: Vec, Vec, Compact]>>, Compact]>>; + readonly votes11: Vec, Vec, Compact]>>, Compact]>>; + readonly votes12: Vec, Vec, Compact]>>, Compact]>>; + readonly votes13: Vec, Vec, Compact]>>, Compact]>>; + readonly votes14: Vec, Vec, Compact]>>, Compact]>>; + readonly votes15: Vec, Vec, Compact]>>, Compact]>>; + readonly votes16: Vec, Vec, Compact]>>, Compact]>>; + } + + /** @name PezpalletElectionProviderMultiBlockSignedPezpalletCall (468) */ + interface PezpalletElectionProviderMultiBlockSignedPezpalletCall extends Enum { + readonly isRegister: boolean; + readonly asRegister: { + readonly claimedScore: PezspNposElectionsElectionScore; + } & Struct; + readonly isSubmitPage: boolean; + readonly asSubmitPage: { + readonly page: u32; + readonly maybeSolution: Option; + } & Struct; + readonly isBail: boolean; + readonly isClearOldRoundData: boolean; + readonly asClearOldRoundData: { + readonly round: u32; + readonly witnessPages: u32; + } & Struct; + readonly isSetInvulnerables: boolean; + readonly asSetInvulnerables: { + readonly inv: Vec; + } & Struct; + readonly type: 'Register' | 'SubmitPage' | 'Bail' | 'ClearOldRoundData' | 'SetInvulnerables'; + } + + /** @name PezpalletStakingAsyncPezpalletCall (470) */ + interface PezpalletStakingAsyncPezpalletCall extends Enum { + readonly isBond: boolean; + readonly asBond: { + readonly value: Compact; + readonly payee: PezpalletStakingAsyncRewardDestination; + } & Struct; + readonly isBondExtra: boolean; + readonly asBondExtra: { + readonly maxAdditional: Compact; + } & Struct; + readonly isUnbond: boolean; + readonly asUnbond: { + readonly value: Compact; + } & Struct; + readonly isWithdrawUnbonded: boolean; + readonly asWithdrawUnbonded: { + readonly numSlashingSpans: u32; + } & Struct; + readonly isValidate: boolean; + readonly asValidate: { + readonly prefs: PezpalletStakingAsyncValidatorPrefs; + } & Struct; + readonly isNominate: boolean; + readonly asNominate: { + readonly targets: Vec; + } & Struct; + readonly isChill: boolean; + readonly isSetPayee: boolean; + readonly asSetPayee: { + readonly payee: PezpalletStakingAsyncRewardDestination; + } & Struct; + readonly isSetController: boolean; + readonly isSetValidatorCount: boolean; + readonly asSetValidatorCount: { + readonly new_: Compact; + } & Struct; + readonly isIncreaseValidatorCount: boolean; + readonly asIncreaseValidatorCount: { + readonly additional: Compact; + } & Struct; + readonly isScaleValidatorCount: boolean; + readonly asScaleValidatorCount: { + readonly factor: Percent; + } & Struct; + readonly isForceNoEras: boolean; + readonly isForceNewEra: boolean; + readonly isSetInvulnerables: boolean; + readonly asSetInvulnerables: { + readonly invulnerables: Vec; + } & Struct; + readonly isForceUnstake: boolean; + readonly asForceUnstake: { + readonly stash: AccountId32; + readonly numSlashingSpans: u32; + } & Struct; + readonly isForceNewEraAlways: boolean; + readonly isCancelDeferredSlash: boolean; + readonly asCancelDeferredSlash: { + readonly era: u32; + readonly validatorSlashes: Vec>; + } & Struct; + readonly isPayoutStakers: boolean; + readonly asPayoutStakers: { + readonly validatorStash: AccountId32; + readonly era: u32; + } & Struct; + readonly isRebond: boolean; + readonly asRebond: { + readonly value: Compact; + } & Struct; + readonly isReapStash: boolean; + readonly asReapStash: { + readonly stash: AccountId32; + readonly numSlashingSpans: u32; + } & Struct; + readonly isKick: boolean; + readonly asKick: { + readonly who: Vec; + } & Struct; + readonly isSetStakingConfigs: boolean; + readonly asSetStakingConfigs: { + readonly minNominatorBond: PezpalletStakingAsyncPezpalletConfigOpU128; + readonly minValidatorBond: PezpalletStakingAsyncPezpalletConfigOpU128; + readonly maxNominatorCount: PezpalletStakingAsyncPezpalletConfigOpU32; + readonly maxValidatorCount: PezpalletStakingAsyncPezpalletConfigOpU32; + readonly chillThreshold: PezpalletStakingAsyncPezpalletConfigOpPercent; + readonly minCommission: PezpalletStakingAsyncPezpalletConfigOpPerbill; + readonly maxStakedRewards: PezpalletStakingAsyncPezpalletConfigOpPercent; + } & Struct; + readonly isChillOther: boolean; + readonly asChillOther: { + readonly stash: AccountId32; + } & Struct; + readonly isForceApplyMinCommission: boolean; + readonly asForceApplyMinCommission: { + readonly validatorStash: AccountId32; + } & Struct; + readonly isSetMinCommission: boolean; + readonly asSetMinCommission: { + readonly new_: Perbill; + } & Struct; + readonly isPayoutStakersByPage: boolean; + readonly asPayoutStakersByPage: { + readonly validatorStash: AccountId32; + readonly era: u32; + readonly page: u32; + } & Struct; + readonly isUpdatePayee: boolean; + readonly asUpdatePayee: { + readonly controller: AccountId32; + } & Struct; + readonly isDeprecateControllerBatch: boolean; + readonly asDeprecateControllerBatch: { + readonly controllers: Vec; + } & Struct; + readonly isRestoreLedger: boolean; + readonly asRestoreLedger: { + readonly stash: AccountId32; + readonly maybeController: Option; + readonly maybeTotal: Option; + readonly maybeUnlocking: Option>; + } & Struct; + readonly isMigrateCurrency: boolean; + readonly asMigrateCurrency: { + readonly stash: AccountId32; + } & Struct; + readonly isApplySlash: boolean; + readonly asApplySlash: { + readonly slashEra: u32; + readonly slashKey: ITuple<[AccountId32, Perbill, u32]>; + } & Struct; + readonly isPruneEraStep: boolean; + readonly asPruneEraStep: { + readonly era: u32; + } & Struct; + readonly type: 'Bond' | 'BondExtra' | 'Unbond' | 'WithdrawUnbonded' | 'Validate' | 'Nominate' | 'Chill' | 'SetPayee' | 'SetController' | 'SetValidatorCount' | 'IncreaseValidatorCount' | 'ScaleValidatorCount' | 'ForceNoEras' | 'ForceNewEra' | 'SetInvulnerables' | 'ForceUnstake' | 'ForceNewEraAlways' | 'CancelDeferredSlash' | 'PayoutStakers' | 'Rebond' | 'ReapStash' | 'Kick' | 'SetStakingConfigs' | 'ChillOther' | 'ForceApplyMinCommission' | 'SetMinCommission' | 'PayoutStakersByPage' | 'UpdatePayee' | 'DeprecateControllerBatch' | 'RestoreLedger' | 'MigrateCurrency' | 'ApplySlash' | 'PruneEraStep'; + } + + /** @name PezpalletStakingAsyncRewardDestination (471) */ + interface PezpalletStakingAsyncRewardDestination extends Enum { + readonly isStaked: boolean; + readonly isStash: boolean; + readonly isController: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly isNone: boolean; + readonly type: 'Staked' | 'Stash' | 'Controller' | 'Account' | 'None'; + } + + /** @name PezpalletStakingAsyncValidatorPrefs (472) */ + interface PezpalletStakingAsyncValidatorPrefs extends Struct { + readonly commission: Compact; + readonly blocked: bool; + } + + /** @name PezpalletStakingAsyncPezpalletConfigOpU128 (478) */ + interface PezpalletStakingAsyncPezpalletConfigOpU128 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: u128; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingAsyncPezpalletConfigOpU32 (479) */ + interface PezpalletStakingAsyncPezpalletConfigOpU32 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: u32; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingAsyncPezpalletConfigOpPercent (480) */ + interface PezpalletStakingAsyncPezpalletConfigOpPercent extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: Percent; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingAsyncPezpalletConfigOpPerbill (481) */ + interface PezpalletStakingAsyncPezpalletConfigOpPerbill extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: Perbill; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingAsyncLedgerUnlockChunk (485) */ + interface PezpalletStakingAsyncLedgerUnlockChunk extends Struct { + readonly value: Compact; + readonly era: Compact; + } + + /** @name PezpalletAhOpsCall (488) */ + interface PezpalletAhOpsCall extends Enum { + readonly isUnreserveLeaseDeposit: boolean; + readonly asUnreserveLeaseDeposit: { + readonly block: u32; + readonly depositor: Option; + readonly paraId: u32; + } & Struct; + readonly isWithdrawCrowdloanContribution: boolean; + readonly asWithdrawCrowdloanContribution: { + readonly block: u32; + readonly depositor: Option; + readonly paraId: u32; + } & Struct; + readonly isUnreserveCrowdloanReserve: boolean; + readonly asUnreserveCrowdloanReserve: { + readonly block: u32; + readonly depositor: Option; + readonly paraId: u32; + } & Struct; + readonly isTransferToPostMigrationTreasury: boolean; + readonly asTransferToPostMigrationTreasury: { + readonly assetId: StagingXcmV5Location; + } & Struct; + readonly type: 'UnreserveLeaseDeposit' | 'WithdrawCrowdloanContribution' | 'UnreserveCrowdloanReserve' | 'TransferToPostMigrationTreasury'; + } + + /** @name PezpalletAhMigratorCall (489) */ + interface PezpalletAhMigratorCall extends Enum { + readonly isReceiveAccounts: boolean; + readonly asReceiveAccounts: { + readonly accounts: Vec; + } & Struct; + readonly isReceiveMultisigs: boolean; + readonly asReceiveMultisigs: { + readonly accounts: Vec; + } & Struct; + readonly isReceiveProxyProxies: boolean; + readonly asReceiveProxyProxies: { + readonly proxies: Vec; + } & Struct; + readonly isReceiveProxyAnnouncements: boolean; + readonly asReceiveProxyAnnouncements: { + readonly announcements: Vec; + } & Struct; + readonly isReceivePreimageChunks: boolean; + readonly asReceivePreimageChunks: { + readonly chunks: Vec; + } & Struct; + readonly isReceivePreimageRequestStatus: boolean; + readonly asReceivePreimageRequestStatus: { + readonly requestStatus: Vec; + } & Struct; + readonly isReceivePreimageLegacyStatus: boolean; + readonly asReceivePreimageLegacyStatus: { + readonly legacyStatus: Vec; + } & Struct; + readonly isReceiveNomPoolsMessages: boolean; + readonly asReceiveNomPoolsMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveVestingSchedules: boolean; + readonly asReceiveVestingSchedules: { + readonly schedules: Vec; + } & Struct; + readonly isReceiveReferendaValues: boolean; + readonly asReceiveReferendaValues: { + readonly values: Vec; + } & Struct; + readonly isReceiveReferendums: boolean; + readonly asReceiveReferendums: { + readonly referendums: Vec>; + } & Struct; + readonly isReceiveClaims: boolean; + readonly asReceiveClaims: { + readonly messages: Vec; + } & Struct; + readonly isReceiveBagsListMessages: boolean; + readonly asReceiveBagsListMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveSchedulerMessages: boolean; + readonly asReceiveSchedulerMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveIndices: boolean; + readonly asReceiveIndices: { + readonly indices: Vec; + } & Struct; + readonly isReceiveConvictionVotingMessages: boolean; + readonly asReceiveConvictionVotingMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveBountiesMessages: boolean; + readonly asReceiveBountiesMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveAssetRates: boolean; + readonly asReceiveAssetRates: { + readonly rates: Vec>; + } & Struct; + readonly isReceiveCrowdloanMessages: boolean; + readonly asReceiveCrowdloanMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveReferendaMetadata: boolean; + readonly asReceiveReferendaMetadata: { + readonly metadata: Vec>; + } & Struct; + readonly isReceiveTreasuryMessages: boolean; + readonly asReceiveTreasuryMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveSchedulerAgendaMessages: boolean; + readonly asReceiveSchedulerAgendaMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveDelegatedStakingMessages: boolean; + readonly asReceiveDelegatedStakingMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveChildBountiesMessages: boolean; + readonly asReceiveChildBountiesMessages: { + readonly messages: Vec; + } & Struct; + readonly isReceiveStakingMessages: boolean; + readonly asReceiveStakingMessages: { + readonly messages: Vec; + } & Struct; + readonly isForceSetStage: boolean; + readonly asForceSetStage: { + readonly stage: PezpalletAhMigratorMigrationStage; + } & Struct; + readonly isStartMigration: boolean; + readonly isSetDmpQueuePriority: boolean; + readonly asSetDmpQueuePriority: { + readonly new_: PezpalletRcMigratorQueuePriority; + } & Struct; + readonly isSetManager: boolean; + readonly asSetManager: { + readonly new_: Option; + } & Struct; + readonly isFinishMigration: boolean; + readonly asFinishMigration: { + readonly data: Option; + readonly coolOffEndAt: u32; + } & Struct; + readonly isSendXcmMessage: boolean; + readonly asSendXcmMessage: { + readonly dest: XcmVersionedLocation; + readonly message: XcmVersionedXcm; + } & Struct; + readonly type: 'ReceiveAccounts' | 'ReceiveMultisigs' | 'ReceiveProxyProxies' | 'ReceiveProxyAnnouncements' | 'ReceivePreimageChunks' | 'ReceivePreimageRequestStatus' | 'ReceivePreimageLegacyStatus' | 'ReceiveNomPoolsMessages' | 'ReceiveVestingSchedules' | 'ReceiveReferendaValues' | 'ReceiveReferendums' | 'ReceiveClaims' | 'ReceiveBagsListMessages' | 'ReceiveSchedulerMessages' | 'ReceiveIndices' | 'ReceiveConvictionVotingMessages' | 'ReceiveBountiesMessages' | 'ReceiveAssetRates' | 'ReceiveCrowdloanMessages' | 'ReceiveReferendaMetadata' | 'ReceiveTreasuryMessages' | 'ReceiveSchedulerAgendaMessages' | 'ReceiveDelegatedStakingMessages' | 'ReceiveChildBountiesMessages' | 'ReceiveStakingMessages' | 'ForceSetStage' | 'StartMigration' | 'SetDmpQueuePriority' | 'SetManager' | 'FinishMigration' | 'SendXcmMessage'; + } + + /** @name PezpalletRcMigratorAccountsAccount (491) */ + interface PezpalletRcMigratorAccountsAccount extends Struct { + readonly who: AccountId32; + readonly free: u128; + readonly reserved: u128; + readonly frozen: u128; + readonly holds: Vec; + readonly freezes: Vec; + readonly locks: Vec; + readonly unnamedReserve: u128; + readonly consumers: u8; + readonly providers: u8; + } + + /** @name PezpalletRcMigratorPortableHoldReason (492) */ + interface PezpalletRcMigratorPortableHoldReason extends Enum { + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageHoldReason; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletHoldReason; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationHoldReason; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingHoldReason; + readonly isSession: boolean; + readonly asSession: PezpalletSessionHoldReason; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmHoldReason; + readonly type: 'Preimage' | 'Staking' | 'StateTrieMigration' | 'DelegatedStaking' | 'Session' | 'XcmPallet'; + } + + /** @name PezpalletRcMigratorPortableFreezeReason (499) */ + interface PezpalletRcMigratorPortableFreezeReason extends Enum { + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsFreezeReason; + readonly type: 'NominationPools'; + } + + /** @name PezframeSupportTokensMiscIdAmountPortableHoldReason (502) */ + interface PezframeSupportTokensMiscIdAmountPortableHoldReason extends Struct { + readonly id: PezpalletRcMigratorPortableHoldReason; + readonly amount: u128; + } + + /** @name PezframeSupportTokensMiscIdAmountPortableFreezeReason (505) */ + interface PezframeSupportTokensMiscIdAmountPortableFreezeReason extends Struct { + readonly id: PezpalletRcMigratorPortableFreezeReason; + readonly amount: u128; + } + + /** @name PezpalletRcMigratorMultisigRcMultisig (512) */ + interface PezpalletRcMigratorMultisigRcMultisig extends Struct { + readonly creator: AccountId32; + readonly deposit: u128; + } + + /** @name PezpalletRcMigratorProxyRcProxy (514) */ + interface PezpalletRcMigratorProxyRcProxy extends Struct { + readonly delegator: AccountId32; + readonly deposit: u128; + readonly proxies: Vec; + } + + /** @name PezpalletProxyProxyDefinitionPezkuwiRuntimeConstantsProxyProxyType (517) */ + interface PezpalletProxyProxyDefinitionPezkuwiRuntimeConstantsProxyProxyType extends Struct { + readonly delegate: AccountId32; + readonly proxyType: PezkuwiRuntimeConstantsProxyProxyType; + readonly delay: u32; + } + + /** @name PezpalletRcMigratorProxyRcProxyAnnouncement (519) */ + interface PezpalletRcMigratorProxyRcProxyAnnouncement extends Struct { + readonly depositor: AccountId32; + readonly deposit: u128; + } + + /** @name PezpalletRcMigratorPreimageChunksRcPreimageChunk (521) */ + interface PezpalletRcMigratorPreimageChunksRcPreimageChunk extends Struct { + readonly preimageHash: H256; + readonly preimageLen: u32; + readonly chunkByteOffset: u32; + readonly chunkBytes: Bytes; + } + + /** @name PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus (524) */ + interface PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus extends Struct { + readonly hash_: H256; + readonly requestStatus: PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner; + } + + /** @name PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner (525) */ + interface PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner extends Enum { + readonly isUnrequested: boolean; + readonly asUnrequested: { + readonly ticket: ITuple<[AccountId32, Bytes]>; + readonly len: u32; + } & Struct; + readonly isRequested: boolean; + readonly asRequested: { + readonly maybeTicket: Option>; + readonly count: u32; + readonly maybeLen: Option; + } & Struct; + readonly type: 'Unrequested' | 'Requested'; + } + + /** @name PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus (530) */ + interface PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus extends Struct { + readonly hash_: H256; + readonly depositor: AccountId32; + readonly deposit: u128; + } + + /** @name PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage (532) */ + interface PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage extends Enum { + readonly isStorageValues: boolean; + readonly asStorageValues: { + readonly values: PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues; + } & Struct; + readonly isPoolMembers: boolean; + readonly asPoolMembers: { + readonly member: ITuple<[AccountId32, PezpalletNominationPoolsPoolMember]>; + } & Struct; + readonly isBondedPools: boolean; + readonly asBondedPools: { + readonly pool: ITuple<[u32, PezpalletNominationPoolsBondedPoolInner]>; + } & Struct; + readonly isRewardPools: boolean; + readonly asRewardPools: { + readonly rewards: ITuple<[u32, PezpalletRcMigratorStakingNomPoolsAliasRewardPool]>; + } & Struct; + readonly isSubPoolsStorage: boolean; + readonly asSubPoolsStorage: { + readonly subPools: ITuple<[u32, PezpalletRcMigratorStakingNomPoolsAliasSubPools]>; + } & Struct; + readonly isMetadata: boolean; + readonly asMetadata: { + readonly meta: ITuple<[u32, Bytes]>; + } & Struct; + readonly isReversePoolIdLookup: boolean; + readonly asReversePoolIdLookup: { + readonly lookups: ITuple<[AccountId32, u32]>; + } & Struct; + readonly isClaimPermissions: boolean; + readonly asClaimPermissions: { + readonly perms: ITuple<[AccountId32, PezpalletNominationPoolsClaimPermission]>; + } & Struct; + readonly type: 'StorageValues' | 'PoolMembers' | 'BondedPools' | 'RewardPools' | 'SubPoolsStorage' | 'Metadata' | 'ReversePoolIdLookup' | 'ClaimPermissions'; + } + + /** @name PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues (533) */ + interface PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues extends Struct { + readonly totalValueLocked: Option; + readonly minJoinBond: Option; + readonly minCreateBond: Option; + readonly maxPools: Option; + readonly maxPoolMembers: Option; + readonly maxPoolMembersPerPool: Option; + readonly globalMaxCommission: Option; + readonly lastPoolId: Option; + } + + /** @name PezpalletRcMigratorStakingNomPoolsAliasRewardPool (547) */ + interface PezpalletRcMigratorStakingNomPoolsAliasRewardPool extends Struct { + readonly lastRecordedRewardCounter: u128; + readonly lastRecordedTotalPayouts: u128; + readonly totalRewardsClaimed: u128; + readonly totalCommissionPending: u128; + readonly totalCommissionClaimed: u128; + } + + /** @name PezpalletRcMigratorStakingNomPoolsAliasSubPools (549) */ + interface PezpalletRcMigratorStakingNomPoolsAliasSubPools extends Struct { + readonly noEra: PezpalletRcMigratorStakingNomPoolsAliasUnbondPool; + readonly withEra: BTreeMap; + } + + /** @name PezpalletRcMigratorStakingNomPoolsAliasUnbondPool (550) */ + interface PezpalletRcMigratorStakingNomPoolsAliasUnbondPool extends Struct { + readonly points: u128; + readonly balance: u128; + } + + /** @name PezpalletRcMigratorVestingRcVestingSchedule (558) */ + interface PezpalletRcMigratorVestingRcVestingSchedule extends Struct { + readonly who: AccountId32; + readonly schedules: Vec; + } + + /** @name PezpalletRcMigratorReferendaReferendaMessage (562) */ + interface PezpalletRcMigratorReferendaReferendaMessage extends Struct { + readonly referendumCount: Option; + readonly decidingCount: Vec>; + readonly trackQueue: Vec>]>>; + } + + /** @name PezpalletReferendaReferendumInfoRcPalletsOrigin (569) */ + interface PezpalletReferendaReferendumInfoRcPalletsOrigin extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PezpalletReferendaReferendumStatusRcPalletsOrigin; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; + } + + /** @name AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin (570) */ + interface AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isOrigins: boolean; + readonly asOrigins: AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + readonly type: 'System' | 'Origins'; + } + + /** @name PezpalletReferendaReferendumStatusRcPalletsOrigin (572) */ + interface PezpalletReferendaReferendumStatusRcPalletsOrigin extends Struct { + readonly track: u16; + readonly origin: AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin; + readonly proposal: PezframeSupportPreimagesBounded; + readonly enactment: PezframeSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PezpalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PezpalletConvictionVotingTally; + readonly inQueue: bool; + readonly alarm: Option]>>; + } + + /** @name PezpalletRcMigratorClaimsRcClaimsMessage (580) */ + interface PezpalletRcMigratorClaimsRcClaimsMessage extends Enum { + readonly isStorageValues: boolean; + readonly asStorageValues: { + readonly total: u128; + } & Struct; + readonly isClaims: boolean; + readonly asClaims: ITuple<[PezkuwiRuntimeCommonClaimsEthereumAddress, u128]>; + readonly isVesting: boolean; + readonly asVesting: { + readonly who: PezkuwiRuntimeCommonClaimsEthereumAddress; + readonly schedule: ITuple<[u128, u128, u32]>; + } & Struct; + readonly isSigning: boolean; + readonly asSigning: ITuple<[PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsStatementKind]>; + readonly isPreclaims: boolean; + readonly asPreclaims: ITuple<[AccountId32, PezkuwiRuntimeCommonClaimsEthereumAddress]>; + readonly type: 'StorageValues' | 'Claims' | 'Vesting' | 'Signing' | 'Preclaims'; + } + + /** @name PezpalletRcMigratorStakingBagsListPortableBagsListMessage (585) */ + interface PezpalletRcMigratorStakingBagsListPortableBagsListMessage extends Enum { + readonly isNode: boolean; + readonly asNode: { + readonly id: AccountId32; + readonly node: PezpalletRcMigratorStakingBagsListPortableNode; + } & Struct; + readonly isBag: boolean; + readonly asBag: { + readonly score: u64; + readonly bag: PezpalletRcMigratorStakingBagsListPortableBag; + } & Struct; + readonly type: 'Node' | 'Bag'; + } + + /** @name PezpalletRcMigratorStakingBagsListPortableNode (586) */ + interface PezpalletRcMigratorStakingBagsListPortableNode extends Struct { + readonly id: AccountId32; + readonly prev: Option; + readonly next: Option; + readonly bagUpper: u64; + readonly score: u64; + } + + /** @name PezpalletRcMigratorStakingBagsListPortableBag (587) */ + interface PezpalletRcMigratorStakingBagsListPortableBag extends Struct { + readonly head: Option; + readonly tail: Option; + readonly bagUpper: u64; + } + + /** @name PezpalletRcMigratorSchedulerRcSchedulerMessage (589) */ + interface PezpalletRcMigratorSchedulerRcSchedulerMessage extends Enum { + readonly isIncompleteSince: boolean; + readonly asIncompleteSince: u32; + readonly isRetries: boolean; + readonly asRetries: ITuple<[ITuple<[u32, u32]>, PezpalletSchedulerRetryConfig]>; + readonly isLookup: boolean; + readonly asLookup: ITuple<[U8aFixed, ITuple<[u32, u32]>]>; + readonly type: 'IncompleteSince' | 'Retries' | 'Lookup'; + } + + /** @name PezpalletRcMigratorIndicesRcIndicesIndex (594) */ + interface PezpalletRcMigratorIndicesRcIndicesIndex extends Struct { + readonly index: u32; + readonly who: AccountId32; + readonly deposit: u128; + readonly frozen: bool; + } + + /** @name PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage (596) */ + interface PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage extends Enum { + readonly isVotingFor: boolean; + readonly asVotingFor: ITuple<[AccountId32, u16, PezpalletConvictionVotingVoteVoting]>; + readonly isClassLocksFor: boolean; + readonly asClassLocksFor: ITuple<[AccountId32, Vec>]>; + readonly type: 'VotingFor' | 'ClassLocksFor'; + } + + /** @name PezpalletRcMigratorBountiesRcBountiesMessage (608) */ + interface PezpalletRcMigratorBountiesRcBountiesMessage extends Enum { + readonly isBountyCount: boolean; + readonly asBountyCount: u32; + readonly isBountyApprovals: boolean; + readonly asBountyApprovals: Vec; + readonly isBountyDescriptions: boolean; + readonly asBountyDescriptions: ITuple<[u32, Bytes]>; + readonly isBounties: boolean; + readonly asBounties: ITuple<[u32, PezpalletRcMigratorBountiesAliasBounty]>; + readonly type: 'BountyCount' | 'BountyApprovals' | 'BountyDescriptions' | 'Bounties'; + } + + /** @name PezpalletRcMigratorBountiesAliasBounty (611) */ + interface PezpalletRcMigratorBountiesAliasBounty extends Struct { + readonly proposer: AccountId32; + readonly value: u128; + readonly fee: u128; + readonly curatorDeposit: u128; + readonly bond: u128; + readonly status: PezpalletBountiesBountyStatus; + } + + /** @name PezpalletRcMigratorCrowdloanRcCrowdloanMessage (616) */ + interface PezpalletRcMigratorCrowdloanRcCrowdloanMessage extends Enum { + readonly isLeaseReserve: boolean; + readonly asLeaseReserve: { + readonly unreserveBlock: u32; + readonly account: AccountId32; + readonly paraId: u32; + readonly amount: u128; + } & Struct; + readonly isCrowdloanContribution: boolean; + readonly asCrowdloanContribution: { + readonly withdrawBlock: u32; + readonly contributor: AccountId32; + readonly paraId: u32; + readonly amount: u128; + readonly crowdloanAccount: AccountId32; + } & Struct; + readonly isCrowdloanReserve: boolean; + readonly asCrowdloanReserve: { + readonly unreserveBlock: u32; + readonly depositor: AccountId32; + readonly paraId: u32; + readonly amount: u128; + } & Struct; + readonly type: 'LeaseReserve' | 'CrowdloanContribution' | 'CrowdloanReserve'; + } + + /** @name PezpalletRcMigratorTreasuryPortableTreasuryMessage (620) */ + interface PezpalletRcMigratorTreasuryPortableTreasuryMessage extends Enum { + readonly isProposalCount: boolean; + readonly asProposalCount: u32; + readonly isProposals: boolean; + readonly asProposals: ITuple<[u32, PezpalletTreasuryProposal]>; + readonly isApprovals: boolean; + readonly asApprovals: Vec; + readonly isSpendCount: boolean; + readonly asSpendCount: u32; + readonly isSpends: boolean; + readonly asSpends: { + readonly id: u32; + readonly status: PezpalletRcMigratorTreasuryPortableSpendStatus; + } & Struct; + readonly isLastSpendPeriod: boolean; + readonly asLastSpendPeriod: Option; + readonly isFunds: boolean; + readonly type: 'ProposalCount' | 'Proposals' | 'Approvals' | 'SpendCount' | 'Spends' | 'LastSpendPeriod' | 'Funds'; + } + + /** @name PezpalletRcMigratorTreasuryPortableSpendStatus (623) */ + interface PezpalletRcMigratorTreasuryPortableSpendStatus extends Struct { + readonly assetKind: PezkuwiRuntimeCommonImplsVersionedLocatableAsset; + readonly amount: u128; + readonly beneficiary: XcmVersionedLocation; + readonly validFrom: u32; + readonly expireAt: u32; + readonly status: PezpalletRcMigratorTreasuryPortablePaymentState; + } + + /** @name PezpalletRcMigratorTreasuryPortablePaymentState (624) */ + interface PezpalletRcMigratorTreasuryPortablePaymentState extends Enum { + readonly isPending: boolean; + readonly isAttempted: boolean; + readonly asAttempted: { + readonly id: u64; + } & Struct; + readonly isFailed: boolean; + readonly type: 'Pending' | 'Attempted' | 'Failed'; + } + + /** @name PezpalletRcMigratorSchedulerSchedulerAgendaMessage (626) */ + interface PezpalletRcMigratorSchedulerSchedulerAgendaMessage extends Struct { + readonly block: u32; + readonly agenda: Vec>; + } + + /** @name PezpalletRcMigratorSchedulerAliasScheduled (627) */ + interface PezpalletRcMigratorSchedulerAliasScheduled extends Struct { + readonly maybeId: Option; + readonly priority: u8; + readonly call: PezframeSupportPreimagesBounded; + readonly maybePeriodic: Option>; + readonly origin: AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin; + } + + /** @name PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage (631) */ + interface PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage extends Enum { + readonly isDelegators: boolean; + readonly asDelegators: { + readonly delegator: AccountId32; + readonly agent: AccountId32; + readonly amount: u128; + } & Struct; + readonly isAgents: boolean; + readonly asAgents: { + readonly agent: AccountId32; + readonly payee: AccountId32; + readonly totalDelegated: u128; + readonly unclaimedWithdrawals: u128; + readonly pendingSlash: u128; + } & Struct; + readonly type: 'Delegators' | 'Agents'; + } + + /** @name PezpalletRcMigratorChildBountiesPortableChildBountiesMessage (633) */ + interface PezpalletRcMigratorChildBountiesPortableChildBountiesMessage extends Enum { + readonly isChildBountyCount: boolean; + readonly asChildBountyCount: u32; + readonly isParentChildBounties: boolean; + readonly asParentChildBounties: ITuple<[u32, u32]>; + readonly isParentTotalChildBounties: boolean; + readonly asParentTotalChildBounties: ITuple<[u32, u32]>; + readonly isChildBounty: boolean; + readonly asChildBounty: { + readonly parentId: u32; + readonly childId: u32; + readonly childBounty: PezpalletRcMigratorChildBountiesPortableChildBounty; + } & Struct; + readonly isChildBountyDescriptionsV1: boolean; + readonly asChildBountyDescriptionsV1: { + readonly parentId: u32; + readonly childId: u32; + readonly description: Bytes; + } & Struct; + readonly isV0ToV1ChildBountyIds: boolean; + readonly asV0ToV1ChildBountyIds: { + readonly v0ChildId: u32; + readonly parentId: u32; + readonly v1ChildId: u32; + } & Struct; + readonly isChildrenCuratorFees: boolean; + readonly asChildrenCuratorFees: { + readonly childId: u32; + readonly amount: u128; + } & Struct; + readonly type: 'ChildBountyCount' | 'ParentChildBounties' | 'ParentTotalChildBounties' | 'ChildBounty' | 'ChildBountyDescriptionsV1' | 'V0ToV1ChildBountyIds' | 'ChildrenCuratorFees'; + } + + /** @name PezpalletRcMigratorChildBountiesPortableChildBounty (634) */ + interface PezpalletRcMigratorChildBountiesPortableChildBounty extends Struct { + readonly parentBounty: u32; + readonly value: u128; + readonly fee: u128; + readonly curatorDeposit: u128; + readonly status: PezpalletRcMigratorChildBountiesPortableChildBountyStatus; + } + + /** @name PezpalletRcMigratorChildBountiesPortableChildBountyStatus (635) */ + interface PezpalletRcMigratorChildBountiesPortableChildBountyStatus extends Enum { + readonly isAdded: boolean; + readonly isCuratorProposed: boolean; + readonly asCuratorProposed: { + readonly curator: AccountId32; + } & Struct; + readonly isActive: boolean; + readonly asActive: { + readonly curator: AccountId32; + } & Struct; + readonly isPendingPayout: boolean; + readonly asPendingPayout: { + readonly curator: AccountId32; + readonly beneficiary: AccountId32; + readonly unlockAt: u32; + } & Struct; + readonly type: 'Added' | 'CuratorProposed' | 'Active' | 'PendingPayout'; + } + + /** @name PezpalletRcMigratorStakingMessagePortableStakingMessage (638) */ + interface PezpalletRcMigratorStakingMessagePortableStakingMessage extends Enum { + readonly isValues: boolean; + readonly asValues: PezpalletRcMigratorStakingMessageStakingValues; + readonly isInvulnerables: boolean; + readonly asInvulnerables: Vec; + readonly isBonded: boolean; + readonly asBonded: { + readonly stash: AccountId32; + readonly controller: AccountId32; + } & Struct; + readonly isLedger: boolean; + readonly asLedger: { + readonly controller: AccountId32; + readonly ledger: PezpalletRcMigratorStakingMessagePortableStakingLedger; + } & Struct; + readonly isPayee: boolean; + readonly asPayee: { + readonly stash: AccountId32; + readonly payment: PezpalletRcMigratorStakingMessagePortableRewardDestination; + } & Struct; + readonly isValidators: boolean; + readonly asValidators: { + readonly stash: AccountId32; + readonly validators: PezpalletRcMigratorStakingMessagePortableValidatorPrefs; + } & Struct; + readonly isNominators: boolean; + readonly asNominators: { + readonly stash: AccountId32; + readonly nominations: PezpalletRcMigratorStakingMessagePortableNominations; + } & Struct; + readonly isVirtualStakers: boolean; + readonly asVirtualStakers: AccountId32; + readonly isErasStakersOverview: boolean; + readonly asErasStakersOverview: { + readonly era: u32; + readonly validator: AccountId32; + readonly exposure: PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata; + } & Struct; + readonly isErasStakersPaged: boolean; + readonly asErasStakersPaged: { + readonly era: u32; + readonly validator: AccountId32; + readonly page: u32; + readonly exposure: PezpalletRcMigratorStakingMessagePortableExposurePage; + } & Struct; + readonly isClaimedRewards: boolean; + readonly asClaimedRewards: { + readonly era: u32; + readonly validator: AccountId32; + readonly rewards: Vec; + } & Struct; + readonly isErasValidatorPrefs: boolean; + readonly asErasValidatorPrefs: { + readonly era: u32; + readonly validator: AccountId32; + readonly prefs: PezpalletRcMigratorStakingMessagePortableValidatorPrefs; + } & Struct; + readonly isErasValidatorReward: boolean; + readonly asErasValidatorReward: { + readonly era: u32; + readonly reward: u128; + } & Struct; + readonly isErasRewardPoints: boolean; + readonly asErasRewardPoints: { + readonly era: u32; + readonly points: PezpalletRcMigratorStakingMessagePortableEraRewardPoints; + } & Struct; + readonly isErasTotalStake: boolean; + readonly asErasTotalStake: { + readonly era: u32; + readonly totalStake: u128; + } & Struct; + readonly isUnappliedSlashes: boolean; + readonly asUnappliedSlashes: { + readonly era: u32; + readonly slash: PezpalletRcMigratorStakingMessagePortableUnappliedSlash; + } & Struct; + readonly isBondedEras: boolean; + readonly asBondedEras: Vec>; + readonly isValidatorSlashInEra: boolean; + readonly asValidatorSlashInEra: { + readonly era: u32; + readonly validator: AccountId32; + readonly slash: ITuple<[Perbill, u128]>; + } & Struct; + readonly type: 'Values' | 'Invulnerables' | 'Bonded' | 'Ledger' | 'Payee' | 'Validators' | 'Nominators' | 'VirtualStakers' | 'ErasStakersOverview' | 'ErasStakersPaged' | 'ClaimedRewards' | 'ErasValidatorPrefs' | 'ErasValidatorReward' | 'ErasRewardPoints' | 'ErasTotalStake' | 'UnappliedSlashes' | 'BondedEras' | 'ValidatorSlashInEra'; + } + + /** @name PezpalletRcMigratorStakingMessageStakingValues (639) */ + interface PezpalletRcMigratorStakingMessageStakingValues extends Struct { + readonly validatorCount: Option; + readonly minValidatorCount: Option; + readonly minNominatorBond: Option; + readonly minValidatorBond: Option; + readonly minActiveStake: Option; + readonly minCommission: Option; + readonly maxValidatorsCount: Option; + readonly maxNominatorsCount: Option; + readonly currentEra: Option; + readonly activeEra: Option; + readonly forceEra: Option; + readonly maxStakedRewards: Option; + readonly slashRewardFraction: Option; + readonly canceledSlashPayout: Option; + readonly currentPlannedSession: Option; + readonly chillThreshold: Option; + } + + /** @name PezpalletRcMigratorStakingMessagePortableActiveEraInfo (641) */ + interface PezpalletRcMigratorStakingMessagePortableActiveEraInfo extends Struct { + readonly index: u32; + readonly start: Option; + } + + /** @name PezpalletRcMigratorStakingMessagePortableForcing (643) */ + interface PezpalletRcMigratorStakingMessagePortableForcing extends Enum { + readonly isNotForcing: boolean; + readonly isForceNew: boolean; + readonly isForceNone: boolean; + readonly isForceAlways: boolean; + readonly type: 'NotForcing' | 'ForceNew' | 'ForceNone' | 'ForceAlways'; + } + + /** @name PezpalletRcMigratorStakingMessagePortableStakingLedger (645) */ + interface PezpalletRcMigratorStakingMessagePortableStakingLedger extends Struct { + readonly stash: AccountId32; + readonly total: u128; + readonly active: u128; + readonly unlocking: Vec; + } + + /** @name PezpalletRcMigratorStakingMessagePortableUnlockChunk (647) */ + interface PezpalletRcMigratorStakingMessagePortableUnlockChunk extends Struct { + readonly value: u128; + readonly era: u32; + } + + /** @name PezpalletRcMigratorStakingMessagePortableRewardDestination (649) */ + interface PezpalletRcMigratorStakingMessagePortableRewardDestination extends Enum { + readonly isStaked: boolean; + readonly isStash: boolean; + readonly isController: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly isNone: boolean; + readonly type: 'Staked' | 'Stash' | 'Controller' | 'Account' | 'None'; + } + + /** @name PezpalletRcMigratorStakingMessagePortableValidatorPrefs (650) */ + interface PezpalletRcMigratorStakingMessagePortableValidatorPrefs extends Struct { + readonly commission: Perbill; + readonly blocked: bool; + } + + /** @name PezpalletRcMigratorStakingMessagePortableNominations (651) */ + interface PezpalletRcMigratorStakingMessagePortableNominations extends Struct { + readonly targets: Vec; + readonly submittedIn: u32; + readonly suppressed: bool; + } + + /** @name PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata (653) */ + interface PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata extends Struct { + readonly total: u128; + readonly own: u128; + readonly nominatorCount: u32; + readonly pageCount: u32; + } + + /** @name PezpalletRcMigratorStakingMessagePortableExposurePage (654) */ + interface PezpalletRcMigratorStakingMessagePortableExposurePage extends Struct { + readonly pageTotal: u128; + readonly others: Vec; + } + + /** @name PezpalletRcMigratorStakingMessagePortableIndividualExposure (656) */ + interface PezpalletRcMigratorStakingMessagePortableIndividualExposure extends Struct { + readonly who: AccountId32; + readonly value: u128; + } + + /** @name PezpalletRcMigratorStakingMessagePortableEraRewardPoints (658) */ + interface PezpalletRcMigratorStakingMessagePortableEraRewardPoints extends Struct { + readonly total: u32; + readonly individual: Vec>; + } + + /** @name PezpalletRcMigratorStakingMessagePortableUnappliedSlash (660) */ + interface PezpalletRcMigratorStakingMessagePortableUnappliedSlash extends Struct { + readonly validator: AccountId32; + readonly own: u128; + readonly others: Vec>; + readonly reporters: Vec; + readonly payout: u128; + } + + /** @name PezpalletAhMigratorMigrationStage (665) */ + interface PezpalletAhMigratorMigrationStage extends Enum { + readonly isPending: boolean; + readonly isDataMigrationOngoing: boolean; + readonly isMigrationDone: boolean; + readonly isCoolOff: boolean; + readonly asCoolOff: { + readonly endAt: u32; + } & Struct; + readonly type: 'Pending' | 'DataMigrationOngoing' | 'MigrationDone' | 'CoolOff'; + } + + /** @name PezpalletRcMigratorMigrationFinishedData (668) */ + interface PezpalletRcMigratorMigrationFinishedData extends Struct { + readonly rcBalanceKept: u128; + } + + /** @name PezpalletStakingAsyncRcClientEvent (683) */ + interface PezpalletStakingAsyncRcClientEvent extends Enum { + readonly isSessionReportReceived: boolean; + readonly asSessionReportReceived: { + readonly endIndex: u32; + readonly activationTimestamp: Option>; + readonly validatorPointsCounts: u32; + readonly leftover: bool; + } & Struct; + readonly isOffenceReceived: boolean; + readonly asOffenceReceived: { + readonly slashSession: u32; + readonly offencesCount: u32; + } & Struct; + readonly isUnexpected: boolean; + readonly asUnexpected: PezpalletStakingAsyncRcClientUnexpectedKind; + readonly type: 'SessionReportReceived' | 'OffenceReceived' | 'Unexpected'; + } + + /** @name PezpalletStakingAsyncRcClientUnexpectedKind (684) */ + interface PezpalletStakingAsyncRcClientUnexpectedKind extends Enum { + readonly isSessionReportIntegrityFailed: boolean; + readonly isValidatorSetIntegrityFailed: boolean; + readonly isSessionSkipped: boolean; + readonly isSessionAlreadyProcessed: boolean; + readonly isValidatorSetSendFailed: boolean; + readonly isValidatorSetDropped: boolean; + readonly type: 'SessionReportIntegrityFailed' | 'ValidatorSetIntegrityFailed' | 'SessionSkipped' | 'SessionAlreadyProcessed' | 'ValidatorSetSendFailed' | 'ValidatorSetDropped'; + } + + /** @name PezpalletElectionProviderMultiBlockEvent (685) */ + interface PezpalletElectionProviderMultiBlockEvent extends Enum { + readonly isPhaseTransitioned: boolean; + readonly asPhaseTransitioned: { + readonly from: PezpalletElectionProviderMultiBlockPhase; + readonly to: PezpalletElectionProviderMultiBlockPhase; + } & Struct; + readonly isUnexpectedTargetSnapshotFailed: boolean; + readonly isUnexpectedVoterSnapshotFailed: boolean; + readonly type: 'PhaseTransitioned' | 'UnexpectedTargetSnapshotFailed' | 'UnexpectedVoterSnapshotFailed'; + } + + /** @name PezpalletElectionProviderMultiBlockVerifierImplsPezpalletEvent (686) */ + interface PezpalletElectionProviderMultiBlockVerifierImplsPezpalletEvent extends Enum { + readonly isVerificationFailed: boolean; + readonly asVerificationFailed: ITuple<[u32, PezpalletElectionProviderMultiBlockVerifierFeasibilityError]>; + readonly isVerified: boolean; + readonly asVerified: ITuple<[u32, u32]>; + readonly isQueued: boolean; + readonly asQueued: ITuple<[PezspNposElectionsElectionScore, Option]>; + readonly type: 'VerificationFailed' | 'Verified' | 'Queued'; + } + + /** @name PezpalletElectionProviderMultiBlockVerifierFeasibilityError (687) */ + interface PezpalletElectionProviderMultiBlockVerifierFeasibilityError extends Enum { + readonly isWrongWinnerCount: boolean; + readonly isSnapshotUnavailable: boolean; + readonly isInvalidVote: boolean; + readonly isInvalidVoter: boolean; + readonly isInvalidWinner: boolean; + readonly isInvalidScore: boolean; + readonly isInvalidRound: boolean; + readonly isScoreTooLow: boolean; + readonly isFailedToBoundSupport: boolean; + readonly isNposElection: boolean; + readonly asNposElection: PezspNposElectionsError; + readonly isIncomplete: boolean; + readonly type: 'WrongWinnerCount' | 'SnapshotUnavailable' | 'InvalidVote' | 'InvalidVoter' | 'InvalidWinner' | 'InvalidScore' | 'InvalidRound' | 'ScoreTooLow' | 'FailedToBoundSupport' | 'NposElection' | 'Incomplete'; + } + + /** @name PezspNposElectionsError (688) */ + interface PezspNposElectionsError extends Enum { + readonly isSolutionWeightOverflow: boolean; + readonly isSolutionTargetOverflow: boolean; + readonly isSolutionInvalidIndex: boolean; + readonly isSolutionInvalidPageIndex: boolean; + readonly isArithmeticError: boolean; + readonly isInvalidSupportEdge: boolean; + readonly isTooManyVoters: boolean; + readonly isBoundsExceeded: boolean; + readonly isDuplicateVoter: boolean; + readonly isDuplicateTarget: boolean; + readonly type: 'SolutionWeightOverflow' | 'SolutionTargetOverflow' | 'SolutionInvalidIndex' | 'SolutionInvalidPageIndex' | 'ArithmeticError' | 'InvalidSupportEdge' | 'TooManyVoters' | 'BoundsExceeded' | 'DuplicateVoter' | 'DuplicateTarget'; + } + + /** @name PezpalletElectionProviderMultiBlockSignedPezpalletEvent (690) */ + interface PezpalletElectionProviderMultiBlockSignedPezpalletEvent extends Enum { + readonly isRegistered: boolean; + readonly asRegistered: ITuple<[u32, AccountId32, PezspNposElectionsElectionScore]>; + readonly isStored: boolean; + readonly asStored: ITuple<[u32, AccountId32, u32]>; + readonly isRewarded: boolean; + readonly asRewarded: ITuple<[u32, AccountId32, u128]>; + readonly isSlashed: boolean; + readonly asSlashed: ITuple<[u32, AccountId32, u128]>; + readonly isEjected: boolean; + readonly asEjected: ITuple<[u32, AccountId32]>; + readonly isDiscarded: boolean; + readonly asDiscarded: ITuple<[u32, AccountId32]>; + readonly isBailed: boolean; + readonly asBailed: ITuple<[u32, AccountId32]>; + readonly type: 'Registered' | 'Stored' | 'Rewarded' | 'Slashed' | 'Ejected' | 'Discarded' | 'Bailed'; + } + + /** @name PezpalletStakingAsyncPezpalletEvent (691) */ + interface PezpalletStakingAsyncPezpalletEvent extends Enum { + readonly isEraPaid: boolean; + readonly asEraPaid: { + readonly eraIndex: u32; + readonly validatorPayout: u128; + readonly remainder: u128; + } & Struct; + readonly isRewarded: boolean; + readonly asRewarded: { + readonly stash: AccountId32; + readonly dest: PezpalletStakingAsyncRewardDestination; + readonly amount: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly staker: AccountId32; + readonly amount: u128; + } & Struct; + readonly isOldSlashingReportDiscarded: boolean; + readonly asOldSlashingReportDiscarded: { + readonly sessionIndex: u32; + } & Struct; + readonly isBonded: boolean; + readonly asBonded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnbonded: boolean; + readonly asUnbonded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isWithdrawn: boolean; + readonly asWithdrawn: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isStakerRemoved: boolean; + readonly asStakerRemoved: { + readonly stash: AccountId32; + } & Struct; + readonly isKicked: boolean; + readonly asKicked: { + readonly nominator: AccountId32; + readonly stash: AccountId32; + } & Struct; + readonly isChilled: boolean; + readonly asChilled: { + readonly stash: AccountId32; + } & Struct; + readonly isPayoutStarted: boolean; + readonly asPayoutStarted: { + readonly eraIndex: u32; + readonly validatorStash: AccountId32; + readonly page: u32; + readonly next: Option; + } & Struct; + readonly isValidatorPrefsSet: boolean; + readonly asValidatorPrefsSet: { + readonly stash: AccountId32; + readonly prefs: PezpalletStakingAsyncValidatorPrefs; + } & Struct; + readonly isSnapshotVotersSizeExceeded: boolean; + readonly asSnapshotVotersSizeExceeded: { + readonly size_: u32; + } & Struct; + readonly isSnapshotTargetsSizeExceeded: boolean; + readonly asSnapshotTargetsSizeExceeded: { + readonly size_: u32; + } & Struct; + readonly isForceEra: boolean; + readonly asForceEra: { + readonly mode: PezpalletStakingAsyncForcing; + } & Struct; + readonly isControllerBatchDeprecated: boolean; + readonly asControllerBatchDeprecated: { + readonly failures: u32; + } & Struct; + readonly isCurrencyMigrated: boolean; + readonly asCurrencyMigrated: { + readonly stash: AccountId32; + readonly forceWithdraw: u128; + } & Struct; + readonly isPagedElectionProceeded: boolean; + readonly asPagedElectionProceeded: { + readonly page: u32; + readonly result: Result; + } & Struct; + readonly isOffenceReported: boolean; + readonly asOffenceReported: { + readonly offenceEra: u32; + readonly validator: AccountId32; + readonly fraction: Perbill; + } & Struct; + readonly isSlashComputed: boolean; + readonly asSlashComputed: { + readonly offenceEra: u32; + readonly slashEra: u32; + readonly offender: AccountId32; + readonly page: u32; + } & Struct; + readonly isSlashCancelled: boolean; + readonly asSlashCancelled: { + readonly slashEra: u32; + readonly validator: AccountId32; + } & Struct; + readonly isSessionRotated: boolean; + readonly asSessionRotated: { + readonly startingSession: u32; + readonly activeEra: u32; + readonly plannedEra: u32; + } & Struct; + readonly isUnexpected: boolean; + readonly asUnexpected: PezpalletStakingAsyncPezpalletUnexpectedKind; + readonly isOffenceTooOld: boolean; + readonly asOffenceTooOld: { + readonly offenceEra: u32; + readonly validator: AccountId32; + readonly fraction: Perbill; + } & Struct; + readonly isEraPruned: boolean; + readonly asEraPruned: { + readonly index: u32; + } & Struct; + readonly type: 'EraPaid' | 'Rewarded' | 'Slashed' | 'OldSlashingReportDiscarded' | 'Bonded' | 'Unbonded' | 'Withdrawn' | 'StakerRemoved' | 'Kicked' | 'Chilled' | 'PayoutStarted' | 'ValidatorPrefsSet' | 'SnapshotVotersSizeExceeded' | 'SnapshotTargetsSizeExceeded' | 'ForceEra' | 'ControllerBatchDeprecated' | 'CurrencyMigrated' | 'PagedElectionProceeded' | 'OffenceReported' | 'SlashComputed' | 'SlashCancelled' | 'SessionRotated' | 'Unexpected' | 'OffenceTooOld' | 'EraPruned'; + } + + /** @name PezpalletStakingAsyncForcing (692) */ + interface PezpalletStakingAsyncForcing extends Enum { + readonly isNotForcing: boolean; + readonly isForceNew: boolean; + readonly isForceNone: boolean; + readonly isForceAlways: boolean; + readonly type: 'NotForcing' | 'ForceNew' | 'ForceNone' | 'ForceAlways'; + } + + /** @name PezpalletStakingAsyncPezpalletUnexpectedKind (694) */ + interface PezpalletStakingAsyncPezpalletUnexpectedKind extends Enum { + readonly isEraDurationBoundExceeded: boolean; + readonly isUnknownValidatorActivation: boolean; + readonly type: 'EraDurationBoundExceeded' | 'UnknownValidatorActivation'; + } + + /** @name PezpalletAhOpsEvent (695) */ + interface PezpalletAhOpsEvent extends Enum { + readonly isLeaseUnreserveRemaining: boolean; + readonly asLeaseUnreserveRemaining: { + readonly depositor: AccountId32; + readonly paraId: u32; + readonly remaining: u128; + } & Struct; + readonly isCrowdloanUnreserveRemaining: boolean; + readonly asCrowdloanUnreserveRemaining: { + readonly depositor: AccountId32; + readonly paraId: u32; + readonly remaining: u128; + } & Struct; + readonly isSovereignMigrated: boolean; + readonly asSovereignMigrated: { + readonly paraId: u32; + readonly from: AccountId32; + readonly to: AccountId32; + readonly derivationIndex: Option; + } & Struct; + readonly type: 'LeaseUnreserveRemaining' | 'CrowdloanUnreserveRemaining' | 'SovereignMigrated'; + } + + /** @name PezpalletAhMigratorEvent (696) */ + interface PezpalletAhMigratorEvent extends Enum { + readonly isStageTransition: boolean; + readonly asStageTransition: { + readonly old: PezpalletAhMigratorMigrationStage; + readonly new_: PezpalletAhMigratorMigrationStage; + } & Struct; + readonly isBatchReceived: boolean; + readonly asBatchReceived: { + readonly pallet: PezpalletAhMigratorPezpalletEventName; + readonly count: u32; + } & Struct; + readonly isBatchProcessed: boolean; + readonly asBatchProcessed: { + readonly pallet: PezpalletAhMigratorPezpalletEventName; + readonly countGood: u32; + readonly countBad: u32; + } & Struct; + readonly isAssetHubMigrationStarted: boolean; + readonly isAssetHubMigrationFinished: boolean; + readonly isDmpQueuePrioritySet: boolean; + readonly asDmpQueuePrioritySet: { + readonly prioritized: bool; + readonly cycleBlock: u32; + readonly cyclePeriod: u32; + } & Struct; + readonly isDmpQueuePriorityConfigSet: boolean; + readonly asDmpQueuePriorityConfigSet: { + readonly old: PezpalletRcMigratorQueuePriority; + readonly new_: PezpalletRcMigratorQueuePriority; + } & Struct; + readonly isBalancesBeforeRecordSet: boolean; + readonly asBalancesBeforeRecordSet: { + readonly checkingAccount: u128; + readonly totalIssuance: u128; + } & Struct; + readonly isBalancesBeforeRecordConsumed: boolean; + readonly asBalancesBeforeRecordConsumed: { + readonly checkingAccount: u128; + readonly totalIssuance: u128; + } & Struct; + readonly isReferendumCanceled: boolean; + readonly asReferendumCanceled: { + readonly id: u32; + } & Struct; + readonly isManagerSet: boolean; + readonly asManagerSet: { + readonly old: Option; + readonly new_: Option; + } & Struct; + readonly isAccountTranslatedParachainSovereign: boolean; + readonly asAccountTranslatedParachainSovereign: { + readonly from: AccountId32; + readonly to: AccountId32; + } & Struct; + readonly isAccountTranslatedParachainSovereignDerived: boolean; + readonly asAccountTranslatedParachainSovereignDerived: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly derivationIndex: u16; + } & Struct; + readonly isXcmSent: boolean; + readonly asXcmSent: { + readonly origin: StagingXcmV5Location; + readonly destination: StagingXcmV5Location; + readonly message: StagingXcmV5Xcm; + readonly messageId: U8aFixed; + } & Struct; + readonly isFailedToUnreserveMultisigDeposit: boolean; + readonly asFailedToUnreserveMultisigDeposit: { + readonly expectedAmount: u128; + readonly missingAmount: u128; + readonly account: AccountId32; + } & Struct; + readonly isFailedToUnreservePreimageDeposit: boolean; + readonly asFailedToUnreservePreimageDeposit: { + readonly expectedAmount: u128; + readonly missingAmount: u128; + readonly account: AccountId32; + } & Struct; + readonly type: 'StageTransition' | 'BatchReceived' | 'BatchProcessed' | 'AssetHubMigrationStarted' | 'AssetHubMigrationFinished' | 'DmpQueuePrioritySet' | 'DmpQueuePriorityConfigSet' | 'BalancesBeforeRecordSet' | 'BalancesBeforeRecordConsumed' | 'ReferendumCanceled' | 'ManagerSet' | 'AccountTranslatedParachainSovereign' | 'AccountTranslatedParachainSovereignDerived' | 'XcmSent' | 'FailedToUnreserveMultisigDeposit' | 'FailedToUnreservePreimageDeposit'; + } + + /** @name PezpalletAhMigratorPezpalletEventName (697) */ + interface PezpalletAhMigratorPezpalletEventName extends Enum { + readonly isAssetRates: boolean; + readonly isBagsList: boolean; + readonly isBalances: boolean; + readonly isBounties: boolean; + readonly isChildBounties: boolean; + readonly isClaims: boolean; + readonly isConvictionVoting: boolean; + readonly isCrowdloan: boolean; + readonly isDelegatedStaking: boolean; + readonly isIndices: boolean; + readonly isMultisig: boolean; + readonly isNomPools: boolean; + readonly isPreimageChunk: boolean; + readonly isPreimageLegacyStatus: boolean; + readonly isPreimageRequestStatus: boolean; + readonly isProxyAnnouncements: boolean; + readonly isProxyProxies: boolean; + readonly isRecovery: boolean; + readonly isReferendaMetadata: boolean; + readonly isReferendaReferendums: boolean; + readonly isReferendaValues: boolean; + readonly isScheduler: boolean; + readonly isSchedulerAgenda: boolean; + readonly isStaking: boolean; + readonly isTreasury: boolean; + readonly isVesting: boolean; + readonly isSociety: boolean; + readonly type: 'AssetRates' | 'BagsList' | 'Balances' | 'Bounties' | 'ChildBounties' | 'Claims' | 'ConvictionVoting' | 'Crowdloan' | 'DelegatedStaking' | 'Indices' | 'Multisig' | 'NomPools' | 'PreimageChunk' | 'PreimageLegacyStatus' | 'PreimageRequestStatus' | 'ProxyAnnouncements' | 'ProxyProxies' | 'Recovery' | 'ReferendaMetadata' | 'ReferendaReferendums' | 'ReferendaValues' | 'Scheduler' | 'SchedulerAgenda' | 'Staking' | 'Treasury' | 'Vesting' | 'Society'; + } + + /** @name PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor (715) */ + interface PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor extends Struct { + readonly usedBandwidth: PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth; + readonly paraHeadHash: Option; + readonly consumedGoAheadSignal: Option; + } + + /** @name PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth (716) */ + interface PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth extends Struct { + readonly umpMsgCount: u32; + readonly umpTotalBytes: u32; + readonly hrmpOutgoing: BTreeMap; + } + + /** @name PezcumulusPezpalletTeyrchainSystemUnincludedSegmentHrmpChannelUpdate (718) */ + interface PezcumulusPezpalletTeyrchainSystemUnincludedSegmentHrmpChannelUpdate extends Struct { + readonly msgCount: u32; + readonly totalBytes: u32; + } + + /** @name PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker (723) */ + interface PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker extends Struct { + readonly usedBandwidth: PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth; + readonly hrmpWatermark: Option; + readonly consumedGoAheadSignal: Option; + } + + /** @name PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot (726) */ + interface PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot extends Struct { + readonly dmqMqcHead: H256; + readonly relayDispatchQueueRemainingCapacity: PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + readonly ingressChannels: Vec>; + readonly egressChannels: Vec>; + } + + /** @name PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity (727) */ + interface PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity extends Struct { + readonly remainingCount: u32; + readonly remainingSize: u32; + } + + /** @name PezkuwiPrimitivesV8AbridgedHrmpChannel (730) */ + interface PezkuwiPrimitivesV8AbridgedHrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; + } + + /** @name PezkuwiPrimitivesV8AbridgedHostConfiguration (731) */ + interface PezkuwiPrimitivesV8AbridgedHostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeCooldown: u32; + readonly validationUpgradeDelay: u32; + readonly asyncBackingParams: PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams; + } + + /** @name PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId (737) */ + interface PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId extends Struct { + readonly sentAt: u32; + readonly reverseIdx: u32; + } + + /** @name PezcumulusPezpalletTeyrchainSystemError (740) */ + interface PezcumulusPezpalletTeyrchainSystemError extends Enum { + readonly isOverlappingUpgrades: boolean; + readonly isProhibitedByPolkadot: boolean; + readonly isTooBig: boolean; + readonly isValidationDataNotAvailable: boolean; + readonly isHostConfigurationNotAvailable: boolean; + readonly isNotScheduled: boolean; + readonly type: 'OverlappingUpgrades' | 'ProhibitedByPolkadot' | 'TooBig' | 'ValidationDataNotAvailable' | 'HostConfigurationNotAvailable' | 'NotScheduled'; + } + + /** @name AssetHubPezkuwiRuntimeRuntimeHoldReason (761) */ + interface AssetHubPezkuwiRuntimeRuntimeHoldReason extends Enum { + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageHoldReason; + readonly isSession: boolean; + readonly asSession: PezpalletSessionHoldReason; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PezpalletXcmHoldReason; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationHoldReason; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingHoldReason; + readonly isMultiBlockElectionSigned: boolean; + readonly asMultiBlockElectionSigned: PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingAsyncPezpalletHoldReason; + readonly type: 'Preimage' | 'Session' | 'PolkadotXcm' | 'StateTrieMigration' | 'DelegatedStaking' | 'MultiBlockElectionSigned' | 'Staking'; + } + + /** @name PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason (762) */ + interface PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason extends Enum { + readonly isSignedSubmission: boolean; + readonly type: 'SignedSubmission'; + } + + /** @name PezpalletStakingAsyncPezpalletHoldReason (763) */ + interface PezpalletStakingAsyncPezpalletHoldReason extends Enum { + readonly isStaking: boolean; + readonly type: 'Staking'; + } + + /** @name AssetHubPezkuwiRuntimeRuntimeFreezeReason (767) */ + interface AssetHubPezkuwiRuntimeRuntimeFreezeReason extends Enum { + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsFreezeReason; + readonly type: 'NominationPools'; + } + + /** @name PezpalletCollatorSelectionCandidateInfo (776) */ + interface PezpalletCollatorSelectionCandidateInfo extends Struct { + readonly who: AccountId32; + readonly deposit: u128; + } + + /** @name PezpalletCollatorSelectionError (779) */ + interface PezpalletCollatorSelectionError extends Enum { + readonly isTooManyCandidates: boolean; + readonly isTooFewEligibleCollators: boolean; + readonly isAlreadyCandidate: boolean; + readonly isNotCandidate: boolean; + readonly isTooManyInvulnerables: boolean; + readonly isAlreadyInvulnerable: boolean; + readonly isNotInvulnerable: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isValidatorNotRegistered: boolean; + readonly isInsertToCandidateListFailed: boolean; + readonly isRemoveFromCandidateListFailed: boolean; + readonly isDepositTooLow: boolean; + readonly isUpdateCandidateListFailed: boolean; + readonly isInsufficientBond: boolean; + readonly isTargetIsNotCandidate: boolean; + readonly isIdenticalDeposit: boolean; + readonly isInvalidUnreserve: boolean; + readonly type: 'TooManyCandidates' | 'TooFewEligibleCollators' | 'AlreadyCandidate' | 'NotCandidate' | 'TooManyInvulnerables' | 'AlreadyInvulnerable' | 'NotInvulnerable' | 'NoAssociatedValidatorId' | 'ValidatorNotRegistered' | 'InsertToCandidateListFailed' | 'RemoveFromCandidateListFailed' | 'DepositTooLow' | 'UpdateCandidateListFailed' | 'InsufficientBond' | 'TargetIsNotCandidate' | 'IdenticalDeposit' | 'InvalidUnreserve'; + } + + /** @name PezcumulusPezpalletXcmpQueueOutboundChannelDetails (796) */ + interface PezcumulusPezpalletXcmpQueueOutboundChannelDetails extends Struct { + readonly recipient: u32; + readonly state: PezcumulusPezpalletXcmpQueueOutboundState; + readonly signalsExist: bool; + readonly firstIndex: u16; + readonly lastIndex: u16; + } + + /** @name PezcumulusPezpalletXcmpQueueOutboundState (797) */ + interface PezcumulusPezpalletXcmpQueueOutboundState extends Enum { + readonly isOk: boolean; + readonly isSuspended: boolean; + readonly type: 'Ok' | 'Suspended'; + } + + /** @name PezcumulusPezpalletXcmpQueueQueueConfigData (801) */ + interface PezcumulusPezpalletXcmpQueueQueueConfigData extends Struct { + readonly suspendThreshold: u32; + readonly dropThreshold: u32; + readonly resumeThreshold: u32; + } + + /** @name PezcumulusPezpalletXcmpQueueError (802) */ + interface PezcumulusPezpalletXcmpQueueError extends Enum { + readonly isBadQueueConfig: boolean; + readonly isAlreadySuspended: boolean; + readonly isAlreadyResumed: boolean; + readonly isTooManyActiveOutboundChannels: boolean; + readonly isTooBig: boolean; + readonly type: 'BadQueueConfig' | 'AlreadySuspended' | 'AlreadyResumed' | 'TooManyActiveOutboundChannels' | 'TooBig'; + } + + /** @name BpXcmBridgeHubRouterBridgeState (831) */ + interface BpXcmBridgeHubRouterBridgeState extends Struct { + readonly deliveryFeeFactor: u128; + readonly isCongested: bool; + } + + /** @name SnowbridgePezpalletSystemFrontendError (839) */ + interface SnowbridgePezpalletSystemFrontendError extends Enum { + readonly isUnsupportedLocationVersion: boolean; + readonly isInvalidAssetOwner: boolean; + readonly isSendFailure: boolean; + readonly isFeesNotMet: boolean; + readonly isLocationConversionFailed: boolean; + readonly isHalted: boolean; + readonly isUnreachable: boolean; + readonly isUnsupportedAsset: boolean; + readonly isWithdrawError: boolean; + readonly isInvalidAccount: boolean; + readonly isSwapError: boolean; + readonly isBurnError: boolean; + readonly isTipAmountZero: boolean; + readonly type: 'UnsupportedLocationVersion' | 'InvalidAssetOwner' | 'SendFailure' | 'FeesNotMet' | 'LocationConversionFailed' | 'Halted' | 'Unreachable' | 'UnsupportedAsset' | 'WithdrawError' | 'InvalidAccount' | 'SwapError' | 'BurnError' | 'TipAmountZero'; + } + + /** @name PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType (847) */ + interface PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType extends Struct { + readonly delegate: AccountId32; + readonly proxyType: AssetHubPezkuwiRuntimeProxyType; + readonly delay: u32; + } + + /** @name PezpalletReferendaReferendumInfoOriginCaller (917) */ + interface PezpalletReferendaReferendumInfoOriginCaller extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PezpalletReferendaReferendumStatusOriginCaller; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; + } + + /** @name PezpalletReferendaReferendumStatusOriginCaller (918) */ + interface PezpalletReferendaReferendumStatusOriginCaller extends Struct { + readonly track: u16; + readonly origin: AssetHubPezkuwiRuntimeOriginCaller; + readonly proposal: PezframeSupportPreimagesBounded; + readonly enactment: PezframeSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PezpalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PezpalletConvictionVotingTally; + readonly inQueue: bool; + readonly alarm: Option]>>; + } + + /** @name PezpalletElectionProviderMultiBlockError (959) */ + interface PezpalletElectionProviderMultiBlockError extends Enum { + readonly isFallback: boolean; + readonly isUnexpectedPhase: boolean; + readonly isSnapshot: boolean; + readonly type: 'Fallback' | 'UnexpectedPhase' | 'Snapshot'; + } + + /** @name PezpalletElectionProviderMultiBlockVerifierImplsValidSolution (960) */ + interface PezpalletElectionProviderMultiBlockVerifierImplsValidSolution extends Enum { + readonly isX: boolean; + readonly isY: boolean; + readonly type: 'X' | 'Y'; + } + + /** @name PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings (963) */ + interface PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings extends Struct { + readonly total: u128; + readonly backers: u32; + } + + /** @name PezpalletElectionProviderMultiBlockVerifierImplsStatus (965) */ + interface PezpalletElectionProviderMultiBlockVerifierImplsStatus extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: u32; + readonly isNothing: boolean; + readonly type: 'Ongoing' | 'Nothing'; + } + + /** @name PezpalletElectionProviderMultiBlockSignedSubmissionMetadata (970) */ + interface PezpalletElectionProviderMultiBlockSignedSubmissionMetadata extends Struct { + readonly deposit: u128; + readonly fee: u128; + readonly reward: u128; + readonly claimedScore: PezspNposElectionsElectionScore; + readonly pages: Vec; + } + + /** @name PezpalletElectionProviderMultiBlockSignedPezpalletError (973) */ + interface PezpalletElectionProviderMultiBlockSignedPezpalletError extends Enum { + readonly isPhaseNotSigned: boolean; + readonly isDuplicate: boolean; + readonly isQueueFull: boolean; + readonly isBadPageIndex: boolean; + readonly isNotRegistered: boolean; + readonly isNoSubmission: boolean; + readonly isRoundNotOver: boolean; + readonly isBadWitnessData: boolean; + readonly isTooManyInvulnerables: boolean; + readonly type: 'PhaseNotSigned' | 'Duplicate' | 'QueueFull' | 'BadPageIndex' | 'NotRegistered' | 'NoSubmission' | 'RoundNotOver' | 'BadWitnessData' | 'TooManyInvulnerables'; + } + + /** @name PezpalletStakingAsyncLedgerStakingLedger (974) */ + interface PezpalletStakingAsyncLedgerStakingLedger extends Struct { + readonly stash: AccountId32; + readonly total: Compact; + readonly active: Compact; + readonly unlocking: Vec; + } + + /** @name PezpalletStakingAsyncNominations (975) */ + interface PezpalletStakingAsyncNominations extends Struct { + readonly targets: Vec; + readonly submittedIn: u32; + readonly suppressed: bool; + } + + /** @name PezpalletStakingAsyncActiveEraInfo (976) */ + interface PezpalletStakingAsyncActiveEraInfo extends Struct { + readonly index: u32; + readonly start: Option; + } + + /** @name PezpalletStakingAsyncPezpalletBoundedExposurePage (979) */ + interface PezpalletStakingAsyncPezpalletBoundedExposurePage extends PezspStakingExposurePage {} + + /** @name PezpalletStakingAsyncEraRewardPoints (984) */ + interface PezpalletStakingAsyncEraRewardPoints extends Struct { + readonly total: u32; + readonly individual: BTreeMap; + } + + /** @name PezpalletStakingAsyncSlashingOffenceRecord (987) */ + interface PezpalletStakingAsyncSlashingOffenceRecord extends Struct { + readonly reporter: Option; + readonly reportedEra: u32; + readonly exposurePage: u32; + readonly slashFraction: Perbill; + readonly priorSlashFraction: Perbill; + } + + /** @name PezpalletStakingAsyncUnappliedSlash (991) */ + interface PezpalletStakingAsyncUnappliedSlash extends Struct { + readonly validator: AccountId32; + readonly own: u128; + readonly others: Vec>; + readonly reporter: Option; + readonly payout: u128; + } + + /** @name PezpalletStakingAsyncSnapshotStatus (994) */ + interface PezpalletStakingAsyncSnapshotStatus extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: AccountId32; + readonly isConsumed: boolean; + readonly isWaiting: boolean; + readonly type: 'Ongoing' | 'Consumed' | 'Waiting'; + } + + /** @name PezpalletStakingAsyncPezpalletPruningStep (996) */ + interface PezpalletStakingAsyncPezpalletPruningStep extends Enum { + readonly isErasStakersPaged: boolean; + readonly isErasStakersOverview: boolean; + readonly isErasValidatorPrefs: boolean; + readonly isClaimedRewards: boolean; + readonly isErasValidatorReward: boolean; + readonly isErasRewardPoints: boolean; + readonly isErasTotalStake: boolean; + readonly type: 'ErasStakersPaged' | 'ErasStakersOverview' | 'ErasValidatorPrefs' | 'ClaimedRewards' | 'ErasValidatorReward' | 'ErasRewardPoints' | 'ErasTotalStake'; + } + + /** @name PezpalletStakingAsyncPezpalletError (997) */ + interface PezpalletStakingAsyncPezpalletError extends Enum { + readonly isNotController: boolean; + readonly isNotStash: boolean; + readonly isAlreadyBonded: boolean; + readonly isAlreadyPaired: boolean; + readonly isEmptyTargets: boolean; + readonly isDuplicateIndex: boolean; + readonly isInvalidSlashRecord: boolean; + readonly isInsufficientBond: boolean; + readonly isNoMoreChunks: boolean; + readonly isNoUnlockChunk: boolean; + readonly isFundedTarget: boolean; + readonly isInvalidEraToReward: boolean; + readonly isInvalidNumberOfNominations: boolean; + readonly isAlreadyClaimed: boolean; + readonly isInvalidPage: boolean; + readonly isIncorrectHistoryDepth: boolean; + readonly isBadState: boolean; + readonly isTooManyTargets: boolean; + readonly isBadTarget: boolean; + readonly isCannotChillOther: boolean; + readonly isTooManyNominators: boolean; + readonly isTooManyValidators: boolean; + readonly isCommissionTooLow: boolean; + readonly isBoundNotMet: boolean; + readonly isControllerDeprecated: boolean; + readonly isCannotRestoreLedger: boolean; + readonly isRewardDestinationRestricted: boolean; + readonly isNotEnoughFunds: boolean; + readonly isVirtualStakerNotAllowed: boolean; + readonly isCannotReapStash: boolean; + readonly isAlreadyMigrated: boolean; + readonly isEraNotStarted: boolean; + readonly isRestricted: boolean; + readonly isUnappliedSlashesInPreviousEra: boolean; + readonly isEraNotPrunable: boolean; + readonly isCancelledSlash: boolean; + readonly type: 'NotController' | 'NotStash' | 'AlreadyBonded' | 'AlreadyPaired' | 'EmptyTargets' | 'DuplicateIndex' | 'InvalidSlashRecord' | 'InsufficientBond' | 'NoMoreChunks' | 'NoUnlockChunk' | 'FundedTarget' | 'InvalidEraToReward' | 'InvalidNumberOfNominations' | 'AlreadyClaimed' | 'InvalidPage' | 'IncorrectHistoryDepth' | 'BadState' | 'TooManyTargets' | 'BadTarget' | 'CannotChillOther' | 'TooManyNominators' | 'TooManyValidators' | 'CommissionTooLow' | 'BoundNotMet' | 'ControllerDeprecated' | 'CannotRestoreLedger' | 'RewardDestinationRestricted' | 'NotEnoughFunds' | 'VirtualStakerNotAllowed' | 'CannotReapStash' | 'AlreadyMigrated' | 'EraNotStarted' | 'Restricted' | 'UnappliedSlashesInPreviousEra' | 'EraNotPrunable' | 'CancelledSlash'; + } + + /** @name PezpalletAhOpsError (999) */ + interface PezpalletAhOpsError extends Enum { + readonly isNoLeaseReserve: boolean; + readonly isNoCrowdloanContribution: boolean; + readonly isNoCrowdloanReserve: boolean; + readonly isFailedToWithdrawCrowdloanContribution: boolean; + readonly isNotYet: boolean; + readonly isContributionsRemaining: boolean; + readonly isWrongDerivedTranslation: boolean; + readonly isNotSovereign: boolean; + readonly isInternalError: boolean; + readonly isMigrationNotCompleted: boolean; + readonly isZeroBalance: boolean; + readonly type: 'NoLeaseReserve' | 'NoCrowdloanContribution' | 'NoCrowdloanReserve' | 'FailedToWithdrawCrowdloanContribution' | 'NotYet' | 'ContributionsRemaining' | 'WrongDerivedTranslation' | 'NotSovereign' | 'InternalError' | 'MigrationNotCompleted' | 'ZeroBalance'; + } + + /** @name PezpalletAhMigratorBalancesBefore (1000) */ + interface PezpalletAhMigratorBalancesBefore extends Struct { + readonly checkingAccount: u128; + readonly totalIssuance: u128; + } + + /** @name PezpalletAhMigratorError (1001) */ + interface PezpalletAhMigratorError extends Enum { + readonly isFailedToUnreserveDeposit: boolean; + readonly isFailedToProcessAccount: boolean; + readonly isInsertConflict: boolean; + readonly isFailedToConvertType: boolean; + readonly isPreimageNotFound: boolean; + readonly isFailedToConvertCall: boolean; + readonly isFailedToBoundCall: boolean; + readonly isXcmError: boolean; + readonly isFailedToIntegrateVestingSchedule: boolean; + readonly isFailedToCalculateCheckingAccount: boolean; + readonly isFailedToBoundVector: boolean; + readonly isDmpQueuePriorityAlreadySet: boolean; + readonly isInvalidParameter: boolean; + readonly isPreimageMissing: boolean; + readonly isPreimageTooBig: boolean; + readonly isPreimageChunkMissing: boolean; + readonly isPreimageStatusInvalid: boolean; + readonly isBadXcmVersion: boolean; + readonly isInvalidOrigin: boolean; + readonly type: 'FailedToUnreserveDeposit' | 'FailedToProcessAccount' | 'InsertConflict' | 'FailedToConvertType' | 'PreimageNotFound' | 'FailedToConvertCall' | 'FailedToBoundCall' | 'XcmError' | 'FailedToIntegrateVestingSchedule' | 'FailedToCalculateCheckingAccount' | 'FailedToBoundVector' | 'DmpQueuePriorityAlreadySet' | 'InvalidParameter' | 'PreimageMissing' | 'PreimageTooBig' | 'PreimageChunkMissing' | 'PreimageStatusInvalid' | 'BadXcmVersion' | 'InvalidOrigin'; + } + + /** @name AssetHubPezkuwiRuntimeRuntime (1014) */ + type AssetHubPezkuwiRuntimeRuntime = Null; + + /** @name XcmVersionedAsset (1062) */ + interface XcmVersionedAsset extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiAsset; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Asset; + readonly isV5: boolean; + readonly asV5: StagingXcmV5Asset; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name XcmRuntimeApisTrustedQueryError (1064) */ + interface XcmRuntimeApisTrustedQueryError extends Enum { + readonly isVersionedAssetConversionFailed: boolean; + readonly isVersionedLocationConversionFailed: boolean; + readonly type: 'VersionedAssetConversionFailed' | 'VersionedLocationConversionFailed'; + } + + /** @name XcmRuntimeApisAuthorizedAliasesError (1066) */ + interface XcmRuntimeApisAuthorizedAliasesError extends Enum { + readonly isLocationVersionConversionFailed: boolean; + readonly type: 'LocationVersionConversionFailed'; + } + + /** @name AssetsCommonRuntimeApiFungiblesAccessError (1069) */ + interface AssetsCommonRuntimeApiFungiblesAccessError extends Enum { + readonly isAssetIdConversionFailed: boolean; + readonly isAmountToBalanceConversionFailed: boolean; + readonly type: 'AssetIdConversionFailed' | 'AmountToBalanceConversionFailed'; + } + + /** @name PezcumulusPrimitivesCoreCollationInfo (1070) */ + interface PezcumulusPrimitivesCoreCollationInfo extends Struct { + readonly upwardMessages: Vec; + readonly horizontalMessages: Vec; + readonly newValidationCode: Option; + readonly processedDownwardMessages: u32; + readonly hrmpWatermark: u32; + readonly headData: Bytes; + } + + /** @name AssetHubPezkuwiRuntimeRuntimeError (1079) */ + interface AssetHubPezkuwiRuntimeRuntimeError extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSystemError; + readonly isParachainSystem: boolean; + readonly asParachainSystem: PezcumulusPezpalletTeyrchainSystemError; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageError; + readonly isScheduler: boolean; + readonly asScheduler: PezpalletSchedulerError; + readonly isBalances: boolean; + readonly asBalances: PezpalletBalancesError; + readonly isVesting: boolean; + readonly asVesting: PezpalletVestingError; + readonly isClaims: boolean; + readonly asClaims: PezkuwiRuntimeCommonClaimsPezpalletError; + readonly isCollatorSelection: boolean; + readonly asCollatorSelection: PezpalletCollatorSelectionError; + readonly isSession: boolean; + readonly asSession: PezpalletSessionError; + readonly isXcmpQueue: boolean; + readonly asXcmpQueue: PezcumulusPezpalletXcmpQueueError; + readonly isPolkadotXcm: boolean; + readonly asPolkadotXcm: PezpalletXcmError; + readonly isMessageQueue: boolean; + readonly asMessageQueue: PezpalletMessageQueueError; + readonly isSnowbridgeSystemFrontend: boolean; + readonly asSnowbridgeSystemFrontend: SnowbridgePezpalletSystemFrontendError; + readonly isUtility: boolean; + readonly asUtility: PezpalletUtilityError; + readonly isMultisig: boolean; + readonly asMultisig: PezpalletMultisigError; + readonly isProxy: boolean; + readonly asProxy: PezpalletProxyError; + readonly isIndices: boolean; + readonly asIndices: PezpalletIndicesError; + readonly isAssets: boolean; + readonly asAssets: PezpalletAssetsError; + readonly isUniques: boolean; + readonly asUniques: PezpalletUniquesError; + readonly isNfts: boolean; + readonly asNfts: PezpalletNftsError; + readonly isForeignAssets: boolean; + readonly asForeignAssets: PezpalletAssetsError; + readonly isPoolAssets: boolean; + readonly asPoolAssets: PezpalletAssetsError; + readonly isAssetConversion: boolean; + readonly asAssetConversion: PezpalletAssetConversionError; + readonly isTreasury: boolean; + readonly asTreasury: PezpalletTreasuryError; + readonly isConvictionVoting: boolean; + readonly asConvictionVoting: PezpalletConvictionVotingError; + readonly isReferenda: boolean; + readonly asReferenda: PezpalletReferendaError; + readonly isWhitelist: boolean; + readonly asWhitelist: PezpalletWhitelistError; + readonly isBounties: boolean; + readonly asBounties: PezpalletBountiesError; + readonly isChildBounties: boolean; + readonly asChildBounties: PezpalletChildBountiesError; + readonly isAssetRate: boolean; + readonly asAssetRate: PezpalletAssetRateError; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationError; + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsError; + readonly isVoterList: boolean; + readonly asVoterList: PezpalletBagsListError; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingError; + readonly isMultiBlockElection: boolean; + readonly asMultiBlockElection: PezpalletElectionProviderMultiBlockError; + readonly isMultiBlockElectionSigned: boolean; + readonly asMultiBlockElectionSigned: PezpalletElectionProviderMultiBlockSignedPezpalletError; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingAsyncPezpalletError; + readonly isAhOps: boolean; + readonly asAhOps: PezpalletAhOpsError; + readonly isAhMigrator: boolean; + readonly asAhMigrator: PezpalletAhMigratorError; + readonly type: 'System' | 'ParachainSystem' | 'Preimage' | 'Scheduler' | 'Balances' | 'Vesting' | 'Claims' | 'CollatorSelection' | 'Session' | 'XcmpQueue' | 'PolkadotXcm' | 'MessageQueue' | 'SnowbridgeSystemFrontend' | 'Utility' | 'Multisig' | 'Proxy' | 'Indices' | 'Assets' | 'Uniques' | 'Nfts' | 'ForeignAssets' | 'PoolAssets' | 'AssetConversion' | 'Treasury' | 'ConvictionVoting' | 'Referenda' | 'Whitelist' | 'Bounties' | 'ChildBounties' | 'AssetRate' | 'StateTrieMigration' | 'NominationPools' | 'VoterList' | 'DelegatedStaking' | 'MultiBlockElection' | 'MultiBlockElectionSigned' | 'Staking' | 'AhOps' | 'AhMigrator'; + } + +} // declare module diff --git a/packages/types-augment/src/lookup/types-bizinikiwi.ts b/packages/types-augment/src/lookup/types-bizinikiwi.ts new file mode 100644 index 0000000..05f88aa --- /dev/null +++ b/packages/types-augment/src/lookup/types-bizinikiwi.ts @@ -0,0 +1,10589 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/lookup'; + +import type { Data } from '@pezkuwi/types'; +import type { BTreeMap, Bytes, Compact, Enum, Null, Option, Result, Struct, Text, U256, U8aFixed, Vec, bool, i32, i64, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { Vote } from '@pezkuwi/types/interfaces/elections'; +import type { Era } from '@pezkuwi/types/interfaces/extrinsics'; +import type { AccountId32, H160, H256, MultiAddress, PerU16, Perbill, Percent, Permill, Perquintill, RuntimeCall, RuntimeEvent } from '@pezkuwi/types/interfaces/runtime'; + +declare module '@pezkuwi/types/lookup' { + /** @name PezframeSystemAccountInfo (3) */ + interface PezframeSystemAccountInfo extends Struct { + readonly nonce: u32; + readonly consumers: u32; + readonly providers: u32; + readonly sufficients: u32; + readonly data: PezpalletBalancesAccountData; + } + + /** @name PezpalletBalancesAccountData (5) */ + interface PezpalletBalancesAccountData extends Struct { + readonly free: u128; + readonly reserved: u128; + readonly frozen: u128; + readonly flags: u128; + } + + /** @name PezframeSupportDispatchPerDispatchClassWeight (9) */ + interface PezframeSupportDispatchPerDispatchClassWeight extends Struct { + readonly normal: PezspWeightsWeightV2Weight; + readonly operational: PezspWeightsWeightV2Weight; + readonly mandatory: PezspWeightsWeightV2Weight; + } + + /** @name PezspWeightsWeightV2Weight (10) */ + interface PezspWeightsWeightV2Weight extends Struct { + readonly refTime: Compact; + readonly proofSize: Compact; + } + + /** @name PezspRuntimeDigest (15) */ + interface PezspRuntimeDigest extends Struct { + readonly logs: Vec; + } + + /** @name PezspRuntimeDigestDigestItem (17) */ + interface PezspRuntimeDigestDigestItem extends Enum { + readonly isOther: boolean; + readonly asOther: Bytes; + readonly isConsensus: boolean; + readonly asConsensus: ITuple<[U8aFixed, Bytes]>; + readonly isSeal: boolean; + readonly asSeal: ITuple<[U8aFixed, Bytes]>; + readonly isPreRuntime: boolean; + readonly asPreRuntime: ITuple<[U8aFixed, Bytes]>; + readonly isRuntimeEnvironmentUpdated: boolean; + readonly type: 'Other' | 'Consensus' | 'Seal' | 'PreRuntime' | 'RuntimeEnvironmentUpdated'; + } + + /** @name PezframeSystemEventRecord (20) */ + interface PezframeSystemEventRecord extends Struct { + readonly phase: PezframeSystemPhase; + readonly event: RuntimeEvent; + readonly topics: Vec; + } + + /** @name PezframeSystemEvent (22) */ + interface PezframeSystemEvent extends Enum { + readonly isExtrinsicSuccess: boolean; + readonly asExtrinsicSuccess: { + readonly dispatchInfo: PezframeSystemDispatchEventInfo; + } & Struct; + readonly isExtrinsicFailed: boolean; + readonly asExtrinsicFailed: { + readonly dispatchError: PezspRuntimeDispatchError; + readonly dispatchInfo: PezframeSystemDispatchEventInfo; + } & Struct; + readonly isCodeUpdated: boolean; + readonly isNewAccount: boolean; + readonly asNewAccount: { + readonly account: AccountId32; + } & Struct; + readonly isKilledAccount: boolean; + readonly asKilledAccount: { + readonly account: AccountId32; + } & Struct; + readonly isRemarked: boolean; + readonly asRemarked: { + readonly sender: AccountId32; + readonly hash_: H256; + } & Struct; + readonly isUpgradeAuthorized: boolean; + readonly asUpgradeAuthorized: { + readonly codeHash: H256; + readonly checkVersion: bool; + } & Struct; + readonly isRejectedInvalidAuthorizedUpgrade: boolean; + readonly asRejectedInvalidAuthorizedUpgrade: { + readonly codeHash: H256; + readonly error: PezspRuntimeDispatchError; + } & Struct; + readonly type: 'ExtrinsicSuccess' | 'ExtrinsicFailed' | 'CodeUpdated' | 'NewAccount' | 'KilledAccount' | 'Remarked' | 'UpgradeAuthorized' | 'RejectedInvalidAuthorizedUpgrade'; + } + + /** @name PezframeSystemDispatchEventInfo (23) */ + interface PezframeSystemDispatchEventInfo extends Struct { + readonly weight: PezspWeightsWeightV2Weight; + readonly class: PezframeSupportDispatchDispatchClass; + readonly paysFee: PezframeSupportDispatchPays; + } + + /** @name PezframeSupportDispatchDispatchClass (24) */ + interface PezframeSupportDispatchDispatchClass extends Enum { + readonly isNormal: boolean; + readonly isOperational: boolean; + readonly isMandatory: boolean; + readonly type: 'Normal' | 'Operational' | 'Mandatory'; + } + + /** @name PezframeSupportDispatchPays (25) */ + interface PezframeSupportDispatchPays extends Enum { + readonly isYes: boolean; + readonly isNo: boolean; + readonly type: 'Yes' | 'No'; + } + + /** @name PezspRuntimeDispatchError (26) */ + interface PezspRuntimeDispatchError extends Enum { + readonly isOther: boolean; + readonly isCannotLookup: boolean; + readonly isBadOrigin: boolean; + readonly isModule: boolean; + readonly asModule: PezspRuntimeModuleError; + readonly isConsumerRemaining: boolean; + readonly isNoProviders: boolean; + readonly isTooManyConsumers: boolean; + readonly isToken: boolean; + readonly asToken: PezspRuntimeTokenError; + readonly isArithmetic: boolean; + readonly asArithmetic: PezspArithmeticArithmeticError; + readonly isTransactional: boolean; + readonly asTransactional: PezspRuntimeTransactionalError; + readonly isExhausted: boolean; + readonly isCorruption: boolean; + readonly isUnavailable: boolean; + readonly isRootNotAllowed: boolean; + readonly isTrie: boolean; + readonly asTrie: PezspRuntimeProvingTrieTrieError; + readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional' | 'Exhausted' | 'Corruption' | 'Unavailable' | 'RootNotAllowed' | 'Trie'; + } + + /** @name PezspRuntimeModuleError (27) */ + interface PezspRuntimeModuleError extends Struct { + readonly index: u8; + readonly error: U8aFixed; + } + + /** @name PezspRuntimeTokenError (28) */ + interface PezspRuntimeTokenError extends Enum { + readonly isFundsUnavailable: boolean; + readonly isOnlyProvider: boolean; + readonly isBelowMinimum: boolean; + readonly isCannotCreate: boolean; + readonly isUnknownAsset: boolean; + readonly isFrozen: boolean; + readonly isUnsupported: boolean; + readonly isCannotCreateHold: boolean; + readonly isNotExpendable: boolean; + readonly isBlocked: boolean; + readonly type: 'FundsUnavailable' | 'OnlyProvider' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported' | 'CannotCreateHold' | 'NotExpendable' | 'Blocked'; + } + + /** @name PezspArithmeticArithmeticError (29) */ + interface PezspArithmeticArithmeticError extends Enum { + readonly isUnderflow: boolean; + readonly isOverflow: boolean; + readonly isDivisionByZero: boolean; + readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero'; + } + + /** @name PezspRuntimeTransactionalError (30) */ + interface PezspRuntimeTransactionalError extends Enum { + readonly isLimitReached: boolean; + readonly isNoLayer: boolean; + readonly type: 'LimitReached' | 'NoLayer'; + } + + /** @name PezspRuntimeProvingTrieTrieError (31) */ + interface PezspRuntimeProvingTrieTrieError extends Enum { + readonly isInvalidStateRoot: boolean; + readonly isIncompleteDatabase: boolean; + readonly isValueAtIncompleteKey: boolean; + readonly isDecoderError: boolean; + readonly isInvalidHash: boolean; + readonly isDuplicateKey: boolean; + readonly isExtraneousNode: boolean; + readonly isExtraneousValue: boolean; + readonly isExtraneousHashReference: boolean; + readonly isInvalidChildReference: boolean; + readonly isValueMismatch: boolean; + readonly isIncompleteProof: boolean; + readonly isRootMismatch: boolean; + readonly isDecodeError: boolean; + readonly type: 'InvalidStateRoot' | 'IncompleteDatabase' | 'ValueAtIncompleteKey' | 'DecoderError' | 'InvalidHash' | 'DuplicateKey' | 'ExtraneousNode' | 'ExtraneousValue' | 'ExtraneousHashReference' | 'InvalidChildReference' | 'ValueMismatch' | 'IncompleteProof' | 'RootMismatch' | 'DecodeError'; + } + + /** @name PezpalletUtilityEvent (32) */ + interface PezpalletUtilityEvent extends Enum { + readonly isBatchInterrupted: boolean; + readonly asBatchInterrupted: { + readonly index: u32; + readonly error: PezspRuntimeDispatchError; + } & Struct; + readonly isBatchCompleted: boolean; + readonly isBatchCompletedWithErrors: boolean; + readonly isItemCompleted: boolean; + readonly isItemFailed: boolean; + readonly asItemFailed: { + readonly error: PezspRuntimeDispatchError; + } & Struct; + readonly isDispatchedAs: boolean; + readonly asDispatchedAs: { + readonly result: Result; + } & Struct; + readonly isIfElseMainSuccess: boolean; + readonly isIfElseFallbackCalled: boolean; + readonly asIfElseFallbackCalled: { + readonly mainError: PezspRuntimeDispatchError; + } & Struct; + readonly type: 'BatchInterrupted' | 'BatchCompleted' | 'BatchCompletedWithErrors' | 'ItemCompleted' | 'ItemFailed' | 'DispatchedAs' | 'IfElseMainSuccess' | 'IfElseFallbackCalled'; + } + + /** @name PezpalletIndicesEvent (35) */ + interface PezpalletIndicesEvent extends Enum { + readonly isIndexAssigned: boolean; + readonly asIndexAssigned: { + readonly who: AccountId32; + readonly index: u32; + } & Struct; + readonly isIndexFreed: boolean; + readonly asIndexFreed: { + readonly index: u32; + } & Struct; + readonly isIndexFrozen: boolean; + readonly asIndexFrozen: { + readonly index: u32; + readonly who: AccountId32; + } & Struct; + readonly isDepositPoked: boolean; + readonly asDepositPoked: { + readonly who: AccountId32; + readonly index: u32; + readonly oldDeposit: u128; + readonly newDeposit: u128; + } & Struct; + readonly type: 'IndexAssigned' | 'IndexFreed' | 'IndexFrozen' | 'DepositPoked'; + } + + /** @name PezpalletBalancesEvent (36) */ + interface PezpalletBalancesEvent extends Enum { + readonly isEndowed: boolean; + readonly asEndowed: { + readonly account: AccountId32; + readonly freeBalance: u128; + } & Struct; + readonly isDustLost: boolean; + readonly asDustLost: { + readonly account: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBalanceSet: boolean; + readonly asBalanceSet: { + readonly who: AccountId32; + readonly free: u128; + } & Struct; + readonly isReserved: boolean; + readonly asReserved: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnreserved: boolean; + readonly asUnreserved: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isReserveRepatriated: boolean; + readonly asReserveRepatriated: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + readonly destinationStatus: PezframeSupportTokensMiscBalanceStatus; + } & Struct; + readonly isDeposit: boolean; + readonly asDeposit: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isWithdraw: boolean; + readonly asWithdraw: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isMinted: boolean; + readonly asMinted: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSuspended: boolean; + readonly asSuspended: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isRestored: boolean; + readonly asRestored: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUpgraded: boolean; + readonly asUpgraded: { + readonly who: AccountId32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly amount: u128; + } & Struct; + readonly isRescinded: boolean; + readonly asRescinded: { + readonly amount: u128; + } & Struct; + readonly isLocked: boolean; + readonly asLocked: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnlocked: boolean; + readonly asUnlocked: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isFrozen: boolean; + readonly asFrozen: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTotalIssuanceForced: boolean; + readonly asTotalIssuanceForced: { + readonly old: u128; + readonly new_: u128; + } & Struct; + readonly type: 'Endowed' | 'DustLost' | 'Transfer' | 'BalanceSet' | 'Reserved' | 'Unreserved' | 'ReserveRepatriated' | 'Deposit' | 'Withdraw' | 'Slashed' | 'Minted' | 'Burned' | 'Suspended' | 'Restored' | 'Upgraded' | 'Issued' | 'Rescinded' | 'Locked' | 'Unlocked' | 'Frozen' | 'Thawed' | 'TotalIssuanceForced'; + } + + /** @name PezframeSupportTokensMiscBalanceStatus (37) */ + interface PezframeSupportTokensMiscBalanceStatus extends Enum { + readonly isFree: boolean; + readonly isReserved: boolean; + readonly type: 'Free' | 'Reserved'; + } + + /** @name PezpalletTransactionPaymentEvent (38) */ + interface PezpalletTransactionPaymentEvent extends Enum { + readonly isTransactionFeePaid: boolean; + readonly asTransactionFeePaid: { + readonly who: AccountId32; + readonly actualFee: u128; + readonly tip: u128; + } & Struct; + readonly type: 'TransactionFeePaid'; + } + + /** @name PezpalletAssetConversionTxPaymentEvent (39) */ + interface PezpalletAssetConversionTxPaymentEvent extends Enum { + readonly isAssetTxFeePaid: boolean; + readonly asAssetTxFeePaid: { + readonly who: AccountId32; + readonly actualFee: u128; + readonly tip: u128; + readonly assetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + } & Struct; + readonly isAssetRefundFailed: boolean; + readonly asAssetRefundFailed: { + readonly nativeAmountKept: u128; + } & Struct; + readonly type: 'AssetTxFeePaid' | 'AssetRefundFailed'; + } + + /** @name PezframeSupportTokensFungibleUnionOfNativeOrWithId (40) */ + interface PezframeSupportTokensFungibleUnionOfNativeOrWithId extends Enum { + readonly isNative: boolean; + readonly isWithId: boolean; + readonly asWithId: u32; + readonly type: 'Native' | 'WithId'; + } + + /** @name PezpalletElectionProviderMultiPhaseEvent (41) */ + interface PezpalletElectionProviderMultiPhaseEvent extends Enum { + readonly isSolutionStored: boolean; + readonly asSolutionStored: { + readonly compute: PezpalletElectionProviderMultiPhaseElectionCompute; + readonly origin: Option; + readonly prevEjected: bool; + } & Struct; + readonly isElectionFinalized: boolean; + readonly asElectionFinalized: { + readonly compute: PezpalletElectionProviderMultiPhaseElectionCompute; + readonly score: PezspNposElectionsElectionScore; + } & Struct; + readonly isElectionFailed: boolean; + readonly isRewarded: boolean; + readonly asRewarded: { + readonly account: AccountId32; + readonly value: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly account: AccountId32; + readonly value: u128; + } & Struct; + readonly isPhaseTransitioned: boolean; + readonly asPhaseTransitioned: { + readonly from: PezpalletElectionProviderMultiPhasePhase; + readonly to: PezpalletElectionProviderMultiPhasePhase; + readonly round: u32; + } & Struct; + readonly type: 'SolutionStored' | 'ElectionFinalized' | 'ElectionFailed' | 'Rewarded' | 'Slashed' | 'PhaseTransitioned'; + } + + /** @name PezpalletElectionProviderMultiPhaseElectionCompute (42) */ + interface PezpalletElectionProviderMultiPhaseElectionCompute extends Enum { + readonly isOnChain: boolean; + readonly isSigned: boolean; + readonly isUnsigned: boolean; + readonly isFallback: boolean; + readonly isEmergency: boolean; + readonly type: 'OnChain' | 'Signed' | 'Unsigned' | 'Fallback' | 'Emergency'; + } + + /** @name PezspNposElectionsElectionScore (44) */ + interface PezspNposElectionsElectionScore extends Struct { + readonly minimalStake: u128; + readonly sumStake: u128; + readonly sumStakeSquared: u128; + } + + /** @name PezpalletElectionProviderMultiPhasePhase (45) */ + interface PezpalletElectionProviderMultiPhasePhase extends Enum { + readonly isOff: boolean; + readonly isSigned: boolean; + readonly isUnsigned: boolean; + readonly asUnsigned: ITuple<[bool, u32]>; + readonly isEmergency: boolean; + readonly type: 'Off' | 'Signed' | 'Unsigned' | 'Emergency'; + } + + /** @name PezpalletStakingPezpalletEvent (47) */ + interface PezpalletStakingPezpalletEvent extends Enum { + readonly isEraPaid: boolean; + readonly asEraPaid: { + readonly eraIndex: u32; + readonly validatorPayout: u128; + readonly remainder: u128; + } & Struct; + readonly isRewarded: boolean; + readonly asRewarded: { + readonly stash: AccountId32; + readonly dest: PezpalletStakingRewardDestination; + readonly amount: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly staker: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSlashReported: boolean; + readonly asSlashReported: { + readonly validator: AccountId32; + readonly fraction: Perbill; + readonly slashEra: u32; + } & Struct; + readonly isOldSlashingReportDiscarded: boolean; + readonly asOldSlashingReportDiscarded: { + readonly sessionIndex: u32; + } & Struct; + readonly isStakersElected: boolean; + readonly isBonded: boolean; + readonly asBonded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isUnbonded: boolean; + readonly asUnbonded: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isWithdrawn: boolean; + readonly asWithdrawn: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isKicked: boolean; + readonly asKicked: { + readonly nominator: AccountId32; + readonly stash: AccountId32; + } & Struct; + readonly isStakingElectionFailed: boolean; + readonly isChilled: boolean; + readonly asChilled: { + readonly stash: AccountId32; + } & Struct; + readonly isPayoutStarted: boolean; + readonly asPayoutStarted: { + readonly eraIndex: u32; + readonly validatorStash: AccountId32; + readonly page: u32; + readonly next: Option; + } & Struct; + readonly isValidatorPrefsSet: boolean; + readonly asValidatorPrefsSet: { + readonly stash: AccountId32; + readonly prefs: PezpalletStakingValidatorPrefs; + } & Struct; + readonly isSnapshotVotersSizeExceeded: boolean; + readonly asSnapshotVotersSizeExceeded: { + readonly size_: u32; + } & Struct; + readonly isSnapshotTargetsSizeExceeded: boolean; + readonly asSnapshotTargetsSizeExceeded: { + readonly size_: u32; + } & Struct; + readonly isForceEra: boolean; + readonly asForceEra: { + readonly mode: PezpalletStakingForcing; + } & Struct; + readonly isControllerBatchDeprecated: boolean; + readonly asControllerBatchDeprecated: { + readonly failures: u32; + } & Struct; + readonly isCurrencyMigrated: boolean; + readonly asCurrencyMigrated: { + readonly stash: AccountId32; + readonly forceWithdraw: u128; + } & Struct; + readonly type: 'EraPaid' | 'Rewarded' | 'Slashed' | 'SlashReported' | 'OldSlashingReportDiscarded' | 'StakersElected' | 'Bonded' | 'Unbonded' | 'Withdrawn' | 'Kicked' | 'StakingElectionFailed' | 'Chilled' | 'PayoutStarted' | 'ValidatorPrefsSet' | 'SnapshotVotersSizeExceeded' | 'SnapshotTargetsSizeExceeded' | 'ForceEra' | 'ControllerBatchDeprecated' | 'CurrencyMigrated'; + } + + /** @name PezpalletStakingRewardDestination (48) */ + interface PezpalletStakingRewardDestination extends Enum { + readonly isStaked: boolean; + readonly isStash: boolean; + readonly isController: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly isNone: boolean; + readonly type: 'Staked' | 'Stash' | 'Controller' | 'Account' | 'None'; + } + + /** @name PezpalletStakingValidatorPrefs (51) */ + interface PezpalletStakingValidatorPrefs extends Struct { + readonly commission: Compact; + readonly blocked: bool; + } + + /** @name PezpalletStakingForcing (53) */ + interface PezpalletStakingForcing extends Enum { + readonly isNotForcing: boolean; + readonly isForceNew: boolean; + readonly isForceNone: boolean; + readonly isForceAlways: boolean; + readonly type: 'NotForcing' | 'ForceNew' | 'ForceNone' | 'ForceAlways'; + } + + /** @name PezpalletSessionEvent (54) */ + interface PezpalletSessionEvent extends Enum { + readonly isNewSession: boolean; + readonly asNewSession: { + readonly sessionIndex: u32; + } & Struct; + readonly isValidatorDisabled: boolean; + readonly asValidatorDisabled: { + readonly validator: AccountId32; + } & Struct; + readonly isValidatorReenabled: boolean; + readonly asValidatorReenabled: { + readonly validator: AccountId32; + } & Struct; + readonly type: 'NewSession' | 'ValidatorDisabled' | 'ValidatorReenabled'; + } + + /** @name PezpalletDemocracyEvent (55) */ + interface PezpalletDemocracyEvent extends Enum { + readonly isProposed: boolean; + readonly asProposed: { + readonly proposalIndex: u32; + readonly deposit: u128; + } & Struct; + readonly isTabled: boolean; + readonly asTabled: { + readonly proposalIndex: u32; + readonly deposit: u128; + } & Struct; + readonly isExternalTabled: boolean; + readonly isStarted: boolean; + readonly asStarted: { + readonly refIndex: u32; + readonly threshold: PezpalletDemocracyVoteThreshold; + } & Struct; + readonly isPassed: boolean; + readonly asPassed: { + readonly refIndex: u32; + } & Struct; + readonly isNotPassed: boolean; + readonly asNotPassed: { + readonly refIndex: u32; + } & Struct; + readonly isCancelled: boolean; + readonly asCancelled: { + readonly refIndex: u32; + } & Struct; + readonly isDelegated: boolean; + readonly asDelegated: { + readonly who: AccountId32; + readonly target: AccountId32; + } & Struct; + readonly isUndelegated: boolean; + readonly asUndelegated: { + readonly account: AccountId32; + } & Struct; + readonly isVetoed: boolean; + readonly asVetoed: { + readonly who: AccountId32; + readonly proposalHash: H256; + readonly until: u32; + } & Struct; + readonly isBlacklisted: boolean; + readonly asBlacklisted: { + readonly proposalHash: H256; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly voter: AccountId32; + readonly refIndex: u32; + readonly vote: PezpalletDemocracyVoteAccountVote; + } & Struct; + readonly isSeconded: boolean; + readonly asSeconded: { + readonly seconder: AccountId32; + readonly propIndex: u32; + } & Struct; + readonly isProposalCanceled: boolean; + readonly asProposalCanceled: { + readonly propIndex: u32; + } & Struct; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly owner: PezpalletDemocracyMetadataOwner; + readonly hash_: H256; + } & Struct; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly owner: PezpalletDemocracyMetadataOwner; + readonly hash_: H256; + } & Struct; + readonly isMetadataTransferred: boolean; + readonly asMetadataTransferred: { + readonly prevOwner: PezpalletDemocracyMetadataOwner; + readonly owner: PezpalletDemocracyMetadataOwner; + readonly hash_: H256; + } & Struct; + readonly type: 'Proposed' | 'Tabled' | 'ExternalTabled' | 'Started' | 'Passed' | 'NotPassed' | 'Cancelled' | 'Delegated' | 'Undelegated' | 'Vetoed' | 'Blacklisted' | 'Voted' | 'Seconded' | 'ProposalCanceled' | 'MetadataSet' | 'MetadataCleared' | 'MetadataTransferred'; + } + + /** @name PezpalletDemocracyVoteThreshold (56) */ + interface PezpalletDemocracyVoteThreshold extends Enum { + readonly isSuperMajorityApprove: boolean; + readonly isSuperMajorityAgainst: boolean; + readonly isSimpleMajority: boolean; + readonly type: 'SuperMajorityApprove' | 'SuperMajorityAgainst' | 'SimpleMajority'; + } + + /** @name PezpalletDemocracyVoteAccountVote (57) */ + interface PezpalletDemocracyVoteAccountVote extends Enum { + readonly isStandard: boolean; + readonly asStandard: { + readonly vote: Vote; + readonly balance: u128; + } & Struct; + readonly isSplit: boolean; + readonly asSplit: { + readonly aye: u128; + readonly nay: u128; + } & Struct; + readonly type: 'Standard' | 'Split'; + } + + /** @name PezpalletDemocracyMetadataOwner (59) */ + interface PezpalletDemocracyMetadataOwner extends Enum { + readonly isExternal: boolean; + readonly isProposal: boolean; + readonly asProposal: u32; + readonly isReferendum: boolean; + readonly asReferendum: u32; + readonly type: 'External' | 'Proposal' | 'Referendum'; + } + + /** @name PezpalletCollectiveEvent (60) */ + interface PezpalletCollectiveEvent extends Enum { + readonly isProposed: boolean; + readonly asProposed: { + readonly account: AccountId32; + readonly proposalIndex: u32; + readonly proposalHash: H256; + readonly threshold: u32; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly account: AccountId32; + readonly proposalHash: H256; + readonly voted: bool; + readonly yes: u32; + readonly no: u32; + } & Struct; + readonly isApproved: boolean; + readonly asApproved: { + readonly proposalHash: H256; + } & Struct; + readonly isDisapproved: boolean; + readonly asDisapproved: { + readonly proposalHash: H256; + } & Struct; + readonly isExecuted: boolean; + readonly asExecuted: { + readonly proposalHash: H256; + readonly result: Result; + } & Struct; + readonly isMemberExecuted: boolean; + readonly asMemberExecuted: { + readonly proposalHash: H256; + readonly result: Result; + } & Struct; + readonly isClosed: boolean; + readonly asClosed: { + readonly proposalHash: H256; + readonly yes: u32; + readonly no: u32; + } & Struct; + readonly isKilled: boolean; + readonly asKilled: { + readonly proposalHash: H256; + } & Struct; + readonly isProposalCostBurned: boolean; + readonly asProposalCostBurned: { + readonly proposalHash: H256; + readonly who: AccountId32; + } & Struct; + readonly isProposalCostReleased: boolean; + readonly asProposalCostReleased: { + readonly proposalHash: H256; + readonly who: AccountId32; + } & Struct; + readonly type: 'Proposed' | 'Voted' | 'Approved' | 'Disapproved' | 'Executed' | 'MemberExecuted' | 'Closed' | 'Killed' | 'ProposalCostBurned' | 'ProposalCostReleased'; + } + + /** @name PezpalletElectionsPhragmenEvent (62) */ + interface PezpalletElectionsPhragmenEvent extends Enum { + readonly isNewTerm: boolean; + readonly asNewTerm: { + readonly newMembers: Vec>; + } & Struct; + readonly isEmptyTerm: boolean; + readonly isElectionError: boolean; + readonly isMemberKicked: boolean; + readonly asMemberKicked: { + readonly member: AccountId32; + } & Struct; + readonly isRenounced: boolean; + readonly asRenounced: { + readonly candidate: AccountId32; + } & Struct; + readonly isCandidateSlashed: boolean; + readonly asCandidateSlashed: { + readonly candidate: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSeatHolderSlashed: boolean; + readonly asSeatHolderSlashed: { + readonly seatHolder: AccountId32; + readonly amount: u128; + } & Struct; + readonly type: 'NewTerm' | 'EmptyTerm' | 'ElectionError' | 'MemberKicked' | 'Renounced' | 'CandidateSlashed' | 'SeatHolderSlashed'; + } + + /** @name PezpalletMembershipEvent (65) */ + interface PezpalletMembershipEvent extends Enum { + readonly isMemberAdded: boolean; + readonly isMemberRemoved: boolean; + readonly isMembersSwapped: boolean; + readonly isMembersReset: boolean; + readonly isKeyChanged: boolean; + readonly isDummy: boolean; + readonly type: 'MemberAdded' | 'MemberRemoved' | 'MembersSwapped' | 'MembersReset' | 'KeyChanged' | 'Dummy'; + } + + /** @name PezpalletGrandpaEvent (66) */ + interface PezpalletGrandpaEvent extends Enum { + readonly isNewAuthorities: boolean; + readonly asNewAuthorities: { + readonly authoritySet: Vec>; + } & Struct; + readonly isPaused: boolean; + readonly isResumed: boolean; + readonly type: 'NewAuthorities' | 'Paused' | 'Resumed'; + } + + /** @name PezspConsensusGrandpaAppPublic (69) */ + interface PezspConsensusGrandpaAppPublic extends U8aFixed {} + + /** @name PezpalletTreasuryEvent (70) */ + interface PezpalletTreasuryEvent extends Enum { + readonly isSpending: boolean; + readonly asSpending: { + readonly budgetRemaining: u128; + } & Struct; + readonly isAwarded: boolean; + readonly asAwarded: { + readonly proposalIndex: u32; + readonly award: u128; + readonly account: AccountId32; + } & Struct; + readonly isBurnt: boolean; + readonly asBurnt: { + readonly burntFunds: u128; + } & Struct; + readonly isRollover: boolean; + readonly asRollover: { + readonly rolloverBalance: u128; + } & Struct; + readonly isDeposit: boolean; + readonly asDeposit: { + readonly value: u128; + } & Struct; + readonly isSpendApproved: boolean; + readonly asSpendApproved: { + readonly proposalIndex: u32; + readonly amount: u128; + readonly beneficiary: AccountId32; + } & Struct; + readonly isUpdatedInactive: boolean; + readonly asUpdatedInactive: { + readonly reactivated: u128; + readonly deactivated: u128; + } & Struct; + readonly isAssetSpendApproved: boolean; + readonly asAssetSpendApproved: { + readonly index: u32; + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly amount: u128; + readonly beneficiary: AccountId32; + readonly validFrom: u32; + readonly expireAt: u32; + } & Struct; + readonly isAssetSpendVoided: boolean; + readonly asAssetSpendVoided: { + readonly index: u32; + } & Struct; + readonly isPaid: boolean; + readonly asPaid: { + readonly index: u32; + readonly paymentId: Null; + } & Struct; + readonly isPaymentFailed: boolean; + readonly asPaymentFailed: { + readonly index: u32; + readonly paymentId: Null; + } & Struct; + readonly isSpendProcessed: boolean; + readonly asSpendProcessed: { + readonly index: u32; + } & Struct; + readonly type: 'Spending' | 'Awarded' | 'Burnt' | 'Rollover' | 'Deposit' | 'SpendApproved' | 'UpdatedInactive' | 'AssetSpendApproved' | 'AssetSpendVoided' | 'Paid' | 'PaymentFailed' | 'SpendProcessed'; + } + + /** @name PezpalletAssetRateEvent (71) */ + interface PezpalletAssetRateEvent extends Enum { + readonly isAssetRateCreated: boolean; + readonly asAssetRateCreated: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rate: u128; + } & Struct; + readonly isAssetRateRemoved: boolean; + readonly asAssetRateRemoved: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + } & Struct; + readonly isAssetRateUpdated: boolean; + readonly asAssetRateUpdated: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly old: u128; + readonly new_: u128; + } & Struct; + readonly type: 'AssetRateCreated' | 'AssetRateRemoved' | 'AssetRateUpdated'; + } + + /** @name PezpalletContractsEvent (73) */ + interface PezpalletContractsEvent extends Enum { + readonly isInstantiated: boolean; + readonly asInstantiated: { + readonly deployer: AccountId32; + readonly contract: AccountId32; + } & Struct; + readonly isTerminated: boolean; + readonly asTerminated: { + readonly contract: AccountId32; + readonly beneficiary: AccountId32; + } & Struct; + readonly isCodeStored: boolean; + readonly asCodeStored: { + readonly codeHash: H256; + readonly depositHeld: u128; + readonly uploader: AccountId32; + } & Struct; + readonly isContractEmitted: boolean; + readonly asContractEmitted: { + readonly contract: AccountId32; + readonly data: Bytes; + } & Struct; + readonly isCodeRemoved: boolean; + readonly asCodeRemoved: { + readonly codeHash: H256; + readonly depositReleased: u128; + readonly remover: AccountId32; + } & Struct; + readonly isContractCodeUpdated: boolean; + readonly asContractCodeUpdated: { + readonly contract: AccountId32; + readonly newCodeHash: H256; + readonly oldCodeHash: H256; + } & Struct; + readonly isCalled: boolean; + readonly asCalled: { + readonly caller: PezpalletContractsOrigin; + readonly contract: AccountId32; + } & Struct; + readonly isDelegateCalled: boolean; + readonly asDelegateCalled: { + readonly contract: AccountId32; + readonly codeHash: H256; + } & Struct; + readonly isStorageDepositTransferredAndHeld: boolean; + readonly asStorageDepositTransferredAndHeld: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + } & Struct; + readonly isStorageDepositTransferredAndReleased: boolean; + readonly asStorageDepositTransferredAndReleased: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + } & Struct; + readonly type: 'Instantiated' | 'Terminated' | 'CodeStored' | 'ContractEmitted' | 'CodeRemoved' | 'ContractCodeUpdated' | 'Called' | 'DelegateCalled' | 'StorageDepositTransferredAndHeld' | 'StorageDepositTransferredAndReleased'; + } + + /** @name PezpalletContractsOrigin (74) */ + interface PezpalletContractsOrigin extends Enum { + readonly isRoot: boolean; + readonly isSigned: boolean; + readonly asSigned: AccountId32; + readonly type: 'Root' | 'Signed'; + } + + /** @name KitchensinkRuntimeRuntime (75) */ + type KitchensinkRuntimeRuntime = Null; + + /** @name PezpalletSudoEvent (76) */ + interface PezpalletSudoEvent extends Enum { + readonly isSudid: boolean; + readonly asSudid: { + readonly sudoResult: Result; + } & Struct; + readonly isKeyChanged: boolean; + readonly asKeyChanged: { + readonly old: Option; + readonly new_: AccountId32; + } & Struct; + readonly isKeyRemoved: boolean; + readonly isSudoAsDone: boolean; + readonly asSudoAsDone: { + readonly sudoResult: Result; + } & Struct; + readonly type: 'Sudid' | 'KeyChanged' | 'KeyRemoved' | 'SudoAsDone'; + } + + /** @name PezpalletImOnlineEvent (77) */ + interface PezpalletImOnlineEvent extends Enum { + readonly isHeartbeatReceived: boolean; + readonly asHeartbeatReceived: { + readonly authorityId: PezpalletImOnlineSr25519AppSr25519Public; + } & Struct; + readonly isAllGood: boolean; + readonly isSomeOffline: boolean; + readonly asSomeOffline: { + readonly offline: Vec>; + } & Struct; + readonly type: 'HeartbeatReceived' | 'AllGood' | 'SomeOffline'; + } + + /** @name PezpalletImOnlineSr25519AppSr25519Public (78) */ + interface PezpalletImOnlineSr25519AppSr25519Public extends U8aFixed {} + + /** @name PezpalletOffencesEvent (81) */ + interface PezpalletOffencesEvent extends Enum { + readonly isOffence: boolean; + readonly asOffence: { + readonly kind: U8aFixed; + readonly timeslot: Bytes; + } & Struct; + readonly type: 'Offence'; + } + + /** @name PezpalletIdentityEvent (83) */ + interface PezpalletIdentityEvent extends Enum { + readonly isIdentitySet: boolean; + readonly asIdentitySet: { + readonly who: AccountId32; + } & Struct; + readonly isIdentityCleared: boolean; + readonly asIdentityCleared: { + readonly who: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isIdentityKilled: boolean; + readonly asIdentityKilled: { + readonly who: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isJudgementRequested: boolean; + readonly asJudgementRequested: { + readonly who: AccountId32; + readonly registrarIndex: u32; + } & Struct; + readonly isJudgementUnrequested: boolean; + readonly asJudgementUnrequested: { + readonly who: AccountId32; + readonly registrarIndex: u32; + } & Struct; + readonly isJudgementGiven: boolean; + readonly asJudgementGiven: { + readonly target: AccountId32; + readonly registrarIndex: u32; + } & Struct; + readonly isRegistrarAdded: boolean; + readonly asRegistrarAdded: { + readonly registrarIndex: u32; + } & Struct; + readonly isSubIdentityAdded: boolean; + readonly asSubIdentityAdded: { + readonly sub: AccountId32; + readonly main: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isSubIdentitiesSet: boolean; + readonly asSubIdentitiesSet: { + readonly main: AccountId32; + readonly numberOfSubs: u32; + readonly newDeposit: u128; + } & Struct; + readonly isSubIdentityRenamed: boolean; + readonly asSubIdentityRenamed: { + readonly sub: AccountId32; + readonly main: AccountId32; + } & Struct; + readonly isSubIdentityRemoved: boolean; + readonly asSubIdentityRemoved: { + readonly sub: AccountId32; + readonly main: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isSubIdentityRevoked: boolean; + readonly asSubIdentityRevoked: { + readonly sub: AccountId32; + readonly main: AccountId32; + readonly deposit: u128; + } & Struct; + readonly isAuthorityAdded: boolean; + readonly asAuthorityAdded: { + readonly authority: AccountId32; + } & Struct; + readonly isAuthorityRemoved: boolean; + readonly asAuthorityRemoved: { + readonly authority: AccountId32; + } & Struct; + readonly isUsernameSet: boolean; + readonly asUsernameSet: { + readonly who: AccountId32; + readonly username: Bytes; + } & Struct; + readonly isUsernameQueued: boolean; + readonly asUsernameQueued: { + readonly who: AccountId32; + readonly username: Bytes; + readonly expiration: u32; + } & Struct; + readonly isPreapprovalExpired: boolean; + readonly asPreapprovalExpired: { + readonly whose: AccountId32; + } & Struct; + readonly isPrimaryUsernameSet: boolean; + readonly asPrimaryUsernameSet: { + readonly who: AccountId32; + readonly username: Bytes; + } & Struct; + readonly isDanglingUsernameRemoved: boolean; + readonly asDanglingUsernameRemoved: { + readonly who: AccountId32; + readonly username: Bytes; + } & Struct; + readonly isUsernameUnbound: boolean; + readonly asUsernameUnbound: { + readonly username: Bytes; + } & Struct; + readonly isUsernameRemoved: boolean; + readonly asUsernameRemoved: { + readonly username: Bytes; + } & Struct; + readonly isUsernameKilled: boolean; + readonly asUsernameKilled: { + readonly username: Bytes; + } & Struct; + readonly type: 'IdentitySet' | 'IdentityCleared' | 'IdentityKilled' | 'JudgementRequested' | 'JudgementUnrequested' | 'JudgementGiven' | 'RegistrarAdded' | 'SubIdentityAdded' | 'SubIdentitiesSet' | 'SubIdentityRenamed' | 'SubIdentityRemoved' | 'SubIdentityRevoked' | 'AuthorityAdded' | 'AuthorityRemoved' | 'UsernameSet' | 'UsernameQueued' | 'PreapprovalExpired' | 'PrimaryUsernameSet' | 'DanglingUsernameRemoved' | 'UsernameUnbound' | 'UsernameRemoved' | 'UsernameKilled'; + } + + /** @name PezpalletSocietyEvent (85) */ + interface PezpalletSocietyEvent extends Enum { + readonly isFounded: boolean; + readonly asFounded: { + readonly founder: AccountId32; + } & Struct; + readonly isBid: boolean; + readonly asBid: { + readonly candidateId: AccountId32; + readonly offer: u128; + } & Struct; + readonly isVouch: boolean; + readonly asVouch: { + readonly candidateId: AccountId32; + readonly offer: u128; + readonly vouching: AccountId32; + } & Struct; + readonly isAutoUnbid: boolean; + readonly asAutoUnbid: { + readonly candidate: AccountId32; + } & Struct; + readonly isUnbid: boolean; + readonly asUnbid: { + readonly candidate: AccountId32; + } & Struct; + readonly isUnvouch: boolean; + readonly asUnvouch: { + readonly candidate: AccountId32; + } & Struct; + readonly isInducted: boolean; + readonly asInducted: { + readonly primary: AccountId32; + readonly candidates: Vec; + } & Struct; + readonly isSuspendedMemberJudgement: boolean; + readonly asSuspendedMemberJudgement: { + readonly who: AccountId32; + readonly judged: bool; + } & Struct; + readonly isCandidateSuspended: boolean; + readonly asCandidateSuspended: { + readonly candidate: AccountId32; + } & Struct; + readonly isMemberSuspended: boolean; + readonly asMemberSuspended: { + readonly member: AccountId32; + } & Struct; + readonly isChallenged: boolean; + readonly asChallenged: { + readonly member: AccountId32; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly candidate: AccountId32; + readonly voter: AccountId32; + readonly vote: bool; + } & Struct; + readonly isDefenderVote: boolean; + readonly asDefenderVote: { + readonly voter: AccountId32; + readonly vote: bool; + } & Struct; + readonly isNewParams: boolean; + readonly asNewParams: { + readonly params: PezpalletSocietyGroupParams; + } & Struct; + readonly isUnfounded: boolean; + readonly asUnfounded: { + readonly founder: AccountId32; + } & Struct; + readonly isDeposit: boolean; + readonly asDeposit: { + readonly value: u128; + } & Struct; + readonly isElevated: boolean; + readonly asElevated: { + readonly member: AccountId32; + readonly rank: u32; + } & Struct; + readonly type: 'Founded' | 'Bid' | 'Vouch' | 'AutoUnbid' | 'Unbid' | 'Unvouch' | 'Inducted' | 'SuspendedMemberJudgement' | 'CandidateSuspended' | 'MemberSuspended' | 'Challenged' | 'Vote' | 'DefenderVote' | 'NewParams' | 'Unfounded' | 'Deposit' | 'Elevated'; + } + + /** @name PezpalletSocietyGroupParams (87) */ + interface PezpalletSocietyGroupParams extends Struct { + readonly maxMembers: u32; + readonly maxIntake: u32; + readonly maxStrikes: u32; + readonly candidateDeposit: u128; + } + + /** @name PezpalletRecoveryEvent (88) */ + interface PezpalletRecoveryEvent extends Enum { + readonly isRecoveryCreated: boolean; + readonly asRecoveryCreated: { + readonly account: AccountId32; + } & Struct; + readonly isRecoveryInitiated: boolean; + readonly asRecoveryInitiated: { + readonly lostAccount: AccountId32; + readonly rescuerAccount: AccountId32; + } & Struct; + readonly isRecoveryVouched: boolean; + readonly asRecoveryVouched: { + readonly lostAccount: AccountId32; + readonly rescuerAccount: AccountId32; + readonly sender: AccountId32; + } & Struct; + readonly isRecoveryClosed: boolean; + readonly asRecoveryClosed: { + readonly lostAccount: AccountId32; + readonly rescuerAccount: AccountId32; + } & Struct; + readonly isAccountRecovered: boolean; + readonly asAccountRecovered: { + readonly lostAccount: AccountId32; + readonly rescuerAccount: AccountId32; + } & Struct; + readonly isRecoveryRemoved: boolean; + readonly asRecoveryRemoved: { + readonly lostAccount: AccountId32; + } & Struct; + readonly type: 'RecoveryCreated' | 'RecoveryInitiated' | 'RecoveryVouched' | 'RecoveryClosed' | 'AccountRecovered' | 'RecoveryRemoved'; + } + + /** @name PezpalletVestingEvent (89) */ + interface PezpalletVestingEvent extends Enum { + readonly isVestingUpdated: boolean; + readonly asVestingUpdated: { + readonly account: AccountId32; + readonly unvested: u128; + } & Struct; + readonly isVestingCompleted: boolean; + readonly asVestingCompleted: { + readonly account: AccountId32; + } & Struct; + readonly type: 'VestingUpdated' | 'VestingCompleted'; + } + + /** @name PezpalletSchedulerEvent (90) */ + interface PezpalletSchedulerEvent extends Enum { + readonly isScheduled: boolean; + readonly asScheduled: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isCanceled: boolean; + readonly asCanceled: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isDispatched: boolean; + readonly asDispatched: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + readonly result: Result; + } & Struct; + readonly isRetrySet: boolean; + readonly asRetrySet: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + readonly period: u32; + readonly retries: u8; + } & Struct; + readonly isRetryCancelled: boolean; + readonly asRetryCancelled: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isCallUnavailable: boolean; + readonly asCallUnavailable: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isPeriodicFailed: boolean; + readonly asPeriodicFailed: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isRetryFailed: boolean; + readonly asRetryFailed: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isPermanentlyOverweight: boolean; + readonly asPermanentlyOverweight: { + readonly task: ITuple<[u32, u32]>; + readonly id: Option; + } & Struct; + readonly isAgendaIncomplete: boolean; + readonly asAgendaIncomplete: { + readonly when: u32; + } & Struct; + readonly type: 'Scheduled' | 'Canceled' | 'Dispatched' | 'RetrySet' | 'RetryCancelled' | 'CallUnavailable' | 'PeriodicFailed' | 'RetryFailed' | 'PermanentlyOverweight' | 'AgendaIncomplete'; + } + + /** @name PezpalletGluttonEvent (93) */ + interface PezpalletGluttonEvent extends Enum { + readonly isPalletInitialized: boolean; + readonly asPalletInitialized: { + readonly reinit: bool; + } & Struct; + readonly isComputationLimitSet: boolean; + readonly asComputationLimitSet: { + readonly compute: u64; + } & Struct; + readonly isStorageLimitSet: boolean; + readonly asStorageLimitSet: { + readonly storage: u64; + } & Struct; + readonly isBlockLengthLimitSet: boolean; + readonly asBlockLengthLimitSet: { + readonly blockLength: u64; + } & Struct; + readonly type: 'PalletInitialized' | 'ComputationLimitSet' | 'StorageLimitSet' | 'BlockLengthLimitSet'; + } + + /** @name PezpalletPreimageEvent (95) */ + interface PezpalletPreimageEvent extends Enum { + readonly isNoted: boolean; + readonly asNoted: { + readonly hash_: H256; + } & Struct; + readonly isRequested: boolean; + readonly asRequested: { + readonly hash_: H256; + } & Struct; + readonly isCleared: boolean; + readonly asCleared: { + readonly hash_: H256; + } & Struct; + readonly type: 'Noted' | 'Requested' | 'Cleared'; + } + + /** @name PezpalletProxyEvent (96) */ + interface PezpalletProxyEvent extends Enum { + readonly isProxyExecuted: boolean; + readonly asProxyExecuted: { + readonly result: Result; + } & Struct; + readonly isPureCreated: boolean; + readonly asPureCreated: { + readonly pure: AccountId32; + readonly who: AccountId32; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly disambiguationIndex: u16; + } & Struct; + readonly isAnnounced: boolean; + readonly asAnnounced: { + readonly real: AccountId32; + readonly proxy: AccountId32; + readonly callHash: H256; + } & Struct; + readonly isProxyAdded: boolean; + readonly asProxyAdded: { + readonly delegator: AccountId32; + readonly delegatee: AccountId32; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly delay: u32; + } & Struct; + readonly isProxyRemoved: boolean; + readonly asProxyRemoved: { + readonly delegator: AccountId32; + readonly delegatee: AccountId32; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly delay: u32; + } & Struct; + readonly isDepositPoked: boolean; + readonly asDepositPoked: { + readonly who: AccountId32; + readonly kind: PezpalletProxyDepositKind; + readonly oldDeposit: u128; + readonly newDeposit: u128; + } & Struct; + readonly type: 'ProxyExecuted' | 'PureCreated' | 'Announced' | 'ProxyAdded' | 'ProxyRemoved' | 'DepositPoked'; + } + + /** @name KitchensinkRuntimeProxyType (97) */ + interface KitchensinkRuntimeProxyType extends Enum { + readonly isAny: boolean; + readonly isNonTransfer: boolean; + readonly isGovernance: boolean; + readonly isStaking: boolean; + readonly type: 'Any' | 'NonTransfer' | 'Governance' | 'Staking'; + } + + /** @name PezpalletProxyDepositKind (99) */ + interface PezpalletProxyDepositKind extends Enum { + readonly isProxies: boolean; + readonly isAnnouncements: boolean; + readonly type: 'Proxies' | 'Announcements'; + } + + /** @name PezpalletMultisigEvent (100) */ + interface PezpalletMultisigEvent extends Enum { + readonly isNewMultisig: boolean; + readonly asNewMultisig: { + readonly approving: AccountId32; + readonly multisig: AccountId32; + readonly callHash: U8aFixed; + } & Struct; + readonly isMultisigApproval: boolean; + readonly asMultisigApproval: { + readonly approving: AccountId32; + readonly timepoint: PezpalletMultisigTimepoint; + readonly multisig: AccountId32; + readonly callHash: U8aFixed; + } & Struct; + readonly isMultisigExecuted: boolean; + readonly asMultisigExecuted: { + readonly approving: AccountId32; + readonly timepoint: PezpalletMultisigTimepoint; + readonly multisig: AccountId32; + readonly callHash: U8aFixed; + readonly result: Result; + } & Struct; + readonly isMultisigCancelled: boolean; + readonly asMultisigCancelled: { + readonly cancelling: AccountId32; + readonly timepoint: PezpalletMultisigTimepoint; + readonly multisig: AccountId32; + readonly callHash: U8aFixed; + } & Struct; + readonly isDepositPoked: boolean; + readonly asDepositPoked: { + readonly who: AccountId32; + readonly callHash: U8aFixed; + readonly oldDeposit: u128; + readonly newDeposit: u128; + } & Struct; + readonly type: 'NewMultisig' | 'MultisigApproval' | 'MultisigExecuted' | 'MultisigCancelled' | 'DepositPoked'; + } + + /** @name PezpalletMultisigTimepoint (101) */ + interface PezpalletMultisigTimepoint extends Struct { + readonly height: u32; + readonly index: u32; + } + + /** @name PezpalletBountiesEvent (102) */ + interface PezpalletBountiesEvent extends Enum { + readonly isBountyProposed: boolean; + readonly asBountyProposed: { + readonly index: u32; + } & Struct; + readonly isBountyRejected: boolean; + readonly asBountyRejected: { + readonly index: u32; + readonly bond: u128; + } & Struct; + readonly isBountyBecameActive: boolean; + readonly asBountyBecameActive: { + readonly index: u32; + } & Struct; + readonly isBountyAwarded: boolean; + readonly asBountyAwarded: { + readonly index: u32; + readonly beneficiary: AccountId32; + } & Struct; + readonly isBountyClaimed: boolean; + readonly asBountyClaimed: { + readonly index: u32; + readonly payout: u128; + readonly beneficiary: AccountId32; + } & Struct; + readonly isBountyCanceled: boolean; + readonly asBountyCanceled: { + readonly index: u32; + } & Struct; + readonly isBountyExtended: boolean; + readonly asBountyExtended: { + readonly index: u32; + } & Struct; + readonly isBountyApproved: boolean; + readonly asBountyApproved: { + readonly index: u32; + } & Struct; + readonly isCuratorProposed: boolean; + readonly asCuratorProposed: { + readonly bountyId: u32; + readonly curator: AccountId32; + } & Struct; + readonly isCuratorUnassigned: boolean; + readonly asCuratorUnassigned: { + readonly bountyId: u32; + } & Struct; + readonly isCuratorAccepted: boolean; + readonly asCuratorAccepted: { + readonly bountyId: u32; + readonly curator: AccountId32; + } & Struct; + readonly type: 'BountyProposed' | 'BountyRejected' | 'BountyBecameActive' | 'BountyAwarded' | 'BountyClaimed' | 'BountyCanceled' | 'BountyExtended' | 'BountyApproved' | 'CuratorProposed' | 'CuratorUnassigned' | 'CuratorAccepted'; + } + + /** @name PezpalletTipsEvent (103) */ + interface PezpalletTipsEvent extends Enum { + readonly isNewTip: boolean; + readonly asNewTip: { + readonly tipHash: H256; + } & Struct; + readonly isTipClosing: boolean; + readonly asTipClosing: { + readonly tipHash: H256; + } & Struct; + readonly isTipClosed: boolean; + readonly asTipClosed: { + readonly tipHash: H256; + readonly who: AccountId32; + readonly payout: u128; + } & Struct; + readonly isTipRetracted: boolean; + readonly asTipRetracted: { + readonly tipHash: H256; + } & Struct; + readonly isTipSlashed: boolean; + readonly asTipSlashed: { + readonly tipHash: H256; + readonly finder: AccountId32; + readonly deposit: u128; + } & Struct; + readonly type: 'NewTip' | 'TipClosing' | 'TipClosed' | 'TipRetracted' | 'TipSlashed'; + } + + /** @name PezpalletAssetsEvent (104) */ + interface PezpalletAssetsEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly assetId: u32; + readonly creator: AccountId32; + readonly owner: AccountId32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly assetId: u32; + readonly owner: AccountId32; + readonly amount: u128; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly assetId: u32; + readonly from: AccountId32; + readonly to: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly assetId: u32; + readonly owner: AccountId32; + readonly balance: u128; + } & Struct; + readonly isTeamChanged: boolean; + readonly asTeamChanged: { + readonly assetId: u32; + readonly issuer: AccountId32; + readonly admin: AccountId32; + readonly freezer: AccountId32; + } & Struct; + readonly isOwnerChanged: boolean; + readonly asOwnerChanged: { + readonly assetId: u32; + readonly owner: AccountId32; + } & Struct; + readonly isFrozen: boolean; + readonly asFrozen: { + readonly assetId: u32; + readonly who: AccountId32; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly assetId: u32; + readonly who: AccountId32; + } & Struct; + readonly isAssetFrozen: boolean; + readonly asAssetFrozen: { + readonly assetId: u32; + } & Struct; + readonly isAssetThawed: boolean; + readonly asAssetThawed: { + readonly assetId: u32; + } & Struct; + readonly isAccountsDestroyed: boolean; + readonly asAccountsDestroyed: { + readonly assetId: u32; + readonly accountsDestroyed: u32; + readonly accountsRemaining: u32; + } & Struct; + readonly isApprovalsDestroyed: boolean; + readonly asApprovalsDestroyed: { + readonly assetId: u32; + readonly approvalsDestroyed: u32; + readonly approvalsRemaining: u32; + } & Struct; + readonly isDestructionStarted: boolean; + readonly asDestructionStarted: { + readonly assetId: u32; + } & Struct; + readonly isDestroyed: boolean; + readonly asDestroyed: { + readonly assetId: u32; + } & Struct; + readonly isForceCreated: boolean; + readonly asForceCreated: { + readonly assetId: u32; + readonly owner: AccountId32; + } & Struct; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly assetId: u32; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } & Struct; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly assetId: u32; + } & Struct; + readonly isApprovedTransfer: boolean; + readonly asApprovedTransfer: { + readonly assetId: u32; + readonly source: AccountId32; + readonly delegate: AccountId32; + readonly amount: u128; + } & Struct; + readonly isApprovalCancelled: boolean; + readonly asApprovalCancelled: { + readonly assetId: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + } & Struct; + readonly isTransferredApproved: boolean; + readonly asTransferredApproved: { + readonly assetId: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + readonly destination: AccountId32; + readonly amount: u128; + } & Struct; + readonly isAssetStatusChanged: boolean; + readonly asAssetStatusChanged: { + readonly assetId: u32; + } & Struct; + readonly isAssetMinBalanceChanged: boolean; + readonly asAssetMinBalanceChanged: { + readonly assetId: u32; + readonly newMinBalance: u128; + } & Struct; + readonly isTouched: boolean; + readonly asTouched: { + readonly assetId: u32; + readonly who: AccountId32; + readonly depositor: AccountId32; + } & Struct; + readonly isBlocked: boolean; + readonly asBlocked: { + readonly assetId: u32; + readonly who: AccountId32; + } & Struct; + readonly isDeposited: boolean; + readonly asDeposited: { + readonly assetId: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isWithdrawn: boolean; + readonly asWithdrawn: { + readonly assetId: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly type: 'Created' | 'Issued' | 'Transferred' | 'Burned' | 'TeamChanged' | 'OwnerChanged' | 'Frozen' | 'Thawed' | 'AssetFrozen' | 'AssetThawed' | 'AccountsDestroyed' | 'ApprovalsDestroyed' | 'DestructionStarted' | 'Destroyed' | 'ForceCreated' | 'MetadataSet' | 'MetadataCleared' | 'ApprovedTransfer' | 'ApprovalCancelled' | 'TransferredApproved' | 'AssetStatusChanged' | 'AssetMinBalanceChanged' | 'Touched' | 'Blocked' | 'Deposited' | 'Withdrawn'; + } + + /** @name PezpalletLotteryEvent (106) */ + interface PezpalletLotteryEvent extends Enum { + readonly isLotteryStarted: boolean; + readonly isCallsUpdated: boolean; + readonly isWinner: boolean; + readonly asWinner: { + readonly winner: AccountId32; + readonly lotteryBalance: u128; + } & Struct; + readonly isTicketBought: boolean; + readonly asTicketBought: { + readonly who: AccountId32; + readonly callIndex: ITuple<[u8, u8]>; + } & Struct; + readonly type: 'LotteryStarted' | 'CallsUpdated' | 'Winner' | 'TicketBought'; + } + + /** @name PezpalletNisEvent (108) */ + interface PezpalletNisEvent extends Enum { + readonly isBidPlaced: boolean; + readonly asBidPlaced: { + readonly who: AccountId32; + readonly amount: u128; + readonly duration: u32; + } & Struct; + readonly isBidRetracted: boolean; + readonly asBidRetracted: { + readonly who: AccountId32; + readonly amount: u128; + readonly duration: u32; + } & Struct; + readonly isBidDropped: boolean; + readonly asBidDropped: { + readonly who: AccountId32; + readonly amount: u128; + readonly duration: u32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly index: u32; + readonly expiry: u32; + readonly who: AccountId32; + readonly proportion: Perquintill; + readonly amount: u128; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly index: u32; + readonly who: AccountId32; + readonly proportion: Perquintill; + readonly amount: u128; + readonly dropped: bool; + } & Struct; + readonly isFunded: boolean; + readonly asFunded: { + readonly deficit: u128; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly from: AccountId32; + readonly to: AccountId32; + readonly index: u32; + } & Struct; + readonly type: 'BidPlaced' | 'BidRetracted' | 'BidDropped' | 'Issued' | 'Thawed' | 'Funded' | 'Transferred'; + } + + /** @name PezpalletUniquesEvent (110) */ + interface PezpalletUniquesEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly collection: u32; + readonly creator: AccountId32; + readonly owner: AccountId32; + } & Struct; + readonly isForceCreated: boolean; + readonly asForceCreated: { + readonly collection: u32; + readonly owner: AccountId32; + } & Struct; + readonly isDestroyed: boolean; + readonly asDestroyed: { + readonly collection: u32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly collection: u32; + readonly item: u32; + readonly from: AccountId32; + readonly to: AccountId32; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isFrozen: boolean; + readonly asFrozen: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isCollectionFrozen: boolean; + readonly asCollectionFrozen: { + readonly collection: u32; + } & Struct; + readonly isCollectionThawed: boolean; + readonly asCollectionThawed: { + readonly collection: u32; + } & Struct; + readonly isOwnerChanged: boolean; + readonly asOwnerChanged: { + readonly collection: u32; + readonly newOwner: AccountId32; + } & Struct; + readonly isTeamChanged: boolean; + readonly asTeamChanged: { + readonly collection: u32; + readonly issuer: AccountId32; + readonly admin: AccountId32; + readonly freezer: AccountId32; + } & Struct; + readonly isApprovedTransfer: boolean; + readonly asApprovedTransfer: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + } & Struct; + readonly isApprovalCancelled: boolean; + readonly asApprovalCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + } & Struct; + readonly isItemStatusChanged: boolean; + readonly asItemStatusChanged: { + readonly collection: u32; + } & Struct; + readonly isCollectionMetadataSet: boolean; + readonly asCollectionMetadataSet: { + readonly collection: u32; + readonly data: Bytes; + readonly isFrozen: bool; + } & Struct; + readonly isCollectionMetadataCleared: boolean; + readonly asCollectionMetadataCleared: { + readonly collection: u32; + } & Struct; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + readonly isFrozen: bool; + } & Struct; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isRedeposited: boolean; + readonly asRedeposited: { + readonly collection: u32; + readonly successfulItems: Vec; + } & Struct; + readonly isAttributeSet: boolean; + readonly asAttributeSet: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isAttributeCleared: boolean; + readonly asAttributeCleared: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + } & Struct; + readonly isOwnershipAcceptanceChanged: boolean; + readonly asOwnershipAcceptanceChanged: { + readonly who: AccountId32; + readonly maybeCollection: Option; + } & Struct; + readonly isCollectionMaxSupplySet: boolean; + readonly asCollectionMaxSupplySet: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isItemPriceSet: boolean; + readonly asItemPriceSet: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isItemPriceRemoved: boolean; + readonly asItemPriceRemoved: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemBought: boolean; + readonly asItemBought: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly seller: AccountId32; + readonly buyer: AccountId32; + } & Struct; + readonly type: 'Created' | 'ForceCreated' | 'Destroyed' | 'Issued' | 'Transferred' | 'Burned' | 'Frozen' | 'Thawed' | 'CollectionFrozen' | 'CollectionThawed' | 'OwnerChanged' | 'TeamChanged' | 'ApprovedTransfer' | 'ApprovalCancelled' | 'ItemStatusChanged' | 'CollectionMetadataSet' | 'CollectionMetadataCleared' | 'MetadataSet' | 'MetadataCleared' | 'Redeposited' | 'AttributeSet' | 'AttributeCleared' | 'OwnershipAcceptanceChanged' | 'CollectionMaxSupplySet' | 'ItemPriceSet' | 'ItemPriceRemoved' | 'ItemBought'; + } + + /** @name PezpalletNftsEvent (114) */ + interface PezpalletNftsEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly collection: u32; + readonly creator: AccountId32; + readonly owner: AccountId32; + } & Struct; + readonly isForceCreated: boolean; + readonly asForceCreated: { + readonly collection: u32; + readonly owner: AccountId32; + } & Struct; + readonly isDestroyed: boolean; + readonly asDestroyed: { + readonly collection: u32; + } & Struct; + readonly isIssued: boolean; + readonly asIssued: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly collection: u32; + readonly item: u32; + readonly from: AccountId32; + readonly to: AccountId32; + } & Struct; + readonly isBurned: boolean; + readonly asBurned: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isItemTransferLocked: boolean; + readonly asItemTransferLocked: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemTransferUnlocked: boolean; + readonly asItemTransferUnlocked: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemPropertiesLocked: boolean; + readonly asItemPropertiesLocked: { + readonly collection: u32; + readonly item: u32; + readonly lockMetadata: bool; + readonly lockAttributes: bool; + } & Struct; + readonly isCollectionLocked: boolean; + readonly asCollectionLocked: { + readonly collection: u32; + } & Struct; + readonly isOwnerChanged: boolean; + readonly asOwnerChanged: { + readonly collection: u32; + readonly newOwner: AccountId32; + } & Struct; + readonly isTeamChanged: boolean; + readonly asTeamChanged: { + readonly collection: u32; + readonly issuer: Option; + readonly admin: Option; + readonly freezer: Option; + } & Struct; + readonly isTransferApproved: boolean; + readonly asTransferApproved: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + readonly deadline: Option; + } & Struct; + readonly isApprovalCancelled: boolean; + readonly asApprovalCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + readonly delegate: AccountId32; + } & Struct; + readonly isAllApprovalsCancelled: boolean; + readonly asAllApprovalsCancelled: { + readonly collection: u32; + readonly item: u32; + readonly owner: AccountId32; + } & Struct; + readonly isCollectionConfigChanged: boolean; + readonly asCollectionConfigChanged: { + readonly collection: u32; + } & Struct; + readonly isCollectionMetadataSet: boolean; + readonly asCollectionMetadataSet: { + readonly collection: u32; + readonly data: Bytes; + } & Struct; + readonly isCollectionMetadataCleared: boolean; + readonly asCollectionMetadataCleared: { + readonly collection: u32; + } & Struct; + readonly isItemMetadataSet: boolean; + readonly asItemMetadataSet: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + } & Struct; + readonly isItemMetadataCleared: boolean; + readonly asItemMetadataCleared: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isRedeposited: boolean; + readonly asRedeposited: { + readonly collection: u32; + readonly successfulItems: Vec; + } & Struct; + readonly isAttributeSet: boolean; + readonly asAttributeSet: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly value: Bytes; + readonly namespace: PezpalletNftsAttributeNamespace; + } & Struct; + readonly isAttributeCleared: boolean; + readonly asAttributeCleared: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly namespace: PezpalletNftsAttributeNamespace; + } & Struct; + readonly isItemAttributesApprovalAdded: boolean; + readonly asItemAttributesApprovalAdded: { + readonly collection: u32; + readonly item: u32; + readonly delegate: AccountId32; + } & Struct; + readonly isItemAttributesApprovalRemoved: boolean; + readonly asItemAttributesApprovalRemoved: { + readonly collection: u32; + readonly item: u32; + readonly delegate: AccountId32; + } & Struct; + readonly isOwnershipAcceptanceChanged: boolean; + readonly asOwnershipAcceptanceChanged: { + readonly who: AccountId32; + readonly maybeCollection: Option; + } & Struct; + readonly isCollectionMaxSupplySet: boolean; + readonly asCollectionMaxSupplySet: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isCollectionMintSettingsUpdated: boolean; + readonly asCollectionMintSettingsUpdated: { + readonly collection: u32; + } & Struct; + readonly isNextCollectionIdIncremented: boolean; + readonly asNextCollectionIdIncremented: { + readonly nextId: Option; + } & Struct; + readonly isItemPriceSet: boolean; + readonly asItemPriceSet: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isItemPriceRemoved: boolean; + readonly asItemPriceRemoved: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isItemBought: boolean; + readonly asItemBought: { + readonly collection: u32; + readonly item: u32; + readonly price: u128; + readonly seller: AccountId32; + readonly buyer: AccountId32; + } & Struct; + readonly isTipSent: boolean; + readonly asTipSent: { + readonly collection: u32; + readonly item: u32; + readonly sender: AccountId32; + readonly receiver: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSwapCreated: boolean; + readonly asSwapCreated: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isSwapCancelled: boolean; + readonly asSwapCancelled: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isSwapClaimed: boolean; + readonly asSwapClaimed: { + readonly sentCollection: u32; + readonly sentItem: u32; + readonly sentItemOwner: AccountId32; + readonly receivedCollection: u32; + readonly receivedItem: u32; + readonly receivedItemOwner: AccountId32; + readonly price: Option; + readonly deadline: u32; + } & Struct; + readonly isPreSignedAttributesSet: boolean; + readonly asPreSignedAttributesSet: { + readonly collection: u32; + readonly item: u32; + readonly namespace: PezpalletNftsAttributeNamespace; + } & Struct; + readonly isPalletAttributeSet: boolean; + readonly asPalletAttributeSet: { + readonly collection: u32; + readonly item: Option; + readonly attribute: PezpalletNftsPezpalletAttributes; + readonly value: Bytes; + } & Struct; + readonly type: 'Created' | 'ForceCreated' | 'Destroyed' | 'Issued' | 'Transferred' | 'Burned' | 'ItemTransferLocked' | 'ItemTransferUnlocked' | 'ItemPropertiesLocked' | 'CollectionLocked' | 'OwnerChanged' | 'TeamChanged' | 'TransferApproved' | 'ApprovalCancelled' | 'AllApprovalsCancelled' | 'CollectionConfigChanged' | 'CollectionMetadataSet' | 'CollectionMetadataCleared' | 'ItemMetadataSet' | 'ItemMetadataCleared' | 'Redeposited' | 'AttributeSet' | 'AttributeCleared' | 'ItemAttributesApprovalAdded' | 'ItemAttributesApprovalRemoved' | 'OwnershipAcceptanceChanged' | 'CollectionMaxSupplySet' | 'CollectionMintSettingsUpdated' | 'NextCollectionIdIncremented' | 'ItemPriceSet' | 'ItemPriceRemoved' | 'ItemBought' | 'TipSent' | 'SwapCreated' | 'SwapCancelled' | 'SwapClaimed' | 'PreSignedAttributesSet' | 'PalletAttributeSet'; + } + + /** @name PezpalletNftsAttributeNamespace (116) */ + interface PezpalletNftsAttributeNamespace extends Enum { + readonly isPallet: boolean; + readonly isCollectionOwner: boolean; + readonly isItemOwner: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly type: 'Pallet' | 'CollectionOwner' | 'ItemOwner' | 'Account'; + } + + /** @name PezpalletNftsPriceWithDirection (118) */ + interface PezpalletNftsPriceWithDirection extends Struct { + readonly amount: u128; + readonly direction: PezpalletNftsPriceDirection; + } + + /** @name PezpalletNftsPriceDirection (119) */ + interface PezpalletNftsPriceDirection extends Enum { + readonly isSend: boolean; + readonly isReceive: boolean; + readonly type: 'Send' | 'Receive'; + } + + /** @name PezpalletNftsPezpalletAttributes (120) */ + interface PezpalletNftsPezpalletAttributes extends Enum { + readonly isUsedToClaim: boolean; + readonly asUsedToClaim: u32; + readonly isTransferDisabled: boolean; + readonly type: 'UsedToClaim' | 'TransferDisabled'; + } + + /** @name PezpalletNftFractionalizationEvent (121) */ + interface PezpalletNftFractionalizationEvent extends Enum { + readonly isNftFractionalized: boolean; + readonly asNftFractionalized: { + readonly nftCollection: u32; + readonly nft: u32; + readonly fractions: u128; + readonly asset: u32; + readonly beneficiary: AccountId32; + } & Struct; + readonly isNftUnified: boolean; + readonly asNftUnified: { + readonly nftCollection: u32; + readonly nft: u32; + readonly asset: u32; + readonly beneficiary: AccountId32; + } & Struct; + readonly type: 'NftFractionalized' | 'NftUnified'; + } + + /** @name PezpalletSalaryEvent (122) */ + interface PezpalletSalaryEvent extends Enum { + readonly isInducted: boolean; + readonly asInducted: { + readonly who: AccountId32; + } & Struct; + readonly isRegistered: boolean; + readonly asRegistered: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isPaid: boolean; + readonly asPaid: { + readonly who: AccountId32; + readonly beneficiary: AccountId32; + readonly amount: u128; + readonly id: Null; + } & Struct; + readonly isCycleStarted: boolean; + readonly asCycleStarted: { + readonly index: u32; + } & Struct; + readonly isSwapped: boolean; + readonly asSwapped: { + readonly who: AccountId32; + readonly newWho: AccountId32; + } & Struct; + readonly type: 'Inducted' | 'Registered' | 'Paid' | 'CycleStarted' | 'Swapped'; + } + + /** @name PezpalletCoreFellowshipEvent (123) */ + interface PezpalletCoreFellowshipEvent extends Enum { + readonly isParamsChanged: boolean; + readonly asParamsChanged: { + readonly params: PezpalletCoreFellowshipParamsTypeU128; + } & Struct; + readonly isActiveChanged: boolean; + readonly asActiveChanged: { + readonly who: AccountId32; + readonly isActive: bool; + } & Struct; + readonly isInducted: boolean; + readonly asInducted: { + readonly who: AccountId32; + } & Struct; + readonly isOffboarded: boolean; + readonly asOffboarded: { + readonly who: AccountId32; + } & Struct; + readonly isPromoted: boolean; + readonly asPromoted: { + readonly who: AccountId32; + readonly toRank: u16; + } & Struct; + readonly isDemoted: boolean; + readonly asDemoted: { + readonly who: AccountId32; + readonly toRank: u16; + } & Struct; + readonly isProven: boolean; + readonly asProven: { + readonly who: AccountId32; + readonly atRank: u16; + } & Struct; + readonly isRequested: boolean; + readonly asRequested: { + readonly who: AccountId32; + readonly wish: PezpalletCoreFellowshipWish; + } & Struct; + readonly isEvidenceJudged: boolean; + readonly asEvidenceJudged: { + readonly who: AccountId32; + readonly wish: PezpalletCoreFellowshipWish; + readonly evidence: Bytes; + readonly oldRank: u16; + readonly newRank: Option; + } & Struct; + readonly isImported: boolean; + readonly asImported: { + readonly who: AccountId32; + readonly rank: u16; + } & Struct; + readonly isSwapped: boolean; + readonly asSwapped: { + readonly who: AccountId32; + readonly newWho: AccountId32; + } & Struct; + readonly type: 'ParamsChanged' | 'ActiveChanged' | 'Inducted' | 'Offboarded' | 'Promoted' | 'Demoted' | 'Proven' | 'Requested' | 'EvidenceJudged' | 'Imported' | 'Swapped'; + } + + /** @name PezpalletCoreFellowshipParamsTypeU128 (124) */ + interface PezpalletCoreFellowshipParamsTypeU128 extends Struct { + readonly activeSalary: Vec; + readonly passiveSalary: Vec; + readonly demotionPeriod: Vec; + readonly minPromotionPeriod: Vec; + readonly offboardTimeout: u32; + } + + /** @name PezpalletCoreFellowshipWish (128) */ + interface PezpalletCoreFellowshipWish extends Enum { + readonly isRetention: boolean; + readonly isPromotion: boolean; + readonly type: 'Retention' | 'Promotion'; + } + + /** @name PezpalletTransactionStorageEvent (131) */ + interface PezpalletTransactionStorageEvent extends Enum { + readonly isStored: boolean; + readonly asStored: { + readonly index: u32; + } & Struct; + readonly isRenewed: boolean; + readonly asRenewed: { + readonly index: u32; + } & Struct; + readonly isProofChecked: boolean; + readonly type: 'Stored' | 'Renewed' | 'ProofChecked'; + } + + /** @name PezpalletBagsListEvent (132) */ + interface PezpalletBagsListEvent extends Enum { + readonly isRebagged: boolean; + readonly asRebagged: { + readonly who: AccountId32; + readonly from: u64; + readonly to: u64; + } & Struct; + readonly isScoreUpdated: boolean; + readonly asScoreUpdated: { + readonly who: AccountId32; + readonly newScore: u64; + } & Struct; + readonly type: 'Rebagged' | 'ScoreUpdated'; + } + + /** @name PezpalletStateTrieMigrationEvent (133) */ + interface PezpalletStateTrieMigrationEvent extends Enum { + readonly isMigrated: boolean; + readonly asMigrated: { + readonly top: u32; + readonly child: u32; + readonly compute: PezpalletStateTrieMigrationMigrationCompute; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isAutoMigrationFinished: boolean; + readonly isHalted: boolean; + readonly asHalted: { + readonly error: PezpalletStateTrieMigrationError; + } & Struct; + readonly type: 'Migrated' | 'Slashed' | 'AutoMigrationFinished' | 'Halted'; + } + + /** @name PezpalletStateTrieMigrationMigrationCompute (134) */ + interface PezpalletStateTrieMigrationMigrationCompute extends Enum { + readonly isSigned: boolean; + readonly isAuto: boolean; + readonly type: 'Signed' | 'Auto'; + } + + /** @name PezpalletStateTrieMigrationError (135) */ + interface PezpalletStateTrieMigrationError extends Enum { + readonly isMaxSignedLimits: boolean; + readonly isKeyTooLong: boolean; + readonly isNotEnoughFunds: boolean; + readonly isBadWitness: boolean; + readonly isSignedMigrationNotAllowed: boolean; + readonly isBadChildRoot: boolean; + readonly type: 'MaxSignedLimits' | 'KeyTooLong' | 'NotEnoughFunds' | 'BadWitness' | 'SignedMigrationNotAllowed' | 'BadChildRoot'; + } + + /** @name PezpalletChildBountiesEvent (136) */ + interface PezpalletChildBountiesEvent extends Enum { + readonly isAdded: boolean; + readonly asAdded: { + readonly index: u32; + readonly childIndex: u32; + } & Struct; + readonly isAwarded: boolean; + readonly asAwarded: { + readonly index: u32; + readonly childIndex: u32; + readonly beneficiary: AccountId32; + } & Struct; + readonly isClaimed: boolean; + readonly asClaimed: { + readonly index: u32; + readonly childIndex: u32; + readonly payout: u128; + readonly beneficiary: AccountId32; + } & Struct; + readonly isCanceled: boolean; + readonly asCanceled: { + readonly index: u32; + readonly childIndex: u32; + } & Struct; + readonly type: 'Added' | 'Awarded' | 'Claimed' | 'Canceled'; + } + + /** @name PezpalletReferendaEvent (137) */ + interface PezpalletReferendaEvent extends Enum { + readonly isSubmitted: boolean; + readonly asSubmitted: { + readonly index: u32; + readonly track: u16; + readonly proposal: PezframeSupportPreimagesBounded; + } & Struct; + readonly isDecisionDepositPlaced: boolean; + readonly asDecisionDepositPlaced: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDecisionDepositRefunded: boolean; + readonly asDecisionDepositRefunded: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDepositSlashed: boolean; + readonly asDepositSlashed: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDecisionStarted: boolean; + readonly asDecisionStarted: { + readonly index: u32; + readonly track: u16; + readonly proposal: PezframeSupportPreimagesBounded; + readonly tally: PezpalletConvictionVotingTally; + } & Struct; + readonly isConfirmStarted: boolean; + readonly asConfirmStarted: { + readonly index: u32; + } & Struct; + readonly isConfirmAborted: boolean; + readonly asConfirmAborted: { + readonly index: u32; + } & Struct; + readonly isConfirmed: boolean; + readonly asConfirmed: { + readonly index: u32; + readonly tally: PezpalletConvictionVotingTally; + } & Struct; + readonly isApproved: boolean; + readonly asApproved: { + readonly index: u32; + } & Struct; + readonly isRejected: boolean; + readonly asRejected: { + readonly index: u32; + readonly tally: PezpalletConvictionVotingTally; + } & Struct; + readonly isTimedOut: boolean; + readonly asTimedOut: { + readonly index: u32; + readonly tally: PezpalletConvictionVotingTally; + } & Struct; + readonly isCancelled: boolean; + readonly asCancelled: { + readonly index: u32; + readonly tally: PezpalletConvictionVotingTally; + } & Struct; + readonly isKilled: boolean; + readonly asKilled: { + readonly index: u32; + readonly tally: PezpalletConvictionVotingTally; + } & Struct; + readonly isSubmissionDepositRefunded: boolean; + readonly asSubmissionDepositRefunded: { + readonly index: u32; + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isMetadataSet: boolean; + readonly asMetadataSet: { + readonly index: u32; + readonly hash_: H256; + } & Struct; + readonly isMetadataCleared: boolean; + readonly asMetadataCleared: { + readonly index: u32; + readonly hash_: H256; + } & Struct; + readonly type: 'Submitted' | 'DecisionDepositPlaced' | 'DecisionDepositRefunded' | 'DepositSlashed' | 'DecisionStarted' | 'ConfirmStarted' | 'ConfirmAborted' | 'Confirmed' | 'Approved' | 'Rejected' | 'TimedOut' | 'Cancelled' | 'Killed' | 'SubmissionDepositRefunded' | 'MetadataSet' | 'MetadataCleared'; + } + + /** @name PezframeSupportPreimagesBounded (138) */ + interface PezframeSupportPreimagesBounded extends Enum { + readonly isLegacy: boolean; + readonly asLegacy: { + readonly hash_: H256; + } & Struct; + readonly isInline: boolean; + readonly asInline: Bytes; + readonly isLookup: boolean; + readonly asLookup: { + readonly hash_: H256; + readonly len: u32; + } & Struct; + readonly type: 'Legacy' | 'Inline' | 'Lookup'; + } + + /** @name PezframeSystemCall (140) */ + interface PezframeSystemCall extends Enum { + readonly isRemark: boolean; + readonly asRemark: { + readonly remark: Bytes; + } & Struct; + readonly isSetHeapPages: boolean; + readonly asSetHeapPages: { + readonly pages: u64; + } & Struct; + readonly isSetCode: boolean; + readonly asSetCode: { + readonly code: Bytes; + } & Struct; + readonly isSetCodeWithoutChecks: boolean; + readonly asSetCodeWithoutChecks: { + readonly code: Bytes; + } & Struct; + readonly isSetStorage: boolean; + readonly asSetStorage: { + readonly items: Vec>; + } & Struct; + readonly isKillStorage: boolean; + readonly asKillStorage: { + readonly keys_: Vec; + } & Struct; + readonly isKillPrefix: boolean; + readonly asKillPrefix: { + readonly prefix: Bytes; + readonly subkeys: u32; + } & Struct; + readonly isRemarkWithEvent: boolean; + readonly asRemarkWithEvent: { + readonly remark: Bytes; + } & Struct; + readonly isAuthorizeUpgrade: boolean; + readonly asAuthorizeUpgrade: { + readonly codeHash: H256; + } & Struct; + readonly isAuthorizeUpgradeWithoutChecks: boolean; + readonly asAuthorizeUpgradeWithoutChecks: { + readonly codeHash: H256; + } & Struct; + readonly isApplyAuthorizedUpgrade: boolean; + readonly asApplyAuthorizedUpgrade: { + readonly code: Bytes; + } & Struct; + readonly type: 'Remark' | 'SetHeapPages' | 'SetCode' | 'SetCodeWithoutChecks' | 'SetStorage' | 'KillStorage' | 'KillPrefix' | 'RemarkWithEvent' | 'AuthorizeUpgrade' | 'AuthorizeUpgradeWithoutChecks' | 'ApplyAuthorizedUpgrade'; + } + + /** @name PezpalletUtilityCall (144) */ + interface PezpalletUtilityCall extends Enum { + readonly isBatch: boolean; + readonly asBatch: { + readonly calls: Vec; + } & Struct; + readonly isAsDerivative: boolean; + readonly asAsDerivative: { + readonly index: u16; + readonly call: RuntimeCall; + } & Struct; + readonly isBatchAll: boolean; + readonly asBatchAll: { + readonly calls: Vec; + } & Struct; + readonly isDispatchAs: boolean; + readonly asDispatchAs: { + readonly asOrigin: KitchensinkRuntimeOriginCaller; + readonly call: RuntimeCall; + } & Struct; + readonly isForceBatch: boolean; + readonly asForceBatch: { + readonly calls: Vec; + } & Struct; + readonly isWithWeight: boolean; + readonly asWithWeight: { + readonly call: RuntimeCall; + readonly weight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isIfElse: boolean; + readonly asIfElse: { + readonly main: RuntimeCall; + readonly fallback: RuntimeCall; + } & Struct; + readonly isDispatchAsFallible: boolean; + readonly asDispatchAsFallible: { + readonly asOrigin: KitchensinkRuntimeOriginCaller; + readonly call: RuntimeCall; + } & Struct; + readonly type: 'Batch' | 'AsDerivative' | 'BatchAll' | 'DispatchAs' | 'ForceBatch' | 'WithWeight' | 'IfElse' | 'DispatchAsFallible'; + } + + /** @name KitchensinkRuntimeOriginCaller (146) */ + interface KitchensinkRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isCouncil: boolean; + readonly asCouncil: PezpalletCollectiveRawOrigin; + readonly isTechnicalCommittee: boolean; + readonly asTechnicalCommittee: PezpalletCollectiveRawOrigin; + readonly isAllianceMotion: boolean; + readonly asAllianceMotion: PezpalletCollectiveRawOrigin; + readonly type: 'System' | 'Council' | 'TechnicalCommittee' | 'AllianceMotion'; + } + + /** @name PezframeSupportDispatchRawOrigin (147) */ + interface PezframeSupportDispatchRawOrigin extends Enum { + readonly isRoot: boolean; + readonly isSigned: boolean; + readonly asSigned: AccountId32; + readonly isNone: boolean; + readonly type: 'Root' | 'Signed' | 'None'; + } + + /** @name PezpalletCollectiveRawOrigin (148) */ + interface PezpalletCollectiveRawOrigin extends Enum { + readonly isMembers: boolean; + readonly asMembers: ITuple<[u32, u32]>; + readonly isMember: boolean; + readonly asMember: AccountId32; + readonly isPhantom: boolean; + readonly type: 'Members' | 'Member' | 'Phantom'; + } + + /** @name PezpalletBabeCall (151) */ + interface PezpalletBabeCall extends Enum { + readonly isReportEquivocation: boolean; + readonly asReportEquivocation: { + readonly equivocationProof: PezspConsensusSlotsEquivocationProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isReportEquivocationUnsigned: boolean; + readonly asReportEquivocationUnsigned: { + readonly equivocationProof: PezspConsensusSlotsEquivocationProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isPlanConfigChange: boolean; + readonly asPlanConfigChange: { + readonly config: PezspConsensusBabeDigestsNextConfigDescriptor; + } & Struct; + readonly type: 'ReportEquivocation' | 'ReportEquivocationUnsigned' | 'PlanConfigChange'; + } + + /** @name PezspConsensusSlotsEquivocationProof (152) */ + interface PezspConsensusSlotsEquivocationProof extends Struct { + readonly offender: PezspConsensusBabeAppPublic; + readonly slot: u64; + readonly firstHeader: PezspRuntimeHeader; + readonly secondHeader: PezspRuntimeHeader; + } + + /** @name PezspRuntimeHeader (153) */ + interface PezspRuntimeHeader extends Struct { + readonly parentHash: H256; + readonly number: Compact; + readonly stateRoot: H256; + readonly extrinsicsRoot: H256; + readonly digest: PezspRuntimeDigest; + } + + /** @name PezspConsensusBabeAppPublic (155) */ + interface PezspConsensusBabeAppPublic extends U8aFixed {} + + /** @name PezspSessionMembershipProof (157) */ + interface PezspSessionMembershipProof extends Struct { + readonly session: u32; + readonly trieNodes: Vec; + readonly validatorCount: u32; + } + + /** @name PezspConsensusBabeDigestsNextConfigDescriptor (158) */ + interface PezspConsensusBabeDigestsNextConfigDescriptor extends Enum { + readonly isV1: boolean; + readonly asV1: { + readonly c: ITuple<[u64, u64]>; + readonly allowedSlots: PezspConsensusBabeAllowedSlots; + } & Struct; + readonly type: 'V1'; + } + + /** @name PezspConsensusBabeAllowedSlots (160) */ + interface PezspConsensusBabeAllowedSlots extends Enum { + readonly isPrimarySlots: boolean; + readonly isPrimaryAndSecondaryPlainSlots: boolean; + readonly isPrimaryAndSecondaryVRFSlots: boolean; + readonly type: 'PrimarySlots' | 'PrimaryAndSecondaryPlainSlots' | 'PrimaryAndSecondaryVRFSlots'; + } + + /** @name PezpalletTimestampCall (161) */ + interface PezpalletTimestampCall extends Enum { + readonly isSet: boolean; + readonly asSet: { + readonly now: Compact; + } & Struct; + readonly type: 'Set'; + } + + /** @name PezpalletIndicesCall (162) */ + interface PezpalletIndicesCall extends Enum { + readonly isClaim: boolean; + readonly asClaim: { + readonly index: u32; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly new_: MultiAddress; + readonly index: u32; + } & Struct; + readonly isFree: boolean; + readonly asFree: { + readonly index: u32; + } & Struct; + readonly isForceTransfer: boolean; + readonly asForceTransfer: { + readonly new_: MultiAddress; + readonly index: u32; + readonly freeze: bool; + } & Struct; + readonly isFreeze: boolean; + readonly asFreeze: { + readonly index: u32; + } & Struct; + readonly isPokeDeposit: boolean; + readonly asPokeDeposit: { + readonly index: u32; + } & Struct; + readonly type: 'Claim' | 'Transfer' | 'Free' | 'ForceTransfer' | 'Freeze' | 'PokeDeposit'; + } + + /** @name PezpalletBalancesCall (165) */ + interface PezpalletBalancesCall extends Enum { + readonly isTransferAllowDeath: boolean; + readonly asTransferAllowDeath: { + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isForceTransfer: boolean; + readonly asForceTransfer: { + readonly source: MultiAddress; + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isTransferKeepAlive: boolean; + readonly asTransferKeepAlive: { + readonly dest: MultiAddress; + readonly value: Compact; + } & Struct; + readonly isTransferAll: boolean; + readonly asTransferAll: { + readonly dest: MultiAddress; + readonly keepAlive: bool; + } & Struct; + readonly isForceUnreserve: boolean; + readonly asForceUnreserve: { + readonly who: MultiAddress; + readonly amount: u128; + } & Struct; + readonly isUpgradeAccounts: boolean; + readonly asUpgradeAccounts: { + readonly who: Vec; + } & Struct; + readonly isForceSetBalance: boolean; + readonly asForceSetBalance: { + readonly who: MultiAddress; + readonly newFree: Compact; + } & Struct; + readonly isForceAdjustTotalIssuance: boolean; + readonly asForceAdjustTotalIssuance: { + readonly direction: PezpalletBalancesAdjustmentDirection; + readonly delta: Compact; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly value: Compact; + readonly keepAlive: bool; + } & Struct; + readonly type: 'TransferAllowDeath' | 'ForceTransfer' | 'TransferKeepAlive' | 'TransferAll' | 'ForceUnreserve' | 'UpgradeAccounts' | 'ForceSetBalance' | 'ForceAdjustTotalIssuance' | 'Burn'; + } + + /** @name PezpalletBalancesAdjustmentDirection (167) */ + interface PezpalletBalancesAdjustmentDirection extends Enum { + readonly isIncrease: boolean; + readonly isDecrease: boolean; + readonly type: 'Increase' | 'Decrease'; + } + + /** @name PezpalletElectionProviderMultiPhaseCall (168) */ + interface PezpalletElectionProviderMultiPhaseCall extends Enum { + readonly isSubmitUnsigned: boolean; + readonly asSubmitUnsigned: { + readonly rawSolution: PezpalletElectionProviderMultiPhaseRawSolution; + readonly witness: PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize; + } & Struct; + readonly isSetMinimumUntrustedScore: boolean; + readonly asSetMinimumUntrustedScore: { + readonly maybeNextScore: Option; + } & Struct; + readonly isSetEmergencyElectionResult: boolean; + readonly asSetEmergencyElectionResult: { + readonly supports: Vec>; + } & Struct; + readonly isSubmit: boolean; + readonly asSubmit: { + readonly rawSolution: PezpalletElectionProviderMultiPhaseRawSolution; + } & Struct; + readonly isGovernanceFallback: boolean; + readonly asGovernanceFallback: { + readonly maybeMaxVoters: Option; + readonly maybeMaxTargets: Option; + } & Struct; + readonly type: 'SubmitUnsigned' | 'SetMinimumUntrustedScore' | 'SetEmergencyElectionResult' | 'Submit' | 'GovernanceFallback'; + } + + /** @name PezpalletElectionProviderMultiPhaseRawSolution (169) */ + interface PezpalletElectionProviderMultiPhaseRawSolution extends Struct { + readonly solution: KitchensinkRuntimeNposSolution16; + readonly score: PezspNposElectionsElectionScore; + readonly round: u32; + } + + /** @name KitchensinkRuntimeNposSolution16 (170) */ + interface KitchensinkRuntimeNposSolution16 extends Struct { + readonly votes1: Vec, Compact]>>; + readonly votes2: Vec, ITuple<[Compact, Compact]>, Compact]>>; + readonly votes3: Vec, Vec, Compact]>>, Compact]>>; + readonly votes4: Vec, Vec, Compact]>>, Compact]>>; + readonly votes5: Vec, Vec, Compact]>>, Compact]>>; + readonly votes6: Vec, Vec, Compact]>>, Compact]>>; + readonly votes7: Vec, Vec, Compact]>>, Compact]>>; + readonly votes8: Vec, Vec, Compact]>>, Compact]>>; + readonly votes9: Vec, Vec, Compact]>>, Compact]>>; + readonly votes10: Vec, Vec, Compact]>>, Compact]>>; + readonly votes11: Vec, Vec, Compact]>>, Compact]>>; + readonly votes12: Vec, Vec, Compact]>>, Compact]>>; + readonly votes13: Vec, Vec, Compact]>>, Compact]>>; + readonly votes14: Vec, Vec, Compact]>>, Compact]>>; + readonly votes15: Vec, Vec, Compact]>>, Compact]>>; + readonly votes16: Vec, Vec, Compact]>>, Compact]>>; + } + + /** @name PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize (221) */ + interface PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize extends Struct { + readonly voters: Compact; + readonly targets: Compact; + } + + /** @name PezspNposElectionsSupport (225) */ + interface PezspNposElectionsSupport extends Struct { + readonly total: u128; + readonly voters: Vec>; + } + + /** @name PezpalletStakingPezpalletCall (226) */ + interface PezpalletStakingPezpalletCall extends Enum { + readonly isBond: boolean; + readonly asBond: { + readonly value: Compact; + readonly payee: PezpalletStakingRewardDestination; + } & Struct; + readonly isBondExtra: boolean; + readonly asBondExtra: { + readonly maxAdditional: Compact; + } & Struct; + readonly isUnbond: boolean; + readonly asUnbond: { + readonly value: Compact; + } & Struct; + readonly isWithdrawUnbonded: boolean; + readonly asWithdrawUnbonded: { + readonly numSlashingSpans: u32; + } & Struct; + readonly isValidate: boolean; + readonly asValidate: { + readonly prefs: PezpalletStakingValidatorPrefs; + } & Struct; + readonly isNominate: boolean; + readonly asNominate: { + readonly targets: Vec; + } & Struct; + readonly isChill: boolean; + readonly isSetPayee: boolean; + readonly asSetPayee: { + readonly payee: PezpalletStakingRewardDestination; + } & Struct; + readonly isSetController: boolean; + readonly isSetValidatorCount: boolean; + readonly asSetValidatorCount: { + readonly new_: Compact; + } & Struct; + readonly isIncreaseValidatorCount: boolean; + readonly asIncreaseValidatorCount: { + readonly additional: Compact; + } & Struct; + readonly isScaleValidatorCount: boolean; + readonly asScaleValidatorCount: { + readonly factor: Percent; + } & Struct; + readonly isForceNoEras: boolean; + readonly isForceNewEra: boolean; + readonly isSetInvulnerables: boolean; + readonly asSetInvulnerables: { + readonly invulnerables: Vec; + } & Struct; + readonly isForceUnstake: boolean; + readonly asForceUnstake: { + readonly stash: AccountId32; + readonly numSlashingSpans: u32; + } & Struct; + readonly isForceNewEraAlways: boolean; + readonly isCancelDeferredSlash: boolean; + readonly asCancelDeferredSlash: { + readonly era: u32; + readonly slashIndices: Vec; + } & Struct; + readonly isPayoutStakers: boolean; + readonly asPayoutStakers: { + readonly validatorStash: AccountId32; + readonly era: u32; + } & Struct; + readonly isRebond: boolean; + readonly asRebond: { + readonly value: Compact; + } & Struct; + readonly isReapStash: boolean; + readonly asReapStash: { + readonly stash: AccountId32; + readonly numSlashingSpans: u32; + } & Struct; + readonly isKick: boolean; + readonly asKick: { + readonly who: Vec; + } & Struct; + readonly isSetStakingConfigs: boolean; + readonly asSetStakingConfigs: { + readonly minNominatorBond: PezpalletStakingPezpalletConfigOpU128; + readonly minValidatorBond: PezpalletStakingPezpalletConfigOpU128; + readonly maxNominatorCount: PezpalletStakingPezpalletConfigOpU32; + readonly maxValidatorCount: PezpalletStakingPezpalletConfigOpU32; + readonly chillThreshold: PezpalletStakingPezpalletConfigOpPercent; + readonly minCommission: PezpalletStakingPezpalletConfigOpPerbill; + readonly maxStakedRewards: PezpalletStakingPezpalletConfigOpPercent; + } & Struct; + readonly isChillOther: boolean; + readonly asChillOther: { + readonly stash: AccountId32; + } & Struct; + readonly isForceApplyMinCommission: boolean; + readonly asForceApplyMinCommission: { + readonly validatorStash: AccountId32; + } & Struct; + readonly isSetMinCommission: boolean; + readonly asSetMinCommission: { + readonly new_: Perbill; + } & Struct; + readonly isPayoutStakersByPage: boolean; + readonly asPayoutStakersByPage: { + readonly validatorStash: AccountId32; + readonly era: u32; + readonly page: u32; + } & Struct; + readonly isUpdatePayee: boolean; + readonly asUpdatePayee: { + readonly controller: AccountId32; + } & Struct; + readonly isDeprecateControllerBatch: boolean; + readonly asDeprecateControllerBatch: { + readonly controllers: Vec; + } & Struct; + readonly isRestoreLedger: boolean; + readonly asRestoreLedger: { + readonly stash: AccountId32; + readonly maybeController: Option; + readonly maybeTotal: Option; + readonly maybeUnlocking: Option>; + } & Struct; + readonly isMigrateCurrency: boolean; + readonly asMigrateCurrency: { + readonly stash: AccountId32; + } & Struct; + readonly isManualSlash: boolean; + readonly asManualSlash: { + readonly validatorStash: AccountId32; + readonly era: u32; + readonly slashFraction: Perbill; + } & Struct; + readonly type: 'Bond' | 'BondExtra' | 'Unbond' | 'WithdrawUnbonded' | 'Validate' | 'Nominate' | 'Chill' | 'SetPayee' | 'SetController' | 'SetValidatorCount' | 'IncreaseValidatorCount' | 'ScaleValidatorCount' | 'ForceNoEras' | 'ForceNewEra' | 'SetInvulnerables' | 'ForceUnstake' | 'ForceNewEraAlways' | 'CancelDeferredSlash' | 'PayoutStakers' | 'Rebond' | 'ReapStash' | 'Kick' | 'SetStakingConfigs' | 'ChillOther' | 'ForceApplyMinCommission' | 'SetMinCommission' | 'PayoutStakersByPage' | 'UpdatePayee' | 'DeprecateControllerBatch' | 'RestoreLedger' | 'MigrateCurrency' | 'ManualSlash'; + } + + /** @name PezpalletStakingPezpalletConfigOpU128 (229) */ + interface PezpalletStakingPezpalletConfigOpU128 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: u128; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingPezpalletConfigOpU32 (230) */ + interface PezpalletStakingPezpalletConfigOpU32 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: u32; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingPezpalletConfigOpPercent (231) */ + interface PezpalletStakingPezpalletConfigOpPercent extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: Percent; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingPezpalletConfigOpPerbill (232) */ + interface PezpalletStakingPezpalletConfigOpPerbill extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: Perbill; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletStakingUnlockChunk (237) */ + interface PezpalletStakingUnlockChunk extends Struct { + readonly value: Compact; + readonly era: Compact; + } + + /** @name PezpalletSessionCall (239) */ + interface PezpalletSessionCall extends Enum { + readonly isSetKeys: boolean; + readonly asSetKeys: { + readonly keys_: KitchensinkRuntimeSessionKeys; + readonly proof: Bytes; + } & Struct; + readonly isPurgeKeys: boolean; + readonly type: 'SetKeys' | 'PurgeKeys'; + } + + /** @name KitchensinkRuntimeSessionKeys (240) */ + interface KitchensinkRuntimeSessionKeys extends Struct { + readonly grandpa: PezspConsensusGrandpaAppPublic; + readonly babe: PezspConsensusBabeAppPublic; + readonly imOnline: PezpalletImOnlineSr25519AppSr25519Public; + readonly authorityDiscovery: PezspAuthorityDiscoveryAppPublic; + readonly mixnet: PezspMixnetAppPublic; + readonly beefy: PezspConsensusBeefyEcdsaCryptoPublic; + } + + /** @name PezspAuthorityDiscoveryAppPublic (241) */ + interface PezspAuthorityDiscoveryAppPublic extends U8aFixed {} + + /** @name PezspMixnetAppPublic (242) */ + interface PezspMixnetAppPublic extends U8aFixed {} + + /** @name PezspConsensusBeefyEcdsaCryptoPublic (243) */ + interface PezspConsensusBeefyEcdsaCryptoPublic extends U8aFixed {} + + /** @name PezpalletDemocracyCall (245) */ + interface PezpalletDemocracyCall extends Enum { + readonly isPropose: boolean; + readonly asPropose: { + readonly proposal: PezframeSupportPreimagesBounded; + readonly value: Compact; + } & Struct; + readonly isSecond: boolean; + readonly asSecond: { + readonly proposal: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly refIndex: Compact; + readonly vote: PezpalletDemocracyVoteAccountVote; + } & Struct; + readonly isEmergencyCancel: boolean; + readonly asEmergencyCancel: { + readonly refIndex: u32; + } & Struct; + readonly isExternalPropose: boolean; + readonly asExternalPropose: { + readonly proposal: PezframeSupportPreimagesBounded; + } & Struct; + readonly isExternalProposeMajority: boolean; + readonly asExternalProposeMajority: { + readonly proposal: PezframeSupportPreimagesBounded; + } & Struct; + readonly isExternalProposeDefault: boolean; + readonly asExternalProposeDefault: { + readonly proposal: PezframeSupportPreimagesBounded; + } & Struct; + readonly isFastTrack: boolean; + readonly asFastTrack: { + readonly proposalHash: H256; + readonly votingPeriod: u32; + readonly delay: u32; + } & Struct; + readonly isVetoExternal: boolean; + readonly asVetoExternal: { + readonly proposalHash: H256; + } & Struct; + readonly isCancelReferendum: boolean; + readonly asCancelReferendum: { + readonly refIndex: Compact; + } & Struct; + readonly isDelegate: boolean; + readonly asDelegate: { + readonly to: MultiAddress; + readonly conviction: PezpalletDemocracyConviction; + readonly balance: u128; + } & Struct; + readonly isUndelegate: boolean; + readonly isClearPublicProposals: boolean; + readonly isUnlock: boolean; + readonly asUnlock: { + readonly target: MultiAddress; + } & Struct; + readonly isRemoveVote: boolean; + readonly asRemoveVote: { + readonly index: u32; + } & Struct; + readonly isRemoveOtherVote: boolean; + readonly asRemoveOtherVote: { + readonly target: MultiAddress; + readonly index: u32; + } & Struct; + readonly isBlacklist: boolean; + readonly asBlacklist: { + readonly proposalHash: H256; + readonly maybeRefIndex: Option; + } & Struct; + readonly isCancelProposal: boolean; + readonly asCancelProposal: { + readonly propIndex: Compact; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly owner: PezpalletDemocracyMetadataOwner; + readonly maybeHash: Option; + } & Struct; + readonly type: 'Propose' | 'Second' | 'Vote' | 'EmergencyCancel' | 'ExternalPropose' | 'ExternalProposeMajority' | 'ExternalProposeDefault' | 'FastTrack' | 'VetoExternal' | 'CancelReferendum' | 'Delegate' | 'Undelegate' | 'ClearPublicProposals' | 'Unlock' | 'RemoveVote' | 'RemoveOtherVote' | 'Blacklist' | 'CancelProposal' | 'SetMetadata'; + } + + /** @name PezpalletDemocracyConviction (246) */ + interface PezpalletDemocracyConviction extends Enum { + readonly isNone: boolean; + readonly isLocked1x: boolean; + readonly isLocked2x: boolean; + readonly isLocked3x: boolean; + readonly isLocked4x: boolean; + readonly isLocked5x: boolean; + readonly isLocked6x: boolean; + readonly type: 'None' | 'Locked1x' | 'Locked2x' | 'Locked3x' | 'Locked4x' | 'Locked5x' | 'Locked6x'; + } + + /** @name PezpalletCollectiveCall (248) */ + interface PezpalletCollectiveCall extends Enum { + readonly isSetMembers: boolean; + readonly asSetMembers: { + readonly newMembers: Vec; + readonly prime: Option; + readonly oldCount: u32; + } & Struct; + readonly isExecute: boolean; + readonly asExecute: { + readonly proposal: RuntimeCall; + readonly lengthBound: Compact; + } & Struct; + readonly isPropose: boolean; + readonly asPropose: { + readonly threshold: Compact; + readonly proposal: RuntimeCall; + readonly lengthBound: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly proposal: H256; + readonly index: Compact; + readonly approve: bool; + } & Struct; + readonly isDisapproveProposal: boolean; + readonly asDisapproveProposal: { + readonly proposalHash: H256; + } & Struct; + readonly isClose: boolean; + readonly asClose: { + readonly proposalHash: H256; + readonly index: Compact; + readonly proposalWeightBound: PezspWeightsWeightV2Weight; + readonly lengthBound: Compact; + } & Struct; + readonly isKill: boolean; + readonly asKill: { + readonly proposalHash: H256; + } & Struct; + readonly isReleaseProposalCost: boolean; + readonly asReleaseProposalCost: { + readonly proposalHash: H256; + } & Struct; + readonly type: 'SetMembers' | 'Execute' | 'Propose' | 'Vote' | 'DisapproveProposal' | 'Close' | 'Kill' | 'ReleaseProposalCost'; + } + + /** @name PezpalletElectionsPhragmenCall (250) */ + interface PezpalletElectionsPhragmenCall extends Enum { + readonly isVote: boolean; + readonly asVote: { + readonly votes: Vec; + readonly value: Compact; + } & Struct; + readonly isRemoveVoter: boolean; + readonly isSubmitCandidacy: boolean; + readonly asSubmitCandidacy: { + readonly candidateCount: Compact; + } & Struct; + readonly isRenounceCandidacy: boolean; + readonly asRenounceCandidacy: { + readonly renouncing: PezpalletElectionsPhragmenRenouncing; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + readonly slashBond: bool; + readonly rerunElection: bool; + } & Struct; + readonly isCleanDefunctVoters: boolean; + readonly asCleanDefunctVoters: { + readonly numVoters: u32; + readonly numDefunct: u32; + } & Struct; + readonly type: 'Vote' | 'RemoveVoter' | 'SubmitCandidacy' | 'RenounceCandidacy' | 'RemoveMember' | 'CleanDefunctVoters'; + } + + /** @name PezpalletElectionsPhragmenRenouncing (251) */ + interface PezpalletElectionsPhragmenRenouncing extends Enum { + readonly isMember: boolean; + readonly isRunnerUp: boolean; + readonly isCandidate: boolean; + readonly asCandidate: Compact; + readonly type: 'Member' | 'RunnerUp' | 'Candidate'; + } + + /** @name PezpalletMembershipCall (252) */ + interface PezpalletMembershipCall extends Enum { + readonly isAddMember: boolean; + readonly asAddMember: { + readonly who: MultiAddress; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + } & Struct; + readonly isSwapMember: boolean; + readonly asSwapMember: { + readonly remove: MultiAddress; + readonly add: MultiAddress; + } & Struct; + readonly isResetMembers: boolean; + readonly asResetMembers: { + readonly members: Vec; + } & Struct; + readonly isChangeKey: boolean; + readonly asChangeKey: { + readonly new_: MultiAddress; + } & Struct; + readonly isSetPrime: boolean; + readonly asSetPrime: { + readonly who: MultiAddress; + } & Struct; + readonly isClearPrime: boolean; + readonly type: 'AddMember' | 'RemoveMember' | 'SwapMember' | 'ResetMembers' | 'ChangeKey' | 'SetPrime' | 'ClearPrime'; + } + + /** @name PezpalletGrandpaCall (253) */ + interface PezpalletGrandpaCall extends Enum { + readonly isReportEquivocation: boolean; + readonly asReportEquivocation: { + readonly equivocationProof: PezspConsensusGrandpaEquivocationProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isReportEquivocationUnsigned: boolean; + readonly asReportEquivocationUnsigned: { + readonly equivocationProof: PezspConsensusGrandpaEquivocationProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isNoteStalled: boolean; + readonly asNoteStalled: { + readonly delay: u32; + readonly bestFinalizedBlockNumber: u32; + } & Struct; + readonly type: 'ReportEquivocation' | 'ReportEquivocationUnsigned' | 'NoteStalled'; + } + + /** @name PezspConsensusGrandpaEquivocationProof (254) */ + interface PezspConsensusGrandpaEquivocationProof extends Struct { + readonly setId: u64; + readonly equivocation: PezspConsensusGrandpaEquivocation; + } + + /** @name PezspConsensusGrandpaEquivocation (255) */ + interface PezspConsensusGrandpaEquivocation extends Enum { + readonly isPrevote: boolean; + readonly asPrevote: FinalityGrandpaEquivocationPrevote; + readonly isPrecommit: boolean; + readonly asPrecommit: FinalityGrandpaEquivocationPrecommit; + readonly type: 'Prevote' | 'Precommit'; + } + + /** @name FinalityGrandpaEquivocationPrevote (256) */ + interface FinalityGrandpaEquivocationPrevote extends Struct { + readonly roundNumber: u64; + readonly identity: PezspConsensusGrandpaAppPublic; + readonly first: ITuple<[FinalityGrandpaPrevote, PezspConsensusGrandpaAppSignature]>; + readonly second: ITuple<[FinalityGrandpaPrevote, PezspConsensusGrandpaAppSignature]>; + } + + /** @name FinalityGrandpaPrevote (257) */ + interface FinalityGrandpaPrevote extends Struct { + readonly targetHash: H256; + readonly targetNumber: u32; + } + + /** @name PezspConsensusGrandpaAppSignature (258) */ + interface PezspConsensusGrandpaAppSignature extends U8aFixed {} + + /** @name FinalityGrandpaEquivocationPrecommit (261) */ + interface FinalityGrandpaEquivocationPrecommit extends Struct { + readonly roundNumber: u64; + readonly identity: PezspConsensusGrandpaAppPublic; + readonly first: ITuple<[FinalityGrandpaPrecommit, PezspConsensusGrandpaAppSignature]>; + readonly second: ITuple<[FinalityGrandpaPrecommit, PezspConsensusGrandpaAppSignature]>; + } + + /** @name FinalityGrandpaPrecommit (262) */ + interface FinalityGrandpaPrecommit extends Struct { + readonly targetHash: H256; + readonly targetNumber: u32; + } + + /** @name PezpalletTreasuryCall (264) */ + interface PezpalletTreasuryCall extends Enum { + readonly isSpendLocal: boolean; + readonly asSpendLocal: { + readonly amount: Compact; + readonly beneficiary: MultiAddress; + } & Struct; + readonly isRemoveApproval: boolean; + readonly asRemoveApproval: { + readonly proposalId: Compact; + } & Struct; + readonly isSpend: boolean; + readonly asSpend: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly amount: Compact; + readonly beneficiary: MultiAddress; + readonly validFrom: Option; + } & Struct; + readonly isPayout: boolean; + readonly asPayout: { + readonly index: u32; + } & Struct; + readonly isCheckStatus: boolean; + readonly asCheckStatus: { + readonly index: u32; + } & Struct; + readonly isVoidSpend: boolean; + readonly asVoidSpend: { + readonly index: u32; + } & Struct; + readonly type: 'SpendLocal' | 'RemoveApproval' | 'Spend' | 'Payout' | 'CheckStatus' | 'VoidSpend'; + } + + /** @name PezpalletAssetRateCall (265) */ + interface PezpalletAssetRateCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rate: u128; + } & Struct; + readonly isUpdate: boolean; + readonly asUpdate: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rate: u128; + } & Struct; + readonly isRemove: boolean; + readonly asRemove: { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + } & Struct; + readonly type: 'Create' | 'Update' | 'Remove'; + } + + /** @name PezpalletContractsCall (266) */ + interface PezpalletContractsCall extends Enum { + readonly isCallOldWeight: boolean; + readonly asCallOldWeight: { + readonly dest: MultiAddress; + readonly value: Compact; + readonly gasLimit: Compact; + readonly storageDepositLimit: Option>; + readonly data: Bytes; + } & Struct; + readonly isInstantiateWithCodeOldWeight: boolean; + readonly asInstantiateWithCodeOldWeight: { + readonly value: Compact; + readonly gasLimit: Compact; + readonly storageDepositLimit: Option>; + readonly code: Bytes; + readonly data: Bytes; + readonly salt: Bytes; + } & Struct; + readonly isInstantiateOldWeight: boolean; + readonly asInstantiateOldWeight: { + readonly value: Compact; + readonly gasLimit: Compact; + readonly storageDepositLimit: Option>; + readonly codeHash: H256; + readonly data: Bytes; + readonly salt: Bytes; + } & Struct; + readonly isUploadCode: boolean; + readonly asUploadCode: { + readonly code: Bytes; + readonly storageDepositLimit: Option>; + readonly determinism: PezpalletContractsWasmDeterminism; + } & Struct; + readonly isRemoveCode: boolean; + readonly asRemoveCode: { + readonly codeHash: H256; + } & Struct; + readonly isSetCode: boolean; + readonly asSetCode: { + readonly dest: MultiAddress; + readonly codeHash: H256; + } & Struct; + readonly isCall: boolean; + readonly asCall: { + readonly dest: MultiAddress; + readonly value: Compact; + readonly gasLimit: PezspWeightsWeightV2Weight; + readonly storageDepositLimit: Option>; + readonly data: Bytes; + } & Struct; + readonly isInstantiateWithCode: boolean; + readonly asInstantiateWithCode: { + readonly value: Compact; + readonly gasLimit: PezspWeightsWeightV2Weight; + readonly storageDepositLimit: Option>; + readonly code: Bytes; + readonly data: Bytes; + readonly salt: Bytes; + } & Struct; + readonly isInstantiate: boolean; + readonly asInstantiate: { + readonly value: Compact; + readonly gasLimit: PezspWeightsWeightV2Weight; + readonly storageDepositLimit: Option>; + readonly codeHash: H256; + readonly data: Bytes; + readonly salt: Bytes; + } & Struct; + readonly isMigrate: boolean; + readonly asMigrate: { + readonly weightLimit: PezspWeightsWeightV2Weight; + } & Struct; + readonly type: 'CallOldWeight' | 'InstantiateWithCodeOldWeight' | 'InstantiateOldWeight' | 'UploadCode' | 'RemoveCode' | 'SetCode' | 'Call' | 'InstantiateWithCode' | 'Instantiate' | 'Migrate'; + } + + /** @name PezpalletContractsWasmDeterminism (268) */ + interface PezpalletContractsWasmDeterminism extends Enum { + readonly isEnforced: boolean; + readonly isRelaxed: boolean; + readonly type: 'Enforced' | 'Relaxed'; + } + + /** @name PezpalletSudoCall (269) */ + interface PezpalletSudoCall extends Enum { + readonly isSudo: boolean; + readonly asSudo: { + readonly call: RuntimeCall; + } & Struct; + readonly isSudoUncheckedWeight: boolean; + readonly asSudoUncheckedWeight: { + readonly call: RuntimeCall; + readonly weight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isSetKey: boolean; + readonly asSetKey: { + readonly new_: MultiAddress; + } & Struct; + readonly isSudoAs: boolean; + readonly asSudoAs: { + readonly who: MultiAddress; + readonly call: RuntimeCall; + } & Struct; + readonly isRemoveKey: boolean; + readonly type: 'Sudo' | 'SudoUncheckedWeight' | 'SetKey' | 'SudoAs' | 'RemoveKey'; + } + + /** @name PezpalletImOnlineCall (270) */ + interface PezpalletImOnlineCall extends Enum { + readonly isHeartbeat: boolean; + readonly asHeartbeat: { + readonly heartbeat: PezpalletImOnlineHeartbeat; + readonly signature: PezpalletImOnlineSr25519AppSr25519Signature; + } & Struct; + readonly type: 'Heartbeat'; + } + + /** @name PezpalletImOnlineHeartbeat (271) */ + interface PezpalletImOnlineHeartbeat extends Struct { + readonly blockNumber: u32; + readonly sessionIndex: u32; + readonly authorityIndex: u32; + readonly validatorsLen: u32; + } + + /** @name PezpalletImOnlineSr25519AppSr25519Signature (272) */ + interface PezpalletImOnlineSr25519AppSr25519Signature extends U8aFixed {} + + /** @name PezpalletIdentityCall (273) */ + interface PezpalletIdentityCall extends Enum { + readonly isAddRegistrar: boolean; + readonly asAddRegistrar: { + readonly account: MultiAddress; + } & Struct; + readonly isSetIdentity: boolean; + readonly asSetIdentity: { + readonly info: PezpalletIdentityLegacyIdentityInfo; + } & Struct; + readonly isSetSubs: boolean; + readonly asSetSubs: { + readonly subs: Vec>; + } & Struct; + readonly isClearIdentity: boolean; + readonly isRequestJudgement: boolean; + readonly asRequestJudgement: { + readonly regIndex: Compact; + readonly maxFee: Compact; + } & Struct; + readonly isCancelRequest: boolean; + readonly asCancelRequest: { + readonly regIndex: u32; + } & Struct; + readonly isSetFee: boolean; + readonly asSetFee: { + readonly index: Compact; + readonly fee: Compact; + } & Struct; + readonly isSetAccountId: boolean; + readonly asSetAccountId: { + readonly index: Compact; + readonly new_: MultiAddress; + } & Struct; + readonly isSetFields: boolean; + readonly asSetFields: { + readonly index: Compact; + readonly fields: u64; + } & Struct; + readonly isProvideJudgement: boolean; + readonly asProvideJudgement: { + readonly regIndex: Compact; + readonly target: MultiAddress; + readonly judgement: PezpalletIdentityJudgement; + readonly identity: H256; + } & Struct; + readonly isKillIdentity: boolean; + readonly asKillIdentity: { + readonly target: MultiAddress; + } & Struct; + readonly isAddSub: boolean; + readonly asAddSub: { + readonly sub: MultiAddress; + readonly data: Data; + } & Struct; + readonly isRenameSub: boolean; + readonly asRenameSub: { + readonly sub: MultiAddress; + readonly data: Data; + } & Struct; + readonly isRemoveSub: boolean; + readonly asRemoveSub: { + readonly sub: MultiAddress; + } & Struct; + readonly isQuitSub: boolean; + readonly isAddUsernameAuthority: boolean; + readonly asAddUsernameAuthority: { + readonly authority: MultiAddress; + readonly suffix: Bytes; + readonly allocation: u32; + } & Struct; + readonly isRemoveUsernameAuthority: boolean; + readonly asRemoveUsernameAuthority: { + readonly suffix: Bytes; + readonly authority: MultiAddress; + } & Struct; + readonly isSetUsernameFor: boolean; + readonly asSetUsernameFor: { + readonly who: MultiAddress; + readonly username: Bytes; + readonly signature: Option; + readonly useAllocation: bool; + } & Struct; + readonly isAcceptUsername: boolean; + readonly asAcceptUsername: { + readonly username: Bytes; + } & Struct; + readonly isRemoveExpiredApproval: boolean; + readonly asRemoveExpiredApproval: { + readonly username: Bytes; + } & Struct; + readonly isSetPrimaryUsername: boolean; + readonly asSetPrimaryUsername: { + readonly username: Bytes; + } & Struct; + readonly isUnbindUsername: boolean; + readonly asUnbindUsername: { + readonly username: Bytes; + } & Struct; + readonly isRemoveUsername: boolean; + readonly asRemoveUsername: { + readonly username: Bytes; + } & Struct; + readonly isKillUsername: boolean; + readonly asKillUsername: { + readonly username: Bytes; + } & Struct; + readonly type: 'AddRegistrar' | 'SetIdentity' | 'SetSubs' | 'ClearIdentity' | 'RequestJudgement' | 'CancelRequest' | 'SetFee' | 'SetAccountId' | 'SetFields' | 'ProvideJudgement' | 'KillIdentity' | 'AddSub' | 'RenameSub' | 'RemoveSub' | 'QuitSub' | 'AddUsernameAuthority' | 'RemoveUsernameAuthority' | 'SetUsernameFor' | 'AcceptUsername' | 'RemoveExpiredApproval' | 'SetPrimaryUsername' | 'UnbindUsername' | 'RemoveUsername' | 'KillUsername'; + } + + /** @name PezpalletIdentityLegacyIdentityInfo (274) */ + interface PezpalletIdentityLegacyIdentityInfo extends Struct { + readonly additional: Vec>; + readonly display: Data; + readonly legal: Data; + readonly web: Data; + readonly riot: Data; + readonly email: Data; + readonly pgpFingerprint: Option; + readonly image: Data; + readonly twitter: Data; + } + + /** @name PezpalletIdentityJudgement (311) */ + interface PezpalletIdentityJudgement extends Enum { + readonly isUnknown: boolean; + readonly isFeePaid: boolean; + readonly asFeePaid: u128; + readonly isReasonable: boolean; + readonly isKnownGood: boolean; + readonly isOutOfDate: boolean; + readonly isLowQuality: boolean; + readonly isErroneous: boolean; + readonly type: 'Unknown' | 'FeePaid' | 'Reasonable' | 'KnownGood' | 'OutOfDate' | 'LowQuality' | 'Erroneous'; + } + + /** @name PezspRuntimeMultiSignature (313) */ + interface PezspRuntimeMultiSignature extends Enum { + readonly isEd25519: boolean; + readonly asEd25519: U8aFixed; + readonly isSr25519: boolean; + readonly asSr25519: U8aFixed; + readonly isEcdsa: boolean; + readonly asEcdsa: U8aFixed; + readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; + } + + /** @name PezpalletSocietyCall (315) */ + interface PezpalletSocietyCall extends Enum { + readonly isBid: boolean; + readonly asBid: { + readonly value: u128; + } & Struct; + readonly isUnbid: boolean; + readonly isVouch: boolean; + readonly asVouch: { + readonly who: MultiAddress; + readonly value: u128; + readonly tip: u128; + } & Struct; + readonly isUnvouch: boolean; + readonly isVote: boolean; + readonly asVote: { + readonly candidate: MultiAddress; + readonly approve: bool; + } & Struct; + readonly isDefenderVote: boolean; + readonly asDefenderVote: { + readonly approve: bool; + } & Struct; + readonly isPayout: boolean; + readonly isWaiveRepay: boolean; + readonly asWaiveRepay: { + readonly amount: u128; + } & Struct; + readonly isFoundSociety: boolean; + readonly asFoundSociety: { + readonly founder: MultiAddress; + readonly maxMembers: u32; + readonly maxIntake: u32; + readonly maxStrikes: u32; + readonly candidateDeposit: u128; + readonly rules: Bytes; + } & Struct; + readonly isDissolve: boolean; + readonly isJudgeSuspendedMember: boolean; + readonly asJudgeSuspendedMember: { + readonly who: MultiAddress; + readonly forgive: bool; + } & Struct; + readonly isSetParameters: boolean; + readonly asSetParameters: { + readonly maxMembers: u32; + readonly maxIntake: u32; + readonly maxStrikes: u32; + readonly candidateDeposit: u128; + } & Struct; + readonly isPunishSkeptic: boolean; + readonly isClaimMembership: boolean; + readonly isBestowMembership: boolean; + readonly asBestowMembership: { + readonly candidate: AccountId32; + } & Struct; + readonly isKickCandidate: boolean; + readonly asKickCandidate: { + readonly candidate: AccountId32; + } & Struct; + readonly isResignCandidacy: boolean; + readonly isDropCandidate: boolean; + readonly asDropCandidate: { + readonly candidate: AccountId32; + } & Struct; + readonly isCleanupCandidacy: boolean; + readonly asCleanupCandidacy: { + readonly candidate: AccountId32; + readonly max: u32; + } & Struct; + readonly isCleanupChallenge: boolean; + readonly asCleanupChallenge: { + readonly challengeRound: u32; + readonly max: u32; + } & Struct; + readonly type: 'Bid' | 'Unbid' | 'Vouch' | 'Unvouch' | 'Vote' | 'DefenderVote' | 'Payout' | 'WaiveRepay' | 'FoundSociety' | 'Dissolve' | 'JudgeSuspendedMember' | 'SetParameters' | 'PunishSkeptic' | 'ClaimMembership' | 'BestowMembership' | 'KickCandidate' | 'ResignCandidacy' | 'DropCandidate' | 'CleanupCandidacy' | 'CleanupChallenge'; + } + + /** @name PezpalletRecoveryCall (316) */ + interface PezpalletRecoveryCall extends Enum { + readonly isAsRecovered: boolean; + readonly asAsRecovered: { + readonly account: MultiAddress; + readonly call: RuntimeCall; + } & Struct; + readonly isSetRecovered: boolean; + readonly asSetRecovered: { + readonly lost: MultiAddress; + readonly rescuer: MultiAddress; + } & Struct; + readonly isCreateRecovery: boolean; + readonly asCreateRecovery: { + readonly friends: Vec; + readonly threshold: u16; + readonly delayPeriod: u32; + } & Struct; + readonly isInitiateRecovery: boolean; + readonly asInitiateRecovery: { + readonly account: MultiAddress; + } & Struct; + readonly isVouchRecovery: boolean; + readonly asVouchRecovery: { + readonly lost: MultiAddress; + readonly rescuer: MultiAddress; + } & Struct; + readonly isClaimRecovery: boolean; + readonly asClaimRecovery: { + readonly account: MultiAddress; + } & Struct; + readonly isCloseRecovery: boolean; + readonly asCloseRecovery: { + readonly rescuer: MultiAddress; + } & Struct; + readonly isRemoveRecovery: boolean; + readonly isCancelRecovered: boolean; + readonly asCancelRecovered: { + readonly account: MultiAddress; + } & Struct; + readonly type: 'AsRecovered' | 'SetRecovered' | 'CreateRecovery' | 'InitiateRecovery' | 'VouchRecovery' | 'ClaimRecovery' | 'CloseRecovery' | 'RemoveRecovery' | 'CancelRecovered'; + } + + /** @name PezpalletVestingCall (317) */ + interface PezpalletVestingCall extends Enum { + readonly isVest: boolean; + readonly isVestOther: boolean; + readonly asVestOther: { + readonly target: MultiAddress; + } & Struct; + readonly isVestedTransfer: boolean; + readonly asVestedTransfer: { + readonly target: MultiAddress; + readonly schedule: PezpalletVestingVestingInfo; + } & Struct; + readonly isForceVestedTransfer: boolean; + readonly asForceVestedTransfer: { + readonly source: MultiAddress; + readonly target: MultiAddress; + readonly schedule: PezpalletVestingVestingInfo; + } & Struct; + readonly isMergeSchedules: boolean; + readonly asMergeSchedules: { + readonly schedule1Index: u32; + readonly schedule2Index: u32; + } & Struct; + readonly isForceRemoveVestingSchedule: boolean; + readonly asForceRemoveVestingSchedule: { + readonly target: MultiAddress; + readonly scheduleIndex: u32; + } & Struct; + readonly type: 'Vest' | 'VestOther' | 'VestedTransfer' | 'ForceVestedTransfer' | 'MergeSchedules' | 'ForceRemoveVestingSchedule'; + } + + /** @name PezpalletVestingVestingInfo (318) */ + interface PezpalletVestingVestingInfo extends Struct { + readonly locked: u128; + readonly perBlock: u128; + readonly startingBlock: u32; + } + + /** @name PezpalletSchedulerCall (319) */ + interface PezpalletSchedulerCall extends Enum { + readonly isSchedule: boolean; + readonly asSchedule: { + readonly when: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: RuntimeCall; + } & Struct; + readonly isCancel: boolean; + readonly asCancel: { + readonly when: u32; + readonly index: u32; + } & Struct; + readonly isScheduleNamed: boolean; + readonly asScheduleNamed: { + readonly id: U8aFixed; + readonly when: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: RuntimeCall; + } & Struct; + readonly isCancelNamed: boolean; + readonly asCancelNamed: { + readonly id: U8aFixed; + } & Struct; + readonly isScheduleAfter: boolean; + readonly asScheduleAfter: { + readonly after: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: RuntimeCall; + } & Struct; + readonly isScheduleNamedAfter: boolean; + readonly asScheduleNamedAfter: { + readonly id: U8aFixed; + readonly after: u32; + readonly maybePeriodic: Option>; + readonly priority: u8; + readonly call: RuntimeCall; + } & Struct; + readonly isSetRetry: boolean; + readonly asSetRetry: { + readonly task: ITuple<[u32, u32]>; + readonly retries: u8; + readonly period: u32; + } & Struct; + readonly isSetRetryNamed: boolean; + readonly asSetRetryNamed: { + readonly id: U8aFixed; + readonly retries: u8; + readonly period: u32; + } & Struct; + readonly isCancelRetry: boolean; + readonly asCancelRetry: { + readonly task: ITuple<[u32, u32]>; + } & Struct; + readonly isCancelRetryNamed: boolean; + readonly asCancelRetryNamed: { + readonly id: U8aFixed; + } & Struct; + readonly type: 'Schedule' | 'Cancel' | 'ScheduleNamed' | 'CancelNamed' | 'ScheduleAfter' | 'ScheduleNamedAfter' | 'SetRetry' | 'SetRetryNamed' | 'CancelRetry' | 'CancelRetryNamed'; + } + + /** @name PezpalletGluttonCall (321) */ + interface PezpalletGluttonCall extends Enum { + readonly isInitializePallet: boolean; + readonly asInitializePallet: { + readonly newCount: u32; + readonly witnessCount: Option; + } & Struct; + readonly isSetCompute: boolean; + readonly asSetCompute: { + readonly compute: u64; + } & Struct; + readonly isSetStorage: boolean; + readonly asSetStorage: { + readonly storage: u64; + } & Struct; + readonly isBloat: boolean; + readonly asBloat: { + readonly garbage: Vec; + } & Struct; + readonly isSetBlockLength: boolean; + readonly asSetBlockLength: { + readonly blockLength: u64; + } & Struct; + readonly type: 'InitializePallet' | 'SetCompute' | 'SetStorage' | 'Bloat' | 'SetBlockLength'; + } + + /** @name PezpalletPreimageCall (324) */ + interface PezpalletPreimageCall extends Enum { + readonly isNotePreimage: boolean; + readonly asNotePreimage: { + readonly bytes: Bytes; + } & Struct; + readonly isUnnotePreimage: boolean; + readonly asUnnotePreimage: { + readonly hash_: H256; + } & Struct; + readonly isRequestPreimage: boolean; + readonly asRequestPreimage: { + readonly hash_: H256; + } & Struct; + readonly isUnrequestPreimage: boolean; + readonly asUnrequestPreimage: { + readonly hash_: H256; + } & Struct; + readonly isEnsureUpdated: boolean; + readonly asEnsureUpdated: { + readonly hashes: Vec; + } & Struct; + readonly type: 'NotePreimage' | 'UnnotePreimage' | 'RequestPreimage' | 'UnrequestPreimage' | 'EnsureUpdated'; + } + + /** @name PezpalletProxyCall (326) */ + interface PezpalletProxyCall extends Enum { + readonly isProxy: boolean; + readonly asProxy: { + readonly real: MultiAddress; + readonly forceProxyType: Option; + readonly call: RuntimeCall; + } & Struct; + readonly isAddProxy: boolean; + readonly asAddProxy: { + readonly delegate: MultiAddress; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly delay: u32; + } & Struct; + readonly isRemoveProxy: boolean; + readonly asRemoveProxy: { + readonly delegate: MultiAddress; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly delay: u32; + } & Struct; + readonly isRemoveProxies: boolean; + readonly isCreatePure: boolean; + readonly asCreatePure: { + readonly proxyType: KitchensinkRuntimeProxyType; + readonly delay: u32; + readonly index: u16; + } & Struct; + readonly isKillPure: boolean; + readonly asKillPure: { + readonly spawner: MultiAddress; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly index: u16; + readonly height: Compact; + readonly extIndex: Compact; + } & Struct; + readonly isAnnounce: boolean; + readonly asAnnounce: { + readonly real: MultiAddress; + readonly callHash: H256; + } & Struct; + readonly isRemoveAnnouncement: boolean; + readonly asRemoveAnnouncement: { + readonly real: MultiAddress; + readonly callHash: H256; + } & Struct; + readonly isRejectAnnouncement: boolean; + readonly asRejectAnnouncement: { + readonly delegate: MultiAddress; + readonly callHash: H256; + } & Struct; + readonly isProxyAnnounced: boolean; + readonly asProxyAnnounced: { + readonly delegate: MultiAddress; + readonly real: MultiAddress; + readonly forceProxyType: Option; + readonly call: RuntimeCall; + } & Struct; + readonly isPokeDeposit: boolean; + readonly type: 'Proxy' | 'AddProxy' | 'RemoveProxy' | 'RemoveProxies' | 'CreatePure' | 'KillPure' | 'Announce' | 'RemoveAnnouncement' | 'RejectAnnouncement' | 'ProxyAnnounced' | 'PokeDeposit'; + } + + /** @name PezpalletMultisigCall (328) */ + interface PezpalletMultisigCall extends Enum { + readonly isAsMultiThreshold1: boolean; + readonly asAsMultiThreshold1: { + readonly otherSignatories: Vec; + readonly call: RuntimeCall; + } & Struct; + readonly isAsMulti: boolean; + readonly asAsMulti: { + readonly threshold: u16; + readonly otherSignatories: Vec; + readonly maybeTimepoint: Option; + readonly call: RuntimeCall; + readonly maxWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isApproveAsMulti: boolean; + readonly asApproveAsMulti: { + readonly threshold: u16; + readonly otherSignatories: Vec; + readonly maybeTimepoint: Option; + readonly callHash: U8aFixed; + readonly maxWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isCancelAsMulti: boolean; + readonly asCancelAsMulti: { + readonly threshold: u16; + readonly otherSignatories: Vec; + readonly timepoint: PezpalletMultisigTimepoint; + readonly callHash: U8aFixed; + } & Struct; + readonly isPokeDeposit: boolean; + readonly asPokeDeposit: { + readonly threshold: u16; + readonly otherSignatories: Vec; + readonly callHash: U8aFixed; + } & Struct; + readonly type: 'AsMultiThreshold1' | 'AsMulti' | 'ApproveAsMulti' | 'CancelAsMulti' | 'PokeDeposit'; + } + + /** @name PezpalletBountiesCall (330) */ + interface PezpalletBountiesCall extends Enum { + readonly isProposeBounty: boolean; + readonly asProposeBounty: { + readonly value: Compact; + readonly description: Bytes; + } & Struct; + readonly isApproveBounty: boolean; + readonly asApproveBounty: { + readonly bountyId: Compact; + } & Struct; + readonly isProposeCurator: boolean; + readonly asProposeCurator: { + readonly bountyId: Compact; + readonly curator: MultiAddress; + readonly fee: Compact; + } & Struct; + readonly isUnassignCurator: boolean; + readonly asUnassignCurator: { + readonly bountyId: Compact; + } & Struct; + readonly isAcceptCurator: boolean; + readonly asAcceptCurator: { + readonly bountyId: Compact; + } & Struct; + readonly isAwardBounty: boolean; + readonly asAwardBounty: { + readonly bountyId: Compact; + readonly beneficiary: MultiAddress; + } & Struct; + readonly isClaimBounty: boolean; + readonly asClaimBounty: { + readonly bountyId: Compact; + } & Struct; + readonly isCloseBounty: boolean; + readonly asCloseBounty: { + readonly bountyId: Compact; + } & Struct; + readonly isExtendBountyExpiry: boolean; + readonly asExtendBountyExpiry: { + readonly bountyId: Compact; + readonly remark: Bytes; + } & Struct; + readonly isApproveBountyWithCurator: boolean; + readonly asApproveBountyWithCurator: { + readonly bountyId: Compact; + readonly curator: MultiAddress; + readonly fee: Compact; + } & Struct; + readonly type: 'ProposeBounty' | 'ApproveBounty' | 'ProposeCurator' | 'UnassignCurator' | 'AcceptCurator' | 'AwardBounty' | 'ClaimBounty' | 'CloseBounty' | 'ExtendBountyExpiry' | 'ApproveBountyWithCurator'; + } + + /** @name PezpalletTipsCall (331) */ + interface PezpalletTipsCall extends Enum { + readonly isReportAwesome: boolean; + readonly asReportAwesome: { + readonly reason: Bytes; + readonly who: MultiAddress; + } & Struct; + readonly isRetractTip: boolean; + readonly asRetractTip: { + readonly hash_: H256; + } & Struct; + readonly isTipNew: boolean; + readonly asTipNew: { + readonly reason: Bytes; + readonly who: MultiAddress; + readonly tipValue: Compact; + } & Struct; + readonly isTip: boolean; + readonly asTip: { + readonly hash_: H256; + readonly tipValue: Compact; + } & Struct; + readonly isCloseTip: boolean; + readonly asCloseTip: { + readonly hash_: H256; + } & Struct; + readonly isSlashTip: boolean; + readonly asSlashTip: { + readonly hash_: H256; + } & Struct; + readonly type: 'ReportAwesome' | 'RetractTip' | 'TipNew' | 'Tip' | 'CloseTip' | 'SlashTip'; + } + + /** @name PezpalletAssetsCall (332) */ + interface PezpalletAssetsCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly id: Compact; + readonly admin: MultiAddress; + readonly minBalance: u128; + } & Struct; + readonly isForceCreate: boolean; + readonly asForceCreate: { + readonly id: Compact; + readonly owner: MultiAddress; + readonly isSufficient: bool; + readonly minBalance: Compact; + } & Struct; + readonly isStartDestroy: boolean; + readonly asStartDestroy: { + readonly id: Compact; + } & Struct; + readonly isDestroyAccounts: boolean; + readonly asDestroyAccounts: { + readonly id: Compact; + } & Struct; + readonly isDestroyApprovals: boolean; + readonly asDestroyApprovals: { + readonly id: Compact; + } & Struct; + readonly isFinishDestroy: boolean; + readonly asFinishDestroy: { + readonly id: Compact; + } & Struct; + readonly isMint: boolean; + readonly asMint: { + readonly id: Compact; + readonly beneficiary: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly id: Compact; + readonly who: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly id: Compact; + readonly target: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isTransferKeepAlive: boolean; + readonly asTransferKeepAlive: { + readonly id: Compact; + readonly target: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isForceTransfer: boolean; + readonly asForceTransfer: { + readonly id: Compact; + readonly source: MultiAddress; + readonly dest: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isFreeze: boolean; + readonly asFreeze: { + readonly id: Compact; + readonly who: MultiAddress; + } & Struct; + readonly isThaw: boolean; + readonly asThaw: { + readonly id: Compact; + readonly who: MultiAddress; + } & Struct; + readonly isFreezeAsset: boolean; + readonly asFreezeAsset: { + readonly id: Compact; + } & Struct; + readonly isThawAsset: boolean; + readonly asThawAsset: { + readonly id: Compact; + } & Struct; + readonly isTransferOwnership: boolean; + readonly asTransferOwnership: { + readonly id: Compact; + readonly owner: MultiAddress; + } & Struct; + readonly isSetTeam: boolean; + readonly asSetTeam: { + readonly id: Compact; + readonly issuer: MultiAddress; + readonly admin: MultiAddress; + readonly freezer: MultiAddress; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly id: Compact; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + } & Struct; + readonly isClearMetadata: boolean; + readonly asClearMetadata: { + readonly id: Compact; + } & Struct; + readonly isForceSetMetadata: boolean; + readonly asForceSetMetadata: { + readonly id: Compact; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } & Struct; + readonly isForceClearMetadata: boolean; + readonly asForceClearMetadata: { + readonly id: Compact; + } & Struct; + readonly isForceAssetStatus: boolean; + readonly asForceAssetStatus: { + readonly id: Compact; + readonly owner: MultiAddress; + readonly issuer: MultiAddress; + readonly admin: MultiAddress; + readonly freezer: MultiAddress; + readonly minBalance: Compact; + readonly isSufficient: bool; + readonly isFrozen: bool; + } & Struct; + readonly isApproveTransfer: boolean; + readonly asApproveTransfer: { + readonly id: Compact; + readonly delegate: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isCancelApproval: boolean; + readonly asCancelApproval: { + readonly id: Compact; + readonly delegate: MultiAddress; + } & Struct; + readonly isForceCancelApproval: boolean; + readonly asForceCancelApproval: { + readonly id: Compact; + readonly owner: MultiAddress; + readonly delegate: MultiAddress; + } & Struct; + readonly isTransferApproved: boolean; + readonly asTransferApproved: { + readonly id: Compact; + readonly owner: MultiAddress; + readonly destination: MultiAddress; + readonly amount: Compact; + } & Struct; + readonly isTouch: boolean; + readonly asTouch: { + readonly id: Compact; + } & Struct; + readonly isRefund: boolean; + readonly asRefund: { + readonly id: Compact; + readonly allowBurn: bool; + } & Struct; + readonly isSetMinBalance: boolean; + readonly asSetMinBalance: { + readonly id: Compact; + readonly minBalance: u128; + } & Struct; + readonly isTouchOther: boolean; + readonly asTouchOther: { + readonly id: Compact; + readonly who: MultiAddress; + } & Struct; + readonly isRefundOther: boolean; + readonly asRefundOther: { + readonly id: Compact; + readonly who: MultiAddress; + } & Struct; + readonly isBlock: boolean; + readonly asBlock: { + readonly id: Compact; + readonly who: MultiAddress; + } & Struct; + readonly isTransferAll: boolean; + readonly asTransferAll: { + readonly id: Compact; + readonly dest: MultiAddress; + readonly keepAlive: bool; + } & Struct; + readonly type: 'Create' | 'ForceCreate' | 'StartDestroy' | 'DestroyAccounts' | 'DestroyApprovals' | 'FinishDestroy' | 'Mint' | 'Burn' | 'Transfer' | 'TransferKeepAlive' | 'ForceTransfer' | 'Freeze' | 'Thaw' | 'FreezeAsset' | 'ThawAsset' | 'TransferOwnership' | 'SetTeam' | 'SetMetadata' | 'ClearMetadata' | 'ForceSetMetadata' | 'ForceClearMetadata' | 'ForceAssetStatus' | 'ApproveTransfer' | 'CancelApproval' | 'ForceCancelApproval' | 'TransferApproved' | 'Touch' | 'Refund' | 'SetMinBalance' | 'TouchOther' | 'RefundOther' | 'Block' | 'TransferAll'; + } + + /** @name PezpalletBeefyCall (334) */ + interface PezpalletBeefyCall extends Enum { + readonly isReportDoubleVoting: boolean; + readonly asReportDoubleVoting: { + readonly equivocationProof: PezspConsensusBeefyDoubleVotingProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isReportDoubleVotingUnsigned: boolean; + readonly asReportDoubleVotingUnsigned: { + readonly equivocationProof: PezspConsensusBeefyDoubleVotingProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isSetNewGenesis: boolean; + readonly asSetNewGenesis: { + readonly delayInBlocks: u32; + } & Struct; + readonly isReportForkVoting: boolean; + readonly asReportForkVoting: { + readonly equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isReportForkVotingUnsigned: boolean; + readonly asReportForkVotingUnsigned: { + readonly equivocationProof: PezspConsensusBeefyForkVotingProofAncestryProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isReportFutureBlockVoting: boolean; + readonly asReportFutureBlockVoting: { + readonly equivocationProof: PezspConsensusBeefyFutureBlockVotingProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly isReportFutureBlockVotingUnsigned: boolean; + readonly asReportFutureBlockVotingUnsigned: { + readonly equivocationProof: PezspConsensusBeefyFutureBlockVotingProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly type: 'ReportDoubleVoting' | 'ReportDoubleVotingUnsigned' | 'SetNewGenesis' | 'ReportForkVoting' | 'ReportForkVotingUnsigned' | 'ReportFutureBlockVoting' | 'ReportFutureBlockVotingUnsigned'; + } + + /** @name PezspConsensusBeefyDoubleVotingProof (335) */ + interface PezspConsensusBeefyDoubleVotingProof extends Struct { + readonly first: PezspConsensusBeefyVoteMessage; + readonly second: PezspConsensusBeefyVoteMessage; + } + + /** @name PezspConsensusBeefyEcdsaCryptoSignature (336) */ + interface PezspConsensusBeefyEcdsaCryptoSignature extends U8aFixed {} + + /** @name PezspConsensusBeefyVoteMessage (337) */ + interface PezspConsensusBeefyVoteMessage extends Struct { + readonly commitment: PezspConsensusBeefyCommitment; + readonly id: PezspConsensusBeefyEcdsaCryptoPublic; + readonly signature: PezspConsensusBeefyEcdsaCryptoSignature; + } + + /** @name PezspConsensusBeefyCommitment (338) */ + interface PezspConsensusBeefyCommitment extends Struct { + readonly payload: PezspConsensusBeefyPayload; + readonly blockNumber: u32; + readonly validatorSetId: u64; + } + + /** @name PezspConsensusBeefyPayload (339) */ + interface PezspConsensusBeefyPayload extends Vec> {} + + /** @name PezspConsensusBeefyForkVotingProofAncestryProof (342) */ + interface PezspConsensusBeefyForkVotingProofAncestryProof extends Struct { + readonly vote: PezspConsensusBeefyVoteMessage; + readonly ancestryProof: PezspMmrPrimitivesAncestryProof; + readonly header: PezspRuntimeHeader; + } + + /** @name PezspMmrPrimitivesAncestryProof (343) */ + interface PezspMmrPrimitivesAncestryProof extends Struct { + readonly prevPeaks: Vec; + readonly prevLeafCount: u64; + readonly leafCount: u64; + readonly items: Vec>; + } + + /** @name PezspConsensusBeefyFutureBlockVotingProof (346) */ + interface PezspConsensusBeefyFutureBlockVotingProof extends Struct { + readonly vote: PezspConsensusBeefyVoteMessage; + } + + /** @name PezpalletLotteryCall (347) */ + interface PezpalletLotteryCall extends Enum { + readonly isBuyTicket: boolean; + readonly asBuyTicket: { + readonly call: RuntimeCall; + } & Struct; + readonly isSetCalls: boolean; + readonly asSetCalls: { + readonly calls: Vec; + } & Struct; + readonly isStartLottery: boolean; + readonly asStartLottery: { + readonly price: u128; + readonly length: u32; + readonly delay: u32; + readonly repeat: bool; + } & Struct; + readonly isStopRepeat: boolean; + readonly type: 'BuyTicket' | 'SetCalls' | 'StartLottery' | 'StopRepeat'; + } + + /** @name PezpalletNisCall (348) */ + interface PezpalletNisCall extends Enum { + readonly isPlaceBid: boolean; + readonly asPlaceBid: { + readonly amount: Compact; + readonly duration: u32; + } & Struct; + readonly isRetractBid: boolean; + readonly asRetractBid: { + readonly amount: Compact; + readonly duration: u32; + } & Struct; + readonly isFundDeficit: boolean; + readonly isThawPrivate: boolean; + readonly asThawPrivate: { + readonly index: Compact; + readonly maybeProportion: Option; + } & Struct; + readonly isThawCommunal: boolean; + readonly asThawCommunal: { + readonly index: Compact; + } & Struct; + readonly isCommunify: boolean; + readonly asCommunify: { + readonly index: Compact; + } & Struct; + readonly isPrivatize: boolean; + readonly asPrivatize: { + readonly index: Compact; + } & Struct; + readonly type: 'PlaceBid' | 'RetractBid' | 'FundDeficit' | 'ThawPrivate' | 'ThawCommunal' | 'Communify' | 'Privatize'; + } + + /** @name PezpalletUniquesCall (350) */ + interface PezpalletUniquesCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly collection: u32; + readonly admin: MultiAddress; + } & Struct; + readonly isForceCreate: boolean; + readonly asForceCreate: { + readonly collection: u32; + readonly owner: MultiAddress; + readonly freeHolding: bool; + } & Struct; + readonly isDestroy: boolean; + readonly asDestroy: { + readonly collection: u32; + readonly witness: PezpalletUniquesDestroyWitness; + } & Struct; + readonly isMint: boolean; + readonly asMint: { + readonly collection: u32; + readonly item: u32; + readonly owner: MultiAddress; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly collection: u32; + readonly item: u32; + readonly checkOwner: Option; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly collection: u32; + readonly item: u32; + readonly dest: MultiAddress; + } & Struct; + readonly isRedeposit: boolean; + readonly asRedeposit: { + readonly collection: u32; + readonly items: Vec; + } & Struct; + readonly isFreeze: boolean; + readonly asFreeze: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isThaw: boolean; + readonly asThaw: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isFreezeCollection: boolean; + readonly asFreezeCollection: { + readonly collection: u32; + } & Struct; + readonly isThawCollection: boolean; + readonly asThawCollection: { + readonly collection: u32; + } & Struct; + readonly isTransferOwnership: boolean; + readonly asTransferOwnership: { + readonly collection: u32; + readonly newOwner: MultiAddress; + } & Struct; + readonly isSetTeam: boolean; + readonly asSetTeam: { + readonly collection: u32; + readonly issuer: MultiAddress; + readonly admin: MultiAddress; + readonly freezer: MultiAddress; + } & Struct; + readonly isApproveTransfer: boolean; + readonly asApproveTransfer: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isCancelApproval: boolean; + readonly asCancelApproval: { + readonly collection: u32; + readonly item: u32; + readonly maybeCheckDelegate: Option; + } & Struct; + readonly isForceItemStatus: boolean; + readonly asForceItemStatus: { + readonly collection: u32; + readonly owner: MultiAddress; + readonly issuer: MultiAddress; + readonly admin: MultiAddress; + readonly freezer: MultiAddress; + readonly freeHolding: bool; + readonly isFrozen: bool; + } & Struct; + readonly isSetAttribute: boolean; + readonly asSetAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isClearAttribute: boolean; + readonly asClearAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly key: Bytes; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + readonly isFrozen: bool; + } & Struct; + readonly isClearMetadata: boolean; + readonly asClearMetadata: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isSetCollectionMetadata: boolean; + readonly asSetCollectionMetadata: { + readonly collection: u32; + readonly data: Bytes; + readonly isFrozen: bool; + } & Struct; + readonly isClearCollectionMetadata: boolean; + readonly asClearCollectionMetadata: { + readonly collection: u32; + } & Struct; + readonly isSetAcceptOwnership: boolean; + readonly asSetAcceptOwnership: { + readonly maybeCollection: Option; + } & Struct; + readonly isSetCollectionMaxSupply: boolean; + readonly asSetCollectionMaxSupply: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isSetPrice: boolean; + readonly asSetPrice: { + readonly collection: u32; + readonly item: u32; + readonly price: Option; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isBuyItem: boolean; + readonly asBuyItem: { + readonly collection: u32; + readonly item: u32; + readonly bidPrice: u128; + } & Struct; + readonly type: 'Create' | 'ForceCreate' | 'Destroy' | 'Mint' | 'Burn' | 'Transfer' | 'Redeposit' | 'Freeze' | 'Thaw' | 'FreezeCollection' | 'ThawCollection' | 'TransferOwnership' | 'SetTeam' | 'ApproveTransfer' | 'CancelApproval' | 'ForceItemStatus' | 'SetAttribute' | 'ClearAttribute' | 'SetMetadata' | 'ClearMetadata' | 'SetCollectionMetadata' | 'ClearCollectionMetadata' | 'SetAcceptOwnership' | 'SetCollectionMaxSupply' | 'SetPrice' | 'BuyItem'; + } + + /** @name PezpalletUniquesDestroyWitness (351) */ + interface PezpalletUniquesDestroyWitness extends Struct { + readonly items: Compact; + readonly itemMetadatas: Compact; + readonly attributes: Compact; + } + + /** @name PezpalletNftsCall (353) */ + interface PezpalletNftsCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly admin: MultiAddress; + readonly config: PezpalletNftsCollectionConfig; + } & Struct; + readonly isForceCreate: boolean; + readonly asForceCreate: { + readonly owner: MultiAddress; + readonly config: PezpalletNftsCollectionConfig; + } & Struct; + readonly isDestroy: boolean; + readonly asDestroy: { + readonly collection: u32; + readonly witness: PezpalletNftsDestroyWitness; + } & Struct; + readonly isMint: boolean; + readonly asMint: { + readonly collection: u32; + readonly item: u32; + readonly mintTo: MultiAddress; + readonly witnessData: Option; + } & Struct; + readonly isForceMint: boolean; + readonly asForceMint: { + readonly collection: u32; + readonly item: u32; + readonly mintTo: MultiAddress; + readonly itemConfig: PezpalletNftsItemConfig; + } & Struct; + readonly isBurn: boolean; + readonly asBurn: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly collection: u32; + readonly item: u32; + readonly dest: MultiAddress; + } & Struct; + readonly isRedeposit: boolean; + readonly asRedeposit: { + readonly collection: u32; + readonly items: Vec; + } & Struct; + readonly isLockItemTransfer: boolean; + readonly asLockItemTransfer: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isUnlockItemTransfer: boolean; + readonly asUnlockItemTransfer: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isLockCollection: boolean; + readonly asLockCollection: { + readonly collection: u32; + readonly lockSettings: u64; + } & Struct; + readonly isTransferOwnership: boolean; + readonly asTransferOwnership: { + readonly collection: u32; + readonly newOwner: MultiAddress; + } & Struct; + readonly isSetTeam: boolean; + readonly asSetTeam: { + readonly collection: u32; + readonly issuer: Option; + readonly admin: Option; + readonly freezer: Option; + } & Struct; + readonly isForceCollectionOwner: boolean; + readonly asForceCollectionOwner: { + readonly collection: u32; + readonly owner: MultiAddress; + } & Struct; + readonly isForceCollectionConfig: boolean; + readonly asForceCollectionConfig: { + readonly collection: u32; + readonly config: PezpalletNftsCollectionConfig; + } & Struct; + readonly isApproveTransfer: boolean; + readonly asApproveTransfer: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + readonly maybeDeadline: Option; + } & Struct; + readonly isCancelApproval: boolean; + readonly asCancelApproval: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isClearAllTransferApprovals: boolean; + readonly asClearAllTransferApprovals: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isLockItemProperties: boolean; + readonly asLockItemProperties: { + readonly collection: u32; + readonly item: u32; + readonly lockMetadata: bool; + readonly lockAttributes: bool; + } & Struct; + readonly isSetAttribute: boolean; + readonly asSetAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PezpalletNftsAttributeNamespace; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isForceSetAttribute: boolean; + readonly asForceSetAttribute: { + readonly setAs: Option; + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PezpalletNftsAttributeNamespace; + readonly key: Bytes; + readonly value: Bytes; + } & Struct; + readonly isClearAttribute: boolean; + readonly asClearAttribute: { + readonly collection: u32; + readonly maybeItem: Option; + readonly namespace: PezpalletNftsAttributeNamespace; + readonly key: Bytes; + } & Struct; + readonly isApproveItemAttributes: boolean; + readonly asApproveItemAttributes: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + } & Struct; + readonly isCancelItemAttributesApproval: boolean; + readonly asCancelItemAttributesApproval: { + readonly collection: u32; + readonly item: u32; + readonly delegate: MultiAddress; + readonly witness: PezpalletNftsCancelAttributesApprovalWitness; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly collection: u32; + readonly item: u32; + readonly data: Bytes; + } & Struct; + readonly isClearMetadata: boolean; + readonly asClearMetadata: { + readonly collection: u32; + readonly item: u32; + } & Struct; + readonly isSetCollectionMetadata: boolean; + readonly asSetCollectionMetadata: { + readonly collection: u32; + readonly data: Bytes; + } & Struct; + readonly isClearCollectionMetadata: boolean; + readonly asClearCollectionMetadata: { + readonly collection: u32; + } & Struct; + readonly isSetAcceptOwnership: boolean; + readonly asSetAcceptOwnership: { + readonly maybeCollection: Option; + } & Struct; + readonly isSetCollectionMaxSupply: boolean; + readonly asSetCollectionMaxSupply: { + readonly collection: u32; + readonly maxSupply: u32; + } & Struct; + readonly isUpdateMintSettings: boolean; + readonly asUpdateMintSettings: { + readonly collection: u32; + readonly mintSettings: PezpalletNftsMintSettings; + } & Struct; + readonly isSetPrice: boolean; + readonly asSetPrice: { + readonly collection: u32; + readonly item: u32; + readonly price: Option; + readonly whitelistedBuyer: Option; + } & Struct; + readonly isBuyItem: boolean; + readonly asBuyItem: { + readonly collection: u32; + readonly item: u32; + readonly bidPrice: u128; + } & Struct; + readonly isPayTips: boolean; + readonly asPayTips: { + readonly tips: Vec; + } & Struct; + readonly isCreateSwap: boolean; + readonly asCreateSwap: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + readonly desiredCollection: u32; + readonly maybeDesiredItem: Option; + readonly maybePrice: Option; + readonly duration: u32; + } & Struct; + readonly isCancelSwap: boolean; + readonly asCancelSwap: { + readonly offeredCollection: u32; + readonly offeredItem: u32; + } & Struct; + readonly isClaimSwap: boolean; + readonly asClaimSwap: { + readonly sendCollection: u32; + readonly sendItem: u32; + readonly receiveCollection: u32; + readonly receiveItem: u32; + readonly witnessPrice: Option; + } & Struct; + readonly isMintPreSigned: boolean; + readonly asMintPreSigned: { + readonly mintData: PezpalletNftsPreSignedMint; + readonly signature: PezspRuntimeMultiSignature; + readonly signer: AccountId32; + } & Struct; + readonly isSetAttributesPreSigned: boolean; + readonly asSetAttributesPreSigned: { + readonly data: PezpalletNftsPreSignedAttributes; + readonly signature: PezspRuntimeMultiSignature; + readonly signer: AccountId32; + } & Struct; + readonly type: 'Create' | 'ForceCreate' | 'Destroy' | 'Mint' | 'ForceMint' | 'Burn' | 'Transfer' | 'Redeposit' | 'LockItemTransfer' | 'UnlockItemTransfer' | 'LockCollection' | 'TransferOwnership' | 'SetTeam' | 'ForceCollectionOwner' | 'ForceCollectionConfig' | 'ApproveTransfer' | 'CancelApproval' | 'ClearAllTransferApprovals' | 'LockItemProperties' | 'SetAttribute' | 'ForceSetAttribute' | 'ClearAttribute' | 'ApproveItemAttributes' | 'CancelItemAttributesApproval' | 'SetMetadata' | 'ClearMetadata' | 'SetCollectionMetadata' | 'ClearCollectionMetadata' | 'SetAcceptOwnership' | 'SetCollectionMaxSupply' | 'UpdateMintSettings' | 'SetPrice' | 'BuyItem' | 'PayTips' | 'CreateSwap' | 'CancelSwap' | 'ClaimSwap' | 'MintPreSigned' | 'SetAttributesPreSigned'; + } + + /** @name PezpalletNftsCollectionConfig (354) */ + interface PezpalletNftsCollectionConfig extends Struct { + readonly settings: u64; + readonly maxSupply: Option; + readonly mintSettings: PezpalletNftsMintSettings; + } + + /** @name PezpalletNftsCollectionSetting (356) */ + interface PezpalletNftsCollectionSetting extends Enum { + readonly isTransferableItems: boolean; + readonly isUnlockedMetadata: boolean; + readonly isUnlockedAttributes: boolean; + readonly isUnlockedMaxSupply: boolean; + readonly isDepositRequired: boolean; + readonly type: 'TransferableItems' | 'UnlockedMetadata' | 'UnlockedAttributes' | 'UnlockedMaxSupply' | 'DepositRequired'; + } + + /** @name PezpalletNftsMintSettings (357) */ + interface PezpalletNftsMintSettings extends Struct { + readonly mintType: PezpalletNftsMintType; + readonly price: Option; + readonly startBlock: Option; + readonly endBlock: Option; + readonly defaultItemSettings: u64; + } + + /** @name PezpalletNftsMintType (358) */ + interface PezpalletNftsMintType extends Enum { + readonly isIssuer: boolean; + readonly isPublic: boolean; + readonly isHolderOf: boolean; + readonly asHolderOf: u32; + readonly type: 'Issuer' | 'Public' | 'HolderOf'; + } + + /** @name PezpalletNftsItemSetting (360) */ + interface PezpalletNftsItemSetting extends Enum { + readonly isTransferable: boolean; + readonly isUnlockedMetadata: boolean; + readonly isUnlockedAttributes: boolean; + readonly type: 'Transferable' | 'UnlockedMetadata' | 'UnlockedAttributes'; + } + + /** @name PezpalletNftsDestroyWitness (361) */ + interface PezpalletNftsDestroyWitness extends Struct { + readonly itemMetadatas: Compact; + readonly itemConfigs: Compact; + readonly attributes: Compact; + } + + /** @name PezpalletNftsMintWitness (363) */ + interface PezpalletNftsMintWitness extends Struct { + readonly ownedItem: Option; + readonly mintPrice: Option; + } + + /** @name PezpalletNftsItemConfig (364) */ + interface PezpalletNftsItemConfig extends Struct { + readonly settings: u64; + } + + /** @name PezpalletNftsCancelAttributesApprovalWitness (365) */ + interface PezpalletNftsCancelAttributesApprovalWitness extends Struct { + readonly accountAttributes: u32; + } + + /** @name PezpalletNftsItemTip (367) */ + interface PezpalletNftsItemTip extends Struct { + readonly collection: u32; + readonly item: u32; + readonly receiver: AccountId32; + readonly amount: u128; + } + + /** @name PezpalletNftsPreSignedMint (369) */ + interface PezpalletNftsPreSignedMint extends Struct { + readonly collection: u32; + readonly item: u32; + readonly attributes: Vec>; + readonly metadata: Bytes; + readonly onlyAccount: Option; + readonly deadline: u32; + readonly mintPrice: Option; + } + + /** @name PezpalletNftsPreSignedAttributes (370) */ + interface PezpalletNftsPreSignedAttributes extends Struct { + readonly collection: u32; + readonly item: u32; + readonly attributes: Vec>; + readonly namespace: PezpalletNftsAttributeNamespace; + readonly deadline: u32; + } + + /** @name PezpalletNftFractionalizationCall (371) */ + interface PezpalletNftFractionalizationCall extends Enum { + readonly isFractionalize: boolean; + readonly asFractionalize: { + readonly nftCollectionId: u32; + readonly nftId: u32; + readonly assetId: u32; + readonly beneficiary: MultiAddress; + readonly fractions: u128; + } & Struct; + readonly isUnify: boolean; + readonly asUnify: { + readonly nftCollectionId: u32; + readonly nftId: u32; + readonly assetId: u32; + readonly beneficiary: MultiAddress; + } & Struct; + readonly type: 'Fractionalize' | 'Unify'; + } + + /** @name PezpalletSalaryCall (372) */ + interface PezpalletSalaryCall extends Enum { + readonly isInit: boolean; + readonly isBump: boolean; + readonly isInduct: boolean; + readonly isRegister: boolean; + readonly isPayout: boolean; + readonly isPayoutOther: boolean; + readonly asPayoutOther: { + readonly beneficiary: AccountId32; + } & Struct; + readonly isCheckPayment: boolean; + readonly type: 'Init' | 'Bump' | 'Induct' | 'Register' | 'Payout' | 'PayoutOther' | 'CheckPayment'; + } + + /** @name PezpalletCoreFellowshipCall (373) */ + interface PezpalletCoreFellowshipCall extends Enum { + readonly isBump: boolean; + readonly asBump: { + readonly who: AccountId32; + } & Struct; + readonly isSetParams: boolean; + readonly asSetParams: { + readonly params: PezpalletCoreFellowshipParamsTypeU128; + } & Struct; + readonly isSetActive: boolean; + readonly asSetActive: { + readonly isActive: bool; + } & Struct; + readonly isApprove: boolean; + readonly asApprove: { + readonly who: AccountId32; + readonly atRank: u16; + } & Struct; + readonly isInduct: boolean; + readonly asInduct: { + readonly who: AccountId32; + } & Struct; + readonly isPromote: boolean; + readonly asPromote: { + readonly who: AccountId32; + readonly toRank: u16; + } & Struct; + readonly isOffboard: boolean; + readonly asOffboard: { + readonly who: AccountId32; + } & Struct; + readonly isSubmitEvidence: boolean; + readonly asSubmitEvidence: { + readonly wish: PezpalletCoreFellowshipWish; + readonly evidence: Bytes; + } & Struct; + readonly isImport: boolean; + readonly isSetPartialParams: boolean; + readonly asSetPartialParams: { + readonly partialParams: PezpalletCoreFellowshipParamsTypeOption; + } & Struct; + readonly isPromoteFast: boolean; + readonly asPromoteFast: { + readonly who: AccountId32; + readonly toRank: u16; + } & Struct; + readonly isImportMember: boolean; + readonly asImportMember: { + readonly who: AccountId32; + } & Struct; + readonly type: 'Bump' | 'SetParams' | 'SetActive' | 'Approve' | 'Induct' | 'Promote' | 'Offboard' | 'SubmitEvidence' | 'Import' | 'SetPartialParams' | 'PromoteFast' | 'ImportMember'; + } + + /** @name PezpalletCoreFellowshipParamsTypeOption (374) */ + interface PezpalletCoreFellowshipParamsTypeOption extends Struct { + readonly activeSalary: Vec>; + readonly passiveSalary: Vec>; + readonly demotionPeriod: Vec>; + readonly minPromotionPeriod: Vec>; + readonly offboardTimeout: Option; + } + + /** @name PezpalletTransactionStorageCall (379) */ + interface PezpalletTransactionStorageCall extends Enum { + readonly isStore: boolean; + readonly asStore: { + readonly data: Bytes; + } & Struct; + readonly isRenew: boolean; + readonly asRenew: { + readonly block: u32; + readonly index: u32; + } & Struct; + readonly isCheckProof: boolean; + readonly asCheckProof: { + readonly proof: PezspTransactionStorageProofTransactionStorageProof; + } & Struct; + readonly type: 'Store' | 'Renew' | 'CheckProof'; + } + + /** @name PezspTransactionStorageProofTransactionStorageProof (380) */ + interface PezspTransactionStorageProofTransactionStorageProof extends Struct { + readonly chunk: Bytes; + readonly proof: Vec; + } + + /** @name PezpalletBagsListCall (381) */ + interface PezpalletBagsListCall extends Enum { + readonly isRebag: boolean; + readonly asRebag: { + readonly dislocated: MultiAddress; + } & Struct; + readonly isPutInFrontOf: boolean; + readonly asPutInFrontOf: { + readonly lighter: MultiAddress; + } & Struct; + readonly isPutInFrontOfOther: boolean; + readonly asPutInFrontOfOther: { + readonly heavier: MultiAddress; + readonly lighter: MultiAddress; + } & Struct; + readonly type: 'Rebag' | 'PutInFrontOf' | 'PutInFrontOfOther'; + } + + /** @name PezpalletStateTrieMigrationCall (382) */ + interface PezpalletStateTrieMigrationCall extends Enum { + readonly isControlAutoMigration: boolean; + readonly asControlAutoMigration: { + readonly maybeConfig: Option; + } & Struct; + readonly isContinueMigrate: boolean; + readonly asContinueMigrate: { + readonly limits: PezpalletStateTrieMigrationMigrationLimits; + readonly realSizeUpper: u32; + readonly witnessTask: PezpalletStateTrieMigrationMigrationTask; + } & Struct; + readonly isMigrateCustomTop: boolean; + readonly asMigrateCustomTop: { + readonly keys_: Vec; + readonly witnessSize: u32; + } & Struct; + readonly isMigrateCustomChild: boolean; + readonly asMigrateCustomChild: { + readonly root: Bytes; + readonly childKeys: Vec; + readonly totalSize: u32; + } & Struct; + readonly isSetSignedMaxLimits: boolean; + readonly asSetSignedMaxLimits: { + readonly limits: PezpalletStateTrieMigrationMigrationLimits; + } & Struct; + readonly isForceSetProgress: boolean; + readonly asForceSetProgress: { + readonly progressTop: PezpalletStateTrieMigrationProgress; + readonly progressChild: PezpalletStateTrieMigrationProgress; + } & Struct; + readonly type: 'ControlAutoMigration' | 'ContinueMigrate' | 'MigrateCustomTop' | 'MigrateCustomChild' | 'SetSignedMaxLimits' | 'ForceSetProgress'; + } + + /** @name PezpalletStateTrieMigrationMigrationLimits (384) */ + interface PezpalletStateTrieMigrationMigrationLimits extends Struct { + readonly size_: u32; + readonly item: u32; + } + + /** @name PezpalletStateTrieMigrationMigrationTask (385) */ + interface PezpalletStateTrieMigrationMigrationTask extends Struct { + readonly progressTop: PezpalletStateTrieMigrationProgress; + readonly progressChild: PezpalletStateTrieMigrationProgress; + readonly size_: u32; + readonly topItems: u32; + readonly childItems: u32; + } + + /** @name PezpalletStateTrieMigrationProgress (386) */ + interface PezpalletStateTrieMigrationProgress extends Enum { + readonly isToStart: boolean; + readonly isLastKey: boolean; + readonly asLastKey: Bytes; + readonly isComplete: boolean; + readonly type: 'ToStart' | 'LastKey' | 'Complete'; + } + + /** @name PezpalletChildBountiesCall (388) */ + interface PezpalletChildBountiesCall extends Enum { + readonly isAddChildBounty: boolean; + readonly asAddChildBounty: { + readonly parentBountyId: Compact; + readonly value: Compact; + readonly description: Bytes; + } & Struct; + readonly isProposeCurator: boolean; + readonly asProposeCurator: { + readonly parentBountyId: Compact; + readonly childBountyId: Compact; + readonly curator: MultiAddress; + readonly fee: Compact; + } & Struct; + readonly isAcceptCurator: boolean; + readonly asAcceptCurator: { + readonly parentBountyId: Compact; + readonly childBountyId: Compact; + } & Struct; + readonly isUnassignCurator: boolean; + readonly asUnassignCurator: { + readonly parentBountyId: Compact; + readonly childBountyId: Compact; + } & Struct; + readonly isAwardChildBounty: boolean; + readonly asAwardChildBounty: { + readonly parentBountyId: Compact; + readonly childBountyId: Compact; + readonly beneficiary: MultiAddress; + } & Struct; + readonly isClaimChildBounty: boolean; + readonly asClaimChildBounty: { + readonly parentBountyId: Compact; + readonly childBountyId: Compact; + } & Struct; + readonly isCloseChildBounty: boolean; + readonly asCloseChildBounty: { + readonly parentBountyId: Compact; + readonly childBountyId: Compact; + } & Struct; + readonly type: 'AddChildBounty' | 'ProposeCurator' | 'AcceptCurator' | 'UnassignCurator' | 'AwardChildBounty' | 'ClaimChildBounty' | 'CloseChildBounty'; + } + + /** @name PezpalletReferendaCall (389) */ + interface PezpalletReferendaCall extends Enum { + readonly isSubmit: boolean; + readonly asSubmit: { + readonly proposalOrigin: KitchensinkRuntimeOriginCaller; + readonly proposal: PezframeSupportPreimagesBounded; + readonly enactmentMoment: PezframeSupportScheduleDispatchTime; + } & Struct; + readonly isPlaceDecisionDeposit: boolean; + readonly asPlaceDecisionDeposit: { + readonly index: u32; + } & Struct; + readonly isRefundDecisionDeposit: boolean; + readonly asRefundDecisionDeposit: { + readonly index: u32; + } & Struct; + readonly isCancel: boolean; + readonly asCancel: { + readonly index: u32; + } & Struct; + readonly isKill: boolean; + readonly asKill: { + readonly index: u32; + } & Struct; + readonly isNudgeReferendum: boolean; + readonly asNudgeReferendum: { + readonly index: u32; + } & Struct; + readonly isOneFewerDeciding: boolean; + readonly asOneFewerDeciding: { + readonly track: u16; + } & Struct; + readonly isRefundSubmissionDeposit: boolean; + readonly asRefundSubmissionDeposit: { + readonly index: u32; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly index: u32; + readonly maybeHash: Option; + } & Struct; + readonly type: 'Submit' | 'PlaceDecisionDeposit' | 'RefundDecisionDeposit' | 'Cancel' | 'Kill' | 'NudgeReferendum' | 'OneFewerDeciding' | 'RefundSubmissionDeposit' | 'SetMetadata'; + } + + /** @name PezframeSupportScheduleDispatchTime (390) */ + interface PezframeSupportScheduleDispatchTime extends Enum { + readonly isAt: boolean; + readonly asAt: u32; + readonly isAfter: boolean; + readonly asAfter: u32; + readonly type: 'At' | 'After'; + } + + /** @name PezpalletRemarkCall (391) */ + interface PezpalletRemarkCall extends Enum { + readonly isStore: boolean; + readonly asStore: { + readonly remark: Bytes; + } & Struct; + readonly type: 'Store'; + } + + /** @name PezpalletRootTestingCall (392) */ + interface PezpalletRootTestingCall extends Enum { + readonly isFillBlock: boolean; + readonly asFillBlock: { + readonly ratio: Perbill; + } & Struct; + readonly isTriggerDefensive: boolean; + readonly type: 'FillBlock' | 'TriggerDefensive'; + } + + /** @name PezpalletConvictionVotingCall (393) */ + interface PezpalletConvictionVotingCall extends Enum { + readonly isVote: boolean; + readonly asVote: { + readonly pollIndex: Compact; + readonly vote: PezpalletConvictionVotingVoteAccountVote; + } & Struct; + readonly isDelegate: boolean; + readonly asDelegate: { + readonly class: u16; + readonly to: MultiAddress; + readonly conviction: PezpalletConvictionVotingConviction; + readonly balance: u128; + } & Struct; + readonly isUndelegate: boolean; + readonly asUndelegate: { + readonly class: u16; + } & Struct; + readonly isUnlock: boolean; + readonly asUnlock: { + readonly class: u16; + readonly target: MultiAddress; + } & Struct; + readonly isRemoveVote: boolean; + readonly asRemoveVote: { + readonly class: Option; + readonly index: u32; + } & Struct; + readonly isRemoveOtherVote: boolean; + readonly asRemoveOtherVote: { + readonly target: MultiAddress; + readonly class: u16; + readonly index: u32; + } & Struct; + readonly type: 'Vote' | 'Delegate' | 'Undelegate' | 'Unlock' | 'RemoveVote' | 'RemoveOtherVote'; + } + + /** @name PezpalletConvictionVotingVoteAccountVote (394) */ + interface PezpalletConvictionVotingVoteAccountVote extends Enum { + readonly isStandard: boolean; + readonly asStandard: { + readonly vote: Vote; + readonly balance: u128; + } & Struct; + readonly isSplit: boolean; + readonly asSplit: { + readonly aye: u128; + readonly nay: u128; + } & Struct; + readonly isSplitAbstain: boolean; + readonly asSplitAbstain: { + readonly aye: u128; + readonly nay: u128; + readonly abstain: u128; + } & Struct; + readonly type: 'Standard' | 'Split' | 'SplitAbstain'; + } + + /** @name PezpalletConvictionVotingConviction (396) */ + interface PezpalletConvictionVotingConviction extends Enum { + readonly isNone: boolean; + readonly isLocked1x: boolean; + readonly isLocked2x: boolean; + readonly isLocked3x: boolean; + readonly isLocked4x: boolean; + readonly isLocked5x: boolean; + readonly isLocked6x: boolean; + readonly type: 'None' | 'Locked1x' | 'Locked2x' | 'Locked3x' | 'Locked4x' | 'Locked5x' | 'Locked6x'; + } + + /** @name PezpalletWhitelistCall (397) */ + interface PezpalletWhitelistCall extends Enum { + readonly isWhitelistCall: boolean; + readonly asWhitelistCall: { + readonly callHash: H256; + } & Struct; + readonly isRemoveWhitelistedCall: boolean; + readonly asRemoveWhitelistedCall: { + readonly callHash: H256; + } & Struct; + readonly isDispatchWhitelistedCall: boolean; + readonly asDispatchWhitelistedCall: { + readonly callHash: H256; + readonly callEncodedLen: u32; + readonly callWeightWitness: PezspWeightsWeightV2Weight; + } & Struct; + readonly isDispatchWhitelistedCallWithPreimage: boolean; + readonly asDispatchWhitelistedCallWithPreimage: { + readonly call: RuntimeCall; + } & Struct; + readonly type: 'WhitelistCall' | 'RemoveWhitelistedCall' | 'DispatchWhitelistedCall' | 'DispatchWhitelistedCallWithPreimage'; + } + + /** @name PezpalletAllianceCall (399) */ + interface PezpalletAllianceCall extends Enum { + readonly isPropose: boolean; + readonly asPropose: { + readonly threshold: Compact; + readonly proposal: RuntimeCall; + readonly lengthBound: Compact; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly proposal: H256; + readonly index: Compact; + readonly approve: bool; + } & Struct; + readonly isInitMembers: boolean; + readonly asInitMembers: { + readonly fellows: Vec; + readonly allies: Vec; + } & Struct; + readonly isDisband: boolean; + readonly asDisband: { + readonly witness: PezpalletAllianceDisbandWitness; + } & Struct; + readonly isSetRule: boolean; + readonly asSetRule: { + readonly rule: PezpalletAllianceCid; + } & Struct; + readonly isAnnounce: boolean; + readonly asAnnounce: { + readonly announcement: PezpalletAllianceCid; + } & Struct; + readonly isRemoveAnnouncement: boolean; + readonly asRemoveAnnouncement: { + readonly announcement: PezpalletAllianceCid; + } & Struct; + readonly isJoinAlliance: boolean; + readonly isNominateAlly: boolean; + readonly asNominateAlly: { + readonly who: MultiAddress; + } & Struct; + readonly isElevateAlly: boolean; + readonly asElevateAlly: { + readonly ally: MultiAddress; + } & Struct; + readonly isGiveRetirementNotice: boolean; + readonly isRetire: boolean; + readonly isKickMember: boolean; + readonly asKickMember: { + readonly who: MultiAddress; + } & Struct; + readonly isAddUnscrupulousItems: boolean; + readonly asAddUnscrupulousItems: { + readonly items: Vec; + } & Struct; + readonly isRemoveUnscrupulousItems: boolean; + readonly asRemoveUnscrupulousItems: { + readonly items: Vec; + } & Struct; + readonly isClose: boolean; + readonly asClose: { + readonly proposalHash: H256; + readonly index: Compact; + readonly proposalWeightBound: PezspWeightsWeightV2Weight; + readonly lengthBound: Compact; + } & Struct; + readonly isAbdicateFellowStatus: boolean; + readonly type: 'Propose' | 'Vote' | 'InitMembers' | 'Disband' | 'SetRule' | 'Announce' | 'RemoveAnnouncement' | 'JoinAlliance' | 'NominateAlly' | 'ElevateAlly' | 'GiveRetirementNotice' | 'Retire' | 'KickMember' | 'AddUnscrupulousItems' | 'RemoveUnscrupulousItems' | 'Close' | 'AbdicateFellowStatus'; + } + + /** @name PezpalletAllianceDisbandWitness (400) */ + interface PezpalletAllianceDisbandWitness extends Struct { + readonly fellowMembers: Compact; + readonly allyMembers: Compact; + } + + /** @name PezpalletAllianceCid (401) */ + interface PezpalletAllianceCid extends Struct { + readonly version: PezpalletAllianceVersion; + readonly codec: u64; + readonly hash_: PezpalletAllianceMultihash; + } + + /** @name PezpalletAllianceVersion (402) */ + interface PezpalletAllianceVersion extends Enum { + readonly isV0: boolean; + readonly isV1: boolean; + readonly type: 'V0' | 'V1'; + } + + /** @name PezpalletAllianceMultihash (403) */ + interface PezpalletAllianceMultihash extends Struct { + readonly code: u64; + readonly digest: Bytes; + } + + /** @name PezpalletAllianceUnscrupulousItem (406) */ + interface PezpalletAllianceUnscrupulousItem extends Enum { + readonly isAccountId: boolean; + readonly asAccountId: AccountId32; + readonly isWebsite: boolean; + readonly asWebsite: Bytes; + readonly type: 'AccountId' | 'Website'; + } + + /** @name PezpalletNominationPoolsCall (408) */ + interface PezpalletNominationPoolsCall extends Enum { + readonly isJoin: boolean; + readonly asJoin: { + readonly amount: Compact; + readonly poolId: u32; + } & Struct; + readonly isBondExtra: boolean; + readonly asBondExtra: { + readonly extra: PezpalletNominationPoolsBondExtra; + } & Struct; + readonly isClaimPayout: boolean; + readonly isUnbond: boolean; + readonly asUnbond: { + readonly memberAccount: MultiAddress; + readonly unbondingPoints: Compact; + } & Struct; + readonly isPoolWithdrawUnbonded: boolean; + readonly asPoolWithdrawUnbonded: { + readonly poolId: u32; + readonly numSlashingSpans: u32; + } & Struct; + readonly isWithdrawUnbonded: boolean; + readonly asWithdrawUnbonded: { + readonly memberAccount: MultiAddress; + readonly numSlashingSpans: u32; + } & Struct; + readonly isCreate: boolean; + readonly asCreate: { + readonly amount: Compact; + readonly root: MultiAddress; + readonly nominator: MultiAddress; + readonly bouncer: MultiAddress; + } & Struct; + readonly isCreateWithPoolId: boolean; + readonly asCreateWithPoolId: { + readonly amount: Compact; + readonly root: MultiAddress; + readonly nominator: MultiAddress; + readonly bouncer: MultiAddress; + readonly poolId: u32; + } & Struct; + readonly isNominate: boolean; + readonly asNominate: { + readonly poolId: u32; + readonly validators: Vec; + } & Struct; + readonly isSetState: boolean; + readonly asSetState: { + readonly poolId: u32; + readonly state: PezpalletNominationPoolsPoolState; + } & Struct; + readonly isSetMetadata: boolean; + readonly asSetMetadata: { + readonly poolId: u32; + readonly metadata: Bytes; + } & Struct; + readonly isSetConfigs: boolean; + readonly asSetConfigs: { + readonly minJoinBond: PezpalletNominationPoolsConfigOpU128; + readonly minCreateBond: PezpalletNominationPoolsConfigOpU128; + readonly maxPools: PezpalletNominationPoolsConfigOpU32; + readonly maxMembers: PezpalletNominationPoolsConfigOpU32; + readonly maxMembersPerPool: PezpalletNominationPoolsConfigOpU32; + readonly globalMaxCommission: PezpalletNominationPoolsConfigOpPerbill; + } & Struct; + readonly isUpdateRoles: boolean; + readonly asUpdateRoles: { + readonly poolId: u32; + readonly newRoot: PezpalletNominationPoolsConfigOpAccountId32; + readonly newNominator: PezpalletNominationPoolsConfigOpAccountId32; + readonly newBouncer: PezpalletNominationPoolsConfigOpAccountId32; + } & Struct; + readonly isChill: boolean; + readonly asChill: { + readonly poolId: u32; + } & Struct; + readonly isBondExtraOther: boolean; + readonly asBondExtraOther: { + readonly member: MultiAddress; + readonly extra: PezpalletNominationPoolsBondExtra; + } & Struct; + readonly isSetClaimPermission: boolean; + readonly asSetClaimPermission: { + readonly permission: PezpalletNominationPoolsClaimPermission; + } & Struct; + readonly isClaimPayoutOther: boolean; + readonly asClaimPayoutOther: { + readonly other: AccountId32; + } & Struct; + readonly isSetCommission: boolean; + readonly asSetCommission: { + readonly poolId: u32; + readonly newCommission: Option>; + } & Struct; + readonly isSetCommissionMax: boolean; + readonly asSetCommissionMax: { + readonly poolId: u32; + readonly maxCommission: Perbill; + } & Struct; + readonly isSetCommissionChangeRate: boolean; + readonly asSetCommissionChangeRate: { + readonly poolId: u32; + readonly changeRate: PezpalletNominationPoolsCommissionChangeRate; + } & Struct; + readonly isClaimCommission: boolean; + readonly asClaimCommission: { + readonly poolId: u32; + } & Struct; + readonly isAdjustPoolDeposit: boolean; + readonly asAdjustPoolDeposit: { + readonly poolId: u32; + } & Struct; + readonly isSetCommissionClaimPermission: boolean; + readonly asSetCommissionClaimPermission: { + readonly poolId: u32; + readonly permission: Option; + } & Struct; + readonly isApplySlash: boolean; + readonly asApplySlash: { + readonly memberAccount: MultiAddress; + } & Struct; + readonly isMigrateDelegation: boolean; + readonly asMigrateDelegation: { + readonly memberAccount: MultiAddress; + } & Struct; + readonly isMigratePoolToDelegateStake: boolean; + readonly asMigratePoolToDelegateStake: { + readonly poolId: u32; + } & Struct; + readonly type: 'Join' | 'BondExtra' | 'ClaimPayout' | 'Unbond' | 'PoolWithdrawUnbonded' | 'WithdrawUnbonded' | 'Create' | 'CreateWithPoolId' | 'Nominate' | 'SetState' | 'SetMetadata' | 'SetConfigs' | 'UpdateRoles' | 'Chill' | 'BondExtraOther' | 'SetClaimPermission' | 'ClaimPayoutOther' | 'SetCommission' | 'SetCommissionMax' | 'SetCommissionChangeRate' | 'ClaimCommission' | 'AdjustPoolDeposit' | 'SetCommissionClaimPermission' | 'ApplySlash' | 'MigrateDelegation' | 'MigratePoolToDelegateStake'; + } + + /** @name PezpalletNominationPoolsBondExtra (409) */ + interface PezpalletNominationPoolsBondExtra extends Enum { + readonly isFreeBalance: boolean; + readonly asFreeBalance: u128; + readonly isRewards: boolean; + readonly type: 'FreeBalance' | 'Rewards'; + } + + /** @name PezpalletNominationPoolsPoolState (410) */ + interface PezpalletNominationPoolsPoolState extends Enum { + readonly isOpen: boolean; + readonly isBlocked: boolean; + readonly isDestroying: boolean; + readonly type: 'Open' | 'Blocked' | 'Destroying'; + } + + /** @name PezpalletNominationPoolsConfigOpU128 (411) */ + interface PezpalletNominationPoolsConfigOpU128 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: u128; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletNominationPoolsConfigOpU32 (412) */ + interface PezpalletNominationPoolsConfigOpU32 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: u32; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletNominationPoolsConfigOpPerbill (413) */ + interface PezpalletNominationPoolsConfigOpPerbill extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: Perbill; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletNominationPoolsConfigOpAccountId32 (414) */ + interface PezpalletNominationPoolsConfigOpAccountId32 extends Enum { + readonly isNoop: boolean; + readonly isSet: boolean; + readonly asSet: AccountId32; + readonly isRemove: boolean; + readonly type: 'Noop' | 'Set' | 'Remove'; + } + + /** @name PezpalletNominationPoolsClaimPermission (415) */ + interface PezpalletNominationPoolsClaimPermission extends Enum { + readonly isPermissioned: boolean; + readonly isPermissionlessCompound: boolean; + readonly isPermissionlessWithdraw: boolean; + readonly isPermissionlessAll: boolean; + readonly type: 'Permissioned' | 'PermissionlessCompound' | 'PermissionlessWithdraw' | 'PermissionlessAll'; + } + + /** @name PezpalletNominationPoolsCommissionChangeRate (418) */ + interface PezpalletNominationPoolsCommissionChangeRate extends Struct { + readonly maxIncrease: Perbill; + readonly minDelay: u32; + } + + /** @name PezpalletNominationPoolsCommissionClaimPermission (420) */ + interface PezpalletNominationPoolsCommissionClaimPermission extends Enum { + readonly isPermissionless: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId32; + readonly type: 'Permissionless' | 'Account'; + } + + /** @name PezpalletRankedCollectiveCall (422) */ + interface PezpalletRankedCollectiveCall extends Enum { + readonly isAddMember: boolean; + readonly asAddMember: { + readonly who: MultiAddress; + } & Struct; + readonly isPromoteMember: boolean; + readonly asPromoteMember: { + readonly who: MultiAddress; + } & Struct; + readonly isDemoteMember: boolean; + readonly asDemoteMember: { + readonly who: MultiAddress; + } & Struct; + readonly isRemoveMember: boolean; + readonly asRemoveMember: { + readonly who: MultiAddress; + readonly minRank: u16; + } & Struct; + readonly isVote: boolean; + readonly asVote: { + readonly poll: u32; + readonly aye: bool; + } & Struct; + readonly isCleanupPoll: boolean; + readonly asCleanupPoll: { + readonly pollIndex: u32; + readonly max: u32; + } & Struct; + readonly isExchangeMember: boolean; + readonly asExchangeMember: { + readonly who: MultiAddress; + readonly newWho: MultiAddress; + } & Struct; + readonly type: 'AddMember' | 'PromoteMember' | 'DemoteMember' | 'RemoveMember' | 'Vote' | 'CleanupPoll' | 'ExchangeMember'; + } + + /** @name PezpalletAssetConversionCall (423) */ + interface PezpalletAssetConversionCall extends Enum { + readonly isCreatePool: boolean; + readonly asCreatePool: { + readonly asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + } & Struct; + readonly isAddLiquidity: boolean; + readonly asAddLiquidity: { + readonly asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly amount1Desired: u128; + readonly amount2Desired: u128; + readonly amount1Min: u128; + readonly amount2Min: u128; + readonly mintTo: AccountId32; + } & Struct; + readonly isRemoveLiquidity: boolean; + readonly asRemoveLiquidity: { + readonly asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly lpTokenBurn: u128; + readonly amount1MinReceive: u128; + readonly amount2MinReceive: u128; + readonly withdrawTo: AccountId32; + } & Struct; + readonly isSwapExactTokensForTokens: boolean; + readonly asSwapExactTokensForTokens: { + readonly path: Vec; + readonly amountIn: u128; + readonly amountOutMin: u128; + readonly sendTo: AccountId32; + readonly keepAlive: bool; + } & Struct; + readonly isSwapTokensForExactTokens: boolean; + readonly asSwapTokensForExactTokens: { + readonly path: Vec; + readonly amountOut: u128; + readonly amountInMax: u128; + readonly sendTo: AccountId32; + readonly keepAlive: bool; + } & Struct; + readonly isTouch: boolean; + readonly asTouch: { + readonly asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + } & Struct; + readonly type: 'CreatePool' | 'AddLiquidity' | 'RemoveLiquidity' | 'SwapExactTokensForTokens' | 'SwapTokensForExactTokens' | 'Touch'; + } + + /** @name PezpalletFastUnstakeCall (425) */ + interface PezpalletFastUnstakeCall extends Enum { + readonly isRegisterFastUnstake: boolean; + readonly isDeregister: boolean; + readonly isControl: boolean; + readonly asControl: { + readonly erasToCheck: u32; + } & Struct; + readonly type: 'RegisterFastUnstake' | 'Deregister' | 'Control'; + } + + /** @name PezpalletMessageQueueCall (426) */ + interface PezpalletMessageQueueCall extends Enum { + readonly isReapPage: boolean; + readonly asReapPage: { + readonly messageOrigin: u32; + readonly pageIndex: u32; + } & Struct; + readonly isExecuteOverweight: boolean; + readonly asExecuteOverweight: { + readonly messageOrigin: u32; + readonly page: u32; + readonly index: u32; + readonly weightLimit: PezspWeightsWeightV2Weight; + } & Struct; + readonly type: 'ReapPage' | 'ExecuteOverweight'; + } + + /** @name PezframeBenchmarkingPezpalletPovCall (427) */ + interface PezframeBenchmarkingPezpalletPovCall extends Enum { + readonly isEmitEvent: boolean; + readonly isNoop: boolean; + readonly type: 'EmitEvent' | 'Noop'; + } + + /** @name PezpalletTxPauseCall (428) */ + interface PezpalletTxPauseCall extends Enum { + readonly isPause: boolean; + readonly asPause: { + readonly fullName: ITuple<[Bytes, Bytes]>; + } & Struct; + readonly isUnpause: boolean; + readonly asUnpause: { + readonly ident: ITuple<[Bytes, Bytes]>; + } & Struct; + readonly type: 'Pause' | 'Unpause'; + } + + /** @name PezpalletSafeModeCall (430) */ + interface PezpalletSafeModeCall extends Enum { + readonly isEnter: boolean; + readonly isForceEnter: boolean; + readonly isExtend: boolean; + readonly isForceExtend: boolean; + readonly isForceExit: boolean; + readonly isForceSlashDeposit: boolean; + readonly asForceSlashDeposit: { + readonly account: AccountId32; + readonly block: u32; + } & Struct; + readonly isReleaseDeposit: boolean; + readonly asReleaseDeposit: { + readonly account: AccountId32; + readonly block: u32; + } & Struct; + readonly isForceReleaseDeposit: boolean; + readonly asForceReleaseDeposit: { + readonly account: AccountId32; + readonly block: u32; + } & Struct; + readonly type: 'Enter' | 'ForceEnter' | 'Extend' | 'ForceExtend' | 'ForceExit' | 'ForceSlashDeposit' | 'ReleaseDeposit' | 'ForceReleaseDeposit'; + } + + /** @name PezpalletMigrationsCall (431) */ + interface PezpalletMigrationsCall extends Enum { + readonly isForceSetCursor: boolean; + readonly asForceSetCursor: { + readonly cursor: Option; + } & Struct; + readonly isForceSetActiveCursor: boolean; + readonly asForceSetActiveCursor: { + readonly index: u32; + readonly innerCursor: Option; + readonly startedAt: Option; + } & Struct; + readonly isForceOnboardMbms: boolean; + readonly isClearHistoric: boolean; + readonly asClearHistoric: { + readonly selector: PezpalletMigrationsHistoricCleanupSelector; + } & Struct; + readonly type: 'ForceSetCursor' | 'ForceSetActiveCursor' | 'ForceOnboardMbms' | 'ClearHistoric'; + } + + /** @name PezpalletMigrationsMigrationCursor (433) */ + interface PezpalletMigrationsMigrationCursor extends Enum { + readonly isActive: boolean; + readonly asActive: PezpalletMigrationsActiveCursor; + readonly isStuck: boolean; + readonly type: 'Active' | 'Stuck'; + } + + /** @name PezpalletMigrationsActiveCursor (435) */ + interface PezpalletMigrationsActiveCursor extends Struct { + readonly index: u32; + readonly innerCursor: Option; + readonly startedAt: u32; + } + + /** @name PezpalletMigrationsHistoricCleanupSelector (437) */ + interface PezpalletMigrationsHistoricCleanupSelector extends Enum { + readonly isSpecific: boolean; + readonly asSpecific: Vec; + readonly isWildcard: boolean; + readonly asWildcard: { + readonly limit: Option; + readonly previousCursor: Option; + } & Struct; + readonly type: 'Specific' | 'Wildcard'; + } + + /** @name PezpalletBrokerCall (440) */ + interface PezpalletBrokerCall extends Enum { + readonly isConfigure: boolean; + readonly asConfigure: { + readonly config: PezpalletBrokerConfigRecord; + } & Struct; + readonly isReserve: boolean; + readonly asReserve: { + readonly workload: Vec; + } & Struct; + readonly isUnreserve: boolean; + readonly asUnreserve: { + readonly itemIndex: u32; + } & Struct; + readonly isSetLease: boolean; + readonly asSetLease: { + readonly task: u32; + readonly until: u32; + } & Struct; + readonly isStartSales: boolean; + readonly asStartSales: { + readonly endPrice: u128; + readonly extraCores: u16; + } & Struct; + readonly isPurchase: boolean; + readonly asPurchase: { + readonly priceLimit: u128; + } & Struct; + readonly isRenew: boolean; + readonly asRenew: { + readonly core: u16; + } & Struct; + readonly isTransfer: boolean; + readonly asTransfer: { + readonly regionId: PezpalletBrokerRegionId; + readonly newOwner: AccountId32; + } & Struct; + readonly isPartition: boolean; + readonly asPartition: { + readonly regionId: PezpalletBrokerRegionId; + readonly pivot: u32; + } & Struct; + readonly isInterlace: boolean; + readonly asInterlace: { + readonly regionId: PezpalletBrokerRegionId; + readonly pivot: PezpalletBrokerCoreMask; + } & Struct; + readonly isAssign: boolean; + readonly asAssign: { + readonly regionId: PezpalletBrokerRegionId; + readonly task: u32; + readonly finality: PezpalletBrokerFinality; + } & Struct; + readonly isPool: boolean; + readonly asPool: { + readonly regionId: PezpalletBrokerRegionId; + readonly payee: AccountId32; + readonly finality: PezpalletBrokerFinality; + } & Struct; + readonly isClaimRevenue: boolean; + readonly asClaimRevenue: { + readonly regionId: PezpalletBrokerRegionId; + readonly maxTimeslices: u32; + } & Struct; + readonly isPurchaseCredit: boolean; + readonly asPurchaseCredit: { + readonly amount: u128; + readonly beneficiary: AccountId32; + } & Struct; + readonly isDropRegion: boolean; + readonly asDropRegion: { + readonly regionId: PezpalletBrokerRegionId; + } & Struct; + readonly isDropContribution: boolean; + readonly asDropContribution: { + readonly regionId: PezpalletBrokerRegionId; + } & Struct; + readonly isDropHistory: boolean; + readonly asDropHistory: { + readonly when: u32; + } & Struct; + readonly isDropRenewal: boolean; + readonly asDropRenewal: { + readonly core: u16; + readonly when: u32; + } & Struct; + readonly isRequestCoreCount: boolean; + readonly asRequestCoreCount: { + readonly coreCount: u16; + } & Struct; + readonly isNotifyCoreCount: boolean; + readonly asNotifyCoreCount: { + readonly coreCount: u16; + } & Struct; + readonly isNotifyRevenue: boolean; + readonly asNotifyRevenue: { + readonly revenue: PezpalletBrokerOnDemandRevenueRecord; + } & Struct; + readonly isEnableAutoRenew: boolean; + readonly asEnableAutoRenew: { + readonly core: u16; + readonly task: u32; + readonly workloadEndHint: Option; + } & Struct; + readonly isDisableAutoRenew: boolean; + readonly asDisableAutoRenew: { + readonly core: u16; + readonly task: u32; + } & Struct; + readonly isForceReserve: boolean; + readonly asForceReserve: { + readonly workload: Vec; + readonly core: u16; + } & Struct; + readonly isRemoveLease: boolean; + readonly asRemoveLease: { + readonly task: u32; + } & Struct; + readonly isRemoveAssignment: boolean; + readonly asRemoveAssignment: { + readonly regionId: PezpalletBrokerRegionId; + } & Struct; + readonly isSwapLeases: boolean; + readonly asSwapLeases: { + readonly id: u32; + readonly other: u32; + } & Struct; + readonly type: 'Configure' | 'Reserve' | 'Unreserve' | 'SetLease' | 'StartSales' | 'Purchase' | 'Renew' | 'Transfer' | 'Partition' | 'Interlace' | 'Assign' | 'Pool' | 'ClaimRevenue' | 'PurchaseCredit' | 'DropRegion' | 'DropContribution' | 'DropHistory' | 'DropRenewal' | 'RequestCoreCount' | 'NotifyCoreCount' | 'NotifyRevenue' | 'EnableAutoRenew' | 'DisableAutoRenew' | 'ForceReserve' | 'RemoveLease' | 'RemoveAssignment' | 'SwapLeases'; + } + + /** @name PezpalletBrokerConfigRecord (441) */ + interface PezpalletBrokerConfigRecord extends Struct { + readonly advanceNotice: u32; + readonly interludeLength: u32; + readonly leadinLength: u32; + readonly regionLength: u32; + readonly idealBulkProportion: Perbill; + readonly limitCoresOffered: Option; + readonly renewalBump: Perbill; + readonly contributionTimeout: u32; + } + + /** @name PezpalletBrokerScheduleItem (443) */ + interface PezpalletBrokerScheduleItem extends Struct { + readonly mask: PezpalletBrokerCoreMask; + readonly assignment: PezpalletBrokerCoretimeInterfaceCoreAssignment; + } + + /** @name PezpalletBrokerCoreMask (444) */ + interface PezpalletBrokerCoreMask extends U8aFixed {} + + /** @name PezpalletBrokerCoretimeInterfaceCoreAssignment (445) */ + interface PezpalletBrokerCoretimeInterfaceCoreAssignment extends Enum { + readonly isIdle: boolean; + readonly isPool: boolean; + readonly isTask: boolean; + readonly asTask: u32; + readonly type: 'Idle' | 'Pool' | 'Task'; + } + + /** @name PezpalletBrokerRegionId (447) */ + interface PezpalletBrokerRegionId extends Struct { + readonly begin: u32; + readonly core: u16; + readonly mask: PezpalletBrokerCoreMask; + } + + /** @name PezpalletBrokerFinality (448) */ + interface PezpalletBrokerFinality extends Enum { + readonly isProvisional: boolean; + readonly isFinal: boolean; + readonly type: 'Provisional' | 'Final'; + } + + /** @name PezpalletBrokerOnDemandRevenueRecord (449) */ + interface PezpalletBrokerOnDemandRevenueRecord extends Struct { + readonly until: u32; + readonly amount: u128; + } + + /** @name PezpalletMixnetCall (450) */ + interface PezpalletMixnetCall extends Enum { + readonly isRegister: boolean; + readonly asRegister: { + readonly registration: PezpalletMixnetRegistration; + readonly signature: PezspMixnetAppSignature; + } & Struct; + readonly type: 'Register'; + } + + /** @name PezpalletMixnetRegistration (451) */ + interface PezpalletMixnetRegistration extends Struct { + readonly blockNumber: u32; + readonly sessionIndex: u32; + readonly authorityIndex: u32; + readonly mixnode: PezpalletMixnetBoundedMixnode; + } + + /** @name PezpalletMixnetBoundedMixnode (452) */ + interface PezpalletMixnetBoundedMixnode extends Struct { + readonly kxPublic: U8aFixed; + readonly peerId: U8aFixed; + readonly externalAddresses: Vec; + } + + /** @name PezspMixnetAppSignature (455) */ + interface PezspMixnetAppSignature extends U8aFixed {} + + /** @name PezpalletParametersCall (456) */ + interface PezpalletParametersCall extends Enum { + readonly isSetParameter: boolean; + readonly asSetParameter: { + readonly keyValue: KitchensinkRuntimeRuntimeParameters; + } & Struct; + readonly type: 'SetParameter'; + } + + /** @name KitchensinkRuntimeRuntimeParameters (457) */ + interface KitchensinkRuntimeRuntimeParameters extends Enum { + readonly isStorage: boolean; + readonly asStorage: KitchensinkRuntimeDynamicParamsStorageParameters; + readonly isReferenda: boolean; + readonly asReferenda: KitchensinkRuntimeDynamicParamsReferendaParameters; + readonly type: 'Storage' | 'Referenda'; + } + + /** @name KitchensinkRuntimeDynamicParamsStorageParameters (458) */ + interface KitchensinkRuntimeDynamicParamsStorageParameters extends Enum { + readonly isBaseDeposit: boolean; + readonly asBaseDeposit: ITuple<[KitchensinkRuntimeDynamicParamsStorageBaseDeposit, Option]>; + readonly isByteDeposit: boolean; + readonly asByteDeposit: ITuple<[KitchensinkRuntimeDynamicParamsStorageByteDeposit, Option]>; + readonly type: 'BaseDeposit' | 'ByteDeposit'; + } + + /** @name KitchensinkRuntimeDynamicParamsStorageBaseDeposit (459) */ + type KitchensinkRuntimeDynamicParamsStorageBaseDeposit = Null; + + /** @name KitchensinkRuntimeDynamicParamsStorageByteDeposit (460) */ + type KitchensinkRuntimeDynamicParamsStorageByteDeposit = Null; + + /** @name KitchensinkRuntimeDynamicParamsReferendaParameters (461) */ + interface KitchensinkRuntimeDynamicParamsReferendaParameters extends Enum { + readonly isTracks: boolean; + readonly asTracks: ITuple<[KitchensinkRuntimeDynamicParamsReferendaTracks, Option>]>; + readonly isOrigins: boolean; + readonly asOrigins: ITuple<[KitchensinkRuntimeDynamicParamsReferendaOrigins, Option>>]>; + readonly type: 'Tracks' | 'Origins'; + } + + /** @name KitchensinkRuntimeDynamicParamsReferendaTracks (462) */ + type KitchensinkRuntimeDynamicParamsReferendaTracks = Null; + + /** @name PezpalletReferendaTrack (465) */ + interface PezpalletReferendaTrack extends Struct { + readonly id: u16; + readonly info: { + readonly name: U8aFixed; + readonly maxDeciding: u32; + readonly decisionDeposit: u128; + readonly preparePeriod: u32; + readonly decisionPeriod: u32; + readonly confirmPeriod: u32; + readonly minEnactmentPeriod: u32; + readonly minApproval: PezpalletReferendaCurve; + readonly minSupport: PezpalletReferendaCurve; + } & Struct; + } + + /** @name PezpalletReferendaCurve (467) */ + interface PezpalletReferendaCurve extends Enum { + readonly isLinearDecreasing: boolean; + readonly asLinearDecreasing: { + readonly length: Perbill; + readonly floor: Perbill; + readonly ceil: Perbill; + } & Struct; + readonly isSteppedDecreasing: boolean; + readonly asSteppedDecreasing: { + readonly begin: Perbill; + readonly end: Perbill; + readonly step: Perbill; + readonly period: Perbill; + } & Struct; + readonly isReciprocal: boolean; + readonly asReciprocal: { + readonly factor: i64; + readonly xOffset: i64; + readonly yOffset: i64; + } & Struct; + readonly type: 'LinearDecreasing' | 'SteppedDecreasing' | 'Reciprocal'; + } + + /** @name KitchensinkRuntimeDynamicParamsReferendaOrigins (471) */ + type KitchensinkRuntimeDynamicParamsReferendaOrigins = Null; + + /** @name PezpalletAssetConversionOpsCall (476) */ + interface PezpalletAssetConversionOpsCall extends Enum { + readonly isMigrateToNewAccount: boolean; + readonly asMigrateToNewAccount: { + readonly asset1: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly asset2: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + } & Struct; + readonly type: 'MigrateToNewAccount'; + } + + /** @name PezpalletReviveCall (477) */ + interface PezpalletReviveCall extends Enum { + readonly isEthTransact: boolean; + readonly asEthTransact: { + readonly payload: Bytes; + } & Struct; + readonly isCall: boolean; + readonly asCall: { + readonly dest: H160; + readonly value: Compact; + readonly gasLimit: PezspWeightsWeightV2Weight; + readonly storageDepositLimit: Compact; + readonly data: Bytes; + } & Struct; + readonly isInstantiate: boolean; + readonly asInstantiate: { + readonly value: Compact; + readonly gasLimit: PezspWeightsWeightV2Weight; + readonly storageDepositLimit: Compact; + readonly codeHash: H256; + readonly data: Bytes; + readonly salt: Option; + } & Struct; + readonly isInstantiateWithCode: boolean; + readonly asInstantiateWithCode: { + readonly value: Compact; + readonly gasLimit: PezspWeightsWeightV2Weight; + readonly storageDepositLimit: Compact; + readonly code: Bytes; + readonly data: Bytes; + readonly salt: Option; + } & Struct; + readonly isUploadCode: boolean; + readonly asUploadCode: { + readonly code: Bytes; + readonly storageDepositLimit: Compact; + } & Struct; + readonly isRemoveCode: boolean; + readonly asRemoveCode: { + readonly codeHash: H256; + } & Struct; + readonly isSetCode: boolean; + readonly asSetCode: { + readonly dest: H160; + readonly codeHash: H256; + } & Struct; + readonly isMapAccount: boolean; + readonly isUnmapAccount: boolean; + readonly isDispatchAsFallbackAccount: boolean; + readonly asDispatchAsFallbackAccount: { + readonly call: RuntimeCall; + } & Struct; + readonly type: 'EthTransact' | 'Call' | 'Instantiate' | 'InstantiateWithCode' | 'UploadCode' | 'RemoveCode' | 'SetCode' | 'MapAccount' | 'UnmapAccount' | 'DispatchAsFallbackAccount'; + } + + /** @name PezpalletAssetRewardsCall (479) */ + interface PezpalletAssetRewardsCall extends Enum { + readonly isCreatePool: boolean; + readonly asCreatePool: { + readonly stakedAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rewardAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rewardRatePerBlock: u128; + readonly expiry: PezframeSupportScheduleDispatchTime; + readonly admin: Option; + } & Struct; + readonly isStake: boolean; + readonly asStake: { + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isUnstake: boolean; + readonly asUnstake: { + readonly poolId: u32; + readonly amount: u128; + readonly staker: Option; + } & Struct; + readonly isHarvestRewards: boolean; + readonly asHarvestRewards: { + readonly poolId: u32; + readonly staker: Option; + } & Struct; + readonly isSetPoolRewardRatePerBlock: boolean; + readonly asSetPoolRewardRatePerBlock: { + readonly poolId: u32; + readonly newRewardRatePerBlock: u128; + } & Struct; + readonly isSetPoolAdmin: boolean; + readonly asSetPoolAdmin: { + readonly poolId: u32; + readonly newAdmin: AccountId32; + } & Struct; + readonly isSetPoolExpiryBlock: boolean; + readonly asSetPoolExpiryBlock: { + readonly poolId: u32; + readonly newExpiry: PezframeSupportScheduleDispatchTime; + } & Struct; + readonly isDepositRewardTokens: boolean; + readonly asDepositRewardTokens: { + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isCleanupPool: boolean; + readonly asCleanupPool: { + readonly poolId: u32; + } & Struct; + readonly type: 'CreatePool' | 'Stake' | 'Unstake' | 'HarvestRewards' | 'SetPoolRewardRatePerBlock' | 'SetPoolAdmin' | 'SetPoolExpiryBlock' | 'DepositRewardTokens' | 'CleanupPool'; + } + + /** @name PezpalletMetaTxCall (480) */ + interface PezpalletMetaTxCall extends Enum { + readonly isDispatch: boolean; + readonly asDispatch: { + readonly metaTx: PezpalletMetaTxMetaTx; + } & Struct; + readonly type: 'Dispatch'; + } + + /** @name PezpalletMetaTxMetaTx (481) */ + interface PezpalletMetaTxMetaTx extends Struct { + readonly call: RuntimeCall; + readonly extensionVersion: u8; + readonly extension: ITuple<[PezpalletVerifySignatureExtensionVerifySignature, PezpalletMetaTxExtensionMetaTxMarker, PezframeSystemExtensionsCheckNonZeroSender, PezframeSystemExtensionsCheckSpecVersion, PezframeSystemExtensionsCheckTxVersion, PezframeSystemExtensionsCheckGenesis, Era, PezframeSystemExtensionsCheckNonce, PezframeMetadataHashExtensionCheckMetadataHash]>; + } + + /** @name PezpalletVerifySignatureExtensionVerifySignature (483) */ + interface PezpalletVerifySignatureExtensionVerifySignature extends Enum { + readonly isSigned: boolean; + readonly asSigned: { + readonly signature: PezspRuntimeMultiSignature; + readonly account: AccountId32; + } & Struct; + readonly isDisabled: boolean; + readonly type: 'Signed' | 'Disabled'; + } + + /** @name PezpalletMetaTxExtensionMetaTxMarker (484) */ + type PezpalletMetaTxExtensionMetaTxMarker = Null; + + /** @name PezframeSystemExtensionsCheckNonZeroSender (485) */ + type PezframeSystemExtensionsCheckNonZeroSender = Null; + + /** @name PezframeSystemExtensionsCheckSpecVersion (486) */ + type PezframeSystemExtensionsCheckSpecVersion = Null; + + /** @name PezframeSystemExtensionsCheckTxVersion (487) */ + type PezframeSystemExtensionsCheckTxVersion = Null; + + /** @name PezframeSystemExtensionsCheckGenesis (488) */ + type PezframeSystemExtensionsCheckGenesis = Null; + + /** @name PezframeSystemExtensionsCheckNonce (491) */ + interface PezframeSystemExtensionsCheckNonce extends Compact {} + + /** @name PezframeMetadataHashExtensionCheckMetadataHash (492) */ + interface PezframeMetadataHashExtensionCheckMetadataHash extends Struct { + readonly mode: PezframeMetadataHashExtensionMode; + } + + /** @name PezframeMetadataHashExtensionMode (493) */ + interface PezframeMetadataHashExtensionMode extends Enum { + readonly isDisabled: boolean; + readonly isEnabled: boolean; + readonly type: 'Disabled' | 'Enabled'; + } + + /** @name PezspRuntimeBlakeTwo256 (494) */ + type PezspRuntimeBlakeTwo256 = Null; + + /** @name PezpalletConvictionVotingTally (495) */ + interface PezpalletConvictionVotingTally extends Struct { + readonly ayes: u128; + readonly nays: u128; + readonly support: u128; + } + + /** @name PezpalletRemarkEvent (496) */ + interface PezpalletRemarkEvent extends Enum { + readonly isStored: boolean; + readonly asStored: { + readonly sender: AccountId32; + readonly contentHash: H256; + } & Struct; + readonly type: 'Stored'; + } + + /** @name PezpalletRootTestingEvent (497) */ + interface PezpalletRootTestingEvent extends Enum { + readonly isDefensiveTestCall: boolean; + readonly type: 'DefensiveTestCall'; + } + + /** @name PezpalletConvictionVotingEvent (498) */ + interface PezpalletConvictionVotingEvent extends Enum { + readonly isDelegated: boolean; + readonly asDelegated: ITuple<[AccountId32, AccountId32]>; + readonly isUndelegated: boolean; + readonly asUndelegated: AccountId32; + readonly isVoted: boolean; + readonly asVoted: { + readonly who: AccountId32; + readonly vote: PezpalletConvictionVotingVoteAccountVote; + } & Struct; + readonly isVoteRemoved: boolean; + readonly asVoteRemoved: { + readonly who: AccountId32; + readonly vote: PezpalletConvictionVotingVoteAccountVote; + } & Struct; + readonly isVoteUnlocked: boolean; + readonly asVoteUnlocked: { + readonly who: AccountId32; + readonly class: u16; + } & Struct; + readonly type: 'Delegated' | 'Undelegated' | 'Voted' | 'VoteRemoved' | 'VoteUnlocked'; + } + + /** @name PezpalletWhitelistEvent (499) */ + interface PezpalletWhitelistEvent extends Enum { + readonly isCallWhitelisted: boolean; + readonly asCallWhitelisted: { + readonly callHash: H256; + } & Struct; + readonly isWhitelistedCallRemoved: boolean; + readonly asWhitelistedCallRemoved: { + readonly callHash: H256; + } & Struct; + readonly isWhitelistedCallDispatched: boolean; + readonly asWhitelistedCallDispatched: { + readonly callHash: H256; + readonly result: Result; + } & Struct; + readonly type: 'CallWhitelisted' | 'WhitelistedCallRemoved' | 'WhitelistedCallDispatched'; + } + + /** @name PezframeSupportDispatchPostDispatchInfo (501) */ + interface PezframeSupportDispatchPostDispatchInfo extends Struct { + readonly actualWeight: Option; + readonly paysFee: PezframeSupportDispatchPays; + } + + /** @name PezspRuntimeDispatchErrorWithPostInfo (503) */ + interface PezspRuntimeDispatchErrorWithPostInfo extends Struct { + readonly postInfo: PezframeSupportDispatchPostDispatchInfo; + readonly error: PezspRuntimeDispatchError; + } + + /** @name PezpalletAllianceEvent (505) */ + interface PezpalletAllianceEvent extends Enum { + readonly isNewRuleSet: boolean; + readonly asNewRuleSet: { + readonly rule: PezpalletAllianceCid; + } & Struct; + readonly isAnnounced: boolean; + readonly asAnnounced: { + readonly announcement: PezpalletAllianceCid; + } & Struct; + readonly isAnnouncementRemoved: boolean; + readonly asAnnouncementRemoved: { + readonly announcement: PezpalletAllianceCid; + } & Struct; + readonly isMembersInitialized: boolean; + readonly asMembersInitialized: { + readonly fellows: Vec; + readonly allies: Vec; + } & Struct; + readonly isNewAllyJoined: boolean; + readonly asNewAllyJoined: { + readonly ally: AccountId32; + readonly nominator: Option; + readonly reserved: Option; + } & Struct; + readonly isAllyElevated: boolean; + readonly asAllyElevated: { + readonly ally: AccountId32; + } & Struct; + readonly isMemberRetirementPeriodStarted: boolean; + readonly asMemberRetirementPeriodStarted: { + readonly member: AccountId32; + } & Struct; + readonly isMemberRetired: boolean; + readonly asMemberRetired: { + readonly member: AccountId32; + readonly unreserved: Option; + } & Struct; + readonly isMemberKicked: boolean; + readonly asMemberKicked: { + readonly member: AccountId32; + readonly slashed: Option; + } & Struct; + readonly isUnscrupulousItemAdded: boolean; + readonly asUnscrupulousItemAdded: { + readonly items: Vec; + } & Struct; + readonly isUnscrupulousItemRemoved: boolean; + readonly asUnscrupulousItemRemoved: { + readonly items: Vec; + } & Struct; + readonly isAllianceDisbanded: boolean; + readonly asAllianceDisbanded: { + readonly fellowMembers: u32; + readonly allyMembers: u32; + readonly unreserved: u32; + } & Struct; + readonly isFellowAbdicated: boolean; + readonly asFellowAbdicated: { + readonly fellow: AccountId32; + } & Struct; + readonly type: 'NewRuleSet' | 'Announced' | 'AnnouncementRemoved' | 'MembersInitialized' | 'NewAllyJoined' | 'AllyElevated' | 'MemberRetirementPeriodStarted' | 'MemberRetired' | 'MemberKicked' | 'UnscrupulousItemAdded' | 'UnscrupulousItemRemoved' | 'AllianceDisbanded' | 'FellowAbdicated'; + } + + /** @name PezpalletNominationPoolsEvent (506) */ + interface PezpalletNominationPoolsEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly depositor: AccountId32; + readonly poolId: u32; + } & Struct; + readonly isBonded: boolean; + readonly asBonded: { + readonly member: AccountId32; + readonly poolId: u32; + readonly bonded: u128; + readonly joined: bool; + } & Struct; + readonly isPaidOut: boolean; + readonly asPaidOut: { + readonly member: AccountId32; + readonly poolId: u32; + readonly payout: u128; + } & Struct; + readonly isUnbonded: boolean; + readonly asUnbonded: { + readonly member: AccountId32; + readonly poolId: u32; + readonly balance: u128; + readonly points: u128; + readonly era: u32; + } & Struct; + readonly isWithdrawn: boolean; + readonly asWithdrawn: { + readonly member: AccountId32; + readonly poolId: u32; + readonly balance: u128; + readonly points: u128; + } & Struct; + readonly isDestroyed: boolean; + readonly asDestroyed: { + readonly poolId: u32; + } & Struct; + readonly isStateChanged: boolean; + readonly asStateChanged: { + readonly poolId: u32; + readonly newState: PezpalletNominationPoolsPoolState; + } & Struct; + readonly isMemberRemoved: boolean; + readonly asMemberRemoved: { + readonly poolId: u32; + readonly member: AccountId32; + readonly releasedBalance: u128; + } & Struct; + readonly isRolesUpdated: boolean; + readonly asRolesUpdated: { + readonly root: Option; + readonly bouncer: Option; + readonly nominator: Option; + } & Struct; + readonly isPoolSlashed: boolean; + readonly asPoolSlashed: { + readonly poolId: u32; + readonly balance: u128; + } & Struct; + readonly isUnbondingPoolSlashed: boolean; + readonly asUnbondingPoolSlashed: { + readonly poolId: u32; + readonly era: u32; + readonly balance: u128; + } & Struct; + readonly isPoolCommissionUpdated: boolean; + readonly asPoolCommissionUpdated: { + readonly poolId: u32; + readonly current: Option>; + } & Struct; + readonly isPoolMaxCommissionUpdated: boolean; + readonly asPoolMaxCommissionUpdated: { + readonly poolId: u32; + readonly maxCommission: Perbill; + } & Struct; + readonly isPoolCommissionChangeRateUpdated: boolean; + readonly asPoolCommissionChangeRateUpdated: { + readonly poolId: u32; + readonly changeRate: PezpalletNominationPoolsCommissionChangeRate; + } & Struct; + readonly isPoolCommissionClaimPermissionUpdated: boolean; + readonly asPoolCommissionClaimPermissionUpdated: { + readonly poolId: u32; + readonly permission: Option; + } & Struct; + readonly isPoolCommissionClaimed: boolean; + readonly asPoolCommissionClaimed: { + readonly poolId: u32; + readonly commission: u128; + } & Struct; + readonly isMinBalanceDeficitAdjusted: boolean; + readonly asMinBalanceDeficitAdjusted: { + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isMinBalanceExcessAdjusted: boolean; + readonly asMinBalanceExcessAdjusted: { + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isMemberClaimPermissionUpdated: boolean; + readonly asMemberClaimPermissionUpdated: { + readonly member: AccountId32; + readonly permission: PezpalletNominationPoolsClaimPermission; + } & Struct; + readonly isMetadataUpdated: boolean; + readonly asMetadataUpdated: { + readonly poolId: u32; + readonly caller: AccountId32; + } & Struct; + readonly isPoolNominationMade: boolean; + readonly asPoolNominationMade: { + readonly poolId: u32; + readonly caller: AccountId32; + } & Struct; + readonly isPoolNominatorChilled: boolean; + readonly asPoolNominatorChilled: { + readonly poolId: u32; + readonly caller: AccountId32; + } & Struct; + readonly isGlobalParamsUpdated: boolean; + readonly asGlobalParamsUpdated: { + readonly minJoinBond: u128; + readonly minCreateBond: u128; + readonly maxPools: Option; + readonly maxMembers: Option; + readonly maxMembersPerPool: Option; + readonly globalMaxCommission: Option; + } & Struct; + readonly type: 'Created' | 'Bonded' | 'PaidOut' | 'Unbonded' | 'Withdrawn' | 'Destroyed' | 'StateChanged' | 'MemberRemoved' | 'RolesUpdated' | 'PoolSlashed' | 'UnbondingPoolSlashed' | 'PoolCommissionUpdated' | 'PoolMaxCommissionUpdated' | 'PoolCommissionChangeRateUpdated' | 'PoolCommissionClaimPermissionUpdated' | 'PoolCommissionClaimed' | 'MinBalanceDeficitAdjusted' | 'MinBalanceExcessAdjusted' | 'MemberClaimPermissionUpdated' | 'MetadataUpdated' | 'PoolNominationMade' | 'PoolNominatorChilled' | 'GlobalParamsUpdated'; + } + + /** @name PezpalletRankedCollectiveTally (509) */ + interface PezpalletRankedCollectiveTally extends Struct { + readonly bareAyes: u32; + readonly ayes: u32; + readonly nays: u32; + } + + /** @name PezpalletRankedCollectiveEvent (510) */ + interface PezpalletRankedCollectiveEvent extends Enum { + readonly isMemberAdded: boolean; + readonly asMemberAdded: { + readonly who: AccountId32; + } & Struct; + readonly isRankChanged: boolean; + readonly asRankChanged: { + readonly who: AccountId32; + readonly rank: u16; + } & Struct; + readonly isMemberRemoved: boolean; + readonly asMemberRemoved: { + readonly who: AccountId32; + readonly rank: u16; + } & Struct; + readonly isVoted: boolean; + readonly asVoted: { + readonly who: AccountId32; + readonly poll: u32; + readonly vote: PezpalletRankedCollectiveVoteRecord; + readonly tally: PezpalletRankedCollectiveTally; + } & Struct; + readonly isMemberExchanged: boolean; + readonly asMemberExchanged: { + readonly who: AccountId32; + readonly newWho: AccountId32; + } & Struct; + readonly type: 'MemberAdded' | 'RankChanged' | 'MemberRemoved' | 'Voted' | 'MemberExchanged'; + } + + /** @name PezpalletRankedCollectiveVoteRecord (511) */ + interface PezpalletRankedCollectiveVoteRecord extends Enum { + readonly isAye: boolean; + readonly asAye: u32; + readonly isNay: boolean; + readonly asNay: u32; + readonly type: 'Aye' | 'Nay'; + } + + /** @name PezpalletAssetConversionEvent (512) */ + interface PezpalletAssetConversionEvent extends Enum { + readonly isPoolCreated: boolean; + readonly asPoolCreated: { + readonly creator: AccountId32; + readonly poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + readonly poolAccount: AccountId32; + readonly lpToken: u32; + } & Struct; + readonly isLiquidityAdded: boolean; + readonly asLiquidityAdded: { + readonly who: AccountId32; + readonly mintTo: AccountId32; + readonly poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + readonly amount1Provided: u128; + readonly amount2Provided: u128; + readonly lpToken: u32; + readonly lpTokenMinted: u128; + } & Struct; + readonly isLiquidityRemoved: boolean; + readonly asLiquidityRemoved: { + readonly who: AccountId32; + readonly withdrawTo: AccountId32; + readonly poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + readonly amount1: u128; + readonly amount2: u128; + readonly lpToken: u32; + readonly lpTokenBurned: u128; + readonly withdrawalFee: Permill; + } & Struct; + readonly isSwapExecuted: boolean; + readonly asSwapExecuted: { + readonly who: AccountId32; + readonly sendTo: AccountId32; + readonly amountIn: u128; + readonly amountOut: u128; + readonly path: Vec>; + } & Struct; + readonly isSwapCreditExecuted: boolean; + readonly asSwapCreditExecuted: { + readonly amountIn: u128; + readonly amountOut: u128; + readonly path: Vec>; + } & Struct; + readonly isTouched: boolean; + readonly asTouched: { + readonly poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + readonly who: AccountId32; + } & Struct; + readonly type: 'PoolCreated' | 'LiquidityAdded' | 'LiquidityRemoved' | 'SwapExecuted' | 'SwapCreditExecuted' | 'Touched'; + } + + /** @name PezpalletFastUnstakeEvent (517) */ + interface PezpalletFastUnstakeEvent extends Enum { + readonly isUnstaked: boolean; + readonly asUnstaked: { + readonly stash: AccountId32; + readonly result: Result; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly stash: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBatchChecked: boolean; + readonly asBatchChecked: { + readonly eras: Vec; + } & Struct; + readonly isBatchFinished: boolean; + readonly asBatchFinished: { + readonly size_: u32; + } & Struct; + readonly isInternalError: boolean; + readonly type: 'Unstaked' | 'Slashed' | 'BatchChecked' | 'BatchFinished' | 'InternalError'; + } + + /** @name PezpalletMessageQueueEvent (518) */ + interface PezpalletMessageQueueEvent extends Enum { + readonly isProcessingFailed: boolean; + readonly asProcessingFailed: { + readonly id: H256; + readonly origin: u32; + readonly error: PezframeSupportMessagesProcessMessageError; + } & Struct; + readonly isProcessed: boolean; + readonly asProcessed: { + readonly id: H256; + readonly origin: u32; + readonly weightUsed: PezspWeightsWeightV2Weight; + readonly success: bool; + } & Struct; + readonly isOverweightEnqueued: boolean; + readonly asOverweightEnqueued: { + readonly id: U8aFixed; + readonly origin: u32; + readonly pageIndex: u32; + readonly messageIndex: u32; + } & Struct; + readonly isPageReaped: boolean; + readonly asPageReaped: { + readonly origin: u32; + readonly index: u32; + } & Struct; + readonly type: 'ProcessingFailed' | 'Processed' | 'OverweightEnqueued' | 'PageReaped'; + } + + /** @name PezframeSupportMessagesProcessMessageError (519) */ + interface PezframeSupportMessagesProcessMessageError extends Enum { + readonly isBadFormat: boolean; + readonly isCorrupt: boolean; + readonly isUnsupported: boolean; + readonly isOverweight: boolean; + readonly asOverweight: PezspWeightsWeightV2Weight; + readonly isYield: boolean; + readonly isStackLimitReached: boolean; + readonly type: 'BadFormat' | 'Corrupt' | 'Unsupported' | 'Overweight' | 'Yield' | 'StackLimitReached'; + } + + /** @name PezframeBenchmarkingPezpalletPovEvent (520) */ + interface PezframeBenchmarkingPezpalletPovEvent extends Enum { + readonly isTestEvent: boolean; + readonly type: 'TestEvent'; + } + + /** @name PezpalletTxPauseEvent (521) */ + interface PezpalletTxPauseEvent extends Enum { + readonly isCallPaused: boolean; + readonly asCallPaused: { + readonly fullName: ITuple<[Bytes, Bytes]>; + } & Struct; + readonly isCallUnpaused: boolean; + readonly asCallUnpaused: { + readonly fullName: ITuple<[Bytes, Bytes]>; + } & Struct; + readonly type: 'CallPaused' | 'CallUnpaused'; + } + + /** @name PezpalletSafeModeEvent (522) */ + interface PezpalletSafeModeEvent extends Enum { + readonly isEntered: boolean; + readonly asEntered: { + readonly until: u32; + } & Struct; + readonly isExtended: boolean; + readonly asExtended: { + readonly until: u32; + } & Struct; + readonly isExited: boolean; + readonly asExited: { + readonly reason: PezpalletSafeModeExitReason; + } & Struct; + readonly isDepositPlaced: boolean; + readonly asDepositPlaced: { + readonly account: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDepositReleased: boolean; + readonly asDepositReleased: { + readonly account: AccountId32; + readonly amount: u128; + } & Struct; + readonly isDepositSlashed: boolean; + readonly asDepositSlashed: { + readonly account: AccountId32; + readonly amount: u128; + } & Struct; + readonly isCannotDeposit: boolean; + readonly isCannotRelease: boolean; + readonly type: 'Entered' | 'Extended' | 'Exited' | 'DepositPlaced' | 'DepositReleased' | 'DepositSlashed' | 'CannotDeposit' | 'CannotRelease'; + } + + /** @name PezpalletSafeModeExitReason (523) */ + interface PezpalletSafeModeExitReason extends Enum { + readonly isTimeout: boolean; + readonly isForce: boolean; + readonly type: 'Timeout' | 'Force'; + } + + /** @name PezpalletStatementEvent (524) */ + interface PezpalletStatementEvent extends Enum { + readonly isNewStatement: boolean; + readonly asNewStatement: { + readonly account: AccountId32; + readonly statement: PezspStatementStoreStatement; + } & Struct; + readonly type: 'NewStatement'; + } + + /** @name PezspStatementStoreStatement (525) */ + interface PezspStatementStoreStatement extends Struct { + readonly proof: Option; + readonly decryptionKey: Option; + readonly channel: Option; + readonly priority: Option; + readonly numTopics: u8; + readonly topics: Vec; + readonly data: Option; + } + + /** @name PezspStatementStoreProof (527) */ + interface PezspStatementStoreProof extends Enum { + readonly isSr25519: boolean; + readonly asSr25519: { + readonly signature: U8aFixed; + readonly signer: U8aFixed; + } & Struct; + readonly isEd25519: boolean; + readonly asEd25519: { + readonly signature: U8aFixed; + readonly signer: U8aFixed; + } & Struct; + readonly isSecp256k1Ecdsa: boolean; + readonly asSecp256k1Ecdsa: { + readonly signature: U8aFixed; + readonly signer: U8aFixed; + } & Struct; + readonly isOnChain: boolean; + readonly asOnChain: { + readonly who: U8aFixed; + readonly blockHash: U8aFixed; + readonly eventIndex: u64; + } & Struct; + readonly type: 'Sr25519' | 'Ed25519' | 'Secp256k1Ecdsa' | 'OnChain'; + } + + /** @name PezpalletMigrationsEvent (529) */ + interface PezpalletMigrationsEvent extends Enum { + readonly isUpgradeStarted: boolean; + readonly asUpgradeStarted: { + readonly migrations: u32; + } & Struct; + readonly isUpgradeCompleted: boolean; + readonly isUpgradeFailed: boolean; + readonly isMigrationSkipped: boolean; + readonly asMigrationSkipped: { + readonly index: u32; + } & Struct; + readonly isMigrationAdvanced: boolean; + readonly asMigrationAdvanced: { + readonly index: u32; + readonly took: u32; + } & Struct; + readonly isMigrationCompleted: boolean; + readonly asMigrationCompleted: { + readonly index: u32; + readonly took: u32; + } & Struct; + readonly isMigrationFailed: boolean; + readonly asMigrationFailed: { + readonly index: u32; + readonly took: u32; + } & Struct; + readonly isHistoricCleared: boolean; + readonly asHistoricCleared: { + readonly nextCursor: Option; + } & Struct; + readonly type: 'UpgradeStarted' | 'UpgradeCompleted' | 'UpgradeFailed' | 'MigrationSkipped' | 'MigrationAdvanced' | 'MigrationCompleted' | 'MigrationFailed' | 'HistoricCleared'; + } + + /** @name PezpalletBrokerEvent (530) */ + interface PezpalletBrokerEvent extends Enum { + readonly isPurchased: boolean; + readonly asPurchased: { + readonly who: AccountId32; + readonly regionId: PezpalletBrokerRegionId; + readonly price: u128; + readonly duration: u32; + } & Struct; + readonly isRenewable: boolean; + readonly asRenewable: { + readonly core: u16; + readonly price: u128; + readonly begin: u32; + readonly workload: Vec; + } & Struct; + readonly isRenewed: boolean; + readonly asRenewed: { + readonly who: AccountId32; + readonly price: u128; + readonly oldCore: u16; + readonly core: u16; + readonly begin: u32; + readonly duration: u32; + readonly workload: Vec; + } & Struct; + readonly isTransferred: boolean; + readonly asTransferred: { + readonly regionId: PezpalletBrokerRegionId; + readonly duration: u32; + readonly oldOwner: Option; + readonly owner: Option; + } & Struct; + readonly isPartitioned: boolean; + readonly asPartitioned: { + readonly oldRegionId: PezpalletBrokerRegionId; + readonly newRegionIds: ITuple<[PezpalletBrokerRegionId, PezpalletBrokerRegionId]>; + } & Struct; + readonly isInterlaced: boolean; + readonly asInterlaced: { + readonly oldRegionId: PezpalletBrokerRegionId; + readonly newRegionIds: ITuple<[PezpalletBrokerRegionId, PezpalletBrokerRegionId]>; + } & Struct; + readonly isAssigned: boolean; + readonly asAssigned: { + readonly regionId: PezpalletBrokerRegionId; + readonly duration: u32; + readonly task: u32; + } & Struct; + readonly isAssignmentRemoved: boolean; + readonly asAssignmentRemoved: { + readonly regionId: PezpalletBrokerRegionId; + } & Struct; + readonly isPooled: boolean; + readonly asPooled: { + readonly regionId: PezpalletBrokerRegionId; + readonly duration: u32; + } & Struct; + readonly isCoreCountRequested: boolean; + readonly asCoreCountRequested: { + readonly coreCount: u16; + } & Struct; + readonly isCoreCountChanged: boolean; + readonly asCoreCountChanged: { + readonly coreCount: u16; + } & Struct; + readonly isReservationMade: boolean; + readonly asReservationMade: { + readonly index: u32; + readonly workload: Vec; + } & Struct; + readonly isReservationCancelled: boolean; + readonly asReservationCancelled: { + readonly index: u32; + readonly workload: Vec; + } & Struct; + readonly isSaleInitialized: boolean; + readonly asSaleInitialized: { + readonly saleStart: u32; + readonly leadinLength: u32; + readonly startPrice: u128; + readonly endPrice: u128; + readonly regionBegin: u32; + readonly regionEnd: u32; + readonly idealCoresSold: u16; + readonly coresOffered: u16; + } & Struct; + readonly isLeased: boolean; + readonly asLeased: { + readonly task: u32; + readonly until: u32; + } & Struct; + readonly isLeaseRemoved: boolean; + readonly asLeaseRemoved: { + readonly task: u32; + } & Struct; + readonly isLeaseEnding: boolean; + readonly asLeaseEnding: { + readonly task: u32; + readonly when: u32; + } & Struct; + readonly isSalesStarted: boolean; + readonly asSalesStarted: { + readonly price: u128; + readonly coreCount: u16; + } & Struct; + readonly isRevenueClaimBegun: boolean; + readonly asRevenueClaimBegun: { + readonly region: PezpalletBrokerRegionId; + readonly maxTimeslices: u32; + } & Struct; + readonly isRevenueClaimItem: boolean; + readonly asRevenueClaimItem: { + readonly when: u32; + readonly amount: u128; + } & Struct; + readonly isRevenueClaimPaid: boolean; + readonly asRevenueClaimPaid: { + readonly who: AccountId32; + readonly amount: u128; + readonly next: Option; + } & Struct; + readonly isCreditPurchased: boolean; + readonly asCreditPurchased: { + readonly who: AccountId32; + readonly beneficiary: AccountId32; + readonly amount: u128; + } & Struct; + readonly isRegionDropped: boolean; + readonly asRegionDropped: { + readonly regionId: PezpalletBrokerRegionId; + readonly duration: u32; + } & Struct; + readonly isContributionDropped: boolean; + readonly asContributionDropped: { + readonly regionId: PezpalletBrokerRegionId; + } & Struct; + readonly isHistoryInitialized: boolean; + readonly asHistoryInitialized: { + readonly when: u32; + readonly privatePoolSize: u32; + readonly systemPoolSize: u32; + } & Struct; + readonly isHistoryDropped: boolean; + readonly asHistoryDropped: { + readonly when: u32; + readonly revenue: u128; + } & Struct; + readonly isHistoryIgnored: boolean; + readonly asHistoryIgnored: { + readonly when: u32; + readonly revenue: u128; + } & Struct; + readonly isClaimsReady: boolean; + readonly asClaimsReady: { + readonly when: u32; + readonly systemPayout: u128; + readonly privatePayout: u128; + } & Struct; + readonly isCoreAssigned: boolean; + readonly asCoreAssigned: { + readonly core: u16; + readonly when: u32; + readonly assignment: Vec>; + } & Struct; + readonly isPotentialRenewalDropped: boolean; + readonly asPotentialRenewalDropped: { + readonly when: u32; + readonly core: u16; + } & Struct; + readonly isAutoRenewalEnabled: boolean; + readonly asAutoRenewalEnabled: { + readonly core: u16; + readonly task: u32; + } & Struct; + readonly isAutoRenewalDisabled: boolean; + readonly asAutoRenewalDisabled: { + readonly core: u16; + readonly task: u32; + } & Struct; + readonly isAutoRenewalFailed: boolean; + readonly asAutoRenewalFailed: { + readonly core: u16; + readonly payer: Option; + } & Struct; + readonly isAutoRenewalLimitReached: boolean; + readonly type: 'Purchased' | 'Renewable' | 'Renewed' | 'Transferred' | 'Partitioned' | 'Interlaced' | 'Assigned' | 'AssignmentRemoved' | 'Pooled' | 'CoreCountRequested' | 'CoreCountChanged' | 'ReservationMade' | 'ReservationCancelled' | 'SaleInitialized' | 'Leased' | 'LeaseRemoved' | 'LeaseEnding' | 'SalesStarted' | 'RevenueClaimBegun' | 'RevenueClaimItem' | 'RevenueClaimPaid' | 'CreditPurchased' | 'RegionDropped' | 'ContributionDropped' | 'HistoryInitialized' | 'HistoryDropped' | 'HistoryIgnored' | 'ClaimsReady' | 'CoreAssigned' | 'PotentialRenewalDropped' | 'AutoRenewalEnabled' | 'AutoRenewalDisabled' | 'AutoRenewalFailed' | 'AutoRenewalLimitReached'; + } + + /** @name PezpalletParametersEvent (535) */ + interface PezpalletParametersEvent extends Enum { + readonly isUpdated: boolean; + readonly asUpdated: { + readonly key: KitchensinkRuntimeRuntimeParametersKey; + readonly oldValue: Option; + readonly newValue: Option; + } & Struct; + readonly type: 'Updated'; + } + + /** @name KitchensinkRuntimeRuntimeParametersKey (536) */ + interface KitchensinkRuntimeRuntimeParametersKey extends Enum { + readonly isStorage: boolean; + readonly asStorage: KitchensinkRuntimeDynamicParamsStorageParametersKey; + readonly isReferenda: boolean; + readonly asReferenda: KitchensinkRuntimeDynamicParamsReferendaParametersKey; + readonly type: 'Storage' | 'Referenda'; + } + + /** @name KitchensinkRuntimeDynamicParamsStorageParametersKey (537) */ + interface KitchensinkRuntimeDynamicParamsStorageParametersKey extends Enum { + readonly isBaseDeposit: boolean; + readonly isByteDeposit: boolean; + readonly type: 'BaseDeposit' | 'ByteDeposit'; + } + + /** @name KitchensinkRuntimeDynamicParamsReferendaParametersKey (538) */ + interface KitchensinkRuntimeDynamicParamsReferendaParametersKey extends Enum { + readonly isTracks: boolean; + readonly isOrigins: boolean; + readonly type: 'Tracks' | 'Origins'; + } + + /** @name KitchensinkRuntimeRuntimeParametersValue (540) */ + interface KitchensinkRuntimeRuntimeParametersValue extends Enum { + readonly isStorage: boolean; + readonly asStorage: KitchensinkRuntimeDynamicParamsStorageParametersValue; + readonly isReferenda: boolean; + readonly asReferenda: KitchensinkRuntimeDynamicParamsReferendaParametersValue; + readonly type: 'Storage' | 'Referenda'; + } + + /** @name KitchensinkRuntimeDynamicParamsStorageParametersValue (541) */ + interface KitchensinkRuntimeDynamicParamsStorageParametersValue extends Enum { + readonly isBaseDeposit: boolean; + readonly asBaseDeposit: u128; + readonly isByteDeposit: boolean; + readonly asByteDeposit: u128; + readonly type: 'BaseDeposit' | 'ByteDeposit'; + } + + /** @name KitchensinkRuntimeDynamicParamsReferendaParametersValue (542) */ + interface KitchensinkRuntimeDynamicParamsReferendaParametersValue extends Enum { + readonly isTracks: boolean; + readonly asTracks: Vec; + readonly isOrigins: boolean; + readonly asOrigins: Vec>; + readonly type: 'Tracks' | 'Origins'; + } + + /** @name PezpalletSkipFeelessPaymentEvent (543) */ + interface PezpalletSkipFeelessPaymentEvent extends Enum { + readonly isFeeSkipped: boolean; + readonly asFeeSkipped: { + readonly origin: KitchensinkRuntimeOriginCaller; + } & Struct; + readonly type: 'FeeSkipped'; + } + + /** @name PezpalletAssetConversionOpsEvent (544) */ + interface PezpalletAssetConversionOpsEvent extends Enum { + readonly isMigratedToNewAccount: boolean; + readonly asMigratedToNewAccount: { + readonly poolId: ITuple<[PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensFungibleUnionOfNativeOrWithId]>; + readonly priorAccount: AccountId32; + readonly newAccount: AccountId32; + } & Struct; + readonly type: 'MigratedToNewAccount'; + } + + /** @name PezpalletReviveEvent (545) */ + interface PezpalletReviveEvent extends Enum { + readonly isContractEmitted: boolean; + readonly asContractEmitted: { + readonly contract: H160; + readonly data: Bytes; + readonly topics: Vec; + } & Struct; + readonly type: 'ContractEmitted'; + } + + /** @name PezpalletDelegatedStakingEvent (546) */ + interface PezpalletDelegatedStakingEvent extends Enum { + readonly isDelegated: boolean; + readonly asDelegated: { + readonly agent: AccountId32; + readonly delegator: AccountId32; + readonly amount: u128; + } & Struct; + readonly isReleased: boolean; + readonly asReleased: { + readonly agent: AccountId32; + readonly delegator: AccountId32; + readonly amount: u128; + } & Struct; + readonly isSlashed: boolean; + readonly asSlashed: { + readonly agent: AccountId32; + readonly delegator: AccountId32; + readonly amount: u128; + } & Struct; + readonly isMigratedDelegation: boolean; + readonly asMigratedDelegation: { + readonly agent: AccountId32; + readonly delegator: AccountId32; + readonly amount: u128; + } & Struct; + readonly type: 'Delegated' | 'Released' | 'Slashed' | 'MigratedDelegation'; + } + + /** @name PezpalletAssetRewardsEvent (547) */ + interface PezpalletAssetRewardsEvent extends Enum { + readonly isStaked: boolean; + readonly asStaked: { + readonly staker: AccountId32; + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isUnstaked: boolean; + readonly asUnstaked: { + readonly caller: AccountId32; + readonly staker: AccountId32; + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isRewardsHarvested: boolean; + readonly asRewardsHarvested: { + readonly caller: AccountId32; + readonly staker: AccountId32; + readonly poolId: u32; + readonly amount: u128; + } & Struct; + readonly isPoolCreated: boolean; + readonly asPoolCreated: { + readonly creator: AccountId32; + readonly poolId: u32; + readonly stakedAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rewardAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rewardRatePerBlock: u128; + readonly expiryBlock: u32; + readonly admin: AccountId32; + } & Struct; + readonly isPoolRewardRateModified: boolean; + readonly asPoolRewardRateModified: { + readonly poolId: u32; + readonly newRewardRatePerBlock: u128; + } & Struct; + readonly isPoolAdminModified: boolean; + readonly asPoolAdminModified: { + readonly poolId: u32; + readonly newAdmin: AccountId32; + } & Struct; + readonly isPoolExpiryBlockModified: boolean; + readonly asPoolExpiryBlockModified: { + readonly poolId: u32; + readonly newExpiryBlock: u32; + } & Struct; + readonly isPoolCleanedUp: boolean; + readonly asPoolCleanedUp: { + readonly poolId: u32; + } & Struct; + readonly type: 'Staked' | 'Unstaked' | 'RewardsHarvested' | 'PoolCreated' | 'PoolRewardRateModified' | 'PoolAdminModified' | 'PoolExpiryBlockModified' | 'PoolCleanedUp'; + } + + /** @name PezpalletAssetsFreezerEvent (548) */ + interface PezpalletAssetsFreezerEvent extends Enum { + readonly isFrozen: boolean; + readonly asFrozen: { + readonly who: AccountId32; + readonly assetId: u32; + readonly amount: u128; + } & Struct; + readonly isThawed: boolean; + readonly asThawed: { + readonly who: AccountId32; + readonly assetId: u32; + readonly amount: u128; + } & Struct; + readonly type: 'Frozen' | 'Thawed'; + } + + /** @name PezpalletMetaTxEvent (549) */ + interface PezpalletMetaTxEvent extends Enum { + readonly isDispatched: boolean; + readonly asDispatched: { + readonly result: Result; + } & Struct; + readonly type: 'Dispatched'; + } + + /** @name PezframeSystemPhase (550) */ + interface PezframeSystemPhase extends Enum { + readonly isApplyExtrinsic: boolean; + readonly asApplyExtrinsic: u32; + readonly isFinalization: boolean; + readonly isInitialization: boolean; + readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; + } + + /** @name PezframeSystemLastRuntimeUpgradeInfo (552) */ + interface PezframeSystemLastRuntimeUpgradeInfo extends Struct { + readonly specVersion: Compact; + readonly specName: Text; + } + + /** @name PezframeSystemCodeUpgradeAuthorization (555) */ + interface PezframeSystemCodeUpgradeAuthorization extends Struct { + readonly codeHash: H256; + readonly checkVersion: bool; + } + + /** @name PezframeSystemLimitsBlockWeights (556) */ + interface PezframeSystemLimitsBlockWeights extends Struct { + readonly baseBlock: PezspWeightsWeightV2Weight; + readonly maxBlock: PezspWeightsWeightV2Weight; + readonly perClass: PezframeSupportDispatchPerDispatchClassWeightsPerClass; + } + + /** @name PezframeSupportDispatchPerDispatchClassWeightsPerClass (557) */ + interface PezframeSupportDispatchPerDispatchClassWeightsPerClass extends Struct { + readonly normal: PezframeSystemLimitsWeightsPerClass; + readonly operational: PezframeSystemLimitsWeightsPerClass; + readonly mandatory: PezframeSystemLimitsWeightsPerClass; + } + + /** @name PezframeSystemLimitsWeightsPerClass (558) */ + interface PezframeSystemLimitsWeightsPerClass extends Struct { + readonly baseExtrinsic: PezspWeightsWeightV2Weight; + readonly maxExtrinsic: Option; + readonly maxTotal: Option; + readonly reserved: Option; + } + + /** @name PezframeSystemLimitsBlockLength (559) */ + interface PezframeSystemLimitsBlockLength extends Struct { + readonly max: PezframeSupportDispatchPerDispatchClassU32; + } + + /** @name PezframeSupportDispatchPerDispatchClassU32 (560) */ + interface PezframeSupportDispatchPerDispatchClassU32 extends Struct { + readonly normal: u32; + readonly operational: u32; + readonly mandatory: u32; + } + + /** @name PezspWeightsRuntimeDbWeight (561) */ + interface PezspWeightsRuntimeDbWeight extends Struct { + readonly read: u64; + readonly write: u64; + } + + /** @name PezspVersionRuntimeVersion (562) */ + interface PezspVersionRuntimeVersion extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec>; + readonly transactionVersion: u32; + readonly systemVersion: u8; + } + + /** @name PezframeSystemError (566) */ + interface PezframeSystemError extends Enum { + readonly isInvalidSpecName: boolean; + readonly isSpecVersionNeedsToIncrease: boolean; + readonly isFailedToExtractRuntimeVersion: boolean; + readonly isNonDefaultComposite: boolean; + readonly isNonZeroRefCount: boolean; + readonly isCallFiltered: boolean; + readonly isMultiBlockMigrationsOngoing: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly type: 'InvalidSpecName' | 'SpecVersionNeedsToIncrease' | 'FailedToExtractRuntimeVersion' | 'NonDefaultComposite' | 'NonZeroRefCount' | 'CallFiltered' | 'MultiBlockMigrationsOngoing' | 'NothingAuthorized' | 'Unauthorized'; + } + + /** @name PezpalletUtilityError (567) */ + interface PezpalletUtilityError extends Enum { + readonly isTooManyCalls: boolean; + readonly type: 'TooManyCalls'; + } + + /** @name PezspConsensusBabeDigestsPreDigest (574) */ + interface PezspConsensusBabeDigestsPreDigest extends Enum { + readonly isPrimary: boolean; + readonly asPrimary: PezspConsensusBabeDigestsPrimaryPreDigest; + readonly isSecondaryPlain: boolean; + readonly asSecondaryPlain: PezspConsensusBabeDigestsSecondaryPlainPreDigest; + readonly isSecondaryVRF: boolean; + readonly asSecondaryVRF: PezspConsensusBabeDigestsSecondaryVRFPreDigest; + readonly type: 'Primary' | 'SecondaryPlain' | 'SecondaryVRF'; + } + + /** @name PezspConsensusBabeDigestsPrimaryPreDigest (575) */ + interface PezspConsensusBabeDigestsPrimaryPreDigest extends Struct { + readonly authorityIndex: u32; + readonly slot: u64; + readonly vrfSignature: PezspCoreSr25519VrfVrfSignature; + } + + /** @name PezspCoreSr25519VrfVrfSignature (576) */ + interface PezspCoreSr25519VrfVrfSignature extends Struct { + readonly preOutput: U8aFixed; + readonly proof: U8aFixed; + } + + /** @name PezspConsensusBabeDigestsSecondaryPlainPreDigest (577) */ + interface PezspConsensusBabeDigestsSecondaryPlainPreDigest extends Struct { + readonly authorityIndex: u32; + readonly slot: u64; + } + + /** @name PezspConsensusBabeDigestsSecondaryVRFPreDigest (578) */ + interface PezspConsensusBabeDigestsSecondaryVRFPreDigest extends Struct { + readonly authorityIndex: u32; + readonly slot: u64; + readonly vrfSignature: PezspCoreSr25519VrfVrfSignature; + } + + /** @name PezspConsensusBabeBabeEpochConfiguration (579) */ + interface PezspConsensusBabeBabeEpochConfiguration extends Struct { + readonly c: ITuple<[u64, u64]>; + readonly allowedSlots: PezspConsensusBabeAllowedSlots; + } + + /** @name PezpalletBabeError (583) */ + interface PezpalletBabeError extends Enum { + readonly isInvalidEquivocationProof: boolean; + readonly isInvalidKeyOwnershipProof: boolean; + readonly isDuplicateOffenceReport: boolean; + readonly isInvalidConfiguration: boolean; + readonly type: 'InvalidEquivocationProof' | 'InvalidKeyOwnershipProof' | 'DuplicateOffenceReport' | 'InvalidConfiguration'; + } + + /** @name PezpalletIndicesError (585) */ + interface PezpalletIndicesError extends Enum { + readonly isNotAssigned: boolean; + readonly isNotOwner: boolean; + readonly isInUse: boolean; + readonly isNotTransfer: boolean; + readonly isPermanent: boolean; + readonly type: 'NotAssigned' | 'NotOwner' | 'InUse' | 'NotTransfer' | 'Permanent'; + } + + /** @name PezpalletBalancesBalanceLock (587) */ + interface PezpalletBalancesBalanceLock extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + readonly reasons: PezpalletBalancesReasons; + } + + /** @name PezpalletBalancesReasons (588) */ + interface PezpalletBalancesReasons extends Enum { + readonly isFee: boolean; + readonly isMisc: boolean; + readonly isAll: boolean; + readonly type: 'Fee' | 'Misc' | 'All'; + } + + /** @name PezpalletBalancesReserveData (591) */ + interface PezpalletBalancesReserveData extends Struct { + readonly id: U8aFixed; + readonly amount: u128; + } + + /** @name PezframeSupportTokensMiscIdAmountRuntimeHoldReason (594) */ + interface PezframeSupportTokensMiscIdAmountRuntimeHoldReason extends Struct { + readonly id: KitchensinkRuntimeRuntimeHoldReason; + readonly amount: u128; + } + + /** @name KitchensinkRuntimeRuntimeHoldReason (595) */ + interface KitchensinkRuntimeRuntimeHoldReason extends Enum { + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletHoldReason; + readonly isCouncil: boolean; + readonly asCouncil: PezpalletCollectiveHoldReason; + readonly isTechnicalCommittee: boolean; + readonly asTechnicalCommittee: PezpalletCollectiveHoldReason; + readonly isContracts: boolean; + readonly asContracts: PezpalletContractsHoldReason; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageHoldReason; + readonly isNis: boolean; + readonly asNis: PezpalletNisHoldReason; + readonly isNftFractionalization: boolean; + readonly asNftFractionalization: PezpalletNftFractionalizationHoldReason; + readonly isTransactionStorage: boolean; + readonly asTransactionStorage: PezpalletTransactionStorageHoldReason; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationHoldReason; + readonly isAllianceMotion: boolean; + readonly asAllianceMotion: PezpalletCollectiveHoldReason; + readonly isSafeMode: boolean; + readonly asSafeMode: PezpalletSafeModeHoldReason; + readonly isRevive: boolean; + readonly asRevive: PezpalletReviveHoldReason; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingHoldReason; + readonly isAssetRewards: boolean; + readonly asAssetRewards: PezpalletAssetRewardsHoldReason; + readonly type: 'Staking' | 'Council' | 'TechnicalCommittee' | 'Contracts' | 'Preimage' | 'Nis' | 'NftFractionalization' | 'TransactionStorage' | 'StateTrieMigration' | 'AllianceMotion' | 'SafeMode' | 'Revive' | 'DelegatedStaking' | 'AssetRewards'; + } + + /** @name PezpalletStakingPezpalletHoldReason (596) */ + interface PezpalletStakingPezpalletHoldReason extends Enum { + readonly isStaking: boolean; + readonly type: 'Staking'; + } + + /** @name PezpalletCollectiveHoldReason (597) */ + interface PezpalletCollectiveHoldReason extends Enum { + readonly isProposalSubmission: boolean; + readonly type: 'ProposalSubmission'; + } + + /** @name PezpalletContractsHoldReason (599) */ + interface PezpalletContractsHoldReason extends Enum { + readonly isCodeUploadDepositReserve: boolean; + readonly isStorageDepositReserve: boolean; + readonly type: 'CodeUploadDepositReserve' | 'StorageDepositReserve'; + } + + /** @name PezpalletPreimageHoldReason (600) */ + interface PezpalletPreimageHoldReason extends Enum { + readonly isPreimage: boolean; + readonly type: 'Preimage'; + } + + /** @name PezpalletNisHoldReason (601) */ + interface PezpalletNisHoldReason extends Enum { + readonly isNftReceipt: boolean; + readonly type: 'NftReceipt'; + } + + /** @name PezpalletNftFractionalizationHoldReason (602) */ + interface PezpalletNftFractionalizationHoldReason extends Enum { + readonly isFractionalized: boolean; + readonly type: 'Fractionalized'; + } + + /** @name PezpalletTransactionStorageHoldReason (603) */ + interface PezpalletTransactionStorageHoldReason extends Enum { + readonly isStorageFeeHold: boolean; + readonly type: 'StorageFeeHold'; + } + + /** @name PezpalletStateTrieMigrationHoldReason (604) */ + interface PezpalletStateTrieMigrationHoldReason extends Enum { + readonly isSlashForMigrate: boolean; + readonly type: 'SlashForMigrate'; + } + + /** @name PezpalletSafeModeHoldReason (606) */ + interface PezpalletSafeModeHoldReason extends Enum { + readonly isEnterOrExtend: boolean; + readonly type: 'EnterOrExtend'; + } + + /** @name PezpalletReviveHoldReason (607) */ + interface PezpalletReviveHoldReason extends Enum { + readonly isCodeUploadDepositReserve: boolean; + readonly isStorageDepositReserve: boolean; + readonly isAddressMapping: boolean; + readonly type: 'CodeUploadDepositReserve' | 'StorageDepositReserve' | 'AddressMapping'; + } + + /** @name PezpalletDelegatedStakingHoldReason (608) */ + interface PezpalletDelegatedStakingHoldReason extends Enum { + readonly isStakingDelegation: boolean; + readonly type: 'StakingDelegation'; + } + + /** @name PezpalletAssetRewardsHoldReason (609) */ + interface PezpalletAssetRewardsHoldReason extends Enum { + readonly isPoolCreation: boolean; + readonly type: 'PoolCreation'; + } + + /** @name PezframeSupportTokensMiscIdAmountRuntimeFreezeReason (612) */ + interface PezframeSupportTokensMiscIdAmountRuntimeFreezeReason extends Struct { + readonly id: KitchensinkRuntimeRuntimeFreezeReason; + readonly amount: u128; + } + + /** @name KitchensinkRuntimeRuntimeFreezeReason (613) */ + interface KitchensinkRuntimeRuntimeFreezeReason extends Enum { + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsFreezeReason; + readonly isAssetRewards: boolean; + readonly asAssetRewards: PezpalletAssetRewardsFreezeReason; + readonly type: 'NominationPools' | 'AssetRewards'; + } + + /** @name PezpalletNominationPoolsFreezeReason (614) */ + interface PezpalletNominationPoolsFreezeReason extends Enum { + readonly isPoolMinBalance: boolean; + readonly type: 'PoolMinBalance'; + } + + /** @name PezpalletAssetRewardsFreezeReason (615) */ + interface PezpalletAssetRewardsFreezeReason extends Enum { + readonly isStaked: boolean; + readonly type: 'Staked'; + } + + /** @name PezpalletBalancesError (617) */ + interface PezpalletBalancesError extends Enum { + readonly isVestingBalance: boolean; + readonly isLiquidityRestrictions: boolean; + readonly isInsufficientBalance: boolean; + readonly isExistentialDeposit: boolean; + readonly isExpendability: boolean; + readonly isExistingVestingSchedule: boolean; + readonly isDeadAccount: boolean; + readonly isTooManyReserves: boolean; + readonly isTooManyHolds: boolean; + readonly isTooManyFreezes: boolean; + readonly isIssuanceDeactivated: boolean; + readonly isDeltaZero: boolean; + readonly type: 'VestingBalance' | 'LiquidityRestrictions' | 'InsufficientBalance' | 'ExistentialDeposit' | 'Expendability' | 'ExistingVestingSchedule' | 'DeadAccount' | 'TooManyReserves' | 'TooManyHolds' | 'TooManyFreezes' | 'IssuanceDeactivated' | 'DeltaZero'; + } + + /** @name PezpalletTransactionPaymentReleases (618) */ + interface PezpalletTransactionPaymentReleases extends Enum { + readonly isV1Ancient: boolean; + readonly isV2: boolean; + readonly type: 'V1Ancient' | 'V2'; + } + + /** @name PezpalletElectionProviderMultiPhaseReadySolution (619) */ + interface PezpalletElectionProviderMultiPhaseReadySolution extends Struct { + readonly supports: Vec>; + readonly score: PezspNposElectionsElectionScore; + readonly compute: PezpalletElectionProviderMultiPhaseElectionCompute; + } + + /** @name PezpalletElectionProviderMultiPhaseRoundSnapshot (621) */ + interface PezpalletElectionProviderMultiPhaseRoundSnapshot extends Struct { + readonly voters: Vec]>>; + readonly targets: Vec; + } + + /** @name PezpalletElectionProviderMultiPhaseSignedSignedSubmission (628) */ + interface PezpalletElectionProviderMultiPhaseSignedSignedSubmission extends Struct { + readonly who: AccountId32; + readonly deposit: u128; + readonly rawSolution: PezpalletElectionProviderMultiPhaseRawSolution; + readonly callFee: u128; + } + + /** @name PezpalletElectionProviderMultiPhaseError (629) */ + interface PezpalletElectionProviderMultiPhaseError extends Enum { + readonly isPreDispatchEarlySubmission: boolean; + readonly isPreDispatchWrongWinnerCount: boolean; + readonly isPreDispatchWeakSubmission: boolean; + readonly isSignedQueueFull: boolean; + readonly isSignedCannotPayDeposit: boolean; + readonly isSignedInvalidWitness: boolean; + readonly isSignedTooMuchWeight: boolean; + readonly isOcwCallWrongEra: boolean; + readonly isMissingSnapshotMetadata: boolean; + readonly isInvalidSubmissionIndex: boolean; + readonly isCallNotAllowed: boolean; + readonly isFallbackFailed: boolean; + readonly isBoundNotMet: boolean; + readonly isTooManyWinners: boolean; + readonly isPreDispatchDifferentRound: boolean; + readonly type: 'PreDispatchEarlySubmission' | 'PreDispatchWrongWinnerCount' | 'PreDispatchWeakSubmission' | 'SignedQueueFull' | 'SignedCannotPayDeposit' | 'SignedInvalidWitness' | 'SignedTooMuchWeight' | 'OcwCallWrongEra' | 'MissingSnapshotMetadata' | 'InvalidSubmissionIndex' | 'CallNotAllowed' | 'FallbackFailed' | 'BoundNotMet' | 'TooManyWinners' | 'PreDispatchDifferentRound'; + } + + /** @name PezpalletStakingStakingLedger (630) */ + interface PezpalletStakingStakingLedger extends Struct { + readonly stash: AccountId32; + readonly total: Compact; + readonly active: Compact; + readonly unlocking: Vec; + readonly legacyClaimedRewards: Vec; + } + + /** @name PezpalletStakingNominations (632) */ + interface PezpalletStakingNominations extends Struct { + readonly targets: Vec; + readonly submittedIn: u32; + readonly suppressed: bool; + } + + /** @name PezpalletStakingActiveEraInfo (633) */ + interface PezpalletStakingActiveEraInfo extends Struct { + readonly index: u32; + readonly start: Option; + } + + /** @name PezspStakingExposure (636) */ + interface PezspStakingExposure extends Struct { + readonly total: Compact; + readonly own: Compact; + readonly others: Vec; + } + + /** @name PezspStakingIndividualExposure (638) */ + interface PezspStakingIndividualExposure extends Struct { + readonly who: AccountId32; + readonly value: Compact; + } + + /** @name PezspStakingPagedExposureMetadata (639) */ + interface PezspStakingPagedExposureMetadata extends Struct { + readonly total: Compact; + readonly own: Compact; + readonly nominatorCount: u32; + readonly pageCount: u32; + } + + /** @name PezspStakingExposurePage (641) */ + interface PezspStakingExposurePage extends Struct { + readonly pageTotal: Compact; + readonly others: Vec; + } + + /** @name PezpalletStakingEraRewardPoints (642) */ + interface PezpalletStakingEraRewardPoints extends Struct { + readonly total: u32; + readonly individual: BTreeMap; + } + + /** @name PezpalletStakingUnappliedSlash (647) */ + interface PezpalletStakingUnappliedSlash extends Struct { + readonly validator: AccountId32; + readonly own: u128; + readonly others: Vec>; + readonly reporters: Vec; + readonly payout: u128; + } + + /** @name PezpalletStakingSlashingSlashingSpans (649) */ + interface PezpalletStakingSlashingSlashingSpans extends Struct { + readonly spanIndex: u32; + readonly lastStart: u32; + readonly lastNonzeroSlash: u32; + readonly prior: Vec; + } + + /** @name PezpalletStakingSlashingSpanRecord (650) */ + interface PezpalletStakingSlashingSpanRecord extends Struct { + readonly slashed: u128; + readonly paidOut: u128; + } + + /** @name PezpalletStakingPezpalletError (651) */ + interface PezpalletStakingPezpalletError extends Enum { + readonly isNotController: boolean; + readonly isNotStash: boolean; + readonly isAlreadyBonded: boolean; + readonly isAlreadyPaired: boolean; + readonly isEmptyTargets: boolean; + readonly isDuplicateIndex: boolean; + readonly isInvalidSlashIndex: boolean; + readonly isInsufficientBond: boolean; + readonly isNoMoreChunks: boolean; + readonly isNoUnlockChunk: boolean; + readonly isFundedTarget: boolean; + readonly isInvalidEraToReward: boolean; + readonly isInvalidNumberOfNominations: boolean; + readonly isNotSortedAndUnique: boolean; + readonly isAlreadyClaimed: boolean; + readonly isInvalidPage: boolean; + readonly isIncorrectHistoryDepth: boolean; + readonly isIncorrectSlashingSpans: boolean; + readonly isBadState: boolean; + readonly isTooManyTargets: boolean; + readonly isBadTarget: boolean; + readonly isCannotChillOther: boolean; + readonly isTooManyNominators: boolean; + readonly isTooManyValidators: boolean; + readonly isCommissionTooLow: boolean; + readonly isBoundNotMet: boolean; + readonly isControllerDeprecated: boolean; + readonly isCannotRestoreLedger: boolean; + readonly isRewardDestinationRestricted: boolean; + readonly isNotEnoughFunds: boolean; + readonly isVirtualStakerNotAllowed: boolean; + readonly isCannotReapStash: boolean; + readonly isAlreadyMigrated: boolean; + readonly isRestricted: boolean; + readonly type: 'NotController' | 'NotStash' | 'AlreadyBonded' | 'AlreadyPaired' | 'EmptyTargets' | 'DuplicateIndex' | 'InvalidSlashIndex' | 'InsufficientBond' | 'NoMoreChunks' | 'NoUnlockChunk' | 'FundedTarget' | 'InvalidEraToReward' | 'InvalidNumberOfNominations' | 'NotSortedAndUnique' | 'AlreadyClaimed' | 'InvalidPage' | 'IncorrectHistoryDepth' | 'IncorrectSlashingSpans' | 'BadState' | 'TooManyTargets' | 'BadTarget' | 'CannotChillOther' | 'TooManyNominators' | 'TooManyValidators' | 'CommissionTooLow' | 'BoundNotMet' | 'ControllerDeprecated' | 'CannotRestoreLedger' | 'RewardDestinationRestricted' | 'NotEnoughFunds' | 'VirtualStakerNotAllowed' | 'CannotReapStash' | 'AlreadyMigrated' | 'Restricted'; + } + + /** @name PezspCoreCryptoKeyTypeId (658) */ + interface PezspCoreCryptoKeyTypeId extends U8aFixed {} + + /** @name PezpalletSessionError (659) */ + interface PezpalletSessionError extends Enum { + readonly isInvalidProof: boolean; + readonly isNoAssociatedValidatorId: boolean; + readonly isDuplicatedKey: boolean; + readonly isNoKeys: boolean; + readonly isNoAccount: boolean; + readonly type: 'InvalidProof' | 'NoAssociatedValidatorId' | 'DuplicatedKey' | 'NoKeys' | 'NoAccount'; + } + + /** @name PezpalletDemocracyReferendumInfo (665) */ + interface PezpalletDemocracyReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PezpalletDemocracyReferendumStatus; + readonly isFinished: boolean; + readonly asFinished: { + readonly approved: bool; + readonly end: u32; + } & Struct; + readonly type: 'Ongoing' | 'Finished'; + } + + /** @name PezpalletDemocracyReferendumStatus (666) */ + interface PezpalletDemocracyReferendumStatus extends Struct { + readonly end: u32; + readonly proposal: PezframeSupportPreimagesBounded; + readonly threshold: PezpalletDemocracyVoteThreshold; + readonly delay: u32; + readonly tally: PezpalletDemocracyTally; + } + + /** @name PezpalletDemocracyTally (667) */ + interface PezpalletDemocracyTally extends Struct { + readonly ayes: u128; + readonly nays: u128; + readonly turnout: u128; + } + + /** @name PezpalletDemocracyVoteVoting (668) */ + interface PezpalletDemocracyVoteVoting extends Enum { + readonly isDirect: boolean; + readonly asDirect: { + readonly votes: Vec>; + readonly delegations: PezpalletDemocracyDelegations; + readonly prior: PezpalletDemocracyVotePriorLock; + } & Struct; + readonly isDelegating: boolean; + readonly asDelegating: { + readonly balance: u128; + readonly target: AccountId32; + readonly conviction: PezpalletDemocracyConviction; + readonly delegations: PezpalletDemocracyDelegations; + readonly prior: PezpalletDemocracyVotePriorLock; + } & Struct; + readonly type: 'Direct' | 'Delegating'; + } + + /** @name PezpalletDemocracyDelegations (672) */ + interface PezpalletDemocracyDelegations extends Struct { + readonly votes: u128; + readonly capital: u128; + } + + /** @name PezpalletDemocracyVotePriorLock (673) */ + interface PezpalletDemocracyVotePriorLock extends ITuple<[u32, u128]> {} + + /** @name PezpalletDemocracyError (676) */ + interface PezpalletDemocracyError extends Enum { + readonly isValueLow: boolean; + readonly isProposalMissing: boolean; + readonly isAlreadyCanceled: boolean; + readonly isDuplicateProposal: boolean; + readonly isProposalBlacklisted: boolean; + readonly isNotSimpleMajority: boolean; + readonly isInvalidHash: boolean; + readonly isNoProposal: boolean; + readonly isAlreadyVetoed: boolean; + readonly isReferendumInvalid: boolean; + readonly isNoneWaiting: boolean; + readonly isNotVoter: boolean; + readonly isNoPermission: boolean; + readonly isAlreadyDelegating: boolean; + readonly isInsufficientFunds: boolean; + readonly isNotDelegating: boolean; + readonly isVotesExist: boolean; + readonly isInstantNotAllowed: boolean; + readonly isNonsense: boolean; + readonly isWrongUpperBound: boolean; + readonly isMaxVotesReached: boolean; + readonly isTooMany: boolean; + readonly isVotingPeriodLow: boolean; + readonly isPreimageNotExist: boolean; + readonly type: 'ValueLow' | 'ProposalMissing' | 'AlreadyCanceled' | 'DuplicateProposal' | 'ProposalBlacklisted' | 'NotSimpleMajority' | 'InvalidHash' | 'NoProposal' | 'AlreadyVetoed' | 'ReferendumInvalid' | 'NoneWaiting' | 'NotVoter' | 'NoPermission' | 'AlreadyDelegating' | 'InsufficientFunds' | 'NotDelegating' | 'VotesExist' | 'InstantNotAllowed' | 'Nonsense' | 'WrongUpperBound' | 'MaxVotesReached' | 'TooMany' | 'VotingPeriodLow' | 'PreimageNotExist'; + } + + /** @name PezpalletCollectiveVotes (680) */ + interface PezpalletCollectiveVotes extends Struct { + readonly index: u32; + readonly threshold: u32; + readonly ayes: Vec; + readonly nays: Vec; + readonly end: u32; + } + + /** @name PezpalletCollectiveError (681) */ + interface PezpalletCollectiveError extends Enum { + readonly isNotMember: boolean; + readonly isDuplicateProposal: boolean; + readonly isProposalMissing: boolean; + readonly isWrongIndex: boolean; + readonly isDuplicateVote: boolean; + readonly isAlreadyInitialized: boolean; + readonly isTooEarly: boolean; + readonly isTooManyProposals: boolean; + readonly isWrongProposalWeight: boolean; + readonly isWrongProposalLength: boolean; + readonly isPrimeAccountNotMember: boolean; + readonly isProposalActive: boolean; + readonly type: 'NotMember' | 'DuplicateProposal' | 'ProposalMissing' | 'WrongIndex' | 'DuplicateVote' | 'AlreadyInitialized' | 'TooEarly' | 'TooManyProposals' | 'WrongProposalWeight' | 'WrongProposalLength' | 'PrimeAccountNotMember' | 'ProposalActive'; + } + + /** @name PezpalletElectionsPhragmenSeatHolder (685) */ + interface PezpalletElectionsPhragmenSeatHolder extends Struct { + readonly who: AccountId32; + readonly stake: u128; + readonly deposit: u128; + } + + /** @name PezpalletElectionsPhragmenVoter (686) */ + interface PezpalletElectionsPhragmenVoter extends Struct { + readonly votes: Vec; + readonly stake: u128; + readonly deposit: u128; + } + + /** @name PezpalletElectionsPhragmenError (687) */ + interface PezpalletElectionsPhragmenError extends Enum { + readonly isUnableToVote: boolean; + readonly isNoVotes: boolean; + readonly isTooManyVotes: boolean; + readonly isMaximumVotesExceeded: boolean; + readonly isLowBalance: boolean; + readonly isUnableToPayBond: boolean; + readonly isMustBeVoter: boolean; + readonly isDuplicatedCandidate: boolean; + readonly isTooManyCandidates: boolean; + readonly isMemberSubmit: boolean; + readonly isRunnerUpSubmit: boolean; + readonly isInsufficientCandidateFunds: boolean; + readonly isNotMember: boolean; + readonly isInvalidWitnessData: boolean; + readonly isInvalidVoteCount: boolean; + readonly isInvalidRenouncing: boolean; + readonly isInvalidReplacement: boolean; + readonly type: 'UnableToVote' | 'NoVotes' | 'TooManyVotes' | 'MaximumVotesExceeded' | 'LowBalance' | 'UnableToPayBond' | 'MustBeVoter' | 'DuplicatedCandidate' | 'TooManyCandidates' | 'MemberSubmit' | 'RunnerUpSubmit' | 'InsufficientCandidateFunds' | 'NotMember' | 'InvalidWitnessData' | 'InvalidVoteCount' | 'InvalidRenouncing' | 'InvalidReplacement'; + } + + /** @name PezpalletMembershipError (689) */ + interface PezpalletMembershipError extends Enum { + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isTooManyMembers: boolean; + readonly type: 'AlreadyMember' | 'NotMember' | 'TooManyMembers'; + } + + /** @name PezpalletGrandpaStoredState (690) */ + interface PezpalletGrandpaStoredState extends Enum { + readonly isLive: boolean; + readonly isPendingPause: boolean; + readonly asPendingPause: { + readonly scheduledAt: u32; + readonly delay: u32; + } & Struct; + readonly isPaused: boolean; + readonly isPendingResume: boolean; + readonly asPendingResume: { + readonly scheduledAt: u32; + readonly delay: u32; + } & Struct; + readonly type: 'Live' | 'PendingPause' | 'Paused' | 'PendingResume'; + } + + /** @name PezpalletGrandpaStoredPendingChange (691) */ + interface PezpalletGrandpaStoredPendingChange extends Struct { + readonly scheduledAt: u32; + readonly delay: u32; + readonly nextAuthorities: Vec>; + readonly forced: Option; + } + + /** @name PezpalletGrandpaError (693) */ + interface PezpalletGrandpaError extends Enum { + readonly isPauseFailed: boolean; + readonly isResumeFailed: boolean; + readonly isChangePending: boolean; + readonly isTooSoon: boolean; + readonly isInvalidKeyOwnershipProof: boolean; + readonly isInvalidEquivocationProof: boolean; + readonly isDuplicateOffenceReport: boolean; + readonly type: 'PauseFailed' | 'ResumeFailed' | 'ChangePending' | 'TooSoon' | 'InvalidKeyOwnershipProof' | 'InvalidEquivocationProof' | 'DuplicateOffenceReport'; + } + + /** @name PezpalletTreasuryProposal (694) */ + interface PezpalletTreasuryProposal extends Struct { + readonly proposer: AccountId32; + readonly value: u128; + readonly beneficiary: AccountId32; + readonly bond: u128; + } + + /** @name PezpalletTreasurySpendStatus (696) */ + interface PezpalletTreasurySpendStatus extends Struct { + readonly assetKind: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly amount: u128; + readonly beneficiary: AccountId32; + readonly validFrom: u32; + readonly expireAt: u32; + readonly status: PezpalletTreasuryPaymentState; + } + + /** @name PezpalletTreasuryPaymentState (697) */ + interface PezpalletTreasuryPaymentState extends Enum { + readonly isPending: boolean; + readonly isAttempted: boolean; + readonly asAttempted: { + readonly id: Null; + } & Struct; + readonly isFailed: boolean; + readonly type: 'Pending' | 'Attempted' | 'Failed'; + } + + /** @name PezframeSupportPezpalletId (698) */ + interface PezframeSupportPezpalletId extends U8aFixed {} + + /** @name PezpalletTreasuryError (699) */ + interface PezpalletTreasuryError extends Enum { + readonly isInvalidIndex: boolean; + readonly isTooManyApprovals: boolean; + readonly isInsufficientPermission: boolean; + readonly isProposalNotApproved: boolean; + readonly isFailedToConvertBalance: boolean; + readonly isSpendExpired: boolean; + readonly isEarlyPayout: boolean; + readonly isAlreadyAttempted: boolean; + readonly isPayoutError: boolean; + readonly isNotAttempted: boolean; + readonly isInconclusive: boolean; + readonly type: 'InvalidIndex' | 'TooManyApprovals' | 'InsufficientPermission' | 'ProposalNotApproved' | 'FailedToConvertBalance' | 'SpendExpired' | 'EarlyPayout' | 'AlreadyAttempted' | 'PayoutError' | 'NotAttempted' | 'Inconclusive'; + } + + /** @name PezpalletAssetRateError (700) */ + interface PezpalletAssetRateError extends Enum { + readonly isUnknownAssetKind: boolean; + readonly isAlreadyExists: boolean; + readonly isOverflow: boolean; + readonly type: 'UnknownAssetKind' | 'AlreadyExists' | 'Overflow'; + } + + /** @name PezpalletContractsWasmCodeInfo (702) */ + interface PezpalletContractsWasmCodeInfo extends Struct { + readonly owner: AccountId32; + readonly deposit: Compact; + readonly refcount: Compact; + readonly determinism: PezpalletContractsWasmDeterminism; + readonly codeLen: u32; + } + + /** @name PezpalletContractsStorageContractInfo (703) */ + interface PezpalletContractsStorageContractInfo extends Struct { + readonly trieId: Bytes; + readonly codeHash: H256; + readonly storageBytes: u32; + readonly storageItems: u32; + readonly storageByteDeposit: u128; + readonly storageItemDeposit: u128; + readonly storageBaseDeposit: u128; + readonly delegateDependencies: BTreeMap; + } + + /** @name PezpalletContractsStorageDeletionQueueManager (708) */ + interface PezpalletContractsStorageDeletionQueueManager extends Struct { + readonly insertCounter: u32; + readonly deleteCounter: u32; + } + + /** @name PezpalletContractsSchedule (710) */ + interface PezpalletContractsSchedule extends Struct { + readonly limits: PezpalletContractsScheduleLimits; + readonly instructionWeights: PezpalletContractsScheduleInstructionWeights; + } + + /** @name PezpalletContractsScheduleLimits (711) */ + interface PezpalletContractsScheduleLimits extends Struct { + readonly eventTopics: u32; + readonly memoryPages: u32; + readonly subjectLen: u32; + readonly payloadLen: u32; + readonly runtimeMemory: u32; + readonly validatorRuntimeMemory: u32; + readonly eventRefTime: u64; + } + + /** @name PezpalletContractsScheduleInstructionWeights (712) */ + interface PezpalletContractsScheduleInstructionWeights extends Struct { + readonly base: u32; + } + + /** @name PezpalletContractsEnvironment (713) */ + interface PezpalletContractsEnvironment extends Struct { + readonly accountId: PezpalletContractsEnvironmentTypeAccountId32; + readonly balance: PezpalletContractsEnvironmentTypeU128; + readonly hash_: PezpalletContractsEnvironmentTypeH256; + readonly hasher: PezpalletContractsEnvironmentTypeBlakeTwo256; + readonly timestamp: PezpalletContractsEnvironmentTypeU64; + readonly blockNumber: PezpalletContractsEnvironmentTypeU32; + } + + /** @name PezpalletContractsEnvironmentTypeAccountId32 (714) */ + type PezpalletContractsEnvironmentTypeAccountId32 = Null; + + /** @name PezpalletContractsEnvironmentTypeU128 (715) */ + type PezpalletContractsEnvironmentTypeU128 = Null; + + /** @name PezpalletContractsEnvironmentTypeH256 (716) */ + type PezpalletContractsEnvironmentTypeH256 = Null; + + /** @name PezpalletContractsEnvironmentTypeBlakeTwo256 (717) */ + type PezpalletContractsEnvironmentTypeBlakeTwo256 = Null; + + /** @name PezpalletContractsEnvironmentTypeU64 (718) */ + type PezpalletContractsEnvironmentTypeU64 = Null; + + /** @name PezpalletContractsEnvironmentTypeU32 (719) */ + type PezpalletContractsEnvironmentTypeU32 = Null; + + /** @name PezpalletContractsError (721) */ + interface PezpalletContractsError extends Enum { + readonly isInvalidSchedule: boolean; + readonly isInvalidCallFlags: boolean; + readonly isOutOfGas: boolean; + readonly isOutputBufferTooSmall: boolean; + readonly isTransferFailed: boolean; + readonly isMaxCallDepthReached: boolean; + readonly isContractNotFound: boolean; + readonly isCodeTooLarge: boolean; + readonly isCodeNotFound: boolean; + readonly isCodeInfoNotFound: boolean; + readonly isOutOfBounds: boolean; + readonly isDecodingFailed: boolean; + readonly isContractTrapped: boolean; + readonly isValueTooLarge: boolean; + readonly isTerminatedWhileReentrant: boolean; + readonly isInputForwarded: boolean; + readonly isRandomSubjectTooLong: boolean; + readonly isTooManyTopics: boolean; + readonly isNoChainExtension: boolean; + readonly isXcmDecodeFailed: boolean; + readonly isDuplicateContract: boolean; + readonly isTerminatedInConstructor: boolean; + readonly isReentranceDenied: boolean; + readonly isStateChangeDenied: boolean; + readonly isStorageDepositNotEnoughFunds: boolean; + readonly isStorageDepositLimitExhausted: boolean; + readonly isCodeInUse: boolean; + readonly isContractReverted: boolean; + readonly isCodeRejected: boolean; + readonly isIndeterministic: boolean; + readonly isMigrationInProgress: boolean; + readonly isNoMigrationPerformed: boolean; + readonly isMaxDelegateDependenciesReached: boolean; + readonly isDelegateDependencyNotFound: boolean; + readonly isDelegateDependencyAlreadyExists: boolean; + readonly isCannotAddSelfAsDelegateDependency: boolean; + readonly isOutOfTransientStorage: boolean; + readonly type: 'InvalidSchedule' | 'InvalidCallFlags' | 'OutOfGas' | 'OutputBufferTooSmall' | 'TransferFailed' | 'MaxCallDepthReached' | 'ContractNotFound' | 'CodeTooLarge' | 'CodeNotFound' | 'CodeInfoNotFound' | 'OutOfBounds' | 'DecodingFailed' | 'ContractTrapped' | 'ValueTooLarge' | 'TerminatedWhileReentrant' | 'InputForwarded' | 'RandomSubjectTooLong' | 'TooManyTopics' | 'NoChainExtension' | 'XcmDecodeFailed' | 'DuplicateContract' | 'TerminatedInConstructor' | 'ReentranceDenied' | 'StateChangeDenied' | 'StorageDepositNotEnoughFunds' | 'StorageDepositLimitExhausted' | 'CodeInUse' | 'ContractReverted' | 'CodeRejected' | 'Indeterministic' | 'MigrationInProgress' | 'NoMigrationPerformed' | 'MaxDelegateDependenciesReached' | 'DelegateDependencyNotFound' | 'DelegateDependencyAlreadyExists' | 'CannotAddSelfAsDelegateDependency' | 'OutOfTransientStorage'; + } + + /** @name PezpalletSudoError (722) */ + interface PezpalletSudoError extends Enum { + readonly isRequireSudo: boolean; + readonly type: 'RequireSudo'; + } + + /** @name PezpalletImOnlineError (725) */ + interface PezpalletImOnlineError extends Enum { + readonly isInvalidKey: boolean; + readonly isDuplicatedHeartbeat: boolean; + readonly type: 'InvalidKey' | 'DuplicatedHeartbeat'; + } + + /** @name PezspStakingOffenceOffenceDetails (728) */ + interface PezspStakingOffenceOffenceDetails extends Struct { + readonly offender: ITuple<[AccountId32, Null]>; + readonly reporters: Vec; + } + + /** @name PezpalletIdentityRegistration (732) */ + interface PezpalletIdentityRegistration extends Struct { + readonly judgements: Vec>; + readonly deposit: u128; + readonly info: PezpalletIdentityLegacyIdentityInfo; + } + + /** @name PezpalletIdentityRegistrarInfo (740) */ + interface PezpalletIdentityRegistrarInfo extends Struct { + readonly account: AccountId32; + readonly fee: u128; + readonly fields: u64; + } + + /** @name PezpalletIdentityAuthorityProperties (743) */ + interface PezpalletIdentityAuthorityProperties extends Struct { + readonly accountId: AccountId32; + readonly allocation: u32; + } + + /** @name PezpalletIdentityUsernameInformation (744) */ + interface PezpalletIdentityUsernameInformation extends Struct { + readonly owner: AccountId32; + readonly provider: PezpalletIdentityProvider; + } + + /** @name PezpalletIdentityProvider (745) */ + interface PezpalletIdentityProvider extends Enum { + readonly isAllocation: boolean; + readonly isAuthorityDeposit: boolean; + readonly asAuthorityDeposit: u128; + readonly isSystem: boolean; + readonly type: 'Allocation' | 'AuthorityDeposit' | 'System'; + } + + /** @name PezpalletIdentityError (747) */ + interface PezpalletIdentityError extends Enum { + readonly isTooManySubAccounts: boolean; + readonly isNotFound: boolean; + readonly isNotNamed: boolean; + readonly isEmptyIndex: boolean; + readonly isFeeChanged: boolean; + readonly isNoIdentity: boolean; + readonly isStickyJudgement: boolean; + readonly isJudgementGiven: boolean; + readonly isInvalidJudgement: boolean; + readonly isInvalidIndex: boolean; + readonly isInvalidTarget: boolean; + readonly isTooManyRegistrars: boolean; + readonly isAlreadyClaimed: boolean; + readonly isNotSub: boolean; + readonly isNotOwned: boolean; + readonly isJudgementForDifferentIdentity: boolean; + readonly isJudgementPaymentFailed: boolean; + readonly isInvalidSuffix: boolean; + readonly isNotUsernameAuthority: boolean; + readonly isNoAllocation: boolean; + readonly isInvalidSignature: boolean; + readonly isRequiresSignature: boolean; + readonly isInvalidUsername: boolean; + readonly isUsernameTaken: boolean; + readonly isNoUsername: boolean; + readonly isNotExpired: boolean; + readonly isTooEarly: boolean; + readonly isNotUnbinding: boolean; + readonly isAlreadyUnbinding: boolean; + readonly isInsufficientPrivileges: boolean; + readonly type: 'TooManySubAccounts' | 'NotFound' | 'NotNamed' | 'EmptyIndex' | 'FeeChanged' | 'NoIdentity' | 'StickyJudgement' | 'JudgementGiven' | 'InvalidJudgement' | 'InvalidIndex' | 'InvalidTarget' | 'TooManyRegistrars' | 'AlreadyClaimed' | 'NotSub' | 'NotOwned' | 'JudgementForDifferentIdentity' | 'JudgementPaymentFailed' | 'InvalidSuffix' | 'NotUsernameAuthority' | 'NoAllocation' | 'InvalidSignature' | 'RequiresSignature' | 'InvalidUsername' | 'UsernameTaken' | 'NoUsername' | 'NotExpired' | 'TooEarly' | 'NotUnbinding' | 'AlreadyUnbinding' | 'InsufficientPrivileges'; + } + + /** @name PezpalletSocietyMemberRecord (748) */ + interface PezpalletSocietyMemberRecord extends Struct { + readonly rank: u32; + readonly strikes: u32; + readonly vouching: Option; + readonly index: u32; + } + + /** @name PezpalletSocietyVouchingStatus (750) */ + interface PezpalletSocietyVouchingStatus extends Enum { + readonly isVouching: boolean; + readonly isBanned: boolean; + readonly type: 'Vouching' | 'Banned'; + } + + /** @name PezpalletSocietyPayoutRecord (751) */ + interface PezpalletSocietyPayoutRecord extends Struct { + readonly paid: u128; + readonly payouts: Vec>; + } + + /** @name PezpalletSocietyBid (756) */ + interface PezpalletSocietyBid extends Struct { + readonly who: AccountId32; + readonly kind: PezpalletSocietyBidKind; + readonly value: u128; + } + + /** @name PezpalletSocietyBidKind (757) */ + interface PezpalletSocietyBidKind extends Enum { + readonly isDeposit: boolean; + readonly asDeposit: u128; + readonly isVouch: boolean; + readonly asVouch: ITuple<[AccountId32, u128]>; + readonly type: 'Deposit' | 'Vouch'; + } + + /** @name PezpalletSocietyCandidacy (759) */ + interface PezpalletSocietyCandidacy extends Struct { + readonly round: u32; + readonly kind: PezpalletSocietyBidKind; + readonly bid: u128; + readonly tally: PezpalletSocietyTally; + readonly skepticStruck: bool; + } + + /** @name PezpalletSocietyTally (760) */ + interface PezpalletSocietyTally extends Struct { + readonly approvals: u32; + readonly rejections: u32; + } + + /** @name PezpalletSocietyVote (762) */ + interface PezpalletSocietyVote extends Struct { + readonly approve: bool; + readonly weight: u32; + } + + /** @name PezpalletSocietyIntakeRecord (764) */ + interface PezpalletSocietyIntakeRecord extends Struct { + readonly who: AccountId32; + readonly bid: u128; + readonly round: u32; + } + + /** @name PezpalletSocietyError (766) */ + interface PezpalletSocietyError extends Enum { + readonly isNotMember: boolean; + readonly isAlreadyMember: boolean; + readonly isSuspended: boolean; + readonly isNotSuspended: boolean; + readonly isNoPayout: boolean; + readonly isAlreadyFounded: boolean; + readonly isInsufficientPot: boolean; + readonly isAlreadyVouching: boolean; + readonly isNotVouchingOnBidder: boolean; + readonly isHead: boolean; + readonly isFounder: boolean; + readonly isAlreadyBid: boolean; + readonly isAlreadyCandidate: boolean; + readonly isNotCandidate: boolean; + readonly isMaxMembers: boolean; + readonly isNotFounder: boolean; + readonly isNotHead: boolean; + readonly isNotApproved: boolean; + readonly isNotRejected: boolean; + readonly isApproved: boolean; + readonly isRejected: boolean; + readonly isInProgress: boolean; + readonly isTooEarly: boolean; + readonly isVoted: boolean; + readonly isExpired: boolean; + readonly isNotBidder: boolean; + readonly isNoDefender: boolean; + readonly isNotGroup: boolean; + readonly isAlreadyElevated: boolean; + readonly isAlreadyPunished: boolean; + readonly isInsufficientFunds: boolean; + readonly isNoVotes: boolean; + readonly type: 'NotMember' | 'AlreadyMember' | 'Suspended' | 'NotSuspended' | 'NoPayout' | 'AlreadyFounded' | 'InsufficientPot' | 'AlreadyVouching' | 'NotVouchingOnBidder' | 'Head' | 'Founder' | 'AlreadyBid' | 'AlreadyCandidate' | 'NotCandidate' | 'MaxMembers' | 'NotFounder' | 'NotHead' | 'NotApproved' | 'NotRejected' | 'Approved' | 'Rejected' | 'InProgress' | 'TooEarly' | 'Voted' | 'Expired' | 'NotBidder' | 'NoDefender' | 'NotGroup' | 'AlreadyElevated' | 'AlreadyPunished' | 'InsufficientFunds' | 'NoVotes'; + } + + /** @name PezpalletRecoveryRecoveryConfig (767) */ + interface PezpalletRecoveryRecoveryConfig extends Struct { + readonly delayPeriod: u32; + readonly deposit: u128; + readonly friends: Vec; + readonly threshold: u16; + } + + /** @name PezpalletRecoveryActiveRecovery (769) */ + interface PezpalletRecoveryActiveRecovery extends Struct { + readonly created: u32; + readonly deposit: u128; + readonly friends: Vec; + } + + /** @name PezpalletRecoveryError (770) */ + interface PezpalletRecoveryError extends Enum { + readonly isNotAllowed: boolean; + readonly isZeroThreshold: boolean; + readonly isNotEnoughFriends: boolean; + readonly isMaxFriends: boolean; + readonly isNotSorted: boolean; + readonly isNotRecoverable: boolean; + readonly isAlreadyRecoverable: boolean; + readonly isAlreadyStarted: boolean; + readonly isNotStarted: boolean; + readonly isNotFriend: boolean; + readonly isDelayPeriod: boolean; + readonly isAlreadyVouched: boolean; + readonly isThreshold: boolean; + readonly isStillActive: boolean; + readonly isAlreadyProxy: boolean; + readonly isBadState: boolean; + readonly type: 'NotAllowed' | 'ZeroThreshold' | 'NotEnoughFriends' | 'MaxFriends' | 'NotSorted' | 'NotRecoverable' | 'AlreadyRecoverable' | 'AlreadyStarted' | 'NotStarted' | 'NotFriend' | 'DelayPeriod' | 'AlreadyVouched' | 'Threshold' | 'StillActive' | 'AlreadyProxy' | 'BadState'; + } + + /** @name PezpalletVestingReleases (773) */ + interface PezpalletVestingReleases extends Enum { + readonly isV0: boolean; + readonly isV1: boolean; + readonly type: 'V0' | 'V1'; + } + + /** @name PezpalletVestingError (774) */ + interface PezpalletVestingError extends Enum { + readonly isNotVesting: boolean; + readonly isAtMaxVestingSchedules: boolean; + readonly isAmountLow: boolean; + readonly isScheduleIndexOutOfBounds: boolean; + readonly isInvalidScheduleParams: boolean; + readonly type: 'NotVesting' | 'AtMaxVestingSchedules' | 'AmountLow' | 'ScheduleIndexOutOfBounds' | 'InvalidScheduleParams'; + } + + /** @name PezpalletSchedulerScheduled (777) */ + interface PezpalletSchedulerScheduled extends Struct { + readonly maybeId: Option; + readonly priority: u8; + readonly call: PezframeSupportPreimagesBounded; + readonly maybePeriodic: Option>; + readonly origin: KitchensinkRuntimeOriginCaller; + } + + /** @name PezpalletSchedulerRetryConfig (779) */ + interface PezpalletSchedulerRetryConfig extends Struct { + readonly totalRetries: u8; + readonly remaining: u8; + readonly period: u32; + } + + /** @name PezpalletSchedulerError (780) */ + interface PezpalletSchedulerError extends Enum { + readonly isFailedToSchedule: boolean; + readonly isNotFound: boolean; + readonly isTargetBlockNumberInPast: boolean; + readonly isRescheduleNoChange: boolean; + readonly isNamed: boolean; + readonly type: 'FailedToSchedule' | 'NotFound' | 'TargetBlockNumberInPast' | 'RescheduleNoChange' | 'Named'; + } + + /** @name PezpalletGluttonError (781) */ + interface PezpalletGluttonError extends Enum { + readonly isAlreadyInitialized: boolean; + readonly isInsaneLimit: boolean; + readonly type: 'AlreadyInitialized' | 'InsaneLimit'; + } + + /** @name PezpalletPreimageOldRequestStatus (782) */ + interface PezpalletPreimageOldRequestStatus extends Enum { + readonly isUnrequested: boolean; + readonly asUnrequested: { + readonly deposit: ITuple<[AccountId32, u128]>; + readonly len: u32; + } & Struct; + readonly isRequested: boolean; + readonly asRequested: { + readonly deposit: Option>; + readonly count: u32; + readonly len: Option; + } & Struct; + readonly type: 'Unrequested' | 'Requested'; + } + + /** @name PezpalletPreimageRequestStatus (784) */ + interface PezpalletPreimageRequestStatus extends Enum { + readonly isUnrequested: boolean; + readonly asUnrequested: { + readonly ticket: ITuple<[AccountId32, u128]>; + readonly len: u32; + } & Struct; + readonly isRequested: boolean; + readonly asRequested: { + readonly maybeTicket: Option>; + readonly count: u32; + readonly maybeLen: Option; + } & Struct; + readonly type: 'Unrequested' | 'Requested'; + } + + /** @name PezpalletPreimageError (789) */ + interface PezpalletPreimageError extends Enum { + readonly isTooBig: boolean; + readonly isAlreadyNoted: boolean; + readonly isNotAuthorized: boolean; + readonly isNotNoted: boolean; + readonly isRequested: boolean; + readonly isNotRequested: boolean; + readonly isTooMany: boolean; + readonly isTooFew: boolean; + readonly type: 'TooBig' | 'AlreadyNoted' | 'NotAuthorized' | 'NotNoted' | 'Requested' | 'NotRequested' | 'TooMany' | 'TooFew'; + } + + /** @name PezpalletProxyProxyDefinition (792) */ + interface PezpalletProxyProxyDefinition extends Struct { + readonly delegate: AccountId32; + readonly proxyType: KitchensinkRuntimeProxyType; + readonly delay: u32; + } + + /** @name PezpalletProxyAnnouncement (796) */ + interface PezpalletProxyAnnouncement extends Struct { + readonly real: AccountId32; + readonly callHash: H256; + readonly height: u32; + } + + /** @name PezpalletProxyError (798) */ + interface PezpalletProxyError extends Enum { + readonly isTooMany: boolean; + readonly isNotFound: boolean; + readonly isNotProxy: boolean; + readonly isUnproxyable: boolean; + readonly isDuplicate: boolean; + readonly isNoPermission: boolean; + readonly isUnannounced: boolean; + readonly isNoSelfProxy: boolean; + readonly type: 'TooMany' | 'NotFound' | 'NotProxy' | 'Unproxyable' | 'Duplicate' | 'NoPermission' | 'Unannounced' | 'NoSelfProxy'; + } + + /** @name PezpalletMultisigMultisig (800) */ + interface PezpalletMultisigMultisig extends Struct { + readonly when: PezpalletMultisigTimepoint; + readonly deposit: u128; + readonly depositor: AccountId32; + readonly approvals: Vec; + } + + /** @name PezpalletMultisigError (801) */ + interface PezpalletMultisigError extends Enum { + readonly isMinimumThreshold: boolean; + readonly isAlreadyApproved: boolean; + readonly isNoApprovalsNeeded: boolean; + readonly isTooFewSignatories: boolean; + readonly isTooManySignatories: boolean; + readonly isSignatoriesOutOfOrder: boolean; + readonly isSenderInSignatories: boolean; + readonly isNotFound: boolean; + readonly isNotOwner: boolean; + readonly isNoTimepoint: boolean; + readonly isWrongTimepoint: boolean; + readonly isUnexpectedTimepoint: boolean; + readonly isMaxWeightTooLow: boolean; + readonly isAlreadyStored: boolean; + readonly type: 'MinimumThreshold' | 'AlreadyApproved' | 'NoApprovalsNeeded' | 'TooFewSignatories' | 'TooManySignatories' | 'SignatoriesOutOfOrder' | 'SenderInSignatories' | 'NotFound' | 'NotOwner' | 'NoTimepoint' | 'WrongTimepoint' | 'UnexpectedTimepoint' | 'MaxWeightTooLow' | 'AlreadyStored'; + } + + /** @name PezpalletBountiesBounty (802) */ + interface PezpalletBountiesBounty extends Struct { + readonly proposer: AccountId32; + readonly value: u128; + readonly fee: u128; + readonly curatorDeposit: u128; + readonly bond: u128; + readonly status: PezpalletBountiesBountyStatus; + } + + /** @name PezpalletBountiesBountyStatus (803) */ + interface PezpalletBountiesBountyStatus extends Enum { + readonly isProposed: boolean; + readonly isApproved: boolean; + readonly isFunded: boolean; + readonly isCuratorProposed: boolean; + readonly asCuratorProposed: { + readonly curator: AccountId32; + } & Struct; + readonly isActive: boolean; + readonly asActive: { + readonly curator: AccountId32; + readonly updateDue: u32; + } & Struct; + readonly isPendingPayout: boolean; + readonly asPendingPayout: { + readonly curator: AccountId32; + readonly beneficiary: AccountId32; + readonly unlockAt: u32; + } & Struct; + readonly isApprovedWithCurator: boolean; + readonly asApprovedWithCurator: { + readonly curator: AccountId32; + } & Struct; + readonly type: 'Proposed' | 'Approved' | 'Funded' | 'CuratorProposed' | 'Active' | 'PendingPayout' | 'ApprovedWithCurator'; + } + + /** @name PezpalletBountiesError (805) */ + interface PezpalletBountiesError extends Enum { + readonly isInsufficientProposersBalance: boolean; + readonly isInvalidIndex: boolean; + readonly isReasonTooBig: boolean; + readonly isUnexpectedStatus: boolean; + readonly isRequireCurator: boolean; + readonly isInvalidValue: boolean; + readonly isInvalidFee: boolean; + readonly isPendingPayout: boolean; + readonly isPremature: boolean; + readonly isHasActiveChildBounty: boolean; + readonly isTooManyQueued: boolean; + readonly type: 'InsufficientProposersBalance' | 'InvalidIndex' | 'ReasonTooBig' | 'UnexpectedStatus' | 'RequireCurator' | 'InvalidValue' | 'InvalidFee' | 'PendingPayout' | 'Premature' | 'HasActiveChildBounty' | 'TooManyQueued'; + } + + /** @name PezpalletTipsOpenTip (806) */ + interface PezpalletTipsOpenTip extends Struct { + readonly reason: H256; + readonly who: AccountId32; + readonly finder: AccountId32; + readonly deposit: u128; + readonly closes: Option; + readonly tips: Vec>; + readonly findersFee: bool; + } + + /** @name PezpalletTipsError (807) */ + interface PezpalletTipsError extends Enum { + readonly isReasonTooBig: boolean; + readonly isAlreadyKnown: boolean; + readonly isUnknownTip: boolean; + readonly isMaxTipAmountExceeded: boolean; + readonly isNotFinder: boolean; + readonly isStillOpen: boolean; + readonly isPremature: boolean; + readonly type: 'ReasonTooBig' | 'AlreadyKnown' | 'UnknownTip' | 'MaxTipAmountExceeded' | 'NotFinder' | 'StillOpen' | 'Premature'; + } + + /** @name PezpalletAssetsAssetDetails (808) */ + interface PezpalletAssetsAssetDetails extends Struct { + readonly owner: AccountId32; + readonly issuer: AccountId32; + readonly admin: AccountId32; + readonly freezer: AccountId32; + readonly supply: u128; + readonly deposit: u128; + readonly minBalance: u128; + readonly isSufficient: bool; + readonly accounts: u32; + readonly sufficients: u32; + readonly approvals: u32; + readonly status: PezpalletAssetsAssetStatus; + } + + /** @name PezpalletAssetsAssetStatus (809) */ + interface PezpalletAssetsAssetStatus extends Enum { + readonly isLive: boolean; + readonly isFrozen: boolean; + readonly isDestroying: boolean; + readonly type: 'Live' | 'Frozen' | 'Destroying'; + } + + /** @name PezpalletAssetsAssetAccount (810) */ + interface PezpalletAssetsAssetAccount extends Struct { + readonly balance: u128; + readonly status: PezpalletAssetsAccountStatus; + readonly reason: PezpalletAssetsExistenceReason; + readonly extra: Null; + } + + /** @name PezpalletAssetsAccountStatus (811) */ + interface PezpalletAssetsAccountStatus extends Enum { + readonly isLiquid: boolean; + readonly isFrozen: boolean; + readonly isBlocked: boolean; + readonly type: 'Liquid' | 'Frozen' | 'Blocked'; + } + + /** @name PezpalletAssetsExistenceReason (812) */ + interface PezpalletAssetsExistenceReason extends Enum { + readonly isConsumer: boolean; + readonly isSufficient: boolean; + readonly isDepositHeld: boolean; + readonly asDepositHeld: u128; + readonly isDepositRefunded: boolean; + readonly isDepositFrom: boolean; + readonly asDepositFrom: ITuple<[AccountId32, u128]>; + readonly type: 'Consumer' | 'Sufficient' | 'DepositHeld' | 'DepositRefunded' | 'DepositFrom'; + } + + /** @name PezpalletAssetsApproval (814) */ + interface PezpalletAssetsApproval extends Struct { + readonly amount: u128; + readonly deposit: u128; + } + + /** @name PezpalletAssetsAssetMetadata (815) */ + interface PezpalletAssetsAssetMetadata extends Struct { + readonly deposit: u128; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; + } + + /** @name PezpalletAssetsError (817) */ + interface PezpalletAssetsError extends Enum { + readonly isBalanceLow: boolean; + readonly isNoAccount: boolean; + readonly isNoPermission: boolean; + readonly isUnknown: boolean; + readonly isFrozen: boolean; + readonly isInUse: boolean; + readonly isBadWitness: boolean; + readonly isMinBalanceZero: boolean; + readonly isUnavailableConsumer: boolean; + readonly isBadMetadata: boolean; + readonly isUnapproved: boolean; + readonly isWouldDie: boolean; + readonly isAlreadyExists: boolean; + readonly isNoDeposit: boolean; + readonly isWouldBurn: boolean; + readonly isLiveAsset: boolean; + readonly isAssetNotLive: boolean; + readonly isIncorrectStatus: boolean; + readonly isNotFrozen: boolean; + readonly isCallbackFailed: boolean; + readonly isBadAssetId: boolean; + readonly isContainsFreezes: boolean; + readonly isContainsHolds: boolean; + readonly type: 'BalanceLow' | 'NoAccount' | 'NoPermission' | 'Unknown' | 'Frozen' | 'InUse' | 'BadWitness' | 'MinBalanceZero' | 'UnavailableConsumer' | 'BadMetadata' | 'Unapproved' | 'WouldDie' | 'AlreadyExists' | 'NoDeposit' | 'WouldBurn' | 'LiveAsset' | 'AssetNotLive' | 'IncorrectStatus' | 'NotFrozen' | 'CallbackFailed' | 'BadAssetId' | 'ContainsFreezes' | 'ContainsHolds'; + } + + /** @name PezpalletBeefyError (821) */ + interface PezpalletBeefyError extends Enum { + readonly isInvalidKeyOwnershipProof: boolean; + readonly isInvalidDoubleVotingProof: boolean; + readonly isInvalidForkVotingProof: boolean; + readonly isInvalidFutureBlockVotingProof: boolean; + readonly isInvalidEquivocationProofSession: boolean; + readonly isDuplicateOffenceReport: boolean; + readonly isInvalidConfiguration: boolean; + readonly type: 'InvalidKeyOwnershipProof' | 'InvalidDoubleVotingProof' | 'InvalidForkVotingProof' | 'InvalidFutureBlockVotingProof' | 'InvalidEquivocationProofSession' | 'DuplicateOffenceReport' | 'InvalidConfiguration'; + } + + /** @name PezspConsensusBeefyMmrBeefyAuthoritySet (822) */ + interface PezspConsensusBeefyMmrBeefyAuthoritySet extends Struct { + readonly id: u64; + readonly len: u32; + readonly keysetCommitment: H256; + } + + /** @name PezpalletLotteryLotteryConfig (823) */ + interface PezpalletLotteryLotteryConfig extends Struct { + readonly price: u128; + readonly start: u32; + readonly length: u32; + readonly delay: u32; + readonly repeat: bool; + } + + /** @name PezpalletLotteryError (827) */ + interface PezpalletLotteryError extends Enum { + readonly isNotConfigured: boolean; + readonly isInProgress: boolean; + readonly isAlreadyEnded: boolean; + readonly isInvalidCall: boolean; + readonly isAlreadyParticipating: boolean; + readonly isTooManyCalls: boolean; + readonly isEncodingFailed: boolean; + readonly type: 'NotConfigured' | 'InProgress' | 'AlreadyEnded' | 'InvalidCall' | 'AlreadyParticipating' | 'TooManyCalls' | 'EncodingFailed'; + } + + /** @name PezpalletNisBid (830) */ + interface PezpalletNisBid extends Struct { + readonly amount: u128; + readonly who: AccountId32; + } + + /** @name PezpalletNisSummaryRecord (832) */ + interface PezpalletNisSummaryRecord extends Struct { + readonly proportionOwed: Perquintill; + readonly index: u32; + readonly thawed: Perquintill; + readonly lastPeriod: u32; + readonly receiptsOnHold: u128; + } + + /** @name PezpalletNisReceiptRecord (833) */ + interface PezpalletNisReceiptRecord extends Struct { + readonly proportion: Perquintill; + readonly owner: Option>; + readonly expiry: u32; + } + + /** @name PezpalletNisError (835) */ + interface PezpalletNisError extends Enum { + readonly isDurationTooSmall: boolean; + readonly isDurationTooBig: boolean; + readonly isAmountTooSmall: boolean; + readonly isBidTooLow: boolean; + readonly isUnknownReceipt: boolean; + readonly isNotOwner: boolean; + readonly isNotExpired: boolean; + readonly isUnknownBid: boolean; + readonly isPortionTooBig: boolean; + readonly isUnfunded: boolean; + readonly isAlreadyFunded: boolean; + readonly isThrottled: boolean; + readonly isMakesDust: boolean; + readonly isAlreadyCommunal: boolean; + readonly isAlreadyPrivate: boolean; + readonly type: 'DurationTooSmall' | 'DurationTooBig' | 'AmountTooSmall' | 'BidTooLow' | 'UnknownReceipt' | 'NotOwner' | 'NotExpired' | 'UnknownBid' | 'PortionTooBig' | 'Unfunded' | 'AlreadyFunded' | 'Throttled' | 'MakesDust' | 'AlreadyCommunal' | 'AlreadyPrivate'; + } + + /** @name PezpalletUniquesCollectionDetails (836) */ + interface PezpalletUniquesCollectionDetails extends Struct { + readonly owner: AccountId32; + readonly issuer: AccountId32; + readonly admin: AccountId32; + readonly freezer: AccountId32; + readonly totalDeposit: u128; + readonly freeHolding: bool; + readonly items: u32; + readonly itemMetadatas: u32; + readonly attributes: u32; + readonly isFrozen: bool; + } + + /** @name PezpalletUniquesItemDetails (838) */ + interface PezpalletUniquesItemDetails extends Struct { + readonly owner: AccountId32; + readonly approved: Option; + readonly isFrozen: bool; + readonly deposit: u128; + } + + /** @name PezpalletUniquesCollectionMetadata (839) */ + interface PezpalletUniquesCollectionMetadata extends Struct { + readonly deposit: u128; + readonly data: Bytes; + readonly isFrozen: bool; + } + + /** @name PezpalletUniquesItemMetadata (840) */ + interface PezpalletUniquesItemMetadata extends Struct { + readonly deposit: u128; + readonly data: Bytes; + readonly isFrozen: bool; + } + + /** @name PezpalletUniquesError (844) */ + interface PezpalletUniquesError extends Enum { + readonly isNoPermission: boolean; + readonly isUnknownCollection: boolean; + readonly isAlreadyExists: boolean; + readonly isWrongOwner: boolean; + readonly isBadWitness: boolean; + readonly isInUse: boolean; + readonly isFrozen: boolean; + readonly isWrongDelegate: boolean; + readonly isNoDelegate: boolean; + readonly isUnapproved: boolean; + readonly isUnaccepted: boolean; + readonly isLocked: boolean; + readonly isMaxSupplyReached: boolean; + readonly isMaxSupplyAlreadySet: boolean; + readonly isMaxSupplyTooSmall: boolean; + readonly isUnknownItem: boolean; + readonly isNotForSale: boolean; + readonly isBidTooLow: boolean; + readonly type: 'NoPermission' | 'UnknownCollection' | 'AlreadyExists' | 'WrongOwner' | 'BadWitness' | 'InUse' | 'Frozen' | 'WrongDelegate' | 'NoDelegate' | 'Unapproved' | 'Unaccepted' | 'Locked' | 'MaxSupplyReached' | 'MaxSupplyAlreadySet' | 'MaxSupplyTooSmall' | 'UnknownItem' | 'NotForSale' | 'BidTooLow'; + } + + /** @name PezpalletNftsCollectionDetails (845) */ + interface PezpalletNftsCollectionDetails extends Struct { + readonly owner: AccountId32; + readonly ownerDeposit: u128; + readonly items: u32; + readonly itemMetadatas: u32; + readonly itemConfigs: u32; + readonly attributes: u32; + } + + /** @name PezpalletNftsCollectionRole (847) */ + interface PezpalletNftsCollectionRole extends Enum { + readonly isIssuer: boolean; + readonly isFreezer: boolean; + readonly isAdmin: boolean; + readonly type: 'Issuer' | 'Freezer' | 'Admin'; + } + + /** @name PezpalletNftsItemDetails (848) */ + interface PezpalletNftsItemDetails extends Struct { + readonly owner: AccountId32; + readonly approvals: BTreeMap>; + readonly deposit: PezpalletNftsItemDeposit; + } + + /** @name PezpalletNftsItemDeposit (849) */ + interface PezpalletNftsItemDeposit extends Struct { + readonly account: AccountId32; + readonly amount: u128; + } + + /** @name PezpalletNftsCollectionMetadata (854) */ + interface PezpalletNftsCollectionMetadata extends Struct { + readonly deposit: u128; + readonly data: Bytes; + } + + /** @name PezpalletNftsItemMetadata (855) */ + interface PezpalletNftsItemMetadata extends Struct { + readonly deposit: PezpalletNftsItemMetadataDeposit; + readonly data: Bytes; + } + + /** @name PezpalletNftsItemMetadataDeposit (856) */ + interface PezpalletNftsItemMetadataDeposit extends Struct { + readonly account: Option; + readonly amount: u128; + } + + /** @name PezpalletNftsAttributeDeposit (859) */ + interface PezpalletNftsAttributeDeposit extends Struct { + readonly account: Option; + readonly amount: u128; + } + + /** @name PezpalletNftsPendingSwap (862) */ + interface PezpalletNftsPendingSwap extends Struct { + readonly desiredCollection: u32; + readonly desiredItem: Option; + readonly price: Option; + readonly deadline: u32; + } + + /** @name PezpalletNftsPezpalletFeature (864) */ + interface PezpalletNftsPezpalletFeature extends Enum { + readonly isTrading: boolean; + readonly isAttributes: boolean; + readonly isApprovals: boolean; + readonly isSwaps: boolean; + readonly type: 'Trading' | 'Attributes' | 'Approvals' | 'Swaps'; + } + + /** @name PezpalletNftsError (865) */ + interface PezpalletNftsError extends Enum { + readonly isNoPermission: boolean; + readonly isUnknownCollection: boolean; + readonly isAlreadyExists: boolean; + readonly isApprovalExpired: boolean; + readonly isWrongOwner: boolean; + readonly isBadWitness: boolean; + readonly isCollectionIdInUse: boolean; + readonly isItemsNonTransferable: boolean; + readonly isNotDelegate: boolean; + readonly isWrongDelegate: boolean; + readonly isUnapproved: boolean; + readonly isUnaccepted: boolean; + readonly isItemLocked: boolean; + readonly isLockedItemAttributes: boolean; + readonly isLockedCollectionAttributes: boolean; + readonly isLockedItemMetadata: boolean; + readonly isLockedCollectionMetadata: boolean; + readonly isMaxSupplyReached: boolean; + readonly isMaxSupplyLocked: boolean; + readonly isMaxSupplyTooSmall: boolean; + readonly isUnknownItem: boolean; + readonly isUnknownSwap: boolean; + readonly isMetadataNotFound: boolean; + readonly isAttributeNotFound: boolean; + readonly isNotForSale: boolean; + readonly isBidTooLow: boolean; + readonly isReachedApprovalLimit: boolean; + readonly isDeadlineExpired: boolean; + readonly isWrongDuration: boolean; + readonly isMethodDisabled: boolean; + readonly isWrongSetting: boolean; + readonly isInconsistentItemConfig: boolean; + readonly isNoConfig: boolean; + readonly isRolesNotCleared: boolean; + readonly isMintNotStarted: boolean; + readonly isMintEnded: boolean; + readonly isAlreadyClaimed: boolean; + readonly isIncorrectData: boolean; + readonly isWrongOrigin: boolean; + readonly isWrongSignature: boolean; + readonly isIncorrectMetadata: boolean; + readonly isMaxAttributesLimitReached: boolean; + readonly isWrongNamespace: boolean; + readonly isCollectionNotEmpty: boolean; + readonly isWitnessRequired: boolean; + readonly type: 'NoPermission' | 'UnknownCollection' | 'AlreadyExists' | 'ApprovalExpired' | 'WrongOwner' | 'BadWitness' | 'CollectionIdInUse' | 'ItemsNonTransferable' | 'NotDelegate' | 'WrongDelegate' | 'Unapproved' | 'Unaccepted' | 'ItemLocked' | 'LockedItemAttributes' | 'LockedCollectionAttributes' | 'LockedItemMetadata' | 'LockedCollectionMetadata' | 'MaxSupplyReached' | 'MaxSupplyLocked' | 'MaxSupplyTooSmall' | 'UnknownItem' | 'UnknownSwap' | 'MetadataNotFound' | 'AttributeNotFound' | 'NotForSale' | 'BidTooLow' | 'ReachedApprovalLimit' | 'DeadlineExpired' | 'WrongDuration' | 'MethodDisabled' | 'WrongSetting' | 'InconsistentItemConfig' | 'NoConfig' | 'RolesNotCleared' | 'MintNotStarted' | 'MintEnded' | 'AlreadyClaimed' | 'IncorrectData' | 'WrongOrigin' | 'WrongSignature' | 'IncorrectMetadata' | 'MaxAttributesLimitReached' | 'WrongNamespace' | 'CollectionNotEmpty' | 'WitnessRequired'; + } + + /** @name PezpalletNftFractionalizationDetails (866) */ + interface PezpalletNftFractionalizationDetails extends Struct { + readonly asset: u32; + readonly fractions: u128; + readonly deposit: u128; + readonly assetCreator: AccountId32; + } + + /** @name PezpalletNftFractionalizationError (867) */ + interface PezpalletNftFractionalizationError extends Enum { + readonly isIncorrectAssetId: boolean; + readonly isNoPermission: boolean; + readonly isNftNotFound: boolean; + readonly isNftNotFractionalized: boolean; + readonly type: 'IncorrectAssetId' | 'NoPermission' | 'NftNotFound' | 'NftNotFractionalized'; + } + + /** @name PezpalletSalaryStatusType (868) */ + interface PezpalletSalaryStatusType extends Struct { + readonly cycleIndex: u32; + readonly cycleStart: u32; + readonly budget: u128; + readonly totalRegistrations: u128; + readonly totalUnregisteredPaid: u128; + } + + /** @name PezpalletSalaryClaimantStatus (869) */ + interface PezpalletSalaryClaimantStatus extends Struct { + readonly lastActive: u32; + readonly status: PezpalletSalaryClaimState; + } + + /** @name PezpalletSalaryClaimState (870) */ + interface PezpalletSalaryClaimState extends Enum { + readonly isNothing: boolean; + readonly isRegistered: boolean; + readonly asRegistered: u128; + readonly isAttempted: boolean; + readonly asAttempted: { + readonly registered: Option; + readonly id: Null; + readonly amount: u128; + } & Struct; + readonly type: 'Nothing' | 'Registered' | 'Attempted'; + } + + /** @name PezpalletSalaryError (871) */ + interface PezpalletSalaryError extends Enum { + readonly isAlreadyStarted: boolean; + readonly isNotMember: boolean; + readonly isAlreadyInducted: boolean; + readonly isNotInducted: boolean; + readonly isNoClaim: boolean; + readonly isClaimZero: boolean; + readonly isTooLate: boolean; + readonly isTooEarly: boolean; + readonly isNotYet: boolean; + readonly isNotStarted: boolean; + readonly isBankrupt: boolean; + readonly isPayError: boolean; + readonly isInconclusive: boolean; + readonly isNotCurrent: boolean; + readonly type: 'AlreadyStarted' | 'NotMember' | 'AlreadyInducted' | 'NotInducted' | 'NoClaim' | 'ClaimZero' | 'TooLate' | 'TooEarly' | 'NotYet' | 'NotStarted' | 'Bankrupt' | 'PayError' | 'Inconclusive' | 'NotCurrent'; + } + + /** @name PezpalletCoreFellowshipMemberStatus (872) */ + interface PezpalletCoreFellowshipMemberStatus extends Struct { + readonly isActive: bool; + readonly lastPromotion: u32; + readonly lastProof: u32; + } + + /** @name PezpalletCoreFellowshipError (874) */ + interface PezpalletCoreFellowshipError extends Enum { + readonly isUnranked: boolean; + readonly isRanked: boolean; + readonly isUnexpectedRank: boolean; + readonly isInvalidRank: boolean; + readonly isNoPermission: boolean; + readonly isNothingDoing: boolean; + readonly isAlreadyInducted: boolean; + readonly isNotTracked: boolean; + readonly isTooSoon: boolean; + readonly type: 'Unranked' | 'Ranked' | 'UnexpectedRank' | 'InvalidRank' | 'NoPermission' | 'NothingDoing' | 'AlreadyInducted' | 'NotTracked' | 'TooSoon'; + } + + /** @name PezpalletTransactionStorageTransactionInfo (876) */ + interface PezpalletTransactionStorageTransactionInfo extends Struct { + readonly chunkRoot: H256; + readonly contentHash: H256; + readonly size_: u32; + readonly blockChunks: u32; + } + + /** @name PezpalletTransactionStorageError (878) */ + interface PezpalletTransactionStorageError extends Enum { + readonly isNotConfigured: boolean; + readonly isRenewedNotFound: boolean; + readonly isEmptyTransaction: boolean; + readonly isUnexpectedProof: boolean; + readonly isInvalidProof: boolean; + readonly isMissingProof: boolean; + readonly isMissingStateData: boolean; + readonly isDoubleCheck: boolean; + readonly isProofNotChecked: boolean; + readonly isTransactionTooLarge: boolean; + readonly isTooManyTransactions: boolean; + readonly isBadContext: boolean; + readonly type: 'NotConfigured' | 'RenewedNotFound' | 'EmptyTransaction' | 'UnexpectedProof' | 'InvalidProof' | 'MissingProof' | 'MissingStateData' | 'DoubleCheck' | 'ProofNotChecked' | 'TransactionTooLarge' | 'TooManyTransactions' | 'BadContext'; + } + + /** @name PezpalletBagsListListNode (879) */ + interface PezpalletBagsListListNode extends Struct { + readonly id: AccountId32; + readonly prev: Option; + readonly next: Option; + readonly bagUpper: u64; + readonly score: u64; + } + + /** @name PezpalletBagsListListBag (880) */ + interface PezpalletBagsListListBag extends Struct { + readonly head: Option; + readonly tail: Option; + } + + /** @name PezpalletBagsListError (882) */ + interface PezpalletBagsListError extends Enum { + readonly isList: boolean; + readonly asList: PezpalletBagsListListListError; + readonly type: 'List'; + } + + /** @name PezpalletBagsListListListError (883) */ + interface PezpalletBagsListListListError extends Enum { + readonly isDuplicate: boolean; + readonly isNotHeavier: boolean; + readonly isNotInSameBag: boolean; + readonly isNodeNotFound: boolean; + readonly type: 'Duplicate' | 'NotHeavier' | 'NotInSameBag' | 'NodeNotFound'; + } + + /** @name PezpalletChildBountiesChildBounty (884) */ + interface PezpalletChildBountiesChildBounty extends Struct { + readonly parentBounty: u32; + readonly value: u128; + readonly fee: u128; + readonly curatorDeposit: u128; + readonly status: PezpalletChildBountiesChildBountyStatus; + } + + /** @name PezpalletChildBountiesChildBountyStatus (885) */ + interface PezpalletChildBountiesChildBountyStatus extends Enum { + readonly isAdded: boolean; + readonly isCuratorProposed: boolean; + readonly asCuratorProposed: { + readonly curator: AccountId32; + } & Struct; + readonly isActive: boolean; + readonly asActive: { + readonly curator: AccountId32; + } & Struct; + readonly isPendingPayout: boolean; + readonly asPendingPayout: { + readonly curator: AccountId32; + readonly beneficiary: AccountId32; + readonly unlockAt: u32; + } & Struct; + readonly type: 'Added' | 'CuratorProposed' | 'Active' | 'PendingPayout'; + } + + /** @name PezpalletChildBountiesError (886) */ + interface PezpalletChildBountiesError extends Enum { + readonly isParentBountyNotActive: boolean; + readonly isInsufficientBountyBalance: boolean; + readonly isTooManyChildBounties: boolean; + readonly type: 'ParentBountyNotActive' | 'InsufficientBountyBalance' | 'TooManyChildBounties'; + } + + /** @name PezpalletReferendaReferendumInfoConvictionVotingTally (887) */ + interface PezpalletReferendaReferendumInfoConvictionVotingTally extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PezpalletReferendaReferendumStatusConvictionVotingTally; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; + } + + /** @name PezpalletReferendaReferendumStatusConvictionVotingTally (888) */ + interface PezpalletReferendaReferendumStatusConvictionVotingTally extends Struct { + readonly track: u16; + readonly origin: KitchensinkRuntimeOriginCaller; + readonly proposal: PezframeSupportPreimagesBounded; + readonly enactment: PezframeSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PezpalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PezpalletConvictionVotingTally; + readonly inQueue: bool; + readonly alarm: Option]>>; + } + + /** @name PezpalletReferendaDeposit (889) */ + interface PezpalletReferendaDeposit extends Struct { + readonly who: AccountId32; + readonly amount: u128; + } + + /** @name PezpalletReferendaDecidingStatus (892) */ + interface PezpalletReferendaDecidingStatus extends Struct { + readonly since: u32; + readonly confirming: Option; + } + + /** @name PezpalletReferendaTrackDetails (898) */ + interface PezpalletReferendaTrackDetails extends Struct { + readonly name: Text; + readonly maxDeciding: u32; + readonly decisionDeposit: u128; + readonly preparePeriod: u32; + readonly decisionPeriod: u32; + readonly confirmPeriod: u32; + readonly minEnactmentPeriod: u32; + readonly minApproval: PezpalletReferendaCurve; + readonly minSupport: PezpalletReferendaCurve; + } + + /** @name PezpalletReferendaError (899) */ + interface PezpalletReferendaError extends Enum { + readonly isNotOngoing: boolean; + readonly isHasDeposit: boolean; + readonly isBadTrack: boolean; + readonly isFull: boolean; + readonly isQueueEmpty: boolean; + readonly isBadReferendum: boolean; + readonly isNothingToDo: boolean; + readonly isNoTrack: boolean; + readonly isUnfinished: boolean; + readonly isNoPermission: boolean; + readonly isNoDeposit: boolean; + readonly isBadStatus: boolean; + readonly isPreimageNotExist: boolean; + readonly isPreimageStoredWithDifferentLength: boolean; + readonly type: 'NotOngoing' | 'HasDeposit' | 'BadTrack' | 'Full' | 'QueueEmpty' | 'BadReferendum' | 'NothingToDo' | 'NoTrack' | 'Unfinished' | 'NoPermission' | 'NoDeposit' | 'BadStatus' | 'PreimageNotExist' | 'PreimageStoredWithDifferentLength'; + } + + /** @name PezpalletRemarkError (900) */ + interface PezpalletRemarkError extends Enum { + readonly isEmpty: boolean; + readonly isBadContext: boolean; + readonly type: 'Empty' | 'BadContext'; + } + + /** @name PezpalletConvictionVotingVoteVoting (902) */ + interface PezpalletConvictionVotingVoteVoting extends Enum { + readonly isCasting: boolean; + readonly asCasting: PezpalletConvictionVotingVoteCasting; + readonly isDelegating: boolean; + readonly asDelegating: PezpalletConvictionVotingVoteDelegating; + readonly type: 'Casting' | 'Delegating'; + } + + /** @name PezpalletConvictionVotingVoteCasting (903) */ + interface PezpalletConvictionVotingVoteCasting extends Struct { + readonly votes: Vec>; + readonly delegations: PezpalletConvictionVotingDelegations; + readonly prior: PezpalletConvictionVotingVotePriorLock; + } + + /** @name PezpalletConvictionVotingDelegations (907) */ + interface PezpalletConvictionVotingDelegations extends Struct { + readonly votes: u128; + readonly capital: u128; + } + + /** @name PezpalletConvictionVotingVotePriorLock (908) */ + interface PezpalletConvictionVotingVotePriorLock extends ITuple<[u32, u128]> {} + + /** @name PezpalletConvictionVotingVoteDelegating (909) */ + interface PezpalletConvictionVotingVoteDelegating extends Struct { + readonly balance: u128; + readonly target: AccountId32; + readonly conviction: PezpalletConvictionVotingConviction; + readonly delegations: PezpalletConvictionVotingDelegations; + readonly prior: PezpalletConvictionVotingVotePriorLock; + } + + /** @name PezpalletConvictionVotingError (913) */ + interface PezpalletConvictionVotingError extends Enum { + readonly isNotOngoing: boolean; + readonly isNotVoter: boolean; + readonly isNoPermission: boolean; + readonly isNoPermissionYet: boolean; + readonly isAlreadyDelegating: boolean; + readonly isAlreadyVoting: boolean; + readonly isInsufficientFunds: boolean; + readonly isNotDelegating: boolean; + readonly isNonsense: boolean; + readonly isMaxVotesReached: boolean; + readonly isClassNeeded: boolean; + readonly isBadClass: boolean; + readonly type: 'NotOngoing' | 'NotVoter' | 'NoPermission' | 'NoPermissionYet' | 'AlreadyDelegating' | 'AlreadyVoting' | 'InsufficientFunds' | 'NotDelegating' | 'Nonsense' | 'MaxVotesReached' | 'ClassNeeded' | 'BadClass'; + } + + /** @name PezpalletWhitelistError (914) */ + interface PezpalletWhitelistError extends Enum { + readonly isUnavailablePreImage: boolean; + readonly isUndecodableCall: boolean; + readonly isInvalidCallWeightWitness: boolean; + readonly isCallIsNotWhitelisted: boolean; + readonly isCallAlreadyWhitelisted: boolean; + readonly type: 'UnavailablePreImage' | 'UndecodableCall' | 'InvalidCallWeightWitness' | 'CallIsNotWhitelisted' | 'CallAlreadyWhitelisted'; + } + + /** @name PezpalletAllianceMemberRole (919) */ + interface PezpalletAllianceMemberRole extends Enum { + readonly isFellow: boolean; + readonly isAlly: boolean; + readonly isRetiring: boolean; + readonly type: 'Fellow' | 'Ally' | 'Retiring'; + } + + /** @name PezpalletAllianceError (923) */ + interface PezpalletAllianceError extends Enum { + readonly isAllianceNotYetInitialized: boolean; + readonly isAllianceAlreadyInitialized: boolean; + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isNotAlly: boolean; + readonly isNoVotingRights: boolean; + readonly isAlreadyElevated: boolean; + readonly isAlreadyUnscrupulous: boolean; + readonly isAccountNonGrata: boolean; + readonly isNotListedAsUnscrupulous: boolean; + readonly isTooManyUnscrupulousItems: boolean; + readonly isTooLongWebsiteUrl: boolean; + readonly isInsufficientFunds: boolean; + readonly isWithoutRequiredIdentityFields: boolean; + readonly isWithoutGoodIdentityJudgement: boolean; + readonly isMissingProposalHash: boolean; + readonly isMissingAnnouncement: boolean; + readonly isTooManyMembers: boolean; + readonly isTooManyAnnouncements: boolean; + readonly isBadWitness: boolean; + readonly isAlreadyRetiring: boolean; + readonly isRetirementNoticeNotGiven: boolean; + readonly isRetirementPeriodNotPassed: boolean; + readonly isFellowsMissing: boolean; + readonly type: 'AllianceNotYetInitialized' | 'AllianceAlreadyInitialized' | 'AlreadyMember' | 'NotMember' | 'NotAlly' | 'NoVotingRights' | 'AlreadyElevated' | 'AlreadyUnscrupulous' | 'AccountNonGrata' | 'NotListedAsUnscrupulous' | 'TooManyUnscrupulousItems' | 'TooLongWebsiteUrl' | 'InsufficientFunds' | 'WithoutRequiredIdentityFields' | 'WithoutGoodIdentityJudgement' | 'MissingProposalHash' | 'MissingAnnouncement' | 'TooManyMembers' | 'TooManyAnnouncements' | 'BadWitness' | 'AlreadyRetiring' | 'RetirementNoticeNotGiven' | 'RetirementPeriodNotPassed' | 'FellowsMissing'; + } + + /** @name PezpalletNominationPoolsPoolMember (924) */ + interface PezpalletNominationPoolsPoolMember extends Struct { + readonly poolId: u32; + readonly points: u128; + readonly lastRecordedRewardCounter: u128; + readonly unbondingEras: BTreeMap; + } + + /** @name PezpalletNominationPoolsBondedPoolInner (927) */ + interface PezpalletNominationPoolsBondedPoolInner extends Struct { + readonly commission: PezpalletNominationPoolsCommission; + readonly memberCounter: u32; + readonly points: u128; + readonly roles: PezpalletNominationPoolsPoolRoles; + readonly state: PezpalletNominationPoolsPoolState; + } + + /** @name PezpalletNominationPoolsCommission (928) */ + interface PezpalletNominationPoolsCommission extends Struct { + readonly current: Option>; + readonly max: Option; + readonly changeRate: Option; + readonly throttleFrom: Option; + readonly claimPermission: Option; + } + + /** @name PezpalletNominationPoolsPoolRoles (930) */ + interface PezpalletNominationPoolsPoolRoles extends Struct { + readonly depositor: AccountId32; + readonly root: Option; + readonly nominator: Option; + readonly bouncer: Option; + } + + /** @name PezpalletNominationPoolsRewardPool (931) */ + interface PezpalletNominationPoolsRewardPool extends Struct { + readonly lastRecordedRewardCounter: u128; + readonly lastRecordedTotalPayouts: u128; + readonly totalRewardsClaimed: u128; + readonly totalCommissionPending: u128; + readonly totalCommissionClaimed: u128; + } + + /** @name PezpalletNominationPoolsSubPools (932) */ + interface PezpalletNominationPoolsSubPools extends Struct { + readonly noEra: PezpalletNominationPoolsUnbondPool; + readonly withEra: BTreeMap; + } + + /** @name PezpalletNominationPoolsUnbondPool (933) */ + interface PezpalletNominationPoolsUnbondPool extends Struct { + readonly points: u128; + readonly balance: u128; + } + + /** @name PezpalletNominationPoolsError (938) */ + interface PezpalletNominationPoolsError extends Enum { + readonly isPoolNotFound: boolean; + readonly isPoolMemberNotFound: boolean; + readonly isRewardPoolNotFound: boolean; + readonly isSubPoolsNotFound: boolean; + readonly isAccountBelongsToOtherPool: boolean; + readonly isFullyUnbonding: boolean; + readonly isMaxUnbondingLimit: boolean; + readonly isCannotWithdrawAny: boolean; + readonly isMinimumBondNotMet: boolean; + readonly isOverflowRisk: boolean; + readonly isNotDestroying: boolean; + readonly isNotNominator: boolean; + readonly isNotKickerOrDestroying: boolean; + readonly isNotOpen: boolean; + readonly isMaxPools: boolean; + readonly isMaxPoolMembers: boolean; + readonly isCanNotChangeState: boolean; + readonly isDoesNotHavePermission: boolean; + readonly isMetadataExceedsMaxLen: boolean; + readonly isDefensive: boolean; + readonly asDefensive: PezpalletNominationPoolsDefensiveError; + readonly isPartialUnbondNotAllowedPermissionlessly: boolean; + readonly isMaxCommissionRestricted: boolean; + readonly isCommissionExceedsMaximum: boolean; + readonly isCommissionExceedsGlobalMaximum: boolean; + readonly isCommissionChangeThrottled: boolean; + readonly isCommissionChangeRateNotAllowed: boolean; + readonly isNoPendingCommission: boolean; + readonly isNoCommissionCurrentSet: boolean; + readonly isPoolIdInUse: boolean; + readonly isInvalidPoolId: boolean; + readonly isBondExtraRestricted: boolean; + readonly isNothingToAdjust: boolean; + readonly isNothingToSlash: boolean; + readonly isSlashTooLow: boolean; + readonly isAlreadyMigrated: boolean; + readonly isNotMigrated: boolean; + readonly isNotSupported: boolean; + readonly isRestricted: boolean; + readonly type: 'PoolNotFound' | 'PoolMemberNotFound' | 'RewardPoolNotFound' | 'SubPoolsNotFound' | 'AccountBelongsToOtherPool' | 'FullyUnbonding' | 'MaxUnbondingLimit' | 'CannotWithdrawAny' | 'MinimumBondNotMet' | 'OverflowRisk' | 'NotDestroying' | 'NotNominator' | 'NotKickerOrDestroying' | 'NotOpen' | 'MaxPools' | 'MaxPoolMembers' | 'CanNotChangeState' | 'DoesNotHavePermission' | 'MetadataExceedsMaxLen' | 'Defensive' | 'PartialUnbondNotAllowedPermissionlessly' | 'MaxCommissionRestricted' | 'CommissionExceedsMaximum' | 'CommissionExceedsGlobalMaximum' | 'CommissionChangeThrottled' | 'CommissionChangeRateNotAllowed' | 'NoPendingCommission' | 'NoCommissionCurrentSet' | 'PoolIdInUse' | 'InvalidPoolId' | 'BondExtraRestricted' | 'NothingToAdjust' | 'NothingToSlash' | 'SlashTooLow' | 'AlreadyMigrated' | 'NotMigrated' | 'NotSupported' | 'Restricted'; + } + + /** @name PezpalletNominationPoolsDefensiveError (939) */ + interface PezpalletNominationPoolsDefensiveError extends Enum { + readonly isNotEnoughSpaceInUnbondPool: boolean; + readonly isPoolNotFound: boolean; + readonly isRewardPoolNotFound: boolean; + readonly isSubPoolsNotFound: boolean; + readonly isBondedStashKilledPrematurely: boolean; + readonly isDelegationUnsupported: boolean; + readonly isSlashNotApplied: boolean; + readonly type: 'NotEnoughSpaceInUnbondPool' | 'PoolNotFound' | 'RewardPoolNotFound' | 'SubPoolsNotFound' | 'BondedStashKilledPrematurely' | 'DelegationUnsupported' | 'SlashNotApplied'; + } + + /** @name PezpalletReferendaReferendumInfoRankedCollectiveTally (940) */ + interface PezpalletReferendaReferendumInfoRankedCollectiveTally extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PezpalletReferendaReferendumStatusRankedCollectiveTally; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; + } + + /** @name PezpalletReferendaReferendumStatusRankedCollectiveTally (941) */ + interface PezpalletReferendaReferendumStatusRankedCollectiveTally extends Struct { + readonly track: u16; + readonly origin: KitchensinkRuntimeOriginCaller; + readonly proposal: PezframeSupportPreimagesBounded; + readonly enactment: PezframeSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PezpalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PezpalletRankedCollectiveTally; + readonly inQueue: bool; + readonly alarm: Option]>>; + } + + /** @name PezpalletRankedCollectiveMemberRecord (944) */ + interface PezpalletRankedCollectiveMemberRecord extends Struct { + readonly rank: u16; + } + + /** @name PezpalletRankedCollectiveError (948) */ + interface PezpalletRankedCollectiveError extends Enum { + readonly isAlreadyMember: boolean; + readonly isNotMember: boolean; + readonly isNotPolling: boolean; + readonly isOngoing: boolean; + readonly isNoneRemaining: boolean; + readonly isCorruption: boolean; + readonly isRankTooLow: boolean; + readonly isInvalidWitness: boolean; + readonly isNoPermission: boolean; + readonly isSameMember: boolean; + readonly isTooManyMembers: boolean; + readonly type: 'AlreadyMember' | 'NotMember' | 'NotPolling' | 'Ongoing' | 'NoneRemaining' | 'Corruption' | 'RankTooLow' | 'InvalidWitness' | 'NoPermission' | 'SameMember' | 'TooManyMembers'; + } + + /** @name PezpalletAssetConversionPoolInfo (949) */ + interface PezpalletAssetConversionPoolInfo extends Struct { + readonly lpToken: u32; + } + + /** @name PezpalletAssetConversionError (950) */ + interface PezpalletAssetConversionError extends Enum { + readonly isInvalidAssetPair: boolean; + readonly isPoolExists: boolean; + readonly isWrongDesiredAmount: boolean; + readonly isAmountOneLessThanMinimal: boolean; + readonly isAmountTwoLessThanMinimal: boolean; + readonly isReserveLeftLessThanMinimal: boolean; + readonly isAmountOutTooHigh: boolean; + readonly isPoolNotFound: boolean; + readonly isOverflow: boolean; + readonly isAssetOneDepositDidNotMeetMinimum: boolean; + readonly isAssetTwoDepositDidNotMeetMinimum: boolean; + readonly isAssetOneWithdrawalDidNotMeetMinimum: boolean; + readonly isAssetTwoWithdrawalDidNotMeetMinimum: boolean; + readonly isOptimalAmountLessThanDesired: boolean; + readonly isInsufficientLiquidityMinted: boolean; + readonly isZeroLiquidity: boolean; + readonly isZeroAmount: boolean; + readonly isProvidedMinimumNotSufficientForSwap: boolean; + readonly isProvidedMaximumNotSufficientForSwap: boolean; + readonly isInvalidPath: boolean; + readonly isNonUniquePath: boolean; + readonly isIncorrectPoolAssetId: boolean; + readonly isBelowMinimum: boolean; + readonly type: 'InvalidAssetPair' | 'PoolExists' | 'WrongDesiredAmount' | 'AmountOneLessThanMinimal' | 'AmountTwoLessThanMinimal' | 'ReserveLeftLessThanMinimal' | 'AmountOutTooHigh' | 'PoolNotFound' | 'Overflow' | 'AssetOneDepositDidNotMeetMinimum' | 'AssetTwoDepositDidNotMeetMinimum' | 'AssetOneWithdrawalDidNotMeetMinimum' | 'AssetTwoWithdrawalDidNotMeetMinimum' | 'OptimalAmountLessThanDesired' | 'InsufficientLiquidityMinted' | 'ZeroLiquidity' | 'ZeroAmount' | 'ProvidedMinimumNotSufficientForSwap' | 'ProvidedMaximumNotSufficientForSwap' | 'InvalidPath' | 'NonUniquePath' | 'IncorrectPoolAssetId' | 'BelowMinimum'; + } + + /** @name PezpalletFastUnstakeUnstakeRequest (951) */ + interface PezpalletFastUnstakeUnstakeRequest extends Struct { + readonly stashes: Vec>; + readonly checked: Vec; + } + + /** @name PezpalletFastUnstakeError (954) */ + interface PezpalletFastUnstakeError extends Enum { + readonly isNotController: boolean; + readonly isAlreadyQueued: boolean; + readonly isNotFullyBonded: boolean; + readonly isNotQueued: boolean; + readonly isAlreadyHead: boolean; + readonly isCallNotAllowed: boolean; + readonly type: 'NotController' | 'AlreadyQueued' | 'NotFullyBonded' | 'NotQueued' | 'AlreadyHead' | 'CallNotAllowed'; + } + + /** @name PezpalletMessageQueueBookState (955) */ + interface PezpalletMessageQueueBookState extends Struct { + readonly begin: u32; + readonly end: u32; + readonly count: u32; + readonly readyNeighbours: Option; + readonly messageCount: u64; + readonly size_: u64; + } + + /** @name PezpalletMessageQueueNeighbours (957) */ + interface PezpalletMessageQueueNeighbours extends Struct { + readonly prev: u32; + readonly next: u32; + } + + /** @name PezpalletMessageQueuePage (958) */ + interface PezpalletMessageQueuePage extends Struct { + readonly remaining: u32; + readonly remainingSize: u32; + readonly firstIndex: u32; + readonly first: u32; + readonly last: u32; + readonly heap: Bytes; + } + + /** @name PezpalletMessageQueueError (960) */ + interface PezpalletMessageQueueError extends Enum { + readonly isNotReapable: boolean; + readonly isNoPage: boolean; + readonly isNoMessage: boolean; + readonly isAlreadyProcessed: boolean; + readonly isQueued: boolean; + readonly isInsufficientWeight: boolean; + readonly isTemporarilyUnprocessable: boolean; + readonly isQueuePaused: boolean; + readonly isRecursiveDisallowed: boolean; + readonly type: 'NotReapable' | 'NoPage' | 'NoMessage' | 'AlreadyProcessed' | 'Queued' | 'InsufficientWeight' | 'TemporarilyUnprocessable' | 'QueuePaused' | 'RecursiveDisallowed'; + } + + /** @name PezpalletTxPauseError (961) */ + interface PezpalletTxPauseError extends Enum { + readonly isIsPaused: boolean; + readonly isIsUnpaused: boolean; + readonly isUnpausable: boolean; + readonly isNotFound: boolean; + readonly type: 'IsPaused' | 'IsUnpaused' | 'Unpausable' | 'NotFound'; + } + + /** @name PezpalletSafeModeError (962) */ + interface PezpalletSafeModeError extends Enum { + readonly isEntered: boolean; + readonly isExited: boolean; + readonly isNotConfigured: boolean; + readonly isNoDeposit: boolean; + readonly isAlreadyDeposited: boolean; + readonly isCannotReleaseYet: boolean; + readonly isCurrencyError: boolean; + readonly type: 'Entered' | 'Exited' | 'NotConfigured' | 'NoDeposit' | 'AlreadyDeposited' | 'CannotReleaseYet' | 'CurrencyError'; + } + + /** @name PezpalletMigrationsError (963) */ + interface PezpalletMigrationsError extends Enum { + readonly isOngoing: boolean; + readonly type: 'Ongoing'; + } + + /** @name PezpalletBrokerLeaseRecordItem (967) */ + interface PezpalletBrokerLeaseRecordItem extends Struct { + readonly until: u32; + readonly task: u32; + } + + /** @name PezpalletBrokerStatusRecord (969) */ + interface PezpalletBrokerStatusRecord extends Struct { + readonly coreCount: u16; + readonly privatePoolSize: u32; + readonly systemPoolSize: u32; + readonly lastCommittedTimeslice: u32; + readonly lastTimeslice: u32; + } + + /** @name PezpalletBrokerSaleInfoRecord (970) */ + interface PezpalletBrokerSaleInfoRecord extends Struct { + readonly saleStart: u32; + readonly leadinLength: u32; + readonly endPrice: u128; + readonly regionBegin: u32; + readonly regionEnd: u32; + readonly idealCoresSold: u16; + readonly coresOffered: u16; + readonly firstCore: u16; + readonly selloutPrice: Option; + readonly coresSold: u16; + } + + /** @name PezpalletBrokerPotentialRenewalId (971) */ + interface PezpalletBrokerPotentialRenewalId extends Struct { + readonly core: u16; + readonly when: u32; + } + + /** @name PezpalletBrokerPotentialRenewalRecord (972) */ + interface PezpalletBrokerPotentialRenewalRecord extends Struct { + readonly price: u128; + readonly completion: PezpalletBrokerCompletionStatus; + } + + /** @name PezpalletBrokerCompletionStatus (973) */ + interface PezpalletBrokerCompletionStatus extends Enum { + readonly isPartial: boolean; + readonly asPartial: PezpalletBrokerCoreMask; + readonly isComplete: boolean; + readonly asComplete: Vec; + readonly type: 'Partial' | 'Complete'; + } + + /** @name PezpalletBrokerRegionRecord (974) */ + interface PezpalletBrokerRegionRecord extends Struct { + readonly end: u32; + readonly owner: Option; + readonly paid: Option; + } + + /** @name PezpalletBrokerContributionRecord (976) */ + interface PezpalletBrokerContributionRecord extends Struct { + readonly length: u32; + readonly payee: AccountId32; + } + + /** @name PezpalletBrokerPoolIoRecord (977) */ + interface PezpalletBrokerPoolIoRecord extends Struct { + readonly private: i32; + readonly system: i32; + } + + /** @name PezpalletBrokerInstaPoolHistoryRecord (979) */ + interface PezpalletBrokerInstaPoolHistoryRecord extends Struct { + readonly privateContributions: u32; + readonly systemContributions: u32; + readonly maybePayout: Option; + } + + /** @name PezpalletBrokerAutoRenewalRecord (981) */ + interface PezpalletBrokerAutoRenewalRecord extends Struct { + readonly core: u16; + readonly task: u32; + readonly nextRenewal: u32; + } + + /** @name PezpalletBrokerError (983) */ + interface PezpalletBrokerError extends Enum { + readonly isUnknownRegion: boolean; + readonly isNotOwner: boolean; + readonly isPivotTooLate: boolean; + readonly isPivotTooEarly: boolean; + readonly isExteriorPivot: boolean; + readonly isVoidPivot: boolean; + readonly isCompletePivot: boolean; + readonly isCorruptWorkplan: boolean; + readonly isNoSales: boolean; + readonly isOverpriced: boolean; + readonly isUnavailable: boolean; + readonly isSoldOut: boolean; + readonly isWrongTime: boolean; + readonly isNotAllowed: boolean; + readonly isUninitialized: boolean; + readonly isTooEarly: boolean; + readonly isNothingToDo: boolean; + readonly isTooManyReservations: boolean; + readonly isTooManyLeases: boolean; + readonly isLeaseNotFound: boolean; + readonly isUnknownRevenue: boolean; + readonly isUnknownContribution: boolean; + readonly isIncompleteAssignment: boolean; + readonly isStillValid: boolean; + readonly isNoHistory: boolean; + readonly isUnknownReservation: boolean; + readonly isUnknownRenewal: boolean; + readonly isAlreadyExpired: boolean; + readonly isInvalidConfig: boolean; + readonly isNoClaimTimeslices: boolean; + readonly isNoPermission: boolean; + readonly isTooManyAutoRenewals: boolean; + readonly isNonTaskAutoRenewal: boolean; + readonly isSovereignAccountNotFound: boolean; + readonly isAutoRenewalNotEnabled: boolean; + readonly isAssignmentNotFound: boolean; + readonly isCreditPurchaseTooSmall: boolean; + readonly type: 'UnknownRegion' | 'NotOwner' | 'PivotTooLate' | 'PivotTooEarly' | 'ExteriorPivot' | 'VoidPivot' | 'CompletePivot' | 'CorruptWorkplan' | 'NoSales' | 'Overpriced' | 'Unavailable' | 'SoldOut' | 'WrongTime' | 'NotAllowed' | 'Uninitialized' | 'TooEarly' | 'NothingToDo' | 'TooManyReservations' | 'TooManyLeases' | 'LeaseNotFound' | 'UnknownRevenue' | 'UnknownContribution' | 'IncompleteAssignment' | 'StillValid' | 'NoHistory' | 'UnknownReservation' | 'UnknownRenewal' | 'AlreadyExpired' | 'InvalidConfig' | 'NoClaimTimeslices' | 'NoPermission' | 'TooManyAutoRenewals' | 'NonTaskAutoRenewal' | 'SovereignAccountNotFound' | 'AutoRenewalNotEnabled' | 'AssignmentNotFound' | 'CreditPurchaseTooSmall'; + } + + /** @name PezpalletExampleTasksError (984) */ + interface PezpalletExampleTasksError extends Enum { + readonly isNotFound: boolean; + readonly type: 'NotFound'; + } + + /** @name PezpalletAssetConversionOpsError (985) */ + interface PezpalletAssetConversionOpsError extends Enum { + readonly isInvalidAssetPair: boolean; + readonly isPoolNotFound: boolean; + readonly isZeroBalance: boolean; + readonly isPartialTransfer: boolean; + readonly type: 'InvalidAssetPair' | 'PoolNotFound' | 'ZeroBalance' | 'PartialTransfer'; + } + + /** @name PezpalletReviveWasmCodeInfo (987) */ + interface PezpalletReviveWasmCodeInfo extends Struct { + readonly owner: AccountId32; + readonly deposit: Compact; + readonly refcount: Compact; + readonly codeLen: u32; + readonly behaviourVersion: u32; + } + + /** @name PezpalletReviveStorageContractInfo (988) */ + interface PezpalletReviveStorageContractInfo extends Struct { + readonly trieId: Bytes; + readonly codeHash: H256; + readonly storageBytes: u32; + readonly storageItems: u32; + readonly storageByteDeposit: u128; + readonly storageItemDeposit: u128; + readonly storageBaseDeposit: u128; + readonly immutableDataLen: u32; + } + + /** @name PezpalletReviveStorageDeletionQueueManager (990) */ + interface PezpalletReviveStorageDeletionQueueManager extends Struct { + readonly insertCounter: u32; + readonly deleteCounter: u32; + } + + /** @name PezpalletReviveError (991) */ + interface PezpalletReviveError extends Enum { + readonly isInvalidSchedule: boolean; + readonly isInvalidCallFlags: boolean; + readonly isOutOfGas: boolean; + readonly isTransferFailed: boolean; + readonly isMaxCallDepthReached: boolean; + readonly isContractNotFound: boolean; + readonly isCodeNotFound: boolean; + readonly isCodeInfoNotFound: boolean; + readonly isOutOfBounds: boolean; + readonly isDecodingFailed: boolean; + readonly isContractTrapped: boolean; + readonly isValueTooLarge: boolean; + readonly isTerminatedWhileReentrant: boolean; + readonly isInputForwarded: boolean; + readonly isTooManyTopics: boolean; + readonly isNoChainExtension: boolean; + readonly isXcmDecodeFailed: boolean; + readonly isDuplicateContract: boolean; + readonly isTerminatedInConstructor: boolean; + readonly isReentranceDenied: boolean; + readonly isReenteredPallet: boolean; + readonly isStateChangeDenied: boolean; + readonly isStorageDepositNotEnoughFunds: boolean; + readonly isStorageDepositLimitExhausted: boolean; + readonly isCodeInUse: boolean; + readonly isContractReverted: boolean; + readonly isCodeRejected: boolean; + readonly isBlobTooLarge: boolean; + readonly isStaticMemoryTooLarge: boolean; + readonly isBasicBlockTooLarge: boolean; + readonly isInvalidInstruction: boolean; + readonly isMaxDelegateDependenciesReached: boolean; + readonly isDelegateDependencyNotFound: boolean; + readonly isDelegateDependencyAlreadyExists: boolean; + readonly isCannotAddSelfAsDelegateDependency: boolean; + readonly isOutOfTransientStorage: boolean; + readonly isInvalidSyscall: boolean; + readonly isInvalidStorageFlags: boolean; + readonly isExecutionFailed: boolean; + readonly isBalanceConversionFailed: boolean; + readonly isDecimalPrecisionLoss: boolean; + readonly isInvalidImmutableAccess: boolean; + readonly isAccountUnmapped: boolean; + readonly isAccountAlreadyMapped: boolean; + readonly isInvalidGenericTransaction: boolean; + readonly isRefcountOverOrUnderflow: boolean; + readonly isUnsupportedPrecompileAddress: boolean; + readonly isPrecompileFailure: boolean; + readonly type: 'InvalidSchedule' | 'InvalidCallFlags' | 'OutOfGas' | 'TransferFailed' | 'MaxCallDepthReached' | 'ContractNotFound' | 'CodeNotFound' | 'CodeInfoNotFound' | 'OutOfBounds' | 'DecodingFailed' | 'ContractTrapped' | 'ValueTooLarge' | 'TerminatedWhileReentrant' | 'InputForwarded' | 'TooManyTopics' | 'NoChainExtension' | 'XcmDecodeFailed' | 'DuplicateContract' | 'TerminatedInConstructor' | 'ReentranceDenied' | 'ReenteredPallet' | 'StateChangeDenied' | 'StorageDepositNotEnoughFunds' | 'StorageDepositLimitExhausted' | 'CodeInUse' | 'ContractReverted' | 'CodeRejected' | 'BlobTooLarge' | 'StaticMemoryTooLarge' | 'BasicBlockTooLarge' | 'InvalidInstruction' | 'MaxDelegateDependenciesReached' | 'DelegateDependencyNotFound' | 'DelegateDependencyAlreadyExists' | 'CannotAddSelfAsDelegateDependency' | 'OutOfTransientStorage' | 'InvalidSyscall' | 'InvalidStorageFlags' | 'ExecutionFailed' | 'BalanceConversionFailed' | 'DecimalPrecisionLoss' | 'InvalidImmutableAccess' | 'AccountUnmapped' | 'AccountAlreadyMapped' | 'InvalidGenericTransaction' | 'RefcountOverOrUnderflow' | 'UnsupportedPrecompileAddress' | 'PrecompileFailure'; + } + + /** @name PezpalletDelegatedStakingDelegation (992) */ + interface PezpalletDelegatedStakingDelegation extends Struct { + readonly agent: AccountId32; + readonly amount: u128; + } + + /** @name PezpalletDelegatedStakingAgentLedger (993) */ + interface PezpalletDelegatedStakingAgentLedger extends Struct { + readonly payee: AccountId32; + readonly totalDelegated: Compact; + readonly unclaimedWithdrawals: Compact; + readonly pendingSlash: Compact; + } + + /** @name PezpalletDelegatedStakingError (994) */ + interface PezpalletDelegatedStakingError extends Enum { + readonly isNotAllowed: boolean; + readonly isAlreadyStaking: boolean; + readonly isInvalidRewardDestination: boolean; + readonly isInvalidDelegation: boolean; + readonly isNotEnoughFunds: boolean; + readonly isNotAgent: boolean; + readonly isNotDelegator: boolean; + readonly isBadState: boolean; + readonly isUnappliedSlash: boolean; + readonly isNothingToSlash: boolean; + readonly isWithdrawFailed: boolean; + readonly isNotSupported: boolean; + readonly type: 'NotAllowed' | 'AlreadyStaking' | 'InvalidRewardDestination' | 'InvalidDelegation' | 'NotEnoughFunds' | 'NotAgent' | 'NotDelegator' | 'BadState' | 'UnappliedSlash' | 'NothingToSlash' | 'WithdrawFailed' | 'NotSupported'; + } + + /** @name PezpalletAssetRewardsPoolStakerInfo (995) */ + interface PezpalletAssetRewardsPoolStakerInfo extends Struct { + readonly amount: u128; + readonly rewards: u128; + readonly rewardPerTokenPaid: u128; + } + + /** @name PezpalletAssetRewardsPoolInfo (996) */ + interface PezpalletAssetRewardsPoolInfo extends Struct { + readonly stakedAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rewardAssetId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + readonly rewardRatePerBlock: u128; + readonly expiryBlock: u32; + readonly admin: AccountId32; + readonly totalTokensStaked: u128; + readonly rewardPerTokenStored: u128; + readonly lastUpdateBlock: u32; + readonly account: AccountId32; + } + + /** @name PezpalletAssetRewardsError (999) */ + interface PezpalletAssetRewardsError extends Enum { + readonly isNotEnoughTokens: boolean; + readonly isNonExistentPool: boolean; + readonly isNonExistentStaker: boolean; + readonly isNonExistentAsset: boolean; + readonly isBlockNumberConversionError: boolean; + readonly isExpiryBlockMustBeInTheFuture: boolean; + readonly isInsufficientFunds: boolean; + readonly isExpiryCut: boolean; + readonly isRewardRateCut: boolean; + readonly isNonEmptyPool: boolean; + readonly type: 'NotEnoughTokens' | 'NonExistentPool' | 'NonExistentStaker' | 'NonExistentAsset' | 'BlockNumberConversionError' | 'ExpiryBlockMustBeInTheFuture' | 'InsufficientFunds' | 'ExpiryCut' | 'RewardRateCut' | 'NonEmptyPool'; + } + + /** @name PezpalletAssetsFreezerError (1000) */ + interface PezpalletAssetsFreezerError extends Enum { + readonly isTooManyFreezes: boolean; + readonly type: 'TooManyFreezes'; + } + + /** @name PezpalletMetaTxError (1001) */ + interface PezpalletMetaTxError extends Enum { + readonly isBadProof: boolean; + readonly isFuture: boolean; + readonly isStale: boolean; + readonly isAncientBirthBlock: boolean; + readonly isUnknownOrigin: boolean; + readonly isInvalid: boolean; + readonly type: 'BadProof' | 'Future' | 'Stale' | 'AncientBirthBlock' | 'UnknownOrigin' | 'Invalid'; + } + + /** @name PezframeSystemExtensionsCheckWeight (1003) */ + type PezframeSystemExtensionsCheckWeight = Null; + + /** @name PezpalletAssetConversionTxPaymentChargeAssetTxPayment (1004) */ + interface PezpalletAssetConversionTxPaymentChargeAssetTxPayment extends Struct { + readonly tip: Compact; + readonly assetId: Option; + } + + /** @name PezframeSystemExtensionsWeightReclaim (1006) */ + type PezframeSystemExtensionsWeightReclaim = Null; + + /** @name PezspRuntimeBlock (1007) */ + interface PezspRuntimeBlock extends Struct { + readonly header: PezspRuntimeHeader; + readonly extrinsics: Vec; + } + + /** @name PezspRuntimeExtrinsicInclusionMode (1010) */ + interface PezspRuntimeExtrinsicInclusionMode extends Enum { + readonly isAllExtrinsics: boolean; + readonly isOnlyInherents: boolean; + readonly type: 'AllExtrinsics' | 'OnlyInherents'; + } + + /** @name PezframeSupportViewFunctionsViewFunctionId (1013) */ + interface PezframeSupportViewFunctionsViewFunctionId extends Struct { + readonly prefix: U8aFixed; + readonly suffix: U8aFixed; + } + + /** @name PezframeSupportViewFunctionsViewFunctionDispatchError (1015) */ + interface PezframeSupportViewFunctionsViewFunctionDispatchError extends Enum { + readonly isNotImplemented: boolean; + readonly isNotFound: boolean; + readonly asNotFound: PezframeSupportViewFunctionsViewFunctionId; + readonly isCodec: boolean; + readonly type: 'NotImplemented' | 'NotFound' | 'Codec'; + } + + /** @name PezspRuntimeTransactionValidityTransactionValidityError (1017) */ + interface PezspRuntimeTransactionValidityTransactionValidityError extends Enum { + readonly isInvalid: boolean; + readonly asInvalid: PezspRuntimeTransactionValidityInvalidTransaction; + readonly isUnknown: boolean; + readonly asUnknown: PezspRuntimeTransactionValidityUnknownTransaction; + readonly type: 'Invalid' | 'Unknown'; + } + + /** @name PezspRuntimeTransactionValidityInvalidTransaction (1018) */ + interface PezspRuntimeTransactionValidityInvalidTransaction extends Enum { + readonly isCall: boolean; + readonly isPayment: boolean; + readonly isFuture: boolean; + readonly isStale: boolean; + readonly isBadProof: boolean; + readonly isAncientBirthBlock: boolean; + readonly isExhaustsResources: boolean; + readonly isCustom: boolean; + readonly asCustom: u8; + readonly isBadMandatory: boolean; + readonly isMandatoryValidation: boolean; + readonly isBadSigner: boolean; + readonly isIndeterminateImplicit: boolean; + readonly isUnknownOrigin: boolean; + readonly type: 'Call' | 'Payment' | 'Future' | 'Stale' | 'BadProof' | 'AncientBirthBlock' | 'ExhaustsResources' | 'Custom' | 'BadMandatory' | 'MandatoryValidation' | 'BadSigner' | 'IndeterminateImplicit' | 'UnknownOrigin'; + } + + /** @name PezspRuntimeTransactionValidityUnknownTransaction (1019) */ + interface PezspRuntimeTransactionValidityUnknownTransaction extends Enum { + readonly isCannotLookup: boolean; + readonly isNoUnsignedValidator: boolean; + readonly isCustom: boolean; + readonly asCustom: u8; + readonly type: 'CannotLookup' | 'NoUnsignedValidator' | 'Custom'; + } + + /** @name PezspInherentsInherentData (1020) */ + interface PezspInherentsInherentData extends Struct { + readonly data: BTreeMap; + } + + /** @name PezspInherentsCheckInherentsResult (1024) */ + interface PezspInherentsCheckInherentsResult extends Struct { + readonly okay: bool; + readonly fatalError: bool; + readonly errors: PezspInherentsInherentData; + } + + /** @name PezspRuntimeTransactionValidityTransactionSource (1025) */ + interface PezspRuntimeTransactionValidityTransactionSource extends Enum { + readonly isInBlock: boolean; + readonly isLocal: boolean; + readonly isExternal: boolean; + readonly type: 'InBlock' | 'Local' | 'External'; + } + + /** @name PezspRuntimeTransactionValidityValidTransaction (1027) */ + interface PezspRuntimeTransactionValidityValidTransaction extends Struct { + readonly priority: u64; + readonly requires: Vec; + readonly provides: Vec; + readonly longevity: u64; + readonly propagate: bool; + } + + /** @name PezspStatementStoreRuntimeApiStatementSource (1028) */ + interface PezspStatementStoreRuntimeApiStatementSource extends Enum { + readonly isChain: boolean; + readonly isNetwork: boolean; + readonly isLocal: boolean; + readonly type: 'Chain' | 'Network' | 'Local'; + } + + /** @name PezspStatementStoreRuntimeApiValidStatement (1030) */ + interface PezspStatementStoreRuntimeApiValidStatement extends Struct { + readonly maxCount: u32; + readonly maxSize: u32; + } + + /** @name PezspStatementStoreRuntimeApiInvalidStatement (1031) */ + interface PezspStatementStoreRuntimeApiInvalidStatement extends Enum { + readonly isBadProof: boolean; + readonly isNoProof: boolean; + readonly isInternalError: boolean; + readonly type: 'BadProof' | 'NoProof' | 'InternalError'; + } + + /** @name PezspConsensusBabeBabeConfiguration (1035) */ + interface PezspConsensusBabeBabeConfiguration extends Struct { + readonly slotDuration: u64; + readonly epochLength: u64; + readonly c: ITuple<[u64, u64]>; + readonly authorities: Vec>; + readonly randomness: U8aFixed; + readonly allowedSlots: PezspConsensusBabeAllowedSlots; + } + + /** @name PezspConsensusBabeEpoch (1036) */ + interface PezspConsensusBabeEpoch extends Struct { + readonly epochIndex: u64; + readonly startSlot: u64; + readonly duration: u64; + readonly authorities: Vec>; + readonly randomness: U8aFixed; + readonly config: PezspConsensusBabeBabeEpochConfiguration; + } + + /** @name PezpalletContractsPrimitivesExecReturnValue (1041) */ + interface PezpalletContractsPrimitivesExecReturnValue extends Struct { + readonly flags: PezpalletContractsUapiFlagsReturnFlags; + readonly data: Bytes; + } + + /** @name PezpalletContractsUapiFlagsReturnFlags (1042) */ + interface PezpalletContractsUapiFlagsReturnFlags extends Struct { + readonly bits: u32; + } + + /** @name PezpalletContractsPrimitivesStorageDeposit (1043) */ + interface PezpalletContractsPrimitivesStorageDeposit extends Enum { + readonly isRefund: boolean; + readonly asRefund: u128; + readonly isCharge: boolean; + readonly asCharge: u128; + readonly type: 'Refund' | 'Charge'; + } + + /** @name PezpalletContractsPrimitivesCode (1046) */ + interface PezpalletContractsPrimitivesCode extends Enum { + readonly isUpload: boolean; + readonly asUpload: Bytes; + readonly isExisting: boolean; + readonly asExisting: H256; + readonly type: 'Upload' | 'Existing'; + } + + /** @name PezpalletContractsPrimitivesContractResult (1047) */ + interface PezpalletContractsPrimitivesContractResult extends Struct { + readonly gasConsumed: PezspWeightsWeightV2Weight; + readonly gasRequired: PezspWeightsWeightV2Weight; + readonly storageDeposit: PezpalletContractsPrimitivesStorageDeposit; + readonly debugMessage: Bytes; + readonly result: Result; + readonly events: Option>; + } + + /** @name PezpalletContractsPrimitivesInstantiateReturnValue (1049) */ + interface PezpalletContractsPrimitivesInstantiateReturnValue extends Struct { + readonly result: PezpalletContractsPrimitivesExecReturnValue; + readonly accountId: AccountId32; + } + + /** @name PezpalletContractsPrimitivesCodeUploadReturnValue (1051) */ + interface PezpalletContractsPrimitivesCodeUploadReturnValue extends Struct { + readonly codeHash: H256; + readonly deposit: u128; + } + + /** @name PezpalletContractsPrimitivesContractAccessError (1053) */ + interface PezpalletContractsPrimitivesContractAccessError extends Enum { + readonly isDoesntExist: boolean; + readonly isKeyDecodingFailed: boolean; + readonly isMigrationInProgress: boolean; + readonly type: 'DoesntExist' | 'KeyDecodingFailed' | 'MigrationInProgress'; + } + + /** @name PezpalletRevivePrimitivesContractResultExecReturnValue (1056) */ + interface PezpalletRevivePrimitivesContractResultExecReturnValue extends Struct { + readonly gasConsumed: PezspWeightsWeightV2Weight; + readonly gasRequired: PezspWeightsWeightV2Weight; + readonly storageDeposit: PezpalletRevivePrimitivesStorageDeposit; + readonly result: Result; + } + + /** @name PezpalletRevivePrimitivesExecReturnValue (1057) */ + interface PezpalletRevivePrimitivesExecReturnValue extends Struct { + readonly flags: PezpalletReviveUapiFlagsReturnFlags; + readonly data: Bytes; + } + + /** @name PezpalletReviveUapiFlagsReturnFlags (1058) */ + interface PezpalletReviveUapiFlagsReturnFlags extends Struct { + readonly bits: u32; + } + + /** @name PezpalletRevivePrimitivesStorageDeposit (1059) */ + interface PezpalletRevivePrimitivesStorageDeposit extends Enum { + readonly isRefund: boolean; + readonly asRefund: u128; + readonly isCharge: boolean; + readonly asCharge: u128; + readonly type: 'Refund' | 'Charge'; + } + + /** @name PezpalletRevivePrimitivesCode (1061) */ + interface PezpalletRevivePrimitivesCode extends Enum { + readonly isUpload: boolean; + readonly asUpload: Bytes; + readonly isExisting: boolean; + readonly asExisting: H256; + readonly type: 'Upload' | 'Existing'; + } + + /** @name PezpalletRevivePrimitivesContractResultInstantiateReturnValue (1062) */ + interface PezpalletRevivePrimitivesContractResultInstantiateReturnValue extends Struct { + readonly gasConsumed: PezspWeightsWeightV2Weight; + readonly gasRequired: PezspWeightsWeightV2Weight; + readonly storageDeposit: PezpalletRevivePrimitivesStorageDeposit; + readonly result: Result; + } + + /** @name PezpalletRevivePrimitivesInstantiateReturnValue (1063) */ + interface PezpalletRevivePrimitivesInstantiateReturnValue extends Struct { + readonly result: PezpalletRevivePrimitivesExecReturnValue; + readonly addr: H160; + } + + /** @name PezpalletReviveEvmApiRpcTypesGenGenericTransaction (1065) */ + interface PezpalletReviveEvmApiRpcTypesGenGenericTransaction extends Struct { + readonly accessList: Option>; + readonly blobVersionedHashes: Vec; + readonly blobs: Vec; + readonly chainId: Option; + readonly from: Option; + readonly gas: Option; + readonly gasPrice: Option; + readonly input: PezpalletReviveEvmApiRpcTypesGenInputOrData; + readonly maxFeePerBlobGas: Option; + readonly maxFeePerGas: Option; + readonly maxPriorityFeePerGas: Option; + readonly nonce: Option; + readonly to: Option; + readonly r_type: Option; + readonly value: Option; + } + + /** @name PezpalletReviveEvmApiRpcTypesGenAccessListEntry (1068) */ + interface PezpalletReviveEvmApiRpcTypesGenAccessListEntry extends Struct { + readonly address: H160; + readonly storageKeys: Vec; + } + + /** @name PezpalletReviveEvmApiRpcTypesGenInputOrData (1073) */ + interface PezpalletReviveEvmApiRpcTypesGenInputOrData extends Struct { + readonly input: Option; + readonly data: Option; + } + + /** @name PezpalletRevivePrimitivesEthTransactInfo (1078) */ + interface PezpalletRevivePrimitivesEthTransactInfo extends Struct { + readonly gasRequired: PezspWeightsWeightV2Weight; + readonly storageDeposit: u128; + readonly ethGas: U256; + readonly data: Bytes; + } + + /** @name PezpalletRevivePrimitivesEthTransactError (1079) */ + interface PezpalletRevivePrimitivesEthTransactError extends Enum { + readonly isData: boolean; + readonly asData: Bytes; + readonly isMessage: boolean; + readonly asMessage: Text; + readonly type: 'Data' | 'Message'; + } + + /** @name PezpalletRevivePrimitivesCodeUploadReturnValue (1081) */ + interface PezpalletRevivePrimitivesCodeUploadReturnValue extends Struct { + readonly codeHash: H256; + readonly deposit: u128; + } + + /** @name PezpalletRevivePrimitivesContractAccessError (1083) */ + interface PezpalletRevivePrimitivesContractAccessError extends Enum { + readonly isDoesntExist: boolean; + readonly isKeyDecodingFailed: boolean; + readonly type: 'DoesntExist' | 'KeyDecodingFailed'; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesTracerType (1084) */ + interface PezpalletReviveEvmApiDebugRpcTypesTracerType extends Enum { + readonly isCallTracer: boolean; + readonly asCallTracer: Option; + readonly type: 'CallTracer'; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesCallTracerConfig (1086) */ + interface PezpalletReviveEvmApiDebugRpcTypesCallTracerConfig extends Struct { + readonly withLogs: bool; + readonly onlyTopCall: bool; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesTrace (1089) */ + interface PezpalletReviveEvmApiDebugRpcTypesTrace extends Enum { + readonly isCall: boolean; + readonly asCall: PezpalletReviveEvmApiDebugRpcTypesCallTrace; + readonly type: 'Call'; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesCallTrace (1090) */ + interface PezpalletReviveEvmApiDebugRpcTypesCallTrace extends Struct { + readonly from: H160; + readonly gas: U256; + readonly gasUsed: U256; + readonly to: H160; + readonly input: Bytes; + readonly output: Bytes; + readonly error: Option; + readonly revertReason: Option; + readonly calls: Vec; + readonly logs: Vec; + readonly value: Option; + readonly callType: PezpalletReviveEvmApiDebugRpcTypesCallType; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesCallLog (1094) */ + interface PezpalletReviveEvmApiDebugRpcTypesCallLog extends Struct { + readonly address: H160; + readonly topics: Vec; + readonly data: Bytes; + readonly position: u32; + } + + /** @name PezpalletReviveEvmApiDebugRpcTypesCallType (1095) */ + interface PezpalletReviveEvmApiDebugRpcTypesCallType extends Enum { + readonly isCall: boolean; + readonly isStaticCall: boolean; + readonly isDelegateCall: boolean; + readonly type: 'Call' | 'StaticCall' | 'DelegateCall'; + } + + /** @name PezpalletTransactionPaymentRuntimeDispatchInfo (1098) */ + interface PezpalletTransactionPaymentRuntimeDispatchInfo extends Struct { + readonly weight: PezspWeightsWeightV2Weight; + readonly class: PezframeSupportDispatchDispatchClass; + readonly partialFee: u128; + } + + /** @name PezpalletTransactionPaymentFeeDetails (1099) */ + interface PezpalletTransactionPaymentFeeDetails extends Struct { + readonly inclusionFee: Option; + readonly tip: u128; + } + + /** @name PezpalletTransactionPaymentInclusionFee (1101) */ + interface PezpalletTransactionPaymentInclusionFee extends Struct { + readonly baseFee: u128; + readonly lenFee: u128; + readonly adjustedWeightFee: u128; + } + + /** @name PezspConsensusBeefyValidatorSet (1105) */ + interface PezspConsensusBeefyValidatorSet extends Struct { + readonly validators: Vec; + readonly id: u64; + } + + /** @name PezspConsensusBeefyForkVotingProofOpaqueValue (1106) */ + interface PezspConsensusBeefyForkVotingProofOpaqueValue extends Struct { + readonly vote: PezspConsensusBeefyVoteMessage; + readonly ancestryProof: Bytes; + readonly header: PezspRuntimeHeader; + } + + /** @name PezspMmrPrimitivesError (1108) */ + interface PezspMmrPrimitivesError extends Enum { + readonly isInvalidNumericOp: boolean; + readonly isPush: boolean; + readonly isGetRoot: boolean; + readonly isCommit: boolean; + readonly isGenerateProof: boolean; + readonly isVerify: boolean; + readonly isLeafNotFound: boolean; + readonly isPalletNotIncluded: boolean; + readonly isInvalidLeafIndex: boolean; + readonly isInvalidBestKnownBlock: boolean; + readonly type: 'InvalidNumericOp' | 'Push' | 'GetRoot' | 'Commit' | 'GenerateProof' | 'Verify' | 'LeafNotFound' | 'PalletNotIncluded' | 'InvalidLeafIndex' | 'InvalidBestKnownBlock'; + } + + /** @name PezspMmrPrimitivesLeafProof (1114) */ + interface PezspMmrPrimitivesLeafProof extends Struct { + readonly leafIndices: Vec; + readonly leafCount: u64; + readonly items: Vec; + } + + /** @name PezspMixnetSessionStatus (1116) */ + interface PezspMixnetSessionStatus extends Struct { + readonly currentIndex: u32; + readonly phase: PezspMixnetSessionPhase; + } + + /** @name PezspMixnetSessionPhase (1117) */ + interface PezspMixnetSessionPhase extends Enum { + readonly isCoverToCurrent: boolean; + readonly isRequestsToCurrent: boolean; + readonly isCoverToPrev: boolean; + readonly isDisconnectFromPrev: boolean; + readonly type: 'CoverToCurrent' | 'RequestsToCurrent' | 'CoverToPrev' | 'DisconnectFromPrev'; + } + + /** @name PezspMixnetMixnode (1120) */ + interface PezspMixnetMixnode extends Struct { + readonly kxPublic: U8aFixed; + readonly peerId: U8aFixed; + readonly externalAddresses: Vec; + } + + /** @name PezspMixnetMixnodesErr (1121) */ + interface PezspMixnetMixnodesErr extends Enum { + readonly isInsufficientRegistrations: boolean; + readonly asInsufficientRegistrations: { + readonly num: u32; + readonly min: u32; + } & Struct; + readonly type: 'InsufficientRegistrations'; + } + + /** @name KitchensinkRuntimeRuntimeError (1127) */ + interface KitchensinkRuntimeRuntimeError extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSystemError; + readonly isUtility: boolean; + readonly asUtility: PezpalletUtilityError; + readonly isBabe: boolean; + readonly asBabe: PezpalletBabeError; + readonly isIndices: boolean; + readonly asIndices: PezpalletIndicesError; + readonly isBalances: boolean; + readonly asBalances: PezpalletBalancesError; + readonly isElectionProviderMultiPhase: boolean; + readonly asElectionProviderMultiPhase: PezpalletElectionProviderMultiPhaseError; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletError; + readonly isSession: boolean; + readonly asSession: PezpalletSessionError; + readonly isDemocracy: boolean; + readonly asDemocracy: PezpalletDemocracyError; + readonly isCouncil: boolean; + readonly asCouncil: PezpalletCollectiveError; + readonly isTechnicalCommittee: boolean; + readonly asTechnicalCommittee: PezpalletCollectiveError; + readonly isElections: boolean; + readonly asElections: PezpalletElectionsPhragmenError; + readonly isTechnicalMembership: boolean; + readonly asTechnicalMembership: PezpalletMembershipError; + readonly isGrandpa: boolean; + readonly asGrandpa: PezpalletGrandpaError; + readonly isTreasury: boolean; + readonly asTreasury: PezpalletTreasuryError; + readonly isAssetRate: boolean; + readonly asAssetRate: PezpalletAssetRateError; + readonly isContracts: boolean; + readonly asContracts: PezpalletContractsError; + readonly isSudo: boolean; + readonly asSudo: PezpalletSudoError; + readonly isImOnline: boolean; + readonly asImOnline: PezpalletImOnlineError; + readonly isIdentity: boolean; + readonly asIdentity: PezpalletIdentityError; + readonly isSociety: boolean; + readonly asSociety: PezpalletSocietyError; + readonly isRecovery: boolean; + readonly asRecovery: PezpalletRecoveryError; + readonly isVesting: boolean; + readonly asVesting: PezpalletVestingError; + readonly isScheduler: boolean; + readonly asScheduler: PezpalletSchedulerError; + readonly isGlutton: boolean; + readonly asGlutton: PezpalletGluttonError; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageError; + readonly isProxy: boolean; + readonly asProxy: PezpalletProxyError; + readonly isMultisig: boolean; + readonly asMultisig: PezpalletMultisigError; + readonly isBounties: boolean; + readonly asBounties: PezpalletBountiesError; + readonly isTips: boolean; + readonly asTips: PezpalletTipsError; + readonly isAssets: boolean; + readonly asAssets: PezpalletAssetsError; + readonly isPoolAssets: boolean; + readonly asPoolAssets: PezpalletAssetsError; + readonly isBeefy: boolean; + readonly asBeefy: PezpalletBeefyError; + readonly isLottery: boolean; + readonly asLottery: PezpalletLotteryError; + readonly isNis: boolean; + readonly asNis: PezpalletNisError; + readonly isUniques: boolean; + readonly asUniques: PezpalletUniquesError; + readonly isNfts: boolean; + readonly asNfts: PezpalletNftsError; + readonly isNftFractionalization: boolean; + readonly asNftFractionalization: PezpalletNftFractionalizationError; + readonly isSalary: boolean; + readonly asSalary: PezpalletSalaryError; + readonly isCoreFellowship: boolean; + readonly asCoreFellowship: PezpalletCoreFellowshipError; + readonly isTransactionStorage: boolean; + readonly asTransactionStorage: PezpalletTransactionStorageError; + readonly isVoterList: boolean; + readonly asVoterList: PezpalletBagsListError; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationError; + readonly isChildBounties: boolean; + readonly asChildBounties: PezpalletChildBountiesError; + readonly isReferenda: boolean; + readonly asReferenda: PezpalletReferendaError; + readonly isRemark: boolean; + readonly asRemark: PezpalletRemarkError; + readonly isConvictionVoting: boolean; + readonly asConvictionVoting: PezpalletConvictionVotingError; + readonly isWhitelist: boolean; + readonly asWhitelist: PezpalletWhitelistError; + readonly isAllianceMotion: boolean; + readonly asAllianceMotion: PezpalletCollectiveError; + readonly isAlliance: boolean; + readonly asAlliance: PezpalletAllianceError; + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsError; + readonly isRankedPolls: boolean; + readonly asRankedPolls: PezpalletReferendaError; + readonly isRankedCollective: boolean; + readonly asRankedCollective: PezpalletRankedCollectiveError; + readonly isAssetConversion: boolean; + readonly asAssetConversion: PezpalletAssetConversionError; + readonly isFastUnstake: boolean; + readonly asFastUnstake: PezpalletFastUnstakeError; + readonly isMessageQueue: boolean; + readonly asMessageQueue: PezpalletMessageQueueError; + readonly isTxPause: boolean; + readonly asTxPause: PezpalletTxPauseError; + readonly isSafeMode: boolean; + readonly asSafeMode: PezpalletSafeModeError; + readonly isMultiBlockMigrations: boolean; + readonly asMultiBlockMigrations: PezpalletMigrationsError; + readonly isBroker: boolean; + readonly asBroker: PezpalletBrokerError; + readonly isTasksExample: boolean; + readonly asTasksExample: PezpalletExampleTasksError; + readonly isAssetConversionMigration: boolean; + readonly asAssetConversionMigration: PezpalletAssetConversionOpsError; + readonly isRevive: boolean; + readonly asRevive: PezpalletReviveError; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingError; + readonly isAssetRewards: boolean; + readonly asAssetRewards: PezpalletAssetRewardsError; + readonly isAssetsFreezer: boolean; + readonly asAssetsFreezer: PezpalletAssetsFreezerError; + readonly isMetaTx: boolean; + readonly asMetaTx: PezpalletMetaTxError; + readonly type: 'System' | 'Utility' | 'Babe' | 'Indices' | 'Balances' | 'ElectionProviderMultiPhase' | 'Staking' | 'Session' | 'Democracy' | 'Council' | 'TechnicalCommittee' | 'Elections' | 'TechnicalMembership' | 'Grandpa' | 'Treasury' | 'AssetRate' | 'Contracts' | 'Sudo' | 'ImOnline' | 'Identity' | 'Society' | 'Recovery' | 'Vesting' | 'Scheduler' | 'Glutton' | 'Preimage' | 'Proxy' | 'Multisig' | 'Bounties' | 'Tips' | 'Assets' | 'PoolAssets' | 'Beefy' | 'Lottery' | 'Nis' | 'Uniques' | 'Nfts' | 'NftFractionalization' | 'Salary' | 'CoreFellowship' | 'TransactionStorage' | 'VoterList' | 'StateTrieMigration' | 'ChildBounties' | 'Referenda' | 'Remark' | 'ConvictionVoting' | 'Whitelist' | 'AllianceMotion' | 'Alliance' | 'NominationPools' | 'RankedPolls' | 'RankedCollective' | 'AssetConversion' | 'FastUnstake' | 'MessageQueue' | 'TxPause' | 'SafeMode' | 'MultiBlockMigrations' | 'Broker' | 'TasksExample' | 'AssetConversionMigration' | 'Revive' | 'DelegatedStaking' | 'AssetRewards' | 'AssetsFreezer' | 'MetaTx'; + } + +} // declare module diff --git a/packages/types-augment/src/lookup/types-dicle.ts b/packages/types-augment/src/lookup/types-dicle.ts new file mode 100644 index 0000000..16fa8d9 --- /dev/null +++ b/packages/types-augment/src/lookup/types-dicle.ts @@ -0,0 +1,399 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/lookup'; + +import type { Compact, Enum, Null, Option, Struct, Vec, bool, u16, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, PerU16, Permill, Perquintill } from '@pezkuwi/types/interfaces/runtime'; + +declare module '@pezkuwi/types/lookup' { + /** @name StagingDicleRuntimeSessionKeys (138) */ + interface StagingDicleRuntimeSessionKeys extends Struct { + readonly grandpa: PezspConsensusGrandpaAppPublic; + readonly babe: PezspConsensusBabeAppPublic; + readonly paraValidator: PezkuwiPrimitivesV8ValidatorAppPublic; + readonly paraAssignment: PezkuwiPrimitivesV8AssignmentAppPublic; + readonly authorityDiscovery: PezspAuthorityDiscoveryAppPublic; + readonly beefy: PezspConsensusBeefyEcdsaCryptoPublic; + } + + /** @name StagingDicleRuntimeOriginCaller (160) */ + interface StagingDicleRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isOrigins: boolean; + readonly asOrigins: StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + readonly isParachainsOrigin: boolean; + readonly asParachainsOrigin: PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmOrigin; + readonly type: 'System' | 'Origins' | 'ParachainsOrigin' | 'XcmPallet'; + } + + /** @name StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin (162) */ + interface StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin extends Enum { + readonly isStakingAdmin: boolean; + readonly isTreasurer: boolean; + readonly isFellowshipAdmin: boolean; + readonly isGeneralAdmin: boolean; + readonly isAuctionAdmin: boolean; + readonly isLeaseAdmin: boolean; + readonly isReferendumCanceller: boolean; + readonly isReferendumKiller: boolean; + readonly isSmallTipper: boolean; + readonly isBigTipper: boolean; + readonly isSmallSpender: boolean; + readonly isMediumSpender: boolean; + readonly isBigSpender: boolean; + readonly isWhitelistedCaller: boolean; + readonly isFellowshipInitiates: boolean; + readonly isFellows: boolean; + readonly isFellowshipExperts: boolean; + readonly isFellowshipMasters: boolean; + readonly isFellowship1Dan: boolean; + readonly isFellowship2Dan: boolean; + readonly isFellowship3Dan: boolean; + readonly isFellowship4Dan: boolean; + readonly isFellowship5Dan: boolean; + readonly isFellowship6Dan: boolean; + readonly isFellowship7Dan: boolean; + readonly isFellowship8Dan: boolean; + readonly isFellowship9Dan: boolean; + readonly isWishForChange: boolean; + readonly type: 'StakingAdmin' | 'Treasurer' | 'FellowshipAdmin' | 'GeneralAdmin' | 'AuctionAdmin' | 'LeaseAdmin' | 'ReferendumCanceller' | 'ReferendumKiller' | 'SmallTipper' | 'BigTipper' | 'SmallSpender' | 'MediumSpender' | 'BigSpender' | 'WhitelistedCaller' | 'FellowshipInitiates' | 'Fellows' | 'FellowshipExperts' | 'FellowshipMasters' | 'Fellowship1Dan' | 'Fellowship2Dan' | 'Fellowship3Dan' | 'Fellowship4Dan' | 'Fellowship5Dan' | 'Fellowship6Dan' | 'Fellowship7Dan' | 'Fellowship8Dan' | 'Fellowship9Dan' | 'WishForChange'; + } + + /** @name StagingDicleRuntimeRuntimeParameters (172) */ + interface StagingDicleRuntimeRuntimeParameters extends Enum { + readonly isInflation: boolean; + readonly asInflation: StagingDicleRuntimeDynamicParamsInflationParameters; + readonly isTreasury: boolean; + readonly asTreasury: StagingDicleRuntimeDynamicParamsTreasuryParameters; + readonly type: 'Inflation' | 'Treasury'; + } + + /** @name StagingDicleRuntimeDynamicParamsInflationParameters (173) */ + interface StagingDicleRuntimeDynamicParamsInflationParameters extends Enum { + readonly isMinInflation: boolean; + readonly asMinInflation: ITuple<[StagingDicleRuntimeDynamicParamsInflationMinInflation, Option]>; + readonly isMaxInflation: boolean; + readonly asMaxInflation: ITuple<[StagingDicleRuntimeDynamicParamsInflationMaxInflation, Option]>; + readonly isIdealStake: boolean; + readonly asIdealStake: ITuple<[StagingDicleRuntimeDynamicParamsInflationIdealStake, Option]>; + readonly isFalloff: boolean; + readonly asFalloff: ITuple<[StagingDicleRuntimeDynamicParamsInflationFalloff, Option]>; + readonly isUseAuctionSlots: boolean; + readonly asUseAuctionSlots: ITuple<[StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots, Option]>; + readonly type: 'MinInflation' | 'MaxInflation' | 'IdealStake' | 'Falloff' | 'UseAuctionSlots'; + } + + /** @name StagingDicleRuntimeDynamicParamsInflationMinInflation (174) */ + type StagingDicleRuntimeDynamicParamsInflationMinInflation = Null; + + /** @name StagingDicleRuntimeDynamicParamsInflationMaxInflation (177) */ + type StagingDicleRuntimeDynamicParamsInflationMaxInflation = Null; + + /** @name StagingDicleRuntimeDynamicParamsInflationIdealStake (178) */ + type StagingDicleRuntimeDynamicParamsInflationIdealStake = Null; + + /** @name StagingDicleRuntimeDynamicParamsInflationFalloff (179) */ + type StagingDicleRuntimeDynamicParamsInflationFalloff = Null; + + /** @name StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots (180) */ + type StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots = Null; + + /** @name StagingDicleRuntimeDynamicParamsTreasuryParameters (182) */ + interface StagingDicleRuntimeDynamicParamsTreasuryParameters extends Enum { + readonly isBurnPortion: boolean; + readonly asBurnPortion: ITuple<[StagingDicleRuntimeDynamicParamsTreasuryBurnPortion, Option]>; + readonly isBurnDestination: boolean; + readonly asBurnDestination: ITuple<[StagingDicleRuntimeDynamicParamsTreasuryBurnDestination, Option]>; + readonly type: 'BurnPortion' | 'BurnDestination'; + } + + /** @name StagingDicleRuntimeDynamicParamsTreasuryBurnPortion (183) */ + type StagingDicleRuntimeDynamicParamsTreasuryBurnPortion = Null; + + /** @name StagingDicleRuntimeDynamicParamsTreasuryBurnDestination (186) */ + type StagingDicleRuntimeDynamicParamsTreasuryBurnDestination = Null; + + /** @name StagingDicleRuntimeBurnDestinationAccount (188) */ + interface StagingDicleRuntimeBurnDestinationAccount extends Option {} + + /** @name DicleRuntimeConstantsProxyProxyType (209) */ + interface DicleRuntimeConstantsProxyProxyType extends Enum { + readonly isAny: boolean; + readonly isNonTransfer: boolean; + readonly isGovernance: boolean; + readonly isStaking: boolean; + readonly isCancelProxy: boolean; + readonly isAuction: boolean; + readonly isSociety: boolean; + readonly isNominationPools: boolean; + readonly isSpokesperson: boolean; + readonly isParaRegistration: boolean; + readonly type: 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'CancelProxy' | 'Auction' | 'Society' | 'NominationPools' | 'Spokesperson' | 'ParaRegistration'; + } + + /** @name StagingDicleRuntimeNposCompactSolution24 (219) */ + interface StagingDicleRuntimeNposCompactSolution24 extends Struct { + readonly votes1: Vec, Compact]>>; + readonly votes2: Vec, ITuple<[Compact, Compact]>, Compact]>>; + readonly votes3: Vec, Vec, Compact]>>, Compact]>>; + readonly votes4: Vec, Vec, Compact]>>, Compact]>>; + readonly votes5: Vec, Vec, Compact]>>, Compact]>>; + readonly votes6: Vec, Vec, Compact]>>, Compact]>>; + readonly votes7: Vec, Vec, Compact]>>, Compact]>>; + readonly votes8: Vec, Vec, Compact]>>, Compact]>>; + readonly votes9: Vec, Vec, Compact]>>, Compact]>>; + readonly votes10: Vec, Vec, Compact]>>, Compact]>>; + readonly votes11: Vec, Vec, Compact]>>, Compact]>>; + readonly votes12: Vec, Vec, Compact]>>, Compact]>>; + readonly votes13: Vec, Vec, Compact]>>, Compact]>>; + readonly votes14: Vec, Vec, Compact]>>, Compact]>>; + readonly votes15: Vec, Vec, Compact]>>, Compact]>>; + readonly votes16: Vec, Vec, Compact]>>, Compact]>>; + readonly votes17: Vec, Vec, Compact]>>, Compact]>>; + readonly votes18: Vec, Vec, Compact]>>, Compact]>>; + readonly votes19: Vec, Vec, Compact]>>, Compact]>>; + readonly votes20: Vec, Vec, Compact]>>, Compact]>>; + readonly votes21: Vec, Vec, Compact]>>, Compact]>>; + readonly votes22: Vec, Vec, Compact]>>, Compact]>>; + readonly votes23: Vec, Vec, Compact]>>, Compact]>>; + readonly votes24: Vec, Vec, Compact]>>, Compact]>>; + } + + /** @name PezpalletRcMigratorRecoveryRecoveryStage (539) */ + interface PezpalletRcMigratorRecoveryRecoveryStage extends Enum { + readonly isRecoverable: boolean; + readonly asRecoverable: Option; + readonly isActiveRecoveries: boolean; + readonly asActiveRecoveries: Option>; + readonly isProxy: boolean; + readonly asProxy: Option; + readonly isFinished: boolean; + readonly type: 'Recoverable' | 'ActiveRecoveries' | 'Proxy' | 'Finished'; + } + + /** @name PezpalletRcMigratorSocietySocietyStage (543) */ + interface PezpalletRcMigratorSocietySocietyStage extends Enum { + readonly isValues: boolean; + readonly isMembers: boolean; + readonly asMembers: Option; + readonly isPayouts: boolean; + readonly asPayouts: Option; + readonly isMemberByIndex: boolean; + readonly asMemberByIndex: Option; + readonly isSuspendedMembers: boolean; + readonly asSuspendedMembers: Option; + readonly isCandidates: boolean; + readonly asCandidates: Option; + readonly isVotes: boolean; + readonly asVotes: Option>; + readonly isVoteClearCursor: boolean; + readonly asVoteClearCursor: Option; + readonly isDefenderVotes: boolean; + readonly asDefenderVotes: Option>; + readonly isFinished: boolean; + readonly type: 'Values' | 'Members' | 'Payouts' | 'MemberByIndex' | 'SuspendedMembers' | 'Candidates' | 'Votes' | 'VoteClearCursor' | 'DefenderVotes' | 'Finished'; + } + + /** @name StagingDicleRuntimeRuntimeParametersKey (566) */ + interface StagingDicleRuntimeRuntimeParametersKey extends Enum { + readonly isInflation: boolean; + readonly asInflation: StagingDicleRuntimeDynamicParamsInflationParametersKey; + readonly isTreasury: boolean; + readonly asTreasury: StagingDicleRuntimeDynamicParamsTreasuryParametersKey; + readonly type: 'Inflation' | 'Treasury'; + } + + /** @name StagingDicleRuntimeDynamicParamsInflationParametersKey (567) */ + interface StagingDicleRuntimeDynamicParamsInflationParametersKey extends Enum { + readonly isMinInflation: boolean; + readonly isMaxInflation: boolean; + readonly isIdealStake: boolean; + readonly isFalloff: boolean; + readonly isUseAuctionSlots: boolean; + readonly type: 'MinInflation' | 'MaxInflation' | 'IdealStake' | 'Falloff' | 'UseAuctionSlots'; + } + + /** @name StagingDicleRuntimeDynamicParamsTreasuryParametersKey (568) */ + interface StagingDicleRuntimeDynamicParamsTreasuryParametersKey extends Enum { + readonly isBurnPortion: boolean; + readonly isBurnDestination: boolean; + readonly type: 'BurnPortion' | 'BurnDestination'; + } + + /** @name StagingDicleRuntimeRuntimeParametersValue (570) */ + interface StagingDicleRuntimeRuntimeParametersValue extends Enum { + readonly isInflation: boolean; + readonly asInflation: StagingDicleRuntimeDynamicParamsInflationParametersValue; + readonly isTreasury: boolean; + readonly asTreasury: StagingDicleRuntimeDynamicParamsTreasuryParametersValue; + readonly type: 'Inflation' | 'Treasury'; + } + + /** @name StagingDicleRuntimeDynamicParamsInflationParametersValue (571) */ + interface StagingDicleRuntimeDynamicParamsInflationParametersValue extends Enum { + readonly isMinInflation: boolean; + readonly asMinInflation: Perquintill; + readonly isMaxInflation: boolean; + readonly asMaxInflation: Perquintill; + readonly isIdealStake: boolean; + readonly asIdealStake: Perquintill; + readonly isFalloff: boolean; + readonly asFalloff: Perquintill; + readonly isUseAuctionSlots: boolean; + readonly asUseAuctionSlots: bool; + readonly type: 'MinInflation' | 'MaxInflation' | 'IdealStake' | 'Falloff' | 'UseAuctionSlots'; + } + + /** @name StagingDicleRuntimeDynamicParamsTreasuryParametersValue (572) */ + interface StagingDicleRuntimeDynamicParamsTreasuryParametersValue extends Enum { + readonly isBurnPortion: boolean; + readonly asBurnPortion: Permill; + readonly isBurnDestination: boolean; + readonly asBurnDestination: StagingDicleRuntimeBurnDestinationAccount; + readonly type: 'BurnPortion' | 'BurnDestination'; + } + + /** @name PezpalletRecoveryDepositKind (579) */ + interface PezpalletRecoveryDepositKind extends Enum { + readonly isRecoveryConfig: boolean; + readonly isActiveRecoveryFor: boolean; + readonly asActiveRecoveryFor: AccountId32; + readonly type: 'RecoveryConfig' | 'ActiveRecoveryFor'; + } + + /** @name StagingDicleRuntimeRuntime (580) */ + type StagingDicleRuntimeRuntime = Null; + + /** @name StagingDicleRuntimeRuntimeHoldReason (668) */ + interface StagingDicleRuntimeRuntimeHoldReason extends Enum { + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletHoldReason; + readonly isSession: boolean; + readonly asSession: PezpalletSessionHoldReason; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageHoldReason; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingHoldReason; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmHoldReason; + readonly type: 'Staking' | 'Session' | 'Preimage' | 'DelegatedStaking' | 'XcmPallet'; + } + + /** @name StagingDicleRuntimeRuntimeFreezeReason (677) */ + interface StagingDicleRuntimeRuntimeFreezeReason extends Enum { + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsFreezeReason; + readonly type: 'NominationPools'; + } + + /** @name StagingDicleRuntimeRuntimeError (1159) */ + interface StagingDicleRuntimeRuntimeError extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSystemError; + readonly isBabe: boolean; + readonly asBabe: PezpalletBabeError; + readonly isIndices: boolean; + readonly asIndices: PezpalletIndicesError; + readonly isBalances: boolean; + readonly asBalances: PezpalletBalancesError; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletError; + readonly isSession: boolean; + readonly asSession: PezpalletSessionError; + readonly isGrandpa: boolean; + readonly asGrandpa: PezpalletGrandpaError; + readonly isTreasury: boolean; + readonly asTreasury: PezpalletTreasuryError; + readonly isClaims: boolean; + readonly asClaims: PezkuwiRuntimeCommonClaimsPezpalletError; + readonly isConvictionVoting: boolean; + readonly asConvictionVoting: PezpalletConvictionVotingError; + readonly isReferenda: boolean; + readonly asReferenda: PezpalletReferendaError; + readonly isFellowshipCollective: boolean; + readonly asFellowshipCollective: PezpalletRankedCollectiveError; + readonly isFellowshipReferenda: boolean; + readonly asFellowshipReferenda: PezpalletReferendaError; + readonly isUtility: boolean; + readonly asUtility: PezpalletUtilityError; + readonly isSociety: boolean; + readonly asSociety: PezpalletSocietyError; + readonly isRecovery: boolean; + readonly asRecovery: PezpalletRecoveryError; + readonly isVesting: boolean; + readonly asVesting: PezpalletVestingError; + readonly isScheduler: boolean; + readonly asScheduler: PezpalletSchedulerError; + readonly isProxy: boolean; + readonly asProxy: PezpalletProxyError; + readonly isMultisig: boolean; + readonly asMultisig: PezpalletMultisigError; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageError; + readonly isBounties: boolean; + readonly asBounties: PezpalletBountiesError; + readonly isElectionProviderMultiPhase: boolean; + readonly asElectionProviderMultiPhase: PezpalletElectionProviderMultiPhaseError; + readonly isVoterList: boolean; + readonly asVoterList: PezpalletBagsListError; + readonly isChildBounties: boolean; + readonly asChildBounties: PezpalletChildBountiesError; + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsError; + readonly isFastUnstake: boolean; + readonly asFastUnstake: PezpalletFastUnstakeError; + readonly isWhitelist: boolean; + readonly asWhitelist: PezpalletWhitelistError; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingError; + readonly isStakingAhClient: boolean; + readonly asStakingAhClient: PezpalletStakingAsyncAhClientError; + readonly isConfiguration: boolean; + readonly asConfiguration: PezkuwiRuntimeTeyrchainsConfigurationPezpalletError; + readonly isParaInclusion: boolean; + readonly asParaInclusion: PezkuwiRuntimeTeyrchainsInclusionPezpalletError; + readonly isParaInherent: boolean; + readonly asParaInherent: PezkuwiRuntimeTeyrchainsParasInherentPezpalletError; + readonly isParas: boolean; + readonly asParas: PezkuwiRuntimeTeyrchainsParasPezpalletError; + readonly isHrmp: boolean; + readonly asHrmp: PezkuwiRuntimeTeyrchainsHrmpPezpalletError; + readonly isParasDisputes: boolean; + readonly asParasDisputes: PezkuwiRuntimeTeyrchainsDisputesPezpalletError; + readonly isParasSlashing: boolean; + readonly asParasSlashing: PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError; + readonly isOnDemandAssignmentProvider: boolean; + readonly asOnDemandAssignmentProvider: PezkuwiRuntimeTeyrchainsOnDemandPezpalletError; + readonly isCoretimeAssignmentProvider: boolean; + readonly asCoretimeAssignmentProvider: PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError; + readonly isRegistrar: boolean; + readonly asRegistrar: PezkuwiRuntimeCommonParasRegistrarPezpalletError; + readonly isSlots: boolean; + readonly asSlots: PezkuwiRuntimeCommonSlotsPezpalletError; + readonly isAuctions: boolean; + readonly asAuctions: PezkuwiRuntimeCommonAuctionsPezpalletError; + readonly isCrowdloan: boolean; + readonly asCrowdloan: PezkuwiRuntimeCommonCrowdloanPezpalletError; + readonly isCoretime: boolean; + readonly asCoretime: PezkuwiRuntimeTeyrchainsCoretimePezpalletError; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmError; + readonly isMessageQueue: boolean; + readonly asMessageQueue: PezpalletMessageQueueError; + readonly isAssetRate: boolean; + readonly asAssetRate: PezpalletAssetRateError; + readonly isBeefy: boolean; + readonly asBeefy: PezpalletBeefyError; + readonly isRcMigrator: boolean; + readonly asRcMigrator: PezpalletRcMigratorError; + readonly type: 'System' | 'Babe' | 'Indices' | 'Balances' | 'Staking' | 'Session' | 'Grandpa' | 'Treasury' | 'Claims' | 'ConvictionVoting' | 'Referenda' | 'FellowshipCollective' | 'FellowshipReferenda' | 'Utility' | 'Society' | 'Recovery' | 'Vesting' | 'Scheduler' | 'Proxy' | 'Multisig' | 'Preimage' | 'Bounties' | 'ElectionProviderMultiPhase' | 'VoterList' | 'ChildBounties' | 'NominationPools' | 'FastUnstake' | 'Whitelist' | 'DelegatedStaking' | 'StakingAhClient' | 'Configuration' | 'ParaInclusion' | 'ParaInherent' | 'Paras' | 'Hrmp' | 'ParasDisputes' | 'ParasSlashing' | 'OnDemandAssignmentProvider' | 'CoretimeAssignmentProvider' | 'Registrar' | 'Slots' | 'Auctions' | 'Crowdloan' | 'Coretime' | 'XcmPallet' | 'MessageQueue' | 'AssetRate' | 'Beefy' | 'RcMigrator'; + } + +} // declare module diff --git a/packages/types-augment/src/lookup/types-pezkuwi.ts b/packages/types-augment/src/lookup/types-pezkuwi.ts new file mode 100644 index 0000000..24a159e --- /dev/null +++ b/packages/types-augment/src/lookup/types-pezkuwi.ts @@ -0,0 +1,4722 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/lookup'; + +import type { BTreeMap, BTreeSet, BitVec, Bytes, Compact, Enum, Null, Option, Result, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId32, H256, PerU16, Perbill, Perquintill, RuntimeCall, RuntimeEvent } from '@pezkuwi/types/interfaces/runtime'; + +declare module '@pezkuwi/types/lookup' { + /** @name PezpalletBalancesUnexpectedKind (41) */ + interface PezpalletBalancesUnexpectedKind extends Enum { + readonly isBalanceUpdated: boolean; + readonly isFailedToMutateAccount: boolean; + readonly type: 'BalanceUpdated' | 'FailedToMutateAccount'; + } + + /** @name PezpalletSessionHistoricalPezpalletEvent (52) */ + interface PezpalletSessionHistoricalPezpalletEvent extends Enum { + readonly isRootStored: boolean; + readonly asRootStored: { + readonly index: u32; + } & Struct; + readonly isRootsPruned: boolean; + readonly asRootsPruned: { + readonly upTo: u32; + } & Struct; + readonly type: 'RootStored' | 'RootsPruned'; + } + + /** @name PezkuwiRuntimeCommonImplsVersionedLocatableAsset (59) */ + interface PezkuwiRuntimeCommonImplsVersionedLocatableAsset extends Enum { + readonly isV3: boolean; + readonly asV3: { + readonly location: StagingXcmV3MultiLocation; + readonly assetId: XcmV3MultiassetAssetId; + } & Struct; + readonly isV4: boolean; + readonly asV4: { + readonly location: StagingXcmV4Location; + readonly assetId: StagingXcmV4AssetAssetId; + } & Struct; + readonly isV5: boolean; + readonly asV5: { + readonly location: StagingXcmV5Location; + readonly assetId: StagingXcmV5AssetAssetId; + } & Struct; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name StagingXcmV3MultiLocation (60) */ + interface StagingXcmV3MultiLocation extends Struct { + readonly parents: u8; + readonly interior: XcmV3Junctions; + } + + /** @name XcmV3Junctions (61) */ + interface XcmV3Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: XcmV3Junction; + readonly isX2: boolean; + readonly asX2: ITuple<[XcmV3Junction, XcmV3Junction]>; + readonly isX3: boolean; + readonly asX3: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX4: boolean; + readonly asX4: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX5: boolean; + readonly asX5: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX6: boolean; + readonly asX6: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX7: boolean; + readonly asX7: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly isX8: boolean; + readonly asX8: ITuple<[XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction, XcmV3Junction]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; + } + + /** @name XcmV3Junction (62) */ + interface XcmV3Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: XcmV3JunctionNetworkId; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; + } + + /** @name XcmV3JunctionNetworkId (65) */ + interface XcmV3JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: 'ByGenesis' | 'ByFork' | 'Polkadot' | 'Kusama' | 'Westend' | 'Rococo' | 'Wococo' | 'Ethereum' | 'BitcoinCore' | 'BitcoinCash' | 'PolkadotBulletin'; + } + + /** @name XcmV3JunctionBodyId (68) */ + interface XcmV3JunctionBodyId extends Enum { + readonly isUnit: boolean; + readonly isMoniker: boolean; + readonly asMoniker: U8aFixed; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: 'Unit' | 'Moniker' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; + } + + /** @name XcmV3JunctionBodyPart (69) */ + interface XcmV3JunctionBodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; + } + + /** @name XcmV3MultiassetAssetId (70) */ + interface XcmV3MultiassetAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: StagingXcmV3MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: U8aFixed; + readonly type: 'Concrete' | 'Abstract'; + } + + /** @name StagingXcmV4Location (71) */ + interface StagingXcmV4Location extends Struct { + readonly parents: u8; + readonly interior: StagingXcmV4Junctions; + } + + /** @name StagingXcmV4Junctions (72) */ + interface StagingXcmV4Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: StagingXcmV4Junction; + readonly isX2: boolean; + readonly asX2: StagingXcmV4Junction; + readonly isX3: boolean; + readonly asX3: StagingXcmV4Junction; + readonly isX4: boolean; + readonly asX4: StagingXcmV4Junction; + readonly isX5: boolean; + readonly asX5: StagingXcmV4Junction; + readonly isX6: boolean; + readonly asX6: StagingXcmV4Junction; + readonly isX7: boolean; + readonly asX7: StagingXcmV4Junction; + readonly isX8: boolean; + readonly asX8: StagingXcmV4Junction; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; + } + + /** @name StagingXcmV4Junction (74) */ + interface StagingXcmV4Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: StagingXcmV4JunctionNetworkId; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; + } + + /** @name StagingXcmV4JunctionNetworkId (76) */ + interface StagingXcmV4JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isWestend: boolean; + readonly isRococo: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: 'ByGenesis' | 'ByFork' | 'Polkadot' | 'Kusama' | 'Westend' | 'Rococo' | 'Wococo' | 'Ethereum' | 'BitcoinCore' | 'BitcoinCash' | 'PolkadotBulletin'; + } + + /** @name StagingXcmV4AssetAssetId (84) */ + interface StagingXcmV4AssetAssetId extends StagingXcmV4Location {} + + /** @name StagingXcmV5Location (85) */ + interface StagingXcmV5Location extends Struct { + readonly parents: u8; + readonly interior: StagingXcmV5Junctions; + } + + /** @name StagingXcmV5Junctions (86) */ + interface StagingXcmV5Junctions extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: Vec; + readonly isX2: boolean; + readonly asX2: Vec; + readonly isX3: boolean; + readonly asX3: Vec; + readonly isX4: boolean; + readonly asX4: Vec; + readonly isX5: boolean; + readonly asX5: Vec; + readonly isX6: boolean; + readonly asX6: Vec; + readonly isX7: boolean; + readonly asX7: Vec; + readonly isX8: boolean; + readonly asX8: Vec; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; + } + + /** @name StagingXcmV5Junction (88) */ + interface StagingXcmV5Junction extends Enum { + readonly isParachain: boolean; + readonly asParachain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPalletInstance: boolean; + readonly asPalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: XcmV3JunctionBodyId; + readonly part: XcmV3JunctionBodyPart; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: StagingXcmV5JunctionNetworkId; + readonly type: 'Parachain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; + } + + /** @name StagingXcmV5JunctionNetworkId (90) */ + interface StagingXcmV5JunctionNetworkId extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPolkadot: boolean; + readonly isKusama: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPolkadotBulletin: boolean; + readonly type: 'ByGenesis' | 'ByFork' | 'Polkadot' | 'Kusama' | 'Ethereum' | 'BitcoinCore' | 'BitcoinCash' | 'PolkadotBulletin'; + } + + /** @name StagingXcmV5AssetAssetId (98) */ + interface StagingXcmV5AssetAssetId extends StagingXcmV5Location {} + + /** @name XcmVersionedLocation (99) */ + interface XcmVersionedLocation extends Enum { + readonly isV3: boolean; + readonly asV3: StagingXcmV3MultiLocation; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Location; + readonly isV5: boolean; + readonly asV5: StagingXcmV5Location; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name PezkuwiRuntimeSessionKeys (147) */ + interface PezkuwiRuntimeSessionKeys extends Struct { + readonly grandpa: PezspConsensusGrandpaAppPublic; + readonly babe: PezspConsensusBabeAppPublic; + readonly paraValidator: PezkuwiPrimitivesV8ValidatorAppPublic; + readonly paraAssignment: PezkuwiPrimitivesV8AssignmentAppPublic; + readonly authorityDiscovery: PezspAuthorityDiscoveryAppPublic; + readonly beefy: PezspConsensusBeefyEcdsaCryptoPublic; + } + + /** @name PezkuwiPrimitivesV8ValidatorAppPublic (148) */ + interface PezkuwiPrimitivesV8ValidatorAppPublic extends U8aFixed {} + + /** @name PezkuwiPrimitivesV8AssignmentAppPublic (149) */ + interface PezkuwiPrimitivesV8AssignmentAppPublic extends U8aFixed {} + + /** @name PezkuwiRuntimeOriginCaller (169) */ + interface PezkuwiRuntimeOriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSupportDispatchRawOrigin; + readonly isOrigins: boolean; + readonly asOrigins: PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + readonly isParachainsOrigin: boolean; + readonly asParachainsOrigin: PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmOrigin; + readonly type: 'System' | 'Origins' | 'ParachainsOrigin' | 'XcmPallet'; + } + + /** @name PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin (171) */ + interface PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin extends Enum { + readonly isStakingAdmin: boolean; + readonly isTreasurer: boolean; + readonly isFellowshipAdmin: boolean; + readonly isGeneralAdmin: boolean; + readonly isAuctionAdmin: boolean; + readonly isLeaseAdmin: boolean; + readonly isReferendumCanceller: boolean; + readonly isReferendumKiller: boolean; + readonly isSmallTipper: boolean; + readonly isBigTipper: boolean; + readonly isSmallSpender: boolean; + readonly isMediumSpender: boolean; + readonly isBigSpender: boolean; + readonly isWhitelistedCaller: boolean; + readonly isWishForChange: boolean; + readonly type: 'StakingAdmin' | 'Treasurer' | 'FellowshipAdmin' | 'GeneralAdmin' | 'AuctionAdmin' | 'LeaseAdmin' | 'ReferendumCanceller' | 'ReferendumKiller' | 'SmallTipper' | 'BigTipper' | 'SmallSpender' | 'MediumSpender' | 'BigSpender' | 'WhitelistedCaller' | 'WishForChange'; + } + + /** @name PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin (172) */ + interface PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin extends Enum { + readonly isParachain: boolean; + readonly asParachain: u32; + readonly type: 'Parachain'; + } + + /** @name PezpalletXcmOrigin (174) */ + interface PezpalletXcmOrigin extends Enum { + readonly isXcm: boolean; + readonly asXcm: StagingXcmV5Location; + readonly isResponse: boolean; + readonly asResponse: StagingXcmV5Location; + readonly type: 'Xcm' | 'Response'; + } + + /** @name PezkuwiRuntimeCommonClaimsPezpalletCall (178) */ + interface PezkuwiRuntimeCommonClaimsPezpalletCall extends Enum { + readonly isClaim: boolean; + readonly asClaim: { + readonly dest: AccountId32; + readonly ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature; + } & Struct; + readonly isMintClaim: boolean; + readonly asMintClaim: { + readonly who: PezkuwiRuntimeCommonClaimsEthereumAddress; + readonly value: u128; + readonly vestingSchedule: Option>; + readonly statement: Option; + } & Struct; + readonly isClaimAttest: boolean; + readonly asClaimAttest: { + readonly dest: AccountId32; + readonly ethereumSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature; + readonly statement: Bytes; + } & Struct; + readonly isAttest: boolean; + readonly asAttest: { + readonly statement: Bytes; + } & Struct; + readonly isMoveClaim: boolean; + readonly asMoveClaim: { + readonly old: PezkuwiRuntimeCommonClaimsEthereumAddress; + readonly new_: PezkuwiRuntimeCommonClaimsEthereumAddress; + readonly maybePreclaim: Option; + } & Struct; + readonly type: 'Claim' | 'MintClaim' | 'ClaimAttest' | 'Attest' | 'MoveClaim'; + } + + /** @name PezkuwiRuntimeCommonClaimsEcdsaSignature (179) */ + interface PezkuwiRuntimeCommonClaimsEcdsaSignature extends U8aFixed {} + + /** @name PezkuwiRuntimeCommonClaimsEthereumAddress (181) */ + interface PezkuwiRuntimeCommonClaimsEthereumAddress extends U8aFixed {} + + /** @name PezkuwiRuntimeCommonClaimsStatementKind (185) */ + interface PezkuwiRuntimeCommonClaimsStatementKind extends Enum { + readonly isRegular: boolean; + readonly isSaft: boolean; + readonly type: 'Regular' | 'Saft'; + } + + /** @name PezkuwiRuntimeConstantsProxyProxyType (192) */ + interface PezkuwiRuntimeConstantsProxyProxyType extends Enum { + readonly isAny: boolean; + readonly isNonTransfer: boolean; + readonly isGovernance: boolean; + readonly isStaking: boolean; + readonly isCancelProxy: boolean; + readonly isAuction: boolean; + readonly isNominationPools: boolean; + readonly isParaRegistration: boolean; + readonly type: 'Any' | 'NonTransfer' | 'Governance' | 'Staking' | 'CancelProxy' | 'Auction' | 'NominationPools' | 'ParaRegistration'; + } + + /** @name PezkuwiRuntimeNposCompactSolution16 (200) */ + interface PezkuwiRuntimeNposCompactSolution16 extends Struct { + readonly votes1: Vec, Compact]>>; + readonly votes2: Vec, ITuple<[Compact, Compact]>, Compact]>>; + readonly votes3: Vec, Vec, Compact]>>, Compact]>>; + readonly votes4: Vec, Vec, Compact]>>, Compact]>>; + readonly votes5: Vec, Vec, Compact]>>, Compact]>>; + readonly votes6: Vec, Vec, Compact]>>, Compact]>>; + readonly votes7: Vec, Vec, Compact]>>, Compact]>>; + readonly votes8: Vec, Vec, Compact]>>, Compact]>>; + readonly votes9: Vec, Vec, Compact]>>, Compact]>>; + readonly votes10: Vec, Vec, Compact]>>, Compact]>>; + readonly votes11: Vec, Vec, Compact]>>, Compact]>>; + readonly votes12: Vec, Vec, Compact]>>, Compact]>>; + readonly votes13: Vec, Vec, Compact]>>, Compact]>>; + readonly votes14: Vec, Vec, Compact]>>, Compact]>>; + readonly votes15: Vec, Vec, Compact]>>, Compact]>>; + readonly votes16: Vec, Vec, Compact]>>, Compact]>>; + } + + /** @name PezpalletStakingAsyncAhClientCall (274) */ + interface PezpalletStakingAsyncAhClientCall extends Enum { + readonly isValidatorSet: boolean; + readonly asValidatorSet: { + readonly report: PezpalletStakingAsyncRcClientValidatorSetReport; + } & Struct; + readonly isSetMode: boolean; + readonly asSetMode: { + readonly mode: PezpalletStakingAsyncAhClientOperatingMode; + } & Struct; + readonly isForceOnMigrationEnd: boolean; + readonly type: 'ValidatorSet' | 'SetMode' | 'ForceOnMigrationEnd'; + } + + /** @name PezpalletStakingAsyncRcClientValidatorSetReport (275) */ + interface PezpalletStakingAsyncRcClientValidatorSetReport extends Struct { + readonly newValidatorSet: Vec; + readonly id: u32; + readonly pruneUpTo: Option; + readonly leftover: bool; + } + + /** @name PezpalletStakingAsyncAhClientOperatingMode (276) */ + interface PezpalletStakingAsyncAhClientOperatingMode extends Enum { + readonly isPassive: boolean; + readonly isBuffered: boolean; + readonly isActive: boolean; + readonly type: 'Passive' | 'Buffered' | 'Active'; + } + + /** @name PezkuwiRuntimeTeyrchainsConfigurationPezpalletCall (277) */ + interface PezkuwiRuntimeTeyrchainsConfigurationPezpalletCall extends Enum { + readonly isSetValidationUpgradeCooldown: boolean; + readonly asSetValidationUpgradeCooldown: { + readonly new_: u32; + } & Struct; + readonly isSetValidationUpgradeDelay: boolean; + readonly asSetValidationUpgradeDelay: { + readonly new_: u32; + } & Struct; + readonly isSetCodeRetentionPeriod: boolean; + readonly asSetCodeRetentionPeriod: { + readonly new_: u32; + } & Struct; + readonly isSetMaxCodeSize: boolean; + readonly asSetMaxCodeSize: { + readonly new_: u32; + } & Struct; + readonly isSetMaxPovSize: boolean; + readonly asSetMaxPovSize: { + readonly new_: u32; + } & Struct; + readonly isSetMaxHeadDataSize: boolean; + readonly asSetMaxHeadDataSize: { + readonly new_: u32; + } & Struct; + readonly isSetCoretimeCores: boolean; + readonly asSetCoretimeCores: { + readonly new_: u32; + } & Struct; + readonly isSetGroupRotationFrequency: boolean; + readonly asSetGroupRotationFrequency: { + readonly new_: u32; + } & Struct; + readonly isSetParasAvailabilityPeriod: boolean; + readonly asSetParasAvailabilityPeriod: { + readonly new_: u32; + } & Struct; + readonly isSetSchedulingLookahead: boolean; + readonly asSetSchedulingLookahead: { + readonly new_: u32; + } & Struct; + readonly isSetMaxValidatorsPerCore: boolean; + readonly asSetMaxValidatorsPerCore: { + readonly new_: Option; + } & Struct; + readonly isSetMaxValidators: boolean; + readonly asSetMaxValidators: { + readonly new_: Option; + } & Struct; + readonly isSetDisputePeriod: boolean; + readonly asSetDisputePeriod: { + readonly new_: u32; + } & Struct; + readonly isSetDisputePostConclusionAcceptancePeriod: boolean; + readonly asSetDisputePostConclusionAcceptancePeriod: { + readonly new_: u32; + } & Struct; + readonly isSetNoShowSlots: boolean; + readonly asSetNoShowSlots: { + readonly new_: u32; + } & Struct; + readonly isSetNDelayTranches: boolean; + readonly asSetNDelayTranches: { + readonly new_: u32; + } & Struct; + readonly isSetZerothDelayTrancheWidth: boolean; + readonly asSetZerothDelayTrancheWidth: { + readonly new_: u32; + } & Struct; + readonly isSetNeededApprovals: boolean; + readonly asSetNeededApprovals: { + readonly new_: u32; + } & Struct; + readonly isSetRelayVrfModuloSamples: boolean; + readonly asSetRelayVrfModuloSamples: { + readonly new_: u32; + } & Struct; + readonly isSetMaxUpwardQueueCount: boolean; + readonly asSetMaxUpwardQueueCount: { + readonly new_: u32; + } & Struct; + readonly isSetMaxUpwardQueueSize: boolean; + readonly asSetMaxUpwardQueueSize: { + readonly new_: u32; + } & Struct; + readonly isSetMaxDownwardMessageSize: boolean; + readonly asSetMaxDownwardMessageSize: { + readonly new_: u32; + } & Struct; + readonly isSetMaxUpwardMessageSize: boolean; + readonly asSetMaxUpwardMessageSize: { + readonly new_: u32; + } & Struct; + readonly isSetMaxUpwardMessageNumPerCandidate: boolean; + readonly asSetMaxUpwardMessageNumPerCandidate: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpOpenRequestTtl: boolean; + readonly asSetHrmpOpenRequestTtl: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpSenderDeposit: boolean; + readonly asSetHrmpSenderDeposit: { + readonly new_: u128; + } & Struct; + readonly isSetHrmpRecipientDeposit: boolean; + readonly asSetHrmpRecipientDeposit: { + readonly new_: u128; + } & Struct; + readonly isSetHrmpChannelMaxCapacity: boolean; + readonly asSetHrmpChannelMaxCapacity: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpChannelMaxTotalSize: boolean; + readonly asSetHrmpChannelMaxTotalSize: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpMaxParachainInboundChannels: boolean; + readonly asSetHrmpMaxParachainInboundChannels: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpChannelMaxMessageSize: boolean; + readonly asSetHrmpChannelMaxMessageSize: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpMaxParachainOutboundChannels: boolean; + readonly asSetHrmpMaxParachainOutboundChannels: { + readonly new_: u32; + } & Struct; + readonly isSetHrmpMaxMessageNumPerCandidate: boolean; + readonly asSetHrmpMaxMessageNumPerCandidate: { + readonly new_: u32; + } & Struct; + readonly isSetPvfVotingTtl: boolean; + readonly asSetPvfVotingTtl: { + readonly new_: u32; + } & Struct; + readonly isSetMinimumValidationUpgradeDelay: boolean; + readonly asSetMinimumValidationUpgradeDelay: { + readonly new_: u32; + } & Struct; + readonly isSetBypassConsistencyCheck: boolean; + readonly asSetBypassConsistencyCheck: { + readonly new_: bool; + } & Struct; + readonly isSetAsyncBackingParams: boolean; + readonly asSetAsyncBackingParams: { + readonly new_: PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams; + } & Struct; + readonly isSetExecutorParams: boolean; + readonly asSetExecutorParams: { + readonly new_: PezkuwiPrimitivesV8ExecutorParams; + } & Struct; + readonly isSetOnDemandBaseFee: boolean; + readonly asSetOnDemandBaseFee: { + readonly new_: u128; + } & Struct; + readonly isSetOnDemandFeeVariability: boolean; + readonly asSetOnDemandFeeVariability: { + readonly new_: Perbill; + } & Struct; + readonly isSetOnDemandQueueMaxSize: boolean; + readonly asSetOnDemandQueueMaxSize: { + readonly new_: u32; + } & Struct; + readonly isSetOnDemandTargetQueueUtilization: boolean; + readonly asSetOnDemandTargetQueueUtilization: { + readonly new_: Perbill; + } & Struct; + readonly isSetMinimumBackingVotes: boolean; + readonly asSetMinimumBackingVotes: { + readonly new_: u32; + } & Struct; + readonly isSetNodeFeature: boolean; + readonly asSetNodeFeature: { + readonly index: u8; + readonly value: bool; + } & Struct; + readonly isSetApprovalVotingParams: boolean; + readonly asSetApprovalVotingParams: { + readonly new_: PezkuwiPrimitivesV8ApprovalVotingParams; + } & Struct; + readonly isSetSchedulerParams: boolean; + readonly asSetSchedulerParams: { + readonly new_: PezkuwiPrimitivesV8SchedulerParams; + } & Struct; + readonly type: 'SetValidationUpgradeCooldown' | 'SetValidationUpgradeDelay' | 'SetCodeRetentionPeriod' | 'SetMaxCodeSize' | 'SetMaxPovSize' | 'SetMaxHeadDataSize' | 'SetCoretimeCores' | 'SetGroupRotationFrequency' | 'SetParasAvailabilityPeriod' | 'SetSchedulingLookahead' | 'SetMaxValidatorsPerCore' | 'SetMaxValidators' | 'SetDisputePeriod' | 'SetDisputePostConclusionAcceptancePeriod' | 'SetNoShowSlots' | 'SetNDelayTranches' | 'SetZerothDelayTrancheWidth' | 'SetNeededApprovals' | 'SetRelayVrfModuloSamples' | 'SetMaxUpwardQueueCount' | 'SetMaxUpwardQueueSize' | 'SetMaxDownwardMessageSize' | 'SetMaxUpwardMessageSize' | 'SetMaxUpwardMessageNumPerCandidate' | 'SetHrmpOpenRequestTtl' | 'SetHrmpSenderDeposit' | 'SetHrmpRecipientDeposit' | 'SetHrmpChannelMaxCapacity' | 'SetHrmpChannelMaxTotalSize' | 'SetHrmpMaxParachainInboundChannels' | 'SetHrmpChannelMaxMessageSize' | 'SetHrmpMaxParachainOutboundChannels' | 'SetHrmpMaxMessageNumPerCandidate' | 'SetPvfVotingTtl' | 'SetMinimumValidationUpgradeDelay' | 'SetBypassConsistencyCheck' | 'SetAsyncBackingParams' | 'SetExecutorParams' | 'SetOnDemandBaseFee' | 'SetOnDemandFeeVariability' | 'SetOnDemandQueueMaxSize' | 'SetOnDemandTargetQueueUtilization' | 'SetMinimumBackingVotes' | 'SetNodeFeature' | 'SetApprovalVotingParams' | 'SetSchedulerParams'; + } + + /** @name PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams (278) */ + interface PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams extends Struct { + readonly maxCandidateDepth: u32; + readonly allowedAncestryLen: u32; + } + + /** @name PezkuwiPrimitivesV8ExecutorParams (279) */ + interface PezkuwiPrimitivesV8ExecutorParams extends Vec {} + + /** @name PezkuwiPrimitivesV8ExecutorParamsExecutorParam (281) */ + interface PezkuwiPrimitivesV8ExecutorParamsExecutorParam extends Enum { + readonly isMaxMemoryPages: boolean; + readonly asMaxMemoryPages: u32; + readonly isStackLogicalMax: boolean; + readonly asStackLogicalMax: u32; + readonly isStackNativeMax: boolean; + readonly asStackNativeMax: u32; + readonly isPrecheckingMaxMemory: boolean; + readonly asPrecheckingMaxMemory: u64; + readonly isPvfPrepTimeout: boolean; + readonly asPvfPrepTimeout: ITuple<[PezkuwiPrimitivesV8PvfPrepKind, u64]>; + readonly isPvfExecTimeout: boolean; + readonly asPvfExecTimeout: ITuple<[PezkuwiPrimitivesV8PvfExecKind, u64]>; + readonly isWasmExtBulkMemory: boolean; + readonly type: 'MaxMemoryPages' | 'StackLogicalMax' | 'StackNativeMax' | 'PrecheckingMaxMemory' | 'PvfPrepTimeout' | 'PvfExecTimeout' | 'WasmExtBulkMemory'; + } + + /** @name PezkuwiPrimitivesV8PvfPrepKind (282) */ + interface PezkuwiPrimitivesV8PvfPrepKind extends Enum { + readonly isPrecheck: boolean; + readonly isPrepare: boolean; + readonly type: 'Precheck' | 'Prepare'; + } + + /** @name PezkuwiPrimitivesV8PvfExecKind (283) */ + interface PezkuwiPrimitivesV8PvfExecKind extends Enum { + readonly isBacking: boolean; + readonly isApproval: boolean; + readonly type: 'Backing' | 'Approval'; + } + + /** @name PezkuwiPrimitivesV8ApprovalVotingParams (284) */ + interface PezkuwiPrimitivesV8ApprovalVotingParams extends Struct { + readonly maxApprovalCoalesceCount: u32; + } + + /** @name PezkuwiPrimitivesV8SchedulerParams (285) */ + interface PezkuwiPrimitivesV8SchedulerParams extends Struct { + readonly groupRotationFrequency: u32; + readonly parasAvailabilityPeriod: u32; + readonly maxValidatorsPerCore: Option; + readonly lookahead: u32; + readonly numCores: u32; + readonly maxAvailabilityTimeouts: u32; + readonly onDemandQueueMaxSize: u32; + readonly onDemandTargetQueueUtilization: Perbill; + readonly onDemandFeeVariability: Perbill; + readonly onDemandBaseFee: u128; + readonly ttl: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsSharedPezpalletCall (286) */ + type PezkuwiRuntimeTeyrchainsSharedPezpalletCall = Null; + + /** @name PezkuwiRuntimeTeyrchainsInclusionPezpalletCall (287) */ + type PezkuwiRuntimeTeyrchainsInclusionPezpalletCall = Null; + + /** @name PezkuwiRuntimeTeyrchainsParasInherentPezpalletCall (288) */ + interface PezkuwiRuntimeTeyrchainsParasInherentPezpalletCall extends Enum { + readonly isEnter: boolean; + readonly asEnter: { + readonly data: PezkuwiPrimitivesVstagingInherentData; + } & Struct; + readonly type: 'Enter'; + } + + /** @name PezkuwiPrimitivesVstagingInherentData (289) */ + interface PezkuwiPrimitivesVstagingInherentData extends Struct { + readonly bitfields: Vec; + readonly backedCandidates: Vec; + readonly disputes: Vec; + readonly parentHeader: PezspRuntimeHeader; + } + + /** @name PezkuwiPrimitivesV8SignedUncheckedSigned (291) */ + interface PezkuwiPrimitivesV8SignedUncheckedSigned extends Struct { + readonly payload: BitVec; + readonly validatorIndex: u32; + readonly signature: PezkuwiPrimitivesV8ValidatorAppSignature; + } + + /** @name BitvecOrderLsb0 (294) */ + type BitvecOrderLsb0 = Null; + + /** @name PezkuwiPrimitivesV8ValidatorAppSignature (296) */ + interface PezkuwiPrimitivesV8ValidatorAppSignature extends U8aFixed {} + + /** @name PezkuwiPrimitivesVstagingBackedCandidate (298) */ + interface PezkuwiPrimitivesVstagingBackedCandidate extends Struct { + readonly candidate: PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2; + readonly validityVotes: Vec; + readonly validatorIndices: BitVec; + } + + /** @name PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2 (299) */ + interface PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2 extends Struct { + readonly descriptor: PezkuwiPrimitivesVstagingCandidateDescriptorV2; + readonly commitments: PezkuwiPrimitivesV8CandidateCommitments; + } + + /** @name PezkuwiPrimitivesVstagingCandidateDescriptorV2 (300) */ + interface PezkuwiPrimitivesVstagingCandidateDescriptorV2 extends Struct { + readonly paraId: u32; + readonly relayParent: H256; + readonly version: u8; + readonly coreIndex: u16; + readonly sessionIndex: u32; + readonly reserved1: U8aFixed; + readonly persistedValidationDataHash: H256; + readonly povHash: H256; + readonly erasureRoot: H256; + readonly reserved2: U8aFixed; + readonly paraHead: H256; + readonly validationCodeHash: H256; + } + + /** @name PezkuwiPrimitivesV8CandidateCommitments (304) */ + interface PezkuwiPrimitivesV8CandidateCommitments extends Struct { + readonly upwardMessages: Vec; + readonly horizontalMessages: Vec; + readonly newValidationCode: Option; + readonly headData: Bytes; + readonly processedDownwardMessages: u32; + readonly hrmpWatermark: u32; + } + + /** @name PezkuwiCorePrimitivesOutboundHrmpMessage (307) */ + interface PezkuwiCorePrimitivesOutboundHrmpMessage extends Struct { + readonly recipient: u32; + readonly data: Bytes; + } + + /** @name PezkuwiPrimitivesV8ValidityAttestation (313) */ + interface PezkuwiPrimitivesV8ValidityAttestation extends Enum { + readonly isImplicit: boolean; + readonly asImplicit: PezkuwiPrimitivesV8ValidatorAppSignature; + readonly isExplicit: boolean; + readonly asExplicit: PezkuwiPrimitivesV8ValidatorAppSignature; + readonly type: 'Implicit' | 'Explicit'; + } + + /** @name PezkuwiPrimitivesV8DisputeStatementSet (315) */ + interface PezkuwiPrimitivesV8DisputeStatementSet extends Struct { + readonly candidateHash: H256; + readonly session: u32; + readonly statements: Vec>; + } + + /** @name PezkuwiPrimitivesV8DisputeStatement (319) */ + interface PezkuwiPrimitivesV8DisputeStatement extends Enum { + readonly isValid: boolean; + readonly asValid: PezkuwiPrimitivesV8ValidDisputeStatementKind; + readonly isInvalid: boolean; + readonly asInvalid: PezkuwiPrimitivesV8InvalidDisputeStatementKind; + readonly type: 'Valid' | 'Invalid'; + } + + /** @name PezkuwiPrimitivesV8ValidDisputeStatementKind (320) */ + interface PezkuwiPrimitivesV8ValidDisputeStatementKind extends Enum { + readonly isExplicit: boolean; + readonly isBackingSeconded: boolean; + readonly asBackingSeconded: H256; + readonly isBackingValid: boolean; + readonly asBackingValid: H256; + readonly isApprovalChecking: boolean; + readonly isApprovalCheckingMultipleCandidates: boolean; + readonly asApprovalCheckingMultipleCandidates: Vec; + readonly type: 'Explicit' | 'BackingSeconded' | 'BackingValid' | 'ApprovalChecking' | 'ApprovalCheckingMultipleCandidates'; + } + + /** @name PezkuwiPrimitivesV8InvalidDisputeStatementKind (322) */ + interface PezkuwiPrimitivesV8InvalidDisputeStatementKind extends Enum { + readonly isExplicit: boolean; + readonly type: 'Explicit'; + } + + /** @name PezkuwiRuntimeTeyrchainsParasPezpalletCall (323) */ + interface PezkuwiRuntimeTeyrchainsParasPezpalletCall extends Enum { + readonly isForceSetCurrentCode: boolean; + readonly asForceSetCurrentCode: { + readonly para: u32; + readonly newCode: Bytes; + } & Struct; + readonly isForceSetCurrentHead: boolean; + readonly asForceSetCurrentHead: { + readonly para: u32; + readonly newHead: Bytes; + } & Struct; + readonly isForceScheduleCodeUpgrade: boolean; + readonly asForceScheduleCodeUpgrade: { + readonly para: u32; + readonly newCode: Bytes; + readonly relayParentNumber: u32; + } & Struct; + readonly isForceNoteNewHead: boolean; + readonly asForceNoteNewHead: { + readonly para: u32; + readonly newHead: Bytes; + } & Struct; + readonly isForceQueueAction: boolean; + readonly asForceQueueAction: { + readonly para: u32; + } & Struct; + readonly isAddTrustedValidationCode: boolean; + readonly asAddTrustedValidationCode: { + readonly validationCode: Bytes; + } & Struct; + readonly isPokeUnusedValidationCode: boolean; + readonly asPokeUnusedValidationCode: { + readonly validationCodeHash: H256; + } & Struct; + readonly isIncludePvfCheckStatement: boolean; + readonly asIncludePvfCheckStatement: { + readonly stmt: PezkuwiPrimitivesV8PvfCheckStatement; + readonly signature: PezkuwiPrimitivesV8ValidatorAppSignature; + } & Struct; + readonly isForceSetMostRecentContext: boolean; + readonly asForceSetMostRecentContext: { + readonly para: u32; + readonly context: u32; + } & Struct; + readonly isRemoveUpgradeCooldown: boolean; + readonly asRemoveUpgradeCooldown: { + readonly para: u32; + } & Struct; + readonly isAuthorizeForceSetCurrentCodeHash: boolean; + readonly asAuthorizeForceSetCurrentCodeHash: { + readonly para: u32; + readonly newCodeHash: H256; + readonly validPeriod: u32; + } & Struct; + readonly isApplyAuthorizedForceSetCurrentCode: boolean; + readonly asApplyAuthorizedForceSetCurrentCode: { + readonly para: u32; + readonly newCode: Bytes; + } & Struct; + readonly type: 'ForceSetCurrentCode' | 'ForceSetCurrentHead' | 'ForceScheduleCodeUpgrade' | 'ForceNoteNewHead' | 'ForceQueueAction' | 'AddTrustedValidationCode' | 'PokeUnusedValidationCode' | 'IncludePvfCheckStatement' | 'ForceSetMostRecentContext' | 'RemoveUpgradeCooldown' | 'AuthorizeForceSetCurrentCodeHash' | 'ApplyAuthorizedForceSetCurrentCode'; + } + + /** @name PezkuwiPrimitivesV8PvfCheckStatement (324) */ + interface PezkuwiPrimitivesV8PvfCheckStatement extends Struct { + readonly accept: bool; + readonly subject: H256; + readonly sessionIndex: u32; + readonly validatorIndex: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsInitializerPezpalletCall (325) */ + interface PezkuwiRuntimeTeyrchainsInitializerPezpalletCall extends Enum { + readonly isForceApprove: boolean; + readonly asForceApprove: { + readonly upTo: u32; + } & Struct; + readonly type: 'ForceApprove'; + } + + /** @name PezkuwiRuntimeTeyrchainsHrmpPezpalletCall (326) */ + interface PezkuwiRuntimeTeyrchainsHrmpPezpalletCall extends Enum { + readonly isHrmpInitOpenChannel: boolean; + readonly asHrmpInitOpenChannel: { + readonly recipient: u32; + readonly proposedMaxCapacity: u32; + readonly proposedMaxMessageSize: u32; + } & Struct; + readonly isHrmpAcceptOpenChannel: boolean; + readonly asHrmpAcceptOpenChannel: { + readonly sender: u32; + } & Struct; + readonly isHrmpCloseChannel: boolean; + readonly asHrmpCloseChannel: { + readonly channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId; + } & Struct; + readonly isForceCleanHrmp: boolean; + readonly asForceCleanHrmp: { + readonly para: u32; + readonly numInbound: u32; + readonly numOutbound: u32; + } & Struct; + readonly isForceProcessHrmpOpen: boolean; + readonly asForceProcessHrmpOpen: { + readonly channels: u32; + } & Struct; + readonly isForceProcessHrmpClose: boolean; + readonly asForceProcessHrmpClose: { + readonly channels: u32; + } & Struct; + readonly isHrmpCancelOpenRequest: boolean; + readonly asHrmpCancelOpenRequest: { + readonly channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId; + readonly openRequests: u32; + } & Struct; + readonly isForceOpenHrmpChannel: boolean; + readonly asForceOpenHrmpChannel: { + readonly sender: u32; + readonly recipient: u32; + readonly maxCapacity: u32; + readonly maxMessageSize: u32; + } & Struct; + readonly isEstablishSystemChannel: boolean; + readonly asEstablishSystemChannel: { + readonly sender: u32; + readonly recipient: u32; + } & Struct; + readonly isPokeChannelDeposits: boolean; + readonly asPokeChannelDeposits: { + readonly sender: u32; + readonly recipient: u32; + } & Struct; + readonly isEstablishChannelWithSystem: boolean; + readonly asEstablishChannelWithSystem: { + readonly targetSystemChain: u32; + } & Struct; + readonly type: 'HrmpInitOpenChannel' | 'HrmpAcceptOpenChannel' | 'HrmpCloseChannel' | 'ForceCleanHrmp' | 'ForceProcessHrmpOpen' | 'ForceProcessHrmpClose' | 'HrmpCancelOpenRequest' | 'ForceOpenHrmpChannel' | 'EstablishSystemChannel' | 'PokeChannelDeposits' | 'EstablishChannelWithSystem'; + } + + /** @name PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId (327) */ + interface PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId extends Struct { + readonly sender: u32; + readonly recipient: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesPezpalletCall (328) */ + interface PezkuwiRuntimeTeyrchainsDisputesPezpalletCall extends Enum { + readonly isForceUnfreeze: boolean; + readonly type: 'ForceUnfreeze'; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletCall (329) */ + interface PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletCall extends Enum { + readonly isReportDisputeLostUnsigned: boolean; + readonly asReportDisputeLostUnsigned: { + readonly disputeProof: PezkuwiPrimitivesVstagingDisputeProof; + readonly keyOwnerProof: PezspSessionMembershipProof; + } & Struct; + readonly type: 'ReportDisputeLostUnsigned'; + } + + /** @name PezkuwiPrimitivesVstagingDisputeProof (330) */ + interface PezkuwiPrimitivesVstagingDisputeProof extends Struct { + readonly timeSlot: PezkuwiPrimitivesV8SlashingDisputesTimeSlot; + readonly kind: PezkuwiPrimitivesVstagingDisputeOffenceKind; + readonly validatorIndex: u32; + readonly validatorId: PezkuwiPrimitivesV8ValidatorAppPublic; + } + + /** @name PezkuwiPrimitivesV8SlashingDisputesTimeSlot (331) */ + interface PezkuwiPrimitivesV8SlashingDisputesTimeSlot extends Struct { + readonly sessionIndex: u32; + readonly candidateHash: H256; + } + + /** @name PezkuwiPrimitivesVstagingDisputeOffenceKind (332) */ + interface PezkuwiPrimitivesVstagingDisputeOffenceKind extends Enum { + readonly isForInvalidBacked: boolean; + readonly isAgainstValid: boolean; + readonly isForInvalidApproved: boolean; + readonly type: 'ForInvalidBacked' | 'AgainstValid' | 'ForInvalidApproved'; + } + + /** @name PezkuwiRuntimeTeyrchainsOnDemandPezpalletCall (333) */ + interface PezkuwiRuntimeTeyrchainsOnDemandPezpalletCall extends Enum { + readonly isPlaceOrderAllowDeath: boolean; + readonly asPlaceOrderAllowDeath: { + readonly maxAmount: u128; + readonly paraId: u32; + } & Struct; + readonly isPlaceOrderKeepAlive: boolean; + readonly asPlaceOrderKeepAlive: { + readonly maxAmount: u128; + readonly paraId: u32; + } & Struct; + readonly isPlaceOrderWithCredits: boolean; + readonly asPlaceOrderWithCredits: { + readonly maxAmount: u128; + readonly paraId: u32; + } & Struct; + readonly type: 'PlaceOrderAllowDeath' | 'PlaceOrderKeepAlive' | 'PlaceOrderWithCredits'; + } + + /** @name PezkuwiRuntimeCommonParasRegistrarPezpalletCall (334) */ + interface PezkuwiRuntimeCommonParasRegistrarPezpalletCall extends Enum { + readonly isRegister: boolean; + readonly asRegister: { + readonly id: u32; + readonly genesisHead: Bytes; + readonly validationCode: Bytes; + } & Struct; + readonly isForceRegister: boolean; + readonly asForceRegister: { + readonly who: AccountId32; + readonly deposit: u128; + readonly id: u32; + readonly genesisHead: Bytes; + readonly validationCode: Bytes; + } & Struct; + readonly isDeregister: boolean; + readonly asDeregister: { + readonly id: u32; + } & Struct; + readonly isSwap: boolean; + readonly asSwap: { + readonly id: u32; + readonly other: u32; + } & Struct; + readonly isRemoveLock: boolean; + readonly asRemoveLock: { + readonly para: u32; + } & Struct; + readonly isReserve: boolean; + readonly isAddLock: boolean; + readonly asAddLock: { + readonly para: u32; + } & Struct; + readonly isScheduleCodeUpgrade: boolean; + readonly asScheduleCodeUpgrade: { + readonly para: u32; + readonly newCode: Bytes; + } & Struct; + readonly isSetCurrentHead: boolean; + readonly asSetCurrentHead: { + readonly para: u32; + readonly newHead: Bytes; + } & Struct; + readonly type: 'Register' | 'ForceRegister' | 'Deregister' | 'Swap' | 'RemoveLock' | 'Reserve' | 'AddLock' | 'ScheduleCodeUpgrade' | 'SetCurrentHead'; + } + + /** @name PezkuwiRuntimeCommonSlotsPezpalletCall (335) */ + interface PezkuwiRuntimeCommonSlotsPezpalletCall extends Enum { + readonly isForceLease: boolean; + readonly asForceLease: { + readonly para: u32; + readonly leaser: AccountId32; + readonly amount: u128; + readonly periodBegin: u32; + readonly periodCount: u32; + } & Struct; + readonly isClearAllLeases: boolean; + readonly asClearAllLeases: { + readonly para: u32; + } & Struct; + readonly isTriggerOnboard: boolean; + readonly asTriggerOnboard: { + readonly para: u32; + } & Struct; + readonly type: 'ForceLease' | 'ClearAllLeases' | 'TriggerOnboard'; + } + + /** @name PezkuwiRuntimeCommonAuctionsPezpalletCall (336) */ + interface PezkuwiRuntimeCommonAuctionsPezpalletCall extends Enum { + readonly isNewAuction: boolean; + readonly asNewAuction: { + readonly duration: Compact; + readonly leasePeriodIndex: Compact; + } & Struct; + readonly isBid: boolean; + readonly asBid: { + readonly para: Compact; + readonly auctionIndex: Compact; + readonly firstSlot: Compact; + readonly lastSlot: Compact; + readonly amount: Compact; + } & Struct; + readonly isCancelAuction: boolean; + readonly type: 'NewAuction' | 'Bid' | 'CancelAuction'; + } + + /** @name PezkuwiRuntimeCommonCrowdloanPezpalletCall (338) */ + interface PezkuwiRuntimeCommonCrowdloanPezpalletCall extends Enum { + readonly isCreate: boolean; + readonly asCreate: { + readonly index: Compact; + readonly cap: Compact; + readonly firstPeriod: Compact; + readonly lastPeriod: Compact; + readonly end: Compact; + readonly verifier: Option; + } & Struct; + readonly isContribute: boolean; + readonly asContribute: { + readonly index: Compact; + readonly value: Compact; + readonly signature: Option; + } & Struct; + readonly isWithdraw: boolean; + readonly asWithdraw: { + readonly who: AccountId32; + readonly index: Compact; + } & Struct; + readonly isRefund: boolean; + readonly asRefund: { + readonly index: Compact; + } & Struct; + readonly isDissolve: boolean; + readonly asDissolve: { + readonly index: Compact; + } & Struct; + readonly isEdit: boolean; + readonly asEdit: { + readonly index: Compact; + readonly cap: Compact; + readonly firstPeriod: Compact; + readonly lastPeriod: Compact; + readonly end: Compact; + readonly verifier: Option; + } & Struct; + readonly isAddMemo: boolean; + readonly asAddMemo: { + readonly index: u32; + readonly memo: Bytes; + } & Struct; + readonly isPoke: boolean; + readonly asPoke: { + readonly index: u32; + } & Struct; + readonly isContributeAll: boolean; + readonly asContributeAll: { + readonly index: Compact; + readonly signature: Option; + } & Struct; + readonly type: 'Create' | 'Contribute' | 'Withdraw' | 'Refund' | 'Dissolve' | 'Edit' | 'AddMemo' | 'Poke' | 'ContributeAll'; + } + + /** @name PezspRuntimeMultiSigner (340) */ + interface PezspRuntimeMultiSigner extends Enum { + readonly isEd25519: boolean; + readonly asEd25519: U8aFixed; + readonly isSr25519: boolean; + readonly asSr25519: U8aFixed; + readonly isEcdsa: boolean; + readonly asEcdsa: U8aFixed; + readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; + } + + /** @name PezkuwiRuntimeTeyrchainsCoretimePezpalletCall (343) */ + interface PezkuwiRuntimeTeyrchainsCoretimePezpalletCall extends Enum { + readonly isRequestCoreCount: boolean; + readonly asRequestCoreCount: { + readonly count: u16; + } & Struct; + readonly isRequestRevenueAt: boolean; + readonly asRequestRevenueAt: { + readonly when: u32; + } & Struct; + readonly isCreditAccount: boolean; + readonly asCreditAccount: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly isAssignCore: boolean; + readonly asAssignCore: { + readonly core: u16; + readonly begin: u32; + readonly assignment: Vec>; + readonly endHint: Option; + } & Struct; + readonly type: 'RequestCoreCount' | 'RequestRevenueAt' | 'CreditAccount' | 'AssignCore'; + } + + /** @name PezpalletXcmCall (354) */ + interface PezpalletXcmCall extends Enum { + readonly isSend: boolean; + readonly asSend: { + readonly dest: XcmVersionedLocation; + readonly message: XcmVersionedXcm; + } & Struct; + readonly isTeleportAssets: boolean; + readonly asTeleportAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + } & Struct; + readonly isReserveTransferAssets: boolean; + readonly asReserveTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + } & Struct; + readonly isExecute: boolean; + readonly asExecute: { + readonly message: XcmVersionedXcm; + readonly maxWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isForceXcmVersion: boolean; + readonly asForceXcmVersion: { + readonly location: StagingXcmV5Location; + readonly version: u32; + } & Struct; + readonly isForceDefaultXcmVersion: boolean; + readonly asForceDefaultXcmVersion: { + readonly maybeXcmVersion: Option; + } & Struct; + readonly isForceSubscribeVersionNotify: boolean; + readonly asForceSubscribeVersionNotify: { + readonly location: XcmVersionedLocation; + } & Struct; + readonly isForceUnsubscribeVersionNotify: boolean; + readonly asForceUnsubscribeVersionNotify: { + readonly location: XcmVersionedLocation; + } & Struct; + readonly isLimitedReserveTransferAssets: boolean; + readonly asLimitedReserveTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isLimitedTeleportAssets: boolean; + readonly asLimitedTeleportAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isForceSuspension: boolean; + readonly asForceSuspension: { + readonly suspended: bool; + } & Struct; + readonly isTransferAssets: boolean; + readonly asTransferAssets: { + readonly dest: XcmVersionedLocation; + readonly beneficiary: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly feeAssetItem: u32; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isClaimAssets: boolean; + readonly asClaimAssets: { + readonly assets: XcmVersionedAssets; + readonly beneficiary: XcmVersionedLocation; + } & Struct; + readonly isTransferAssetsUsingTypeAndThen: boolean; + readonly asTransferAssetsUsingTypeAndThen: { + readonly dest: XcmVersionedLocation; + readonly assets: XcmVersionedAssets; + readonly assetsTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly remoteFeesId: XcmVersionedAssetId; + readonly feesTransferType: StagingXcmExecutorAssetTransferTransferType; + readonly customXcmOnDest: XcmVersionedXcm; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isAddAuthorizedAlias: boolean; + readonly asAddAuthorizedAlias: { + readonly aliaser: XcmVersionedLocation; + readonly expires: Option; + } & Struct; + readonly isRemoveAuthorizedAlias: boolean; + readonly asRemoveAuthorizedAlias: { + readonly aliaser: XcmVersionedLocation; + } & Struct; + readonly isRemoveAllAuthorizedAliases: boolean; + readonly type: 'Send' | 'TeleportAssets' | 'ReserveTransferAssets' | 'Execute' | 'ForceXcmVersion' | 'ForceDefaultXcmVersion' | 'ForceSubscribeVersionNotify' | 'ForceUnsubscribeVersionNotify' | 'LimitedReserveTransferAssets' | 'LimitedTeleportAssets' | 'ForceSuspension' | 'TransferAssets' | 'ClaimAssets' | 'TransferAssetsUsingTypeAndThen' | 'AddAuthorizedAlias' | 'RemoveAuthorizedAlias' | 'RemoveAllAuthorizedAliases'; + } + + /** @name XcmVersionedXcm (355) */ + interface XcmVersionedXcm extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3Xcm; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Xcm; + readonly isV5: boolean; + readonly asV5: StagingXcmV5Xcm; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name XcmV3Xcm (356) */ + interface XcmV3Xcm extends Vec {} + + /** @name XcmV3Instruction (358) */ + interface XcmV3Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: XcmV3MultiassetMultiAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: XcmV3MultiassetMultiAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: XcmV3MultiassetMultiAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: XcmV3Response; + readonly maxWeight: PezspWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly beneficiary: StagingXcmV3MultiLocation; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly requireWeightAtMost: PezspWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: XcmV3Junctions; + readonly isReportError: boolean; + readonly asReportError: XcmV3QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly beneficiary: StagingXcmV3MultiLocation; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: XcmV3MultiassetMultiAssetFilter; + readonly want: XcmV3MultiassetMultiAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly reserve: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: XcmV3MultiassetMultiAssetFilter; + readonly dest: StagingXcmV3MultiLocation; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: XcmV3QueryResponseInfo; + readonly assets: XcmV3MultiassetMultiAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: XcmV3MultiAsset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV3Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV3Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: XcmV3MultiassetMultiAssets; + readonly ticket: StagingXcmV3MultiLocation; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: XcmV3MultiassetMultiAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: XcmV3MultiassetMultiAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: XcmV3QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: XcmV3QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: XcmV3Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: XcmV3JunctionNetworkId; + readonly destination: XcmV3Junctions; + readonly xcm: XcmV3Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: XcmV3MultiAsset; + readonly unlocker: StagingXcmV3MultiLocation; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: XcmV3MultiAsset; + readonly target: StagingXcmV3MultiLocation; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: XcmV3MultiAsset; + readonly owner: StagingXcmV3MultiLocation; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: XcmV3MultiAsset; + readonly locker: StagingXcmV3MultiLocation; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV3MultiLocation; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; + } + + /** @name XcmV3MultiassetMultiAssets (359) */ + interface XcmV3MultiassetMultiAssets extends Vec {} + + /** @name XcmV3MultiAsset (361) */ + interface XcmV3MultiAsset extends Struct { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetFungibility; + } + + /** @name XcmV3MultiassetFungibility (362) */ + interface XcmV3MultiassetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: XcmV3MultiassetAssetInstance; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name XcmV3MultiassetAssetInstance (363) */ + interface XcmV3MultiassetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; + } + + /** @name XcmV3Response (365) */ + interface XcmV3Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: XcmV3MultiassetMultiAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; + } + + /** @name XcmV3TraitsError (368) */ + interface XcmV3TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: PezspWeightsWeightV2Weight; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable' | 'ExceedsStackLimit'; + } + + /** @name XcmV3PezpalletInfo (370) */ + interface XcmV3PezpalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + + /** @name XcmV3MaybeErrorCode (373) */ + interface XcmV3MaybeErrorCode extends Enum { + readonly isSuccess: boolean; + readonly isError: boolean; + readonly asError: Bytes; + readonly isTruncatedError: boolean; + readonly asTruncatedError: Bytes; + readonly type: 'Success' | 'Error' | 'TruncatedError'; + } + + /** @name XcmV3OriginKind (376) */ + interface XcmV3OriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; + } + + /** @name XcmDoubleEncoded (377) */ + interface XcmDoubleEncoded extends Struct { + readonly encoded: Bytes; + } + + /** @name XcmV3QueryResponseInfo (378) */ + interface XcmV3QueryResponseInfo extends Struct { + readonly destination: StagingXcmV3MultiLocation; + readonly queryId: Compact; + readonly maxWeight: PezspWeightsWeightV2Weight; + } + + /** @name XcmV3MultiassetMultiAssetFilter (379) */ + interface XcmV3MultiassetMultiAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: XcmV3MultiassetMultiAssets; + readonly isWild: boolean; + readonly asWild: XcmV3MultiassetWildMultiAsset; + readonly type: 'Definite' | 'Wild'; + } + + /** @name XcmV3MultiassetWildMultiAsset (380) */ + interface XcmV3MultiassetWildMultiAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: XcmV3MultiassetAssetId; + readonly fun: XcmV3MultiassetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; + } + + /** @name XcmV3MultiassetWildFungibility (381) */ + interface XcmV3MultiassetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name XcmV3WeightLimit (382) */ + interface XcmV3WeightLimit extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: PezspWeightsWeightV2Weight; + readonly type: 'Unlimited' | 'Limited'; + } + + /** @name StagingXcmV4Xcm (383) */ + interface StagingXcmV4Xcm extends Vec {} + + /** @name StagingXcmV4Instruction (385) */ + interface StagingXcmV4Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: StagingXcmV4AssetAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: StagingXcmV4AssetAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: StagingXcmV4AssetAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: StagingXcmV4Response; + readonly maxWeight: PezspWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly beneficiary: StagingXcmV4Location; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly requireWeightAtMost: PezspWeightsWeightV2Weight; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: StagingXcmV4Junctions; + readonly isReportError: boolean; + readonly asReportError: StagingXcmV4QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly beneficiary: StagingXcmV4Location; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: StagingXcmV4AssetAssetFilter; + readonly want: StagingXcmV4AssetAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly reserve: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: StagingXcmV4AssetAssetFilter; + readonly dest: StagingXcmV4Location; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: StagingXcmV4QueryResponseInfo; + readonly assets: StagingXcmV4AssetAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: StagingXcmV4Asset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: StagingXcmV4Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: StagingXcmV4Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: StagingXcmV4AssetAssets; + readonly ticket: StagingXcmV4Location; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: StagingXcmV4AssetAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: StagingXcmV4AssetAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: StagingXcmV4QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: StagingXcmV4QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: StagingXcmV4Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: StagingXcmV4JunctionNetworkId; + readonly destination: StagingXcmV4Junctions; + readonly xcm: StagingXcmV4Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: StagingXcmV4Asset; + readonly unlocker: StagingXcmV4Location; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: StagingXcmV4Asset; + readonly target: StagingXcmV4Location; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: StagingXcmV4Asset; + readonly owner: StagingXcmV4Location; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: StagingXcmV4Asset; + readonly locker: StagingXcmV4Location; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV4Location; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; + } + + /** @name StagingXcmV4AssetAssets (386) */ + interface StagingXcmV4AssetAssets extends Vec {} + + /** @name StagingXcmV4Asset (388) */ + interface StagingXcmV4Asset extends Struct { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetFungibility; + } + + /** @name StagingXcmV4AssetFungibility (389) */ + interface StagingXcmV4AssetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: StagingXcmV4AssetAssetInstance; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name StagingXcmV4AssetAssetInstance (390) */ + interface StagingXcmV4AssetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; + } + + /** @name StagingXcmV4Response (391) */ + interface StagingXcmV4Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: StagingXcmV4AssetAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; + } + + /** @name StagingXcmV4PezpalletInfo (393) */ + interface StagingXcmV4PezpalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + + /** @name StagingXcmV4QueryResponseInfo (397) */ + interface StagingXcmV4QueryResponseInfo extends Struct { + readonly destination: StagingXcmV4Location; + readonly queryId: Compact; + readonly maxWeight: PezspWeightsWeightV2Weight; + } + + /** @name StagingXcmV4AssetAssetFilter (398) */ + interface StagingXcmV4AssetAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: StagingXcmV4AssetAssets; + readonly isWild: boolean; + readonly asWild: StagingXcmV4AssetWildAsset; + readonly type: 'Definite' | 'Wild'; + } + + /** @name StagingXcmV4AssetWildAsset (399) */ + interface StagingXcmV4AssetWildAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: StagingXcmV4AssetAssetId; + readonly fun: StagingXcmV4AssetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; + } + + /** @name StagingXcmV4AssetWildFungibility (400) */ + interface StagingXcmV4AssetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name StagingXcmV5Xcm (401) */ + interface StagingXcmV5Xcm extends Vec {} + + /** @name StagingXcmV5Instruction (403) */ + interface StagingXcmV5Instruction extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: StagingXcmV5AssetAssets; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: StagingXcmV5AssetAssets; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: StagingXcmV5AssetAssets; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: StagingXcmV5Response; + readonly maxWeight: PezspWeightsWeightV2Weight; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: StagingXcmV5AssetAssets; + readonly beneficiary: StagingXcmV5Location; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: StagingXcmV5AssetAssets; + readonly dest: StagingXcmV5Location; + readonly xcm: StagingXcmV5Xcm; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmV3OriginKind; + readonly fallbackMaxWeight: Option; + readonly call: XcmDoubleEncoded; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: StagingXcmV5Junctions; + readonly isReportError: boolean; + readonly asReportError: StagingXcmV5QueryResponseInfo; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: StagingXcmV5AssetAssetFilter; + readonly beneficiary: StagingXcmV5Location; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: StagingXcmV5AssetAssetFilter; + readonly dest: StagingXcmV5Location; + readonly xcm: StagingXcmV5Xcm; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: StagingXcmV5AssetAssetFilter; + readonly want: StagingXcmV5AssetAssets; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: StagingXcmV5AssetAssetFilter; + readonly reserve: StagingXcmV5Location; + readonly xcm: StagingXcmV5Xcm; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: StagingXcmV5AssetAssetFilter; + readonly dest: StagingXcmV5Location; + readonly xcm: StagingXcmV5Xcm; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: StagingXcmV5QueryResponseInfo; + readonly assets: StagingXcmV5AssetAssetFilter; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: StagingXcmV5Asset; + readonly weightLimit: XcmV3WeightLimit; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: StagingXcmV5Xcm; + readonly isSetAppendix: boolean; + readonly asSetAppendix: StagingXcmV5Xcm; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: StagingXcmV5AssetAssets; + readonly ticket: StagingXcmV5Location; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: StagingXcmV5AssetAssets; + readonly isExpectAsset: boolean; + readonly asExpectAsset: StagingXcmV5AssetAssets; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: XcmV3MaybeErrorCode; + readonly isQueryPallet: boolean; + readonly asQueryPallet: { + readonly moduleName: Bytes; + readonly responseInfo: StagingXcmV5QueryResponseInfo; + } & Struct; + readonly isExpectPallet: boolean; + readonly asExpectPallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: StagingXcmV5QueryResponseInfo; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: StagingXcmV5Junction; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: StagingXcmV5JunctionNetworkId; + readonly destination: StagingXcmV5Junctions; + readonly xcm: StagingXcmV5Xcm; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: StagingXcmV5Asset; + readonly unlocker: StagingXcmV5Location; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: StagingXcmV5Asset; + readonly target: StagingXcmV5Location; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: StagingXcmV5Asset; + readonly owner: StagingXcmV5Location; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: StagingXcmV5Asset; + readonly locker: StagingXcmV5Location; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: StagingXcmV5Location; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: XcmV3WeightLimit; + readonly checkOrigin: Option; + } & Struct; + readonly isPayFees: boolean; + readonly asPayFees: { + readonly asset: StagingXcmV5Asset; + } & Struct; + readonly isInitiateTransfer: boolean; + readonly asInitiateTransfer: { + readonly destination: StagingXcmV5Location; + readonly remoteFees: Option; + readonly preserveOrigin: bool; + readonly assets: Vec; + readonly remoteXcm: StagingXcmV5Xcm; + } & Struct; + readonly isExecuteWithOrigin: boolean; + readonly asExecuteWithOrigin: { + readonly descendantOrigin: Option; + readonly xcm: StagingXcmV5Xcm; + } & Struct; + readonly isSetHints: boolean; + readonly asSetHints: { + readonly hints: Vec; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPallet' | 'ExpectPallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution' | 'PayFees' | 'InitiateTransfer' | 'ExecuteWithOrigin' | 'SetHints'; + } + + /** @name StagingXcmV5AssetAssets (404) */ + interface StagingXcmV5AssetAssets extends Vec {} + + /** @name StagingXcmV5Asset (406) */ + interface StagingXcmV5Asset extends Struct { + readonly id: StagingXcmV5AssetAssetId; + readonly fun: StagingXcmV5AssetFungibility; + } + + /** @name StagingXcmV5AssetFungibility (407) */ + interface StagingXcmV5AssetFungibility extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: StagingXcmV5AssetAssetInstance; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name StagingXcmV5AssetAssetInstance (408) */ + interface StagingXcmV5AssetAssetInstance extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; + } + + /** @name StagingXcmV5Response (409) */ + interface StagingXcmV5Response extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: StagingXcmV5AssetAssets; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPalletsInfo: boolean; + readonly asPalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: XcmV3MaybeErrorCode; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PalletsInfo' | 'DispatchResult'; + } + + /** @name XcmV5TraitsError (412) */ + interface XcmV5TraitsError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isTooManyAssets: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: PezspWeightsWeightV2Weight; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'TooManyAssets' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable' | 'ExceedsStackLimit'; + } + + /** @name StagingXcmV5PezpalletInfo (414) */ + interface StagingXcmV5PezpalletInfo extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; + } + + /** @name StagingXcmV5QueryResponseInfo (419) */ + interface StagingXcmV5QueryResponseInfo extends Struct { + readonly destination: StagingXcmV5Location; + readonly queryId: Compact; + readonly maxWeight: PezspWeightsWeightV2Weight; + } + + /** @name StagingXcmV5AssetAssetFilter (420) */ + interface StagingXcmV5AssetAssetFilter extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: StagingXcmV5AssetAssets; + readonly isWild: boolean; + readonly asWild: StagingXcmV5AssetWildAsset; + readonly type: 'Definite' | 'Wild'; + } + + /** @name StagingXcmV5AssetWildAsset (421) */ + interface StagingXcmV5AssetWildAsset extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: StagingXcmV5AssetAssetId; + readonly fun: StagingXcmV5AssetWildFungibility; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: StagingXcmV5AssetAssetId; + readonly fun: StagingXcmV5AssetWildFungibility; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; + } + + /** @name StagingXcmV5AssetWildFungibility (422) */ + interface StagingXcmV5AssetWildFungibility extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; + } + + /** @name StagingXcmV5AssetAssetTransferFilter (424) */ + interface StagingXcmV5AssetAssetTransferFilter extends Enum { + readonly isTeleport: boolean; + readonly asTeleport: StagingXcmV5AssetAssetFilter; + readonly isReserveDeposit: boolean; + readonly asReserveDeposit: StagingXcmV5AssetAssetFilter; + readonly isReserveWithdraw: boolean; + readonly asReserveWithdraw: StagingXcmV5AssetAssetFilter; + readonly type: 'Teleport' | 'ReserveDeposit' | 'ReserveWithdraw'; + } + + /** @name StagingXcmV5Hint (429) */ + interface StagingXcmV5Hint extends Enum { + readonly isAssetClaimer: boolean; + readonly asAssetClaimer: { + readonly location: StagingXcmV5Location; + } & Struct; + readonly type: 'AssetClaimer'; + } + + /** @name XcmVersionedAssets (431) */ + interface XcmVersionedAssets extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetMultiAssets; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssets; + readonly isV5: boolean; + readonly asV5: StagingXcmV5AssetAssets; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name StagingXcmExecutorAssetTransferTransferType (443) */ + interface StagingXcmExecutorAssetTransferTransferType extends Enum { + readonly isTeleport: boolean; + readonly isLocalReserve: boolean; + readonly isDestinationReserve: boolean; + readonly isRemoteReserve: boolean; + readonly asRemoteReserve: XcmVersionedLocation; + readonly type: 'Teleport' | 'LocalReserve' | 'DestinationReserve' | 'RemoteReserve'; + } + + /** @name XcmVersionedAssetId (444) */ + interface XcmVersionedAssetId extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3MultiassetAssetId; + readonly isV4: boolean; + readonly asV4: StagingXcmV4AssetAssetId; + readonly isV5: boolean; + readonly asV5: StagingXcmV5AssetAssetId; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin (447) */ + interface PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin extends Enum { + readonly isUmp: boolean; + readonly asUmp: PezkuwiRuntimeTeyrchainsInclusionUmpQueueId; + readonly type: 'Ump'; + } + + /** @name PezkuwiRuntimeTeyrchainsInclusionUmpQueueId (448) */ + interface PezkuwiRuntimeTeyrchainsInclusionUmpQueueId extends Enum { + readonly isPara: boolean; + readonly asPara: u32; + readonly type: 'Para'; + } + + /** @name PezpalletRcMigratorCall (465) */ + interface PezpalletRcMigratorCall extends Enum { + readonly isForceSetStage: boolean; + readonly asForceSetStage: { + readonly stage: PezpalletRcMigratorMigrationStage; + } & Struct; + readonly isScheduleMigration: boolean; + readonly asScheduleMigration: { + readonly start: PezframeSupportScheduleDispatchTime; + readonly warmUp: PezframeSupportScheduleDispatchTime; + readonly coolOff: PezframeSupportScheduleDispatchTime; + readonly unsafeIgnoreStakingLockCheck: bool; + } & Struct; + readonly isStartDataMigration: boolean; + readonly isReceiveQueryResponse: boolean; + readonly asReceiveQueryResponse: { + readonly queryId: u64; + readonly response: StagingXcmV5Response; + } & Struct; + readonly isResendXcm: boolean; + readonly asResendXcm: { + readonly queryId: u64; + } & Struct; + readonly isSetUnprocessedMsgBuffer: boolean; + readonly asSetUnprocessedMsgBuffer: { + readonly new_: Option; + } & Struct; + readonly isSetAhUmpQueuePriority: boolean; + readonly asSetAhUmpQueuePriority: { + readonly new_: PezpalletRcMigratorQueuePriority; + } & Struct; + readonly isSetManager: boolean; + readonly asSetManager: { + readonly new_: Option; + } & Struct; + readonly isSendXcmMessage: boolean; + readonly asSendXcmMessage: { + readonly dest: XcmVersionedLocation; + readonly message: XcmVersionedXcm; + } & Struct; + readonly isPreserveAccounts: boolean; + readonly asPreserveAccounts: { + readonly accounts: Vec; + } & Struct; + readonly isSetCanceller: boolean; + readonly asSetCanceller: { + readonly new_: Option; + } & Struct; + readonly isPauseMigration: boolean; + readonly isCancelMigration: boolean; + readonly isVoteManagerMultisig: boolean; + readonly asVoteManagerMultisig: { + readonly payload: PezpalletRcMigratorManagerMultisigVote; + readonly sig: PezspRuntimeMultiSignature; + } & Struct; + readonly isSetSettings: boolean; + readonly asSetSettings: { + readonly settings: Option; + } & Struct; + readonly type: 'ForceSetStage' | 'ScheduleMigration' | 'StartDataMigration' | 'ReceiveQueryResponse' | 'ResendXcm' | 'SetUnprocessedMsgBuffer' | 'SetAhUmpQueuePriority' | 'SetManager' | 'SendXcmMessage' | 'PreserveAccounts' | 'SetCanceller' | 'PauseMigration' | 'CancelMigration' | 'VoteManagerMultisig' | 'SetSettings'; + } + + /** @name PezpalletRcMigratorMigrationStage (466) */ + interface PezpalletRcMigratorMigrationStage extends Enum { + readonly isPending: boolean; + readonly isMigrationPaused: boolean; + readonly isScheduled: boolean; + readonly asScheduled: { + readonly start: u32; + } & Struct; + readonly isWaitingForAh: boolean; + readonly isWarmUp: boolean; + readonly asWarmUp: { + readonly endAt: u32; + } & Struct; + readonly isStarting: boolean; + readonly isPureProxyCandidatesMigrationInit: boolean; + readonly isAccountsMigrationInit: boolean; + readonly isAccountsMigrationOngoing: boolean; + readonly asAccountsMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isAccountsMigrationDone: boolean; + readonly isMultisigMigrationInit: boolean; + readonly isMultisigMigrationOngoing: boolean; + readonly asMultisigMigrationOngoing: { + readonly lastKey: Option>; + } & Struct; + readonly isMultisigMigrationDone: boolean; + readonly isClaimsMigrationInit: boolean; + readonly isClaimsMigrationOngoing: boolean; + readonly asClaimsMigrationOngoing: { + readonly currentKey: Option; + } & Struct; + readonly isClaimsMigrationDone: boolean; + readonly isProxyMigrationInit: boolean; + readonly isProxyMigrationProxies: boolean; + readonly asProxyMigrationProxies: { + readonly lastKey: Option; + } & Struct; + readonly isProxyMigrationAnnouncements: boolean; + readonly asProxyMigrationAnnouncements: { + readonly lastKey: Option; + } & Struct; + readonly isProxyMigrationDone: boolean; + readonly isPreimageMigrationInit: boolean; + readonly isPreimageMigrationChunksOngoing: boolean; + readonly asPreimageMigrationChunksOngoing: { + readonly lastKey: Option, u32]>>; + } & Struct; + readonly isPreimageMigrationChunksDone: boolean; + readonly isPreimageMigrationRequestStatusOngoing: boolean; + readonly asPreimageMigrationRequestStatusOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isPreimageMigrationRequestStatusDone: boolean; + readonly isPreimageMigrationLegacyRequestStatusInit: boolean; + readonly isPreimageMigrationLegacyRequestStatusOngoing: boolean; + readonly asPreimageMigrationLegacyRequestStatusOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isPreimageMigrationLegacyRequestStatusDone: boolean; + readonly isPreimageMigrationDone: boolean; + readonly isNomPoolsMigrationInit: boolean; + readonly isNomPoolsMigrationOngoing: boolean; + readonly asNomPoolsMigrationOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isNomPoolsMigrationDone: boolean; + readonly isVestingMigrationInit: boolean; + readonly isVestingMigrationOngoing: boolean; + readonly asVestingMigrationOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isVestingMigrationDone: boolean; + readonly isDelegatedStakingMigrationInit: boolean; + readonly isDelegatedStakingMigrationOngoing: boolean; + readonly asDelegatedStakingMigrationOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isDelegatedStakingMigrationDone: boolean; + readonly isIndicesMigrationInit: boolean; + readonly isIndicesMigrationOngoing: boolean; + readonly asIndicesMigrationOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isIndicesMigrationDone: boolean; + readonly isReferendaMigrationInit: boolean; + readonly isReferendaMigrationOngoing: boolean; + readonly asReferendaMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isReferendaMigrationDone: boolean; + readonly isBagsListMigrationInit: boolean; + readonly isBagsListMigrationOngoing: boolean; + readonly asBagsListMigrationOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isBagsListMigrationDone: boolean; + readonly isSchedulerMigrationInit: boolean; + readonly isSchedulerMigrationOngoing: boolean; + readonly asSchedulerMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isSchedulerAgendaMigrationOngoing: boolean; + readonly asSchedulerAgendaMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isSchedulerMigrationDone: boolean; + readonly isConvictionVotingMigrationInit: boolean; + readonly isConvictionVotingMigrationOngoing: boolean; + readonly asConvictionVotingMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isConvictionVotingMigrationDone: boolean; + readonly isBountiesMigrationInit: boolean; + readonly isBountiesMigrationOngoing: boolean; + readonly asBountiesMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isBountiesMigrationDone: boolean; + readonly isChildBountiesMigrationInit: boolean; + readonly isChildBountiesMigrationOngoing: boolean; + readonly asChildBountiesMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isChildBountiesMigrationDone: boolean; + readonly isAssetRateMigrationInit: boolean; + readonly isAssetRateMigrationOngoing: boolean; + readonly asAssetRateMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isAssetRateMigrationDone: boolean; + readonly isCrowdloanMigrationInit: boolean; + readonly isCrowdloanMigrationOngoing: boolean; + readonly asCrowdloanMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isCrowdloanMigrationDone: boolean; + readonly isTreasuryMigrationInit: boolean; + readonly isTreasuryMigrationOngoing: boolean; + readonly asTreasuryMigrationOngoing: { + readonly lastKey: Option; + } & Struct; + readonly isTreasuryMigrationDone: boolean; + readonly isStakingMigrationInit: boolean; + readonly isStakingMigrationOngoing: boolean; + readonly asStakingMigrationOngoing: { + readonly nextKey: Option; + } & Struct; + readonly isStakingMigrationDone: boolean; + readonly isCoolOff: boolean; + readonly asCoolOff: { + readonly endAt: u32; + } & Struct; + readonly isSignalMigrationFinish: boolean; + readonly isMigrationDone: boolean; + readonly type: 'Pending' | 'MigrationPaused' | 'Scheduled' | 'WaitingForAh' | 'WarmUp' | 'Starting' | 'PureProxyCandidatesMigrationInit' | 'AccountsMigrationInit' | 'AccountsMigrationOngoing' | 'AccountsMigrationDone' | 'MultisigMigrationInit' | 'MultisigMigrationOngoing' | 'MultisigMigrationDone' | 'ClaimsMigrationInit' | 'ClaimsMigrationOngoing' | 'ClaimsMigrationDone' | 'ProxyMigrationInit' | 'ProxyMigrationProxies' | 'ProxyMigrationAnnouncements' | 'ProxyMigrationDone' | 'PreimageMigrationInit' | 'PreimageMigrationChunksOngoing' | 'PreimageMigrationChunksDone' | 'PreimageMigrationRequestStatusOngoing' | 'PreimageMigrationRequestStatusDone' | 'PreimageMigrationLegacyRequestStatusInit' | 'PreimageMigrationLegacyRequestStatusOngoing' | 'PreimageMigrationLegacyRequestStatusDone' | 'PreimageMigrationDone' | 'NomPoolsMigrationInit' | 'NomPoolsMigrationOngoing' | 'NomPoolsMigrationDone' | 'VestingMigrationInit' | 'VestingMigrationOngoing' | 'VestingMigrationDone' | 'DelegatedStakingMigrationInit' | 'DelegatedStakingMigrationOngoing' | 'DelegatedStakingMigrationDone' | 'IndicesMigrationInit' | 'IndicesMigrationOngoing' | 'IndicesMigrationDone' | 'ReferendaMigrationInit' | 'ReferendaMigrationOngoing' | 'ReferendaMigrationDone' | 'BagsListMigrationInit' | 'BagsListMigrationOngoing' | 'BagsListMigrationDone' | 'SchedulerMigrationInit' | 'SchedulerMigrationOngoing' | 'SchedulerAgendaMigrationOngoing' | 'SchedulerMigrationDone' | 'ConvictionVotingMigrationInit' | 'ConvictionVotingMigrationOngoing' | 'ConvictionVotingMigrationDone' | 'BountiesMigrationInit' | 'BountiesMigrationOngoing' | 'BountiesMigrationDone' | 'ChildBountiesMigrationInit' | 'ChildBountiesMigrationOngoing' | 'ChildBountiesMigrationDone' | 'AssetRateMigrationInit' | 'AssetRateMigrationOngoing' | 'AssetRateMigrationDone' | 'CrowdloanMigrationInit' | 'CrowdloanMigrationOngoing' | 'CrowdloanMigrationDone' | 'TreasuryMigrationInit' | 'TreasuryMigrationOngoing' | 'TreasuryMigrationDone' | 'StakingMigrationInit' | 'StakingMigrationOngoing' | 'StakingMigrationDone' | 'CoolOff' | 'SignalMigrationFinish' | 'MigrationDone'; + } + + /** @name PezpalletRcMigratorClaimsClaimsStage (470) */ + interface PezpalletRcMigratorClaimsClaimsStage extends Enum { + readonly isStorageValues: boolean; + readonly isClaims: boolean; + readonly asClaims: Option; + readonly isVesting: boolean; + readonly asVesting: Option; + readonly isSigning: boolean; + readonly asSigning: Option; + readonly isPreclaims: boolean; + readonly asPreclaims: Option; + readonly isFinished: boolean; + readonly type: 'StorageValues' | 'Claims' | 'Vesting' | 'Signing' | 'Preclaims' | 'Finished'; + } + + /** @name PezpalletRcMigratorStakingNomPoolsNomPoolsStage (476) */ + interface PezpalletRcMigratorStakingNomPoolsNomPoolsStage extends Enum { + readonly isStorageValues: boolean; + readonly isPoolMembers: boolean; + readonly asPoolMembers: Option; + readonly isBondedPools: boolean; + readonly asBondedPools: Option; + readonly isRewardPools: boolean; + readonly asRewardPools: Option; + readonly isSubPoolsStorage: boolean; + readonly asSubPoolsStorage: Option; + readonly isMetadata: boolean; + readonly asMetadata: Option; + readonly isReversePoolIdLookup: boolean; + readonly asReversePoolIdLookup: Option; + readonly isClaimPermissions: boolean; + readonly asClaimPermissions: Option; + readonly isFinished: boolean; + readonly type: 'StorageValues' | 'PoolMembers' | 'BondedPools' | 'RewardPools' | 'SubPoolsStorage' | 'Metadata' | 'ReversePoolIdLookup' | 'ClaimPermissions' | 'Finished'; + } + + /** @name PezpalletRcMigratorStakingDelegatedStakingDelegatedStakingStage (478) */ + interface PezpalletRcMigratorStakingDelegatedStakingDelegatedStakingStage extends Enum { + readonly isDelegators: boolean; + readonly asDelegators: Option; + readonly isAgents: boolean; + readonly asAgents: Option; + readonly isFinished: boolean; + readonly type: 'Delegators' | 'Agents' | 'Finished'; + } + + /** @name PezpalletRcMigratorReferendaReferendaStage (481) */ + interface PezpalletRcMigratorReferendaReferendaStage extends Enum { + readonly isStorageValues: boolean; + readonly isMetadata: boolean; + readonly asMetadata: Option; + readonly isReferendumInfo: boolean; + readonly asReferendumInfo: Option; + readonly type: 'StorageValues' | 'Metadata' | 'ReferendumInfo'; + } + + /** @name PezpalletRcMigratorStakingBagsListBagsListStage (483) */ + interface PezpalletRcMigratorStakingBagsListBagsListStage extends Enum { + readonly isListNodes: boolean; + readonly asListNodes: Option; + readonly isListBags: boolean; + readonly asListBags: Option; + readonly isFinished: boolean; + readonly type: 'ListNodes' | 'ListBags' | 'Finished'; + } + + /** @name PezpalletRcMigratorSchedulerSchedulerStage (485) */ + interface PezpalletRcMigratorSchedulerSchedulerStage extends Enum { + readonly isIncompleteSince: boolean; + readonly isRetries: boolean; + readonly asRetries: Option>; + readonly isLookup: boolean; + readonly asLookup: Option; + readonly isFinished: boolean; + readonly type: 'IncompleteSince' | 'Retries' | 'Lookup' | 'Finished'; + } + + /** @name PezpalletRcMigratorConvictionVotingConvictionVotingStage (487) */ + interface PezpalletRcMigratorConvictionVotingConvictionVotingStage extends Enum { + readonly isVotingFor: boolean; + readonly asVotingFor: Option>; + readonly isClassLocksFor: boolean; + readonly asClassLocksFor: Option; + readonly isFinished: boolean; + readonly type: 'VotingFor' | 'ClassLocksFor' | 'Finished'; + } + + /** @name PezpalletRcMigratorBountiesBountiesStage (491) */ + interface PezpalletRcMigratorBountiesBountiesStage extends Enum { + readonly isBountyCount: boolean; + readonly isBountyApprovals: boolean; + readonly isBountyDescriptions: boolean; + readonly asBountyDescriptions: { + readonly lastKey: Option; + } & Struct; + readonly isBounties: boolean; + readonly asBounties: { + readonly lastKey: Option; + } & Struct; + readonly isFinished: boolean; + readonly type: 'BountyCount' | 'BountyApprovals' | 'BountyDescriptions' | 'Bounties' | 'Finished'; + } + + /** @name PezpalletRcMigratorChildBountiesChildBountiesStage (493) */ + interface PezpalletRcMigratorChildBountiesChildBountiesStage extends Enum { + readonly isChildBountyCount: boolean; + readonly isParentChildBounties: boolean; + readonly asParentChildBounties: { + readonly parentId: Option; + } & Struct; + readonly isParentTotalChildBounties: boolean; + readonly asParentTotalChildBounties: { + readonly parentId: Option; + } & Struct; + readonly isChildBounties: boolean; + readonly asChildBounties: { + readonly ids: Option>; + } & Struct; + readonly isChildBountyDescriptionsV1: boolean; + readonly asChildBountyDescriptionsV1: { + readonly ids: Option>; + } & Struct; + readonly isV0ToV1ChildBountyIds: boolean; + readonly asV0ToV1ChildBountyIds: { + readonly childId: Option; + } & Struct; + readonly isChildrenCuratorFees: boolean; + readonly asChildrenCuratorFees: { + readonly childId: Option; + } & Struct; + readonly isFinished: boolean; + readonly type: 'ChildBountyCount' | 'ParentChildBounties' | 'ParentTotalChildBounties' | 'ChildBounties' | 'ChildBountyDescriptionsV1' | 'V0ToV1ChildBountyIds' | 'ChildrenCuratorFees' | 'Finished'; + } + + /** @name PezpalletRcMigratorCrowdloanCrowdloanStage (496) */ + interface PezpalletRcMigratorCrowdloanCrowdloanStage extends Enum { + readonly isSetup: boolean; + readonly isLeaseReserve: boolean; + readonly asLeaseReserve: { + readonly lastKey: Option; + } & Struct; + readonly isCrowdloanContribution: boolean; + readonly asCrowdloanContribution: { + readonly lastKey: Option; + } & Struct; + readonly isCrowdloanReserve: boolean; + readonly isFinished: boolean; + readonly type: 'Setup' | 'LeaseReserve' | 'CrowdloanContribution' | 'CrowdloanReserve' | 'Finished'; + } + + /** @name PezpalletRcMigratorTreasuryTreasuryStage (499) */ + interface PezpalletRcMigratorTreasuryTreasuryStage extends Enum { + readonly isProposalCount: boolean; + readonly isProposals: boolean; + readonly asProposals: Option; + readonly isApprovals: boolean; + readonly isSpendCount: boolean; + readonly isSpends: boolean; + readonly asSpends: Option; + readonly isLastSpendPeriod: boolean; + readonly isFunds: boolean; + readonly isFinished: boolean; + readonly type: 'ProposalCount' | 'Proposals' | 'Approvals' | 'SpendCount' | 'Spends' | 'LastSpendPeriod' | 'Funds' | 'Finished'; + } + + /** @name PezpalletRcMigratorStakingStakingImplStakingStage (501) */ + interface PezpalletRcMigratorStakingStakingImplStakingStage extends Enum { + readonly isValues: boolean; + readonly isInvulnerables: boolean; + readonly isBonded: boolean; + readonly asBonded: Option; + readonly isLedger: boolean; + readonly asLedger: Option; + readonly isPayee: boolean; + readonly asPayee: Option; + readonly isValidators: boolean; + readonly asValidators: Option; + readonly isNominators: boolean; + readonly asNominators: Option; + readonly isVirtualStakers: boolean; + readonly asVirtualStakers: Option; + readonly isErasStakersOverview: boolean; + readonly asErasStakersOverview: Option>; + readonly isErasStakersPaged: boolean; + readonly asErasStakersPaged: Option>; + readonly isClaimedRewards: boolean; + readonly asClaimedRewards: Option>; + readonly isErasValidatorPrefs: boolean; + readonly asErasValidatorPrefs: Option>; + readonly isErasValidatorReward: boolean; + readonly asErasValidatorReward: Option; + readonly isErasRewardPoints: boolean; + readonly asErasRewardPoints: Option; + readonly isErasTotalStake: boolean; + readonly asErasTotalStake: Option; + readonly isUnappliedSlashes: boolean; + readonly asUnappliedSlashes: Option; + readonly isBondedEras: boolean; + readonly isValidatorSlashInEra: boolean; + readonly asValidatorSlashInEra: Option>; + readonly isNominatorSlashInEra: boolean; + readonly asNominatorSlashInEra: Option>; + readonly isSlashingSpans: boolean; + readonly asSlashingSpans: Option; + readonly isSpanSlash: boolean; + readonly asSpanSlash: Option>; + readonly isFinished: boolean; + readonly type: 'Values' | 'Invulnerables' | 'Bonded' | 'Ledger' | 'Payee' | 'Validators' | 'Nominators' | 'VirtualStakers' | 'ErasStakersOverview' | 'ErasStakersPaged' | 'ClaimedRewards' | 'ErasValidatorPrefs' | 'ErasValidatorReward' | 'ErasRewardPoints' | 'ErasTotalStake' | 'UnappliedSlashes' | 'BondedEras' | 'ValidatorSlashInEra' | 'NominatorSlashInEra' | 'SlashingSpans' | 'SpanSlash' | 'Finished'; + } + + /** @name PezpalletRcMigratorQueuePriority (508) */ + interface PezpalletRcMigratorQueuePriority extends Enum { + readonly isConfig: boolean; + readonly isOverrideConfig: boolean; + readonly asOverrideConfig: ITuple<[u32, u32]>; + readonly isDisabled: boolean; + readonly type: 'Config' | 'OverrideConfig' | 'Disabled'; + } + + /** @name PezpalletRcMigratorManagerMultisigVote (509) */ + interface PezpalletRcMigratorManagerMultisigVote extends Struct { + readonly who: PezspRuntimeMultiSigner; + readonly call: RuntimeCall; + readonly round: u32; + } + + /** @name PezpalletRcMigratorMigrationSettings (511) */ + interface PezpalletRcMigratorMigrationSettings extends Struct { + readonly maxAccountsPerBlock: Option; + readonly maxItemsPerBlock: Option; + } + + /** @name PezkuwiRuntimeCommonClaimsPezpalletEvent (519) */ + interface PezkuwiRuntimeCommonClaimsPezpalletEvent extends Enum { + readonly isClaimed: boolean; + readonly asClaimed: { + readonly who: AccountId32; + readonly ethereumAddress: PezkuwiRuntimeCommonClaimsEthereumAddress; + readonly amount: u128; + } & Struct; + readonly type: 'Claimed'; + } + + /** @name PezpalletStakingAsyncAhClientEvent (536) */ + interface PezpalletStakingAsyncAhClientEvent extends Enum { + readonly isValidatorSetReceived: boolean; + readonly asValidatorSetReceived: { + readonly id: u32; + readonly newValidatorSetCount: u32; + readonly pruneUpTo: Option; + readonly leftover: bool; + } & Struct; + readonly isCouldNotMergeAndDropped: boolean; + readonly isSetTooSmallAndDropped: boolean; + readonly isUnexpected: boolean; + readonly asUnexpected: PezpalletStakingAsyncAhClientUnexpectedKind; + readonly type: 'ValidatorSetReceived' | 'CouldNotMergeAndDropped' | 'SetTooSmallAndDropped' | 'Unexpected'; + } + + /** @name PezpalletStakingAsyncAhClientUnexpectedKind (537) */ + interface PezpalletStakingAsyncAhClientUnexpectedKind extends Enum { + readonly isReceivedValidatorSetWhilePassive: boolean; + readonly isUnexpectedModeTransition: boolean; + readonly isSessionReportSendFailed: boolean; + readonly isSessionReportDropped: boolean; + readonly isOffenceSendFailed: boolean; + readonly isValidatorPointDropped: boolean; + readonly type: 'ReceivedValidatorSetWhilePassive' | 'UnexpectedModeTransition' | 'SessionReportSendFailed' | 'SessionReportDropped' | 'OffenceSendFailed' | 'ValidatorPointDropped'; + } + + /** @name PezkuwiRuntimeTeyrchainsInclusionPezpalletEvent (538) */ + interface PezkuwiRuntimeTeyrchainsInclusionPezpalletEvent extends Enum { + readonly isCandidateBacked: boolean; + readonly asCandidateBacked: ITuple<[PezkuwiPrimitivesVstagingCandidateReceiptV2, Bytes, u32, u32]>; + readonly isCandidateIncluded: boolean; + readonly asCandidateIncluded: ITuple<[PezkuwiPrimitivesVstagingCandidateReceiptV2, Bytes, u32, u32]>; + readonly isCandidateTimedOut: boolean; + readonly asCandidateTimedOut: ITuple<[PezkuwiPrimitivesVstagingCandidateReceiptV2, Bytes, u32]>; + readonly isUpwardMessagesReceived: boolean; + readonly asUpwardMessagesReceived: { + readonly from: u32; + readonly count: u32; + } & Struct; + readonly type: 'CandidateBacked' | 'CandidateIncluded' | 'CandidateTimedOut' | 'UpwardMessagesReceived'; + } + + /** @name PezkuwiPrimitivesVstagingCandidateReceiptV2 (539) */ + interface PezkuwiPrimitivesVstagingCandidateReceiptV2 extends Struct { + readonly descriptor: PezkuwiPrimitivesVstagingCandidateDescriptorV2; + readonly commitmentsHash: H256; + } + + /** @name PezkuwiRuntimeTeyrchainsParasPezpalletEvent (542) */ + interface PezkuwiRuntimeTeyrchainsParasPezpalletEvent extends Enum { + readonly isCurrentCodeUpdated: boolean; + readonly asCurrentCodeUpdated: u32; + readonly isCurrentHeadUpdated: boolean; + readonly asCurrentHeadUpdated: u32; + readonly isCodeUpgradeScheduled: boolean; + readonly asCodeUpgradeScheduled: u32; + readonly isNewHeadNoted: boolean; + readonly asNewHeadNoted: u32; + readonly isActionQueued: boolean; + readonly asActionQueued: ITuple<[u32, u32]>; + readonly isPvfCheckStarted: boolean; + readonly asPvfCheckStarted: ITuple<[H256, u32]>; + readonly isPvfCheckAccepted: boolean; + readonly asPvfCheckAccepted: ITuple<[H256, u32]>; + readonly isPvfCheckRejected: boolean; + readonly asPvfCheckRejected: ITuple<[H256, u32]>; + readonly isUpgradeCooldownRemoved: boolean; + readonly asUpgradeCooldownRemoved: { + readonly paraId: u32; + } & Struct; + readonly isCodeAuthorized: boolean; + readonly asCodeAuthorized: { + readonly paraId: u32; + readonly codeHash: H256; + readonly expireAt: u32; + } & Struct; + readonly type: 'CurrentCodeUpdated' | 'CurrentHeadUpdated' | 'CodeUpgradeScheduled' | 'NewHeadNoted' | 'ActionQueued' | 'PvfCheckStarted' | 'PvfCheckAccepted' | 'PvfCheckRejected' | 'UpgradeCooldownRemoved' | 'CodeAuthorized'; + } + + /** @name PezkuwiRuntimeTeyrchainsHrmpPezpalletEvent (543) */ + interface PezkuwiRuntimeTeyrchainsHrmpPezpalletEvent extends Enum { + readonly isOpenChannelRequested: boolean; + readonly asOpenChannelRequested: { + readonly sender: u32; + readonly recipient: u32; + readonly proposedMaxCapacity: u32; + readonly proposedMaxMessageSize: u32; + } & Struct; + readonly isOpenChannelCanceled: boolean; + readonly asOpenChannelCanceled: { + readonly byTeyrchain: u32; + readonly channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId; + } & Struct; + readonly isOpenChannelAccepted: boolean; + readonly asOpenChannelAccepted: { + readonly sender: u32; + readonly recipient: u32; + } & Struct; + readonly isChannelClosed: boolean; + readonly asChannelClosed: { + readonly byTeyrchain: u32; + readonly channelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId; + } & Struct; + readonly isHrmpChannelForceOpened: boolean; + readonly asHrmpChannelForceOpened: { + readonly sender: u32; + readonly recipient: u32; + readonly proposedMaxCapacity: u32; + readonly proposedMaxMessageSize: u32; + } & Struct; + readonly isHrmpSystemChannelOpened: boolean; + readonly asHrmpSystemChannelOpened: { + readonly sender: u32; + readonly recipient: u32; + readonly proposedMaxCapacity: u32; + readonly proposedMaxMessageSize: u32; + } & Struct; + readonly isOpenChannelDepositsUpdated: boolean; + readonly asOpenChannelDepositsUpdated: { + readonly sender: u32; + readonly recipient: u32; + } & Struct; + readonly type: 'OpenChannelRequested' | 'OpenChannelCanceled' | 'OpenChannelAccepted' | 'ChannelClosed' | 'HrmpChannelForceOpened' | 'HrmpSystemChannelOpened' | 'OpenChannelDepositsUpdated'; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesPezpalletEvent (544) */ + interface PezkuwiRuntimeTeyrchainsDisputesPezpalletEvent extends Enum { + readonly isDisputeInitiated: boolean; + readonly asDisputeInitiated: ITuple<[H256, PezkuwiRuntimeTeyrchainsDisputesDisputeLocation]>; + readonly isDisputeConcluded: boolean; + readonly asDisputeConcluded: ITuple<[H256, PezkuwiRuntimeTeyrchainsDisputesDisputeResult]>; + readonly isRevert: boolean; + readonly asRevert: u32; + readonly type: 'DisputeInitiated' | 'DisputeConcluded' | 'Revert'; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesDisputeLocation (545) */ + interface PezkuwiRuntimeTeyrchainsDisputesDisputeLocation extends Enum { + readonly isLocal: boolean; + readonly isRemote: boolean; + readonly type: 'Local' | 'Remote'; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesDisputeResult (546) */ + interface PezkuwiRuntimeTeyrchainsDisputesDisputeResult extends Enum { + readonly isValid: boolean; + readonly isInvalid: boolean; + readonly type: 'Valid' | 'Invalid'; + } + + /** @name PezkuwiRuntimeTeyrchainsOnDemandPezpalletEvent (547) */ + interface PezkuwiRuntimeTeyrchainsOnDemandPezpalletEvent extends Enum { + readonly isOnDemandOrderPlaced: boolean; + readonly asOnDemandOrderPlaced: { + readonly paraId: u32; + readonly spotPrice: u128; + readonly orderedBy: AccountId32; + } & Struct; + readonly isSpotPriceSet: boolean; + readonly asSpotPriceSet: { + readonly spotPrice: u128; + } & Struct; + readonly isAccountCredited: boolean; + readonly asAccountCredited: { + readonly who: AccountId32; + readonly amount: u128; + } & Struct; + readonly type: 'OnDemandOrderPlaced' | 'SpotPriceSet' | 'AccountCredited'; + } + + /** @name PezkuwiRuntimeCommonParasRegistrarPezpalletEvent (548) */ + interface PezkuwiRuntimeCommonParasRegistrarPezpalletEvent extends Enum { + readonly isRegistered: boolean; + readonly asRegistered: { + readonly paraId: u32; + readonly manager: AccountId32; + } & Struct; + readonly isDeregistered: boolean; + readonly asDeregistered: { + readonly paraId: u32; + } & Struct; + readonly isReserved: boolean; + readonly asReserved: { + readonly paraId: u32; + readonly who: AccountId32; + } & Struct; + readonly isSwapped: boolean; + readonly asSwapped: { + readonly paraId: u32; + readonly otherId: u32; + } & Struct; + readonly type: 'Registered' | 'Deregistered' | 'Reserved' | 'Swapped'; + } + + /** @name PezkuwiRuntimeCommonSlotsPezpalletEvent (549) */ + interface PezkuwiRuntimeCommonSlotsPezpalletEvent extends Enum { + readonly isNewLeasePeriod: boolean; + readonly asNewLeasePeriod: { + readonly leasePeriod: u32; + } & Struct; + readonly isLeased: boolean; + readonly asLeased: { + readonly paraId: u32; + readonly leaser: AccountId32; + readonly periodBegin: u32; + readonly periodCount: u32; + readonly extraReserved: u128; + readonly totalAmount: u128; + } & Struct; + readonly type: 'NewLeasePeriod' | 'Leased'; + } + + /** @name PezkuwiRuntimeCommonAuctionsPezpalletEvent (550) */ + interface PezkuwiRuntimeCommonAuctionsPezpalletEvent extends Enum { + readonly isAuctionStarted: boolean; + readonly asAuctionStarted: { + readonly auctionIndex: u32; + readonly leasePeriod: u32; + readonly ending: u32; + } & Struct; + readonly isAuctionClosed: boolean; + readonly asAuctionClosed: { + readonly auctionIndex: u32; + } & Struct; + readonly isReserved: boolean; + readonly asReserved: { + readonly bidder: AccountId32; + readonly extraReserved: u128; + readonly totalAmount: u128; + } & Struct; + readonly isUnreserved: boolean; + readonly asUnreserved: { + readonly bidder: AccountId32; + readonly amount: u128; + } & Struct; + readonly isReserveConfiscated: boolean; + readonly asReserveConfiscated: { + readonly paraId: u32; + readonly leaser: AccountId32; + readonly amount: u128; + } & Struct; + readonly isBidAccepted: boolean; + readonly asBidAccepted: { + readonly bidder: AccountId32; + readonly paraId: u32; + readonly amount: u128; + readonly firstSlot: u32; + readonly lastSlot: u32; + } & Struct; + readonly isWinningOffset: boolean; + readonly asWinningOffset: { + readonly auctionIndex: u32; + readonly blockNumber: u32; + } & Struct; + readonly type: 'AuctionStarted' | 'AuctionClosed' | 'Reserved' | 'Unreserved' | 'ReserveConfiscated' | 'BidAccepted' | 'WinningOffset'; + } + + /** @name PezkuwiRuntimeCommonCrowdloanPezpalletEvent (551) */ + interface PezkuwiRuntimeCommonCrowdloanPezpalletEvent extends Enum { + readonly isCreated: boolean; + readonly asCreated: { + readonly paraId: u32; + } & Struct; + readonly isContributed: boolean; + readonly asContributed: { + readonly who: AccountId32; + readonly fundIndex: u32; + readonly amount: u128; + } & Struct; + readonly isWithdrew: boolean; + readonly asWithdrew: { + readonly who: AccountId32; + readonly fundIndex: u32; + readonly amount: u128; + } & Struct; + readonly isPartiallyRefunded: boolean; + readonly asPartiallyRefunded: { + readonly paraId: u32; + } & Struct; + readonly isAllRefunded: boolean; + readonly asAllRefunded: { + readonly paraId: u32; + } & Struct; + readonly isDissolved: boolean; + readonly asDissolved: { + readonly paraId: u32; + } & Struct; + readonly isHandleBidResult: boolean; + readonly asHandleBidResult: { + readonly paraId: u32; + readonly result: Result; + } & Struct; + readonly isEdited: boolean; + readonly asEdited: { + readonly paraId: u32; + } & Struct; + readonly isMemoUpdated: boolean; + readonly asMemoUpdated: { + readonly who: AccountId32; + readonly paraId: u32; + readonly memo: Bytes; + } & Struct; + readonly isAddedToNewRaise: boolean; + readonly asAddedToNewRaise: { + readonly paraId: u32; + } & Struct; + readonly type: 'Created' | 'Contributed' | 'Withdrew' | 'PartiallyRefunded' | 'AllRefunded' | 'Dissolved' | 'HandleBidResult' | 'Edited' | 'MemoUpdated' | 'AddedToNewRaise'; + } + + /** @name PezkuwiRuntimeTeyrchainsCoretimePezpalletEvent (552) */ + interface PezkuwiRuntimeTeyrchainsCoretimePezpalletEvent extends Enum { + readonly isRevenueInfoRequested: boolean; + readonly asRevenueInfoRequested: { + readonly when: u32; + } & Struct; + readonly isCoreAssigned: boolean; + readonly asCoreAssigned: { + readonly core: u32; + } & Struct; + readonly type: 'RevenueInfoRequested' | 'CoreAssigned'; + } + + /** @name PezpalletXcmEvent (556) */ + interface PezpalletXcmEvent extends Enum { + readonly isAttempted: boolean; + readonly asAttempted: { + readonly outcome: StagingXcmV5TraitsOutcome; + } & Struct; + readonly isSent: boolean; + readonly asSent: { + readonly origin: StagingXcmV5Location; + readonly destination: StagingXcmV5Location; + readonly message: StagingXcmV5Xcm; + readonly messageId: U8aFixed; + } & Struct; + readonly isSendFailed: boolean; + readonly asSendFailed: { + readonly origin: StagingXcmV5Location; + readonly destination: StagingXcmV5Location; + readonly error: XcmV3TraitsSendError; + readonly messageId: U8aFixed; + } & Struct; + readonly isProcessXcmError: boolean; + readonly asProcessXcmError: { + readonly origin: StagingXcmV5Location; + readonly error: XcmV5TraitsError; + readonly messageId: U8aFixed; + } & Struct; + readonly isUnexpectedResponse: boolean; + readonly asUnexpectedResponse: { + readonly origin: StagingXcmV5Location; + readonly queryId: u64; + } & Struct; + readonly isResponseReady: boolean; + readonly asResponseReady: { + readonly queryId: u64; + readonly response: StagingXcmV5Response; + } & Struct; + readonly isNotified: boolean; + readonly asNotified: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isNotifyOverweight: boolean; + readonly asNotifyOverweight: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + readonly actualWeight: PezspWeightsWeightV2Weight; + readonly maxBudgetedWeight: PezspWeightsWeightV2Weight; + } & Struct; + readonly isNotifyDispatchError: boolean; + readonly asNotifyDispatchError: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isNotifyDecodeFailed: boolean; + readonly asNotifyDecodeFailed: { + readonly queryId: u64; + readonly palletIndex: u8; + readonly callIndex: u8; + } & Struct; + readonly isInvalidResponder: boolean; + readonly asInvalidResponder: { + readonly origin: StagingXcmV5Location; + readonly queryId: u64; + readonly expectedLocation: Option; + } & Struct; + readonly isInvalidResponderVersion: boolean; + readonly asInvalidResponderVersion: { + readonly origin: StagingXcmV5Location; + readonly queryId: u64; + } & Struct; + readonly isResponseTaken: boolean; + readonly asResponseTaken: { + readonly queryId: u64; + } & Struct; + readonly isAssetsTrapped: boolean; + readonly asAssetsTrapped: { + readonly hash_: H256; + readonly origin: StagingXcmV5Location; + readonly assets: XcmVersionedAssets; + } & Struct; + readonly isVersionChangeNotified: boolean; + readonly asVersionChangeNotified: { + readonly destination: StagingXcmV5Location; + readonly result: u32; + readonly cost: StagingXcmV5AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isSupportedVersionChanged: boolean; + readonly asSupportedVersionChanged: { + readonly location: StagingXcmV5Location; + readonly version: u32; + } & Struct; + readonly isNotifyTargetSendFail: boolean; + readonly asNotifyTargetSendFail: { + readonly location: StagingXcmV5Location; + readonly queryId: u64; + readonly error: XcmV5TraitsError; + } & Struct; + readonly isNotifyTargetMigrationFail: boolean; + readonly asNotifyTargetMigrationFail: { + readonly location: XcmVersionedLocation; + readonly queryId: u64; + } & Struct; + readonly isInvalidQuerierVersion: boolean; + readonly asInvalidQuerierVersion: { + readonly origin: StagingXcmV5Location; + readonly queryId: u64; + } & Struct; + readonly isInvalidQuerier: boolean; + readonly asInvalidQuerier: { + readonly origin: StagingXcmV5Location; + readonly queryId: u64; + readonly expectedQuerier: StagingXcmV5Location; + readonly maybeActualQuerier: Option; + } & Struct; + readonly isVersionNotifyStarted: boolean; + readonly asVersionNotifyStarted: { + readonly destination: StagingXcmV5Location; + readonly cost: StagingXcmV5AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isVersionNotifyRequested: boolean; + readonly asVersionNotifyRequested: { + readonly destination: StagingXcmV5Location; + readonly cost: StagingXcmV5AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isVersionNotifyUnrequested: boolean; + readonly asVersionNotifyUnrequested: { + readonly destination: StagingXcmV5Location; + readonly cost: StagingXcmV5AssetAssets; + readonly messageId: U8aFixed; + } & Struct; + readonly isFeesPaid: boolean; + readonly asFeesPaid: { + readonly paying: StagingXcmV5Location; + readonly fees: StagingXcmV5AssetAssets; + } & Struct; + readonly isAssetsClaimed: boolean; + readonly asAssetsClaimed: { + readonly hash_: H256; + readonly origin: StagingXcmV5Location; + readonly assets: XcmVersionedAssets; + } & Struct; + readonly isVersionMigrationFinished: boolean; + readonly asVersionMigrationFinished: { + readonly version: u32; + } & Struct; + readonly isAliasAuthorized: boolean; + readonly asAliasAuthorized: { + readonly aliaser: StagingXcmV5Location; + readonly target: StagingXcmV5Location; + readonly expiry: Option; + } & Struct; + readonly isAliasAuthorizationRemoved: boolean; + readonly asAliasAuthorizationRemoved: { + readonly aliaser: StagingXcmV5Location; + readonly target: StagingXcmV5Location; + } & Struct; + readonly isAliasesAuthorizationsRemoved: boolean; + readonly asAliasesAuthorizationsRemoved: { + readonly target: StagingXcmV5Location; + } & Struct; + readonly type: 'Attempted' | 'Sent' | 'SendFailed' | 'ProcessXcmError' | 'UnexpectedResponse' | 'ResponseReady' | 'Notified' | 'NotifyOverweight' | 'NotifyDispatchError' | 'NotifyDecodeFailed' | 'InvalidResponder' | 'InvalidResponderVersion' | 'ResponseTaken' | 'AssetsTrapped' | 'VersionChangeNotified' | 'SupportedVersionChanged' | 'NotifyTargetSendFail' | 'NotifyTargetMigrationFail' | 'InvalidQuerierVersion' | 'InvalidQuerier' | 'VersionNotifyStarted' | 'VersionNotifyRequested' | 'VersionNotifyUnrequested' | 'FeesPaid' | 'AssetsClaimed' | 'VersionMigrationFinished' | 'AliasAuthorized' | 'AliasAuthorizationRemoved' | 'AliasesAuthorizationsRemoved'; + } + + /** @name StagingXcmV5TraitsOutcome (557) */ + interface StagingXcmV5TraitsOutcome extends Enum { + readonly isComplete: boolean; + readonly asComplete: { + readonly used: PezspWeightsWeightV2Weight; + } & Struct; + readonly isIncomplete: boolean; + readonly asIncomplete: { + readonly used: PezspWeightsWeightV2Weight; + readonly error: StagingXcmV5TraitsInstructionError; + } & Struct; + readonly isError: boolean; + readonly asError: StagingXcmV5TraitsInstructionError; + readonly type: 'Complete' | 'Incomplete' | 'Error'; + } + + /** @name StagingXcmV5TraitsInstructionError (558) */ + interface StagingXcmV5TraitsInstructionError extends Struct { + readonly index: u8; + readonly error: XcmV5TraitsError; + } + + /** @name XcmV3TraitsSendError (559) */ + interface XcmV3TraitsSendError extends Enum { + readonly isNotApplicable: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isDestinationUnsupported: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isMissingArgument: boolean; + readonly isFees: boolean; + readonly type: 'NotApplicable' | 'Transport' | 'Unroutable' | 'DestinationUnsupported' | 'ExceedsMaxMessageSize' | 'MissingArgument' | 'Fees'; + } + + /** @name PezpalletRcMigratorEvent (563) */ + interface PezpalletRcMigratorEvent extends Enum { + readonly isStageTransition: boolean; + readonly asStageTransition: { + readonly old: PezpalletRcMigratorMigrationStage; + readonly new_: PezpalletRcMigratorMigrationStage; + } & Struct; + readonly isAssetHubMigrationStarted: boolean; + readonly isAssetHubMigrationFinished: boolean; + readonly isQueryResponseReceived: boolean; + readonly asQueryResponseReceived: { + readonly queryId: u64; + readonly response: XcmV3MaybeErrorCode; + } & Struct; + readonly isXcmResendAttempt: boolean; + readonly asXcmResendAttempt: { + readonly queryId: u64; + readonly sendError: Option; + } & Struct; + readonly isUnprocessedMsgBufferSet: boolean; + readonly asUnprocessedMsgBufferSet: { + readonly new_: u32; + readonly old: u32; + } & Struct; + readonly isAhUmpQueuePrioritySet: boolean; + readonly asAhUmpQueuePrioritySet: { + readonly prioritized: bool; + readonly cycleBlock: u32; + readonly cyclePeriod: u32; + } & Struct; + readonly isAhUmpQueuePriorityConfigSet: boolean; + readonly asAhUmpQueuePriorityConfigSet: { + readonly old: PezpalletRcMigratorQueuePriority; + readonly new_: PezpalletRcMigratorQueuePriority; + } & Struct; + readonly isMigratedBalanceRecordSet: boolean; + readonly asMigratedBalanceRecordSet: { + readonly kept: u128; + readonly migrated: u128; + } & Struct; + readonly isMigratedBalanceConsumed: boolean; + readonly asMigratedBalanceConsumed: { + readonly kept: u128; + readonly migrated: u128; + } & Struct; + readonly isManagerSet: boolean; + readonly asManagerSet: { + readonly old: Option; + readonly new_: Option; + } & Struct; + readonly isXcmSent: boolean; + readonly asXcmSent: { + readonly origin: StagingXcmV5Location; + readonly destination: StagingXcmV5Location; + readonly message: StagingXcmV5Xcm; + readonly messageId: U8aFixed; + } & Struct; + readonly isStakingElectionsPaused: boolean; + readonly isAccountsPreserved: boolean; + readonly asAccountsPreserved: { + readonly accounts: Vec; + } & Struct; + readonly isCancellerSet: boolean; + readonly asCancellerSet: { + readonly old: Option; + readonly new_: Option; + } & Struct; + readonly isMigrationPaused: boolean; + readonly asMigrationPaused: { + readonly pauseStage: PezpalletRcMigratorMigrationStage; + } & Struct; + readonly isMigrationCancelled: boolean; + readonly isPureAccountsIndexed: boolean; + readonly asPureAccountsIndexed: { + readonly numPureAccounts: u32; + } & Struct; + readonly isManagerMultisigDispatched: boolean; + readonly asManagerMultisigDispatched: { + readonly res: Result; + } & Struct; + readonly isManagerMultisigVoted: boolean; + readonly asManagerMultisigVoted: { + readonly votes: u32; + } & Struct; + readonly isMigrationSettingsSet: boolean; + readonly asMigrationSettingsSet: { + readonly old: Option; + readonly new_: Option; + } & Struct; + readonly type: 'StageTransition' | 'AssetHubMigrationStarted' | 'AssetHubMigrationFinished' | 'QueryResponseReceived' | 'XcmResendAttempt' | 'UnprocessedMsgBufferSet' | 'AhUmpQueuePrioritySet' | 'AhUmpQueuePriorityConfigSet' | 'MigratedBalanceRecordSet' | 'MigratedBalanceConsumed' | 'ManagerSet' | 'XcmSent' | 'StakingElectionsPaused' | 'AccountsPreserved' | 'CancellerSet' | 'MigrationPaused' | 'MigrationCancelled' | 'PureAccountsIndexed' | 'ManagerMultisigDispatched' | 'ManagerMultisigVoted' | 'MigrationSettingsSet'; + } + + /** @name PezkuwiRuntimeRuntimeHoldReason (623) */ + interface PezkuwiRuntimeRuntimeHoldReason extends Enum { + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletHoldReason; + readonly isSession: boolean; + readonly asSession: PezpalletSessionHoldReason; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageHoldReason; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingHoldReason; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationHoldReason; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmHoldReason; + readonly type: 'Staking' | 'Session' | 'Preimage' | 'DelegatedStaking' | 'StateTrieMigration' | 'XcmPallet'; + } + + /** @name PezpalletSessionHoldReason (626) */ + interface PezpalletSessionHoldReason extends Enum { + readonly isKeys: boolean; + readonly type: 'Keys'; + } + + /** @name PezpalletXcmHoldReason (629) */ + interface PezpalletXcmHoldReason extends Enum { + readonly isAuthorizeAlias: boolean; + readonly type: 'AuthorizeAlias'; + } + + /** @name PezkuwiRuntimeRuntimeFreezeReason (633) */ + interface PezkuwiRuntimeRuntimeFreezeReason extends Enum { + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsFreezeReason; + readonly type: 'NominationPools'; + } + + /** @name PezpalletReferendaReferendumInfo (693) */ + interface PezpalletReferendaReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: PezpalletReferendaReferendumStatus; + readonly isApproved: boolean; + readonly asApproved: ITuple<[u32, Option, Option]>; + readonly isRejected: boolean; + readonly asRejected: ITuple<[u32, Option, Option]>; + readonly isCancelled: boolean; + readonly asCancelled: ITuple<[u32, Option, Option]>; + readonly isTimedOut: boolean; + readonly asTimedOut: ITuple<[u32, Option, Option]>; + readonly isKilled: boolean; + readonly asKilled: u32; + readonly type: 'Ongoing' | 'Approved' | 'Rejected' | 'Cancelled' | 'TimedOut' | 'Killed'; + } + + /** @name PezpalletReferendaReferendumStatus (694) */ + interface PezpalletReferendaReferendumStatus extends Struct { + readonly track: u16; + readonly origin: PezkuwiRuntimeOriginCaller; + readonly proposal: PezframeSupportPreimagesBounded; + readonly enactment: PezframeSupportScheduleDispatchTime; + readonly submitted: u32; + readonly submissionDeposit: PezpalletReferendaDeposit; + readonly decisionDeposit: Option; + readonly deciding: Option; + readonly tally: PezpalletConvictionVotingTally; + readonly inQueue: bool; + readonly alarm: Option]>>; + } + + /** @name PezkuwiRuntimeCommonClaimsPezpalletError (712) */ + interface PezkuwiRuntimeCommonClaimsPezpalletError extends Enum { + readonly isInvalidEthereumSignature: boolean; + readonly isSignerHasNoClaim: boolean; + readonly isSenderHasNoClaim: boolean; + readonly isPotUnderflow: boolean; + readonly isInvalidStatement: boolean; + readonly isVestedBalanceExists: boolean; + readonly type: 'InvalidEthereumSignature' | 'SignerHasNoClaim' | 'SenderHasNoClaim' | 'PotUnderflow' | 'InvalidStatement' | 'VestedBalanceExists'; + } + + /** @name PezframeElectionProviderSupportBoundedSupports (738) */ + interface PezframeElectionProviderSupportBoundedSupports extends Vec> {} + + /** @name PezframeElectionProviderSupportBoundedSupport (741) */ + interface PezframeElectionProviderSupportBoundedSupport extends Struct { + readonly total: u128; + readonly voters: Vec>; + } + + /** @name PezpalletStakingAsyncRcClientSessionReport (783) */ + interface PezpalletStakingAsyncRcClientSessionReport extends Struct { + readonly endIndex: u32; + readonly validatorPoints: Vec>; + readonly activationTimestamp: Option>; + readonly leftover: bool; + } + + /** @name PezpalletStakingAsyncRcClientOffence (787) */ + interface PezpalletStakingAsyncRcClientOffence extends Struct { + readonly offender: AccountId32; + readonly reporters: Vec; + readonly slashFraction: Perbill; + } + + /** @name PezpalletStakingAsyncAhClientError (789) */ + interface PezpalletStakingAsyncAhClientError extends Enum { + readonly isBlocked: boolean; + readonly type: 'Blocked'; + } + + /** @name PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration (790) */ + interface PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeCooldown: u32; + readonly validationUpgradeDelay: u32; + readonly asyncBackingParams: PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams; + readonly maxPovSize: u32; + readonly maxDownwardMessageSize: u32; + readonly hrmpMaxParachainOutboundChannels: u32; + readonly hrmpSenderDeposit: u128; + readonly hrmpRecipientDeposit: u128; + readonly hrmpChannelMaxCapacity: u32; + readonly hrmpChannelMaxTotalSize: u32; + readonly hrmpMaxParachainInboundChannels: u32; + readonly hrmpChannelMaxMessageSize: u32; + readonly executorParams: PezkuwiPrimitivesV8ExecutorParams; + readonly codeRetentionPeriod: u32; + readonly maxValidators: Option; + readonly disputePeriod: u32; + readonly disputePostConclusionAcceptancePeriod: u32; + readonly noShowSlots: u32; + readonly nDelayTranches: u32; + readonly zerothDelayTrancheWidth: u32; + readonly neededApprovals: u32; + readonly relayVrfModuloSamples: u32; + readonly pvfVotingTtl: u32; + readonly minimumValidationUpgradeDelay: u32; + readonly minimumBackingVotes: u32; + readonly nodeFeatures: BitVec; + readonly approvalVotingParams: PezkuwiPrimitivesV8ApprovalVotingParams; + readonly schedulerParams: PezkuwiPrimitivesV8SchedulerParams; + } + + /** @name PezkuwiRuntimeTeyrchainsConfigurationPezpalletError (793) */ + interface PezkuwiRuntimeTeyrchainsConfigurationPezpalletError extends Enum { + readonly isInvalidNewValue: boolean; + readonly type: 'InvalidNewValue'; + } + + /** @name PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker (796) */ + interface PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker extends Struct { + readonly buffer: Vec; + readonly latestNumber: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsSharedRelayParentInfo (798) */ + interface PezkuwiRuntimeTeyrchainsSharedRelayParentInfo extends Struct { + readonly relayParent: H256; + readonly stateRoot: H256; + readonly claimQueue: BTreeMap>>; + } + + /** @name PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability (808) */ + interface PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability extends Struct { + readonly core: u32; + readonly hash_: H256; + readonly descriptor: PezkuwiPrimitivesVstagingCandidateDescriptorV2; + readonly commitments: PezkuwiPrimitivesV8CandidateCommitments; + readonly availabilityVotes: BitVec; + readonly backers: BitVec; + readonly relayParentNumber: u32; + readonly backedInNumber: u32; + readonly backingGroup: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsInclusionPezpalletError (809) */ + interface PezkuwiRuntimeTeyrchainsInclusionPezpalletError extends Enum { + readonly isValidatorIndexOutOfBounds: boolean; + readonly isUnscheduledCandidate: boolean; + readonly isHeadDataTooLarge: boolean; + readonly isPrematureCodeUpgrade: boolean; + readonly isNewCodeTooLarge: boolean; + readonly isDisallowedRelayParent: boolean; + readonly isInvalidAssignment: boolean; + readonly isInvalidGroupIndex: boolean; + readonly isInsufficientBacking: boolean; + readonly isInvalidBacking: boolean; + readonly isValidationDataHashMismatch: boolean; + readonly isIncorrectDownwardMessageHandling: boolean; + readonly isInvalidUpwardMessages: boolean; + readonly isHrmpWatermarkMishandling: boolean; + readonly isInvalidOutboundHrmp: boolean; + readonly isInvalidValidationCodeHash: boolean; + readonly isParaHeadMismatch: boolean; + readonly type: 'ValidatorIndexOutOfBounds' | 'UnscheduledCandidate' | 'HeadDataTooLarge' | 'PrematureCodeUpgrade' | 'NewCodeTooLarge' | 'DisallowedRelayParent' | 'InvalidAssignment' | 'InvalidGroupIndex' | 'InsufficientBacking' | 'InvalidBacking' | 'ValidationDataHashMismatch' | 'IncorrectDownwardMessageHandling' | 'InvalidUpwardMessages' | 'HrmpWatermarkMishandling' | 'InvalidOutboundHrmp' | 'InvalidValidationCodeHash' | 'ParaHeadMismatch'; + } + + /** @name PezkuwiPrimitivesVstagingScrapedOnChainVotes (810) */ + interface PezkuwiPrimitivesVstagingScrapedOnChainVotes extends Struct { + readonly session: u32; + readonly backingValidatorsPerCandidate: Vec>]>>; + readonly disputes: Vec; + } + + /** @name PezkuwiRuntimeTeyrchainsParasInherentPezpalletError (815) */ + interface PezkuwiRuntimeTeyrchainsParasInherentPezpalletError extends Enum { + readonly isTooManyInclusionInherents: boolean; + readonly isInvalidParentHeader: boolean; + readonly isInherentDataFilteredDuringExecution: boolean; + readonly isUnscheduledCandidate: boolean; + readonly type: 'TooManyInclusionInherents' | 'InvalidParentHeader' | 'InherentDataFilteredDuringExecution' | 'UnscheduledCandidate'; + } + + /** @name PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment (819) */ + interface PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment extends Enum { + readonly isPool: boolean; + readonly asPool: { + readonly paraId: u32; + readonly coreIndex: u32; + } & Struct; + readonly isBulk: boolean; + readonly asBulk: u32; + readonly type: 'Pool' | 'Bulk'; + } + + /** @name PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState (822) */ + interface PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState extends Struct { + readonly votesAccept: BitVec; + readonly votesReject: BitVec; + readonly age: u32; + readonly createdAt: u32; + readonly causes: Vec; + } + + /** @name PezkuwiRuntimeTeyrchainsParasPvfCheckCause (824) */ + interface PezkuwiRuntimeTeyrchainsParasPvfCheckCause extends Enum { + readonly isOnboarding: boolean; + readonly asOnboarding: u32; + readonly isUpgrade: boolean; + readonly asUpgrade: { + readonly id: u32; + readonly includedAt: u32; + readonly upgradeStrategy: PezkuwiRuntimeTeyrchainsParasUpgradeStrategy; + } & Struct; + readonly type: 'Onboarding' | 'Upgrade'; + } + + /** @name PezkuwiRuntimeTeyrchainsParasUpgradeStrategy (825) */ + interface PezkuwiRuntimeTeyrchainsParasUpgradeStrategy extends Enum { + readonly isSetGoAheadSignal: boolean; + readonly isApplyAtExpectedBlock: boolean; + readonly type: 'SetGoAheadSignal' | 'ApplyAtExpectedBlock'; + } + + /** @name PezkuwiRuntimeTeyrchainsParasParaLifecycle (828) */ + interface PezkuwiRuntimeTeyrchainsParasParaLifecycle extends Enum { + readonly isOnboarding: boolean; + readonly isParathread: boolean; + readonly isParachain: boolean; + readonly isUpgradingParathread: boolean; + readonly isDowngradingParachain: boolean; + readonly isOffboardingParathread: boolean; + readonly isOffboardingParachain: boolean; + readonly type: 'Onboarding' | 'Parathread' | 'Parachain' | 'UpgradingParathread' | 'DowngradingParachain' | 'OffboardingParathread' | 'OffboardingParachain'; + } + + /** @name PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta (830) */ + interface PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta extends Struct { + readonly upgradeTimes: Vec; + readonly lastPruned: Option; + } + + /** @name PezkuwiRuntimeTeyrchainsParasReplacementTimes (832) */ + interface PezkuwiRuntimeTeyrchainsParasReplacementTimes extends Struct { + readonly expectedAt: u32; + readonly activatedAt: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry (834) */ + interface PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry extends Struct { + readonly codeHash: H256; + readonly expireAt: u32; + } + + /** @name PezkuwiPrimitivesV8UpgradeGoAhead (835) */ + interface PezkuwiPrimitivesV8UpgradeGoAhead extends Enum { + readonly isAbort: boolean; + readonly isGoAhead: boolean; + readonly type: 'Abort' | 'GoAhead'; + } + + /** @name PezkuwiPrimitivesV8UpgradeRestriction (836) */ + interface PezkuwiPrimitivesV8UpgradeRestriction extends Enum { + readonly isPresent: boolean; + readonly type: 'Present'; + } + + /** @name PezkuwiRuntimeTeyrchainsParasParaGenesisArgs (837) */ + interface PezkuwiRuntimeTeyrchainsParasParaGenesisArgs extends Struct { + readonly genesisHead: Bytes; + readonly validationCode: Bytes; + readonly paraKind: bool; + } + + /** @name PezkuwiRuntimeTeyrchainsParasPezpalletError (838) */ + interface PezkuwiRuntimeTeyrchainsParasPezpalletError extends Enum { + readonly isNotRegistered: boolean; + readonly isCannotOnboard: boolean; + readonly isCannotOffboard: boolean; + readonly isCannotUpgrade: boolean; + readonly isCannotDowngrade: boolean; + readonly isPvfCheckStatementStale: boolean; + readonly isPvfCheckStatementFuture: boolean; + readonly isPvfCheckValidatorIndexOutOfBounds: boolean; + readonly isPvfCheckInvalidSignature: boolean; + readonly isPvfCheckDoubleVote: boolean; + readonly isPvfCheckSubjectInvalid: boolean; + readonly isCannotUpgradeCode: boolean; + readonly isInvalidCode: boolean; + readonly isNothingAuthorized: boolean; + readonly isUnauthorized: boolean; + readonly isInvalidBlockNumber: boolean; + readonly type: 'NotRegistered' | 'CannotOnboard' | 'CannotOffboard' | 'CannotUpgrade' | 'CannotDowngrade' | 'PvfCheckStatementStale' | 'PvfCheckStatementFuture' | 'PvfCheckValidatorIndexOutOfBounds' | 'PvfCheckInvalidSignature' | 'PvfCheckDoubleVote' | 'PvfCheckSubjectInvalid' | 'CannotUpgradeCode' | 'InvalidCode' | 'NothingAuthorized' | 'Unauthorized' | 'InvalidBlockNumber'; + } + + /** @name PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange (840) */ + interface PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange extends Struct { + readonly validators: Vec; + readonly queued: Vec; + readonly sessionIndex: u32; + } + + /** @name PezkuwiCorePrimitivesInboundDownwardMessage (842) */ + interface PezkuwiCorePrimitivesInboundDownwardMessage extends Struct { + readonly sentAt: u32; + readonly msg: Bytes; + } + + /** @name PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest (843) */ + interface PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest extends Struct { + readonly confirmed: bool; + readonly age: u32; + readonly senderDeposit: u128; + readonly maxMessageSize: u32; + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsHrmpHrmpChannel (845) */ + interface PezkuwiRuntimeTeyrchainsHrmpHrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; + readonly senderDeposit: u128; + readonly recipientDeposit: u128; + } + + /** @name PezkuwiCorePrimitivesInboundHrmpMessage (847) */ + interface PezkuwiCorePrimitivesInboundHrmpMessage extends Struct { + readonly sentAt: u32; + readonly data: Bytes; + } + + /** @name PezkuwiRuntimeTeyrchainsHrmpPezpalletError (850) */ + interface PezkuwiRuntimeTeyrchainsHrmpPezpalletError extends Enum { + readonly isOpenHrmpChannelToSelf: boolean; + readonly isOpenHrmpChannelInvalidRecipient: boolean; + readonly isOpenHrmpChannelZeroCapacity: boolean; + readonly isOpenHrmpChannelCapacityExceedsLimit: boolean; + readonly isOpenHrmpChannelZeroMessageSize: boolean; + readonly isOpenHrmpChannelMessageSizeExceedsLimit: boolean; + readonly isOpenHrmpChannelAlreadyExists: boolean; + readonly isOpenHrmpChannelAlreadyRequested: boolean; + readonly isOpenHrmpChannelLimitExceeded: boolean; + readonly isAcceptHrmpChannelDoesntExist: boolean; + readonly isAcceptHrmpChannelAlreadyConfirmed: boolean; + readonly isAcceptHrmpChannelLimitExceeded: boolean; + readonly isCloseHrmpChannelUnauthorized: boolean; + readonly isCloseHrmpChannelDoesntExist: boolean; + readonly isCloseHrmpChannelAlreadyUnderway: boolean; + readonly isCancelHrmpOpenChannelUnauthorized: boolean; + readonly isOpenHrmpChannelDoesntExist: boolean; + readonly isOpenHrmpChannelAlreadyConfirmed: boolean; + readonly isWrongWitness: boolean; + readonly isChannelCreationNotAuthorized: boolean; + readonly type: 'OpenHrmpChannelToSelf' | 'OpenHrmpChannelInvalidRecipient' | 'OpenHrmpChannelZeroCapacity' | 'OpenHrmpChannelCapacityExceedsLimit' | 'OpenHrmpChannelZeroMessageSize' | 'OpenHrmpChannelMessageSizeExceedsLimit' | 'OpenHrmpChannelAlreadyExists' | 'OpenHrmpChannelAlreadyRequested' | 'OpenHrmpChannelLimitExceeded' | 'AcceptHrmpChannelDoesntExist' | 'AcceptHrmpChannelAlreadyConfirmed' | 'AcceptHrmpChannelLimitExceeded' | 'CloseHrmpChannelUnauthorized' | 'CloseHrmpChannelDoesntExist' | 'CloseHrmpChannelAlreadyUnderway' | 'CancelHrmpOpenChannelUnauthorized' | 'OpenHrmpChannelDoesntExist' | 'OpenHrmpChannelAlreadyConfirmed' | 'WrongWitness' | 'ChannelCreationNotAuthorized'; + } + + /** @name PezkuwiPrimitivesV8SessionInfo (852) */ + interface PezkuwiPrimitivesV8SessionInfo extends Struct { + readonly activeValidatorIndices: Vec; + readonly randomSeed: U8aFixed; + readonly disputePeriod: u32; + readonly validators: PezkuwiPrimitivesV8IndexedVecValidatorIndex; + readonly discoveryKeys: Vec; + readonly assignmentKeys: Vec; + readonly validatorGroups: PezkuwiPrimitivesV8IndexedVecGroupIndex; + readonly nCores: u32; + readonly zerothDelayTrancheWidth: u32; + readonly relayVrfModuloSamples: u32; + readonly nDelayTranches: u32; + readonly noShowSlots: u32; + readonly neededApprovals: u32; + } + + /** @name PezkuwiPrimitivesV8IndexedVecValidatorIndex (853) */ + interface PezkuwiPrimitivesV8IndexedVecValidatorIndex extends Vec {} + + /** @name PezkuwiPrimitivesV8IndexedVecGroupIndex (854) */ + interface PezkuwiPrimitivesV8IndexedVecGroupIndex extends Vec> {} + + /** @name PezkuwiPrimitivesV8DisputeState (856) */ + interface PezkuwiPrimitivesV8DisputeState extends Struct { + readonly validatorsFor: BitVec; + readonly validatorsAgainst: BitVec; + readonly start: u32; + readonly concludedAt: Option; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesPezpalletError (858) */ + interface PezkuwiRuntimeTeyrchainsDisputesPezpalletError extends Enum { + readonly isDuplicateDisputeStatementSets: boolean; + readonly isAncientDisputeStatement: boolean; + readonly isValidatorIndexOutOfBounds: boolean; + readonly isInvalidSignature: boolean; + readonly isDuplicateStatement: boolean; + readonly isSingleSidedDispute: boolean; + readonly isMaliciousBacker: boolean; + readonly isMissingBackingVotes: boolean; + readonly isUnconfirmedDispute: boolean; + readonly type: 'DuplicateDisputeStatementSets' | 'AncientDisputeStatement' | 'ValidatorIndexOutOfBounds' | 'InvalidSignature' | 'DuplicateStatement' | 'SingleSidedDispute' | 'MaliciousBacker' | 'MissingBackingVotes' | 'UnconfirmedDispute'; + } + + /** @name PezkuwiPrimitivesVstagingPendingSlashes (859) */ + interface PezkuwiPrimitivesVstagingPendingSlashes extends Struct { + readonly keys_: BTreeMap; + readonly kind: PezkuwiPrimitivesVstagingDisputeOffenceKind; + } + + /** @name PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError (863) */ + interface PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError extends Enum { + readonly isInvalidKeyOwnershipProof: boolean; + readonly isInvalidSessionIndex: boolean; + readonly isInvalidCandidateHash: boolean; + readonly isInvalidValidatorIndex: boolean; + readonly isValidatorIndexIdMismatch: boolean; + readonly isDuplicateSlashingReport: boolean; + readonly type: 'InvalidKeyOwnershipProof' | 'InvalidSessionIndex' | 'InvalidCandidateHash' | 'InvalidValidatorIndex' | 'ValidatorIndexIdMismatch' | 'DuplicateSlashingReport'; + } + + /** @name PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount (864) */ + interface PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount extends Struct { + readonly coreIndex: u32; + readonly count: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType (865) */ + interface PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType extends Struct { + readonly traffic: u128; + readonly nextIndex: u32; + readonly smallestIndex: u32; + readonly freedIndices: BinaryHeapReverseQueueIndex; + } + + /** @name BinaryHeapReverseQueueIndex (867) */ + interface BinaryHeapReverseQueueIndex extends Vec {} + + /** @name BinaryHeapEnqueuedOrder (870) */ + interface BinaryHeapEnqueuedOrder extends Vec {} + + /** @name PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder (871) */ + interface PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder extends Struct { + readonly paraId: u32; + readonly idx: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsOnDemandPezpalletError (875) */ + interface PezkuwiRuntimeTeyrchainsOnDemandPezpalletError extends Enum { + readonly isQueueFull: boolean; + readonly isSpotPriceHigherThanMaxAmount: boolean; + readonly isInsufficientCredits: boolean; + readonly type: 'QueueFull' | 'SpotPriceHigherThanMaxAmount' | 'InsufficientCredits'; + } + + /** @name PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule (877) */ + interface PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule extends Struct { + readonly assignments: Vec>; + readonly endHint: Option; + readonly nextSchedule: Option; + } + + /** @name PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor (878) */ + interface PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor extends Struct { + readonly queue: Option; + readonly currentWork: Option; + } + + /** @name PezkuwiRuntimeTeyrchainsAssignerCoretimeQueueDescriptor (880) */ + interface PezkuwiRuntimeTeyrchainsAssignerCoretimeQueueDescriptor extends Struct { + readonly first: u32; + readonly last: u32; + } + + /** @name PezkuwiRuntimeTeyrchainsAssignerCoretimeWorkState (882) */ + interface PezkuwiRuntimeTeyrchainsAssignerCoretimeWorkState extends Struct { + readonly assignments: Vec>; + readonly endHint: Option; + readonly pos: u16; + readonly step: u16; + } + + /** @name PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState (885) */ + interface PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState extends Struct { + readonly ratio: u16; + readonly remaining: u16; + } + + /** @name PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError (886) */ + interface PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError extends Enum { + readonly isAssignmentsEmpty: boolean; + readonly isDisallowedInsert: boolean; + readonly type: 'AssignmentsEmpty' | 'DisallowedInsert'; + } + + /** @name PezkuwiRuntimeCommonParasRegistrarParaInfo (887) */ + interface PezkuwiRuntimeCommonParasRegistrarParaInfo extends Struct { + readonly manager: AccountId32; + readonly deposit: u128; + readonly locked: Option; + } + + /** @name PezkuwiRuntimeCommonParasRegistrarPezpalletError (889) */ + interface PezkuwiRuntimeCommonParasRegistrarPezpalletError extends Enum { + readonly isNotRegistered: boolean; + readonly isAlreadyRegistered: boolean; + readonly isNotOwner: boolean; + readonly isCodeTooLarge: boolean; + readonly isHeadDataTooLarge: boolean; + readonly isNotParachain: boolean; + readonly isNotParathread: boolean; + readonly isCannotDeregister: boolean; + readonly isCannotDowngrade: boolean; + readonly isCannotUpgrade: boolean; + readonly isParaLocked: boolean; + readonly isNotReserved: boolean; + readonly isInvalidCode: boolean; + readonly isCannotSwap: boolean; + readonly type: 'NotRegistered' | 'AlreadyRegistered' | 'NotOwner' | 'CodeTooLarge' | 'HeadDataTooLarge' | 'NotParachain' | 'NotParathread' | 'CannotDeregister' | 'CannotDowngrade' | 'CannotUpgrade' | 'ParaLocked' | 'NotReserved' | 'InvalidCode' | 'CannotSwap'; + } + + /** @name PezkuwiRuntimeCommonSlotsPezpalletError (891) */ + interface PezkuwiRuntimeCommonSlotsPezpalletError extends Enum { + readonly isParaNotOnboarding: boolean; + readonly isLeaseError: boolean; + readonly type: 'ParaNotOnboarding' | 'LeaseError'; + } + + /** @name PezkuwiRuntimeCommonAuctionsPezpalletError (896) */ + interface PezkuwiRuntimeCommonAuctionsPezpalletError extends Enum { + readonly isAuctionInProgress: boolean; + readonly isLeasePeriodInPast: boolean; + readonly isParaNotRegistered: boolean; + readonly isNotCurrentAuction: boolean; + readonly isNotAuction: boolean; + readonly isAuctionEnded: boolean; + readonly isAlreadyLeasedOut: boolean; + readonly type: 'AuctionInProgress' | 'LeasePeriodInPast' | 'ParaNotRegistered' | 'NotCurrentAuction' | 'NotAuction' | 'AuctionEnded' | 'AlreadyLeasedOut'; + } + + /** @name PezkuwiRuntimeCommonCrowdloanFundInfo (897) */ + interface PezkuwiRuntimeCommonCrowdloanFundInfo extends Struct { + readonly depositor: AccountId32; + readonly verifier: Option; + readonly deposit: u128; + readonly raised: u128; + readonly end: u32; + readonly cap: u128; + readonly lastContribution: PezkuwiRuntimeCommonCrowdloanLastContribution; + readonly firstPeriod: u32; + readonly lastPeriod: u32; + readonly fundIndex: u32; + } + + /** @name PezkuwiRuntimeCommonCrowdloanLastContribution (898) */ + interface PezkuwiRuntimeCommonCrowdloanLastContribution extends Enum { + readonly isNever: boolean; + readonly isPreEnding: boolean; + readonly asPreEnding: u32; + readonly isEnding: boolean; + readonly asEnding: u32; + readonly type: 'Never' | 'PreEnding' | 'Ending'; + } + + /** @name PezkuwiRuntimeCommonCrowdloanPezpalletError (899) */ + interface PezkuwiRuntimeCommonCrowdloanPezpalletError extends Enum { + readonly isFirstPeriodInPast: boolean; + readonly isFirstPeriodTooFarInFuture: boolean; + readonly isLastPeriodBeforeFirstPeriod: boolean; + readonly isLastPeriodTooFarInFuture: boolean; + readonly isCannotEndInPast: boolean; + readonly isEndTooFarInFuture: boolean; + readonly isOverflow: boolean; + readonly isContributionTooSmall: boolean; + readonly isInvalidParaId: boolean; + readonly isCapExceeded: boolean; + readonly isContributionPeriodOver: boolean; + readonly isInvalidOrigin: boolean; + readonly isNotParachain: boolean; + readonly isLeaseActive: boolean; + readonly isBidOrLeaseActive: boolean; + readonly isFundNotEnded: boolean; + readonly isNoContributions: boolean; + readonly isNotReadyToDissolve: boolean; + readonly isInvalidSignature: boolean; + readonly isMemoTooLarge: boolean; + readonly isAlreadyInNewRaise: boolean; + readonly isVrfDelayInProgress: boolean; + readonly isNoLeasePeriod: boolean; + readonly type: 'FirstPeriodInPast' | 'FirstPeriodTooFarInFuture' | 'LastPeriodBeforeFirstPeriod' | 'LastPeriodTooFarInFuture' | 'CannotEndInPast' | 'EndTooFarInFuture' | 'Overflow' | 'ContributionTooSmall' | 'InvalidParaId' | 'CapExceeded' | 'ContributionPeriodOver' | 'InvalidOrigin' | 'NotParachain' | 'LeaseActive' | 'BidOrLeaseActive' | 'FundNotEnded' | 'NoContributions' | 'NotReadyToDissolve' | 'InvalidSignature' | 'MemoTooLarge' | 'AlreadyInNewRaise' | 'VrfDelayInProgress' | 'NoLeasePeriod'; + } + + /** @name PezkuwiRuntimeTeyrchainsCoretimePezpalletError (900) */ + interface PezkuwiRuntimeTeyrchainsCoretimePezpalletError extends Enum { + readonly isNotBroker: boolean; + readonly isRequestedFutureRevenue: boolean; + readonly isAssetTransferFailed: boolean; + readonly type: 'NotBroker' | 'RequestedFutureRevenue' | 'AssetTransferFailed'; + } + + /** @name PezpalletXcmQueryStatus (901) */ + interface PezpalletXcmQueryStatus extends Enum { + readonly isPending: boolean; + readonly asPending: { + readonly responder: XcmVersionedLocation; + readonly maybeMatchQuerier: Option; + readonly maybeNotify: Option>; + readonly timeout: u32; + } & Struct; + readonly isVersionNotifier: boolean; + readonly asVersionNotifier: { + readonly origin: XcmVersionedLocation; + readonly isActive: bool; + } & Struct; + readonly isReady: boolean; + readonly asReady: { + readonly response: XcmVersionedResponse; + readonly at: u32; + } & Struct; + readonly type: 'Pending' | 'VersionNotifier' | 'Ready'; + } + + /** @name XcmVersionedResponse (905) */ + interface XcmVersionedResponse extends Enum { + readonly isV3: boolean; + readonly asV3: XcmV3Response; + readonly isV4: boolean; + readonly asV4: StagingXcmV4Response; + readonly isV5: boolean; + readonly asV5: StagingXcmV5Response; + readonly type: 'V3' | 'V4' | 'V5'; + } + + /** @name PezpalletXcmVersionMigrationStage (911) */ + interface PezpalletXcmVersionMigrationStage extends Enum { + readonly isMigrateSupportedVersion: boolean; + readonly isMigrateVersionNotifiers: boolean; + readonly isNotifyCurrentTargets: boolean; + readonly asNotifyCurrentTargets: Option; + readonly isMigrateAndNotifyOldTargets: boolean; + readonly type: 'MigrateSupportedVersion' | 'MigrateVersionNotifiers' | 'NotifyCurrentTargets' | 'MigrateAndNotifyOldTargets'; + } + + /** @name PezpalletXcmRemoteLockedFungibleRecord (914) */ + interface PezpalletXcmRemoteLockedFungibleRecord extends Struct { + readonly amount: u128; + readonly owner: XcmVersionedLocation; + readonly locker: XcmVersionedLocation; + readonly consumers: Vec>; + } + + /** @name PezpalletXcmAuthorizedAliasesEntry (921) */ + interface PezpalletXcmAuthorizedAliasesEntry extends Struct { + readonly aliasers: Vec; + readonly ticket: PezframeSupportStorageDisabled; + } + + /** @name PezframeSupportStorageDisabled (922) */ + type PezframeSupportStorageDisabled = Null; + + /** @name PezpalletXcmMaxAuthorizedAliases (923) */ + type PezpalletXcmMaxAuthorizedAliases = Null; + + /** @name XcmRuntimeApisAuthorizedAliasesOriginAliaser (925) */ + interface XcmRuntimeApisAuthorizedAliasesOriginAliaser extends Struct { + readonly location: XcmVersionedLocation; + readonly expiry: Option; + } + + /** @name PezpalletXcmError (927) */ + interface PezpalletXcmError extends Enum { + readonly isUnreachable: boolean; + readonly isSendFailure: boolean; + readonly isFiltered: boolean; + readonly isUnweighableMessage: boolean; + readonly isDestinationNotInvertible: boolean; + readonly isEmpty: boolean; + readonly isCannotReanchor: boolean; + readonly isTooManyAssets: boolean; + readonly isInvalidOrigin: boolean; + readonly isBadVersion: boolean; + readonly isBadLocation: boolean; + readonly isNoSubscription: boolean; + readonly isAlreadySubscribed: boolean; + readonly isCannotCheckOutTeleport: boolean; + readonly isLowBalance: boolean; + readonly isTooManyLocks: boolean; + readonly isAccountNotSovereign: boolean; + readonly isFeesNotMet: boolean; + readonly isLockNotFound: boolean; + readonly isInUse: boolean; + readonly isInvalidAssetUnknownReserve: boolean; + readonly isInvalidAssetUnsupportedReserve: boolean; + readonly isTooManyReserves: boolean; + readonly isLocalExecutionIncomplete: boolean; + readonly isTooManyAuthorizedAliases: boolean; + readonly isExpiresInPast: boolean; + readonly isAliasNotFound: boolean; + readonly isLocalExecutionIncompleteWithError: boolean; + readonly asLocalExecutionIncompleteWithError: { + readonly index: u8; + readonly error: PezpalletXcmErrorsExecutionError; + } & Struct; + readonly type: 'Unreachable' | 'SendFailure' | 'Filtered' | 'UnweighableMessage' | 'DestinationNotInvertible' | 'Empty' | 'CannotReanchor' | 'TooManyAssets' | 'InvalidOrigin' | 'BadVersion' | 'BadLocation' | 'NoSubscription' | 'AlreadySubscribed' | 'CannotCheckOutTeleport' | 'LowBalance' | 'TooManyLocks' | 'AccountNotSovereign' | 'FeesNotMet' | 'LockNotFound' | 'InUse' | 'InvalidAssetUnknownReserve' | 'InvalidAssetUnsupportedReserve' | 'TooManyReserves' | 'LocalExecutionIncomplete' | 'TooManyAuthorizedAliases' | 'ExpiresInPast' | 'AliasNotFound' | 'LocalExecutionIncompleteWithError'; + } + + /** @name PezpalletXcmErrorsExecutionError (928) */ + interface PezpalletXcmErrorsExecutionError extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly isExpectationFalse: boolean; + readonly isPalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isTooManyAssets: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'TooManyAssets' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable' | 'ExceedsStackLimit'; + } + + /** @name PezpalletRcMigratorAccountsAccountState (941) */ + interface PezpalletRcMigratorAccountsAccountState extends Enum { + readonly isMigrate: boolean; + readonly isPreserve: boolean; + readonly isPart: boolean; + readonly asPart: { + readonly free: u128; + readonly reserved: u128; + readonly consumers: u32; + } & Struct; + readonly type: 'Migrate' | 'Preserve' | 'Part'; + } + + /** @name PezpalletRcMigratorAccountsMigratedBalances (942) */ + interface PezpalletRcMigratorAccountsMigratedBalances extends Struct { + readonly kept: u128; + readonly migrated: u128; + } + + /** @name PezpalletRcMigratorError (943) */ + interface PezpalletRcMigratorError extends Enum { + readonly isUnreachable: boolean; + readonly isOutOfWeight: boolean; + readonly isXcmError: boolean; + readonly isFailedToWithdrawAccount: boolean; + readonly isPastBlockNumber: boolean; + readonly isEraEndsTooSoon: boolean; + readonly isBalanceOverflow: boolean; + readonly isBalanceUnderflow: boolean; + readonly isInvalidQueryResponse: boolean; + readonly isQueryNotFound: boolean; + readonly isXcmSendError: boolean; + readonly isUnreachableStage: boolean; + readonly isInvalidParameter: boolean; + readonly isAhUmpQueuePriorityAlreadySet: boolean; + readonly isAccountReferenced: boolean; + readonly isBadXcmVersion: boolean; + readonly isInvalidOrigin: boolean; + readonly isInvalidStageTransition: boolean; + readonly isUnsignedValidationFailed: boolean; + readonly type: 'Unreachable' | 'OutOfWeight' | 'XcmError' | 'FailedToWithdrawAccount' | 'PastBlockNumber' | 'EraEndsTooSoon' | 'BalanceOverflow' | 'BalanceUnderflow' | 'InvalidQueryResponse' | 'QueryNotFound' | 'XcmSendError' | 'UnreachableStage' | 'InvalidParameter' | 'AhUmpQueuePriorityAlreadySet' | 'AccountReferenced' | 'BadXcmVersion' | 'InvalidOrigin' | 'InvalidStageTransition' | 'UnsignedValidationFailed'; + } + + /** @name PezpalletTransactionPaymentChargeTransactionPayment (953) */ + interface PezpalletTransactionPaymentChargeTransactionPayment extends Compact {} + + /** @name PezkuwiRuntimeCommonClaimsPrevalidateAttests (954) */ + type PezkuwiRuntimeCommonClaimsPrevalidateAttests = Null; + + /** @name PezkuwiRuntimeRuntime (957) */ + type PezkuwiRuntimeRuntime = Null; + + /** @name RelayCommonApisInflationInfo (958) */ + interface RelayCommonApisInflationInfo extends Struct { + readonly inflation: Perquintill; + readonly nextMint: ITuple<[u128, u128]>; + } + + /** @name PezkuwiPrimitivesV8GroupRotationInfo (981) */ + interface PezkuwiPrimitivesV8GroupRotationInfo extends Struct { + readonly sessionStartBlock: u32; + readonly groupRotationFrequency: u32; + readonly now: u32; + } + + /** @name PezkuwiPrimitivesVstagingCoreState (983) */ + interface PezkuwiPrimitivesVstagingCoreState extends Enum { + readonly isOccupied: boolean; + readonly asOccupied: PezkuwiPrimitivesVstagingOccupiedCore; + readonly isScheduled: boolean; + readonly asScheduled: PezkuwiPrimitivesV8ScheduledCore; + readonly isFree: boolean; + readonly type: 'Occupied' | 'Scheduled' | 'Free'; + } + + /** @name PezkuwiPrimitivesVstagingOccupiedCore (984) */ + interface PezkuwiPrimitivesVstagingOccupiedCore extends Struct { + readonly nextUpOnAvailable: Option; + readonly occupiedSince: u32; + readonly timeOutAt: u32; + readonly nextUpOnTimeOut: Option; + readonly availability: BitVec; + readonly groupResponsible: u32; + readonly candidateHash: H256; + readonly candidateDescriptor: PezkuwiPrimitivesVstagingCandidateDescriptorV2; + } + + /** @name PezkuwiPrimitivesV8ScheduledCore (986) */ + interface PezkuwiPrimitivesV8ScheduledCore extends Struct { + readonly paraId: u32; + readonly collator: Option; + } + + /** @name PezkuwiPrimitivesV8CollatorAppPublic (988) */ + interface PezkuwiPrimitivesV8CollatorAppPublic extends U8aFixed {} + + /** @name PezkuwiPrimitivesV8OccupiedCoreAssumption (989) */ + interface PezkuwiPrimitivesV8OccupiedCoreAssumption extends Enum { + readonly isIncluded: boolean; + readonly isTimedOut: boolean; + readonly isFree: boolean; + readonly type: 'Included' | 'TimedOut' | 'Free'; + } + + /** @name PezkuwiPrimitivesV8PersistedValidationData (991) */ + interface PezkuwiPrimitivesV8PersistedValidationData extends Struct { + readonly parentHead: Bytes; + readonly relayParentNumber: u32; + readonly relayParentStorageRoot: H256; + readonly maxPovSize: u32; + } + + /** @name PezkuwiPrimitivesVstagingCandidateEvent (996) */ + interface PezkuwiPrimitivesVstagingCandidateEvent extends Enum { + readonly isCandidateBacked: boolean; + readonly asCandidateBacked: ITuple<[PezkuwiPrimitivesVstagingCandidateReceiptV2, Bytes, u32, u32]>; + readonly isCandidateIncluded: boolean; + readonly asCandidateIncluded: ITuple<[PezkuwiPrimitivesVstagingCandidateReceiptV2, Bytes, u32, u32]>; + readonly isCandidateTimedOut: boolean; + readonly asCandidateTimedOut: ITuple<[PezkuwiPrimitivesVstagingCandidateReceiptV2, Bytes, u32]>; + readonly type: 'CandidateBacked' | 'CandidateIncluded' | 'CandidateTimedOut'; + } + + /** @name PezkuwiPrimitivesV8SlashingPendingSlashes (1008) */ + interface PezkuwiPrimitivesV8SlashingPendingSlashes extends Struct { + readonly keys_: BTreeMap; + readonly kind: PezkuwiPrimitivesV8SlashingSlashingOffenceKind; + } + + /** @name PezkuwiPrimitivesV8SlashingSlashingOffenceKind (1009) */ + interface PezkuwiPrimitivesV8SlashingSlashingOffenceKind extends Enum { + readonly isForInvalid: boolean; + readonly isAgainstValid: boolean; + readonly type: 'ForInvalid' | 'AgainstValid'; + } + + /** @name PezkuwiPrimitivesV8SlashingDisputeProof (1012) */ + interface PezkuwiPrimitivesV8SlashingDisputeProof extends Struct { + readonly timeSlot: PezkuwiPrimitivesV8SlashingDisputesTimeSlot; + readonly kind: PezkuwiPrimitivesV8SlashingSlashingOffenceKind; + readonly validatorIndex: u32; + readonly validatorId: PezkuwiPrimitivesV8ValidatorAppPublic; + } + + /** @name PezkuwiPrimitivesVstagingAsyncBackingBackingState (1014) */ + interface PezkuwiPrimitivesVstagingAsyncBackingBackingState extends Struct { + readonly constraints: PezkuwiPrimitivesV8AsyncBackingConstraints; + readonly pendingAvailability: Vec; + } + + /** @name PezkuwiPrimitivesV8AsyncBackingConstraints (1015) */ + interface PezkuwiPrimitivesV8AsyncBackingConstraints extends Struct { + readonly minRelayParentNumber: u32; + readonly maxPovSize: u32; + readonly maxCodeSize: u32; + readonly umpRemaining: u32; + readonly umpRemainingBytes: u32; + readonly maxUmpNumPerCandidate: u32; + readonly dmpRemainingMessages: Vec; + readonly hrmpInbound: PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations; + readonly hrmpChannelsOut: Vec>; + readonly maxHrmpNumPerCandidate: u32; + readonly requiredParent: Bytes; + readonly validationCodeHash: H256; + readonly upgradeRestriction: Option; + readonly futureValidationCode: Option>; + } + + /** @name PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations (1016) */ + interface PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations extends Struct { + readonly validWatermarks: Vec; + } + + /** @name PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations (1019) */ + interface PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations extends Struct { + readonly bytesRemaining: u32; + readonly messagesRemaining: u32; + } + + /** @name PezkuwiPrimitivesVstagingAsyncBackingCandidatePendingAvailability (1024) */ + interface PezkuwiPrimitivesVstagingAsyncBackingCandidatePendingAvailability extends Struct { + readonly candidateHash: H256; + readonly descriptor: PezkuwiPrimitivesVstagingCandidateDescriptorV2; + readonly commitments: PezkuwiPrimitivesV8CandidateCommitments; + readonly relayParentNumber: u32; + readonly maxPovSize: u32; + } + + /** @name PezkuwiPrimitivesVstagingAsyncBackingConstraints (1030) */ + interface PezkuwiPrimitivesVstagingAsyncBackingConstraints extends Struct { + readonly minRelayParentNumber: u32; + readonly maxPovSize: u32; + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly umpRemaining: u32; + readonly umpRemainingBytes: u32; + readonly maxUmpNumPerCandidate: u32; + readonly dmpRemainingMessages: Vec; + readonly hrmpInbound: PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations; + readonly hrmpChannelsOut: Vec>; + readonly maxHrmpNumPerCandidate: u32; + readonly requiredParent: Bytes; + readonly validationCodeHash: H256; + readonly upgradeRestriction: Option; + readonly futureValidationCode: Option>; + } + + /** @name XcmRuntimeApisFeesError (1061) */ + interface XcmRuntimeApisFeesError extends Enum { + readonly isUnimplemented: boolean; + readonly isVersionedConversionFailed: boolean; + readonly isWeightNotComputable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isAssetNotFound: boolean; + readonly isUnroutable: boolean; + readonly type: 'Unimplemented' | 'VersionedConversionFailed' | 'WeightNotComputable' | 'UnhandledXcmVersion' | 'AssetNotFound' | 'Unroutable'; + } + + /** @name XcmRuntimeApisDryRunCallDryRunEffects (1066) */ + interface XcmRuntimeApisDryRunCallDryRunEffects extends Struct { + readonly executionResult: Result; + readonly emittedEvents: Vec; + readonly localXcm: Option; + readonly forwardedXcms: Vec]>>; + } + + /** @name XcmRuntimeApisDryRunError (1072) */ + interface XcmRuntimeApisDryRunError extends Enum { + readonly isUnimplemented: boolean; + readonly isVersionedConversionFailed: boolean; + readonly type: 'Unimplemented' | 'VersionedConversionFailed'; + } + + /** @name XcmRuntimeApisDryRunXcmDryRunEffects (1074) */ + interface XcmRuntimeApisDryRunXcmDryRunEffects extends Struct { + readonly executionResult: StagingXcmV5TraitsOutcome; + readonly emittedEvents: Vec; + readonly forwardedXcms: Vec]>>; + } + + /** @name XcmRuntimeApisConversionsError (1076) */ + interface XcmRuntimeApisConversionsError extends Enum { + readonly isUnsupported: boolean; + readonly isVersionedConversionFailed: boolean; + readonly type: 'Unsupported' | 'VersionedConversionFailed'; + } + + /** @name PezkuwiRuntimeRuntimeError (1080) */ + interface PezkuwiRuntimeRuntimeError extends Enum { + readonly isSystem: boolean; + readonly asSystem: PezframeSystemError; + readonly isScheduler: boolean; + readonly asScheduler: PezpalletSchedulerError; + readonly isBabe: boolean; + readonly asBabe: PezpalletBabeError; + readonly isIndices: boolean; + readonly asIndices: PezpalletIndicesError; + readonly isBalances: boolean; + readonly asBalances: PezpalletBalancesError; + readonly isStaking: boolean; + readonly asStaking: PezpalletStakingPezpalletError; + readonly isSession: boolean; + readonly asSession: PezpalletSessionError; + readonly isPreimage: boolean; + readonly asPreimage: PezpalletPreimageError; + readonly isGrandpa: boolean; + readonly asGrandpa: PezpalletGrandpaError; + readonly isTreasury: boolean; + readonly asTreasury: PezpalletTreasuryError; + readonly isConvictionVoting: boolean; + readonly asConvictionVoting: PezpalletConvictionVotingError; + readonly isReferenda: boolean; + readonly asReferenda: PezpalletReferendaError; + readonly isWhitelist: boolean; + readonly asWhitelist: PezpalletWhitelistError; + readonly isClaims: boolean; + readonly asClaims: PezkuwiRuntimeCommonClaimsPezpalletError; + readonly isVesting: boolean; + readonly asVesting: PezpalletVestingError; + readonly isUtility: boolean; + readonly asUtility: PezpalletUtilityError; + readonly isProxy: boolean; + readonly asProxy: PezpalletProxyError; + readonly isMultisig: boolean; + readonly asMultisig: PezpalletMultisigError; + readonly isBounties: boolean; + readonly asBounties: PezpalletBountiesError; + readonly isElectionProviderMultiPhase: boolean; + readonly asElectionProviderMultiPhase: PezpalletElectionProviderMultiPhaseError; + readonly isVoterList: boolean; + readonly asVoterList: PezpalletBagsListError; + readonly isChildBounties: boolean; + readonly asChildBounties: PezpalletChildBountiesError; + readonly isNominationPools: boolean; + readonly asNominationPools: PezpalletNominationPoolsError; + readonly isFastUnstake: boolean; + readonly asFastUnstake: PezpalletFastUnstakeError; + readonly isDelegatedStaking: boolean; + readonly asDelegatedStaking: PezpalletDelegatedStakingError; + readonly isStakingAhClient: boolean; + readonly asStakingAhClient: PezpalletStakingAsyncAhClientError; + readonly isConfiguration: boolean; + readonly asConfiguration: PezkuwiRuntimeTeyrchainsConfigurationPezpalletError; + readonly isParaInclusion: boolean; + readonly asParaInclusion: PezkuwiRuntimeTeyrchainsInclusionPezpalletError; + readonly isParaInherent: boolean; + readonly asParaInherent: PezkuwiRuntimeTeyrchainsParasInherentPezpalletError; + readonly isParas: boolean; + readonly asParas: PezkuwiRuntimeTeyrchainsParasPezpalletError; + readonly isHrmp: boolean; + readonly asHrmp: PezkuwiRuntimeTeyrchainsHrmpPezpalletError; + readonly isParasDisputes: boolean; + readonly asParasDisputes: PezkuwiRuntimeTeyrchainsDisputesPezpalletError; + readonly isParasSlashing: boolean; + readonly asParasSlashing: PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError; + readonly isOnDemand: boolean; + readonly asOnDemand: PezkuwiRuntimeTeyrchainsOnDemandPezpalletError; + readonly isCoretimeAssignmentProvider: boolean; + readonly asCoretimeAssignmentProvider: PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError; + readonly isRegistrar: boolean; + readonly asRegistrar: PezkuwiRuntimeCommonParasRegistrarPezpalletError; + readonly isSlots: boolean; + readonly asSlots: PezkuwiRuntimeCommonSlotsPezpalletError; + readonly isAuctions: boolean; + readonly asAuctions: PezkuwiRuntimeCommonAuctionsPezpalletError; + readonly isCrowdloan: boolean; + readonly asCrowdloan: PezkuwiRuntimeCommonCrowdloanPezpalletError; + readonly isCoretime: boolean; + readonly asCoretime: PezkuwiRuntimeTeyrchainsCoretimePezpalletError; + readonly isStateTrieMigration: boolean; + readonly asStateTrieMigration: PezpalletStateTrieMigrationError; + readonly isXcmPallet: boolean; + readonly asXcmPallet: PezpalletXcmError; + readonly isMessageQueue: boolean; + readonly asMessageQueue: PezpalletMessageQueueError; + readonly isAssetRate: boolean; + readonly asAssetRate: PezpalletAssetRateError; + readonly isBeefy: boolean; + readonly asBeefy: PezpalletBeefyError; + readonly isRcMigrator: boolean; + readonly asRcMigrator: PezpalletRcMigratorError; + readonly type: 'System' | 'Scheduler' | 'Babe' | 'Indices' | 'Balances' | 'Staking' | 'Session' | 'Preimage' | 'Grandpa' | 'Treasury' | 'ConvictionVoting' | 'Referenda' | 'Whitelist' | 'Claims' | 'Vesting' | 'Utility' | 'Proxy' | 'Multisig' | 'Bounties' | 'ElectionProviderMultiPhase' | 'VoterList' | 'ChildBounties' | 'NominationPools' | 'FastUnstake' | 'DelegatedStaking' | 'StakingAhClient' | 'Configuration' | 'ParaInclusion' | 'ParaInherent' | 'Paras' | 'Hrmp' | 'ParasDisputes' | 'ParasSlashing' | 'OnDemand' | 'CoretimeAssignmentProvider' | 'Registrar' | 'Slots' | 'Auctions' | 'Crowdloan' | 'Coretime' | 'StateTrieMigration' | 'XcmPallet' | 'MessageQueue' | 'AssetRate' | 'Beefy' | 'RcMigrator'; + } + +} // declare module diff --git a/packages/types-augment/src/lookup/types.ts b/packages/types-augment/src/lookup/types.ts new file mode 100644 index 0000000..cafeb9b --- /dev/null +++ b/packages/types-augment/src/lookup/types.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './types-bizinikiwi.js'; +import './types-pezkuwi.js'; +import './types-dicle.js'; +import './types-assetHubDicle.js'; +import './types-assetHubPezkuwi.js'; diff --git a/packages/types-augment/src/mod.ts b/packages/types-augment/src/mod.ts new file mode 100644 index 0000000..85f80c4 --- /dev/null +++ b/packages/types-augment/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/types-augment/src/packageDetect.ts b/packages/types-augment/src/packageDetect.ts new file mode 100644 index 0000000..7c0db38 --- /dev/null +++ b/packages/types-augment/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2026 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { packageInfo as codecInfo } from '@pezkuwi/types-codec/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [codecInfo, typesInfo]); diff --git a/packages/types-augment/src/packageInfo.ts b/packages/types-augment/src/packageInfo.ts new file mode 100644 index 0000000..19418d7 --- /dev/null +++ b/packages/types-augment/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/types-augment authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/types-augment', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/types-augment/src/registry/assetHubDicle.ts b/packages/types-augment/src/registry/assetHubDicle.ts new file mode 100644 index 0000000..cf59a9e --- /dev/null +++ b/packages/types-augment/src/registry/assetHubDicle.ts @@ -0,0 +1,88 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +import type { AssetHubDicleRuntimeAhMigrationRcPalletsOrigin, AssetHubDicleRuntimeDynamicParamsIssuanceFalloff, AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake, AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation, AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation, AssetHubDicleRuntimeDynamicParamsIssuanceParameters, AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey, AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue, AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight, AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight, AssetHubDicleRuntimeDynamicParamsMessageQueueParameters, AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey, AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue, AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock, AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight, AssetHubDicleRuntimeDynamicParamsSchedulerParameters, AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey, AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue, AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters, AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration, AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions, AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages, AssetHubDicleRuntimeDynamicParamsStakingElectionParameters, AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey, AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue, AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase, AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock, AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase, AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination, AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion, AssetHubDicleRuntimeDynamicParamsTreasuryParameters, AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey, AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue, AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin, AssetHubDicleRuntimeOriginCaller, AssetHubDicleRuntimeProxyType, AssetHubDicleRuntimeRuntime, AssetHubDicleRuntimeRuntimeError, AssetHubDicleRuntimeRuntimeFreezeReason, AssetHubDicleRuntimeRuntimeHoldReason, AssetHubDicleRuntimeRuntimeParameters, AssetHubDicleRuntimeRuntimeParametersKey, AssetHubDicleRuntimeRuntimeParametersValue, AssetHubDicleRuntimeRuntimeTask, AssetHubDicleRuntimeSessionKeys, AssetHubDicleRuntimeStakingNposCompactSolution24, AssetHubDicleRuntimeTreasuryBurnDestinationAccount, PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType, PezpalletProxyProxyDefinitionDicleRuntimeConstantsProxyProxyType, PezpalletRcMigratorRecoveryPortableActiveRecovery, PezpalletRcMigratorRecoveryPortableRecoveryConfig, PezpalletRcMigratorRecoveryPortableRecoveryFriends, PezpalletRcMigratorRecoveryPortableRecoveryMessage, PezpalletRcMigratorSocietyPortableBid, PezpalletRcMigratorSocietyPortableBidKind, PezpalletRcMigratorSocietyPortableCandidacy, PezpalletRcMigratorSocietyPortableGroupParams, PezpalletRcMigratorSocietyPortableIntakeRecord, PezpalletRcMigratorSocietyPortableMemberRecord, PezpalletRcMigratorSocietyPortablePayoutRecord, PezpalletRcMigratorSocietyPortableSocietyMessage, PezpalletRcMigratorSocietyPortableTally, PezpalletRcMigratorSocietyPortableVote, PezpalletRcMigratorSocietyPortableVouchingStatus, PezpalletRcMigratorSocietySocietyValues, PezpalletRemoteProxyCall, PezpalletRemoteProxyError, PezpalletRemoteProxyRemoteProxyProof, PezpalletReviveEvmApiDebugRpcTypesPrestateTrace, PezpalletReviveEvmApiDebugRpcTypesPrestateTraceInfo, PezpalletReviveEvmApiDebugRpcTypesPrestateTracerConfig, PezpalletReviveStorageAccountInfo, PezpalletReviveStorageAccountType, PezpalletReviveVmCodeInfo, PezspConsensusAuraSr25519AppSr25519Public } from '@pezkuwi/types/lookup'; + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + AssetHubDicleRuntimeAhMigrationRcPalletsOrigin: AssetHubDicleRuntimeAhMigrationRcPalletsOrigin; + AssetHubDicleRuntimeDynamicParamsIssuanceFalloff: AssetHubDicleRuntimeDynamicParamsIssuanceFalloff; + AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake: AssetHubDicleRuntimeDynamicParamsIssuanceIdealStake; + AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation: AssetHubDicleRuntimeDynamicParamsIssuanceMaxInflation; + AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation: AssetHubDicleRuntimeDynamicParamsIssuanceMinInflation; + AssetHubDicleRuntimeDynamicParamsIssuanceParameters: AssetHubDicleRuntimeDynamicParamsIssuanceParameters; + AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey: AssetHubDicleRuntimeDynamicParamsIssuanceParametersKey; + AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue: AssetHubDicleRuntimeDynamicParamsIssuanceParametersValue; + AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight: AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnIdleWeight; + AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight: AssetHubDicleRuntimeDynamicParamsMessageQueueMaxOnInitWeight; + AssetHubDicleRuntimeDynamicParamsMessageQueueParameters: AssetHubDicleRuntimeDynamicParamsMessageQueueParameters; + AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey: AssetHubDicleRuntimeDynamicParamsMessageQueueParametersKey; + AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue: AssetHubDicleRuntimeDynamicParamsMessageQueueParametersValue; + AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock: AssetHubDicleRuntimeDynamicParamsSchedulerMaxScheduledPerBlock; + AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight: AssetHubDicleRuntimeDynamicParamsSchedulerMaximumWeight; + AssetHubDicleRuntimeDynamicParamsSchedulerParameters: AssetHubDicleRuntimeDynamicParamsSchedulerParameters; + AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey: AssetHubDicleRuntimeDynamicParamsSchedulerParametersKey; + AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue: AssetHubDicleRuntimeDynamicParamsSchedulerParametersValue; + AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters: AssetHubDicleRuntimeDynamicParamsStakingElectionMaxElectingVoters; + AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration: AssetHubDicleRuntimeDynamicParamsStakingElectionMaxEraDuration; + AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions: AssetHubDicleRuntimeDynamicParamsStakingElectionMaxSignedSubmissions; + AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages: AssetHubDicleRuntimeDynamicParamsStakingElectionMinerPages; + AssetHubDicleRuntimeDynamicParamsStakingElectionParameters: AssetHubDicleRuntimeDynamicParamsStakingElectionParameters; + AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey: AssetHubDicleRuntimeDynamicParamsStakingElectionParametersKey; + AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue: AssetHubDicleRuntimeDynamicParamsStakingElectionParametersValue; + AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase: AssetHubDicleRuntimeDynamicParamsStakingElectionSignedPhase; + AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock: AssetHubDicleRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock; + AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase: AssetHubDicleRuntimeDynamicParamsStakingElectionUnsignedPhase; + AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination: AssetHubDicleRuntimeDynamicParamsTreasuryBurnDestination; + AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion: AssetHubDicleRuntimeDynamicParamsTreasuryBurnPortion; + AssetHubDicleRuntimeDynamicParamsTreasuryParameters: AssetHubDicleRuntimeDynamicParamsTreasuryParameters; + AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey: AssetHubDicleRuntimeDynamicParamsTreasuryParametersKey; + AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue: AssetHubDicleRuntimeDynamicParamsTreasuryParametersValue; + AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: AssetHubDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + AssetHubDicleRuntimeOriginCaller: AssetHubDicleRuntimeOriginCaller; + AssetHubDicleRuntimeProxyType: AssetHubDicleRuntimeProxyType; + AssetHubDicleRuntimeRuntime: AssetHubDicleRuntimeRuntime; + AssetHubDicleRuntimeRuntimeError: AssetHubDicleRuntimeRuntimeError; + AssetHubDicleRuntimeRuntimeFreezeReason: AssetHubDicleRuntimeRuntimeFreezeReason; + AssetHubDicleRuntimeRuntimeHoldReason: AssetHubDicleRuntimeRuntimeHoldReason; + AssetHubDicleRuntimeRuntimeParameters: AssetHubDicleRuntimeRuntimeParameters; + AssetHubDicleRuntimeRuntimeParametersKey: AssetHubDicleRuntimeRuntimeParametersKey; + AssetHubDicleRuntimeRuntimeParametersValue: AssetHubDicleRuntimeRuntimeParametersValue; + AssetHubDicleRuntimeRuntimeTask: AssetHubDicleRuntimeRuntimeTask; + AssetHubDicleRuntimeSessionKeys: AssetHubDicleRuntimeSessionKeys; + AssetHubDicleRuntimeStakingNposCompactSolution24: AssetHubDicleRuntimeStakingNposCompactSolution24; + AssetHubDicleRuntimeTreasuryBurnDestinationAccount: AssetHubDicleRuntimeTreasuryBurnDestinationAccount; + PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType: PezpalletProxyProxyDefinitionAssetHubDicleRuntimeProxyType; + PezpalletProxyProxyDefinitionDicleRuntimeConstantsProxyProxyType: PezpalletProxyProxyDefinitionDicleRuntimeConstantsProxyProxyType; + PezpalletRcMigratorRecoveryPortableActiveRecovery: PezpalletRcMigratorRecoveryPortableActiveRecovery; + PezpalletRcMigratorRecoveryPortableRecoveryConfig: PezpalletRcMigratorRecoveryPortableRecoveryConfig; + PezpalletRcMigratorRecoveryPortableRecoveryFriends: PezpalletRcMigratorRecoveryPortableRecoveryFriends; + PezpalletRcMigratorRecoveryPortableRecoveryMessage: PezpalletRcMigratorRecoveryPortableRecoveryMessage; + PezpalletRcMigratorSocietyPortableBid: PezpalletRcMigratorSocietyPortableBid; + PezpalletRcMigratorSocietyPortableBidKind: PezpalletRcMigratorSocietyPortableBidKind; + PezpalletRcMigratorSocietyPortableCandidacy: PezpalletRcMigratorSocietyPortableCandidacy; + PezpalletRcMigratorSocietyPortableGroupParams: PezpalletRcMigratorSocietyPortableGroupParams; + PezpalletRcMigratorSocietyPortableIntakeRecord: PezpalletRcMigratorSocietyPortableIntakeRecord; + PezpalletRcMigratorSocietyPortableMemberRecord: PezpalletRcMigratorSocietyPortableMemberRecord; + PezpalletRcMigratorSocietyPortablePayoutRecord: PezpalletRcMigratorSocietyPortablePayoutRecord; + PezpalletRcMigratorSocietyPortableSocietyMessage: PezpalletRcMigratorSocietyPortableSocietyMessage; + PezpalletRcMigratorSocietyPortableTally: PezpalletRcMigratorSocietyPortableTally; + PezpalletRcMigratorSocietyPortableVote: PezpalletRcMigratorSocietyPortableVote; + PezpalletRcMigratorSocietyPortableVouchingStatus: PezpalletRcMigratorSocietyPortableVouchingStatus; + PezpalletRcMigratorSocietySocietyValues: PezpalletRcMigratorSocietySocietyValues; + PezpalletRemoteProxyCall: PezpalletRemoteProxyCall; + PezpalletRemoteProxyError: PezpalletRemoteProxyError; + PezpalletRemoteProxyRemoteProxyProof: PezpalletRemoteProxyRemoteProxyProof; + PezpalletReviveEvmApiDebugRpcTypesPrestateTrace: PezpalletReviveEvmApiDebugRpcTypesPrestateTrace; + PezpalletReviveEvmApiDebugRpcTypesPrestateTraceInfo: PezpalletReviveEvmApiDebugRpcTypesPrestateTraceInfo; + PezpalletReviveEvmApiDebugRpcTypesPrestateTracerConfig: PezpalletReviveEvmApiDebugRpcTypesPrestateTracerConfig; + PezpalletReviveStorageAccountInfo: PezpalletReviveStorageAccountInfo; + PezpalletReviveStorageAccountType: PezpalletReviveStorageAccountType; + PezpalletReviveVmCodeInfo: PezpalletReviveVmCodeInfo; + PezspConsensusAuraSr25519AppSr25519Public: PezspConsensusAuraSr25519AppSr25519Public; + } // InterfaceTypes +} // declare module diff --git a/packages/types-augment/src/registry/assetHubPezkuwi.ts b/packages/types-augment/src/registry/assetHubPezkuwi.ts new file mode 100644 index 0000000..9695747 --- /dev/null +++ b/packages/types-augment/src/registry/assetHubPezkuwi.ts @@ -0,0 +1,207 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +import type { AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin, AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight, AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight, AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters, AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey, AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue, AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock, AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight, AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters, AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey, AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock, AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase, AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin, AssetHubPezkuwiRuntimeOriginCaller, AssetHubPezkuwiRuntimeProxyType, AssetHubPezkuwiRuntimeRuntime, AssetHubPezkuwiRuntimeRuntimeError, AssetHubPezkuwiRuntimeRuntimeFreezeReason, AssetHubPezkuwiRuntimeRuntimeHoldReason, AssetHubPezkuwiRuntimeRuntimeParameters, AssetHubPezkuwiRuntimeRuntimeParametersKey, AssetHubPezkuwiRuntimeRuntimeParametersValue, AssetHubPezkuwiRuntimeRuntimeTask, AssetHubPezkuwiRuntimeSessionKeys, AssetHubPezkuwiRuntimeStakingNposCompactSolution16, AssetsCommonRuntimeApiFungiblesAccessError, BpXcmBridgeHubRouterBridgeState, PezcumulusPezpalletTeyrchainSystemCall, PezcumulusPezpalletTeyrchainSystemError, PezcumulusPezpalletTeyrchainSystemEvent, PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot, PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId, PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentHrmpChannelUpdate, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker, PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth, PezcumulusPezpalletXcmCall, PezcumulusPezpalletXcmEvent, PezcumulusPezpalletXcmOrigin, PezcumulusPezpalletXcmpQueueCall, PezcumulusPezpalletXcmpQueueError, PezcumulusPezpalletXcmpQueueEvent, PezcumulusPezpalletXcmpQueueOutboundChannelDetails, PezcumulusPezpalletXcmpQueueOutboundState, PezcumulusPezpalletXcmpQueueQueueConfigData, PezcumulusPrimitivesCoreAggregateMessageOrigin, PezcumulusPrimitivesCoreCollationInfo, PezcumulusPrimitivesTeyrchainInherentHashedMessage, PezframeSupportTokensMiscIdAmountPortableFreezeReason, PezframeSupportTokensMiscIdAmountPortableHoldReason, PezkuwiPrimitivesV8AbridgedHostConfiguration, PezkuwiPrimitivesV8AbridgedHrmpChannel, PezpalletAhMigratorBalancesBefore, PezpalletAhMigratorCall, PezpalletAhMigratorError, PezpalletAhMigratorEvent, PezpalletAhMigratorMigrationStage, PezpalletAhMigratorPezpalletEventName, PezpalletAhOpsCall, PezpalletAhOpsError, PezpalletAhOpsEvent, PezpalletCollatorSelectionCall, PezpalletCollatorSelectionCandidateInfo, PezpalletCollatorSelectionError, PezpalletCollatorSelectionEvent, PezpalletElectionProviderMultiBlockAdminOperation, PezpalletElectionProviderMultiBlockCall, PezpalletElectionProviderMultiBlockError, PezpalletElectionProviderMultiBlockEvent, PezpalletElectionProviderMultiBlockPagedRawSolution, PezpalletElectionProviderMultiBlockPhase, PezpalletElectionProviderMultiBlockSignedPezpalletCall, PezpalletElectionProviderMultiBlockSignedPezpalletError, PezpalletElectionProviderMultiBlockSignedPezpalletEvent, PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason, PezpalletElectionProviderMultiBlockSignedSubmissionMetadata, PezpalletElectionProviderMultiBlockUnsignedPezpalletCall, PezpalletElectionProviderMultiBlockVerifierFeasibilityError, PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings, PezpalletElectionProviderMultiBlockVerifierImplsPezpalletCall, PezpalletElectionProviderMultiBlockVerifierImplsPezpalletEvent, PezpalletElectionProviderMultiBlockVerifierImplsStatus, PezpalletElectionProviderMultiBlockVerifierImplsValidSolution, PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType, PezpalletProxyProxyDefinitionPezkuwiRuntimeConstantsProxyProxyType, PezpalletRcMigratorAccountsAccount, PezpalletRcMigratorBountiesAliasBounty, PezpalletRcMigratorBountiesRcBountiesMessage, PezpalletRcMigratorChildBountiesPortableChildBountiesMessage, PezpalletRcMigratorChildBountiesPortableChildBounty, PezpalletRcMigratorChildBountiesPortableChildBountyStatus, PezpalletRcMigratorClaimsRcClaimsMessage, PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage, PezpalletRcMigratorCrowdloanRcCrowdloanMessage, PezpalletRcMigratorIndicesRcIndicesIndex, PezpalletRcMigratorMigrationFinishedData, PezpalletRcMigratorMultisigRcMultisig, PezpalletRcMigratorPortableFreezeReason, PezpalletRcMigratorPortableHoldReason, PezpalletRcMigratorPreimageChunksRcPreimageChunk, PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus, PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus, PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner, PezpalletRcMigratorProxyRcProxy, PezpalletRcMigratorProxyRcProxyAnnouncement, PezpalletRcMigratorReferendaReferendaMessage, PezpalletRcMigratorSchedulerAliasScheduled, PezpalletRcMigratorSchedulerRcSchedulerMessage, PezpalletRcMigratorSchedulerSchedulerAgendaMessage, PezpalletRcMigratorStakingBagsListPortableBag, PezpalletRcMigratorStakingBagsListPortableBagsListMessage, PezpalletRcMigratorStakingBagsListPortableNode, PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage, PezpalletRcMigratorStakingMessagePortableActiveEraInfo, PezpalletRcMigratorStakingMessagePortableEraRewardPoints, PezpalletRcMigratorStakingMessagePortableExposurePage, PezpalletRcMigratorStakingMessagePortableForcing, PezpalletRcMigratorStakingMessagePortableIndividualExposure, PezpalletRcMigratorStakingMessagePortableNominations, PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata, PezpalletRcMigratorStakingMessagePortableRewardDestination, PezpalletRcMigratorStakingMessagePortableStakingLedger, PezpalletRcMigratorStakingMessagePortableStakingMessage, PezpalletRcMigratorStakingMessagePortableUnappliedSlash, PezpalletRcMigratorStakingMessagePortableUnlockChunk, PezpalletRcMigratorStakingMessagePortableValidatorPrefs, PezpalletRcMigratorStakingMessageStakingValues, PezpalletRcMigratorStakingNomPoolsAliasRewardPool, PezpalletRcMigratorStakingNomPoolsAliasSubPools, PezpalletRcMigratorStakingNomPoolsAliasUnbondPool, PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues, PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage, PezpalletRcMigratorTreasuryPortablePaymentState, PezpalletRcMigratorTreasuryPortableSpendStatus, PezpalletRcMigratorTreasuryPortableTreasuryMessage, PezpalletRcMigratorVestingRcVestingSchedule, PezpalletReferendaReferendumInfoOriginCaller, PezpalletReferendaReferendumInfoRcPalletsOrigin, PezpalletReferendaReferendumStatusOriginCaller, PezpalletReferendaReferendumStatusRcPalletsOrigin, PezpalletStakingAsyncActiveEraInfo, PezpalletStakingAsyncEraRewardPoints, PezpalletStakingAsyncForcing, PezpalletStakingAsyncLedgerStakingLedger, PezpalletStakingAsyncLedgerUnlockChunk, PezpalletStakingAsyncNominations, PezpalletStakingAsyncPezpalletBoundedExposurePage, PezpalletStakingAsyncPezpalletCall, PezpalletStakingAsyncPezpalletConfigOpPerbill, PezpalletStakingAsyncPezpalletConfigOpPercent, PezpalletStakingAsyncPezpalletConfigOpU128, PezpalletStakingAsyncPezpalletConfigOpU32, PezpalletStakingAsyncPezpalletError, PezpalletStakingAsyncPezpalletEvent, PezpalletStakingAsyncPezpalletHoldReason, PezpalletStakingAsyncPezpalletPruningStep, PezpalletStakingAsyncPezpalletUnexpectedKind, PezpalletStakingAsyncRcClientCall, PezpalletStakingAsyncRcClientEvent, PezpalletStakingAsyncRcClientUnexpectedKind, PezpalletStakingAsyncRewardDestination, PezpalletStakingAsyncSlashingOffenceRecord, PezpalletStakingAsyncSnapshotStatus, PezpalletStakingAsyncUnappliedSlash, PezpalletStakingAsyncValidatorPrefs, PezpalletXcmBridgeHubRouterCall, PezpalletXcmBridgeHubRouterEvent, PezspConsensusAuraEd25519AppEd25519Public, PezspNposElectionsError, PezspTrieStorageProof, SnowbridgeCoreAssetMetadata, SnowbridgeCoreOperatingModeBasicOperatingMode, SnowbridgeCoreRewardMessageId, SnowbridgePezpalletSystemFrontendCall, SnowbridgePezpalletSystemFrontendError, SnowbridgePezpalletSystemFrontendEvent, StagingTeyrchainInfoCall, TeyrchainsCommonPayVersionedLocatableAccount, XcmRuntimeApisAuthorizedAliasesError, XcmRuntimeApisTrustedQueryError, XcmVersionedAsset } from '@pezkuwi/types/lookup'; + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin: AssetHubPezkuwiRuntimeAhMigrationRcPalletsOrigin; + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnIdleWeight; + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueMaxOnInitWeight; + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParameters; + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersKey; + AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue: AssetHubPezkuwiRuntimeDynamicParamsMessageQueueParametersValue; + AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock: AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaxScheduledPerBlock; + AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight: AssetHubPezkuwiRuntimeDynamicParamsSchedulerMaximumWeight; + AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters: AssetHubPezkuwiRuntimeDynamicParamsSchedulerParameters; + AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey: AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersKey; + AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue: AssetHubPezkuwiRuntimeDynamicParamsSchedulerParametersValue; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxElectingVoters; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxEraDuration; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMaxSignedSubmissions; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionMinerPages; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParameters; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersKey; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionParametersValue; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionSignedPhase; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionTargetSnapshotPerBlock; + AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase: AssetHubPezkuwiRuntimeDynamicParamsStakingElectionUnsignedPhase; + AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: AssetHubPezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + AssetHubPezkuwiRuntimeOriginCaller: AssetHubPezkuwiRuntimeOriginCaller; + AssetHubPezkuwiRuntimeProxyType: AssetHubPezkuwiRuntimeProxyType; + AssetHubPezkuwiRuntimeRuntime: AssetHubPezkuwiRuntimeRuntime; + AssetHubPezkuwiRuntimeRuntimeError: AssetHubPezkuwiRuntimeRuntimeError; + AssetHubPezkuwiRuntimeRuntimeFreezeReason: AssetHubPezkuwiRuntimeRuntimeFreezeReason; + AssetHubPezkuwiRuntimeRuntimeHoldReason: AssetHubPezkuwiRuntimeRuntimeHoldReason; + AssetHubPezkuwiRuntimeRuntimeParameters: AssetHubPezkuwiRuntimeRuntimeParameters; + AssetHubPezkuwiRuntimeRuntimeParametersKey: AssetHubPezkuwiRuntimeRuntimeParametersKey; + AssetHubPezkuwiRuntimeRuntimeParametersValue: AssetHubPezkuwiRuntimeRuntimeParametersValue; + AssetHubPezkuwiRuntimeRuntimeTask: AssetHubPezkuwiRuntimeRuntimeTask; + AssetHubPezkuwiRuntimeSessionKeys: AssetHubPezkuwiRuntimeSessionKeys; + AssetHubPezkuwiRuntimeStakingNposCompactSolution16: AssetHubPezkuwiRuntimeStakingNposCompactSolution16; + AssetsCommonRuntimeApiFungiblesAccessError: AssetsCommonRuntimeApiFungiblesAccessError; + BpXcmBridgeHubRouterBridgeState: BpXcmBridgeHubRouterBridgeState; + PezcumulusPezpalletTeyrchainSystemCall: PezcumulusPezpalletTeyrchainSystemCall; + PezcumulusPezpalletTeyrchainSystemError: PezcumulusPezpalletTeyrchainSystemError; + PezcumulusPezpalletTeyrchainSystemEvent: PezcumulusPezpalletTeyrchainSystemEvent; + PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot: PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotMessagingStateSnapshot; + PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity: PezcumulusPezpalletTeyrchainSystemRelayStateSnapshotRelayDispatchQueueRemainingCapacity; + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentAbridgedInboundMessagesCollection; + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentBasicTeyrchainInherentData; + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessageId; + PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData: PezcumulusPezpalletTeyrchainSystemTeyrchainInherentInboundMessagesData; + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor: PezcumulusPezpalletTeyrchainSystemUnincludedSegmentAncestor; + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentHrmpChannelUpdate: PezcumulusPezpalletTeyrchainSystemUnincludedSegmentHrmpChannelUpdate; + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker: PezcumulusPezpalletTeyrchainSystemUnincludedSegmentSegmentTracker; + PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth: PezcumulusPezpalletTeyrchainSystemUnincludedSegmentUsedBandwidth; + PezcumulusPezpalletXcmCall: PezcumulusPezpalletXcmCall; + PezcumulusPezpalletXcmEvent: PezcumulusPezpalletXcmEvent; + PezcumulusPezpalletXcmOrigin: PezcumulusPezpalletXcmOrigin; + PezcumulusPezpalletXcmpQueueCall: PezcumulusPezpalletXcmpQueueCall; + PezcumulusPezpalletXcmpQueueError: PezcumulusPezpalletXcmpQueueError; + PezcumulusPezpalletXcmpQueueEvent: PezcumulusPezpalletXcmpQueueEvent; + PezcumulusPezpalletXcmpQueueOutboundChannelDetails: PezcumulusPezpalletXcmpQueueOutboundChannelDetails; + PezcumulusPezpalletXcmpQueueOutboundState: PezcumulusPezpalletXcmpQueueOutboundState; + PezcumulusPezpalletXcmpQueueQueueConfigData: PezcumulusPezpalletXcmpQueueQueueConfigData; + PezcumulusPrimitivesCoreAggregateMessageOrigin: PezcumulusPrimitivesCoreAggregateMessageOrigin; + PezcumulusPrimitivesCoreCollationInfo: PezcumulusPrimitivesCoreCollationInfo; + PezcumulusPrimitivesTeyrchainInherentHashedMessage: PezcumulusPrimitivesTeyrchainInherentHashedMessage; + PezframeSupportTokensMiscIdAmountPortableFreezeReason: PezframeSupportTokensMiscIdAmountPortableFreezeReason; + PezframeSupportTokensMiscIdAmountPortableHoldReason: PezframeSupportTokensMiscIdAmountPortableHoldReason; + PezkuwiPrimitivesV8AbridgedHostConfiguration: PezkuwiPrimitivesV8AbridgedHostConfiguration; + PezkuwiPrimitivesV8AbridgedHrmpChannel: PezkuwiPrimitivesV8AbridgedHrmpChannel; + PezpalletAhMigratorBalancesBefore: PezpalletAhMigratorBalancesBefore; + PezpalletAhMigratorCall: PezpalletAhMigratorCall; + PezpalletAhMigratorError: PezpalletAhMigratorError; + PezpalletAhMigratorEvent: PezpalletAhMigratorEvent; + PezpalletAhMigratorMigrationStage: PezpalletAhMigratorMigrationStage; + PezpalletAhMigratorPezpalletEventName: PezpalletAhMigratorPezpalletEventName; + PezpalletAhOpsCall: PezpalletAhOpsCall; + PezpalletAhOpsError: PezpalletAhOpsError; + PezpalletAhOpsEvent: PezpalletAhOpsEvent; + PezpalletCollatorSelectionCall: PezpalletCollatorSelectionCall; + PezpalletCollatorSelectionCandidateInfo: PezpalletCollatorSelectionCandidateInfo; + PezpalletCollatorSelectionError: PezpalletCollatorSelectionError; + PezpalletCollatorSelectionEvent: PezpalletCollatorSelectionEvent; + PezpalletElectionProviderMultiBlockAdminOperation: PezpalletElectionProviderMultiBlockAdminOperation; + PezpalletElectionProviderMultiBlockCall: PezpalletElectionProviderMultiBlockCall; + PezpalletElectionProviderMultiBlockError: PezpalletElectionProviderMultiBlockError; + PezpalletElectionProviderMultiBlockEvent: PezpalletElectionProviderMultiBlockEvent; + PezpalletElectionProviderMultiBlockPagedRawSolution: PezpalletElectionProviderMultiBlockPagedRawSolution; + PezpalletElectionProviderMultiBlockPhase: PezpalletElectionProviderMultiBlockPhase; + PezpalletElectionProviderMultiBlockSignedPezpalletCall: PezpalletElectionProviderMultiBlockSignedPezpalletCall; + PezpalletElectionProviderMultiBlockSignedPezpalletError: PezpalletElectionProviderMultiBlockSignedPezpalletError; + PezpalletElectionProviderMultiBlockSignedPezpalletEvent: PezpalletElectionProviderMultiBlockSignedPezpalletEvent; + PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason: PezpalletElectionProviderMultiBlockSignedPezpalletHoldReason; + PezpalletElectionProviderMultiBlockSignedSubmissionMetadata: PezpalletElectionProviderMultiBlockSignedSubmissionMetadata; + PezpalletElectionProviderMultiBlockUnsignedPezpalletCall: PezpalletElectionProviderMultiBlockUnsignedPezpalletCall; + PezpalletElectionProviderMultiBlockVerifierFeasibilityError: PezpalletElectionProviderMultiBlockVerifierFeasibilityError; + PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings: PezpalletElectionProviderMultiBlockVerifierImplsPartialBackings; + PezpalletElectionProviderMultiBlockVerifierImplsPezpalletCall: PezpalletElectionProviderMultiBlockVerifierImplsPezpalletCall; + PezpalletElectionProviderMultiBlockVerifierImplsPezpalletEvent: PezpalletElectionProviderMultiBlockVerifierImplsPezpalletEvent; + PezpalletElectionProviderMultiBlockVerifierImplsStatus: PezpalletElectionProviderMultiBlockVerifierImplsStatus; + PezpalletElectionProviderMultiBlockVerifierImplsValidSolution: PezpalletElectionProviderMultiBlockVerifierImplsValidSolution; + PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType: PezpalletProxyProxyDefinitionAssetHubPezkuwiRuntimeProxyType; + PezpalletProxyProxyDefinitionPezkuwiRuntimeConstantsProxyProxyType: PezpalletProxyProxyDefinitionPezkuwiRuntimeConstantsProxyProxyType; + PezpalletRcMigratorAccountsAccount: PezpalletRcMigratorAccountsAccount; + PezpalletRcMigratorBountiesAliasBounty: PezpalletRcMigratorBountiesAliasBounty; + PezpalletRcMigratorBountiesRcBountiesMessage: PezpalletRcMigratorBountiesRcBountiesMessage; + PezpalletRcMigratorChildBountiesPortableChildBountiesMessage: PezpalletRcMigratorChildBountiesPortableChildBountiesMessage; + PezpalletRcMigratorChildBountiesPortableChildBounty: PezpalletRcMigratorChildBountiesPortableChildBounty; + PezpalletRcMigratorChildBountiesPortableChildBountyStatus: PezpalletRcMigratorChildBountiesPortableChildBountyStatus; + PezpalletRcMigratorClaimsRcClaimsMessage: PezpalletRcMigratorClaimsRcClaimsMessage; + PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage: PezpalletRcMigratorConvictionVotingRcConvictionVotingMessage; + PezpalletRcMigratorCrowdloanRcCrowdloanMessage: PezpalletRcMigratorCrowdloanRcCrowdloanMessage; + PezpalletRcMigratorIndicesRcIndicesIndex: PezpalletRcMigratorIndicesRcIndicesIndex; + PezpalletRcMigratorMigrationFinishedData: PezpalletRcMigratorMigrationFinishedData; + PezpalletRcMigratorMultisigRcMultisig: PezpalletRcMigratorMultisigRcMultisig; + PezpalletRcMigratorPortableFreezeReason: PezpalletRcMigratorPortableFreezeReason; + PezpalletRcMigratorPortableHoldReason: PezpalletRcMigratorPortableHoldReason; + PezpalletRcMigratorPreimageChunksRcPreimageChunk: PezpalletRcMigratorPreimageChunksRcPreimageChunk; + PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus: PezpalletRcMigratorPreimageLegacyRequestStatusRcPreimageLegacyStatus; + PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus: PezpalletRcMigratorPreimageRequestStatusPortableRequestStatus; + PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner: PezpalletRcMigratorPreimageRequestStatusPortableRequestStatusInner; + PezpalletRcMigratorProxyRcProxy: PezpalletRcMigratorProxyRcProxy; + PezpalletRcMigratorProxyRcProxyAnnouncement: PezpalletRcMigratorProxyRcProxyAnnouncement; + PezpalletRcMigratorReferendaReferendaMessage: PezpalletRcMigratorReferendaReferendaMessage; + PezpalletRcMigratorSchedulerAliasScheduled: PezpalletRcMigratorSchedulerAliasScheduled; + PezpalletRcMigratorSchedulerRcSchedulerMessage: PezpalletRcMigratorSchedulerRcSchedulerMessage; + PezpalletRcMigratorSchedulerSchedulerAgendaMessage: PezpalletRcMigratorSchedulerSchedulerAgendaMessage; + PezpalletRcMigratorStakingBagsListPortableBag: PezpalletRcMigratorStakingBagsListPortableBag; + PezpalletRcMigratorStakingBagsListPortableBagsListMessage: PezpalletRcMigratorStakingBagsListPortableBagsListMessage; + PezpalletRcMigratorStakingBagsListPortableNode: PezpalletRcMigratorStakingBagsListPortableNode; + PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage: PezpalletRcMigratorStakingDelegatedStakingPortableDelegatedStakingMessage; + PezpalletRcMigratorStakingMessagePortableActiveEraInfo: PezpalletRcMigratorStakingMessagePortableActiveEraInfo; + PezpalletRcMigratorStakingMessagePortableEraRewardPoints: PezpalletRcMigratorStakingMessagePortableEraRewardPoints; + PezpalletRcMigratorStakingMessagePortableExposurePage: PezpalletRcMigratorStakingMessagePortableExposurePage; + PezpalletRcMigratorStakingMessagePortableForcing: PezpalletRcMigratorStakingMessagePortableForcing; + PezpalletRcMigratorStakingMessagePortableIndividualExposure: PezpalletRcMigratorStakingMessagePortableIndividualExposure; + PezpalletRcMigratorStakingMessagePortableNominations: PezpalletRcMigratorStakingMessagePortableNominations; + PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata: PezpalletRcMigratorStakingMessagePortablePagedExposureMetadata; + PezpalletRcMigratorStakingMessagePortableRewardDestination: PezpalletRcMigratorStakingMessagePortableRewardDestination; + PezpalletRcMigratorStakingMessagePortableStakingLedger: PezpalletRcMigratorStakingMessagePortableStakingLedger; + PezpalletRcMigratorStakingMessagePortableStakingMessage: PezpalletRcMigratorStakingMessagePortableStakingMessage; + PezpalletRcMigratorStakingMessagePortableUnappliedSlash: PezpalletRcMigratorStakingMessagePortableUnappliedSlash; + PezpalletRcMigratorStakingMessagePortableUnlockChunk: PezpalletRcMigratorStakingMessagePortableUnlockChunk; + PezpalletRcMigratorStakingMessagePortableValidatorPrefs: PezpalletRcMigratorStakingMessagePortableValidatorPrefs; + PezpalletRcMigratorStakingMessageStakingValues: PezpalletRcMigratorStakingMessageStakingValues; + PezpalletRcMigratorStakingNomPoolsAliasRewardPool: PezpalletRcMigratorStakingNomPoolsAliasRewardPool; + PezpalletRcMigratorStakingNomPoolsAliasSubPools: PezpalletRcMigratorStakingNomPoolsAliasSubPools; + PezpalletRcMigratorStakingNomPoolsAliasUnbondPool: PezpalletRcMigratorStakingNomPoolsAliasUnbondPool; + PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues: PezpalletRcMigratorStakingNomPoolsNomPoolsStorageValues; + PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage: PezpalletRcMigratorStakingNomPoolsRcNomPoolsMessage; + PezpalletRcMigratorTreasuryPortablePaymentState: PezpalletRcMigratorTreasuryPortablePaymentState; + PezpalletRcMigratorTreasuryPortableSpendStatus: PezpalletRcMigratorTreasuryPortableSpendStatus; + PezpalletRcMigratorTreasuryPortableTreasuryMessage: PezpalletRcMigratorTreasuryPortableTreasuryMessage; + PezpalletRcMigratorVestingRcVestingSchedule: PezpalletRcMigratorVestingRcVestingSchedule; + PezpalletReferendaReferendumInfoOriginCaller: PezpalletReferendaReferendumInfoOriginCaller; + PezpalletReferendaReferendumInfoRcPalletsOrigin: PezpalletReferendaReferendumInfoRcPalletsOrigin; + PezpalletReferendaReferendumStatusOriginCaller: PezpalletReferendaReferendumStatusOriginCaller; + PezpalletReferendaReferendumStatusRcPalletsOrigin: PezpalletReferendaReferendumStatusRcPalletsOrigin; + PezpalletStakingAsyncActiveEraInfo: PezpalletStakingAsyncActiveEraInfo; + PezpalletStakingAsyncEraRewardPoints: PezpalletStakingAsyncEraRewardPoints; + PezpalletStakingAsyncForcing: PezpalletStakingAsyncForcing; + PezpalletStakingAsyncLedgerStakingLedger: PezpalletStakingAsyncLedgerStakingLedger; + PezpalletStakingAsyncLedgerUnlockChunk: PezpalletStakingAsyncLedgerUnlockChunk; + PezpalletStakingAsyncNominations: PezpalletStakingAsyncNominations; + PezpalletStakingAsyncPezpalletBoundedExposurePage: PezpalletStakingAsyncPezpalletBoundedExposurePage; + PezpalletStakingAsyncPezpalletCall: PezpalletStakingAsyncPezpalletCall; + PezpalletStakingAsyncPezpalletConfigOpPerbill: PezpalletStakingAsyncPezpalletConfigOpPerbill; + PezpalletStakingAsyncPezpalletConfigOpPercent: PezpalletStakingAsyncPezpalletConfigOpPercent; + PezpalletStakingAsyncPezpalletConfigOpU128: PezpalletStakingAsyncPezpalletConfigOpU128; + PezpalletStakingAsyncPezpalletConfigOpU32: PezpalletStakingAsyncPezpalletConfigOpU32; + PezpalletStakingAsyncPezpalletError: PezpalletStakingAsyncPezpalletError; + PezpalletStakingAsyncPezpalletEvent: PezpalletStakingAsyncPezpalletEvent; + PezpalletStakingAsyncPezpalletHoldReason: PezpalletStakingAsyncPezpalletHoldReason; + PezpalletStakingAsyncPezpalletPruningStep: PezpalletStakingAsyncPezpalletPruningStep; + PezpalletStakingAsyncPezpalletUnexpectedKind: PezpalletStakingAsyncPezpalletUnexpectedKind; + PezpalletStakingAsyncRcClientCall: PezpalletStakingAsyncRcClientCall; + PezpalletStakingAsyncRcClientEvent: PezpalletStakingAsyncRcClientEvent; + PezpalletStakingAsyncRcClientUnexpectedKind: PezpalletStakingAsyncRcClientUnexpectedKind; + PezpalletStakingAsyncRewardDestination: PezpalletStakingAsyncRewardDestination; + PezpalletStakingAsyncSlashingOffenceRecord: PezpalletStakingAsyncSlashingOffenceRecord; + PezpalletStakingAsyncSnapshotStatus: PezpalletStakingAsyncSnapshotStatus; + PezpalletStakingAsyncUnappliedSlash: PezpalletStakingAsyncUnappliedSlash; + PezpalletStakingAsyncValidatorPrefs: PezpalletStakingAsyncValidatorPrefs; + PezpalletXcmBridgeHubRouterCall: PezpalletXcmBridgeHubRouterCall; + PezpalletXcmBridgeHubRouterEvent: PezpalletXcmBridgeHubRouterEvent; + PezspConsensusAuraEd25519AppEd25519Public: PezspConsensusAuraEd25519AppEd25519Public; + PezspNposElectionsError: PezspNposElectionsError; + PezspTrieStorageProof: PezspTrieStorageProof; + SnowbridgeCoreAssetMetadata: SnowbridgeCoreAssetMetadata; + SnowbridgeCoreOperatingModeBasicOperatingMode: SnowbridgeCoreOperatingModeBasicOperatingMode; + SnowbridgeCoreRewardMessageId: SnowbridgeCoreRewardMessageId; + SnowbridgePezpalletSystemFrontendCall: SnowbridgePezpalletSystemFrontendCall; + SnowbridgePezpalletSystemFrontendError: SnowbridgePezpalletSystemFrontendError; + SnowbridgePezpalletSystemFrontendEvent: SnowbridgePezpalletSystemFrontendEvent; + StagingTeyrchainInfoCall: StagingTeyrchainInfoCall; + TeyrchainsCommonPayVersionedLocatableAccount: TeyrchainsCommonPayVersionedLocatableAccount; + XcmRuntimeApisAuthorizedAliasesError: XcmRuntimeApisAuthorizedAliasesError; + XcmRuntimeApisTrustedQueryError: XcmRuntimeApisTrustedQueryError; + XcmVersionedAsset: XcmVersionedAsset; + } // InterfaceTypes +} // declare module diff --git a/packages/types-augment/src/registry/bizinikiwi.ts b/packages/types-augment/src/registry/bizinikiwi.ts new file mode 100644 index 0000000..8ea8be7 --- /dev/null +++ b/packages/types-augment/src/registry/bizinikiwi.ts @@ -0,0 +1,632 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +import type { FinalityGrandpaEquivocationPrecommit, FinalityGrandpaEquivocationPrevote, FinalityGrandpaPrecommit, FinalityGrandpaPrevote, KitchensinkRuntimeDynamicParamsReferendaOrigins, KitchensinkRuntimeDynamicParamsReferendaParameters, KitchensinkRuntimeDynamicParamsReferendaParametersKey, KitchensinkRuntimeDynamicParamsReferendaParametersValue, KitchensinkRuntimeDynamicParamsReferendaTracks, KitchensinkRuntimeDynamicParamsStorageBaseDeposit, KitchensinkRuntimeDynamicParamsStorageByteDeposit, KitchensinkRuntimeDynamicParamsStorageParameters, KitchensinkRuntimeDynamicParamsStorageParametersKey, KitchensinkRuntimeDynamicParamsStorageParametersValue, KitchensinkRuntimeNposSolution16, KitchensinkRuntimeOriginCaller, KitchensinkRuntimeProxyType, KitchensinkRuntimeRuntime, KitchensinkRuntimeRuntimeError, KitchensinkRuntimeRuntimeFreezeReason, KitchensinkRuntimeRuntimeHoldReason, KitchensinkRuntimeRuntimeParameters, KitchensinkRuntimeRuntimeParametersKey, KitchensinkRuntimeRuntimeParametersValue, KitchensinkRuntimeSessionKeys, PezframeBenchmarkingPezpalletPovCall, PezframeBenchmarkingPezpalletPovEvent, PezframeMetadataHashExtensionCheckMetadataHash, PezframeMetadataHashExtensionMode, PezframeSupportDispatchDispatchClass, PezframeSupportDispatchPays, PezframeSupportDispatchPerDispatchClassU32, PezframeSupportDispatchPerDispatchClassWeight, PezframeSupportDispatchPerDispatchClassWeightsPerClass, PezframeSupportDispatchPostDispatchInfo, PezframeSupportDispatchRawOrigin, PezframeSupportMessagesProcessMessageError, PezframeSupportPezpalletId, PezframeSupportPreimagesBounded, PezframeSupportScheduleDispatchTime, PezframeSupportTokensFungibleUnionOfNativeOrWithId, PezframeSupportTokensMiscBalanceStatus, PezframeSupportTokensMiscIdAmountRuntimeFreezeReason, PezframeSupportTokensMiscIdAmountRuntimeHoldReason, PezframeSupportViewFunctionsViewFunctionDispatchError, PezframeSupportViewFunctionsViewFunctionId, PezframeSystemAccountInfo, PezframeSystemCall, PezframeSystemCodeUpgradeAuthorization, PezframeSystemDispatchEventInfo, PezframeSystemError, PezframeSystemEvent, PezframeSystemEventRecord, PezframeSystemExtensionsCheckGenesis, PezframeSystemExtensionsCheckNonZeroSender, PezframeSystemExtensionsCheckNonce, PezframeSystemExtensionsCheckSpecVersion, PezframeSystemExtensionsCheckTxVersion, PezframeSystemExtensionsCheckWeight, PezframeSystemExtensionsWeightReclaim, PezframeSystemLastRuntimeUpgradeInfo, PezframeSystemLimitsBlockLength, PezframeSystemLimitsBlockWeights, PezframeSystemLimitsWeightsPerClass, PezframeSystemPhase, PezpalletAllianceCall, PezpalletAllianceCid, PezpalletAllianceDisbandWitness, PezpalletAllianceError, PezpalletAllianceEvent, PezpalletAllianceMemberRole, PezpalletAllianceMultihash, PezpalletAllianceUnscrupulousItem, PezpalletAllianceVersion, PezpalletAssetConversionCall, PezpalletAssetConversionError, PezpalletAssetConversionEvent, PezpalletAssetConversionOpsCall, PezpalletAssetConversionOpsError, PezpalletAssetConversionOpsEvent, PezpalletAssetConversionPoolInfo, PezpalletAssetConversionTxPaymentChargeAssetTxPayment, PezpalletAssetConversionTxPaymentEvent, PezpalletAssetRateCall, PezpalletAssetRateError, PezpalletAssetRateEvent, PezpalletAssetRewardsCall, PezpalletAssetRewardsError, PezpalletAssetRewardsEvent, PezpalletAssetRewardsFreezeReason, PezpalletAssetRewardsHoldReason, PezpalletAssetRewardsPoolInfo, PezpalletAssetRewardsPoolStakerInfo, PezpalletAssetsAccountStatus, PezpalletAssetsApproval, PezpalletAssetsAssetAccount, PezpalletAssetsAssetDetails, PezpalletAssetsAssetMetadata, PezpalletAssetsAssetStatus, PezpalletAssetsCall, PezpalletAssetsError, PezpalletAssetsEvent, PezpalletAssetsExistenceReason, PezpalletAssetsFreezerError, PezpalletAssetsFreezerEvent, PezpalletBabeCall, PezpalletBabeError, PezpalletBagsListCall, PezpalletBagsListError, PezpalletBagsListEvent, PezpalletBagsListListBag, PezpalletBagsListListListError, PezpalletBagsListListNode, PezpalletBalancesAccountData, PezpalletBalancesAdjustmentDirection, PezpalletBalancesBalanceLock, PezpalletBalancesCall, PezpalletBalancesError, PezpalletBalancesEvent, PezpalletBalancesReasons, PezpalletBalancesReserveData, PezpalletBeefyCall, PezpalletBeefyError, PezpalletBountiesBounty, PezpalletBountiesBountyStatus, PezpalletBountiesCall, PezpalletBountiesError, PezpalletBountiesEvent, PezpalletBrokerAutoRenewalRecord, PezpalletBrokerCall, PezpalletBrokerCompletionStatus, PezpalletBrokerConfigRecord, PezpalletBrokerContributionRecord, PezpalletBrokerCoreMask, PezpalletBrokerCoretimeInterfaceCoreAssignment, PezpalletBrokerError, PezpalletBrokerEvent, PezpalletBrokerFinality, PezpalletBrokerInstaPoolHistoryRecord, PezpalletBrokerLeaseRecordItem, PezpalletBrokerOnDemandRevenueRecord, PezpalletBrokerPoolIoRecord, PezpalletBrokerPotentialRenewalId, PezpalletBrokerPotentialRenewalRecord, PezpalletBrokerRegionId, PezpalletBrokerRegionRecord, PezpalletBrokerSaleInfoRecord, PezpalletBrokerScheduleItem, PezpalletBrokerStatusRecord, PezpalletChildBountiesCall, PezpalletChildBountiesChildBounty, PezpalletChildBountiesChildBountyStatus, PezpalletChildBountiesError, PezpalletChildBountiesEvent, PezpalletCollectiveCall, PezpalletCollectiveError, PezpalletCollectiveEvent, PezpalletCollectiveHoldReason, PezpalletCollectiveRawOrigin, PezpalletCollectiveVotes, PezpalletContractsCall, PezpalletContractsEnvironment, PezpalletContractsEnvironmentTypeAccountId32, PezpalletContractsEnvironmentTypeBlakeTwo256, PezpalletContractsEnvironmentTypeH256, PezpalletContractsEnvironmentTypeU128, PezpalletContractsEnvironmentTypeU32, PezpalletContractsEnvironmentTypeU64, PezpalletContractsError, PezpalletContractsEvent, PezpalletContractsHoldReason, PezpalletContractsOrigin, PezpalletContractsPrimitivesCode, PezpalletContractsPrimitivesCodeUploadReturnValue, PezpalletContractsPrimitivesContractAccessError, PezpalletContractsPrimitivesContractResult, PezpalletContractsPrimitivesExecReturnValue, PezpalletContractsPrimitivesInstantiateReturnValue, PezpalletContractsPrimitivesStorageDeposit, PezpalletContractsSchedule, PezpalletContractsScheduleInstructionWeights, PezpalletContractsScheduleLimits, PezpalletContractsStorageContractInfo, PezpalletContractsStorageDeletionQueueManager, PezpalletContractsUapiFlagsReturnFlags, PezpalletContractsWasmCodeInfo, PezpalletContractsWasmDeterminism, PezpalletConvictionVotingCall, PezpalletConvictionVotingConviction, PezpalletConvictionVotingDelegations, PezpalletConvictionVotingError, PezpalletConvictionVotingEvent, PezpalletConvictionVotingTally, PezpalletConvictionVotingVoteAccountVote, PezpalletConvictionVotingVoteCasting, PezpalletConvictionVotingVoteDelegating, PezpalletConvictionVotingVotePriorLock, PezpalletConvictionVotingVoteVoting, PezpalletCoreFellowshipCall, PezpalletCoreFellowshipError, PezpalletCoreFellowshipEvent, PezpalletCoreFellowshipMemberStatus, PezpalletCoreFellowshipParamsTypeOption, PezpalletCoreFellowshipParamsTypeU128, PezpalletCoreFellowshipWish, PezpalletDelegatedStakingAgentLedger, PezpalletDelegatedStakingDelegation, PezpalletDelegatedStakingError, PezpalletDelegatedStakingEvent, PezpalletDelegatedStakingHoldReason, PezpalletDemocracyCall, PezpalletDemocracyConviction, PezpalletDemocracyDelegations, PezpalletDemocracyError, PezpalletDemocracyEvent, PezpalletDemocracyMetadataOwner, PezpalletDemocracyReferendumInfo, PezpalletDemocracyReferendumStatus, PezpalletDemocracyTally, PezpalletDemocracyVoteAccountVote, PezpalletDemocracyVotePriorLock, PezpalletDemocracyVoteThreshold, PezpalletDemocracyVoteVoting, PezpalletElectionProviderMultiPhaseCall, PezpalletElectionProviderMultiPhaseElectionCompute, PezpalletElectionProviderMultiPhaseError, PezpalletElectionProviderMultiPhaseEvent, PezpalletElectionProviderMultiPhasePhase, PezpalletElectionProviderMultiPhaseRawSolution, PezpalletElectionProviderMultiPhaseReadySolution, PezpalletElectionProviderMultiPhaseRoundSnapshot, PezpalletElectionProviderMultiPhaseSignedSignedSubmission, PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize, PezpalletElectionsPhragmenCall, PezpalletElectionsPhragmenError, PezpalletElectionsPhragmenEvent, PezpalletElectionsPhragmenRenouncing, PezpalletElectionsPhragmenSeatHolder, PezpalletElectionsPhragmenVoter, PezpalletExampleTasksError, PezpalletFastUnstakeCall, PezpalletFastUnstakeError, PezpalletFastUnstakeEvent, PezpalletFastUnstakeUnstakeRequest, PezpalletGluttonCall, PezpalletGluttonError, PezpalletGluttonEvent, PezpalletGrandpaCall, PezpalletGrandpaError, PezpalletGrandpaEvent, PezpalletGrandpaStoredPendingChange, PezpalletGrandpaStoredState, PezpalletIdentityAuthorityProperties, PezpalletIdentityCall, PezpalletIdentityError, PezpalletIdentityEvent, PezpalletIdentityJudgement, PezpalletIdentityLegacyIdentityInfo, PezpalletIdentityProvider, PezpalletIdentityRegistrarInfo, PezpalletIdentityRegistration, PezpalletIdentityUsernameInformation, PezpalletImOnlineCall, PezpalletImOnlineError, PezpalletImOnlineEvent, PezpalletImOnlineHeartbeat, PezpalletImOnlineSr25519AppSr25519Public, PezpalletImOnlineSr25519AppSr25519Signature, PezpalletIndicesCall, PezpalletIndicesError, PezpalletIndicesEvent, PezpalletLotteryCall, PezpalletLotteryError, PezpalletLotteryEvent, PezpalletLotteryLotteryConfig, PezpalletMembershipCall, PezpalletMembershipError, PezpalletMembershipEvent, PezpalletMessageQueueBookState, PezpalletMessageQueueCall, PezpalletMessageQueueError, PezpalletMessageQueueEvent, PezpalletMessageQueueNeighbours, PezpalletMessageQueuePage, PezpalletMetaTxCall, PezpalletMetaTxError, PezpalletMetaTxEvent, PezpalletMetaTxExtensionMetaTxMarker, PezpalletMetaTxMetaTx, PezpalletMigrationsActiveCursor, PezpalletMigrationsCall, PezpalletMigrationsError, PezpalletMigrationsEvent, PezpalletMigrationsHistoricCleanupSelector, PezpalletMigrationsMigrationCursor, PezpalletMixnetBoundedMixnode, PezpalletMixnetCall, PezpalletMixnetRegistration, PezpalletMultisigCall, PezpalletMultisigError, PezpalletMultisigEvent, PezpalletMultisigMultisig, PezpalletMultisigTimepoint, PezpalletNftFractionalizationCall, PezpalletNftFractionalizationDetails, PezpalletNftFractionalizationError, PezpalletNftFractionalizationEvent, PezpalletNftFractionalizationHoldReason, PezpalletNftsAttributeDeposit, PezpalletNftsAttributeNamespace, PezpalletNftsCall, PezpalletNftsCancelAttributesApprovalWitness, PezpalletNftsCollectionConfig, PezpalletNftsCollectionDetails, PezpalletNftsCollectionMetadata, PezpalletNftsCollectionRole, PezpalletNftsCollectionSetting, PezpalletNftsDestroyWitness, PezpalletNftsError, PezpalletNftsEvent, PezpalletNftsItemConfig, PezpalletNftsItemDeposit, PezpalletNftsItemDetails, PezpalletNftsItemMetadata, PezpalletNftsItemMetadataDeposit, PezpalletNftsItemSetting, PezpalletNftsItemTip, PezpalletNftsMintSettings, PezpalletNftsMintType, PezpalletNftsMintWitness, PezpalletNftsPendingSwap, PezpalletNftsPezpalletAttributes, PezpalletNftsPezpalletFeature, PezpalletNftsPreSignedAttributes, PezpalletNftsPreSignedMint, PezpalletNftsPriceDirection, PezpalletNftsPriceWithDirection, PezpalletNisBid, PezpalletNisCall, PezpalletNisError, PezpalletNisEvent, PezpalletNisHoldReason, PezpalletNisReceiptRecord, PezpalletNisSummaryRecord, PezpalletNominationPoolsBondExtra, PezpalletNominationPoolsBondedPoolInner, PezpalletNominationPoolsCall, PezpalletNominationPoolsClaimPermission, PezpalletNominationPoolsCommission, PezpalletNominationPoolsCommissionChangeRate, PezpalletNominationPoolsCommissionClaimPermission, PezpalletNominationPoolsConfigOpAccountId32, PezpalletNominationPoolsConfigOpPerbill, PezpalletNominationPoolsConfigOpU128, PezpalletNominationPoolsConfigOpU32, PezpalletNominationPoolsDefensiveError, PezpalletNominationPoolsError, PezpalletNominationPoolsEvent, PezpalletNominationPoolsFreezeReason, PezpalletNominationPoolsPoolMember, PezpalletNominationPoolsPoolRoles, PezpalletNominationPoolsPoolState, PezpalletNominationPoolsRewardPool, PezpalletNominationPoolsSubPools, PezpalletNominationPoolsUnbondPool, PezpalletOffencesEvent, PezpalletParametersCall, PezpalletParametersEvent, PezpalletPreimageCall, PezpalletPreimageError, PezpalletPreimageEvent, PezpalletPreimageHoldReason, PezpalletPreimageOldRequestStatus, PezpalletPreimageRequestStatus, PezpalletProxyAnnouncement, PezpalletProxyCall, PezpalletProxyDepositKind, PezpalletProxyError, PezpalletProxyEvent, PezpalletProxyProxyDefinition, PezpalletRankedCollectiveCall, PezpalletRankedCollectiveError, PezpalletRankedCollectiveEvent, PezpalletRankedCollectiveMemberRecord, PezpalletRankedCollectiveTally, PezpalletRankedCollectiveVoteRecord, PezpalletRecoveryActiveRecovery, PezpalletRecoveryCall, PezpalletRecoveryError, PezpalletRecoveryEvent, PezpalletRecoveryRecoveryConfig, PezpalletReferendaCall, PezpalletReferendaCurve, PezpalletReferendaDecidingStatus, PezpalletReferendaDeposit, PezpalletReferendaError, PezpalletReferendaEvent, PezpalletReferendaReferendumInfoConvictionVotingTally, PezpalletReferendaReferendumInfoRankedCollectiveTally, PezpalletReferendaReferendumStatusConvictionVotingTally, PezpalletReferendaReferendumStatusRankedCollectiveTally, PezpalletReferendaTrack, PezpalletReferendaTrackDetails, PezpalletRemarkCall, PezpalletRemarkError, PezpalletRemarkEvent, PezpalletReviveCall, PezpalletReviveError, PezpalletReviveEvent, PezpalletReviveEvmApiDebugRpcTypesCallLog, PezpalletReviveEvmApiDebugRpcTypesCallTrace, PezpalletReviveEvmApiDebugRpcTypesCallTracerConfig, PezpalletReviveEvmApiDebugRpcTypesCallType, PezpalletReviveEvmApiDebugRpcTypesTrace, PezpalletReviveEvmApiDebugRpcTypesTracerType, PezpalletReviveEvmApiRpcTypesGenAccessListEntry, PezpalletReviveEvmApiRpcTypesGenGenericTransaction, PezpalletReviveEvmApiRpcTypesGenInputOrData, PezpalletReviveHoldReason, PezpalletRevivePrimitivesCode, PezpalletRevivePrimitivesCodeUploadReturnValue, PezpalletRevivePrimitivesContractAccessError, PezpalletRevivePrimitivesContractResultExecReturnValue, PezpalletRevivePrimitivesContractResultInstantiateReturnValue, PezpalletRevivePrimitivesEthTransactError, PezpalletRevivePrimitivesEthTransactInfo, PezpalletRevivePrimitivesExecReturnValue, PezpalletRevivePrimitivesInstantiateReturnValue, PezpalletRevivePrimitivesStorageDeposit, PezpalletReviveStorageContractInfo, PezpalletReviveStorageDeletionQueueManager, PezpalletReviveUapiFlagsReturnFlags, PezpalletReviveWasmCodeInfo, PezpalletRootTestingCall, PezpalletRootTestingEvent, PezpalletSafeModeCall, PezpalletSafeModeError, PezpalletSafeModeEvent, PezpalletSafeModeExitReason, PezpalletSafeModeHoldReason, PezpalletSalaryCall, PezpalletSalaryClaimState, PezpalletSalaryClaimantStatus, PezpalletSalaryError, PezpalletSalaryEvent, PezpalletSalaryStatusType, PezpalletSchedulerCall, PezpalletSchedulerError, PezpalletSchedulerEvent, PezpalletSchedulerRetryConfig, PezpalletSchedulerScheduled, PezpalletSessionCall, PezpalletSessionError, PezpalletSessionEvent, PezpalletSkipFeelessPaymentEvent, PezpalletSocietyBid, PezpalletSocietyBidKind, PezpalletSocietyCall, PezpalletSocietyCandidacy, PezpalletSocietyError, PezpalletSocietyEvent, PezpalletSocietyGroupParams, PezpalletSocietyIntakeRecord, PezpalletSocietyMemberRecord, PezpalletSocietyPayoutRecord, PezpalletSocietyTally, PezpalletSocietyVote, PezpalletSocietyVouchingStatus, PezpalletStakingActiveEraInfo, PezpalletStakingEraRewardPoints, PezpalletStakingForcing, PezpalletStakingNominations, PezpalletStakingPezpalletCall, PezpalletStakingPezpalletConfigOpPerbill, PezpalletStakingPezpalletConfigOpPercent, PezpalletStakingPezpalletConfigOpU128, PezpalletStakingPezpalletConfigOpU32, PezpalletStakingPezpalletError, PezpalletStakingPezpalletEvent, PezpalletStakingPezpalletHoldReason, PezpalletStakingRewardDestination, PezpalletStakingSlashingSlashingSpans, PezpalletStakingSlashingSpanRecord, PezpalletStakingStakingLedger, PezpalletStakingUnappliedSlash, PezpalletStakingUnlockChunk, PezpalletStakingValidatorPrefs, PezpalletStateTrieMigrationCall, PezpalletStateTrieMigrationError, PezpalletStateTrieMigrationEvent, PezpalletStateTrieMigrationHoldReason, PezpalletStateTrieMigrationMigrationCompute, PezpalletStateTrieMigrationMigrationLimits, PezpalletStateTrieMigrationMigrationTask, PezpalletStateTrieMigrationProgress, PezpalletStatementEvent, PezpalletSudoCall, PezpalletSudoError, PezpalletSudoEvent, PezpalletTimestampCall, PezpalletTipsCall, PezpalletTipsError, PezpalletTipsEvent, PezpalletTipsOpenTip, PezpalletTransactionPaymentEvent, PezpalletTransactionPaymentFeeDetails, PezpalletTransactionPaymentInclusionFee, PezpalletTransactionPaymentReleases, PezpalletTransactionPaymentRuntimeDispatchInfo, PezpalletTransactionStorageCall, PezpalletTransactionStorageError, PezpalletTransactionStorageEvent, PezpalletTransactionStorageHoldReason, PezpalletTransactionStorageTransactionInfo, PezpalletTreasuryCall, PezpalletTreasuryError, PezpalletTreasuryEvent, PezpalletTreasuryPaymentState, PezpalletTreasuryProposal, PezpalletTreasurySpendStatus, PezpalletTxPauseCall, PezpalletTxPauseError, PezpalletTxPauseEvent, PezpalletUniquesCall, PezpalletUniquesCollectionDetails, PezpalletUniquesCollectionMetadata, PezpalletUniquesDestroyWitness, PezpalletUniquesError, PezpalletUniquesEvent, PezpalletUniquesItemDetails, PezpalletUniquesItemMetadata, PezpalletUtilityCall, PezpalletUtilityError, PezpalletUtilityEvent, PezpalletVerifySignatureExtensionVerifySignature, PezpalletVestingCall, PezpalletVestingError, PezpalletVestingEvent, PezpalletVestingReleases, PezpalletVestingVestingInfo, PezpalletWhitelistCall, PezpalletWhitelistError, PezpalletWhitelistEvent, PezspArithmeticArithmeticError, PezspAuthorityDiscoveryAppPublic, PezspConsensusBabeAllowedSlots, PezspConsensusBabeAppPublic, PezspConsensusBabeBabeConfiguration, PezspConsensusBabeBabeEpochConfiguration, PezspConsensusBabeDigestsNextConfigDescriptor, PezspConsensusBabeDigestsPreDigest, PezspConsensusBabeDigestsPrimaryPreDigest, PezspConsensusBabeDigestsSecondaryPlainPreDigest, PezspConsensusBabeDigestsSecondaryVRFPreDigest, PezspConsensusBabeEpoch, PezspConsensusBeefyCommitment, PezspConsensusBeefyDoubleVotingProof, PezspConsensusBeefyEcdsaCryptoPublic, PezspConsensusBeefyEcdsaCryptoSignature, PezspConsensusBeefyForkVotingProofAncestryProof, PezspConsensusBeefyForkVotingProofOpaqueValue, PezspConsensusBeefyFutureBlockVotingProof, PezspConsensusBeefyMmrBeefyAuthoritySet, PezspConsensusBeefyPayload, PezspConsensusBeefyValidatorSet, PezspConsensusBeefyVoteMessage, PezspConsensusGrandpaAppPublic, PezspConsensusGrandpaAppSignature, PezspConsensusGrandpaEquivocation, PezspConsensusGrandpaEquivocationProof, PezspConsensusSlotsEquivocationProof, PezspCoreCryptoKeyTypeId, PezspCoreSr25519VrfVrfSignature, PezspInherentsCheckInherentsResult, PezspInherentsInherentData, PezspMixnetAppPublic, PezspMixnetAppSignature, PezspMixnetMixnode, PezspMixnetMixnodesErr, PezspMixnetSessionPhase, PezspMixnetSessionStatus, PezspMmrPrimitivesAncestryProof, PezspMmrPrimitivesError, PezspMmrPrimitivesLeafProof, PezspNposElectionsElectionScore, PezspNposElectionsSupport, PezspRuntimeBlakeTwo256, PezspRuntimeBlock, PezspRuntimeDigest, PezspRuntimeDigestDigestItem, PezspRuntimeDispatchError, PezspRuntimeDispatchErrorWithPostInfo, PezspRuntimeExtrinsicInclusionMode, PezspRuntimeHeader, PezspRuntimeModuleError, PezspRuntimeMultiSignature, PezspRuntimeProvingTrieTrieError, PezspRuntimeTokenError, PezspRuntimeTransactionValidityInvalidTransaction, PezspRuntimeTransactionValidityTransactionSource, PezspRuntimeTransactionValidityTransactionValidityError, PezspRuntimeTransactionValidityUnknownTransaction, PezspRuntimeTransactionValidityValidTransaction, PezspRuntimeTransactionalError, PezspSessionMembershipProof, PezspStakingExposure, PezspStakingExposurePage, PezspStakingIndividualExposure, PezspStakingOffenceOffenceDetails, PezspStakingPagedExposureMetadata, PezspStatementStoreProof, PezspStatementStoreRuntimeApiInvalidStatement, PezspStatementStoreRuntimeApiStatementSource, PezspStatementStoreRuntimeApiValidStatement, PezspStatementStoreStatement, PezspTransactionStorageProofTransactionStorageProof, PezspVersionRuntimeVersion, PezspWeightsRuntimeDbWeight, PezspWeightsWeightV2Weight } from '@pezkuwi/types/lookup'; + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + FinalityGrandpaEquivocationPrecommit: FinalityGrandpaEquivocationPrecommit; + FinalityGrandpaEquivocationPrevote: FinalityGrandpaEquivocationPrevote; + FinalityGrandpaPrecommit: FinalityGrandpaPrecommit; + FinalityGrandpaPrevote: FinalityGrandpaPrevote; + KitchensinkRuntimeDynamicParamsReferendaOrigins: KitchensinkRuntimeDynamicParamsReferendaOrigins; + KitchensinkRuntimeDynamicParamsReferendaParameters: KitchensinkRuntimeDynamicParamsReferendaParameters; + KitchensinkRuntimeDynamicParamsReferendaParametersKey: KitchensinkRuntimeDynamicParamsReferendaParametersKey; + KitchensinkRuntimeDynamicParamsReferendaParametersValue: KitchensinkRuntimeDynamicParamsReferendaParametersValue; + KitchensinkRuntimeDynamicParamsReferendaTracks: KitchensinkRuntimeDynamicParamsReferendaTracks; + KitchensinkRuntimeDynamicParamsStorageBaseDeposit: KitchensinkRuntimeDynamicParamsStorageBaseDeposit; + KitchensinkRuntimeDynamicParamsStorageByteDeposit: KitchensinkRuntimeDynamicParamsStorageByteDeposit; + KitchensinkRuntimeDynamicParamsStorageParameters: KitchensinkRuntimeDynamicParamsStorageParameters; + KitchensinkRuntimeDynamicParamsStorageParametersKey: KitchensinkRuntimeDynamicParamsStorageParametersKey; + KitchensinkRuntimeDynamicParamsStorageParametersValue: KitchensinkRuntimeDynamicParamsStorageParametersValue; + KitchensinkRuntimeNposSolution16: KitchensinkRuntimeNposSolution16; + KitchensinkRuntimeOriginCaller: KitchensinkRuntimeOriginCaller; + KitchensinkRuntimeProxyType: KitchensinkRuntimeProxyType; + KitchensinkRuntimeRuntime: KitchensinkRuntimeRuntime; + KitchensinkRuntimeRuntimeError: KitchensinkRuntimeRuntimeError; + KitchensinkRuntimeRuntimeFreezeReason: KitchensinkRuntimeRuntimeFreezeReason; + KitchensinkRuntimeRuntimeHoldReason: KitchensinkRuntimeRuntimeHoldReason; + KitchensinkRuntimeRuntimeParameters: KitchensinkRuntimeRuntimeParameters; + KitchensinkRuntimeRuntimeParametersKey: KitchensinkRuntimeRuntimeParametersKey; + KitchensinkRuntimeRuntimeParametersValue: KitchensinkRuntimeRuntimeParametersValue; + KitchensinkRuntimeSessionKeys: KitchensinkRuntimeSessionKeys; + PezframeBenchmarkingPezpalletPovCall: PezframeBenchmarkingPezpalletPovCall; + PezframeBenchmarkingPezpalletPovEvent: PezframeBenchmarkingPezpalletPovEvent; + PezframeMetadataHashExtensionCheckMetadataHash: PezframeMetadataHashExtensionCheckMetadataHash; + PezframeMetadataHashExtensionMode: PezframeMetadataHashExtensionMode; + PezframeSupportDispatchDispatchClass: PezframeSupportDispatchDispatchClass; + PezframeSupportDispatchPays: PezframeSupportDispatchPays; + PezframeSupportDispatchPerDispatchClassU32: PezframeSupportDispatchPerDispatchClassU32; + PezframeSupportDispatchPerDispatchClassWeight: PezframeSupportDispatchPerDispatchClassWeight; + PezframeSupportDispatchPerDispatchClassWeightsPerClass: PezframeSupportDispatchPerDispatchClassWeightsPerClass; + PezframeSupportDispatchPostDispatchInfo: PezframeSupportDispatchPostDispatchInfo; + PezframeSupportDispatchRawOrigin: PezframeSupportDispatchRawOrigin; + PezframeSupportMessagesProcessMessageError: PezframeSupportMessagesProcessMessageError; + PezframeSupportPezpalletId: PezframeSupportPezpalletId; + PezframeSupportPreimagesBounded: PezframeSupportPreimagesBounded; + PezframeSupportScheduleDispatchTime: PezframeSupportScheduleDispatchTime; + PezframeSupportTokensFungibleUnionOfNativeOrWithId: PezframeSupportTokensFungibleUnionOfNativeOrWithId; + PezframeSupportTokensMiscBalanceStatus: PezframeSupportTokensMiscBalanceStatus; + PezframeSupportTokensMiscIdAmountRuntimeFreezeReason: PezframeSupportTokensMiscIdAmountRuntimeFreezeReason; + PezframeSupportTokensMiscIdAmountRuntimeHoldReason: PezframeSupportTokensMiscIdAmountRuntimeHoldReason; + PezframeSupportViewFunctionsViewFunctionDispatchError: PezframeSupportViewFunctionsViewFunctionDispatchError; + PezframeSupportViewFunctionsViewFunctionId: PezframeSupportViewFunctionsViewFunctionId; + PezframeSystemAccountInfo: PezframeSystemAccountInfo; + PezframeSystemCall: PezframeSystemCall; + PezframeSystemCodeUpgradeAuthorization: PezframeSystemCodeUpgradeAuthorization; + PezframeSystemDispatchEventInfo: PezframeSystemDispatchEventInfo; + PezframeSystemError: PezframeSystemError; + PezframeSystemEvent: PezframeSystemEvent; + PezframeSystemEventRecord: PezframeSystemEventRecord; + PezframeSystemExtensionsCheckGenesis: PezframeSystemExtensionsCheckGenesis; + PezframeSystemExtensionsCheckNonZeroSender: PezframeSystemExtensionsCheckNonZeroSender; + PezframeSystemExtensionsCheckNonce: PezframeSystemExtensionsCheckNonce; + PezframeSystemExtensionsCheckSpecVersion: PezframeSystemExtensionsCheckSpecVersion; + PezframeSystemExtensionsCheckTxVersion: PezframeSystemExtensionsCheckTxVersion; + PezframeSystemExtensionsCheckWeight: PezframeSystemExtensionsCheckWeight; + PezframeSystemExtensionsWeightReclaim: PezframeSystemExtensionsWeightReclaim; + PezframeSystemLastRuntimeUpgradeInfo: PezframeSystemLastRuntimeUpgradeInfo; + PezframeSystemLimitsBlockLength: PezframeSystemLimitsBlockLength; + PezframeSystemLimitsBlockWeights: PezframeSystemLimitsBlockWeights; + PezframeSystemLimitsWeightsPerClass: PezframeSystemLimitsWeightsPerClass; + PezframeSystemPhase: PezframeSystemPhase; + PezpalletAllianceCall: PezpalletAllianceCall; + PezpalletAllianceCid: PezpalletAllianceCid; + PezpalletAllianceDisbandWitness: PezpalletAllianceDisbandWitness; + PezpalletAllianceError: PezpalletAllianceError; + PezpalletAllianceEvent: PezpalletAllianceEvent; + PezpalletAllianceMemberRole: PezpalletAllianceMemberRole; + PezpalletAllianceMultihash: PezpalletAllianceMultihash; + PezpalletAllianceUnscrupulousItem: PezpalletAllianceUnscrupulousItem; + PezpalletAllianceVersion: PezpalletAllianceVersion; + PezpalletAssetConversionCall: PezpalletAssetConversionCall; + PezpalletAssetConversionError: PezpalletAssetConversionError; + PezpalletAssetConversionEvent: PezpalletAssetConversionEvent; + PezpalletAssetConversionOpsCall: PezpalletAssetConversionOpsCall; + PezpalletAssetConversionOpsError: PezpalletAssetConversionOpsError; + PezpalletAssetConversionOpsEvent: PezpalletAssetConversionOpsEvent; + PezpalletAssetConversionPoolInfo: PezpalletAssetConversionPoolInfo; + PezpalletAssetConversionTxPaymentChargeAssetTxPayment: PezpalletAssetConversionTxPaymentChargeAssetTxPayment; + PezpalletAssetConversionTxPaymentEvent: PezpalletAssetConversionTxPaymentEvent; + PezpalletAssetRateCall: PezpalletAssetRateCall; + PezpalletAssetRateError: PezpalletAssetRateError; + PezpalletAssetRateEvent: PezpalletAssetRateEvent; + PezpalletAssetRewardsCall: PezpalletAssetRewardsCall; + PezpalletAssetRewardsError: PezpalletAssetRewardsError; + PezpalletAssetRewardsEvent: PezpalletAssetRewardsEvent; + PezpalletAssetRewardsFreezeReason: PezpalletAssetRewardsFreezeReason; + PezpalletAssetRewardsHoldReason: PezpalletAssetRewardsHoldReason; + PezpalletAssetRewardsPoolInfo: PezpalletAssetRewardsPoolInfo; + PezpalletAssetRewardsPoolStakerInfo: PezpalletAssetRewardsPoolStakerInfo; + PezpalletAssetsAccountStatus: PezpalletAssetsAccountStatus; + PezpalletAssetsApproval: PezpalletAssetsApproval; + PezpalletAssetsAssetAccount: PezpalletAssetsAssetAccount; + PezpalletAssetsAssetDetails: PezpalletAssetsAssetDetails; + PezpalletAssetsAssetMetadata: PezpalletAssetsAssetMetadata; + PezpalletAssetsAssetStatus: PezpalletAssetsAssetStatus; + PezpalletAssetsCall: PezpalletAssetsCall; + PezpalletAssetsError: PezpalletAssetsError; + PezpalletAssetsEvent: PezpalletAssetsEvent; + PezpalletAssetsExistenceReason: PezpalletAssetsExistenceReason; + PezpalletAssetsFreezerError: PezpalletAssetsFreezerError; + PezpalletAssetsFreezerEvent: PezpalletAssetsFreezerEvent; + PezpalletBabeCall: PezpalletBabeCall; + PezpalletBabeError: PezpalletBabeError; + PezpalletBagsListCall: PezpalletBagsListCall; + PezpalletBagsListError: PezpalletBagsListError; + PezpalletBagsListEvent: PezpalletBagsListEvent; + PezpalletBagsListListBag: PezpalletBagsListListBag; + PezpalletBagsListListListError: PezpalletBagsListListListError; + PezpalletBagsListListNode: PezpalletBagsListListNode; + PezpalletBalancesAccountData: PezpalletBalancesAccountData; + PezpalletBalancesAdjustmentDirection: PezpalletBalancesAdjustmentDirection; + PezpalletBalancesBalanceLock: PezpalletBalancesBalanceLock; + PezpalletBalancesCall: PezpalletBalancesCall; + PezpalletBalancesError: PezpalletBalancesError; + PezpalletBalancesEvent: PezpalletBalancesEvent; + PezpalletBalancesReasons: PezpalletBalancesReasons; + PezpalletBalancesReserveData: PezpalletBalancesReserveData; + PezpalletBeefyCall: PezpalletBeefyCall; + PezpalletBeefyError: PezpalletBeefyError; + PezpalletBountiesBounty: PezpalletBountiesBounty; + PezpalletBountiesBountyStatus: PezpalletBountiesBountyStatus; + PezpalletBountiesCall: PezpalletBountiesCall; + PezpalletBountiesError: PezpalletBountiesError; + PezpalletBountiesEvent: PezpalletBountiesEvent; + PezpalletBrokerAutoRenewalRecord: PezpalletBrokerAutoRenewalRecord; + PezpalletBrokerCall: PezpalletBrokerCall; + PezpalletBrokerCompletionStatus: PezpalletBrokerCompletionStatus; + PezpalletBrokerConfigRecord: PezpalletBrokerConfigRecord; + PezpalletBrokerContributionRecord: PezpalletBrokerContributionRecord; + PezpalletBrokerCoreMask: PezpalletBrokerCoreMask; + PezpalletBrokerCoretimeInterfaceCoreAssignment: PezpalletBrokerCoretimeInterfaceCoreAssignment; + PezpalletBrokerError: PezpalletBrokerError; + PezpalletBrokerEvent: PezpalletBrokerEvent; + PezpalletBrokerFinality: PezpalletBrokerFinality; + PezpalletBrokerInstaPoolHistoryRecord: PezpalletBrokerInstaPoolHistoryRecord; + PezpalletBrokerLeaseRecordItem: PezpalletBrokerLeaseRecordItem; + PezpalletBrokerOnDemandRevenueRecord: PezpalletBrokerOnDemandRevenueRecord; + PezpalletBrokerPoolIoRecord: PezpalletBrokerPoolIoRecord; + PezpalletBrokerPotentialRenewalId: PezpalletBrokerPotentialRenewalId; + PezpalletBrokerPotentialRenewalRecord: PezpalletBrokerPotentialRenewalRecord; + PezpalletBrokerRegionId: PezpalletBrokerRegionId; + PezpalletBrokerRegionRecord: PezpalletBrokerRegionRecord; + PezpalletBrokerSaleInfoRecord: PezpalletBrokerSaleInfoRecord; + PezpalletBrokerScheduleItem: PezpalletBrokerScheduleItem; + PezpalletBrokerStatusRecord: PezpalletBrokerStatusRecord; + PezpalletChildBountiesCall: PezpalletChildBountiesCall; + PezpalletChildBountiesChildBounty: PezpalletChildBountiesChildBounty; + PezpalletChildBountiesChildBountyStatus: PezpalletChildBountiesChildBountyStatus; + PezpalletChildBountiesError: PezpalletChildBountiesError; + PezpalletChildBountiesEvent: PezpalletChildBountiesEvent; + PezpalletCollectiveCall: PezpalletCollectiveCall; + PezpalletCollectiveError: PezpalletCollectiveError; + PezpalletCollectiveEvent: PezpalletCollectiveEvent; + PezpalletCollectiveHoldReason: PezpalletCollectiveHoldReason; + PezpalletCollectiveRawOrigin: PezpalletCollectiveRawOrigin; + PezpalletCollectiveVotes: PezpalletCollectiveVotes; + PezpalletContractsCall: PezpalletContractsCall; + PezpalletContractsEnvironment: PezpalletContractsEnvironment; + PezpalletContractsEnvironmentTypeAccountId32: PezpalletContractsEnvironmentTypeAccountId32; + PezpalletContractsEnvironmentTypeBlakeTwo256: PezpalletContractsEnvironmentTypeBlakeTwo256; + PezpalletContractsEnvironmentTypeH256: PezpalletContractsEnvironmentTypeH256; + PezpalletContractsEnvironmentTypeU128: PezpalletContractsEnvironmentTypeU128; + PezpalletContractsEnvironmentTypeU32: PezpalletContractsEnvironmentTypeU32; + PezpalletContractsEnvironmentTypeU64: PezpalletContractsEnvironmentTypeU64; + PezpalletContractsError: PezpalletContractsError; + PezpalletContractsEvent: PezpalletContractsEvent; + PezpalletContractsHoldReason: PezpalletContractsHoldReason; + PezpalletContractsOrigin: PezpalletContractsOrigin; + PezpalletContractsPrimitivesCode: PezpalletContractsPrimitivesCode; + PezpalletContractsPrimitivesCodeUploadReturnValue: PezpalletContractsPrimitivesCodeUploadReturnValue; + PezpalletContractsPrimitivesContractAccessError: PezpalletContractsPrimitivesContractAccessError; + PezpalletContractsPrimitivesContractResult: PezpalletContractsPrimitivesContractResult; + PezpalletContractsPrimitivesExecReturnValue: PezpalletContractsPrimitivesExecReturnValue; + PezpalletContractsPrimitivesInstantiateReturnValue: PezpalletContractsPrimitivesInstantiateReturnValue; + PezpalletContractsPrimitivesStorageDeposit: PezpalletContractsPrimitivesStorageDeposit; + PezpalletContractsSchedule: PezpalletContractsSchedule; + PezpalletContractsScheduleInstructionWeights: PezpalletContractsScheduleInstructionWeights; + PezpalletContractsScheduleLimits: PezpalletContractsScheduleLimits; + PezpalletContractsStorageContractInfo: PezpalletContractsStorageContractInfo; + PezpalletContractsStorageDeletionQueueManager: PezpalletContractsStorageDeletionQueueManager; + PezpalletContractsUapiFlagsReturnFlags: PezpalletContractsUapiFlagsReturnFlags; + PezpalletContractsWasmCodeInfo: PezpalletContractsWasmCodeInfo; + PezpalletContractsWasmDeterminism: PezpalletContractsWasmDeterminism; + PezpalletConvictionVotingCall: PezpalletConvictionVotingCall; + PezpalletConvictionVotingConviction: PezpalletConvictionVotingConviction; + PezpalletConvictionVotingDelegations: PezpalletConvictionVotingDelegations; + PezpalletConvictionVotingError: PezpalletConvictionVotingError; + PezpalletConvictionVotingEvent: PezpalletConvictionVotingEvent; + PezpalletConvictionVotingTally: PezpalletConvictionVotingTally; + PezpalletConvictionVotingVoteAccountVote: PezpalletConvictionVotingVoteAccountVote; + PezpalletConvictionVotingVoteCasting: PezpalletConvictionVotingVoteCasting; + PezpalletConvictionVotingVoteDelegating: PezpalletConvictionVotingVoteDelegating; + PezpalletConvictionVotingVotePriorLock: PezpalletConvictionVotingVotePriorLock; + PezpalletConvictionVotingVoteVoting: PezpalletConvictionVotingVoteVoting; + PezpalletCoreFellowshipCall: PezpalletCoreFellowshipCall; + PezpalletCoreFellowshipError: PezpalletCoreFellowshipError; + PezpalletCoreFellowshipEvent: PezpalletCoreFellowshipEvent; + PezpalletCoreFellowshipMemberStatus: PezpalletCoreFellowshipMemberStatus; + PezpalletCoreFellowshipParamsTypeOption: PezpalletCoreFellowshipParamsTypeOption; + PezpalletCoreFellowshipParamsTypeU128: PezpalletCoreFellowshipParamsTypeU128; + PezpalletCoreFellowshipWish: PezpalletCoreFellowshipWish; + PezpalletDelegatedStakingAgentLedger: PezpalletDelegatedStakingAgentLedger; + PezpalletDelegatedStakingDelegation: PezpalletDelegatedStakingDelegation; + PezpalletDelegatedStakingError: PezpalletDelegatedStakingError; + PezpalletDelegatedStakingEvent: PezpalletDelegatedStakingEvent; + PezpalletDelegatedStakingHoldReason: PezpalletDelegatedStakingHoldReason; + PezpalletDemocracyCall: PezpalletDemocracyCall; + PezpalletDemocracyConviction: PezpalletDemocracyConviction; + PezpalletDemocracyDelegations: PezpalletDemocracyDelegations; + PezpalletDemocracyError: PezpalletDemocracyError; + PezpalletDemocracyEvent: PezpalletDemocracyEvent; + PezpalletDemocracyMetadataOwner: PezpalletDemocracyMetadataOwner; + PezpalletDemocracyReferendumInfo: PezpalletDemocracyReferendumInfo; + PezpalletDemocracyReferendumStatus: PezpalletDemocracyReferendumStatus; + PezpalletDemocracyTally: PezpalletDemocracyTally; + PezpalletDemocracyVoteAccountVote: PezpalletDemocracyVoteAccountVote; + PezpalletDemocracyVotePriorLock: PezpalletDemocracyVotePriorLock; + PezpalletDemocracyVoteThreshold: PezpalletDemocracyVoteThreshold; + PezpalletDemocracyVoteVoting: PezpalletDemocracyVoteVoting; + PezpalletElectionProviderMultiPhaseCall: PezpalletElectionProviderMultiPhaseCall; + PezpalletElectionProviderMultiPhaseElectionCompute: PezpalletElectionProviderMultiPhaseElectionCompute; + PezpalletElectionProviderMultiPhaseError: PezpalletElectionProviderMultiPhaseError; + PezpalletElectionProviderMultiPhaseEvent: PezpalletElectionProviderMultiPhaseEvent; + PezpalletElectionProviderMultiPhasePhase: PezpalletElectionProviderMultiPhasePhase; + PezpalletElectionProviderMultiPhaseRawSolution: PezpalletElectionProviderMultiPhaseRawSolution; + PezpalletElectionProviderMultiPhaseReadySolution: PezpalletElectionProviderMultiPhaseReadySolution; + PezpalletElectionProviderMultiPhaseRoundSnapshot: PezpalletElectionProviderMultiPhaseRoundSnapshot; + PezpalletElectionProviderMultiPhaseSignedSignedSubmission: PezpalletElectionProviderMultiPhaseSignedSignedSubmission; + PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize: PezpalletElectionProviderMultiPhaseSolutionOrSnapshotSize; + PezpalletElectionsPhragmenCall: PezpalletElectionsPhragmenCall; + PezpalletElectionsPhragmenError: PezpalletElectionsPhragmenError; + PezpalletElectionsPhragmenEvent: PezpalletElectionsPhragmenEvent; + PezpalletElectionsPhragmenRenouncing: PezpalletElectionsPhragmenRenouncing; + PezpalletElectionsPhragmenSeatHolder: PezpalletElectionsPhragmenSeatHolder; + PezpalletElectionsPhragmenVoter: PezpalletElectionsPhragmenVoter; + PezpalletExampleTasksError: PezpalletExampleTasksError; + PezpalletFastUnstakeCall: PezpalletFastUnstakeCall; + PezpalletFastUnstakeError: PezpalletFastUnstakeError; + PezpalletFastUnstakeEvent: PezpalletFastUnstakeEvent; + PezpalletFastUnstakeUnstakeRequest: PezpalletFastUnstakeUnstakeRequest; + PezpalletGluttonCall: PezpalletGluttonCall; + PezpalletGluttonError: PezpalletGluttonError; + PezpalletGluttonEvent: PezpalletGluttonEvent; + PezpalletGrandpaCall: PezpalletGrandpaCall; + PezpalletGrandpaError: PezpalletGrandpaError; + PezpalletGrandpaEvent: PezpalletGrandpaEvent; + PezpalletGrandpaStoredPendingChange: PezpalletGrandpaStoredPendingChange; + PezpalletGrandpaStoredState: PezpalletGrandpaStoredState; + PezpalletIdentityAuthorityProperties: PezpalletIdentityAuthorityProperties; + PezpalletIdentityCall: PezpalletIdentityCall; + PezpalletIdentityError: PezpalletIdentityError; + PezpalletIdentityEvent: PezpalletIdentityEvent; + PezpalletIdentityJudgement: PezpalletIdentityJudgement; + PezpalletIdentityLegacyIdentityInfo: PezpalletIdentityLegacyIdentityInfo; + PezpalletIdentityProvider: PezpalletIdentityProvider; + PezpalletIdentityRegistrarInfo: PezpalletIdentityRegistrarInfo; + PezpalletIdentityRegistration: PezpalletIdentityRegistration; + PezpalletIdentityUsernameInformation: PezpalletIdentityUsernameInformation; + PezpalletImOnlineCall: PezpalletImOnlineCall; + PezpalletImOnlineError: PezpalletImOnlineError; + PezpalletImOnlineEvent: PezpalletImOnlineEvent; + PezpalletImOnlineHeartbeat: PezpalletImOnlineHeartbeat; + PezpalletImOnlineSr25519AppSr25519Public: PezpalletImOnlineSr25519AppSr25519Public; + PezpalletImOnlineSr25519AppSr25519Signature: PezpalletImOnlineSr25519AppSr25519Signature; + PezpalletIndicesCall: PezpalletIndicesCall; + PezpalletIndicesError: PezpalletIndicesError; + PezpalletIndicesEvent: PezpalletIndicesEvent; + PezpalletLotteryCall: PezpalletLotteryCall; + PezpalletLotteryError: PezpalletLotteryError; + PezpalletLotteryEvent: PezpalletLotteryEvent; + PezpalletLotteryLotteryConfig: PezpalletLotteryLotteryConfig; + PezpalletMembershipCall: PezpalletMembershipCall; + PezpalletMembershipError: PezpalletMembershipError; + PezpalletMembershipEvent: PezpalletMembershipEvent; + PezpalletMessageQueueBookState: PezpalletMessageQueueBookState; + PezpalletMessageQueueCall: PezpalletMessageQueueCall; + PezpalletMessageQueueError: PezpalletMessageQueueError; + PezpalletMessageQueueEvent: PezpalletMessageQueueEvent; + PezpalletMessageQueueNeighbours: PezpalletMessageQueueNeighbours; + PezpalletMessageQueuePage: PezpalletMessageQueuePage; + PezpalletMetaTxCall: PezpalletMetaTxCall; + PezpalletMetaTxError: PezpalletMetaTxError; + PezpalletMetaTxEvent: PezpalletMetaTxEvent; + PezpalletMetaTxExtensionMetaTxMarker: PezpalletMetaTxExtensionMetaTxMarker; + PezpalletMetaTxMetaTx: PezpalletMetaTxMetaTx; + PezpalletMigrationsActiveCursor: PezpalletMigrationsActiveCursor; + PezpalletMigrationsCall: PezpalletMigrationsCall; + PezpalletMigrationsError: PezpalletMigrationsError; + PezpalletMigrationsEvent: PezpalletMigrationsEvent; + PezpalletMigrationsHistoricCleanupSelector: PezpalletMigrationsHistoricCleanupSelector; + PezpalletMigrationsMigrationCursor: PezpalletMigrationsMigrationCursor; + PezpalletMixnetBoundedMixnode: PezpalletMixnetBoundedMixnode; + PezpalletMixnetCall: PezpalletMixnetCall; + PezpalletMixnetRegistration: PezpalletMixnetRegistration; + PezpalletMultisigCall: PezpalletMultisigCall; + PezpalletMultisigError: PezpalletMultisigError; + PezpalletMultisigEvent: PezpalletMultisigEvent; + PezpalletMultisigMultisig: PezpalletMultisigMultisig; + PezpalletMultisigTimepoint: PezpalletMultisigTimepoint; + PezpalletNftFractionalizationCall: PezpalletNftFractionalizationCall; + PezpalletNftFractionalizationDetails: PezpalletNftFractionalizationDetails; + PezpalletNftFractionalizationError: PezpalletNftFractionalizationError; + PezpalletNftFractionalizationEvent: PezpalletNftFractionalizationEvent; + PezpalletNftFractionalizationHoldReason: PezpalletNftFractionalizationHoldReason; + PezpalletNftsAttributeDeposit: PezpalletNftsAttributeDeposit; + PezpalletNftsAttributeNamespace: PezpalletNftsAttributeNamespace; + PezpalletNftsCall: PezpalletNftsCall; + PezpalletNftsCancelAttributesApprovalWitness: PezpalletNftsCancelAttributesApprovalWitness; + PezpalletNftsCollectionConfig: PezpalletNftsCollectionConfig; + PezpalletNftsCollectionDetails: PezpalletNftsCollectionDetails; + PezpalletNftsCollectionMetadata: PezpalletNftsCollectionMetadata; + PezpalletNftsCollectionRole: PezpalletNftsCollectionRole; + PezpalletNftsCollectionSetting: PezpalletNftsCollectionSetting; + PezpalletNftsDestroyWitness: PezpalletNftsDestroyWitness; + PezpalletNftsError: PezpalletNftsError; + PezpalletNftsEvent: PezpalletNftsEvent; + PezpalletNftsItemConfig: PezpalletNftsItemConfig; + PezpalletNftsItemDeposit: PezpalletNftsItemDeposit; + PezpalletNftsItemDetails: PezpalletNftsItemDetails; + PezpalletNftsItemMetadata: PezpalletNftsItemMetadata; + PezpalletNftsItemMetadataDeposit: PezpalletNftsItemMetadataDeposit; + PezpalletNftsItemSetting: PezpalletNftsItemSetting; + PezpalletNftsItemTip: PezpalletNftsItemTip; + PezpalletNftsMintSettings: PezpalletNftsMintSettings; + PezpalletNftsMintType: PezpalletNftsMintType; + PezpalletNftsMintWitness: PezpalletNftsMintWitness; + PezpalletNftsPendingSwap: PezpalletNftsPendingSwap; + PezpalletNftsPezpalletAttributes: PezpalletNftsPezpalletAttributes; + PezpalletNftsPezpalletFeature: PezpalletNftsPezpalletFeature; + PezpalletNftsPreSignedAttributes: PezpalletNftsPreSignedAttributes; + PezpalletNftsPreSignedMint: PezpalletNftsPreSignedMint; + PezpalletNftsPriceDirection: PezpalletNftsPriceDirection; + PezpalletNftsPriceWithDirection: PezpalletNftsPriceWithDirection; + PezpalletNisBid: PezpalletNisBid; + PezpalletNisCall: PezpalletNisCall; + PezpalletNisError: PezpalletNisError; + PezpalletNisEvent: PezpalletNisEvent; + PezpalletNisHoldReason: PezpalletNisHoldReason; + PezpalletNisReceiptRecord: PezpalletNisReceiptRecord; + PezpalletNisSummaryRecord: PezpalletNisSummaryRecord; + PezpalletNominationPoolsBondExtra: PezpalletNominationPoolsBondExtra; + PezpalletNominationPoolsBondedPoolInner: PezpalletNominationPoolsBondedPoolInner; + PezpalletNominationPoolsCall: PezpalletNominationPoolsCall; + PezpalletNominationPoolsClaimPermission: PezpalletNominationPoolsClaimPermission; + PezpalletNominationPoolsCommission: PezpalletNominationPoolsCommission; + PezpalletNominationPoolsCommissionChangeRate: PezpalletNominationPoolsCommissionChangeRate; + PezpalletNominationPoolsCommissionClaimPermission: PezpalletNominationPoolsCommissionClaimPermission; + PezpalletNominationPoolsConfigOpAccountId32: PezpalletNominationPoolsConfigOpAccountId32; + PezpalletNominationPoolsConfigOpPerbill: PezpalletNominationPoolsConfigOpPerbill; + PezpalletNominationPoolsConfigOpU128: PezpalletNominationPoolsConfigOpU128; + PezpalletNominationPoolsConfigOpU32: PezpalletNominationPoolsConfigOpU32; + PezpalletNominationPoolsDefensiveError: PezpalletNominationPoolsDefensiveError; + PezpalletNominationPoolsError: PezpalletNominationPoolsError; + PezpalletNominationPoolsEvent: PezpalletNominationPoolsEvent; + PezpalletNominationPoolsFreezeReason: PezpalletNominationPoolsFreezeReason; + PezpalletNominationPoolsPoolMember: PezpalletNominationPoolsPoolMember; + PezpalletNominationPoolsPoolRoles: PezpalletNominationPoolsPoolRoles; + PezpalletNominationPoolsPoolState: PezpalletNominationPoolsPoolState; + PezpalletNominationPoolsRewardPool: PezpalletNominationPoolsRewardPool; + PezpalletNominationPoolsSubPools: PezpalletNominationPoolsSubPools; + PezpalletNominationPoolsUnbondPool: PezpalletNominationPoolsUnbondPool; + PezpalletOffencesEvent: PezpalletOffencesEvent; + PezpalletParametersCall: PezpalletParametersCall; + PezpalletParametersEvent: PezpalletParametersEvent; + PezpalletPreimageCall: PezpalletPreimageCall; + PezpalletPreimageError: PezpalletPreimageError; + PezpalletPreimageEvent: PezpalletPreimageEvent; + PezpalletPreimageHoldReason: PezpalletPreimageHoldReason; + PezpalletPreimageOldRequestStatus: PezpalletPreimageOldRequestStatus; + PezpalletPreimageRequestStatus: PezpalletPreimageRequestStatus; + PezpalletProxyAnnouncement: PezpalletProxyAnnouncement; + PezpalletProxyCall: PezpalletProxyCall; + PezpalletProxyDepositKind: PezpalletProxyDepositKind; + PezpalletProxyError: PezpalletProxyError; + PezpalletProxyEvent: PezpalletProxyEvent; + PezpalletProxyProxyDefinition: PezpalletProxyProxyDefinition; + PezpalletRankedCollectiveCall: PezpalletRankedCollectiveCall; + PezpalletRankedCollectiveError: PezpalletRankedCollectiveError; + PezpalletRankedCollectiveEvent: PezpalletRankedCollectiveEvent; + PezpalletRankedCollectiveMemberRecord: PezpalletRankedCollectiveMemberRecord; + PezpalletRankedCollectiveTally: PezpalletRankedCollectiveTally; + PezpalletRankedCollectiveVoteRecord: PezpalletRankedCollectiveVoteRecord; + PezpalletRecoveryActiveRecovery: PezpalletRecoveryActiveRecovery; + PezpalletRecoveryCall: PezpalletRecoveryCall; + PezpalletRecoveryError: PezpalletRecoveryError; + PezpalletRecoveryEvent: PezpalletRecoveryEvent; + PezpalletRecoveryRecoveryConfig: PezpalletRecoveryRecoveryConfig; + PezpalletReferendaCall: PezpalletReferendaCall; + PezpalletReferendaCurve: PezpalletReferendaCurve; + PezpalletReferendaDecidingStatus: PezpalletReferendaDecidingStatus; + PezpalletReferendaDeposit: PezpalletReferendaDeposit; + PezpalletReferendaError: PezpalletReferendaError; + PezpalletReferendaEvent: PezpalletReferendaEvent; + PezpalletReferendaReferendumInfoConvictionVotingTally: PezpalletReferendaReferendumInfoConvictionVotingTally; + PezpalletReferendaReferendumInfoRankedCollectiveTally: PezpalletReferendaReferendumInfoRankedCollectiveTally; + PezpalletReferendaReferendumStatusConvictionVotingTally: PezpalletReferendaReferendumStatusConvictionVotingTally; + PezpalletReferendaReferendumStatusRankedCollectiveTally: PezpalletReferendaReferendumStatusRankedCollectiveTally; + PezpalletReferendaTrack: PezpalletReferendaTrack; + PezpalletReferendaTrackDetails: PezpalletReferendaTrackDetails; + PezpalletRemarkCall: PezpalletRemarkCall; + PezpalletRemarkError: PezpalletRemarkError; + PezpalletRemarkEvent: PezpalletRemarkEvent; + PezpalletReviveCall: PezpalletReviveCall; + PezpalletReviveError: PezpalletReviveError; + PezpalletReviveEvent: PezpalletReviveEvent; + PezpalletReviveEvmApiDebugRpcTypesCallLog: PezpalletReviveEvmApiDebugRpcTypesCallLog; + PezpalletReviveEvmApiDebugRpcTypesCallTrace: PezpalletReviveEvmApiDebugRpcTypesCallTrace; + PezpalletReviveEvmApiDebugRpcTypesCallTracerConfig: PezpalletReviveEvmApiDebugRpcTypesCallTracerConfig; + PezpalletReviveEvmApiDebugRpcTypesCallType: PezpalletReviveEvmApiDebugRpcTypesCallType; + PezpalletReviveEvmApiDebugRpcTypesTrace: PezpalletReviveEvmApiDebugRpcTypesTrace; + PezpalletReviveEvmApiDebugRpcTypesTracerType: PezpalletReviveEvmApiDebugRpcTypesTracerType; + PezpalletReviveEvmApiRpcTypesGenAccessListEntry: PezpalletReviveEvmApiRpcTypesGenAccessListEntry; + PezpalletReviveEvmApiRpcTypesGenGenericTransaction: PezpalletReviveEvmApiRpcTypesGenGenericTransaction; + PezpalletReviveEvmApiRpcTypesGenInputOrData: PezpalletReviveEvmApiRpcTypesGenInputOrData; + PezpalletReviveHoldReason: PezpalletReviveHoldReason; + PezpalletRevivePrimitivesCode: PezpalletRevivePrimitivesCode; + PezpalletRevivePrimitivesCodeUploadReturnValue: PezpalletRevivePrimitivesCodeUploadReturnValue; + PezpalletRevivePrimitivesContractAccessError: PezpalletRevivePrimitivesContractAccessError; + PezpalletRevivePrimitivesContractResultExecReturnValue: PezpalletRevivePrimitivesContractResultExecReturnValue; + PezpalletRevivePrimitivesContractResultInstantiateReturnValue: PezpalletRevivePrimitivesContractResultInstantiateReturnValue; + PezpalletRevivePrimitivesEthTransactError: PezpalletRevivePrimitivesEthTransactError; + PezpalletRevivePrimitivesEthTransactInfo: PezpalletRevivePrimitivesEthTransactInfo; + PezpalletRevivePrimitivesExecReturnValue: PezpalletRevivePrimitivesExecReturnValue; + PezpalletRevivePrimitivesInstantiateReturnValue: PezpalletRevivePrimitivesInstantiateReturnValue; + PezpalletRevivePrimitivesStorageDeposit: PezpalletRevivePrimitivesStorageDeposit; + PezpalletReviveStorageContractInfo: PezpalletReviveStorageContractInfo; + PezpalletReviveStorageDeletionQueueManager: PezpalletReviveStorageDeletionQueueManager; + PezpalletReviveUapiFlagsReturnFlags: PezpalletReviveUapiFlagsReturnFlags; + PezpalletReviveWasmCodeInfo: PezpalletReviveWasmCodeInfo; + PezpalletRootTestingCall: PezpalletRootTestingCall; + PezpalletRootTestingEvent: PezpalletRootTestingEvent; + PezpalletSafeModeCall: PezpalletSafeModeCall; + PezpalletSafeModeError: PezpalletSafeModeError; + PezpalletSafeModeEvent: PezpalletSafeModeEvent; + PezpalletSafeModeExitReason: PezpalletSafeModeExitReason; + PezpalletSafeModeHoldReason: PezpalletSafeModeHoldReason; + PezpalletSalaryCall: PezpalletSalaryCall; + PezpalletSalaryClaimState: PezpalletSalaryClaimState; + PezpalletSalaryClaimantStatus: PezpalletSalaryClaimantStatus; + PezpalletSalaryError: PezpalletSalaryError; + PezpalletSalaryEvent: PezpalletSalaryEvent; + PezpalletSalaryStatusType: PezpalletSalaryStatusType; + PezpalletSchedulerCall: PezpalletSchedulerCall; + PezpalletSchedulerError: PezpalletSchedulerError; + PezpalletSchedulerEvent: PezpalletSchedulerEvent; + PezpalletSchedulerRetryConfig: PezpalletSchedulerRetryConfig; + PezpalletSchedulerScheduled: PezpalletSchedulerScheduled; + PezpalletSessionCall: PezpalletSessionCall; + PezpalletSessionError: PezpalletSessionError; + PezpalletSessionEvent: PezpalletSessionEvent; + PezpalletSkipFeelessPaymentEvent: PezpalletSkipFeelessPaymentEvent; + PezpalletSocietyBid: PezpalletSocietyBid; + PezpalletSocietyBidKind: PezpalletSocietyBidKind; + PezpalletSocietyCall: PezpalletSocietyCall; + PezpalletSocietyCandidacy: PezpalletSocietyCandidacy; + PezpalletSocietyError: PezpalletSocietyError; + PezpalletSocietyEvent: PezpalletSocietyEvent; + PezpalletSocietyGroupParams: PezpalletSocietyGroupParams; + PezpalletSocietyIntakeRecord: PezpalletSocietyIntakeRecord; + PezpalletSocietyMemberRecord: PezpalletSocietyMemberRecord; + PezpalletSocietyPayoutRecord: PezpalletSocietyPayoutRecord; + PezpalletSocietyTally: PezpalletSocietyTally; + PezpalletSocietyVote: PezpalletSocietyVote; + PezpalletSocietyVouchingStatus: PezpalletSocietyVouchingStatus; + PezpalletStakingActiveEraInfo: PezpalletStakingActiveEraInfo; + PezpalletStakingEraRewardPoints: PezpalletStakingEraRewardPoints; + PezpalletStakingForcing: PezpalletStakingForcing; + PezpalletStakingNominations: PezpalletStakingNominations; + PezpalletStakingPezpalletCall: PezpalletStakingPezpalletCall; + PezpalletStakingPezpalletConfigOpPerbill: PezpalletStakingPezpalletConfigOpPerbill; + PezpalletStakingPezpalletConfigOpPercent: PezpalletStakingPezpalletConfigOpPercent; + PezpalletStakingPezpalletConfigOpU128: PezpalletStakingPezpalletConfigOpU128; + PezpalletStakingPezpalletConfigOpU32: PezpalletStakingPezpalletConfigOpU32; + PezpalletStakingPezpalletError: PezpalletStakingPezpalletError; + PezpalletStakingPezpalletEvent: PezpalletStakingPezpalletEvent; + PezpalletStakingPezpalletHoldReason: PezpalletStakingPezpalletHoldReason; + PezpalletStakingRewardDestination: PezpalletStakingRewardDestination; + PezpalletStakingSlashingSlashingSpans: PezpalletStakingSlashingSlashingSpans; + PezpalletStakingSlashingSpanRecord: PezpalletStakingSlashingSpanRecord; + PezpalletStakingStakingLedger: PezpalletStakingStakingLedger; + PezpalletStakingUnappliedSlash: PezpalletStakingUnappliedSlash; + PezpalletStakingUnlockChunk: PezpalletStakingUnlockChunk; + PezpalletStakingValidatorPrefs: PezpalletStakingValidatorPrefs; + PezpalletStateTrieMigrationCall: PezpalletStateTrieMigrationCall; + PezpalletStateTrieMigrationError: PezpalletStateTrieMigrationError; + PezpalletStateTrieMigrationEvent: PezpalletStateTrieMigrationEvent; + PezpalletStateTrieMigrationHoldReason: PezpalletStateTrieMigrationHoldReason; + PezpalletStateTrieMigrationMigrationCompute: PezpalletStateTrieMigrationMigrationCompute; + PezpalletStateTrieMigrationMigrationLimits: PezpalletStateTrieMigrationMigrationLimits; + PezpalletStateTrieMigrationMigrationTask: PezpalletStateTrieMigrationMigrationTask; + PezpalletStateTrieMigrationProgress: PezpalletStateTrieMigrationProgress; + PezpalletStatementEvent: PezpalletStatementEvent; + PezpalletSudoCall: PezpalletSudoCall; + PezpalletSudoError: PezpalletSudoError; + PezpalletSudoEvent: PezpalletSudoEvent; + PezpalletTimestampCall: PezpalletTimestampCall; + PezpalletTipsCall: PezpalletTipsCall; + PezpalletTipsError: PezpalletTipsError; + PezpalletTipsEvent: PezpalletTipsEvent; + PezpalletTipsOpenTip: PezpalletTipsOpenTip; + PezpalletTransactionPaymentEvent: PezpalletTransactionPaymentEvent; + PezpalletTransactionPaymentFeeDetails: PezpalletTransactionPaymentFeeDetails; + PezpalletTransactionPaymentInclusionFee: PezpalletTransactionPaymentInclusionFee; + PezpalletTransactionPaymentReleases: PezpalletTransactionPaymentReleases; + PezpalletTransactionPaymentRuntimeDispatchInfo: PezpalletTransactionPaymentRuntimeDispatchInfo; + PezpalletTransactionStorageCall: PezpalletTransactionStorageCall; + PezpalletTransactionStorageError: PezpalletTransactionStorageError; + PezpalletTransactionStorageEvent: PezpalletTransactionStorageEvent; + PezpalletTransactionStorageHoldReason: PezpalletTransactionStorageHoldReason; + PezpalletTransactionStorageTransactionInfo: PezpalletTransactionStorageTransactionInfo; + PezpalletTreasuryCall: PezpalletTreasuryCall; + PezpalletTreasuryError: PezpalletTreasuryError; + PezpalletTreasuryEvent: PezpalletTreasuryEvent; + PezpalletTreasuryPaymentState: PezpalletTreasuryPaymentState; + PezpalletTreasuryProposal: PezpalletTreasuryProposal; + PezpalletTreasurySpendStatus: PezpalletTreasurySpendStatus; + PezpalletTxPauseCall: PezpalletTxPauseCall; + PezpalletTxPauseError: PezpalletTxPauseError; + PezpalletTxPauseEvent: PezpalletTxPauseEvent; + PezpalletUniquesCall: PezpalletUniquesCall; + PezpalletUniquesCollectionDetails: PezpalletUniquesCollectionDetails; + PezpalletUniquesCollectionMetadata: PezpalletUniquesCollectionMetadata; + PezpalletUniquesDestroyWitness: PezpalletUniquesDestroyWitness; + PezpalletUniquesError: PezpalletUniquesError; + PezpalletUniquesEvent: PezpalletUniquesEvent; + PezpalletUniquesItemDetails: PezpalletUniquesItemDetails; + PezpalletUniquesItemMetadata: PezpalletUniquesItemMetadata; + PezpalletUtilityCall: PezpalletUtilityCall; + PezpalletUtilityError: PezpalletUtilityError; + PezpalletUtilityEvent: PezpalletUtilityEvent; + PezpalletVerifySignatureExtensionVerifySignature: PezpalletVerifySignatureExtensionVerifySignature; + PezpalletVestingCall: PezpalletVestingCall; + PezpalletVestingError: PezpalletVestingError; + PezpalletVestingEvent: PezpalletVestingEvent; + PezpalletVestingReleases: PezpalletVestingReleases; + PezpalletVestingVestingInfo: PezpalletVestingVestingInfo; + PezpalletWhitelistCall: PezpalletWhitelistCall; + PezpalletWhitelistError: PezpalletWhitelistError; + PezpalletWhitelistEvent: PezpalletWhitelistEvent; + PezspArithmeticArithmeticError: PezspArithmeticArithmeticError; + PezspAuthorityDiscoveryAppPublic: PezspAuthorityDiscoveryAppPublic; + PezspConsensusBabeAllowedSlots: PezspConsensusBabeAllowedSlots; + PezspConsensusBabeAppPublic: PezspConsensusBabeAppPublic; + PezspConsensusBabeBabeConfiguration: PezspConsensusBabeBabeConfiguration; + PezspConsensusBabeBabeEpochConfiguration: PezspConsensusBabeBabeEpochConfiguration; + PezspConsensusBabeDigestsNextConfigDescriptor: PezspConsensusBabeDigestsNextConfigDescriptor; + PezspConsensusBabeDigestsPreDigest: PezspConsensusBabeDigestsPreDigest; + PezspConsensusBabeDigestsPrimaryPreDigest: PezspConsensusBabeDigestsPrimaryPreDigest; + PezspConsensusBabeDigestsSecondaryPlainPreDigest: PezspConsensusBabeDigestsSecondaryPlainPreDigest; + PezspConsensusBabeDigestsSecondaryVRFPreDigest: PezspConsensusBabeDigestsSecondaryVRFPreDigest; + PezspConsensusBabeEpoch: PezspConsensusBabeEpoch; + PezspConsensusBeefyCommitment: PezspConsensusBeefyCommitment; + PezspConsensusBeefyDoubleVotingProof: PezspConsensusBeefyDoubleVotingProof; + PezspConsensusBeefyEcdsaCryptoPublic: PezspConsensusBeefyEcdsaCryptoPublic; + PezspConsensusBeefyEcdsaCryptoSignature: PezspConsensusBeefyEcdsaCryptoSignature; + PezspConsensusBeefyForkVotingProofAncestryProof: PezspConsensusBeefyForkVotingProofAncestryProof; + PezspConsensusBeefyForkVotingProofOpaqueValue: PezspConsensusBeefyForkVotingProofOpaqueValue; + PezspConsensusBeefyFutureBlockVotingProof: PezspConsensusBeefyFutureBlockVotingProof; + PezspConsensusBeefyMmrBeefyAuthoritySet: PezspConsensusBeefyMmrBeefyAuthoritySet; + PezspConsensusBeefyPayload: PezspConsensusBeefyPayload; + PezspConsensusBeefyValidatorSet: PezspConsensusBeefyValidatorSet; + PezspConsensusBeefyVoteMessage: PezspConsensusBeefyVoteMessage; + PezspConsensusGrandpaAppPublic: PezspConsensusGrandpaAppPublic; + PezspConsensusGrandpaAppSignature: PezspConsensusGrandpaAppSignature; + PezspConsensusGrandpaEquivocation: PezspConsensusGrandpaEquivocation; + PezspConsensusGrandpaEquivocationProof: PezspConsensusGrandpaEquivocationProof; + PezspConsensusSlotsEquivocationProof: PezspConsensusSlotsEquivocationProof; + PezspCoreCryptoKeyTypeId: PezspCoreCryptoKeyTypeId; + PezspCoreSr25519VrfVrfSignature: PezspCoreSr25519VrfVrfSignature; + PezspInherentsCheckInherentsResult: PezspInherentsCheckInherentsResult; + PezspInherentsInherentData: PezspInherentsInherentData; + PezspMixnetAppPublic: PezspMixnetAppPublic; + PezspMixnetAppSignature: PezspMixnetAppSignature; + PezspMixnetMixnode: PezspMixnetMixnode; + PezspMixnetMixnodesErr: PezspMixnetMixnodesErr; + PezspMixnetSessionPhase: PezspMixnetSessionPhase; + PezspMixnetSessionStatus: PezspMixnetSessionStatus; + PezspMmrPrimitivesAncestryProof: PezspMmrPrimitivesAncestryProof; + PezspMmrPrimitivesError: PezspMmrPrimitivesError; + PezspMmrPrimitivesLeafProof: PezspMmrPrimitivesLeafProof; + PezspNposElectionsElectionScore: PezspNposElectionsElectionScore; + PezspNposElectionsSupport: PezspNposElectionsSupport; + PezspRuntimeBlakeTwo256: PezspRuntimeBlakeTwo256; + PezspRuntimeBlock: PezspRuntimeBlock; + PezspRuntimeDigest: PezspRuntimeDigest; + PezspRuntimeDigestDigestItem: PezspRuntimeDigestDigestItem; + PezspRuntimeDispatchError: PezspRuntimeDispatchError; + PezspRuntimeDispatchErrorWithPostInfo: PezspRuntimeDispatchErrorWithPostInfo; + PezspRuntimeExtrinsicInclusionMode: PezspRuntimeExtrinsicInclusionMode; + PezspRuntimeHeader: PezspRuntimeHeader; + PezspRuntimeModuleError: PezspRuntimeModuleError; + PezspRuntimeMultiSignature: PezspRuntimeMultiSignature; + PezspRuntimeProvingTrieTrieError: PezspRuntimeProvingTrieTrieError; + PezspRuntimeTokenError: PezspRuntimeTokenError; + PezspRuntimeTransactionValidityInvalidTransaction: PezspRuntimeTransactionValidityInvalidTransaction; + PezspRuntimeTransactionValidityTransactionSource: PezspRuntimeTransactionValidityTransactionSource; + PezspRuntimeTransactionValidityTransactionValidityError: PezspRuntimeTransactionValidityTransactionValidityError; + PezspRuntimeTransactionValidityUnknownTransaction: PezspRuntimeTransactionValidityUnknownTransaction; + PezspRuntimeTransactionValidityValidTransaction: PezspRuntimeTransactionValidityValidTransaction; + PezspRuntimeTransactionalError: PezspRuntimeTransactionalError; + PezspSessionMembershipProof: PezspSessionMembershipProof; + PezspStakingExposure: PezspStakingExposure; + PezspStakingExposurePage: PezspStakingExposurePage; + PezspStakingIndividualExposure: PezspStakingIndividualExposure; + PezspStakingOffenceOffenceDetails: PezspStakingOffenceOffenceDetails; + PezspStakingPagedExposureMetadata: PezspStakingPagedExposureMetadata; + PezspStatementStoreProof: PezspStatementStoreProof; + PezspStatementStoreRuntimeApiInvalidStatement: PezspStatementStoreRuntimeApiInvalidStatement; + PezspStatementStoreRuntimeApiStatementSource: PezspStatementStoreRuntimeApiStatementSource; + PezspStatementStoreRuntimeApiValidStatement: PezspStatementStoreRuntimeApiValidStatement; + PezspStatementStoreStatement: PezspStatementStoreStatement; + PezspTransactionStorageProofTransactionStorageProof: PezspTransactionStorageProofTransactionStorageProof; + PezspVersionRuntimeVersion: PezspVersionRuntimeVersion; + PezspWeightsRuntimeDbWeight: PezspWeightsRuntimeDbWeight; + PezspWeightsWeightV2Weight: PezspWeightsWeightV2Weight; + } // InterfaceTypes +} // declare module diff --git a/packages/types-augment/src/registry/dicle.ts b/packages/types-augment/src/registry/dicle.ts new file mode 100644 index 0000000..16fc3e3 --- /dev/null +++ b/packages/types-augment/src/registry/dicle.ts @@ -0,0 +1,42 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +import type { DicleRuntimeConstantsProxyProxyType, PezpalletRcMigratorRecoveryRecoveryStage, PezpalletRcMigratorSocietySocietyStage, PezpalletRecoveryDepositKind, StagingDicleRuntimeBurnDestinationAccount, StagingDicleRuntimeDynamicParamsInflationFalloff, StagingDicleRuntimeDynamicParamsInflationIdealStake, StagingDicleRuntimeDynamicParamsInflationMaxInflation, StagingDicleRuntimeDynamicParamsInflationMinInflation, StagingDicleRuntimeDynamicParamsInflationParameters, StagingDicleRuntimeDynamicParamsInflationParametersKey, StagingDicleRuntimeDynamicParamsInflationParametersValue, StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots, StagingDicleRuntimeDynamicParamsTreasuryBurnDestination, StagingDicleRuntimeDynamicParamsTreasuryBurnPortion, StagingDicleRuntimeDynamicParamsTreasuryParameters, StagingDicleRuntimeDynamicParamsTreasuryParametersKey, StagingDicleRuntimeDynamicParamsTreasuryParametersValue, StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin, StagingDicleRuntimeNposCompactSolution24, StagingDicleRuntimeOriginCaller, StagingDicleRuntimeRuntime, StagingDicleRuntimeRuntimeError, StagingDicleRuntimeRuntimeFreezeReason, StagingDicleRuntimeRuntimeHoldReason, StagingDicleRuntimeRuntimeParameters, StagingDicleRuntimeRuntimeParametersKey, StagingDicleRuntimeRuntimeParametersValue, StagingDicleRuntimeSessionKeys } from '@pezkuwi/types/lookup'; + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + DicleRuntimeConstantsProxyProxyType: DicleRuntimeConstantsProxyProxyType; + PezpalletRcMigratorRecoveryRecoveryStage: PezpalletRcMigratorRecoveryRecoveryStage; + PezpalletRcMigratorSocietySocietyStage: PezpalletRcMigratorSocietySocietyStage; + PezpalletRecoveryDepositKind: PezpalletRecoveryDepositKind; + StagingDicleRuntimeBurnDestinationAccount: StagingDicleRuntimeBurnDestinationAccount; + StagingDicleRuntimeDynamicParamsInflationFalloff: StagingDicleRuntimeDynamicParamsInflationFalloff; + StagingDicleRuntimeDynamicParamsInflationIdealStake: StagingDicleRuntimeDynamicParamsInflationIdealStake; + StagingDicleRuntimeDynamicParamsInflationMaxInflation: StagingDicleRuntimeDynamicParamsInflationMaxInflation; + StagingDicleRuntimeDynamicParamsInflationMinInflation: StagingDicleRuntimeDynamicParamsInflationMinInflation; + StagingDicleRuntimeDynamicParamsInflationParameters: StagingDicleRuntimeDynamicParamsInflationParameters; + StagingDicleRuntimeDynamicParamsInflationParametersKey: StagingDicleRuntimeDynamicParamsInflationParametersKey; + StagingDicleRuntimeDynamicParamsInflationParametersValue: StagingDicleRuntimeDynamicParamsInflationParametersValue; + StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots: StagingDicleRuntimeDynamicParamsInflationUseAuctionSlots; + StagingDicleRuntimeDynamicParamsTreasuryBurnDestination: StagingDicleRuntimeDynamicParamsTreasuryBurnDestination; + StagingDicleRuntimeDynamicParamsTreasuryBurnPortion: StagingDicleRuntimeDynamicParamsTreasuryBurnPortion; + StagingDicleRuntimeDynamicParamsTreasuryParameters: StagingDicleRuntimeDynamicParamsTreasuryParameters; + StagingDicleRuntimeDynamicParamsTreasuryParametersKey: StagingDicleRuntimeDynamicParamsTreasuryParametersKey; + StagingDicleRuntimeDynamicParamsTreasuryParametersValue: StagingDicleRuntimeDynamicParamsTreasuryParametersValue; + StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: StagingDicleRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + StagingDicleRuntimeNposCompactSolution24: StagingDicleRuntimeNposCompactSolution24; + StagingDicleRuntimeOriginCaller: StagingDicleRuntimeOriginCaller; + StagingDicleRuntimeRuntime: StagingDicleRuntimeRuntime; + StagingDicleRuntimeRuntimeError: StagingDicleRuntimeRuntimeError; + StagingDicleRuntimeRuntimeFreezeReason: StagingDicleRuntimeRuntimeFreezeReason; + StagingDicleRuntimeRuntimeHoldReason: StagingDicleRuntimeRuntimeHoldReason; + StagingDicleRuntimeRuntimeParameters: StagingDicleRuntimeRuntimeParameters; + StagingDicleRuntimeRuntimeParametersKey: StagingDicleRuntimeRuntimeParametersKey; + StagingDicleRuntimeRuntimeParametersValue: StagingDicleRuntimeRuntimeParametersValue; + StagingDicleRuntimeSessionKeys: StagingDicleRuntimeSessionKeys; + } // InterfaceTypes +} // declare module diff --git a/packages/types-augment/src/registry/index.ts b/packages/types-augment/src/registry/index.ts new file mode 100644 index 0000000..6391556 --- /dev/null +++ b/packages/types-augment/src/registry/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-lookup authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './interfaces.js'; diff --git a/packages/types-augment/src/registry/interfaces.ts b/packages/types-augment/src/registry/interfaces.ts new file mode 100644 index 0000000..f6fb9d1 --- /dev/null +++ b/packages/types-augment/src/registry/interfaces.ts @@ -0,0 +1,1375 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +import type { Data, StorageKey } from '@pezkuwi/types'; +import type { BitVec, Bool, Bytes, F32, F64, I128, I16, I256, I32, I64, I8, ISize, Json, Null, OptionBool, Raw, Text, Type, U128, U16, U256, U32, U64, U8, USize, bool, f32, f64, i128, i16, i256, i32, i64, i8, isize, u128, u16, u256, u32, u64, u8, usize } from '@pezkuwi/types-codec'; +import type { TAssetConversion } from '@pezkuwi/types/interfaces/assetConversion'; +import type { AssetApproval, AssetApprovalKey, AssetBalance, AssetDestroyWitness, AssetDetails, AssetMetadata, TAssetBalance, TAssetDepositBalance } from '@pezkuwi/types/interfaces/assets'; +import type { BlockAttestations, IncludedBlocks, MoreAttestations } from '@pezkuwi/types/interfaces/attestations'; +import type { RawAuraPreDigest } from '@pezkuwi/types/interfaces/aura'; +import type { ExtrinsicOrHash, ExtrinsicStatus } from '@pezkuwi/types/interfaces/author'; +import type { UncleEntryItem } from '@pezkuwi/types/interfaces/authorship'; +import type { AllowedSlots, BabeAuthorityWeight, BabeBlockWeight, BabeEpochConfiguration, BabeEquivocationProof, BabeGenesisConfiguration, BabeGenesisConfigurationV1, BabeWeight, Epoch, EpochAuthorship, MaybeRandomness, MaybeVrf, NextConfigDescriptor, NextConfigDescriptorV1, OpaqueKeyOwnershipProof, Randomness, RawBabePreDigest, RawBabePreDigestCompat, RawBabePreDigestPrimary, RawBabePreDigestPrimaryTo159, RawBabePreDigestSecondaryPlain, RawBabePreDigestSecondaryTo159, RawBabePreDigestSecondaryVRF, RawBabePreDigestTo159, SlotNumber, VrfData, VrfOutput, VrfProof } from '@pezkuwi/types/interfaces/babe'; +import type { AccountData, BalanceLock, BalanceLockTo212, BalanceStatus, Reasons, ReserveData, ReserveIdentifier, VestingSchedule, WithdrawReasons } from '@pezkuwi/types/interfaces/balances'; +import type { BeefyAuthoritySet, BeefyCommitment, BeefyCompactSignedCommitment, BeefyEquivocationProof, BeefyId, BeefyNextAuthoritySet, BeefyPayload, BeefyPayloadId, BeefySignedCommitment, BeefyVersionedFinalityProof, BeefyVoteMessage, MmrRootHash, ValidatorSet, ValidatorSetId } from '@pezkuwi/types/interfaces/beefy'; +import type { BenchmarkBatch, BenchmarkConfig, BenchmarkList, BenchmarkMetadata, BenchmarkParameter, BenchmarkResult } from '@pezkuwi/types/interfaces/benchmark'; +import type { CheckInherentsResult, InherentData, InherentIdentifier } from '@pezkuwi/types/interfaces/blockbuilder'; +import type { BridgeMessageId, BridgedBlockHash, BridgedBlockNumber, BridgedHeader, CallOrigin, ChainId, DeliveredMessages, DispatchFeePayment, InboundLaneData, InboundRelayer, InitializationData, LaneId, MessageData, MessageKey, MessageNonce, MessagesDeliveryProofOf, MessagesProofOf, OperatingMode, OutboundLaneData, OutboundMessageFee, OutboundPayload, Parameter, RelayerId, UnrewardedRelayer, UnrewardedRelayersState } from '@pezkuwi/types/interfaces/bridges'; +import type { BlockHash } from '@pezkuwi/types/interfaces/chain'; +import type { PrefixedStorageKey } from '@pezkuwi/types/interfaces/childstate'; +import type { StatementKind } from '@pezkuwi/types/interfaces/claims'; +import type { CollectiveOrigin, MemberCount, ProposalIndex, Votes, VotesTo230 } from '@pezkuwi/types/interfaces/collective'; +import type { AuthorityId, RawVRFOutput } from '@pezkuwi/types/interfaces/consensus'; +import type { AliveContractInfo, CodeHash, CodeSource, CodeUploadRequest, CodeUploadResult, CodeUploadResultValue, ContractCallFlags, ContractCallRequest, ContractExecResult, ContractExecResultOk, ContractExecResultResult, ContractExecResultSuccessTo255, ContractExecResultSuccessTo260, ContractExecResultTo255, ContractExecResultTo260, ContractExecResultTo267, ContractExecResultU64, ContractInfo, ContractInstantiateResult, ContractInstantiateResultTo267, ContractInstantiateResultTo299, ContractInstantiateResultU64, ContractReturnFlags, ContractStorageKey, DeletedContract, ExecReturnValue, Gas, HostFnWeights, HostFnWeightsTo264, InstantiateRequest, InstantiateRequestV1, InstantiateRequestV2, InstantiateReturnValue, InstantiateReturnValueOk, InstantiateReturnValueTo267, InstructionWeights, Limits, LimitsTo264, PrefabWasmModule, RentProjection, Schedule, ScheduleTo212, ScheduleTo258, ScheduleTo264, SeedOf, StorageDeposit, TombstoneContractInfo, TrieId } from '@pezkuwi/types/interfaces/contracts'; +import type { ContractConstructorSpecLatest, ContractConstructorSpecV0, ContractConstructorSpecV1, ContractConstructorSpecV2, ContractConstructorSpecV3, ContractConstructorSpecV4, ContractContractSpecV0, ContractContractSpecV1, ContractContractSpecV2, ContractContractSpecV3, ContractContractSpecV4, ContractContractSpecV5, ContractContractSpecV6, ContractCryptoHasher, ContractDiscriminant, ContractDisplayName, ContractEnvironmentV4, ContractEventParamSpecLatest, ContractEventParamSpecV0, ContractEventParamSpecV2, ContractEventSpecLatest, ContractEventSpecV0, ContractEventSpecV1, ContractEventSpecV2, ContractEventSpecV3, ContractLayoutArray, ContractLayoutCell, ContractLayoutEnum, ContractLayoutHash, ContractLayoutHashingStrategy, ContractLayoutKey, ContractLayoutStruct, ContractLayoutStructField, ContractMessageParamSpecLatest, ContractMessageParamSpecV0, ContractMessageParamSpecV2, ContractMessageSpecLatest, ContractMessageSpecV0, ContractMessageSpecV1, ContractMessageSpecV2, ContractMessageSpecV3, ContractMetadata, ContractMetadataLatest, ContractMetadataV0, ContractMetadataV1, ContractMetadataV2, ContractMetadataV3, ContractMetadataV4, ContractMetadataV5, ContractMetadataV6, ContractProject, ContractProjectContract, ContractProjectInfo, ContractProjectSource, ContractProjectV0, ContractReviveProjectInfo, ContractReviveProjectSource, ContractSelector, ContractStorageLayout, ContractTypeSpec } from '@pezkuwi/types/interfaces/contractsAbi'; +import type { FundIndex, FundInfo, LastContribution, TrieIndex } from '@pezkuwi/types/interfaces/crowdloan'; +import type { AccountVote, AccountVoteSplit, AccountVoteStandard, Conviction, Delegations, PreimageStatus, PreimageStatusAvailable, PriorLock, PropIndex, Proposal, ProxyState, ReferendumIndex, ReferendumInfo, ReferendumInfoFinished, ReferendumInfoTo239, ReferendumStatus, Tally, Voting, VotingDelegating, VotingDirect, VotingDirectVote } from '@pezkuwi/types/interfaces/democracy'; +import type { BlockStats } from '@pezkuwi/types/interfaces/dev'; +import type { CallDryRunEffects, DispatchResultWithPostInfo, PostDispatchInfo, XcmDryRunApiError, XcmDryRunEffects } from '@pezkuwi/types/interfaces/dryRunApi'; +import type { ApprovalFlag, DefunctVoter, Renouncing, SetIndex, Vote, VoteIndex, VoteThreshold, VoterInfo } from '@pezkuwi/types/interfaces/elections'; +import type { CreatedBlock, ImportedAux } from '@pezkuwi/types/interfaces/engine'; +import type { BlockV0, BlockV1, BlockV2, BlockV3, EIP1559Transaction, EIP2930Transaction, EIP7702Transaction, EthAccessList, EthAccessListItem, EthAccount, EthAddress, EthAuthorizationList, EthAuthorizationListItem, EthAuthorizationSignature, EthBlock, EthBloom, EthCallRequest, EthFeeHistory, EthFilter, EthFilterAddress, EthFilterChanges, EthFilterTopic, EthFilterTopicEntry, EthFilterTopicInner, EthHeader, EthLegacyTransactionSignature, EthLog, EthReceipt, EthReceiptV0, EthReceiptV3, EthReceiptV4, EthRichBlock, EthRichHeader, EthStorageProof, EthSubKind, EthSubParams, EthSubResult, EthSyncInfo, EthSyncStatus, EthTransaction, EthTransactionAction, EthTransactionCondition, EthTransactionRequest, EthTransactionSignature, EthTransactionStatus, EthWork, EthereumAccountId, EthereumAddress, EthereumLookupSource, EthereumSignature, LegacyTransaction, TransactionV0, TransactionV1, TransactionV2, TransactionV3 } from '@pezkuwi/types/interfaces/eth'; +import type { EvmAccount, EvmCallInfo, EvmCallInfoV2, EvmCreateInfo, EvmCreateInfoV2, EvmLog, EvmVicinity, EvmWeightInfo, ExitError, ExitFatal, ExitReason, ExitRevert, ExitSucceed } from '@pezkuwi/types/interfaces/evm'; +import type { AnySignature, EcdsaSignature, Ed25519Signature, Era, Extrinsic, ExtrinsicEra, ExtrinsicPayload, ExtrinsicPayloadUnknown, ExtrinsicPayloadV4, ExtrinsicPayloadV5, ExtrinsicSignature, ExtrinsicSignatureV4, ExtrinsicSignatureV5, ExtrinsicUnknown, ExtrinsicV4, ExtrinsicV5, ImmortalEra, MortalEra, MultiSignature, Signature, SignerPayload, Sr25519Signature } from '@pezkuwi/types/interfaces/extrinsics'; +import type { FungiblesAccessError } from '@pezkuwi/types/interfaces/fungibles'; +import type { AssetOptions, Owner, PermissionLatest, PermissionVersions, PermissionsV1 } from '@pezkuwi/types/interfaces/genericAsset'; +import type { GenesisBuildErr } from '@pezkuwi/types/interfaces/genesisBuilder'; +import type { ActiveGilt, ActiveGiltsTotal, ActiveIndex, GiltBid } from '@pezkuwi/types/interfaces/gilt'; +import type { AuthorityIndex, AuthorityList, AuthoritySet, AuthoritySetChange, AuthoritySetChanges, AuthorityWeight, DelayKind, DelayKindBest, EncodedFinalityProofs, ForkTreePendingChange, ForkTreePendingChangeNode, GrandpaCommit, GrandpaEquivocation, GrandpaEquivocationProof, GrandpaEquivocationValue, GrandpaJustification, GrandpaPrecommit, GrandpaPrevote, GrandpaSignedPrecommit, JustificationNotification, KeyOwnerProof, NextAuthority, PendingChange, PendingPause, PendingResume, Precommits, Prevotes, ReportedRoundStates, RoundState, SetId, StoredPendingChange, StoredState } from '@pezkuwi/types/interfaces/grandpa'; +import type { IdentityFields, IdentityInfo, IdentityInfoAdditional, IdentityInfoTo198, IdentityJudgement, RegistrarIndex, RegistrarInfo, Registration, RegistrationJudgement, RegistrationTo198 } from '@pezkuwi/types/interfaces/identity'; +import type { AuthIndex, AuthoritySignature, Heartbeat, HeartbeatTo244, OpaqueMultiaddr, OpaqueNetworkState, OpaquePeerId } from '@pezkuwi/types/interfaces/imOnline'; +import type { CallIndex, LotteryConfig } from '@pezkuwi/types/interfaces/lottery'; +import type { CustomMetadata15, CustomValueMetadata15, EnumDeprecationInfoV16, ErrorMetadataLatest, ErrorMetadataV10, ErrorMetadataV11, ErrorMetadataV12, ErrorMetadataV13, ErrorMetadataV14, ErrorMetadataV9, EventMetadataLatest, EventMetadataV10, EventMetadataV11, EventMetadataV12, EventMetadataV13, EventMetadataV14, EventMetadataV9, ExtrinsicMetadataLatest, ExtrinsicMetadataV11, ExtrinsicMetadataV12, ExtrinsicMetadataV13, ExtrinsicMetadataV14, ExtrinsicMetadataV15, ExtrinsicMetadataV16, FunctionArgumentMetadataLatest, FunctionArgumentMetadataV10, FunctionArgumentMetadataV11, FunctionArgumentMetadataV12, FunctionArgumentMetadataV13, FunctionArgumentMetadataV14, FunctionArgumentMetadataV9, FunctionMetadataLatest, FunctionMetadataV10, FunctionMetadataV11, FunctionMetadataV12, FunctionMetadataV13, FunctionMetadataV14, FunctionMetadataV9, ItemDeprecationInfoV16, MetadataAll, MetadataLatest, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV15, MetadataV16, MetadataV9, ModuleConstantMetadataV10, ModuleConstantMetadataV11, ModuleConstantMetadataV12, ModuleConstantMetadataV13, ModuleConstantMetadataV9, ModuleMetadataV10, ModuleMetadataV11, ModuleMetadataV12, ModuleMetadataV13, ModuleMetadataV9, OpaqueMetadata, OuterEnums15, PezpalletAssociatedTypeMetadataV16, PezpalletCallMetadataLatest, PezpalletCallMetadataV14, PezpalletCallMetadataV16, PezpalletConstantMetadataLatest, PezpalletConstantMetadataV14, PezpalletConstantMetadataV16, PezpalletErrorMetadataLatest, PezpalletErrorMetadataV14, PezpalletErrorMetadataV16, PezpalletEventMetadataLatest, PezpalletEventMetadataV14, PezpalletEventMetadataV16, PezpalletMetadataLatest, PezpalletMetadataV14, PezpalletMetadataV15, PezpalletMetadataV16, PezpalletStorageMetadataLatest, PezpalletStorageMetadataV14, PezpalletStorageMetadataV16, PezpalletViewFunctionMetadataV16, PortableType, PortableTypeV14, RuntimeApiMetadataLatest, RuntimeApiMetadataV15, RuntimeApiMetadataV16, RuntimeApiMethodMetadataV15, RuntimeApiMethodMetadataV16, RuntimeApiMethodParamMetadataV15, SignedExtensionMetadataLatest, SignedExtensionMetadataV14, StorageEntryMetadataLatest, StorageEntryMetadataV10, StorageEntryMetadataV11, StorageEntryMetadataV12, StorageEntryMetadataV13, StorageEntryMetadataV14, StorageEntryMetadataV16, StorageEntryMetadataV9, StorageEntryModifierLatest, StorageEntryModifierV10, StorageEntryModifierV11, StorageEntryModifierV12, StorageEntryModifierV13, StorageEntryModifierV14, StorageEntryModifierV9, StorageEntryTypeLatest, StorageEntryTypeV10, StorageEntryTypeV11, StorageEntryTypeV12, StorageEntryTypeV13, StorageEntryTypeV14, StorageEntryTypeV9, StorageHasher, StorageHasherV10, StorageHasherV11, StorageHasherV12, StorageHasherV13, StorageHasherV14, StorageHasherV9, StorageMetadataV10, StorageMetadataV11, StorageMetadataV12, StorageMetadataV13, StorageMetadataV9, TransactionExtensionMetadataLatest, TransactionExtensionMetadataV16, VariantDeprecationInfoV16 } from '@pezkuwi/types/interfaces/metadata'; +import type { Mixnode, MixnodesErr, SessionPhase, SessionStatus } from '@pezkuwi/types/interfaces/mixnet'; +import type { MmrBatchProof, MmrEncodableOpaqueLeaf, MmrError, MmrHash, MmrLeafBatchProof, MmrLeafIndex, MmrLeafProof, MmrNodeIndex, MmrProof } from '@pezkuwi/types/interfaces/mmr'; +import type { NftCollectionId, NftItemId } from '@pezkuwi/types/interfaces/nfts'; +import type { NpApiError, NpPoolId } from '@pezkuwi/types/interfaces/nompools'; +import type { StorageKind } from '@pezkuwi/types/interfaces/offchain'; +import type { DeferredOffenceOf, Kind, OffenceDetails, Offender, OpaqueTimeSlot, ReportIdOf, Reporter } from '@pezkuwi/types/interfaces/offences'; +import type { FeeDetails, InclusionFee, RuntimeDispatchInfo, RuntimeDispatchInfoV1, RuntimeDispatchInfoV2 } from '@pezkuwi/types/interfaces/payment'; +import type { CollationInfo, CollationInfoV1, ConfigData, MessageId, OverweightIndex, PageCounter, PageIndexData } from '@pezkuwi/types/interfaces/pezcumulus'; +import type { Approvals } from '@pezkuwi/types/interfaces/poll'; +import type { ProxyAnnouncement, ProxyDefinition, ProxyType } from '@pezkuwi/types/interfaces/proxy'; +import type { AccountStatus, AccountValidity } from '@pezkuwi/types/interfaces/purchase'; +import type { ActiveRecovery, RecoveryConfig } from '@pezkuwi/types/interfaces/recovery'; +import type { RpcMethods } from '@pezkuwi/types/interfaces/rpc'; +import type { AccountId, AccountId20, AccountId32, AccountId33, AccountIdOf, AccountIndex, Address, AssetId, Balance, BalanceOf, Block, BlockNumber, BlockNumberFor, BlockNumberOf, Call, CallHash, CallHashOf, ChangesTrieConfiguration, ChangesTrieSignal, CodecHash, Consensus, ConsensusEngineId, CrateVersion, Digest, DigestItem, EncodedJustification, ExtrinsicInclusionMode, ExtrinsicsWeight, Fixed128, Fixed64, FixedI128, FixedI64, FixedU128, FixedU64, H1024, H128, H160, H2048, H256, H32, H512, H64, Hash, Header, HeaderPartial, I32F32, Index, IndicesLookupSource, Justification, Justifications, KeyTypeId, KeyValue, LockIdentifier, LookupSource, LookupTarget, ModuleId, Moment, MultiAddress, MultiSigner, OpaqueCall, Origin, OriginCaller, Pays, PerU16, Perbill, Percent, Permill, Perquintill, PezpalletId, PezpalletVersion, PezpalletsOrigin, Phantom, PhantomData, PreRuntime, Releases, RuntimeCall, RuntimeDbWeight, RuntimeEvent, Seal, SealV0, SignedBlock, SignedBlockWithJustification, SignedBlockWithJustifications, Slot, SlotDuration, StorageData, StorageInfo, StorageProof, TransactionInfo, TransactionLongevity, TransactionPriority, TransactionStorageProof, TransactionTag, U32F32, ValidatorId, ValidatorIdOf, Weight, WeightMultiplier, WeightV0, WeightV1, WeightV2 } from '@pezkuwi/types/interfaces/runtime'; +import type { Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDef, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefCompact, Si0TypeDefComposite, Si0TypeDefPhantom, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefTuple, Si0TypeDefVariant, Si0TypeParameter, Si0Variant, Si1Field, Si1LookupTypeId, Si1Path, Si1Type, Si1TypeDef, Si1TypeDefArray, Si1TypeDefBitSequence, Si1TypeDefCompact, Si1TypeDefComposite, Si1TypeDefPrimitive, Si1TypeDefSequence, Si1TypeDefTuple, Si1TypeDefVariant, Si1TypeParameter, Si1Variant, SiField, SiLookupTypeId, SiPath, SiType, SiTypeDef, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefPrimitive, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '@pezkuwi/types/interfaces/scaleInfo'; +import type { Period, Priority, SchedulePeriod, SchedulePriority, Scheduled, ScheduledTo254, TaskAddress } from '@pezkuwi/types/interfaces/scheduler'; +import type { BeefyKey, FullIdentification, IdentificationTuple, Keys, MembershipProof, SessionIndex, SessionKeys1, SessionKeys10, SessionKeys10B, SessionKeys2, SessionKeys3, SessionKeys4, SessionKeys5, SessionKeys6, SessionKeys6B, SessionKeys7, SessionKeys7B, SessionKeys8, SessionKeys8B, SessionKeys9, SessionKeys9B, ValidatorCount } from '@pezkuwi/types/interfaces/session'; +import type { Bid, BidKind, SocietyJudgement, SocietyVote, StrikeCount, VouchingStatus } from '@pezkuwi/types/interfaces/society'; +import type { ActiveEraInfo, CompactAssignments, CompactAssignmentsTo257, CompactAssignmentsTo265, CompactAssignmentsWith16, CompactAssignmentsWith24, CompactScore, CompactScoreCompact, ElectionCompute, ElectionPhase, ElectionResult, ElectionResultToSpec10, ElectionScore, ElectionSize, ElectionStatus, EraIndex, EraPoints, EraRewardPoints, EraRewards, Exposure, ExtendedBalance, Forcing, IndividualExposure, KeyType, MomentOf, Nominations, NominatorIndex, NominatorIndexCompact, OffchainAccuracy, OffchainAccuracyCompact, PhragmenScore, Points, RawSolution, RawSolutionTo265, RawSolutionWith16, RawSolutionWith24, ReadySolution, RewardDestination, RewardPoint, RoundSnapshot, SeatHolder, SignedSubmission, SignedSubmissionOf, SignedSubmissionTo276, SlashJournalEntry, SlashingSpans, SlashingSpansTo204, SolutionOrSnapshotSize, SolutionSupport, SolutionSupports, SpanIndex, SpanRecord, StakingLedger, StakingLedgerTo223, StakingLedgerTo240, SubmissionIndicesOf, Supports, UnappliedSlash, UnappliedSlashOther, UnlockChunk, ValidatorIndex, ValidatorIndexCompact, ValidatorPrefs, ValidatorPrefsTo145, ValidatorPrefsTo196, ValidatorPrefsWithBlocked, ValidatorPrefsWithCommission, VoteWeight, Voter } from '@pezkuwi/types/interfaces/staking'; +import type { ApiId, BlockTrace, BlockTraceEvent, BlockTraceEventData, BlockTraceSpan, KeyValueOption, MigrationStatusResult, ReadProof, RuntimeVersion, RuntimeVersionApi, RuntimeVersionPartial, RuntimeVersionPre3, RuntimeVersionPre4, SpecVersion, StorageChangeSet, TraceBlockResponse, TraceError } from '@pezkuwi/types/interfaces/state'; +import type { StatementStoreInvalidStatement, StatementStoreStatementSource, StatementStoreValidStatement } from '@pezkuwi/types/interfaces/statement'; +import type { WeightToFeeCoefficient } from '@pezkuwi/types/interfaces/support'; +import type { AccountInfo, AccountInfoWithDualRefCount, AccountInfoWithProviders, AccountInfoWithRefCount, AccountInfoWithRefCountU8, AccountInfoWithTripleRefCount, ApplyExtrinsicResult, ApplyExtrinsicResultPre6, ArithmeticError, BlockLength, BlockWeights, ChainProperties, ChainType, ConsumedWeight, DigestOf, DispatchClass, DispatchError, DispatchErrorModule, DispatchErrorModulePre6, DispatchErrorModuleU8, DispatchErrorModuleU8a, DispatchErrorPre6, DispatchErrorPre6First, DispatchErrorTo198, DispatchInfo, DispatchInfoTo190, DispatchInfoTo244, DispatchOutcome, DispatchOutcomePre6, DispatchResult, DispatchResultOf, DispatchResultTo198, Event, EventId, EventIndex, EventRecord, Health, InvalidTransaction, Key, LastRuntimeUpgradeInfo, NetworkState, NetworkStatePeerset, NetworkStatePeersetInfo, NodeRole, NotConnectedPeer, Peer, PeerEndpoint, PeerEndpointAddr, PeerInfo, PeerPing, PerDispatchClassU32, PerDispatchClassWeight, PerDispatchClassWeightsPerClass, Phase, RawOrigin, RefCount, RefCountTo259, SyncState, SystemOrigin, TokenError, TransactionValidityError, TransactionalError, UnknownTransaction, WeightPerClass } from '@pezkuwi/types/interfaces/system'; +import type { AbridgedCandidateReceipt, AbridgedHostConfiguration, AbridgedHrmpChannel, ApprovalVotingParams, AssignmentId, AssignmentKind, AsyncBackingParams, AttestedCandidate, AuctionIndex, AuthorityDiscoveryId, AvailabilityBitfield, AvailabilityBitfieldRecord, BackedCandidate, BackingState, Bidder, BufferedSessionChange, CandidateCommitments, CandidateDescriptor, CandidateEvent, CandidateHash, CandidateInfo, CandidatePendingAvailability, CandidateReceipt, CollatorId, CollatorSignature, CommittedCandidateReceipt, Constraints, CoreAssignment, CoreIndex, CoreOccupied, CoreState, DisputeLocation, DisputeProof, DisputeResult, DisputeState, DisputeStatement, DisputeStatementSet, DisputesTimeSlot, DoubleVoteReport, DownwardMessage, ExecutorParam, ExecutorParams, ExecutorParamsHash, ExplicitDisputeStatement, GlobalValidationData, GlobalValidationSchedule, GroupIndex, GroupRotationInfo, HeadData, HostConfiguration, HrmpChannel, HrmpChannelId, HrmpOpenChannelRequest, InboundDownwardMessage, InboundHrmpLimitations, InboundHrmpMessage, InboundHrmpMessages, IncomingTeyrchain, IncomingTeyrchainDeploy, IncomingTeyrchainFixed, InvalidDisputeStatementKind, LeasePeriod, LeasePeriodOf, LocalValidationData, MessageIngestionType, MessageQueueChain, MessagingStateSnapshot, MessagingStateSnapshotEgressEntry, MultiDisputeStatementSet, NewBidder, NodeFeatures, OccupiedCore, OccupiedCoreAssumption, OldV1SessionInfo, OutboundHrmpChannelLimitations, OutboundHrmpMessage, ParaGenesisArgs, ParaId, ParaInfo, ParaLifecycle, ParaPastCodeMeta, ParaScheduling, ParaValidatorIndex, ParathreadClaim, ParathreadClaimQueue, ParathreadEntry, PendingSlashes, PersistedValidationData, PvfCheckStatement, PvfExecTimeoutKind, PvfPrepTimeoutKind, QueuedParathread, RegisteredTeyrchainInfo, RelayBlockNumber, RelayChainBlockNumber, RelayChainHash, RelayHash, Remark, ReplacementTimes, Retriable, ScheduledCore, Scheduling, ScrapedOnChainVotes, ServiceQuality, SessionInfo, SessionInfoValidatorGroup, SignedAvailabilityBitfield, SignedAvailabilityBitfields, SigningContext, SlashingOffenceKind, SlotRange, SlotRange10, Statement, SubId, SystemInherentData, TeyrchainDispatchOrigin, TeyrchainInherentData, TeyrchainProposal, TeyrchainsInherentData, TransientValidationData, UpgradeGoAhead, UpgradeRestriction, UpwardMessage, ValidDisputeStatementKind, ValidationCode, ValidationCodeHash, ValidationData, ValidationDataType, ValidationFunctionParams, ValidatorSignature, ValidityAttestation, VecInboundHrmpMessage, WinnersData, WinnersData10, WinnersDataTuple, WinnersDataTuple10, WinningData, WinningData10, WinningDataEntry } from '@pezkuwi/types/interfaces/teyrchains'; +import type { Bounty, BountyIndex, BountyStatus, BountyStatusActive, BountyStatusCuratorProposed, BountyStatusPendingPayout, OpenTip, OpenTipFinderTo225, OpenTipTip, OpenTipTo225, TreasuryProposal } from '@pezkuwi/types/interfaces/treasury'; +import type { Multiplier } from '@pezkuwi/types/interfaces/txpayment'; +import type { TransactionSource, TransactionValidity, ValidTransaction } from '@pezkuwi/types/interfaces/txqueue'; +import type { ClassDetails, ClassId, ClassMetadata, DepositBalance, DepositBalanceOf, DestroyWitness, InstanceDetails, InstanceId, InstanceMetadata } from '@pezkuwi/types/interfaces/uniques'; +import type { Multisig, Timepoint } from '@pezkuwi/types/interfaces/utility'; +import type { VestingInfo } from '@pezkuwi/types/interfaces/vesting'; +import type { AssetIdV2, AssetIdV3, AssetIdV4, AssetIdV5, AssetInstance, AssetInstanceV0, AssetInstanceV1, AssetInstanceV2, AssetInstanceV3, AssetInstanceV4, AssetInstanceV5, BodyId, BodyIdV2, BodyIdV3, BodyPart, BodyPartV2, BodyPartV3, DoubleEncodedCall, Fungibility, FungibilityV0, FungibilityV1, FungibilityV2, FungibilityV3, FungibilityV4, FungibilityV5, HintV5, InboundStatus, InstructionV2, InstructionV3, InstructionV4, InstructionV5, InteriorMultiLocation, InteriorMultiLocationV2, InteriorMultiLocationV3, InteriorMultiLocationV5, Junction, JunctionV0, JunctionV1, JunctionV2, JunctionV3, JunctionV4, JunctionV5, Junctions, JunctionsV1, JunctionsV2, JunctionsV3, JunctionsV4, JunctionsV5, MaxPezpalletNameLen, MaxPezpalletsInfo, MaybeErrorCodeV3, MultiAsset, MultiAssetFilter, MultiAssetFilterV1, MultiAssetFilterV2, MultiAssetFilterV3, MultiAssetFilterV4, MultiAssetFilterV5, MultiAssetTransferFilterV5, MultiAssetV0, MultiAssetV1, MultiAssetV2, MultiAssetV3, MultiAssetV4, MultiAssetV5, MultiAssets, MultiAssetsV1, MultiAssetsV2, MultiAssetsV3, MultiAssetsV4, MultiAssetsV5, MultiLocation, MultiLocationV0, MultiLocationV1, MultiLocationV2, MultiLocationV3, MultiLocationV4, MultiLocationV5, NetworkId, NetworkIdV2, NetworkIdV3, NetworkIdV4, NetworkIdV5, OriginKindV0, OriginKindV1, OriginKindV2, OriginKindV3, OriginKindV4, OutboundStatus, Outcome, OutcomeV4, PezpalletInfoV3, PezpalletInfoV4, PezpalletInfoV5, QueryId, QueryResponseInfoV3, QueryResponseInfoV4, QueryResponseInfoV5, QueryStatus, QueueConfigData, Response, ResponseV0, ResponseV1, ResponseV2, ResponseV2Error, ResponseV3, ResponseV3Error, ResponseV3Result, ResponseV4, ResponseV5, UncheckedFungibilityV4, UncheckedFungibilityV5, VersionMigrationStage, VersionV3, VersionV4, VersionedMultiAsset, VersionedMultiAssets, VersionedMultiLocation, VersionedResponse, VersionedXcm, WeightLimitV2, WeightLimitV3, WildFungibility, WildFungibilityV0, WildFungibilityV1, WildFungibilityV2, WildFungibilityV3, WildFungibilityV4, WildFungibilityV5, WildMultiAsset, WildMultiAssetV1, WildMultiAssetV2, WildMultiAssetV3, WildMultiAssetV4, WildMultiAssetV5, Xcm, XcmAssetId, XcmError, XcmErrorV0, XcmErrorV1, XcmErrorV2, XcmErrorV3, XcmErrorV4, XcmErrorV5, XcmOrderV0, XcmOrderV1, XcmOrigin, XcmOriginKind, XcmV0, XcmV1, XcmV2, XcmV3, XcmV4, XcmV5, XcmVersion, XcmpMessageFormat } from '@pezkuwi/types/interfaces/xcm'; +import type { XcmPaymentApiError } from '@pezkuwi/types/interfaces/xcmPaymentApi'; +import type { Error } from '@pezkuwi/types/interfaces/xcmRuntimeApi'; + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + AbridgedCandidateReceipt: AbridgedCandidateReceipt; + AbridgedHostConfiguration: AbridgedHostConfiguration; + AbridgedHrmpChannel: AbridgedHrmpChannel; + AccountData: AccountData; + AccountId: AccountId; + AccountId20: AccountId20; + AccountId32: AccountId32; + AccountId33: AccountId33; + AccountIdOf: AccountIdOf; + AccountIndex: AccountIndex; + AccountInfo: AccountInfo; + AccountInfoWithDualRefCount: AccountInfoWithDualRefCount; + AccountInfoWithProviders: AccountInfoWithProviders; + AccountInfoWithRefCount: AccountInfoWithRefCount; + AccountInfoWithRefCountU8: AccountInfoWithRefCountU8; + AccountInfoWithTripleRefCount: AccountInfoWithTripleRefCount; + AccountStatus: AccountStatus; + AccountValidity: AccountValidity; + AccountVote: AccountVote; + AccountVoteSplit: AccountVoteSplit; + AccountVoteStandard: AccountVoteStandard; + ActiveEraInfo: ActiveEraInfo; + ActiveGilt: ActiveGilt; + ActiveGiltsTotal: ActiveGiltsTotal; + ActiveIndex: ActiveIndex; + ActiveRecovery: ActiveRecovery; + Address: Address; + AliveContractInfo: AliveContractInfo; + AllowedSlots: AllowedSlots; + AnySignature: AnySignature; + ApiId: ApiId; + ApplyExtrinsicResult: ApplyExtrinsicResult; + ApplyExtrinsicResultPre6: ApplyExtrinsicResultPre6; + ApprovalFlag: ApprovalFlag; + Approvals: Approvals; + ApprovalVotingParams: ApprovalVotingParams; + ArithmeticError: ArithmeticError; + AssetApproval: AssetApproval; + AssetApprovalKey: AssetApprovalKey; + AssetBalance: AssetBalance; + AssetDestroyWitness: AssetDestroyWitness; + AssetDetails: AssetDetails; + AssetId: AssetId; + AssetIdV2: AssetIdV2; + AssetIdV3: AssetIdV3; + AssetIdV4: AssetIdV4; + AssetIdV5: AssetIdV5; + AssetInstance: AssetInstance; + AssetInstanceV0: AssetInstanceV0; + AssetInstanceV1: AssetInstanceV1; + AssetInstanceV2: AssetInstanceV2; + AssetInstanceV3: AssetInstanceV3; + AssetInstanceV4: AssetInstanceV4; + AssetInstanceV5: AssetInstanceV5; + AssetMetadata: AssetMetadata; + AssetOptions: AssetOptions; + AssignmentId: AssignmentId; + AssignmentKind: AssignmentKind; + AsyncBackingParams: AsyncBackingParams; + AttestedCandidate: AttestedCandidate; + AuctionIndex: AuctionIndex; + AuthIndex: AuthIndex; + AuthorityDiscoveryId: AuthorityDiscoveryId; + AuthorityId: AuthorityId; + AuthorityIndex: AuthorityIndex; + AuthorityList: AuthorityList; + AuthoritySet: AuthoritySet; + AuthoritySetChange: AuthoritySetChange; + AuthoritySetChanges: AuthoritySetChanges; + AuthoritySignature: AuthoritySignature; + AuthorityWeight: AuthorityWeight; + AvailabilityBitfield: AvailabilityBitfield; + AvailabilityBitfieldRecord: AvailabilityBitfieldRecord; + BabeAuthorityWeight: BabeAuthorityWeight; + BabeBlockWeight: BabeBlockWeight; + BabeEpochConfiguration: BabeEpochConfiguration; + BabeEquivocationProof: BabeEquivocationProof; + BabeGenesisConfiguration: BabeGenesisConfiguration; + BabeGenesisConfigurationV1: BabeGenesisConfigurationV1; + BabeWeight: BabeWeight; + BackedCandidate: BackedCandidate; + BackingState: BackingState; + Balance: Balance; + BalanceLock: BalanceLock; + BalanceLockTo212: BalanceLockTo212; + BalanceOf: BalanceOf; + BalanceStatus: BalanceStatus; + BeefyAuthoritySet: BeefyAuthoritySet; + BeefyCommitment: BeefyCommitment; + BeefyCompactSignedCommitment: BeefyCompactSignedCommitment; + BeefyEquivocationProof: BeefyEquivocationProof; + BeefyId: BeefyId; + BeefyKey: BeefyKey; + BeefyNextAuthoritySet: BeefyNextAuthoritySet; + BeefyPayload: BeefyPayload; + BeefyPayloadId: BeefyPayloadId; + BeefySignedCommitment: BeefySignedCommitment; + BeefyVersionedFinalityProof: BeefyVersionedFinalityProof; + BeefyVoteMessage: BeefyVoteMessage; + BenchmarkBatch: BenchmarkBatch; + BenchmarkConfig: BenchmarkConfig; + BenchmarkList: BenchmarkList; + BenchmarkMetadata: BenchmarkMetadata; + BenchmarkParameter: BenchmarkParameter; + BenchmarkResult: BenchmarkResult; + Bid: Bid; + Bidder: Bidder; + BidKind: BidKind; + BitVec: BitVec; + Block: Block; + BlockAttestations: BlockAttestations; + BlockHash: BlockHash; + BlockLength: BlockLength; + BlockNumber: BlockNumber; + BlockNumberFor: BlockNumberFor; + BlockNumberOf: BlockNumberOf; + BlockStats: BlockStats; + BlockTrace: BlockTrace; + BlockTraceEvent: BlockTraceEvent; + BlockTraceEventData: BlockTraceEventData; + BlockTraceSpan: BlockTraceSpan; + BlockV0: BlockV0; + BlockV1: BlockV1; + BlockV2: BlockV2; + BlockV3: BlockV3; + BlockWeights: BlockWeights; + BodyId: BodyId; + BodyIdV2: BodyIdV2; + BodyIdV3: BodyIdV3; + BodyPart: BodyPart; + BodyPartV2: BodyPartV2; + BodyPartV3: BodyPartV3; + bool: bool; + Bool: Bool; + Bounty: Bounty; + BountyIndex: BountyIndex; + BountyStatus: BountyStatus; + BountyStatusActive: BountyStatusActive; + BountyStatusCuratorProposed: BountyStatusCuratorProposed; + BountyStatusPendingPayout: BountyStatusPendingPayout; + BridgedBlockHash: BridgedBlockHash; + BridgedBlockNumber: BridgedBlockNumber; + BridgedHeader: BridgedHeader; + BridgeMessageId: BridgeMessageId; + BufferedSessionChange: BufferedSessionChange; + Bytes: Bytes; + Call: Call; + CallDryRunEffects: CallDryRunEffects; + CallHash: CallHash; + CallHashOf: CallHashOf; + CallIndex: CallIndex; + CallOrigin: CallOrigin; + CandidateCommitments: CandidateCommitments; + CandidateDescriptor: CandidateDescriptor; + CandidateEvent: CandidateEvent; + CandidateHash: CandidateHash; + CandidateInfo: CandidateInfo; + CandidatePendingAvailability: CandidatePendingAvailability; + CandidateReceipt: CandidateReceipt; + ChainId: ChainId; + ChainProperties: ChainProperties; + ChainType: ChainType; + ChangesTrieConfiguration: ChangesTrieConfiguration; + ChangesTrieSignal: ChangesTrieSignal; + CheckInherentsResult: CheckInherentsResult; + ClassDetails: ClassDetails; + ClassId: ClassId; + ClassMetadata: ClassMetadata; + CodecHash: CodecHash; + CodeHash: CodeHash; + CodeSource: CodeSource; + CodeUploadRequest: CodeUploadRequest; + CodeUploadResult: CodeUploadResult; + CodeUploadResultValue: CodeUploadResultValue; + CollationInfo: CollationInfo; + CollationInfoV1: CollationInfoV1; + CollatorId: CollatorId; + CollatorSignature: CollatorSignature; + CollectiveOrigin: CollectiveOrigin; + CommittedCandidateReceipt: CommittedCandidateReceipt; + CompactAssignments: CompactAssignments; + CompactAssignmentsTo257: CompactAssignmentsTo257; + CompactAssignmentsTo265: CompactAssignmentsTo265; + CompactAssignmentsWith16: CompactAssignmentsWith16; + CompactAssignmentsWith24: CompactAssignmentsWith24; + CompactScore: CompactScore; + CompactScoreCompact: CompactScoreCompact; + ConfigData: ConfigData; + Consensus: Consensus; + ConsensusEngineId: ConsensusEngineId; + Constraints: Constraints; + ConsumedWeight: ConsumedWeight; + ContractCallFlags: ContractCallFlags; + ContractCallRequest: ContractCallRequest; + ContractConstructorSpecLatest: ContractConstructorSpecLatest; + ContractConstructorSpecV0: ContractConstructorSpecV0; + ContractConstructorSpecV1: ContractConstructorSpecV1; + ContractConstructorSpecV2: ContractConstructorSpecV2; + ContractConstructorSpecV3: ContractConstructorSpecV3; + ContractConstructorSpecV4: ContractConstructorSpecV4; + ContractContractSpecV0: ContractContractSpecV0; + ContractContractSpecV1: ContractContractSpecV1; + ContractContractSpecV2: ContractContractSpecV2; + ContractContractSpecV3: ContractContractSpecV3; + ContractContractSpecV4: ContractContractSpecV4; + ContractContractSpecV5: ContractContractSpecV5; + ContractContractSpecV6: ContractContractSpecV6; + ContractCryptoHasher: ContractCryptoHasher; + ContractDiscriminant: ContractDiscriminant; + ContractDisplayName: ContractDisplayName; + ContractEnvironmentV4: ContractEnvironmentV4; + ContractEventParamSpecLatest: ContractEventParamSpecLatest; + ContractEventParamSpecV0: ContractEventParamSpecV0; + ContractEventParamSpecV2: ContractEventParamSpecV2; + ContractEventSpecLatest: ContractEventSpecLatest; + ContractEventSpecV0: ContractEventSpecV0; + ContractEventSpecV1: ContractEventSpecV1; + ContractEventSpecV2: ContractEventSpecV2; + ContractEventSpecV3: ContractEventSpecV3; + ContractExecResult: ContractExecResult; + ContractExecResultOk: ContractExecResultOk; + ContractExecResultResult: ContractExecResultResult; + ContractExecResultSuccessTo255: ContractExecResultSuccessTo255; + ContractExecResultSuccessTo260: ContractExecResultSuccessTo260; + ContractExecResultTo255: ContractExecResultTo255; + ContractExecResultTo260: ContractExecResultTo260; + ContractExecResultTo267: ContractExecResultTo267; + ContractExecResultU64: ContractExecResultU64; + ContractInfo: ContractInfo; + ContractInstantiateResult: ContractInstantiateResult; + ContractInstantiateResultTo267: ContractInstantiateResultTo267; + ContractInstantiateResultTo299: ContractInstantiateResultTo299; + ContractInstantiateResultU64: ContractInstantiateResultU64; + ContractLayoutArray: ContractLayoutArray; + ContractLayoutCell: ContractLayoutCell; + ContractLayoutEnum: ContractLayoutEnum; + ContractLayoutHash: ContractLayoutHash; + ContractLayoutHashingStrategy: ContractLayoutHashingStrategy; + ContractLayoutKey: ContractLayoutKey; + ContractLayoutStruct: ContractLayoutStruct; + ContractLayoutStructField: ContractLayoutStructField; + ContractMessageParamSpecLatest: ContractMessageParamSpecLatest; + ContractMessageParamSpecV0: ContractMessageParamSpecV0; + ContractMessageParamSpecV2: ContractMessageParamSpecV2; + ContractMessageSpecLatest: ContractMessageSpecLatest; + ContractMessageSpecV0: ContractMessageSpecV0; + ContractMessageSpecV1: ContractMessageSpecV1; + ContractMessageSpecV2: ContractMessageSpecV2; + ContractMessageSpecV3: ContractMessageSpecV3; + ContractMetadata: ContractMetadata; + ContractMetadataLatest: ContractMetadataLatest; + ContractMetadataV0: ContractMetadataV0; + ContractMetadataV1: ContractMetadataV1; + ContractMetadataV2: ContractMetadataV2; + ContractMetadataV3: ContractMetadataV3; + ContractMetadataV4: ContractMetadataV4; + ContractMetadataV5: ContractMetadataV5; + ContractMetadataV6: ContractMetadataV6; + ContractProject: ContractProject; + ContractProjectContract: ContractProjectContract; + ContractProjectInfo: ContractProjectInfo; + ContractProjectSource: ContractProjectSource; + ContractProjectV0: ContractProjectV0; + ContractReturnFlags: ContractReturnFlags; + ContractReviveProjectInfo: ContractReviveProjectInfo; + ContractReviveProjectSource: ContractReviveProjectSource; + ContractSelector: ContractSelector; + ContractStorageKey: ContractStorageKey; + ContractStorageLayout: ContractStorageLayout; + ContractTypeSpec: ContractTypeSpec; + Conviction: Conviction; + CoreAssignment: CoreAssignment; + CoreIndex: CoreIndex; + CoreOccupied: CoreOccupied; + CoreState: CoreState; + CrateVersion: CrateVersion; + CreatedBlock: CreatedBlock; + CustomMetadata15: CustomMetadata15; + CustomValueMetadata15: CustomValueMetadata15; + Data: Data; + DeferredOffenceOf: DeferredOffenceOf; + DefunctVoter: DefunctVoter; + DelayKind: DelayKind; + DelayKindBest: DelayKindBest; + Delegations: Delegations; + DeletedContract: DeletedContract; + DeliveredMessages: DeliveredMessages; + DepositBalance: DepositBalance; + DepositBalanceOf: DepositBalanceOf; + DestroyWitness: DestroyWitness; + Digest: Digest; + DigestItem: DigestItem; + DigestOf: DigestOf; + DispatchClass: DispatchClass; + DispatchError: DispatchError; + DispatchErrorModule: DispatchErrorModule; + DispatchErrorModulePre6: DispatchErrorModulePre6; + DispatchErrorModuleU8: DispatchErrorModuleU8; + DispatchErrorModuleU8a: DispatchErrorModuleU8a; + DispatchErrorPre6: DispatchErrorPre6; + DispatchErrorPre6First: DispatchErrorPre6First; + DispatchErrorTo198: DispatchErrorTo198; + DispatchFeePayment: DispatchFeePayment; + DispatchInfo: DispatchInfo; + DispatchInfoTo190: DispatchInfoTo190; + DispatchInfoTo244: DispatchInfoTo244; + DispatchOutcome: DispatchOutcome; + DispatchOutcomePre6: DispatchOutcomePre6; + DispatchResult: DispatchResult; + DispatchResultOf: DispatchResultOf; + DispatchResultTo198: DispatchResultTo198; + DispatchResultWithPostInfo: DispatchResultWithPostInfo; + DisputeLocation: DisputeLocation; + DisputeProof: DisputeProof; + DisputeResult: DisputeResult; + DisputeState: DisputeState; + DisputeStatement: DisputeStatement; + DisputeStatementSet: DisputeStatementSet; + DisputesTimeSlot: DisputesTimeSlot; + DoubleEncodedCall: DoubleEncodedCall; + DoubleVoteReport: DoubleVoteReport; + DownwardMessage: DownwardMessage; + EcdsaSignature: EcdsaSignature; + Ed25519Signature: Ed25519Signature; + EIP1559Transaction: EIP1559Transaction; + EIP2930Transaction: EIP2930Transaction; + EIP7702Transaction: EIP7702Transaction; + ElectionCompute: ElectionCompute; + ElectionPhase: ElectionPhase; + ElectionResult: ElectionResult; + ElectionResultToSpec10: ElectionResultToSpec10; + ElectionScore: ElectionScore; + ElectionSize: ElectionSize; + ElectionStatus: ElectionStatus; + EncodedFinalityProofs: EncodedFinalityProofs; + EncodedJustification: EncodedJustification; + EnumDeprecationInfoV16: EnumDeprecationInfoV16; + Epoch: Epoch; + EpochAuthorship: EpochAuthorship; + Era: Era; + EraIndex: EraIndex; + EraPoints: EraPoints; + EraRewardPoints: EraRewardPoints; + EraRewards: EraRewards; + Error: Error; + ErrorMetadataLatest: ErrorMetadataLatest; + ErrorMetadataV10: ErrorMetadataV10; + ErrorMetadataV11: ErrorMetadataV11; + ErrorMetadataV12: ErrorMetadataV12; + ErrorMetadataV13: ErrorMetadataV13; + ErrorMetadataV14: ErrorMetadataV14; + ErrorMetadataV9: ErrorMetadataV9; + EthAccessList: EthAccessList; + EthAccessListItem: EthAccessListItem; + EthAccount: EthAccount; + EthAddress: EthAddress; + EthAuthorizationList: EthAuthorizationList; + EthAuthorizationListItem: EthAuthorizationListItem; + EthAuthorizationSignature: EthAuthorizationSignature; + EthBlock: EthBlock; + EthBloom: EthBloom; + EthCallRequest: EthCallRequest; + EthereumAccountId: EthereumAccountId; + EthereumAddress: EthereumAddress; + EthereumLookupSource: EthereumLookupSource; + EthereumSignature: EthereumSignature; + EthFeeHistory: EthFeeHistory; + EthFilter: EthFilter; + EthFilterAddress: EthFilterAddress; + EthFilterChanges: EthFilterChanges; + EthFilterTopic: EthFilterTopic; + EthFilterTopicEntry: EthFilterTopicEntry; + EthFilterTopicInner: EthFilterTopicInner; + EthHeader: EthHeader; + EthLegacyTransactionSignature: EthLegacyTransactionSignature; + EthLog: EthLog; + EthReceipt: EthReceipt; + EthReceiptV0: EthReceiptV0; + EthReceiptV3: EthReceiptV3; + EthReceiptV4: EthReceiptV4; + EthRichBlock: EthRichBlock; + EthRichHeader: EthRichHeader; + EthStorageProof: EthStorageProof; + EthSubKind: EthSubKind; + EthSubParams: EthSubParams; + EthSubResult: EthSubResult; + EthSyncInfo: EthSyncInfo; + EthSyncStatus: EthSyncStatus; + EthTransaction: EthTransaction; + EthTransactionAction: EthTransactionAction; + EthTransactionCondition: EthTransactionCondition; + EthTransactionRequest: EthTransactionRequest; + EthTransactionSignature: EthTransactionSignature; + EthTransactionStatus: EthTransactionStatus; + EthWork: EthWork; + Event: Event; + EventId: EventId; + EventIndex: EventIndex; + EventMetadataLatest: EventMetadataLatest; + EventMetadataV10: EventMetadataV10; + EventMetadataV11: EventMetadataV11; + EventMetadataV12: EventMetadataV12; + EventMetadataV13: EventMetadataV13; + EventMetadataV14: EventMetadataV14; + EventMetadataV9: EventMetadataV9; + EventRecord: EventRecord; + EvmAccount: EvmAccount; + EvmCallInfo: EvmCallInfo; + EvmCallInfoV2: EvmCallInfoV2; + EvmCreateInfo: EvmCreateInfo; + EvmCreateInfoV2: EvmCreateInfoV2; + EvmLog: EvmLog; + EvmVicinity: EvmVicinity; + EvmWeightInfo: EvmWeightInfo; + ExecReturnValue: ExecReturnValue; + ExecutorParam: ExecutorParam; + ExecutorParams: ExecutorParams; + ExecutorParamsHash: ExecutorParamsHash; + ExitError: ExitError; + ExitFatal: ExitFatal; + ExitReason: ExitReason; + ExitRevert: ExitRevert; + ExitSucceed: ExitSucceed; + ExplicitDisputeStatement: ExplicitDisputeStatement; + Exposure: Exposure; + ExtendedBalance: ExtendedBalance; + Extrinsic: Extrinsic; + ExtrinsicEra: ExtrinsicEra; + ExtrinsicInclusionMode: ExtrinsicInclusionMode; + ExtrinsicMetadataLatest: ExtrinsicMetadataLatest; + ExtrinsicMetadataV11: ExtrinsicMetadataV11; + ExtrinsicMetadataV12: ExtrinsicMetadataV12; + ExtrinsicMetadataV13: ExtrinsicMetadataV13; + ExtrinsicMetadataV14: ExtrinsicMetadataV14; + ExtrinsicMetadataV15: ExtrinsicMetadataV15; + ExtrinsicMetadataV16: ExtrinsicMetadataV16; + ExtrinsicOrHash: ExtrinsicOrHash; + ExtrinsicPayload: ExtrinsicPayload; + ExtrinsicPayloadUnknown: ExtrinsicPayloadUnknown; + ExtrinsicPayloadV4: ExtrinsicPayloadV4; + ExtrinsicPayloadV5: ExtrinsicPayloadV5; + ExtrinsicSignature: ExtrinsicSignature; + ExtrinsicSignatureV4: ExtrinsicSignatureV4; + ExtrinsicSignatureV5: ExtrinsicSignatureV5; + ExtrinsicStatus: ExtrinsicStatus; + ExtrinsicsWeight: ExtrinsicsWeight; + ExtrinsicUnknown: ExtrinsicUnknown; + ExtrinsicV4: ExtrinsicV4; + ExtrinsicV5: ExtrinsicV5; + f32: f32; + F32: F32; + f64: f64; + F64: F64; + FeeDetails: FeeDetails; + Fixed128: Fixed128; + Fixed64: Fixed64; + FixedI128: FixedI128; + FixedI64: FixedI64; + FixedU128: FixedU128; + FixedU64: FixedU64; + Forcing: Forcing; + ForkTreePendingChange: ForkTreePendingChange; + ForkTreePendingChangeNode: ForkTreePendingChangeNode; + FullIdentification: FullIdentification; + FunctionArgumentMetadataLatest: FunctionArgumentMetadataLatest; + FunctionArgumentMetadataV10: FunctionArgumentMetadataV10; + FunctionArgumentMetadataV11: FunctionArgumentMetadataV11; + FunctionArgumentMetadataV12: FunctionArgumentMetadataV12; + FunctionArgumentMetadataV13: FunctionArgumentMetadataV13; + FunctionArgumentMetadataV14: FunctionArgumentMetadataV14; + FunctionArgumentMetadataV9: FunctionArgumentMetadataV9; + FunctionMetadataLatest: FunctionMetadataLatest; + FunctionMetadataV10: FunctionMetadataV10; + FunctionMetadataV11: FunctionMetadataV11; + FunctionMetadataV12: FunctionMetadataV12; + FunctionMetadataV13: FunctionMetadataV13; + FunctionMetadataV14: FunctionMetadataV14; + FunctionMetadataV9: FunctionMetadataV9; + FundIndex: FundIndex; + FundInfo: FundInfo; + Fungibility: Fungibility; + FungibilityV0: FungibilityV0; + FungibilityV1: FungibilityV1; + FungibilityV2: FungibilityV2; + FungibilityV3: FungibilityV3; + FungibilityV4: FungibilityV4; + FungibilityV5: FungibilityV5; + FungiblesAccessError: FungiblesAccessError; + Gas: Gas; + GenesisBuildErr: GenesisBuildErr; + GiltBid: GiltBid; + GlobalValidationData: GlobalValidationData; + GlobalValidationSchedule: GlobalValidationSchedule; + GrandpaCommit: GrandpaCommit; + GrandpaEquivocation: GrandpaEquivocation; + GrandpaEquivocationProof: GrandpaEquivocationProof; + GrandpaEquivocationValue: GrandpaEquivocationValue; + GrandpaJustification: GrandpaJustification; + GrandpaPrecommit: GrandpaPrecommit; + GrandpaPrevote: GrandpaPrevote; + GrandpaSignedPrecommit: GrandpaSignedPrecommit; + GroupIndex: GroupIndex; + GroupRotationInfo: GroupRotationInfo; + H1024: H1024; + H128: H128; + H160: H160; + H2048: H2048; + H256: H256; + H32: H32; + H512: H512; + H64: H64; + Hash: Hash; + HeadData: HeadData; + Header: Header; + HeaderPartial: HeaderPartial; + Health: Health; + Heartbeat: Heartbeat; + HeartbeatTo244: HeartbeatTo244; + HintV5: HintV5; + HostConfiguration: HostConfiguration; + HostFnWeights: HostFnWeights; + HostFnWeightsTo264: HostFnWeightsTo264; + HrmpChannel: HrmpChannel; + HrmpChannelId: HrmpChannelId; + HrmpOpenChannelRequest: HrmpOpenChannelRequest; + i128: i128; + I128: I128; + i16: i16; + I16: I16; + i256: i256; + I256: I256; + i32: i32; + I32: I32; + I32F32: I32F32; + i64: i64; + I64: I64; + i8: i8; + I8: I8; + IdentificationTuple: IdentificationTuple; + IdentityFields: IdentityFields; + IdentityInfo: IdentityInfo; + IdentityInfoAdditional: IdentityInfoAdditional; + IdentityInfoTo198: IdentityInfoTo198; + IdentityJudgement: IdentityJudgement; + ImmortalEra: ImmortalEra; + ImportedAux: ImportedAux; + InboundDownwardMessage: InboundDownwardMessage; + InboundHrmpLimitations: InboundHrmpLimitations; + InboundHrmpMessage: InboundHrmpMessage; + InboundHrmpMessages: InboundHrmpMessages; + InboundLaneData: InboundLaneData; + InboundRelayer: InboundRelayer; + InboundStatus: InboundStatus; + IncludedBlocks: IncludedBlocks; + InclusionFee: InclusionFee; + IncomingTeyrchain: IncomingTeyrchain; + IncomingTeyrchainDeploy: IncomingTeyrchainDeploy; + IncomingTeyrchainFixed: IncomingTeyrchainFixed; + Index: Index; + IndicesLookupSource: IndicesLookupSource; + IndividualExposure: IndividualExposure; + InherentData: InherentData; + InherentIdentifier: InherentIdentifier; + InitializationData: InitializationData; + InstanceDetails: InstanceDetails; + InstanceId: InstanceId; + InstanceMetadata: InstanceMetadata; + InstantiateRequest: InstantiateRequest; + InstantiateRequestV1: InstantiateRequestV1; + InstantiateRequestV2: InstantiateRequestV2; + InstantiateReturnValue: InstantiateReturnValue; + InstantiateReturnValueOk: InstantiateReturnValueOk; + InstantiateReturnValueTo267: InstantiateReturnValueTo267; + InstructionV2: InstructionV2; + InstructionV3: InstructionV3; + InstructionV4: InstructionV4; + InstructionV5: InstructionV5; + InstructionWeights: InstructionWeights; + InteriorMultiLocation: InteriorMultiLocation; + InteriorMultiLocationV2: InteriorMultiLocationV2; + InteriorMultiLocationV3: InteriorMultiLocationV3; + InteriorMultiLocationV5: InteriorMultiLocationV5; + InvalidDisputeStatementKind: InvalidDisputeStatementKind; + InvalidTransaction: InvalidTransaction; + isize: isize; + ISize: ISize; + ItemDeprecationInfoV16: ItemDeprecationInfoV16; + Json: Json; + Junction: Junction; + Junctions: Junctions; + JunctionsV1: JunctionsV1; + JunctionsV2: JunctionsV2; + JunctionsV3: JunctionsV3; + JunctionsV4: JunctionsV4; + JunctionsV5: JunctionsV5; + JunctionV0: JunctionV0; + JunctionV1: JunctionV1; + JunctionV2: JunctionV2; + JunctionV3: JunctionV3; + JunctionV4: JunctionV4; + JunctionV5: JunctionV5; + Justification: Justification; + JustificationNotification: JustificationNotification; + Justifications: Justifications; + Key: Key; + KeyOwnerProof: KeyOwnerProof; + Keys: Keys; + KeyType: KeyType; + KeyTypeId: KeyTypeId; + KeyValue: KeyValue; + KeyValueOption: KeyValueOption; + Kind: Kind; + LaneId: LaneId; + LastContribution: LastContribution; + LastRuntimeUpgradeInfo: LastRuntimeUpgradeInfo; + LeasePeriod: LeasePeriod; + LeasePeriodOf: LeasePeriodOf; + LegacyTransaction: LegacyTransaction; + Limits: Limits; + LimitsTo264: LimitsTo264; + LocalValidationData: LocalValidationData; + LockIdentifier: LockIdentifier; + LookupSource: LookupSource; + LookupTarget: LookupTarget; + LotteryConfig: LotteryConfig; + MaxPezpalletNameLen: MaxPezpalletNameLen; + MaxPezpalletsInfo: MaxPezpalletsInfo; + MaybeErrorCodeV3: MaybeErrorCodeV3; + MaybeRandomness: MaybeRandomness; + MaybeVrf: MaybeVrf; + MemberCount: MemberCount; + MembershipProof: MembershipProof; + MessageData: MessageData; + MessageId: MessageId; + MessageIngestionType: MessageIngestionType; + MessageKey: MessageKey; + MessageNonce: MessageNonce; + MessageQueueChain: MessageQueueChain; + MessagesDeliveryProofOf: MessagesDeliveryProofOf; + MessagesProofOf: MessagesProofOf; + MessagingStateSnapshot: MessagingStateSnapshot; + MessagingStateSnapshotEgressEntry: MessagingStateSnapshotEgressEntry; + MetadataAll: MetadataAll; + MetadataLatest: MetadataLatest; + MetadataV10: MetadataV10; + MetadataV11: MetadataV11; + MetadataV12: MetadataV12; + MetadataV13: MetadataV13; + MetadataV14: MetadataV14; + MetadataV15: MetadataV15; + MetadataV16: MetadataV16; + MetadataV9: MetadataV9; + MigrationStatusResult: MigrationStatusResult; + Mixnode: Mixnode; + MixnodesErr: MixnodesErr; + MmrBatchProof: MmrBatchProof; + MmrEncodableOpaqueLeaf: MmrEncodableOpaqueLeaf; + MmrError: MmrError; + MmrHash: MmrHash; + MmrLeafBatchProof: MmrLeafBatchProof; + MmrLeafIndex: MmrLeafIndex; + MmrLeafProof: MmrLeafProof; + MmrNodeIndex: MmrNodeIndex; + MmrProof: MmrProof; + MmrRootHash: MmrRootHash; + ModuleConstantMetadataV10: ModuleConstantMetadataV10; + ModuleConstantMetadataV11: ModuleConstantMetadataV11; + ModuleConstantMetadataV12: ModuleConstantMetadataV12; + ModuleConstantMetadataV13: ModuleConstantMetadataV13; + ModuleConstantMetadataV9: ModuleConstantMetadataV9; + ModuleId: ModuleId; + ModuleMetadataV10: ModuleMetadataV10; + ModuleMetadataV11: ModuleMetadataV11; + ModuleMetadataV12: ModuleMetadataV12; + ModuleMetadataV13: ModuleMetadataV13; + ModuleMetadataV9: ModuleMetadataV9; + Moment: Moment; + MomentOf: MomentOf; + MoreAttestations: MoreAttestations; + MortalEra: MortalEra; + MultiAddress: MultiAddress; + MultiAsset: MultiAsset; + MultiAssetFilter: MultiAssetFilter; + MultiAssetFilterV1: MultiAssetFilterV1; + MultiAssetFilterV2: MultiAssetFilterV2; + MultiAssetFilterV3: MultiAssetFilterV3; + MultiAssetFilterV4: MultiAssetFilterV4; + MultiAssetFilterV5: MultiAssetFilterV5; + MultiAssets: MultiAssets; + MultiAssetsV1: MultiAssetsV1; + MultiAssetsV2: MultiAssetsV2; + MultiAssetsV3: MultiAssetsV3; + MultiAssetsV4: MultiAssetsV4; + MultiAssetsV5: MultiAssetsV5; + MultiAssetTransferFilterV5: MultiAssetTransferFilterV5; + MultiAssetV0: MultiAssetV0; + MultiAssetV1: MultiAssetV1; + MultiAssetV2: MultiAssetV2; + MultiAssetV3: MultiAssetV3; + MultiAssetV4: MultiAssetV4; + MultiAssetV5: MultiAssetV5; + MultiDisputeStatementSet: MultiDisputeStatementSet; + MultiLocation: MultiLocation; + MultiLocationV0: MultiLocationV0; + MultiLocationV1: MultiLocationV1; + MultiLocationV2: MultiLocationV2; + MultiLocationV3: MultiLocationV3; + MultiLocationV4: MultiLocationV4; + MultiLocationV5: MultiLocationV5; + Multiplier: Multiplier; + Multisig: Multisig; + MultiSignature: MultiSignature; + MultiSigner: MultiSigner; + NetworkId: NetworkId; + NetworkIdV2: NetworkIdV2; + NetworkIdV3: NetworkIdV3; + NetworkIdV4: NetworkIdV4; + NetworkIdV5: NetworkIdV5; + NetworkState: NetworkState; + NetworkStatePeerset: NetworkStatePeerset; + NetworkStatePeersetInfo: NetworkStatePeersetInfo; + NewBidder: NewBidder; + NextAuthority: NextAuthority; + NextConfigDescriptor: NextConfigDescriptor; + NextConfigDescriptorV1: NextConfigDescriptorV1; + NftCollectionId: NftCollectionId; + NftItemId: NftItemId; + NodeFeatures: NodeFeatures; + NodeRole: NodeRole; + Nominations: Nominations; + NominatorIndex: NominatorIndex; + NominatorIndexCompact: NominatorIndexCompact; + NotConnectedPeer: NotConnectedPeer; + NpApiError: NpApiError; + NpPoolId: NpPoolId; + Null: Null; + OccupiedCore: OccupiedCore; + OccupiedCoreAssumption: OccupiedCoreAssumption; + OffchainAccuracy: OffchainAccuracy; + OffchainAccuracyCompact: OffchainAccuracyCompact; + OffenceDetails: OffenceDetails; + Offender: Offender; + OldV1SessionInfo: OldV1SessionInfo; + OpaqueCall: OpaqueCall; + OpaqueKeyOwnershipProof: OpaqueKeyOwnershipProof; + OpaqueMetadata: OpaqueMetadata; + OpaqueMultiaddr: OpaqueMultiaddr; + OpaqueNetworkState: OpaqueNetworkState; + OpaquePeerId: OpaquePeerId; + OpaqueTimeSlot: OpaqueTimeSlot; + OpenTip: OpenTip; + OpenTipFinderTo225: OpenTipFinderTo225; + OpenTipTip: OpenTipTip; + OpenTipTo225: OpenTipTo225; + OperatingMode: OperatingMode; + OptionBool: OptionBool; + Origin: Origin; + OriginCaller: OriginCaller; + OriginKindV0: OriginKindV0; + OriginKindV1: OriginKindV1; + OriginKindV2: OriginKindV2; + OriginKindV3: OriginKindV3; + OriginKindV4: OriginKindV4; + OutboundHrmpChannelLimitations: OutboundHrmpChannelLimitations; + OutboundHrmpMessage: OutboundHrmpMessage; + OutboundLaneData: OutboundLaneData; + OutboundMessageFee: OutboundMessageFee; + OutboundPayload: OutboundPayload; + OutboundStatus: OutboundStatus; + Outcome: Outcome; + OutcomeV4: OutcomeV4; + OuterEnums15: OuterEnums15; + OverweightIndex: OverweightIndex; + Owner: Owner; + PageCounter: PageCounter; + PageIndexData: PageIndexData; + ParaGenesisArgs: ParaGenesisArgs; + ParaId: ParaId; + ParaInfo: ParaInfo; + ParaLifecycle: ParaLifecycle; + Parameter: Parameter; + ParaPastCodeMeta: ParaPastCodeMeta; + ParaScheduling: ParaScheduling; + ParathreadClaim: ParathreadClaim; + ParathreadClaimQueue: ParathreadClaimQueue; + ParathreadEntry: ParathreadEntry; + ParaValidatorIndex: ParaValidatorIndex; + Pays: Pays; + Peer: Peer; + PeerEndpoint: PeerEndpoint; + PeerEndpointAddr: PeerEndpointAddr; + PeerInfo: PeerInfo; + PeerPing: PeerPing; + PendingChange: PendingChange; + PendingPause: PendingPause; + PendingResume: PendingResume; + PendingSlashes: PendingSlashes; + Perbill: Perbill; + Percent: Percent; + PerDispatchClassU32: PerDispatchClassU32; + PerDispatchClassWeight: PerDispatchClassWeight; + PerDispatchClassWeightsPerClass: PerDispatchClassWeightsPerClass; + Period: Period; + Permill: Permill; + PermissionLatest: PermissionLatest; + PermissionsV1: PermissionsV1; + PermissionVersions: PermissionVersions; + Perquintill: Perquintill; + PersistedValidationData: PersistedValidationData; + PerU16: PerU16; + PezpalletAssociatedTypeMetadataV16: PezpalletAssociatedTypeMetadataV16; + PezpalletCallMetadataLatest: PezpalletCallMetadataLatest; + PezpalletCallMetadataV14: PezpalletCallMetadataV14; + PezpalletCallMetadataV16: PezpalletCallMetadataV16; + PezpalletConstantMetadataLatest: PezpalletConstantMetadataLatest; + PezpalletConstantMetadataV14: PezpalletConstantMetadataV14; + PezpalletConstantMetadataV16: PezpalletConstantMetadataV16; + PezpalletErrorMetadataLatest: PezpalletErrorMetadataLatest; + PezpalletErrorMetadataV14: PezpalletErrorMetadataV14; + PezpalletErrorMetadataV16: PezpalletErrorMetadataV16; + PezpalletEventMetadataLatest: PezpalletEventMetadataLatest; + PezpalletEventMetadataV14: PezpalletEventMetadataV14; + PezpalletEventMetadataV16: PezpalletEventMetadataV16; + PezpalletId: PezpalletId; + PezpalletInfoV3: PezpalletInfoV3; + PezpalletInfoV4: PezpalletInfoV4; + PezpalletInfoV5: PezpalletInfoV5; + PezpalletMetadataLatest: PezpalletMetadataLatest; + PezpalletMetadataV14: PezpalletMetadataV14; + PezpalletMetadataV15: PezpalletMetadataV15; + PezpalletMetadataV16: PezpalletMetadataV16; + PezpalletsOrigin: PezpalletsOrigin; + PezpalletStorageMetadataLatest: PezpalletStorageMetadataLatest; + PezpalletStorageMetadataV14: PezpalletStorageMetadataV14; + PezpalletStorageMetadataV16: PezpalletStorageMetadataV16; + PezpalletVersion: PezpalletVersion; + PezpalletViewFunctionMetadataV16: PezpalletViewFunctionMetadataV16; + Phantom: Phantom; + PhantomData: PhantomData; + Phase: Phase; + PhragmenScore: PhragmenScore; + Points: Points; + PortableType: PortableType; + PortableTypeV14: PortableTypeV14; + PostDispatchInfo: PostDispatchInfo; + Precommits: Precommits; + PrefabWasmModule: PrefabWasmModule; + PrefixedStorageKey: PrefixedStorageKey; + PreimageStatus: PreimageStatus; + PreimageStatusAvailable: PreimageStatusAvailable; + PreRuntime: PreRuntime; + Prevotes: Prevotes; + Priority: Priority; + PriorLock: PriorLock; + PropIndex: PropIndex; + Proposal: Proposal; + ProposalIndex: ProposalIndex; + ProxyAnnouncement: ProxyAnnouncement; + ProxyDefinition: ProxyDefinition; + ProxyState: ProxyState; + ProxyType: ProxyType; + PvfCheckStatement: PvfCheckStatement; + PvfExecTimeoutKind: PvfExecTimeoutKind; + PvfPrepTimeoutKind: PvfPrepTimeoutKind; + QueryId: QueryId; + QueryResponseInfoV3: QueryResponseInfoV3; + QueryResponseInfoV4: QueryResponseInfoV4; + QueryResponseInfoV5: QueryResponseInfoV5; + QueryStatus: QueryStatus; + QueueConfigData: QueueConfigData; + QueuedParathread: QueuedParathread; + Randomness: Randomness; + Raw: Raw; + RawAuraPreDigest: RawAuraPreDigest; + RawBabePreDigest: RawBabePreDigest; + RawBabePreDigestCompat: RawBabePreDigestCompat; + RawBabePreDigestPrimary: RawBabePreDigestPrimary; + RawBabePreDigestPrimaryTo159: RawBabePreDigestPrimaryTo159; + RawBabePreDigestSecondaryPlain: RawBabePreDigestSecondaryPlain; + RawBabePreDigestSecondaryTo159: RawBabePreDigestSecondaryTo159; + RawBabePreDigestSecondaryVRF: RawBabePreDigestSecondaryVRF; + RawBabePreDigestTo159: RawBabePreDigestTo159; + RawOrigin: RawOrigin; + RawSolution: RawSolution; + RawSolutionTo265: RawSolutionTo265; + RawSolutionWith16: RawSolutionWith16; + RawSolutionWith24: RawSolutionWith24; + RawVRFOutput: RawVRFOutput; + ReadProof: ReadProof; + ReadySolution: ReadySolution; + Reasons: Reasons; + RecoveryConfig: RecoveryConfig; + RefCount: RefCount; + RefCountTo259: RefCountTo259; + ReferendumIndex: ReferendumIndex; + ReferendumInfo: ReferendumInfo; + ReferendumInfoFinished: ReferendumInfoFinished; + ReferendumInfoTo239: ReferendumInfoTo239; + ReferendumStatus: ReferendumStatus; + RegisteredTeyrchainInfo: RegisteredTeyrchainInfo; + RegistrarIndex: RegistrarIndex; + RegistrarInfo: RegistrarInfo; + Registration: Registration; + RegistrationJudgement: RegistrationJudgement; + RegistrationTo198: RegistrationTo198; + RelayBlockNumber: RelayBlockNumber; + RelayChainBlockNumber: RelayChainBlockNumber; + RelayChainHash: RelayChainHash; + RelayerId: RelayerId; + RelayHash: RelayHash; + Releases: Releases; + Remark: Remark; + Renouncing: Renouncing; + RentProjection: RentProjection; + ReplacementTimes: ReplacementTimes; + ReportedRoundStates: ReportedRoundStates; + Reporter: Reporter; + ReportIdOf: ReportIdOf; + ReserveData: ReserveData; + ReserveIdentifier: ReserveIdentifier; + Response: Response; + ResponseV0: ResponseV0; + ResponseV1: ResponseV1; + ResponseV2: ResponseV2; + ResponseV2Error: ResponseV2Error; + ResponseV3: ResponseV3; + ResponseV3Error: ResponseV3Error; + ResponseV3Result: ResponseV3Result; + ResponseV4: ResponseV4; + ResponseV5: ResponseV5; + Retriable: Retriable; + RewardDestination: RewardDestination; + RewardPoint: RewardPoint; + RoundSnapshot: RoundSnapshot; + RoundState: RoundState; + RpcMethods: RpcMethods; + RuntimeApiMetadataLatest: RuntimeApiMetadataLatest; + RuntimeApiMetadataV15: RuntimeApiMetadataV15; + RuntimeApiMetadataV16: RuntimeApiMetadataV16; + RuntimeApiMethodMetadataV15: RuntimeApiMethodMetadataV15; + RuntimeApiMethodMetadataV16: RuntimeApiMethodMetadataV16; + RuntimeApiMethodParamMetadataV15: RuntimeApiMethodParamMetadataV15; + RuntimeCall: RuntimeCall; + RuntimeDbWeight: RuntimeDbWeight; + RuntimeDispatchInfo: RuntimeDispatchInfo; + RuntimeDispatchInfoV1: RuntimeDispatchInfoV1; + RuntimeDispatchInfoV2: RuntimeDispatchInfoV2; + RuntimeEvent: RuntimeEvent; + RuntimeVersion: RuntimeVersion; + RuntimeVersionApi: RuntimeVersionApi; + RuntimeVersionPartial: RuntimeVersionPartial; + RuntimeVersionPre3: RuntimeVersionPre3; + RuntimeVersionPre4: RuntimeVersionPre4; + Schedule: Schedule; + Scheduled: Scheduled; + ScheduledCore: ScheduledCore; + ScheduledTo254: ScheduledTo254; + SchedulePeriod: SchedulePeriod; + SchedulePriority: SchedulePriority; + ScheduleTo212: ScheduleTo212; + ScheduleTo258: ScheduleTo258; + ScheduleTo264: ScheduleTo264; + Scheduling: Scheduling; + ScrapedOnChainVotes: ScrapedOnChainVotes; + Seal: Seal; + SealV0: SealV0; + SeatHolder: SeatHolder; + SeedOf: SeedOf; + ServiceQuality: ServiceQuality; + SessionIndex: SessionIndex; + SessionInfo: SessionInfo; + SessionInfoValidatorGroup: SessionInfoValidatorGroup; + SessionKeys1: SessionKeys1; + SessionKeys10: SessionKeys10; + SessionKeys10B: SessionKeys10B; + SessionKeys2: SessionKeys2; + SessionKeys3: SessionKeys3; + SessionKeys4: SessionKeys4; + SessionKeys5: SessionKeys5; + SessionKeys6: SessionKeys6; + SessionKeys6B: SessionKeys6B; + SessionKeys7: SessionKeys7; + SessionKeys7B: SessionKeys7B; + SessionKeys8: SessionKeys8; + SessionKeys8B: SessionKeys8B; + SessionKeys9: SessionKeys9; + SessionKeys9B: SessionKeys9B; + SessionPhase: SessionPhase; + SessionStatus: SessionStatus; + SetId: SetId; + SetIndex: SetIndex; + Si0Field: Si0Field; + Si0LookupTypeId: Si0LookupTypeId; + Si0Path: Si0Path; + Si0Type: Si0Type; + Si0TypeDef: Si0TypeDef; + Si0TypeDefArray: Si0TypeDefArray; + Si0TypeDefBitSequence: Si0TypeDefBitSequence; + Si0TypeDefCompact: Si0TypeDefCompact; + Si0TypeDefComposite: Si0TypeDefComposite; + Si0TypeDefPhantom: Si0TypeDefPhantom; + Si0TypeDefPrimitive: Si0TypeDefPrimitive; + Si0TypeDefSequence: Si0TypeDefSequence; + Si0TypeDefTuple: Si0TypeDefTuple; + Si0TypeDefVariant: Si0TypeDefVariant; + Si0TypeParameter: Si0TypeParameter; + Si0Variant: Si0Variant; + Si1Field: Si1Field; + Si1LookupTypeId: Si1LookupTypeId; + Si1Path: Si1Path; + Si1Type: Si1Type; + Si1TypeDef: Si1TypeDef; + Si1TypeDefArray: Si1TypeDefArray; + Si1TypeDefBitSequence: Si1TypeDefBitSequence; + Si1TypeDefCompact: Si1TypeDefCompact; + Si1TypeDefComposite: Si1TypeDefComposite; + Si1TypeDefPrimitive: Si1TypeDefPrimitive; + Si1TypeDefSequence: Si1TypeDefSequence; + Si1TypeDefTuple: Si1TypeDefTuple; + Si1TypeDefVariant: Si1TypeDefVariant; + Si1TypeParameter: Si1TypeParameter; + Si1Variant: Si1Variant; + SiField: SiField; + Signature: Signature; + SignedAvailabilityBitfield: SignedAvailabilityBitfield; + SignedAvailabilityBitfields: SignedAvailabilityBitfields; + SignedBlock: SignedBlock; + SignedBlockWithJustification: SignedBlockWithJustification; + SignedBlockWithJustifications: SignedBlockWithJustifications; + SignedExtensionMetadataLatest: SignedExtensionMetadataLatest; + SignedExtensionMetadataV14: SignedExtensionMetadataV14; + SignedSubmission: SignedSubmission; + SignedSubmissionOf: SignedSubmissionOf; + SignedSubmissionTo276: SignedSubmissionTo276; + SignerPayload: SignerPayload; + SigningContext: SigningContext; + SiLookupTypeId: SiLookupTypeId; + SiPath: SiPath; + SiType: SiType; + SiTypeDef: SiTypeDef; + SiTypeDefArray: SiTypeDefArray; + SiTypeDefBitSequence: SiTypeDefBitSequence; + SiTypeDefCompact: SiTypeDefCompact; + SiTypeDefComposite: SiTypeDefComposite; + SiTypeDefPrimitive: SiTypeDefPrimitive; + SiTypeDefSequence: SiTypeDefSequence; + SiTypeDefTuple: SiTypeDefTuple; + SiTypeDefVariant: SiTypeDefVariant; + SiTypeParameter: SiTypeParameter; + SiVariant: SiVariant; + SlashingOffenceKind: SlashingOffenceKind; + SlashingSpans: SlashingSpans; + SlashingSpansTo204: SlashingSpansTo204; + SlashJournalEntry: SlashJournalEntry; + Slot: Slot; + SlotDuration: SlotDuration; + SlotNumber: SlotNumber; + SlotRange: SlotRange; + SlotRange10: SlotRange10; + SocietyJudgement: SocietyJudgement; + SocietyVote: SocietyVote; + SolutionOrSnapshotSize: SolutionOrSnapshotSize; + SolutionSupport: SolutionSupport; + SolutionSupports: SolutionSupports; + SpanIndex: SpanIndex; + SpanRecord: SpanRecord; + SpecVersion: SpecVersion; + Sr25519Signature: Sr25519Signature; + StakingLedger: StakingLedger; + StakingLedgerTo223: StakingLedgerTo223; + StakingLedgerTo240: StakingLedgerTo240; + Statement: Statement; + StatementKind: StatementKind; + StatementStoreInvalidStatement: StatementStoreInvalidStatement; + StatementStoreStatementSource: StatementStoreStatementSource; + StatementStoreValidStatement: StatementStoreValidStatement; + StorageChangeSet: StorageChangeSet; + StorageData: StorageData; + StorageDeposit: StorageDeposit; + StorageEntryMetadataLatest: StorageEntryMetadataLatest; + StorageEntryMetadataV10: StorageEntryMetadataV10; + StorageEntryMetadataV11: StorageEntryMetadataV11; + StorageEntryMetadataV12: StorageEntryMetadataV12; + StorageEntryMetadataV13: StorageEntryMetadataV13; + StorageEntryMetadataV14: StorageEntryMetadataV14; + StorageEntryMetadataV16: StorageEntryMetadataV16; + StorageEntryMetadataV9: StorageEntryMetadataV9; + StorageEntryModifierLatest: StorageEntryModifierLatest; + StorageEntryModifierV10: StorageEntryModifierV10; + StorageEntryModifierV11: StorageEntryModifierV11; + StorageEntryModifierV12: StorageEntryModifierV12; + StorageEntryModifierV13: StorageEntryModifierV13; + StorageEntryModifierV14: StorageEntryModifierV14; + StorageEntryModifierV9: StorageEntryModifierV9; + StorageEntryTypeLatest: StorageEntryTypeLatest; + StorageEntryTypeV10: StorageEntryTypeV10; + StorageEntryTypeV11: StorageEntryTypeV11; + StorageEntryTypeV12: StorageEntryTypeV12; + StorageEntryTypeV13: StorageEntryTypeV13; + StorageEntryTypeV14: StorageEntryTypeV14; + StorageEntryTypeV9: StorageEntryTypeV9; + StorageHasher: StorageHasher; + StorageHasherV10: StorageHasherV10; + StorageHasherV11: StorageHasherV11; + StorageHasherV12: StorageHasherV12; + StorageHasherV13: StorageHasherV13; + StorageHasherV14: StorageHasherV14; + StorageHasherV9: StorageHasherV9; + StorageInfo: StorageInfo; + StorageKey: StorageKey; + StorageKind: StorageKind; + StorageMetadataV10: StorageMetadataV10; + StorageMetadataV11: StorageMetadataV11; + StorageMetadataV12: StorageMetadataV12; + StorageMetadataV13: StorageMetadataV13; + StorageMetadataV9: StorageMetadataV9; + StorageProof: StorageProof; + StoredPendingChange: StoredPendingChange; + StoredState: StoredState; + StrikeCount: StrikeCount; + SubId: SubId; + SubmissionIndicesOf: SubmissionIndicesOf; + Supports: Supports; + SyncState: SyncState; + SystemInherentData: SystemInherentData; + SystemOrigin: SystemOrigin; + Tally: Tally; + TaskAddress: TaskAddress; + TAssetBalance: TAssetBalance; + TAssetConversion: TAssetConversion; + TAssetDepositBalance: TAssetDepositBalance; + Text: Text; + TeyrchainDispatchOrigin: TeyrchainDispatchOrigin; + TeyrchainInherentData: TeyrchainInherentData; + TeyrchainProposal: TeyrchainProposal; + TeyrchainsInherentData: TeyrchainsInherentData; + Timepoint: Timepoint; + TokenError: TokenError; + TombstoneContractInfo: TombstoneContractInfo; + TraceBlockResponse: TraceBlockResponse; + TraceError: TraceError; + TransactionalError: TransactionalError; + TransactionExtensionMetadataLatest: TransactionExtensionMetadataLatest; + TransactionExtensionMetadataV16: TransactionExtensionMetadataV16; + TransactionInfo: TransactionInfo; + TransactionLongevity: TransactionLongevity; + TransactionPriority: TransactionPriority; + TransactionSource: TransactionSource; + TransactionStorageProof: TransactionStorageProof; + TransactionTag: TransactionTag; + TransactionV0: TransactionV0; + TransactionV1: TransactionV1; + TransactionV2: TransactionV2; + TransactionV3: TransactionV3; + TransactionValidity: TransactionValidity; + TransactionValidityError: TransactionValidityError; + TransientValidationData: TransientValidationData; + TreasuryProposal: TreasuryProposal; + TrieId: TrieId; + TrieIndex: TrieIndex; + Type: Type; + u128: u128; + U128: U128; + u16: u16; + U16: U16; + u256: u256; + U256: U256; + u32: u32; + U32: U32; + U32F32: U32F32; + u64: u64; + U64: U64; + u8: u8; + U8: U8; + UnappliedSlash: UnappliedSlash; + UnappliedSlashOther: UnappliedSlashOther; + UncheckedFungibilityV4: UncheckedFungibilityV4; + UncheckedFungibilityV5: UncheckedFungibilityV5; + UncleEntryItem: UncleEntryItem; + UnknownTransaction: UnknownTransaction; + UnlockChunk: UnlockChunk; + UnrewardedRelayer: UnrewardedRelayer; + UnrewardedRelayersState: UnrewardedRelayersState; + UpgradeGoAhead: UpgradeGoAhead; + UpgradeRestriction: UpgradeRestriction; + UpwardMessage: UpwardMessage; + usize: usize; + USize: USize; + ValidationCode: ValidationCode; + ValidationCodeHash: ValidationCodeHash; + ValidationData: ValidationData; + ValidationDataType: ValidationDataType; + ValidationFunctionParams: ValidationFunctionParams; + ValidatorCount: ValidatorCount; + ValidatorId: ValidatorId; + ValidatorIdOf: ValidatorIdOf; + ValidatorIndex: ValidatorIndex; + ValidatorIndexCompact: ValidatorIndexCompact; + ValidatorPrefs: ValidatorPrefs; + ValidatorPrefsTo145: ValidatorPrefsTo145; + ValidatorPrefsTo196: ValidatorPrefsTo196; + ValidatorPrefsWithBlocked: ValidatorPrefsWithBlocked; + ValidatorPrefsWithCommission: ValidatorPrefsWithCommission; + ValidatorSet: ValidatorSet; + ValidatorSetId: ValidatorSetId; + ValidatorSignature: ValidatorSignature; + ValidDisputeStatementKind: ValidDisputeStatementKind; + ValidityAttestation: ValidityAttestation; + ValidTransaction: ValidTransaction; + VariantDeprecationInfoV16: VariantDeprecationInfoV16; + VecInboundHrmpMessage: VecInboundHrmpMessage; + VersionedMultiAsset: VersionedMultiAsset; + VersionedMultiAssets: VersionedMultiAssets; + VersionedMultiLocation: VersionedMultiLocation; + VersionedResponse: VersionedResponse; + VersionedXcm: VersionedXcm; + VersionMigrationStage: VersionMigrationStage; + VersionV3: VersionV3; + VersionV4: VersionV4; + VestingInfo: VestingInfo; + VestingSchedule: VestingSchedule; + Vote: Vote; + VoteIndex: VoteIndex; + Voter: Voter; + VoterInfo: VoterInfo; + Votes: Votes; + VotesTo230: VotesTo230; + VoteThreshold: VoteThreshold; + VoteWeight: VoteWeight; + Voting: Voting; + VotingDelegating: VotingDelegating; + VotingDirect: VotingDirect; + VotingDirectVote: VotingDirectVote; + VouchingStatus: VouchingStatus; + VrfData: VrfData; + VrfOutput: VrfOutput; + VrfProof: VrfProof; + Weight: Weight; + WeightLimitV2: WeightLimitV2; + WeightLimitV3: WeightLimitV3; + WeightMultiplier: WeightMultiplier; + WeightPerClass: WeightPerClass; + WeightToFeeCoefficient: WeightToFeeCoefficient; + WeightV0: WeightV0; + WeightV1: WeightV1; + WeightV2: WeightV2; + WildFungibility: WildFungibility; + WildFungibilityV0: WildFungibilityV0; + WildFungibilityV1: WildFungibilityV1; + WildFungibilityV2: WildFungibilityV2; + WildFungibilityV3: WildFungibilityV3; + WildFungibilityV4: WildFungibilityV4; + WildFungibilityV5: WildFungibilityV5; + WildMultiAsset: WildMultiAsset; + WildMultiAssetV1: WildMultiAssetV1; + WildMultiAssetV2: WildMultiAssetV2; + WildMultiAssetV3: WildMultiAssetV3; + WildMultiAssetV4: WildMultiAssetV4; + WildMultiAssetV5: WildMultiAssetV5; + WinnersData: WinnersData; + WinnersData10: WinnersData10; + WinnersDataTuple: WinnersDataTuple; + WinnersDataTuple10: WinnersDataTuple10; + WinningData: WinningData; + WinningData10: WinningData10; + WinningDataEntry: WinningDataEntry; + WithdrawReasons: WithdrawReasons; + Xcm: Xcm; + XcmAssetId: XcmAssetId; + XcmDryRunApiError: XcmDryRunApiError; + XcmDryRunEffects: XcmDryRunEffects; + XcmError: XcmError; + XcmErrorV0: XcmErrorV0; + XcmErrorV1: XcmErrorV1; + XcmErrorV2: XcmErrorV2; + XcmErrorV3: XcmErrorV3; + XcmErrorV4: XcmErrorV4; + XcmErrorV5: XcmErrorV5; + XcmOrderV0: XcmOrderV0; + XcmOrderV1: XcmOrderV1; + XcmOrigin: XcmOrigin; + XcmOriginKind: XcmOriginKind; + XcmPaymentApiError: XcmPaymentApiError; + XcmpMessageFormat: XcmpMessageFormat; + XcmV0: XcmV0; + XcmV1: XcmV1; + XcmV2: XcmV2; + XcmV3: XcmV3; + XcmV4: XcmV4; + XcmV5: XcmV5; + XcmVersion: XcmVersion; + } // InterfaceTypes +} // declare module diff --git a/packages/types-augment/src/registry/pezkuwi.ts b/packages/types-augment/src/registry/pezkuwi.ts new file mode 100644 index 0000000..de2cca7 --- /dev/null +++ b/packages/types-augment/src/registry/pezkuwi.ts @@ -0,0 +1,286 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types/types/registry'; + +import type { BinaryHeapEnqueuedOrder, BinaryHeapReverseQueueIndex, BitvecOrderLsb0, PezframeElectionProviderSupportBoundedSupport, PezframeElectionProviderSupportBoundedSupports, PezframeSupportStorageDisabled, PezkuwiCorePrimitivesInboundDownwardMessage, PezkuwiCorePrimitivesInboundHrmpMessage, PezkuwiCorePrimitivesOutboundHrmpMessage, PezkuwiPrimitivesV8ApprovalVotingParams, PezkuwiPrimitivesV8AssignmentAppPublic, PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams, PezkuwiPrimitivesV8AsyncBackingConstraints, PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations, PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations, PezkuwiPrimitivesV8CandidateCommitments, PezkuwiPrimitivesV8CollatorAppPublic, PezkuwiPrimitivesV8DisputeState, PezkuwiPrimitivesV8DisputeStatement, PezkuwiPrimitivesV8DisputeStatementSet, PezkuwiPrimitivesV8ExecutorParams, PezkuwiPrimitivesV8ExecutorParamsExecutorParam, PezkuwiPrimitivesV8GroupRotationInfo, PezkuwiPrimitivesV8IndexedVecGroupIndex, PezkuwiPrimitivesV8IndexedVecValidatorIndex, PezkuwiPrimitivesV8InvalidDisputeStatementKind, PezkuwiPrimitivesV8OccupiedCoreAssumption, PezkuwiPrimitivesV8PersistedValidationData, PezkuwiPrimitivesV8PvfCheckStatement, PezkuwiPrimitivesV8PvfExecKind, PezkuwiPrimitivesV8PvfPrepKind, PezkuwiPrimitivesV8ScheduledCore, PezkuwiPrimitivesV8SchedulerParams, PezkuwiPrimitivesV8SessionInfo, PezkuwiPrimitivesV8SignedUncheckedSigned, PezkuwiPrimitivesV8SlashingDisputeProof, PezkuwiPrimitivesV8SlashingDisputesTimeSlot, PezkuwiPrimitivesV8SlashingPendingSlashes, PezkuwiPrimitivesV8SlashingSlashingOffenceKind, PezkuwiPrimitivesV8UpgradeGoAhead, PezkuwiPrimitivesV8UpgradeRestriction, PezkuwiPrimitivesV8ValidDisputeStatementKind, PezkuwiPrimitivesV8ValidatorAppPublic, PezkuwiPrimitivesV8ValidatorAppSignature, PezkuwiPrimitivesV8ValidityAttestation, PezkuwiPrimitivesVstagingAsyncBackingBackingState, PezkuwiPrimitivesVstagingAsyncBackingCandidatePendingAvailability, PezkuwiPrimitivesVstagingAsyncBackingConstraints, PezkuwiPrimitivesVstagingBackedCandidate, PezkuwiPrimitivesVstagingCandidateDescriptorV2, PezkuwiPrimitivesVstagingCandidateEvent, PezkuwiPrimitivesVstagingCandidateReceiptV2, PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2, PezkuwiPrimitivesVstagingCoreState, PezkuwiPrimitivesVstagingDisputeOffenceKind, PezkuwiPrimitivesVstagingDisputeProof, PezkuwiPrimitivesVstagingInherentData, PezkuwiPrimitivesVstagingOccupiedCore, PezkuwiPrimitivesVstagingPendingSlashes, PezkuwiPrimitivesVstagingScrapedOnChainVotes, PezkuwiRuntimeCommonAuctionsPezpalletCall, PezkuwiRuntimeCommonAuctionsPezpalletError, PezkuwiRuntimeCommonAuctionsPezpalletEvent, PezkuwiRuntimeCommonClaimsEcdsaSignature, PezkuwiRuntimeCommonClaimsEthereumAddress, PezkuwiRuntimeCommonClaimsPezpalletCall, PezkuwiRuntimeCommonClaimsPezpalletError, PezkuwiRuntimeCommonClaimsPezpalletEvent, PezkuwiRuntimeCommonClaimsPrevalidateAttests, PezkuwiRuntimeCommonClaimsStatementKind, PezkuwiRuntimeCommonCrowdloanFundInfo, PezkuwiRuntimeCommonCrowdloanLastContribution, PezkuwiRuntimeCommonCrowdloanPezpalletCall, PezkuwiRuntimeCommonCrowdloanPezpalletError, PezkuwiRuntimeCommonCrowdloanPezpalletEvent, PezkuwiRuntimeCommonImplsVersionedLocatableAsset, PezkuwiRuntimeCommonParasRegistrarParaInfo, PezkuwiRuntimeCommonParasRegistrarPezpalletCall, PezkuwiRuntimeCommonParasRegistrarPezpalletError, PezkuwiRuntimeCommonParasRegistrarPezpalletEvent, PezkuwiRuntimeCommonSlotsPezpalletCall, PezkuwiRuntimeCommonSlotsPezpalletError, PezkuwiRuntimeCommonSlotsPezpalletEvent, PezkuwiRuntimeConstantsProxyProxyType, PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin, PezkuwiRuntimeNposCompactSolution16, PezkuwiRuntimeOriginCaller, PezkuwiRuntimeRuntime, PezkuwiRuntimeRuntimeError, PezkuwiRuntimeRuntimeFreezeReason, PezkuwiRuntimeRuntimeHoldReason, PezkuwiRuntimeSessionKeys, PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState, PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor, PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError, PezkuwiRuntimeTeyrchainsAssignerCoretimeQueueDescriptor, PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule, PezkuwiRuntimeTeyrchainsAssignerCoretimeWorkState, PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration, PezkuwiRuntimeTeyrchainsConfigurationPezpalletCall, PezkuwiRuntimeTeyrchainsConfigurationPezpalletError, PezkuwiRuntimeTeyrchainsCoretimePezpalletCall, PezkuwiRuntimeTeyrchainsCoretimePezpalletError, PezkuwiRuntimeTeyrchainsCoretimePezpalletEvent, PezkuwiRuntimeTeyrchainsDisputesDisputeLocation, PezkuwiRuntimeTeyrchainsDisputesDisputeResult, PezkuwiRuntimeTeyrchainsDisputesPezpalletCall, PezkuwiRuntimeTeyrchainsDisputesPezpalletError, PezkuwiRuntimeTeyrchainsDisputesPezpalletEvent, PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletCall, PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError, PezkuwiRuntimeTeyrchainsHrmpHrmpChannel, PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest, PezkuwiRuntimeTeyrchainsHrmpPezpalletCall, PezkuwiRuntimeTeyrchainsHrmpPezpalletError, PezkuwiRuntimeTeyrchainsHrmpPezpalletEvent, PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin, PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability, PezkuwiRuntimeTeyrchainsInclusionPezpalletCall, PezkuwiRuntimeTeyrchainsInclusionPezpalletError, PezkuwiRuntimeTeyrchainsInclusionPezpalletEvent, PezkuwiRuntimeTeyrchainsInclusionUmpQueueId, PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange, PezkuwiRuntimeTeyrchainsInitializerPezpalletCall, PezkuwiRuntimeTeyrchainsOnDemandPezpalletCall, PezkuwiRuntimeTeyrchainsOnDemandPezpalletError, PezkuwiRuntimeTeyrchainsOnDemandPezpalletEvent, PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount, PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder, PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType, PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin, PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry, PezkuwiRuntimeTeyrchainsParasInherentPezpalletCall, PezkuwiRuntimeTeyrchainsParasInherentPezpalletError, PezkuwiRuntimeTeyrchainsParasParaGenesisArgs, PezkuwiRuntimeTeyrchainsParasParaLifecycle, PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta, PezkuwiRuntimeTeyrchainsParasPezpalletCall, PezkuwiRuntimeTeyrchainsParasPezpalletError, PezkuwiRuntimeTeyrchainsParasPezpalletEvent, PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState, PezkuwiRuntimeTeyrchainsParasPvfCheckCause, PezkuwiRuntimeTeyrchainsParasReplacementTimes, PezkuwiRuntimeTeyrchainsParasUpgradeStrategy, PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment, PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker, PezkuwiRuntimeTeyrchainsSharedPezpalletCall, PezkuwiRuntimeTeyrchainsSharedRelayParentInfo, PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId, PezpalletBalancesUnexpectedKind, PezpalletRcMigratorAccountsAccountState, PezpalletRcMigratorAccountsMigratedBalances, PezpalletRcMigratorBountiesBountiesStage, PezpalletRcMigratorCall, PezpalletRcMigratorChildBountiesChildBountiesStage, PezpalletRcMigratorClaimsClaimsStage, PezpalletRcMigratorConvictionVotingConvictionVotingStage, PezpalletRcMigratorCrowdloanCrowdloanStage, PezpalletRcMigratorError, PezpalletRcMigratorEvent, PezpalletRcMigratorManagerMultisigVote, PezpalletRcMigratorMigrationSettings, PezpalletRcMigratorMigrationStage, PezpalletRcMigratorQueuePriority, PezpalletRcMigratorReferendaReferendaStage, PezpalletRcMigratorSchedulerSchedulerStage, PezpalletRcMigratorStakingBagsListBagsListStage, PezpalletRcMigratorStakingDelegatedStakingDelegatedStakingStage, PezpalletRcMigratorStakingNomPoolsNomPoolsStage, PezpalletRcMigratorStakingStakingImplStakingStage, PezpalletRcMigratorTreasuryTreasuryStage, PezpalletReferendaReferendumInfo, PezpalletReferendaReferendumStatus, PezpalletSessionHistoricalPezpalletEvent, PezpalletSessionHoldReason, PezpalletStakingAsyncAhClientCall, PezpalletStakingAsyncAhClientError, PezpalletStakingAsyncAhClientEvent, PezpalletStakingAsyncAhClientOperatingMode, PezpalletStakingAsyncAhClientUnexpectedKind, PezpalletStakingAsyncRcClientOffence, PezpalletStakingAsyncRcClientSessionReport, PezpalletStakingAsyncRcClientValidatorSetReport, PezpalletTransactionPaymentChargeTransactionPayment, PezpalletXcmAuthorizedAliasesEntry, PezpalletXcmCall, PezpalletXcmError, PezpalletXcmErrorsExecutionError, PezpalletXcmEvent, PezpalletXcmHoldReason, PezpalletXcmMaxAuthorizedAliases, PezpalletXcmOrigin, PezpalletXcmQueryStatus, PezpalletXcmRemoteLockedFungibleRecord, PezpalletXcmVersionMigrationStage, PezspRuntimeMultiSigner, RelayCommonApisInflationInfo, StagingXcmExecutorAssetTransferTransferType, StagingXcmV3MultiLocation, StagingXcmV4Asset, StagingXcmV4AssetAssetFilter, StagingXcmV4AssetAssetId, StagingXcmV4AssetAssetInstance, StagingXcmV4AssetAssets, StagingXcmV4AssetFungibility, StagingXcmV4AssetWildAsset, StagingXcmV4AssetWildFungibility, StagingXcmV4Instruction, StagingXcmV4Junction, StagingXcmV4JunctionNetworkId, StagingXcmV4Junctions, StagingXcmV4Location, StagingXcmV4PezpalletInfo, StagingXcmV4QueryResponseInfo, StagingXcmV4Response, StagingXcmV4Xcm, StagingXcmV5Asset, StagingXcmV5AssetAssetFilter, StagingXcmV5AssetAssetId, StagingXcmV5AssetAssetInstance, StagingXcmV5AssetAssetTransferFilter, StagingXcmV5AssetAssets, StagingXcmV5AssetFungibility, StagingXcmV5AssetWildAsset, StagingXcmV5AssetWildFungibility, StagingXcmV5Hint, StagingXcmV5Instruction, StagingXcmV5Junction, StagingXcmV5JunctionNetworkId, StagingXcmV5Junctions, StagingXcmV5Location, StagingXcmV5PezpalletInfo, StagingXcmV5QueryResponseInfo, StagingXcmV5Response, StagingXcmV5TraitsInstructionError, StagingXcmV5TraitsOutcome, StagingXcmV5Xcm, XcmDoubleEncoded, XcmRuntimeApisAuthorizedAliasesOriginAliaser, XcmRuntimeApisConversionsError, XcmRuntimeApisDryRunCallDryRunEffects, XcmRuntimeApisDryRunError, XcmRuntimeApisDryRunXcmDryRunEffects, XcmRuntimeApisFeesError, XcmV3Instruction, XcmV3Junction, XcmV3JunctionBodyId, XcmV3JunctionBodyPart, XcmV3JunctionNetworkId, XcmV3Junctions, XcmV3MaybeErrorCode, XcmV3MultiAsset, XcmV3MultiassetAssetId, XcmV3MultiassetAssetInstance, XcmV3MultiassetFungibility, XcmV3MultiassetMultiAssetFilter, XcmV3MultiassetMultiAssets, XcmV3MultiassetWildFungibility, XcmV3MultiassetWildMultiAsset, XcmV3OriginKind, XcmV3PezpalletInfo, XcmV3QueryResponseInfo, XcmV3Response, XcmV3TraitsError, XcmV3TraitsSendError, XcmV3WeightLimit, XcmV3Xcm, XcmV5TraitsError, XcmVersionedAssetId, XcmVersionedAssets, XcmVersionedLocation, XcmVersionedResponse, XcmVersionedXcm } from '@pezkuwi/types/lookup'; + +declare module '@pezkuwi/types/types/registry' { + interface InterfaceTypes { + BinaryHeapEnqueuedOrder: BinaryHeapEnqueuedOrder; + BinaryHeapReverseQueueIndex: BinaryHeapReverseQueueIndex; + BitvecOrderLsb0: BitvecOrderLsb0; + PezframeElectionProviderSupportBoundedSupport: PezframeElectionProviderSupportBoundedSupport; + PezframeElectionProviderSupportBoundedSupports: PezframeElectionProviderSupportBoundedSupports; + PezframeSupportStorageDisabled: PezframeSupportStorageDisabled; + PezkuwiCorePrimitivesInboundDownwardMessage: PezkuwiCorePrimitivesInboundDownwardMessage; + PezkuwiCorePrimitivesInboundHrmpMessage: PezkuwiCorePrimitivesInboundHrmpMessage; + PezkuwiCorePrimitivesOutboundHrmpMessage: PezkuwiCorePrimitivesOutboundHrmpMessage; + PezkuwiPrimitivesV8ApprovalVotingParams: PezkuwiPrimitivesV8ApprovalVotingParams; + PezkuwiPrimitivesV8AssignmentAppPublic: PezkuwiPrimitivesV8AssignmentAppPublic; + PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams: PezkuwiPrimitivesV8AsyncBackingAsyncBackingParams; + PezkuwiPrimitivesV8AsyncBackingConstraints: PezkuwiPrimitivesV8AsyncBackingConstraints; + PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations: PezkuwiPrimitivesV8AsyncBackingInboundHrmpLimitations; + PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations: PezkuwiPrimitivesV8AsyncBackingOutboundHrmpChannelLimitations; + PezkuwiPrimitivesV8CandidateCommitments: PezkuwiPrimitivesV8CandidateCommitments; + PezkuwiPrimitivesV8CollatorAppPublic: PezkuwiPrimitivesV8CollatorAppPublic; + PezkuwiPrimitivesV8DisputeState: PezkuwiPrimitivesV8DisputeState; + PezkuwiPrimitivesV8DisputeStatement: PezkuwiPrimitivesV8DisputeStatement; + PezkuwiPrimitivesV8DisputeStatementSet: PezkuwiPrimitivesV8DisputeStatementSet; + PezkuwiPrimitivesV8ExecutorParams: PezkuwiPrimitivesV8ExecutorParams; + PezkuwiPrimitivesV8ExecutorParamsExecutorParam: PezkuwiPrimitivesV8ExecutorParamsExecutorParam; + PezkuwiPrimitivesV8GroupRotationInfo: PezkuwiPrimitivesV8GroupRotationInfo; + PezkuwiPrimitivesV8IndexedVecGroupIndex: PezkuwiPrimitivesV8IndexedVecGroupIndex; + PezkuwiPrimitivesV8IndexedVecValidatorIndex: PezkuwiPrimitivesV8IndexedVecValidatorIndex; + PezkuwiPrimitivesV8InvalidDisputeStatementKind: PezkuwiPrimitivesV8InvalidDisputeStatementKind; + PezkuwiPrimitivesV8OccupiedCoreAssumption: PezkuwiPrimitivesV8OccupiedCoreAssumption; + PezkuwiPrimitivesV8PersistedValidationData: PezkuwiPrimitivesV8PersistedValidationData; + PezkuwiPrimitivesV8PvfCheckStatement: PezkuwiPrimitivesV8PvfCheckStatement; + PezkuwiPrimitivesV8PvfExecKind: PezkuwiPrimitivesV8PvfExecKind; + PezkuwiPrimitivesV8PvfPrepKind: PezkuwiPrimitivesV8PvfPrepKind; + PezkuwiPrimitivesV8ScheduledCore: PezkuwiPrimitivesV8ScheduledCore; + PezkuwiPrimitivesV8SchedulerParams: PezkuwiPrimitivesV8SchedulerParams; + PezkuwiPrimitivesV8SessionInfo: PezkuwiPrimitivesV8SessionInfo; + PezkuwiPrimitivesV8SignedUncheckedSigned: PezkuwiPrimitivesV8SignedUncheckedSigned; + PezkuwiPrimitivesV8SlashingDisputeProof: PezkuwiPrimitivesV8SlashingDisputeProof; + PezkuwiPrimitivesV8SlashingDisputesTimeSlot: PezkuwiPrimitivesV8SlashingDisputesTimeSlot; + PezkuwiPrimitivesV8SlashingPendingSlashes: PezkuwiPrimitivesV8SlashingPendingSlashes; + PezkuwiPrimitivesV8SlashingSlashingOffenceKind: PezkuwiPrimitivesV8SlashingSlashingOffenceKind; + PezkuwiPrimitivesV8UpgradeGoAhead: PezkuwiPrimitivesV8UpgradeGoAhead; + PezkuwiPrimitivesV8UpgradeRestriction: PezkuwiPrimitivesV8UpgradeRestriction; + PezkuwiPrimitivesV8ValidDisputeStatementKind: PezkuwiPrimitivesV8ValidDisputeStatementKind; + PezkuwiPrimitivesV8ValidatorAppPublic: PezkuwiPrimitivesV8ValidatorAppPublic; + PezkuwiPrimitivesV8ValidatorAppSignature: PezkuwiPrimitivesV8ValidatorAppSignature; + PezkuwiPrimitivesV8ValidityAttestation: PezkuwiPrimitivesV8ValidityAttestation; + PezkuwiPrimitivesVstagingAsyncBackingBackingState: PezkuwiPrimitivesVstagingAsyncBackingBackingState; + PezkuwiPrimitivesVstagingAsyncBackingCandidatePendingAvailability: PezkuwiPrimitivesVstagingAsyncBackingCandidatePendingAvailability; + PezkuwiPrimitivesVstagingAsyncBackingConstraints: PezkuwiPrimitivesVstagingAsyncBackingConstraints; + PezkuwiPrimitivesVstagingBackedCandidate: PezkuwiPrimitivesVstagingBackedCandidate; + PezkuwiPrimitivesVstagingCandidateDescriptorV2: PezkuwiPrimitivesVstagingCandidateDescriptorV2; + PezkuwiPrimitivesVstagingCandidateEvent: PezkuwiPrimitivesVstagingCandidateEvent; + PezkuwiPrimitivesVstagingCandidateReceiptV2: PezkuwiPrimitivesVstagingCandidateReceiptV2; + PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2: PezkuwiPrimitivesVstagingCommittedCandidateReceiptV2; + PezkuwiPrimitivesVstagingCoreState: PezkuwiPrimitivesVstagingCoreState; + PezkuwiPrimitivesVstagingDisputeOffenceKind: PezkuwiPrimitivesVstagingDisputeOffenceKind; + PezkuwiPrimitivesVstagingDisputeProof: PezkuwiPrimitivesVstagingDisputeProof; + PezkuwiPrimitivesVstagingInherentData: PezkuwiPrimitivesVstagingInherentData; + PezkuwiPrimitivesVstagingOccupiedCore: PezkuwiPrimitivesVstagingOccupiedCore; + PezkuwiPrimitivesVstagingPendingSlashes: PezkuwiPrimitivesVstagingPendingSlashes; + PezkuwiPrimitivesVstagingScrapedOnChainVotes: PezkuwiPrimitivesVstagingScrapedOnChainVotes; + PezkuwiRuntimeCommonAuctionsPezpalletCall: PezkuwiRuntimeCommonAuctionsPezpalletCall; + PezkuwiRuntimeCommonAuctionsPezpalletError: PezkuwiRuntimeCommonAuctionsPezpalletError; + PezkuwiRuntimeCommonAuctionsPezpalletEvent: PezkuwiRuntimeCommonAuctionsPezpalletEvent; + PezkuwiRuntimeCommonClaimsEcdsaSignature: PezkuwiRuntimeCommonClaimsEcdsaSignature; + PezkuwiRuntimeCommonClaimsEthereumAddress: PezkuwiRuntimeCommonClaimsEthereumAddress; + PezkuwiRuntimeCommonClaimsPezpalletCall: PezkuwiRuntimeCommonClaimsPezpalletCall; + PezkuwiRuntimeCommonClaimsPezpalletError: PezkuwiRuntimeCommonClaimsPezpalletError; + PezkuwiRuntimeCommonClaimsPezpalletEvent: PezkuwiRuntimeCommonClaimsPezpalletEvent; + PezkuwiRuntimeCommonClaimsPrevalidateAttests: PezkuwiRuntimeCommonClaimsPrevalidateAttests; + PezkuwiRuntimeCommonClaimsStatementKind: PezkuwiRuntimeCommonClaimsStatementKind; + PezkuwiRuntimeCommonCrowdloanFundInfo: PezkuwiRuntimeCommonCrowdloanFundInfo; + PezkuwiRuntimeCommonCrowdloanLastContribution: PezkuwiRuntimeCommonCrowdloanLastContribution; + PezkuwiRuntimeCommonCrowdloanPezpalletCall: PezkuwiRuntimeCommonCrowdloanPezpalletCall; + PezkuwiRuntimeCommonCrowdloanPezpalletError: PezkuwiRuntimeCommonCrowdloanPezpalletError; + PezkuwiRuntimeCommonCrowdloanPezpalletEvent: PezkuwiRuntimeCommonCrowdloanPezpalletEvent; + PezkuwiRuntimeCommonImplsVersionedLocatableAsset: PezkuwiRuntimeCommonImplsVersionedLocatableAsset; + PezkuwiRuntimeCommonParasRegistrarParaInfo: PezkuwiRuntimeCommonParasRegistrarParaInfo; + PezkuwiRuntimeCommonParasRegistrarPezpalletCall: PezkuwiRuntimeCommonParasRegistrarPezpalletCall; + PezkuwiRuntimeCommonParasRegistrarPezpalletError: PezkuwiRuntimeCommonParasRegistrarPezpalletError; + PezkuwiRuntimeCommonParasRegistrarPezpalletEvent: PezkuwiRuntimeCommonParasRegistrarPezpalletEvent; + PezkuwiRuntimeCommonSlotsPezpalletCall: PezkuwiRuntimeCommonSlotsPezpalletCall; + PezkuwiRuntimeCommonSlotsPezpalletError: PezkuwiRuntimeCommonSlotsPezpalletError; + PezkuwiRuntimeCommonSlotsPezpalletEvent: PezkuwiRuntimeCommonSlotsPezpalletEvent; + PezkuwiRuntimeConstantsProxyProxyType: PezkuwiRuntimeConstantsProxyProxyType; + PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin: PezkuwiRuntimeGovernanceOriginsPezpalletCustomOriginsOrigin; + PezkuwiRuntimeNposCompactSolution16: PezkuwiRuntimeNposCompactSolution16; + PezkuwiRuntimeOriginCaller: PezkuwiRuntimeOriginCaller; + PezkuwiRuntimeRuntime: PezkuwiRuntimeRuntime; + PezkuwiRuntimeRuntimeError: PezkuwiRuntimeRuntimeError; + PezkuwiRuntimeRuntimeFreezeReason: PezkuwiRuntimeRuntimeFreezeReason; + PezkuwiRuntimeRuntimeHoldReason: PezkuwiRuntimeRuntimeHoldReason; + PezkuwiRuntimeSessionKeys: PezkuwiRuntimeSessionKeys; + PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState: PezkuwiRuntimeTeyrchainsAssignerCoretimeAssignmentState; + PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor: PezkuwiRuntimeTeyrchainsAssignerCoretimeCoreDescriptor; + PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError: PezkuwiRuntimeTeyrchainsAssignerCoretimePezpalletError; + PezkuwiRuntimeTeyrchainsAssignerCoretimeQueueDescriptor: PezkuwiRuntimeTeyrchainsAssignerCoretimeQueueDescriptor; + PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule: PezkuwiRuntimeTeyrchainsAssignerCoretimeSchedule; + PezkuwiRuntimeTeyrchainsAssignerCoretimeWorkState: PezkuwiRuntimeTeyrchainsAssignerCoretimeWorkState; + PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration: PezkuwiRuntimeTeyrchainsConfigurationHostConfiguration; + PezkuwiRuntimeTeyrchainsConfigurationPezpalletCall: PezkuwiRuntimeTeyrchainsConfigurationPezpalletCall; + PezkuwiRuntimeTeyrchainsConfigurationPezpalletError: PezkuwiRuntimeTeyrchainsConfigurationPezpalletError; + PezkuwiRuntimeTeyrchainsCoretimePezpalletCall: PezkuwiRuntimeTeyrchainsCoretimePezpalletCall; + PezkuwiRuntimeTeyrchainsCoretimePezpalletError: PezkuwiRuntimeTeyrchainsCoretimePezpalletError; + PezkuwiRuntimeTeyrchainsCoretimePezpalletEvent: PezkuwiRuntimeTeyrchainsCoretimePezpalletEvent; + PezkuwiRuntimeTeyrchainsDisputesDisputeLocation: PezkuwiRuntimeTeyrchainsDisputesDisputeLocation; + PezkuwiRuntimeTeyrchainsDisputesDisputeResult: PezkuwiRuntimeTeyrchainsDisputesDisputeResult; + PezkuwiRuntimeTeyrchainsDisputesPezpalletCall: PezkuwiRuntimeTeyrchainsDisputesPezpalletCall; + PezkuwiRuntimeTeyrchainsDisputesPezpalletError: PezkuwiRuntimeTeyrchainsDisputesPezpalletError; + PezkuwiRuntimeTeyrchainsDisputesPezpalletEvent: PezkuwiRuntimeTeyrchainsDisputesPezpalletEvent; + PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletCall: PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletCall; + PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError: PezkuwiRuntimeTeyrchainsDisputesSlashingPezpalletError; + PezkuwiRuntimeTeyrchainsHrmpHrmpChannel: PezkuwiRuntimeTeyrchainsHrmpHrmpChannel; + PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest: PezkuwiRuntimeTeyrchainsHrmpHrmpOpenChannelRequest; + PezkuwiRuntimeTeyrchainsHrmpPezpalletCall: PezkuwiRuntimeTeyrchainsHrmpPezpalletCall; + PezkuwiRuntimeTeyrchainsHrmpPezpalletError: PezkuwiRuntimeTeyrchainsHrmpPezpalletError; + PezkuwiRuntimeTeyrchainsHrmpPezpalletEvent: PezkuwiRuntimeTeyrchainsHrmpPezpalletEvent; + PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin: PezkuwiRuntimeTeyrchainsInclusionAggregateMessageOrigin; + PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability: PezkuwiRuntimeTeyrchainsInclusionCandidatePendingAvailability; + PezkuwiRuntimeTeyrchainsInclusionPezpalletCall: PezkuwiRuntimeTeyrchainsInclusionPezpalletCall; + PezkuwiRuntimeTeyrchainsInclusionPezpalletError: PezkuwiRuntimeTeyrchainsInclusionPezpalletError; + PezkuwiRuntimeTeyrchainsInclusionPezpalletEvent: PezkuwiRuntimeTeyrchainsInclusionPezpalletEvent; + PezkuwiRuntimeTeyrchainsInclusionUmpQueueId: PezkuwiRuntimeTeyrchainsInclusionUmpQueueId; + PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange: PezkuwiRuntimeTeyrchainsInitializerBufferedSessionChange; + PezkuwiRuntimeTeyrchainsInitializerPezpalletCall: PezkuwiRuntimeTeyrchainsInitializerPezpalletCall; + PezkuwiRuntimeTeyrchainsOnDemandPezpalletCall: PezkuwiRuntimeTeyrchainsOnDemandPezpalletCall; + PezkuwiRuntimeTeyrchainsOnDemandPezpalletError: PezkuwiRuntimeTeyrchainsOnDemandPezpalletError; + PezkuwiRuntimeTeyrchainsOnDemandPezpalletEvent: PezkuwiRuntimeTeyrchainsOnDemandPezpalletEvent; + PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount: PezkuwiRuntimeTeyrchainsOnDemandTypesCoreAffinityCount; + PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder: PezkuwiRuntimeTeyrchainsOnDemandTypesEnqueuedOrder; + PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType: PezkuwiRuntimeTeyrchainsOnDemandTypesQueueStatusType; + PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin: PezkuwiRuntimeTeyrchainsOriginPezpalletOrigin; + PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry: PezkuwiRuntimeTeyrchainsParasAuthorizedCodeHashAndExpiry; + PezkuwiRuntimeTeyrchainsParasInherentPezpalletCall: PezkuwiRuntimeTeyrchainsParasInherentPezpalletCall; + PezkuwiRuntimeTeyrchainsParasInherentPezpalletError: PezkuwiRuntimeTeyrchainsParasInherentPezpalletError; + PezkuwiRuntimeTeyrchainsParasParaGenesisArgs: PezkuwiRuntimeTeyrchainsParasParaGenesisArgs; + PezkuwiRuntimeTeyrchainsParasParaLifecycle: PezkuwiRuntimeTeyrchainsParasParaLifecycle; + PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta: PezkuwiRuntimeTeyrchainsParasParaPastCodeMeta; + PezkuwiRuntimeTeyrchainsParasPezpalletCall: PezkuwiRuntimeTeyrchainsParasPezpalletCall; + PezkuwiRuntimeTeyrchainsParasPezpalletError: PezkuwiRuntimeTeyrchainsParasPezpalletError; + PezkuwiRuntimeTeyrchainsParasPezpalletEvent: PezkuwiRuntimeTeyrchainsParasPezpalletEvent; + PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState: PezkuwiRuntimeTeyrchainsParasPvfCheckActiveVoteState; + PezkuwiRuntimeTeyrchainsParasPvfCheckCause: PezkuwiRuntimeTeyrchainsParasPvfCheckCause; + PezkuwiRuntimeTeyrchainsParasReplacementTimes: PezkuwiRuntimeTeyrchainsParasReplacementTimes; + PezkuwiRuntimeTeyrchainsParasUpgradeStrategy: PezkuwiRuntimeTeyrchainsParasUpgradeStrategy; + PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment: PezkuwiRuntimeTeyrchainsSchedulerCommonAssignment; + PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker: PezkuwiRuntimeTeyrchainsSharedAllowedRelayParentsTracker; + PezkuwiRuntimeTeyrchainsSharedPezpalletCall: PezkuwiRuntimeTeyrchainsSharedPezpalletCall; + PezkuwiRuntimeTeyrchainsSharedRelayParentInfo: PezkuwiRuntimeTeyrchainsSharedRelayParentInfo; + PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId: PezkuwiTeyrchainPrimitivesPrimitivesHrmpChannelId; + PezpalletBalancesUnexpectedKind: PezpalletBalancesUnexpectedKind; + PezpalletRcMigratorAccountsAccountState: PezpalletRcMigratorAccountsAccountState; + PezpalletRcMigratorAccountsMigratedBalances: PezpalletRcMigratorAccountsMigratedBalances; + PezpalletRcMigratorBountiesBountiesStage: PezpalletRcMigratorBountiesBountiesStage; + PezpalletRcMigratorCall: PezpalletRcMigratorCall; + PezpalletRcMigratorChildBountiesChildBountiesStage: PezpalletRcMigratorChildBountiesChildBountiesStage; + PezpalletRcMigratorClaimsClaimsStage: PezpalletRcMigratorClaimsClaimsStage; + PezpalletRcMigratorConvictionVotingConvictionVotingStage: PezpalletRcMigratorConvictionVotingConvictionVotingStage; + PezpalletRcMigratorCrowdloanCrowdloanStage: PezpalletRcMigratorCrowdloanCrowdloanStage; + PezpalletRcMigratorError: PezpalletRcMigratorError; + PezpalletRcMigratorEvent: PezpalletRcMigratorEvent; + PezpalletRcMigratorManagerMultisigVote: PezpalletRcMigratorManagerMultisigVote; + PezpalletRcMigratorMigrationSettings: PezpalletRcMigratorMigrationSettings; + PezpalletRcMigratorMigrationStage: PezpalletRcMigratorMigrationStage; + PezpalletRcMigratorQueuePriority: PezpalletRcMigratorQueuePriority; + PezpalletRcMigratorReferendaReferendaStage: PezpalletRcMigratorReferendaReferendaStage; + PezpalletRcMigratorSchedulerSchedulerStage: PezpalletRcMigratorSchedulerSchedulerStage; + PezpalletRcMigratorStakingBagsListBagsListStage: PezpalletRcMigratorStakingBagsListBagsListStage; + PezpalletRcMigratorStakingDelegatedStakingDelegatedStakingStage: PezpalletRcMigratorStakingDelegatedStakingDelegatedStakingStage; + PezpalletRcMigratorStakingNomPoolsNomPoolsStage: PezpalletRcMigratorStakingNomPoolsNomPoolsStage; + PezpalletRcMigratorStakingStakingImplStakingStage: PezpalletRcMigratorStakingStakingImplStakingStage; + PezpalletRcMigratorTreasuryTreasuryStage: PezpalletRcMigratorTreasuryTreasuryStage; + PezpalletReferendaReferendumInfo: PezpalletReferendaReferendumInfo; + PezpalletReferendaReferendumStatus: PezpalletReferendaReferendumStatus; + PezpalletSessionHistoricalPezpalletEvent: PezpalletSessionHistoricalPezpalletEvent; + PezpalletSessionHoldReason: PezpalletSessionHoldReason; + PezpalletStakingAsyncAhClientCall: PezpalletStakingAsyncAhClientCall; + PezpalletStakingAsyncAhClientError: PezpalletStakingAsyncAhClientError; + PezpalletStakingAsyncAhClientEvent: PezpalletStakingAsyncAhClientEvent; + PezpalletStakingAsyncAhClientOperatingMode: PezpalletStakingAsyncAhClientOperatingMode; + PezpalletStakingAsyncAhClientUnexpectedKind: PezpalletStakingAsyncAhClientUnexpectedKind; + PezpalletStakingAsyncRcClientOffence: PezpalletStakingAsyncRcClientOffence; + PezpalletStakingAsyncRcClientSessionReport: PezpalletStakingAsyncRcClientSessionReport; + PezpalletStakingAsyncRcClientValidatorSetReport: PezpalletStakingAsyncRcClientValidatorSetReport; + PezpalletTransactionPaymentChargeTransactionPayment: PezpalletTransactionPaymentChargeTransactionPayment; + PezpalletXcmAuthorizedAliasesEntry: PezpalletXcmAuthorizedAliasesEntry; + PezpalletXcmCall: PezpalletXcmCall; + PezpalletXcmError: PezpalletXcmError; + PezpalletXcmErrorsExecutionError: PezpalletXcmErrorsExecutionError; + PezpalletXcmEvent: PezpalletXcmEvent; + PezpalletXcmHoldReason: PezpalletXcmHoldReason; + PezpalletXcmMaxAuthorizedAliases: PezpalletXcmMaxAuthorizedAliases; + PezpalletXcmOrigin: PezpalletXcmOrigin; + PezpalletXcmQueryStatus: PezpalletXcmQueryStatus; + PezpalletXcmRemoteLockedFungibleRecord: PezpalletXcmRemoteLockedFungibleRecord; + PezpalletXcmVersionMigrationStage: PezpalletXcmVersionMigrationStage; + PezspRuntimeMultiSigner: PezspRuntimeMultiSigner; + RelayCommonApisInflationInfo: RelayCommonApisInflationInfo; + StagingXcmExecutorAssetTransferTransferType: StagingXcmExecutorAssetTransferTransferType; + StagingXcmV3MultiLocation: StagingXcmV3MultiLocation; + StagingXcmV4Asset: StagingXcmV4Asset; + StagingXcmV4AssetAssetFilter: StagingXcmV4AssetAssetFilter; + StagingXcmV4AssetAssetId: StagingXcmV4AssetAssetId; + StagingXcmV4AssetAssetInstance: StagingXcmV4AssetAssetInstance; + StagingXcmV4AssetAssets: StagingXcmV4AssetAssets; + StagingXcmV4AssetFungibility: StagingXcmV4AssetFungibility; + StagingXcmV4AssetWildAsset: StagingXcmV4AssetWildAsset; + StagingXcmV4AssetWildFungibility: StagingXcmV4AssetWildFungibility; + StagingXcmV4Instruction: StagingXcmV4Instruction; + StagingXcmV4Junction: StagingXcmV4Junction; + StagingXcmV4JunctionNetworkId: StagingXcmV4JunctionNetworkId; + StagingXcmV4Junctions: StagingXcmV4Junctions; + StagingXcmV4Location: StagingXcmV4Location; + StagingXcmV4PezpalletInfo: StagingXcmV4PezpalletInfo; + StagingXcmV4QueryResponseInfo: StagingXcmV4QueryResponseInfo; + StagingXcmV4Response: StagingXcmV4Response; + StagingXcmV4Xcm: StagingXcmV4Xcm; + StagingXcmV5Asset: StagingXcmV5Asset; + StagingXcmV5AssetAssetFilter: StagingXcmV5AssetAssetFilter; + StagingXcmV5AssetAssetId: StagingXcmV5AssetAssetId; + StagingXcmV5AssetAssetInstance: StagingXcmV5AssetAssetInstance; + StagingXcmV5AssetAssetTransferFilter: StagingXcmV5AssetAssetTransferFilter; + StagingXcmV5AssetAssets: StagingXcmV5AssetAssets; + StagingXcmV5AssetFungibility: StagingXcmV5AssetFungibility; + StagingXcmV5AssetWildAsset: StagingXcmV5AssetWildAsset; + StagingXcmV5AssetWildFungibility: StagingXcmV5AssetWildFungibility; + StagingXcmV5Hint: StagingXcmV5Hint; + StagingXcmV5Instruction: StagingXcmV5Instruction; + StagingXcmV5Junction: StagingXcmV5Junction; + StagingXcmV5JunctionNetworkId: StagingXcmV5JunctionNetworkId; + StagingXcmV5Junctions: StagingXcmV5Junctions; + StagingXcmV5Location: StagingXcmV5Location; + StagingXcmV5PezpalletInfo: StagingXcmV5PezpalletInfo; + StagingXcmV5QueryResponseInfo: StagingXcmV5QueryResponseInfo; + StagingXcmV5Response: StagingXcmV5Response; + StagingXcmV5TraitsInstructionError: StagingXcmV5TraitsInstructionError; + StagingXcmV5TraitsOutcome: StagingXcmV5TraitsOutcome; + StagingXcmV5Xcm: StagingXcmV5Xcm; + XcmDoubleEncoded: XcmDoubleEncoded; + XcmRuntimeApisAuthorizedAliasesOriginAliaser: XcmRuntimeApisAuthorizedAliasesOriginAliaser; + XcmRuntimeApisConversionsError: XcmRuntimeApisConversionsError; + XcmRuntimeApisDryRunCallDryRunEffects: XcmRuntimeApisDryRunCallDryRunEffects; + XcmRuntimeApisDryRunError: XcmRuntimeApisDryRunError; + XcmRuntimeApisDryRunXcmDryRunEffects: XcmRuntimeApisDryRunXcmDryRunEffects; + XcmRuntimeApisFeesError: XcmRuntimeApisFeesError; + XcmV3Instruction: XcmV3Instruction; + XcmV3Junction: XcmV3Junction; + XcmV3JunctionBodyId: XcmV3JunctionBodyId; + XcmV3JunctionBodyPart: XcmV3JunctionBodyPart; + XcmV3JunctionNetworkId: XcmV3JunctionNetworkId; + XcmV3Junctions: XcmV3Junctions; + XcmV3MaybeErrorCode: XcmV3MaybeErrorCode; + XcmV3MultiAsset: XcmV3MultiAsset; + XcmV3MultiassetAssetId: XcmV3MultiassetAssetId; + XcmV3MultiassetAssetInstance: XcmV3MultiassetAssetInstance; + XcmV3MultiassetFungibility: XcmV3MultiassetFungibility; + XcmV3MultiassetMultiAssetFilter: XcmV3MultiassetMultiAssetFilter; + XcmV3MultiassetMultiAssets: XcmV3MultiassetMultiAssets; + XcmV3MultiassetWildFungibility: XcmV3MultiassetWildFungibility; + XcmV3MultiassetWildMultiAsset: XcmV3MultiassetWildMultiAsset; + XcmV3OriginKind: XcmV3OriginKind; + XcmV3PezpalletInfo: XcmV3PezpalletInfo; + XcmV3QueryResponseInfo: XcmV3QueryResponseInfo; + XcmV3Response: XcmV3Response; + XcmV3TraitsError: XcmV3TraitsError; + XcmV3TraitsSendError: XcmV3TraitsSendError; + XcmV3WeightLimit: XcmV3WeightLimit; + XcmV3Xcm: XcmV3Xcm; + XcmV5TraitsError: XcmV5TraitsError; + XcmVersionedAssetId: XcmVersionedAssetId; + XcmVersionedAssets: XcmVersionedAssets; + XcmVersionedLocation: XcmVersionedLocation; + XcmVersionedResponse: XcmVersionedResponse; + XcmVersionedXcm: XcmVersionedXcm; + } // InterfaceTypes +} // declare module diff --git a/packages/types-augment/tsconfig.build.json b/packages/types-augment/tsconfig.build.json new file mode 100644 index 0000000..aa886b7 --- /dev/null +++ b/packages/types-augment/tsconfig.build.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/mod.ts" + ], + "references": [ + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" } + ] +} diff --git a/packages/types-codec/README.md b/packages/types-codec/README.md new file mode 100644 index 0000000..b26aa8c --- /dev/null +++ b/packages/types-codec/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/types-codec + +Base scale-codec types. diff --git a/packages/types-codec/package.json b/packages/types-codec/package.json new file mode 100644 index 0000000..0c24cdc --- /dev/null +++ b/packages/types-codec/package.json @@ -0,0 +1,34 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Implementation of the SCALE codec", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/types-codec#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/types-codec", + "repository": { + "directory": "packages/types-codec", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/x-bigint": "^14.0.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-augment": "16.5.4", + "@pezkuwi/types-support": "16.5.4", + "@pezkuwi/util-crypto": "^14.0.1" + } +} diff --git a/packages/types-codec/src/abstract/Array.ts b/packages/types-codec/src/abstract/Array.ts new file mode 100644 index 0000000..fffac8c --- /dev/null +++ b/packages/types-codec/src/abstract/Array.ts @@ -0,0 +1,213 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, Inspect, IU8a, IVec, Registry } from '../types/index.js'; + +import { compactToU8a, u8aConcatStrict, u8aToHex } from '@pezkuwi/util'; + +import { compareArray } from '../utils/compareArray.js'; + +/** + * @name AbstractArray + * @description + * This manages codec arrays. It is an extension to Array, providing + * specific encoding/decoding on top of the base type. + * @noInheritDoc + */ +export abstract class AbstractArray extends Array implements IVec { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + /** + * @description This ensures that operators such as clice, filter, map, etc. return + * new Array instances (without this we need to apply overrides) + */ + static get [Symbol.species] (): typeof Array { + return Array; + } + + protected constructor (registry: Registry, length: number) { + super(length); + + this.registry = registry; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + // We need to loop through all entries since they may have a variable length themselves, + // e.g. when a Vec or Compact is contained withing, it has a variable length based on data + const count = this.length; + let total = compactToU8a(count).length; + + for (let i = 0; i < count; i++) { + total += this[i].encodedLength; + } + + return total; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.length === 0; + } + + /** + * @description The length of the value + */ + public override get length (): number { + // only included here since we ignore inherited docs + return super.length; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return compareArray(this, other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + inner: this.inspectInner(), + outer: [compactToU8a(this.length)] + }; + } + + /** + * @internal + * @description Internal per-item inspection of internal values + */ + public inspectInner (): Inspect[] { + const count = this.length; + const inner = new Array(count); + + for (let i = 0; i < count; i++) { + inner[i] = this[i].inspect(); + } + + return inner; + } + + /** + * @description Converts the Object to an standard JavaScript Array + */ + public toArray (): T[] { + return Array.from(this); + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + const count = this.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + result[i] = this[i] && this[i].toHuman(isExtended, disableAscii); + } + + return result; + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): AnyJson { + const count = this.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + // We actually log inside the U8a decoding and use JSON.stringify(...), which + // means that the Vec may be partially populated (same applies to toHuman, same check) + result[i] = this[i] && this[i].toJSON(); + } + + return result; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + const count = this.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + result[i] = this[i] && this[i].toPrimitive(disableAscii); + } + + return result; + } + + /** + * @description Returns the base runtime type name for this instance + */ + abstract toRawType (): string; + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + const count = this.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + result[i] = this[i].toString(); + } + + return `[${result.join(', ')}]`; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: boolean): Uint8Array { + const encoded = this.toU8aInner(); + + return isBare + ? u8aConcatStrict(encoded) + : u8aConcatStrict([compactToU8a(this.length), ...encoded]); + } + + /** + * @internal + * @description Internal per-item SCALE encoding of contained values + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8aInner (isBare?: boolean): Uint8Array[] { + const count = this.length; + const encoded = new Array(count); + + for (let i = 0; i < count; i++) { + encoded[i] = this[i].toU8a(isBare); + } + + return encoded; + } +} diff --git a/packages/types-codec/src/abstract/Base.ts b/packages/types-codec/src/abstract/Base.ts new file mode 100644 index 0000000..0a20c8b --- /dev/null +++ b/packages/types-codec/src/abstract/Base.ts @@ -0,0 +1,129 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, BareOpts, Codec, Inspect, IU8a, Registry } from '../types/index.js'; + +/** + * @name Base + * @description A type extends the Base class, when it holds a value + */ +export abstract class AbstractBase implements Codec { + readonly registry: Registry; + + public createdAtHash?: IU8a | undefined; + public initialU8aLength?: number | undefined; + public isStorageFallback?: boolean; + + readonly #raw: T; + + protected constructor (registry: Registry, value: T, initialU8aLength?: number) { + this.initialU8aLength = initialU8aLength; + this.#raw = value; + this.registry = registry; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description returns the inner (wrapped value) + */ + public get inner (): T { + return this.#raw; + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.#raw.isEmpty; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return this.#raw.eq(other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return this.#raw.inspect(); + } + + /** + * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation + */ + public toHex (isLe?: boolean): HexString { + return this.#raw.toHex(isLe); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.#raw.toHuman(isExtended, disableAscii); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): AnyJson { + return this.#raw.toJSON(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + return this.#raw.toPrimitive(disableAscii); + } + + /** + * @description Returns the string representation of the value + */ + public toString (): string { + return this.#raw.toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: BareOpts): Uint8Array { + return this.#raw.toU8a(isBare); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public abstract toRawType (): string; + + /** + * @description Returns the inner wrapped value (equivalent to valueOf) + */ + public unwrap (): T { + return this.#raw; + } + + /** + * @description Returns the inner wrapped value + */ + public valueOf (): T { + return this.#raw; + } +} diff --git a/packages/types-codec/src/abstract/Int.ts b/packages/types-codec/src/abstract/Int.ts new file mode 100644 index 0000000..b032a62 --- /dev/null +++ b/packages/types-codec/src/abstract/Int.ts @@ -0,0 +1,271 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyNumber, Inspect, INumber, IU8a, Registry, ToBn, UIntBitLength } from '../types/index.js'; + +import { BN, BN_BILLION, BN_HUNDRED, BN_MILLION, BN_QUINTILL, bnToBn, bnToHex, bnToU8a, formatBalance, formatNumber, hexToBn, isBigInt, isBn, isFunction, isHex, isNumber, isObject, isString, isU8a, u8aToBn, u8aToNumber } from '@pezkuwi/util'; + +export const DEFAULT_UINT_BITS = 64; + +// Maximum allowed integer for JS is 2^53 - 1, set limit at 52 +// In this case however, we always print any >32 as hex +const MAX_NUMBER_BITS = 52; +const MUL_P = new BN(1_00_00); + +const FORMATTERS: [string, BN][] = [ + ['Perquintill', BN_QUINTILL], + ['Perbill', BN_BILLION], + ['Permill', BN_MILLION], + ['Percent', BN_HUNDRED] +]; + +function isToBn (value: unknown): value is ToBn { + return isFunction((value as ToBn).toBn); +} + +function toPercentage (value: BN, divisor: BN): string { + return `${(value.mul(MUL_P).div(divisor).toNumber() / 100).toFixed(2)}%`; +} + +/** @internal */ +function decodeAbstractInt (value: Exclude | Record | ToBn | null, isNegative: boolean): string | number { + if (isNumber(value)) { + if (!Number.isInteger(value) || value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER) { + throw new Error('Number needs to be an integer <= Number.MAX_SAFE_INTEGER, i.e. 2 ^ 53 - 1'); + } + + return value; + } else if (isString(value)) { + if (isHex(value, -1, true)) { + return hexToBn(value, { isLe: false, isNegative }).toString(); + } + + if (value.includes('.') || value.includes(',') || value.includes('e')) { + throw new Error('String should not contain decimal points or scientific notation'); + } + + return value; + } else if (isBn(value) || isBigInt(value)) { + return value.toString(); + } else if (isObject(value)) { + if (isToBn(value)) { + return value.toBn().toString(); + } + + // Allow the construction from an object with a single top-level key. This means that + // single key objects can be treated equivalently to numbers, assuming they meet the + // specific requirements. (This is useful in Weights 1.5 where Objects are compact) + const keys = Object.keys(value); + + if (keys.length !== 1) { + throw new Error('Unable to construct number from multi-key object'); + } + + return decodeAbstractInt(value[keys[0]], isNegative); + } else if (!value) { + return 0; + } + + throw new Error(`Unable to create BN from unknown type ${typeof value}`); +} + +/** + * @name AbstractInt + * @ignore + * @noInheritDoc + */ +export abstract class AbstractInt extends BN implements INumber { + readonly registry: Registry; + readonly encodedLength: number; + readonly isUnsigned: boolean; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #bitLength: UIntBitLength; + + constructor (registry: Registry, value: AnyNumber | null = 0, bitLength: UIntBitLength = DEFAULT_UINT_BITS, isSigned = false) { + // Construct via a string/number, which will be passed in the BN constructor. + // It would be ideal to actually return a BN, but there is an issue: + // https://github.com/indutny/bn.js/issues/206 + super( + // shortcut isU8a as used in SCALE decoding + isU8a(value) + ? bitLength <= 48 + ? u8aToNumber(value.subarray(0, bitLength / 8), { isNegative: isSigned }) + : u8aToBn(value.subarray(0, bitLength / 8), { isLe: true, isNegative: isSigned }).toString() + : decodeAbstractInt(value, isSigned) + ); + + this.registry = registry; + this.#bitLength = bitLength; + this.encodedLength = this.#bitLength / 8; + this.initialU8aLength = this.#bitLength / 8; + this.isUnsigned = !isSigned; + + const isNegative = this.isNeg(); + const maxBits = bitLength - (isSigned && !isNegative ? 1 : 0); + + if (isNegative && !isSigned) { + throw new Error(`${this.toRawType()}: Negative number passed to unsigned type`); + } else if (super.bitLength() > maxBits) { + throw new Error(`${this.toRawType()}: Input too large. Found input with ${super.bitLength()} bits, expected ${maxBits}`); + } + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is a zero value (align elsewhere) + */ + public get isEmpty (): boolean { + return this.isZero(); + } + + /** + * @description Returns the number of bits in the value + */ + public override bitLength (): number { + return this.#bitLength; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + // eslint-disable-next-line @typescript-eslint/no-explicit-any + public override eq (other?: unknown): boolean { + // Here we are actually overriding the built-in .eq to take care of both + // number and BN inputs (no `.eqn` needed) - numbers will be converted + return super.eq( + isHex(other) + ? hexToBn(other.toString(), { isLe: false, isNegative: !this.isUnsigned }) + : bnToBn(other as string) + ); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description True if this value is the max of the type + */ + public isMax (): boolean { + const u8a = this.toU8a().filter((b) => b === 0xff); + + return u8a.length === (this.#bitLength / 8); + } + + /** + * @description Returns a BigInt representation of the number + */ + public toBigInt (): bigint { + return BigInt(this.toString()); + } + + /** + * @description Returns the BN representation of the number. (Compatibility) + */ + public toBn (): BN { + return this; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (isLe = false): HexString { + // For display/JSON, this is BE, for compare, use isLe + return bnToHex(this, { + bitLength: this.bitLength(), + isLe, + isNegative: !this.isUnsigned + }); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (_isExpanded?: boolean): string { + const rawType = this.toRawType(); + + if (rawType === 'Balance') { + return this.isMax() + ? 'everything' + // FIXME In the case of multiples we need some way of detecting which instance this belongs + // to. as it stands we will always format (incorrectly) against the first token defined + : formatBalance(this, { decimals: this.registry.chainDecimals[0], withSi: true, withUnit: this.registry.chainTokens[0] }); + } + + const [, divisor] = FORMATTERS.find(([type]) => type === rawType) || []; + + return divisor + ? toPercentage(this, divisor) + : formatNumber(this); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (onlyHex = false): any { + // FIXME this return type should by string | number, however BN returns string + // Options here are + // - super.bitLength() - the actual used bits, use hex when close to MAX_SAFE_INTEGER + // - this.#bitLength - the max used bits, use hex when larger than native Rust type + return onlyHex || (this.#bitLength > 128) || (super.bitLength() > MAX_NUMBER_BITS) + ? this.toHex() + : this.toNumber(); + } + + /** + * @description Returns the value in a primitive form, either number when <= 52 bits, or string otherwise + */ + public toPrimitive (): number | string { + return super.bitLength() > MAX_NUMBER_BITS + ? this.toString() + : this.toNumber(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + // NOTE In the case of balances, which have a special meaning on the UI + // and can be interpreted differently, return a specific value for it so + // underlying it always matches (no matter which length it actually is) + return this instanceof this.registry.createClassUnsafe('Balance') + ? 'Balance' + : `${this.isUnsigned ? 'u' : 'i'}${this.bitLength()}`; + } + + /** + * @description Returns the string representation of the value + * @param base The base to use for the conversion + */ + public override toString (base?: number): string { + // only included here since we do not inherit docs + return super.toString(base); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return bnToU8a(this, { + bitLength: this.bitLength(), + isLe: true, + isNegative: !this.isUnsigned + }); + } +} diff --git a/packages/types-codec/src/abstract/Object.ts b/packages/types-codec/src/abstract/Object.ts new file mode 100644 index 0000000..4f40279 --- /dev/null +++ b/packages/types-codec/src/abstract/Object.ts @@ -0,0 +1,99 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, BareOpts, CodecObject, Inspect, IU8a, Registry, ToString } from '../types/index.js'; + +/** + * @name Object + * @description A type extends the Base class, when it holds a value + */ +export abstract class AbstractObject implements CodecObject { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number | undefined; + public isStorageFallback?: boolean; + + readonly $: T; + + protected constructor (registry: Registry, value: T, initialU8aLength?: number) { + this.$ = value; + this.initialU8aLength = initialU8aLength; + this.registry = registry; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public abstract get isEmpty (): boolean; + + /** + * @description Compares the value of the input to see if there is a match + */ + public abstract eq (other?: unknown): boolean; + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public abstract inspect (): Inspect; + + /** + * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation + */ + public abstract toHex (isLe?: boolean): HexString; + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public abstract toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson; + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public abstract toJSON (): AnyJson; + + /** + * @description Converts the value in a best-fit primitive form + */ + public abstract toPrimitive (disableAscii?: boolean): AnyJson; + + /** + * @description Returns the string representation of the value + */ + public toString (): string { + return this.$.toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public abstract toU8a (isBare?: BareOpts): Uint8Array; + + /** + * @description Returns the base runtime type name for this instance + */ + public abstract toRawType (): string; + + /** + * @description Return the internal value (JS-aligned, same result as $) + */ + public valueOf (): T { + return this.$; + } +} diff --git a/packages/types-codec/src/abstract/index.ts b/packages/types-codec/src/abstract/index.ts new file mode 100644 index 0000000..74e3ad2 --- /dev/null +++ b/packages/types-codec/src/abstract/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { AbstractArray } from './Array.js'; +export { AbstractBase } from './Base.js'; +export { AbstractInt } from './Int.js'; diff --git a/packages/types-codec/src/base/Compact.spec.ts b/packages/types-codec/src/base/Compact.spec.ts new file mode 100644 index 0000000..d2f84e4 --- /dev/null +++ b/packages/types-codec/src/base/Compact.spec.ts @@ -0,0 +1,99 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { CodecDate, Compact, U32 } from '@pezkuwi/types-codec'; +import { BN } from '@pezkuwi/util'; + +import { perf } from '../test/performance.js'; + +const CompactU32 = Compact.with(U32); + +describe('Compact', (): void => { + const registry = new TypeRegistry(); + + describe('constructor', (): void => { + it('fails on > MAX_SAFE_INTEGER', (): void => { + // eslint-disable-next-line @typescript-eslint/no-loss-of-precision, no-loss-of-precision + expect(() => new Compact(registry, 'u128', 9007199254740999)).toThrow(/integer <= Number.MAX_SAFE_INTEGER/); + }); + + it('has support for BigInt', (): void => { + expect( + new Compact(registry, 'u128', 123456789000123456789n).toHuman() + ).toEqual('123,456,789,000,123,456,789'); + }); + + it('has the correct bitLength for constructor values (BlockNumber)', (): void => { + expect( + new (Compact.with(registry.createClass('BlockNumber')))(registry, 0xfffffff9).bitLength() + ).toEqual(32); + }); + + it('has the correct encodedLength for constructor values (string BlockNumber)', (): void => { + expect( + new (Compact.with('BlockNumber'))(registry, 0xfffffff9).encodedLength + ).toEqual(5); + }); + + it('has the correct encodedLength for constructor values (class BlockNumber)', (): void => { + expect( + new (Compact.with(registry.createClass('BlockNumber')))(registry, 0xfffffff9).encodedLength + ).toEqual(5); + }); + + it('has the correct encodedLength for constructor values (u32)', (): void => { + expect( + new (Compact.with(U32))(registry, 0xffff9).encodedLength + ).toEqual(4); + }); + + it('constructs properly via Uint8Array as U32', (): void => { + expect( + new (Compact.with(U32))(registry, new Uint8Array([254, 255, 3, 0])).toNumber() + ).toEqual(new BN(0xffff).toNumber()); + }); + + it('constructs properly via number as Moment', (): void => { + expect( + new (Compact.with(CodecDate))(registry, 1537968546).toString().startsWith('Wed Sep 26 2018') // The time depends on the timezone this test is run in + ).toBe(true); + }); + }); + + describe('utils', (): void => { + it('compares against another Compact', (): void => { + expect(new (Compact.with(U32))(registry, 12345).eq(new (Compact.with(U32))(registry, 12345))).toBe(true); + }); + + it('compares against a primitive', (): void => { + expect(new (Compact.with(U32))(registry, 12345).eq(12345)).toBe(true); + }); + + it('unwraps to the wrapped value', (): void => { + expect(new (Compact.with(U32))(registry, 12345).unwrap() instanceof U32).toBe(true); + }); + + it('has a valid toBn interface', (): void => { + expect(new (Compact.with('u128'))(registry, '12345678987654321').toBn().eq(new BN('12345678987654321'))).toBe(true); + }); + + it('has a valid toBigInt interface', (): void => { + expect( + (new (Compact.with('u128'))(registry, 12345678987654321n).toBigInt() + 1n) === 12345678987654322n + ).toBe(true); + }); + + it('has a sane inspect', (): void => { + expect( + new (Compact.with(U32))(registry, 0xffff).inspect() + ).toEqual({ + outer: [new Uint8Array([254, 255, 3, 0])] + }); + }); + }); + + perf('Compact', 75_000, [[new Uint8Array([63 << 2])]], (v: Uint8Array) => new CompactU32(registry, v)); +}); diff --git a/packages/types-codec/src/base/Compact.ts b/packages/types-codec/src/base/Compact.ts new file mode 100644 index 0000000..f813c77 --- /dev/null +++ b/packages/types-codec/src/base/Compact.ts @@ -0,0 +1,198 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, AnyNumber, CodecClass, DefinitionSetter, ICompact, Inspect, INumber, IU8a, Registry } from '../types/index.js'; + +import { compactFromU8a, compactFromU8aLim, compactToU8a, identity, isU8a } from '@pezkuwi/util'; + +import { typeToConstructor } from '../utils/index.js'; + +function decodeCompact (registry: Registry, Type: CodecClass, value: Compact | AnyNumber): [T, number] { + if (isU8a(value)) { + const [decodedLength, bn] = (value[0] & 0b11) < 0b11 + ? compactFromU8aLim(value) + : compactFromU8a(value); + + return [new Type(registry, bn), decodedLength]; + } else if (value instanceof Compact) { + const raw = value.unwrap(); + + return raw instanceof Type + ? [raw, 0] + : [new Type(registry, raw), 0]; + } else if (value instanceof Type) { + return [value, 0]; + } + + return [new Type(registry, value), 0]; +} + +/** + * @name Compact + * @description + * A compact length-encoding codec wrapper. It performs the same function as Length, however + * differs in that it uses a variable number of bytes to do the actual encoding. This is mostly + * used by other types to add length-prefixed encoding, or in the case of wrapped types, taking + * a number and making the compact representation thereof + */ +export class Compact implements ICompact { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #Type: CodecClass; + readonly #raw: T; + + constructor (registry: Registry, Type: CodecClass | string, value: Compact | AnyNumber = 0, { definition, setDefinition = identity }: DefinitionSetter> = {}) { + this.registry = registry; + this.#Type = definition || setDefinition(typeToConstructor(registry, Type)); + + const [raw, decodedLength] = decodeCompact(registry, this.#Type, value); + + this.initialU8aLength = decodedLength; + this.#raw = raw; + } + + public static with (Type: CodecClass | string): CodecClass> { + let definition: CodecClass | undefined; + + // eslint-disable-next-line no-return-assign + const setDefinition = (d: CodecClass) => + (definition = d as unknown as CodecClass) as unknown as CodecClass; + + return class extends Compact { + constructor (registry: Registry, value?: Compact | AnyNumber) { + super(registry, Type, value, { definition, setDefinition }); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.#raw.isEmpty; + } + + /** + * @description Returns the number of bits in the value + */ + public bitLength (): number { + return this.#raw.bitLength(); + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return this.#raw.eq( + other instanceof Compact + ? other.#raw + : other + ); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description Returns a BigInt representation of the number + */ + public toBigInt (): bigint { + return this.#raw.toBigInt(); + } + + /** + * @description Returns the BN representation of the number + */ + public toBn (): BN { + return this.#raw.toBn(); + } + + /** + * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation + */ + public toHex (isLe?: boolean): HexString { + return this.#raw.toHex(isLe); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.#raw.toHuman(isExtended, disableAscii); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): AnyJson { + return this.#raw.toJSON(); + } + + /** + * @description Returns the number representation for the value + */ + public toNumber (): number { + return this.#raw.toNumber(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): string | number { + return this.#raw.toPrimitive(disableAscii); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return `Compact<${this.registry.getClassName(this.#Type) || this.#raw.toRawType()}>`; + } + + /** + * @description Returns the string representation of the value + */ + public toString (): string { + return this.#raw.toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return compactToU8a(this.#raw.toBn()); + } + + /** + * @description Returns the embedded [[UInt]] or [[Moment]] value + */ + public unwrap (): T { + return this.#raw; + } +} diff --git a/packages/types-codec/src/base/DoNotConstruct.spec.ts b/packages/types-codec/src/base/DoNotConstruct.spec.ts new file mode 100644 index 0000000..cae3867 --- /dev/null +++ b/packages/types-codec/src/base/DoNotConstruct.spec.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { DoNotConstruct } from '@pezkuwi/types-codec'; + +describe('DoNotConstruct', (): void => { + const registry = new TypeRegistry(); + + it('does not allow construction', (): void => { + expect( + () => new (DoNotConstruct.with())(registry) + ).toThrow(/Cannot construct unknown type DoNotConstruct/); + }); + + it('does not allow construction (with Name)', (): void => { + expect( + () => new (DoNotConstruct.with('Something'))(registry) + ).toThrow(/Cannot construct unknown type Something/); + }); +}); diff --git a/packages/types-codec/src/base/DoNotConstruct.ts b/packages/types-codec/src/base/DoNotConstruct.ts new file mode 100644 index 0000000..25d2e1a --- /dev/null +++ b/packages/types-codec/src/base/DoNotConstruct.ts @@ -0,0 +1,118 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, CodecClass, Inspect, IU8a, Registry } from '../types/index.js'; + +/** + * @name DoNotConstruct + * @description + * An unknown type that fails on construction with the type info + */ +export class DoNotConstruct implements Codec { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public isStorageFallback?: boolean; + + #neverError: Error; + + constructor (registry: Registry, typeName = 'DoNotConstruct') { + this.registry = registry; + this.#neverError = new Error(`DoNotConstruct: Cannot construct unknown type ${typeName}`); + + throw this.#neverError; + } + + public static with (typeName?: string): CodecClass { + return class extends DoNotConstruct { + constructor (registry: Registry) { + super(registry, typeName); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + throw this.#neverError; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + throw this.#neverError; + } + + /** + * @description Checks if the value is an empty value (always true) + */ + public get isEmpty (): boolean { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + eq (): boolean { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + public inspect (): Inspect { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toHex (): HexString { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toHuman (): AnyJson { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toJSON (): AnyJson { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toPrimitive (): AnyJson { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toRawType (): string { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toString (): string { + throw this.#neverError; + } + + /** + * @description Unimplemented + */ + toU8a (): Uint8Array { + throw this.#neverError; + } +} diff --git a/packages/types-codec/src/base/Enum.spec.ts b/packages/types-codec/src/base/Enum.spec.ts new file mode 100644 index 0000000..ddc86e8 --- /dev/null +++ b/packages/types-codec/src/base/Enum.spec.ts @@ -0,0 +1,487 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { Registry } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { Enum, Null, Text, U32 } from '@pezkuwi/types-codec'; +import { stringify, u8aToHex } from '@pezkuwi/util'; + +import { perf } from '../test/performance.js'; + +const PEnum = Enum.with({ a: U32, b: U32 }); + +describe('Enum', (): void => { + const registry = new TypeRegistry(); + + describe('typed enum (previously EnumType)', (): void => { + it('provides a clean toString() (value)', (): void => { + expect( + new Enum( + registry, + { Text, U32 }, + new Uint8Array([0, 2 << 2, 49, 50]) + ).value.toString() + ).toEqual('12'); + }); + + it('provides a clean toString() (enum)', (): void => { + expect( + new Enum( + registry, + { Text, U32 }, + new Uint8Array([1, 2 << 2, 49, 50]) + ).toString() + ).toEqual('{"u32":3289352}'); + }); + + it('decodes from a JSON input (lowercase)', (): void => { + expect( + new Enum( + registry, + { Text, U32 }, + { text: 'some text value' } + ).value.toString() + ).toEqual('some text value'); + }); + + it('decodes reusing instantiated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + new Enum( + registry, + { foo: Text }, + { foo } + ).value + ).toBe(foo); + + expect( + new Enum( + registry, + { foo: Text }, + foo, + 0 + ).value + ).toBe(foo); + + expect( + new Enum( + registry, + { foo: Text }, + new Enum(registry, { foo: Text }, { foo }) + ).value + ).toBe(foo); + }); + + it('decodes from hex', (): void => { + expect( + new Enum( + registry, + { Text, U32 }, + '0x0134120000' + ).value.toString() + ).toEqual('4660'); // 0x1234 in decimal + }); + + it('decodes from hex (string types)', (): void => { + expect( + new Enum( + registry, + // eslint-disable-next-line sort-keys + { foo: 'Text', bar: 'u32' }, + '0x0134120000' + ).value.toString() + ).toEqual('4660'); // 0x1234 in decimal + }); + + it('decodes from a JSON input (mixed case)', (): void => { + expect( + new Enum( + registry, + { Text, U32 }, + { U32: 42 } + ).value.toString() + ).toEqual('42'); + }); + + it('decodes from JSON string', (): void => { + expect( + new Enum( + registry, + { Null, U32 }, + 'null' + ).type + ).toEqual('Null'); + }); + + it('has correct isXyz/asXyz (Enum.with)', (): void => { + const test = new (Enum.with({ First: Text, Second: U32, Third: U32 }))(registry, { Second: 42 }) as any as { isFirst: boolean; isSecond: boolean; asSecond: U32; isThird: boolean; asThird: never }; + + // const asKeys = Object.keys(test).filter((k) => k.startsWith('as')); + // const isKeys = Object.keys(test).filter((k) => k.startsWith('is')); + + // expect([isKeys, asKeys]).toEqual([ + // ['isFirst', 'isSecond', 'isThird'], + // ['asFirst', 'asSecond', 'asThird'] + // ]); + + expect([test.isFirst, test.isSecond, test.isThird]).toEqual([false, true, false]); + expect(test.asSecond.toNumber()).toEqual(42); + expect((): never => test.asThird).toThrow(/Cannot convert 'Second' via asThird/); + }); + + it('stringifies with custom types', (): void => { + class A extends Null { } + class B extends Null { } + class C extends Null { } + class Test extends Enum { + constructor (registry: Registry, value?: string, index?: number) { + super(registry, { + a: A, + b: B, + c: C + }, value, index); + } + } + + expect(new Test(registry).toJSON()).toEqual({ a: null }); + }); + + it('creates via with', (): void => { + class A extends Null { } + class B extends U32 { } + class C extends Null { } + const Test = Enum.with({ A, B, C }); + + expect(new Test(registry).toJSON()).toEqual({ a: null }); + expect(new Test(registry, 1234, 1).toJSON()).toEqual({ b: 1234 }); + expect(new Test(registry, 0x1234, 1).toU8a()).toEqual(new Uint8Array([1, 0x34, 0x12, 0x00, 0x00])); + expect(new Test(registry, 0x1234, 1).toU8a(true)).toEqual(new Uint8Array([0x34, 0x12, 0x00, 0x00])); + }); + + it('allows accessing the type and value', (): void => { + const text = new Text(registry, 'foo'); + const enumType = new Enum( + registry, + { Text, U32 }, + { Text: text } + ); + + expect(enumType.type).toBe('Text'); + expect(enumType.value).toEqual(text); + }); + + describe('utils', (): void => { + const DEF = { num: U32, str: Text }; + const u8a = new Uint8Array([1, 3 << 2, 88, 89, 90]); + const test = new Enum(registry, DEF, u8a); + + it('compares against index', (): void => { + expect(test.eq(1)).toBe(true); + }); + + it('compares against u8a', (): void => { + expect(test.eq(u8a)).toBe(true); + }); + + it('compares against hex', (): void => { + expect(test.eq(u8aToHex(u8a))).toBe(true); + }); + + it('compares against another enum', (): void => { + expect(test.eq(new Enum(registry, DEF, u8a))).toBe(true); + }); + + it('compares against another object', (): void => { + expect(test.eq({ str: 'XYZ' })).toBe(true); + }); + + it('compares against values', (): void => { + expect(test.eq('XYZ')).toBe(true); + }); + + it('compares basic enum on string', (): void => { + expect(new Enum(registry, ['A', 'B', 'C'], 1).eq('B')).toBe(true); + }); + }); + }); + + describe('string-only construction (old Enum)', (): void => { + const testDecode = (type: string, input: any, expected: any): void => + it(`can decode from ${type}`, (): void => { + const e = new Enum(registry, ['foo', 'bar'], input); + + expect(e.toString()).toBe(expected); + }); + + const testEncode = (to: 'toJSON' | 'toNumber' | 'toString' | 'toU8a', expected: any): void => + it(`can encode ${to}`, (): void => { + const e = new Enum(registry, ['Foo', 'Bar'], 1); + + expect(e[to]()).toEqual(expected); + }); + + testDecode('Enum', undefined, 'foo'); + testDecode('Enum', new Enum(registry, ['foo', 'bar'], 1), 'bar'); + testDecode('number', 0, 'foo'); + testDecode('number', 1, 'bar'); + testDecode('string', 'bar', 'bar'); + testDecode('Uint8Array', Uint8Array.from([0]), 'foo'); + testDecode('Uint8Array', Uint8Array.from([1]), 'bar'); + + testEncode('toJSON', 'Bar'); + testEncode('toNumber', 1); + testEncode('toString', 'Bar'); + testEncode('toU8a', Uint8Array.from([1])); + + it('provides a clean toString()', (): void => { + expect( + new Enum(registry, ['foo', 'bar']).toString() + ).toEqual('foo'); + }); + + it('provides a clean toString() (enum)', (): void => { + expect( + new Enum(registry, ['foo', 'bar'], new Enum(registry, ['foo', 'bar'], 1)).toNumber() + ).toEqual(1); + }); + + it('converts to and from Uint8Array', (): void => { + expect( + new Enum(registry, ['foo', 'bar'], new Uint8Array([1])).toU8a() + ).toEqual(new Uint8Array([1])); + }); + + it('converts from JSON', (): void => { + expect( + new Enum(registry, ['foo', 'bar', 'baz', 'gaz', 'jaz'], 4).toNumber() + ).toEqual(4); + }); + + it('has correct isXyz getters (Enum.with)', (): void => { + const test = new (Enum.with(['First', 'Second', 'Third']))(registry, 'Second') as any as { isFirst: boolean; isSecond: boolean; isThird: boolean }; + + expect([test.isFirst, test.isSecond, test.isThird]).toEqual([false, true, false]); + }); + + describe('utils', (): void => { + it('compares against the index value', (): void => { + expect( + new Enum(registry, ['foo', 'bar'], 1).eq(1) + ).toBe(true); + }); + + it('compares against the index value (false)', (): void => { + expect( + new Enum(registry, ['foo', 'bar'], 1).eq(0) + ).toBe(false); + }); + + it('compares against the string value', (): void => { + expect( + new Enum(registry, ['foo', 'bar'], 1).eq('bar') + ).toBe(true); + }); + + it('compares against the string value (false)', (): void => { + expect( + new Enum(registry, ['foo', 'bar'], 1).eq('foo') + ).toBe(false); + }); + + it('has isNone set, with correct index (i.e. no values are used)', (): void => { + const test = new Enum(registry, ['foo', 'bar'], 1); + + expect(test.isNone).toBe(true); + expect(test.index).toEqual(1); + }); + + it('has a sane inspect', (): void => { + expect( + new Enum( + registry, + { Text, U32 }, + '0x0134120000' + ).inspect() + ).toEqual({ + inner: undefined, + outer: [new Uint8Array([0x01]), new Uint8Array([0x34, 0x12, 0x00, 0x00])] + }); + }); + }); + }); + + describe('index construction', (): void => { + it('creates enum where index is specified', (): void => { + const Test = Enum.with({ + A: U32, + B: U32 + }); + const test = new Test(registry, new U32(registry, 123), 1); + + expect(test.type).toEqual('B'); + expect((test.value as U32).toNumber()).toEqual(123); + }); + + it('creates enum when value is an enum', (): void => { + const Test = Enum.with({ + A: U32, + B: U32 + }); + const test = new Test(registry, new Test(registry, 123, 1)); + + expect(test.type).toEqual('B'); + expect((test.value as U32).toNumber()).toEqual(123); + }); + + it('creates via enum with nested enums as the value', (): void => { + const Nest = Enum.with({ + C: U32, + D: U32 + }); + const Test = Enum.with({ + A: U32, + B: Nest + }); + const test = new Test(registry, new Nest(registry, 123, 1), 1); + + expect(test.type).toEqual('B'); + expect((test.value as Enum).type).toEqual('D'); + expect(((test.value as Enum).value as U32).toNumber()).toEqual(123); + }); + }); + + describe('toRawType', (): void => { + it('has a sane output for basic enums', (): void => { + expect( + new Enum(registry, ['foo', 'bar']).toRawType() + ).toEqual(stringify({ _enum: ['foo', 'bar'] })); + }); + + it('has a sane output for typed enums', (): void => { + expect( + // eslint-disable-next-line sort-keys + new Enum(registry, { foo: Text, bar: U32 }).toRawType() + // eslint-disable-next-line sort-keys + ).toEqual(stringify({ _enum: { foo: 'Text', bar: 'u32' } })); + }); + + it('re-creates via rawType (c-like)', (): void => { + const type = new Enum(registry, ['foo', 'bar']).toRawType() as 'Raw'; + + expect(registry.createType(type, 1).toString()).toEqual('bar'); + }); + + it('re-creates via rawType (types)', (): void => { + const type = new Enum(registry, { A: Text, B: U32, C: U32 }).toRawType(); + const value = registry.createType(type, { B: 123 }); + + expect((value as unknown as { isB: boolean }).isB).toEqual(true); + expect((value as unknown as { asB: U32 }).asB.toNumber()).toEqual(123); + }); + }); + + describe('indexed enum', (): void => { + const Test = Enum.with({ + A: 5, + B: 42, + C: 69, + D: 255 + }); + + it('handles an indexed C-like enum', (): void => { + expect(new Test(registry, 'A').toNumber()).toEqual(5); + expect(new Test(registry, 'B').toNumber()).toEqual(42); + expect(new Test(registry, 'C').toNumber()).toEqual(69); + expect(new Test(registry, 69).toNumber()).toEqual(69); + expect(new Test(registry, 'D').toNumber()).toEqual(255); + }); + + it('creates proper raw structure', (): void => { + expect(new Test(registry).toRawType()).toEqual(stringify({ + _enum: { + A: 5, + B: 42, + C: 69, + D: 255 + } + })); + }); + + it('has the indexes for the enum', (): void => { + expect(new Test(registry).defIndexes).toEqual([5, 42, 69, 255]); + }); + + it('has the correct outputs', (): void => { + const test = new Test(registry, 5); + + expect(test.toU8a()).toEqual(new Uint8Array([5])); + expect(test.toHex()).toEqual('0x05'); + expect(test.toJSON()).toEqual('A'); + }); + }); + + describe('toHex', (): void => { + it('has a proper hex representation & length', (): void => { + const Test = Enum.with({ + A: Text, + B: U32 + }); + const test = new Test(registry, 123, 1); + + expect(test.toHex()).toEqual('0x017b000000'); + expect(test.encodedLength).toEqual(1 + 4); + }); + + it('encodes a single entry correctly', (): void => { + const Test = Enum.with({ A: 'u32' }); + const test = new Test(registry, 0x44332211, 0); + + expect(test.toHex()).toEqual( + '0x' + + '00' + // index + '11223344' // u32 LE encoded + ); + }); + + it('encodes a single entry correctly (with embedded encoding)', (): void => { + const Test = Enum.with({ A: 'MultiAddress' }); + const test = new Test(registry, registry.createType('AccountId', '0x0001020304050607080910111213141516171819202122232425262728293031'), 0); + + expect(test.toHex()).toEqual( + '0x' + + '00' + // index + '00' + // MultiAddress indicating an embedded AccountId + '0001020304050607080910111213141516171819202122232425262728293031' // AccountId + ); + }); + }); + + describe('toU8a', (): void => { + const Test = Enum.with({ + A: Text, + B: U32 + }); + + it('has a correct toU8a() output', (): void => { + expect( + new Test(registry, { B: 69 }).toU8a() + ).toEqual( + new Uint8Array([1, 69, 0, 0, 0]) + ); + }); + + it('has a correct toU8a(true) output', (): void => { + expect( + new Test(registry, { B: 69 }).toU8a(true) + ).toEqual( + new Uint8Array([69, 0, 0, 0]) + ); + }); + }); + + perf('Enum', 20_000, [[new Uint8Array([0, 31, 32, 33, 34])]], (v: Uint8Array) => new PEnum(registry, v)); +}); diff --git a/packages/types-codec/src/base/Enum.ts b/packages/types-codec/src/base/Enum.ts new file mode 100644 index 0000000..0acf502 --- /dev/null +++ b/packages/types-codec/src/base/Enum.ts @@ -0,0 +1,460 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, CodecClass, DefinitionSetter, IEnum, Inspect, IU8a, Registry } from '../types/index.js'; + +import { identity, isHex, isNumber, isObject, isString, isU8a, objectProperties, stringCamelCase, stringify, stringPascalCase, u8aConcatStrict, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { mapToTypeMap, typesToMap } from '../utils/index.js'; +import { Null } from './Null.js'; + +// export interface, this is used in Enum.with, so required as public by TS +export type EnumCodecClass = new(registry: Registry, value?: any, index?: number) => T; + +interface Definition { + def: TypesDef; + isBasic: boolean; + isIndexed: boolean; +} + +interface EntryDef { + Type: CodecClass; + index: number; +} + +type TypesDef = Record; + +interface Decoded { + index: number; + value: Codec; +} + +function isRustEnum (def: Record | Record): def is Record { + const defValues = Object.values(def); + + if (defValues.some((v) => isNumber(v))) { + if (!defValues.every((v) => isNumber(v) && v >= 0 && v <= 255)) { + throw new Error('Invalid number-indexed enum definition'); + } + + return false; + } + + return true; +} + +function extractDef (registry: Registry, _def: Record | Record | string[]): Definition { + const def: TypesDef = {}; + let isBasic: boolean; + let isIndexed: boolean; + + if (Array.isArray(_def)) { + for (let i = 0, count = _def.length; i < count; i++) { + def[_def[i]] = { Type: Null, index: i }; + } + + isBasic = true; + isIndexed = false; + } else if (isRustEnum(_def)) { + const [Types, keys] = mapToTypeMap(registry, _def); + + for (let i = 0, count = keys.length; i < count; i++) { + def[keys[i]] = { Type: Types[i], index: i }; + } + + isBasic = !Object.values(def).some(({ Type }) => Type !== Null); + isIndexed = false; + } else { + const entries = Object.entries(_def); + + for (let i = 0, count = entries.length; i < count; i++) { + const [key, index] = entries[i]; + + def[key] = { Type: Null, index }; + } + + isBasic = true; + isIndexed = true; + } + + return { + def, + isBasic, + isIndexed + }; +} + +function getEntryType (def: TypesDef, checkIdx: number): CodecClass { + const values = Object.values(def); + + for (let i = 0, count = values.length; i < count; i++) { + const { Type, index } = values[i]; + + if (index === checkIdx) { + return Type; + } + } + + throw new Error(`Unable to create Enum via index ${checkIdx}, in ${Object.keys(def).join(', ')}`); +} + +function createFromU8a (registry: Registry, def: TypesDef, index: number, value: Uint8Array): Decoded { + const Type = getEntryType(def, index); + + return { + index, + value: new Type(registry, value) + }; +} + +function createFromValue (registry: Registry, def: TypesDef, index = 0, value?: unknown): Decoded { + const Type = getEntryType(def, index); + + return { + index, + value: value instanceof Type + ? value + : new Type(registry, value) + }; +} + +function decodeFromJSON (registry: Registry, def: TypesDef, key: string, value?: unknown): Decoded { + // JSON comes in the form of { "": "" }, here we + // additionally force to lower to ensure forward compat + const keys = Object.keys(def).map((k) => k.toLowerCase()); + const keyLower = key.toLowerCase(); + const index = keys.indexOf(keyLower); + + if (index === -1) { + throw new Error(`Cannot map Enum JSON, unable to find '${key}' in ${keys.join(', ')}`); + } + + try { + return createFromValue(registry, def, Object.values(def)[index].index, value); + } catch (error) { + throw new Error(`Enum(${key}):: ${(error as Error).message}`); + } +} + +function decodeEnum (registry: Registry, def: TypesDef, value?: unknown, index?: number): Decoded { + // NOTE We check the index path first, before looking at values - this allows treating + // the optional indexes before anything else, more-specific > less-specific + if (isNumber(index)) { + return createFromValue(registry, def, index, value); + } else if (isU8a(value) || isHex(value)) { + const u8a = u8aToU8a(value); + + // nested, we don't want to match isObject below + if (u8a.length) { + return createFromU8a(registry, def, u8a[0], u8a.subarray(1)); + } + } else if (value instanceof Enum) { + return createFromValue(registry, def, value.index, value.value); + } else if (isNumber(value)) { + return createFromValue(registry, def, value); + } else if (isString(value)) { + return decodeFromJSON(registry, def, value.toString()); + } else if (isObject(value)) { + const key = Object.keys(value)[0]; + + return decodeFromJSON(registry, def, key, value[key]); + } + + // Worst-case scenario, return the first with default + return createFromValue(registry, def, Object.values(def)[0].index); +} + +/** + * @name Enum + * @description + * This implements an enum, that based on the value wraps a different type. It is effectively + * an extension to enum where the value type is determined by the actual index. + */ +export class Enum implements IEnum { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #def: TypesDef; + readonly #entryIndex: number; + readonly #indexes: number[]; + readonly #isBasic: boolean; + readonly #isIndexed: boolean; + readonly #raw: Codec; + + constructor (registry: Registry, Types: Record | Record | string[], value?: unknown, index?: number, { definition, setDefinition = identity }: DefinitionSetter = {}) { + const { def, isBasic, isIndexed } = definition || setDefinition(extractDef(registry, Types)); + + // shortcut isU8a as used in SCALE decoding + const decoded = isU8a(value) && value.length && !isNumber(index) + ? createFromU8a(registry, def, value[0], value.subarray(1)) + : decodeEnum(registry, def, value, index); + + this.registry = registry; + this.#def = def; + this.#isBasic = isBasic; + this.#isIndexed = isIndexed; + this.#indexes = Object.values(def).map(({ index }) => index); + this.#entryIndex = this.#indexes.indexOf(decoded.index); + this.#raw = decoded.value; + + if (this.#raw.initialU8aLength) { + this.initialU8aLength = 1 + this.#raw.initialU8aLength; + } + } + + public static with (Types: Record | Record | string[]): EnumCodecClass { + let definition: Definition | undefined; + + // eslint-disable-next-line no-return-assign + const setDefinition = (d: Definition) => + definition = d; + + return class extends Enum { + static { + const keys = Array.isArray(Types) + ? Types + : Object.keys(Types); + const count = keys.length; + const asKeys = new Array(count); + const isKeys = new Array(count); + + for (let i = 0; i < count; i++) { + const name = stringPascalCase(keys[i]); + + asKeys[i] = `as${name}`; + isKeys[i] = `is${name}`; + } + + objectProperties(this.prototype, isKeys, (_: string, i: number, self: Enum) => + self.type === keys[i] + ); + + objectProperties(this.prototype, asKeys, (k: string, i: number, self: Enum): Codec => { + if (self.type !== keys[i]) { + throw new Error(`Cannot convert '${self.type}' via ${k}`); + } + + return self.value; + }); + } + + constructor (registry: Registry, value?: unknown, index?: number) { + super(registry, Types, value, index, { definition, setDefinition }); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return 1 + this.#raw.encodedLength; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description The index of the enum value + */ + public get index (): number { + return this.#indexes[this.#entryIndex]; + } + + /** + * @description The value of the enum + */ + public get inner (): Codec { + return this.#raw; + } + + /** + * @description true if this is a basic enum (no values) + */ + public get isBasic (): boolean { + return this.#isBasic; + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.#raw.isEmpty; + } + + /** + * @description Checks if the Enum points to a [[Null]] type + */ + public get isNone (): boolean { + return this.#raw instanceof Null; + } + + /** + * @description The available keys for this enum + */ + public get defIndexes (): number[] { + return this.#indexes; + } + + /** + * @description The available keys for this enum + */ + public get defKeys (): string[] { + return Object.keys(this.#def); + } + + /** + * @description The name of the type this enum value represents + */ + public get type (): string { + return this.defKeys[this.#entryIndex]; + } + + /** + * @description The value of the enum + */ + public get value (): Codec { + return this.#raw; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + // cater for the case where we only pass the enum index + if (isU8a(other)) { + return !this.toU8a().some((entry, index) => entry !== other[index]); + } else if (isNumber(other)) { + return this.toNumber() === other; + } else if (this.#isBasic && isString(other)) { + return this.type === other; + } else if (isHex(other)) { + return this.toHex() === other; + } else if (other instanceof Enum) { + return this.index === other.index && this.value.eq(other.value); + } else if (isObject(other)) { + return this.value.eq(other[this.type]); + } + + // compare the actual wrapper value + return this.value.eq(other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + if (this.#isBasic) { + return { outer: [new Uint8Array([this.index])] }; + } + + const { inner, outer = [] } = this.#raw.inspect(); + + return { + inner, + outer: [new Uint8Array([this.index]), ...outer] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.#isBasic || this.isNone + ? this.type + : { [this.type]: this.#raw.toHuman(isExtended, disableAscii) }; + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): AnyJson { + return this.#isBasic + ? this.type + : { [stringCamelCase(this.type)]: this.#raw.toJSON() }; + } + + /** + * @description Returns the number representation for the value + */ + public toNumber (): number { + return this.index; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + return this.#isBasic + ? this.type + : { [stringCamelCase(this.type)]: this.#raw.toPrimitive(disableAscii) }; + } + + /** + * @description Returns a raw struct representation of the enum types + */ + protected _toRawStruct (): string[] | Record { + if (this.#isBasic) { + return this.#isIndexed + ? this.defKeys.reduce((out: Record, key, index): Record => { + out[key] = this.#indexes[index]; + + return out; + }, {}) + : this.defKeys; + } + + const entries = Object.entries(this.#def); + + return typesToMap(this.registry, entries.reduce<[CodecClass[], string[]]>((out, [key, { Type }], i) => { + out[0][i] = Type; + out[1][i] = key; + + return out; + }, [new Array(entries.length), new Array(entries.length)])); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return stringify({ _enum: this._toRawStruct() }); + } + + /** + * @description Returns the string representation of the value + */ + public toString (): string { + return this.isNone + ? this.type + : stringify(this.toJSON()); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: boolean): Uint8Array { + return isBare + ? this.#raw.toU8a(isBare) + : u8aConcatStrict([ + new Uint8Array([this.index]), + this.#raw.toU8a(isBare) + ]); + } +} diff --git a/packages/types-codec/src/base/Int.spec.ts b/packages/types-codec/src/base/Int.spec.ts new file mode 100644 index 0000000..d56bd34 --- /dev/null +++ b/packages/types-codec/src/base/Int.spec.ts @@ -0,0 +1,225 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { UIntBitLength } from '../types/index.js'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { Int } from '@pezkuwi/types-codec'; +import { BN } from '@pezkuwi/util'; + +const TESTS: [bitLength: UIntBitLength, value: string | number | Uint8Array, expected?: string][] = [ + [8, 0], + [8, 127], + [8, -128], + [8, new Uint8Array([0])], + [8, new Uint8Array([127])], + [8, new Uint8Array([128]), '-128'], + [32, 0], + [32, 2147483647], + [32, -2147483648] +]; + +describe('Int', (): void => { + const registry = new TypeRegistry(); + + it('can construct via a single-entry struct', (): void => { + expect( + // @ts-expect-error We could receive these via JSON + new Int(registry, { ref_time: 1234 }).toNumber() + ).toEqual(1234); + expect( + // @ts-expect-error We could receive these via JSON + () => new Int(registry, { ref_time: 1234, zoo: 4567 }).toNumber() + ).toThrow(/Unable to construct number from/); + }); + + it('converts to Little Endian from the provided value', (): void => { + expect( + new Int(registry, -1234).toU8a() + ).toEqual(new Uint8Array([46, 251, 255, 255, 255, 255, 255, 255])); + }); + + it('decodes edge case to bytes correctly', (): void => { + // Zero + expect( + new Int(registry, 0, 8).toU8a() + ).toEqual(new Uint8Array([0])); + + expect( + new Int(registry, 0, 16).toU8a() + ).toEqual(new Uint8Array([0, 0])); + + expect( + new Int(registry, 0, 32).toU8a() + ).toEqual(new Uint8Array([0, 0, 0, 0])); + + expect( + new Int(registry, 0, 64).toU8a() + ).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0])); + + expect( + new Int(registry, 0, 128).toU8a() + ).toEqual(new Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])); + + // One + expect( + new Int(registry, 0, 8).toU8a() + ).toEqual(new Uint8Array([0])); + + expect( + new Int(registry, 1, 16).toU8a() + ).toEqual(new Uint8Array([1, 0])); + + expect( + new Int(registry, 1, 32).toU8a() + ).toEqual(new Uint8Array([1, 0, 0, 0])); + + expect( + new Int(registry, 1, 64).toU8a() + ).toEqual(new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0])); + + expect( + new Int(registry, 1, 128).toU8a() + ).toEqual(new Uint8Array([1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])); + + // MIN + expect( + new Int(registry, -128, 8).toU8a() + ).toEqual(new Uint8Array([128])); + + expect( + new Int(registry, -32768, 16).toU8a() + ).toEqual(new Uint8Array([0, 128])); + + // MAX + expect( + new Int(registry, 127, 8).toU8a() + ).toEqual(new Uint8Array([127])); + + expect( + new Int(registry, 32767, 16).toU8a() + ).toEqual(new Uint8Array([255, 127])); + }); + + it('decodes edge case to js number', (): void => { + // Zero + expect( + new Int(registry, new Uint8Array([0]), 8).toNumber() + ).toEqual(0); + + expect( + new Int(registry, new Uint8Array([0, 0]), 16).toNumber() + ).toEqual(0); + + // One + expect( + new Int(registry, new Uint8Array([1]), 8).toNumber() + ).toEqual(1); + + expect( + new Int(registry, new Uint8Array([1, 0]), 16).toNumber() + ).toEqual(1); + + // MIN + expect( + new Int(registry, new Uint8Array([128]), 8).toNumber() + ).toEqual(-128); + + expect( + new Int(registry, new Uint8Array([128, 255]), 16).toNumber() + ).toEqual(-128); + + // MAX + expect( + new Int(registry, new Uint8Array([127]), 8).toNumber() + ).toEqual(127); + + expect( + new Int(registry, new Uint8Array([255, 127]), 16).toNumber() + ).toEqual(32767); + }); + + it('converts to Little Endian from the provided value (bitLength)', (): void => { + expect( + new Int(registry, -1234, 32).toU8a() + ).toEqual(new Uint8Array([46, 251, 255, 255])); + }); + + it('converts to equivalents', (): void => { + const a = new Int(registry, '-123'); + + expect( + new Int(registry, a).toNumber() + ).toEqual(-123); + }); + + it('allows null/undefined', (): void => { + expect( + new Int(registry).toNumber() + ).toEqual(0); + expect( + new Int(registry, null).toNumber() + ).toEqual(0); + }); + + describe('utilities', (): void => { + it('provides a toBigInt interface', (): void => { + expect( + new Int(registry, -1234).toBigInt() + ).toEqual(-1234n); + }); + + it('provides a toBn interface', (): void => { + expect( + new Int(registry, -1234).toBn().toNumber() + ).toEqual(-1234); + }); + + it('provides a toNumber interface', (): void => { + expect( + new Int(registry, -1234).toNumber() + ).toEqual(-1234); + }); + + it('has a sane inspect', (): void => { + expect( + new Int(registry, '0x12', 16).inspect() + ).toEqual({ + outer: [new Uint8Array([0x12, 0x00])] + }); + }); + + it('converts to hex/string', (): void => { + const i = new Int(registry, '0x12', 16); + + expect(i.toHex()).toEqual('0x0012'); + expect(i.toString()).toEqual('18'); + }); + }); + + describe('static with', (): void => { + it('allows default toRawType', (): void => { + expect( + new (Int.with(64))(registry).toRawType() + ).toEqual('i64'); + }); + + it('allows toRawType override', (): void => { + expect( + new (Int.with(64, 'SomethingElse'))(registry).toRawType() + ).toEqual('SomethingElse'); + }); + }); + + describe('conversion tests', (): void => { + TESTS.forEach(([bitLength, input, expected], i): void => { + it(`#${i}: converts ${input as string}`, (): void => { + expect( + new Int(registry, Array.isArray(input) ? new Uint8Array(input) : input, bitLength).toString() + ).toEqual(expected || new BN(input).toString()); + }); + }); + }); +}); diff --git a/packages/types-codec/src/base/Int.ts b/packages/types-codec/src/base/Int.ts new file mode 100644 index 0000000..b00aa09 --- /dev/null +++ b/packages/types-codec/src/base/Int.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyNumber, CodecClass, Registry, UIntBitLength } from '../types/index.js'; + +import { AbstractInt } from '../abstract/Int.js'; + +/** + * @name Int + * @description + * A generic signed integer codec. For Bizinikiwi all numbers are Little Endian encoded, + * this handles the encoding and decoding of those numbers. Upon construction + * the bitLength is provided and any additional use keeps the number to this + * length. This extends `BN`, so all methods available on a normal `BN` object + * is available here. + * @noInheritDoc + */ +export class Int extends AbstractInt { + constructor (registry: Registry, value: AnyNumber | null = 0, bitLength?: UIntBitLength) { + super(registry, value, bitLength, true); + } + + public static with (bitLength: UIntBitLength, typeName?: string): CodecClass { + return class extends Int { + constructor (registry: Registry, value?: AnyNumber | null) { + super(registry, value, bitLength); + } + + public override toRawType (): string { + return typeName || super.toRawType(); + } + }; + } +} diff --git a/packages/types-codec/src/base/Null.spec.ts b/packages/types-codec/src/base/Null.spec.ts new file mode 100644 index 0000000..3edb360 --- /dev/null +++ b/packages/types-codec/src/base/Null.spec.ts @@ -0,0 +1,41 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Null } from '@pezkuwi/types-codec'; + +describe('Null', (): void => { + const registry = new TypeRegistry(); + + it('compares against null', (): void => { + expect(new Null(registry).eq(null)).toBe(true); + }); + + it('compares against Null', (): void => { + expect(new Null(registry).eq(new Null(registry))).toBe(true); + }); + + it('compares against other (failed)', (): void => { + expect(new Null(registry).eq()).toBe(false); + }); + + it('has no hash', (): void => { + expect( + () => new Null(registry).hash + ).toThrow(); + }); + + it('isEmpty', (): void => { + expect(new Null(registry).isEmpty).toBe(true); + }); + + it('has an empty hex', (): void => { + expect(new Null(registry).toHex()).toEqual('0x'); + }); + + it('has a Null type', (): void => { + expect(new Null(registry).toRawType()).toEqual('Null'); + }); +}); diff --git a/packages/types-codec/src/base/Null.ts b/packages/types-codec/src/base/Null.ts new file mode 100644 index 0000000..c82f763 --- /dev/null +++ b/packages/types-codec/src/base/Null.ts @@ -0,0 +1,96 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { Codec, Inspect, IU8a, Registry } from '../types/index.js'; + +import { isNull } from '@pezkuwi/util'; + +/** + * @name Null + * @description + * Implements a type that does not contain anything (apart from `null`) + */ +export class Null implements Codec { + readonly encodedLength = 0; + readonly isEmpty = true; + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength = 0; + public isStorageFallback?: boolean; + + constructor (registry: Registry) { + this.registry = registry; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + throw new Error('.hash is not implemented on Null'); + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return other instanceof Null || isNull(other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return {}; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return '0x'; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): null { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): null { + return null; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (): null { + return null; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'Null'; + } + + /** + * @description Returns the string representation of the value + */ + public toString (): string { + return ''; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return new Uint8Array(); + } +} diff --git a/packages/types-codec/src/base/Option.spec.ts b/packages/types-codec/src/base/Option.spec.ts new file mode 100644 index 0000000..1a112a2 --- /dev/null +++ b/packages/types-codec/src/base/Option.spec.ts @@ -0,0 +1,216 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { bool, Bytes, Null, Option, Text, U32 } from '@pezkuwi/types-codec'; + +const registry = new TypeRegistry(); + +const testDecode = (type: string, input: any, expected: string): void => + it(`can decode from ${type}`, (): void => { + const o = new Option(registry, Text, input); + + expect(o.toString()).toBe(expected); + expect(o.isNone).toBe(!expected.length); + }); + +const testEncode = (to: 'toHex' | 'toString' | 'toU8a', expected: any): void => + it(`can encode ${to}`, (): void => { + const e = new Option(registry, Text, 'foo'); + + expect(e[to]()).toEqual(expected); + }); + +describe('Option', (): void => { + it('converts undefined/null to empty', (): void => { + expect(new Option(registry, Text, undefined).isNone).toBe(true); + expect(new Option(registry, Text, null).isNone).toBe(true); + expect(new Option(registry, Text, 'test').isNone).toBe(false); + expect(new Option(registry, Text, '0x').isNone).toBe(true); + expect(new Option(registry, '()', null).isNone).toBe(true); + }); + + it('can wrap an Option/Option<()>', (): void => { + [ + new Option(registry, Null, new Null(registry)), + new Option(registry, '()', new Null(registry)) + ].forEach((test): void => { + expect(test.isSome).toBe(true); + expect(test.isNone).toBe(false); + expect(test.isEmpty).toBe(false); + expect(test.toU8a()).toEqual(new Uint8Array([1])); + expect(test.unwrap().toHex()).toEqual('0x'); + }); + }); + + it('can decode a nested Option', (): void => { + expect( + new Option( + registry, + Option.with(Option.with(Text)), + new Option( + registry, + Option.with(Text), + new Option( + registry, + Text, + new Uint8Array([1, 3 << 2, 66, 67, 68]) + ) + ) + ).toU8a() + ).toEqual(new Uint8Array([1, 1, 1, 3 << 2, 66, 67, 68])); + }); + + it('can convert between different Some/None', (): void => { + const def = '{ "foo":"Text", "zar":"Text" }'; + const none = new Option(registry, def, null); + const some = new Option(registry, def, new Option(registry, def, { foo: 'a', zar: 'b' })); + + expect(new Option(registry, def, none).isNone).toBe(true); + expect(new Option(registry, def, some).isNone).toBe(false); + expect(new Option(registry, def, some).unwrap().toHuman()).toEqual({ foo: 'a', zar: 'b' }); + }); + + it('correctly handles booleans', (): void => { + expect(new Option(registry, bool).isNone).toBe(true); + expect(new Option(registry, bool, true).isSome).toBe(true); + expect(new Option(registry, bool, true).unwrap().isTrue).toBe(true); + expect(new Option(registry, bool, false).isSome).toBe(true); + expect(new Option(registry, bool, false).unwrap().isTrue).toBe(false); + }); + + it('converts an option to an option', (): void => { + expect( + new Option(registry, Text, new Option(registry, Text, 'hello')).toString() + ).toEqual('hello'); + }); + + it('converts an option to an option (strings)', (): void => { + expect( + new Option(registry, 'Text', new Option(registry, 'Text', 'hello')).toString() + ).toEqual('hello'); + }); + + it('converts correctly from hex with toHex (Bytes)', (): void => { + // Option for a teyrchain head, however, this is effectively an + // Option> (hence the length, since it is from storage) + const HEX = '0x210100000000000000000000000000000000000000000000000000000000000000000000000000000000011b4d03dd8c01f1049143cf9c4c817e4b167f1d1b83e5c6f0f10d89ba1e7bce'; + + // watch the hex prefix and length + expect( + new Option(registry, Bytes, HEX).toHex().substring(6) + ).toEqual(HEX.substring(2)); + }); + + it('converts correctly from hex with toNumber (U64)', (): void => { + const HEX = '0x12345678'; + + expect( + new Option(registry, U32, HEX).unwrap().toNumber() + ).toEqual(0x12345678); + }); + + it('decodes reusing instanciated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + (new Option(registry, Text, foo)).value + ).toBe(foo); + }); + + testDecode('string (with)', 'foo', 'foo'); + testDecode('string (without)', undefined, ''); + testDecode('Uint8Array (with)', Uint8Array.from([1, 12, 102, 111, 111]), 'foo'); + testDecode('Uint8Array (without)', Uint8Array.from([0]), ''); + + testEncode('toHex', '0x0c666f6f'); + testEncode('toString', 'foo'); + testEncode('toU8a', Uint8Array.from([1, 12, 102, 111, 111])); + + it('has empty toString() (undefined)', (): void => { + expect( + new Option(registry, Text).toString() + ).toEqual(''); + }); + + it('has value toString() (provided)', (): void => { + expect( + new Option(registry, Text, new Uint8Array([1, 4 << 2, 49, 50, 51, 52])).toString() + ).toEqual('1234'); + }); + + it('converts toU8a() with', (): void => { + expect( + new Option(registry, Text, '1234').toU8a() + ).toEqual(new Uint8Array([1, 4 << 2, 49, 50, 51, 52])); + }); + + it('allows bare specifiers on toU8a', (): void => { + expect( + new Option(registry, Text, '1234').toU8a(true) + ).toEqual(new Uint8Array([49, 50, 51, 52])); + }); + + it('converts toU8a() without', (): void => { + expect( + new Option(registry, Text).toU8a() + ).toEqual(new Uint8Array([0])); + }); + + it('converts toJSON() as null without', (): void => { + expect( + new Option(registry, Text).toJSON() + ).toEqual(null); + }); + + it('converts toJSON() as non-null with Bytes', (): void => { + expect( + new Option(registry, Bytes, 'abcde').toJSON() + ).toEqual('0x6162636465'); + }); + + it('converts toJSON() as non-null with Text', (): void => { + expect( + new Option(registry, Text, 'abcde').toJSON() + ).toEqual('abcde'); + }); + + describe('utils', (): void => { + const test = new Option(registry, Text, '1234'); + + it('compares against other option', (): void => { + expect(test.eq(new Option(registry, Text, '1234'))).toBe(true); + }); + + it('compares against raw value', (): void => { + expect(test.eq('1234')).toBe(true); + }); + + it('unwrapOr to specified if empty', (): void => { + expect(new Option(registry, Text).unwrapOr('6789').toString()).toEqual('6789'); + }); + + it('unwrapOr to specified if non-empty', (): void => { + expect(new Option(registry, Text, '1234').unwrapOr(null)?.toString()).toEqual('1234'); + }); + + it('unwrapOrDefault to default if empty', (): void => { + expect(new Option(registry, U32).unwrapOrDefault().toNumber()).toEqual(0); + }); + + it('unwrapOrDefault to specified if non-empty', (): void => { + expect(new Option(registry, U32, '1234').unwrapOrDefault().toNumber()).toEqual(1234); + }); + + it('has a sane inspect', (): void => { + expect( + new Option(registry, U32, '1234').inspect() + ).toEqual({ + inner: undefined, + outer: [new Uint8Array([0x01]), new Uint8Array([210, 4, 0, 0])] + }); + }); + }); +}); diff --git a/packages/types-codec/src/base/Option.ts b/packages/types-codec/src/base/Option.ts new file mode 100644 index 0000000..c0689dd --- /dev/null +++ b/packages/types-codec/src/base/Option.ts @@ -0,0 +1,275 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, CodecClass, DefinitionSetter, Inspect, IOption, IU8a, Registry } from '../types/index.js'; + +import { identity, isCodec, isNull, isU8a, isUndefined, u8aToHex } from '@pezkuwi/util'; + +import { typeToConstructor } from '../utils/index.js'; +import { Null } from './Null.js'; + +class None extends Null { + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'None'; + } +} + +/** @internal */ +function decodeOption (registry: Registry, Type: CodecClass, value?: unknown): Codec { + if (value instanceof Type) { + // don't re-create, use as it (which also caters for derived types) + return value; + } else if (value instanceof Option) { + if (value.value instanceof Type) { + // same instance, return it + return value.value; + } else if (value.isNone) { + // internal is None, we are also none + return new None(registry); + } + + // convert the actual value into known + return new Type(registry, value.value); + } else if (isNull(value) || isUndefined(value) || value === '0x' || value instanceof None) { + // anything empty we pass as-is + return new None(registry); + } else if (isU8a(value)) { + // the isU8a check happens last in the if-tree - since the wrapped value + // may be an instance of it, so Type and Option checks go in first + return !value.length || value[0] === 0 + ? new None(registry) + : new Type(registry, value.subarray(1)); + } + + return new Type(registry, value); +} + +/** + * @name Option + * @description + * An Option is an optional field. Basically the first byte indicates that there is + * is value to follow. If the byte is `1` there is an actual value. So the Option + * implements that - decodes, checks for optionality and wraps the required structure + * with a value if/as required/found. + */ +export class Option implements IOption { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #Type: CodecClass; + readonly #raw: T; + + constructor (registry: Registry, typeName: CodecClass | string, value?: unknown, { definition, setDefinition = identity }: DefinitionSetter> = {}) { + const Type = definition || setDefinition(typeToConstructor(registry, typeName)); + const decoded = isU8a(value) && value.length && !isCodec(value) + ? value[0] === 0 + ? new None(registry) + : new Type(registry, value.subarray(1)) + : decodeOption(registry, Type, value); + + this.registry = registry; + this.#Type = Type; + this.#raw = decoded as T; + + if (decoded?.initialU8aLength) { + this.initialU8aLength = 1 + decoded.initialU8aLength; + } + } + + public static with (Type: CodecClass | string): CodecClass> { + let definition: CodecClass | undefined; + + const setDefinition = (d: CodecClass): CodecClass => { + definition = d as unknown as CodecClass; + + return d; + }; + + return class extends Option { + constructor (registry: Registry, value?: unknown) { + super(registry, Type, value, { definition, setDefinition }); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + // boolean byte (has value, doesn't have) along with wrapped length + return 1 + this.#raw.encodedLength; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the Option has no value + */ + public get isEmpty (): boolean { + return this.isNone; + } + + /** + * @description Checks if the Option has no value + */ + public get isNone (): boolean { + return this.#raw instanceof None; + } + + /** + * @description Checks if the Option has a value + */ + public get isSome (): boolean { + return !this.isNone; + } + + /** + * @description The actual value for the Option + */ + public get value (): T { + return this.#raw; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + if (other instanceof Option) { + return (this.isSome === other.isSome) && this.value.eq(other.value); + } + + return this.value.eq(other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + if (this.isNone) { + return { outer: [new Uint8Array([0])] }; + } + + const { inner, outer = [] } = this.#raw.inspect(); + + return { + inner, + outer: [new Uint8Array([1]), ...outer] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + // This attempts to align with the JSON encoding - actually in this case + // the isSome value is correct, however the `isNone` may be problematic + return this.isNone + ? '0x' + : u8aToHex(this.toU8a().subarray(1)); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.#raw.toHuman(isExtended, disableAscii); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): AnyJson { + return this.isNone + ? null + : this.#raw.toJSON(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + return this.isNone + ? null + : this.#raw.toPrimitive(disableAscii); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (isBare?: boolean): string { + const wrapped = this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType(); + + return isBare + ? wrapped + : `Option<${wrapped}>`; + } + + /** + * @description Returns the string representation of the value + */ + public toString (): string { + return this.#raw.toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: boolean): Uint8Array { + if (isBare) { + return this.#raw.toU8a(true); + } + + const u8a = new Uint8Array(this.encodedLength); + + if (this.isSome) { + u8a.set([1]); + u8a.set(this.#raw.toU8a(), 1); + } + + return u8a; + } + + /** + * @description Returns the value that the Option represents (if available), throws if null + */ + public unwrap (): T { + if (this.isNone) { + throw new Error('Option: unwrapping a None value'); + } + + return this.#raw; + } + + /** + * @description Returns the value that the Option represents (if available) or defaultValue if none + * @param defaultValue The value to return if the option isNone + */ + public unwrapOr (defaultValue: O): T | O { + return this.isSome + ? this.unwrap() + : defaultValue; + } + + /** + * @description Returns the value that the Option represents (if available) or defaultValue if none + * @param defaultValue The value to return if the option isNone + */ + public unwrapOrDefault (): T { + return this.isSome + ? this.unwrap() + : new this.#Type(this.registry); + } +} diff --git a/packages/types-codec/src/base/Result.spec.ts b/packages/types-codec/src/base/Result.spec.ts new file mode 100644 index 0000000..9889afa --- /dev/null +++ b/packages/types-codec/src/base/Result.spec.ts @@ -0,0 +1,64 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Result, Text, u32 } from '@pezkuwi/types-codec'; +import { hexToString } from '@pezkuwi/util'; + +describe('Result', (): void => { + const registry = new TypeRegistry(); + const Type = Result.with({ Err: Text, Ok: u32 }); + + it('has a sane toRawType representation', (): void => { + expect(new Type(registry).toRawType()).toEqual('Result'); + }); + + it('decodes from a u8a (success)', (): void => { + const result = new Type(registry, new Uint8Array([0, 1, 2, 3, 4])); + + expect(result.isOk).toBe(true); + expect(result.asOk.toU8a()).toEqual(new Uint8Array([1, 2, 3, 4])); + expect(result.toHex()).toEqual('0x0001020304'); + expect(result.toJSON()).toEqual({ + ok: 0x04030201 + }); + }); + + it('decodes from a u8a (error)', (): void => { + const result = new Type(registry, new Uint8Array([1, 4 << 2, 100, 101, 102, 103])); + + expect(result.isErr).toBe(true); + expect(result.asErr.toU8a()).toEqual(new Uint8Array([4 << 2, 100, 101, 102, 103])); + expect(result.toHex()).toEqual('0x011064656667'); + expect(result.toJSON()).toEqual({ + err: hexToString('0x64656667') + }); + }); + + it('decodes from a JSON representation', (): void => { + const result = new Type(registry, { Err: 'error' }); + + expect(result.isErr).toBe(true); + expect(result.asErr.toString()).toEqual('error'); + expect(result.toHex()).toEqual('0x01146572726f72'); + }); + + it('decodes reusing instanciated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + new Result( + registry, + Text, + Text, + { Ok: foo } + ).asOk + ).toBe(foo); + }); + + it('returns a proper raw typedef rom a built-in', (): void => { + expect(registry.createType('DispatchResult').toRawType()).toEqual('Result<(),DispatchError>'); + }); +}); diff --git a/packages/types-codec/src/base/Result.ts b/packages/types-codec/src/base/Result.ts new file mode 100644 index 0000000..6edd16e --- /dev/null +++ b/packages/types-codec/src/base/Result.ts @@ -0,0 +1,79 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, IResult, Registry } from '../types/index.js'; + +import { Enum } from './Enum.js'; + +/** + * @name Result + * @description + * A Result maps to the Rust Result type, that can either wrap a success or error value + */ +export class Result extends Enum implements IResult { + constructor (registry: Registry, Ok: CodecClass | string, Err: CodecClass | string, value?: unknown) { + // NOTE This is order-dependent, Ok (with index 0) needs to be first + // eslint-disable-next-line sort-keys + super(registry, { Ok, Err }, value); + } + + public static override with (Types: { Ok: CodecClass | string; Err: CodecClass | string }): CodecClass> { + return class extends Result { + constructor (registry: Registry, value?: unknown) { + super(registry, Types.Ok, Types.Err, value); + } + }; + } + + /** + * @description Returns the wrapper Err value (if isErr) + */ + public get asErr (): E { + if (!this.isErr) { + throw new Error('Cannot extract Err value from Ok result, check isErr first'); + } + + return this.value as E; + } + + /** + * @description Returns the wrapper Ok value (if isOk) + */ + public get asOk (): O { + if (!this.isOk) { + throw new Error('Cannot extract Ok value from Err result, check isOk first'); + } + + return this.value as O; + } + + /** + * @description Checks if the Result has no value + */ + public override get isEmpty (): boolean { + return this.isOk && this.value.isEmpty; + } + + /** + * @description Checks if the Result wraps an Err value + */ + public get isErr (): boolean { + return !this.isOk; + } + + /** + * @description Checks if the Result wraps an Ok value + */ + public get isOk (): boolean { + return this.index === 0; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + const Types = this._toRawStruct() as { Ok: unknown; Err: unknown }; + + return `Result<${Types.Ok as string},${Types.Err as string}>`; + } +} diff --git a/packages/types-codec/src/base/Tuple.spec.ts b/packages/types-codec/src/base/Tuple.spec.ts new file mode 100644 index 0000000..b07fdf0 --- /dev/null +++ b/packages/types-codec/src/base/Tuple.spec.ts @@ -0,0 +1,161 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { BlockNumber, VoteThreshold } from '@pezkuwi/types/interfaces'; +import type { AnyTupleValue, CodecTo } from '@pezkuwi/types-codec/types'; + +import { Metadata, TypeRegistry } from '@pezkuwi/types'; +import { Text, Tuple, U32, U128 } from '@pezkuwi/types-codec'; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { stringToU8a } from '@pezkuwi/util'; + +describe('Tuple', (): void => { + const registry = new TypeRegistry(); + let tuple: Tuple; + + beforeEach((): void => { + tuple = new Tuple( + registry, + [Text, U32], + ['bazzing', 69] + ); + }); + + describe('constructor', (): void => { + it('fails construction on non-Array, non-Hex inputs', (): void => { + // @ts-expect-error We are intentionally passing a non-valid input + expect(() => new Tuple(registry, [Text, Text], '12345')).toThrow(/Expected array input to Tuple decoding, found string/); + // @ts-expect-error We are intentionally passing a non-valid input + expect(() => new Tuple(registry, [Text, Text], {})).toThrow(/Expected array input to Tuple decoding, found object/); + }); + }); + + describe('decoding', (): void => { + const testDecode = (type: string, input: AnyTupleValue): void => + it(`can decode from ${type}`, (): void => { + const t = new Tuple(registry, [ + Text, + U32 + ], input); + + expect( + t.toJSON() + ).toEqual(['bazzing', 69]); + }); + + testDecode('array', ['bazzing', 69]); + testDecode('hex', '0x1c62617a7a696e6745000000'); + testDecode('Uint8Array', Uint8Array.from([28, 98, 97, 122, 122, 105, 110, 103, 69, 0, 0, 0])); + + it('decodes reusing instantiated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + (new Tuple(registry, [Text], [foo]))[0] + ).toBe(foo); + }); + + it('decodes properly from complex types', (): void => { + const INPUT = '0xcc0200000000'; + const test = registry.createType('(u32, [u32; 0], u16)', INPUT); + + expect(test.encodedLength).toEqual(4 + 0 + 2); + expect(test.toHex()).toEqual(INPUT); + }); + }); + + describe('encoding', (): void => { + const testEncode = (to: CodecTo | 'toArray', expected: any): void => + it(`can encode ${to}`, (): void => { + expect(tuple[to]()).toEqual(expected); + }); + + testEncode('toHex', '0x1c62617a7a696e6745000000'); + testEncode('toJSON', ['bazzing', 69]); + testEncode('toU8a', Uint8Array.from([28, 98, 97, 122, 122, 105, 110, 103, 69, 0, 0, 0])); + testEncode('toString', '["bazzing",69]'); + }); + + it('creates from string types', (): void => { + expect( + new Tuple( + registry, + ['Text', 'u32', U32], + ['foo', 69, 42] + ).toString() + ).toEqual('["foo",69,42]'); + }); + + it('creates properly via actual hex string', (): void => { + const metadata = new Metadata(registry, rpcMetadata); + + registry.setMetadata(metadata); + + const test = new (Tuple.with([ + registry.createClass('BlockNumber'), registry.createClass('VoteThreshold') + ] + ))(registry, '0x6219000001'); + + expect((test[0] as BlockNumber).toNumber()).toEqual(6498); + expect((test[1] as VoteThreshold).toNumber()).toEqual(1); + }); + + it('exposes the Types', (): void => { + expect(tuple.Types).toEqual(['Text', 'u32']); + }); + + it('exposes the Types (object creation)', (): void => { + const test = new Tuple(registry, { + BlockNumber: registry.createClass('BlockNumber'), + VoteThreshold: registry.createClass('VoteThreshold') + }, []); + + expect(test.Types).toEqual(['BlockNumber', 'VoteThreshold']); + }); + + it('exposes filter', (): void => { + expect(tuple.filter((v): boolean => v.toJSON() === 69)).toEqual([new U32(registry, 69)]); + }); + + it('exposes map', (): void => { + expect(tuple.map((v): string => v.toString())).toEqual(['bazzing', '69']); + }); + + describe('utils', (): void => { + it('compares against inputs', (): void => { + expect(tuple.eq(['bazzing', 69])).toBe(true); + }); + + it('compares against inputs (mismatch)', (): void => { + expect(tuple.eq(['bazzing', 72])).toBe(false); + }); + + it('has a sane inspect', (): void => { + expect( + tuple.inspect() + ).toEqual({ + inner: [ + { outer: [new Uint8Array([7 << 2]), stringToU8a('bazzing')] }, + { outer: [new Uint8Array([69, 0, 0, 0])] } + ] + }); + }); + }); + + describe('toRawType', (): void => { + it('generates sane value with array types', (): void => { + expect( + new Tuple(registry, [U128, registry.createClass('BlockNumber')]).toRawType() + ).toEqual('(u128,BlockNumber)'); + }); + + it('generates sane value with object types', (): void => { + expect( + // eslint-disable-next-line sort-keys + new Tuple(registry, { number: U128, blockNumber: registry.createClass('BlockNumber') }).toRawType() + ).toEqual('(u128,BlockNumber)'); + }); + }); +}); diff --git a/packages/types-codec/src/base/Tuple.ts b/packages/types-codec/src/base/Tuple.ts new file mode 100644 index 0000000..489f7ab --- /dev/null +++ b/packages/types-codec/src/base/Tuple.ts @@ -0,0 +1,149 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyTupleValue, Codec, CodecClass, DefinitionSetter, Inspect, ITuple, Registry } from '../types/index.js'; + +import { identity, isFunction, isHex, isString, isU8a, stringify, u8aConcatStrict, u8aToU8a } from '@pezkuwi/util'; + +import { AbstractArray } from '../abstract/Array.js'; +import { decodeU8a, mapToTypeMap, typesToConstructors, typeToConstructor } from '../utils/index.js'; + +type TupleType = (CodecClass | string); + +type TupleTypes = TupleType[] | Record; + +type Definition = [CodecClass[], string[]]; + +/** @internal */ +function decodeTuple (registry: Registry, result: Codec[], value: Exclude | undefined, Classes: Definition): [Codec[], number] { + if (Array.isArray(value)) { + const Types = Classes[0]; + + for (let i = 0, count = Types.length; i < count; i++) { + try { + const entry = value?.[i]; + + result[i] = entry instanceof Types[i] + ? entry + : new Types[i](registry, entry); + } catch (error) { + throw new Error(`Tuple: failed on ${i}:: ${(error as Error).message}`); + } + } + + return [result, 0]; + } else if (isHex(value)) { + return decodeU8a(registry, result, u8aToU8a(value), Classes); + } else if (!value || !result.length) { + const Types = Classes[0]; + + for (let i = 0, count = Types.length; i < count; i++) { + result[i] = new Types[i](registry); + } + + return [result, 0]; + } + + throw new Error(`Expected array input to Tuple decoding, found ${typeof value}: ${stringify(value)}`); +} + +/** + * @name Tuple + * @description + * A Tuple defines an anonymous fixed-length array, where each element has its + * own type. It extends the base JS `Array` object. + */ +export class Tuple extends AbstractArray implements ITuple { + #Types: Definition; + + constructor (registry: Registry, Types: TupleTypes | TupleType, value?: AnyTupleValue, { definition, setDefinition = identity }: DefinitionSetter = {}) { + const Classes = definition || setDefinition( + Array.isArray(Types) + ? [typesToConstructors(registry, Types), []] + : isFunction(Types) || isString(Types) + ? [[typeToConstructor(registry, Types)], []] + : mapToTypeMap(registry, Types) + ); + + super(registry, Classes[0].length); + + this.initialU8aLength = ( + isU8a(value) + ? decodeU8a(registry, this, value, Classes) + : decodeTuple(registry, this, value, Classes) + )[1]; + this.#Types = Classes; + } + + public static with (Types: TupleTypes | TupleType): CodecClass { + let definition: Definition | undefined; + + // eslint-disable-next-line no-return-assign + const setDefinition = (d: Definition) => + definition = d; + + return class extends Tuple { + constructor (registry: Registry, value?: AnyTupleValue) { + super(registry, Types, value, { definition, setDefinition }); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + let total = 0; + + for (let i = 0, count = this.length; i < count; i++) { + total += this[i].encodedLength; + } + + return total; + } + + /** + * @description The types definition of the tuple + */ + public get Types (): string[] { + return this.#Types[1].length + ? this.#Types[1] + : this.#Types[0].map((T) => new T(this.registry).toRawType()); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return { + inner: this.inspectInner() + }; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + const types = this.#Types[0].map((T) => + this.registry.getClassName(T) || new T(this.registry).toRawType() + ); + + return `(${types.join(',')})`; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + // Overwrite the default toString representation of Array. + return stringify(this.toJSON()); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + return u8aConcatStrict(this.toU8aInner(isBare)); + } +} diff --git a/packages/types-codec/src/base/UInt.spec.ts b/packages/types-codec/src/base/UInt.spec.ts new file mode 100644 index 0000000..5f189f9 --- /dev/null +++ b/packages/types-codec/src/base/UInt.spec.ts @@ -0,0 +1,192 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { UInt } from '@pezkuwi/types-codec'; +import { BN, BN_TWO, isBn } from '@pezkuwi/util'; + +import { perf } from '../test/performance.js'; + +describe('UInt', (): void => { + const registry = new TypeRegistry(); + + it('fails on > MAX_SAFE_INTEGER and float', (): void => { + // eslint-disable-next-line @typescript-eslint/no-loss-of-precision, no-loss-of-precision + expect(() => new UInt(registry, 9007199254740999)).toThrow(/integer <= Number.MAX_SAFE_INTEGER/); + // eslint-disable-next-line @typescript-eslint/no-loss-of-precision, no-loss-of-precision + expect(() => new UInt(registry, -9007199254740999)).toThrow(/integer <= Number.MAX_SAFE_INTEGER/); + expect(() => new UInt(registry, 9.123)).toThrow(/integer <= Number.MAX_SAFE_INTEGER/); + }); + + it('fails on strings with decimal points & scientific notation', (): void => { + expect(() => new UInt(registry, '123.4')).toThrow(/not contain decimal points/); + expect(() => new UInt(registry, '9e10')).toThrow(/not contain decimal points/); + }); + + it('decodes an empty Uint8array correctly', (): void => { + expect( + new UInt(registry, new Uint8Array()).toNumber() + ).toEqual(0); + }); + + it('still has the BN interfaces', (): void => { + expect([ + new UInt(registry, 32).mul(BN_TWO).toNumber(), + new UInt(registry, 64).divn(2).toNumber() + ]).toEqual([64, 32]); + }); + + it('is a BN instance', (): void => { + const test = new UInt(registry, 16); + + expect(isBn(test)).toBe(true); + expect(BN.isBN(test)).toBe(true); + expect(test instanceof BN).toBe(true); + }); + + // e.g. headers + it('decodes hex that are not multiples of 2', (): void => { + expect(new UInt(registry, '0x123').toNumber()).toEqual(0x123); + expect(new UInt(registry, '0x0123').toNumber()).toEqual(0x123); + }); + + it('fails on a number that is too large for the bits specified', (): void => { + expect( + (): UInt => new UInt(registry, '12345678901234567890123456789012345678901234567890', 32) + ).toThrow('u32: Input too large. Found input with 164 bits, expected 32'); + }); + + it('fails on negative numbers', (): void => { + expect( + (): UInt => new UInt(registry, -123, 32) + ).toThrow('u32: Negative number passed to unsigned type'); + }); + + it('allows for construction via BigInt', (): void => { + expect( + new UInt(registry, 123456789123456789123456789n, 128).toHuman() + ).toEqual('123,456,789,123,456,789,123,456,789'); + }); + + it('converts to Little Endian from the provided value', (): void => { + expect( + new UInt(registry, 1234567).toU8a() + ).toEqual(new Uint8Array([135, 214, 18, 0, 0, 0, 0, 0])); + }); + + it('converts to Little Endian from the provided value (bitLength)', (): void => { + expect( + new UInt(registry, 1234567, 32).toU8a() + ).toEqual(new Uint8Array([135, 214, 18, 0])); + }); + + it('converts to hex/string', (): void => { + const u = new UInt(registry, '0x12', 16); + + expect(u.toHex()).toEqual('0x0012'); + expect(u.toString()).toEqual('18'); + }); + + it('converts to equivalents', (): void => { + const a = new UInt(registry, '123'); + + expect( + new UInt(registry, a).toNumber() + ).toEqual(123); + }); + + it('converts to JSON representation based on size', (): void => { + expect(new UInt(registry, '0x12345678', 32).toJSON()).toEqual(0x12345678); + expect(new UInt(registry, '0x1234567890', 64).toJSON()).toEqual(78187493520); + expect(new UInt(registry, '0x1234567890abcdef', 64).toJSON()).toEqual('0x1234567890abcdef'); + expect(new UInt(registry, 1, 256).toJSON()).toEqual('0x0000000000000000000000000000000000000000000000000000000000000001'); + }); + + describe('utilities', (): void => { + it('provides a toBigInt interface', (): void => { + expect( + new UInt(registry, 9876543210123456789n).toBigInt() + ).toEqual(9876543210123456789n); + }); + + it('provides a toBn interface', (): void => { + expect( + new UInt(registry, 987).toBn().toNumber() + ).toEqual(987); + }); + + it('provides a toNumber interface', (): void => { + expect( + new UInt(registry, 4567).toNumber() + ).toEqual(4567); + }); + + it('has a working toBigInt', (): void => { + expect( + new UInt(registry, 4567).toBigInt() + BigInt(1) + ).toEqual(BigInt(4568)); + }); + + it('has a sane inspect', (): void => { + expect( + new UInt(registry, '0x12', 16).inspect() + ).toEqual({ + outer: [new Uint8Array([0x12, 0x00])] + }); + }); + + describe('eq', (): void => { + const test = new UInt(registry, 12345); + + it('compares against other BN values', (): void => { + expect(test.eq(new BN(12345))).toBe(true); + }); + + it('compares against other number values', (): void => { + expect(test.eq(12345)).toBe(true); + }); + + it('compares against hex values', (): void => { + expect(test.eq('0x3039')).toBe(true); + }); + }); + + describe('isMax()', (): void => { + it('is false where not full', (): void => { + expect(new UInt(registry, '0x1234', 32).isMax()).toEqual(false); + expect(new UInt(registry, '0xffffff', 32).isMax()).toEqual(false); + expect(new UInt(registry, '0x12345678', 32).isMax()).toEqual(false); + expect(new UInt(registry, '0xfffffff0', 32).isMax()).toEqual(false); + }); + + it('is true when full', (): void => { + expect(new UInt(registry, '0xffffffff', 32).isMax()).toEqual(true); + }); + }); + }); + + describe('static with', (): void => { + it('allows default toRawType', (): void => { + expect( + new (UInt.with(64))(registry).toRawType() + ).toEqual('u64'); + }); + + it('allows toRawType override', (): void => { + expect( + new (UInt.with(64, 'SomethingElse'))(registry).toRawType() + ).toEqual('SomethingElse'); + }); + + it('has proper toHuman() for PerMill/PerBill/Percent/Balance', (): void => { + expect(registry.createType('Perbill', 12_340_000).toHuman()).toEqual('1.23%'); + expect(registry.createType('Percent', 12).toHuman()).toEqual('12.00%'); + expect(registry.createType('Permill', 16_900).toHuman()).toEqual('1.69%'); + expect(registry.createType('Balance', '123456789012345').toHuman()).toEqual('123.4567 Unit'); + }); + }); + + perf('UInt', 75_000, [[new Uint8Array([31, 32, 33, 34])]], (v: Uint8Array) => new UInt(registry, v)); +}); diff --git a/packages/types-codec/src/base/UInt.ts b/packages/types-codec/src/base/UInt.ts new file mode 100644 index 0000000..1ee5906 --- /dev/null +++ b/packages/types-codec/src/base/UInt.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyNumber, CodecClass, Registry, UIntBitLength } from '../types/index.js'; + +import { AbstractInt } from '../abstract/Int.js'; + +/** + * @name UInt + * @description + * A generic unsigned integer codec. For Bizinikiwi all numbers are Little Endian encoded, + * this handles the encoding and decoding of those numbers. Upon construction + * the bitLength is provided and any additional use keeps the number to this + * length. This extends `BN`, so all methods available on a normal `BN` object + * is available here. + * @noInheritDoc + */ +export class UInt extends AbstractInt { + public static with (bitLength: UIntBitLength, typeName?: string): CodecClass { + return class extends UInt { + constructor (registry: Registry, value?: AnyNumber | null) { + super(registry, value, bitLength); + } + + public override toRawType (): string { + return typeName || super.toRawType(); + } + }; + } +} diff --git a/packages/types-codec/src/base/Vec.spec.ts b/packages/types-codec/src/base/Vec.spec.ts new file mode 100644 index 0000000..37f44e8 --- /dev/null +++ b/packages/types-codec/src/base/Vec.spec.ts @@ -0,0 +1,224 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { PropIndex } from '@pezkuwi/types/interfaces/democracy'; +import type { Codec, CodecTo, ITuple } from '@pezkuwi/types-codec/types'; + +import { createTypeUnsafe, GenericAccountId as AccountId, Metadata, TypeRegistry } from '@pezkuwi/types'; +import { Text, u32, Vec } from '@pezkuwi/types-codec'; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { decodeAddress, randomAsU8a } from '@pezkuwi/util-crypto'; + +import { perf } from '../test/performance.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); +const VecU32 = Vec.with(u32); + +registry.setMetadata(metadata); + +describe('Vec', (): void => { + let vector: Vec; + + beforeEach((): void => { + vector = new Vec(registry, Text, ['1', '23', '345', '4567', new Text(registry, '56789')]); + }); + + describe('constructor', (): void => { + it('fails construction on non-Array, non-Hex inputs', (): void => { + // @ts-expect-error We are intentionally passing a non-valid input + expect(() => new Vec(registry, Text, '12345')).toThrow(/decoding, found string/); + // @ts-expect-error We are intentionally passing a non-valid input + expect(() => new Vec(registry, Text, {})).toThrow(/decoding, found object/); + }); + + it('allows construction via hex & null values', (): void => { + // @ts-expect-error We are intentionally passing a non-valid input + expect(new Vec(registry, Text, null)).toHaveLength(0); + }); + + it('decodes a complex type via construction (1)', (): void => { + const test = createTypeUnsafe>>(registry, 'Vec<(PropIndex, AccountId)>', [new Uint8Array([ + 4, 10, 0, 0, 0, 209, 114, 167, 76, 218, 76, 134, 89, 18, 195, 43, 160, 168, 10, 87, 174, 105, 171, 174, 65, 14, 92, 203, 89, 222, 232, 78, 47, 68, 50, 219, 79 + ])]); + + expect(test[0][0].toNumber()).toEqual(10); + expect(test[0][1].toString()).toEqual('5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaQua'); + }); + + it('decodes a complex type via construction (2)', (): void => { + const INPUT = '0x08cc0200000000ce0200000001'; + const test = createTypeUnsafe>(registry, 'Vec<(u32, [u32; 0], u16)>', [INPUT]); + + expect(test).toHaveLength(2); + expect(test.toHex()).toEqual(INPUT); + }); + + it('allows construction via JSON', (): void => { + expect( + new Vec(registry, Text, ['6', '7']).toJSON() + ).toEqual(['6', '7']); + }); + + it('allows construction via JSON (string type)', (): void => { + expect( + new Vec(registry, 'u32', ['6', '7']).toJSON() + ).toEqual([6, 7]); + }); + + it('decodes reusing instantiated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + (new Vec(registry, Text, [foo]))[0] + ).toBe(foo); + }); + }); + + describe('vector-like functions', (): void => { + it('wraps a sequence of values', (): void => { + expect(vector).toHaveLength(5); + }); + + it('has a sane representation for toString', (): void => { + expect(vector.toString()).toEqual('[1, 23, 345, 4567, 56789]'); + }); + + it('encodes with length prefix on toU8a()', (): void => { + expect(vector.toU8a()).toEqual(new Uint8Array([ + 5 << 2, + 1 << 2, 49, + 2 << 2, 50, 51, + 3 << 2, 51, 52, 53, + 4 << 2, 52, 53, 54, 55, + 5 << 2, 53, 54, 55, 56, 57 + ])); + }); + + it('encodes without length prefix on toU8a(true)', (): void => { + expect(vector.toU8a(true)).toEqual(new Uint8Array([ + 1 << 2, 49, + 2 << 2, 50, 51, + 3 << 2, 51, 52, 53, + 4 << 2, 52, 53, 54, 55, + 5 << 2, 53, 54, 55, 56, 57 + ])); + }); + + it('exposes the type', (): void => { + expect(vector.Type).toEqual('Text'); + }); + + it('allows retrieval of a specific item', (): void => { + expect( + vector[2].toString() + ).toEqual('345'); + }); + + it('exposes a working forEach', (): void => { + const result: Record = {}; + + vector.forEach((e, i): void => { + result[i] = e.toString(); + }); + + expect(result).toEqual({ + 0: '1', + 1: '23', + 2: '345', + 3: '4567', + 4: '56789' + }); + }); + + it('exposes a working concat', (): void => { + expect( + vector.concat(new Vec(registry, Text, ['987', '654'])).toString() + ).toEqual('1,23,345,4567,56789,987,654'); + }); + + it('exposes a working filter', (): void => { + expect( + vector.filter((_, i): boolean => i >= 3).toString() + ).toEqual('4567,56789'); + }); + + it('exposes a working map', (): void => { + expect( + vector.map((e): string => e.toString().substring(0, 1)) + ).toEqual(['1', '2', '3', '4', '5']); + }); + + it('exposes a working reduce', (): void => { + expect( + vector.reduce((r, e): string => `${r}${e.toString()}`, '') + ).toEqual('123345456756789'); + }); + + it('exposes a working indexOf', (): void => { + expect(vector.indexOf('1')).toEqual(0); + expect(vector.indexOf(new Text(registry, '23'))).toEqual(1); + expect(vector.indexOf('0')).toEqual(-1); + }); + }); + + describe('encode', (): void => { + const testEncode = (to: CodecTo, expected: any): void => + it(`can encode ${to}`, (): void => { + expect(vector[to]()).toEqual(expected); + }); + + testEncode('toHex', '0x1404310832330c3334351034353637143536373839'); + testEncode('toJSON', ['1', '23', '345', '4567', '56789']); + testEncode('toString', '[1, 23, 345, 4567, 56789]'); + testEncode('toU8a', Uint8Array.from([20, 4, 49, 8, 50, 51, 12, 51, 52, 53, 16, 52, 53, 54, 55, 20, 53, 54, 55, 56, 57])); + }); + + describe('utils', (): void => { + const vec = new Vec(registry, Text, ['123', '456']); + + it('compares against codec types', (): void => { + expect(vec.eq([new Text(registry, '123'), new Text(registry, '456')])).toBe(true); + }); + + it('compares against codec + primitive types', (): void => { + expect(vec.eq(['123', new Text(registry, '456')])).toBe(true); + }); + + it('finds the index of an value', (): void => { + const myId = '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY'; + const vec = new Vec(registry, AccountId, [ + '5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY' + ]); + + expect(vec.indexOf(myId)).toEqual(2); + }); + + it('allows a slice operator', (): void => { + const vec = registry.createType('Vec', [ + randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a(), randomAsU8a() + ]); + + expect(vec).toHaveLength(10); + expect(vec.slice(2, 7)).toHaveLength(5); + }); + + it('has a sane inspect', (): void => { + const addrs = [ + '5HGjWAeFDfFCWPsjFQdVV2Msvz2XtMktvgocEZcCj68kUMaw', '5FHneW46xGXgs5mUiveU4sbTyGBzmstUspZC92UhjJM694ty', '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY' + ]; + const vec = registry.createType('Vec', addrs); + + expect(vec.inspect()).toEqual({ + inner: addrs.map((a) => ({ + outer: [decodeAddress(a)] + })), + outer: [new Uint8Array([3 << 2])] + }); + }); + }); + + perf('Vec', 40_000, [[new Uint8Array([3 << 2, 11, 12, 13, 14, 21, 22, 23, 24, 31, 32, 33, 34])]], (v: Uint8Array) => new VecU32(registry, v)); +}); diff --git a/packages/types-codec/src/base/Vec.ts b/packages/types-codec/src/base/Vec.ts new file mode 100644 index 0000000..9fe0661 --- /dev/null +++ b/packages/types-codec/src/base/Vec.ts @@ -0,0 +1,133 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { Codec, CodecClass, DefinitionSetter, Registry } from '../types/index.js'; + +import { compactFromU8aLim, identity, isHex, isU8a, logger, stringify, u8aToU8a } from '@pezkuwi/util'; + +import { AbstractArray } from '../abstract/Array.js'; +import { decodeU8aVec, typeToConstructor } from '../utils/index.js'; + +const MAX_LENGTH = 512 * 1024; + +const l = logger('Vec'); + +function decodeVecLength (value: Uint8Array | HexString | unknown[]): [Uint8Array | unknown[] | null, number, number] { + if (Array.isArray(value)) { + return [value, value.length, 0]; + } else if (isU8a(value) || isHex(value)) { + const u8a = u8aToU8a(value); + const [startAt, length] = compactFromU8aLim(u8a); + + if (length > MAX_LENGTH) { + throw new Error(`Vec length ${length.toString()} exceeds ${MAX_LENGTH}`); + } + + return [u8a, length, startAt]; + } else if (!value) { + return [null, 0, 0]; + } + + throw new Error(`Expected array/hex input to Vec<*> decoding, found ${typeof value}: ${stringify(value)}`); +} + +export function decodeVec (registry: Registry, result: T[], value: Uint8Array | HexString | unknown[] | null, startAt: number, Type: CodecClass): [number, number] { + if (Array.isArray(value)) { + const count = result.length; + + for (let i = 0; i < count; i++) { + // 26/08/2022 this is actually a false positive - after recent eslint upgdates + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const entry = value[i]; + + try { + result[i] = entry instanceof Type + ? entry + : new Type(registry, entry); + } catch (error) { + l.error(`Unable to decode on index ${i}`, (error as Error).message); + + throw error; + } + } + + return [0, 0]; + } else if (!value) { + return [0, 0]; + } + + // we don't need more checks, we already limited it via the length decoding + return decodeU8aVec(registry, result, u8aToU8a(value), startAt, Type); +} + +/** + * @name Vec + * @description + * This manages codec arrays. Internally it keeps track of the length (as decoded) and allows + * construction with the passed `Type` in the constructor. It is an extension to Array, providing + * specific encoding/decoding on top of the base type. + */ +export class Vec extends AbstractArray { + #Type: CodecClass; + + constructor (registry: Registry, Type: CodecClass | string, value: Uint8Array | HexString | unknown[] = [], { definition, setDefinition = identity }: DefinitionSetter> = {}) { + const [decodeFrom, length, startAt] = decodeVecLength(value); + + super(registry, length); + + this.#Type = definition || setDefinition(typeToConstructor(registry, Type)); + + this.initialU8aLength = ( + isU8a(decodeFrom) + ? decodeU8aVec(registry, this, decodeFrom, startAt, this.#Type) + : decodeVec(registry, this, decodeFrom, startAt, this.#Type) + )[0]; + } + + public static with (Type: CodecClass | string): CodecClass> { + let definition: CodecClass | undefined; + + // eslint-disable-next-line no-return-assign + const setDefinition = (d: CodecClass) => + (definition = d as unknown as CodecClass) as unknown as CodecClass; + + return class extends Vec { + constructor (registry: Registry, value?: any[]) { + super(registry, Type, value, { definition, setDefinition }); + } + }; + } + + /** + * @description The type for the items + */ + public get Type (): string { + return this.#Type.name; + } + + /** + * @description Finds the index of the value in the array + */ + public override indexOf (other?: unknown): number { + // convert type first, this removes overhead from the eq + const check = other instanceof this.#Type + ? other + : new this.#Type(this.registry, other); + + for (let i = 0, count = this.length; i < count; i++) { + if (check.eq(this[i])) { + return i; + } + } + + return -1; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return `Vec<${this.registry.getClassName(this.#Type) || new this.#Type(this.registry).toRawType()}>`; + } +} diff --git a/packages/types-codec/src/base/VecAny.ts b/packages/types-codec/src/base/VecAny.ts new file mode 100644 index 0000000..bdba4c9 --- /dev/null +++ b/packages/types-codec/src/base/VecAny.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec } from '../types/index.js'; + +import { AbstractArray } from '../abstract/Array.js'; + +/** + * @name VecAny + * @description + * This manages codec arrays, assuming that the inputs are already of type Codec. Unlike + * a vector, this can be used to manage array-like structures with variable arguments of + * any types + */ +export class VecAny extends AbstractArray { + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + // FIXME This is basically an any type, cannot instantiate via createType + return 'Vec'; + } +} diff --git a/packages/types-codec/src/base/VecFixed.spec.ts b/packages/types-codec/src/base/VecFixed.spec.ts new file mode 100644 index 0000000..95885fb --- /dev/null +++ b/packages/types-codec/src/base/VecFixed.spec.ts @@ -0,0 +1,78 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Text, u16, VecFixed } from '@pezkuwi/types-codec'; +import { stringToU8a } from '@pezkuwi/util'; + +describe('VecFixed', (): void => { + const registry = new TypeRegistry(); + + describe('construction', (): void => { + it('constructs via empty', (): void => { + expect(new VecFixed(registry, Text, 2).toHex()).toEqual('0x0000'); + }); + + it('constructs via Uint8Array', (): void => { + expect(new VecFixed(registry, Text, 2, new Uint8Array([0x00, 0x04, 0x31])).toHex()).toEqual('0x000431'); + }); + + it('constructs via hex', (): void => { + expect(new VecFixed(registry, u16, 2, '0x12345678').toHex()).toEqual('0x12345678'); + }); + + it('decodes reusing instance inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + (new VecFixed(registry, Text, 1, [foo]))[0] + ).toBe(foo); + }); + }); + + describe('utils', (): void => { + let test: VecFixed; + + beforeEach((): void => { + test = new (VecFixed.with(Text, 5))(registry, ['1', '2', '3', undefined, '56']); + }); + + it('has a sane string types', (): void => { + expect(test.toRawType()).toEqual('[Text;5]'); + expect(test.Type).toEqual('Text'); + }); + + it('has a correct toHex', (): void => { + // each entry length 1 << 2, char as hex (0x31 === `1`), one empty + expect(test.toHex()).toEqual('0x04310432043300083536'); + }); + + it('has empty Uint8Array when length is 0', (): void => { + const test = new (VecFixed.with(Text, 0))(registry); + + expect(test.encodedLength).toEqual(0); + expect(test.toU8a()).toEqual(new Uint8Array([])); + }); + + it('has equivalent to 1 Uint8Array when length is 1', (): void => { + const test = new (VecFixed.with(Text, 1))(registry, ['hello']); + + expect(test.encodedLength).toEqual(1 + 5); + expect(test.toU8a()).toEqual(new Uint8Array([20, 104, 101, 108, 108, 111])); + }); + + it('has a sane inspect', (): void => { + expect(test.inspect()).toEqual({ + inner: [ + { outer: [new Uint8Array([1 << 2]), stringToU8a('1')] }, + { outer: [new Uint8Array([1 << 2]), stringToU8a('2')] }, + { outer: [new Uint8Array([1 << 2]), stringToU8a('3')] }, + { outer: [new Uint8Array([0])] }, + { outer: [new Uint8Array([2 << 2]), stringToU8a('56')] } + ] + }); + }); + }); +}); diff --git a/packages/types-codec/src/base/VecFixed.ts b/packages/types-codec/src/base/VecFixed.ts new file mode 100644 index 0000000..48d26e4 --- /dev/null +++ b/packages/types-codec/src/base/VecFixed.ts @@ -0,0 +1,92 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { Codec, CodecClass, DefinitionSetter, Inspect, Registry } from '../types/index.js'; + +import { identity, isU8a, u8aConcatStrict } from '@pezkuwi/util'; + +import { AbstractArray } from '../abstract/Array.js'; +import { decodeU8aVec, typeToConstructor } from '../utils/index.js'; +import { decodeVec } from './Vec.js'; + +/** + * @name VecFixed + * @description + * This manages codec arrays of a fixed length + */ +export class VecFixed extends AbstractArray { + #Type: CodecClass; + + constructor (registry: Registry, Type: CodecClass | string, length: number, value: Uint8Array | HexString | unknown[] = [] as unknown[], { definition, setDefinition = identity }: DefinitionSetter> = {}) { + super(registry, length); + + this.#Type = definition || setDefinition(typeToConstructor(registry, Type)); + + this.initialU8aLength = ( + isU8a(value) + ? decodeU8aVec(registry, this, value, 0, this.#Type) + : decodeVec(registry, this, value, 0, this.#Type) + )[1]; + } + + public static with (Type: CodecClass | string, length: number): CodecClass> { + let definition: CodecClass | undefined; + + // eslint-disable-next-line no-return-assign + const setDefinition = (d: CodecClass) => + (definition = d as unknown as CodecClass) as unknown as CodecClass; + + return class extends VecFixed { + constructor (registry: Registry, value?: any[]) { + super(registry, Type, length, value, { definition, setDefinition }); + } + }; + } + + /** + * @description The type for the items + */ + public get Type (): string { + return new this.#Type(this.registry).toRawType(); + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + let total = 0; + + for (let i = 0, count = this.length; i < count; i++) { + total += this[i].encodedLength; + } + + return total; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return { + inner: this.inspectInner() + }; + } + + public override toU8a (): Uint8Array { + // we override, we don't add the length prefix for ourselves, and at the same time we + // ignore isBare on entries, since they should be properly encoded at all times + const encoded = this.toU8aInner(); + + return encoded.length + ? u8aConcatStrict(encoded) + : new Uint8Array([]); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return `[${this.Type};${this.length}]`; + } +} diff --git a/packages/types-codec/src/base/index.ts b/packages/types-codec/src/base/index.ts new file mode 100644 index 0000000..6024bb1 --- /dev/null +++ b/packages/types-codec/src/base/index.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { Compact } from './Compact.js'; +export { DoNotConstruct } from './DoNotConstruct.js'; +export { Enum } from './Enum.js'; +export { Int } from './Int.js'; +export { Null } from './Null.js'; +export { Option } from './Option.js'; +export { Result } from './Result.js'; +export { Tuple } from './Tuple.js'; +export { UInt } from './UInt.js'; +export { Vec } from './Vec.js'; +export { VecAny } from './VecAny.js'; +export { VecFixed } from './VecFixed.js'; diff --git a/packages/types-codec/src/bundle.ts b/packages/types-codec/src/bundle.ts new file mode 100644 index 0000000..dd97943 --- /dev/null +++ b/packages/types-codec/src/bundle.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { packageInfo } from './packageInfo.js'; + +// all starred +export * from './abstract/index.js'; +export * from './base/index.js'; +export * from './extended/index.js'; +export * from './native/index.js'; +export * from './primitive/index.js'; +export * from './utils/index.js'; diff --git a/packages/types-codec/src/checkTypes.manual.ts b/packages/types-codec/src/checkTypes.manual.ts new file mode 100644 index 0000000..d587d43 --- /dev/null +++ b/packages/types-codec/src/checkTypes.manual.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/types-augment'; + +import { TypeRegistry } from '@pezkuwi/types'; + +import { U32 } from './index.js'; + +const registry = new TypeRegistry(); + +console.log(new U32(registry).divn(1)); diff --git a/packages/types-codec/src/extended/BTreeMap.spec.ts b/packages/types-codec/src/extended/BTreeMap.spec.ts new file mode 100644 index 0000000..8500093 --- /dev/null +++ b/packages/types-codec/src/extended/BTreeMap.spec.ts @@ -0,0 +1,245 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecClass, ITuple } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { BTreeMap, Enum, I32, Option, Struct, Text, Tuple, U32 } from '@pezkuwi/types-codec'; +import { stringToU8a } from '@pezkuwi/util'; + +const registry = new TypeRegistry(); + +class U32TextTuple extends (Tuple.with([U32, Text]) as unknown as CodecClass>) {} +// Reason: We purposefully want `text` to be the first key of the struct and take priority during sorting +// eslint-disable-next-line sort-keys +class MockStruct extends Struct.with({ text: Text, int: I32 }) {} +class MockEnum extends Enum.with({ + Key1: MockStruct, + Key2: MockStruct, + Key3: U32TextTuple +}) {} +class MockOptionEnum extends Option.with(MockEnum) {} + +const mockU32TextMap = new Map(); +const mockU32DuplicateTextMap = new Map(); +const mockU32TupleMap = new Map, U32>(); +const mockU32I32Map = new Map(); +const mockU32StructMap = new Map(); +const mockU32EnumMap = new Map(); +const mockU32OptionEnumMap = new Map(); + +mockU32TextMap.set(new Text(registry, 'bazzing'), new U32(registry, 69)); + +mockU32DuplicateTextMap.set(new Text(registry, 'bazzing'), new U32(registry, 42)); +mockU32DuplicateTextMap.set(new Text(registry, 'bazzing'), new U32(registry, 43)); + +mockU32TupleMap.set((new U32TextTuple(registry, [2, 'ba'])), new U32(registry, 42)); +mockU32TupleMap.set((new U32TextTuple(registry, [2, 'b'])), new U32(registry, 7)); +mockU32TupleMap.set((new U32TextTuple(registry, [1, 'baz'])), new U32(registry, 13)); + +mockU32I32Map.set(new I32(registry, 255), new U32(registry, 69)); +mockU32I32Map.set(new I32(registry, -255), new U32(registry, 42)); +mockU32I32Map.set(new I32(registry, 1000), new U32(registry, 7)); +mockU32I32Map.set(new I32(registry, -1000), new U32(registry, 25)); +mockU32I32Map.set(new I32(registry, 0), new U32(registry, 13)); + +mockU32StructMap.set(new MockStruct(registry, { int: 1, text: 'b' }), new U32(registry, 42)); +mockU32StructMap.set(new MockStruct(registry, { int: -1, text: 'b' }), new U32(registry, 7)); +mockU32StructMap.set(new MockStruct(registry, { int: -1, text: 'ba' }), new U32(registry, 25)); +mockU32StructMap.set(new MockStruct(registry, { int: -2, text: 'baz' }), new U32(registry, 13)); + +mockU32EnumMap.set(new MockEnum(registry, { Key3: new U32TextTuple(registry, [2, 'ba']) }), new U32(registry, 13)); +mockU32EnumMap.set(new MockEnum(registry, { Key3: new U32TextTuple(registry, [2, 'b']) }), new U32(registry, 42)); +mockU32EnumMap.set(new MockEnum(registry, { Key2: new MockStruct(registry, { int: -1, text: 'b' }) }), new U32(registry, 7)); +mockU32EnumMap.set(new MockEnum(registry, { Key1: new MockStruct(registry, { int: 1, text: 'b' }) }), new U32(registry, 25)); +mockU32EnumMap.set(new MockEnum(registry, { Key1: new MockStruct(registry, { int: -1, text: 'b' }) }), new U32(registry, 69)); + +mockU32OptionEnumMap.set(new Option(registry, MockEnum, null), new U32(registry, 13)); +mockU32OptionEnumMap.set(new Option(registry, MockEnum, { Key3: new U32TextTuple(registry, [2, 'ba']) }), new U32(registry, 13)); +mockU32OptionEnumMap.set(new Option(registry, MockEnum, { Key3: new U32TextTuple(registry, [2, 'b']) }), new U32(registry, 42)); +mockU32OptionEnumMap.set(new Option(registry, MockEnum, { Key2: new MockStruct(registry, { int: -1, text: 'b' }) }), new U32(registry, 7)); +mockU32OptionEnumMap.set(new Option(registry, MockEnum, { Key1: new MockStruct(registry, { int: 1, text: 'b' }) }), new U32(registry, 25)); +mockU32OptionEnumMap.set(new Option(registry, MockEnum, { Key1: new MockStruct(registry, { int: -1, text: 'b' }) }), new U32(registry, 69)); + +describe('BTreeMap', (): void => { + it('decodes null', (): void => { + expect( + new ( + BTreeMap.with(Text, U32) + )(registry, null).toString() + ).toEqual('{}'); + }); + + it('decodes reusing instantiated inputs', (): void => { + const key = new Text(registry, 'foo'); + const val = new Text(registry, 'bar'); + + expect( + (new (BTreeMap.with(Text, Text))(registry, new Map([[key, val]]))).eq(new Map([[key, val]])) + ).toBe(true); + }); + + it('decodes within more complicated types', (): void => { + const s = new Struct(registry, { + placeholder: U32, + value: 'BTreeMap' + }); + + s.set('value', new (BTreeMap.with(Text, U32))(registry, mockU32TextMap)); + expect(s.toString()).toBe('{"placeholder":0,"value":{"bazzing":69}}'); + }); + + it('throws on duplicate keys', (): void => { + expect( + () => new (BTreeMap.with(Text, U32))(registry, mockU32DuplicateTextMap) + ).toThrow(/Duplicate value in BTreeMap/); + }); + + it('throws when it cannot decode', (): void => { + expect( + (): BTreeMap => new ( + BTreeMap.with(Text, U32) + )(registry, 'ABC') + ).toThrow(/Map: cannot decode type/); + }); + + it('correctly encodes length', (): void => { + expect( + new ( + BTreeMap.with(Text, U32))(registry, mockU32TextMap).encodedLength + ).toEqual(13); + }); + + it('correctly sorts simple keys', (): void => { + expect( + Array.from(new (BTreeMap.with(I32, U32))(registry, mockU32I32Map).keys()).map((k) => k.toNumber()) + ).toEqual([-1000, -255, 0, 255, 1000]); + }); + + it('correctly sorts tuple keys', (): void => { + expect( + Array.from(new (BTreeMap.with(U32TextTuple, U32))(registry, mockU32TupleMap).keys()).map((k) => k.toJSON()) + ).toEqual([[1, 'baz'], [2, 'b'], [2, 'ba']]); + }); + + it('correctly sorts struct keys', (): void => { + expect( + Array.from(new (BTreeMap.with(MockStruct, U32))(registry, mockU32StructMap).keys()).map((k) => k.toJSON()) + ).toEqual([ + { int: -1, text: 'b' }, + { int: 1, text: 'b' }, + { int: -1, text: 'ba' }, + { int: -2, text: 'baz' } + ]); + }); + + it('correctly sorts Option(Enum) keys', (): void => { + expect( + Array.from(new (BTreeMap.with(MockOptionEnum, U32))(registry, mockU32OptionEnumMap).keys()).map((k) => k.value.toJSON()) + ).toEqual([ + null, + { key1: { int: -1, text: 'b' } }, + { key1: { int: 1, text: 'b' } }, + { key2: { int: -1, text: 'b' } }, + { key3: [2, 'b'] }, + { key3: [2, 'ba'] } + ]); + }); + + it('correctly sorts enum keys', (): void => { + expect( + Array.from(new (BTreeMap.with(MockEnum, U32))(registry, mockU32EnumMap).keys()).map((k) => k.toJSON()) + ).toEqual([ + { key1: { int: -1, text: 'b' } }, + { key1: { int: 1, text: 'b' } }, + { key2: { int: -1, text: 'b' } }, + { key3: [2, 'b'] }, + { key3: [2, 'ba'] } + ]); + }); + + it('correctly serializes/deserializes to/from json with numeric keys', (): void => { + expect( + new (BTreeMap.with(I32, U32))( + registry, + new (BTreeMap.with(I32, U32))(registry, mockU32I32Map).toJSON() + ).toJSON() + ).toEqual({ '-1000': 25, '-255': 42, 0: 13, 1000: 7, 255: 69 }); + }); + + it('correctly serializes/deserializes to/from json with text keys', (): void => { + expect( + new (BTreeMap.with(Text, U32))( + registry, + new (BTreeMap.with(Text, U32))(registry, mockU32TextMap).toJSON() + ).toJSON() + ).toEqual({ bazzing: 69 }); + }); + + it('correctly serializes/deserializes to/from json with tuple keys', (): void => { + expect( + new (BTreeMap.with(U32TextTuple, U32))( + registry, + new (BTreeMap.with(U32TextTuple, U32))(registry, mockU32TupleMap).toJSON() + ).toJSON() + ).toEqual({ '[1,"baz"]': 13, '[2,"b"]': 7, '[2,"ba"]': 42 }); + }); + + it('correctly serializes/deserializes to/from json with struct keys', (): void => { + expect( + new (BTreeMap.with(MockStruct, U32))( + registry, + new (BTreeMap.with(MockStruct, U32))(registry, mockU32StructMap).toJSON() + ).toJSON() + ).toEqual({ + '{"text":"b","int":-1}': 7, + '{"text":"b","int":1}': 42, + '{"text":"ba","int":-1}': 25, + '{"text":"baz","int":-2}': 13 + }); + }); + + it('correctly serializes/deserializes to/from json with enum keys', (): void => { + expect( + new (BTreeMap.with(MockEnum, U32))( + registry, + new (BTreeMap.with(MockEnum, U32))(registry, mockU32EnumMap).toJSON() + ).toJSON() + ).toEqual({ + '{"key1":{"text":"b","int":-1}}': 69, + '{"key1":{"text":"b","int":1}}': 25, + '{"key2":{"text":"b","int":-1}}': 7, + '{"key3":[2,"b"]}': 42, + '{"key3":[2,"ba"]}': 13 + }); + }); + + it('generates sane toRawTypes', (): void => { + expect(new (BTreeMap.with(Text, U32))(registry).toRawType()).toBe('BTreeMap'); + expect(new (BTreeMap.with(Text, Text))(registry).toRawType()).toBe('BTreeMap'); + expect(new (BTreeMap.with(Text, Struct.with({ a: U32, b: Text })))(registry).toRawType()) + .toBe('BTreeMap'); + }); + + it('has a sane inspect', (): void => { + expect( + new (BTreeMap.with(Text, Text))(registry, new Map([ + [new Text(registry, '1'), new Text(registry, 'foo')], + [new Text(registry, '2'), new Text(registry, 'bar')], + [new Text(registry, '3'), new Text(registry, 'baz')] + ])).inspect() + ).toEqual({ + inner: [ + { outer: [new Uint8Array([1 << 2]), stringToU8a('1')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('foo')] }, + { outer: [new Uint8Array([1 << 2]), stringToU8a('2')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('bar')] }, + { outer: [new Uint8Array([1 << 2]), stringToU8a('3')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('baz')] } + ], + outer: [new Uint8Array([3 << 2])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/BTreeMap.ts b/packages/types-codec/src/extended/BTreeMap.ts new file mode 100644 index 0000000..90b6377 --- /dev/null +++ b/packages/types-codec/src/extended/BTreeMap.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, Registry } from '../types/index.js'; + +import { CodecMap } from './Map.js'; + +export class BTreeMap extends CodecMap { + public static with (keyType: CodecClass | string, valType: CodecClass | string): CodecClass> { + return class extends BTreeMap { + constructor (registry: Registry, value?: Uint8Array | string | Map) { + super(registry, keyType, valType, value, 'BTreeMap'); + } + }; + } +} diff --git a/packages/types-codec/src/extended/BTreeSet.spec.ts b/packages/types-codec/src/extended/BTreeSet.spec.ts new file mode 100644 index 0000000..25d7717 --- /dev/null +++ b/packages/types-codec/src/extended/BTreeSet.spec.ts @@ -0,0 +1,260 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecClass, CodecTo } from '@pezkuwi/types-codec/types'; +import type { ITuple } from '../types/interfaces.js'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { BTreeSet, Enum, I32, Option, Struct, Text, Tuple, U32 } from '@pezkuwi/types-codec'; + +const registry = new TypeRegistry(); + +class U32TextTuple extends (Tuple.with([U32, Text]) as unknown as CodecClass>) {} +// Reason: We purposefully want `text` to be the first key of the struct and take priority during sorting +// eslint-disable-next-line sort-keys +class MockStruct extends Struct.with({ text: Text, int: I32 }) {} +class MockEnum extends Enum.with({ + Key1: MockStruct, + Key2: MockStruct, + Key3: U32TextTuple +}) {} +class MockOptionEnum extends Option.with(MockEnum) {} + +const mockU32Set = new Set(); + +mockU32Set.add(new U32(registry, 2)); +mockU32Set.add(new U32(registry, 24)); +mockU32Set.add(new U32(registry, 30)); +mockU32Set.add(new U32(registry, 80)); + +const mockU32SetString = '[2,24,30,80]'; +const mockU32SetObject = [2, 24, 30, 80]; +const mockU32SetHexString = '0x1002000000180000001e00000050000000'; +const mockU32SetUint8Array = Uint8Array.from([16, 2, 0, 0, 0, 24, 0, 0, 0, 30, 0, 0, 0, 80, 0, 0, 0]); + +const mockI32SetObj = [1000, 0, 255, -255, -1000]; +const mockTextSetObj = [ + new Text(registry, 'baz'), + new Text(registry, 'b'), + new Text(registry, 'bb'), + new Text(registry, 'ba'), + new Text(registry, 'c') +]; +const mockTupleSetObj = [ + new U32TextTuple(registry, [2, 'ba']), + new U32TextTuple(registry, [2, 'bb']), + new U32TextTuple(registry, [2, 'b']), + new U32TextTuple(registry, [1, 'baz']) +]; +const mockStructSetObj = [ + new MockStruct(registry, { int: 1, text: 'b' }), + new MockStruct(registry, { int: -1, text: 'b' }), + new MockStruct(registry, { int: -1, text: 'ba' }), + new MockStruct(registry, { int: -2, text: 'baz' }) +]; +const mockEnumSetObj = [ + new MockEnum(registry, { Key3: new U32TextTuple(registry, [2, 'ba']) }), + new MockEnum(registry, { Key3: new U32TextTuple(registry, [2, 'b']) }), + new MockEnum(registry, { Key2: new MockStruct(registry, { int: -1, text: 'b' }) }), + new MockEnum(registry, { Key1: new MockStruct(registry, { int: 1, text: 'b' }) }), + new MockEnum(registry, { Key1: new MockStruct(registry, { int: -1, text: 'b' }) }) +]; + +const mockOptionEnumSetObj = [ + new Option(registry, MockEnum, null), + new Option(registry, MockEnum, { Key3: new U32TextTuple(registry, [2, 'ba']) }), + new Option(registry, MockEnum, { Key3: new U32TextTuple(registry, [2, 'b']) }), + new Option(registry, MockEnum, { Key2: new MockStruct(registry, { int: -1, text: 'b' }) }), + new Option(registry, MockEnum, { Key1: new MockStruct(registry, { int: 1, text: 'b' }) }), + new Option(registry, MockEnum, { Key1: new MockStruct(registry, { int: -1, text: 'b' }) }) +]; +const mockDuplicateTextSetObj = [ + new Text(registry, 'baz'), + new Text(registry, 'bb'), + new Text(registry, 'bb'), // duplicate. + new Text(registry, 'ba'), + new Text(registry, 'c') +]; + +describe('BTreeSet', (): void => { + describe('decoding', (): void => { + const testDecode = (type: string, input: unknown, output: string): void => + it(`can decode from ${type}`, (): void => { + const s = new BTreeSet(registry, U32, input as string); + + expect(s.toString()).toBe(output); + }); + + testDecode('Set', mockU32Set, mockU32SetString); + testDecode('hex', mockU32SetHexString, mockU32SetString); + testDecode('Uint8Array', mockU32SetUint8Array, mockU32SetString); + + testDecode('Set', mockU32Set, mockU32SetString); + testDecode('hex', mockU32SetHexString, mockU32SetString); + testDecode('Uint8Array', mockU32SetUint8Array, mockU32SetString); + }); + + describe('encoding multiple values', (): void => { + const testEncode = (to: CodecTo, expected: any): void => + it(`can encode ${to}`, (): void => { + const s = new BTreeSet(registry, U32, mockU32Set); + + expect(s[to]()).toEqual(expected); + }); + + testEncode('toHex', mockU32SetHexString); + testEncode('toJSON', mockU32SetObject); + testEncode('toU8a', mockU32SetUint8Array); + testEncode('toString', mockU32SetString); + }); + + it('decodes null', (): void => { + expect( + new ( + BTreeSet.with(U32) + )(registry, null).toString() + ).toEqual('[]'); + }); + + it('decodes reusing instantiated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + (new BTreeSet(registry, Text, new Set([foo]))).eq(new Set([foo])) + ).toBe(true); + }); + + it('decodes within more complicated types', (): void => { + const s = new Struct(registry, { + placeholder: U32, + value: BTreeSet.with(U32) + }); + + s.set('value', new BTreeSet(registry, U32, mockU32Set)); + expect(s.toString()).toBe('{"placeholder":0,"value":[2,24,30,80]}'); + }); + + it('throws when it cannot decode', (): void => { + expect( + (): BTreeSet => new ( + BTreeSet.with(U32) + )(registry, 'ABC') + ).toThrow(/BTreeSet: cannot decode type/); + }); + + describe('enocodedLength & initialU8aLength', (): void => { + it('correctly encodes length', (): void => { + expect( + new ( + BTreeSet.with(U32))(registry, mockU32Set).encodedLength + ).toEqual(17); + }); + + it('correctly encodes/decodes empty', (): void => { + const none = new (BTreeSet.with(U32))(registry, []); + + // only the length byte + expect(none.toHex()).toEqual('0x00'); + expect(none.encodedLength).toEqual(1); + expect( + (new (BTreeSet.with(U32))(registry, none.toHex())).initialU8aLength + ).toEqual(none.encodedLength); + }); + + it('correctly encodes/decodes filled', (): void => { + const some = new (BTreeSet.with(U32))(registry, [1, 2]); + + // length byte + 2 values, 2 << 2 with u32 values + expect(some.toHex()).toEqual('0x080100000002000000'); + expect(some.encodedLength).toEqual(1 + (4 * 2)); + expect( + (new (BTreeSet.with(U32))(registry, some.toHex())).initialU8aLength + ).toEqual(some.encodedLength); + }); + }); + + describe('sorting', (): void => { + it('correctly sorts numeric values', (): void => { + expect( + Array.from(new (BTreeSet.with(I32))(registry, mockI32SetObj)).map((k) => k.toNumber()) + ).toEqual([-1000, -255, 0, 255, 1000]); + }); + + it('correctly sorts text values', (): void => { + expect( + Array.from(new (BTreeSet.with(Text))(registry, mockTextSetObj)).map((k) => k.toString()) + ).toEqual(['b', 'ba', 'baz', 'bb', 'c']); + }); + + it('Reject duplicate values', (): void => { + expect( + () => new (BTreeSet.with(Text))(registry, mockDuplicateTextSetObj) + ).toThrow(/Duplicate value in BTreeSet/); + }); + + it('correctly sorts complex tuple values', (): void => { + expect( + Array.from(new (BTreeSet.with(U32TextTuple))(registry, mockTupleSetObj)).map((k) => k.toJSON()) + ).toEqual([[1, 'baz'], [2, 'b'], [2, 'ba'], [2, 'bb']]); + }); + + it('correctly sorts complex struct values', (): void => { + expect( + Array.from(new (BTreeSet.with(MockStruct))(registry, mockStructSetObj)).map((k) => k.toJSON()) + ).toEqual([ + { int: -1, text: 'b' }, + { int: 1, text: 'b' }, + { int: -1, text: 'ba' }, + { int: -2, text: 'baz' } + ]); + }); + + it('correctly sorts complex Option(enum) values', (): void => { + expect( + Array.from(new (BTreeSet.with(MockOptionEnum))(registry, mockOptionEnumSetObj)).map((k) => k.value.toJSON()) + ).toEqual([ + null, + { key1: { int: -1, text: 'b' } }, + { key1: { int: 1, text: 'b' } }, + { key2: { int: -1, text: 'b' } }, + { key3: [2, 'b'] }, + { key3: [2, 'ba'] } + ]); + }); + + it('correctly sorts complex enum values', (): void => { + expect( + Array.from(new (BTreeSet.with(MockEnum))(registry, mockEnumSetObj)).map((k) => k.toJSON()) + ).toEqual([ + { key1: { int: -1, text: 'b' } }, + { key1: { int: 1, text: 'b' } }, + { key2: { int: -1, text: 'b' } }, + { key3: [2, 'b'] }, + { key3: [2, 'ba'] } + ]); + }); + }); + + it('generates sane toRawTypes', (): void => { + expect(new (BTreeSet.with(U32))(registry).toRawType()).toBe('BTreeSet'); + expect(new (BTreeSet.with(Text))(registry).toRawType()).toBe('BTreeSet'); + expect(new (BTreeSet.with(Struct.with({ a: U32, b: Text })))(registry).toRawType()) + .toBe('BTreeSet<{"a":"u32","b":"Text"}>'); + }); + + it('has a sane inspect', (): void => { + expect( + new (BTreeSet.with(U32))(registry, [1, 2, 3, 4]).inspect() + ).toEqual({ + inner: [ + { outer: [new Uint8Array([1, 0, 0, 0])] }, + { outer: [new Uint8Array([2, 0, 0, 0])] }, + { outer: [new Uint8Array([3, 0, 0, 0])] }, + { outer: [new Uint8Array([4, 0, 0, 0])] } + ], + outer: [new Uint8Array([4 << 2])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/BTreeSet.ts b/packages/types-codec/src/extended/BTreeSet.ts new file mode 100644 index 0000000..27eca8d --- /dev/null +++ b/packages/types-codec/src/extended/BTreeSet.ts @@ -0,0 +1,233 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, CodecClass, Inspect, ISet, IU8a, Registry } from '../types/index.js'; + +import { compactFromU8aLim, compactToU8a, isHex, isU8a, logger, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { compareSet, decodeU8aVec, sortSet, typeToConstructor } from '../utils/index.js'; + +const l = logger('BTreeSet'); + +/** @internal */ +function decodeSetFromU8a (registry: Registry, ValClass: CodecClass, u8a: Uint8Array): [CodecClass, Set, number] { + const output = new Set(); + const [offset, count] = compactFromU8aLim(u8a); + const result = new Array(count); + const [decodedLength] = decodeU8aVec(registry, result, u8a, offset, ValClass); + + for (let i = 0; i < count; i++) { + output.add(result[i] as unknown as V); + } + + return [ValClass, output, decodedLength]; +} + +/** @internal */ +function decodeSetFromSet (registry: Registry, ValClass: CodecClass, value: Set | string[]): [CodecClass, Set, number] { + const output = new Set(); + + value.forEach((val: any) => { + try { + output.add((val instanceof ValClass) ? val : new ValClass(registry, val)); + } catch (error) { + l.error('Failed to decode key or value:', (error as Error).message); + + throw error; + } + }); + + return [ValClass, output, 0]; +} + +/** + * Decode input to pass into constructor. + * + * @param ValClass - Type of the map value + * @param value - Value to decode, one of: + * - null + * - undefined + * - hex + * - Uint8Array + * - Set, where both key and value types are either + * constructors or decodeable values for their types. + * @param jsonSet + * @internal + */ +function decodeSet (registry: Registry, valType: CodecClass | string, value?: Uint8Array | string | string[] | Set): [CodecClass, Set, number] { + const ValClass = typeToConstructor(registry, valType); + + if (!value) { + return [ValClass, new Set(), 0]; + } else if (isU8a(value) || isHex(value)) { + return decodeSetFromU8a(registry, ValClass, u8aToU8a(value)); + } else if (Array.isArray(value) || value instanceof Set) { + return decodeSetFromSet(registry, ValClass, value); + } + + throw new Error('BTreeSet: cannot decode type'); +} + +export class BTreeSet extends Set implements ISet { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #ValClass: CodecClass; + + constructor (registry: Registry, valType: CodecClass | string, rawValue?: Uint8Array | string | string[] | Set) { + const [ValClass, values, decodedLength] = decodeSet(registry, valType, rawValue); + + super(sortSet(values)); + + this.registry = registry; + this.initialU8aLength = decodedLength; + this.#ValClass = ValClass; + } + + public static with (valType: CodecClass | string): CodecClass> { + return class extends BTreeSet { + constructor (registry: Registry, value?: Uint8Array | string | Set) { + super(registry, valType, value); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + let len = compactToU8a(this.size).length; + + for (const v of this.values()) { + len += v.encodedLength; + } + + return len; + } + + /** + * @description Returns a hash of the value + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.size === 0; + } + + /** + * @description The actual set values as a string[] + */ + public get strings (): string[] { + return [...super.values()].map((v) => v.toString()); + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return compareSet(this, other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + const inner: Inspect[] = []; + + for (const v of this.values()) { + inner.push(v.inspect()); + } + + return { + inner, + outer: [compactToU8a(this.size)] + }; + } + + /** + * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + const json: AnyJson = []; + + for (const v of this.values()) { + json.push(v.toHuman(isExtended, disableAscii)); + } + + return json; + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): AnyJson { + const json: AnyJson = []; + + for (const v of this.values()) { + json.push(v.toJSON()); + } + + return json; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return `BTreeSet<${this.registry.getClassName(this.#ValClass) || new this.#ValClass(this.registry).toRawType()}>`; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + const json: AnyJson = []; + + for (const v of this.values()) { + json.push(v.toPrimitive(disableAscii)); + } + + return json; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return stringify(this.toJSON()); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: boolean): Uint8Array { + const encoded: Uint8Array[] = []; + + if (!isBare) { + encoded.push(compactToU8a(this.size)); + } + + for (const v of this.values()) { + encoded.push(v.toU8a(isBare)); + } + + return u8aConcatStrict(encoded); + } +} diff --git a/packages/types-codec/src/extended/BitVec.spec.ts b/packages/types-codec/src/extended/BitVec.spec.ts new file mode 100644 index 0000000..3c68cd7 --- /dev/null +++ b/packages/types-codec/src/extended/BitVec.spec.ts @@ -0,0 +1,97 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { hexToU8a } from '@pezkuwi/util'; + +import { BitVec } from './index.js'; + +// form Inclusion BitVec +const TESTS = ['0x00', '0x0817', '0x0837', '0x087b', '0x0c33']; +const registry = new TypeRegistry(); + +describe('BitVec', (): void => { + describe('decoding known', (): void => { + TESTS.forEach((test): void => { + describe(`${test}`, (): void => { + const input = hexToU8a(test); + const bitvec = new BitVec(registry, input); + + it('has the right encodedLength', (): void => { + expect( + bitvec.encodedLength + ).toEqual((test.length - 2) / 2); + }); + + it('re-encodes to the same input value', (): void => { + expect( + bitvec.toU8a() + ).toEqual(input); + }); + }); + }); + }); + + describe('toHuman() ordering', (): void => { + it('defaults to Lsb', (): void => { + expect( + new BitVec(registry, '0x0100010500').toHuman() + ).toEqual('0b10000000_00000000_10000000_10100000_00000000'); + }); + + it('can output to Msb', (): void => { + expect( + new BitVec(registry, '0x0100010500', true).toHuman() + ).toEqual('0b00000001_00000000_00000001_00000101_00000000'); + }); + }); + + describe('toBoolArray() ordering', (): void => { + it('defaults to Lsb', (): void => { + expect( + new BitVec(registry, '0x0100010500').toBoolArray() + ).toEqual([ + true, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, + true, false, false, false, false, false, false, false, + true, false, true, false, false, false, false, false, + false, false, false, false, false, false, false, false + ]); + }); + + it('can output to Msb', (): void => { + expect( + new BitVec(registry, '0x0100010500', true).toBoolArray() + ).toEqual([ + false, false, false, false, false, false, false, true, + false, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, true, + false, false, false, false, false, true, false, true, + false, false, false, false, false, false, false, false + ]); + }); + + it('outputs all LSB bits', (): void => { + expect( + new BitVec(registry, '0x01000105ff').toBoolArray() + ).toEqual([ + true, false, false, false, false, false, false, false, + false, false, false, false, false, false, false, false, + true, false, false, false, false, false, false, false, + true, false, true, false, false, false, false, false, + true, true, true, true, true, true, true, true + ]); + }); + }); + + it('has a sane inspect', (): void => { + expect( + new BitVec(registry, '0x0837').inspect() + ).toEqual({ + // For input '0x0837' (yields 16 bits): compactToU8a(16) is 16<<2 = 64. + outer: [new Uint8Array([64]), new Uint8Array([0x08, 0x37])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/BitVec.ts b/packages/types-codec/src/extended/BitVec.ts new file mode 100644 index 0000000..8b8f547 --- /dev/null +++ b/packages/types-codec/src/extended/BitVec.ts @@ -0,0 +1,137 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyU8a, Inspect, Registry } from '../types/index.js'; + +import { compactFromU8aLim, compactToU8a, isString, u8aConcatStrict, u8aToU8a } from '@pezkuwi/util'; + +import { Raw } from '../native/Raw.js'; + +/** @internal */ +function decodeBitVecU8a (value?: Uint8Array): [number, Uint8Array] { + if (!value?.length) { + return [0, new Uint8Array()]; + } + + // handle all other Uint8Array inputs, these do have a length prefix which is the number of bits encoded + const [offset, length] = compactFromU8aLim(value); + const total = offset + Math.ceil(length / 8); + + if (total > value.length) { + throw new Error(`BitVec: required length less than remainder, expected at least ${total}, found ${value.length}`); + } + + return [length, value.subarray(offset, total)]; +} + +/** @internal */ +function decodeBitVec (value?: AnyU8a): [number, Uint8Array] { + if (Array.isArray(value) || isString(value)) { + const u8a = u8aToU8a(value); + + return [u8a.length * 8, u8a]; + } + + return decodeBitVecU8a(value); +} + +/** + * @name BitVec + * @description + * A BitVec that represents an array of bits. The bits are however stored encoded. The difference between this + * and a normal Bytes would be that the length prefix indicates the number of bits encoded, not the bytes + */ +export class BitVec extends Raw { + readonly #decodedLength: number; + readonly #isMsb?: boolean; + + // In lieu of having the Msb/Lsb identifiers passed through, we default to assuming + // we are dealing with Lsb, which is the default (as of writing) BitVec format used + // in the Pezkuwi code (this only affects the toHuman displays) + constructor (registry: Registry, value?: AnyU8a, isMsb = false) { + const [decodedLength, u8a] = decodeBitVec(value); + + super(registry, u8a); + + this.#decodedLength = decodedLength; + this.#isMsb = isMsb; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.length + compactToU8a(this.#decodedLength).length; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return { + outer: [compactToU8a(this.#decodedLength), super.toU8a()] + }; + } + + /** + * @description Creates a boolean array of the bit values + */ + public toBoolArray (): boolean[] { + const map = [...this.toU8a(true)].map((v) => [ + !!(v & 0b1000_0000), + !!(v & 0b0100_0000), + !!(v & 0b0010_0000), + !!(v & 0b0001_0000), + !!(v & 0b0000_1000), + !!(v & 0b0000_0100), + !!(v & 0b0000_0010), + !!(v & 0b0000_0001) + ]); + const count = map.length; + const result = new Array(8 * count); + + for (let i = 0; i < count; i++) { + const off = i * 8; + const v = map[i]; + + for (let j = 0; j < 8; j++) { + result[off + j] = this.#isMsb + ? v[j] + : v[7 - j]; + } + } + + return result; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (): string { + return `0b${ + [...this.toU8a(true)] + .map((d) => `00000000${d.toString(2)}`.slice(-8)) + .map((s) => this.#isMsb ? s : s.split('').reverse().join('')) + .join('_') + }`; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'BitVec'; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + const bitVec = super.toU8a(isBare); + + return isBare + ? bitVec + : u8aConcatStrict([compactToU8a(this.#decodedLength), bitVec]); + } +} diff --git a/packages/types-codec/src/extended/Bytes.spec.ts b/packages/types-codec/src/extended/Bytes.spec.ts new file mode 100644 index 0000000..376e838 --- /dev/null +++ b/packages/types-codec/src/extended/Bytes.spec.ts @@ -0,0 +1,75 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Bytes } from '@pezkuwi/types-codec'; + +describe('Bytes', (): void => { + const registry = new TypeRegistry(); + const NUM = [0x3a, 0x63, 0x6f, 0x64, 0x65]; + const U8A = new Uint8Array([0x14, ...NUM]); + const HEX = '0x3a636f6465'; + + describe('construction', (): void => { + it('decodes when input is string', (): void => { + expect( + new Bytes(registry, ':code').toU8a() + ).toEqual(U8A); + }); + + it('decodes when hex is not length prefixed', (): void => { + expect( + new Bytes(registry, HEX).toU8a() + ).toEqual(U8A); + }); + + it('decodes from UInt8Array', (): void => { + expect( + new Bytes(registry, U8A).toU8a() + ).toEqual(U8A); + }); + + it('decodes from number[]', (): void => { + expect( + new Bytes(registry, NUM).toU8a() + ).toEqual(U8A); + }); + + it('creates via storagedata (no prefix)', (): void => { + expect( + new Bytes( + registry, + registry.createType('StorageData', HEX) + ).toU8a() + ).toEqual(U8A); + }); + + it('encodes from itself', (): void => { + expect( + new Bytes(registry, new Bytes(registry, HEX)).toU8a() + ).toEqual(U8A); + }); + + it('strips length with toU8a(true)', (): void => { + expect( + new Bytes(registry, HEX).toU8a(true) + ).toEqual(U8A.subarray(1)); + }); + + it('strips length with toHex', (): void => { + expect( + new Bytes(registry, HEX).toHex() + ).toEqual(HEX); + }); + }); + + it('has a sane inspect', (): void => { + expect( + new Bytes(registry, '0x12345678').inspect() + ).toEqual({ + outer: [new Uint8Array([4 << 2]), new Uint8Array([0x12, 0x34, 0x56, 0x78])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/Bytes.ts b/packages/types-codec/src/extended/Bytes.ts new file mode 100644 index 0000000..04f7a2b --- /dev/null +++ b/packages/types-codec/src/extended/Bytes.ts @@ -0,0 +1,88 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyU8a, Inspect, Registry } from '../types/index.js'; + +import { compactAddLength, compactFromU8aLim, compactToU8a, isString, isU8a, u8aToU8a } from '@pezkuwi/util'; + +import { Raw } from '../native/Raw.js'; + +// Bytes are used for things like on-chain code, so it has a healthy limit +const MAX_LENGTH = 10 * 1024 * 1024; + +/** @internal */ +function decodeBytesU8a (value: Uint8Array): [Uint8Array, number] { + if (!value.length) { + return [new Uint8Array(), 0]; + } + + // handle all other Uint8Array inputs, these do have a length prefix + const [offset, length] = compactFromU8aLim(value); + const total = offset + length; + + if (length > MAX_LENGTH) { + throw new Error(`Bytes length ${length.toString()} exceeds ${MAX_LENGTH}`); + } else if (total > value.length) { + throw new Error(`Bytes: required length less than remainder, expected at least ${total}, found ${value.length}`); + } + + return [value.subarray(offset, total), total]; +} + +/** + * @name Bytes + * @description + * A Bytes wrapper for Vec. The significant difference between this and a normal Uint8Array + * is that this version allows for length-encoding. (i.e. it is a variable-item codec, the same + * as what is found in [[Text]] and [[Vec]]) + */ +export class Bytes extends Raw { + constructor (registry: Registry, value?: AnyU8a) { + const [u8a, decodedLength] = isU8a(value) && !(value instanceof Raw) + ? decodeBytesU8a(value) + : Array.isArray(value) || isString(value) + ? [u8aToU8a(value), 0] + : [value, 0]; + + super(registry, u8a, decodedLength); + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.length + compactToU8a(this.length).length; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (isBare?: boolean): Inspect { + const clength = compactToU8a(this.length); + + return { + outer: isBare + ? [super.toU8a()] + : this.length + ? [clength, super.toU8a()] + : [clength] + }; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Bytes'; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + return isBare + ? super.toU8a(isBare) + : compactAddLength(this); + } +} diff --git a/packages/types-codec/src/extended/HashMap.spec.ts b/packages/types-codec/src/extended/HashMap.spec.ts new file mode 100644 index 0000000..4eafb96 --- /dev/null +++ b/packages/types-codec/src/extended/HashMap.spec.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { HashMap, Struct, Text, U32 } from '@pezkuwi/types-codec'; +import { stringToU8a } from '@pezkuwi/util'; + +const registry = new TypeRegistry(); + +describe('HashMap', (): void => { + it('generates sane toRawTypes', (): void => { + expect(new (HashMap.with(Text, U32))(registry).toRawType()).toBe('HashMap'); + expect(new (HashMap.with(Text, Text))(registry).toRawType()).toBe('HashMap'); + expect(new (HashMap.with(Text, Struct.with({ a: U32, b: Text })))(registry).toRawType()) + .toBe('HashMap'); + }); + + it('has a sane inspect', (): void => { + expect( + new (HashMap.with(Text, Text))(registry, new Map([ + [new Text(registry, '1'), new Text(registry, 'foo')], + [new Text(registry, '2'), new Text(registry, 'bar')] + ])).inspect() + ).toEqual({ + inner: [ + { outer: [new Uint8Array([1 << 2]), stringToU8a('1')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('foo')] }, + { outer: [new Uint8Array([1 << 2]), stringToU8a('2')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('bar')] } + ], + outer: [new Uint8Array([2 << 2])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/HashMap.ts b/packages/types-codec/src/extended/HashMap.ts new file mode 100644 index 0000000..87631c2 --- /dev/null +++ b/packages/types-codec/src/extended/HashMap.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, Registry } from '../types/index.js'; + +import { CodecMap } from './Map.js'; + +export class HashMap extends CodecMap { + public static with (keyType: CodecClass | string, valType: CodecClass | string): CodecClass> { + return class extends HashMap { + constructor (registry: Registry, value?: Uint8Array | string | Map) { + super(registry, keyType, valType, value); + } + }; + } +} diff --git a/packages/types-codec/src/extended/Linkage.spec.ts b/packages/types-codec/src/extended/Linkage.spec.ts new file mode 100644 index 0000000..d8a5e69 --- /dev/null +++ b/packages/types-codec/src/extended/Linkage.spec.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Linkage } from '@pezkuwi/types-codec'; + +const registry = new TypeRegistry(); + +describe('Linkage', (): void => { + it('decodes with ValidatorPrefs', (): void => { + const LINKA = { next: '5GznmRvdi5htUJKnMSWJgJUzSJJXSvWuHRSEdyUbHJZDNcwU', previous: null }; + const PREFS = { commission: '10.00%' }; + + // prefs sanity check + expect( + registry.createType( + 'ValidatorPrefsWithCommission', + '0x0284d717' + ).toHuman() + ).toEqual(PREFS); + + // linkage sanity checks + expect( + new Linkage(registry, 'AccountId', '0x0001da30b68f54f686f586ddb29de12b682dd8bd1404566fb8a8db5dec20aa5b6b36').toHuman() + ).toEqual(LINKA); + expect( + registry.createType( + 'Linkage', + '0x0001da30b68f54f686f586ddb29de12b682dd8bd1404566fb8a8db5dec20aa5b6b36' + ).toHuman() + ).toEqual(LINKA); + + // actual check + expect( + registry.createType( + '(ValidatorPrefsWithCommission, Linkage)', + '0x0284d7170001da30b68f54f686f586ddb29de12b682dd8bd1404566fb8a8db5dec20aa5b6b36' + ).toHuman() + ).toEqual([PREFS, LINKA]); + }); +}); diff --git a/packages/types-codec/src/extended/Linkage.ts b/packages/types-codec/src/extended/Linkage.ts new file mode 100644 index 0000000..9bffcc4 --- /dev/null +++ b/packages/types-codec/src/extended/Linkage.ts @@ -0,0 +1,81 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { Codec, CodecClass, Registry } from '../types/index.js'; + +import { Option } from '../base/Option.js'; +import { Tuple } from '../base/Tuple.js'; +import { Vec } from '../base/Vec.js'; +import { Struct } from '../native/Struct.js'; + +type TypeWithValues = [CodecClass, any[]]; + +const EMPTY = new Uint8Array(); + +/** + * @name Linkage + * @description The wrapper for the result from a LinkedMap + */ +export class Linkage extends Struct { + constructor (registry: Registry, Type: CodecClass | string, value?: unknown) { + super(registry, { + previous: Option.with(Type), + // eslint-disable-next-line sort-keys + next: Option.with(Type) + }, value as HexString); + } + + public static withKey (Type: CodecClass | string): CodecClass> { + return class extends Linkage { + constructor (registry: Registry, value?: unknown) { + super(registry, Type, value); + } + }; + } + + /** + * @description Returns the next item the Linkage is pointing to + */ + public get previous (): Option { + return this.get('previous') as Option; + } + + /** + * @description Returns the previous item the Linkage is pointing to + */ + public get next (): Option { + return this.get('next') as Option; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return `Linkage<${this.next.toRawType(true)}>`; + } + + /** + * @description Custom toU8a which with bare mode does not return the linkage if empty + */ + public override toU8a (isBare?: boolean): Uint8Array { + // As part of a storage query (where these appear), in the case of empty, the values + // are NOT populated by the node - follow the same logic, leaving it empty + return this.isEmpty + ? EMPTY + : super.toU8a(isBare); + } +} + +/** + * @name LinkageResult + * @description A Linkage keys/Values tuple + */ +export class LinkageResult extends Tuple { + constructor (registry: Registry, [TypeKey, keys]: TypeWithValues, [TypeValue, values]: TypeWithValues) { + super(registry, { + Keys: Vec.with(TypeKey), + Values: Vec.with(TypeValue) + }, [keys, values]); + } +} diff --git a/packages/types-codec/src/extended/Map.spec.ts b/packages/types-codec/src/extended/Map.spec.ts new file mode 100644 index 0000000..72f534a --- /dev/null +++ b/packages/types-codec/src/extended/Map.spec.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecTo } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { CodecMap, Text, U32 } from '@pezkuwi/types-codec'; +import { stringToU8a } from '@pezkuwi/util'; + +const registry = new TypeRegistry(); +const mockU32TextMap = new Map(); + +mockU32TextMap.set(new Text(registry, 'bazzing'), new U32(registry, 69)); + +const mockU32TextMapString = '{"bazzing":69}'; +const mockU32TextMapObject = { bazzing: 69 }; +const mockU32TextMapHexString = '0x041c62617a7a696e6745000000'; +const mockU32TextMapUint8Array = Uint8Array.from([4, 28, 98, 97, 122, 122, 105, 110, 103, 69, 0, 0, 0]); + +const mockU32U32Map = new Map(); + +mockU32U32Map.set(new U32(registry, 1), new U32(registry, 2)); +mockU32U32Map.set(new U32(registry, 23), new U32(registry, 24)); +mockU32U32Map.set(new U32(registry, 28), new U32(registry, 30)); +mockU32U32Map.set(new U32(registry, 45), new U32(registry, 80)); + +const mockU32U32MapString = '{"1":2,"23":24,"28":30,"45":80}'; +const mockU32U32MapObject = { 1: 2, 23: 24, 28: 30, 45: 80 }; +const mockU32U32MapHexString = '0x10043102000000083233180000000832381e00000008343550000000'; +const mockU32U32MapUint8Array = Uint8Array.from([16, 4, 49, 2, 0, 0, 0, 8, 50, 51, 24, 0, 0, 0, 8, 50, 56, 30, 0, 0, 0, 8, 52, 53, 80, 0, 0, 0]); + +describe('CodecMap', (): void => { + describe('decoding', (): void => { + const testDecode = (type: string, input: unknown, output: string): void => + it(`can decode from ${type}`, (): void => { + const s = new CodecMap(registry, Text, U32, input as string); + + expect(s.toString()).toBe(output); + }); + + testDecode('map', mockU32TextMap, mockU32TextMapString); + testDecode('hex', mockU32TextMapHexString, mockU32TextMapString); + testDecode('Uint8Array', mockU32TextMapUint8Array, mockU32TextMapString); + + testDecode('map', mockU32U32Map, mockU32U32MapString); + testDecode('hex', mockU32U32MapHexString, mockU32U32MapString); + testDecode('Uint8Array', mockU32U32MapUint8Array, mockU32U32MapString); + }); + + describe('encoding', (): void => { + const testEncode = (to: CodecTo, expected: any): void => + it(`can encode ${to}`, (): void => { + const s = new CodecMap(registry, Text, U32, mockU32TextMap, 'BTreeMap'); + + expect(s[to]()).toEqual(expected); + }); + + testEncode('toHex', mockU32TextMapHexString); + testEncode('toJSON', mockU32TextMapObject); + testEncode('toU8a', mockU32TextMapUint8Array); + testEncode('toString', mockU32TextMapString); + }); + + describe('encoding multiple values', (): void => { + const testEncode = (to: CodecTo, expected: any): void => + it(`can encode ${to}`, (): void => { + const s = new CodecMap(registry, Text, U32, mockU32U32Map, 'BTreeMap'); + + expect(s[to]()).toEqual(expected); + }); + + testEncode('toHex', mockU32U32MapHexString); + testEncode('toJSON', mockU32U32MapObject); + testEncode('toU8a', mockU32U32MapUint8Array); + testEncode('toString', mockU32U32MapString); + }); + + describe('enocodedLength & initialU8aLength', (): void => { + it('correctly encodes/decodes empty', (): void => { + const none = new CodecMap(registry, Text, Text, new Map([])); + + // only the length byte + expect(none.toHex()).toEqual('0x00'); + expect(none.encodedLength).toEqual(1); + expect( + new CodecMap(registry, Text, Text, none.toHex()).initialU8aLength + ).toEqual(none.encodedLength); + }); + + it('correctly encodes/decodes filled', (): void => { + const some = new CodecMap(registry, Text, Text, new Map([ + [new Text(registry, '1'), new Text(registry, 'foo')], + [new Text(registry, '2'), new Text(registry, 'bar')] + ])); + + // length byte + 2 values, 2 << 2 with Text values + expect(some.toHex()).toEqual('0x0804310c666f6f04320c626172'); + expect(some.encodedLength).toEqual(1 + ((1 + 1) * 2) + ((1 + 3) * 2)); + expect( + new CodecMap(registry, Text, Text, some.toHex()).initialU8aLength + ).toEqual(some.encodedLength); + }); + }); + + it('has a sane inspect', (): void => { + expect( + new CodecMap(registry, Text, Text, new Map([ + [new Text(registry, '1'), new Text(registry, 'foo')], + [new Text(registry, '2'), new Text(registry, 'bar')] + ])).inspect() + ).toEqual({ + inner: [ + { outer: [new Uint8Array([1 << 2]), stringToU8a('1')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('foo')] }, + { outer: [new Uint8Array([1 << 2]), stringToU8a('2')] }, + { outer: [new Uint8Array([3 << 2]), stringToU8a('bar')] } + ], + outer: [new Uint8Array([2 << 2])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/Map.ts b/packages/types-codec/src/extended/Map.ts new file mode 100644 index 0000000..16a2ee5 --- /dev/null +++ b/packages/types-codec/src/extended/Map.ts @@ -0,0 +1,255 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, CodecClass, IMap, Inspect, IU8a, Registry } from '../types/index.js'; + +import { compactFromU8aLim, compactToU8a, isHex, isObject, isU8a, logger, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { AbstractArray } from '../abstract/Array.js'; +import { Enum } from '../base/Enum.js'; +import { Raw } from '../native/Raw.js'; +import { Struct } from '../native/Struct.js'; +import { compareMap, decodeU8a, sortMap, typeToConstructor } from '../utils/index.js'; + +const l = logger('Map'); + +/** @internal */ +function decodeMapFromU8a (registry: Registry, KeyClass: CodecClass, ValClass: CodecClass, u8a: Uint8Array): [CodecClass, CodecClass, Map, number] { + const output = new Map(); + const [offset, count] = compactFromU8aLim(u8a); + const types = []; + + for (let i = 0; i < count; i++) { + types.push(KeyClass, ValClass); + } + + const [values, decodedLength] = decodeU8a(registry, new Array(types.length), u8a.subarray(offset), [types, []]); + + for (let i = 0, count = values.length; i < count; i += 2) { + output.set(values[i] as K, values[i + 1] as V); + } + + return [KeyClass, ValClass, output, offset + decodedLength]; +} + +/** @internal */ +function decodeMapFromMap (registry: Registry, KeyClass: CodecClass, ValClass: CodecClass, value: Map): [CodecClass, CodecClass, Map, number] { + const output = new Map(); + + for (const [key, val] of value.entries()) { + const isComplex = KeyClass.prototype instanceof AbstractArray || + KeyClass.prototype instanceof Struct || + KeyClass.prototype instanceof Enum; + + try { + output.set( + key instanceof KeyClass + ? key + : new KeyClass(registry, isComplex && typeof key === 'string' ? JSON.parse(key) : key), + val instanceof ValClass + ? val + : new ValClass(registry, val) + ); + } catch (error) { + l.error('Failed to decode key or value:', (error as Error).message); + + throw error; + } + } + + return [KeyClass, ValClass, output, 0]; +} + +/** + * Decode input to pass into constructor. + * + * @param KeyClass - Type of the map key + * @param ValClass - Type of the map value + * @param value - Value to decode, one of: + * - null + * - undefined + * - hex + * - Uint8Array + * - Map, where both key and value types are either + * constructors or decodeable values for their types. + * @param jsonMap + * @internal + */ +function decodeMap (registry: Registry, keyType: CodecClass | string, valType: CodecClass | string, value?: Uint8Array | string | Map): [CodecClass, CodecClass, Map, number] { + const KeyClass = typeToConstructor(registry, keyType); + const ValClass = typeToConstructor(registry, valType); + + if (!value) { + return [KeyClass, ValClass, new Map(), 0]; + } else if (isU8a(value) || isHex(value)) { + return decodeMapFromU8a(registry, KeyClass, ValClass, u8aToU8a(value)); + } else if (value instanceof Map) { + return decodeMapFromMap(registry, KeyClass, ValClass, value); + } else if (isObject(value)) { + return decodeMapFromMap(registry, KeyClass, ValClass, new Map(Object.entries(value))); + } + + throw new Error('Map: cannot decode type'); +} + +export class CodecMap extends Map implements IMap { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #KeyClass: CodecClass; + readonly #ValClass: CodecClass; + readonly #type: string; + + constructor (registry: Registry, keyType: CodecClass | string, valType: CodecClass | string, rawValue: Uint8Array | string | Map | undefined, type: 'BTreeMap' | 'HashMap' = 'HashMap') { + const [KeyClass, ValClass, decoded, decodedLength] = decodeMap(registry, keyType, valType, rawValue); + + super(type === 'BTreeMap' ? sortMap(decoded) : decoded); + + this.registry = registry; + this.initialU8aLength = decodedLength; + this.#KeyClass = KeyClass; + this.#ValClass = ValClass; + this.#type = type; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + let len = compactToU8a(this.size).length; + + for (const [k, v] of this.entries()) { + len += k.encodedLength + v.encodedLength; + } + + return len; + } + + /** + * @description Returns a hash of the value + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.size === 0; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return compareMap(this, other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + const inner: Inspect[] = []; + + for (const [k, v] of this.entries()) { + inner.push(k.inspect()); + inner.push(v.inspect()); + } + + return { + inner, + outer: [compactToU8a(this.size)] + }; + } + + /** + * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): Record { + const json: Record = {}; + + for (const [k, v] of this.entries()) { + json[ + k instanceof Raw && !disableAscii && k.isAscii + ? k.toUtf8() + : k.toString() + ] = v.toHuman(isExtended, disableAscii); + } + + return json; + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): Record { + const json: Record = {}; + + for (const [k, v] of this.entries()) { + json[k.toString()] = v.toJSON(); + } + + return json; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + const json: Record = {}; + + for (const [k, v] of this.entries()) { + json[ + k instanceof Raw && !disableAscii && k.isAscii + ? k.toUtf8() + : k.toString() + ] = v.toPrimitive(disableAscii); + } + + return json; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return `${this.#type}<${this.registry.getClassName(this.#KeyClass) || new this.#KeyClass(this.registry).toRawType()},${this.registry.getClassName(this.#ValClass) || new this.#ValClass(this.registry).toRawType()}>`; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return stringify(this.toJSON()); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: boolean): Uint8Array { + const encoded: Uint8Array[] = []; + + if (!isBare) { + encoded.push(compactToU8a(this.size)); + } + + for (const [k, v] of this.entries()) { + encoded.push(k.toU8a(isBare), v.toU8a(isBare)); + } + + return u8aConcatStrict(encoded); + } +} diff --git a/packages/types-codec/src/extended/OptionBool.spec.ts b/packages/types-codec/src/extended/OptionBool.spec.ts new file mode 100644 index 0000000..5ea5085 --- /dev/null +++ b/packages/types-codec/src/extended/OptionBool.spec.ts @@ -0,0 +1,49 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { OptionBool } from '@pezkuwi/types-codec'; + +describe('OptionBool', (): void => { + const registry = new TypeRegistry(); + + describe('decodes', (): void => { + it('decodes none', (): void => { + expect(new OptionBool(registry).toJSON()).toEqual(null); + }); + + it('decodes true', (): void => { + expect(new OptionBool(registry, true).toJSON()).toEqual(true); + }); + + it('decodes false', (): void => { + expect(new OptionBool(registry, false).toJSON()).toEqual(false); + }); + }); + + describe('encodes', (): void => { + it('encodes none', (): void => { + expect(new OptionBool(registry).toU8a()).toEqual(new Uint8Array([0])); + }); + + it('encodes true', (): void => { + expect(new OptionBool(registry, true).toU8a()).toEqual(new Uint8Array([1])); + }); + + it('encodes false', (): void => { + expect(new OptionBool(registry, false).toU8a()).toEqual(new Uint8Array([2])); + }); + }); + + it('has a sane toRawType representation', (): void => { + expect(new OptionBool(registry).toRawType()).toEqual('Option'); + }); + + it('has a sane inspect', (): void => { + expect(new OptionBool(registry, true).inspect()).toEqual({ + outer: [new Uint8Array([1])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/OptionBool.ts b/packages/types-codec/src/extended/OptionBool.ts new file mode 100644 index 0000000..b4633f4 --- /dev/null +++ b/packages/types-codec/src/extended/OptionBool.ts @@ -0,0 +1,93 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyBool, Inspect, Registry } from '../types/index.js'; + +import { isHex, isU8a, u8aToU8a } from '@pezkuwi/util'; + +import { Option } from '../base/Option.js'; +import { bool as Bool } from '../native/Bool.js'; + +function decodeU8a (registry: Registry, value: Uint8Array): null | Bool { + // Encoded as - + // - 0 = None + // - 1 = True + // - 2 = False + return value[0] === 0 + ? null + : new Bool(registry, value[0] === 1); +} + +/** + * @name OptionBool + * @description A specific implementation of Option than allows for single-byte encoding + */ +export class OptionBool extends Option { + constructor (registry: Registry, value?: Option | AnyBool | Uint8Array | HexString | null) { + super( + registry, + Bool, + isU8a(value) || isHex(value) + ? decodeU8a(registry, u8aToU8a(value)) + : value + ); + + this.initialU8aLength = 1; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return 1 | 0; + } + + /** + * @description Checks if the value is an empty value (always false) + */ + public get isFalse (): boolean { + return this.isSome + ? !this.value.valueOf() + : false; + } + + /** + * @description Checks if the value is an empty value (always false) + */ + public get isTrue (): boolean { + return this.isSome + ? this.value.valueOf() + : false; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return { outer: [this.toU8a()] }; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (isBare?: boolean): string { + return isBare + ? 'bool' + : 'Option'; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + if (isBare) { + return super.toU8a(true); + } + + return this.isSome + ? new Uint8Array([this.isTrue ? 1 : 2]) + : new Uint8Array([0]); + } +} diff --git a/packages/types-codec/src/extended/Range.spec.ts b/packages/types-codec/src/extended/Range.spec.ts new file mode 100644 index 0000000..f79fa1c --- /dev/null +++ b/packages/types-codec/src/extended/Range.spec.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Range, U32 } from '@pezkuwi/types-codec'; + +describe('Range', (): void => { + const registry = new TypeRegistry(); + let range: Range; + + beforeEach((): void => { + range = new (Range.with(U32))(registry, [1, 2]); + }); + + it('decodes', (): void => { + expect(range.toJSON()).toEqual([1, 2]); + }); + + it('encodes', (): void => { + expect(range.toU8a()).toEqual(new Uint8Array([1, 0, 0, 0, 2, 0, 0, 0])); + }); + + it('has a sane toRawType representation', (): void => { + expect(range.toRawType()).toEqual('Range'); + }); + + it('has a sane inspect', (): void => { + expect(range.inspect()).toEqual({ + inner: [ + { outer: [new Uint8Array([1, 0, 0, 0])] }, + { outer: [new Uint8Array([2, 0, 0, 0])] } + ] + }); + }); +}); diff --git a/packages/types-codec/src/extended/Range.ts b/packages/types-codec/src/extended/Range.ts new file mode 100644 index 0000000..e8cdf1f --- /dev/null +++ b/packages/types-codec/src/extended/Range.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyTuple, CodecClass, INumber, Registry } from '../types/index.js'; + +import { Tuple } from '../base/Tuple.js'; + +type RangeType = 'Range' | 'RangeInclusive'; + +interface Options { + rangeName?: RangeType; +} + +/** + * @name Range + * @description + * Rust `Range` representation + */ +export class Range extends Tuple { + #rangeName: RangeType; + + constructor (registry: Registry, Type: CodecClass | string, value?: AnyTuple, { rangeName = 'Range' }: Options = {}) { + super(registry, [Type, Type], value); + + this.#rangeName = rangeName; + } + + public static override with (Type: CodecClass | string): CodecClass> { + return class extends Range { + constructor (registry: Registry, value?: AnyTuple) { + super(registry, Type, value); + } + }; + } + + /** + * @description Returns the starting range value + */ + public get start (): T { + return this[0] as T; + } + + /** + * @description Returns the ending range value + */ + public get end (): T { + return this[1] as T; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return `${this.#rangeName}<${this.start.toRawType()}>`; + } +} diff --git a/packages/types-codec/src/extended/RangeInclusive.ts b/packages/types-codec/src/extended/RangeInclusive.ts new file mode 100644 index 0000000..8f11e97 --- /dev/null +++ b/packages/types-codec/src/extended/RangeInclusive.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyTuple, CodecClass, INumber, Registry } from '../types/index.js'; + +import { Range } from './Range.js'; + +export class RangeInclusive extends Range { + constructor (registry: Registry, Type: CodecClass | string, value?: AnyTuple) { + super(registry, Type, value, { rangeName: 'RangeInclusive' }); + } + + public static override with (Type: CodecClass | string): CodecClass> { + return class extends RangeInclusive { + constructor (registry: Registry, value?: AnyTuple) { + super(registry, Type, value); + } + }; + } +} diff --git a/packages/types-codec/src/extended/Type.spec.ts b/packages/types-codec/src/extended/Type.spec.ts new file mode 100644 index 0000000..108727b --- /dev/null +++ b/packages/types-codec/src/extended/Type.spec.ts @@ -0,0 +1,118 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Text, Type } from '@pezkuwi/types-codec'; +import { stringToU8a, u8aConcat } from '@pezkuwi/util'; + +describe('Type', (): void => { + const registry = new TypeRegistry(); + + it('fails to cleanup invalid boxes', (): void => { + expect( + (): Type => new Type(registry, 'Box { + expect( + new Type(registry, '(AccountId)').toString() + ).toEqual('AccountId'); + }); + + it('does not touch tuples with multiple values', (): void => { + expect( + new Type(registry, '(AccountId, Balance)').toString() + ).toEqual('(AccountId,Balance)'); + }); + + it('handles nested types', (): void => { + expect( + new Type(registry, 'Box>').toString() + ).toEqual('Vec'); + }); + + it('handles nested types (embedded)', (): void => { + expect( + new Type(registry, '(u32, Box>)').toString() + ).toEqual('(u32,Vec)'); + }); + + it('handles aliasses, multiples per line', (): void => { + expect( + new Type(registry, '(Vec, AccountId, Vec)').toString() + ).toEqual('(Bytes,AccountId,Bytes)'); + }); + + it('removes whitespaces', (): void => { + expect( + new Type(registry, 'T :: AccountId').toString() + ).toEqual('AccountId'); + }); + + it('changes PairOf -> (T, T)', (): void => { + expect( + new Type(registry, 'PairOf').toString() + ).toEqual('(Balance,Balance)'); + }); + + it('changes PairOf (embedded) -> (T, T)', (): void => { + expect( + new Type(registry, '(Vec, PairOf, Vec)').toString() + ).toEqual('(Bytes,(Balance,Balance),Vec)'); + }); + + it('changes () -> ()', (): void => { + expect( + new Type(registry, '()').toString() + ).toEqual('()'); + }); + + it('has the sanitized', (): void => { + expect( + new Type( + registry, + new Text(registry, ' Box ') + ).toString() + ).toEqual('Proposal'); // eslint-disable-line + }); + + it('unwraps compact', (): void => { + expect( + new Type(registry, '::Type').toString() + ).toEqual('Compact'); + }); + + it('handles InherentOfflineReport', (): void => { + expect( + new Type(registry, '::Inherent').toString() + ).toEqual('InherentOfflineReport'); + }); + + it('encodes correctly via toU8a()', (): void => { + const type = 'Compact'; + + expect(new Text(registry, type).toU8a()).toEqual( + u8aConcat( + new Uint8Array([type.length << 2]), + stringToU8a(type) + ) + ); + }); + + it('creates a decodable U8a for sanitized types', (): void => { + const original = '::Inherent'; + const expected = 'InherentOfflineReport'; + const u8a = new Type(registry, original).toU8a(); + const decoded = new Type(registry, u8a); + + expect(decoded.encodedLength).toEqual(original.length + 1); // extra byte for length + expect(decoded.toString()).toEqual(expected); + }); + + it('has the correct raw', (): void => { + expect(new Type(registry).toRawType()).toEqual('Type'); + }); +}); diff --git a/packages/types-codec/src/extended/Type.ts b/packages/types-codec/src/extended/Type.ts new file mode 100644 index 0000000..f5ba060 --- /dev/null +++ b/packages/types-codec/src/extended/Type.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '../types/index.js'; + +import { Text } from '../native/Text.js'; +import { sanitize } from '../utils/index.js'; + +/** + * @name Type + * @description + * This is a extended version of Text, specifically to handle types. Here we rely fully + * on what Text provides us, however we also adjust the types received from the runtime, + * i.e. we remove the `T::` prefixes found in some types for consistency across implementation. + */ +export class Type extends Text { + constructor (registry: Registry, value: Text | Uint8Array | string = '') { + super(registry, value); + + this.setOverride(sanitize(this.toString())); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Type'; + } +} diff --git a/packages/types-codec/src/extended/U8aFixed.spec.ts b/packages/types-codec/src/extended/U8aFixed.spec.ts new file mode 100644 index 0000000..cb5667a --- /dev/null +++ b/packages/types-codec/src/extended/U8aFixed.spec.ts @@ -0,0 +1,117 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { U8aFixed } from '@pezkuwi/types-codec'; + +describe('U8aFixed', (): void => { + const registry = new TypeRegistry(); + + describe('construction', (): void => { + it('allows empty values', (): void => { + expect( + new U8aFixed(registry).toHex() + ).toEqual('0x0000000000000000000000000000000000000000000000000000000000000000'); + }); + + it('allows construction via with', (): void => { + expect( + new (U8aFixed.with(64))(registry).bitLength() + ).toEqual(64); + }); + + it('constructs from hex', (): void => { + expect( + new (U8aFixed.with(32))(registry, '0x01020304').toU8a() + ).toEqual( + new Uint8Array([0x01, 0x02, 0x03, 0x04]) + ); + }); + + it('constructs from number[]', (): void => { + expect( + new (U8aFixed.with(32))(registry, [0x02, 0x03, 0x00, 0x00]).toU8a() + ).toEqual( + new Uint8Array([0x02, 0x03, 0x00, 0x00]) + ); + }); + + it('constructs when passed Uint8Array is >= length', (): void => { + expect( + new (U8aFixed.with(32))(registry, new Uint8Array([0x00, 0x01, 0x02, 0x03])).toU8a() + ).toEqual( + new Uint8Array([0x00, 0x01, 0x02, 0x03]) + ); + expect( + new (U8aFixed.with(32))(registry, new Uint8Array([0x00, 0x01, 0x02, 0x03, 0x04, 0x05])).toU8a() + ).toEqual( + new Uint8Array([0x00, 0x01, 0x02, 0x03]) + ); + }); + + it('constructs when passed string is === length', (): void => { + expect( + new (U8aFixed.with(32))(registry, '1234').toU8a() + ).toEqual( + new Uint8Array([49, 50, 51, 52]) + ); + }); + + it('fails construction when passed string is > length', (): void => { + expect( + () => new (U8aFixed.with(32))(registry, '0x000102030405').toU8a() + ).toThrow(/Expected input with 4 bytes/); + expect( + () => new (U8aFixed.with(256))(registry, '1363HWTPzDrzAQ6ChFiMU6mP4b6jmQid2ae55JQcKtZnpLGv') + ).toThrow(/Expected input with 32 bytes/); + }); + }); + + describe('utils', (): void => { + let u8a: U8aFixed; + + beforeEach((): void => { + u8a = new U8aFixed(registry, [1, 2, 3, 4], 32); + }); + + it('limits the length', (): void => { + expect(u8a.length).toEqual(4); + }); + + it('exposes the correct bitLength', (): void => { + expect(u8a.bitLength()).toEqual(32); + }); + + it('allows wrapping of a pre-existing instance', (): void => { + expect( + u8a.toU8a() + ).toEqual(new Uint8Array([1, 2, 3, 4])); + }); + + it('has a sane toRawType', (): void => { + expect(u8a.toRawType()).toEqual('[u8;4]'); + }); + + it('has a sane inspect', (): void => { + expect(u8a.inspect()).toEqual({ + outer: [new Uint8Array([1, 2, 3, 4])] + }); + }); + }); + + describe('static with', (): void => { + it('allows default toRawType', (): void => { + expect( + new (U8aFixed.with(64))(registry).toRawType() + ).toEqual('[u8;8]'); + }); + + it('allows toRawType override', (): void => { + expect( + new (U8aFixed.with(64, 'SomethingElse'))(registry).toRawType() + ).toEqual('SomethingElse'); + }); + }); +}); diff --git a/packages/types-codec/src/extended/U8aFixed.ts b/packages/types-codec/src/extended/U8aFixed.ts new file mode 100644 index 0000000..e17da02 --- /dev/null +++ b/packages/types-codec/src/extended/U8aFixed.ts @@ -0,0 +1,57 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyU8a, CodecClass, Registry, U8aBitLength } from '../types/index.js'; + +import { isU8a, u8aToU8a } from '@pezkuwi/util'; + +import { Raw } from '../native/Raw.js'; + +/** @internal */ +function decodeU8aFixed (value: AnyU8a, bitLength: U8aBitLength): [AnyU8a, number] { + const u8a = u8aToU8a(value); + const byteLength = bitLength / 8; + + if (!u8a.length) { + return [new Uint8Array(byteLength), 0]; + } + + if (isU8a(value) ? u8a.length < byteLength : u8a.length !== byteLength) { + throw new Error(`Expected input with ${byteLength} bytes (${bitLength} bits), found ${u8a.length} bytes`); + } + + return [u8a.subarray(0, byteLength), byteLength]; +} + +/** + * @name U8aFixed + * @description + * A U8a that manages a a sequence of bytes up to the specified bitLength. Not meant + * to be used directly, rather is should be subclassed with the specific lengths. + */ +export class U8aFixed extends Raw { + constructor (registry: Registry, value: AnyU8a = new Uint8Array(), bitLength: U8aBitLength = 256) { + const [u8a, decodedLength] = decodeU8aFixed(value, bitLength); + + super(registry, u8a, decodedLength); + } + + public static with (bitLength: U8aBitLength, typeName?: string): CodecClass { + return class extends U8aFixed { + constructor (registry: Registry, value?: AnyU8a) { + super(registry, value, bitLength); + } + + public override toRawType (): string { + return typeName || super.toRawType(); + } + }; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return `[u8;${this.length}]`; + } +} diff --git a/packages/types-codec/src/extended/WrapperKeepOpaque.spec.ts b/packages/types-codec/src/extended/WrapperKeepOpaque.spec.ts new file mode 100644 index 0000000..646239e --- /dev/null +++ b/packages/types-codec/src/extended/WrapperKeepOpaque.spec.ts @@ -0,0 +1,101 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { Bytes, Raw, u32, WrapperKeepOpaque } from '@pezkuwi/types-codec'; + +describe('WrapperKeepOpaque', (): void => { + const registry = new TypeRegistry(); + const u8au32 = new Uint8Array([4 << 2, 135, 214, 18, 0]); + const ClazzUSize = WrapperKeepOpaque.with('usize'); + const ClazzU32 = WrapperKeepOpaque.with(u32); + + it('has handles non-decodable values', (): void => { + const usize = new ClazzUSize(registry, u8au32); + + expect(usize.isDecoded).toEqual(false); + expect(() => usize.unwrap()).toThrow(/undecodable value/); + + expect(usize.toHex()).toEqual('0x87d61200'); + expect(usize.toHuman()).toEqual('0x87d61200'); + expect(usize.toJSON()).toEqual('0x87d61200'); + expect(usize.toRawType()).toEqual('WrapperKeepOpaque'); + expect(usize.toString()).toEqual('0x87d61200'); + expect(usize.toU8a()).toEqual(u8au32); + }); + + it('has handles decodable values', (): void => { + const u32 = new ClazzU32(registry, u8au32); + + expect(u32.isDecoded).toEqual(true); + expect(u32.unwrap().toNumber()).toEqual(1234567); + + expect(u32.toHex()).toEqual('0x87d61200'); + expect(u32.toHuman()).toEqual('1,234,567'); + expect(u32.toJSON()).toEqual('0x87d61200'); + expect(u32.toRawType()).toEqual('WrapperKeepOpaque'); + expect(u32.toString()).toEqual('1234567'); + expect(u32.toU8a()).toEqual(u8au32); + }); + + it('handles values from Raw', (): void => { + const u32 = new ClazzU32(registry, new Raw(registry, u8au32.slice(1))); + + expect(u32.unwrap().toNumber()).toEqual(1234567); + }); + + it('handles values from Bytes', (): void => { + const u32 = new ClazzU32(registry, new Bytes(registry, u8au32)); + + expect(u32.unwrap().toNumber()).toEqual(1234567); + }); + + it('has a sane inspect (non-decodable)', (): void => { + expect( + new ClazzUSize(registry, u8au32).inspect() + ).toEqual({ + outer: [new Uint8Array([4 << 2]), new Uint8Array([0x87, 0xd6, 0x12, 0x00])] + }); + }); + + it('has a sane inspect (decodable)', (): void => { + expect( + new ClazzU32(registry, u8au32).inspect() + ).toEqual({ + inner: [{ outer: [new Uint8Array([0x87, 0xd6, 0x12, 0x00])] }], + outer: [new Uint8Array([4 << 2])] + }); + }); + + it('has a sane in-wrapper representation', (): void => { + const set = registry.createType( + 'BTreeSet', + // prefix + '0x' + + // 4 items, 16 >> 2 + '10' + + // opaque length + '9c' + + // bytes length + '98' + '0024080112201ce5f00ef6e89374afb625f1ae4c1546d31234e87e3c3f51a62b91dd6bfa57df' + + // repeat the same for the next 3... + '9c98002408011220876a7b4984f98006dc8d666e28b60de307309835d775e7755cc770328cdacf2e9c98002408011220c81bc1d7057a1511eb9496f056f6f53cdfe0e14c8bd5ffca47c70a8d76c1326d9c98002408011220dacde7714d8551f674b8bb4b54239383c76a2b286fa436e93b2b7eb226bf4de7' + ); + const val = [...set.values()]; + + expect(val.map((v) => v.toHex())).toEqual([ + '0x980024080112201ce5f00ef6e89374afb625f1ae4c1546d31234e87e3c3f51a62b91dd6bfa57df', + '0x98002408011220876a7b4984f98006dc8d666e28b60de307309835d775e7755cc770328cdacf2e', + '0x98002408011220c81bc1d7057a1511eb9496f056f6f53cdfe0e14c8bd5ffca47c70a8d76c1326d', + '0x98002408011220dacde7714d8551f674b8bb4b54239383c76a2b286fa436e93b2b7eb226bf4de7' + ]); + expect(val.map((v) => v.toHuman())).toEqual([ + '0x0024080112201ce5f00ef6e89374afb625f1ae4c1546d31234e87e3c3f51a62b91dd6bfa57df', + '0x002408011220876a7b4984f98006dc8d666e28b60de307309835d775e7755cc770328cdacf2e', + '0x002408011220c81bc1d7057a1511eb9496f056f6f53cdfe0e14c8bd5ffca47c70a8d76c1326d', + '0x002408011220dacde7714d8551f674b8bb4b54239383c76a2b286fa436e93b2b7eb226bf4de7' + ]); + }); +}); diff --git a/packages/types-codec/src/extended/WrapperKeepOpaque.ts b/packages/types-codec/src/extended/WrapperKeepOpaque.ts new file mode 100644 index 0000000..453bc17 --- /dev/null +++ b/packages/types-codec/src/extended/WrapperKeepOpaque.ts @@ -0,0 +1,128 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, AnyU8a, Codec, CodecClass, Inspect, Registry } from '../types/index.js'; + +import { compactAddLength, compactStripLength, compactToU8a, isHex, isU8a, u8aToU8a } from '@pezkuwi/util'; + +import { Raw } from '../native/Raw.js'; +import { typeToConstructor } from '../utils/index.js'; +import { Bytes } from './Bytes.js'; + +type OpaqueName = 'WrapperKeepOpaque' | 'WrapperOpaque'; + +interface Options { + opaqueName?: OpaqueName; +} + +function decodeRaw (registry: Registry, typeName: CodecClass | string, value?: unknown): [CodecClass, T | null, AnyU8a] { + const Type = typeToConstructor(registry, typeName); + + if (isU8a(value) || isHex(value)) { + try { + const [, u8a] = isHex(value) + ? [0, u8aToU8a(value)] + : (value instanceof Raw) + ? [0, value.subarray()] + : compactStripLength(value); + + return [Type, new Type(registry, u8a), value]; + } catch { + return [Type, null, value]; + } + } + + const instance = new Type(registry, value); + + return [Type, instance, compactAddLength(instance.toU8a())]; +} + +export class WrapperKeepOpaque extends Bytes { + readonly #Type: CodecClass; + readonly #decoded: T | null; + readonly #opaqueName: OpaqueName; + + constructor (registry: Registry, typeName: CodecClass | string, value?: unknown, { opaqueName = 'WrapperKeepOpaque' }: Options = {}) { + const [Type, decoded, u8a] = decodeRaw(registry, typeName, value); + + super(registry, u8a); + + this.#Type = Type; + this.#decoded = decoded; + this.#opaqueName = opaqueName; + } + + public static with (Type: CodecClass | string): CodecClass> { + return class extends WrapperKeepOpaque { + constructor (registry: Registry, value?: AnyU8a | T) { + super(registry, Type, value); + } + }; + } + + /** + * @description Checks if the wrapper is decodable + */ + public get isDecoded (): boolean { + return !!this.#decoded; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return this.#decoded + ? { + inner: [this.#decoded.inspect()], + outer: [compactToU8a(this.length)] + } + : { + outer: [compactToU8a(this.length), this.toU8a(true)] + }; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.#decoded + ? this.#decoded.toHuman(isExtended, disableAscii) + : super.toHuman(isExtended, disableAscii); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public override toPrimitive (disableAscii?: boolean): any { + return this.#decoded + ? this.#decoded.toPrimitive(disableAscii) + : super.toPrimitive(disableAscii); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return `${this.#opaqueName}<${this.registry.getClassName(this.#Type) || (this.#decoded ? this.#decoded.toRawType() : new this.#Type(this.registry).toRawType())}>`; + } + + /** + * @description Converts the Object to to a string (either decoded or bytes) + */ + public override toString (): string { + return this.#decoded + ? this.#decoded.toString() + : super.toString(); + } + + /** + * @description Returns the decoded that the WrapperKeepOpaque represents (if available), throws if non-decodable + */ + public unwrap (): T { + if (!this.#decoded) { + throw new Error(`${this.#opaqueName}: unwrapping an undecodable value`); + } + + return this.#decoded; + } +} diff --git a/packages/types-codec/src/extended/WrapperOpaque.spec.ts b/packages/types-codec/src/extended/WrapperOpaque.spec.ts new file mode 100644 index 0000000..d5b907c --- /dev/null +++ b/packages/types-codec/src/extended/WrapperOpaque.spec.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { WrapperOpaque } from '@pezkuwi/types-codec'; +import { u8aConcat } from '@pezkuwi/util'; + +describe('WrapperOpaque', (): void => { + const registry = new TypeRegistry(); + const u8au32 = new Uint8Array([4 << 2, 135, 214, 18, 0]); + + it('u8a encodes a wrapped u32 correctly', (): void => { + expect( + new WrapperOpaque(registry, 'u32', 1234567).toU8a() + ).toEqual(u8au32); + }); + + it('u8a decodes a wrapped u32 correctly', (): void => { + expect( + new WrapperOpaque(registry, 'u32', u8au32).toU8a() + ).toEqual(u8au32); + }); + + it('u8a encodes a wrapped option correctly', (): void => { + expect( + new WrapperOpaque(registry, 'Option', 1234567).toU8a() + ).toEqual(u8aConcat([5 << 2, 1], u8au32.slice(1))); + }); + + it('hex encodes a wrapped u32 correctly', (): void => { + expect( + new WrapperOpaque(registry, 'u32', '0x12345678').toHex() + ).toEqual('0x12345678'); + }); + + it('has the correct unwrap', (): void => { + expect( + new WrapperOpaque(registry, 'u32', '0x12345678').unwrap().toHex() + ).toEqual('0x78563412'); + }); + + it('has the correct toRawType', (): void => { + expect( + new WrapperOpaque(registry, 'u32').toRawType() + ).toEqual('WrapperOpaque'); + }); + + it('has a sane inspect', (): void => { + expect( + new WrapperOpaque(registry, 'u32', '0x78563412').inspect() + ).toEqual({ + inner: [{ outer: [new Uint8Array([0x78, 0x56, 0x34, 0x12])] }], + outer: [new Uint8Array([4 << 2])] + }); + }); +}); diff --git a/packages/types-codec/src/extended/WrapperOpaque.ts b/packages/types-codec/src/extended/WrapperOpaque.ts new file mode 100644 index 0000000..8e2f45c --- /dev/null +++ b/packages/types-codec/src/extended/WrapperOpaque.ts @@ -0,0 +1,27 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, Registry } from '../types/index.js'; + +import { WrapperKeepOpaque } from './WrapperKeepOpaque.js'; + +export class WrapperOpaque extends WrapperKeepOpaque { + constructor (registry: Registry, typeName: CodecClass | string, value?: unknown) { + super(registry, typeName, value, { opaqueName: 'WrapperOpaque' }); + } + + public static override with (Type: CodecClass | string): CodecClass> { + return class extends WrapperOpaque { + constructor (registry: Registry, value?: unknown) { + super(registry, Type, value); + } + }; + } + + /** + * @description The inner value for this wrapper, in all cases it _should_ be decodable (unlike KeepOpaque) + */ + public get inner (): T { + return this.unwrap(); + } +} diff --git a/packages/types-codec/src/extended/index.ts b/packages/types-codec/src/extended/index.ts new file mode 100644 index 0000000..1e54f1b --- /dev/null +++ b/packages/types-codec/src/extended/index.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { BitVec } from './BitVec.js'; +export { BTreeMap } from './BTreeMap.js'; +export { BTreeSet } from './BTreeSet.js'; +export { Bytes } from './Bytes.js'; +export { HashMap } from './HashMap.js'; +export { Linkage } from './Linkage.js'; +export { CodecMap, CodecMap as Map } from './Map.js'; +export { OptionBool } from './OptionBool.js'; +export { Range } from './Range.js'; +export { RangeInclusive } from './RangeInclusive.js'; +export { Type } from './Type.js'; +export { U8aFixed } from './U8aFixed.js'; +export { WrapperKeepOpaque } from './WrapperKeepOpaque.js'; +export { WrapperOpaque } from './WrapperOpaque.js'; diff --git a/packages/types-codec/src/index.ts b/packages/types-codec/src/index.ts new file mode 100644 index 0000000..09d981b --- /dev/null +++ b/packages/types-codec/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/types-codec/src/mod.ts b/packages/types-codec/src/mod.ts new file mode 100644 index 0000000..84418e8 --- /dev/null +++ b/packages/types-codec/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/types-codec/src/native/Bool.spec.ts b/packages/types-codec/src/native/Bool.spec.ts new file mode 100644 index 0000000..26dcdac --- /dev/null +++ b/packages/types-codec/src/native/Bool.spec.ts @@ -0,0 +1,74 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecTo } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { Bool } from '@pezkuwi/types-codec'; + +describe('Bool', (): void => { + const registry = new TypeRegistry(); + + describe('decode', (): void => { + // eslint-disable-next-line @typescript-eslint/ban-types + const testDecode = (type: string, input: Uint8Array | boolean | Boolean | Bool | number, expected: boolean): void => + it(`can decode from ${type}`, (): void => { + expect(new Bool(registry, input).toJSON()).toBe(expected); + }); + + testDecode('Bool', new Bool(registry, true), true); + testDecode('Boolean', Boolean(true), true); + testDecode('boolean', true, true); + testDecode('number', 1, true); + testDecode('Uint8Array', Uint8Array.from([1]), true); + }); + + describe('encode', (): void => { + const testEncode = (to: CodecTo, expected: string | Uint8Array | boolean, value: boolean): void => + it(`can encode ${to}`, (): void => { + expect(new Bool(registry, value)[to]()).toEqual(expected); + }); + + testEncode('toJSON', true, true); + testEncode('toHex', '0x01', true); + testEncode('toString', 'true', true); + testEncode('toU8a', Uint8Array.from([1]), true); + testEncode('toU8a', Uint8Array.from([0]), false); + }); + + it('correctly encodes length', (): void => { + expect(new Bool(registry, true).encodedLength).toEqual(1); + }); + + describe('utils', (): void => { + it('compares against a boolean', (): void => { + expect(new Bool(registry, true).eq(true)).toBe(true); + }); + + it('compares against a Bool', (): void => { + expect(new Bool(registry, false).eq(new Bool(registry, false))).toBe(true); + }); + + it('has isTrue', (): void => { + expect(new Bool(registry, true).isTrue).toBe(true); + }); + + it('has isFalse', (): void => { + expect(new Bool(registry, true).isFalse).toBe(false); + }); + + it('has sane isEmpty aligning with the rest', (): void => { + expect(new Bool(registry).isEmpty).toBe(true); + expect(new Bool(registry, false).isEmpty).toBe(true); + expect(new Bool(registry, true).isEmpty).toBe(false); + }); + + it('has a sane inspect', (): void => { + expect(new Bool(registry, true).inspect()).toEqual({ + outer: [new Uint8Array([1])] + }); + }); + }); +}); diff --git a/packages/types-codec/src/native/Bool.ts b/packages/types-codec/src/native/Bool.ts new file mode 100644 index 0000000..48d293d --- /dev/null +++ b/packages/types-codec/src/native/Bool.ts @@ -0,0 +1,137 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyBool, Codec, Inspect, IU8a, Registry } from '../types/index.js'; + +import { isU8a, u8aToHex } from '@pezkuwi/util'; + +/** + * @name bool + * @description + * Representation for a boolean value in the system. It extends the base JS `Boolean` class + * @noInheritDoc + */ +export class bool extends Boolean implements Codec { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength = 1; + public isStorageFallback?: boolean; + + constructor (registry: Registry, value: bool | AnyBool | Uint8Array | number = false) { + super( + isU8a(value) + ? value[0] === 1 + : value instanceof Boolean + ? value.valueOf() + : !!value + ); + + this.registry = registry; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return 1 | 0; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value (true when it wraps false/default) + */ + public get isEmpty (): boolean { + return this.isFalse; + } + + /** + * @description Checks if the value is an empty value (always false) + */ + public get isFalse (): boolean { + return !this.isTrue; + } + + /** + * @description Checks if the value is an empty value (always false) + */ + public get isTrue (): boolean { + return this.valueOf(); + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return this.valueOf() === ( + other instanceof Boolean + ? other.valueOf() + : other + ); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): boolean { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): boolean { + return this.valueOf(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (): boolean { + return this.toJSON(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'bool'; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return this.toJSON().toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return new Uint8Array([this.valueOf() ? 1 : 0]); + } +} diff --git a/packages/types-codec/src/native/Date.spec.ts b/packages/types-codec/src/native/Date.spec.ts new file mode 100644 index 0000000..6730fe5 --- /dev/null +++ b/packages/types-codec/src/native/Date.spec.ts @@ -0,0 +1,85 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecTo } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { CodecDate, U64 } from '@pezkuwi/types-codec'; +import { BN } from '@pezkuwi/util'; + +describe('Date', (): void => { + const registry = new TypeRegistry(); + + describe('decode', (): void => { + const testDecode = (type: string, input: Date | CodecDate | U64 | number, expected: string | number, toJSON = false): void => + it(`can decode from ${type}`, (): void => { + expect(new CodecDate(registry, input)[toJSON ? 'toJSON' : 'toISOString']()).toBe(expected); + }); + + testDecode('Date', new Date(1537968546280), '2018-09-26T13:29:06.280Z'); + testDecode('CodecDate', new CodecDate(registry, 1234), 1234, true); + testDecode('number', 1234, 1234, true); + testDecode('U64', new U64(registry, 69), 69, true); + }); + + describe('encode', (): void => { + const testEncode = (to: 'toBigInt' | 'toBn' | 'toISOString' | 'toNumber' | CodecTo, expected: bigint | BN | number | string | Uint8Array): void => + it(`can encode ${to}`, (): void => { + expect(new CodecDate(registry, 421)[to]()).toEqual(expected); + }); + + testEncode('toBigInt', 421n); + testEncode('toBn', new BN(421)); + testEncode('toJSON', 421); + testEncode('toISOString', '1970-01-01T00:07:01.000Z'); + + testEncode('toNumber', 421); + testEncode('toU8a', Uint8Array.from([165, 1, 0, 0, 0, 0, 0, 0])); + + it('can encode toString', (): void => { + const date = new Date(Date.UTC(1970, 0, 1, 2, 3, 4)); + + date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000); + + expect( + new CodecDate(registry, date).toString() + ).toMatch(/^Thu Jan 01 1970 02:03:04/); + }); + + it('encodes default BE hex', (): void => { + expect( + new CodecDate(registry, 3).toHex() + ).toEqual('0x0000000000000003'); + }); + + it('encodes options LE hex', (): void => { + expect( + new CodecDate(registry, 3).toHex(true) + ).toEqual('0x0300000000000000'); + }); + + it('encodes correctly to BigInt', (): void => { + expect( + new CodecDate(registry, 41).toBigInt() + 1n + ).toEqual(42n); + }); + }); + + describe('utils', (): void => { + it('compares values', (): void => { + expect(new CodecDate(registry, 123).eq(123)).toBe(true); + }); + + it('compares values (non-match)', (): void => { + expect(new CodecDate(registry, 123).eq(456)).toBe(false); + }); + + it('has a sane inspect', (): void => { + expect(new CodecDate(registry, 3).inspect()).toEqual({ + outer: [new Uint8Array([3, 0, 0, 0, 0, 0, 0, 0])] + }); + }); + }); +}); diff --git a/packages/types-codec/src/native/Date.ts b/packages/types-codec/src/native/Date.ts new file mode 100644 index 0000000..b0a2795 --- /dev/null +++ b/packages/types-codec/src/native/Date.ts @@ -0,0 +1,169 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyNumber, Inspect, INumber, IU8a, Registry, UIntBitLength } from '../types/index.js'; + +import { BN, bnToBn, bnToHex, bnToU8a, isString, isU8a, u8aToBn } from '@pezkuwi/util'; + +const BITLENGTH: UIntBitLength = 64; +const U8A_OPTS = { bitLength: BITLENGTH, isLe: true }; + +function decodeDate (value: CodecDate | Date | AnyNumber): Date { + if (isU8a(value)) { + value = u8aToBn(value.subarray(0, BITLENGTH / 8)); + } else if (value instanceof Date) { + return value; + } else if (isString(value)) { + value = new BN(value.toString(), 10, 'le'); + } + + return new Date( + bnToBn(value as BN).toNumber() * 1000 + ); +} + +/** + * @name Date + * @description + * A wrapper around seconds/timestamps. Internally the representation only has + * second precicion (aligning with Rust), so any numbers passed an/out are always + * per-second. For any encoding/decoding the 1000 multiplier would be applied to + * get it in line with JavaScript formats. It extends the base JS `Date` object + * and has all the methods available that are applicable to any `Date` + * @noInheritDoc + */ +export class CodecDate extends Date implements INumber { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength = BITLENGTH / 8; + public isStorageFallback?: boolean; + + constructor (registry: Registry, value: CodecDate | Date | AnyNumber = 0) { + super(decodeDate(value)); + + this.registry = registry; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return BITLENGTH / 8; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.getTime() === 0; + } + + /** + * @description Returns the number of bits in the value + */ + public bitLength (): UIntBitLength { + return BITLENGTH; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return decodeDate(other as AnyNumber).getTime() === this.getTime(); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description Returns a BigInt representation of the number + */ + public toBigInt (): bigint { + return BigInt(this.toNumber()); + } + + /** + * @description Returns the BN representation of the timestamp + */ + public toBn (): BN { + return new BN(this.toNumber()); + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (isLe = false): HexString { + return bnToHex(this.toBn(), { + bitLength: BITLENGTH, + isLe, + isNegative: false + }); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): string { + return this.toISOString(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): any { + // FIXME Return type should be number, but conflicts with Date.toJSON() + // which returns string + return this.toNumber(); + } + + /** + * @description Returns the number representation for the timestamp + */ + public toNumber (): number { + return Math.ceil(this.getTime() / 1000); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (): number { + return this.toNumber(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'Moment'; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + // only included here since we do not inherit docs + return super.toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return bnToU8a(this.toNumber(), U8A_OPTS); + } +} diff --git a/packages/types-codec/src/native/Float.spec.ts b/packages/types-codec/src/native/Float.spec.ts new file mode 100644 index 0000000..8867a77 --- /dev/null +++ b/packages/types-codec/src/native/Float.spec.ts @@ -0,0 +1,51 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { F32, F64 } from '@pezkuwi/types-codec'; + +describe('Float', (): void => { + const registry = new TypeRegistry(); + + describe('F32', (): void => { + it('has a sane toRawType()', (): void => { + expect( + new F32(registry).toRawType() + ).toEqual('f32'); + }); + + it('constructs from Uint8Array', (): void => { + expect( + new F32(registry, new Uint8Array([0, 0, 0, 128])).toNumber() + ).toEqual(-0.0); + }); + + it('triggers isEmpty on 0', (): void => { + expect( + new F32(registry, 0).isEmpty + ).toEqual(true); + }); + + it('constructs from a float value', (): void => { + expect( + new F32(registry, 123.456).toString() + ).toEqual('123.456'); + }); + }); + + describe('F64', (): void => { + it('has a sane toRawType()', (): void => { + expect( + new F64(registry).toRawType() + ).toEqual('f64'); + }); + + it('constructs from hex', (): void => { + expect( + new F64(registry, '0x0000000000000080').toNumber() + ).toEqual(-0.0); + }); + }); +}); diff --git a/packages/types-codec/src/native/Float.ts b/packages/types-codec/src/native/Float.ts new file mode 100644 index 0000000..7098ffe --- /dev/null +++ b/packages/types-codec/src/native/Float.ts @@ -0,0 +1,136 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyFloat, CodecClass, IFloat, Inspect, IU8a, Registry } from '../types/index.js'; + +import { floatToU8a, isHex, isU8a, u8aToFloat, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +interface Options { + bitLength?: 32 | 64; +} + +/** + * @name Float + * @description + * A Codec wrapper for F32 & F64 values. You generally don't want to be using + * f32/f64 in your runtime, operations on fixed points numbers are preferable. This class + * was explicitly added since scale-codec has a flag that enables this and it is available + * in some eth_* RPCs + */ +export class Float extends Number implements IFloat { + readonly encodedLength: number; + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #bitLength: 32 | 64; + + constructor (registry: Registry, value?: AnyFloat, { bitLength = 32 }: Options = {}) { + super( + isU8a(value) || isHex(value) + ? value.length === 0 + ? 0 + : u8aToFloat(u8aToU8a(value), { bitLength }) + : (value || 0) + ); + + this.#bitLength = bitLength; + this.encodedLength = bitLength / 8; + this.initialU8aLength = this.encodedLength; + this.registry = registry; + } + + public static with (bitLength: 32 | 64): CodecClass { + return class extends Float { + constructor (registry: Registry, value?: AnyFloat) { + super(registry, value, { bitLength }); + } + }; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Returns true if the type wraps an empty/default all-0 value + */ + get isEmpty (): boolean { + return this.valueOf() === 0; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return this.valueOf() === Number(other); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): string { + return this.toString(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): string { + // Not sure if this is actually a hex or a string value + // (would need to check against RPCs to see the result here) + return this.toHex(); + } + + /** + * @description Returns the number representation (Same as valueOf) + */ + public toNumber (): number { + return this.valueOf(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (): number { + return this.toNumber(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return `f${this.#bitLength}`; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return floatToU8a(this, { + bitLength: this.#bitLength + }); + } +} diff --git a/packages/types-codec/src/native/Json.ts b/packages/types-codec/src/native/Json.ts new file mode 100644 index 0000000..dc0eb73 --- /dev/null +++ b/packages/types-codec/src/native/Json.ts @@ -0,0 +1,147 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, Codec, Inspect, IU8a, Registry } from '../types/index.js'; + +import { isFunction, objectProperties, stringify } from '@pezkuwi/util'; + +import { compareMap } from '../utils/index.js'; + +/** @internal */ +function decodeJson (value?: Record | null): [string, any][] { + return Object.entries(value || {}); +} + +/** + * @name Json + * @description + * Wraps the a JSON structure retrieve via RPC. It extends the standard JS Map with. While it + * implements a Codec, it is limited in that it can only be used with input objects via RPC, + * i.e. no hex decoding. Unlike a struct, this waps a JSON object with unknown keys + * @noInheritDoc + */ +export class Json extends Map implements Codec { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + constructor (registry: Registry, value?: Record | null) { + const decoded = decodeJson(value); + + super(decoded); + + this.registry = registry; + + objectProperties(this, decoded.map(([k]) => k), (k) => this.get(k)); + } + + /** + * @description Always 0, never encodes as a Uint8Array + */ + public get encodedLength (): number { + return 0 | 0; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return [...this.keys()].length === 0; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return compareMap(this, other); + } + + /** + * @description Returns a typed value from the internal map + */ + public getT (key: string): T { + return this.get(key) as unknown as T; + } + + /** + * @description Unimplemented, will throw + */ + public inspect (): Inspect { + throw new Error('Unimplemented'); + } + + /** + * @description Unimplemented, will throw + */ + public toHex (): HexString { + throw new Error('Unimplemented'); + } + + /** + * @description Converts the Object to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): Record { + return [...this.entries()].reduce>((json, [key, value]): Record => { + json[key] = isFunction((value as Codec)?.toHuman) + ? (value as Codec).toHuman() + : value as AnyJson; + + return json; + }, {}); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): Record { + return [...this.entries()].reduce>((json, [key, value]): Record => { + json[key] = value as AnyJson; + + return json; + }, {}); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): Record { + return [...this.entries()].reduce>((json, [key, value]): Record => { + json[key] = isFunction((value as Codec).toPrimitive) + ? (value as Codec).toPrimitive(disableAscii) + : value as AnyJson; + + return json; + }, {}); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'Json'; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return stringify(this.toJSON()); + } + + /** + * @description Unimplemented, will throw + */ + public toU8a (_isBare?: boolean): Uint8Array { + throw new Error('Unimplemented'); + } +} diff --git a/packages/types-codec/src/native/Raw.spec.ts b/packages/types-codec/src/native/Raw.spec.ts new file mode 100644 index 0000000..c3f681e --- /dev/null +++ b/packages/types-codec/src/native/Raw.spec.ts @@ -0,0 +1,113 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { AnyU8a, CodecTo } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { Raw } from '@pezkuwi/types-codec'; + +const registry = new TypeRegistry(); + +const testDecode = (type: string, input: AnyU8a, expected: string): void => + it(`can decode from ${type}`, (): void => { + const e = new Raw(registry, input); + + expect(e.toString()).toBe(expected); + }); + +const testEncode = (to: CodecTo, expected: AnyU8a): void => + it(`can encode ${to}`, (): void => { + const e = new Raw(registry, [1, 2, 3, 4, 5]); + + expect(e[to]()).toEqual(expected); + }); + +describe('Raw', (): void => { + let u8a: Raw; + + beforeEach((): void => { + u8a = new Raw(registry, [1, 2, 3, 4, 5]); + }); + + testDecode('Array', [1, 2, 3, 4, 5], '0x0102030405'); + testDecode('hex', '0x0102030405', '0x0102030405'); + testDecode('U8a', new Uint8Array([1, 2, 3, 4, 5]), '0x0102030405'); + testDecode('Uint8Array', Uint8Array.from([1, 2, 3, 4, 5]), '0x0102030405'); + + testEncode('toJSON', '0x0102030405'); + testEncode('toHex', '0x0102030405'); + testEncode('toPrimitive', '0x0102030405'); + testEncode('toString', '0x0102030405'); + testEncode('toU8a', Uint8Array.from([1, 2, 3, 4, 5])); + + it('contains the length of the elements', (): void => { + expect(u8a.length).toEqual(5); + }); + + it('correctly encodes length', (): void => { + expect(u8a.encodedLength).toEqual(5); + }); + + it('allows wrapping of a pre-existing instance', (): void => { + expect( + new Raw(registry, u8a).length + ).toEqual(5); + }); + + it('implements subarray correctly', (): void => { + expect(u8a.subarray(1, 3)).toEqual(Uint8Array.from([2, 3])); + }); + + describe('utils', (): void => { + it('compares against other U8a', (): void => { + expect(u8a.eq(new Uint8Array([1, 2, 3, 4, 5]))).toBe(true); + }); + + it('compares against other U8a (non-length)', (): void => { + expect(u8a.eq(new Uint8Array([1, 2, 3, 4]))).toBe(false); + }); + + it('compares against other U8a (mismatch)', (): void => { + expect(u8a.eq(new Uint8Array([1, 2, 3, 4, 6]))).toBe(false); + }); + + it('compares against hex inputs', (): void => { + expect(u8a.eq('0x0102030405')).toBe(true); + }); + + it('has valid isAscii', (): void => { + expect(u8a.isAscii).toBe(false); + expect(new Raw(registry, '0x2021222324').isAscii).toBe(true); + }); + + it('has valid toHuman with disableAscii option set as true', (): void => { + expect(new Raw(registry, new Uint8Array([85, 85, 85, 85, 85, 85, 85, 85])).toHuman(undefined, true)).toEqual('0x5555555555555555'); + }); + + it('has valid toPrimitive', (): void => { + expect(new Raw(registry, 'testing').toPrimitive()).toEqual('testing'); + expect(new Raw(registry, '0xe4bda0e5a5bd').toPrimitive()).toEqual('0xe4bda0e5a5bd'); + }); + + it('has valid toUtf8', (): void => { + expect(new Raw(registry, 'Приветствую, ми').toUtf8()).toEqual('Приветствую, ми'); + expect(new Raw(registry, '0xe4bda0e5a5bd').toUtf8()).toEqual('你好'); + }); + + it('throws on invalid utf8', (): void => { + expect( + () => new Raw(registry, '0x7f07b1f87709608bee603bbc79a0dfc29cd315c1351a83aa31adf7458d7d3003').toUtf8() + ).toThrow(/The character sequence is not a valid Utf8 string/); + }); + + it('has a sane inspect', (): void => { + expect( + new Raw(registry, [1, 2, 3, 4, 5]).inspect() + ).toEqual({ + outer: [new Uint8Array([1, 2, 3, 4, 5])] + }); + }); + }); +}); diff --git a/packages/types-codec/src/native/Raw.ts b/packages/types-codec/src/native/Raw.ts new file mode 100644 index 0000000..85ab5d6 --- /dev/null +++ b/packages/types-codec/src/native/Raw.ts @@ -0,0 +1,171 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, AnyU8a, Inspect, IU8a, Registry } from '../types/index.js'; + +import { isAscii, isUndefined, isUtf8, u8aToHex, u8aToString, u8aToU8a } from '@pezkuwi/util'; + +/** + * @name Raw + * @description + * A basic wrapper around Uint8Array, with no frills and no fuss. It does differ + * from other implementations where it will consume the full Uint8Array as passed to it. + * As such it is meant to be subclassed where the wrapper takes care of the + * actual lengths instead of used directly. + * @noInheritDoc + */ +export class Raw extends Uint8Array implements IU8a { + readonly registry: Registry; + + public createdAtHash?: IU8a | undefined; + public initialU8aLength?: number | undefined; + public isStorageFallback?: boolean; + + /** + * @description This ensures that operators such as clice, filter, map, etc. return + * new Array instances (without this we need to apply overrides) + */ + static get [Symbol.species] (): typeof Uint8Array { + return Uint8Array; + } + + constructor (registry: Registry, value?: AnyU8a, initialU8aLength?: number) { + super(u8aToU8a(value)); + + this.registry = registry; + this.initialU8aLength = initialU8aLength; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return this.length; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Returns true if the wrapped value contains only ASCII printable characters + */ + public get isAscii (): boolean { + return isAscii(this); + } + + /** + * @description Returns true if the type wraps an empty/default all-0 value + */ + public get isEmpty (): boolean { + return !this.length || isUndefined(this.find((b) => !!b)); + } + + /** + * @description Returns true if the wrapped value contains only utf8 characters + */ + public get isUtf8 (): boolean { + return isUtf8(this); + } + + /** + * @description Returns the number of bits in the value + */ + public bitLength (): number { + return this.length * 8; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + if (other instanceof Uint8Array) { + return (this.length === other.length) && + !this.some((b, index) => b !== other[index]); + } + + return this.eq(u8aToU8a(other as string)); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (_isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.toPrimitive(disableAscii); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): string { + return this.toHex(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): AnyJson { + if (!disableAscii && this.isAscii) { + const text = this.toUtf8(); + + // ensure we didn't end up with multibyte codepoints + if (isAscii(text)) { + return text; + } + } + + return this.toJSON(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'Raw'; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return this.toHex(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return Uint8Array.from(this); + } + + /** + * @description Returns the wrapped data as a UTF-8 string + */ + public toUtf8 (): string { + if (!this.isUtf8) { + throw new Error('The character sequence is not a valid Utf8 string'); + } + + return u8aToString(this); + } +} diff --git a/packages/types-codec/src/native/Set.spec.ts b/packages/types-codec/src/native/Set.spec.ts new file mode 100644 index 0000000..c9e20ec --- /dev/null +++ b/packages/types-codec/src/native/Set.spec.ts @@ -0,0 +1,116 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable sort-keys */ + +import { TypeRegistry } from '@pezkuwi/types'; +import { CodecSet } from '@pezkuwi/types-codec'; +import { stringify } from '@pezkuwi/util'; + +// TODO actually import these from definitions, don't re-define here +const SET_FIELDS = { + header: 0b00000001, + body: 0b00000010, + receipt: 0b00000100, + messageQueue: 0b00001000, + justification: 0b00010000 +}; +const SET_ROLES = { + none: 0b00000000, + full: 0b00000001, + light: 0b00000010, + authority: 0b00000100 +}; +const SET_WITHDRAW = { + TransactionPayment: 0b00000001, + Transfer: 0b00000010, + Reserve: 0b00000100, + Fee: 0b00001000 +}; + +describe('Set', (): void => { + const registry = new TypeRegistry(); + + it('constructs via an string[]', (): void => { + const set = new CodecSet(registry, SET_ROLES, ['full', 'authority']); + + expect(set.isEmpty).toEqual(false); + expect(set.toString()).toEqual( + '[full, authority]' + ); + }); + + it('throws with invalid values', (): void => { + expect( + () => new CodecSet(registry, SET_ROLES, ['full', 'authority', 'invalid']) + ).toThrow(/Invalid key 'invalid'/); + }); + + it('throws with add on invalid', (): void => { + expect( + () => (new CodecSet(registry, SET_ROLES, [])).add('invalid') + ).toThrow(/Invalid key 'invalid'/); + }); + + it('allows construction via number', (): void => { + expect( + (new CodecSet(registry, SET_WITHDRAW, 15)).eq(['TransactionPayment', 'Transfer', 'Reserve', 'Fee']) + ).toBe(true); + }); + + it('does not allow invalid number', (): void => { + expect( + () => new CodecSet(registry, SET_WITHDRAW, 31) + ).toThrow(/Mismatch decoding '31', computed as '15'/); + }); + + it('hash a valid encoding', (): void => { + const set = new CodecSet(registry, SET_FIELDS, ['header', 'body', 'justification']); + + expect(set.toU8a()).toEqual(new Uint8Array([19])); + }); + + describe('utils', (): void => { + const set = new CodecSet(registry, SET_ROLES, ['full', 'authority']); + + it('compares against string array', (): void => { + expect( + set.eq(['authority', 'full']) + ).toBe(true); + }); + + it('compares against number (encoded)', (): void => { + expect( + set.eq(SET_ROLES.full | SET_ROLES.authority) + ).toBe(true); + }); + + it('compares against other sets', (): void => { + expect( + set.eq(new CodecSet(registry, SET_ROLES, ['authority', 'full'])) + ).toBe(true); + }); + + it('returns false on other values', (): void => { + expect( + set.eq('full') + ).toBe(false); + }); + + it('has a sane inspect', (): void => { + expect(set.inspect()).toEqual({ + outer: [new Uint8Array([SET_ROLES.full | SET_ROLES.authority])] + }); + }); + }); + + it('has a sane toRawType representation', (): void => { + expect( + new CodecSet(registry, { a: 1, b: 2, c: 345 }).toRawType() + ).toEqual(stringify({ + _set: { a: 1, b: 2, c: 345 } + })); + }); +}); diff --git a/packages/types-codec/src/native/Set.ts b/packages/types-codec/src/native/Set.ts new file mode 100644 index 0000000..914b43a --- /dev/null +++ b/packages/types-codec/src/native/Set.ts @@ -0,0 +1,269 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { CodecClass, Inspect, ISet, IU8a, Registry } from '../types/index.js'; + +import { BN, bnToBn, bnToU8a, isBn, isNumber, isString, isU8a, isUndefined, objectProperties, stringify, stringPascalCase, u8aToBn, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { compareArray } from '../utils/index.js'; + +type SetValues = Record; + +function encodeSet (setValues: SetValues, values: string[]): BN { + const encoded = new BN(0); + + for (let i = 0, count = values.length; i < count; i++) { + encoded.ior(bnToBn(setValues[values[i]] || 0)); + } + + return encoded; +} + +/** @internal */ +function decodeSetArray (setValues: SetValues, values: string[]): string[] { + const count = values.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + const key = values[i]; + + if (isUndefined(setValues[key])) { + throw new Error(`Set: Invalid key '${key}' passed to Set, allowed ${Object.keys(setValues).join(', ')}`); + } + + result[i] = key; + } + + return result; +} + +/** @internal */ +function decodeSetNumber (setValues: SetValues, _value: BN | number): string[] { + const bn = bnToBn(_value); + const keys = Object.keys(setValues); + const result: string[] = []; + + for (let i = 0, count = keys.length; i < count; i++) { + const key = keys[i]; + + if (bn.and(bnToBn(setValues[key])).eq(bnToBn(setValues[key]))) { + result.push(key); + } + } + + const computed = encodeSet(setValues, result); + + if (!bn.eq(computed)) { + throw new Error(`Set: Mismatch decoding '${bn.toString()}', computed as '${computed.toString()}' with ${result.join(', ')}`); + } + + return result; +} + +/** @internal */ +function decodeSet (setValues: SetValues, value: string[] | Set | Uint8Array | BN | number | string = 0, bitLength: number): string[] { + if (bitLength % 8 !== 0) { + throw new Error(`Expected valid bitLength, power of 8, found ${bitLength}`); + } + + const byteLength = bitLength / 8; + + if (isU8a(value)) { + return value.length === 0 + ? [] + : decodeSetNumber(setValues, u8aToBn(value.subarray(0, byteLength), { isLe: true })); + } else if (isString(value)) { + return decodeSet(setValues, u8aToU8a(value), byteLength); + } else if (value instanceof Set || Array.isArray(value)) { + const input = Array.isArray(value) + ? value + : [...value.values()]; + + return decodeSetArray(setValues, input); + } + + return decodeSetNumber(setValues, value); +} + +/** + * @name Set + * @description + * An Set is an array of string values, represented an an encoded type by + * a bitwise representation of the values. + */ +export class CodecSet extends Set implements ISet { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #allowed: SetValues; + readonly #byteLength: number; + + constructor (registry: Registry, setValues: SetValues, value?: string[] | Set | Uint8Array | BN | number | string, bitLength = 8) { + super(decodeSet(setValues, value, bitLength)); + + this.registry = registry; + this.#allowed = setValues; + this.#byteLength = bitLength / 8; + } + + public static with (values: SetValues, bitLength?: number): CodecClass { + return class extends CodecSet { + static { + const keys = Object.keys(values); + const count = keys.length; + const isKeys = new Array(count); + + for (let i = 0; i < count; i++) { + isKeys[i] = `is${stringPascalCase(keys[i])}`; + } + + objectProperties(this.prototype, isKeys, (_: string, i: number, self: CodecSet) => + self.strings.includes(keys[i]) + ); + } + + constructor (registry: Registry, value?: string[] | Set | Uint8Array | BN | number | string) { + super(registry, values, value, bitLength); + } + }; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return this.#byteLength; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description true is the Set contains no values + */ + public get isEmpty (): boolean { + return this.size === 0; + } + + /** + * @description The actual set values as a string[] + */ + public get strings (): string[] { + return [...super.values()]; + } + + /** + * @description The encoded value for the set members + */ + public get valueEncoded (): BN { + return encodeSet(this.#allowed, this.strings); + } + + /** + * @description adds a value to the Set (extended to allow for validity checking) + */ + public override add = (key: string): this => { + // ^^^ add = () property done to assign this instance's this, otherwise Set.add creates "some" chaos + // we have the isUndefined(this._setValues) in here as well, add is used internally + // in the Set constructor (so it is undefined at this point, and should allow) + if (this.#allowed && isUndefined(this.#allowed[key])) { + throw new Error(`Set: Invalid key '${key}' on add`); + } + + super.add(key); + + return this; + }; + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + if (Array.isArray(other)) { + // we don't actually care about the order, sort the values + return compareArray(this.strings.sort(), other.sort()); + } else if (other instanceof Set) { + return this.eq([...other.values()]); + } else if (isNumber(other) || isBn(other as string)) { + return this.valueEncoded.eq(bnToBn(other as string)); + } + + return false; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + return { + outer: [this.toU8a()] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): string[] { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): string[] { + return this.strings; + } + + /** + * @description The encoded value for the set members + */ + public toNumber (): number { + return this.valueEncoded.toNumber(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (): string[] { + return this.toJSON(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return stringify({ _set: this.#allowed }); + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return `[${this.strings.join(', ')}]`; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public toU8a (_isBare?: boolean): Uint8Array { + return bnToU8a(this.valueEncoded, { + bitLength: this.#byteLength * 8, + isLe: true + }); + } +} diff --git a/packages/types-codec/src/native/Struct.data.ts b/packages/types-codec/src/native/Struct.data.ts new file mode 100644 index 0000000..93355de --- /dev/null +++ b/packages/types-codec/src/native/Struct.data.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export const TEST_A = '0x0000000000048670f76b10bd81bf93b0b420ad46c209d1183202abcdfce1b0e13108ccf4020000000000000000000000000000000000000000000000000000000000000000000088b116afe3b5020000000000000001000000000000000000000000000000420d0300030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060203040506020304050602030405060202'; diff --git a/packages/types-codec/src/native/Struct.spec.ts b/packages/types-codec/src/native/Struct.spec.ts new file mode 100644 index 0000000..c1a17d9 --- /dev/null +++ b/packages/types-codec/src/native/Struct.spec.ts @@ -0,0 +1,411 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable sort-keys */ + +import type { Bool, Option } from '@pezkuwi/types-codec'; +import type { CodecTo } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { Enum, Struct, Text, U32, Vec } from '@pezkuwi/types-codec'; +import { stringify } from '@pezkuwi/util'; + +import { TEST_A } from './Struct.data.js'; + +describe('Struct', (): void => { + const registry = new TypeRegistry(); + + describe('decoding', (): void => { + const testDecode = (type: string, input: any): void => + it(`can decode from ${type}`, (): void => { + const s = new Struct(registry, { + foo: Text, + bar: U32 + }, input); + + expect([...s.keys()]).toEqual(['foo', 'bar']); + expect( + [...s.values()].map((v): string => + v.toString() + ) + ).toEqual(['bazzing', '69']); + }); + + testDecode('array', ['bazzing', 69]); + testDecode('hex', '0x1c62617a7a696e6745000000'); + testDecode('object', { foo: 'bazzing', bar: 69 }); + testDecode('Uint8Array', Uint8Array.from([28, 98, 97, 122, 122, 105, 110, 103, 69, 0, 0, 0])); + testDecode('Struct.with', new (Struct.with({ foo: 'Text', bar: 'U32' }))(registry, { foo: 'bazzing', bar: 69 })); + + it('decodes null/undefined/empty correctly (& equivalent)', (): void => { + const Clazz = Struct.with({ + txt: Text, + u32: U32 + }); + const expected = { txt: '', u32: '0' }; + + expect(new Clazz(registry, {}).toHuman()).toEqual(expected); + expect(new Clazz(registry, null).toHuman()).toEqual(expected); + expect(new Clazz(registry, undefined).toHuman()).toEqual(expected); + }); + + it('decodes with Optionals', (): void => { + const Clazz = Struct.with({ + a: 'Option', + b: 'Option' + }); + + const c = new Clazz(registry, { a: false }) as unknown as { a: Option, b: Option }; + + expect(c.a.isSome).toEqual(true); + expect(c.a.unwrap().isTrue).toEqual(false); + expect(c.b.isSome).toEqual(false); + }); + + it('decodes reusing instantiated inputs', (): void => { + const foo = new Text(registry, 'bar'); + + expect( + (new Struct( + registry, + { foo: Text }, + { foo } + )).get('foo') + ).toBe(foo); + }); + + it('decodes a more complicated type', (): void => { + const s = new Struct(registry, { + foo: Vec.with(Struct.with({ + bar: Text + })) + }, { foo: [{ bar: 1 }, { bar: 2 }] }); + + expect(s.toString()).toBe('{"foo":[{"bar":"1"},{"bar":"2"}]}'); + }); + + it('decodes a previously problematic input', (): void => { + let data; + + try { + data = new Struct(registry, { + a: 'u32', + b: 'H256', + c: 'H256', + swap: Enum.with({ + A: 'u256', + B: 'u256' + }), + d: Vec.with('u8'), + e: 'u8' + }, TEST_A); + } catch (error) { + console.error(error); + + throw error; + } + + expect(data.get('d')).toHaveLength(50000); + }); + + it('decodes from a Map input', (): void => { + const s = new Struct(registry, { + txt: Text, + foo: U32, + bar: U32 + }, new Map([['a', 42], ['txt', 'fubar']])); + + expect(s.toString()).toEqual('{"txt":"fubar","foo":0,"bar":0}'); + }); + + it('decodes from a snake_case input', (): void => { + const input = new Struct(registry, { + snakeCaseA: U32, + snakeCaseB: Text, + other: U32 + }, { snake_case_a: 42, snake_case_b: 'fubar', other: 69 } as any); + + expect(input.toString()).toEqual('{"snakeCaseA":42,"snakeCaseB":"fubar","other":69}'); + }); + + it('throws when it cannot decode', (): void => { + expect( + (): Struct => new ( + Struct.with({ + txt: Text, + u32: U32 + }) + )(registry, 'ABC') + ).toThrow(/Cannot decode value/); + }); + + it('throws a sensical error on incorrect array values passed to structs', (): void => { + expect( + () => new Struct(registry, { + _: 'Vec' + }, [123, 456]) + ).toThrow(/array to object with known keys/); + }); + }); + + describe('encoding', (): void => { + const testEncode = (to: CodecTo, expected: any): void => + it(`can encode ${to}`, (): void => { + const s = new Struct(registry, { + foo: Text, + bar: U32 + }, { foo: 'bazzing', bar: 69 }); + + expect(s[to]()).toEqual(expected); + }); + + testEncode('toHex', '0x1c62617a7a696e6745000000'); + testEncode('toJSON', { foo: 'bazzing', bar: 69 }); + testEncode('toU8a', Uint8Array.from([28, 98, 97, 122, 122, 105, 110, 103, 69, 0, 0, 0])); + testEncode('toString', '{"foo":"bazzing","bar":69}'); + }); + + it('provides a clean toString()', (): void => { + expect( + new ( + Struct.with({ + txt: Text, + u32: U32 + }) + )(registry, { txt: 'foo', u32: 0x123456 }).toString() + ).toEqual('{"txt":"foo","u32":1193046}'); + }); + + it('provides a clean toString() (string types)', (): void => { + expect( + new ( + Struct.with({ + txt: 'Text', + num: 'u32', + cls: U32 + }) + )(registry, { txt: 'foo', num: 0x123456, cls: 123 }).toString() + ).toEqual('{"txt":"foo","num":1193046,"cls":123}'); + }); + + it('exposes the properties on the object', (): void => { + const struct = new ( + Struct.with({ + txt: Text, + u32: U32 + }) + )(registry, { txt: 'foo', u32: 0x123456 }); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call + expect((struct as any).txt.toString()).toEqual('foo'); + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call + expect((struct as any).u32.toNumber()).toEqual(0x123456); + }); + + it('correctly encodes length', (): void => { + expect( + new ( + Struct.with({ + txt: Text, + u32: U32 + }) + )(registry, { foo: 'bazzing', bar: 69 }).encodedLength + ).toEqual(5); + }); + + it('exposes the types', (): void => { + expect( + new Struct(registry, { + foo: Text, + bar: Text, + baz: U32 + }, { + foo: 'foo', + bar: 'bar', + baz: 3 + }).Type + ).toEqual({ + foo: 'Text', + bar: 'Text', + baz: 'u32' + }); + }); + + it('gets the value at a particular index', (): void => { + expect( + new ( + Struct.with({ + txt: Text, + u32: U32 + }) + )(registry, { txt: 'foo', u32: 1234 }) + .getAtIndex(1) + .toString() + ).toEqual('1234'); + }); + + describe('utils', (): void => { + it('compares against other objects', (): void => { + const test = { + foo: 'foo', + bar: 'bar', + baz: 3 + }; + + expect( + new Struct(registry, { + foo: Text, + bar: Text, + baz: U32 + }, test).eq(test) + ).toBe(true); + }); + + it('has a sane toPrimitive', (): void => { + const S = Struct.with({ + name: 'Text', + description: 'Vec', + fooA: 'Bytes', + fooB: 'Bytes', + fooC: Struct.with({ + a: 'u32', + b: 'u128', + c: 'Compact', + d: 'bool' + }) + }); + + expect( + new S(registry, { + name: 'Something', + description: ['One line', 'Another line'], + fooA: 'hello world!', + fooB: '0x123456', + fooC: { + a: 1234, + b: BigInt('1234567890111213141516'), + c: 123456, + d: true + } + }).toPrimitive() + ).toEqual({ + name: 'Something', + description: ['One line', 'Another line'], + fooA: 'hello world!', + fooB: '0x123456', + fooC: { + a: 1234, + b: '1234567890111213141516', + c: 123456, + d: true + } + }); + }); + + it('generates sane toRawType', (): void => { + expect( + new Struct(registry, { + accountId: 'AccountId', + balanceCompact: registry.createClass('Compact'), + blockNumber: registry.createClass('BlockNumber'), + compactNumber: registry.createClass('Compact'), + optionNumber: registry.createClass('Option'), + counter: U32, + vector: Vec.with('AccountId') + }).toRawType() + ).toEqual(stringify({ + accountId: 'AccountId', + balanceCompact: 'Compact', // Override in Uint + blockNumber: 'BlockNumber', + compactNumber: 'Compact', + optionNumber: 'Option', + counter: 'u32', + vector: 'Vec' + })); + }); + + it('generates sane toRawType (via with)', (): void => { + const Type = Struct.with({ + accountId: 'AccountId', + balance: registry.createClass('Balance') + }); + + expect( + new Type(registry).toRawType() + ).toEqual(stringify({ + accountId: 'AccountId', + balance: 'Balance' // Override in Uint + })); + }); + }); + + it('allows toString with large numbers', (): void => { + // replicate https://github.com/pezkuwichain/pezkuwi-api/issues/640 + expect( + new Struct(registry, { + blockNumber: registry.createClass('Option') + }, { blockNumber: '0x0000000010abcdef' }).toString() + ).toEqual('{"blockNumber":279694831}'); + }); + + describe('toU8a', (): void => { + const def: Record = { + foo: 'Bytes', + method: 'Bytes', + bar: 'Option', + baz: 'bool' + }; + const val = { + foo: '0x4269', + method: '0x99', + bar: 1, + baz: true + }; + + it('generates toU8a with undefined', (): void => { + expect( + new Struct(registry, def, val).toU8a() + ).toEqual(new Uint8Array([2 << 2, 0x42, 0x69, 1 << 2, 0x99, 1, 1, 0, 0, 0, 1])); + }); + + it('generates toU8a with true', (): void => { + expect( + new Struct(registry, def, val).toU8a(true) + ).toEqual(new Uint8Array([0x42, 0x69, 0x99, 1, 0, 0, 0, 1])); + }); + + it('generates toU8a with { method: true }', (): void => { + expect( + new Struct(registry, def, val).toU8a({ method: true }) + ).toEqual(new Uint8Array([2 << 2, 0x42, 0x69, 0x99, 1, 1, 0, 0, 0, 1])); + }); + + it('has a sane inspect', (): void => { + expect( + new Struct(registry, def, val).inspect() + ).toEqual({ + inner: [ + { + name: 'foo', + outer: [new Uint8Array([2 << 2]), new Uint8Array([0x42, 0x69])] + }, + { + name: 'method', + outer: [new Uint8Array([1 << 2]), new Uint8Array([0x99])] + }, + { + inner: undefined, + name: 'bar', + outer: [new Uint8Array([1]), new Uint8Array([1, 0, 0, 0])] + }, + { + name: 'baz', + outer: [new Uint8Array([1])] + } + ] + }); + }); + }); +}); diff --git a/packages/types-codec/src/native/Struct.ts b/packages/types-codec/src/native/Struct.ts new file mode 100644 index 0000000..e70f735 --- /dev/null +++ b/packages/types-codec/src/native/Struct.ts @@ -0,0 +1,338 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, BareOpts, Codec, CodecClass, DefinitionSetter, Inspect, IStruct, IU8a, Registry } from '../types/index.js'; + +import { isBoolean, isHex, isObject, isU8a, isUndefined, objectProperties, stringCamelCase, stringify, u8aConcatStrict, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { compareMap, decodeU8aStruct, mapToTypeMap, typesToMap } from '../utils/index.js'; + +type TypesDef = Record>; + +type Definition = [CodecClass[], string[]]; + +function noopSetDefinition (d: Definition): Definition { + return d; +} + +/** @internal */ +function decodeStructFromObject (registry: Registry, [Types, keys]: Definition, value: any, jsonMap: Map): [Iterable<[string, Codec]>, number] { + let jsonObj: Record | undefined; + const typeofArray = Array.isArray(value); + const typeofMap = value instanceof Map; + const count = keys.length; + + if (!typeofArray && !typeofMap && !isObject(value)) { + throw new Error(`Struct: Cannot decode value ${stringify(value)} (typeof ${typeof value}), expected an input object, map or array`); + } else if (typeofArray && value.length !== count) { + throw new Error(`Struct: Unable to map ${stringify(value)} array to object with known keys ${keys.join(', ')}`); + } + + const raw = new Array<[string, Codec]>(count); + + for (let i = 0; i < count; i++) { + const key = keys[i]; + const jsonKey = jsonMap.get(key) || key; + const Type = Types[i]; + let assign: unknown; + + try { + if (typeofArray) { + assign = value[i] as unknown; + } else if (typeofMap) { + assign = jsonKey && value.get(jsonKey); + } else { + assign = jsonKey && Object.prototype.hasOwnProperty.call(value, jsonKey) ? value[jsonKey] as unknown : undefined; + + if (isUndefined(assign)) { + if (isUndefined(jsonObj)) { + const entries = Object.entries(value); + + jsonObj = {}; + + for (let e = 0, ecount = entries.length; e < ecount; e++) { + if (Object.prototype.hasOwnProperty.call(value, entries[e][0])) { + jsonObj[stringCamelCase(entries[e][0])] = entries[e][1]; + } + } + } + + assign = jsonKey && Object.prototype.hasOwnProperty.call(jsonObj, jsonKey) ? jsonObj[jsonKey] : undefined; + } + } + + raw[i] = [ + key, + assign instanceof Type + ? assign + : new Type(registry, assign) + ]; + } catch (error) { + let type = Type.name; + + try { + type = new Type(registry).toRawType(); + } catch { + // ignore + } + + throw new Error(`Struct: failed on ${jsonKey}: ${type}:: ${(error as Error).message}`); + } + } + + return [raw, 0]; +} + +/** + * @name Struct + * @description + * A Struct defines an Object with key-value pairs - where the values are Codec values. It removes + * a lot of repetition from the actual coding, define a structure type, pass it the key/Codec + * values in the constructor and it manages the decoding. It is important that the constructor + * values matches 100% to the order in th Rust code, i.e. don't go crazy and make it alphabetical, + * it needs to decoded in the specific defined order. + * @noInheritDoc + */ +export class Struct< + // The actual Class structure, i.e. key -> Class + S extends TypesDef = TypesDef, + // input values, mapped by key can be anything (construction) + V extends { [K in keyof S]: any } = { [K in keyof S]: any }, + // type names, mapped by key, name of Class in S + E extends { [K in keyof S]: string } = { [K in keyof S]: string }> extends Map implements IStruct { + readonly registry: Registry; + + public createdAtHash?: IU8a | undefined; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + readonly #jsonMap: Map; + readonly #Types: Definition; + + constructor (registry: Registry, Types: S, value?: V | Map | unknown[] | HexString | null, jsonMap = new Map(), { definition, setDefinition = noopSetDefinition }: DefinitionSetter = {}) { + const typeMap = definition || setDefinition(mapToTypeMap(registry, Types)); + const [decoded, decodedLength] = isU8a(value) || isHex(value) + ? decodeU8aStruct(registry, new Array<[string, Codec]>(typeMap[0].length), u8aToU8a(value), typeMap) + : value instanceof Struct + ? [value as Iterable<[string, Codec]>, 0] + : decodeStructFromObject(registry, typeMap, value || {}, jsonMap); + + super(decoded); + + this.initialU8aLength = decodedLength; + this.registry = registry; + this.#jsonMap = jsonMap; + this.#Types = typeMap; + } + + public static with (Types: S, jsonMap?: Map): CodecClass> { + let definition: Definition | undefined; + + // eslint-disable-next-line no-return-assign + const setDefinition = (d: Definition) => + definition = d; + + return class extends Struct { + static { + const keys = Object.keys(Types); + + objectProperties(this.prototype, keys, (k: string, _: number, self: Struct) => + self.get(k) + ); + } + + constructor (registry: Registry, value?: unknown) { + super(registry, Types, value as HexString, jsonMap, { definition, setDefinition }); + } + }; + } + + /** + * @description The available keys for this struct + */ + public get defKeys (): string[] { + return this.#Types[1]; + } + + /** + * @description Checks if the value is an empty value '{}' + */ + public get isEmpty (): boolean { + return [...this.keys()].length === 0; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + let total = 0; + + for (const v of this.values()) { + total += v.encodedLength; + } + + return total; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Returns the Type description of the structure + */ + public get Type (): E { + const result: Record = {}; + const [Types, keys] = this.#Types; + + for (let i = 0, count = keys.length; i < count; i++) { + result[keys[i]] = new Types[i](this.registry).toRawType(); + } + + return result as E; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return compareMap(this, other); + } + + /** + * @description Returns a specific names entry in the structure + * @param key The name of the entry to retrieve + */ + public override get (key: keyof S): Codec | undefined { + return super.get(key); + } + + /** + * @description Returns the values of a member at a specific index (Rather use get(name) for performance) + */ + public getAtIndex (index: number): Codec { + return this.toArray()[index]; + } + + /** + * @description Returns the a types value by name + */ + public getT (key: string): T { + return super.get(key) as unknown as T; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (isBare?: BareOpts): Inspect { + const inner: Inspect[] = []; + + for (const [k, v] of this.entries()) { + inner.push({ + ...v.inspect( + !isBare || isBoolean(isBare) + ? isBare + : isBare[k] + ), + name: stringCamelCase(k as string) + }); + } + + return { + inner + }; + } + + /** + * @description Converts the Object to an standard JavaScript Array + */ + public toArray (): Codec[] { + return [...this.values()]; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (isExtended?: boolean, disableAscii?: boolean): Record { + const json: Record = {}; + + for (const [k, v] of this.entries()) { + json[k as string] = v.toHuman(isExtended, disableAscii); + } + + return json; + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): Record { + const json: Record = {}; + + for (const [k, v] of this.entries()) { + // Here we pull out the entry against the JSON mapping (if supplied) + // since this representation goes over RPC and needs to be correct + json[(this.#jsonMap.get(k) || k) as string] = v.toJSON(); + } + + return json; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (disableAscii?: boolean): Record { + const json: Record = {}; + + for (const [k, v] of this.entries()) { + json[k as string] = v.toPrimitive(disableAscii); + } + + return json; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return stringify(typesToMap(this.registry, this.#Types)); + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return stringify(this.toJSON()); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: BareOpts): Uint8Array { + const encoded: Uint8Array[] = []; + + for (const [k, v] of this.entries()) { + encoded.push( + v.toU8a( + !isBare || isBoolean(isBare) + ? isBare + : isBare[k] + ) + ); + } + + return u8aConcatStrict(encoded); + } +} diff --git a/packages/types-codec/src/native/Text.spec.ts b/packages/types-codec/src/native/Text.spec.ts new file mode 100644 index 0000000..de3ff99 --- /dev/null +++ b/packages/types-codec/src/native/Text.spec.ts @@ -0,0 +1,85 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecTo } from '@pezkuwi/types-codec/types'; + +import { TypeRegistry } from '@pezkuwi/types'; +import { Bytes, Raw, Text } from '@pezkuwi/types-codec'; +import { stringToU8a } from '@pezkuwi/util'; + +import { perf } from '../test/performance.js'; + +describe('Text', (): void => { + const registry = new TypeRegistry(); + + describe('decode', (): void => { + const testDecode = (type: string, input: null | string | Uint8Array | { toString: () => string }, expected: string, toFn: 'toString' | 'toHex' | 'toHuman' = 'toString'): void => + it(`can decode from ${type}`, (): void => { + expect(new Text(registry, input)[toFn]()).toBe(expected); + }); + + testDecode('string', 'foo', 'foo'); + testDecode('Text', new Text(registry, 'foo'), 'foo'); + testDecode('Uint8Array', Uint8Array.from([12, 102, 111, 111]), 'foo'); + testDecode('Raw', new Raw(registry, Uint8Array.from([102, 111, 111])), 'foo'); // no length + testDecode('Raw', new Raw(registry, Uint8Array.from([102, 111, 111])), 'foo', 'toHuman'); // no length + testDecode('Bytes', new Bytes(registry, Uint8Array.from([12, 102, 111, 111])), 'foo'); // length-aware encoding + testDecode('Bytes', new Bytes(registry, Uint8Array.from([12, 102, 111, 111])), 'foo', 'toHuman'); // length-aware encoding + testDecode('object with `toString()`', { toString (): string { + return 'foo'; + } }, 'foo'); + testDecode('hex input value', new Text(registry, '0x12345678'), '0x12345678', 'toHex'); + testDecode('null', null, ''); + }); + + describe('encode', (): void => { + const testEncode = (to: CodecTo, expected: string | Uint8Array): void => + it(`can encode ${to}`, (): void => { + expect(new Text(registry, 'foo')[to]()).toEqual(expected); + }); + + testEncode('toHex', '0x666f6f'); + testEncode('toString', 'foo'); + testEncode('toU8a', Uint8Array.from([12, 102, 111, 111])); + }); + + describe('utils', (): void => { + it('compares actual string values', (): void => { + expect(new Text(registry, '123').eq('123')).toBe(true); + }); + + it('compares actual String values', (): void => { + expect(new Text(registry, 'XYX').eq(String('XYX'))).toBe(true); + }); + + it('compares actual non-string values (fails)', (): void => { + expect(new Text(registry, '123').eq(123)).toBe(false); + }); + + it('calulates the length & encoded length correctly for ASCII', (): void => { + const test = new Text(registry, 'abcde'); + + expect(test.encodedLength).toEqual(6); + expect(test).toHaveLength(5); + }); + + it('calulates the length & encoded length correctly for non-ASCII', (): void => { + const test = new Text(registry, '中文'); + + expect(test.encodedLength).toEqual(7); + expect(test).toHaveLength(2); + }); + + it('has a sane inspect', (): void => { + expect( + new Text(registry, 'abcde').inspect() + ).toEqual({ + outer: [new Uint8Array([5 << 2]), stringToU8a('abcde')] + }); + }); + }); + + perf('Text', 100_000, [[new Uint8Array([6 << 2, 102, 111, 111, 102, 111, 111])]], (v: Uint8Array) => new Text(registry, v)); +}); diff --git a/packages/types-codec/src/native/Text.ts b/packages/types-codec/src/native/Text.ts new file mode 100644 index 0000000..0700588 --- /dev/null +++ b/packages/types-codec/src/native/Text.ts @@ -0,0 +1,184 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyString, AnyU8a, Inspect, IText, IU8a, Registry } from '../types/index.js'; + +import { compactAddLength, compactFromU8aLim, compactToU8a, hexToU8a, isHex, isString, isU8a, stringToU8a, u8aToHex, u8aToString } from '@pezkuwi/util'; + +import { Raw } from './Raw.js'; + +const MAX_LENGTH = 128 * 1024; + +/** @internal */ +function decodeText (value?: null | AnyString | AnyU8a | { toString: () => string }): [string, number] { + if (isU8a(value)) { + if (!value.length) { + return ['', 0]; + } + + // for Raw, the internal buffer does not have an internal length + // (the same applies in e.g. Bytes, where length is added at encoding-time) + if (value instanceof Raw) { + return [u8aToString(value), 0]; + } + + const [offset, length] = compactFromU8aLim(value); + const total = offset + length; + + if (length > MAX_LENGTH) { + throw new Error(`Text: length ${length.toString()} exceeds ${MAX_LENGTH}`); + } else if (total > value.length) { + throw new Error(`Text: required length less than remainder, expected at least ${total}, found ${value.length}`); + } + + return [u8aToString(value.subarray(offset, total)), total]; + } else if (isHex(value)) { + return [u8aToString(hexToU8a(value)), 0]; + } + + return [value ? value.toString() : '', 0]; +} + +/** + * @name Text + * @description + * This is a string wrapper, along with the length. It is used both for strings as well + * as items such as documentation. It simply extends the standard JS `String` built-in + * object, inheriting all methods exposed from `String`. + * @noInheritDoc + */ +export class Text extends String implements IText { + readonly registry: Registry; + + public createdAtHash?: IU8a; + public initialU8aLength?: number; + public isStorageFallback?: boolean; + + #override: string | null = null; + + constructor (registry: Registry, value?: null | AnyString | AnyU8a | { toString: () => string }) { + const [str, decodedLength] = decodeText(value); + + super(str); + + this.registry = registry; + this.initialU8aLength = decodedLength; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description returns a hash of the contents + */ + public get hash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description Checks if the value is an empty value + */ + public get isEmpty (): boolean { + return this.length === 0; + } + + /** + * @description The length of the value + */ + public override get length (): number { + // only included here since we ignore inherited docs + return super.length; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public eq (other?: unknown): boolean { + return isString(other) + ? this.toString() === other.toString() + : false; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public inspect (): Inspect { + const value = stringToU8a(super.toString()); + + return { + outer: value.length + ? [compactToU8a(value.length), value] + : [compactToU8a(value.length)] + }; + } + + /** + * @description Set an override value for this + */ + public setOverride (override: string): void { + this.#override = override; + } + + /** + * @description Returns a hex string representation of the value + */ + public toHex (): HexString { + // like with Vec, when we are encoding to hex, we don't actually add + // the length prefix (it is already implied by the actual string length) + return u8aToHex(this.toU8a(true)); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public toHuman (): string { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public toJSON (): string { + return this.toString(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public toPrimitive (): string { + return this.toJSON(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'Text'; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return this.#override || super.toString(); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public toU8a (isBare?: boolean): Uint8Array { + // NOTE Here we use the super toString (we are not taking overrides into account, + // rather encoding the original value the string was constructed with) + const encoded = stringToU8a(super.toString()); + + return isBare + ? encoded + : compactAddLength(encoded); + } +} diff --git a/packages/types-codec/src/native/index.ts b/packages/types-codec/src/native/index.ts new file mode 100644 index 0000000..4a2e6d9 --- /dev/null +++ b/packages/types-codec/src/native/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { bool as Bool, bool } from './Bool.js'; +export { CodecDate, CodecDate as Date } from './Date.js'; +export { Float } from './Float.js'; +export { Json } from './Json.js'; +export { Raw } from './Raw.js'; +export { CodecSet, CodecSet as Set } from './Set.js'; +export { Struct } from './Struct.js'; +export { Text } from './Text.js'; diff --git a/packages/types-codec/src/packageDetect.ts b/packages/types-codec/src/packageDetect.ts new file mode 100644 index 0000000..d9c9ab1 --- /dev/null +++ b/packages/types-codec/src/packageDetect.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2026 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, []); diff --git a/packages/types-codec/src/packageInfo.ts b/packages/types-codec/src/packageInfo.ts new file mode 100644 index 0000000..906e561 --- /dev/null +++ b/packages/types-codec/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/types-codec', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/types-codec/src/primitive/F32.ts b/packages/types-codec/src/primitive/F32.ts new file mode 100644 index 0000000..fcc942c --- /dev/null +++ b/packages/types-codec/src/primitive/F32.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Float } from '../native/Float.js'; + +/** + * @name f32 + * @description + * A 32-bit float + */ +export class f32 extends Float.with(32) { + // NOTE without this, we cannot properly determine extensions + readonly __FloatType = 'f32'; +} diff --git a/packages/types-codec/src/primitive/F64.ts b/packages/types-codec/src/primitive/F64.ts new file mode 100644 index 0000000..890f0e7 --- /dev/null +++ b/packages/types-codec/src/primitive/F64.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Float } from '../native/Float.js'; + +/** + * @name f64 + * @description + * A 64-bit float + */ +export class f64 extends Float.with(64) { + // NOTE without this, we cannot properly determine extensions + readonly __FloatType = 'f64'; +} diff --git a/packages/types-codec/src/primitive/I128.ts b/packages/types-codec/src/primitive/I128.ts new file mode 100644 index 0000000..24832ef --- /dev/null +++ b/packages/types-codec/src/primitive/I128.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Int } from '../base/Int.js'; + +/** + * @name i128 + * @description + * A 128-bit signed integer + */ +export class i128 extends Int.with(128) { + // NOTE without this, we cannot properly determine extensions + readonly __IntType = 'i128'; +} diff --git a/packages/types-codec/src/primitive/I16.ts b/packages/types-codec/src/primitive/I16.ts new file mode 100644 index 0000000..cc10f76 --- /dev/null +++ b/packages/types-codec/src/primitive/I16.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Int } from '../base/Int.js'; + +/** + * @name i16 + * @description + * A 16-bit signed integer + */ +export class i16 extends Int.with(16) { + // NOTE without this, we cannot properly determine extensions + readonly __IntType = 'i16'; +} diff --git a/packages/types-codec/src/primitive/I256.ts b/packages/types-codec/src/primitive/I256.ts new file mode 100644 index 0000000..16cf83c --- /dev/null +++ b/packages/types-codec/src/primitive/I256.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Int } from '../base/Int.js'; + +/** + * @name i256 + * @description + * A 256-bit signed integer + */ +export class i256 extends Int.with(256) { + // NOTE without this, we cannot properly determine extensions + readonly __IntType = 'i256'; +} diff --git a/packages/types-codec/src/primitive/I32.ts b/packages/types-codec/src/primitive/I32.ts new file mode 100644 index 0000000..6e43826 --- /dev/null +++ b/packages/types-codec/src/primitive/I32.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Int } from '../base/Int.js'; + +/** + * @name i32 + * @description + * A 32-bit signed integer + */ +export class i32 extends Int.with(32) { + // NOTE without this, we cannot properly determine extensions + readonly __IntType = 'i32'; +} diff --git a/packages/types-codec/src/primitive/I64.ts b/packages/types-codec/src/primitive/I64.ts new file mode 100644 index 0000000..6a3f5d3 --- /dev/null +++ b/packages/types-codec/src/primitive/I64.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Int } from '../base/Int.js'; + +/** + * @name i64 + * @description + * A 64-bit signed integer + */ +export class i64 extends Int.with(64) { + // NOTE without this, we cannot properly determine extensions + readonly __IntType = 'i64'; +} diff --git a/packages/types-codec/src/primitive/I8.ts b/packages/types-codec/src/primitive/I8.ts new file mode 100644 index 0000000..be1e623 --- /dev/null +++ b/packages/types-codec/src/primitive/I8.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { Int } from '../base/Int.js'; + +/** + * @name i8 + * @description + * An 8-bit signed integer + */ +export class i8 extends Int.with(8) { + // NOTE without this, we cannot properly determine extensions + readonly __IntType = 'i8'; +} diff --git a/packages/types-codec/src/primitive/ISize.ts b/packages/types-codec/src/primitive/ISize.ts new file mode 100644 index 0000000..8b0fe05 --- /dev/null +++ b/packages/types-codec/src/primitive/ISize.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '../types/index.js'; + +import { i32 } from './I32.js'; + +/** + * @name ISize + * @description + * A System default signed number, typically used in RPC to report non-consensus + * data. It is a wrapper for [[I32]] as a WASM default (as generated by Rust bindings). + * It is not to be used, since it creates consensus mismatches. + */ +export class isize extends i32 { + constructor (registry: Registry, value?: unknown) { + super(registry, value); + + throw new Error('The `isize` type should not be used. Since it is platform-specific, it creates incompatibilities between native (generally i64) and WASM (always i32) code. Use one of the `i32` or `i64` types explicitly.'); + } +} diff --git a/packages/types-codec/src/primitive/U128.ts b/packages/types-codec/src/primitive/U128.ts new file mode 100644 index 0000000..c8349c5 --- /dev/null +++ b/packages/types-codec/src/primitive/U128.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { UInt } from '../base/UInt.js'; + +/** + * @name u128 + * @description + * A 128-bit unsigned integer + */ +export class u128 extends UInt.with(128) { + // NOTE without this, we cannot properly determine extensions + readonly __UIntType = 'u128'; +} diff --git a/packages/types-codec/src/primitive/U16.ts b/packages/types-codec/src/primitive/U16.ts new file mode 100644 index 0000000..5a37cbe --- /dev/null +++ b/packages/types-codec/src/primitive/U16.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { UInt } from '../base/UInt.js'; + +/** + * @name u16 + * @description + * A 16-bit unsigned integer + */ +export class u16 extends UInt.with(16) { + // NOTE without this, we cannot properly determine extensions + readonly __UIntType = 'u16'; +} diff --git a/packages/types-codec/src/primitive/U256.ts b/packages/types-codec/src/primitive/U256.ts new file mode 100644 index 0000000..10b5662 --- /dev/null +++ b/packages/types-codec/src/primitive/U256.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { UInt } from '../base/UInt.js'; + +/** + * @name u256 + * @description + * A 256-bit unsigned integer + */ +export class u256 extends UInt.with(256) { + // NOTE without this, we cannot properly determine extensions + readonly __UIntType = 'u256'; +} diff --git a/packages/types-codec/src/primitive/U32.ts b/packages/types-codec/src/primitive/U32.ts new file mode 100644 index 0000000..4cd9f45 --- /dev/null +++ b/packages/types-codec/src/primitive/U32.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { UInt } from '../base/UInt.js'; + +/** + * @name u32 + * @description + * A 32-bit unsigned integer + */ +export class u32 extends UInt.with(32) { + // NOTE without this, we cannot properly determine extensions + readonly __UIntType = 'u32'; +} diff --git a/packages/types-codec/src/primitive/U64.ts b/packages/types-codec/src/primitive/U64.ts new file mode 100644 index 0000000..f1cbfb4 --- /dev/null +++ b/packages/types-codec/src/primitive/U64.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { UInt } from '../base/UInt.js'; + +/** + * @name u64 + * @description + * A 64-bit unsigned integer + */ +export class u64 extends UInt.with(64) { + // NOTE without this, we cannot properly determine extensions + readonly __UIntType = 'u64'; +} diff --git a/packages/types-codec/src/primitive/U8.ts b/packages/types-codec/src/primitive/U8.ts new file mode 100644 index 0000000..5f8e712 --- /dev/null +++ b/packages/types-codec/src/primitive/U8.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { UInt } from '../base/UInt.js'; + +/** + * @name u8 + * @description + * An 8-bit unsigned integer + */ +export class u8 extends UInt.with(8) { + // NOTE without this, we cannot properly determine extensions + readonly __UIntType = 'u8'; +} diff --git a/packages/types-codec/src/primitive/USize.ts b/packages/types-codec/src/primitive/USize.ts new file mode 100644 index 0000000..e57c3e7 --- /dev/null +++ b/packages/types-codec/src/primitive/USize.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '../types/index.js'; + +import { u32 } from './U32.js'; + +/** + * @name USize + * @description + * A System default unsigned number, typically used in RPC to report non-consensus + * data. It is a wrapper for [[U32]] as a WASM default (as generated by Rust bindings). + * It is not to be used, since it created consensus mismatches. + */ +export class usize extends u32 { + constructor (registry: Registry, value?: unknown) { + super(registry, value); + + throw new Error('The `usize` type should not be used. Since it is platform-specific, it creates incompatibilities between native (generally u64) and WASM (always u32) code. Use one of the `u32` or `u64` types explicitly.'); + } +} diff --git a/packages/types-codec/src/primitive/index.ts b/packages/types-codec/src/primitive/index.ts new file mode 100644 index 0000000..98c487a --- /dev/null +++ b/packages/types-codec/src/primitive/index.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { f32 as F32, f32 } from './F32.js'; +export { f64 as F64, f64 } from './F64.js'; +export { i8 as I8, i8 } from './I8.js'; +export { i16 as I16, i16 } from './I16.js'; +export { i32 as I32, i32 } from './I32.js'; +export { i64 as I64, i64 } from './I64.js'; +export { i128 as I128, i128 } from './I128.js'; +export { i256 as I256, i256 } from './I256.js'; +export { isize as ISize, isize } from './ISize.js'; +export { u8 as U8, u8 } from './U8.js'; +export { u16 as U16, u16 } from './U16.js'; +export { u32 as U32, u32 } from './U32.js'; +export { u64 as U64, u64 } from './U64.js'; +export { u128 as U128, u128 } from './U128.js'; +export { u256 as U256, u256 } from './U256.js'; +export { usize as USize, usize } from './USize.js'; diff --git a/packages/types-codec/src/test/performance.ts b/packages/types-codec/src/test/performance.ts new file mode 100644 index 0000000..e3bc534 --- /dev/null +++ b/packages/types-codec/src/test/performance.ts @@ -0,0 +1,61 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* global it */ + +// Shamelessly copied from @pezkuwi/util/test + +import { formatDecimal, formatNumber } from '@pezkuwi/util'; + +// eslint-disable-next-line @typescript-eslint/no-explicit-any +type ExecFn = (...params: any[]) => unknown; + +const NUM_PAD = 16; +const PRE_PAD = 32; + +function loop (count: number, inputs: unknown[][], exec: ExecFn): [number, unknown[]] { + const start = performance.now(); + const inputsCount = inputs.length; + const results = new Array(inputsCount); + + for (let i = 0; i < count; i++) { + const result = exec(...inputs[i % inputsCount]); + + if (i < inputsCount) { + results[i] = result; + } + } + + return [performance.now() - start, results]; +} + +export function formatFixed (value: number): string { + const [a, b] = value.toFixed(2).split('.'); + + return [formatDecimal(a), b].join('.'); +} + +export function formatOps (count: number, time: number): string { + const micro = (time * 1000) / count; + const ops = 1_000_000 / micro; + + return ` +${formatFixed(ops).padStart(NUM_PAD + PRE_PAD + 1)} ops/s +${formatFixed(micro).padStart(NUM_PAD + PRE_PAD + 1)} μs/op`; +} + +export function perf (name: string, count: number, inputs: unknown[][], exec: ExecFn): void { + const test = process.env['GITHUB_REPOSITORY'] + ? it.skip + : it; + + test(`performance: ${name}`, (): void => { + const [time] = loop(count, inputs, exec); + + console.error(` +performance run for ${name} completed with ${formatNumber(count)} iterations. + +${`${name}:`.padStart(PRE_PAD)} ${time.toFixed(2).padStart(NUM_PAD)} ms${formatOps(count, time)} +`); + }); +} diff --git a/packages/types-codec/src/types/codec.ts b/packages/types-codec/src/types/codec.ts new file mode 100644 index 0000000..6136d3f --- /dev/null +++ b/packages/types-codec/src/types/codec.ts @@ -0,0 +1,140 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { AnyJson, ToString } from './helpers.js'; +import type { IU8a } from './interfaces.js'; +import type { Registry } from './registry.js'; + +export type BareOpts = boolean | Record; + +export interface Inspect { + inner?: Inspect[] | undefined; + name?: string; + outer?: Uint8Array[]; +} + +/** + * @name Codec + * @description + * The base Codec interface. All types implement the interface provided here. + * Additionally implementors can add their own specific interfaces and helpers + * with getters and functions. The Codec Base is however required for operating + * as an encoding/decoding layer + */ +export interface Codec { + /** + * @description + * The block at which this value was retrieved/created (set to non-empty when + * retrieved from storage) + */ + createdAtHash?: IU8a | undefined; + + /** + * @description + * The length of the initial encoded value (Only available when the value was + * constructed from a Uint8Array input) + */ + initialU8aLength?: number | undefined; + + /** + * @description + * (internal usage) Indicates that the value was created via a fallback. This + * is used when with data specified in the metadata when the storage entry is + * empty. + * + * With metadata fallback values (available as defaults on most storage entries) + * any empty storage item should erturn the default. (This is the same as the + * implementation on the Bizinikiwi runtime) + */ + isStorageFallback?: boolean; + + /** + * @description The length of the value when encoded as a Uint8Array + */ + readonly encodedLength: number; + + /** + * @description Returns a hash of the value + */ + readonly hash: IU8a; + + /** + * @description Checks if the value is an empty value + */ + readonly isEmpty: boolean; + + /** + * @description The registry associated with this object + */ + readonly registry: Registry; + + /** + * @description Compares the value of the input to see if there is a match + */ + eq (other?: unknown): boolean; + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + inspect (isBare?: BareOpts): Inspect; + + /** + * @description Returns a hex string representation of the value. isLe returns a LE (number-only) representation + */ + toHex (isLe?: boolean): HexString; + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + * @param isExtended When set, for some (e.g. call) it can add more info, e.g. metadata documentation. (Generally not needed in all cases, but can be useful in Events, Calls, ...) + * @param disableAscii When set, for some (e.g. `Raw` types) it will disable converting the value to ascii. + */ + toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson; + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + toJSON (): AnyJson; + + /** + * @description Converts the value in a best-fit primitive form + * @param disableAscii + */ + toPrimitive (disableAscii?: boolean): AnyJson; + + /** + * @description Returns the base runtime type name for this instance + */ + toRawType (): string; + + /** + * @description Returns the string representation of the value + */ + toString (): string; + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal use, only available on + * some Codec types, specifically those that add encodings such as length of indexes) + */ + toU8a (isBare?: BareOpts): Uint8Array; +} + +export interface CodecClass { + /** + * @description An internal fallback type (previous generation) if encoding fails + */ + readonly __fallbackType?: string; + + new(registry: Registry, ...args: A): T; +} + +export interface CodecObject extends Codec { + readonly $: T; + + valueOf (): T; +} + +export type CodecTo = 'toHex' | 'toJSON' | 'toPrimitive' | 'toString' | 'toU8a'; + +export type ArgsDef = Record; diff --git a/packages/types-codec/src/types/helpers.ts b/packages/types-codec/src/types/helpers.ts new file mode 100644 index 0000000..46cc8af --- /dev/null +++ b/packages/types-codec/src/types/helpers.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { Codec } from './codec.js'; + +export type AnyJson = string | number | boolean | null | undefined | AnyJson[] | { [index: string]: AnyJson }; + +export type AnyFunction = (...args: any[]) => any; + +export type AnyNumber = BN | bigint | Uint8Array | number | string; + +// eslint-disable-next-line @typescript-eslint/ban-types +export type AnyFloat = Number | number | Uint8Array | string; + +// eslint-disable-next-line @typescript-eslint/ban-types +export type AnyString = String | string; + +// eslint-disable-next-line @typescript-eslint/ban-types +export type AnyBool = Boolean | boolean; + +export type AnyTuple = Codec[]; + +export type AnyU8a = Uint8Array | number[] | string; + +export type UIntBitLength = 8 | 16 | 32 | 64 | 128 | 256; + +// The 520 here is a weird one - it is explicitly for a [u8; 65] as found as a EcdsaSignature, +// and 264 here is explicitly for a [u8; 33] as found as EcdsaPublic key. +// Likewise 160 is for [u8; 20], which is also a H160, i.e. an Ethereum address. Both these are +// as a result of the Pezkuwi claims module. (Technically we don't need the 520 in here) +export type U8aBitLength = 8 | 16 | 32 | 64 | 128 | 160 | 256 | 264 | 512 | 520 | 1024 | 2048; + +export type AnyTupleValue = Exclude | HexString | (Codec | AnyU8a | AnyNumber | AnyString | undefined | null)[]; + +export interface ToString { + toString: () => string; +} + +export interface ToBn { + toBn: () => BN; +} + +export interface DefinitionSetter { + definition?: T | undefined; + setDefinition?: (d: T) => T; +} + +export type LookupString = `Lookup${number}`; diff --git a/packages/types-codec/src/types/index.ts b/packages/types-codec/src/types/index.ts new file mode 100644 index 0000000..f6d05ee --- /dev/null +++ b/packages/types-codec/src/types/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './codec.js'; +export * from './helpers.js'; +export * from './interfaces.js'; +export * from './registry.js'; diff --git a/packages/types-codec/src/types/interfaces.ts b/packages/types-codec/src/types/interfaces.ts new file mode 100644 index 0000000..984a9c9 --- /dev/null +++ b/packages/types-codec/src/types/interfaces.ts @@ -0,0 +1,98 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// import type { SignOptions } from '@pezkuwi/keyring/types'; +import type { BN } from '@pezkuwi/util'; +import type { ArgsDef, Codec } from './codec.js'; +import type { AnyTuple } from './helpers.js'; + +export interface ICompact extends Codec { + toBigInt (): bigint; + toBn (): BN; + toNumber (): number; + unwrap (): T; +} + +export interface IEnum extends Codec { + readonly defIndexes: number[]; + readonly defKeys: string[]; + readonly index: number; + readonly isBasic: boolean; + readonly type: string; + readonly value: Codec; + + toNumber (): number; +} + +export interface IMap extends Map, Codec {} + +export interface INumber extends Codec { + bitLength (): number; + toBigInt (): bigint; + toBn (): BN; + toNumber (): number; + toPrimitive (disableAscii?: boolean): string | number; +} + +export interface IFloat extends Codec { + toNumber (): number; +} + +export interface IOption extends Codec { + readonly isNone: boolean; + readonly isSome: boolean; + readonly value: Codec; + + unwrap (): T; + unwrapOr (other: O): T | O; + unwrapOrDefault (): T; +} + +export interface IResult extends IEnum { + readonly asErr: E; + readonly asOk: O; + readonly isErr: boolean; + readonly isOk: boolean; +} + +export interface ISet extends Set, Codec { + readonly strings: string[]; +} + +export interface IStruct extends Map, Codec { + readonly defKeys: string[]; + + getAtIndex (index: number): Codec + toArray (): Codec[]; +} + +// eslint-disable-next-line @typescript-eslint/ban-types +export interface IText extends String, Codec { + // nothing additional +} + +export type ITuple = T & Codec; + +export interface IU8a extends Uint8Array, Codec { + readonly isAscii: boolean; + readonly isUtf8: boolean + + bitLength (): number; + toHuman (isExtended?: boolean, disableAscii?: boolean): any; + toJSON (): any; + toUtf8 (): string; +} + +export interface IVec extends Array, Codec { + toArray (): T[]; +} + +export interface IMethod
extends Codec { + readonly args: A; + readonly argsDef: ArgsDef; + readonly callIndex: Uint8Array; + readonly data: Uint8Array; + readonly meta: M; + + is: (tx: IMethod) => tx is IMethod; +} diff --git a/packages/types-codec/src/types/registry.ts b/packages/types-codec/src/types/registry.ts new file mode 100644 index 0000000..81c221d --- /dev/null +++ b/packages/types-codec/src/types/registry.ts @@ -0,0 +1,86 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BN } from '@pezkuwi/util'; +import type { Codec, CodecClass } from './codec.js'; +import type { AnyTuple, LookupString } from './helpers.js'; +import type { ICompact, IEnum, IMap, IMethod, INumber, IOption, IResult, ISet, IStruct, ITuple, IU8a, IVec } from './interfaces.js'; + +export type OnlyCodec = + K extends keyof Types + ? Types[K] + : T extends ICompact | IEnum | IMap | IMethod | INumber | IOption | IResult | ISet | IStruct | ITuple | IU8a | IVec + ? T + : T extends Codec + ? T + : never; + +export interface RegistryError { + args: string[]; + docs: string[]; + index: number; + // compat + method: string; + name: string; + section: string; +} + +export type RegistryTypes = + Record | + { _enum: string[] | Record | Record } | + { _set: Record }>; + +export interface CodecCreateOptions { + blockHash?: Uint8Array | string | null | undefined; + isFallback?: boolean; + isOptional?: boolean; + isPedantic?: boolean; +} + +export interface CallBase extends IMethod { + readonly method: string; + readonly section: string; + + toJSON: () => any; +} + +export interface CallFunction extends CallBase { + (...args: any[]): IMethod; +} + +export interface Registry { + readonly chainDecimals: number[]; + readonly chainIsEthereum: boolean; + readonly chainSS58: number | undefined; + readonly chainTokens: string[]; + + createdAtHash?: IU8a; + + findMetaCall (callIndex: Uint8Array): CallFunction; + findMetaError (errorIndex: Uint8Array | { error: BN, index: BN } | { error: BN | Uint8Array, index: BN }): RegistryError; + findMetaEvent (eventIndex: Uint8Array): CodecClass; + + isLookupType (value: string): value is LookupString; + createLookupType (lookupId: ICompact | number): LookupString; + createClassUnsafe (type: K): CodecClass; + createTypeUnsafe (type: K, params: unknown[], options?: CodecCreateOptions): T; + + // get is for Compat, overridden in derived classes + get (...params: never[]): any; + + getClassName (clazz: CodecClass): string | undefined; + getOrThrow (name: K, msg?: string): CodecClass; + getOrUnknown (name: K): CodecClass; + getTransactionExtensionVersion (): number; + getSignedExtensionExtra (): Record; + getSignedExtensionTypes (): Record; + + hasClass (name: string): boolean; + hasDef (name: string): boolean; + hasType (name: string): boolean; + hash (data: Uint8Array): IU8a; + register (type: CodecClass | RegistryTypes): void; + register (name: string, type: CodecClass): void; + register (arg1: string | CodecClass | RegistryTypes, arg2?: CodecClass): void; + setMetadata (metadata: unknown, signedExtensions?: string[], userExtensions?: unknown, noInitWarn?: boolean): void; +} diff --git a/packages/types-codec/src/utils/compareArray.ts b/packages/types-codec/src/utils/compareArray.ts new file mode 100644 index 0000000..1ac4f58 --- /dev/null +++ b/packages/types-codec/src/utils/compareArray.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { isUndefined } from '@pezkuwi/util'; + +import { hasEq } from './util.js'; + +// NOTE These are used internally and when comparing objects, we expect that +// when the second is an Codec[] that the first has to be as well +export function compareArray (a: unknown[], b?: unknown): boolean { + if (Array.isArray(b)) { + return (a.length === b.length) && isUndefined( + a.find((v, index): boolean => + hasEq(v) + ? !v.eq(b[index]) + : v !== b[index] + ) + ); + } + + return false; +} diff --git a/packages/types-codec/src/utils/compareMap.ts b/packages/types-codec/src/utils/compareMap.ts new file mode 100644 index 0000000..f36fdd6 --- /dev/null +++ b/packages/types-codec/src/utils/compareMap.ts @@ -0,0 +1,40 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { isObject, isUndefined } from '@pezkuwi/util'; + +import { hasEq } from './util.js'; + +function hasMismatch (a?: unknown, b?: unknown): boolean { + return isUndefined(a) || ( + hasEq(a) + ? !a.eq(b) + : a !== b + ); +} + +function notEntry (value: unknown): boolean { + return !Array.isArray(value) || value.length !== 2; +} + +function compareMapArray (a: Map, b: [unknown, unknown][]): boolean { + // equal number of entries and each entry in the array should match + return (a.size === b.length) && !b.some((e) => + notEntry(e) || + hasMismatch(a.get(e[0]), e[1]) + ); +} + +// NOTE These are used internally and when comparing objects, we expect that +// when the second is an Map that the first has to be as well +export function compareMap (a: Map, b?: unknown): boolean { + if (Array.isArray(b)) { + return compareMapArray(a, b as [unknown, unknown][]); + } else if (b instanceof Map) { + return compareMapArray(a, [...b.entries()]); + } else if (isObject(b)) { + return compareMapArray(a, Object.entries(b)); + } + + return false; +} diff --git a/packages/types-codec/src/utils/compareSet.ts b/packages/types-codec/src/utils/compareSet.ts new file mode 100644 index 0000000..e55d355 --- /dev/null +++ b/packages/types-codec/src/utils/compareSet.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { isObject } from '@pezkuwi/util'; + +function compareSetArray (a: Set, b: any[]): boolean { + // equal number of entries and each entry in the array should match + return (a.size === b.length) && !b.some((e) => !a.has(e)); +} + +// NOTE These are used internally and when comparing objects, we expect that +// when the second is an Set that the first has to be as well +export function compareSet (a: Set, b?: unknown): boolean { + if (Array.isArray(b)) { + return compareSetArray(a, b); + } else if (b instanceof Set) { + return compareSetArray(a, [...b.values()]); + } else if (isObject(b)) { + return compareSetArray(a, Object.values(b)); + } + + return false; +} diff --git a/packages/types-codec/src/utils/decodeU8a.ts b/packages/types-codec/src/utils/decodeU8a.ts new file mode 100644 index 0000000..4b62a27 --- /dev/null +++ b/packages/types-codec/src/utils/decodeU8a.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, Registry } from '../types/index.js'; + +import { u8aToHex } from '@pezkuwi/util'; + +const MAX_DEPTH = 1024; + +/** @internal */ +function isComplexType (Type: CodecClass): boolean { + const typeName = Type.name?.toLowerCase() || ''; + + return ['enum', 'hashmap', 'linkage', 'null', 'option', 'range', 'rangeinclusive', 'result', 'struct', 'tuple', 'vec', 'vecfixed'].includes(typeName); +} + +/** @internal */ +function formatFailure (registry: Registry, fn: 'decodeU8a' | 'decodeU8aStruct' | 'decodeU8aVec', _result: unknown[], { message }: Error, u8a: Uint8Array, i: number, count: number, Type: CodecClass, key?: string): string { + let type = ''; + + try { + type = `: ${new Type(registry).toRawType()}`; + } catch { + // ignore + } + + // This is extra debugging info (we most-probably want this in in some way, shape or form, + // but at this point not quite sure how to include and format it (it can be quite massive) + // console.error(JSON.stringify(result, null, 2)); + + return `${fn}: failed at ${u8aToHex(u8a.subarray(0, 16))}…${key ? ` on ${key}` : ''} (index ${i + 1}/${count})${type}:: ${message}`; +} + +/** + * @internal + * + * Given an u8a, and an array of Type constructors, decode the u8a against the + * types, and return an array of decoded values. + * + * @param u8a - The u8a to decode. + * @param result - The result array (will be returned with values pushed) + * @param types - The array of CodecClass to decode the U8a against. + */ +export function decodeU8a (registry: Registry, result: T[], u8a: Uint8Array, [Types, keys]: [CodecClass[], string[]]): [T[], number] { + const count = result.length; + let offset = 0; + let i = 0; + + try { + while (i < count) { + const value = new Types[i](registry, u8a.subarray(offset)); + + offset += value.initialU8aLength || value.encodedLength; + result[i] = value; + i++; + } + } catch (error) { + throw new Error(formatFailure(registry, 'decodeU8a', result, error as Error, u8a.subarray(offset), i, count, Types[i], keys[i])); + } + + return [result, offset]; +} + +/** + * @internal + * + * Split from decodeU8a since this is specialized to zip returns ... while we duplicate, this + * is all on the hot-path, so it is not great, however there is (some) method behind the madness + */ +export function decodeU8aStruct (registry: Registry, result: [string, Codec][], u8a: Uint8Array, [Types, keys]: [CodecClass[], string[]]): [[string, Codec][], number] { + const count = result.length; + let offset = 0; + let i = 0; + + if (count > MAX_DEPTH && isComplexType(Types[i])) { + throw new Error(`decodeU8aStruct: Maximum depth exceeded, received ${count} elements, limit ${MAX_DEPTH}`); + } + + try { + while (i < count) { + const value = new Types[i](registry, u8a.subarray(offset)); + + offset += value.initialU8aLength || value.encodedLength; + result[i] = [keys[i], value]; + i++; + } + } catch (error) { + throw new Error(formatFailure(registry, 'decodeU8aStruct', result, error as Error, u8a.subarray(offset), i, count, Types[i], keys[i])); + } + + return [result, offset]; +} + +/** + * @internal + * + * Split from decodeU8a since this is specialized to 1 instance ... while we duplicate, this + * is all on the hot-path, so it is not great, however there is (some) method behind the madness + */ +export function decodeU8aVec (registry: Registry, result: unknown[], u8a: Uint8Array, startAt: number, Type: CodecClass): [number, number] { + const count = result.length; + + if (count > MAX_DEPTH && isComplexType(Type)) { + throw new Error(`decodeU8aVec: Maximum depth exceeded, received ${count} elements, limit ${MAX_DEPTH}`); + } + + let offset = startAt; + let i = 0; + + try { + while (i < count) { + const value = new Type(registry, u8a.subarray(offset)); + + offset += value.initialU8aLength || value.encodedLength; + result[i] = value; + i++; + } + } catch (error) { + throw new Error(formatFailure(registry, 'decodeU8aVec', result, error as Error, u8a.subarray(offset), i, count, Type)); + } + + return [offset, offset - startAt]; +} diff --git a/packages/types-codec/src/utils/index.ts b/packages/types-codec/src/utils/index.ts new file mode 100644 index 0000000..ad13c00 --- /dev/null +++ b/packages/types-codec/src/utils/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { compareArray } from './compareArray.js'; +export { compareMap } from './compareMap.js'; +export { compareSet } from './compareSet.js'; +export { decodeU8a, decodeU8aStruct, decodeU8aVec } from './decodeU8a.js'; +export { sanitize } from './sanitize.js'; +export { sortAsc, sortMap, sortSet } from './sortValues.js'; +export { mapToTypeMap, typesToConstructors, typeToConstructor } from './toConstructors.js'; +export { typesToMap } from './typesToMap.js'; diff --git a/packages/types-codec/src/utils/sanitize.spec.ts b/packages/types-codec/src/utils/sanitize.spec.ts new file mode 100644 index 0000000..638566d --- /dev/null +++ b/packages/types-codec/src/utils/sanitize.spec.ts @@ -0,0 +1,89 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { alias, flattenSingleTuple, removeColons, removeExtensions } from './sanitize.js'; + +describe('sanitize', (): void => { + describe('alias', (): void => { + const fn = alias('String', 'Text'); + + it('replaces all occurrences for types', (): void => { + expect(fn('(String,Address,MasterString,String)')).toEqual( + '(Text,Address,MasterString,Text)' + ); + }); + + it('replaces actual types, but leaves struct names', (): void => { + expect(fn('{"system":"String","versionString":"String"}')).toEqual( + '{"system":"Text","versionString":"Text"}' + ); + }); + + it('handles the preceding correctly', (): void => { + // NOTE This type doesn't make sense + expect(fn('String String (String,[String;32],String)"String')).toEqual( + 'Text Text (Text,[Text;32],Text)"Text' + ); + }); + + it('handles embedded Vec/Tuples', (): void => { + const ann = alias('Announcement', 'ProxyAnnouncement'); + + expect(ann('(Vec,BalanceOf)')).toEqual( + '(Vec,BalanceOf)' + ); + }); + }); + + describe('removeColons', (): void => { + const fn = removeColons(); + + it('removes preceding ::Text -> Text', (): void => { + expect(fn('::Text')).toEqual('Text'); + }); + + it('removes middle voting::TallyType -> TallyType', (): void => { + expect(fn('voting::TallyType')).toEqual('TallyType'); + }); + + it('removes on embedded values (one)', (): void => { + expect(fn('(T::AccountId, SpanIndex)')).toEqual('(AccountId, SpanIndex)'); + }); + + it('removes on embedded values (all)', (): void => { + expect(fn('(T::AccountId, slashing::SpanIndex)')).toEqual('(AccountId, SpanIndex)'); + }); + }); + + describe('bounded', (): void => { + const fn = removeExtensions('Bounded', true); + + it('correctly cleans up bounded values', (): void => { + expect(fn('BoundedVec')).toEqual('Vec'); + }); + + it('correctly cleans up nested bounded values', (): void => { + expect( + fn('BoundedBTreeMap, 2>, BoundedBTreeSet, 4>, 5>') + ).toEqual('BTreeMap>,BTreeSet>>'); + }); + + it('cleans up values with trailing commas', (): void => { + expect( + flattenSingleTuple()( + fn('(BoundedVec, T::BlockNumber>, T::MaxPending,>,BalanceOf,)') + ) + ).toEqual('(Vec,T::BlockNumber>>,BalanceOf)'); + }); + }); + + describe('weak', (): void => { + const fn = removeExtensions('Weak', false); + + it('correctly cleans up weak values', (): void => { + expect(fn('WeakVec')).toEqual('Vec'); + }); + }); +}); diff --git a/packages/types-codec/src/utils/sanitize.ts b/packages/types-codec/src/utils/sanitize.ts new file mode 100644 index 0000000..3d0a30f --- /dev/null +++ b/packages/types-codec/src/utils/sanitize.ts @@ -0,0 +1,290 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyString } from '../types/index.js'; + +type Mapper = (value: string) => string; + +const BOUNDED = ['BTreeMap', 'BTreeSet', 'HashMap', 'Vec']; +const ALLOWED_BOXES = BOUNDED.concat(['Compact', 'DoNotConstruct', 'Int', 'Linkage', 'Range', 'RangeInclusive', 'Result', 'Opaque', 'Option', 'UInt', 'WrapperKeepOpaque', 'WrapperOpaque']); +const BOX_PRECEDING = ['<', '(', '[', '"', ',', ' ']; // start of vec, tuple, fixed array, part of struct def or in tuple + +const mappings: Mapper[] = [ + // alias ::Inherent -> InherentOfflineReport + alias('::Inherent', 'InherentOfflineReport', false), + alias('VecDeque<', 'Vec<', false), + // + cleanupCompact(), + // Change BoundedVec to Vec + removeExtensions('Bounded', true), + // Change WeakVec to Vec + removeExtensions('Weak', false), + // Remove all the trait prefixes + removeTraits(), + // remove PairOf -> (T, T) + removePairOf(), + // remove boxing, `Box` -> `Proposal` + removeWrap('Box<'), + // remove generics, `MisbehaviorReport` -> `MisbehaviorReport` + removeGenerics(), + // alias String -> Text (compat with jsonrpc methods) + alias('String', 'Text'), + // alias Vec -> Bytes + alias('Vec', 'Bytes'), + alias('&\\[u8\\]', 'Bytes'), + alias("&'static\\[u8\\]", 'Bytes'), + // alias RawAddress -> Address + alias('RawAddress', 'Address'), + // lookups, mapped to Address/AccountId as appropriate in runtime + alias('Lookup::Source', 'LookupSource'), + alias('Lookup::Target', 'LookupTarget'), + // HACK duplication between contracts & primitives, however contracts prefixed with exec + alias('exec::StorageKey', 'ContractStorageKey'), + // flattens tuples with one value, `(AccountId)` -> `AccountId` + flattenSingleTuple(), + // converts ::Type to Type, >::Proposal -> Proposal + removeColons(), + // remove all trailing spaces - this should always be the last + trim() +]; + +// given a string, trim it +export function trim (): Mapper { + return (value: string): string => + value.trim(); +} + +// given a starting index, find the closing > +export function findClosing (value: string, start: number): number { + let depth = 0; + + for (let i = start, count = value.length; i < count; i++) { + if (value[i] === '>') { + if (!depth) { + return i; + } + + depth--; + } else if (value[i] === '<') { + depth++; + } + } + + throw new Error(`Unable to find closing matching <> on '${value}' (start ${start})`); +} + +export function alias (src: string, dest: string, withChecks = true): Mapper { + const from = new RegExp(`(^${src}|${BOX_PRECEDING.map((box) => `\\${box}${src}`).join('|')})`, 'g'); + + const to = (src: string): string => { + from.lastIndex = 0; + + return withChecks && BOX_PRECEDING.includes(src[0]) + ? `${src[0]}${dest}` + : dest; + }; + + return (value: string): string => + value.replace(from, to); +} + +export function cleanupCompact (): Mapper { + return (value: string): string => { + if (value.includes(' as HasCompact')) { + for (let i = 0, count = value.length; i < count; i++) { + if (value[i] === '<') { + const end = findClosing(value, i + 1) - 14; + + if (value.substring(end, end + 14) === ' as HasCompact') { + value = `Compact<${value.substring(i + 1, end)}>`; + } + } + } + } + + return value; + }; +} + +export function flattenSingleTuple (): Mapper { + const from1 = /,\)/g; + const from2 = /\(([^,]+)\)/; + + return (value: string) => { + from1.lastIndex = 0; + + return value + // tuples may have trailing commas, e.g. (u32, BlockNumber, ) + .replace(from1, ')') + // change (u32) -> u32 + .replace(from2, '$1'); + }; +} + +function replaceTagWith (value: string, matcher: string, replacer: (inner: string) => string): string { + let index = -1; + + while (true) { + index = value.indexOf(matcher, index + 1); + + if (index === -1) { + return value; + } + + const start = index + matcher.length; + const end = findClosing(value, start); + + value = `${value.substring(0, index)}${replacer(value.substring(start, end))}${value.substring(end + 1)}`; + } +} + +// remove the Bounded* or Weak* wrappers +export function removeExtensions (type: string, isSized: boolean): Mapper { + return (value: string): string => { + for (let i = 0, count = BOUNDED.length; i < count; i++) { + const tag = BOUNDED[i]; + + value = replaceTagWith(value, `${type}${tag}<`, (v: string): string => { + const parts = v + .split(',') + .map((s) => s.trim()) + .filter((s) => s); + + if (isSized) { + parts.pop(); + } + + return `${tag}<${parts.join(',')}>`; + }); + } + + return value; + }; +} + +export function removeColons (): Mapper { + return (value: string): string => { + let index = 0; + + while (index !== -1) { + index = value.indexOf('::'); + + if (index === 0) { + value = value.substring(2); + } else if (index !== -1) { + let start = index; + + while (start !== -1 && !BOX_PRECEDING.includes(value[start])) { + start--; + } + + value = `${value.substring(0, start + 1)}${value.substring(index + 2)}`; + } + } + + return value; + }; +} + +export function removeGenerics (): Mapper { + return (value: string): string => { + for (let i = 0, count = value.length; i < count; i++) { + if (value[i] === '<') { + // check against the allowed wrappers, be it Vec<..>, Option<...> ... + const box = ALLOWED_BOXES.find((box): boolean => { + const start = i - box.length; + + return ( + ( + start >= 0 && + value.substring(start, i) === box + ) && ( + // make sure it is stand-alone, i.e. don't catch ElectionResult<...> as Result<...> + start === 0 || + BOX_PRECEDING.includes(value[start - 1]) + ) + ); + }); + + // we have not found anything, unwrap generic innards + if (!box) { + const end = findClosing(value, i + 1); + + value = `${value.substring(0, i)}${value.substring(end + 1)}`; + } + } + } + + return value; + }; +} + +// remove the PairOf wrappers +export function removePairOf (): Mapper { + const replacer = (v: string) => `(${v},${v})`; + + return (value: string) => + replaceTagWith(value, 'PairOf<', replacer); +} + +// remove the type traits +export function removeTraits (): Mapper { + const from1 = /\s/g; + const from2 = /(T|Self)::/g; + const from3 = /<(T|Self)asTrait>::/g; + const from4 = /::/g; + const from5 = //g; + const from6 = /::Type/g; + + return (value: string): string => { + from1.lastIndex = 0; + from2.lastIndex = 0; + from3.lastIndex = 0; + from4.lastIndex = 0; + from5.lastIndex = 0; + from6.lastIndex = 0; + + return value + // remove all whitespaces + .replace(from1, '') + // anything `T::` to end up as `` + .replace(from2, '') + // replace `::` (whitespaces were removed above) + .replace(from3, '') + // replace `::` (whitespaces were removed above) + .replace(from4, '') + // replace + .replace(from5, 'Lookup') + // replace `<...>::Type` + .replace(from6, ''); + }; +} + +// remove wrapping values, i.e. Box -> Proposal +export function removeWrap (check: string): Mapper { + const replacer = (v: string) => v; + + return (value: string) => + replaceTagWith(value, check, replacer); +} + +const sanitizeMap = new Map(); + +export function sanitize (value: AnyString): string { + const startValue = value.toString(); + const memoized = sanitizeMap.get(startValue); + + if (memoized) { + return memoized; + } + + let result = startValue; + + for (let i = 0, count = mappings.length; i < count; i++) { + result = mappings[i](result); + } + + sanitizeMap.set(startValue, result); + + return result; +} diff --git a/packages/types-codec/src/utils/sortValues.ts b/packages/types-codec/src/utils/sortValues.ts new file mode 100644 index 0000000..81b0bed --- /dev/null +++ b/packages/types-codec/src/utils/sortValues.ts @@ -0,0 +1,103 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { Enum } from '../base/Enum.js'; +import type { Option } from '../base/Option.js'; +import type { Codec } from '../types/index.js'; + +import { bnToBn, isBigInt, isBn, isBoolean, isCodec, isNumber, stringify } from '@pezkuwi/util'; + +type SortArg = Codec | Codec[] | number[] | BN | bigint | number | Uint8Array; + +/** @internal **/ +function isArrayLike (arg: SortArg): arg is Uint8Array | Codec[] | number[] { + return arg instanceof Uint8Array || Array.isArray(arg); +} + +/** @internal **/ +function isEnum (arg: SortArg): arg is Enum { + return isCodec(arg) && isNumber((arg as Enum).index) && isCodec((arg as Enum).value); +} + +/** @internal **/ +function isOption (arg: SortArg): arg is Option { + return isCodec(arg) && isBoolean((arg as Option).isSome) && isCodec((arg as Option).value); +} + +/** @internal */ +function isNumberLike (arg: SortArg): arg is BN | bigint | number { + return isNumber(arg) || isBn(arg) || isBigInt(arg); +} + +/** @internal */ +function sortArray (a: Uint8Array | Codec[] | number[], b: Uint8Array | Codec[] | number[]): number { + // Vec, Tuple, Bytes etc. + let sortRes = 0; + const minLen = Math.min(a.length, b.length); + + for (let i = 0; i < minLen; ++i) { + sortRes = sortAsc(a[i], b[i]); + + if (sortRes !== 0) { + return sortRes; + } + } + + return a.length - b.length; +} + +/** @internal */ +function checkForDuplicates (container: string, seen: Set, arg: SortArg): boolean { + // Convert the value to hex. + if (isCodec(arg)) { + const hex = arg.toHex(); + + // Check if we have seen the value. + if (seen.has(hex)) { + // Duplicates are not allowed. + throw new Error(`Duplicate value in ${container}: ${stringify(arg)}`); + } + + seen.add(hex); + } + + return true; +} + +/** +* Sort keys/values of BTreeSet/BTreeMap in ascending order for encoding compatibility with Rust's BTreeSet/BTreeMap +* (https://doc.rust-lang.org/stable/std/collections/struct.BTreeSet.html) +* (https://doc.rust-lang.org/stable/std/collections/struct.BTreeMap.html) +*/ +export function sortAsc (a: V, b: V): number { + if (isNumberLike(a) && isNumberLike(b)) { + return bnToBn(a).cmp(bnToBn(b)); + } else if (a instanceof Map && b instanceof Map) { + return sortAsc(Array.from(a.values()), Array.from(b.values())); + } else if (isEnum(a) && isEnum(b)) { + return sortAsc(a.index, b.index) || sortAsc(a.value, b.value); + } else if (isOption(a) && isOption(b)) { + return sortAsc(a.isNone ? 0 : 1, b.isNone ? 0 : 1) || sortAsc(a.value, b.value); + } else if (isArrayLike(a) && isArrayLike(b)) { + return sortArray(a, b); + } else if (isCodec(a) && isCodec(b)) { + // Text, Bool etc. + return sortAsc(a.toU8a(true), b.toU8a(true)); + } + + throw new Error(`Attempting to sort unrecognized values: ${stringify(a)} (typeof ${typeof a}) <-> ${stringify(b)} (typeof ${typeof b})`); +} + +export function sortSet (set: Set): Set { + const seen = new Set(); + + return new Set(Array.from(set).filter((value) => checkForDuplicates('BTreeSet', seen, value)).sort(sortAsc)); +} + +export function sortMap (map: Map): Map { + const seen = new Set(); + + return new Map(Array.from(map.entries()).filter(([key]) => checkForDuplicates('BTreeMap', seen, key)).sort(([keyA], [keyB]) => sortAsc(keyA, keyB))); +} diff --git a/packages/types-codec/src/utils/toConstructors.ts b/packages/types-codec/src/utils/toConstructors.ts new file mode 100644 index 0000000..9e41c43 --- /dev/null +++ b/packages/types-codec/src/utils/toConstructors.ts @@ -0,0 +1,46 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, Registry } from '../types/index.js'; + +/** + * @internal + * From a type string or class, return the associated type class + */ +export function typeToConstructor (registry: Registry, type: string | CodecClass): CodecClass { + return typeof type === 'function' + ? type + : registry.createClassUnsafe(type); +} + +/** + * @internal + * Takes an input array of types and returns the associated classes for it +*/ +export function typesToConstructors (registry: Registry, types: (string | CodecClass)[]): CodecClass[] { + const count = types.length; + const result = new Array>(count); + + for (let i = 0; i < count; i++) { + result[i] = typeToConstructor(registry, types[i]); + } + + return result; +} + +/** + * @internal + * Takes an input map of the form `{ [string]: string | CodecClass }` and returns a map of `{ [string]: CodecClass }` + */ +export function mapToTypeMap (registry: Registry, input: Record): [CodecClass[], string[]] { + const entries = Object.entries(input); + const count = entries.length; + const output: [CodecClass[], string[]] = [new Array(count), new Array(count)]; + + for (let i = 0; i < count; i++) { + output[1][i] = entries[i][0]; + output[0][i] = typeToConstructor(registry, entries[i][1]); + } + + return output; +} diff --git a/packages/types-codec/src/utils/typesToMap.ts b/packages/types-codec/src/utils/typesToMap.ts new file mode 100644 index 0000000..b1db8b2 --- /dev/null +++ b/packages/types-codec/src/utils/typesToMap.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { CodecClass, Registry } from '../types/index.js'; + +export function typesToMap (registry: Registry, [Types, keys]: [CodecClass[], string[]]): Record { + const result: Record = {}; + + for (let i = 0, count = keys.length; i < count; i++) { + result[keys[i]] = registry.getClassName(Types[i]) || new Types[i](registry).toRawType(); + } + + return result; +} diff --git a/packages/types-codec/src/utils/util.ts b/packages/types-codec/src/utils/util.ts new file mode 100644 index 0000000..16b1cb9 --- /dev/null +++ b/packages/types-codec/src/utils/util.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { isFunction } from '@pezkuwi/util'; + +export function hasEq (o: unknown): o is { eq: (other: unknown) => boolean } { + return isFunction((o as { eq: unknown }).eq); +} diff --git a/packages/types-codec/tsconfig.build.json b/packages/types-codec/tsconfig.build.json new file mode 100644 index 0000000..a1324a6 --- /dev/null +++ b/packages/types-codec/tsconfig.build.json @@ -0,0 +1,16 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/*.data.ts", + "**/checkTypes.manual.ts", + "**/mod.ts", + "**/*.spec.ts", + "**/test/*" + ], + "references": [] +} diff --git a/packages/types-codec/tsconfig.spec.json b/packages/types-codec/tsconfig.spec.json new file mode 100644 index 0000000..8897ab6 --- /dev/null +++ b/packages/types-codec/tsconfig.spec.json @@ -0,0 +1,21 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/*.data.ts", + "**/checkTypes.manual.ts", + "**/*.spec.ts", + "**/test/*" + ], + "references": [ + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" } + ] +} diff --git a/packages/types-create/README.md b/packages/types-create/README.md new file mode 100644 index 0000000..5be7981 --- /dev/null +++ b/packages/types-create/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/types-create + +Base type-creation functionality. diff --git a/packages/types-create/package.json b/packages/types-create/package.json new file mode 100644 index 0000000..b87409c --- /dev/null +++ b/packages/types-create/package.json @@ -0,0 +1,31 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Type creator helpers", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/types-create#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/types-create", + "repository": { + "directory": "packages/types-create", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/types": "16.5.4" + } +} diff --git a/packages/types-create/src/bundle.ts b/packages/types-create/src/bundle.ts new file mode 100644 index 0000000..b7b0e37 --- /dev/null +++ b/packages/types-create/src/bundle.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { packageInfo } from './packageInfo.js'; +export { TypeDefInfo } from './types/index.js'; + +// all starred +export * from './exports.js'; diff --git a/packages/types-create/src/create/class.ts b/packages/types-create/src/create/class.ts new file mode 100644 index 0000000..2cc1c07 --- /dev/null +++ b/packages/types-create/src/create/class.ts @@ -0,0 +1,257 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, LookupString, Registry, U8aBitLength, UIntBitLength } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '../types/index.js'; + +import { BTreeMap, BTreeSet, Bytes, CodecSet, Compact, DoNotConstruct, Enum, HashMap, Int, Null, Option, Range, RangeInclusive, Result, Struct, Tuple, U8aFixed, UInt, Vec, VecFixed, WrapperKeepOpaque, WrapperOpaque } from '@pezkuwi/types-codec'; +import { isNumber, stringify } from '@pezkuwi/util'; + +import { TypeDefInfo } from '../types/index.js'; +import { getTypeDef } from '../util/getTypeDef.js'; + +function getTypeDefType ({ lookupName, type }: TypeDef): string { + return lookupName || type; +} + +function getSubDefArray (value: TypeDef): TypeDef[] { + if (!Array.isArray(value.sub)) { + throw new Error(`Expected subtype as TypeDef[] in ${stringify(value)}`); + } + + return value.sub; +} + +function getSubDef (value: TypeDef): TypeDef { + if (!value.sub || Array.isArray(value.sub)) { + throw new Error(`Expected subtype as TypeDef in ${stringify(value)}`); + } + + return value.sub; +} + +function getSubType (value: TypeDef): string { + return getTypeDefType(getSubDef(value)); +} + +// create a maps of type string CodecClasss from the input +function getTypeClassMap (value: TypeDef): Record { + const subs = getSubDefArray(value); + const map: Record = {}; + + for (let i = 0, count = subs.length; i < count; i++) { + const sub = subs[i]; + + if (!sub.name) { + throw new Error(`No name found in definition ${stringify(sub)}`); + } + + map[sub.name] = getTypeDefType(sub); + } + + return map; +} + +// create an array of type string CodecClasss from the input +function getTypeClassArray (value: TypeDef): string[] { + return getSubDefArray(value).map(getTypeDefType); +} + +function createInt (Clazz: typeof Int | typeof UInt, { displayName, length }: TypeDef): CodecClass { + if (!isNumber(length)) { + throw new Error(`Expected bitLength information for ${displayName || Clazz.constructor.name}`); + } + + return Clazz.with(length as UIntBitLength, displayName); +} + +function createHashMap (Clazz: typeof BTreeMap | typeof HashMap, value: TypeDef): CodecClass { + const [keyType, valueType] = getTypeClassArray(value); + + return Clazz.with(keyType, valueType); +} + +function createWithSub (Clazz: { with: (t: string) => CodecClass }, value: TypeDef): CodecClass { + return Clazz.with(getSubType(value)); +} + +const infoMapping: Record CodecClass> = { + [TypeDefInfo.BTreeMap]: (_registry: Registry, value: TypeDef): CodecClass => + createHashMap(BTreeMap, value), + + [TypeDefInfo.BTreeSet]: (_registry: Registry, value: TypeDef): CodecClass => + createWithSub(BTreeSet, value), + + [TypeDefInfo.Compact]: (_registry: Registry, value: TypeDef): CodecClass => + createWithSub(Compact, value), + + [TypeDefInfo.DoNotConstruct]: (_registry: Registry, value: TypeDef): CodecClass => + DoNotConstruct.with(value.displayName || value.type), + + [TypeDefInfo.Enum]: (_registry: Registry, value: TypeDef): CodecClass => { + const subs = getSubDefArray(value); + + return Enum.with( + subs.every(({ type }) => type === 'Null') + ? subs.reduce>((out, { index, name }, count) => { + if (!name) { + throw new Error('No name found in sub definition'); + } + + out[name] = index || count; + + return out; + }, {}) + : getTypeClassMap(value) + ); + }, + + [TypeDefInfo.HashMap]: (_registry: Registry, value: TypeDef): CodecClass => + createHashMap(HashMap, value), + + [TypeDefInfo.Int]: (_registry: Registry, value: TypeDef): CodecClass => + createInt(Int, value), + + // We have circular deps between Linkage & Struct + [TypeDefInfo.Linkage]: (_registry: Registry, value: TypeDef): CodecClass => { + const type = `Option<${getSubType(value)}>`; + // eslint-disable-next-line sort-keys + const Clazz = Struct.with({ previous: type, next: type } as any); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access + Clazz.prototype.toRawType = function (): string { + // eslint-disable-next-line @typescript-eslint/restrict-template-expressions,@typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call + return `Linkage<${this.next.toRawType(true)}>`; + }; + + return Clazz; + }, + + [TypeDefInfo.Null]: (_registry: Registry, _value: TypeDef): CodecClass => + Null, + + [TypeDefInfo.Option]: (_registry: Registry, value: TypeDef): CodecClass => { + if (!value.sub || Array.isArray(value.sub)) { + throw new Error('Expected type information for Option'); + } + + // NOTE This is opt-in (unhandled), not by default + // if (value.sub.type === 'bool') { + // return OptionBool; + // } + + return createWithSub(Option, value); + }, + + [TypeDefInfo.Plain]: (registry: Registry, value: TypeDef): CodecClass => + registry.getOrUnknown(value.type), + + [TypeDefInfo.Range]: (_registry: Registry, value: TypeDef): CodecClass => + createWithSub(Range, value), + + [TypeDefInfo.RangeInclusive]: (_registry: Registry, value: TypeDef): CodecClass => + createWithSub(RangeInclusive, value), + + [TypeDefInfo.Result]: (_registry: Registry, value: TypeDef): CodecClass => { + const [Ok, Err] = getTypeClassArray(value); + + // eslint-disable-next-line @typescript-eslint/no-use-before-define + return Result.with({ Err, Ok }); + }, + + [TypeDefInfo.Set]: (_registry: Registry, value: TypeDef): CodecClass => + CodecSet.with( + getSubDefArray(value).reduce>((result, { index, name }) => { + if (!name || !isNumber(index)) { + throw new Error('No name found in sub definition'); + } + + result[name] = index; + + return result; + }, {}), + value.length + ), + + [TypeDefInfo.Si]: (registry: Registry, value: TypeDef): CodecClass => + getTypeClass(registry, registry.lookup.getTypeDef(value.type as LookupString)), + + [TypeDefInfo.Struct]: (_registry: Registry, value: TypeDef): CodecClass => + Struct.with(getTypeClassMap(value), value.alias), + + [TypeDefInfo.Tuple]: (_registry: Registry, value: TypeDef): CodecClass => + Tuple.with(getTypeClassArray(value)), + + [TypeDefInfo.UInt]: (_registry: Registry, value: TypeDef): CodecClass => + createInt(UInt, value), + + [TypeDefInfo.Vec]: (_registry: Registry, { sub }: TypeDef): CodecClass => { + if (!sub || Array.isArray(sub)) { + throw new Error('Expected type information for vector'); + } + + return ( + sub.type === 'u8' + ? Bytes + : Vec.with(getTypeDefType(sub)) + ); + }, + + [TypeDefInfo.VecFixed]: (_registry: Registry, { displayName, length, sub }: TypeDef): CodecClass => { + if (!isNumber(length) || !sub || Array.isArray(sub)) { + throw new Error('Expected length & type information for fixed vector'); + } + + return ( + sub.type === 'u8' + ? U8aFixed.with((length * 8) as U8aBitLength, displayName) + : VecFixed.with(getTypeDefType(sub), length) + ); + }, + + [TypeDefInfo.WrapperKeepOpaque]: (_registry: Registry, value: TypeDef): CodecClass => + createWithSub(WrapperKeepOpaque, value), + + [TypeDefInfo.WrapperOpaque]: (_registry: Registry, value: TypeDef): CodecClass => + createWithSub(WrapperOpaque, value) +}; + +export function constructTypeClass (registry: Registry, typeDef: TypeDef): CodecClass { + try { + const Type = infoMapping[typeDef.info](registry, typeDef); + + if (!Type) { + throw new Error('No class created'); + } + + // don't clobber any existing + if (!Type.__fallbackType && typeDef.fallbackType) { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore ...this is the only place we we actually assign this... + Type.__fallbackType = typeDef.fallbackType; + } + + return Type as CodecClass; + } catch (error) { + throw new Error(`Unable to construct class from ${stringify(typeDef)}: ${(error as Error).message}`); + } +} + +// Returns the type Class for construction +export function getTypeClass (registry: Registry, typeDef: TypeDef): CodecClass { + return registry.getUnsafe(typeDef.type, false, typeDef) as unknown as CodecClass; +} + +export function createClassUnsafe (registry: Registry, type: K): CodecClass { + return ( + // just retrieve via name, no creation via typeDef + registry.getUnsafe(type) || + // we don't have an existing type, create the class via typeDef + getTypeClass( + registry, + registry.isLookupType(type) + ? registry.lookup.getTypeDef(type) + : getTypeDef(type) + ) + ); +} diff --git a/packages/types-create/src/create/index.ts b/packages/types-create/src/create/index.ts new file mode 100644 index 0000000..d7c1ba1 --- /dev/null +++ b/packages/types-create/src/create/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './class.js'; +export * from './type.js'; diff --git a/packages/types-create/src/create/type.ts b/packages/types-create/src/create/type.ts new file mode 100644 index 0000000..f8b0d5c --- /dev/null +++ b/packages/types-create/src/create/type.ts @@ -0,0 +1,94 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes } from '@pezkuwi/types-codec'; +import type { Codec, CodecClass, IU8a, Registry } from '@pezkuwi/types-codec/types'; +import type { CreateOptions } from '../types/index.js'; + +import { Option } from '@pezkuwi/types-codec'; +import { isHex, isU8a, u8aEq, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { createClassUnsafe } from './class.js'; + +// With isPedantic, actually check that the encoding matches that supplied. This +// is much slower, but verifies that we have the correct types defined +function checkInstance (created: Codec, matcher: Uint8Array): void { + const u8a = created.toU8a(); + const rawType = created.toRawType(); + const isOk = ( + // full match, all ok + u8aEq(u8a, matcher) || + ( + // on a length-prefixed type, just check the actual length + ['Bytes', 'Text', 'Type'].includes(rawType) && + matcher.length === (created as unknown as Bytes).length + ) || + ( + // when the created is empty and matcher is also empty, let it slide... + created.isEmpty && + matcher.every((v) => !v) + ) + ); + + if (!isOk) { + throw new Error(`${rawType}:: Decoded input doesn't match input, received ${u8aToHex(matcher, 512)} (${matcher.length} bytes), created ${u8aToHex(u8a, 512)} (${u8a.length} bytes)`); + } +} + +function checkPedantic (created: Codec, [value]: unknown[]): void { + if (isU8a(value)) { + checkInstance(created, value); + } else if (isHex(value)) { + checkInstance(created, u8aToU8a(value)); + } +} + +// Initializes a type with a value. This also checks for fallbacks and in the cases +// where isPedantic is specified (storage decoding), also check the format/structure +function initType (registry: Registry, Type: CodecClass, params: unknown[] = [], { blockHash, isFallback, isOptional, isPedantic }: CreateOptions = {}): T { + const created = new ( + isOptional + ? Option.with(Type) + : Type + )(registry, ...params); + + isPedantic && checkPedantic(created, params); + + if (blockHash) { + created.createdAtHash = createTypeUnsafe(registry, 'BlockHash', [blockHash]); + } + + if (isFallback) { + created.isStorageFallback = true; + } + + return created as T; +} + +// An unsafe version of the `createType` below. It's unsafe because the `type` +// argument here can be any string, which, when it cannot parse, will yield a +// runtime error. +export function createTypeUnsafe (registry: Registry, type: K, params: unknown[] = [], options: CreateOptions = {}): T { + let Clazz: CodecClass | null = null; + let firstError: Error | null = null; + + try { + Clazz = createClassUnsafe(registry, type); + + return initType(registry, Clazz, params, options); + } catch (error) { + firstError = new Error(`createType(${type}):: ${(error as Error).message}`); + } + + if (Clazz?.__fallbackType) { + try { + Clazz = createClassUnsafe(registry, Clazz.__fallbackType as unknown as K); + + return initType(registry, Clazz, params, options); + } catch { + // swallow, we will throw the first error again + } + } + + throw firstError; +} diff --git a/packages/types-create/src/exports.ts b/packages/types-create/src/exports.ts new file mode 100644 index 0000000..9e86056 --- /dev/null +++ b/packages/types-create/src/exports.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-codec authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all starred +export * from './create/index.js'; +export * from './util/index.js'; diff --git a/packages/types-create/src/index.ts b/packages/types-create/src/index.ts new file mode 100644 index 0000000..2935bd7 --- /dev/null +++ b/packages/types-create/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/types-create/src/mod.ts b/packages/types-create/src/mod.ts new file mode 100644 index 0000000..fed0720 --- /dev/null +++ b/packages/types-create/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/types-create/src/packageDetect.ts b/packages/types-create/src/packageDetect.ts new file mode 100644 index 0000000..cf09340 --- /dev/null +++ b/packages/types-create/src/packageDetect.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2026 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as codecInfo } from '@pezkuwi/types-codec/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [codecInfo]); diff --git a/packages/types-create/src/packageInfo.ts b/packages/types-create/src/packageInfo.ts new file mode 100644 index 0000000..9bef93e --- /dev/null +++ b/packages/types-create/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/types-create', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/types-create/src/types/augmentRegistry.ts b/packages/types-create/src/types/augmentRegistry.ts new file mode 100644 index 0000000..a17452c --- /dev/null +++ b/packages/types-create/src/types/augmentRegistry.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types-codec/types/registry'; + +import type { Codec, CodecClass, ICompact, INumber, LookupString } from '@pezkuwi/types-codec/types'; +import type { ILookup, TypeDef } from '@pezkuwi/types-create/types'; + +declare module '@pezkuwi/types-codec/types/registry' { + interface Registry { + readonly lookup: ILookup; + + createLookupType (lookupId: ICompact | number): LookupString; + getUnsafe (name: K, withUnknown?: boolean, knownTypeDef?: TypeDef): CodecClass | undefined; + setLookup (lookup: ILookup): void; + } +} diff --git a/packages/types-create/src/types/index.ts b/packages/types-create/src/types/index.ts new file mode 100644 index 0000000..333a224 --- /dev/null +++ b/packages/types-create/src/types/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './augmentRegistry.js'; + +// all types +export type { CodecCreateOptions as CreateOptions } from '@pezkuwi/types-codec/types'; + +// all starred +export * from './lookup.js'; +export * from './types.js'; diff --git a/packages/types-create/src/types/lookup.ts b/packages/types-create/src/types/lookup.ts new file mode 100644 index 0000000..28a9b06 --- /dev/null +++ b/packages/types-create/src/types/lookup.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Option, Text } from '@pezkuwi/types-codec'; +import type { ICompact, INumber, LookupString } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from './types.js'; + +// A simplified SiType without the need for an interface import +// (while type interfaces are still in @pezkuwi/types). This provides +// the minimum interface allowing us to work with it here +interface SiTypeBase { + def: { + asTuple: ICompact[] + } +} + +export interface ILookup { + getSiType (lookupId: ICompact | LookupString | number): SiTypeBase; + getTypeDef (lookupId: ICompact | LookupString | number): TypeDef; + sanitizeField (name: Option): [string | null, string | null]; +} diff --git a/packages/types-create/src/types/types.ts b/packages/types-create/src/types/types.ts new file mode 100644 index 0000000..f391c6a --- /dev/null +++ b/packages/types-create/src/types/types.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export enum TypeDefInfo { + BTreeMap, + BTreeSet, + Compact, + DoNotConstruct, + Enum, + HashMap, + Int, + Linkage, + Null, + Option, + Plain, + Range, + RangeInclusive, + Result, + Set, + Si, + Struct, + Tuple, + UInt, + Vec, + VecFixed, + WrapperKeepOpaque, + WrapperOpaque +} + +export interface TypeDef { + alias?: Map | undefined; + displayName?: string | undefined; + docs?: string[] | undefined; + fallbackType?: string | undefined; + info: TypeDefInfo; + index?: number; + isFromSi?: boolean; + length?: number; + lookupIndex?: number; + lookupName?: string | undefined; + lookupNameRoot?: string | undefined; + name?: string | undefined; + namespace?: string | undefined; + sub?: TypeDef | TypeDef[]; + type: string; + typeName?: string | undefined; +} diff --git a/packages/types-create/src/util/encodeTypes.spec.ts b/packages/types-create/src/util/encodeTypes.spec.ts new file mode 100644 index 0000000..75097ef --- /dev/null +++ b/packages/types-create/src/util/encodeTypes.spec.ts @@ -0,0 +1,217 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { encodeTypeDef, TypeDefInfo } from '@pezkuwi/types-create'; + +describe('encodeTypeDef', (): void => { + const registry = new TypeRegistry(); + + it('correctly encodes a complex struct', (): void => { + expect( + JSON.parse(encodeTypeDef(registry, { + info: TypeDefInfo.Struct, + sub: [ + { + info: TypeDefInfo.Plain, + name: 'a', + type: 'u32' + }, + { + info: TypeDefInfo.Struct, + name: 'b', + sub: [ + { + info: TypeDefInfo.Plain, + name: 'c', + type: 'u32' + }, + { + info: TypeDefInfo.Vec, + name: 'd', + sub: { + info: TypeDefInfo.Plain, + type: 'u32' + }, + type: '' + } + ], + type: '' + } + ], + type: '' + })) + ).toEqual({ + a: 'u32', + b: '{"c":"u32","d":"Vec"}' + }); + }); + + it('correctly encodes a complex struct (named)', (): void => { + expect( + JSON.parse(encodeTypeDef(registry, { + info: TypeDefInfo.Struct, + sub: [ + { + info: TypeDefInfo.Plain, + name: 'a', + type: 'u32' + }, + { + info: TypeDefInfo.Struct, + name: 'b', + sub: [ + { + info: TypeDefInfo.Plain, + name: 'c', + type: 'u32' + }, + { + displayName: 'Something', + info: TypeDefInfo.Vec, + name: 'd', + sub: { + info: TypeDefInfo.Plain, + type: 'u32' + }, + type: '' + } + ], + type: '' + } + ], + type: '' + })) + ).toEqual({ + a: 'u32', + b: '{"c":"u32","d":"Something"}' + }); + }); + + it('correctly encodes a complex enum', (): void => { + expect( + JSON.parse(encodeTypeDef(registry, { + info: TypeDefInfo.Enum, + sub: [ + { + info: TypeDefInfo.Plain, + name: 'a', + type: 'u32' + }, + { + info: TypeDefInfo.Struct, + name: 'b', + sub: [ + { + info: TypeDefInfo.Plain, + name: 'c', + type: 'u32' + }, + { + info: TypeDefInfo.Vec, + name: 'd', + sub: { + info: TypeDefInfo.Plain, + type: 'u32' + }, + type: '' + } + ], + type: '' + }, + { + info: TypeDefInfo.Enum, + name: 'f', + sub: [ + { + info: TypeDefInfo.Plain, + name: 'g', + type: 'Null' + }, + { + info: TypeDefInfo.Plain, + name: 'h', + type: 'Null' + } + ], + type: '' + } + ], + type: '' + })) + ).toEqual({ + _enum: { + a: 'u32', + b: '{"c":"u32","d":"Vec"}', + f: '{"_enum":["g","h"]}' + } + }); + }); + + it('correctly encodes a complex enum (named)', (): void => { + expect( + JSON.parse(encodeTypeDef(registry, { + info: TypeDefInfo.Enum, + sub: [ + { + info: TypeDefInfo.Plain, + name: 'a', + type: 'u32' + }, + { + displayName: 'Something', + info: TypeDefInfo.Struct, + name: 'b', + sub: [ + { + info: TypeDefInfo.Plain, + name: 'c', + type: 'u32' + }, + { + info: TypeDefInfo.Vec, + name: 'd', + sub: { + info: TypeDefInfo.Plain, + type: 'u32' + }, + type: '' + } + ], + type: '' + }, + { + displayName: 'Option', + info: TypeDefInfo.Option, + name: 'e', + sub: { + displayName: 'Result', + info: TypeDefInfo.Result, + sub: [ + { + info: TypeDefInfo.Null, + type: '' + }, + { + info: TypeDefInfo.Plain, + type: 'u32' + } + ], + type: '' + }, + type: '' + } + ], + type: '' + })) + ).toEqual({ + _enum: { + a: 'u32', + b: 'Something', + e: 'Option>' + } + }); + }); +}); diff --git a/packages/types-create/src/util/encodeTypes.ts b/packages/types-create/src/util/encodeTypes.ts new file mode 100644 index 0000000..c63775c --- /dev/null +++ b/packages/types-create/src/util/encodeTypes.ts @@ -0,0 +1,205 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; + +import { isNumber, isUndefined, objectSpread, stringify } from '@pezkuwi/util'; + +import { TypeDefInfo } from '../types/index.js'; + +interface ToString { toString: () => string } + +const stringIdentity = (value: T): string => value.toString(); + +const INFO_WRAP = ['BTreeMap', 'BTreeSet', 'Compact', 'HashMap', 'Option', 'Result', 'Vec']; + +export function paramsNotation (outer: string, inner?: T | T[], transform: (_: T) => string = stringIdentity): string { + return `${outer}${ + inner + ? `<${(Array.isArray(inner) ? inner : [inner]).map(transform).join(', ')}>` + : '' + }`; +} + +function encodeWithParams (registry: Registry, typeDef: TypeDef, outer: string): string { + const { info, sub } = typeDef; + + switch (info) { + case TypeDefInfo.BTreeMap: + case TypeDefInfo.BTreeSet: + case TypeDefInfo.Compact: + case TypeDefInfo.HashMap: + case TypeDefInfo.Linkage: + case TypeDefInfo.Option: + case TypeDefInfo.Range: + case TypeDefInfo.RangeInclusive: + case TypeDefInfo.Result: + case TypeDefInfo.Vec: + case TypeDefInfo.WrapperKeepOpaque: + case TypeDefInfo.WrapperOpaque: + return paramsNotation(outer, sub, (p) => encodeTypeDef(registry, p)); + } + + throw new Error(`Unable to encode ${stringify(typeDef)} with params`); +} + +function encodeSubTypes (registry: Registry, sub: TypeDef[], asEnum?: boolean, extra?: Record): string { + const names = sub.map(({ name }) => name); + + if (!names.every((n) => !!n)) { + throw new Error(`Subtypes does not have consistent names, ${names.join(', ')}`); + } + + const inner: Record = objectSpread({}, extra); + + for (let i = 0, count = sub.length; i < count; i++) { + const def = sub[i]; + + if (!def.name) { + throw new Error(`No name found in ${stringify(def)}`); + } + + inner[def.name] = encodeTypeDef(registry, def); + } + + return stringify( + asEnum + ? { _enum: inner } + : inner + ); +} + +// We setup a record here to ensure we have comprehensive coverage (any item not covered will result +// in a compile-time error with the missing index) +const encoders: Record string> = { + [TypeDefInfo.BTreeMap]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'BTreeMap'), + + [TypeDefInfo.BTreeSet]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'BTreeSet'), + + [TypeDefInfo.Compact]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'Compact'), + + [TypeDefInfo.DoNotConstruct]: (registry: Registry, { displayName, lookupIndex, lookupName }: TypeDef) => + `DoNotConstruct<${lookupName || displayName || (isUndefined(lookupIndex) ? 'Unknown' : registry.createLookupType(lookupIndex))}>`, + + [TypeDefInfo.Enum]: (registry: Registry, { sub }: TypeDef): string => { + if (!Array.isArray(sub)) { + throw new Error('Unable to encode Enum type'); + } + + // c-like enums have all Null entries + // TODO We need to take the disciminant into account and auto-add empty entries + return sub.every(({ type }) => type === 'Null') + ? stringify({ _enum: sub.map(({ name }, index) => `${name || `Empty${index}`}`) }) + : encodeSubTypes(registry, sub, true); + }, + + [TypeDefInfo.HashMap]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'HashMap'), + + [TypeDefInfo.Int]: (_registry: Registry, { length = 32 }: TypeDef) => + `Int<${length}>`, + + [TypeDefInfo.Linkage]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'Linkage'), + + [TypeDefInfo.Null]: (_registry: Registry, _typeDef: TypeDef) => + 'Null', + + [TypeDefInfo.Option]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'Option'), + + [TypeDefInfo.Plain]: (_registry: Registry, { displayName, type }: TypeDef) => + displayName || type, + + [TypeDefInfo.Range]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'Range'), + + [TypeDefInfo.RangeInclusive]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'RangeInclusive'), + + [TypeDefInfo.Result]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'Result'), + + [TypeDefInfo.Set]: (_registry: Registry, { length = 8, sub }: TypeDef): string => { + if (!Array.isArray(sub)) { + throw new Error('Unable to encode Set type'); + } + + return stringify({ + _set: sub.reduce((all, { index, name }, count) => + objectSpread(all, { [`${name || `Unknown${index || count}`}`]: index || count }), + { _bitLength: length || 8 }) + }); + }, + + [TypeDefInfo.Si]: (_registry: Registry, { lookupName, type }: TypeDef) => + lookupName || type, + + [TypeDefInfo.Struct]: (registry: Registry, { alias, sub }: TypeDef): string => { + if (!Array.isArray(sub)) { + throw new Error('Unable to encode Struct type'); + } + + return encodeSubTypes(registry, sub, false, alias + ? { + _alias: [...alias.entries()].reduce>((all, [k, v]) => + objectSpread(all, { [k]: v }), {} + ) + } + : {} + ); + }, + + [TypeDefInfo.Tuple]: (registry: Registry, { sub }: TypeDef): string => { + if (!Array.isArray(sub)) { + throw new Error('Unable to encode Tuple type'); + } + + return `(${sub.map((type) => encodeTypeDef(registry, type)).join(',')})`; + }, + + [TypeDefInfo.UInt]: (_registry: Registry, { length = 32 }: TypeDef) => + `UInt<${length}>`, + + [TypeDefInfo.Vec]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'Vec'), + + [TypeDefInfo.VecFixed]: (_registry: Registry, { length, sub }: TypeDef): string => { + if (!isNumber(length) || !sub || Array.isArray(sub)) { + throw new Error('Unable to encode VecFixed type'); + } + + return `[${sub.type};${length}]`; + }, + + [TypeDefInfo.WrapperKeepOpaque]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'WrapperKeepOpaque'), + + [TypeDefInfo.WrapperOpaque]: (registry: Registry, typeDef: TypeDef) => + encodeWithParams(registry, typeDef, 'WrapperOpaque') +}; + +function encodeType (registry: Registry, typeDef: TypeDef, withLookup = true): string { + return withLookup && typeDef.lookupName + ? typeDef.lookupName + : encoders[typeDef.info](registry, typeDef); +} + +export function encodeTypeDef (registry: Registry, typeDef: TypeDef): string { + // In the case of contracts we do have the unfortunate situation where the displayName would + // refer to "Option" when it is an option. For these, string it out, only using when actually + // not a top-level element to be used + return (typeDef.displayName && !INFO_WRAP.some((i) => typeDef.displayName === i)) + ? typeDef.displayName + : encodeType(registry, typeDef); +} + +export function withTypeString (registry: Registry, typeDef: Omit & { type?: string }): TypeDef { + return objectSpread({}, typeDef, { + type: encodeType(registry, typeDef as TypeDef, false) + }); +} diff --git a/packages/types-create/src/util/getTypeDef.spec.ts b/packages/types-create/src/util/getTypeDef.spec.ts new file mode 100644 index 0000000..ca4c9a3 --- /dev/null +++ b/packages/types-create/src/util/getTypeDef.spec.ts @@ -0,0 +1,704 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '@pezkuwi/types'; +import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create'; +import { stringify } from '@pezkuwi/util'; + +describe('getTypeDef', (): void => { + it('maps empty tuples to empty tuple', (): void => { + expect( + getTypeDef('()') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [], + type: '()' + }); + }); + + it('properly decodes a BTreeMap', (): void => { + expect( + getTypeDef('BTreeMap') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.BTreeMap, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Text' + } + ], + type: 'BTreeMap' + }); + }); + + it('properly decodes a BTreeSet', (): void => { + expect( + getTypeDef('BTreeSet') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.BTreeSet, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Text' + }, + type: 'BTreeSet' + }); + }); + + it('properly decodes a Result', (): void => { + expect( + getTypeDef('Result') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Result, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Text' + } + ], + type: 'Result' + }); + }); + + it('properly decodes a Result, Text>', (): void => { + expect( + getTypeDef('Result,Text>') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Result, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Result, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Null' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + } + ], + type: 'Result' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Text' + } + ], + type: 'Result,Text>' + }); + }); + + it('returns a type structure', (): void => { + expect( + getTypeDef('(u32, Compact, Vec, Option, (Text,Vec<(Bool,u128)>))') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Compact, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + type: 'Compact' + }, + { + displayName: undefined, + info: TypeDefInfo.Vec, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u64' + }, + type: 'Vec' + }, + { + displayName: undefined, + info: TypeDefInfo.Option, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u128' + }, + type: 'Option' + }, + { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Text' + }, + { + displayName: undefined, + info: TypeDefInfo.Vec, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Bool' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u128' + } + ], + type: '(Bool,u128)' + }, + type: 'Vec<(Bool,u128)>' + } + ], + type: '(Text,Vec<(Bool,u128)>)' + } + ], + type: '(u32,Compact,Vec,Option,(Text,Vec<(Bool,u128)>))' + }); + }); + + it('returns a type structure (sanitized)', (): void => { + expect( + getTypeDef('Vec<(Box, Proposal,Lookup::Target)>') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Vec, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'PropIndex' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Proposal' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'LookupTarget' + } + ], + type: '(PropIndex,Proposal,LookupTarget)' + }, + type: 'Vec<(PropIndex,Proposal,LookupTarget)>' + }); + }); + + it('returns a type structure (actual)', (): void => { + expect( + getTypeDef('Vec<(PropIndex, Proposal, AccountId)>') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Vec, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'PropIndex' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Proposal' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'AccountId' + } + ], + type: '(PropIndex,Proposal,AccountId)' + }, + type: 'Vec<(PropIndex,Proposal,AccountId)>' + }); + }); + + it('returns an actual Struct', (): void => { + expect( + getTypeDef('{"balance":"Balance","account_id":"AccountId","log":"(u64, Signature)"}') + ).toEqual({ + alias: undefined, + displayName: undefined, + fallbackType: undefined, + info: TypeDefInfo.Struct, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'balance', + type: 'Balance' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'account_id', + type: 'AccountId' + }, + { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: 'log', + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u64' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Signature' + } + ], + type: '(u64,Signature)' + } + ], + type: '{"balance":"Balance","account_id":"AccountId","log":"(u64,Signature)"}' + }); + }); + + it('creates a nested fixed vec', (): void => { + expect( + getTypeDef('[[[bool; 3]; 6]; 9]') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 9, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 6, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 3, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'bool' + }, + type: '[bool;3]' + }, + type: '[[bool;3];6]' + }, + type: '[[[bool;3];6];9]' + }); + }); + + it('creates a nested fixed vec (named)', (): void => { + expect( + getTypeDef('[[bool; 6]; 3; MyType]') + ).toEqual({ + displayName: 'MyType', + info: TypeDefInfo.VecFixed, + length: 3, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 6, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'bool' + }, + type: '[bool;6]' + }, + type: '[[bool;6];3;MyType]' + }); + }); + + it('creates a nested tuple', (): void => { + expect( + getTypeDef('((u32, u64), u128)') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u64' + } + ], + type: '(u32,u64)' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u128' + } + ], + type: '((u32,u64),u128)' + }); + }); + + it('creates a nested enum with tuple/struct', (): void => { + expect( + getTypeDef(stringify({ + _enum: { + A: 'u32', + B: '(u32, bool)', + C: { + d: 'AccountId', + e: 'Balance' + } + } + })) + ).toEqual({ + displayName: undefined, + fallbackType: undefined, + info: TypeDefInfo.Enum, + name: undefined, + sub: [ + { + displayName: undefined, + index: 0, + info: TypeDefInfo.Plain, + name: 'A', + type: 'u32' + }, + { + displayName: undefined, + index: 1, + info: TypeDefInfo.Tuple, + name: 'B', + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'bool' + } + ], + type: '(u32,bool)' + }, + { + alias: undefined, + displayName: undefined, + fallbackType: undefined, + index: 2, + info: TypeDefInfo.Struct, + name: 'C', + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'd', + type: 'AccountId' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'e', + type: 'Balance' + } + ], + type: '{"d":"AccountId","e":"Balance"}' + } + ], + type: '{"_enum":{"A":"u32","B":"(u32,bool)","C":{"d":"AccountId","e":"Balance"}}}' + }); + }); + + it('creates a nested struct with struct/tuple', (): void => { + expect( + getTypeDef(stringify({ + a: 'u32', + b: '(u32, bool)', + c: { + d: 'AccountId', + e: 'Balance' + } + })) + ).toEqual({ + alias: undefined, + displayName: undefined, + fallbackType: undefined, + info: TypeDefInfo.Struct, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'a', + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: 'b', + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'bool' + } + ], + type: '(u32,bool)' + }, + { + alias: undefined, + displayName: undefined, + fallbackType: undefined, + info: TypeDefInfo.Struct, + name: 'c', + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'd', + type: 'AccountId' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'e', + type: 'Balance' + } + ], + type: '{"d":"AccountId","e":"Balance"}' + } + ], + type: '{"a":"u32","b":"(u32,bool)","c":{"d":"AccountId","e":"Balance"}}' + }); + }); + + it('creates a Vec with nested fixed', (): void => { + expect( + getTypeDef('Vec<[[[bool; 3]; 6]; 9]>') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Vec, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 9, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 6, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.VecFixed, + length: 3, + name: undefined, + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'bool' + }, + type: '[bool;3]' + }, + type: '[[bool;3];6]' + }, + type: '[[[bool;3];6];9]' + }, + type: 'Vec<[[[bool;3];6];9]>' + }); + }); + + it('creates a Vec with nested struct', (): void => { + expect( + getTypeDef('Vec<{ "a": "u32", "b": "(u32, bool)" }>') + ).toEqual({ + displayName: undefined, + info: TypeDefInfo.Vec, + name: undefined, + sub: { + alias: undefined, + displayName: undefined, + fallbackType: undefined, + info: TypeDefInfo.Struct, + name: undefined, + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: 'a', + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Tuple, + name: 'b', + sub: [ + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'u32' + }, + { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'bool' + } + ], + type: '(u32,bool)' + } + ], + type: '{"a":"u32","b":"(u32,bool)"}' + }, + type: 'Vec<{"a":"u32","b":"(u32,bool)"}>' + }); + }); + + it('creates recursive structures', (): void => { + const registry = new TypeRegistry(); + + registry.register({ + Recursive: { + data: 'Vec' + } + }); + + const raw = registry.createType('Recursive').toRawType(); + + expect( + getTypeDef(raw) + ).toEqual({ + alias: undefined, + displayName: undefined, + fallbackType: undefined, + info: TypeDefInfo.Struct, + name: undefined, + sub: [{ + displayName: undefined, + info: TypeDefInfo.Vec, + name: 'data', + sub: { + displayName: undefined, + info: TypeDefInfo.Plain, + name: undefined, + type: 'Recursive' + }, + type: 'Vec' + }], + type: '{"data":"Vec"}' + }); + }); +}); diff --git a/packages/types-create/src/util/getTypeDef.ts b/packages/types-create/src/util/getTypeDef.ts new file mode 100644 index 0000000..8bc9219 --- /dev/null +++ b/packages/types-create/src/util/getTypeDef.ts @@ -0,0 +1,279 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyString } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; + +import { sanitize } from '@pezkuwi/types-codec'; +import { isNumber, isString, objectSpread, stringify } from '@pezkuwi/util'; + +import { TypeDefInfo } from '../types/index.js'; +import { typeSplit } from './typeSplit.js'; + +interface TypeDefOptions { + name?: string; + displayName?: string; +} + +interface SetDetails { + _bitLength: number; + index: number; + + [key: string]: number; +} + +interface ParsedDef { + _alias: string; + _enum?: string[]; + _fallback?: string; + _set?: SetDetails; + + [key: string]: unknown; +} + +const KNOWN_INTERNALS = ['_alias', '_fallback']; + +function getTypeString (typeOrObj: any): string { + return isString(typeOrObj) + ? typeOrObj.toString() + : stringify(typeOrObj); +} + +function isRustEnum (details: Record | Record): details is Record { + const values = Object.values(details); + + if (values.some((v) => isNumber(v))) { + if (!values.every((v) => isNumber(v) && v >= 0 && v <= 255)) { + throw new Error('Invalid number-indexed enum definition'); + } + + return false; + } + + return true; +} + +// decode an enum of either of the following forms +// { _enum: ['A', 'B', 'C'] } +// { _enum: { A: AccountId, B: Balance, C: u32 } } +// { _enum: { A: 1, B: 2 } } +function _decodeEnum (value: TypeDef, details: string[] | Record | Record, count: number, fallbackType?: string): TypeDef { + value.info = TypeDefInfo.Enum; + value.fallbackType = fallbackType; + + // not as pretty, but remain compatible with oo7 for both struct and Array types + if (Array.isArray(details)) { + value.sub = details.map((name, index): TypeDef => ({ + index, + info: TypeDefInfo.Plain, + name, + type: 'Null' + })); + } else if (isRustEnum(details)) { + value.sub = Object.entries(details).map(([name, typeOrObj], index): TypeDef => + objectSpread({}, getTypeDef(getTypeString(typeOrObj || 'Null'), { name }, count), { index }) + ); + } else { + value.sub = Object.entries(details).map(([name, index]): TypeDef => ({ + index, + info: TypeDefInfo.Plain, + name, + type: 'Null' + })); + } + + return value; +} + +// decode a set of the form +// { _set: { A: 0b0001, B: 0b0010, C: 0b0100 } } +function _decodeSet (value: TypeDef, details: SetDetails, fallbackType: string | undefined): TypeDef { + value.info = TypeDefInfo.Set; + value.fallbackType = fallbackType; + value.length = details._bitLength; + value.sub = Object + .entries(details) + .filter(([name]): boolean => !name.startsWith('_')) + .map(([name, index]): TypeDef => ({ + index, + info: TypeDefInfo.Plain, + name, + type: 'Null' + })); + + return value; +} + +// decode a struct, set or enum +function _decodeStruct (value: TypeDef, type: string, _: string, count: number): TypeDef { + const parsed = JSON.parse(type) as ParsedDef; + const keys = Object.keys(parsed); + + if (parsed._enum) { + return _decodeEnum(value, parsed._enum, count, parsed._fallback); + } else if (parsed._set) { + return _decodeSet(value, parsed._set, parsed._fallback); + } + + value.alias = parsed._alias + ? new Map(Object.entries(parsed._alias)) + : undefined; + value.fallbackType = parsed._fallback; + value.sub = keys + .filter((name) => !KNOWN_INTERNALS.includes(name)) + .map((name) => + getTypeDef(getTypeString(parsed[name]), { name }, count) + ); + + return value; +} + +// decode a fixed vector, e.g. [u8;32] +function _decodeFixedVec (value: TypeDef, type: string, _: string, count: number): TypeDef { + const max = type.length - 1; + let index = -1; + let inner = 0; + + for (let i = 1; (i < max) && (index === -1); i++) { + switch (type[i]) { + case ';': { + if (inner === 0) { + index = i; + } + + break; + } + + case '[': + case '(': + case '<': + inner++; + break; + + case ']': + case ')': + case '>': + inner--; + break; + } + } + + if (index === -1) { + throw new Error(`${type}: Unable to extract location of ';'`); + } + + const vecType = type.substring(1, index); + const [strLength, displayName] = type.substring(index + 1, max).split(';'); + const length = parseInt(strLength.trim(), 10); + + if (length > 2048) { + throw new Error(`${type}: Only support for [Type; ], where length <= 2048`); + } + + value.displayName = displayName; + value.length = length; + value.sub = getTypeDef(vecType, {}, count); + + return value; +} + +// decode a tuple +function _decodeTuple (value: TypeDef, _: string, subType: string, count: number): TypeDef { + value.sub = subType.length === 0 + ? [] + : typeSplit(subType).map((inner) => getTypeDef(inner, {}, count)); + + return value; +} + +// decode a Int/UInt +function _decodeAnyInt (value: TypeDef, type: string, _: string, clazz: 'Int' | 'UInt'): TypeDef { + const [strLength, displayName] = type.substring(clazz.length + 1, type.length - 1).split(','); + const length = parseInt(strLength.trim(), 10); + + if ((length > 8192) || (length % 8)) { + throw new Error(`${type}: Only support for ${clazz}, where length <= 8192 and a power of 8, found ${length}`); + } + + value.displayName = displayName; + value.length = length; + + return value; +} + +function _decodeInt (value: TypeDef, type: string, subType: string): TypeDef { + return _decodeAnyInt(value, type, subType, 'Int'); +} + +function _decodeUInt (value: TypeDef, type: string, subType: string): TypeDef { + return _decodeAnyInt(value, type, subType, 'UInt'); +} + +function _decodeDoNotConstruct (value: TypeDef, type: string, _: string): TypeDef { + const NAME_LENGTH = 'DoNotConstruct'.length; + + value.displayName = type.substring(NAME_LENGTH + 1, type.length - 1); + + return value; +} + +function hasWrapper (type: string, [start, end]: [string, string, TypeDefInfo, any?]): boolean { + return (type.startsWith(start)) && (type.slice(-1 * end.length) === end); +} + +const nestedExtraction: [string, string, TypeDefInfo, (value: TypeDef, type: string, subType: string, count: number) => TypeDef][] = [ + ['[', ']', TypeDefInfo.VecFixed, _decodeFixedVec], + ['{', '}', TypeDefInfo.Struct, _decodeStruct], + ['(', ')', TypeDefInfo.Tuple, _decodeTuple], + // the inner for these are the same as tuple, multiple values + ['BTreeMap<', '>', TypeDefInfo.BTreeMap, _decodeTuple], + ['HashMap<', '>', TypeDefInfo.HashMap, _decodeTuple], + ['Int<', '>', TypeDefInfo.Int, _decodeInt], + ['Result<', '>', TypeDefInfo.Result, _decodeTuple], + ['UInt<', '>', TypeDefInfo.UInt, _decodeUInt], + ['DoNotConstruct<', '>', TypeDefInfo.DoNotConstruct, _decodeDoNotConstruct] +]; + +const wrappedExtraction: [string, string, TypeDefInfo][] = [ + ['BTreeSet<', '>', TypeDefInfo.BTreeSet], + ['Compact<', '>', TypeDefInfo.Compact], + ['Linkage<', '>', TypeDefInfo.Linkage], + ['Opaque<', '>', TypeDefInfo.WrapperOpaque], + ['Option<', '>', TypeDefInfo.Option], + ['Range<', '>', TypeDefInfo.Range], + ['RangeInclusive<', '>', TypeDefInfo.RangeInclusive], + ['Vec<', '>', TypeDefInfo.Vec], + ['WrapperKeepOpaque<', '>', TypeDefInfo.WrapperKeepOpaque], + ['WrapperOpaque<', '>', TypeDefInfo.WrapperOpaque] +]; + +function extractSubType (type: string, [start, end]: [string, string, TypeDefInfo, any?]): string { + return type.substring(start.length, type.length - end.length); +} + +export function getTypeDef (_type: AnyString, { displayName, name }: TypeDefOptions = {}, count = 0): TypeDef { + // create the type via Type, allowing types to be sanitized + const type = sanitize(_type); + const value: TypeDef = { displayName, info: TypeDefInfo.Plain, name, type }; + + if (++count > 64) { + throw new Error('getTypeDef: Maximum nested limit reached'); + } + + const nested = nestedExtraction.find((nested) => hasWrapper(type, nested)); + + if (nested) { + value.info = nested[2]; + + return nested[3](value, type, extractSubType(type, nested), count); + } + + const wrapped = wrappedExtraction.find((wrapped) => hasWrapper(type, wrapped)); + + if (wrapped) { + value.info = wrapped[2]; + value.sub = getTypeDef(extractSubType(type, wrapped), {}, count); + } + + return value; +} diff --git a/packages/types-create/src/util/index.ts b/packages/types-create/src/util/index.ts new file mode 100644 index 0000000..6be469e --- /dev/null +++ b/packages/types-create/src/util/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './encodeTypes.js'; +export * from './getTypeDef.js'; +export * from './typeSplit.js'; +export * from './xcm.js'; diff --git a/packages/types-create/src/util/typeSplit.spec.ts b/packages/types-create/src/util/typeSplit.spec.ts new file mode 100644 index 0000000..3fc133e --- /dev/null +++ b/packages/types-create/src/util/typeSplit.spec.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { typeSplit } from '@pezkuwi/types-create'; + +describe('typeSplit', (): void => { + it('splits simple types into an array', (): void => { + expect( + typeSplit('Text, u32, u64') + ).toEqual(['Text', 'u32', 'u64']); + }); + + it('splits nested combinations', (): void => { + expect( + typeSplit('Text, (u32), Vec') + ).toEqual(['Text', '(u32)', 'Vec']); + }); + + it('keeps nested tuples together', (): void => { + expect( + typeSplit('Text, (u32, u128), Vec') + ).toEqual(['Text', '(u32, u128)', 'Vec']); + }); + + it('keeps nested vector tuples together', (): void => { + expect( + typeSplit('Text, (u32, u128), Vec<(u64, u32)>') + ).toEqual(['Text', '(u32, u128)', 'Vec<(u64, u32)>']); + }); + + it('allows for deep nesting', (): void => { + expect( + typeSplit('Text, (u32, (u128, u8)), Vec<(u64, (u32, u32))>') + ).toEqual(['Text', '(u32, (u128, u8))', 'Vec<(u64, (u32, u32))>']); + }); + + it('checks for unclosed vec', (): void => { + expect( + () => typeSplit('Text, Vec { + expect( + () => typeSplit('Text, (u64, u32') + ).toThrow(/Invalid definition/); + }); +}); diff --git a/packages/types-create/src/util/typeSplit.ts b/packages/types-create/src/util/typeSplit.ts new file mode 100644 index 0000000..32ae400 --- /dev/null +++ b/packages/types-create/src/util/typeSplit.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// safely split a string on ', ' while taking care of any nested occurences +export function typeSplit (type: string): string[] { + const result: string[] = []; + + // these are the depths of the various tokens: <, [, {, ( + let c = 0; + let f = 0; + let s = 0; + let t = 0; + + // current start position + let start = 0; + + for (let i = 0, count = type.length; i < count; i++) { + switch (type[i]) { + // if we are not nested, add the type + case ',': { + if (!(c || f || s || t)) { + result.push(type.substring(start, i).trim()); + start = i + 1; + } + + break; + } + + // adjust compact/vec (and friends) depth + case '<': c++; break; + case '>': c--; break; + + // adjust fixed vec depths + case '[': f++; break; + case ']': f--; break; + + // adjust struct depth + case '{': s++; break; + case '}': s--; break; + + // adjust tuple depth + case '(': t++; break; + case ')': t--; break; + } + } + + // ensure we have all the terminators taken care of + if (c || f || s || t) { + throw new Error(`Invalid definition (missing terminators) found in ${type}`); + } + + // the final leg of the journey + result.push(type.substring(start, type.length).trim()); + + return result; +} diff --git a/packages/types-create/src/util/xcm.ts b/packages/types-create/src/util/xcm.ts new file mode 100644 index 0000000..559bcf0 --- /dev/null +++ b/packages/types-create/src/util/xcm.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types-create authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import { objectSpread } from '@pezkuwi/util'; + +export const XCM_MAPPINGS = ['AssetInstance', 'Fungibility', 'Junction', 'Junctions', 'MultiAsset', 'MultiAssetFilter', 'MultiLocation', 'Response', 'WildFungibility', 'WildMultiAsset', 'Xcm', 'XcmError']; + +export function mapXcmTypes (version: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5'): Record { + return XCM_MAPPINGS.reduce>((all, key) => + objectSpread(all, { [key]: `${key}${version}` }), {} + ); +} diff --git a/packages/types-create/tsconfig.build.json b/packages/types-create/tsconfig.build.json new file mode 100644 index 0000000..9bc3d28 --- /dev/null +++ b/packages/types-create/tsconfig.build.json @@ -0,0 +1,15 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/*.spec.ts", + "**/mod.ts" + ], + "references": [ + { "path": "../types-codec/tsconfig.build.json" } + ] +} diff --git a/packages/types-create/tsconfig.spec.json b/packages/types-create/tsconfig.spec.json new file mode 100644 index 0000000..e496ba4 --- /dev/null +++ b/packages/types-create/tsconfig.spec.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/*.spec.ts" + ], + "references": [ + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" } + ] +} diff --git a/packages/types-known/README.md b/packages/types-known/README.md new file mode 100644 index 0000000..307def1 --- /dev/null +++ b/packages/types-known/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/types-known + +Specific known base type overrides (e.g. `Address`, etc) for chains & specs. This does not contain user-specific types. diff --git a/packages/types-known/package.json b/packages/types-known/package.json new file mode 100644 index 0000000..a0fe33e --- /dev/null +++ b/packages/types-known/package.json @@ -0,0 +1,34 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Known type definitions", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/types-known#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/types-known", + "repository": { + "directory": "packages/types-known", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/networks": "^14.0.1", + "@pezkuwi/types": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/types-create": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/api": "16.5.4" + } +} diff --git a/packages/types-known/src/bundle.ts b/packages/types-known/src/bundle.ts new file mode 100644 index 0000000..3a73c00 --- /dev/null +++ b/packages/types-known/src/bundle.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all external +export { mapXcmTypes } from '@pezkuwi/types-create'; + +// all named +export { packageInfo } from './packageInfo.js'; + +// all starred +export * from './util.js'; diff --git a/packages/types-known/src/chain/index.ts b/packages/types-known/src/chain/index.ts new file mode 100644 index 0000000..ad7f381 --- /dev/null +++ b/packages/types-known/src/chain/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +// Type overrides based on specific nodes +export const typesChain: Record = {}; diff --git a/packages/types-known/src/index.ts b/packages/types-known/src/index.ts new file mode 100644 index 0000000..e4686d7 --- /dev/null +++ b/packages/types-known/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/types-known/src/mod.ts b/packages/types-known/src/mod.ts new file mode 100644 index 0000000..a917250 --- /dev/null +++ b/packages/types-known/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/types-known/src/packageDetect.ts b/packages/types-known/src/packageDetect.ts new file mode 100644 index 0000000..7473146 --- /dev/null +++ b/packages/types-known/src/packageDetect.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2026 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as typesInfo } from '@pezkuwi/types/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [typesInfo]); diff --git a/packages/types-known/src/packageInfo.ts b/packages/types-known/src/packageInfo.ts new file mode 100644 index 0000000..25f0212 --- /dev/null +++ b/packages/types-known/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/types-known', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/types-known/src/spec/centrifuge-chain.ts b/packages/types-known/src/spec/centrifuge-chain.ts new file mode 100644 index 0000000..b94397c --- /dev/null +++ b/packages/types-known/src/spec/centrifuge-chain.ts @@ -0,0 +1,116 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +const sharedTypes = { + // Anchor + AnchorData: { + anchoredBlock: 'u64', + docRoot: 'H256', + id: 'H256' + }, + DispatchErrorModule: 'DispatchErrorModuleU8', + PreCommitData: { + expirationBlock: 'u64', + identity: 'H256', + signingRoot: 'H256' + }, + + // Fees + Fee: { + key: 'Hash', + price: 'Balance' + }, + + // MultiAccount + MultiAccountData: { + deposit: 'Balance', + depositor: 'AccountId', + signatories: 'Vec', + threshold: 'u16' + }, + + // Bridge + ChainId: 'u8', + DepositNonce: 'u64', + ResourceId: '[u8; 32]', + 'chainbridge::ChainId': 'u8', + + // NFT + RegistryId: 'H160', + TokenId: 'U256', + AssetId: { + registryId: 'RegistryId', + tokenId: 'TokenId' + }, + AssetInfo: { + metadata: 'Bytes' + }, + MintInfo: { + anchorId: 'Hash', + proofs: 'Vec', + staticHashes: '[Hash; 3]' + }, + Proof: { + leafHash: 'H256', + sortedHashes: 'H256' + }, + ProofMint: { + hashes: 'Vec', + property: 'Bytes', + salt: '[u8; 32]', + value: 'Bytes' + }, + RegistryInfo: { + fields: 'Vec', + ownerCanBurn: 'bool' + }, + + ProxyType: { + _enum: [ + 'Any', + 'NonTransfer', + 'Governance', + 'Staking', + 'NonProxy' + ] + } +}; + +const standaloneTypes = { + ...sharedTypes, + AccountInfo: 'AccountInfoWithRefCount', + Address: 'LookupSource', + LookupSource: 'IndicesLookupSource', + Multiplier: 'Fixed64', + RefCount: 'RefCountTo259' +}; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [240, 243], + types: { + ...standaloneTypes, + ProxyType: { + _enum: [ + 'Any', + 'NonTransfer', + 'Governance', + 'Staking', + 'Vesting' + ] + } + } + }, + { + minmax: [244, 999], + types: { ...standaloneTypes } + }, + { + minmax: [1000, undefined], + types: { ...sharedTypes } + } +]; diff --git a/packages/types-known/src/spec/dicle.ts b/packages/types-known/src/spec/dicle.ts new file mode 100644 index 0000000..0a3a621 --- /dev/null +++ b/packages/types-known/src/spec/dicle.ts @@ -0,0 +1,125 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +const sharedTypes = { + // 16 validators + CompactAssignments: 'CompactAssignmentsWith16', + DispatchErrorModule: 'DispatchErrorModuleU8', + RawSolution: 'RawSolutionWith16', + // general + Keys: 'SessionKeys6', + ProxyType: { + _enum: ['Any', 'NonTransfer', 'Staking', 'SudoBalances', 'IdentityJudgement', 'CancelProxy'] + }, + Weight: 'WeightV1' +}; + +const addrAccountIdTypes = { + AccountInfo: 'AccountInfoWithRefCount', + Address: 'AccountId', + CompactAssignments: 'CompactAssignmentsWith16', + DispatchErrorModule: 'DispatchErrorModuleU8', + LookupSource: 'AccountId', + Keys: 'SessionKeys5', + RawSolution: 'RawSolutionWith16', + ValidatorPrefs: 'ValidatorPrefsWithCommission' +}; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [1, 2], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + Multiplier: 'Fixed64', + OpenTip: 'OpenTipTo225', + RefCount: 'RefCountTo259', + Weight: 'u32' + } + }, + { + minmax: [3, 22], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + OpenTip: 'OpenTipTo225', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [23, 42], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [43, 44], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [45, 47], + types: { + ...sharedTypes, + ...addrAccountIdTypes + } + }, + { + minmax: [48, 49], + types: { + ...sharedTypes, + AccountInfo: 'AccountInfoWithDualRefCount' + } + }, + { + minmax: [50, 9099], + types: { + ...sharedTypes, + ...mapXcmTypes('V0') + } + }, + { + minmax: [9100, 9105], + types: { + ...sharedTypes, + ...mapXcmTypes('V1') + } + }, + { + // metadata v14 + minmax: [9106, undefined], + types: { + Weight: 'WeightV1' + } + } + // , + // { + // // weight v2 introduction + // minmax: [9300, undefined], + // types: { + // Weight: 'WeightV2' + // } + // } +]; diff --git a/packages/types-known/src/spec/index.ts b/packages/types-known/src/spec/index.ts new file mode 100644 index 0000000..b5fa8bc --- /dev/null +++ b/packages/types-known/src/spec/index.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { versioned as centrifugeChain } from './centrifuge-chain.js'; +import { versioned as dicle } from './dicle.js'; +import { versioned as node } from './node.js'; +import { versioned as nodeTemplate } from './node-template.js'; +import { versioned as pezkuwi } from './pezkuwi.js'; +import { versioned as pezkuwichain } from './pezkuwichain.js'; +import { versioned as shell } from './shell.js'; +import { versioned as statemine } from './statemine.js'; +import { versioned as statemint } from './statemint.js'; +import { versioned as westmint } from './westmint.js'; +import { versioned as zagros } from './zagros.js'; + +// Type overrides for specific spec types & versions as given in runtimeVersion +export const typesSpec: Record = { + 'centrifuge-chain': centrifugeChain, + dicle, + node, + 'node-template': nodeTemplate, + pezkuwi, + pezkuwichain, + shell, + statemine, + statemint, + zagros, + westmint +}; diff --git a/packages/types-known/src/spec/node-template.ts b/packages/types-known/src/spec/node-template.ts new file mode 100644 index 0000000..9da596b --- /dev/null +++ b/packages/types-known/src/spec/node-template.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, undefined], + types: { + // nothing, API tracks master + // (v2 weights are not yet the default) + Weight: 'WeightV2' + } + } +]; diff --git a/packages/types-known/src/spec/node.ts b/packages/types-known/src/spec/node.ts new file mode 100644 index 0000000..9da596b --- /dev/null +++ b/packages/types-known/src/spec/node.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, undefined], + types: { + // nothing, API tracks master + // (v2 weights are not yet the default) + Weight: 'WeightV2' + } + } +]; diff --git a/packages/types-known/src/spec/pezkuwi.ts b/packages/types-known/src/spec/pezkuwi.ts new file mode 100644 index 0000000..bd64c43 --- /dev/null +++ b/packages/types-known/src/spec/pezkuwi.ts @@ -0,0 +1,112 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +const sharedTypes = { + CompactAssignments: 'CompactAssignmentsWith16', + DispatchErrorModule: 'DispatchErrorModuleU8', + RawSolution: 'RawSolutionWith16', + Keys: 'SessionKeys6', + ProxyType: { + _enum: { + Any: 0, + NonTransfer: 1, + Governance: 2, + Staking: 3, + UnusedSudoBalances: 4, + IdentityJudgement: 5, + CancelProxy: 6, + Auction: 7 + } + }, + Weight: 'WeightV1' +}; + +const addrAccountIdTypes = { + AccountInfo: 'AccountInfoWithRefCount', + Address: 'AccountId', + DispatchErrorModule: 'DispatchErrorModuleU8', + Keys: 'SessionKeys5', + LookupSource: 'AccountId', + ValidatorPrefs: 'ValidatorPrefsWithCommission' +}; + +// these are override types for Pezkuwi +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, 10], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + OpenTip: 'OpenTipTo225', + RefCount: 'RefCountTo259', + ElectionResult: 'ElectionResultToSpec10' + } + }, + { + minmax: [11, 12], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + OpenTip: 'OpenTipTo225', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [13, 22], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [23, 24], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + RefCount: 'RefCountTo259' + } + }, + { + minmax: [25, 27], + types: { + ...sharedTypes, + ...addrAccountIdTypes + } + }, + { + minmax: [28, 29], + types: { + ...sharedTypes, + AccountInfo: 'AccountInfoWithDualRefCount' + } + }, + { + minmax: [30, 9109], + types: { + ...sharedTypes + } + }, + { + // metadata v14 + minmax: [9110, undefined], + types: { + Weight: 'WeightV1' + } + } + // , + // { + // // weight v2 introduction + // minmax: [9300, undefined], + // types: { + // Weight: 'WeightV2' + // } + // } +]; diff --git a/packages/types-known/src/spec/pezkuwichain.ts b/packages/types-known/src/spec/pezkuwichain.ts new file mode 100644 index 0000000..9a52cb3 --- /dev/null +++ b/packages/types-known/src/spec/pezkuwichain.ts @@ -0,0 +1,73 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +// structs need to be in order +/* eslint-disable sort-keys */ + +const sharedTypes = { + DispatchErrorModule: 'DispatchErrorModuleU8', + FullIdentification: '()', // No staking, only session (as per config) + Keys: 'SessionKeys7B', + Weight: 'WeightV1' +}; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, 200], + types: { + ...sharedTypes, + AccountInfo: 'AccountInfoWithDualRefCount', + Address: 'AccountId', + LookupSource: 'AccountId' + } + }, + { + minmax: [201, 214], + types: { + ...sharedTypes, + AccountInfo: 'AccountInfoWithDualRefCount' + } + }, + { + minmax: [215, 228], + types: { + ...sharedTypes, + Keys: 'SessionKeys6' + } + }, + { + minmax: [229, 9099], + types: { + ...sharedTypes, + ...mapXcmTypes('V0') + } + }, + { + minmax: [9100, 9105], + types: { + ...sharedTypes, + ...mapXcmTypes('V1') + } + }, + { + // metadata v14 + minmax: [9106, undefined], + types: { + Weight: 'WeightV1' + } + } + // , + // { + // // weight v2 introduction + // minmax: [9300, undefined], + // types: { + // Weight: 'WeightV2' + // } + // } +]; diff --git a/packages/types-known/src/spec/shell.ts b/packages/types-known/src/spec/shell.ts new file mode 100644 index 0000000..9d81c18 --- /dev/null +++ b/packages/types-known/src/spec/shell.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, undefined], + types: { + // nothing, limited runtime + } + } +]; diff --git a/packages/types-known/src/spec/statemine.ts b/packages/types-known/src/spec/statemine.ts new file mode 100644 index 0000000..435d88d --- /dev/null +++ b/packages/types-known/src/spec/statemine.ts @@ -0,0 +1,62 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +const sharedTypes = { + DispatchErrorModule: 'DispatchErrorModuleU8', + TAssetBalance: 'u128', + ProxyType: { + _enum: [ + 'Any', + 'NonTransfer', + 'CancelProxy', + 'Assets', + 'AssetOwner', + 'AssetManager', + 'Staking' + ] + }, + Weight: 'WeightV1' +}; + +// these are override types for Statemine, Westmint +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, 3], + types: { + // Enum was modified mid-flight - + // https://github.com/pezkuwichain/bizinikiwi/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498 + DispatchError: 'DispatchErrorPre6First', + ...sharedTypes, + ...mapXcmTypes('V0') + } + }, + { + minmax: [4, 5], + types: { + // As above, see https://github.com/pezkuwichain/pezkuwi-api/issues/5301 + DispatchError: 'DispatchErrorPre6First', + ...sharedTypes, + ...mapXcmTypes('V1') + } + }, + { + // metadata V14 + minmax: [500, 9999], + types: { + Weight: 'WeightV1', + TAssetConversion: 'Option' + } + }, + { + minmax: [10000, undefined], + types: { + Weight: 'WeightV1' + } + } +]; diff --git a/packages/types-known/src/spec/statemint.ts b/packages/types-known/src/spec/statemint.ts new file mode 100644 index 0000000..594d874 --- /dev/null +++ b/packages/types-known/src/spec/statemint.ts @@ -0,0 +1,74 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +const sharedTypes = { + DispatchErrorModule: 'DispatchErrorModuleU8', + TAssetBalance: 'u128', + ProxyType: { + _enum: [ + 'Any', + 'NonTransfer', + 'CancelProxy', + 'Assets', + 'AssetOwner', + 'AssetManager', + 'Staking' + ] + }, + Weight: 'WeightV1' +}; + +// these are override types for Statemine, Statemint, Westmint +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, 3], + types: { + // Enum was modified mid-flight - + // https://github.com/pezkuwichain/bizinikiwi/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498 + DispatchError: 'DispatchErrorPre6First', + ...sharedTypes, + ...mapXcmTypes('V0') + } + }, + { + minmax: [4, 5], + types: { + // As above, see https://github.com/pezkuwichain/pezkuwi-api/issues/5301 + DispatchError: 'DispatchErrorPre6First', + ...sharedTypes, + ...mapXcmTypes('V1') + } + }, + { + // metadata V14 + minmax: [500, 1001003], + types: { + Weight: 'WeightV1', + TAssetConversion: 'Option' + } + }, + // ref: https://github.com/pezkuwichain/pezkuwi-api/pull/6208 + // The following patches an issue where pezkuwi asset hub block 9686187, can't be decoding using xcm v5 + // mappings. + { + minmax: [1002000, undefined], + types: { + Weight: 'WeightV1', + ...mapXcmTypes('V4') + } + } + // , + // { + // // weight v2 introduction + // minmax: [9300, undefined], + // types: { + // Weight: 'WeightV2' + // } + // } +]; diff --git a/packages/types-known/src/spec/westmint.ts b/packages/types-known/src/spec/westmint.ts new file mode 100644 index 0000000..d781fd4 --- /dev/null +++ b/packages/types-known/src/spec/westmint.ts @@ -0,0 +1,62 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +const sharedTypes = { + DispatchErrorModule: 'DispatchErrorModuleU8', + TAssetBalance: 'u128', + ProxyType: { + _enum: [ + 'Any', + 'NonTransfer', + 'CancelProxy', + 'Assets', + 'AssetOwner', + 'AssetManager', + 'Staking' + ] + }, + Weight: 'WeightV1' +}; + +// these are override types for Statemine, Westmint +export const versioned: OverrideVersionedType[] = [ + { + minmax: [0, 3], + types: { + // Enum was modified mid-flight - + // https://github.com/pezkuwichain/bizinikiwi/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498 + DispatchError: 'DispatchErrorPre6First', + ...sharedTypes, + ...mapXcmTypes('V0') + } + }, + { + minmax: [4, 5], + types: { + // As above, see https://github.com/pezkuwichain/pezkuwi-api/issues/5301 + DispatchError: 'DispatchErrorPre6First', + ...sharedTypes, + ...mapXcmTypes('V1') + } + }, + { + // metadata V14 + minmax: [500, 9434], + types: { + Weight: 'WeightV1', + TAssetConversion: 'Option' + } + }, + { + minmax: [9435, undefined], + types: { + Weight: 'WeightV1' + } + } +]; diff --git a/packages/types-known/src/spec/zagros.ts b/packages/types-known/src/spec/zagros.ts new file mode 100644 index 0000000..0a3a621 --- /dev/null +++ b/packages/types-known/src/spec/zagros.ts @@ -0,0 +1,125 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable sort-keys */ + +import type { OverrideVersionedType } from '@pezkuwi/types/types'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +const sharedTypes = { + // 16 validators + CompactAssignments: 'CompactAssignmentsWith16', + DispatchErrorModule: 'DispatchErrorModuleU8', + RawSolution: 'RawSolutionWith16', + // general + Keys: 'SessionKeys6', + ProxyType: { + _enum: ['Any', 'NonTransfer', 'Staking', 'SudoBalances', 'IdentityJudgement', 'CancelProxy'] + }, + Weight: 'WeightV1' +}; + +const addrAccountIdTypes = { + AccountInfo: 'AccountInfoWithRefCount', + Address: 'AccountId', + CompactAssignments: 'CompactAssignmentsWith16', + DispatchErrorModule: 'DispatchErrorModuleU8', + LookupSource: 'AccountId', + Keys: 'SessionKeys5', + RawSolution: 'RawSolutionWith16', + ValidatorPrefs: 'ValidatorPrefsWithCommission' +}; + +export const versioned: OverrideVersionedType[] = [ + { + minmax: [1, 2], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + Multiplier: 'Fixed64', + OpenTip: 'OpenTipTo225', + RefCount: 'RefCountTo259', + Weight: 'u32' + } + }, + { + minmax: [3, 22], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + OpenTip: 'OpenTipTo225', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [23, 42], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + CompactAssignments: 'CompactAssignmentsTo257', + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [43, 44], + types: { + ...sharedTypes, + ...addrAccountIdTypes, + DispatchInfo: 'DispatchInfoTo244', + Heartbeat: 'HeartbeatTo244', + RefCount: 'RefCountTo259' + } + }, + { + minmax: [45, 47], + types: { + ...sharedTypes, + ...addrAccountIdTypes + } + }, + { + minmax: [48, 49], + types: { + ...sharedTypes, + AccountInfo: 'AccountInfoWithDualRefCount' + } + }, + { + minmax: [50, 9099], + types: { + ...sharedTypes, + ...mapXcmTypes('V0') + } + }, + { + minmax: [9100, 9105], + types: { + ...sharedTypes, + ...mapXcmTypes('V1') + } + }, + { + // metadata v14 + minmax: [9106, undefined], + types: { + Weight: 'WeightV1' + } + } + // , + // { + // // weight v2 introduction + // minmax: [9300, undefined], + // types: { + // Weight: 'WeightV2' + // } + // } +]; diff --git a/packages/types-known/src/upgrades/e2e/dicle.ts b/packages/types-known/src/upgrades/e2e/dicle.ts new file mode 100644 index 0000000..2841084 --- /dev/null +++ b/packages/types-known/src/upgrades/e2e/dicle.ts @@ -0,0 +1,6434 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Auto-generated from on-chain data & manual definitions, do not edit +/* eslint-disable quotes, comma-spacing */ + +import type { ChainUpgradesExpanded } from '../types.js'; + +export const upgrades: ChainUpgradesExpanded = [ + [ + 214356, + 4, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 1 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 392764, + 7, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 409740, + 8, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 809976, + 20, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 877581, + 24, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 879238, + 25, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 889472, + 26, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 902937, + 27, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 932751, + 28, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 991142, + 29, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1030162, + 31, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1119657, + 32, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1199282, + 33, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1342534, + 34, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1392263, + 35, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1431703, + 36, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1433369, + 37, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1490972, + 41, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2087397, + 43, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2316688, + 44, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2549864, + 45, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 3925782, + 46, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 3925843, + 47, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 4207800, + 48, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 4627944, + 49, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5124076, + 50, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5478664, + 900, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5482450, + 9000, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5584305, + 9010, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5784566, + 9030, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5879822, + 9031, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5896856, + 9032, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5897316, + 9033, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6117927, + 9050, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6210274, + 9070, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6379314, + 9080, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6979141, + 9090, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7568453, + 9100, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7766394, + 9111, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7911691, + 9120, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7968866, + 9121, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7982889, + 9122, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 8514322, + 9130, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9091726, + 9140, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9091774, + 9150, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9406726, + 9160, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9921066, + 9170, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10007115, + 9180, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10480973, + 9190, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10578091, + 9200, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10678509, + 9210, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10811001, + 9220, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11096116, + 9230, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11409279, + 9250, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11584820, + 9251, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11716837, + 9260, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11876919, + 9261, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11987927, + 9270, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12077324, + 9271, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12301871, + 9280, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12604343, + 9290, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12841034, + 9300, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13128237, + 9310, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13272363, + 9320, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13483497, + 9330, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13649433, + 9340, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13761100, + 9350, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13847400, + 9360, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 14249200, + 9370, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 14576855, + 9380, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 14849830, + 9390, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 15146832, + 9400, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 15332317, + 9401, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 15661793, + 9420, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 16165469, + 9430, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 18293984, + 102000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 7 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 18293991, + 103000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 8 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 18451783, + 104000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 9 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 18679741, + 1005000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 9 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19166695, + 1006000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19234157, + 1006001, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19542944, + 1007000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19621258, + 1007001, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19761406, + 1008000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20056997, + 1009000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20368318, + 1010000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20649086, + 1011000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21217837, + 1011001, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21300429, + 1013000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21460051, + 1014000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21925427, + 1015000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 4 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 22500517, + 1016000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 22759684, + 1016001, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 23056976, + 1016002, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 23544582, + 1017000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0x2609be83ac4468dc", + 1 + ] + ] + ], + [ + 24002343, + 1017001, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0x2609be83ac4468dc", + 1 + ] + ] + ] +]; diff --git a/packages/types-known/src/upgrades/e2e/index.spec.ts b/packages/types-known/src/upgrades/e2e/index.spec.ts new file mode 100644 index 0000000..955491c --- /dev/null +++ b/packages/types-known/src/upgrades/e2e/index.spec.ts @@ -0,0 +1,66 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { HexString } from '@pezkuwi/util/types'; +import type { ChainUpgradesExpanded } from '../types.js'; + +import fs from 'node:fs'; + +import { ApiPromise, WsProvider } from '@pezkuwi/api'; +import { stringify } from '@pezkuwi/util'; + +import * as allMan from '../manual/index.js'; +import * as allGen from './index.js'; + +const keys = ['dicle', 'pezkuwi'] as const; +const urls = { + 'asset-hub-dicle': 'wss://dicle-asset-hub-rpc.pezkuwichain.io', + 'asset-hub-pezkuwi': 'wss://pezkuwi-asset-hub-rpc.pezkuwichain.io', + dicle: 'wss://dicle-rpc.pezkuwichain.io', + pezkuwi: 'wss://rpc.pezkuwichain.io' +}; + +for (const chain of keys) { + describe(`generate ${chain}`, (): void => { + const avail = allGen[chain]; + const final: ChainUpgradesExpanded = []; + let api: ApiPromise; + + beforeAll(async (): Promise => { + api = await ApiPromise.create({ provider: new WsProvider(urls[chain]) }); + }); + + afterAll(async (): Promise => { + fs.writeFileSync(`packages/types-known/src/upgrades/e2e/${chain}.ts`, `// Copyright 2017-${new Date().getFullYear()} @pezkuwi/types-known authors & contributors + // SPDX-License-Identifier: Apache-2.0 + + // Auto-generated from on-chain data & manual definitions, do not edit + /* eslint-disable quotes, comma-spacing */ + + import type { ChainUpgradesExpanded } from '../types.js'; + + export const upgrades: ChainUpgradesExpanded = ${stringify(final, 2)}; + `); + await api.disconnect(); + }); + + for (const [blockNumber, specVersion] of allMan[chain]) { + // eslint-disable-next-line jest/expect-expect + it(`blockNumber=${blockNumber}, specVersion=${specVersion}`, async (): Promise => { + const found = avail.find(([n, s]) => n === blockNumber && s === specVersion); + + if (found) { + final.push(found); + } else { + const blockHash = await api.rpc.chain.getBlockHash(blockNumber + 1); + const runtime = await api.rpc.state.getRuntimeVersion(blockHash); + const apis = runtime.apis.map(([api, version]): [HexString, number] => [api.toHex(), version.toNumber()]); + + final.push([blockNumber, specVersion, apis]); + } + }); + } + }); +} diff --git a/packages/types-known/src/upgrades/e2e/index.ts b/packages/types-known/src/upgrades/e2e/index.ts new file mode 100644 index 0000000..9378f7b --- /dev/null +++ b/packages/types-known/src/upgrades/e2e/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { upgrades as dicle } from './dicle.js'; +export { upgrades as pezkuwi } from './pezkuwi.js'; +export { upgrades as zagros } from './zagros.js'; diff --git a/packages/types-known/src/upgrades/e2e/pezkuwi.ts b/packages/types-known/src/upgrades/e2e/pezkuwi.ts new file mode 100644 index 0000000..5bfae2b --- /dev/null +++ b/packages/types-known/src/upgrades/e2e/pezkuwi.ts @@ -0,0 +1,3712 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Auto-generated from on-chain data & manual definitions, do not edit +/* eslint-disable quotes, comma-spacing */ + +import type { ChainUpgradesExpanded } from '../types.js'; + +export const upgrades: ChainUpgradesExpanded = [ + [ + 0, + 0, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 29231, + 1, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 188836, + 5, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 199405, + 6, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 214264, + 7, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 244358, + 8, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 303079, + 9, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 314201, + 10, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 342400, + 11, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 443963, + 12, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 528470, + 13, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 687751, + 14, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 746085, + 15, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 787923, + 16, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 799302, + 17, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1205128, + 18, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1603423, + 23, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1733218, + 24, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2005673, + 25, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2436698, + 26, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 3613564, + 27, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 3899547, + 28, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 4345767, + 29, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 4876134, + 30, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5661442, + 9050, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6321619, + 9080, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6713249, + 9090, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7217907, + 9100, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7229126, + 9110, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7560558, + 9122, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 8115869, + 9140, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 8638103, + 9151, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9280179, + 9170, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9738717, + 9180, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10156856, + 9190, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10458576, + 9200, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10655116, + 9220, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10879371, + 9230, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11328884, + 9250, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11532856, + 9260, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11933818, + 9270, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 12217535, + 9280, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ] + ] + ], + [ + 12245277, + 9281, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ] + ] + ], + [ + 12532644, + 9291, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ] + ] + ], + [ + 12876189, + 9300, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ] + ] + ], + [ + 13800015, + 9340, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ] + ] + ], + [ + 14188833, + 9360, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ] + ] + ], + [ + 14543918, + 9370, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ] + ] + ], + [ + 15978362, + 9420, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ] + ] + ], + [ + 16450000, + 9430, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ] + ] + ], + [ + 17840000, + 9431, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ] + ] + ], + [ + 18407475, + 1000001, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 5 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ] + ] + ], + [ + 19551000, + 1001002, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 5 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20181758, + 1001003, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 5 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20438530, + 1002000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21169168, + 1002004, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21455374, + 1002005, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21558004, + 1002006, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21800141, + 1002007, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ] +]; diff --git a/packages/types-known/src/upgrades/e2e/zagros.ts b/packages/types-known/src/upgrades/e2e/zagros.ts new file mode 100644 index 0000000..2841084 --- /dev/null +++ b/packages/types-known/src/upgrades/e2e/zagros.ts @@ -0,0 +1,6434 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Auto-generated from on-chain data & manual definitions, do not edit +/* eslint-disable quotes, comma-spacing */ + +import type { ChainUpgradesExpanded } from '../types.js'; + +export const upgrades: ChainUpgradesExpanded = [ + [ + 214356, + 4, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 1 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 392764, + 7, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 409740, + 8, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 809976, + 20, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 877581, + 24, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 879238, + 25, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 889472, + 26, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 902937, + 27, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 932751, + 28, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 991142, + 29, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1030162, + 31, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1119657, + 32, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1199282, + 33, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1342534, + 34, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1392263, + 35, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1431703, + 36, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1433369, + 37, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 1490972, + 41, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2087397, + 43, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2316688, + 44, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 2549864, + 45, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 3925782, + 46, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 3925843, + 47, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 4207800, + 48, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 4627944, + 49, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5124076, + 50, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5478664, + 900, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5482450, + 9000, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 4 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5584305, + 9010, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5784566, + 9030, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5879822, + 9031, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5896856, + 9032, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 5897316, + 9033, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6117927, + 9050, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6210274, + 9070, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 2 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6379314, + 9080, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 6979141, + 9090, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7568453, + 9100, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7766394, + 9111, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7911691, + 9120, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7968866, + 9121, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 7982889, + 9122, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 8514322, + 9130, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9091726, + 9140, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9091774, + 9150, + [ + [ + "0xdf6acb689907609b", + 3 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9406726, + 9160, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 9921066, + 9170, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10007115, + 9180, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 5 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10480973, + 9190, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10578091, + 9200, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10678509, + 9210, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 10811001, + 9220, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11096116, + 9230, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11409279, + 9250, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11584820, + 9251, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11716837, + 9260, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11876919, + 9261, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ] + ] + ], + [ + 11987927, + 9270, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12077324, + 9271, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12301871, + 9280, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12604343, + 9290, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 2 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 12841034, + 9300, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13128237, + 9310, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 1 + ], + [ + "0xf3ff14d5ab527059", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13272363, + 9320, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13483497, + 9330, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13649433, + 9340, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13761100, + 9350, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 13847400, + 9360, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 14249200, + 9370, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 2 + ], + [ + "0xf3ff14d5ab527059", + 2 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 14576855, + 9380, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 3 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ] + ] + ], + [ + 14849830, + 9390, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 1 + ], + [ + "0x91d5df18b0d2cf58", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 15146832, + 9400, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 15332317, + 9401, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 3 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 15661793, + 9420, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 16165469, + 9430, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 4 + ], + [ + "0x49eaaf1b548a0cb0", + 2 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ] + ], + [ + 18293984, + 102000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 7 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 18293991, + 103000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 8 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 18451783, + 104000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 9 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 18679741, + 1005000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 9 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19166695, + 1006000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19234157, + 1006001, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19542944, + 1007000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19621258, + 1007001, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 19761406, + 1008000, + [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20056997, + 1009000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20368318, + 1010000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 20649086, + 1011000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21217837, + 1011001, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21300429, + 1013000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21460051, + 1014000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 21925427, + 1015000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 4 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 22500517, + 1016000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 22759684, + 1016001, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 23056976, + 1016002, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ] + ], + [ + 23544582, + 1017000, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0x2609be83ac4468dc", + 1 + ] + ] + ], + [ + 24002343, + 1017001, + [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0x2609be83ac4468dc", + 1 + ] + ] + ] +]; diff --git a/packages/types-known/src/upgrades/index.spec.ts b/packages/types-known/src/upgrades/index.spec.ts new file mode 100644 index 0000000..fef992e --- /dev/null +++ b/packages/types-known/src/upgrades/index.spec.ts @@ -0,0 +1,118 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { ChainUpgradesExpanded, ChainUpgradesRaw } from './types.js'; + +import { stringify, u8aEq } from '@pezkuwi/util'; + +import * as allGen from './e2e/index.js'; +import * as allMan from './manual/index.js'; +import { upgrades } from './index.js'; + +interface TestDef { + genesisHash: string; + network: string; + versions: [number, [number, number]][]; +} + +const TESTS: TestDef[] = [ + { + genesisHash: '0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe', + network: 'dicle', + versions: [ + [0, [0, 1020]], + [17, [901442, 1045]] + ] + }, + { + genesisHash: '0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3', + network: 'pezkuwi', + versions: [ + [0, [0, 0]], + [19, [2436698, 26]] + ] + }, + { + genesisHash: '0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e', + network: 'dicle', + versions: [ + [0, [214356, 4]], + [23, [4207800, 48]] + ] + } +]; + +function checkOrder (network: string, versions: [number, number, ...unknown[]][]): void { + const ooo = versions.filter((curr, index): boolean => { + const prev = versions[index - 1]; + + return index === 0 + ? false + : curr[0] <= prev[0] || curr[1] <= prev[1]; + }); + + if (ooo.length) { + throw new Error(`${network}: Mismatched upgrade ordering: ${stringify(ooo)}`); + } +} + +describe('generated', (): void => { + it('should have all the chains', (): void => { + expect(Object.keys(allMan).sort()).toEqual(Object.keys(allGen).sort()); + }); + + for (const chain of Object.keys(allMan)) { + describe(`${chain}`, (): void => { + // eslint-disable-next-line jest/expect-expect + it('should have all generated', (): void => { + const missing = allMan[chain as keyof typeof allMan].filter(([na, sa]) => + !allGen[chain as keyof typeof allGen].some(([nb, sb]) => + nb === na && + sb === sa + ) + ); + + if (missing.length !== 0) { + throw new Error(`${chain}:: missing generated apis found, run yarn test:one packages/types-known/src/upgrades/e2e`); + } + }); + + // eslint-disable-next-line jest/expect-expect + it('manual should be correctly ordered', (): void => { + checkOrder(chain, (allGen as Record)[chain]); + }); + + // eslint-disable-next-line jest/expect-expect + it('generated should be correctly ordered', (): void => { + checkOrder(chain, (allMan as Record)[chain]); + }); + }); + } +}); + +describe('upgrades', (): void => { + TESTS.forEach(({ genesisHash, network, versions }): void => { + describe(`${network}`, (): void => { + const chain = upgrades.find((n) => n.network === network); + + if (!chain) { + throw new Error(`Unable to find the entry for ${network}`); + } + + it('has a valid genesisHash', (): void => { + expect(u8aEq(chain.genesisHash, genesisHash)).toBe(true); + }); + + versions.forEach(([index, [blockNumber, specVersion]]): void => { + it(`has a valid entry at index ${index}`, (): void => { + const version = chain.versions[index]; + + expect(version.blockNumber.eqn(blockNumber)).toBe(true); + expect(version.specVersion.eqn(specVersion)).toBe(true); + }); + }); + }); + }); +}); diff --git a/packages/types-known/src/upgrades/index.ts b/packages/types-known/src/upgrades/index.ts new file mode 100644 index 0000000..b735a91 --- /dev/null +++ b/packages/types-known/src/upgrades/index.ts @@ -0,0 +1,40 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ChainUpgrades } from '@pezkuwi/types/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { ChainUpgradesExpanded } from './types.js'; + +import { selectableNetworks } from '@pezkuwi/networks'; +import { BN, hexToU8a } from '@pezkuwi/util'; + +import * as allKnown from './e2e/index.js'; + +// testnets are not available in the networks map +const NET_EXTRA: Record = { + dicle: { + genesisHash: ['0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'] + } +}; + +/** @internal */ +function mapRaw ([network, versions]: [string, ChainUpgradesExpanded]): ChainUpgrades { + const chain = selectableNetworks.find((n) => n.network === network) || NET_EXTRA[network]; + + if (!chain) { + throw new Error(`Unable to find info for chain ${network}`); + } + + return { + genesisHash: hexToU8a(chain.genesisHash[0]), + network, + versions: versions.map(([blockNumber, specVersion, apis]) => ({ + apis, + blockNumber: new BN(blockNumber), + specVersion: new BN(specVersion) + })) + }; +} + +// Type overrides for specific spec types & versions as given in runtimeVersion +export const upgrades = Object.entries(allKnown).map(mapRaw); diff --git a/packages/types-known/src/upgrades/manual/dicle.ts b/packages/types-known/src/upgrades/manual/dicle.ts new file mode 100644 index 0000000..f6b4a09 --- /dev/null +++ b/packages/types-known/src/upgrades/manual/dicle.ts @@ -0,0 +1,27 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ChainUpgradesRaw } from '../types.js'; + +export const upgrades: ChainUpgradesRaw = [ + [214356, 4], [392764, 7], [409740, 8], [809976, 20], [877581, 24], + [879238, 25], [889472, 26], [902937, 27], [932751, 28], [991142, 29], + [1030162, 31], [1119657, 32], [1199282, 33], [1342534, 34], [1392263, 35], + [1431703, 36], [1433369, 37], [1490972, 41], [2087397, 43], [2316688, 44], + [2549864, 45], [3925782, 46], [3925843, 47], [4207800, 48], [4627944, 49], + [5124076, 50], [5478664, 900], [5482450, 9000], [5584305, 9010], [5784566, 9030], + [5879822, 9031], [5896856, 9032], [5897316, 9033], [6117927, 9050], [6210274, 9070], + [6379314, 9080], [6979141, 9090], [7568453, 9100], [7766394, 9111], [7911691, 9120], + [7968866, 9121], [7982889, 9122], [8514322, 9130], [9091726, 9140], [9091774, 9150], + [9406726, 9160], [9921066, 9170], [10007115, 9180], [10480973, 9190], [10578091, 9200], + [10678509, 9210], [10811001, 9220], [11096116, 9230], [11409279, 9250], [11584820, 9251], + [11716837, 9260], [11876919, 9261], [11987927, 9270], [12077324, 9271], [12301871, 9280], + [12604343, 9290], [12841034, 9300], [13128237, 9310], [13272363, 9320], [13483497, 9330], + [13649433, 9340], [13761100, 9350], [13847400, 9360], [14249200, 9370], [14576855, 9380], + [14849830, 9390], [15146832, 9400], [15332317, 9401], [15661793, 9420], [16165469, 9430], + [18293984, 102000], [18293991, 103000], [18451783, 104000], [18679741, 1005000], [19166695, 1006000], + [19234157, 1006001], [19542944, 1007000], [19621258, 1007001], [19761406, 1008000], [20056997, 1009000], + [20368318, 1010000], [20649086, 1011000], [21217837, 1011001], [21300429, 1013000], [21460051, 1014000], + [21925427, 1015000], [22500517, 1016000], [22759684, 1016001], [23056976, 1016002], [23544582, 1017000], + [24002343, 1017001] +]; diff --git a/packages/types-known/src/upgrades/manual/index.ts b/packages/types-known/src/upgrades/manual/index.ts new file mode 100644 index 0000000..9378f7b --- /dev/null +++ b/packages/types-known/src/upgrades/manual/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { upgrades as dicle } from './dicle.js'; +export { upgrades as pezkuwi } from './pezkuwi.js'; +export { upgrades as zagros } from './zagros.js'; diff --git a/packages/types-known/src/upgrades/manual/pezkuwi.ts b/packages/types-known/src/upgrades/manual/pezkuwi.ts new file mode 100644 index 0000000..6285259 --- /dev/null +++ b/packages/types-known/src/upgrades/manual/pezkuwi.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ChainUpgradesRaw } from '../types.js'; + +export const upgrades: ChainUpgradesRaw = [ + [0, 0], [29231, 1], [188836, 5], [199405, 6], [214264, 7], + [244358, 8], [303079, 9], [314201, 10], [342400, 11], [443963, 12], + [528470, 13], [687751, 14], [746085, 15], [787923, 16], [799302, 17], + [1205128, 18], [1603423, 23], [1733218, 24], [2005673, 25], [2436698, 26], + [3613564, 27], [3899547, 28], [4345767, 29], [4876134, 30], [5661442, 9050], + [6321619, 9080], [6713249, 9090], [7217907, 9100], [7229126, 9110], [7560558, 9122], + [8115869, 9140], [8638103, 9151], [9280179, 9170], [9738717, 9180], [10156856, 9190], + [10458576, 9200], [10655116, 9220], [10879371, 9230], [11328884, 9250], [11532856, 9260], + [11933818, 9270], [12217535, 9280], [12245277, 9281], [12532644, 9291], [12876189, 9300], + [13800015, 9340], [14188833, 9360], [14543918, 9370], [15978362, 9420], [16450000, 9430], + [17840000, 9431], [18407475, 1000001], [19551000, 1001002], [20181758, 1001003], + [20438530, 1002000], [21169168, 1002004], [21455374, 1002005], [21558004, 1002006], [21800141, 1002007] +]; diff --git a/packages/types-known/src/upgrades/manual/zagros.ts b/packages/types-known/src/upgrades/manual/zagros.ts new file mode 100644 index 0000000..f6b4a09 --- /dev/null +++ b/packages/types-known/src/upgrades/manual/zagros.ts @@ -0,0 +1,27 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ChainUpgradesRaw } from '../types.js'; + +export const upgrades: ChainUpgradesRaw = [ + [214356, 4], [392764, 7], [409740, 8], [809976, 20], [877581, 24], + [879238, 25], [889472, 26], [902937, 27], [932751, 28], [991142, 29], + [1030162, 31], [1119657, 32], [1199282, 33], [1342534, 34], [1392263, 35], + [1431703, 36], [1433369, 37], [1490972, 41], [2087397, 43], [2316688, 44], + [2549864, 45], [3925782, 46], [3925843, 47], [4207800, 48], [4627944, 49], + [5124076, 50], [5478664, 900], [5482450, 9000], [5584305, 9010], [5784566, 9030], + [5879822, 9031], [5896856, 9032], [5897316, 9033], [6117927, 9050], [6210274, 9070], + [6379314, 9080], [6979141, 9090], [7568453, 9100], [7766394, 9111], [7911691, 9120], + [7968866, 9121], [7982889, 9122], [8514322, 9130], [9091726, 9140], [9091774, 9150], + [9406726, 9160], [9921066, 9170], [10007115, 9180], [10480973, 9190], [10578091, 9200], + [10678509, 9210], [10811001, 9220], [11096116, 9230], [11409279, 9250], [11584820, 9251], + [11716837, 9260], [11876919, 9261], [11987927, 9270], [12077324, 9271], [12301871, 9280], + [12604343, 9290], [12841034, 9300], [13128237, 9310], [13272363, 9320], [13483497, 9330], + [13649433, 9340], [13761100, 9350], [13847400, 9360], [14249200, 9370], [14576855, 9380], + [14849830, 9390], [15146832, 9400], [15332317, 9401], [15661793, 9420], [16165469, 9430], + [18293984, 102000], [18293991, 103000], [18451783, 104000], [18679741, 1005000], [19166695, 1006000], + [19234157, 1006001], [19542944, 1007000], [19621258, 1007001], [19761406, 1008000], [20056997, 1009000], + [20368318, 1010000], [20649086, 1011000], [21217837, 1011001], [21300429, 1013000], [21460051, 1014000], + [21925427, 1015000], [22500517, 1016000], [22759684, 1016001], [23056976, 1016002], [23544582, 1017000], + [24002343, 1017001] +]; diff --git a/packages/types-known/src/upgrades/types.ts b/packages/types-known/src/upgrades/types.ts new file mode 100644 index 0000000..201c8c9 --- /dev/null +++ b/packages/types-known/src/upgrades/types.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; + +export type ChainUpgradesRaw = [blockNumber: number, specVersion: number][]; + +export type ChainUpgradesExpanded = [blockNumber: number, specVersion: number, runtimeApis: [apiHash: HexString, apiVersion: number][]][]; diff --git a/packages/types-known/src/util.ts b/packages/types-known/src/util.ts new file mode 100644 index 0000000..3c0b7fa --- /dev/null +++ b/packages/types-known/src/util.ts @@ -0,0 +1,128 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtDef } from '@pezkuwi/types/extrinsic/signedExtensions/types'; +import type { Hash } from '@pezkuwi/types/interfaces'; +import type { ChainUpgradeVersion, CodecHasher, DefinitionRpc, DefinitionRpcSub, DefinitionsCall, OverrideModuleType, OverrideVersionedType, Registry, RegistryTypes } from '@pezkuwi/types/types'; +import type { Text } from '@pezkuwi/types-codec'; +import type { BN } from '@pezkuwi/util'; + +import { bnToBn } from '@pezkuwi/util'; + +import { typesChain } from './chain/index.js'; +import { typesSpec } from './spec/index.js'; +import { upgrades } from './upgrades/index.js'; + +/** + * @description Perform the callback function using the stringified spec/chain + * @internal + * */ +function withNames (chainName: Text | string, specName: Text | string, fn: (c: string, s: string) => T): T { + return fn(chainName.toString(), specName.toString()); +} + +/** + * @descriptionFflatten a VersionedType[] into a Record + * @internal + * */ +function filterVersions (versions: OverrideVersionedType[] = [], specVersion: number): RegistryTypes { + return versions + .filter(({ minmax: [min, max] }) => + (min === undefined || min === null || specVersion >= min) && + (max === undefined || max === null || specVersion <= max) + ) + .reduce((result: RegistryTypes, { types }) => ({ ...result, ...types }), {}); +} + +/** + * @description Based on the chain and runtimeVersion, get the applicable signed extensions (ready for registration) + */ +export function getSpecExtensions ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): ExtDef { + return withNames(chainName, specName, (c, s) => ({ + ...(knownTypes.typesBundle?.spec?.[s]?.signedExtensions ?? {}), + ...(knownTypes.typesBundle?.chain?.[c]?.signedExtensions ?? {}) + })); +} + +/** + * @description Based on the chain and runtimeVersion, get the applicable types (ready for registration) + */ +export function getSpecTypes ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string, specVersion: bigint | BN | number): RegistryTypes { + const _specVersion = bnToBn(specVersion).toNumber(); + + return withNames(chainName, specName, (c, s) => ({ + // The order here is always, based on - + // - spec then chain + // - typesBundle takes higher precedence + // - types is the final catch-all override + ...filterVersions(typesSpec[s], _specVersion), + ...filterVersions(typesChain[c], _specVersion), + ...filterVersions(knownTypes.typesBundle?.spec?.[s]?.types, _specVersion), + ...filterVersions(knownTypes.typesBundle?.chain?.[c]?.types, _specVersion), + ...(knownTypes.typesSpec?.[s] ?? {}), + ...(knownTypes.typesChain?.[c] ?? {}), + ...(knownTypes.types ?? {}) + })); +} + +/** + * @description Based on the chain or spec, return the hasher used + */ +export function getSpecHasher ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): CodecHasher | null { + return withNames(chainName, specName, (c, s) => + knownTypes.hasher || + knownTypes.typesBundle?.chain?.[c]?.hasher || + knownTypes.typesBundle?.spec?.[s]?.hasher || + null + ); +} + +/** + * @description Based on the chain and runtimeVersion, get the applicable rpc definitions (ready for registration) + */ +export function getSpecRpc ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): Record> { + return withNames(chainName, specName, (c, s) => ({ + ...(knownTypes.typesBundle?.spec?.[s]?.rpc ?? {}), + ...(knownTypes.typesBundle?.chain?.[c]?.rpc ?? {}) + })); +} + +/** + * @description Based on the chain and runtimeVersion, get the applicable runtime definitions (ready for registration) + */ +export function getSpecRuntime ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): DefinitionsCall { + return withNames(chainName, specName, (c, s) => ({ + ...(knownTypes.typesBundle?.spec?.[s]?.runtime ?? {}), + ...(knownTypes.typesBundle?.chain?.[c]?.runtime ?? {}) + })); +} + +/** + * @description Based on the chain and runtimeVersion, get the applicable alias definitions (ready for registration) + */ +export function getSpecAlias ({ knownTypes }: Registry, chainName: Text | string, specName: Text | string): Record { + return withNames(chainName, specName, (c, s) => ({ + // as per versions, first spec, then chain then finally non-versioned + ...(knownTypes.typesBundle?.spec?.[s]?.alias ?? {}), + ...(knownTypes.typesBundle?.chain?.[c]?.alias ?? {}), + ...(knownTypes.typesAlias ?? {}) + })); +} + +/** + * @description Returns a version record for known chains where upgrades are being tracked + */ +export function getUpgradeVersion (genesisHash: Hash, blockNumber: BN): [ChainUpgradeVersion | undefined, ChainUpgradeVersion | undefined] { + const known = upgrades.find((u) => genesisHash.eq(u.genesisHash)); + + return known + ? [ + known.versions.reduce((last, version) => { + return blockNumber.gt(version.blockNumber) + ? version + : last; + }, undefined), + known.versions.find((version) => blockNumber.lte(version.blockNumber)) + ] + : [undefined, undefined]; +} diff --git a/packages/types-known/tsconfig.build.json b/packages/types-known/tsconfig.build.json new file mode 100644 index 0000000..1d8a5c9 --- /dev/null +++ b/packages/types-known/tsconfig.build.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/*.spec.ts", + "**/mod.ts" + ], + "references": [ + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" } + ] +} diff --git a/packages/types-known/tsconfig.spec.json b/packages/types-known/tsconfig.spec.json new file mode 100644 index 0000000..01a404d --- /dev/null +++ b/packages/types-known/tsconfig.spec.json @@ -0,0 +1,19 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "noEmit": true + }, + "include": [ + "**/*.spec.ts" + ], + "references": [ + { "path": "../api/tsconfig.build.json" }, + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" } + ] +} diff --git a/packages/types-support/README.md b/packages/types-support/README.md new file mode 100644 index 0000000..1299360 --- /dev/null +++ b/packages/types-support/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/types-support + +Supporting files for type operations, generally used in test environments. diff --git a/packages/types-support/package.json b/packages/types-support/package.json new file mode 100644 index 0000000..00e458e --- /dev/null +++ b/packages/types-support/package.json @@ -0,0 +1,27 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Supporting files for types, mostly for testing", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/types-support#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/types-support", + "repository": { + "directory": "packages/types-support", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/util": "^14.0.1", + "tslib": "^2.8.1" + } +} diff --git a/packages/types-support/src/index.ts b/packages/types-support/src/index.ts new file mode 100644 index 0000000..2935519 --- /dev/null +++ b/packages/types-support/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export { packageInfo } from './packageInfo.js'; diff --git a/packages/types-support/src/json/AccountIdVec.001.json b/packages/types-support/src/json/AccountIdVec.001.json new file mode 100644 index 0000000..f7db57d --- /dev/null +++ b/packages/types-support/src/json/AccountIdVec.001.json @@ -0,0 +1,16 @@ +{ + "jsonrpc": "2.0", + "method": "state_storage", + "params": { + "result": { + "block": "0x3265584ff8e6a66cb6c334cdaf8bb6938b49b96e644b5bacc0d06f2b13f75230", + "changes": [ + [ + "0x329586a7b97f2ac15f6c26a02c3c5621", + "0x2082c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf54de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e758d67e0f9be62dce75adbb005e8097de5c45f32b1ba7264717df2db4ae9f276e8101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081ca070532405ebf20fba389cbabfe1885cc134ee18028d488714eae621b47baf9d227cee94fa4e88d8d25abe706f15aca03b1d753d433f5ef9aa9ad1bcf5e5b81e040c8dc048a6d129803caa851c4c9633610068e4ef9eaa0bfbf40dfbfd43d9222347812ef77d9fd3cca1673e1b2bde54da96fddcf79d92832b1e2a819724f140" + ] + ] + }, + "subscription": 43614 + } +} diff --git a/packages/types-support/src/json/EventRecord.001.json b/packages/types-support/src/json/EventRecord.001.json new file mode 100644 index 0000000..85d616d --- /dev/null +++ b/packages/types-support/src/json/EventRecord.001.json @@ -0,0 +1,16 @@ +{ + "jsonrpc": "2.0", + "method": "state_storage", + "params": { + "result": { + "block": "0x4c51fb36c859f9d2554ef0dadf53351c343f2746221a963d630bfe396728842d", + "changes": [ + [ + "0xcc956bdb7605e3547539f321ac2bc95c", + "0x0400000000000000" + ] + ] + }, + "subscription": 14 + } +} diff --git a/packages/types-support/src/json/EventRecord.002.json b/packages/types-support/src/json/EventRecord.002.json new file mode 100644 index 0000000..65d5236 --- /dev/null +++ b/packages/types-support/src/json/EventRecord.002.json @@ -0,0 +1,16 @@ +{ + "jsonrpc": "2.0", + "method": "state_storage", + "params": { + "result": { + "block": "0xa7f1ac9f18dded8e5825205d3e5260cf53ba01f629d9ebc1b80601b45ed8c358", + "changes": [ + [ + "0xcc956bdb7605e3547539f321ac2bc95c", + "0x10000000000000000001000000010037e027d776cd005c12bcf6722421374a9037167a0ceaf918f341c4ad68d54e59070000000000010000000102d2de7394ae047a5502ad9adb9cc69ff6fe484033bfce874d775da947487cd83237e027d776cd005c12bcf6722421374a9037167a0ceaf918f341c4ad68d54e59e80300000000000000000000000000000000000000000000000000000000000000010000000000" + ] + ] + }, + "subscription": 19 + } +} diff --git a/packages/types-support/src/json/EventRecord.003.json b/packages/types-support/src/json/EventRecord.003.json new file mode 100644 index 0000000..4ef52af --- /dev/null +++ b/packages/types-support/src/json/EventRecord.003.json @@ -0,0 +1,16 @@ +{ + "jsonrpc": "2.0", + "method": "state_storage", + "params": { + "result": { + "block": "0x49e40de6af6524a6bbe1654cd261907073f0d76fc0e73ded942f1fd867096fa8", + "changes": [ + [ + "0xcc956bdb7605e3547539f321ac2bc95c", + "0x08000000000000000000010000000000000000000000000000" + ] + ] + }, + "subscription": 119 + } +} diff --git a/packages/types-support/src/json/ExtrinsicStatus.001.json b/packages/types-support/src/json/ExtrinsicStatus.001.json new file mode 100644 index 0000000..bcf9f06 --- /dev/null +++ b/packages/types-support/src/json/ExtrinsicStatus.001.json @@ -0,0 +1,10 @@ +{ + "jsonrpc": "2.0", + "method": "author_extrinsicUpdate", + "params": { + "result": { + "finalized": "0xc465b92a72b1d20918d64cd4effa70c2bb58b53a3f8c24c3ac8fd8f465f059b4" + }, + "subscription": 9 + } +} diff --git a/packages/types-support/src/json/GrandpaRoundstate.001.json b/packages/types-support/src/json/GrandpaRoundstate.001.json new file mode 100644 index 0000000..a90364a --- /dev/null +++ b/packages/types-support/src/json/GrandpaRoundstate.001.json @@ -0,0 +1,523 @@ +{ + "jsonrpc": "2.0", + "result": { + "background": [], + "best": { + "precommits": { + "currentWeight": 0, + "missing": [ + "Cc2YhyWFfeXv5jfAsFnBKaHr2V5atN4wf6LubeSMpWBUNpa", + "CfTYiCjhcit9N7EJNjAYv3rku6H8uSn6E6TTmmM1NrwdYKB", + "Cicfcxq9fNSVV64wsgqHpLSBedY5TzB1hr6fESXoL5UYZ4x", + "CiqujmJXHwNkg2WVNn6DR9e5TrYD7YkQZ3myExygkKqhpz8", + "CkXk1WRGEb8ZJU1M5W5oHcEgAq9drBRdLac4QjHQwE4bGep", + "CmdHZ3MLTHJhgHTkyC1bm6kwFyGuhCSWcvs5e5DnRWJULRX", + "CoHt3KzCuuFsoT3sftmARcvJ8NF414RvPfaXrRKUg5HAHFh", + "CoUxi1tafPBMRx9yAwsuHZKR9qC8cXkp3d3h63jQJiWJN3Z", + "Cp5Yg6ZUYXFWPpXfkjfQC2Vq9UMtRdAkBVx8BgV94ted3kU", + "CpUj9JPRwKi27GPtxEznxKDbYVW9MYCcz4pJy5VUFVoyEks", + "Cq5fjZKywKh3pNrNNEHyYsAXgfXZD6TMEc8B7BP2CjG5gHQ", + "Cqix2rD93Mdf7ytg8tBavAig2TvhXPgPZ2mejQvkq7qgRPq", + "Cs9HdXcS6hXdAnCMDqCqx1ncqAteiLSQD7GLJLDEStfzRoB", + "CtaGcLbdjMEY3MCm8pS2VuLQ6ZZ3HV1ou6eQvXuUt94hhXx", + "Ctu8uXthRbiFkQHxc4EEsMXTLSzUxGKeNgqVyB8uYfAdZtS", + "Cv4NgBEc48tqfSe6Brzjo1A155a8T31nR6a9YC3xBA5vbXx", + "CwHwmbogSwtRbrkajVBNubPvWmHBGU4bhMido54M9CjuKZD", + "CwfmfRmzPKLj3ntSCejuVwYmQ1F9iZWY4meQrAVoJ2G8Kce", + "CwjLJ1zPWK5Ao9WChAFp7rWGEgN3AyXXjTRPrqgm5WwBpoS", + "CwkMPKWjdHyJdjjJipm2QUWv3mCgyC5DbTBxyCppe5Vikz1", + "Cwr1TMtvYPU1L7yzFtxEw2D4qG2K9HyjX4Xyi3Ly9kfPUWq", + "Cz13yLMRZwtTGRm64vd3rJDwUSSEGqa5jXdbTvuGb6mH1sE", + "CzMLMqDMrRHfdzU5ZJDG78v5WgFFY8QdkYKKhsGk96HTA9L", + "D22L3MZfQJ6e25sKvUKV2ScNCiBLjSz36Qs2dAr9YmMK4wZ", + "D2HSM4BU97upkYgdTqEQSH1nQTXQeGxTmfHE9uS7RJ1adwt", + "D2XYxqEeKmszcyWePVZeMMH9aRLP1s6cDaomUKrQpUNzKRB", + "D3HKWAihSUmg8HrfeFrftSwNK7no261yA9RNr3LUUdsuzuJ", + "D6hDX5craMLkZRmKPPHHVhEkSCHESA3EyNvgAyo1APHQTGL", + "D7NzDRff9ma2Yg1tH2nCQTZx4WgZTtMVFERreKepGkUvFPV", + "D7XuFnGrbcLd5B6oohL3D2d8r1KYwJ2525ZU2zFPtLBTRti", + "D82DwwGJGTcSvtB3SmNrZejnSertbPzpkYvDUp3ibScL3ne", + "DAr9owKmSVDBCC4oTfoAdsSNaAikL2cbczUu865zi3kigYZ", + "DCjxjuZtoHzysSc5z8kduHGwydCfUGgWvkUku44RTGk5mi1", + "DEe4DMG4fNiy9xQZUPGRquBDbtp6A6DsbC69PfPqAGbBfiS", + "DEpBtAKdDKMRr4bKf89roC6JuSVik8YDiB6unapikodP3Mn", + "DFX3Twv2d8zC99aHB8Lj79V7fS1vvguzCnbP2Rnu8JT21vZ", + "DFcTEcDreBwTiV498NBrGqnLfPVKKteASvxmUMyPQzKMwFy", + "DHdM42YdCbdxUqZctUeEGhyGfTphpsDrstJhAQuG68e6NTx", + "DJUJhJ44hKPjgqh3kYSn1nCayzaJLC1xiEXupt6DhyTrdxt", + "DN5do2eDUqX3k2cPvKsWGTSEbnuscUYChy32yfvdZFdBhn4", + "DPLS9R4bJW6Sr4sixhHrkD9Q5BWbiXPfeTHgvGMYKpEb5Uu", + "DQMHjfkB6DLZfxy76Z3M5NqnRncg97ZuyvE18gb3j2nntsQ", + "DQrS7uEgLHV7WDWLBPNfc3yCXfWfrnfsupTH4Zp96WJickw", + "DUoHA96h2b2d36e1mWhndrD2Ss5HNF1gQCHaC7vypKcmS3B", + "DVJV81kab2J6oTyRJ9T3NCwW2DSrysbWCssvMcE6cwZHnAd", + "DWpBhJTnojap4TCV1oLUYmTRzRNamD6yv26iYS56NzoPpW7", + "DYNrzpuVAgyKEC8k4GNnM3bNjeyWMhvgA94qNX4q41ACKiW", + "Dab5JaQvMpY9Zad18sseXyafPSUhP4Df8W6z5E6Wx9xbwCP", + "DadqXmEY1QyKRwgpuWb1ddd5DUb7HposCb7zaDKZEPXHRU8", + "DbwVZ6ZTBaQHTicZiJr9YtsTkJEFg5qBRMN4mACjX7CC3vU", + "DcCJuQS5JrShNP1RHrmtbSSE9QAuAYwA41FV9mojVGcGH2q", + "DdDTr5Fh25S3dR7cvz9TPTFAB1a9DCUuj5acq7ygXQyxqov", + "DdFFbdprsx5bBguJLXqY5jVJsXJqZFhGgJMWzwbroeHk1Vb", + "DfW5AASSn2tEDFbu8ECiUi6YBzwCaB24aaFCiVpj3LG7qmT", + "DfZXXZGWhJRQxibkEKqZj3ZZaWV2iYCDvREwG5EkrxXcGQw", + "Dgb85BCqpwFt9meW9EXvEweVdMHSvqVyp6kzu4bPSC8Dwpm", + "DiFKcf4LmsN7AWacUTQmu8WvdiBhWEnnard61tp3v8CTyNL", + "DiQcjVHteZFh9kNYKcdRM9qwdq4kbWsMUYYaa1E7ee8AMob", + "Dj9oef5L9jMfT9DTGa7frpSgdLYzsBkTNHAox3bh71W3DiK", + "DjY7WgELBnM8DxCb6etKgGuPtTGTU6RU3rdGsQV1P5y1jKc", + "DnPEbAB81SvWiy7NMFFfDxciWGV6u8ZWaEwr7LvuzCD3foC", + "DoFS6cZAd9L7gHbqdfJ2H4kSYHLfFxMtFEmaro9VvFmCAL4", + "DoRWdJFkMjVRXttgsQgc372SwUh3yZ2USMYmRMWrqpLkgLy", + "Dp8FHpZTzvoKXztkfrUAkF6xNf6sjVU5ZLZ29NEGUazouou", + "DpA5fB8iJ3yuRUw9R2ENG5Sme2NFuRcqxxRtCpggATrKMyi", + "DpB37GDrJDYcmg2df2eqsrPKMay1u8hyZ6sQi2FuUiUeNLu", + "DqtRkrmtPANa8wrYR7Ce2LxJxk2iNFtiCxv1cXbx54uqdTN", + "DsQMG46Yew7a6FZ7QtNxh5vDDhZfjTb2CrUgQqjdmVr9dez", + "DuhhwrG7H7RjGCTjBtPNwu2ZpaEbmqpvrwzENvVbcQaGDfN", + "Dv9YENxCfWpdNyqrSS8X2gU42XHxPawtecW5tUGKQ3QHLGN", + "DxHPty3B9fpj3duu6Gc6gCSCAvsydJHJEY5G3oVYT8S5BYJ", + "E4c2BBuVRndrn442Sm3NEo6VgEQkB81aASCZcQ3kJd1eVvm", + "EAxzs82Tb7Cphb4ENSMd8HnKhFfMWZJkG32kVG7JyrX6C1g", + "EDhSKVKviygHeNL4d1PwCMLi2nMu8suHb4utjc417H7ipnU", + "EEGZUN5j8HztGZoGMCDEqxKaES89BUMPdEmisw76Ntaczo8", + "EJaQuJLcSFi4upQ6iYhiQVJPycsiCj6i1Hr92GGdQPfJh2Z", + "EPPZ4fZDL3dzPWmc8ykVd1QtTMQe7EAtRTV5hpdgw2bV8Vx", + "ERMAxAqFwJsbTbxXR7cFD9kWox9MoYaUUKBhJVghrFb2dNN", + "ERUbGg8o5P7goHaZHwpFbh6UsMhrJstaLkZSt6bd1XawhT3", + "ESRccudun1sfSaJ2AsAJyjRiGTjGNpcTCsE1GNRJu5qcetv", + "ETBiNkdbxGNvvYCtXKTHo8Pvxg7K1p6kbpR5qL3y866H8zC", + "ETH5bzi7XxZPRNj2EraffF43M7yCjGrDUzo6a3KFKA5vWTj", + "EVcuKTm8bqzURSPjBTgHqF1abwqpPYY4oAxid9a3VKuwQd5", + "EW7erYVCQhQthHCd2pgMSWKXqvtDwwXNuMohou8k763fQaa", + "EYUQdMcXUtn4KJkJL98SKWf8C8hWPVEfRvZeMSBruRwdyu1", + "EYgJvYZV98fED9Lpc1Jr8TDntfLz5uzFmsMirQRzQy61a4B", + "EZZ7DMwd1t24gHmgD4ekn7f36pPHHt3SCXt7a44GTiprt6d", + "EZc5iZZjGFMXGmBps6rt8QJxns8WN7L66SgkJhHg3dhoJrd", + "EaAdAwRHvCmnkJpjA26RCdCiThQycviNPwyiPQQGC1YZKbB", + "EbaJw5HDyqLurKypUFM99BhQ1rqNLHmMSnQGcdYGQL14XU5", + "EiCesgkAaighBKMpwFSAUdvwE4mRjBjNmmd5fP6d4FG8DAx", + "EimqvBYtHPwvf3PDiqD72pTSUjmhCuFSaCSawAs3k6tQYTD", + "EkDWeoUGue1rBup41awEGmf6gmTemankoSJ8x8KpoyybGgU", + "EmMPBDBrzDsnKBxxUR9wCiZVM8tQnpVvD3XDsTdZ71haW73", + "ErL6bfYX8ZN6CnKTPskY5QnBwF38ZW1XkNzjhFfGF53BY83", + "EtCGTKdyMfYUX7jaTgJq2pt2PExEGfzcppbGafcpaNkahAm", + "EtDKLc5xWW2nfjrokLFWfT1rFbha9bPh5JozEbfiCWHQXQJ", + "EtNAJNfs1DtsMQBYj2bUtKtzJXhEX5mZ8ZrPK7gsF427pj3", + "Ez63HgnwvnPV4QdLdu14BpSrXXGB4BLHHDgzuxqNJfGumYa", + "F16KfQojZmEBvYyZQwC1MgR2P3dSrPfNxF47yqtmPX4dJRd", + "F4q2yRrJ2hu9yfGbjiPvekPNXHJfE9cKdGiWxeakmbgd9Ae", + "F5edJrWioXyuWpUKYZk5FngEovCaevd44DbFXugL19xMf8d", + "F5q2e2cjaeYfB3NkpY3zdxhD7BnJoyZvYAuKkeSWvCtQuYv", + "F7Zabg5T94iGozVuusQCJQCzksBD6zHcGcCK7TV9Q6rcnz6", + "F8nEQdRxv4iCrcJ72XsAXnAm1iyqajSvSuovvic3QTzZViF", + "FBHmyQBEzfQdu94SLrZnXYrZWjpUFfKagWi1HavYj5i7HZn", + "FBVfQsD6Z23qYDNJzyAmUpNxfYt563KUyjGKaRC3sjkVhip", + "FCVN2XQZam1Sqa1RiWr9tDfdaRvYbh4CQGeJYH9tk95uQk2", + "FD5DgPbS1dUNfTkV6oyCBsnqcByWeiZ4rasv3o7KYcbYyTE", + "FE6T6jmbgwy1g3JPUPoDdzd3x8PV7tDTrTEZvwWgmEn4A7W", + "FG36ViMzpfjUjRmcgqA1YDRT7puxyMAU2CKomPo9xAsxCku", + "FGHzRtgn9c9yPDw3rQA5MedSjvbpyXggD28X6vmdJYrsejb", + "FJimD5dnWqGZhTXk5kbYg8Epas2oJW5i4X5HFPJW2Q1vhjn", + "FJixgYmBZaFfv1ctpe6LFX3P47vtmXBbq6goJbzrvZo9fBg", + "FLHzFovZtqmdQ73HMTAfe2ub5r92KhiBy8XWvSyAMhhBtBz", + "FNnowy94spLAxiD9sSZ7PJSMEruVHEe2P7kvH8NwTqPPtCW", + "FP2E6m2uJwfDYgKsVyKtS1P3VNumDXJwvp2WE7xm3Yo1q47", + "FPDJCymMK8yoZPw3yuxXG4XKSxeRovcrKLfSxMKdm6rxbHA", + "FPLNRDU9XL7YkGEbLwfCEE7BK3xAxFhUpMjRBfM7Tetkuwk", + "FPkLCiKqkmQ9P3xFwHpLdroiSRELaoQGSnm8NEMr56mAuz3", + "FSJJ2GV18xsQrtT6o1DTPH28ubySF77WYxMSkxZteqDpcoE", + "FUUH1yoa6iPELAwN28PToF2VGRAQM5Tn8NoJrzVCKWEpbSW", + "FWJ4jSem9VsuknbEHNsaLukUsC6w4WYhkCgNEzQPWtXUypa", + "FXycEucF1BdaQLvgzYC81KznPTpYRhCXEzPq6noKTEvsztq", + "FZoPvMfxR34WwBYnEGHDKfNHtMrpHLoA2wVzGNu87XstReZ", + "FdNm4j2Qew1iDhFgpiVoRmVeuyDkHVUxxictvZDRCj7Mq5W", + "FdfmDy1pAgrmjN6F1xcsRwp6X7sugVq7SRvo6NVcEc6E4KJ", + "Fg4rDAyzoVzf39Zo8JFPo4W314ntNWNwm3shr4xKe8M1fJg", + "FggXamGXCDW9ngQfAsMggHwAVgRGcMjZdh4Qx58ZCi7YPkc", + "FgrjYHHG7SFG15CRGiowpqQgfi5sGSg6VJbiBtUjJQTXDhd", + "FhRy5CsNB85dVPNRqWnRiRyGkXX8EZFyFBUZQfJ2p2rtZfW", + "FhYr5ReG794nQEmX2f5QLKo62nxESiD8THT3LeKJw3YPxVf", + "FjeAj5EPPCAcJ1mFa6Mkbu1AKVK5aVhaGiSPPoeGDhMa8f3", + "Fm8jU55YzzBrVZhoXRsB9tY8Adf3p5AddD8t7ZQXttwwjLG", + "FmpkQf7RNofMCw5QdxGxFuFMAAXzCv8q7FSoEXTLfPj2c3D", + "FnvowMqfruNqxsWQwXVb1cys4dRWUvrj5UnN61EkDWUviC3", + "Fo9JJ8NtkGhZXqUuAJo8cugcEH3siQoNQNbPXtgLfKbjiyS", + "Foi6DbpYXWkNuBxKF9rnMurFL6b9UisSt2ksix4N3gYsCG7", + "FumZdpJgnZhaoL3LNExmoykUZLoD8zcJ8L6aJpvkoKV2s1K", + "FunWBvH5kuYkQxoNufHoEgajAjSKyZz1yUjYFTZURRSnQf6", + "FvDq8x7aFnSVkJ5ehnsrgHUBokp6TmuBE7X9YJee6bp6ekV", + "FvbZbdfWEGGFu7HxiVbiM7UX5wPvtmWxvG2jCN73UivbB56", + "Fy3BpgvBoQ4VfjRkCCUzazQwVHQjAogviwzzoht8KAP4d9K", + "Fz5WLMi4ZTpfJeYz1mjayckoVpwR4Aw1oqKeN2uLReT1AtK", + "G15TNyTKUbFk9nriDTki62WpY6fgNTAUZp782876muo2SpB", + "G1WdshgUrw24UJjeKpSNKfHPw3XK47fn2x5DGoBnc1A2FPF", + "G2tJwPWn79JRax4SKcbD71WrwXWmkXvhop3A1FANY51xDAM", + "G3avRUrsk5vkvFa8xWmJErvZVDBH7D3pMiXLiArRusGrrdb", + "G3g6PWRnQWLQPLFpyNH6FUKXPzhX2WnDDFJopeBNTLvEg5D", + "G4yPnS6rYbwgE8QPGEiPRimnbe1w6nVKXFehNRQGH6gbPHr", + "G5qDtA3FkRvJ4Z5EcsnDjCESWbgLUj7XdFriZNb6AZy9YKZ", + "G7MMwpHNrY3Eze9XMhj9GNRuMjRstiPdxcHSa2qY8ueVbti", + "G8nQvGu5xhLhmfd7ZdAnCjvDEj8MmiRvSEfAf9Xr1ioSgbU", + "GA9YciWcx6tuPRb1LFnJiLnieFoMLB3TG5p4fy8pzhWDh1S", + "GAperY2KUX5vuCnnvrbn4jUnJESUcNBdUEXpTfNTziq5SQV", + "GDANUR2HwKSp1gA7p8QQJwRFmJ9GmwdfgyQMDfP3DpA868R", + "GFQdgyUL7y7qdkhKUXVsJMFKVTn5d6WDcSkVGWCiF67Pg7m", + "GHnBVHkuZBnwG4jUGC8sBVdyJ2stAcgFTQDEojEu9m56gKh", + "GJnseRYKXQYRNYvmp6vpjp4U7LUqAmRxTBeNs49GkyMRfjh", + "GKGs4ES1u3yCo8zkJFcvqNuoUhzDeGca66Qwuu4cxDP28VX", + "GKicoR7M3BmBudDvZmtusdTN6uF6x2BaQ3FZWLLBxaJ41ub", + "GL47pCLjdWwkmYZTr6yQjo4koSWR7xb6Hg5P5ajVrMxpFbA", + "GNkbRyM66wNFFdargG7PXdN5pPhfmgUkbY1syVKhjL8GaUX", + "GPGpfUY8ZHchZbZxtGdDL365o1E9Xqfq7HMKSV7eVk2eKVW", + "GRVN1g3Tm7Rmeotfh5AAda6Qfgye9nbr1UMoDzWybwTdUdV", + "GTY3EsEV7sXJogaEtesVsJpjufc29MX8cuhoA8NvAt7zss3", + "GVzrJcVSpPUucP3HWcXp7bT37HWuBzisvxqFfKhBEsLPTkg", + "GW36E48nxrvZQvg5G6w2eB36y28GyaVWC8iQsit78yJWVnW", + "GXYxEKCp6zQgNyu5k9D6bTUH7JYCZs6BfQw5eG37qEw3HrE", + "GYjCDp6Tj5JHgtr4CLmCWb36RpZr5kv6ppPmT2RvwZosXeA", + "GeYRRPkyi23wSF3cJGjq82117fKJZUbWsAGimUnzb5RPbB1", + "Gf9h3SKz565CzWJQfvgxtZShQ9ioMAj74pLQX4ZVNHVQodc", + "GgH8UuBcHcLFTr1XVo7uLj4eWjapYEcEq4WjMHVc3jY2KCJ", + "Gghvu31bfQJMt11Yi5VVQqBsMfvTrpSEQ6qySokXHXfrtN2", + "GibJagV7QvJCMw572nicKH8aEPxLTyVZ7WX7evpzixmuAJ4", + "GjF1e3AxczvH7QyAhvPqBr3qmptaMGyhb9DfpbK5KM5VjzN", + "Gk6qCJKEKyDAE2KzZSA9XxB9VNpFACTv5u5yVJLiA16EueZ", + "GkPKDZMcRwi9djMAYcrZzF7fZdtpcDwK3iZNpAyerYcLM7F", + "Gnd7GmBmAo829p2w2ReQJsWdxhDGWmon24yFWmKG6nG3rLM", + "GnfYikESq1aqBiG5P3n1HSTsGveSmEJjR24EBc6LkTR1wdE", + "GoWLzBsj1f23YtdDpyntnvN1LwXKhF5TEeZvBeTVxofgWGR", + "GomreGYeDzvwBZQQpd4dTyxnjPgpiZ99M3tX7YJTFakEnhv", + "GpE5hynVe6JgAwTdZVRDTuaDT44mV89Y1z2gWgjqS9boPWo", + "GpauAAY9kt39us3P5tWtGVb6dBq6vTRzfPaWjHhTVUKuVp4", + "GpodE2S5dPeVjzHB4Drm8R9rEwcQPtwAspXqCVz1ooFWf5K", + "GuZ5Em85y1hd8HmYcJjThWyLnFeu2mjKq3Ed5vt4vU3Em1o", + "GuneYkujpo8oSKrrBzvMdDK3Hs9tpZiFTSqfyaCPaeA7JCf", + "GvaHCJZj5DyLPz2NSg5xpqohakRfySifYprgZzUTwrLE52y", + "GvmvzzbNNeq7L3RyY3rCDdZDr288QbNLL1V8k1diJE1pebG", + "GweU4dFYodvXbAVAKnBE1GGbSQL5EPSzw5UewMEYrLHa7x9", + "GxdtyNYoKmQZUE9uGAmcmsb2cAJebXs4oc46VzY2gBqgpqk", + "GxyCAndwSkRNEecB6QWtQD7Yc2Nz8MNeGCFGXaVUwV3nfPH", + "Gz5jnTUepEGZ7XvzYN2BZiWrS2CR1nh7t7aj7S4ifc1iEJp", + "H1L3XmAueDThWAuU2ATRGzek73MidkZw8RJGcPbGrKj1mGE", + "H1YmDzgoaF6Gh3ARH4xTDYZpAQoCUXn2kGKTRk1bZhNsMS8", + "H3Viqu6M5bsa5wa3zjcSVfrKivKGPc84KPi8Nz2kbyDSzGS", + "H6AcP4Xgbtn5HQVTyA8uTS9LBvs3hgdC3ZhXrSAuEwDLVLz", + "H6RNLG4e7SLTTbrCEHbaTDecMSMFbKTERbp2aqnT5NoF4k8", + "H8YnEJx6dPTBKTVAb43MFam9exQfzv586aAyhzcqEJ1SLNS", + "H8admATcRkGCrF1dTDDBCjQDsYjMkuPaN9YwR2mSCj4DWMQ", + "HBugPU3KmKaRnfkkVK5RpEZZJU75CxMNPbpcrAWdgFKdjSK", + "HEciJWGn4qLJRzM3qR53K2Mb96ghHab1aLyTxJzzmGFfhCo", + "HErWh7D2RzrjWWB2fTJfcAejD9MJpadeWWZM2Wnk7LiNWfG", + "HGFAh9e5GTef7yuqdh7eX7QitkS68LZVNJEKFD4pWnmqvyv", + "HJ9B3TgtohCrT3VVj929kMaMM6QhnDYLjUumMKGMKtpiP7E", + "HKZ2rGKz7a5pL8MV6hNzQW44hTC6SbkfAJBxLjPzJBQqtg3", + "HKtvBGvLv6pp9RpQiHMaoZUx5Zs3zziuu2AENt9L7PFLP6G", + "HLBXyareJwMxdCSoUfHXsqfWwvukLUypGwWRVvGc88SAyhX", + "HM2xVzCQJPYfT3KMtdB4vDwDQWd9aZWmGi9EkECiDcXuNsQ", + "HPFBAvhzXHghMkizMSvYLCtR8ASmV4MXuBUk7J8159ULGGz", + "HQkj5fQEYw81PDJQyabvLt4H6KacJw5Rb5A3Ab6YnJ2oDUw", + "HR4bck1XYD9aoqtjt5BizLirgEXpRWNYgNPJQ2hP1M1xMih", + "HRE1LZbFvwDvMntGQ56gRJLBJn8J69sWE4Psaibn4SazBfW", + "HTyAnvpiG9CAa3pRcmnouknak1vdZshhiAxuWtinEijPLas", + "HUGHnqo2XFZZmeGvhut3sAEDVaV7AEwQh8f6h2BLuU7FrYq", + "HW58itR4caUCdp8c9goLgXj4V5MdUCfQZFYseWdyP5wG7S8", + "HYQFq4zZUr4jfZGPK4jYtRKas4xtVBBnkJfg4HnzDtsiNGs", + "HZDEMq9VJBAKu8mAttnGB7uZvBPLd461ucZ8kCHwtmj614L", + "HaKEf61SYGE6V6HKofDMXvQWjKUFjur9pGDpdc47pqDevA4", + "HaPcanSMnPqJoC9QhsEMLwR46TfbbVgr44yh4m7ZbeuKyMx", + "HbktBpDVERtDz18whHSEtJ2rFsxMJmyHxgBRff5sXnsGakm", + "HdxpV6wA63eEjLmnkhcF59AKeFxqM99r1MZEXxK5iWxbVGC", + "HfbMDpxDubFuZdnRuXgbZCRAPw4xXzeQSacpM8TiACBdmVq", + "HiyhZhiUMvYsovtZPpVcKjhdmkNUbhqKkvKrN1NGUYYSFv2", + "HkYfDKozJFcTM1ebo9dyDPqF2XfZQd2aWzur1HUPKNKrdpY", + "HkuBMQr739WYVf9Fpv4VPbS4zKv7q4yVVEZz7gL7eMXHRQz", + "HqKm1vuvCz4C4ArZFnxDigjYJY4HTgoyrWaeKNvxL4SJ3Wv", + "HsNps1ukUFNfUY6j2ajfjpdVr8msWZCdaFbh8w3ekqg5YKb", + "HuZS2KT6UMQoDUxsDb27hxw8wBiyJM9QidziKYdC7HaT5TW", + "Hut8Vi32mBjJipubTT3ibDcN2rw5eZq3EFyh1gb5SeTNgoX", + "HvsMbdBnkgUm1ea2EqPibHcP4DpnatWtz7jGhuP9QeYhAAc", + "Hvti6oER3Lb5oKxtYcVW82cc8KDsr1LtqtvYcNxLCwUgpMN", + "HxLGmds1YKjgpp1HUdpp5916sYB6nAHCkC1fs1Stk2xZWEJ", + "HxfYoiAdkmEDFusAejuo3zKwB1Q8bJ94GXgV57MW8oziqL1", + "HyWxAGX4cYnawbDxpBvXCeeovK8cCcywvHUj4uhiWQXQNd7", + "HzrQ8JziKrwSsxuidobfX6XVNhKFyQLYfULkVMWymDUf7pA", + "J4BMGF4W9yWiJz4pkhQW73X6QMGpKUzmPppVnqzBCqw5dQq", + "J4ibGw1bqrSkwsw43rUf9w6hyXCxZKrdZJEkcfH7E4yzAL6", + "J62bGdbHT4f3R7aeG1Tt5y9f11bJZLBZUAeZpDaX3HR3oXx", + "J6f5w6eydwAi7pcPy8TNDnYMnBvvZyVXwjQVnJvH8YzUQvd", + "J8jwjHCEGAhWSiTAUyC62Df1H8hUKqQsVYdCKvusRipHWHy", + "J8vr5XuCMjUXfnvQdrZ2M2cWsykk8Wae79uCDEiWymmU8Bh", + "JAXs5Hp5AEB2nHDbJUsUZdnGaH8TnEyv3pquPHAorK5kkh1", + "JBsSffyWTv5vvy3VJ4ro3VSg4NwiiHGe9aCcLTfW2TLWiCt", + "JCBp59HSq5mZigc2v57PFeafPVg5KcSu3e2DCW39aPxSzvY", + "JE3pk8v6QYhHGJtuPh2R82DDPLQBFsMSBYbqXMsa4bbJpVC", + "JEnSTZJpLh91cSryptj57RtFxq9xXqf4U5wBH3qoP91ZZhN", + "JH4xgpSTLqMn4Mo8xBtUitezsvpqTwYN9G7GDpH6wWwyMCG", + "JKyTzmQVXE17pu1wbqHphyaKoTdqg1J5g7C15iEuK8LGKC4", + "JLnxrPb3QEXhVVBxKWaQhchDWgmwJKhY957iz19f1X8kiv2" + ] + }, + "prevotes": { + "currentWeight": 0, + "missing": [ + "Cc2YhyWFfeXv5jfAsFnBKaHr2V5atN4wf6LubeSMpWBUNpa", + "CfTYiCjhcit9N7EJNjAYv3rku6H8uSn6E6TTmmM1NrwdYKB", + "Cicfcxq9fNSVV64wsgqHpLSBedY5TzB1hr6fESXoL5UYZ4x", + "CiqujmJXHwNkg2WVNn6DR9e5TrYD7YkQZ3myExygkKqhpz8", + "CkXk1WRGEb8ZJU1M5W5oHcEgAq9drBRdLac4QjHQwE4bGep", + "CmdHZ3MLTHJhgHTkyC1bm6kwFyGuhCSWcvs5e5DnRWJULRX", + "CoHt3KzCuuFsoT3sftmARcvJ8NF414RvPfaXrRKUg5HAHFh", + "CoUxi1tafPBMRx9yAwsuHZKR9qC8cXkp3d3h63jQJiWJN3Z", + "Cp5Yg6ZUYXFWPpXfkjfQC2Vq9UMtRdAkBVx8BgV94ted3kU", + "CpUj9JPRwKi27GPtxEznxKDbYVW9MYCcz4pJy5VUFVoyEks", + "Cq5fjZKywKh3pNrNNEHyYsAXgfXZD6TMEc8B7BP2CjG5gHQ", + "Cqix2rD93Mdf7ytg8tBavAig2TvhXPgPZ2mejQvkq7qgRPq", + "Cs9HdXcS6hXdAnCMDqCqx1ncqAteiLSQD7GLJLDEStfzRoB", + "CtaGcLbdjMEY3MCm8pS2VuLQ6ZZ3HV1ou6eQvXuUt94hhXx", + "Ctu8uXthRbiFkQHxc4EEsMXTLSzUxGKeNgqVyB8uYfAdZtS", + "Cv4NgBEc48tqfSe6Brzjo1A155a8T31nR6a9YC3xBA5vbXx", + "CwHwmbogSwtRbrkajVBNubPvWmHBGU4bhMido54M9CjuKZD", + "CwfmfRmzPKLj3ntSCejuVwYmQ1F9iZWY4meQrAVoJ2G8Kce", + "CwjLJ1zPWK5Ao9WChAFp7rWGEgN3AyXXjTRPrqgm5WwBpoS", + "CwkMPKWjdHyJdjjJipm2QUWv3mCgyC5DbTBxyCppe5Vikz1", + "Cwr1TMtvYPU1L7yzFtxEw2D4qG2K9HyjX4Xyi3Ly9kfPUWq", + "Cz13yLMRZwtTGRm64vd3rJDwUSSEGqa5jXdbTvuGb6mH1sE", + "CzMLMqDMrRHfdzU5ZJDG78v5WgFFY8QdkYKKhsGk96HTA9L", + "D22L3MZfQJ6e25sKvUKV2ScNCiBLjSz36Qs2dAr9YmMK4wZ", + "D2HSM4BU97upkYgdTqEQSH1nQTXQeGxTmfHE9uS7RJ1adwt", + "D2XYxqEeKmszcyWePVZeMMH9aRLP1s6cDaomUKrQpUNzKRB", + "D3HKWAihSUmg8HrfeFrftSwNK7no261yA9RNr3LUUdsuzuJ", + "D6hDX5craMLkZRmKPPHHVhEkSCHESA3EyNvgAyo1APHQTGL", + "D7NzDRff9ma2Yg1tH2nCQTZx4WgZTtMVFERreKepGkUvFPV", + "D7XuFnGrbcLd5B6oohL3D2d8r1KYwJ2525ZU2zFPtLBTRti", + "D82DwwGJGTcSvtB3SmNrZejnSertbPzpkYvDUp3ibScL3ne", + "DAr9owKmSVDBCC4oTfoAdsSNaAikL2cbczUu865zi3kigYZ", + "DCjxjuZtoHzysSc5z8kduHGwydCfUGgWvkUku44RTGk5mi1", + "DEe4DMG4fNiy9xQZUPGRquBDbtp6A6DsbC69PfPqAGbBfiS", + "DEpBtAKdDKMRr4bKf89roC6JuSVik8YDiB6unapikodP3Mn", + "DFX3Twv2d8zC99aHB8Lj79V7fS1vvguzCnbP2Rnu8JT21vZ", + "DFcTEcDreBwTiV498NBrGqnLfPVKKteASvxmUMyPQzKMwFy", + "DHdM42YdCbdxUqZctUeEGhyGfTphpsDrstJhAQuG68e6NTx", + "DJUJhJ44hKPjgqh3kYSn1nCayzaJLC1xiEXupt6DhyTrdxt", + "DN5do2eDUqX3k2cPvKsWGTSEbnuscUYChy32yfvdZFdBhn4", + "DPLS9R4bJW6Sr4sixhHrkD9Q5BWbiXPfeTHgvGMYKpEb5Uu", + "DQMHjfkB6DLZfxy76Z3M5NqnRncg97ZuyvE18gb3j2nntsQ", + "DQrS7uEgLHV7WDWLBPNfc3yCXfWfrnfsupTH4Zp96WJickw", + "DUoHA96h2b2d36e1mWhndrD2Ss5HNF1gQCHaC7vypKcmS3B", + "DVJV81kab2J6oTyRJ9T3NCwW2DSrysbWCssvMcE6cwZHnAd", + "DWpBhJTnojap4TCV1oLUYmTRzRNamD6yv26iYS56NzoPpW7", + "DYNrzpuVAgyKEC8k4GNnM3bNjeyWMhvgA94qNX4q41ACKiW", + "Dab5JaQvMpY9Zad18sseXyafPSUhP4Df8W6z5E6Wx9xbwCP", + "DadqXmEY1QyKRwgpuWb1ddd5DUb7HposCb7zaDKZEPXHRU8", + "DbwVZ6ZTBaQHTicZiJr9YtsTkJEFg5qBRMN4mACjX7CC3vU", + "DcCJuQS5JrShNP1RHrmtbSSE9QAuAYwA41FV9mojVGcGH2q", + "DdDTr5Fh25S3dR7cvz9TPTFAB1a9DCUuj5acq7ygXQyxqov", + "DdFFbdprsx5bBguJLXqY5jVJsXJqZFhGgJMWzwbroeHk1Vb", + "DfW5AASSn2tEDFbu8ECiUi6YBzwCaB24aaFCiVpj3LG7qmT", + "DfZXXZGWhJRQxibkEKqZj3ZZaWV2iYCDvREwG5EkrxXcGQw", + "Dgb85BCqpwFt9meW9EXvEweVdMHSvqVyp6kzu4bPSC8Dwpm", + "DiFKcf4LmsN7AWacUTQmu8WvdiBhWEnnard61tp3v8CTyNL", + "DiQcjVHteZFh9kNYKcdRM9qwdq4kbWsMUYYaa1E7ee8AMob", + "Dj9oef5L9jMfT9DTGa7frpSgdLYzsBkTNHAox3bh71W3DiK", + "DjY7WgELBnM8DxCb6etKgGuPtTGTU6RU3rdGsQV1P5y1jKc", + "DnPEbAB81SvWiy7NMFFfDxciWGV6u8ZWaEwr7LvuzCD3foC", + "DoFS6cZAd9L7gHbqdfJ2H4kSYHLfFxMtFEmaro9VvFmCAL4", + "DoRWdJFkMjVRXttgsQgc372SwUh3yZ2USMYmRMWrqpLkgLy", + "Dp8FHpZTzvoKXztkfrUAkF6xNf6sjVU5ZLZ29NEGUazouou", + "DpA5fB8iJ3yuRUw9R2ENG5Sme2NFuRcqxxRtCpggATrKMyi", + "DpB37GDrJDYcmg2df2eqsrPKMay1u8hyZ6sQi2FuUiUeNLu", + "DqtRkrmtPANa8wrYR7Ce2LxJxk2iNFtiCxv1cXbx54uqdTN", + "DsQMG46Yew7a6FZ7QtNxh5vDDhZfjTb2CrUgQqjdmVr9dez", + "DuhhwrG7H7RjGCTjBtPNwu2ZpaEbmqpvrwzENvVbcQaGDfN", + "Dv9YENxCfWpdNyqrSS8X2gU42XHxPawtecW5tUGKQ3QHLGN", + "DxHPty3B9fpj3duu6Gc6gCSCAvsydJHJEY5G3oVYT8S5BYJ", + "E4c2BBuVRndrn442Sm3NEo6VgEQkB81aASCZcQ3kJd1eVvm", + "EAxzs82Tb7Cphb4ENSMd8HnKhFfMWZJkG32kVG7JyrX6C1g", + "EDhSKVKviygHeNL4d1PwCMLi2nMu8suHb4utjc417H7ipnU", + "EEGZUN5j8HztGZoGMCDEqxKaES89BUMPdEmisw76Ntaczo8", + "EJaQuJLcSFi4upQ6iYhiQVJPycsiCj6i1Hr92GGdQPfJh2Z", + "EPPZ4fZDL3dzPWmc8ykVd1QtTMQe7EAtRTV5hpdgw2bV8Vx", + "ERMAxAqFwJsbTbxXR7cFD9kWox9MoYaUUKBhJVghrFb2dNN", + "ERUbGg8o5P7goHaZHwpFbh6UsMhrJstaLkZSt6bd1XawhT3", + "ESRccudun1sfSaJ2AsAJyjRiGTjGNpcTCsE1GNRJu5qcetv", + "ETBiNkdbxGNvvYCtXKTHo8Pvxg7K1p6kbpR5qL3y866H8zC", + "ETH5bzi7XxZPRNj2EraffF43M7yCjGrDUzo6a3KFKA5vWTj", + "EVcuKTm8bqzURSPjBTgHqF1abwqpPYY4oAxid9a3VKuwQd5", + "EW7erYVCQhQthHCd2pgMSWKXqvtDwwXNuMohou8k763fQaa", + "EYUQdMcXUtn4KJkJL98SKWf8C8hWPVEfRvZeMSBruRwdyu1", + "EYgJvYZV98fED9Lpc1Jr8TDntfLz5uzFmsMirQRzQy61a4B", + "EZZ7DMwd1t24gHmgD4ekn7f36pPHHt3SCXt7a44GTiprt6d", + "EZc5iZZjGFMXGmBps6rt8QJxns8WN7L66SgkJhHg3dhoJrd", + "EaAdAwRHvCmnkJpjA26RCdCiThQycviNPwyiPQQGC1YZKbB", + "EbaJw5HDyqLurKypUFM99BhQ1rqNLHmMSnQGcdYGQL14XU5", + "EiCesgkAaighBKMpwFSAUdvwE4mRjBjNmmd5fP6d4FG8DAx", + "EimqvBYtHPwvf3PDiqD72pTSUjmhCuFSaCSawAs3k6tQYTD", + "EkDWeoUGue1rBup41awEGmf6gmTemankoSJ8x8KpoyybGgU", + "EmMPBDBrzDsnKBxxUR9wCiZVM8tQnpVvD3XDsTdZ71haW73", + "ErL6bfYX8ZN6CnKTPskY5QnBwF38ZW1XkNzjhFfGF53BY83", + "EtCGTKdyMfYUX7jaTgJq2pt2PExEGfzcppbGafcpaNkahAm", + "EtDKLc5xWW2nfjrokLFWfT1rFbha9bPh5JozEbfiCWHQXQJ", + "EtNAJNfs1DtsMQBYj2bUtKtzJXhEX5mZ8ZrPK7gsF427pj3", + "Ez63HgnwvnPV4QdLdu14BpSrXXGB4BLHHDgzuxqNJfGumYa", + "F16KfQojZmEBvYyZQwC1MgR2P3dSrPfNxF47yqtmPX4dJRd", + "F4q2yRrJ2hu9yfGbjiPvekPNXHJfE9cKdGiWxeakmbgd9Ae", + "F5edJrWioXyuWpUKYZk5FngEovCaevd44DbFXugL19xMf8d", + "F5q2e2cjaeYfB3NkpY3zdxhD7BnJoyZvYAuKkeSWvCtQuYv", + "F7Zabg5T94iGozVuusQCJQCzksBD6zHcGcCK7TV9Q6rcnz6", + "F8nEQdRxv4iCrcJ72XsAXnAm1iyqajSvSuovvic3QTzZViF", + "FBHmyQBEzfQdu94SLrZnXYrZWjpUFfKagWi1HavYj5i7HZn", + "FBVfQsD6Z23qYDNJzyAmUpNxfYt563KUyjGKaRC3sjkVhip", + "FCVN2XQZam1Sqa1RiWr9tDfdaRvYbh4CQGeJYH9tk95uQk2", + "FD5DgPbS1dUNfTkV6oyCBsnqcByWeiZ4rasv3o7KYcbYyTE", + "FE6T6jmbgwy1g3JPUPoDdzd3x8PV7tDTrTEZvwWgmEn4A7W", + "FG36ViMzpfjUjRmcgqA1YDRT7puxyMAU2CKomPo9xAsxCku", + "FGHzRtgn9c9yPDw3rQA5MedSjvbpyXggD28X6vmdJYrsejb", + "FJimD5dnWqGZhTXk5kbYg8Epas2oJW5i4X5HFPJW2Q1vhjn", + "FJixgYmBZaFfv1ctpe6LFX3P47vtmXBbq6goJbzrvZo9fBg", + "FLHzFovZtqmdQ73HMTAfe2ub5r92KhiBy8XWvSyAMhhBtBz", + "FNnowy94spLAxiD9sSZ7PJSMEruVHEe2P7kvH8NwTqPPtCW", + "FP2E6m2uJwfDYgKsVyKtS1P3VNumDXJwvp2WE7xm3Yo1q47", + "FPDJCymMK8yoZPw3yuxXG4XKSxeRovcrKLfSxMKdm6rxbHA", + "FPLNRDU9XL7YkGEbLwfCEE7BK3xAxFhUpMjRBfM7Tetkuwk", + "FPkLCiKqkmQ9P3xFwHpLdroiSRELaoQGSnm8NEMr56mAuz3", + "FSJJ2GV18xsQrtT6o1DTPH28ubySF77WYxMSkxZteqDpcoE", + "FUUH1yoa6iPELAwN28PToF2VGRAQM5Tn8NoJrzVCKWEpbSW", + "FWJ4jSem9VsuknbEHNsaLukUsC6w4WYhkCgNEzQPWtXUypa", + "FXycEucF1BdaQLvgzYC81KznPTpYRhCXEzPq6noKTEvsztq", + "FZoPvMfxR34WwBYnEGHDKfNHtMrpHLoA2wVzGNu87XstReZ", + "FdNm4j2Qew1iDhFgpiVoRmVeuyDkHVUxxictvZDRCj7Mq5W", + "FdfmDy1pAgrmjN6F1xcsRwp6X7sugVq7SRvo6NVcEc6E4KJ", + "Fg4rDAyzoVzf39Zo8JFPo4W314ntNWNwm3shr4xKe8M1fJg", + "FggXamGXCDW9ngQfAsMggHwAVgRGcMjZdh4Qx58ZCi7YPkc", + "FgrjYHHG7SFG15CRGiowpqQgfi5sGSg6VJbiBtUjJQTXDhd", + "FhRy5CsNB85dVPNRqWnRiRyGkXX8EZFyFBUZQfJ2p2rtZfW", + "FhYr5ReG794nQEmX2f5QLKo62nxESiD8THT3LeKJw3YPxVf", + "FjeAj5EPPCAcJ1mFa6Mkbu1AKVK5aVhaGiSPPoeGDhMa8f3", + "Fm8jU55YzzBrVZhoXRsB9tY8Adf3p5AddD8t7ZQXttwwjLG", + "FmpkQf7RNofMCw5QdxGxFuFMAAXzCv8q7FSoEXTLfPj2c3D", + "FnvowMqfruNqxsWQwXVb1cys4dRWUvrj5UnN61EkDWUviC3", + "Fo9JJ8NtkGhZXqUuAJo8cugcEH3siQoNQNbPXtgLfKbjiyS", + "Foi6DbpYXWkNuBxKF9rnMurFL6b9UisSt2ksix4N3gYsCG7", + "FumZdpJgnZhaoL3LNExmoykUZLoD8zcJ8L6aJpvkoKV2s1K", + "FunWBvH5kuYkQxoNufHoEgajAjSKyZz1yUjYFTZURRSnQf6", + "FvDq8x7aFnSVkJ5ehnsrgHUBokp6TmuBE7X9YJee6bp6ekV", + "FvbZbdfWEGGFu7HxiVbiM7UX5wPvtmWxvG2jCN73UivbB56", + "Fy3BpgvBoQ4VfjRkCCUzazQwVHQjAogviwzzoht8KAP4d9K", + "Fz5WLMi4ZTpfJeYz1mjayckoVpwR4Aw1oqKeN2uLReT1AtK", + "G15TNyTKUbFk9nriDTki62WpY6fgNTAUZp782876muo2SpB", + "G1WdshgUrw24UJjeKpSNKfHPw3XK47fn2x5DGoBnc1A2FPF", + "G2tJwPWn79JRax4SKcbD71WrwXWmkXvhop3A1FANY51xDAM", + "G3avRUrsk5vkvFa8xWmJErvZVDBH7D3pMiXLiArRusGrrdb", + "G3g6PWRnQWLQPLFpyNH6FUKXPzhX2WnDDFJopeBNTLvEg5D", + "G4yPnS6rYbwgE8QPGEiPRimnbe1w6nVKXFehNRQGH6gbPHr", + "G5qDtA3FkRvJ4Z5EcsnDjCESWbgLUj7XdFriZNb6AZy9YKZ", + "G7MMwpHNrY3Eze9XMhj9GNRuMjRstiPdxcHSa2qY8ueVbti", + "G8nQvGu5xhLhmfd7ZdAnCjvDEj8MmiRvSEfAf9Xr1ioSgbU", + "GA9YciWcx6tuPRb1LFnJiLnieFoMLB3TG5p4fy8pzhWDh1S", + "GAperY2KUX5vuCnnvrbn4jUnJESUcNBdUEXpTfNTziq5SQV", + "GDANUR2HwKSp1gA7p8QQJwRFmJ9GmwdfgyQMDfP3DpA868R", + "GFQdgyUL7y7qdkhKUXVsJMFKVTn5d6WDcSkVGWCiF67Pg7m", + "GHnBVHkuZBnwG4jUGC8sBVdyJ2stAcgFTQDEojEu9m56gKh", + "GJnseRYKXQYRNYvmp6vpjp4U7LUqAmRxTBeNs49GkyMRfjh", + "GKGs4ES1u3yCo8zkJFcvqNuoUhzDeGca66Qwuu4cxDP28VX", + "GKicoR7M3BmBudDvZmtusdTN6uF6x2BaQ3FZWLLBxaJ41ub", + "GL47pCLjdWwkmYZTr6yQjo4koSWR7xb6Hg5P5ajVrMxpFbA", + "GNkbRyM66wNFFdargG7PXdN5pPhfmgUkbY1syVKhjL8GaUX", + "GPGpfUY8ZHchZbZxtGdDL365o1E9Xqfq7HMKSV7eVk2eKVW", + "GRVN1g3Tm7Rmeotfh5AAda6Qfgye9nbr1UMoDzWybwTdUdV", + "GTY3EsEV7sXJogaEtesVsJpjufc29MX8cuhoA8NvAt7zss3", + "GVzrJcVSpPUucP3HWcXp7bT37HWuBzisvxqFfKhBEsLPTkg", + "GW36E48nxrvZQvg5G6w2eB36y28GyaVWC8iQsit78yJWVnW", + "GXYxEKCp6zQgNyu5k9D6bTUH7JYCZs6BfQw5eG37qEw3HrE", + "GYjCDp6Tj5JHgtr4CLmCWb36RpZr5kv6ppPmT2RvwZosXeA", + "GeYRRPkyi23wSF3cJGjq82117fKJZUbWsAGimUnzb5RPbB1", + "Gf9h3SKz565CzWJQfvgxtZShQ9ioMAj74pLQX4ZVNHVQodc", + "GgH8UuBcHcLFTr1XVo7uLj4eWjapYEcEq4WjMHVc3jY2KCJ", + "Gghvu31bfQJMt11Yi5VVQqBsMfvTrpSEQ6qySokXHXfrtN2", + "GibJagV7QvJCMw572nicKH8aEPxLTyVZ7WX7evpzixmuAJ4", + "GjF1e3AxczvH7QyAhvPqBr3qmptaMGyhb9DfpbK5KM5VjzN", + "Gk6qCJKEKyDAE2KzZSA9XxB9VNpFACTv5u5yVJLiA16EueZ", + "GkPKDZMcRwi9djMAYcrZzF7fZdtpcDwK3iZNpAyerYcLM7F", + "Gnd7GmBmAo829p2w2ReQJsWdxhDGWmon24yFWmKG6nG3rLM", + "GnfYikESq1aqBiG5P3n1HSTsGveSmEJjR24EBc6LkTR1wdE", + "GoWLzBsj1f23YtdDpyntnvN1LwXKhF5TEeZvBeTVxofgWGR", + "GomreGYeDzvwBZQQpd4dTyxnjPgpiZ99M3tX7YJTFakEnhv", + "GpE5hynVe6JgAwTdZVRDTuaDT44mV89Y1z2gWgjqS9boPWo", + "GpauAAY9kt39us3P5tWtGVb6dBq6vTRzfPaWjHhTVUKuVp4", + "GpodE2S5dPeVjzHB4Drm8R9rEwcQPtwAspXqCVz1ooFWf5K", + "GuZ5Em85y1hd8HmYcJjThWyLnFeu2mjKq3Ed5vt4vU3Em1o", + "GuneYkujpo8oSKrrBzvMdDK3Hs9tpZiFTSqfyaCPaeA7JCf", + "GvaHCJZj5DyLPz2NSg5xpqohakRfySifYprgZzUTwrLE52y", + "GvmvzzbNNeq7L3RyY3rCDdZDr288QbNLL1V8k1diJE1pebG", + "GweU4dFYodvXbAVAKnBE1GGbSQL5EPSzw5UewMEYrLHa7x9", + "GxdtyNYoKmQZUE9uGAmcmsb2cAJebXs4oc46VzY2gBqgpqk", + "GxyCAndwSkRNEecB6QWtQD7Yc2Nz8MNeGCFGXaVUwV3nfPH", + "Gz5jnTUepEGZ7XvzYN2BZiWrS2CR1nh7t7aj7S4ifc1iEJp", + "H1L3XmAueDThWAuU2ATRGzek73MidkZw8RJGcPbGrKj1mGE", + "H1YmDzgoaF6Gh3ARH4xTDYZpAQoCUXn2kGKTRk1bZhNsMS8", + "H3Viqu6M5bsa5wa3zjcSVfrKivKGPc84KPi8Nz2kbyDSzGS", + "H6AcP4Xgbtn5HQVTyA8uTS9LBvs3hgdC3ZhXrSAuEwDLVLz", + "H6RNLG4e7SLTTbrCEHbaTDecMSMFbKTERbp2aqnT5NoF4k8", + "H8YnEJx6dPTBKTVAb43MFam9exQfzv586aAyhzcqEJ1SLNS", + "H8admATcRkGCrF1dTDDBCjQDsYjMkuPaN9YwR2mSCj4DWMQ", + "HBugPU3KmKaRnfkkVK5RpEZZJU75CxMNPbpcrAWdgFKdjSK", + "HEciJWGn4qLJRzM3qR53K2Mb96ghHab1aLyTxJzzmGFfhCo", + "HErWh7D2RzrjWWB2fTJfcAejD9MJpadeWWZM2Wnk7LiNWfG", + "HGFAh9e5GTef7yuqdh7eX7QitkS68LZVNJEKFD4pWnmqvyv", + "HJ9B3TgtohCrT3VVj929kMaMM6QhnDYLjUumMKGMKtpiP7E", + "HKZ2rGKz7a5pL8MV6hNzQW44hTC6SbkfAJBxLjPzJBQqtg3", + "HKtvBGvLv6pp9RpQiHMaoZUx5Zs3zziuu2AENt9L7PFLP6G", + "HLBXyareJwMxdCSoUfHXsqfWwvukLUypGwWRVvGc88SAyhX", + "HM2xVzCQJPYfT3KMtdB4vDwDQWd9aZWmGi9EkECiDcXuNsQ", + "HPFBAvhzXHghMkizMSvYLCtR8ASmV4MXuBUk7J8159ULGGz", + "HQkj5fQEYw81PDJQyabvLt4H6KacJw5Rb5A3Ab6YnJ2oDUw", + "HR4bck1XYD9aoqtjt5BizLirgEXpRWNYgNPJQ2hP1M1xMih", + "HRE1LZbFvwDvMntGQ56gRJLBJn8J69sWE4Psaibn4SazBfW", + "HTyAnvpiG9CAa3pRcmnouknak1vdZshhiAxuWtinEijPLas", + "HUGHnqo2XFZZmeGvhut3sAEDVaV7AEwQh8f6h2BLuU7FrYq", + "HW58itR4caUCdp8c9goLgXj4V5MdUCfQZFYseWdyP5wG7S8", + "HYQFq4zZUr4jfZGPK4jYtRKas4xtVBBnkJfg4HnzDtsiNGs", + "HZDEMq9VJBAKu8mAttnGB7uZvBPLd461ucZ8kCHwtmj614L", + "HaKEf61SYGE6V6HKofDMXvQWjKUFjur9pGDpdc47pqDevA4", + "HaPcanSMnPqJoC9QhsEMLwR46TfbbVgr44yh4m7ZbeuKyMx", + "HbktBpDVERtDz18whHSEtJ2rFsxMJmyHxgBRff5sXnsGakm", + "HdxpV6wA63eEjLmnkhcF59AKeFxqM99r1MZEXxK5iWxbVGC", + "HfbMDpxDubFuZdnRuXgbZCRAPw4xXzeQSacpM8TiACBdmVq", + "HiyhZhiUMvYsovtZPpVcKjhdmkNUbhqKkvKrN1NGUYYSFv2", + "HkYfDKozJFcTM1ebo9dyDPqF2XfZQd2aWzur1HUPKNKrdpY", + "HkuBMQr739WYVf9Fpv4VPbS4zKv7q4yVVEZz7gL7eMXHRQz", + "HqKm1vuvCz4C4ArZFnxDigjYJY4HTgoyrWaeKNvxL4SJ3Wv", + "HsNps1ukUFNfUY6j2ajfjpdVr8msWZCdaFbh8w3ekqg5YKb", + "HuZS2KT6UMQoDUxsDb27hxw8wBiyJM9QidziKYdC7HaT5TW", + "Hut8Vi32mBjJipubTT3ibDcN2rw5eZq3EFyh1gb5SeTNgoX", + "HvsMbdBnkgUm1ea2EqPibHcP4DpnatWtz7jGhuP9QeYhAAc", + "Hvti6oER3Lb5oKxtYcVW82cc8KDsr1LtqtvYcNxLCwUgpMN", + "HxLGmds1YKjgpp1HUdpp5916sYB6nAHCkC1fs1Stk2xZWEJ", + "HxfYoiAdkmEDFusAejuo3zKwB1Q8bJ94GXgV57MW8oziqL1", + "HyWxAGX4cYnawbDxpBvXCeeovK8cCcywvHUj4uhiWQXQNd7", + "HzrQ8JziKrwSsxuidobfX6XVNhKFyQLYfULkVMWymDUf7pA", + "J4BMGF4W9yWiJz4pkhQW73X6QMGpKUzmPppVnqzBCqw5dQq", + "J4ibGw1bqrSkwsw43rUf9w6hyXCxZKrdZJEkcfH7E4yzAL6", + "J62bGdbHT4f3R7aeG1Tt5y9f11bJZLBZUAeZpDaX3HR3oXx", + "J6f5w6eydwAi7pcPy8TNDnYMnBvvZyVXwjQVnJvH8YzUQvd", + "J8jwjHCEGAhWSiTAUyC62Df1H8hUKqQsVYdCKvusRipHWHy", + "J8vr5XuCMjUXfnvQdrZ2M2cWsykk8Wae79uCDEiWymmU8Bh", + "JAXs5Hp5AEB2nHDbJUsUZdnGaH8TnEyv3pquPHAorK5kkh1", + "JBsSffyWTv5vvy3VJ4ro3VSg4NwiiHGe9aCcLTfW2TLWiCt", + "JCBp59HSq5mZigc2v57PFeafPVg5KcSu3e2DCW39aPxSzvY", + "JE3pk8v6QYhHGJtuPh2R82DDPLQBFsMSBYbqXMsa4bbJpVC", + "JEnSTZJpLh91cSryptj57RtFxq9xXqf4U5wBH3qoP91ZZhN", + "JH4xgpSTLqMn4Mo8xBtUitezsvpqTwYN9G7GDpH6wWwyMCG", + "JKyTzmQVXE17pu1wbqHphyaKoTdqg1J5g7C15iEuK8LGKC4", + "JLnxrPb3QEXhVVBxKWaQhchDWgmwJKhY957iz19f1X8kiv2" + ] + }, + "round": 2195, + "thresholdWeight": 167, + "totalWeight": 250 + }, + "setId": 961 + }, + "id": 35 +} diff --git a/packages/types-support/src/json/Header.001.json b/packages/types-support/src/json/Header.001.json new file mode 100644 index 0000000..d2ac96d --- /dev/null +++ b/packages/types-support/src/json/Header.001.json @@ -0,0 +1,13 @@ +{ + "jsonrpc": "2.0", + "result": { + "digest": { + "logs": [] + }, + "extrinsicsRoot": "0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0", + "number": "0x0", + "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", + "stateRoot": "0x294c3470ae3be7555240b9d034ec19c3715ba2c3f20b92441f8cea0cab66ab56" + }, + "id": 1 +} diff --git a/packages/types-support/src/json/Header.002.json b/packages/types-support/src/json/Header.002.json new file mode 100644 index 0000000..06cbb31 --- /dev/null +++ b/packages/types-support/src/json/Header.002.json @@ -0,0 +1,20 @@ +{ + "jsonrpc": "2.0", + "result": { + "digest": { + "logs": [ + { + "Seal": [ + 256804359, + "0x2c0e0ee8a5d1a073da3f8db002b8eaebcd7b1a7eb25662e09f9ef0ac58d96bf17896256cd5f0bc672f96aab49fe5163ca5cb4c1a0f047dc39e89cd4a9eb2ea05" + ] + } + ] + }, + "extrinsicsRoot": "0x1da0d30001d07991baef3c5c65234c2e88bec659dc0d7138a7e7267e2bacbeb7", + "number": "0xb66", + "parentHash": "0xb58e4d84c2e0db1cdc8c8830aa719015f8c855f29a0dff2b158a160f29f73ba0", + "stateRoot": "0x22f6f5b6992ab87ea5f52b2732ed9e22a88643ed3a97251986857633687fbc54" + }, + "id": 1 +} diff --git a/packages/types-support/src/json/Header.003.json b/packages/types-support/src/json/Header.003.json new file mode 100644 index 0000000..79feb13 --- /dev/null +++ b/packages/types-support/src/json/Header.003.json @@ -0,0 +1,15 @@ +{ + "jsonrpc": "2.0", + "result": { + "digest": { + "logs": [ + "0x0461757261210169c97e0f00000000479c09f7ace12ed3e1af2dba6cca6831e257e80feef56c7474d6c69bae6f4e8a6e0045a87afe14296992c38b7d55abcbe617c441cd35e8667abbcb1678f31802" + ] + }, + "extrinsicsRoot": "0x4133a7c2e9ab3d0c75f93bfba8730011668c697036adb2f22916a8731f68c2fa", + "number": "0x193046", + "parentHash": "0x596b8c3ced242052921135e9b44dba2ba3752b2a92f1cfa361d59b10016cb5b0", + "stateRoot": "0xd9d32d2f3f4af14c506aa59ff5a3132ca0fe5d7f82cdf1e4967a638042e849a6" + }, + "id": 16 +} diff --git a/packages/types-support/src/json/Header.004.json b/packages/types-support/src/json/Header.004.json new file mode 100644 index 0000000..a5c4761 --- /dev/null +++ b/packages/types-support/src/json/Header.004.json @@ -0,0 +1,16 @@ +{ + "jsonrpc": "2.0", + "result": { + "digest": { + "logs": [ + "0x0642414245b5010100000000d968651f00000000c8a188930c6c1a8fb15316992a36f29671049dfdb96d9248747e90b80c48547af89b3238620eaec599e6a5bfedf3ae538a6cb4e19326ac2af9c21494713fc70af38629db7bcc42bf8110655d7b3bb1cec3790e39c660111e7fac4a0cba058305", + "0x05424142450101168781581fefb96e500cfd56dbf5b9709a6babb19f74369ea7b660ea861e180c08899182e4beb8da95848b87a16a64132f497cea3cb7aa6e3f3224adb9945989" + ] + }, + "extrinsicsRoot": "0x82faad984718975bccbfd58fdc67f59d367d678419a918f79c7a58cbb8e34a5b", + "number": "0x14fd", + "parentHash": "0xf0b30ecdc94c481ca96234d2a17408fef6c401f705a1f5f911e58d2a1f33fcb6", + "stateRoot": "0xaa796217f92ed5a40ec03d184b05ad1e1824d2824559719b9bef3304ee3bff55" + }, + "id": 1 +} diff --git a/packages/types-support/src/json/RuntimeVersion.002.json b/packages/types-support/src/json/RuntimeVersion.002.json new file mode 100644 index 0000000..da56f43 --- /dev/null +++ b/packages/types-support/src/json/RuntimeVersion.002.json @@ -0,0 +1,45 @@ +{ + "jsonrpc": "2.0", + "result": { + "apis": [ + [ + "0xdf6acb689907609b", + 2 + ], + [ + "0x37e397fc7c91f5e4", + 1 + ], + [ + "0x40fe3ad401f8959a", + 3 + ], + [ + "0xd2bc9897eed08f15", + 1 + ], + [ + "0xf78b278be53f454c", + 1 + ], + [ + "0xed99c5acb25eedf5", + 2 + ], + [ + "0xdd718d5cc53262d4", + 1 + ], + [ + "0x7801759919ee83e5", + 1 + ] + ], + "authoringVersion": 10, + "implName": "bizinikiwi-node", + "implVersion": 60, + "specName": "node", + "specVersion": 60 + }, + "id": 21 +} diff --git a/packages/types-support/src/json/SignedBlock.002.json b/packages/types-support/src/json/SignedBlock.002.json new file mode 100644 index 0000000..42ba3ca --- /dev/null +++ b/packages/types-support/src/json/SignedBlock.002.json @@ -0,0 +1,58 @@ +{ + "jsonrpc": "2.0", + "result": { + "block": { + "extrinsics": [ + "0x010300b0b1c85b00000000" + ], + "header": { + "digest": { + "logs": [ + { + "AuthoritiesChange": [ + "0x8101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0x4de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7", + "0x063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca5", + "0x82c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf5", + "0x040c8dc048a6d129803caa851c4c9633610068e4ef9eaa0bfbf40dfbfd43d922", + "0x2347812ef77d9fd3cca1673e1b2bde54da96fddcf79d92832b1e2a819724f140", + "0x673bda1eda2aa719d707473163d45300819f2da9fe6fdad6d74ce222ada2665a" + ] + } + ] + }, + "extrinsicsRoot": "0x295fe0f63daaa9552f497f6c4afcbab59ca5c681da9219907f188c765b73fb92", + "number": 262560, + "parentHash": "0x99b5b6d28a18c1fee26aa18a7f15b5ab20d416bc70319b4c3b3a7ae5a98284ea", + "stateRoot": "0x24bab7fe0fee187a57bd0029ba151e81a0bae0fea96ad9f85c579c1ba9d88948" + } + }, + "justification": { + "hash": "0x44bc10702350e3548eb8ea52354e8e07a5646e108f0aceef9488131f6f929f3b", + "round_number": 0, + "signatures": [ + [ + "0x063d7787ebca768b7445dfebe7d62cbb1625ff4dba288ea34488da266dd6dca5", + "0xe551027d14a2107328685f14a6e6b6a217d0e587ed40b55e3a356f4d02468fb968d9d1dd9d0c7026b712bf4d2eac3bc3ff9eeb2c9560a40575f41df69e769804" + ], + [ + "0x8101764f45778d4980dadaceee6e8af2517d3ab91ac9bec9cd1714fa5994081c", + "0xf303671e97a9b1811d3c0e1b87ebeb89f340ccc5d0d634c9596ca4764943561304df268498c133e88ab3a859d86821d85ad48ac53c54df9ec85e2a515adb0b00" + ], + [ + "0x82c39b31a2b79a90f8e66e7a77fdb85a4ed5517f2ae39f6a80565e8ecae85cf5", + "0xb2e326eb1ea3a803e6f331cbf2da8add553f08450a14fe1a26ba31039e3e1a70c6dcffd3361b94b973cdc7422f9e9b99edaea98117dda35275e6a36e6c54e30d" + ], + [ + "0x4de37a07567ebcbf8c64568428a835269a566723687058e017b6d69db00a77e7", + "0x1f739aa8cfcaa81362e3eb9c574844df40e3db009676d6065a7b5662d5e00b1385526257ba43a43cf84e7873354e3919e0dc2ac85a0426b43b3f37d311f64907" + ], + [ + "0x2347812ef77d9fd3cca1673e1b2bde54da96fddcf79d92832b1e2a819724f140", + "0x01370b87621008e9ee55476dc0c4246862aed787b94c27105eaba9c09e197882c6f40436ce2f45f0dbae03ff81af117bdaabc18f627b72aa6318326f6a067b05" + ] + ] + } + }, + "id": 8 +} diff --git a/packages/types-support/src/json/SignedBlock.003.00.json b/packages/types-support/src/json/SignedBlock.003.00.json new file mode 100644 index 0000000..74bc162 --- /dev/null +++ b/packages/types-support/src/json/SignedBlock.003.00.json @@ -0,0 +1,23 @@ +{ + "jsonrpc": "2.0", + "result": { + "block": { + "extrinsics": [ + ], + "header": { + "digest": { + "logs": [ + "0x066175726120614c411700000000", + "0x05617572610101c4dd7f7d2a7521a91b821c44d0b8a628e4d804c0428b20a8e281aeaff575001cd55f4540db0fa78e5521b330d1a7ef9e8b922ca723097b4ab83e59a13fb44f0c" + ] + }, + "extrinsicsRoot": "0x907510396823ad5299bd8b7e3d922e182f117032a0653a85f9ad3cb58044a086", + "number": "0x9e", + "parentHash": "0xf17a9ca2e515a68c6e1b0315c5182d237580507c60487f5a6b75c703aa3e84ab", + "stateRoot": "0x5a4cfd95c29f8db93119a11e012c3905767cc4b7e3a3a2f6bc72879e51a47cd4" + } + }, + "justification": null + }, + "id": 86 +} diff --git a/packages/types-support/src/json/SignedBlock.003.01.json b/packages/types-support/src/json/SignedBlock.003.01.json new file mode 100644 index 0000000..5762a5c --- /dev/null +++ b/packages/types-support/src/json/SignedBlock.003.01.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","result":{"block":{"extrinsics":["0x20010100038831055d","0x140109007902"],"header":{"digest":{"logs":["0x066175726120624c411700000000","0x05617572610101d64f44f8c3bb3deeaa8323aadfa943c3510546bf85817788b55a4aa27e21b8492ea574300966c60bd42571bfbca9f53bb682fb6c7e703aade3489680764bb109"]},"extrinsicsRoot":"0x9ffac24de7dd587cbd38862fa1cef38d47b7cfb82d3313b926d60c855b203405","number":"0x9f","parentHash":"0x78b13ce0daf54a5940554f7dbe4af4e97120e4ab2a073043f48889cee25859cf","stateRoot":"0x2671c3c7bac9098af71ebc15998c2fb5e366da4db5a0b0287ba13d8afc9b2bd4"}},"justification":null},"id":75} diff --git a/packages/types-support/src/json/SignedBlock.004.immortal.json b/packages/types-support/src/json/SignedBlock.004.immortal.json new file mode 100644 index 0000000..5e4eb30 --- /dev/null +++ b/packages/types-support/src/json/SignedBlock.004.immortal.json @@ -0,0 +1,24 @@ +{ + "jsonrpc": "2.0", + "result": { + "block": { + "extrinsics": [ + "0x250281ff90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b20be8c5929d7d4dfe3f8124bad55217fa0dc53210399448a7bddefade7a7e64489c1acbfe65eb42d235e6d54279cd88e4d6d6147862a4e5c6ba2ed44594006c000600ffe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee5c0" + ], + "header": { + "digest": { + "logs": [ + "0x0661757261208e08491700000000", + "0x05617572610101039584bca9a9dd88d4bede8787ce022ddea809cef8ebdbf0d7b17c918e49921c86e6d6aedebc991630f7634b3f3306b6c134e87325f34301de5745df0da0240e" + ] + }, + "extrinsicsRoot": "0xe52df22c1a9deb8ed460e5d80a3dd8e1090bfd51631f53eca465915089703b92", + "number": "0xd0a", + "parentHash": "0xcf5fa8ef2fe76c0d6288535231d21989829933b986d32a3ba452173c5a2074f1", + "stateRoot": "0x3fe7723fdb1a60938e45b72f1d84f414434b9df4ece367dbb39912ebe1a85e9f" + } + }, + "justification": null + }, + "id": 7 +} diff --git a/packages/types-support/src/json/SignedBlock.004.mortal.json b/packages/types-support/src/json/SignedBlock.004.mortal.json new file mode 100644 index 0000000..2c52733 --- /dev/null +++ b/packages/types-support/src/json/SignedBlock.004.mortal.json @@ -0,0 +1,24 @@ +{ + "jsonrpc": "2.0", + "result": { + "block": { + "extrinsics": [ + "0x290281ff90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22f2040bbcf048e6bfb68c0722fe379c93afbc8f885ee21fc5b5679d4ade606a7d46cf151a2b8ad5bbce6ee198a41e3251302f5e9c64f457dbeacacf3e43b448087033000600ffe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4ee5c0" + ], + "header": { + "digest": { + "logs": [ + "0x0661757261209808491700000000", + "0x0561757261010195888c7f16b54cf99117933d503faea1a7a8bdab4b6a8144c078b6c3d9e55d3a1114af92b2360a0694a057df016e1ad2bd750d43411464b9e7414e921cfdc00b" + ] + }, + "extrinsicsRoot": "0x751fc4dfad59fefd3c4f730596f1a742b56c9936b4e3d4801015472261a0ce48", + "number": "0xd14", + "parentHash": "0x497b3b929ae079f6f0d280ba85744b87559eaab8969619be5cc7596c5a974cb9", + "stateRoot": "0x011c352e0f97cad72578f9e1e8ec759096365b891928d6b094d0d8d329f9bbab" + } + }, + "justification": null + }, + "id": 8 +} diff --git a/packages/types-support/src/json/SignedBlock.005.json b/packages/types-support/src/json/SignedBlock.005.json new file mode 100644 index 0000000..80e0c85 --- /dev/null +++ b/packages/types-support/src/json/SignedBlock.005.json @@ -0,0 +1,25 @@ +{ + "jsonrpc": "2.0", + "result": { + "block": { + "extrinsics": [ + "0x280203000b868d92346c01", + "0x14020c008151" + ], + "header": { + "digest": { + "logs": [ + "0x0642414245c101a5cb8138000000000000000000000000549baa911a66f7bab6318a6930380bfd015713f77b6775d2df467d37dadd224dda0a80881cfbddc580d45b3b7358f28e4990d950df4508590543d39d635b3402822279397c1d55449b201710c706ce5de3fd3cb2e269bea6ba89c71e4446fd06", + "0x05424142450101e4e9f32bb0e72821032f752422c6dc23e8acd5388eb17cbe009d7e3764a0625b38c1b90ec6f19bb5d8c093deeddf9df01845352ac6fefad49601be1f726cea09" + ] + }, + "extrinsicsRoot": "0x794ff5dde3eaa27d56cc760dd18774c883d51ed9206ff93c9a7e7d6a8a6dca11", + "number": "0x1461", + "parentHash": "0x28cda71a46766fe3cf64475b566916d367617d14627e895067f4186e65609d0e", + "stateRoot": "0xc7803b39c1b30a87566ec9d95890db76cf2eee7034faee4c8a0997759e7bcb7e" + } + }, + "justification": null + }, + "id": 29 +} diff --git a/packages/types-support/src/json/StorageChangeSet.001.json b/packages/types-support/src/json/StorageChangeSet.001.json new file mode 100644 index 0000000..802cb45 --- /dev/null +++ b/packages/types-support/src/json/StorageChangeSet.001.json @@ -0,0 +1,16 @@ +{ + "jsonrpc": "2.0", + "method": "state_storage", + "params": { + "result": { + "block": "0x2ad8077937e9a5ceb2e0d57c95b95a6a9edcedc4fb1f14e3bc13245e223a569d", + "changes": [ + [ + "0x54bdbdb5e438d574dd4da05ee6131cee", + "0x914589504e470d0a1a0a0000000d49484452000000e1000000e00803000000c231f1ed00000090504c5445ffffff000000f6f6f6fcfcfcedededf9f9f9f0f0f0eaeaeab8b8b8e6e6e6f3f3f3cacacadfdfdfdbdbdbd6d6d6e2e2e26a6a6aa5a5a54545455b5b5bafafaf6464644f4f4f969696555555888888929292c4c4c4353535858585bababa7878781e1e1e414141252525a9a9a99e9e9e1313132c2c2c7d7d7d0d0d0d6060603333332222226969697272722b2b2b424242d27457990000108f49444154789ced5d6b57e23c179d82088a302015a40882e26d9479feffbf7b5b2ed2669f5bda14e65dcbfd69d690d69c2639977d4e925fbf7ef0831ffcfad56c5d7567cfc9fcf1e3ebed6d9a4c86f16cd6eddf5c37cfddb100687787f3fb8788c3ea6bd2e935ceddc9b2b8e826ffb1a215311876afcfdd5d4f5cc683e577ff9f06493ceb5f5d375aade616ad46a3dd4fa7edf4717c94f2cfa47fee5e9bd19e1ca6e5fb68b2b8921b37faf1e3ea20e5e8f9f2345dac827eb217ef69be689b9fea3ddfed85bceffcd3cbb29dece7e6a66397ee80def063f7f0ddac86ae05c16cb7aa96d3f20b6ab6d90939bf09d8af4068ac5f767daba82f9addc7ed7b6e1761fa150abfdfb6ddfa0833bf3ab7dbb7ad83bc2c08faa36d8f2617c1de7835dfbdf1df707afaf759675e43cfaa78abb416e797b1bd5580e36e0daf5efcfd07646c4db736ac2e6f64f670eef5186fb55e1de377c0ec33fd0b9fe7f2e7fadb2fdca9f9af0cb33ff2768ea9daf8cafef4672bfd67bbdf194e92791af90d9f3b7dc511f5c67625bcd439516874f611c1f4ee18441cb0dc0cfb213f7a3bd3d69b56c037ea687e10515e111f7140177a91bdf194eeea258e1b8571381bd9cc1cd6c1c986716a926f8bc43fc660d0cd5e77a2d5b8b10b987df8df81fe6c330b21e7815e26a1ef25df56c650e398adc6bfa15535a0e32d60c02fdf7e8d6a37c0eb3202a608a573b2286d1ae85d2492920246d15d200399cda14d985751782b2d60144c0f667ae02eccab10832a02a6f16c985e64c67814e6552ebeaa09982ad530fd68a51eff7d98571531aa2a60eac506724a6ed3982dcc9bf2d03d51033e03a52746358818600433bc07b2fea3e013359080a988e14631a88841a6e80e4f810c632ae247983765082860aa6e02756a144c39fb06132a42f56b15458f61de54c993a110881e6c3e04f25187a1058ca240ec60eb25c8d7f28f070d08a46d2ea200eccd751d0206739d7be9bbaae68356b548182c5e9c55d6cd1ea4931f42d166938ae162b72e01a3b7401266b6ba0aaff1529b84d191825b6f1edfe6c9643d7c8e3bb36ebf77d3f3ea63faaef2352ac12d610e4797ab07bf253e9d4c95fdb8ac80f5cdd10c47a38816d78b324ca268584ec066ad02e603bc3be13703d280b85c5016d81d05e4961bac772fe5715d321eae778ea6f83afe2d749cbc125771a9795af31ccd90f34626ee6f7e466e5c669eceeb97304f2fbeba3f7a79e7ed12f3f4aa7e01a365eeeffd967ed491ce81d85342506f75203f4e304ffde2a26514f93140b5c44c8082ebf6c7fdd5cb53e9fa062cab934818e5ff24b8367e44d3c86fe996ca129640c10305dde695cbf154362712d049d6bc3bbfbef84898057af64f52360fea8da2cb3c737ff65236ad28facfdaf604c6fe80226173effeeca56c86f6413cd910bacaa1edfeec47adda07f1740246cfc5bf0ca4895730bcb6aad378f7f287643d8ce3ce629662d1898763f7aff3789fbc0d46e3dbd5c3dfcf17577d14e15669b8bfaf7c246c5a93c3fb922e3780f170020a0e54b60da8c5d1216e741ebb0dbc48b9892d763e6834e08acc023ec03bf9afe3b604cfc647c26b1bc375481582357ab44a888be1896deb3a9310957a598c8d854e3fea3337e25a180544052828679855b0dc7d62e19e25c4381605397a2e33a92640971a4263509630a1bdd24babe8556d732c1d852cb24d9b62d98c144c6362e5d66de263f63bbac1c847beee6098f26ce84c5e48cd91728295e893066deacdf324b0aba96f2c12a27a17393b62d94001b20f05f3a8e99a824b0a5fc320205a0af9bbb88bfd17511ef8856d58f43526b21818babf1ad8295c05e04e6b12a2f1f4d98db85438fe62dd8cdb5d9d4245af49718588598aa18d0f3f91c8848da3d7dd0c891e566151b73c84a4f9429ded31883d991d76d88b27f7778d81433da679b394df898bc167257e8a6c865b41ea7a1c1a7f833975b06e0ea89815dc6f6a6eb048c4d4be1beab84ea1e2d6a0fba1ae5c6afe11e3eeb11245cf0d886e186f7955e1125f691252b68ee2db3d6ce28b10253ec38bddf1c61639e01002b704a0ba41cd140fc7460a30b0c6d23557a2078651007faac91e346148b5b47ba7339e91228c014cd315df5bccbeeb4348f3da544b7b8871cd1702509addfd7482f78d53030276c357c940723bf63871c5da0b2a5075d512107edfc060dc9045a6691852427bb09fb0054994a204278f3d55078770a54b485b2ebaad59c22e5bcf47bed7b500dc34c5c0575f855c66826e6c4e8136b8bd6474dad77d2fa74d4b0d219dad67dc5f9d9f38e081694b334d304de98ee3105a6a39e8508efb88e6d4d29c59889067dec1d5a6b4d1474d67617568230739fd3dccdb0f62861966f654b8d3f4926a84d6ca4291334a9d5dc0d620ea86991d0c6d0bd3941a1c1c0ccb1e1422c0cfc0da5c73c926ed20906393c1d5a6447083aacbc45a319e184fae5badfe2d198cb09ac19da684638c66cdb2958f0b89f883ecac5b1837d13bf1bfc4d0ec00d314b6d0208f2f7ae80730ba51e24a8c120ec9967c49b71b9b8126c008dc5233c6d937aca83dc258a0372395295f100caf757ec78053ca547c83e335c518d426619b24f779e5072cafa30af06526fe9feb9e487731ead7418b6cb8e25febcec2a2ad439adb5401cfba99e2539f2609d3e88488cb845e810a2bb4c508c8e073474bae738aab6073dd5e2902d2a737f9d402111f581c3676bf92b289c5c6ba8d297f497aadbbd2f29e2346a696da54dec7e433e23b98089b0151c52132f6e02ee52826f4332ca682ad99e0dcee6f98acfe1b618b6405ef467f478d8e349fa5688ca724f4822c8b847362f1b06ee916aee23b6edac3aa25434503a17e0f58a90f5b4a6ca644482e4b085d3a182da268494b55445262c1b0862d65a41419a578926e6876f0d3d13131f451605c7092de817235a4692684843c4db805e89a3de387f48cbe655162e89162edc3ba361c59b42634a022218892707f4cf56784454868d207225eac4742777def2623f20a3a012525a1912b1a1262ebba8692508be8607d670a85180e753f9848b6a0b9cf3aeafa48baae199690902c73c3704d3586a25f89a1e1d6f7013f57cd265212cad622229228ef94d6d78ca14c5c638cba9b90eeffaa89286a96aa1befc14948a8d9a2506c4a7a051fd8e97c589e6524d4c372371a6810935449f42b7a1ea3ae3ded0f6a503b498192502fe902b2628acb412ed6d0221f9c0087a0c64d8b697b9b27a524b49ccf204e52ad2c1da7d177410f8cae12439129445d427d13b93cd5353e17d99de3b27593a64a0c45e6660ca7aeaa128a9a54dd0b811edb71a4dc82c5a526214109ab7513065f42a2c9d4c815099adcca077f5ee66b3658b1a696d86550f77708cf4adee80e7868615e8a95f39bbc616844f5d5b2d940d9a423716c6ac8836bb8c01c42d2413c1d6545695b0bbba2ec2117ced1d0cb6130322c985bb0b4a277b4a4ba6adab126ab432170d2377aa0a62b3ee34e62d12492cbdeb46144f4ba849ca17e0a04ce7067d8212c13ccf30539c4a65322965227f959a0ab198245763d26f777210fd5236d93edcc2bc921e4b5b17e2017c64da02c5d45217cb60ea9d96c7b63a5d9cf3e641842b4a41029c347e063e929ed9dd836fdf0afe597a1be0a31fe263ea5ab8b782f72444b683bd78b27cad8b8c2b0eb1c4d15e1b3b8512295abdfe19d2eeb34eebe632d2dfb85f4aa42d401d4296cc048719e6e83195f3527a2f497754af51a6da4d8c889edbae65c40cd1627da2464230cce75379cc405cf2cc966ae39e2a6e984339606df3b03a7377cdb1f818121ed92813e62028c11155964309e34c0e97eaebd5ec884cf300ddda40fa3f65e3807daba1f9dfe725c7caf4f52ac55e2dc156849b6ba62dd72eb465f3a43cd11ae7a910ffadc5c4bd0b9e4c78e792d6b3d36818cf5b8c4871a18a21de53f8a5b70464ed33bfe133135b40032bee6f2869a80bf3e3d1e019b4d35120e8f301f0c41e9626696aad521e86848b1addb9698a6e20e44ab8464c44e3755092830a3a293e7c6c1c4345d4bceb3d122d2213bdd520b9c30f215193db73959afc43bac7259601e94db4797fa68443990a472a805311e68cd4b313d623f698f789866f415820687501974779ac2b78e652e158e2fe440ac6592acd3b681c0106a9cacfb49966e0326363cc07e44143e4bc687ca1e0954a41af70f6e89636f1bca6e4c5371ef16a8d2c9e84bc918c2dad58f41728dbe13cd7534c2df7ca827a1c4a84d7572be0a875daf06729f7112d1b79a8f219591178141114579cbf13d50c8868359619a1552896d9d5eb75d6d1851412a95b610fd6e344e96e25137842aac97897e029ad537a556a2a991d4de74059d1b2f1796eea7ce7ba9552747c0b3c43495027cfc98a6d3f681b5cc3dd5b554d89a8ff4c21948685361f700126cc6adbeee42caf908230befe571f21cf82b18600a9dc611b709086370b47f6ddb2645b35f835a0bb33bbcb5c001b71e530e1aedfb97b96db782c701b43023601079d50d4d0dd98d1dc05e1cb467ea96ff35bdc17ee70304fb30c5d90018bfa3fd045937c83b2884b5751e780c22d81ed7f5e70606d58cc7c1c8ae1d3d7c46fb29e0f64104aad035369c756a5d5f5f5e5e5e7ce3d2e734ee56efe680dfedf4d9d6b7e0d63dfb1e8308d19c6b8f03dd246781cfd9caf6415cc2b3ab6203bf2b55aa20f6b93482dd318b0083e7f004bec7dd97865991eef0d72e2238cbc54dce812e7fd391f8dddfe5717d07e8c0a2b2f1f9ae55d0f030a85b789c8b0c5faea8cc03ddb1a661e37b619de9c4803de0e155fed7d3dcf8def33bb62e83c75d4f10d515944db0dbb9443cf8db256baa2d034c8f3c65779285f85ce626440f8b81a4683e19e171226059643e6089c73c940dc4d557d28fe171576eb99bceb6d803c2a8dc3c5d56164043a7eccdb9e63c0d45e4e618b1bab5696680bd6ec03ac2639e8214b9a477dd6ecd7df93b31ed1c3f91b2cba524ea8d2f86d62b112878386f3850c7048189062d8b8ca52f7fc5a3cfdd64b8da8e933cd4ada304b29469a5086d651731c5cb9fdbd1dd5776ebe6344926473aa54683516111eee0b114259454753a263e67f1d1b027a32454bad15640469d96bbbf32070fef4d403d6446f6f9035cf21de4d663bfe8d488ccd407614970cb5509d4a16c9e82791386b33c74f81cff6fee56a91b5609b4b4737f2c60ca76cbe3beba1a3da261ce7d0b08ac4f47a980013d09db962105256f5ea6912a8765505729c8cdab01c3a874049f02bb11c6dd1832bceedb96701f5ec040a368d8d26f41aa459f6af0e6afecf91a162f15e29c6f5cbca61e442de1cab57cd39f09cbea732b73d51e6a62d25bfa41f92adeab3aca99b35d3ea65711c2bba9e62a67872bd415a96c11e2366b9f249883561655ebe77354428848a3346fb32df5b0277a4bc2834565b12aa752b7350201e2410d41a27edb69b905343266eb4fe588de82a67a629901b7befecdb6d62ba86babfeb5aa98fb10c5dbafba0ae41259d0b29cb9ae22313b26b3ccd9f0baafb33ac2105473d3b2bacc6cd467789240c18de1502203ee55ebd8da9ea0f478a28a8702c20c63da79296ebcd819e013d8080aad20446386bb673217de5cec3653f9e7e883e12284e1d8e1fd238967dd6e7f8f6e77b6de6f8f99d7961330e1c6721949150c821103e56534efcb2c81d1c9352889be473adc0be3d3d56e6ae8855b8f47dc9f498132b8b66f5db4617efef50758ac8289f7b93eaffe64f13bf128bde521ba0067470faed5f6c4c7a2c6ba8640e825a55dd68fcebf2fde0eedd89bb27aff5a77cfe15d57c04dbc5919a51b4f17276127eac04d3c1f4bdae7753cedfc3b66bd345a17ddce7afe38188cc6b7b7b7e3fbc160f3389fc48b6efbff65d5fde0073ff8818cff01007fd85457cad4050000000049454e44ae426082" + ] + ] + }, + "subscription": 36 + } +} diff --git a/packages/types-support/src/json/json.d.ts b/packages/types-support/src/json/json.d.ts new file mode 100644 index 0000000..5e5959c --- /dev/null +++ b/packages/types-support/src/json/json.d.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Be able to import json in TS +// https://stackoverflow.com/questions/49996456/importing-json-file-in-typescript +declare module '*.json' { + // eslint-disable-next-line @typescript-eslint/no-explicit-any + const value: any; + + export default value; +} diff --git a/packages/types-support/src/metadata/README.md b/packages/types-support/src/metadata/README.md new file mode 100644 index 0000000..1c3e42d --- /dev/null +++ b/packages/types-support/src/metadata/README.md @@ -0,0 +1,94 @@ +## Extraction (Current) + +For Bizinikiwi - + +Clone the [pezkuwi-sdk](https://github.com/pezkuwichain/pezkuwi-sdk) repository and from the ROOT run: + +`cargo build --release && ./target/release/bizinikiwi-node --dev` + +`--dev` sets the flag `--tmp` automatically so there is no need for purging the dev db. + +For Pezkuwi & Zagros - + +Clone the [pezkuwi-fellows/runtimes](https://github.com/pezkuwi-fellows/runtimes/tree/main) repository and from the ROOT run: + +```bash +$ unset SKIP_WASM_BUILD +$ cargo build --release -p chain-spec-generator --features fast-runtime +$ ./target/release/chain-spec-generator pezkuwi-dev > pezkuwiDevChainSpec.json +``` + +- For zagros just change the `pezkuwiDevChainSpec.json` to `zagrosDevChainSpec.json`. +- When you have the `pezkuwi-sdk` cloned, make sure to copy the chainspec from the `runtimes` repository to `pezkuwi-sdk` repository. + +Clone the [pezkuwi-sdk](https://github.com/pezkuwichain/pezkuwi-sdk) repository, checkout the most recent releases tag and from the ROOT run: + +```bash +$ cargo build --release --bin pezkuwi-prepare-worker --features fast-runtime +$ cargo build --release --bin pezkuwi-execute-worker --features fast-runtime +$ cargo build --release --bin pezkuwi --features fast-runtime +$ cp ../runtimes/pezkuwiDevChainSpec.json . +$ ./target/release/pezkuwi --chain pezkuwiDevChainSpec.json +``` + +To retrieve the metadata - + +`curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9944` + +- Add it to the relevant folders e.g. `v14/{zagros, pezkuwi, bizinikiwi}-hex.json` + +To retrieve the rpc methods - + +`curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "rpc_methods", "params":[]}' http://localhost:9944` + +- Add it to the relevant folders e.g. `v14/{zagros, pezkuwi, bizinikiwi}-rpc.ts` + +To retrieve the runtime versions - + +`curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getRuntimeVersion", "params":[]}' http://localhost:9944` + +- Add it to the relevant folders e.g. `v14/{zagros, pezkuwi, bizinikiwi}-ver.ts` + +## NOTE: + +1. This all works for manual updating, but for an easier process run from root for each respective chain: `node ./scripts/metadata-get.mjs`. + +2. If the chain is already live, running it locally is unnecessary — update the metadata & types using `node ./scripts/metadata-get.mjs --url `. + +3. Run `yarn test:one packages/types/src/metadata/v14` for Metadata checks + +## Caveat + +Occasionally, running the tests may result in a failure due to outdated metadata. The error message might look like this: + +```bash + /api/packages/types/src/metadata/v14/Metadata.spec.ts + + undefined / undefined +``` + +### How to Fix + +1. Navigate to the file mentioned in the error. +2. Paste the line `writeJson(json, version, type, 'json');` into the `try` block. +3. Rerun the tests — they should pass now. +4. **Important:** After verifying that the tests pass, revert your changes and run the tests again to ensure everything still works as expected. + + +## extraction (Legacy) + +For Bizinikiwi & Pezkuwi (dev chains) - + +`cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev` + +For Zagros - + +`cargo run --release -- purge-chain -y --chain zagros-dev && cargo run --release -- --chain zagros-dev` + +To retrieve the metadata - + +`curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9933` + +- Add it to the relevant folders e.g. `v14/{zagros, pezkuwi, bizinikiwi}-hex.json` +- Run `yarn build:interfaces` to re-generate all TS +- Run `yarn test:one packages/types/src/metadata/v14` for Metadata checks diff --git a/packages/types-support/src/metadata/static-bizinikiwi-contracts-node.ts b/packages/types-support/src/metadata/static-bizinikiwi-contracts-node.ts new file mode 100644 index 0000000..c20a653 --- /dev/null +++ b/packages/types-support/src/metadata/static-bizinikiwi-contracts-node.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import metadata from './v14/bizinikiwi-contracts-node-hex.js'; +import rpc from './v14/bizinikiwi-contracts-node-rpc.js'; +import version from './v14/bizinikiwi-contracts-node-ver.js'; + +export { rpc, version }; + +export default metadata; diff --git a/packages/types-support/src/metadata/static-bizinikiwi.ts b/packages/types-support/src/metadata/static-bizinikiwi.ts new file mode 100644 index 0000000..b1ac334 --- /dev/null +++ b/packages/types-support/src/metadata/static-bizinikiwi.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import metadata from './v14/bizinikiwi-hex.js'; +import rpc from './v14/bizinikiwi-rpc.js'; +import version from './v14/bizinikiwi-ver.js'; + +export { rpc, version }; + +export default metadata; diff --git a/packages/types-support/src/metadata/static-dicle.ts b/packages/types-support/src/metadata/static-dicle.ts new file mode 100644 index 0000000..8602e7a --- /dev/null +++ b/packages/types-support/src/metadata/static-dicle.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import metadata from './v14/dicle-hex.js'; +import rpc from './v14/dicle-rpc.js'; +import version from './v14/dicle-ver.js'; + +export { rpc, version }; + +export default metadata; diff --git a/packages/types-support/src/metadata/static-pezkuwi.ts b/packages/types-support/src/metadata/static-pezkuwi.ts new file mode 100644 index 0000000..2d904dd --- /dev/null +++ b/packages/types-support/src/metadata/static-pezkuwi.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import metadata from './v14/pezkuwi-hex.js'; +import rpc from './v14/pezkuwi-rpc.js'; +import version from './v14/pezkuwi-ver.js'; + +export { rpc, version }; + +export default metadata; diff --git a/packages/types-support/src/metadata/v10/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v10/bizinikiwi-hex.ts new file mode 100644 index 0000000..f5d4e30 --- /dev/null +++ b/packages/types-support/src/metadata/v10/bizinikiwi-hex.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export default '0x6d6574610a6c1853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101011c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e01242866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f64650410636f64651c5665633c75383e04682053657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e041d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e04a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e00143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c5370656356657273696f6e4e6f74416c6c6f776564546f4465637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c496d706c56657273696f6e4e6f74416c6c6f776564546f44656372656173650849012054686520696d706c656d656e746174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e7c537065634f72496d706c56657273696f6e4e656564546f496e637265617365083501205468652073706563696669636174696f6e206f722074686520696d706c656d656e746174696f6e2076657273696f6e206e65656420746f20696e637265617365206265747765656e20746865942063757272656e742072756e74696d6520616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e1c5574696c697479011c5574696c69747904244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0114146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e00ec20546869732077696c6c206578656375746520756e74696c20746865206669727374206f6e65206661696c7320616e64207468656e2073746f702e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e002c2023203c7765696768743ea4202d205468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602e34202d204f6e65206576656e742e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e1861735f7375620814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1ce02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e70202d2054686520776569676874206f6620746865206063616c6c602e302023203c2f7765696768743e2061735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3ea4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e40617070726f76655f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d80590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e005101205061796d656e743a20604d756c74697369674465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573610120607468726573686f6c64602074696d657320604d756c74697369674465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66f4202020604d756c74697369674465706f73697442617365202b207468726573686f6c64202a204d756c74697369674465706f736974466163746f72602e302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d5859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e302023203c2f7765696768743e0118404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734c2077656c6c20617320746865206572726f722e384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e2c4e65774d756c746973696708244163636f756e744964244163636f756e7449640849012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e20466972737420706172616d20697320746865206163636f756e74207468617420697320617070726f76696e672c80207365636f6e6420697320746865206d756c7469736967206163636f756e742e404d756c7469736967417070726f76616c0c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640859012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e404d756c7469736967457865637574656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e744964384469737061746368526573756c74082d012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e20466972737420706172616d20697320746865206163636f756e742074686174206973a820617070726f76696e672c20746869726420697320746865206d756c7469736967206163636f756e742e444d756c746973696743616e63656c6c65640c244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449640831012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e20466972737420706172616d20697320746865206163636f756e742074686174206973ac2063616e63656c6c696e672c20746869726420697320746865206d756c7469736967206163636f756e742e00001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e00750120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e00650120606672616d655f73797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665720114284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7408244163636f756e7449641c42616c616e6365045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f74202877686f2c20667265652c207265736572766564292e1c4465706f73697408244163636f756e7449641c42616c616e636504dc20536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e001c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2903040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e03040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e18e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e002c2023203c7765696768743ef0202d2054696d6520636f6d706c65786974793a204f2831292e20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e28344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002051c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002051c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e0c30496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e2444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e6465789c5265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e00040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e34446973706174636851756575650100bc5665633c28543a3a426c6f636b4e756d6265722c20543a3a486173682c205265666572656e64756d496e646578293e0400044101205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e2053746f726564206f72646572656420627920626c6f636b206e756d6265722e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f4207468652070726f706f73616c3b206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e64657804a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736814f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e582056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f74206578697374204e6f7450726f78790430204e6f7420612070726f787920426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c20747769636530416c726561647950726f7879044020416c726561647920612070726f78792857726f6e6750726f787904302057726f6e672070726f7879304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e74144561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e671c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642148546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e0018244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642124456c656374696f6e73014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f7220612072756e6e65722063616e3101206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d6265721080130300003830556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e34496e76616c69644f726967696e04c8204f726967696e206973206e6f7420612063616e6469646174652c206d656d626572206f7220612072756e6e65722075702e244e6f744d656d6265720438204e6f742061206d656d6265722e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e00102c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e20547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001051c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01203470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e9c202d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e64202d204f6e652062616c616e6365206f7065726174696f6e2e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e24202d20604f2854296064202d204f6e652062616c616e6365206f7065726174696f6e2ec4202d2054776f2073746f726167652072656d6f76616c7320286f6e6520726561642c20636f64656320604f28542960292e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e4cf4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e4101202d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e2060546020697345012020206e61747572616c6c79206361707065642061732061206d656d62657273686970207365742c20605260206973206c696d69746564207468726f756768207472616e73616374696f6e2d73697a652e0d01202d2054776f2073746f7261676520696e73657274696f6e732028636f6465637320604f285229602c20604f28542960292c206f6e65207265616420604f283129602e34202d204f6e65206576656e742e302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e4cb4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e24202d20604f285429600101202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28542960292c206f6e652073746f72616765207265616420604f283129602e4c202d20557020746f206f6e65206576656e742e302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368386020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e24202d20604f28542960e4202d204f6e652073746f726167652072657472696576616c2028636f64656320604f285429602920616e642074776f2072656d6f76616c732e88202d20557020746f2074687265652062616c616e6365206f7065726174696f6e732e302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504b420412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e184e657754697004104861736804982041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e6704104861736804dc2041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504882041207469702073756767657374696f6e20686173206265656e20636c6f7365642e3054697052657472616374656404104861736804942041207469702073756767657374696f6e20686173206265656e207265747261637465642e203050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e24436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e1858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e7420496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000204964656e7469747901105375646f10284964656e746974794f6600010130543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e00040004210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e1c53757065724f6600010130543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010130543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e012c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605265676973747261724f726967696e60206f722060526f6f74602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743ee4202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f482d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e0501202d20604f2858202b2052296020776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e646564292e88202d204174206d6f73742074776f2062616c616e6365206f7065726174696f6e732eac202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e40902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c202d206073756273603a20546865206964656e746974792773207375622d6163636f756e74732e002c2023203c7765696768743eec202d20604f285329602077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f73742074776f2062616c616e6365206f7065726174696f6e732e4101202d204174206d6f7374204f2832202a2053202b2031292073746f72616765206d75746174696f6e733b20636f64656320636f6d706c657869747920604f2831202a2053202b2053202a20312960293b582020206f6e652073746f726167652d6578697374732e302023203c2f7765696768743e38636c6561725f6964656e74697479003c390120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e7420616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65a42053656c663a3a72656769737472617273287265675f696e646578292e75776e72617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e301d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496430c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647330ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602e302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e011c2c4964656e7469747953657404244163636f756e74496404f02041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e64657804a02041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e646578048c2041206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e64657804982041206a756467656d656e742077617320676976656e2062792061207265676973747261722e3852656769737472617241646465640438526567697374726172496e646578045c204120726567697374726172207761732061646465642e002c48546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e1c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010130543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010130543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010130543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010130543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010130543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e756c6c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e013c1c466f756e64656404244163636f756e74496404b82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665723c20697320746865207365636f6e642e14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64f0207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404244163636f756e74496404090120412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404b020412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e74496404f820412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c207468657420626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c048c20412073757370656e646564206d656d62657220686173206265656e206a75646765644843616e64696461746553757370656e64656404244163636f756e744964047c20412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404702041206d656d62657220686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404742041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c0204120766f746520686173206265656e20706c61636564202863616e6469646174652c20766f7465722c20766f74652930446566656e646572566f746508244163636f756e74496410626f6f6c04f0204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d6265722028766f7465722c20766f746529344e65774d61784d656d62657273040c75333204902041206e6577206d6178206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964045820536f636965747920697320756e666f756e6465642e184043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010130543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e245265636f766572656400010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000c98205468652066696e616c206c697374206f66207265636f7665726564206163636f756e74732e00f8204d61702066726f6d20746865207265636f7665726564206163636f756e7420746f2074686520757365722077686f2063616e206163636573732069742e01203061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e70202d2054686520776569676874206f6620746865206063616c6c602e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f766572790054b82052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404c82041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e74445265636f76657279496e6974696174656408244163636f756e744964244163636f756e7449640405012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206163636f756e745f31206279206163636f756e745f323c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e7449640441012041207265636f766572792070726f6365737320666f72206163636f756e745f31206279206163636f756e745f3220686173206265656e20766f756368656420666f72206279206163636f756e745f33385265636f76657279436c6f73656408244163636f756e744964244163636f756e74496404f82041207265636f766572792070726f6365737320666f72206163636f756e745f31206279206163636f756e745f3220686173206265656e20636c6f736564404163636f756e745265636f766572656408244163636f756e744964244163636f756e74496404dc204163636f756e745f3120686173206265656e207375636365737366756c6c79207265636f7665726564206279206163636f756e745f323c5265636f7665727952656d6f76656404244163636f756e74496404cc2041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e740000'; diff --git a/packages/types-support/src/metadata/v10/bizinikiwi-json.json b/packages/types-support/src/metadata/v10/bizinikiwi-json.json new file mode 100644 index 0000000..bd507b4 --- /dev/null +++ b/packages/types-support/src/metadata/v10/bizinikiwi-json.json @@ -0,0 +1,7821 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v10": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "AccountNonce", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Index", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " Extrinsics nonce for accounts." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "AllExtrinsicsWeight", + "modifier": "Optional", + "type": { + "plain": "Weight" + }, + "fallback": "0x00", + "docs": [ + " Total weight for all extrinsics put together, for the current block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "ExtrinsicsRoot", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Extrinsics root of the current block, also part of the block header." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [], + "docs": [ + " A big dispatch that will disallow any other transaction to be included." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark." + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code without doing any checks of the given `code`." + ] + }, + { + "name": "set_changes_trie_config", + "args": [ + { + "name": "changes_trie_config", + "type": "Option" + } + ], + "docs": [ + " Set the new changes trie configuration." + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage." + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix." + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidSpecName", + "docs": [ + " The name of specification does not match between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecVersionNotAllowedToDecrease", + "docs": [ + " The specification version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "ImplVersionNotAllowedToDecrease", + "docs": [ + " The implementation version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecOrImplVersionNeedToIncrease", + "docs": [ + " The specification or the implementation version need to increase between the", + " current runtime and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "docs": [ + " Failed to extract the runtime version from the new runtime.", + "", + " Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + } + ] + }, + { + "name": "Utility", + "storage": { + "prefix": "Utility", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "[u8;32]", + "value": "Multisig", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls.", + "", + " This will execute until the first one fails and then stop.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin.", + "", + " # ", + " - The sum of the weights of the `calls`.", + " - One event.", + " # ", + "", + " This will return `Ok` in all circumstances. To determine the success of the batch, an", + " event is deposited. If a call failed and the batch was interrupted, then the", + " `BatchInterrupted` event is deposited, along with the number of successful calls made", + " and the error of the failed call. If all were successful, then the `BatchCompleted`", + " event is deposited." + ] + }, + { + "name": "as_sub", + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through an indexed pseudonym of the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - The weight of the `call`.", + " # " + ] + }, + { + "name": "as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " If there are enough, then dispatch the call.", + "", + " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call`: The call to be executed.", + "", + " NOTE: Unless this is the final approval, you will generally want to use", + " `approve_as_multi` instead, since it only requires a hash of the call.", + "", + " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + " on success, result is `Ok` and the result from the interior call, if it was executed,", + " may be found in the deposited `MultisigExecuted` event.", + "", + " # ", + " - `O(S + Z + Call)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - The weight of the `call`.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", + " deposit taken for its lifetime of", + " `MultisigDepositBase + threshold * MultisigDepositFactor`.", + " # " + ] + }, + { + "name": "approve_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " Payment: `MultisigDepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `MultisigDepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call_hash`: The hash of the call to be executed.", + "", + " NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", + " deposit taken for its lifetime of", + " `MultisigDepositBase + threshold * MultisigDepositFactor`.", + " # " + ] + }, + { + "name": "cancel_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "timepoint", + "type": "Timepoint" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + " for this operation will be unreserved on success.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `timepoint`: The timepoint (block number and transaction index) of the first approval", + " transaction for this dispatch.", + " - `call_hash`: The hash of the call to be executed.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - One event.", + " - I/O: 1 read `O(S)`, one remove.", + " - Storage: removes one item.", + " # " + ] + } + ], + "events": [ + { + "name": "BatchInterrupted", + "args": [ + "u32", + "DispatchError" + ], + "docs": [ + " Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + " well as the error." + ] + }, + { + "name": "BatchCompleted", + "args": [], + "docs": [ + " Batch of dispatches completed fully with no error." + ] + }, + { + "name": "NewMultisig", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A new multisig operation has begun. First param is the account that is approving,", + " second is the multisig account." + ] + }, + { + "name": "MultisigApproval", + "args": [ + "AccountId", + "Timepoint", + "AccountId" + ], + "docs": [ + " A multisig operation has been approved by someone. First param is the account that is", + " approving, third is the multisig account." + ] + }, + { + "name": "MultisigExecuted", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "DispatchResult" + ], + "docs": [ + " A multisig operation has been executed. First param is the account that is", + " approving, third is the multisig account." + ] + }, + { + "name": "MultisigCancelled", + "args": [ + "AccountId", + "Timepoint", + "AccountId" + ], + "docs": [ + " A multisig operation has been cancelled. First param is the account that is", + " cancelling, third is the multisig account." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "[u8;32]" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "[u8;32]" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "u32", + "value": "Vec<[u8;32]>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeVrf" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0xc800000000000000", + "docs": [ + " The number of **slots** that an epoch takes. We couple sessions to", + " epochs, i.e. we start a new session once the new epoch begins." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`." + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected* period", + " that the block production apparatus provides. Your chosen consensus system will generally", + " work with this to determine a sensible block time. e.g. For Aura, it will be double this", + " period on default settings." + ] + } + ], + "errors": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [], + "errors": [ + { + "name": "InvalidUncleParent", + "docs": [ + " The uncle parent not in the chain." + ] + }, + { + "name": "UnclesAlreadySet", + "docs": [ + " Uncles already set in the block." + ] + }, + { + "name": "TooManyUncles", + "docs": [ + " Too many uncles." + ] + }, + { + "name": "GenesisUncle", + "docs": [ + " The uncle is genesis." + ] + }, + { + "name": "TooHighUncle", + "docs": [ + " The uncle is too high in chain." + ] + }, + { + "name": "UncleAlreadyIncluded", + "docs": [ + " The uncle is already included." + ] + }, + { + "name": "OldUncle", + "docs": [ + " The uncle isn't recent enough to be included." + ] + } + ] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "NextEnumSet", + "modifier": "Default", + "type": { + "plain": "AccountIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free enumeration set." + ] + }, + { + "name": "EnumSet", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The enumeration sets." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "NewAccountIndex", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A new account index was assigned.", + "", + " This event is not triggered when an existing index is reassigned", + " to another `AccountId`." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "VestingSchedule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "FreeBalance", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Balance", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The 'free' balance of a given account.", + "", + " This is the only balance that matters in terms of most operations on tokens. It", + " alone is used to determine the balance when in the contract execution environment. When this", + " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", + " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", + " is invoked, giving a chance to external modules to clean up data associated with", + " the deleted account.", + "", + " `frame_system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", + " collapsed to zero if it ever becomes less than `ExistentialDeposit`." + ] + }, + { + "name": "ReservedBalance", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Balance", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of the balance of a given account that is externally reserved; this can still get", + " slashed, but gets slashed last of all.", + "", + " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", + " that are still 'owned' by the account holder, but which are suspendable.", + "", + " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", + " is deleted: specifically, `ReservedBalance`.", + "", + " `frame_system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", + " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for", + " input config types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger", + " `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", + " check that the transfer will not kill the origin account.", + "", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`frame_system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified." + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Module.html#method.transfer" + ] + } + ], + "events": [ + { + "name": "NewAccount", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A new account was created." + ] + }, + { + "name": "ReapedAccount", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was reaped." + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " Transfer succeeded (from, to, value, fees)." + ] + }, + { + "name": "BalanceSet", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " A balance was set by root (who, free, reserved)." + ] + }, + { + "name": "Deposit", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some amount was deposited (e.g. for transaction fees)." + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "TransferFee", + "type": "Balance", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to make a transfer." + ] + }, + { + "name": "CreationFee", + "type": "Balance", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to create an account." + ] + } + ], + "errors": [ + { + "name": "VestingBalance", + "docs": [ + " Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "docs": [ + " Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "Overflow", + "docs": [ + " Got an overflow after adding" + ] + }, + { + "name": "InsufficientBalance", + "docs": [ + " Balance too low to send value" + ] + }, + { + "name": "ExistentialDeposit", + "docs": [ + " Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "docs": [ + " Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "docs": [ + " Beneficiary account must pre-exist" + ] + } + ] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x0000000000000000", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionBaseFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the base." + ] + }, + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + } + ], + "errors": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x04000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": true + } + }, + "fallback": "0x00", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Nominations", + "linked": true + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate.", + "", + " NOTE: is private so that we can ensure upgraded before all typical accesses.", + " Direct storage APIs can still bypass this protection." + ] + }, + { + "name": "Stakers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Exposure", + "linked": false + } + }, + "fallback": "0x000000", + "docs": [ + " Nominators for a particular account that is in action right now. You can't iterate", + " through validators here, but you can find them in the Session module.", + "", + " This is keyed by the stash account." + ] + }, + { + "name": "CurrentElected", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The currently elected validator set keyed by stash account ID." + ] + }, + { + "name": "CurrentEra", + "modifier": "Default", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The current era index." + ] + }, + { + "name": "CurrentEraStart", + "modifier": "Default", + "type": { + "plain": "MomentOf" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The start of the current era." + ] + }, + { + "name": "CurrentEraStartSessionIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The session index at which the current era started." + ] + }, + { + "name": "CurrentEraPointsEarned", + "modifier": "Default", + "type": { + "plain": "EraPoints" + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the current era. Using indices of current elected set." + ] + }, + { + "name": "SlotStake", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of balance actively at stake for each validator slot, currently.", + "", + " This is used to derive rewards and punishments." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " True if the next session change will be a new era regardless of index." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era." + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox128" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox128" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The version of storage for upgrade." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless", + " the `origin` falls below _existential deposit_ and gets removed as dust.", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", + " that can be added.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " - One DB entry.", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " See also [`Call::withdraw_unbonded`].", + "", + " # ", + " - Independent of the arguments. Limited but potentially exploitable complexity.", + " - Contains a limited number of reads.", + " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", + " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", + " The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.", + " - One DB entry.", + " " + ] + }, + { + "name": "withdraw_unbonded", + "args": [], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", + " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", + " indirectly user-controlled. See [`unbond`] for more detail.", + " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets`,", + " which is capped at `MAX_NOMINATIONS`.", + " - Both the reads and writes follow a similar pattern.", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " The ideal number of validators." + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " # ", + " - No arguments.", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " # ", + " - No arguments.", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "validators", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any)." + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately." + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " # ", + " - One storage write", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash. Can be called by either the root origin or", + " the `T::SlashCancelOrigin`.", + " passing the era and indices of the slashes for that era to kill.", + "", + " # ", + " - One storage write.", + " # " + ] + }, + { + "name": "rebond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Rebond a portion of the stash scheduled to be unlocked.", + "", + " # ", + " - Time complexity: O(1). Bounded by `MAX_UNLOCKING_CHUNKS`.", + " - Storage changes: Can't increase storage, only decrease it.", + " # " + ] + } + ], + "events": [ + { + "name": "Reward", + "args": [ + "Balance", + "Balance" + ], + "docs": [ + " All validators have been rewarded by the first balance; the second is the remainder", + " from the maximum amount of reward." + ] + }, + { + "name": "Slash", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed." + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + } + ], + "errors": [ + { + "name": "NotController", + "docs": [ + " Not a controller account." + ] + }, + { + "name": "NotStash", + "docs": [ + " Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "docs": [ + " Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "docs": [ + " Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "docs": [ + " Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "docs": [ + " Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "docs": [ + " Slash record index out of bounds." + ] + }, + { + "name": "InsufficientValue", + "docs": [ + " Can not bond with value less than minimum balance." + ] + }, + { + "name": "NoMoreChunks", + "docs": [ + " Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "docs": [ + " Can not rebond without unlocking chunks." + ] + } + ] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Bytes", + "key2": "ValidatorId", + "value": "Keys", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator.", + "", + " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", + " the trie. Having all data in the same branch should prevent slowing down other queries." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Bytes", + "key2": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The second key is the `KeyTypeId` + the encoded key.", + "", + " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", + " the trie. Having all data in the same branch should prevent slowing down other queries." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `key`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - O(log n) in number of accounts.", + " - One extra DB entry.", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the session index, not the block", + " number as the type might suggest." + ] + } + ], + "constants": [ + { + "name": "DEDUP_KEY_PREFIX", + "type": "Bytes", + "value": "0x343a73657373696f6e3a6b657973", + "docs": [ + " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", + " of the trie." + ] + } + ], + "errors": [ + { + "name": "InvalidProof", + "docs": [ + " Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "docs": [ + " No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "docs": [ + " Registered duplicate key." + ] + } + ] + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "(Bytes,AccountId,BalanceOf,BlockNumber)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "PropIndex", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "DispatchQueue", + "modifier": "Default", + "type": { + "plain": "Vec<(BlockNumber,Hash,ReferendumIndex)>" + }, + "fallback": "0x00", + "docs": [ + " Queue of successful referenda to be dispatched. Stored ordered by block number." + ] + }, + { + "name": "VotersFor", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ReferendumIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Get the voters for the current proposal." + ] + }, + { + "name": "VoteOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "(ReferendumIndex,AccountId)", + "value": "Vote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Get the vote in a given referendum of a particular voter. The result is meaningful only", + " if `voters_for` includes the voter when called with the referendum (you'll get the", + " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", + " also check for simple existence with `VoteOf::exists` first." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Who is able to vote for whom. Value is the fund-holding account, key is the", + " vote-transaction-sending account." + ] + }, + { + "name": "Delegations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "(AccountId,Conviction)", + "linked": true + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Get the account (and lock periods) to which another account is delegating vote." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " # ", + " - O(1).", + " - Two DB changes, one DB entry.", + " # " + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " # ", + " - O(1).", + " - One DB entry.", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "Vote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " # ", + " - O(1).", + " - One DB change, one DB entry.", + " # " + ] + }, + { + "name": "proxy_vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "Vote" + } + ], + "docs": [ + " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", + " the proposal; otherwise it is a vote to keep the status quo.", + "", + " # ", + " - O(1).", + " - One DB change, one DB entry.", + " # " + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum." + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum." + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call." + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call." + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `EmergencyVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount." + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash." + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum." + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "which", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Cancel a proposal queued for enactment." + ] + }, + { + "name": "set_proxy", + "args": [ + { + "name": "proxy", + "type": "AccountId" + } + ], + "docs": [ + " Specify a proxy. Called by the stash.", + "", + " # ", + " - One extra DB entry.", + " # " + ] + }, + { + "name": "resign_proxy", + "args": [], + "docs": [ + " Clear the proxy. Called by the proxy.", + "", + " # ", + " - One DB clear.", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "proxy", + "type": "AccountId" + } + ], + "docs": [ + " Clear the proxy. Called by the stash.", + "", + " # ", + " - One DB clear.", + " # " + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + } + ], + "docs": [ + " Delegate vote.", + "", + " # ", + " - One extra DB entry.", + " # " + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate vote.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Veto and blacklist the proposal hash. Must be from Root origin." + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit.", + "", + " This will only work after `VotingPeriod` blocks from the time that the preimage was", + " noted, if it's the same account doing it. If it's a different account, then it'll only", + " work an additional `EnactmentPeriod` later." + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun." + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled." + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "bool" + ], + "docs": [ + " A proposal has been enacted." + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed." + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken." + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned)." + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid." + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing." + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper (last item)." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The minimum period of locking and the period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case where", + " they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "EmergencyVotingPeriod", + "type": "BlockNumber", + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for an emergency referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + } + ], + "errors": [ + { + "name": "ValueLow", + "docs": [ + " Value too low" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal does not exist" + ] + }, + { + "name": "NotProxy", + "docs": [ + " Not a proxy" + ] + }, + { + "name": "BadIndex", + "docs": [ + " Unknown index" + ] + }, + { + "name": "AlreadyCanceled", + "docs": [ + " Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "docs": [ + " Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "docs": [ + " Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "docs": [ + " Invalid hash" + ] + }, + { + "name": "NoProposal", + "docs": [ + " No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "docs": [ + " Identity may not veto a proposal twice" + ] + }, + { + "name": "AlreadyProxy", + "docs": [ + " Already a proxy" + ] + }, + { + "name": "WrongProxy", + "docs": [ + " Wrong proxy" + ] + }, + { + "name": "NotDelegated", + "docs": [ + " Not delegated" + ] + }, + { + "name": "DuplicatePreimage", + "docs": [ + " Preimage already noted" + ] + }, + { + "name": "NotImminent", + "docs": [ + " Not imminent" + ] + }, + { + "name": "Early", + "docs": [ + " Too early" + ] + }, + { + "name": "Imminent", + "docs": [ + " Imminent" + ] + }, + { + "name": "PreimageMissing", + "docs": [ + " Preimage not found" + ] + }, + { + "name": "ReferendumInvalid", + "docs": [ + " Vote given for invalid referendum" + ] + }, + { + "name": "PreimageInvalid", + "docs": [ + " Invalid preimage" + ] + }, + { + "name": "NoneWaiting", + "docs": [ + " No proposals waiting" + ] + } + ] + }, + { + "name": "Council", + "storage": { + "prefix": "Instance1Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + } + ], + "docs": [ + " Set the collective's membership manually to `new_members`. Be nice to the chain and", + " provide it pre-sorted.", + "", + " Requires root origin." + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective." + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " # ", + " - Bounded storage reads and writes.", + " - Argument `threshold` has bearing on weight.", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " # ", + " - Bounded storage read and writes.", + " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`)." + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A motion was executed; `bool` is true if returned without error." + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A single member did some action; `bool` is true if returned without error." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + } + ] + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "Instance2Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + } + ], + "docs": [ + " Set the collective's membership manually to `new_members`. Be nice to the chain and", + " provide it pre-sorted.", + "", + " Requires root origin." + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective." + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " # ", + " - Bounded storage reads and writes.", + " - Argument `threshold` has bearing on weight.", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " # ", + " - Bounded storage read and writes.", + " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`)." + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A motion was executed; `bool` is true if returned without error." + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A single member did some action; `bool` is true if returned without error." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + } + ] + }, + { + "name": "Elections", + "storage": { + "prefix": "PhragmenElection", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The current elected membership. Sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The current runners_up. Sorted based on low to high merit (worse to best runner)." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "VotesOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Vec", + "linked": true + } + }, + "fallback": "0x00", + "docs": [ + " Votes of a particular voter, with the round index of the votes." + ] + }, + { + "name": "StakeOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Locked stake of a voter." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. Sorted based on account-id. A current member or a runner can", + " never enter this vector and is always implicitly assumed to be a candidate." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of candidates.", + "", + " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.", + " It is the responsibility of the caller to not place all of their balance into the lock", + " and keep some for further transactions.", + "", + " # ", + " #### State", + " Reads: O(1)", + " Writes: O(V) given `V` votes. V is bounded by 16.", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter. This removes the lock and returns the bond.", + "", + " # ", + " #### State", + " Reads: O(1)", + " Writes: O(1)", + " # " + ] + }, + { + "name": "report_defunct_voter", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Report `target` for being an defunct voter. In case of a valid report, the reporter is", + " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", + " their bond is slashed.", + "", + " A defunct voter is defined to be:", + " - a voter whose current submitted votes are all invalid. i.e. all of them are no", + " longer a candidate nor an active member.", + "", + " # ", + " #### State", + " Reads: O(NLogM) given M current candidates and N votes for `target`.", + " Writes: O(1)", + " # " + ] + }, + { + "name": "submit_candidacy", + "args": [], + "docs": [ + " Submit oneself for candidacy.", + "", + " A candidate will either:", + " - Lose at the end of the term and forfeit their deposit.", + " - Win and become a member. Members will eventually get their stash back.", + " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", + " removed.", + "", + " # ", + " #### State", + " Reads: O(LogN) Given N candidates.", + " Writes: O(1)", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + " - `origin` is a candidate and not elected in any set. In this case, the bond is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner up. In this case, the bond is unreserved, returned and", + " origin is removed as a runner.", + " - `origin` is a current member. In this case, the bond is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_voter`], if replacement runners exists, they are immediately used." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen round is started.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " #### State", + " Reads: O(do_phragmen)", + " Writes: O(do_phragmen)", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with new members. This indicates that enough candidates existed, not that", + " enough have has been elected. The inner value must be examined for this purpose." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A member has been removed. This should always be followed by either `NewTerm` ot", + " `EmptyTerm`." + ] + }, + { + "name": "MemberRenounced", + "args": [ + "AccountId" + ], + "docs": [ + " A member has renounced their candidacy." + ] + }, + { + "name": "VoterReported", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A voter (first element) was reported (byt the second element) with the the report being", + " successful or not (third element)." + ] + } + ], + "constants": [ + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [] + }, + { + "name": "VotingBond", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x0d000000", + "docs": [] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x07000000", + "docs": [] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [] + } + ], + "errors": [ + { + "name": "UnableToVote", + "docs": [ + " Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "docs": [ + " Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "docs": [ + " Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "docs": [ + " Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "docs": [ + " Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "docs": [ + " Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "docs": [ + " Must be a voter." + ] + }, + { + "name": "ReportSelf", + "docs": [ + " Cannot report self." + ] + }, + { + "name": "DuplicatedCandidate", + "docs": [ + " Duplicated candidate submission." + ] + }, + { + "name": "MemberSubmit", + "docs": [ + " Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerSubmit", + "docs": [ + " Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "docs": [ + " Candidate does not have enough funds." + ] + }, + { + "name": "InvalidOrigin", + "docs": [ + " Origin is not a candidate, member or a runner up." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + } + ] + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "Instance1Membership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `AddOrigin` or root." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `RemoveOrigin` or root." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `SwapOrigin` or root." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `ResetOrigin` or root." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "FinalityTracker", + "storage": null, + "calls": [ + { + "name": "final_hint", + "args": [ + { + "name": "hint", + "type": "Compact" + } + ], + "docs": [ + " Hint that the author of this block thinks the best finalized", + " block is the given number." + ] + } + ], + "events": null, + "constants": [ + { + "name": "WindowSize", + "type": "BlockNumber", + "value": "0x65000000", + "docs": [ + " The number of recent samples to keep from this chain. Default is 101." + ] + }, + { + "name": "ReportLatency", + "type": "BlockNumber", + "value": "0xe8030000", + "docs": [ + " The delay after which point things become suspicious. Default is 1000." + ] + } + ], + "errors": [ + { + "name": "AlreadyUpdated", + "docs": [ + " Final hint must be updated only once in the block" + ] + }, + { + "name": "BadHint", + "docs": [ + " Finalized height above block number" + ] + } + ] + }, + { + "name": "Grandpa", + "storage": { + "prefix": "GrandpaFinality", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "AuthorityList" + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED", + "", + " This used to store the current authority set, which has been migrated to the well-known", + " GRANDPA_AUTHORITES_KEY unhashed key." + ] + }, + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible." + ] + } + ] + }, + "calls": [ + { + "name": "report_misbehavior", + "args": [ + { + "name": "_report", + "type": "Bytes" + } + ], + "docs": [ + " Report some misbehavior." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied." + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "PauseFailed", + "docs": [ + " Attempt to signal GRANDPA pause when the authority set isn't live", + " (either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "docs": [ + " Attempt to signal GRANDPA resume when the authority set isn't paused", + " (either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "docs": [ + " Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "docs": [ + " Cannot signal forced change so soon after last." + ] + } + ] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "OpenTip", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Tips that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change, one extra DB entry.", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB clear.", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + }, + { + "name": "report_awesome", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `TipReportDepositPerByte` for each byte in `reason`.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - `O(R)` where `R` length of `reason`.", + " - One balance operation.", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "retract_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + " If successful, the original deposit will be unreserved.", + "", + " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + " must have been reported by the signing account through `report_awesome` (and not", + " through `tip_new`).", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " Emits `TipRetracted` if successful.", + "", + " # ", + " - `O(T)`", + " - One balance operation.", + " - Two storage removals (one read, codec `O(T)`).", + " - One event.", + " # " + ] + }, + { + "name": "tip_new", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + }, + { + "name": "tip_value", + "type": "BalanceOf" + } + ], + "docs": [ + " Give a tip for something new; no finder's fee will be taken.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - `O(R + T)` where `R` length of `reason`, `T` is the number of tippers. `T` is", + " naturally capped as a membership set, `R` is limited through transaction-size.", + " - Two storage insertions (codecs `O(R)`, `O(T)`), one read `O(1)`.", + " - One event.", + " # " + ] + }, + { + "name": "tip", + "args": [ + { + "name": "hash", + "type": "Hash" + }, + { + "name": "tip_value", + "type": "BalanceOf" + } + ], + "docs": [ + " Declare a tip value for an already-open tip.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + " has started.", + "", + " # ", + " - `O(T)`", + " - One storage mutation (codec `O(T)`), one storage read `O(1)`.", + " - Up to one event.", + " # " + ] + }, + { + "name": "close_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Close and payout a tip.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " The tip identified by `hash` must have finished its countdown period.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " # ", + " - `O(T)`", + " - One storage retrieval (codec `O(T)`) and two removals.", + " - Up to three balance operations.", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal." + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated." + ] + }, + { + "name": "Rejected", + "args": [ + "ProposalIndex", + "Balance" + ], + "docs": [ + " A proposal was rejected; funds were slashed." + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited." + ] + }, + { + "name": "NewTip", + "args": [ + "Hash" + ], + "docs": [ + " A new tip suggestion has been opened." + ] + }, + { + "name": "TipClosing", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has reached threshold and is closing." + ] + }, + { + "name": "TipClosed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been closed." + ] + }, + { + "name": "TipRetracted", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has been retracted." + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "TipCountdown", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": "Percent", + "value": "0x14", + "docs": [ + " The amount of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a tip report." + ] + }, + { + "name": "TipReportDepositPerByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidProposalIndex", + "docs": [ + " No proposal at that index." + ] + }, + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "docs": [ + " The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "docs": [ + " The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "docs": [ + " The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "docs": [ + " The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "docs": [ + " The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contract", + "items": [ + { + "name": "GasSpent", + "modifier": "Default", + "type": { + "plain": "Gas" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Gas spent so far in this block." + ] + }, + { + "name": "CurrentSchedule", + "modifier": "Default", + "type": { + "plain": "Schedule" + }, + "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000", + "docs": [ + " Current cost schedule for contracts." + ] + }, + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "CodeHash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "CodeHash", + "value": "PrefabWasmModule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "AccountCounter", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The subtrie counter." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "ContractInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account." + ] + }, + { + "name": "GasPrice", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x01000000000000000000000000000000", + "docs": [ + " The price of one unit of gas." + ] + } + ] + }, + "calls": [ + { + "name": "update_schedule", + "args": [ + { + "name": "schedule", + "type": "Schedule" + } + ], + "docs": [ + " Updates the schedule for metering contracts.", + "", + " The schedule must have a greater version than the stored schedule." + ] + }, + { + "name": "put_code", + "args": [ + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", + " You can instantiate contracts only with stored code." + ] + }, + { + "name": "call", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Makes a call to an account, optionally transferring some balance.", + "", + " * If the account is a smart-contract account, the associated code will be", + " executed and any value will be transferred.", + " * If the account is a regular account, any value will be transferred.", + " * If no account exists and the call value is not less than `existential_deposit`,", + " a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code_hash", + "type": "CodeHash" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", + "", + " Instantiation is executed as follows:", + "", + " - The destination address is computed based on the sender and hash of the code.", + " - The smart-contract account is created at the computed address.", + " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", + " after the execution is saved as the `code` of the account. That code will be invoked", + " upon any call received by this account.", + " - The contract is initialized." + ] + }, + { + "name": "claim_surcharge", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "aux_sender", + "type": "Option" + } + ], + "docs": [ + " Allows block producers to claim a small reward for evicting a contract. If a block producer", + " fails to do so, a regular users will be allowed to claim the reward.", + "", + " If contract is not evicted as a result of this call, no actions are taken and", + " the sender is not eligible for the reward." + ] + } + ], + "events": [ + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`." + ] + }, + { + "name": "Instantiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract deployed by address at the specified address." + ] + }, + { + "name": "CodeStored", + "args": [ + "Hash" + ], + "docs": [ + " Code with the specified hash has been stored." + ] + }, + { + "name": "ScheduleUpdated", + "args": [ + "u32" + ], + "docs": [ + " Triggered when the current schedule is updated." + ] + }, + { + "name": "Dispatched", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A call was dispatched from the given account. The bool signals whether it was", + " successful execution or not." + ] + }, + { + "name": "Contract", + "args": [ + "AccountId", + "Bytes" + ], + "docs": [ + " An event from contract of account." + ] + } + ], + "constants": [ + { + "name": "SignedClaimHandicap", + "type": "BlockNumber", + "value": "0x02000000", + "docs": [ + " Number of block delay an extrinsic claim surcharge has.", + "", + " When claim surcharge is called by an extrinsic the rent is checked", + " for current_block - delay" + ] + }, + { + "name": "TombstoneDeposit", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to generate a tombstone." + ] + }, + { + "name": "StorageSizeOffset", + "type": "u32", + "value": "0x08000000", + "docs": [ + " Size of a contract at the time of instantiaion. This is a simple way to ensure that", + " empty contracts eventually gets deleted." + ] + }, + { + "name": "RentByteFee", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Price of a byte of storage per one block interval. Should be greater than 0." + ] + }, + { + "name": "RentDepositOffset", + "type": "BalanceOf", + "value": "0x00008a5d784563010000000000000000", + "docs": [ + " The amount of funds a contract should deposit in order to offset", + " the cost of one byte.", + "", + " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", + " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", + " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", + " then it would pay 500 BU/day." + ] + }, + { + "name": "SurchargeReward", + "type": "BalanceOf", + "value": "0x0080a1a76b4a35000000000000000000", + "docs": [ + " Reward that is received by the party whose touch has led", + " to removal of a contract." + ] + }, + { + "name": "TransferFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to make a transfer." + ] + }, + { + "name": "CreationFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to create an account." + ] + }, + { + "name": "TransactionBaseFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the base." + ] + }, + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "ContractFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to instantiate a contract instance. A reasonable default value", + " is 21." + ] + }, + { + "name": "CallBaseFee", + "type": "Gas", + "value": "0xe803000000000000", + "docs": [ + " The base fee charged for calling into a contract. A reasonable default", + " value is 135." + ] + }, + { + "name": "InstantiateBaseFee", + "type": "Gas", + "value": "0xe803000000000000", + "docs": [ + " The base fee charged for instantiating a contract. A reasonable default value", + " is 175." + ] + }, + { + "name": "MaxDepth", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum nesting level of a call/instantiate stack. A reasonable default", + " value is 100." + ] + }, + { + "name": "MaxValueSize", + "type": "u32", + "value": "0x00400000", + "docs": [ + " The maximum size of a storage value in bytes. A reasonable default is 16 KiB." + ] + }, + { + "name": "BlockGasLimit", + "type": "Gas", + "value": "0x8096980000000000", + "docs": [ + " The maximum amount of gas that could be expended per block. A reasonable", + " default value is 10_000_000." + ] + } + ], + "errors": [ + { + "name": "InvalidScheduleVersion", + "docs": [ + " A new schedule must have a greater version than the current one." + ] + }, + { + "name": "InvalidSurchargeClaim", + "docs": [ + " An origin must be signed or inherent and auxiliary sender only provided on inherent." + ] + }, + { + "name": "InvalidSourceContract", + "docs": [ + " Cannot restore from nonexisting or tombstone contract." + ] + }, + { + "name": "InvalidDestinationContract", + "docs": [ + " Cannot restore to nonexisting or alive contract." + ] + }, + { + "name": "InvalidTombstone", + "docs": [ + " Tombstones don't match." + ] + }, + { + "name": "InvalidContractOrigin", + "docs": [ + " An origin TrieId written in the current block." + ] + } + ] + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Default", + "type": { + "plain": "AccountId" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": [ + { + "name": "sudo", + "args": [ + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Unknown weight of derivative `proposal` execution.", + " # " + ] + }, + { + "name": "set_key", + "args": [ + { + "name": "new", + "type": "LookupSource" + } + ], + "docs": [ + " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + }, + { + "name": "sudo_as", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Signed` origin from", + " a given account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Unknown weight of derivative `proposal` execution.", + " # " + ] + } + ], + "events": [ + { + "name": "Sudid", + "args": [ + "bool" + ], + "docs": [ + " A sudo just took place." + ] + }, + { + "name": "KeyChanged", + "args": [ + "AccountId" + ], + "docs": [ + " The sudoer just switched identity; the old key is supplied." + ] + }, + { + "name": "SudoAsDone", + "args": [ + "bool" + ], + "docs": [ + " A sudo just took place." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "RequireSudo", + "docs": [ + " Sender must be the Sudo account" + ] + } + ] + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "GossipAt", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number when we should gossip." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex`", + " to `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `T::ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId`" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least once validator was found to be offline." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidKey", + "docs": [ + " Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "docs": [ + " Duplicated heartbeat." + ] + } + ] + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": [], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Identity", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Registration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "(AccountId,Data)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": [ + { + "name": "add_registrar", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Add a registrar to the system.", + "", + " The dispatch origin for this call must be `RegistrarOrigin` or `Root`.", + "", + " - `account`: the account of the registrar.", + "", + " Emits `RegistrarAdded` if successful.", + "", + " # ", + " - `O(R)` where `R` registrar-count (governance-bounded).", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_identity", + "args": [ + { + "name": "info", + "type": "IdentityInfo" + } + ], + "docs": [ + " Set an account's identity information and reserve the appropriate deposit.", + "", + " If the account already has identity information, the deposit is taken as part payment", + " for the new deposit.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `info`: The identity information.", + "", + " Emits `IdentitySet` if successful.", + "", + " # ", + " - `O(X + R)` where `X` additional-field-count (deposit-bounded).", + " - At most two balance operations.", + " - One storage mutation (codec `O(X + R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_subs", + "args": [ + { + "name": "subs", + "type": "Vec<(AccountId,Data)>" + } + ], + "docs": [ + " Set the sub-accounts of the sender.", + "", + " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `subs`: The identity's sub-accounts.", + "", + " # ", + " - `O(S)` where `S` subs-count (hard- and deposit-bounded).", + " - At most two balance operations.", + " - At most O(2 * S + 1) storage mutations; codec complexity `O(1 * S + S * 1)`);", + " one storage-exists.", + " # " + ] + }, + { + "name": "clear_identity", + "args": [], + "docs": [ + " Clear an account's identity info and all sub-account and return all deposits.", + "", + " Payment: All reserved balances on the account are returned.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " Emits `IdentityCleared` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage deletions.", + " - One event.", + " # " + ] + }, + { + "name": "request_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "max_fee", + "type": "Compact" + } + ], + "docs": [ + " Request a judgement from a registrar.", + "", + " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + " given.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is requested.", + " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + " ```nocompile", + " Self::registrars(reg_index).uwnrap().fee", + " ```", + "", + " Emits `JudgementRequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", + " - One event.", + " # " + ] + }, + { + "name": "cancel_request", + "args": [ + { + "name": "reg_index", + "type": "RegistrarIndex" + } + ], + "docs": [ + " Cancel a previous request.", + "", + " Payment: A previously reserved deposit is returned on success.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + " Emits `JudgementUnrequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - One storage mutation `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "set_fee", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Set the fee required for a judgement to be requested from a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fee`: the new fee.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " # " + ] + }, + { + "name": "set_account_id", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Change the account associated with a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `new`: the new account ID.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " # " + ] + }, + { + "name": "set_fields", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fields", + "type": "IdentityFields" + } + ], + "docs": [ + " Set the field information for a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fields`: the fields that the registrar concerns themselves with.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " # " + ] + }, + { + "name": "provide_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "judgement", + "type": "IdentityJudgement" + } + ], + "docs": [ + " Provide a judgement for an account's identity.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `reg_index`.", + "", + " - `reg_index`: the index of the registrar whose judgement is being made.", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "", + " Emits `JudgementGiven` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-transfer operation.", + " - Up to one account-lookup operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "kill_identity", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's identity and sub-account information and slash the deposits.", + "", + " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + " `Slash`. Verification request deposits are not returned; they should be cancelled", + " manually using `cancel_request`.", + "", + " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", + "", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + " Emits `IdentityKilled` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage mutations.", + " - One event.", + " # " + ] + } + ], + "events": [ + { + "name": "IdentitySet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "args": [ + "RegistrarIndex" + ], + "docs": [ + " A registrar was added." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "TooManySubAccounts", + "docs": [ + " Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "docs": [ + " Account isn't found." + ] + }, + { + "name": "NotNamed", + "docs": [ + " Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "docs": [ + " Empty index." + ] + }, + { + "name": "FeeChanged", + "docs": [ + " Fee is changed." + ] + }, + { + "name": "NoIdentity", + "docs": [ + " No identity found." + ] + }, + { + "name": "StickyJudgement", + "docs": [ + " Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "docs": [ + " Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "docs": [ + " Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "docs": [ + " The target is invalid." + ] + } + ] + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": "Hash" + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "(BalanceOf,BidKind)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "VouchingStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Vec<(BlockNumber,BalanceOf)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "StrikeCount", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "SocietyVote", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SocietyVote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": [ + { + "name": "bid", + "args": [ + { + "name": "value", + "type": "BalanceOf" + } + ], + "docs": [ + " A user outside of the society can make a bid for entry.", + "", + " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + " when the bid becomes a member, or if the bid calls `unbid`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `value`: A one time payment the bid would like to receive when joining the society.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", + " - Storage Reads:", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " \t- One storage read to retrieve all members. O(M)", + " - Storage Writes:", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for new bid.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unbid", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " A bidder can remove their bid for entry into society.", + " By doing so, they will have their candidate deposit returned or", + " they will unvouch their voucher.", + "", + " Payment: The bid deposit is unreserved if the user made a bid.", + "", + " The dispatch origin for this call must be _Signed_ and a bidder.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + " # ", + " Key: B (len of bids), X (balance unreserve)", + " - One storage read and write to retrieve and update the bids. O(B)", + " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B + X)", + " # " + ] + }, + { + "name": "vouch", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "tip", + "type": "BalanceOf" + } + ], + "docs": [ + " As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + " There is no deposit required to vouch for a new bid, but a member can only vouch for", + " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + " the suspension judgement origin, the member will be banned from vouching again.", + "", + " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + " be paid as a portion of the reward the member will receive for joining the society.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `who`: The user who you would like to vouch for.", + " - `value`: The total reward to be paid between you and the candidate if they become", + " a member in the society.", + " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", + " the society. Tips larger than `value` will be saturated upon payout.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members)", + " - Storage Reads:", + " \t- One storage read to retrieve all members. O(M)", + " \t- One storage read to check member is not already vouching. O(1)", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " - Storage Writes:", + " \t- One storage write to insert vouching status to the member. O(1)", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(log M) search to check sender is a member.", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for vouch.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unvouch", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " As a vouching member, unvouch a bid. This only works while vouched user is", + " only a bidder (and not a candidate).", + "", + " The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + " # ", + " Key: B (len of bids)", + " - One storage read O(1) to check the signer is a vouching member.", + " - One storage mutate to retrieve and update the bids. O(B)", + " - One vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B)", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "candidate", + "type": "LookupSource" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on a candidate.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `candidate`: The candidate that the member would like to bid on.", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " Key: C (len of candidates), M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One account lookup.", + " - One storage read O(C) and O(C) search to check that user is a candidate.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM + C)", + " # " + ] + }, + { + "name": "defender_vote", + "args": [ + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on the defender.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " - Key: M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM)", + " # " + ] + }, + { + "name": "payout", + "args": [], + "docs": [ + " Transfer the first matured payout for the sender and remove it from the records.", + "", + " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", + "", + " Payment: The member will receive a payment equal to their first matured", + " payout to their free balance.", + "", + " The dispatch origin for this call must be _Signed_ and a member with", + " payouts remaining.", + "", + " # ", + " Key: M (len of members), P (number of payouts for a particular member)", + " - One storage read O(M) and O(log M) search to check signer is a member.", + " - One storage read O(P) to get all payouts for a member.", + " - One storage read O(1) to get the current block number.", + " - One currency transfer call. O(X)", + " - One storage write or removal to update the member's payouts. O(P)", + "", + " Total Complexity: O(M + logM + P + X)", + " # " + ] + }, + { + "name": "found", + "args": [ + { + "name": "founder", + "type": "AccountId" + }, + { + "name": "max_members", + "type": "u32" + }, + { + "name": "rules", + "type": "Bytes" + } + ], + "docs": [ + " Found the society.", + "", + " This is done as a discrete action in order to allow for the", + " module to be included into a running chain and can only be done once.", + "", + " The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + " Parameters:", + " - `founder` - The first member and head of the newly founded society.", + " - `max_members` - The initial max number of members for the society.", + " - `rules` - The rules of this society concerning membership.", + "", + " # ", + " - Two storage mutates to set `Head` and `Founder`. O(1)", + " - One storage write to add the first member to society. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "unfound", + "args": [], + "docs": [ + " Anull the founding of the society.", + "", + " The dispatch origin for this call must be Signed, and the signing account must be both", + " the `Founder` and the `Head`. This implies that it may only be done when there is one", + " member.", + "", + " # ", + " - Two storage reads O(1).", + " - Four storage removals O(1).", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "judge_suspended_member", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "forgive", + "type": "bool" + } + ], + "docs": [ + " Allow suspension judgement origin to make judgement on a suspended member.", + "", + " If a suspended member is forgiven, we simply add them back as a member, not affecting", + " any of the existing storage items for that member.", + "", + " If a suspended member is rejected, remove all associated storage items, including", + " their payouts, and remove any vouched bids they currently have.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended member to be judged.", + " - `forgive` - A boolean representing whether the suspension judgement origin", + " forgives (`true`) or rejects (`false`) a suspended member.", + "", + " # ", + " Key: B (len of bids), M (len of members)", + " - One storage read to check `who` is a suspended member. O(1)", + " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", + " - Up to 3 storage removals O(1) to clean up a removed member.", + " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal. O(1)", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B)", + " # " + ] + }, + { + "name": "judge_suspended_candidate", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "judgement", + "type": "SocietyJudgement" + } + ], + "docs": [ + " Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + " If the judgement is `Approve`, we add them to society as a member with the appropriate", + " payment for joining society.", + "", + " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + " to the society treasury, or we ban the voucher from vouching again.", + "", + " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + " through the induction process again.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended candidate to be judged.", + " - `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + " # ", + " Key: B (len of bids), M (len of members), X (balance action)", + " - One storage read to check `who` is a suspended candidate.", + " - One storage removal of the suspended candidate.", + " - Approve Logic", + " \t- One storage read to get the available pot to pay users with. O(1)", + " \t- One storage write to update the available pot. O(1)", + " \t- One storage read to get the current block number. O(1)", + " \t- One storage read to get all members. O(M)", + " \t- Up to one unreserve currency action.", + " \t- Up to two new storage writes to payouts.", + " \t- Up to one storage write with O(log M) binary search to add a member to society.", + " - Reject Logic", + " \t- Up to one repatriate reserved currency action. O(X)", + " \t- Up to one storage write to ban the vouching member from vouching again.", + " - Rebid Logic", + " \t- Storage mutate with O(log B) binary search to place the user back into bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal.", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B + X)", + " # " + ] + }, + { + "name": "set_max_members", + "args": [ + { + "name": "max", + "type": "u32" + } + ], + "docs": [ + " Allows root origin to change the maximum number of members in society.", + " Max membership count must be greater than 1.", + "", + " The dispatch origin for this call must be from _ROOT_.", + "", + " Parameters:", + " - `max` - The maximum number of members for the society.", + "", + " # ", + " - One storage write to update the max. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "Founded", + "args": [ + "AccountId" + ], + "docs": [ + " The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A membership bid just happened. The given account is the candidate's ID and their offer", + " is the second." + ] + }, + { + "name": "Vouch", + "args": [ + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A membership bid just happened by vouching. The given account is the candidate's ID and", + " their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "args": [ + "AccountId" + ], + "docs": [ + " A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "args": [ + "AccountId" + ], + "docs": [ + " A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "args": [ + "AccountId" + ], + "docs": [ + " A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "args": [ + "AccountId", + "Vec" + ], + "docs": [ + " A group of candidates have been inducted. The batch's primary is the first value, the", + " batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A suspended member has been judged" + ] + }, + { + "name": "CandidateSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A member has been suspended" + ] + }, + { + "name": "Challenged", + "args": [ + "AccountId" + ], + "docs": [ + " A member has been challenged" + ] + }, + { + "name": "Vote", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed (candidate, voter, vote)" + ] + }, + { + "name": "DefenderVote", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed for a defending member (voter, vote)" + ] + }, + { + "name": "NewMaxMembers", + "args": [ + "u32" + ], + "docs": [ + " A new max member count has been set" + ] + }, + { + "name": "Unfounded", + "args": [ + "AccountId" + ], + "docs": [ + " Society is unfounded." + ] + } + ], + "constants": [ + { + "name": "CandidateDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", + " before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "type": "BalanceOf", + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "type": "BlockNumber", + "value": "0x00770100", + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "ChallengePeriod", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ] + } + ], + "errors": [ + { + "name": "BadPosition", + "docs": [ + " An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "docs": [ + " User is not a member." + ] + }, + { + "name": "AlreadyMember", + "docs": [ + " User is already a member." + ] + }, + { + "name": "Suspended", + "docs": [ + " User is suspended." + ] + }, + { + "name": "NotSuspended", + "docs": [ + " User is not suspended." + ] + }, + { + "name": "NoPayout", + "docs": [ + " Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "docs": [ + " Society already founded." + ] + }, + { + "name": "InsufficientPot", + "docs": [ + " Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "docs": [ + " Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "docs": [ + " Member is not vouching." + ] + }, + { + "name": "Head", + "docs": [ + " Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "docs": [ + " Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "docs": [ + " User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "docs": [ + " User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "docs": [ + " User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "docs": [ + " Too many members in the society." + ] + }, + { + "name": "NotFounder", + "docs": [ + " The caller is not the founder." + ] + }, + { + "name": "NotHead", + "docs": [ + " The caller is not the head." + ] + } + ] + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "RecoveryConfig", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "ActiveRecovery", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Recovered", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The final list of recovered accounts.", + "", + " Map from the recovered account to the user who can access it." + ] + } + ] + }, + "calls": [ + { + "name": "as_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through a recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you want to make a call on-behalf-of.", + " - `call`: The call you want to make with the recovered account.", + "", + " # ", + " - The weight of the `call`.", + " - One storage lookup to check account is recovered by `who`. O(1)", + " # " + ] + }, + { + "name": "set_recovered", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow ROOT to bypass the recovery process and set an a rescuer account", + " for a lost account directly.", + "", + " The dispatch origin for this call must be _ROOT_.", + "", + " Parameters:", + " - `lost`: The \"lost account\" to be recovered.", + " - `rescuer`: The \"rescuer account\" which can call as the lost account.", + "", + " # ", + " - One storage write O(1)", + " - One event", + " # " + ] + }, + { + "name": "create_recovery", + "args": [ + { + "name": "friends", + "type": "Vec" + }, + { + "name": "threshold", + "type": "u16" + }, + { + "name": "delay_period", + "type": "BlockNumber" + } + ], + "docs": [ + " Create a recovery configuration for your account. This makes your account recoverable.", + "", + " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + " will be reserved for storing the recovery configuration. This deposit is returned", + " in full when the user calls `remove_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `friends`: A list of friends you trust to vouch for recovery attempts.", + " Should be ordered and contain no duplicate values.", + " - `threshold`: The number of friends that must vouch for a recovery attempt", + " before the account can be recovered. Should be less than or equal to", + " the length of the list of friends.", + " - `delay_period`: The number of blocks after a recovery attempt is initialized", + " that needs to pass before the account can be recovered.", + "", + " # ", + " - Key: F (len of friends)", + " - One storage read to check that account is not already recoverable. O(1).", + " - A check that the friends list is sorted and unique. O(F)", + " - One currency reserve operation. O(X)", + " - One storage write. O(1). Codec O(F).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "initiate_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Initiate the process for recovering a recoverable account.", + "", + " Payment: `RecoveryDeposit` balance will be reserved for initiating the", + " recovery process. This deposit will always be repatriated to the account", + " trying to be recovered. See `close_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `account`: The lost account that you want to recover. This account", + " needs to be recoverable (i.e. have a recovery configuration).", + "", + " # ", + " - One storage read to check that account is recoverable. O(F)", + " - One storage read to check that this recovery process hasn't already started. O(1)", + " - One currency reserve operation. O(X)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "vouch_recovery", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow a \"friend\" of a recoverable account to vouch for an active recovery", + " process for that account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + " for the recoverable account.", + "", + " Parameters:", + " - `lost`: The lost account that you want to recover.", + " - `rescuer`: The account trying to rescue the lost account that you", + " want to vouch for.", + "", + " The combination of these two parameters must point to an active recovery", + " process.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One binary search to confirm caller is a friend. O(logF)", + " - One binary search to confirm caller has not already vouched. O(logV)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + logF + V + logV)", + " # " + ] + }, + { + "name": "claim_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Allow a successful rescuer to claim their recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + " who has successfully completed the account recovery process: collected", + " `threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + " Parameters:", + " - `account`: The lost account that you want to claim has been successfully", + " recovered by you.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + V)", + " # " + ] + }, + { + "name": "close_recovery", + "args": [ + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " As the controller of a recoverable account, close an active recovery", + " process for your account.", + "", + " Payment: By calling this function, the recoverable account will receive", + " the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account with an active recovery process for it.", + "", + " Parameters:", + " - `rescuer`: The account trying to rescue this recoverable account.", + "", + " # ", + " Key: V (len of vouching friends)", + " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", + " - One balance call to repatriate reserved. O(X)", + " - One event.", + "", + " Total Complexity: O(V + X)", + " # " + ] + }, + { + "name": "remove_recovery", + "args": [], + "docs": [ + " Remove the recovery process for your account.", + "", + " NOTE: The user must make sure to call `close_recovery` on all active", + " recovery attempts before calling this function else it will fail.", + "", + " Payment: By calling this function the recoverable account will unreserve", + " their recovery configuration deposit.", + " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account (i.e. has a recovery configuration).", + "", + " # ", + " Key: F (len of friends)", + " - One storage read to get the prefix iterator for active recoveries. O(1)", + " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", + " - One balance call to unreserved. O(X)", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + } + ], + "events": [ + { + "name": "RecoveryCreated", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been set up for an account" + ] + }, + { + "name": "RecoveryInitiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process has been initiated for account_1 by account_2" + ] + }, + { + "name": "RecoveryVouched", + "args": [ + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for account_1 by account_2 has been vouched for by account_3" + ] + }, + { + "name": "RecoveryClosed", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for account_1 by account_2 has been closed" + ] + }, + { + "name": "AccountRecovered", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Account_1 has been successfully recovered by account_2" + ] + }, + { + "name": "RecoveryRemoved", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been removed for an account" + ] + } + ], + "constants": [], + "errors": [] + } + ] + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v11/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v11/bizinikiwi-hex.ts new file mode 100644 index 0000000..32cd72f --- /dev/null +++ b/packages/types-support/src/metadata/v11/bizinikiwi-hex.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export default '0x6d6574610b801853797374656d011853797374656d3c1c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e00150100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010064776569676874733a3a45787472696e7369637357656967687440000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e1c6c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960e0202d2042617365205765696768743a20302e36363520c2b5732c20696e646570656e64656e74206f662072656d61726b206c656e6774682e50202d204e6f204442206f7065726174696f6e732e302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e1c7375696369646500286501204b696c6c207468652073656e64696e67206163636f756e742c20617373756d696e6720746865726520617265206e6f207265666572656e636573206f75747374616e64696e6720616e642074686520636f6d706f7369746590206461746120697320657175616c20746f206974732064656661756c742076616c75652e002c2023203c7765696768743e24202d20604f283129607c202d20312073746f72616765207265616420616e642064656c6574696f6e2e54202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a20382e36323620c2b5731101204e6f2044422052656164206f72205772697465206f7065726174696f6e7320626563617573652063616c6c657220697320616c726561647920696e206f7665726c6179302023203c2f7765696768743e01144045787472696e7369635375636365737304304469737061746368496e666f04b020416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205b696e666f5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f048c20416e2065787472696e736963206661696c65642e205b6572726f722c20696e666f5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e74496404742041206e6577205b6163636f756e745d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046420416e205b6163636f756e745d20776173207265617065642e1838426c6f636b48617368436f756e7438543a3a426c6f636b4e756d626572106009000004d820546865206d6178696d756d206e756d626572206f6620626c6f636b7320746f20616c6c6f7720696e206d6f7274616c20657261732e484d6178696d756d426c6f636b576569676874185765696768742000204aa9d1010000047c20546865206d6178696d756d20776569676874206f66206120626c6f636b2e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e50426c6f636b457865637574696f6e576569676874185765696768742000f2052a0100000004510120546865206261736520776569676874206f6620657865637574696e67206120626c6f636b2c20696e646570656e64656e74206f6620746865207472616e73616374696f6e7320696e2074686520626c6f636b2e4c45787472696e736963426173655765696768741857656967687420405973070000000004790120546865206261736520776569676874206f6620616e2045787472696e73696320696e2074686520626c6f636b2c20696e646570656e64656e74206f6620746865206f662065787472696e736963206265696e672065786563757465642e484d6178696d756d426c6f636b4c656e6774680c753332100000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e1c5574696c697479000108146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e50802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573c820627970617373696e6720606672616d655f73797374656d3a3a54726169743a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e90202d2042617365207765696768743a2031342e3339202b202e393837202a206320c2b573b8202d20506c7573207468652073756d206f66207468652077656967687473206f6620746865206063616c6c73602ec4202d20506c7573206f6e65206164646974696f6e616c206576656e742e202872657065617420726561642f777269746529302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173882077656c6c20617320746865206572726f722e205b696e6465782c206572726f725d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e000010426162650110426162652c2845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e3c4e65787445706f6368436f6e6669670000504e657874436f6e66696744657363726970746f7204000498204e6578742065706f636820636f6e66696775726174696f6e2c206966206368616e6765642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e01084c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e00083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743ed0202d20604f285429602077686572652060546020636f6d706c6578697479206f6620606f6e5f74696d657374616d705f73657460a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029b4202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f7365746020604f285429602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e1c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e6465784c9c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032382e363920c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785461012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2033332e373420c2b57334202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784c98204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032352e353320c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c58590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2032362e383320c2b57334202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657848690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2033302e383620c2b57394202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804ac2041206163636f756e7420696e646578207761732061737369676e65642e205b77686f2c20696e6465785d28496e646578467265656404304163636f756e74496e64657804e02041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205b696e6465785d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640421012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205b77686f2c20696e6465785d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e002042616c616e636573012042616c616e6365731034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e20746865206361736520746861742074686973206d6f64756c65206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e6365041d0120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205b6163636f756e742c20667265655f62616c616e63655d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cc820726573756c74696e6720696e20616e206f75747269676874206c6f73732e205b6163636f756e742c2062616c616e63655d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e63650498205472616e73666572207375636365656465642e205b66726f6d2c20746f2c2076616c75655d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504c420412062616c616e6365207761732073657420627920726f6f742e205b77686f2c20667265652c2072657365727665645d1c4465706f73697408244163636f756e7449641c42616c616e636504190120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205b77686f2c206465706f7369745d20526573657276656408244163636f756e7449641c42616c616e636504190120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205b77686f2c2076616c75655d28556e726573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205b77686f2c2076616c75655d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea0205b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d6578697374485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e001c5374616b696e67011c5374616b696e678c30486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f72507265667300040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e00b820546865206163746976652065726120697320746865206572612063757272656e746c792072657761726465642e2d012056616c696461746f7220736574206f66207468697320657261206d75737420626520657175616c20746f206053657373696f6e496e746572666163653a3a76616c696461746f7273602e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400043101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f7250726566730504001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e48536e617073686f7456616c696461746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f662076616c696461746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e48536e617073686f744e6f6d696e61746f72730000445665633c543a3a4163636f756e7449643e040008650120536e617073686f74206f66206e6f6d696e61746f72732061742074686520626567696e6e696e67206f66207468652063757272656e7420656c656374696f6e2077696e646f772e20546869732073686f756c64206f6e6c791901206861766520612076616c7565207768656e205b60457261456c656374696f6e537461747573605d203d3d2060456c656374696f6e5374617475733a3a4f70656e285f29602e34517565756564456c65637465640000a8456c656374696f6e526573756c743c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e04000c650120546865206e6578742076616c696461746f72207365742e2041742074686520656e64206f6620616e206572612c206966207468697320697320617661696c61626c652028706f74656e7469616c6c792066726f6d20746865610120726573756c74206f6620616e206f6666636861696e20776f726b6572292c20697420697320696d6d6564696174656c7920757365642e204f74686572776973652c20746865206f6e2d636861696e20656c656374696f6e342069732065786563757465642e2c51756575656453636f7265000034456c656374696f6e53636f7265040004b0205468652073636f7265206f66207468652063757272656e74205b60517565756564456c6563746564605d2e44457261456c656374696f6e537461747573010078456c656374696f6e5374617475733c543a3a426c6f636b4e756d6265723e040008490120466c616720746f20636f6e74726f6c2074686520657865637574696f6e206f6620746865206f6666636861696e20656c656374696f6e2e205768656e20604f70656e285f29602c207765206163636570746c20736f6c7574696f6e7320746f206265207375626d69747465642e54497343757272656e7453657373696f6e46696e616c010010626f6f6c0400084d012054727565206966207468652063757272656e74202a2a706c616e6e65642a2a2073657373696f6e2069732066696e616c2e204e6f74652074686174207468697320646f6573206e6f742074616b65206572615820666f7263696e6720696e746f206163636f756e742e3853746f7261676556657273696f6e01002052656c6561736573040310cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076332e302e3020666f72206e6577206e6574776f726b732e016010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2036372e383720c2b5732c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2035342e383820c2b5732c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2035302e333420c2b5732c204442205765696768743a2901202d20526561643a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657228203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c753332782d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f7665342042617365205765696768743a74205570646174653a2035302e3532202b202e303238202a205320c2b5732501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657270204b696c6c3a2037392e3431202b20322e333636202a205320c2b5738501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e204163636f756e745d2c204c6f636b73b101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205b4f726967696e204163636f756e745d2c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2031372e313320c2b5732c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d842042617365205765696768743a2032322e3334202b202e3336202a204e20c2b57384207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d5c2042617365205765696768743a2031362e353320c2b5732c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d64202d2042617365205765696768743a2031312e333320c2b57334202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d5c2042617365205765696768743a2032352e323220c2b5732c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5735c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e20ac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5737020526561642f57726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e7420d4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e5c2042617365205765696768743a20312e37313720c2b5737020526561642f57726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e64202d2042617365205765696768743a20312e38353720c2b57348202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e64202d2042617365205765696768743a20312e39353920c2b57344202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e24cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f28562990202d2042617365205765696768743a20322e323038202b202e303036202a205620c2b5735c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533322c0d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f7665648c2042617365205765696768743a2035332e3037202b20322e333635202a205320c2b573b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e60202d2042617365205765696768743a20322e303520c2b57348202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e38982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e74202d20426173653a2035383730202b2033342e3631202a205320c2b57368202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657864110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f7229342042617365205765696768743a0101202d205265776172642044657374696e6174696f6e205374616b65643a20313130202b2035342e32202a204e20c2b57320284d656469616e20536c6f706573294101202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a20313230202b2034312e3935202a204e20c2b57320284d656469616e20536c6f706573292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d7329302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e3ce0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d98202d2042617365205765696768743a2033342e353120c2b573202a202e303438204c20c2b57334202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d203374202d2042617365205765696768743a2032392e3133202a204520c2b57334202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533324039012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e6365206973207a65726f2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65c020616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c6566742e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e8c2042617365205765696768743a2037352e3934202b20322e333936202a205320c2b5732c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e607375626d69745f656c656374696f6e5f736f6c7574696f6e141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a65bce4205375626d697420616e20656c656374696f6e20726573756c7420746f2074686520636861696e2e2049662074686520736f6c7574696f6e3a003420312e2069732076616c69642e150120322e206861732061206265747465722073636f7265207468616e206120706f74656e7469616c6c79206578697374696e6720736f6c7574696f6e206f6e20636861696e2e0084207468656e2c2069742077696c6c206265205f7075745f206f6e20636861696e2e00ac204120736f6c7574696f6e20636f6e7369737473206f662074776f20706965636573206f6620646174613a00f420312e206077696e6e657273603a206120666c617420766563746f72206f6620616c6c207468652077696e6e657273206f662074686520726f756e642e510120322e206061737369676e6d656e7473603a2074686520636f6d706163742076657273696f6e206f6620616e2061737369676e6d656e7420766563746f72207468617420656e636f6465732074686520656467653020202020776569676874732e00210120426f7468206f66207768696368206d617920626520636f6d7075746564207573696e67205f70687261676d656e5f2c206f7220616e79206f7468657220616c676f726974686d2e00a8204164646974696f6e616c6c792c20746865207375626d6974746572206d7573742070726f766964653a00c8202d20546865206073636f7265602074686174207468657920636c61696d20746865697220736f6c7574696f6e206861732e004d0120426f74682076616c696461746f727320616e64206e6f6d696e61746f72732077696c6c20626520726570726573656e74656420627920696e646963657320696e2074686520736f6c7574696f6e2e205468651d0120696e64696365732073686f756c6420726573706563742074686520636f72726573706f6e64696e6720747970657320285b6056616c696461746f72496e646578605d20616e643101205b604e6f6d696e61746f72496e646578605d292e204d6f72656f7665722c20746865792073686f756c642062652076616c6964207768656e207573656420746f20696e64657820696e746f5101205b60536e617073686f7456616c696461746f7273605d20616e64205b60536e617073686f744e6f6d696e61746f7273605d2e20416e7920696e76616c696420696e6465782077696c6c20636175736520746865610120736f6c7574696f6e20746f2062652072656a65637465642e2054686573652074776f2073746f72616765206974656d73206172652073657420647572696e672074686520656c656374696f6e2077696e646f7720616e6498206d6179206265207573656420746f2064657465726d696e652074686520696e64696365732e0060204120736f6c7574696f6e2069732076616c69642069663a00e420302e204974206973207375626d6974746564207768656e205b60457261456c656374696f6e537461747573605d20697320604f70656e602ef820312e2049747320636c61696d65642073636f726520697320657175616c20746f207468652073636f726520636f6d7075746564206f6e2d636861696e2eac20322e2050726573656e74732074686520636f7272656374206e756d626572206f662077696e6e6572732e550120332e20416c6c20696e6465786573206d7573742062652076616c7565206163636f7264696e6720746f2074686520736e617073686f7420766563746f72732e20416c6c20656467652076616c756573206d7573745d0120202020616c736f20626520636f727265637420616e642073686f756c64206e6f74206f766572666c6f7720746865206772616e756c6172697479206f662074686520726174696f20747970652028692e652e2032353640202020206f722062696c6c696f6e292e0d0120342e20466f72206561636820656467652c20616c6c2074617267657473206172652061637475616c6c79206e6f6d696e617465642062792074686520766f7465722e6c20352e2048617320636f72726563742073656c662d766f7465732e00c0204120736f6c7574696f6e732073636f726520697320636f6e736973746564206f66203320706172616d65746572733a00650120312e20606d696e207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d6178696d697a65642e650120322e206073756d207b20737570706f72742e746f74616c207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c64206265206d696e696d697a65642e410120332e206073756d207b20737570706f72742e746f74616c5e32207d6020666f72206561636820737570706f7274206f6620612077696e6e65722e20546869732076616c75652073686f756c642062659c202020206d696e696d697a65642028746f20656e73757265206c6573732076617269616e636529002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e847375626d69745f656c656374696f6e5f736f6c7574696f6e5f756e7369676e6564141c77696e6e6572734c5665633c56616c696461746f72496e6465783e1c636f6d7061637448436f6d7061637441737369676e6d656e74731473636f726534456c656374696f6e53636f72650c65726120457261496e6465781073697a6530456c656374696f6e53697a6524c020556e7369676e65642076657273696f6e206f6620607375626d69745f656c656374696f6e5f736f6c7574696f6e602e005d01204e6f746520746861742074686973206d757374207061737320746865205b6056616c6964617465556e7369676e6564605d20636865636b207768696368206f6e6c7920616c6c6f7773207472616e73616374696f6e7361012066726f6d20746865206c6f63616c206e6f646520746f20626520696e636c756465642e20496e206f7468657220776f7264732c206f6e6c792074686520626c6f636b20617574686f722063616e20696e636c756465206168207472616e73616374696f6e20696e2074686520626c6f636b2e002c2023203c7765696768743e7020536565206063726174653a3a77656967687460206d6f64756c652e302023203c2f7765696768743e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642ea4205b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725d1852657761726408244163636f756e7449641c42616c616e636504f420546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205b73746173682c20616d6f756e745d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e50205b76616c696461746f722c20616d6f756e745d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6488206e6f742062652070726f6365737365642e205b73657373696f6e5f696e6465785d3c5374616b696e67456c656374696f6e043c456c656374696f6e436f6d7075746504ec2041206e657720736574206f66207374616b6572732077617320656c656374656420776974682074686520676976656e205b636f6d707574655d2e38536f6c7574696f6e53746f726564043c456c656374696f6e436f6d707574650411012041206e657720736f6c7574696f6e20666f7220746865207570636f6d696e6720656c656374696f6e20686173206265656e2073746f7265642e205b636f6d707574655d18426f6e64656408244163636f756e7449641c42616c616e636510cc20416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205b73746173682c20616d6f756e745d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504d420416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205b73746173682c20616d6f756e745d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560a82066726f6d2074686520756e6c6f636b696e672071756575652e205b73746173682c20616d6f756e745d1c3853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e44456c656374696f6e4c6f6f6b616865616438543a3a426c6f636b4e756d62657210320000001c710120546865206e756d626572206f6620626c6f636b73206265666f72652074686520656e64206f6620746865206572612066726f6d20776869636820656c656374696f6e207375626d697373696f6e732061726520616c6c6f7765642e006d012053657474696e67207468697320746f207a65726f2077696c6c2064697361626c6520746865206f6666636861696e20636f6d7075746520616e64206f6e6c79206f6e2d636861696e207365712d70687261676d656e2077696c6c2420626520757365642e007501205468697320697320626f756e646564206279206265696e672077697468696e20746865206c6173742073657373696f6e2e2048656e63652c2073657474696e6720697420746f20612076616c7565206d6f7265207468616e207468659c206c656e677468206f6620612073657373696f6e2077696c6c20626520706f696e746c6573732e344d6178497465726174696f6e730c753332100a0000000c2901204d6178696d756d206e756d626572206f662062616c616e63696e6720697465726174696f6e7320746f2072756e20696e20746865206f6666636861696e207375626d697373696f6e2e00ec2049662073657420746f20302c2062616c616e63655f736f6c7574696f6e2077696c6c206e6f7420626520657865637574656420617420616c6c2e504d696e536f6c7574696f6e53636f726542756d701c50657262696c6c1020a1070004610120546865207468726573686f6c64206f6620696d70726f76656d656e7420746861742073686f756c642062652070726f766964656420666f722061206e657720736f6c7574696f6e20746f2062652061636365707465642e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332104000000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e7c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e7c4f6666636861696e456c656374696f6e4561726c795375626d697373696f6e04e420546865207375626d697474656420726573756c74206973207265636569766564206f7574206f6620746865206f70656e2077696e646f772e784f6666636861696e456c656374696f6e5765616b5375626d697373696f6e04010120546865207375626d697474656420726573756c74206973206e6f7420617320676f6f6420617320746865206f6e652073746f726564206f6e20636861696e2e4c536e617073686f74556e617661696c61626c6504d02054686520736e617073686f742064617461206f66207468652063757272656e742077696e646f77206973206d697373696e672e804f6666636861696e456c656374696f6e426f67757357696e6e6572436f756e7404b020496e636f7272656374206e756d626572206f662077696e6e65727320776572652070726573656e7465642e6c4f6666636861696e456c656374696f6e426f67757357696e6e6572086101204f6e65206f6620746865207375626d69747465642077696e6e657273206973206e6f7420616e206163746976652063616e646964617465206f6e20636861696e2028696e646578206973206f7574206f662072616e67653820696e20736e617073686f74292e704f6666636861696e456c656374696f6e426f677573436f6d70616374085d01204572726f72207768696c65206275696c64696e67207468652061737369676e6d656e7420747970652066726f6d2074686520636f6d706163742e20546869732063616e2068617070656e20696620616e20696e646578a820697320696e76616c69642c206f72206966207468652077656967687473205f6f766572666c6f775f2e784f6666636861696e456c656374696f6e426f6775734e6f6d696e61746f72041501204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f7273206973206e6f7420616e20616374697665206e6f6d696e61746f72206f6e20636861696e2e7c4f6666636861696e456c656374696f6e426f6775734e6f6d696e6174696f6e044d01204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e206564676520746f20776869636820746865792068617665206e6f7420766f746564206f6e20636861696e2e844f6666636861696e456c656374696f6e536c61736865644e6f6d696e6174696f6e086101204f6e65206f6620746865207375626d6974746564206e6f6d696e61746f72732068617320616e2065646765207768696368206973207375626d6974746564206265666f726520746865206c617374206e6f6e2d7a65726f5420736c617368206f6620746865207461726765742e744f6666636861696e456c656374696f6e426f67757353656c66566f746504250120412073656c6620766f7465206d757374206f6e6c79206265206f726967696e617465642066726f6d20612076616c696461746f7220746f204f4e4c59207468656d73656c7665732e644f6666636861696e456c656374696f6e426f6775734564676504450120546865207375626d697474656420726573756c742068617320756e6b6e6f776e206564676573207468617420617265206e6f7420616d6f6e67207468652070726573656e7465642077696e6e6572732e684f6666636861696e456c656374696f6e426f67757353636f72650419012054686520636c61696d65642073636f726520646f6573206e6f74206d61746368207769746820746865206f6e6520636f6d70757465642066726f6d2074686520646174612e844f6666636861696e456c656374696f6e426f677573456c656374696f6e53697a6504782054686520656c656374696f6e2073697a6520697320696e76616c69642e3843616c6c4e6f74416c6c6f776564044901205468652063616c6c206973206e6f7420616c6c6f7765642061742074686520676976656e2074696d652064756520746f207265737472696374696f6e73206f6620656c656374696f6e20706572696f642e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e1c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085d01204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205b73657373696f6e5f696e6465785d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001030496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e015c1c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e3ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960b4202d2044622072656164733a20605075626c696350726f70436f756e74602c20605075626c696350726f707360ec202d204462207772697465733a20605075626c696350726f70436f756e74602c20605075626c696350726f7073602c20604465706f7369744f6660302023203c2f7765696768743e187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e38b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002c2023203c7765696768743e3901202d20436f6d706c65786974793a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e60202d2044622072656164733a20604465706f7369744f666064202d204462207772697465733a20604465706f7369744f6660302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e38350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e002c2023203c7765696768743e4901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2ea42020207765696768742069732063686172676564206173206966206d6178696d756d20766f7465732ef4202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f66602c206062616c616e636573206c6f636b7360f8202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f66602c206062616c616e636573206c6f636b7360302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578305101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e58202d20436f6d706c65786974793a20604f283129602ec0202d2044622072656164733a20605265666572656e64756d496e666f4f66602c206043616e63656c6c6174696f6e7360c4202d204462207772697465733a20605265666572656e64756d496e666f4f66602c206043616e63656c6c6174696f6e7360302023203c2f7765696768743e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368343101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e002c2023203c7765696768743e2d01202d20436f6d706c657869747920604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756da0202d2044622072656164733a20604e65787445787465726e616c602c2060426c61636b6c6973746070202d204462207772697465733a20604e65787445787465726e616c60302023203c2f7765696768743e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368385901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f283129606c202d2044622077726974653a20604e65787445787465726e616c60302023203c2f7765696768743e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368384901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f283129606c202d2044622077726974653a20604e65787445787465726e616c60302023203c2f7765696768743e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572505101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960b8202d2044622072656164733a20604e65787445787465726e616c602c20605265666572656e64756d436f756e74600d01202d204462207772697465733a20604e65787445787465726e616c602c20605265666572656e64756d436f756e74602c20605265666572656e64756d496e666f4f666060202d2042617365205765696768743a2033302e3120c2b573302023203c2f7765696768743e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736838bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e002c2023203c7765696768743e1901202d20436f6d706c65786974793a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604501202020506572666f726d7320612062696e61727920736561726368206f6e20606578697374696e675f7665746f657273602077686963682073686f756c64206e6f742062652076657279206c617267652ea0202d2044622072656164733a20604e65787445787465726e616c602c2060426c61636b6c69737460a4202d204462207772697465733a20604e65787445787465726e616c602c2060426c61636b6c69737460302023203c2f7765696768743e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e28542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e58202d20436f6d706c65786974793a20604f283129602e80202d204462207772697465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465782ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e002c2023203c7765696768743e3501202d20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602ec8202d2044622072656164733a20607363686564756c6572206c6f6f6b7570602c207363686564756c6572206167656e646160cc202d204462207772697465733a20607363686564756c6572206c6f6f6b7570602c207363686564756c6572206167656e646160302023203c2f7765696768743e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e683d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e002c2023203c7765696768743e5901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732ec4202d2044622072656164733a20332a60566f74696e674f66602c20606f726967696e206163636f756e74206c6f636b7360c8202d204462207772697465733a20332a60566f74696e674f66602c20606f726967696e206163636f756e74206c6f636b7360a4202d2044622072656164732070657220766f7465733a20605265666572656e64756d496e666f4f6660a8202d204462207772697465732070657220766f7465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e28756e64656c65676174650048d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e002c2023203c7765696768743e5901202d20436f6d706c65786974793a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e64202d2044622072656164733a20322a60566f74696e674f666068202d204462207772697465733a20322a60566f74696e674f6660a4202d2044622072656164732070657220766f7465733a20605265666572656e64756d496e666f4f6660a8202d204462207772697465732070657220766f7465733a20605265666572656e64756d496e666f4f6660302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300207420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e002c2023203c7765696768743e28202d20604f283129602e6c202d204462207772697465733a20605075626c696350726f707360302023203c2f7765696768743e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e002c2023203c7765696768743e6901202d20436f6d706c65786974793a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e60202d2044622072656164733a2060507265696d616765736064202d204462207772697465733a2060507265696d6167657360302023203c2f7765696768743e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e4045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e002c2023203c7765696768743e6901202d20436f6d706c65786974793a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e60202d2044622072656164733a2060507265696d616765736064202d204462207772697465733a2060507265696d6167657360302023203c2f7765696768743e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e4cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e002c2023203c7765696768743ed0202d20436f6d706c65786974793a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2ebc202d2044622072656164733a2060507265696d61676573602c2070726f7669646572206163636f756e742064617461bc202d204462207772697465733a2060507265696d61676573602070726f7669646572206163636f756e742064617461302023203c2f7765696768743e18756e6c6f636b041874617267657430543a3a4163636f756e7449642ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e002c2023203c7765696768743ed4202d20436f6d706c657869747920604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742eec202d2044622072656164733a2060566f74696e674f66602c206062616c616e636573206c6f636b73602c2060746172676574206163636f756e7460f0202d204462207772697465733a2060566f74696e674f66602c206062616c616e636573206c6f636b73602c2060746172676574206163636f756e7460302023203c2f7765696768743e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465787c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e002c2023203c7765696768743e4101202d20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652eac202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660b0202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660302023203c2f7765696768743e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465784c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e002c2023203c7765696768743e4101202d20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652eac202d2044622072656164733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660b0202d204462207772697465733a20605265666572656e64756d496e666f4f66602c2060566f74696e674f6660302023203c2f7765696768743e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e01442050726f706f736564082450726f70496e6465781c42616c616e63650429012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205b70726f706f73616c5f696e6465782c206465706f7369745d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e0475012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404bc2041207265666572656e64756d2068617320626567756e2e205b7265665f696e6465782c207468726573686f6c645d18506173736564043c5265666572656e64756d496e64657804e020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205b7265665f696e6465785d244e6f74506173736564043c5265666572656e64756d496e64657804e020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205b7265665f696e6465785d2443616e63656c6c6564043c5265666572656e64756d496e64657804b42041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205b7265665f696e6465785d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c020412070726f706f73616c20686173206265656e20656e61637465642e205b7265665f696e6465782c2069735f6f6b5d2444656c65676174656408244163636f756e744964244163636f756e74496404190120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205b77686f2c207461726765745d2c556e64656c65676174656404244163636f756e74496404f020416e205b6163636f756e745d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204090120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205b77686f2c2070726f706f73616c5f686173682c20756e74696c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504590120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205b70726f706f73616c5f686173682c2077686f2c206465706f7369745d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e8c205b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e64657804790120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e205b70726f706f73616c5f686173682c207265665f696e6465785d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e64657804790120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e205b70726f706f73616c5f686173682c207265665f696e6465785d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eac205b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725d20556e6c6f636b656404244163636f756e74496404b420416e205b6163636f756e745d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000004b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e842056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e204f766572666c6f7704a420416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e24556e646572666c6f7704a820416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e7449640400085d0120546865206d656d6265722077686f2070726f7669646573207468652064656661756c7420766f746520666f7220616e79206f74686572206d656d62657273207468617420646f206e6f7420766f7465206265666f7265e4207468652074696d656f75742e204966204e6f6e652c207468656e206e6f206d656d6265722068617320746861742070726976696c6567652e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed0205b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea4205b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e64205b70726f706f73616c5f686173682c207965732c206e6f5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e7449640400085d0120546865206d656d6265722077686f2070726f7669646573207468652064656661756c7420766f746520666f7220616e79206f74686572206d656d62657273207468617420646f206e6f7420766f7465206265666f7265e4207468652074696d656f75742e204966204e6f6e652c207468656e206e6f206d656d6265722068617320746861742070726976696c6567652e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c30f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e002c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e6c510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed0205b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292ea4205b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e40205b70726f706f73616c5f686173685d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e60205b70726f706f73616c5f686173682c20726573756c745d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e64205b70726f706f73616c5f686173682c207965732c206e6f5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e24456c656374696f6e73014050687261676d656e456c656374696f6e141c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e29004400000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c02054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682843616e646964617465730100445665633c543a3a4163636f756e7449643e0400085901205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742d69642e20412063757272656e74206d656d626572206f722072756e6e65722d757041012063616e206e6576657220656e746572207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e645d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0055012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e74206973282072657365727665642e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e5c2042617365207765696768743a2034372e393320c2b573342053746174652072656164733ad820092d2043616e646964617465732e6c656e2829202b204d656d626572732e6c656e2829202b2052756e6e65727355702e6c656e28295420092d20566f74696e67202869735f766f74657229d420092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202b20746f74616c5f62616c616e6365295d38205374617465207772697465733a2820092d20566f74696e672020092d204c6f636b1d0120092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665202d2d206f6e6c79207768656e206372656174696e672061206e657720766f746572295d302023203c2f7765696768743e3072656d6f76655f766f746572003421012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e582042617365207765696768743a2033362e3820c2b573a820416c6c207374617465206163636573732069732066726f6d20646f5f72656d6f76655f766f7465722e342053746174652072656164733a2820092d20566f74696e675820092d205b4163636f756e74446174612877686f295d38205374617465207772697465733a2820092d20566f74696e672420092d204c6f636b735820092d205b4163636f756e74446174612877686f295d302023203c2f7765696768743e507265706f72745f646566756e63745f766f746572041c646566756e6374c4446566756e6374566f7465723c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e6c5d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6ff020202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d626572206f7220612072756e6e65722d75702e0000690120546865206f726967696e206d7573742070726f7669646520746865206e756d626572206f662063757272656e742063616e6469646174657320616e6420766f746573206f6620746865207265706f7274656420746172676574c020666f722074686520707572706f7365206f66206163637572617465207765696768742063616c63756c6174696f6e2e002c2023203c7765696768743eb4204e6f204261736520776569676874206261736564206f6e206d696e2073717561726520616e616c797369732ea420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20312e37353520c2b5739020436f6d706c6578697479206f6620766f74655f636f756e743a2031382e353120c2b573342053746174652072656164733a542020092d20566f74696e67287265706f7274657229502020092d2043616e6469646174652e6c656e28294c2020092d20566f74696e672854617267657429d82020092d2043616e646964617465732c204d656d626572732c2052756e6e6572735570202869735f646566756e63745f766f7465722938205374617465207772697465733a7020092d204c6f636b287265706f72746572207c7c2074617267657429dc20092d205b4163636f756e7442616c616e6365287265706f72746572295d202b204163636f756e7442616c616e636528746172676574297820092d20566f74696e67287265706f72746572207c7c20746172676574295901204e6f74653a207468652064622061636365737320697320776f7273652077697468207265737065637420746f2064622c207768696368206973207768656e20746865207265706f727420697320636f72726563742e302023203c2f7765696768743e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e5478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e60204261736520776569676874203d2033332e333320c2b573a420436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e33373520c2b573342053746174652072656164733a5020092d2043616e646964617465732e6c656e28293820092d2043616e646964617465732c20092d204d656d626572733420092d2052756e6e65727355706420092d205b4163636f756e7442616c616e63652877686f295d38205374617465207772697465733a6420092d205b4163636f756e7442616c616e63652877686f295d3820092d2043616e64696461746573302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e679851012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e24203c7765696768743e7820496620612063616e6469646174652069732072656e6f756e63696e673a60200942617365207765696768743a2031372e323820c2b573a82009436f6d706c6578697479206f662063616e6469646174655f636f756e743a20302e32333520c2b57338200953746174652072656164733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d3c20095374617465207772697465733a3c2009092d2043616e64696461746573982009092d205b4163636f756e7442616c616e63652877686f292028756e72657365727665295d64204966206d656d6265722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733ad02009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d642049662072756e6e65722069732072656e6f756e63696e673a60200942617365207765696768743a2034362e323520c2b57338200953746174652072656164733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d3c20095374617465207772697465733aac2009092d2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572292c8c2009092d205b4163636f756e74446174612877686f292028756e72657365727665295d000d0120576569676874206e6f74653a205468652063616c6c20696e746f206368616e67654d656d62657273206e65656420746f206265206163636f756e74656420666f722e28203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c485d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e6820496620776520686176652061207265706c6163656d656e743a6820092d2042617365207765696768743a2035302e393320c2b5734020092d2053746174652072656164733a502009092d2052756e6e65727355702e6c656e2829cc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d626572294420092d205374617465207772697465733acc2009092d204d656d626572732c2052756e6e6572735570202872656d6f76655f616e645f7265706c6163655f6d656d62657229650120456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e642077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1061012041206e6577207465726d2077697468205b6e65775f6d656d626572735d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e20746865590120656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f726101207468697320707572706f73652e204120604e65775465726d285b5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e6420736c617368656420616e645901206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f20626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc420604e65775465726d285b5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e304d656d6265724b69636b656404244163636f756e744964084d012041205b6d656d6265725d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a82041205b6d656d6265725d206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c080901204120766f74657220776173207265706f7274656420776974682074686520746865207265706f7274206265696e67207375636365737366756c206f72206e6f742e6c205b766f7465722c207265706f727465722c20737563636573735d183443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000204d6f64756c654964384c6f636b4964656e74696669657220706872656c656374004430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3052756e6e65725375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e54496e76616c696443616e646964617465436f756e7404e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e0838416c72656164795570646174656404c82046696e616c2068696e74206d7573742062652075706461746564206f6e6c79206f6e636520696e2074686520626c6f636b1c42616448696e7404902046696e616c697a6564206865696768742061626f766520626c6f636b206e756d6265721c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d0204e657720617574686f726974792073657420686173206265656e206170706c6965642e205b617574686f726974795f7365745d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e20547265617375727901205472656173757279143450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e10546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c59012054697073207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01203470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173d420605469705265706f72744465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e27c4202d20446252656164733a2060526561736f6e73602c206054697073602c206077686f206163636f756e742064617461609c202d2044625772697465733a206054697073602c206077686f206163636f756e74206461746160302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c75653042616c616e63654f663c543e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c75653042616c616e63654f663c543e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e012c2050726f706f736564043450726f706f73616c496e646578047c204e65772070726f706f73616c2e205b70726f706f73616c5f696e6465785d205370656e64696e67041c42616c616e6365043501205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205b6275646765745f72656d61696e696e675d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e74496404150120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795d2052656a6563746564083450726f706f73616c496e6465781c42616c616e6365041d0120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205b70726f706f73616c5f696e6465782c20736c61736865645d144275726e74041c42616c616e636504a820536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205b6275726e5d20526f6c6c6f766572041c42616c616e6365047d01205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e205b6275646765745f72656d61696e696e675d1c4465706f736974041c42616c616e636504a820536f6d652066756e64732068617665206265656e206465706f73697465642e205b6465706f7369745d184e657754697004104861736804c42041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205b7469705f686173685d28546970436c6f73696e670410486173680409012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205b7469705f686173685d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504e82041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205b7469705f686173682c2077686f2c207061796f75745d3054697052657472616374656404104861736804c02041207469702073756767657374696f6e20686173206265656e207265747261637465642e205b7469705f686173685d243050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e5c5469705265706f72744465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e204d6f64756c654964204d6f64756c6549642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e2070496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e50496e76616c696450726f706f73616c496e646578046c204e6f2070726f706f73616c206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e24436f6e7472616374730124436f6e747261637473143c43757272656e745363686564756c650100205363686564756c6535020000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a1070000000000e0f7050400000000e024370500000000e0f705040000000020a107000000000020a107000000000080f0fa020000000000e1f505000000000400000000000100100000000040000000200000000000080004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f64650410636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e011830496e7374616e74696174656408244163636f756e744964244163636f756e74496404250120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205b6f776e65722c20636f6e74726163745d1c4576696374656408244163636f756e74496410626f6f6c1ce420436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e58205b636f6e74726163742c20746f6d6273746f6e655d042024202320506172616d73000d01202d2060636f6e7472616374603a20604163636f756e744964603a20546865206163636f756e74204944206f6620746865206576696374656420636f6e74726163742e3501202d2060746f6d6273746f6e65603a2060626f6f6c603a205472756520696620746865206576696374656420636f6e7472616374206c65667420626568696e64206120746f6d6273746f6e652e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524c020526573746f726174696f6e20666f72206120636f6e747261637420686173206265656e207375636365737366756c2ea4205b646f6e6f722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655d042024202320506172616d7300f4202d2060646f6e6f72603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e7472616374ec202d206064657374603a20604163636f756e744964603a204163636f756e74204944206f662074686520726573746f72656420636f6e7472616374e8202d2060636f64655f68617368603a206048617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163741901202d206072656e745f616c6c6f77616e63653a206042616c616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e747261637428436f646553746f72656404104861736808b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e30205b636f64655f686173685d3c5363686564756c6555706461746564040c75333204c820547269676765726564207768656e207468652063757272656e74205b7363686564756c655d20697320757064617465642e44436f6e7472616374457865637574696f6e08244163636f756e7449641c5665633c75383e08090120416e206576656e74206465706f73697465642075706f6e20657865637574696f6e206f66206120636f6e74726163742066726f6d20746865206163636f756e742e40205b6163636f756e742c20646174615d204c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000a0acb903000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c753332100800000018710120412073697a65206f666673657420666f7220616e20636f6e74726163742e2041206a7573742063726561746564206163636f756e74207769746820756e746f75636865642073746f726167652077696c6c20686176652074686174e0206d756368206f662073746f726167652066726f6d20746865207065727370656374697665206f66207468652073746174652072656e742e006101205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465646501206279206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f2073617665182072656e742e2c52656e74427974654665653042616c616e63654f663c543e4000286bee000000000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e400010a5d4e800000000000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e4858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e2c4e6f7443616c6c61626c650831012054686520636f6e74726163742074686174207761732063616c6c656420697320656974686572206e6f20636f6e747261637420617420616c6c20286120706c61696e206163636f756e74294c206f72206973206120746f6d6273746f6e652e30436f6465546f6f4c617267650455012054686520636f646520737570706c69656420746f20607075745f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468652063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c7404842041207375646f206a75737420746f6f6b20706c6163652e205b726573756c745d284b65794368616e67656404244163636f756e74496404f820546865205b7375646f65725d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04842041207375646f206a75737420746f6f6b20706c6163652e205b726573756c745d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e7420496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000001831012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e2063757272656e742073657373696f6e2e0011012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c64d02066616c6c20726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e010120546865206964656120697320746f206669727374207761697420666f72207468652076616c696461746f727320746f2070726f64756365206120626c6f636b390120696e207468652063757272656e742073657373696f6e2c20736f20746861742074686520686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e64657838543a3a56616c696461746f7249640c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265282c2023203c7765696768743e2101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020616e642045206973206c656e677468206f66b4202020604865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f6164647265737360008c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f72697479496404fc2041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205b617574686f726974795f69645d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0435012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205b6f66666c696e655d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e48417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e636573101c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e4044656665727265644f6666656e6365730100645665633c44656665727265644f6666656e63654f663c543e3e0400086501204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d6974746564442061742061206c617465722074696d652e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e63650c104b696e64384f706171756554696d65536c6f7410626f6f6c10550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e644d0120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c6173741d0120656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c736529206c205b6b696e642c2074696d65736c6f742c206170706c6965645d2e000028486973746f726963616c00000000006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640409012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205b77686f5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e6365040d012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205b77686f2c206465706f7369745d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e63650405012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205b77686f2c206465706f7369745d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e64657804fc2041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205b77686f2c207265676973747261725f696e6465785d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804e82041206a756467656d656e74207265717565737420776173207265747261637465642e205b77686f2c207265676973747261725f696e6465785d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780401012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205b7461726765742c207265676973747261725f696e6465785d3852656769737472617241646465640438526567697374726172496e64657804a4204120726567697374726172207761732061646465642e205b7265676973747261725f696e6465785d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e6365044d012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205b7375622c206d61696e2c206465706f7369745d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e54205b7375622c206d61696e2c206465706f7369745d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652101206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205b7375622c206d61696e2c206465706f7369745d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e1c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e02054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205b666f756e6465725d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729420697320746865207365636f6e642e205b63616e6469646174655f69642c206f666665725d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647101207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205b63616e6469646174655f69642c206f666665722c20766f756368696e675d244175746f556e62696404244163636f756e7449640411012041205b63616e6469646174655d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404b82041205b63616e6469646174655d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640401012041205b63616e6469646174655d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865cc20626174636820696e2066756c6c20697320746865207365636f6e642e205b7072696d6172792c2063616e646964617465735d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04c820412073757370656e646564206d656d62657220686173206265656e206a75646765642e205b77686f2c206a75646765645d4843616e64696461746553757370656e64656404244163636f756e74496404842041205b63616e6469646174655d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404782041205b6d656d6265725d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e744964047c2041205b6d656d6265725d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c0204120766f746520686173206265656e20706c61636564205b63616e6469646174652c20766f7465722c20766f74655d30446566656e646572566f746508244163636f756e74496410626f6f6c04f0204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205b766f7465722c20766f74655d344e65774d61784d656d62657273040c75333204982041206e6577205b6d61785d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048020536f636965747920697320756e666f756e6465642e205b666f756e6465725d1c4465706f736974041c42616c616e636504f020536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205b76616c75655d1c4043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e204d6f64756c654964204d6f64756c6549642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404d42041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205b6163636f756e745d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e40205b6c6f73742c20726573637565725d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e60205b6c6f73742c20726573637565722c2073656e6465725d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e40205b6c6f73742c20726573637565725d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e40205b6c6f73742c20726573637565725d3c5265636f7665727952656d6f76656404244163636f756e74496404d82041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205b6163636f756e745d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000004550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000469012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc601000000000000000000041d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f736564204f766572666c6f77049c2054686572652077617320616e206f766572666c6f7720696e20612063616c63756c6174696f6e30416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f766572791c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740044bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d34202d2042656e63686d61726b3aec20202020202d20556e6c6f636b65643a2034382e3736202b202e303438202a206c20c2b57320286d696e2073717561726520616e616c7973697329e420202020202d204c6f636b65643a2034342e3433202b202e323834202a206c20c2b57320286d696e2073717561726520616e616c7973697329ad01202d205573696e6720353020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e6465722074686973206d6f64756c652e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e7434202d2042656e63686d61726b3ae820202020202d20556e6c6f636b65643a2034342e33202b202e323934202a206c20c2b57320286d696e2073717561726520616e616c7973697329e420202020202d204c6f636b65643a2034382e3136202b202e313033202a206c20c2b57320286d696e2073717561726520616e616c7973697329ad01202d205573696e6720353020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e486820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745de0202d2042656e63686d61726b3a203130302e33202b202e333635202a206c20c2b57320286d696e2073717561726520616e616c7973697329b101202d205573696e672031303020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e4c6420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74e0202d2042656e63686d61726b3a203130302e33202b202e333635202a206c20c2b57320286d696e2073717561726520616e616c7973697329b101202d205573696e672031303020c2b5732066697865642e20417373756d696e67206c657373207468616e203530206c6f636b73206f6e20616e7920757365722c20656c7365207765206d61792077616e7420666163746f7220696e206e756d626572206f66206c6f636b732e302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e205468651d012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e2050205b6163636f756e742c20756e7665737465645d4056657374696e67436f6d706c6574656404244163636f756e74496404150120416e205b6163636f756e745d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff28623000000000000000000041d0120546865206d696e696d756d20616d6f756e7420746f206265207472616e7366657272656420746f206372656174652061206e65772076657374696e67207363686564756c652e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d6265726d015665633c4f7074696f6e3c5363686564756c65643c3c542061732054726169743e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c753332048c205363686564756c656420736f6d65207461736b2e205b7768656e2c20696e6465785d2043616e63656c6564082c426c6f636b4e756d6265720c75333204882043616e63656c656420736f6d65207461736b2e205b7768656e2c20696e6465785d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404a4204469737061746368656420736f6d65207461736b2e205b7461736b2c2069642c20726573756c745d000c404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c384661696c6564546f43616e63656c0488204661696c656420746f2063616e63656c2061207363686564756c65642063616c6c5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e7449644501285665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449643d01285665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722c490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404e420412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205b726573756c745d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e610120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804490120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205b7265616c2c2070726f78792c2063616c6c5f686173685d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000004bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e284d617850726f786965730c75313608200004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c7533321020000000047820604d617850656e64696e6760206d6574616461746120736861646f772e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000004ac2060416e6e6f756e63656d656e744465706f7369744261736560206d6574616461746120736861646f772e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000004b42060416e6e6f756e63656d656e744465706f736974466163746f7260206d6574616461746120736861646f772e1c1c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c5c426f783c3c542061732054726169743e3a3a43616c6c3e44550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d2042617365205765696768743a2033332e3732202b20302e303032202a205a20c2b57348202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874cc590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743ae020202020202d204372656174653a2020202020202020202034312e3839202b20302e313138202a2053202b202e303032202a205a20c2b573e020202020202d2043726561746520772f2053746f72653a2035332e3537202b20302e313139202a2053202b202e303033202a205a20c2b573e020202020202d20417070726f76653a20202020202020202033312e3339202b20302e313336202a2053202b202e303032202a205a20c2b573e020202020202d20436f6d706c6574653a202020202020202033392e3934202b20302e323620202a2053202b202e303032202a205a20c2b57334202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f776569676874185765696768749c590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a8020202020202d204372656174653a2034342e3731202b20302e303838202a20538420202020202d20417070726f76653a2033312e3438202b20302e313136202a205334202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6c59012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d84202d2042617365205765696768743a2033362e3037202b20302e313234202a205334202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c486173680415012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368047d012041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e205b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740451012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680459012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685d0038404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e30576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74'; diff --git a/packages/types-support/src/metadata/v11/bizinikiwi-json.json b/packages/types-support/src/metadata/v11/bizinikiwi-json.json new file mode 100644 index 0000000..2bf1899 --- /dev/null +++ b/packages/types-support/src/metadata/v11/bizinikiwi-json.json @@ -0,0 +1,11686 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v11": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountInfo", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": "ExtrinsicsWeight" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "ExtrinsicsRoot", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Extrinsics root of the current block, also part of the block header." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": "LastRuntimeUpgradeInfo" + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": "Phase" + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [ + { + "name": "_ratio", + "type": "Perbill" + } + ], + "docs": [ + " A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark.", + "", + " # ", + " - `O(1)`", + " - Base Weight: 0.665 µs, independent of remark length.", + " - No DB operations.", + " # " + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap.", + "", + " # ", + " - `O(1)`", + " - 1 storage write.", + " - Base Weight: 1.405 µs", + " - 1 write to HEAP_PAGES", + " # " + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code.", + "", + " # ", + " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", + " - 1 storage write (codec `O(C)`).", + " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).", + " - 1 event.", + " The weight of this function is dependent on the runtime, but generally this is very expensive.", + " We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_code_without_checks", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code without doing any checks of the given `code`.", + "", + " # ", + " - `O(C)` where `C` length of `code`", + " - 1 storage write (codec `O(C)`).", + " - 1 event.", + " The weight of this function is dependent on the runtime. We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_changes_trie_config", + "args": [ + { + "name": "changes_trie_config", + "type": "Option" + } + ], + "docs": [ + " Set the new changes trie configuration.", + "", + " # ", + " - `O(1)`", + " - 1 storage write or delete (codec `O(1)`).", + " - 1 call to `deposit_log`: Uses `append` API, so O(1)", + " - Base Weight: 7.218 µs", + " - DB Weight:", + " - Writes: Changes Trie, System Digest", + " # " + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage.", + "", + " # ", + " - `O(I)` where `I` length of `items`", + " - `I` storage writes (`O(1)`).", + " - Base Weight: 0.568 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage.", + "", + " # ", + " - `O(IK)` where `I` length of `keys` and `K` length of one key", + " - `I` storage deletions.", + " - Base Weight: .378 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + }, + { + "name": "_subkeys", + "type": "u32" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix.", + "", + " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", + " the prefix we are removing to accurately calculate the weight of this function.", + "", + " # ", + " - `O(P)` where `P` amount of keys with prefix `prefix`", + " - `P` storage deletions.", + " - Base Weight: 0.834 * P µs", + " - Writes: Number of subkeys + 1", + " # " + ] + }, + { + "name": "suicide", + "args": [], + "docs": [ + " Kill the sending account, assuming there are no references outstanding and the composite", + " data is equal to its default value.", + "", + " # ", + " - `O(1)`", + " - 1 storage read and deletion.", + " --------------------", + " Base Weight: 8.626 µs", + " No DB Read or Write operations because caller is already in overlay", + " # " + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully. [info]" + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed. [error, info]" + ] + }, + { + "name": "CodeUpdated", + "args": [], + "docs": [ + " `:code` was updated." + ] + }, + { + "name": "NewAccount", + "args": [ + "AccountId" + ], + "docs": [ + " A new [account] was created." + ] + }, + { + "name": "KilledAccount", + "args": [ + "AccountId" + ], + "docs": [ + " An [account] was reaped." + ] + } + ], + "constants": [ + { + "name": "BlockHashCount", + "type": "BlockNumber", + "value": "0x60090000", + "docs": [ + " The maximum number of blocks to allow in mortal eras." + ] + }, + { + "name": "MaximumBlockWeight", + "type": "Weight", + "value": "0x00204aa9d1010000", + "docs": [ + " The maximum weight of a block." + ] + }, + { + "name": "DbWeight", + "type": "RuntimeDbWeight", + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "BlockExecutionWeight", + "type": "Weight", + "value": "0x00f2052a01000000", + "docs": [ + " The base weight of executing a block, independent of the transactions in the block." + ] + }, + { + "name": "ExtrinsicBaseWeight", + "type": "Weight", + "value": "0x4059730700000000", + "docs": [ + " The base weight of an Extrinsic in the block, independent of the of extrinsic being executed." + ] + }, + { + "name": "MaximumBlockLength", + "type": "u32", + "value": "0x00005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + } + ], + "errors": [ + { + "name": "InvalidSpecName", + "docs": [ + " The name of specification does not match between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "docs": [ + " The specification version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "docs": [ + " Failed to extract the runtime version from the new runtime.", + "", + " Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "docs": [ + " Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "docs": [ + " There is a non-zero reference count preventing the account from being purged." + ] + } + ] + }, + { + "name": "Utility", + "storage": null, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin.", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Trait::BaseCallFilter`).", + "", + " # ", + " - Base weight: 14.39 + .987 * c µs", + " - Plus the sum of the weights of the `calls`.", + " - Plus one additional event. (repeat read/write)", + " # ", + "", + " This will return `Ok` in all circumstances. To determine the success of the batch, an", + " event is deposited. If a call failed and the batch was interrupted, then the", + " `BatchInterrupted` event is deposited, along with the number of successful calls made", + " and the error of the failed call. If all were successful, then the `BatchCompleted`", + " event is deposited." + ] + }, + { + "name": "as_derivative", + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through an indexed pseudonym of the sender.", + "", + " Filter from origin are passed along. The call will be dispatched with an origin which", + " use the same filter as the origin of this call.", + "", + " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + " because you expect `proxy` to have been used prior in the call stack and you do not want", + " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + " in the Multisig pallet instead.", + "", + " NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + " The dispatch origin for this call must be _Signed_." + ] + } + ], + "events": [ + { + "name": "BatchInterrupted", + "args": [ + "u32", + "DispatchError" + ], + "docs": [ + " Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + " well as the error. [index, error]" + ] + }, + { + "name": "BatchCompleted", + "args": [], + "docs": [ + " Batch of dispatches completed fully with no error." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": "NextConfigDescriptor" + }, + "fallback": "0x00", + "docs": [ + " Next epoch configuration, if changed." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported.", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + } + ], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0xc800000000000000", + "docs": [ + " The number of **slots** that an epoch takes. We couple sessions to", + " epochs, i.e. we start a new session once the new epoch begins." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`.", + "", + " # ", + " - `O(T)` where `T` complexity of `on_timestamp_set`", + " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)", + " - 1 event handler `on_timestamp_set` `O(T)`.", + " # " + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected* period", + " that the block production apparatus provides. Your chosen consensus system will generally", + " work with this to determine a sensible block time. e.g. For Aura, it will be double this", + " period on default settings." + ] + } + ], + "errors": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [], + "errors": [ + { + "name": "InvalidUncleParent", + "docs": [ + " The uncle parent not in the chain." + ] + }, + { + "name": "UnclesAlreadySet", + "docs": [ + " Uncles already set in the block." + ] + }, + { + "name": "TooManyUncles", + "docs": [ + " Too many uncles." + ] + }, + { + "name": "GenesisUncle", + "docs": [ + " The uncle is genesis." + ] + }, + { + "name": "TooHighUncle", + "docs": [ + " The uncle is too high in chain." + ] + }, + { + "name": "UncleAlreadyIncluded", + "docs": [ + " The uncle is already included." + ] + }, + { + "name": "OldUncle", + "docs": [ + " The uncle isn't recent enough to be included." + ] + } + ] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountIndex", + "value": "(AccountId,BalanceOf,bool)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an previously unassigned index.", + "", + " Payment: `Deposit` is reserved from the sender account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be claimed. This must not be in use.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - Base Weight: 28.69 µs", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an index already owned by the sender to another account. The balance reservation", + " is effectively transferred to the new account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be re-assigned. This must be owned by the sender.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One transfer operation.", + " - One event.", + " -------------------", + " - Base Weight: 33.74 µs", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (recipient)", + " - Writes: Indices Accounts, System Account (recipient)", + " # " + ] + }, + { + "name": "free", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Free up an index owned by the sender.", + "", + " Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + " - `index`: the index to be freed. This must be owned by the sender.", + "", + " Emits `IndexFreed` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - Base Weight: 25.53 µs", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + }, + { + "name": "freeze", + "type": "bool" + } + ], + "docs": [ + " Force an index to an account. This doesn't require a deposit. If the index is already", + " held, then any deposit is reimbursed to its current owner.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `index`: the index to be (re-)assigned.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one reserve operation.", + " - One event.", + " -------------------", + " - Base Weight: 26.83 µs", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (original owner)", + " - Writes: Indices Accounts, System Account (original owner)", + " # " + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Freeze an index so it will always point to the sender account. This consumes the deposit.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must have a", + " non-frozen account `index`.", + "", + " - `index`: the index to be frozen in place.", + "", + " Emits `IndexFrozen` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one slash operation.", + " - One event.", + " -------------------", + " - Base Weight: 30.86 µs", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + } + ], + "events": [ + { + "name": "IndexAssigned", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A account index was assigned. [who, index]" + ] + }, + { + "name": "IndexFreed", + "args": [ + "AccountIndex" + ], + "docs": [ + " A account index has been freed up (unassigned). [index]" + ] + }, + { + "name": "IndexFrozen", + "args": [ + "AccountIndex", + "AccountId" + ], + "docs": [ + " A account index has been frozen to its current account ID. [who, index]" + ] + } + ], + "constants": [ + { + "name": "Deposit", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountData", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The balance of an account.", + "", + " NOTE: This is only used in the case that this module is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " This is set to v2.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for", + " input config types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", + " check that the transfer will not kill the origin account.", + " ---------------------------------", + " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", + " - DB Weight: 1 Read and 1 Write to destination account", + " - Origin account is already in memory, so no DB operations for them.", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`frame_system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " ---------------------", + " - Base Weight:", + " - Creating: 27.56 µs", + " - Killing: 35.11 µs", + " - DB Weight: 1 Read, 1 Write to `who`", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified.", + " # ", + " - Same as transfer, but additional read and write because the source account is", + " not assumed to be in the overlay.", + " # " + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Module.html#method.transfer", + " # ", + " - Cheaper than transfer because account cannot be killed.", + " - Base Weight: 51.4 µs", + " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", + " #" + ] + } + ], + "events": [ + { + "name": "Endowed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was created with some free balance. [account, free_balance]" + ] + }, + { + "name": "DustLost", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was removed whose balance was non-zero but below ExistentialDeposit,", + " resulting in an outright loss. [account, balance]" + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer succeeded. [from, to, value]" + ] + }, + { + "name": "BalanceSet", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " A balance was set by root. [who, free, reserved]" + ] + }, + { + "name": "Deposit", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some amount was deposited (e.g. for transaction fees). [who, deposit]" + ] + }, + { + "name": "Reserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was reserved (moved from free to reserved). [who, value]" + ] + }, + { + "name": "Unreserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was unreserved (moved from reserved to free). [who, value]" + ] + }, + { + "name": "ReserveRepatriated", + "args": [ + "AccountId", + "AccountId", + "Balance", + "BalanceStatus" + ], + "docs": [ + " Some balance was moved from the reserve of the first account to the second account.", + " Final argument indicates the destination balance type.", + " [from, to, balance, destination_status]" + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + } + ], + "errors": [ + { + "name": "VestingBalance", + "docs": [ + " Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "docs": [ + " Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "Overflow", + "docs": [ + " Got an overflow after adding" + ] + }, + { + "name": "InsufficientBalance", + "docs": [ + " Balance too low to send value" + ] + }, + { + "name": "ExistentialDeposit", + "docs": [ + " Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "docs": [ + " Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "docs": [ + " Beneficiary account must pre-exist" + ] + } + ] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "WeightToFee", + "type": "Vec", + "value": "0x0401000000000000000000000000000000000000000001", + "docs": [ + " The polynomial that is applied in order to derive fee from weight." + ] + } + ], + "errors": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "HistoryDepth", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Information is kept for eras in `[current_era - history_depth; current_era]`.", + "", + " Must be more than the number of eras delayed by session otherwise. I.e. active era must", + " always be in history. I.e. `active_era > current_era - history_depth` must be", + " guaranteed." + ] + }, + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Nominations", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": "ActiveEraInfo" + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era currently rewarded.", + " Validator set of this era must be equal to `SessionInterface::validators`." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "ValidatorPrefs", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "EraRewardPoints", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "SnapshotValidators", + "modifier": "Optional", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Snapshot of validators at the beginning of the current election window. This should only", + " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`." + ] + }, + { + "name": "SnapshotNominators", + "modifier": "Optional", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Snapshot of nominators at the beginning of the current election window. This should only", + " have a value when [`EraElectionStatus`] == `ElectionStatus::Open(_)`." + ] + }, + { + "name": "QueuedElected", + "modifier": "Optional", + "type": { + "plain": "ElectionResult" + }, + "fallback": "0x00", + "docs": [ + " The next validator set. At the end of an era, if this is available (potentially from the", + " result of an offchain worker), it is immediately used. Otherwise, the on-chain election", + " is executed." + ] + }, + { + "name": "QueuedScore", + "modifier": "Optional", + "type": { + "plain": "ElectionScore" + }, + "fallback": "0x00", + "docs": [ + " The score of the current [`QueuedElected`]." + ] + }, + { + "name": "EraElectionStatus", + "modifier": "Default", + "type": { + "plain": "ElectionStatus" + }, + "fallback": "0x00", + "docs": [ + " Flag to control the execution of the offchain election. When `Open(_)`, we accept", + " solutions to be submitted." + ] + }, + { + "name": "IsCurrentSessionFinal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the current **planned** session is final. Note that this does not take era", + " forcing into account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x03", + "docs": [ + " True if network has been upgraded to this version.", + " Storage version of the pallet.", + "", + " This is set to v3.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + " unless the `origin` falls below _existential deposit_ and gets removed as dust.", + " ------------------", + " Base Weight: 67.87 µs", + " DB Weight:", + " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks", + " - Write: Bonded, Payee, [Origin Account], Locks, Ledger", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", + " that can be added.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller and", + " it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " - One DB entry.", + " ------------", + " Base Weight: 54.88 µs", + " DB Weight:", + " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks", + " - Write: [Origin Account], Locks, Ledger", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " Emits `Unbonded`.", + "", + " See also [`Call::withdraw_unbonded`].", + "", + " # ", + " - Independent of the arguments. Limited but potentially exploitable complexity.", + " - Contains a limited number of reads.", + " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", + " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", + " The only way to clean the aforementioned storage item is also user-controlled via", + " `withdraw_unbonded`.", + " - One DB entry.", + " ----------", + " Base Weight: 50.34 µs", + " DB Weight:", + " - Read: Era Election Status, Ledger, Current Era, Locks, [Origin Account]", + " - Write: [Origin Account], Locks, Ledger", + " " + ] + }, + { + "name": "withdraw_unbonded", + "args": [ + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " Emits `Withdrawn`.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", + " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", + " indirectly user-controlled. See [`unbond`] for more detail.", + " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", + " - Writes are limited to the `origin` account key.", + " ---------------", + " Complexity O(S) where S is the number of slashing spans to remove", + " Base Weight:", + " Update: 50.52 + .028 * S µs", + " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]", + " - Writes: [Origin Account], Locks, Ledger", + " Kill: 79.41 + 2.366 * S µs", + " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin Account], Locks", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, [Origin Account], Locks", + " - Writes Each: SpanSlash * S", + " NOTE: Weight annotation is the kill scenario, we refund otherwise.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " -----------", + " Base Weight: 17.13 µs", + " DB Weight:", + " - Read: Era Election Status, Ledger", + " - Write: Nominators, Validators", + " # " + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era. This can only be called when", + " [`EraElectionStatus`] is `Closed`.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets` (N)", + " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", + " - Both the reads and writes follow a similar pattern.", + " ---------", + " Base Weight: 22.34 + .36 * N µs", + " where N is the number of targets", + " DB Weight:", + " - Reads: Era Election Status, Ledger, Current Era", + " - Writes: Validators, Nominators", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " --------", + " Base Weight: 16.53 µs", + " DB Weight:", + " - Read: EraElectionStatus, Ledger", + " - Write: Validators, Nominators", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ---------", + " - Base Weight: 11.33 µs", + " - DB Weight:", + " - Read: Ledger", + " - Write: Payee", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ----------", + " Base Weight: 25.22 µs", + " DB Weight:", + " - Read: Bonded, Ledger New Controller, Ledger Old Controller", + " - Write: Bonded, Ledger New Controller, Ledger Old Controller", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " Sets the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Base Weight: 1.717 µs", + " Write: Validator Count", + " # " + ] + }, + { + "name": "increase_validator_count", + "args": [ + { + "name": "additional", + "type": "Compact" + } + ], + "docs": [ + " Increments the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Base Weight: 1.717 µs", + " Read/Write: Validator Count", + " # " + ] + }, + { + "name": "scale_validator_count", + "args": [ + { + "name": "factor", + "type": "Percent" + } + ], + "docs": [ + " Scale up the ideal number of validators by a factor.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Base Weight: 1.717 µs", + " Read/Write: Validator Count", + " # " + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - No arguments.", + " - Base Weight: 1.857 µs", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - No arguments.", + " - Base Weight: 1.959 µs", + " - Write ForceEra", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "validators", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any).", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - O(V)", + " - Base Weight: 2.208 + .006 * V µs", + " - Write: Invulnerables", + " # " + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " O(S) where S is the number of slashing spans to be removed", + " Base Weight: 53.07 + 2.365 * S µs", + " Reads: Bonded, Slashing Spans, Account, Locks", + " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks", + " Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - Base Weight: 2.05 µs", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash.", + "", + " Can be called by the `T::SlashCancelOrigin`.", + "", + " Parameters: era and indices of the slashes for that era to kill.", + "", + " # ", + " Complexity: O(U + S)", + " with U unapplied slashes weighted with U=1000", + " and S is the number of slash indices to be canceled.", + " - Base: 5870 + 34.61 * S µs", + " - Read: Unapplied Slashes", + " - Write: Unapplied Slashes", + " # " + ] + }, + { + "name": "payout_stakers", + "args": [ + { + "name": "validator_stash", + "type": "AccountId" + }, + { + "name": "era", + "type": "EraIndex" + } + ], + "docs": [ + " Pay out all the stakers behind a single validator for a single era.", + "", + " - `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + " - `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + " The origin of this call must be _Signed_. Any account can call this function, even if", + " it is not one of the stakers.", + "", + " This can only be called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", + " - Contains a limited number of reads and writes.", + " -----------", + " N is the Number of payouts for the validator (including the validator)", + " Base Weight:", + " - Reward Destination Staked: 110 + 54.2 * N µs (Median Slopes)", + " - Reward Destination Controller (Creating): 120 + 41.95 * N µs (Median Slopes)", + " DB Weight:", + " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,", + " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)", + " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)", + " - Write Each: System Account, Locks, Ledger (3 items)", + " # " + ] + }, + { + "name": "rebond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Rebond a portion of the stash scheduled to be unlocked.", + "", + " The dispatch origin must be signed by the controller, and it can be only called when", + " [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Time complexity: O(L), where L is unlocking chunks", + " - Bounded by `MAX_UNLOCKING_CHUNKS`.", + " - Storage changes: Can't increase storage, only decrease it.", + " ---------------", + " - Base Weight: 34.51 µs * .048 L µs", + " - DB Weight:", + " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]", + " - Writes: [Origin Account], Locks, Ledger", + " # " + ] + }, + { + "name": "set_history_depth", + "args": [ + { + "name": "new_history_depth", + "type": "Compact" + }, + { + "name": "_era_items_deleted", + "type": "Compact" + } + ], + "docs": [ + " Set `HistoryDepth` value. This function will delete any history information", + " when `HistoryDepth` is reduced.", + "", + " Parameters:", + " - `new_history_depth`: The new history depth you would like to set.", + " - `era_items_deleted`: The number of items that will be deleted by this dispatch.", + " This should report all the storage items that will be deleted by clearing old", + " era history. Needed to report an accurate weight for the dispatch. Trusted by", + " `Root` to report an accurate number.", + "", + " Origin must be root.", + "", + " # ", + " - E: Number of history depths removed, i.e. 10 -> 7 = 3", + " - Base Weight: 29.13 * E µs", + " - DB Weight:", + " - Reads: Current Era, History Depth", + " - Writes: History Depth", + " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", + " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex", + " # " + ] + }, + { + "name": "reap_stash", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove all data structure concerning a staker/stash once its balance is zero.", + " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", + " and the target `stash` must have no funds left.", + "", + " This can be called from any origin.", + "", + " - `stash`: The stash account to reap. Its balance must be zero.", + "", + " # ", + " Complexity: O(S) where S is the number of slashing spans on the account.", + " Base Weight: 75.94 + 2.396 * S µs", + " DB Weight:", + " - Reads: Stash Account, Bonded, Slashing Spans, Locks", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks", + " - Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "submit_election_solution", + "args": [ + { + "name": "winners", + "type": "Vec" + }, + { + "name": "compact", + "type": "CompactAssignments" + }, + { + "name": "score", + "type": "ElectionScore" + }, + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "size", + "type": "ElectionSize" + } + ], + "docs": [ + " Submit an election result to the chain. If the solution:", + "", + " 1. is valid.", + " 2. has a better score than a potentially existing solution on chain.", + "", + " then, it will be _put_ on chain.", + "", + " A solution consists of two pieces of data:", + "", + " 1. `winners`: a flat vector of all the winners of the round.", + " 2. `assignments`: the compact version of an assignment vector that encodes the edge", + " weights.", + "", + " Both of which may be computed using _phragmen_, or any other algorithm.", + "", + " Additionally, the submitter must provide:", + "", + " - The `score` that they claim their solution has.", + "", + " Both validators and nominators will be represented by indices in the solution. The", + " indices should respect the corresponding types ([`ValidatorIndex`] and", + " [`NominatorIndex`]). Moreover, they should be valid when used to index into", + " [`SnapshotValidators`] and [`SnapshotNominators`]. Any invalid index will cause the", + " solution to be rejected. These two storage items are set during the election window and", + " may be used to determine the indices.", + "", + " A solution is valid if:", + "", + " 0. It is submitted when [`EraElectionStatus`] is `Open`.", + " 1. Its claimed score is equal to the score computed on-chain.", + " 2. Presents the correct number of winners.", + " 3. All indexes must be value according to the snapshot vectors. All edge values must", + " also be correct and should not overflow the granularity of the ratio type (i.e. 256", + " or billion).", + " 4. For each edge, all targets are actually nominated by the voter.", + " 5. Has correct self-votes.", + "", + " A solutions score is consisted of 3 parameters:", + "", + " 1. `min { support.total }` for each support of a winner. This value should be maximized.", + " 2. `sum { support.total }` for each support of a winner. This value should be minimized.", + " 3. `sum { support.total^2 }` for each support of a winner. This value should be", + " minimized (to ensure less variance)", + "", + " # ", + " See `crate::weight` module.", + " # " + ] + }, + { + "name": "submit_election_solution_unsigned", + "args": [ + { + "name": "winners", + "type": "Vec" + }, + { + "name": "compact", + "type": "CompactAssignments" + }, + { + "name": "score", + "type": "ElectionScore" + }, + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "size", + "type": "ElectionSize" + } + ], + "docs": [ + " Unsigned version of `submit_election_solution`.", + "", + " Note that this must pass the [`ValidateUnsigned`] check which only allows transactions", + " from the local node to be included. In other words, only the block author can include a", + " transaction in the block.", + "", + " # ", + " See `crate::weight` module.", + " # " + ] + } + ], + "events": [ + { + "name": "EraPayout", + "args": [ + "EraIndex", + "Balance", + "Balance" + ], + "docs": [ + " The era payout has been set; the first balance is the validator-payout; the second is", + " the remainder from the maximum amount of reward.", + " [era_index, validator_payout, remainder]" + ] + }, + { + "name": "Reward", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The staker has been rewarded by this amount. [stash, amount]" + ] + }, + { + "name": "Slash", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount.", + " [validator, amount]" + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed. [session_index]" + ] + }, + { + "name": "StakingElection", + "args": [ + "ElectionCompute" + ], + "docs": [ + " A new set of stakers was elected with the given [compute]." + ] + }, + { + "name": "SolutionStored", + "args": [ + "ElectionCompute" + ], + "docs": [ + " A new solution for the upcoming election has been stored. [compute]" + ] + }, + { + "name": "Bonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has bonded this amount. [stash, amount]", + "", + " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + " it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has unbonded this amount. [stash, amount]" + ] + }, + { + "name": "Withdrawn", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + " from the unlocking queue. [stash, amount]" + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": "EraIndex", + "value": "0xa8000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration.", + " Set to 0 if slashes should be applied immediately, without opportunity for", + " intervention." + ] + }, + { + "name": "ElectionLookahead", + "type": "BlockNumber", + "value": "0x32000000", + "docs": [ + " The number of blocks before the end of the era from which election submissions are allowed.", + "", + " Setting this to zero will disable the offchain compute and only on-chain seq-phragmen will", + " be used.", + "", + " This is bounded by being within the last session. Hence, setting it to a value more than the", + " length of a session will be pointless." + ] + }, + { + "name": "MaxIterations", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " Maximum number of balancing iterations to run in the offchain submission.", + "", + " If set to 0, balance_solution will not be executed at all." + ] + }, + { + "name": "MinSolutionScoreBump", + "type": "Perbill", + "value": "0x20a10700", + "docs": [ + " The threshold of improvement that should be provided for a new solution to be accepted." + ] + }, + { + "name": "MaxNominatorRewardedPerValidator", + "type": "u32", + "value": "0x40000000", + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim", + " their reward. This used to limit the i/o cost for the nominator payout." + ] + } + ], + "errors": [ + { + "name": "NotController", + "docs": [ + " Not a controller account." + ] + }, + { + "name": "NotStash", + "docs": [ + " Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "docs": [ + " Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "docs": [ + " Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "docs": [ + " Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "docs": [ + " Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "docs": [ + " Slash record index out of bounds." + ] + }, + { + "name": "InsufficientValue", + "docs": [ + " Can not bond with value less than minimum balance." + ] + }, + { + "name": "NoMoreChunks", + "docs": [ + " Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "docs": [ + " Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "docs": [ + " Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "docs": [ + " Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "docs": [ + " Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "docs": [ + " Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "OffchainElectionEarlySubmission", + "docs": [ + " The submitted result is received out of the open window." + ] + }, + { + "name": "OffchainElectionWeakSubmission", + "docs": [ + " The submitted result is not as good as the one stored on chain." + ] + }, + { + "name": "SnapshotUnavailable", + "docs": [ + " The snapshot data of the current window is missing." + ] + }, + { + "name": "OffchainElectionBogusWinnerCount", + "docs": [ + " Incorrect number of winners were presented." + ] + }, + { + "name": "OffchainElectionBogusWinner", + "docs": [ + " One of the submitted winners is not an active candidate on chain (index is out of range", + " in snapshot)." + ] + }, + { + "name": "OffchainElectionBogusCompact", + "docs": [ + " Error while building the assignment type from the compact. This can happen if an index", + " is invalid, or if the weights _overflow_." + ] + }, + { + "name": "OffchainElectionBogusNominator", + "docs": [ + " One of the submitted nominators is not an active nominator on chain." + ] + }, + { + "name": "OffchainElectionBogusNomination", + "docs": [ + " One of the submitted nominators has an edge to which they have not voted on chain." + ] + }, + { + "name": "OffchainElectionSlashedNomination", + "docs": [ + " One of the submitted nominators has an edge which is submitted before the last non-zero", + " slash of the target." + ] + }, + { + "name": "OffchainElectionBogusSelfVote", + "docs": [ + " A self vote must only be originated from a validator to ONLY themselves." + ] + }, + { + "name": "OffchainElectionBogusEdge", + "docs": [ + " The submitted result has unknown edges that are not among the presented winners." + ] + }, + { + "name": "OffchainElectionBogusScore", + "docs": [ + " The claimed score does not match with the one computed from the data." + ] + }, + { + "name": "OffchainElectionBogusElectionSize", + "docs": [ + " The election size is invalid." + ] + }, + { + "name": "CallNotAllowed", + "docs": [ + " The call is not allowed at the given time due to restrictions of election period." + ] + }, + { + "name": "IncorrectHistoryDepth", + "docs": [ + " Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "docs": [ + " Incorrect number of slashing spans provided." + ] + } + ] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ValidatorId", + "value": "Keys", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `keys`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)`", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", + " - DbWrites: `origin account`, `NextKeys`", + " - DbReads per key id: `KeyOwner`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + }, + { + "name": "purge_keys", + "args": [], + "docs": [ + " Removes any session key(s) of the function caller.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)` in number of key types.", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", + " - DbWrites: `NextKeys`, `origin account`", + " - DbWrites per key id: `KeyOwnder`", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the [session_index], not the block", + " number as the type might suggest." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidProof", + "docs": [ + " Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "docs": [ + " No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "docs": [ + " Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "docs": [ + " No keys are associated with this account." + ] + } + ] + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "PropIndex", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "PreimageStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voting", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "Locks", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Accounts for which there are locks in action which may be removed at some point in the", + " future. The value is the block number at which the lock expires and may be removed.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "StorageVersion", + "modifier": "Optional", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " The dispatch origin of this call must be _Signed_ and the sender must", + " have funds to cover the deposit.", + "", + " - `proposal_hash`: The hash of the proposal preimage.", + " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + " Emits `Proposed`.", + "", + " # ", + " - Complexity: `O(1)`", + " - Db reads: `PublicPropCount`, `PublicProps`", + " - Db writes: `PublicPropCount`, `PublicProps`, `DepositOf`", + " # " + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + }, + { + "name": "seconds_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Signals agreement with a particular proposal.", + "", + " The dispatch origin of this call must be _Signed_ and the sender", + " must have funds to cover the deposit, equal to the original deposit.", + "", + " - `proposal`: The index of the proposal to second.", + " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", + " proposal. Extrinsic is weighted according to this value with no refund.", + "", + " # ", + " - Complexity: `O(S)` where S is the number of seconds a proposal already has.", + " - Db reads: `DepositOf`", + " - Db writes: `DepositOf`", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "AccountVote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `ref_index`: The index of the referendum to vote for.", + " - `vote`: The vote configuration.", + "", + " # ", + " - Complexity: `O(R)` where R is the number of referendums the voter has voted on.", + " weight is charged as if maximum votes.", + " - Db reads: `ReferendumInfoOf`, `VotingOf`, `balances locks`", + " - Db writes: `ReferendumInfoOf`, `VotingOf`, `balances locks`", + " # " + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum.", + "", + " The dispatch origin of this call must be `CancellationOrigin`.", + "", + " -`ref_index`: The index of the referendum to cancel.", + "", + " # ", + " - Complexity: `O(1)`.", + " - Db reads: `ReferendumInfoOf`, `Cancellations`", + " - Db writes: `ReferendumInfoOf`, `Cancellations`", + " # " + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum.", + "", + " The dispatch origin of this call must be `ExternalOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " # ", + " - Complexity `O(V)` with V number of vetoers in the blacklist of proposal.", + " Decoding vec of length V. Charged as maximum", + " - Db reads: `NextExternal`, `Blacklist`", + " - Db writes: `NextExternal`", + " # " + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " # ", + " - Complexity: `O(1)`", + " - Db write: `NextExternal`", + " # " + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " # ", + " - Complexity: `O(1)`", + " - Db write: `NextExternal`", + " # " + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " The dispatch of this call must be `FastTrackOrigin`.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `FastTrackVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + " Emits `Started`.", + "", + " # ", + " - Complexity: `O(1)`", + " - Db reads: `NextExternal`, `ReferendumCount`", + " - Db writes: `NextExternal`, `ReferendumCount`, `ReferendumInfoOf`", + " - Base Weight: 30.1 µs", + " # " + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash.", + "", + " The dispatch origin of this call must be `VetoOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + " Emits `Vetoed`.", + "", + " # ", + " - Complexity: `O(V + log(V))` where V is number of `existing vetoers`", + " Performs a binary search on `existing_vetoers` which should not be very large.", + " - Db reads: `NextExternal`, `Blacklist`", + " - Db writes: `NextExternal`, `Blacklist`", + " # " + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `ref_index`: The index of the referendum to cancel.", + "", + " # ", + " - Complexity: `O(1)`.", + " - Db writes: `ReferendumInfoOf`", + " # " + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "which", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Cancel a proposal queued for enactment.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `which`: The index of the referendum to cancel.", + "", + " # ", + " - `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`.", + " - Db reads: `scheduler lookup`, scheduler agenda`", + " - Db writes: `scheduler lookup`, scheduler agenda`", + " # " + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + }, + { + "name": "balance", + "type": "BalanceOf" + } + ], + "docs": [ + " Delegate the voting power (with some given conviction) of the sending account.", + "", + " The balance delegated is locked for as long as it's delegated, and thereafter for the", + " time appropriate for the conviction's lock period.", + "", + " The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + " - `to`: The account whose voting the `target` account's voting power will follow.", + " - `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + " - `balance`: The amount of the account's balance to be used in delegating. This must", + " not be more than the account's current balance.", + "", + " Emits `Delegated`.", + "", + " # ", + " - Complexity: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes.", + " - Db reads: 3*`VotingOf`, `origin account locks`", + " - Db writes: 3*`VotingOf`, `origin account locks`", + " - Db reads per votes: `ReferendumInfoOf`", + " - Db writes per votes: `ReferendumInfoOf`", + " # " + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate the voting power of the sending account.", + "", + " Tokens may be unlocked following once an amount of time consistent with the lock period", + " of the conviction with which the delegation was issued.", + "", + " The dispatch origin of this call must be _Signed_ and the signing account must be", + " currently delegating.", + "", + " Emits `Undelegated`.", + "", + " # ", + " - Complexity: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes.", + " - Db reads: 2*`VotingOf`", + " - Db writes: 2*`VotingOf`", + " - Db reads per votes: `ReferendumInfoOf`", + " - Db writes per votes: `ReferendumInfoOf`", + " # " + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Clears all public proposals.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " # ", + " - `O(1)`.", + " - Db writes: `PublicProps`", + " # " + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " # ", + " - Complexity: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).", + " - Db reads: `Preimages`", + " - Db writes: `Preimages`", + " # " + ] + }, + { + "name": "note_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", + " the preimage has not been uploaded before and matches some imminent proposal,", + " no fee is paid.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " # ", + " - Complexity: `O(E)` with E size of `encoded_proposal` (protected by a required deposit).", + " - Db reads: `Preimages`", + " - Db writes: `Preimages`", + " # " + ] + }, + { + "name": "note_imminent_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "proposal_len_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `proposal_hash`: The preimage hash of a proposal.", + " - `proposal_length_upper_bound`: an upper bound on length of the proposal.", + " Extrinsic is weighted according to this value with no refund.", + "", + " This will only work after `VotingPeriod` blocks from the time that the preimage was", + " noted, if it's the same account doing it. If it's a different account, then it'll only", + " work an additional `EnactmentPeriod` later.", + "", + " Emits `PreimageReaped`.", + "", + " # ", + " - Complexity: `O(D)` where D is length of proposal.", + " - Db reads: `Preimages`, provider account data", + " - Db writes: `Preimages` provider account data", + " # " + ] + }, + { + "name": "unlock", + "args": [ + { + "name": "target", + "type": "AccountId" + } + ], + "docs": [ + " Unlock tokens that have an expired lock.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account to remove the lock on.", + "", + " # ", + " - Complexity `O(R)` with R number of vote of target.", + " - Db reads: `VotingOf`, `balances locks`, `target account`", + " - Db writes: `VotingOf`, `balances locks`, `target account`", + " # " + ] + }, + { + "name": "remove_vote", + "args": [ + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If:", + " - the referendum was cancelled, or", + " - the referendum is ongoing, or", + " - the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + " ...then the vote is removed cleanly and a following call to `unlock` may result in more", + " funds being available.", + "", + " If, however, the referendum has ended and:", + " - it finished corresponding to the vote of the account, and", + " - the account made a standard vote with conviction, and", + " - the lock period of the conviction is not over", + " ...then the lock will be aggregated into the overall account's lock, which may involve", + " *overlocking* (where the two locks are combined into a single lock that is the maximum", + " of both the amount locked and the time is it locked for).", + "", + " The dispatch origin of this call must be _Signed_, and the signer must have a vote", + " registered for referendum `index`.", + "", + " - `index`: The index of referendum of the vote to be removed.", + "", + " # ", + " - `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote.", + " - Db reads: `ReferendumInfoOf`, `VotingOf`", + " - Db writes: `ReferendumInfoOf`, `VotingOf`", + " # " + ] + }, + { + "name": "remove_other_vote", + "args": [ + { + "name": "target", + "type": "AccountId" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If the `target` is equal to the signer, then this function is exactly equivalent to", + " `remove_vote`. If not equal to the signer, then the vote must have expired,", + " either because the referendum was cancelled, because the voter lost the referendum or", + " because the conviction period is over.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + " - `index`: The index of referendum of the vote to be removed.", + "", + " # ", + " - `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote.", + " - Db reads: `ReferendumInfoOf`, `VotingOf`", + " - Db writes: `ReferendumInfoOf`, `VotingOf`", + " # " + ] + }, + { + "name": "enact_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Enact a proposal from a referendum. For now we just make the weight be the maximum." + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account. [proposal_index, deposit]" + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote. [proposal_index, deposit, depositors]" + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun. [ref_index, threshold]" + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum. [ref_index]" + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum. [ref_index]" + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled. [ref_index]" + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "bool" + ], + "docs": [ + " A proposal has been enacted. [ref_index, is_ok]" + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account. [who, target]" + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An [account] has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed. [who, proposal_hash, until]" + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken. [proposal_hash, who, deposit]" + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned).", + " [proposal_hash, provider, deposit]" + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid. [proposal_hash, ref_index]" + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing. [proposal_hash, ref_index]" + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper.", + " [proposal_hash, provider, deposit, reaper]" + ] + }, + { + "name": "Unlocked", + "args": [ + "AccountId" + ], + "docs": [ + " An [account] has been unlocked successfully." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The minimum period of locking and the period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case where", + " they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": "BlockNumber", + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for an emergency referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + }, + { + "name": "MaxVotes", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account." + ] + } + ], + "errors": [ + { + "name": "ValueLow", + "docs": [ + " Value too low" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal does not exist" + ] + }, + { + "name": "BadIndex", + "docs": [ + " Unknown index" + ] + }, + { + "name": "AlreadyCanceled", + "docs": [ + " Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "docs": [ + " Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "docs": [ + " Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "docs": [ + " Invalid hash" + ] + }, + { + "name": "NoProposal", + "docs": [ + " No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "docs": [ + " Identity may not veto a proposal twice" + ] + }, + { + "name": "NotDelegated", + "docs": [ + " Not delegated" + ] + }, + { + "name": "DuplicatePreimage", + "docs": [ + " Preimage already noted" + ] + }, + { + "name": "NotImminent", + "docs": [ + " Not imminent" + ] + }, + { + "name": "TooEarly", + "docs": [ + " Too early" + ] + }, + { + "name": "Imminent", + "docs": [ + " Imminent" + ] + }, + { + "name": "PreimageMissing", + "docs": [ + " Preimage not found" + ] + }, + { + "name": "ReferendumInvalid", + "docs": [ + " Vote given for invalid referendum" + ] + }, + { + "name": "PreimageInvalid", + "docs": [ + " Invalid preimage" + ] + }, + { + "name": "NoneWaiting", + "docs": [ + " No proposals waiting" + ] + }, + { + "name": "NotLocked", + "docs": [ + " The target account does not have a lock." + ] + }, + { + "name": "NotExpired", + "docs": [ + " The lock on the account to be unlocked has not yet expired." + ] + }, + { + "name": "NotVoter", + "docs": [ + " The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "docs": [ + " The account is already delegating." + ] + }, + { + "name": "Overflow", + "docs": [ + " An unexpected integer overflow occurred." + ] + }, + { + "name": "Underflow", + "docs": [ + " An unexpected integer underflow occurred." + ] + }, + { + "name": "InsufficientFunds", + "docs": [ + " Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "docs": [ + " The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "docs": [ + " The account currently has votes attached to it and the operation cannot succeed until", + " these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "docs": [ + " The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "docs": [ + " Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "docs": [ + " Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "docs": [ + " Maximum number of votes reached." + ] + } + ] + }, + { + "name": "Council", + "storage": { + "prefix": "Instance1Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The member who provides the default vote for any other members that do not vote before", + " the timeout. If None, then no member has that privilege." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage.", + " Used for weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " [account, proposal_index, proposal_hash, threshold]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " [account, proposal_hash, voted, yes, no]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " [proposal_hash]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " [proposal_hash]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " [proposal_hash, result]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " [proposal_hash, result]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " [proposal_hash, yes, no]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ] + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "Instance2Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The member who provides the default vote for any other members that do not vote before", + " the timeout. If None, then no member has that privilege." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage.", + " Used for weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " [account, proposal_index, proposal_hash, threshold]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " [account, proposal_hash, voted, yes, no]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " [proposal_hash]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " [proposal_hash]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " [proposal_hash, result]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " [proposal_hash, result]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " [proposal_hash, yes, no]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ] + }, + { + "name": "Elections", + "storage": { + "prefix": "PhragmenElection", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The current elected membership. Sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The current runners_up. Sorted based on low to high merit (worse to best runner)." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash" + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. Sorted based on account-id. A current member or runner-up", + " can never enter this vector and is always implicitly assumed to be a candidate." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election. This can be called to", + " set the initial votes, or update already existing votes.", + "", + " Upon initial voting, `value` units of `who`'s balance is locked and a bond amount is", + " reserved.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + " It is the responsibility of the caller to not place all of their balance into the lock", + " and keep some for further transactions.", + "", + " # ", + " Base weight: 47.93 µs", + " State reads:", + " \t- Candidates.len() + Members.len() + RunnersUp.len()", + " \t- Voting (is_voter)", + " \t- [AccountBalance(who) (unreserve + total_balance)]", + " State writes:", + " \t- Voting", + " \t- Lock", + " \t- [AccountBalance(who) (unreserve -- only when creating a new voter)]", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter. This removes the lock and returns the bond.", + "", + " # ", + " Base weight: 36.8 µs", + " All state access is from do_remove_voter.", + " State reads:", + " \t- Voting", + " \t- [AccountData(who)]", + " State writes:", + " \t- Voting", + " \t- Locks", + " \t- [AccountData(who)]", + " # " + ] + }, + { + "name": "report_defunct_voter", + "args": [ + { + "name": "defunct", + "type": "DefunctVoter" + } + ], + "docs": [ + " Report `target` for being an defunct voter. In case of a valid report, the reporter is", + " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", + " their bond is slashed.", + "", + " A defunct voter is defined to be:", + " - a voter whose current submitted votes are all invalid. i.e. all of them are no", + " longer a candidate nor an active member or a runner-up.", + "", + "", + " The origin must provide the number of current candidates and votes of the reported target", + " for the purpose of accurate weight calculation.", + "", + " # ", + " No Base weight based on min square analysis.", + " Complexity of candidate_count: 1.755 µs", + " Complexity of vote_count: 18.51 µs", + " State reads:", + " \t- Voting(reporter)", + " \t- Candidate.len()", + " \t- Voting(Target)", + " \t- Candidates, Members, RunnersUp (is_defunct_voter)", + " State writes:", + " \t- Lock(reporter || target)", + " \t- [AccountBalance(reporter)] + AccountBalance(target)", + " \t- Voting(reporter || target)", + " Note: the db access is worse with respect to db, which is when the report is correct.", + " # " + ] + }, + { + "name": "submit_candidacy", + "args": [ + { + "name": "candidate_count", + "type": "Compact" + } + ], + "docs": [ + " Submit oneself for candidacy.", + "", + " A candidate will either:", + " - Lose at the end of the term and forfeit their deposit.", + " - Win and become a member. Members will eventually get their stash back.", + " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", + " removed.", + "", + " # ", + " Base weight = 33.33 µs", + " Complexity of candidate_count: 0.375 µs", + " State reads:", + " \t- Candidates.len()", + " \t- Candidates", + " \t- Members", + " \t- RunnersUp", + " \t- [AccountBalance(who)]", + " State writes:", + " \t- [AccountBalance(who)]", + " \t- Candidates", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [ + { + "name": "renouncing", + "type": "Renouncing" + } + ], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + " - `origin` is a candidate and not elected in any set. In this case, the bond is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner-up. In this case, the bond is unreserved, returned and", + " origin is removed as a runner-up.", + " - `origin` is a current member. In this case, the bond is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_voter`], if replacement runners exists, they are immediately used.", + " ", + " If a candidate is renouncing:", + " \tBase weight: 17.28 µs", + " \tComplexity of candidate_count: 0.235 µs", + " \tState reads:", + " \t\t- Candidates", + " \t\t- [AccountBalance(who) (unreserve)]", + " \tState writes:", + " \t\t- Candidates", + " \t\t- [AccountBalance(who) (unreserve)]", + " If member is renouncing:", + " \tBase weight: 46.25 µs", + " \tState reads:", + " \t\t- Members, RunnersUp (remove_and_replace_member),", + " \t\t- [AccountData(who) (unreserve)]", + " \tState writes:", + " \t\t- Members, RunnersUp (remove_and_replace_member),", + " \t\t- [AccountData(who) (unreserve)]", + " If runner is renouncing:", + " \tBase weight: 46.25 µs", + " \tState reads:", + " \t\t- RunnersUp (remove_and_replace_member),", + " \t\t- [AccountData(who) (unreserve)]", + " \tState writes:", + " \t\t- RunnersUp (remove_and_replace_member),", + " \t\t- [AccountData(who) (unreserve)]", + "", + " Weight note: The call into changeMembers need to be accounted for.", + " " + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "has_replacement", + "type": "bool" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen election is started.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " If we have a replacement:", + " \t- Base weight: 50.93 µs", + " \t- State reads:", + " \t\t- RunnersUp.len()", + " \t\t- Members, RunnersUp (remove_and_replace_member)", + " \t- State writes:", + " \t\t- Members, RunnersUp (remove_and_replace_member)", + " Else, since this is a root call and will go into phragmen, we assume full block for now.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with [new_members]. This indicates that enough candidates existed to run the", + " election, not that enough have has been elected. The inner value must be examined for", + " this purpose. A `NewTerm([])` indicates that some candidates got their bond slashed and", + " none were elected, whilst `EmptyTerm` means that no candidates existed to begin with." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round. This is different from", + " `NewTerm([])`. See the description of `NewTerm`." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A [member] has been removed. This should always be followed by either `NewTerm` ot", + " `EmptyTerm`." + ] + }, + { + "name": "MemberRenounced", + "args": [ + "AccountId" + ], + "docs": [ + " A [member] has renounced their candidacy." + ] + }, + { + "name": "VoterReported", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A voter was reported with the the report being successful or not.", + " [voter, reporter, success]" + ] + } + ], + "constants": [ + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [] + }, + { + "name": "VotingBond", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x0d000000", + "docs": [] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x07000000", + "docs": [] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [] + }, + { + "name": "ModuleId", + "type": "LockIdentifier", + "value": "0x706872656c656374", + "docs": [] + } + ], + "errors": [ + { + "name": "UnableToVote", + "docs": [ + " Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "docs": [ + " Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "docs": [ + " Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "docs": [ + " Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "docs": [ + " Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "docs": [ + " Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "docs": [ + " Must be a voter." + ] + }, + { + "name": "ReportSelf", + "docs": [ + " Cannot report self." + ] + }, + { + "name": "DuplicatedCandidate", + "docs": [ + " Duplicated candidate submission." + ] + }, + { + "name": "MemberSubmit", + "docs": [ + " Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerSubmit", + "docs": [ + " Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "docs": [ + " Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + }, + { + "name": "InvalidCandidateCount", + "docs": [ + " The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "docs": [ + " The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "docs": [ + " The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "docs": [ + " Prediction regarding replacement after member removal is wrong." + ] + } + ] + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "Instance1Membership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `T::SwapOrigin`.", + "", + " Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member.", + "", + " Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Set the prime member. Must be a current member.", + "", + " May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "args": [], + "docs": [ + " Remove the prime member if it exists.", + "", + " May only be called from `T::PrimeOrigin`." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "FinalityTracker", + "storage": null, + "calls": [ + { + "name": "final_hint", + "args": [ + { + "name": "hint", + "type": "Compact" + } + ], + "docs": [ + " Hint that the author of this block thinks the best finalized", + " block is the given number." + ] + } + ], + "events": null, + "constants": [ + { + "name": "WindowSize", + "type": "BlockNumber", + "value": "0x65000000", + "docs": [ + " The number of recent samples to keep from this chain. Default is 101." + ] + }, + { + "name": "ReportLatency", + "type": "BlockNumber", + "value": "0xe8030000", + "docs": [ + " The delay after which point things become suspicious. Default is 1000." + ] + } + ], + "errors": [ + { + "name": "AlreadyUpdated", + "docs": [ + " Final hint must be updated only once in the block" + ] + }, + { + "name": "BadHint", + "docs": [ + " Finalized height above block number" + ] + } + ] + }, + { + "name": "Grandpa", + "storage": { + "prefix": "GrandpaFinality", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported.", + "", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "note_stalled", + "args": [ + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": "BlockNumber" + } + ], + "docs": [ + " Note that the current authority set of the GRANDPA finality gadget has", + " stalled. This will trigger a forced authority set change at the beginning", + " of the next session, to be enacted `delay` blocks after that. The delay", + " should be high enough to safely assume that the block signalling the", + " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", + " will start the new authority set using the given finalized block as base.", + " Only callable by root." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied. [authority_set]" + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "PauseFailed", + "docs": [ + " Attempt to signal GRANDPA pause when the authority set isn't live", + " (either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "docs": [ + " Attempt to signal GRANDPA resume when the authority set isn't paused", + " (either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "docs": [ + " Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "docs": [ + " Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "OpenTip", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Tips that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `ProposalCount`, `origin account`", + " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `Proposals`, `rejected proposer account`", + " - DbWrites: `Proposals`, `rejected proposer account`", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - Complexity: O(1).", + " - DbReads: `Proposals`, `Approvals`", + " - DbWrite: `Approvals`", + " # " + ] + }, + { + "name": "report_awesome", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `TipReportDepositPerByte` for each byte in `reason`.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'", + " - DbReads: `Reasons`, `Tips`, `who account data`", + " - DbWrites: `Tips`, `who account data`", + " # " + ] + }, + { + "name": "retract_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + " If successful, the original deposit will be unreserved.", + "", + " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + " must have been reported by the signing account through `report_awesome` (and not", + " through `tip_new`).", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " Emits `TipRetracted` if successful.", + "", + " # ", + " - Complexity: `O(1)`", + " - Depends on the length of `T::Hash` which is fixed.", + " - DbReads: `Tips`, `origin account`", + " - DbWrites: `Reasons`, `Tips`, `origin account`", + " # " + ] + }, + { + "name": "tip_new", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + }, + { + "name": "tip_value", + "type": "BalanceOf" + } + ], + "docs": [ + " Give a tip for something new; no finder's fee will be taken.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`", + " - DbReads: `Tippers`, `Reasons`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "tip", + "args": [ + { + "name": "hash", + "type": "Hash" + }, + { + "name": "tip_value", + "type": "BalanceOf" + } + ], + "docs": [ + " Declare a tip value for an already-open tip.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + " has started.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers.", + " decoding `Tipper` vec of length `T`, insert tip and check closing,", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`.", + " - DbReads: `Tippers`, `Tips`", + " - DbWrites: `Tips`", + " # " + ] + }, + { + "name": "close_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Close and payout a tip.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " The tip identified by `hash` must have finished its countdown period.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers.", + " decoding `Tipper` vec of length `T`.", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " - DbReads: `Tips`, `Tippers`, `tip finder`", + " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal. [proposal_index]" + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds. [budget_remaining]" + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated. [proposal_index, award, beneficiary]" + ] + }, + { + "name": "Rejected", + "args": [ + "ProposalIndex", + "Balance" + ], + "docs": [ + " A proposal was rejected; funds were slashed. [proposal_index, slashed]" + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt. [burn]" + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend. [budget_remaining]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited. [deposit]" + ] + }, + { + "name": "NewTip", + "args": [ + "Hash" + ], + "docs": [ + " A new tip suggestion has been opened. [tip_hash]" + ] + }, + { + "name": "TipClosing", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has reached threshold and is closing. [tip_hash]" + ] + }, + { + "name": "TipClosed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been closed. [tip_hash, who, payout]" + ] + }, + { + "name": "TipRetracted", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has been retracted. [tip_hash]" + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "TipCountdown", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": "Percent", + "value": "0x14", + "docs": [ + " The amount of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a tip report." + ] + }, + { + "name": "TipReportDepositPerByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason." + ] + }, + { + "name": "ModuleId", + "type": "ModuleId", + "value": "0x70792f7472737279", + "docs": [ + " The treasury's module id, used for deriving its sovereign account ID." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidProposalIndex", + "docs": [ + " No proposal at that index." + ] + }, + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "docs": [ + " The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "docs": [ + " The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "docs": [ + " The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "docs": [ + " The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "docs": [ + " The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "items": [ + { + "name": "CurrentSchedule", + "modifier": "Default", + "type": { + "plain": "Schedule" + }, + "fallback": "0x0000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a107000000000020a1070000000000e0f7050400000000e024370500000000e0f705040000000020a107000000000020a107000000000080f0fa020000000000e1f5050000000004000000000001001000000000400000002000000000000800", + "docs": [ + " Current cost schedule for contracts." + ] + }, + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "CodeHash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "CodeHash", + "value": "PrefabWasmModule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "AccountCounter", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The subtrie counter." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ContractInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "update_schedule", + "args": [ + { + "name": "schedule", + "type": "Schedule" + } + ], + "docs": [ + " Updates the schedule for metering contracts.", + "", + " The schedule must have a greater version than the stored schedule." + ] + }, + { + "name": "put_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", + " You can instantiate contracts only with stored code." + ] + }, + { + "name": "call", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Makes a call to an account, optionally transferring some balance.", + "", + " * If the account is a smart-contract account, the associated code will be", + " executed and any value will be transferred.", + " * If the account is a regular account, any value will be transferred.", + " * If no account exists and the call value is not less than `existential_deposit`,", + " a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code_hash", + "type": "CodeHash" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", + "", + " Instantiation is executed as follows:", + "", + " - The destination address is computed based on the sender and hash of the code.", + " - The smart-contract account is created at the computed address.", + " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", + " after the execution is saved as the `code` of the account. That code will be invoked", + " upon any call received by this account.", + " - The contract is initialized." + ] + }, + { + "name": "claim_surcharge", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "aux_sender", + "type": "Option" + } + ], + "docs": [ + " Allows block producers to claim a small reward for evicting a contract. If a block producer", + " fails to do so, a regular users will be allowed to claim the reward.", + "", + " If contract is not evicted as a result of this call, no actions are taken and", + " the sender is not eligible for the reward." + ] + } + ], + "events": [ + { + "name": "Instantiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract deployed by address at the specified address. [owner, contract]" + ] + }, + { + "name": "Evicted", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " Contract has been evicted and is now in tombstone state.", + " [contract, tombstone]", + " ", + " # Params", + "", + " - `contract`: `AccountId`: The account ID of the evicted contract.", + " - `tombstone`: `bool`: True if the evicted contract left behind a tombstone." + ] + }, + { + "name": "Restored", + "args": [ + "AccountId", + "AccountId", + "Hash", + "Balance" + ], + "docs": [ + " Restoration for a contract has been successful.", + " [donor, dest, code_hash, rent_allowance]", + " ", + " # Params", + "", + " - `donor`: `AccountId`: Account ID of the restoring contract", + " - `dest`: `AccountId`: Account ID of the restored contract", + " - `code_hash`: `Hash`: Code hash of the restored contract", + " - `rent_allowance: `Balance`: Rent allowance of the restored contract" + ] + }, + { + "name": "CodeStored", + "args": [ + "Hash" + ], + "docs": [ + " Code with the specified hash has been stored.", + " [code_hash]" + ] + }, + { + "name": "ScheduleUpdated", + "args": [ + "u32" + ], + "docs": [ + " Triggered when the current [schedule] is updated." + ] + }, + { + "name": "ContractExecution", + "args": [ + "AccountId", + "Bytes" + ], + "docs": [ + " An event deposited upon execution of a contract from the account.", + " [account, data]" + ] + } + ], + "constants": [ + { + "name": "SignedClaimHandicap", + "type": "BlockNumber", + "value": "0x02000000", + "docs": [ + " Number of block delay an extrinsic claim surcharge has.", + "", + " When claim surcharge is called by an extrinsic the rent is checked", + " for current_block - delay" + ] + }, + { + "name": "TombstoneDeposit", + "type": "BalanceOf", + "value": "0x00a0acb9030000000000000000000000", + "docs": [ + " The minimum amount required to generate a tombstone." + ] + }, + { + "name": "StorageSizeOffset", + "type": "u32", + "value": "0x08000000", + "docs": [ + " A size offset for an contract. A just created account with untouched storage will have that", + " much of storage from the perspective of the state rent.", + "", + " This is a simple way to ensure that contracts with empty storage eventually get deleted", + " by making them pay rent. This creates an incentive to remove them early in order to save", + " rent." + ] + }, + { + "name": "RentByteFee", + "type": "BalanceOf", + "value": "0x00286bee000000000000000000000000", + "docs": [ + " Price of a byte of storage per one block interval. Should be greater than 0." + ] + }, + { + "name": "RentDepositOffset", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount of funds a contract should deposit in order to offset", + " the cost of one byte.", + "", + " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", + " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", + " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", + " then it would pay 500 BU/day." + ] + }, + { + "name": "SurchargeReward", + "type": "BalanceOf", + "value": "0x005cb2ec220000000000000000000000", + "docs": [ + " Reward that is received by the party whose touch has led", + " to removal of a contract." + ] + }, + { + "name": "MaxDepth", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum nesting level of a call/instantiate stack. A reasonable default", + " value is 100." + ] + }, + { + "name": "MaxValueSize", + "type": "u32", + "value": "0x00400000", + "docs": [ + " The maximum size of a storage value in bytes. A reasonable default is 16 KiB." + ] + } + ], + "errors": [ + { + "name": "InvalidScheduleVersion", + "docs": [ + " A new schedule must have a greater version than the current one." + ] + }, + { + "name": "InvalidSurchargeClaim", + "docs": [ + " An origin must be signed or inherent and auxiliary sender only provided on inherent." + ] + }, + { + "name": "InvalidSourceContract", + "docs": [ + " Cannot restore from nonexisting or tombstone contract." + ] + }, + { + "name": "InvalidDestinationContract", + "docs": [ + " Cannot restore to nonexisting or alive contract." + ] + }, + { + "name": "InvalidTombstone", + "docs": [ + " Tombstones don't match." + ] + }, + { + "name": "InvalidContractOrigin", + "docs": [ + " An origin TrieId written in the current block." + ] + }, + { + "name": "OutOfGas", + "docs": [ + " The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "docs": [ + " The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "BelowSubsistenceThreshold", + "docs": [ + " Performing the requested transfer would have brought the contract below", + " the subsistence threshold. No transfer is allowed to do this in order to allow", + " for a tombstone to be created. Use `seal_terminate` to remove a contract without", + " leaving a tombstone behind." + ] + }, + { + "name": "NewContractNotFunded", + "docs": [ + " The newly created contract is below the subsistence threshold after executing", + " its contructor. No contracts are allowed to exist below that threshold." + ] + }, + { + "name": "TransferFailed", + "docs": [ + " Performing the requested transfer failed for a reason originating in the", + " chosen currency implementation of the runtime. Most probably the balance is", + " too low or locks are placed on it." + ] + }, + { + "name": "MaxCallDepthReached", + "docs": [ + " Performing a call was denied because the calling depth reached the limit", + " of what is specified in the schedule." + ] + }, + { + "name": "NotCallable", + "docs": [ + " The contract that was called is either no contract at all (a plain account)", + " or is a tombstone." + ] + }, + { + "name": "CodeTooLarge", + "docs": [ + " The code supplied to `put_code` exceeds the limit specified in the current schedule." + ] + }, + { + "name": "CodeNotFound", + "docs": [ + " No code could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "docs": [ + " A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "docs": [ + " Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "docs": [ + " Contract trapped during execution." + ] + } + ] + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Default", + "type": { + "plain": "AccountId" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": [ + { + "name": "sudo", + "args": [ + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Weight of derivative `call` execution + 10,000.", + " # " + ] + }, + { + "name": "sudo_unchecked_weight", + "args": [ + { + "name": "call", + "type": "Call" + }, + { + "name": "_weight", + "type": "Weight" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + " This function does not check the weight of the call, and instead allows the", + " Sudo user to specify the weight of the call.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - The weight of this call is defined by the caller.", + " # " + ] + }, + { + "name": "set_key", + "args": [ + { + "name": "new", + "type": "LookupSource" + } + ], + "docs": [ + " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + }, + { + "name": "sudo_as", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Signed` origin from", + " a given account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Weight of derivative `call` execution + 10,000.", + " # " + ] + } + ], + "events": [ + { + "name": "Sudid", + "args": [ + "DispatchResult" + ], + "docs": [ + " A sudo just took place. [result]" + ] + }, + { + "name": "KeyChanged", + "args": [ + "AccountId" + ], + "docs": [ + " The [sudoer] just switched identity; the old key is supplied." + ] + }, + { + "name": "SudoAsDone", + "args": [ + "bool" + ], + "docs": [ + " A sudo just took place. [result]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "RequireSudo", + "docs": [ + " Sender must be the Sudo account" + ] + } + ] + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in current session.", + "", + " At the beginning of each session we set this to a value that should", + " fall roughly in the middle of the session duration.", + " The idea is to first wait for the validators to produce a block", + " in the current session, so that the heartbeat later on will not be necessary." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex` to", + " `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `T::ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [ + " # ", + " - Complexity: `O(K + E)` where K is length of `Keys` and E is length of", + " `Heartbeat.network_state.external_address`", + "", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`", + " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", + " `ReceivedHeartbeats`", + " - DbWrites: `ReceivedHeartbeats`", + " # " + ] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId` [authority_id]" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least one validator was found to be [offline]." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidKey", + "docs": [ + " Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "docs": [ + " Duplicated heartbeat." + ] + } + ] + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": [], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "DeferredOffences", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Deferred reports that have been rejected by the offence handler and need to be submitted", + " at a later time." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot", + "bool" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes. last", + " element indicates of the offence was applied (true) or queued (false) ", + " [kind, timeslot, applied]." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Registration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "(AccountId,Data)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": [ + { + "name": "add_registrar", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Add a registrar to the system.", + "", + " The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + " - `account`: the account of the registrar.", + "", + " Emits `RegistrarAdded` if successful.", + "", + " # ", + " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_identity", + "args": [ + { + "name": "info", + "type": "IdentityInfo" + } + ], + "docs": [ + " Set an account's identity information and reserve the appropriate deposit.", + "", + " If the account already has identity information, the deposit is taken as part payment", + " for the new deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `info`: The identity information.", + "", + " Emits `IdentitySet` if successful.", + "", + " # ", + " - `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)", + " - One balance reserve operation.", + " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_subs", + "args": [ + { + "name": "subs", + "type": "Vec<(AccountId,Data)>" + } + ], + "docs": [ + " Set the sub-accounts of the sender.", + "", + " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `subs`: The identity's (new) sub-accounts.", + "", + " # ", + " - `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - At most one balance operations.", + " - DB:", + " - `P + S` storage mutations (codec complexity `O(1)`)", + " - One storage read (codec complexity `O(P)`).", + " - One storage write (codec complexity `O(S)`).", + " - One storage-exists (`IdentityOf::contains_key`).", + " # " + ] + }, + { + "name": "clear_identity", + "args": [], + "docs": [ + " Clear an account's identity info and all sub-accounts and return all deposits.", + "", + " Payment: All reserved balances on the account are returned.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " Emits `IdentityCleared` if successful.", + "", + " # ", + " - `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded).", + " - One balance-unreserve operation.", + " - `2` storage reads and `S + 2` storage deletions.", + " - One event.", + " # " + ] + }, + { + "name": "request_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "max_fee", + "type": "Compact" + } + ], + "docs": [ + " Request a judgement from a registrar.", + "", + " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + " given.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is requested.", + " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + " ```nocompile", + " Self::registrars().get(reg_index).unwrap().fee", + " ```", + "", + " Emits `JudgementRequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", + " - One event.", + " # " + ] + }, + { + "name": "cancel_request", + "args": [ + { + "name": "reg_index", + "type": "RegistrarIndex" + } + ], + "docs": [ + " Cancel a previous request.", + "", + " Payment: A previously reserved deposit is returned on success.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + " Emits `JudgementUnrequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - One storage mutation `O(R + X)`.", + " - One event", + " # " + ] + }, + { + "name": "set_fee", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Set the fee required for a judgement to be requested from a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fee`: the new fee.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_account_id", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Change the account associated with a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `new`: the new account ID.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_fields", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fields", + "type": "IdentityFields" + } + ], + "docs": [ + " Set the field information for a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fields`: the fields that the registrar concerns themselves with.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", + " # " + ] + }, + { + "name": "provide_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "judgement", + "type": "IdentityJudgement" + } + ], + "docs": [ + " Provide a judgement for an account's identity.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `reg_index`.", + "", + " - `reg_index`: the index of the registrar whose judgement is being made.", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "", + " Emits `JudgementGiven` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-transfer operation.", + " - Up to one account-lookup operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "kill_identity", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's identity and sub-account information and slash the deposits.", + "", + " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + " `Slash`. Verification request deposits are not returned; they should be cancelled", + " manually using `cancel_request`.", + "", + " The dispatch origin for this call must match `T::ForceOrigin`.", + "", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + " Emits `IdentityKilled` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage mutations.", + " - One event.", + " # " + ] + }, + { + "name": "add_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Add the given account to the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Alter the associated name of the given sub-account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + } + ], + "docs": [ + " Remove the given account from the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "args": [], + "docs": [ + " Remove the sender as a sub-account.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender (*not* the original depositor).", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " super-identity.", + "", + " NOTE: This should not normally be used, but is provided in the case that the non-", + " controller of an account is maliciously registered as a sub-account." + ] + } + ], + "events": [ + { + "name": "IdentitySet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set or reset (which will remove all judgements). [who]" + ] + }, + { + "name": "IdentityCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned. [who, deposit]" + ] + }, + { + "name": "IdentityKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed. [who, deposit]" + ] + }, + { + "name": "JudgementRequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was asked from a registrar. [who, registrar_index]" + ] + }, + { + "name": "JudgementUnrequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement request was retracted. [who, registrar_index]" + ] + }, + { + "name": "JudgementGiven", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was given by a registrar. [target, registrar_index]" + ] + }, + { + "name": "RegistrarAdded", + "args": [ + "RegistrarIndex" + ], + "docs": [ + " A registrar was added. [registrar_index]" + ] + }, + { + "name": "SubIdentityAdded", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was added to an identity and the deposit paid. [sub, main, deposit]" + ] + }, + { + "name": "SubIdentityRemoved", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was removed from an identity and the deposit freed.", + " [sub, main, deposit]" + ] + }, + { + "name": "SubIdentityRevoked", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was cleared, and the given deposit repatriated from the", + " main identity account to the sub-identity account. [sub, main, deposit]" + ] + } + ], + "constants": [ + { + "name": "BasicDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity." + ] + }, + { + "name": "FieldDeposit", + "type": "BalanceOf", + "value": "0x00a031a95fe300000000000000000000", + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will be", + " another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "type": "u32", + "value": "0x64000000", + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "type": "u32", + "value": "0x14000000", + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "errors": [ + { + "name": "TooManySubAccounts", + "docs": [ + " Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "docs": [ + " Account isn't found." + ] + }, + { + "name": "NotNamed", + "docs": [ + " Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "docs": [ + " Empty index." + ] + }, + { + "name": "FeeChanged", + "docs": [ + " Fee is changed." + ] + }, + { + "name": "NoIdentity", + "docs": [ + " No identity found." + ] + }, + { + "name": "StickyJudgement", + "docs": [ + " Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "docs": [ + " Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "docs": [ + " Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "docs": [ + " The target is invalid." + ] + }, + { + "name": "TooManyFields", + "docs": [ + " Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "docs": [ + " Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Account ID is already named." + ] + }, + { + "name": "NotSub", + "docs": [ + " Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "docs": [ + " Sub-account isn't owned by sender." + ] + } + ] + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": "Hash" + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,BidKind)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "VouchingStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Vec<(BlockNumber,BalanceOf)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "StrikeCount", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "SocietyVote", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SocietyVote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": [ + { + "name": "bid", + "args": [ + { + "name": "value", + "type": "BalanceOf" + } + ], + "docs": [ + " A user outside of the society can make a bid for entry.", + "", + " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + " when the bid becomes a member, or if the bid calls `unbid`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `value`: A one time payment the bid would like to receive when joining the society.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", + " - Storage Reads:", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " \t- One storage read to retrieve all members. O(M)", + " - Storage Writes:", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for new bid.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unbid", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " A bidder can remove their bid for entry into society.", + " By doing so, they will have their candidate deposit returned or", + " they will unvouch their voucher.", + "", + " Payment: The bid deposit is unreserved if the user made a bid.", + "", + " The dispatch origin for this call must be _Signed_ and a bidder.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + " # ", + " Key: B (len of bids), X (balance unreserve)", + " - One storage read and write to retrieve and update the bids. O(B)", + " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B + X)", + " # " + ] + }, + { + "name": "vouch", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "tip", + "type": "BalanceOf" + } + ], + "docs": [ + " As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + " There is no deposit required to vouch for a new bid, but a member can only vouch for", + " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + " the suspension judgement origin, the member will be banned from vouching again.", + "", + " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + " be paid as a portion of the reward the member will receive for joining the society.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `who`: The user who you would like to vouch for.", + " - `value`: The total reward to be paid between you and the candidate if they become", + " a member in the society.", + " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", + " the society. Tips larger than `value` will be saturated upon payout.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members)", + " - Storage Reads:", + " \t- One storage read to retrieve all members. O(M)", + " \t- One storage read to check member is not already vouching. O(1)", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " - Storage Writes:", + " \t- One storage write to insert vouching status to the member. O(1)", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(log M) search to check sender is a member.", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for vouch.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unvouch", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " As a vouching member, unvouch a bid. This only works while vouched user is", + " only a bidder (and not a candidate).", + "", + " The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + " # ", + " Key: B (len of bids)", + " - One storage read O(1) to check the signer is a vouching member.", + " - One storage mutate to retrieve and update the bids. O(B)", + " - One vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B)", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "candidate", + "type": "LookupSource" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on a candidate.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `candidate`: The candidate that the member would like to bid on.", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " Key: C (len of candidates), M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One account lookup.", + " - One storage read O(C) and O(C) search to check that user is a candidate.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM + C)", + " # " + ] + }, + { + "name": "defender_vote", + "args": [ + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on the defender.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " - Key: M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM)", + " # " + ] + }, + { + "name": "payout", + "args": [], + "docs": [ + " Transfer the first matured payout for the sender and remove it from the records.", + "", + " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", + "", + " Payment: The member will receive a payment equal to their first matured", + " payout to their free balance.", + "", + " The dispatch origin for this call must be _Signed_ and a member with", + " payouts remaining.", + "", + " # ", + " Key: M (len of members), P (number of payouts for a particular member)", + " - One storage read O(M) and O(log M) search to check signer is a member.", + " - One storage read O(P) to get all payouts for a member.", + " - One storage read O(1) to get the current block number.", + " - One currency transfer call. O(X)", + " - One storage write or removal to update the member's payouts. O(P)", + "", + " Total Complexity: O(M + logM + P + X)", + " # " + ] + }, + { + "name": "found", + "args": [ + { + "name": "founder", + "type": "AccountId" + }, + { + "name": "max_members", + "type": "u32" + }, + { + "name": "rules", + "type": "Bytes" + } + ], + "docs": [ + " Found the society.", + "", + " This is done as a discrete action in order to allow for the", + " module to be included into a running chain and can only be done once.", + "", + " The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + " Parameters:", + " - `founder` - The first member and head of the newly founded society.", + " - `max_members` - The initial max number of members for the society.", + " - `rules` - The rules of this society concerning membership.", + "", + " # ", + " - Two storage mutates to set `Head` and `Founder`. O(1)", + " - One storage write to add the first member to society. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "unfound", + "args": [], + "docs": [ + " Annul the founding of the society.", + "", + " The dispatch origin for this call must be Signed, and the signing account must be both", + " the `Founder` and the `Head`. This implies that it may only be done when there is one", + " member.", + "", + " # ", + " - Two storage reads O(1).", + " - Four storage removals O(1).", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "judge_suspended_member", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "forgive", + "type": "bool" + } + ], + "docs": [ + " Allow suspension judgement origin to make judgement on a suspended member.", + "", + " If a suspended member is forgiven, we simply add them back as a member, not affecting", + " any of the existing storage items for that member.", + "", + " If a suspended member is rejected, remove all associated storage items, including", + " their payouts, and remove any vouched bids they currently have.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended member to be judged.", + " - `forgive` - A boolean representing whether the suspension judgement origin", + " forgives (`true`) or rejects (`false`) a suspended member.", + "", + " # ", + " Key: B (len of bids), M (len of members)", + " - One storage read to check `who` is a suspended member. O(1)", + " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", + " - Up to 3 storage removals O(1) to clean up a removed member.", + " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal. O(1)", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B)", + " # " + ] + }, + { + "name": "judge_suspended_candidate", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "judgement", + "type": "SocietyJudgement" + } + ], + "docs": [ + " Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + " If the judgement is `Approve`, we add them to society as a member with the appropriate", + " payment for joining society.", + "", + " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + " to the society treasury, or we ban the voucher from vouching again.", + "", + " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + " through the induction process again.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended candidate to be judged.", + " - `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + " # ", + " Key: B (len of bids), M (len of members), X (balance action)", + " - One storage read to check `who` is a suspended candidate.", + " - One storage removal of the suspended candidate.", + " - Approve Logic", + " \t- One storage read to get the available pot to pay users with. O(1)", + " \t- One storage write to update the available pot. O(1)", + " \t- One storage read to get the current block number. O(1)", + " \t- One storage read to get all members. O(M)", + " \t- Up to one unreserve currency action.", + " \t- Up to two new storage writes to payouts.", + " \t- Up to one storage write with O(log M) binary search to add a member to society.", + " - Reject Logic", + " \t- Up to one repatriate reserved currency action. O(X)", + " \t- Up to one storage write to ban the vouching member from vouching again.", + " - Rebid Logic", + " \t- Storage mutate with O(log B) binary search to place the user back into bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal.", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B + X)", + " # " + ] + }, + { + "name": "set_max_members", + "args": [ + { + "name": "max", + "type": "u32" + } + ], + "docs": [ + " Allows root origin to change the maximum number of members in society.", + " Max membership count must be greater than 1.", + "", + " The dispatch origin for this call must be from _ROOT_.", + "", + " Parameters:", + " - `max` - The maximum number of members for the society.", + "", + " # ", + " - One storage write to update the max. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "Founded", + "args": [ + "AccountId" + ], + "docs": [ + " The society is founded by the given identity. [founder]" + ] + }, + { + "name": "Bid", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A membership bid just happened. The given account is the candidate's ID and their offer", + " is the second. [candidate_id, offer]" + ] + }, + { + "name": "Vouch", + "args": [ + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A membership bid just happened by vouching. The given account is the candidate's ID and", + " their offer is the second. The vouching party is the third. [candidate_id, offer, vouching]" + ] + }, + { + "name": "AutoUnbid", + "args": [ + "AccountId" + ], + "docs": [ + " A [candidate] was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "args": [ + "AccountId" + ], + "docs": [ + " A [candidate] was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "args": [ + "AccountId" + ], + "docs": [ + " A [candidate] was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "args": [ + "AccountId", + "Vec" + ], + "docs": [ + " A group of candidates have been inducted. The batch's primary is the first value, the", + " batch in full is the second. [primary, candidates]" + ] + }, + { + "name": "SuspendedMemberJudgement", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A suspended member has been judged. [who, judged]" + ] + }, + { + "name": "CandidateSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A [candidate] has been suspended" + ] + }, + { + "name": "MemberSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A [member] has been suspended" + ] + }, + { + "name": "Challenged", + "args": [ + "AccountId" + ], + "docs": [ + " A [member] has been challenged" + ] + }, + { + "name": "Vote", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed [candidate, voter, vote]" + ] + }, + { + "name": "DefenderVote", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed for a defending member [voter, vote]" + ] + }, + { + "name": "NewMaxMembers", + "args": [ + "u32" + ], + "docs": [ + " A new [max] member count has been set" + ] + }, + { + "name": "Unfounded", + "args": [ + "AccountId" + ], + "docs": [ + " Society is unfounded. [founder]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds were deposited into the society account. [value]" + ] + } + ], + "constants": [ + { + "name": "CandidateDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", + " before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "type": "BalanceOf", + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "type": "BlockNumber", + "value": "0x00770100", + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "ChallengePeriod", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "ModuleId", + "type": "ModuleId", + "value": "0x70792f736f636965", + "docs": [ + " The societies's module id" + ] + } + ], + "errors": [ + { + "name": "BadPosition", + "docs": [ + " An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "docs": [ + " User is not a member." + ] + }, + { + "name": "AlreadyMember", + "docs": [ + " User is already a member." + ] + }, + { + "name": "Suspended", + "docs": [ + " User is suspended." + ] + }, + { + "name": "NotSuspended", + "docs": [ + " User is not suspended." + ] + }, + { + "name": "NoPayout", + "docs": [ + " Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "docs": [ + " Society already founded." + ] + }, + { + "name": "InsufficientPot", + "docs": [ + " Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "docs": [ + " Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "docs": [ + " Member is not vouching." + ] + }, + { + "name": "Head", + "docs": [ + " Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "docs": [ + " Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "docs": [ + " User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "docs": [ + " User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "docs": [ + " User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "docs": [ + " Too many members in the society." + ] + }, + { + "name": "NotFounder", + "docs": [ + " The caller is not the founder." + ] + }, + { + "name": "NotHead", + "docs": [ + " The caller is not the head." + ] + } + ] + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RecoveryConfig", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "ActiveRecovery", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": [ + { + "name": "as_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through a recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you want to make a call on-behalf-of.", + " - `call`: The call you want to make with the recovered account.", + "", + " # ", + " - The weight of the `call` + 10,000.", + " - One storage lookup to check account is recovered by `who`. O(1)", + " # " + ] + }, + { + "name": "set_recovered", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow ROOT to bypass the recovery process and set an a rescuer account", + " for a lost account directly.", + "", + " The dispatch origin for this call must be _ROOT_.", + "", + " Parameters:", + " - `lost`: The \"lost account\" to be recovered.", + " - `rescuer`: The \"rescuer account\" which can call as the lost account.", + "", + " # ", + " - One storage write O(1)", + " - One event", + " # " + ] + }, + { + "name": "create_recovery", + "args": [ + { + "name": "friends", + "type": "Vec" + }, + { + "name": "threshold", + "type": "u16" + }, + { + "name": "delay_period", + "type": "BlockNumber" + } + ], + "docs": [ + " Create a recovery configuration for your account. This makes your account recoverable.", + "", + " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + " will be reserved for storing the recovery configuration. This deposit is returned", + " in full when the user calls `remove_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `friends`: A list of friends you trust to vouch for recovery attempts.", + " Should be ordered and contain no duplicate values.", + " - `threshold`: The number of friends that must vouch for a recovery attempt", + " before the account can be recovered. Should be less than or equal to", + " the length of the list of friends.", + " - `delay_period`: The number of blocks after a recovery attempt is initialized", + " that needs to pass before the account can be recovered.", + "", + " # ", + " - Key: F (len of friends)", + " - One storage read to check that account is not already recoverable. O(1).", + " - A check that the friends list is sorted and unique. O(F)", + " - One currency reserve operation. O(X)", + " - One storage write. O(1). Codec O(F).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "initiate_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Initiate the process for recovering a recoverable account.", + "", + " Payment: `RecoveryDeposit` balance will be reserved for initiating the", + " recovery process. This deposit will always be repatriated to the account", + " trying to be recovered. See `close_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `account`: The lost account that you want to recover. This account", + " needs to be recoverable (i.e. have a recovery configuration).", + "", + " # ", + " - One storage read to check that account is recoverable. O(F)", + " - One storage read to check that this recovery process hasn't already started. O(1)", + " - One currency reserve operation. O(X)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "vouch_recovery", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow a \"friend\" of a recoverable account to vouch for an active recovery", + " process for that account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + " for the recoverable account.", + "", + " Parameters:", + " - `lost`: The lost account that you want to recover.", + " - `rescuer`: The account trying to rescue the lost account that you", + " want to vouch for.", + "", + " The combination of these two parameters must point to an active recovery", + " process.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One binary search to confirm caller is a friend. O(logF)", + " - One binary search to confirm caller has not already vouched. O(logV)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + logF + V + logV)", + " # " + ] + }, + { + "name": "claim_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Allow a successful rescuer to claim their recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + " who has successfully completed the account recovery process: collected", + " `threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + " Parameters:", + " - `account`: The lost account that you want to claim has been successfully", + " recovered by you.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + V)", + " # " + ] + }, + { + "name": "close_recovery", + "args": [ + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " As the controller of a recoverable account, close an active recovery", + " process for your account.", + "", + " Payment: By calling this function, the recoverable account will receive", + " the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account with an active recovery process for it.", + "", + " Parameters:", + " - `rescuer`: The account trying to rescue this recoverable account.", + "", + " # ", + " Key: V (len of vouching friends)", + " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", + " - One balance call to repatriate reserved. O(X)", + " - One event.", + "", + " Total Complexity: O(V + X)", + " # " + ] + }, + { + "name": "remove_recovery", + "args": [], + "docs": [ + " Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + " NOTE: The user must make sure to call `close_recovery` on all active", + " recovery attempts before calling this function else it will fail.", + "", + " Payment: By calling this function the recoverable account will unreserve", + " their recovery configuration deposit.", + " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account (i.e. has a recovery configuration).", + "", + " # ", + " Key: F (len of friends)", + " - One storage read to get the prefix iterator for active recoveries. O(1)", + " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", + " - One balance call to unreserved. O(X)", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "cancel_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Cancel the ability to use `as_recovered` for `account`.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you are able to call on-behalf-of.", + "", + " # ", + " - One storage mutation to check account is recovered by `who`. O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "RecoveryCreated", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been set up for an [account]." + ] + }, + { + "name": "RecoveryInitiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process has been initiated for lost account by rescuer account.", + " [lost, rescuer]" + ] + }, + { + "name": "RecoveryVouched", + "args": [ + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been vouched for by sender.", + " [lost, rescuer, sender]" + ] + }, + { + "name": "RecoveryClosed", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been closed.", + " [lost, rescuer]" + ] + }, + { + "name": "AccountRecovered", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Lost account has been successfully recovered by rescuer account.", + " [lost, rescuer]" + ] + }, + { + "name": "RecoveryRemoved", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been removed for an [account]." + ] + } + ], + "constants": [ + { + "name": "ConfigDepositBase", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration." + ] + }, + { + "name": "FriendDepositFactor", + "type": "BalanceOf", + "value": "0x00203d88792d00000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery configuration." + ] + }, + { + "name": "MaxFriends", + "type": "u16", + "value": "0x0900", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration." + ] + }, + { + "name": "RecoveryDeposit", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery." + ] + } + ], + "errors": [ + { + "name": "NotAllowed", + "docs": [ + " User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "docs": [ + " Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "docs": [ + " Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "docs": [ + " Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "docs": [ + " Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "docs": [ + " This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "docs": [ + " A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "docs": [ + " A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "docs": [ + " This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "docs": [ + " The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "docs": [ + " This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "docs": [ + " The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "docs": [ + " There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "Overflow", + "docs": [ + " There was an overflow in a calculation" + ] + }, + { + "name": "AlreadyProxy", + "docs": [ + " This account is already set up for recovery" + ] + } + ] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "VestingInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + } + ] + }, + "calls": [ + { + "name": "vest", + "args": [], + "docs": [ + " Unlock any vested funds of the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have funds still", + " locked under this module.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 2 Reads, 2 Writes", + " - Reads: Vesting Storage, Balances Locks, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, [Sender Account]", + " - Benchmark:", + " - Unlocked: 48.76 + .048 * l µs (min square analysis)", + " - Locked: 44.43 + .284 * l µs (min square analysis)", + " - Using 50 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", + " # " + ] + }, + { + "name": "vest_other", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Unlock any vested funds of a `target` account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account whose vested funds should be unlocked. Must have funds still", + " locked under this module.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account", + " - Writes: Vesting Storage, Balances Locks, Target Account", + " - Benchmark:", + " - Unlocked: 44.3 + .294 * l µs (min square analysis)", + " - Locked: 48.16 + .103 * l µs (min square analysis)", + " - Using 50 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", + " # " + ] + }, + { + "name": "vested_transfer", + "args": [ + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Create a vested transfer.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account that should be transferred the vested funds.", + " - `amount`: The amount of funds to transfer and will be vested.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " - Benchmark: 100.3 + .365 * l µs (min square analysis)", + " - Using 100 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", + " # " + ] + }, + { + "name": "force_vested_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Force a vested transfer.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `source`: The account whose funds should be transferred.", + " - `target`: The account that should be transferred the vested funds.", + " - `amount`: The amount of funds to transfer and will be vested.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 4 Reads, 4 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", + " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", + " - Benchmark: 100.3 + .365 * l µs (min square analysis)", + " - Using 100 µs fixed. Assuming less than 50 locks on any user, else we may want factor in number of locks.", + " # " + ] + } + ], + "events": [ + { + "name": "VestingUpdated", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The amount vested has been updated. This could indicate more funds are available. The", + " balance given is the amount which is left unvested (and thus locked). ", + " [account, unvested]" + ] + }, + { + "name": "VestingCompleted", + "args": [ + "AccountId" + ], + "docs": [ + " An [account] has become fully vested. No further vesting can happen." + ] + } + ], + "constants": [ + { + "name": "MinVestedTransfer", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be transferred to create a new vesting schedule." + ] + } + ], + "errors": [ + { + "name": "NotVesting", + "docs": [ + " The account given is not vesting." + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " An existing vesting schedule already exists for this account that cannot be clobbered." + ] + }, + { + "name": "AmountLow", + "docs": [ + " Amount being transferred is too low to create a vesting schedule." + ] + } + ] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Bytes", + "value": "TaskAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from identity to the block number and index of the task." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "schedule", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.29 + .126 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda", + " - Will use base weight of 25 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u32" + } + ], + "docs": [ + " Cancel an anonymously scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.15 + 2.869 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_named", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 29.6 + .159 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 35 which should be good for more than 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel_named", + "args": [ + { + "name": "id", + "type": "Bytes" + } + ], + "docs": [ + " Cancel a named scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 24.91 + 2.907 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_after", + "args": [ + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task after a delay.", + "", + " # ", + " Same as [`schedule`].", + " # " + ] + }, + { + "name": "schedule_named_after", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task after a delay.", + "", + " # ", + " Same as [`schedule_named`].", + " # " + ] + } + ], + "events": [ + { + "name": "Scheduled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Scheduled some task. [when, index]" + ] + }, + { + "name": "Canceled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Canceled some task. [when, index]" + ] + }, + { + "name": "Dispatched", + "args": [ + "TaskAddress", + "Option", + "DispatchResult" + ], + "docs": [ + " Dispatched some task. [task, id, result]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "FailedToSchedule", + "docs": [ + " Failed to schedule a call" + ] + }, + { + "name": "FailedToCancel", + "docs": [ + " Failed to cancel a scheduled call" + ] + }, + { + "name": "TargetBlockNumberInPast", + "docs": [ + " Given target block number is in the past." + ] + } + ] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": [ + { + "name": "proxy", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorised for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "add_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Register a proxy account for the sender that is able to make calls on its behalf.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to make a proxy.", + " - `proxy_type`: The permissions allowed for this proxy account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Unregister a proxy account for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to remove as a proxy.", + " - `proxy_type`: The permissions currently enabled for the removed proxy account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxies", + "args": [], + "docs": [ + " Unregister all proxy accounts for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " WARNING: This may be called on accounts created by `anonymous`, however if done, then", + " the unreserved fees will be inaccessible. **All access to this account will be lost.**", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "anonymous", + "args": [ + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u16" + } + ], + "docs": [ + " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + " initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + " Requires a `Signed` origin.", + "", + " - `proxy_type`: The type of the proxy that the sender will be registered as over the", + " new account. This will almost always be the most permissive `ProxyType` possible to", + " allow for maximum flexibility.", + " - `index`: A disambiguation index, in case this is called multiple times in the same", + " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + " want to use `0`.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " Fails with `Duplicate` if this has already been called in this transaction, from the", + " same sender, with the same parameters.", + "", + " Fails if there are insufficient funds to pay for deposit.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # ", + " TODO: Might be over counting 1 read" + ] + }, + { + "name": "kill_anonymous", + "args": [ + { + "name": "spawner", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "height", + "type": "Compact" + }, + { + "name": "ext_index", + "type": "Compact" + } + ], + "docs": [ + " Removes a previously spawned anonymous proxy.", + "", + " WARNING: **All access to this account will be lost.** Any funds held in it will be", + " inaccessible.", + "", + " Requires a `Signed` origin, and the sender account must have been created by a call to", + " `anonymous` with corresponding parameters.", + "", + " - `spawner`: The account that originally called `anonymous` to create this account.", + " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", + " - `proxy_type`: The proxy type originally passed to `anonymous`.", + " - `height`: The height of the chain when the call to `anonymous` was processed.", + " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", + "", + " Fails with `NoPermission` in case the caller is not a previously created anonymous", + " account whose `anonymous` call has corresponding parameters.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "announce", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Publish the hash of a proxy-call that will be made in the future.", + "", + " This must be called some number of blocks before the corresponding `proxy` is attempted", + " if the delay associated with the proxy relationship is greater than zero.", + "", + " No more than `MaxPending` announcements may be made at any one time.", + "", + " This will take a deposit of `AnnouncementDepositFactor` as well as", + " `AnnouncementDepositBase` if there are no other pending announcements.", + "", + " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "remove_announcement", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove a given announcement.", + "", + " May be called by a proxy account to remove a call they previously announced and return", + " the deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "reject_announcement", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove the given announcement of a delegate.", + "", + " May be called by a target (proxied) account to remove a call that one of their delegates", + " (`delegate`) has announced they want to execute. The deposit is returned.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `delegate`: The account that previously announced the call.", + " - `call_hash`: The hash of the call to be made.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "proxy_announced", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorised for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + } + ], + "events": [ + { + "name": "ProxyExecuted", + "args": [ + "DispatchResult" + ], + "docs": [ + " A proxy was executed correctly, with the given [result]." + ] + }, + { + "name": "AnonymousCreated", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "u16" + ], + "docs": [ + " Anonymous account has been created by new proxy with given", + " disambiguation index and proxy type. [anonymous, who, proxy_type, disambiguation_index]" + ] + }, + { + "name": "Announced", + "args": [ + "AccountId", + "AccountId", + "Hash" + ], + "docs": [ + " An announcement was placed to make a call in the future. [real, proxy, call_hash]" + ] + } + ], + "constants": [ + { + "name": "ProxyDepositBase", + "type": "BalanceOf", + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy." + ] + }, + { + "name": "ProxyDepositFactor", + "type": "BalanceOf", + "value": "0x0060aa7714b400000000000000000000", + "docs": [ + " The amount of currency needed per proxy added." + ] + }, + { + "name": "MaxProxies", + "type": "u16", + "value": "0x2000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": "u32", + "value": "0x20000000", + "docs": [ + " `MaxPending` metadata shadow." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": "BalanceOf", + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " `AnnouncementDepositBase` metadata shadow." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": "BalanceOf", + "value": "0x00c054ef286801000000000000000000", + "docs": [ + " `AnnouncementDepositFactor` metadata shadow." + ] + } + ], + "errors": [ + { + "name": "TooMany", + "docs": [ + " There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "docs": [ + " Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "docs": [ + " Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "docs": [ + " A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "docs": [ + " Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "docs": [ + " Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "docs": [ + " Announcement, if made at all, was made too recently." + ] + } + ] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "[u8;32]", + "value": "Multisig", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + }, + { + "name": "Calls", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "[u8;32]", + "value": "(OpaqueCall,AccountId,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": [ + { + "name": "as_multi_threshold_1", + "args": [ + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `other_signatories`: The accounts (other than the sender) who are part of the", + " multi-signature, but do not participate in the approval process.", + " - `call`: The call to be executed.", + "", + " Result is equivalent to the dispatched result.", + "", + " # ", + " O(Z + C) where Z is the length of the call and C its execution weight.", + " -------------------------------", + " - Base Weight: 33.72 + 0.002 * Z µs", + " - DB Weight: None", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call", + "type": "OpaqueCall" + }, + { + "name": "store_call", + "type": "bool" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " If there are enough, then dispatch the call.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call`: The call to be executed.", + "", + " NOTE: Unless this is the final approval, you will generally want to use", + " `approve_as_multi` instead, since it only requires a hash of the call.", + "", + " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + " on success, result is `Ok` and the result from the interior call, if it was executed,", + " may be found in the deposited `MultisigExecuted` event.", + "", + " # ", + " - `O(S + Z + Call)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - The weight of the `call`.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", + " deposit taken for its lifetime of", + " `DepositBase + threshold * DepositFactor`.", + " -------------------------------", + " - Base Weight:", + " - Create: 41.89 + 0.118 * S + .002 * Z µs", + " - Create w/ Store: 53.57 + 0.119 * S + .003 * Z µs", + " - Approve: 31.39 + 0.136 * S + .002 * Z µs", + " - Complete: 39.94 + 0.26 * S + .002 * Z µs", + " - DB Weight:", + " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "approve_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call_hash", + "type": "[u8;32]" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call_hash`: The hash of the call to be executed.", + "", + " NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", + " deposit taken for its lifetime of", + " `DepositBase + threshold * DepositFactor`.", + " ----------------------------------", + " - Base Weight:", + " - Create: 44.71 + 0.088 * S", + " - Approve: 31.48 + 0.116 * S", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account]", + " - Write: Multisig Storage, [Caller Account]", + " # " + ] + }, + { + "name": "cancel_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "timepoint", + "type": "Timepoint" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + " for this operation will be unreserved on success.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `timepoint`: The timepoint (block number and transaction index) of the first approval", + " transaction for this dispatch.", + " - `call_hash`: The hash of the call to be executed.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - One event.", + " - I/O: 1 read `O(S)`, one remove.", + " - Storage: removes one item.", + " ----------------------------------", + " - Base Weight: 36.07 + 0.124 * S", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", + " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", + " # " + ] + } + ], + "events": [ + { + "name": "NewMultisig", + "args": [ + "AccountId", + "AccountId", + "CallHash" + ], + "docs": [ + " A new multisig operation has begun. [approving, multisig, call_hash]" + ] + }, + { + "name": "MultisigApproval", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been approved by someone. [approving, timepoint, multisig, call_hash]" + ] + }, + { + "name": "MultisigExecuted", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash", + "DispatchResult" + ], + "docs": [ + " A multisig operation has been executed. [approving, timepoint, multisig, call_hash]" + ] + }, + { + "name": "MultisigCancelled", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been cancelled. [cancelling, timepoint, multisig, call_hash]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "MinimumThreshold", + "docs": [ + " Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "docs": [ + " Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "docs": [ + " Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "docs": [ + " There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "docs": [ + " There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "docs": [ + " The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "docs": [ + " The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "docs": [ + " Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "docs": [ + " No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "docs": [ + " A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "docs": [ + " A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "WeightTooLow", + "docs": [ + " The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "docs": [ + " The data to be stored is already stored." + ] + } + ] + } + ], + "extrinsic": { + "version": 4, + "signedExtensions": [ + "CheckSpecVersion", + "CheckTxVersion", + "CheckGenesis", + "CheckMortality", + "CheckNonce", + "CheckWeight", + "ChargeTransactionPayment" + ] + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v12/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v12/bizinikiwi-hex.ts new file mode 100644 index 0000000..8e5ddde --- /dev/null +++ b/packages/types-support/src/metadata/v12/bizinikiwi-hex.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export default '0x6d6574610c981853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e28682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e7901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697320657870656e73697665292e2c202d2031206576656e742e7d012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c792074686973206973207665727920657870656e736976652e902057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e75012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e0503106e6f6465387375627374726174652d6e6f64650a000000090100000100000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a04000000d2bc9897eed08f1502000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b01000000020000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978087538042a14a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e48802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e34f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e00f0202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e0108404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e0000011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304000c5d012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e29207468617420696e636c756465732074686520565246206f75747075742067656e6572617465645101206174207468697320626c6f636b2e2054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000485012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e2067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f667045717569766f636174696f6e50726f6f663c543a3a4865616465723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c75363420c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e3c5820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f2831296029a101202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e20606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e00001c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657844690120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e052042616c616e636573012042616c616e6365731034546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964705665633c42616c616e63654c6f636b3c543a3a42616c616e63653e3e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e6cd8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e4101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973902020206e6f7420617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d04484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c204f766572666c6f77047420476f7420616e206f766572666c6f7720616674657220616464696e674c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d657869737406485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000768456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173651814526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e01043c7375626d69745f756e7369676e65640820736f6c7574696f6e64526177536f6c7574696f6e3c436f6d706163744f663c543e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e011838536f6c7574696f6e53746f726564043c456c656374696f6e436f6d7075746510b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656404244163636f756e74496404290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656404244163636f756e74496404250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e0c34556e7369676e6564506861736538543a3a426c6f636b4e756d62657210320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c10a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e0c6850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e081c5374616b696e67011c5374616b696e677830486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f7250726566730008000004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e00040004650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0031012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6053657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040510cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076362e302e3020666f72206e6577206e6574776f726b732e015c10626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e5865012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a3101202d20526561643a20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c2043757272656e74204572612c20486973746f72792044657074682c204c6f636b73e0202d2057726974653a20426f6e6465642c2050617965652c205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e5465012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c657220616e64f82069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e34202d2d2d2d2d2d2d2d2d2d2d2d2c204442205765696768743a1501202d20526561643a2045726120456c656374696f6e205374617475732c20426f6e6465642c204c65646765722c205b4f726967696e204163636f756e745d2c204c6f636b73a4202d2057726974653a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e805501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652e5101202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c6564207669615c2020206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a1d01202d20526561643a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e744572612c204c6f636b732c2042616c616e63654f662053746173682ca4202d2057726974653a204c6f636b732c204c65646765722c2042616c616e63654f662053746173682c28203c2f7765696768743e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533327c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766520205570646174653a2501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c204c6f636b732c205b4f726967696e204163636f756e745da8202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c656467657218204b696c6c3a4501202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c2043757272656e74204572612c20426f6e6465642c20536c617368696e67205370616e732c205b4f726967696e8c2020204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173685101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732cb02020205b4f726967696e204163636f756e745d2c204c6f636b732c2042616c616e63654f662073746173682e74202d2057726974657320456163683a205370616e536c617368202a20530d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667344e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e30202d2d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a90202d20526561643a2045726120456c656374696f6e205374617475732c204c656467657280202d2057726974653a204e6f6d696e61746f72732c2056616c696461746f7273302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00510120456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e20546869732063616e206f6e6c792062652063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e28202d2d2d2d2d2d2d2d2d34205765696768743a204f284e2984207768657265204e20697320746865206e756d626572206f6620746172676574732c204442205765696768743ac8202d2052656164733a2045726120456c656374696f6e205374617475732c204c65646765722c2043757272656e742045726184202d205772697465733a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e146368696c6c0044c8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0d0120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e24202d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743a88202d20526561643a20457261456c656374696f6e5374617475732c204c656467657280202d2057726974653a2056616c696461746f72732c204e6f6d696e61746f7273302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e842053616d65206173205b607365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f657261730024b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100284d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b738501205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c204163636f756e742c204c6f636b736c2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730020050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657870110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e00010120546869732063616e206f6e6c792062652063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e292c204442205765696768743a2901202d20526561643a20457261456c656374696f6e5374617475732c2043757272656e744572612c20486973746f727944657074682c204572617356616c696461746f725265776172642c2d01202020202020202020457261735374616b657273436c69707065642c2045726173526577617264506f696e74732c204572617356616c696461746f725072656673202838206974656d73291101202d205265616420456163683a20426f6e6465642c204c65646765722c2050617965652c204c6f636b732c2053797374656d204163636f756e74202835206974656d7329d8202d20577269746520456163683a2053797374656d204163636f756e742c204c6f636b732c204c6564676572202833206974656d73290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e38e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00550120546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722c20616e642069742063616e206265206f6e6c792063616c6c6564207768656e8c205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e40202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a010120202020202d2052656164733a20457261456c656374696f6e5374617475732c204c65646765722c204c6f636b732c205b4f726967696e204163636f756e745db820202020202d205772697465733a205b4f726967696e204163636f756e745d2c204c6f636b732c204c6564676572302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e543101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e4901202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e450120202020546869732073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c6445012020202065726120686973746f72792e204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e2054727573746564206279a02020202060526f6f746020746f207265706f727420616e206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673810120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c2045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533323c61012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b73a501202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34e42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e490120416e642c2069742063616e206265206f6e6c792063616c6c6564207768656e205b60457261456c656374696f6e537461747573605d2069732060436c6f736564602e2054686520636f6e74726f6c6c657298206163636f756e742073686f756c6420726570726573656e7420612076616c696461746f722e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e0124244572615061796f75740c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d1852657761726408244163636f756e7449641c42616c616e636504fc20546865207374616b657220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d14536c61736808244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d3c5374616b696e67456c656374696f6e0004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000140101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e00bc20546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2d012053657420746f203020696620736c61736865732073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f723820696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00690120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e20636c61696d2101207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c753332101000000004b4204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e7320706572206e6f6d696e61746f722e50344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e44496e73756666696369656e7456616c756504cc2043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2062616c616e63652e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e091c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e74608c202d20446257726974657320706572206b65792069643a20604b65794f776e64657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578086501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e0a2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e5501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374c82020206e6f74206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e2d01202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e010120202045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001482050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e047d012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e64657810626f6f6c04c820412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c2069735f6f6b5c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d20556e6c6f636b656404244163636f756e74496404bc20416e205c5b6163636f756e745c5d20686173206265656e20756e6c6f636b6564207375636365737366756c6c792e2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e203c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000004b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e8c2056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f7420657869737420426164496e646578043820556e6b6e6f776e20696e6465783c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365304e6f7444656c6567617465640438204e6f742064656c656761746564444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67244e6f744c6f636b656404a42054686520746172676574206163636f756e7420646f6573206e6f7420686176652061206c6f636b2e284e6f744578706972656404f020546865206c6f636b206f6e20746865206163636f756e7420746f20626520756e6c6f636b656420686173206e6f742079657420657870697265642e204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e204f766572666c6f7704a420416e20756e657870656374656420696e7465676572206f766572666c6f77206f636375727265642e24556e646572666c6f7704a820416e20756e657870656374656420696e746567657220756e646572666c6f77206f636375727265642e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e38496e76616c69645769746e6573730490205468652070726f7669646564207769746e65737320646174612069732077726f6e672e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0b1c436f756e63696c014c496e7374616e636531436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c48546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746084205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e3901202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652eac202020202020202020202020202020205573656420666f722077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a75012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e6720746865206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e28f420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768748501202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c38f42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c690120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e78510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e008d01202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669618101202020202020202020202020202020202020206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f2831296029810120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f64656320604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a4861736834790120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e742073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0d24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e550120202053696d696c617220746f205b6072656d6f76655f6d656d62657273605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c794d01202020757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0e4c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e0f1c4772616e647061013c4772616e64706146696e616c6974791814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66a845717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e10205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d143050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f7472737279041901205468652074726561737572792773206d6f64756c652069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1124436f6e7472616374730124436f6e747261637473183c43757272656e745363686564756c6501002c5363686564756c653c543e450a000000000004000000000200000001000080000000100000000010000000010000200000001f060000d66a0200dd84030026180000bd1c0000430b000003170000ae2800009c000000dd69010063e00200300700000706000065070000b10500006e180000002800006905000072deae08f0070000dc070000710a00006a080000a507000096070000d1070000770900003e09000075090000d809000082090000bc090000120900003c09000072090000dc090000f7080000e108000062090000162000006b1d00002e2000002c1b0000fe080000000900000f090000a7090000f1090000ba090000bb09000065090000d8b82800000000009e9828000000000016902700000000004c705700000000004cc8270000000000e4bc270000000000e8d1270000000000a0685b0000000000484f2700000000009e7627000000000000f45100000000004cab120000000000184a700000000000140100000000000000cd460000000000fc02000000000000d0b570270000000013200000000000007821da3100000000e0200000000000009a120000000000000482b10900000000e03463000000000038d7900000000000de67d00700000000840900000000000006186e000000000016935d1200000000da02000000000000eaced408000000003a240e0200000000e705000000000000fc41d50a00000000d48e9309000000002d0f0000000000003a4225090000000047020000000000002303000000000000ba7c962300000000a5210000000000006d020000000000005403000000000000e50b00000000000026922400000000006110000000000000a4122600000000001d0d000000000000520e2200000000001a0600000000000020222200000000001a0600000000000044b13c000000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e4c5072656661625761736d4d6f64756c653c543e0004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100505665633c44656c65746564436f6e74726163743e040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e01143c7570646174655f7363686564756c6504207363686564756c652c5363686564756c653c543e18b4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e003d0120546865207363686564756c6527732076657273696f6e2063616e6e6f74206265206c657373207468616e207468652076657273696f6e206f66207468652073746f726564207363686564756c652e2d012049662061207363686564756c6520646f6573206e6f74206368616e67652074686520696e737472756374696f6e2077656967687473207468652076657273696f6e20646f6573206e6f743901206e65656420746f20626520696e637265617365642e205468657265666f726520776520616c6c6f772073746f72696e672061207363686564756c65207468617420686173207468652073616d656c2076657273696f6e206173207468652073746f726564206f6e652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f64651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10636f64651c5665633c75383e10646174611c5665633c75383e1073616c741c5665633c75383e54350120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e673820736f6d652062616c616e63652e000501205468697320697320746865206f6e6c792066756e6374696f6e20746861742063616e206465706c6f79206e657720636f646520746f2074686520636861696e2e0034202320506172616d6574657273006101202a2060656e646f776d656e74603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e1901202a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722ed0202a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef8202a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3501202a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a007501202d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e5d01202d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e4d01202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ed4202d205468652060656e646f776d656e7460206973207472616e7366657272656420746f20746865206e6577206163636f756e742e4501202d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e74696174651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e1073616c741c5665633c75383e14010120496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e00390120546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654d0120636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e61727948206d75737420626520737570706c6965642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e244d0120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b39012070726f6475636572206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e004d0120496e2063617365206f662061207375636365737366756c206576696374696f6e206e6f20666565732061726520636861726765642066726f6d207468652073656e6465722e20486f77657665722c20746865490120726577617264206973206361707065642062792074686520746f74616c20616d6f756e74206f662072656e742074686174207761732070617965642062792074686520636f6e7472616374207768696c65382069742077617320616c6976652e00550120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c205b604572726f723a3a436f6e74726163744e6f74457669637461626c65605dec2069732072657475726e656420616e64207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e012030496e7374616e74696174656408244163636f756e744964244163636f756e74496404390120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6465706c6f7965722c20636f6e74726163745c5d1c4576696374656404244163636f756e74496404190120436f6e747261637420686173206265656e206576696374656420616e64206973206e6f7720696e20746f6d6273746f6e652073746174652e205c5b636f6e74726163745c5d285465726d696e6174656408244163636f756e744964244163636f756e74496430e820436f6e747261637420686173206265656e207465726d696e6174656420776974686f7574206c656176696e67206120746f6d6273746f6e652e68205c5b636f6e74726163742c2062656e65666963696172795c5d0024202320506172616d7300c0202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420776173207465726d696e617465642e3101202d206062656e6566696369617279603a20546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e63652e001c2023204e6f7465002d0120546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420776974686f7574206120746f6d6273746f6e6520616e6420656d697474696e67ac2074686973206576656e742069732062792063616c6c696e6720607365616c5f7465726d696e617465602e20526573746f72656410244163636f756e744964244163636f756e74496410486173681c42616c616e636524bc20526573746f726174696f6e206f66206120636f6e747261637420686173206265656e207375636365737366756c2eb8205c5b726573746f7265722c20646573742c20636f64655f686173682c2072656e745f616c6c6f77616e63655c5d0024202320506172616d7300d0202d2060726573746f726572603a204163636f756e74204944206f662074686520726573746f72696e6720636f6e74726163742ebc202d206064657374603a204163636f756e74204944206f662074686520726573746f72656420636f6e74726163742ecc202d2060636f64655f68617368603a20436f64652068617368206f662074686520726573746f72656420636f6e74726163742ef4202d206072656e745f616c6c6f77616e6365603a2052656e7420616c6c6f77616e6365206f662074686520726573746f72656420636f6e74726163742e28436f646553746f72656404104861736804f020436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333218c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e30205c5b76657273696f6e5c5d0024202320506172616d7300d0202d206076657273696f6e603a205468652076657273696f6e206f6620746865206e65776c7920736574207363686564756c652e3c436f6e7472616374456d697474656408244163636f756e7449641c5665633c75383e20a0204120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e4c205c5b636f6e74726163742c20646174615c5d0024202320506172616d7300cc202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420656d697474656420746865206576656e742e3101202d206064617461603a204461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e7472616374b82020202020202020202020636f6d70696c6174696f6e206973206e656564656420746f206465636f64652069742e2c436f646552656d6f76656404104861736810b0204120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e38205c5b636f64655f686173685c5d00550120546869732068617070656e73207768656e20746865206c61737420636f6e747261637420746861742075736573207468697320636f64652068617368207761732072656d6f766564206f7220657669637465642e304c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000f0e8857a9c0200000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e484465706f736974506572436f6e74726163743042616c616e63654f663c543e4000f0e8857a9c02000000000000000000202101205468652062616c616e636520657665727920636f6e7472616374206e6565647320746f206465706f73697420746f207374617920616c69766520696e646566696e6974656c792e005101205468697320697320646966666572656e742066726f6d20746865205b6053656c663a3a546f6d6273746f6e654465706f736974605d20626563617573652074686973206f6e6c79206e6565647320746f2062654501206465706f7369746564207768696c652074686520636f6e747261637420697320616c6976652e20436f73747320666f72206164646974696f6e616c2073746f726167652061726520616464656420746f402074686973206261736520636f73742e006d01205468697320697320612073696d706c652077617920746f20656e73757265207468617420636f6e747261637473207769746820656d7074792073746f72616765206576656e7475616c6c79206765742064656c657465642062797101206d616b696e67207468656d207061792072656e742e2054686973206372656174657320616e20696e63656e7469766520746f2072656d6f7665207468656d206561726c7920696e206f7264657220746f20736176652072656e742e544465706f73697450657253746f72616765427974653042616c616e63654f663c543e400060defb740500000000000000000000185501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206279746520746f207374617920616c69766520696e646566696e6974656c792e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e544465706f73697450657253746f726167654974656d3042616c616e63654f663c543e4000f0ab75a40d000000000000000000000c5501205468652062616c616e6365206120636f6e7472616374206e6565647320746f206465706f736974207065722073746f72616765206974656d20746f207374617920616c69766520696e646566696e6974656c792e00310120497420776f726b73207468652073616d65206173205b6053656c663a3a4465706f73697450657253746f7261676542797465605d2062757420666f722073746f72616765206974656d732e3052656e744672616374696f6e1c50657262696c6c1085040000140d0120546865206672616374696f6e206f6620746865206465706f73697420746861742073686f756c6420626520757365642061732072656e742070657220626c6f636b2e005101205768656e206120636f6e7472616374206861736e277420656e6f7567682062616c616e6365206465706f736974656420746f207374617920616c69766520696e646566696e6974656c79206974206e65656473450120746f207061792070657220626c6f636b20666f72207468652073746f7261676520697420636f6e73756d65732074686174206973206e6f7420636f766572656420627920746865206465706f7369742e590120546869732064657465726d696e657320686f77206869676820746869732072656e74207061796d656e742069732070657220626c6f636b2061732061206672616374696f6e206f6620746865206465706f7369742e3c5375726368617267655265776172643042616c616e63654f663c543e40005cb2ec22000000000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e204d617844657074680c753332102000000004dc20546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e304d617856616c756553697a650c753332100040000004010120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520616e64206576656e74207061796c6f616420696e2062797465732e4844656c6574696f6e517565756544657074680c75333210f000000004f420546865206d6178696d756d206e756d626572206f6620747269657320746861742063616e2062652071756575656420666f722064656c6574696f6e2e4c44656c6574696f6e5765696768744c696d6974185765696768742000d0ed902e000000044d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e2c4d6178436f646553697a650c75333210000002000c5d0120546865206d6178696d756d206c656e677468206f66206120636f6e747261637420636f646520696e2062797465732e2054686973206c696d6974206170706c69657320746f2074686520696e737472756d656e74656451012076657273696f6e206f662074686520636f64652e205468657265666f72652060696e7374616e74696174655f776974685f636f6465602063616e206661696c206576656e207768656e20737570706c79696e679c2061207761736d2062696e6172792062656c6f772074686973206d6178696d756d2073697a652e7458496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e54496e76616c6964537572636861726765436c61696d04550120416e206f726967696e206d757374206265207369676e6564206f7220696e686572656e7420616e6420617578696c696172792073656e646572206f6e6c792070726f7669646564206f6e20696e686572656e742e54496e76616c6964536f75726365436f6e747261637404dc2043616e6e6f7420726573746f72652066726f6d206e6f6e6578697374696e67206f7220746f6d6273746f6e6520636f6e74726163742e68496e76616c696444657374696e6174696f6e436f6e747261637404c42043616e6e6f7420726573746f726520746f206e6f6e6578697374696e67206f7220616c69766520636f6e74726163742e40496e76616c6964546f6d6273746f6e65046020546f6d6273746f6e657320646f6e2774206d617463682e54496e76616c6964436f6e74726163744f726967696e04bc20416e206f726967696e20547269654964207772697474656e20696e207468652063757272656e7420626c6f636b2e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c6410210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f773d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f207468697320696e206f7264657220746f20616c6c6f77450120666f72206120746f6d6273746f6e6520746f20626520637265617465642e2055736520607365616c5f7465726d696e6174656020746f2072656d6f7665206120636f6e747261637420776974686f757470206c656176696e67206120746f6d6273746f6e6520626568696e642e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e2c4e6f7443616c6c61626c650831012054686520636f6e74726163742074686174207761732063616c6c656420697320656974686572206e6f20636f6e747261637420617420616c6c20286120706c61696e206163636f756e74294c206f72206973206120746f6d6273746f6e652e30436f6465546f6f4c617267650841012054686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e20746865482063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c6172676504d0205468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e405265656e7472616e636544656e6965640c41012054686520616374696f6e20706572666f726d6564206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420706572666f726d696e6720697420697320616c72656164793d01206f6e207468652063616c6c20737461636b2e2054686f736520616374696f6e732061726520636f6e74726163742073656c66206465737472756374696f6e20616e6420726573746f726174696f6e40206f66206120746f6d6273746f6e652e40496e707574416c72656164795265616404210120607365616c5f696e70757460207761732063616c6c65642074776963652066726f6d207468652073616d6520636f6e747261637420657865637574696f6e20636f6e746578742e5052616e646f6d5375626a656374546f6f4c6f6e6704dc20546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730421012054686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730431012054686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e0c49012054686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c7473510120696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e747261637473342069732072656a65637465642e4444656c6574696f6e517565756546756c6c1405012052656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00550120546869732063616e2068617070656e207768656e206569746865722063616c6c696e67205b6050616c6c65743a3a636c61696d5f737572636861726765605d206f7220607365616c5f7465726d696e617465602e5101205468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e250120547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e50436f6e74726163744e6f74457669637461626c65102d01204120636f6e747261637420636f756c64206e6f74206265206576696374656420626563617573652069742068617320656e6f7567682062616c616e636520746f207061792072656e742e00250120546869732063616e2062652072657475726e65642066726f6d205b6050616c6c65743a3a636c61696d5f737572636861726765605d20626563617573652074686520746172676574c420636f6e74726163742068617320656e6f7567682062616c616e636520746f2070617920666f72206974732072656e742e4053746f7261676545786861757374656410350120412073746f72616765206d6f64696669636174696f6e20657868617573746564207468652033326269742074797065207468617420686f6c6473207468652073746f726167652073697a652e00350120546869732063616e206569746865722068617070656e207768656e2074686520616363756d756c617465642073746f7261676520696e20627974657320697320746f6f206c61726765206f72ac207768656e206e756d626572206f662073746f72616765206974656d7320697320746f6f206c617267652e444475706c6963617465436f6e747261637404cc204120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e4101202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e290101202020616e642045206973206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e000828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f7665727900010000000015204f6666656e63657301204f6666656e636573101c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e4044656665727265644f6666656e6365730100645665633c44656665727265644f6666656e63654f663c543e3e0400086501204465666572726564207265706f72747320746861742068617665206265656e2072656a656374656420627920746865206f6666656e63652068616e646c657220616e64206e65656420746f206265207375626d6974746564442061742061206c617465722074696d652e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e63650c104b696e64384f706171756554696d65536c6f7410626f6f6c10550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e644d0120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e206c617374190120656c656d656e7420696e64696361746573206f6620746865206f6666656e636520776173206170706c69656420287472756529206f7220717565756564202866616c73652974205c5b6b696e642c2074696d65736c6f742c206170706c6965645c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e010000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e74496468526567697374726174696f6e3c42616c616e63654f663c543e3e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100d85665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e3e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666f304964656e74697479496e666f4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637471012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c206265290120616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c753332100a0000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2501202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732ed420202053686f756c64206265206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e3101202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d70741d012020206265666f726520746865206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f94202020746865206c656e677468206f6620746865206c697374206f6620667269656e64732e3d01202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a6564e820202074686174206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e7401012020206e6565647320746f206265207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496464290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f755420202077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a2d01202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79502020207265636f766572656420627920796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000004550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d000000000000000000000469012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc601000000000000000000041d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e44284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f736564204f766572666c6f77049c2054686572652077617320616e206f766572666c6f7720696e20612063616c63756c6174696f6e30416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67041c56657374696e6700010230543a3a4163636f756e744964a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e011010766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e406820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e001501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732e0101202d2060616d6f756e74603a2054686520616d6f756e74206f662066756e647320746f207472616e7366657220616e642077696c6c206265207665737465642ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c59012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e646963617465206d6f72652066756e64732061726520617661696c61626c652e2054686519012062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e744964041d0120416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e204e6f20667572746865722076657374696e672063616e2068617070656e2e04444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e0c284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5c4578697374696e6756657374696e675363686564756c65045d0120416e206578697374696e672076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e7420746861742063616e6e6f7420626520636c6f6262657265642e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743e702053616d65206173205b607363686564756c655f6e616d6564605d2e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d0010404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e7449644501285665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449643d01285665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a426c6f636b4e756d6265723e3e2c0a2042616c616e63654f663c543e290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e010c3450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c75313608ec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e690120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00690120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f2061207072652d6578697374696e6761012073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b6520696e746f206163636f756e74c020603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c75313608200004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c39000000000000000000000c310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00690120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c79203136206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b8590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f7765696768741857656967687490590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e3101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061902020206465706f7369742074616b656e20666f7220697473206c69666574696d65206f66b4202020604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000008710120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f2073746f72656c20612064697370617463682063616c6c20666f72206c617465722e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000455012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e384d61785369676e61746f726965730c75313608640004010120546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420666f72206120676976656e206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e201054697073012054726561737572790810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732ec02020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e6774682060546009012020202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e0d0120202020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e64b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e15012020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368446020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743ee4202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e9c2020206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d1430546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e7404140431012054686520616d6f756e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000409012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e2e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e211841737365747301184173736574731014417373657400010228543a3a41737365744964f8417373657444657461696c733c543a3a42616c616e63652c20543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e00040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7401020228543a3a4173736574496430543a3a4163636f756e74496488417373657442616c616e63653c543a3a42616c616e63652c20543a3a45787472613e02280000000000000000000004e420546865206e756d626572206f6620756e697473206f66206173736574732068656c6420627920616e7920676976656e206163636f756e742e24417070726f76616c7300020228543a3a4173736574496464417070726f76616c4b65793c543a3a4163636f756e7449643eb0417070726f76616c3c543a3a42616c616e63652c204465706f73697442616c616e63654f663c542c20493e3e02040008590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e204d6574616461746101010228543a3a417373657449649441737365744d657461646174613c4465706f73697442616c616e63654f663c542c20493e3e005000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e015c186372656174650c0869644c436f6d706163743c543a3a417373657449643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e636528543a3a42616c616e63654cec2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c02046756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e003020506172616d65746572733a5d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f637265617465100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653469735f73756666696369656e7410626f6f6c2c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e54fc2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e005d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e737d01206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6720607472616e736665725f6f776e657273686970604020616e6420607365745f7465616d602e5901202d20606d61785f7a6f6d62696573603a2054686520746f74616c206e756d626572206f66206163636f756e7473207768696368206d617920686f6c642061737365747320696e207468697320636c61737320796574742068617665206e6f206578697374656e7469616c206465706f7369742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f79080869644c436f6d706163743c543a3a417373657449643e1c7769746e6573733844657374726f795769746e65737338902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00590120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686564206f776e6572206f662074686520617373657420606964602e005101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671c2061737365742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0078205765696768743a20604f2863202b2070202b206129602077686572653ac4202d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e7473296070202d206073203d207769746e6573732e73756666696369656e74736068202d206061203d207769746e6573732e617070726f76616c7360106d696e740c0869644c436f6d706163743c543a3a417373657449643e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e308c204d696e7420617373657473206f66206120706172746963756c617220636c6173732e003d0120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e1101202d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec8202d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129605901204d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e3c490120526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00dc204261696c732077697468206042616c616e63655a65726f6020696620746865206077686f6020697320616c726561647920646561642e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea4202d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e2d01202d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e00550120456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f77207468653d01206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e003c205765696768743a20604f283129600d01204d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e48d4204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605d01204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b205072696f72202620706f7374207a6f6d6269652d737461747573b8206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662060746172676574602e4c7472616e736665725f6b6565705f616c6976650c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485d01204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605d01204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b205072696f72202620706f7374207a6f6d6269652d737461747573b8206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662060746172676574602e38666f7263655f7472616e73666572100869644c436f6d706163743c543a3a417373657449643e18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e4cb8204d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c202d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e98202d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e5d01202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e645d012060646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d82062656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605d01204d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b205072696f72202620706f7374207a6f6d6269652d737461747573b8206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f66206064657374602e18667265657a65080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528e420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e8c202d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f283129601074686177080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528d020416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e94202d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f6173736574040869644c436f6d706163743c543a3a417373657449643e24f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296028746861775f6173736574040869644c436f6d706163743c543a3a417373657449643e24c820416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e657273686970080869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652878204368616e676520746865204f776e6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d100869644c436f6d706163743c543a3a417373657449643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530c8204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f28312960307365745f6d65746164617461100869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c73087538407c2053657420746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00dc2046756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a550120604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a820416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c730875382469735f66726f7a656e10626f6f6c38bc20466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e0070204f726967696e206d75737420626520466f7263654f726967696e2e006c20416e79206465706f736974206973206c65667420616c6f6e652e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e005501205765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e0070204f726967696e206d75737420626520466f7263654f726967696e2e006420416e79206465706f7369742069732072657475726e65642e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f61737365745f737461747573200869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e3469735f73756666696369656e7410626f6f6c2469735f66726f7a656e10626f6f6c589c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e5501202d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e7451012076616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f5901206074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e642074687573510120616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e74207374617465242067726f777468292e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c0869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e50310120417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e005c204f726967696e206d757374206265205369676e65642e00510120456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e74590120666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794d0120617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f58206d656574207468652072696768742076616c75652e004901204e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f6648206d616b696e6720746869732063616c6c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e1101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e4d01202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e420616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c080869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004101204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e6430206064656c6567617465602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004d01204f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e6c206163636f756e74206f662074686520617373657420606964602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f28312960447472616e736665725f617070726f766564100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c64657374696e6174696f6e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485101205472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d706172747924206163636f756e742e004d01204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f2074686520207369676e65722e005d012049662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b82072657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e6501202d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64c02066726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e6501202d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb8202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e00a020456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e003c205765696768743a20604f2831296001481c437265617465640c1c41737365744964244163636f756e744964244163636f756e74496404ec20536f6d6520617373657420636c6173732077617320637265617465642e205c5b61737365745f69642c2063726561746f722c206f776e65725c5d184973737565640c1c41737365744964244163636f756e7449641c42616c616e636504ec20536f6d65206173736574732077657265206973737565642e205c5b61737365745f69642c206f776e65722c20746f74616c5f737570706c795c5d2c5472616e73666572726564101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636504f420536f6d65206173736574732077657265207472616e736665727265642e205c5b61737365745f69642c2066726f6d2c20746f2c20616d6f756e745c5d184275726e65640c1c41737365744964244163636f756e7449641c42616c616e636504e420536f6d652061737365747320776572652064657374726f7965642e205c5b61737365745f69642c206f776e65722c2062616c616e63655c5d2c5465616d4368616e676564101c41737365744964244163636f756e744964244163636f756e744964244163636f756e74496404050120546865206d616e6167656d656e74207465616d206368616e676564205c5b61737365745f69642c206973737565722c2061646d696e2c20667265657a65725c5d304f776e65724368616e676564081c41737365744964244163636f756e744964049820546865206f776e6572206368616e676564205c5b61737365745f69642c206f776e65725c5d1846726f7a656e081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f60207761732066726f7a656e2e205c5b61737365745f69642c2077686f5c5d18546861776564081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f6020776173207468617765642e205c5b61737365745f69642c2077686f5c5d2c417373657446726f7a656e041c4173736574496404bc20536f6d65206173736574206061737365745f696460207761732066726f7a656e2e205c5b61737365745f69645c5d2c4173736574546861776564041c4173736574496404bc20536f6d65206173736574206061737365745f69646020776173207468617765642e205c5b61737365745f69645c5d2444657374726f796564041c41737365744964047820416e20617373657420636c617373207761732064657374726f7965642e30466f72636543726561746564081c41737365744964244163636f756e74496404e020536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e205c5b61737365745f69642c206f776e65725c5d2c4d65746164617461536574141c417373657449641c5665633c75383e1c5665633c75383e08753810626f6f6c046101204e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e205c5b61737365745f69642c206e616d652c2073796d626f6c2c20646563696d616c732c2069735f66726f7a656e5c5d3c4d65746164617461436c6561726564041c4173736574496404d4204d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e205c5b61737365745f69645c5d40417070726f7665645472616e73666572101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636508350120284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e9c205c5b61737365745f69642c20736f757263652c2064656c65676174652c20616d6f756e745c5d44417070726f76616c43616e63656c6c65640c1c41737365744964244163636f756e744964244163636f756e74496408f420416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e60205c5b69642c206f776e65722c2064656c65676174655c5d4c5472616e73666572726564417070726f766564141c41737365744964244163636f756e744964244163636f756e744964244163636f756e7449641c42616c616e63650c350120416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e60206279642074686520617070726f766564206064656c6567617465602e94205c5b69642c206f776e65722c2064656c65676174652c2064657374696e6174696f6e5c5d4841737365745374617475734368616e676564041c4173736574496408fc20416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e1c205c5b69645c5d00342842616c616e63654c6f77041901204163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e2c42616c616e63655a65726f04702042616c616e63652073686f756c64206265206e6f6e2d7a65726f2e304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e047820546865206f726967696e206163636f756e742069732066726f7a656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0490204d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e204f766572666c6f7704982041206d696e74206f7065726174696f6e206c65616420746f20616e206f766572666c6f772e284e6f50726f7669646572046501204e6f2070726f7669646572207265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742e2c4261644d65746164617461046020496e76616c6964206d6574616461746120676976656e2e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c644469650439012054686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e220c4d6d72014c4d65726b6c654d6f756e7461696e52616e67650c20526f6f74486173680100583c5420617320436f6e6669673c493e3e3a3a486173688000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301000c75363420000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001060c753634583c5420617320436f6e6669673c493e3e3a3a48617368000400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000231c4c6f7474657279011c4c6f747465727918304c6f7474657279496e64657801000c7533321000000000001c4c6f74746572790000ac4c6f7474657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e747301010530543a3a4163636f756e74496454287533322c205665633c43616c6c496e6465783e29001400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e7401000c7533321000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b6574730001050c75333230543a3a4163636f756e74496400040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100385665633c43616c6c496e6465783e0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e0110286275795f7469636b6574041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c8c204275792061207469636b657420746f20656e74657220746865206c6f74746572792e00050120546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0d0120736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c642420737563636565642e001101204966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c1501207768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75b02073686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c820546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c73041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e181501205365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e00210120546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e29012070726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d420546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279101470726963653042616c616e63654f663c543e186c656e67746838543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721872657065617410626f6f6c28c82053746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e003020506172616d65746572733a00a0202a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e3d01202a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e4901202a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee4202a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174001001012049662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ec020546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e0110384c6f7474657279537461727465640004702041206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640004882041206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208244163636f756e7449641c42616c616e6365046820412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408244163636f756e7449642443616c6c496e64657804682041207469636b657420686173206265656e20626f7567687421082050616c6c657449642050616c6c657449642070792f6c6f74746f00204d617843616c6c730c753332100a0000000020204f766572666c6f77046820416e206f766572666c6f7720686173206f636375727265642e344e6f74436f6e66696775726564048c2041206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f677265737304882041206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e64656404742041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c04ac205468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e6704f420596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c73049420546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564045c204661696c656420746f20656e636f64652063616c6c73241047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a50141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265723e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d1c285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d62657210002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c753332100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770865012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e207468726f7567686c207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e25041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74'; diff --git a/packages/types-support/src/metadata/v12/bizinikiwi-json.json b/packages/types-support/src/metadata/v12/bizinikiwi-json.json new file mode 100644 index 0000000..a155984 --- /dev/null +++ b/packages/types-support/src/metadata/v12/bizinikiwi-json.json @@ -0,0 +1,14399 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v12": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountInfo", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": "ConsumedWeight" + }, + "fallback": "0x000000000000000000000000000000000000000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": "LastRuntimeUpgradeInfo" + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": "Phase" + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [ + { + "name": "_ratio", + "type": "Perbill" + } + ], + "docs": [ + " A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark.", + "", + " # ", + " - `O(1)`", + " # " + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap.", + "", + " # ", + " - `O(1)`", + " - 1 storage write.", + " - Base Weight: 1.405 µs", + " - 1 write to HEAP_PAGES", + " # " + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code.", + "", + " # ", + " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", + " - 1 storage write (codec `O(C)`).", + " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is expensive).", + " - 1 event.", + " The weight of this function is dependent on the runtime, but generally this is very expensive.", + " We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_code_without_checks", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code without doing any checks of the given `code`.", + "", + " # ", + " - `O(C)` where `C` length of `code`", + " - 1 storage write (codec `O(C)`).", + " - 1 event.", + " The weight of this function is dependent on the runtime. We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_changes_trie_config", + "args": [ + { + "name": "changes_trie_config", + "type": "Option" + } + ], + "docs": [ + " Set the new changes trie configuration.", + "", + " # ", + " - `O(1)`", + " - 1 storage write or delete (codec `O(1)`).", + " - 1 call to `deposit_log`: Uses `append` API, so O(1)", + " - Base Weight: 7.218 µs", + " - DB Weight:", + " - Writes: Changes Trie, System Digest", + " # " + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage.", + "", + " # ", + " - `O(I)` where `I` length of `items`", + " - `I` storage writes (`O(1)`).", + " - Base Weight: 0.568 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage.", + "", + " # ", + " - `O(IK)` where `I` length of `keys` and `K` length of one key", + " - `I` storage deletions.", + " - Base Weight: .378 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + }, + { + "name": "_subkeys", + "type": "u32" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix.", + "", + " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", + " the prefix we are removing to accurately calculate the weight of this function.", + "", + " # ", + " - `O(P)` where `P` amount of keys with prefix `prefix`", + " - `P` storage deletions.", + " - Base Weight: 0.834 * P µs", + " - Writes: Number of subkeys + 1", + " # " + ] + }, + { + "name": "remark_with_event", + "args": [ + { + "name": "remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark and emit event.", + "", + " # ", + " - `O(b)` where b is the length of the remark.", + " - 1 event.", + " # " + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully. \\[info\\]" + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed. \\[error, info\\]" + ] + }, + { + "name": "CodeUpdated", + "args": [], + "docs": [ + " `:code` was updated." + ] + }, + { + "name": "NewAccount", + "args": [ + "AccountId" + ], + "docs": [ + " A new \\[account\\] was created." + ] + }, + { + "name": "KilledAccount", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] was reaped." + ] + }, + { + "name": "Remarked", + "args": [ + "AccountId", + "Hash" + ], + "docs": [ + " On on-chain remark happened. \\[origin, remark_hash\\]" + ] + } + ], + "constants": [ + { + "name": "BlockWeights", + "type": "BlockWeights", + "value": "0x00f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a740000004059730700000000000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": "BlockLength", + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": "BlockNumber", + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": "RuntimeDbWeight", + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": "RuntimeVersion", + "value": "0x106e6f6465387375627374726174652d6e6f64650a000000090100000100000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a04000000d2bc9897eed08f1502000000f78b278be53f454c02000000ed99c5acb25eedf502000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000", + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "type": "u8", + "value": "0x2a", + "docs": [ + " The designated SS85 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": [ + { + "name": "InvalidSpecName", + "docs": [ + " The name of specification does not match between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "docs": [ + " The specification version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "docs": [ + " Failed to extract the runtime version from the new runtime.", + "", + " Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "docs": [ + " Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "docs": [ + " There is a non-zero reference count preventing the account from being purged." + ] + } + ], + "index": 0 + }, + { + "name": "Utility", + "storage": null, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin.", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # ", + "", + " This will return `Ok` in all circumstances. To determine the success of the batch, an", + " event is deposited. If a call failed and the batch was interrupted, then the", + " `BatchInterrupted` event is deposited, along with the number of successful calls made", + " and the error of the failed call. If all were successful, then the `BatchCompleted`", + " event is deposited." + ] + }, + { + "name": "as_derivative", + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through an indexed pseudonym of the sender.", + "", + " Filter from origin are passed along. The call will be dispatched with an origin which", + " use the same filter as the origin of this call.", + "", + " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + " because you expect `proxy` to have been used prior in the call stack and you do not want", + " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + " in the Multisig pallet instead.", + "", + " NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + " The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls and atomically execute them.", + " The whole transaction will rollback and fail if any of the calls failed.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin.", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # " + ] + } + ], + "events": [ + { + "name": "BatchInterrupted", + "args": [ + "u32", + "DispatchError" + ], + "docs": [ + " Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + " well as the error. \\[index, error\\]" + ] + }, + { + "name": "BatchCompleted", + "args": [], + "docs": [ + " Batch of dispatches completed fully with no error." + ] + } + ], + "constants": [], + "errors": [], + "index": 1 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": "NextConfigDescriptor" + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) that includes the VRF output generated", + " at this block. This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output)." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported.", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "plan_config_change", + "args": [ + { + "name": "config", + "type": "NextConfigDescriptor" + } + ], + "docs": [ + " Plan an epoch config change. The epoch config change is recorded and will be enacted on", + " the next call to `enact_epoch_change`. The config will be activated one epoch after.", + " Multiple calls to this method will replace any existing planned config change that had", + " not been enacted yet." + ] + } + ], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0xc800000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [ + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`.", + "", + " # ", + " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in `on_finalize`)", + " - 1 event handler `on_timestamp_set`. Must be `O(1)`.", + " # " + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected* period", + " that the block production apparatus provides. Your chosen consensus system will generally", + " work with this to determine a sensible block time. e.g. For Aura, it will be double this", + " period on default settings." + ] + } + ], + "errors": [], + "index": 3 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [], + "errors": [ + { + "name": "InvalidUncleParent", + "docs": [ + " The uncle parent not in the chain." + ] + }, + { + "name": "UnclesAlreadySet", + "docs": [ + " Uncles already set in the block." + ] + }, + { + "name": "TooManyUncles", + "docs": [ + " Too many uncles." + ] + }, + { + "name": "GenesisUncle", + "docs": [ + " The uncle is genesis." + ] + }, + { + "name": "TooHighUncle", + "docs": [ + " The uncle is too high in chain." + ] + }, + { + "name": "UncleAlreadyIncluded", + "docs": [ + " The uncle is already included." + ] + }, + { + "name": "OldUncle", + "docs": [ + " The uncle isn't recent enough to be included." + ] + } + ], + "index": 4 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountIndex", + "value": "(AccountId,BalanceOf,bool)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an previously unassigned index.", + "", + " Payment: `Deposit` is reserved from the sender account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be claimed. This must not be in use.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an index already owned by the sender to another account. The balance reservation", + " is effectively transferred to the new account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be re-assigned. This must be owned by the sender.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One transfer operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (recipient)", + " - Writes: Indices Accounts, System Account (recipient)", + " # " + ] + }, + { + "name": "free", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Free up an index owned by the sender.", + "", + " Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + " - `index`: the index to be freed. This must be owned by the sender.", + "", + " Emits `IndexFreed` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + }, + { + "name": "freeze", + "type": "bool" + } + ], + "docs": [ + " Force an index to an account. This doesn't require a deposit. If the index is already", + " held, then any deposit is reimbursed to its current owner.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `index`: the index to be (re-)assigned.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one reserve operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (original owner)", + " - Writes: Indices Accounts, System Account (original owner)", + " # " + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Freeze an index so it will always point to the sender account. This consumes the deposit.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must have a", + " non-frozen account `index`.", + "", + " - `index`: the index to be frozen in place.", + "", + " Emits `IndexFrozen` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one slash operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + } + ], + "events": [ + { + "name": "IndexAssigned", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A account index was assigned. \\[index, who\\]" + ] + }, + { + "name": "IndexFreed", + "args": [ + "AccountIndex" + ], + "docs": [ + " A account index has been freed up (unassigned). \\[index\\]" + ] + }, + { + "name": "IndexFrozen", + "args": [ + "AccountIndex", + "AccountId" + ], + "docs": [ + " A account index has been frozen to its current account ID. \\[index, who\\]" + ] + } + ], + "constants": [ + { + "name": "Deposit", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": [ + { + "name": "NotAssigned", + "docs": [ + " The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "docs": [ + " The index is assigned to another account." + ] + }, + { + "name": "InUse", + "docs": [ + " The index was not available." + ] + }, + { + "name": "NotTransfer", + "docs": [ + " The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "docs": [ + " The index is permanent and may not be freed/changed." + ] + } + ], + "index": 5 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountData", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The balance of an account.", + "", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " This is set to v2.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for", + " input config types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", + " check that the transfer will not kill the origin account.", + " ---------------------------------", + " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", + " - DB Weight: 1 Read and 1 Write to destination account", + " - Origin account is already in memory, so no DB operations for them.", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`frame_system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " ---------------------", + " - Base Weight:", + " - Creating: 27.56 µs", + " - Killing: 35.11 µs", + " - DB Weight: 1 Read, 1 Write to `who`", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified.", + " # ", + " - Same as transfer, but additional read and write because the source account is", + " not assumed to be in the overlay.", + " # " + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Pallet.html#method.transfer", + " # ", + " - Cheaper than transfer because account cannot be killed.", + " - Base Weight: 51.4 µs", + " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", + " #" + ] + } + ], + "events": [ + { + "name": "Endowed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was created with some free balance. \\[account, free_balance\\]" + ] + }, + { + "name": "DustLost", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was removed whose balance was non-zero but below ExistentialDeposit,", + " resulting in an outright loss. \\[account, balance\\]" + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer succeeded. \\[from, to, value\\]" + ] + }, + { + "name": "BalanceSet", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " A balance was set by root. \\[who, free, reserved\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]" + ] + }, + { + "name": "Reserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was reserved (moved from free to reserved). \\[who, value\\]" + ] + }, + { + "name": "Unreserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was unreserved (moved from reserved to free). \\[who, value\\]" + ] + }, + { + "name": "ReserveRepatriated", + "args": [ + "AccountId", + "AccountId", + "Balance", + "BalanceStatus" + ], + "docs": [ + " Some balance was moved from the reserve of the first account to the second account.", + " Final argument indicates the destination balance type.", + " \\[from, to, balance, destination_status\\]" + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + } + ], + "errors": [ + { + "name": "VestingBalance", + "docs": [ + " Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "docs": [ + " Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "Overflow", + "docs": [ + " Got an overflow after adding" + ] + }, + { + "name": "InsufficientBalance", + "docs": [ + " Balance too low to send value" + ] + }, + { + "name": "ExistentialDeposit", + "docs": [ + " Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "docs": [ + " Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "docs": [ + " Beneficiary account must pre-exist" + ] + } + ], + "index": 6 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "WeightToFee", + "type": "Vec", + "value": "0x0401000000000000000000000000000000000000000001", + "docs": [ + " The polynomial that is applied in order to derive fee from weight." + ] + } + ], + "errors": [], + "index": 7 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": "ElectionPhase" + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": "ReadySolution" + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": "RoundSnapshot" + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": "SolutionOrSnapshotSize" + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present." + ] + } + ] + }, + "calls": [ + { + "name": "submit_unsigned", + "args": [ + { + "name": "solution", + "type": "RawSolution" + }, + { + "name": "witness", + "type": "SolutionOrSnapshotSize" + } + ], + "docs": [ + " Submit a solution for the unsigned phase.", + "", + " The dispatch origin fo this call must be __none__.", + "", + " This submission is checked on the fly. Moreover, this unsigned solution is only", + " validated when submitted to the pool from the **local** node. Effectively, this means", + " that only active validators can submit this transaction when authoring a block (similar", + " to an inherent).", + "", + " To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + " panic if the solution submitted by the validator is invalid in any way, effectively", + " putting their authoring reward at risk.", + "", + " No deposit or reward is associated with this submission." + ] + } + ], + "events": [ + { + "name": "SolutionStored", + "args": [ + "ElectionCompute" + ], + "docs": [ + " A solution was stored with the given compute.", + "", + " If the solution is signed, this means that it hasn't yet been processed. If the", + " solution is unsigned, this means that it has also been processed." + ] + }, + { + "name": "ElectionFinalized", + "args": [ + "Option" + ], + "docs": [ + " The election has been finalized, with `Some` of the given computation, or else if the", + " election failed, `None`." + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId" + ], + "docs": [ + " An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId" + ], + "docs": [ + " An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "SignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The signed phase of the given round has started." + ] + }, + { + "name": "UnsignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The unsigned phase of the given round has started." + ] + } + ], + "constants": [ + { + "name": "UnsignedPhase", + "type": "BlockNumber", + "value": "0x32000000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": "BlockNumber", + "value": "0x32000000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "SolutionImprovementThreshold", + "type": "Perbill", + "value": "0xa0860100", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" (in any phase)." + ] + } + ], + "errors": [ + { + "name": "PreDispatchEarlySubmission", + "docs": [ + " Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "docs": [ + " Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "docs": [ + " Submission was too weak, score-wise." + ] + } + ], + "index": 8 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "HistoryDepth", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Information is kept for eras in `[current_era - history_depth; current_era]`.", + "", + " Must be more than the number of eras delayed by session otherwise. I.e. active era must", + " always be in history. I.e. `active_era > current_era - history_depth` must be", + " guaranteed." + ] + }, + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": false + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Nominations", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": "ActiveEraInfo" + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "ValidatorPrefs", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "EraRewardPoints", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`SessionManager::new_session`]." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x05", + "docs": [ + " True if network has been upgraded to this version.", + " Storage version of the pallet.", + "", + " This is set to v6.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + " unless the `origin` falls below _existential deposit_ and gets removed as dust.", + " ------------------", + " Weight: O(1)", + " DB Weight:", + " - Read: Bonded, Ledger, [Origin Account], Current Era, History Depth, Locks", + " - Write: Bonded, Payee, [Origin Account], Locks, Ledger", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", + " that can be added.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller and", + " it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " - One DB entry.", + " ------------", + " DB Weight:", + " - Read: Era Election Status, Bonded, Ledger, [Origin Account], Locks", + " - Write: [Origin Account], Locks, Ledger", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " Emits `Unbonded`.", + "", + " See also [`Call::withdraw_unbonded`].", + "", + " # ", + " - Independent of the arguments. Limited but potentially exploitable complexity.", + " - Contains a limited number of reads.", + " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", + " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", + " The only way to clean the aforementioned storage item is also user-controlled via", + " `withdraw_unbonded`.", + " - One DB entry.", + " ----------", + " Weight: O(1)", + " DB Weight:", + " - Read: EraElectionStatus, Ledger, CurrentEra, Locks, BalanceOf Stash,", + " - Write: Locks, Ledger, BalanceOf Stash,", + " " + ] + }, + { + "name": "withdraw_unbonded", + "args": [ + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " Emits `Withdrawn`.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", + " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", + " indirectly user-controlled. See [`unbond`] for more detail.", + " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", + " - Writes are limited to the `origin` account key.", + " ---------------", + " Complexity O(S) where S is the number of slashing spans to remove", + " Update:", + " - Reads: EraElectionStatus, Ledger, Current Era, Locks, [Origin Account]", + " - Writes: [Origin Account], Locks, Ledger", + " Kill:", + " - Reads: EraElectionStatus, Ledger, Current Era, Bonded, Slashing Spans, [Origin", + " Account], Locks, BalanceOf stash", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " [Origin Account], Locks, BalanceOf stash.", + " - Writes Each: SpanSlash * S", + " NOTE: Weight annotation is the kill scenario, we refund otherwise.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " -----------", + " Weight: O(1)", + " DB Weight:", + " - Read: Era Election Status, Ledger", + " - Write: Nominators, Validators", + " # " + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era. This can only be called when", + " [`EraElectionStatus`] is `Closed`.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets` (N)", + " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", + " - Both the reads and writes follow a similar pattern.", + " ---------", + " Weight: O(N)", + " where N is the number of targets", + " DB Weight:", + " - Reads: Era Election Status, Ledger, Current Era", + " - Writes: Validators, Nominators", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " --------", + " Weight: O(1)", + " DB Weight:", + " - Read: EraElectionStatus, Ledger", + " - Write: Validators, Nominators", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ---------", + " - Weight: O(1)", + " - DB Weight:", + " - Read: Ledger", + " - Write: Payee", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ----------", + " Weight: O(1)", + " DB Weight:", + " - Read: Bonded, Ledger New Controller, Ledger Old Controller", + " - Write: Bonded, Ledger New Controller, Ledger Old Controller", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " Sets the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Weight: O(1)", + " Write: Validator Count", + " # " + ] + }, + { + "name": "increase_validator_count", + "args": [ + { + "name": "additional", + "type": "Compact" + } + ], + "docs": [ + " Increments the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`set_validator_count`].", + " # " + ] + }, + { + "name": "scale_validator_count", + "args": [ + { + "name": "factor", + "type": "Percent" + } + ], + "docs": [ + " Scale up the ideal number of validators by a factor.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`set_validator_count`].", + " # " + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write ForceEra", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "invulnerables", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any).", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - O(V)", + " - Write: Invulnerables", + " # " + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " O(S) where S is the number of slashing spans to be removed", + " Reads: Bonded, Slashing Spans, Account, Locks", + " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Account, Locks", + " Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash.", + "", + " Can be called by the `T::SlashCancelOrigin`.", + "", + " Parameters: era and indices of the slashes for that era to kill.", + "", + " # ", + " Complexity: O(U + S)", + " with U unapplied slashes weighted with U=1000", + " and S is the number of slash indices to be canceled.", + " - Read: Unapplied Slashes", + " - Write: Unapplied Slashes", + " # " + ] + }, + { + "name": "payout_stakers", + "args": [ + { + "name": "validator_stash", + "type": "AccountId" + }, + { + "name": "era", + "type": "EraIndex" + } + ], + "docs": [ + " Pay out all the stakers behind a single validator for a single era.", + "", + " - `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + " - `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + " The origin of this call must be _Signed_. Any account can call this function, even if", + " it is not one of the stakers.", + "", + " This can only be called when [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", + " - Contains a limited number of reads and writes.", + " -----------", + " N is the Number of payouts for the validator (including the validator)", + " Weight:", + " - Reward Destination Staked: O(N)", + " - Reward Destination Controller (Creating): O(N)", + " DB Weight:", + " - Read: EraElectionStatus, CurrentEra, HistoryDepth, ErasValidatorReward,", + " ErasStakersClipped, ErasRewardPoints, ErasValidatorPrefs (8 items)", + " - Read Each: Bonded, Ledger, Payee, Locks, System Account (5 items)", + " - Write Each: System Account, Locks, Ledger (3 items)", + "", + " NOTE: weights are assuming that payouts are made to alive stash account (Staked).", + " Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.", + " # " + ] + }, + { + "name": "rebond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Rebond a portion of the stash scheduled to be unlocked.", + "", + " The dispatch origin must be signed by the controller, and it can be only called when", + " [`EraElectionStatus`] is `Closed`.", + "", + " # ", + " - Time complexity: O(L), where L is unlocking chunks", + " - Bounded by `MAX_UNLOCKING_CHUNKS`.", + " - Storage changes: Can't increase storage, only decrease it.", + " ---------------", + " - DB Weight:", + " - Reads: EraElectionStatus, Ledger, Locks, [Origin Account]", + " - Writes: [Origin Account], Locks, Ledger", + " # " + ] + }, + { + "name": "set_history_depth", + "args": [ + { + "name": "new_history_depth", + "type": "Compact" + }, + { + "name": "_era_items_deleted", + "type": "Compact" + } + ], + "docs": [ + " Set `HistoryDepth` value. This function will delete any history information", + " when `HistoryDepth` is reduced.", + "", + " Parameters:", + " - `new_history_depth`: The new history depth you would like to set.", + " - `era_items_deleted`: The number of items that will be deleted by this dispatch.", + " This should report all the storage items that will be deleted by clearing old", + " era history. Needed to report an accurate weight for the dispatch. Trusted by", + " `Root` to report an accurate number.", + "", + " Origin must be root.", + "", + " # ", + " - E: Number of history depths removed, i.e. 10 -> 7 = 3", + " - Weight: O(E)", + " - DB Weight:", + " - Reads: Current Era, History Depth", + " - Writes: History Depth", + " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", + " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake, ErasStartSessionIndex", + " # " + ] + }, + { + "name": "reap_stash", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove all data structure concerning a staker/stash once its balance is at the minimum.", + " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", + " and the target `stash` must have no funds left beyond the ED.", + "", + " This can be called from any origin.", + "", + " - `stash`: The stash account to reap. Its balance must be zero.", + "", + " # ", + " Complexity: O(S) where S is the number of slashing spans on the account.", + " DB Weight:", + " - Reads: Stash Account, Bonded, Slashing Spans, Locks", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators, Stash Account, Locks", + " - Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "kick", + "args": [ + { + "name": "who", + "type": "Vec" + } + ], + "docs": [ + " Remove the given nominations from the calling validator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + " And, it can be only called when [`EraElectionStatus`] is `Closed`. The controller", + " account should represent a validator.", + "", + " - `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + " Note: Making this call only makes sense if you first set the validator preferences to", + " block any further nominations." + ] + } + ], + "events": [ + { + "name": "EraPayout", + "args": [ + "EraIndex", + "Balance", + "Balance" + ], + "docs": [ + " The era payout has been set; the first balance is the validator-payout; the second is", + " the remainder from the maximum amount of reward.", + " \\[era_index, validator_payout, remainder\\]" + ] + }, + { + "name": "Reward", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The staker has been rewarded by this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Slash", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount.", + " \\[validator, amount\\]" + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed. \\[session_index\\]" + ] + }, + { + "name": "StakingElection", + "args": [], + "docs": [ + " A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has bonded this amount. \\[stash, amount\\]", + "", + " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + " it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has unbonded this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Withdrawn", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + " from the unlocking queue. \\[stash, amount\\]" + ] + }, + { + "name": "Kicked", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A nominator has been kicked from a validator. \\[nominator, stash\\]" + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": "EraIndex", + "value": "0xa8000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration.", + " Set to 0 if slashes should be applied immediately, without opportunity for", + " intervention." + ] + }, + { + "name": "MaxNominatorRewardedPerValidator", + "type": "u32", + "value": "0x00010000", + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can claim", + " their reward. This used to limit the i/o cost for the nominator payout." + ] + }, + { + "name": "MaxNominations", + "type": "u32", + "value": "0x10000000", + "docs": [ + " Maximum number of nominations per nominator." + ] + } + ], + "errors": [ + { + "name": "NotController", + "docs": [ + " Not a controller account." + ] + }, + { + "name": "NotStash", + "docs": [ + " Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "docs": [ + " Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "docs": [ + " Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "docs": [ + " Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "docs": [ + " Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "docs": [ + " Slash record index out of bounds." + ] + }, + { + "name": "InsufficientValue", + "docs": [ + " Can not bond with value less than minimum balance." + ] + }, + { + "name": "NoMoreChunks", + "docs": [ + " Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "docs": [ + " Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "docs": [ + " Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "docs": [ + " Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "docs": [ + " Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "docs": [ + " Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "IncorrectHistoryDepth", + "docs": [ + " Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "docs": [ + " Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "docs": [ + " Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "docs": [ + " Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "docs": [ + " A nomination target was supplied that was blocked or otherwise not a validator." + ] + } + ], + "index": 9 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ValidatorId", + "value": "Keys", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `keys`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)`", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", + " - DbWrites: `origin account`, `NextKeys`", + " - DbReads per key id: `KeyOwner`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + }, + { + "name": "purge_keys", + "args": [], + "docs": [ + " Removes any session key(s) of the function caller.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)` in number of key types.", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", + " - DbWrites: `NextKeys`, `origin account`", + " - DbWrites per key id: `KeyOwnder`", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the \\[session_index\\], not the block", + " number as the type might suggest." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidProof", + "docs": [ + " Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "docs": [ + " No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "docs": [ + " Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "docs": [ + " No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "docs": [ + " Key setting account is not live, so it's impossible to associate keys." + ] + } + ], + "index": 10 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "PropIndex", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "PreimageStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voting", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "Locks", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Accounts for which there are locks in action which may be removed at some point in the", + " future. The value is the block number at which the lock expires and may be removed.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "StorageVersion", + "modifier": "Optional", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " The dispatch origin of this call must be _Signed_ and the sender must", + " have funds to cover the deposit.", + "", + " - `proposal_hash`: The hash of the proposal preimage.", + " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + " Emits `Proposed`.", + "", + " Weight: `O(p)`" + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + }, + { + "name": "seconds_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Signals agreement with a particular proposal.", + "", + " The dispatch origin of this call must be _Signed_ and the sender", + " must have funds to cover the deposit, equal to the original deposit.", + "", + " - `proposal`: The index of the proposal to second.", + " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", + " proposal. Extrinsic is weighted according to this value with no refund.", + "", + " Weight: `O(S)` where S is the number of seconds a proposal already has." + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "AccountVote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `ref_index`: The index of the referendum to vote for.", + " - `vote`: The vote configuration.", + "", + " Weight: `O(R)` where R is the number of referendums the voter has voted on." + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum.", + "", + " The dispatch origin of this call must be `CancellationOrigin`.", + "", + " -`ref_index`: The index of the referendum to cancel.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum.", + "", + " The dispatch origin of this call must be `ExternalOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.", + " Decoding vec of length V. Charged as maximum" + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " The dispatch of this call must be `FastTrackOrigin`.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `FastTrackVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + " Emits `Started`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash.", + "", + " The dispatch origin of this call must be `VetoOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + " Emits `Vetoed`.", + "", + " Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `ref_index`: The index of the referendum to cancel.", + "", + " # Weight: `O(1)`." + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "which", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Cancel a proposal queued for enactment.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `which`: The index of the referendum to cancel.", + "", + " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`." + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + }, + { + "name": "balance", + "type": "BalanceOf" + } + ], + "docs": [ + " Delegate the voting power (with some given conviction) of the sending account.", + "", + " The balance delegated is locked for as long as it's delegated, and thereafter for the", + " time appropriate for the conviction's lock period.", + "", + " The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + " - `to`: The account whose voting the `target` account's voting power will follow.", + " - `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + " - `balance`: The amount of the account's balance to be used in delegating. This must", + " not be more than the account's current balance.", + "", + " Emits `Delegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate the voting power of the sending account.", + "", + " Tokens may be unlocked following once an amount of time consistent with the lock period", + " of the conviction with which the delegation was issued.", + "", + " The dispatch origin of this call must be _Signed_ and the signing account must be", + " currently delegating.", + "", + " Emits `Undelegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Clears all public proposals.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", + " the preimage has not been uploaded before and matches some imminent proposal,", + " no fee is paid.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_imminent_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "proposal_len_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `proposal_hash`: The preimage hash of a proposal.", + " - `proposal_length_upper_bound`: an upper bound on length of the proposal.", + " Extrinsic is weighted according to this value with no refund.", + "", + " This will only work after `VotingPeriod` blocks from the time that the preimage was", + " noted, if it's the same account doing it. If it's a different account, then it'll only", + " work an additional `EnactmentPeriod` later.", + "", + " Emits `PreimageReaped`.", + "", + " Weight: `O(D)` where D is length of proposal." + ] + }, + { + "name": "unlock", + "args": [ + { + "name": "target", + "type": "AccountId" + } + ], + "docs": [ + " Unlock tokens that have an expired lock.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account to remove the lock on.", + "", + " Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "args": [ + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If:", + " - the referendum was cancelled, or", + " - the referendum is ongoing, or", + " - the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + " ...then the vote is removed cleanly and a following call to `unlock` may result in more", + " funds being available.", + "", + " If, however, the referendum has ended and:", + " - it finished corresponding to the vote of the account, and", + " - the account made a standard vote with conviction, and", + " - the lock period of the conviction is not over", + " ...then the lock will be aggregated into the overall account's lock, which may involve", + " *overlocking* (where the two locks are combined into a single lock that is the maximum", + " of both the amount locked and the time is it locked for).", + "", + " The dispatch origin of this call must be _Signed_, and the signer must have a vote", + " registered for referendum `index`.", + "", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "args": [ + { + "name": "target", + "type": "AccountId" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If the `target` is equal to the signer, then this function is exactly equivalent to", + " `remove_vote`. If not equal to the signer, then the vote must have expired,", + " either because the referendum was cancelled, because the voter lost the referendum or", + " because the conviction period is over.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "enact_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Enact a proposal from a referendum. For now we just make the weight be the maximum." + ] + }, + { + "name": "blacklist", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "maybe_ref_index", + "type": "Option" + } + ], + "docs": [ + " Permanently place a proposal into the blacklist. This prevents it from ever being", + " proposed again.", + "", + " If called on a queued public or external proposal, then this will result in it being", + " removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + " then it will be cancelled.", + "", + " The dispatch origin of this call must be `BlacklistOrigin`.", + "", + " - `proposal_hash`: The proposal hash to blacklist permanently.", + " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + " cancelled.", + "", + " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "args": [ + { + "name": "prop_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a proposal.", + "", + " The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + " - `prop_index`: The index of the proposal to cancel.", + "", + " Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account. \\[proposal_index, deposit\\]" + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote. \\[proposal_index, deposit, depositors\\]" + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun. \\[ref_index, threshold\\]" + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum. \\[ref_index\\]" + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum. \\[ref_index\\]" + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled. \\[ref_index\\]" + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "bool" + ], + "docs": [ + " A proposal has been enacted. \\[ref_index, is_ok\\]" + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed. \\[who, proposal_hash, until\\]" + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]" + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned).", + " \\[proposal_hash, provider, deposit\\]" + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper.", + " \\[proposal_hash, provider, deposit, reaper\\]" + ] + }, + { + "name": "Unlocked", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has been unlocked successfully." + ] + }, + { + "name": "Blacklisted", + "args": [ + "Hash" + ], + "docs": [ + " A proposal \\[hash\\] has been blacklisted permanently." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The minimum period of locking and the period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case where", + " they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": "BlockNumber", + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for an emergency referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + }, + { + "name": "MaxVotes", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account." + ] + } + ], + "errors": [ + { + "name": "ValueLow", + "docs": [ + " Value too low" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal does not exist" + ] + }, + { + "name": "BadIndex", + "docs": [ + " Unknown index" + ] + }, + { + "name": "AlreadyCanceled", + "docs": [ + " Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "docs": [ + " Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "docs": [ + " Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "docs": [ + " Invalid hash" + ] + }, + { + "name": "NoProposal", + "docs": [ + " No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "docs": [ + " Identity may not veto a proposal twice" + ] + }, + { + "name": "NotDelegated", + "docs": [ + " Not delegated" + ] + }, + { + "name": "DuplicatePreimage", + "docs": [ + " Preimage already noted" + ] + }, + { + "name": "NotImminent", + "docs": [ + " Not imminent" + ] + }, + { + "name": "TooEarly", + "docs": [ + " Too early" + ] + }, + { + "name": "Imminent", + "docs": [ + " Imminent" + ] + }, + { + "name": "PreimageMissing", + "docs": [ + " Preimage not found" + ] + }, + { + "name": "ReferendumInvalid", + "docs": [ + " Vote given for invalid referendum" + ] + }, + { + "name": "PreimageInvalid", + "docs": [ + " Invalid preimage" + ] + }, + { + "name": "NoneWaiting", + "docs": [ + " No proposals waiting" + ] + }, + { + "name": "NotLocked", + "docs": [ + " The target account does not have a lock." + ] + }, + { + "name": "NotExpired", + "docs": [ + " The lock on the account to be unlocked has not yet expired." + ] + }, + { + "name": "NotVoter", + "docs": [ + " The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "docs": [ + " The account is already delegating." + ] + }, + { + "name": "Overflow", + "docs": [ + " An unexpected integer overflow occurred." + ] + }, + { + "name": "Underflow", + "docs": [ + " An unexpected integer underflow occurred." + ] + }, + { + "name": "InsufficientFunds", + "docs": [ + " Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "docs": [ + " The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "docs": [ + " The account currently has votes attached to it and the operation cannot succeed until", + " these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "docs": [ + " The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "docs": [ + " Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "docs": [ + " Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "docs": [ + " Maximum number of votes reached." + ] + }, + { + "name": "InvalidWitness", + "docs": [ + " The provided witness data is wrong." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " Maximum number of proposals reached." + ] + } + ], + "index": 11 + }, + { + "name": "Council", + "storage": { + "prefix": "Instance1Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage.", + " Used for weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 12 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "Instance2Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage.", + " Used for weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 13 + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voter", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election. This can be called to", + " set the initial votes, or update already existing votes.", + "", + " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + " reserved. The deposit is based on the number of votes and can be updated over time.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + " If `value` is more than `who`'s total balance, then the maximum of the two is used.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " It is the responsibility of the caller to **NOT** place all of their balance into the", + " lock and keep some for further operations.", + "", + " # ", + " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter.", + "", + " This removes the lock and returns the deposit.", + "", + " The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "args": [ + { + "name": "candidate_count", + "type": "Compact" + } + ], + "docs": [ + " Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + " All candidates are wiped at the end of the term. They either become a member/runner-up,", + " or leave the system while their deposit is slashed.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + " to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + " # ", + " The number of current candidates must be provided as witness data.", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [ + { + "name": "renouncing", + "type": "Renouncing" + } + ], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + "", + " - `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + " - `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_members`], if replacement runners exists, they are immediately", + " used. If the prime is renouncing, then no prime will exist until the next round.", + "", + " The dispatch origin of this call must be signed, and have one of the above roles.", + "", + " # ", + " The type of renouncing must be provided as witness data.", + " # " + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "has_replacement", + "type": "bool" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen election is started.", + "", + " The dispatch origin of this call must be root.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " If we have a replacement, we use a small weight. Else, since this is a root call and", + " will go into phragmen, we assume full block for now.", + " # " + ] + }, + { + "name": "clean_defunct_voters", + "args": [ + { + "name": "_num_voters", + "type": "u32" + }, + { + "name": "_num_defunct", + "type": "u32" + } + ], + "docs": [ + " Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + " deposit of the removed voters are returned.", + "", + " This is an root function to be used only for cleaning the state.", + "", + " The dispatch origin of this call must be root.", + "", + " # ", + " The total number of voters and those that are defunct must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with \\[new_members\\]. This indicates that enough candidates existed to run", + " the election, not that enough have has been elected. The inner value must be examined", + " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + " begin with." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round. This is different from", + " `NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "args": [], + "docs": [ + " Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been removed. This should always be followed by either `NewTerm` or", + " `EmptyTerm`." + ] + }, + { + "name": "Renounced", + "args": [ + "AccountId" + ], + "docs": [ + " Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or", + " runner-up.", + "", + " Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set." + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "LockIdentifier", + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "type": "BalanceOf", + "value": "0x00f0436de36a01000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "type": "BalanceOf", + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x0d000000", + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x07000000", + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + } + ], + "errors": [ + { + "name": "UnableToVote", + "docs": [ + " Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "docs": [ + " Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "docs": [ + " Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "docs": [ + " Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "docs": [ + " Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "docs": [ + " Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "docs": [ + " Must be a voter." + ] + }, + { + "name": "ReportSelf", + "docs": [ + " Cannot report self." + ] + }, + { + "name": "DuplicatedCandidate", + "docs": [ + " Duplicated candidate submission." + ] + }, + { + "name": "MemberSubmit", + "docs": [ + " Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "docs": [ + " Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "docs": [ + " Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "docs": [ + " The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "docs": [ + " The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "docs": [ + " The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "docs": [ + " Prediction regarding replacement after member removal is wrong." + ] + } + ], + "index": 14 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "Instance1Membership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `T::SwapOrigin`.", + "", + " Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member.", + "", + " Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Set the prime member. Must be a current member.", + "", + " May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "args": [], + "docs": [ + " Remove the prime member if it exists.", + "", + " May only be called from `T::PrimeOrigin`." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "AlreadyMember", + "docs": [ + " Already a member." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + } + ], + "index": 15 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "GrandpaFinality", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported.", + "", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "note_stalled", + "args": [ + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": "BlockNumber" + } + ], + "docs": [ + " Note that the current authority set of the GRANDPA finality gadget has", + " stalled. This will trigger a forced authority set change at the beginning", + " of the next session, to be enacted `delay` blocks after that. The delay", + " should be high enough to safely assume that the block signalling the", + " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", + " will start the new authority set using the given finalized block as base.", + " Only callable by root." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied. \\[authority_set\\]" + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "PauseFailed", + "docs": [ + " Attempt to signal GRANDPA pause when the authority set isn't live", + " (either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "docs": [ + " Attempt to signal GRANDPA resume when the authority set isn't paused", + " (either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "docs": [ + " Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "docs": [ + " Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 16 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `ProposalCount`, `origin account`", + " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `Proposals`, `rejected proposer account`", + " - DbWrites: `Proposals`, `rejected proposer account`", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - Complexity: O(1).", + " - DbReads: `Proposals`, `Approvals`", + " - DbWrite: `Approvals`", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal. \\[proposal_index\\]" + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds. \\[budget_remaining\\]" + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated. \\[proposal_index, award, beneficiary\\]" + ] + }, + { + "name": "Rejected", + "args": [ + "ProposalIndex", + "Balance" + ], + "docs": [ + " A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]" + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt. \\[burn\\]" + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend.", + " \\[budget_remaining\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited. \\[deposit\\]" + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f7472737279", + "docs": [ + " The treasury's module id, used for deriving its sovereign account ID." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "TooManyApprovals", + "docs": [ + " Too many approvals in the queue." + ] + } + ], + "index": 17 + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "items": [ + { + "name": "CurrentSchedule", + "modifier": "Default", + "type": { + "plain": "Schedule" + }, + "fallback": "0x000000000004000000000200000001000080000000100000000010000000010000200000001f060000d66a0200dd84030026180000bd1c0000430b000003170000ae2800009c000000dd69010063e00200300700000706000065070000b10500006e180000002800006905000072deae08f0070000dc070000710a00006a080000a507000096070000d1070000770900003e09000075090000d809000082090000bc090000120900003c09000072090000dc090000f7080000e108000062090000162000006b1d00002e2000002c1b0000fe080000000900000f090000a7090000f1090000ba090000bb09000065090000d8b82800000000009e9828000000000016902700000000004c705700000000004cc8270000000000e4bc270000000000e8d1270000000000a0685b0000000000484f2700000000009e7627000000000000f45100000000004cab120000000000184a700000000000140100000000000000cd460000000000fc02000000000000d0b570270000000013200000000000007821da3100000000e0200000000000009a120000000000000482b10900000000e03463000000000038d7900000000000de67d00700000000840900000000000006186e000000000016935d1200000000da02000000000000eaced408000000003a240e0200000000e705000000000000fc41d50a00000000d48e9309000000002d0f0000000000003a4225090000000047020000000000002303000000000000ba7c962300000000a5210000000000006d020000000000005403000000000000e50b00000000000026922400000000006110000000000000a4122600000000001d0d000000000000520e2200000000001a0600000000000020222200000000001a0600000000000044b13c0000000000", + "docs": [ + " Current cost schedule for contracts." + ] + }, + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "CodeHash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "CodeHash", + "value": "PrefabWasmModule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "AccountCounter", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The subtrie counter." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ContractInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_initialize`." + ] + } + ] + }, + "calls": [ + { + "name": "update_schedule", + "args": [ + { + "name": "schedule", + "type": "Schedule" + } + ], + "docs": [ + " Updates the schedule for metering contracts.", + "", + " The schedule's version cannot be less than the version of the stored schedule.", + " If a schedule does not change the instruction weights the version does not", + " need to be increased. Therefore we allow storing a schedule that has the same", + " version as the stored one." + ] + }, + { + "name": "call", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Makes a call to an account, optionally transferring some balance.", + "", + " * If the account is a smart-contract account, the associated code will be", + " executed and any value will be transferred.", + " * If the account is a regular account, any value will be transferred.", + " * If no account exists and the call value is not less than `existential_deposit`,", + " a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code", + "type": "Bytes" + }, + { + "name": "data", + "type": "Bytes" + }, + { + "name": "salt", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a new contract from the supplied `code` optionally transferring", + " some balance.", + "", + " This is the only function that can deploy new code to the chain.", + "", + " # Parameters", + "", + " * `endowment`: The balance to transfer from the `origin` to the newly created contract.", + " * `gas_limit`: The gas limit enforced when executing the constructor.", + " * `code`: The contract code to deploy in raw bytes.", + " * `data`: The input data to pass to the contract constructor.", + " * `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + " Instantiation is executed as follows:", + "", + " - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that code.", + " - If the `code_hash` already exists on the chain the underlying `code` will be shared.", + " - The destination address is computed based on the sender, code_hash and the salt.", + " - The smart-contract account is created at the computed address.", + " - The `endowment` is transferred to the new account.", + " - The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code_hash", + "type": "CodeHash" + }, + { + "name": "data", + "type": "Bytes" + }, + { + "name": "salt", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a contract from a previously deployed wasm binary.", + "", + " This function is identical to [`Self::instantiate_with_code`] but without the", + " code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + " must be supplied." + ] + }, + { + "name": "claim_surcharge", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "aux_sender", + "type": "Option" + } + ], + "docs": [ + " Allows block producers to claim a small reward for evicting a contract. If a block", + " producer fails to do so, a regular users will be allowed to claim the reward.", + "", + " In case of a successful eviction no fees are charged from the sender. However, the", + " reward is capped by the total amount of rent that was payed by the contract while", + " it was alive.", + "", + " If contract is not evicted as a result of this call, [`Error::ContractNotEvictable`]", + " is returned and the sender is not eligible for the reward." + ] + } + ], + "events": [ + { + "name": "Instantiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract deployed by address at the specified address. \\[deployer, contract\\]" + ] + }, + { + "name": "Evicted", + "args": [ + "AccountId" + ], + "docs": [ + " Contract has been evicted and is now in tombstone state. \\[contract\\]" + ] + }, + { + "name": "Terminated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract has been terminated without leaving a tombstone.", + " \\[contract, beneficiary\\]", + "", + " # Params", + "", + " - `contract`: The contract that was terminated.", + " - `beneficiary`: The account that received the contracts remaining balance.", + "", + " # Note", + "", + " The only way for a contract to be removed without a tombstone and emitting", + " this event is by calling `seal_terminate`." + ] + }, + { + "name": "Restored", + "args": [ + "AccountId", + "AccountId", + "Hash", + "Balance" + ], + "docs": [ + " Restoration of a contract has been successful.", + " \\[restorer, dest, code_hash, rent_allowance\\]", + "", + " # Params", + "", + " - `restorer`: Account ID of the restoring contract.", + " - `dest`: Account ID of the restored contract.", + " - `code_hash`: Code hash of the restored contract.", + " - `rent_allowance`: Rent allowance of the restored contract." + ] + }, + { + "name": "CodeStored", + "args": [ + "Hash" + ], + "docs": [ + " Code with the specified hash has been stored. \\[code_hash\\]" + ] + }, + { + "name": "ScheduleUpdated", + "args": [ + "u32" + ], + "docs": [ + " Triggered when the current schedule is updated.", + " \\[version\\]", + "", + " # Params", + "", + " - `version`: The version of the newly set schedule." + ] + }, + { + "name": "ContractEmitted", + "args": [ + "AccountId", + "Bytes" + ], + "docs": [ + " A custom event emitted by the contract.", + " \\[contract, data\\]", + "", + " # Params", + "", + " - `contract`: The contract that emitted the event.", + " - `data`: Data supplied by the contract. Metadata generated during contract", + " compilation is needed to decode it." + ] + }, + { + "name": "CodeRemoved", + "args": [ + "Hash" + ], + "docs": [ + " A code with the specified hash was removed.", + " \\[code_hash\\]", + "", + " This happens when the last contract that uses this code hash was removed or evicted." + ] + } + ], + "constants": [ + { + "name": "SignedClaimHandicap", + "type": "BlockNumber", + "value": "0x02000000", + "docs": [ + " Number of block delay an extrinsic claim surcharge has.", + "", + " When claim surcharge is called by an extrinsic the rent is checked", + " for current_block - delay" + ] + }, + { + "name": "TombstoneDeposit", + "type": "BalanceOf", + "value": "0x00f0e8857a9c02000000000000000000", + "docs": [ + " The minimum amount required to generate a tombstone." + ] + }, + { + "name": "DepositPerContract", + "type": "BalanceOf", + "value": "0x00f0e8857a9c02000000000000000000", + "docs": [ + " The balance every contract needs to deposit to stay alive indefinitely.", + "", + " This is different from the [`Self::TombstoneDeposit`] because this only needs to be", + " deposited while the contract is alive. Costs for additional storage are added to", + " this base cost.", + "", + " This is a simple way to ensure that contracts with empty storage eventually get deleted by", + " making them pay rent. This creates an incentive to remove them early in order to save rent." + ] + }, + { + "name": "DepositPerStorageByte", + "type": "BalanceOf", + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The balance a contract needs to deposit per storage byte to stay alive indefinitely.", + "", + " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", + " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", + " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", + " then it would pay 500 BU/day." + ] + }, + { + "name": "DepositPerStorageItem", + "type": "BalanceOf", + "value": "0x00f0ab75a40d00000000000000000000", + "docs": [ + " The balance a contract needs to deposit per storage item to stay alive indefinitely.", + "", + " It works the same as [`Self::DepositPerStorageByte`] but for storage items." + ] + }, + { + "name": "RentFraction", + "type": "Perbill", + "value": "0x85040000", + "docs": [ + " The fraction of the deposit that should be used as rent per block.", + "", + " When a contract hasn't enough balance deposited to stay alive indefinitely it needs", + " to pay per block for the storage it consumes that is not covered by the deposit.", + " This determines how high this rent payment is per block as a fraction of the deposit." + ] + }, + { + "name": "SurchargeReward", + "type": "BalanceOf", + "value": "0x005cb2ec220000000000000000000000", + "docs": [ + " Reward that is received by the party whose touch has led", + " to removal of a contract." + ] + }, + { + "name": "MaxDepth", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum nesting level of a call/instantiate stack." + ] + }, + { + "name": "MaxValueSize", + "type": "u32", + "value": "0x00400000", + "docs": [ + " The maximum size of a storage value and event payload in bytes." + ] + }, + { + "name": "DeletionQueueDepth", + "type": "u32", + "value": "0xf0000000", + "docs": [ + " The maximum number of tries that can be queued for deletion." + ] + }, + { + "name": "DeletionWeightLimit", + "type": "Weight", + "value": "0x00d0ed902e000000", + "docs": [ + " The maximum amount of weight that can be consumed per block for lazy trie removal." + ] + }, + { + "name": "MaxCodeSize", + "type": "u32", + "value": "0x00000200", + "docs": [ + " The maximum length of a contract code in bytes. This limit applies to the instrumented", + " version of the code. Therefore `instantiate_with_code` can fail even when supplying", + " a wasm binary below this maximum size." + ] + } + ], + "errors": [ + { + "name": "InvalidScheduleVersion", + "docs": [ + " A new schedule must have a greater version than the current one." + ] + }, + { + "name": "InvalidSurchargeClaim", + "docs": [ + " An origin must be signed or inherent and auxiliary sender only provided on inherent." + ] + }, + { + "name": "InvalidSourceContract", + "docs": [ + " Cannot restore from nonexisting or tombstone contract." + ] + }, + { + "name": "InvalidDestinationContract", + "docs": [ + " Cannot restore to nonexisting or alive contract." + ] + }, + { + "name": "InvalidTombstone", + "docs": [ + " Tombstones don't match." + ] + }, + { + "name": "InvalidContractOrigin", + "docs": [ + " An origin TrieId written in the current block." + ] + }, + { + "name": "OutOfGas", + "docs": [ + " The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "docs": [ + " The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "BelowSubsistenceThreshold", + "docs": [ + " Performing the requested transfer would have brought the contract below", + " the subsistence threshold. No transfer is allowed to do this in order to allow", + " for a tombstone to be created. Use `seal_terminate` to remove a contract without", + " leaving a tombstone behind." + ] + }, + { + "name": "NewContractNotFunded", + "docs": [ + " The newly created contract is below the subsistence threshold after executing", + " its contructor. No contracts are allowed to exist below that threshold." + ] + }, + { + "name": "TransferFailed", + "docs": [ + " Performing the requested transfer failed for a reason originating in the", + " chosen currency implementation of the runtime. Most probably the balance is", + " too low or locks are placed on it." + ] + }, + { + "name": "MaxCallDepthReached", + "docs": [ + " Performing a call was denied because the calling depth reached the limit", + " of what is specified in the schedule." + ] + }, + { + "name": "NotCallable", + "docs": [ + " The contract that was called is either no contract at all (a plain account)", + " or is a tombstone." + ] + }, + { + "name": "CodeTooLarge", + "docs": [ + " The code supplied to `instantiate_with_code` exceeds the limit specified in the", + " current schedule." + ] + }, + { + "name": "CodeNotFound", + "docs": [ + " No code could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "docs": [ + " A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "docs": [ + " Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "docs": [ + " Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "docs": [ + " The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "ReentranceDenied", + "docs": [ + " The action performed is not allowed while the contract performing it is already", + " on the call stack. Those actions are contract self destruction and restoration", + " of a tombstone." + ] + }, + { + "name": "InputAlreadyRead", + "docs": [ + " `seal_input` was called twice from the same contract execution context." + ] + }, + { + "name": "RandomSubjectTooLong", + "docs": [ + " The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "docs": [ + " The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "DuplicateTopics", + "docs": [ + " The topics passed to `seal_deposit_events` contains at least one duplicate." + ] + }, + { + "name": "NoChainExtension", + "docs": [ + " The chain does not provide a chain extension. Calling the chain extension results", + " in this error. Note that this usually shouldn't happen as deploying such contracts", + " is rejected." + ] + }, + { + "name": "DeletionQueueFull", + "docs": [ + " Removal of a contract failed because the deletion queue is full.", + "", + " This can happen when either calling [`Pallet::claim_surcharge`] or `seal_terminate`.", + " The queue is filled by deleting contracts and emptied by a fixed amount each block.", + " Trying again during another block is the only way to resolve this issue." + ] + }, + { + "name": "ContractNotEvictable", + "docs": [ + " A contract could not be evicted because it has enough balance to pay rent.", + "", + " This can be returned from [`Pallet::claim_surcharge`] because the target", + " contract has enough balance to pay for its rent." + ] + }, + { + "name": "StorageExhausted", + "docs": [ + " A storage modification exhausted the 32bit type that holds the storage size.", + "", + " This can either happen when the accumulated storage in bytes is too large or", + " when number of storage items is too large." + ] + }, + { + "name": "DuplicateContract", + "docs": [ + " A contract with the same AccountId already exists." + ] + } + ], + "index": 18 + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Default", + "type": { + "plain": "AccountId" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": [ + { + "name": "sudo", + "args": [ + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Weight of derivative `call` execution + 10,000.", + " # " + ] + }, + { + "name": "sudo_unchecked_weight", + "args": [ + { + "name": "call", + "type": "Call" + }, + { + "name": "_weight", + "type": "Weight" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + " This function does not check the weight of the call, and instead allows the", + " Sudo user to specify the weight of the call.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - The weight of this call is defined by the caller.", + " # " + ] + }, + { + "name": "set_key", + "args": [ + { + "name": "new", + "type": "LookupSource" + } + ], + "docs": [ + " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + }, + { + "name": "sudo_as", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Signed` origin from", + " a given account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Weight of derivative `call` execution + 10,000.", + " # " + ] + } + ], + "events": [ + { + "name": "Sudid", + "args": [ + "DispatchResult" + ], + "docs": [ + " A sudo just took place. \\[result\\]" + ] + }, + { + "name": "KeyChanged", + "args": [ + "AccountId" + ], + "docs": [ + " The \\[sudoer\\] just switched identity; the old key is supplied." + ] + }, + { + "name": "SudoAsDone", + "args": [ + "DispatchResult" + ], + "docs": [ + " A sudo just took place. \\[result\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "RequireSudo", + "docs": [ + " Sender must be the Sudo account" + ] + } + ], + "index": 19 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex` to", + " `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [ + " # ", + " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len)", + " and E is length of `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`", + " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", + " `ReceivedHeartbeats`", + " - DbWrites: `ReceivedHeartbeats`", + " # " + ] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId` \\[authority_id\\]" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least one validator was found to be \\[offline\\]." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidKey", + "docs": [ + " Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "docs": [ + " Duplicated heartbeat." + ] + } + ], + "index": 20 + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": [], + "events": null, + "constants": [], + "errors": [], + "index": 21 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "DeferredOffences", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Deferred reports that have been rejected by the offence handler and need to be submitted", + " at a later time." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot", + "bool" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes. last", + " element indicates of the offence was applied (true) or queued (false)", + " \\[kind, timeslot, applied\\]." + ] + } + ], + "constants": [], + "errors": [], + "index": 22 + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 23 + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [], + "errors": [], + "index": 24 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Registration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "(AccountId,Data)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": [ + { + "name": "add_registrar", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Add a registrar to the system.", + "", + " The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + " - `account`: the account of the registrar.", + "", + " Emits `RegistrarAdded` if successful.", + "", + " # ", + " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_identity", + "args": [ + { + "name": "info", + "type": "IdentityInfo" + } + ], + "docs": [ + " Set an account's identity information and reserve the appropriate deposit.", + "", + " If the account already has identity information, the deposit is taken as part payment", + " for the new deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `info`: The identity information.", + "", + " Emits `IdentitySet` if successful.", + "", + " # ", + " - `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)", + " - One balance reserve operation.", + " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_subs", + "args": [ + { + "name": "subs", + "type": "Vec<(AccountId,Data)>" + } + ], + "docs": [ + " Set the sub-accounts of the sender.", + "", + " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `subs`: The identity's (new) sub-accounts.", + "", + " # ", + " - `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - At most one balance operations.", + " - DB:", + " - `P + S` storage mutations (codec complexity `O(1)`)", + " - One storage read (codec complexity `O(P)`).", + " - One storage write (codec complexity `O(S)`).", + " - One storage-exists (`IdentityOf::contains_key`).", + " # " + ] + }, + { + "name": "clear_identity", + "args": [], + "docs": [ + " Clear an account's identity info and all sub-accounts and return all deposits.", + "", + " Payment: All reserved balances on the account are returned.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " Emits `IdentityCleared` if successful.", + "", + " # ", + " - `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded).", + " - One balance-unreserve operation.", + " - `2` storage reads and `S + 2` storage deletions.", + " - One event.", + " # " + ] + }, + { + "name": "request_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "max_fee", + "type": "Compact" + } + ], + "docs": [ + " Request a judgement from a registrar.", + "", + " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + " given.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is requested.", + " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + " ```nocompile", + " Self::registrars().get(reg_index).unwrap().fee", + " ```", + "", + " Emits `JudgementRequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", + " - One event.", + " # " + ] + }, + { + "name": "cancel_request", + "args": [ + { + "name": "reg_index", + "type": "RegistrarIndex" + } + ], + "docs": [ + " Cancel a previous request.", + "", + " Payment: A previously reserved deposit is returned on success.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + " Emits `JudgementUnrequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - One storage mutation `O(R + X)`.", + " - One event", + " # " + ] + }, + { + "name": "set_fee", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Set the fee required for a judgement to be requested from a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fee`: the new fee.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_account_id", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Change the account associated with a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `new`: the new account ID.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_fields", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fields", + "type": "IdentityFields" + } + ], + "docs": [ + " Set the field information for a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fields`: the fields that the registrar concerns themselves with.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", + " # " + ] + }, + { + "name": "provide_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "judgement", + "type": "IdentityJudgement" + } + ], + "docs": [ + " Provide a judgement for an account's identity.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `reg_index`.", + "", + " - `reg_index`: the index of the registrar whose judgement is being made.", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "", + " Emits `JudgementGiven` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-transfer operation.", + " - Up to one account-lookup operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "kill_identity", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's identity and sub-account information and slash the deposits.", + "", + " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + " `Slash`. Verification request deposits are not returned; they should be cancelled", + " manually using `cancel_request`.", + "", + " The dispatch origin for this call must match `T::ForceOrigin`.", + "", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + " Emits `IdentityKilled` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage mutations.", + " - One event.", + " # " + ] + }, + { + "name": "add_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Add the given account to the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Alter the associated name of the given sub-account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + } + ], + "docs": [ + " Remove the given account from the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "args": [], + "docs": [ + " Remove the sender as a sub-account.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender (*not* the original depositor).", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " super-identity.", + "", + " NOTE: This should not normally be used, but is provided in the case that the non-", + " controller of an account is maliciously registered as a sub-account." + ] + } + ], + "events": [ + { + "name": "IdentitySet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set or reset (which will remove all judgements). \\[who\\]" + ] + }, + { + "name": "IdentityCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned. \\[who, deposit\\]" + ] + }, + { + "name": "IdentityKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed. \\[who, deposit\\]" + ] + }, + { + "name": "JudgementRequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was asked from a registrar. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementUnrequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement request was retracted. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementGiven", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was given by a registrar. \\[target, registrar_index\\]" + ] + }, + { + "name": "RegistrarAdded", + "args": [ + "RegistrarIndex" + ], + "docs": [ + " A registrar was added. \\[registrar_index\\]" + ] + }, + { + "name": "SubIdentityAdded", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRemoved", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was removed from an identity and the deposit freed.", + " \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRevoked", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was cleared, and the given deposit repatriated from the", + " main identity account to the sub-identity account. \\[sub, main, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "BasicDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity." + ] + }, + { + "name": "FieldDeposit", + "type": "BalanceOf", + "value": "0x00a031a95fe300000000000000000000", + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will be", + " another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "type": "u32", + "value": "0x64000000", + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "type": "u32", + "value": "0x14000000", + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "errors": [ + { + "name": "TooManySubAccounts", + "docs": [ + " Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "docs": [ + " Account isn't found." + ] + }, + { + "name": "NotNamed", + "docs": [ + " Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "docs": [ + " Empty index." + ] + }, + { + "name": "FeeChanged", + "docs": [ + " Fee is changed." + ] + }, + { + "name": "NoIdentity", + "docs": [ + " No identity found." + ] + }, + { + "name": "StickyJudgement", + "docs": [ + " Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "docs": [ + " Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "docs": [ + " Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "docs": [ + " The target is invalid." + ] + }, + { + "name": "TooManyFields", + "docs": [ + " Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "docs": [ + " Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Account ID is already named." + ] + }, + { + "name": "NotSub", + "docs": [ + " Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "docs": [ + " Sub-account isn't owned by sender." + ] + } + ], + "index": 25 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": "Hash" + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,BidKind)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "VouchingStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Vec<(BlockNumber,BalanceOf)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "StrikeCount", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "SocietyVote", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SocietyVote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": [ + { + "name": "bid", + "args": [ + { + "name": "value", + "type": "BalanceOf" + } + ], + "docs": [ + " A user outside of the society can make a bid for entry.", + "", + " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + " when the bid becomes a member, or if the bid calls `unbid`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `value`: A one time payment the bid would like to receive when joining the society.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", + " - Storage Reads:", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " \t- One storage read to retrieve all members. O(M)", + " - Storage Writes:", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for new bid.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unbid", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " A bidder can remove their bid for entry into society.", + " By doing so, they will have their candidate deposit returned or", + " they will unvouch their voucher.", + "", + " Payment: The bid deposit is unreserved if the user made a bid.", + "", + " The dispatch origin for this call must be _Signed_ and a bidder.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + " # ", + " Key: B (len of bids), X (balance unreserve)", + " - One storage read and write to retrieve and update the bids. O(B)", + " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B + X)", + " # " + ] + }, + { + "name": "vouch", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "tip", + "type": "BalanceOf" + } + ], + "docs": [ + " As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + " There is no deposit required to vouch for a new bid, but a member can only vouch for", + " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + " the suspension judgement origin, the member will be banned from vouching again.", + "", + " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + " be paid as a portion of the reward the member will receive for joining the society.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `who`: The user who you would like to vouch for.", + " - `value`: The total reward to be paid between you and the candidate if they become", + " a member in the society.", + " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", + " the society. Tips larger than `value` will be saturated upon payout.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members)", + " - Storage Reads:", + " \t- One storage read to retrieve all members. O(M)", + " \t- One storage read to check member is not already vouching. O(1)", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " - Storage Writes:", + " \t- One storage write to insert vouching status to the member. O(1)", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(log M) search to check sender is a member.", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for vouch.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unvouch", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " As a vouching member, unvouch a bid. This only works while vouched user is", + " only a bidder (and not a candidate).", + "", + " The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + " # ", + " Key: B (len of bids)", + " - One storage read O(1) to check the signer is a vouching member.", + " - One storage mutate to retrieve and update the bids. O(B)", + " - One vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B)", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "candidate", + "type": "LookupSource" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on a candidate.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `candidate`: The candidate that the member would like to bid on.", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " Key: C (len of candidates), M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One account lookup.", + " - One storage read O(C) and O(C) search to check that user is a candidate.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM + C)", + " # " + ] + }, + { + "name": "defender_vote", + "args": [ + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on the defender.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " - Key: M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM)", + " # " + ] + }, + { + "name": "payout", + "args": [], + "docs": [ + " Transfer the first matured payout for the sender and remove it from the records.", + "", + " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", + "", + " Payment: The member will receive a payment equal to their first matured", + " payout to their free balance.", + "", + " The dispatch origin for this call must be _Signed_ and a member with", + " payouts remaining.", + "", + " # ", + " Key: M (len of members), P (number of payouts for a particular member)", + " - One storage read O(M) and O(log M) search to check signer is a member.", + " - One storage read O(P) to get all payouts for a member.", + " - One storage read O(1) to get the current block number.", + " - One currency transfer call. O(X)", + " - One storage write or removal to update the member's payouts. O(P)", + "", + " Total Complexity: O(M + logM + P + X)", + " # " + ] + }, + { + "name": "found", + "args": [ + { + "name": "founder", + "type": "AccountId" + }, + { + "name": "max_members", + "type": "u32" + }, + { + "name": "rules", + "type": "Bytes" + } + ], + "docs": [ + " Found the society.", + "", + " This is done as a discrete action in order to allow for the", + " module to be included into a running chain and can only be done once.", + "", + " The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + " Parameters:", + " - `founder` - The first member and head of the newly founded society.", + " - `max_members` - The initial max number of members for the society.", + " - `rules` - The rules of this society concerning membership.", + "", + " # ", + " - Two storage mutates to set `Head` and `Founder`. O(1)", + " - One storage write to add the first member to society. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "unfound", + "args": [], + "docs": [ + " Annul the founding of the society.", + "", + " The dispatch origin for this call must be Signed, and the signing account must be both", + " the `Founder` and the `Head`. This implies that it may only be done when there is one", + " member.", + "", + " # ", + " - Two storage reads O(1).", + " - Four storage removals O(1).", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "judge_suspended_member", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "forgive", + "type": "bool" + } + ], + "docs": [ + " Allow suspension judgement origin to make judgement on a suspended member.", + "", + " If a suspended member is forgiven, we simply add them back as a member, not affecting", + " any of the existing storage items for that member.", + "", + " If a suspended member is rejected, remove all associated storage items, including", + " their payouts, and remove any vouched bids they currently have.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended member to be judged.", + " - `forgive` - A boolean representing whether the suspension judgement origin", + " forgives (`true`) or rejects (`false`) a suspended member.", + "", + " # ", + " Key: B (len of bids), M (len of members)", + " - One storage read to check `who` is a suspended member. O(1)", + " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", + " - Up to 3 storage removals O(1) to clean up a removed member.", + " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal. O(1)", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B)", + " # " + ] + }, + { + "name": "judge_suspended_candidate", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "judgement", + "type": "SocietyJudgement" + } + ], + "docs": [ + " Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + " If the judgement is `Approve`, we add them to society as a member with the appropriate", + " payment for joining society.", + "", + " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + " to the society treasury, or we ban the voucher from vouching again.", + "", + " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + " through the induction process again.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended candidate to be judged.", + " - `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + " # ", + " Key: B (len of bids), M (len of members), X (balance action)", + " - One storage read to check `who` is a suspended candidate.", + " - One storage removal of the suspended candidate.", + " - Approve Logic", + " \t- One storage read to get the available pot to pay users with. O(1)", + " \t- One storage write to update the available pot. O(1)", + " \t- One storage read to get the current block number. O(1)", + " \t- One storage read to get all members. O(M)", + " \t- Up to one unreserve currency action.", + " \t- Up to two new storage writes to payouts.", + " \t- Up to one storage write with O(log M) binary search to add a member to society.", + " - Reject Logic", + " \t- Up to one repatriate reserved currency action. O(X)", + " \t- Up to one storage write to ban the vouching member from vouching again.", + " - Rebid Logic", + " \t- Storage mutate with O(log B) binary search to place the user back into bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal.", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B + X)", + " # " + ] + }, + { + "name": "set_max_members", + "args": [ + { + "name": "max", + "type": "u32" + } + ], + "docs": [ + " Allows root origin to change the maximum number of members in society.", + " Max membership count must be greater than 1.", + "", + " The dispatch origin for this call must be from _ROOT_.", + "", + " Parameters:", + " - `max` - The maximum number of members for the society.", + "", + " # ", + " - One storage write to update the max. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "Founded", + "args": [ + "AccountId" + ], + "docs": [ + " The society is founded by the given identity. \\[founder\\]" + ] + }, + { + "name": "Bid", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A membership bid just happened. The given account is the candidate's ID and their offer", + " is the second. \\[candidate_id, offer\\]" + ] + }, + { + "name": "Vouch", + "args": [ + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A membership bid just happened by vouching. The given account is the candidate's ID and", + " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]" + ] + }, + { + "name": "AutoUnbid", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "args": [ + "AccountId", + "Vec" + ], + "docs": [ + " A group of candidates have been inducted. The batch's primary is the first value, the", + " batch in full is the second. \\[primary, candidates\\]" + ] + }, + { + "name": "SuspendedMemberJudgement", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A suspended member has been judged. \\[who, judged\\]" + ] + }, + { + "name": "CandidateSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] has been suspended" + ] + }, + { + "name": "MemberSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been suspended" + ] + }, + { + "name": "Challenged", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been challenged" + ] + }, + { + "name": "Vote", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed \\[candidate, voter, vote\\]" + ] + }, + { + "name": "DefenderVote", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed for a defending member \\[voter, vote\\]" + ] + }, + { + "name": "NewMaxMembers", + "args": [ + "u32" + ], + "docs": [ + " A new \\[max\\] member count has been set" + ] + }, + { + "name": "Unfounded", + "args": [ + "AccountId" + ], + "docs": [ + " Society is unfounded. \\[founder\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds were deposited into the society account. \\[value\\]" + ] + } + ], + "constants": [ + { + "name": "CandidateDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", + " before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "type": "BalanceOf", + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "type": "BlockNumber", + "value": "0x00770100", + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "ChallengePeriod", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f736f636965", + "docs": [ + " The societies's module id" + ] + }, + { + "name": "MaxCandidateIntake", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " Maximum candidate intake per round." + ] + } + ], + "errors": [ + { + "name": "BadPosition", + "docs": [ + " An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "docs": [ + " User is not a member." + ] + }, + { + "name": "AlreadyMember", + "docs": [ + " User is already a member." + ] + }, + { + "name": "Suspended", + "docs": [ + " User is suspended." + ] + }, + { + "name": "NotSuspended", + "docs": [ + " User is not suspended." + ] + }, + { + "name": "NoPayout", + "docs": [ + " Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "docs": [ + " Society already founded." + ] + }, + { + "name": "InsufficientPot", + "docs": [ + " Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "docs": [ + " Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "docs": [ + " Member is not vouching." + ] + }, + { + "name": "Head", + "docs": [ + " Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "docs": [ + " Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "docs": [ + " User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "docs": [ + " User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "docs": [ + " User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "docs": [ + " Too many members in the society." + ] + }, + { + "name": "NotFounder", + "docs": [ + " The caller is not the founder." + ] + }, + { + "name": "NotHead", + "docs": [ + " The caller is not the head." + ] + } + ], + "index": 26 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RecoveryConfig", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "ActiveRecovery", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": [ + { + "name": "as_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through a recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you want to make a call on-behalf-of.", + " - `call`: The call you want to make with the recovered account.", + "", + " # ", + " - The weight of the `call` + 10,000.", + " - One storage lookup to check account is recovered by `who`. O(1)", + " # " + ] + }, + { + "name": "set_recovered", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow ROOT to bypass the recovery process and set an a rescuer account", + " for a lost account directly.", + "", + " The dispatch origin for this call must be _ROOT_.", + "", + " Parameters:", + " - `lost`: The \"lost account\" to be recovered.", + " - `rescuer`: The \"rescuer account\" which can call as the lost account.", + "", + " # ", + " - One storage write O(1)", + " - One event", + " # " + ] + }, + { + "name": "create_recovery", + "args": [ + { + "name": "friends", + "type": "Vec" + }, + { + "name": "threshold", + "type": "u16" + }, + { + "name": "delay_period", + "type": "BlockNumber" + } + ], + "docs": [ + " Create a recovery configuration for your account. This makes your account recoverable.", + "", + " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + " will be reserved for storing the recovery configuration. This deposit is returned", + " in full when the user calls `remove_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `friends`: A list of friends you trust to vouch for recovery attempts.", + " Should be ordered and contain no duplicate values.", + " - `threshold`: The number of friends that must vouch for a recovery attempt", + " before the account can be recovered. Should be less than or equal to", + " the length of the list of friends.", + " - `delay_period`: The number of blocks after a recovery attempt is initialized", + " that needs to pass before the account can be recovered.", + "", + " # ", + " - Key: F (len of friends)", + " - One storage read to check that account is not already recoverable. O(1).", + " - A check that the friends list is sorted and unique. O(F)", + " - One currency reserve operation. O(X)", + " - One storage write. O(1). Codec O(F).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "initiate_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Initiate the process for recovering a recoverable account.", + "", + " Payment: `RecoveryDeposit` balance will be reserved for initiating the", + " recovery process. This deposit will always be repatriated to the account", + " trying to be recovered. See `close_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `account`: The lost account that you want to recover. This account", + " needs to be recoverable (i.e. have a recovery configuration).", + "", + " # ", + " - One storage read to check that account is recoverable. O(F)", + " - One storage read to check that this recovery process hasn't already started. O(1)", + " - One currency reserve operation. O(X)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "vouch_recovery", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow a \"friend\" of a recoverable account to vouch for an active recovery", + " process for that account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + " for the recoverable account.", + "", + " Parameters:", + " - `lost`: The lost account that you want to recover.", + " - `rescuer`: The account trying to rescue the lost account that you", + " want to vouch for.", + "", + " The combination of these two parameters must point to an active recovery", + " process.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One binary search to confirm caller is a friend. O(logF)", + " - One binary search to confirm caller has not already vouched. O(logV)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + logF + V + logV)", + " # " + ] + }, + { + "name": "claim_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Allow a successful rescuer to claim their recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + " who has successfully completed the account recovery process: collected", + " `threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + " Parameters:", + " - `account`: The lost account that you want to claim has been successfully", + " recovered by you.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + V)", + " # " + ] + }, + { + "name": "close_recovery", + "args": [ + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " As the controller of a recoverable account, close an active recovery", + " process for your account.", + "", + " Payment: By calling this function, the recoverable account will receive", + " the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account with an active recovery process for it.", + "", + " Parameters:", + " - `rescuer`: The account trying to rescue this recoverable account.", + "", + " # ", + " Key: V (len of vouching friends)", + " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", + " - One balance call to repatriate reserved. O(X)", + " - One event.", + "", + " Total Complexity: O(V + X)", + " # " + ] + }, + { + "name": "remove_recovery", + "args": [], + "docs": [ + " Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + " NOTE: The user must make sure to call `close_recovery` on all active", + " recovery attempts before calling this function else it will fail.", + "", + " Payment: By calling this function the recoverable account will unreserve", + " their recovery configuration deposit.", + " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account (i.e. has a recovery configuration).", + "", + " # ", + " Key: F (len of friends)", + " - One storage read to get the prefix iterator for active recoveries. O(1)", + " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", + " - One balance call to unreserved. O(X)", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "cancel_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Cancel the ability to use `as_recovered` for `account`.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you are able to call on-behalf-of.", + "", + " # ", + " - One storage mutation to check account is recovered by `who`. O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "RecoveryCreated", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been set up for an \\[account\\]." + ] + }, + { + "name": "RecoveryInitiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process has been initiated for lost account by rescuer account.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "RecoveryVouched", + "args": [ + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been vouched for by sender.", + " \\[lost, rescuer, sender\\]" + ] + }, + { + "name": "RecoveryClosed", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been closed.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "AccountRecovered", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Lost account has been successfully recovered by rescuer account.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "RecoveryRemoved", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been removed for an \\[account\\]." + ] + } + ], + "constants": [ + { + "name": "ConfigDepositBase", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration." + ] + }, + { + "name": "FriendDepositFactor", + "type": "BalanceOf", + "value": "0x00203d88792d00000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery configuration." + ] + }, + { + "name": "MaxFriends", + "type": "u16", + "value": "0x0900", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration." + ] + }, + { + "name": "RecoveryDeposit", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery." + ] + } + ], + "errors": [ + { + "name": "NotAllowed", + "docs": [ + " User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "docs": [ + " Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "docs": [ + " Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "docs": [ + " Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "docs": [ + " Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "docs": [ + " This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "docs": [ + " A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "docs": [ + " A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "docs": [ + " This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "docs": [ + " The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "docs": [ + " This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "docs": [ + " The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "docs": [ + " There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "Overflow", + "docs": [ + " There was an overflow in a calculation" + ] + }, + { + "name": "AlreadyProxy", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "docs": [ + " Some internal state is broken." + ] + } + ], + "index": 27 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "VestingInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + } + ] + }, + "calls": [ + { + "name": "vest", + "args": [], + "docs": [ + " Unlock any vested funds of the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 2 Reads, 2 Writes", + " - Reads: Vesting Storage, Balances Locks, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, [Sender Account]", + " # " + ] + }, + { + "name": "vest_other", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Unlock any vested funds of a `target` account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account whose vested funds should be unlocked. Must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account", + " - Writes: Vesting Storage, Balances Locks, Target Account", + " # " + ] + }, + { + "name": "vested_transfer", + "args": [ + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Create a vested transfer.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account that should be transferred the vested funds.", + " - `amount`: The amount of funds to transfer and will be vested.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " # " + ] + }, + { + "name": "force_vested_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Force a vested transfer.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `source`: The account whose funds should be transferred.", + " - `target`: The account that should be transferred the vested funds.", + " - `amount`: The amount of funds to transfer and will be vested.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 4 Reads, 4 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", + " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", + " # " + ] + } + ], + "events": [ + { + "name": "VestingUpdated", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The amount vested has been updated. This could indicate more funds are available. The", + " balance given is the amount which is left unvested (and thus locked).", + " \\[account, unvested\\]" + ] + }, + { + "name": "VestingCompleted", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has become fully vested. No further vesting can happen." + ] + } + ], + "constants": [ + { + "name": "MinVestedTransfer", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + } + ], + "errors": [ + { + "name": "NotVesting", + "docs": [ + " The account given is not vesting." + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " An existing vesting schedule already exists for this account that cannot be clobbered." + ] + }, + { + "name": "AmountLow", + "docs": [ + " Amount being transferred is too low to create a vesting schedule." + ] + } + ], + "index": 28 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Bytes", + "value": "TaskAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from identity to the block number and index of the task." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "schedule", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.29 + .126 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda", + " - Will use base weight of 25 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u32" + } + ], + "docs": [ + " Cancel an anonymously scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.15 + 2.869 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_named", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 29.6 + .159 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 35 which should be good for more than 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel_named", + "args": [ + { + "name": "id", + "type": "Bytes" + } + ], + "docs": [ + " Cancel a named scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 24.91 + 2.907 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_after", + "args": [ + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task after a delay.", + "", + " # ", + " Same as [`schedule`].", + " # " + ] + }, + { + "name": "schedule_named_after", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task after a delay.", + "", + " # ", + " Same as [`schedule_named`].", + " # " + ] + } + ], + "events": [ + { + "name": "Scheduled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Scheduled some task. \\[when, index\\]" + ] + }, + { + "name": "Canceled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Canceled some task. \\[when, index\\]" + ] + }, + { + "name": "Dispatched", + "args": [ + "TaskAddress", + "Option", + "DispatchResult" + ], + "docs": [ + " Dispatched some task. \\[task, id, result\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "FailedToSchedule", + "docs": [ + " Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "docs": [ + " Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "docs": [ + " Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "docs": [ + " Reschedule failed because it does not change scheduled time." + ] + } + ], + "index": 29 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": [ + { + "name": "proxy", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorised for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "add_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Register a proxy account for the sender that is able to make calls on its behalf.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to make a proxy.", + " - `proxy_type`: The permissions allowed for this proxy account.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Unregister a proxy account for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to remove as a proxy.", + " - `proxy_type`: The permissions currently enabled for the removed proxy account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxies", + "args": [], + "docs": [ + " Unregister all proxy accounts for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " WARNING: This may be called on accounts created by `anonymous`, however if done, then", + " the unreserved fees will be inaccessible. **All access to this account will be lost.**", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "anonymous", + "args": [ + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u16" + } + ], + "docs": [ + " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + " initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + " Requires a `Signed` origin.", + "", + " - `proxy_type`: The type of the proxy that the sender will be registered as over the", + " new account. This will almost always be the most permissive `ProxyType` possible to", + " allow for maximum flexibility.", + " - `index`: A disambiguation index, in case this is called multiple times in the same", + " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + " want to use `0`.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " Fails with `Duplicate` if this has already been called in this transaction, from the", + " same sender, with the same parameters.", + "", + " Fails if there are insufficient funds to pay for deposit.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # ", + " TODO: Might be over counting 1 read" + ] + }, + { + "name": "kill_anonymous", + "args": [ + { + "name": "spawner", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "height", + "type": "Compact" + }, + { + "name": "ext_index", + "type": "Compact" + } + ], + "docs": [ + " Removes a previously spawned anonymous proxy.", + "", + " WARNING: **All access to this account will be lost.** Any funds held in it will be", + " inaccessible.", + "", + " Requires a `Signed` origin, and the sender account must have been created by a call to", + " `anonymous` with corresponding parameters.", + "", + " - `spawner`: The account that originally called `anonymous` to create this account.", + " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", + " - `proxy_type`: The proxy type originally passed to `anonymous`.", + " - `height`: The height of the chain when the call to `anonymous` was processed.", + " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", + "", + " Fails with `NoPermission` in case the caller is not a previously created anonymous", + " account whose `anonymous` call has corresponding parameters.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "announce", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Publish the hash of a proxy-call that will be made in the future.", + "", + " This must be called some number of blocks before the corresponding `proxy` is attempted", + " if the delay associated with the proxy relationship is greater than zero.", + "", + " No more than `MaxPending` announcements may be made at any one time.", + "", + " This will take a deposit of `AnnouncementDepositFactor` as well as", + " `AnnouncementDepositBase` if there are no other pending announcements.", + "", + " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "remove_announcement", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove a given announcement.", + "", + " May be called by a proxy account to remove a call they previously announced and return", + " the deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "reject_announcement", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove the given announcement of a delegate.", + "", + " May be called by a target (proxied) account to remove a call that one of their delegates", + " (`delegate`) has announced they want to execute. The deposit is returned.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `delegate`: The account that previously announced the call.", + " - `call_hash`: The hash of the call to be made.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "proxy_announced", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorized for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + } + ], + "events": [ + { + "name": "ProxyExecuted", + "args": [ + "DispatchResult" + ], + "docs": [ + " A proxy was executed correctly, with the given \\[result\\]." + ] + }, + { + "name": "AnonymousCreated", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "u16" + ], + "docs": [ + " Anonymous account has been created by new proxy with given", + " disambiguation index and proxy type. \\[anonymous, who, proxy_type, disambiguation_index\\]" + ] + }, + { + "name": "Announced", + "args": [ + "AccountId", + "AccountId", + "Hash" + ], + "docs": [ + " An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]" + ] + } + ], + "constants": [ + { + "name": "ProxyDepositBase", + "type": "BalanceOf", + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": "BalanceOf", + "value": "0x0060aa7714b400000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a pre-existing", + " storage value. Thus, when configuring `ProxyDepositFactor` one should take into account", + " `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": "u16", + "value": "0x2000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": "BalanceOf", + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16 bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": "BalanceOf", + "value": "0x00c054ef286801000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": [ + { + "name": "TooMany", + "docs": [ + " There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "docs": [ + " Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "docs": [ + " Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "docs": [ + " A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "docs": [ + " Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "docs": [ + " Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "docs": [ + " Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "docs": [ + " Cannot add self as proxy." + ] + } + ], + "index": 30 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "[u8;32]", + "value": "Multisig", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + }, + { + "name": "Calls", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "[u8;32]", + "value": "(OpaqueCall,AccountId,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": [ + { + "name": "as_multi_threshold_1", + "args": [ + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `other_signatories`: The accounts (other than the sender) who are part of the", + " multi-signature, but do not participate in the approval process.", + " - `call`: The call to be executed.", + "", + " Result is equivalent to the dispatched result.", + "", + " # ", + " O(Z + C) where Z is the length of the call and C its execution weight.", + " -------------------------------", + " - DB Weight: None", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call", + "type": "OpaqueCall" + }, + { + "name": "store_call", + "type": "bool" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " If there are enough, then dispatch the call.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call`: The call to be executed.", + "", + " NOTE: Unless this is the final approval, you will generally want to use", + " `approve_as_multi` instead, since it only requires a hash of the call.", + "", + " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + " on success, result is `Ok` and the result from the interior call, if it was executed,", + " may be found in the deposited `MultisigExecuted` event.", + "", + " # ", + " - `O(S + Z + Call)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - The weight of the `call`.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", + " deposit taken for its lifetime of", + " `DepositBase + threshold * DepositFactor`.", + " -------------------------------", + " - DB Weight:", + " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "approve_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call_hash", + "type": "[u8;32]" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call_hash`: The hash of the call to be executed.", + "", + " NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a", + " deposit taken for its lifetime of", + " `DepositBase + threshold * DepositFactor`.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account]", + " - Write: Multisig Storage, [Caller Account]", + " # " + ] + }, + { + "name": "cancel_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "timepoint", + "type": "Timepoint" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + " for this operation will be unreserved on success.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `timepoint`: The timepoint (block number and transaction index) of the first approval", + " transaction for this dispatch.", + " - `call_hash`: The hash of the call to be executed.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - One event.", + " - I/O: 1 read `O(S)`, one remove.", + " - Storage: removes one item.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", + " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", + " # " + ] + } + ], + "events": [ + { + "name": "NewMultisig", + "args": [ + "AccountId", + "AccountId", + "CallHash" + ], + "docs": [ + " A new multisig operation has begun. \\[approving, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigApproval", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been approved by someone.", + " \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigExecuted", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash", + "DispatchResult" + ], + "docs": [ + " A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigCancelled", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]" + ] + } + ], + "constants": [ + { + "name": "DepositBase", + "type": "BalanceOf", + "value": "0x00f01c0adbed01000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to store", + " a dispatch call for later." + ] + }, + { + "name": "DepositFactor", + "type": "BalanceOf", + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution." + ] + }, + { + "name": "MaxSignatories", + "type": "u16", + "value": "0x6400", + "docs": [ + " The maximum amount of signatories allowed for a given multisig." + ] + } + ], + "errors": [ + { + "name": "MinimumThreshold", + "docs": [ + " Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "docs": [ + " Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "docs": [ + " Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "docs": [ + " There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "docs": [ + " There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "docs": [ + " The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "docs": [ + " The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "docs": [ + " Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "docs": [ + " No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "docs": [ + " A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "docs": [ + " A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "docs": [ + " The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "docs": [ + " The data to be stored is already stored." + ] + } + ], + "index": 31 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": "BountyIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bounty", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_bounty", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "description", + "type": "Bytes" + } + ], + "docs": [ + " Propose a new bounty.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + " or slashed when rejected.", + "", + " - `curator`: The curator account whom will manage this bounty.", + " - `fee`: The curator fee.", + " - `value`: The total payment amount of this bounty, curator fee included.", + " - `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a bounty proposal. At a later time, the bounty will be funded and become active", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "propose_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "curator", + "type": "LookupSource" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Assign a curator to a funded bounty.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "unassign_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Unassign curator from a bounty.", + "", + " This function can only be called by the `RejectOrigin` a signed origin.", + "", + " If this function is called by the `RejectOrigin`, we assume that the curator is malicious", + " or inactive. As a result, we will slash the curator when possible.", + "", + " If the origin is the curator, we take this as a sign they are unable to do their job and", + " they willingly give up. We could slash them, but for now we allow them to recover their", + " deposit and exit without issue. (We may want to change this if it is abused.)", + "", + " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + " anyone in the community to call out that a curator is not doing their due diligence, and", + " we should pick a new curator. In this case the curator should also be slashed.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "accept_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Accept the curator role for a bounty.", + " A deposit will be reserved from curator and refund upon successful payout.", + "", + " May only be called from the curator.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "award_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to award.", + " - `beneficiary`: The beneficiary account whom will receive the payout.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "claim_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Claim the payout from an awarded bounty after payout delay.", + "", + " The dispatch origin for this call must be the beneficiary of this bounty.", + "", + " - `bounty_id`: Bounty ID to claim.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "close_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Cancel a proposed or active bounty. All the funds will be sent to treasury and", + " the curator deposit will be unreserved if possible.", + "", + " Only `T::RejectOrigin` is able to cancel a bounty.", + "", + " - `bounty_id`: Bounty ID to cancel.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "extend_bounty_expiry", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Extend the expiry time of an active bounty.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to extend.", + " - `remark`: additional information.", + "", + " # ", + " - O(1).", + " # " + ] + } + ], + "events": [ + { + "name": "BountyProposed", + "args": [ + "BountyIndex" + ], + "docs": [ + " New bounty proposal. \\[index\\]" + ] + }, + { + "name": "BountyRejected", + "args": [ + "BountyIndex", + "Balance" + ], + "docs": [ + " A bounty proposal was rejected; funds were slashed. \\[index, bond\\]" + ] + }, + { + "name": "BountyBecameActive", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty proposal is funded and became active. \\[index\\]" + ] + }, + { + "name": "BountyAwarded", + "args": [ + "BountyIndex", + "AccountId" + ], + "docs": [ + " A bounty is awarded to a beneficiary. \\[index, beneficiary\\]" + ] + }, + { + "name": "BountyClaimed", + "args": [ + "BountyIndex", + "Balance", + "AccountId" + ], + "docs": [ + " A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]" + ] + }, + { + "name": "BountyCanceled", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty is cancelled. \\[index\\]" + ] + }, + { + "name": "BountyExtended", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty expiry is extended. \\[index\\]" + ] + } + ], + "constants": [ + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within bounty description." + ] + }, + { + "name": "BountyDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": "BlockNumber", + "value": "0x00270600", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "BountyCuratorDeposit", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of the curator fee that will be reserved upfront as deposit for bounty curator." + ] + }, + { + "name": "BountyValueMinimum", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "docs": [ + " The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "docs": [ + " Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "docs": [ + " Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "docs": [ + " Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "docs": [ + " A bounty payout is pending.", + " To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "docs": [ + " The bounties cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 32 + }, + { + "name": "Tips", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "OpenTip", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "report_awesome", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'", + " - DbReads: `Reasons`, `Tips`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "retract_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + " If successful, the original deposit will be unreserved.", + "", + " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + " must have been reported by the signing account through `report_awesome` (and not", + " through `tip_new`).", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " Emits `TipRetracted` if successful.", + "", + " # ", + " - Complexity: `O(1)`", + " - Depends on the length of `T::Hash` which is fixed.", + " - DbReads: `Tips`, `origin account`", + " - DbWrites: `Reasons`, `Tips`, `origin account`", + " # " + ] + }, + { + "name": "tip_new", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Give a tip for something new; no finder's fee will be taken.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`", + " - DbReads: `Tippers`, `Reasons`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "tip", + "args": [ + { + "name": "hash", + "type": "Hash" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Declare a tip value for an already-open tip.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + " has started.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers.", + " decoding `Tipper` vec of length `T`, insert tip and check closing,", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`.", + " - DbReads: `Tippers`, `Tips`", + " - DbWrites: `Tips`", + " # " + ] + }, + { + "name": "close_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Close and payout a tip.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " The tip identified by `hash` must have finished its countdown period.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers.", + " decoding `Tipper` vec of length `T`.", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " - DbReads: `Tips`, `Tippers`, `tip finder`", + " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", + " # " + ] + }, + { + "name": "slash_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Remove and slash an already-open tip.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " As a result, the finder is slashed and the deposits are lost.", + "", + " Emits `TipSlashed` if successful.", + "", + " # ", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTip", + "args": [ + "Hash" + ], + "docs": [ + " A new tip suggestion has been opened. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosing", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has reached threshold and is closing. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been closed. \\[tip_hash, who, payout\\]" + ] + }, + { + "name": "TipRetracted", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has been retracted. \\[tip_hash\\]" + ] + }, + { + "name": "TipSlashed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "TipCountdown", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": "Percent", + "value": "0x14", + "docs": [ + " The amount of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a tip report." + ] + }, + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason." + ] + }, + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + } + ], + "errors": [ + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "docs": [ + " The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "docs": [ + " The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "docs": [ + " The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "docs": [ + " The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "docs": [ + " The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 33 + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AssetId", + "value": "AssetDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_128Concat", + "key1": "AssetId", + "key2": "AccountId", + "value": "AssetBalance", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00000000000000000000", + "docs": [ + " The number of units of assets held by any given account." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_128Concat", + "key1": "AssetId", + "key2": "AssetApprovalKey", + "value": "AssetApproval", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AssetId", + "value": "AssetMetadata", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + } + ] + }, + "calls": [ + { + "name": "create", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "min_balance", + "type": "TAssetBalance" + } + ], + "docs": [ + " Issue a new class of fungible assets from a public origin.", + "", + " This new asset class has no assets initially and its owner is the origin.", + "", + " The origin must be Signed and the sender must have sufficient funds free.", + "", + " Funds of sender are reserved by `AssetDeposit`.", + "", + " Parameters:", + " - `id`: The identifier of the new asset. This must not be currently in use to identify", + " an existing asset.", + " - `admin`: The admin of this class of assets. The admin is the initial address of each", + " member of the asset class's admin team.", + " - `min_balance`: The minimum balance of this new asset that any single account must", + " have. If an account's balance is reduced below this, then it collapses to zero.", + "", + " Emits `Created` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "is_sufficient", + "type": "bool" + }, + { + "name": "min_balance", + "type": "Compact" + } + ], + "docs": [ + " Issue a new class of fungible assets from a privileged origin.", + "", + " This new asset class has no assets initially.", + "", + " The origin must conform to `ForceOrigin`.", + "", + " Unlike `create`, no funds are reserved.", + "", + " - `id`: The identifier of the new asset. This must not be currently in use to identify", + " an existing asset.", + " - `owner`: The owner of this class of assets. The owner has full superuser permissions", + " over this asset, but may later change and configure the permissions using `transfer_ownership`", + " and `set_team`.", + " - `max_zombies`: The total number of accounts which may hold assets in this class yet", + " have no existential deposit.", + " - `min_balance`: The minimum balance of this new asset that any single account must", + " have. If an account's balance is reduced below this, then it collapses to zero.", + "", + " Emits `ForceCreated` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "witness", + "type": "AssetDestroyWitness" + } + ], + "docs": [ + " Destroy a class of fungible assets.", + "", + " The origin must conform to `ForceOrigin` or must be Signed and the sender must be the", + " owner of the asset `id`.", + "", + " - `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + " Emits `Destroyed` event when successful.", + "", + " Weight: `O(c + p + a)` where:", + " - `c = (witness.accounts - witness.sufficients)`", + " - `s = witness.sufficients`", + " - `a = witness.approvals`" + ] + }, + { + "name": "mint", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Mint assets of a particular class.", + "", + " The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + " - `id`: The identifier of the asset to have some amount minted.", + " - `beneficiary`: The account to be credited with the minted assets.", + " - `amount`: The amount of the asset to be minted.", + "", + " Emits `Destroyed` event when successful.", + "", + " Weight: `O(1)`", + " Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + " Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + " Bails with `BalanceZero` if the `who` is already dead.", + "", + " - `id`: The identifier of the asset to have some amount burned.", + " - `who`: The account to be debited from.", + " - `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + " Emits `Burned` with the actual amount burned. If this takes the balance to below the", + " minimum for the asset, then the amount burned is increased to take it to zero.", + "", + " Weight: `O(1)`", + " Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Move some assets from the sender account to another.", + "", + " Origin must be Signed.", + "", + " - `id`: The identifier of the asset to have some amount transferred.", + " - `target`: The account to be credited.", + " - `amount`: The amount by which the sender's balance of assets should be reduced and", + " `target`'s balance increased. The amount actually transferred may be slightly greater in", + " the case that the transfer would otherwise take the sender balance above zero but below", + " the minimum balance. Must be greater than zero.", + "", + " Emits `Transferred` with the actual amount transferred. If this takes the source balance", + " to below the minimum for the asset, then the amount transferred is increased to take it", + " to zero.", + "", + " Weight: `O(1)`", + " Modes: Pre-existence of `target`; Post-existence of sender; Prior & post zombie-status", + " of sender; Account pre-existence of `target`." + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Move some assets from the sender account to another, keeping the sender account alive.", + "", + " Origin must be Signed.", + "", + " - `id`: The identifier of the asset to have some amount transferred.", + " - `target`: The account to be credited.", + " - `amount`: The amount by which the sender's balance of assets should be reduced and", + " `target`'s balance increased. The amount actually transferred may be slightly greater in", + " the case that the transfer would otherwise take the sender balance above zero but below", + " the minimum balance. Must be greater than zero.", + "", + " Emits `Transferred` with the actual amount transferred. If this takes the source balance", + " to below the minimum for the asset, then the amount transferred is increased to take it", + " to zero.", + "", + " Weight: `O(1)`", + " Modes: Pre-existence of `target`; Post-existence of sender; Prior & post zombie-status", + " of sender; Account pre-existence of `target`." + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Move some assets from one account to another.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + " - `id`: The identifier of the asset to have some amount transferred.", + " - `source`: The account to be debited.", + " - `dest`: The account to be credited.", + " - `amount`: The amount by which the `source`'s balance of assets should be reduced and", + " `dest`'s balance increased. The amount actually transferred may be slightly greater in", + " the case that the transfer would otherwise take the `source` balance above zero but", + " below the minimum balance. Must be greater than zero.", + "", + " Emits `Transferred` with the actual amount transferred. If this takes the source balance", + " to below the minimum for the asset, then the amount transferred is increased to take it", + " to zero.", + "", + " Weight: `O(1)`", + " Modes: Pre-existence of `dest`; Post-existence of `source`; Prior & post zombie-status", + " of `source`; Account pre-existence of `dest`." + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "who", + "type": "LookupSource" + } + ], + "docs": [ + " Disallow further unprivileged transfers from an account.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + " - `who`: The account to be frozen.", + "", + " Emits `Frozen`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "who", + "type": "LookupSource" + } + ], + "docs": [ + " Allow unprivileged transfers from an account again.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + " - `who`: The account to be unfrozen.", + "", + " Emits `Thawed`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Disallow further unprivileged transfers for the asset class.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + "", + " Emits `Frozen`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Allow unprivileged transfers for the asset again.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + "", + " Emits `Thawed`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + } + ], + "docs": [ + " Change the Owner of an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " - `id`: The identifier of the asset.", + " - `owner`: The new Owner of this asset.", + "", + " Emits `OwnerChanged`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "issuer", + "type": "LookupSource" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "freezer", + "type": "LookupSource" + } + ], + "docs": [ + " Change the Issuer, Admin and Freezer of an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + " - `issuer`: The new Issuer of this asset.", + " - `admin`: The new Admin of this asset.", + " - `freezer`: The new Freezer of this asset.", + "", + " Emits `TeamChanged`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "name", + "type": "Bytes" + }, + { + "name": "symbol", + "type": "Bytes" + }, + { + "name": "decimals", + "type": "u8" + } + ], + "docs": [ + " Set the metadata for an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " Funds of sender are reserved according to the formula:", + " `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + " account any already reserved funds.", + "", + " - `id`: The identifier of the asset to update.", + " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + " - `decimals`: The number of decimals this asset uses to represent one unit.", + "", + " Emits `MetadataSet`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Clear the metadata for an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " Any deposit is freed for the asset owner.", + "", + " - `id`: The identifier of the asset to clear.", + "", + " Emits `MetadataCleared`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "name", + "type": "Bytes" + }, + { + "name": "symbol", + "type": "Bytes" + }, + { + "name": "decimals", + "type": "u8" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Force the metadata for an asset to some value.", + "", + " Origin must be ForceOrigin.", + "", + " Any deposit is left alone.", + "", + " - `id`: The identifier of the asset to update.", + " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + " - `decimals`: The number of decimals this asset uses to represent one unit.", + "", + " Emits `MetadataSet`.", + "", + " Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Clear the metadata for an asset.", + "", + " Origin must be ForceOrigin.", + "", + " Any deposit is returned.", + "", + " - `id`: The identifier of the asset to clear.", + "", + " Emits `MetadataCleared`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "issuer", + "type": "LookupSource" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "freezer", + "type": "LookupSource" + }, + { + "name": "min_balance", + "type": "Compact" + }, + { + "name": "is_sufficient", + "type": "bool" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Alter the attributes of a given asset.", + "", + " Origin must be `ForceOrigin`.", + "", + " - `id`: The identifier of the asset.", + " - `owner`: The new Owner of this asset.", + " - `issuer`: The new Issuer of this asset.", + " - `admin`: The new Admin of this asset.", + " - `freezer`: The new Freezer of this asset.", + " - `min_balance`: The minimum balance of this new asset that any single account must", + " have. If an account's balance is reduced below this, then it collapses to zero.", + " - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + " value to account for the state bloat associated with its balance storage. If set to", + " `true`, then non-zero balances may be stored without a `consumer` reference (and thus", + " an ED in the Balances pallet or whatever else is used to control user-account state", + " growth).", + " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + " instructions.", + "", + " Emits `AssetStatusChanged` with the identity of the asset.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "delegate", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Approve an amount of asset for transfer by a delegated third-party account.", + "", + " Origin must be Signed.", + "", + " Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + " for the purpose of holding the approval. If some non-zero amount of assets is already", + " approved from signing account to `delegate`, then it is topped up or unreserved to", + " meet the right value.", + "", + " NOTE: The signing account does not need to own `amount` of assets at the point of", + " making this call.", + "", + " - `id`: The identifier of the asset.", + " - `delegate`: The account to delegate permission to transfer asset.", + " - `amount`: The amount of asset that may be transferred by `delegate`. If there is", + " already an approval in place, then this acts additively.", + "", + " Emits `ApprovedTransfer` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "delegate", + "type": "LookupSource" + } + ], + "docs": [ + " Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + " Origin must be Signed and there must be an approval in place between signer and", + " `delegate`.", + "", + " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + " - `id`: The identifier of the asset.", + " - `delegate`: The account delegated permission to transfer asset.", + "", + " Emits `ApprovalCancelled` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "delegate", + "type": "LookupSource" + } + ], + "docs": [ + " Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + " Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + " account of the asset `id`.", + "", + " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + " - `id`: The identifier of the asset.", + " - `delegate`: The account delegated permission to transfer asset.", + "", + " Emits `ApprovalCancelled` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "destination", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Transfer some asset balance from a previously delegated account to some third-party", + " account.", + "", + " Origin must be Signed and there must be an approval in place by the `owner` to the", + " signer.", + "", + " If the entire amount approved for transfer is transferred, then any deposit previously", + " reserved by `approve_transfer` is unreserved.", + "", + " - `id`: The identifier of the asset.", + " - `owner`: The account which previously approved for a transfer of at least `amount` and", + " from which the asset balance will be withdrawn.", + " - `destination`: The account to which the asset balance of `amount` will be transferred.", + " - `amount`: The amount of assets to transfer.", + "", + " Emits `TransferredApproved` on success.", + "", + " Weight: `O(1)`" + ] + } + ], + "events": [ + { + "name": "Created", + "args": [ + "AssetId", + "AccountId", + "AccountId" + ], + "docs": [ + " Some asset class was created. \\[asset_id, creator, owner\\]" + ] + }, + { + "name": "Issued", + "args": [ + "AssetId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " Some assets were issued. \\[asset_id, owner, total_supply\\]" + ] + }, + { + "name": "Transferred", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " Some assets were transferred. \\[asset_id, from, to, amount\\]" + ] + }, + { + "name": "Burned", + "args": [ + "AssetId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " Some assets were destroyed. \\[asset_id, owner, balance\\]" + ] + }, + { + "name": "TeamChanged", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " The management team changed \\[asset_id, issuer, admin, freezer\\]" + ] + }, + { + "name": "OwnerChanged", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " The owner changed \\[asset_id, owner\\]" + ] + }, + { + "name": "Frozen", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " Some account `who` was frozen. \\[asset_id, who\\]" + ] + }, + { + "name": "Thawed", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " Some account `who` was thawed. \\[asset_id, who\\]" + ] + }, + { + "name": "AssetFrozen", + "args": [ + "AssetId" + ], + "docs": [ + " Some asset `asset_id` was frozen. \\[asset_id\\]" + ] + }, + { + "name": "AssetThawed", + "args": [ + "AssetId" + ], + "docs": [ + " Some asset `asset_id` was thawed. \\[asset_id\\]" + ] + }, + { + "name": "Destroyed", + "args": [ + "AssetId" + ], + "docs": [ + " An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " Some asset class was force-created. \\[asset_id, owner\\]" + ] + }, + { + "name": "MetadataSet", + "args": [ + "AssetId", + "Bytes", + "Bytes", + "u8", + "bool" + ], + "docs": [ + " New metadata has been set for an asset. \\[asset_id, name, symbol, decimals, is_frozen\\]" + ] + }, + { + "name": "MetadataCleared", + "args": [ + "AssetId" + ], + "docs": [ + " Metadata has been cleared for an asset. \\[asset_id\\]" + ] + }, + { + "name": "ApprovedTransfer", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " (Additional) funds have been approved for transfer to a destination account.", + " \\[asset_id, source, delegate, amount\\]" + ] + }, + { + "name": "ApprovalCancelled", + "args": [ + "AssetId", + "AccountId", + "AccountId" + ], + "docs": [ + " An approval for account `delegate` was cancelled by `owner`.", + " \\[id, owner, delegate\\]" + ] + }, + { + "name": "TransferredApproved", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " An `amount` was transferred in its entirety from `owner` to `destination` by", + " the approved `delegate`.", + " \\[id, owner, delegate, destination\\]" + ] + }, + { + "name": "AssetStatusChanged", + "args": [ + "AssetId" + ], + "docs": [ + " An asset has had its attributes changed by the `Force` origin.", + " \\[id\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "BalanceLow", + "docs": [ + " Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "BalanceZero", + "docs": [ + " Balance should be non-zero." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "docs": [ + " The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "docs": [ + " The origin account is frozen." + ] + }, + { + "name": "InUse", + "docs": [ + " The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "docs": [ + " Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "docs": [ + " Minimum balance should be non-zero." + ] + }, + { + "name": "Overflow", + "docs": [ + " A mint operation lead to an overflow." + ] + }, + { + "name": "NoProvider", + "docs": [ + " No provider reference exists to allow a non-zero balance of a non-self-sufficient asset." + ] + }, + { + "name": "BadMetadata", + "docs": [ + " Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "docs": [ + " No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "docs": [ + " The source account would not survive the transfer and it needs to stay alive." + ] + } + ], + "index": 34 + }, + { + "name": "Mmr", + "storage": { + "prefix": "MerkleMountainRange", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "u64", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 35 + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "items": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [] + }, + { + "name": "Lottery", + "modifier": "Optional", + "type": { + "plain": "LotteryConfig" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current lottery." + ] + }, + { + "name": "Participants", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(u32,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ] + }, + { + "name": "TicketsCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Total number of tickets sold." + ] + }, + { + "name": "Tickets", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ] + }, + { + "name": "CallIndices", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ] + } + ] + }, + "calls": [ + { + "name": "buy_ticket", + "args": [ + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Buy a ticket to enter the lottery.", + "", + " This extrinsic acts as a passthrough function for `call`. In all", + " situations where `call` alone would succeed, this extrinsic should", + " succeed.", + "", + " If `call` is successful, then we will attempt to purchase a ticket,", + " which may fail silently. To detect success of a ticket purchase, you", + " should listen for the `TicketBought` event.", + "", + " This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Set calls in storage which can be used to purchase a lottery ticket.", + "", + " This function only matters if you use the `ValidateCall` implementation", + " provided by this pallet, which uses storage to determine the valid calls.", + "", + " This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "args": [ + { + "name": "price", + "type": "BalanceOf" + }, + { + "name": "length", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "repeat", + "type": "bool" + } + ], + "docs": [ + " Start a lottery using the provided configuration.", + "", + " This extrinsic must be called by the `ManagerOrigin`.", + "", + " Parameters:", + "", + " * `price`: The cost of a single ticket.", + " * `length`: How long the lottery should run for starting at the current block.", + " * `delay`: How long after the lottery end we should wait before picking a winner.", + " * `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "args": [], + "docs": [ + " If a lottery is repeating, you can use this to stop the repeat.", + " The lottery will continue to run to completion.", + "", + " This extrinsic must be called by the `ManagerOrigin`." + ] + } + ], + "events": [ + { + "name": "LotteryStarted", + "args": [], + "docs": [ + " A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "args": [], + "docs": [ + " A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "args": [ + "AccountId", + "CallIndex" + ], + "docs": [ + " A ticket has been bought!" + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f6c6f74746f", + "docs": [] + }, + { + "name": "MaxCalls", + "type": "u32", + "value": "0x0a000000", + "docs": [] + } + ], + "errors": [ + { + "name": "Overflow", + "docs": [ + " An overflow has occurred." + ] + }, + { + "name": "NotConfigured", + "docs": [ + " A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "docs": [ + " A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "docs": [ + " A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "docs": [ + " The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "docs": [ + " You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "docs": [ + " Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "docs": [ + " Failed to encode calls" + ] + } + ], + "index": 36 + }, + { + "name": "Gilt", + "storage": { + "prefix": "Gilt", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": "Vec<(u32,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids ready to become gilts. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "ActiveTotal", + "modifier": "Default", + "type": { + "plain": "ActiveGiltsTotal" + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Information relating to the gilts currently active." + ] + }, + { + "name": "Active", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "ActiveIndex", + "value": "ActiveGilt", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The currently active gilts, indexed according to the order of creation." + ] + } + ] + }, + "calls": [ + { + "name": "place_bid", + "args": [ + { + "name": "amount", + "type": "Compact" + }, + { + "name": "duration", + "type": "u32" + } + ], + "docs": [ + " Place a bid for a gilt to be issued.", + "", + " Origin must be Signed, and account must have at least `amount` in free balance.", + "", + " - `amount`: The amount of the bid; these funds will be reserved. If the bid is", + " successfully elevated into an issued gilt, then these funds will continue to be", + " reserved until the gilt expires. Must be at least `MinFreeze`.", + " - `duration`: The number of periods for which the funds will be locked if the gilt is", + " issued. It will expire only after this period has elapsed after the point of issuance.", + " Must be greater than 1 and no more than `QueueCount`.", + "", + " Complexities:", + " - `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "args": [ + { + "name": "amount", + "type": "Compact" + }, + { + "name": "duration", + "type": "u32" + } + ], + "docs": [ + " Retract a previously placed bid.", + "", + " Origin must be Signed, and the account should have previously issued a still-active bid", + " of `amount` for `duration`.", + "", + " - `amount`: The amount of the previous bid.", + " - `duration`: The duration of the previous bid." + ] + }, + { + "name": "set_target", + "args": [ + { + "name": "target", + "type": "Compact" + } + ], + "docs": [ + " Set target proportion of gilt-funds.", + "", + " Origin must be `AdminOrigin`.", + "", + " - `target`: The target proportion of effective issued funds that should be under gilts", + " at any one time." + ] + }, + { + "name": "thaw", + "args": [ + { + "name": "index", + "type": "Compact" + } + ], + "docs": [ + " Remove an active but expired gilt. Reserved funds under gilt are freed and balance is", + " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion", + " of effective total issued funds.", + "", + " Origin must be Signed and the account must be the owner of the gilt of the given index.", + "", + " - `index`: The index of the gilt to be thawed." + ] + } + ], + "events": [ + { + "name": "BidPlaced", + "args": [ + "AccountId", + "BalanceOf", + "u32" + ], + "docs": [ + " A bid was successfully placed.", + " \\[ who, amount, duration \\]" + ] + }, + { + "name": "BidRetracted", + "args": [ + "AccountId", + "BalanceOf", + "u32" + ], + "docs": [ + " A bid was successfully removed (before being accepted as a gilt).", + " \\[ who, amount, duration \\]" + ] + }, + { + "name": "GiltIssued", + "args": [ + "ActiveIndex", + "BlockNumber", + "AccountId", + "BalanceOf" + ], + "docs": [ + " A bid was accepted as a gilt. The balance may not be released until expiry.", + " \\[ index, expiry, who, amount \\]" + ] + }, + { + "name": "GiltThawed", + "args": [ + "ActiveIndex", + "AccountId", + "BalanceOf", + "BalanceOf" + ], + "docs": [ + " An expired gilt has been thawed.", + " \\[ index, who, original_amount, additional_amount \\]" + ] + } + ], + "constants": [ + { + "name": "QueueCount", + "type": "u32", + "value": "0x2c010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "type": "u32", + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue." + ] + }, + { + "name": "FifoQueueLen", + "type": "u32", + "value": "0xf4010000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "Period", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinFreeze", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount of funds that may be offered to freeze for a gilt. Note that this", + " does not actually limit the amount which may be frozen in a gilt since gilts may be", + " split up in order to satisfy the desired amount of funds under gilts.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "IntakePeriod", + "type": "BlockNumber", + "value": "0x0a000000", + "docs": [ + " The number of blocks between consecutive attempts to issue more gilts in an effort to", + " get to the target amount to be frozen.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeBids", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The maximum amount of bids that can be turned into issued gilts each block. A larger", + " value here means less of the block available for transactions should there be a glut of", + " bids to make into gilts to reach the target." + ] + } + ], + "errors": [ + { + "name": "DurationTooSmall", + "docs": [ + " The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "docs": [ + " The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "docs": [ + " The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "docs": [ + " The queue for the bid's duration is full and the amount bid is too low to get in through", + " replacing an existing bid." + ] + }, + { + "name": "Unknown", + "docs": [ + " Gilt index is unknown." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Not the owner of the gilt." + ] + }, + { + "name": "NotExpired", + "docs": [ + " Gilt not yet at expiry date." + ] + }, + { + "name": "NotFound", + "docs": [ + " The given bid for retraction is not found." + ] + } + ], + "index": 37 + } + ], + "extrinsic": { + "version": 4, + "signedExtensions": [ + "CheckSpecVersion", + "CheckTxVersion", + "CheckGenesis", + "CheckMortality", + "CheckNonce", + "CheckWeight", + "ChargeTransactionPayment" + ] + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v13/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v13/bizinikiwi-hex.ts new file mode 100644 index 0000000..c333d36 --- /dev/null +++ b/packages/types-support/src/metadata/v13/bizinikiwi-hex.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x6d6574610da01853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e2c682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e4901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697338202020657870656e73697665292e2c202d2031206576656e742e51012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279bc20657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e59012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c4c20626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e0503106e6f6465387375627374726174652d6e6f64650a0000000b0100000100000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b01000000020000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780c753136082a0014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e4c802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e006101202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f743d012020206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e38f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e006101202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f743d012020206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e010c404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640004210120412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e044c626174636865645f63616c6c735f6c696d69740c7533321073ed000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0430546f6f4d616e7943616c6c73046020546f6f206d616e792063616c6c7320626174636865642e011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f6684426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f6684426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c75363420c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e405820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f28312960296501202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e44202020606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc05000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e000440556e636c6547656e65726174696f6e7338543a3a426c6f636b4e756d62657210050000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e1c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e041c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657848450120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d65732074686524206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e052042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964d05765616b426f756e6465645665633c42616c616e63654c6f636b3c543a3a42616c616e63653e2c20543a3a4d61784c6f636b733e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010230543a3a4163636f756e7449642901426f756e6465645665633c52657365727665446174613c543a3a526573657276654964656e7469666965722c20543a3a42616c616e63653e2c20543a3a0a4d617852657365727665733e00040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0114207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e70d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e6501202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e6669679820202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e3501202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c65783c202020636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d0202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e61012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636be020202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e5101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f7480202020617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e307472616e736665725f616c6c0810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365286b6565705f616c69766510626f6f6c440901205472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e005d01204e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e732074686174650120616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062656101207472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c490120796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f7261676544206465706f736974732c206574632e2e2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a4202d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e5d01202d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c51012020206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f725d012020207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fcc2020206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e3d01202d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e34202020233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b730c753332103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d617852657365727665730c7533321032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657304b0204e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657306485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0401000000000000000000000000000000000000000001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e000768456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e64657801000c753332100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100585375626d697373696f6e496e64696365734f663c543e0400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101050c753332545369676e65645375626d697373696f6e4f663c543e0011020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000034456c656374696f6e53636f72650400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01103c7375626d69745f756e7369676e656408307261775f736f6c7574696f6e7c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f726504406d617962655f6e6578745f73636f7265544f7074696f6e3c456c656374696f6e53636f72653e14b4205365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00dc204469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f4205468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c740420737570706f72747358537570706f7274733c543a3a4163636f756e7449643e205d0120536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748c2063616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e00490120546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e0065012054686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e79550120666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f6c206d656d6f72792f77656967687420636f6e73747261696e73292e187375626d697408307261775f736f6c7574696f6e7c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e586e756d5f7369676e65645f7375626d697373696f6e730c75333234a0205375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d420546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e0061012054686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e6454206f6620746865207369676e65642070686173652e0061012041206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e1901206d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002c2023203c7765696768743eb42051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011838536f6c7574696f6e53746f726564083c456c656374696f6e436f6d7075746510626f6f6c18b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e005501205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408244163636f756e7449641c42616c616e636504290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408244163636f756e7449641c42616c616e636504250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e3434556e7369676e6564506861736538543a3a426c6f636b4e756d62657210320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210320000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c10a0860100084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617438543a3a426c6f636b4e756d626572100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974794c5472616e73616374696f6e5072696f7269747920feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768741857656967687420c07c907c2d01000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e730c753332100a0000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768741857656967687420c07c907c2d0100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e6564526577617264426173653042616c616e63654f663c543e4000407a10f35a00000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f7369745765696768743042616c616e63654f663c543e400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e384d696e65724d61784c656e6774680c753332100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e2c6850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c044d0120546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f736974049820546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e65737304a4205769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d75636857656967687404bc20546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261049c204f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d6574616461746104ac20536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e64657804d4206053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564049c205468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e081c5374616b696e67011c5374616b696e679430486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f725072656673000800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400000c75333204000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e0004000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400000c75333204000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040610cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c6400001c50657263656e7404000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e016410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e4465012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e2c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3c65012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e590120556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365c020616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e4c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e003d012049662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1d0120746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533323c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f76650d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667314e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e9c2053616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e9c2053616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f65726173003cb020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3d0120546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865e020656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100404d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b734901205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca8204163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730038050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657854110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e24e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d820546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e583101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e5d01202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e2054686973610120202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e5d012020204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4c2020206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673290120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c702020202020202045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533324061012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b735101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5c2020205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2ce42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d69747314486d696e5f6e6f6d696e61746f725f626f6e643042616c616e63654f663c543e486d696e5f76616c696461746f725f626f6e643042616c616e63654f663c543e4c6d61785f6e6f6d696e61746f725f636f756e742c4f7074696f6e3c7533323e4c6d61785f76616c696461746f725f636f756e742c4f7074696f6e3c7533323e247468726573686f6c643c4f7074696f6e3c50657263656e743e34bc205570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e002901202a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e2901202a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e5901202a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e9c20202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e5901202a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e9c20202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00ac204f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e003901204e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e150120746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720428636f6e74726f6c6c657230543a3a4163636f756e744964544501204465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00450120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e005d01204966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265dc20656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e006101204966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e7334206d757374206265206d65743a4101202a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d617859012020206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e5d01202a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e6594202020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e6101202a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e6573550120202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c6444202020626f6e642072657175697265642e00590120546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739c2077686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e01301c457261506169640c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d20526577617264656408244163636f756e7449641c42616c616e636504090120546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c617368656408244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c65640004b02054686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c656404244163636f756e74496408250120416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e28205c5b73746173685c5d345061796f7574537461727465640820457261496e646578244163636f756e74496404190120546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e64657810a8000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c7533321010000000005c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6404d02043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f746865720459012054686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730851012054686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b82073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730851012054686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b82073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e091c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e746088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578084d01204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f7420746865a020626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e0a2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e6501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b82020206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e6101202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973cc2020207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001442050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e0849012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c34206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e646578384469737061746368526573756c7404cc20412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e2c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f6438543a3a426c6f636b4e756d62657210002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f77656410626f6f6c04010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e702056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0b1c436f756e63696c011c436f756e63696c182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746484205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e5d01202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f725420202077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a55012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468653020202020206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e2cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768745901202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67342020206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c3cf42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c550120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c20636861726765206114206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e80510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e006501202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f736564282070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669613901206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295d0120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465633020202020604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a48617368385d0120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741c2073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0c48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746484205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e5d01202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f725420202077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a55012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468653020202020206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e2cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768745901202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67342020206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c3cf42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c550120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c20636861726765206114206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e80510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e006501202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f736564282070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669613901206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295d0120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465633020202020604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a48617368385d0120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741c2073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0d24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674851012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795d0120202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865382020206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e0e4c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e0f1c4772616e647061011c4772616e6470611814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e10205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d183050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c730c753332106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1124436f6e7472616374730124436f6e74726163747314305072697374696e65436f64650001062c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001062c436f6465486173683c543e4c5072656661625761736d4d6f64756c653c543e0004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010530543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e0004000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650100505665633c44656c65746564436f6e74726163743e040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7359012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f696e697469616c697a65602e010c1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f64651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e10636f64651c5665633c75383e10646174611c5665633c75383e1073616c741c5665633c75383e58350120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e673820736f6d652062616c616e63652e000501205468697320697320746865206f6e6c792066756e6374696f6e20746861742063616e206465706c6f79206e657720636f646520746f2074686520636861696e2e0034202320506172616d6574657273006101202a2060656e646f776d656e74603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e1901202a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722ed0202a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef8202a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3501202a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a005d01202d2054686520737570706c6965642060636f64656020697320696e737472756d656e7465642c206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420202020636f64652e5d01202d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e4d01202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ed4202d205468652060656e646f776d656e7460206973207472616e7366657272656420746f20746865206e6577206163636f756e742e4501202d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e74696174651424656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d69743c436f6d706163743c5765696768743e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e1073616c741c5665633c75383e14010120496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e00390120546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654d0120636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e61727948206d75737420626520737570706c6965642e011830496e7374616e74696174656408244163636f756e744964244163636f756e74496404390120436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e205c5b6465706c6f7965722c20636f6e74726163745c5d285465726d696e6174656408244163636f756e744964244163636f756e744964306c20436f6e747261637420686173206265656e2072656d6f7665642e68205c5b636f6e74726163742c2062656e65666963696172795c5d0024202320506172616d7300c0202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420776173207465726d696e617465642e3101202d206062656e6566696369617279603a20546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e63652e001c2023204e6f746500410120546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420616e6420656d697474696e672074686973206576656e742069732062792063616c6c696e674820607365616c5f7465726d696e617465602e28436f646553746f72656404104861736804f020436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e205c5b636f64655f686173685c5d3c5363686564756c6555706461746564040c75333218c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e30205c5b76657273696f6e5c5d0024202320506172616d7300d0202d206076657273696f6e603a205468652076657273696f6e206f6620746865206e65776c7920736574207363686564756c652e3c436f6e7472616374456d697474656408244163636f756e7449641c5665633c75383e20a0204120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e4c205c5b636f6e74726163742c20646174615c5d0024202320506172616d7300cc202d2060636f6e7472616374603a2054686520636f6e7472616374207468617420656d697474656420746865206576656e742e6101202d206064617461603a204461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e682020206973206e656564656420746f206465636f64652069742e2c436f646552656d6f76656404104861736810b0204120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e38205c5b636f64655f686173685c5d00290120546869732068617070656e73207768656e20746865206c61737420636f6e747261637420746861742075736573207468697320636f64652068617368207761732072656d6f7665642e10205363686564756c652c5363686564756c653c543e7109040000000002000000010000800000001000000000100000000100002000000020000000004000000000020002000000a4150000f03200004a3d0000280f0000ce220000f4150000180b0000521c00000000000046c10200a8030400c80f000000050000c0080000000000009a15000052170000241300009b684a028e1200008e1200008e1200007012000000000000000000002a120000a410000086100000640f00001e0f0000b00e00005e100000ae10000072100000fe100000d61000006810000004100000d20f0000a6270000be1e000072290000141e0000d61000000e1000005a0f0000320f0000ae100000500f0000140f0000dc0f0000f425130000000000de3113000000000068f81200000000001a1e360000000000be38130000000000d616130000000000043e1300000000005411130000000000281a13000000000040572c000000000018ad0800000000001a531000000000007301000000000000d8f563000000000068020000000000000072a4200000000038093c0000000000aa696900000000007e4ebd07000000005306000000000000d81c0b0000000000fc4b1b0600000000bf02000000000000001e180600000000faf6d001000000004704000000000000caeb080a000000007a612d1f000000005aced709000000006c02000000000000e0030000000000002ef30132000000006b02000000000000d703000000000000b1070000000000005e6a1400000000000b1300000000000040781500000000003c0d0000000000005855110000000000420600000000000012461100000000004206000000000000c22a500900000000046820436f7374207363686564756c6520616e64206c696d6974732e3c436f6e74726163744465706f7369743042616c616e63654f663c543e4000f0436de36a01000000000000000000103d0120546865206465706f7369742074686174206d75737420626520706c6163656420696e746f2074686520636f6e74726163742773206163636f756e7420746f20696e7374616e74696174652069742e3d01205468697320697320696e202a2a6164646974696f6e2a2a20746f20746865205b6070616c6c65745f62616c616e6365733a3a50616c6c65743a3a4578697374656e69616c4465706f736974605d2e090120546865206d696e696d756d2062616c616e636520666f72206120636f6e74726163742773206163636f756e742063616e2062652071756572696564207573696e678c205b6050616c6c65743a3a73756273697374656e63655f7468726573686f6c64605d2e4844656c6574696f6e517565756544657074680c75333210a2ba010004f420546865206d6178696d756d206e756d626572206f6620747269657320746861742063616e2062652071756575656420666f722064656c6574696f6e2e4c44656c6574696f6e5765696768744c696d6974185765696768742000d0ed902e000000044d0120546865206d6178696d756d20616d6f756e74206f662077656967687420746861742063616e20626520636f6e73756d65642070657220626c6f636b20666f72206c617a7920747269652072656d6f76616c2e6858496e76616c69645363686564756c6556657273696f6e0405012041206e6577207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652063757272656e74206f6e652e204f75744f6647617304bc2054686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c04050120546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e6442656c6f7753756273697374656e63655468726573686f6c640c210120506572666f726d696e672074686520726571756573746564207472616e7366657220776f756c6420686176652062726f756768742074686520636f6e74726163742062656c6f774d01207468652073756273697374656e6365207468726573686f6c642e204e6f207472616e7366657220697320616c6c6f77656420746f20646f20746869732e2055736520607365616c5f7465726d696e617465605820746f207265636f7665722061206465706f7369742e504e6577436f6e74726163744e6f7446756e64656408390120546865206e65776c79206372656174656420636f6e74726163742069732062656c6f77207468652073756273697374656e6365207468726573686f6c6420616674657220657865637574696e6721012069747320636f6e74727563746f722e204e6f20636f6e7472616374732061726520616c6c6f77656420746f2065786973742062656c6f772074686174207468726573686f6c642e385472616e736665724661696c65640c250120506572666f726d696e672074686520726571756573746564207472616e73666572206661696c656420666f72206120726561736f6e206f726967696e6174696e6720696e2074686531012063686f73656e2063757272656e637920696d706c656d656e746174696f6e206f66207468652072756e74696d652e204d6f73742070726f6261626c79207468652062616c616e63652069738c20746f6f206c6f77206f72206c6f636b732061726520706c61636564206f6e2069742e4c4d617843616c6c44657074685265616368656408250120506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d697498206f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e6404c0204e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f6465546f6f4c617267650841012054686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e20746865482063757272656e74207363686564756c652e30436f64654e6f74466f756e6404c8204e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473042901204120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564042d0120496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564048c20436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c6172676504d0205468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74081d01205465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e4206f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f7277617264656404450120607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e6704dc20546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730421012054686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e3c4475706c6963617465546f706963730431012054686520746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e74736020636f6e7461696e73206174206c65617374206f6e65206475706c69636174652e404e6f436861696e457874656e73696f6e0c49012054686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c7473510120696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e747261637473342069732072656a65637465642e4444656c6574696f6e517565756546756c6c1405012052656d6f76616c206f66206120636f6e7472616374206661696c65642062656361757365207468652064656c6574696f6e2071756575652069732066756c6c2e00bc20546869732063616e2068617070656e207768656e2063616c6c696e6720607365616c5f7465726d696e617465602e5101205468652071756575652069732066696c6c65642062792064656c6574696e6720636f6e74726163747320616e6420656d7074696564206279206120666978656420616d6f756e74206561636820626c6f636b2e250120547279696e6720616761696e20647572696e6720616e6f7468657220626c6f636b20697320746865206f6e6c792077617920746f207265736f6c766520746869732069737375652e4053746f7261676545786861757374656410350120412073746f72616765206d6f64696669636174696f6e20657868617573746564207468652033326269742074797065207468617420686f6c6473207468652073746f726167652073697a652e00350120546869732063616e206569746865722068617070656e207768656e2074686520616363756d756c617465642073746f7261676520696e20627974657320697320746f6f206c61726765206f72ac207768656e206e756d626572206f662073746f72616765206974656d7320697320746f6f206c617267652e444475706c6963617465436f6e747261637404cc204120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f720cbc204120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d420546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e5c44656275674d657373616765496e76616c69645554463804410120546865206465627567206d6573736167652073706563696669656420746f20607365616c5f64656275675f6d6573736167656020646f657320636f6e7461696e20696e76616c6964205554462d382e405265656e7472616e636544656e69656404110120412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e12105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0110107375646f041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e547375646f5f756e636865636b65645f776569676874081063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1c5f776569676874185765696768742839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e310120546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b4205375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292ed0202d2054686520776569676874206f6620746869732063616c6c20697320646566696e6564206279207468652063616c6c65722e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652861012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f14206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ec8202d20576569676874206f662064657269766174697665206063616c6c6020657865637574696f6e202b2031302c3030302e302023203c2f7765696768743e010c14537564696404384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d284b65794368616e67656404244163636f756e74496404010120546865205c5b7375646f65725c5d206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e6504384469737061746368526573756c74048c2041207375646f206a75737420746f6f6b20706c6163652e205c5b726573756c745c5d00042c526571756972655375646f04802053656e646572206d75737420626520746865205375646f206163636f756e741320496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973dc2020206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e0440556e7369676e65645072696f726974794c5472616e73616374696f6e5072696f7269747920ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e0828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e1448417574686f72697479446973636f76657279000000000015204f6666656e63657301204f6666656e6365730c1c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001041c4f6666656e636508104b696e64384f706171756554696d65536c6f740c550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e50205c5b6b696e642c2074696d65736c6f745c5d2e00001628486973746f726963616c0000000000176052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0000000018204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e7449641101526567697374726174696f6e3c42616c616e63654f663c543e2c20543a3a4d6178526567697374726172732c20543a3a4d61784164646974696f6e616c4669656c64733e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964ec2842616c616e63654f663c543e2c20426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785375624163636f756e74733e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301004101426f756e6465645665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e2c20540a3a3a4d6178526567697374726172733e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666fa4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e400080c6a47e8d0300000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f7369743042616c616e63654f663c543e4000a031a95fe300000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e400080c6a47e8d0300000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e400080f420e6b5000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d626572100077010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d626572108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c753332100a0000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a4d01202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265ac2020206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e5d01202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f72652074686559012020206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f662c202020667269656e64732e5101202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d42020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a4501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265d02020207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496460290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e5d01202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a6101202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f76657265642062791c202020796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e4000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e4000203d88792d00000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e4000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67081c56657374696e6700010230543a3a4163636f756e7449644101426f756e6465645665633c56657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e2c0a4d617856657374696e675363686564756c65734765743c543e3e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e011410766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e000101204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e486420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e000101204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e3c6d657267655f7363686564756c6573083c7363686564756c65315f696e6465780c7533323c7363686564756c65325f696e6465780c753332546101204d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f766572590120746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c72656164792073746172746564207468655d012063757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c6561012069732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c3020756e6d6f6469666965642e00fc204e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e4501204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e6501204e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c20626520637265617465646820616e6420626f74682077696c6c2062652072656d6f7665642e0070204d6572676564207363686564756c6520617474726962757465733a3901202d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c4c20202063757272656e745f626c6f636b29602e2501202d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e5d01202d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00ec202d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652ef0202d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c55012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e2901205468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e74496404a020416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e08444d696e5665737465645472616e736665723042616c616e63654f663c543e400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c65730c753332101c0000000014284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c657308290120546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e64207468757355012063616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e647304d420416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d73041101204661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743ec82053616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d08344d6178696d756d576569676874185765696768742000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b0c7533321032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e10404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e744964a50128426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850726f786965733e2c2042616c616e63654f663c543e2c29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449649d0128426f756e6465645665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850656e64696e673e2c2042616c616e63654f663c543e2c290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e01103450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c7531360cec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0d0120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c5c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f7879416464656410244163636f756e744964244163636f756e7449642450726f7879547970652c426c6f636b4e756d62657204fc20412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d184050726f78794465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c753332102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e4000f09e544c390000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e5101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741d0120202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f776569676874185765696768748c590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e5101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741d0120202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e4000f01c0adbed0100000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f723042616c616e63654f663c543e400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730c75313608640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e8000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e2010546970730110546970730810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e61012020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062793101202020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f6648202020202060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e60b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e67746831012020206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e206279610120202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368406020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e67746855012020206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c4202020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d144c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f736974506572427974653042616c616e63654f663c543e400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e740414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000407a10f35a0000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e211841737365747301184173736574731014417373657400010228543a3a41737365744964f8417373657444657461696c733c543a3a42616c616e63652c20543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e00040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7401020228543a3a4173736574496430543a3a4163636f756e74496488417373657442616c616e63653c543a3a42616c616e63652c20543a3a45787472613e02280000000000000000000004e420546865206e756d626572206f6620756e697473206f66206173736574732068656c6420627920616e7920676976656e206163636f756e742e24417070726f76616c7300030c28543a3a4173736574496430543a3a4163636f756e74496430543a3a4163636f756e7449640c020202b0417070726f76616c3c543a3a42616c616e63652c204465706f73697442616c616e63654f663c542c20493e3e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d6574616461746101010228543a3a41737365744964190141737365744d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0a3e005000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e015c186372656174650c0869644c436f6d706163743c543a3a417373657449643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e636528543a3a42616c616e63654cec2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c02046756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e003020506172616d65746572733a5d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f637265617465100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653469735f73756666696369656e7410626f6f6c2c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e4cfc2049737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e005d01202d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966794c20616e206578697374696e672061737365742e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e732901206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e679420607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f79080869644c436f6d706163743c543a3a417373657449643e1c7769746e6573733844657374726f795769746e65737348902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00590120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686564206f776e6572206f662074686520617373657420606964602e005101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e671c2061737365742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e004901204e4f54453a2049742063616e2062652068656c7066756c20746f20666972737420667265657a6520616e206173736574206265666f72652064657374726f79696e6720697420736f207468617420796f754d012063616e2070726f76696465206163637572617465207769746e65737320696e666f726d6174696f6e20616e642070726576656e742075736572732066726f6d206d616e6970756c6174696e67207374617465b420696e20612077617920746861742063616e206d616b652069742068617264657220746f2064657374726f792e0078205765696768743a20604f2863202b2070202b206129602077686572653ac4202d206063203d20287769746e6573732e6163636f756e7473202d207769746e6573732e73756666696369656e7473296070202d206073203d207769746e6573732e73756666696369656e74736068202d206061203d207769746e6573732e617070726f76616c7360106d696e740c0869644c436f6d706163743c543a3a417373657449643e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e308c204d696e7420617373657473206f66206120706172746963756c617220636c6173732e003d0120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e1101202d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec8202d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129605901204d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e3c490120526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00dc204261696c732077697468206042616c616e63655a65726f6020696620746865206077686f6020697320616c726561647920646561642e000101202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea4202d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e2d01202d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e00550120456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f77207468653d01206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e003c205765696768743a20604f283129600d01204d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e48d4204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e4c7472616e736665725f6b6565705f616c6976650c0869644c436f6d706163743c543a3a417373657449643e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485d01204d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e005c204f726967696e206d757374206265205369676e65642e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642ea0202d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e5501202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64650120607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e6101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77c020746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f66282060746172676574602e38666f7263655f7472616e73666572100869644c436f6d706163743c543a3a417373657449643e18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e4cb8204d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e001501202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c202d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e98202d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e5d01202d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e645d012060646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5101207468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d82062656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e00650120456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e6365610120746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b652069742420746f207a65726f2e003c205765696768743a20604f283129605501204d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f6620206064657374602e18667265657a65080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528e420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e742e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e8c202d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f283129601074686177080869644c436f6d706163743c543a3a417373657449643e0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528d020416c6c6f7720756e70726976696c65676564207472616e73666572732066726f6d20616e206163636f756e7420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e94202d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f6173736574040869644c436f6d706163743c543a3a417373657449643e24f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e003901204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296028746861775f6173736574040869644c436f6d706163743c543a3a417373657449643e24c820416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e657273686970080869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652878204368616e676520746865204f776e6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d100869644c436f6d706163743c543a3a417373657449643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530c8204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f28312960307365745f6d65746164617461100869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c73087538407c2053657420746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00dc2046756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a550120604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e003101204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a820416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140869644c436f6d706163743c543a3a417373657449643e106e616d651c5665633c75383e1873796d626f6c1c5665633c75383e20646563696d616c730875382469735f66726f7a656e10626f6f6c38bc20466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e0070204f726967696e206d75737420626520466f7263654f726967696e2e006c20416e79206465706f736974206973206c65667420616c6f6e652e00bc202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e5101202d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e5101202d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3101202d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e005420456d69747320604d65746164617461536574602e005501205765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040869644c436f6d706163743c543a3a417373657449643e2c8420436c65617220746865206d6574616461746120666f7220616e2061737365742e0070204f726967696e206d75737420626520466f7263654f726967696e2e006420416e79206465706f7369742069732072657475726e65642e00b8202d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f2831296048666f7263655f61737365745f737461747573200869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c6d696e5f62616c616e63654c436f6d706163743c543a3a42616c616e63653e3469735f73756666696369656e7410626f6f6c2469735f66726f7a656e10626f6f6c589c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e5101202d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d757374410120686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e5501202d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e7451012076616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f5901206074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e642074687573510120616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e74207374617465242067726f777468292e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c0869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e50310120417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e005c204f726967696e206d757374206265205369676e65642e00510120456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e74590120666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794d0120617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f58206d656574207468652072696768742076616c75652e004901204e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f6648206d616b696e6720746869732063616c6c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e1101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e4d01202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e420616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c080869644c436f6d706163743c543a3a417373657449643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004101204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e6430206064656c6567617465602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365344d012043616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e004d01204f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e6c206163636f756e74206f662074686520617373657420606964602e004d0120556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e0901202d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f28312960447472616e736665725f617070726f766564100869644c436f6d706163743c543a3a417373657449643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c64657374696e6174696f6e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636518616d6f756e744c436f6d706163743c543a3a42616c616e63653e485101205472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d706172747924206163636f756e742e004d01204f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f2074686520207369676e65722e005d012049662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b82072657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e0094202d20606964603a20546865206964656e746966696572206f66207468652061737365742e6501202d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64c02066726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e6501202d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb8202d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e00a020456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e003c205765696768743a20604f2831296001481c437265617465640c1c41737365744964244163636f756e744964244163636f756e74496404ec20536f6d6520617373657420636c6173732077617320637265617465642e205c5b61737365745f69642c2063726561746f722c206f776e65725c5d184973737565640c1c41737365744964244163636f756e7449641c42616c616e636504ec20536f6d65206173736574732077657265206973737565642e205c5b61737365745f69642c206f776e65722c20746f74616c5f737570706c795c5d2c5472616e73666572726564101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636504f420536f6d65206173736574732077657265207472616e736665727265642e205c5b61737365745f69642c2066726f6d2c20746f2c20616d6f756e745c5d184275726e65640c1c41737365744964244163636f756e7449641c42616c616e636504e420536f6d652061737365747320776572652064657374726f7965642e205c5b61737365745f69642c206f776e65722c2062616c616e63655c5d2c5465616d4368616e676564101c41737365744964244163636f756e744964244163636f756e744964244163636f756e74496404050120546865206d616e6167656d656e74207465616d206368616e676564205c5b61737365745f69642c206973737565722c2061646d696e2c20667265657a65725c5d304f776e65724368616e676564081c41737365744964244163636f756e744964049820546865206f776e6572206368616e676564205c5b61737365745f69642c206f776e65725c5d1846726f7a656e081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f60207761732066726f7a656e2e205c5b61737365745f69642c2077686f5c5d18546861776564081c41737365744964244163636f756e74496404c420536f6d65206163636f756e74206077686f6020776173207468617765642e205c5b61737365745f69642c2077686f5c5d2c417373657446726f7a656e041c4173736574496404bc20536f6d65206173736574206061737365745f696460207761732066726f7a656e2e205c5b61737365745f69645c5d2c4173736574546861776564041c4173736574496404bc20536f6d65206173736574206061737365745f69646020776173207468617765642e205c5b61737365745f69645c5d2444657374726f796564041c41737365744964047820416e20617373657420636c617373207761732064657374726f7965642e30466f72636543726561746564081c41737365744964244163636f756e74496404e020536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e205c5b61737365745f69642c206f776e65725c5d2c4d65746164617461536574141c417373657449641c5665633c75383e1c5665633c75383e08753810626f6f6c046101204e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e205c5b61737365745f69642c206e616d652c2073796d626f6c2c20646563696d616c732c2069735f66726f7a656e5c5d3c4d65746164617461436c6561726564041c4173736574496404d4204d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e205c5b61737365745f69645c5d40417070726f7665645472616e73666572101c41737365744964244163636f756e744964244163636f756e7449641c42616c616e636508350120284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e9c205c5b61737365745f69642c20736f757263652c2064656c65676174652c20616d6f756e745c5d44417070726f76616c43616e63656c6c65640c1c41737365744964244163636f756e744964244163636f756e74496408f420416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e60205c5b69642c206f776e65722c2064656c65676174655c5d4c5472616e73666572726564417070726f766564141c41737365744964244163636f756e744964244163636f756e744964244163636f756e7449641c42616c616e63650c350120416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e60206279642074686520617070726f766564206064656c6567617465602e94205c5b69642c206f776e65722c2064656c65676174652c2064657374696e6174696f6e5c5d4841737365745374617475734368616e676564041c4173736574496408fc20416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e1c205c5b69645c5d143041737365744465706f736974584465706f73697442616c616e63654f663c542c20493e400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c4d657461646174614465706f73697442617365584465706f73697442616c616e63654f663c542c20493e400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465584465706f73697442616c616e63654f663c542c20493e4000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974584465706f73697442616c616e63654f663c542c20493e4000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d69740c753332103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e302842616c616e63654c6f77041901204163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e2c42616c616e63655a65726f04702042616c616e63652073686f756c64206265206e6f6e2d7a65726f2e304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e047820546865206f726967696e206163636f756e742069732066726f7a656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0490204d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e284e6f50726f7669646572084901204e6f2070726f7669646572207265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e741c2061737365742e2c4261644d65746164617461046020496e76616c6964206d6574616461746120676976656e2e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c644469650439012054686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e220c4d6d72010c4d6d720c20526f6f74486173680100583c5420617320436f6e6669673c493e3e3a3a486173688000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301000c75363420000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001060c753634583c5420617320436f6e6669673c493e3e3a3a48617368000400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000231c4c6f7474657279011c4c6f747465727918304c6f7474657279496e64657801000c7533321000000000001c4c6f74746572790000ac4c6f7474657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e3e040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e747301010530543a3a4163636f756e74496454287533322c205665633c43616c6c496e6465783e29001400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e7401000c7533321000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b6574730001050c75333230543a3a4163636f756e74496400040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100385665633c43616c6c496e6465783e0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e0110286275795f7469636b6574041063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e2c8c204275792061207469636b657420746f20656e74657220746865206c6f74746572792e00050120546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0d0120736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c642420737563636565642e001101204966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c1501207768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75b02073686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c820546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c73041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e181501205365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e00210120546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e29012070726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d420546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279101470726963653042616c616e63654f663c543e186c656e67746838543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265721872657065617410626f6f6c28c82053746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e003020506172616d65746572733a00a0202a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e3d01202a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e4901202a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee4202a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174001001012049662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ec020546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d820546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e0110384c6f7474657279537461727465640004702041206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640004882041206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208244163636f756e7449641c42616c616e6365046820412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408244163636f756e7449642443616c6c496e64657804682041207469636b657420686173206265656e20626f75676874210c2050616c6c657449642050616c6c657449642070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c730c753332100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e444d617847656e657261746552616e646f6d0c753332100a0000000c4901204e756d626572206f662074696d652077652073686f756c642074727920746f2067656e657261746520612072616e646f6d206e756d626572207468617420686173206e6f206d6f64756c6f20626961732e5d0120546865206c61726765722074686973206e756d6265722c20746865206d6f726520706f74656e7469616c20636f6d7075746174696f6e206973207573656420666f72207069636b696e67207468652077696e6e65722c01012062757420616c736f20746865206d6f7265206c696b656c792074686174207468652063686f73656e2077696e6e657220697320646f6e6520666169726c792e1c344e6f74436f6e66696775726564048c2041206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f677265737304882041206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e64656404742041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c04ac205468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e6704f420596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c73049420546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564045c204661696c656420746f20656e636f64652063616c6c73241047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a90141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265722c3e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d203c49676e6f72656449737375616e63653042616c616e63654f663c543e40996af44a87686c010000000000000000086501205468652069737375616e636520746f2069676e6f72652e205468697320697320737562747261637465642066726f6d20746865206043757272656e63796027732060746f74616c5f69737375616e63656020746f20676574d8207468652069737375616e636520627920776869636820776520696e666c617465206f72206465666c617465207468652067696c742e285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d62657210002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e400000c16ff2862300000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572100a00000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c753332100a0000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770845012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e8c207468726f756768207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e251c556e6971756573011c556e69717565731814436c61737300010228543a3a436c6173734964c8436c61737344657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e000400046c2044657461696c73206f6620616e20617373657420636c6173732e1c4163636f756e7400030c30543a3a4163636f756e74496428543a3a436c617373496434543a3a496e7374616e636549640c020202082829040008610120546865206173736574732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420617373657473206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e14417373657400020228543a3a436c617373496434543a3a496e7374616e63654964d4496e7374616e636544657461696c733c543a3a4163636f756e7449642c204465706f73697442616c616e63654f663c542c20493e3e02040004d4205468652061737365747320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f6600010228543a3a436c6173734964d4436c6173734d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e0004000470204d65746164617461206f6620616e20617373657420636c6173732e48496e7374616e63654d657461646174614f6600020228543a3a436c617373496434543a3a496e7374616e63654964e0496e7374616e63654d657461646174613c4465706f73697442616c616e63654f663c542c20493e2c20543a3a537472696e674c696d69743e020400047c204d65746164617461206f6620616e20617373657420696e7374616e63652e2441747472696275746500030c28543a3a436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0c020202dc28426f756e6465645665633c75382c20543a3a56616c75654c696d69743e2c204465706f73697442616c616e63654f663c542c20493e2904000470204d65746164617461206f6620616e20617373657420636c6173732e0158186372656174650814636c6173734c436f6d706163743c543a3a436c61737349643e1461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636540fc2049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e0029012054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e00290120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00b4206041737365744465706f736974602066756e6473206f662073656e646572206172652072657365727665642e003020506172616d65746572733a5501202d2060636c617373603a20546865206964656e746966696572206f6620746865206e657720617373657420636c6173732e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368a0206d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e009c20456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f2831296030666f7263655f6372656174650c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c400d012049737375652061206e657720636c617373206f66206e6f6e2d66756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b82054686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a820546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e00a020556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e003d01202d2060636c617373603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e5d01202d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e732901206f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e679420607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00b020456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f283129601c64657374726f790814636c6173734c436f6d706163743c543a3a436c61737349643e1c7769746e6573733844657374726f795769746e6573733c902044657374726f79206120636c617373206f662066756e6769626c65206173736574732e00610120546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d7573742062652074686570206f776e6572206f66207468652061737365742060636c617373602e00f8202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c61737320746f2062652064657374726f7965642e4901202d20607769746e657373603a20496e666f726d6174696f6e206f6e2074686520696e7374616e636573206d696e74656420696e2074686520617373657420636c6173732e2054686973206d7573742062652420636f72726563742e00a420456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e0068205765696768743a20604f286e202b206d29602077686572653a68202d20606e203d207769746e6573732e696e7374616e636573608c202d20606d203d207769746e6573732e696e7374616e63655f6d6574616461746173606c202d206061203d207769746e6573732e6174747269627574657360106d696e740c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652cb8204d696e7420616e20617373657420696e7374616e6365206f66206120706172746963756c617220636c6173732e00490120546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206d696e7465642ef0202d2060696e7374616e6365603a2054686520696e7374616e63652076616c7565206f662074686520617373657420746f206265206d696e7465642ee0202d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e7465642061737365742e009820456d697473206049737375656460206576656e74207768656e207375636365737366756c2e003c205765696768743a20604f28312960106275726e0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2c636865636b5f6f776e6572ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e34842044657374726f7920612073696e676c6520617373657420696e7374616e63652e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265206275726e65642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265206275726e65642e5501202d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c65737320746865802020206173736574206973206f776e656420627920746869732076616c75652e00b820456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e003c205765696768743a20604f2831296080204d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e10646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cc8204d6f766520616e2061737365742066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f8204f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a88202d207468652041646d696e206f66207468652061737365742060636c617373603b94202d20746865204f776e6572206f66207468652061737365742060696e7374616e6365603b6101202d2074686520617070726f7665642064656c656761746520666f72207468652061737365742060696e7374616e6365602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e002c20417267756d656e74733ad4202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207472616e736665727265642eec202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207472616e736665727265642ee4202d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f66207468652061737365742e005420456d69747320605472616e73666572726564602e003c205765696768743a20604f283129602472656465706f7369740814636c6173734c436f6d706163743c543a3a436c61737349643e24696e7374616e636573485665633c543a3a496e7374616e636549643e44a02052656576616c7561746520746865206465706f73697473206f6e20736f6d65206173736574732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2e5101202d2060696e7374616e636573603a2054686520696e7374616e636573206f662074686520617373657420636c6173732077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e005901204e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e7920617373657420696e7374616e6365732077686963682061726520756e6b6e6f776e206f723d0120696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220616101206465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e20696e7374616e63657359012077686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c7c20736f2069742773206f66206c6974746c6520636f6e73657175656e63652e0055012049742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636c61737320697320756e6b6e6f776e206f6620746865207369676e657220697368206e6f74207065726d697474656420746f2063616c6c2069742e0074205765696768743a20604f28696e7374616e6365732e6c656e2829296018667265657a650814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28f420446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f2062652066726f7a656e2ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f2062652066726f7a656e2e004020456d697473206046726f7a656e602e003c205765696768743a20604f2831296010746861770814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e28d42052652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e20617373657420696e7374616e63652e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00c0202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f206265207468617765642ed8202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f206265207468617765642e004020456d6974732060546861776564602e003c205765696768743a20604f2831296030667265657a655f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24050120446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e004501204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652061737365742060636c617373602e00a4202d2060636c617373603a2054686520617373657420636c61737320746f2062652066726f7a656e2e005420456d6974732060436c61737346726f7a656e602e003c205765696768743a20604f2831296028746861775f636c6173730414636c6173734c436f6d706163743c543a3a436c61737349643e24e42052652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652061737365742060636c617373602e008c202d2060636c617373603a2054686520636c61737320746f206265207468617765642e005420456d6974732060436c617373546861776564602e003c205765696768743a20604f28312960487472616e736665725f6f776e6572736869700814636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652890204368616e676520746865204f776e6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e8202d2060636c617373603a2054686520617373657420636c6173732077686f7365206f776e65722073686f756c64206265206368616e6765642eb8202d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320617373657420636c6173732e005820456d69747320604f776e65724368616e676564602e003c205765696768743a20604f28312960207365745f7465616d1014636c6173734c436f6d706163743c543a3a436c61737349643e186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530e0204368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e20617373657420636c6173732e003d01204f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652061737365742060636c617373602e00e4202d2060636c617373603a2054686520617373657420636c6173732077686f7365207465616d2073686f756c64206265206368616e6765642ec0202d2060697373756572603a20546865206e657720497373756572206f66207468697320617373657420636c6173732eb8202d206061646d696e603a20546865206e65772041646d696e206f66207468697320617373657420636c6173732ec8202d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320617373657420636c6173732e005420456d69747320605465616d4368616e676564602e003c205765696768743a20604f2831296040617070726f76655f7472616e736665720c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e2064656c65676174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c290120417070726f766520616e20696e7374616e636520746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e001501204f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f66207468652061737365742060696e7374616e6365602e002501202d2060636c617373603a2054686520636c617373206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e3d01202d2060696e7374616e6365603a2054686520696e7374616e6365206f662074686520617373657420746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e2101202d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e73666572207468652061737365742e009420456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e003c205765696768743a20604f283129603c63616e63656c5f617070726f76616c0c14636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e506d617962655f636865636b5f64656c6567617465ac4f7074696f6e3c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e4019012043616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e20617373657420627920612064656c65676174652e005c204f726967696e206d757374206265206569746865723a58202d207468652060466f72636560206f726967696e3b0501202d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652061737365742060636c617373603b1101202d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f66207468652061737365742060696e7374616e6365603b002c20417267756d656e74733a1d01202d2060636c617373603a2054686520636c617373206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e3501202d2060696e7374616e6365603a2054686520696e7374616e6365206f6620746865206173736574206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e5501202d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb42020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e009820456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e003c205765696768743a20604f2831296048666f7263655f61737365745f7374617475731c14636c6173734c436f6d706163743c543a3a436c61737349643e146f776e65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365186973737565728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651461646d696e8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c667265657a65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636530667265655f686f6c64696e6710626f6f6c2469735f66726f7a656e10626f6f6c449c20416c746572207468652061747472696275746573206f66206120676976656e2061737365742e0078204f726967696e206d7573742062652060466f7263654f726967696e602e00a0202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742ea0202d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea8202d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742ea0202d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eb0202d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d01202d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e20696e7374616e6365206f66207468697320617373657424202020636c6173732e4101202d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e3820696e737472756374696f6e732e00ec20456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e003c205765696768743a20604f28312960347365745f6174747269627574651014636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e1476616c756574426f756e6465645665633c75382c20543a3a56616c75654c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e4101202d20606d617962655f696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f283129603c636c6561725f6174747269627574650c14636c6173734c436f6d706163743c543a3a436c61737349643e386d617962655f696e7374616e6365544f7074696f6e3c543a3a496e7374616e636549643e0c6b65796c426f756e6465645665633c75382c20543a3a4b65794c696d69743e44c42053657420616e2061747472696275746520666f7220616e20617373657420636c617373206f7220696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d0120604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e8c202d20606b6579603a20546865206b6579206f6620746865206174747269627574652ed0202d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e005820456d6974732060417474726962757465536574602e003c205765696768743a20604f28312960307365745f6d657461646174611014636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c44a02053657420746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653c2061737365742060636c617373602e00550120496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e003d01202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f207365742e2901202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f207365742e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e005420456d69747320604d65746164617461536574602e003c205765696768743a20604f2831296038636c6561725f6d657461646174610814636c6173734c436f6d706163743c543a3a436c61737349643e20696e7374616e636558436f6d706163743c543a3a496e7374616e636549643e34a820436c65617220746865206d6574616461746120666f7220616e20617373657420696e7374616e63652e006101204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865482061737365742060696e7374616e6365602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e004501202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f736520696e7374616e63652773206d6574616461746120746f20636c6561722e3101202d2060696e7374616e6365603a20546865206964656e746966696572206f662074686520617373657420696e7374616e63652077686f7365206d6574616461746120746f20636c6561722e006420456d69747320604d65746164617461436c6561726564602e003c205765696768743a20604f28312960487365745f636c6173735f6d657461646174610c14636c6173734c436f6d706163743c543a3a436c61737349643e106461746178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e2469735f66726f7a656e10626f6f6c40942053657420746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e005d0120496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af820604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f90206163636f756e7420616e7920616c72656164792072657365727665642066756e64732e000501202d2060636c617373603a20546865206964656e746966696572206f66207468652061737365742077686f7365206d6574616461746120746f207570646174652e5501202d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e3901202d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e006820456d6974732060436c6173734d65746164617461536574602e003c205765696768743a20604f2831296050636c6561725f636c6173735f6d657461646174610414636c6173734c436f6d706163743c543a3a436c61737349643e309c20436c65617220746865206d6574616461746120666f7220616e20617373657420636c6173732e005901204f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f664c207468652061737365742060636c617373602e00c020416e79206465706f73697420697320667265656420666f722074686520617373657420636c617373206f776e65722e001901202d2060636c617373603a20546865206964656e746966696572206f662074686520617373657420636c6173732077686f7365206d6574616461746120746f20636c6561722e007820456d6974732060436c6173734d65746164617461436c6561726564602e003c205765696768743a20604f2831296001581c437265617465640c1c436c6173734964244163636f756e744964244163636f756e74496404e020416e20617373657420636c6173732077617320637265617465642e205c5b20636c6173732c2063726561746f722c206f776e6572205c5d30466f72636543726561746564081c436c6173734964244163636f756e74496404d420416e20617373657420636c6173732077617320666f7263652d637265617465642e205c5b20636c6173732c206f776e6572205c5d2444657374726f796564041c436c617373496404b020416e2061737365742060636c61737360207761732064657374726f7965642e205c5b20636c617373205c5d184973737565640c1c436c617373496428496e7374616e63654964244163636f756e74496404f420416e2061737365742060696e7374616e63656020776173206973737565642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d2c5472616e73666572726564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e74496404150120416e2061737365742060696e7374616e63656020776173207472616e736665727265642e205c5b20636c6173732c20696e7374616e63652c2066726f6d2c20746f205c5d184275726e65640c1c436c617373496428496e7374616e63654964244163636f756e74496404010120416e2061737365742060696e7374616e636560207761732064657374726f7965642e205c5b20636c6173732c20696e7374616e63652c206f776e6572205c5d1846726f7a656e081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e636560207761732066726f7a656e2e205c5b20636c6173732c20696e7374616e6365205c5d18546861776564081c436c617373496428496e7374616e6365496404e020536f6d652061737365742060696e7374616e63656020776173207468617765642e205c5b20636c6173732c20696e7374616e6365205c5d2c436c61737346726f7a656e041c436c617373496404ac20536f6d652061737365742060636c61737360207761732066726f7a656e2e205c5b20636c617373205c5d2c436c617373546861776564041c436c617373496404ac20536f6d652061737365742060636c6173736020776173207468617765642e205c5b20636c617373205c5d304f776e65724368616e676564081c436c6173734964244163636f756e74496404a420546865206f776e6572206368616e676564205c5b20636c6173732c206e65775f6f776e6572205c5d2c5465616d4368616e676564101c436c6173734964244163636f756e744964244163636f756e744964244163636f756e74496404010120546865206d616e6167656d656e74207465616d206368616e676564205c5b20636c6173732c206973737565722c2061646d696e2c20667265657a6572205c5d40417070726f7665645472616e73666572101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c550120416e2060696e7374616e636560206f6620616e2061737365742060636c6173736020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e73666572206279206130206064656c6567617465602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d44417070726f76616c43616e63656c6c6564101c436c617373496428496e7374616e63654964244163636f756e744964244163636f756e7449640c610120416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e73666572207468652060696e7374616e636560206f6620616e2061737365742060636c6173736020776173682063616e63656c6c65642062792069747320606f776e6572602e9c205c5b20636c6173732c20696e7374616e63652c206f776e65722c2064656c6567617465205c5d4841737365745374617475734368616e676564041c436c6173734964081d0120416e2061737365742060636c617373602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e30205c5b20636c617373205c5d40436c6173734d657461646174615365740c1c436c617373496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c042d01204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c6173732e205c5b20636c6173732c20646174612c2069735f66726f7a656e205c5d50436c6173734d65746164617461436c6561726564041c436c617373496404e8204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c6173732e205c5b20636c617373205c5d2c4d65746164617461536574101c436c617373496428496e7374616e6365496478426f756e6465645665633c75382c20543a3a537472696e674c696d69743e10626f6f6c08c4204e6577206d6574616461746120686173206265656e2073657420666f7220616e20617373657420696e7374616e63652e9c205c5b20636c6173732c20696e7374616e63652c20646174612c2069735f66726f7a656e205c5d3c4d65746164617461436c6561726564081c436c617373496428496e7374616e63654964041d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c20696e7374616e6365205c5d2c52656465706f7369746564081c436c6173734964485665633c543a3a496e7374616e636549643e044d01204d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420696e7374616e63652e205c5b20636c6173732c207375636365737366756c5f696e7374616e636573205c5d30417474726962757465536574101c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e74426f756e6465645665633c75382c20543a3a56616c75654c696d69743e081101204e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220616e20617373657420636c617373206f7220696e7374616e63652ea0205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c2076616c7565205c5d40417474726962757465436c65617265640c1c436c6173734964544f7074696f6e3c543a3a496e7374616e636549643e6c426f756e6465645665633c75382c20543a3a4b65794c696d69743e08110120417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220616e20617373657420636c617373206f7220696e7374616e63652eb8205c5b20636c6173732c206d617962655f696e7374616e63652c206b65792c206d617962655f76616c7565205c5d2030436c6173734465706f736974584465706f73697442616c616e63654f663c542c20493e400000c16ff286230000000000000000000411012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e20617373657420636c6173732e3c496e7374616e63654465706f736974584465706f73697442616c616e63654f663c542c20493e4000407a10f35a00000000000000000000041d012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e20617373657420696e7374616e63652e4c4d657461646174614465706f73697442617365584465706f73697442616c616e63654f663c542c20493e400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e504174747269627574654465706f73697442617365584465706f73697442616c616e63654f663c542c20493e400080c6a47e8d030000000000000000000459012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e2061737365742e384465706f73697450657242797465584465706f73697442616c616e63654f663c542c20493e4000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d69740c753332103200000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d69740c753332102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d69740c753332100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e28304e6f5065726d697373696f6e04ec20546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e047c2054686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c726561647945786973747304e82054686520617373657420696e7374616e63652049442068617320616c7265616479206265656e207573656420666f7220616e2061737365742e2857726f6e674f776e657204ec20546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e657373047020496e76616c6964207769746e657373206461746120676976656e2e14496e557365047c2054686520617373657420494420697320616c72656164792074616b656e2e1846726f7a656e049c2054686520617373657420696e7374616e6365206f7220636c6173732069732066726f7a656e2e3457726f6e6744656c656761746504f8205468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465047c205468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f76656404c8204e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e26485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f7261676524305472616e73616374696f6e7300010238543a3a426c6f636b4e756d626572505665633c5472616e73616374696f6e496e666f3e00040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e7401010238543a3a426c6f636b4e756d6265720c753332001000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c4279746546656500003042616c616e63654f663c543e040004582053746f72616765206665652070657220627974652e20456e74727946656500003042616c616e63654f663c543e040004742053746f726167652066656520706572207472616e73616374696f6e2e484d61785472616e73616374696f6e53697a6501000c753332100000000004cc204d6178696d756d20646174612073657420696e20612073696e676c65207472616e73616374696f6e20696e2062797465732e504d6178426c6f636b5472616e73616374696f6e7301000c753332100000000004d4204d6178696d756d206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e2074686520626c6f636b2e3453746f72616765506572696f64010038543a3a426c6f636b4e756d6265721000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e730100505665633c5472616e73616374696f6e496e666f3e0400003050726f6f66436865636b6564010010626f6f6c0400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f010c1473746f72650410646174611c5665633c75383e18210120496e64657820616e642073746f72652064617461206f6e20636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d206973650120604d61785472616e73616374696f6e53697a65602e20446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e657760582069732063616c6c65642e2023203c7765696768743e1501202d206e2a6c6f67286e29206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e88204164646974696f6e616c6c7920636f6e7461696e7320612044422077726974652e302023203c2f7765696768743e1472656e65770814626c6f636b38543a3a426c6f636b4e756d62657214696e6465780c7533321c31012052656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e7329012070726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e0501205472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e78204170706c6965732073616d652066656573206173206073746f7265602e2c2023203c7765696768743e30202d20436f6e7374616e742e302023203c2f7765696768743e2c636865636b5f70726f6f66041470726f6f665c5472616e73616374696f6e53746f7261676550726f6f66201d0120436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e0501204966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e2c2023203c7765696768743e4501202d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d2c20202070726f62696e672ea020546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2ed4204865726520776520617373756d652061206d6178696d756d206f66203130302070726f626564207472616e73616374696f6e732e302023203c2f7765696768743e010c1853746f726564040c753332048c2053746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040c75333204902052656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640004a02053746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e003444496e73756666696369656e7446756e6473047820496e73756666696369656e74206163636f756e742062616c616e63652e344e6f74436f6e66696775726564045c20496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e6404802052656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e049820417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f6604982050726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f66046c2050726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66045c204d697373696e672073746f726167652070726f6f662e404d697373696e6753746174654461746104d820556e61626c6520746f207665726966792070726f6f6620626563617375652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b048420446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b656404b02053746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c617267650468205472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73049020546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e7465787404d820417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e27041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74'; diff --git a/packages/types-support/src/metadata/v13/bizinikiwi-json.json b/packages/types-support/src/metadata/v13/bizinikiwi-json.json new file mode 100644 index 0000000..4bdfb8c --- /dev/null +++ b/packages/types-support/src/metadata/v13/bizinikiwi-json.json @@ -0,0 +1,16398 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v13": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountInfo", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": "ConsumedWeight" + }, + "fallback": "0x000000000000000000000000000000000000000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: This storage item is explicitly unbounded since it is never intended to be read", + " from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": "LastRuntimeUpgradeInfo" + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": "Phase" + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [ + { + "name": "_ratio", + "type": "Perbill" + } + ], + "docs": [ + " A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark.", + "", + " # ", + " - `O(1)`", + " # " + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap.", + "", + " # ", + " - `O(1)`", + " - 1 storage write.", + " - Base Weight: 1.405 µs", + " - 1 write to HEAP_PAGES", + " # " + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code.", + "", + " # ", + " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", + " - 1 storage write (codec `O(C)`).", + " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is", + " expensive).", + " - 1 event.", + " The weight of this function is dependent on the runtime, but generally this is very", + " expensive. We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_code_without_checks", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code without doing any checks of the given `code`.", + "", + " # ", + " - `O(C)` where `C` length of `code`", + " - 1 storage write (codec `O(C)`).", + " - 1 event.", + " The weight of this function is dependent on the runtime. We will treat this as a full", + " block. # " + ] + }, + { + "name": "set_changes_trie_config", + "args": [ + { + "name": "changes_trie_config", + "type": "Option" + } + ], + "docs": [ + " Set the new changes trie configuration.", + "", + " # ", + " - `O(1)`", + " - 1 storage write or delete (codec `O(1)`).", + " - 1 call to `deposit_log`: Uses `append` API, so O(1)", + " - Base Weight: 7.218 µs", + " - DB Weight:", + " - Writes: Changes Trie, System Digest", + " # " + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage.", + "", + " # ", + " - `O(I)` where `I` length of `items`", + " - `I` storage writes (`O(1)`).", + " - Base Weight: 0.568 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage.", + "", + " # ", + " - `O(IK)` where `I` length of `keys` and `K` length of one key", + " - `I` storage deletions.", + " - Base Weight: .378 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + }, + { + "name": "_subkeys", + "type": "u32" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix.", + "", + " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", + " the prefix we are removing to accurately calculate the weight of this function.", + "", + " # ", + " - `O(P)` where `P` amount of keys with prefix `prefix`", + " - `P` storage deletions.", + " - Base Weight: 0.834 * P µs", + " - Writes: Number of subkeys + 1", + " # " + ] + }, + { + "name": "remark_with_event", + "args": [ + { + "name": "remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark and emit event.", + "", + " # ", + " - `O(b)` where b is the length of the remark.", + " - 1 event.", + " # " + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully. \\[info\\]" + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed. \\[error, info\\]" + ] + }, + { + "name": "CodeUpdated", + "args": [], + "docs": [ + " `:code` was updated." + ] + }, + { + "name": "NewAccount", + "args": [ + "AccountId" + ], + "docs": [ + " A new \\[account\\] was created." + ] + }, + { + "name": "KilledAccount", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] was reaped." + ] + }, + { + "name": "Remarked", + "args": [ + "AccountId", + "Hash" + ], + "docs": [ + " On on-chain remark happened. \\[origin, remark_hash\\]" + ] + } + ], + "constants": [ + { + "name": "BlockWeights", + "type": "BlockWeights", + "value": "0x00f2052a0100000000204aa9d1010000405973070000000001c06e96a62e010000010098f73e5d010000010000000000000000405973070000000001c0f6e810a30100000100204aa9d1010000010088526a740000004059730700000000000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": "BlockLength", + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": "BlockNumber", + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": "RuntimeDbWeight", + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": "RuntimeVersion", + "value": "0x106e6f6465387375627374726174652d6e6f64650a0000000b0100000100000034df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f0100000068b66ba122c93fa70100000037c8bb1350a9a2a80100000091d5df18b0d2cf5801000000ab3c0572291feb8b0100000002000000", + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "type": "u16", + "value": "0x2a00", + "docs": [ + " The designated SS85 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": [ + { + "name": "InvalidSpecName", + "docs": [ + " The name of specification does not match between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "docs": [ + " The specification version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "docs": [ + " Failed to extract the runtime version from the new runtime.", + "", + " Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "docs": [ + " Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "docs": [ + " There is a non-zero reference count preventing the account from being purged." + ] + } + ], + "index": 0 + }, + { + "name": "Utility", + "storage": null, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # ", + "", + " This will return `Ok` in all circumstances. To determine the success of the batch, an", + " event is deposited. If a call failed and the batch was interrupted, then the", + " `BatchInterrupted` event is deposited, along with the number of successful calls made", + " and the error of the failed call. If all were successful, then the `BatchCompleted`", + " event is deposited." + ] + }, + { + "name": "as_derivative", + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through an indexed pseudonym of the sender.", + "", + " Filter from origin are passed along. The call will be dispatched with an origin which", + " use the same filter as the origin of this call.", + "", + " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + " because you expect `proxy` to have been used prior in the call stack and you do not want", + " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + " in the Multisig pallet instead.", + "", + " NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + " The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls and atomically execute them.", + " The whole transaction will rollback and fail if any of the calls failed.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # " + ] + } + ], + "events": [ + { + "name": "BatchInterrupted", + "args": [ + "u32", + "DispatchError" + ], + "docs": [ + " Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + " well as the error. \\[index, error\\]" + ] + }, + { + "name": "BatchCompleted", + "args": [], + "docs": [ + " Batch of dispatches completed fully with no error." + ] + }, + { + "name": "ItemCompleted", + "args": [], + "docs": [ + " A single item within a Batch of dispatches has completed with no error." + ] + } + ], + "constants": [ + { + "name": "batched_calls_limit", + "type": "u32", + "value": "0x73ed0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": [ + { + "name": "TooManyCalls", + "docs": [ + " Too many calls batched." + ] + } + ], + "index": 1 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": "NextConfigDescriptor" + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_initialize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported.", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "plan_config_change", + "args": [ + { + "name": "config", + "type": "NextConfigDescriptor" + } + ], + "docs": [ + " Plan an epoch config change. The epoch config change is recorded and will be enacted on", + " the next call to `enact_epoch_change`. The config will be activated one epoch after.", + " Multiple calls to this method will replace any existing planned config change that had", + " not been enacted yet." + ] + } + ], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0xc800000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [ + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`.", + "", + " # ", + " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in", + " `on_finalize`)", + " - 1 event handler `on_timestamp_set`. Must be `O(1)`.", + " # " + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected*", + " period that the block production apparatus provides. Your chosen consensus system will", + " generally work with this to determine a sensible block time. e.g. For Aura, it will be", + " double this period on default settings." + ] + } + ], + "errors": [], + "index": 3 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [ + { + "name": "UncleGenerations", + "type": "BlockNumber", + "value": "0x05000000", + "docs": [ + " The number of blocks back we should accept uncles.", + " This means that we will deal with uncle-parents that are", + " `UncleGenerations + 1` before `now`." + ] + } + ], + "errors": [ + { + "name": "InvalidUncleParent", + "docs": [ + " The uncle parent not in the chain." + ] + }, + { + "name": "UnclesAlreadySet", + "docs": [ + " Uncles already set in the block." + ] + }, + { + "name": "TooManyUncles", + "docs": [ + " Too many uncles." + ] + }, + { + "name": "GenesisUncle", + "docs": [ + " The uncle is genesis." + ] + }, + { + "name": "TooHighUncle", + "docs": [ + " The uncle is too high in chain." + ] + }, + { + "name": "UncleAlreadyIncluded", + "docs": [ + " The uncle is already included." + ] + }, + { + "name": "OldUncle", + "docs": [ + " The uncle isn't recent enough to be included." + ] + } + ], + "index": 4 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountIndex", + "value": "(AccountId,BalanceOf,bool)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an previously unassigned index.", + "", + " Payment: `Deposit` is reserved from the sender account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be claimed. This must not be in use.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an index already owned by the sender to another account. The balance reservation", + " is effectively transferred to the new account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be re-assigned. This must be owned by the sender.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One transfer operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (recipient)", + " - Writes: Indices Accounts, System Account (recipient)", + " # " + ] + }, + { + "name": "free", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Free up an index owned by the sender.", + "", + " Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + " - `index`: the index to be freed. This must be owned by the sender.", + "", + " Emits `IndexFreed` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + }, + { + "name": "freeze", + "type": "bool" + } + ], + "docs": [ + " Force an index to an account. This doesn't require a deposit. If the index is already", + " held, then any deposit is reimbursed to its current owner.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `index`: the index to be (re-)assigned.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one reserve operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (original owner)", + " - Writes: Indices Accounts, System Account (original owner)", + " # " + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Freeze an index so it will always point to the sender account. This consumes the", + " deposit.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must have a", + " non-frozen account `index`.", + "", + " - `index`: the index to be frozen in place.", + "", + " Emits `IndexFrozen` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one slash operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + } + ], + "events": [ + { + "name": "IndexAssigned", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A account index was assigned. \\[index, who\\]" + ] + }, + { + "name": "IndexFreed", + "args": [ + "AccountIndex" + ], + "docs": [ + " A account index has been freed up (unassigned). \\[index\\]" + ] + }, + { + "name": "IndexFrozen", + "args": [ + "AccountIndex", + "AccountId" + ], + "docs": [ + " A account index has been frozen to its current account ID. \\[index, who\\]" + ] + } + ], + "constants": [ + { + "name": "Deposit", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": [ + { + "name": "NotAssigned", + "docs": [ + " The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "docs": [ + " The index is assigned to another account." + ] + }, + { + "name": "InUse", + "docs": [ + " The index was not available." + ] + }, + { + "name": "NotTransfer", + "docs": [ + " The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "docs": [ + " The index is permanent and may not be freed/changed." + ] + } + ], + "index": 5 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountData", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The balance of an account.", + "", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " This is set to v2.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for input config", + " types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex", + " computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check", + " that the transfer will not kill the origin account.", + " ---------------------------------", + " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", + " - DB Weight: 1 Read and 1 Write to destination account", + " - Origin account is already in memory, so no DB operations for them.", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`frame_system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " ---------------------", + " - Base Weight:", + " - Creating: 27.56 µs", + " - Killing: 35.11 µs", + " - DB Weight: 1 Read, 1 Write to `who`", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified.", + " # ", + " - Same as transfer, but additional read and write because the source account is not", + " assumed to be in the overlay.", + " # " + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Pallet.html#method.transfer", + " # ", + " - Cheaper than transfer because account cannot be killed.", + " - Base Weight: 51.4 µs", + " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", + " #" + ] + }, + { + "name": "transfer_all", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "keep_alive", + "type": "bool" + } + ], + "docs": [ + " Transfer the entire transferable balance from the caller account.", + "", + " NOTE: This function only attempts to transfer _transferable_ balances. This means that", + " any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + " transferred by this function. To ensure that this function results in a killed account,", + " you might need to prepare the account by removing any reference counters, storage", + " deposits, etc...", + "", + " The dispatch origin of this call must be Signed.", + "", + " - `dest`: The recipient of the transfer.", + " - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true). # ", + " - O(1). Just like transfer, but reading the user's transferable balance first.", + " #" + ] + } + ], + "events": [ + { + "name": "Endowed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was created with some free balance. \\[account, free_balance\\]" + ] + }, + { + "name": "DustLost", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was removed whose balance was non-zero but below ExistentialDeposit,", + " resulting in an outright loss. \\[account, balance\\]" + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer succeeded. \\[from, to, value\\]" + ] + }, + { + "name": "BalanceSet", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " A balance was set by root. \\[who, free, reserved\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]" + ] + }, + { + "name": "Reserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was reserved (moved from free to reserved). \\[who, value\\]" + ] + }, + { + "name": "Unreserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was unreserved (moved from reserved to free). \\[who, value\\]" + ] + }, + { + "name": "ReserveRepatriated", + "args": [ + "AccountId", + "AccountId", + "Balance", + "BalanceStatus" + ], + "docs": [ + " Some balance was moved from the reserve of the first account to the second account.", + " Final argument indicates the destination balance type.", + " \\[from, to, balance, destination_status\\]" + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "MaxLocks", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + } + ], + "errors": [ + { + "name": "VestingBalance", + "docs": [ + " Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "docs": [ + " Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "InsufficientBalance", + "docs": [ + " Balance too low to send value" + ] + }, + { + "name": "ExistentialDeposit", + "docs": [ + " Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "docs": [ + " Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "docs": [ + " Beneficiary account must pre-exist" + ] + }, + { + "name": "TooManyReserves", + "docs": [ + " Number of named reserves exceed MaxReserves" + ] + } + ], + "index": 6 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "WeightToFee", + "type": "Vec", + "value": "0x0401000000000000000000000000000000000000000001", + "docs": [ + " The polynomial that is applied in order to derive fee from weight." + ] + } + ], + "errors": [], + "index": 7 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": "ElectionPhase" + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": "ReadySolution" + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": "RoundSnapshot" + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": "SolutionOrSnapshotSize" + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": "SubmissionIndicesOf" + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded set of `(score, index)`, where each `index` points to a value in", + " `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "SignedSubmissionOf", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": "ElectionScore" + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": [ + { + "name": "submit_unsigned", + "args": [ + { + "name": "raw_solution", + "type": "RawSolution" + }, + { + "name": "witness", + "type": "SolutionOrSnapshotSize" + } + ], + "docs": [ + " Submit a solution for the unsigned phase.", + "", + " The dispatch origin fo this call must be __none__.", + "", + " This submission is checked on the fly. Moreover, this unsigned solution is only", + " validated when submitted to the pool from the **local** node. Effectively, this means", + " that only active validators can submit this transaction when authoring a block (similar", + " to an inherent).", + "", + " To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + " panic if the solution submitted by the validator is invalid in any way, effectively", + " putting their authoring reward at risk.", + "", + " No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "args": [ + { + "name": "maybe_next_score", + "type": "Option" + } + ], + "docs": [ + " Set a new value for `MinimumUntrustedScore`.", + "", + " Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + " This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "args": [ + { + "name": "supports", + "type": "Supports" + } + ], + "docs": [ + " Set a solution in the queue, to be handed out to the client of this pallet in the next", + " call to `ElectionProvider::elect`.", + "", + " This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + " The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + " feasibility check itself can in principle cause the election process to fail (due to", + " memory/weight constrains)." + ] + }, + { + "name": "submit", + "args": [ + { + "name": "raw_solution", + "type": "RawSolution" + }, + { + "name": "num_signed_submissions", + "type": "u32" + } + ], + "docs": [ + " Submit a solution for the signed phase.", + "", + " The dispatch origin fo this call must be __signed__.", + "", + " The solution is potentially queued, based on the claimed score and processed at the end", + " of the signed phase.", + "", + " A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + " might be rewarded, slashed, or get all or a part of the deposit back.", + "", + " # ", + " Queue size must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "SolutionStored", + "args": [ + "ElectionCompute", + "bool" + ], + "docs": [ + " A solution was stored with the given compute.", + "", + " If the solution is signed, this means that it hasn't yet been processed. If the", + " solution is unsigned, this means that it has also been processed.", + "", + " The `bool` is `true` when a previous solution was ejected to make room for this one." + ] + }, + { + "name": "ElectionFinalized", + "args": [ + "Option" + ], + "docs": [ + " The election has been finalized, with `Some` of the given computation, or else if the", + " election failed, `None`." + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "SignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The signed phase of the given round has started." + ] + }, + { + "name": "UnsignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The unsigned phase of the given round has started." + ] + } + ], + "constants": [ + { + "name": "UnsignedPhase", + "type": "BlockNumber", + "value": "0x32000000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": "BlockNumber", + "value": "0x32000000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "SolutionImprovementThreshold", + "type": "Perbill", + "value": "0xa0860100", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" (in any phase)." + ] + }, + { + "name": "OffchainRepeat", + "type": "BlockNumber", + "value": "0x05000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": "TransactionPriority", + "value": "0xfeffffffffffff7f", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "MinerMaxWeight", + "type": "Weight", + "value": "0xc07c907c2d010000", + "docs": [ + " Maximum weight that the miner should consume.", + "", + " The miner will ensure that the total weight of the unsigned solution will not exceed", + " this value, based on [`WeightInfo::submit_unsigned`]." + ] + }, + { + "name": "SignedMaxSubmissions", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": "Weight", + "value": "0xc07c907c2d010000", + "docs": [ + " Maximum weight of a signed solution.", + "", + " This should probably be similar to [`Config::MinerMaxWeight`]." + ] + }, + { + "name": "SignedRewardBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Base deposit for a signed solution." + ] + }, + { + "name": "SignedDepositByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": "BalanceOf", + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MinerMaxLength", + "type": "u32", + "value": "0x00003600", + "docs": [ + " Maximum length (bytes) that the mined solution should consume.", + "", + " The miner will ensure that the total length of the unsigned solution will not exceed", + " this value." + ] + } + ], + "errors": [ + { + "name": "PreDispatchEarlySubmission", + "docs": [ + " Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "docs": [ + " Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "docs": [ + " Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "docs": [ + " The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "docs": [ + " The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "docs": [ + " Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "docs": [ + " The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "docs": [ + " OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "docs": [ + " Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "docs": [ + " `Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "docs": [ + " The call is not allowed at this point." + ] + } + ], + "index": 8 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "HistoryDepth", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Information is kept for eras in `[current_era - history_depth; current_era]`.", + "", + " Must be more than the number of eras delayed by session otherwise. I.e. active era must", + " always be in history. I.e. `active_era > current_era - history_depth` must be", + " guaranteed." + ] + }, + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": false + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " When updating this storage item, you must also update the `CounterForValidators`." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " A tracker to keep count of the number of items in the `Validators` map." + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Nominations", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate.", + "", + " When updating this storage item, you must also update the `CounterForNominators`." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " A tracker to keep count of the number of items in the `Nominators` map." + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": "ActiveEraInfo" + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "ValidatorPrefs", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "EraRewardPoints", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x06", + "docs": [ + " True if network has been upgraded to this version.", + " Storage version of the pallet.", + "", + " This is set to v7.0.0 for new networks." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": "Percent" + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " Emits `Bonded`.", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + " unless the `origin` falls below _existential deposit_ and gets removed as dust.", + " ------------------", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + " any limitation on the amount that can be added.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " If a user encounters the `InsufficientBond` error when calling this extrinsic,", + " they should call `chill` first in order to free up their bonded funds.", + "", + " Emits `Unbonded`.", + "", + " See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "args": [ + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller.", + "", + " Emits `Withdrawn`.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " Complexity O(S) where S is the number of slashing spans to remove", + " NOTE: Weight annotation is the kill scenario, we refund otherwise.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets` (N)", + " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", + " - Both the reads and writes follow a similar pattern.", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ---------", + " - Weight: O(1)", + " - DB Weight:", + " - Read: Ledger", + " - Write: Payee", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ----------", + " Weight: O(1)", + " DB Weight:", + " - Read: Bonded, Ledger New Controller, Ledger Old Controller", + " - Write: Bonded, Ledger New Controller, Ledger Old Controller", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " Sets the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Weight: O(1)", + " Write: Validator Count", + " # " + ] + }, + { + "name": "increase_validator_count", + "args": [ + { + "name": "additional", + "type": "Compact" + } + ], + "docs": [ + " Increments the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`Self::set_validator_count`].", + " # " + ] + }, + { + "name": "scale_validator_count", + "args": [ + { + "name": "factor", + "type": "Percent" + } + ], + "docs": [ + " Scale up the ideal number of validators by a factor.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`Self::set_validator_count`].", + " # " + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " Thus the election process may be ongoing when this is called. In this case the", + " election will continue until the next era is triggered.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " If this is called just before a new era is triggered, the election process may not", + " have enough blocks to get a result.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write ForceEra", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "invulnerables", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any).", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - O(V)", + " - Write: Invulnerables", + " # " + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " O(S) where S is the number of slashing spans to be removed", + " Reads: Bonded, Slashing Spans, Account, Locks", + " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " Account, Locks Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " If this is called just before a new era is triggered, the election process may not", + " have enough blocks to get a result.", + "", + " # ", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash.", + "", + " Can be called by the `T::SlashCancelOrigin`.", + "", + " Parameters: era and indices of the slashes for that era to kill.", + "", + " # ", + " Complexity: O(U + S)", + " with U unapplied slashes weighted with U=1000", + " and S is the number of slash indices to be canceled.", + " - Read: Unapplied Slashes", + " - Write: Unapplied Slashes", + " # " + ] + }, + { + "name": "payout_stakers", + "args": [ + { + "name": "validator_stash", + "type": "AccountId" + }, + { + "name": "era", + "type": "EraIndex" + } + ], + "docs": [ + " Pay out all the stakers behind a single validator for a single era.", + "", + " - `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + " - `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + " The origin of this call must be _Signed_. Any account can call this function, even if", + " it is not one of the stakers.", + "", + " # ", + " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", + " - Contains a limited number of reads and writes.", + " -----------", + " N is the Number of payouts for the validator (including the validator)", + " Weight:", + " - Reward Destination Staked: O(N)", + " - Reward Destination Controller (Creating): O(N)", + "", + " NOTE: weights are assuming that payouts are made to alive stash account (Staked).", + " Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.", + " # " + ] + }, + { + "name": "rebond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Rebond a portion of the stash scheduled to be unlocked.", + "", + " The dispatch origin must be signed by the controller.", + "", + " # ", + " - Time complexity: O(L), where L is unlocking chunks", + " - Bounded by `MAX_UNLOCKING_CHUNKS`.", + " - Storage changes: Can't increase storage, only decrease it.", + " # " + ] + }, + { + "name": "set_history_depth", + "args": [ + { + "name": "new_history_depth", + "type": "Compact" + }, + { + "name": "_era_items_deleted", + "type": "Compact" + } + ], + "docs": [ + " Set `HistoryDepth` value. This function will delete any history information", + " when `HistoryDepth` is reduced.", + "", + " Parameters:", + " - `new_history_depth`: The new history depth you would like to set.", + " - `era_items_deleted`: The number of items that will be deleted by this dispatch. This", + " should report all the storage items that will be deleted by clearing old era history.", + " Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an", + " accurate number.", + "", + " Origin must be root.", + "", + " # ", + " - E: Number of history depths removed, i.e. 10 -> 7 = 3", + " - Weight: O(E)", + " - DB Weight:", + " - Reads: Current Era, History Depth", + " - Writes: History Depth", + " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", + " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,", + " ErasStartSessionIndex", + " # " + ] + }, + { + "name": "reap_stash", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove all data structure concerning a staker/stash once its balance is at the minimum.", + " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", + " and the target `stash` must have no funds left beyond the ED.", + "", + " This can be called from any origin.", + "", + " - `stash`: The stash account to reap. Its balance must be zero.", + "", + " # ", + " Complexity: O(S) where S is the number of slashing spans on the account.", + " DB Weight:", + " - Reads: Stash Account, Bonded, Slashing Spans, Locks", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " Stash Account, Locks", + " - Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "kick", + "args": [ + { + "name": "who", + "type": "Vec" + } + ], + "docs": [ + " Remove the given nominations from the calling validator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " - `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + " Note: Making this call only makes sense if you first set the validator preferences to", + " block any further nominations." + ] + }, + { + "name": "set_staking_limits", + "args": [ + { + "name": "min_nominator_bond", + "type": "BalanceOf" + }, + { + "name": "min_validator_bond", + "type": "BalanceOf" + }, + { + "name": "max_nominator_count", + "type": "Option" + }, + { + "name": "max_validator_count", + "type": "Option" + }, + { + "name": "threshold", + "type": "Option" + } + ], + "docs": [ + " Update the various staking limits this pallet.", + "", + " * `min_nominator_bond`: The minimum active bond needed to be a nominator.", + " * `min_validator_bond`: The minimum active bond needed to be a validator.", + " * `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + " * `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "", + " Origin must be Root to call this function.", + "", + " NOTE: Existing nominators and validators will not be affected by this update.", + " to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "args": [ + { + "name": "controller", + "type": "AccountId" + } + ], + "docs": [ + " Declare a `controller` to stop participating as either a validator or nominator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + " If the caller is the same as the controller being targeted, then no further checks are", + " enforced, and this function behaves just like `chill`.", + "", + " If the caller is different than the controller being targeted, the following conditions", + " must be met:", + " * A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + " * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + " * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + " This can be helpful if bond requirements are updated, and we need to remove old users", + " who do not satisfy these requirements." + ] + } + ], + "events": [ + { + "name": "EraPaid", + "args": [ + "EraIndex", + "Balance", + "Balance" + ], + "docs": [ + " The era payout has been set; the first balance is the validator-payout; the second is", + " the remainder from the maximum amount of reward.", + " \\[era_index, validator_payout, remainder\\]" + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The nominator has been rewarded by this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount.", + " \\[validator, amount\\]" + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed. \\[session_index\\]" + ] + }, + { + "name": "StakersElected", + "args": [], + "docs": [ + " A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has bonded this amount. \\[stash, amount\\]", + "", + " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + " it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has unbonded this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Withdrawn", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + " from the unlocking queue. \\[stash, amount\\]" + ] + }, + { + "name": "Kicked", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A nominator has been kicked from a validator. \\[nominator, stash\\]" + ] + }, + { + "name": "StakingElectionFailed", + "args": [], + "docs": [ + " The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "args": [ + "AccountId" + ], + "docs": [ + " An account has stopped participating as either a validator or nominator.", + " \\[stash\\]" + ] + }, + { + "name": "PayoutStarted", + "args": [ + "EraIndex", + "AccountId" + ], + "docs": [ + " The stakers' rewards are getting paid. \\[era_index, validator_stash\\]" + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": "EraIndex", + "value": "0xa8000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxNominatorRewardedPerValidator", + "type": "u32", + "value": "0x00010000", + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can", + " claim their reward. This used to limit the i/o cost for the nominator payout." + ] + }, + { + "name": "MaxNominations", + "type": "u32", + "value": "0x10000000", + "docs": [] + } + ], + "errors": [ + { + "name": "NotController", + "docs": [ + " Not a controller account." + ] + }, + { + "name": "NotStash", + "docs": [ + " Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "docs": [ + " Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "docs": [ + " Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "docs": [ + " Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "docs": [ + " Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "docs": [ + " Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "docs": [ + " Can not bond with value less than minimum required." + ] + }, + { + "name": "NoMoreChunks", + "docs": [ + " Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "docs": [ + " Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "docs": [ + " Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "docs": [ + " Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "docs": [ + " Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "docs": [ + " Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "IncorrectHistoryDepth", + "docs": [ + " Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "docs": [ + " Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "docs": [ + " Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "docs": [ + " Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "docs": [ + " A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "docs": [ + " The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "docs": [ + " There are too many nominators in the system. Governance needs to adjust the staking", + " settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "docs": [ + " There are too many validators in the system. Governance needs to adjust the staking", + " settings to keep things safe for the runtime." + ] + } + ], + "index": 9 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ValidatorId", + "value": "Keys", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `keys`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)`", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", + " - DbWrites: `origin account`, `NextKeys`", + " - DbReads per key id: `KeyOwner`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + }, + { + "name": "purge_keys", + "args": [], + "docs": [ + " Removes any session key(s) of the function caller.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)` in number of key types.", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", + " - DbWrites: `NextKeys`, `origin account`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the \\[session_index\\], not the", + " block number as the type might suggest." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidProof", + "docs": [ + " Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "docs": [ + " No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "docs": [ + " Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "docs": [ + " No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "docs": [ + " Key setting account is not live, so it's impossible to associate keys." + ] + } + ], + "index": 10 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "PropIndex", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "PreimageStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voting", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "Locks", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Accounts for which there are locks in action which may be removed at some point in the", + " future. The value is the block number at which the lock expires and may be removed.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "StorageVersion", + "modifier": "Optional", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " The dispatch origin of this call must be _Signed_ and the sender must", + " have funds to cover the deposit.", + "", + " - `proposal_hash`: The hash of the proposal preimage.", + " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + " Emits `Proposed`.", + "", + " Weight: `O(p)`" + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + }, + { + "name": "seconds_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Signals agreement with a particular proposal.", + "", + " The dispatch origin of this call must be _Signed_ and the sender", + " must have funds to cover the deposit, equal to the original deposit.", + "", + " - `proposal`: The index of the proposal to second.", + " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", + " proposal. Extrinsic is weighted according to this value with no refund.", + "", + " Weight: `O(S)` where S is the number of seconds a proposal already has." + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "AccountVote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `ref_index`: The index of the referendum to vote for.", + " - `vote`: The vote configuration.", + "", + " Weight: `O(R)` where R is the number of referendums the voter has voted on." + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum.", + "", + " The dispatch origin of this call must be `CancellationOrigin`.", + "", + " -`ref_index`: The index of the referendum to cancel.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum.", + "", + " The dispatch origin of this call must be `ExternalOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.", + " Decoding vec of length V. Charged as maximum" + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " The dispatch of this call must be `FastTrackOrigin`.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `FastTrackVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + " Emits `Started`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash.", + "", + " The dispatch origin of this call must be `VetoOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + " Emits `Vetoed`.", + "", + " Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `ref_index`: The index of the referendum to cancel.", + "", + " # Weight: `O(1)`." + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "which", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Cancel a proposal queued for enactment.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `which`: The index of the referendum to cancel.", + "", + " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`." + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + }, + { + "name": "balance", + "type": "BalanceOf" + } + ], + "docs": [ + " Delegate the voting power (with some given conviction) of the sending account.", + "", + " The balance delegated is locked for as long as it's delegated, and thereafter for the", + " time appropriate for the conviction's lock period.", + "", + " The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + " - `to`: The account whose voting the `target` account's voting power will follow.", + " - `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + " - `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + " Emits `Delegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate the voting power of the sending account.", + "", + " Tokens may be unlocked following once an amount of time consistent with the lock period", + " of the conviction with which the delegation was issued.", + "", + " The dispatch origin of this call must be _Signed_ and the signing account must be", + " currently delegating.", + "", + " Emits `Undelegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Clears all public proposals.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", + " the preimage has not been uploaded before and matches some imminent proposal,", + " no fee is paid.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_imminent_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "proposal_len_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `proposal_hash`: The preimage hash of a proposal.", + " - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is", + " weighted according to this value with no refund.", + "", + " This will only work after `VotingPeriod` blocks from the time that the preimage was", + " noted, if it's the same account doing it. If it's a different account, then it'll only", + " work an additional `EnactmentPeriod` later.", + "", + " Emits `PreimageReaped`.", + "", + " Weight: `O(D)` where D is length of proposal." + ] + }, + { + "name": "unlock", + "args": [ + { + "name": "target", + "type": "AccountId" + } + ], + "docs": [ + " Unlock tokens that have an expired lock.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account to remove the lock on.", + "", + " Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "args": [ + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If:", + " - the referendum was cancelled, or", + " - the referendum is ongoing, or", + " - the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + " ...then the vote is removed cleanly and a following call to `unlock` may result in more", + " funds being available.", + "", + " If, however, the referendum has ended and:", + " - it finished corresponding to the vote of the account, and", + " - the account made a standard vote with conviction, and", + " - the lock period of the conviction is not over", + " ...then the lock will be aggregated into the overall account's lock, which may involve", + " *overlocking* (where the two locks are combined into a single lock that is the maximum", + " of both the amount locked and the time is it locked for).", + "", + " The dispatch origin of this call must be _Signed_, and the signer must have a vote", + " registered for referendum `index`.", + "", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "args": [ + { + "name": "target", + "type": "AccountId" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If the `target` is equal to the signer, then this function is exactly equivalent to", + " `remove_vote`. If not equal to the signer, then the vote must have expired,", + " either because the referendum was cancelled, because the voter lost the referendum or", + " because the conviction period is over.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "enact_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Enact a proposal from a referendum. For now we just make the weight be the maximum." + ] + }, + { + "name": "blacklist", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "maybe_ref_index", + "type": "Option" + } + ], + "docs": [ + " Permanently place a proposal into the blacklist. This prevents it from ever being", + " proposed again.", + "", + " If called on a queued public or external proposal, then this will result in it being", + " removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + " then it will be cancelled.", + "", + " The dispatch origin of this call must be `BlacklistOrigin`.", + "", + " - `proposal_hash`: The proposal hash to blacklist permanently.", + " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + " cancelled.", + "", + " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "args": [ + { + "name": "prop_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a proposal.", + "", + " The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + " - `prop_index`: The index of the proposal to cancel.", + "", + " Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account. \\[proposal_index, deposit\\]" + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote. \\[proposal_index, deposit,", + " depositors\\]" + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun. \\[ref_index, threshold\\]" + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum. \\[ref_index\\]" + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum. \\[ref_index\\]" + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled. \\[ref_index\\]" + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "DispatchResult" + ], + "docs": [ + " A proposal has been enacted. \\[ref_index, result\\]" + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed. \\[who, proposal_hash, until\\]" + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]" + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned).", + " \\[proposal_hash, provider, deposit\\]" + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper.", + " \\[proposal_hash, provider, deposit, reaper\\]" + ] + }, + { + "name": "Blacklisted", + "args": [ + "Hash" + ], + "docs": [ + " A proposal \\[hash\\] has been blacklisted permanently." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "type": "bool", + "value": "0x01", + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": "BlockNumber", + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + }, + { + "name": "MaxVotes", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + } + ], + "errors": [ + { + "name": "ValueLow", + "docs": [ + " Value too low" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "docs": [ + " Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "docs": [ + " Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "docs": [ + " Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "docs": [ + " Invalid hash" + ] + }, + { + "name": "NoProposal", + "docs": [ + " No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "docs": [ + " Identity may not veto a proposal twice" + ] + }, + { + "name": "DuplicatePreimage", + "docs": [ + " Preimage already noted" + ] + }, + { + "name": "NotImminent", + "docs": [ + " Not imminent" + ] + }, + { + "name": "TooEarly", + "docs": [ + " Too early" + ] + }, + { + "name": "Imminent", + "docs": [ + " Imminent" + ] + }, + { + "name": "PreimageMissing", + "docs": [ + " Preimage not found" + ] + }, + { + "name": "ReferendumInvalid", + "docs": [ + " Vote given for invalid referendum" + ] + }, + { + "name": "PreimageInvalid", + "docs": [ + " Invalid preimage" + ] + }, + { + "name": "NoneWaiting", + "docs": [ + " No proposals waiting" + ] + }, + { + "name": "NotVoter", + "docs": [ + " The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "docs": [ + " The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "docs": [ + " Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "docs": [ + " The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "docs": [ + " The account currently has votes attached to it and the operation cannot succeed until", + " these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "docs": [ + " The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "docs": [ + " Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "docs": [ + " Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "docs": [ + " Maximum number of votes reached." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " Maximum number of proposals reached." + ] + } + ], + "index": 11 + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the", + " members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching", + " `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a", + " fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + " proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec", + " `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current", + " state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 12 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the", + " members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching", + " `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a", + " fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + " proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec", + " `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current", + " state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 13 + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voter", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election. This can be called to", + " set the initial votes, or update already existing votes.", + "", + " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + " reserved. The deposit is based on the number of votes and can be updated over time.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + " If `value` is more than `who`'s total balance, then the maximum of the two is used.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " It is the responsibility of the caller to **NOT** place all of their balance into the", + " lock and keep some for further operations.", + "", + " # ", + " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter.", + "", + " This removes the lock and returns the deposit.", + "", + " The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "args": [ + { + "name": "candidate_count", + "type": "Compact" + } + ], + "docs": [ + " Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + " All candidates are wiped at the end of the term. They either become a member/runner-up,", + " or leave the system while their deposit is slashed.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + " to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + " # ", + " The number of current candidates must be provided as witness data.", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [ + { + "name": "renouncing", + "type": "Renouncing" + } + ], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + "", + " - `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + " - `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + " The dispatch origin of this call must be signed, and have one of the above roles.", + "", + " # ", + " The type of renouncing must be provided as witness data.", + " # " + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "has_replacement", + "type": "bool" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen election is started.", + "", + " The dispatch origin of this call must be root.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " If we have a replacement, we use a small weight. Else, since this is a root call and", + " will go into phragmen, we assume full block for now.", + " # " + ] + }, + { + "name": "clean_defunct_voters", + "args": [ + { + "name": "_num_voters", + "type": "u32" + }, + { + "name": "_num_defunct", + "type": "u32" + } + ], + "docs": [ + " Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + " deposit of the removed voters are returned.", + "", + " This is an root function to be used only for cleaning the state.", + "", + " The dispatch origin of this call must be root.", + "", + " # ", + " The total number of voters and those that are defunct must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with \\[new_members\\]. This indicates that enough candidates existed to run", + " the election, not that enough have has been elected. The inner value must be examined", + " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + " begin with." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round. This is different from", + " `NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "args": [], + "docs": [ + " Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been removed. This should always be followed by either `NewTerm` or", + " `EmptyTerm`." + ] + }, + { + "name": "Renounced", + "args": [ + "AccountId" + ], + "docs": [ + " Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or", + " runner-up.", + "", + " Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set." + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "LockIdentifier", + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "type": "BalanceOf", + "value": "0x00f0436de36a01000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "type": "BalanceOf", + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x0d000000", + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x07000000", + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + } + ], + "errors": [ + { + "name": "UnableToVote", + "docs": [ + " Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "docs": [ + " Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "docs": [ + " Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "docs": [ + " Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "docs": [ + " Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "docs": [ + " Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "docs": [ + " Must be a voter." + ] + }, + { + "name": "ReportSelf", + "docs": [ + " Cannot report self." + ] + }, + { + "name": "DuplicatedCandidate", + "docs": [ + " Duplicated candidate submission." + ] + }, + { + "name": "MemberSubmit", + "docs": [ + " Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "docs": [ + " Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "docs": [ + " Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "docs": [ + " The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "docs": [ + " The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "docs": [ + " The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "docs": [ + " Prediction regarding replacement after member removal is wrong." + ] + } + ], + "index": 14 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `T::SwapOrigin`.", + "", + " Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member.", + "", + " Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Set the prime member. Must be a current member.", + "", + " May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "args": [], + "docs": [ + " Remove the prime member if it exists.", + "", + " May only be called from `T::PrimeOrigin`." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "AlreadyMember", + "docs": [ + " Already a member." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + } + ], + "index": 15 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported.", + "", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "note_stalled", + "args": [ + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": "BlockNumber" + } + ], + "docs": [ + " Note that the current authority set of the GRANDPA finality gadget has", + " stalled. This will trigger a forced authority set change at the beginning", + " of the next session, to be enacted `delay` blocks after that. The delay", + " should be high enough to safely assume that the block signalling the", + " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", + " will start the new authority set using the given finalized block as base.", + " Only callable by root." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied. \\[authority_set\\]" + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "PauseFailed", + "docs": [ + " Attempt to signal GRANDPA pause when the authority set isn't live", + " (either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "docs": [ + " Attempt to signal GRANDPA resume when the authority set isn't paused", + " (either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "docs": [ + " Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "docs": [ + " Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 16 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `ProposalCount`, `origin account`", + " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `Proposals`, `rejected proposer account`", + " - DbWrites: `Proposals`, `rejected proposer account`", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - Complexity: O(1).", + " - DbReads: `Proposals`, `Approvals`", + " - DbWrite: `Approvals`", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal. \\[proposal_index\\]" + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds. \\[budget_remaining\\]" + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated. \\[proposal_index, award, beneficiary\\]" + ] + }, + { + "name": "Rejected", + "args": [ + "ProposalIndex", + "Balance" + ], + "docs": [ + " A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]" + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt. \\[burn\\]" + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend.", + " \\[budget_remaining\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited. \\[deposit\\]" + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of approvals that can wait in the spending queue." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "TooManyApprovals", + "docs": [ + " Too many approvals in the queue." + ] + } + ], + "index": 17 + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "CodeHash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "CodeHash", + "value": "PrefabWasmModule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "AccountCounter", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The subtrie counter." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ContractInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_initialize`." + ] + } + ] + }, + "calls": [ + { + "name": "call", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Makes a call to an account, optionally transferring some balance.", + "", + " * If the account is a smart-contract account, the associated code will be", + " executed and any value will be transferred.", + " * If the account is a regular account, any value will be transferred.", + " * If no account exists and the call value is not less than `existential_deposit`,", + " a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code", + "type": "Bytes" + }, + { + "name": "data", + "type": "Bytes" + }, + { + "name": "salt", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a new contract from the supplied `code` optionally transferring", + " some balance.", + "", + " This is the only function that can deploy new code to the chain.", + "", + " # Parameters", + "", + " * `endowment`: The balance to transfer from the `origin` to the newly created contract.", + " * `gas_limit`: The gas limit enforced when executing the constructor.", + " * `code`: The contract code to deploy in raw bytes.", + " * `data`: The input data to pass to the contract constructor.", + " * `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + " Instantiation is executed as follows:", + "", + " - The supplied `code` is instrumented, deployed, and a `code_hash` is created for that", + " code.", + " - If the `code_hash` already exists on the chain the underlying `code` will be shared.", + " - The destination address is computed based on the sender, code_hash and the salt.", + " - The smart-contract account is created at the computed address.", + " - The `endowment` is transferred to the new account.", + " - The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code_hash", + "type": "CodeHash" + }, + { + "name": "data", + "type": "Bytes" + }, + { + "name": "salt", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a contract from a previously deployed wasm binary.", + "", + " This function is identical to [`Self::instantiate_with_code`] but without the", + " code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + " must be supplied." + ] + } + ], + "events": [ + { + "name": "Instantiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract deployed by address at the specified address. \\[deployer, contract\\]" + ] + }, + { + "name": "Terminated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract has been removed.", + " \\[contract, beneficiary\\]", + "", + " # Params", + "", + " - `contract`: The contract that was terminated.", + " - `beneficiary`: The account that received the contracts remaining balance.", + "", + " # Note", + "", + " The only way for a contract to be removed and emitting this event is by calling", + " `seal_terminate`." + ] + }, + { + "name": "CodeStored", + "args": [ + "Hash" + ], + "docs": [ + " Code with the specified hash has been stored. \\[code_hash\\]" + ] + }, + { + "name": "ScheduleUpdated", + "args": [ + "u32" + ], + "docs": [ + " Triggered when the current schedule is updated.", + " \\[version\\]", + "", + " # Params", + "", + " - `version`: The version of the newly set schedule." + ] + }, + { + "name": "ContractEmitted", + "args": [ + "AccountId", + "Bytes" + ], + "docs": [ + " A custom event emitted by the contract.", + " \\[contract, data\\]", + "", + " # Params", + "", + " - `contract`: The contract that emitted the event.", + " - `data`: Data supplied by the contract. Metadata generated during contract compilation", + " is needed to decode it." + ] + }, + { + "name": "CodeRemoved", + "args": [ + "Hash" + ], + "docs": [ + " A code with the specified hash was removed.", + " \\[code_hash\\]", + "", + " This happens when the last contract that uses this code hash was removed." + ] + } + ], + "constants": [ + { + "name": "Schedule", + "type": "Schedule", + "value": "0x040000000002000000010000800000001000000000100000000100002000000020000000004000000000020002000000a4150000f03200004a3d0000280f0000ce220000f4150000180b0000521c00000000000046c10200a8030400c80f000000050000c0080000000000009a15000052170000241300009b684a028e1200008e1200008e1200007012000000000000000000002a120000a410000086100000640f00001e0f0000b00e00005e100000ae10000072100000fe100000d61000006810000004100000d20f0000a6270000be1e000072290000141e0000d61000000e1000005a0f0000320f0000ae100000500f0000140f0000dc0f0000f425130000000000de3113000000000068f81200000000001a1e360000000000be38130000000000d616130000000000043e1300000000005411130000000000281a13000000000040572c000000000018ad0800000000001a531000000000007301000000000000d8f563000000000068020000000000000072a4200000000038093c0000000000aa696900000000007e4ebd07000000005306000000000000d81c0b0000000000fc4b1b0600000000bf02000000000000001e180600000000faf6d001000000004704000000000000caeb080a000000007a612d1f000000005aced709000000006c02000000000000e0030000000000002ef30132000000006b02000000000000d703000000000000b1070000000000005e6a1400000000000b1300000000000040781500000000003c0d0000000000005855110000000000420600000000000012461100000000004206000000000000c22a500900000000", + "docs": [ + " Cost schedule and limits." + ] + }, + { + "name": "ContractDeposit", + "type": "BalanceOf", + "value": "0x00f0436de36a01000000000000000000", + "docs": [ + " The deposit that must be placed into the contract's account to instantiate it.", + " This is in **addition** to the [`pallet_balances::Pallet::ExistenialDeposit`].", + " The minimum balance for a contract's account can be queried using", + " [`Pallet::subsistence_threshold`]." + ] + }, + { + "name": "DeletionQueueDepth", + "type": "u32", + "value": "0xa2ba0100", + "docs": [ + " The maximum number of tries that can be queued for deletion." + ] + }, + { + "name": "DeletionWeightLimit", + "type": "Weight", + "value": "0x00d0ed902e000000", + "docs": [ + " The maximum amount of weight that can be consumed per block for lazy trie removal." + ] + } + ], + "errors": [ + { + "name": "InvalidScheduleVersion", + "docs": [ + " A new schedule must have a greater version than the current one." + ] + }, + { + "name": "OutOfGas", + "docs": [ + " The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "docs": [ + " The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "BelowSubsistenceThreshold", + "docs": [ + " Performing the requested transfer would have brought the contract below", + " the subsistence threshold. No transfer is allowed to do this. Use `seal_terminate`", + " to recover a deposit." + ] + }, + { + "name": "NewContractNotFunded", + "docs": [ + " The newly created contract is below the subsistence threshold after executing", + " its contructor. No contracts are allowed to exist below that threshold." + ] + }, + { + "name": "TransferFailed", + "docs": [ + " Performing the requested transfer failed for a reason originating in the", + " chosen currency implementation of the runtime. Most probably the balance is", + " too low or locks are placed on it." + ] + }, + { + "name": "MaxCallDepthReached", + "docs": [ + " Performing a call was denied because the calling depth reached the limit", + " of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "docs": [ + " No contract was found at the specified address." + ] + }, + { + "name": "CodeTooLarge", + "docs": [ + " The code supplied to `instantiate_with_code` exceeds the limit specified in the", + " current schedule." + ] + }, + { + "name": "CodeNotFound", + "docs": [ + " No code could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "docs": [ + " A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "docs": [ + " Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "docs": [ + " Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "docs": [ + " The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "docs": [ + " Termination of a contract is not allowed while the contract is already", + " on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "docs": [ + " `seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "RandomSubjectTooLong", + "docs": [ + " The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "docs": [ + " The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "DuplicateTopics", + "docs": [ + " The topics passed to `seal_deposit_events` contains at least one duplicate." + ] + }, + { + "name": "NoChainExtension", + "docs": [ + " The chain does not provide a chain extension. Calling the chain extension results", + " in this error. Note that this usually shouldn't happen as deploying such contracts", + " is rejected." + ] + }, + { + "name": "DeletionQueueFull", + "docs": [ + " Removal of a contract failed because the deletion queue is full.", + "", + " This can happen when calling `seal_terminate`.", + " The queue is filled by deleting contracts and emptied by a fixed amount each block.", + " Trying again during another block is the only way to resolve this issue." + ] + }, + { + "name": "StorageExhausted", + "docs": [ + " A storage modification exhausted the 32bit type that holds the storage size.", + "", + " This can either happen when the accumulated storage in bytes is too large or", + " when number of storage items is too large." + ] + }, + { + "name": "DuplicateContract", + "docs": [ + " A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "docs": [ + " A contract self destructed in its constructor.", + "", + " This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "DebugMessageInvalidUTF8", + "docs": [ + " The debug message specified to `seal_debug_message` does contain invalid UTF-8." + ] + }, + { + "name": "ReentranceDenied", + "docs": [ + " A call tried to invoke a contract that is flagged as non-reentrant." + ] + } + ], + "index": 18 + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Default", + "type": { + "plain": "AccountId" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": [ + { + "name": "sudo", + "args": [ + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Weight of derivative `call` execution + 10,000.", + " # " + ] + }, + { + "name": "sudo_unchecked_weight", + "args": [ + { + "name": "call", + "type": "Call" + }, + { + "name": "_weight", + "type": "Weight" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + " This function does not check the weight of the call, and instead allows the", + " Sudo user to specify the weight of the call.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - The weight of this call is defined by the caller.", + " # " + ] + }, + { + "name": "set_key", + "args": [ + { + "name": "new", + "type": "LookupSource" + } + ], + "docs": [ + " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + " key.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + }, + { + "name": "sudo_as", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Signed` origin from", + " a given account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Weight of derivative `call` execution + 10,000.", + " # " + ] + } + ], + "events": [ + { + "name": "Sudid", + "args": [ + "DispatchResult" + ], + "docs": [ + " A sudo just took place. \\[result\\]" + ] + }, + { + "name": "KeyChanged", + "args": [ + "AccountId" + ], + "docs": [ + " The \\[sudoer\\] just switched identity; the old key is supplied." + ] + }, + { + "name": "SudoAsDone", + "args": [ + "DispatchResult" + ], + "docs": [ + " A sudo just took place. \\[result\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "RequireSudo", + "docs": [ + " Sender must be the Sudo account" + ] + } + ], + "index": 19 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex` to", + " `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [ + " # ", + " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is", + " length of `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`", + " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", + " `ReceivedHeartbeats`", + " - DbWrites: `ReceivedHeartbeats`", + " # " + ] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId` \\[authority_id\\]" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least one validator was found to be \\[offline\\]." + ] + } + ], + "constants": [ + { + "name": "UnsignedPriority", + "type": "TransactionPriority", + "value": "0xffffffffffffffff", + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "errors": [ + { + "name": "InvalidKey", + "docs": [ + " Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "docs": [ + " Duplicated heartbeat." + ] + } + ], + "index": 20 + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 21 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": null, + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes.", + " \\[kind, timeslot\\]." + ] + } + ], + "constants": [], + "errors": [], + "index": 22 + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 23 + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 24 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Registration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "(AccountId,Data)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": [ + { + "name": "add_registrar", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Add a registrar to the system.", + "", + " The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + " - `account`: the account of the registrar.", + "", + " Emits `RegistrarAdded` if successful.", + "", + " # ", + " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_identity", + "args": [ + { + "name": "info", + "type": "IdentityInfo" + } + ], + "docs": [ + " Set an account's identity information and reserve the appropriate deposit.", + "", + " If the account already has identity information, the deposit is taken as part payment", + " for the new deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `info`: The identity information.", + "", + " Emits `IdentitySet` if successful.", + "", + " # ", + " - `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)", + " - One balance reserve operation.", + " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_subs", + "args": [ + { + "name": "subs", + "type": "Vec<(AccountId,Data)>" + } + ], + "docs": [ + " Set the sub-accounts of the sender.", + "", + " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `subs`: The identity's (new) sub-accounts.", + "", + " # ", + " - `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - At most one balance operations.", + " - DB:", + " - `P + S` storage mutations (codec complexity `O(1)`)", + " - One storage read (codec complexity `O(P)`).", + " - One storage write (codec complexity `O(S)`).", + " - One storage-exists (`IdentityOf::contains_key`).", + " # " + ] + }, + { + "name": "clear_identity", + "args": [], + "docs": [ + " Clear an account's identity info and all sub-accounts and return all deposits.", + "", + " Payment: All reserved balances on the account are returned.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " Emits `IdentityCleared` if successful.", + "", + " # ", + " - `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded).", + " - One balance-unreserve operation.", + " - `2` storage reads and `S + 2` storage deletions.", + " - One event.", + " # " + ] + }, + { + "name": "request_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "max_fee", + "type": "Compact" + } + ], + "docs": [ + " Request a judgement from a registrar.", + "", + " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + " given.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is requested.", + " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + " ```nocompile", + " Self::registrars().get(reg_index).unwrap().fee", + " ```", + "", + " Emits `JudgementRequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", + " - One event.", + " # " + ] + }, + { + "name": "cancel_request", + "args": [ + { + "name": "reg_index", + "type": "RegistrarIndex" + } + ], + "docs": [ + " Cancel a previous request.", + "", + " Payment: A previously reserved deposit is returned on success.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + " Emits `JudgementUnrequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - One storage mutation `O(R + X)`.", + " - One event", + " # " + ] + }, + { + "name": "set_fee", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Set the fee required for a judgement to be requested from a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fee`: the new fee.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_account_id", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Change the account associated with a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `new`: the new account ID.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_fields", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fields", + "type": "IdentityFields" + } + ], + "docs": [ + " Set the field information for a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fields`: the fields that the registrar concerns themselves with.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", + " # " + ] + }, + { + "name": "provide_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "judgement", + "type": "IdentityJudgement" + } + ], + "docs": [ + " Provide a judgement for an account's identity.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `reg_index`.", + "", + " - `reg_index`: the index of the registrar whose judgement is being made.", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "", + " Emits `JudgementGiven` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-transfer operation.", + " - Up to one account-lookup operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "kill_identity", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's identity and sub-account information and slash the deposits.", + "", + " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + " `Slash`. Verification request deposits are not returned; they should be cancelled", + " manually using `cancel_request`.", + "", + " The dispatch origin for this call must match `T::ForceOrigin`.", + "", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + " Emits `IdentityKilled` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage mutations.", + " - One event.", + " # " + ] + }, + { + "name": "add_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Add the given account to the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Alter the associated name of the given sub-account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + } + ], + "docs": [ + " Remove the given account from the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "args": [], + "docs": [ + " Remove the sender as a sub-account.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender (*not* the original depositor).", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " super-identity.", + "", + " NOTE: This should not normally be used, but is provided in the case that the non-", + " controller of an account is maliciously registered as a sub-account." + ] + } + ], + "events": [ + { + "name": "IdentitySet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set or reset (which will remove all judgements). \\[who\\]" + ] + }, + { + "name": "IdentityCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned. \\[who, deposit\\]" + ] + }, + { + "name": "IdentityKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed. \\[who, deposit\\]" + ] + }, + { + "name": "JudgementRequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was asked from a registrar. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementUnrequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement request was retracted. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementGiven", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was given by a registrar. \\[target, registrar_index\\]" + ] + }, + { + "name": "RegistrarAdded", + "args": [ + "RegistrarIndex" + ], + "docs": [ + " A registrar was added. \\[registrar_index\\]" + ] + }, + { + "name": "SubIdentityAdded", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRemoved", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was removed from an identity and the deposit freed.", + " \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRevoked", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was cleared, and the given deposit repatriated from the", + " main identity account to the sub-identity account. \\[sub, main, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "BasicDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity" + ] + }, + { + "name": "FieldDeposit", + "type": "BalanceOf", + "value": "0x00a031a95fe300000000000000000000", + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "type": "u32", + "value": "0x64000000", + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "type": "u32", + "value": "0x14000000", + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "errors": [ + { + "name": "TooManySubAccounts", + "docs": [ + " Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "docs": [ + " Account isn't found." + ] + }, + { + "name": "NotNamed", + "docs": [ + " Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "docs": [ + " Empty index." + ] + }, + { + "name": "FeeChanged", + "docs": [ + " Fee is changed." + ] + }, + { + "name": "NoIdentity", + "docs": [ + " No identity found." + ] + }, + { + "name": "StickyJudgement", + "docs": [ + " Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "docs": [ + " Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "docs": [ + " Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "docs": [ + " The target is invalid." + ] + }, + { + "name": "TooManyFields", + "docs": [ + " Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "docs": [ + " Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Account ID is already named." + ] + }, + { + "name": "NotSub", + "docs": [ + " Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "docs": [ + " Sub-account isn't owned by sender." + ] + } + ], + "index": 25 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": "Hash" + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,BidKind)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "VouchingStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Vec<(BlockNumber,BalanceOf)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "StrikeCount", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "SocietyVote", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SocietyVote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": [ + { + "name": "bid", + "args": [ + { + "name": "value", + "type": "BalanceOf" + } + ], + "docs": [ + " A user outside of the society can make a bid for entry.", + "", + " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + " when the bid becomes a member, or if the bid calls `unbid`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `value`: A one time payment the bid would like to receive when joining the society.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", + " - Storage Reads:", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " \t- One storage read to retrieve all members. O(M)", + " - Storage Writes:", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for new bid.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unbid", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " A bidder can remove their bid for entry into society.", + " By doing so, they will have their candidate deposit returned or", + " they will unvouch their voucher.", + "", + " Payment: The bid deposit is unreserved if the user made a bid.", + "", + " The dispatch origin for this call must be _Signed_ and a bidder.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + " # ", + " Key: B (len of bids), X (balance unreserve)", + " - One storage read and write to retrieve and update the bids. O(B)", + " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B + X)", + " # " + ] + }, + { + "name": "vouch", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "tip", + "type": "BalanceOf" + } + ], + "docs": [ + " As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + " There is no deposit required to vouch for a new bid, but a member can only vouch for", + " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + " the suspension judgement origin, the member will be banned from vouching again.", + "", + " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + " be paid as a portion of the reward the member will receive for joining the society.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `who`: The user who you would like to vouch for.", + " - `value`: The total reward to be paid between you and the candidate if they become", + " a member in the society.", + " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", + " the society. Tips larger than `value` will be saturated upon payout.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members)", + " - Storage Reads:", + " \t- One storage read to retrieve all members. O(M)", + " \t- One storage read to check member is not already vouching. O(1)", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " - Storage Writes:", + " \t- One storage write to insert vouching status to the member. O(1)", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(log M) search to check sender is a member.", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for vouch.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unvouch", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " As a vouching member, unvouch a bid. This only works while vouched user is", + " only a bidder (and not a candidate).", + "", + " The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + " # ", + " Key: B (len of bids)", + " - One storage read O(1) to check the signer is a vouching member.", + " - One storage mutate to retrieve and update the bids. O(B)", + " - One vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B)", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "candidate", + "type": "LookupSource" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on a candidate.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `candidate`: The candidate that the member would like to bid on.", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " Key: C (len of candidates), M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One account lookup.", + " - One storage read O(C) and O(C) search to check that user is a candidate.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM + C)", + " # " + ] + }, + { + "name": "defender_vote", + "args": [ + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on the defender.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " - Key: M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM)", + " # " + ] + }, + { + "name": "payout", + "args": [], + "docs": [ + " Transfer the first matured payout for the sender and remove it from the records.", + "", + " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", + "", + " Payment: The member will receive a payment equal to their first matured", + " payout to their free balance.", + "", + " The dispatch origin for this call must be _Signed_ and a member with", + " payouts remaining.", + "", + " # ", + " Key: M (len of members), P (number of payouts for a particular member)", + " - One storage read O(M) and O(log M) search to check signer is a member.", + " - One storage read O(P) to get all payouts for a member.", + " - One storage read O(1) to get the current block number.", + " - One currency transfer call. O(X)", + " - One storage write or removal to update the member's payouts. O(P)", + "", + " Total Complexity: O(M + logM + P + X)", + " # " + ] + }, + { + "name": "found", + "args": [ + { + "name": "founder", + "type": "AccountId" + }, + { + "name": "max_members", + "type": "u32" + }, + { + "name": "rules", + "type": "Bytes" + } + ], + "docs": [ + " Found the society.", + "", + " This is done as a discrete action in order to allow for the", + " module to be included into a running chain and can only be done once.", + "", + " The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + " Parameters:", + " - `founder` - The first member and head of the newly founded society.", + " - `max_members` - The initial max number of members for the society.", + " - `rules` - The rules of this society concerning membership.", + "", + " # ", + " - Two storage mutates to set `Head` and `Founder`. O(1)", + " - One storage write to add the first member to society. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "unfound", + "args": [], + "docs": [ + " Annul the founding of the society.", + "", + " The dispatch origin for this call must be Signed, and the signing account must be both", + " the `Founder` and the `Head`. This implies that it may only be done when there is one", + " member.", + "", + " # ", + " - Two storage reads O(1).", + " - Four storage removals O(1).", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "judge_suspended_member", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "forgive", + "type": "bool" + } + ], + "docs": [ + " Allow suspension judgement origin to make judgement on a suspended member.", + "", + " If a suspended member is forgiven, we simply add them back as a member, not affecting", + " any of the existing storage items for that member.", + "", + " If a suspended member is rejected, remove all associated storage items, including", + " their payouts, and remove any vouched bids they currently have.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended member to be judged.", + " - `forgive` - A boolean representing whether the suspension judgement origin", + " forgives (`true`) or rejects (`false`) a suspended member.", + "", + " # ", + " Key: B (len of bids), M (len of members)", + " - One storage read to check `who` is a suspended member. O(1)", + " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", + " - Up to 3 storage removals O(1) to clean up a removed member.", + " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal. O(1)", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B)", + " # " + ] + }, + { + "name": "judge_suspended_candidate", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "judgement", + "type": "SocietyJudgement" + } + ], + "docs": [ + " Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + " If the judgement is `Approve`, we add them to society as a member with the appropriate", + " payment for joining society.", + "", + " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + " to the society treasury, or we ban the voucher from vouching again.", + "", + " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + " through the induction process again.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended candidate to be judged.", + " - `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + " # ", + " Key: B (len of bids), M (len of members), X (balance action)", + " - One storage read to check `who` is a suspended candidate.", + " - One storage removal of the suspended candidate.", + " - Approve Logic", + " \t- One storage read to get the available pot to pay users with. O(1)", + " \t- One storage write to update the available pot. O(1)", + " \t- One storage read to get the current block number. O(1)", + " \t- One storage read to get all members. O(M)", + " \t- Up to one unreserve currency action.", + " \t- Up to two new storage writes to payouts.", + " \t- Up to one storage write with O(log M) binary search to add a member to society.", + " - Reject Logic", + " \t- Up to one repatriate reserved currency action. O(X)", + " \t- Up to one storage write to ban the vouching member from vouching again.", + " - Rebid Logic", + " \t- Storage mutate with O(log B) binary search to place the user back into bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal.", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B + X)", + " # " + ] + }, + { + "name": "set_max_members", + "args": [ + { + "name": "max", + "type": "u32" + } + ], + "docs": [ + " Allows root origin to change the maximum number of members in society.", + " Max membership count must be greater than 1.", + "", + " The dispatch origin for this call must be from _ROOT_.", + "", + " Parameters:", + " - `max` - The maximum number of members for the society.", + "", + " # ", + " - One storage write to update the max. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "Founded", + "args": [ + "AccountId" + ], + "docs": [ + " The society is founded by the given identity. \\[founder\\]" + ] + }, + { + "name": "Bid", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A membership bid just happened. The given account is the candidate's ID and their offer", + " is the second. \\[candidate_id, offer\\]" + ] + }, + { + "name": "Vouch", + "args": [ + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A membership bid just happened by vouching. The given account is the candidate's ID and", + " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]" + ] + }, + { + "name": "AutoUnbid", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "args": [ + "AccountId", + "Vec" + ], + "docs": [ + " A group of candidates have been inducted. The batch's primary is the first value, the", + " batch in full is the second. \\[primary, candidates\\]" + ] + }, + { + "name": "SuspendedMemberJudgement", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A suspended member has been judged. \\[who, judged\\]" + ] + }, + { + "name": "CandidateSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] has been suspended" + ] + }, + { + "name": "MemberSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been suspended" + ] + }, + { + "name": "Challenged", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been challenged" + ] + }, + { + "name": "Vote", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed \\[candidate, voter, vote\\]" + ] + }, + { + "name": "DefenderVote", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed for a defending member \\[voter, vote\\]" + ] + }, + { + "name": "NewMaxMembers", + "args": [ + "u32" + ], + "docs": [ + " A new \\[max\\] member count has been set" + ] + }, + { + "name": "Unfounded", + "args": [ + "AccountId" + ], + "docs": [ + " Society is unfounded. \\[founder\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds were deposited into the society account. \\[value\\]" + ] + } + ], + "constants": [ + { + "name": "CandidateDeposit", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "type": "BalanceOf", + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", + " before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "type": "BalanceOf", + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "type": "BlockNumber", + "value": "0x00770100", + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "ChallengePeriod", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f736f636965", + "docs": [ + " The societies's module id" + ] + }, + { + "name": "MaxCandidateIntake", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " Maximum candidate intake per round." + ] + } + ], + "errors": [ + { + "name": "BadPosition", + "docs": [ + " An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "docs": [ + " User is not a member." + ] + }, + { + "name": "AlreadyMember", + "docs": [ + " User is already a member." + ] + }, + { + "name": "Suspended", + "docs": [ + " User is suspended." + ] + }, + { + "name": "NotSuspended", + "docs": [ + " User is not suspended." + ] + }, + { + "name": "NoPayout", + "docs": [ + " Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "docs": [ + " Society already founded." + ] + }, + { + "name": "InsufficientPot", + "docs": [ + " Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "docs": [ + " Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "docs": [ + " Member is not vouching." + ] + }, + { + "name": "Head", + "docs": [ + " Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "docs": [ + " Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "docs": [ + " User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "docs": [ + " User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "docs": [ + " User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "docs": [ + " Too many members in the society." + ] + }, + { + "name": "NotFounder", + "docs": [ + " The caller is not the founder." + ] + }, + { + "name": "NotHead", + "docs": [ + " The caller is not the head." + ] + } + ], + "index": 26 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RecoveryConfig", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "ActiveRecovery", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": [ + { + "name": "as_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through a recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you want to make a call on-behalf-of.", + " - `call`: The call you want to make with the recovered account.", + "", + " # ", + " - The weight of the `call` + 10,000.", + " - One storage lookup to check account is recovered by `who`. O(1)", + " # " + ] + }, + { + "name": "set_recovered", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow ROOT to bypass the recovery process and set an a rescuer account", + " for a lost account directly.", + "", + " The dispatch origin for this call must be _ROOT_.", + "", + " Parameters:", + " - `lost`: The \"lost account\" to be recovered.", + " - `rescuer`: The \"rescuer account\" which can call as the lost account.", + "", + " # ", + " - One storage write O(1)", + " - One event", + " # " + ] + }, + { + "name": "create_recovery", + "args": [ + { + "name": "friends", + "type": "Vec" + }, + { + "name": "threshold", + "type": "u16" + }, + { + "name": "delay_period", + "type": "BlockNumber" + } + ], + "docs": [ + " Create a recovery configuration for your account. This makes your account recoverable.", + "", + " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + " will be reserved for storing the recovery configuration. This deposit is returned", + " in full when the user calls `remove_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + " - `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + " - `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered.", + "", + " # ", + " - Key: F (len of friends)", + " - One storage read to check that account is not already recoverable. O(1).", + " - A check that the friends list is sorted and unique. O(F)", + " - One currency reserve operation. O(X)", + " - One storage write. O(1). Codec O(F).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "initiate_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Initiate the process for recovering a recoverable account.", + "", + " Payment: `RecoveryDeposit` balance will be reserved for initiating the", + " recovery process. This deposit will always be repatriated to the account", + " trying to be recovered. See `close_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration).", + "", + " # ", + " - One storage read to check that account is recoverable. O(F)", + " - One storage read to check that this recovery process hasn't already started. O(1)", + " - One currency reserve operation. O(X)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "vouch_recovery", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow a \"friend\" of a recoverable account to vouch for an active recovery", + " process for that account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + " for the recoverable account.", + "", + " Parameters:", + " - `lost`: The lost account that you want to recover.", + " - `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + " The combination of these two parameters must point to an active recovery", + " process.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One binary search to confirm caller is a friend. O(logF)", + " - One binary search to confirm caller has not already vouched. O(logV)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + logF + V + logV)", + " # " + ] + }, + { + "name": "claim_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Allow a successful rescuer to claim their recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + " who has successfully completed the account recovery process: collected", + " `threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + " Parameters:", + " - `account`: The lost account that you want to claim has been successfully recovered by", + " you.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + V)", + " # " + ] + }, + { + "name": "close_recovery", + "args": [ + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " As the controller of a recoverable account, close an active recovery", + " process for your account.", + "", + " Payment: By calling this function, the recoverable account will receive", + " the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account with an active recovery process for it.", + "", + " Parameters:", + " - `rescuer`: The account trying to rescue this recoverable account.", + "", + " # ", + " Key: V (len of vouching friends)", + " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", + " - One balance call to repatriate reserved. O(X)", + " - One event.", + "", + " Total Complexity: O(V + X)", + " # " + ] + }, + { + "name": "remove_recovery", + "args": [], + "docs": [ + " Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + " NOTE: The user must make sure to call `close_recovery` on all active", + " recovery attempts before calling this function else it will fail.", + "", + " Payment: By calling this function the recoverable account will unreserve", + " their recovery configuration deposit.", + " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account (i.e. has a recovery configuration).", + "", + " # ", + " Key: F (len of friends)", + " - One storage read to get the prefix iterator for active recoveries. O(1)", + " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", + " - One balance call to unreserved. O(X)", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "cancel_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Cancel the ability to use `as_recovered` for `account`.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you are able to call on-behalf-of.", + "", + " # ", + " - One storage mutation to check account is recovered by `who`. O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "RecoveryCreated", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been set up for an \\[account\\]." + ] + }, + { + "name": "RecoveryInitiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process has been initiated for lost account by rescuer account.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "RecoveryVouched", + "args": [ + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been vouched for by sender.", + " \\[lost, rescuer, sender\\]" + ] + }, + { + "name": "RecoveryClosed", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been closed.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "AccountRecovered", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Lost account has been successfully recovered by rescuer account.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "RecoveryRemoved", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been removed for an \\[account\\]." + ] + } + ], + "constants": [ + { + "name": "ConfigDepositBase", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": "BalanceOf", + "value": "0x00203d88792d00000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": "u16", + "value": "0x0900", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration." + ] + }, + { + "name": "RecoveryDeposit", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": [ + { + "name": "NotAllowed", + "docs": [ + " User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "docs": [ + " Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "docs": [ + " Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "docs": [ + " Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "docs": [ + " Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "docs": [ + " This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "docs": [ + " A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "docs": [ + " A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "docs": [ + " This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "docs": [ + " The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "docs": [ + " This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "docs": [ + " The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "docs": [ + " There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "docs": [ + " Some internal state is broken." + ] + } + ], + "index": 27 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": [ + { + "name": "vest", + "args": [], + "docs": [ + " Unlock any vested funds of the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 2 Reads, 2 Writes", + " - Reads: Vesting Storage, Balances Locks, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, [Sender Account]", + " # " + ] + }, + { + "name": "vest_other", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Unlock any vested funds of a `target` account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account whose vested funds should be unlocked. Must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account", + " - Writes: Vesting Storage, Balances Locks, Target Account", + " # " + ] + }, + { + "name": "vested_transfer", + "args": [ + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Create a vested transfer.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account receiving the vested funds.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " NOTE: This will unlock all schedules through the current block.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " # " + ] + }, + { + "name": "force_vested_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Force a vested transfer.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `source`: The account whose funds should be transferred.", + " - `target`: The account that should be transferred the vested funds.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " NOTE: This will unlock all schedules through the current block.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 4 Reads, 4 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", + " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", + " # " + ] + }, + { + "name": "merge_schedules", + "args": [ + { + "name": "schedule1_index", + "type": "u32" + }, + { + "name": "schedule2_index", + "type": "u32" + } + ], + "docs": [ + " Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + " the highest possible start and end blocks. If both schedules have already started the", + " current block will be used as the schedule start; with the caveat that if one schedule", + " is finished by the current block, the other will be treated as the new merged schedule,", + " unmodified.", + "", + " NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + " NOTE: This will unlock all schedules through the current block prior to merging.", + " NOTE: If both schedules have ended by the current block, no new schedule will be created", + " and both will be removed.", + "", + " Merged schedule attributes:", + " - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + " - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + " - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `schedule1_index`: index of the first schedule to merge.", + " - `schedule2_index`: index of the second schedule to merge." + ] + } + ], + "events": [ + { + "name": "VestingUpdated", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The amount vested has been updated. This could indicate a change in funds available.", + " The balance given is the amount which is left unvested (and thus locked).", + " \\[account, unvested\\]" + ] + }, + { + "name": "VestingCompleted", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has become fully vested." + ] + } + ], + "constants": [ + { + "name": "MinVestedTransfer", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": "u32", + "value": "0x1c000000", + "docs": [] + } + ], + "errors": [ + { + "name": "NotVesting", + "docs": [ + " The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "docs": [ + " The account already has `MaxVestingSchedules` count of schedules and thus", + " cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "docs": [ + " Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "docs": [ + " An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "docs": [ + " Failed to create a new schedule because some parameter was invalid." + ] + } + ], + "index": 28 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Bytes", + "value": "TaskAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from identity to the block number and index of the task." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "schedule", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.29 + .126 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda", + " - Will use base weight of 25 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u32" + } + ], + "docs": [ + " Cancel an anonymously scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.15 + 2.869 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_named", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 29.6 + .159 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 35 which should be good for more than 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel_named", + "args": [ + { + "name": "id", + "type": "Bytes" + } + ], + "docs": [ + " Cancel a named scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 24.91 + 2.907 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_after", + "args": [ + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task after a delay.", + "", + " # ", + " Same as [`schedule`].", + " # " + ] + }, + { + "name": "schedule_named_after", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task after a delay.", + "", + " # ", + " Same as [`schedule_named`](Self::schedule_named).", + " # " + ] + } + ], + "events": [ + { + "name": "Scheduled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Scheduled some task. \\[when, index\\]" + ] + }, + { + "name": "Canceled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Canceled some task. \\[when, index\\]" + ] + }, + { + "name": "Dispatched", + "args": [ + "TaskAddress", + "Option", + "DispatchResult" + ], + "docs": [ + " Dispatched some task. \\[task, id, result\\]" + ] + } + ], + "constants": [ + { + "name": "MaximumWeight", + "type": "Weight", + "value": "0x00806e8774010000", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables of less", + " priority than `schedule::HARD_DEADLINE`." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + " Not strictly enforced, but used for weight estimation." + ] + } + ], + "errors": [ + { + "name": "FailedToSchedule", + "docs": [ + " Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "docs": [ + " Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "docs": [ + " Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "docs": [ + " Reschedule failed because it does not change scheduled time." + ] + } + ], + "index": 29 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": [ + { + "name": "proxy", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorised for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "add_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Register a proxy account for the sender that is able to make calls on its behalf.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to make a proxy.", + " - `proxy_type`: The permissions allowed for this proxy account.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Unregister a proxy account for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to remove as a proxy.", + " - `proxy_type`: The permissions currently enabled for the removed proxy account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxies", + "args": [], + "docs": [ + " Unregister all proxy accounts for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " WARNING: This may be called on accounts created by `anonymous`, however if done, then", + " the unreserved fees will be inaccessible. **All access to this account will be lost.**", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "anonymous", + "args": [ + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u16" + } + ], + "docs": [ + " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + " initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + " Requires a `Signed` origin.", + "", + " - `proxy_type`: The type of the proxy that the sender will be registered as over the", + " new account. This will almost always be the most permissive `ProxyType` possible to", + " allow for maximum flexibility.", + " - `index`: A disambiguation index, in case this is called multiple times in the same", + " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + " want to use `0`.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " Fails with `Duplicate` if this has already been called in this transaction, from the", + " same sender, with the same parameters.", + "", + " Fails if there are insufficient funds to pay for deposit.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # ", + " TODO: Might be over counting 1 read" + ] + }, + { + "name": "kill_anonymous", + "args": [ + { + "name": "spawner", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "height", + "type": "Compact" + }, + { + "name": "ext_index", + "type": "Compact" + } + ], + "docs": [ + " Removes a previously spawned anonymous proxy.", + "", + " WARNING: **All access to this account will be lost.** Any funds held in it will be", + " inaccessible.", + "", + " Requires a `Signed` origin, and the sender account must have been created by a call to", + " `anonymous` with corresponding parameters.", + "", + " - `spawner`: The account that originally called `anonymous` to create this account.", + " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", + " - `proxy_type`: The proxy type originally passed to `anonymous`.", + " - `height`: The height of the chain when the call to `anonymous` was processed.", + " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", + "", + " Fails with `NoPermission` in case the caller is not a previously created anonymous", + " account whose `anonymous` call has corresponding parameters.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "announce", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Publish the hash of a proxy-call that will be made in the future.", + "", + " This must be called some number of blocks before the corresponding `proxy` is attempted", + " if the delay associated with the proxy relationship is greater than zero.", + "", + " No more than `MaxPending` announcements may be made at any one time.", + "", + " This will take a deposit of `AnnouncementDepositFactor` as well as", + " `AnnouncementDepositBase` if there are no other pending announcements.", + "", + " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "remove_announcement", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove a given announcement.", + "", + " May be called by a proxy account to remove a call they previously announced and return", + " the deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "reject_announcement", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove the given announcement of a delegate.", + "", + " May be called by a target (proxied) account to remove a call that one of their delegates", + " (`delegate`) has announced they want to execute. The deposit is returned.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `delegate`: The account that previously announced the call.", + " - `call_hash`: The hash of the call to be made.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "proxy_announced", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorized for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + } + ], + "events": [ + { + "name": "ProxyExecuted", + "args": [ + "DispatchResult" + ], + "docs": [ + " A proxy was executed correctly, with the given \\[result\\]." + ] + }, + { + "name": "AnonymousCreated", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "u16" + ], + "docs": [ + " Anonymous account has been created by new proxy with given", + " disambiguation index and proxy type. \\[anonymous, who, proxy_type,", + " disambiguation_index\\]" + ] + }, + { + "name": "Announced", + "args": [ + "AccountId", + "AccountId", + "Hash" + ], + "docs": [ + " An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]" + ] + }, + { + "name": "ProxyAdded", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "BlockNumber" + ], + "docs": [ + " A proxy was added. \\[delegator, delegatee, proxy_type, delay\\]" + ] + } + ], + "constants": [ + { + "name": "ProxyDepositBase", + "type": "BalanceOf", + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": "BalanceOf", + "value": "0x0060aa7714b400000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": "BalanceOf", + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": "BalanceOf", + "value": "0x00c054ef286801000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": [ + { + "name": "TooMany", + "docs": [ + " There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "docs": [ + " Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "docs": [ + " Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "docs": [ + " A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "docs": [ + " Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "docs": [ + " Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "docs": [ + " Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "docs": [ + " Cannot add self as proxy." + ] + } + ], + "index": 30 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "[u8;32]", + "value": "Multisig", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + }, + { + "name": "Calls", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "[u8;32]", + "value": "(OpaqueCall,AccountId,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": [ + { + "name": "as_multi_threshold_1", + "args": [ + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `other_signatories`: The accounts (other than the sender) who are part of the", + " multi-signature, but do not participate in the approval process.", + " - `call`: The call to be executed.", + "", + " Result is equivalent to the dispatched result.", + "", + " # ", + " O(Z + C) where Z is the length of the call and C its execution weight.", + " -------------------------------", + " - DB Weight: None", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call", + "type": "OpaqueCall" + }, + { + "name": "store_call", + "type": "bool" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " If there are enough, then dispatch the call.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call`: The call to be executed.", + "", + " NOTE: Unless this is the final approval, you will generally want to use", + " `approve_as_multi` instead, since it only requires a hash of the call.", + "", + " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + " on success, result is `Ok` and the result from the interior call, if it was executed,", + " may be found in the deposited `MultisigExecuted` event.", + "", + " # ", + " - `O(S + Z + Call)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - The weight of the `call`.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`.", + " -------------------------------", + " - DB Weight:", + " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "approve_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call_hash", + "type": "[u8;32]" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call_hash`: The hash of the call to be executed.", + "", + " NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account]", + " - Write: Multisig Storage, [Caller Account]", + " # " + ] + }, + { + "name": "cancel_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "timepoint", + "type": "Timepoint" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + " for this operation will be unreserved on success.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `timepoint`: The timepoint (block number and transaction index) of the first approval", + " transaction for this dispatch.", + " - `call_hash`: The hash of the call to be executed.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - One event.", + " - I/O: 1 read `O(S)`, one remove.", + " - Storage: removes one item.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", + " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", + " # " + ] + } + ], + "events": [ + { + "name": "NewMultisig", + "args": [ + "AccountId", + "AccountId", + "CallHash" + ], + "docs": [ + " A new multisig operation has begun. \\[approving, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigApproval", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been approved by someone.", + " \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigExecuted", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash", + "DispatchResult" + ], + "docs": [ + " A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigCancelled", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]" + ] + } + ], + "constants": [ + { + "name": "DepositBase", + "type": "BalanceOf", + "value": "0x00f01c0adbed01000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": "BalanceOf", + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": "u16", + "value": "0x6400", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": [ + { + "name": "MinimumThreshold", + "docs": [ + " Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "docs": [ + " Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "docs": [ + " Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "docs": [ + " There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "docs": [ + " There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "docs": [ + " The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "docs": [ + " The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "docs": [ + " Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "docs": [ + " No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "docs": [ + " A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "docs": [ + " A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "docs": [ + " The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "docs": [ + " The data to be stored is already stored." + ] + } + ], + "index": 31 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": "BountyIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bounty", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_bounty", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "description", + "type": "Bytes" + } + ], + "docs": [ + " Propose a new bounty.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + " or slashed when rejected.", + "", + " - `curator`: The curator account whom will manage this bounty.", + " - `fee`: The curator fee.", + " - `value`: The total payment amount of this bounty, curator fee included.", + " - `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a bounty proposal. At a later time, the bounty will be funded and become active", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "propose_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "curator", + "type": "LookupSource" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Assign a curator to a funded bounty.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "unassign_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Unassign curator from a bounty.", + "", + " This function can only be called by the `RejectOrigin` a signed origin.", + "", + " If this function is called by the `RejectOrigin`, we assume that the curator is malicious", + " or inactive. As a result, we will slash the curator when possible.", + "", + " If the origin is the curator, we take this as a sign they are unable to do their job and", + " they willingly give up. We could slash them, but for now we allow them to recover their", + " deposit and exit without issue. (We may want to change this if it is abused.)", + "", + " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + " anyone in the community to call out that a curator is not doing their due diligence, and", + " we should pick a new curator. In this case the curator should also be slashed.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "accept_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Accept the curator role for a bounty.", + " A deposit will be reserved from curator and refund upon successful payout.", + "", + " May only be called from the curator.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "award_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to award.", + " - `beneficiary`: The beneficiary account whom will receive the payout.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "claim_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Claim the payout from an awarded bounty after payout delay.", + "", + " The dispatch origin for this call must be the beneficiary of this bounty.", + "", + " - `bounty_id`: Bounty ID to claim.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "close_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Cancel a proposed or active bounty. All the funds will be sent to treasury and", + " the curator deposit will be unreserved if possible.", + "", + " Only `T::RejectOrigin` is able to cancel a bounty.", + "", + " - `bounty_id`: Bounty ID to cancel.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "extend_bounty_expiry", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Extend the expiry time of an active bounty.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to extend.", + " - `remark`: additional information.", + "", + " # ", + " - O(1).", + " # " + ] + } + ], + "events": [ + { + "name": "BountyProposed", + "args": [ + "BountyIndex" + ], + "docs": [ + " New bounty proposal. \\[index\\]" + ] + }, + { + "name": "BountyRejected", + "args": [ + "BountyIndex", + "Balance" + ], + "docs": [ + " A bounty proposal was rejected; funds were slashed. \\[index, bond\\]" + ] + }, + { + "name": "BountyBecameActive", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty proposal is funded and became active. \\[index\\]" + ] + }, + { + "name": "BountyAwarded", + "args": [ + "BountyIndex", + "AccountId" + ], + "docs": [ + " A bounty is awarded to a beneficiary. \\[index, beneficiary\\]" + ] + }, + { + "name": "BountyClaimed", + "args": [ + "BountyIndex", + "Balance", + "AccountId" + ], + "docs": [ + " A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]" + ] + }, + { + "name": "BountyCanceled", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty is cancelled. \\[index\\]" + ] + }, + { + "name": "BountyExtended", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty expiry is extended. \\[index\\]" + ] + } + ], + "constants": [ + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within bounty description." + ] + }, + { + "name": "BountyDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": "BlockNumber", + "value": "0x00270600", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "BountyCuratorDeposit", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of the curator fee that will be reserved upfront as deposit for bounty curator." + ] + }, + { + "name": "BountyValueMinimum", + "type": "BalanceOf", + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "docs": [ + " The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "docs": [ + " Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "docs": [ + " Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "docs": [ + " Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "docs": [ + " A bounty payout is pending.", + " To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "docs": [ + " The bounties cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 32 + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "OpenTip", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "report_awesome", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'", + " - DbReads: `Reasons`, `Tips`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "retract_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + " If successful, the original deposit will be unreserved.", + "", + " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + " must have been reported by the signing account through `report_awesome` (and not", + " through `tip_new`).", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " Emits `TipRetracted` if successful.", + "", + " # ", + " - Complexity: `O(1)`", + " - Depends on the length of `T::Hash` which is fixed.", + " - DbReads: `Tips`, `origin account`", + " - DbWrites: `Reasons`, `Tips`, `origin account`", + " # " + ] + }, + { + "name": "tip_new", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Give a tip for something new; no finder's fee will be taken.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`", + " - DbReads: `Tippers`, `Reasons`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "tip", + "args": [ + { + "name": "hash", + "type": "Hash" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Declare a tip value for an already-open tip.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + " has started.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length", + " `T`, insert tip and check closing, `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`.", + " - DbReads: `Tippers`, `Tips`", + " - DbWrites: `Tips`", + " # " + ] + }, + { + "name": "close_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Close and payout a tip.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " The tip identified by `hash` must have finished its countdown period.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length", + " `T`. `T` is charged as upper bound given by `ContainsLengthBound`. The actual cost", + " depends on the implementation of `T::Tippers`.", + " - DbReads: `Tips`, `Tippers`, `tip finder`", + " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", + " # " + ] + }, + { + "name": "slash_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Remove and slash an already-open tip.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " As a result, the finder is slashed and the deposits are lost.", + "", + " Emits `TipSlashed` if successful.", + "", + " # ", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTip", + "args": [ + "Hash" + ], + "docs": [ + " A new tip suggestion has been opened. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosing", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has reached threshold and is closing. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been closed. \\[tip_hash, who, payout\\]" + ] + }, + { + "name": "TipRetracted", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has been retracted. \\[tip_hash\\]" + ] + }, + { + "name": "TipSlashed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + }, + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": "Percent", + "value": "0x14", + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a tip report." + ] + } + ], + "errors": [ + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "docs": [ + " The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "docs": [ + " The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "docs": [ + " The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "docs": [ + " The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "docs": [ + " The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 33 + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AssetId", + "value": "AssetDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_128Concat", + "key1": "AssetId", + "key2": "AccountId", + "value": "AssetBalance", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00000000000000000000", + "docs": [ + " The number of units of assets held by any given account." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "nMap": { + "keyVec": [ + "AssetId", + "AccountId", + "AccountId" + ], + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "value": "AssetApproval" + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AssetId", + "value": "AssetMetadata", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + } + ] + }, + "calls": [ + { + "name": "create", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "min_balance", + "type": "TAssetBalance" + } + ], + "docs": [ + " Issue a new class of fungible assets from a public origin.", + "", + " This new asset class has no assets initially and its owner is the origin.", + "", + " The origin must be Signed and the sender must have sufficient funds free.", + "", + " Funds of sender are reserved by `AssetDeposit`.", + "", + " Parameters:", + " - `id`: The identifier of the new asset. This must not be currently in use to identify", + " an existing asset.", + " - `admin`: The admin of this class of assets. The admin is the initial address of each", + " member of the asset class's admin team.", + " - `min_balance`: The minimum balance of this new asset that any single account must", + " have. If an account's balance is reduced below this, then it collapses to zero.", + "", + " Emits `Created` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "is_sufficient", + "type": "bool" + }, + { + "name": "min_balance", + "type": "Compact" + } + ], + "docs": [ + " Issue a new class of fungible assets from a privileged origin.", + "", + " This new asset class has no assets initially.", + "", + " The origin must conform to `ForceOrigin`.", + "", + " Unlike `create`, no funds are reserved.", + "", + " - `id`: The identifier of the new asset. This must not be currently in use to identify", + " an existing asset.", + " - `owner`: The owner of this class of assets. The owner has full superuser permissions", + " over this asset, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + " - `min_balance`: The minimum balance of this new asset that any single account must", + " have. If an account's balance is reduced below this, then it collapses to zero.", + "", + " Emits `ForceCreated` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "witness", + "type": "AssetDestroyWitness" + } + ], + "docs": [ + " Destroy a class of fungible assets.", + "", + " The origin must conform to `ForceOrigin` or must be Signed and the sender must be the", + " owner of the asset `id`.", + "", + " - `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + " Emits `Destroyed` event when successful.", + "", + " NOTE: It can be helpful to first freeze an asset before destroying it so that you", + " can provide accurate witness information and prevent users from manipulating state", + " in a way that can make it harder to destroy.", + "", + " Weight: `O(c + p + a)` where:", + " - `c = (witness.accounts - witness.sufficients)`", + " - `s = witness.sufficients`", + " - `a = witness.approvals`" + ] + }, + { + "name": "mint", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Mint assets of a particular class.", + "", + " The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + " - `id`: The identifier of the asset to have some amount minted.", + " - `beneficiary`: The account to be credited with the minted assets.", + " - `amount`: The amount of the asset to be minted.", + "", + " Emits `Issued` event when successful.", + "", + " Weight: `O(1)`", + " Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + " Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + " Bails with `BalanceZero` if the `who` is already dead.", + "", + " - `id`: The identifier of the asset to have some amount burned.", + " - `who`: The account to be debited from.", + " - `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + " Emits `Burned` with the actual amount burned. If this takes the balance to below the", + " minimum for the asset, then the amount burned is increased to take it to zero.", + "", + " Weight: `O(1)`", + " Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Move some assets from the sender account to another.", + "", + " Origin must be Signed.", + "", + " - `id`: The identifier of the asset to have some amount transferred.", + " - `target`: The account to be credited.", + " - `amount`: The amount by which the sender's balance of assets should be reduced and", + " `target`'s balance increased. The amount actually transferred may be slightly greater in", + " the case that the transfer would otherwise take the sender balance above zero but below", + " the minimum balance. Must be greater than zero.", + "", + " Emits `Transferred` with the actual amount transferred. If this takes the source balance", + " to below the minimum for the asset, then the amount transferred is increased to take it", + " to zero.", + "", + " Weight: `O(1)`", + " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + " `target`." + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Move some assets from the sender account to another, keeping the sender account alive.", + "", + " Origin must be Signed.", + "", + " - `id`: The identifier of the asset to have some amount transferred.", + " - `target`: The account to be credited.", + " - `amount`: The amount by which the sender's balance of assets should be reduced and", + " `target`'s balance increased. The amount actually transferred may be slightly greater in", + " the case that the transfer would otherwise take the sender balance above zero but below", + " the minimum balance. Must be greater than zero.", + "", + " Emits `Transferred` with the actual amount transferred. If this takes the source balance", + " to below the minimum for the asset, then the amount transferred is increased to take it", + " to zero.", + "", + " Weight: `O(1)`", + " Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + " `target`." + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Move some assets from one account to another.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + " - `id`: The identifier of the asset to have some amount transferred.", + " - `source`: The account to be debited.", + " - `dest`: The account to be credited.", + " - `amount`: The amount by which the `source`'s balance of assets should be reduced and", + " `dest`'s balance increased. The amount actually transferred may be slightly greater in", + " the case that the transfer would otherwise take the `source` balance above zero but", + " below the minimum balance. Must be greater than zero.", + "", + " Emits `Transferred` with the actual amount transferred. If this takes the source balance", + " to below the minimum for the asset, then the amount transferred is increased to take it", + " to zero.", + "", + " Weight: `O(1)`", + " Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + " `dest`." + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "who", + "type": "LookupSource" + } + ], + "docs": [ + " Disallow further unprivileged transfers from an account.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + " - `who`: The account to be frozen.", + "", + " Emits `Frozen`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "who", + "type": "LookupSource" + } + ], + "docs": [ + " Allow unprivileged transfers from an account again.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + " - `who`: The account to be unfrozen.", + "", + " Emits `Thawed`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Disallow further unprivileged transfers for the asset class.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + "", + " Emits `Frozen`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Allow unprivileged transfers for the asset again.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + " - `id`: The identifier of the asset to be thawed.", + "", + " Emits `Thawed`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + } + ], + "docs": [ + " Change the Owner of an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " - `id`: The identifier of the asset.", + " - `owner`: The new Owner of this asset.", + "", + " Emits `OwnerChanged`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "issuer", + "type": "LookupSource" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "freezer", + "type": "LookupSource" + } + ], + "docs": [ + " Change the Issuer, Admin and Freezer of an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " - `id`: The identifier of the asset to be frozen.", + " - `issuer`: The new Issuer of this asset.", + " - `admin`: The new Admin of this asset.", + " - `freezer`: The new Freezer of this asset.", + "", + " Emits `TeamChanged`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "name", + "type": "Bytes" + }, + { + "name": "symbol", + "type": "Bytes" + }, + { + "name": "decimals", + "type": "u8" + } + ], + "docs": [ + " Set the metadata for an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " Funds of sender are reserved according to the formula:", + " `MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + " account any already reserved funds.", + "", + " - `id`: The identifier of the asset to update.", + " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + " - `decimals`: The number of decimals this asset uses to represent one unit.", + "", + " Emits `MetadataSet`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Clear the metadata for an asset.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + " Any deposit is freed for the asset owner.", + "", + " - `id`: The identifier of the asset to clear.", + "", + " Emits `MetadataCleared`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "name", + "type": "Bytes" + }, + { + "name": "symbol", + "type": "Bytes" + }, + { + "name": "decimals", + "type": "u8" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Force the metadata for an asset to some value.", + "", + " Origin must be ForceOrigin.", + "", + " Any deposit is left alone.", + "", + " - `id`: The identifier of the asset to update.", + " - `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + " - `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + " - `decimals`: The number of decimals this asset uses to represent one unit.", + "", + " Emits `MetadataSet`.", + "", + " Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "args": [ + { + "name": "id", + "type": "Compact" + } + ], + "docs": [ + " Clear the metadata for an asset.", + "", + " Origin must be ForceOrigin.", + "", + " Any deposit is returned.", + "", + " - `id`: The identifier of the asset to clear.", + "", + " Emits `MetadataCleared`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "issuer", + "type": "LookupSource" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "freezer", + "type": "LookupSource" + }, + { + "name": "min_balance", + "type": "Compact" + }, + { + "name": "is_sufficient", + "type": "bool" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Alter the attributes of a given asset.", + "", + " Origin must be `ForceOrigin`.", + "", + " - `id`: The identifier of the asset.", + " - `owner`: The new Owner of this asset.", + " - `issuer`: The new Issuer of this asset.", + " - `admin`: The new Admin of this asset.", + " - `freezer`: The new Freezer of this asset.", + " - `min_balance`: The minimum balance of this new asset that any single account must", + " have. If an account's balance is reduced below this, then it collapses to zero.", + " - `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + " value to account for the state bloat associated with its balance storage. If set to", + " `true`, then non-zero balances may be stored without a `consumer` reference (and thus", + " an ED in the Balances pallet or whatever else is used to control user-account state", + " growth).", + " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + " instructions.", + "", + " Emits `AssetStatusChanged` with the identity of the asset.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "delegate", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Approve an amount of asset for transfer by a delegated third-party account.", + "", + " Origin must be Signed.", + "", + " Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + " for the purpose of holding the approval. If some non-zero amount of assets is already", + " approved from signing account to `delegate`, then it is topped up or unreserved to", + " meet the right value.", + "", + " NOTE: The signing account does not need to own `amount` of assets at the point of", + " making this call.", + "", + " - `id`: The identifier of the asset.", + " - `delegate`: The account to delegate permission to transfer asset.", + " - `amount`: The amount of asset that may be transferred by `delegate`. If there is", + " already an approval in place, then this acts additively.", + "", + " Emits `ApprovedTransfer` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "delegate", + "type": "LookupSource" + } + ], + "docs": [ + " Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + " Origin must be Signed and there must be an approval in place between signer and", + " `delegate`.", + "", + " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + " - `id`: The identifier of the asset.", + " - `delegate`: The account delegated permission to transfer asset.", + "", + " Emits `ApprovalCancelled` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "delegate", + "type": "LookupSource" + } + ], + "docs": [ + " Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + " Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + " account of the asset `id`.", + "", + " Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + " - `id`: The identifier of the asset.", + " - `delegate`: The account delegated permission to transfer asset.", + "", + " Emits `ApprovalCancelled` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "args": [ + { + "name": "id", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "destination", + "type": "LookupSource" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Transfer some asset balance from a previously delegated account to some third-party", + " account.", + "", + " Origin must be Signed and there must be an approval in place by the `owner` to the", + " signer.", + "", + " If the entire amount approved for transfer is transferred, then any deposit previously", + " reserved by `approve_transfer` is unreserved.", + "", + " - `id`: The identifier of the asset.", + " - `owner`: The account which previously approved for a transfer of at least `amount` and", + " from which the asset balance will be withdrawn.", + " - `destination`: The account to which the asset balance of `amount` will be transferred.", + " - `amount`: The amount of assets to transfer.", + "", + " Emits `TransferredApproved` on success.", + "", + " Weight: `O(1)`" + ] + } + ], + "events": [ + { + "name": "Created", + "args": [ + "AssetId", + "AccountId", + "AccountId" + ], + "docs": [ + " Some asset class was created. \\[asset_id, creator, owner\\]" + ] + }, + { + "name": "Issued", + "args": [ + "AssetId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " Some assets were issued. \\[asset_id, owner, total_supply\\]" + ] + }, + { + "name": "Transferred", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " Some assets were transferred. \\[asset_id, from, to, amount\\]" + ] + }, + { + "name": "Burned", + "args": [ + "AssetId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " Some assets were destroyed. \\[asset_id, owner, balance\\]" + ] + }, + { + "name": "TeamChanged", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " The management team changed \\[asset_id, issuer, admin, freezer\\]" + ] + }, + { + "name": "OwnerChanged", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " The owner changed \\[asset_id, owner\\]" + ] + }, + { + "name": "Frozen", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " Some account `who` was frozen. \\[asset_id, who\\]" + ] + }, + { + "name": "Thawed", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " Some account `who` was thawed. \\[asset_id, who\\]" + ] + }, + { + "name": "AssetFrozen", + "args": [ + "AssetId" + ], + "docs": [ + " Some asset `asset_id` was frozen. \\[asset_id\\]" + ] + }, + { + "name": "AssetThawed", + "args": [ + "AssetId" + ], + "docs": [ + " Some asset `asset_id` was thawed. \\[asset_id\\]" + ] + }, + { + "name": "Destroyed", + "args": [ + "AssetId" + ], + "docs": [ + " An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "args": [ + "AssetId", + "AccountId" + ], + "docs": [ + " Some asset class was force-created. \\[asset_id, owner\\]" + ] + }, + { + "name": "MetadataSet", + "args": [ + "AssetId", + "Bytes", + "Bytes", + "u8", + "bool" + ], + "docs": [ + " New metadata has been set for an asset. \\[asset_id, name, symbol, decimals, is_frozen\\]" + ] + }, + { + "name": "MetadataCleared", + "args": [ + "AssetId" + ], + "docs": [ + " Metadata has been cleared for an asset. \\[asset_id\\]" + ] + }, + { + "name": "ApprovedTransfer", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " (Additional) funds have been approved for transfer to a destination account.", + " \\[asset_id, source, delegate, amount\\]" + ] + }, + { + "name": "ApprovalCancelled", + "args": [ + "AssetId", + "AccountId", + "AccountId" + ], + "docs": [ + " An approval for account `delegate` was cancelled by `owner`.", + " \\[id, owner, delegate\\]" + ] + }, + { + "name": "TransferredApproved", + "args": [ + "AssetId", + "AccountId", + "AccountId", + "AccountId", + "TAssetBalance" + ], + "docs": [ + " An `amount` was transferred in its entirety from `owner` to `destination` by", + " the approved `delegate`.", + " \\[id, owner, delegate, destination\\]" + ] + }, + { + "name": "AssetStatusChanged", + "args": [ + "AssetId" + ], + "docs": [ + " An asset has had its attributes changed by the `Force` origin.", + " \\[id\\]" + ] + } + ], + "constants": [ + { + "name": "AssetDeposit", + "type": "DepositBalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "MetadataDepositBase", + "type": "DepositBalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": "DepositBalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": "DepositBalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": [ + { + "name": "BalanceLow", + "docs": [ + " Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "BalanceZero", + "docs": [ + " Balance should be non-zero." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "docs": [ + " The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "docs": [ + " The origin account is frozen." + ] + }, + { + "name": "InUse", + "docs": [ + " The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "docs": [ + " Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "docs": [ + " Minimum balance should be non-zero." + ] + }, + { + "name": "NoProvider", + "docs": [ + " No provider reference exists to allow a non-zero balance of a non-self-sufficient", + " asset." + ] + }, + { + "name": "BadMetadata", + "docs": [ + " Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "docs": [ + " No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "docs": [ + " The source account would not survive the transfer and it needs to stay alive." + ] + } + ], + "index": 34 + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "u64", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 35 + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "items": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [] + }, + { + "name": "Lottery", + "modifier": "Optional", + "type": { + "plain": "LotteryConfig" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current lottery." + ] + }, + { + "name": "Participants", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(u32,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ] + }, + { + "name": "TicketsCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Total number of tickets sold." + ] + }, + { + "name": "Tickets", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ] + }, + { + "name": "CallIndices", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ] + } + ] + }, + "calls": [ + { + "name": "buy_ticket", + "args": [ + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Buy a ticket to enter the lottery.", + "", + " This extrinsic acts as a passthrough function for `call`. In all", + " situations where `call` alone would succeed, this extrinsic should", + " succeed.", + "", + " If `call` is successful, then we will attempt to purchase a ticket,", + " which may fail silently. To detect success of a ticket purchase, you", + " should listen for the `TicketBought` event.", + "", + " This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Set calls in storage which can be used to purchase a lottery ticket.", + "", + " This function only matters if you use the `ValidateCall` implementation", + " provided by this pallet, which uses storage to determine the valid calls.", + "", + " This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "args": [ + { + "name": "price", + "type": "BalanceOf" + }, + { + "name": "length", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "repeat", + "type": "bool" + } + ], + "docs": [ + " Start a lottery using the provided configuration.", + "", + " This extrinsic must be called by the `ManagerOrigin`.", + "", + " Parameters:", + "", + " * `price`: The cost of a single ticket.", + " * `length`: How long the lottery should run for starting at the current block.", + " * `delay`: How long after the lottery end we should wait before picking a winner.", + " * `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "args": [], + "docs": [ + " If a lottery is repeating, you can use this to stop the repeat.", + " The lottery will continue to run to completion.", + "", + " This extrinsic must be called by the `ManagerOrigin`." + ] + } + ], + "events": [ + { + "name": "LotteryStarted", + "args": [], + "docs": [ + " A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "args": [], + "docs": [ + " A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "args": [ + "AccountId", + "CallIndex" + ], + "docs": [ + " A ticket has been bought!" + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f6c6f74746f", + "docs": [ + " The Lottery's pallet id" + ] + }, + { + "name": "MaxCalls", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The max number of calls available in a single lottery." + ] + }, + { + "name": "MaxGenerateRandom", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " Number of time we should try to generate a random number that has no modulo bias.", + " The larger this number, the more potential computation is used for picking the winner,", + " but also the more likely that the chosen winner is done fairly." + ] + } + ], + "errors": [ + { + "name": "NotConfigured", + "docs": [ + " A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "docs": [ + " A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "docs": [ + " A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "docs": [ + " The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "docs": [ + " You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "docs": [ + " Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "docs": [ + " Failed to encode calls" + ] + } + ], + "index": 36 + }, + { + "name": "Gilt", + "storage": { + "prefix": "Gilt", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": "Vec<(u32,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids ready to become gilts. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "ActiveTotal", + "modifier": "Default", + "type": { + "plain": "ActiveGiltsTotal" + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Information relating to the gilts currently active." + ] + }, + { + "name": "Active", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "ActiveIndex", + "value": "ActiveGilt", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The currently active gilts, indexed according to the order of creation." + ] + } + ] + }, + "calls": [ + { + "name": "place_bid", + "args": [ + { + "name": "amount", + "type": "Compact" + }, + { + "name": "duration", + "type": "u32" + } + ], + "docs": [ + " Place a bid for a gilt to be issued.", + "", + " Origin must be Signed, and account must have at least `amount` in free balance.", + "", + " - `amount`: The amount of the bid; these funds will be reserved. If the bid is", + " successfully elevated into an issued gilt, then these funds will continue to be", + " reserved until the gilt expires. Must be at least `MinFreeze`.", + " - `duration`: The number of periods for which the funds will be locked if the gilt is", + " issued. It will expire only after this period has elapsed after the point of issuance.", + " Must be greater than 1 and no more than `QueueCount`.", + "", + " Complexities:", + " - `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "args": [ + { + "name": "amount", + "type": "Compact" + }, + { + "name": "duration", + "type": "u32" + } + ], + "docs": [ + " Retract a previously placed bid.", + "", + " Origin must be Signed, and the account should have previously issued a still-active bid", + " of `amount` for `duration`.", + "", + " - `amount`: The amount of the previous bid.", + " - `duration`: The duration of the previous bid." + ] + }, + { + "name": "set_target", + "args": [ + { + "name": "target", + "type": "Compact" + } + ], + "docs": [ + " Set target proportion of gilt-funds.", + "", + " Origin must be `AdminOrigin`.", + "", + " - `target`: The target proportion of effective issued funds that should be under gilts", + " at any one time." + ] + }, + { + "name": "thaw", + "args": [ + { + "name": "index", + "type": "Compact" + } + ], + "docs": [ + " Remove an active but expired gilt. Reserved funds under gilt are freed and balance is", + " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion", + " of effective total issued funds.", + "", + " Origin must be Signed and the account must be the owner of the gilt of the given index.", + "", + " - `index`: The index of the gilt to be thawed." + ] + } + ], + "events": [ + { + "name": "BidPlaced", + "args": [ + "AccountId", + "BalanceOf", + "u32" + ], + "docs": [ + " A bid was successfully placed.", + " \\[ who, amount, duration \\]" + ] + }, + { + "name": "BidRetracted", + "args": [ + "AccountId", + "BalanceOf", + "u32" + ], + "docs": [ + " A bid was successfully removed (before being accepted as a gilt).", + " \\[ who, amount, duration \\]" + ] + }, + { + "name": "GiltIssued", + "args": [ + "ActiveIndex", + "BlockNumber", + "AccountId", + "BalanceOf" + ], + "docs": [ + " A bid was accepted as a gilt. The balance may not be released until expiry.", + " \\[ index, expiry, who, amount \\]" + ] + }, + { + "name": "GiltThawed", + "args": [ + "ActiveIndex", + "AccountId", + "BalanceOf", + "BalanceOf" + ], + "docs": [ + " An expired gilt has been thawed.", + " \\[ index, who, original_amount, additional_amount \\]" + ] + } + ], + "constants": [ + { + "name": "IgnoredIssuance", + "type": "BalanceOf", + "value": "0x996af44a87686c010000000000000000", + "docs": [ + " The issuance to ignore. This is subtracted from the `Currency`'s `total_issuance` to get", + " the issuance by which we inflate or deflate the gilt." + ] + }, + { + "name": "QueueCount", + "type": "u32", + "value": "0x2c010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "type": "u32", + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue." + ] + }, + { + "name": "FifoQueueLen", + "type": "u32", + "value": "0xf4010000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "Period", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinFreeze", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount of funds that may be offered to freeze for a gilt. Note that this", + " does not actually limit the amount which may be frozen in a gilt since gilts may be", + " split up in order to satisfy the desired amount of funds under gilts.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "IntakePeriod", + "type": "BlockNumber", + "value": "0x0a000000", + "docs": [ + " The number of blocks between consecutive attempts to issue more gilts in an effort to", + " get to the target amount to be frozen.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeBids", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The maximum amount of bids that can be turned into issued gilts each block. A larger", + " value here means less of the block available for transactions should there be a glut of", + " bids to make into gilts to reach the target." + ] + } + ], + "errors": [ + { + "name": "DurationTooSmall", + "docs": [ + " The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "docs": [ + " The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "docs": [ + " The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "docs": [ + " The queue for the bid's duration is full and the amount bid is too low to get in", + " through replacing an existing bid." + ] + }, + { + "name": "Unknown", + "docs": [ + " Gilt index is unknown." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Not the owner of the gilt." + ] + }, + { + "name": "NotExpired", + "docs": [ + " Gilt not yet at expiry date." + ] + }, + { + "name": "NotFound", + "docs": [ + " The given bid for retraction is not found." + ] + } + ], + "index": 37 + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "items": [ + { + "name": "Class", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "ClassId", + "value": "ClassDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset class." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "nMap": { + "keyVec": [ + "AccountId", + "ClassId", + "InstanceId" + ], + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "value": "()" + } + }, + "fallback": "0x00", + "docs": [ + " The assets held by any given account; set out this way so that assets owned by a single", + " account can be enumerated." + ] + }, + { + "name": "Asset", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_128Concat", + "key1": "ClassId", + "key2": "InstanceId", + "value": "InstanceDetails", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The assets in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "ClassId", + "value": "ClassMetadata", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an asset class." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_128Concat", + "key1": "ClassId", + "key2": "InstanceId", + "value": "InstanceMetadata", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an asset instance." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "nMap": { + "keyVec": [ + "ClassId", + "Option", + "Bytes" + ], + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "value": "(Bytes,DepositBalanceOf)" + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an asset class." + ] + } + ] + }, + "calls": [ + { + "name": "create", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "admin", + "type": "LookupSource" + } + ], + "docs": [ + " Issue a new class of non-fungible assets from a public origin.", + "", + " This new asset class has no assets initially and its owner is the origin.", + "", + " The origin must be Signed and the sender must have sufficient funds free.", + "", + " `AssetDeposit` funds of sender are reserved.", + "", + " Parameters:", + " - `class`: The identifier of the new asset class. This must not be currently in use.", + " - `admin`: The admin of this class of assets. The admin is the initial address of each", + " member of the asset class's admin team.", + "", + " Emits `Created` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "free_holding", + "type": "bool" + } + ], + "docs": [ + " Issue a new class of non-fungible assets from a privileged origin.", + "", + " This new asset class has no assets initially.", + "", + " The origin must conform to `ForceOrigin`.", + "", + " Unlike `create`, no funds are reserved.", + "", + " - `class`: The identifier of the new asset. This must not be currently in use.", + " - `owner`: The owner of this class of assets. The owner has full superuser permissions", + " over this asset, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + " Emits `ForceCreated` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "witness", + "type": "DestroyWitness" + } + ], + "docs": [ + " Destroy a class of fungible assets.", + "", + " The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + " owner of the asset `class`.", + "", + " - `class`: The identifier of the asset class to be destroyed.", + " - `witness`: Information on the instances minted in the asset class. This must be", + " correct.", + "", + " Emits `Destroyed` event when successful.", + "", + " Weight: `O(n + m)` where:", + " - `n = witness.instances`", + " - `m = witness.instance_metadatas`", + " - `a = witness.attributes`" + ] + }, + { + "name": "mint", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + } + ], + "docs": [ + " Mint an asset instance of a particular class.", + "", + " The origin must be Signed and the sender must be the Issuer of the asset `class`.", + "", + " - `class`: The class of the asset to be minted.", + " - `instance`: The instance value of the asset to be minted.", + " - `beneficiary`: The initial owner of the minted asset.", + "", + " Emits `Issued` event when successful.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "burn", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + }, + { + "name": "check_owner", + "type": "Option" + } + ], + "docs": [ + " Destroy a single asset instance.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `class`.", + "", + " - `class`: The class of the asset to be burned.", + " - `instance`: The instance of the asset to be burned.", + " - `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " asset is owned by this value.", + "", + " Emits `Burned` with the actual amount burned.", + "", + " Weight: `O(1)`", + " Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + }, + { + "name": "dest", + "type": "LookupSource" + } + ], + "docs": [ + " Move an asset from the sender account to another.", + "", + " Origin must be Signed and the signing account must be either:", + " - the Admin of the asset `class`;", + " - the Owner of the asset `instance`;", + " - the approved delegate for the asset `instance` (in this case, the approval is reset).", + "", + " Arguments:", + " - `class`: The class of the asset to be transferred.", + " - `instance`: The instance of the asset to be transferred.", + " - `dest`: The account to receive ownership of the asset.", + "", + " Emits `Transferred`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instances", + "type": "Vec" + } + ], + "docs": [ + " Reevaluate the deposits on some assets.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `class`.", + "", + " - `class`: The class of the asset to be frozen.", + " - `instances`: The instances of the asset class whose deposits will be reevaluated.", + "", + " NOTE: This exists as a best-effort function. Any asset instances which are unknown or", + " in the case that the owner account does not have reservable funds to pay for a", + " deposit increase are ignored. Generally the owner isn't going to call this on instances", + " whose existing deposit is less than the refreshed deposit as it would only cost them,", + " so it's of little consequence.", + "", + " It will still return an error in the case that the class is unknown of the signer is", + " not permitted to call it.", + "", + " Weight: `O(instances.len())`" + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + } + ], + "docs": [ + " Disallow further unprivileged transfer of an asset instance.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `class`.", + "", + " - `class`: The class of the asset to be frozen.", + " - `instance`: The instance of the asset to be frozen.", + "", + " Emits `Frozen`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + } + ], + "docs": [ + " Re-allow unprivileged transfer of an asset instance.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `class`.", + "", + " - `class`: The class of the asset to be thawed.", + " - `instance`: The instance of the asset to be thawed.", + "", + " Emits `Thawed`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "freeze_class", + "args": [ + { + "name": "class", + "type": "Compact" + } + ], + "docs": [ + " Disallow further unprivileged transfers for a whole asset class.", + "", + " Origin must be Signed and the sender should be the Freezer of the asset `class`.", + "", + " - `class`: The asset class to be frozen.", + "", + " Emits `ClassFrozen`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "thaw_class", + "args": [ + { + "name": "class", + "type": "Compact" + } + ], + "docs": [ + " Re-allow unprivileged transfers for a whole asset class.", + "", + " Origin must be Signed and the sender should be the Admin of the asset `class`.", + "", + " - `class`: The class to be thawed.", + "", + " Emits `ClassThawed`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + } + ], + "docs": [ + " Change the Owner of an asset class.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `class`.", + "", + " - `class`: The asset class whose owner should be changed.", + " - `owner`: The new Owner of this asset class.", + "", + " Emits `OwnerChanged`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "issuer", + "type": "LookupSource" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "freezer", + "type": "LookupSource" + } + ], + "docs": [ + " Change the Issuer, Admin and Freezer of an asset class.", + "", + " Origin must be Signed and the sender should be the Owner of the asset `class`.", + "", + " - `class`: The asset class whose team should be changed.", + " - `issuer`: The new Issuer of this asset class.", + " - `admin`: The new Admin of this asset class.", + " - `freezer`: The new Freezer of this asset class.", + "", + " Emits `TeamChanged`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + }, + { + "name": "delegate", + "type": "LookupSource" + } + ], + "docs": [ + " Approve an instance to be transferred by a delegated third-party account.", + "", + " Origin must be Signed and must be the owner of the asset `instance`.", + "", + " - `class`: The class of the asset to be approved for delegated transfer.", + " - `instance`: The instance of the asset to be approved for delegated transfer.", + " - `delegate`: The account to delegate permission to transfer the asset.", + "", + " Emits `ApprovedTransfer` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + }, + { + "name": "maybe_check_delegate", + "type": "Option" + } + ], + "docs": [ + " Cancel the prior approval for the transfer of an asset by a delegate.", + "", + " Origin must be either:", + " - the `Force` origin;", + " - `Signed` with the signer being the Admin of the asset `class`;", + " - `Signed` with the signer being the Owner of the asset `instance`;", + "", + " Arguments:", + " - `class`: The class of the asset of whose approval will be cancelled.", + " - `instance`: The instance of the asset of whose approval will be cancelled.", + " - `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + " Emits `ApprovalCancelled` on success.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "owner", + "type": "LookupSource" + }, + { + "name": "issuer", + "type": "LookupSource" + }, + { + "name": "admin", + "type": "LookupSource" + }, + { + "name": "freezer", + "type": "LookupSource" + }, + { + "name": "free_holding", + "type": "bool" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Alter the attributes of a given asset.", + "", + " Origin must be `ForceOrigin`.", + "", + " - `class`: The identifier of the asset.", + " - `owner`: The new Owner of this asset.", + " - `issuer`: The new Issuer of this asset.", + " - `admin`: The new Admin of this asset.", + " - `freezer`: The new Freezer of this asset.", + " - `free_holding`: Whether a deposit is taken for holding an instance of this asset", + " class.", + " - `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + " instructions.", + "", + " Emits `AssetStatusChanged` with the identity of the asset.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "maybe_instance", + "type": "Option" + }, + { + "name": "key", + "type": "Bytes" + }, + { + "name": "value", + "type": "Bytes" + } + ], + "docs": [ + " Set an attribute for an asset class or instance.", + "", + " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + " asset `class`.", + "", + " If the origin is Signed, then funds of signer are reserved according to the formula:", + " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + " account any already reserved funds.", + "", + " - `class`: The identifier of the asset class whose instance's metadata to set.", + " - `maybe_instance`: The identifier of the asset instance whose metadata to set.", + " - `key`: The key of the attribute.", + " - `value`: The value to which to set the attribute.", + "", + " Emits `AttributeSet`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "maybe_instance", + "type": "Option" + }, + { + "name": "key", + "type": "Bytes" + } + ], + "docs": [ + " Set an attribute for an asset class or instance.", + "", + " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + " asset `class`.", + "", + " If the origin is Signed, then funds of signer are reserved according to the formula:", + " `MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + " account any already reserved funds.", + "", + " - `class`: The identifier of the asset class whose instance's metadata to set.", + " - `instance`: The identifier of the asset instance whose metadata to set.", + " - `key`: The key of the attribute.", + " - `value`: The value to which to set the attribute.", + "", + " Emits `AttributeSet`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Set the metadata for an asset instance.", + "", + " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + " asset `class`.", + "", + " If the origin is Signed, then funds of signer are reserved according to the formula:", + " `MetadataDepositBase + DepositPerByte * data.len` taking into", + " account any already reserved funds.", + "", + " - `class`: The identifier of the asset class whose instance's metadata to set.", + " - `instance`: The identifier of the asset instance whose metadata to set.", + " - `data`: The general information of this asset. Limited in length by `StringLimit`.", + " - `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + " Emits `MetadataSet`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "instance", + "type": "Compact" + } + ], + "docs": [ + " Clear the metadata for an asset instance.", + "", + " Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + " asset `instance`.", + "", + " Any deposit is freed for the asset class owner.", + "", + " - `class`: The identifier of the asset class whose instance's metadata to clear.", + " - `instance`: The identifier of the asset instance whose metadata to clear.", + "", + " Emits `MetadataCleared`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "set_class_metadata", + "args": [ + { + "name": "class", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + }, + { + "name": "is_frozen", + "type": "bool" + } + ], + "docs": [ + " Set the metadata for an asset class.", + "", + " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + " the asset `class`.", + "", + " If the origin is `Signed`, then funds of signer are reserved according to the formula:", + " `MetadataDepositBase + DepositPerByte * data.len` taking into", + " account any already reserved funds.", + "", + " - `class`: The identifier of the asset whose metadata to update.", + " - `data`: The general information of this asset. Limited in length by `StringLimit`.", + " - `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + " Emits `ClassMetadataSet`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "clear_class_metadata", + "args": [ + { + "name": "class", + "type": "Compact" + } + ], + "docs": [ + " Clear the metadata for an asset class.", + "", + " Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + " the asset `class`.", + "", + " Any deposit is freed for the asset class owner.", + "", + " - `class`: The identifier of the asset class whose metadata to clear.", + "", + " Emits `ClassMetadataCleared`.", + "", + " Weight: `O(1)`" + ] + } + ], + "events": [ + { + "name": "Created", + "args": [ + "ClassId", + "AccountId", + "AccountId" + ], + "docs": [ + " An asset class was created. \\[ class, creator, owner \\]" + ] + }, + { + "name": "ForceCreated", + "args": [ + "ClassId", + "AccountId" + ], + "docs": [ + " An asset class was force-created. \\[ class, owner \\]" + ] + }, + { + "name": "Destroyed", + "args": [ + "ClassId" + ], + "docs": [ + " An asset `class` was destroyed. \\[ class \\]" + ] + }, + { + "name": "Issued", + "args": [ + "ClassId", + "InstanceId", + "AccountId" + ], + "docs": [ + " An asset `instance` was issued. \\[ class, instance, owner \\]" + ] + }, + { + "name": "Transferred", + "args": [ + "ClassId", + "InstanceId", + "AccountId", + "AccountId" + ], + "docs": [ + " An asset `instance` was transferred. \\[ class, instance, from, to \\]" + ] + }, + { + "name": "Burned", + "args": [ + "ClassId", + "InstanceId", + "AccountId" + ], + "docs": [ + " An asset `instance` was destroyed. \\[ class, instance, owner \\]" + ] + }, + { + "name": "Frozen", + "args": [ + "ClassId", + "InstanceId" + ], + "docs": [ + " Some asset `instance` was frozen. \\[ class, instance \\]" + ] + }, + { + "name": "Thawed", + "args": [ + "ClassId", + "InstanceId" + ], + "docs": [ + " Some asset `instance` was thawed. \\[ class, instance \\]" + ] + }, + { + "name": "ClassFrozen", + "args": [ + "ClassId" + ], + "docs": [ + " Some asset `class` was frozen. \\[ class \\]" + ] + }, + { + "name": "ClassThawed", + "args": [ + "ClassId" + ], + "docs": [ + " Some asset `class` was thawed. \\[ class \\]" + ] + }, + { + "name": "OwnerChanged", + "args": [ + "ClassId", + "AccountId" + ], + "docs": [ + " The owner changed \\[ class, new_owner \\]" + ] + }, + { + "name": "TeamChanged", + "args": [ + "ClassId", + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " The management team changed \\[ class, issuer, admin, freezer \\]" + ] + }, + { + "name": "ApprovedTransfer", + "args": [ + "ClassId", + "InstanceId", + "AccountId", + "AccountId" + ], + "docs": [ + " An `instance` of an asset `class` has been approved by the `owner` for transfer by a", + " `delegate`.", + " \\[ class, instance, owner, delegate \\]" + ] + }, + { + "name": "ApprovalCancelled", + "args": [ + "ClassId", + "InstanceId", + "AccountId", + "AccountId" + ], + "docs": [ + " An approval for a `delegate` account to transfer the `instance` of an asset `class` was", + " cancelled by its `owner`.", + " \\[ class, instance, owner, delegate \\]" + ] + }, + { + "name": "AssetStatusChanged", + "args": [ + "ClassId" + ], + "docs": [ + " An asset `class` has had its attributes changed by the `Force` origin.", + " \\[ class \\]" + ] + }, + { + "name": "ClassMetadataSet", + "args": [ + "ClassId", + "Bytes", + "bool" + ], + "docs": [ + " New metadata has been set for an asset class. \\[ class, data, is_frozen \\]" + ] + }, + { + "name": "ClassMetadataCleared", + "args": [ + "ClassId" + ], + "docs": [ + " Metadata has been cleared for an asset class. \\[ class \\]" + ] + }, + { + "name": "MetadataSet", + "args": [ + "ClassId", + "InstanceId", + "Bytes", + "bool" + ], + "docs": [ + " New metadata has been set for an asset instance.", + " \\[ class, instance, data, is_frozen \\]" + ] + }, + { + "name": "MetadataCleared", + "args": [ + "ClassId", + "InstanceId" + ], + "docs": [ + " Metadata has been cleared for an asset instance. \\[ class, instance \\]" + ] + }, + { + "name": "Redeposited", + "args": [ + "ClassId", + "Vec" + ], + "docs": [ + " Metadata has been cleared for an asset instance. \\[ class, successful_instances \\]" + ] + }, + { + "name": "AttributeSet", + "args": [ + "ClassId", + "Option", + "Bytes", + "Bytes" + ], + "docs": [ + " New attribute metadata has been set for an asset class or instance.", + " \\[ class, maybe_instance, key, value \\]" + ] + }, + { + "name": "AttributeCleared", + "args": [ + "ClassId", + "Option", + "Bytes" + ], + "docs": [ + " Attribute metadata has been cleared for an asset class or instance.", + " \\[ class, maybe_instance, key, maybe_value \\]" + ] + } + ], + "constants": [ + { + "name": "ClassDeposit", + "type": "DepositBalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset class." + ] + }, + { + "name": "InstanceDeposit", + "type": "DepositBalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset instance." + ] + }, + { + "name": "MetadataDepositBase", + "type": "DepositBalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "AttributeDepositBase", + "type": "DepositBalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an asset." + ] + }, + { + "name": "DepositPerByte", + "type": "DepositBalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": "u32", + "value": "0x00010000", + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "errors": [ + { + "name": "NoPermission", + "docs": [ + " The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "docs": [ + " The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "docs": [ + " The asset instance ID has already been used for an asset." + ] + }, + { + "name": "WrongOwner", + "docs": [ + " The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "docs": [ + " Invalid witness data given." + ] + }, + { + "name": "InUse", + "docs": [ + " The asset ID is already taken." + ] + }, + { + "name": "Frozen", + "docs": [ + " The asset instance or class is frozen." + ] + }, + { + "name": "WrongDelegate", + "docs": [ + " The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "docs": [ + " There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "docs": [ + " No approval exists that would allow the transfer." + ] + } + ], + "index": 38 + }, + { + "name": "TransactionStorage", + "storage": { + "prefix": "TransactionStorage", + "items": [ + { + "name": "Transactions", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "BlockNumber", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Collection of transaction metadata by block number." + ] + }, + { + "name": "ChunkCount", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "BlockNumber", + "value": "u32", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " Count indexed chunks for each block." + ] + }, + { + "name": "ByteFee", + "modifier": "Optional", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00", + "docs": [ + " Storage fee per byte." + ] + }, + { + "name": "EntryFee", + "modifier": "Optional", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00", + "docs": [ + " Storage fee per transaction." + ] + }, + { + "name": "MaxTransactionSize", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Maximum data set in a single transaction in bytes." + ] + }, + { + "name": "MaxBlockTransactions", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Maximum number of indexed transactions in the block." + ] + }, + { + "name": "StoragePeriod", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", + " for block authoring." + ] + }, + { + "name": "BlockTransactions", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "ProofChecked", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Was the proof checked in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "store", + "args": [ + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Index and store data on chain. Minimum data size is 1 bytes, maximum is", + " `MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + " is called. # ", + " - n*log(n) of data size, as all data is pushed to an in-memory trie.", + " Additionally contains a DB write.", + " # " + ] + }, + { + "name": "renew", + "args": [ + { + "name": "block", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u32" + } + ], + "docs": [ + " Renew previously stored data. Parameters are the block number that contains", + " previous `store` or `renew` call and transaction index within that block.", + " Transaction index is emitted in the `Stored` or `Renewed` event.", + " Applies same fees as `store`.", + " # ", + " - Constant.", + " # " + ] + }, + { + "name": "check_proof", + "args": [ + { + "name": "proof", + "type": "TransactionStorageProof" + } + ], + "docs": [ + " Check storage proof for block number `block_number() - StoragePeriod`.", + " If such block does not exist the proof is expected to be `None`.", + " # ", + " - Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + " There's a DB read for each transaction.", + " Here we assume a maximum of 100 probed transactions.", + " # " + ] + } + ], + "events": [ + { + "name": "Stored", + "args": [ + "u32" + ], + "docs": [ + " Stored data under specified index." + ] + }, + { + "name": "Renewed", + "args": [ + "u32" + ], + "docs": [ + " Renewed data under specified index." + ] + }, + { + "name": "ProofChecked", + "args": [], + "docs": [ + " Storage proof was successfully checked." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InsufficientFunds", + "docs": [ + " Insufficient account balance." + ] + }, + { + "name": "NotConfigured", + "docs": [ + " Invalid configuration." + ] + }, + { + "name": "RenewedNotFound", + "docs": [ + " Renewed extrinsic is not found." + ] + }, + { + "name": "EmptyTransaction", + "docs": [ + " Attempting to store empty transaction" + ] + }, + { + "name": "UnexpectedProof", + "docs": [ + " Proof was not expected in this block." + ] + }, + { + "name": "InvalidProof", + "docs": [ + " Proof failed verification." + ] + }, + { + "name": "MissingProof", + "docs": [ + " Missing storage proof." + ] + }, + { + "name": "MissingStateData", + "docs": [ + " Unable to verify proof becasue state data is missing." + ] + }, + { + "name": "DoubleCheck", + "docs": [ + " Double proof check in the block." + ] + }, + { + "name": "ProofNotChecked", + "docs": [ + " Storage proof was not checked in the block." + ] + }, + { + "name": "TransactionTooLarge", + "docs": [ + " Transaction is too large." + ] + }, + { + "name": "TooManyTransactions", + "docs": [ + " Too many transactions in the block." + ] + }, + { + "name": "BadContext", + "docs": [ + " Attempted to call `store` outside of block execution." + ] + } + ], + "index": 39 + } + ], + "extrinsic": { + "version": 4, + "signedExtensions": [ + "CheckSpecVersion", + "CheckTxVersion", + "CheckGenesis", + "CheckMortality", + "CheckNonce", + "CheckWeight", + "ChargeTransactionPayment" + ] + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v13/dicle-hex.ts b/packages/types-support/src/metadata/v13/dicle-hex.ts new file mode 100644 index 0000000..4d59510 --- /dev/null +++ b/packages/types-support/src/metadata/v13/dicle-hex.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev + +export default '0x6d6574610dc81853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e2c682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e4901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697338202020657870656e73697665292e2c202d2031206576656e742e51012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279bc20657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e59012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c4c20626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e3903186b7573616d61347061726974792d6b7573616d61020000008c2300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000050000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780c75313608020014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e001042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f6684426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f6684426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c7536342058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e012454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e405820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f28312960296501202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e44202020606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00021c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657848450120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d65732074686524206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4034a1aec600000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e032042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964d05765616b426f756e6465645665633c42616c616e63654c6f636b3c543a3a42616c616e63653e2c20543a3a4d61784c6f636b733e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010230543a3a4163636f756e7449642901426f756e6465645665633c52657365727665446174613c543a3a526573657276654964656e7469666965722c20543a3a42616c616e63653e2c20543a3a0a4d617852657365727665733e00040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0114207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e70d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e6501202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e6669679820202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e3501202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c65783c202020636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d0202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e61012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636be020202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e5101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f7480202020617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e307472616e736665725f616c6c0810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365286b6565705f616c69766510626f6f6c440901205472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e005d01204e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e732074686174650120616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062656101207472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c490120796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f7261676544206465706f736974732c206574632e2e2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a4202d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e5d01202d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c51012020206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f725d012020207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fcc2020206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e3d01202d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e34202020233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654055a0fc0100000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b730c753332103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d617852657365727665730c7533321032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657304b0204e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657304485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4012160500000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c0400000000000000000000000000000000a9e696010001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002128417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e000440556e636c6547656e65726174696f6e7338543a3a426c6f636b4e756d62657210000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e1c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e051c5374616b696e67011c5374616b696e679430486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f725072656673000800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400000c75333204000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e0004000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400000c75333204000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040610cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c6400001c50657263656e7404000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e016410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e4465012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e2c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3c65012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e590120556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365c020616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e4c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e003d012049662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1d0120746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533323c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f76650d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667314e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e9c2053616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e9c2053616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f65726173003cb020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3d0120546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865e020656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100404d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b734901205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca8204163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730038050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657854110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e24e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d820546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e583101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e5d01202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e2054686973610120202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e5d012020204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4c2020206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673290120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c702020202020202045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533324061012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b735101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5c2020205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2ce42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d69747314486d696e5f6e6f6d696e61746f725f626f6e643042616c616e63654f663c543e486d696e5f76616c696461746f725f626f6e643042616c616e63654f663c543e4c6d61785f6e6f6d696e61746f725f636f756e742c4f7074696f6e3c7533323e4c6d61785f76616c696461746f725f636f756e742c4f7074696f6e3c7533323e247468726573686f6c643c4f7074696f6e3c50657263656e743e34bc205570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e002901202a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e2901202a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e5901202a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e9c20202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e5901202a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e9c20202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00ac204f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e003901204e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e150120746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720428636f6e74726f6c6c657230543a3a4163636f756e744964544501204465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00450120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e005d01204966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265dc20656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e006101204966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e7334206d757374206265206d65743a4101202a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d617859012020206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e5d01202a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e6594202020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e6101202a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e6573550120202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c6444202020626f6e642072657175697265642e00590120546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739c2077686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e01301c457261506169640c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d20526577617264656408244163636f756e7449641c42616c616e636504090120546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c617368656408244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c65640004b02054686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c656404244163636f756e74496408250120416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e28205c5b73746173685c5d345061796f7574537461727465640820457261496e646578244163636f756e74496404190120546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e646578101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e646578101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c7533321018000000005c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6404d02043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f746865720459012054686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730851012054686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b82073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730851012054686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b82073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e06204f6666656e63657301204f6666656e6365730c1c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001041c4f6666656e636508104b696e64384f706171756554696d65536c6f740c550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e50205c5b6b696e642c2074696d65736c6f745c5d2e00000728486973746f726963616c0000000000221c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e746088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578084d01204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f7420746865a020626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e081c4772616e647061011c4772616e6470611814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e0a20496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973dc2020206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e0440556e7369676e65645072696f726974794c5472616e73616374696f6e5072696f7269747920ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e0828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e0b48417574686f72697479446973636f7665727900000000000c2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e6501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b82020206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e6101202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973cc2020207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001442050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e0849012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c34206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e646578384469737061746368526573756c7404cc20412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e2c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d6265721000c2010014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210c089010004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210c089010004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f6438543a3a426c6f636b4e756d6265721000c20100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f7369743042616c616e63654f663c543e4034a1aec600000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f77656410626f6f6c04010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e40121605000000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e702056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0d1c436f756e63696c011c436f756e63696c182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746484205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e5d01202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f725420202077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a55012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468653020202020206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e2cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768745901202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67342020206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c3cf42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c550120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c20636861726765206114206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e80510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e006501202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f736564282070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669613901206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295d0120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465633020202020604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a48617368385d0120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741c2073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0e48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746484205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e5d01202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f725420202077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a55012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468653020202020206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e2cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768745901202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67342020206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c3cf42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c550120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c20636861726765206114206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e80510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e006501202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f736564282070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669613901206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295d0120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465633020202020604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a48617368385d0120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741c2073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0f4050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674851012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795d0120202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865382020206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e4034a1aec600000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e4010c55b920f000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e4080965b060000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c75333210130000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210130000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210403800000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e104c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e11205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d183050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e401098a4850f0000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080510100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c10d00700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c730c753332106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1218436c61696d730118436c61696d731418436c61696d730001063c457468657265756d416464726573733042616c616e63654f663c543e0004000014546f74616c01003042616c616e63654f663c543e4000000000000000000000000000000000001c56657374696e670001063c457468657265756d41646472657373b02842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722900040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001063c457468657265756d416464726573733453746174656d656e744b696e6400040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d7300010630543a3a4163636f756e7449643c457468657265756d41646472657373000400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e011414636c61696d08106465737430543a3a4163636f756e74496448657468657265756d5f7369676e61747572653845636473615369676e6174757265608c204d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e005420556e7369676e65642056616c69646174696f6e3a090120412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865738020746865206578706563746564207369676e6564206d657373616765206f663a006c203e20457468657265756d205369676e6564204d6573736167653a98203e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a820616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e003020506172616d65746572733adc202d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e1101202d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765a0202020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee42057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e286d696e745f636c61696d100c77686f3c457468657265756d416464726573731476616c75653042616c616e63654f663c543e4076657374696e675f7363686564756c65d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e2473746174656d656e74544f7074696f6e3c53746174656d656e744b696e643e3c88204d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e003020506172616d65746572733af4202d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ed0202d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e0d01202d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e210120576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e30636c61696d5f6174746573740c106465737430543a3a4163636f756e74496448657468657265756d5f7369676e61747572653845636473615369676e61747572652473746174656d656e741c5665633c75383e68e8204d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e005420556e7369676e65642056616c69646174696f6e3a2d0120412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865738020746865206578706563746564207369676e6564206d657373616765206f663a006c203e20457468657265756d205369676e6564204d6573736167653ac4203e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004d0120616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c4206578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e003020506172616d65746572733adc202d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e1101202d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765a0202020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e6901202d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e01012057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e18617474657374042473746174656d656e741c5665633c75383e44f82041747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e006901205741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e005420556e7369676e65642056616c69646174696f6e3a2d0120412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f820616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e003020506172616d65746572733a6901202d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef42057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e286d6f76655f636c61696d0c0c6f6c643c457468657265756d416464726573730c6e65773c457468657265756d41646472657373386d617962655f707265636c61696d504f7074696f6e3c543a3a4163636f756e7449643e0001041c436c61696d65640c244163636f756e7449643c457468657265756d416464726573731c42616c616e636504f420536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d600418507265666978342620277374617469635b75385d807c506179204b534d7320746f20746865204b7573616d61206163636f756e743a001860496e76616c6964457468657265756d5369676e6174757265047020496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d047c20457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d04b4204163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f770865012054686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f6769631c206572726f722e40496e76616c696453746174656d656e7404942041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e636545786973747304a820546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e131c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e4c802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e006101202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f743d012020206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e38f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e006101202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f743d012020206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e010c404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640004210120412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e044c626174636865645f63616c6c735f6c696d69740c753332100cc3000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0430546f6f4d616e7943616c6c73046020546f6f206d616e792063616c6c7320626174636865642e18204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e7449641101526567697374726174696f6e3c42616c616e63654f663c543e2c20543a3a4d6178526567697374726172732c20543a3a4d61784164646974696f6e616c4669656c64733e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964ec2842616c616e63654f663c543e2c20426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785375624163636f756e74733e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301004101426f756e6465645665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e2c20540a3a3a4d6178526567697374726172733e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666fa4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e40084cd2c207000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f7369743042616c616e63654f663c543e400293b4f0010000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e4068425d8d0100000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e191c536f6369657479011c536f6369657479401c466f756e646572000030543a3a4163636f756e7449640400044820546865206669727374206d656d6265722e1452756c657300001c543a3a48617368040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e2843616e6469646174657301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e0400043901205468652063757272656e7420736574206f662063616e646964617465733b206269646465727320746861742061726520617474656d7074696e6720746f206265636f6d65206d656d626572732e4c53757370656e64656443616e6469646174657300010530543a3a4163636f756e744964e42842616c616e63654f663c542c20493e2c204269644b696e643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e2900040004842054686520736574206f662073757370656e6465642063616e646964617465732e0c506f7401003c42616c616e63654f663c542c20493e400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1048656164000030543a3a4163636f756e744964040004e820546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f766564206d656d626572732e1c4d656d626572730100445665633c543a3a4163636f756e7449643e04000494205468652063757272656e7420736574206f66206d656d626572732c206f7264657265642e4053757370656e6465644d656d6265727301010530543a3a4163636f756e74496410626f6f6c00040004782054686520736574206f662073757370656e646564206d656d626572732e104269647301009c5665633c4269643c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e3e040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e20566f756368696e6700010530543a3a4163636f756e74496438566f756368696e6753746174757300040004e4204d656d626572732063757272656e746c7920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e1c5061796f75747301010530543a3a4163636f756e744964985665633c28543a3a426c6f636b4e756d6265722c2042616c616e63654f663c542c20493e293e000400044d012050656e64696e67207061796f7574733b206f72646572656420627920626c6f636b206e756d6265722c20776974682074686520616d6f756e7420746861742073686f756c642062652070616964206f75742e1c537472696b657301010530543a3a4163636f756e7449642c537472696b65436f756e7400100000000004dc20546865206f6e676f696e67206e756d626572206f66206c6f73696e6720766f746573206361737420627920746865206d656d6265722e14566f74657300020530543a3a4163636f756e74496430543a3a4163636f756e74496410566f746505040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e20446566656e646572000030543a3a4163636f756e744964040004c42054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642e34446566656e646572566f74657300010530543a3a4163636f756e74496410566f7465000400046020566f74657320666f722074686520646566656e6465722e284d61784d656d6265727301000c753332100000000004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e01300c626964041476616c75653c42616c616e63654f663c542c20493e84e020412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e003901205061796d656e743a206043616e6469646174654465706f736974602077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564f0207768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a5901202d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e002c2023203c7765696768743e5501204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520726573657276652944202d2053746f726167652052656164733aec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f284329c820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d2948202d2053746f72616765205772697465733a810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3a2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6820092d204f6e65206576656e7420666f72206e6577206269642efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e14756e626964040c706f730c7533324cd82041206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792e010120427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f728420746865792077696c6c20756e766f75636820746865697220766f75636865722e00fc205061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e003020506172616d65746572733a1901202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2077616e747320746f20756e6269642e002c2023203c7765696768743eb0204b65793a204220286c656e206f662062696473292c2058202862616c616e636520756e72657365727665290d01202d204f6e652073746f72616765207265616420616e6420777269746520746f20726574726965766520616e64207570646174652074686520626964732e204f2842294501202d20456974686572206f6e6520756e726573657276652062616c616e636520616374696f6e204f285829206f72206f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2842202b205829302023203c2f7765696768743e14766f7563680c0c77686f30543a3a4163636f756e7449641476616c75653c42616c616e63654f663c542c20493e0c7469703c42616c616e63654f663c542c20493eb045012041732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e005501205468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f725d01206f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062794101207468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e005901204173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c51012062652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733acc202d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e5101202d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d65642061206d656d62657220696e2074686520736f63696574792e4901202d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f15012074686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e002c2023203c7765696768743e0101204b65793a204220286c656e206f662062696473292c204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d626572732944202d2053746f726167652052656164733ac820092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c206d656d626572732e204f284d29090120092d204f6e652073746f72616765207265616420746f20636865636b206d656d626572206973206e6f7420616c726561647920766f756368696e672e204f283129ec20092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e6465642063616e6469646174652e204f283129e020092d204f6e652073746f72616765207265616420746f20636865636b20666f722073757370656e646564206d656d6265722e204f283129dc20092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e7420626964732e204f284229f420092d204f6e652073746f72616765207265616420746f20726574726965766520616c6c2063757272656e742063616e646964617465732e204f28432948202d2053746f72616765205772697465733a0d0120092d204f6e652073746f7261676520777269746520746f20696e7365727420766f756368696e672073746174757320746f20746865206d656d6265722e204f283129810120092d204f6e652073746f72616765206d757461746520746f206164642061206e65772062696420746f2074686520766563746f72204f2842292028544f444f3a20706f737369626c65206f7074696d697a6174696f6e20772f207265616429010120092d20557020746f206f6e652073746f726167652072656d6f76616c206966206269642e6c656e2829203e204d41585f4249445f434f554e542e204f2831295c202d204e6f7461626c6520436f6d7075746174696f6e3ac020092d204f286c6f67204d292073656172636820746f20636865636b2073656e6465722069732061206d656d6265722e2d0120092d204f2842202b2043202b206c6f67204d292073656172636820746f20636865636b2075736572206973206e6f7420616c726561647920612070617274206f6620736f63696574792ec420092d204f286c6f672042292073656172636820746f20696e7365727420746865206e65772062696420736f727465642e78202d2045787465726e616c204d6f64756c65204f7065726174696f6e733a9c20092d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e204f285829210120092d20557020746f206f6e652062616c616e636520756e72657365727665206f7065726174696f6e20696620626964732e6c656e2829203e204d41585f4249445f434f554e542e28202d204576656e74733a6020092d204f6e65206576656e7420666f7220766f7563682efc20092d20557020746f206f6e65206576656e7420666f72204175746f556e626964206966206269642e6c656e2829203e204d41585f4249445f434f554e542e00c420546f74616c20436f6d706c65786974793a204f284d202b2042202b2043202b206c6f674d202b206c6f6742202b205829302023203c2f7765696768743e1c756e766f756368040c706f730c753332442d01204173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f7563686564207573657220697394206f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e003020506172616d65746572733a2d01202d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e002c2023203c7765696768743e54204b65793a204220286c656e206f662062696473290901202d204f6e652073746f726167652072656164204f28312920746f20636865636b20746865207369676e6572206973206120766f756368696e67206d656d6265722eec202d204f6e652073746f72616765206d757461746520746f20726574726965766520616e64207570646174652074686520626964732e204f28422994202d204f6e6520766f756368696e672073746f726167652072656d6f76616c2e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f284229302023203c2f7765696768743e10766f7465082463616e6469646174658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651c617070726f766510626f6f6c4c882041732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733a0d01202d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2ef4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265d82020202020202020202020202020617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743ebc204b65793a204320286c656e206f662063616e64696461746573292c204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722e58202d204f6e65206163636f756e74206c6f6f6b75702e2d01202d204f6e652073746f726167652072656164204f28432920616e64204f2843292073656172636820746f20636865636b2074686174207573657220697320612063616e6469646174652ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204329302023203c2f7765696768743e34646566656e6465725f766f7465041c617070726f766510626f6f6c408c2041732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e003020506172616d65746572733af4202d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a420617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e002c2023203c7765696768743e68202d204b65793a204d20286c656e206f66206d656d62657273291d01202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b20757365722069732061206d656d6265722ebc202d204f6e652073746f7261676520777269746520746f2061646420766f746520746f20766f7465732e204f28312934202d204f6e65206576656e742e007820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d29302023203c2f7765696768743e187061796f757400504501205472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e006901204e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e002101205061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d61747572656478207061796f757420746f20746865697220667265652062616c616e63652e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d62657220776974684c207061796f7574732072656d61696e696e672e002c2023203c7765696768743e1d01204b65793a204d20286c656e206f66206d656d62657273292c205020286e756d626572206f66207061796f75747320666f72206120706172746963756c6172206d656d626572292501202d204f6e652073746f726167652072656164204f284d2920616e64204f286c6f67204d292073656172636820746f20636865636b207369676e65722069732061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28502920746f2067657420616c6c207061796f75747320666f722061206d656d6265722ee4202d204f6e652073746f726167652072656164204f28312920746f20676574207468652063757272656e7420626c6f636b206e756d6265722e8c202d204f6e652063757272656e6379207472616e736665722063616c6c2e204f2858291101202d204f6e652073746f72616765207772697465206f722072656d6f76616c20746f2075706461746520746865206d656d6265722773207061796f7574732e204f285029009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2050202b205829302023203c2f7765696768743e14666f756e640c1c666f756e64657230543a3a4163636f756e7449642c6d61785f6d656d626572730c7533321472756c65731c5665633c75383e4c4c20466f756e642074686520736f63696574792e00f0205468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f72207468651901206d6f64756c6520746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e003020506172616d65746572733a1901202d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e1501202d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792ef4202d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e002c2023203c7765696768743ee0202d2054776f2073746f72616765206d75746174657320746f207365742060486561646020616e642060466f756e646572602e204f283129f4202d204f6e652073746f7261676520777269746520746f2061646420746865206669727374206d656d62657220746f20736f63696574792e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e1c756e666f756e6400348c20416e6e756c2074686520666f756e64696e67206f662074686520736f63696574792e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f74685901207468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e6520206d656d6265722e002c2023203c7765696768743e68202d2054776f2073746f72616765207265616473204f2831292e78202d20466f75722073746f726167652072656d6f76616c73204f2831292e34202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e586a756467655f73757370656e6465645f6d656d626572080c77686f30543a3a4163636f756e7449641c666f726769766510626f6f6c6c2d0120416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e00590120496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67cc20616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e00490120496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e670101207468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ab4202d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e3501202d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e2501202020202020202020202020202020666f726769766573202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e002c2023203c7765696768743ea4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d6265727329f8202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e646564206d656d6265722e204f2831297101202d20557020746f206f6e652073746f72616765207772697465204f284d292077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d626572206261636b20746f20736f63696574792ef8202d20557020746f20332073746f726167652072656d6f76616c73204f28312920746f20636c65616e20757020612072656d6f766564206d656d6265722e4501202d20557020746f206f6e652073746f72616765207772697465204f2842292077697468204f2842292073656172636820746f2072656d6f766520766f7563686564206269642066726f6d20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e70202d204f6e652073746f726167652072656d6f76616c2e204f2831297c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e008820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b204229302023203c2f7765696768743e646a756467655f73757370656e6465645f63616e646964617465080c77686f30543a3a4163636f756e744964246a756467656d656e74244a756467656d656e74a0350120416c6c6f772073757370656e646564206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e6465642063616e6469646174652e005d0120496620746865206a756467656d656e742069732060417070726f7665602c20776520616464207468656d20746f20736f63696574792061732061206d656d62657220776974682074686520617070726f70726961746574207061796d656e7420666f72206a6f696e696e6720736f63696574792e00550120496620746865206a756467656d656e74206973206052656a656374602c2077652065697468657220736c61736820746865206465706f736974206f6620746865206269642c20676976696e67206974206261636b110120746f2074686520736f63696574792074726561737572792c206f722077652062616e2074686520766f75636865722066726f6d20766f756368696e6720616761696e2e005d0120496620746865206a756467656d656e7420697320605265626964602c20776520707574207468652063616e646964617465206261636b20696e207468652062696420706f6f6c20616e64206c6574207468656d20676f94207468726f7567682074686520696e64756374696f6e2070726f6365737320616761696e2e00410120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f53757370656e73696f6e4a756467656d656e744f726967696e5f2e003020506172616d65746572733ac0202d206077686f60202d205468652073757370656e6465642063616e64696461746520746f206265206a75646765642ec4202d20606a756467656d656e7460202d2060417070726f7665602c206052656a656374602c206f7220605265626964602e002c2023203c7765696768743ef4204b65793a204220286c656e206f662062696473292c204d20286c656e206f66206d656d62657273292c2058202862616c616e636520616374696f6e29f0202d204f6e652073746f72616765207265616420746f20636865636b206077686f6020697320612073757370656e6465642063616e6469646174652ec8202d204f6e652073746f726167652072656d6f76616c206f66207468652073757370656e6465642063616e6469646174652e40202d20417070726f7665204c6f676963150120092d204f6e652073746f72616765207265616420746f206765742074686520617661696c61626c6520706f7420746f2070617920757365727320776974682e204f283129dc20092d204f6e652073746f7261676520777269746520746f207570646174652074686520617661696c61626c6520706f742e204f283129e820092d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f283129b420092d204f6e652073746f72616765207265616420746f2067657420616c6c206d656d626572732e204f284d29a020092d20557020746f206f6e6520756e726573657276652063757272656e637920616374696f6e2eb020092d20557020746f2074776f206e65772073746f726167652077726974657320746f207061796f7574732e4d0120092d20557020746f206f6e652073746f726167652077726974652077697468204f286c6f67204d292062696e6172792073656172636820746f206164642061206d656d62657220746f20736f63696574792e3c202d2052656a656374204c6f676963dc20092d20557020746f206f6e6520726570617472696174652072657365727665642063757272656e637920616374696f6e2e204f2858292d0120092d20557020746f206f6e652073746f7261676520777269746520746f2062616e2074686520766f756368696e67206d656d6265722066726f6d20766f756368696e6720616761696e2e38202d205265626964204c6f676963410120092d2053746f72616765206d75746174652077697468204f286c6f672042292062696e6172792073656172636820746f20706c616365207468652075736572206261636b20696e746f20626964732ed4202d20557020746f206f6e65206164646974696f6e616c206576656e7420696620756e766f7563682074616b657320706c6163652e5c202d204f6e652073746f726167652072656d6f76616c2e7c202d204f6e65206576656e7420666f7220746865206a756467656d656e742e009820546f74616c20436f6d706c65786974793a204f284d202b206c6f674d202b2042202b205829302023203c2f7765696768743e3c7365745f6d61785f6d656d62657273040c6d61780c753332381d0120416c6c6f777320726f6f74206f726967696e20746f206368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f63696574792eb4204d6178206d656d6265727368697020636f756e74206d7573742062652067726561746572207468616e20312e00dc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d205f524f4f545f2e003020506172616d65746572733ae4202d20606d617860202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e002c2023203c7765696768743eb0202d204f6e652073746f7261676520777269746520746f2075706461746520746865206d61782e204f28312934202d204f6e65206576656e742e005c20546f74616c20436f6d706c65786974793a204f283129302023203c2f7765696768743e01401c466f756e64656404244163636f756e74496404e82054686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e205c5b666f756e6465725c5d0c42696408244163636f756e7449641c42616c616e63650861012041206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f666665729c20697320746865207365636f6e642e205c5b63616e6469646174655f69642c206f666665725c5d14566f7563680c244163636f756e7449641c42616c616e6365244163636f756e7449640861012041206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e647901207468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e205c5b63616e6469646174655f69642c206f666665722c20766f756368696e675c5d244175746f556e62696404244163636f756e7449640419012041205c5b63616e6469646174655c5d207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404244163636f756e74496404c02041205c5b63616e6469646174655c5d207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804244163636f756e7449640409012041205c5b63616e6469646174655c5d207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408244163636f756e744964385665633c4163636f756e7449643e08590120412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c20746865d420626174636820696e2066756c6c20697320746865207365636f6e642e205c5b7072696d6172792c2063616e646964617465735c5d6053757370656e6465644d656d6265724a756467656d656e7408244163636f756e74496410626f6f6c04d020412073757370656e646564206d656d62657220686173206265656e206a75646765642e205c5b77686f2c206a75646765645c5d4843616e64696461746553757370656e64656404244163636f756e744964048c2041205c5b63616e6469646174655c5d20686173206265656e2073757370656e6465643c4d656d62657253757370656e64656404244163636f756e74496404802041205c5b6d656d6265725c5d20686173206265656e2073757370656e646564284368616c6c656e67656404244163636f756e74496404842041205c5b6d656d6265725c5d20686173206265656e206368616c6c656e67656410566f74650c244163636f756e744964244163636f756e74496410626f6f6c04c8204120766f746520686173206265656e20706c61636564205c5b63616e6469646174652c20766f7465722c20766f74655c5d30446566656e646572566f746508244163636f756e74496410626f6f6c04f8204120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572205c5b766f7465722c20766f74655c5d344e65774d61784d656d62657273040c75333204a02041206e6577205c5b6d61785c5d206d656d62657220636f756e7420686173206265656e2073657424556e666f756e64656404244163636f756e744964048820536f636965747920697320756e666f756e6465642e205c5b666f756e6465725c5d1c4465706f736974041c42616c616e636504f820536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e205c5b76616c75655c5d204043616e6469646174654465706f7369743c42616c616e63654f663c542c20493e40084cd2c207000000000000000000000004fc20546865206d696e696d756d20616d6f756e74206f662061206465706f73697420726571756972656420666f7220612062696420746f206265206d6164652e4857726f6e6753696465446564756374696f6e3c42616c616e63654f663c542c20493e4068425d8d0100000000000000000000000855012054686520616d6f756e74206f662074686520756e70616964207265776172642074686174206765747320646564756374656420696e207468652063617365207468617420656974686572206120736b6570746963c020646f65736e277420766f7465206f7220736f6d656f6e6520766f74657320696e207468652077726f6e67207761792e284d6178537472696b65730c753332100a00000008750120546865206e756d626572206f662074696d65732061206d656d626572206d617920766f7465207468652077726f6e672077617920286f72206e6f7420617420616c6c2c207768656e207468657920617265206120736b65707469632978206265666f72652074686579206265636f6d652073757370656e6465642e2c506572696f645370656e643c42616c616e63654f663c542c20493e4090d9120d840100000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e38526f746174696f6e506572696f6438543a3a426c6f636b4e756d62657210c089010004110120546865206e756d626572206f6620626c6f636b73206265747765656e2063616e6469646174652f6d656d6265727368697020726f746174696f6e20706572696f64732e3c4368616c6c656e6765506572696f6438543a3a426c6f636b4e756d62657210c089010004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e2050616c6c657449642050616c6c657449642070792f736f63696504682054686520736f636965746965732773206d6f64756c65206964484d617843616e646964617465496e74616b650c75333210010000000490204d6178696d756d2063616e64696461746520696e74616b652070657220726f756e642e482c426164506f736974696f6e049020416e20696e636f727265637420706f736974696f6e207761732070726f76696465642e244e6f744d656d62657204582055736572206973206e6f742061206d656d6265722e34416c72656164794d656d6265720468205573657220697320616c72656164792061206d656d6265722e2453757370656e646564044c20557365722069732073757370656e6465642e304e6f7453757370656e646564045c2055736572206973206e6f742073757370656e6465642e204e6f5061796f7574044c204e6f7468696e6720746f207061796f75742e38416c7265616479466f756e646564046420536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74049c204e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e6704e8204d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e2c4e6f74566f756368696e670460204d656d626572206973206e6f7420766f756368696e672e104865616404942043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572046c2043616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964047420557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e6469646174650474205573657220697320616c726561647920612063616e6469646174652e304e6f7443616e64696461746504642055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273048420546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572047c205468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640470205468652063616c6c6572206973206e6f742074686520686561642e1a205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010530543a3a4163636f756e744964e85265636f76657279436f6e6669673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e0004000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300020530543a3a4163636f756e74496430543a3a4163636f756e744964e84163746976655265636f766572793c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e050400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010230543a3a4163636f756e74496430543a3a4163636f756e7449640004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01243061735f7265636f7665726564081c6163636f756e7430543a3a4163636f756e7449641063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34a42053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a2501202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662e0101202d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e002c2023203c7765696768743e94202d2054686520776569676874206f6620746865206063616c6c60202b2031302c3030302e0901202d204f6e652073746f72616765206c6f6f6b757020746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e347365745f7265636f766572656408106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e744964341d0120416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e747420666f722061206c6f7374206163636f756e74206469726563746c792e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e003020506172616d65746572733ab8202d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e1d01202d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e002c2023203c7765696768743e64202d204f6e652073746f72616765207772697465204f28312930202d204f6e65206576656e74302023203c2f7765696768743e3c6372656174655f7265636f766572790c1c667269656e6473445665633c543a3a4163636f756e7449643e247468726573686f6c640c7531363064656c61795f706572696f6438543a3a426c6f636b4e756d6265726c5d01204372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e003101205061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e636549012077696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564bc20696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a4d01202d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265ac2020206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e5d01202d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f72652074686559012020206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f662c202020667269656e64732e5101202d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d42020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e002c2023203c7765696768743e68202d204b65793a204620286c656e206f6620667269656e6473292d01202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973206e6f7420616c7265616479207265636f76657261626c652e204f2831292eec202d204120636865636b20746861742074686520667269656e6473206c69737420697320736f7274656420616e6420756e697175652e204f2846299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f2858299c202d204f6e652073746f726167652077726974652e204f2831292e20436f646563204f2846292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e44696e6974696174655f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496458ec20496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e001d01205061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e67207468652501207265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b820747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a4501202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265d02020207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743ef8202d204f6e652073746f72616765207265616420746f20636865636b2074686174206163636f756e74206973207265636f76657261626c652e204f2846295101202d204f6e652073746f72616765207265616420746f20636865636b20746861742074686973207265636f766572792070726f63657373206861736e277420616c726561647920737461727465642e204f2831299c202d204f6e652063757272656e63792072657365727665206f7065726174696f6e2e204f285829e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831296c202d204f6e652073746f726167652077726974652e204f2831292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e38766f7563685f7265636f7665727908106c6f737430543a3a4163636f756e7449641c7265736375657230543a3a4163636f756e74496460290120416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f76657279682070726f6365737320666f722074686174206163636f756e742e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e64227420666f7220746865207265636f76657261626c65206163636f756e742e003020506172616d65746572733ad4202d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e5d01202d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e0025012054686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f76657279242070726f636573732e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629ec202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c6572206973206120667269656e642e204f286c6f6746291d01202d204f6e652062696e6172792073656172636820746f20636f6e6669726d2063616c6c657220686173206e6f7420616c726561647920766f75636865642e204f286c6f6756299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e00a420546f74616c20436f6d706c65786974793a204f2846202b206c6f6746202b2056202b206c6f675629302023203c2f7765696768743e38636c61696d5f7265636f76657279041c6163636f756e7430543a3a4163636f756e74496450f420416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061202272657363756572221d012077686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c6563746564310120607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e003020506172616d65746572733a6101202d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f76657265642062791c202020796f752e002c2023203c7765696768743efc204b65793a204620286c656e206f6620667269656e647320696e20636f6e666967292c205620286c656e206f6620766f756368696e6720667269656e6473291d01202d204f6e652073746f72616765207265616420746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846292101202d204f6e652073746f72616765207265616420746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629e4202d204f6e652073746f72616765207265616420746f20676574207468652063757272656e7420626c6f636b206e756d6265722e204f2831299c202d204f6e652073746f726167652077726974652e204f2831292c20436f646563204f2856292e34202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205629302023203c2f7765696768743e38636c6f73655f7265636f76657279041c7265736375657230543a3a4163636f756e7449645015012041732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f76657279682070726f6365737320666f7220796f7572206163636f756e742e002101205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f820746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e00050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061f0207265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e003020506172616d65746572733a1101202d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e002c2023203c7765696768743e84204b65793a205620286c656e206f6620766f756368696e6720667269656e6473293d01202d204f6e652073746f7261676520726561642f72656d6f766520746f206765742074686520616374697665207265636f766572792070726f636573732e204f2831292c20436f646563204f285629c0202d204f6e652062616c616e63652063616c6c20746f20726570617472696174652072657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2856202b205829302023203c2f7765696768743e3c72656d6f76655f7265636f7665727900545d012052656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e001501204e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c206163746976650901207265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e002501205061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e7265736572766598207468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef4202860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732900050120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e4207265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e002c2023203c7765696768743e60204b65793a204620286c656e206f6620667269656e6473292901202d204f6e652073746f72616765207265616420746f206765742074686520707265666978206974657261746f7220666f7220616374697665207265636f7665726965732e204f2831293901202d204f6e652073746f7261676520726561642f72656d6f766520746f2067657420746865207265636f7665727920636f6e66696775726174696f6e2e204f2831292c20436f646563204f2846299c202d204f6e652062616c616e63652063616c6c20746f20756e72657365727665642e204f28582934202d204f6e65206576656e742e006c20546f74616c20436f6d706c65786974793a204f2846202b205829302023203c2f7765696768743e4063616e63656c5f7265636f7665726564041c6163636f756e7430543a3a4163636f756e7449642ce02043616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e00150120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe82062652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e003020506172616d65746572733a1901202d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e002c2023203c7765696768743e1101202d204f6e652073746f72616765206d75746174696f6e20746f20636865636b206163636f756e74206973207265636f7665726564206279206077686f602e204f283129302023203c2f7765696768743e01183c5265636f766572794372656174656404244163636f756e74496404dc2041207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e205c5b6163636f756e745c5d2e445265636f76657279496e6974696174656408244163636f756e744964244163636f756e744964082d012041207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f76657279566f75636865640c244163636f756e744964244163636f756e744964244163636f756e744964085d012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e68205c5b6c6f73742c20726573637565722c2073656e6465725c5d385265636f76657279436c6f73656408244163636f756e744964244163636f756e7449640821012041207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e48205c5b6c6f73742c20726573637565725c5d404163636f756e745265636f766572656408244163636f756e744964244163636f756e744964080501204c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e48205c5b6c6f73742c20726573637565725c5d3c5265636f7665727952656d6f76656404244163636f756e74496404e02041207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e205c5b6163636f756e745c5d2e1044436f6e6669674465706f736974426173653042616c616e63654f663c543e40042669e103000000000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f723042616c616e63654f663c543e409a505763000000000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e64730c753136080900040d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e3c5265636f766572794465706f7369743042616c616e63654f663c543e40042669e10300000000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e40284e6f74416c6c6f77656404f42055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640490205468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e647304d420467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e647304ac20467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f7274656404cc20467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c6504a02054686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c6504b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c72656164795374617274656404e02041207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f745374617274656404d02041207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e6404ac2054686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64041d012054686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f756368656404c0205468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c6404ec20546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c41637469766504010120546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f787904b02054686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465047c20536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e1b1c56657374696e67011c56657374696e67081c56657374696e6700010230543a3a4163636f756e7449644101426f756e6465645665633c56657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e2c0a4d617856657374696e675363686564756c65734765743c543e3e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e011410766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e000101204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e486420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e000101204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e3c6d657267655f7363686564756c6573083c7363686564756c65315f696e6465780c7533323c7363686564756c65325f696e6465780c753332546101204d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f766572590120746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c72656164792073746172746564207468655d012063757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c6561012069732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c3020756e6d6f6469666965642e00fc204e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e4501204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e6501204e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c20626520637265617465646820616e6420626f74682077696c6c2062652072656d6f7665642e0070204d6572676564207363686564756c6520617474726962757465733a3901202d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c4c20202063757272656e745f626c6f636b29602e2501202d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e5d01202d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00ec202d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652ef0202d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c55012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e2901205468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e74496404a020416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e08444d696e5665737465645472616e736665723042616c616e63654f663c543e4034a1aec600000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c65730c753332101c0000000014284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c657308290120546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e64207468757355012063616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e647304d420416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d73041101204661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e1c245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743ec82053616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d08344d6178696d756d576569676874185765696768742000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b0c7533321032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e10404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e1d1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e744964a50128426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850726f786965733e2c2042616c616e63654f663c543e2c29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449649d0128426f756e6465645665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850656e64696e673e2c2042616c616e63654f663c543e2c290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e01103450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c7531360cec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0d0120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c5c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f7879416464656410244163636f756e744964244163636f756e7449642450726f7879547970652c426c6f636b4e756d62657204fc20412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d184050726f78794465706f736974426173653042616c616e63654f663c543e40b07d3b870f000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e4034738e0600000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c753332102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e40b07d3b870f000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4068e61c0d00000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1e204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e5101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741d0120202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f776569676874185765696768748c590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e5101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741d0120202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e40f07520970f000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f723042616c616e63654f663c543e4080965b060000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730c75313608640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1f20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e4055a0fc0100000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4034a1aec600000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721000e10000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4068425d8d0100000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e2310546970730110546970730810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e61012020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062793101202020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f6648202020202060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e60b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e67746831012020206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e206279610120202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368406020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e67746855012020206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c4202020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d144c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f736974506572427974653042616c616e63654f663c543e4055a0fc010000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e740414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4034a1aec600000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e2468456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e64657801000c753332100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100585375626d697373696f6e496e64696365734f663c543e0400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101050c753332545369676e65645375626d697373696f6e4f663c543e00310200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000034456c656374696f6e53636f72650400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01103c7375626d69745f756e7369676e656408307261775f736f6c7574696f6e7c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f726504406d617962655f6e6578745f73636f7265544f7074696f6e3c456c656374696f6e53636f72653e14b4205365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00dc204469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f4205468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c740420737570706f72747358537570706f7274733c543a3a4163636f756e7449643e205d0120536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748c2063616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e00490120546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e0065012054686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e79550120666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f6c206d656d6f72792f77656967687420636f6e73747261696e73292e187375626d697408307261775f736f6c7574696f6e7c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e586e756d5f7369676e65645f7375626d697373696f6e730c75333234a0205375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d420546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e0061012054686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e6454206f6620746865207369676e65642070686173652e0061012041206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e1901206d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002c2023203c7765696768743eb42051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011838536f6c7574696f6e53746f726564083c456c656374696f6e436f6d7075746510626f6f6c18b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e005501205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408244163636f756e7449641c42616c616e636504290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408244163636f756e7449641c42616c616e636504250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e3434556e7369676e6564506861736538543a3a426c6f636b4e756d62657210960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210960000000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617438543a3a426c6f636b4e756d626572100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974794c5472616e73616374696f6e5072696f726974792065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768741857656967687420c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e730c75333210100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768741857656967687420c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e6564526577617264426173653042616c616e63654f663c543e4000e87648170000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173653042616c616e63654f663c543e402030490b1f000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974653042616c616e63654f663c543e40277f000000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f7369745765696768743042616c616e63654f663c543e400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e384d696e65724d61784c656e6774680c753332100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e2c6850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c044d0120546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f736974049820546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e65737304a4205769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d75636857656967687404bc20546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261049c204f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d6574616461746104ac20536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e64657804d4206053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564049c205468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e251047696c74011047696c74102c5175657565546f74616c730100605665633c287533322c2042616c616e63654f663c543e293e04001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101020c753332a05665633c47696c744269643c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e0004000439012054686520717565756573206f66206269647320726561647920746f206265636f6d652067696c74732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e2c416374697665546f74616c01007841637469766547696c7473546f74616c3c42616c616e63654f663c543e3e9000000000000000000000000000000000000000000000000000000000000000000000000004d020496e666f726d6174696f6e2072656c6174696e6720746f207468652067696c74732063757272656e746c79206163746976652e184163746976650001022c416374697665496e646578a90141637469766547696c743c42616c616e63654f663c543e2c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c3c0a54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a426c6f636b4e756d6265722c3e000400042101205468652063757272656e746c79206163746976652067696c74732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e011024706c6163655f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c753332349420506c61636520612062696420666f7220612067696c7420746f206265206973737565642e004101204f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e003d01202d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642e20496620746865206269642069734101207375636365737366756c6c7920656c65766174656420696e746f20616e206973737565642067696c742c207468656e2074686573652066756e64732077696c6c20636f6e74696e756520746f206265fc20726573657276656420756e74696c207468652067696c7420657870697265732e204d757374206265206174206c6561737420604d696e467265657a65602e5901202d20606475726174696f6e603a20546865206e756d626572206f6620706572696f647320666f72207768696368207468652066756e64732077696c6c206265206c6f636b6564206966207468652067696c742069735d01206973737565642e2049742077696c6c20657870697265206f6e6c79206166746572207468697320706572696f642068617320656c61707365642061667465722074686520706f696e74206f662069737375616e63652ed8204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e003820436f6d706c657869746965733ab0202d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f6269640818616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e206475726174696f6e0c7533321c84205265747261637420612070726576696f75736c7920706c61636564206269642e006101204f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d6163746976652062696470206f662060616d6f756e746020666f7220606475726174696f6e602e00b0202d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ec0202d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e287365745f746172676574041874617267657450436f6d706163743c5065727175696e74696c6c3e189420536574207461726765742070726f706f7274696f6e206f662067696c742d66756e64732e0078204f726967696e206d757374206265206041646d696e4f726967696e602e005d01202d2060746172676574603a20546865207461726765742070726f706f7274696f6e206f6620656666656374697665206973737565642066756e647320746861742073686f756c6420626520756e6465722067696c74734420617420616e79206f6e652074696d652e10746861770414696e64657850436f6d706163743c416374697665496e6465783e1c59012052656d6f766520616e206163746976652062757420657870697265642067696c742e2052657365727665642066756e647320756e6465722067696c742061726520667265656420616e642062616c616e63652069735d012061646a757374656420746f20656e737572652074686174207468652066756e64732067726f77206f7220736872696e6b20746f206d61696e7461696e20746865206571756976616c656e742070726f706f7274696f6e84206f662065666665637469766520746f74616c206973737565642066756e64732e006101204f726967696e206d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652067696c74206f662074686520676976656e20696e6465782e00bc202d2060696e646578603a2054686520696e646578206f66207468652067696c7420746f206265207468617765642e011024426964506c616365640c244163636f756e7449643042616c616e63654f663c543e0c753332087c20412062696420776173207375636365737366756c6c7920706c616365642e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d304269645265747261637465640c244163636f756e7449643042616c616e63654f663c543e0c75333208090120412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e6720616363657074656420617320612067696c74292e70205c5b2077686f2c20616d6f756e742c206475726174696f6e205c5d2847696c74497373756564102c416374697665496e64657838543a3a426c6f636b4e756d626572244163636f756e7449643042616c616e63654f663c543e0831012041206269642077617320616363657074656420617320612067696c742e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e84205c5b20696e6465782c206578706972792c2077686f2c20616d6f756e74205c5d2847696c74546861776564102c416374697665496e646578244163636f756e7449643042616c616e63654f663c543e3042616c616e63654f663c543e088420416e20657870697265642067696c7420686173206265656e207468617765642ed4205c5b20696e6465782c2077686f2c206f726967696e616c5f616d6f756e742c206164646974696f6e616c5f616d6f756e74205c5d203c49676e6f72656449737375616e63653042616c616e63654f663c543e4000000000000000000000000000000000086501205468652069737375616e636520746f2069676e6f72652e205468697320697320737562747261637465642066726f6d20746865206043757272656e63796027732060746f74616c5f69737375616e63656020746f20676574d8207468652069737375616e636520627920776869636820776520696e666c617465206f72206465666c617465207468652067696c742e285175657565436f756e740c753332102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e0c75333210e803000004f0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e304669666f51756575654c656e0c75333210fa0000000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e18506572696f6438543a3a426c6f636b4e756d626572108097060008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e244d696e467265657a653042616c616e63654f663c543e4050f8369c4d000000000000000000000018550120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d6179206265206f66666572656420746f20667265657a6520666f7220612067696c742e204e6f746520746861742074686973510120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d61792062652066726f7a656e20696e20612067696c742073696e63652067696c7473206d617920626519012073706c697420757020696e206f7264657220746f207361746973667920746865206465736972656420616d6f756e74206f662066756e647320756e6465722067696c74732e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e30496e74616b65506572696f6438543a3a426c6f636b4e756d626572103200000014590120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f206973737565206d6f72652067696c747320696e20616e206566666f727420746f9c2067657420746f207468652074617267657420616d6f756e7420746f2062652066726f7a656e2e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e344d6178496e74616b65426964730c75333210640000000c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e206265207475726e656420696e746f206973737565642067696c7473206561636820626c6f636b2e2041206c617267657261012076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c64207468657265206265206120676c7574206f66b4206269647320746f206d616b6520696e746f2067696c747320746f20726561636820746865207461726765742e20404475726174696f6e546f6f536d616c6c04a820546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f42696704f820546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c04e02054686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f770845012054686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e8c207468726f756768207265706c6163696e6720616e206578697374696e67206269642e1c556e6b6e6f776e045c2047696c7420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572046c204e6f7420746865206f776e6572206f66207468652067696c742e284e6f744578706972656404742047696c74206e6f74207965742061742065787069727920646174652e204e6f74466f756e6404ac2054686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e264050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0830416374697665436f6e666967010084486f7374436f6e66696775726174696f6e3c543a3a426c6f636b4e756d6265723ed9020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c8000000010000000000000000000000000000000000000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3450656e64696e67436f6e6669670001053053657373696f6e496e64657884486f7374436f6e66696775726174696f6e3c543a3a426c6f636b4e756d6265723e00040004d42050656e64696e6720636f6e66696775726174696f6e2028696620616e792920666f7220746865206e6578742073657373696f6e2e01a0807365745f76616c69646174696f6e5f757067726164655f6672657175656e6379040c6e657738543a3a426c6f636b4e756d626572049820536574207468652076616c69646174696f6e2075706772616465206672657175656e63792e707365745f76616c69646174696f6e5f757067726164655f64656c6179040c6e657738543a3a426c6f636b4e756d626572048820536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f64040c6e657738543a3a426c6f636b4e756d62657204d4205365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a65040c6e65770c75333204e02053657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a65040c6e65770c75333204c82053657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a65040c6e65770c75333204982053657420746865206d6178206865616420646174612073697a6520666f722070617261732e507365745f706172617468726561645f636f726573040c6e65770c75333204b82053657420746865206e756d626572206f66207061726174687265616420657865637574696f6e20636f7265732e587365745f706172617468726561645f72657472696573040c6e65770c75333204dc2053657420746865206e756d626572206f66207265747269657320666f72206120706172746963756c617220706172617468726561642e707365745f67726f75705f726f746174696f6e5f6672657175656e6379040c6e657738543a3a426c6f636b4e756d62657204d420536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f636861696e5f617661696c6162696c6974795f706572696f64040c6e657738543a3a426c6f636b4e756d62657204b0205365742074686520617661696c6162696c69747920706572696f6420666f722070617261636861696e732e787365745f7468726561645f617661696c6162696c6974795f706572696f64040c6e657738543a3a426c6f636b4e756d62657204b4205365742074686520617661696c6162696c69747920706572696f6420666f722070617261746872656164732e607365745f7363686564756c696e675f6c6f6f6b6168656164040c6e65770c753332043d012053657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f7265040c6e65772c4f7074696f6e3c7533323e04f02053657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f7273040c6e65772c4f7074696f6e3c7533323e0411012053657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f64040c6e65773053657373696f6e496e6465780411012053657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f64040c6e657738543a3a426c6f636b4e756d62657204cc2053657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e687365745f646973707574655f6d61785f7370616d5f736c6f7473040c6e65770c75333204b82053657420746865206d6178696d756d206e756d626572206f662064697370757465207370616d20736c6f74732ea47365745f646973707574655f636f6e636c7573696f6e5f62795f74696d655f6f75745f706572696f64040c6e657738543a3a426c6f636b4e756d62657204bc2053657420746865206469737075746520636f6e636c7573696f6e2062792074696d65206f757420706572696f642e447365745f6e6f5f73686f775f736c6f7473040c6e65770c75333208fc2053657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e50204d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e63686573040c6e65770c75333204a0205365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f7769647468040c6e65770c75333204902053657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c73040c6e65770c75333204e02053657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c6573040c6e65770c753332045d012053657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e74040c6e65770c753332043101205365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a65040c6e65770c753332046901205365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a65040c6e65770c75333204a0205365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e707365745f756d705f736572766963655f746f74616c5f776569676874040c6e657718576569676874043d0120536574732074686520736f6674206c696d697420666f7220746865207068617365206f66206469737061746368696e6720646973706174636861626c6520757077617264206d657373616765732e6c7365745f6d61785f7570776172645f6d6573736167655f73697a65040c6e65770c753332043101205365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e646964617465040c6e65770c753332040901205365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04105f6e65770c753332043901205365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f736974040c6e65771c42616c616e636504550120536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f736974040c6e65771c42616c616e636508650120536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d5024206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f6361706163697479040c6e65770c753332042101205365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a65040c6e65770c753332045501205365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c73040c6e65770c753332044d01205365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742ea07365745f68726d705f6d61785f706172617468726561645f696e626f756e645f6368616e6e656c73040c6e65770c753332045101205365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a65040c6e65770c753332044101205365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c73040c6e65770c753332044901205365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2ea47365745f68726d705f6d61785f706172617468726561645f6f7574626f756e645f6368616e6e656c73040c6e65770c753332044d01205365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c732061207061726174687265616420697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e646964617465040c6e65770c753332043901205365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e0000043c496e76616c69644e657756616c756504e020546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e332c5061726173536861726564012c50617261735368617265640c4c43757272656e7453657373696f6e496e64657801003053657373696f6e496e6465781000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e646963657301004c5665633c56616c696461746f72496e6465783e040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100405665633c56616c696461746f7249643e0400088101205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732ef020546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e0100000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c64730001053856616c696461746f72496e646578a8417661696c6162696c6974794269746669656c645265636f72643c543a3a426c6f636b4e756d6265723e00040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c69747900010518506172614964d443616e64696461746550656e64696e67417661696c6162696c6974793c543a3a486173682c20543a3a426c6f636b4e756d6265723e00040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e7473000105185061726149645043616e646964617465436f6d6d69746d656e74730004000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e0100010c3c43616e6469646174654261636b6564106443616e646964617465526563656970743c543a3a486173683e20486561644461746124436f7265496e6465782847726f7570496e64657804c420412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c75646564106443616e646964617465526563656970743c543a3a486173683e20486561644461746124436f7265496e6465782847726f7570496e64657804cc20412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c6443616e646964617465526563656970743c543a3a486173683e20486561644461746124436f7265496e64657804c020412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d6000644457726f6e674269746669656c6453697a6504ac20417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e704269746669656c644475706c69636174654f72556e6f726465726564045101204d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e6473047c2056616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e6174757265044820496e76616c6964207369676e617475726550556e7363686564756c656443616e64696461746504b02043616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f726550617261467265650435012043616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e3457726f6e67436f6c6c61746f7204b02043616e64696461746520696e636c756465642077697468207468652077726f6e6720636f6c6c61746f722e4c5363686564756c65644f75744f664f726465720478205363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c6172676504a82048656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f646555706772616465046820436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c617267650464204f757470757420636f646520697320746f6f206c617267656c43616e6469646174654e6f74496e506172656e74436f6e7465787404842043616e646964617465206e6f7420696e20706172656e7420636f6e746578742e5c556e6f63637570696564426974496e4269746669656c6404250120546865206269746669656c6420636f6e7461696e732061206269742072656c6174696e6720746f20616e20756e61737369676e656420617661696c6162696c69747920636f72652e44496e76616c696447726f7570496e64657804a020496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e67049420496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e6704e820496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e6564046c20436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d6174636804c8205468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e34496e7465726e616c4572726f7204090120496e7465726e616c206572726f72206f6e6c792072657475726e6564207768656e20636f6d70696c6564207769746820646562756720617373657274696f6e732e80496e636f7272656374446f776e776172644d65737361676548616e646c696e6704dc2054686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d65737361676573042101204174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e67041501205468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d7004d8205468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f64654861736804e0205468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d61746368089d01205468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c2070617261206865616420696e207468653420636f6d6d69746d656e74732e353050617261496e686572656e74013050617261496e686572656e740420496e636c756465640000082829040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e010414656e7465720410646174618450617261636861696e73496e686572656e74446174613c543a3a4865616465723e04350120456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e00000c64546f6f4d616e79496e636c7573696f6e496e686572656e747304d020496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e74486561646572085901205468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f66302074686520706172656e742e5c43616e646964617465436f756c644265496e76616c6964047c20506f74656e7469616c6c7920696e76616c69642063616e6469646174652e3634506172615363686564756c65720134506172615363686564756c6572183c56616c696461746f7247726f7570730100605665633c5665633c56616c696461746f72496e6465783e3e0400186d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00810120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c65786572732e810120526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a207361666520757070657220626f756e642061742031306b2e3c50617261746872656164517565756501005050617261746872656164436c61696d51756575651400000000001019012041207175657565206f66207570636f6d696e6720636c61696d7320616e6420776869636820636f726520746865792073686f756c64206265206d6170706564206f6e746f2e00150120546865206e756d626572206f662071756575656420636c61696d7320697320626f756e6465642061742074686520607363686564756c696e675f6c6f6f6b6168656164605501206d756c7469706c69656420627920746865206e756d626572206f662070617261746872656164206d756c7469706c6578657220636f7265732e20526561736f6e61626c792c203130202a203530203d203530302e44417661696c6162696c697479436f7265730100645665633c4f7074696f6e3c436f72654f636375706965643e3e0400209d01204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c79206f636375706965642e2043616e206265c82074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e5050617261746872656164436c61696d496e64657801002c5665633c5061726149643e040010590120416e20696e646578207573656420746f20656e737572652074686174206f6e6c79206f6e6520636c61696d206f6e206120706172617468726561642065786973747320696e20746865207175657565206f72206973b42063757272656e746c79206265696e672068616e646c656420627920616e206f6363757069656420636f72652e007d0120426f756e64656420627920746865206e756d626572206f66207061726174687265616420636f72657320616e64207363686564756c696e67206c6f6f6b61686561642e20526561736f6e61626c792c203130202a203530203d203530302e4453657373696f6e5374617274426c6f636b010038543a3a426c6f636b4e756d626572100000000018a5012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e732068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e245363686564756c656401004c5665633c436f726541737369676e6d656e743e040018e02043757272656e746c79207363686564756c656420636f726573202d20667265652062757420757020746f206265206f636375706965642e004d0120426f756e64656420627920746865206e756d626572206f6620636f7265733a206f6e6520666f7220656163682070617261636861696e20616e642070617261746872656164206d756c7469706c657865722e00fd01205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f66206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f6020666f7220746865207570636f6d696e6720626c6f636b2e000000003714506172617301145061726173442850617261636861696e7301002c5665633c5061726149643e040004350120416c6c2070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e20506172617468726561647320617265206e6f7420696e636c756465642e38506172614c6966656379636c65730001051850617261496434506172614c6966656379636c6500040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001051850617261496420486561644461746100040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e3c43757272656e74436f646548617368000105185061726149644856616c69646174696f6e436f6465486173680004000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654861736800010560285061726149642c20543a3a426c6f636b4e756d626572294856616c69646174696f6e436f6465486173680004001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010518506172614964805061726150617374436f64654d6574613c543a3a426c6f636b4e756d6265723e000800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b420746f206b65657020697420617661696c61626c6520666f72207365636f6e6461727920636865636b6572732e3c50617374436f64655072756e696e670100745665633c285061726149642c20543a3a426c6f636b4e756d626572293e040018a1012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f646520776173207265706c616365642e8101204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465642068656967687420617420776869636820746865ec20636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e9101205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f64207374617274696e6749012066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f646555706772616465730001051850617261496438543a3a426c6f636b4e756d6265720004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f646548617368000105185061726149644856616c69646174696f6e436f6465486173680004000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c000105185061726149643855706772616465476f416865616400040024a10120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e7d0120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e672070617261636861696e65012063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c207468652076616c756558206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c0001051850617261496448557067726164655265737472696374696f6e00040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100745665633c285061726149642c20543a3a426c6f636b4e756d626572293e04000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e6755706772616465730100745665633c285061726149642c20543a3a426c6f636b4e756d626572293e040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e7351756575650101053053657373696f6e496e6465782c5665633c5061726149643e0004000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e65736973000105185061726149643c5061726147656e657369734172677300040004a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e38436f6465427948617368526566730101064856616c69646174696f6e436f6465486173680c75333200100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001064856616c69646174696f6e436f6465486173683856616c69646174696f6e436f646500040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e011458666f7263655f7365745f63757272656e745f636f646508107061726118506172614964206e65775f636f64653856616c69646174696f6e436f646504fc20536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408107061726118506172614964206e65775f6865616420486561644461746104050120536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c107061726118506172614964206e65775f636f64653856616c69646174696f6e436f64654c72656c61795f706172656e745f6e756d62657238543a3a426c6f636b4e756d626572043101205363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408107061726118506172614964206e65775f68656164204865616444617461042101204e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e041070617261185061726149640cfc2050757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef82057652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f207468653c20696e697469616c697a65722e2e2e01144843757272656e74436f646555706461746564041850617261496404d02043757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564041850617261496404d02043757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564041850617261496404e0204120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564041850617261496404c02041206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e51756575656408185061726149643053657373696f6e496e64657804f42041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f6964600014344e6f745265676973746572656404982050617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f61726404190120506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f61726404a020506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f745570677261646504a020506172612063616e6e6f7420626520757067726164656420746f20612070617261636861696e2e3c43616e6e6f74446f776e677261646504ac20506172612063616e6e6f7420626520646f776e67726164656420746f206120706172617468726561642e382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a6564000008282904002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e007d0120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e65206f667901207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c6520666f7280207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100685665633c427566666572656453657373696f6e4368616e67653e04001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e010434666f7263655f617070726f7665041475705f746f2c426c6f636b4e756d6265720c3d012049737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e550120626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a420636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e000000390c446d70010c446d700854446f776e776172644d65737361676551756575657301010518506172614964ac5665633c496e626f756e64446f776e776172644d6573736167653c543a3a426c6f636b4e756d6265723e3e00040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010105185061726149641048617368008000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e01000000003a0c556d70010c556d70104c52656c6179446973706174636851756575657301010518506172614964485665633c5570776172644d6573736167653e00040018710120546865206d657373616765732077616974696e6720746f2062652068616e646c6564206279207468652072656c61792d636861696e206f726967696e6174696e672066726f6d2061206365727461696e2070617261636861696e2e007901204e6f7465207468617420736f6d6520757077617264206d65737361676573206d696768742068617665206265656e20616c72656164792070726f6365737365642062792074686520696e636c7573696f6e206c6f6769632e20452e672e74206368616e6e656c206d616e6167656d656e74206d657373616765732e00a820546865206d65737361676573206172652070726f63657373656420696e204649464f206f726465722e5852656c61794469737061746368517565756553697a650101051850617261496428287533322c2075333229002000000000000000002c45012053697a65206f6620746865206469737061746368207175657565732e204361636865732073697a6573206f66207468652071756575657320696e206052656c617944697370617463685175657565602e00f0204669727374206974656d20696e20746865207475706c652069732074686520636f756e74206f66206d6573736167657320616e64207365636f6e64e02069732074686520746f74616c206c656e6774682028696e20627974657329206f6620746865206d657373616765207061796c6f6164732e007901204e6f74652074686174207468697320697320616e20617578696c69617279206d617070696e673a206974277320706f737369626c6520746f2074656c6c2074686520627974652073697a6520616e6420746865206e756d626572206f667901206d65737361676573206f6e6c79206c6f6f6b696e67206174206052656c61794469737061746368517565756573602e2054686973206d617070696e6720697320736570617261746520746f2061766f69642074686520636f7374206f663d01206c6f6164696e67207468652077686f6c65206d657373616765207175657565206966206f6e6c792074686520746f74616c2073697a6520616e6420636f756e74206172652072657175697265642e002c20496e76617269616e743a4501202d2054686520736574206f66206b6579732073686f756c642065786163746c79206d617463682074686520736574206f66206b657973206f66206052656c61794469737061746368517565756573602e344e65656473446973706174636801002c5665633c5061726149643e040014190120546865206f726465726564206c697374206f6620605061726149646073207468617420686176652061206052656c6179446973706174636851756575656020656e7472792e002c20496e76617269616e743a3501202d2054686520736574206f66206974656d732066726f6d207468697320766563746f722073686f756c642062652065786163746c792074686520736574206f6620746865206b65797320696ed82020206052656c617944697370617463685175657565736020616e64206052656c61794469737061746368517565756553697a65602e684e6578744469737061746368526f756e645374617274576974680000185061726149640400147d012054686973206973207468652070617261207468617420676574732077696c6c20676574206469737061746368656420666972737420647572696e6720746865206e6578742075707761726420646973706174636861626c652071756575654420657865637574696f6e20726f756e642e002c20496e76617269616e743a0d01202d2049662060536f6d65287061726129602c207468656e20607061726160206d7573742062652070726573656e7420696e20604e656564734469737061746368602e0100011434496e76616c6964466f726d617404244d6573736167654964087c20557077617264206d65737361676520697320696e76616c69642058434d2e24205c5b206964205c5d48556e737570706f7274656456657273696f6e04244d657373616765496408b820557077617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e24205c5b206964205c5d38457865637574656455707761726408244d65737361676549641c4f7574636f6d6508c020557077617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e48205c5b2069642c206f7574636f6d65205c5d3c5765696768744578686175737465640c244d6573736167654964185765696768741857656967687408f42054686520776569676874206c696d697420666f722068616e646c696e6720646f776e77617264206d657373616765732077617320726561636865642e78205c5b2069642c2072656d61696e696e672c207265717569726564205c5d585570776172644d6573736167657352656365697665640c185061726149640c7533320c75333208050120536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e60205c5b20706172612c20636f756e742c2073697a65205c5d00003b1048726d70011048726d70305c48726d704f70656e4368616e6e656c52657175657374730001053448726d704368616e6e656c49645848726d704f70656e4368616e6e656c5265717565737400040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c6973740100485665633c48726d704368616e6e656c49643e0400006c48726d704f70656e4368616e6e656c52657175657374436f756e74010105185061726149640c7533320010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e7d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d73207468617420686173206028582c205f2960e020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e74010105185061726149640c7533320010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c52657175657374730001053448726d704368616e6e656c49640828290004001c9101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e206368616e67652e0101205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c6973740100485665633c48726d704368616e6e656c49643e0400003848726d7057617465726d61726b730001051850617261496438543a3a426c6f636b4e756d6265720004000cb8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7901202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e3048726d704368616e6e656c730001053448726d704368616e6e656c49642c48726d704368616e6e656c0004000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e646578010105185061726149642c5665633c5061726149643e00040034590120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f736974652c20736964652e20492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a8d01202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028492c205029602e8901202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e206048726d704368616e6e656c73603c2020206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e646578010105185061726149642c5665633c5061726149643e000400004c48726d704368616e6e656c436f6e74656e74730101053448726d704368616e6e656c49649c5665633c496e626f756e6448726d704d6573736167653c543a3a426c6f636b4e756d6265723e3e00040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c4469676573747301010518506172614964885665633c28543a3a426c6f636b4e756d6265722c205665633c5061726149643e293e0004001cf4204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a290120576861742070617261732073656e742061206d6573736167652061742074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e3020496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e8101202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468652073616d6540202020626c6f636b206e756d6265722e011c5868726d705f696e69745f6f70656e5f6368616e6e656c0c24726563697069656e74185061726149645470726f706f7365645f6d61785f63617061636974790c7533326470726f706f7365645f6d61785f6d6573736167655f73697a650c75333228510120496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c3020706172616d65746572732e005d01202d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e4d01202d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620616e79206f6620746865206d657373616765732e001501205468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e00550120546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e20206368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c041873656e646572185061726149640cf42041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f820546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c04286368616e6e656c5f69643448726d704368616e6e656c496410590120496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f72207468659c20726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c42054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d7004107061726118506172614964141d0120546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d732074686174250120612070617261206d617920686176652e204e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f7773050120796f7520746f20747269676765722074686520636c65616e757020696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e0054204f726967696e206d75737420626520526f6f742e5c666f7263655f70726f636573735f68726d705f6f70656e0010a820466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e000901204966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e207573652074686973d02066756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e60666f7263655f70726f636573735f68726d705f636c6f73650010ac20466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e000d01204966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e207573652074686973d02066756e6374696f6e2070726f6365737320616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e6068726d705f63616e63656c5f6f70656e5f7265717565737404286368616e6e656c5f69643448726d704368616e6e656c496414610120546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420626520656974686572206f66207468652073656e6465721d01206f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e005901205468652063616e63656c6c696e672068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c2074686520726571756573742069662069742069734820616c72656164792061636365707465642e0110504f70656e4368616e6e656c5265717565737465641018506172614964185061726149640c7533320c7533320874204f70656e2048524d50206368616e6e656c207265717565737465642e210120605b73656e6465722c20726563697069656e742c2070726f706f7365645f6d61785f63617061636974792c2070726f706f7365645f6d61785f6d6573736167655f73697a655d604c4f70656e4368616e6e656c43616e63656c656408185061726149643448726d704368616e6e656c4964082d0120416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e7420605b62795f70617261636861696e2c206368616e6e656c5f69645d604c4f70656e4368616e6e656c416363657074656408185061726149641850617261496404c8204f70656e2048524d50206368616e6e656c2061636365707465642e20605b73656e6465722c20726563697069656e745d60344368616e6e656c436c6f73656408185061726149643448726d704368616e6e656c496404c82048524d50206368616e6e656c20636c6f7365642e20605b62795f70617261636861696e2c206368616e6e656c5f69645d600048544f70656e48726d704368616e6e656c546f53656c6604c8205468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e74048c2054686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f436170616369747904802054686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d697404c4205468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a6504a42054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d6974042d0120546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c7265616479457869737473046c20546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c726561647952657175657374656404d420546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d69744578636565646564042101205468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e74457869737404e420546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564048820546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d697445786365656465640429012054686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a656404590120546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e74457869737404a020546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e64657277617904c020546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a65640461012043616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e744578697374048020546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640431012043616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e3c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f0c5041737369676e6d656e744b657973556e736166650100445665633c41737369676e6d656e7449643e04000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e01003053657373696f6e496e646578100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001063053657373696f6e496e6465782c53657373696f6e496e666f0004000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e000000003d2452656769737472617201245265676973747261720c2c50656e64696e6753776170000105185061726149641850617261496400040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000105185061726149649050617261496e666f3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0091012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d6179206f6e6c7920646f350120736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e657874467265655061726149640100185061726149641000000000046020546865206e65787420667265652060506172614964602e01182072656769737465720c086964185061726149643067656e657369735f686561642048656164446174613c76616c69646174696f6e5f636f64653856616c69646174696f6e436f646538fc2052656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e003420232320417267756d656e7473c4202d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e3101202d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e0501202d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e2901202d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e0044202323204465706f736974732f46656573990120546865206f726967696e207369676e6564206163636f756e74206d7573742072657365727665206120636f72726573706f6e64696e67206465706f73697420666f722074686520726567697374726174696f6e2e20416e797468696e6720616c7265616479dc2072657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e0028202323204576656e7473d82054686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f7265676973746572140c77686f30543a3a4163636f756e7449641c6465706f7369743042616c616e63654f663c543e086964185061726149643067656e657369735f686561642048656164446174613c76616c69646174696f6e5f636f64653856616c69646174696f6e436f646518e020466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00bc20546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001d0120546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e792060506172614964601d012063616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e286465726567697374657204086964185061726149640c09012044657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e008101205468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d757374206265206120706172617468726561642e10737761700808696418506172614964146f74686572185061726149642cdc205377617020612070617261636861696e207769746820616e6f746865722070617261636861696e206f7220706172617468726561642e00050120546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e0065012054686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c5d012074686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e00610120546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e410120605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c2074686569725901207363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520612070617261746872656164206f722070617261636861696e292c2061756374696f6e20696e666f726d6174696f6e9820616e64207468652061756374696f6e206465706f736974206172652073776974636865642e44666f7263655f72656d6f76655f6c6f636b041070617261185061726149641011012052656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f66206139012070726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e009c2043616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e1c72657365727665003898205265736572766520612050617261204964206f6e207468652072656c617920636861696e2e00510120546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e810120546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f206372656174658501206120706172617468726561642e205573696e672074686520536c6f74732070616c6c65742c206120706172617468726561642063616e207468656e20626520757067726164656420746f2067657420612070617261636861696e20736c6f742e003420232320417267756d656e74737d01202d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e657720706172612049442e0044202323204465706f736974732f46656573250120546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e0028202323204576656e74737101205468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72207573652e010c28526567697374657265640818506172614964244163636f756e74496400304465726567697374657265640418506172614964002052657365727665640818506172614964244163636f756e74496400082c506172614465706f7369743042616c616e63654f663c543e400080ca3961240000000000000000000008b020546865206465706f73697420746f206265207061696420746f2072756e206120706172617468726561642e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f736974506572427974653042616c616e63654f663c543e4055a0fc0100000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e30344e6f7452656769737465726564046820546865204944206973206e6f7420726567697374657265642e44416c72656164795265676973746572656404782054686520494420697320616c726561647920726567697374657265642e204e6f744f776e657204a0205468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c61726765046020496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c61726765047420496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e04642050617261206973206e6f7420612050617261636861696e2e344e6f745061726174687265616404682050617261206973206e6f74206120506172617468726561642e4043616e6e6f7444657265676973746572045c2043616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e677261646504d42043616e6e6f74207363686564756c6520646f776e6772616465206f662070617261636861696e20746f20706172617468726561643443616e6e6f745570677261646504cc2043616e6e6f74207363686564756c652075706772616465206f66207061726174687265616420746f2070617261636861696e28506172614c6f636b6564047d012050617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e20676f7665726e616e63652e2c4e6f74526573657276656404d42054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e4614536c6f74730114536c6f747304184c656173657301010518506172614964a45665633c4f7074696f6e3c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e3e00040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e009901205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f6620746865207365636f6e642076616c756573f0206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e010c2c666f7263655f6c6561736514107061726118506172614964186c656173657230543a3a4163636f756e74496418616d6f756e743042616c616e63654f663c543e30706572696f645f626567696e404c65617365506572696f644f663c543e30706572696f645f636f756e74404c65617365506572696f644f663c543e106d01204a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746f2068617070656ee420696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e009c2043616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e40636c6561725f616c6c5f6c6561736573041070617261185061726149640c510120436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e009c2043616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e2e3c747269676765725f6f6e626f617264041070617261185061726149641c29012054727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e00490120546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c643d012068617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e70206c6574207468656d206f6e626f6172642066726f6d20686572652e00d0204f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e0108384e65774c65617365506572696f64042c4c65617365506572696f6404942041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c65617365641818506172614964244163636f756e7449642c4c65617365506572696f642c4c65617365506572696f641c42616c616e63651c42616c616e6365103901204120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e49012046697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb4205365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e4d0120605b70617261636861696e5f69642c206c65617365722c20706572696f645f626567696e2c20706572696f645f636f756e742c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d60042c4c65617365506572696f6438543a3a426c6f636b4e756d62657210803a090004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e0844506172614e6f744f6e626f617264696e670490205468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f72048c2054686572652077617320616e206572726f72207769746820746865206c656173652e472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e74657201003041756374696f6e496e6465781000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000088284c65617365506572696f644f663c543e2c20543a3a426c6f636b4e756d62657229040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e74730001055828543a3a4163636f756e7449642c20506172614964293042616c616e63654f663c543e00040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e6700010538543a3a426c6f636b4e756d6265723857696e6e696e67446174613c543e0004000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e010c2c6e65775f61756374696f6e08206475726174696f6e5c436f6d706163743c543a3a426c6f636b4e756d6265723e486c656173655f706572696f645f696e64657864436f6d706163743c4c65617365506572696f644f663c543e3e1458204372656174652061206e65772061756374696f6e2e00550120546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c7920626529012063616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655d0120606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c6269641410706172613c436f6d706163743c5061726149643e3461756374696f6e5f696e64657854436f6d706163743c41756374696f6e496e6465783e2866697273745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e246c6173745f736c6f7464436f6d706163743c4c65617365506572696f644f663c543e3e18616d6f756e7454436f6d706163743c42616c616e63654f663c543e3e404d01204d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772c2070617261636861696e2e005d01204d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c2061637469766541012062696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e005901202d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e64742066756e64656420627929207468652073616d65206163636f756e742e5101202d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746c2076616c7565206f66206041756374696f6e436f756e746572602e4d01202d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4501202d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e2054686973206973207468650d01206162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e4d01202d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865cc206269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e000c7c2043616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008c2043616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e011c3841756374696f6e537461727465640c3041756374696f6e496e6465782c4c65617365506572696f642c426c6f636b4e756d6265720c4d0120416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f190120636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642ea020605b61756374696f6e5f696e6465782c206c656173655f706572696f642c20656e64696e675d603441756374696f6e436c6f736564043041756374696f6e496e64657804050120416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e20605b61756374696f6e5f696e6465785d602052657365727665640c244163636f756e7449641c42616c616e63651c42616c616e6365084d012046756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642ef8205365636f6e642069732074686520746f74616c2e20605b6269646465722c2065787472615f72657365727665642c20746f74616c5f616d6f756e745d6028556e726573657276656408244163636f756e7449641c42616c616e6365042d012046756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c18506172614964244163636f756e7449641c42616c616e63650c790120536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696e20726573657276659c20627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e8420605b70617261636861696e5f69642c206c65617365722c20616d6f756e745d602c426964416363657074656414244163636f756e744964185061726149641c42616c616e63652c4c65617365506572696f642c4c65617365506572696f6408cc2041206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722ec020605b77686f2c20706172615f69642c20616d6f756e742c2066697273745f736c6f742c206c6173745f736c6f745d603457696e6e696e674f6666736574083041756374696f6e496e6465782c426c6f636b4e756d626572087101205468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765206d61702e8020605b61756374696f6e5f696e6465782c20626c6f636b5f6e756d6265725d601030456e64696e67506572696f6438543a3a426c6f636b4e756d6265721040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e67746838543a3a426c6f636b4e756d62657210140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e740c7533321024000000004c4c65617365506572696f6473506572536c6f740c7533321008000000001c4441756374696f6e496e50726f6772657373049420546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e50617374048420546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f7452656769737465726564045c2050617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e045c204e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0440204e6f7420616e2061756374696f6e2e3041756374696f6e456e646564046c2041756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f757404dc20546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e482443726f77646c6f616e012443726f77646c6f616e101446756e6473000105185061726149641d0146756e64496e666f3c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c204c65617365506572696f644f663c0a543e3e000400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e6577526169736501002c5665633c5061726149643e0400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e7401000c753332100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787454726965496e64657801000c753332100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c65207472696520696e6465780120186372656174651814696e6465783c436f6d706163743c5061726149643e0c63617054436f6d706163743c42616c616e63654f663c543e3e3066697273745f706572696f6464436f6d706163743c4c65617365506572696f644f663c543e3e2c6c6173745f706572696f6464436f6d706163743c4c65617365506572696f644f663c543e3e0c656e645c436f6d706163743c543a3a426c6f636b4e756d6265723e2076657269666965724c4f7074696f6e3c4d756c74695369676e65723e106d01204372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f642072616e67652e0061012054686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e67656468206279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c14696e6465783c436f6d706163743c5061726149643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e247369676e6174757265584f7074696f6e3c4d756c74695369676e61747572653e08550120436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e550120736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e207769746864726177080c77686f30543a3a4163636f756e74496414696e6465783c436f6d706163743c5061726149643e44c42057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c4204f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e00b101205468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c207468656e20746865207265746972656d656e74fc20666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3aa0202d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b5101202d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b38202d20616e64206569746865723ac02020202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f7231012020202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e00710120496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7420626c6f636b20206e756d6265722e00f4202d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e1d01202d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e640414696e6465783c436f6d706163743c5061726149643e14e4204175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e25012044756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c654d012074696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c4204f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c76650414696e6465783c436f6d706163743c5061726149643e0459012052656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e10656469741814696e6465783c436f6d706163743c5061726149643e0c63617054436f6d706163743c42616c616e63654f663c543e3e3066697273745f706572696f6464436f6d706163743c4c65617365506572696f644f663c543e3e2c6c6173745f706572696f6464436f6d706163743c4c65617365506572696f644f663c543e3e0c656e645c436f6d706163743c543a3a426c6f636b4e756d6265723e2076657269666965724c4f7074696f6e3c4d756c74695369676e65723e0cd420456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008c2043616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f0814696e64657818506172614964106d656d6f1c5665633c75383e0cf02041646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e003101204f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b650414696e646578185061726149640c7820506f6b65207468652066756e6420696e746f20604e657752616973656000e0204f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e01281c43726561746564041850617261496404cc204372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e20605b66756e645f696e6465785d602c436f6e74726962757465640c244163636f756e744964185061726149641c42616c616e636504e420436f6e747269627574656420746f20612063726f77642073616c652e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d602057697468647265770c244163636f756e744964185061726149641c42616c616e63650411012057697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e20605b77686f2c2066756e645f696e6465782c20616d6f756e745d60445061727469616c6c79526566756e646564041850617261496408310120546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674f4206f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e20605b66756e645f696e6465785d602c416c6c526566756e646564041850617261496404dc20416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e20605b66756e645f696e6465785d6024446973736f6c766564041850617261496404882046756e6420697320646973736f6c7665642e20605b66756e645f696e6465785d603c48616e646c65426964526573756c740818506172614964384469737061746368526573756c7404f82054686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e1845646974656404185061726149640405012054686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e20605b66756e645f696e6465785d602c4d656d6f557064617465640c244163636f756e744964185061726149641c5665633c75383e04cc2041206d656d6f20686173206265656e20757064617465642e20605b77686f2c2066756e645f696e6465782c206d656d6f5d603c4164646564546f4e65775261697365041850617261496404a420412070617261636861696e20686173206265656e206d6f76656420746f20604e65775261697365600c2050616c6c657449642050616c6c657449642070792f6366756e64047101206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c64206265206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e3042616c616e63654f663c543e4018e47648170000000000000000000000086d0120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c7920626520617470206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69740c75333210e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e58444669727374506572696f64496e5061737404f8205468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e46757475726504150120546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f6404ec204c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e46757475726504310120546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468656e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e50617374044901205468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e46757475726504c42054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f77045c2054686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c04ec2054686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c6964506172614964045020496e76616c69642066756e6420696e6465782e2c4361704578636565646564049420436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f76657204ac2054686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e049020546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e04cc20546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c6561736541637469766504190120546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c6561736541637469766504350120546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e6465640484205468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e7304d420546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c7665047901205468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e7420706572696f642e40496e76616c69645369676e6174757265044c20496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650480205468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e657752616973650488205468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f677265737304b8204e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179492458636d50616c6c6574012458636d50616c6c657424305175657279436f756e74657201001c51756572794964200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001021c517565727949646c51756572795374617475733c543a3a426c6f636b4e756d6265723e000400045420546865206f6e676f696e6720717565726965732e284173736574547261707301010610483235360c753332001000000000106820546865206578697374696e672061737365742074726170732e007501204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e656420604d756c7469417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00002858636d56657273696f6e04000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0002052858636d56657273696f6e5856657273696f6e65644d756c74694c6f636174696f6e2858636d56657273696f6e02040004e0204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730002052858636d56657273696f6e5856657273696f6e65644d756c74694c6f636174696f6e1c5175657279496402040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730002052858636d56657273696f6e5856657273696f6e65644d756c74694c6f636174696f6e6828517565727949642c207536342c2058636d56657273696f6e290204000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f76657279517565756501001d01426f756e6465645665633c2856657273696f6e65644d756c74694c6f636174696f6e2c20753332292c2056657273696f6e446973636f76657279517565756553697a653c543e3e04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e00005456657273696f6e4d6967726174696f6e53746167650400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e01201073656e640810646573746c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e1c6d65737361676554426f783c56657273696f6e656458636d3c28293e3e003c74656c65706f72745f6173736574731010646573746c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e2c62656e65666963696172796c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e1861737365747364426f783c56657273696f6e65644d756c74694173736574733e386665655f61737365745f6974656d0c7533323415012054656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e00810120466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d20746865206669727374206173736574206c697374656420696e2074686520606173736574736020766563746f722e002d01202d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e9101202d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c2050617261636861696e282e2e29296020746f2073656e645d0120202066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e642066726f6d2072656c617920746f2070617261636861696e2e8d01202d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c2067656e6572616c6c7920626568202020616e20604163636f756e7449643332602076616c75652eb101202d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546865206669727374206974656d2073686f756c64206265207468652063757272656e6379207573656420746f20746f207061792074686520666565206f6e207468658420202060646573746020736964652e204d6179206e6f7420626520656d7074792e2101202d2060646573745f776569676874603a20457175616c20746f2074686520746f74616c20776569676874206f6e20606465737460206f66207468652058434d206d65737361676529012020206054656c65706f7274207b206173736574732c20656666656374733a205b20427579457865637574696f6e7b2e2e7d2c204465706f73697441737365747b2e2e7d205d207d602e5c726573657276655f7472616e736665725f6173736574731010646573746c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e2c62656e65666963696172796c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e1861737365747364426f783c56657273696f6e65644d756c74694173736574733e386665655f61737365745f6974656d0c753332389901205472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f2074686520736f7665726569676e206163636f756e74206f6620612064657374696e6174696f6e20636861696e20616e6420666f7277617264502061206e6f74696669636174696f6e2058434d2e00810120466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d20746865206669727374206173736574206c697374656420696e2074686520606173736574736020766563746f722e002d01202d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e9101202d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c2050617261636861696e282e2e29296020746f2073656e645d0120202066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e642066726f6d2072656c617920746f2070617261636861696e2e8d01202d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c2067656e6572616c6c7920626568202020616e20604163636f756e7449643332602076616c75652e8901202d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f207061792074686520666565206f6e207468653c20202060646573746020736964652e5101202d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f2070617920202020666565732e1c65786563757465081c6d657373616765a4426f783c56657273696f6e656458636d3c3c5420617320537973436f6e6669673e3a3a43616c6c3e3e286d61785f776569676874185765696768742cd4204578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e00510120416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c792c207061727469616c6c792e007101204e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e207468655d01206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f20657865637574696f6e5820617474656d70742077696c6c206265206d6164652e007101204e4f54453a2041207375636365737366756c2072657475726e20746f207468697320646f6573202a6e6f742a20696d706c7920746861742074686520606d73676020776173206578656375746564207375636365737366756c6c79d020746f20636f6d706c6574696f6e3b206f6e6c792074686174202a736f6d652a206f66206974207761732065786563757465642e44666f7263655f78636d5f76657273696f6e08206c6f636174696f6e48426f783c4d756c74694c6f636174696f6e3e2c78636d5f76657273696f6e2858636d56657273696f6e184d01204578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c6172402076657273696f6e206f662058434d2e0068202d20606f726967696e603a204d75737420626520526f6f742edc202d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e1501202d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e04446d617962655f78636d5f76657273696f6e484f7074696f6e3c58636d56657273696f6e3e145d0120536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b82076657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e0068202d20606f726967696e603a204d75737420626520526f6f742e3d01202d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f7469667904206c6f636174696f6e6c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e103d012041736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e0068202d20606f726967696e603a204d75737420626520526f6f742e5d01202d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f7469667904206c6f636174696f6e6c426f783c56657273696f6e65644d756c74694c6f636174696f6e3e184d0120526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d442076657273696f6e206368616e6765732e0068202d20606f726967696e603a204d75737420626520526f6f742e4101202d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6eac2020206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e014024417474656d70746564045078636d3a3a6c61746573743a3a4f7574636f6d650cac20457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e0038205c5b206f7574636f6d65205c5d1053656e740c344d756c74694c6f636174696f6e344d756c74694c6f636174696f6e1c58636d3c28293e0c6020412058434d206d657373616765207761732073656e742e008c205c5b206f726967696e2c2064657374696e6174696f6e2c206d657373616765205c5d48556e6578706563746564526573706f6e736508344d756c74694c6f636174696f6e1c51756572794964145d0120517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d6179206265206265636175736520615901206d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f72742062656361757365207468652071756572792074696d6564206f75742e0068205c5b206f726967696e206c6f636174696f6e2c206964205c5d34526573706f6e73655265616479081c5175657279496420526573706f6e736510610120517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e20546865726520697384206e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e004c205c5b2069642c20726573706f6e7365205c5d204e6f7469666965640c1c51756572794964087538087538105d0120517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173ac206265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e008c205c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e646578205c5d404e6f746966794f766572776569676874141c51756572794964087538087538185765696768741857656967687414650120517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20636f756c644501206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e8206f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e001d01205c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e6465782c2061637475616c207765696768742c206d617820627564676574656420776569676874205c5d4c4e6f7469667944697370617463684572726f720c1c5175657279496408753808753810590120517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f7220776974688c206469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e008c205c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e646578205c5d484e6f746966794465636f64654661696c65640c1c5175657279496408753808753814550120517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f2062655d01206465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e617475726520776869636898206973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e008c205c5b2069642c2070616c6c657420696e6465782c2063616c6c20696e646578205c5d40496e76616c6964526573706f6e6465720c344d756c74694c6f636174696f6e1c51756572794964544f7074696f6e3c4d756c74694c6f636174696f6e3e145d0120457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f65735901206e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f7020626520726563656976656420616e642061637465642075706f6e2e00b4205c5b206f726967696e206c6f636174696f6e2c2069642c206578706563746564206c6f636174696f6e205c5d5c496e76616c6964526573706f6e64657256657273696f6e08344d756c74694c6f636174696f6e1c5175657279496424550120457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e51012073746f7261746520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e004501205468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e6751012072756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c795d012076616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f20626520206e65656465642e0068205c5b206f726967696e206c6f636174696f6e2c206964205c5d34526573706f6e736554616b656e041c517565727949640ccc20526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e0024205c5b206964205c5d34417373657473547261707065640c1048323536344d756c74694c6f636174696f6e5056657273696f6e65644d756c74694173736574730cbc20536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e006c205c5b20686173682c206f726967696e2c20617373657473205c5d5456657273696f6e4368616e67654e6f74696669656408344d756c74694c6f636174696f6e2858636d56657273696f6e0c290120416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e0068205c5b2064657374696e6174696f6e2c20726573756c74205c5d5c537570706f7274656456657273696f6e4368616e67656408344d756c74694c6f636174696f6e2858636d56657273696f6e103d012054686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec4206175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e0070205c5b206c6f636174696f6e2c2058434d2076657273696f6e205c5d504e6f7469667954617267657453656e644661696c0c344d756c74694c6f636174696f6e1c517565727949642058636d4572726f72105d01204120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72802073656e64696e6720746865206e6f74696669636174696f6e20746f2069742e0080205c5b206c6f636174696f6e2c2071756572792049442c206572726f72205c5d644e6f746966795461726765744d6967726174696f6e4661696c085856657273696f6e65644d756c74694c6f636174696f6e1c51756572794964105d01204120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b8206d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e0064205c5b206c6f636174696f6e2c207175657279204944205c5d00342c556e726561636861626c650861012054686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e671c20746f2069742e2c53656e644661696c7572650865012054686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652e2050657268617073ac2061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c746572656404a020546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d65737361676504b820546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c6504f4205468652064657374696e6174696f6e20604d756c74694c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d7074790484205468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f7204390120436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e7941737365747304c820546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e047c204f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e042501205468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e0845012054686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e207468656420646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e04c020546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c72656164795375627363726962656404150120546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e63041c40436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e74'; diff --git a/packages/types-support/src/metadata/v13/dicle-json.json b/packages/types-support/src/metadata/v13/dicle-json.json new file mode 100644 index 0000000..863882a --- /dev/null +++ b/packages/types-support/src/metadata/v13/dicle-json.json @@ -0,0 +1,17252 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v13": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountInfo", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": "ConsumedWeight" + }, + "fallback": "0x000000000000000000000000000000000000000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: This storage item is explicitly unbounded since it is never intended to be read", + " from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": "LastRuntimeUpgradeInfo" + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": "Phase" + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [ + { + "name": "_ratio", + "type": "Perbill" + } + ], + "docs": [ + " A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark.", + "", + " # ", + " - `O(1)`", + " # " + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap.", + "", + " # ", + " - `O(1)`", + " - 1 storage write.", + " - Base Weight: 1.405 µs", + " - 1 write to HEAP_PAGES", + " # " + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code.", + "", + " # ", + " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", + " - 1 storage write (codec `O(C)`).", + " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is", + " expensive).", + " - 1 event.", + " The weight of this function is dependent on the runtime, but generally this is very", + " expensive. We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_code_without_checks", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code without doing any checks of the given `code`.", + "", + " # ", + " - `O(C)` where `C` length of `code`", + " - 1 storage write (codec `O(C)`).", + " - 1 event.", + " The weight of this function is dependent on the runtime. We will treat this as a full", + " block. # " + ] + }, + { + "name": "set_changes_trie_config", + "args": [ + { + "name": "changes_trie_config", + "type": "Option" + } + ], + "docs": [ + " Set the new changes trie configuration.", + "", + " # ", + " - `O(1)`", + " - 1 storage write or delete (codec `O(1)`).", + " - 1 call to `deposit_log`: Uses `append` API, so O(1)", + " - Base Weight: 7.218 µs", + " - DB Weight:", + " - Writes: Changes Trie, System Digest", + " # " + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage.", + "", + " # ", + " - `O(I)` where `I` length of `items`", + " - `I` storage writes (`O(1)`).", + " - Base Weight: 0.568 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage.", + "", + " # ", + " - `O(IK)` where `I` length of `keys` and `K` length of one key", + " - `I` storage deletions.", + " - Base Weight: .378 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + }, + { + "name": "_subkeys", + "type": "u32" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix.", + "", + " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", + " the prefix we are removing to accurately calculate the weight of this function.", + "", + " # ", + " - `O(P)` where `P` amount of keys with prefix `prefix`", + " - `P` storage deletions.", + " - Base Weight: 0.834 * P µs", + " - Writes: Number of subkeys + 1", + " # " + ] + }, + { + "name": "remark_with_event", + "args": [ + { + "name": "remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark and emit event.", + "", + " # ", + " - `O(b)` where b is the length of the remark.", + " - 1 event.", + " # " + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully. \\[info\\]" + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed. \\[error, info\\]" + ] + }, + { + "name": "CodeUpdated", + "args": [], + "docs": [ + " `:code` was updated." + ] + }, + { + "name": "NewAccount", + "args": [ + "AccountId" + ], + "docs": [ + " A new \\[account\\] was created." + ] + }, + { + "name": "KilledAccount", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] was reaped." + ] + }, + { + "name": "Remarked", + "args": [ + "AccountId", + "Hash" + ], + "docs": [ + " On on-chain remark happened. \\[origin, remark_hash\\]" + ] + } + ], + "constants": [ + { + "name": "BlockWeights", + "type": "BlockWeights", + "value": "0x00f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a740000004059730700000000000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": "BlockLength", + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": "BlockNumber", + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": "RuntimeDbWeight", + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": "RuntimeVersion", + "value": "0x186b7573616d61347061726974792d6b7573616d61020000008c2300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80100000005000000", + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "type": "u16", + "value": "0x0200", + "docs": [ + " The designated SS85 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": [ + { + "name": "InvalidSpecName", + "docs": [ + " The name of specification does not match between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "docs": [ + " The specification version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "docs": [ + " Failed to extract the runtime version from the new runtime.", + "", + " Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "docs": [ + " Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "docs": [ + " There is a non-zero reference count preventing the account from being purged." + ] + } + ], + "index": 0 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": "NextConfigDescriptor" + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_initialize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported.", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "plan_config_change", + "args": [ + { + "name": "config", + "type": "NextConfigDescriptor" + } + ], + "docs": [ + " Plan an epoch config change. The epoch config change is recorded and will be enacted on", + " the next call to `enact_epoch_change`. The config will be activated one epoch after.", + " Multiple calls to this method will replace any existing planned config change that had", + " not been enacted yet." + ] + } + ], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0x5802000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0x7017000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [ + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 1 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`.", + "", + " # ", + " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in", + " `on_finalize`)", + " - 1 event handler `on_timestamp_set`. Must be `O(1)`.", + " # " + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected*", + " period that the block production apparatus provides. Your chosen consensus system will", + " generally work with this to determine a sensible block time. e.g. For Aura, it will be", + " double this period on default settings." + ] + } + ], + "errors": [], + "index": 2 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountIndex", + "value": "(AccountId,BalanceOf,bool)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an previously unassigned index.", + "", + " Payment: `Deposit` is reserved from the sender account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be claimed. This must not be in use.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an index already owned by the sender to another account. The balance reservation", + " is effectively transferred to the new account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be re-assigned. This must be owned by the sender.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One transfer operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (recipient)", + " - Writes: Indices Accounts, System Account (recipient)", + " # " + ] + }, + { + "name": "free", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Free up an index owned by the sender.", + "", + " Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + " - `index`: the index to be freed. This must be owned by the sender.", + "", + " Emits `IndexFreed` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + }, + { + "name": "freeze", + "type": "bool" + } + ], + "docs": [ + " Force an index to an account. This doesn't require a deposit. If the index is already", + " held, then any deposit is reimbursed to its current owner.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `index`: the index to be (re-)assigned.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one reserve operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (original owner)", + " - Writes: Indices Accounts, System Account (original owner)", + " # " + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Freeze an index so it will always point to the sender account. This consumes the", + " deposit.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must have a", + " non-frozen account `index`.", + "", + " - `index`: the index to be frozen in place.", + "", + " Emits `IndexFrozen` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one slash operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + } + ], + "events": [ + { + "name": "IndexAssigned", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A account index was assigned. \\[index, who\\]" + ] + }, + { + "name": "IndexFreed", + "args": [ + "AccountIndex" + ], + "docs": [ + " A account index has been freed up (unassigned). \\[index\\]" + ] + }, + { + "name": "IndexFrozen", + "args": [ + "AccountIndex", + "AccountId" + ], + "docs": [ + " A account index has been frozen to its current account ID. \\[index, who\\]" + ] + } + ], + "constants": [ + { + "name": "Deposit", + "type": "BalanceOf", + "value": "0x34a1aec6000000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": [ + { + "name": "NotAssigned", + "docs": [ + " The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "docs": [ + " The index is assigned to another account." + ] + }, + { + "name": "InUse", + "docs": [ + " The index was not available." + ] + }, + { + "name": "NotTransfer", + "docs": [ + " The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "docs": [ + " The index is permanent and may not be freed/changed." + ] + } + ], + "index": 3 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountData", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The balance of an account.", + "", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " This is set to v2.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for input config", + " types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex", + " computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check", + " that the transfer will not kill the origin account.", + " ---------------------------------", + " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", + " - DB Weight: 1 Read and 1 Write to destination account", + " - Origin account is already in memory, so no DB operations for them.", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`frame_system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " ---------------------", + " - Base Weight:", + " - Creating: 27.56 µs", + " - Killing: 35.11 µs", + " - DB Weight: 1 Read, 1 Write to `who`", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified.", + " # ", + " - Same as transfer, but additional read and write because the source account is not", + " assumed to be in the overlay.", + " # " + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Pallet.html#method.transfer", + " # ", + " - Cheaper than transfer because account cannot be killed.", + " - Base Weight: 51.4 µs", + " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", + " #" + ] + }, + { + "name": "transfer_all", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "keep_alive", + "type": "bool" + } + ], + "docs": [ + " Transfer the entire transferable balance from the caller account.", + "", + " NOTE: This function only attempts to transfer _transferable_ balances. This means that", + " any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + " transferred by this function. To ensure that this function results in a killed account,", + " you might need to prepare the account by removing any reference counters, storage", + " deposits, etc...", + "", + " The dispatch origin of this call must be Signed.", + "", + " - `dest`: The recipient of the transfer.", + " - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true). # ", + " - O(1). Just like transfer, but reading the user's transferable balance first.", + " #" + ] + } + ], + "events": [ + { + "name": "Endowed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was created with some free balance. \\[account, free_balance\\]" + ] + }, + { + "name": "DustLost", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was removed whose balance was non-zero but below ExistentialDeposit,", + " resulting in an outright loss. \\[account, balance\\]" + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer succeeded. \\[from, to, value\\]" + ] + }, + { + "name": "BalanceSet", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " A balance was set by root. \\[who, free, reserved\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]" + ] + }, + { + "name": "Reserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was reserved (moved from free to reserved). \\[who, value\\]" + ] + }, + { + "name": "Unreserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was unreserved (moved from reserved to free). \\[who, value\\]" + ] + }, + { + "name": "ReserveRepatriated", + "args": [ + "AccountId", + "AccountId", + "Balance", + "BalanceStatus" + ], + "docs": [ + " Some balance was moved from the reserve of the first account to the second account.", + " Final argument indicates the destination balance type.", + " \\[from, to, balance, destination_status\\]" + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x55a0fc01000000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "MaxLocks", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + } + ], + "errors": [ + { + "name": "VestingBalance", + "docs": [ + " Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "docs": [ + " Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "InsufficientBalance", + "docs": [ + " Balance too low to send value" + ] + }, + { + "name": "ExistentialDeposit", + "docs": [ + " Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "docs": [ + " Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "docs": [ + " Beneficiary account must pre-exist" + ] + }, + { + "name": "TooManyReserves", + "docs": [ + " Number of named reserves exceed MaxReserves" + ] + } + ], + "index": 4 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x12160500000000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "WeightToFee", + "type": "Vec", + "value": "0x0400000000000000000000000000000000a9e696010001", + "docs": [ + " The polynomial that is applied in order to derive fee from weight." + ] + } + ], + "errors": [], + "index": 33 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [ + { + "name": "UncleGenerations", + "type": "BlockNumber", + "value": "0x00000000", + "docs": [ + " The number of blocks back we should accept uncles.", + " This means that we will deal with uncle-parents that are", + " `UncleGenerations + 1` before `now`." + ] + } + ], + "errors": [ + { + "name": "InvalidUncleParent", + "docs": [ + " The uncle parent not in the chain." + ] + }, + { + "name": "UnclesAlreadySet", + "docs": [ + " Uncles already set in the block." + ] + }, + { + "name": "TooManyUncles", + "docs": [ + " Too many uncles." + ] + }, + { + "name": "GenesisUncle", + "docs": [ + " The uncle is genesis." + ] + }, + { + "name": "TooHighUncle", + "docs": [ + " The uncle is too high in chain." + ] + }, + { + "name": "UncleAlreadyIncluded", + "docs": [ + " The uncle is already included." + ] + }, + { + "name": "OldUncle", + "docs": [ + " The uncle isn't recent enough to be included." + ] + } + ], + "index": 5 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "HistoryDepth", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Information is kept for eras in `[current_era - history_depth; current_era]`.", + "", + " Must be more than the number of eras delayed by session otherwise. I.e. active era must", + " always be in history. I.e. `active_era > current_era - history_depth` must be", + " guaranteed." + ] + }, + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": false + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " When updating this storage item, you must also update the `CounterForValidators`." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " A tracker to keep count of the number of items in the `Validators` map." + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Nominations", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate.", + "", + " When updating this storage item, you must also update the `CounterForNominators`." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " A tracker to keep count of the number of items in the `Nominators` map." + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": "ActiveEraInfo" + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "ValidatorPrefs", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "EraRewardPoints", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x06", + "docs": [ + " True if network has been upgraded to this version.", + " Storage version of the pallet.", + "", + " This is set to v7.0.0 for new networks." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": "Percent" + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " Emits `Bonded`.", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + " unless the `origin` falls below _existential deposit_ and gets removed as dust.", + " ------------------", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + " any limitation on the amount that can be added.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " If a user encounters the `InsufficientBond` error when calling this extrinsic,", + " they should call `chill` first in order to free up their bonded funds.", + "", + " Emits `Unbonded`.", + "", + " See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "args": [ + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller.", + "", + " Emits `Withdrawn`.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " Complexity O(S) where S is the number of slashing spans to remove", + " NOTE: Weight annotation is the kill scenario, we refund otherwise.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets` (N)", + " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", + " - Both the reads and writes follow a similar pattern.", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ---------", + " - Weight: O(1)", + " - DB Weight:", + " - Read: Ledger", + " - Write: Payee", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ----------", + " Weight: O(1)", + " DB Weight:", + " - Read: Bonded, Ledger New Controller, Ledger Old Controller", + " - Write: Bonded, Ledger New Controller, Ledger Old Controller", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " Sets the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Weight: O(1)", + " Write: Validator Count", + " # " + ] + }, + { + "name": "increase_validator_count", + "args": [ + { + "name": "additional", + "type": "Compact" + } + ], + "docs": [ + " Increments the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`Self::set_validator_count`].", + " # " + ] + }, + { + "name": "scale_validator_count", + "args": [ + { + "name": "factor", + "type": "Percent" + } + ], + "docs": [ + " Scale up the ideal number of validators by a factor.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`Self::set_validator_count`].", + " # " + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " Thus the election process may be ongoing when this is called. In this case the", + " election will continue until the next era is triggered.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " If this is called just before a new era is triggered, the election process may not", + " have enough blocks to get a result.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write ForceEra", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "invulnerables", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any).", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - O(V)", + " - Write: Invulnerables", + " # " + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " O(S) where S is the number of slashing spans to be removed", + " Reads: Bonded, Slashing Spans, Account, Locks", + " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " Account, Locks Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " If this is called just before a new era is triggered, the election process may not", + " have enough blocks to get a result.", + "", + " # ", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash.", + "", + " Can be called by the `T::SlashCancelOrigin`.", + "", + " Parameters: era and indices of the slashes for that era to kill.", + "", + " # ", + " Complexity: O(U + S)", + " with U unapplied slashes weighted with U=1000", + " and S is the number of slash indices to be canceled.", + " - Read: Unapplied Slashes", + " - Write: Unapplied Slashes", + " # " + ] + }, + { + "name": "payout_stakers", + "args": [ + { + "name": "validator_stash", + "type": "AccountId" + }, + { + "name": "era", + "type": "EraIndex" + } + ], + "docs": [ + " Pay out all the stakers behind a single validator for a single era.", + "", + " - `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + " - `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + " The origin of this call must be _Signed_. Any account can call this function, even if", + " it is not one of the stakers.", + "", + " # ", + " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", + " - Contains a limited number of reads and writes.", + " -----------", + " N is the Number of payouts for the validator (including the validator)", + " Weight:", + " - Reward Destination Staked: O(N)", + " - Reward Destination Controller (Creating): O(N)", + "", + " NOTE: weights are assuming that payouts are made to alive stash account (Staked).", + " Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.", + " # " + ] + }, + { + "name": "rebond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Rebond a portion of the stash scheduled to be unlocked.", + "", + " The dispatch origin must be signed by the controller.", + "", + " # ", + " - Time complexity: O(L), where L is unlocking chunks", + " - Bounded by `MAX_UNLOCKING_CHUNKS`.", + " - Storage changes: Can't increase storage, only decrease it.", + " # " + ] + }, + { + "name": "set_history_depth", + "args": [ + { + "name": "new_history_depth", + "type": "Compact" + }, + { + "name": "_era_items_deleted", + "type": "Compact" + } + ], + "docs": [ + " Set `HistoryDepth` value. This function will delete any history information", + " when `HistoryDepth` is reduced.", + "", + " Parameters:", + " - `new_history_depth`: The new history depth you would like to set.", + " - `era_items_deleted`: The number of items that will be deleted by this dispatch. This", + " should report all the storage items that will be deleted by clearing old era history.", + " Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an", + " accurate number.", + "", + " Origin must be root.", + "", + " # ", + " - E: Number of history depths removed, i.e. 10 -> 7 = 3", + " - Weight: O(E)", + " - DB Weight:", + " - Reads: Current Era, History Depth", + " - Writes: History Depth", + " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", + " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,", + " ErasStartSessionIndex", + " # " + ] + }, + { + "name": "reap_stash", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove all data structure concerning a staker/stash once its balance is at the minimum.", + " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", + " and the target `stash` must have no funds left beyond the ED.", + "", + " This can be called from any origin.", + "", + " - `stash`: The stash account to reap. Its balance must be zero.", + "", + " # ", + " Complexity: O(S) where S is the number of slashing spans on the account.", + " DB Weight:", + " - Reads: Stash Account, Bonded, Slashing Spans, Locks", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " Stash Account, Locks", + " - Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "kick", + "args": [ + { + "name": "who", + "type": "Vec" + } + ], + "docs": [ + " Remove the given nominations from the calling validator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " - `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + " Note: Making this call only makes sense if you first set the validator preferences to", + " block any further nominations." + ] + }, + { + "name": "set_staking_limits", + "args": [ + { + "name": "min_nominator_bond", + "type": "BalanceOf" + }, + { + "name": "min_validator_bond", + "type": "BalanceOf" + }, + { + "name": "max_nominator_count", + "type": "Option" + }, + { + "name": "max_validator_count", + "type": "Option" + }, + { + "name": "threshold", + "type": "Option" + } + ], + "docs": [ + " Update the various staking limits this pallet.", + "", + " * `min_nominator_bond`: The minimum active bond needed to be a nominator.", + " * `min_validator_bond`: The minimum active bond needed to be a validator.", + " * `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + " * `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "", + " Origin must be Root to call this function.", + "", + " NOTE: Existing nominators and validators will not be affected by this update.", + " to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "args": [ + { + "name": "controller", + "type": "AccountId" + } + ], + "docs": [ + " Declare a `controller` to stop participating as either a validator or nominator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + " If the caller is the same as the controller being targeted, then no further checks are", + " enforced, and this function behaves just like `chill`.", + "", + " If the caller is different than the controller being targeted, the following conditions", + " must be met:", + " * A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + " * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + " * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + " This can be helpful if bond requirements are updated, and we need to remove old users", + " who do not satisfy these requirements." + ] + } + ], + "events": [ + { + "name": "EraPaid", + "args": [ + "EraIndex", + "Balance", + "Balance" + ], + "docs": [ + " The era payout has been set; the first balance is the validator-payout; the second is", + " the remainder from the maximum amount of reward.", + " \\[era_index, validator_payout, remainder\\]" + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The nominator has been rewarded by this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount.", + " \\[validator, amount\\]" + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed. \\[session_index\\]" + ] + }, + { + "name": "StakersElected", + "args": [], + "docs": [ + " A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has bonded this amount. \\[stash, amount\\]", + "", + " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + " it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has unbonded this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Withdrawn", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + " from the unlocking queue. \\[stash, amount\\]" + ] + }, + { + "name": "Kicked", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A nominator has been kicked from a validator. \\[nominator, stash\\]" + ] + }, + { + "name": "StakingElectionFailed", + "args": [], + "docs": [ + " The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "args": [ + "AccountId" + ], + "docs": [ + " An account has stopped participating as either a validator or nominator.", + " \\[stash\\]" + ] + }, + { + "name": "PayoutStarted", + "args": [ + "EraIndex", + "AccountId" + ], + "docs": [ + " The stakers' rewards are getting paid. \\[era_index, validator_stash\\]" + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": "EraIndex", + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxNominatorRewardedPerValidator", + "type": "u32", + "value": "0x00010000", + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can", + " claim their reward. This used to limit the i/o cost for the nominator payout." + ] + }, + { + "name": "MaxNominations", + "type": "u32", + "value": "0x18000000", + "docs": [] + } + ], + "errors": [ + { + "name": "NotController", + "docs": [ + " Not a controller account." + ] + }, + { + "name": "NotStash", + "docs": [ + " Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "docs": [ + " Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "docs": [ + " Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "docs": [ + " Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "docs": [ + " Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "docs": [ + " Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "docs": [ + " Can not bond with value less than minimum required." + ] + }, + { + "name": "NoMoreChunks", + "docs": [ + " Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "docs": [ + " Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "docs": [ + " Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "docs": [ + " Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "docs": [ + " Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "docs": [ + " Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "IncorrectHistoryDepth", + "docs": [ + " Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "docs": [ + " Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "docs": [ + " Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "docs": [ + " Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "docs": [ + " A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "docs": [ + " The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "docs": [ + " There are too many nominators in the system. Governance needs to adjust the staking", + " settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "docs": [ + " There are too many validators in the system. Governance needs to adjust the staking", + " settings to keep things safe for the runtime." + ] + } + ], + "index": 6 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": null, + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes.", + " \\[kind, timeslot\\]." + ] + } + ], + "constants": [], + "errors": [], + "index": 7 + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 34 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ValidatorId", + "value": "Keys", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `keys`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)`", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", + " - DbWrites: `origin account`, `NextKeys`", + " - DbReads per key id: `KeyOwner`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + }, + { + "name": "purge_keys", + "args": [], + "docs": [ + " Removes any session key(s) of the function caller.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)` in number of key types.", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", + " - DbWrites: `NextKeys`, `origin account`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the \\[session_index\\], not the", + " block number as the type might suggest." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidProof", + "docs": [ + " Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "docs": [ + " No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "docs": [ + " Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "docs": [ + " No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "docs": [ + " Key setting account is not live, so it's impossible to associate keys." + ] + } + ], + "index": 8 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported.", + "", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "note_stalled", + "args": [ + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": "BlockNumber" + } + ], + "docs": [ + " Note that the current authority set of the GRANDPA finality gadget has", + " stalled. This will trigger a forced authority set change at the beginning", + " of the next session, to be enacted `delay` blocks after that. The delay", + " should be high enough to safely assume that the block signalling the", + " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", + " will start the new authority set using the given finalized block as base.", + " Only callable by root." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied. \\[authority_set\\]" + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "PauseFailed", + "docs": [ + " Attempt to signal GRANDPA pause when the authority set isn't live", + " (either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "docs": [ + " Attempt to signal GRANDPA resume when the authority set isn't paused", + " (either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "docs": [ + " Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "docs": [ + " Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 10 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex` to", + " `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [ + " # ", + " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is", + " length of `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`", + " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", + " `ReceivedHeartbeats`", + " - DbWrites: `ReceivedHeartbeats`", + " # " + ] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId` \\[authority_id\\]" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least one validator was found to be \\[offline\\]." + ] + } + ], + "constants": [ + { + "name": "UnsignedPriority", + "type": "TransactionPriority", + "value": "0xffffffffffffffff", + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "errors": [ + { + "name": "InvalidKey", + "docs": [ + " Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "docs": [ + " Duplicated heartbeat." + ] + } + ], + "index": 11 + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 12 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "PropIndex", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "PreimageStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voting", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "Locks", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Accounts for which there are locks in action which may be removed at some point in the", + " future. The value is the block number at which the lock expires and may be removed.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "StorageVersion", + "modifier": "Optional", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " The dispatch origin of this call must be _Signed_ and the sender must", + " have funds to cover the deposit.", + "", + " - `proposal_hash`: The hash of the proposal preimage.", + " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + " Emits `Proposed`.", + "", + " Weight: `O(p)`" + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + }, + { + "name": "seconds_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Signals agreement with a particular proposal.", + "", + " The dispatch origin of this call must be _Signed_ and the sender", + " must have funds to cover the deposit, equal to the original deposit.", + "", + " - `proposal`: The index of the proposal to second.", + " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", + " proposal. Extrinsic is weighted according to this value with no refund.", + "", + " Weight: `O(S)` where S is the number of seconds a proposal already has." + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "AccountVote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `ref_index`: The index of the referendum to vote for.", + " - `vote`: The vote configuration.", + "", + " Weight: `O(R)` where R is the number of referendums the voter has voted on." + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum.", + "", + " The dispatch origin of this call must be `CancellationOrigin`.", + "", + " -`ref_index`: The index of the referendum to cancel.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum.", + "", + " The dispatch origin of this call must be `ExternalOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.", + " Decoding vec of length V. Charged as maximum" + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " The dispatch of this call must be `FastTrackOrigin`.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `FastTrackVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + " Emits `Started`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash.", + "", + " The dispatch origin of this call must be `VetoOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + " Emits `Vetoed`.", + "", + " Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `ref_index`: The index of the referendum to cancel.", + "", + " # Weight: `O(1)`." + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "which", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Cancel a proposal queued for enactment.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `which`: The index of the referendum to cancel.", + "", + " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`." + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + }, + { + "name": "balance", + "type": "BalanceOf" + } + ], + "docs": [ + " Delegate the voting power (with some given conviction) of the sending account.", + "", + " The balance delegated is locked for as long as it's delegated, and thereafter for the", + " time appropriate for the conviction's lock period.", + "", + " The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + " - `to`: The account whose voting the `target` account's voting power will follow.", + " - `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + " - `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + " Emits `Delegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate the voting power of the sending account.", + "", + " Tokens may be unlocked following once an amount of time consistent with the lock period", + " of the conviction with which the delegation was issued.", + "", + " The dispatch origin of this call must be _Signed_ and the signing account must be", + " currently delegating.", + "", + " Emits `Undelegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Clears all public proposals.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", + " the preimage has not been uploaded before and matches some imminent proposal,", + " no fee is paid.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_imminent_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "proposal_len_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `proposal_hash`: The preimage hash of a proposal.", + " - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is", + " weighted according to this value with no refund.", + "", + " This will only work after `VotingPeriod` blocks from the time that the preimage was", + " noted, if it's the same account doing it. If it's a different account, then it'll only", + " work an additional `EnactmentPeriod` later.", + "", + " Emits `PreimageReaped`.", + "", + " Weight: `O(D)` where D is length of proposal." + ] + }, + { + "name": "unlock", + "args": [ + { + "name": "target", + "type": "AccountId" + } + ], + "docs": [ + " Unlock tokens that have an expired lock.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account to remove the lock on.", + "", + " Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "args": [ + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If:", + " - the referendum was cancelled, or", + " - the referendum is ongoing, or", + " - the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + " ...then the vote is removed cleanly and a following call to `unlock` may result in more", + " funds being available.", + "", + " If, however, the referendum has ended and:", + " - it finished corresponding to the vote of the account, and", + " - the account made a standard vote with conviction, and", + " - the lock period of the conviction is not over", + " ...then the lock will be aggregated into the overall account's lock, which may involve", + " *overlocking* (where the two locks are combined into a single lock that is the maximum", + " of both the amount locked and the time is it locked for).", + "", + " The dispatch origin of this call must be _Signed_, and the signer must have a vote", + " registered for referendum `index`.", + "", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "args": [ + { + "name": "target", + "type": "AccountId" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If the `target` is equal to the signer, then this function is exactly equivalent to", + " `remove_vote`. If not equal to the signer, then the vote must have expired,", + " either because the referendum was cancelled, because the voter lost the referendum or", + " because the conviction period is over.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "enact_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Enact a proposal from a referendum. For now we just make the weight be the maximum." + ] + }, + { + "name": "blacklist", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "maybe_ref_index", + "type": "Option" + } + ], + "docs": [ + " Permanently place a proposal into the blacklist. This prevents it from ever being", + " proposed again.", + "", + " If called on a queued public or external proposal, then this will result in it being", + " removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + " then it will be cancelled.", + "", + " The dispatch origin of this call must be `BlacklistOrigin`.", + "", + " - `proposal_hash`: The proposal hash to blacklist permanently.", + " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + " cancelled.", + "", + " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "args": [ + { + "name": "prop_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a proposal.", + "", + " The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + " - `prop_index`: The index of the proposal to cancel.", + "", + " Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account. \\[proposal_index, deposit\\]" + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote. \\[proposal_index, deposit,", + " depositors\\]" + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun. \\[ref_index, threshold\\]" + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum. \\[ref_index\\]" + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum. \\[ref_index\\]" + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled. \\[ref_index\\]" + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "DispatchResult" + ], + "docs": [ + " A proposal has been enacted. \\[ref_index, result\\]" + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed. \\[who, proposal_hash, until\\]" + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]" + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned).", + " \\[proposal_hash, provider, deposit\\]" + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper.", + " \\[proposal_hash, provider, deposit, reaper\\]" + ] + }, + { + "name": "Blacklisted", + "args": [ + "Hash" + ], + "docs": [ + " A proposal \\[hash\\] has been blacklisted permanently." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x00c20100", + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "type": "BlockNumber", + "value": "0x00c20100", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x34a1aec6000000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "type": "bool", + "value": "0x01", + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": "BlockNumber", + "value": "0x08070000", + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x12160500000000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + }, + { + "name": "MaxVotes", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + } + ], + "errors": [ + { + "name": "ValueLow", + "docs": [ + " Value too low" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "docs": [ + " Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "docs": [ + " Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "docs": [ + " Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "docs": [ + " Invalid hash" + ] + }, + { + "name": "NoProposal", + "docs": [ + " No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "docs": [ + " Identity may not veto a proposal twice" + ] + }, + { + "name": "DuplicatePreimage", + "docs": [ + " Preimage already noted" + ] + }, + { + "name": "NotImminent", + "docs": [ + " Not imminent" + ] + }, + { + "name": "TooEarly", + "docs": [ + " Too early" + ] + }, + { + "name": "Imminent", + "docs": [ + " Imminent" + ] + }, + { + "name": "PreimageMissing", + "docs": [ + " Preimage not found" + ] + }, + { + "name": "ReferendumInvalid", + "docs": [ + " Vote given for invalid referendum" + ] + }, + { + "name": "PreimageInvalid", + "docs": [ + " Invalid preimage" + ] + }, + { + "name": "NoneWaiting", + "docs": [ + " No proposals waiting" + ] + }, + { + "name": "NotVoter", + "docs": [ + " The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "docs": [ + " The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "docs": [ + " Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "docs": [ + " The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "docs": [ + " The account currently has votes attached to it and the operation cannot succeed until", + " these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "docs": [ + " The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "docs": [ + " Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "docs": [ + " Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "docs": [ + " Maximum number of votes reached." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " Maximum number of proposals reached." + ] + } + ], + "index": 13 + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the", + " members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching", + " `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a", + " fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + " proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec", + " `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current", + " state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 14 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the", + " members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching", + " `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a", + " fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + " proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec", + " `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current", + " state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 15 + }, + { + "name": "PhragmenElection", + "storage": { + "prefix": "PhragmenElection", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voter", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election. This can be called to", + " set the initial votes, or update already existing votes.", + "", + " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + " reserved. The deposit is based on the number of votes and can be updated over time.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + " If `value` is more than `who`'s total balance, then the maximum of the two is used.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " It is the responsibility of the caller to **NOT** place all of their balance into the", + " lock and keep some for further operations.", + "", + " # ", + " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter.", + "", + " This removes the lock and returns the deposit.", + "", + " The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "args": [ + { + "name": "candidate_count", + "type": "Compact" + } + ], + "docs": [ + " Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + " All candidates are wiped at the end of the term. They either become a member/runner-up,", + " or leave the system while their deposit is slashed.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + " to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + " # ", + " The number of current candidates must be provided as witness data.", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [ + { + "name": "renouncing", + "type": "Renouncing" + } + ], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + "", + " - `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + " - `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + " The dispatch origin of this call must be signed, and have one of the above roles.", + "", + " # ", + " The type of renouncing must be provided as witness data.", + " # " + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "has_replacement", + "type": "bool" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen election is started.", + "", + " The dispatch origin of this call must be root.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " If we have a replacement, we use a small weight. Else, since this is a root call and", + " will go into phragmen, we assume full block for now.", + " # " + ] + }, + { + "name": "clean_defunct_voters", + "args": [ + { + "name": "_num_voters", + "type": "u32" + }, + { + "name": "_num_defunct", + "type": "u32" + } + ], + "docs": [ + " Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + " deposit of the removed voters are returned.", + "", + " This is an root function to be used only for cleaning the state.", + "", + " The dispatch origin of this call must be root.", + "", + " # ", + " The total number of voters and those that are defunct must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with \\[new_members\\]. This indicates that enough candidates existed to run", + " the election, not that enough have has been elected. The inner value must be examined", + " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + " begin with." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round. This is different from", + " `NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "args": [], + "docs": [ + " Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been removed. This should always be followed by either `NewTerm` or", + " `EmptyTerm`." + ] + }, + { + "name": "Renounced", + "args": [ + "AccountId" + ], + "docs": [ + " Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or", + " runner-up.", + "", + " Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set." + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "LockIdentifier", + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x34a1aec6000000000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "type": "BalanceOf", + "value": "0x10c55b920f0000000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "type": "BalanceOf", + "value": "0x80965b06000000000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x13000000", + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x13000000", + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0x40380000", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + } + ], + "errors": [ + { + "name": "UnableToVote", + "docs": [ + " Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "docs": [ + " Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "docs": [ + " Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "docs": [ + " Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "docs": [ + " Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "docs": [ + " Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "docs": [ + " Must be a voter." + ] + }, + { + "name": "ReportSelf", + "docs": [ + " Cannot report self." + ] + }, + { + "name": "DuplicatedCandidate", + "docs": [ + " Duplicated candidate submission." + ] + }, + { + "name": "MemberSubmit", + "docs": [ + " Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "docs": [ + " Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "docs": [ + " Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "docs": [ + " The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "docs": [ + " The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "docs": [ + " The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "docs": [ + " Prediction regarding replacement after member removal is wrong." + ] + } + ], + "index": 16 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `T::SwapOrigin`.", + "", + " Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member.", + "", + " Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Set the prime member. Must be a current member.", + "", + " May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "args": [], + "docs": [ + " Remove the prime member if it exists.", + "", + " May only be called from `T::PrimeOrigin`." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "AlreadyMember", + "docs": [ + " Already a member." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + } + ], + "index": 17 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `ProposalCount`, `origin account`", + " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `Proposals`, `rejected proposer account`", + " - DbWrites: `Proposals`, `rejected proposer account`", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - Complexity: O(1).", + " - DbReads: `Proposals`, `Approvals`", + " - DbWrite: `Approvals`", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal. \\[proposal_index\\]" + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds. \\[budget_remaining\\]" + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated. \\[proposal_index, award, beneficiary\\]" + ] + }, + { + "name": "Rejected", + "args": [ + "ProposalIndex", + "Balance" + ], + "docs": [ + " A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]" + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt. \\[burn\\]" + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend.", + " \\[budget_remaining\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited. \\[deposit\\]" + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x1098a4850f0000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x80510100", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0xd0070000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of approvals that can wait in the spending queue." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "TooManyApprovals", + "docs": [ + " Too many approvals in the queue." + ] + } + ], + "index": 18 + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "EthereumAddress", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "EthereumAddress", + "value": "(BalanceOf,BalanceOf,BlockNumber)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "EthereumAddress", + "value": "StatementKind", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "AccountId", + "value": "EthereumAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "ethereum_signature", + "type": "EcdsaSignature" + } + ], + "docs": [ + " Make a claim to collect your DOTs.", + "", + " The dispatch origin for this call must be _None_.", + "", + " Unsigned Validation:", + " A call to claim is deemed valid if the signature provided matches", + " the expected signed message of:", + "", + " > Ethereum Signed Message:", + " > (configured prefix string)(address)", + "", + " and `address` matches the `dest` account.", + "", + " Parameters:", + " - `dest`: The destination account to payout the claim.", + " - `ethereum_signature`: The signature of an ethereum signed message", + " matching the format described above.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " Weight includes logic to validate unsigned `claim` call.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "mint_claim", + "args": [ + { + "name": "who", + "type": "EthereumAddress" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "vesting_schedule", + "type": "Option<(BalanceOf,BalanceOf,BlockNumber)>" + }, + { + "name": "statement", + "type": "Option" + } + ], + "docs": [ + " Mint a new claim to collect DOTs.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " Parameters:", + " - `who`: The Ethereum address allowed to collect this claim.", + " - `value`: The number of DOTs that will be claimed.", + " - `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " We assume worst case that both vesting and statement is being inserted.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "claim_attest", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "ethereum_signature", + "type": "EcdsaSignature" + }, + { + "name": "statement", + "type": "Bytes" + } + ], + "docs": [ + " Make a claim to collect your DOTs by signing a statement.", + "", + " The dispatch origin for this call must be _None_.", + "", + " Unsigned Validation:", + " A call to `claim_attest` is deemed valid if the signature provided matches", + " the expected signed message of:", + "", + " > Ethereum Signed Message:", + " > (configured prefix string)(address)(statement)", + "", + " and `address` matches the `dest` account; the `statement` must match that which is", + " expected according to your purchase arrangement.", + "", + " Parameters:", + " - `dest`: The destination account to payout the claim.", + " - `ethereum_signature`: The signature of an ethereum signed message", + " matching the format described above.", + " - `statement`: The identity of the statement which is being attested to in the signature.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " Weight includes logic to validate unsigned `claim_attest` call.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "attest", + "args": [ + { + "name": "statement", + "type": "Bytes" + } + ], + "docs": [ + " Attest to a statement, needed to finalize the claims process.", + "", + " WARNING: Insecure unless your chain includes `PrevalidateAttests` as a `SignedExtension`.", + "", + " Unsigned Validation:", + " A call to attest is deemed valid if the sender has a `Preclaim` registered", + " and provides a `statement` which is expected for the account.", + "", + " Parameters:", + " - `statement`: The identity of the statement which is being attested to in the signature.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " Weight includes logic to do pre-validation on `attest` call.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "move_claim", + "args": [ + { + "name": "old", + "type": "EthereumAddress" + }, + { + "name": "new", + "type": "EthereumAddress" + }, + { + "name": "maybe_preclaim", + "type": "Option" + } + ], + "docs": [] + } + ], + "events": [ + { + "name": "Claimed", + "args": [ + "AccountId", + "EthereumAddress", + "Balance" + ], + "docs": [ + " Someone claimed some DOTs. `[who, ethereum_address, amount]`" + ] + } + ], + "constants": [ + { + "name": "Prefix", + "type": "Bytes", + "value": "0x7c506179204b534d7320746f20746865204b7573616d61206163636f756e743a", + "docs": [] + } + ], + "errors": [ + { + "name": "InvalidEthereumSignature", + "docs": [ + " Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "docs": [ + " Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "docs": [ + " Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "docs": [ + " There's not enough in the pot to pay out some unvested amount. Generally implies a logic", + " error." + ] + }, + { + "name": "InvalidStatement", + "docs": [ + " A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "docs": [ + " The account already has a vested balance." + ] + } + ], + "index": 19 + }, + { + "name": "Utility", + "storage": null, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # ", + "", + " This will return `Ok` in all circumstances. To determine the success of the batch, an", + " event is deposited. If a call failed and the batch was interrupted, then the", + " `BatchInterrupted` event is deposited, along with the number of successful calls made", + " and the error of the failed call. If all were successful, then the `BatchCompleted`", + " event is deposited." + ] + }, + { + "name": "as_derivative", + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through an indexed pseudonym of the sender.", + "", + " Filter from origin are passed along. The call will be dispatched with an origin which", + " use the same filter as the origin of this call.", + "", + " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + " because you expect `proxy` to have been used prior in the call stack and you do not want", + " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + " in the Multisig pallet instead.", + "", + " NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + " The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls and atomically execute them.", + " The whole transaction will rollback and fail if any of the calls failed.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # " + ] + } + ], + "events": [ + { + "name": "BatchInterrupted", + "args": [ + "u32", + "DispatchError" + ], + "docs": [ + " Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + " well as the error. \\[index, error\\]" + ] + }, + { + "name": "BatchCompleted", + "args": [], + "docs": [ + " Batch of dispatches completed fully with no error." + ] + }, + { + "name": "ItemCompleted", + "args": [], + "docs": [ + " A single item within a Batch of dispatches has completed with no error." + ] + } + ], + "constants": [ + { + "name": "batched_calls_limit", + "type": "u32", + "value": "0x0cc30000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": [ + { + "name": "TooManyCalls", + "docs": [ + " Too many calls batched." + ] + } + ], + "index": 24 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Registration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "(AccountId,Data)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": [ + { + "name": "add_registrar", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Add a registrar to the system.", + "", + " The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + " - `account`: the account of the registrar.", + "", + " Emits `RegistrarAdded` if successful.", + "", + " # ", + " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_identity", + "args": [ + { + "name": "info", + "type": "IdentityInfo" + } + ], + "docs": [ + " Set an account's identity information and reserve the appropriate deposit.", + "", + " If the account already has identity information, the deposit is taken as part payment", + " for the new deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `info`: The identity information.", + "", + " Emits `IdentitySet` if successful.", + "", + " # ", + " - `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)", + " - One balance reserve operation.", + " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_subs", + "args": [ + { + "name": "subs", + "type": "Vec<(AccountId,Data)>" + } + ], + "docs": [ + " Set the sub-accounts of the sender.", + "", + " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `subs`: The identity's (new) sub-accounts.", + "", + " # ", + " - `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - At most one balance operations.", + " - DB:", + " - `P + S` storage mutations (codec complexity `O(1)`)", + " - One storage read (codec complexity `O(P)`).", + " - One storage write (codec complexity `O(S)`).", + " - One storage-exists (`IdentityOf::contains_key`).", + " # " + ] + }, + { + "name": "clear_identity", + "args": [], + "docs": [ + " Clear an account's identity info and all sub-accounts and return all deposits.", + "", + " Payment: All reserved balances on the account are returned.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " Emits `IdentityCleared` if successful.", + "", + " # ", + " - `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded).", + " - One balance-unreserve operation.", + " - `2` storage reads and `S + 2` storage deletions.", + " - One event.", + " # " + ] + }, + { + "name": "request_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "max_fee", + "type": "Compact" + } + ], + "docs": [ + " Request a judgement from a registrar.", + "", + " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + " given.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is requested.", + " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + " ```nocompile", + " Self::registrars().get(reg_index).unwrap().fee", + " ```", + "", + " Emits `JudgementRequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", + " - One event.", + " # " + ] + }, + { + "name": "cancel_request", + "args": [ + { + "name": "reg_index", + "type": "RegistrarIndex" + } + ], + "docs": [ + " Cancel a previous request.", + "", + " Payment: A previously reserved deposit is returned on success.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + " Emits `JudgementUnrequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - One storage mutation `O(R + X)`.", + " - One event", + " # " + ] + }, + { + "name": "set_fee", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Set the fee required for a judgement to be requested from a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fee`: the new fee.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_account_id", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Change the account associated with a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `new`: the new account ID.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_fields", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fields", + "type": "IdentityFields" + } + ], + "docs": [ + " Set the field information for a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fields`: the fields that the registrar concerns themselves with.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", + " # " + ] + }, + { + "name": "provide_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "judgement", + "type": "IdentityJudgement" + } + ], + "docs": [ + " Provide a judgement for an account's identity.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `reg_index`.", + "", + " - `reg_index`: the index of the registrar whose judgement is being made.", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "", + " Emits `JudgementGiven` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-transfer operation.", + " - Up to one account-lookup operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "kill_identity", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's identity and sub-account information and slash the deposits.", + "", + " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + " `Slash`. Verification request deposits are not returned; they should be cancelled", + " manually using `cancel_request`.", + "", + " The dispatch origin for this call must match `T::ForceOrigin`.", + "", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + " Emits `IdentityKilled` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage mutations.", + " - One event.", + " # " + ] + }, + { + "name": "add_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Add the given account to the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Alter the associated name of the given sub-account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + } + ], + "docs": [ + " Remove the given account from the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "args": [], + "docs": [ + " Remove the sender as a sub-account.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender (*not* the original depositor).", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " super-identity.", + "", + " NOTE: This should not normally be used, but is provided in the case that the non-", + " controller of an account is maliciously registered as a sub-account." + ] + } + ], + "events": [ + { + "name": "IdentitySet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set or reset (which will remove all judgements). \\[who\\]" + ] + }, + { + "name": "IdentityCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned. \\[who, deposit\\]" + ] + }, + { + "name": "IdentityKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed. \\[who, deposit\\]" + ] + }, + { + "name": "JudgementRequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was asked from a registrar. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementUnrequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement request was retracted. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementGiven", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was given by a registrar. \\[target, registrar_index\\]" + ] + }, + { + "name": "RegistrarAdded", + "args": [ + "RegistrarIndex" + ], + "docs": [ + " A registrar was added. \\[registrar_index\\]" + ] + }, + { + "name": "SubIdentityAdded", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRemoved", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was removed from an identity and the deposit freed.", + " \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRevoked", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was cleared, and the given deposit repatriated from the", + " main identity account to the sub-identity account. \\[sub, main, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "BasicDeposit", + "type": "BalanceOf", + "value": "0x084cd2c2070000000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity" + ] + }, + { + "name": "FieldDeposit", + "type": "BalanceOf", + "value": "0x0293b4f0010000000000000000000000", + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": "BalanceOf", + "value": "0x68425d8d010000000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "type": "u32", + "value": "0x64000000", + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "type": "u32", + "value": "0x14000000", + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "errors": [ + { + "name": "TooManySubAccounts", + "docs": [ + " Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "docs": [ + " Account isn't found." + ] + }, + { + "name": "NotNamed", + "docs": [ + " Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "docs": [ + " Empty index." + ] + }, + { + "name": "FeeChanged", + "docs": [ + " Fee is changed." + ] + }, + { + "name": "NoIdentity", + "docs": [ + " No identity found." + ] + }, + { + "name": "StickyJudgement", + "docs": [ + " Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "docs": [ + " Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "docs": [ + " Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "docs": [ + " The target is invalid." + ] + }, + { + "name": "TooManyFields", + "docs": [ + " Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "docs": [ + " Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Account ID is already named." + ] + }, + { + "name": "NotSub", + "docs": [ + " Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "docs": [ + " Sub-account isn't owned by sender." + ] + } + ], + "index": 25 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": "Hash" + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of candidates; bidders that are attempting to become members." + ] + }, + { + "name": "SuspendedCandidates", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,BidKind)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended candidates." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved members." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of members, ordered." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Vouching", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "VouchingStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Members currently vouching or banned from vouching again" + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Vec<(BlockNumber,BalanceOf)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending payouts; ordered by block number, with the amount that should be paid out." + ] + }, + { + "name": "Strikes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "StrikeCount", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The ongoing number of losing votes cast by the member." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "SocietyVote", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "Defender", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SocietyVote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender." + ] + }, + { + "name": "MaxMembers", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The max number of members for the society at one time." + ] + } + ] + }, + "calls": [ + { + "name": "bid", + "args": [ + { + "name": "value", + "type": "BalanceOf" + } + ], + "docs": [ + " A user outside of the society can make a bid for entry.", + "", + " Payment: `CandidateDeposit` will be reserved for making a bid. It is returned", + " when the bid becomes a member, or if the bid calls `unbid`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `value`: A one time payment the bid would like to receive when joining the society.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members), X (balance reserve)", + " - Storage Reads:", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " \t- One storage read to retrieve all members. O(M)", + " - Storage Writes:", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for new bid.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unbid", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " A bidder can remove their bid for entry into society.", + " By doing so, they will have their candidate deposit returned or", + " they will unvouch their voucher.", + "", + " Payment: The bid deposit is unreserved if the user made a bid.", + "", + " The dispatch origin for this call must be _Signed_ and a bidder.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who wants to unbid.", + "", + " # ", + " Key: B (len of bids), X (balance unreserve)", + " - One storage read and write to retrieve and update the bids. O(B)", + " - Either one unreserve balance action O(X) or one vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B + X)", + " # " + ] + }, + { + "name": "vouch", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "tip", + "type": "BalanceOf" + } + ], + "docs": [ + " As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + " There is no deposit required to vouch for a new bid, but a member can only vouch for", + " one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + " the suspension judgement origin, the member will be banned from vouching again.", + "", + " As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + " be paid as a portion of the reward the member will receive for joining the society.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `who`: The user who you would like to vouch for.", + " - `value`: The total reward to be paid between you and the candidate if they become", + " a member in the society.", + " - `tip`: Your cut of the total `value` payout when the candidate is inducted into", + " the society. Tips larger than `value` will be saturated upon payout.", + "", + " # ", + " Key: B (len of bids), C (len of candidates), M (len of members)", + " - Storage Reads:", + " \t- One storage read to retrieve all members. O(M)", + " \t- One storage read to check member is not already vouching. O(1)", + " \t- One storage read to check for suspended candidate. O(1)", + " \t- One storage read to check for suspended member. O(1)", + " \t- One storage read to retrieve all current bids. O(B)", + " \t- One storage read to retrieve all current candidates. O(C)", + " - Storage Writes:", + " \t- One storage write to insert vouching status to the member. O(1)", + " \t- One storage mutate to add a new bid to the vector O(B) (TODO: possible optimization w/ read)", + " \t- Up to one storage removal if bid.len() > MAX_BID_COUNT. O(1)", + " - Notable Computation:", + " \t- O(log M) search to check sender is a member.", + " \t- O(B + C + log M) search to check user is not already a part of society.", + " \t- O(log B) search to insert the new bid sorted.", + " - External Module Operations:", + " \t- One balance reserve operation. O(X)", + " \t- Up to one balance unreserve operation if bids.len() > MAX_BID_COUNT.", + " - Events:", + " \t- One event for vouch.", + " \t- Up to one event for AutoUnbid if bid.len() > MAX_BID_COUNT.", + "", + " Total Complexity: O(M + B + C + logM + logB + X)", + " # " + ] + }, + { + "name": "unvouch", + "args": [ + { + "name": "pos", + "type": "u32" + } + ], + "docs": [ + " As a vouching member, unvouch a bid. This only works while vouched user is", + " only a bidder (and not a candidate).", + "", + " The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + " Parameters:", + " - `pos`: Position in the `Bids` vector of the bid who should be unvouched.", + "", + " # ", + " Key: B (len of bids)", + " - One storage read O(1) to check the signer is a vouching member.", + " - One storage mutate to retrieve and update the bids. O(B)", + " - One vouching storage removal. O(1)", + " - One event.", + "", + " Total Complexity: O(B)", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "candidate", + "type": "LookupSource" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on a candidate.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `candidate`: The candidate that the member would like to bid on.", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " Key: C (len of candidates), M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One account lookup.", + " - One storage read O(C) and O(C) search to check that user is a candidate.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM + C)", + " # " + ] + }, + { + "name": "defender_vote", + "args": [ + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " As a member, vote on the defender.", + "", + " The dispatch origin for this call must be _Signed_ and a member.", + "", + " Parameters:", + " - `approve`: A boolean which says if the candidate should be", + " approved (`true`) or rejected (`false`).", + "", + " # ", + " - Key: M (len of members)", + " - One storage read O(M) and O(log M) search to check user is a member.", + " - One storage write to add vote to votes. O(1)", + " - One event.", + "", + " Total Complexity: O(M + logM)", + " # " + ] + }, + { + "name": "payout", + "args": [], + "docs": [ + " Transfer the first matured payout for the sender and remove it from the records.", + "", + " NOTE: This extrinsic needs to be called multiple times to claim multiple matured payouts.", + "", + " Payment: The member will receive a payment equal to their first matured", + " payout to their free balance.", + "", + " The dispatch origin for this call must be _Signed_ and a member with", + " payouts remaining.", + "", + " # ", + " Key: M (len of members), P (number of payouts for a particular member)", + " - One storage read O(M) and O(log M) search to check signer is a member.", + " - One storage read O(P) to get all payouts for a member.", + " - One storage read O(1) to get the current block number.", + " - One currency transfer call. O(X)", + " - One storage write or removal to update the member's payouts. O(P)", + "", + " Total Complexity: O(M + logM + P + X)", + " # " + ] + }, + { + "name": "found", + "args": [ + { + "name": "founder", + "type": "AccountId" + }, + { + "name": "max_members", + "type": "u32" + }, + { + "name": "rules", + "type": "Bytes" + } + ], + "docs": [ + " Found the society.", + "", + " This is done as a discrete action in order to allow for the", + " module to be included into a running chain and can only be done once.", + "", + " The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + " Parameters:", + " - `founder` - The first member and head of the newly founded society.", + " - `max_members` - The initial max number of members for the society.", + " - `rules` - The rules of this society concerning membership.", + "", + " # ", + " - Two storage mutates to set `Head` and `Founder`. O(1)", + " - One storage write to add the first member to society. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "unfound", + "args": [], + "docs": [ + " Annul the founding of the society.", + "", + " The dispatch origin for this call must be Signed, and the signing account must be both", + " the `Founder` and the `Head`. This implies that it may only be done when there is one", + " member.", + "", + " # ", + " - Two storage reads O(1).", + " - Four storage removals O(1).", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + }, + { + "name": "judge_suspended_member", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "forgive", + "type": "bool" + } + ], + "docs": [ + " Allow suspension judgement origin to make judgement on a suspended member.", + "", + " If a suspended member is forgiven, we simply add them back as a member, not affecting", + " any of the existing storage items for that member.", + "", + " If a suspended member is rejected, remove all associated storage items, including", + " their payouts, and remove any vouched bids they currently have.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended member to be judged.", + " - `forgive` - A boolean representing whether the suspension judgement origin", + " forgives (`true`) or rejects (`false`) a suspended member.", + "", + " # ", + " Key: B (len of bids), M (len of members)", + " - One storage read to check `who` is a suspended member. O(1)", + " - Up to one storage write O(M) with O(log M) binary search to add a member back to society.", + " - Up to 3 storage removals O(1) to clean up a removed member.", + " - Up to one storage write O(B) with O(B) search to remove vouched bid from bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal. O(1)", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B)", + " # " + ] + }, + { + "name": "judge_suspended_candidate", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "judgement", + "type": "SocietyJudgement" + } + ], + "docs": [ + " Allow suspended judgement origin to make judgement on a suspended candidate.", + "", + " If the judgement is `Approve`, we add them to society as a member with the appropriate", + " payment for joining society.", + "", + " If the judgement is `Reject`, we either slash the deposit of the bid, giving it back", + " to the society treasury, or we ban the voucher from vouching again.", + "", + " If the judgement is `Rebid`, we put the candidate back in the bid pool and let them go", + " through the induction process again.", + "", + " The dispatch origin for this call must be from the _SuspensionJudgementOrigin_.", + "", + " Parameters:", + " - `who` - The suspended candidate to be judged.", + " - `judgement` - `Approve`, `Reject`, or `Rebid`.", + "", + " # ", + " Key: B (len of bids), M (len of members), X (balance action)", + " - One storage read to check `who` is a suspended candidate.", + " - One storage removal of the suspended candidate.", + " - Approve Logic", + " \t- One storage read to get the available pot to pay users with. O(1)", + " \t- One storage write to update the available pot. O(1)", + " \t- One storage read to get the current block number. O(1)", + " \t- One storage read to get all members. O(M)", + " \t- Up to one unreserve currency action.", + " \t- Up to two new storage writes to payouts.", + " \t- Up to one storage write with O(log M) binary search to add a member to society.", + " - Reject Logic", + " \t- Up to one repatriate reserved currency action. O(X)", + " \t- Up to one storage write to ban the vouching member from vouching again.", + " - Rebid Logic", + " \t- Storage mutate with O(log B) binary search to place the user back into bids.", + " - Up to one additional event if unvouch takes place.", + " - One storage removal.", + " - One event for the judgement.", + "", + " Total Complexity: O(M + logM + B + X)", + " # " + ] + }, + { + "name": "set_max_members", + "args": [ + { + "name": "max", + "type": "u32" + } + ], + "docs": [ + " Allows root origin to change the maximum number of members in society.", + " Max membership count must be greater than 1.", + "", + " The dispatch origin for this call must be from _ROOT_.", + "", + " Parameters:", + " - `max` - The maximum number of members for the society.", + "", + " # ", + " - One storage write to update the max. O(1)", + " - One event.", + "", + " Total Complexity: O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "Founded", + "args": [ + "AccountId" + ], + "docs": [ + " The society is founded by the given identity. \\[founder\\]" + ] + }, + { + "name": "Bid", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A membership bid just happened. The given account is the candidate's ID and their offer", + " is the second. \\[candidate_id, offer\\]" + ] + }, + { + "name": "Vouch", + "args": [ + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A membership bid just happened by vouching. The given account is the candidate's ID and", + " their offer is the second. The vouching party is the third. \\[candidate_id, offer, vouching\\]" + ] + }, + { + "name": "AutoUnbid", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "args": [ + "AccountId", + "Vec" + ], + "docs": [ + " A group of candidates have been inducted. The batch's primary is the first value, the", + " batch in full is the second. \\[primary, candidates\\]" + ] + }, + { + "name": "SuspendedMemberJudgement", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A suspended member has been judged. \\[who, judged\\]" + ] + }, + { + "name": "CandidateSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[candidate\\] has been suspended" + ] + }, + { + "name": "MemberSuspended", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been suspended" + ] + }, + { + "name": "Challenged", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been challenged" + ] + }, + { + "name": "Vote", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed \\[candidate, voter, vote\\]" + ] + }, + { + "name": "DefenderVote", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A vote has been placed for a defending member \\[voter, vote\\]" + ] + }, + { + "name": "NewMaxMembers", + "args": [ + "u32" + ], + "docs": [ + " A new \\[max\\] member count has been set" + ] + }, + { + "name": "Unfounded", + "args": [ + "AccountId" + ], + "docs": [ + " Society is unfounded. \\[founder\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds were deposited into the society account. \\[value\\]" + ] + } + ], + "constants": [ + { + "name": "CandidateDeposit", + "type": "BalanceOf", + "value": "0x084cd2c2070000000000000000000000", + "docs": [ + " The minimum amount of a deposit required for a bid to be made." + ] + }, + { + "name": "WrongSideDeduction", + "type": "BalanceOf", + "value": "0x68425d8d010000000000000000000000", + "docs": [ + " The amount of the unpaid reward that gets deducted in the case that either a skeptic", + " doesn't vote or someone votes in the wrong way." + ] + }, + { + "name": "MaxStrikes", + "type": "u32", + "value": "0x0a000000", + "docs": [ + " The number of times a member may vote the wrong way (or not at all, when they are a skeptic)", + " before they become suspended." + ] + }, + { + "name": "PeriodSpend", + "type": "BalanceOf", + "value": "0x90d9120d840100000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "RotationPeriod", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " The number of blocks between candidate/membership rotation periods." + ] + }, + { + "name": "ChallengePeriod", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f736f636965", + "docs": [ + " The societies's module id" + ] + }, + { + "name": "MaxCandidateIntake", + "type": "u32", + "value": "0x01000000", + "docs": [ + " Maximum candidate intake per round." + ] + } + ], + "errors": [ + { + "name": "BadPosition", + "docs": [ + " An incorrect position was provided." + ] + }, + { + "name": "NotMember", + "docs": [ + " User is not a member." + ] + }, + { + "name": "AlreadyMember", + "docs": [ + " User is already a member." + ] + }, + { + "name": "Suspended", + "docs": [ + " User is suspended." + ] + }, + { + "name": "NotSuspended", + "docs": [ + " User is not suspended." + ] + }, + { + "name": "NoPayout", + "docs": [ + " Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "docs": [ + " Society already founded." + ] + }, + { + "name": "InsufficientPot", + "docs": [ + " Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "docs": [ + " Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouching", + "docs": [ + " Member is not vouching." + ] + }, + { + "name": "Head", + "docs": [ + " Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "docs": [ + " Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "docs": [ + " User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "docs": [ + " User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "docs": [ + " User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "docs": [ + " Too many members in the society." + ] + }, + { + "name": "NotFounder", + "docs": [ + " The caller is not the founder." + ] + }, + { + "name": "NotHead", + "docs": [ + " The caller is not the head." + ] + } + ], + "index": 26 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RecoveryConfig", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "AccountId", + "value": "ActiveRecovery", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": [ + { + "name": "as_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through a recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you want to make a call on-behalf-of.", + " - `call`: The call you want to make with the recovered account.", + "", + " # ", + " - The weight of the `call` + 10,000.", + " - One storage lookup to check account is recovered by `who`. O(1)", + " # " + ] + }, + { + "name": "set_recovered", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow ROOT to bypass the recovery process and set an a rescuer account", + " for a lost account directly.", + "", + " The dispatch origin for this call must be _ROOT_.", + "", + " Parameters:", + " - `lost`: The \"lost account\" to be recovered.", + " - `rescuer`: The \"rescuer account\" which can call as the lost account.", + "", + " # ", + " - One storage write O(1)", + " - One event", + " # " + ] + }, + { + "name": "create_recovery", + "args": [ + { + "name": "friends", + "type": "Vec" + }, + { + "name": "threshold", + "type": "u16" + }, + { + "name": "delay_period", + "type": "BlockNumber" + } + ], + "docs": [ + " Create a recovery configuration for your account. This makes your account recoverable.", + "", + " Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + " will be reserved for storing the recovery configuration. This deposit is returned", + " in full when the user calls `remove_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + " - `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + " - `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered.", + "", + " # ", + " - Key: F (len of friends)", + " - One storage read to check that account is not already recoverable. O(1).", + " - A check that the friends list is sorted and unique. O(F)", + " - One currency reserve operation. O(X)", + " - One storage write. O(1). Codec O(F).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "initiate_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Initiate the process for recovering a recoverable account.", + "", + " Payment: `RecoveryDeposit` balance will be reserved for initiating the", + " recovery process. This deposit will always be repatriated to the account", + " trying to be recovered. See `close_recovery`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration).", + "", + " # ", + " - One storage read to check that account is recoverable. O(F)", + " - One storage read to check that this recovery process hasn't already started. O(1)", + " - One currency reserve operation. O(X)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1).", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "vouch_recovery", + "args": [ + { + "name": "lost", + "type": "AccountId" + }, + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " Allow a \"friend\" of a recoverable account to vouch for an active recovery", + " process for that account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + " for the recoverable account.", + "", + " Parameters:", + " - `lost`: The lost account that you want to recover.", + " - `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + " The combination of these two parameters must point to an active recovery", + " process.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One binary search to confirm caller is a friend. O(logF)", + " - One binary search to confirm caller has not already vouched. O(logV)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + logF + V + logV)", + " # " + ] + }, + { + "name": "claim_recovery", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Allow a successful rescuer to claim their recovered account.", + "", + " The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + " who has successfully completed the account recovery process: collected", + " `threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + " Parameters:", + " - `account`: The lost account that you want to claim has been successfully recovered by", + " you.", + "", + " # ", + " Key: F (len of friends in config), V (len of vouching friends)", + " - One storage read to get the recovery configuration. O(1), Codec O(F)", + " - One storage read to get the active recovery process. O(1), Codec O(V)", + " - One storage read to get the current block number. O(1)", + " - One storage write. O(1), Codec O(V).", + " - One event.", + "", + " Total Complexity: O(F + V)", + " # " + ] + }, + { + "name": "close_recovery", + "args": [ + { + "name": "rescuer", + "type": "AccountId" + } + ], + "docs": [ + " As the controller of a recoverable account, close an active recovery", + " process for your account.", + "", + " Payment: By calling this function, the recoverable account will receive", + " the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account with an active recovery process for it.", + "", + " Parameters:", + " - `rescuer`: The account trying to rescue this recoverable account.", + "", + " # ", + " Key: V (len of vouching friends)", + " - One storage read/remove to get the active recovery process. O(1), Codec O(V)", + " - One balance call to repatriate reserved. O(X)", + " - One event.", + "", + " Total Complexity: O(V + X)", + " # " + ] + }, + { + "name": "remove_recovery", + "args": [], + "docs": [ + " Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + " NOTE: The user must make sure to call `close_recovery` on all active", + " recovery attempts before calling this function else it will fail.", + "", + " Payment: By calling this function the recoverable account will unreserve", + " their recovery configuration deposit.", + " (`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + " The dispatch origin for this call must be _Signed_ and must be a", + " recoverable account (i.e. has a recovery configuration).", + "", + " # ", + " Key: F (len of friends)", + " - One storage read to get the prefix iterator for active recoveries. O(1)", + " - One storage read/remove to get the recovery configuration. O(1), Codec O(F)", + " - One balance call to unreserved. O(X)", + " - One event.", + "", + " Total Complexity: O(F + X)", + " # " + ] + }, + { + "name": "cancel_recovered", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Cancel the ability to use `as_recovered` for `account`.", + "", + " The dispatch origin for this call must be _Signed_ and registered to", + " be able to make calls on behalf of the recovered account.", + "", + " Parameters:", + " - `account`: The recovered account you are able to call on-behalf-of.", + "", + " # ", + " - One storage mutation to check account is recovered by `who`. O(1)", + " # " + ] + } + ], + "events": [ + { + "name": "RecoveryCreated", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been set up for an \\[account\\]." + ] + }, + { + "name": "RecoveryInitiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process has been initiated for lost account by rescuer account.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "RecoveryVouched", + "args": [ + "AccountId", + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been vouched for by sender.", + " \\[lost, rescuer, sender\\]" + ] + }, + { + "name": "RecoveryClosed", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A recovery process for lost account by rescuer account has been closed.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "AccountRecovered", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Lost account has been successfully recovered by rescuer account.", + " \\[lost, rescuer\\]" + ] + }, + { + "name": "RecoveryRemoved", + "args": [ + "AccountId" + ], + "docs": [ + " A recovery process has been removed for an \\[account\\]." + ] + } + ], + "constants": [ + { + "name": "ConfigDepositBase", + "type": "BalanceOf", + "value": "0x042669e1030000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": "BalanceOf", + "value": "0x9a505763000000000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": "u16", + "value": "0x0900", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration." + ] + }, + { + "name": "RecoveryDeposit", + "type": "BalanceOf", + "value": "0x042669e1030000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": [ + { + "name": "NotAllowed", + "docs": [ + " User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "docs": [ + " Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "docs": [ + " Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "docs": [ + " Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "docs": [ + " Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "docs": [ + " This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "docs": [ + " A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "docs": [ + " A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "docs": [ + " This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "docs": [ + " The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "docs": [ + " This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "docs": [ + " The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "docs": [ + " There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "docs": [ + " This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "docs": [ + " Some internal state is broken." + ] + } + ], + "index": 27 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": [ + { + "name": "vest", + "args": [], + "docs": [ + " Unlock any vested funds of the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 2 Reads, 2 Writes", + " - Reads: Vesting Storage, Balances Locks, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, [Sender Account]", + " # " + ] + }, + { + "name": "vest_other", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Unlock any vested funds of a `target` account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account whose vested funds should be unlocked. Must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account", + " - Writes: Vesting Storage, Balances Locks, Target Account", + " # " + ] + }, + { + "name": "vested_transfer", + "args": [ + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Create a vested transfer.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account receiving the vested funds.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " NOTE: This will unlock all schedules through the current block.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " # " + ] + }, + { + "name": "force_vested_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Force a vested transfer.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `source`: The account whose funds should be transferred.", + " - `target`: The account that should be transferred the vested funds.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " NOTE: This will unlock all schedules through the current block.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 4 Reads, 4 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", + " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", + " # " + ] + }, + { + "name": "merge_schedules", + "args": [ + { + "name": "schedule1_index", + "type": "u32" + }, + { + "name": "schedule2_index", + "type": "u32" + } + ], + "docs": [ + " Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + " the highest possible start and end blocks. If both schedules have already started the", + " current block will be used as the schedule start; with the caveat that if one schedule", + " is finished by the current block, the other will be treated as the new merged schedule,", + " unmodified.", + "", + " NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + " NOTE: This will unlock all schedules through the current block prior to merging.", + " NOTE: If both schedules have ended by the current block, no new schedule will be created", + " and both will be removed.", + "", + " Merged schedule attributes:", + " - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + " - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + " - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `schedule1_index`: index of the first schedule to merge.", + " - `schedule2_index`: index of the second schedule to merge." + ] + } + ], + "events": [ + { + "name": "VestingUpdated", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The amount vested has been updated. This could indicate a change in funds available.", + " The balance given is the amount which is left unvested (and thus locked).", + " \\[account, unvested\\]" + ] + }, + { + "name": "VestingCompleted", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has become fully vested." + ] + } + ], + "constants": [ + { + "name": "MinVestedTransfer", + "type": "BalanceOf", + "value": "0x34a1aec6000000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": "u32", + "value": "0x1c000000", + "docs": [] + } + ], + "errors": [ + { + "name": "NotVesting", + "docs": [ + " The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "docs": [ + " The account already has `MaxVestingSchedules` count of schedules and thus", + " cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "docs": [ + " Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "docs": [ + " An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "docs": [ + " Failed to create a new schedule because some parameter was invalid." + ] + } + ], + "index": 28 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Bytes", + "value": "TaskAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from identity to the block number and index of the task." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "schedule", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.29 + .126 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda", + " - Will use base weight of 25 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u32" + } + ], + "docs": [ + " Cancel an anonymously scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.15 + 2.869 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_named", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 29.6 + .159 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 35 which should be good for more than 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel_named", + "args": [ + { + "name": "id", + "type": "Bytes" + } + ], + "docs": [ + " Cancel a named scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 24.91 + 2.907 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_after", + "args": [ + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task after a delay.", + "", + " # ", + " Same as [`schedule`].", + " # " + ] + }, + { + "name": "schedule_named_after", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task after a delay.", + "", + " # ", + " Same as [`schedule_named`](Self::schedule_named).", + " # " + ] + } + ], + "events": [ + { + "name": "Scheduled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Scheduled some task. \\[when, index\\]" + ] + }, + { + "name": "Canceled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Canceled some task. \\[when, index\\]" + ] + }, + { + "name": "Dispatched", + "args": [ + "TaskAddress", + "Option", + "DispatchResult" + ], + "docs": [ + " Dispatched some task. \\[task, id, result\\]" + ] + } + ], + "constants": [ + { + "name": "MaximumWeight", + "type": "Weight", + "value": "0x00806e8774010000", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables of less", + " priority than `schedule::HARD_DEADLINE`." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + " Not strictly enforced, but used for weight estimation." + ] + } + ], + "errors": [ + { + "name": "FailedToSchedule", + "docs": [ + " Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "docs": [ + " Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "docs": [ + " Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "docs": [ + " Reschedule failed because it does not change scheduled time." + ] + } + ], + "index": 29 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": [ + { + "name": "proxy", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorised for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "add_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Register a proxy account for the sender that is able to make calls on its behalf.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to make a proxy.", + " - `proxy_type`: The permissions allowed for this proxy account.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Unregister a proxy account for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to remove as a proxy.", + " - `proxy_type`: The permissions currently enabled for the removed proxy account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxies", + "args": [], + "docs": [ + " Unregister all proxy accounts for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " WARNING: This may be called on accounts created by `anonymous`, however if done, then", + " the unreserved fees will be inaccessible. **All access to this account will be lost.**", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "anonymous", + "args": [ + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u16" + } + ], + "docs": [ + " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + " initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + " Requires a `Signed` origin.", + "", + " - `proxy_type`: The type of the proxy that the sender will be registered as over the", + " new account. This will almost always be the most permissive `ProxyType` possible to", + " allow for maximum flexibility.", + " - `index`: A disambiguation index, in case this is called multiple times in the same", + " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + " want to use `0`.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " Fails with `Duplicate` if this has already been called in this transaction, from the", + " same sender, with the same parameters.", + "", + " Fails if there are insufficient funds to pay for deposit.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # ", + " TODO: Might be over counting 1 read" + ] + }, + { + "name": "kill_anonymous", + "args": [ + { + "name": "spawner", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "height", + "type": "Compact" + }, + { + "name": "ext_index", + "type": "Compact" + } + ], + "docs": [ + " Removes a previously spawned anonymous proxy.", + "", + " WARNING: **All access to this account will be lost.** Any funds held in it will be", + " inaccessible.", + "", + " Requires a `Signed` origin, and the sender account must have been created by a call to", + " `anonymous` with corresponding parameters.", + "", + " - `spawner`: The account that originally called `anonymous` to create this account.", + " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", + " - `proxy_type`: The proxy type originally passed to `anonymous`.", + " - `height`: The height of the chain when the call to `anonymous` was processed.", + " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", + "", + " Fails with `NoPermission` in case the caller is not a previously created anonymous", + " account whose `anonymous` call has corresponding parameters.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "announce", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Publish the hash of a proxy-call that will be made in the future.", + "", + " This must be called some number of blocks before the corresponding `proxy` is attempted", + " if the delay associated with the proxy relationship is greater than zero.", + "", + " No more than `MaxPending` announcements may be made at any one time.", + "", + " This will take a deposit of `AnnouncementDepositFactor` as well as", + " `AnnouncementDepositBase` if there are no other pending announcements.", + "", + " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "remove_announcement", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove a given announcement.", + "", + " May be called by a proxy account to remove a call they previously announced and return", + " the deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "reject_announcement", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove the given announcement of a delegate.", + "", + " May be called by a target (proxied) account to remove a call that one of their delegates", + " (`delegate`) has announced they want to execute. The deposit is returned.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `delegate`: The account that previously announced the call.", + " - `call_hash`: The hash of the call to be made.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "proxy_announced", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorized for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + } + ], + "events": [ + { + "name": "ProxyExecuted", + "args": [ + "DispatchResult" + ], + "docs": [ + " A proxy was executed correctly, with the given \\[result\\]." + ] + }, + { + "name": "AnonymousCreated", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "u16" + ], + "docs": [ + " Anonymous account has been created by new proxy with given", + " disambiguation index and proxy type. \\[anonymous, who, proxy_type,", + " disambiguation_index\\]" + ] + }, + { + "name": "Announced", + "args": [ + "AccountId", + "AccountId", + "Hash" + ], + "docs": [ + " An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]" + ] + }, + { + "name": "ProxyAdded", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "BlockNumber" + ], + "docs": [ + " A proxy was added. \\[delegator, delegatee, proxy_type, delay\\]" + ] + } + ], + "constants": [ + { + "name": "ProxyDepositBase", + "type": "BalanceOf", + "value": "0xb07d3b870f0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": "BalanceOf", + "value": "0x34738e06000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": "BalanceOf", + "value": "0xb07d3b870f0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": "BalanceOf", + "value": "0x68e61c0d000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": [ + { + "name": "TooMany", + "docs": [ + " There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "docs": [ + " Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "docs": [ + " Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "docs": [ + " A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "docs": [ + " Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "docs": [ + " Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "docs": [ + " Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "docs": [ + " Cannot add self as proxy." + ] + } + ], + "index": 30 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "[u8;32]", + "value": "Multisig", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + }, + { + "name": "Calls", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "[u8;32]", + "value": "(OpaqueCall,AccountId,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": [ + { + "name": "as_multi_threshold_1", + "args": [ + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `other_signatories`: The accounts (other than the sender) who are part of the", + " multi-signature, but do not participate in the approval process.", + " - `call`: The call to be executed.", + "", + " Result is equivalent to the dispatched result.", + "", + " # ", + " O(Z + C) where Z is the length of the call and C its execution weight.", + " -------------------------------", + " - DB Weight: None", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call", + "type": "OpaqueCall" + }, + { + "name": "store_call", + "type": "bool" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " If there are enough, then dispatch the call.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call`: The call to be executed.", + "", + " NOTE: Unless this is the final approval, you will generally want to use", + " `approve_as_multi` instead, since it only requires a hash of the call.", + "", + " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + " on success, result is `Ok` and the result from the interior call, if it was executed,", + " may be found in the deposited `MultisigExecuted` event.", + "", + " # ", + " - `O(S + Z + Call)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - The weight of the `call`.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`.", + " -------------------------------", + " - DB Weight:", + " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "approve_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call_hash", + "type": "[u8;32]" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call_hash`: The hash of the call to be executed.", + "", + " NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account]", + " - Write: Multisig Storage, [Caller Account]", + " # " + ] + }, + { + "name": "cancel_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "timepoint", + "type": "Timepoint" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + " for this operation will be unreserved on success.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `timepoint`: The timepoint (block number and transaction index) of the first approval", + " transaction for this dispatch.", + " - `call_hash`: The hash of the call to be executed.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - One event.", + " - I/O: 1 read `O(S)`, one remove.", + " - Storage: removes one item.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", + " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", + " # " + ] + } + ], + "events": [ + { + "name": "NewMultisig", + "args": [ + "AccountId", + "AccountId", + "CallHash" + ], + "docs": [ + " A new multisig operation has begun. \\[approving, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigApproval", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been approved by someone.", + " \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigExecuted", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash", + "DispatchResult" + ], + "docs": [ + " A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigCancelled", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]" + ] + } + ], + "constants": [ + { + "name": "DepositBase", + "type": "BalanceOf", + "value": "0xf07520970f0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": "BalanceOf", + "value": "0x80965b06000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": "u16", + "value": "0x6400", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": [ + { + "name": "MinimumThreshold", + "docs": [ + " Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "docs": [ + " Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "docs": [ + " Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "docs": [ + " There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "docs": [ + " There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "docs": [ + " The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "docs": [ + " The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "docs": [ + " Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "docs": [ + " No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "docs": [ + " A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "docs": [ + " A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "docs": [ + " The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "docs": [ + " The data to be stored is already stored." + ] + } + ], + "index": 31 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": "BountyIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bounty", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_bounty", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "description", + "type": "Bytes" + } + ], + "docs": [ + " Propose a new bounty.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + " or slashed when rejected.", + "", + " - `curator`: The curator account whom will manage this bounty.", + " - `fee`: The curator fee.", + " - `value`: The total payment amount of this bounty, curator fee included.", + " - `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a bounty proposal. At a later time, the bounty will be funded and become active", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "propose_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "curator", + "type": "LookupSource" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Assign a curator to a funded bounty.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "unassign_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Unassign curator from a bounty.", + "", + " This function can only be called by the `RejectOrigin` a signed origin.", + "", + " If this function is called by the `RejectOrigin`, we assume that the curator is malicious", + " or inactive. As a result, we will slash the curator when possible.", + "", + " If the origin is the curator, we take this as a sign they are unable to do their job and", + " they willingly give up. We could slash them, but for now we allow them to recover their", + " deposit and exit without issue. (We may want to change this if it is abused.)", + "", + " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + " anyone in the community to call out that a curator is not doing their due diligence, and", + " we should pick a new curator. In this case the curator should also be slashed.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "accept_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Accept the curator role for a bounty.", + " A deposit will be reserved from curator and refund upon successful payout.", + "", + " May only be called from the curator.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "award_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to award.", + " - `beneficiary`: The beneficiary account whom will receive the payout.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "claim_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Claim the payout from an awarded bounty after payout delay.", + "", + " The dispatch origin for this call must be the beneficiary of this bounty.", + "", + " - `bounty_id`: Bounty ID to claim.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "close_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Cancel a proposed or active bounty. All the funds will be sent to treasury and", + " the curator deposit will be unreserved if possible.", + "", + " Only `T::RejectOrigin` is able to cancel a bounty.", + "", + " - `bounty_id`: Bounty ID to cancel.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "extend_bounty_expiry", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Extend the expiry time of an active bounty.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to extend.", + " - `remark`: additional information.", + "", + " # ", + " - O(1).", + " # " + ] + } + ], + "events": [ + { + "name": "BountyProposed", + "args": [ + "BountyIndex" + ], + "docs": [ + " New bounty proposal. \\[index\\]" + ] + }, + { + "name": "BountyRejected", + "args": [ + "BountyIndex", + "Balance" + ], + "docs": [ + " A bounty proposal was rejected; funds were slashed. \\[index, bond\\]" + ] + }, + { + "name": "BountyBecameActive", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty proposal is funded and became active. \\[index\\]" + ] + }, + { + "name": "BountyAwarded", + "args": [ + "BountyIndex", + "AccountId" + ], + "docs": [ + " A bounty is awarded to a beneficiary. \\[index, beneficiary\\]" + ] + }, + { + "name": "BountyClaimed", + "args": [ + "BountyIndex", + "Balance", + "AccountId" + ], + "docs": [ + " A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]" + ] + }, + { + "name": "BountyCanceled", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty is cancelled. \\[index\\]" + ] + }, + { + "name": "BountyExtended", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty expiry is extended. \\[index\\]" + ] + } + ], + "constants": [ + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x55a0fc01000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within bounty description." + ] + }, + { + "name": "BountyDepositBase", + "type": "BalanceOf", + "value": "0x34a1aec6000000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": "BlockNumber", + "value": "0x00e10000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": "BlockNumber", + "value": "0x80c61300", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "BountyCuratorDeposit", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of the curator fee that will be reserved upfront as deposit for bounty curator." + ] + }, + { + "name": "BountyValueMinimum", + "type": "BalanceOf", + "value": "0x68425d8d010000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "docs": [ + " The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "docs": [ + " Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "docs": [ + " Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "docs": [ + " Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "docs": [ + " A bounty payout is pending.", + " To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "docs": [ + " The bounties cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 35 + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "OpenTip", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "report_awesome", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'", + " - DbReads: `Reasons`, `Tips`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "retract_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + " If successful, the original deposit will be unreserved.", + "", + " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + " must have been reported by the signing account through `report_awesome` (and not", + " through `tip_new`).", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " Emits `TipRetracted` if successful.", + "", + " # ", + " - Complexity: `O(1)`", + " - Depends on the length of `T::Hash` which is fixed.", + " - DbReads: `Tips`, `origin account`", + " - DbWrites: `Reasons`, `Tips`, `origin account`", + " # " + ] + }, + { + "name": "tip_new", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Give a tip for something new; no finder's fee will be taken.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`", + " - DbReads: `Tippers`, `Reasons`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "tip", + "args": [ + { + "name": "hash", + "type": "Hash" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Declare a tip value for an already-open tip.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + " has started.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length", + " `T`, insert tip and check closing, `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`.", + " - DbReads: `Tippers`, `Tips`", + " - DbWrites: `Tips`", + " # " + ] + }, + { + "name": "close_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Close and payout a tip.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " The tip identified by `hash` must have finished its countdown period.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length", + " `T`. `T` is charged as upper bound given by `ContainsLengthBound`. The actual cost", + " depends on the implementation of `T::Tippers`.", + " - DbReads: `Tips`, `Tippers`, `tip finder`", + " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", + " # " + ] + }, + { + "name": "slash_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Remove and slash an already-open tip.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " As a result, the finder is slashed and the deposits are lost.", + "", + " Emits `TipSlashed` if successful.", + "", + " # ", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTip", + "args": [ + "Hash" + ], + "docs": [ + " A new tip suggestion has been opened. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosing", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has reached threshold and is closing. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been closed. \\[tip_hash, who, payout\\]" + ] + }, + { + "name": "TipRetracted", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has been retracted. \\[tip_hash\\]" + ] + }, + { + "name": "TipSlashed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + }, + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x55a0fc01000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "type": "BlockNumber", + "value": "0x40380000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": "Percent", + "value": "0x14", + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": "BalanceOf", + "value": "0x34a1aec6000000000000000000000000", + "docs": [ + " The amount held on deposit for placing a tip report." + ] + } + ], + "errors": [ + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "docs": [ + " The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "docs": [ + " The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "docs": [ + " The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "docs": [ + " The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "docs": [ + " The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 36 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": "ElectionPhase" + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": "ReadySolution" + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": "RoundSnapshot" + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": "SolutionOrSnapshotSize" + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": "SubmissionIndicesOf" + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded set of `(score, index)`, where each `index` points to a value in", + " `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "SignedSubmissionOf", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": "ElectionScore" + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": [ + { + "name": "submit_unsigned", + "args": [ + { + "name": "raw_solution", + "type": "RawSolution" + }, + { + "name": "witness", + "type": "SolutionOrSnapshotSize" + } + ], + "docs": [ + " Submit a solution for the unsigned phase.", + "", + " The dispatch origin fo this call must be __none__.", + "", + " This submission is checked on the fly. Moreover, this unsigned solution is only", + " validated when submitted to the pool from the **local** node. Effectively, this means", + " that only active validators can submit this transaction when authoring a block (similar", + " to an inherent).", + "", + " To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + " panic if the solution submitted by the validator is invalid in any way, effectively", + " putting their authoring reward at risk.", + "", + " No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "args": [ + { + "name": "maybe_next_score", + "type": "Option" + } + ], + "docs": [ + " Set a new value for `MinimumUntrustedScore`.", + "", + " Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + " This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "args": [ + { + "name": "supports", + "type": "Supports" + } + ], + "docs": [ + " Set a solution in the queue, to be handed out to the client of this pallet in the next", + " call to `ElectionProvider::elect`.", + "", + " This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + " The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + " feasibility check itself can in principle cause the election process to fail (due to", + " memory/weight constrains)." + ] + }, + { + "name": "submit", + "args": [ + { + "name": "raw_solution", + "type": "RawSolution" + }, + { + "name": "num_signed_submissions", + "type": "u32" + } + ], + "docs": [ + " Submit a solution for the signed phase.", + "", + " The dispatch origin fo this call must be __signed__.", + "", + " The solution is potentially queued, based on the claimed score and processed at the end", + " of the signed phase.", + "", + " A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + " might be rewarded, slashed, or get all or a part of the deposit back.", + "", + " # ", + " Queue size must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "SolutionStored", + "args": [ + "ElectionCompute", + "bool" + ], + "docs": [ + " A solution was stored with the given compute.", + "", + " If the solution is signed, this means that it hasn't yet been processed. If the", + " solution is unsigned, this means that it has also been processed.", + "", + " The `bool` is `true` when a previous solution was ejected to make room for this one." + ] + }, + { + "name": "ElectionFinalized", + "args": [ + "Option" + ], + "docs": [ + " The election has been finalized, with `Some` of the given computation, or else if the", + " election failed, `None`." + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "SignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The signed phase of the given round has started." + ] + }, + { + "name": "UnsignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The unsigned phase of the given round has started." + ] + } + ], + "constants": [ + { + "name": "UnsignedPhase", + "type": "BlockNumber", + "value": "0x96000000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": "BlockNumber", + "value": "0x96000000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "SolutionImprovementThreshold", + "type": "Perbill", + "value": "0x20a10700", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" (in any phase)." + ] + }, + { + "name": "OffchainRepeat", + "type": "BlockNumber", + "value": "0x05000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": "TransactionPriority", + "value": "0x65666666666666e6", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "MinerMaxWeight", + "type": "Weight", + "value": "0xc084666557010000", + "docs": [ + " Maximum weight that the miner should consume.", + "", + " The miner will ensure that the total weight of the unsigned solution will not exceed", + " this value, based on [`WeightInfo::submit_unsigned`]." + ] + }, + { + "name": "SignedMaxSubmissions", + "type": "u32", + "value": "0x10000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": "Weight", + "value": "0xc084666557010000", + "docs": [ + " Maximum weight of a signed solution.", + "", + " This should probably be similar to [`Config::MinerMaxWeight`]." + ] + }, + { + "name": "SignedRewardBase", + "type": "BalanceOf", + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositBase", + "type": "BalanceOf", + "value": "0x2030490b1f0000000000000000000000", + "docs": [ + " Base deposit for a signed solution." + ] + }, + { + "name": "SignedDepositByte", + "type": "BalanceOf", + "value": "0x277f0000000000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": "BalanceOf", + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MinerMaxLength", + "type": "u32", + "value": "0x00003600", + "docs": [ + " Maximum length (bytes) that the mined solution should consume.", + "", + " The miner will ensure that the total length of the unsigned solution will not exceed", + " this value." + ] + } + ], + "errors": [ + { + "name": "PreDispatchEarlySubmission", + "docs": [ + " Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "docs": [ + " Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "docs": [ + " Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "docs": [ + " The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "docs": [ + " The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "docs": [ + " Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "docs": [ + " The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "docs": [ + " OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "docs": [ + " Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "docs": [ + " `Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "docs": [ + " The call is not allowed at this point." + ] + } + ], + "index": 37 + }, + { + "name": "Gilt", + "storage": { + "prefix": "Gilt", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": "Vec<(u32,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids ready to become gilts. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "ActiveTotal", + "modifier": "Default", + "type": { + "plain": "ActiveGiltsTotal" + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Information relating to the gilts currently active." + ] + }, + { + "name": "Active", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "ActiveIndex", + "value": "ActiveGilt", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The currently active gilts, indexed according to the order of creation." + ] + } + ] + }, + "calls": [ + { + "name": "place_bid", + "args": [ + { + "name": "amount", + "type": "Compact" + }, + { + "name": "duration", + "type": "u32" + } + ], + "docs": [ + " Place a bid for a gilt to be issued.", + "", + " Origin must be Signed, and account must have at least `amount` in free balance.", + "", + " - `amount`: The amount of the bid; these funds will be reserved. If the bid is", + " successfully elevated into an issued gilt, then these funds will continue to be", + " reserved until the gilt expires. Must be at least `MinFreeze`.", + " - `duration`: The number of periods for which the funds will be locked if the gilt is", + " issued. It will expire only after this period has elapsed after the point of issuance.", + " Must be greater than 1 and no more than `QueueCount`.", + "", + " Complexities:", + " - `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "args": [ + { + "name": "amount", + "type": "Compact" + }, + { + "name": "duration", + "type": "u32" + } + ], + "docs": [ + " Retract a previously placed bid.", + "", + " Origin must be Signed, and the account should have previously issued a still-active bid", + " of `amount` for `duration`.", + "", + " - `amount`: The amount of the previous bid.", + " - `duration`: The duration of the previous bid." + ] + }, + { + "name": "set_target", + "args": [ + { + "name": "target", + "type": "Compact" + } + ], + "docs": [ + " Set target proportion of gilt-funds.", + "", + " Origin must be `AdminOrigin`.", + "", + " - `target`: The target proportion of effective issued funds that should be under gilts", + " at any one time." + ] + }, + { + "name": "thaw", + "args": [ + { + "name": "index", + "type": "Compact" + } + ], + "docs": [ + " Remove an active but expired gilt. Reserved funds under gilt are freed and balance is", + " adjusted to ensure that the funds grow or shrink to maintain the equivalent proportion", + " of effective total issued funds.", + "", + " Origin must be Signed and the account must be the owner of the gilt of the given index.", + "", + " - `index`: The index of the gilt to be thawed." + ] + } + ], + "events": [ + { + "name": "BidPlaced", + "args": [ + "AccountId", + "BalanceOf", + "u32" + ], + "docs": [ + " A bid was successfully placed.", + " \\[ who, amount, duration \\]" + ] + }, + { + "name": "BidRetracted", + "args": [ + "AccountId", + "BalanceOf", + "u32" + ], + "docs": [ + " A bid was successfully removed (before being accepted as a gilt).", + " \\[ who, amount, duration \\]" + ] + }, + { + "name": "GiltIssued", + "args": [ + "ActiveIndex", + "BlockNumber", + "AccountId", + "BalanceOf" + ], + "docs": [ + " A bid was accepted as a gilt. The balance may not be released until expiry.", + " \\[ index, expiry, who, amount \\]" + ] + }, + { + "name": "GiltThawed", + "args": [ + "ActiveIndex", + "AccountId", + "BalanceOf", + "BalanceOf" + ], + "docs": [ + " An expired gilt has been thawed.", + " \\[ index, who, original_amount, additional_amount \\]" + ] + } + ], + "constants": [ + { + "name": "IgnoredIssuance", + "type": "BalanceOf", + "value": "0x00000000000000000000000000000000", + "docs": [ + " The issuance to ignore. This is subtracted from the `Currency`'s `total_issuance` to get", + " the issuance by which we inflate or deflate the gilt." + ] + }, + { + "name": "QueueCount", + "type": "u32", + "value": "0x2c010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "type": "u32", + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue." + ] + }, + { + "name": "FifoQueueLen", + "type": "u32", + "value": "0xfa000000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "Period", + "type": "BlockNumber", + "value": "0x80970600", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinFreeze", + "type": "BalanceOf", + "value": "0x50f8369c4d0000000000000000000000", + "docs": [ + " The minimum amount of funds that may be offered to freeze for a gilt. Note that this", + " does not actually limit the amount which may be frozen in a gilt since gilts may be", + " split up in order to satisfy the desired amount of funds under gilts.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "IntakePeriod", + "type": "BlockNumber", + "value": "0x32000000", + "docs": [ + " The number of blocks between consecutive attempts to issue more gilts in an effort to", + " get to the target amount to be frozen.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeBids", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum amount of bids that can be turned into issued gilts each block. A larger", + " value here means less of the block available for transactions should there be a glut of", + " bids to make into gilts to reach the target." + ] + } + ], + "errors": [ + { + "name": "DurationTooSmall", + "docs": [ + " The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "docs": [ + " The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "docs": [ + " The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "docs": [ + " The queue for the bid's duration is full and the amount bid is too low to get in", + " through replacing an existing bid." + ] + }, + { + "name": "Unknown", + "docs": [ + " Gilt index is unknown." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Not the owner of the gilt." + ] + }, + { + "name": "NotExpired", + "docs": [ + " Gilt not yet at expiry date." + ] + }, + { + "name": "NotFound", + "docs": [ + " The given bid for retraction is not found." + ] + } + ], + "index": 38 + }, + { + "name": "TeyrchainsOrigin", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 50 + }, + { + "name": "Configuration", + "storage": { + "prefix": "Configuration", + "items": [ + { + "name": "ActiveConfig", + "modifier": "Default", + "type": { + "plain": "HostConfiguration" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000100000001000000000000000000060000006400000002000000c80000000100000000000000000000000000000000000000", + "docs": [ + " The active configuration for the current session." + ] + }, + { + "name": "PendingConfig", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SessionIndex", + "value": "HostConfiguration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending configuration (if any) for the next session." + ] + } + ] + }, + "calls": [ + { + "name": "set_validation_upgrade_frequency", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the validation upgrade frequency." + ] + }, + { + "name": "set_validation_upgrade_delay", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the validation upgrade delay." + ] + }, + { + "name": "set_code_retention_period", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the acceptance period for an included candidate." + ] + }, + { + "name": "set_max_code_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the max validation code size for incoming upgrades." + ] + }, + { + "name": "set_max_pov_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the max POV block size for incoming upgrades." + ] + }, + { + "name": "set_max_head_data_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the max head data size for paras." + ] + }, + { + "name": "set_parathread_cores", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the number of parathread execution cores." + ] + }, + { + "name": "set_parathread_retries", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the number of retries for a particular parathread." + ] + }, + { + "name": "set_group_rotation_frequency", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the teyrchain validator-group rotation frequency" + ] + }, + { + "name": "set_chain_availability_period", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the availability period for teyrchains." + ] + }, + { + "name": "set_thread_availability_period", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the availability period for parathreads." + ] + }, + { + "name": "set_scheduling_lookahead", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the scheduling lookahead, in expected number of blocks at peak throughput." + ] + }, + { + "name": "set_max_validators_per_core", + "args": [ + { + "name": "new", + "type": "Option" + } + ], + "docs": [ + " Set the maximum number of validators to assign to any core." + ] + }, + { + "name": "set_max_validators", + "args": [ + { + "name": "new", + "type": "Option" + } + ], + "docs": [ + " Set the maximum number of validators to use in teyrchain consensus." + ] + }, + { + "name": "set_dispute_period", + "args": [ + { + "name": "new", + "type": "SessionIndex" + } + ], + "docs": [ + " Set the dispute period, in number of sessions to keep for disputes." + ] + }, + { + "name": "set_dispute_post_conclusion_acceptance_period", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the dispute post conclusion acceptance period." + ] + }, + { + "name": "set_dispute_max_spam_slots", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the maximum number of dispute spam slots." + ] + }, + { + "name": "set_dispute_conclusion_by_time_out_period", + "args": [ + { + "name": "new", + "type": "BlockNumber" + } + ], + "docs": [ + " Set the dispute conclusion by time out period." + ] + }, + { + "name": "set_no_show_slots", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the no show slots, in number of number of consensus slots.", + " Must be at least 1." + ] + }, + { + "name": "set_n_delay_tranches", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the total number of delay tranches." + ] + }, + { + "name": "set_zeroth_delay_tranche_width", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the zeroth delay tranche width." + ] + }, + { + "name": "set_needed_approvals", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the number of validators needed to approve a block." + ] + }, + { + "name": "set_relay_vrf_modulo_samples", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion." + ] + }, + { + "name": "set_max_upward_queue_count", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum items that can present in a upward dispatch queue at once." + ] + }, + { + "name": "set_max_upward_queue_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum total size of items that can present in a upward dispatch queue at once." + ] + }, + { + "name": "set_max_downward_message_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Set the critical downward message size." + ] + }, + { + "name": "set_ump_service_total_weight", + "args": [ + { + "name": "new", + "type": "Weight" + } + ], + "docs": [ + " Sets the soft limit for the phase of dispatching dispatchable upward messages." + ] + }, + { + "name": "set_max_upward_message_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum size of an upward message that can be sent by a candidate." + ] + }, + { + "name": "set_max_upward_message_num_per_candidate", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of messages that a candidate can contain." + ] + }, + { + "name": "set_hrmp_open_request_ttl", + "args": [ + { + "name": "_new", + "type": "u32" + } + ], + "docs": [ + " Sets the number of sessions after which an HRMP open channel request expires." + ] + }, + { + "name": "set_hrmp_sender_deposit", + "args": [ + { + "name": "new", + "type": "Balance" + } + ], + "docs": [ + " Sets the amount of funds that the sender should provide for opening an HRMP channel." + ] + }, + { + "name": "set_hrmp_recipient_deposit", + "args": [ + { + "name": "new", + "type": "Balance" + } + ], + "docs": [ + " Sets the amount of funds that the recipient should provide for accepting opening an HRMP", + " channel." + ] + }, + { + "name": "set_hrmp_channel_max_capacity", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of messages allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_channel_max_total_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum total size of messages in bytes allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_max_teyrchain_inbound_channels", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of inbound HRMP channels a teyrchain is allowed to accept." + ] + }, + { + "name": "set_hrmp_max_parathread_inbound_channels", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of inbound HRMP channels a parathread is allowed to accept." + ] + }, + { + "name": "set_hrmp_channel_max_message_size", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum size of a message that could ever be put into an HRMP channel." + ] + }, + { + "name": "set_hrmp_max_teyrchain_outbound_channels", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of outbound HRMP channels a teyrchain is allowed to open." + ] + }, + { + "name": "set_hrmp_max_parathread_outbound_channels", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of outbound HRMP channels a parathread is allowed to open." + ] + }, + { + "name": "set_hrmp_max_message_num_per_candidate", + "args": [ + { + "name": "new", + "type": "u32" + } + ], + "docs": [ + " Sets the maximum number of outbound HRMP messages can be sent by a candidate." + ] + } + ], + "events": null, + "constants": [], + "errors": [ + { + "name": "InvalidNewValue", + "docs": [ + " The new value for a configuration parameter is invalid." + ] + } + ], + "index": 51 + }, + { + "name": "ParasShared", + "storage": { + "prefix": "ParasShared", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The current session index." + ] + }, + { + "name": "ActiveValidatorIndices", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " All the validators actively participating in teyrchain consensus.", + " Indices are into the broader validator set." + ] + }, + { + "name": "ActiveValidatorKeys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The teyrchain attestation keys of the validators actively participating in teyrchain consensus.", + " This should be the same length as `ActiveValidatorIndices`." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [], + "errors": [], + "index": 52 + }, + { + "name": "ParaInclusion", + "storage": { + "prefix": "ParaInclusion", + "items": [ + { + "name": "AvailabilityBitfields", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaValidatorIndex", + "value": "AvailabilityBitfieldRecord", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The latest bitfield for each validator, referred to by their index in the validator set." + ] + }, + { + "name": "PendingAvailability", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "CandidatePendingAvailability", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Candidates pending availability by `ParaId`." + ] + }, + { + "name": "PendingAvailabilityCommitments", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "CandidateCommitments", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The commitments of candidates pending availability, by `ParaId`." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "CandidateBacked", + "args": [ + "CandidateReceipt", + "HeadData", + "CoreIndex", + "GroupIndex" + ], + "docs": [ + " A candidate was backed. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateIncluded", + "args": [ + "CandidateReceipt", + "HeadData", + "CoreIndex", + "GroupIndex" + ], + "docs": [ + " A candidate was included. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateTimedOut", + "args": [ + "CandidateReceipt", + "HeadData", + "CoreIndex" + ], + "docs": [ + " A candidate timed out. `[candidate, head_data]`" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "WrongBitfieldSize", + "docs": [ + " Availability bitfield has unexpected size." + ] + }, + { + "name": "BitfieldDuplicateOrUnordered", + "docs": [ + " Multiple bitfields submitted by same validator or validators out of order by index." + ] + }, + { + "name": "ValidatorIndexOutOfBounds", + "docs": [ + " Validator index out of bounds." + ] + }, + { + "name": "InvalidBitfieldSignature", + "docs": [ + " Invalid signature" + ] + }, + { + "name": "UnscheduledCandidate", + "docs": [ + " Candidate submitted but para not scheduled." + ] + }, + { + "name": "CandidateScheduledBeforeParaFree", + "docs": [ + " Candidate scheduled despite pending candidate already existing for the para." + ] + }, + { + "name": "WrongCollator", + "docs": [ + " Candidate included with the wrong collator." + ] + }, + { + "name": "ScheduledOutOfOrder", + "docs": [ + " Scheduled cores out of order." + ] + }, + { + "name": "HeadDataTooLarge", + "docs": [ + " Head data exceeds the configured maximum." + ] + }, + { + "name": "PrematureCodeUpgrade", + "docs": [ + " Code upgrade prematurely." + ] + }, + { + "name": "NewCodeTooLarge", + "docs": [ + " Output code is too large" + ] + }, + { + "name": "CandidateNotInParentContext", + "docs": [ + " Candidate not in parent context." + ] + }, + { + "name": "UnoccupiedBitInBitfield", + "docs": [ + " The bitfield contains a bit relating to an unassigned availability core." + ] + }, + { + "name": "InvalidGroupIndex", + "docs": [ + " Invalid group index in core assignment." + ] + }, + { + "name": "InsufficientBacking", + "docs": [ + " Insufficient (non-majority) backing." + ] + }, + { + "name": "InvalidBacking", + "docs": [ + " Invalid (bad signature, unknown validator, etc.) backing." + ] + }, + { + "name": "NotCollatorSigned", + "docs": [ + " Collator did not sign PoV." + ] + }, + { + "name": "ValidationDataHashMismatch", + "docs": [ + " The validation data hash does not match expected." + ] + }, + { + "name": "InternalError", + "docs": [ + " Internal error only returned when compiled with debug assertions." + ] + }, + { + "name": "IncorrectDownwardMessageHandling", + "docs": [ + " The downward message queue is not processed correctly." + ] + }, + { + "name": "InvalidUpwardMessages", + "docs": [ + " At least one upward message sent does not pass the acceptance criteria." + ] + }, + { + "name": "HrmpWatermarkMishandling", + "docs": [ + " The candidate didn't follow the rules of HRMP watermark advancement." + ] + }, + { + "name": "InvalidOutboundHrmp", + "docs": [ + " The HRMP messages sent by the candidate is not valid." + ] + }, + { + "name": "InvalidValidationCodeHash", + "docs": [ + " The validation code hash of the candidate is not valid." + ] + }, + { + "name": "ParaHeadMismatch", + "docs": [ + " The `para_head` hash in the candidate descriptor doesn't match the hash of the actual para head in the", + " commitments." + ] + } + ], + "index": 53 + }, + { + "name": "ParaInherent", + "storage": { + "prefix": "ParaInherent", + "items": [ + { + "name": "Included", + "modifier": "Optional", + "type": { + "plain": "()" + }, + "fallback": "0x00", + "docs": [ + " Whether the paras inherent was included within this block.", + "", + " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant", + " due to the guarantees of FRAME's storage APIs.", + "", + " If this is `None` at the end of the block, we panic and render the block invalid." + ] + } + ] + }, + "calls": [ + { + "name": "enter", + "args": [ + { + "name": "data", + "type": "TeyrchainsInherentData" + } + ], + "docs": [ + " Enter the paras inherent. This will process bitfields and backed candidates." + ] + } + ], + "events": null, + "constants": [], + "errors": [ + { + "name": "TooManyInclusionInherents", + "docs": [ + " Inclusion inherent called more than once per block." + ] + }, + { + "name": "InvalidParentHeader", + "docs": [ + " The hash of the submitted parent header doesn't correspond to the saved block hash of", + " the parent." + ] + }, + { + "name": "CandidateCouldBeInvalid", + "docs": [ + " Potentially invalid candidate." + ] + } + ], + "index": 54 + }, + { + "name": "ParaScheduler", + "storage": { + "prefix": "ParaScheduler", + "items": [ + { + "name": "ValidatorGroups", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the", + " broader set of Pezkuwi validators, but instead just the subset used for teyrchains during", + " this session.", + "", + " Bound: The number of cores is the sum of the numbers of teyrchains and parathread multiplexers.", + " Reasonably, 100-1000. The dominant factor is the number of validators: safe upper bound at 10k." + ] + }, + { + "name": "ParathreadQueue", + "modifier": "Default", + "type": { + "plain": "ParathreadClaimQueue" + }, + "fallback": "0x0000000000", + "docs": [ + " A queue of upcoming claims and which core they should be mapped onto.", + "", + " The number of queued claims is bounded at the `scheduling_lookahead`", + " multiplied by the number of parathread multiplexer cores. Reasonably, 10 * 50 = 500." + ] + }, + { + "name": "AvailabilityCores", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. Entries are `None` if the core is not currently occupied. Can be", + " temporarily `Some` if scheduled but not occupied.", + " The i'th teyrchain belongs to the i'th core, with the remaining cores all being", + " parathread-multiplexers.", + "", + " Bounded by the maximum of either of these two values:", + " * The number of teyrchains and parathread multiplexers", + " * The number of validators divided by `configuration.max_validators_per_core`." + ] + }, + { + "name": "ParathreadClaimIndex", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " An index used to ensure that only one claim on a parathread exists in the queue or is", + " currently being handled by an occupied core.", + "", + " Bounded by the number of parathread cores and scheduling lookahead. Reasonably, 10 * 50 = 500." + ] + }, + { + "name": "SessionStartBlock", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number where the session start occurred. Used to track how many group rotations have occurred.", + "", + " Note that in the context of teyrchains modules the session change is signaled during", + " the block and enacted at the end of the block (at the finalization stage, to be exact).", + " Thus for all intents and purposes the effect of the session change is observed at the", + " block following the session change, block number of which we save in this storage value." + ] + }, + { + "name": "Scheduled", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Currently scheduled cores - free but up to be occupied.", + "", + " Bounded by the number of cores: one for each teyrchain and parathread multiplexer.", + "", + " The value contained here will not be valid after the end of a block. Runtime APIs should be used to determine scheduled cores/", + " for the upcoming block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 55 + }, + { + "name": "Paras", + "storage": { + "prefix": "Paras", + "items": [ + { + "name": "Teyrchains", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " All teyrchains. Ordered ascending by `ParaId`. Parathreads are not included." + ] + }, + { + "name": "ParaLifecycles", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ParaLifecycle", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The current lifecycle of a all known Para IDs." + ] + }, + { + "name": "Heads", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "HeadData", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The head-data of every registered para." + ] + }, + { + "name": "CurrentCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ValidationCodeHash", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The validation code hash of every live para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(ParaId,BlockNumber)", + "value": "ValidationCodeHash", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual past code hash, indicated by the para id as well as the block number at which it", + " became outdated.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeMeta", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ParaPastCodeMeta", + "linked": false + } + }, + "fallback": "0x0000", + "docs": [ + " Past code of teyrchains. The teyrchains themselves may not be registered anymore,", + " but we also keep their code on-chain for the same amount of time as outdated code", + " to keep it available for secondary checkers." + ] + }, + { + "name": "PastCodePruning", + "modifier": "Default", + "type": { + "plain": "Vec<(ParaId,BlockNumber)>" + }, + "fallback": "0x00", + "docs": [ + " Which paras have past code that needs pruning and the relay-chain block at which the code was replaced.", + " Note that this is the actual height of the included block, not the expected height at which the", + " code upgrade would be applied, although they may be equal.", + " This is to ensure the entire acceptance period is covered, not an offset acceptance period starting", + " from the time at which the teyrchain perceives a code upgrade as having occurred.", + " Multiple entries for a single para are permitted. Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeUpgrades", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The block number at which the planned code change is expected for a para.", + " The change will be applied after the first parablock for this ID included which executes", + " in the context of a relay chain block with a number >= `expected_at`." + ] + }, + { + "name": "FutureCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ValidationCodeHash", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The actual future code hash of a para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "UpgradeGoAheadSignal", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "UpgradeGoAhead", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate to a teyrchain a go-ahead with in the upgrade procedure.", + "", + " This value is absent when there are no upgrades scheduled or during the time the relay chain", + " performs the checks. It is set at the first relay-chain block when the corresponding teyrchain", + " can switch its upgrade function. As soon as the teyrchain's block is included, the value", + " gets reset to `None`.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "UpgradeRestriction", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate that there are restrictions for performing", + " an upgrade for this teyrchain.", + "", + " This may be a because the teyrchain waits for the upgrade cooldown to expire. Another", + " potential use case is when we want to perform some maintenance (such as storage migration)", + " we could restrict upgrades to make the process simpler.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeCooldowns", + "modifier": "Default", + "type": { + "plain": "Vec<(ParaId,BlockNumber)>" + }, + "fallback": "0x00", + "docs": [ + " The list of teyrchains that are awaiting for their upgrade restriction to cooldown.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "UpcomingUpgrades", + "modifier": "Default", + "type": { + "plain": "Vec<(ParaId,BlockNumber)>" + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming code upgrades. Each item is a pair of which para performs a code", + " upgrade and at which relay-chain block it is expected at.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "ActionsQueue", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SessionIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The actions to perform during the start of a specific session index." + ] + }, + { + "name": "UpcomingParasGenesis", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ParaGenesisArgs", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Upcoming paras instantiation arguments." + ] + }, + { + "name": "CodeByHashRefs", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "ValidationCodeHash", + "value": "u32", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of reference on the validation code in [`CodeByHash`] storage." + ] + }, + { + "name": "CodeByHash", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "ValidationCodeHash", + "value": "ValidationCode", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Validation code stored by its hash.", + "", + " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and", + " [`PastCodeHash`]." + ] + } + ] + }, + "calls": [ + { + "name": "force_set_current_code", + "args": [ + { + "name": "para", + "type": "ParaId" + }, + { + "name": "new_code", + "type": "ValidationCode" + } + ], + "docs": [ + " Set the storage for the teyrchain validation code immediately." + ] + }, + { + "name": "force_set_current_head", + "args": [ + { + "name": "para", + "type": "ParaId" + }, + { + "name": "new_head", + "type": "HeadData" + } + ], + "docs": [ + " Set the storage for the current teyrchain head data immediately." + ] + }, + { + "name": "force_schedule_code_upgrade", + "args": [ + { + "name": "para", + "type": "ParaId" + }, + { + "name": "new_code", + "type": "ValidationCode" + }, + { + "name": "relay_parent_number", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule an upgrade as if it was scheduled in the given relay parent block." + ] + }, + { + "name": "force_note_new_head", + "args": [ + { + "name": "para", + "type": "ParaId" + }, + { + "name": "new_head", + "type": "HeadData" + } + ], + "docs": [ + " Note a new block head for para within the context of the current block." + ] + }, + { + "name": "force_queue_action", + "args": [ + { + "name": "para", + "type": "ParaId" + } + ], + "docs": [ + " Put a teyrchain directly into the next session's action queue.", + " We can't queue it any sooner than this without going into the", + " initializer..." + ] + } + ], + "events": [ + { + "name": "CurrentCodeUpdated", + "args": [ + "ParaId" + ], + "docs": [ + " Current code has been updated for a Para. `para_id`" + ] + }, + { + "name": "CurrentHeadUpdated", + "args": [ + "ParaId" + ], + "docs": [ + " Current head has been updated for a Para. `para_id`" + ] + }, + { + "name": "CodeUpgradeScheduled", + "args": [ + "ParaId" + ], + "docs": [ + " A code upgrade has been scheduled for a Para. `para_id`" + ] + }, + { + "name": "NewHeadNoted", + "args": [ + "ParaId" + ], + "docs": [ + " A new head has been noted for a Para. `para_id`" + ] + }, + { + "name": "ActionQueued", + "args": [ + "ParaId", + "SessionIndex" + ], + "docs": [ + " A para has been queued to execute pending actions. `para_id`" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotRegistered", + "docs": [ + " Para is not registered in our system." + ] + }, + { + "name": "CannotOnboard", + "docs": [ + " Para cannot be onboarded because it is already tracked by our system." + ] + }, + { + "name": "CannotOffboard", + "docs": [ + " Para cannot be offboarded at this time." + ] + }, + { + "name": "CannotUpgrade", + "docs": [ + " Para cannot be upgraded to a teyrchain." + ] + }, + { + "name": "CannotDowngrade", + "docs": [ + " Para cannot be downgraded to a parathread." + ] + } + ], + "index": 56 + }, + { + "name": "Initializer", + "storage": { + "prefix": "Initializer", + "items": [ + { + "name": "HasInitialized", + "modifier": "Optional", + "type": { + "plain": "()" + }, + "fallback": "0x00", + "docs": [ + " Whether the teyrchains modules have been initialized within this block.", + "", + " Semantically a `bool`, but this guarantees it should never hit the trie,", + " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values.", + "", + " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one of", + " them writes to the trie and one does not. This confusion makes `Option<()>` more suitable for", + " the semantics of this variable." + ] + }, + { + "name": "BufferedSessionChanges", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Buffered session changes along with the block number at which they should be applied.", + "", + " Typically this will be empty or one element long. Apart from that this item never hits", + " the storage.", + "", + " However this is a `Vec` regardless to handle various edge cases that may occur at runtime", + " upgrade boundaries or if governance intervenes." + ] + } + ] + }, + "calls": [ + { + "name": "force_approve", + "args": [ + { + "name": "up_to", + "type": "BlockNumber" + } + ], + "docs": [ + " Issue a signal to the consensus engine to forcibly act as though all teyrchain", + " blocks in all relay chain blocks up to and including the given number in the current", + " chain are valid and should be finalized." + ] + } + ], + "events": null, + "constants": [], + "errors": [], + "index": 57 + }, + { + "name": "Dmp", + "storage": { + "prefix": "Dmp", + "items": [ + { + "name": "DownwardMessageQueues", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The downward messages addressed for a certain para." + ] + }, + { + "name": "DownwardMessageQueueHeads", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " A mapping that stores the downward message queue MQC head for each para.", + "", + " Each link in this chain has a form:", + " `(prev_head, B, H(M))`, where", + " - `prev_head`: is the previous head hash or zero if none.", + " - `B`: is the relay-chain block number in which a message was appended.", + " - `H(M)`: is the hash of the message being appended." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [], + "errors": [], + "index": 58 + }, + { + "name": "Ump", + "storage": { + "prefix": "Ump", + "items": [ + { + "name": "RelayDispatchQueues", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The messages waiting to be handled by the relay-chain originating from a certain teyrchain.", + "", + " Note that some upward messages might have been already processed by the inclusion logic. E.g.", + " channel management messages.", + "", + " The messages are processed in FIFO order." + ] + }, + { + "name": "RelayDispatchQueueSize", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "(u32,u32)", + "linked": false + } + }, + "fallback": "0x0000000000000000", + "docs": [ + " Size of the dispatch queues. Caches sizes of the queues in `RelayDispatchQueue`.", + "", + " First item in the tuple is the count of messages and second", + " is the total length (in bytes) of the message payloads.", + "", + " Note that this is an auxiliary mapping: it's possible to tell the byte size and the number of", + " messages only looking at `RelayDispatchQueues`. This mapping is separate to avoid the cost of", + " loading the whole message queue if only the total size and count are required.", + "", + " Invariant:", + " - The set of keys should exactly match the set of keys of `RelayDispatchQueues`." + ] + }, + { + "name": "NeedsDispatch", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The ordered list of `ParaId`s that have a `RelayDispatchQueue` entry.", + "", + " Invariant:", + " - The set of items from this vector should be exactly the set of the keys in", + " `RelayDispatchQueues` and `RelayDispatchQueueSize`." + ] + }, + { + "name": "NextDispatchRoundStartWith", + "modifier": "Optional", + "type": { + "plain": "ParaId" + }, + "fallback": "0x00", + "docs": [ + " This is the para that gets will get dispatched first during the next upward dispatchable queue", + " execution round.", + "", + " Invariant:", + " - If `Some(para)`, then `para` must be present in `NeedsDispatch`." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "InvalidFormat", + "args": [ + "MessageId" + ], + "docs": [ + " Upward message is invalid XCM.", + " \\[ id \\]" + ] + }, + { + "name": "UnsupportedVersion", + "args": [ + "MessageId" + ], + "docs": [ + " Upward message is unsupported version of XCM.", + " \\[ id \\]" + ] + }, + { + "name": "ExecutedUpward", + "args": [ + "MessageId", + "Outcome" + ], + "docs": [ + " Upward message executed with the given outcome.", + " \\[ id, outcome \\]" + ] + }, + { + "name": "WeightExhausted", + "args": [ + "MessageId", + "Weight", + "Weight" + ], + "docs": [ + " The weight limit for handling downward messages was reached.", + " \\[ id, remaining, required \\]" + ] + }, + { + "name": "UpwardMessagesReceived", + "args": [ + "ParaId", + "u32", + "u32" + ], + "docs": [ + " Some downward messages have been received and will be processed.", + " \\[ para, count, size \\]" + ] + } + ], + "constants": [], + "errors": [], + "index": 59 + }, + { + "name": "Hrmp", + "storage": { + "prefix": "Hrmp", + "items": [ + { + "name": "HrmpOpenChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "HrmpChannelId", + "value": "HrmpOpenChannelRequest", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The set of pending HRMP open channel requests.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpOpenChannelRequestsList", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpOpenChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "u32", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests are initiated by a given sender para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has `(X, _)`", + " as the number of `HrmpOpenChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpAcceptedChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "u32", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests were accepted by a given recipient para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with", + " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpCloseChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "HrmpChannelId", + "value": "()", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A set of pending HRMP close channel requests that are going to be closed during the session change.", + " Used for checking if a given channel is registered for closure.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpCloseChannelRequestsList", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpWatermarks", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The HRMP watermark associated with each para.", + " Invariant:", + " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a session." + ] + }, + { + "name": "HrmpChannels", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "HrmpChannelId", + "value": "HrmpChannel", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " HRMP channel data associated with each para.", + " Invariant:", + " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session." + ] + }, + { + "name": "HrmpIngressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Ingress/egress indexes allow to find all the senders and receivers given the opposite", + " side. I.e.", + "", + " (a) ingress index allows to find all the senders for a given recipient.", + " (b) egress index allows to find all the recipients for a given sender.", + "", + " Invariants:", + " - for each ingress index entry for `P` each item `I` in the index should present in `HrmpChannels`", + " as `(I, P)`.", + " - for each egress index entry for `P` each item `E` in the index should present in `HrmpChannels`", + " as `(P, E)`.", + " - there should be no other dangling channels in `HrmpChannels`.", + " - the vectors are sorted." + ] + }, + { + "name": "HrmpEgressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpChannelContents", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "HrmpChannelId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Storage for the messages for each channel.", + " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`." + ] + }, + { + "name": "HrmpChannelDigests", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Vec<(BlockNumber,Vec)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Maintains a mapping that can be used to answer the question:", + " What paras sent a message at the given block number for a given receiver.", + " Invariants:", + " - The inner `Vec` is never empty.", + " - The inner `Vec` cannot store two same `ParaId`.", + " - The outer vector is sorted ascending by block number and cannot store two items with the same", + " block number." + ] + } + ] + }, + "calls": [ + { + "name": "hrmp_init_open_channel", + "args": [ + { + "name": "recipient", + "type": "ParaId" + }, + { + "name": "proposed_max_capacity", + "type": "u32" + }, + { + "name": "proposed_max_message_size", + "type": "u32" + } + ], + "docs": [ + " Initiate opening a channel from a teyrchain to a given recipient with given channel", + " parameters.", + "", + " - `proposed_max_capacity` - specifies how many messages can be in the channel at once.", + " - `proposed_max_message_size` - specifies the maximum size of any of the messages.", + "", + " These numbers are a subject to the relay-chain configuration limits.", + "", + " The channel can be opened only after the recipient confirms it and only on a session", + " change." + ] + }, + { + "name": "hrmp_accept_open_channel", + "args": [ + { + "name": "sender", + "type": "ParaId" + } + ], + "docs": [ + " Accept a pending open channel request from the given sender.", + "", + " The channel will be opened only on the next session boundary." + ] + }, + { + "name": "hrmp_close_channel", + "args": [ + { + "name": "channel_id", + "type": "HrmpChannelId" + } + ], + "docs": [ + " Initiate unilateral closing of a channel. The origin must be either the sender or the", + " recipient in the channel being closed.", + "", + " The closure can only happen on a session change." + ] + }, + { + "name": "force_clean_hrmp", + "args": [ + { + "name": "para", + "type": "ParaId" + } + ], + "docs": [ + " This extrinsic triggers the cleanup of all the HRMP storage items that", + " a para may have. Normally this happens once per session, but this allows", + " you to trigger the cleanup immediately for a specific teyrchain.", + "", + " Origin must be Root." + ] + }, + { + "name": "force_process_hrmp_open", + "args": [], + "docs": [ + " Force process HRMP open channel requests.", + "", + " If there are pending HRMP open channel requests, you can use this", + " function process all of those requests immediately." + ] + }, + { + "name": "force_process_hrmp_close", + "args": [], + "docs": [ + " Force process HRMP close channel requests.", + "", + " If there are pending HRMP close channel requests, you can use this", + " function process all of those requests immediately." + ] + }, + { + "name": "hrmp_cancel_open_request", + "args": [ + { + "name": "channel_id", + "type": "HrmpChannelId" + } + ], + "docs": [ + " This cancels a pending open channel request. It can be canceled be either of the sender", + " or the recipient for that request. The origin must be either of those.", + "", + " The cancelling happens immediately. It is not possible to cancel the request if it is", + " already accepted." + ] + } + ], + "events": [ + { + "name": "OpenChannelRequested", + "args": [ + "ParaId", + "ParaId", + "u32", + "u32" + ], + "docs": [ + " Open HRMP channel requested.", + " `[sender, recipient, proposed_max_capacity, proposed_max_message_size]`" + ] + }, + { + "name": "OpenChannelCanceled", + "args": [ + "ParaId", + "HrmpChannelId" + ], + "docs": [ + " An HRMP channel request sent by the receiver was canceled by either party.", + " `[by_teyrchain, channel_id]`" + ] + }, + { + "name": "OpenChannelAccepted", + "args": [ + "ParaId", + "ParaId" + ], + "docs": [ + " Open HRMP channel accepted. `[sender, recipient]`" + ] + }, + { + "name": "ChannelClosed", + "args": [ + "ParaId", + "HrmpChannelId" + ], + "docs": [ + " HRMP channel closed. `[by_teyrchain, channel_id]`" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "OpenHrmpChannelToSelf", + "docs": [ + " The sender tried to open a channel to themselves." + ] + }, + { + "name": "OpenHrmpChannelInvalidRecipient", + "docs": [ + " The recipient is not a valid para." + ] + }, + { + "name": "OpenHrmpChannelZeroCapacity", + "docs": [ + " The requested capacity is zero." + ] + }, + { + "name": "OpenHrmpChannelCapacityExceedsLimit", + "docs": [ + " The requested capacity exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelZeroMessageSize", + "docs": [ + " The requested maximum message size is 0." + ] + }, + { + "name": "OpenHrmpChannelMessageSizeExceedsLimit", + "docs": [ + " The open request requested the message size that exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelAlreadyExists", + "docs": [ + " The channel already exists" + ] + }, + { + "name": "OpenHrmpChannelAlreadyRequested", + "docs": [ + " There is already a request to open the same channel." + ] + }, + { + "name": "OpenHrmpChannelLimitExceeded", + "docs": [ + " The sender already has the maximum number of allowed outbound channels." + ] + }, + { + "name": "AcceptHrmpChannelDoesntExist", + "docs": [ + " The channel from the sender to the origin doesn't exist." + ] + }, + { + "name": "AcceptHrmpChannelAlreadyConfirmed", + "docs": [ + " The channel is already confirmed." + ] + }, + { + "name": "AcceptHrmpChannelLimitExceeded", + "docs": [ + " The recipient already has the maximum number of allowed inbound channels." + ] + }, + { + "name": "CloseHrmpChannelUnauthorized", + "docs": [ + " The origin tries to close a channel where it is neither the sender nor the recipient." + ] + }, + { + "name": "CloseHrmpChannelDoesntExist", + "docs": [ + " The channel to be closed doesn't exist." + ] + }, + { + "name": "CloseHrmpChannelAlreadyUnderway", + "docs": [ + " The channel close request is already requested." + ] + }, + { + "name": "CancelHrmpOpenChannelUnauthorized", + "docs": [ + " Canceling is requested by neither the sender nor recipient of the open channel request." + ] + }, + { + "name": "OpenHrmpChannelDoesntExist", + "docs": [ + " The open request doesn't exist." + ] + }, + { + "name": "OpenHrmpChannelAlreadyConfirmed", + "docs": [ + " Cannot cancel an HRMP open channel request because it is already confirmed." + ] + } + ], + "index": 60 + }, + { + "name": "ParaSessionInfo", + "storage": { + "prefix": "ParaSessionInfo", + "items": [ + { + "name": "AssignmentKeysUnsafe", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Assignment keys for the current session.", + " Note that this API is private due to it being prone to 'off-by-one' at session boundaries.", + " When in doubt, use `Sessions` API instead." + ] + }, + { + "name": "EarliestStoredSession", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The earliest session for which previous session info is stored." + ] + }, + { + "name": "Sessions", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "SessionIndex", + "value": "SessionInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Session information in a rolling window.", + " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`.", + " Does not have any entries before the session index in the first session change notification." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 61 + }, + { + "name": "Registrar", + "storage": { + "prefix": "Registrar", + "items": [ + { + "name": "PendingSwap", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ParaId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pending swap operations." + ] + }, + { + "name": "Paras", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "ParaInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Amount held on deposit for each para and the original depositor.", + "", + " The given account ID is responsible for registering the code and initial head data, but may only do", + " so if it isn't yet registered. (After that, it's up to governance to do so.)" + ] + }, + { + "name": "NextFreeParaId", + "modifier": "Default", + "type": { + "plain": "ParaId" + }, + "fallback": "0x00000000", + "docs": [ + " The next free `ParaId`." + ] + } + ] + }, + "calls": [ + { + "name": "register", + "args": [ + { + "name": "id", + "type": "ParaId" + }, + { + "name": "genesis_head", + "type": "HeadData" + }, + { + "name": "validation_code", + "type": "ValidationCode" + } + ], + "docs": [ + " Register head data and validation code for a reserved Para Id.", + "", + " ## Arguments", + " - `origin`: Must be called by a `Signed` origin.", + " - `id`: The para ID. Must be owned/managed by the `origin` signing account.", + " - `genesis_head`: The genesis head data of the teyrchain/thread.", + " - `validation_code`: The initial validation code of the teyrchain/thread.", + "", + " ## Deposits/Fees", + " The origin signed account must reserve a corresponding deposit for the registration. Anything already", + " reserved previously for this para ID is accounted for.", + "", + " ## Events", + " The `Registered` event is emitted in case of success." + ] + }, + { + "name": "force_register", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "deposit", + "type": "BalanceOf" + }, + { + "name": "id", + "type": "ParaId" + }, + { + "name": "genesis_head", + "type": "HeadData" + }, + { + "name": "validation_code", + "type": "ValidationCode" + } + ], + "docs": [ + " Force the registration of a Para Id on the relay chain.", + "", + " This function must be called by a Root origin.", + "", + " The deposit taken can be specified for this registration. Any `ParaId`", + " can be registered, including sub-1000 IDs which are System Teyrchains." + ] + }, + { + "name": "deregister", + "args": [ + { + "name": "id", + "type": "ParaId" + } + ], + "docs": [ + " Deregister a Para Id, freeing all data and returning any deposit.", + "", + " The caller must be Root, the `para` owner, or the `para` itself. The para must be a parathread." + ] + }, + { + "name": "swap", + "args": [ + { + "name": "id", + "type": "ParaId" + }, + { + "name": "other", + "type": "ParaId" + } + ], + "docs": [ + " Swap a teyrchain with another teyrchain or parathread.", + "", + " The origin must be Root, the `para` owner, or the `para` itself.", + "", + " The swap will happen only if there is already an opposite swap pending. If there is not,", + " the swap will be stored in the pending swaps map, ready for a later confirmatory swap.", + "", + " The `ParaId`s remain mapped to the same head data and code so external code can rely on", + " `ParaId` to be a long-term identifier of a notional \"teyrchain\". However, their", + " scheduling info (i.e. whether they're a parathread or teyrchain), auction information", + " and the auction deposit are switched." + ] + }, + { + "name": "force_remove_lock", + "args": [ + { + "name": "para", + "type": "ParaId" + } + ], + "docs": [ + " Remove a manager lock from a para. This will allow the manager of a", + " previously locked para to deregister or swap a para without using governance.", + "", + " Can only be called by the Root origin." + ] + }, + { + "name": "reserve", + "args": [], + "docs": [ + " Reserve a Para Id on the relay chain.", + "", + " This function will reserve a new Para Id to be owned/managed by the origin account.", + " The origin account is able to register head data and validation code using `register` to create", + " a parathread. Using the Slots pallet, a parathread can then be upgraded to get a teyrchain slot.", + "", + " ## Arguments", + " - `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new para ID.", + "", + " ## Deposits/Fees", + " The origin must reserve a deposit of `ParaDeposit` for the registration.", + "", + " ## Events", + " The `Reserved` event is emitted in case of success, which provides the ID reserved for use." + ] + } + ], + "events": [ + { + "name": "Registered", + "args": [ + "ParaId", + "AccountId" + ], + "docs": [] + }, + { + "name": "Deregistered", + "args": [ + "ParaId" + ], + "docs": [] + }, + { + "name": "Reserved", + "args": [ + "ParaId", + "AccountId" + ], + "docs": [] + } + ], + "constants": [ + { + "name": "ParaDeposit", + "type": "BalanceOf", + "value": "0x0080ca39612400000000000000000000", + "docs": [ + " The deposit to be paid to run a parathread.", + " This should include the cost for storing the genesis head and validation code." + ] + }, + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x55a0fc01000000000000000000000000", + "docs": [ + " The deposit to be paid per byte stored on chain." + ] + } + ], + "errors": [ + { + "name": "NotRegistered", + "docs": [ + " The ID is not registered." + ] + }, + { + "name": "AlreadyRegistered", + "docs": [ + " The ID is already registered." + ] + }, + { + "name": "NotOwner", + "docs": [ + " The caller is not the owner of this Id." + ] + }, + { + "name": "CodeTooLarge", + "docs": [ + " Invalid para code size." + ] + }, + { + "name": "HeadDataTooLarge", + "docs": [ + " Invalid para head data size." + ] + }, + { + "name": "NotTeyrchain", + "docs": [ + " Para is not a Teyrchain." + ] + }, + { + "name": "NotParathread", + "docs": [ + " Para is not a Parathread." + ] + }, + { + "name": "CannotDeregister", + "docs": [ + " Cannot deregister para" + ] + }, + { + "name": "CannotDowngrade", + "docs": [ + " Cannot schedule downgrade of teyrchain to parathread" + ] + }, + { + "name": "CannotUpgrade", + "docs": [ + " Cannot schedule upgrade of parathread to teyrchain" + ] + }, + { + "name": "ParaLocked", + "docs": [ + " Para is locked from manipulation by the manager. Must use teyrchain or relay chain governance." + ] + }, + { + "name": "NotReserved", + "docs": [ + " The ID given for registration has not been reserved." + ] + } + ], + "index": 70 + }, + { + "name": "Slots", + "storage": { + "prefix": "Slots", + "items": [ + { + "name": "Leases", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Amounts held on deposit for each (possibly future) leased teyrchain.", + "", + " The actual amount locked on its behalf by any account at any time is the maximum of the second values", + " of the items in this list whose first value is the account.", + "", + " The first item in the list is the amount locked for the current Lease Period. Following", + " items are for the subsequent lease periods.", + "", + " The default value (an empty list) implies that the teyrchain no longer exists (or never", + " existed) as far as this pallet is concerned.", + "", + " If a teyrchain doesn't exist *yet* but is scheduled to exist in the future, then it", + " will be left-padded with one or more `None`s to denote the fact that nothing is held on", + " deposit for the non-existent chain currently, but is held at some point in the future.", + "", + " It is illegal for a `None` value to trail in the list." + ] + } + ] + }, + "calls": [ + { + "name": "force_lease", + "args": [ + { + "name": "para", + "type": "ParaId" + }, + { + "name": "leaser", + "type": "AccountId" + }, + { + "name": "amount", + "type": "BalanceOf" + }, + { + "name": "period_begin", + "type": "LeasePeriodOf" + }, + { + "name": "period_count", + "type": "LeasePeriodOf" + } + ], + "docs": [ + " Just a connect into the `lease_out` call, in case Root wants to force some lease to happen", + " independently of any other on-chain mechanism to use it.", + "", + " Can only be called by the Root origin." + ] + }, + { + "name": "clear_all_leases", + "args": [ + { + "name": "para", + "type": "ParaId" + } + ], + "docs": [ + " Clear all leases for a Para Id, refunding any deposits back to the original owners.", + "", + " Can only be called by the Root origin." + ] + }, + { + "name": "trigger_onboard", + "args": [ + { + "name": "para", + "type": "ParaId" + } + ], + "docs": [ + " Try to onboard a teyrchain that has a lease for the current lease period.", + "", + " This function can be useful if there was some state issue with a para that should", + " have onboarded, but was unable to. As long as they have a lease period, we can", + " let them onboard from here.", + "", + " Origin must be signed, but can be called by anyone." + ] + } + ], + "events": [ + { + "name": "NewLeasePeriod", + "args": [ + "LeasePeriod" + ], + "docs": [ + " A new `[lease_period]` is beginning." + ] + }, + { + "name": "Leased", + "args": [ + "ParaId", + "AccountId", + "LeasePeriod", + "LeasePeriod", + "Balance", + "Balance" + ], + "docs": [ + " A para has won the right to a continuous set of lease periods as a teyrchain.", + " First balance is any extra amount reserved on top of the para's existing deposit.", + " Second balance is the total amount reserved.", + " `[teyrchain_id, leaser, period_begin, period_count, extra_reserved, total_amount]`" + ] + } + ], + "constants": [ + { + "name": "LeasePeriod", + "type": "BlockNumber", + "value": "0x803a0900", + "docs": [ + " The number of blocks over which a single period lasts." + ] + } + ], + "errors": [ + { + "name": "ParaNotOnboarding", + "docs": [ + " The teyrchain ID is not onboarding." + ] + }, + { + "name": "LeaseError", + "docs": [ + " There was an error with the lease." + ] + } + ], + "index": 71 + }, + { + "name": "Auctions", + "storage": { + "prefix": "Auctions", + "items": [ + { + "name": "AuctionCounter", + "modifier": "Default", + "type": { + "plain": "AuctionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of auctions started so far." + ] + }, + { + "name": "AuctionInfo", + "modifier": "Optional", + "type": { + "plain": "(LeasePeriodOf,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " Information relating to the current auction, if there is one.", + "", + " The first item in the tuple is the lease period index that the first of the four", + " contiguous lease periods on auction is for. The second is the block number when the", + " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction." + ] + }, + { + "name": "ReservedAmounts", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(AccountId,ParaId)", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Amounts currently reserved in the accounts of the bidders currently winning", + " (sub-)ranges." + ] + }, + { + "name": "Winning", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "WinningData", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The winning bids for each of the 10 ranges at each sample in the final Ending Period of", + " the current auction. The map's key is the 0-based index into the Sample Size. The", + " first sample of the ending period is 0; the last is `Sample Size - 1`." + ] + } + ] + }, + "calls": [ + { + "name": "new_auction", + "args": [ + { + "name": "duration", + "type": "Compact" + }, + { + "name": "lease_period_index", + "type": "Compact" + } + ], + "docs": [ + " Create a new auction.", + "", + " This can only happen when there isn't already an auction in progress and may only be", + " called by the root origin. Accepts the `duration` of this auction and the", + " `lease_period_index` of the initial lease period of the four that are to be auctioned." + ] + }, + { + "name": "bid", + "args": [ + { + "name": "para", + "type": "Compact" + }, + { + "name": "auction_index", + "type": "Compact" + }, + { + "name": "first_slot", + "type": "Compact" + }, + { + "name": "last_slot", + "type": "Compact" + }, + { + "name": "amount", + "type": "Compact" + } + ], + "docs": [ + " Make a new bid from an account (including a teyrchain account) for deploying a new", + " teyrchain.", + "", + " Multiple simultaneous bids from the same bidder are allowed only as long as all active", + " bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.", + "", + " - `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and", + " funded by) the same account.", + " - `auction_index` is the index of the auction to bid on. Should just be the present", + " value of `AuctionCounter`.", + " - `first_slot` is the first lease period index of the range to bid on. This is the", + " absolute lease period index value, not an auction-specific offset.", + " - `last_slot` is the last lease period index of the range to bid on. This is the", + " absolute lease period index value, not an auction-specific offset.", + " - `amount` is the amount to bid to be held as deposit for the teyrchain should the", + " bid win. This amount is held throughout the range." + ] + }, + { + "name": "cancel_auction", + "args": [], + "docs": [ + " Cancel an in-progress auction.", + "", + " Can only be called by Root origin." + ] + } + ], + "events": [ + { + "name": "AuctionStarted", + "args": [ + "AuctionIndex", + "LeasePeriod", + "BlockNumber" + ], + "docs": [ + " An auction started. Provides its index and the block number where it will begin to", + " close and the first lease period of the quadruplet that is auctioned.", + " `[auction_index, lease_period, ending]`" + ] + }, + { + "name": "AuctionClosed", + "args": [ + "AuctionIndex" + ], + "docs": [ + " An auction ended. All funds become unreserved. `[auction_index]`" + ] + }, + { + "name": "Reserved", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " Funds were reserved for a winning bid. First balance is the extra amount reserved.", + " Second is the total. `[bidder, extra_reserved, total_amount]`" + ] + }, + { + "name": "Unreserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Funds were unreserved since bidder is no longer active. `[bidder, amount]`" + ] + }, + { + "name": "ReserveConfiscated", + "args": [ + "ParaId", + "AccountId", + "Balance" + ], + "docs": [ + " Someone attempted to lease the same slot twice for a teyrchain. The amount is held in reserve", + " but no teyrchain slot has been leased.", + " `[teyrchain_id, leaser, amount]`" + ] + }, + { + "name": "BidAccepted", + "args": [ + "AccountId", + "ParaId", + "Balance", + "LeasePeriod", + "LeasePeriod" + ], + "docs": [ + " A new bid has been accepted as the current winner.", + " `[who, para_id, amount, first_slot, last_slot]`" + ] + }, + { + "name": "WinningOffset", + "args": [ + "AuctionIndex", + "BlockNumber" + ], + "docs": [ + " The winning offset was chosen for an auction. This will map into the `Winning` storage map.", + " `[auction_index, block_number]`" + ] + } + ], + "constants": [ + { + "name": "EndingPeriod", + "type": "BlockNumber", + "value": "0x40190100", + "docs": [ + " The number of blocks over which an auction may be retroactively ended." + ] + }, + { + "name": "SampleLength", + "type": "BlockNumber", + "value": "0x14000000", + "docs": [ + " The length of each sample to take during the ending period.", + "", + " `EndingPeriod` / `SampleLength` = Total # of Samples" + ] + }, + { + "name": "SlotRangeCount", + "type": "u32", + "value": "0x24000000", + "docs": [] + }, + { + "name": "LeasePeriodsPerSlot", + "type": "u32", + "value": "0x08000000", + "docs": [] + } + ], + "errors": [ + { + "name": "AuctionInProgress", + "docs": [ + " This auction is already in progress." + ] + }, + { + "name": "LeasePeriodInPast", + "docs": [ + " The lease period is in the past." + ] + }, + { + "name": "ParaNotRegistered", + "docs": [ + " Para is not registered" + ] + }, + { + "name": "NotCurrentAuction", + "docs": [ + " Not a current auction." + ] + }, + { + "name": "NotAuction", + "docs": [ + " Not an auction." + ] + }, + { + "name": "AuctionEnded", + "docs": [ + " Auction has already ended." + ] + }, + { + "name": "AlreadyLeasedOut", + "docs": [ + " The para is already leased out for part of this range." + ] + } + ], + "index": 72 + }, + { + "name": "Crowdloan", + "storage": { + "prefix": "Crowdloan", + "items": [ + { + "name": "Funds", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ParaId", + "value": "FundInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Info on all of the funds." + ] + }, + { + "name": "NewRaise", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The funds that have had additional contributions during the last block. This is used", + " in order to determine which funds should submit new or updated bids." + ] + }, + { + "name": "EndingsCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The number of auctions that have entered into their ending period so far." + ] + }, + { + "name": "NextTrieIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Tracker for the next available trie index" + ] + } + ] + }, + "calls": [ + { + "name": "create", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "cap", + "type": "Compact" + }, + { + "name": "first_period", + "type": "Compact" + }, + { + "name": "last_period", + "type": "Compact" + }, + { + "name": "end", + "type": "Compact" + }, + { + "name": "verifier", + "type": "Option" + } + ], + "docs": [ + " Create a new crowdloaning campaign for a teyrchain slot with the given lease period range.", + "", + " This applies a lock to your teyrchain configuration, ensuring that it cannot be changed", + " by the teyrchain manager." + ] + }, + { + "name": "contribute", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "signature", + "type": "Option" + } + ], + "docs": [ + " Contribute to a crowd sale. This will transfer some balance over to fund a teyrchain", + " slot. It will be withdrawable when the crowdloan has ended and the funds are unused." + ] + }, + { + "name": "withdraw", + "args": [ + { + "name": "who", + "type": "AccountId" + }, + { + "name": "index", + "type": "Compact" + } + ], + "docs": [ + " Withdraw full balance of a specific contributor.", + "", + " Origin must be signed, but can come from anyone.", + "", + " The fund must be either in, or ready for, retirement. For a fund to be *in* retirement, then the retirement", + " flag must be set. For a fund to be ready for retirement, then:", + " - it must not already be in retirement;", + " - the amount of raised funds must be bigger than the _free_ balance of the account;", + " - and either:", + " - the block number must be at least `end`; or", + " - the current lease period must be greater than the fund's `last_period`.", + "", + " In this case, the fund's retirement flag is set and its `end` is reset to the current block", + " number.", + "", + " - `who`: The account whose contribution should be withdrawn.", + " - `index`: The teyrchain to whose crowdloan the contribution was made." + ] + }, + { + "name": "refund", + "args": [ + { + "name": "index", + "type": "Compact" + } + ], + "docs": [ + " Automatically refund contributors of an ended crowdloan.", + " Due to weight restrictions, this function may need to be called multiple", + " times to fully refund all users. We will refund `RemoveKeysLimit` users at a time.", + "", + " Origin must be signed, but can come from anyone." + ] + }, + { + "name": "dissolve", + "args": [ + { + "name": "index", + "type": "Compact" + } + ], + "docs": [ + " Remove a fund after the retirement period has ended and all funds have been returned." + ] + }, + { + "name": "edit", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "cap", + "type": "Compact" + }, + { + "name": "first_period", + "type": "Compact" + }, + { + "name": "last_period", + "type": "Compact" + }, + { + "name": "end", + "type": "Compact" + }, + { + "name": "verifier", + "type": "Option" + } + ], + "docs": [ + " Edit the configuration for an in-progress crowdloan.", + "", + " Can only be called by Root origin." + ] + }, + { + "name": "add_memo", + "args": [ + { + "name": "index", + "type": "ParaId" + }, + { + "name": "memo", + "type": "Bytes" + } + ], + "docs": [ + " Add an optional memo to an existing crowdloan contribution.", + "", + " Origin must be Signed, and the user must have contributed to the crowdloan." + ] + }, + { + "name": "poke", + "args": [ + { + "name": "index", + "type": "ParaId" + } + ], + "docs": [ + " Poke the fund into `NewRaise`", + "", + " Origin must be Signed, and the fund has non-zero raise." + ] + } + ], + "events": [ + { + "name": "Created", + "args": [ + "ParaId" + ], + "docs": [ + " Create a new crowdloaning campaign. `[fund_index]`" + ] + }, + { + "name": "Contributed", + "args": [ + "AccountId", + "ParaId", + "Balance" + ], + "docs": [ + " Contributed to a crowd sale. `[who, fund_index, amount]`" + ] + }, + { + "name": "Withdrew", + "args": [ + "AccountId", + "ParaId", + "Balance" + ], + "docs": [ + " Withdrew full balance of a contributor. `[who, fund_index, amount]`" + ] + }, + { + "name": "PartiallyRefunded", + "args": [ + "ParaId" + ], + "docs": [ + " The loans in a fund have been partially dissolved, i.e. there are some left", + " over child keys that still need to be killed. `[fund_index]`" + ] + }, + { + "name": "AllRefunded", + "args": [ + "ParaId" + ], + "docs": [ + " All loans in a fund have been refunded. `[fund_index]`" + ] + }, + { + "name": "Dissolved", + "args": [ + "ParaId" + ], + "docs": [ + " Fund is dissolved. `[fund_index]`" + ] + }, + { + "name": "HandleBidResult", + "args": [ + "ParaId", + "DispatchResult" + ], + "docs": [ + " The result of trying to submit a new bid to the Slots pallet." + ] + }, + { + "name": "Edited", + "args": [ + "ParaId" + ], + "docs": [ + " The configuration to a crowdloan has been edited. `[fund_index]`" + ] + }, + { + "name": "MemoUpdated", + "args": [ + "AccountId", + "ParaId", + "Bytes" + ], + "docs": [ + " A memo has been updated. `[who, fund_index, memo]`" + ] + }, + { + "name": "AddedToNewRaise", + "args": [ + "ParaId" + ], + "docs": [ + " A teyrchain has been moved to `NewRaise`" + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f6366756e64", + "docs": [ + " `PalletId` for the crowdloan pallet. An appropriate value could be `PalletId(*b\"py/cfund\")`" + ] + }, + { + "name": "MinContribution", + "type": "BalanceOf", + "value": "0x18e47648170000000000000000000000", + "docs": [ + " The minimum amount that may be contributed into a crowdloan. Should almost certainly be at", + " least `ExistentialDeposit`." + ] + }, + { + "name": "RemoveKeysLimit", + "type": "u32", + "value": "0xe8030000", + "docs": [ + " Max number of storage keys to remove per extrinsic call." + ] + } + ], + "errors": [ + { + "name": "FirstPeriodInPast", + "docs": [ + " The current lease period is more than the first lease period." + ] + }, + { + "name": "FirstPeriodTooFarInFuture", + "docs": [ + " The first lease period needs to at least be less than 3 `max_value`." + ] + }, + { + "name": "LastPeriodBeforeFirstPeriod", + "docs": [ + " Last lease period must be greater than first lease period." + ] + }, + { + "name": "LastPeriodTooFarInFuture", + "docs": [ + " The last lease period cannot be more then 3 periods after the first period." + ] + }, + { + "name": "CannotEndInPast", + "docs": [ + " The campaign ends before the current block number. The end must be in the future." + ] + }, + { + "name": "EndTooFarInFuture", + "docs": [ + " The end date for this crowdloan is not sensible." + ] + }, + { + "name": "Overflow", + "docs": [ + " There was an overflow." + ] + }, + { + "name": "ContributionTooSmall", + "docs": [ + " The contribution was below the minimum, `MinContribution`." + ] + }, + { + "name": "InvalidParaId", + "docs": [ + " Invalid fund index." + ] + }, + { + "name": "CapExceeded", + "docs": [ + " Contributions exceed maximum amount." + ] + }, + { + "name": "ContributionPeriodOver", + "docs": [ + " The contribution period has already ended." + ] + }, + { + "name": "InvalidOrigin", + "docs": [ + " The origin of this call is invalid." + ] + }, + { + "name": "NotTeyrchain", + "docs": [ + " This crowdloan does not correspond to a teyrchain." + ] + }, + { + "name": "LeaseActive", + "docs": [ + " This teyrchain lease is still active and retirement cannot yet begin." + ] + }, + { + "name": "BidOrLeaseActive", + "docs": [ + " This teyrchain's bid or lease is still active and withdraw cannot yet begin." + ] + }, + { + "name": "FundNotEnded", + "docs": [ + " The crowdloan has not yet ended." + ] + }, + { + "name": "NoContributions", + "docs": [ + " There are no contributions stored in this crowdloan." + ] + }, + { + "name": "NotReadyToDissolve", + "docs": [ + " The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement period." + ] + }, + { + "name": "InvalidSignature", + "docs": [ + " Invalid signature." + ] + }, + { + "name": "MemoTooLarge", + "docs": [ + " The provided memo is too large." + ] + }, + { + "name": "AlreadyInNewRaise", + "docs": [ + " The fund is already in `NewRaise`" + ] + }, + { + "name": "VrfDelayInProgress", + "docs": [ + " No contributions allowed during the VRF delay" + ] + } + ], + "index": 73 + }, + { + "name": "XcmPallet", + "storage": { + "prefix": "XcmPallet", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": "QueryId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "QueryId", + "value": "QueryStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "H256", + "value": "u32", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `MultiAssets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": "XcmVersion" + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "XcmVersion", + "key2": "VersionedMultiLocation", + "value": "XcmVersion", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "XcmVersion", + "key2": "VersionedMultiLocation", + "value": "QueryId", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "XcmVersion", + "key2": "VersionedMultiLocation", + "value": "(QueryId,u64,XcmVersion)", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": "Vec<(VersionedMultiLocation,u32)>" + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": "VersionMigrationStage" + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + } + ] + }, + "calls": [ + { + "name": "send", + "args": [ + { + "name": "dest", + "type": "VersionedMultiLocation" + }, + { + "name": "message", + "type": "VersionedXcm" + } + ], + "docs": [] + }, + { + "name": "teleport_assets", + "args": [ + { + "name": "dest", + "type": "VersionedMultiLocation" + }, + { + "name": "beneficiary", + "type": "VersionedMultiLocation" + }, + { + "name": "assets", + "type": "VersionedMultiAssets" + }, + { + "name": "fee_asset_item", + "type": "u32" + } + ], + "docs": [ + " Teleport some assets from the local chain to some destination chain.", + "", + " Fee payment on the destination side is made from the first asset listed in the `assets` vector.", + "", + " - `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + " - `dest`: Destination context for the assets. Will typically be `X2(Parent, Teyrchain(..))` to send", + " from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send from relay to teyrchain.", + " - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be", + " an `AccountId32` value.", + " - `assets`: The assets to be withdrawn. The first item should be the currency used to to pay the fee on the", + " `dest` side. May not be empty.", + " - `dest_weight`: Equal to the total weight on `dest` of the XCM message", + " `Teleport { assets, effects: [ BuyExecution{..}, DepositAsset{..} ] }`." + ] + }, + { + "name": "reserve_transfer_assets", + "args": [ + { + "name": "dest", + "type": "VersionedMultiLocation" + }, + { + "name": "beneficiary", + "type": "VersionedMultiLocation" + }, + { + "name": "assets", + "type": "VersionedMultiAssets" + }, + { + "name": "fee_asset_item", + "type": "u32" + } + ], + "docs": [ + " Transfer some assets from the local chain to the sovereign account of a destination chain and forward", + " a notification XCM.", + "", + " Fee payment on the destination side is made from the first asset listed in the `assets` vector.", + "", + " - `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + " - `dest`: Destination context for the assets. Will typically be `X2(Parent, Teyrchain(..))` to send", + " from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send from relay to teyrchain.", + " - `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will generally be", + " an `AccountId32` value.", + " - `assets`: The assets to be withdrawn. This should include the assets used to pay the fee on the", + " `dest` side.", + " - `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "args": [ + { + "name": "message", + "type": "VersionedXcm" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Execute an XCM message from a local, signed, origin.", + "", + " An event is deposited indicating whether `msg` could be executed completely or only", + " partially.", + "", + " No more than `max_weight` will be used in its attempted execution. If this is less than the", + " maximum amount of weight that the message could take to be executed, then no execution", + " attempt will be made.", + "", + " NOTE: A successful return to this does *not* imply that the `msg` was executed successfully", + " to completion; only that *some* of it was executed." + ] + }, + { + "name": "force_xcm_version", + "args": [ + { + "name": "location", + "type": "MultiLocation" + }, + { + "name": "xcm_version", + "type": "XcmVersion" + } + ], + "docs": [ + " Extoll that a particular destination can be communicated with through a particular", + " version of XCM.", + "", + " - `origin`: Must be Root.", + " - `location`: The destination that is being described.", + " - `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "args": [ + { + "name": "maybe_xcm_version", + "type": "Option" + } + ], + "docs": [ + " Set a safe XCM version (the version that XCM should be encoded with if the most recent", + " version a destination can accept is unknown).", + "", + " - `origin`: Must be Root.", + " - `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "args": [ + { + "name": "location", + "type": "VersionedMultiLocation" + } + ], + "docs": [ + " Ask a location to notify us regarding their XCM version and any changes to it.", + "", + " - `origin`: Must be Root.", + " - `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "args": [ + { + "name": "location", + "type": "VersionedMultiLocation" + } + ], + "docs": [ + " Require that a particular destination should no longer notify us regarding any XCM", + " version changes.", + "", + " - `origin`: Must be Root.", + " - `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + } + ], + "events": [ + { + "name": "Attempted", + "args": [ + "Outcome" + ], + "docs": [ + " Execution of an XCM message was attempted.", + "", + " \\[ outcome \\]" + ] + }, + { + "name": "Sent", + "args": [ + "MultiLocation", + "MultiLocation", + "Xcm" + ], + "docs": [ + " A XCM message was sent.", + "", + " \\[ origin, destination, message \\]" + ] + }, + { + "name": "UnexpectedResponse", + "args": [ + "MultiLocation", + "QueryId" + ], + "docs": [ + " Query response received which does not match a registered query. This may be because a", + " matching query was never registered, it may be because it is a duplicate response, or", + " because the query timed out.", + "", + " \\[ origin location, id \\]" + ] + }, + { + "name": "ResponseReady", + "args": [ + "QueryId", + "Response" + ], + "docs": [ + " Query response has been received and is ready for taking with `take_response`. There is", + " no registered notification call.", + "", + " \\[ id, response \\]" + ] + }, + { + "name": "Notified", + "args": [ + "QueryId", + "u8", + "u8" + ], + "docs": [ + " Query response has been received and query is removed. The registered notification has", + " been dispatched and executed successfully.", + "", + " \\[ id, pallet index, call index \\]" + ] + }, + { + "name": "NotifyOverweight", + "args": [ + "QueryId", + "u8", + "u8", + "Weight", + "Weight" + ], + "docs": [ + " Query response has been received and query is removed. The registered notification could", + " not be dispatched because the dispatch weight is greater than the maximum weight", + " originally budgeted by this runtime for the query result.", + "", + " \\[ id, pallet index, call index, actual weight, max budgeted weight \\]" + ] + }, + { + "name": "NotifyDispatchError", + "args": [ + "QueryId", + "u8", + "u8" + ], + "docs": [ + " Query response has been received and query is removed. There was a general error with", + " dispatching the notification call.", + "", + " \\[ id, pallet index, call index \\]" + ] + }, + { + "name": "NotifyDecodeFailed", + "args": [ + "QueryId", + "u8", + "u8" + ], + "docs": [ + " Query response has been received and query is removed. The dispatch was unable to be", + " decoded into a `Call`; this might be due to dispatch function having a signature which", + " is not `(origin, QueryId, Response)`.", + "", + " \\[ id, pallet index, call index \\]" + ] + }, + { + "name": "InvalidResponder", + "args": [ + "MultiLocation", + "QueryId", + "Option" + ], + "docs": [ + " Expected query response has been received but the origin location of the response does", + " not match that expected. The query remains registered for a later, valid, response to", + " be received and acted upon.", + "", + " \\[ origin location, id, expected location \\]" + ] + }, + { + "name": "InvalidResponderVersion", + "args": [ + "MultiLocation", + "QueryId" + ], + "docs": [ + " Expected query response has been received but the expected origin location placed in", + " storate by this runtime previously cannot be decoded. The query remains registered.", + "", + " This is unexpected (since a location placed in storage in a previously executing", + " runtime should be readable prior to query timeout) and dangerous since the possibly", + " valid response will be dropped. Manual governance intervention is probably going to be", + " needed.", + "", + " \\[ origin location, id \\]" + ] + }, + { + "name": "ResponseTaken", + "args": [ + "QueryId" + ], + "docs": [ + " Received query response has been read and removed.", + "", + " \\[ id \\]" + ] + }, + { + "name": "AssetsTrapped", + "args": [ + "H256", + "MultiLocation", + "VersionedMultiAssets" + ], + "docs": [ + " Some assets have been placed in an asset trap.", + "", + " \\[ hash, origin, assets \\]" + ] + }, + { + "name": "VersionChangeNotified", + "args": [ + "MultiLocation", + "XcmVersion" + ], + "docs": [ + " An XCM version change notification message has been attempted to be sent.", + "", + " \\[ destination, result \\]" + ] + }, + { + "name": "SupportedVersionChanged", + "args": [ + "MultiLocation", + "XcmVersion" + ], + "docs": [ + " The supported version of a location has been changed. This might be through an", + " automatic notification or a manual intervention.", + "", + " \\[ location, XCM version \\]" + ] + }, + { + "name": "NotifyTargetSendFail", + "args": [ + "MultiLocation", + "QueryId", + "XcmError" + ], + "docs": [ + " A given location which had a version change subscription was dropped owing to an error", + " sending the notification to it.", + "", + " \\[ location, query ID, error \\]" + ] + }, + { + "name": "NotifyTargetMigrationFail", + "args": [ + "VersionedMultiLocation", + "QueryId" + ], + "docs": [ + " A given location which had a version change subscription was dropped owing to an error", + " migrating the location to our new XCM format.", + "", + " \\[ location, query ID \\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "Unreachable", + "docs": [ + " The desired destination was unreachable, generally because there is a no way of routing", + " to it." + ] + }, + { + "name": "SendFailure", + "docs": [ + " There was some other issue (i.e. not to do with routing) in sending the message. Perhaps", + " a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "docs": [ + " The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "docs": [ + " The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "docs": [ + " The destination `MultiLocation` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "docs": [ + " The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "docs": [ + " Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "docs": [ + " Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "docs": [ + " Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "docs": [ + " The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "docs": [ + " The given location could not be used (e.g. because it cannot be expressed in the", + " desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "docs": [ + " The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "docs": [ + " The location is invalid since it already has a subscription from us." + ] + } + ], + "index": 99 + } + ], + "extrinsic": { + "version": 4, + "signedExtensions": [ + "CheckSpecVersion", + "CheckTxVersion", + "CheckGenesis", + "CheckMortality", + "CheckNonce", + "CheckWeight", + "ChargeTransactionPayment" + ] + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v13/pezkuwi-hex.ts b/packages/types-support/src/metadata/v13/pezkuwi-hex.ts new file mode 100644 index 0000000..c25f618 --- /dev/null +++ b/packages/types-support/src/metadata/v13/pezkuwi-hex.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x6d6574610d781853797374656d011853797374656d401c4163636f756e7401010230543a3a4163636f756e744964944163636f756e74496e666f3c543a3a496e6465782c20543a3a4163636f756e74446174613e004101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010038436f6e73756d6564576569676874600000000000000000000000000000000000000000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010538543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101050c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040010a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e005901204e4f54453a20546869732073746f72616765206974656d206973206578706c696369746c7920756e626f756e6465642073696e6365206974206973206e6576657220696e74656e64656420746f2062652072656164642066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101021c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e000400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000584c61737452756e74696d6555706772616465496e666f04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e74010010626f6f6c0400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e74010010626f6f6c0400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000145068617365040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01282866696c6c5f626c6f636b04185f726174696f1c50657262696c6c040901204120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e1872656d61726b041c5f72656d61726b1c5665633c75383e146c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e002c2023203c7765696768743e24202d20604f28312960302023203c2f7765696768743e387365745f686561705f7061676573041470616765730c75363420fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e002c2023203c7765696768743e24202d20604f283129604c202d20312073746f726167652077726974652e64202d2042617365205765696768743a20312e34303520c2b57360202d203120777269746520746f20484541505f5041474553302023203c2f7765696768743e207365745f636f64650410636f64651c5665633c75383e2c682053657420746865206e65772072756e74696d6520636f64652e002c2023203c7765696768743e3501202d20604f2843202b2053296020776865726520604360206c656e677468206f662060636f64656020616e642060536020636f6d706c6578697479206f66206063616e5f7365745f636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e4901202d20312063616c6c20746f206063616e5f7365745f636f6465603a20604f28532960202863616c6c73206073705f696f3a3a6d6973633a3a72756e74696d655f76657273696f6e6020776869636820697338202020657870656e73697665292e2c202d2031206576656e742e51012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652c206275742067656e6572616c6c7920746869732069732076657279bc20657870656e736976652e2057652077696c6c207472656174207468697320617320612066756c6c20626c6f636b2e302023203c2f7765696768743e5c7365745f636f64655f776974686f75745f636865636b730410636f64651c5665633c75383e201d012053657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e002c2023203c7765696768743e90202d20604f2843296020776865726520604360206c656e677468206f662060636f64656088202d20312073746f726167652077726974652028636f64656320604f28432960292e2c202d2031206576656e742e59012054686520776569676874206f6620746869732066756e6374696f6e20697320646570656e64656e74206f6e207468652072756e74696d652e2057652077696c6c207472656174207468697320617320612066756c6c4c20626c6f636b2e2023203c2f7765696768743e5c7365745f6368616e6765735f747269655f636f6e666967044c6368616e6765735f747269655f636f6e666967804f7074696f6e3c4368616e67657354726965436f6e66696775726174696f6e3e28a02053657420746865206e6577206368616e676573207472696520636f6e66696775726174696f6e2e002c2023203c7765696768743e24202d20604f28312960b0202d20312073746f72616765207772697465206f722064656c6574652028636f64656320604f28312960292ed8202d20312063616c6c20746f20606465706f7369745f6c6f67603a20557365732060617070656e6460204150492c20736f204f28312964202d2042617365205765696768743a20372e32313820c2b57334202d204442205765696768743aa820202020202d205772697465733a204368616e67657320547269652c2053797374656d20446967657374302023203c2f7765696768743e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e206c2053657420736f6d65206974656d73206f662073746f726167652e002c2023203c7765696768743e94202d20604f2849296020776865726520604960206c656e677468206f6620606974656d73607c202d206049602073746f72616765207772697465732028604f28312960292e74202d2042617365205765696768743a20302e353638202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e306b696c6c5f73746f7261676504106b657973205665633c4b65793e2078204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e002c2023203c7765696768743efc202d20604f28494b296020776865726520604960206c656e677468206f6620606b6579736020616e6420604b60206c656e677468206f66206f6e65206b657964202d206049602073746f726167652064656c6574696f6e732e70202d2042617365205765696768743a202e333738202a206920c2b57368202d205772697465733a204e756d626572206f66206974656d73302023203c2f7765696768743e2c6b696c6c5f70726566697808187072656669780c4b6579205f7375626b6579730c7533322c1501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e003d01202a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e64657241012074686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e002c2023203c7765696768743edc202d20604f285029602077686572652060506020616d6f756e74206f66206b65797320776974682070726566697820607072656669786064202d206050602073746f726167652064656c6574696f6e732e74202d2042617365205765696768743a20302e383334202a205020c2b57380202d205772697465733a204e756d626572206f66207375626b657973202b2031302023203c2f7765696768743e4472656d61726b5f776974685f6576656e74041872656d61726b1c5665633c75383e18a8204d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e002c2023203c7765696768743eb8202d20604f28622960207768657265206220697320746865206c656e677468206f66207468652072656d61726b2e2c202d2031206576656e742e302023203c2f7765696768743e01184045787472696e7369635375636365737304304469737061746368496e666f04b820416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e205c5b696e666f5c5d3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f049420416e2065787472696e736963206661696c65642e205c5b6572726f722c20696e666f5c5d2c436f64655570646174656400045420603a636f6465602077617320757064617465642e284e65774163636f756e7404244163636f756e744964047c2041206e6577205c5b6163636f756e745c5d2077617320637265617465642e344b696c6c65644163636f756e7404244163636f756e744964046c20416e205c5b6163636f756e745c5d20776173207265617065642e2052656d61726b656408244163636f756e744964104861736804d4204f6e206f6e2d636861696e2072656d61726b2068617070656e65642e205c5b6f726967696e2c2072656d61726b5f686173685c5d1830426c6f636b57656967687473506c696d6974733a3a426c6f636b57656967687473850100f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a74000000405973070000000000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774684c6c696d6974733a3a426c6f636b4c656e6774683000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e7438543a3a426c6f636b4e756d6265721060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768743c52756e74696d6544625765696768744040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3852756e74696d6556657273696f6e490320706f6c6b61646f743c7061726974792d706f6c6b61646f74000000008c2300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a801000000070000000484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780c75313608000014a8205468652064657369676e61746564205353383520707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e143c496e76616c6964537065634e616d6508150120546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e637265617365084501205468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d655420616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e0cf0204661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e000d01204569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f7369746504010120537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e740439012054686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e00245363686564756c657201245363686564756c65720c184167656e646101010538543a3a426c6f636b4e756d62657271015665633c4f7074696f6e3c5363686564756c65643c3c5420617320436f6e6669673e3a3a43616c6c2c20543a3a426c6f636b4e756d6265722c20543a3a0a50616c6c6574734f726967696e2c20543a3a4163636f756e7449643e3e3e000400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b75700001051c5665633c75383e6c5461736b416464726573733c543a3a426c6f636b4e756d6265723e000400040101204c6f6f6b75702066726f6d206964656e7469747920746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e0118207363686564756c6510107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e287420416e6f6e796d6f75736c79207363686564756c652061207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7390202d2042617365205765696768743a2032322e3239202b202e313236202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64615020202020202d2057726974653a204167656e64613d01202d2057696c6c20757365206261736520776569676874206f662032352077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e1863616e63656c08107768656e38543a3a426c6f636b4e756d62657214696e6465780c75333228982043616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032322e3135202b20322e383639202a205320c2b57334202d204442205765696768743a4c20202020202d20526561643a204167656e64617020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f6e616d6564140869641c5665633c75383e107768656e38543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e285c205363686564756c652061206e616d6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c738c202d2042617365205765696768743a2032392e36202b202e313539202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704d01202d2057696c6c20757365206261736520776569676874206f662033352077686963682073686f756c6420626520676f6f6420666f72206d6f7265207468616e203330207363686564756c65642063616c6c73302023203c2f7765696768743e3063616e63656c5f6e616d6564040869641c5665633c75383e287c2043616e63656c2061206e616d6564207363686564756c6564207461736b2e002c2023203c7765696768743ea0202d2053203d204e756d626572206f6620616c7265616479207363686564756c65642063616c6c7394202d2042617365205765696768743a2032342e3931202b20322e393037202a205320c2b57334202d204442205765696768743a6c20202020202d20526561643a204167656e64612c204c6f6f6b75707020202020202d2057726974653a204167656e64612c204c6f6f6b75704101202d2057696c6c20757365206261736520776569676874206f66203130302077686963682073686f756c6420626520676f6f6420666f7220757020746f203330207363686564756c65642063616c6c73302023203c2f7765696768743e387363686564756c655f61667465721014616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e14ac20416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e002c2023203c7765696768743e582053616d65206173205b607363686564756c65605d2e302023203c2f7765696768743e507363686564756c655f6e616d65645f6166746572140869641c5665633c75383e14616674657238543a3a426c6f636b4e756d626572386d617962655f706572696f646963a04f7074696f6e3c7363686564756c653a3a506572696f643c543a3a426c6f636b4e756d6265723e3e207072696f72697479487363686564756c653a3a5072696f726974791063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e1494205363686564756c652061206e616d6564207461736b20616674657220612064656c61792e002c2023203c7765696768743ec82053616d65206173205b607363686564756c655f6e616d6564605d2853656c663a3a7363686564756c655f6e616d6564292e302023203c2f7765696768743e010c245363686564756c6564082c426c6f636b4e756d6265720c7533320494205363686564756c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d2043616e63656c6564082c426c6f636b4e756d6265720c75333204902043616e63656c656420736f6d65207461736b2e205c5b7768656e2c20696e6465785c5d28446973706174636865640c605461736b416464726573733c426c6f636b4e756d6265723e3c4f7074696f6e3c5665633c75383e3e384469737061746368526573756c7404ac204469737061746368656420736f6d65207461736b2e205c5b7461736b2c2069642c20726573756c745c5d08344d6178696d756d576569676874185765696768742000806e877401000008450120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c6573206f66206c657373a4207072696f72697479207468616e20607363686564756c653a3a484152445f444541444c494e45602e504d61785363686564756c6564506572426c6f636b0c7533321032000000081d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e10404661696c6564546f5363686564756c650468204661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e6404802043616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e5061737404a820476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e676504f42052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e011042616265011042616265402845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f74010010536c6f7420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f74010010536c6f7420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e65737380000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000504e657874436f6e66696744657363726970746f7204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e6573730100587363686e6f72726b656c3a3a52616e646f6d6e657373800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101050c7533326c5665633c7363686e6f72726b656c3a3a52616e646f6d6e6573733e0004000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400003c4d6179626552616e646f6d6e65737304000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301003c4d6179626552616e646f6d6e65737304001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0051012049742069732073657420696e20606f6e5f696e697469616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d62657229200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010038543a3a426c6f636b4e756d626572100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e04000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000584261626545706f6368436f6e66696775726174696f6e0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f6684426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f6684426f783c45717569766f636174696f6e50726f6f663c543a3a4865616465723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66200d01205265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c207665726966790901207468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66110120616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c34206265207265706f727465642e110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e48706c616e5f636f6e6669675f6368616e67650418636f6e666967504e657874436f6e66696744657363726970746f7210610120506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e550120746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e5d01204d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e676520746861742068616458206e6f74206265656e20656e6163746564207965742e00083445706f63684475726174696f6e0c7536342060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e0c60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e022454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e405820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e002c2023203c7765696768743e3501202d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f28312960296501202d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f28312960292e202862656361757365206f6620604469645570646174653a3a74616b656020696e44202020606f6e5f66696e616c697a656029d8202d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e302023203c2f7765696768743e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420b80b000000000000104d0120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a5d0120706572696f6420746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c5d012067656e6572616c6c7920776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c206265a020646f75626c65207468697320706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001023c543a3a4163636f756e74496e6465788828543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20626f6f6c29000400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011414636c61696d0414696e6465783c543a3a4163636f756e74496e646578489c2041737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00e0205061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f4202d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e207472616e73666572080c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e6465785061012041737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6ebc206973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002901202d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e68202d204f6e65207472616e73666572206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743ae4202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429e8202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e742028726563697069656e7429302023203c2f7765696768743e10667265650414696e6465783c543a3a4163636f756e74496e6465784898204672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e006101205061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e001101202d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e008820456d6974732060496e646578467265656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e64202d204f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e38666f7263655f7472616e736665720c0c6e657730543a3a4163636f756e74496414696e6465783c543a3a4163636f756e74496e64657818667265657a6510626f6f6c54590120466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479ec2068656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a8202d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e6101202d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e4501202d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e009420456d6974732060496e64657841737369676e656460206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e7c202d20557020746f206f6e652072657365727665206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743af8202020202d2052656164733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229fc202020202d205772697465733a20496e6469636573204163636f756e74732c2053797374656d204163636f756e7420286f726967696e616c206f776e657229302023203c2f7765696768743e18667265657a650414696e6465783c543a3a4163636f756e74496e64657848450120467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d65732074686524206465706f7369742e005d0120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742068617665206170206e6f6e2d66726f7a656e206163636f756e742060696e646578602e00b0202d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e008c20456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e002c2023203c7765696768743e28202d20604f283129602e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28312960292e74202d20557020746f206f6e6520736c617368206f7065726174696f6e2e34202d204f6e65206576656e742e50202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d94202d204442205765696768743a203120526561642f577269746520284163636f756e747329302023203c2f7765696768743e010c34496e64657841737369676e656408244163636f756e744964304163636f756e74496e64657804b42041206163636f756e7420696e646578207761732061737369676e65642e205c5b696e6465782c2077686f5c5d28496e646578467265656404304163636f756e74496e64657804e82041206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e205c5b696e6465785c5d2c496e64657846726f7a656e08304163636f756e74496e646578244163636f756e7449640429012041206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e205c5b696e6465782c2077686f5c5d041c4465706f7369743042616c616e63654f663c543e4000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e142c4e6f7441737369676e656404902054686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e657204a82054686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e55736504742054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e7366657204cc2054686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e7404d42054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e042042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c4163636f756e7401010230543a3a4163636f756e7449645c4163636f756e74446174613c543a3a42616c616e63653e000101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c6c205468652062616c616e6365206f6620616e206163636f756e742e004101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010230543a3a4163636f756e744964d05765616b426f756e6465645665633c42616c616e63654c6f636b3c543a3a42616c616e63653e2c20543a3a4d61784c6f636b733e00040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010230543a3a4163636f756e7449642901426f756e6465645665633c52657365727665446174613c543a3a526573657276654964656e7469666965722c20543a3a42616c616e63653e2c20543a3a0a4d617852657365727665733e00040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076322e302e3020666f72206e6577206e6574776f726b732e0114207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e70d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e6501202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f7220696e70757420636f6e6669679820202074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e3501202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c65783c202020636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d0202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642e61012020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765722060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e636564602e61012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616c20636865636be020202020207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e88202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d4501202d2042617365205765696768743a2037332e363420c2b5732c20776f7273742063617365207363656e6172696f20286163636f756e7420637265617465642c206163636f756e742072656d6f76656429dc202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374696e6174696f6e206163636f756e741501202d204f726967696e206163636f756e7420697320616c726561647920696e206d656d6f72792c20736f206e6f204442206f7065726174696f6e7320666f72207468656d2e302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e489420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742c01012069742077696c6c20726573657420746865206163636f756e74206e6f6e63652028606672616d655f73797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e58202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d3c202d2042617365205765696768743a6820202020202d204372656174696e673a2032372e353620c2b5736420202020202d204b696c6c696e673a2033352e313120c2b57398202d204442205765696768743a203120526561642c203120577269746520746f206077686f60302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e2c2023203c7765696768743e5101202d2053616d65206173207472616e736665722c20627574206164646974696f6e616c207265616420616e6420777269746520626563617573652074686520736f75726365206163636f756e74206973206e6f7480202020617373756d656420746f20626520696e20746865206f7665726c61792e302023203c2f7765696768743e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e2c51012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e736665722c2023203c7765696768743ee8202d2043686561706572207468616e207472616e736665722062656361757365206163636f756e742063616e6e6f74206265206b696c6c65642e60202d2042617365205765696768743a2035312e3420c2b5731d01202d204442205765696768743a2031205265616420616e64203120577269746520746f2064657374202873656e64657220697320696e206f7665726c617920616c7265616479292c20233c2f7765696768743e307472616e736665725f616c6c0810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365286b6565705f616c69766510626f6f6c440901205472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e005d01204e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e732074686174650120616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062656101207472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c490120796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f7261676544206465706f736974732c206574632e2e2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a4202d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e5d01202d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c51012020206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f725d012020207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746fcc2020206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e2023203c7765696768743e3d01202d204f2831292e204a757374206c696b65207472616e736665722c206275742072656164696e672074686520757365722773207472616e7366657261626c652062616c616e63652066697273742e34202020233c2f7765696768743e01201c456e646f77656408244163636f756e7449641c42616c616e636504250120416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e205c5b6163636f756e742c20667265655f62616c616e63655c5d20447573744c6f737408244163636f756e7449641c42616c616e636508410120416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742cd020726573756c74696e6720696e20616e206f75747269676874206c6f73732e205c5b6163636f756e742c2062616c616e63655c5d205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e636504a0205472616e73666572207375636365656465642e205c5b66726f6d2c20746f2c2076616c75655c5d2842616c616e63655365740c244163636f756e7449641c42616c616e63651c42616c616e636504cc20412062616c616e6365207761732073657420627920726f6f742e205c5b77686f2c20667265652c2072657365727665645c5d1c4465706f73697408244163636f756e7449641c42616c616e636504210120536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e205c5b77686f2c206465706f7369745c5d20526573657276656408244163636f756e7449641c42616c616e636504210120536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e205c5b77686f2c2076616c75655c5d28556e726573657276656408244163636f756e7449641c42616c616e636504290120536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e205c5b77686f2c2076616c75655c5d4852657365727665526570617472696174656410244163636f756e744964244163636f756e7449641c42616c616e6365185374617475730c510120536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742edc2046696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652ea8205c5b66726f6d2c20746f2c2062616c616e63652c2064657374696e6174696f6e5f7374617475735c5d0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000e40b5402000000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d61784c6f636b730c753332103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d617852657365727665730c7533321032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e203856657374696e6742616c616e6365049c2056657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c7565544c69717569646974795265737472696374696f6e7304c8204163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c4c496e73756666696369656e7442616c616e636504782042616c616e636520746f6f206c6f7720746f2073656e642076616c7565484578697374656e7469616c4465706f73697404ec2056616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f736974244b656570416c6976650490205472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e745c4578697374696e6756657374696e675363686564756c6504cc20412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742c446561644163636f756e74048c2042656e6566696369617279206163636f756e74206d757374207072652d65786973743c546f6f4d616e79526573657276657304b0204e756d626572206f66206e616d656420726573657276657320657863656564204d6178526573657276657305485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100284d756c7469706c69657240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01002052656c6561736573040000000008485472616e73616374696f6e427974654665653042616c616e63654f663c543e4040420f00000000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c576569676874546f466565a45665633c576569676874546f466565436f656666696369656e743c42616c616e63654f663c543e3e3e5c040000000000000000000000000000000000b4c4040001040d012054686520706f6c796e6f6d69616c2074686174206973206170706c69656420696e206f7264657220746f20646572697665206665652066726f6d207765696768742e002028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e000440556e636c6547656e65726174696f6e7338543a3a426c6f636b4e756d62657210000000000ccc20546865206e756d626572206f6620626c6f636b73206261636b2077652073686f756c642061636365707420756e636c65732ee42054686973206d65616e7320746861742077652077696c6c206465616c207769746820756e636c652d706172656e7473207468617420617265942060556e636c6547656e65726174696f6e73202b203160206265666f726520606e6f77602e1c48496e76616c6964556e636c65506172656e74048c2054686520756e636c6520706172656e74206e6f7420696e2074686520636861696e2e40556e636c6573416c7265616479536574048420556e636c657320616c72656164792073657420696e2074686520626c6f636b2e34546f6f4d616e79556e636c6573044420546f6f206d616e7920756e636c65732e3047656e65736973556e636c6504582054686520756e636c652069732067656e657369732e30546f6f48696768556e636c6504802054686520756e636c6520697320746f6f206869676820696e20636861696e2e50556e636c65416c7265616479496e636c75646564047c2054686520756e636c6520697320616c726561647920696e636c756465642e204f6c64556e636c6504b82054686520756e636c652069736e277420726563656e7420656e6f75676820746f20626520696e636c756465642e061c5374616b696e67011c5374616b696e679430486973746f7279446570746801000c75333210540000001c8c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00390120496e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e006101204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e206f74686572776973652e20492e652e2061637469766520657261206d757374390120616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203e2063757272656e745f657261202d20686973746f72795f646570746860206d757374206265302067756172616e746565642e3856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010530543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e404d696e4e6f6d696e61746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e6401003042616c616e63654f663c543e400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e184c656467657200010230543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010530543a3a4163636f756e7449647c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010530543a3a4163636f756e7449643856616c696461746f725072656673000800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f7256616c696461746f7273602e50436f756e746572466f7256616c696461746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e20746865206056616c696461746f727360206d61702e484d617856616c696461746f7273436f756e7400000c75333204000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010530543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e0004000c650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e004901205768656e207570646174696e6720746869732073746f72616765206974656d2c20796f75206d75737420616c736f20757064617465207468652060436f756e746572466f724e6f6d696e61746f7273602e50436f756e746572466f724e6f6d696e61746f727301000c7533321000000000042101204120747261636b657220746f206b65657020636f756e74206f6620746865206e756d626572206f66206974656d7320696e2074686520604e6f6d696e61746f727360206d61702e484d61784e6f6d696e61746f7273436f756e7400000c75333204000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e74457261000020457261496e6465780400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e24416374697665457261000034416374697665457261496e666f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e64657800010520457261496e6465783053657373696f6e496e646578000400103101205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c6173742060484953544f52595f44455054486020657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000001878204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e48457261735374616b657273436c697070656401020520457261496e64657830543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e050c0000002c9820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865dc2060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e484572617356616c696461746f72507265667301020520457261496e64657830543a3a4163636f756e7449643856616c696461746f725072656673050800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00a82049732069742072656d6f7665642061667465722060484953544f52595f44455054486020657261732e4c4572617356616c696461746f7252657761726400010520457261496e6465783042616c616e63654f663c543e0004000c09012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c6173742060484953544f52595f44455054486020657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e747301010520457261496e64657874457261526577617264506f696e74733c543a3a4163636f756e7449643e0014000000000008ac205265776172647320666f7220746865206c6173742060484953544f52595f44455054486020657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010520457261496e6465783042616c616e63654f663c543e00400000000000000000000000000000000008ec2054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c6173742060484953544f52595f44455054486020657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f72636545726101001c466f7263696e6704000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010520457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2905040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020520457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e05040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010530543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101058c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e5443757272656e74506c616e6e656453657373696f6e01003053657373696f6e496e64657810000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e3853746f7261676556657273696f6e01002052656c6561736573040610cc2054727565206966206e6574776f726b20686173206265656e20757067726164656420746f20746869732076657273696f6e2e7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e00a020546869732069732073657420746f2076372e302e3020666f72206e6577206e6574776f726b732e384368696c6c5468726573686f6c6400001c50657263656e7404000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e016410626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e4465012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e004020456d6974732060426f6e646564602e2c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e005101204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e6564410120756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e4c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3c65012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e590120556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365c020616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e004020456d6974732060426f6e646564602e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e4c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e003d012049662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1d0120746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e004820456d6974732060556e626f6e646564602e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e64656404486e756d5f736c617368696e675f7370616e730c7533323c2d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e004c20456d697473206057697468647261776e602e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e090120436f6d706c6578697479204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f76650d01204e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f72507265667314e8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e3101202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e2901012077686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d495420284d41585f4e4f4d494e4154494f4e53292ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965657c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e40b8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e28202d2d2d2d2d2d2d2d2d3c202d205765696768743a204f28312934202d204442205765696768743a4c20202020202d20526561643a204c65646765724c20202020202d2057726974653a205061796565302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654090202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e2c202d2d2d2d2d2d2d2d2d2d34205765696768743a204f2831292c204442205765696768743af4202d20526561643a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572f8202d2057726974653a20426f6e6465642c204c6564676572204e657720436f6e74726f6c6c65722c204c6564676572204f6c6420436f6e74726f6c6c6572302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e209420536574732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e34205765696768743a204f2831295c2057726974653a2056616c696461746f7220436f756e74302023203c2f7765696768743e60696e6372656173655f76616c696461746f725f636f756e7404286164646974696f6e616c30436f6d706163743c7533323e1cac20496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f72732e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e9c2053616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e547363616c655f76616c696461746f725f636f756e740418666163746f721c50657263656e741cd4205363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e9c2053616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e302023203c2f7765696768743e34666f7263655f6e6f5f65726173003cb020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3d0120546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865e020656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e34666f7263655f6e65775f65726100404d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e3c202d205765696768743a204f28312944202d20577269746520466f726365457261302023203c2f7765696768743e447365745f696e76756c6e657261626c65730434696e76756c6e657261626c6573445665633c543a3a4163636f756e7449643e20cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743e1c202d204f2856295c202d2057726974653a20496e76756c6e657261626c6573302023203c2f7765696768743e34666f7263655f756e7374616b650814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c753332280d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e002c2023203c7765696768743eec204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2062652072656d6f766564b82052656164733a20426f6e6465642c20536c617368696e67205370616e732c204163636f756e742c204c6f636b734901205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732ca8204163636f756e742c204c6f636b732057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e50666f7263655f6e65775f6572615f616c776179730038050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e008820546865206469737061746368206f726967696e206d75737420626520526f6f742e00282023205761726e696e67001d012054686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4d0120496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f7490206861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e002c2023203c7765696768743e3c202d205765696768743a204f28312948202d2057726974653a20466f726365457261302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e34982043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e00b42043616e2062652063616c6c6564206279207468652060543a3a536c61736843616e63656c4f726967696e602e00050120506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e5420436f6d706c65786974793a204f2855202b205329b82077697468205520756e6170706c69656420736c6173686573207765696768746564207769746820553d31303030d420616e64205320697320746865206e756d626572206f6620736c61736820696e646963657320746f2062652063616e63656c65642e68202d20526561643a20556e6170706c69656420536c61736865736c202d2057726974653a20556e6170706c69656420536c6173686573302023203c2f7765696768743e387061796f75745f7374616b657273083c76616c696461746f725f737461736830543a3a4163636f756e7449640c65726120457261496e64657854110120506179206f757420616c6c20746865207374616b65727320626568696e6420612073696e676c652076616c696461746f7220666f7220612073696e676c65206572612e004d01202d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e205468656972206e6f6d696e61746f72732c20757020746f290120202060543a3a4d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602c2077696c6c20616c736f207265636569766520746865697220726577617264732e3501202d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e00590120546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e20696678206974206973206e6f74206f6e65206f6620746865207374616b6572732e002c2023203c7765696768743e0101202d2054696d6520636f6d706c65786974793a206174206d6f7374204f284d61784e6f6d696e61746f72526577617264656450657256616c696461746f72292ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e30202d2d2d2d2d2d2d2d2d2d2d1d01204e20697320746865204e756d626572206f66207061796f75747320666f72207468652076616c696461746f722028696e636c7564696e67207468652076616c696461746f722920205765696768743a88202d205265776172642044657374696e6174696f6e205374616b65643a204f284e29c4202d205265776172642044657374696e6174696f6e20436f6e74726f6c6c657220284372656174696e67293a204f284e290051012020204e4f54453a20776569676874732061726520617373756d696e672074686174207061796f75747320617265206d61646520746f20616c697665207374617368206163636f756e7420285374616b6564292e5901202020506179696e67206576656e2061206465616420636f6e74726f6c6c65722069732063686561706572207765696768742d776973652e20576520646f6e277420646f20616e7920726566756e647320686572652e302023203c2f7765696768743e187265626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e24e0205265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d820546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e002c2023203c7765696768743ed4202d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b7394202d20426f756e64656420627920604d41585f554e4c4f434b494e475f4348554e4b53602ef4202d2053746f72616765206368616e6765733a2043616e277420696e6372656173652073746f726167652c206f6e6c792064656372656173652069742e302023203c2f7765696768743e447365745f686973746f72795f646570746808446e65775f686973746f72795f646570746844436f6d706163743c457261496e6465783e485f6572615f6974656d735f64656c6574656430436f6d706163743c7533323e583101205365742060486973746f72794465707468602076616c75652e20546869732066756e6374696f6e2077696c6c2064656c65746520616e7920686973746f727920696e666f726d6174696f6e80207768656e2060486973746f727944657074686020697320726564756365642e003020506172616d65746572733a1101202d20606e65775f686973746f72795f6465707468603a20546865206e657720686973746f727920646570746820796f7520776f756c64206c696b6520746f207365742e5d01202d20606572615f6974656d735f64656c65746564603a20546865206e756d626572206f66206974656d7320746861742077696c6c2062652064656c6574656420627920746869732064697370617463682e2054686973610120202073686f756c64207265706f727420616c6c207468652073746f72616765206974656d7320746861742077696c6c2062652064656c6574656420627920636c656172696e67206f6c642065726120686973746f72792e5d012020204e656564656420746f207265706f727420616e2061636375726174652077656967687420666f72207468652064697370617463682e20547275737465642062792060526f6f746020746f207265706f727420616e4c2020206163637572617465206e756d6265722e0054204f726967696e206d75737420626520726f6f742e002c2023203c7765696768743ee0202d20453a204e756d626572206f6620686973746f7279206465707468732072656d6f7665642c20692e652e203130202d3e2037203d20333c202d205765696768743a204f28452934202d204442205765696768743aa020202020202d2052656164733a2043757272656e74204572612c20486973746f72792044657074687020202020202d205772697465733a20486973746f7279204465707468310120202020202d20436c6561722050726566697820456163683a20457261205374616b6572732c204572615374616b657273436c69707065642c204572617356616c696461746f725072656673290120202020202d2057726974657320456163683a204572617356616c696461746f725265776172642c2045726173526577617264506f696e74732c2045726173546f74616c5374616b652c702020202020202045726173537461727453657373696f6e496e646578302023203c2f7765696768743e28726561705f73746173680814737461736830543a3a4163636f756e744964486e756d5f736c617368696e675f7370616e730c7533324061012052656d6f766520616c6c20646174612073747275637475726520636f6e6365726e696e672061207374616b65722f7374617368206f6e6365206974732062616c616e636520697320617420746865206d696e696d756d2e6101205468697320697320657373656e7469616c6c79206571756976616c656e7420746f206077697468647261775f756e626f6e64656460206578636570742069742063616e2062652063616c6c656420627920616e796f6e65f820616e6420746865207461726765742060737461736860206d7573742068617665206e6f2066756e6473206c656674206265796f6e64207468652045442e009020546869732063616e2062652063616c6c65642066726f6d20616e79206f726967696e2e000101202d20607374617368603a20546865207374617368206163636f756e7420746f20726561702e204974732062616c616e6365206d757374206265207a65726f2e002c2023203c7765696768743e250120436f6d706c65786974793a204f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e73206f6e20746865206163636f756e742e2c204442205765696768743ad8202d2052656164733a205374617368204163636f756e742c20426f6e6465642c20536c617368696e67205370616e732c204c6f636b735101202d205772697465733a20426f6e6465642c20536c617368696e67205370616e73202869662053203e2030292c204c65646765722c2050617965652c2056616c696461746f72732c204e6f6d696e61746f72732c5c2020205374617368204163636f756e742c204c6f636b7374202d2057726974657320456163683a205370616e536c617368202a2053302023203c2f7765696768743e106b69636b040c77686fa05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2ce42052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e005101202d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c420202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e005901204e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f7c20626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e487365745f7374616b696e675f6c696d69747314486d696e5f6e6f6d696e61746f725f626f6e643042616c616e63654f663c543e486d696e5f76616c696461746f725f626f6e643042616c616e63654f663c543e4c6d61785f6e6f6d696e61746f725f636f756e742c4f7074696f6e3c7533323e4c6d61785f76616c696461746f725f636f756e742c4f7074696f6e3c7533323e247468726573686f6c643c4f7074696f6e3c50657263656e743e34bc205570646174652074686520766172696f7573207374616b696e67206c696d69747320746869732070616c6c65742e002901202a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e2901202a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e5901202a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e9c20202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e5901202a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e9c20202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e00ac204f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e003901204e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e150120746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720428636f6e74726f6c6c657230543a3a4163636f756e744964544501204465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00450120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e005d01204966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265dc20656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e006101204966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e7334206d757374206265206d65743a4101202a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d617859012020206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e5d01202a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e6594202020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e6101202a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e6573550120202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c6444202020626f6e642072657175697265642e00590120546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739c2077686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e01301c457261506169640c20457261496e6465781c42616c616e63651c42616c616e63650c59012054686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c4207468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642eac205c5b6572615f696e6465782c2076616c696461746f725f7061796f75742c2072656d61696e6465725c5d20526577617264656408244163636f756e7449641c42616c616e636504090120546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d1c536c617368656408244163636f756e7449641c42616c616e6365082501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e58205c5b76616c696461746f722c20616d6f756e745c5d684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6490206e6f742062652070726f6365737365642e205c5b73657373696f6e5f696e6465785c5d385374616b657273456c65637465640004882041206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e64656408244163636f756e7449641c42616c616e636510d420416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d005101204e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c25012069742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e64656408244163636f756e7449641c42616c616e636504dc20416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d2457697468647261776e08244163636f756e7449641c42616c616e6365085d0120416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e636560b02066726f6d2074686520756e6c6f636b696e672071756575652e205c5b73746173682c20616d6f756e745c5d184b69636b656408244163636f756e744964244163636f756e744964040d012041206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e205c5b6e6f6d696e61746f722c2073746173685c5d545374616b696e67456c656374696f6e4661696c65640004b02054686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c656404244163636f756e74496408250120416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e28205c5b73746173685c5d345061796f7574537461727465640820457261496e646578244163636f756e74496404190120546865207374616b657273272072657761726473206172652067657474696e6720706169642e205c5b6572615f696e6465782c2076616c696461746f725f73746173685c5d143853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e646578101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e20457261496e646578101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e804d61784e6f6d696e61746f72526577617264656450657256616c696461746f720c753332100001000010f820546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320726577617264656420666f7220656163682076616c696461746f722e00510120466f7220656163682076616c696461746f72206f6e6c79207468652060244d61784e6f6d696e61746f72526577617264656450657256616c696461746f72602062696767657374207374616b6572732063616e390120636c61696d207468656972207265776172642e2054686973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e384d61784e6f6d696e6174696f6e730c7533321010000000005c344e6f74436f6e74726f6c6c65720468204e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f7453746173680454204e6f742061207374617368206163636f756e742e34416c7265616479426f6e646564046420537461736820697320616c726561647920626f6e6465642e34416c7265616479506169726564047820436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d70747954617267657473046420546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e6465780444204475706c696361746520696e6465782e44496e76616c6964536c617368496e646578048820536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6404d02043616e206e6f7420626f6e6420776974682076616c7565206c657373207468616e206d696e696d756d2072657175697265642e304e6f4d6f72654368756e6b7304942043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b04a42043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e64656454617267657404cc20417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264045c20496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73047c20496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e697175650484204974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564040d01205265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e54496e636f7272656374486973746f7279446570746804c420496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e7304b420496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e204261645374617465043d0120496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e7954617267657473049820546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740441012041206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f746865720459012054686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730851012054686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b82073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f72730851012054686572652061726520746f6f206d616e792076616c696461746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b82073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e07204f6666656e63657301204f6666656e6365730c1c5265706f727473000105345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010205104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010105104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e0001041c4f6666656e636508104b696e64384f706171756554696d65536c6f740c550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e50205c5b6b696e642c2074696d65736c6f745c5d2e00000828486973746f726963616c0000000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010538543a3a56616c696461746f7249641c543a3a4b657973000400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010550284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496400040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0108207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e38e82053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a20606f726967696e206163636f756e74602c2060543a3a56616c696461746f7249644f66602c20604e6578744b65797360a4202d2044625772697465733a20606f726967696e206163636f756e74602c20604e6578744b6579736084202d204462526561647320706572206b65792069643a20604b65794f776e65726088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e2870757267655f6b6579730030cc2052656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743eb4202d20436f6d706c65786974793a20604f2831296020696e206e756d626572206f66206b65792074797065732e590120202041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642ef0202d20446252656164733a2060543a3a56616c696461746f7249644f66602c20604e6578744b657973602c20606f726967696e206163636f756e7460a4202d2044625772697465733a20604e6578744b657973602c20606f726967696e206163636f756e746088202d20446257726974657320706572206b65792069643a20604b65794f776e657260302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578084d01204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e7420697320746865205c5b73657373696f6e5f696e6465785c5d2c206e6f7420746865a020626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e001430496e76616c696450726f6f66046420496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f72496404a0204e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b657904682052656769737465726564206475706c6963617465206b65792e184e6f4b65797304a8204e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e74041d01204b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e091c4772616e647061011c4772616e6470611814537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001051453657449643053657373696f6e496e6465780004001059012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e010c4c7265706f72745f65717569766f636174696f6e084865717569766f636174696f6e5f70726f6f66bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66100d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e6564084865717569766f636174696f6e5f70726f6f66bc426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20543a3a426c6f636b4e756d6265723e3e3c6b65795f6f776e65725f70726f6f6640543a3a4b65794f776e657250726f6f66240d01205265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f82065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66fc20616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e6365482077696c6c206265207265706f727465642e00110120546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c79190120626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c206173207375636819012069662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e28207265706f727465722e306e6f74655f7374616c6c6564081464656c617938543a3a426c6f636b4e756d6265726c626573745f66696e616c697a65645f626c6f636b5f6e756d62657238543a3a426c6f636b4e756d6265721c1d01204e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c69747920676164676574206861732901207374616c6c65642e20546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e672101206f6620746865206e6578742073657373696f6e2c20746f20626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e205468652064656c617915012073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d6520746861742074686520626c6f636b207369676e616c6c696e6720746865290120666f72636564206368616e67652077696c6c206e6f742062652072652d6f726765642028652e672e203130303020626c6f636b73292e20546865204752414e44504120766f7465727329012077696c6c20737461727420746865206e657720617574686f7269747920736574207573696e672074686520676976656e2066696e616c697a656420626c6f636b20617320626173652e5c204f6e6c792063616c6c61626c6520627920726f6f742e010c384e6577417574686f7269746965730434417574686f726974794c69737404d8204e657720617574686f726974792073657420686173206265656e206170706c6965642e205c5b617574686f726974795f7365745c5d1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e001c2c50617573654661696c656408090120417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a8202865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c656408150120417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a42028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e6704ec20417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e04c02043616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f660435012041206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f6604350120416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f7274041901204120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e0b20496d4f6e6c696e650120496d4f6e6c696e6510384865617274626561744166746572010038543a3a426c6f636b4e756d62657210000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002053053657373696f6e496e6465782441757468496e6465781c5665633c75383e05040008f020466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e6465786020746f8020606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102053053657373696f6e496e6465783856616c696461746f7249643c543e0c75333205100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e6174757265242c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f284b202b20452960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e2920616e642045206973dc2020206c656e677468206f6620606865617274626561742e6e6574776f726b5f73746174652e65787465726e616c5f61646472657373608c2020202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60b02020202d20604f284529603a206465636f64696e672f656e636f64696e67206f66206c656e677468206045603d01202d20446252656164733a2070616c6c65745f73657373696f6e206056616c696461746f7273602c2070616c6c65745f73657373696f6e206043757272656e74496e646578602c20604b657973602c5c202020605265636569766564486561727462656174736084202d2044625772697465733a206052656365697665644865617274626561747360302023203c2f7765696768743e010c444865617274626561745265636569766564042c417574686f7269747949640405012041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f72697479496460205c5b617574686f726974795f69645c5d1c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e043d012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265205c5b6f66666c696e655c5d2e0440556e7369676e65645072696f726974794c5472616e73616374696f6e5072696f7269747920ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e0828496e76616c69644b65790464204e6f6e206578697374656e74207075626c6963206b65792e4c4475706c6963617465644865617274626561740458204475706c696361746564206865617274626561742e0c48417574686f72697479446973636f7665727900000000000d2444656d6f6372616379012444656d6f6372616379383c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e244465706f7369744f660001052450726f70496e64657884285665633c543a3a4163636f756e7449643e2c2042616c616e63654f663c543e290004000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e24507265696d616765730001061c543a3a48617368e8507265696d6167655374617475733c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b656401003c5265666572656e64756d496e646578100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001053c5265666572656e64756d496e646578d45265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173682c2042616c616e63654f663c543e3e0004000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f6601010530543a3a4163636f756e744964c8566f74696e673c42616c616e63654f663c543e2c20543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e144c6f636b7300010530543a3a4163636f756e74496438543a3a426c6f636b4e756d626572000400105d01204163636f756e747320666f7220776869636820746865726520617265206c6f636b7320696e20616374696f6e207768696368206d61792062652072656d6f76656420617420736f6d6520706f696e7420696e207468655101206675747572652e205468652076616c75652069732074686520626c6f636b206e756d62657220617420776869636820746865206c6f636b206578706972657320616e64206d61792062652072656d6f7665642e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001061c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101061c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e3853746f7261676556657273696f6e00002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e0098204e6577206e6574776f726b732073746172742077697468206c6173742076657273696f6e2e01641c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e2ca02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e00190120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573748420686176652066756e647320746f20636f76657220746865206465706f7369742e00d8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e1901202d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e004820456d697473206050726f706f736564602e003c205765696768743a20604f28702960187365636f6e64082070726f706f73616c48436f6d706163743c50726f70496e6465783e4c7365636f6e64735f75707065725f626f756e6430436f6d706163743c7533323e28b8205369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e6465721501206d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00cc202d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e4501202d20607365636f6e64735f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e207468652063757272656e74206e756d626572206f66207365636f6e6473206f6e2074686973290120202070726f706f73616c2e2045787472696e736963206973207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e002101205765696768743a20604f28532960207768657265205320697320746865206e756d626572206f66207365636f6e647320612070726f706f73616c20616c7265616479206861732e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f7465644163636f756e74566f74653c42616c616e63654f663c543e3e24350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00e0202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e88202d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e003101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722068617320766f746564206f6e2e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578205101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e00fc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d4202d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e0040205765696768743a20604f283129602e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368243101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e00ec20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e001901205765696768743a20604f2856296020776974682056206e756d626572206f66207665746f65727320696e2074686520626c61636b6c697374206f662070726f706f73616c2ebc2020204465636f64696e6720766563206f66206c656e67746820562e2043686172676564206173206d6178696d756d6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a486173682c5901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e00f020546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a486173682c4901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e00ec20546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d8202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e003c205765696768743a20604f2831296028666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d6265723c5101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d420546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f982020206046617374547261636b566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e004420456d697473206053746172746564602e003c205765696768743a20604f28312960347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736824bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00dc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e003101202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e004020456d69747320605665746f6564602e000101205765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e1c542052656d6f76652061207265666572656e64756d2e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d8202d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e00482023205765696768743a20604f283129602e3463616e63656c5f717565756564041477686963683c5265666572656e64756d496e6465781ca02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00c8202d20607768696368603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004d01205765696768743a20604f284429602077686572652060446020697320746865206974656d7320696e207468652064697370617463682071756575652e205765696768746564206173206044203d203130602e2064656c65676174650c08746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e1c62616c616e63653042616c616e63654f663c543e503d012044656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e005901205468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865cc2074696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e00610120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a782020202d2062652064656c65676174696e6720616c72656164793b206f725d012020202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c6964617465649820202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e004901202d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5901202d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e2074686545012020206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e6501202d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b82020206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e004c20456d697473206044656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c65676174650030d020556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e00610120546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64e0206f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265582063757272656e746c792064656c65676174696e672e005420456d6974732060556e64656c656761746564602e004101205765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173cc202020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c7300147420436c6561727320616c6c207075626c69632070726f706f73616c732e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e0040205765696768743a20604f283129602e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e2861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e646e6f74655f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e040d012053616d6520617320606e6f74655f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e586e6f74655f696d6d696e656e745f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e3045012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265410120696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e205768656e20746869732063616c6c206973207375636365737366756c2c20692e652e39012074686520707265696d61676520686173206e6f74206265656e2075706c6f61646564206265666f726520616e64206d61746368657320736f6d6520696d6d696e656e742070726f706f73616c2c40206e6f2066656520697320706169642e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c8202d2060656e636f6465645f70726f706f73616c603a2054686520707265696d616765206f6620612070726f706f73616c2e005c20456d6974732060507265696d6167654e6f746564602e005101205765696768743a20604f28452960207769746820452073697a65206f662060656e636f6465645f70726f706f73616c60202870726f7465637465642062792061207265717569726564206465706f736974292e886e6f74655f696d6d696e656e745f707265696d6167655f6f7065726174696f6e616c0440656e636f6465645f70726f706f73616c1c5665633c75383e0431012053616d6520617320606e6f74655f696d6d696e656e745f707265696d6167656020627574206f726967696e20697320604f7065726174696f6e616c507265696d6167654f726967696e602e34726561705f707265696d616765083470726f706f73616c5f686173681c543a3a486173686070726f706f73616c5f6c656e5f75707065725f626f756e6430436f6d706163743c7533323e3cf42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f6620612070726f706f73616c2e6101202d206070726f706f73616c5f6c656e6774685f75707065725f626f756e64603a20616e20757070657220626f756e64206f6e206c656e677468206f66207468652070726f706f73616c2e2045787472696e736963206973cc2020207765696768746564206163636f7264696e6720746f20746869732076616c75652077697468206e6f20726566756e642e00510120546869732077696c6c206f6e6c7920776f726b2061667465722060566f74696e67506572696f646020626c6f636b732066726f6d207468652074696d6520746861742074686520707265696d616765207761735d01206e6f7465642c2069662069742773207468652073616d65206163636f756e7420646f696e672069742e2049662069742773206120646966666572656e74206163636f756e742c207468656e206974276c6c206f6e6c79b020776f726b20616e206164646974696f6e616c2060456e6163746d656e74506572696f6460206c617465722e006020456d6974732060507265696d616765526561706564602e00b8205765696768743a20604f284429602077686572652044206973206c656e677468206f662070726f706f73616c2e18756e6c6f636b041874617267657430543a3a4163636f756e7449641ca420556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00bc202d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00c0205765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f74650414696e6465783c5265666572656e64756d496e6465786c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e00102049663a8c202d20746865207265666572656e64756d207761732063616e63656c6c65642c206f7280202d20746865207265666572656e64756d206973206f6e676f696e672c206f7294202d20746865207265666572656e64756d2068617320656e6465642073756368207468617401012020202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d82020202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f72882020202d20746865206163636f756e74206d61646520612073706c697420766f74656101202e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655c2066756e6473206265696e6720617661696c61626c652e00ac2049662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643af0202d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64e0202d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64c0202d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f7665725d01202e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c76655d01202a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de8206f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004d0120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f74658c207265676973746572656420666f72207265666572656e64756d2060696e646578602e00f8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465081874617267657430543a3a4163636f756e74496414696e6465783c5265666572656e64756d496e6465783c802052656d6f7665206120766f746520666f722061207265666572656e64756d2e0051012049662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f3101206072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c590120656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f729c20626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00cc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e005101202d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f72582020207265666572656e64756d2060696e646578602ef8202d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e005901205765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2edc2020205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e38656e6163745f70726f706f73616c083470726f706f73616c5f686173681c543a3a4861736814696e6465783c5265666572656e64756d496e64657804510120456e61637420612070726f706f73616c2066726f6d2061207265666572656e64756d2e20466f72206e6f77207765206a757374206d616b65207468652077656967687420626520746865206d6178696d756d2e24626c61636b6c697374083470726f706f73616c5f686173681c543a3a486173683c6d617962655f7265665f696e6465785c4f7074696f6e3c5265666572656e64756d496e6465783e3c4901205065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e67402070726f706f73656420616761696e2e0055012049662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e6755012072656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c6c207468656e2069742077696c6c2062652063616e63656c6c65642e00f020546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00fc202d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e4901202d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652c2063616e63656c6c65642e004501205765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d6520697420686173206154202020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c042870726f705f696e64657848436f6d706163743c50726f70496e6465783e1c4c2052656d6f766520612070726f706f73616c2e00050120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d4202d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e8205765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e28296001442050726f706f736564082450726f70496e6465781c42616c616e63650431012041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e205c5b70726f706f73616c5f696e6465782c206465706f7369745c5d185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e0849012041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e205c5b70726f706f73616c5f696e6465782c206465706f7369742c34206465706f7369746f72735c5d3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404c42041207265666572656e64756d2068617320626567756e2e205c5b7265665f696e6465782c207468726573686f6c645c5d18506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d244e6f74506173736564043c5265666572656e64756d496e64657804e820412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e205c5b7265665f696e6465785c5d2443616e63656c6c6564043c5265666572656e64756d496e64657804bc2041207265666572656e64756d20686173206265656e2063616e63656c6c65642e205c5b7265665f696e6465785c5d204578656375746564083c5265666572656e64756d496e646578384469737061746368526573756c7404cc20412070726f706f73616c20686173206265656e20656e61637465642e205c5b7265665f696e6465782c20726573756c745c5d2444656c65676174656408244163636f756e744964244163636f756e74496404210120416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c65676174656404244163636f756e74496404f820416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d62657204110120416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e205c5b77686f2c2070726f706f73616c5f686173682c20756e74696c5c5d34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504610120412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e205c5b70726f706f73616c5f686173682c2077686f2c206465706f7369745c5d30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636508150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e94205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369745c5d3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578080d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e74205c5b70726f706f73616c5f686173682c207265665f696e6465785c5d38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964082d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c656374656420627920746865207265617065722eb4205c5b70726f706f73616c5f686173682c2070726f76696465722c206465706f7369742c207265617065725c5d2c426c61636b6c697374656404104861736804d820412070726f706f73616c205c5b686173685c5d20686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e2c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d626572100027060014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d626572100027060004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d626572100027060004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f6438543a3a426c6f636b4e756d6265721000270600109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f7369743042616c616e63654f663c543e400010a5d4e8000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f77656410626f6f6c04010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6438543a3a426c6f636b4e756d626572100807000004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210c089010004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e4000e1f5050000000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e204d6178566f7465730c753332106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e702056616c75654c6f7704382056616c756520746f6f206c6f773c50726f706f73616c4d697373696e6704602050726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c656404982043616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c04582050726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c6973746564046c2050726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f7269747904ac204e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c696448617368043420496e76616c69642068617368284e6f50726f706f73616c0454204e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564049c204964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365444475706c6963617465507265696d616765045c20507265696d61676520616c7265616479206e6f7465642c4e6f74496d6d696e656e740434204e6f7420696d6d696e656e7420546f6f4561726c79042820546f6f206561726c7920496d6d696e656e74042420496d6d696e656e743c507265696d6167654d697373696e67044c20507265696d616765206e6f7420666f756e64445265666572656e64756d496e76616c6964048820566f746520676976656e20666f7220696e76616c6964207265666572656e64756d3c507265696d616765496e76616c6964044420496e76616c696420707265696d6167652c4e6f6e6557616974696e670454204e6f2070726f706f73616c732077616974696e67204e6f74566f74657204c82054686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e04cc20546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67048c20546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e647304010120546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e6704a420546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f746573457869737408590120546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696cec207468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f77656404dc2054686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e736504982044656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e64045420496e76616c696420757070657220626f756e642e3c4d6178566f746573526561636865640484204d6178696d756d206e756d626572206f6620766f74657320726561636865642e40546f6f4d616e7950726f706f73616c730494204d6178696d756d206e756d626572206f662070726f706f73616c7320726561636865642e0e1c436f756e63696c011c436f756e63696c182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746484205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e5d01202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f725420202077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a55012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468653020202020206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e2cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768745901202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67342020206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c3cf42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c550120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c20636861726765206114206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e80510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e006501202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f736564282070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669613901206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295d0120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465633020202020604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a48617368385d0120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741c2073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e0f48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c73010090426f756e6465645665633c543a3a486173682c20543a3a4d617850726f706f73616c733e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001061c543a3a48617368683c5420617320436f6e6669673c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001061c543a3a486173688c566f7465733c543a3a4163636f756e7449642c20543a3a426c6f636b4e756d6265723e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000030543a3a4163636f756e744964040004650120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f6620616273656e746174696f6e732e01182c7365745f6d656d626572730c2c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e147072696d65504f7074696f6e3c543a3a4163636f756e7449643e246f6c645f636f756e742c4d656d626572436f756e746484205365742074686520636f6c6c6563746976652773206d656d626572736869702e004901202d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee4202d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e5d01202d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f725420202077656967687420657374696d6174696f6e2e005820526571756972657320726f6f74206f726967696e2e005501204e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c206275742501202020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002c2023203c7765696768743e282023232057656967687454202d20604f284d50202b204e29602077686572653ae42020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e42020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299c2020202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e6465642918202d2044423a55012020202d20312073746f72616765206d75746174696f6e2028636f64656320604f284d296020726561642c20604f284e29602077726974652920666f722072656164696e6720616e642077726974696e67207468653020202020206d656d62657273f02020202d20312073746f7261676520726561642028636f64656320604f285029602920666f722072656164696e67207468652070726f706f73616c7349012020202d206050602073746f72616765206d75746174696f6e732028636f64656320604f284d29602920666f72207570646174696e672074686520766f74657320666f7220656163682070726f706f73616c61012020202d20312073746f726167652077726974652028636f64656320604f283129602920666f722064656c6574696e6720746865206f6c6420607072696d656020616e642073657474696e6720746865206e6577206f6e65302023203c2f7765696768743e1c65786563757465082070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e2cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e002c2023203c7765696768743e28202323205765696768745901202d20604f284d202b2050296020776865726520604d60206d656d626572732d636f756e742028636f64652d626f756e6465642920616e642060506020636f6d706c6578697479206f66206469737061746368696e67342020206070726f706f73616c60d8202d2044423a203120726561642028636f64656320604f284d296029202b20444220616363657373206f66206070726f706f73616c6028202d2031206576656e74302023203c2f7765696768743e1c70726f706f73650c247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c7c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e306c656e6774685f626f756e6430436f6d706163743c7533323e6cfc204164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e0088205265717569726573207468652073656e64657220746f206265206d656d6265722e00450120607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c2032602958206f722070757420757020666f7220766f74696e672e002c2023203c7765696768743e2820232320576569676874b0202d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c82020202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af820202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029010120202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602918202d2044423ab82020202d20312073746f726167652072656164206069735f6d656d626572602028636f64656320604f284d296029f42020202d20312073746f726167652072656164206050726f706f73616c4f663a3a636f6e7461696e735f6b6579602028636f64656320604f2831296029ac2020202d20444220616363657373657320696e666c75656e63656420627920607468726573686f6c64603a0d0120202020202d204549544845522073746f7261676520616363657373657320646f6e65206279206070726f706f73616c602028607468726573686f6c64203c20326029bc20202020202d204f522070726f706f73616c20696e73657274696f6e2028607468726573686f6c64203c3d20326029dc202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c73602028636f64656320604f285032296029e8202020202020202d20312073746f72616765206d75746174696f6e206050726f706f73616c436f756e74602028636f64656320604f2831296029d0202020202020202d20312073746f72616765207772697465206050726f706f73616c4f66602028636f64656320604f2842296029c0202020202020202d20312073746f726167652077726974652060566f74696e67602028636f64656320604f284d296029302020202d2031206576656e74302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c3cf42041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e0090205265717569726573207468652073656e64657220746f2062652061206d656d6265722e004d01205472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c550120666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c20636861726765206114206665652e2c2023203c7765696768743e28202323205765696768740d01202d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e6465642918202d2044423ab02020202d20312073746f72616765207265616420604d656d62657273602028636f64656320604f284d296029bc2020202d20312073746f72616765206d75746174696f6e2060566f74696e67602028636f64656320604f284d29602928202d2031206576656e74302023203c2f7765696768743e14636c6f7365103470726f706f73616c5f686173681c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e5470726f706f73616c5f7765696768745f626f756e643c436f6d706163743c5765696768743e306c656e6774685f626f756e6430436f6d706163743c7533323e80510120436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e005901204d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e004d012049662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973c02068617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e004d012049662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e73290120756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e0065012049662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c6101206265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e006501202b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f736564282070726f706f73616c2e6501202b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b6564207669613901206073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e002c2023203c7765696768743e282023232057656967687478202d20604f2842202b204d202b205031202b20503229602077686572653ae42020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429e02020202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429cc2020202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea82020202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e6465642918202d2044423a110120202d20322073746f726167652072656164732028604d656d62657273603a20636f64656320604f284d29602c20605072696d65603a20636f64656320604f28312960295d0120202d2033206d75746174696f6e73202860566f74696e67603a20636f64656320604f284d29602c206050726f706f73616c4f66603a20636f64656320604f284229602c206050726f706f73616c73603a20636f6465633020202020604f285032296029e020202d20616e79206d75746174696f6e7320646f6e65207768696c6520657865637574696e67206070726f706f73616c602028605031602944202d20757020746f2033206576656e7473302023203c2f7765696768743e4c646973617070726f76655f70726f706f73616c043470726f706f73616c5f686173681c543a3a48617368385d0120446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741c2073746174652e008c204d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e003020506172616d65746572733a2101202a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e002c2023203c7765696768743ee020436f6d706c65786974793a204f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c732c204442205765696768743a4c202a2052656164733a2050726f706f73616c73a0202a205772697465733a20566f74696e672c2050726f706f73616c732c2050726f706f73616c4f66302023203c2f7765696768743e011c2050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e740c4d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292ed8205c5b6163636f756e742c2070726f706f73616c5f696e6465782c2070726f706f73616c5f686173682c207468726573686f6c645c5d14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740c09012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292eac205c5b6163636f756e742c2070726f706f73616c5f686173682c20766f7465642c207965732c206e6f5c5d20417070726f76656404104861736808c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d2c446973617070726f76656404104861736808d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e48205c5b70726f706f73616c5f686173685c5d204578656375746564081048617368384469737061746368526573756c740825012041206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d384d656d6265724578656375746564081048617368384469737061746368526573756c74084d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e68205c5b70726f706f73616c5f686173682c20726573756c745c5d18436c6f7365640c10486173682c4d656d626572436f756e742c4d656d626572436f756e7408590120412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e6c205c5b70726f706f73616c5f686173682c207965732c206e6f5c5d0028244e6f744d656d6265720460204163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0480204475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e6704502050726f706f73616c206d7573742065786973742857726f6e67496e6465780444204d69736d61746368656420696e646578344475706c6963617465566f7465045c204475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a65640484204d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c790405012054686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c730401012054686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c57656967687404d42054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e67746804d42054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e104050687261676d656e456c656374696f6e014050687261676d656e456c656374696f6e141c4d656d626572730100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100ac5665633c53656174486f6c6465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e6701010530543a3a4163636f756e74496484566f7465723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e00840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5d0120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe4207365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e0061012055706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e7420697351012072657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792e59012020202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e641501202020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e005101204966206076616c756560206973206d6f7265207468616e206077686f60277320746f74616c2062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e670059012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865ac206c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e002c2023203c7765696768743e550120576520617373756d6520746865206d6178696d756d2077656967687420616d6f6e6720616c6c20332063617365733a20766f74655f657175616c2c20766f74655f6d6f726520616e6420766f74655f6c6573732e302023203c2f7765696768743e3072656d6f76655f766f7465720014702052656d6f766520606f726967696e60206173206120766f7465722e00bc20546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00010120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e646964616379043c63616e6469646174655f636f756e7430436f6d706163743c7533323e3c1501205375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e00610120416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702cd0206f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c420546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e003020232323205761726e696e67006101204576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5d0120746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e002c2023203c7765696768743e0d0120546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379042872656e6f756e63696e672852656e6f756e63696e674851012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a004d01202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e6501202d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e64902020206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e5901202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795d0120202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c20746865382020206e65787420726f756e642e00490120546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732e002c2023203c7765696768743ee4205468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e3472656d6f76655f6d656d626572080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653c6861735f7265706c6163656d656e7410626f6f6c385d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c61636573207468650101206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20656c656374696f6e20697320737461727465642e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e550120496620776520686176652061207265706c6163656d656e742c20776520757365206120736d616c6c207765696768742e20456c73652c2073696e63652074686973206973206120726f6f742063616c6c20616e64d42077696c6c20676f20696e746f2070687261676d656e2c20776520617373756d652066756c6c20626c6f636b20666f72206e6f772e302023203c2f7765696768743e50636c65616e5f646566756e63745f766f74657273082c5f6e756d5f766f746572730c753332305f6e756d5f646566756e63740c75333228490120436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865b0206465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e000501205468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00bc20546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e002c2023203c7765696768743e61012054686520746f74616c206e756d626572206f6620766f7465727320616e642074686f736520746861742061726520646566756e6374206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011c1c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e1459012041206e6577207465726d2077697468205c5b6e65775f6d656d626572735c5d2e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e59012074686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e6564490120666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e64590120736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f3020626567696e20776974682e24456d7074795465726d00083501204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dcc20604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f720004e820496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b656404244163636f756e7449640855012041205c5b6d656d6265725c5d20686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f72342060456d7074795465726d602e2452656e6f756e63656404244163636f756e744964049c20536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408244163636f756e7449641c42616c616e6365105d012041205c5b63616e6469646174655c5d2077617320736c6173686564206279205c5b616d6f756e745c5d2064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722c2072756e6e65722d75702e00e8204e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408244163636f756e7449641c42616c616e63650459012041205c5b7365617420686f6c6465725c5d2077617320736c6173686564206279205c5b616d6f756e745c5d206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e1c2050616c6c65744964384c6f636b4964656e74696669657220706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e643042616c616e63654f663c543e400010a5d4e8000000000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e64426173653042616c616e63654f663c543e40007013b72e000000000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f723042616c616e63654f663c543e4000d012130000000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d626572730c753332100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355700c75333210140000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e38543a3a426c6f636b4e756d62657210c08901000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e4430556e61626c65546f566f746504c42043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f7465730498204d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f74657304882043616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f7465734578636565646564049c2043616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e636504c82043616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e64047c20566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f7465720444204d757374206265206120766f7465722e285265706f727453656c6604502043616e6e6f74207265706f72742073656c662e4c4475706c69636174656443616e6469646174650484204475706c6963617465642063616e646964617465207375626d697373696f6e2e304d656d6265725375626d6974048c204d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974048c2052756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e647304982043616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d6265720438204e6f742061206d656d6265722e48496e76616c69645769746e6573734461746104e4205468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e7404d0205468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67040101205468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e740401012050726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e114c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000030543a3a4163636f756e744964040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e011c286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00a0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e74496414c02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a4204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e001101205072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b6579040c6e657730543a3a4163636f756e74496414d82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e002101205072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d65040c77686f30543a3a4163636f756e7449640cc02053657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d65000c982052656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a8204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904bc73705f7374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e000834416c72656164794d656d626572044820416c72656164792061206d656d6265722e244e6f744d656d6265720438204e6f742061206d656d6265722e12205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001053450726f706f73616c496e6465789c50726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c542c20493e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100a8426f756e6465645665633c50726f706f73616c496e6465782c20543a3a4d6178417070726f76616c733e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756560436f6d706163743c42616c616e63654f663c542c20493e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129b4202d20446252656164733a206050726f706f73616c436f756e74602c20606f726967696e206163636f756e7460ec202d2044625772697465733a206050726f706f73616c436f756e74602c206050726f706f73616c73602c20606f726967696e206163636f756e7460302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e24fc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e002c2023203c7765696768743e4c202d20436f6d706c65786974793a204f283129d0202d20446252656164733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460d4202d2044625772697465733a206050726f706f73616c73602c206072656a65637465642070726f706f736572206163636f756e7460302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e285d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e50202d20436f6d706c65786974793a204f2831292e90202d20446252656164733a206050726f706f73616c73602c2060417070726f76616c73605c202d20446257726974653a2060417070726f76616c7360302023203c2f7765696768743e011c2050726f706f736564043450726f706f73616c496e6465780484204e65772070726f706f73616c2e205c5b70726f706f73616c5f696e6465785c5d205370656e64696e67041c42616c616e6365043d01205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e205c5b6275646765745f72656d61696e696e675c5d1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964041d0120536f6d652066756e64732068617665206265656e20616c6c6f63617465642e205c5b70726f706f73616c5f696e6465782c2061776172642c2062656e65666963696172795c5d2052656a6563746564083450726f706f73616c496e6465781c42616c616e636504250120412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b70726f706f73616c5f696e6465782c20736c61736865645c5d144275726e74041c42616c616e636504b020536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e205c5b6275726e5c5d20526f6c6c6f766572041c42616c616e6365083101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e54205c5b6275646765745f72656d61696e696e675c5d1c4465706f736974041c42616c616e636504b020536f6d652066756e64732068617665206265656e206465706f73697465642e205c5b6465706f7369745c5d183050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3c42616c616e63654f663c542c20493e400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c10102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449642050616c6c657449642070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c730c753332106400000004150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e0c70496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e40546f6f4d616e79417070726f76616c73048420546f6f206d616e7920617070726f76616c7320696e207468652071756575652e1318436c61696d730118436c61696d731418436c61696d730001063c457468657265756d416464726573733042616c616e63654f663c543e0004000014546f74616c01003042616c616e63654f663c543e4000000000000000000000000000000000001c56657374696e670001063c457468657265756d41646472657373b02842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722900040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001063c457468657265756d416464726573733453746174656d656e744b696e6400040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d7300010630543a3a4163636f756e7449643c457468657265756d41646472657373000400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e011414636c61696d08106465737430543a3a4163636f756e74496448657468657265756d5f7369676e61747572653845636473615369676e6174757265608c204d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e005420556e7369676e65642056616c69646174696f6e3a090120412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865738020746865206578706563746564207369676e6564206d657373616765206f663a006c203e20457468657265756d205369676e6564204d6573736167653a98203e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a820616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e003020506172616d65746572733adc202d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e1101202d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765a0202020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee42057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e286d696e745f636c61696d100c77686f3c457468657265756d416464726573731476616c75653042616c616e63654f663c543e4076657374696e675f7363686564756c65d04f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d626572293e2473746174656d656e74544f7074696f6e3c53746174656d656e744b696e643e3c88204d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e003020506172616d65746572733af4202d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ed0202d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e0d01202d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e210120576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e30636c61696d5f6174746573740c106465737430543a3a4163636f756e74496448657468657265756d5f7369676e61747572653845636473615369676e61747572652473746174656d656e741c5665633c75383e68e8204d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e005420556e7369676e65642056616c69646174696f6e3a2d0120412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865738020746865206578706563746564207369676e6564206d657373616765206f663a006c203e20457468657265756d205369676e6564204d6573736167653ac4203e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004d0120616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c4206578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e003020506172616d65746572733adc202d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e1101202d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765a0202020206d61746368696e672074686520666f726d6174206465736372696265642061626f76652e6901202d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e01012057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e18617474657374042473746174656d656e741c5665633c75383e44f82041747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e006901205741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206120605369676e6564457874656e73696f6e602e005420556e7369676e65642056616c69646174696f6e3a2d0120412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f820616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e003020506172616d65746572733a6901202d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e20746865207369676e61747572652e0024203c7765696768743e01012054686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef42057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e005c20546f74616c20436f6d706c65786974793a204f28312928203c2f7765696768743e286d6f76655f636c61696d0c0c6f6c643c457468657265756d416464726573730c6e65773c457468657265756d41646472657373386d617962655f707265636c61696d504f7074696f6e3c543a3a4163636f756e7449643e0001041c436c61696d65640c244163636f756e7449643c457468657265756d416464726573731c42616c616e636504f420536f6d656f6e6520636c61696d656420736f6d6520444f54732e20605b77686f2c20657468657265756d5f616464726573732c20616d6f756e745d600418507265666978342620277374617469635b75385d888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a001860496e76616c6964457468657265756d5369676e6174757265047020496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d047c20457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d04b4204163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f770865012054686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061206c6f6769631c206572726f722e40496e76616c696453746174656d656e7404942041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e636545786973747304a820546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e181c56657374696e67011c56657374696e67081c56657374696e6700010230543a3a4163636f756e7449644101426f756e6465645665633c56657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e2c0a4d617856657374696e675363686564756c65734765743c543e3e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01002052656c656173657304000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e011410766573740034bc20556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e00610120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20322052656164732c203220577269746573fc20202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d010120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c205b53656e646572204163636f756e745d302023203c2f7765696768743e28766573745f6f7468657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653cbc20556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501202d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c68206c6f636b656420756e64657220746869732070616c6c65742e00d420456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c203320577269746573f420202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74f820202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e74302023203c2f7765696768743e3c7665737465645f7472616e7366657208187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e446820437265617465206120766573746564207472616e736665722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00d0202d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e000101204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20332052656164732c2033205772697465733d0120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d410120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c205b53656e646572204163636f756e745d302023203c2f7765696768743e54666f7263655f7665737465645f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365207363686564756c65a456657374696e67496e666f3c42616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e486420466f726365206120766573746564207472616e736665722e00c820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00ec202d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e1501202d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef4202d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e006020456d697473206056657374696e6743726561746564602e000101204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e002c2023203c7765696768743e28202d20604f283129602e78202d2044625765696768743a20342052656164732c203420577269746573350120202020202d2052656164733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74390120202020202d205772697465733a2056657374696e672053746f726167652c2042616c616e636573204c6f636b732c20546172676574204163636f756e742c20536f75726365204163636f756e74302023203c2f7765696768743e3c6d657267655f7363686564756c6573083c7363686564756c65315f696e6465780c7533323c7363686564756c65325f696e6465780c753332546101204d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f766572590120746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c72656164792073746172746564207468655d012063757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c6561012069732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c3020756e6d6f6469666965642e00fc204e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e4501204e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e6501204e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c20626520637265617465646820616e6420626f74682077696c6c2062652072656d6f7665642e0070204d6572676564207363686564756c6520617474726962757465733a3901202d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c4c20202063757272656e745f626c6f636b29602e2501202d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e5d01202d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00ec202d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652ef0202d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e01083856657374696e675570646174656408244163636f756e7449641c42616c616e63650c55012054686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e2901205468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e58205c5b6163636f756e742c20756e7665737465645c5d4056657374696e67436f6d706c6574656404244163636f756e74496404a020416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e08444d696e5665737465645472616e736665723042616c616e63654f663c543e4000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c65730c753332101c0000000014284e6f7456657374696e67048820546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c657308290120546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e64207468757355012063616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f7704090120416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e647304d420416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d73041101204661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e191c5574696c69747900010c146261746368041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e4c802053656e642061206261746368206f662064697370617463682063616c6c732e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e006101202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f743d012020206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e00590120546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e3501206576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e20746865590120604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d616465510120616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c657465646050206576656e74206973206465706f73697465642e3461735f646572697661746976650814696e6465780c7531361063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e34e02053656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e0059012046696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368c020757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e004901204e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e6501206265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e745501207468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31608020696e20746865204d756c74697369672070616c6c657420696e73746561642e00f8204e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c041463616c6c73605665633c3c5420617320436f6e6669673e3a3a43616c6c3e38f02053656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e2501205468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e007c204d61792062652063616c6c65642066726f6d20616e79206f726967696e2e006101202d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f743d012020206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e006101204966206f726967696e20697320726f6f74207468656e2063616c6c2061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e20285468697320696e636c75646573cc20627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e002c2023203c7765696768743e0501202d20436f6d706c65786974793a204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e302023203c2f7765696768743e010c404261746368496e746572727570746564080c7533323444697370617463684572726f72085901204261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c206173902077656c6c20617320746865206572726f722e205c5b696e6465782c206572726f725c5d384261746368436f6d706c657465640004cc204261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e344974656d436f6d706c657465640004210120412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e044c626174636865645f63616c6c735f6c696d69740c753332100cc3000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0430546f6f4d616e7943616c6c73046020546f6f206d616e792063616c6c7320626174636865642e1a204964656e7469747901204964656e7469747910284964656e746974794f6600010530543a3a4163636f756e7449641101526567697374726174696f6e3c42616c616e63654f663c543e2c20543a3a4d6178526567697374726172732c20543a3a4d61784164646974696f6e616c4669656c64733e0004000c210120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f6600010230543a3a4163636f756e7449645028543a3a4163636f756e7449642c204461746129000400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f6601010530543a3a4163636f756e744964ec2842616c616e63654f663c543e2c20426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d61785375624163636f756e74733e290044000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e285265676973747261727301004101426f756e6465645665633c4f7074696f6e3c526567697374726172496e666f3c42616c616e63654f663c543e2c20543a3a4163636f756e7449643e3e2c20540a3a3a4d6178526567697374726172733e0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e013c346164645f726567697374726172041c6163636f756e7430543a3a4163636f756e744964347c2041646420612072656769737472617220746f207468652073797374656d2e00010120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00ac202d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e009820456d6974732060526567697374726172416464656460206966207375636365737366756c2e002c2023203c7765696768743e2901202d20604f2852296020776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e64656420616e6420636f64652d626f756e646564292e9c202d204f6e652073746f72616765206d75746174696f6e2028636f64656320604f28522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e307365745f6964656e746974790410696e666fa4426f783c4964656e74697479496e666f3c543a3a4d61784164646974696f6e616c4669656c64733e3e4c2d012053657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e00590120496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e745420666f7220746865206e6577206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0090202d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e008c20456d69747320604964656e7469747953657460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2858202b205827202b2052296021012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e64656429e42020202d20776865726520605260206a756467656d656e74732d636f756e7420287265676973747261722d636f756e742d626f756e6465642984202d204f6e652062616c616e63652072657365727665206f7065726174696f6e2e2501202d204f6e652073746f72616765206d75746174696f6e2028636f6465632d7265616420604f285827202b205229602c20636f6465632d777269746520604f2858202b20522960292e34202d204f6e65206576656e742e302023203c2f7765696768743e207365745f73756273041073756273645665633c28543a3a4163636f756e7449642c2044617461293e54902053657420746865207375622d6163636f756e7473206f66207468652073656e6465722e005901205061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e6564310120616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e00b4202d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e002c2023203c7765696768743e34202d20604f2850202b20532960e82020202d20776865726520605060206f6c642d737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e88202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e732e18202d2044423ae02020202d206050202b2053602073746f72616765206d75746174696f6e732028636f64656320636f6d706c657869747920604f2831296029c02020202d204f6e652073746f7261676520726561642028636f64656320636f6d706c657869747920604f28502960292ec42020202d204f6e652073746f726167652077726974652028636f64656320636f6d706c657869747920604f28532960292ed42020202d204f6e652073746f726167652d6578697374732028604964656e746974794f663a3a636f6e7461696e735f6b657960292e302023203c2f7765696768743e38636c6561725f6964656e7469747900483d0120436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00f0205061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656428206964656e746974792e009c20456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e002c2023203c7765696768743e44202d20604f2852202b2053202b20582960d02020202d20776865726520605260207265676973747261722d636f756e742028676f7665726e616e63652d626f756e646564292ed82020202d2077686572652060536020737562732d636f756e742028686172642d20616e64206465706f7369742d626f756e646564292e25012020202d20776865726520605860206164646974696f6e616c2d6669656c642d636f756e7420286465706f7369742d626f756e64656420616e6420636f64652d626f756e646564292e8c202d204f6e652062616c616e63652d756e72657365727665206f7065726174696f6e2ecc202d206032602073746f7261676520726561647320616e64206053202b2032602073746f726167652064656c6574696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e44726571756573745f6a756467656d656e7408247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e1c6d61785f66656554436f6d706163743c42616c616e63654f663c543e3e5c9820526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e005901205061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e741c20676976656e2e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e002101202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e5901202d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a0034206060606e6f636f6d70696c65bc2053656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e666565102060606000a820456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2858202b205229602e34202d204f6e65206576656e742e302023203c2f7765696768743e3863616e63656c5f7265717565737404247265675f696e64657838526567697374726172496e646578446c2043616e63656c20612070726576696f757320726571756573742e00fc205061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e00390120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061542072656769737465726564206964656e746974792e004901202d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00b020456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e8c202d204f6e652073746f72616765206d75746174696f6e20604f2852202b205829602e30202d204f6e65206576656e74302023203c2f7765696768743e1c7365745f6665650814696e6465785c436f6d706163743c526567697374726172496e6465783e0c66656554436f6d706163743c42616c616e63654f663c543e3e341d0120536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e58202d2060666565603a20746865206e6577206665652e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e333135202b2052202a20302e33323920c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e387365745f6163636f756e745f69640814696e6465785c436f6d706163743c526567697374726172496e6465783e0c6e657730543a3a4163636f756e74496434c0204368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e74202d20606e6577603a20746865206e6577206163636f756e742049442e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee4202d2042656e63686d61726b3a20382e383233202b2052202a20302e333220c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e287365745f6669656c64730814696e6465785c436f6d706163743c526567697374726172496e6465783e186669656c6473384964656e746974794669656c647334ac2053657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a4206f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f8202d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e1101202d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e002c2023203c7765696768743e28202d20604f285229602e7c202d204f6e652073746f72616765206d75746174696f6e20604f285229602ee8202d2042656e63686d61726b3a20372e343634202b2052202a20302e33323520c2b57320286d696e207371756172657320616e616c7973697329302023203c2f7765696768743e4470726f766964655f6a756467656d656e740c247265675f696e6465785c436f6d706163743c526567697374726172496e6465783e187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365246a756467656d656e745c4a756467656d656e743c42616c616e63654f663c543e3e4cbc2050726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e00590120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b4206f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e002501202d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e5901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e4d01202d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e009820456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e002c2023203c7765696768743e38202d20604f2852202b205829602e88202d204f6e652062616c616e63652d7472616e73666572206f7065726174696f6e2e98202d20557020746f206f6e65206163636f756e742d6c6f6f6b7570206f7065726174696f6e2ebc202d2053746f726167653a2031207265616420604f285229602c2031206d757461746520604f2852202b205829602e34202d204f6e65206576656e742e302023203c2f7765696768743e346b696c6c5f6964656e7469747904187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263654c45012052656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e006501205061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c656420627949012060536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c656484206d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00fc20546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e005901202d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e74782020207769746820612072656769737465726564206964656e746974792e009820456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e002c2023203c7765696768743e48202d20604f2852202b2053202b205829602e84202d204f6e652062616c616e63652d72657365727665206f7065726174696f6e2e74202d206053202b2032602073746f72616765206d75746174696f6e732e34202d204f6e65206576656e742e302023203c2f7765696768743e1c6164645f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106461746110446174611cb0204164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656e616d655f737562080c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651064617461104461746110d020416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e2872656d6f76655f737562040c7375628c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651cc42052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c2062652072657061747269617465643c20746f207468652073656e6465722e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265645c20737562206964656e74697479206f662060737562602e20717569745f7375620028902052656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e006101205061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b820746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e00650120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564402073757065722d6964656e746974792e004901204e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d150120636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e01282c4964656e7469747953657404244163636f756e7449640411012041206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e205c5b77686f5c5d3c4964656e74697479436c656172656408244163636f756e7449641c42616c616e63650415012041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e205c5b77686f2c206465706f7369745c5d384964656e746974794b696c6c656408244163636f756e7449641c42616c616e6365040d012041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e205c5b77686f2c206465706f7369745c5d484a756467656d656e7452657175657374656408244163636f756e74496438526567697374726172496e6465780405012041206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e205c5b77686f2c207265676973747261725f696e6465785c5d504a756467656d656e74556e72657175657374656408244163636f756e74496438526567697374726172496e64657804f02041206a756467656d656e74207265717565737420776173207265747261637465642e205c5b77686f2c207265676973747261725f696e6465785c5d384a756467656d656e74476976656e08244163636f756e74496438526567697374726172496e6465780409012041206a756467656d656e742077617320676976656e2062792061207265676973747261722e205c5b7461726765742c207265676973747261725f696e6465785c5d3852656769737472617241646465640438526567697374726172496e64657804ac204120726567697374726172207761732061646465642e205c5b7265676973747261725f696e6465785c5d405375624964656e7469747941646465640c244163636f756e744964244163636f756e7449641c42616c616e63650455012041207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e7469747952656d6f7665640c244163636f756e744964244163636f756e7449641c42616c616e6365080d012041207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e5c205c5b7375622c206d61696e2c206465706f7369745c5d485375624964656e746974795265766f6b65640c244163636f756e744964244163636f756e7449641c42616c616e6365081d012041207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d207468652901206d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e205c5b7375622c206d61696e2c206465706f7369745c5d183042617369634465706f7369743042616c616e63654f663c543e40007db52a2f000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e74697479304669656c644465706f7369743042616c616e63654f663c543e4000cd5627000000000000000000000000042d012054686520616d6f756e742068656c64206f6e206465706f73697420706572206164646974696f6e616c206669656c6420666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f7369743042616c616e63654f663c543e4080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e74730c7533321064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e4c4d61784164646974696f6e616c4669656c64730c7533321064000000086501204d6178696d756d206e756d626572206f66206164646974696f6e616c206669656c64732074686174206d61792062652073746f72656420696e20616e2049442e204e656564656420746f20626f756e642074686520492f4fe020726571756972656420746f2061636365737320616e206964656e746974792c206275742063616e2062652070726574747920686967682e344d6178526567697374726172730c7533321014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e4048546f6f4d616e795375624163636f756e7473046020546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e640454204163636f756e742069736e277420666f756e642e204e6f744e616d65640454204163636f756e742069736e2774206e616d65642e28456d707479496e646578043420456d70747920696e6465782e284665654368616e676564044020466565206973206368616e6765642e284e6f4964656e74697479044c204e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e74044820537469636b79206a756467656d656e742e384a756467656d656e74476976656e0444204a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e74044c20496e76616c6964206a756467656d656e742e30496e76616c6964496e64657804582054686520696e64657820697320696e76616c69642e34496e76616c6964546172676574045c205468652074617267657420697320696e76616c69642e34546f6f4d616e794669656c6473047020546f6f206d616e79206164646974696f6e616c206669656c64732e44546f6f4d616e795265676973747261727304ec204d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d65640474204163636f756e7420494420697320616c7265616479206e616d65642e184e6f7453756204742053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564048c205375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e1c1450726f7879011450726f7879081c50726f7869657301010530543a3a4163636f756e744964a50128426f756e6465645665633c50726f7879446566696e6974696f6e3c543a3a4163636f756e7449642c20543a3a50726f7879547970652c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850726f786965733e2c2042616c616e63654f663c543e2c29004400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010530543a3a4163636f756e7449649d0128426f756e6465645665633c416e6e6f756e63656d656e743c543a3a4163636f756e7449642c2043616c6c486173684f663c543e2c20543a3a0a20426c6f636b4e756d6265723e2c20543a3a4d617850656e64696e673e2c2042616c616e63654f663c543e2c290044000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01281470726f78790c107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e3c51012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e246164645f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657234490120526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1501202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792e0101202d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3072656d6f76655f70726f78790c2064656c656761746530543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d6265722cac20556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a2901202d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e4501202d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e3872656d6f76655f70726f786965730028b820556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901205741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e747320637265617465642062792060616e6f6e796d6f7573602c20686f776576657220696620646f6e652c207468656e5d012074686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e24616e6f6e796d6f75730c2870726f78795f7479706530543a3a50726f7879547970651464656c617938543a3a426c6f636b4e756d62657214696e6465780c7531365c3d0120537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64010120696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e0070205265717569726573206120605369676e656460206f726967696e2e005501202d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468655101206e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f7c20616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e5501202d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d656101207472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a757374442077616e7420746f20757365206030602e5101202d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c7920626518207a65726f2e005501204661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659c2073616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e8204661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e9020544f444f3a204d69676874206265206f76657220636f756e74696e6720312072656164386b696c6c5f616e6f6e796d6f7573141c737061776e657230543a3a4163636f756e7449642870726f78795f7479706530543a3a50726f78795479706514696e6465780c753136186865696768745c436f6d706163743c543a3a426c6f636b4e756d6265723e246578745f696e64657830436f6d706163743c7533323e50b82052656d6f76657320612070726576696f75736c7920737061776e656420616e6f6e796d6f75732070726f78792e004d01205741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c2062653820696e61636365737369626c652e005d01205265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fac2060616e6f6e796d6f757360207769746820636f72726573706f6e64696e6720706172616d65746572732e005101202d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060616e6f6e796d6f75736020746f206372656174652074686973206163636f756e742e5101202d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e2050726f6261626c79206030602e0501202d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f2060616e6f6e796d6f7573602e4101202d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e4d01202d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f2060616e6f6e796d6f757360207761732070726f6365737365642e004d01204661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c79206372656174656420616e6f6e796d6f7573f4206163636f756e742077686f73652060616e6f6e796d6f7573602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e002c2023203c7765696768743e01012057656967687420697320612066756e6374696f6e206f6620746865206e756d626572206f662070726f7869657320746865207573657220686173202850292e302023203c2f7765696768743e20616e6e6f756e636508107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e540901205075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e0061012054686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d707465642901206966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e001501204e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000d0120546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c2061731d012060416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656d6f76655f616e6e6f756e63656d656e7408107265616c30543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40742052656d6f7665206120676976656e20616e6e6f756e63656d656e742e005d01204d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e3420746865206465706f7369742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e1901202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e4c72656a6563745f616e6e6f756e63656d656e74082064656c656761746530543a3a4163636f756e7449642463616c6c5f686173683443616c6c486173684f663c543e40b42052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e006501204d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c656761746573290120286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733af8202d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ec0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e3c70726f78795f616e6e6f756e636564102064656c656761746530543a3a4163636f756e744964107265616c30543a3a4163636f756e74496440666f7263655f70726f78795f74797065504f7074696f6e3c543a3a50726f7879547970653e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e4451012044697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f7567683420606164645f70726f7879602e00ac2052656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003020506172616d65746572733a1101202d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e6501202d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed4202d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e002c2023203c7765696768743e642057656967687420697320612066756e6374696f6e206f663a9c202d20413a20746865206e756d626572206f6620616e6e6f756e63656d656e7473206d6164652ea4202d20503a20746865206e756d626572206f662070726f78696573207468652075736572206861732e302023203c2f7765696768743e01103450726f7879457865637574656404384469737061746368526573756c7404ec20412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e205c5b726573756c745c5d2e40416e6f6e796d6f75734372656174656410244163636f756e744964244163636f756e7449642450726f7879547970650c7531360cec20416e6f6e796d6f7573206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e0d0120646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e205c5b616e6f6e796d6f75732c2077686f2c2070726f78795f747970652c5c20646973616d626967756174696f6e5f696e6465785c5d24416e6e6f756e6365640c244163636f756e744964244163636f756e744964104861736804510120416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e205c5b7265616c2c2070726f78792c2063616c6c5f686173685c5d2850726f7879416464656410244163636f756e744964244163636f756e7449642450726f7879547970652c426c6f636b4e756d62657204fc20412070726f7879207761732061646465642e205c5b64656c656761746f722c2064656c6567617465652c2070726f78795f747970652c2064656c61795c5d184050726f78794465706f736974426173653042616c616e63654f663c543e400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f723042616c616e63654f663c543e408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f786965730c753332102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e670c753332102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173653042616c616e63654f663c543e400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f723042616c616e63654f663c543e4000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e201c546f6f4d616e790425012054686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e6404782050726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f787904d02053656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c6504250120412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650470204163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e0419012043616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e63656404d420416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f787904682043616e6e6f74206164642073656c662061732070726f78792e1d204d756c746973696701204d756c746973696708244d756c74697369677300020530543a3a4163636f756e744964205b75383b2033325dd04d756c74697369673c543a3a426c6f636b4e756d6265722c2042616c616e63654f663c543e2c20543a3a4163636f756e7449643e02040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e1443616c6c73000106205b75383b2033325da0284f706171756543616c6c2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e290004000001105061735f6d756c74695f7468726573686f6c645f3108446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e1063616c6c60426f783c3c5420617320436f6e6669673e3a3a43616c6c3e40550120496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e004101202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468650501206d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00bc20526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e002c2023203c7765696768743e1d01204f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d48202d204442205765696768743a204e6f6e654c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e2061735f6d756c746918247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e1063616c6c284f706171756543616c6c2873746f72655f63616c6c10626f6f6c286d61785f77656967687418576569676874b4590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b42049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e8c202d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e002101204e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f207573651d012060617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005d0120526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f74686572776973655901206f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642ce0206d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e002c2023203c7765696768743e54202d20604f2853202b205a202b2043616c6c29602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e2501202d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e70202d2054686520776569676874206f6620746865206063616c6c602e5101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741d0120202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e80202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a250120202020202d2052656164733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c6029290120202020202d205772697465733a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c2043616c6c7320286966206073746f72655f63616c6c60294c202d20506c75732043616c6c20576569676874302023203c2f7765696768743e40617070726f76655f61735f6d756c746914247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e3c6d617962655f74696d65706f696e74844f7074696f6e3c54696d65706f696e743c543a3a426c6f636b4e756d6265723e3e2463616c6c5f68617368205b75383b2033325d286d61785f776569676874185765696768748c590120526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966fc20617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e003101205061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c7573410120607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f72382069732063616e63656c6c65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e5d01202d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e2049662069742069735501206e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d8207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e003901204e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed8202d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292efc202d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e34202d204f6e65206576656e742e5101202d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741d0120202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743abc20202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745dc020202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d302023203c2f7765696768743e3c63616e63656c5f61735f6d756c746910247468726573686f6c640c753136446f746865725f7369676e61746f72696573445665633c543a3a4163636f756e7449643e2474696d65706f696e746454696d65706f696e743c543a3a426c6f636b4e756d6265723e2463616c6c5f68617368205b75383b2033325d6859012043616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c820666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005901202d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e4501202d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f76652074686973702064697370617463682e204d6179206e6f7420626520656d7074792e6101202d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c7c207472616e73616374696f6e20666f7220746869732064697370617463682ed0202d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e002c2023203c7765696768743e28202d20604f285329602ed0202d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e4101202d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f6649012020207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ec0202d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e34202d204f6e65206576656e742e88202d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e74202d2053746f726167653a2072656d6f766573206f6e65206974656d2e8c202d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d2d34202d204442205765696768743a190120202020202d20526561643a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c731d0120202020202d2057726974653a204d756c74697369672053746f726167652c205b43616c6c6572204163636f756e745d2c20526566756e64204163636f756e742c2043616c6c73302023203c2f7765696768743e01102c4e65774d756c74697369670c244163636f756e744964244163636f756e7449642043616c6c48617368041d012041206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e205c5b617070726f76696e672c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967417070726f76616c10244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c4861736808cc2041206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652eb8205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d404d756c7469736967457865637574656414244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c48617368384469737061746368526573756c740459012041206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e205c5b617070726f76696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d444d756c746973696743616e63656c6c656410244163636f756e7449645854696d65706f696e743c426c6f636b4e756d6265723e244163636f756e7449642043616c6c486173680461012041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e205c5b63616e63656c6c696e672c2074696d65706f696e742c206d756c74697369672c2063616c6c5f686173685c5d0c2c4465706f736974426173653042616c616e63654f663c543e40008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f723042616c616e63654f663c543e4000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f726965730c75313608640004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e38404d696e696d756d5468726573686f6c640480205468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f76656404b02043616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e656564656404a02043616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f7269657304ac2054686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f7269657304b02054686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f7264657204110120546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f72696573041101205468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e6404e0204d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e6572043101204f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e74042101204e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74043101204120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e7404f820412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f7704d420546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f72656404a420546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e1e20426f756e7469657301205472656173757279102c426f756e7479436f756e7401002c426f756e7479496e646578100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001052c426f756e7479496e646578c8426f756e74793c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265723e000400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001052c426f756e7479496e6465781c5665633c75383e000400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100405665633c426f756e7479496e6465783e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01243870726f706f73655f626f756e7479081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c6465736372697074696f6e1c5665633c75383e30582050726f706f73652061206e657720626f756e74792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c20617355012060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c68206f7220736c6173686564207768656e2072656a65637465642e00fc202d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e68202d2060666565603a205468652063757261746f72206665652e2901202d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec4202d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e20610120417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3c70726f706f73655f63757261746f720c24626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c63757261746f728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650c66656554436f6d706163743c42616c616e63654f663c543e3e1c942041737369676e20612063757261746f7220746f20612066756e64656420626f756e74792e00b0204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a417070726f76654f726967696e602e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e40756e61737369676e5f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e488020556e61737369676e2063757261746f722066726f6d206120626f756e74792e00210120546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e00690120496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f72206973206d616c6963696f75730d01206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e00650120496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e64610120746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f7665722074686569723901206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e290061012046696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f7773650120616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e643d012077652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e386163636570745f63757261746f720424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e209820416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e2d012041206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e0094204d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e3061776172645f626f756e74790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636528990120417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e1d01202d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c61696d5f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e24f020436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e00290120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e008c202d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e30636c6f73655f626f756e74790424626f756e74795f696450436f6d706163743c426f756e7479496e6465783e283d012043616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64d0207468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00cc204f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e50657874656e645f626f756e74795f6578706972790824626f756e74795f696450436f6d706163743c426f756e7479496e6465783e1c5f72656d61726b1c5665633c75383e28b020457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e0090202d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e90202d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e011c38426f756e747950726f706f736564042c426f756e7479496e646578047c204e657720626f756e74792070726f706f73616c2e205c5b696e6465785c5d38426f756e747952656a6563746564082c426f756e7479496e6465781c42616c616e6365041101204120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e205c5b696e6465782c20626f6e645c5d48426f756e7479426563616d65416374697665042c426f756e7479496e64657804e4204120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e205c5b696e6465785c5d34426f756e747941776172646564082c426f756e7479496e646578244163636f756e74496404f4204120626f756e7479206973206177617264656420746f20612062656e65666963696172792e205c5b696e6465782c2062656e65666963696172795c5d34426f756e7479436c61696d65640c2c426f756e7479496e6465781c42616c616e6365244163636f756e744964040d01204120626f756e747920697320636c61696d65642062792062656e65666963696172792e205c5b696e6465782c207061796f75742c2062656e65666963696172795c5d38426f756e747943616e63656c6564042c426f756e7479496e6465780484204120626f756e74792069732063616e63656c6c65642e205c5b696e6465785c5d38426f756e7479457874656e646564042c426f756e7479496e646578049c204120626f756e74792065787069727920697320657874656e6465642e205c5b696e6465785c5d1c48446174614465706f736974506572427974653042616c616e63654f663c543e4000e1f50500000000000000000000000004fc2054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e20626f756e7479206465736372697074696f6e2e44426f756e74794465706f736974426173653042616c616e63654f663c543e4000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c617938543a3a426c6f636b4e756d6265721000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6438543a3a426c6f636b4e756d6265721080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e50426f756e747943757261746f724465706f7369741c5065726d696c6c1020a10700046d012050657263656e74616765206f66207468652063757261746f722066656520746861742077696c6c20626520726573657276656420757066726f6e74206173206465706f73697420666f7220626f756e74792063757261746f722e48426f756e747956616c75654d696e696d756d3042616c616e63654f663c543e4000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e4c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e2470496e73756666696369656e7450726f706f7365727342616c616e6365047c2050726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e6465780494204e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e657870656374656453746174757304842054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720460205265717569726520626f756e74792063757261746f722e30496e76616c696456616c7565045820496e76616c696420626f756e74792076616c75652e28496e76616c6964466565045020496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740870204120626f756e7479207061796f75742069732070656e64696e672efc20546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d61747572650449012054686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e2210546970730110546970730810546970730001051c543a3a48617368f04f70656e5469703c543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d6265722c20543a3a486173683e0004000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e730001061c543a3a486173681c5665633c75383e0004000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e0118387265706f72745f617765736f6d650818726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e7449644c5d01205265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005501205061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173c02060446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743ecc202d20436f6d706c65786974793a20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e942020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e2774202d20446252656164733a2060526561736f6e73602c2060546970736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e2c726574726163745f7469700410686173681c543a3a486173684c550120526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00e0204966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e00510120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e746966696564206279206068617368604501206d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f7450207468726f75676820607469705f6e657760292e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e009020456d697473206054697052657472616374656460206966207375636365737366756c2e002c2023203c7765696768743e54202d20436f6d706c65786974793a20604f28312960dc2020202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e90202d20446252656164733a206054697073602c20606f726967696e206163636f756e7460c0202d2044625772697465733a2060526561736f6e73602c206054697073602c20606f726967696e206163636f756e7460302023203c2f7765696768743e1c7469705f6e65770c18726561736f6e1c5665633c75383e0c77686f30543a3a4163636f756e744964247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e58f4204769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006101202d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c2062655c20202061205554462d382d656e636f6465642055524c2eec202d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e007820456d69747320604e657754697060206966207375636365737366756c2e002c2023203c7765696768743e5501202d20436f6d706c65786974793a20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e61012020202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062793101202020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f6648202020202060543a3a54697070657273602ee42020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e6774682060526080202d20446252656164733a206054697070657273602c2060526561736f6e736078202d2044625772697465733a2060526561736f6e73602c20605469707360302023203c2f7765696768743e0c7469700810686173681c543a3a48617368247469705f76616c756554436f6d706163743c42616c616e63654f663c543e3e60b4204465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206265206174206d656d626572206f662074686520605469707065727360207365742e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279382020206163636f756e742049442e5101202d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d820202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e00650120456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f64342068617320737461727465642e002c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e67746831012020206054602c20696e736572742074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e206279610120202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e00610120202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d4202020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e74202d20446252656164733a206054697070657273602c206054697073604c202d2044625772697465733a20605469707360302023203c2f7765696768743e24636c6f73655f7469700410686173681c543a3a48617368406020436c6f736520616e64207061796f75742061207469702e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0019012054686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e006501202d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d656461012020206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e002c2023203c7765696768743e6501202d20436f6d706c65786974793a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e67746855012020206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f7374c4202020646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602eac202d20446252656164733a206054697073602c206054697070657273602c20607469702066696e64657260dc202d2044625772697465733a2060526561736f6e73602c206054697073602c206054697070657273602c20607469702066696e64657260302023203c2f7765696768743e24736c6173685f7469700410686173681c543a3a4861736830982052656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00ac204d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f8204173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e008820456d6974732060546970536c617368656460206966207375636365737366756c2e002c2023203c7765696768743e0101202020605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e05012020205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e302023203c2f7765696768743e0114184e657754697004104861736804cc2041206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e205c5b7469705f686173685c5d28546970436c6f73696e670410486173680411012041207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e205c5b7469705f686173685c5d24546970436c6f7365640c1048617368244163636f756e7449641c42616c616e636504f02041207469702073756767657374696f6e20686173206265656e20636c6f7365642e205c5b7469705f686173682c2077686f2c207061796f75745c5d3054697052657472616374656404104861736804c82041207469702073756767657374696f6e20686173206265656e207265747261637465642e205c5b7469705f686173685c5d28546970536c61736865640c1048617368244163636f756e7449641c42616c616e63650405012041207469702073756767657374696f6e20686173206265656e20736c61736865642e205c5b7469705f686173682c2066696e6465722c206465706f7369745c5d144c4d6178696d756d526561736f6e4c656e6774680c75333210004000000488204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e48446174614465706f736974506572427974653042616c616e63654f663c543e4000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e38543a3a426c6f636b4e756d62657210403800000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e646572734665651c50657263656e740414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f736974426173653042616c616e63654f663c543e4000e40b5402000000000000000000000004d42054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e1830526561736f6e546f6f42696704882054686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e048c20546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e54697004642054686520746970206861736820697320756e6b6e6f776e2e244e6f7446696e64657204210120546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e042d0120546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d617475726504350120546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e2368456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e6401000c753332100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501005450686173653c543a3a426c6f636b4e756d6265723e0400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e00006c5265616479536f6c7574696f6e3c543a3a4163636f756e7449643e0400043d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e20536e617073686f7400006c526f756e64536e617073686f743c543a3a4163636f756e7449643e04000c7020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e38446573697265645461726765747300000c75333204000ccc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e40536e617073686f744d65746164617461000058536f6c7574696f6e4f72536e617073686f7453697a6504000c9820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e645369676e65645375626d697373696f6e4e657874496e64657801000c753332100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100585375626d697373696f6e496e64696365734f663c543e0400184d01204120736f727465642c20626f756e64656420736574206f6620602873636f72652c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f20612076616c756520696e5420605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700101050c753332545369676e65645375626d697373696f6e4f663c543e0011020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000034456c656374696f6e53636f72650400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01103c7375626d69745f756e7369676e656408307261775f736f6c7574696f6e7c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e1c7769746e65737358536f6c7574696f6e4f72536e617073686f7453697a6538a8205375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00cc20546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e0041012054686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c7959012076616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e7361012074686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c61724420746f20616e20696e686572656e74292e005d0120546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c51012070616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c79a02070757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e4204e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f726504406d617962655f6e6578745f73636f7265544f7074696f6e3c456c656374696f6e53636f72653e14b4205365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00dc204469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f4205468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c740420737570706f72747358537570706f7274733c543a3a4163636f756e7449643e205d0120536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748c2063616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e00490120546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e0065012054686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e79550120666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f6c206d656d6f72792f77656967687420636f6e73747261696e73292e187375626d697408307261775f736f6c7574696f6e7c426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543e3e3e586e756d5f7369676e65645f7375626d697373696f6e730c75333234a0205375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d420546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e0061012054686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e6454206f6620746865207369676e65642070686173652e0061012041206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e1901206d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e002c2023203c7765696768743eb42051756575652073697a65206d7573742062652070726f7669646564206173207769746e65737320646174612e302023203c2f7765696768743e011838536f6c7574696f6e53746f726564083c456c656374696f6e436f6d7075746510626f6f6c18b8204120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e0041012049662074686520736f6c7574696f6e206973207369676e65642c2074686973206d65616e732074686174206974206861736e277420796574206265656e2070726f6365737365642e20496620746865090120736f6c7574696f6e20697320756e7369676e65642c2074686973206d65616e7320746861742069742068617320616c736f206265656e2070726f6365737365642e005501205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6520726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a6564045c4f7074696f6e3c456c656374696f6e436f6d707574653e0859012054686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682060536f6d6560206f662074686520676976656e20636f6d7075746174696f6e2c206f7220656c7365206966207468656420656c656374696f6e206661696c65642c20604e6f6e65602e20526577617264656408244163636f756e7449641c42616c616e636504290120416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408244163636f756e7449641c42616c616e636504250120416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e485369676e6564506861736553746172746564040c75333204c420546865207369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e50556e7369676e6564506861736553746172746564040c75333204cc2054686520756e7369676e6564207068617365206f662074686520676976656e20726f756e642068617320737461727465642e3434556e7369676e6564506861736538543a3a426c6f636b4e756d62657210580200000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736538543a3a426c6f636b4e756d62657210580200000478204475726174696f6e206f6620746865207369676e65642070686173652e70536f6c7574696f6e496d70726f76656d656e745468726573686f6c641c50657262696c6c1020a10700084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173642022626574746572222028696e20616e79207068617365292e384f6666636861696e52657065617438543a3a426c6f636b4e756d626572100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974794c5472616e73616374696f6e5072696f726974792065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365384d696e65724d61785765696768741857656967687420c08466655701000010b8204d6178696d756d20776569676874207468617420746865206d696e65722073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c20776569676874206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f7420657863656564d820746869732076616c75652c206261736564206f6e205b60576569676874496e666f3a3a7375626d69745f756e7369676e6564605d2e505369676e65644d61785375626d697373696f6e730c75333210100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d61785765696768741857656967687420c0846665570100000c94204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e00fc20546869732073686f756c642070726f6261626c792062652073696d696c617220746f205b60436f6e6669673a3a4d696e65724d6178576569676874605d2e405369676e6564526577617264426173653042616c616e63654f663c543e4000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974426173653042616c616e63654f663c543e4000a0db215d000000000000000000000004902042617365206465706f73697420666f722061207369676e656420736f6c7574696f6e2e445369676e65644465706f736974427974653042616c616e63654f663c543e40787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f7369745765696768743042616c616e63654f663c543e400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e384d696e65724d61784c656e6774680c753332100000360010fc204d6178696d756d206c656e6774682028627974657329207468617420746865206d696e656420736f6c7574696f6e2073686f756c6420636f6e73756d652e00550120546865206d696e65722077696c6c20656e7375726520746861742074686520746f74616c206c656e677468206f662074686520756e7369676e656420736f6c7574696f6e2077696c6c206e6f74206578636565643020746869732076616c75652e2c6850726544697370617463684561726c795375626d697373696f6e0468205375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e74048c2057726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e0494205375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c044d0120546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f736974049820546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e65737304a4205769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d75636857656967687404bc20546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261049c204f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d6574616461746104ac20536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e64657804d4206053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564049c205468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e24042040436865636b5370656356657273696f6e38436865636b547856657273696f6e30436865636b47656e6573697338436865636b4d6f7274616c69747928436865636b4e6f6e63652c436865636b576569676874604368617267655472616e73616374696f6e5061796d656e744850726576616c696461746541747465737473'; diff --git a/packages/types-support/src/metadata/v13/pezkuwi-json.json b/packages/types-support/src/metadata/v13/pezkuwi-json.json new file mode 100644 index 0000000..8847285 --- /dev/null +++ b/packages/types-support/src/metadata/v13/pezkuwi-json.json @@ -0,0 +1,11172 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v13": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountInfo", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": "ConsumedWeight" + }, + "fallback": "0x000000000000000000000000000000000000000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: This storage item is explicitly unbounded since it is never intended to be read", + " from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": "LastRuntimeUpgradeInfo" + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": "Phase" + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [ + { + "name": "_ratio", + "type": "Perbill" + } + ], + "docs": [ + " A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark.", + "", + " # ", + " - `O(1)`", + " # " + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap.", + "", + " # ", + " - `O(1)`", + " - 1 storage write.", + " - Base Weight: 1.405 µs", + " - 1 write to HEAP_PAGES", + " # " + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code.", + "", + " # ", + " - `O(C + S)` where `C` length of `code` and `S` complexity of `can_set_code`", + " - 1 storage write (codec `O(C)`).", + " - 1 call to `can_set_code`: `O(S)` (calls `sp_io::misc::runtime_version` which is", + " expensive).", + " - 1 event.", + " The weight of this function is dependent on the runtime, but generally this is very", + " expensive. We will treat this as a full block.", + " # " + ] + }, + { + "name": "set_code_without_checks", + "args": [ + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Set the new runtime code without doing any checks of the given `code`.", + "", + " # ", + " - `O(C)` where `C` length of `code`", + " - 1 storage write (codec `O(C)`).", + " - 1 event.", + " The weight of this function is dependent on the runtime. We will treat this as a full", + " block. # " + ] + }, + { + "name": "set_changes_trie_config", + "args": [ + { + "name": "changes_trie_config", + "type": "Option" + } + ], + "docs": [ + " Set the new changes trie configuration.", + "", + " # ", + " - `O(1)`", + " - 1 storage write or delete (codec `O(1)`).", + " - 1 call to `deposit_log`: Uses `append` API, so O(1)", + " - Base Weight: 7.218 µs", + " - DB Weight:", + " - Writes: Changes Trie, System Digest", + " # " + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage.", + "", + " # ", + " - `O(I)` where `I` length of `items`", + " - `I` storage writes (`O(1)`).", + " - Base Weight: 0.568 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage.", + "", + " # ", + " - `O(IK)` where `I` length of `keys` and `K` length of one key", + " - `I` storage deletions.", + " - Base Weight: .378 * i µs", + " - Writes: Number of items", + " # " + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + }, + { + "name": "_subkeys", + "type": "u32" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix.", + "", + " **NOTE:** We rely on the Root origin to provide us the number of subkeys under", + " the prefix we are removing to accurately calculate the weight of this function.", + "", + " # ", + " - `O(P)` where `P` amount of keys with prefix `prefix`", + " - `P` storage deletions.", + " - Base Weight: 0.834 * P µs", + " - Writes: Number of subkeys + 1", + " # " + ] + }, + { + "name": "remark_with_event", + "args": [ + { + "name": "remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark and emit event.", + "", + " # ", + " - `O(b)` where b is the length of the remark.", + " - 1 event.", + " # " + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully. \\[info\\]" + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed. \\[error, info\\]" + ] + }, + { + "name": "CodeUpdated", + "args": [], + "docs": [ + " `:code` was updated." + ] + }, + { + "name": "NewAccount", + "args": [ + "AccountId" + ], + "docs": [ + " A new \\[account\\] was created." + ] + }, + { + "name": "KilledAccount", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] was reaped." + ] + }, + { + "name": "Remarked", + "args": [ + "AccountId", + "Hash" + ], + "docs": [ + " On on-chain remark happened. \\[origin, remark_hash\\]" + ] + } + ], + "constants": [ + { + "name": "BlockWeights", + "type": "BlockWeights", + "value": "0x00f2052a0100000000204aa9d1010000405973070000000001c0766c8f58010000010098f73e5d010000010000000000000000405973070000000001c0febef9cc0100000100204aa9d1010000010088526a740000004059730700000000000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": "BlockLength", + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": "BlockNumber", + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": "RuntimeDbWeight", + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": "RuntimeVersion", + "value": "0x20706f6c6b61646f743c7061726974792d706f6c6b61646f74000000008c2300000000000038df6acb689907609b0300000037e397fc7c91f5e40100000040fe3ad401f8959a05000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0100000049eaaf1b548a0cb00100000091d5df18b0d2cf5801000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a80100000007000000", + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "type": "u16", + "value": "0x0000", + "docs": [ + " The designated SS85 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": [ + { + "name": "InvalidSpecName", + "docs": [ + " The name of specification does not match between the current runtime", + " and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "docs": [ + " The specification version is not allowed to decrease between the current runtime", + " and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "docs": [ + " Failed to extract the runtime version from the new runtime.", + "", + " Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "docs": [ + " Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "docs": [ + " There is a non-zero reference count preventing the account from being purged." + ] + } + ], + "index": 0 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Bytes", + "value": "TaskAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from identity to the block number and index of the task." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "schedule", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.29 + .126 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda", + " - Will use base weight of 25 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel", + "args": [ + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u32" + } + ], + "docs": [ + " Cancel an anonymously scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 22.15 + 2.869 * S µs", + " - DB Weight:", + " - Read: Agenda", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_named", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 29.6 + .159 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 35 which should be good for more than 30 scheduled calls", + " # " + ] + }, + { + "name": "cancel_named", + "args": [ + { + "name": "id", + "type": "Bytes" + } + ], + "docs": [ + " Cancel a named scheduled task.", + "", + " # ", + " - S = Number of already scheduled calls", + " - Base Weight: 24.91 + 2.907 * S µs", + " - DB Weight:", + " - Read: Agenda, Lookup", + " - Write: Agenda, Lookup", + " - Will use base weight of 100 which should be good for up to 30 scheduled calls", + " # " + ] + }, + { + "name": "schedule_after", + "args": [ + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Anonymously schedule a task after a delay.", + "", + " # ", + " Same as [`schedule`].", + " # " + ] + }, + { + "name": "schedule_named_after", + "args": [ + { + "name": "id", + "type": "Bytes" + }, + { + "name": "after", + "type": "BlockNumber" + }, + { + "name": "maybe_periodic", + "type": "Option" + }, + { + "name": "priority", + "type": "Priority" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Schedule a named task after a delay.", + "", + " # ", + " Same as [`schedule_named`](Self::schedule_named).", + " # " + ] + } + ], + "events": [ + { + "name": "Scheduled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Scheduled some task. \\[when, index\\]" + ] + }, + { + "name": "Canceled", + "args": [ + "BlockNumber", + "u32" + ], + "docs": [ + " Canceled some task. \\[when, index\\]" + ] + }, + { + "name": "Dispatched", + "args": [ + "TaskAddress", + "Option", + "DispatchResult" + ], + "docs": [ + " Dispatched some task. \\[task, id, result\\]" + ] + } + ], + "constants": [ + { + "name": "MaximumWeight", + "type": "Weight", + "value": "0x00806e8774010000", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables of less", + " priority than `schedule::HARD_DEADLINE`." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + " Not strictly enforced, but used for weight estimation." + ] + } + ], + "errors": [ + { + "name": "FailedToSchedule", + "docs": [ + " Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "docs": [ + " Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "docs": [ + " Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "docs": [ + " Reschedule failed because it does not change scheduled time." + ] + } + ], + "index": 1 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "Slot" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": "NextConfigDescriptor" + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "Randomness" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": "MaybeRandomness" + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_initialize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": "BabeEpochConfiguration" + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "BabeEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report authority equivocation/misbehavior. This method will verify", + " the equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence will", + " be reported.", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "plan_config_change", + "args": [ + { + "name": "config", + "type": "NextConfigDescriptor" + } + ], + "docs": [ + " Plan an epoch config change. The epoch config change is recorded and will be enacted on", + " the next call to `enact_epoch_change`. The config will be activated one epoch after.", + " Multiple calls to this method will replace any existing planned config change that had", + " not been enacted yet." + ] + } + ], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0x6009000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0x7017000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [ + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`.", + "", + " # ", + " - `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + " - 1 storage read and 1 storage mutation (codec `O(1)`). (because of `DidUpdate::take` in", + " `on_finalize`)", + " - 1 event handler `on_timestamp_set`. Must be `O(1)`.", + " # " + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected*", + " period that the block production apparatus provides. Your chosen consensus system will", + " generally work with this to determine a sensible block time. e.g. For Aura, it will be", + " double this period on default settings." + ] + } + ], + "errors": [], + "index": 3 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountIndex", + "value": "(AccountId,BalanceOf,bool)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an previously unassigned index.", + "", + " Payment: `Deposit` is reserved from the sender account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be claimed. This must not be in use.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Assign an index already owned by the sender to another account. The balance reservation", + " is effectively transferred to the new account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `index`: the index to be re-assigned. This must be owned by the sender.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One transfer operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (recipient)", + " - Writes: Indices Accounts, System Account (recipient)", + " # " + ] + }, + { + "name": "free", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Free up an index owned by the sender.", + "", + " Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + " - `index`: the index to be freed. This must be owned by the sender.", + "", + " Emits `IndexFreed` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - One reserve operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "new", + "type": "AccountId" + }, + { + "name": "index", + "type": "AccountIndex" + }, + { + "name": "freeze", + "type": "bool" + } + ], + "docs": [ + " Force an index to an account. This doesn't require a deposit. If the index is already", + " held, then any deposit is reimbursed to its current owner.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `index`: the index to be (re-)assigned.", + " - `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + " - `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + " Emits `IndexAssigned` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one reserve operation.", + " - One event.", + " -------------------", + " - DB Weight:", + " - Reads: Indices Accounts, System Account (original owner)", + " - Writes: Indices Accounts, System Account (original owner)", + " # " + ] + }, + { + "name": "freeze", + "args": [ + { + "name": "index", + "type": "AccountIndex" + } + ], + "docs": [ + " Freeze an index so it will always point to the sender account. This consumes the", + " deposit.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must have a", + " non-frozen account `index`.", + "", + " - `index`: the index to be frozen in place.", + "", + " Emits `IndexFrozen` if successful.", + "", + " # ", + " - `O(1)`.", + " - One storage mutation (codec `O(1)`).", + " - Up to one slash operation.", + " - One event.", + " -------------------", + " - DB Weight: 1 Read/Write (Accounts)", + " # " + ] + } + ], + "events": [ + { + "name": "IndexAssigned", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A account index was assigned. \\[index, who\\]" + ] + }, + { + "name": "IndexFreed", + "args": [ + "AccountIndex" + ], + "docs": [ + " A account index has been freed up (unassigned). \\[index\\]" + ] + }, + { + "name": "IndexFrozen", + "args": [ + "AccountIndex", + "AccountId" + ], + "docs": [ + " A account index has been frozen to its current account ID. \\[index, who\\]" + ] + } + ], + "constants": [ + { + "name": "Deposit", + "type": "BalanceOf", + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": [ + { + "name": "NotAssigned", + "docs": [ + " The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "docs": [ + " The index is assigned to another account." + ] + }, + { + "name": "InUse", + "docs": [ + " The index was not available." + ] + }, + { + "name": "NotTransfer", + "docs": [ + " The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "docs": [ + " The index is permanent and may not be freed/changed." + ] + } + ], + "index": 4 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "AccountData", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The balance of an account.", + "", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " This is set to v2.0.0 for new networks." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for input config", + " types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex", + " computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger `T::DustRemoval::on_unbalanced`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional check", + " that the transfer will not kill the origin account.", + " ---------------------------------", + " - Base Weight: 73.64 µs, worst case scenario (account created, account removed)", + " - DB Weight: 1 Read and 1 Write to destination account", + " - Origin account is already in memory, so no DB operations for them.", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`frame_system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " ---------------------", + " - Base Weight:", + " - Creating: 27.56 µs", + " - Killing: 35.11 µs", + " - DB Weight: 1 Read, 1 Write to `who`", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified.", + " # ", + " - Same as transfer, but additional read and write because the source account is not", + " assumed to be in the overlay.", + " # " + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Pallet.html#method.transfer", + " # ", + " - Cheaper than transfer because account cannot be killed.", + " - Base Weight: 51.4 µs", + " - DB Weight: 1 Read and 1 Write to dest (sender is in overlay already)", + " #" + ] + }, + { + "name": "transfer_all", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "keep_alive", + "type": "bool" + } + ], + "docs": [ + " Transfer the entire transferable balance from the caller account.", + "", + " NOTE: This function only attempts to transfer _transferable_ balances. This means that", + " any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + " transferred by this function. To ensure that this function results in a killed account,", + " you might need to prepare the account by removing any reference counters, storage", + " deposits, etc...", + "", + " The dispatch origin of this call must be Signed.", + "", + " - `dest`: The recipient of the transfer.", + " - `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true). # ", + " - O(1). Just like transfer, but reading the user's transferable balance first.", + " #" + ] + } + ], + "events": [ + { + "name": "Endowed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was created with some free balance. \\[account, free_balance\\]" + ] + }, + { + "name": "DustLost", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account was removed whose balance was non-zero but below ExistentialDeposit,", + " resulting in an outright loss. \\[account, balance\\]" + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer succeeded. \\[from, to, value\\]" + ] + }, + { + "name": "BalanceSet", + "args": [ + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " A balance was set by root. \\[who, free, reserved\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some amount was deposited (e.g. for transaction fees). \\[who, deposit\\]" + ] + }, + { + "name": "Reserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was reserved (moved from free to reserved). \\[who, value\\]" + ] + }, + { + "name": "Unreserved", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " Some balance was unreserved (moved from reserved to free). \\[who, value\\]" + ] + }, + { + "name": "ReserveRepatriated", + "args": [ + "AccountId", + "AccountId", + "Balance", + "BalanceStatus" + ], + "docs": [ + " Some balance was moved from the reserve of the first account to the second account.", + " Final argument indicates the destination balance type.", + " \\[from, to, balance, destination_status\\]" + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "MaxLocks", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "type": "u32", + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + } + ], + "errors": [ + { + "name": "VestingBalance", + "docs": [ + " Vesting balance too high to send value" + ] + }, + { + "name": "LiquidityRestrictions", + "docs": [ + " Account liquidity restrictions prevent withdrawal" + ] + }, + { + "name": "InsufficientBalance", + "docs": [ + " Balance too low to send value" + ] + }, + { + "name": "ExistentialDeposit", + "docs": [ + " Value too low to create account due to existential deposit" + ] + }, + { + "name": "KeepAlive", + "docs": [ + " Transfer/payment would kill account" + ] + }, + { + "name": "ExistingVestingSchedule", + "docs": [ + " A vesting schedule already exists for this account" + ] + }, + { + "name": "DeadAccount", + "docs": [ + " Beneficiary account must pre-exist" + ] + }, + { + "name": "TooManyReserves", + "docs": [ + " Number of named reserves exceed MaxReserves" + ] + } + ], + "index": 5 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x40420f00000000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "WeightToFee", + "type": "Vec", + "value": "0x040000000000000000000000000000000000b4c4040001", + "docs": [ + " The polynomial that is applied in order to derive fee from weight." + ] + } + ], + "errors": [], + "index": 32 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [ + { + "name": "UncleGenerations", + "type": "BlockNumber", + "value": "0x00000000", + "docs": [ + " The number of blocks back we should accept uncles.", + " This means that we will deal with uncle-parents that are", + " `UncleGenerations + 1` before `now`." + ] + } + ], + "errors": [ + { + "name": "InvalidUncleParent", + "docs": [ + " The uncle parent not in the chain." + ] + }, + { + "name": "UnclesAlreadySet", + "docs": [ + " Uncles already set in the block." + ] + }, + { + "name": "TooManyUncles", + "docs": [ + " Too many uncles." + ] + }, + { + "name": "GenesisUncle", + "docs": [ + " The uncle is genesis." + ] + }, + { + "name": "TooHighUncle", + "docs": [ + " The uncle is too high in chain." + ] + }, + { + "name": "UncleAlreadyIncluded", + "docs": [ + " The uncle is already included." + ] + }, + { + "name": "OldUncle", + "docs": [ + " The uncle isn't recent enough to be included." + ] + } + ], + "index": 6 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "HistoryDepth", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Information is kept for eras in `[current_era - history_depth; current_era]`.", + "", + " Must be more than the number of eras delayed by session otherwise. I.e. active era must", + " always be in history. I.e. `active_era > current_era - history_depth` must be", + " guaranteed." + ] + }, + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": false + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " When updating this storage item, you must also update the `CounterForValidators`." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " A tracker to keep count of the number of items in the `Validators` map." + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Nominations", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate.", + "", + " When updating this storage item, you must also update the `CounterForNominators`." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " A tracker to keep count of the number of items in the `Nominators` map." + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": "ActiveEraInfo" + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last `HISTORY_DEPTH` eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "Exposure", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxNominatorRewardedPerValidator` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "ValidatorPrefs", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after `HISTORY_DEPTH` eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last `HISTORY_DEPTH` eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "EraRewardPoints", + "linked": false + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last `HISTORY_DEPTH` eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last `HISTORY_DEPTH` eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x06", + "docs": [ + " True if network has been upgraded to this version.", + " Storage version of the pallet.", + "", + " This is set to v7.0.0 for new networks." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": "Percent" + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " Emits `Bonded`.", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + " unless the `origin` falls below _existential deposit_ and gets removed as dust.", + " ------------------", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + " any limitation on the amount that can be added.", + "", + " Emits `Bonded`.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " If a user encounters the `InsufficientBond` error when calling this extrinsic,", + " they should call `chill` first in order to free up their bonded funds.", + "", + " Emits `Unbonded`.", + "", + " See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "args": [ + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller.", + "", + " Emits `Withdrawn`.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " Complexity O(S) where S is the number of slashing spans to remove", + " NOTE: Weight annotation is the kill scenario, we refund otherwise.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets` (N)", + " which is capped at CompactAssignments::LIMIT (MAX_NOMINATIONS).", + " - Both the reads and writes follow a similar pattern.", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ---------", + " - Weight: O(1)", + " - DB Weight:", + " - Read: Ledger", + " - Write: Payee", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " ----------", + " Weight: O(1)", + " DB Weight:", + " - Read: Bonded, Ledger New Controller, Ledger Old Controller", + " - Write: Bonded, Ledger New Controller, Ledger Old Controller", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " Sets the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Weight: O(1)", + " Write: Validator Count", + " # " + ] + }, + { + "name": "increase_validator_count", + "args": [ + { + "name": "additional", + "type": "Compact" + } + ], + "docs": [ + " Increments the ideal number of validators.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`Self::set_validator_count`].", + " # " + ] + }, + { + "name": "scale_validator_count", + "args": [ + { + "name": "factor", + "type": "Percent" + } + ], + "docs": [ + " Scale up the ideal number of validators by a factor.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " Same as [`Self::set_validator_count`].", + " # " + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " Thus the election process may be ongoing when this is called. In this case the", + " election will continue until the next era is triggered.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " If this is called just before a new era is triggered, the election process may not", + " have enough blocks to get a result.", + "", + " # ", + " - No arguments.", + " - Weight: O(1)", + " - Write ForceEra", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "invulnerables", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any).", + "", + " The dispatch origin must be Root.", + "", + " # ", + " - O(V)", + " - Write: Invulnerables", + " # " + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately.", + "", + " The dispatch origin must be Root.", + "", + " # ", + " O(S) where S is the number of slashing spans to be removed", + " Reads: Bonded, Slashing Spans, Account, Locks", + " Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " Account, Locks Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " The dispatch origin must be Root.", + "", + " # Warning", + "", + " The election process starts multiple blocks before the end of the era.", + " If this is called just before a new era is triggered, the election process may not", + " have enough blocks to get a result.", + "", + " # ", + " - Weight: O(1)", + " - Write: ForceEra", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash.", + "", + " Can be called by the `T::SlashCancelOrigin`.", + "", + " Parameters: era and indices of the slashes for that era to kill.", + "", + " # ", + " Complexity: O(U + S)", + " with U unapplied slashes weighted with U=1000", + " and S is the number of slash indices to be canceled.", + " - Read: Unapplied Slashes", + " - Write: Unapplied Slashes", + " # " + ] + }, + { + "name": "payout_stakers", + "args": [ + { + "name": "validator_stash", + "type": "AccountId" + }, + { + "name": "era", + "type": "EraIndex" + } + ], + "docs": [ + " Pay out all the stakers behind a single validator for a single era.", + "", + " - `validator_stash` is the stash account of the validator. Their nominators, up to", + " `T::MaxNominatorRewardedPerValidator`, will also receive their rewards.", + " - `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + " The origin of this call must be _Signed_. Any account can call this function, even if", + " it is not one of the stakers.", + "", + " # ", + " - Time complexity: at most O(MaxNominatorRewardedPerValidator).", + " - Contains a limited number of reads and writes.", + " -----------", + " N is the Number of payouts for the validator (including the validator)", + " Weight:", + " - Reward Destination Staked: O(N)", + " - Reward Destination Controller (Creating): O(N)", + "", + " NOTE: weights are assuming that payouts are made to alive stash account (Staked).", + " Paying even a dead controller is cheaper weight-wise. We don't do any refunds here.", + " # " + ] + }, + { + "name": "rebond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Rebond a portion of the stash scheduled to be unlocked.", + "", + " The dispatch origin must be signed by the controller.", + "", + " # ", + " - Time complexity: O(L), where L is unlocking chunks", + " - Bounded by `MAX_UNLOCKING_CHUNKS`.", + " - Storage changes: Can't increase storage, only decrease it.", + " # " + ] + }, + { + "name": "set_history_depth", + "args": [ + { + "name": "new_history_depth", + "type": "Compact" + }, + { + "name": "_era_items_deleted", + "type": "Compact" + } + ], + "docs": [ + " Set `HistoryDepth` value. This function will delete any history information", + " when `HistoryDepth` is reduced.", + "", + " Parameters:", + " - `new_history_depth`: The new history depth you would like to set.", + " - `era_items_deleted`: The number of items that will be deleted by this dispatch. This", + " should report all the storage items that will be deleted by clearing old era history.", + " Needed to report an accurate weight for the dispatch. Trusted by `Root` to report an", + " accurate number.", + "", + " Origin must be root.", + "", + " # ", + " - E: Number of history depths removed, i.e. 10 -> 7 = 3", + " - Weight: O(E)", + " - DB Weight:", + " - Reads: Current Era, History Depth", + " - Writes: History Depth", + " - Clear Prefix Each: Era Stakers, EraStakersClipped, ErasValidatorPrefs", + " - Writes Each: ErasValidatorReward, ErasRewardPoints, ErasTotalStake,", + " ErasStartSessionIndex", + " # " + ] + }, + { + "name": "reap_stash", + "args": [ + { + "name": "stash", + "type": "AccountId" + }, + { + "name": "num_slashing_spans", + "type": "u32" + } + ], + "docs": [ + " Remove all data structure concerning a staker/stash once its balance is at the minimum.", + " This is essentially equivalent to `withdraw_unbonded` except it can be called by anyone", + " and the target `stash` must have no funds left beyond the ED.", + "", + " This can be called from any origin.", + "", + " - `stash`: The stash account to reap. Its balance must be zero.", + "", + " # ", + " Complexity: O(S) where S is the number of slashing spans on the account.", + " DB Weight:", + " - Reads: Stash Account, Bonded, Slashing Spans, Locks", + " - Writes: Bonded, Slashing Spans (if S > 0), Ledger, Payee, Validators, Nominators,", + " Stash Account, Locks", + " - Writes Each: SpanSlash * S", + " # " + ] + }, + { + "name": "kick", + "args": [ + { + "name": "who", + "type": "Vec" + } + ], + "docs": [ + " Remove the given nominations from the calling validator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " - `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + " Note: Making this call only makes sense if you first set the validator preferences to", + " block any further nominations." + ] + }, + { + "name": "set_staking_limits", + "args": [ + { + "name": "min_nominator_bond", + "type": "BalanceOf" + }, + { + "name": "min_validator_bond", + "type": "BalanceOf" + }, + { + "name": "max_nominator_count", + "type": "Option" + }, + { + "name": "max_validator_count", + "type": "Option" + }, + { + "name": "threshold", + "type": "Option" + } + ], + "docs": [ + " Update the various staking limits this pallet.", + "", + " * `min_nominator_bond`: The minimum active bond needed to be a nominator.", + " * `min_validator_bond`: The minimum active bond needed to be a validator.", + " * `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + " * `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "", + " Origin must be Root to call this function.", + "", + " NOTE: Existing nominators and validators will not be affected by this update.", + " to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "args": [ + { + "name": "controller", + "type": "AccountId" + } + ], + "docs": [ + " Declare a `controller` to stop participating as either a validator or nominator.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + " If the caller is the same as the controller being targeted, then no further checks are", + " enforced, and this function behaves just like `chill`.", + "", + " If the caller is different than the controller being targeted, the following conditions", + " must be met:", + " * A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + " * A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + " * A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + " This can be helpful if bond requirements are updated, and we need to remove old users", + " who do not satisfy these requirements." + ] + } + ], + "events": [ + { + "name": "EraPaid", + "args": [ + "EraIndex", + "Balance", + "Balance" + ], + "docs": [ + " The era payout has been set; the first balance is the validator-payout; the second is", + " the remainder from the maximum amount of reward.", + " \\[era_index, validator_payout, remainder\\]" + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The nominator has been rewarded by this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount.", + " \\[validator, amount\\]" + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed. \\[session_index\\]" + ] + }, + { + "name": "StakersElected", + "args": [], + "docs": [ + " A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has bonded this amount. \\[stash, amount\\]", + "", + " NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + " it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has unbonded this amount. \\[stash, amount\\]" + ] + }, + { + "name": "Withdrawn", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + " from the unlocking queue. \\[stash, amount\\]" + ] + }, + { + "name": "Kicked", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " A nominator has been kicked from a validator. \\[nominator, stash\\]" + ] + }, + { + "name": "StakingElectionFailed", + "args": [], + "docs": [ + " The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "args": [ + "AccountId" + ], + "docs": [ + " An account has stopped participating as either a validator or nominator.", + " \\[stash\\]" + ] + }, + { + "name": "PayoutStarted", + "args": [ + "EraIndex", + "AccountId" + ], + "docs": [ + " The stakers' rewards are getting paid. \\[era_index, validator_stash\\]" + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": "EraIndex", + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxNominatorRewardedPerValidator", + "type": "u32", + "value": "0x00010000", + "docs": [ + " The maximum number of nominators rewarded for each validator.", + "", + " For each validator only the `$MaxNominatorRewardedPerValidator` biggest stakers can", + " claim their reward. This used to limit the i/o cost for the nominator payout." + ] + }, + { + "name": "MaxNominations", + "type": "u32", + "value": "0x10000000", + "docs": [] + } + ], + "errors": [ + { + "name": "NotController", + "docs": [ + " Not a controller account." + ] + }, + { + "name": "NotStash", + "docs": [ + " Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "docs": [ + " Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "docs": [ + " Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "docs": [ + " Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "docs": [ + " Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "docs": [ + " Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "docs": [ + " Can not bond with value less than minimum required." + ] + }, + { + "name": "NoMoreChunks", + "docs": [ + " Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "docs": [ + " Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "docs": [ + " Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "docs": [ + " Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "docs": [ + " Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "docs": [ + " Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "IncorrectHistoryDepth", + "docs": [ + " Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "docs": [ + " Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "docs": [ + " Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "docs": [ + " Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "docs": [ + " A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "docs": [ + " The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "docs": [ + " There are too many nominators in the system. Governance needs to adjust the staking", + " settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "docs": [ + " There are too many validators in the system. Governance needs to adjust the staking", + " settings to keep things safe for the runtime." + ] + } + ], + "index": 7 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": null, + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes.", + " \\[kind, timeslot\\]." + ] + } + ], + "constants": [], + "errors": [], + "index": 8 + }, + { + "name": "Historical", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 33 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ValidatorId", + "value": "Keys", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `keys`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)`", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `origin account`, `T::ValidatorIdOf`, `NextKeys`", + " - DbWrites: `origin account`, `NextKeys`", + " - DbReads per key id: `KeyOwner`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + }, + { + "name": "purge_keys", + "args": [], + "docs": [ + " Removes any session key(s) of the function caller.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - Complexity: `O(1)` in number of key types.", + " Actual cost depends on the number of length of `T::Keys::key_ids()` which is fixed.", + " - DbReads: `T::ValidatorIdOf`, `NextKeys`, `origin account`", + " - DbWrites: `NextKeys`, `origin account`", + " - DbWrites per key id: `KeyOwner`", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the \\[session_index\\], not the", + " block number as the type might suggest." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "InvalidProof", + "docs": [ + " Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "docs": [ + " No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "docs": [ + " Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "docs": [ + " No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "docs": [ + " Key setting account is not live, so it's impossible to associate keys." + ] + } + ], + "index": 9 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + } + ] + }, + "calls": [ + { + "name": "report_equivocation", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "args": [ + { + "name": "equivocation_proof", + "type": "GrandpaEquivocationProof" + }, + { + "name": "key_owner_proof", + "type": "KeyOwnerProof" + } + ], + "docs": [ + " Report voter equivocation/misbehavior. This method will verify the", + " equivocation proof and validate the given key ownership proof", + " against the extracted offender. If both are valid, the offence", + " will be reported.", + "", + " This extrinsic must be called unsigned and it is expected that only", + " block authors will call it (validated in `ValidateUnsigned`), as such", + " if the block author is defined it will be defined as the equivocation", + " reporter." + ] + }, + { + "name": "note_stalled", + "args": [ + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "best_finalized_block_number", + "type": "BlockNumber" + } + ], + "docs": [ + " Note that the current authority set of the GRANDPA finality gadget has", + " stalled. This will trigger a forced authority set change at the beginning", + " of the next session, to be enacted `delay` blocks after that. The delay", + " should be high enough to safely assume that the block signalling the", + " forced change will not be re-orged (e.g. 1000 blocks). The GRANDPA voters", + " will start the new authority set using the given finalized block as base.", + " Only callable by root." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied. \\[authority_set\\]" + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "PauseFailed", + "docs": [ + " Attempt to signal GRANDPA pause when the authority set isn't live", + " (either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "docs": [ + " Attempt to signal GRANDPA resume when the authority set isn't paused", + " (either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "docs": [ + " Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "docs": [ + " Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "docs": [ + " A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "docs": [ + " An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "docs": [ + " A given equivocation report is valid but already previously reported." + ] + } + ], + "index": 11 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex` to", + " `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Twox64Concat" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [ + " # ", + " - Complexity: `O(K + E)` where K is length of `Keys` (heartbeat.validators_len) and E is", + " length of `heartbeat.network_state.external_address`", + " - `O(K)`: decoding of length `K`", + " - `O(E)`: decoding/encoding of length `E`", + " - DbReads: pallet_session `Validators`, pallet_session `CurrentIndex`, `Keys`,", + " `ReceivedHeartbeats`", + " - DbWrites: `ReceivedHeartbeats`", + " # " + ] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId` \\[authority_id\\]" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least one validator was found to be \\[offline\\]." + ] + } + ], + "constants": [ + { + "name": "UnsignedPriority", + "type": "TransactionPriority", + "value": "0xffffffffffffffff", + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "errors": [ + { + "name": "InvalidKey", + "docs": [ + " Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "docs": [ + " Duplicated heartbeat." + ] + } + ], + "index": 12 + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": [], + "index": 13 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "PropIndex", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "PreimageStatus", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voting", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "Locks", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "BlockNumber", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Accounts for which there are locks in action which may be removed at some point in the", + " future. The value is the block number at which the lock expires and may be removed.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "StorageVersion", + "modifier": "Optional", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with last version." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " The dispatch origin of this call must be _Signed_ and the sender must", + " have funds to cover the deposit.", + "", + " - `proposal_hash`: The hash of the proposal preimage.", + " - `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + " Emits `Proposed`.", + "", + " Weight: `O(p)`" + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + }, + { + "name": "seconds_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Signals agreement with a particular proposal.", + "", + " The dispatch origin of this call must be _Signed_ and the sender", + " must have funds to cover the deposit, equal to the original deposit.", + "", + " - `proposal`: The index of the proposal to second.", + " - `seconds_upper_bound`: an upper bound on the current number of seconds on this", + " proposal. Extrinsic is weighted according to this value with no refund.", + "", + " Weight: `O(S)` where S is the number of seconds a proposal already has." + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "AccountVote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `ref_index`: The index of the referendum to vote for.", + " - `vote`: The vote configuration.", + "", + " Weight: `O(R)` where R is the number of referendums the voter has voted on." + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum.", + "", + " The dispatch origin of this call must be `CancellationOrigin`.", + "", + " -`ref_index`: The index of the referendum to cancel.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum.", + "", + " The dispatch origin of this call must be `ExternalOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Weight: `O(V)` with V number of vetoers in the blacklist of proposal.", + " Decoding vec of length V. Charged as maximum" + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " The dispatch of this call must be `FastTrackOrigin`.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `FastTrackVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + " Emits `Started`.", + "", + " Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash.", + "", + " The dispatch origin of this call must be `VetoOrigin`.", + "", + " - `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + " Emits `Vetoed`.", + "", + " Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `ref_index`: The index of the referendum to cancel.", + "", + " # Weight: `O(1)`." + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "which", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Cancel a proposal queued for enactment.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " - `which`: The index of the referendum to cancel.", + "", + " Weight: `O(D)` where `D` is the items in the dispatch queue. Weighted as `D = 10`." + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + }, + { + "name": "balance", + "type": "BalanceOf" + } + ], + "docs": [ + " Delegate the voting power (with some given conviction) of the sending account.", + "", + " The balance delegated is locked for as long as it's delegated, and thereafter for the", + " time appropriate for the conviction's lock period.", + "", + " The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + " - `to`: The account whose voting the `target` account's voting power will follow.", + " - `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + " - `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + " Emits `Delegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate the voting power of the sending account.", + "", + " Tokens may be unlocked following once an amount of time consistent with the lock period", + " of the conviction with which the delegation was issued.", + "", + " The dispatch origin of this call must be _Signed_ and the signing account must be", + " currently delegating.", + "", + " Emits `Undelegated`.", + "", + " Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Clears all public proposals.", + "", + " The dispatch origin of this call must be _Root_.", + "", + " Weight: `O(1)`." + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed. When this call is successful, i.e.", + " the preimage has not been uploaded before and matches some imminent proposal,", + " no fee is paid.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `encoded_proposal`: The preimage of a proposal.", + "", + " Emits `PreimageNoted`.", + "", + " Weight: `O(E)` with E size of `encoded_proposal` (protected by a required deposit)." + ] + }, + { + "name": "note_imminent_preimage_operational", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Same as `note_imminent_preimage` but origin is `OperationalPreimageOrigin`." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "proposal_len_upper_bound", + "type": "Compact" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `proposal_hash`: The preimage hash of a proposal.", + " - `proposal_length_upper_bound`: an upper bound on length of the proposal. Extrinsic is", + " weighted according to this value with no refund.", + "", + " This will only work after `VotingPeriod` blocks from the time that the preimage was", + " noted, if it's the same account doing it. If it's a different account, then it'll only", + " work an additional `EnactmentPeriod` later.", + "", + " Emits `PreimageReaped`.", + "", + " Weight: `O(D)` where D is length of proposal." + ] + }, + { + "name": "unlock", + "args": [ + { + "name": "target", + "type": "AccountId" + } + ], + "docs": [ + " Unlock tokens that have an expired lock.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account to remove the lock on.", + "", + " Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "args": [ + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If:", + " - the referendum was cancelled, or", + " - the referendum is ongoing, or", + " - the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + " ...then the vote is removed cleanly and a following call to `unlock` may result in more", + " funds being available.", + "", + " If, however, the referendum has ended and:", + " - it finished corresponding to the vote of the account, and", + " - the account made a standard vote with conviction, and", + " - the lock period of the conviction is not over", + " ...then the lock will be aggregated into the overall account's lock, which may involve", + " *overlocking* (where the two locks are combined into a single lock that is the maximum", + " of both the amount locked and the time is it locked for).", + "", + " The dispatch origin of this call must be _Signed_, and the signer must have a vote", + " registered for referendum `index`.", + "", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "args": [ + { + "name": "target", + "type": "AccountId" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Remove a vote for a referendum.", + "", + " If the `target` is equal to the signer, then this function is exactly equivalent to", + " `remove_vote`. If not equal to the signer, then the vote must have expired,", + " either because the referendum was cancelled, because the voter lost the referendum or", + " because the conviction period is over.", + "", + " The dispatch origin of this call must be _Signed_.", + "", + " - `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + " - `index`: The index of referendum of the vote to be removed.", + "", + " Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "enact_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Enact a proposal from a referendum. For now we just make the weight be the maximum." + ] + }, + { + "name": "blacklist", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "maybe_ref_index", + "type": "Option" + } + ], + "docs": [ + " Permanently place a proposal into the blacklist. This prevents it from ever being", + " proposed again.", + "", + " If called on a queued public or external proposal, then this will result in it being", + " removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + " then it will be cancelled.", + "", + " The dispatch origin of this call must be `BlacklistOrigin`.", + "", + " - `proposal_hash`: The proposal hash to blacklist permanently.", + " - `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + " cancelled.", + "", + " Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "args": [ + { + "name": "prop_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a proposal.", + "", + " The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + " - `prop_index`: The index of the proposal to cancel.", + "", + " Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account. \\[proposal_index, deposit\\]" + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote. \\[proposal_index, deposit,", + " depositors\\]" + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun. \\[ref_index, threshold\\]" + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum. \\[ref_index\\]" + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum. \\[ref_index\\]" + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled. \\[ref_index\\]" + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "DispatchResult" + ], + "docs": [ + " A proposal has been enacted. \\[ref_index, result\\]" + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed. \\[who, proposal_hash, until\\]" + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken. \\[proposal_hash, who, deposit\\]" + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned).", + " \\[proposal_hash, provider, deposit\\]" + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing.", + " \\[proposal_hash, ref_index\\]" + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper.", + " \\[proposal_hash, provider, deposit, reaper\\]" + ] + }, + { + "name": "Blacklisted", + "args": [ + "Hash" + ], + "docs": [ + " A proposal \\[hash\\] has been blacklisted permanently." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x00270600", + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0x00270600", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0x00270600", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "type": "BlockNumber", + "value": "0x00270600", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "type": "bool", + "value": "0x01", + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": "BlockNumber", + "value": "0x08070000", + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + }, + { + "name": "MaxVotes", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + } + ], + "errors": [ + { + "name": "ValueLow", + "docs": [ + " Value too low" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "docs": [ + " Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "docs": [ + " Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "docs": [ + " Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "docs": [ + " Invalid hash" + ] + }, + { + "name": "NoProposal", + "docs": [ + " No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "docs": [ + " Identity may not veto a proposal twice" + ] + }, + { + "name": "DuplicatePreimage", + "docs": [ + " Preimage already noted" + ] + }, + { + "name": "NotImminent", + "docs": [ + " Not imminent" + ] + }, + { + "name": "TooEarly", + "docs": [ + " Too early" + ] + }, + { + "name": "Imminent", + "docs": [ + " Imminent" + ] + }, + { + "name": "PreimageMissing", + "docs": [ + " Preimage not found" + ] + }, + { + "name": "ReferendumInvalid", + "docs": [ + " Vote given for invalid referendum" + ] + }, + { + "name": "PreimageInvalid", + "docs": [ + " Invalid preimage" + ] + }, + { + "name": "NoneWaiting", + "docs": [ + " No proposals waiting" + ] + }, + { + "name": "NotVoter", + "docs": [ + " The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "docs": [ + " The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "docs": [ + " The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "docs": [ + " Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "docs": [ + " The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "docs": [ + " The account currently has votes attached to it and the operation cannot succeed until", + " these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "docs": [ + " The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "docs": [ + " Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "docs": [ + " Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "docs": [ + " Maximum number of votes reached." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " Maximum number of proposals reached." + ] + } + ], + "index": 14 + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the", + " members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching", + " `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a", + " fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + " proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec", + " `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current", + " state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 15 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of absentations." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + }, + { + "name": "prime", + "type": "Option" + }, + { + "name": "old_count", + "type": "MemberCount" + } + ], + "docs": [ + " Set the collective's membership.", + "", + " - `new_members`: The new member list. Be nice to the chain and provide it sorted.", + " - `prime`: The prime member whose vote sets the default.", + " - `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + " Requires root origin.", + "", + " NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + " # ", + " ## Weight", + " - `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)", + " - DB:", + " - 1 storage mutation (codec `O(M)` read, `O(N)` write) for reading and writing the", + " members", + " - 1 storage read (codec `O(P)`) for reading the proposals", + " - `P` storage mutations (codec `O(M)`) for updating the votes for each proposal", + " - 1 storage write (codec `O(1)`) for deleting the old `prime` and setting the new one", + " # " + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective.", + "", + " # ", + " ## Weight", + " - `O(M + P)` where `M` members-count (code-bounded) and `P` complexity of dispatching", + " `proposal`", + " - DB: 1 read (codec `O(M)`) + DB access of `proposal`", + " - 1 event", + " # " + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Add a new proposal to either be voted on or executed directly.", + "", + " Requires the sender to be member.", + "", + " `threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + " or put up for voting.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)", + " - DB:", + " - 1 storage read `is_member` (codec `O(M)`)", + " - 1 storage read `ProposalOf::contains_key` (codec `O(1)`)", + " - DB accesses influenced by `threshold`:", + " - EITHER storage accesses done by `proposal` (`threshold < 2`)", + " - OR proposal insertion (`threshold <= 2`)", + " - 1 storage mutation `Proposals` (codec `O(P2)`)", + " - 1 storage mutation `ProposalCount` (codec `O(1)`)", + " - 1 storage write `ProposalOf` (codec `O(B)`)", + " - 1 storage write `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " Add an aye or nay vote for the sender to the given proposal.", + "", + " Requires the sender to be a member.", + "", + " Transaction fees will be waived if the member is voting on any particular proposal", + " for the first time and the call is successful. Subsequent vote changes will charge a", + " fee.", + " # ", + " ## Weight", + " - `O(M)` where `M` is members-count (code- and governance-bounded)", + " - DB:", + " - 1 storage read `Members` (codec `O(M)`)", + " - 1 storage mutation `Voting` (codec `O(M)`)", + " - 1 event", + " # " + ] + }, + { + "name": "close", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "proposal_weight_bound", + "type": "Compact" + }, + { + "name": "length_bound", + "type": "Compact" + } + ], + "docs": [ + " Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + " May be called by any signed account in order to finish voting and close the proposal.", + "", + " If called before the end of the voting period it will only close the vote if it is", + " has enough votes to be approved or disapproved.", + "", + " If called after the end of the voting period abstentions are counted as rejections", + " unless there is a prime member set and the prime member cast an approval.", + "", + " If the close operation completes successfully with disapproval, the transaction fee will", + " be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + " + `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + " proposal.", + " + `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + " `storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + " # ", + " ## Weight", + " - `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)", + " - DB:", + " - 2 storage reads (`Members`: codec `O(M)`, `Prime`: codec `O(1)`)", + " - 3 mutations (`Voting`: codec `O(M)`, `ProposalOf`: codec `O(B)`, `Proposals`: codec", + " `O(P2)`)", + " - any mutations done while executing `proposal` (`P1`)", + " - up to 3 events", + " # " + ] + }, + { + "name": "disapprove_proposal", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Disapprove a proposal, close, and remove it from the system, regardless of its current", + " state.", + "", + " Must be called by the Root origin.", + "", + " Parameters:", + " * `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + " # ", + " Complexity: O(P) where P is the number of max proposals", + " DB Weight:", + " * Reads: Proposals", + " * Writes: Voting, Proposals, ProposalOf", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`).", + " \\[account, proposal_index, proposal_hash, threshold\\]" + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`).", + " \\[account, proposal_hash, voted, yes, no\\]" + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold.", + " \\[proposal_hash\\]" + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A motion was executed; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "DispatchResult" + ], + "docs": [ + " A single member did some action; result will be `Ok` if it returned without error.", + " \\[proposal_hash, result\\]" + ] + }, + { + "name": "Closed", + "args": [ + "Hash", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A proposal was closed because its threshold was reached or after its duration was up.", + " \\[proposal_hash, yes, no\\]" + ] + } + ], + "constants": [], + "errors": [ + { + "name": "NotMember", + "docs": [ + " Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "docs": [ + " Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "docs": [ + " Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "docs": [ + " Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "docs": [ + " Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "docs": [ + " Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "docs": [ + " The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "docs": [ + " There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "docs": [ + " The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "docs": [ + " The given length bound for the proposal was too low." + ] + } + ], + "index": 16 + }, + { + "name": "PhragmenElection", + "storage": { + "prefix": "PhragmenElection", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Voter", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election. This can be called to", + " set the initial votes, or update already existing votes.", + "", + " Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + " reserved. The deposit is based on the number of votes and can be updated over time.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + " If `value` is more than `who`'s total balance, then the maximum of the two is used.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " It is the responsibility of the caller to **NOT** place all of their balance into the", + " lock and keep some for further operations.", + "", + " # ", + " We assume the maximum weight among all 3 cases: vote_equal, vote_more and vote_less.", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter.", + "", + " This removes the lock and returns the deposit.", + "", + " The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "args": [ + { + "name": "candidate_count", + "type": "Compact" + } + ], + "docs": [ + " Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + " All candidates are wiped at the end of the term. They either become a member/runner-up,", + " or leave the system while their deposit is slashed.", + "", + " The dispatch origin of this call must be signed.", + "", + " ### Warning", + "", + " Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + " to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + " # ", + " The number of current candidates must be provided as witness data.", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [ + { + "name": "renouncing", + "type": "Renouncing" + } + ], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + "", + " - `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + " - `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + " The dispatch origin of this call must be signed, and have one of the above roles.", + "", + " # ", + " The type of renouncing must be provided as witness data.", + " # " + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "has_replacement", + "type": "bool" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen election is started.", + "", + " The dispatch origin of this call must be root.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " If we have a replacement, we use a small weight. Else, since this is a root call and", + " will go into phragmen, we assume full block for now.", + " # " + ] + }, + { + "name": "clean_defunct_voters", + "args": [ + { + "name": "_num_voters", + "type": "u32" + }, + { + "name": "_num_defunct", + "type": "u32" + } + ], + "docs": [ + " Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + " deposit of the removed voters are returned.", + "", + " This is an root function to be used only for cleaning the state.", + "", + " The dispatch origin of this call must be root.", + "", + " # ", + " The total number of voters and those that are defunct must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with \\[new_members\\]. This indicates that enough candidates existed to run", + " the election, not that enough have has been elected. The inner value must be examined", + " for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + " slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + " begin with." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round. This is different from", + " `NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "args": [], + "docs": [ + " Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A \\[member\\] has been removed. This should always be followed by either `NewTerm` or", + " `EmptyTerm`." + ] + }, + { + "name": "Renounced", + "args": [ + "AccountId" + ], + "docs": [ + " Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[candidate\\] was slashed by \\[amount\\] due to failing to obtain a seat as member or", + " runner-up.", + "", + " Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A \\[seat holder\\] was slashed by \\[amount\\] by being forcefully removed from the set." + ] + } + ], + "constants": [ + { + "name": "PalletId", + "type": "LockIdentifier", + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "type": "BalanceOf", + "value": "0x007013b72e0000000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "type": "BalanceOf", + "value": "0x00d01213000000000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x0d000000", + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x14000000", + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0xc0890100", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + } + ], + "errors": [ + { + "name": "UnableToVote", + "docs": [ + " Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "docs": [ + " Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "docs": [ + " Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "docs": [ + " Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "docs": [ + " Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "docs": [ + " Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "docs": [ + " Must be a voter." + ] + }, + { + "name": "ReportSelf", + "docs": [ + " Cannot report self." + ] + }, + { + "name": "DuplicatedCandidate", + "docs": [ + " Duplicated candidate submission." + ] + }, + { + "name": "MemberSubmit", + "docs": [ + " Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "docs": [ + " Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "docs": [ + " Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "docs": [ + " The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "docs": [ + " The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "docs": [ + " The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "docs": [ + " Prediction regarding replacement after member removal is wrong." + ] + } + ], + "index": 17 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `T::SwapOrigin`.", + "", + " Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member.", + "", + " Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Set the prime member. Must be a current member.", + "", + " May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "args": [], + "docs": [ + " Remove the prime member if it exists.", + "", + " May only be called from `T::PrimeOrigin`." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "AlreadyMember", + "docs": [ + " Already a member." + ] + }, + { + "name": "NotMember", + "docs": [ + " Not a member." + ] + } + ], + "index": 18 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `ProposalCount`, `origin account`", + " - DbWrites: `ProposalCount`, `Proposals`, `origin account`", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " # ", + " - Complexity: O(1)", + " - DbReads: `Proposals`, `rejected proposer account`", + " - DbWrites: `Proposals`, `rejected proposer account`", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - Complexity: O(1).", + " - DbReads: `Proposals`, `Approvals`", + " - DbWrite: `Approvals`", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal. \\[proposal_index\\]" + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds. \\[budget_remaining\\]" + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated. \\[proposal_index, award, beneficiary\\]" + ] + }, + { + "name": "Rejected", + "args": [ + "ProposalIndex", + "Balance" + ], + "docs": [ + " A proposal was rejected; funds were slashed. \\[proposal_index, slashed\\]" + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt. \\[burn\\]" + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend.", + " \\[budget_remaining\\]" + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited. \\[deposit\\]" + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x00460500", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0x10270000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": "PalletId", + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of approvals that can wait in the spending queue." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "TooManyApprovals", + "docs": [ + " Too many approvals in the queue." + ] + } + ], + "index": 19 + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "EthereumAddress", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "EthereumAddress", + "value": "(BalanceOf,BalanceOf,BlockNumber)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "EthereumAddress", + "value": "StatementKind", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "AccountId", + "value": "EthereumAddress", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": [ + { + "name": "claim", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "ethereum_signature", + "type": "EcdsaSignature" + } + ], + "docs": [ + " Make a claim to collect your DOTs.", + "", + " The dispatch origin for this call must be _None_.", + "", + " Unsigned Validation:", + " A call to claim is deemed valid if the signature provided matches", + " the expected signed message of:", + "", + " > Ethereum Signed Message:", + " > (configured prefix string)(address)", + "", + " and `address` matches the `dest` account.", + "", + " Parameters:", + " - `dest`: The destination account to payout the claim.", + " - `ethereum_signature`: The signature of an ethereum signed message", + " matching the format described above.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " Weight includes logic to validate unsigned `claim` call.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "mint_claim", + "args": [ + { + "name": "who", + "type": "EthereumAddress" + }, + { + "name": "value", + "type": "BalanceOf" + }, + { + "name": "vesting_schedule", + "type": "Option<(BalanceOf,BalanceOf,BlockNumber)>" + }, + { + "name": "statement", + "type": "Option" + } + ], + "docs": [ + " Mint a new claim to collect DOTs.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " Parameters:", + " - `who`: The Ethereum address allowed to collect this claim.", + " - `value`: The number of DOTs that will be claimed.", + " - `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " We assume worst case that both vesting and statement is being inserted.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "claim_attest", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "ethereum_signature", + "type": "EcdsaSignature" + }, + { + "name": "statement", + "type": "Bytes" + } + ], + "docs": [ + " Make a claim to collect your DOTs by signing a statement.", + "", + " The dispatch origin for this call must be _None_.", + "", + " Unsigned Validation:", + " A call to `claim_attest` is deemed valid if the signature provided matches", + " the expected signed message of:", + "", + " > Ethereum Signed Message:", + " > (configured prefix string)(address)(statement)", + "", + " and `address` matches the `dest` account; the `statement` must match that which is", + " expected according to your purchase arrangement.", + "", + " Parameters:", + " - `dest`: The destination account to payout the claim.", + " - `ethereum_signature`: The signature of an ethereum signed message", + " matching the format described above.", + " - `statement`: The identity of the statement which is being attested to in the signature.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " Weight includes logic to validate unsigned `claim_attest` call.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "attest", + "args": [ + { + "name": "statement", + "type": "Bytes" + } + ], + "docs": [ + " Attest to a statement, needed to finalize the claims process.", + "", + " WARNING: Insecure unless your chain includes `PrevalidateAttests` as a `SignedExtension`.", + "", + " Unsigned Validation:", + " A call to attest is deemed valid if the sender has a `Preclaim` registered", + " and provides a `statement` which is expected for the account.", + "", + " Parameters:", + " - `statement`: The identity of the statement which is being attested to in the signature.", + "", + " ", + " The weight of this call is invariant over the input parameters.", + " Weight includes logic to do pre-validation on `attest` call.", + "", + " Total Complexity: O(1)", + " " + ] + }, + { + "name": "move_claim", + "args": [ + { + "name": "old", + "type": "EthereumAddress" + }, + { + "name": "new", + "type": "EthereumAddress" + }, + { + "name": "maybe_preclaim", + "type": "Option" + } + ], + "docs": [] + } + ], + "events": [ + { + "name": "Claimed", + "args": [ + "AccountId", + "EthereumAddress", + "Balance" + ], + "docs": [ + " Someone claimed some DOTs. `[who, ethereum_address, amount]`" + ] + } + ], + "constants": [ + { + "name": "Prefix", + "type": "Bytes", + "value": "0x8450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a", + "docs": [] + } + ], + "errors": [ + { + "name": "InvalidEthereumSignature", + "docs": [ + " Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "docs": [ + " Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "docs": [ + " Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "docs": [ + " There's not enough in the pot to pay out some unvested amount. Generally implies a logic", + " error." + ] + }, + { + "name": "InvalidStatement", + "docs": [ + " A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "docs": [ + " The account already has a vested balance." + ] + } + ], + "index": 24 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "Releases" + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": [ + { + "name": "vest", + "args": [], + "docs": [ + " Unlock any vested funds of the sender account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 2 Reads, 2 Writes", + " - Reads: Vesting Storage, Balances Locks, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, [Sender Account]", + " # " + ] + }, + { + "name": "vest_other", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Unlock any vested funds of a `target` account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account whose vested funds should be unlocked. Must have funds still", + " locked under this pallet.", + "", + " Emits either `VestingCompleted` or `VestingUpdated`.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account", + " - Writes: Vesting Storage, Balances Locks, Target Account", + " # " + ] + }, + { + "name": "vested_transfer", + "args": [ + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Create a vested transfer.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `target`: The account receiving the vested funds.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " NOTE: This will unlock all schedules through the current block.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 3 Reads, 3 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " - Writes: Vesting Storage, Balances Locks, Target Account, [Sender Account]", + " # " + ] + }, + { + "name": "force_vested_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "schedule", + "type": "VestingInfo" + } + ], + "docs": [ + " Force a vested transfer.", + "", + " The dispatch origin for this call must be _Root_.", + "", + " - `source`: The account whose funds should be transferred.", + " - `target`: The account that should be transferred the vested funds.", + " - `schedule`: The vesting schedule attached to the transfer.", + "", + " Emits `VestingCreated`.", + "", + " NOTE: This will unlock all schedules through the current block.", + "", + " # ", + " - `O(1)`.", + " - DbWeight: 4 Reads, 4 Writes", + " - Reads: Vesting Storage, Balances Locks, Target Account, Source Account", + " - Writes: Vesting Storage, Balances Locks, Target Account, Source Account", + " # " + ] + }, + { + "name": "merge_schedules", + "args": [ + { + "name": "schedule1_index", + "type": "u32" + }, + { + "name": "schedule2_index", + "type": "u32" + } + ], + "docs": [ + " Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + " the highest possible start and end blocks. If both schedules have already started the", + " current block will be used as the schedule start; with the caveat that if one schedule", + " is finished by the current block, the other will be treated as the new merged schedule,", + " unmodified.", + "", + " NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + " NOTE: This will unlock all schedules through the current block prior to merging.", + " NOTE: If both schedules have ended by the current block, no new schedule will be created", + " and both will be removed.", + "", + " Merged schedule attributes:", + " - `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + " - `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + " - `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `schedule1_index`: index of the first schedule to merge.", + " - `schedule2_index`: index of the second schedule to merge." + ] + } + ], + "events": [ + { + "name": "VestingUpdated", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " The amount vested has been updated. This could indicate a change in funds available.", + " The balance given is the amount which is left unvested (and thus locked).", + " \\[account, unvested\\]" + ] + }, + { + "name": "VestingCompleted", + "args": [ + "AccountId" + ], + "docs": [ + " An \\[account\\] has become fully vested." + ] + } + ], + "constants": [ + { + "name": "MinVestedTransfer", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": "u32", + "value": "0x1c000000", + "docs": [] + } + ], + "errors": [ + { + "name": "NotVesting", + "docs": [ + " The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "docs": [ + " The account already has `MaxVestingSchedules` count of schedules and thus", + " cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "docs": [ + " Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "docs": [ + " An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "docs": [ + " Failed to create a new schedule because some parameter was invalid." + ] + } + ], + "index": 25 + }, + { + "name": "Utility", + "storage": null, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # ", + "", + " This will return `Ok` in all circumstances. To determine the success of the batch, an", + " event is deposited. If a call failed and the batch was interrupted, then the", + " `BatchInterrupted` event is deposited, along with the number of successful calls made", + " and the error of the failed call. If all were successful, then the `BatchCompleted`", + " event is deposited." + ] + }, + { + "name": "as_derivative", + "args": [ + { + "name": "index", + "type": "u16" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Send a call through an indexed pseudonym of the sender.", + "", + " Filter from origin are passed along. The call will be dispatched with an origin which", + " use the same filter as the origin of this call.", + "", + " NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + " because you expect `proxy` to have been used prior in the call stack and you do not want", + " the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + " in the Multisig pallet instead.", + "", + " NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + " The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls and atomically execute them.", + " The whole transaction will rollback and fail if any of the calls failed.", + "", + " May be called from any origin.", + "", + " - `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + " If origin is root then call are dispatch without checking origin filter. (This includes", + " bypassing `frame_system::Config::BaseCallFilter`).", + "", + " # ", + " - Complexity: O(C) where C is the number of calls to be batched.", + " # " + ] + } + ], + "events": [ + { + "name": "BatchInterrupted", + "args": [ + "u32", + "DispatchError" + ], + "docs": [ + " Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + " well as the error. \\[index, error\\]" + ] + }, + { + "name": "BatchCompleted", + "args": [], + "docs": [ + " Batch of dispatches completed fully with no error." + ] + }, + { + "name": "ItemCompleted", + "args": [], + "docs": [ + " A single item within a Batch of dispatches has completed with no error." + ] + } + ], + "constants": [ + { + "name": "batched_calls_limit", + "type": "u32", + "value": "0x0cc30000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": [ + { + "name": "TooManyCalls", + "docs": [ + " Too many calls batched." + ] + } + ], + "index": 26 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "Registration", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_128Concat", + "key": "AccountId", + "value": "(AccountId,Data)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": "Vec>" + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + } + ] + }, + "calls": [ + { + "name": "add_registrar", + "args": [ + { + "name": "account", + "type": "AccountId" + } + ], + "docs": [ + " Add a registrar to the system.", + "", + " The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + " - `account`: the account of the registrar.", + "", + " Emits `RegistrarAdded` if successful.", + "", + " # ", + " - `O(R)` where `R` registrar-count (governance-bounded and code-bounded).", + " - One storage mutation (codec `O(R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_identity", + "args": [ + { + "name": "info", + "type": "IdentityInfo" + } + ], + "docs": [ + " Set an account's identity information and reserve the appropriate deposit.", + "", + " If the account already has identity information, the deposit is taken as part payment", + " for the new deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `info`: The identity information.", + "", + " Emits `IdentitySet` if successful.", + "", + " # ", + " - `O(X + X' + R)`", + " - where `X` additional-field-count (deposit-bounded and code-bounded)", + " - where `R` judgements-count (registrar-count-bounded)", + " - One balance reserve operation.", + " - One storage mutation (codec-read `O(X' + R)`, codec-write `O(X + R)`).", + " - One event.", + " # " + ] + }, + { + "name": "set_subs", + "args": [ + { + "name": "subs", + "type": "Vec<(AccountId,Data)>" + } + ], + "docs": [ + " Set the sub-accounts of the sender.", + "", + " Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + " and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " - `subs`: The identity's (new) sub-accounts.", + "", + " # ", + " - `O(P + S)`", + " - where `P` old-subs-count (hard- and deposit-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - At most one balance operations.", + " - DB:", + " - `P + S` storage mutations (codec complexity `O(1)`)", + " - One storage read (codec complexity `O(P)`).", + " - One storage write (codec complexity `O(S)`).", + " - One storage-exists (`IdentityOf::contains_key`).", + " # " + ] + }, + { + "name": "clear_identity", + "args": [], + "docs": [ + " Clear an account's identity info and all sub-accounts and return all deposits.", + "", + " Payment: All reserved balances on the account are returned.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " identity.", + "", + " Emits `IdentityCleared` if successful.", + "", + " # ", + " - `O(R + S + X)`", + " - where `R` registrar-count (governance-bounded).", + " - where `S` subs-count (hard- and deposit-bounded).", + " - where `X` additional-field-count (deposit-bounded and code-bounded).", + " - One balance-unreserve operation.", + " - `2` storage reads and `S + 2` storage deletions.", + " - One event.", + " # " + ] + }, + { + "name": "request_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "max_fee", + "type": "Compact" + } + ], + "docs": [ + " Request a judgement from a registrar.", + "", + " Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + " given.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is requested.", + " - `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + " ```nocompile", + " Self::registrars().get(reg_index).unwrap().fee", + " ```", + "", + " Emits `JudgementRequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(X + R)`.", + " - One event.", + " # " + ] + }, + { + "name": "cancel_request", + "args": [ + { + "name": "reg_index", + "type": "RegistrarIndex" + } + ], + "docs": [ + " Cancel a previous request.", + "", + " Payment: A previously reserved deposit is returned on success.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a", + " registered identity.", + "", + " - `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + " Emits `JudgementUnrequested` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-reserve operation.", + " - One storage mutation `O(R + X)`.", + " - One event", + " # " + ] + }, + { + "name": "set_fee", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Set the fee required for a judgement to be requested from a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fee`: the new fee.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.315 + R * 0.329 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_account_id", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Change the account associated with a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `new`: the new account ID.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 8.823 + R * 0.32 µs (min squares analysis)", + " # " + ] + }, + { + "name": "set_fields", + "args": [ + { + "name": "index", + "type": "Compact" + }, + { + "name": "fields", + "type": "IdentityFields" + } + ], + "docs": [ + " Set the field information for a registrar.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `index`.", + "", + " - `index`: the index of the registrar whose fee is to be set.", + " - `fields`: the fields that the registrar concerns themselves with.", + "", + " # ", + " - `O(R)`.", + " - One storage mutation `O(R)`.", + " - Benchmark: 7.464 + R * 0.325 µs (min squares analysis)", + " # " + ] + }, + { + "name": "provide_judgement", + "args": [ + { + "name": "reg_index", + "type": "Compact" + }, + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "judgement", + "type": "IdentityJudgement" + } + ], + "docs": [ + " Provide a judgement for an account's identity.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must be the account", + " of the registrar whose index is `reg_index`.", + "", + " - `reg_index`: the index of the registrar whose judgement is being made.", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + " - `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "", + " Emits `JudgementGiven` if successful.", + "", + " # ", + " - `O(R + X)`.", + " - One balance-transfer operation.", + " - Up to one account-lookup operation.", + " - Storage: 1 read `O(R)`, 1 mutate `O(R + X)`.", + " - One event.", + " # " + ] + }, + { + "name": "kill_identity", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's identity and sub-account information and slash the deposits.", + "", + " Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + " `Slash`. Verification request deposits are not returned; they should be cancelled", + " manually using `cancel_request`.", + "", + " The dispatch origin for this call must match `T::ForceOrigin`.", + "", + " - `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + " Emits `IdentityKilled` if successful.", + "", + " # ", + " - `O(R + S + X)`.", + " - One balance-reserve operation.", + " - `S + 2` storage mutations.", + " - One event.", + " # " + ] + }, + { + "name": "add_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Add the given account to the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + }, + { + "name": "data", + "type": "Data" + } + ], + "docs": [ + " Alter the associated name of the given sub-account.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "args": [ + { + "name": "sub", + "type": "LookupSource" + } + ], + "docs": [ + " Remove the given account from the sender's subs.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender.", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "args": [], + "docs": [ + " Remove the sender as a sub-account.", + "", + " Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + " to the sender (*not* the original depositor).", + "", + " The dispatch origin for this call must be _Signed_ and the sender must have a registered", + " super-identity.", + "", + " NOTE: This should not normally be used, but is provided in the case that the non-", + " controller of an account is maliciously registered as a sub-account." + ] + } + ], + "events": [ + { + "name": "IdentitySet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set or reset (which will remove all judgements). \\[who\\]" + ] + }, + { + "name": "IdentityCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned. \\[who, deposit\\]" + ] + }, + { + "name": "IdentityKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed. \\[who, deposit\\]" + ] + }, + { + "name": "JudgementRequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was asked from a registrar. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementUnrequested", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement request was retracted. \\[who, registrar_index\\]" + ] + }, + { + "name": "JudgementGiven", + "args": [ + "AccountId", + "RegistrarIndex" + ], + "docs": [ + " A judgement was given by a registrar. \\[target, registrar_index\\]" + ] + }, + { + "name": "RegistrarAdded", + "args": [ + "RegistrarIndex" + ], + "docs": [ + " A registrar was added. \\[registrar_index\\]" + ] + }, + { + "name": "SubIdentityAdded", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was added to an identity and the deposit paid. \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRemoved", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was removed from an identity and the deposit freed.", + " \\[sub, main, deposit\\]" + ] + }, + { + "name": "SubIdentityRevoked", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " A sub-identity was cleared, and the given deposit repatriated from the", + " main identity account to the sub-identity account. \\[sub, main, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "BasicDeposit", + "type": "BalanceOf", + "value": "0x007db52a2f0000000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity" + ] + }, + { + "name": "FieldDeposit", + "type": "BalanceOf", + "value": "0x00cd5627000000000000000000000000", + "docs": [ + " The amount held on deposit per additional field for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": "BalanceOf", + "value": "0x80f884b02e0000000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": "u32", + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxAdditionalFields", + "type": "u32", + "value": "0x64000000", + "docs": [ + " Maximum number of additional fields that may be stored in an ID. Needed to bound the I/O", + " required to access an identity, but can be pretty high." + ] + }, + { + "name": "MaxRegistrars", + "type": "u32", + "value": "0x14000000", + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + } + ], + "errors": [ + { + "name": "TooManySubAccounts", + "docs": [ + " Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "docs": [ + " Account isn't found." + ] + }, + { + "name": "NotNamed", + "docs": [ + " Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "docs": [ + " Empty index." + ] + }, + { + "name": "FeeChanged", + "docs": [ + " Fee is changed." + ] + }, + { + "name": "NoIdentity", + "docs": [ + " No identity found." + ] + }, + { + "name": "StickyJudgement", + "docs": [ + " Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "docs": [ + " Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "docs": [ + " Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "docs": [ + " The target is invalid." + ] + }, + { + "name": "TooManyFields", + "docs": [ + " Too many additional fields." + ] + }, + { + "name": "TooManyRegistrars", + "docs": [ + " Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "docs": [ + " Account ID is already named." + ] + }, + { + "name": "NotSub", + "docs": [ + " Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "docs": [ + " Sub-account isn't owned by sender." + ] + } + ], + "index": 28 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "AccountId", + "value": "(Vec,BalanceOf)", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": [ + { + "name": "proxy", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorised for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "add_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Register a proxy account for the sender that is able to make calls on its behalf.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to make a proxy.", + " - `proxy_type`: The permissions allowed for this proxy account.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Unregister a proxy account for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `proxy`: The account that the `caller` would like to remove as a proxy.", + " - `proxy_type`: The permissions currently enabled for the removed proxy account.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "remove_proxies", + "args": [], + "docs": [ + " Unregister all proxy accounts for the sender.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " WARNING: This may be called on accounts created by `anonymous`, however if done, then", + " the unreserved fees will be inaccessible. **All access to this account will be lost.**", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "anonymous", + "args": [ + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "delay", + "type": "BlockNumber" + }, + { + "name": "index", + "type": "u16" + } + ], + "docs": [ + " Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + " initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + " Requires a `Signed` origin.", + "", + " - `proxy_type`: The type of the proxy that the sender will be registered as over the", + " new account. This will almost always be the most permissive `ProxyType` possible to", + " allow for maximum flexibility.", + " - `index`: A disambiguation index, in case this is called multiple times in the same", + " transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + " want to use `0`.", + " - `delay`: The announcement period required of the initial proxy. Will generally be", + " zero.", + "", + " Fails with `Duplicate` if this has already been called in this transaction, from the", + " same sender, with the same parameters.", + "", + " Fails if there are insufficient funds to pay for deposit.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # ", + " TODO: Might be over counting 1 read" + ] + }, + { + "name": "kill_anonymous", + "args": [ + { + "name": "spawner", + "type": "AccountId" + }, + { + "name": "proxy_type", + "type": "ProxyType" + }, + { + "name": "index", + "type": "u16" + }, + { + "name": "height", + "type": "Compact" + }, + { + "name": "ext_index", + "type": "Compact" + } + ], + "docs": [ + " Removes a previously spawned anonymous proxy.", + "", + " WARNING: **All access to this account will be lost.** Any funds held in it will be", + " inaccessible.", + "", + " Requires a `Signed` origin, and the sender account must have been created by a call to", + " `anonymous` with corresponding parameters.", + "", + " - `spawner`: The account that originally called `anonymous` to create this account.", + " - `index`: The disambiguation index originally passed to `anonymous`. Probably `0`.", + " - `proxy_type`: The proxy type originally passed to `anonymous`.", + " - `height`: The height of the chain when the call to `anonymous` was processed.", + " - `ext_index`: The extrinsic index in which the call to `anonymous` was processed.", + "", + " Fails with `NoPermission` in case the caller is not a previously created anonymous", + " account whose `anonymous` call has corresponding parameters.", + "", + " # ", + " Weight is a function of the number of proxies the user has (P).", + " # " + ] + }, + { + "name": "announce", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Publish the hash of a proxy-call that will be made in the future.", + "", + " This must be called some number of blocks before the corresponding `proxy` is attempted", + " if the delay associated with the proxy relationship is greater than zero.", + "", + " No more than `MaxPending` announcements may be made at any one time.", + "", + " This will take a deposit of `AnnouncementDepositFactor` as well as", + " `AnnouncementDepositBase` if there are no other pending announcements.", + "", + " The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "remove_announcement", + "args": [ + { + "name": "real", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove a given announcement.", + "", + " May be called by a proxy account to remove a call they previously announced and return", + " the deposit.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `call_hash`: The hash of the call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "reject_announcement", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "call_hash", + "type": "CallHashOf" + } + ], + "docs": [ + " Remove the given announcement of a delegate.", + "", + " May be called by a target (proxied) account to remove a call that one of their delegates", + " (`delegate`) has announced they want to execute. The deposit is returned.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `delegate`: The account that previously announced the call.", + " - `call_hash`: The hash of the call to be made.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + }, + { + "name": "proxy_announced", + "args": [ + { + "name": "delegate", + "type": "AccountId" + }, + { + "name": "real", + "type": "AccountId" + }, + { + "name": "force_proxy_type", + "type": "Option" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Dispatch the given `call` from an account that the sender is authorized for through", + " `add_proxy`.", + "", + " Removes any corresponding announcement(s).", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Parameters:", + " - `real`: The account that the proxy will make a call on behalf of.", + " - `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + " - `call`: The call to be made by the `real` account.", + "", + " # ", + " Weight is a function of:", + " - A: the number of announcements made.", + " - P: the number of proxies the user has.", + " # " + ] + } + ], + "events": [ + { + "name": "ProxyExecuted", + "args": [ + "DispatchResult" + ], + "docs": [ + " A proxy was executed correctly, with the given \\[result\\]." + ] + }, + { + "name": "AnonymousCreated", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "u16" + ], + "docs": [ + " Anonymous account has been created by new proxy with given", + " disambiguation index and proxy type. \\[anonymous, who, proxy_type,", + " disambiguation_index\\]" + ] + }, + { + "name": "Announced", + "args": [ + "AccountId", + "AccountId", + "Hash" + ], + "docs": [ + " An announcement was placed to make a call in the future. \\[real, proxy, call_hash\\]" + ] + }, + { + "name": "ProxyAdded", + "args": [ + "AccountId", + "AccountId", + "ProxyType", + "BlockNumber" + ], + "docs": [ + " A proxy was added. \\[delegator, delegatee, proxy_type, delay\\]" + ] + } + ], + "constants": [ + { + "name": "ProxyDepositBase", + "type": "BalanceOf", + "value": "0x0084b2952e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": "BalanceOf", + "value": "0x8066ab13000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": "BalanceOf", + "value": "0x0084b2952e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": "BalanceOf", + "value": "0x00cd5627000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": [ + { + "name": "TooMany", + "docs": [ + " There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "docs": [ + " Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "docs": [ + " Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "docs": [ + " A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "docs": [ + " Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "docs": [ + " Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "docs": [ + " Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "docs": [ + " Cannot add self as proxy." + ] + } + ], + "index": 29 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "AccountId", + "key2": "[u8;32]", + "value": "Multisig", + "key2Hasher": "Blake2_128Concat" + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + }, + { + "name": "Calls", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "[u8;32]", + "value": "(OpaqueCall,AccountId,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": [ + { + "name": "as_multi_threshold_1", + "args": [ + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "call", + "type": "Call" + } + ], + "docs": [ + " Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `other_signatories`: The accounts (other than the sender) who are part of the", + " multi-signature, but do not participate in the approval process.", + " - `call`: The call to be executed.", + "", + " Result is equivalent to the dispatched result.", + "", + " # ", + " O(Z + C) where Z is the length of the call and C its execution weight.", + " -------------------------------", + " - DB Weight: None", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call", + "type": "OpaqueCall" + }, + { + "name": "store_call", + "type": "bool" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " If there are enough, then dispatch the call.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call`: The call to be executed.", + "", + " NOTE: Unless this is the final approval, you will generally want to use", + " `approve_as_multi` instead, since it only requires a hash of the call.", + "", + " Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + " on success, result is `Ok` and the result from the interior call, if it was executed,", + " may be found in the deposited `MultisigExecuted` event.", + "", + " # ", + " - `O(S + Z + Call)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - The weight of the `call`.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`.", + " -------------------------------", + " - DB Weight:", + " - Reads: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Writes: Multisig Storage, [Caller Account], Calls (if `store_call`)", + " - Plus Call Weight", + " # " + ] + }, + { + "name": "approve_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "maybe_timepoint", + "type": "Option" + }, + { + "name": "call_hash", + "type": "[u8;32]" + }, + { + "name": "max_weight", + "type": "Weight" + } + ], + "docs": [ + " Register approval for a dispatch to be made from a deterministic composite account if", + " approved by a total of `threshold - 1` of `other_signatories`.", + "", + " Payment: `DepositBase` will be reserved if this is the first approval, plus", + " `threshold` times `DepositFactor`. It is returned once this dispatch happens or", + " is cancelled.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + " not the first approval, then it must be `Some`, with the timepoint (block number and", + " transaction index) of the first approval transaction.", + " - `call_hash`: The hash of the call to be executed.", + "", + " NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - Up to one binary search and insert (`O(logS + S)`).", + " - I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + " - One event.", + " - Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account]", + " - Write: Multisig Storage, [Caller Account]", + " # " + ] + }, + { + "name": "cancel_as_multi", + "args": [ + { + "name": "threshold", + "type": "u16" + }, + { + "name": "other_signatories", + "type": "Vec" + }, + { + "name": "timepoint", + "type": "Timepoint" + }, + { + "name": "call_hash", + "type": "[u8;32]" + } + ], + "docs": [ + " Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + " for this operation will be unreserved on success.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " - `threshold`: The total number of approvals for this dispatch before it is executed.", + " - `other_signatories`: The accounts (other than the sender) who can approve this", + " dispatch. May not be empty.", + " - `timepoint`: The timepoint (block number and transaction index) of the first approval", + " transaction for this dispatch.", + " - `call_hash`: The hash of the call to be executed.", + "", + " # ", + " - `O(S)`.", + " - Up to one balance-reserve or unreserve operation.", + " - One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + " - One encode & hash, both of complexity `O(S)`.", + " - One event.", + " - I/O: 1 read `O(S)`, one remove.", + " - Storage: removes one item.", + " ----------------------------------", + " - DB Weight:", + " - Read: Multisig Storage, [Caller Account], Refund Account, Calls", + " - Write: Multisig Storage, [Caller Account], Refund Account, Calls", + " # " + ] + } + ], + "events": [ + { + "name": "NewMultisig", + "args": [ + "AccountId", + "AccountId", + "CallHash" + ], + "docs": [ + " A new multisig operation has begun. \\[approving, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigApproval", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been approved by someone.", + " \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigExecuted", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash", + "DispatchResult" + ], + "docs": [ + " A multisig operation has been executed. \\[approving, timepoint, multisig, call_hash\\]" + ] + }, + { + "name": "MultisigCancelled", + "args": [ + "AccountId", + "Timepoint", + "AccountId", + "CallHash" + ], + "docs": [ + " A multisig operation has been cancelled. \\[cancelling, timepoint, multisig, call_hash\\]" + ] + } + ], + "constants": [ + { + "name": "DepositBase", + "type": "BalanceOf", + "value": "0x008c61c52e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": "BalanceOf", + "value": "0x00d01213000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": "u16", + "value": "0x6400", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": [ + { + "name": "MinimumThreshold", + "docs": [ + " Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "docs": [ + " Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "docs": [ + " Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "docs": [ + " There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "docs": [ + " There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "docs": [ + " The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "docs": [ + " The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "docs": [ + " Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "docs": [ + " Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "docs": [ + " No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "docs": [ + " A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "docs": [ + " A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "docs": [ + " The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "docs": [ + " The data to be stored is already stored." + ] + } + ], + "index": 30 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": "BountyIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bounty", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BountyIndex", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_bounty", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "description", + "type": "Bytes" + } + ], + "docs": [ + " Propose a new bounty.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + " or slashed when rejected.", + "", + " - `curator`: The curator account whom will manage this bounty.", + " - `fee`: The curator fee.", + " - `value`: The total payment amount of this bounty, curator fee included.", + " - `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a bounty proposal. At a later time, the bounty will be funded and become active", + " and the original deposit will be returned.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "propose_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "curator", + "type": "LookupSource" + }, + { + "name": "fee", + "type": "Compact" + } + ], + "docs": [ + " Assign a curator to a funded bounty.", + "", + " May only be called from `T::ApproveOrigin`.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "unassign_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Unassign curator from a bounty.", + "", + " This function can only be called by the `RejectOrigin` a signed origin.", + "", + " If this function is called by the `RejectOrigin`, we assume that the curator is malicious", + " or inactive. As a result, we will slash the curator when possible.", + "", + " If the origin is the curator, we take this as a sign they are unable to do their job and", + " they willingly give up. We could slash them, but for now we allow them to recover their", + " deposit and exit without issue. (We may want to change this if it is abused.)", + "", + " Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + " anyone in the community to call out that a curator is not doing their due diligence, and", + " we should pick a new curator. In this case the curator should also be slashed.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "accept_curator", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Accept the curator role for a bounty.", + " A deposit will be reserved from curator and refund upon successful payout.", + "", + " May only be called from the curator.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "award_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Award bounty to a beneficiary account. The beneficiary will be able to claim the funds after a delay.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to award.", + " - `beneficiary`: The beneficiary account whom will receive the payout.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "claim_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Claim the payout from an awarded bounty after payout delay.", + "", + " The dispatch origin for this call must be the beneficiary of this bounty.", + "", + " - `bounty_id`: Bounty ID to claim.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "close_bounty", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + } + ], + "docs": [ + " Cancel a proposed or active bounty. All the funds will be sent to treasury and", + " the curator deposit will be unreserved if possible.", + "", + " Only `T::RejectOrigin` is able to cancel a bounty.", + "", + " - `bounty_id`: Bounty ID to cancel.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "extend_bounty_expiry", + "args": [ + { + "name": "bounty_id", + "type": "Compact" + }, + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Extend the expiry time of an active bounty.", + "", + " The dispatch origin for this call must be the curator of this bounty.", + "", + " - `bounty_id`: Bounty ID to extend.", + " - `remark`: additional information.", + "", + " # ", + " - O(1).", + " # " + ] + } + ], + "events": [ + { + "name": "BountyProposed", + "args": [ + "BountyIndex" + ], + "docs": [ + " New bounty proposal. \\[index\\]" + ] + }, + { + "name": "BountyRejected", + "args": [ + "BountyIndex", + "Balance" + ], + "docs": [ + " A bounty proposal was rejected; funds were slashed. \\[index, bond\\]" + ] + }, + { + "name": "BountyBecameActive", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty proposal is funded and became active. \\[index\\]" + ] + }, + { + "name": "BountyAwarded", + "args": [ + "BountyIndex", + "AccountId" + ], + "docs": [ + " A bounty is awarded to a beneficiary. \\[index, beneficiary\\]" + ] + }, + { + "name": "BountyClaimed", + "args": [ + "BountyIndex", + "Balance", + "AccountId" + ], + "docs": [ + " A bounty is claimed by beneficiary. \\[index, payout, beneficiary\\]" + ] + }, + { + "name": "BountyCanceled", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty is cancelled. \\[index\\]" + ] + }, + { + "name": "BountyExtended", + "args": [ + "BountyIndex" + ], + "docs": [ + " A bounty expiry is extended. \\[index\\]" + ] + } + ], + "constants": [ + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within bounty description." + ] + }, + { + "name": "BountyDepositBase", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": "BlockNumber", + "value": "0x00c20100", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": "BlockNumber", + "value": "0x80c61300", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "BountyCuratorDeposit", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of the curator fee that will be reserved upfront as deposit for bounty curator." + ] + }, + { + "name": "BountyValueMinimum", + "type": "BalanceOf", + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + } + ], + "errors": [ + { + "name": "InsufficientProposersBalance", + "docs": [ + " Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "docs": [ + " No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "docs": [ + " The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "docs": [ + " Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "docs": [ + " Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "docs": [ + " Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "docs": [ + " A bounty payout is pending.", + " To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "docs": [ + " The bounties cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 34 + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "Hash", + "value": "OpenTip", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Identity", + "key": "Hash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": [ + { + "name": "report_awesome", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + " `DataDepositPerByte` for each byte in `reason`.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'", + " - DbReads: `Reasons`, `Tips`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "retract_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + " If successful, the original deposit will be unreserved.", + "", + " The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + " must have been reported by the signing account through `report_awesome` (and not", + " through `tip_new`).", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " Emits `TipRetracted` if successful.", + "", + " # ", + " - Complexity: `O(1)`", + " - Depends on the length of `T::Hash` which is fixed.", + " - DbReads: `Tips`, `origin account`", + " - DbWrites: `Reasons`, `Tips`, `origin account`", + " # " + ] + }, + { + "name": "tip_new", + "args": [ + { + "name": "reason", + "type": "Bytes" + }, + { + "name": "who", + "type": "AccountId" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Give a tip for something new; no finder's fee will be taken.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + " - `who`: The account which should be credited for the tip.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `NewTip` if successful.", + "", + " # ", + " - Complexity: `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`", + " - DbReads: `Tippers`, `Reasons`", + " - DbWrites: `Reasons`, `Tips`", + " # " + ] + }, + { + "name": "tip", + "args": [ + { + "name": "hash", + "type": "Hash" + }, + { + "name": "tip_value", + "type": "Compact" + } + ], + "docs": [ + " Declare a tip value for an already-open tip.", + "", + " The dispatch origin for this call must be _Signed_ and the signing account must be a", + " member of the `Tippers` set.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + " - `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + " Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + " has started.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length", + " `T`, insert tip and check closing, `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`.", + " - DbReads: `Tippers`, `Tips`", + " - DbWrites: `Tips`", + " # " + ] + }, + { + "name": "close_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Close and payout a tip.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " The tip identified by `hash` must have finished its countdown period.", + "", + " - `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + " # ", + " - Complexity: `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length", + " `T`. `T` is charged as upper bound given by `ContainsLengthBound`. The actual cost", + " depends on the implementation of `T::Tippers`.", + " - DbReads: `Tips`, `Tippers`, `tip finder`", + " - DbWrites: `Reasons`, `Tips`, `Tippers`, `tip finder`", + " # " + ] + }, + { + "name": "slash_tip", + "args": [ + { + "name": "hash", + "type": "Hash" + } + ], + "docs": [ + " Remove and slash an already-open tip.", + "", + " May only be called from `T::RejectOrigin`.", + "", + " As a result, the finder is slashed and the deposits are lost.", + "", + " Emits `TipSlashed` if successful.", + "", + " # ", + " `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + " # " + ] + } + ], + "events": [ + { + "name": "NewTip", + "args": [ + "Hash" + ], + "docs": [ + " A new tip suggestion has been opened. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosing", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has reached threshold and is closing. \\[tip_hash\\]" + ] + }, + { + "name": "TipClosed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been closed. \\[tip_hash, who, payout\\]" + ] + }, + { + "name": "TipRetracted", + "args": [ + "Hash" + ], + "docs": [ + " A tip suggestion has been retracted. \\[tip_hash\\]" + ] + }, + { + "name": "TipSlashed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A tip suggestion has been slashed. \\[tip_hash, finder, deposit\\]" + ] + } + ], + "constants": [ + { + "name": "MaximumReasonLength", + "type": "u32", + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length." + ] + }, + { + "name": "DataDepositPerByte", + "type": "BalanceOf", + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "type": "BlockNumber", + "value": "0x40380000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": "Percent", + "value": "0x14", + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The amount held on deposit for placing a tip report." + ] + } + ], + "errors": [ + { + "name": "ReasonTooBig", + "docs": [ + " The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "docs": [ + " The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "docs": [ + " The tip hash is unknown." + ] + }, + { + "name": "NotFinder", + "docs": [ + " The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "docs": [ + " The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "docs": [ + " The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ], + "index": 35 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": "ElectionPhase" + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": "ReadySolution" + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": "RoundSnapshot" + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": "SolutionOrSnapshotSize" + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": "SubmissionIndicesOf" + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded set of `(score, index)`, where each `index` points to a value in", + " `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "u32", + "value": "SignedSubmissionOf", + "linked": false + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": "ElectionScore" + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": [ + { + "name": "submit_unsigned", + "args": [ + { + "name": "raw_solution", + "type": "RawSolution" + }, + { + "name": "witness", + "type": "SolutionOrSnapshotSize" + } + ], + "docs": [ + " Submit a solution for the unsigned phase.", + "", + " The dispatch origin fo this call must be __none__.", + "", + " This submission is checked on the fly. Moreover, this unsigned solution is only", + " validated when submitted to the pool from the **local** node. Effectively, this means", + " that only active validators can submit this transaction when authoring a block (similar", + " to an inherent).", + "", + " To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + " panic if the solution submitted by the validator is invalid in any way, effectively", + " putting their authoring reward at risk.", + "", + " No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "args": [ + { + "name": "maybe_next_score", + "type": "Option" + } + ], + "docs": [ + " Set a new value for `MinimumUntrustedScore`.", + "", + " Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + " This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "args": [ + { + "name": "supports", + "type": "Supports" + } + ], + "docs": [ + " Set a solution in the queue, to be handed out to the client of this pallet in the next", + " call to `ElectionProvider::elect`.", + "", + " This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + " The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + " feasibility check itself can in principle cause the election process to fail (due to", + " memory/weight constrains)." + ] + }, + { + "name": "submit", + "args": [ + { + "name": "raw_solution", + "type": "RawSolution" + }, + { + "name": "num_signed_submissions", + "type": "u32" + } + ], + "docs": [ + " Submit a solution for the signed phase.", + "", + " The dispatch origin fo this call must be __signed__.", + "", + " The solution is potentially queued, based on the claimed score and processed at the end", + " of the signed phase.", + "", + " A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + " might be rewarded, slashed, or get all or a part of the deposit back.", + "", + " # ", + " Queue size must be provided as witness data.", + " # " + ] + } + ], + "events": [ + { + "name": "SolutionStored", + "args": [ + "ElectionCompute", + "bool" + ], + "docs": [ + " A solution was stored with the given compute.", + "", + " If the solution is signed, this means that it hasn't yet been processed. If the", + " solution is unsigned, this means that it has also been processed.", + "", + " The `bool` is `true` when a previous solution was ejected to make room for this one." + ] + }, + { + "name": "ElectionFinalized", + "args": [ + "Option" + ], + "docs": [ + " The election has been finalized, with `Some` of the given computation, or else if the", + " election failed, `None`." + ] + }, + { + "name": "Rewarded", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "SignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The signed phase of the given round has started." + ] + }, + { + "name": "UnsignedPhaseStarted", + "args": [ + "u32" + ], + "docs": [ + " The unsigned phase of the given round has started." + ] + } + ], + "constants": [ + { + "name": "UnsignedPhase", + "type": "BlockNumber", + "value": "0x58020000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": "BlockNumber", + "value": "0x58020000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "SolutionImprovementThreshold", + "type": "Perbill", + "value": "0x20a10700", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" (in any phase)." + ] + }, + { + "name": "OffchainRepeat", + "type": "BlockNumber", + "value": "0x05000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": "TransactionPriority", + "value": "0x65666666666666e6", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "MinerMaxWeight", + "type": "Weight", + "value": "0xc084666557010000", + "docs": [ + " Maximum weight that the miner should consume.", + "", + " The miner will ensure that the total weight of the unsigned solution will not exceed", + " this value, based on [`WeightInfo::submit_unsigned`]." + ] + }, + { + "name": "SignedMaxSubmissions", + "type": "u32", + "value": "0x10000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": "Weight", + "value": "0xc084666557010000", + "docs": [ + " Maximum weight of a signed solution.", + "", + " This should probably be similar to [`Config::MinerMaxWeight`]." + ] + }, + { + "name": "SignedRewardBase", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositBase", + "type": "BalanceOf", + "value": "0x00a0db215d0000000000000000000000", + "docs": [ + " Base deposit for a signed solution." + ] + }, + { + "name": "SignedDepositByte", + "type": "BalanceOf", + "value": "0x787d0100000000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": "BalanceOf", + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MinerMaxLength", + "type": "u32", + "value": "0x00003600", + "docs": [ + " Maximum length (bytes) that the mined solution should consume.", + "", + " The miner will ensure that the total length of the unsigned solution will not exceed", + " this value." + ] + } + ], + "errors": [ + { + "name": "PreDispatchEarlySubmission", + "docs": [ + " Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "docs": [ + " Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "docs": [ + " Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "docs": [ + " The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "docs": [ + " The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "docs": [ + " Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "docs": [ + " The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "docs": [ + " OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "docs": [ + " Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "docs": [ + " `Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "docs": [ + " The call is not allowed at this point." + ] + } + ], + "index": 36 + } + ], + "extrinsic": { + "version": 4, + "signedExtensions": [ + "CheckSpecVersion", + "CheckTxVersion", + "CheckGenesis", + "CheckMortality", + "CheckNonce", + "CheckWeight", + "ChargeTransactionPayment", + "PrevalidateAttests" + ] + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-hex.ts b/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-hex.ts new file mode 100644 index 0000000..10b4d22 --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x6d6574610e7d02000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c01147068617365ac011450686173650001146576656e7450010445000118746f70696373b001185665633c543e0000500858636f6e7472616374735f6e6f64655f72756e74696d653052756e74696d654576656e7400011c1853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c697479040078015470616c6c65745f7574696c6974793a3a4576656e740002002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000400485472616e73616374696f6e5061796d656e7404008c01a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000600105375646f040090016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00070024436f6e747261637473040098018070616c6c65745f636f6e7472616374733a3a4576656e743c52756e74696d653e000800184173736574730400a4017470616c6c65745f6173736574733a3a4576656e743c52756e74696d653e00090000540c306672616d655f73797374656d1870616c6c6574144576656e740404540001184045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c6179657200010000780c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c747c01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747c0418526573756c740804540180044501640108084f6b040080000000000c4572720400640000010000800000040000840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001541c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400010c14537564696404012c7375646f5f726573756c747c01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e6765640401286f6c645f7375646f65729401504f7074696f6e3c543a3a4163636f756e7449643e04ac546865206f6c64207375646f206b6579206966206f6e65207761732070726576696f75736c79207365742e010478546865207375646f206b657920686173206265656e20757064617465642e285375646f4173446f6e6504012c7375646f5f726573756c747c01384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0204c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749404184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000980c4070616c6c65745f636f6e7472616374731870616c6c6574144576656e7404045400012830496e7374616e7469617465640801206465706c6f796572000130543a3a4163636f756e744964000120636f6e7472616374000130543a3a4163636f756e744964000004d8436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e285465726d696e61746564080120636f6e7472616374000130543a3a4163636f756e744964048454686520636f6e7472616374207468617420776173207465726d696e617465642e012c62656e6566696369617279000130543a3a4163636f756e74496404e4546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e6365011868436f6e747261637420686173206265656e2072656d6f7665642e001823204e6f7465003d01546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420616e6420656d697474696e672074686973206576656e742069732062792063616c6c696e6744607365616c5f7465726d696e617465602e28436f646553746f7265640c0124636f64655f6861736830011c543a3a486173680001306465706f7369745f68656c6418013042616c616e63654f663c543e00012075706c6f61646572000130543a3a4163636f756e744964000204b4436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c436f6e7472616374456d6974746564080120636f6e7472616374000130543a3a4163636f756e744964049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746134011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e03049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e2c436f646552656d6f7665640c0124636f64655f6861736830011c543a3a486173680001406465706f7369745f72656c656173656418013042616c616e63654f663c543e00011c72656d6f766572000130543a3a4163636f756e744964000404ac4120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e4c436f6e7472616374436f6465557064617465640c0120636f6e7472616374000130543a3a4163636f756e744964048c54686520636f6e7472616374207468617420686173206265656e20757064617465642e01346e65775f636f64655f6861736830011c543a3a4861736804b04e657720636f646520686173682074686174207761732073657420666f722074686520636f6e74726163742e01346f6c645f636f64655f6861736830011c543a3a48617368048c50726576696f757320636f64652068617368206f662074686520636f6e74726163742e0504784120636f6e7472616374277320636f64652077617320757064617465642e1843616c6c656408011863616c6c65729c01244f726967696e3c543e04745468652063616c6c6572206f66207468652060636f6e7472616374602e0120636f6e7472616374000130543a3a4163636f756e744964047454686520636f6e74726163742074686174207761732063616c6c65642e061c11014120636f6e7472616374207761732063616c6c656420656974686572206279206120706c61696e206163636f756e74206f7220616e6f7468657220636f6e74726163742e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e3844656c656761746543616c6c6564080120636f6e7472616374000130543a3a4163636f756e74496408210154686520636f6e7472616374207468617420706572666f726d6564207468652064656c65676174652063616c6c20616e642068656e636520696e2077686f736520636f6e74657874707468652060636f64655f68617368602069732065786563757465642e0124636f64655f6861736830012c436f6465486173683c543e049c54686520636f646520686173682074686174207761732064656c65676174652063616c6c65642e071c9c4120636f6e74726163742064656c65676174652063616c6c6564206120636f646520686173682e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e8053746f726167654465706f7369745472616e73666572726564416e6448656c640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000804f4536f6d652066756e64732068617665206265656e207472616e7366657272656420616e642068656c642061732073746f72616765206465706f7369742e9053746f726167654465706f7369745472616e73666572726564416e6452656c65617365640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000904f8536f6d652073746f72616765206465706f7369742066756e64732068617665206265656e207472616e7366657272656420616e642072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c084070616c6c65745f636f6e747261637473184f726967696e04045401a0010810526f6f74000000185369676e65640400000130543a3a4163636f756e74496400010000a00858636f6e7472616374735f6e6f64655f72756e74696d651c52756e74696d6500000000a40c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001601c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6534011c5665633c75383e00011873796d626f6c34011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656ea80110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a80000050000ac08306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000b00000023000b4000002b800b800000408101000bc08306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ec0014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65c4016473705f72756e74696d653a3a52756e74696d65537472696e670000c00000061000c40000050200c80c306672616d655f73797374656d1870616c6c65741043616c6c0404540001201872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73cc01345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973d401205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecc000002d000d000000408343400d40000023400d80c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373dc01845065724469737061746368436c6173733c57656967687473506572436c6173733e0000dc0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401e0000c01186e6f726d616ce001045400012c6f7065726174696f6e616ce00104540001246d616e6461746f7279e00104540000e00c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963e401384f7074696f6e3c5765696768743e0001246d61785f746f74616ce401384f7074696f6e3c5765696768743e0001207265736572766564e401384f7074696f6e3c5765696768743e0000e404184f7074696f6e04045401240108104e6f6e6500000010536f6d650400240000010000e80c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178ec01545065724469737061746368436c6173733c7533323e0000ec0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000f0082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c7536340000f4082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65c4013452756e74696d65537472696e67000124696d706c5f6e616d65c4013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973f8011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e08010875380000f8040c436f7704045401fc000400fc000000fc000002010100010100000408050110000501000003080000000800090100000504000d010c306672616d655f73797374656d1870616c6c6574144572726f720404540001183c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e046c4572726f7220666f72207468652053797374656d2070616c6c657411010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540130045300000400b001185665633c543e000015010c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c731901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465780901010c75313600011063616c6c1d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c731901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696e51010154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c1d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c731901017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c1d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19010000021d01001d010858636f6e7472616374735f6e6f64655f72756e74696d652c52756e74696d6543616c6c00011c1853797374656d0400c801ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400150101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0002002454696d657374616d700400210101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003002042616c616e6365730400250101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000400105375646f04003d0101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00070024436f6e7472616374730400410101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e7472616374732c2052756e74696d653e0008001841737365747304004d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e0009000021010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c08045400044900011c507472616e736665725f616c6c6f775f646561746808011064657374290101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756535010128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365290101504163636f756e7449644c6f6f6b75704f663c543e00011064657374290101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756535010128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374290101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756535010128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374290101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665a80110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686f390101445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656535010128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780180011408496404000001244163636f756e74496400000014496e64657804002d0101304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400310101205b75383b2032305d000400002d010000068000310100000314000000080035010000061800390100000200003d010c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000110107375646f04011063616c6c1d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000454536565205b6050616c6c65743a3a7375646f605d2e547375646f5f756e636865636b65645f77656967687408011063616c6c1d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400010498536565205b6050616c6c65743a3a7375646f5f756e636865636b65645f776569676874605d2e1c7365745f6b657904010c6e6577290101504163636f756e7449644c6f6f6b75704f663c543e00020460536565205b6050616c6c65743a3a7365745f6b6579605d2e1c7375646f5f617308010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c1d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030460536565205b6050616c6c65743a3a7375646f5f6173605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41010c4070616c6c65745f636f6e7472616374731870616c6c65741043616c6c0404540001283c63616c6c5f6f6c645f77656967687414011064657374290101504163636f756e7449644c6f6f6b75704f663c543e00011476616c75653501013042616c616e63654f663c543e0001246761735f6c696d69742801244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746134011c5665633c75383e00000480536565205b6050616c6c65743a3a63616c6c5f6f6c645f776569676874605d2e80696e7374616e74696174655f776974685f636f64655f6f6c645f77656967687418011476616c75653501013042616c616e63654f663c543e0001246761735f6c696d69742801244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646534011c5665633c75383e0001106461746134011c5665633c75383e00011073616c7434011c5665633c75383e000104c4536565205b6050616c6c65743a3a696e7374616e74696174655f776974685f636f64655f6f6c645f776569676874605d2e58696e7374616e74696174655f6f6c645f77656967687418011476616c75653501013042616c616e63654f663c543e0001246761735f6c696d69742801244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736830012c436f6465486173683c543e0001106461746134011c5665633c75383e00011073616c7434011c5665633c75383e0002049c536565205b6050616c6c65743a3a696e7374616e74696174655f6f6c645f776569676874605d2e2c75706c6f61645f636f64650c0110636f646534011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e00012c64657465726d696e69736d4901012c44657465726d696e69736d00030470536565205b6050616c6c65743a3a75706c6f61645f636f6465605d2e2c72656d6f76655f636f6465040124636f64655f6861736830012c436f6465486173683c543e00040470536565205b6050616c6c65743a3a72656d6f76655f636f6465605d2e207365745f636f646508011064657374290101504163636f756e7449644c6f6f6b75704f663c543e000124636f64655f6861736830012c436f6465486173683c543e00050464536565205b6050616c6c65743a3a7365745f636f6465605d2e1063616c6c14011064657374290101504163636f756e7449644c6f6f6b75704f663c543e00011476616c75653501013042616c616e63654f663c543e0001246761735f6c696d697424011857656967687400015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746134011c5665633c75383e00060454536565205b6050616c6c65743a3a63616c6c605d2e54696e7374616e74696174655f776974685f636f646518011476616c75653501013042616c616e63654f663c543e0001246761735f6c696d697424011857656967687400015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646534011c5665633c75383e0001106461746134011c5665633c75383e00011073616c7434011c5665633c75383e00070498536565205b6050616c6c65743a3a696e7374616e74696174655f776974685f636f6465605d2e2c696e7374616e746961746518011476616c75653501013042616c616e63654f663c543e0001246761735f6c696d697424011857656967687400015473746f726167655f6465706f7369745f6c696d6974450101c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736830012c436f6465486173683c543e0001106461746134011c5665633c75383e00011073616c7434011c5665633c75383e00080470536565205b6050616c6c65743a3a696e7374616e7469617465605d2e1c6d6967726174650401307765696768745f6c696d697424011857656967687400090460536565205b6050616c6c65743a3a6d696772617465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e450104184f7074696f6e0404540135010108104e6f6e6500000010536f6d6504003501000001000049010c4070616c6c65745f636f6e747261637473107761736d2c44657465726d696e69736d00010820456e666f726365640000001c52656c61786564000100004d010c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000180186372656174650c01086964c0014c543a3a41737365744964506172616d6574657200011461646d696e290101504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e63650000045c536565205b6050616c6c65743a3a637265617465605d2e30666f7263655f6372656174651001086964c0014c543a3a41737365744964506172616d657465720001146f776e6572290101504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74a80110626f6f6c00012c6d696e5f62616c616e636535010128543a3a42616c616e636500010474536565205b6050616c6c65743a3a666f7263655f637265617465605d2e3473746172745f64657374726f790401086964c0014c543a3a41737365744964506172616d6574657200020478536565205b6050616c6c65743a3a73746172745f64657374726f79605d2e4064657374726f795f6163636f756e74730401086964c0014c543a3a41737365744964506172616d6574657200030484536565205b6050616c6c65743a3a64657374726f795f6163636f756e7473605d2e4464657374726f795f617070726f76616c730401086964c0014c543a3a41737365744964506172616d6574657200040488536565205b6050616c6c65743a3a64657374726f795f617070726f76616c73605d2e3866696e6973685f64657374726f790401086964c0014c543a3a41737365744964506172616d657465720005047c536565205b6050616c6c65743a3a66696e6973685f64657374726f79605d2e106d696e740c01086964c0014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e636500060454536565205b6050616c6c65743a3a6d696e74605d2e106275726e0c01086964c0014c543a3a41737365744964506172616d6574657200010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e636500070454536565205b6050616c6c65743a3a6275726e605d2e207472616e736665720c01086964c0014c543a3a41737365744964506172616d65746572000118746172676574290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e636500080464536565205b6050616c6c65743a3a7472616e73666572605d2e4c7472616e736665725f6b6565705f616c6976650c01086964c0014c543a3a41737365744964506172616d65746572000118746172676574290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e636500090490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e38666f7263655f7472616e736665721001086964c0014c543a3a41737365744964506172616d65746572000118736f75726365290101504163636f756e7449644c6f6f6b75704f663c543e00011064657374290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e6365000a047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e18667265657a650801086964c0014c543a3a41737365744964506172616d6574657200010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e000b045c536565205b6050616c6c65743a3a667265657a65605d2e10746861770801086964c0014c543a3a41737365744964506172616d6574657200010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e000c0454536565205b6050616c6c65743a3a74686177605d2e30667265657a655f61737365740401086964c0014c543a3a41737365744964506172616d65746572000d0474536565205b6050616c6c65743a3a667265657a655f6173736574605d2e28746861775f61737365740401086964c0014c543a3a41737365744964506172616d65746572000e046c536565205b6050616c6c65743a3a746861775f6173736574605d2e487472616e736665725f6f776e6572736869700801086964c0014c543a3a41737365744964506172616d657465720001146f776e6572290101504163636f756e7449644c6f6f6b75704f663c543e000f048c536565205b6050616c6c65743a3a7472616e736665725f6f776e657273686970605d2e207365745f7465616d1001086964c0014c543a3a41737365744964506172616d65746572000118697373756572290101504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e290101504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572290101504163636f756e7449644c6f6f6b75704f663c543e00100464536565205b6050616c6c65743a3a7365745f7465616d605d2e307365745f6d657461646174611001086964c0014c543a3a41737365744964506172616d657465720001106e616d6534011c5665633c75383e00011873796d626f6c34011c5665633c75383e000120646563696d616c73080108753800110474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e38636c6561725f6d657461646174610401086964c0014c543a3a41737365744964506172616d657465720012047c536565205b6050616c6c65743a3a636c6561725f6d65746164617461605d2e48666f7263655f7365745f6d657461646174611401086964c0014c543a3a41737365744964506172616d657465720001106e616d6534011c5665633c75383e00011873796d626f6c34011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656ea80110626f6f6c0013048c536565205b6050616c6c65743a3a666f7263655f7365745f6d65746164617461605d2e50666f7263655f636c6561725f6d657461646174610401086964c0014c543a3a41737365744964506172616d6574657200140494536565205b6050616c6c65743a3a666f7263655f636c6561725f6d65746164617461605d2e48666f7263655f61737365745f7374617475732001086964c0014c543a3a41737365744964506172616d657465720001146f776e6572290101504163636f756e7449644c6f6f6b75704f663c543e000118697373756572290101504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e290101504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572290101504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e636535010128543a3a42616c616e636500013469735f73756666696369656e74a80110626f6f6c00012469735f66726f7a656ea80110626f6f6c0015048c536565205b6050616c6c65743a3a666f7263655f61737365745f737461747573605d2e40617070726f76655f7472616e736665720c01086964c0014c543a3a41737365744964506172616d6574657200012064656c6567617465290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e636500160484536565205b6050616c6c65743a3a617070726f76655f7472616e73666572605d2e3c63616e63656c5f617070726f76616c0801086964c0014c543a3a41737365744964506172616d6574657200012064656c6567617465290101504163636f756e7449644c6f6f6b75704f663c543e00170480536565205b6050616c6c65743a3a63616e63656c5f617070726f76616c605d2e54666f7263655f63616e63656c5f617070726f76616c0c01086964c0014c543a3a41737365744964506172616d657465720001146f776e6572290101504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465290101504163636f756e7449644c6f6f6b75704f663c543e00180498536565205b6050616c6c65743a3a666f7263655f63616e63656c5f617070726f76616c605d2e447472616e736665725f617070726f7665641001086964c0014c543a3a41737365744964506172616d657465720001146f776e6572290101504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e290101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7435010128543a3a42616c616e636500190488536565205b6050616c6c65743a3a7472616e736665725f617070726f766564605d2e14746f7563680401086964c0014c543a3a41737365744964506172616d65746572001a0458536565205b6050616c6c65743a3a746f756368605d2e18726566756e640801086964c0014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726ea80110626f6f6c001b045c536565205b6050616c6c65743a3a726566756e64605d2e3c7365745f6d696e5f62616c616e63650801086964c0014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c0480536565205b6050616c6c65743a3a7365745f6d696e5f62616c616e6365605d2e2c746f7563685f6f746865720801086964c0014c543a3a41737365744964506172616d6574657200010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e001d0470536565205b6050616c6c65743a3a746f7563685f6f74686572605d2e30726566756e645f6f746865720801086964c0014c543a3a41737365744964506172616d6574657200010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e001e0474536565205b6050616c6c65743a3a726566756e645f6f74686572605d2e14626c6f636b0801086964c0014c543a3a41737365744964506172616d6574657200010c77686f290101504163636f756e7449644c6f6f6b75704f663c543e001f0458536565205b6050616c6c65743a3a626c6f636b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e51010858636f6e7472616374735f6e6f64655f72756e74696d65304f726967696e43616c6c65720001081873797374656d0400550101746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e00000010566f69640400590101410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640001000055010c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200005901081c73705f636f726510566f6964000100005d010c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e61010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540165010453000004006d0101185665633c543e000065010c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964050101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e736901011c526561736f6e73000069010c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200006d0100000265010071010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017501045300000400790101185665633c543e000075010c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720105011c42616c616e6365011800080108696405010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000079010000027501007d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540181010453000004008d0101185665633c543e000081010c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640185011c42616c616e63650118000801086964850101084964000118616d6f756e7418011c42616c616e6365000085010858636f6e7472616374735f6e6f64655f72756e74696d654452756e74696d65486f6c64526561736f6e00010424436f6e74726163747304008901017070616c6c65745f636f6e7472616374733a3a486f6c64526561736f6e0008000089010c4070616c6c65745f636f6e7472616374731870616c6c657428486f6c64526561736f6e00010860436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f73697452657365727665000100008d0100000281010091010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019501045300000400990101185665633c543e000095010c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e740808496401801c42616c616e636501180008010869648001084964000118616d6f756e7418011c42616c616e6365000099010000029501009d010c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001283856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804884e756d626572206f6620686f6c64732065786365656420604d6178486f6c6473602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea1010c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000a501086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000a9010c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000047c53656e646572206d75737420626520746865205375646f206163636f756e7404644572726f7220666f7220746865205375646f2070616c6c6574ad010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000b1010c4070616c6c65745f636f6e747261637473107761736d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f7369743501013042616c616e63654f663c543e000120726566636f756e7428010c75363400012c64657465726d696e69736d4901012c44657465726d696e69736d000120636f64655f6c656e10010c7533320000b5010c4070616c6c65745f636f6e7472616374731c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f6964b9010118547269654964000124636f64655f6861736830012c436f6465486173683c543e00013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e00015464656c65676174655f646570656e64656e63696573bd01011d01426f756e64656442547265654d61703c436f6465486173683c543e2c2042616c616e63654f663c543e2c20543a3a0a4d617844656c6567617465446570656e64656e636965733e0000b9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000bd010c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013004560118045300000400c101013842547265654d61703c4b2c20563e0000c101042042547265654d617008044b013004560118000400c501000000c501000002c90100c90100000408301800cd010c4070616c6c65745f636f6e7472616374731c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c7533320000d1010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000d5010c4070616c6c65745f636f6e747261637473207363686564756c65205363686564756c6504045400000c01186c696d697473d90101184c696d69747300014c696e737472756374696f6e5f77656967687473dd010154496e737472756374696f6e576569676874733c543e00013c686f73745f666e5f77656967687473e1010140486f7374466e576569676874733c543e0000d9010c4070616c6c65745f636f6e747261637473207363686564756c65184c696d69747300002801306576656e745f746f7069637310010c75333200011c676c6f62616c7310010c7533320001186c6f63616c7310010c753332000128706172616d657465727310010c7533320001306d656d6f72795f706167657310010c7533320001287461626c655f73697a6510010c75333200013462725f7461626c655f73697a6510010c75333200012c7375626a6563745f6c656e10010c75333200012c7061796c6f61645f6c656e10010c75333200013872756e74696d655f6d656d6f727910010c7533320000dd010c4070616c6c65745f636f6e747261637473207363686564756c6548496e737472756374696f6e5765696768747304045400000401106261736510010c7533320000e1010c4070616c6c65745f636f6e747261637473207363686564756c6534486f7374466e576569676874730404540000fc011863616c6c657224011857656967687400012c69735f636f6e7472616374240118576569676874000124636f64655f686173682401185765696768740001346f776e5f636f64655f6861736824011857656967687400014063616c6c65725f69735f6f726967696e24011857656967687400013863616c6c65725f69735f726f6f7424011857656967687400011c616464726573732401185765696768740001206761735f6c65667424011857656967687400011c62616c616e636524011857656967687400014476616c75655f7472616e7366657272656424011857656967687400013c6d696e696d756d5f62616c616e6365240118576569676874000130626c6f636b5f6e756d62657224011857656967687400010c6e6f772401185765696768740001347765696768745f746f5f666565240118576569676874000114696e707574240118576569676874000138696e7075745f7065725f62797465240118576569676874000120722372657475726e24011857656967687400013c72657475726e5f7065725f627974652401185765696768740001247465726d696e61746524011857656967687400011872616e646f6d2401185765696768740001346465706f7369745f6576656e7424011857656967687400015c6465706f7369745f6576656e745f7065725f746f7069632401185765696768740001586465706f7369745f6576656e745f7065725f6279746524011857656967687400013464656275675f6d65737361676524011857656967687400015864656275675f6d6573736167655f7065725f6279746524011857656967687400012c7365745f73746f726167652401185765696768740001607365745f73746f726167655f7065725f6e65775f627974652401185765696768740001607365745f73746f726167655f7065725f6f6c645f627974652401185765696768740001347365745f636f64655f68617368240118576569676874000134636c6561725f73746f72616765240118576569676874000158636c6561725f73746f726167655f7065725f62797465240118576569676874000140636f6e7461696e735f73746f72616765240118576569676874000164636f6e7461696e735f73746f726167655f7065725f6279746524011857656967687400012c6765745f73746f726167652401185765696768740001506765745f73746f726167655f7065725f6279746524011857656967687400013074616b655f73746f7261676524011857656967687400015474616b655f73746f726167655f7065725f627974652401185765696768740001207472616e7366657224011857656967687400011063616c6c24011857656967687400013464656c65676174655f63616c6c24011857656967687400015c63616c6c5f7472616e736665725f73757263686172676524011857656967687400015063616c6c5f7065725f636c6f6e65645f6279746524011857656967687400012c696e7374616e7469617465240118576569676874000178696e7374616e74696174655f7472616e736665725f737572636861726765240118576569676874000168696e7374616e74696174655f7065725f696e7075745f62797465240118576569676874000164696e7374616e74696174655f7065725f73616c745f62797465240118576569676874000134686173685f736861325f323536240118576569676874000158686173685f736861325f3235365f7065725f6279746524011857656967687400013c686173685f6b656363616b5f323536240118576569676874000160686173685f6b656363616b5f3235365f7065725f6279746524011857656967687400013c686173685f626c616b65325f323536240118576569676874000160686173685f626c616b65325f3235365f7065725f6279746524011857656967687400013c686173685f626c616b65325f313238240118576569676874000160686173685f626c616b65325f3132385f7065725f6279746524011857656967687400013465636473615f7265636f76657224011857656967687400015065636473615f746f5f6574685f61646472657373240118576569676874000138737232353531395f76657269667924011857656967687400015c737232353531395f7665726966795f7065725f627974652401185765696768740001407265656e7472616e63655f636f756e742401185765696768740001606163636f756e745f7265656e7472616e63655f636f756e7424011857656967687400014c696e7374616e74696174696f6e5f6e6f6e636524011857656967687400015c6164645f64656c65676174655f646570656e64656e637924011857656967687400016872656d6f76655f64656c65676174655f646570656e64656e63792401185765696768740000e5010c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000e901084070616c6c65745f636f6e7472616374732c456e7669726f6e6d656e7404045400001801286163636f756e745f6964ed01017c456e7669726f6e6d656e74547970653c4163636f756e7449644f663c543e3e00011c62616c616e6365f1010174456e7669726f6e6d656e74547970653c42616c616e63654f663c543e3e00011068617368f50101c8456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a486173683e000118686173686572f90101d4456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368696e673e00012474696d657374616d7001020170456e7669726f6e6d656e74547970653c4d6f6d656e744f663c543e3e000130626c6f636b5f6e756d62657205020188456e7669726f6e6d656e74547970653c426c6f636b4e756d626572466f723c543e3e0000ed01084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540100000000f101084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540118000000f501084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540130000000f901084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401fd01000000fd010c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000000102084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e7454797065040454012c0000000502084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e7454797065040454011000000009020c4070616c6c65745f636f6e7472616374731870616c6c6574144572726f720404540001883c496e76616c69645363686564756c650000041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730001043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000204b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c0003040101546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f6465546f6f4c617267650007083d0154686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468654463757272656e74207363686564756c652e30436f64654e6f74466f756e64000804c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000904d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473000a0425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000b042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000c0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000d04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000e0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000f044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e67001004d8546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730011041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e404e6f436861696e457874656e73696f6e00120c450154686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c74734d01696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e7472616374733069732072656a65637465642e444475706c6963617465436f6e7472616374001304c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200140cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640015100d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e5d01546865206f6e6c79206f74686572206361757365206973207468617420612063616c6c2066726f6d206120636f6e747261637420696e746f207468652072756e74696d6520747269656420746f2063616c6c206261636b4901696e746f206070616c6c65742d636f6e747261637473602e205468697320776f756c64206d616b65207468652077686f6c652070616c6c6574207265656e7472616e7420776974682072656761726420746fbc636f6e747261637420636f646520657865637574696f6e207768696368206973206e6f7420737570706f727465642e7053746f726167654465706f7369744e6f74456e6f75676846756e647300160421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640017040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e5573650018044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001910250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001a20f854686520636f6e7472616374277320636f64652077617320666f756e6420746f20626520696e76616c696420647572696e672076616c69646174696f6e2e004d01546865206d6f7374206c696b656c79206361757365206f662074686973206973207468617420616e20415049207761732075736564207768696368206973206e6f7420737570706f727465642062792074686551016e6f64652e20546869732068617070656e7320696620616e206f6c646572206e6f6465206973207573656420776974682061206e65772076657273696f6e206f6620696e6b212e20547279207570646174696e67a8796f7572206e6f646520746f20746865206e657765737420617661696c61626c652076657273696f6e2e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c6564a8627920737570706c79696e6720602d6c72756e74696d653a3a636f6e7472616374733d6465627567602e3c496e64657465726d696e6973746963001b042101416e20696e64657465726d697374696320636f646520776173207573656420696e206120636f6e746578742077686572652074686973206973206e6f74207065726d69747465642e4c4d6967726174696f6e496e50726f6772657373001c042501412070656e64696e67206d6967726174696f6e206e6565647320746f20636f6d706c657465206265666f7265207468652065787472696e7369632063616e2062652063616c6c65642e504e6f4d6967726174696f6e506572666f726d6564001d040d014d6967726174652064697370617463682063616c6c2077617320617474656d7074656420627574206e6f206d6967726174696f6e2077617320706572666f726d65642e784d617844656c6567617465446570656e64656e6369657352656163686564001e04150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64001f04150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002004f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002104290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d020c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74a80110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c7533320001187374617475731102012c4173736574537461747573000011020c3470616c6c65745f6173736574731474797065732c417373657453746174757300010c104c6976650000001846726f7a656e0001002844657374726f79696e670002000015020000040810000019020c3470616c6c65745f6173736574731474797065733041737365744163636f756e74101c42616c616e63650118384465706f73697442616c616e636501181445787472610180244163636f756e74496401000010011c62616c616e636518011c42616c616e63650001187374617475731d0201344163636f756e74537461747573000118726561736f6e210201a84578697374656e6365526561736f6e3c4465706f73697442616c616e63652c204163636f756e7449643e0001146578747261800114457874726100001d020c3470616c6c65745f617373657473147479706573344163636f756e7453746174757300010c184c69717569640000001846726f7a656e0001001c426c6f636b65640002000021020c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e081c42616c616e63650118244163636f756e7449640100011420436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e6465640003002c4465706f73697446726f6d08000001244163636f756e744964000018011c42616c616e63650004000025020000040c1000000029020c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500002d020c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e670131020014011c6465706f7369741801384465706f73697442616c616e63650001106e616d6531020134426f756e646564537472696e6700011873796d626f6c31020134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656ea80110626f6f6c000031020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000035020c3470616c6c65745f6173736574731870616c6c6574144572726f720804540004490001502842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f72048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3902102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730129011043616c6c011d01245369676e6174757265013d02144578747261015502000400340000003d02082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040041020148656432353531393a3a5369676e61747572650000001c53723235353139040049020148737232353531393a3a5369676e617475726500010014456364736104004d02014065636473613a3a5369676e61747572650002000041020c1c73705f636f72651c65643235353139245369676e617475726500000400450201205b75383b2036345d0000450200000340000000080049020c1c73705f636f72651c73723235353139245369676e617475726500000400450201205b75383b2036345d00004d020c1c73705f636f7265146563647361245369676e617475726500000400510201205b75383b2036355d0000510200000341000000080055020000042059025d0261026502690271027502790200590210306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000005d0210306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000610210306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000650210306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000690210306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004006d02010c45726100006d02102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000710210306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400c00120543a3a4e6f6e63650000750210306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000007902086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e74040454000004003501013042616c616e63654f663c543e0000281853797374656d011853797374656d401c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040230b40400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000bc04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100a80400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100a80400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000ac040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e01c801541830426c6f636b57656967687473d8f901025b1f5d000b00204aa9d10113ffffffffffffffffc2a0a91d00010bd05f9fa62e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf010000c2a0a91d00010bd0e7f110a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040c2a0a91d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468e83000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874f04040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ef4f102607375627374726174652d636f6e7472616374732d6e6f6465607375627374726174652d636f6e7472616374732d6e6f646501000000640000000100000028df6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab5270590300000068b66ba122c93fa70200000001000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e28535335385072656669780901082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e010d01006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100110104000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e00000000011c5574696c697479000115010178044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e015d01022454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e244469645570646174650100a8040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0121010004344d696e696d756d506572696f642c200500000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402006101040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e20526573657276657301010402007101040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c647301010402007d010400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020091010400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e012501018414484578697374656e7469616c4465706f736974184000ca9a3b00000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e204d6178486f6c647310103200000004190120546865206d6178696d756d206e756d626572206f6620686f6c647320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e284d6178467265657a657310100000000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e019d010428417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e0000000005485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100a10140000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100a50104000000018c04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c6974706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f7269747960004d0120546869732076616c7565206973206d756c7469706c656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e0006105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e013d0101900001a9010724436f6e7472616374730124436f6e7472616374731c305072697374696e65436f64650001040630ad01040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e28436f6465496e666f4f660001040630b101040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e144e6f6e636501002c200000000000000000581d0120546869732069732061202a2a6d6f6e6f746f6e69632a2a20636f756e74657220696e6372656d656e746564206f6e20636f6e747261637420696e7374616e74696174696f6e2e0005012054686973206973207573656420696e206f7264657220746f2067656e657261746520756e6971756520747269652069647320666f7220636f6e7472616374732e2901205468652074726965206964206f662061206e657720636f6e74726163742069732063616c63756c617465642066726f6d2068617368286163636f756e745f69642c206e6f6e6365292e350120546865206e6f6e63652069732072657175697265642062656361757365206f74686572776973652074686520666f6c6c6f77696e672073657175656e636520776f756c64206c65616420746f84206120706f737369626c6520636f6c6c6973696f6e206f662073746f726167653a006820312e204372656174652061206e657720636f6e74726163742e6c20322e205465726d696e6174652074686520636f6e74726163742efc20332e20496d6d6564696174656c792072656372656174652074686520636f6e74726163742077697468207468652073616d65206163636f756e745f69642e00450120546869732069732062616420626563617573652074686520636f6e74656e7473206f6620612074726965206172652064656c65746564206c617a696c7920616e64207468657265206d6967687420626559012073746f72616765206f6620746865206f6c6420696e7374616e74696174696f6e207374696c6c20696e206974207768656e20746865206e657720636f6e747261637420697320637265617465642e20506c656173655901206e6f746520746861742077652063616e2774207265706c6163652074686520636f756e7465722062792074686520626c6f636b206e756d6265722062656361757365207468652073657175656e63652061626f766551012063616e2068617070656e20696e207468652073616d6520626c6f636b2e20576520616c736f2063616e2774206b65657020746865206163636f756e7420636f756e74657220696e206d656d6f7279206f6e6c79490120626563617573652073746f7261676520697320746865206f6e6c792077617920746f20636f6d6d756e6963617465206163726f737320646966666572656e742065787472696e7369637320696e20746865302073616d6520626c6f636b2e001c2023204e6f7465003d0120446f206e6f742075736520697420746f2064657465726d696e6520746865206e756d626572206f6620636f6e7472616374732e20497420776f6e27742062652064656372656d656e74656420696664206120636f6e74726163742069732064657374726f7965642e38436f6e7472616374496e666f4f660001040500b50104000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650001040510b901040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e5044656c6574696f6e5175657565436f756e7465720100cd01200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e4c4d6967726174696f6e496e50726f67726573730000d10104000861012041206d6967726174696f6e2063616e207370616e206163726f7373206d756c7469706c6520626c6f636b732e20546869732073746f7261676520646566696e6573206120637572736f7220746f20747261636b207468654d012070726f6772657373206f6620746865206d6967726174696f6e2c20656e61626c696e6720757320746f20726573756d652066726f6d20746865206c61737420636f6d706c6574656420706f736974696f6e2e01410101982c205363686564756c65d50151050400000000010000000400008000000010000000001000000001000020000000004000000000004027130000b6b5140018f222dd06f129baf81507012a762b1a0018362c0b000cd2170a000c4afb1400185aad160018b616650018a233150018ca941400189230140018129f1400181e4c5800387a4111001871100000b41d0600032470934d4952b2927d00285278e80028fe36ae1e31276d0b0062b90e001c391100a687811f95048d0800b90804f6e2264849308a30741f850410041e81480785044d0104d2355207a504c90f048642721fa5040d0a04ee4cf9266127261fc876852aee7d506535290e4ed290ad515d11006e7d8df7ad2a0265cd1dd527ad1e003120007273180020b91100eef830002049350026531d0020991300cad71e002091130016eaf90a35016e5ed902a812c0610dc1012d6004be060b000cc66a1300a02a5409000c1209661fb9280e33351f2128046820436f7374207363686564756c6520616e64206c696d6974732e384465706f736974506572427974651840404b4c000000000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e4c44656661756c744465706f7369744c696d697418400000a08fe661000000000000000000000445012046616c6c6261636b2076616c756520746f206c696d6974207468652073746f72616765206465706f7369742069662069742773206e6f74206265696e6720736574206279207468652063616c6c65722e384465706f7369745065724974656d184000e876481700000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e70436f6465486173684c6f636b75704465706f73697450657263656e74e5011000000000104501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e5d0120496e7374616e74696174696e67206120636f6e74726163742c206f722063616c6c696e67205b60636861696e5f657874656e73696f6e3a3a4578743a3a6164645f64656c65676174655f646570656e64656e6379605d49012070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e7420616275736520746865736520616374696f6e7320617265c42070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e284d6178436f64654c656e10100000040014c020546865206d6178696d756d206c656e677468206f66206120636f6e747261637420636f646520696e2062797465732e005901205468652076616c75652073686f756c642062652063686f73656e206361726566756c6c792074616b696e6720696e746f20746865206163636f756e7420746865206f766572616c6c206d656d6f7279206c696d6974f020796f75722072756e74696d65206861732c2061732077656c6c20617320746865205b6d6178696d756d20616c6c6f7765642063616c6c737461636b5d012064657074685d28236173736f636961746564747970652e43616c6c537461636b292e204c6f6f6b20696e746f207468652060696e746567726974795f7465737428296020666f7220736f6d6520696e7369676874732e404d617853746f726167654b65794c656e10108000000004e020546865206d6178696d756d20616c6c6f7761626c65206c656e67746820696e20627974657320666f722073746f72616765206b6579732e5c4d617844656c6567617465446570656e64656e6369657310102000000008290120546865206d6178696d756d206e756d626572206f662064656c65676174655f646570656e64656e636965732074686174206120636f6e74726163742063616e206c6f636b2077697468cc205b60636861696e5f657874656e73696f6e3a3a4578743a3a6164645f64656c65676174655f646570656e64656e6379605d2e5c556e73616665556e737461626c65496e74657266616365a80401241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e444d617844656275674275666665724c656e10100000200004c420546865206d6178696d756d206c656e677468206f66207468652064656275672062756666657220696e2062797465732e2c456e7669726f6e6d656e74e90100102501205479706520746861742062756e646c657320746f67657468657220616c6c207468652072756e74696d6520636f6e666967757261626c6520696e746572666163652074797065732e0035012054686973206973206e6f742061207265616c20636f6e6669672e205765206a757374206d656e74696f6e207468652074797065206865726520617320636f6e7374616e7420736f2074686174f0206974732074797065206170706561727320696e20746865206d657461646174612e204f6e6c792076616c69642076616c756520697320602829602e010902081841737365747301184173736574731014417373657400010402100d02040004542044657461696c73206f6620616e2061737365742e1c4163636f756e74000108020215021902040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c0202022502290204000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d6574616461746101010402102d025000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e014d0101a41c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e013502093902042048436865636b4e6f6e5a65726f53656e64657259028040436865636b5370656356657273696f6e5d021038436865636b547856657273696f6e61021030436865636b47656e6573697365023038436865636b4d6f7274616c69747969023028436865636b4e6f6e63657102802c436865636b576569676874750280604368617267655472616e73616374696f6e5061796d656e74790280a0'; diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-rpc.ts b/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-rpc.ts new file mode 100644 index 0000000..49aa019 --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-rpc.ts @@ -0,0 +1,108 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "methods": [ + "account_nextIndex", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "chainHead_unstable_body", + "chainHead_unstable_call", + "chainHead_unstable_continue", + "chainHead_unstable_follow", + "chainHead_unstable_genesisHash", + "chainHead_unstable_header", + "chainHead_unstable_stopOperation", + "chainHead_unstable_storage", + "chainHead_unstable_unfollow", + "chainHead_unstable_unpin", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transaction_unstable_submitAndWatch", + "transaction_unstable_unwatch", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-ver.ts b/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-ver.ts new file mode 100644 index 0000000..7bae08b --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-contracts-node-ver.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "specName": "bizinikiwi-contracts-node", + "implName": "bizinikiwi-contracts-node", + "authoringVersion": 1, + "specVersion": 100, + "implVersion": 1, + "apis": [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x68b66ba122c93fa7", + 2 + ] + ], + "transactionVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v14/bizinikiwi-hex.ts new file mode 100644 index 0000000..a25743d --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x6d6574610ec50e000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173650508011450686173650001146576656e7454010445000118746f706963731d0501185665633c543e000054084c6b69746368656e73696e6b5f72756e74696d653052756e74696d654576656e74000111011853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c69747904007c015470616c6c65745f7574696c6974793a3a4576656e740001001c496e6469636573040088017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0005002042616c616e63657304008c017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e7404009401a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e00070038417373657454785061796d656e74040098019c70616c6c65745f61737365745f74785f7061796d656e743a3a4576656e743c52756e74696d653e000800604173736574436f6e76657273696f6e54785061796d656e740400a001c870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e743a3a4576656e743c52756e74696d653e00090068456c656374696f6e50726f76696465724d756c746950686173650400a401d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e000a001c5374616b696e670400bc017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000b001c53657373696f6e0400d4015470616c6c65745f73657373696f6e3a3a4576656e74000c002444656d6f63726163790400d8018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000d001c436f756e63696c0400ec01fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400f001fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024456c656374696f6e730400f401a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0010004c546563686e6963616c4d656d626572736869700400010101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e0011001c4772616e64706104000501015470616c6c65745f6772616e6470613a3a4576656e7400120020547265617375727904001501017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e0013002441737365745261746504001901018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e00140024436f6e74726163747304002101018070616c6c65745f636f6e7472616374733a3a4576656e743c52756e74696d653e001500105375646f04002d01016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00160020496d4f6e6c696e6504003101018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e001700204f6666656e63657304005101015870616c6c65745f6f6666656e6365733a3a4576656e74001900204964656e7469747904005901017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001c536f636965747904006101017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e001d00205265636f7665727904006d01017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e001e001c56657374696e6704007101017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001f00245363686564756c657204007501018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0020001c476c7574746f6e04008101015470616c6c65745f676c7574746f6e3a3a4576656e7400210020507265696d61676504008901017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e0022001450726f787904008d01017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e002300204d756c746973696704009901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e00240020426f756e746965730400a101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e00250010546970730400a501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e002600184173736574730400a90101dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e00270028506f6f6c4173736574730400ad0101dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e0028001c4c6f74746572790400b101017870616c6c65745f6c6f74746572793a3a4576656e743c52756e74696d653e002c000c4e69730400b901016870616c6c65745f6e69733a3a4576656e743c52756e74696d653e002d001c556e69717565730400c101017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e002e00104e6674730400d101016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400ed0101b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4576656e743c52756e74696d653e0030001853616c6172790400f101017470616c6c65745f73616c6172793a3a4576656e743c52756e74696d653e00310038436f726546656c6c6f77736869700400f501019870616c6c65745f636f72655f66656c6c6f77736869703a3a4576656e743c52756e74696d653e003200485472616e73616374696f6e53746f726167650400150201a870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a4576656e743c52756e74696d653e00330024566f7465724c6973740400190201f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e003400485374617465547269654d6967726174696f6e04001d0201ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e003500344368696c64426f756e7469657304002902019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e003600245265666572656e646104002d02018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0037001852656d61726b04004d07017470616c6c65745f72656d61726b3a3a4576656e743c52756e74696d653e0038002c526f6f7454657374696e6704005107018c70616c6c65745f726f6f745f74657374696e673a3a4576656e743c52756e74696d653e00390040436f6e76696374696f6e566f74696e670400550701a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e003a002457686974656c69737404005907018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e003b0038416c6c69616e63654d6f74696f6e04006d0701fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020416c6c69616e636504007107017c70616c6c65745f616c6c69616e63653a3a4576656e743c52756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c7304007507019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e003e002c52616e6b6564506f6c6c730400790701f470616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e003f004052616e6b6564436f6c6c6563746976650400810701a070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4576656e743c52756e74696d653e0040003c4173736574436f6e76657273696f6e04008907019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4576656e743c52756e74696d653e0041002c46617374556e7374616b6504009d07018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e004200304d65737361676551756575650400a107019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0043000c506f760400a90701b46672616d655f62656e63686d61726b696e675f70616c6c65745f706f763a3a4576656e743c52756e74696d653e0044001c547850617573650400ad07017c70616c6c65745f74785f70617573653a3a4576656e743c52756e74696d653e00450020536166654d6f64650400b107018070616c6c65745f736166655f6d6f64653a3a4576656e743c52756e74696d653e0046002453746174656d656e740400b907018070616c6c65745f73746174656d656e743a3a4576656e743c52756e74696d653e004700504d756c7469426c6f636b4d6967726174696f6e730400cd07018470616c6c65745f6d6967726174696f6e733a3a4576656e743c52756e74696d653e0048001842726f6b65720400d107017470616c6c65745f62726f6b65723a3a4576656e743c52756e74696d653e00490028506172616d65746572730400e507018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e004c0048536b69704665656c6573735061796d656e740400fd0701ac70616c6c65745f736b69705f6665656c6573735f7061796d656e743a3a4576656e743c52756e74696d653e004d00604173736574436f6e76657273696f6e4d6967726174696f6e0400010801ac70616c6c65745f61737365745f636f6e76657273696f6e5f6f70733a3a4576656e743c52756e74696d653e004f0000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574800418526573756c740804540184044501680108084f6b040084000000000c4572720400680000010000840000040000880c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748c0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000940c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574980c5c70616c6c65745f61737365745f74785f7061796d656e741870616c6c6574144576656e7404045400010438417373657454784665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f666565180144417373657442616c616e63654f663c543e00010c746970180144417373657442616c616e63654f663c543e00012061737365745f69649c01684f7074696f6e3c436861726765417373657449644f663c543e3e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652cb8686173206265656e2070616964206279206077686f6020696e20616e206173736574206061737365745f6964602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c04184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000a00c8870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e741870616c6c6574144576656e7404045400010838417373657454784665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f666565180144417373657442616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e00012061737365745f6964100148436861726765417373657449644f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652cb8686173206265656e2070616964206279206077686f6020696e20616e206173736574206061737365745f6964602e444173736574526566756e644661696c65640401486e61746976655f616d6f756e745f6b65707418013042616c616e63654f663c543e000104f4412073776170206f662074686520726566756e6420696e206e61746976652063757272656e6379206261636b20746f206173736574206661696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a40c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d70757465a8013c456c656374696f6e436f6d707574650001186f726967696eac01504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564200110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c59017468652073746f72656420736f6c7574696f6e20776173207375626d697474656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d70757465a8013c456c656374696f6e436f6d7075746500011473636f7265b00134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6db4016050686173653c426c6f636b4e756d626572466f723c543e3e000108746fb4016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a8089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000ac04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000b0084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000b4089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400b8012828626f6f6c2c20426e2900020024456d657267656e637900030000b800000408201000bc103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001481c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6ec4011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673c8013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465d0011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c0083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000c40c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000c8083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6ecc011c50657262696c6c00011c626c6f636b6564200110626f6f6c0000cc000006c400d0083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000d40c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d80c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64dc0134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000704dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000804e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114756e74696c100144426c6f636b4e756d626572466f723c543e00090494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e2c426c61636b6c697374656404013470726f706f73616c5f6861736834011c543a3a48617368000a04c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465e001644163636f756e74566f74653c42616c616e63654f663c543e3e000b0490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c0488416e206163636f756e7420686173207365636f6e64656420612070726f706f73616c4050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d0460412070726f706f73616c20676f742063616e63656c65642e2c4d657461646174615365740801146f776e6572e801344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e0e04d44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c65617265640801146f776e6572e801344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04e44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e20636c65617265642e4c4d657461646174615472616e736665727265640c0128707265765f6f776e6572e801344d657461646174614f776e6572046050726576696f7573206d65746164617461206f776e65722e01146f776e6572e801344d657461646174614f776e6572044c4e6577206d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e1004ac4d6574616461746120686173206265656e207472616e7366657272656420746f206e6577206f776e65722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc0c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e00c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e40110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e40c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000e80c4070616c6c65745f64656d6f6372616379147479706573344d657461646174614f776e657200010c2045787465726e616c0000002050726f706f73616c040010012450726f70496e646578000100285265666572656e64756d040010013c5265666572656e64756d496e64657800020000ec0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748001384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748001384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f00c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748001384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748001384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273f801ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e550174686520656c656374696f6e2c206e6f74207468617420656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f8000002fc00fc0000040800180001010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657405010c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f73657409010134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657409010000020d01000d01000004081101300011010c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c6963000015010c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64100130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000138543a3a42656e656669636961727900012876616c69645f66726f6d100144426c6f636b4e756d626572466f723c543e0001246578706972655f6174100144426c6f636b4e756d626572466f723c543e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69648401643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69648401643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419010c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e64100130543a3a41737365744b696e64000110726174651d0101244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e64100130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e64100130543a3a41737365744b696e6400010c6f6c641d01012446697865645531323800010c6e65771d010124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d010c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000021010c4070616c6c65745f636f6e7472616374731870616c6c6574144576656e7404045400012830496e7374616e7469617465640801206465706c6f796572000130543a3a4163636f756e744964000120636f6e7472616374000130543a3a4163636f756e744964000004d8436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e285465726d696e61746564080120636f6e7472616374000130543a3a4163636f756e744964048454686520636f6e7472616374207468617420776173207465726d696e617465642e012c62656e6566696369617279000130543a3a4163636f756e74496404e4546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e6365011868436f6e747261637420686173206265656e2072656d6f7665642e001823204e6f7465003d01546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420616e6420656d697474696e672074686973206576656e742069732062792063616c6c696e6744607365616c5f7465726d696e617465602e28436f646553746f7265640c0124636f64655f6861736834011c543a3a486173680001306465706f7369745f68656c6418013042616c616e63654f663c543e00012075706c6f61646572000130543a3a4163636f756e744964000204b4436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c436f6e7472616374456d6974746564080120636f6e7472616374000130543a3a4163636f756e744964049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746138011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e03049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e2c436f646552656d6f7665640c0124636f64655f6861736834011c543a3a486173680001406465706f7369745f72656c656173656418013042616c616e63654f663c543e00011c72656d6f766572000130543a3a4163636f756e744964000404ac4120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e4c436f6e7472616374436f6465557064617465640c0120636f6e7472616374000130543a3a4163636f756e744964048c54686520636f6e7472616374207468617420686173206265656e20757064617465642e01346e65775f636f64655f6861736834011c543a3a4861736804b04e657720636f646520686173682074686174207761732073657420666f722074686520636f6e74726163742e01346f6c645f636f64655f6861736834011c543a3a48617368048c50726576696f757320636f64652068617368206f662074686520636f6e74726163742e0504784120636f6e7472616374277320636f64652077617320757064617465642e1843616c6c656408011863616c6c6572250101244f726967696e3c543e04745468652063616c6c6572206f66207468652060636f6e7472616374602e0120636f6e7472616374000130543a3a4163636f756e744964047454686520636f6e74726163742074686174207761732063616c6c65642e061c11014120636f6e7472616374207761732063616c6c656420656974686572206279206120706c61696e206163636f756e74206f7220616e6f7468657220636f6e74726163742e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e3844656c656761746543616c6c6564080120636f6e7472616374000130543a3a4163636f756e74496408210154686520636f6e7472616374207468617420706572666f726d6564207468652064656c65676174652063616c6c20616e642068656e636520696e2077686f736520636f6e74657874707468652060636f64655f68617368602069732065786563757465642e0124636f64655f6861736834012c436f6465486173683c543e049c54686520636f646520686173682074686174207761732064656c65676174652063616c6c65642e071c9c4120636f6e74726163742064656c65676174652063616c6c6564206120636f646520686173682e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e8053746f726167654465706f7369745472616e73666572726564416e6448656c640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000804f4536f6d652066756e64732068617665206265656e207472616e7366657272656420616e642068656c642061732073746f72616765206465706f7369742e9053746f726167654465706f7369745472616e73666572726564416e6452656c65617365640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000904f8536f6d652073746f72616765206465706f7369742066756e64732068617665206265656e207472616e7366657272656420616e642072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742501084070616c6c65745f636f6e747261637473184f726967696e040454012901010810526f6f74000000185369676e65640400000130543a3a4163636f756e744964000100002901084c6b69746368656e73696e6b5f72756e74696d651c52756e74696d65000000002d010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c748001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64ac01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c748001384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c657431010c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f696435010138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e653901016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743501104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c6963000039010000023d01003d0100000408004101004101082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616c4501011c42616c616e636500010c6f776e4501011c42616c616e63650001186f7468657273490101ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e00004501000006180049010000024d01004d01082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75654501011c42616c616e6365000051010c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64550101104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e550100000310000000080059010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001442c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e38417574686f726974794164646564040124617574686f72697479000130543a3a4163636f756e744964000a047c4120757365726e616d6520617574686f72697479207761732061646465642e40417574686f7269747952656d6f766564040124617574686f72697479000130543a3a4163636f756e744964000b04844120757365726e616d6520617574686f72697479207761732072656d6f7665642e2c557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d655d01012c557365726e616d653c543e000c04744120757365726e616d65207761732073657420666f72206077686f602e38557365726e616d655175657565640c010c77686f000130543a3a4163636f756e744964000120757365726e616d655d01012c557365726e616d653c543e00012865787069726174696f6e100144426c6f636b4e756d626572466f723c543e000d0419014120757365726e616d6520776173207175657565642c20627574206077686f60206d75737420616363657074206974207072696f7220746f206065787069726174696f6e602e48507265617070726f76616c4578706972656404011477686f7365000130543a3a4163636f756e744964000e043901412071756575656420757365726e616d6520706173736564206974732065787069726174696f6e20776974686f7574206265696e6720636c61696d656420616e64207761732072656d6f7665642e485072696d617279557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d655d01012c557365726e616d653c543e000f0401014120757365726e616d6520776173207365742061732061207072696d61727920616e642063616e206265206c6f6f6b65642075702066726f6d206077686f602e5c44616e676c696e67557365726e616d6552656d6f76656408010c77686f000130543a3a4163636f756e744964000120757365726e616d655d01012c557365726e616d653c543e0010085d01412064616e676c696e6720757365726e616d652028617320696e2c206120757365726e616d6520636f72726573706f6e64696e6720746f20616e206163636f756e742074686174206861732072656d6f766564206974736c6964656e746974792920686173206265656e2072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000061010c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001441c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e64696461746573650101445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564200110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572244e6577506172616d73040118706172616d736901015047726f7570506172616d73466f723c542c20493e000d04cc41206e657720736574206f66205c5b706172616d735c5d20686173206265656e2073657420666f72207468652067726f75702e24556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e20456c6576617465640801186d656d626572000130543a3a4163636f756e74496400011072616e6b10011052616e6b0010049841205c5b6d656d6265725c5d20676f7420656c65766174656420746f205c5b72616e6b5c5d2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574650100000200006901083870616c6c65745f736f63696574792c47726f7570506172616d73041c42616c616e636501180010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418011c42616c616e636500006d010c3c70616c6c65745f7265636f766572791870616c6c6574144576656e740404540001183c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e04304576656e747320747970652e71010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475010c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000124245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e000118726573756c748001384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869647d0101404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652e7901000004081010007d0104184f7074696f6e04045401040108104e6f6e6500000010536f6d65040004000001000081010c3870616c6c65745f676c7574746f6e1870616c6c6574144576656e740001104450616c6c6574496e697469616c697a65640401187265696e6974200110626f6f6c04ac57686574686572207468652070616c6c657420686173206265656e2072652d696e697469616c697a65642e0004905468652070616c6c657420686173206265656e2028726529696e697469616c697a65642e4c436f6d7075746174696f6e4c696d697453657404011c636f6d70757465850101204669786564553634045854686520636f6d7075746174696f6e206c696d69742e01049c54686520636f6d7075746174696f6e206c696d697420686173206265656e20757064617465642e3c53746f726167654c696d697453657404011c73746f7261676585010120466978656455363404485468652073746f72616765206c696d69742e02048c5468652073746f72616765206c696d697420686173206265656e20757064617465642e4c426c6f636b4c656e6774684c696d6974536574040130626c6f636b5f6c656e677468850101204669786564553634045c54686520626c6f636b206c656e677468206c696d69742e0304a054686520626c6f636b206c656e677468206c696d697420686173206265656e20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657485010c3473705f61726974686d657469632c66697865645f706f696e742046697865645536340000040030010c753634000089010c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c748001384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706591010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789501010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706591010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706591010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040450412070726f7879207761732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749101084c6b69746368656e73696e6b5f72756e74696d652450726f7879547970650001100c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300009501000005040099010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748001384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000a1010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900012c38426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a5010c2c70616c6c65745f746970731870616c6c6574144576656e74080454000449000114184e65775469700401207469705f6861736834011c543a3a486173680000049441206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e670401207469705f6861736834011c543a3a48617368000104d841207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c01207469705f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e7449640001187061796f757418013c42616c616e63654f663c542c20493e0002048441207469702073756767657374696f6e20686173206265656e20636c6f7365642e305469705265747261637465640401207469705f6861736834011c543a3a486173680003049041207469702073756767657374696f6e20686173206265656e207265747261637465642e28546970536c61736865640c01207469705f6861736834011c543a3a4861736800011866696e646572000130543a3a4163636f756e74496400011c6465706f73697418013c42616c616e63654f663c542c20493e0004048841207469702073756767657374696f6e20686173206265656e20736c61736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a9010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1010c3870616c6c65745f6c6f74746572791870616c6c6574144576656e74040454000110384c6f7474657279537461727465640000046c41206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640001048441206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208011877696e6e6572000130543a3a4163636f756e74496400013c6c6f74746572795f62616c616e636518013042616c616e63654f663c543e00020464412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408010c77686f000130543a3a4163636f756e74496400012863616c6c5f696e646578b501012443616c6c496e6465780003046441207469636b657420686173206265656e20626f7567687421047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b50100000408080800b9010c2870616c6c65745f6e69731870616c6c6574144576656e7404045400011c24426964506c616365640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200000478412062696420776173207375636365737366756c6c7920706c616365642e304269645265747261637465640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c753332000104dc412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e67206163636570746564292e2842696444726f707065640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200020455014120626964207761732064726f707065642066726f6d20612071756575652062656361757365206f6620616e6f746865722c206d6f7265207375627374616e7469616c2c20626964207761732070726573656e742e18497373756564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e0118657870697279100144426c6f636b4e756d626572466f723c543e04d054686520626c6f636b206e756d626572206174207768696368207468652072656365697074206d6179206265207468617765642e010c77686f000130543a3a4163636f756e7449640464546865206f776e6572206f662074686520726563656970742e012870726f706f7274696f6ebd01012c5065727175696e74696c6c0431015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520776869636820746865207265636569707420726570726573656e74732e0118616d6f756e7418013042616c616e63654f663c543e04d854686520616d6f756e74206f662066756e6473207768696368207765726520646562697465642066726f6d20746865206f776e65722e030405014120626964207761732061636365707465642e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e18546861776564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e010c77686f000130543a3a4163636f756e7449640428546865206f776e65722e012870726f706f7274696f6ebd01012c5065727175696e74696c6c0439015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520627920776869636820746865206f776e65722077617320646562697465642e0118616d6f756e7418013042616c616e63654f663c543e04ac54686520616d6f756e7420627920776869636820746865206f776e6572207761732063726564697465642e011c64726f70706564200110626f6f6c048c496620607472756560207468656e20746865207265636569707420697320646f6e652e0404c0416e207265636569707420686173206265656e20286174206c65617374207061727469616c6c7929207468617765642e1846756e64656404011c6465666963697418013042616c616e63654f663c543e000504b4416e206175746f6d617469632066756e64696e67206f6620746865206465666963697420776173206d6164652e2c5472616e736665727265640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000114696e64657810013052656365697074496e6465780006046841207265636569707420776173207472616e736665727265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd010c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c7536340000c1010c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c90101385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00010c6b65795d01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00010c6b65795d01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e9c015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572ac01504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c9010000021000cd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d1010c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572ac01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696eac01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a6572ac01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e659c01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c90101385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e9c015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69649c015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572ac01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d9c01444f7074696f6e3c543a3a4974656d49643e0001147072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d9c01444f7074696f6e3c543a3a4974656d49643e0001147072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100144426c6f636b4e756d626572466f723c543e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d9c01444f7074696f6e3c543a3a4974656d49643e000124617474726962757465e901018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d9010c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000dd0104184f7074696f6e04045401e1010108104e6f6e6500000010536f6d650400e1010000010000e1010c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6ee50101385072696365446972656374696f6e0000e5010c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000e9010c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000ed010c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144576656e74040454000108444e66744672616374696f6e616c697a65641401386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001246672616374696f6e73180144417373657442616c616e63654f663c543e0001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e7449640000049c416e204e465420776173207375636365737366756c6c79206672616374696f6e616c697a65642e284e6674556e69666965641001386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e74496400010498416e204e465420776173207375636365737366756c6c792072657475726e6564206261636b2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1010c3470616c6c65745f73616c6172791870616c6c6574144576656e7408045400044900011420496e64756374656404010c77686f000130543a3a4163636f756e7449640000049841206d656d62657220697320696e64756374656420696e746f2074686520706179726f6c6c2e285265676973746572656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0001048441206d656d626572207265676973746572656420666f722061207061796f75742e105061696410010c77686f000130543a3a4163636f756e74496400012c62656e6566696369617279000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00010869648401643c543a3a5061796d6173746572206173205061793e3a3a49640002044c41207061796d656e742068617070656e65642e304379636c6553746172746564040114696e64657810013c4379636c65496e6465784f663c543e00030458546865206e657874206379636c6520626567696e732e1c5377617070656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e7449640004047c41206d656d6265722073776170706564207468656972206163636f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f5010c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c6574144576656e7408045400044900012c34506172616d734368616e676564040118706172616d73f9010138506172616d734f663c542c20493e0000049c506172616d657465727320666f72207468652070616c6c65742068617665206368616e6765642e344163746976654368616e67656408010c77686f000130543a3a4163636f756e74496400012469735f616374697665200110626f6f6c000104884d656d62657220616374697669747920666c616720686173206265656e207365742e20496e64756374656404010c77686f000130543a3a4163636f756e744964000204b84d656d6265722068617320626567756e206265696e6720747261636b656420696e20746869732070616c6c65742e284f6666626f617264656404010c77686f000130543a3a4163636f756e7449640003084d014d656d62657220686173206265656e2072656d6f7665642066726f6d206265696e6720747261636b656420696e20746869732070616c6c65742028692e652e20626563617573652072616e6b206973206e6f77187a65726f292e2050726f6d6f74656408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9501013052616e6b4f663c542c20493e000404ac4d656d62657220686173206265656e2070726f6d6f74656420746f2074686520676976656e2072616e6b2e1c44656d6f74656408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9501013052616e6b4f663c542c20493e000504d44d656d62657220686173206265656e2064656d6f74656420746f2074686520676976656e20286e6f6e2d7a65726f292072616e6b2e1850726f76656e08010c77686f000130543a3a4163636f756e74496400011c61745f72616e6b9501013052616e6b4f663c542c20493e0006041d014d656d62657220686173206265656e2070726f76656e2061742074686569722063757272656e742072616e6b2c20706f7374706f6e696e67206175746f2d64656d6f74696f6e2e2452657175657374656408010c77686f000130543a3a4163636f756e7449640001107769736809020110576973680007040d014d656d62657220686173207374617465642065766964656e6365206f66207468656972206566666f727473207468656972207265717565737420666f722072616e6b2e3845766964656e63654a756467656414010c77686f000130543a3a4163636f756e7449640454546865206d656d6265722f63616e6469646174652e011077697368090201105769736804e45468652064657369726564206f7574636f6d6520666f72207768696368207468652065766964656e6365207761732070726573656e7465642e012065766964656e63650d02013845766964656e63653c542c20493e04605468652065766964656e6365206f66206566666f7274732e01206f6c645f72616e6b9501010c753136048c546865206f6c642072616e6b2c207072696f7220746f2074686973206368616e67652e01206e65775f72616e6b1102012c4f7074696f6e3c7531363e04fc4e65772072616e6b2e20496620604e6f6e6560207468656e2063616e646964617465207265636f7264207761732072656d6f76656420656e746972656c792e08085d01536f6d65207375626d69747465642065766964656e636520776173206a756467656420616e642072656d6f7665642e205468657265206d6179206f72206d6179206e6f742068617665206265656e2061206368616e6765d0746f207468652072616e6b2c2062757420696e20616e7920636173652c20606c6173745f70726f6f66602069732072657365742e20496d706f7274656408010c77686f000130543a3a4163636f756e74496400011072616e6b9501013052616e6b4f663c542c20493e000904ec5072652d72616e6b6564206163636f756e7420686173206265656e20696e6475637465642061742074686569722063757272656e742072616e6b2e1c5377617070656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000a048c41206d656d6265722068616420697473204163636f756e74496420737761707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f901085870616c6c65745f636f72655f66656c6c6f777368697028506172616d73547970650c1c42616c616e636501182c426c6f636b4e756d62657201101452616e6b7300001401346163746976655f73616c617279fd010168426f756e6465645665633c42616c616e63652c2052616e6b733e000138706173736976655f73616c617279fd010168426f756e6465645665633c42616c616e63652c2052616e6b733e00013c64656d6f74696f6e5f706572696f6405020178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001506d696e5f70726f6d6f74696f6e5f706572696f6405020178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001406f6666626f6172645f74696d656f757410012c426c6f636b4e756d6265720000fd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400010201185665633c543e00000102000002180005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e00000902085870616c6c65745f636f72655f66656c6c6f7773686970105769736800010824526574656e74696f6e0000002450726f6d6f74696f6e000100000d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000110204184f7074696f6e0404540195010108104e6f6e6500000010536f6d6504009501000001000015020c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144576656e7404045400010c1853746f726564040114696e64657810010c7533320000048853746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040114696e64657810010c7533320001048c52656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640002049c53746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419020c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465210201404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f72250201204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e21020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f0001000025020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d020c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c7949070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7949070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7949070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7949070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7949070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7949070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574310210346672616d655f737570706f72741874726169747324707265696d616765731c426f756e6465640804540135020448014507010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e650400c5010134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200003502084c6b69746368656e73696e6b5f72756e74696d652c52756e74696d6543616c6c000109011853797374656d0400390201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400490201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e00010010426162650400690201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400910201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400950201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0005002042616c616e6365730400a10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00060068456c656374696f6e50726f76696465724d756c746950686173650400a90201fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e000a001c5374616b696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e000b001c53657373696f6e0400c50301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e000c002444656d6f63726163790400dd0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000d001c436f756e63696c0400e90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000e0048546563686e6963616c436f6d6d69747465650400ed0301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e000f0024456c656374696f6e730400f10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e0010004c546563686e6963616c4d656d626572736869700400f90301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0011001c4772616e6470610400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e0012002054726561737572790400290401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e0013002441737365745261746504002d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e00140024436f6e7472616374730400310401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e7472616374732c2052756e74696d653e001500105375646f04003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00160020496d4f6e6c696e650400410401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e001700204964656e7469747904004d0401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001c536f63696574790400f50401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e001d00205265636f766572790400f90401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e001e001c56657374696e670400fd0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001f00245363686564756c65720400050501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e0020001c476c7574746f6e04000d0501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c476c7574746f6e2c2052756e74696d653e00210020507265696d6167650400190501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e0022001450726f78790400210501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e002300204d756c74697369670400290501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e00240020426f756e746965730400310501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00250010546970730400350501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e002600184173736574730400390501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e00270028506f6f6c41737365747304003d0501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c4173736574732c2052756e74696d653e0028001442656566790400410501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e0029001c4c6f74746572790400750501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f74746572792c2052756e74696d653e002c000c4e69730400790501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e69732c2052756e74696d653e002d001c556e69717565730400810501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e002e00104e66747304008d0501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400d50501e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e66744672616374696f6e616c697a6174696f6e2c2052756e74696d653e0030001853616c6172790400d90501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53616c6172792c2052756e74696d653e00310038436f726546656c6c6f77736869700400dd0501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f726546656c6c6f77736869702c2052756e74696d653e003200485472616e73616374696f6e53746f726167650400f50501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73616374696f6e53746f726167652c2052756e74696d653e00330024566f7465724c6973740400fd0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e003400485374617465547269654d6967726174696f6e0400010601dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e003500344368696c64426f756e746965730400190601c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e003600245265666572656e646104001d0601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0037001852656d61726b0400250601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52656d61726b2c2052756e74696d653e0038002c526f6f7454657374696e670400290601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526f6f7454657374696e672c2052756e74696d653e00390040436f6e76696374696f6e566f74696e6704002d0601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e003a002457686974656c69737404003d0601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400410601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416c6c69616e63654d6f74696f6e2c2052756e74696d653e003c0020416c6c69616e63650400450601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416c6c69616e63652c2052756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400690601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e003e002c52616e6b6564506f6c6c7304009d0601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e6b6564506f6c6c732c2052756e74696d653e003f004052616e6b6564436f6c6c6563746976650400a10601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e6b6564436f6c6c6563746976652c2052756e74696d653e0040003c4173736574436f6e76657273696f6e0400a50601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e2c2052756e74696d653e0041002c46617374556e7374616b650400b10601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e004200304d65737361676551756575650400b50601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0043000c506f760400b90601a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f762c2052756e74696d653e0044001c547850617573650400bd0601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c547850617573652c2052756e74696d653e00450020536166654d6f64650400c50601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536166654d6f64652c2052756e74696d653e004600504d756c7469426c6f636b4d6967726174696f6e730400c90601e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b4d6967726174696f6e732c2052756e74696d653e0048001842726f6b65720400ed0601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42726f6b65722c2052756e74696d653e004900184d69786e65740400150701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d69786e65742c2052756e74696d653e004b0028506172616d657465727304002d0701bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e004c00604173736574436f6e76657273696f6e4d6967726174696f6e0400410701f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e4d6967726174696f6e2c2052756e74696d653e004f000039020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d733d0201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973450201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d020000024102004102000004083838004502000002380049020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465789501010c75313600011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e51020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d020000023502005102084c6b69746368656e73696e6b5f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400550201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400590201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d697474656504005d0201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0038416c6c69616e63654d6f74696f6e0400610201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0010566f69640400650201410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f69640004000055020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200005902084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200005d02084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200006102084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200006502081c73705f636f726510566f69640001000069020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f666d020190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f666d020190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967850201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d02084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572017102084964017902001001206f6666656e646572790201084964000110736c6f747d020110536c6f7400013066697273745f686561646572710201184865616465720001347365636f6e645f6865616465727102011848656164657200007102102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572750201184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c011844696765737400007502000006100079020c4473705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c696300007d02084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400008102082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573450201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000085020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046389020128287536342c2075363429000134616c6c6f7765645f736c6f74738d020130416c6c6f776564536c6f7473000100008902000004083030008d02084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000091020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577990201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577990201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780110011408496404000001244163636f756e74496400000014496e6465780400750201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d0003002441646472657373323004009d0201205b75383b2032305d000400009d02000003140000000800a1020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374990201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756545010128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365990201504163636f756e7449644c6f6f6b75704f663c543e00011064657374990201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756545010128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374990201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756545010128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374990201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f650101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656545010128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ea502014c41646a7573746d656e74446972656374696f6e00011464656c746145010128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c756545010128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a9020c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ead0201b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573737d030158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265810301544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747385030158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6ead0201b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572739c012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574739c012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead02089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301b102000c0120736f6c7574696f6eb10201045300011473636f7265b00134456c656374696f6e53636f7265000114726f756e6410010c7533320000b102084c6b69746368656e73696e6b5f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331b50200000118766f74657332c10200000118766f74657333d50200000118766f74657334e10200000118766f74657335ed0200000118766f74657336f90200000118766f74657337050300000118766f74657338110300000118766f746573391d030000011c766f746573313029030000011c766f746573313135030000011c766f746573313241030000011c766f74657331334d030000011c766f746573313459030000011c766f746573313565030000011c766f74657331367103000000b502000002b90200b902000004087502bd0200bd02000006950100c102000002c50200c5020000040c7502c902bd0200c90200000408bd02cd0200cd02000006d10200d1020c3473705f61726974686d65746963287065725f7468696e677318506572553136000004009501010c7531360000d502000002d90200d9020000040c7502dd02bd0200dd0200000302000000c90200e102000002e50200e5020000040c7502e902bd0200e90200000303000000c90200ed02000002f10200f1020000040c7502f502bd0200f50200000304000000c90200f902000002fd0200fd020000040c75020103bd0200010300000305000000c90200050300000209030009030000040c75020d03bd02000d0300000306000000c90200110300000215030015030000040c75021903bd0200190300000307000000c902001d0300000221030021030000040c75022503bd0200250300000308000000c9020029030000022d03002d030000040c75023103bd0200310300000309000000c90200350300000239030039030000040c75023d03bd02003d030000030a000000c90200410300000245030045030000040c75024903bd020049030000030b000000c902004d0300000251030051030000040c75025503bd020055030000030c000000c9020059030000025d03005d030000040c75026103bd020061030000030d000000c90200650300000269030069030000040c75026d03bd02006d030000030e000000c90200710300000275030075030000040c75027903bd020079030000030f000000c902007d03089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f746572737502010c75333200011c746172676574737502010c7533320000810304184f7074696f6e04045401b00108104e6f6e6500000010536f6d650400b000000100008503000002890300890300000408008d03008d03084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f801845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e00009103103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400017810626f6e6408011476616c75654501013042616c616e63654f663c543e0001147061796565c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616c4501013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c75654501013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673c8013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473950301645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f70617965650401147061796565c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e65777502010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c7502010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f729903011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573650101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573c90101205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c75654501013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686f950301645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e649d030158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e649d030158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e74a1030134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e74a1030134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c64a5030144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6ea9030144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f72657761726473a5030144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577c4011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273ad0301f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572ac01504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616cb10301504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e67b5030115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e950300000299020099030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800009d03103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000a103103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000a503103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454019903010c104e6f6f700000000c536574040099030104540001001852656d6f766500020000a903103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401c4010c104e6f6f700000000c5365740400c40104540001001852656d6f766500020000ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000b10304184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000b50304184f7074696f6e04045401b9030108104e6f6e6500000010536f6d650400b9030000010000b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400c10301185665633c543e0000bd03083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75654501011c42616c616e636500010c65726175020120457261496e6465780000c103000002bd0300c5030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b657973c903011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec903084c6b69746368656e73696e6b5f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061110101d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265790201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65350101d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279cd0301fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001186d69786e6574d10301cc3c4d69786e6574206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001146265656679d50301c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000cd030c5873705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c69630000d103102473705f6d69786e65741474797065730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000d5030c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c696300000400d903013465636473613a3a5075626c69630000d903000003210000000800dd030c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c04045400014c1c70726f706f736508012070726f706f73616c31020140426f756e64656443616c6c4f663c543e00011476616c75654501013042616c616e63654f663c543e0000249c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e187365636f6e6404012070726f706f73616c7502012450726f70496e646578000118b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e10766f74650801247265665f696e6465787502013c5265666572656e64756d496e646578000110766f7465e001644163636f756e74566f74653c42616c616e63654f663c543e3e00021c3101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504012070726f706f73616c31020140426f756e64656443616c6c4f663c543e0004182d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e6465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616c31020140426f756e64656443616c6c4f663c543e00052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616c31020140426f756e64656443616c6c4f663c543e00062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736834011c543a3a48617368000134766f74696e675f706572696f64100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e0007404d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f88094d75737420626520616c776179732067726561746572207468616e207a65726f2e350109466f72206046617374547261636b4f726967696e60206d75737420626520657175616c206f722067726561746572207468616e206046617374547261636b566f74696e67506572696f64602e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736834011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e6465787502013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e2064656c65676174650c0108746f990201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ee1030128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000b30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000c1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e18756e6c6f636b040118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000d1ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e6c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f3c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e24626c61636b6c69737408013470726f706f73616c5f6861736834011c543a3a4861736800013c6d617962655f7265665f696e6465789c015c4f7074696f6e3c5265666572656e64756d496e6465783e00103c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e6465787502012450726f70496e64657800111c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960307365745f6d657461646174610801146f776e6572e801344d657461646174614f776e65720001286d617962655f68617368e503013c4f7074696f6e3c543a3a486173683e00123cd8536574206f7220636c6561722061206d65746164617461206f6620612070726f706f73616c206f722061207265666572656e64756d2e002c506172616d65746572733acc2d20606f726967696e603a204d75737420636f72726573706f6e6420746f2074686520604d657461646174614f776e6572602e3d01202020202d206045787465726e616c4f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053757065724d616a6f72697479417070726f766560402020202020207468726573686f6c642e5901202020202d206045787465726e616c44656661756c744f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053757065724d616a6f72697479416761696e737460402020202020207468726573686f6c642e4501202020202d206045787465726e616c4d616a6f726974794f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053696d706c654d616a6f7269747960402020202020207468726573686f6c642ec8202020202d20605369676e65646020627920612063726561746f7220666f722061207075626c69632070726f706f73616c2ef4202020202d20605369676e65646020746f20636c6561722061206d6574616461746120666f7220612066696e6973686564207265666572656e64756d2ee4202020202d2060526f6f746020746f207365742061206d6574616461746120666f7220616e206f6e676f696e67207265666572656e64756d2eb42d20606f776e6572603a20616e206964656e746966696572206f662061206d65746164617461206f776e65722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000e50304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000e9030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273650101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c647502012c4d656d626572436f756e7400012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647502010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273650101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c647502012c4d656d626572436f756e7400012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647502010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1030c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573650101445665633c543a3a4163636f756e7449643e00011476616c75654501013042616c616e63654f663c543e00004c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e0049014966206076616c756560206973206d6f7265207468616e206077686f60277320667265652062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e747502010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e000901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e34232320436f6d706c6578697479a44f2843202b206c6f672843292920776865726520432069732063616e6469646174655f636f756e742e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67f503012852656e6f756e63696e670003504d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e0034232320436f6d706c6578697479dc20202d2052656e6f756e63696e673a3a43616e64696461746528636f756e74293a204f28636f756e74202b206c6f6728636f756e7429297020202d2052656e6f756e63696e673a3a4d656d6265723a204f2831297820202d2052656e6f756e63696e673a3a52756e6e657255703a204f2831293472656d6f76655f6d656d6265720c010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000128736c6173685f626f6e64200110626f6f6c000138726572756e5f656c656374696f6e200110626f6f6c000440590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c616365732074686555016f7574676f696e67206d656d6265722e204f74686572776973652c2069662060726572756e5f656c656374696f6e60206973206074727565602c2061206e65772070687261676d656e20656c656374696f6e2069737c737461727465642c20656c73652c206e6f7468696e672068617070656e732e00590149662060736c6173685f626f6e64602069732073657420746f20747275652c2074686520626f6e64206f6620746865206d656d626572206265696e672072656d6f76656420697320736c61736865642e20456c73652c3c69742069732072657475726e65642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e0034232320436f6d706c657869747905012d20436865636b2064657461696c73206f662072656d6f76655f616e645f7265706c6163655f6d656d626572282920616e6420646f5f70687261676d656e28292e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005244501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0034232320436f6d706c65786974798c2d20436865636b2069735f646566756e63745f766f74657228292064657461696c732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e64696461746504007502010c75333200020000f9030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665990201504163636f756e7449644c6f6f6b75704f663c543e00010c616464990201504163636f756e7449644c6f6f6b75704f663c543e000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273650101445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577990201504163636f756e7449644c6f6f6b75704f663c543e000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66010401c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66010401c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e0504014845717569766f636174696f6e3c482c204e3e00000504085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400090401890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d697404001d0401910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100000904084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c0849640111010456010d04045301110400100130726f756e645f6e756d62657230010c7536340001206964656e7469747911010108496400011466697273741904011828562c2053290001187365636f6e641904011828562c20532900000d04084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000011040c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040015040148656432353531393a3a5369676e6174757265000015040000034000000008001904000004080d041104001d04084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c0849640111010456012104045301110400100130726f756e645f6e756d62657230010c7536340001206964656e7469747911010108496400011466697273742504011828562c2053290001187365636f6e642504011828562c20532900002104084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000250400000408210411040029040c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e744501013c42616c616e63654f663c542c20493e00012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69647502013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e64100144426f783c543a3a41737365744b696e643e000118616d6f756e7445010150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727999020178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6d9c01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d040c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e64100144426f783c543a3a41737365744b696e643e000110726174651d0101244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e64100144426f783c543a3a41737365744b696e643e000110726174651d01012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e64100144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31040c4070616c6c65745f636f6e7472616374731870616c6c65741043616c6c0404540001283c63616c6c5f6f6c645f77656967687414011064657374990201504163636f756e7449644c6f6f6b75704f663c543e00011476616c75654501013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746138011c5665633c75383e0000041501446570726563617465642076657273696f6e206966205b6053656c663a3a63616c6c605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e80696e7374616e74696174655f776974685f636f64655f6f6c645f77656967687418011476616c75654501013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0001045901446570726563617465642076657273696f6e206966205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e58696e7374616e74696174655f6f6c645f77656967687418011476616c75654501013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736834012c436f6465486173683c543e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0002043101446570726563617465642076657273696f6e206966205b6053656c663a3a696e7374616e7469617465605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e2c75706c6f61645f636f64650c0110636f646538011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e00012c64657465726d696e69736d3904012c44657465726d696e69736d000360ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665ac646570656e6473206f6e207468652073697a65206f662074686520737570706c6965642060636f6465602e00310149662074686520636f646520616c72656164792065786973747320696e2073746f726167652069742077696c6c207374696c6c2072657475726e20604f6b6020616e642075706772616465739474686520696e2073746f726167652076657273696f6e20746f207468652063757272656e74d05b60496e737472756374696f6e576569676874733a3a76657273696f6e605d28496e737472756374696f6e57656967687473292e0055012d206064657465726d696e69736d603a20496620746869732069732073657420746f20616e79206f746865722076616c756520627574205b6044657465726d696e69736d3a3a456e666f72636564605d207468656e5d012020746865206f6e6c792077617920746f20757365207468697320636f646520697320746f2064656c65676174652063616c6c20696e746f2069742066726f6d20616e206f6666636861696e20657865637574696f6e2ebc202053657420746f205b6044657465726d696e69736d3a3a456e666f72636564605d20696620696e20646f7562742e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e005101557365205b6044657465726d696e69736d3a3a52656c61786564605d206578636c75736976656c7920666f72206e6f6e2d64657465726d696e697374696320636f64652e204966207468652075706c6f616465644901636f64652069732064657465726d696e69737469632c2073706563696679696e67205b6044657465726d696e69736d3a3a52656c61786564605d2077696c6c20626520646973726567617264656420616e646c726573756c7420696e206869676865722067617320636f7374732e2c72656d6f76655f636f6465040124636f64655f6861736834012c436f6465486173683c543e000410350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e207365745f636f646508011064657374990201504163636f756e7449644c6f6f6b75704f663c543e000124636f64655f6861736834012c436f6465486173683c543e000528090150726976696c656765642066756e6374696f6e2074686174206368616e6765732074686520636f6465206f6620616e206578697374696e6720636f6e74726163742e004501546869732074616b65732063617265206f66207570646174696e6720726566636f756e747320616e6420616c6c206f74686572206e6563657373617279206f7065726174696f6e732e2052657475726e73e8616e206572726f7220696620656974686572207468652060636f64655f6861736860206f722060646573746020646f206e6f742065786973742e001823204e6f74650031015468697320646f6573202a2a6e6f742a2a206368616e6765207468652061646472657373206f662074686520636f6e747261637420696e207175657374696f6e2e2054686973206d65616e733d01746861742074686520636f6e74726163742061646472657373206973206e6f206c6f6e67657220646572697665642066726f6d2069747320636f646520686173682061667465722063616c6c696e67487468697320646973706174636861626c652e1063616c6c14011064657374990201504163636f756e7449644c6f6f6b75704f663c543e00011476616c75654501013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746138011c5665633c75383e00064005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f646518011476616c75654501013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0007643101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e31012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e0094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0039012d2054686520737570706c6965642060636f646560206973206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e746961746518011476616c75654501013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736834012c436f6465486173683c543e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e000814fc496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654901636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e617279446d75737420626520737570706c6965642e1c6d6967726174650401307765696768745f6c696d697428011857656967687400091059015768656e2061206d6967726174696f6e20697320696e2070726f67726573732c207468697320646973706174636861626c652063616e206265207573656420746f2072756e206d6967726174696f6e2073746570732e610143616c6c73207468617420636f6e7472696275746520746f20616476616e63696e6720746865206d6967726174696f6e20686176652074686569722066656573207761697665642c20617320697427732068656c7066756c4501666f722074686520636861696e2e204e6f74652074686174207768696c6520746865206d6967726174696f6e20697320696e2070726f67726573732c207468652070616c6c65742077696c6c20616c736fd06c657665726167652074686520606f6e5f69646c656020686f6f6b7320746f2072756e206d6967726174696f6e2073746570732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e350404184f7074696f6e0404540145010108104e6f6e6500000010536f6d6504004501000001000039040c4070616c6c65745f636f6e747261637473107761736d2c44657465726d696e69736d00010820456e666f726365640000001c52656c61786564000100003d040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577990201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41040c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174450401704865617274626561743c426c6f636b4e756d626572466f723c543e3e0001247369676e6174757265490401bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500000c38232320436f6d706c65786974793afc2d20604f284b2960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e298820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4504084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000100130626c6f636b5f6e756d62657210012c426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c75333200004904104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e61747572650000040015040148737232353531393a3a5369676e617475726500004d040c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c040454000158346164645f72656769737472617204011c6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e00001c7841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e307365745f6964656e74697479040110696e666f5104016c426f783c543a3a4964656e74697479496e666f726d6174696f6e3e000128290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e207365745f7375627304011073756273dd0401645665633c28543a3a4163636f756e7449642c2044617461293e0002248c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e38636c6561725f6964656e746974790003203901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e44726571756573745f6a756467656d656e740801247265675f696e64657875020138526567697374726172496e64657800011c6d61785f6665654501013042616c616e63654f663c543e00044094526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65b853656c663a3a7265676973747261727328292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005286843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e1c7365745f666565080114696e64657875020138526567697374726172496e64657800010c6665654501013042616c616e63654f663c543e00061c1901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e387365745f6163636f756e745f6964080114696e64657875020138526567697374726172496e64657800010c6e6577990201504163636f756e7449644c6f6f6b75704f663c543e00071cbc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e287365745f6669656c6473080114696e64657875020138526567697374726172496e6465780001186669656c6473300129013c543a3a4964656e74697479496e666f726d6174696f6e206173204964656e74697479496e666f726d6174696f6e50726f76696465723e3a3a0a4669656c64734964656e74696669657200081ca853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e4470726f766964655f6a756467656d656e741001247265675f696e64657875020138526567697374726172496e646578000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e74e504015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e7469747934011c543a3a4861736800093cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e5d012d20606964656e74697479603a205468652068617368206f6620746865205b604964656e74697479496e666f726d6174696f6e50726f7669646572605d20666f72207468617420746865206a756467656d656e742069732c202070726f76696465642e00b04e6f74653a204a756467656d656e747320646f206e6f74206170706c7920746f206120757365726e616d652e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e346b696c6c5f6964656e74697479040118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000a30410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e1c6164645f73756208010c737562990201504163636f756e7449644c6f6f6b75704f663c543e000110646174615d04011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c737562990201504163636f756e7449644c6f6f6b75704f663c543e000110646174615d04011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c737562990201504163636f756e7449644c6f6f6b75704f663c543e000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e586164645f757365726e616d655f617574686f726974790c0124617574686f72697479990201504163636f756e7449644c6f6f6b75704f663c543e00011873756666697838011c5665633c75383e000128616c6c6f636174696f6e10010c753332000f10550141646420616e20604163636f756e744964602077697468207065726d697373696f6e20746f206772616e7420757365726e616d65732077697468206120676976656e20607375666669786020617070656e6465642e00590154686520617574686f726974792063616e206772616e7420757020746f2060616c6c6f636174696f6e6020757365726e616d65732e20546f20746f7020757020746865697220616c6c6f636174696f6e2c2074686579490173686f756c64206a75737420697373756520286f7220726571756573742076696120676f7665726e616e6365292061206e657720606164645f757365726e616d655f617574686f72697479602063616c6c2e6472656d6f76655f757365726e616d655f617574686f72697479040124617574686f72697479990201504163636f756e7449644c6f6f6b75704f663c543e001004c452656d6f76652060617574686f72697479602066726f6d2074686520757365726e616d6520617574686f7269746965732e407365745f757365726e616d655f666f720c010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000120757365726e616d6538011c5665633c75383e0001247369676e6174757265e90401704f7074696f6e3c543a3a4f6666636861696e5369676e61747572653e0011240d015365742074686520757365726e616d6520666f72206077686f602e204d7573742062652063616c6c6564206279206120757365726e616d6520617574686f726974792e00550154686520617574686f72697479206d757374206861766520616e2060616c6c6f636174696f6e602e2055736572732063616e20656974686572207072652d7369676e20746865697220757365726e616d6573206f7248616363657074207468656d206c617465722e003c557365726e616d6573206d7573743ad820202d204f6e6c7920636f6e7461696e206c6f776572636173652041534349492063686172616374657273206f72206469676974732e350120202d205768656e20636f6d62696e656420776974682074686520737566666978206f66207468652069737375696e6720617574686f72697479206265205f6c657373207468616e5f207468656020202020604d6178557365726e616d654c656e677468602e3c6163636570745f757365726e616d65040120757365726e616d655d01012c557365726e616d653c543e0012084d01416363657074206120676976656e20757365726e616d65207468617420616e2060617574686f7269747960206772616e7465642e205468652063616c6c206d75737420696e636c756465207468652066756c6c88757365726e616d652c20617320696e2060757365726e616d652e737566666978602e5c72656d6f76655f657870697265645f617070726f76616c040120757365726e616d655d01012c557365726e616d653c543e00130c610152656d6f766520616e206578706972656420757365726e616d6520617070726f76616c2e2054686520757365726e616d652077617320617070726f76656420627920616e20617574686f7269747920627574206e657665725501616363657074656420627920746865207573657220616e64206d757374206e6f77206265206265796f6e64206974732065787069726174696f6e2e205468652063616c6c206d75737420696e636c756465207468659c66756c6c20757365726e616d652c20617320696e2060757365726e616d652e737566666978602e507365745f7072696d6172795f757365726e616d65040120757365726e616d655d01012c557365726e616d653c543e0014043101536574206120676976656e20757365726e616d6520617320746865207072696d6172792e2054686520757365726e616d652073686f756c6420696e636c75646520746865207375666669782e6072656d6f76655f64616e676c696e675f757365726e616d65040120757365726e616d655d01012c557365726e616d653c543e001508550152656d6f7665206120757365726e616d65207468617420636f72726573706f6e647320746f20616e206163636f756e742077697468206e6f206964656e746974792e20457869737473207768656e20612075736572c067657473206120757365726e616d6520627574207468656e2063616c6c732060636c6561725f6964656e74697479602e04704964656e746974792070616c6c6574206465636c61726174696f6e2e51040c3c70616c6c65745f6964656e74697479186c6567616379304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c55040190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c61795d040110446174610001146c6567616c5d0401104461746100010c7765625d0401104461746100011072696f745d04011044617461000114656d61696c5d0401104461746100013c7067705f66696e6765727072696e74d90401404f7074696f6e3c5b75383b2032305d3e000114696d6167655d0401104461746100011c747769747465725d04011044617461000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400d50401185665633c543e00005904000004085d045d04005d040c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e65000000105261773004006104000001001052617731040065040000020010526177320400690400000300105261773304006d0400000400105261773404004800000500105261773504007104000006001052617736040075040000070010526177370400790400000800105261773804007d040000090010526177390400810400000a001452617731300400850400000b001452617731310400890400000c0014526177313204008d0400000d001452617731330400910400000e001452617731340400950400000f001452617731350400990400001000145261773136040055010000110014526177313704009d04000012001452617731380400a104000013001452617731390400a5040000140014526177323004009d02000015001452617732310400a904000016001452617732320400ad04000017001452617732330400b104000018001452617732340400b504000019001452617732350400b90400001a001452617732360400bd0400001b001452617732370400c10400001c001452617732380400c50400001d001452617732390400c90400001e001452617733300400cd0400001f001452617733310400d10400002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c536861546872656532353604000400002500006104000003000000000800650400000301000000080069040000030200000008006d040000030300000008007104000003050000000800750400000306000000080079040000030700000008007d04000003080000000800810400000309000000080085040000030a000000080089040000030b00000008008d040000030c000000080091040000030d000000080095040000030e000000080099040000030f00000008009d04000003110000000800a104000003120000000800a504000003130000000800a904000003150000000800ad04000003160000000800b104000003170000000800b504000003180000000800b904000003190000000800bd040000031a0000000800c1040000031b0000000800c5040000031c0000000800c9040000031d0000000800cd040000031e0000000800d1040000031f0000000800d504000002590400d90404184f7074696f6e040454019d020108104e6f6e6500000010536f6d6504009d020000010000dd04000002e10400e10400000408005d0400e5040c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000e90404184f7074696f6e04045401ed040108104e6f6e6500000010536f6d650400ed040000010000ed04082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040015040148656432353531393a3a5369676e61747572650000001c53723235353139040015040148737232353531393a3a5369676e61747572650001001445636473610400f104014065636473613a3a5369676e617475726500020000f104000003410000000800f5040c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001500c62696404011476616c756518013c42616c616e63654f663c542c20493e000024dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0061015061796d656e743a205468652067726f757027732043616e646964617465204465706f7369742077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e14756e62696400011cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e14766f7563680c010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e000244410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e1c756e766f75636800031c29014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e10766f746508012463616e646964617465990201504163636f756e7449644c6f6f6b75704f663c543e00011c617070726f7665200110626f6f6c0004208441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e34646566656e6465725f766f746504011c617070726f7665200110626f6f6c00051c8841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e187061796f757400062841015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e2c77616976655f7265706179040118616d6f756e7418013c42616c616e63654f663c542c20493e0007084d01526570617920746865207061796d656e742070726576696f75736c7920676976656e20746f20746865206d656d626572207769746820746865207369676e6564206f726967696e2c2072656d6f766520616e79e470656e64696e67207061796d656e74732c20616e6420656c6576617465207468656d2066726f6d2072616e6b203020746f2072616e6b20312e34666f756e645f736f636965747918011c666f756e646572990201504163636f756e7449644c6f6f6b75704f663c543e00012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e00011472756c657338011c5665633c75383e00084448466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e0040436f6d706c65786974793a204f28312920646973736f6c7665000914b0446973736f6c76652074686520736f636965747920616e642072656d6f766520616c6c206d656d626572732e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e586a756467655f73757370656e6465645f6d656d62657208010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00011c666f7267697665200110626f6f6c000a382901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642066726f6d2074686520466f756e6465722e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e387365745f706172616d657465727310012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e000b3061014368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f636965747920616e6420746865206d6178696d756d206e756d626572206f66206e65772063616e6469646174657368696e20612073696e676c6520696e74616b6520706572696f642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642062792074686520466f756e6465722e002c506172616d65746572733a55012d20606d61785f6d656d6265727360202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e2054686973206d757374206265206e6f206c6573739420207468616e207468652063757272656e74206e756d626572206f66206d656d626572732e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702e3870756e6973685f736b6570746963000c08550150756e6973682074686520736b65707469632077697468206120737472696b65206966207468657920646964206e6f7420766f7465206f6e20612063616e6469646174652e2043616c6c61626c65206279207468652863616e6469646174652e40636c61696d5f6d656d62657273686970000d080d015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865f87468652063616e6469646174652c20616e64206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642e44626573746f775f6d656d6265727368697004012463616e646964617465000130543a3a4163636f756e744964000e0c61015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e206f66207468655901466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e64656420616e64206f6e6c79207768656e207468652063616e646964617465206973206e6f7444636c6561726c792072656a65637465642e386b69636b5f63616e64696461746504012463616e646964617465000130543a3a4163636f756e744964000f145d0152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e55016f662074686520466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642c20616e64206f6e6c79207768656e207468657920646f206e6f745868617665206120636c65617220617070726f76616c2e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e4072657369676e5f63616e64696461637900100c510152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c79206279207468652063616e6469646174652e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e3864726f705f63616e64696461746504012463616e646964617465000130543a3a4163636f756e7449640011142d0152656d6f76652061206063616e646964617465602773206661696c6564206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c6520627920616e7919017369676e6564206f726967696e20627574206f6e6c792061742074686520656e64206f66207468652073756273657175656e7420726f756e6420616e64206f6e6c7920666f72c0612063616e6469646174652077697468206d6f72652072656a656374696f6e73207468616e20617070726f76616c732e00c854686520626964206465706f736974206973206c6f737420616e642074686520766f75636865722069732062616e6e65642e44636c65616e75705f63616e64696461637908012463616e646964617465000130543a3a4163636f756e74496400010c6d617810010c75333200120ce452656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520676976656e206063616e646964617465602e0059014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c79206166746572207468652063616e64696461746527732063616e64696461637920697320656e6465642e44636c65616e75705f6368616c6c656e676508013c6368616c6c656e67655f726f756e64100128526f756e64496e64657800010c6d617810010c75333200130c3d0152656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520646566656e64657220696e2074686520676976656e20606368616c6c656e67655f726f756e64602e0041014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c7920616674657220746865206368616c6c656e676520726f756e6420697320656e6465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9040c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001243061735f7265636f766572656408011c6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000020a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e347365745f7265636f76657265640801106c6f7374990201504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572990201504163636f756e7449644c6f6f6b75704f663c543e0001201901416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e3c6372656174655f7265636f766572790c011c667269656e6473650101445665633c543a3a4163636f756e7449643e0001247468726573686f6c649501010c75313600013064656c61795f706572696f64100144426c6f636b4e756d626572466f723c543e00024059014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e44696e6974696174655f7265636f7665727904011c6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e00032ce8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e38766f7563685f7265636f766572790801106c6f7374990201504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572990201504163636f756e7449644c6f6f6b75704f663c543e0004302501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e38636c61696d5f7265636f7665727904011c6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e000524f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e38636c6f73655f7265636f7665727904011c72657363756572990201504163636f756e7449644c6f6f6b75704f663c543e00062c110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e3c72656d6f76655f7265636f7665727900072c590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e4063616e63656c5f7265636f766572656404011c6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e00081cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd040c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65010501b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365990201504163636f756e7449644c6f6f6b75704f663c543e000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65010501b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765749902018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000005050c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963090501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963090501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963090501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963090501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b790101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e090504184f7074696f6e0404540179010108104e6f6e6500000010536f6d650400790100000100000d050c3870616c6c65745f676c7574746f6e1870616c6c65741043616c6c04045400011444696e697469616c697a655f70616c6c65740801246e65775f636f756e7410010c7533320001347769746e6573735f636f756e749c012c4f7074696f6e3c7533323e0000183d01496e697469616c697a65207468652070616c6c65742e2053686f756c642062652063616c6c6564206f6e63652c206966206e6f2067656e65736973207374617465207761732070726f76696465642e0051016063757272656e745f636f756e7460206973207468652063757272656e74206e756d626572206f6620656c656d656e747320696e2060547261736844617461602e20546869732063616e2062652073657420746fb0604e6f6e6560207768656e207468652070616c6c657420697320666972737420696e697469616c697a65642e0049014f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e204120676f6f642064656661756c7420666f7220606e65775f636f756e74602069732060355f303030602e2c7365745f636f6d7075746504011c636f6d7075746585010120466978656455363400010c410153657420686f77206d756368206f66207468652072656d61696e696e6720607265665f74696d6560207765696768742073686f756c6420626520636f6e73756d656420627920606f6e5f69646c65602e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e2c7365745f73746f7261676504011c73746f7261676585010120466978656455363400021c490153657420686f77206d756368206f66207468652072656d61696e696e67206070726f6f665f73697a6560207765696768742073686f756c6420626520636f6e73756d656420627920606f6e5f69646c65602e00490160312e3060206d65616e73207468617420616c6c2072656d61696e696e67206070726f6f665f73697a65602077696c6c20626520636f6e73756d65642e2054686520506f562062656e63686d61726b696e676101726573756c74732074686174206172652075736564206865726520617265206c696b656c7920616e206f7665722d657374696d6174696f6e2e203130302520696e74656e64656420636f6e73756d7074696f6e2077696c6ce47468657265666f7265207472616e736c61746520746f206c657373207468616e20313030252061637475616c20636f6e73756d7074696f6e2e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e14626c6f617404011c67617262616765110501545665633c5b75383b2056414c55455f53495a455d3e0003040501496e6372656173652074686520626c6f636b2073697a6520627920696e636c7564696e67207468652073706563696669656420676172626167652062797465732e407365745f626c6f636b5f6c656e677468040130626c6f636b5f6c656e677468850101204669786564553634000418410153657420686f77206d756368206f662074686520626c6f636b206c656e6774682073686f756c642062652066696c6c656420776974682074726173682064617461206f6e206561636820626c6f636b2e00550160312e3060206d65616e73207468617420616c6c20626c6f636b2073686f756c642062652066696c6c65642e2049662073657420746f2060312e30602c2073746f726167652070726f6f662073697a652077696c6c4820626520636c6f736520746f207a65726f2e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1105000002150500150500000300040000080019050c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f757064617465640401186861736865731d0501305665633c543a3a486173683e00040cc4456e7375726520746861742074686520612062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d05000002340021050c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c990201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706591010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706591010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706591010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465789501010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706591010130543a3a50726f787954797065000114696e6465789501010c75313600011868656967687475020144426c6f636b4e756d626572466f723c543e0001246578745f696e6465787502010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e39012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f206070757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c990201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c990201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e0001107265616c990201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e250504184f7074696f6e0404540191010108104e6f6e6500000010536f6d6504009101000001000029050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c649501010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e742d0501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c649501010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e742d0501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c649501010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d0504184f7074696f6e040454019d010108104e6f6e6500000010536f6d6504009d01000001000031050c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0804540004490001243870726f706f73655f626f756e747908011476616c75654501013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f69647502012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f69647502012c426f756e7479496e64657800011c63757261746f72990201504163636f756e7449644c6f6f6b75704f663c543e00010c6665654501013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f69647502012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f69647502012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f69647502012c426f756e7479496e64657800012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f69647502012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f69647502012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f69647502012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35050c2c70616c6c65745f746970731870616c6c65741043616c6c080454000449000118387265706f72745f617765736f6d65080118726561736f6e38011c5665633c75383e00010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00004059015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e0034232320436f6d706c6578697479982d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e272c726574726163745f7469700401106861736834011c543a3a486173680001405101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e0034232320436f6d706c6578697479202d20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e1c7469705f6e65770c0118726561736f6e38011c5665633c75383e00010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e0001247469705f76616c75654501013c42616c616e63654f663c542c20493e00024cf04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e0034232320436f6d706c657869747921012d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052600c7469700801106861736834011c543a3a486173680001247469705f76616c75654501013c42616c616e63654f663c542c20493e000354b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e0034232320436f6d706c657869747961012d20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572745901202074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e24636c6f73655f7469700401106861736834011c543a3a486173680004345c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e0034232320436f6d706c65786974795d012d203a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460590120206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e94202074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e24736c6173685f7469700401106861736834011c543a3a486173680005289452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e0034232320436f6d706c65786974791c2d204f2831292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000180186372656174650c010869647502014c543a3a41737365744964506172616d6574657200011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e636545010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869647502014c543a3a41737365744964506172616d6574657200022cdc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00f854686520617373657420636c617373206d7573742062652066726f7a656e206265666f72652063616c6c696e67206073746172745f64657374726f79602e4064657374726f795f6163636f756e747304010869647502014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869647502014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869647502014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869647502014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869647502014c543a3a41737365744964506172616d65746572000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869647502014c543a3a41737365744964506172616d65746572000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869647502014c543a3a41737365744964506172616d65746572000118736f75726365990201504163636f756e7449644c6f6f6b75704f663c543e00011064657374990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869647502014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869647502014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869647502014c543a3a41737365744964506172616d65746572000118697373756572990201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572990201504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869647502014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869647502014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869647502014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869647502014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000118697373756572990201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572990201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e636545010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869647502014c543a3a41737365744964506172616d6574657200012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869647502014c543a3a41737365744964506172616d6574657200012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869647502014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869647502014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b28590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869647502014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e001e285d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000180186372656174650c010869647502014c543a3a41737365744964506172616d6574657200011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e636545010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869647502014c543a3a41737365744964506172616d6574657200022cdc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00f854686520617373657420636c617373206d7573742062652066726f7a656e206265666f72652063616c6c696e67206073746172745f64657374726f79602e4064657374726f795f6163636f756e747304010869647502014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869647502014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869647502014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869647502014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869647502014c543a3a41737365744964506172616d65746572000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869647502014c543a3a41737365744964506172616d65746572000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869647502014c543a3a41737365744964506172616d65746572000118736f75726365990201504163636f756e7449644c6f6f6b75704f663c543e00011064657374990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869647502014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869647502014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869647502014c543a3a41737365744964506172616d65746572000118697373756572990201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572990201504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869647502014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869647502014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869647502014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869647502014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000118697373756572990201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572990201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e636545010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869647502014c543a3a41737365744964506172616d6574657200012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869647502014c543a3a41737365744964506172616d6574657200012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869647502014c543a3a41737365744964506172616d657465720001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e990201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7445010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869647502014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869647502014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b28590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869647502014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e001e285d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869647502014c543a3a41737365744964506172616d6574657200010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41050c3070616c6c65745f62656566791870616c6c65741043616c6c04045400011c507265706f72745f646f75626c655f766f74696e6708014865717569766f636174696f6e5f70726f6f664505018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e747265706f72745f646f75626c655f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f664505018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e487265706f72745f666f726b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66610501ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600030c3d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e6c7265706f72745f666f726b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66610501ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f660004203d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e687265706f72745f6675747572655f626c6f636b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66710501e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f6600050c5d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e8c7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66710501e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f6681020140543a3a4b65794f776e657250726f6f660006205d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4505084873705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d626572011008496401d503245369676e61747572650149050008011466697273744d050188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e644d050188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e000049050c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400f104014065636473613a3a5369676e617475726500004d05084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d626572011008496401d503245369676e6174757265014905000c0128636f6d6d69746d656e7451050148436f6d6d69746d656e743c4e756d6265723e0001086964d503010849640001247369676e6174757265490501245369676e6174757265000051050c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61645505011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f725365744964000055050c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f616400000400590501785665633c2842656566795061796c6f616449642c205665633c75383e293e000059050000025d05005d0500000408690438006105084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201710208496401d50334416e63657374727950726f6f66016505000c0110766f74654d0501b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6665050134416e63657374727950726f6f660001186865616465727102011848656164657200006505084473705f6d6d725f7072696d69746976657334416e63657374727950726f6f66041048617368013400100128707265765f7065616b731d0501245665633c486173683e00013c707265765f6c6561665f636f756e7430010c7536340001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73690501405665633c287536342c2048617368293e000069050000026d05006d05000004083034007105084873705f636f6e73656e7375735f626565667958467574757265426c6f636b566f74696e6750726f6f6608184e756d626572011008496401d50300040110766f74654d050198566f74654d6573736167653c4e756d6265722c2049642c2049643a3a5369676e61747572653e000075050c3870616c6c65745f6c6f74746572791870616c6c65741043616c6c040454000110286275795f7469636b657404011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00002c884275792061207469636b657420746f20656e74657220746865206c6f74746572792e000101546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0901736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c6420737563636565642e000d014966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c11017768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75ac73686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c4546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c7304011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011811015365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e001d01546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e250170726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d0546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279100114707269636518013042616c616e63654f663c543e0001186c656e677468100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e000118726570656174200110626f6f6c000228c453746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e002c506172616d65746572733a009c2a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e39012a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e45012a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee02a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174000310fc49662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ebc546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e79050c2870616c6c65745f6e69731870616c6c65741043616c6c04045400011c24706c6163655f626964080118616d6f756e744501013042616c616e63654f663c543e0001206475726174696f6e10010c75333200002c30506c6163652061206269642e003d014f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e0031012d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642c20616e642069662f7768656ecc2020636f6e736f6c6964617465642c2072656d6f7665642e204d757374206265206174206c6561737420604d696e426964602e49012d20606475726174696f6e603a20546865206e756d626572206f6620706572696f6473206265666f726520776869636820746865206e65776c7920636f6e736f6c69646174656420626964206d6179206265fc20207468617765642e204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e0034436f6d706c657869746965733aac2d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f626964080118616d6f756e744501013042616c616e63654f663c543e0001206475726174696f6e10010c75333200011c805265747261637420612070726576696f75736c7920706c61636564206269642e005d014f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d616374697665206269646c6f662060616d6f756e746020666f7220606475726174696f6e602e00ac2d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ebc2d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e3066756e645f6465666963697400020cf0456e7375726520776520686176652073756666696369656e742066756e64696e6720666f7220616c6c20706f74656e7469616c207061796f7574732e00b42d20606f726967696e603a204d757374206265206163636570746564206279206046756e644f726967696e602e30746861775f70726976617465080114696e6465787502013052656365697074496e6465780001406d617962655f70726f706f7274696f6e7d05014c4f7074696f6e3c5065727175696e74696c6c3e0003205d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0059012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f662074686520726563656970742060696e646578602061738c202077656c6c20617320616e792066756e6769626c6520636f756e746572706172742e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e5d012d2060706f7274696f6e603a2049662060536f6d65602c207468656e206f6e6c792074686520676976656e20706f7274696f6e206f662074686520726563656970742073686f756c64206265207468617765642e2049668c2020604e6f6e65602c207468656e20616c6c206f662069742073686f756c642062652e34746861775f636f6d6d756e616c040114696e6465787502013052656365697074496e6465780004185d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0061012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652066756e6769626c6520636f756e74657270617274582020666f7220726563656970742060696e646578602e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e24636f6d6d756e696679040114696e6465787502013052656365697074496e6465780005043d014d616b6520612070726976617465207265636569707420636f6d6d756e616c20616e64206372656174652066756e6769626c6520636f756e746572706172747320666f7220697473206f776e65722e24707269766174697a65040114696e6465787502013052656365697074496e64657800060439014d616b65206120636f6d6d756e616c2072656365697074207072697661746520616e64206275726e2066756e6769626c6520636f756e74657270617274732066726f6d20697473206f776e65722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d0504184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000081050c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e000040090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00ac604974656d4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a61012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e657720636f6c6c656374696f6e2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c000144190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0049012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e6577206974656d2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e39012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c207375706572757365723420207065726d697373696f6e7321016f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573738505013844657374726f795769746e65737300023c9c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00645765696768743a20604f286e202b206d29602077686572653a542d20606e203d207769746e6573732e6974656d7360782d20606d203d207769746e6573732e6974656d5f6d657461646174617360682d206061203d207769746e6573732e6174747269627574657360106d696e740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e00032ca04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e004101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ec82d20606974656d603a20546865206974656d2076616c7565206f6620746865206974656d20746f206265206d696e7465642ed82d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e746564206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012c636865636b5f6f776e6572890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00043c5844657374726f7920612073696e676c65206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265206275726e65642e51012d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c657373207468657820206974656d206973206f776e656420627920746869732076616c75652e00b4456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e00385765696768743a20604f283129607c4d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374990201504163636f756e7449644c6f6f6b75704f663c543e000544c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00b454686973207265736574732074686520617070726f766564206163636f756e74206f6620746865206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642ec42d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c90101385665633c543a3a4974656d49643e0006449852656576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f6620746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e2829296018667265657a65080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000728c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652066726f7a656e2eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207468617765642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f2831296044667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000924fc446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e0064456d6974732060436f6c6c656374696f6e46726f7a656e602e00385765696768743a20604f283129603c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000a24dc52652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265207468617765642e0064456d6974732060436f6c6c656374696f6e546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572990201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572990201504163636f756e7449644c6f6f6b75704f663c543e000c30d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e000d381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e004d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265f865697468657220746865206f776e6572206f662074686520606974656d60206f72207468652061646d696e206f662074686520636f6c6c656374696f6e2e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e15012d20606974656d603a20546865206974656d206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e001901496d706f7274616e74204e4f54453a205468652060617070726f76656460206163636f756e7420676574732072657365742061667465722065616368207472616e736665722e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001506d617962655f636865636b5f64656c6567617465890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e40110143616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e206974656d20627920612064656c65676174652e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3bfc2d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652060636f6c6c656374696f6e603be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e0d012d20606974656d603a20546865206974656d206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e51012d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296044666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000118697373756572990201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572990201504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c00012469735f66726f7a656e200110626f6f6c000f4094416c746572207468652061747472696275746573206f66206120676976656e206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00ac2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2e982d20606f776e6572603a20546865206e6577204f776e6572206f662074686973206974656d2ea02d2060697373756572603a20546865206e657720497373756572206f662074686973206974656d2e982d206061646d696e603a20546865206e65772041646d696e206f662074686973206974656d2ea82d2060667265657a6572603a20546865206e657720467265657a6572206f662074686973206974656d2e51012d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e206974656d206f66207468697320636f6c6c656374696f6e2e39012d206069735f66726f7a656e603a2057686574686572207468697320636f6c6c656374696f6e2069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e0456d69747320604974656d5374617475734368616e67656460207769746820746865206964656e74697479206f6620746865206974656d2e00385765696768743a20604f28312960347365745f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00010c6b65795d01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001044a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2901604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f6174747269627574650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00010c6b65795d01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e001138b0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f28312960307365745f6d65746164617461100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0012447453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640013347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0014408853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400153090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e9c015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001628110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c75333200172ce053657420746865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00e44e6f74653a20546869732066756e6374696f6e2063616e206f6e6c792073756363656564206f6e63652070657220636f6c6c656374696f6e2e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365b103015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00182c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520617373657420606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e001924a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85050c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d737502010c7533320001386974656d5f6d65746164617461737502010c753332000128617474726962757465737502010c7533320000890504184f7074696f6e0404540199020108104e6f6e6500000010536f6d650400990200000100008d050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e990201504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696791050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696791050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e657373ad05013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f990201504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461b10501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f990201504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967b90501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374990201504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c90101385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e677395050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572990201504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e66696791050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e659c01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f6173ac01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d9c01444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465990201504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e657373bd05017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e9c015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e67739d050105014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c543e2c20543a3a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365b103015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572890501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073c105019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d9c01444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100144426c6f636b4e756d626572466f723c543e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461cd050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265ed040150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c011064617461d105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265ed040150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e677395050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c799c012c4f7074696f6e3c7533323e0001346d696e745f73657474696e67739d0501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e000095050c2c70616c6c65745f6e66747314747970657320426974466c616773040454019905000400300144436f6c6c656374696f6e53657474696e67000099050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f7369745265717569726564001000009d050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065a10501584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365b10301344f7074696f6e3c50726963653e00012c73746172745f626c6f636b9c014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b9c014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773a50501304974656d53657474696e67730000a1050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000a5050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401a90500040030012c4974656d53657474696e670000a9050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040000ad050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d65746164617461737502010c7533320001306974656d5f636f6e666967737502010c753332000128617474726962757465737502010c7533320000b10504184f7074696f6e04045401b5050108104e6f6e6500000010536f6d650400b5050000010000b5050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d9c01384f7074696f6e3c4974656d49643e0001286d696e745f7072696365b103013c4f7074696f6e3c42616c616e63653e0000b9050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773a50501304974656d53657474696e67730000bd050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000c1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c505045300000400c90501185665633c543e0000c5050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000c905000002c50500cd050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733d02015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365b103013c4f7074696f6e3c42616c616e63653e0000d1050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733d02015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365d90101744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e650000d5050c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c65741043616c6c040454000108346672616374696f6e616c697a651401446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e0001246672616374696f6e73180144417373657442616c616e63654f663c543e000044ac4c6f636b20746865204e465420616e64206d696e742061206e65772066756e6769626c652061737365742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0101546865206f726967696e206d75737420626520746865206f776e6572206f6620746865204e465420746865792061726520747279696e6720746f206c6f636b2e009c604465706f736974602066756e6473206f662073656e646572206172652072657365727665642e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602ee42d206061737365745f6964603a20546865204944206f6620746865206e65772061737365742e204974206d757374206e6f742065786973742eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602e1d012d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c207265636569766520746865206e65776c7920637265617465642061737365742e0d012d20606672616374696f6e73603a2054686520746f74616c2069737375616e6365206f6620746865206e65776c79206372656174656420617373657420636c6173732e00c0456d69747320604e66744672616374696f6e616c697a656460206576656e74207768656e207375636365737366756c2e14756e6966791001446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e00014045014275726e2074686520746f74616c2069737375616e6365206f66207468652066756e6769626c6520617373657420616e642072657475726e2028756e6c6f636b2920746865206c6f636b6564204e46542e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e00d0604465706f736974602066756e64732077696c6c2062652072657475726e656420746f206061737365745f63726561746f72602e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e29012d206061737365745f6964603a20546865204944206f6620746865206173736574206265696e672072657475726e656420616e642064657374726f7965642e204d757374206d61746368fc746865206f726967696e616c204944206f662074686520637265617465642061737365742c20636f72726573706f6e64696e6720746f20746865204e46542eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602efc2d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c20726563656976652074686520756e6966696564204e46542e00a4456d69747320604e6674556e696669656460206576656e74207768656e207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9050c3470616c6c65745f73616c6172791870616c6c65741043616c6c08045400044900011c10696e697400000c74537461727420746865206669727374207061796f7574206379636c652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e1062756d7000010c51014d6f766520746f206e657874207061796f7574206379636c652c20617373756d696e672074686174207468652070726573656e7420626c6f636b206973206e6f772077697468696e2074686174206379636c652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e18696e6475637400020498496e64756374206f6e6573656c6620696e746f20746865207061796f75742073797374656d2e20726567697374657200031858526567697374657220666f722061207061796f75742e00450157696c6c206f6e6c7920776f726b2069662077652061726520696e207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c6520737461727465642e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602e187061796f757400041844526571756573742061207061796f75742e00510157696c6c206f6e6c7920776f726b20696620776520617265206166746572207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c65c87374617274656420627574206279206e6f206d6f7265207468616e20605061796f7574506572696f646020626c6f636b732e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602e307061796f75745f6f7468657204012c62656e6566696369617279000130543a3a4163636f756e74496400051ca0526571756573742061207061796f757420746f2061207365636f6e64617279206163636f756e742e00510157696c6c206f6e6c7920776f726b20696620776520617265206166746572207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c65c87374617274656420627574206279206e6f206d6f7265207468616e20605061796f7574506572696f646020626c6f636b732e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602ec02d206062656e6566696369617279603a20546865206163636f756e7420746f2072656365697665207061796d656e742e34636865636b5f7061796d656e7400061c5d015570646174652061207061796d656e742773207374617475733b206966206974206661696c65642c20616c7465722074686520737461746520736f20746865207061796d656e742063616e20626520726574726965642e00490154686973206d7573742062652063616c6c65642077697468696e207468652073616d65206379636c6520617320746865206661696c6564207061796d656e742e2049742077696c6c206661696c207769746878604576656e743a3a4e6f7443757272656e7460206f74686572776973652e0049012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602077686f2068617380202072656365697665642061207061796d656e742074686973206379636c652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd050c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c65741043616c6c08045400044900012c1062756d7004010c77686f000130543a3a4163636f756e74496400001c6c42756d7020746865207374617465206f662061206d656d6265722e001d01546869732077696c6c2064656d6f74652061206d656d6265722077686f736520606c6173745f70726f6f6660206973206e6f77206265796f6e642074686569722072616e6b2773486064656d6f74696f6e5f706572696f64602e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742edc2d206077686f603a2041206d656d626572206163636f756e742077686f736520737461746520697320746f20626520757064617465642e287365745f706172616d73040118706172616d73f901014c426f783c506172616d734f663c542c20493e3e0001104c5365742074686520706172616d65746572732e00f02d20606f726967696e603a20416e206f726967696e20636f6d706c79696e6720776974682060506172616d734f726967696e60206f7220726f6f742eb82d2060706172616d73603a20546865206e657720706172616d657465727320666f72207468652070616c6c65742e287365745f61637469766504012469735f616374697665200110626f6f6c0002109853657420776865746865722061206d656d62657220697320616374697665206f72206e6f742e00d02d20606f726967696e603a204120605369676e656460206f726967696e206f662061206d656d6265722773206163636f756e742ebc2d206069735f616374697665603a206074727565602069666620746865206d656d626572206973206163746976652e1c617070726f766508010c77686f000130543a3a4163636f756e74496400011c61745f72616e6b9501013052616e6b4f663c542c20493e000324ac417070726f76652061206d656d62657220746f20636f6e74696e75652061742074686569722072616e6b2e005d01546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b2c20746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2e0021016077686f60206d75737420616c726561647920626520747261636b656420627920746869732070616c6c657420666f72207468697320746f206861766520616e206566666563742e00f82d20606f726967696e603a20416e206f726967696e207768696368207361746973666965732060417070726f76654f726967696e60206f7220726f6f742ea82d206077686f603a2041206d656d6265722028692e652e206f66206e6f6e2d7a65726f2072616e6b292e802d206061745f72616e6b603a205468652072616e6b206f66206d656d6265722e18696e6475637404010c77686f000130543a3a4163636f756e744964000410cc496e74726f647563652061206e657720616e6420756e72616e6b65642063616e646964617465202872616e6b207a65726f292e00f42d20606f726967696e603a20416e206f726967696e207768696368207361746973666965732060496e647563744f726967696e60206f7220726f6f742e31012d206077686f603a20546865206163636f756e74204944206f66207468652063616e64696461746520746f20626520696e64756374656420616e64206265636f6d652061206d656d6265722e1c70726f6d6f746508010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9501013052616e6b4f663c542c20493e000518cc496e6372656d656e74207468652072616e6b206f6620612072616e6b656420616e6420747261636b6564206163636f756e742e0041012d20606f726967696e603a20416e206f726967696e20776869636820736174697366696573206050726f6d6f74654f726967696e60207769746820612060537563636573736020726573756c74206f6670202060746f5f72616e6b60206f72206d6f7265206f7220726f6f742e09012d206077686f603a20546865206163636f756e74204944206f6620746865206d656d62657220746f2062652070726f6d6f74656420746f2060746f5f72616e6b602ed42d2060746f5f72616e6b603a204f6e65206d6f7265207468616e207468652063757272656e742072616e6b206f66206077686f602e3070726f6d6f74655f6661737408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9501013052616e6b4f663c542c20493e000a141501466173742070726f6d6f74696f6e732063616e20736b69702072616e6b7320616e642069676e6f72652074686520606d696e5f70726f6d6f74696f6e5f706572696f64602e005901546869732069732075736566756c20666f72206f75742d6f662d62616e642070726f6d6f74696f6e732c2068656e63652069742068617320697473206f776e20604661737450726f6d6f74654f726967696e6020746f590162652028706f737369626c7929206d6f7265207265737472696374697665207468616e206050726f6d6f74654f726967696e602e204e6f7465207468617420746865206d656d626572206d75737420616c726561647930626520696e6475637465642e206f6666626f61726404010c77686f000130543a3a4163636f756e744964000614390153746f7020747261636b696e672061207072696f72206d656d6265722077686f206973206e6f77206e6f7420612072616e6b6564206d656d626572206f662074686520636f6c6c6563746976652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e55012d206077686f603a20546865204944206f6620616e206163636f756e742077686963682077617320747261636b656420696e20746869732070616c6c657420627574207768696368206973206e6f77206e6f74206188202072616e6b6564206d656d626572206f662074686520636f6c6c6563746976652e3c7375626d69745f65766964656e636508011077697368090201105769736800012065766964656e63650d02013845766964656e63653c542c20493e000728a450726f766964652065766964656e6365207468617420612072616e6b2069732064657365727665642e005d01546869732069732066726565206173206c6f6e67206173206e6f2065766964656e636520666f722074686520666f727468636f6d696e67206a756467656d656e7420697320616c7265616479207375626d69747465642e390145766964656e636520697320636c656172656420616674657220616e206f7574636f6d6520286569746865722064656d6f74696f6e2c2070726f6d6f74696f6e206f6620617070726f76616c292e0001012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e20696e64756374656420616e642072616e6b6564206163636f756e742ea82d206077697368603a205468652073746174656420646573697265206f6620746865206d656d6265722e51012d206065766964656e6365603a20412064756d70206f662065766964656e636520746f20626520636f6e736964657265642e20546869732073686f756c642067656e6572616c6c79206265206569746865722061450120204d61726b646f776e2d656e636f64656420646f63756d656e74206f72206120736572696573206f662033322d62797465206861736865732077686963682063616e20626520666f756e64206f6e2061ec2020646563656e7472616c6973656420636f6e74656e742d62617365642d696e646578696e672073797374656d207375636820617320495046532e18696d706f727400081c5d01496e74726f6475636520616e20616c72656164792d72616e6b656420696e646976696475616c206f662074686520636f6c6c65637469766520696e746f20746869732070616c6c65742e205468652072616e6b206d6179387374696c6c206265207a65726f2e005d01546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b20616e6420606c6173745f70726f6d6f74696f6e602077696c6c2062652073657420746f207a65726f2c2501746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2062757420616c6c6f77696e6720696d6d6564696174652070726f6d6f74696f6e2e0009012d20606f726967696e603a2041207369676e6564206f726967696e206f6620612072616e6b65642c20627574206e6f7420747261636b65642c206163636f756e742e487365745f7061727469616c5f706172616d730401387061727469616c5f706172616d73e1050168426f783c5061727469616c506172616d734f663c542c20493e3e00091c745365742074686520706172616d6574657273207061727469616c6c792e00f02d20606f726967696e603a20416e206f726967696e20636f6d706c79696e6720776974682060506172616d734f726967696e60206f7220726f6f742ed82d20607061727469616c5f706172616d73603a20546865206e657720706172616d657465727320666f72207468652070616c6c65742e00f8546869732075706461746520636f6e6669672077697468206d756c7469706c6520617267756d656e747320776974686f7574206475706c69636174696e67d8746865206669656c6473207468617420646f6573206e6f74206e65656420746f20757064617465202873657420746f204e6f6e65292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee105085870616c6c65745f636f72655f66656c6c6f777368697028506172616d73547970650c1c42616c616e636501b1032c426c6f636b4e756d626572019c1452616e6b7300001401346163746976655f73616c617279e5050168426f756e6465645665633c42616c616e63652c2052616e6b733e000138706173736976655f73616c617279e5050168426f756e6465645665633c42616c616e63652c2052616e6b733e00013c64656d6f74696f6e5f706572696f64ed050178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001506d696e5f70726f6d6f74696f6e5f706572696f64ed050178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001406f6666626f6172645f74696d656f75749c012c426c6f636b4e756d6265720000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400e90501185665633c543e0000e905000002b10300ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019c045300000400f10501185665633c543e0000f1050000029c00f5050c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c65741043616c6c04045400010c1473746f72650401106461746138011c5665633c75383e0000142101496e64657820616e642073746f72652064617461206f666620636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d2069736101604d61785472616e73616374696f6e53697a65602e20446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577602869732063616c6c65642e34232320436f6d706c65786974791d012d204f286e2a6c6f67286e2929206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e1472656e6577080114626c6f636b100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001182d0152656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e73250170726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e01015472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e744170706c6965732073616d652066656573206173206073746f7265602e34232320436f6d706c65786974791c2d204f2831292e2c636865636b5f70726f6f6604011470726f6f66f905015c5472616e73616374696f6e53746f7261676550726f6f660002181901436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e01014966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e34232320436f6d706c657869747941012d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d28202070726f62696e672e9c546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef905087073705f7472616e73616374696f6e5f73746f726167655f70726f6f665c5472616e73616374696f6e53746f7261676550726f6f6600000801146368756e6b38011c5665633c75383e00011470726f6f66450201305665633c5665633c75383e3e0000fd050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564990201504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572990201504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572990201504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572990201504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e6669670506015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974730906013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b0d0601404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973450201305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b657973450201305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974730906013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f701106013450726f67726573734f663c543e00013870726f67726573735f6368696c641106013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e050604184f7074696f6e0404540109060108104e6f6e6500000010536f6d6504000906000001000009060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c75333200000d060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f701106013450726f67726573734f663c543e00013870726f67726573735f6368696c641106013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c753332000011060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b6579040015060164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c6574650002000015060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019060c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800011476616c75654501013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647502012c426f756e7479496e64657800011c63757261746f72990201504163636f756e7449644c6f6f6b75704f663c543e00010c6665654501013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647502012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647502012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647502012c426f756e7479496e64657800012c62656e6566696369617279990201504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647502012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f69647502012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647502012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d060c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e5102015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e742106017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b9501013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368e503013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e210610346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d6265720001000025060c3470616c6c65745f72656d61726b1870616c6c65741043616c6c0404540001041473746f726504011872656d61726b38011c5665633c75383e0000047c496e64657820616e642073746f72652064617461206f666620636861696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29060c4c70616c6c65745f726f6f745f74657374696e671870616c6c65741043616c6c0404540001082866696c6c5f626c6f636b040114726174696fc4011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e44747269676765725f646566656e73697665000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d060c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e64657875020144506f6c6c496e6465784f663c542c20493e000110766f7465310601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c61737395010134436c6173734f663c542c20493e000108746f990201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e39060128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c61737395010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c61737395010134436c6173734f663c542c20493e000118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373110201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574990201504163636f756e7449644c6f6f6b75704f663c543e000114636c61737395010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746535060110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000035060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f7465000004000800000039060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b65643678000600003d060c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41060c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001182c7365745f6d656d626572730c012c6e65775f6d656d62657273650101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c647502012c4d656d626572436f756e7400012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647502010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45060c3c70616c6c65745f616c6c69616e63651870616c6c65741043616c6c0804540004490001441c70726f706f73650c01247468726573686f6c647502010c75333200012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647502010c75333200000c884164642061206e65772070726f706f73616c20746f20626520766f746564206f6e2e006c4d7573742062652063616c6c656420627920612046656c6c6f772e10766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c00010cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e006c4d7573742062652063616c6c656420627920612046656c6c6f772e30696e69745f6d656d6265727308011c66656c6c6f7773650101445665633c543a3a4163636f756e7449643e000118616c6c696573650101445665633c543a3a4163636f756e7449643e000314d0496e697469616c697a652074686520416c6c69616e63652c206f6e626f6172642066656c6c6f777320616e6420616c6c6965732e00310154686520416c6c69616e6365206d75737420626520656d7074792c20616e64207468652063616c6c206d7573742070726f7669646520736f6d6520666f756e64696e67206d656d626572732e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e1c64697362616e6404011c7769746e6573734906013844697362616e645769746e65737300040c1d0144697362616e642074686520416c6c69616e63652c2072656d6f766520616c6c20616374697665206d656d6265727320616e6420756e72657365727665206465706f736974732e00645769746e6573732064617461206d757374206265207365742e207365745f72756c6504011072756c654d06010c436964000504a05365742061206e657720495046532043494420746f2074686520616c6c69616e63652072756c652e20616e6e6f756e6365040130616e6e6f756e63656d656e744d06010c436964000604f44d616b6520616e20616e6e6f756e63656d656e74206f662061206e65772049504653204349442061626f757420616c6c69616e6365206973737565732e4c72656d6f76655f616e6e6f756e63656d656e74040130616e6e6f756e63656d656e744d06010c4369640007045c52656d6f766520616e20616e6e6f756e63656d656e742e346a6f696e5f616c6c69616e6365000804e85375626d6974206f6e6573656c6620666f722063616e6469646163792e2041206669786564206465706f7369742069732072657365727665642e346e6f6d696e6174655f616c6c7904010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e0009084901412046656c6c6f772063616e206e6f6d696e61746520736f6d656f6e6520746f206a6f696e2074686520616c6c69616e636520617320616e20416c6c792e205468657265206973206e6f206465706f7369749c72657175697265642066726f6d20746865206e6f6d696e61746f72206f72206e6f6d696e65652e30656c65766174655f616c6c79040110616c6c79990201504163636f756e7449644c6f6f6b75704f663c543e000a0468456c657661746520616e20416c6c7920746f2046656c6c6f772e58676976655f7265746972656d656e745f6e6f74696365000b085d0141732061206d656d6265722c20676976652061207265746972656d656e74206e6f7469636520616e642073746172742061207265746972656d656e7420706572696f6420726571756972656420746f207061737320696e406f7264657220746f207265746972652e18726574697265000c10010141732061206d656d6265722c207265746972652066726f6d2074686520416c6c69616e636520616e6420756e7265736572766520746865206465706f7369742e002d01546869732063616e206f6e6c7920626520646f6e65206f6e636520796f7520686176652063616c6c65642060676976655f7265746972656d656e745f6e6f746963656020616e642074686578605265746972656d656e74506572696f646020686173207061737365642e2c6b69636b5f6d656d62657204010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000d04d84b69636b2061206d656d6265722066726f6d2074686520416c6c69616e636520616e6420736c61736820697473206465706f7369742e586164645f756e7363727570756c6f75735f6974656d730401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000e04ec416464206163636f756e7473206f7220776562736974657320746f20746865206c697374206f6620756e7363727570756c6f7573206974656d732e6472656d6f76655f756e7363727570756c6f75735f6974656d730401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000f049c4465656d20736f6d65206974656d73206e6f206c6f6e67657220756e7363727570756c6f75732e14636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787502013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647502010c75333200100c5101436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f7665642c206f722077686f736520766f74696e6720706572696f642068617320656e6465642e006c4d7573742062652063616c6c656420627920612046656c6c6f772e5861626469636174655f66656c6c6f775f73746174757300110c59014162646963617465206f6e65277320706f736974696f6e206173206120766f74696e67206d656d62657220616e64206a75737420626520616e20416c6c792e204d617920626520757365642062792046656c6c6f7773450177686f20646f206e6f742077616e7420746f206c656176652074686520416c6c69616e63652062757420646f206e6f7420686176652074686520636170616369747920746f207061727469636970617465706f7065726174696f6e616c6c7920666f7220736f6d652074696d652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49060c3c70616c6c65745f616c6c69616e63651474797065733844697362616e645769746e657373000008013866656c6c6f775f6d656d626572737502010c753332000130616c6c795f6d656d626572737502010c75333200004d060c3c70616c6c65745f616c6c69616e63651474797065730c43696400000c011c76657273696f6e5106011c56657273696f6e000114636f64656330010c75363400011068617368550601244d756c746968617368000051060c3c70616c6c65745f616c6c69616e63651474797065731c56657273696f6e0001080856300000000856310001000055060c3c70616c6c65745f616c6c69616e6365147479706573244d756c7469686173680000080110636f646530010c75363400011864696765737459060170426f756e6465645665633c75382c20436f6e73745533323c36383e3e000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d060000026106006106083c70616c6c65745f616c6c69616e636540556e7363727570756c6f75734974656d08244163636f756e74496401000c55726c0165060108244163636f756e74496404000001244163636f756e7449640000001c5765627369746504006506010c55726c0001000065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000069060c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e744501013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400002845015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e64206973207472616e736665727265642066726f6d20746865206d656d62657220746f20746865dc706f6f6c73206163636f756e7420616e6420696d6d6564696174656c7920696e637265617365732074686520706f6f6c7320626f6e642e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f657874726104011465787472616d06015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e74734501013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e744501013042616c616e63654f663c543e000110726f6f74990201504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72990201504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572990201504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e744501013042616c616e63654f663c543e000110726f6f74990201504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72990201504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572990201504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273650101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00490154686973206469726563746c7920666f7277617264207468652063616c6c20746f20746865207374616b696e672070616c6c65742c206f6e20626568616c66206f662074686520706f6f6c20626f6e646564206163636f756e742e001823204e6f7465005d01496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c20706f6f6c2773206465706f7369746f72206e6565647320746f2068617665f86174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c4964000114737461746571060124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e6475060158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e6475060158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c7379060134436f6e6669674f703c7533323e00012c6d61785f6d656d6265727379060134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6c79060134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e7d060144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f7481060158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f7281060158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e63657281060158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d40704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a59012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f74686572776973652020706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ad82a205468652063616c6c6572206861732061206e6f6d696e61746f72206f7220726f6f7420726f6c65206f662074686520706f6f6c2e490154686973206469726563746c7920666f7277617264207468652063616c6c20746f20746865207374616b696e672070616c6c65742c206f6e20626568616c66206f662074686520706f6f6c20626f6e646564206163636f756e742e40626f6e645f65787472615f6f746865720801186d656d626572990201504163636f756e7449644c6f6f6b75704f663c543e00011465787472616d06015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6e8506013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6e8906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ec4011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174659106019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400141464436c61696d2070656e64696e6720636f6d6d697373696f6e2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e6564206279207468652060726f6f746020726f6c65206f662074686520706f6f6c2e2050656e64696e675d01636f6d6d697373696f6e2069732070616964206f757420616e6420616464656420746f20746f74616c20636c61696d656420636f6d6d697373696f6e602e20546f74616c2070656e64696e6720636f6d6d697373696f6e78697320726573657420746f207a65726f2e207468652063757272656e742e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e950601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e00171c884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005501546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e20496620746865206d656d626572206861731d01736c61736820746f206265206170706c6965642c2063616c6c6572206d61792062652072657761726465642077697468207468652070617274206f662074686520736c6173682e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e74990201504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c52657761726473000100007106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e67000200007506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200007906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007d06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401c4010c104e6f6f700000000c5365740400c40104540001001852656d6f7665000200008106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f7665000200008506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000890604184f7074696f6e040454018d060108104e6f6e6500000010536f6d6504008d0600000100008d0600000408c400009106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365c4011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000950604184f7074696f6e0404540199060108104e6f6e6500000010536f6d650400990600000100009906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e744964000100009d060c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e5102015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e742106017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b9501013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368e503013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea1060c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e0000185c496e74726f647563652061206e6577206d656d6265722e00902d20606f726967696e603a204d7573742062652074686520604164644f726967696e602ee82d206077686f603a204163636f756e74206f66206e6f6e2d6d656d6265722077686963682077696c6c206265636f6d652061206d656d6265722e00385765696768743a20604f283129603870726f6d6f74655f6d656d62657204010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e000118c0496e6372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e00a02d20606f726967696e603a204d75737420626520746865206050726f6d6f74654f726967696e602e902d206077686f603a204163636f756e74206f66206578697374696e67206d656d6265722e00385765696768743a20604f283129603464656d6f74655f6d656d62657204010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00021c5d0144656372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e20496620746865206d656d62657220697320616c72656164792061742072616e6b207a65726f2c7c7468656e2074686579206172652072656d6f76656420656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206044656d6f74654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2e0009015765696768743a20604f283129602c206c65737320696620746865206d656d626572277320696e646578206973206869676865737420696e206974732072616e6b2e3472656d6f76655f6d656d62657208010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e0001206d696e5f72616e6b9501011052616e6b00031c6c52656d6f766520746865206d656d62657220656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206052656d6f76654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2ec02d20606d696e5f72616e6b603a205468652072616e6b206f6620746865206d656d626572206f7220677265617465722e00585765696768743a20604f286d696e5f72616e6b29602e10766f7465080110706f6c6c100144506f6c6c496e6465784f663c542c20493e00010c617965200110626f6f6c00042cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e00c42d20606f726967696e603a204d75737420626520605369676e6564602062792061206d656d626572206163636f756e742eac2d2060706f6c6c603a20496e646578206f66206120706f6c6c207768696368206973206f6e676f696e672e29012d2060617965603a206074727565602069662074686520766f746520697320746f20617070726f7665207468652070726f706f73616c2c206066616c736560206f74686572776973652e0045015472616e73616374696f6e2066656573206172652062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e0035015765696768743a20604f283129602c206c65737320696620746865726520776173206e6f2070726576696f757320766f7465206f6e2074686520706f6c6c20627920746865206d656d6265722e30636c65616e75705f706f6c6c080128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e00010c6d617810010c753332000528d452656d6f766520766f7465732066726f6d2074686520676976656e20706f6c6c2e204974206d757374206861766520656e6465642e00b02d20606f726967696e603a204d75737420626520605369676e65646020627920616e79206163636f756e742e49012d2060706f6c6c5f696e646578603a20496e646578206f66206120706f6c6c20776869636820697320636f6d706c6574656420616e6420666f7220776869636820766f74657320636f6e74696e756520746f20202065786973742efc2d20606d6178603a204d6178696d756d206e756d626572206f6620766f7465206974656d732066726f6d2072656d6f766520696e20746869732063616c6c2e00ec5472616e73616374696f6e2066656573206172652077616976656420696620746865206f7065726174696f6e206973207375636365737366756c2e00150157656967687420604f286d6178296020286c65737320696620746865726520617265206665776572206974656d7320746f2072656d6f7665207468616e20606d617860292e3c65786368616e67655f6d656d62657208010c77686f990201504163636f756e7449644c6f6f6b75704f663c543e00011c6e65775f77686f990201504163636f756e7449644c6f6f6b75704f663c543e000614050145786368616e6765732061206d656d62657220776974682061206e6577206163636f756e7420616e64207468652073616d65206578697374696e672072616e6b2e00a42d20606f726967696e603a204d75737420626520746865206045786368616e67654f726967696e602e39012d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2062652065786368616e6765642e59012d20606e65775f77686f603a204e6577204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2065786368616e67656420746f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5060c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c65741043616c6c0404540001182c6372656174655f706f6f6c080118617373657431a9060144426f783c543a3a41737365744b696e643e000118617373657432a9060144426f783c543a3a41737365744b696e643e00001019014372656174657320616e20656d707479206c697175696469747920706f6f6c20616e6420616e206173736f636961746564206e657720606c705f746f6b656e60206173736574010128746865206964206f662077686963682069732072657475726e656420696e2074686520604576656e743a3a506f6f6c4372656174656460206576656e74292e0011014f6e6365206120706f6f6c20697320637265617465642c20736f6d656f6e65206d6179205b6050616c6c65743a3a6164645f6c6971756964697479605d20746f2069742e346164645f6c69717569646974791c0118617373657431a9060144426f783c543a3a41737365744b696e643e000118617373657432a9060144426f783c543a3a41737365744b696e643e00013c616d6f756e74315f64657369726564180128543a3a42616c616e636500013c616d6f756e74325f64657369726564180128543a3a42616c616e636500012c616d6f756e74315f6d696e180128543a3a42616c616e636500012c616d6f756e74325f6d696e180128543a3a42616c616e636500011c6d696e745f746f000130543a3a4163636f756e744964000138e450726f76696465206c697175696469747920696e746f2074686520706f6f6c206f6620606173736574316020616e642060617373657432602e0d014e4f54453a20616e206f7074696d616c20616d6f756e74206f662061737365743120616e64206173736574322077696c6c2062652063616c63756c6174656420616e6421016d6967687420626520646966666572656e74207468616e207468652070726f76696465642060616d6f756e74315f64657369726564602f60616d6f756e74325f6465736972656460fc7468757320796f752073686f756c642070726f7669646520746865206d696e20616d6f756e7420796f7527726520686170707920746f2070726f766964652ec8506172616d732060616d6f756e74315f6d696e602f60616d6f756e74325f6d696e6020726570726573656e7420746861742e4901606d696e745f746f602077696c6c2062652073656e7420746865206c697175696469747920746f6b656e73207468617420726570726573656e742074686973207368617265206f662074686520706f6f6c2e005d014e4f54453a207768656e20656e636f756e746572696e6720616e20696e636f72726563742065786368616e6765207261746520616e64206e6f6e2d776974686472617761626c6520706f6f6c206c69717569646974792cdc626174636820616e2061746f6d69632063616c6c2077697468205b6050616c6c65743a3a6164645f6c6971756964697479605d20616e6451015b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d206f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d250163616c6c7320746f2072656e64657220746865206c697175696469747920776974686472617761626c6520616e642072656374696679207468652065786368616e676520726174652e00d84f6e6365206c69717569646974792069732061646465642c20736f6d656f6e65206d6179207375636365737366756c6c792063616c6cd85b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d207375636365737366756c6c792e4072656d6f76655f6c6971756964697479180118617373657431a9060144426f783c543a3a41737365744b696e643e000118617373657432a9060144426f783c543a3a41737365744b696e643e0001346c705f746f6b656e5f6275726e180128543a3a42616c616e636500014c616d6f756e74315f6d696e5f72656365697665180128543a3a42616c616e636500014c616d6f756e74325f6d696e5f72656365697665180128543a3a42616c616e636500012c77697468647261775f746f000130543a3a4163636f756e74496400020c4d01416c6c6f777320796f7520746f2072656d6f7665206c69717569646974792062792070726f766964696e672074686520606c705f746f6b656e5f6275726e6020746f6b656e7320746861742077696c6c20626551016275726e656420696e207468652070726f636573732e205769746820746865207573616765206f662060616d6f756e74315f6d696e5f72656365697665602f60616d6f756e74325f6d696e5f726563656976656035016974277320706f737369626c6520746f20636f6e74726f6c20746865206d696e20616d6f756e74206f662072657475726e656420746f6b656e7320796f7527726520686170707920776974682e70737761705f65786163745f746f6b656e735f666f725f746f6b656e7314011070617468ad0601585665633c426f783c543a3a41737365744b696e643e3e000124616d6f756e745f696e180128543a3a42616c616e6365000138616d6f756e745f6f75745f6d696e180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c000318c0537761702074686520657861637420616d6f756e74206f6620606173736574316020696e746f2060617373657432602e2d0160616d6f756e745f6f75745f6d696e6020706172616d20616c6c6f777320796f7520746f207370656369667920746865206d696e20616d6f756e74206f662074686520606173736574326060796f7527726520686170707920746f20726563656976652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e70737761705f746f6b656e735f666f725f65786163745f746f6b656e7314011070617468ad0601585665633c426f783c543a3a41737365744b696e643e3e000128616d6f756e745f6f7574180128543a3a42616c616e6365000134616d6f756e745f696e5f6d6178180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c00041801015377617020616e7920616d6f756e74206f6620606173736574316020746f206765742074686520657861637420616d6f756e74206f662060617373657432602e190160616d6f756e745f696e5f6d61786020706172616d20616c6c6f777320746f207370656369667920746865206d617820616d6f756e74206f662074686520606173736574316060796f7527726520686170707920746f2070726f766964652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e14746f756368080118617373657431a9060144426f783c543a3a41737365744b696e643e000118617373657432a9060144426f783c543a3a41737365744b696e643e00052c4d01546f75636820616e206578697374696e6720706f6f6c20746f2066756c66696c6c2070726572657175697369746573206265666f72652070726f766964696e67206c69717569646974792c20737563682061734901656e737572696e6720746861742074686520706f6f6c2773206163636f756e74732061726520696e20706c6163652e204974206973207479706963616c6c792075736566756c207768656e206120706f6f6c550163726561746f722072656d6f7665732074686520706f6f6c2773206163636f756e747320616e6420646f6573206e6f742070726f766964652061206c69717569646974792e205468697320616374696f6e206d61795501696e766f6c766520686f6c64696e67206173736574732066726f6d207468652063616c6c65722061732061206465706f73697420666f72206372656174696e672074686520706f6f6c2773206163636f756e74732e0068546865206f726967696e206d757374206265205369676e65642e0029012d2060617373657431603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e29012d2060617373657432603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732ea90618346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6520756e696f6e5f6f66384e61746976654f72576974684964041c4173736574496401100108184e617469766500000018576974684964040010011c4173736574496400010000ad06000002a90600b1060c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66590163616c6c696e67205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c7920626520666f6c6c6f776564b0627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800023494436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5060c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e1001484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e1001484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9060c746672616d655f62656e63686d61726b696e675f70616c6c65745f706f761870616c6c65741043616c6c04045400010828656d69745f6576656e74000000106e6f6f70000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd060c3c70616c6c65745f74785f70617573651870616c6c65741043616c6c04045400010814706175736504012466756c6c5f6e616d65c106015052756e74696d6543616c6c4e616d654f663c543e00001034506175736520612063616c6c2e00b843616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a50617573654f726967696e605d2ec0456d69747320616e205b604576656e743a3a43616c6c506175736564605d206576656e74206f6e20737563636573732e1c756e70617573650401146964656e74c106015052756e74696d6543616c6c4e616d654f663c543e00011040556e2d706175736520612063616c6c2e00c043616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a556e70617573654f726967696e605d2ec8456d69747320616e205b604576656e743a3a43616c6c556e706175736564605d206576656e74206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec10600000408d501d50100c5060c4070616c6c65745f736166655f6d6f64651870616c6c65741043616c6c04045400012014656e7465720000181901456e74657220736166652d6d6f6465207065726d697373696f6e6c6573736c7920666f72205b60436f6e6669673a3a456e7465724475726174696f6e605d20626c6f636b732e0009015265736572766573205b60436f6e6669673a3a456e7465724465706f736974416d6f756e74605d2066726f6d207468652063616c6c65722773206163636f756e742eb4456d69747320616e205b604576656e743a3a456e7465726564605d206576656e74206f6e20737563636573732e0d014572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320616c726561647920656e74657265642e15014572726f72732077697468205b604572726f723a3a4e6f74436f6e66696775726564605d20696620746865206465706f73697420616d6f756e7420697320604e6f6e65602e2c666f7263655f656e7465720001181901456e74657220736166652d6d6f646520627920666f72636520666f722061207065722d6f726967696e20636f6e66696775726564206e756d626572206f6620626c6f636b732e00b4456d69747320616e205b604576656e743a3a456e7465726564605d206576656e74206f6e20737563636573732e0d014572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320616c726561647920656e74657265642e00f843616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f726365456e7465724f726967696e605d206f726967696e2e18657874656e6400022c3101457874656e642074686520736166652d6d6f6465207065726d697373696f6e6c6573736c7920666f72205b60436f6e6669673a3a457874656e644475726174696f6e605d20626c6f636b732e00e85468697320616363756d756c61746573206f6e20746f70206f66207468652063757272656e742072656d61696e696e67206475726174696f6e2e0d015265736572766573205b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d2066726f6d207468652063616c6c65722773206163636f756e742eb8456d69747320616e205b604576656e743a3a457874656e646564605d206576656e74206f6e20737563636573732ee84572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320656e74657265642e15014572726f72732077697468205b604572726f723a3a4e6f74436f6e66696775726564605d20696620746865206465706f73697420616d6f756e7420697320604e6f6e65602e00450154686973206d61792062652063616c6c656420627920616e79207369676e6564206f726967696e2077697468205b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d2066726565350163757272656e637920746f20726573657276652e20546869732063616c6c2063616e2062652064697361626c656420666f7220616c6c206f726967696e7320627920636f6e6669677572696e67a85b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d20746f20604e6f6e65602e30666f7263655f657874656e640003182d01457874656e642074686520736166652d6d6f646520627920666f72636520666f722061207065722d6f726967696e20636f6e66696775726564206e756d626572206f6620626c6f636b732e00b8456d69747320616e205b604576656e743a3a457874656e646564605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320696e6163746976652e00fc43616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f726365457874656e644f726967696e605d206f726967696e2e28666f7263655f65786974000424604578697420736166652d6d6f646520627920666f7263652e001d01456d69747320616e205b604576656e743a3a457869746564605d2077697468205b6045786974526561736f6e3a3a466f726365605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320696e6163746976652e0055014e6f74653a2060736166652d6d6f6465602077696c6c206265206175746f6d61746963616c6c79206465616374697661746564206279205b6050616c6c65743a3a6f6e5f696e697469616c697a65605d20686f6f6b250161667465722074686520626c6f636b206865696768742069732067726561746572207468616e20746865205b60456e7465726564556e74696c605d2073746f72616765206974656d2e5501456d69747320616e205b604576656e743a3a457869746564605d2077697468205b6045786974526561736f6e3a3a54696d656f7574605d206576656e74207768656e20646561637469766174656420696e2074686514686f6f6b2e4c666f7263655f736c6173685f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e0005243101536c6173682061206465706f73697420666f7220616e206163636f756e74207468617420656e7465726564206f7220657874656e64656420736166652d6d6f6465206174206120676976656e44686973746f726963616c20626c6f636b2e00cc546869732063616e206f6e6c792062652063616c6c6564207768696c6520736166652d6d6f646520697320656e74657265642e00cc456d6974732061205b604576656e743a3a4465706f736974536c6173686564605d206576656e74206f6e20737563636573732edc4572726f72732077697468205b604572726f723a3a456e7465726564605d20696620736166652d6d6f646520697320656e74657265642e00010143616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f7263654465706f7369744f726967696e605d206f726967696e2e3c72656c656173655f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e00063035015065726d697373696f6e6c6573736c792072656c656173652061206465706f73697420666f7220616e206163636f756e74207468617420656e746572656420736166652d6d6f646520617420615c676976656e20686973746f726963616c20626c6f636b2e0049015468652063616c6c2063616e20626520636f6d706c6574656c792064697361626c65642062792073657474696e67205b60436f6e6669673a3a52656c6561736544656c6179605d20746f20604e6f6e65602ef8546869732063616e6e6f742062652063616c6c6564207768696c6520736166652d6d6f646520697320656e746572656420616e64206e6f7420756e74696c21015b60436f6e6669673a3a52656c6561736544656c6179605d20626c6f636b732068617665207061737365642073696e636520736166652d6d6f64652077617320656e74657265642e00d0456d6974732061205b604576656e743a3a4465706f73697452656c6561736564605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320656e74657265642e49014572726f72732077697468205b604572726f723a3a43616e6e6f7452656c65617365596574605d206966205b60436f6e6669673a3a52656c6561736544656c6179605d20626c6f636b2068617665206e6f7461017061737365642073696e636520736166652d6d6f64652077617320656e74657265642e204572726f72732077697468205b604572726f723a3a4e6f4465706f736974605d2069662074686520706179656520686173206e6fa472657365727665642063757272656e63792061742074686520626c6f636b207370656369666965642e54666f7263655f72656c656173655f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e00072c2d01466f72636520746f2072656c656173652061206465706f73697420666f7220616e206163636f756e74207468617420656e746572656420736166652d6d6f6465206174206120676976656e44686973746f726963616c20626c6f636b2e00d0546869732063616e2062652063616c6c6564207768696c6520736166652d6d6f6465206973207374696c6c20656e74657265642e00d0456d6974732061205b604576656e743a3a4465706f73697452656c6561736564605d206576656e74206f6e20737563636573732edc4572726f72732077697468205b604572726f723a3a456e7465726564605d20696620736166652d6d6f646520697320656e74657265642e35014572726f72732077697468205b604572726f723a3a4e6f4465706f736974605d2069662074686520706179656520686173206e6f2072657365727665642063757272656e6379206174207468654073706563696669656420626c6f636b2e00010143616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f7263654465706f7369744f726967696e605d206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec9060c4470616c6c65745f6d6967726174696f6e731870616c6c65741043616c6c04045400011040666f7263655f7365745f637572736f72040118637572736f72cd06014c4f7074696f6e3c437572736f724f663c543e3e0000145d01416c6c6f777320726f6f7420746f20736574206120637572736f7220746f20666f72636566756c6c792073746172742c2073746f70206f7220666f727761726420746865206d6967726174696f6e2070726f636573732e00490153686f756c64206e6f726d616c6c79206e6f74206265206e656564656420616e64206973206f6e6c7920696e20706c61636520617320656d657267656e6379206d6561737572652e204e6f74652074686174050172657374617274696e6720746865206d6967726174696f6e2070726f6365737320696e2074686973206d616e6e65722077696c6c206e6f742063616c6c207468652d015b604d6967726174696f6e53746174757348616e646c65723a3a73746172746564605d20686f6f6b206f7220656d697420616e2060557067726164655374617274656460206576656e742e5c666f7263655f7365745f6163746976655f637572736f720c0114696e64657810010c753332000130696e6e65725f637572736f72dd0601584f7074696f6e3c526177437572736f724f663c543e3e000128737461727465645f61749c01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0001185901416c6c6f777320726f6f7420746f2073657420616e2061637469766520637572736f7220746f20666f72636566756c6c792073746172742f666f727761726420746865206d6967726174696f6e2070726f636573732e0045015468697320697320616e20656467652d636173652076657273696f6e206f66205b6053656c663a3a666f7263655f7365745f637572736f72605d207468617420616c6c6f777320746f2073657420746865610160737461727465645f6174602076616c756520746f20746865206e65787420626c6f636b206e756d6265722e204f7468657277697365207468697320776f756c64206e6f7420626520706f737369626c652c2073696e6365450160666f7263655f7365745f637572736f72602074616b657320616e206162736f6c75746520626c6f636b206e756d6265722e2053657474696e672060737461727465645f61746020746f20604e6f6e65600101696e646963617465732074686174207468652063757272656e7420626c6f636b206e756d62657220706c7573206f6e652073686f756c6420626520757365642e48666f7263655f6f6e626f6172645f6d626d73000210a0466f7263657320746865206f6e626f617264696e67206f6620746865206d6967726174696f6e732e005d01546869732070726f636573732068617070656e73206175746f6d61746963616c6c79206f6e20612072756e74696d6520757067726164652e20497420697320696e20706c61636520617320616e20656d657267656e6379fc6d6561737572656d656e742e2054686520637572736f72206e6565647320746f20626520604e6f6e656020666f72207468697320746f20737563636565642e38636c6561725f686973746f72696304012073656c6563746f72e10601a0486973746f726963436c65616e757053656c6563746f723c4964656e7469666965724f663c543e3e00031468436c65617273207468652060486973746f72696360207365742e000d01606d61705f637572736f7260206d7573742062652073657420746f20746865206c6173742076616c75652074686174207761732072657475726e6564206279207468655d0160486973746f726963436c656172656460206576656e742e205468652066697273742074696d6520604e6f6e65602063616e20626520757365642e20606c696d697460206d7573742062652063686f73656e20696e2061a877617920746861742077696c6c20726573756c7420696e20612073656e7369626c65207765696768742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd0604184f7074696f6e04045401d1060108104e6f6e6500000010536f6d650400d1060000010000d106084470616c6c65745f6d6967726174696f6e733c4d6967726174696f6e437572736f720818437572736f7201d5062c426c6f636b4e756d62657201100108184163746976650400d9060184416374697665437572736f723c437572736f722c20426c6f636b4e756d6265723e00000014537475636b00010000d5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d906084470616c6c65745f6d6967726174696f6e7330416374697665437572736f720818437572736f7201d5062c426c6f636b4e756d6265720110000c0114696e64657810010c753332000130696e6e65725f637572736f72dd0601384f7074696f6e3c437572736f723e000128737461727465645f617410012c426c6f636b4e756d6265720000dd0604184f7074696f6e04045401d5060108104e6f6e6500000010536f6d650400d5060000010000e106084470616c6c65745f6d6967726174696f6e735c486973746f726963436c65616e757053656c6563746f720408496401d50101082053706563696669630400e506011c5665633c49643e0000002057696c64636172640801146c696d69749c012c4f7074696f6e3c7533323e00013c70726576696f75735f637572736f72e906013c4f7074696f6e3c5665633c75383e3e00010000e506000002d50100e90604184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000ed060c3470616c6c65745f62726f6b65721870616c6c65741043616c6c04045400015824636f6e666967757265040118636f6e666967f1060144436f6e6669675265636f72644f663c543e00001054436f6e666967757265207468652070616c6c65742e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602eb82d2060636f6e666967603a2054686520636f6e66696775726174696f6e20666f7220746869732070616c6c65742e1c72657365727665040120776f726b6c6f6164f50601205363686564756c650001107852657365727665206120636f726520666f72206120776f726b6c6f61642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e21012d2060776f726b6c6f6164603a2054686520776f726b6c6f61642077686963682073686f756c64206265207065726d616e656e746c7920706c61636564206f6e206120636f72652e24756e726573657276650401286974656d5f696e64657810010c75333200021c9043616e63656c2061207265736572766174696f6e20666f72206120776f726b6c6f61642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e61012d20606974656d5f696e646578603a2054686520696e646578206f6620746865207265736572766174696f6e2e20557375616c6c7920746869732077696c6c20616c736f2062652074686520696e646578206f66207468654d012020636f7265206f6e20776869636820746865207265736572766174696f6e20686173206265656e207363686564756c65642e20486f77657665722c20697420697320706f737369626c652074686174206966490120206f7468657220636f72657320617265207265736572766564206f7220756e726573657276656420696e207468652073616d652073616c6520726f746174696f6e2074686174207468657920776f6e277461012020636f72726573706f6e642c20736f20697427732062657474657220746f206c6f6f6b2075702074686520636f72652070726f7065726c7920696e2074686520605265736572766174696f6e73602073746f726167652e247365745f6c656173650801107461736b1001185461736b4964000114756e74696c10012454696d65736c696365000324fc52657365727665206120636f726520666f7220612073696e676c65207461736b20776f726b6c6f616420666f722061206c696d6974656420706572696f642e005d01496e2074686520696e7465726c75646520616e642073616c6520706572696f642077686572652042756c6b20436f726574696d6520697320736f6c6420666f722074686520706572696f6420696d6d6564696174656c79d461667465722060756e74696c602c207468656e207468652073616d6520776f726b6c6f6164206d61792062652072656e657765642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602ee02d20607461736b603a2054686520776f726b6c6f61642077686963682073686f756c6420626520706c61636564206f6e206120636f72652e61012d2060756e74696c603a205468652074696d65736c696365206e6f77206561726c696572207468616e20776869636820607461736b602073686f756c6420626520706c61636564206173206120776f726b6c6f6164206f6e2420206120636f72652e2c73746172745f73616c6573080124656e645f707269636518013042616c616e63654f663c543e00012c65787472615f636f72657395010124436f7265496e6465780004249c426567696e207468652042756c6b20436f726574696d652073616c657320726f746174696f6e2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e51012d2060656e645f7072696365603a2054686520707269636520616674657220746865206c656164696e20706572696f64206f662042756c6b20436f726574696d6520696e207468652066697273742073616c652e4d012d206065787472615f636f726573603a204e756d626572206f6620657874726120636f72657320746861742073686f756c6420626520726571756573746564206f6e20746f70206f662074686520636f726573ac2020726571756972656420666f7220605265736572766174696f6e736020616e6420604c6561736573602e005d01546869732077696c6c2063616c6c205b6053656c663a3a726571756573745f636f72655f636f756e74605d20696e7465726e616c6c7920746f207365742074686520636f727265637420636f726520636f756e74206f6e407468652072656c617920636861696e2e20707572636861736504012c70726963655f6c696d697418013042616c616e63654f663c543e000514ac50757263686173652042756c6b20436f726574696d6520696e20746865206f6e676f696e672053616c652e005d012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2077697468206174206c6561737420656e6f7567682066756e647320746f20706179207468652063757272656e742070726963654c20206f662042756c6b20436f726574696d652ef42d206070726963655f6c696d6974603a20416e20616d6f756e74206e6f206d6f7265207468616e2077686963682073686f756c6420626520706169642e1472656e6577040110636f726595010124436f7265496e646578000614190152656e65772042756c6b20436f726574696d6520696e20746865206f6e676f696e672053616c65206f7220697473207072696f7220496e7465726c75646520506572696f642e005d012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2077697468206174206c6561737420656e6f7567682066756e647320746f20706179207468652072656e6577616c2070726963653820206f662074686520636f72652eac2d2060636f7265603a2054686520636f72652077686963682073686f756c642062652072656e657765642e207472616e73666572080124726567696f6e5f696409070120526567696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000714bc5472616e7366657220612042756c6b20436f726574696d6520526567696f6e20746f2061206e6577206f776e65722e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602ee02d2060726567696f6e5f6964603a2054686520526567696f6e2077686f7365206f776e6572736869702073686f756c64206368616e67652eb02d20606e65775f6f776e6572603a20546865206e6577206f776e657220666f722074686520526567696f6e2e24706172746974696f6e080124726567696f6e5f696409070120526567696f6e49640001147069766f7410012454696d65736c6963650008185d0153706c697420612042756c6b20436f726574696d6520526567696f6e20696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e73206174206120706172746963756c61722074696d6520696e746f2c74686520726567696f6e2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602e5d012d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c6420626520706172746974696f6e656420696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e732e25012d20607069766f74603a20546865206f666673657420696e2074696d6520696e746f2074686520526567696f6e20617420776869636820746f206d616b65207468652073706c69742e24696e7465726c616365080124726567696f6e5f696409070120526567696f6e49640001147069766f74fd060120436f72654d61736b0009204d0153706c697420612042756c6b20436f726574696d6520526567696f6e20696e746f2074776f2077686f6c6c792d6f7665726c617070696e6720526567696f6e73207769746820636f6d706c656d656e746172793101696e7465726c616365206d61736b7320776869636820746f676574686572206d616b6520757020746865206f726967696e616c20526567696f6e277320696e7465726c616365206d61736b2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602e49012d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c64206265636f6d652074776f20696e7465726c6163656420526567696f6e73206f6620696e636f6d706c657465342020726567756c61726974792e55012d20607069766f74603a2054686520696e7465726c616365206d61736b206f66206f6e65206f66207468652074776f206e657720726567696f6e732028746865206f7468657220697320697473207061727469616c382020636f6d706c656d656e74292e1861737369676e0c0124726567696f6e5f696409070120526567696f6e49640001107461736b1001185461736b496400012066696e616c6974790d07012046696e616c697479000a20a041737369676e20612042756c6b20436f726574696d6520526567696f6e20746f2061207461736b2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602efc2d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c642062652061737369676e656420746f20746865207461736b2e742d20607461736b603a20546865207461736b20746f2061737369676e2e55012d206066696e616c697479603a20496e6469636174696f6e206f66207768657468657220746869732061737369676e6d656e742069732066696e616c2028696e2077686963682063617365206974206d617920626549012020656c696769626c6520666f722072656e6577616c29206f722070726f766973696f6e616c2028696e2077686963682063617365206974206d6179206265206d616e6970756c6174656420616e642f6f7274726561737369676e65642061742061206c61746572207374616765292e10706f6f6c0c0124726567696f6e5f696409070120526567696f6e49640001147061796565000130543a3a4163636f756e74496400012066696e616c6974790d07012046696e616c697479000b180901506c61636520612042756c6b20436f726574696d6520526567696f6e20696e746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602efc2d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c642062652061737369676e656420746f2074686520506f6f6c2e55012d20607061796565603a20546865206163636f756e742077686963682069732061626c6520746f20636f6c6c65637420616e7920726576656e75652064756520666f7220746865207573616765206f6620746869732c2020436f726574696d652e34636c61696d5f726576656e7565080124726567696f6e5f696409070120526567696f6e49640001386d61785f74696d65736c6963657310012454696d65736c696365000c202501436c61696d2074686520726576656e7565206f7765642066726f6d20696e636c7573696f6e20696e2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e00902d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2ee42d2060726567696f6e5f6964603a2054686520526567696f6e207768696368207761732061737369676e656420746f2074686520506f6f6c2e51012d20606d61785f74696d65736c69636573603a20546865206d6178696d756d206e756d626572206f662074696d65736c696365732077686963682073686f756c642062652070726f6365737365642e2054686973590120206d7573742062652067726561746572207468616e20302e2054686973206d6179206166666563742074686520776569676874206f66207468652063616c6c206275742073686f756c6420626520696465616c6c79590120206d616465206571756976616c656e7420746f20746865206c656e677468206f662074686520526567696f6e2060726567696f6e5f6964602e204966206c6573732c206675727468657220646973706174636865734101202077696c6c2062652072657175697265642077697468207468652073616d652060726567696f6e5f69646020746f20636c61696d20726576656e756520666f72207468652072656d61696e6465722e3c70757263686173655f637265646974080118616d6f756e7418013042616c616e63654f663c543e00012c62656e656669636961727900014c52656c61794163636f756e7449644f663c543e000d18ec50757263686173652063726564697420666f722075736520696e2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0009012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2061626c6520746f20706179206174206c656173742060616d6f756e74602eb42d2060616d6f756e74603a2054686520616d6f756e74206f662063726564697420746f2070757263686173652e51012d206062656e6566696369617279603a20546865206163636f756e74206f6e207468652052656c61792d636861696e20776869636820636f6e74726f6c732074686520637265646974202867656e6572616c6c79a82020746869732077696c6c2062652074686520636f6c6c61746f72277320686f742077616c6c6574292e2c64726f705f726567696f6e040124726567696f6e5f696409070120526567696f6e4964000e109844726f7020616e206578706972656420526567696f6e2066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2eb02d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682068617320657870697265642e4464726f705f636f6e747269627574696f6e040124726567696f6e5f696409070120526567696f6e4964000f10190144726f7020616e206578706972656420496e7374616e74616e656f757320506f6f6c20436f6e747269627574696f6e207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e39012d2060726567696f6e5f6964603a2054686520526567696f6e206964656e74696679696e672074686520506f6f6c20436f6e747269627574696f6e2077686963682068617320657870697265642e3064726f705f686973746f72790401107768656e10012454696d65736c696365001010050144726f7020616e206578706972656420496e7374616e74616e656f757320506f6f6c20486973746f7279207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e15012d2060726567696f6e5f6964603a205468652074696d65206f662074686520506f6f6c20486973746f7279207265636f72642077686963682068617320657870697265642e3064726f705f72656e6577616c080110636f726595010124436f7265496e6465780001107768656e10012454696d65736c696365001114d844726f7020616e206578706972656420416c6c6f7765642052656e6577616c207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2edc2d2060636f7265603a2054686520636f726520746f2077686963682074686520657870697265642072656e6577616c207265666572732e4d012d20607768656e603a205468652074696d65736c69636520746f2077686963682074686520657870697265642072656e6577616c207265666572732e2054686973206d7573742068617665207061737365642e48726571756573745f636f72655f636f756e74040128636f72655f636f756e7495010124436f7265496e6465780012101901526571756573742061206368616e676520746f20746865206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e6720776f726b2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e05012d2060636f72655f636f756e74603a205468652064657369726564206e756d626572206f6620636f72657320746f206265206d61646520617661696c61626c652e446e6f746966795f636f72655f636f756e74040128636f72655f636f756e7495010124436f7265496e646578001300386e6f746966795f726576656e756504011c726576656e7565110701684f6e44656d616e64526576656e75655265636f72644f663c543e0014002c737761705f6c656173657308010869641001185461736b49640001146f746865721001185461736b4964006300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1060c3470616c6c65745f62726f6b657214747970657330436f6e6669675265636f7264082c426c6f636b4e756d62657201104052656c6179426c6f636b4e756d626572011000200138616476616e63655f6e6f7469636510014052656c6179426c6f636b4e756d626572000140696e7465726c7564655f6c656e67746810012c426c6f636b4e756d6265720001346c656164696e5f6c656e67746810012c426c6f636b4e756d626572000134726567696f6e5f6c656e67746810012454696d65736c696365000154696465616c5f62756c6b5f70726f706f7274696f6ec4011c50657262696c6c00014c6c696d69745f636f7265735f6f666665726564110201444f7074696f6e3c436f7265496e6465783e00013072656e6577616c5f62756d70c4011c50657262696c6c000150636f6e747269627574696f6e5f74696d656f757410012454696d65736c6963650000f5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f906045300000400050701185665633c543e0000f9060c3470616c6c65745f62726f6b6572147479706573305363686564756c654974656d00000801106d61736bfd060120436f72654d61736b00012861737369676e6d656e7401070138436f726541737369676e6d656e740000fd060c3470616c6c65745f62726f6b657224636f72655f6d61736b20436f72654d61736b00000400850401205b75383b2031305d000001070c3470616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b4964000200000507000002f9060009070c3470616c6c65745f62726f6b657214747970657320526567696f6e496400000c0114626567696e10012454696d65736c696365000110636f726595010124436f7265496e6465780001106d61736bfd060120436f72654d61736b00000d070c3470616c6c65745f62726f6b65721474797065732046696e616c6974790001082c50726f766973696f6e616c0000001446696e616c0001000011070c3470616c6c65745f62726f6b6572147479706573544f6e44656d616e64526576656e75655265636f7264084052656c6179426c6f636b4e756d62657201103052656c617942616c616e6365011800080114756e74696c10014052656c6179426c6f636b4e756d626572000118616d6f756e7418013052656c617942616c616e6365000015070c3470616c6c65745f6d69786e65741870616c6c65741043616c6c040454000104207265676973746572080130726567697374726174696f6e19070148526567697374726174696f6e466f723c543e0001247369676e617475726529070148417574686f726974795369676e6174757265000004b452656769737465722061206d69786e6f646520666f722074686520666f6c6c6f77696e672073657373696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1907083470616c6c65745f6d69786e657430526567697374726174696f6e082c426c6f636b4e756d626572011038426f756e6465644d69786e6f6465011d0700100130626c6f636b5f6e756d62657210012c426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e646578100138417574686f72697479496e64657800011c6d69786e6f64651d070138426f756e6465644d69786e6f646500001d07083470616c6c65745f6d69786e657438426f756e6465644d69786e6f6465044445787465726e616c416464726573736573012107000c01246b785f7075626c69630401204b785075626c696300011c706565725f696404011850656572496400014865787465726e616c5f6164647265737365732107014445787465726e616c416464726573736573000021070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c501045300000400250701185665633c543e00002507000002c501002907102473705f6d69786e65741474797065730c617070245369676e61747572650000040015040148737232353531393a3a5369676e617475726500002d070c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c756531070150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3107084c6b69746368656e73696e6b5f72756e74696d654452756e74696d65506172616d65746572730001041c53746f7261676504003507018c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d6574657273000000003507104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f7261676528506172616d65746572730001082c426173654465706f73697408003907012c426173654465706f7369740000b103013c4f7074696f6e3c42616c616e63653e0000002c427974654465706f73697408003d07012c427974654465706f7369740000b103013c4f7074696f6e3c42616c616e63653e000100003907104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167652c426173654465706f736974000000003d07104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167652c427974654465706f7369740000000041070c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c65741043616c6c040454000104586d6967726174655f746f5f6e65775f6163636f756e74080118617373657431a9060144426f783c543a3a41737365744b696e643e000118617373657432a9060144426f783c543a3a41737365744b696e643e0000105d014d6967726174657320616e206578697374696e6720706f6f6c20746f2061206e6577206163636f756e742049442064657269766174696f6e206d6574686f6420666f72206120676976656e20617373657420706169722e3101496620746865206d6967726174696f6e206973207375636365737366756c2c207472616e73616374696f6e20666565732061726520726566756e64656420746f207468652063616c6c65722e003c4d757374206265207369676e65642e047050616c6c657427732063616c6c61626c652066756e6374696f6e732e45070c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000049070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f74657300004d070c3470616c6c65745f72656d61726b1870616c6c6574144576656e740404540001041853746f72656408011873656e646572000130543a3a4163636f756e744964000130636f6e74656e745f6861736834013473705f636f72653a3a483235360000045853746f7265642064617461206f666620636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657451070c4c70616c6c65745f726f6f745f74657374696e671870616c6c6574144576656e7404045400010444446566656e736976655465737443616c6c00000401014576656e742064697370617463686564207768656e2074686520747269676765725f646566656e736976652065787472696e7369632069732063616c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657455070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001082444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657459070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c745d0701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d070418526573756c7408045401610704450169070108084f6b04006107000000000c45727204006907000001000061070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874650701384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000650704184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100006907082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01610700080124706f73745f696e666f61070110496e666f0001146572726f7268013444697370617463684572726f7200006d070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e7408045400044900011c2050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748001384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748001384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471070c3c70616c6c65745f616c6c69616e63651870616c6c6574144576656e74080454000449000134284e657752756c6553657404011072756c654d06010c4369640000046041206e65772072756c6520686173206265656e207365742e24416e6e6f756e636564040130616e6e6f756e63656d656e744d06010c4369640001049441206e657720616e6e6f756e63656d656e7420686173206265656e2070726f706f7365642e4c416e6e6f756e63656d656e7452656d6f766564040130616e6e6f756e63656d656e744d06010c436964000204a8416e206f6e2d636861696e20616e6e6f756e63656d656e7420686173206265656e2072656d6f7665642e484d656d62657273496e697469616c697a656408011c66656c6c6f7773650101445665633c543a3a4163636f756e7449643e000118616c6c696573650101445665633c543a3a4163636f756e7449643e0003040101536f6d65206163636f756e74732068617665206265656e20696e697469616c697a6564206173206d656d62657273202866656c6c6f77732f616c6c696573292e344e6577416c6c794a6f696e65640c0110616c6c79000130543a3a4163636f756e7449640001246e6f6d696e61746f72ac01504f7074696f6e3c543a3a4163636f756e7449643e0001207265736572766564b103015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000404f8416e206163636f756e7420686173206265656e20616464656420617320616e20416c6c7920616e6420726573657276656420697473206465706f7369742e30416c6c79456c657661746564040110616c6c79000130543a3a4163636f756e74496400050490416e20616c6c7920686173206265656e20656c65766174656420746f2046656c6c6f772e744d656d6265725265746972656d656e74506572696f64537461727465640401186d656d626572000130543a3a4163636f756e744964000604110141206d656d6265722067617665207265746972656d656e74206e6f7469636520616e64207468656972207265746972656d656e7420706572696f6420737461727465642e344d656d626572526574697265640801186d656d626572000130543a3a4163636f756e744964000128756e7265736572766564b103015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000704c441206d656d626572206861732072657469726564207769746820697473206465706f73697420756e72657365727665642e304d656d6265724b69636b65640801186d656d626572000130543a3a4163636f756e74496400011c736c6173686564b103015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000804d841206d656d62657220686173206265656e206b69636b6564206f7574207769746820697473206465706f73697420736c61736865642e54556e7363727570756c6f75734974656d41646465640401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e00090425014163636f756e7473206f722077656273697465732068617665206265656e20616464656420696e746f20746865206c697374206f6620756e7363727570756c6f7573206974656d732e5c556e7363727570756c6f75734974656d52656d6f7665640401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000a042d014163636f756e7473206f722077656273697465732068617665206265656e2072656d6f7665642066726f6d20746865206c697374206f6620756e7363727570756c6f7573206974656d732e44416c6c69616e636544697362616e6465640c013866656c6c6f775f6d656d6265727310010c753332000130616c6c795f6d656d6265727310010c753332000128756e726573657276656410010c753332000b043101416c6c69616e63652064697362616e6465642e20496e636c75646573206e756d6265722064656c65746564206d656d6265727320616e6420756e7265736572766564206465706f736974732e3c46656c6c6f7741626469636174656404011866656c6c6f77000130543a3a4163636f756e744964000c04f4412046656c6c6f772061626469636174656420746865697220766f74696e67207269676874732e205468657920617265206e6f7720616e20416c6c792e047c54686520604576656e746020656e756d206f6620746869732070616c6c657475070c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e740404540001481c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f737461746571060124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f76656408011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400070c9841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e30526f6c6573557064617465640c0110726f6f74ac01504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72ac01504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e748906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ec4011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174659106019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e950601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e04584576656e7473206f6620746869732070616c6c65742e79070c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c797d070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c797d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c797d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c797d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c797d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c797d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d07086070616c6c65745f72616e6b65645f636f6c6c6563746976651454616c6c790c045400044900044d00000c0124626172655f6179657310012c4d656d626572496e64657800011061796573100114566f7465730001106e617973100114566f746573000081070c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144576656e740804540004490001142c4d656d626572416464656404010c77686f000130543a3a4163636f756e7449640000047841206d656d626572206077686f6020686173206265656e2061646465642e2c52616e6b4368616e67656408010c77686f000130543a3a4163636f756e74496400011072616e6b9501011052616e6b000104f4546865206d656d626572206077686f6073652072616e6b20686173206265656e206368616e67656420746f2074686520676976656e206072616e6b602e344d656d62657252656d6f76656408010c77686f000130543a3a4163636f756e74496400011072616e6b9501011052616e6b0002041901546865206d656d626572206077686f60206f6620676976656e206072616e6b6020686173206265656e2072656d6f7665642066726f6d2074686520636f6c6c6563746976652e14566f74656410010c77686f000130543a3a4163636f756e744964000110706f6c6c100144506f6c6c496e6465784f663c542c20493e000110766f746585070128566f74655265636f726400011474616c6c797d07013454616c6c794f663c542c20493e0003085501546865206d656d626572206077686f602068617320766f74656420666f72207468652060706f6c6c6020776974682074686520676976656e2060766f746560206c656164696e6720746f20616e2075706461746564206074616c6c79602e3c4d656d62657245786368616e67656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000404f0546865206d656d626572206077686f602068616420746865697220604163636f756e74496460206368616e67656420746f20606e65775f77686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748507086070616c6c65745f72616e6b65645f636f6c6c65637469766528566f74655265636f72640001080c4179650400100114566f7465730000000c4e61790400100114566f7465730001000089070c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144576656e740404540001182c506f6f6c4372656174656410011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f69648d070124543a3a506f6f6c496408490154686520706f6f6c206964206173736f63696174656420776974682074686520706f6f6c2e204e6f7465207468617420746865206f72646572206f662074686520617373657473206d6179206e6f74206265f47468652073616d6520617320746865206f726465722073706563696669656420696e207468652063726561746520706f6f6c2065787472696e7369632e0130706f6f6c5f6163636f756e74000130543a3a4163636f756e744964046c546865206163636f756e74204944206f662074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964084101546865206964206f6620746865206c697175696469747920746f6b656e7320746861742077696c6c206265206d696e746564207768656e206173736574732061726520616464656420746f207468697314706f6f6c2e00041d0141207375636365737366756c2063616c6c206f66207468652060437265617465506f6f6c602065787472696e7369632077696c6c206372656174652074686973206576656e742e384c697175696469747941646465641c010c77686f000130543a3a4163636f756e74496404b8546865206163636f756e74207468617420746865206c6971756964697479207761732074616b656e2066726f6d2e011c6d696e745f746f000130543a3a4163636f756e74496404d4546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206d696e74656420746f2e011c706f6f6c5f69648d070124543a3a506f6f6c496404e054686520706f6f6c206964206f662074686520706f6f6c207468617420746865206c69717569646974792077617320616464656420746f2e0140616d6f756e74315f70726f7669646564180128543a3a42616c616e636504e454686520616d6f756e74206f662074686520666972737420617373657420746861742077617320616464656420746f2074686520706f6f6c2e0140616d6f756e74325f70726f7669646564180128543a3a42616c616e636504e854686520616d6f756e74206f6620746865207365636f6e6420617373657420746861742077617320616464656420746f2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206d696e7465642e013c6c705f746f6b656e5f6d696e746564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206d696e746564206f6620746861742069642e0104250141207375636365737366756c2063616c6c206f662074686520604164644c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e404c697175696469747952656d6f76656420010c77686f000130543a3a4163636f756e74496404dc546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206275726e65642066726f6d2e012c77697468647261775f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e011c706f6f6c5f69648d070124543a3a506f6f6c496404c054686520706f6f6c206964207468617420746865206c6971756964697479207761732072656d6f7665642066726f6d2e011c616d6f756e7431180128543a3a42616c616e636504f454686520616d6f756e74206f66207468652066697273742061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e011c616d6f756e7432180128543a3a42616c616e636504f854686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206275726e65642e013c6c705f746f6b656e5f6275726e6564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206275726e6564206f6620746861742069642e01387769746864726177616c5f6665659107011c5065726d696c6c04744c6971756964697479207769746864726177616c20666565202825292e0204310141207375636365737366756c2063616c6c206f6620746865206052656d6f76654c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e3053776170457865637574656414010c77686f000130543a3a4163636f756e74496404b45768696368206163636f756e74207761732074686520696e7374696761746f72206f662074686520737761702e011c73656e645f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174689507013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f757429030835014173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e20426f74682060537761704578616374546f6b656e466f72546f6b656e60d8616e64206053776170546f6b656e466f724578616374546f6b656e602077696c6c2067656e65726174652074686973206576656e742e485377617043726564697445786563757465640c0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174689507013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f7574290404bc4173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e1c546f756368656408011c706f6f6c5f69648d070124543a3a506f6f6c4964044c546865204944206f662074686520706f6f6c2e010c77686f000130543a3a4163636f756e7449640484546865206163636f756e7420696e6974696174696e672074686520746f7563682e05040d01506f6f6c20686173206265656e20746f756368656420696e206f7264657220746f2066756c66696c6c206f7065726174696f6e616c20726571756972656d656e74732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d0700000408a906a9060091070c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200009507000002990700990700000408a90618009d070c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c748001384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173c90101345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a1070c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72a507014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e1001484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a50710346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000a9070c746672616d655f62656e63686d61726b696e675f70616c6c65745f706f761870616c6c6574144576656e7404045400010424546573744576656e74000000047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad070c3c70616c6c65745f74785f70617573651870616c6c6574144576656e740404540001082843616c6c50617573656404012466756c6c5f6e616d65c106015052756e74696d6543616c6c4e616d654f663c543e000004b8546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f77207061757365642e3043616c6c556e70617573656404012466756c6c5f6e616d65c106015052756e74696d6543616c6c4e616d654f663c543e000104c0546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f7720756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1070c4070616c6c65745f736166655f6d6f64651870616c6c6574144576656e740404540001201c456e7465726564040114756e74696c100144426c6f636b4e756d626572466f723c543e000004dc54686520736166652d6d6f64652077617320656e746572656420756e74696c20696e636c75736976656c79207468697320626c6f636b2e20457874656e646564040114756e74696c100144426c6f636b4e756d626572466f723c543e000104e054686520736166652d6d6f64652077617320657874656e64656420756e74696c20696e636c75736976656c79207468697320626c6f636b2e18457869746564040118726561736f6eb507012845786974526561736f6e000204ac4578697465642074686520736166652d6d6f646520666f72206120737065636966696320726561736f6e2e344465706f736974506c6163656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0003042501416e206163636f756e742072657365727665642066756e647320666f722065697468657220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e3c4465706f73697452656c656173656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000404d0416e206163636f756e7420686164206120726573657276652072656c65617365642074686174207761732072657365727665642e384465706f736974536c617368656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000504c4416e206163636f756e7420686164207265736572766520736c61736865642074686174207761732072657365727665642e3443616e6e6f744465706f73697400060cf4436f756c64206e6f7420686f6c642066756e647320666f7220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e00c054686973206572726f7220636f6d65732066726f6d2074686520756e6465726c79696e67206043757272656e6379602e3443616e6e6f7452656c6561736500070c0101436f756c64206e6f742072656c656173652066756e647320666f7220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e00c054686973206572726f7220636f6d65732066726f6d2074686520756e6465726c79696e67206043757272656e6379602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5070c4070616c6c65745f736166655f6d6f64651870616c6c65742845786974526561736f6e0001081c54696d656f757400000014466f72636500010000b9070c4070616c6c65745f73746174656d656e741870616c6c6574144576656e74040454000104304e657753746174656d656e7408011c6163636f756e74000130543a3a4163636f756e74496400012473746174656d656e74bd07012453746174656d656e740000047041206e65772073746174656d656e74206973207375626d6974746564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd07084873705f73746174656d656e745f73746f72652453746174656d656e7400001c011470726f6f66c10701344f7074696f6e3c50726f6f663e00013864656372797074696f6e5f6b65797d0101544f7074696f6e3c44656372797074696f6e4b65793e00011c6368616e6e656c7d01013c4f7074696f6e3c4368616e6e656c3e0001207072696f726974799c012c4f7074696f6e3c7533323e0001286e756d5f746f706963730801087538000118746f70696373c907014c5b546f7069633b204d41585f544f504943535d00011064617461e906013c4f7074696f6e3c5665633c75383e3e0000c10704184f7074696f6e04045401c5070108104e6f6e6500000010536f6d650400c5070000010000c507084873705f73746174656d656e745f73746f72651450726f6f660001101c537232353531390801247369676e6174757265150401205b75383b2036345d0001187369676e65720401205b75383b2033325d0000001c456432353531390801247369676e6174757265150401205b75383b2036345d0001187369676e65720401205b75383b2033325d00010038536563703235366b3145636473610801247369676e6174757265f10401205b75383b2036355d0001187369676e6572d90301205b75383b2033335d0002001c4f6e436861696e0c010c77686f0401244163636f756e744964000128626c6f636b5f68617368040124426c6f636b4861736800012c6576656e745f696e64657830010c75363400030000c907000003040000000400cd070c4470616c6c65745f6d6967726174696f6e731870616c6c6574144576656e740404540001203855706772616465537461727465640401286d6967726174696f6e7310010c75333210d0546865206e756d626572206f66206d6967726174696f6e7320746861742074686973207570677261646520636f6e7461696e732e004101546869732063616e206265207573656420746f2064657369676e20612070726f677265737320696e64696361746f7220696e20636f6d62696e6174696f6e207769746820636f756e74696e6720746865cc604d6967726174696f6e436f6d706c657465646020616e6420604d6967726174696f6e536b697070656460206576656e74732e000c68412052756e74696d65207570677261646520737461727465642e00f849747320656e6420697320696e64696361746564206279206055706772616465436f6d706c6574656460206f722060557067726164654661696c6564602e4055706772616465436f6d706c6574656400010c985468652063757272656e742072756e74696d65207570677261646520636f6d706c657465642e001d015468697320696d706c696573207468617420616c6c206f6620697473206d6967726174696f6e7320636f6d706c65746564207375636365737366756c6c792061732077656c6c2e34557067726164654661696c656400020c5c52756e74696d652075706772616465206661696c65642e00e85468697320697320766572792062616420616e642077696c6c207265717569726520676f7665726e616e636520696e74657276656e74696f6e2e404d6967726174696f6e536b6970706564040114696e64657810010c75333204290154686520696e646578206f662074686520736b6970706564206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0304090141206d6967726174696f6e2077617320736b69707065642073696e63652069742077617320616c726561647920657865637574656420696e2074686520706173742e444d6967726174696f6e416476616e636564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e04045c41206d6967726174696f6e2070726f677265737365642e484d6967726174696f6e436f6d706c65746564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e05045841204d6967726174696f6e20636f6d706c657465642e3c4d6967726174696f6e4661696c6564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e060c4c41204d6967726174696f6e206661696c65642e004d015468697320696d706c6965732074686174207468652077686f6c652075706772616465206661696c656420616e6420676f7665726e616e636520696e74657276656e74696f6e2069732072657175697265642e3c486973746f726963436c656172656404012c6e6578745f637572736f72e906013c4f7074696f6e3c5665633c75383e3e04e853686f756c642062652070617373656420746f2060636c6561725f686973746f7269636020696e206120737563636573736976652063616c6c2e0704c854686520736574206f6620686973746f726963616c206d6967726174696f6e7320686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1070c3470616c6c65745f62726f6b65721870616c6c6574144576656e740404540001702450757263686173656410010c77686f000130543a3a4163636f756e7449640478546865206964656e74697479206f6620746865207075726368617365722e0124726567696f6e5f696409070120526567696f6e4964046c546865206964656e74697479206f662074686520526567696f6e2e0114707269636518013042616c616e63654f663c543e047c546865207072696365207061696420666f72207468697320526567696f6e2e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e0004b44120526567696f6e206f662042756c6b20436f726574696d6520686173206265656e207075726368617365642e2452656e657761626c65100110636f726595010124436f7265496e646578049c54686520636f72652077686f736520776f726b6c6f61642063616e2062652072656e657765642e0114707269636518013042616c616e63654f663c543e04bc5468652070726963652061742077686963682074686520776f726b6c6f61642063616e2062652072656e657765642e0114626567696e10012454696d65736c6963650c49015468652074696d652061742077686963682074686520776f726b6c6f616420776f756c64207265636f6d6d656e6365206f6620746869732072656e6577616c2e205468652063616c6c20746f2072656e6577450163616e6e6f742068617070656e206265666f72652074686520626567696e6e696e67206f662074686520696e7465726c756465207072696f7220746f207468652073616c6520666f7220726567696f6e7364776869636820626567696e20617420746869732074696d652e0120776f726b6c6f6164f50601205363686564756c6504a45468652061637475616c20776f726b6c6f61642077686963682063616e2062652072656e657765642e0104b054686520776f726b6c6f6164206f66206120636f726520686173206265636f6d652072656e657761626c652e1c52656e657765641c010c77686f000130543a3a4163636f756e7449640470546865206964656e74697479206f66207468652072656e657765722e0114707269636518013042616c616e63654f663c543e0480546865207072696365207061696420666f7220746869732072656e6577616c2e01206f6c645f636f726595010124436f7265496e646578041d0154686520696e646578206f662074686520636f7265206f6e207768696368207468652060776f726b6c6f616460207761732070726576696f75736c79207363686564756c65642e0110636f726595010124436f7265496e64657804250154686520696e646578206f662074686520636f7265206f6e207768696368207468652072656e657765642060776f726b6c6f61646020686173206265656e207363686564756c65642e0114626567696e10012454696d65736c69636504e85468652074696d65206174207768696368207468652060776f726b6c6f6164602077696c6c20626567696e206f6e207468652060636f7265602e01206475726174696f6e10012454696d65736c696365041901546865206e756d626572206f662074696d65736c6963657320666f7220776869636820746869732060776f726b6c6f616460206973206e65776c79207363686564756c65642e0120776f726b6c6f6164f50601205363686564756c65047c54686520776f726b6c6f6164207768696368207761732072656e657765642e0204704120776f726b6c6f616420686173206265656e2072656e657765642e2c5472616e73666572726564100124726567696f6e5f696409070120526567696f6e4964049854686520526567696f6e20776869636820686173206265656e207472616e736665727265642e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e01246f6c645f6f776e6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0470546865206f6c64206f776e6572206f662074686520526567696f6e2e01146f776e6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0470546865206e6577206f776e6572206f662074686520526567696f6e2e0304ac4f776e657273686970206f66206120526567696f6e20686173206265656e207472616e736665727265642e2c506172746974696f6e65640801346f6c645f726567696f6e5f696409070120526567696f6e4964046c54686520526567696f6e207768696368207761732073706c69742e01386e65775f726567696f6e5f696473d507015028526567696f6e49642c20526567696f6e4964290494546865206e657720526567696f6e7320696e746f20776869636820697420626563616d652e0404e44120526567696f6e20686173206265656e2073706c697420696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e732e28496e7465726c616365640801346f6c645f726567696f6e5f696409070120526567696f6e4964048054686520526567696f6e2077686963682077617320696e7465726c616365642e01386e65775f726567696f6e5f696473d507015028526567696f6e49642c20526567696f6e4964290494546865206e657720526567696f6e7320696e746f20776869636820697420626563616d652e05044d014120526567696f6e20686173206265656e20636f6e76657274656420696e746f2074776f206f7665726c617070696e6720526567696f6e732065616368206f66206c657373657220726567756c61726974792e2041737369676e65640c0124726567696f6e5f696409070120526567696f6e4964047854686520526567696f6e207768696368207761732061737369676e65642e01206475726174696f6e10012454696d65736c696365047c546865206475726174696f6e206f66207468652061737369676e6d656e742e01107461736b1001185461736b496404a8546865207461736b20746f2077686963682074686520526567696f6e207761732061737369676e65642e0604c04120526567696f6e20686173206265656e2061737369676e656420746f206120706172746963756c6172207461736b2e18506f6f6c6564080124726567696f6e5f696409070120526567696f6e496404f854686520526567696f6e2077686963682077617320616464656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e0704ec4120526567696f6e20686173206265656e20616464656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e48436f7265436f756e74526571756573746564040128636f72655f636f756e7495010124436f7265496e6465780478546865206e756d626572206f6620636f726573207265717565737465642e0804a441206e6577206e756d626572206f6620636f72657320686173206265656e207265717565737465642e40436f7265436f756e744368616e676564040128636f72655f636f756e7495010124436f7265496e64657804c4546865206e6577206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e672e0904e4546865206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e6720686173206368616e6765642e3c5265736572766174696f6e4d616465080114696e64657810010c753332047454686520696e646578206f6620746865207265736572766174696f6e2e0120776f726b6c6f6164f50601205363686564756c65048054686520776f726b6c6f6164206f6620746865207265736572766174696f6e2e0a04a854686572652069732061206e6577207265736572766174696f6e20666f72206120776f726b6c6f61642e505265736572766174696f6e43616e63656c6c6564080114696e64657810010c75333204c454686520696e646578206f6620746865207265736572766174696f6e207768696368207761732063616e63656c6c65642e0120776f726b6c6f6164f50601205363686564756c6504b854686520776f726b6c6f6164206f6620746865206e6f772063616e63656c6c6564207265736572766174696f6e2e0b04c041207265736572766174696f6e20666f72206120776f726b6c6f616420686173206265656e2063616e63656c6c65642e3c53616c65496e697469616c697a656420012873616c655f7374617274100144426c6f636b4e756d626572466f723c543e04e0546865206c6f63616c20626c6f636b206e756d626572206174207768696368207468652073616c652077696c6c2f6469642073746172742e01346c656164696e5f6c656e677468100144426c6f636b4e756d626572466f723c543e042901546865206c656e67746820696e20626c6f636b73206f6620746865204c656164696e20506572696f6420287768657265207468652070726963652069732064656372656173696e67292e012c73746172745f707269636518013042616c616e63654f663c543e040501546865207072696365206f662042756c6b20436f726574696d652061742074686520626567696e6e696e67206f6620746865204c656164696e20506572696f642e0124656e645f707269636518013042616c616e63654f663c543e04cc546865207072696365206f662042756c6b20436f726574696d6520616674657220746865204c656164696e20506572696f642e0130726567696f6e5f626567696e10012454696d65736c6963650415015468652066697273742074696d65736c696365206f662074686520526567696f6e7320776869636820617265206265696e6720736f6c6420696e20746869732073616c652e0128726567696f6e5f656e6410012454696d65736c6963650839015468652074696d65736c696365206f6e2077686963682074686520526567696f6e7320776869636820617265206265696e6720736f6c6420696e207468652073616c65207465726d696e6174652ef828692e652e204f6e6520616674657220746865206c6173742074696d65736c6963652077686963682074686520526567696f6e7320636f6e74726f6c2e290140696465616c5f636f7265735f736f6c6495010124436f7265496e64657804b4546865206e756d626572206f6620636f7265732077652077616e7420746f2073656c6c2c20696465616c6c792e0134636f7265735f6f66666572656495010124436f7265496e64657804d44e756d626572206f6620636f726573207768696368206172652f68617665206265656e206f66666572656420666f722073616c652e0c048041206e65772073616c6520686173206265656e20696e697469616c697a65642e184c65617365640801107461736b1001185461736b496404a8546865207461736b20746f207768696368206120636f72652077696c6c2062652061737369676e65642e0114756e74696c10012454696d65736c6963650c19015468652074696d65736c69636520636f6e7461696e656420696e207468652073616c6520706572696f642061667465722077686963682074686973206c656173652077696c6c390173656c662d7465726d696e6174652028616e64207468657265666f726520746865206561726c696573742074696d65736c69636520617420776869636820746865206c65617365206d6179206e6f386c6f6e676572206170706c79292e0d047441206e6577206c6561736520686173206265656e20637265617465642e2c4c65617365456e64696e670801107461736b1001185461736b49640498546865207461736b20746f207768696368206120636f7265207761732061737369676e65642e01107768656e10012454696d65736c69636504f05468652074696d65736c69636520617420776869636820746865207461736b2077696c6c206e6f206c6f6e676572206265207363686564756c65642e0e046041206c656173652069732061626f757420746f20656e642e3053616c657353746172746564080114707269636518013042616c616e63654f663c543e04c0546865206e6f6d696e616c207072696365206f6620616e20526567696f6e206f662042756c6b20436f726574696d652e0128636f72655f636f756e7495010124436f7265496e646578041501546865206d6178696d756d206e756d626572206f6620636f72657320776869636820746869732070616c6c65742077696c6c20617474656d707420746f2061737369676e2e0f04f85468652073616c6520726f746174696f6e20686173206265656e207374617274656420616e642061206e65772073616c6520697320696d6d696e656e742e44526576656e7565436c61696d426567756e080118726567696f6e09070120526567696f6e4964047454686520726567696f6e20746f20626520636c61696d656420666f722e01386d61785f74696d65736c6963657310012454696d65736c696365041901546865206d6178696d756d206e756d626572206f662074696d65736c696365732077686963682073686f756c6420626520736561726368656420666f7220636c61696d65642e10049854686520616374206f6620636c61696d696e6720726576656e75652068617320626567756e2e40526576656e7565436c61696d4974656d0801107768656e10012454696d65736c69636504b45468652074696d65736c6963652077686f736520636c61696d206973206265696e672070726f6365737365642e0118616d6f756e7418013042616c616e63654f663c543e04bc54686520616d6f756e742077686963682077617320636c61696d656420617420746869732074696d65736c6963652e1104b04120706172746963756c61722074696d65736c696365206861732061206e6f6e2d7a65726f20636c61696d2e40526576656e7565436c61696d506169640c010c77686f000130543a3a4163636f756e74496404a8546865206163636f756e7420746f2077686f6d20726576656e756520686173206265656e20706169642e0118616d6f756e7418013042616c616e63654f663c543e04b454686520746f74616c20616d6f756e74206f6620726576656e756520636c61696d656420616e6420706169642e01106e657874d90701404f7074696f6e3c526567696f6e49643e044901546865206e65787420726567696f6e2077686963682073686f756c6420626520636c61696d656420666f722074686520636f6e74696e756174696f6e206f66207468697320636f6e747269627574696f6e2e1204d84120726576656e756520636c61696d206861732028706f737369626c79206f6e6c7920696e207061727429206265656e20706169642e3c4372656469745075726368617365640c010c77686f000130543a3a4163636f756e744964049c546865206163636f756e742077686963682070757263686173656420746865206372656469742e012c62656e656669636961727900014c52656c61794163636f756e7449644f663c543e04e45468652052656c61792d636861696e206163636f756e7420746f20776869636820746865206372656469742077696c6c206265206d6164652e0118616d6f756e7418013042616c616e63654f663c543e047c54686520616d6f756e74206f6620637265646974207075726368617365642e1304ec536f6d6520496e7374616e74616e656f757320436f726574696d6520506f6f6c2063726564697420686173206265656e207075726368617365642e34526567696f6e44726f70706564080124726567696f6e5f696409070120526567696f6e4964048854686520526567696f6e207768696368206e6f206c6f6e676572206578697374732e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e1404cc4120526567696f6e20686173206265656e2064726f707065642064756520746f206265696e67206f7574206f6620646174652e4c436f6e747269627574696f6e44726f70706564040124726567696f6e5f696409070120526567696f6e496404c854686520526567696f6e2077686f736520636f6e747269627574696f6e206973206e6f206c6f6e676572206578697374732e15043501536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c20636f6e747269627574696f6e207265636f726420686173206265656e2064726f707065642e48486973746f7279496e697469616c697a65640c01107768656e10012454696d65736c69636504c45468652074696d65736c6963652077686f736520686973746f727920686173206265656e20696e697469616c697a65642e0144707269766174655f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7404410154686520616d6f756e74206f6620707269766174656c7920636f6e747269627574656420436f726574696d6520746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e014073797374656d5f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7408310154686520616d6f756e74206f6620436f726574696d6520636f6e747269627574656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2062792074686540506f6c6b61646f742053797374656d2e16043101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e20696e697469616c697a65642e38486973746f727944726f707065640801107768656e10012454696d65736c69636504cc5468652074696d65736c6963652077686f736520686973746f7279206973206e6f206c6f6e67657220617661696c61626c652e011c726576656e756518013042616c616e63654f663c543e04ac54686520616d6f756e74206f6620726576656e7565207468652073797374656d206861732074616b656e2e17042101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2064726f707065642e38486973746f727949676e6f7265640801107768656e10012454696d65736c69636504ac5468652074696d65736c6963652077686f736520686973746f7279206973207761732069676e6f7265642e011c726576656e756518013042616c616e63654f663c543e04a054686520616d6f756e74206f6620726576656e7565207768696368207761732069676e6f7265642e18084d01536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2069676e6f726564206265636175736520746865f874696d65736c6963652077617320616c7265616479206b6e6f776e2e20476f7665726e616e6365206d6179206e65656420746f20696e74657276656e652e2c436c61696d7352656164790c01107768656e10012454696d65736c69636504a45468652074696d65736c6963652077686f736520686973746f727920697320617661696c61626c652e013473797374656d5f7061796f757418013042616c616e63654f663c543e04f054686520616d6f756e74206f6620726576656e75652074686520506f6c6b61646f742053797374656d2068617320616c72656164792074616b656e2e0138707269766174655f7061796f757418013042616c616e63654f663c543e04d054686520746f74616c20616d6f756e74206f6620726576656e75652072656d61696e696e6720746f20626520636c61696d65642e19042d01536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c20526576656e756520697320726561647920666f72207061796f757420636c61696d732e30436f726541737369676e65640c0110636f726595010124436f7265496e64657804b854686520696e646578206f662074686520436f726520776869636820686173206265656e2061737369676e65642e01107768656e10015452656c6179426c6f636b4e756d6265724f663c543e0409015468652052656c61792d636861696e20626c6f636b20617420776869636820746869732061737369676e6d656e742073686f756c642074616b65206566666563742e012861737369676e6d656e74dd07018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e049054686520776f726b6c6f616420746f20626520646f6e65206f6e2074686520436f72652e1a0445014120436f726520686173206265656e2061737369676e656420746f206f6e65206f72206d6f7265207461736b7320616e642f6f722074686520506f6f6c206f6e207468652052656c61792d636861696e2e5c506f74656e7469616c52656e6577616c44726f707065640801107768656e10012454696d65736c69636504cc5468652074696d65736c6963652077686f73652072656e6577616c206973206e6f206c6f6e67657220617661696c61626c652e0110636f726595010124436f7265496e64657804210154686520636f72652077686f736520776f726b6c6f6164206973206e6f206c6f6e67657220617661696c61626c6520746f2062652072656e6577656420666f7220607768656e602e1b042101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2064726f707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d507000004080907090700d90704184f7074696f6e0404540109070108104e6f6e6500000010536f6d65040009070000010000dd07000002e10700e107000004080107950100e5070c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579e90701c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565f10701ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565f10701ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e907084c6b69746368656e73696e6b5f72756e74696d655052756e74696d65506172616d65746572734b65790001041c53746f726167650400ed0701d9013c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72743a3a0a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900000000ed07104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f7261676534506172616d65746572734b65790001082c426173654465706f73697404003907012c426173654465706f7369740000002c427974654465706f73697404003d07012c427974654465706f73697400010000f10704184f7074696f6e04045401f5070108104e6f6e6500000010536f6d650400f5070000010000f507084c6b69746368656e73696e6b5f72756e74696d655852756e74696d65506172616d657465727356616c75650001041c53746f726167650400f90701e1013c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72743a3a0a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c756500000000f907104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167653c506172616d657465727356616c75650001082c426173654465706f736974040018011c42616c616e63650000002c427974654465706f736974040018011c42616c616e636500010000fd070c6c70616c6c65745f736b69705f6665656c6573735f7061796d656e741870616c6c6574144576656e7404045400010428466565536b697070656404010c77686f000130543a3a4163636f756e7449640000047841207472616e73616374696f6e206665652077617320736b69707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657401080c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c6574144576656e74040454000104504d69677261746564546f4e65774163636f756e740c011c706f6f6c5f69648d070124543a3a506f6f6c49640428506f6f6c27732049442e01347072696f725f6163636f756e74000130543a3a4163636f756e7449640460506f6f6c2773207072696f72206163636f756e742049442e012c6e65775f6163636f756e74000130543a3a4163636f756e7449640458506f6f6c2773206e6577206163636f756e742049442e0004f8496e646963617465732074686174206120706f6f6c20686173206265656e206d6967726174656420746f20746865206e6577206163636f756e742049442e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050808306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000009080000027901000d0808306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e7502014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d651108016473705f72756e74696d653a3a52756e74696d65537472696e67000011080000050200150808306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000019080c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173731d0801845065724469737061746368436c6173733c57656967687473506572436c6173733e00001d080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454012108000c01186e6f726d616c210801045400012c6f7065726174696f6e616c21080104540001246d616e6461746f72792108010454000021080c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963650701384f7074696f6e3c5765696768743e0001246d61785f746f74616c650701384f7074696f6e3c5765696768743e0001207265736572766564650701384f7074696f6e3c5765696768743e000025080c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178290801545065724469737061746368436c6173733c7533323e000029080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400002d08082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400003108082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d651108013452756e74696d65537472696e67000124696d706c5f6e616d651108013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069733508011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800003508040c436f77040454013908000400390800000039080000023d08003d08000004087d04100041080c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657445080c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e49080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014d08045300000400510801185665633c543e00004d08000004087902300051080000024d080055080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400590801185665633c543e0000590800000204005d0804184f7074696f6e0404540161080108104e6f6e6500000010536f6d6504006108000001000061080c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400650801405072696d617279507265446967657374000100385365636f6e64617279506c61696e04006d08015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400710801545365636f6e646172795652465072654469676573740003000065080c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f747d020110536c6f740001347672665f7369676e6174757265690801305672665369676e617475726500006908101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f661504012056726650726f6f6600006d080c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f747d020110536c6f74000071080c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f747d020110536c6f740001347672665f7369676e6174757265690801305672665369676e617475726500007508084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046389020128287536342c2075363429000134616c6c6f7765645f736c6f74738d020130416c6c6f776564536c6f7473000079080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017d08045300000400810801185665633c543e00007d080000040830100081080000027d080085080c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e89080000040c001820008d080c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540195080453000004009d0801185665633c543e000095080c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869647d0401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e739908011c526561736f6e73000099080c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200009d08000002950800a1080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a508045300000400a90801185665633c543e0000a5080c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572017d041c42616c616e636501180008010869647d040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000a908000002a50800ad080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b108045300000400d50801185665633c543e0000b10814346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401b5081c42616c616e63650118000801086964b50801084964000118616d6f756e7418011c42616c616e63650000b508084c6b69746368656e73696e6b5f72756e74696d654452756e74696d65486f6c64526561736f6e00011c24436f6e7472616374730400b908017070616c6c65745f636f6e7472616374733a3a486f6c64526561736f6e00150020507265696d6167650400bd08016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0022000c4e69730400c108015870616c6c65745f6e69733a3a486f6c64526561736f6e002d00504e66744672616374696f6e616c697a6174696f6e0400c50801a070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a486f6c64526561736f6e003000485472616e73616374696f6e53746f726167650400c908019870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a486f6c64526561736f6e003300485374617465547269654d6967726174696f6e0400cd08019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e00350020536166654d6f64650400d108017070616c6c65745f736166655f6d6f64653a3a486f6c64526561736f6e00460000b9080c4070616c6c65745f636f6e7472616374731870616c6c657428486f6c64526561736f6e00010860436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f7369745265736572766500010000bd080c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d61676500000000c1080c2870616c6c65745f6e69731870616c6c657428486f6c64526561736f6e000104284e66745265636569707400000000c5080c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c657428486f6c64526561736f6e000104384672616374696f6e616c697a656400000000c9080c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c657428486f6c64526561736f6e0001043853746f72616765466565486f6c6400000000cd080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d69677261746500000000d1080c4070616c6c65745f736166655f6d6f64651870616c6c657428486f6c64526561736f6e00010434456e7465724f72457874656e6400000000d508000002b10800d9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd08045300000400e90801185665633c543e0000dd0814346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401e1081c42616c616e63650118000801086964e10801084964000118616d6f756e7418011c42616c616e63650000e108084c6b69746368656e73696e6b5f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c730400e508019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e003e0000e5080c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e636500000000e908000002dd0800ed080c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef108086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f508089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e08244163636f756e74496400284d617857696e6e65727300000c0120737570706f727473f9080198426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572733e00011473636f7265b00134456c656374696f6e53636f726500011c636f6d70757465a8013c456c656374696f6e436f6d707574650000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018903045300000400850301185665633c543e0000fd08089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e7449640100304461746150726f766964657201010900080118766f74657273090901445665633c4461746150726f76696465723e00011c74617267657473650101385665633c4163636f756e7449643e000001090000040c003005090005090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e000009090000020109000d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011109045300000400150901185665633c543e000011090000040cb0101000150900000211090019090c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01b1020010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ead020154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e636500001d090c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b85375626d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2109083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616c4501013042616c616e63654f663c543e0001186163746976654501013042616c616e63654f663c543e000124756e6c6f636b696e67b90301f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f7265776172647325090194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000025090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e00002909083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473050901b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c00002d09083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172743109012c4f7074696f6e3c7536343e0000310904184f7074696f6e04045401300108104e6f6e6500000010536f6d6504003000000100003509000004081000003909082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616c4501011c42616c616e636500010c6f776e4501011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e741001105061676500003d090000040c100010004109082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616c4501011c42616c616e63650001186f7468657273490101ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e00004509083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c4909018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00004909042042547265654d617008044b0100045601100004004d090000004d0900000251090051090000040800100055090000025909005909083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273f801645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273650101385665633c4163636f756e7449643e0001187061796f757418011c42616c616e636500005d0900000408c4180061090c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72c90101345665633c457261496e6465783e000065090c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500006909103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400017c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d0900000271090071090000040800c903007509000004087909380079090c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00007d090c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e81090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018509045300000400890901185665633c543e000085090000040c103102000089090000028509008d09000004089109180091090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e000095090c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c0131021c42616c616e6365011801081c4f6e676f696e670400990901c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564200110626f6f6c00010c656e6410012c426c6f636b4e756d6265720001000099090c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c0131021c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616c3102012050726f706f73616c0001247468726573686f6c64dc0134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c799d09013854616c6c793c42616c616e63653e00009d090c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000a1090c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573a50901f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73b109015044656c65676174696f6e733c42616c616e63653e0001147072696f72b509017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee1030128436f6e76696374696f6e00012c64656c65676174696f6e73b109015044656c65676174696f6e733c42616c616e63653e0001147072696f72b509017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000a5090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a909045300000400ad0901185665633c543e0000a9090000040810e000ad09000002a90900b1090c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000b5090c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000b909000004083102dc00bd090000040810910900c1090c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001602056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365445265666572656e64756d496e76616c696400090484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d2c4e6f6e6557616974696e67000a04504e6f2070726f706f73616c732077616974696e67204e6f74566f746572000b04c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e000c04c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67000d0488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473000e04fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000f04a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740010085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001104d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650012049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400130450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001404804d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c546f6f4d616e79001504804d6178696d756d206e756d626572206f66206974656d7320726561636865642e3c566f74696e67506572696f644c6f7700160454566f74696e6720706572696f6420746f6f206c6f7740507265696d6167654e6f7445786973740017047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec5090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0501185665633c543e0000c909084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573650101385665633c4163636f756e7449643e0001106e617973650101385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000cd090c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0501185665633c543e0000d5090c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed909000002dd0900dd09086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000e109086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573650101385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000e5090c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e4c4475706c69636174656443616e646964617465000704804475706c6963617465642063616e646964617465207375626d697373696f6e2e44546f6f4d616e7943616e6469646174657300080498546f6f206d616e792063616e646964617465732068617665206265656e20637265617465642e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee9090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000ed090c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e38546f6f4d616e794d656d6265727300020444546f6f206d616e79206d656d626572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef109083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000f509083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573f909016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f726365649c01244f7074696f6e3c4e3e0000f9090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454010d01045300000400090101185665633c543e0000fd090c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010a083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000050a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e0000090a083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e64011030417373657442616c616e636501182c42656e656669636961727901002c426c6f636b4e756d6265720110245061796d656e74496401840018012861737365745f6b696e6410012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e656669636961727900012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d6265720001187374617475730d0a015c5061796d656e7453746174653c5061796d656e7449643e00000d0a083c70616c6c65745f7472656173757279305061796d656e745374617465040849640184010c1c50656e64696e6700000024417474656d7074656404010869648401084964000100184661696c656400020000110a08346672616d655f737570706f72742050616c6c65744964000004007d04011c5b75383b20385d0000150a0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e190a0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000210a0c4070616c6c65745f636f6e747261637473107761736d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f7369744501013042616c616e63654f663c543e000120726566636f756e742c010c75363400012c64657465726d696e69736d3904012c44657465726d696e69736d000120636f64655f6c656e10010c7533320000250a0c4070616c6c65745f636f6e7472616374731c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f6964c5010118547269654964000124636f64655f6861736834012c436f6465486173683c543e00013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e00015464656c65676174655f646570656e64656e63696573290a011d01426f756e64656442547265654d61703c436f6465486173683c543e2c2042616c616e63654f663c543e2c20543a3a0a4d617844656c6567617465446570656e64656e636965733e0000290a0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0134045601180453000004002d0a013842547265654d61703c4b2c20563e00002d0a042042547265654d617008044b013404560118000400310a000000310a000002350a00350a00000408341800390a0c4070616c6c65745f636f6e7472616374731c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c75333200003d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000410a0c4070616c6c65745f636f6e747261637473207363686564756c65205363686564756c6504045400000801186c696d697473450a01184c696d69747300014c696e737472756374696f6e5f77656967687473490a0154496e737472756374696f6e576569676874733c543e0000450a0c4070616c6c65745f636f6e747261637473207363686564756c65184c696d69747300001401306576656e745f746f7069637310010c7533320001306d656d6f72795f706167657310010c75333200012c7375626a6563745f6c656e10010c75333200012c7061796c6f61645f6c656e10010c75333200013872756e74696d655f6d656d6f727910010c7533320000490a0c4070616c6c65745f636f6e747261637473207363686564756c6548496e737472756374696f6e5765696768747304045400000401106261736510010c75333200004d0a084070616c6c65745f636f6e7472616374732c456e7669726f6e6d656e7404045400001801286163636f756e745f6964510a017c456e7669726f6e6d656e74547970653c4163636f756e7449644f663c543e3e00011c62616c616e6365550a0174456e7669726f6e6d656e74547970653c42616c616e63654f663c543e3e00011068617368590a01c8456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a486173683e0001186861736865725d0a01d4456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368696e673e00012474696d657374616d70610a0170456e7669726f6e6d656e74547970653c4d6f6d656e744f663c543e3e000130626c6f636b5f6e756d626572650a0188456e7669726f6e6d656e74547970653c426c6f636b4e756d626572466f723c543e3e0000510a084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540100000000550a084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540118000000590a084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401340000005d0a084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e7454797065040454014507000000610a084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540130000000650a084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540110000000690a084070616c6c65745f636f6e7472616374732841706956657273696f6e000004009501010c75313600006d0a0c4070616c6c65745f636f6e7472616374731870616c6c6574144572726f720404540001943c496e76616c69645363686564756c650000041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730001043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000204b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c0003040101546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f6465546f6f4c617267650007083d0154686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468654463757272656e74207363686564756c652e30436f64654e6f74466f756e64000804c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000904d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473000a0425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000b042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000c0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000d04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000e0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000f044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e67001004d8546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730011041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e404e6f436861696e457874656e73696f6e00120c450154686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c74734d01696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e7472616374733069732072656a65637465642e3c58434d4465636f64654661696c6564001304844661696c656420746f206465636f6465207468652058434d2070726f6772616d2e444475706c6963617465436f6e7472616374001404c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200150cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640016100d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e5d01546865206f6e6c79206f74686572206361757365206973207468617420612063616c6c2066726f6d206120636f6e747261637420696e746f207468652072756e74696d6520747269656420746f2063616c6c206261636b4901696e746f206070616c6c65742d636f6e747261637473602e205468697320776f756c64206d616b65207468652077686f6c652070616c6c6574207265656e7472616e7420776974682072656761726420746fbc636f6e747261637420636f646520657865637574696f6e207768696368206973206e6f7420737570706f727465642e4453746174654368616e676544656e6965640017044d014120636f6e747261637420617474656d7074656420746f20696e766f6b652061207374617465206d6f64696679696e6720415049207768696c65206265696e6720696e20726561642d6f6e6c79206d6f64652e7053746f726167654465706f7369744e6f74456e6f75676846756e647300180421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640019040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e557365001a044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001b10250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001c20f854686520636f6e7472616374277320636f64652077617320666f756e6420746f20626520696e76616c696420647572696e672076616c69646174696f6e2e004d01546865206d6f7374206c696b656c79206361757365206f662074686973206973207468617420616e20415049207761732075736564207768696368206973206e6f7420737570706f727465642062792074686551016e6f64652e20546869732068617070656e7320696620616e206f6c646572206e6f6465206973207573656420776974682061206e65772076657273696f6e206f6620696e6b212e20547279207570646174696e67a8796f7572206e6f646520746f20746865206e657765737420617661696c61626c652076657273696f6e2e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c6564a8627920737570706c79696e6720602d6c72756e74696d653a3a636f6e7472616374733d6465627567602e3c496e64657465726d696e6973746963001d042901416e20696e64657465726d696e697374696320636f646520776173207573656420696e206120636f6e746578742077686572652074686973206973206e6f74207065726d69747465642e4c4d6967726174696f6e496e50726f6772657373001e042501412070656e64696e67206d6967726174696f6e206e6565647320746f20636f6d706c657465206265666f7265207468652065787472696e7369632063616e2062652063616c6c65642e504e6f4d6967726174696f6e506572666f726d6564001f040d014d6967726174652064697370617463682063616c6c2077617320617474656d7074656420627574206e6f206d6967726174696f6e2077617320706572666f726d65642e784d617844656c6567617465446570656e64656e6369657352656163686564002004150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64002104150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002204f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002304290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e544f75744f665472616e7369656e7453746f72616765002404ac43616e206e6f7420616464206d6f7265206461746120746f207472616e7369656e742073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e710a0c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e750a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454013501045300000400790a01185665633c543e0000790a0000023501007d0a0c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401cd03045300000400850a01185665633c543e0000850a000002cd0300890a0c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e646572013d01000801206f6666656e6465723d0101204f6666656e6465720001247265706f7274657273650101345665633c5265706f727465723e00008d0a0000040855013800910a00000408341000950a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0501185665633c543e0000990a000004089d0aad0a009d0a0c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e747300304964656e74697479496e666f015104000c01286a756467656d656e7473a10a01fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f510401304964656e74697479496e666f0000a10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50a045300000400a90a01185665633c543e0000a50a0000040810e50400a90a000002a50a00ad0a04184f7074696f6e040454015d010108104e6f6e6500000010536f6d6504005d010000010000b10a0000040818b50a00b50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000b90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd0a045300000400c50a01185665633c543e0000bd0a04184f7074696f6e04045401c10a0108104e6f6e6500000010536f6d650400c10a0000010000c10a0c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f0c1c42616c616e63650118244163636f756e74496401001c49644669656c640130000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c647330011c49644669656c640000c50a000002bd0a00c90a0c3c70616c6c65745f6964656e746974791474797065734c417574686f7269747950726f70657274696573041853756666697801cd0a00080118737566666978cd0a0118537566666978000128616c6c6f636174696f6e100128416c6c6f636174696f6e0000cd0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d10a0c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400016848546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e44546f6f4d616e7952656769737472617273000b04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000c04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000d047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000e04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479000f04d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e584a756467656d656e745061796d656e744661696c6564001004f84572726f722074686174206f6363757273207768656e20746865726520697320616e20697373756520706179696e6720666f72206a756467656d656e742e34496e76616c6964537566666978001104805468652070726f76696465642073756666697820697320746f6f206c6f6e672e504e6f74557365726e616d65417574686f72697479001204e05468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e20746f206973737565206120757365726e616d652e304e6f416c6c6f636174696f6e001304c454686520617574686f726974792063616e6e6f7420616c6c6f6361746520616e79206d6f726520757365726e616d65732e40496e76616c69645369676e6174757265001404a8546865207369676e6174757265206f6e206120757365726e616d6520776173206e6f742076616c69642e4452657175697265735369676e6174757265001504090153657474696e67207468697320757365726e616d652072657175697265732061207369676e61747572652c20627574206e6f6e65207761732070726f76696465642e3c496e76616c6964557365726e616d65001604b054686520757365726e616d6520646f6573206e6f74206d6565742074686520726571756972656d656e74732e34557365726e616d6554616b656e0017047854686520757365726e616d6520697320616c72656164792074616b656e2e284e6f557365726e616d65001804985468652072657175657374656420757365726e616d6520646f6573206e6f742065786973742e284e6f74457870697265640019042d0154686520757365726e616d652063616e6e6f7420626520666f72636566756c6c792072656d6f76656420626563617573652069742063616e207374696c6c2062652061636365707465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed50a083870616c6c65745f736f6369657479304d656d6265725265636f7264000010011072616e6b10011052616e6b00011c737472696b657310012c537472696b65436f756e74000120766f756368696e67d90a01584f7074696f6e3c566f756368696e675374617475733e000114696e64657810010c7533320000d90a04184f7074696f6e04045401dd0a0108104e6f6e6500000010536f6d650400dd0a0000010000dd0a083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e656400010000e10a083870616c6c65745f736f6369657479305061796f75745265636f7264081c42616c616e63650118285061796f75747356656301e50a000801107061696418011c42616c616e636500011c7061796f757473e50a01285061796f7574735665630000e50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e90a045300000400ed0a01185665633c543e0000e90a00000408101800ed0a000002e90a00f10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f50a045300000400fd0a01185665633c543e0000f50a083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e64f90a016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e63650000f90a083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000fd0a000002f50a00010b083870616c6c65745f736f63696574792443616e64696461637908244163636f756e74496401001c42616c616e6365011800140114726f756e64100128526f756e64496e6465780001106b696e64f90a016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00010c62696418011c42616c616e636500011474616c6c79050b011454616c6c79000138736b65707469635f73747275636b200110626f6f6c0000050b083870616c6c65745f736f63696574791454616c6c790000080124617070726f76616c73100124566f7465436f756e7400012872656a656374696f6e73100124566f7465436f756e740000090b000004080000000d0b083870616c6c65745f736f636965747910566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c7533320000110b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000150b083870616c6c65745f736f636965747930496e74616b655265636f726408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e74496400010c62696418011c42616c616e6365000114726f756e64100128526f756e64496e6465780000190b0000040c0000050b001d0b0c3870616c6c65745f736f63696574791870616c6c6574144572726f72080454000449000180244e6f744d656d6265720000045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000104645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400020448557365722069732073757370656e6465642e304e6f7453757370656e6465640003045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000404484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400050460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000604984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000704e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e4c4e6f74566f756368696e674f6e4269646465720008045c4d656d626572206973206e6f7420766f756368696e672e10486561640009049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000a046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000b0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000c04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000d046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000e0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572000f04785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640010046c5468652063616c6c6572206973206e6f742074686520686561642e2c4e6f74417070726f7665640011042d01546865206d656d626572736869702063616e6e6f7420626520636c61696d6564206173207468652063616e64696461746520776173206e6f7420636c6561726c7920617070726f7665642e2c4e6f7452656a656374656400120425015468652063616e6469646174652063616e6e6f74206265206b69636b6564206173207468652063616e64696461746520776173206e6f7420636c6561726c792072656a65637465642e20417070726f76656400130419015468652063616e6469646163792063616e6e6f742062652064726f70706564206173207468652063616e6469646174652077617320636c6561726c7920617070726f7665642e2052656a65637465640014041d015468652063616e6469646163792063616e6e6f7420626520626573746f776564206173207468652063616e6469646174652077617320636c6561726c792072656a65637465642e28496e50726f677265737300150415015468652063616e6469646163792063616e6e6f7420626520636f6e636c756465642061732074686520766f74696e67206973207374696c6c20696e2070726f67726573732e20546f6f4561726c7900160441015468652063616e6469646163792063616e6e6f74206265207072756e656420756e74696c20612066756c6c206164646974696f6e616c20696e74616b6520706572696f6420686173207061737365642e14566f7465640017046854686520736b657074696320616c726561647920766f7465642e1c45787069726564001804f054686520736b6570746963206e656564206e6f7420766f7465206f6e2063616e646964617465732066726f6d206578706972656420726f756e64732e244e6f744269646465720019045455736572206973206e6f742061206269646465722e284e6f446566656e646572001a047c5468657265206973206e6f20646566656e6465722063757272656e746c792e204e6f7447726f7570001b045047726f757020646f65736e27742065786973742e3c416c7265616479456c657661746564001c04b0546865206d656d62657220697320616c726561647920656c65766174656420746f20746869732072616e6b2e3c416c726561647950756e6973686564001d04dc54686520736b65707469632068617320616c7265616479206265656e2070756e697368656420666f722074686973206f6666656e63652e44496e73756666696369656e7446756e6473001e04c046756e64732061726520696e73756666696369656e7420746f20706179206f666620736f63696574792064656274732e1c4e6f566f746573001f04d05468652063616e6469646174652f646566656e64657220686173206e6f207374616c6520766f74657320746f2072656d6f76652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210b083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301250b0010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473250b011c467269656e64730001247468726573686f6c649501010c7531360000250b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000290b083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301250b000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473250b011c467269656e647300002d0b0c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010105045300000400350b01185665633c543e0000350b000002010500390b083870616c6c65745f76657374696e672052656c6561736573000108085630000000085631000100003d0b0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e410b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401450b0453000004004d0b01185665633c543e0000450b04184f7074696f6e04045401490b0108104e6f6e6500000010536f6d650400490b0000010000490b084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0131022c426c6f636b4e756d62657201103450616c6c6574734f726967696e015102244163636f756e7449640100001401206d617962655f69647d0101304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3102011043616c6c0001386d617962655f706572696f646963090501944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e5102013450616c6c6574734f726967696e00004d0b000002450b00510b084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000550b0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590b0c3870616c6c65745f676c7574746f6e1870616c6c6574144572726f7204045400010848416c7265616479496e697469616c697a656400000c8c5468652070616c6c65742077617320616c726561647920696e697469616c697a65642e00cc53657420607769746e6573735f636f756e746020746f2060536f6d656020746f206279706173732074686973206572726f722e2c496e73616e654c696d6974000104c8546865206c696d697420776173206f766572205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0b083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974fc0150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974610b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e9c012c4f7074696f6e3c7533323e00010000610b04184f7074696f6e04045401fc0108104e6f6e6500000010536f6d650400fc0000010000650b083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401690b01082c556e7265717565737465640801187469636b65746d0b014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574710b016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e9c012c4f7074696f6e3c7533323e00010000690b14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e636500006d0b0000040800690b00710b04184f7074696f6e040454016d0b0108104e6f6e6500000010536f6d6504006d0b0000010000750b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790b0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012418546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e184e6f436f737400080459014e6f207469636b65742077697468206120636f7374207761732072657475726e6564206279205b60436f6e6669673a3a436f6e73696465726174696f6e605d20746f2073746f72652074686520707265696d6167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0b00000408810b1800810b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401850b045300000400890b01185665633c543e0000850b083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650191012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970659101012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000890b000002850b008d0b00000408910b1800910b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401950b045300000400990b01185665633c543e0000950b083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000990b000002950b009d0b0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10b00000408000400a50b083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e9d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c739109018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000a90b0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0b083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573b10b0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000b10b083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000b50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b90b0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900012c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd0b082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680134001c0118726561736f6e3401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f7365739c014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073f801645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565200110626f6f6c0000c10b0c2c70616c6c65745f746970731870616c6c6574144572726f7208045400044900011c30526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e504d6178546970416d6f756e7445786365656465640003047c5468652074697020676976656e2077617320746f6f2067656e65726f75732e244e6f7446696e6465720004041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0005042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650006043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec50b0c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74200110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c753332000118737461747573c90b012c41737365745374617475730000c90b0c3470616c6c65745f6173736574731474797065732c417373657453746174757300010c104c6976650000001846726f7a656e0001002844657374726f79696e6700020000cd0b0c3470616c6c65745f6173736574731474797065733041737365744163636f756e74101c42616c616e63650118384465706f73697442616c616e636501181445787472610184244163636f756e74496401000010011c62616c616e636518011c42616c616e6365000118737461747573d10b01344163636f756e74537461747573000118726561736f6ed50b01a84578697374656e6365526561736f6e3c4465706f73697442616c616e63652c204163636f756e7449643e000114657874726184011445787472610000d10b0c3470616c6c65745f617373657473147479706573344163636f756e7453746174757300010c184c69717569640000001846726f7a656e0001001c426c6f636b656400020000d50b0c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e081c42616c616e63650118244163636f756e7449640100011420436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e6465640003002c4465706f73697446726f6d08000001244163636f756e744964000018011c42616c616e636500040000d90b0000040c10000000dd0b0c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e63650000e10b0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701e50b0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65e50b0134426f756e646564537472696e6700011873796d626f6ce50b0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000e50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000e90b0c3470616c6c65745f6173736574731870616c6c6574144572726f720804540004490001542842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed0b0c3470616c6c65745f6173736574731870616c6c6574144572726f720804540004490001542842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400f50b01185665633c543e0000f50b000002d50300f90b0c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011c60496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c6964446f75626c65566f74696e6750726f6f6600010431014120646f75626c6520766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e58496e76616c6964466f726b566f74696e6750726f6f6600020429014120666f726b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e74496e76616c6964467574757265426c6f636b566f74696e6750726f6f660003044901412066757475726520626c6f636b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e7c496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e000404c05468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f6620697320696e76616c6964584475706c69636174654f6666656e63655265706f727400050415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0006048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0b0c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e740000010c083870616c6c65745f6c6f7474657279344c6f7474657279436f6e666967082c426c6f636b4e756d62657201101c42616c616e6365011800140114707269636518011c42616c616e6365000114737461727410012c426c6f636b4e756d6265720001186c656e67746810012c426c6f636b4e756d62657200011464656c617910012c426c6f636b4e756d626572000118726570656174200110626f6f6c0000050c0000040810090c00090c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b5010453000004000d0c01185665633c543e00000d0c000002b50100110c0c3870616c6c65745f6c6f74746572791870616c6c6574144572726f7204045400011c344e6f74436f6e666967757265640000048841206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f67726573730001048441206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e6465640002047041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c000304a85468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e67000404f0596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c7300050490546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564000604584661696c656420746f20656e636f64652063616c6c73048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e90a045300000400ed0a01185665633c543e0000190c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0c045300000400210c01185665633c543e00001d0c0c2870616c6c65745f6e69731870616c6c65740c426964081c42616c616e63650118244163636f756e744964010000080118616d6f756e7418011c42616c616e636500010c77686f0001244163636f756e7449640000210c0000021d0c00250c0c2870616c6c65745f6e69731870616c6c65743453756d6d6172795265636f7264082c426c6f636b4e756d62657201101c42616c616e636501180014013c70726f706f7274696f6e5f6f776564bd01012c5065727175696e74696c6c000114696e64657810013052656365697074496e646578000118746861776564bd01012c5065727175696e74696c6c00012c6c6173745f706572696f6410012c426c6f636b4e756d62657200014072656365697074735f6f6e5f686f6c6418011c42616c616e63650000290c0c2870616c6c65745f6e69731870616c6c657434526563656970745265636f72640c244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118000c012870726f706f7274696f6ebd01012c5065727175696e74696c6c0001146f776e6572610b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e00011865787069727910012c426c6f636b4e756d62657200002d0c00000408bd011000310c0c2870616c6c65745f6e69731870616c6c6574144572726f7204045400013c404475726174696f6e546f6f536d616c6c000004a4546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f426967000104f4546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c000204dc54686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f77000308410154686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e887468726f756768207265706c6163696e6720616e206578697374696e67206269642e38556e6b6e6f776e52656365697074000404645265636569707420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572000504744e6f7420746865206f776e6572206f662074686520726563656970742e284e6f744578706972656400060470426f6e64206e6f74207965742061742065787069727920646174652e28556e6b6e6f776e426964000704a854686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e34506f7274696f6e546f6f426967000804e054686520706f7274696f6e20737570706c696564206973206265796f6e64207468652076616c7565206f662074686520726563656970742e20556e66756e646564000904944e6f7420656e6f7567682066756e6473206172652068656c6420746f20706179206f75742e34416c726561647946756e646564000a04b054686572652061726520656e6f7567682066756e647320666f7220776861742069732072657175697265642e245468726f74746c6564000b04cc5468652074686177207468726f74746c6520686173206265656e207265616368656420666f72207468697320706572696f642e244d616b657344757374000c041501546865206f7065726174696f6e20776f756c6420726573756c7420696e2061207265636569707420776f72746820616e20696e7369676e69666963616e742076616c75652e3c416c7265616479436f6d6d756e616c000d0480546865207265636569707420697320616c726561647920636f6d6d756e616c2e38416c726561647950726976617465000e047c546865207265636569707420697320616c726561647920707269766174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350c0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67200110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e200110626f6f6c0000390c0000040c001010003d0c0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564ac01444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e200110626f6f6c00011c6465706f7369741801384465706f73697442616c616e63650000410c0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461c501016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000450c0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461c501016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000490c0000040c109c5d01004d0c00000408cd011800510c0000040818ac00550c0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000148304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590c0c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c75333200005d0c0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401610c000400080138436f6c6c656374696f6e526f6c650000610c0c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000650c0c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401690c24417070726f76616c73016d0c000c01146f776e65720001244163636f756e744964000124617070726f76616c736d0c0124417070726f76616c7300011c6465706f736974690c011c4465706f7369740000690c0c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e636500006d0c0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456019c045300000400710c013842547265654d61703c4b2c20563e0000710c042042547265654d617008044b01000456019c000400750c000000750c000002790c00790c00000408009c007d0c0c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f73697400011064617461d501016c426f756e6465645665633c75382c20537472696e674c696d69743e0000810c0c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401850c2c537472696e674c696d6974000008011c6465706f736974850c011c4465706f73697400011064617461d501016c426f756e6465645665633c75382c20537472696e674c696d69743e0000850c0c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000890c00000410109cd901cd01008d0c00000408d501910c00910c0c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000950c0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400990c012c42547265655365743c543e0000990c04204254726565536574040454010000040065010000009d0c0c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01e10120446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d9c01384f7074696f6e3c4974656d49643e0001147072696365dd0101784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000a10c0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401a50c00040030013450616c6c6574466561747572650000a50c0c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000a90c0c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0c0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1474797065731c44657461696c73101c417373657449640110244672616374696f6e7301181c4465706f7369740118244163636f756e744964010000100114617373657410011c417373657449640001246672616374696f6e731801244672616374696f6e7300011c6465706f73697418011c4465706f73697400013461737365745f63726561746f720001244163636f756e7449640000b10c0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144572726f7204045400011040496e636f727265637441737365744964000004ac417373657420494420646f6573206e6f7420636f72726573706f6e6420746f206c6f636b6564204e46542e304e6f5065726d697373696f6e000104e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e2c4e66744e6f74466f756e64000204484e465420646f65736e27742065786973742e504e66744e6f744672616374696f6e616c697a6564000304904e465420686173206e6f7420796574206265656e206672616374696f6e616c697365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb50c083470616c6c65745f73616c61727928537461747573547970650c284379636c65496e64657801102c426c6f636b4e756d62657201101c42616c616e636501180014012c6379636c655f696e6465781001284379636c65496e64657800012c6379636c655f737461727410012c426c6f636b4e756d62657200011862756467657418011c42616c616e636500014c746f74616c5f726567697374726174696f6e7318011c42616c616e636500015c746f74616c5f756e726567697374657265645f7061696418011c42616c616e63650000b90c083470616c6c65745f73616c61727938436c61696d616e745374617475730c284379636c65496e64657801101c42616c616e6365011808496401840008012c6c6173745f6163746976651001284379636c65496e646578000118737461747573bd0c015c436c61696d53746174653c42616c616e63652c2049643e0000bd0c083470616c6c65745f73616c61727928436c61696d5374617465081c42616c616e636501180849640184010c1c4e6f7468696e670000002852656769737465726564040018011c42616c616e636500010024417474656d707465640c012872656769737465726564b103013c4f7074696f6e3c42616c616e63653e00010869648401084964000118616d6f756e7418011c42616c616e636500020000c10c0c3470616c6c65745f73616c6172791870616c6c6574144572726f7208045400044900013838416c726561647953746172746564000004ac5468652073616c6172792073797374656d2068617320616c7265616479206265656e20737461727465642e244e6f744d656d6265720001048c546865206163636f756e74206973206e6f7420612072616e6b6564206d656d6265722e3c416c7265616479496e64756374656400020480546865206163636f756e7420697320616c726561647920696e6475637465642e2c4e6f74496e6475637465640003001c4e6f436c61696d000404bc546865206d656d62657220646f6573206e6f74206861766520612063757272656e742076616c696420636c61696d2e24436c61696d5a65726f0005046c546865206d656d626572277320636c61696d206973207a65726f2e1c546f6f4c617465000604b043757272656e74206379636c65277320726567697374726174696f6e20706572696f64206973206f7665722e20546f6f4561726c79000704c043757272656e74206379636c652773207061796d656e7420706572696f64206973206e6f742079657420626567756e2e184e6f74596574000804584379636c65206973206e6f7420796574206f7665722e284e6f74537461727465640009049c546865207061796f7574206379636c65732068617665206e6f742079657420737461727465642e2042616e6b72757074000a049c5468657265206973206e6f20627564676574206c65667420666f7220746865207061796f75742e205061794572726f72000b04cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e30496e636f6e636c7573697665000c04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e284e6f7443757272656e74000d04d8546865206379636c65206973206166746572207468617420696e20776869636820746865207061796d656e7420776173206d6164652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec50c085870616c6c65745f636f72655f66656c6c6f7773686970304d656d626572537461747573042c426c6f636b4e756d6265720110000c012469735f616374697665200110626f6f6c0001386c6173745f70726f6d6f74696f6e10012c426c6f636b4e756d6265720001286c6173745f70726f6f6610012c426c6f636b4e756d6265720000c90c0000040809020d0200cd0c0c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c6574144572726f7208045400044900012420556e72616e6b6564000004644d656d62657227732072616e6b20697320746f6f206c6f772e1852616e6b6564000104684d656d62657227732072616e6b206973206e6f74207a65726f2e38556e657870656374656452616e6b00020855014d656d62657227732072616e6b206973206e6f74206173206578706563746564202d2067656e6572616c6c79206d65616e732074686174207468652072616e6b2070726f766964656420746f207468652063616c6cb0646f6573206e6f74206167726565207769746820746865207374617465206f66207468652073797374656d2e2c496e76616c696452616e6b000304550154686520676976656e2072616e6b20697320696e76616c6964202d20746869732067656e6572616c6c79206d65616e732069742773206e6f74206265747765656e203120616e64206052414e4b5f434f554e54602e304e6f5065726d697373696f6e0004040101546865206f726967696e20646f6573206e6f74206861766520656e6f756768207065726d697373696f6e20746f20646f2074686973206f7065726174696f6e2e304e6f7468696e67446f696e67000504d04e6f20776f726b206e6565647320746f20626520646f6e652061742070726573656e7420666f722074686973206d656d6265722e3c416c7265616479496e64756374656400060841015468652063616e6469646174652068617320616c7265616479206265656e20696e6475637465642e20546869732073686f756c64206e657665722068617070656e2073696e636520697420776f756c6405017265717569726520612063616e646964617465202872616e6b20302920746f20616c726561647920626520747261636b656420696e207468652070616c6c65742e284e6f74547261636b656400070439015468652063616e64696461746520686173206e6f74206265656e20696e6475637465642c20736f2063616e6e6f74206265206f6666626f61726465642066726f6d20746869732070616c6c65742e1c546f6f536f6f6e000804f84f7065726174696f6e2063616e6e6f7420626520646f6e65207965742073696e6365206e6f7420656e6f7567682074696d6520686173207061737365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50c045300000400d90c01185665633c543e0000d50c086870616c6c65745f7472616e73616374696f6e5f73746f726167653c5472616e73616374696f6e496e666f00001001286368756e6b5f726f6f743401743c426c616b6554776f32353620617320486173683e3a3a4f7574707574000130636f6e74656e745f686173683401743c426c616b6554776f32353620617320486173683e3a3a4f757470757400011073697a6510010c753332000130626c6f636b5f6368756e6b7310010c7533320000d90c000002d50c00dd0c0c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144572726f72040454000130344e6f74436f6e6669677572656400000458496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e640001047c52656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e00020494417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f660003049450726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f660004046850726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66000504584d697373696e672073746f726167652070726f6f662e404d697373696e67537461746544617461000604d4556e61626c6520746f207665726966792070726f6f6620626563617573652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b00070480446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b6564000804ac53746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c61726765000904645472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73000a048c546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e74657874000b04d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10c0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576ac01504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000e50c0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164ac01504f7074696f6e3c543a3a4163636f756e7449643e0001107461696cac01504f7074696f6e3c543a3a4163636f756e7449643e0000e90c0000023000ed0c0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400f10c01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10c0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000f50c085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573f90c01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000f90c085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000fd0c0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010d0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640195013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c79014907244163636f756e74496401003c5363686564756c654164647265737301790101181c4f6e676f696e670400050d018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000050d0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640195013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c79014907244163636f756e74496401003c5363686564756c6541646472657373017901002c0114747261636b9501011c547261636b49640001186f726967696e5102013452756e74696d654f726967696e00012070726f706f73616c3102011043616c6c000124656e6163746d656e7421060150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974090d016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369740d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67110d01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c794907011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d190d01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000090d0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e636500000d0d04184f7074696f6e04045401090d0108104e6f6e6500000010536f6d650400090d0000010000110d04184f7074696f6e04045401150d0108104e6f6e6500000010536f6d650400150d0000010000150d0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e679c014c4f7074696f6e3c426c6f636b4e756d6265723e0000190d04184f7074696f6e040454011d0d0108104e6f6e6500000010536f6d6504001d0d00000100001d0d0000040810790100210d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e90a045300000400ed0a01185665633c543e0000250d000002290d00290d0000040895012d0d002d0d0c4070616c6c65745f7265666572656e646114747970657324547261636b496e666f081c42616c616e63650118184d6f6d656e740110002401106e616d65110801302627737461746963207374720001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c310d0114437572766500012c6d696e5f737570706f7274310d011443757276650000310d0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468c4011c50657262696c6c000114666c6f6f72c4011c50657262696c6c0001106365696cc4011c50657262696c6c000000445374657070656444656372656173696e67100114626567696ec4011c50657262696c6c00010c656e64c4011c50657262696c6c00011073746570c4011c50657262696c6c000118706572696f64c4011c50657262696c6c000100285265636970726f63616c0c0118666163746f72350d01204669786564493634000120785f6f6666736574350d01204669786564493634000120795f6f6666736574350d0120466978656449363400020000350d0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400390d010c6936340000390d0000050c003d0d0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410d0c3470616c6c65745f72656d61726b1870616c6c6574144572726f7204045400010814456d7074790000047c417474656d7074696e6720746f2073746f726520656d70747920646174612e28426164436f6e74657874000104d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450d0000040800950100490d0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e6704004d0d01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400650d01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e000100004d0d0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573510d01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e735d0d015044656c65676174696f6e733c42616c616e63653e0001147072696f72610d017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000510d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401550d045300000400590d01185665633c543e0000550d0000040810310600590d000002550d005d0d0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000610d0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000650d0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e39060128436f6e76696374696f6e00012c64656c65676174696f6e735d0d015044656c65676174696f6e733c42616c616e63653e0001147072696f72610d017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000690d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d0d045300000400710d01185665633c543e00006d0d0000040895011800710d0000026d0d00750d0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e790d0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004001d0501185665633c543e0000810d0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d626572048054686520604572726f726020656e756d206f6620746869732070616c6c65742e850d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d06045300000400890d01185665633c543e0000890d0000024d06008d0d083c70616c6c65745f616c6c69616e6365284d656d626572526f6c6500010c1846656c6c6f7700000010416c6c79000100205265746972696e6700020000910d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000950d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016506045300000400990d01185665633c543e0000990d0000026506009d0d0c3c70616c6c65745f616c6c69616e63651870616c6c6574144572726f7208045400044900016064416c6c69616e63654e6f74596574496e697469616c697a6564000004350154686520416c6c69616e636520686173206e6f74206265656e20696e697469616c697a6564207965742c207468657265666f7265206163636f756e74732063616e6e6f74206a6f696e2069742e68416c6c69616e6365416c7265616479496e697469616c697a6564000104250154686520416c6c69616e636520686173206265656e20696e697469616c697a65642c207468657265666f72652063616e6e6f7420626520696e697469616c697a656420616761696e2e34416c72656164794d656d626572000204704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000304604163636f756e74206973206e6f742061206d656d6265722e1c4e6f74416c6c790004045c4163636f756e74206973206e6f7420616e20616c6c792e384e6f566f74696e67526967687473000504904163636f756e7420646f6573206e6f74206861766520766f74696e67207269676874732e3c416c7265616479456c657661746564000604bc4163636f756e7420697320616c726561647920616e20656c657661746564202866656c6c6f7729206d656d6265722e4c416c7265616479556e7363727570756c6f75730007049c4974656d20697320616c7265616479206c697374656420617320756e7363727570756c6f75732e3c4163636f756e744e6f6e477261746100080855014163636f756e7420686173206265656e206465656d656420756e7363727570756c6f75732062792074686520416c6c69616e636520616e64206973206e6f742077656c636f6d6520746f206a6f696e206f72206265286e6f6d696e617465642e5c4e6f744c69737465644173556e7363727570756c6f7573000904984974656d20686173206e6f74206265656e206465656d656420756e7363727570756c6f75732e60546f6f4d616e79556e7363727570756c6f75734974656d73000a040101546865206e756d626572206f6620756e7363727570756c6f7573206974656d73206578636565647320604d6178556e7363727570756c6f75734974656d73602e44546f6f4c6f6e675765627369746555726c000b04d04c656e677468206f6620776562736974652055524c206578636565647320604d61785765627369746555726c4c656e677468602e44496e73756666696369656e7446756e6473000c04c442616c616e636520697320696e73756666696369656e7420666f7220746865207265717569726564206465706f7369742e74576974686f757452657175697265644964656e746974794669656c6473000d041501546865206163636f756e742773206964656e7469747920646f6573206e6f74206861766520646973706c6179206669656c6420616e642077656273697465206669656c642e70576974686f7574476f6f644964656e746974794a756467656d656e74000e04b4546865206163636f756e742773206964656e7469747920686173206e6f20676f6f64206a756467656d656e742e4c4d697373696e6750726f706f73616c48617368000f047c5468652070726f706f73616c2068617368206973206e6f7420666f756e642e4c4d697373696e67416e6e6f756e63656d656e740010047854686520616e6e6f756e63656d656e74206973206e6f7420666f756e642e38546f6f4d616e794d656d62657273001104b04e756d626572206f66206d656d62657273206578636565647320604d61784d656d62657273436f756e74602e50546f6f4d616e79416e6e6f756e63656d656e7473001204e04e756d626572206f6620616e6e6f756e63656d656e7473206578636565647320604d6178416e6e6f756e63656d656e7473436f756e74602e284261645769746e6573730013046c496e76616c6964207769746e657373206461746120676976656e2e3c416c72656164795265746972696e67001404984163636f756e7420616c72656164792067617665207265746972656d656e74206e6f74696365605265746972656d656e744e6f746963654e6f74476976656e001504f04163636f756e7420646964206e6f7420676976652061207265746972656d656e74206e6f7469636520726571756972656420746f207265746972652e645265746972656d656e74506572696f644e6f74506173736564001604845265746972656d656e7420706572696f6420686173206e6f74207061737365642e3846656c6c6f77734d697373696e67001704d046656c6c6f7773206d7573742062652070726f766964656420746f20696e697469616c697a652074686520416c6c69616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e7465721d010140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173a50d01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000a50d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400a90d013842547265654d61703c4b2c20563e0000a90d042042547265654d617008044b011004560118000400ed0a000000ad0d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6eb10d0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573bd0d015c506f6f6c526f6c65733c543a3a4163636f756e7449643e000114737461746571060124506f6f6c53746174650000b10d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e748906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d6178b50d013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465b90d01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6d9c01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6e950601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000b50d04184f7074696f6e04045401c40108104e6f6e6500000010536f6d650400c40000010000b90d04184f7074696f6e0404540191060108104e6f6e6500000010536f6d65040091060000010000bd0d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74ac01444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72ac01444f7074696f6e3c4163636f756e7449643e00011c626f756e636572ac01444f7074696f6e3c4163636f756e7449643e0000c10d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e7465721d010140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000c50d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261c90d0134556e626f6e64506f6f6c3c543e000120776974685f657261cd0d010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000c90d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000cd0d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601c90d045300000400d10d013842547265654d61703c4b2c20563e0000d10d042042547265654d617008044b0110045601c90d000400d50d000000d50d000002d90d00d90d0000040810c90d00dd0d0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019030506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400e10d0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e3c416c72656164794d69677261746564002104150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002304f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10d0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c69656400060000e50d0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640195013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c79017d07244163636f756e74496401003c5363686564756c654164647265737301790101181c4f6e676f696e670400e90d018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00000d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000e90d0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640195013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c79017d07244163636f756e74496401003c5363686564756c6541646472657373017901002c0114747261636b9501011c547261636b49640001186f726967696e5102013452756e74696d654f726967696e00012070726f706f73616c3102011043616c6c000124656e6163746d656e7421060150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974090d016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369740d0d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67110d01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c797d07011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d190d01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000ed0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017901045300000400090801185665633c543e0000f10d0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50d086070616c6c65745f72616e6b65645f636f6c6c656374697665304d656d6265725265636f7264000004011072616e6b9501011052616e6b0000f90d0000040895010000fd0d0000040895011000010e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000050e0c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c34416c72656164794d656d626572000004704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000104604163636f756e74206973206e6f742061206d656d6265722e284e6f74506f6c6c696e67000204b854686520676976656e20706f6c6c20696e64657820697320756e6b6e6f776e206f722068617320636c6f7365642e1c4f6e676f696e670003048054686520676976656e20706f6c6c206973207374696c6c206f6e676f696e672e344e6f6e6552656d61696e696e67000404ac546865726520617265206e6f2066757274686572207265636f72647320746f2062652072656d6f7665642e28436f7272757074696f6e00050468556e6578706563746564206572726f7220696e2073746174652e2852616e6b546f6f4c6f7700060494546865206d656d62657227732072616e6b20697320746f6f206c6f7720746f20766f74652e38496e76616c69645769746e6573730007049854686520696e666f726d6174696f6e2070726f766964656420697320696e636f72726563742e304e6f5065726d697373696f6e000804f8546865206f726967696e206973206e6f742073756666696369656e746c792070726976696c6567656420746f20646f20746865206f7065726174696f6e2e2853616d654d656d626572000904e0546865206e6577206d656d62657220746f2065786368616e6765206973207468652073616d6520617320746865206f6c64206d656d62657238546f6f4d616e794d656d62657273000a04cc546865206d6178206d656d62657220636f756e7420666f72207468652072616e6b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090e0c5c70616c6c65745f61737365745f636f6e76657273696f6e14747970657320506f6f6c496e666f042c506f6f6c417373657449640110000401206c705f746f6b656e10012c506f6f6c4173736574496400000d0e0c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144572726f7204045400015c40496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e28506f6f6c45786973747300010450506f6f6c20616c7265616479206578697374732e4857726f6e6744657369726564416d6f756e74000204744465736972656420616d6f756e742063616e2774206265207a65726f2e60416d6f756e744f6e654c6573735468616e4d696e696d616c000308490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e60416d6f756e7454776f4c6573735468616e4d696e696d616c000408490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e68526573657276654c6566744c6573735468616e4d696e696d616c0005084d0152657365727665206e6565647320746f20616c776179732062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e40416d6f756e744f7574546f6f48696768000604c84465736972656420616d6f756e742063616e277420626520657175616c20746f2074686520706f6f6c20726573657276652e30506f6f6c4e6f74466f756e640007045c54686520706f6f6c20646f65736e27742065786973742e204f766572666c6f7700080454416e206f766572666c6f772068617070656e65642e8041737365744f6e654465706f7369744469644e6f744d6565744d696e696d756d0009042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e80417373657454776f4465706f7369744469644e6f744d6565744d696e696d756d000a042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e8c41737365744f6e655769746864726177616c4469644e6f744d6565744d696e696d756d000b042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e8c417373657454776f5769746864726177616c4469644e6f744d6565744d696e696d756d000c042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e704f7074696d616c416d6f756e744c6573735468616e44657369726564000d04bc4f7074696d616c2063616c63756c6174656420616d6f756e74206973206c657373207468616e20646573697265642e6c496e73756666696369656e744c69717569646974794d696e746564000e0478496e73756666696369656e74206c6971756964697479206d696e7465642e345a65726f4c6971756964697479000f0488526571756573746564206c69717569646974792063616e2774206265207a65726f2e285a65726f416d6f756e7400100454416d6f756e742063616e2774206265207a65726f2e8c50726f76696465644d696e696d756d4e6f7453756666696369656e74466f7253776170001104ec43616c63756c6174656420616d6f756e74206f7574206973206c657373207468616e2070726f7669646564206d696e696d756d20616d6f756e742e8c50726f76696465644d6178696d756d4e6f7453756666696369656e74466f7253776170001204cc50726f7669646564206d6178696d756d20616d6f756e74206973206e6f742073756666696369656e7420666f7220737761702e2c496e76616c696450617468001304d45468652070726f76696465642070617468206d75737420636f6e7369737473206f66203220617373657473206174206c656173742e344e6f6e556e6971756550617468001404c45468652070726f76696465642070617468206d75737420636f6e7369737473206f6620756e69717565206173736574732e50496e636f7272656374506f6f6c41737365744964001504ec497420776173206e6f7420706f737369626c6520746f20676574206f7220696e6372656d656e7420746865204964206f662074686520706f6f6c2e3042656c6f774d696e696d756d001604f05468652064657374696e6174696f6e206163636f756e742063616e6e6f7420657869737420776974682074686520737761707065642066756e64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e110e0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c73746173686573150e01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564190e0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e0000150e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401fc045300000400f801185665633c543e0000190e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e00001d0e0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210e085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e011000180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273250e01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000250e04184f7074696f6e04045401290e0108104e6f6e6500000010536f6d650400290e0000010000290e085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e011000080110707265761001344d6573736167654f726967696e0001106e6578741001344d6573736167654f726967696e00002d0e085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170310e019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000310e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000350e0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e390e0c3c70616c6c65745f74785f70617573651870616c6c6574144572726f720404540001102049735061757365640000044c5468652063616c6c206973207061757365642e284973556e706175736564000104545468652063616c6c20697320756e7061757365642e28556e7061757361626c65000204b45468652063616c6c2069732077686974656c697374656420616e642063616e6e6f74206265207061757365642e204e6f74466f756e64000300048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0e0c4070616c6c65745f736166655f6d6f64651870616c6c6574144572726f7204045400011c1c456e7465726564000004b054686520736166652d6d6f64652069732028616c7265616479206f72207374696c6c2920656e74657265642e18457869746564000104ac54686520736166652d6d6f64652069732028616c7265616479206f72207374696c6c29206578697465642e344e6f74436f6e666967757265640002040901546869732066756e6374696f6e616c697479206f66207468652070616c6c65742069732064697361626c65642062792074686520636f6e66696775726174696f6e2e244e6f4465706f736974000304745468657265206973206e6f2062616c616e63652072657365727665642e40416c72656164794465706f73697465640004045d01546865206163636f756e7420616c7265616479206861732061206465706f73697420726573657276656420616e642063616e207468657265666f7265206e6f7420656e746572206f7220657874656e6420616761696e2e4043616e6e6f7452656c656173655965740005049054686973206465706f7369742063616e6e6f742062652072656c6561736564207965742e3443757272656e63794572726f72000604a0416e206572726f722066726f6d2074686520756e6465726c79696e67206043757272656e6379602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410e0c4470616c6c65745f6d6967726174696f6e731870616c6c6574144572726f720404540001041c4f6e676f696e67000004e8546865206f7065726174696f6e2063616e6e6f7420636f6d706c6574652073696e636520736f6d65204d424d7320617265206f6e676f696e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f506045300000400490e01185665633c543e0000490e000002f506004d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401510e045300000400550e01185665633c543e0000510e0c3470616c6c65745f62726f6b65721474797065733c4c656173655265636f72644974656d0000080114756e74696c10012454696d65736c6963650001107461736b1001185461736b49640000550e000002510e00590e0c3470616c6c65745f62726f6b6572147479706573305374617475735265636f72640000140128636f72655f636f756e7495010124436f7265496e646578000144707269766174655f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7400014073797374656d5f706f6f6c5f73697a65100140436f72654d61736b426974436f756e740001606c6173745f636f6d6d69747465645f74696d65736c69636510012454696d65736c6963650001386c6173745f74696d65736c69636510012454696d65736c69636500005d0e0c3470616c6c65745f62726f6b65721474797065733853616c65496e666f5265636f7264081c42616c616e636501182c426c6f636b4e756d62657201100028012873616c655f737461727410012c426c6f636b4e756d6265720001346c656164696e5f6c656e67746810012c426c6f636b4e756d626572000124656e645f707269636518011c42616c616e6365000130726567696f6e5f626567696e10012454696d65736c696365000128726567696f6e5f656e6410012454696d65736c696365000140696465616c5f636f7265735f736f6c6495010124436f7265496e646578000134636f7265735f6f66666572656495010124436f7265496e64657800012866697273745f636f726595010124436f7265496e64657800013473656c6c6f75745f7072696365b103013c4f7074696f6e3c42616c616e63653e000128636f7265735f736f6c6495010124436f7265496e6465780000610e0c3470616c6c65745f62726f6b657214747970657348506f74656e7469616c52656e6577616c49640000080110636f726595010124436f7265496e6465780001107768656e10012454696d65736c6963650000650e0c3470616c6c65745f62726f6b657214747970657358506f74656e7469616c52656e6577616c5265636f7264041c42616c616e6365011800080114707269636518011c42616c616e6365000128636f6d706c6574696f6e690e0140436f6d706c6574696f6e5374617475730000690e0c3470616c6c65745f62726f6b657214747970657340436f6d706c6574696f6e5374617475730001081c5061727469616c0400fd060120436f72654d61736b00000020436f6d706c6574650400f50601205363686564756c65000100006d0e0c3470616c6c65745f62726f6b657214747970657330526567696f6e5265636f726408244163636f756e74496401001c42616c616e63650118000c010c656e6410012454696d65736c6963650001146f776e6572ac01444f7074696f6e3c4163636f756e7449643e00011070616964b103013c4f7074696f6e3c42616c616e63653e0000710e0000040810950100750e0c3470616c6c65745f62726f6b657214747970657348436f6e747269627574696f6e5265636f726404244163636f756e7449640100000801186c656e67746810012454696d65736c69636500011470617965650001244163636f756e7449640000790e0c3470616c6c65745f62726f6b657214747970657330506f6f6c496f5265636f7264000008011c707269766174657d0e01585369676e6564436f72654d61736b426974436f756e7400011873797374656d7d0e01585369676e6564436f72654d61736b426974436f756e7400007d0e0000050b00810e0c3470616c6c65745f62726f6b657214747970657358496e737461506f6f6c486973746f72795265636f7264041c42616c616e63650118000c0154707269766174655f636f6e747269627574696f6e73100140436f72654d61736b426974436f756e7400015073797374656d5f636f6e747269627574696f6e73100140436f72654d61736b426974436f756e740001306d617962655f7061796f7574b103013c4f7074696f6e3c42616c616e63653e0000850e0c3470616c6c65745f62726f6b65721870616c6c6574144572726f7204045400017434556e6b6e6f776e526567696f6e0000049c54686520676976656e20726567696f6e206964656e74697479206973206e6f74206b6e6f776e2e204e6f744f776e6572000104a8546865206f776e6572206f662074686520726567696f6e206973206e6f7420746865206f726967696e2e305069766f74546f6f4c6174650002040d01546865207069766f7420706f696e74206f662074686520706172746974696f6e206174206f722061667465722074686520656e64206f662074686520726567696f6e2e345069766f74546f6f4561726c790003040101546865207069766f7420706f696e74206f662074686520706172746974696f6e2061742074686520626567696e6e696e67206f662074686520726567696f6e2e344578746572696f725069766f740004045d01546865207069766f74206d61736b20666f722074686520696e7465726c6163696e67206973206e6f7420636f6e7461696e65642077697468696e2074686520726567696f6e277320696e7465726c616365206d61736b2e24566f69645069766f740005042501546865207069766f74206d61736b20666f722074686520696e7465726c6163696e6720697320766f69642028616e64207468657265666f726520756e7363686564756c61626c65292e34436f6d706c6574655069766f740006044d01546865207069766f74206d61736b20666f722074686520696e7465726c6163696e6720697320636f6d706c6574652028616e64207468657265666f7265206e6f7420612073747269637420737562736574292e3c436f7272757074576f726b706c616e000704450154686520776f726b706c616e206f66207468652070616c6c6574277320737461746520697320696e76616c69642e205468697320696e64696361746573206120737461746520636f7272757074696f6e2e1c4e6f53616c6573000804945468657265206973206e6f2073616c652068617070656e696e672063757272656e746c792e284f76657270726963656400090470546865207072696365206c696d69742069732065786365656465642e2c556e617661696c61626c65000a0474546865726520617265206e6f20636f72657320617661696c61626c652e1c536f6c644f7574000b04805468652073616c65206c696d697420686173206265656e20726561636865642e2457726f6e6754696d65000c085d015468652072656e6577616c206f7065726174696f6e206973206e6f742076616c6964206174207468652063757272656e742074696d6520286974206d6179206265636f6d652076616c696420696e20746865206e6578741873616c65292e284e6f74416c6c6f776564000d0464496e76616c696420617474656d707420746f2072656e65772e34556e696e697469616c697a6564000e04a4546869732070616c6c657420686173206e6f7420796574206265656e20696e697469616c697a65642e20546f6f4561726c79000f0409015468652070757263686173652063616e6e6f742068617070656e20796574206173207468652073616c6520706572696f642069732079657420746f20626567696e2e2c4e6f7468696e67546f446f001004705468657265206973206e6f20776f726b20746f20626520646f6e652e4c546f6f4d616e795265736572766174696f6e73001104f0546865206d6178696d756d20616d6f756e74206f66207265736572766174696f6e732068617320616c7265616479206265656e20726561636865642e34546f6f4d616e794c6561736573001204d8546865206d6178696d756d20616d6f756e74206f66206c65617365732068617320616c7265616479206265656e20726561636865642e38556e6b6e6f776e526576656e75650013085d0154686520726576656e756520666f722074686520496e7374616e74616e656f757320436f72652053616c6573206f66207468697320706572696f64206973206e6f74202879657429206b6e6f776e20616e6420746875737874686973206f7065726174696f6e2063616e6e6f742070726f636565642e4c556e6b6e6f776e436f6e747269627574696f6e0014041901546865206964656e74696669656420636f6e747269627574696f6e20746f2074686520496e7374616e74616e656f757320436f726520506f6f6c20697320756e6b6e6f776e2e50496e636f6d706c65746541737369676e6d656e740015084d0154686520776f726b6c6f61642061737369676e656420666f722072656e6577616c20697320696e636f6d706c6574652e205468697320697320756e657870656374656420616e6420696e646963617465732061306c6f676963206572726f722e285374696c6c56616c6964001604d0416e206974656d2063616e6e6f742062652064726f707065642062656361757365206974206973207374696c6c2076616c69642e244e6f486973746f72790017048054686520686973746f7279206974656d20646f6573206e6f742065786973742e48556e6b6e6f776e5265736572766174696f6e001804a44e6f207265736572766174696f6e206f662074686520676976656e20696e646578206578697374732e38556e6b6e6f776e52656e6577616c0019048c5468652072656e6577616c207265636f72642063616e6e6f7420626520666f756e642e38416c726561647945787069726564001a04a4546865206c65617365206578706972792074696d652068617320616c7265616479207061737365642e34496e76616c6964436f6e666967001b04f454686520636f6e66696775726174696f6e20636f756c64206e6f74206265206170706c696564206265636175736520697420697320696e76616c69642e444e6f436c61696d54696d65736c69636573001c04d454686520726576656e7565206d75737420626520636c61696d656420666f722031206f72206d6f72652074696d65736c696365732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e890e0c5070616c6c65745f6578616d706c655f7461736b731870616c6c6574144572726f72040454000104204e6f74466f756e6400000488546865207265666572656e636564207461736b20776173206e6f7420666f756e642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0e0c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c6574144572726f7204045400011040496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e30506f6f6c4e6f74466f756e640001045c54686520706f6f6c20646f65736e27742065786973742e2c5a65726f42616c616e636500020478506f6f6c27732062616c616e63652063616e6e6f74206265207a65726f2e3c5061727469616c5472616e736665720003043901496e646963617465732061207061727469616c207472616e73666572206f662062616c616e636520746f20746865206e6577206163636f756e7420647572696e672061206d6967726174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e910e102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730199021043616c6c013502245369676e617475726501ed0414457874726101950e00040038000000950e00000424990e9d0ea10ea50ea90eb10eb50eb90ebd0e00990e10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000009d0e10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000a10e10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a50e10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a90e10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400ad0e010c4572610000ad0e102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000b10e10306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040075020120543a3a4e6f6e63650000b50e10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b90e088870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e7450436861726765417373657454785061796d656e74040454000008010c7469704501013042616c616e63654f663c543e00012061737365745f69649c01684f7074696f6e3c436861726765417373657449644f663c543e3e0000bd0e08746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465c10e01104d6f64650000c10e08746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c65640001000041011853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023409080400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d655570677261646500000d0804000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500000508040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500001508040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01390201581830426c6f636b576569676874731908f901624d186c000b00204aa9d10113ffffffffffffffff4247871900010b30f6a7a72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100004247871900010b307efa11a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040424787190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746825083000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768742d084040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e3108e904106e6f6465387375627374726174652d6e6f64650a0000000c010000000000005cdf6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000be9fb0c91a8046cf01000000f78b278be53f454c02000000ed99c5acb25eedf50300000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f010000008453b50b222939770100000068b66ba122c93fa70200000037c8bb1350a9a2a8040000008a8047a53a8277ec01000000f3ff14d5ab52705903000000899a250cbe84f2500100000049eaaf1b548a0cb00400000091d5df18b0d2cf58020000006fd7c327202e4a8d01000000ab3c0572291feb8b01000000fbc577b9d747efd60100000002000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669789501082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e014108001c5574696c69747900014902017c044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e014508011042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f726974696573010049080400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401007d0220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401007d0220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000850204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100490804000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510550804000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a656400005d0804000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301007d0104001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401007901200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000750804000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e666967000075080400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100790804002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01690200103445706f63684475726174696f6e3020c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d653020b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010640000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310104000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e018508022454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0191020004344d696e696d756d506572696f643020dc05000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000328417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000041c496e6469636573011c496e646963657304204163636f756e7473000104021089080400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0195020188041c4465706f736974184000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e018d08052042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009108040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a10804000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200ad080400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200d9080400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01a102018c10484578697374656e7469616c4465706f736974184000407a10f35a0000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100100000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01ed0806485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201001d0140000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f10804000000019404604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000738417373657454785061796d656e7400000198000008604173736574436f6e76657273696f6e54785061796d656e74000001a000000968456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b40400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000f50804000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e20536e617073686f740000fd080400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e40536e617073686f744d6574616461746100007d030400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e646963657301000d090400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510190904001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000b00400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01a90201a438544265747465725369676e65645468726573686f6c64c41000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974793020feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e7310100a0000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687428400bd8e2a18c2e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100300000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e656452657761726442617365184000407a10f35a00000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f7369744279746518400010a5d4e8000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e284d617857696e6e6572731010e803000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687428400bd8e2a18c2e011366666666666666a600544d696e65724d6178566f746573506572566f746572101010000000003c4d696e65724d617857696e6e6572731010e803000000011d090a1c5374616b696e67011c5374616b696e67ac3856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100650104000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100c410000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c6564676572000104020021090400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e1450617965650001040500c004000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500c80800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500290904004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b657273000104050084040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002d09040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b6572730101080505350941010c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f76657276696577000108050535093909040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c69707065640101080505350941010c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c0505053d094109040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d65645265776172647301010805053509c901040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f72507265667301010805053509c80800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510450914000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100d004000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000990304000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e0100c410000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105509040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100090804001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050535095d09040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505350918040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050061090400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040551096509800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4844697361626c656456616c696461746f72730100c90104001c750120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e2074686520616374697665206572612e20546865206f6666656e64657273206172652064697361626c656420666f72206169012077686f6c65206572612e20466f72207468697320726561736f6e207468657920617265206b6570742068657265202d206f6e6c79207374616b696e672070616c6c6574206b6e6f77732061626f757420657261732e20546865550120696d706c656d656e746f72206f66205b6044697361626c696e675374726174656779605d20646566696e657320696620612076616c696461746f722073686f756c642062652064697361626c65642077686963686d0120696d706c696369746c79206d65616e7320746861742074686520696d706c656d656e746f7220616c736f20636f6e74726f6c7320746865206d6178206e756d626572206f662064697361626c65642076616c696461746f72732e006d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c7978206f6666656e646564207573696e672062696e617279207365617263682e384368696c6c5468726573686f6c640000990304000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01910301bc1830486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e1010a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e1010a8000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000100002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e0169090b1c53657373696f6e011c53657373696f6e1c2856616c696461746f7273010065010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b65797301006d090400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100c9010400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b6579730001040500c9030400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405750900040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01c50301d400017d090c2444656d6f6372616379012444656d6f6372616379303c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301008109040004050120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c2e244465706f7369744f6600010405108d0904000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510950904000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500a109d8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e544c6173745461626c656457617345787465726e616c0100200400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000b909040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001040634bd0904000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040634200400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e284d657461646174614f6600010402e834040018ec2047656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720616e792070726f706f73616c206f72207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01dd0301d8303c456e6163746d656e74506572696f641010002f0d0014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f641010004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f641010004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f7765642004010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e2c4d61784465706f73697473101064000000041d0120546865206d6178696d756d206e756d626572206f66206465706f736974732061207075626c69632070726f706f73616c206d6179206861766520617420616e792074696d652e384d6178426c61636b6c697374656410106400000004d820546865206d6178696d756d206e756d626572206f66206974656d732077686963682063616e20626520626c61636b6c69737465642e01c1090d1c436f756e63696c011c436f756e63696c182450726f706f73616c730100c509040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406343502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040634c909040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d62657273010065010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e01e90301ec04444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01cd090e48546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d6974746565182450726f706f73616c730100d109040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406343502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040634c909040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d62657273010065010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e01ed0301f004444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01d5090f24456c656374696f6e730124456c656374696f6e73141c4d656d626572730100d90904000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100d90904001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100f80400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e670101040500e109840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01f10301f4282050616c6c657449647d0420706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e6442617365184000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f7218400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e344d617843616e6469646174657310104000000018e420546865206d6178696d756d206e756d626572206f662063616e6469646174657320696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e003101205768656e2074686973206c696d69742069732072656163686564206e6f206d6f72652063616e646964617465732061726520616363657074656420696e2074686520656c656374696f6e2e244d6178566f7465727310100002000018f820546865206d6178696d756d206e756d626572206f6620766f7465727320746f20616c6c6f7720696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e00d8205768656e20746865206c696d6974206973207265616368656420746865206e657720766f74657273206172652069676e6f7265642e404d6178566f746573506572566f7465721010100000001090204d6178696d756d206e756d62657273206f6620766f7465732070657220766f7465722e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e01e509104c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100e909040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01f9030101010001ed09111c4772616e647061011c4772616e6470611c1453746174650100f10904000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000f509040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c6564000079010400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100f90904000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01fd030105010c384d6178417574686f726974696573101064000000045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310104000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020c00f00000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01fd091220547265617375727901205472656173757279183450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510010a0400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100050a040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510090a040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e012904011501142c5370656e64506572696f64101080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e91071020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964110a2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010002f0d000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e01150a132441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e617469766500010402101d0104000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e642960012d040119010001190a1424436f6e7472616374730124436f6e7472616374731c305072697374696e65436f646500010406341d0a040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e28436f6465496e666f4f660001040634210a040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e144e6f6e6365010030200000000000000000581d0120546869732069732061202a2a6d6f6e6f746f6e69632a2a20636f756e74657220696e6372656d656e746564206f6e20636f6e747261637420696e7374616e74696174696f6e2e0005012054686973206973207573656420696e206f7264657220746f2067656e657261746520756e6971756520747269652069647320666f7220636f6e7472616374732e2901205468652074726965206964206f662061206e657720636f6e74726163742069732063616c63756c617465642066726f6d2068617368286163636f756e745f69642c206e6f6e6365292e350120546865206e6f6e63652069732072657175697265642062656361757365206f74686572776973652074686520666f6c6c6f77696e672073657175656e636520776f756c64206c65616420746f84206120706f737369626c6520636f6c6c6973696f6e206f662073746f726167653a006820312e204372656174652061206e657720636f6e74726163742e6c20322e205465726d696e6174652074686520636f6e74726163742efc20332e20496d6d6564696174656c792072656372656174652074686520636f6e74726163742077697468207468652073616d65206163636f756e745f69642e00450120546869732069732062616420626563617573652074686520636f6e74656e7473206f6620612074726965206172652064656c65746564206c617a696c7920616e64207468657265206d6967687420626559012073746f72616765206f6620746865206f6c6420696e7374616e74696174696f6e207374696c6c20696e206974207768656e20746865206e657720636f6e747261637420697320637265617465642e20506c656173655901206e6f746520746861742077652063616e2774207265706c6163652074686520636f756e7465722062792074686520626c6f636b206e756d6265722062656361757365207468652073657175656e63652061626f766551012063616e2068617070656e20696e207468652073616d6520626c6f636b2e20576520616c736f2063616e2774206b65657020746865206163636f756e7420636f756e74657220696e206d656d6f7279206f6e6c79490120626563617573652073746f7261676520697320746865206f6e6c792077617920746f20636f6d6d756e6963617465206163726f737320646966666572656e742065787472696e7369637320696e20746865302073616d6520626c6f636b2e001c2023204e6f7465003d0120446f206e6f742075736520697420746f2064657465726d696e6520746865206e756d626572206f6620636f6e7472616374732e20497420776f6e27742062652064656372656d656e74656420696664206120636f6e74726163742069732064657374726f7965642e38436f6e7472616374496e666f4f660001040500250a04000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650001040510c501040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e5044656c6574696f6e5175657565436f756e7465720100390a200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e4c4d6967726174696f6e496e50726f677265737300003d0a04000861012041206d6967726174696f6e2063616e207370616e206163726f7373206d756c7469706c6520626c6f636b732e20546869732073746f7261676520646566696e6573206120637572736f7220746f20747261636b207468654d012070726f6772657373206f6620746865206d6967726174696f6e2c20656e61626c696e6720757320746f20726573756d652066726f6d20746865206c61737420636f6d706c6574656420706f736974696f6e2e01310401210134205363686564756c65410a600400000010000000200000000040000000000008bd040000046820436f7374207363686564756c6520616e64206c696d6974732e384465706f7369745065724279746518400060defb7405000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e4c44656661756c744465706f7369744c696d697418400000c0afbc4f865700000000000000000445012046616c6c6261636b2076616c756520746f206c696d6974207468652073746f72616765206465706f7369742069662069742773206e6f74206265696e6720736574206279207468652063616c6c65722e384465706f7369745065724974656d184000f0ab75a40d000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e70436f6465486173684c6f636b75704465706f73697450657263656e74c41000a3e111104501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e610120496e7374616e74696174696e67206120636f6e74726163742c206f722063616c6c696e67205b60636861696e5f657874656e73696f6e3a3a4578743a3a6c6f636b5f64656c65676174655f646570656e64656e6379605d49012070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e7420616275736520746865736520616374696f6e7320617265c42070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e284d6178436f64654c656e101000ec010014c020546865206d6178696d756d206c656e677468206f66206120636f6e747261637420636f646520696e2062797465732e005901205468652076616c75652073686f756c642062652063686f73656e206361726566756c6c792074616b696e6720696e746f20746865206163636f756e7420746865206f766572616c6c206d656d6f7279206c696d6974f020796f75722072756e74696d65206861732c2061732077656c6c20617320746865205b6d6178696d756d20616c6c6f7765642063616c6c737461636b5d012064657074685d28236173736f636961746564747970652e43616c6c537461636b292e204c6f6f6b20696e746f207468652060696e746567726974795f7465737428296020666f7220736f6d6520696e7369676874732e404d617853746f726167654b65794c656e10108000000004e020546865206d6178696d756d20616c6c6f7761626c65206c656e67746820696e20627974657320666f722073746f72616765206b6579732e5c4d61785472616e7369656e7453746f7261676553697a6510100000100008d020546865206d6178696d756d2073697a65206f6620746865207472616e7369656e742073746f7261676520696e2062797465732e3101205468697320696e636c75646573206b6579732c2076616c7565732c20616e642070726576696f757320656e7472696573207573656420666f722073746f7261676520726f6c6c6261636b2e5c4d617844656c6567617465446570656e64656e6369657310102000000008290120546865206d6178696d756d206e756d626572206f662064656c65676174655f646570656e64656e636965732074686174206120636f6e74726163742063616e206c6f636b2077697468d0205b60636861696e5f657874656e73696f6e3a3a4578743a3a6c6f636b5f64656c65676174655f646570656e64656e6379605d2e5c556e73616665556e737461626c65496e74657266616365200400241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e444d617844656275674275666665724c656e10100000200004c420546865206d6178696d756d206c656e677468206f66207468652064656275672062756666657220696e2062797465732e2c456e7669726f6e6d656e744d0a00102501205479706520746861742062756e646c657320746f67657468657220616c6c207468652072756e74696d6520636f6e666967757261626c6520696e746572666163652074797065732e0035012054686973206973206e6f742061207265616c20636f6e6669672e205765206a757374206d656e74696f6e207468652074797065206865726520617320636f6e7374616e7420736f2074686174f0206974732074797065206170706561727320696e20746865206d657461646174612e204f6e6c792076616c69642076616c756520697320602829602e2841706956657273696f6e690a0804000c0901205468652076657273696f6e206f662074686520486f7374466e204150497320746861742061726520617661696c61626c6520696e207468652072756e74696d652e0068204f6e6c792076616c69642076616c756520697320602829602e016d0a15105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e013d04012d010001710a1620496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b6579730100750a040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730001080505790120040004350120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e646578602e38417574686f726564426c6f636b730101080505350910100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0141040131010440556e7369676e65645072696f726974793020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e017d0a1748417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100810a0400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100810a04000480204b657973206f6620746865206e65787420617574686f72697479207365742e0000000018204f6666656e63657301204f6666656e636573081c5265706f7274730001040534890a040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805058d0a1d050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001510100001928486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e730001040510910a0400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e676500007901040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000001a6052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100950a04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000001b204964656e7469747901204964656e746974791c284964656e746974794f660001040500990a040010690120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e204669727374206974656d20697320746865e020726567697374726174696f6e2c207365636f6e6420697320746865206163636f756e742773207072696d61727920757365726e616d652e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f660001040200e1040400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500b10a44000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100b90a0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e4c557365726e616d65417574686f7269746965730001040500c90a040004f42041206d6170206f6620746865206163636f756e74732077686f2061726520617574686f72697a656420746f206772616e7420757365726e616d65732e444163636f756e744f66557365726e616d65000104025d01000400146d012052657665727365206c6f6f6b75702066726f6d2060757365726e616d656020746f2074686520604163636f756e7449646020746861742068617320726567697374657265642069742e205468652076616c75652073686f756c6465012062652061206b657920696e2074686520604964656e746974794f6660206d61702c20627574206974206d6179206e6f742069662074686520757365722068617320636c6561726564207468656972206964656e746974792e006901204d756c7469706c6520757365726e616d6573206d6179206d617020746f207468652073616d6520604163636f756e744964602c2062757420604964656e746974794f66602077696c6c206f6e6c79206d617020746f206f6e6548207072696d61727920757365726e616d652e4050656e64696e67557365726e616d6573000104025d0151090400186d0120557365726e616d6573207468617420616e20617574686f7269747920686173206772616e7465642c20627574207468617420746865206163636f756e7420636f6e74726f6c6c657220686173206e6f7420636f6e6669726d65647101207468617420746865792077616e742069742e2055736564207072696d6172696c7920696e2063617365732077686572652074686520604163636f756e744964602063616e6e6f742070726f766964652061207369676e61747572655d012062656361757365207468657920617265206120707572652070726f78792c206d756c74697369672c206574632e20496e206f7264657220746f20636f6e6669726d2069742c20746865792073686f756c642063616c6c6c205b6043616c6c3a3a6163636570745f757365726e616d65605d2e001d01204669727374207475706c65206974656d20697320746865206163636f756e7420616e64207365636f6e642069732074686520616363657074616e636520646561646c696e652e014d04015901203042617369634465706f73697418400050702f696a0000000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e2c427974654465706f73697418400060defb740500000000000000000000041d012054686520616d6f756e742068656c64206f6e206465706f7369742070657220656e636f646564206279746520666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f73697418400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e344d617852656769737472617273101014000000084d01204d6178696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e6450656e64696e67557365726e616d6545787069726174696f6e10108013030004150120546865206e756d626572206f6620626c6f636b732077697468696e207768696368206120757365726e616d65206772616e74206d7573742062652061636365707465642e3c4d61785375666669784c656e677468101007000000048020546865206d6178696d756d206c656e677468206f662061207375666669782e444d6178557365726e616d654c656e67746810102000000004610120546865206d6178696d756d206c656e677468206f66206120757365726e616d652c20696e636c7564696e67206974732073756666697820616e6420616e792073797374656d2d61646465642064656c696d69746572732e01d10a1c1c536f6369657479011c536f63696574795028506172616d657465727300006901040004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e0c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1c466f756e6465720000000400044820546865206669727374206d656d6265722e1048656164000000040004410120546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f7665642072616e6b2030206d656d6265727320696e2074686520736f63696574792e1452756c6573000034040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e1c4d656d626572730001040500d50a0400042101205468652063757272656e74206d656d6265727320616e642074686569722072616e6b2e20446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e1c5061796f7574730101040500e10a44000000000000000000000000000000000004dc20496e666f726d6174696f6e20726567617264696e672072616e6b2d30207061796f7574732c207061737420616e64206675747572652e2c4d656d626572436f756e74010010100000000004490120546865206e756d626572206f66206974656d7320696e20604d656d62657273602063757272656e746c792e2028446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e29344d656d6265724279496e6465780001040510000400085d01205468652063757272656e74206974656d7320696e20604d656d6265727360206b6579656420627920746865697220756e6971756520696e6465782e204b657973206172652064656e73656c7920706f70756c61746564cc2060302e2e4d656d626572436f756e74602028646f6573206e6f7420696e636c75646520604d656d626572436f756e7460292e4053757370656e6465644d656d626572730001040500d50a04000401012054686520736574206f662073757370656e646564206d656d626572732c2077697468207468656972206f6c64206d656d62657273686970207265636f72642e28526f756e64436f756e74010010100000000004a020546865206e756d626572206f6620726f756e64732077686963682068617665207061737365642e10426964730100f10a040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e2843616e646964617465730001040200010b0400001c536b657074696300000004000454205468652063757272656e7420736b65707469632e14566f7465730001080505090b0d0b040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e3c566f7465436c656172437572736f720001040500110b040004f420436c6561722d637572736f7220666f7220566f74652c206d61702066726f6d2043616e646964617465202d3e20284d617962652920437572736f722e204e657874486561640000150b04000c75012041742074686520656e64206f662074686520636c61696d20706572696f642c207468697320636f6e7461696e7320746865206d6f737420726563656e746c7920617070726f766564206d656d626572732028616c6f6e67207769746865012074686569722062696420616e6420726f756e64204944292077686f2069732066726f6d20746865206d6f737420726563656e7420726f756e64207769746820746865206c6f77657374206269642e20546865792077696c6c5c206265636f6d6520746865206e6577206048656164602e4c4368616c6c656e6765526f756e64436f756e74010010100000000004590120546865206e756d626572206f66206368616c6c656e676520726f756e64732074686572652068617665206265656e2e205573656420746f206964656e74696679207374616c6520446566656e646572566f7465732e24446566656e64696e670000190b04000459012054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642c20616c6f6e67207769746820612072756e6e696e672074616c6c79206f6620766f7465732e34446566656e646572566f746573000108050535090d0b040004c820566f74657320666f722074686520646566656e6465722c206b65796564206279206368616c6c656e676520726f756e642e01f504016101242050616c6c65744964110a2070792f736f63696504682054686520736f6369657469657327732070616c6c6574206964304772616365537472696b657310100a00000004090120546865206d6178696d756d206e756d626572206f6620737472696b6573206265666f72652061206d656d62657220676574732066756e647320736c61736865642e2c506572696f645370656e6418400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e30566f74696e67506572696f64101000770100083d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732073686f756c6420626520766f746564206f6e2e20546f67657468657220776974684d012060436c61696d506572696f64602c20746869732073756d7320746f20746865206e756d626572206f6620626c6f636b73206265747765656e2063616e64696461746520696e74616b6520706572696f64732e2c436c61696d506572696f64101000770100084d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732063616e20636c61696d207468656972206d656d6265727368697020616e642062652074686530206e616d656420686561642e3c4d61784c6f636b4475726174696f6e1010009cda0104a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e3c4368616c6c656e6765506572696f6410108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e284d61785061796f75747310100a000000040d0120546865206d6178696d756d206e756d626572206f66207061796f7574732061206d656d626572206d617920686176652077616974696e6720756e636c61696d65642e1c4d61784269647310100a000000049020546865206d6178696d756d206e756d626572206f662062696473206174206f6e63652e011d0b1d205265636f7665727901205265636f766572790c2c5265636f76657261626c650001040500210b04000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f7665726965730001080505090b290b0400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01f904016d011044436f6e6669674465706f73697442617365184000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f72184000203d88792d00000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e3c5265636f766572794465706f736974184000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e012d0b1e1c56657374696e67011c56657374696e67081c56657374696e670001040200310b040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100390b04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01fd0401710108444d696e5665737465645472616e7366657218400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c00000000013d0b1f245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040000184167656e64610101040510410b0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c52657472696573000104027901510b040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b757000010405047901040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01050501750108344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01550b201c476c7574746f6e011c476c7574746f6e141c436f6d7075746501008501200000000000000000102101205468652070726f706f7274696f6e206f66207468652072656d61696e696e6720607265665f74696d656020746f20636f6e73756d6520647572696e6720606f6e5f69646c65602e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e1c53746f7261676501008501200000000000000000102901205468652070726f706f7274696f6e206f66207468652072656d61696e696e67206070726f6f665f73697a656020746f20636f6e73756d6520647572696e6720606f6e5f69646c65602e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e184c656e6774680100850120000000000000000010fc205468652070726f706f7274696f6e206f66207468652060626c6f636b206c656e6774686020746f20636f6e73756d65206f6e206561636820626c6f636b2e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e2454726173684461746100010405101505040020a42053746f72616765206d6170207573656420666f722077617374696e672070726f6f662073697a652e00690120497420636f6e7461696e73206e6f206d65616e696e6766756c2064617461202d2068656e636520746865206e616d6520225472617368222e20546865206d6178696d616c206e756d626572206f6620656e747269657320697375012073657420746f2036356b2c207768696368206973206a7573742062656c6f7720746865206e657874206a756d702061742031365e342e205468697320697320696d706f7274616e7420746f20726564756365207468652070726f6f6669012073697a652062656e63686d61726b696e67206f766572657374696d6174652e2054686520617373756d7074696f6e2068657265206973207468617420776520776f6e27742068617665206d6f7265207468616e2036356b202a710120314b6942203d2036354d6942206f662070726f6f662073697a652077617374696e6720696e2070726163746963652e20486f77657665722c2074686973206c696d6974206973206e6f7420656e666f726365642c20736f2074686569012070616c6c657420776f756c6420616c736f20776f726b206f7574206f662074686520626f782077697468206d6f726520656e74726965732c20627574206974732062656e63686d61726b65642070726f6f6620776569676874bc20776f756c6420706f737369626c7920626520756e646572657374696d6174656420696e207468617420636173652e38547261736844617461436f756e74010010100000000004b8205468652063757272656e74206e756d626572206f6620656e747269657320696e2060547261736844617461602e010d050181010001590b2120507265696d6167650120507265696d6167650c24537461747573466f7200010406345d0b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f720001040634650b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f7200010406910a750b0400000119050189010001790b221450726f7879011450726f7879081c50726f7869657301010405007d0b4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e747301010405008d0b44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e012105018d01184050726f78794465706f73697442617365184000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000f09e544c390000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e019d0b23204d756c746973696701204d756c746973696704244d756c7469736967730001080502a10ba50b040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0129050199010c2c4465706f73697442617365184000f01c0adbed0100000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a90b2420426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510ad0b0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510b50b0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100050a040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01310501a1012444426f756e74794465706f73697442617365184000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101000270600046c20426f756e7479206475726174696f6e20696e20626c6f636b732e6043757261746f724465706f7369744d756c7469706c69657291071020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d6178b10344010000c16ff28623000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696eb103440100407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d184000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501b90b2510546970730110546970730810546970730001040534bd0b04000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406343804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e01350501a501184c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756548446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656599030414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000407a10f35a0000000000000000000004f820546865206e6f6e2d7a65726f20616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e304d6178546970416d6f756e7418400000c52ebca2b1000000000000000000049420546865206d6178696d756d20616d6f756e7420666f7220612073696e676c65207469702e01c10b26184173736574730118417373657473141441737365740001040210c50b040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7400010802023509cd0b040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202d90bdd0b04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210e10b5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e01390501a9011c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01e90b2728506f6f6c4173736574730128506f6f6c417373657473141441737365740001040210c50b040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7400010802023509cd0b040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202d90bdd0b04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210e10b5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e013d0501ad011c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01ed0b2814426565667901144265656679142c417574686f7269746965730100f10b04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100f10b040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b01009c04000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e014105000c384d6178417574686f72697469657310106400000004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020c00f00000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01f90b290c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000002a1c4d6d724c656166011c4d6d724c65616608404265656679417574686f7269746965730100fd0bb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f7269746965730100fd0bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e000000002b1c4c6f7474657279011c4c6f747465727918304c6f7474657279496e6465780100101000000000001c4c6f74746572790000010c040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e74730101040500050c1400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e740100101000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b657473000104051000040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100090c0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e01750501b1010c2050616c6c65744964110a2070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c7310100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e444d617847656e657261746552616e646f6d10100a0000000c4901204e756d626572206f662074696d652077652073686f756c642074727920746f2067656e657261746520612072616e646f6d206e756d626572207468617420686173206e6f206d6f64756c6f20626961732e5d0120546865206c61726765722074686973206e756d6265722c20746865206d6f726520706f74656e7469616c20636f6d7075746174696f6e206973207573656420666f72207069636b696e67207468652077696e6e65722c01012062757420616c736f20746865206d6f7265206c696b656c792074686174207468652063686f73656e2077696e6e657220697320646f6e6520666169726c792e01110c2c0c4e6973010c4e6973102c5175657565546f74616c730100150cc95db1040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101040210190c040004e02054686520717565756573206f6620626964732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e1c53756d6d6172790100250ca00000000000000000000000000000000000000000000000000000000000000000000000000000000004b02053756d6d61727920696e666f726d6174696f6e206f766572207468652067656e6572616c2073746174652e2052656365697074730001040210290c0400044101205468652063757272656e746c79206f75747374616e64696e672072656365697074732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e01790501b901282050616c6c65744964110a2070792f6e697320200419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e285175657565436f756e7410102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e1010e80300000cf0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e0068204d757374206265206c6172676572207468616e207a65726f2e304669666f51756575654c656e1010f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e2842617365506572696f641010002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e184d696e42696418400000c16ff2862300000000000000000018210120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d617920626520706c6163656420696e2061206269642e204e6f746520746861742074686973610120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d617920626520726570726573656e74656420696e206120726563656970742073696e63652062696473206d61796c2062652073706c6974207570206279207468652073797374656d2e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e284d696e52656365697074bd01200000c16ff286230008550120546865206d696e696d756d20616d6f756e74206f662066756e6473207768696368206d617920696e74656e74696f6e616c6c79206265206c6566742072656d61696e696e6720756e64657220612073696e676c652420726563656970742e30496e74616b65506572696f6410100a000000105d0120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f2064657175657565206269647320616e64206372656174652072656365697074732e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e3c4d6178496e74616b65576569676874283c0700d0ed902e1399999999999999190c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e20636f6e736f6c69646174656420696e746f20726563656970747320696e20612073696e676c6520696e74616b652e20415d01206c61726765722076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c6420746865726520626520613820676c7574206f6620626964732e30546861775468726f74746c652d0c300000d9e9ac2d78030500000004490120546865206d6178696d756d2070726f706f7274696f6e207768696368206d61792062652074686177656420616e642074686520706572696f64206f7665722077686963682069742069732072657365742e01310c2d1c556e6971756573011c556e69717565732814436c6173730001040210350c040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202390c84040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e74000108020251098404000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e144173736574000108020279013d0c040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f660001040210410c04000468204d65746164617461206f66206120636f6c6c656374696f6e2e48496e7374616e63654d657461646174614f6600010802027901450c04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500010c020202490c4d0c040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802027901510c04000470205072696365206f6620616e20617373657420696e7374616e63652e4c436f6c6c656374696f6e4d6178537570706c79000104021010040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e01810501c1012044436f6c6c656374696f6e4465706f73697418400000c16ff286230000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000407a10f35a0000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518400080c6a47e8d03000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410108000000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410104000000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01550c2e104e66747301104e6674733c28436f6c6c656374696f6e0001040210590c040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202390c84040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e74000108020251098404000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f66000108020235095d0c040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802027901650c040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f6600010402107d0c04000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802027901810c04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202890c8d0c040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802027901510c040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802027901950c04000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f66000108020279019d0c0400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f66000104021091050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802027901b9050400044c20436f6e666967206f6620616e206974656d2e018d0501d1013844436f6c6c656374696f6e4465706f73697418400000c16ff286230000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000407a10f35a0000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518400080c6a47e8d03000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e101000349e0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573a10c20000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01a90c2f504e66744672616374696f6e616c697a6174696f6e01504e66744672616374696f6e616c697a6174696f6e04284e6674546f4173736574000104027901ad0c0400041501204b6565707320747261636b206f662074686520636f72726573706f6e64696e67204e46542049442c20617373657420494420616e6420616d6f756e74206d696e7465642e01d50501ed01141c4465706f73697418400000c16ff2862300000000000000000008650120546865206465706f7369742070616964206279207468652075736572206c6f636b696e6720616e204e46542e20546865206465706f7369742069732072657475726e656420746f20746865206f726967696e616c204e4654e4206f776e6572207768656e2074686520617373657420697320756e696669656420616e6420746865204e465420697320756e6c6f636b65642e2050616c6c65744964110a206672616374696f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e384e6577417373657453796d626f6ce50b141046524143048820546865206e65776c79206372656174656420617373657427732073796d626f6c2e304e657741737365744e616d65e50b141046726163048020546865206e65776c7920637265617465642061737365742773206e616d652e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01b10c301853616c617279011853616c61727908185374617475730000b50c0400048820546865206f766572616c6c20737461747573206f66207468652073797374656d2e20436c61696d616e740001040500b90c040004682054686520737461747573206f66206120636c61696d616e742e01d90501f1010c48526567697374726174696f6e506572696f641010c800000014510120546865206e756d626572206f6620626c6f636b732077697468696e2061206379636c65207768696368206163636f756e7473206861766520746f20726567697374657220746865697220696e74656e7420746f1c20636c61696d2e00350120546865206e756d626572206f6620626c6f636b73206265747765656e2073657175656e7469616c207061796f7574206379636c6573206973207468652073756d206f66207468697320616e644020605061796f7574506572696f64602e305061796f7574506572696f641010c800000010350120546865206e756d626572206f6620626c6f636b732077697468696e2061206379636c65207768696368206163636f756e7473206861766520746f20636c61696d20746865207061796f75742e00350120546865206e756d626572206f6620626c6f636b73206265747765656e2073657175656e7469616c207061796f7574206379636c6573206973207468652073756d206f66207468697320616e64582060526567697374726174696f6e506572696f64602e184275646765741840000064a7b3b6e00d00000000000000000c702054686520746f74616c2062756467657420706572206379636c652e0001012054686973206d6179206368616e6765206f7665722074686520636f75727365206f662061206379636c6520776974686f757420616e792070726f626c656d2e01c10c3138436f726546656c6c6f77736869700138436f726546656c6c6f77736869700c18506172616d730100f901200000000000000000048820546865206f766572616c6c20737461747573206f66207468652073797374656d2e184d656d6265720001040500c50c040004682054686520737461747573206f66206120636c61696d616e742e384d656d62657245766964656e63650001040500c90c040004310120536f6d652065766964656e636520746f6765746865722077697468207468652064657369726564206f7574636f6d6520666f72207768696368206974207761732070726573656e7465642e01dd0501f501083045766964656e636553697a6510100040000004fc20546865206d6178696d756d2073697a6520696e206279746573207375626d69747465642065766964656e636520697320616c6c6f77656420746f2062652e1c4d617852616e6b1010090000000cd420526570726573656e747320746865206869676865737420706f737369626c652072616e6b20696e20746869732070616c6c65742e00490120496e6372656173696e6720746869732076616c756520697320737570706f727465642c206275742064656372656173696e67206974206d6179206c65616420746f20612062726f6b656e2073746174652e01cd0c32485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f726167651c305472616e73616374696f6e730001040210d10c040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e740101040210101000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c42797465466565000018040004582053746f72616765206665652070657220627974652e20456e747279466565000018040004742053746f726167652066656520706572207472616e73616374696f6e2e3453746f72616765506572696f640100101000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e730100d10c0400003050726f6f66436865636b65640100200400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f01f5050115020001dd0c3324566f7465724c6973740124566f7465724c6973740c244c6973744e6f6465730001040500e10c04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530e50c04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01fd0501190204344261675468726573686f6c6473e90c0919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01ed0c34485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f6365737301000d063800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100050604000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000090604000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e010106011d0204244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e01250235344368696c64426f756e7469657301344368696c64426f756e7469657314404368696c64426f756e7479436f756e7401001010000000000480204e756d626572206f6620746f74616c206368696c6420626f756e746965732e4c506172656e744368696c64426f756e74696573010104051010100000000008b0204e756d626572206f66206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e344368696c64426f756e7469657300010805057901f50c04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e5c4368696c64426f756e74794465736372697074696f6e730001040510b50b0400049820546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01190601290208644d61784163746976654368696c64426f756e7479436f756e74101005000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d184000407a10f35a000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01fd0c36245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210010d040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104059501210d0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405950110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e011d06012d0214445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73250d190104000010726f6f74010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b04e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e013d0d371852656d61726b00012506014d070001410d382c526f6f7454657374696e670001290601510700003940436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505450d490dd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500690d04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e012d0601550708204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01750d3a2457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c000104053484040000013d060159070001790d3b38416c6c69616e63654d6f74696f6e0138416c6c69616e63654d6f74696f6e182450726f706f73616c7301007d0d040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406343502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001040634c909040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d62657273010065010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e014106016d0704444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01810d3c20416c6c69616e63650120416c6c69616e63651c1052756c6500004d060400088c20546865204950465320434944206f662074686520616c6c69616e63652072756c652ed82046656c6c6f77732063616e2070726f706f73652061206e65772072756c65207769746820612073757065722d6d616a6f726974792e34416e6e6f756e63656d656e74730100850d040004b0205468652063757272656e7420495046532043494473206f6620616e7920616e6e6f756e63656d656e74732e244465706f7369744f66000104020018040004a4204d617073206d656d6265727320746f2074686569722063616e646964616379206465706f7369742e1c4d656d62657273010104058d0d910d040004a8204d617073206d656d626572207479706520746f206d656d62657273206f66206561636820747970652e3c5265746972696e674d656d626572730001040200100400086d01204120736574206f66206d656d626572732077686f20676176652061207265746972656d656e74206e6f746963652e20546865792063616e207265746972652061667465722074686520656e64206f66207265746972656d656e74a020706572696f642073746f72656420617320612066757475726520626c6f636b206e756d6265722e50556e7363727570756c6f75734163636f756e7473010091090400086501205468652063757272656e74206c697374206f66206163636f756e7473206465656d656420756e7363727570756c6f75732e205468657365206163636f756e7473206e6f6e2067726174612063616e6e6f74207375626d69742c2063616e6469646163792e50556e7363727570756c6f757357656273697465730100950d040004c8205468652063757272656e74206c697374206f66207765627369746573206465656d656420756e7363727570756c6f75732e01450601710714504d6178556e7363727570756c6f75734974656d7310106400000004190120546865206d6178696d756d206e756d626572206f662074686520756e7363727570756c6f7573206974656d7320737570706f72746564206279207468652070616c6c65742e4c4d61785765627369746555726c4c656e6774681010ff000000049420546865206d6178696d756d206c656e677468206f66206120776562736974652055524c2e2c416c6c794465706f73697418400080c6a47e8d0300000000000000000004bc20546865206465706f73697420726571756972656420666f72207375626d697474696e672063616e6469646163792e544d6178416e6e6f756e63656d656e7473436f756e74101064000000049420546865206d6178696d756d206e756d626572206f6620616e6e6f756e63656d656e74732e3c4d61784d656d62657273436f756e7410106400000004bc20546865206d6178696d756d206e756d626572206f66206d656d6265727320706572206d656d62657220726f6c652e019d0d3d3c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e0000c404000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500a10d04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c730001040510ad0d040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c730001040510c10d04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f726167650001040510c50d04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d657461646174610101040510d5010400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e73010104050085060402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e0169060175070c2050616c6c65744964110a2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101008000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01dd0d3e2c52616e6b6564506f6c6c73012c52616e6b6564506f6c6c73143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210e50d040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104059501ed0d0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405950110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e019d0601790714445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73250d190104000010726f6f74010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b04e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e01f10d3f4052616e6b6564436f6c6c656374697665014052616e6b6564436f6c6c656374697665182c4d656d626572436f756e7401010405950110100000000008690120546865206e756d626572206f66206d656d6265727320696e2074686520636f6c6c6563746976652077686f2068617665206174206c65617374207468652072616e6b206163636f7264696e6720746f2074686520696e64657830206f6620746865207665632e1c4d656d626572730001040500f50d0400049c205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e244964546f496e6465780001080505f90d1004000461012054686520696e646578206f6620656163682072616e6b732773206d656d62657220696e746f207468652067726f7570206f66206d656d626572732077686f2068617665206174206c6561737420746861742072616e6b2e24496e646578546f49640001080505fd0d000400085d0120546865206d656d6265727320696e2074686520636f6c6c65637469766520627920696e6465782e20416c6c20696e646963657320696e207468652072616e67652060302e2e4d656d626572436f756e74602077696c6c65012072657475726e2060536f6d65602c20686f77657665722061206d656d626572277320696e646578206973206e6f742067756172616e7465656420746f2072656d61696e20756e6368616e676564206f7665722074696d652e18566f74696e67000108020535098507040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e34566f74696e67436c65616e75700001040210010e04000001a1060181070001050e403c4173736574436f6e76657273696f6e013c4173736574436f6e76657273696f6e0814506f6f6c73000104028d07090e0400086901204d61702066726f6d2060506f6f6c417373657449646020746f2060506f6f6c496e666f602e20546869732065737461626c69736865732077686574686572206120706f6f6c20686173206265656e206f6666696369616c6c793d01206372656174656420726174686572207468616e2070656f706c652073656e64696e6720746f6b656e73206469726563746c7920746f206120706f6f6c2773207075626c6963206163636f756e742e3c4e657874506f6f6c4173736574496400001004000825012053746f726573207468652060506f6f6c4173736574496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e657874206c7020746f6b656e2ee42054686973206765747320696e6372656d656e746564207768656e657665722061206e6577206c7020706f6f6c20697320637265617465642e01a5060189071c144c504665651010030000000451012041202520746865206c69717569646974792070726f7669646572732077696c6c2074616b65206f6620657665727920737761702e20526570726573656e7473203130746873206f6620612070657263656e742e30506f6f6c5365747570466565184000407a10f35a0000000000000000000004882041206f6e652d74696d652066656520746f2073657475702074686520706f6f6c2e44506f6f6c53657475704665654173736574a906040004390120417373657420636c6173732066726f6d205b60436f6e6669673a3a417373657473605d207573656420746f2070617920746865205b60436f6e6669673a3a506f6f6c5365747570466565605d2e584c69717569646974795769746864726177616c46656591071000000000048420412066656520746f20776974686472617720746865206c69717569646974792e404d696e744d696e4c6971756964697479184064000000000000000000000000000000043d0120546865206d696e696d756d204c5020746f6b656e20616d6f756e74207468617420636f756c64206265206d696e7465642e20416d656c696f726174657320726f756e64696e67206572726f72732e444d617853776170506174684c656e677468101004000000048820546865206d6178206e756d626572206f6620686f707320696e206120737761702e2050616c6c65744964110a2070792f6173636f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e010d0e412c46617374556e7374616b65012c46617374556e7374616b651010486561640000110e04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e01b106019d07041c4465706f736974184000407a10f35a00000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e011d0e42304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f720101040510210e74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c5365727669636548656164000010040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e145061676573000108050579012d0e0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01b50601a10710204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010800000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874650740010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d61785365727669636557656967687465070400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01350e430c506f76010c506f76301456616c75650000100400001856616c75653200001004000038556e626f756e64656456616c75650000380400047420412076616c756520776974686f75742061204d454c20626f756e642e30426f756e64656456616c756500005d010400049420412076616c756520776974682061204d454c20626f756e64206f6620333220627974652e284c6172676556616c75650000750b0400043020344d69422076616c75652e2c4c6172676556616c7565320000750b040000144d6170314d000104011010040004902041206d617020776974682061206d6178696d756d206f6620314d20656e74726965732e184d617031364d000104011010040004942041206d617020776974682061206d6178696d756d206f662031364d20656e74726965732e2c446f75626c654d6170314d000108010179011004000030556e626f756e6465644d61700001040110c90104000034556e626f756e6465644d6170320001040110c90104000040556e626f756e6465644d617054776f780001040510c90104000001b90601a9070000441c54785061757365011c54785061757365042c50617573656443616c6c7300010402c10684040004b42054686520736574206f662063616c6c73207468617420617265206578706c696369746c79207061757365642e01bd0601ad0704284d61784e616d654c656e1010000100000c2501204d6178696d756d206c656e67746820666f722070616c6c6574206e616d6520616e642063616c6c206e616d65205343414c4520656e636f64656420737472696e67206e616d65732e00a820544f4f204c4f4e47204e414d45532057494c4c2042452054524541544544204153205041555345442e01390e4520536166654d6f64650120536166654d6f64650830456e7465726564556e74696c000010040014290120436f6e7461696e7320746865206c61737420626c6f636b206e756d62657220746861742074686520736166652d6d6f64652077696c6c2072656d61696e20656e746572656420696e2e00a4202053657420746f20604e6f6e6560207768656e20736166652d6d6f6465206973206578697465642e00510120536166652d6d6f6465206973206175746f6d61746963616c6c7920657869746564207768656e207468652063757272656e7420626c6f636b206e756d626572206578636565647320746869732076616c75652e204465706f736974730001080505510918040010350120486f6c64732074686520726573657276652074686174207761732074616b656e2066726f6d20616e206163636f756e74206174206120737065636966696320626c6f636b206e756d6265722e00750120546869732068656c707320676f7665726e616e636520746f206861766520616e206f76657276696577206f66206f75747374616e64696e67206465706f7369747320746861742073686f756c642062652072657475726e6564206f722420736c61736865642e01c50601b1071434456e7465724475726174696f6e1010c012000004210120466f7220686f77206d616e7920626c6f636b732074686520736166652d6d6f64652077696c6c20626520656e7465726564206279205b6050616c6c65743a3a656e746572605d2e38457874656e644475726174696f6e1010600900000c4d0120466f7220686f77206d616e7920626c6f636b732074686520736166652d6d6f64652063616e20626520657874656e6465642062792065616368205b6050616c6c65743a3a657874656e64605d2063616c6c2e004d01205468697320646f6573206e6f7420696d706f736520612068617264206c696d69742061732074686520736166652d6d6f64652063616e20626520657874656e646564206d756c7469706c652074696d65732e48456e7465724465706f736974416d6f756e74b1034401000020c65abc8ed70a000000000000000c05012054686520616d6f756e7420746861742077696c6c2062652072657365727665642075706f6e2063616c6c696e67205b6050616c6c65743a3a656e746572605d2e00410120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c7920656e61626c696e672074686520736166652d6d6f646520616e6420697320612073616e652064656661756c742e4c457874656e644465706f736974416d6f756e74b1034401000010632d5ec76b05000000000000000c09012054686520616d6f756e7420746861742077696c6c2062652072657365727665642075706f6e2063616c6c696e67205b6050616c6c65743a3a657874656e64605d2e00450120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c7920657874656e64696e672074686520736166652d6d6f646520616e6420697320612073616e652064656661756c742e3052656c6561736544656c61799c140100e1000020490120546865206d696e696d616c206475726174696f6e2061206465706f7369742077696c6c2072656d61696e20726573657276656420616674657220736166652d6d6f646520697320656e7465726564206f72490120657874656e6465642c20756e6c657373205b6050616c6c65743a3a666f7263655f72656c656173655f6465706f736974605d206973207375636365737366756c6c792063616c6c656420736f6f6e65722e005901204576657279206465706f736974206973207469656420746f20612073706563696669632061637469766174696f6e206f7220657874656e73696f6e2c20746875732065616368206465706f7369742063616e206265e82072656c656173656420696e646570656e64656e746c79206166746572207468652064656c617920666f7220697420686173207061737365642e00450120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c792072656c656173696e672074686520736166652d6d6f6465206465706f7369747320616e6420697320612073616e65242064656661756c742e013d0e462453746174656d656e74000001b907183453746174656d656e74436f7374184000407a10f35a000000000000000000000494204d696e2062616c616e636520666f72207072696f726974792073746174656d656e74732e2042797465436f7374184000e8764817000000000000000000000004c420436f7374206f6620646174612062797465207573656420666f72207072696f726974792063616c63756c6174696f6e2e504d696e416c6c6f77656453746174656d656e747310100400000004c8204d696e696d756d206e756d626572206f662073746174656d656e747320616c6c6f77656420706572206163636f756e742e504d6178416c6c6f77656453746174656d656e747310100a00000004c8204d6178696d756d206e756d626572206f662073746174656d656e747320616c6c6f77656420706572206163636f756e742e3c4d696e416c6c6f776564427974657310100004000004a0204d696e696d756d206461746120627974657320616c6c6f77656420706572206163636f756e742e3c4d6178416c6c6f776564427974657310100010000004a0204d6178696d756d206461746120627974657320616c6c6f77656420706572206163636f756e742e0047504d756c7469426c6f636b4d6967726174696f6e7301504d756c7469426c6f636b4d6967726174696f6e730818437572736f720000d10604000cd8205468652063757272656e746c7920616374697665206d6967726174696f6e20746f2072756e20616e642069747320637572736f722e00bc20604e6f6e656020696e646963617465732074686174206e6f206d6967726174696f6e2069732072756e6e696e672e20486973746f72696300010405d50184040010b420536574206f6620616c6c207375636365737366756c6c79206578656375746564206d6967726174696f6e732e0071012054686973206973207573656420617320626c61636b6c6973742c20746f206e6f742072652d65786563757465206d6967726174696f6e7320746861742068617665206e6f74206265656e2072656d6f7665642066726f6d20746865310120636f646562617365207965742e20476f7665726e616e63652063616e20726567756c61726c7920636c6561722074686973206f7574207669612060636c6561725f686973746f726963602e01c90601cd070830437572736f724d61784c656e10100000010010a420546865206d6178696d616c206c656e677468206f6620616e20656e636f64656420637572736f722e006501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c20657665722068617665206120637572736f722077697468204d454c09012061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e404964656e7469666965724d61784c656e10100001000010b420546865206d6178696d616c206c656e677468206f6620616e20656e636f646564206964656e7469666965722e005501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c2065766572206861766520616e206964656e7469666965722d012077697468204d454c2061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e01410e481842726f6b6572011842726f6b65723834436f6e66696775726174696f6e0000f106040004a8205468652063757272656e7420636f6e66696775726174696f6e206f6620746869732070616c6c65742e305265736572766174696f6e730100450e04000465012054686520506f6c6b61646f7420436f7265207265736572766174696f6e73202867656e6572616c6c79207461736b6564207769746820746865206d61696e74656e616e6365206f662053797374656d20436861696e73292e184c656173657301004d0e040004842054686520506f6c6b61646f7420436f7265206c6567616379206c65617365732e185374617475730000590e040004fc205468652063757272656e7420737461747573206f66206d697363656c6c616e656f75732073756273797374656d73206f6620746869732070616c6c65742e2053616c65496e666f00005d0e0400041901205468652064657461696c73206f66207468652063757272656e742073616c652c20696e636c7564696e67206974732070726f7065727469657320616e64207374617475732e44506f74656e7469616c52656e6577616c7300010405610e650e04000c7c205265636f726473206f6620706f74656e7469616c2072656e6577616c732e0055012052656e6577616c732077696c6c206f6e6c792061637475616c6c7920626520616c6c6f7765642069662060436f6d706c6574696f6e537461747573602069732061637475616c6c792060436f6d706c657465602e1c526567696f6e730001040209076d0e040004f0205468652063757272656e742028756e61737369676e6564206f722070726f766973696f6e616c6c79206173736967656e642920526567696f6e732e20576f726b706c616e00010405710ef50604000431012054686520776f726b20776520706c616e206f6e20686176696e67206561636820636f726520646f206174206120706172746963756c61722074696d6520696e20746865206675747572652e20576f726b6c6f6164010104059501f5060400045d01205468652063757272656e7420776f726b6c6f6164206f66206561636820636f72652e205468697320676574732075706461746564207769746820776f726b706c616e2061732074696d65736c6963657320706173732e54496e737461506f6f6c436f6e747269627574696f6e000104020907750e0400041101205265636f7264206f6620612073696e676c6520636f6e747269627574696f6e20746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e2c496e737461506f6f6c496f0101040210790e200000000000000000042101205265636f7264206f6620436f726574696d6520656e746572696e67206f72206c656176696e672074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e40496e737461506f6f6c486973746f72790001040210810e0400046d0120546f74616c20496e737461506f6f6c207265776172647320666f7220656163682054696d65736c69636520616e6420746865206e756d626572206f6620636f726520706172747320776869636820636f6e74726962757465642e38436f7265436f756e74496e626f7800009501040004c420526563656976656420636f726520636f756e74206368616e67652066726f6d207468652072656c617920636861696e2e30526576656e7565496e626f7800001107040004b020526563656976656420726576656e756520696e666f2066726f6d207468652072656c617920636861696e2e01ed0601d107102050616c6c65744964110a2070792f62726f6b6504d4204964656e7469666965722066726f6d2077686963682074686520696e7465726e616c20506f742069732067656e6572617465642e3c54696d65736c696365506572696f6410100200000004b0204e756d626572206f662052656c61792d636861696e20626c6f636b73207065722074696d65736c6963652e384d61784c6561736564436f7265731010050000000484204d6178696d756d206e756d626572206f66206c6567616379206c65617365732e404d61785265736572766564436f7265731010050000000480204d6178696d756d206e756d626572206f662073797374656d20636f7265732e01850e49305461736b734578616d706c6501305461736b734578616d706c650814546f74616c01007901200000000000000000045020536f6d652072756e6e696e6720746f74616c2e1c4e756d6265727300010405101004000490204e756d6265727320746f20626520616464656420696e746f2074686520746f74616c2e00000001890e4a184d69786e657401184d69786e6574104c43757272656e7453657373696f6e496e646578010010100000000008690120496e646578206f66207468652063757272656e742073657373696f6e2e2054686973206d6179206265206f66667365742072656c617469766520746f207468652073657373696f6e20696e64657820747261636b6564206279f4206567206070616c6c65745f73657373696f6e603b206d69786e65742073657373696f6e20696e64696365732061726520696e646570656e64656e742e6043757272656e7453657373696f6e5374617274426c6f636b010010100000000004b020426c6f636b20696e207768696368207468652063757272656e742073657373696f6e20737461727465642e404e657874417574686f726974794964730001040610d1030400049420417574686f72697479206c69737420666f7220746865206e6578742073657373696f6e2e204d69786e6f646573000108060679011d070400186501204d69786e6f646520736574732062792073657373696f6e20696e6465782e204f6e6c7920746865206d69786e6f6465207365747320666f72207468652070726576696f75732c2063757272656e742c20616e64206e657874b42073657373696f6e7320617265206b6570743b206f6c646572207365747320617265206469736361726465642e004d0120546865206d69786e6f64657320696e20656163682073657420617265206b6579656420627920617574686f7269747920696e64657820736f2077652063616e20656173696c7920636865636b20696620616e550120617574686f726974792068617320726567697374657265642061206d69786e6f64652e2054686520617574686f7269747920696e64696365732073686f756c64206f6e6c79206265207573656420647572696e67310120726567697374726174696f6e3b2074686520617574686f7269747920696e646963657320666f722074686520766572792066697273742073657373696f6e20617265206d6164652075702e0115070028384d6178417574686f72697469657310106400000004bc20546865206d6178696d756d206e756d626572206f6620617574686f726974696573207065722073657373696f6e2e584d617845787465726e616c4164647265737353697a6510108000000004ec20546865206d6178696d756d2073697a65206f66206f6e65206f662061206d69786e6f646527732065787465726e616c206164647265737365732e784d617845787465726e616c4164647265737365735065724d69786e6f646510101000000004e020546865206d6178696d756d206e756d626572206f662065787465726e616c2061646472657373657320666f722061206d69786e6f64652e5c4e756d436f766572546f43757272656e74426c6f636b73101003000000042501204c656e677468206f6620746865206669727374207068617365206f6620656163682073657373696f6e202860436f766572546f43757272656e7460292c20696e20626c6f636b732e684e756d5265717565737473546f43757272656e74426c6f636b73101003000000043501204c656e677468206f6620746865207365636f6e64207068617365206f6620656163682073657373696f6e2028605265717565737473546f43757272656e7460292c20696e20626c6f636b732e504e756d436f766572546f50726576426c6f636b73101003000000041901204c656e677468206f6620746865207468697264207068617365206f6620656163682073657373696f6e202860436f766572546f5072657660292c20696e20626c6f636b732e6c4e756d52656769737465725374617274536c61636b426c6f636b731010030000000c210120546865206e756d626572206f662022736c61636b2220626c6f636b7320617420746865207374617274206f6620656163682073657373696f6e2c20647572696e672077686963684501205b606d617962655f7265676973746572605d2850616c6c65743a3a6d617962655f7265676973746572292077696c6c206e6f7420617474656d707420746f20706f737420726567697374726174696f6e38207472616e73616374696f6e732e644e756d5265676973746572456e64536c61636b426c6f636b7310100300000010e420546865206e756d626572206f662022736c61636b2220626c6f636b732061742074686520656e64206f6620656163682073657373696f6e2e4901205b606d617962655f7265676973746572605d2850616c6c65743a3a6d617962655f7265676973746572292077696c6c2074727920746f207265676973746572206265666f7265207468697320736c61636b450120706572696f642c20627574206d617920706f737420726567697374726174696f6e207472616e73616374696f6e7320647572696e672074686520736c61636b20706572696f642061732061206c61737420207265736f72742e50526567697374726174696f6e5072696f726974793020feffffffffffffff04f4205072696f72697479206f6620756e7369676e6564207472616e73616374696f6e73207573656420746f207265676973746572206d69786e6f6465732e2c4d696e4d69786e6f646573101007000000086101204d696e696d756d206e756d626572206f66206d69786e6f6465732e20496620746865726520617265206665776572207468616e2074686973206d616e79206d69786e6f646573207265676973746572656420666f722061ec2073657373696f6e2c20746865206d69786e65742077696c6c206e6f742062652061637469766520647572696e67207468652073657373696f6e2e004b28506172616d65746572730128506172616d65746572730428506172616d657465727300010402e907f5070400044c2053746f72656420706172616d65746572732e012d0701e50700004c48536b69704665656c6573735061796d656e74000001fd0700004d4450616c6c65744578616d706c654d626d73014450616c6c65744578616d706c654d626d7304144d794d6170000104021030040004f020446566696e6520612073746f72616765206974656d20746f20696c6c75737472617465206d756c74692d626c6f636b206d6967726174696f6e732e000000004e604173736574436f6e76657273696f6e4d6967726174696f6e0001410701010800018d0e4f910e042448436865636b4e6f6e5a65726f53656e646572990e8440436865636b5370656356657273696f6e9d0e1038436865636b547856657273696f6ea10e1030436865636b47656e65736973a50e3438436865636b4d6f7274616c697479a90e3428436865636b4e6f6e6365b10e842c436865636b576569676874b50e8450436861726765417373657454785061796d656e74b90e8444436865636b4d6574616461746148617368bd0e7d012901'; diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-json.json b/packages/types-support/src/metadata/v14/bizinikiwi-json.json new file mode 100644 index 0000000..19c56d3 --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-json.json @@ -0,0 +1,10162 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v14": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 514 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 515 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 513 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 517 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + } + ] + }, + "calls": { + "type": 142 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 518, + "value": "0x624d186c000b00204aa9d10113ffffffffffffffff4247871900010b30f6a7a72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100004247871900010b307efa11a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000404247871900000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 521, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 523, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 524, + "value": "0x106e6f6465387375627374726174652d6e6f64650a0000000c010000000000005cdf6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000be9fb0c91a8046cf01000000f78b278be53f454c02000000ed99c5acb25eedf50300000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f010000008453b50b222939770100000068b66ba122c93fa70200000037c8bb1350a9a2a8040000008a8047a53a8277ec01000000f3ff14d5ab52705903000000899a250cbe84f2500100000049eaaf1b548a0cb00400000091d5df18b0d2cf58020000006fd7c327202e4a8d01000000ab3c0572291feb8b01000000fbc577b9d747efd6010000000200000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 101, + "value": "0x2a00", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 528 + }, + "index": 0 + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 146 + }, + "events": { + "type": 31 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 529 + }, + "index": 1 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 530 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 159 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 159 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 161 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 530 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 533 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 535 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 95 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 94 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 541 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 541 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 542 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "type": 154 + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 12, + "value": "0xc800000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": 12, + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " Max number of authorities allowed" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of nominators for each validator." + ] + } + ], + "errors": { + "type": 545 + }, + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 164 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 3 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 4 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 546 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 165 + }, + "events": { + "type": 34 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 547 + }, + "index": 5 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 548 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 552 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 555 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 566 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 168 + }, + "events": { + "type": 35 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x01000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 571 + }, + "index": 6 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 71 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 572 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 37 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 7 + }, + { + "name": "AssetTxPayment", + "storage": null, + "calls": null, + "events": { + "type": 38 + }, + "constants": [], + "errors": null, + "index": 8 + }, + { + "name": "AssetConversionTxPayment", + "storage": null, + "calls": null, + "events": { + "type": 40 + }, + "constants": [], + "errors": null, + "index": 9 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 45 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 573 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 575 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 223 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 579 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 582 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 44 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "type": 170 + }, + "events": { + "type": 41 + }, + "constants": [ + { + "name": "BetterSignedThreshold", + "type": 49, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x05000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": 12, + "value": "0xfeffffffffffff7f", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": 10, + "value": "0x0bd8e2a18c2e011366666666666666a6", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x03000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The maximum number of winners that can be elected by this `ElectionProvider`", + " implementation.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [] + }, + { + "name": "MinerMaxWeight", + "type": 10, + "value": "0x0bd8e2a18c2e011366666666666666a6", + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [] + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xe8030000", + "docs": [] + } + ], + "errors": { + "type": 583 + }, + "index": 10 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 89 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 584 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 48 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 50 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 586 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 587 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 80 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 590 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 80 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 591, + "value": 592 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 50 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 593 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 52 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 230 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 597 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 514 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 599 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 600 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 596, + "value": 601 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 114 + }, + "fallback": "0x00", + "docs": [ + " Indices of validators that have offended in the active era. The offenders are disabled for a", + " whole era. For this reason they are kept here - only staking pallet knows about eras. The", + " implementor of [`DisablingStrategy`] defines if a validator should be disabled which", + " implicitly means that the implementor also controls the max number of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator has previously", + " offended using binary search." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 230 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "type": 228 + }, + "events": { + "type": 47 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0xa8000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "errors": { + "type": 602 + }, + "index": 11 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 89 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 603 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 114 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 242 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 605, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 241 + }, + "events": { + "type": 53 + }, + "constants": [], + "errors": { + "type": 607 + }, + "index": 12 + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": 608 + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 611 + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 613 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 616 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": 622 + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 623 + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 58, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " General information concerning any proposal or referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 247 + }, + "events": { + "type": 54 + }, + "constants": [ + { + "name": "EnactmentPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "type": 8, + "value": "0x01", + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": 4, + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "MaxVotes", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + }, + { + "name": "MaxDeposits", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of deposits a public proposal may have at any time." + ] + }, + { + "name": "MaxBlacklisted", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of items which can be blacklisted." + ] + } + ], + "errors": { + "type": 624 + }, + "index": 13 + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 625 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 141 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 626 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 89 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "type": 250 + }, + "events": { + "type": 59 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "errors": { + "type": 627 + }, + "index": 14 + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 628 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 141 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 626 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 89 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "type": 251 + }, + "events": { + "type": 60 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "errors": { + "type": 629 + }, + "index": 15 + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 630 + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": 630 + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": 62 + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 632 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": { + "type": 252 + }, + "events": { + "type": 61 + }, + "constants": [ + { + "name": "PalletId", + "type": 287, + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "type": 6, + "value": "0x00f0436de36a01000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "type": 4, + "value": "0x0d000000", + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "type": 4, + "value": "0x07000000", + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "type": 4, + "value": "0x80130300", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + }, + { + "name": "MaxCandidates", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of candidates in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When this limit is reached no more candidates are accepted in the election." + ] + }, + { + "name": "MaxVoters", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of voters to allow in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When the limit is reached the new voters are ignored." + ] + }, + { + "name": "MaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum numbers of votes per voter.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`." + ] + } + ], + "errors": { + "type": 633 + }, + "index": 16 + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 634 + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": { + "type": 254 + }, + "events": { + "type": 64 + }, + "constants": [], + "errors": { + "type": 635 + }, + "index": 17 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 636 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 637 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 94 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 638 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ] + } + ] + }, + "calls": { + "type": 255 + }, + "events": { + "type": 65 + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xc00f000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 639 + }, + "index": 18 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 640 + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 641 + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 642 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + } + ] + }, + "calls": { + "type": 266 + }, + "events": { + "type": 69 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 484, + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 644, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + } + ], + "errors": { + "type": 645 + }, + "index": 19 + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 71 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 267 + }, + "events": { + "type": 70 + }, + "constants": [], + "errors": { + "type": 646 + }, + "index": 20 + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 647 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code." + ] + }, + { + "name": "CodeInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 648 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code info." + ] + }, + { + "name": "Nonce", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " This is a **monotonic** counter incremented on contract instantiation.", + "", + " This is used in order to generate unique trie ids for contracts.", + " The trie id of a new contract is calculated from hash(account_id, nonce).", + " The nonce is required because otherwise the following sequence would lead to", + " a possible collision of storage:", + "", + " 1. Create a new contract.", + " 2. Terminate the contract.", + " 3. Immediately recreate the contract with the same account_id.", + "", + " This is bad because the contents of a trie are deleted lazily and there might be", + " storage of the old instantiation still in it when the new contract is created. Please", + " note that we can't replace the counter by the block number because the sequence above", + " can happen in the same block. We also can't keep the account counter in memory only", + " because storage is the only way to communicate across different extrinsics in the", + " same block.", + "", + " # Note", + "", + " Do not use it to determine the number of contracts. It won't be decremented if", + " a contract is destroyed." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 649 + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 113 + } + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_idle`." + ] + }, + { + "name": "DeletionQueueCounter", + "modifier": "Default", + "type": { + "plain": 654 + }, + "fallback": "0x0000000000000000", + "docs": [ + " A pair of monotonic counters used to track the latest contract marked for deletion", + " and the latest deleted contract in queue." + ] + }, + { + "name": "MigrationInProgress", + "modifier": "Optional", + "type": { + "plain": 655 + }, + "fallback": "0x00", + "docs": [ + " A migration can span across multiple blocks. This storage defines a cursor to track the", + " progress of the migration, enabling us to resume from the last completed position." + ] + } + ] + }, + "calls": { + "type": 268 + }, + "events": { + "type": 72 + }, + "constants": [ + { + "name": "Schedule", + "type": 656, + "value": "0x0400000010000000200000000040000000000008bd040000", + "docs": [ + " Cost schedule and limits." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "DefaultDepositLimit", + "type": 6, + "value": "0x0000c0afbc4f86570000000000000000", + "docs": [ + " Fallback value to limit the storage deposit if it's not being set by the caller." + ] + }, + { + "name": "DepositPerItem", + "type": 6, + "value": "0x00f0ab75a40d00000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "CodeHashLockupDepositPercent", + "type": 49, + "value": "0x00a3e111", + "docs": [ + " The percentage of the storage deposit that should be held for using a code hash.", + " Instantiating a contract, or calling [`chain_extension::Ext::lock_delegate_dependency`]", + " protects the code from being removed. In order to prevent abuse these actions are", + " protected with a percentage of the code deposit." + ] + }, + { + "name": "MaxCodeLen", + "type": 4, + "value": "0x00ec0100", + "docs": [ + " The maximum length of a contract code in bytes.", + "", + " The value should be chosen carefully taking into the account the overall memory limit", + " your runtime has, as well as the [maximum allowed callstack", + " depth](#associatedtype.CallStack). Look into the `integrity_test()` for some insights." + ] + }, + { + "name": "MaxStorageKeyLen", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum allowable length in bytes for storage keys." + ] + }, + { + "name": "MaxTransientStorageSize", + "type": 4, + "value": "0x00001000", + "docs": [ + " The maximum size of the transient storage in bytes.", + " This includes keys, values, and previous entries used for storage rollback." + ] + }, + { + "name": "MaxDelegateDependencies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of delegate_dependencies that a contract can lock with", + " [`chain_extension::Ext::lock_delegate_dependency`]." + ] + }, + { + "name": "UnsafeUnstableInterface", + "type": 8, + "value": "0x00", + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ] + }, + { + "name": "MaxDebugBufferLen", + "type": 4, + "value": "0x00002000", + "docs": [ + " The maximum length of the debug buffer in bytes." + ] + }, + { + "name": "Environment", + "type": 659, + "value": "0x", + "docs": [ + " Type that bundles together all the runtime configurable interface types.", + "", + " This is not a real config. We just mention the type here as constant so that", + " its type appears in the metadata. Only valid value is `()`." + ] + }, + { + "name": "ApiVersion", + "type": 666, + "value": "0x0400", + "docs": [ + " The version of the HostFn APIs that are available in the runtime.", + "", + " Only valid value is `()`." + ] + } + ], + "errors": { + "type": 667 + }, + "index": 21 + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": { + "type": 271 + }, + "events": { + "type": 75 + }, + "constants": [], + "errors": { + "type": 668 + }, + "index": 22 + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 669 + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 94, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": { + "type": 272 + }, + "events": { + "type": 76 + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 12, + "value": "0xffffffffffffffff", + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "errors": { + "type": 671 + }, + "index": 23 + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 672 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 672 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 24 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 674 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 675, + "value": 327 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + } + ] + }, + "calls": null, + "events": { + "type": 84 + }, + "constants": [], + "errors": null, + "index": 25 + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 676 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ] + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 94 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 26 + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": 677 + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 27 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 678 + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account. First item is the", + " registration, second is the account's primary username.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 312 + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 684 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": 686 + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + }, + { + "name": "UsernameAuthorities", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 690 + } + }, + "fallback": "0x00", + "docs": [ + " A map of the accounts who are authorized to grant usernames." + ] + }, + { + "name": "AccountOfUsername", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 87, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Reverse lookup from `username` to the `AccountId` that has registered it. The value should", + " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity.", + "", + " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one", + " primary username." + ] + }, + { + "name": "PendingUsernames", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 87, + "value": 596 + } + }, + "fallback": "0x00", + "docs": [ + " Usernames that an authority has granted, but that the account controller has not confirmed", + " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature", + " because they are a pure proxy, multisig, etc. In order to confirm it, they should call", + " [`Call::accept_username`].", + "", + " First tuple item is the account and second is the acceptance deadline." + ] + } + ] + }, + "calls": { + "type": 275 + }, + "events": { + "type": 86 + }, + "constants": [ + { + "name": "BasicDeposit", + "type": 6, + "value": "0x0050702f696a00000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity." + ] + }, + { + "name": "ByteDeposit", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount held on deposit per encoded byte for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": 6, + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxRegistrars", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + }, + { + "name": "PendingUsernameExpiration", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks within which a username grant must be accepted." + ] + }, + { + "name": "MaxSuffixLength", + "type": 4, + "value": "0x07000000", + "docs": [ + " The maximum length of a suffix." + ] + }, + { + "name": "MaxUsernameLength", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of a username, including its suffix and any system-added delimiters." + ] + } + ], + "errors": { + "type": 692 + }, + "index": 28 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "plain": 90 + }, + "fallback": "0x00", + "docs": [ + " The max number of members for the society at one time." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved rank 0 members in the society." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": 13 + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 693 + } + }, + "fallback": "0x00", + "docs": [ + " The current members and their rank. Doesn't include `SuspendedMembers`." + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 696 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Information regarding rank-0 payouts, past and future." + ] + }, + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" + ] + }, + { + "name": "MemberByIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The current items in `Members` keyed by their unique index. Keys are densely populated", + " `0..MemberCount` (does not include `MemberCount`)." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 693 + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members, with their old membership record." + ] + }, + { + "name": "RoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of rounds which have passed." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": 700 + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Candidates", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 704 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Skeptic", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current skeptic." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 706, + "value": 707 + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "VoteClearCursor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 708 + } + }, + "fallback": "0x00", + "docs": [ + " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." + ] + }, + { + "name": "NextHead", + "modifier": "Optional", + "type": { + "plain": 709 + }, + "fallback": "0x00", + "docs": [ + " At the end of the claim period, this contains the most recently approved members (along with", + " their bid and round ID) who is from the most recent round with the lowest bid. They will", + " become the new `Head`." + ] + }, + { + "name": "ChallengeRoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of challenge rounds there have been. Used to identify stale DefenderVotes." + ] + }, + { + "name": "Defending", + "modifier": "Optional", + "type": { + "plain": 710 + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged, along with a running tally of votes." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 589, + "value": 707 + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender, keyed by challenge round." + ] + } + ] + }, + "calls": { + "type": 317 + }, + "events": { + "type": 88 + }, + "constants": [ + { + "name": "PalletId", + "type": 644, + "value": "0x70792f736f636965", + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "GraceStrikes", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of strikes before a member gets funds slashed." + ] + }, + { + "name": "PeriodSpend", + "type": 6, + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x00770100", + "docs": [ + " The number of blocks on which new candidates should be voted on. Together with", + " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." + ] + }, + { + "name": "ClaimPeriod", + "type": 4, + "value": "0x00770100", + "docs": [ + " The number of blocks on which new candidates can claim their membership and be the", + " named head." + ] + }, + { + "name": "MaxLockDuration", + "type": 4, + "value": "0x009cda01", + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "MaxPayouts", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of payouts a member may have waiting unclaimed." + ] + }, + { + "name": "MaxBids", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of bids at once." + ] + } + ], + "errors": { + "type": 711 + }, + "index": 29 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 712 + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 706, + "value": 714 + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "type": 318 + }, + "events": { + "type": 91 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": 6, + "value": "0x00203d88792d00000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": 4, + "value": "0x09000000", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ] + }, + { + "name": "RecoveryDeposit", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": { + "type": 715 + }, + "index": 30 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 716 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 718 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 319 + }, + "events": { + "type": 92 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 719 + }, + "index": 31 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 720 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 94, + "value": 724 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 94 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 321 + }, + "events": { + "type": 93 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 725 + }, + "index": 32 + }, + { + "name": "Glutton", + "storage": { + "prefix": "Glutton", + "items": [ + { + "name": "Compute", + "modifier": "Default", + "type": { + "plain": 97 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the remaining `ref_time` to consume during `on_idle`.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ] + }, + { + "name": "Storage", + "modifier": "Default", + "type": { + "plain": 97 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the remaining `proof_size` to consume during `on_idle`.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ] + }, + { + "name": "Length", + "modifier": "Default", + "type": { + "plain": 97 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the `block length` to consume on each block.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ] + }, + { + "name": "TrashData", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 325 + } + }, + "fallback": "0x00", + "docs": [ + " Storage map used for wasting proof size.", + "", + " It contains no meaningful data - hence the name \"Trash\". The maximal number of entries is", + " set to 65k, which is just below the next jump at 16^4. This is important to reduce the proof", + " size benchmarking overestimate. The assumption here is that we won't have more than 65k *", + " 1KiB = 65MiB of proof size wasting in practice. However, this limit is not enforced, so the", + " pallet would also work out of the box with more entries, but its benchmarked proof weight", + " would possibly be underestimated in that case." + ] + }, + { + "name": "TrashDataCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current number of entries in `TrashData`." + ] + } + ] + }, + "calls": { + "type": 323 + }, + "events": { + "type": 96 + }, + "constants": [], + "errors": { + "type": 726 + }, + "index": 33 + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 727 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 729 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 676, + "value": 733 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 326 + }, + "events": { + "type": 98 + }, + "constants": [], + "errors": { + "type": 734 + }, + "index": 34 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 735 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 739 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 328 + }, + "events": { + "type": 99 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0x0060aa7714b400000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x00c054ef286801000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 743 + }, + "index": 35 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 744, + "value": 745 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 330 + }, + "events": { + "type": 102 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0x00f01c0adbed01000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 746 + }, + "index": 36 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 747 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 749 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 641 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 332 + }, + "events": { + "type": 104 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x80700000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00270600", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 484, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 236, + "value": "0x010000c16ff28623000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 236, + "value": "0x0100407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 750 + }, + "index": 37 + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 751 + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": { + "type": 333 + }, + "events": { + "type": 105 + }, + "constants": [ + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "type": 4, + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": 230, + "value": "0x14", + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The non-zero amount held on deposit for placing a tip report." + ] + }, + { + "name": "MaxTipAmount", + "type": 6, + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The maximum amount for a single tip." + ] + } + ], + "errors": { + "type": 752 + }, + "index": 38 + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 753 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 589, + "value": 755 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 758, + "value": 759 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 760 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 334 + }, + "events": { + "type": 106 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 762 + }, + "index": 39 + }, + { + "name": "PoolAssets", + "storage": { + "prefix": "PoolAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 753 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 589, + "value": 755 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 758, + "value": 759 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 760 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 335 + }, + "events": { + "type": 107 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 763 + }, + "index": 40 + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 764 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ] + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 764 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ] + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 39 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ] + } + ] + }, + "calls": { + "type": 336 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of authorities that can be added." + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xc00f000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 766 + }, + "index": 41 + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 42 + }, + { + "name": "MmrLeaf", + "storage": { + "prefix": "MmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 767 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ] + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 767 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 43 + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "items": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [] + }, + { + "name": "Lottery", + "modifier": "Optional", + "type": { + "plain": 768 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current lottery." + ] + }, + { + "name": "Participants", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 769 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ] + }, + { + "name": "TicketsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Total number of tickets sold." + ] + }, + { + "name": "Tickets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ] + }, + { + "name": "CallIndices", + "modifier": "Default", + "type": { + "plain": 770 + }, + "fallback": "0x00", + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ] + } + ] + }, + "calls": { + "type": 349 + }, + "events": { + "type": 108 + }, + "constants": [ + { + "name": "PalletId", + "type": 644, + "value": "0x70792f6c6f74746f", + "docs": [ + " The Lottery's pallet id" + ] + }, + { + "name": "MaxCalls", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of calls available in a single lottery." + ] + }, + { + "name": "MaxGenerateRandom", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Number of time we should try to generate a random number that has no modulo bias.", + " The larger this number, the more potential computation is used for picking the winner,", + " but also the more likely that the chosen winner is done fairly." + ] + } + ], + "errors": { + "type": 772 + }, + "index": 44 + }, + { + "name": "Nis", + "storage": { + "prefix": "Nis", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": 773 + }, + "fallback": "0xb104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 774 + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "Summary", + "modifier": "Default", + "type": { + "plain": 777 + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Summary information over the general state." + ] + }, + { + "name": "Receipts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 778 + } + }, + "fallback": "0x00", + "docs": [ + " The currently outstanding receipts, indexed according to the order of creation." + ] + } + ] + }, + "calls": { + "type": 350 + }, + "events": { + "type": 110 + }, + "constants": [ + { + "name": "PalletId", + "type": 644, + "value": "0x70792f6e69732020", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "QueueCount", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue.", + "", + " Must be larger than zero." + ] + }, + { + "name": "FifoQueueLen", + "type": 4, + "value": "0xf4010000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "BasePeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinBid", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount of funds that may be placed in a bid. Note that this", + " does not actually limit the amount which may be represented in a receipt since bids may", + " be split up by the system.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "MinReceipt", + "type": 111, + "value": "0x0000c16ff2862300", + "docs": [ + " The minimum amount of funds which may intentionally be left remaining under a single", + " receipt." + ] + }, + { + "name": "IntakePeriod", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The number of blocks between consecutive attempts to dequeue bids and create receipts.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeWeight", + "type": 10, + "value": "0x0700d0ed902e139999999999999919", + "docs": [ + " The maximum amount of bids that can consolidated into receipts in a single intake. A", + " larger value here means less of the block available for transactions should there be a", + " glut of bids." + ] + }, + { + "name": "ThawThrottle", + "type": 779, + "value": "0x0000d9e9ac2d780305000000", + "docs": [ + " The maximum proportion which may be thawed and the period over which it is reset." + ] + } + ], + "errors": { + "type": 780 + }, + "index": 45 + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "items": [ + { + "name": "Class", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 781 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 782, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "ClassAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 596, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 783 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 784 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 785 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 786, + "value": 787 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 788 + } + }, + "fallback": "0x00", + "docs": [ + " Price of an asset instance." + ] + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the number of items a collection might have." + ] + } + ] + }, + "calls": { + "type": 352 + }, + "events": { + "type": 112 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "errors": { + "type": 789 + }, + "index": 46 + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "items": [ + { + "name": "Collection", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 790 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 782, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "CollectionAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 596, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "CollectionRoleOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 589, + "value": 791 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ] + }, + { + "name": "Item", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 793 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 799 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 800 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 802, + "value": 803 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 788 + } + }, + "fallback": "0x00", + "docs": [ + " A price of an item." + ] + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 805 + } + }, + "fallback": "0x00", + "docs": [ + " Item attribute approvals." + ] + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `CollectionId` that is going to be used for the next collection.", + " This gets incremented whenever a new collection is created." + ] + }, + { + "name": "PendingSwapOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 807 + } + }, + "fallback": "0x00", + "docs": [ + " Handles all the pending swaps." + ] + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 356 + } + }, + "fallback": "0x00", + "docs": [ + " Config of a collection." + ] + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 94, + "value": 366 + } + }, + "fallback": "0x00", + "docs": [ + " Config of an item." + ] + } + ] + }, + "calls": { + "type": 355 + }, + "events": { + "type": 116 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of an attribute value." + ] + }, + { + "name": "ApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum approvals an item could have." + ] + }, + { + "name": "ItemAttributesApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum attributes approvals an item could have." + ] + }, + { + "name": "MaxTips", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of tips a user could send." + ] + }, + { + "name": "MaxDeadlineDuration", + "type": 4, + "value": "0x00349e00", + "docs": [ + " The max duration in blocks for deadlines." + ] + }, + { + "name": "MaxAttributesPerCall", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of attributes a user could set per call." + ] + }, + { + "name": "Features", + "type": 808, + "value": "0x0000000000000000", + "docs": [ + " Disables some of pallet's features." + ] + } + ], + "errors": { + "type": 810 + }, + "index": 47 + }, + { + "name": "NftFractionalization", + "storage": { + "prefix": "NftFractionalization", + "items": [ + { + "name": "NftToAsset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 94, + "value": 811 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the corresponding NFT ID, asset ID and amount minted." + ] + } + ] + }, + "calls": { + "type": 373 + }, + "events": { + "type": 123 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The deposit paid by the user locking an NFT. The deposit is returned to the original NFT", + " owner when the asset is unified and the NFT is unlocked." + ] + }, + { + "name": "PalletId", + "type": 644, + "value": "0x6672616374696f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + }, + { + "name": "NewAssetSymbol", + "type": 761, + "value": "0x1046524143", + "docs": [ + " The newly created asset's symbol." + ] + }, + { + "name": "NewAssetName", + "type": 761, + "value": "0x1046726163", + "docs": [ + " The newly created asset's name." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 812 + }, + "index": 48 + }, + { + "name": "Salary", + "storage": { + "prefix": "Salary", + "items": [ + { + "name": "Status", + "modifier": "Optional", + "type": { + "plain": 813 + }, + "fallback": "0x00", + "docs": [ + " The overall status of the system." + ] + }, + { + "name": "Claimant", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 814 + } + }, + "fallback": "0x00", + "docs": [ + " The status of a claimant." + ] + } + ] + }, + "calls": { + "type": 374 + }, + "events": { + "type": 124 + }, + "constants": [ + { + "name": "RegistrationPeriod", + "type": 4, + "value": "0xc8000000", + "docs": [ + " The number of blocks within a cycle which accounts have to register their intent to", + " claim.", + "", + " The number of blocks between sequential payout cycles is the sum of this and", + " `PayoutPeriod`." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0xc8000000", + "docs": [ + " The number of blocks within a cycle which accounts have to claim the payout.", + "", + " The number of blocks between sequential payout cycles is the sum of this and", + " `RegistrationPeriod`." + ] + }, + { + "name": "Budget", + "type": 6, + "value": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The total budget per cycle.", + "", + " This may change over the course of a cycle without any problem." + ] + } + ], + "errors": { + "type": 816 + }, + "index": 49 + }, + { + "name": "CoreFellowship", + "storage": { + "prefix": "CoreFellowship", + "items": [ + { + "name": "Params", + "modifier": "Default", + "type": { + "plain": 126 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The overall status of the system." + ] + }, + { + "name": "Member", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 817 + } + }, + "fallback": "0x00", + "docs": [ + " The status of a claimant." + ] + }, + { + "name": "MemberEvidence", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 818 + } + }, + "fallback": "0x00", + "docs": [ + " Some evidence together with the desired outcome for which it was presented." + ] + } + ] + }, + "calls": { + "type": 375 + }, + "events": { + "type": 125 + }, + "constants": [ + { + "name": "EvidenceSize", + "type": 4, + "value": "0x00400000", + "docs": [ + " The maximum size in bytes submitted evidence is allowed to be." + ] + }, + { + "name": "MaxRank", + "type": 4, + "value": "0x09000000", + "docs": [ + " Represents the highest possible rank in this pallet.", + "", + " Increasing this value is supported, but decreasing it may lead to a broken state." + ] + } + ], + "errors": { + "type": 819 + }, + "index": 50 + }, + { + "name": "TransactionStorage", + "storage": { + "prefix": "TransactionStorage", + "items": [ + { + "name": "Transactions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " Collection of transaction metadata by block number." + ] + }, + { + "name": "ChunkCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Count indexed chunks for each block." + ] + }, + { + "name": "ByteFee", + "modifier": "Optional", + "type": { + "plain": 6 + }, + "fallback": "0x00", + "docs": [ + " Storage fee per byte." + ] + }, + { + "name": "EntryFee", + "modifier": "Optional", + "type": { + "plain": 6 + }, + "fallback": "0x00", + "docs": [ + " Storage fee per transaction." + ] + }, + { + "name": "StoragePeriod", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", + " for block authoring." + ] + }, + { + "name": "BlockTransactions", + "modifier": "Default", + "type": { + "plain": 820 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "ProofChecked", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Was the proof checked in this block?" + ] + } + ] + }, + "calls": { + "type": 381 + }, + "events": { + "type": 133 + }, + "constants": [], + "errors": { + "type": 823 + }, + "index": 51 + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 824 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 825 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + } + ] + }, + "calls": { + "type": 383 + }, + "events": { + "type": 134 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 826, + "value": "0x210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + } + ], + "errors": { + "type": 827 + }, + "index": 52 + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 387 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 385 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 386 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "type": 384 + }, + "events": { + "type": 135 + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "errors": { + "type": 137 + }, + "index": 53 + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 94, + "value": 829 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 749 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 390 + }, + "events": { + "type": 138 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 831 + }, + "index": 54 + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 832 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 101, + "value": 840 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 101, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 391 + }, + "events": { + "type": 139 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 841, + "value": "0x04000010726f6f74010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b", + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "errors": { + "type": 847 + }, + "index": 55 + }, + { + "name": "Remark", + "storage": null, + "calls": { + "type": 393 + }, + "events": { + "type": 467 + }, + "constants": [], + "errors": { + "type": 848 + }, + "index": 56 + }, + { + "name": "RootTesting", + "storage": null, + "calls": { + "type": 394 + }, + "events": { + "type": 468 + }, + "constants": [], + "errors": null, + "index": 57 + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 849, + "value": 850 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 858 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 395 + }, + "events": { + "type": 469 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 861 + }, + "index": 58 + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 399 + }, + "events": { + "type": 470 + }, + "constants": [], + "errors": { + "type": 862 + }, + "index": 59 + }, + { + "name": "AllianceMotion", + "storage": { + "prefix": "AllianceMotion", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 863 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 141 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 626 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 89 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "type": 400 + }, + "events": { + "type": 475 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "errors": { + "type": 864 + }, + "index": 60 + }, + { + "name": "Alliance", + "storage": { + "prefix": "Alliance", + "items": [ + { + "name": "Rule", + "modifier": "Optional", + "type": { + "plain": 403 + }, + "fallback": "0x00", + "docs": [ + " The IPFS CID of the alliance rule.", + " Fellows can propose a new rule with a super-majority." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "plain": 865 + }, + "fallback": "0x00", + "docs": [ + " The current IPFS CIDs of any announcements." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Maps members to their candidacy deposit." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 867, + "value": 868 + } + }, + "fallback": "0x00", + "docs": [ + " Maps member type to members of each type." + ] + }, + { + "name": "RetiringMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A set of members who gave a retirement notice. They can retire after the end of retirement", + " period stored as a future block number." + ] + }, + { + "name": "UnscrupulousAccounts", + "modifier": "Default", + "type": { + "plain": 612 + }, + "fallback": "0x00", + "docs": [ + " The current list of accounts deemed unscrupulous. These accounts non grata cannot submit", + " candidacy." + ] + }, + { + "name": "UnscrupulousWebsites", + "modifier": "Default", + "type": { + "plain": 869 + }, + "fallback": "0x00", + "docs": [ + " The current list of websites deemed unscrupulous." + ] + } + ] + }, + "calls": { + "type": 401 + }, + "events": { + "type": 476 + }, + "constants": [ + { + "name": "MaxUnscrupulousItems", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of the unscrupulous items supported by the pallet." + ] + }, + { + "name": "MaxWebsiteUrlLength", + "type": 4, + "value": "0xff000000", + "docs": [ + " The maximum length of a website URL." + ] + }, + { + "name": "AllyDeposit", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The deposit required for submitting candidacy." + ] + }, + { + "name": "MaxAnnouncementsCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of announcements." + ] + }, + { + "name": "MaxMembersCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of members per member role." + ] + } + ], + "errors": { + "type": 871 + }, + "index": 61 + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 49 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 872 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 875 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 880 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 881 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 117 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 417 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 410 + }, + "events": { + "type": 477 + }, + "constants": [ + { + "name": "PalletId", + "type": 644, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 887 + }, + "index": 62 + }, + { + "name": "RankedPolls", + "storage": { + "prefix": "RankedPolls", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 889 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 101, + "value": 891 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 101, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 423 + }, + "events": { + "type": 478 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 841, + "value": "0x04000010726f6f74010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b", + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "errors": { + "type": 892 + }, + "index": 63 + }, + { + "name": "RankedCollective", + "storage": { + "prefix": "RankedCollective", + "items": [ + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 101, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 893 + } + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective." + ] + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 894, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ] + }, + { + "name": "IndexToId", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 895, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 589, + "value": 481 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 896 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 424 + }, + "events": { + "type": 480 + }, + "constants": [], + "errors": { + "type": 897 + }, + "index": 64 + }, + { + "name": "AssetConversion", + "storage": { + "prefix": "AssetConversion", + "items": [ + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 483, + "value": 898 + } + }, + "fallback": "0x00", + "docs": [ + " Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially", + " created rather than people sending tokens directly to a pool's public account." + ] + }, + { + "name": "NextPoolAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `PoolAssetId` that is going to be used for the next lp token.", + " This gets incremented whenever a new lp pool is created." + ] + } + ] + }, + "calls": { + "type": 425 + }, + "events": { + "type": 482 + }, + "constants": [ + { + "name": "LPFee", + "type": 4, + "value": "0x03000000", + "docs": [ + " A % the liquidity providers will take of every swap. Represents 10ths of a percent." + ] + }, + { + "name": "PoolSetupFee", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " A one-time fee to setup the pool." + ] + }, + { + "name": "PoolSetupFeeAsset", + "type": 426, + "value": "0x00", + "docs": [ + " Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]." + ] + }, + { + "name": "LiquidityWithdrawalFee", + "type": 484, + "value": "0x00000000", + "docs": [ + " A fee to withdraw the liquidity." + ] + }, + { + "name": "MintMinLiquidity", + "type": 6, + "value": "0x64000000000000000000000000000000", + "docs": [ + " The minimum LP token amount that could be minted. Ameliorates rounding errors." + ] + }, + { + "name": "MaxSwapPathLength", + "type": 4, + "value": "0x04000000", + "docs": [ + " The max number of hops in a swap." + ] + }, + { + "name": "PalletId", + "type": 644, + "value": "0x70792f6173636f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + } + ], + "errors": { + "type": 899 + }, + "index": 65 + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 900 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ] + } + ] + }, + "calls": { + "type": 428 + }, + "events": { + "type": 487 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "errors": { + "type": 903 + }, + "index": 66 + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 904 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 94, + "value": 907 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 429 + }, + "events": { + "type": 488 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 473, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 473, + "value": "0x00", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 909 + }, + "index": 67 + }, + { + "name": "Pov", + "storage": { + "prefix": "Pov", + "items": [ + { + "name": "Value", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Value2", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedValue", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " A value without a MEL bound." + ] + }, + { + "name": "BoundedValue", + "modifier": "Optional", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " A value with a MEL bound of 32 byte." + ] + }, + { + "name": "LargeValue", + "modifier": "Optional", + "type": { + "plain": 733 + }, + "fallback": "0x00", + "docs": [ + " 4MiB value." + ] + }, + { + "name": "LargeValue2", + "modifier": "Optional", + "type": { + "plain": 733 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Map1M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A map with a maximum of 1M entries." + ] + }, + { + "name": "Map16M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A map with a maximum of 16M entries." + ] + }, + { + "name": "DoubleMap1M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256", + "Blake2_256" + ], + "key": 94, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedMap2", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedMapTwox", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 430 + }, + "events": { + "type": 490 + }, + "constants": [], + "errors": null, + "index": 68 + }, + { + "name": "TxPause", + "storage": { + "prefix": "TxPause", + "items": [ + { + "name": "PausedCalls", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 432, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " The set of calls that are explicitly paused." + ] + } + ] + }, + "calls": { + "type": 431 + }, + "events": { + "type": 491 + }, + "constants": [ + { + "name": "MaxNameLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " Maximum length for pallet name and call name SCALE encoded string names.", + "", + " TOO LONG NAMES WILL BE TREATED AS PAUSED." + ] + } + ], + "errors": { + "type": 910 + }, + "index": 69 + }, + { + "name": "SafeMode", + "storage": { + "prefix": "SafeMode", + "items": [ + { + "name": "EnteredUntil", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Contains the last block number that the safe-mode will remain entered in.", + "", + " Set to `None` when safe-mode is exited.", + "", + " Safe-mode is automatically exited when the current block number exceeds this value." + ] + }, + { + "name": "Deposits", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Holds the reserve that was taken from an account at a specific block number.", + "", + " This helps governance to have an overview of outstanding deposits that should be returned or", + " slashed." + ] + } + ] + }, + "calls": { + "type": 433 + }, + "events": { + "type": 492 + }, + "constants": [ + { + "name": "EnterDuration", + "type": 4, + "value": "0xc0120000", + "docs": [ + " For how many blocks the safe-mode will be entered by [`Pallet::enter`]." + ] + }, + { + "name": "ExtendDuration", + "type": 4, + "value": "0x60090000", + "docs": [ + " For how many blocks the safe-mode can be extended by each [`Pallet::extend`] call.", + "", + " This does not impose a hard limit as the safe-mode can be extended multiple times." + ] + }, + { + "name": "EnterDepositAmount", + "type": 236, + "value": "0x01000020c65abc8ed70a00000000000000", + "docs": [ + " The amount that will be reserved upon calling [`Pallet::enter`].", + "", + " `None` disallows permissionlessly enabling the safe-mode and is a sane default." + ] + }, + { + "name": "ExtendDepositAmount", + "type": 236, + "value": "0x01000010632d5ec76b0500000000000000", + "docs": [ + " The amount that will be reserved upon calling [`Pallet::extend`].", + "", + " `None` disallows permissionlessly extending the safe-mode and is a sane default." + ] + }, + { + "name": "ReleaseDelay", + "type": 39, + "value": "0x0100e10000", + "docs": [ + " The minimal duration a deposit will remain reserved after safe-mode is entered or", + " extended, unless [`Pallet::force_release_deposit`] is successfully called sooner.", + "", + " Every deposit is tied to a specific activation or extension, thus each deposit can be", + " released independently after the delay for it has passed.", + "", + " `None` disallows permissionlessly releasing the safe-mode deposits and is a sane", + " default." + ] + } + ], + "errors": { + "type": 911 + }, + "index": 70 + }, + { + "name": "Statement", + "storage": null, + "calls": null, + "events": { + "type": 494 + }, + "constants": [ + { + "name": "StatementCost", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Min balance for priority statements." + ] + }, + { + "name": "ByteCost", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Cost of data byte used for priority calculation." + ] + }, + { + "name": "MinAllowedStatements", + "type": 4, + "value": "0x04000000", + "docs": [ + " Minimum number of statements allowed per account." + ] + }, + { + "name": "MaxAllowedStatements", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Maximum number of statements allowed per account." + ] + }, + { + "name": "MinAllowedBytes", + "type": 4, + "value": "0x00040000", + "docs": [ + " Minimum data bytes allowed per account." + ] + }, + { + "name": "MaxAllowedBytes", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum data bytes allowed per account." + ] + } + ], + "errors": null, + "index": 71 + }, + { + "name": "MultiBlockMigrations", + "storage": { + "prefix": "MultiBlockMigrations", + "items": [ + { + "name": "Cursor", + "modifier": "Optional", + "type": { + "plain": 436 + }, + "fallback": "0x00", + "docs": [ + " The currently active migration to run and its cursor.", + "", + " `None` indicates that no migration is running." + ] + }, + { + "name": "Historic", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 117, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " Set of all successfully executed migrations.", + "", + " This is used as blacklist, to not re-execute migrations that have not been removed from the", + " codebase yet. Governance can regularly clear this out via `clear_historic`." + ] + } + ] + }, + "calls": { + "type": 434 + }, + "events": { + "type": 499 + }, + "constants": [ + { + "name": "CursorMaxLen", + "type": 4, + "value": "0x00000100", + "docs": [ + " The maximal length of an encoded cursor.", + "", + " A good default needs to selected such that no migration will ever have a cursor with MEL", + " above this limit. This is statically checked in `integrity_test`." + ] + }, + { + "name": "IdentifierMaxLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximal length of an encoded identifier.", + "", + " A good default needs to selected such that no migration will ever have an identifier", + " with MEL above this limit. This is statically checked in `integrity_test`." + ] + } + ], + "errors": { + "type": 912 + }, + "index": 72 + }, + { + "name": "Broker", + "storage": { + "prefix": "Broker", + "items": [ + { + "name": "Configuration", + "modifier": "Optional", + "type": { + "plain": 444 + }, + "fallback": "0x00", + "docs": [ + " The current configuration of this pallet." + ] + }, + { + "name": "Reservations", + "modifier": "Default", + "type": { + "plain": 913 + }, + "fallback": "0x00", + "docs": [ + " The Pezkuwi Core reservations (generally tasked with the maintenance of System Chains)." + ] + }, + { + "name": "Leases", + "modifier": "Default", + "type": { + "plain": 915 + }, + "fallback": "0x00", + "docs": [ + " The Pezkuwi Core legacy leases." + ] + }, + { + "name": "Status", + "modifier": "Optional", + "type": { + "plain": 918 + }, + "fallback": "0x00", + "docs": [ + " The current status of miscellaneous subsystems of this pallet." + ] + }, + { + "name": "SaleInfo", + "modifier": "Optional", + "type": { + "plain": 919 + }, + "fallback": "0x00", + "docs": [ + " The details of the current sale, including its properties and status." + ] + }, + { + "name": "PotentialRenewals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 920, + "value": 921 + } + }, + "fallback": "0x00", + "docs": [ + " Records of potential renewals.", + "", + " Renewals will only actually be allowed if `CompletionStatus` is actually `Complete`." + ] + }, + { + "name": "Regions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 450, + "value": 923 + } + }, + "fallback": "0x00", + "docs": [ + " The current (unassigned or provisionally assigend) Regions." + ] + }, + { + "name": "Workplan", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 924, + "value": 445 + } + }, + "fallback": "0x00", + "docs": [ + " The work we plan on having each core do at a particular time in the future." + ] + }, + { + "name": "Workload", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 101, + "value": 445 + } + }, + "fallback": "0x00", + "docs": [ + " The current workload of each core. This gets updated with workplan as timeslices pass." + ] + }, + { + "name": "InstaPoolContribution", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 450, + "value": 925 + } + }, + "fallback": "0x00", + "docs": [ + " Record of a single contribution to the Instantaneous Coretime Pool." + ] + }, + { + "name": "InstaPoolIo", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 926 + } + }, + "fallback": "0x0000000000000000", + "docs": [ + " Record of Coretime entering or leaving the Instantaneous Coretime Pool." + ] + }, + { + "name": "InstaPoolHistory", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 928 + } + }, + "fallback": "0x00", + "docs": [ + " Total InstaPool rewards for each Timeslice and the number of core parts which contributed." + ] + }, + { + "name": "CoreCountInbox", + "modifier": "Optional", + "type": { + "plain": 101 + }, + "fallback": "0x00", + "docs": [ + " Received core count change from the relay chain." + ] + }, + { + "name": "RevenueInbox", + "modifier": "Optional", + "type": { + "plain": 452 + }, + "fallback": "0x00", + "docs": [ + " Received revenue info from the relay chain." + ] + } + ] + }, + "calls": { + "type": 443 + }, + "events": { + "type": 500 + }, + "constants": [ + { + "name": "PalletId", + "type": 644, + "value": "0x70792f62726f6b65", + "docs": [ + " Identifier from which the internal Pot is generated." + ] + }, + { + "name": "TimeslicePeriod", + "type": 4, + "value": "0x02000000", + "docs": [ + " Number of Relay-chain blocks per timeslice." + ] + }, + { + "name": "MaxLeasedCores", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of legacy leases." + ] + }, + { + "name": "MaxReservedCores", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of system cores." + ] + } + ], + "errors": { + "type": 929 + }, + "index": 73 + }, + { + "name": "TasksExample", + "storage": { + "prefix": "TasksExample", + "items": [ + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 94 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Some running total." + ] + }, + { + "name": "Numbers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Numbers to be added into the total." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": { + "type": 930 + }, + "index": 74 + }, + { + "name": "Mixnet", + "storage": { + "prefix": "Mixnet", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Index of the current session. This may be offset relative to the session index tracked by", + " eg `pallet_session`; mixnet session indices are independent." + ] + }, + { + "name": "CurrentSessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Block in which the current session started." + ] + }, + { + "name": "NextAuthorityIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 244 + } + }, + "fallback": "0x00", + "docs": [ + " Authority list for the next session." + ] + }, + { + "name": "Mixnodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity", + "Identity" + ], + "key": 94, + "value": 455 + } + }, + "fallback": "0x00", + "docs": [ + " Mixnode sets by session index. Only the mixnode sets for the previous, current, and next", + " sessions are kept; older sets are discarded.", + "", + " The mixnodes in each set are keyed by authority index so we can easily check if an", + " authority has registered a mixnode. The authority indices should only be used during", + " registration; the authority indices for the very first session are made up." + ] + } + ] + }, + "calls": { + "type": 453 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of authorities per session." + ] + }, + { + "name": "MaxExternalAddressSize", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum size of one of a mixnode's external addresses." + ] + }, + { + "name": "MaxExternalAddressesPerMixnode", + "type": 4, + "value": "0x10000000", + "docs": [ + " The maximum number of external addresses for a mixnode." + ] + }, + { + "name": "NumCoverToCurrentBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the first phase of each session (`CoverToCurrent`), in blocks." + ] + }, + { + "name": "NumRequestsToCurrentBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the second phase of each session (`RequestsToCurrent`), in blocks." + ] + }, + { + "name": "NumCoverToPrevBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the third phase of each session (`CoverToPrev`), in blocks." + ] + }, + { + "name": "NumRegisterStartSlackBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " The number of \"slack\" blocks at the start of each session, during which", + " [`maybe_register`](Pallet::maybe_register) will not attempt to post registration", + " transactions." + ] + }, + { + "name": "NumRegisterEndSlackBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " The number of \"slack\" blocks at the end of each session.", + " [`maybe_register`](Pallet::maybe_register) will try to register before this slack", + " period, but may post registration transactions during the slack period as a last", + " resort." + ] + }, + { + "name": "RegistrationPriority", + "type": 12, + "value": "0xfeffffffffffffff", + "docs": [ + " Priority of unsigned transactions used to register mixnodes." + ] + }, + { + "name": "MinMixnodes", + "type": 4, + "value": "0x07000000", + "docs": [ + " Minimum number of mixnodes. If there are fewer than this many mixnodes registered for a", + " session, the mixnet will not be active during the session." + ] + } + ], + "errors": null, + "index": 75 + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 506, + "value": 509 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ] + } + ] + }, + "calls": { + "type": 459 + }, + "events": { + "type": 505 + }, + "constants": [], + "errors": null, + "index": 76 + }, + { + "name": "SkipFeelessPayment", + "storage": null, + "calls": null, + "events": { + "type": 511 + }, + "constants": [], + "errors": null, + "index": 77 + }, + { + "name": "PalletExampleMbms", + "storage": { + "prefix": "PalletExampleMbms", + "items": [ + { + "name": "MyMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " Define a storage item to illustrate multi-block migrations." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 78 + }, + { + "name": "AssetConversionMigration", + "storage": null, + "calls": { + "type": 464 + }, + "events": { + "type": 512 + }, + "constants": [], + "errors": { + "type": 931 + }, + "index": 79 + } + ], + "extrinsic": { + "type": 932, + "version": 4, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 934, + "additionalSigned": 33 + }, + { + "identifier": "CheckSpecVersion", + "type": 935, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 936, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 937, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 938, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 940, + "additionalSigned": 33 + }, + { + "identifier": "CheckWeight", + "type": 941, + "additionalSigned": 33 + }, + { + "identifier": "ChargeAssetTxPayment", + "type": 942, + "additionalSigned": 33 + }, + { + "identifier": "CheckMetadataHash", + "type": 943, + "additionalSigned": 95 + } + ] + }, + "type": 74 + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-rpc.ts b/packages/types-support/src/metadata/v14/bizinikiwi-rpc.ts new file mode 100644 index 0000000..806b377 --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-rpc.ts @@ -0,0 +1,135 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "methods": [ + "account_nextIndex", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "dev_getBlockStats", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "statement_broadcasts", + "statement_dump", + "statement_posted", + "statement_postedClear", + "statement_remove", + "statement_submit", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-types.json b/packages/types-support/src/metadata/v14/bizinikiwi-types.json new file mode 100644 index 0000000..35c862b --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-types.json @@ -0,0 +1,70071 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 513, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 327, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 34, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "AssetTxPayment", + "fields": [ + { + "name": null, + "type": 38, + "typeName": "pallet_asset_tx_payment::Event", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "AssetConversionTxPayment", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "pallet_asset_conversion_tx_payment::Event", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 41, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "pallet_democracy::Event", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 59, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "pallet_elections_phragmen::Event", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "pallet_membership::Event", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "pallet_contracts::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "pallet_sudo::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "pallet_im_online::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "pallet_identity::Event", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "pallet_society::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "pallet_recovery::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "pallet_glutton::Event", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 98, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 102, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 104, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "pallet_tips::Event", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 107, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "pallet_lottery::Event", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 110, + "typeName": "pallet_nis::Event", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 112, + "typeName": "pallet_uniques::Event", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 116, + "typeName": "pallet_nfts::Event", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 123, + "typeName": "pallet_nft_fractionalization::Event", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "pallet_salary::Event", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 125, + "typeName": "pallet_core_fellowship::Event", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 133, + "typeName": "pallet_transaction_storage::Event", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 138, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 139, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 467, + "typeName": "pallet_remark::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "fields": [ + { + "name": null, + "type": 468, + "typeName": "pallet_root_testing::Event", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 469, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 470, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 475, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 476, + "typeName": "pallet_alliance::Event", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 477, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 478, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 480, + "typeName": "pallet_ranked_collective::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 482, + "typeName": "pallet_asset_conversion::Event", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 487, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 488, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "fields": [ + { + "name": null, + "type": 490, + "typeName": "frame_benchmarking_pallet_pov::Event", + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 491, + "typeName": "pallet_tx_pause::Event", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 492, + "typeName": "pallet_safe_mode::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Statement", + "fields": [ + { + "name": null, + "type": 494, + "typeName": "pallet_statement::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 499, + "typeName": "pallet_migrations::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 500, + "typeName": "pallet_broker::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 505, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "SkipFeelessPayment", + "fields": [ + { + "name": null, + "type": 511, + "typeName": "pallet_skip_feeless_payment::Event", + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 512, + "typeName": "pallet_asset_conversion_ops::Event", + "docs": [] + } + ], + "index": 79, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 32, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 33 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 33, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 33, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 34, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 36, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 37, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_asset_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 39, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 40, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "ChargeAssetIdOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + }, + { + "name": "AssetRefundFailed", + "fields": [ + { + "name": "native_amount_kept", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A swap of the refund in native currency back to asset failed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submitted in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 45, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 45, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 42, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 8, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "The stakers' rewards are getting paid." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 50, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 52, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 51, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 49 + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "fields": [], + "index": 2, + "docs": [ + "An external proposal has been tabled." + ] + }, + { + "name": "Started", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "threshold", + "type": 55, + "typeName": "VoteThreshold", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A referendum has begun." + ] + }, + { + "name": "Passed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Delegated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An external proposal has been vetoed." + ] + }, + { + "name": "Blacklisted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A proposal_hash has been blacklisted permanently." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "vote", + "type": 56, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has voted in a referendum" + ] + }, + { + "name": "Seconded", + "fields": [ + { + "name": "seconder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An account has seconded a proposal" + ] + }, + { + "name": "ProposalCanceled", + "fields": [ + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A proposal got canceled." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "owner", + "type": 58, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a proposal or a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "owner", + "type": 58, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a proposal or a referendum has been cleared." + ] + }, + { + "name": "MetadataTransferred", + "fields": [ + { + "name": "prev_owner", + "type": 58, + "typeName": "MetadataOwner", + "docs": [ + "Previous metadata owner." + ] + }, + { + "name": "owner", + "type": 58, + "typeName": "MetadataOwner", + "docs": [ + "New metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 16, + "docs": [ + "Metadata has been transferred to new owner." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 55, + "type": { + "path": [ + "pallet_democracy", + "vote_threshold", + "VoteThreshold" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SuperMajorityApprove", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SuperMajorityAgainst", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SimpleMajority", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 56, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 57, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Proposal", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Referendum", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 60, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 61, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTerm", + "fields": [ + { + "name": "new_members", + "type": 62, + "typeName": "Vec<(::AccountId, BalanceOf)>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new term with new_members. This indicates that enough candidates existed to run", + "the election, not that enough have has been elected. The inner value must be examined", + "for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + "slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + "begin with." + ] + }, + { + "name": "EmptyTerm", + "fields": [], + "index": 1, + "docs": [ + "No (or not enough) candidates existed for this round. This is different from", + "`NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "fields": [], + "index": 2, + "docs": [ + "Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has been removed. This should always be followed by either `NewTerm` or", + "`EmptyTerm`." + ] + }, + { + "name": "Renounced", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was slashed by amount due to failing to obtain a seat as member or", + "runner-up.", + "", + "Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "fields": [ + { + "name": "seat_holder", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A seat holder was slashed by amount by being forcefully removed from the set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 62, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 63 + } + }, + "docs": [] + } + }, + { + "id": 63, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [], + "index": 0, + "docs": [ + "The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "fields": [], + "index": 1, + "docs": [ + "The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "fields": [], + "index": 2, + "docs": [ + "Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "fields": [], + "index": 3, + "docs": [ + "The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "fields": [], + "index": 4, + "docs": [ + "One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "fields": [], + "index": 5, + "docs": [ + "Phantom member, never used." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 65, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 66, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 66, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 67 + } + }, + "docs": [] + } + }, + { + "id": 67, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 68, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 4, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 33, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 33, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 70, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 71, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 71, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 71, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 71, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Instantiated", + "fields": [ + { + "name": "deployer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Contract deployed by address at the specified address." + ] + }, + { + "name": "Terminated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was terminated." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that received the contracts remaining balance" + ] + } + ], + "index": 1, + "docs": [ + "Contract has been removed.", + "", + "# Note", + "", + "The only way for a contract to be removed and emitting this event is by calling", + "`seal_terminate`." + ] + }, + { + "name": "CodeStored", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "deposit_held", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "uploader", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Code with the specified hash has been stored." + ] + }, + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + } + ], + "index": 3, + "docs": [ + "A custom event emitted by the contract." + ] + }, + { + "name": "CodeRemoved", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "deposit_released", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remover", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A code with the specified hash was removed." + ] + }, + { + "name": "ContractCodeUpdated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that has been updated." + ] + }, + { + "name": "new_code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "New code hash that was set for the contract." + ] + }, + { + "name": "old_code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Previous code hash of the contract." + ] + } + ], + "index": 5, + "docs": [ + "A contract's code was updated." + ] + }, + { + "name": "Called", + "fields": [ + { + "name": "caller", + "type": 73, + "typeName": "Origin", + "docs": [ + "The caller of the `contract`." + ] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was called." + ] + } + ], + "index": 6, + "docs": [ + "A contract was called either by a plain account or another contract.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "DelegateCalled", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that performed the delegate call and hence in whose context", + "the `code_hash` is executed." + ] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [ + "The code hash that was delegate called." + ] + } + ], + "index": 7, + "docs": [ + "A contract delegate called a code hash.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "StorageDepositTransferredAndHeld", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some funds have been transferred and held as storage deposit." + ] + }, + { + "name": "StorageDepositTransferredAndReleased", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some storage deposit funds have been transferred and released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 73, + "type": { + "path": [ + "pallet_contracts", + "Origin" + ], + "params": [ + { + "name": "T", + "type": 74 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [ + "kitchensink_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Sudid", + "fields": [ + { + "name": "sudo_result", + "type": 32, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 0, + "docs": [ + "A sudo call just took place." + ] + }, + { + "name": "KeyChanged", + "fields": [ + { + "name": "old", + "type": 43, + "typeName": "Option", + "docs": [ + "The old sudo key (if one was previously set)." + ] + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new sudo key (if one was set)." + ] + } + ], + "index": 1, + "docs": [ + "The sudo key has been updated." + ] + }, + { + "name": "KeyRemoved", + "fields": [], + "index": 2, + "docs": [ + "The key was permanently removed." + ] + }, + { + "name": "SudoAsDone", + "fields": [ + { + "name": "sudo_result", + "type": 32, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 3, + "docs": [ + "A [sudo_as](Pallet::sudo_as) call just took place." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 76, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "HeartbeatReceived", + "fields": [ + { + "name": "authority_id", + "type": 77, + "typeName": "T::AuthorityId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new heartbeat was received from `AuthorityId`." + ] + }, + { + "name": "AllGood", + "fields": [], + "index": 1, + "docs": [ + "At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "fields": [ + { + "name": "offline", + "type": 78, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "At the end of the session, at least one validator was found to be offline." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 77, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 80 + ] + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 81, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 81, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 82, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 82, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 83 + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 84, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 85, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 14, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 85, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + }, + { + "name": "AuthorityAdded", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A username authority was added." + ] + }, + { + "name": "AuthorityRemoved", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A username authority was removed." + ] + }, + { + "name": "UsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A username was set for `who`." + ] + }, + { + "name": "UsernameQueued", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + }, + { + "name": "expiration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A username was queued, but `who` must accept it prior to `expiration`." + ] + }, + { + "name": "PreapprovalExpired", + "fields": [ + { + "name": "whose", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A queued username passed its expiration without being claimed and was removed." + ] + }, + { + "name": "PrimaryUsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A username was set as a primary and can be looked up from `who`." + ] + }, + { + "name": "DanglingUsernameRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A dangling username (as in, a username corresponding to an account that has removed its", + "identity) has been removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 87, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "candidates", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "judged", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewParams", + "fields": [ + { + "name": "params", + "type": 90, + "typeName": "GroupParamsFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A new set of \\[params\\] has been set for the group." + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "Elevated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A \\[member\\] got elevated to \\[rank\\]." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 89, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [ + "pallet_society", + "GroupParams" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 92, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 93, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 95, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 94, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PalletInitialized", + "fields": [ + { + "name": "reinit", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the pallet has been re-initialized." + ] + } + ], + "index": 0, + "docs": [ + "The pallet has been (re)initialized." + ] + }, + { + "name": "ComputationLimitSet", + "fields": [ + { + "name": "compute", + "type": 97, + "typeName": "FixedU64", + "docs": [ + "The computation limit." + ] + } + ], + "index": 1, + "docs": [ + "The computation limit has been updated." + ] + }, + { + "name": "StorageLimitSet", + "fields": [ + { + "name": "storage", + "type": 97, + "typeName": "FixedU64", + "docs": [ + "The storage limit." + ] + } + ], + "index": 2, + "docs": [ + "The storage limit has been updated." + ] + }, + { + "name": "BlockLengthLimitSet", + "fields": [ + { + "name": "block_length", + "type": 97, + "typeName": "FixedU64", + "docs": [ + "The block length limit." + ] + } + ], + "index": 3, + "docs": [ + "The block length limit has been updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 97, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 99, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 101, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 100, + "type": { + "path": [ + "kitchensink_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 102, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 103, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 105, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTip", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new tip suggestion has been opened." + ] + }, + { + "name": "TipClosing", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A tip suggestion has reached threshold and is closing." + ] + }, + { + "name": "TipClosed", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A tip suggestion has been closed." + ] + }, + { + "name": "TipRetracted", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A tip suggestion has been retracted." + ] + }, + { + "name": "TipSlashed", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "finder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A tip suggestion has been slashed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 106, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 107, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LotteryStarted", + "fields": [], + "index": 0, + "docs": [ + "A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "fields": [], + "index": 1, + "docs": [ + "A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "fields": [ + { + "name": "winner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "lottery_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_index", + "type": 109, + "typeName": "CallIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A ticket has been bought!" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 109, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BidPlaced", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A bid was successfully placed." + ] + }, + { + "name": "BidRetracted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bid was successfully removed (before being accepted)." + ] + }, + { + "name": "BidDropped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bid was dropped from a queue because of another, more substantial, bid was present." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The block number at which the receipt may be thawed." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner of the receipt." + ] + }, + { + "name": "proportion", + "type": 111, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance which the receipt represents." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of funds which were debited from the owner." + ] + } + ], + "index": 3, + "docs": [ + "A bid was accepted. The balance may not be released until expiry." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner." + ] + }, + { + "name": "proportion", + "type": 111, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance by which the owner was debited." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount by which the owner was credited." + ] + }, + { + "name": "dropped", + "type": 8, + "typeName": "bool", + "docs": [ + "If `true` then the receipt is done." + ] + } + ], + "index": 4, + "docs": [ + "An receipt has been (at least partially) thawed." + ] + }, + { + "name": "Funded", + "fields": [ + { + "name": "deficit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An automatic funding of the deficit was made." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A receipt was transferred." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 111, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 87, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 87, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 113, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "admin", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "freezer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deadline", + "type": 39, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf", + "docs": [] + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + }, + { + "name": "PalletAttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "attribute", + "type": 122, + "typeName": "PalletAttributes", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 37, + "docs": [ + "A new attribute in the `Pallet` namespace was set for the `collection` or an `item`", + "within that `collection`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 117, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CollectionOwner", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ItemOwner", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 120 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 120, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + }, + { + "name": "direction", + "type": 121, + "typeName": "PriceDirection", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Receive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UsedToClaim", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TransferDisabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NftFractionalized", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An NFT was successfully fractionalized." + ] + }, + { + "name": "NftUnified", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An NFT was successfully returned back." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Inducted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member is inducted into the payroll." + ] + }, + { + "name": "Registered", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member registered for a payout." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 33, + "typeName": "::Id", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payment happened." + ] + }, + { + "name": "CycleStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "CycleIndexOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The next cycle begins." + ] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member swapped their account." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 125, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParamsChanged", + "fields": [ + { + "name": "params", + "type": 126, + "typeName": "ParamsOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Parameters for the pallet have changed." + ] + }, + { + "name": "ActiveChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Member activity flag has been set." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Member has begun being tracked in this pallet." + ] + }, + { + "name": "Offboarded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Member has been removed from being tracked in this pallet (i.e. because rank is now", + "zero)." + ] + }, + { + "name": "Promoted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Member has been promoted to the given rank." + ] + }, + { + "name": "Demoted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Member has been demoted to the given (non-zero) rank." + ] + }, + { + "name": "Proven", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "at_rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Member has been proven at their current rank, postponing auto-demotion." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "wish", + "type": 130, + "typeName": "Wish", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Member has stated evidence of their efforts their request for rank." + ] + }, + { + "name": "EvidenceJudged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The member/candidate." + ] + }, + { + "name": "wish", + "type": 130, + "typeName": "Wish", + "docs": [ + "The desired outcome for which the evidence was presented." + ] + }, + { + "name": "evidence", + "type": 131, + "typeName": "Evidence", + "docs": [ + "The evidence of efforts." + ] + }, + { + "name": "old_rank", + "type": 101, + "typeName": "u16", + "docs": [ + "The old rank, prior to this change." + ] + }, + { + "name": "new_rank", + "type": 132, + "typeName": "Option", + "docs": [ + "New rank. If `None` then candidate record was removed entirely." + ] + } + ], + "index": 8, + "docs": [ + "Some submitted evidence was judged and removed. There may or may not have been a change", + "to the rank, but in any case, `last_proof` is reset." + ] + }, + { + "name": "Imported", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Pre-ranked account has been inducted at their current rank." + ] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member had its AccountId swapped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_core_fellowship", + "ParamsType" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Ranks", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "active_salary", + "type": 127, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "passive_salary", + "type": 127, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "demotion_period", + "type": 129, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "min_promotion_period", + "type": 129, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "offboard_timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 128, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "pallet_core_fellowship", + "Wish" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Retention", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Promotion", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 132, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 101 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 101, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stored data under specified index." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Renewed data under specified index." + ] + }, + { + "name": "ProofChecked", + "fields": [], + "index": 2, + "docs": [ + "Storage proof was successfully checked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 134, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 135, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 136, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 137, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 136, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 138, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 139, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 101, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 101, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 466, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 466, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 466, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 466, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 466, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 466, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 140, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 141 + }, + { + "name": "H", + "type": 465 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 113, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 142, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 146, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 228, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 241, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 247, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 250, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 251, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 252, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 254, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 255, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 266, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 267, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 268, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 271, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 272, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 317, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 318, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 319, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 321, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 323, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 330, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 332, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 333, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 334, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 335, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 336, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 349, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 352, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 355, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 374, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 381, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 384, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 391, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "fields": [ + { + "name": null, + "type": 394, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 395, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 399, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 400, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 424, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 429, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "fields": [ + { + "name": null, + "type": 430, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 431, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 443, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mixnet", + "fields": [ + { + "name": null, + "type": 453, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 459, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 464, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 79, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 143, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 145, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 143, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 144 + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 145, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 101, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 148, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 147, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 141 + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "kitchensink_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 151, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Void", + "fields": [ + { + "name": null, + "type": 153, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::\n__private::Void", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "sp_core", + "Void" + ], + "params": [], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 155, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 155, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 161, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 155, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 156 + }, + { + "name": "Id", + "type": 158 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 158, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 159, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 156, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 156, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 157, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 145, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 162, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 163, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 163, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 166, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 157, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 169, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 170, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 171, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 223, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 224, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 225, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 171, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_max_targets", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 171, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 172 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 172, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [ + "kitchensink_runtime", + "NposSolution16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 173, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 176, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 181, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 184, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 187, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 190, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 193, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 196, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 199, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 202, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 205, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 208, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 211, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 214, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 217, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 220, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 174 + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 101 + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 177 + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 178, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 175, + 179 + ] + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 180 + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 101, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 182 + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 183, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 184, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 185 + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 186, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 188 + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 189, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 191 + } + }, + "docs": [] + } + }, + { + "id": 191, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 192, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 194 + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 195, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 197 + } + }, + "docs": [] + } + }, + { + "id": 197, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 198, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 198, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 199, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 200 + } + }, + "docs": [] + } + }, + { + "id": 200, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 201, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 201, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 203 + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 204, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 207, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 209 + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 210, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 212 + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 213, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 215 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 216, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 218 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 219, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 221 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 222, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 157, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 44 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 44, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 226 + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 227 + ] + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 62, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do whatever", + "it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans` indicates the number of metadata slashing spans to clear when", + "this call results in a complete removal of all the data related to the stash account.", + "In this case, the `num_slashing_spans` must be larger or equal to the number of", + "slashing spans associated with the stash account in the [`SlashingSpans`] storage type,", + "otherwise the call will fail. The call weight is directly proportional to", + "`num_slashing_spans`.", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 50, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 229, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 230, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 229, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 231, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 231, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 232, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 232, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 233, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 234, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 233, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 235, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 236, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 237, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 229, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 166 + } + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 230 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 230, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 238 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 238, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 239 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 240, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 157, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 240, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 239 + } + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 242, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 242, + "type": { + "path": [ + "kitchensink_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 68, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 158, + "typeName": "::Public", + "docs": [] + }, + { + "name": "im_online", + "type": 77, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 243, + "typeName": "::Public", + "docs": [] + }, + { + "name": "mixnet", + "type": 244, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 245, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [ + "sp_mixnet", + "types", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 246, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 246, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 157, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 157, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "vote", + "type": 56, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voting_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 157, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 248, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "fields": [], + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "fields": [], + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "maybe_ref_index", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 157, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 58, + "typeName": "MetadataOwner", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 249, + "typeName": "Option", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 248, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 157, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 251, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 157, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "fields": [], + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 253, + "typeName": "Renouncing", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "slash_bond", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "rerun_election", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 253, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "RunnerUp", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Candidate", + "fields": [ + { + "name": null, + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "add", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "fields": [], + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 256, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 256, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 256, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 257, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 258, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 263, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 68 + }, + { + "name": "V", + "type": 259 + }, + { + "name": "S", + "type": 260 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 68, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 262, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 262, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 261, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 259, + 260 + ] + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 68 + }, + { + "name": "V", + "type": 264 + }, + { + "name": "S", + "type": 260 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 68, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 265, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 265, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 264, + 260 + ] + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 39, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 267, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 71, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 71, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 268, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "call_old_weight", + "fields": [ + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Deprecated version if [`Self::call`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_with_code_old_weight", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_old_weight", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "determinism", + "type": 270, + "typeName": "Determinism", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the size of the supplied `code`.", + "", + "If the code already exists in storage it will still return `Ok` and upgrades", + "the in storage version to the current", + "[`InstructionWeights::version`](InstructionWeights).", + "", + "- `determinism`: If this is set to any other value but [`Determinism::Enforced`] then", + " the only way to use this code is to delegate call into it from an offchain execution.", + " Set to [`Determinism::Enforced`] if in doubt.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`].", + "", + "Use [`Determinism::Relaxed`] exclusively for non-deterministic code. If the uploaded", + "code is deterministic, specifying [`Determinism::Relaxed`] will be disregarded and", + "result in higher gas costs." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is deployed, and a `code_hash` is created for that code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + }, + { + "name": "migrate", + "fields": [ + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 9, + "docs": [ + "When a migration is in progress, this dispatchable can be used to run migration steps.", + "Calls that contribute to advancing the migration have their fees waived, as it's helpful", + "for the chain. Note that while the migration is in progress, the pallet will also", + "leverage the `on_idle` hooks to run migration steps." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 269, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 81 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 81, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 270, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "Determinism" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Enforced", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Relaxed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "remove_key", + "fields": [], + "index": 4, + "docs": [ + "Permanently removes the sudo key.", + "", + "**This cannot be un-done.**" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 272, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "heartbeat", + "fields": [ + { + "name": "heartbeat", + "type": 273, + "typeName": "Heartbeat>", + "docs": [] + }, + { + "name": "signature", + "type": 274, + "typeName": "::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "## Complexity:", + "- `O(K)` where K is length of `Keys` (heartbeat.validators_len)", + " - `O(K)`: decoding of length `K`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 273, + "type": { + "path": [ + "pallet_im_online", + "Heartbeat" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthIndex", + "docs": [] + }, + { + "name": "validators_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 274, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 261, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 276, + "typeName": "Box", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful." + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 311, + "typeName": "Vec<(T::AccountId, Data)>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts." + ] + }, + { + "name": "clear_identity", + "fields": [], + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 157, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "max_fee", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Self::registrars().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fee", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "new", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fields", + "type": 12, + "typeName": "::\nFieldsIdentifier", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 157, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "judgement", + "type": 313, + "typeName": "Judgement>", + "docs": [] + }, + { + "name": "identity", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is", + " provided.", + "", + "Note: Judgements do not apply to a username.", + "", + "Emits `JudgementGiven` if successful." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 279, + "typeName": "Data", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 279, + "typeName": "Data", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "fields": [], + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + }, + { + "name": "add_username_authority", + "fields": [ + { + "name": "authority", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "suffix", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Add an `AccountId` with permission to grant usernames with a given `suffix` appended.", + "", + "The authority can grant up to `allocation` usernames. To top up their allocation, they", + "should just issue (or request via governance) a new `add_username_authority` call." + ] + }, + { + "name": "remove_username_authority", + "fields": [ + { + "name": "authority", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Remove `authority` from the username authorities." + ] + }, + { + "name": "set_username_for", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "username", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "signature", + "type": 314, + "typeName": "Option", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the username for `who`. Must be called by a username authority.", + "", + "The authority must have an `allocation`. Users can either pre-sign their usernames or", + "accept them later.", + "", + "Usernames must:", + " - Only contain lowercase ASCII characters or digits.", + " - When combined with the suffix of the issuing authority be _less than_ the", + " `MaxUsernameLength`." + ] + }, + { + "name": "accept_username", + "fields": [ + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Accept a given username that an `authority` granted. The call must include the full", + "username, as in `username.suffix`." + ] + }, + { + "name": "remove_expired_approval", + "fields": [ + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove an expired username approval. The username was approved by an authority but never", + "accepted by the user and must now be beyond its expiration. The call must include the", + "full username, as in `username.suffix`." + ] + }, + { + "name": "set_primary_username", + "fields": [ + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set a given username as the primary. The username should include the suffix." + ] + }, + { + "name": "remove_dangling_username", + "fields": [ + { + "name": "username", + "type": 87, + "typeName": "Username", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove a username that corresponds to an account with no identity. Exists when a user", + "gets a username but then calls `clear_identity`." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 276, + "type": { + "path": [ + "pallet_identity", + "legacy", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 277, + "typeName": "BoundedVec<(Data, Data), FieldLimit>", + "docs": [] + }, + { + "name": "display", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "legal", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "web", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "riot", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "email", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "pgp_fingerprint", + "type": 310, + "typeName": "Option<[u8; 20]>", + "docs": [] + }, + { + "name": "image", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "twitter", + "type": 279, + "typeName": "Data", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 278 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 309, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 279, + 279 + ] + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Raw0", + "fields": [ + { + "name": null, + "type": 280, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw1", + "fields": [ + { + "name": null, + "type": 281, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Raw2", + "fields": [ + { + "name": null, + "type": 282, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Raw3", + "fields": [ + { + "name": null, + "type": 283, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Raw4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Raw5", + "fields": [ + { + "name": null, + "type": 284, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Raw6", + "fields": [ + { + "name": null, + "type": 285, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Raw7", + "fields": [ + { + "name": null, + "type": 286, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Raw8", + "fields": [ + { + "name": null, + "type": 287, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Raw9", + "fields": [ + { + "name": null, + "type": 288, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Raw10", + "fields": [ + { + "name": null, + "type": 289, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Raw11", + "fields": [ + { + "name": null, + "type": 290, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Raw12", + "fields": [ + { + "name": null, + "type": 291, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Raw13", + "fields": [ + { + "name": null, + "type": 292, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Raw14", + "fields": [ + { + "name": null, + "type": 293, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Raw15", + "fields": [ + { + "name": null, + "type": 294, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Raw16", + "fields": [ + { + "name": null, + "type": 85, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Raw17", + "fields": [ + { + "name": null, + "type": 295, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Raw18", + "fields": [ + { + "name": null, + "type": 296, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Raw19", + "fields": [ + { + "name": null, + "type": 297, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Raw20", + "fields": [ + { + "name": null, + "type": 167, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Raw21", + "fields": [ + { + "name": null, + "type": 298, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Raw22", + "fields": [ + { + "name": null, + "type": 299, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Raw23", + "fields": [ + { + "name": null, + "type": 300, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Raw24", + "fields": [ + { + "name": null, + "type": 301, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Raw25", + "fields": [ + { + "name": null, + "type": 302, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Raw26", + "fields": [ + { + "name": null, + "type": 303, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Raw27", + "fields": [ + { + "name": null, + "type": 304, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Raw28", + "fields": [ + { + "name": null, + "type": 305, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Raw29", + "fields": [ + { + "name": null, + "type": 306, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Raw30", + "fields": [ + { + "name": null, + "type": 307, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Raw31", + "fields": [ + { + "name": null, + "type": 308, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Raw32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Sha256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Keccak256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "ShaThree256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 0, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 24, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 25, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 26, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 27, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 28, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 29, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 30, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 31, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 278 + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 167 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 167, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 312 + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 279 + ] + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FeePaid", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reasonable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "KnownGood", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "OutOfDate", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LowQuality", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Erroneous", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 315 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 315, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 261, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 261, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 317, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society." + ] + }, + { + "name": "unbid", + "fields": [], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder." + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout." + ] + }, + { + "name": "unvouch", + "fields": [], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`)." + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`)." + ] + }, + { + "name": "payout", + "fields": [], + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining." + ] + }, + { + "name": "waive_repay", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Repay the payment previously given to the member with the signed origin, remove any", + "pending payments, and elevate them from rank 0 to rank 1." + ] + }, + { + "name": "found_society", + "fields": [ + { + "name": "founder", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "rules", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group.", + "- `rules` - The rules of this society concerning membership.", + "", + "Complexity: O(1)" + ] + }, + { + "name": "dissolve", + "fields": [], + "index": 9, + "docs": [ + "Dissolve the society and remove all members.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member." + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "forgive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be Signed from the Founder.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member." + ] + }, + { + "name": "set_parameters", + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the maximum number of members in society and the maximum number of new candidates", + "in a single intake period.", + "", + "The dispatch origin for this call must be Signed by the Founder.", + "", + "Parameters:", + "- `max_members` - The maximum number of members for the society. This must be no less", + " than the current number of members.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group." + ] + }, + { + "name": "punish_skeptic", + "fields": [], + "index": 12, + "docs": [ + "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the", + "candidate." + ] + }, + { + "name": "claim_membership", + "fields": [], + "index": 13, + "docs": [ + "Transform an approved candidate into a member. Callable only by the", + "the candidate, and only after the period for voting has ended." + ] + }, + { + "name": "bestow_membership", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Transform an approved candidate into a member. Callable only by the Signed origin of the", + "Founder, only after the period for voting has ended and only when the candidate is not", + "clearly rejected." + ] + }, + { + "name": "kick_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove the candidate's application from the society. Callable only by the Signed origin", + "of the Founder, only after the period for voting has ended, and only when they do not", + "have a clear approval.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "resign_candidacy", + "fields": [], + "index": 16, + "docs": [ + "Remove the candidate's application from the society. Callable only by the candidate.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "drop_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a `candidate`'s failed application from the society. Callable by any", + "signed origin but only at the end of the subsequent round and only for", + "a candidate with more rejections than approvals.", + "", + "The bid deposit is lost and the voucher is banned." + ] + }, + { + "name": "cleanup_candidacy", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Remove up to `max` stale votes for the given `candidate`.", + "", + "May be called by any Signed origin, but only after the candidate's candidacy is ended." + ] + }, + { + "name": "cleanup_challenge", + "fields": [ + { + "name": "challenge_round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove up to `max` stale votes for the defender in the given `challenge_round`.", + "", + "May be called by any Signed origin, but only after the challenge round is ended." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set an a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "threshold", + "type": 101, + "typeName": "u16", + "docs": [] + }, + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "fields": [], + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 320, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 320, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 320, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 321, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 322, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 322, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 322, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 322, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 94, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 322, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 94 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 94, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "initialize_pallet", + "fields": [ + { + "name": "new_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_count", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize the pallet. Should be called once, if no genesis state was provided.", + "", + "`current_count` is the current number of elements in `TrashData`. This can be set to", + "`None` when the pallet is first initialized.", + "", + "Only callable by Root or `AdminOrigin`. A good default for `new_count` is `5_000`." + ] + }, + { + "name": "set_compute", + "fields": [ + { + "name": "compute", + "type": 97, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set how much of the remaining `ref_time` weight should be consumed by `on_idle`.", + "", + "Only callable by Root or `AdminOrigin`." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "storage", + "type": 97, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set how much of the remaining `proof_size` weight should be consumed by `on_idle`.", + "", + "`1.0` means that all remaining `proof_size` will be consumed. The PoV benchmarking", + "results that are used here are likely an over-estimation. 100% intended consumption will", + "therefore translate to less than 100% actual consumption.", + "", + "Only callable by Root or `AdminOrigin`." + ] + }, + { + "name": "bloat", + "fields": [ + { + "name": "garbage", + "type": 324, + "typeName": "Vec<[u8; VALUE_SIZE]>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Increase the block size by including the specified garbage bytes." + ] + }, + { + "name": "set_block_length", + "fields": [ + { + "name": "block_length", + "type": 97, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set how much of the block length should be filled with trash data on each block.", + "", + "`1.0` means that all block should be filled. If set to `1.0`, storage proof size will", + " be close to zero.", + "", + "Only callable by Root or `AdminOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 324, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 325 + } + }, + "docs": [] + } + }, + { + "id": 325, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1024, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 327, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the a bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 327, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 329, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 101, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 101, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 157, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 329, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 329, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 100 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 100, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 330, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 101, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 331, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 101, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 331, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 101, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 331, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 103 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 103, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 332, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 333, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_awesome", + "fields": [ + { + "name": "reason", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'" + ] + }, + { + "name": "retract_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + "If successful, the original deposit will be unreserved.", + "", + "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + "must have been reported by the signing account through `report_awesome` (and not", + "through `tip_new`).", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "Emits `TipRetracted` if successful.", + "", + "## Complexity", + "- `O(1)`", + " - Depends on the length of `T::Hash` which is fixed." + ] + }, + { + "name": "tip_new", + "fields": [ + { + "name": "reason", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "tip_value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Give a tip for something new; no finder's fee will be taken.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`" + ] + }, + { + "name": "tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "tip_value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Declare a tip value for an already-open tip.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + "has started.", + "", + "## Complexity", + "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert", + " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`." + ] + }, + { + "name": "close_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Close and payout a tip.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The tip identified by `hash` must have finished its countdown period.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "## Complexity", + "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`", + " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on", + " the implementation of `T::Tippers`." + ] + }, + { + "name": "slash_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove and slash an already-open tip.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "As a result, the finder is slashed and the deposits are lost.", + "", + "Emits `TipSlashed` if successful.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 334, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "The asset class must be frozen before calling `start_destroy`." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 81, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 335, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "The asset class must be frozen before calling `start_destroy`." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 81, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 81, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 157, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 336, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_double_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 337, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_double_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 337, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the", + "future.", + "", + "Note: `delay_in_blocks` has to be at least 1." + ] + }, + { + "name": "report_fork_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 344, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_fork_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 344, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "report_future_block_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 348, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_future_block_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 348, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 160, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 337, + "type": { + "path": [ + "sp_consensus_beefy", + "DoubleVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "Signature", + "type": 338 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 339, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 339, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 316, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "Signature", + "type": 338 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 340, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 245, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 338, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 341, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 343 + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 282, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 156 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "AncestryProof", + "type": 345 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 339, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 345, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 156, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [ + "sp_mmr_primitives", + "AncestryProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev_peaks", + "type": 327, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prev_leaf_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 346, + "typeName": "Vec<(u64, Hash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 347 + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [ + "sp_consensus_beefy", + "FutureBlockVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 245 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 339, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 349, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "buy_ticket", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Buy a ticket to enter the lottery.", + "", + "This extrinsic acts as a passthrough function for `call`. In all", + "situations where `call` alone would succeed, this extrinsic should", + "succeed.", + "", + "If `call` is successful, then we will attempt to purchase a ticket,", + "which may fail silently. To detect success of a ticket purchase, you", + "should listen for the `TicketBought` event.", + "", + "This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set calls in storage which can be used to purchase a lottery ticket.", + "", + "This function only matters if you use the `ValidateCall` implementation", + "provided by this pallet, which uses storage to determine the valid calls.", + "", + "This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "repeat", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start a lottery using the provided configuration.", + "", + "This extrinsic must be called by the `ManagerOrigin`.", + "", + "Parameters:", + "", + "* `price`: The cost of a single ticket.", + "* `length`: How long the lottery should run for starting at the current block.", + "* `delay`: How long after the lottery end we should wait before picking a winner.", + "* `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "fields": [], + "index": 3, + "docs": [ + "If a lottery is repeating, you can use this to stop the repeat.", + "The lottery will continue to run to completion.", + "", + "This extrinsic must be called by the `ManagerOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 350, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "fields": [], + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "maybe_proportion", + "type": 351, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 157, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 351, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 111 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 111, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 353, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "check_owner", + "type": 354, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "maybe_check_delegate", + "type": 354, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 87, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 87, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 236, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 354, + "typeName": "Option>", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 353, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 157, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 354, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 166 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 166, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 356, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`CollectionDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 356, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 363, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "NOTE: The collection must have 0 items to be destroyed.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(m + c + a)` where:", + "- `m = witness.item_metadatas`", + "- `c = witness.item_configs`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness_data", + "type": 364, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must comply with the `mint_settings` rules.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object. If", + " the mint price is set, then it should be additionally confirmed in the `witness_data`.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "item_config", + "type": 366, + "typeName": "ItemConfig", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "The origin must conform to `ForceOrigin` or must be Signed and the signing account must", + "be the owner of the `item`.", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "", + "Emits `Burned`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "lock_settings", + "type": 357, + "typeName": "CollectionSettings", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 354, + "typeName": "Option>", + "docs": [] + }, + { + "name": "admin", + "type": 354, + "typeName": "Option>", + "docs": [] + }, + { + "name": "freezer", + "type": 354, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Note: by setting the role to `None` only the `ForceOrigin` will be able to change it", + "after to `Some(account)`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "config", + "type": 356, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "maybe_deadline", + "type": 39, + "typeName": "Option>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin", + "of the `collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only.", + "When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` Admin only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness", + "type": 367, + "typeName": "CancelAttributesApprovalWitness", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "mint_settings", + "type": 359, + "typeName": "MintSettings, BlockNumberFor, T::CollectionId>", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer", + "of the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 236, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 354, + "typeName": "Option>", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 368, + "typeName": "BoundedVec, T::MaxTips>", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_desired_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "witness_price", + "type": 119, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 371, + "typeName": "Box>", + "docs": [] + }, + { + "name": "signature", + "type": 315, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Issuer of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 372, + "typeName": "PreSignedAttributesOf", + "docs": [] + }, + { + "name": "signature", + "type": 315, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Admin of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 357, + "typeName": "CollectionSettings", + "docs": [] + }, + { + "name": "max_supply", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_settings", + "type": 359, + "typeName": "MintSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 358 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "CollectionSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "UnlockedMaxSupply", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DepositRequired", + "fields": [], + "index": 16, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 360, + "typeName": "MintType", + "docs": [] + }, + { + "name": "price", + "type": 236, + "typeName": "Option", + "docs": [] + }, + { + "name": "start_block", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "end_block", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "default_item_settings", + "type": 361, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Public", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "HolderOf", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 362 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "ItemSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "item_metadatas", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 157, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 365 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 365, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owned_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_price", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 361, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 369 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 370, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 369, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 369 + } + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 143, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "only_account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + }, + { + "name": "mint_price", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 372, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 143, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fractionalize", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Lock the NFT and mint a new fungible asset.", + "", + "The dispatch origin for this call must be Signed.", + "The origin must be the owner of the NFT they are trying to lock.", + "", + "`Deposit` funds of sender are reserved.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the new asset. It must not exist.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the newly created asset.", + "- `fractions`: The total issuance of the newly created asset class.", + "", + "Emits `NftFractionalized` event when successful." + ] + }, + { + "name": "unify", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Burn the total issuance of the fungible asset and return (unlock) the locked NFT.", + "", + "The dispatch origin for this call must be Signed.", + "", + "`Deposit` funds will be returned to `asset_creator`.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the asset being returned and destroyed. Must match", + "the original ID of the created asset, corresponding to the NFT.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the unified NFT.", + "", + "Emits `NftUnified` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 374, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "init", + "fields": [], + "index": 0, + "docs": [ + "Start the first payout cycle.", + "", + "- `origin`: A `Signed` origin of an account." + ] + }, + { + "name": "bump", + "fields": [], + "index": 1, + "docs": [ + "Move to next payout cycle, assuming that the present block is now within that cycle.", + "", + "- `origin`: A `Signed` origin of an account." + ] + }, + { + "name": "induct", + "fields": [], + "index": 2, + "docs": [ + "Induct oneself into the payout system." + ] + }, + { + "name": "register", + "fields": [], + "index": 3, + "docs": [ + "Register for a payout.", + "", + "Will only work if we are in the first `RegistrationPeriod` blocks since the cycle", + "started.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`." + ] + }, + { + "name": "payout", + "fields": [], + "index": 4, + "docs": [ + "Request a payout.", + "", + "Will only work if we are after the first `RegistrationPeriod` blocks since the cycle", + "started but by no more than `PayoutPeriod` blocks.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`." + ] + }, + { + "name": "payout_other", + "fields": [ + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Request a payout to a secondary account.", + "", + "Will only work if we are after the first `RegistrationPeriod` blocks since the cycle", + "started but by no more than `PayoutPeriod` blocks.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`.", + "- `beneficiary`: The account to receive payment." + ] + }, + { + "name": "check_payment", + "fields": [], + "index": 6, + "docs": [ + "Update a payment's status; if it failed, alter the state so the payment can be retried.", + "", + "This must be called within the same cycle as the failed payment. It will fail with", + "`Event::NotCurrent` otherwise.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members` who has", + " received a payment this cycle." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 375, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bump", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Bump the state of a member.", + "", + "This will demote a member whose `last_proof` is now beyond their rank's", + "`demotion_period`.", + "", + "- `origin`: A `Signed` origin of an account.", + "- `who`: A member account whose state is to be updated." + ] + }, + { + "name": "set_params", + "fields": [ + { + "name": "params", + "type": 126, + "typeName": "Box>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the parameters.", + "", + "- `origin`: An origin complying with `ParamsOrigin` or root.", + "- `params`: The new parameters for the pallet." + ] + }, + { + "name": "set_active", + "fields": [ + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set whether a member is active or not.", + "", + "- `origin`: A `Signed` origin of a member's account.", + "- `is_active`: `true` iff the member is active." + ] + }, + { + "name": "approve", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "at_rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Approve a member to continue at their rank.", + "", + "This resets `last_proof` to the current block, thereby delaying any automatic demotion.", + "", + "`who` must already be tracked by this pallet for this to have an effect.", + "", + "- `origin`: An origin which satisfies `ApproveOrigin` or root.", + "- `who`: A member (i.e. of non-zero rank).", + "- `at_rank`: The rank of member." + ] + }, + { + "name": "induct", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Introduce a new and unranked candidate (rank zero).", + "", + "- `origin`: An origin which satisfies `InductOrigin` or root.", + "- `who`: The account ID of the candidate to be inducted and become a member." + ] + }, + { + "name": "promote", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Increment the rank of a ranked and tracked account.", + "", + "- `origin`: An origin which satisfies `PromoteOrigin` with a `Success` result of", + " `to_rank` or more or root.", + "- `who`: The account ID of the member to be promoted to `to_rank`.", + "- `to_rank`: One more than the current rank of `who`." + ] + }, + { + "name": "promote_fast", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 101, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Fast promotions can skip ranks and ignore the `min_promotion_period`.", + "", + "This is useful for out-of-band promotions, hence it has its own `FastPromoteOrigin` to", + "be (possibly) more restrictive than `PromoteOrigin`. Note that the member must already", + "be inducted." + ] + }, + { + "name": "offboard", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Stop tracking a prior member who is now not a ranked member of the collective.", + "", + "- `origin`: A `Signed` origin of an account.", + "- `who`: The ID of an account which was tracked in this pallet but which is now not a", + " ranked member of the collective." + ] + }, + { + "name": "submit_evidence", + "fields": [ + { + "name": "wish", + "type": 130, + "typeName": "Wish", + "docs": [] + }, + { + "name": "evidence", + "type": 131, + "typeName": "Evidence", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Provide evidence that a rank is deserved.", + "", + "This is free as long as no evidence for the forthcoming judgement is already submitted.", + "Evidence is cleared after an outcome (either demotion, promotion of approval).", + "", + "- `origin`: A `Signed` origin of an inducted and ranked account.", + "- `wish`: The stated desire of the member.", + "- `evidence`: A dump of evidence to be considered. This should generally be either a", + " Markdown-encoded document or a series of 32-byte hashes which can be found on a", + " decentralised content-based-indexing system such as IPFS." + ] + }, + { + "name": "import", + "fields": [], + "index": 8, + "docs": [ + "Introduce an already-ranked individual of the collective into this pallet. The rank may", + "still be zero.", + "", + "This resets `last_proof` to the current block and `last_promotion` will be set to zero,", + "thereby delaying any automatic demotion but allowing immediate promotion.", + "", + "- `origin`: A signed origin of a ranked, but not tracked, account." + ] + }, + { + "name": "set_partial_params", + "fields": [ + { + "name": "partial_params", + "type": 376, + "typeName": "Box>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the parameters partially.", + "", + "- `origin`: An origin complying with `ParamsOrigin` or root.", + "- `partial_params`: The new parameters for the pallet.", + "", + "This update config with multiple arguments without duplicating", + "the fields that does not need to update (set to None)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 376, + "type": { + "path": [ + "pallet_core_fellowship", + "ParamsType" + ], + "params": [ + { + "name": "Balance", + "type": 236 + }, + { + "name": "BlockNumber", + "type": 39 + }, + { + "name": "Ranks", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "active_salary", + "type": 377, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "passive_salary", + "type": 377, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "demotion_period", + "type": 379, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "min_promotion_period", + "type": 379, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "offboard_timeout", + "type": 39, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 236 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 378, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 378, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 236 + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 39 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 380, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 380, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 39 + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Index and store data off chain. Minimum data size is 1 bytes, maximum is", + "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + "is called.", + "## Complexity", + "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Renew previously stored data. Parameters are the block number that contains", + "previous `store` or `renew` call and transaction index within that block.", + "Transaction index is emitted in the `Stored` or `Renewed` event.", + "Applies same fees as `store`.", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "check_proof", + "fields": [ + { + "name": "proof", + "type": 382, + "typeName": "TransactionStorageProof", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Check storage proof for block number `block_number() - StoragePeriod`.", + "If such block does not exist the proof is expected to be `None`.", + "## Complexity", + "- Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + "There's a DB read for each transaction." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 382, + "type": { + "path": [ + "sp_transaction_storage_proof", + "TransactionStorageProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "chunk", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "proof", + "type": 145, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 383, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 385, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 386, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 387, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 145, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 145, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 386, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a teyrchain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 385, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 386 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 386, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 389, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 157, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 148, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 392, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 101, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 249, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 393, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Index and store data off chain." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fill_block", + "fields": [ + { + "name": "ratio", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "trigger_defensive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 395, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 157, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 396, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 101, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 398, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 101, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 101, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 132, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 101, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 396, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 397, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 400, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 157, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 401, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new proposal to be voted on.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "init_members", + "fields": [ + { + "name": "fellows", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allies", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initialize the Alliance, onboard fellows and allies.", + "", + "The Alliance must be empty, and the call must provide some founding members.", + "", + "Must be called by the Root origin." + ] + }, + { + "name": "disband", + "fields": [ + { + "name": "witness", + "type": 402, + "typeName": "DisbandWitness", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Disband the Alliance, remove all active members and unreserve deposits.", + "", + "Witness data must be set." + ] + }, + { + "name": "set_rule", + "fields": [ + { + "name": "rule", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a new IPFS CID to the alliance rule." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make an announcement of a new IPFS CID about alliance issues." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove an announcement." + ] + }, + { + "name": "join_alliance", + "fields": [], + "index": 8, + "docs": [ + "Submit oneself for candidacy. A fixed deposit is reserved." + ] + }, + { + "name": "nominate_ally", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit", + "required from the nominator or nominee." + ] + }, + { + "name": "elevate_ally", + "fields": [ + { + "name": "ally", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Elevate an Ally to Fellow." + ] + }, + { + "name": "give_retirement_notice", + "fields": [], + "index": 11, + "docs": [ + "As a member, give a retirement notice and start a retirement period required to pass in", + "order to retire." + ] + }, + { + "name": "retire", + "fields": [], + "index": 12, + "docs": [ + "As a member, retire from the Alliance and unreserve the deposit.", + "", + "This can only be done once you have called `give_retirement_notice` and the", + "`RetirementPeriod` has passed." + ] + }, + { + "name": "kick_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Kick a member from the Alliance and slash its deposit." + ] + }, + { + "name": "add_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Add accounts or websites to the list of unscrupulous items." + ] + }, + { + "name": "remove_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Deem some items no longer unscrupulous." + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 157, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 157, + "typeName": "u32", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "abdicate_fellow_status", + "fields": [], + "index": 17, + "docs": [ + "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows", + "who do not want to leave the Alliance but do not have the capacity to participate", + "operationally for some time." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 402, + "type": { + "path": [ + "pallet_alliance", + "types", + "DisbandWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "fellow_members", + "type": 157, + "typeName": "u32", + "docs": [] + }, + { + "name": "ally_members", + "type": 157, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "pallet_alliance", + "types", + "Cid" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 404, + "typeName": "Version", + "docs": [] + }, + { + "name": "codec", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "hash", + "type": 405, + "typeName": "Multihash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "pallet_alliance", + "types", + "Version" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [ + "pallet_alliance", + "types", + "Multihash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "digest", + "type": 406, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 408 + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "pallet_alliance", + "UnscrupulousItem" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Url", + "type": 409 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AccountId", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Website", + "fields": [ + { + "name": null, + "type": 409, + "typeName": "Url", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is transferred from the member to the", + "pools account and immediately increases the pools bond.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 411, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, pool's depositor needs to have", + "at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 412, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 413, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 413, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 415, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 416, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 416, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 416, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller has a nominator or root role of the pool.", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 411, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 417, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 418, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 420, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The dispatch origin of this call must be signed by the `root` role of the pool. Pending", + "commission is paid out and added to total claimed commission`. Total pending commission", + "is reset to zero. the current." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 421, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly (i.e. by any account). If the member has", + "slash to be applied, caller may be rewarded with the part of the slash." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 411, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 419 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 419, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 49, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 422 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 422, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 148, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 392, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 101, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 249, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 424, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AddOrigin`.", + "- `who`: Account of non-member which will become a member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `PromoteOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `DemoteOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_rank", + "type": 101, + "typeName": "Rank", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `RemoveOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "aye", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + }, + { + "name": "exchange_member", + "fields": [ + { + "name": "who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_who", + "type": 166, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Exchanges a member with a new account and the same existing rank.", + "", + "- `origin`: Must be the `ExchangeOrigin`.", + "- `who`: Account of existing member of rank greater than zero to be exchanged.", + "- `new_who`: New Account of existing member of rank greater than zero to exchanged to." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 425, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "asset1", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 426, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Creates an empty liquidity pool and an associated new `lp_token` asset", + "(the id of which is returned in the `Event::PoolCreated` event).", + "", + "Once a pool is created, someone may [`Pallet::add_liquidity`] to it." + ] + }, + { + "name": "add_liquidity", + "fields": [ + { + "name": "asset1", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount1_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Provide liquidity into the pool of `asset1` and `asset2`.", + "NOTE: an optimal amount of asset1 and asset2 will be calculated and", + "might be different than the provided `amount1_desired`/`amount2_desired`", + "thus you should provide the min amount you're happy to provide.", + "Params `amount1_min`/`amount2_min` represent that.", + "`mint_to` will be sent the liquidity tokens that represent this share of the pool.", + "", + "NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity,", + "batch an atomic call with [`Pallet::add_liquidity`] and", + "[`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`]", + "calls to render the liquidity withdrawable and rectify the exchange rate.", + "", + "Once liquidity is added, someone may successfully call", + "[`Pallet::swap_exact_tokens_for_tokens`] successfully." + ] + }, + { + "name": "remove_liquidity", + "fields": [ + { + "name": "asset1", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "lp_token_burn", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be", + "burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive`", + "it's possible to control the min amount of returned tokens you're happy with." + ] + }, + { + "name": "swap_exact_tokens_for_tokens", + "fields": [ + { + "name": "path", + "type": 427, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_out_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap the exact amount of `asset1` into `asset2`.", + "`amount_out_min` param allows you to specify the min amount of the `asset2`", + "you're happy to receive.", + "", + "[`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "swap_tokens_for_exact_tokens", + "fields": [ + { + "name": "path", + "type": 427, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_in_max", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap any amount of `asset1` to get the exact amount of `asset2`.", + "`amount_in_max` param allows to specify the max amount of the `asset1`", + "you're happy to provide.", + "", + "[`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "asset1", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 426, + "typeName": "Box", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Touch an existing pool to fulfill prerequisites before providing liquidity, such as", + "ensuring that the pool's accounts are in place. It is typically useful when a pool", + "creator removes the pool's accounts and does not provide a liquidity. This action may", + "involve holding assets from the caller as a deposit for creating the pool's accounts.", + "", + "The origin must be Signed.", + "", + "- `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).", + "- `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).", + "", + "Emits `Touched` event when successful." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 426, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "union_of", + "NativeOrWithId" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "WithId", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "AssetId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 426 + } + }, + "docs": [] + } + }, + { + "id": 428, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed", + "by a call to `rebond` in the staking system.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`].", + "", + "## Details", + "", + "Can set the number of eras to check per block, and potentially other admin work.", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 429, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 430, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "emit_event", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "noop", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 431, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "pause", + "fields": [ + { + "name": "full_name", + "type": 432, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Pause a call.", + "", + "Can only be called by [`Config::PauseOrigin`].", + "Emits an [`Event::CallPaused`] event on success." + ] + }, + { + "name": "unpause", + "fields": [ + { + "name": "ident", + "type": 432, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Un-pause a call.", + "", + "Can only be called by [`Config::UnpauseOrigin`].", + "Emits an [`Event::CallUnpaused`] event on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 432, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 117, + 117 + ] + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [], + "index": 0, + "docs": [ + "Enter safe-mode permissionlessly for [`Config::EnterDuration`] blocks.", + "", + "Reserves [`Config::EnterDepositAmount`] from the caller's account.", + "Emits an [`Event::Entered`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is already entered.", + "Errors with [`Error::NotConfigured`] if the deposit amount is `None`." + ] + }, + { + "name": "force_enter", + "fields": [], + "index": 1, + "docs": [ + "Enter safe-mode by force for a per-origin configured number of blocks.", + "", + "Emits an [`Event::Entered`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is already entered.", + "", + "Can only be called by the [`Config::ForceEnterOrigin`] origin." + ] + }, + { + "name": "extend", + "fields": [], + "index": 2, + "docs": [ + "Extend the safe-mode permissionlessly for [`Config::ExtendDuration`] blocks.", + "", + "This accumulates on top of the current remaining duration.", + "Reserves [`Config::ExtendDepositAmount`] from the caller's account.", + "Emits an [`Event::Extended`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is entered.", + "Errors with [`Error::NotConfigured`] if the deposit amount is `None`.", + "", + "This may be called by any signed origin with [`Config::ExtendDepositAmount`] free", + "currency to reserve. This call can be disabled for all origins by configuring", + "[`Config::ExtendDepositAmount`] to `None`." + ] + }, + { + "name": "force_extend", + "fields": [], + "index": 3, + "docs": [ + "Extend the safe-mode by force for a per-origin configured number of blocks.", + "", + "Emits an [`Event::Extended`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is inactive.", + "", + "Can only be called by the [`Config::ForceExtendOrigin`] origin." + ] + }, + { + "name": "force_exit", + "fields": [], + "index": 4, + "docs": [ + "Exit safe-mode by force.", + "", + "Emits an [`Event::Exited`] with [`ExitReason::Force`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is inactive.", + "", + "Note: `safe-mode` will be automatically deactivated by [`Pallet::on_initialize`] hook", + "after the block height is greater than the [`EnteredUntil`] storage item.", + "Emits an [`Event::Exited`] with [`ExitReason::Timeout`] event when deactivated in the", + "hook." + ] + }, + { + "name": "force_slash_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Slash a deposit for an account that entered or extended safe-mode at a given", + "historical block.", + "", + "This can only be called while safe-mode is entered.", + "", + "Emits a [`Event::DepositSlashed`] event on success.", + "Errors with [`Error::Entered`] if safe-mode is entered.", + "", + "Can only be called by the [`Config::ForceDepositOrigin`] origin." + ] + }, + { + "name": "release_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Permissionlessly release a deposit for an account that entered safe-mode at a", + "given historical block.", + "", + "The call can be completely disabled by setting [`Config::ReleaseDelay`] to `None`.", + "This cannot be called while safe-mode is entered and not until", + "[`Config::ReleaseDelay`] blocks have passed since safe-mode was entered.", + "", + "Emits a [`Event::DepositReleased`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is entered.", + "Errors with [`Error::CannotReleaseYet`] if [`Config::ReleaseDelay`] block have not", + "passed since safe-mode was entered. Errors with [`Error::NoDeposit`] if the payee has no", + "reserved currency at the block specified." + ] + }, + { + "name": "force_release_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Force to release a deposit for an account that entered safe-mode at a given", + "historical block.", + "", + "This can be called while safe-mode is still entered.", + "", + "Emits a [`Event::DepositReleased`] event on success.", + "Errors with [`Error::Entered`] if safe-mode is entered.", + "Errors with [`Error::NoDeposit`] if the payee has no reserved currency at the", + "specified block.", + "", + "Can only be called by the [`Config::ForceDepositOrigin`] origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 434, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_cursor", + "fields": [ + { + "name": "cursor", + "type": 435, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Allows root to set a cursor to forcefully start, stop or forward the migration process.", + "", + "Should normally not be needed and is only in place as emergency measure. Note that", + "restarting the migration process in this manner will not call the", + "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event." + ] + }, + { + "name": "force_set_active_cursor", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 439, + "typeName": "Option>", + "docs": [] + }, + { + "name": "started_at", + "type": 39, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allows root to set an active cursor to forcefully start/forward the migration process.", + "", + "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the", + "`started_at` value to the next block number. Otherwise this would not be possible, since", + "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`", + "indicates that the current block number plus one should be used." + ] + }, + { + "name": "force_onboard_mbms", + "fields": [], + "index": 2, + "docs": [ + "Forces the onboarding of the migrations.", + "", + "This process happens automatically on a runtime upgrade. It is in place as an emergency", + "measurement. The cursor needs to be `None` for this to succeed." + ] + }, + { + "name": "clear_historic", + "fields": [ + { + "name": "selector", + "type": 440, + "typeName": "HistoricCleanupSelector>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clears the `Historic` set.", + "", + "`map_cursor` must be set to the last value that was returned by the", + "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a", + "way that will result in a sensible weight." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 435, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 436 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 436, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "pallet_migrations", + "MigrationCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 437 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Active", + "fields": [ + { + "name": null, + "type": 438, + "typeName": "ActiveCursor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Stuck", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [ + "pallet_migrations", + "ActiveCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 437 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 439, + "typeName": "Option", + "docs": [] + }, + { + "name": "started_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 437 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 437, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "pallet_migrations", + "HistoricCleanupSelector" + ], + "params": [ + { + "name": "Id", + "type": 117 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Specific", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wildcard", + "fields": [ + { + "name": "limit", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "previous_cursor", + "type": 442, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 117 + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "configure", + "fields": [ + { + "name": "config", + "type": 444, + "typeName": "ConfigRecordOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Configure the pallet.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `config`: The configuration for this pallet." + ] + }, + { + "name": "reserve", + "fields": [ + { + "name": "workload", + "type": 445, + "typeName": "Schedule", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Reserve a core for a workload.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `workload`: The workload which should be permanently placed on a core." + ] + }, + { + "name": "unreserve", + "fields": [ + { + "name": "item_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Cancel a reservation for a workload.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `item_index`: The index of the reservation. Usually this will also be the index of the", + " core on which the reservation has been scheduled. However, it is possible that if", + " other cores are reserved or unreserved in the same sale rotation that they won't", + " correspond, so it's better to look up the core properly in the `Reservations` storage." + ] + }, + { + "name": "set_lease", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reserve a core for a single task workload for a limited period.", + "", + "In the interlude and sale period where Bulk Coretime is sold for the period immediately", + "after `until`, then the same workload may be renewed.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `task`: The workload which should be placed on a core.", + "- `until`: The timeslice now earlier than which `task` should be placed as a workload on", + " a core." + ] + }, + { + "name": "start_sales", + "fields": [ + { + "name": "end_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "extra_cores", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Begin the Bulk Coretime sales rotation.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `end_price`: The price after the leadin period of Bulk Coretime in the first sale.", + "- `extra_cores`: Number of extra cores that should be requested on top of the cores", + " required for `Reservations` and `Leases`.", + "", + "This will call [`Self::request_core_count`] internally to set the correct core count on", + "the relay chain." + ] + }, + { + "name": "purchase", + "fields": [ + { + "name": "price_limit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Purchase Bulk Coretime in the ongoing Sale.", + "", + "- `origin`: Must be a Signed origin with at least enough funds to pay the current price", + " of Bulk Coretime.", + "- `price_limit`: An amount no more than which should be paid." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Renew Bulk Coretime in the ongoing Sale or its prior Interlude Period.", + "", + "- `origin`: Must be a Signed origin with at least enough funds to pay the renewal price", + " of the core.", + "- `core`: The core which should be renewed." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Transfer a Bulk Coretime Region to a new owner.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region whose ownership should change.", + "- `new_owner`: The new owner for the Region." + ] + }, + { + "name": "partition", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "pivot", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Split a Bulk Coretime Region into two non-overlapping Regions at a particular time into", + "the region.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be partitioned into two non-overlapping Regions.", + "- `pivot`: The offset in time into the Region at which to make the split." + ] + }, + { + "name": "interlace", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "pivot", + "type": 447, + "typeName": "CoreMask", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Split a Bulk Coretime Region into two wholly-overlapping Regions with complementary", + "interlace masks which together make up the original Region's interlace mask.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should become two interlaced Regions of incomplete", + " regularity.", + "- `pivot`: The interlace mask of one of the two new regions (the other is its partial", + " complement)." + ] + }, + { + "name": "assign", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "finality", + "type": 451, + "typeName": "Finality", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Assign a Bulk Coretime Region to a task.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be assigned to the task.", + "- `task`: The task to assign.", + "- `finality`: Indication of whether this assignment is final (in which case it may be", + " eligible for renewal) or provisional (in which case it may be manipulated and/or", + "reassigned at a later stage)." + ] + }, + { + "name": "pool", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "finality", + "type": 451, + "typeName": "Finality", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Place a Bulk Coretime Region into the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be assigned to the Pool.", + "- `payee`: The account which is able to collect any revenue due for the usage of this", + " Coretime." + ] + }, + { + "name": "claim_revenue", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "max_timeslices", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claim the revenue owed from inclusion in the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin.", + "- `region_id`: The Region which was assigned to the Pool.", + "- `max_timeslices`: The maximum number of timeslices which should be processed. This", + " must be greater than 0. This may affect the weight of the call but should be ideally", + " made equivalent to the length of the Region `region_id`. If less, further dispatches", + " will be required with the same `region_id` to claim revenue for the remainder." + ] + }, + { + "name": "purchase_credit", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "RelayAccountIdOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Purchase credit for use in the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin able to pay at least `amount`.", + "- `amount`: The amount of credit to purchase.", + "- `beneficiary`: The account on the Relay-chain which controls the credit (generally", + " this will be the collator's hot wallet)." + ] + }, + { + "name": "drop_region", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Drop an expired Region from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The Region which has expired." + ] + }, + { + "name": "drop_contribution", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Drop an expired Instantaneous Pool Contribution record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The Region identifying the Pool Contribution which has expired." + ] + }, + { + "name": "drop_history", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Drop an expired Instantaneous Pool History record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The time of the Pool History record which has expired." + ] + }, + { + "name": "drop_renewal", + "fields": [ + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Drop an expired Allowed Renewal record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `core`: The core to which the expired renewal refers.", + "- `when`: The timeslice to which the expired renewal refers. This must have passed." + ] + }, + { + "name": "request_core_count", + "fields": [ + { + "name": "core_count", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Request a change to the number of cores available for scheduling work.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `core_count`: The desired number of cores to be made available." + ] + }, + { + "name": "notify_core_count", + "fields": [ + { + "name": "core_count", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "notify_revenue", + "fields": [ + { + "name": "revenue", + "type": 452, + "typeName": "OnDemandRevenueRecordOf", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "swap_leases", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "other", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 444, + "type": { + "path": [ + "pallet_broker", + "types", + "ConfigRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "RelayBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "advance_notice", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "interlude_length", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "region_length", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "ideal_bulk_proportion", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "limit_cores_offered", + "type": 132, + "typeName": "Option", + "docs": [] + }, + { + "name": "renewal_bump", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "contribution_timeout", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 446 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 449, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [ + "pallet_broker", + "types", + "ScheduleItem" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "mask", + "type": 447, + "typeName": "CoreMask", + "docs": [] + }, + { + "name": "assignment", + "type": 448, + "typeName": "CoreAssignment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [ + "pallet_broker", + "core_mask", + "CoreMask" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 289, + "typeName": "[u8; 10]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [ + "pallet_broker", + "coretime_interface", + "CoreAssignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Idle", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Pool", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Task", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 446 + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [ + "pallet_broker", + "types", + "RegionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "mask", + "type": 447, + "typeName": "CoreMask", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "pallet_broker", + "types", + "Finality" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Provisional", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Final", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "pallet_broker", + "types", + "OnDemandRevenueRecord" + ], + "params": [ + { + "name": "RelayBlockNumber", + "type": 4 + }, + { + "name": "RelayBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "RelayBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 453, + "type": { + "path": [ + "pallet_mixnet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "registration", + "type": 454, + "typeName": "RegistrationFor", + "docs": [] + }, + { + "name": "signature", + "type": 458, + "typeName": "AuthoritySignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a mixnode for the following session." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 454, + "type": { + "path": [ + "pallet_mixnet", + "Registration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "BoundedMixnode", + "type": 455 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthorityIndex", + "docs": [] + }, + { + "name": "mixnode", + "type": 455, + "typeName": "BoundedMixnode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "pallet_mixnet", + "BoundedMixnode" + ], + "params": [ + { + "name": "ExternalAddresses", + "type": 456 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "kx_public", + "type": 1, + "typeName": "KxPublic", + "docs": [] + }, + { + "name": "peer_id", + "type": 1, + "typeName": "PeerId", + "docs": [] + }, + { + "name": "external_addresses", + "type": 456, + "typeName": "ExternalAddresses", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 113 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 457, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 113 + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [ + "sp_mixnet", + "types", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 261, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 460, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 460, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 461, + "typeName": "dynamic_params::storage::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "BaseDeposit", + "docs": [] + }, + { + "name": null, + "type": 236, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 463, + "typeName": "ByteDeposit", + "docs": [] + }, + { + "name": null, + "type": 236, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "BaseDeposit" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ByteDeposit" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "migrate_to_new_account", + "fields": [ + { + "name": "asset1", + "type": 426, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 426, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Migrates an existing pool to a new account ID derivation method for a given asset pair.", + "If the migration is successful, transaction fees are refunded to the caller.", + "", + "Must be signed." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 465, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "content_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stored data off chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 468, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DefensiveTestCall", + "fields": [], + "index": 0, + "docs": [ + "Event dispatched when the trigger_defensive extrinsic is called." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 469, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 471, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 471, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 472 + }, + { + "name": "E", + "type": 474 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 472, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 474, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 473, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 472 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 472, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 476, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewRuleSet", + "fields": [ + { + "name": "rule", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new rule has been set." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new announcement has been proposed." + ] + }, + { + "name": "AnnouncementRemoved", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An on-chain announcement has been removed." + ] + }, + { + "name": "MembersInitialized", + "fields": [ + { + "name": "fellows", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allies", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some accounts have been initialized as members (fellows/allies)." + ] + }, + { + "name": "NewAllyJoined", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 236, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been added as an Ally and reserved its deposit." + ] + }, + { + "name": "AllyElevated", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An ally has been elevated to Fellow." + ] + }, + { + "name": "MemberRetirementPeriodStarted", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A member gave retirement notice and their retirement period started." + ] + }, + { + "name": "MemberRetired", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unreserved", + "type": 236, + "typeName": "Option>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has retired with its deposit unreserved." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "slashed", + "type": 236, + "typeName": "Option>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A member has been kicked out with its deposit slashed." + ] + }, + { + "name": "UnscrupulousItemAdded", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Accounts or websites have been added into the list of unscrupulous items." + ] + }, + { + "name": "UnscrupulousItemRemoved", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts or websites have been removed from the list of unscrupulous items." + ] + }, + { + "name": "AllianceDisbanded", + "fields": [ + { + "name": "fellow_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ally_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "unreserved", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Alliance disbanded. Includes number deleted members and unreserved deposits." + ] + }, + { + "name": "FellowAbdicated", + "fields": [ + { + "name": "fellow", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Fellow abdicated their voting rights. They are now an Ally." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 477, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 412, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked)." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 418, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 420, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 421, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 478, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 101, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 101, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 479, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 479, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 479, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 479, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 479, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 479, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 479, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex", + "docs": [] + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 101, + "typeName": "Rank", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 101, + "typeName": "Rank", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 481, + "typeName": "VoteRecord", + "docs": [] + }, + { + "name": "tally", + "type": 479, + "typeName": "TallyOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + }, + { + "name": "MemberExchanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The member `who` had their `AccountId` changed to `new_who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nay", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 483, + "typeName": "T::PoolId", + "docs": [ + "The pool id associated with the pool. Note that the order of the assets may not be", + "the same as the order specified in the create pool extrinsic." + ] + }, + { + "name": "pool_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account ID of the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the liquidity tokens that will be minted when assets are added to this", + "pool." + ] + } + ], + "index": 0, + "docs": [ + "A successful call of the `CreatePool` extrinsic will create this event." + ] + }, + { + "name": "LiquidityAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity was taken from." + ] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were minted to." + ] + }, + { + "name": "pool_id", + "type": 483, + "typeName": "T::PoolId", + "docs": [ + "The pool id of the pool that the liquidity was added to." + ] + }, + { + "name": "amount1_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was added to the pool." + ] + }, + { + "name": "amount2_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was added to the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was minted." + ] + }, + { + "name": "lp_token_minted", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were minted of that id." + ] + } + ], + "index": 1, + "docs": [ + "A successful call of the `AddLiquidity` extrinsic will create this event." + ] + }, + { + "name": "LiquidityRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were burned from." + ] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "pool_id", + "type": 483, + "typeName": "T::PoolId", + "docs": [ + "The pool id that the liquidity was removed from." + ] + }, + { + "name": "amount1", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was removed from the pool." + ] + }, + { + "name": "amount2", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was removed from the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was burned." + ] + }, + { + "name": "lp_token_burned", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were burned of that id." + ] + }, + { + "name": "withdrawal_fee", + "type": 484, + "typeName": "Permill", + "docs": [ + "Liquidity withdrawal fee (%)." + ] + } + ], + "index": 2, + "docs": [ + "A successful call of the `RemoveLiquidity` extrinsic will create this event." + ] + }, + { + "name": "SwapExecuted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Which account was the instigator of the swap." + ] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 485, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 3, + "docs": [ + "Assets have been converted from one to another. Both `SwapExactTokenForToken`", + "and `SwapTokenForExactToken` will generate this event." + ] + }, + { + "name": "SwapCreditExecuted", + "fields": [ + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 485, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 4, + "docs": [ + "Assets have been converted from one to another." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "pool_id", + "type": 483, + "typeName": "T::PoolId", + "docs": [ + "The ID of the pool." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account initiating the touch." + ] + } + ], + "index": 5, + "docs": [ + "Pool has been touched in order to fulfill operational requirements." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 483, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 426, + 426 + ] + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 486 + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 426, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 32, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 489, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 489, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 490, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TestEvent", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 491, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallPaused", + "fields": [ + { + "name": "full_name", + "type": 432, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "This pallet, or a specific call is now paused." + ] + }, + { + "name": "CallUnpaused", + "fields": [ + { + "name": "full_name", + "type": 432, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "This pallet, or a specific call is now unpaused." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 492, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Entered", + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The safe-mode was entered until inclusively this block." + ] + }, + { + "name": "Extended", + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The safe-mode was extended until inclusively this block." + ] + }, + { + "name": "Exited", + "fields": [ + { + "name": "reason", + "type": 493, + "typeName": "ExitReason", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exited the safe-mode for a specific reason." + ] + }, + { + "name": "DepositPlaced", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account reserved funds for either entering or extending the safe-mode." + ] + }, + { + "name": "DepositReleased", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account had a reserve released that was reserved." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An account had reserve slashed that was reserved." + ] + }, + { + "name": "CannotDeposit", + "fields": [], + "index": 6, + "docs": [ + "Could not hold funds for entering or extending the safe-mode.", + "", + "This error comes from the underlying `Currency`." + ] + }, + { + "name": "CannotRelease", + "fields": [], + "index": 7, + "docs": [ + "Could not release funds for entering or extending the safe-mode.", + "", + "This error comes from the underlying `Currency`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 493, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "ExitReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Timeout", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Force", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [ + "pallet_statement", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewStatement", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "statement", + "type": 495, + "typeName": "Statement", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new statement is submitted" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 495, + "type": { + "path": [ + "sp_statement_store", + "Statement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "proof", + "type": 496, + "typeName": "Option", + "docs": [] + }, + { + "name": "decryption_key", + "type": 95, + "typeName": "Option", + "docs": [] + }, + { + "name": "channel", + "type": 95, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "num_topics", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "topics", + "type": 498, + "typeName": "[Topic; MAX_TOPICS]", + "docs": [] + }, + { + "name": "data", + "type": 442, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 497 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 497, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [ + "sp_statement_store", + "Proof" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Sr25519", + "fields": [ + { + "name": "signature", + "type": 261, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "signer", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Ed25519", + "fields": [ + { + "name": "signature", + "type": 261, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "signer", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Secp256k1Ecdsa", + "fields": [ + { + "name": "signature", + "type": 316, + "typeName": "[u8; 65]", + "docs": [] + }, + { + "name": "signer", + "type": 246, + "typeName": "[u8; 33]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "OnChain", + "fields": [ + { + "name": "who", + "type": 1, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "BlockHash", + "docs": [] + }, + { + "name": "event_index", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UpgradeStarted", + "fields": [ + { + "name": "migrations", + "type": 4, + "typeName": "u32", + "docs": [ + "The number of migrations that this upgrade contains.", + "", + "This can be used to design a progress indicator in combination with counting the", + "`MigrationCompleted` and `MigrationSkipped` events." + ] + } + ], + "index": 0, + "docs": [ + "A Runtime upgrade started.", + "", + "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`." + ] + }, + { + "name": "UpgradeCompleted", + "fields": [], + "index": 1, + "docs": [ + "The current runtime upgrade completed.", + "", + "This implies that all of its migrations completed successfully as well." + ] + }, + { + "name": "UpgradeFailed", + "fields": [], + "index": 2, + "docs": [ + "Runtime upgrade failed.", + "", + "This is very bad and will require governance intervention." + ] + }, + { + "name": "MigrationSkipped", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the skipped migration within the [`Config::Migrations`] list." + ] + } + ], + "index": 3, + "docs": [ + "A migration was skipped since it was already executed in the past." + ] + }, + { + "name": "MigrationAdvanced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 4, + "docs": [ + "A migration progressed." + ] + }, + { + "name": "MigrationCompleted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 5, + "docs": [ + "A Migration completed." + ] + }, + { + "name": "MigrationFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 6, + "docs": [ + "A Migration failed.", + "", + "This implies that the whole upgrade failed and governance intervention is required." + ] + }, + { + "name": "HistoricCleared", + "fields": [ + { + "name": "next_cursor", + "type": 442, + "typeName": "Option>", + "docs": [ + "Should be passed to `clear_historic` in a successive call." + ] + } + ], + "index": 7, + "docs": [ + "The set of historical migrations has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Purchased", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The identity of the purchaser." + ] + }, + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The identity of the Region." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price paid for this Region." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 0, + "docs": [ + "A Region of Bulk Coretime has been purchased." + ] + }, + { + "name": "Renewable", + "fields": [ + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The core whose workload can be renewed." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price at which the workload can be renewed." + ] + }, + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The time at which the workload would recommence of this renewal. The call to renew", + "cannot happen before the beginning of the interlude prior to the sale for regions", + "which begin at this time." + ] + }, + { + "name": "workload", + "type": 445, + "typeName": "Schedule", + "docs": [ + "The actual workload which can be renewed." + ] + } + ], + "index": 1, + "docs": [ + "The workload of a core has become renewable." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The identity of the renewer." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price paid for this renewal." + ] + }, + { + "name": "old_core", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The index of the core on which the `workload` was previously scheduled." + ] + }, + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The index of the core on which the renewed `workload` has been scheduled." + ] + }, + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The time at which the `workload` will begin on the `core`." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The number of timeslices for which this `workload` is newly scheduled." + ] + }, + { + "name": "workload", + "type": 445, + "typeName": "Schedule", + "docs": [ + "The workload which was renewed." + ] + } + ], + "index": 2, + "docs": [ + "A workload has been renewed." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region which has been transferred." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + }, + { + "name": "old_owner", + "type": 43, + "typeName": "Option", + "docs": [ + "The old owner of the Region." + ] + }, + { + "name": "owner", + "type": 43, + "typeName": "Option", + "docs": [ + "The new owner of the Region." + ] + } + ], + "index": 3, + "docs": [ + "Ownership of a Region has been transferred." + ] + }, + { + "name": "Partitioned", + "fields": [ + { + "name": "old_region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region which was split." + ] + }, + { + "name": "new_region_ids", + "type": 501, + "typeName": "(RegionId, RegionId)", + "docs": [ + "The new Regions into which it became." + ] + } + ], + "index": 4, + "docs": [ + "A Region has been split into two non-overlapping Regions." + ] + }, + { + "name": "Interlaced", + "fields": [ + { + "name": "old_region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region which was interlaced." + ] + }, + { + "name": "new_region_ids", + "type": 501, + "typeName": "(RegionId, RegionId)", + "docs": [ + "The new Regions into which it became." + ] + } + ], + "index": 5, + "docs": [ + "A Region has been converted into two overlapping Regions each of lesser regularity." + ] + }, + { + "name": "Assigned", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region which was assigned." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the assignment." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which the Region was assigned." + ] + } + ], + "index": 6, + "docs": [ + "A Region has been assigned to a particular task." + ] + }, + { + "name": "Pooled", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region which was added to the Instantaneous Coretime Pool." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 7, + "docs": [ + "A Region has been added to the Instantaneous Coretime Pool." + ] + }, + { + "name": "CoreCountRequested", + "fields": [ + { + "name": "core_count", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The number of cores requested." + ] + } + ], + "index": 8, + "docs": [ + "A new number of cores has been requested." + ] + }, + { + "name": "CoreCountChanged", + "fields": [ + { + "name": "core_count", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The new number of cores available for scheduling." + ] + } + ], + "index": 9, + "docs": [ + "The number of cores available for scheduling has changed." + ] + }, + { + "name": "ReservationMade", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the reservation." + ] + }, + { + "name": "workload", + "type": 445, + "typeName": "Schedule", + "docs": [ + "The workload of the reservation." + ] + } + ], + "index": 10, + "docs": [ + "There is a new reservation for a workload." + ] + }, + { + "name": "ReservationCancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the reservation which was cancelled." + ] + }, + { + "name": "workload", + "type": 445, + "typeName": "Schedule", + "docs": [ + "The workload of the now cancelled reservation." + ] + } + ], + "index": 11, + "docs": [ + "A reservation for a workload has been cancelled." + ] + }, + { + "name": "SaleInitialized", + "fields": [ + { + "name": "sale_start", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The local block number at which the sale will/did start." + ] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The length in blocks of the Leadin Period (where the price is decreasing)." + ] + }, + { + "name": "start_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price of Bulk Coretime at the beginning of the Leadin Period." + ] + }, + { + "name": "end_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price of Bulk Coretime after the Leadin Period." + ] + }, + { + "name": "region_begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The first timeslice of the Regions which are being sold in this sale." + ] + }, + { + "name": "region_end", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice on which the Regions which are being sold in the sale terminate.", + "(i.e. One after the last timeslice which the Regions control.)" + ] + }, + { + "name": "ideal_cores_sold", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The number of cores we want to sell, ideally." + ] + }, + { + "name": "cores_offered", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "Number of cores which are/have been offered for sale." + ] + } + ], + "index": 12, + "docs": [ + "A new sale has been initialized." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core will be assigned." + ] + }, + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice contained in the sale period after which this lease will", + "self-terminate (and therefore the earliest timeslice at which the lease may no", + "longer apply)." + ] + } + ], + "index": 13, + "docs": [ + "A new lease has been created." + ] + }, + { + "name": "LeaseEnding", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core was assigned." + ] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice at which the task will no longer be scheduled." + ] + } + ], + "index": 14, + "docs": [ + "A lease is about to end." + ] + }, + { + "name": "SalesStarted", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The nominal price of an Region of Bulk Coretime." + ] + }, + { + "name": "core_count", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The maximum number of cores which this pallet will attempt to assign." + ] + } + ], + "index": 15, + "docs": [ + "The sale rotation has been started and a new sale is imminent." + ] + }, + { + "name": "RevenueClaimBegun", + "fields": [ + { + "name": "region", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The region to be claimed for." + ] + }, + { + "name": "max_timeslices", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The maximum number of timeslices which should be searched for claimed." + ] + } + ], + "index": 16, + "docs": [ + "The act of claiming revenue has begun." + ] + }, + { + "name": "RevenueClaimItem", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose claim is being processed." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount which was claimed at this timeslice." + ] + } + ], + "index": 17, + "docs": [ + "A particular timeslice has a non-zero claim." + ] + }, + { + "name": "RevenueClaimPaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account to whom revenue has been paid." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The total amount of revenue claimed and paid." + ] + }, + { + "name": "next", + "type": 502, + "typeName": "Option", + "docs": [ + "The next region which should be claimed for the continuation of this contribution." + ] + } + ], + "index": 18, + "docs": [ + "A revenue claim has (possibly only in part) been paid." + ] + }, + { + "name": "CreditPurchased", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account which purchased the credit." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "RelayAccountIdOf", + "docs": [ + "The Relay-chain account to which the credit will be made." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of credit purchased." + ] + } + ], + "index": 19, + "docs": [ + "Some Instantaneous Coretime Pool credit has been purchased." + ] + }, + { + "name": "RegionDropped", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region which no longer exists." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 20, + "docs": [ + "A Region has been dropped due to being out of date." + ] + }, + { + "name": "ContributionDropped", + "fields": [ + { + "name": "region_id", + "type": 450, + "typeName": "RegionId", + "docs": [ + "The Region whose contribution is no longer exists." + ] + } + ], + "index": 21, + "docs": [ + "Some historical Instantaneous Core Pool contribution record has been dropped." + ] + }, + { + "name": "HistoryInitialized", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history has been initialized." + ] + }, + { + "name": "private_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [ + "The amount of privately contributed Coretime to the Instantaneous Coretime Pool." + ] + }, + { + "name": "system_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [ + "The amount of Coretime contributed to the Instantaneous Coretime Pool by the", + "Pezkuwi System." + ] + } + ], + "index": 22, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been initialized." + ] + }, + { + "name": "HistoryDropped", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is no longer available." + ] + }, + { + "name": "revenue", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue the system has taken." + ] + } + ], + "index": 23, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been dropped." + ] + }, + { + "name": "HistoryIgnored", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is was ignored." + ] + }, + { + "name": "revenue", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue which was ignored." + ] + } + ], + "index": 24, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been ignored because the", + "timeslice was already known. Governance may need to intervene." + ] + }, + { + "name": "ClaimsReady", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is available." + ] + }, + { + "name": "system_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue the Pezkuwi System has already taken." + ] + }, + { + "name": "private_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The total amount of revenue remaining to be claimed." + ] + } + ], + "index": 25, + "docs": [ + "Some historical Instantaneous Core Pool Revenue is ready for payout claims." + ] + }, + { + "name": "CoreAssigned", + "fields": [ + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The index of the Core which has been assigned." + ] + }, + { + "name": "when", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The Relay-chain block at which this assignment should take effect." + ] + }, + { + "name": "assignment", + "type": 503, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [ + "The workload to be done on the Core." + ] + } + ], + "index": 26, + "docs": [ + "A Core has been assigned to one or more tasks and/or the Pool on the Relay-chain." + ] + }, + { + "name": "PotentialRenewalDropped", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose renewal is no longer available." + ] + }, + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [ + "The core whose workload is no longer available to be renewed for `when`." + ] + } + ], + "index": 27, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been dropped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 501, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 450, + 450 + ] + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 450 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 450, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 504 + } + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 448, + 101 + ] + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 506, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 508, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 508, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 506, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 507, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 507, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "BaseDeposit", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 463, + "typeName": "ByteDeposit", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 508, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 509 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 509, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 510, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 511, + "type": { + "path": [ + "pallet_skip_feeless_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FeeSkipped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee was skipped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 512, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MigratedToNewAccount", + "fields": [ + { + "name": "pool_id", + "type": 483, + "typeName": "T::PoolId", + "docs": [ + "Pool's ID." + ] + }, + { + "name": "prior_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Pool's prior account ID." + ] + }, + { + "name": "new_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Pool's new account ID." + ] + } + ], + "index": 0, + "docs": [ + "Indicates that a pool has been migrated to the new account ID." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 513, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 94 + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 157, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 516, + "typeName": "sp_runtime::RuntimeString", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 518, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 519, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 520 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 520, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 520, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 520, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 520, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 473, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 473, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 473, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 521, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 522, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 522, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 523, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 516, + "typeName": "RuntimeString", + "docs": [] + }, + { + "name": "impl_name", + "type": 516, + "typeName": "RuntimeString", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 525, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "state_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 525, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 526 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 526, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 527 + } + }, + "docs": [] + } + }, + { + "id": 527, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 287, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 530, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 531 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 532, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 158, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 531 + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 534, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 536 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 536, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 537, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 540, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 159, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 538, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 261, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 159, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 159, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 538, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 162, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 163, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 543 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 543, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 544, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 543 + } + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 546, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 548, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 549 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 551, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 549, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 287, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 550, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 550, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 549 + } + }, + "docs": [] + } + }, + { + "id": 552, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 553 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 554, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 287 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 287, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 553 + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 556 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 565, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 557 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 557, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 558, + "typeName": "pallet_contracts::HoldReason", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 559, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 560, + "typeName": "pallet_nis::HoldReason", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 561, + "typeName": "pallet_nft_fractionalization::HoldReason", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 562, + "typeName": "pallet_transaction_storage::HoldReason", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 563, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 564, + "typeName": "pallet_safe_mode::HoldReason", + "docs": [] + } + ], + "index": 70, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CodeUploadDepositReserve", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StorageDepositReserve", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_nis", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NftReceipt", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 561, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fractionalized", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StorageFeeHold", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "EnterOrExtend", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 556 + } + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 567 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 570, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 568 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 568, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 568, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 569, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 62, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 567 + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 572, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 574, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 226 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 225, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DataProvider", + "type": 576 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 578, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 577 + ] + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 576 + } + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 580 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 581, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 44, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 580 + } + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 172 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 171, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Submission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 584, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 238, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 585, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 577, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 588, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 81, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 81, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 81, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 82, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 594, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 595, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 596 + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 598 + } + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 62, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 49, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 28, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 29, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 30, + "docs": [ + "Operation not allowed for virtual stakers." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 603, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 604 + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 242 + ] + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 606, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 608, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 609 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 610, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 140, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 609 + } + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 612, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 612, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 614, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finished", + "fields": [ + { + "name": "approved", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "Proposal", + "docs": [] + }, + { + "name": "threshold", + "type": 55, + "typeName": "VoteThreshold", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "tally", + "type": 615, + "typeName": "Tally", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [ + "pallet_democracy", + "types", + "Tally" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "turnout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Direct", + "fields": [ + { + "name": "votes", + "type": 617, + "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 620, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 621, + "typeName": "PriorLock", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 248, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 620, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 621, + "typeName": "PriorLock", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 618 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 619, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 56 + ] + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 618 + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [ + "pallet_democracy", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [ + "pallet_democracy", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 140, + 55 + ] + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 612 + ] + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValueLow", + "fields": [], + "index": 0, + "docs": [ + "Value too low" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 1, + "docs": [ + "Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "fields": [], + "index": 2, + "docs": [ + "Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 3, + "docs": [ + "Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "fields": [], + "index": 4, + "docs": [ + "Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "fields": [], + "index": 5, + "docs": [ + "Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 6, + "docs": [ + "Invalid hash" + ] + }, + { + "name": "NoProposal", + "fields": [], + "index": 7, + "docs": [ + "No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "fields": [], + "index": 8, + "docs": [ + "Identity may not veto a proposal twice" + ] + }, + { + "name": "ReferendumInvalid", + "fields": [], + "index": 9, + "docs": [ + "Vote given for invalid referendum" + ] + }, + { + "name": "NoneWaiting", + "fields": [], + "index": 10, + "docs": [ + "No proposals waiting" + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 11, + "docs": [ + "The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 12, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 13, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 14, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 15, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "fields": [], + "index": 16, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "fields": [], + "index": 17, + "docs": [ + "The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 18, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "fields": [], + "index": 19, + "docs": [ + "Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 20, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 21, + "docs": [ + "Maximum number of items reached." + ] + }, + { + "name": "VotingPeriodLow", + "fields": [], + "index": 22, + "docs": [ + "Voting period too low" + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 23, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 625, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 327, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [ + "pallet_collective", + "Votes" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "ayes", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "nays", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 628, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 327, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 630, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 631 + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "pallet_elections_phragmen", + "SeatHolder" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "pallet_elections_phragmen", + "Voter" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnableToVote", + "fields": [], + "index": 0, + "docs": [ + "Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 1, + "docs": [ + "Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "fields": [], + "index": 2, + "docs": [ + "Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "fields": [], + "index": 3, + "docs": [ + "Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 4, + "docs": [ + "Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "fields": [], + "index": 5, + "docs": [ + "Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "fields": [], + "index": 6, + "docs": [ + "Must be a voter." + ] + }, + { + "name": "DuplicatedCandidate", + "fields": [], + "index": 7, + "docs": [ + "Duplicated candidate submission." + ] + }, + { + "name": "TooManyCandidates", + "fields": [], + "index": 8, + "docs": [ + "Too many candidates have been created." + ] + }, + { + "name": "MemberSubmit", + "fields": [], + "index": 9, + "docs": [ + "Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "fields": [], + "index": 10, + "docs": [ + "Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "fields": [], + "index": 11, + "docs": [ + "Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 12, + "docs": [ + "Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "fields": [], + "index": 13, + "docs": [ + "The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "fields": [], + "index": 14, + "docs": [ + "The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "fields": [], + "index": 15, + "docs": [ + "The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "fields": [], + "index": 16, + "docs": [ + "Prediction regarding replacement after member removal is wrong." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 634, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Not a member." + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 2, + "docs": [ + "Too many members." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 636, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 638, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 39, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 67 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 66, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 640, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 4 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 33 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 4, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 643, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 33 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 33, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 287, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 646, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 647, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "CodeInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf", + "docs": [] + }, + { + "name": "deposit", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "refcount", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "determinism", + "type": 270, + "typeName": "Determinism", + "docs": [] + }, + { + "name": "code_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "pallet_contracts", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 113, + "typeName": "TrieId", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "delegate_dependencies", + "type": 650, + "typeName": "BoundedBTreeMap, BalanceOf, T::\nMaxDelegateDependencies>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 13 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 651, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 13 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 652, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 653 + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DeletionQueueManager" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "insert_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "delete_counter", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Schedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "limits", + "type": 657, + "typeName": "Limits", + "docs": [] + }, + { + "name": "instruction_weights", + "type": 658, + "typeName": "InstructionWeights", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 657, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Limits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "event_topics", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "memory_pages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "subject_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "payload_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "runtime_memory", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "InstructionWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [ + "pallet_contracts", + "Environment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_id", + "type": 660, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "balance", + "type": 661, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "hash", + "type": 662, + "typeName": "EnvironmentType<::Hash>", + "docs": [] + }, + { + "name": "hasher", + "type": 663, + "typeName": "EnvironmentType<::Hashing>", + "docs": [] + }, + { + "name": "timestamp", + "type": 664, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "block_number", + "type": 665, + "typeName": "EnvironmentType>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 465 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_contracts", + "ApiVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 101, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSchedule", + "fields": [], + "index": 0, + "docs": [ + "Invalid schedule supplied, e.g. with zero weight of a basic operation." + ] + }, + { + "name": "InvalidCallFlags", + "fields": [], + "index": 1, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "fields": [], + "index": 2, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "fields": [], + "index": 3, + "docs": [ + "The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "TransferFailed", + "fields": [], + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "fields": [], + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "fields": [], + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 7, + "docs": [ + "The code supplied to `instantiate_with_code` exceeds the limit specified in the", + "current schedule." + ] + }, + { + "name": "CodeNotFound", + "fields": [], + "index": 8, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "CodeInfoNotFound", + "fields": [], + "index": 9, + "docs": [ + "No code info could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "fields": [], + "index": 10, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "fields": [], + "index": 11, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "fields": [], + "index": 12, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "fields": [], + "index": 13, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "fields": [], + "index": 14, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "fields": [], + "index": 15, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "RandomSubjectTooLong", + "fields": [], + "index": 16, + "docs": [ + "The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "fields": [], + "index": 17, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "NoChainExtension", + "fields": [], + "index": 18, + "docs": [ + "The chain does not provide a chain extension. Calling the chain extension results", + "in this error. Note that this usually shouldn't happen as deploying such contracts", + "is rejected." + ] + }, + { + "name": "XCMDecodeFailed", + "fields": [], + "index": 19, + "docs": [ + "Failed to decode the XCM program." + ] + }, + { + "name": "DuplicateContract", + "fields": [], + "index": 20, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "fields": [], + "index": 21, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "fields": [], + "index": 22, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant.", + "The only other cause is that a call from a contract into the runtime tried to call back", + "into `pallet-contracts`. This would make the whole pallet reentrant with regard to", + "contract code execution which is not supported." + ] + }, + { + "name": "StateChangeDenied", + "fields": [], + "index": 23, + "docs": [ + "A contract attempted to invoke a state modifying API while being in read-only mode." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "fields": [], + "index": 24, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "fields": [], + "index": 25, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "fields": [], + "index": 26, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "fields": [], + "index": 27, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "fields": [], + "index": 28, + "docs": [ + "The contract's code was found to be invalid during validation.", + "", + "The most likely cause of this is that an API was used which is not supported by the", + "node. This happens if an older node is used with a new version of ink!. Try updating", + "your node to the newest available version.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::contracts=debug`." + ] + }, + { + "name": "Indeterministic", + "fields": [], + "index": 29, + "docs": [ + "An indeterministic code was used in a context where this is not permitted." + ] + }, + { + "name": "MigrationInProgress", + "fields": [], + "index": 30, + "docs": [ + "A pending migration needs to complete before the extrinsic can be called." + ] + }, + { + "name": "NoMigrationPerformed", + "fields": [], + "index": 31, + "docs": [ + "Migrate dispatch call was attempted but no migration was performed." + ] + }, + { + "name": "MaxDelegateDependenciesReached", + "fields": [], + "index": 32, + "docs": [ + "The contract has reached its maximum number of delegate dependencies." + ] + }, + { + "name": "DelegateDependencyNotFound", + "fields": [], + "index": 33, + "docs": [ + "The dependency was not found in the contract's delegate dependencies." + ] + }, + { + "name": "DelegateDependencyAlreadyExists", + "fields": [], + "index": 34, + "docs": [ + "The contract already depends on the given delegate dependency." + ] + }, + { + "name": "CannotAddSelfAsDelegateDependency", + "fields": [], + "index": 35, + "docs": [ + "Can not add a delegate dependency to the code hash of the contract itself." + ] + }, + { + "name": "OutOfTransientStorage", + "fields": [], + "index": 36, + "docs": [ + "Can not add more data to transient storage." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RequireSudo", + "fields": [], + "index": 0, + "docs": [ + "Sender must be the Sudo account." + ] + } + ] + } + }, + "docs": [ + "Error for the Sudo pallet." + ] + } + }, + { + "id": 669, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 77 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 670, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 77 + } + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKey", + "fields": [], + "index": 0, + "docs": [ + "Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "fields": [], + "index": 1, + "docs": [ + "Duplicated heartbeat." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 672, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 243 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 673, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 243 + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 79 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 79, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 85, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 327, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 679, + 683 + ] + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "IdentityInfo", + "type": 276 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 680, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "info", + "type": 276, + "typeName": "IdentityInfo", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 681 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 682, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 681, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 313 + ] + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 681 + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 87 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 87, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 685 + ] + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 687 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 689, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 688 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 688, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "IdField", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fields", + "type": 12, + "typeName": "IdField", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 687 + } + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [ + "pallet_identity", + "types", + "AuthorityProperties" + ], + "params": [ + { + "name": "Suffix", + "type": 691 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "suffix", + "type": 691, + "typeName": "Suffix", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "Allocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "fields": [], + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "fields": [], + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "fields": [], + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "fields": [], + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "fields": [], + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "fields": [], + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "fields": [], + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "fields": [], + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "fields": [], + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyRegistrars", + "fields": [], + "index": 11, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 12, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "fields": [], + "index": 13, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "fields": [], + "index": 14, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "fields": [], + "index": 15, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "fields": [], + "index": 16, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + }, + { + "name": "InvalidSuffix", + "fields": [], + "index": 17, + "docs": [ + "The provided suffix is too long." + ] + }, + { + "name": "NotUsernameAuthority", + "fields": [], + "index": 18, + "docs": [ + "The sender does not have permission to issue a username." + ] + }, + { + "name": "NoAllocation", + "fields": [], + "index": 19, + "docs": [ + "The authority cannot allocate any more usernames." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 20, + "docs": [ + "The signature on a username was not valid." + ] + }, + { + "name": "RequiresSignature", + "fields": [], + "index": 21, + "docs": [ + "Setting this username requires a signature, but none was provided." + ] + }, + { + "name": "InvalidUsername", + "fields": [], + "index": 22, + "docs": [ + "The username does not meet the requirements." + ] + }, + { + "name": "UsernameTaken", + "fields": [], + "index": 23, + "docs": [ + "The username is already taken." + ] + }, + { + "name": "NoUsername", + "fields": [], + "index": 24, + "docs": [ + "The requested username does not exist." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 25, + "docs": [ + "The username cannot be forcefully removed because it can still be accepted." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_society", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "StrikeCount", + "docs": [] + }, + { + "name": "vouching", + "type": 694, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 694, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 695 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 695, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_society", + "PayoutRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "PayoutsVec", + "type": 697 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "payouts", + "type": 697, + "typeName": "PayoutsVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 698 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 699, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 698 + } + }, + "docs": [] + } + }, + { + "id": 700, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 701 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 703, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 702, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 701 + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [ + "pallet_society", + "Candidacy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "kind", + "type": 702, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "tally", + "type": 705, + "typeName": "Tally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [ + "pallet_society", + "Tally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "VoteCount", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "VoteCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [ + "pallet_society", + "IntakeRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 705 + ] + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 1, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "fields": [], + "index": 2, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "fields": [], + "index": 3, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "fields": [], + "index": 4, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "fields": [], + "index": 5, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "fields": [], + "index": 6, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "fields": [], + "index": 7, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouchingOnBidder", + "fields": [], + "index": 8, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "fields": [], + "index": 9, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "fields": [], + "index": 10, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "fields": [], + "index": 11, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 12, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 13, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "fields": [], + "index": 14, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "fields": [], + "index": 15, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "fields": [], + "index": 16, + "docs": [ + "The caller is not the head." + ] + }, + { + "name": "NotApproved", + "fields": [], + "index": 17, + "docs": [ + "The membership cannot be claimed as the candidate was not clearly approved." + ] + }, + { + "name": "NotRejected", + "fields": [], + "index": 18, + "docs": [ + "The candidate cannot be kicked as the candidate was not clearly rejected." + ] + }, + { + "name": "Approved", + "fields": [], + "index": 19, + "docs": [ + "The candidacy cannot be dropped as the candidate was clearly approved." + ] + }, + { + "name": "Rejected", + "fields": [], + "index": 20, + "docs": [ + "The candidacy cannot be bestowed as the candidate was clearly rejected." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 21, + "docs": [ + "The candidacy cannot be concluded as the voting is still in progress." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 22, + "docs": [ + "The candidacy cannot be pruned until a full additional intake period has passed." + ] + }, + { + "name": "Voted", + "fields": [], + "index": 23, + "docs": [ + "The skeptic already voted." + ] + }, + { + "name": "Expired", + "fields": [], + "index": 24, + "docs": [ + "The skeptic need not vote on candidates from expired rounds." + ] + }, + { + "name": "NotBidder", + "fields": [], + "index": 25, + "docs": [ + "User is not a bidder." + ] + }, + { + "name": "NoDefender", + "fields": [], + "index": 26, + "docs": [ + "There is no defender currently." + ] + }, + { + "name": "NotGroup", + "fields": [], + "index": 27, + "docs": [ + "Group doesn't exist." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 28, + "docs": [ + "The member is already elevated to this rank." + ] + }, + { + "name": "AlreadyPunished", + "fields": [], + "index": 29, + "docs": [ + "The skeptic has already been punished for this offence." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 30, + "docs": [ + "Funds are insufficient to pay off society debts." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 31, + "docs": [ + "The candidate/defender has no stale votes to remove." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 713 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 713, + "typeName": "Friends", + "docs": [] + }, + { + "name": "threshold", + "type": 101, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 713 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 713, + "typeName": "Friends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "fields": [], + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "fields": [], + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "fields": [], + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "fields": [], + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "fields": [], + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "fields": [], + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "fields": [], + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "fields": [], + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "fields": [], + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "fields": [], + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "fields": [], + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "fields": [], + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "fields": [], + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "fields": [], + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 716, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 320 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 717, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 320 + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 720, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 721 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 723, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 722 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 722, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 148 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 95, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 140, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 322, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 148, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 721 + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 726, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyInitialized", + "fields": [], + "index": 0, + "docs": [ + "The pallet was already initialized.", + "", + "Set `witness_count` to `Some` to bypass this error." + ] + }, + { + "name": "InsaneLimit", + "fields": [], + "index": 1, + "docs": [ + "The limit was over [`crate::RESOURCE_HARD_LIMIT`]." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 63, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 728, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 63 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 63, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 730 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 731, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 732, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 39, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 730 + ] + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 731 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 731, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + }, + { + "name": "NoCost", + "fields": [], + "index": 8, + "docs": [ + "No ticket with a cost was returned by [`Config::Consideration`] to store the preimage." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 735, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 736, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 737 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 738, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 100 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 100, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 737 + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 740, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 741 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 742, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 741 + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 744, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 103, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 612, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 747, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 748, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 751, + "type": { + "path": [ + "pallet_tips", + "OpenTip" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reason", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "finder", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "closes", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "tips", + "type": 62, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "finders_fee", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ReasonTooBig", + "fields": [], + "index": 0, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "fields": [], + "index": 1, + "docs": [ + "The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "fields": [], + "index": 2, + "docs": [ + "The tip hash is unknown." + ] + }, + { + "name": "MaxTipAmountExceeded", + "fields": [], + "index": 3, + "docs": [ + "The tip given was too generous." + ] + }, + { + "name": "NotFinder", + "fields": [], + "index": 4, + "docs": [ + "The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "fields": [], + "index": 5, + "docs": [ + "The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 6, + "docs": [ + "The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 753, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 754, + "typeName": "AssetStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 33 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 756, + "typeName": "AccountStatus", + "docs": [] + }, + { + "name": "reason", + "type": 757, + "typeName": "ExistenceReason", + "docs": [] + }, + { + "name": "extra", + "type": 33, + "typeName": "Extra", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [ + "pallet_assets", + "types", + "AccountStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Liquid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Sufficient", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DepositHeld", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DepositRefunded", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DepositFrom", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 761 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 761, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 761, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 763, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 764, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 245 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 765, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 245 + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidDoubleVotingProof", + "fields": [], + "index": 1, + "docs": [ + "A double voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidForkVotingProof", + "fields": [], + "index": 2, + "docs": [ + "A fork voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidFutureBlockVotingProof", + "fields": [], + "index": 3, + "docs": [ + "A future block voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProofSession", + "fields": [], + "index": 4, + "docs": [ + "The session of the equivocation proof is invalid" + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 5, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 6, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 767, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 13, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "pallet_lottery", + "LotteryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "repeat", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 770 + ] + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 109 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 771, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 109 + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "fields": [], + "index": 0, + "docs": [ + "A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 1, + "docs": [ + "A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "fields": [], + "index": 2, + "docs": [ + "A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "fields": [], + "index": 3, + "docs": [ + "The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "fields": [], + "index": 4, + "docs": [ + "You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "fields": [], + "index": 5, + "docs": [ + "Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "fields": [], + "index": 6, + "docs": [ + "Failed to encode calls" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 773, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 698 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 699, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 775 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 776, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Bid" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 775 + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "pallet_nis", + "pallet", + "SummaryRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion_owed", + "type": 111, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "thawed", + "type": 111, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "receipts_on_hold", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [ + "pallet_nis", + "pallet", + "ReceiptRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion", + "type": 111, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "owner", + "type": 728, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 111, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DurationTooSmall", + "fields": [], + "index": 0, + "docs": [ + "The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "fields": [], + "index": 1, + "docs": [ + "The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "fields": [], + "index": 2, + "docs": [ + "The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 3, + "docs": [ + "The queue for the bid's duration is full and the amount bid is too low to get in", + "through replacing an existing bid." + ] + }, + { + "name": "UnknownReceipt", + "fields": [], + "index": 4, + "docs": [ + "Receipt index is unknown." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 5, + "docs": [ + "Not the owner of the receipt." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 6, + "docs": [ + "Bond not yet at expiry date." + ] + }, + { + "name": "UnknownBid", + "fields": [], + "index": 7, + "docs": [ + "The given bid for retraction is not found." + ] + }, + { + "name": "PortionTooBig", + "fields": [], + "index": 8, + "docs": [ + "The portion supplied is beyond the value of the receipt." + ] + }, + { + "name": "Unfunded", + "fields": [], + "index": 9, + "docs": [ + "Not enough funds are held to pay out." + ] + }, + { + "name": "AlreadyFunded", + "fields": [], + "index": 10, + "docs": [ + "There are enough funds for what is required." + ] + }, + { + "name": "Throttled", + "fields": [], + "index": 11, + "docs": [ + "The thaw throttle has been reached for this period." + ] + }, + { + "name": "MakesDust", + "fields": [], + "index": 12, + "docs": [ + "The operation would result in a receipt worth an insignificant value." + ] + }, + { + "name": "AlreadyCommunal", + "fields": [], + "index": 13, + "docs": [ + "The receipt is already communal." + ] + }, + { + "name": "AlreadyPrivate", + "fields": [], + "index": 14, + "docs": [ + "The receipt is already private." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 781, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approved", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 39, + 87 + ] + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 115, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 43 + ] + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "fields": [], + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 17, + "docs": [ + "The provided bid is too low." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 790, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 792 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "CollectionRole", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Freezer", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Admin", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 794 + }, + { + "name": "Approvals", + "type": 795 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 795, + "typeName": "Approvals", + "docs": [] + }, + { + "name": "deposit", + "type": 794, + "typeName": "Deposit", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 39 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 796, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 39 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 797, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 797, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 798 + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 39 + ] + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 801 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 801, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 39, + 118, + 115 + ] + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 117, + 804 + ] + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 805, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 806, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 120 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 39, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 809 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "PalletFeature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Attributes", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Swaps", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "fields": [], + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "fields": [], + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "fields": [], + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "fields": [], + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "fields": [], + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "fields": [], + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "fields": [], + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "fields": [], + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "fields": [], + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "fields": [], + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "fields": [], + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "fields": [], + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "fields": [], + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "fields": [], + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "fields": [], + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "fields": [], + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "fields": [], + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "fields": [], + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "fields": [], + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "fields": [], + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "fields": [], + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "fields": [], + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "fields": [], + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "fields": [], + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "fields": [], + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "fields": [], + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "fields": [], + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "fields": [], + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + }, + { + "name": "CollectionNotEmpty", + "fields": [], + "index": 43, + "docs": [ + "Can't delete non-empty collections." + ] + }, + { + "name": "WitnessRequired", + "fields": [], + "index": 44, + "docs": [ + "The witness data should be provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 811, + "type": { + "path": [ + "pallet_nft_fractionalization", + "types", + "Details" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + }, + { + "name": "Fractions", + "type": 6 + }, + { + "name": "Deposit", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset", + "type": 4, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "Fractions", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "asset_creator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncorrectAssetId", + "fields": [], + "index": 0, + "docs": [ + "Asset ID does not correspond to locked NFT." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 1, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "NftNotFound", + "fields": [], + "index": 2, + "docs": [ + "NFT doesn't exist." + ] + }, + { + "name": "NftNotFractionalized", + "fields": [], + "index": 3, + "docs": [ + "NFT has not yet been fractionalised." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 813, + "type": { + "path": [ + "pallet_salary", + "StatusType" + ], + "params": [ + { + "name": "CycleIndex", + "type": 4 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "cycle_index", + "type": 4, + "typeName": "CycleIndex", + "docs": [] + }, + { + "name": "cycle_start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "budget", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_registrations", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_unregistered_paid", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "pallet_salary", + "ClaimantStatus" + ], + "params": [ + { + "name": "CycleIndex", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Id", + "type": 33 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_active", + "type": 4, + "typeName": "CycleIndex", + "docs": [] + }, + { + "name": "status", + "type": 815, + "typeName": "ClaimState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [ + "pallet_salary", + "ClaimState" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Id", + "type": 33 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Nothing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Registered", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "registered", + "type": 236, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 33, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyStarted", + "fields": [], + "index": 0, + "docs": [ + "The salary system has already been started." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "The account is not a ranked member." + ] + }, + { + "name": "AlreadyInducted", + "fields": [], + "index": 2, + "docs": [ + "The account is already inducted." + ] + }, + { + "name": "NotInducted", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "NoClaim", + "fields": [], + "index": 4, + "docs": [ + "The member does not have a current valid claim." + ] + }, + { + "name": "ClaimZero", + "fields": [], + "index": 5, + "docs": [ + "The member's claim is zero." + ] + }, + { + "name": "TooLate", + "fields": [], + "index": 6, + "docs": [ + "Current cycle's registration period is over." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 7, + "docs": [ + "Current cycle's payment period is not yet begun." + ] + }, + { + "name": "NotYet", + "fields": [], + "index": 8, + "docs": [ + "Cycle is not yet over." + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 9, + "docs": [ + "The payout cycles have not yet started." + ] + }, + { + "name": "Bankrupt", + "fields": [], + "index": 10, + "docs": [ + "There is no budget left for the payout." + ] + }, + { + "name": "PayError", + "fields": [], + "index": 11, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 12, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + }, + { + "name": "NotCurrent", + "fields": [], + "index": 13, + "docs": [ + "The cycle is after that in which the payment was made." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 817, + "type": { + "path": [ + "pallet_core_fellowship", + "MemberStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "last_promotion", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "last_proof", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 130, + 131 + ] + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unranked", + "fields": [], + "index": 0, + "docs": [ + "Member's rank is too low." + ] + }, + { + "name": "Ranked", + "fields": [], + "index": 1, + "docs": [ + "Member's rank is not zero." + ] + }, + { + "name": "UnexpectedRank", + "fields": [], + "index": 2, + "docs": [ + "Member's rank is not as expected - generally means that the rank provided to the call", + "does not agree with the state of the system." + ] + }, + { + "name": "InvalidRank", + "fields": [], + "index": 3, + "docs": [ + "The given rank is invalid - this generally means it's not between 1 and `RANK_COUNT`." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 4, + "docs": [ + "The origin does not have enough permission to do this operation." + ] + }, + { + "name": "NothingDoing", + "fields": [], + "index": 5, + "docs": [ + "No work needs to be done at present for this member." + ] + }, + { + "name": "AlreadyInducted", + "fields": [], + "index": 6, + "docs": [ + "The candidate has already been inducted. This should never happen since it would", + "require a candidate (rank 0) to already be tracked in the pallet." + ] + }, + { + "name": "NotTracked", + "fields": [], + "index": 7, + "docs": [ + "The candidate has not been inducted, so cannot be offboarded from this pallet." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 8, + "docs": [ + "Operation cannot be done yet since not enough time has passed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 820, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 821 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 822, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pallet_transaction_storage", + "TransactionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "chunk_root", + "type": 13, + "typeName": "::Output", + "docs": [] + }, + { + "name": "content_hash", + "type": 13, + "typeName": "::Output", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "block_chunks", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 822, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 821 + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "fields": [], + "index": 0, + "docs": [ + "Invalid configuration." + ] + }, + { + "name": "RenewedNotFound", + "fields": [], + "index": 1, + "docs": [ + "Renewed extrinsic is not found." + ] + }, + { + "name": "EmptyTransaction", + "fields": [], + "index": 2, + "docs": [ + "Attempting to store empty transaction" + ] + }, + { + "name": "UnexpectedProof", + "fields": [], + "index": 3, + "docs": [ + "Proof was not expected in this block." + ] + }, + { + "name": "InvalidProof", + "fields": [], + "index": 4, + "docs": [ + "Proof failed verification." + ] + }, + { + "name": "MissingProof", + "fields": [], + "index": 5, + "docs": [ + "Missing storage proof." + ] + }, + { + "name": "MissingStateData", + "fields": [], + "index": 6, + "docs": [ + "Unable to verify proof because state data is missing." + ] + }, + { + "name": "DoubleCheck", + "fields": [], + "index": 7, + "docs": [ + "Double proof check in the block." + ] + }, + { + "name": "ProofNotChecked", + "fields": [], + "index": 8, + "docs": [ + "Storage proof was not checked in the block." + ] + }, + { + "name": "TransactionTooLarge", + "fields": [], + "index": 9, + "docs": [ + "Transaction is too large." + ] + }, + { + "name": "TooManyTransactions", + "fields": [], + "index": 10, + "docs": [ + "Too many transactions in the block." + ] + }, + { + "name": "BadContext", + "fields": [], + "index": 11, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 824, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 43, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 828, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 828, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 830, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 832, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 101 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 466 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 94 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 833, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 101 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 466 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 94 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 101, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 148, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 392, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 834, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 836, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 466, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 838, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 834 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 834, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 837 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 837, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 39, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 839 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 839, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 94 + ] + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 698 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 699, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 842 + } + }, + "docs": [] + } + }, + { + "id": 842, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 101, + 843 + ] + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 516, + "typeName": "&'static str", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 844, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 844, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 845, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 845, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 845, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 846, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 848, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Empty", + "fields": [], + "index": 0, + "docs": [ + "Attempting to store empty data." + ] + }, + { + "name": "BadContext", + "fields": [], + "index": 1, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 849, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 101 + ] + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 851, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 857, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 852, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 855, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 856, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 853 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 854, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 396 + ] + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 853 + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 398, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 855, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 856, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 859 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 860, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 859, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 101, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 859 + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 862, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 863, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 327, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 864, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 865, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 403 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 866, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 403 + } + }, + "docs": [] + } + }, + { + "id": 867, + "type": { + "path": [ + "pallet_alliance", + "MemberRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fellow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Ally", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Retiring", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 409 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 870, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 409 + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AllianceNotYetInitialized", + "fields": [], + "index": 0, + "docs": [ + "The Alliance has not been initialized yet, therefore accounts cannot join it." + ] + }, + { + "name": "AllianceAlreadyInitialized", + "fields": [], + "index": 1, + "docs": [ + "The Alliance has been initialized, therefore cannot be initialized again." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 2, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 3, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotAlly", + "fields": [], + "index": 4, + "docs": [ + "Account is not an ally." + ] + }, + { + "name": "NoVotingRights", + "fields": [], + "index": 5, + "docs": [ + "Account does not have voting rights." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 6, + "docs": [ + "Account is already an elevated (fellow) member." + ] + }, + { + "name": "AlreadyUnscrupulous", + "fields": [], + "index": 7, + "docs": [ + "Item is already listed as unscrupulous." + ] + }, + { + "name": "AccountNonGrata", + "fields": [], + "index": 8, + "docs": [ + "Account has been deemed unscrupulous by the Alliance and is not welcome to join or be", + "nominated." + ] + }, + { + "name": "NotListedAsUnscrupulous", + "fields": [], + "index": 9, + "docs": [ + "Item has not been deemed unscrupulous." + ] + }, + { + "name": "TooManyUnscrupulousItems", + "fields": [], + "index": 10, + "docs": [ + "The number of unscrupulous items exceeds `MaxUnscrupulousItems`." + ] + }, + { + "name": "TooLongWebsiteUrl", + "fields": [], + "index": 11, + "docs": [ + "Length of website URL exceeds `MaxWebsiteUrlLength`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 12, + "docs": [ + "Balance is insufficient for the required deposit." + ] + }, + { + "name": "WithoutRequiredIdentityFields", + "fields": [], + "index": 13, + "docs": [ + "The account's identity does not have display field and website field." + ] + }, + { + "name": "WithoutGoodIdentityJudgement", + "fields": [], + "index": 14, + "docs": [ + "The account's identity has no good judgement." + ] + }, + { + "name": "MissingProposalHash", + "fields": [], + "index": 15, + "docs": [ + "The proposal hash is not found." + ] + }, + { + "name": "MissingAnnouncement", + "fields": [], + "index": 16, + "docs": [ + "The announcement is not found." + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 17, + "docs": [ + "Number of members exceeds `MaxMembersCount`." + ] + }, + { + "name": "TooManyAnnouncements", + "fields": [], + "index": 18, + "docs": [ + "Number of announcements exceeds `MaxAnnouncementsCount`." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 19, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "AlreadyRetiring", + "fields": [], + "index": 20, + "docs": [ + "Account already gave retirement notice" + ] + }, + { + "name": "RetirementNoticeNotGiven", + "fields": [], + "index": 21, + "docs": [ + "Account did not give a retirement notice required to retire." + ] + }, + { + "name": "RetirementPeriodNotPassed", + "fields": [], + "index": 22, + "docs": [ + "Retirement period has not passed." + ] + }, + { + "name": "FellowsMissing", + "fields": [], + "index": 23, + "docs": [ + "Fellows must be provided to initialize the Alliance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 872, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 71, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 873, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 874, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 874, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 699, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 876, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 879, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 412, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 876, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 418, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 877, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 878, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 39, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 421, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 49, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 420 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 420, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 879, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 71, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 882, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 883, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 882, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 883, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 882 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 884, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 882 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 885, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 886 + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 882 + ] + }, + "docs": [] + } + }, + { + "id": 887, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 888, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 33, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 35, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 888, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 101 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 479 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 94 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 890, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 835, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 101 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 479 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 94 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 101, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 148, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 392, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 834, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 835, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 836, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 479, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 838, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 94 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 514, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 893, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 101, + "typeName": "Rank", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 101, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 101, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 897, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "fields": [], + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "fields": [], + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "fields": [], + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "fields": [], + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "fields": [], + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "fields": [], + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + }, + { + "name": "SameMember", + "fields": [], + "index": 9, + "docs": [ + "The new member to exchange is the same as the old member" + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 10, + "docs": [ + "The max member count for the rank has been reached." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 898, + "type": { + "path": [ + "pallet_asset_conversion", + "types", + "PoolInfo" + ], + "params": [ + { + "name": "PoolAssetId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "lp_token", + "type": 4, + "typeName": "PoolAssetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolExists", + "fields": [], + "index": 1, + "docs": [ + "Pool already exists." + ] + }, + { + "name": "WrongDesiredAmount", + "fields": [], + "index": 2, + "docs": [ + "Desired amount can't be zero." + ] + }, + { + "name": "AmountOneLessThanMinimal", + "fields": [], + "index": 3, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountTwoLessThanMinimal", + "fields": [], + "index": 4, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "ReserveLeftLessThanMinimal", + "fields": [], + "index": 5, + "docs": [ + "Reserve needs to always be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountOutTooHigh", + "fields": [], + "index": 6, + "docs": [ + "Desired amount can't be equal to the pool reserve." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 7, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 8, + "docs": [ + "An overflow happened." + ] + }, + { + "name": "AssetOneDepositDidNotMeetMinimum", + "fields": [], + "index": 9, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoDepositDidNotMeetMinimum", + "fields": [], + "index": 10, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "AssetOneWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 11, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 12, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "OptimalAmountLessThanDesired", + "fields": [], + "index": 13, + "docs": [ + "Optimal calculated amount is less than desired." + ] + }, + { + "name": "InsufficientLiquidityMinted", + "fields": [], + "index": 14, + "docs": [ + "Insufficient liquidity minted." + ] + }, + { + "name": "ZeroLiquidity", + "fields": [], + "index": 15, + "docs": [ + "Requested liquidity can't be zero." + ] + }, + { + "name": "ZeroAmount", + "fields": [], + "index": 16, + "docs": [ + "Amount can't be zero." + ] + }, + { + "name": "ProvidedMinimumNotSufficientForSwap", + "fields": [], + "index": 17, + "docs": [ + "Calculated amount out is less than provided minimum amount." + ] + }, + { + "name": "ProvidedMaximumNotSufficientForSwap", + "fields": [], + "index": 18, + "docs": [ + "Provided maximum amount is not sufficient for swap." + ] + }, + { + "name": "InvalidPath", + "fields": [], + "index": 19, + "docs": [ + "The provided path must consists of 2 assets at least." + ] + }, + { + "name": "NonUniquePath", + "fields": [], + "index": 20, + "docs": [ + "The provided path must consists of unique assets." + ] + }, + { + "name": "IncorrectPoolAssetId", + "fields": [], + "index": 21, + "docs": [ + "It was not possible to get or increment the Id of the pool." + ] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 22, + "docs": [ + "The destination account cannot exist with the swapped funds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 900, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 901, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 902, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 901, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 63 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 902, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 904, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 905, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 906 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 906, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 4, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 4, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 908, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 910, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IsPaused", + "fields": [], + "index": 0, + "docs": [ + "The call is paused." + ] + }, + { + "name": "IsUnpaused", + "fields": [], + "index": 1, + "docs": [ + "The call is unpaused." + ] + }, + { + "name": "Unpausable", + "fields": [], + "index": 2, + "docs": [ + "The call is whitelisted and cannot be paused." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 911, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Entered", + "fields": [], + "index": 0, + "docs": [ + "The safe-mode is (already or still) entered." + ] + }, + { + "name": "Exited", + "fields": [], + "index": 1, + "docs": [ + "The safe-mode is (already or still) exited." + ] + }, + { + "name": "NotConfigured", + "fields": [], + "index": 2, + "docs": [ + "This functionality of the pallet is disabled by the configuration." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 3, + "docs": [ + "There is no balance reserved." + ] + }, + { + "name": "AlreadyDeposited", + "fields": [], + "index": 4, + "docs": [ + "The account already has a deposit reserved and can therefore not enter or extend again." + ] + }, + { + "name": "CannotReleaseYet", + "fields": [], + "index": 5, + "docs": [ + "This deposit cannot be released yet." + ] + }, + { + "name": "CurrencyError", + "fields": [], + "index": 6, + "docs": [ + "An error from the underlying `Currency`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 912, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [], + "index": 0, + "docs": [ + "The operation cannot complete since some MBMs are ongoing." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 913, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 445 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 914, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 445 + } + }, + "docs": [] + } + }, + { + "id": 915, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 916 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 917, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "pallet_broker", + "types", + "LeaseRecordItem" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 917, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 916 + } + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [ + "pallet_broker", + "types", + "StatusRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core_count", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "private_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "system_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "last_committed_timeslice", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "last_timeslice", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [ + "pallet_broker", + "types", + "SaleInfoRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sale_start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "end_price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "region_begin", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "region_end", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "ideal_cores_sold", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "cores_offered", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "first_core", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "sellout_price", + "type": 236, + "typeName": "Option", + "docs": [] + }, + { + "name": "cores_sold", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [ + "pallet_broker", + "types", + "PotentialRenewalId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 101, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [ + "pallet_broker", + "types", + "PotentialRenewalRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "completion", + "type": 922, + "typeName": "CompletionStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [ + "pallet_broker", + "types", + "CompletionStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Partial", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "CoreMask", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Complete", + "fields": [ + { + "name": null, + "type": 445, + "typeName": "Schedule", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [ + "pallet_broker", + "types", + "RegionRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "owner", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "paid", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 101 + ] + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [ + "pallet_broker", + "types", + "ContributionRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "length", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "pallet_broker", + "types", + "PoolIoRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "private", + "type": 927, + "typeName": "SignedCoreMaskBitCount", + "docs": [] + }, + { + "name": "system", + "type": 927, + "typeName": "SignedCoreMaskBitCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I32" + }, + "docs": [] + } + }, + { + "id": 928, + "type": { + "path": [ + "pallet_broker", + "types", + "InstaPoolHistoryRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "private_contributions", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "system_contributions", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "maybe_payout", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownRegion", + "fields": [], + "index": 0, + "docs": [ + "The given region identity is not known." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The owner of the region is not the origin." + ] + }, + { + "name": "PivotTooLate", + "fields": [], + "index": 2, + "docs": [ + "The pivot point of the partition at or after the end of the region." + ] + }, + { + "name": "PivotTooEarly", + "fields": [], + "index": 3, + "docs": [ + "The pivot point of the partition at the beginning of the region." + ] + }, + { + "name": "ExteriorPivot", + "fields": [], + "index": 4, + "docs": [ + "The pivot mask for the interlacing is not contained within the region's interlace mask." + ] + }, + { + "name": "VoidPivot", + "fields": [], + "index": 5, + "docs": [ + "The pivot mask for the interlacing is void (and therefore unschedulable)." + ] + }, + { + "name": "CompletePivot", + "fields": [], + "index": 6, + "docs": [ + "The pivot mask for the interlacing is complete (and therefore not a strict subset)." + ] + }, + { + "name": "CorruptWorkplan", + "fields": [], + "index": 7, + "docs": [ + "The workplan of the pallet's state is invalid. This indicates a state corruption." + ] + }, + { + "name": "NoSales", + "fields": [], + "index": 8, + "docs": [ + "There is no sale happening currently." + ] + }, + { + "name": "Overpriced", + "fields": [], + "index": 9, + "docs": [ + "The price limit is exceeded." + ] + }, + { + "name": "Unavailable", + "fields": [], + "index": 10, + "docs": [ + "There are no cores available." + ] + }, + { + "name": "SoldOut", + "fields": [], + "index": 11, + "docs": [ + "The sale limit has been reached." + ] + }, + { + "name": "WrongTime", + "fields": [], + "index": 12, + "docs": [ + "The renewal operation is not valid at the current time (it may become valid in the next", + "sale)." + ] + }, + { + "name": "NotAllowed", + "fields": [], + "index": 13, + "docs": [ + "Invalid attempt to renew." + ] + }, + { + "name": "Uninitialized", + "fields": [], + "index": 14, + "docs": [ + "This pallet has not yet been initialized." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 15, + "docs": [ + "The purchase cannot happen yet as the sale period is yet to begin." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 16, + "docs": [ + "There is no work to be done." + ] + }, + { + "name": "TooManyReservations", + "fields": [], + "index": 17, + "docs": [ + "The maximum amount of reservations has already been reached." + ] + }, + { + "name": "TooManyLeases", + "fields": [], + "index": 18, + "docs": [ + "The maximum amount of leases has already been reached." + ] + }, + { + "name": "UnknownRevenue", + "fields": [], + "index": 19, + "docs": [ + "The revenue for the Instantaneous Core Sales of this period is not (yet) known and thus", + "this operation cannot proceed." + ] + }, + { + "name": "UnknownContribution", + "fields": [], + "index": 20, + "docs": [ + "The identified contribution to the Instantaneous Core Pool is unknown." + ] + }, + { + "name": "IncompleteAssignment", + "fields": [], + "index": 21, + "docs": [ + "The workload assigned for renewal is incomplete. This is unexpected and indicates a", + "logic error." + ] + }, + { + "name": "StillValid", + "fields": [], + "index": 22, + "docs": [ + "An item cannot be dropped because it is still valid." + ] + }, + { + "name": "NoHistory", + "fields": [], + "index": 23, + "docs": [ + "The history item does not exist." + ] + }, + { + "name": "UnknownReservation", + "fields": [], + "index": 24, + "docs": [ + "No reservation of the given index exists." + ] + }, + { + "name": "UnknownRenewal", + "fields": [], + "index": 25, + "docs": [ + "The renewal record cannot be found." + ] + }, + { + "name": "AlreadyExpired", + "fields": [], + "index": 26, + "docs": [ + "The lease expiry time has already passed." + ] + }, + { + "name": "InvalidConfig", + "fields": [], + "index": 27, + "docs": [ + "The configuration could not be applied because it is invalid." + ] + }, + { + "name": "NoClaimTimeslices", + "fields": [], + "index": 28, + "docs": [ + "The revenue must be claimed for 1 or more timeslices." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 930, + "type": { + "path": [ + "pallet_example_tasks", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotFound", + "fields": [], + "index": 0, + "docs": [ + "The referenced task was not found." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 931, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "ZeroBalance", + "fields": [], + "index": 2, + "docs": [ + "Pool's balance cannot be zero." + ] + }, + { + "name": "PartialTransfer", + "fields": [], + "index": 3, + "docs": [ + "Indicates a partial transfer of balance to the new account during a migration." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 932, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 166 + }, + { + "name": "Call", + "type": 141 + }, + { + "name": "Signature", + "type": 315 + }, + { + "name": "Extra", + "type": 933 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 933, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 934, + 935, + 936, + 937, + 938, + 940, + 941, + 942, + 943 + ] + }, + "docs": [] + } + }, + { + "id": 934, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 935, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 936, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 937, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 939, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 939, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 940, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 157, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 941, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 81, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 39, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 943, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 944, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 944, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/bizinikiwi-ver.ts b/packages/types-support/src/metadata/v14/bizinikiwi-ver.ts new file mode 100644 index 0000000..ade9b62 --- /dev/null +++ b/packages/types-support/src/metadata/v14/bizinikiwi-ver.ts @@ -0,0 +1,110 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "specName": "node", + "implName": "bizinikiwi-node", + "authoringVersion": 10, + "specVersion": 268, + "implVersion": 0, + "apis": [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xbe9fb0c91a8046cf", + 1 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x8453b50b22293977", + 1 + ], + [ + "0x68b66ba122c93fa7", + 2 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0x8a8047a53a8277ec", + 1 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x899a250cbe84f250", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 4 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x6fd7c327202e4a8d", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ], + "transactionVersion": 2, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v14/dicle-hex.ts b/packages/types-support/src/metadata/v14/dicle-hex.ts new file mode 100644 index 0000000..4afc59e --- /dev/null +++ b/packages/types-support/src/metadata/v14/dicle-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev --alice --force-authoring + +export default '0x6d6574610e890e000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173653d08011450686173650001146576656e7454010445000118746f70696373150301185665633c543e000054085873746167696e675f6b7573616d615f72756e74696d653052756e74696d654576656e740001b41853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c496e646963657304007c017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0003002042616c616e636573040080017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000400485472616e73616374696f6e5061796d656e7404008801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0021001c5374616b696e6704008c017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000600204f6666656e6365730400a4015870616c6c65745f6f6666656e6365733a3a4576656e740007001c53657373696f6e0400ac015470616c6c65745f73657373696f6e3a3a4576656e740008001c4772616e6470610400b0015470616c6c65745f6772616e6470613a3a4576656e74000a002054726561737572790400c0017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00120040436f6e76696374696f6e566f74696e6704004d0101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e001400245265666572656e646104005101018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0015005046656c6c6f7773686970436f6c6c6563746976650400550701390170616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a0a496e7374616e6365313e0016004c46656c6c6f77736869705265666572656e64610400610701f470616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e0017002457686974656c69737404006507018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e002c0028506172616d657465727304007907018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e002e0018436c61696d73040091070158636c61696d733a3a4576656e743c52756e74696d653e0013001c5574696c69747904009507015470616c6c65745f7574696c6974793a3a4576656e740018001c536f636965747904009d07017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e001a00205265636f766572790400a507017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e001b001c56657374696e670400a907017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001c00245363686564756c65720400ad07018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e001d001450726f78790400b507017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001e00204d756c74697369670400b907017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001f0020507265696d6167650400bd07017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e00200020426f756e746965730400c107017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002300344368696c64426f756e746965730400c507019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e00280068456c656374696f6e50726f76696465724d756c746950686173650400c90701d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e0025000c4e69730400d907016870616c6c65745f6e69733a3a4576656e743c52756e74696d653e002600584e6973436f756e7465727061727442616c616e6365730400dd0701ec70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d652c2070616c6c65745f62616c616e6365733a3a496e7374616e6365323e002d0024566f7465724c6973740400e10701f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0027003c4e6f6d696e6174696f6e506f6f6c730400e507019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e0029002c46617374556e7374616b650400e907018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e002a003450617261496e636c7573696f6e0400ed07019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e0035001450617261730400fd07015c70617261636861696e735f70617261733a3a4576656e740038001048726d7004000108017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c00345061726173446973707574657304000508018c70617261636861696e735f64697370757465733a3a4576656e743c52756e74696d653e003e00684f6e44656d616e6441737369676e6d656e7450726f76696465720400110801b470617261636861696e735f61737369676e65725f6f6e5f64656d616e643a3a4576656e743c52756e74696d653e0040002452656769737472617204001508017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040019080154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304001d08016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04002108016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490020436f726574696d65040025080160636f726574696d653a3a4576656e743c52756e74696d653e004a002458636d50616c6c657404002908016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e006300304d657373616765517565756504003108019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0064002441737365745261746504003908018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e00650000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5c01304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c01304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c0c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574800c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000880c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748c103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001481c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e7449640001106465737490017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6e94011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e744964000114707265667398013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465a0011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657490083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000940c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c753332000098083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6e9c011c50657262696c6c00011c626c6f636b6564200110626f6f6c00009c0000069400a0083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000a40c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64a801104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ea8000003100000000800ac0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574b40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b4000002b800b800000408bc3000bc0c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c69630000c00c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64c40130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172792d010138543a3a42656e656669636961727900012876616c69645f66726f6d100144426c6f636b4e756d626572466f723c543e0001246578706972655f6174100144426c6f636b4e756d626572466f723c543e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c40c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c6541737365740001080856330801206c6f636174696f6ec8014478636d3a3a76333a3a4c6f636174696f6e00012061737365745f6964f0014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6ef4014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69642901014078636d3a3a76343a3a4173736574496400040000c8102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72cc01244a756e6374696f6e730000cc100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400d001204a756e6374696f6e0001000858320800d001204a756e6374696f6e0000d001204a756e6374696f6e0002000858330c00d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0003000858341000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0004000858351400d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0005000858361800d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0006000858371c00d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0007000858382000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e0000d001204a756e6374696f6e00080000d0100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400d4010c7533320000002c4163636f756e744964333208011c6e6574776f726bd801444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726bd801444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726bd801444f7074696f6e3c4e6574776f726b49643e00010c6b6579e001205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400e40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e80118426f6479496400011070617274ec0120426f6479506172740008003c476c6f62616c436f6e73656e7375730400dc01244e6574776f726b496400090000d40000061000d804184f7074696f6e04045401dc0108104e6f6e6500000010536f6d650400dc0000010000dc100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000e0000003140000000800e40000061800e8100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400d4010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000ec100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74d4010c753332000100204672616374696f6e08010c6e6f6dd4010c75333200011464656e6f6dd4010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dd4010c75333200011464656e6f6dd4010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dd4010c75333200011464656e6f6dd4010c75333200040000f0100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400c801344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d00010000f4102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72f801244a756e6374696f6e730000f8102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400fc01484172633c5b4a756e6374696f6e3b20315d3e00010008583204000d0101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400110101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400150101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400190101484172633c5b4a756e6374696f6e3b20355d3e00050008583604001d0101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400210101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400250101484172633c5b4a756e6374696f6e3b20385d3e00080000fc000003010000000101000101102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400d4010c7533320000002c4163636f756e744964333208011c6e6574776f726b050101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b050101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b050101444f7074696f6e3c4e6574776f726b49643e00010c6b6579e001205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400e40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964e80118426f6479496400011070617274ec0120426f6479506172740008003c476c6f62616c436f6e73656e7375730400090101244e6574776f726b496400090000050104184f7074696f6e0404540109010108104e6f6e6500000010536f6d650400090100000100000901102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00000d01000003020000000101001101000003030000000101001501000003040000000101001901000003050000000101001d01000003060000000101002101000003070000000101002501000003080000000101002901102c73746167696e675f78636d0876341461737365741c4173736574496400000400f401204c6f636174696f6e00002d01080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204003101014476323a3a4d756c74694c6f636174696f6e0001000856330400c8014476333a3a4d756c74694c6f636174696f6e0003000856340400f4013076343a3a4c6f636174696f6e000400003101100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72350101244a756e6374696f6e7300003501100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400390101204a756e6374696f6e0001000858320800390101204a756e6374696f6e0000390101204a756e6374696f6e0002000858330c00390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0003000858341000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0004000858351400390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0005000858361800390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0006000858371c00390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0007000858382000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e0000390101204a756e6374696f6e000800003901100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e0400d4010c7533320000002c4163636f756e744964333208011c6e6574776f726b3d0101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b3d0101244e6574776f726b4964000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b3d0101244e6574776f726b496400010c6b6579e001205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400e40110753132380005002847656e6572616c4b65790400410101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c697479080108696445010118426f647949640001107061727449010120426f647950617274000800003d010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d65640400410101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d610003000041010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e000045010c0c78636d08763218426f6479496400012810556e6974000000144e616d65640400410101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e6465780400d4010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e0008002054726561737572790009000049010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74d4010c753332000100204672616374696f6e08010c6e6f6dd4010c75333200011464656e6f6dd4010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dd4010c75333200011464656e6f6dd4010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dd4010c75333200011464656e6f6dd4010c753332000400004d010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001082444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657451010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b5501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c5901014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b5501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c5901014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c7951070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7951070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7951070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7951070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7951070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7951070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657455010000050400590110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564080454015d010448014907010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e6504004d070134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200005d01085873746167696e675f6b7573616d615f72756e74696d652c52756e74696d6543616c6c0001cc1853797374656d0400610101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e00000010426162650400710101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0001002454696d657374616d700400950101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002001c496e64696365730400990101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0003002042616c616e6365730400a90101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0004001c5374616b696e670400b50101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0006001c53657373696f6e0400f10101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0008001c4772616e64706104000d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000a002054726561737572790400390201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00120040436f6e76696374696f6e566f74696e670400410201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e001400245265666572656e64610400550201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0015005046656c6c6f7773686970436f6c6c65637469766504007d0201e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46656c6c6f7773686970436f6c6c6563746976652c2052756e74696d653e0016004c46656c6c6f77736869705265666572656e64610400810201e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46656c6c6f77736869705265666572656e64612c2052756e74696d653e0017002457686974656c6973740400850201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e002c0028506172616d65746572730400890201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e002e0018436c61696d730400b50201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0013001c5574696c6974790400d50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0018001c536f63696574790400dd0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e001a00205265636f766572790400e10201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e001b001c56657374696e670400e50201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001c00245363686564756c65720400ed0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e001d001450726f78790400f90201a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001e00204d756c74697369670400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001f0020507265696d6167650400110301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00200020426f756e746965730400190301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e002300344368696c64426f756e7469657304001d0301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e00280068456c656374696f6e50726f76696465724d756c746950686173650400210301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e0025000c4e69730400750401a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e69732c2052756e74696d653e002600584e6973436f756e7465727061727442616c616e6365730400790401ed0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6973436f756e7465727061727442616c616e6365732c2052756e74696d653e002d0024566f7465724c69737404007d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e0027003c4e6f6d696e6174696f6e506f6f6c730400810401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e0029002c46617374556e7374616b650400b50401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e002a0034436f6e66696775726174696f6e0400b90401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400dd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400e10401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400e50401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400710501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400790501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039001048726d7004007d0501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c0034506172617344697370757465730400850501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172617344697370757465732c2052756e74696d653e003e00345061726173536c617368696e670400890501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061726173536c617368696e672c2052756e74696d653e003f00684f6e44656d616e6441737369676e6d656e7450726f76696465720400990501fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f6e44656d616e6441737369676e6d656e7450726f76696465722c2052756e74696d653e0040002452656769737472617204009d0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400a10501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e730400a50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400ad0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e00490020436f726574696d650400c10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f726574696d652c2052756e74696d653e004a002458636d50616c6c65740400d50501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d50616c6c65742c2052756e74696d653e006300304d65737361676551756575650400110701c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0064002441737365745261746504001d0701b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e0065001442656566790400250701a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e00c8000061010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73650101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579736d0101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65010000026901006901000004083838006d01000002380071010c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6675010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6675010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967890101504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7501084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572017901084964017d01001001206f6666656e6465727d0101084964000110736c6f7481010110536c6f7400013066697273745f686561646572790101184865616465720001347365636f6e645f6865616465727901011848656164657200007901102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572d401184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c011844696765737400007d010c4473705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c696300008101084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400008501082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f6465736d0101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000089010c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f72000104085631080104638d010128287536342c2075363429000134616c6c6f7765645f736c6f747391010130416c6c6f776564536c6f7473000100008d01000004083030009101084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000095010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99010c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e65779d0101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e65779d0101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801a101011408496404000001244163636f756e74496400000014496e6465780400a50101304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400e001205b75383b2032305d00040000a1010000040000a501000006a10100a9010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f6465617468080110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263659d0101504163636f756e7449644c6f6f6b75704f663c543e000110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fad0101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6eb101014c41646a7573746d656e74446972656374696f6e00011464656c7461e40128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565e40128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead010000020000b1010c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000b501103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400017810626f6e6408011476616c7565e4013042616c616e63654f663c543e000114706179656590017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616ce4013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565e4013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e2101543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c6964617465040114707265667398013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473b90101645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f7061796565040114706179656590017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577d4010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cd4010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f72bd01011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573ad0101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573c10101205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c7565e4013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686fb90101645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e64c5010158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e64c5010158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e74c9010134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e74c9010134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c64cd010144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6ed1010144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f72657761726473cd010144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e657794011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273d50101f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572d90101504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616cdd0101504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e67e1010115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9010000029d0100bd010c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000c1010000021000c501103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000c901103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000cd01103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401bd01010c104e6f6f700000000c5365740400bd010104540001001852656d6f766500020000d101103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540194010c104e6f6f700000000c5365740400940104540001001852656d6f766500020000d5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400ad0101185665633c543e0000d90104184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000dd0104184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000e10104184f7074696f6e04045401e5010108104e6f6e6500000010536f6d650400e5010000010000e5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e901045300000400ed0101185665633c543e0000e901083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565e4011c42616c616e636500010c657261d40120457261496e6465780000ed01000002e90100f1010c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b657973f501011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef501085873746167696e675f6b7573616d615f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061bc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162657d0101c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72f90101e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e74fd0101f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279010201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001146265656679050201c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000f901104c706f6c6b61646f745f7072696d6974697665730876373476616c696461746f725f617070185075626c69630000040004013c737232353531393a3a5075626c69630000fd01104c706f6c6b61646f745f7072696d6974697665730876373861737369676e6d656e745f617070185075626c69630000040004013c737232353531393a3a5075626c6963000001020c5873705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c6963000005020c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c6963000004000902013465636473613a3a5075626c6963000009020000032100000008000d020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66110201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66110201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1102085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e1502014845717569766f636174696f6e3c482c204e3e00001502085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400190201890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d697404002d0201910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100001902084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401bc0456011d02045301210200100130726f756e645f6e756d62657230010c7536340001206964656e74697479bc0108496400011466697273742902011828562c2053290001187365636f6e642902011828562c20532900001d02084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000021020c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040025020148656432353531393a3a5369676e6174757265000025020000034000000008002902000004081d022102002d02084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401bc0456013102045301210200100130726f756e645f6e756d62657230010c7536340001206964656e74697479bc0108496400011466697273743502011828562c2053290001187365636f6e643502011828562c20532900003102084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000350200000408310221020039020c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e74e4013c42616c616e63654f663c542c20493e00012c62656e65666963696172799d0101504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f6964d4013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e64c40144426f783c543a3a41737365744b696e643e000118616d6f756e74e40150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172792d010178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6d3d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000041020c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e646578d40144506f6c6c496e6465784f663c542c20493e000110766f7465450201704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c61737355010134436c6173734f663c542c20493e000108746f9d0101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e4d020128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c61737355010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c61737355010134436c6173734f663c542c20493e0001187461726765749d0101504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373510201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c01187461726765749d0101504163636f756e7449644c6f6f6b75704f663c543e000114636c61737355010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746549020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000049020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f746500000400080000004d020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000510204184f7074696f6e0404540155010108104e6f6e6500000010536f6d6504005501000001000055020c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e5902015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c5901014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e747502017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b5501013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f686173687902013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5902085873746167696e675f6b7573616d615f72756e74696d65304f726967696e43616c6c65720001141873797374656d04005d0201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c4f726967696e7304006102017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e002b004050617261636861696e734f726967696e04006502016470617261636861696e735f6f726967696e3a3a4f726967696e0032002458636d50616c6c657404006d02014870616c6c65745f78636d3a3a4f726967696e00630010566f69640400710201410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f6964000400005d020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200006102145873746167696e675f6b7573616d615f72756e74696d6528676f7665726e616e63651c6f726967696e735470616c6c65745f637573746f6d5f6f726967696e73184f726967696e000170305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d004c46656c6c6f7773686970496e69746961746573000e001c46656c6c6f7773000f004446656c6c6f7773686970457870657274730010004446656c6c6f77736869704d6173746572730011003846656c6c6f77736869703144616e0012003846656c6c6f77736869703244616e0013003846656c6c6f77736869703344616e0014003846656c6c6f77736869703444616e0015003846656c6c6f77736869703544616e0016003846656c6c6f77736869703644616e0017003846656c6c6f77736869703744616e0018003846656c6c6f77736869703844616e0019003846656c6c6f77736869703944616e001a003457697368466f724368616e6765001b00006502106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e0400690201185061726149640000000069020c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c75333200006d020c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d0400f401204c6f636174696f6e00000020526573706f6e73650400f401204c6f636174696f6e000100007102081c73705f636f726510566f696400010000750210346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d62657200010000790204184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100007d020c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e0000185c496e74726f647563652061206e6577206d656d6265722e00902d20606f726967696e603a204d7573742062652074686520604164644f726967696e602ee82d206077686f603a204163636f756e74206f66206e6f6e2d6d656d6265722077686963682077696c6c206265636f6d652061206d656d6265722e00385765696768743a20604f283129603870726f6d6f74655f6d656d62657204010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e000118c0496e6372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e00a02d20606f726967696e603a204d75737420626520746865206050726f6d6f74654f726967696e602e902d206077686f603a204163636f756e74206f66206578697374696e67206d656d6265722e00385765696768743a20604f283129603464656d6f74655f6d656d62657204010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e00021c5d0144656372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e20496620746865206d656d62657220697320616c72656164792061742072616e6b207a65726f2c7c7468656e2074686579206172652072656d6f76656420656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206044656d6f74654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2e0009015765696768743a20604f283129602c206c65737320696620746865206d656d626572277320696e646578206973206869676865737420696e206974732072616e6b2e3472656d6f76655f6d656d62657208010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e0001206d696e5f72616e6b5501011052616e6b00031c6c52656d6f766520746865206d656d62657220656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206052656d6f76654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2ec02d20606d696e5f72616e6b603a205468652072616e6b206f6620746865206d656d626572206f7220677265617465722e00585765696768743a20604f286d696e5f72616e6b29602e10766f7465080110706f6c6c100144506f6c6c496e6465784f663c542c20493e00010c617965200110626f6f6c00042cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e00c42d20606f726967696e603a204d75737420626520605369676e6564602062792061206d656d626572206163636f756e742eac2d2060706f6c6c603a20496e646578206f66206120706f6c6c207768696368206973206f6e676f696e672e29012d2060617965603a206074727565602069662074686520766f746520697320746f20617070726f7665207468652070726f706f73616c2c206066616c736560206f74686572776973652e0045015472616e73616374696f6e2066656573206172652062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e0035015765696768743a20604f283129602c206c65737320696620746865726520776173206e6f2070726576696f757320766f7465206f6e2074686520706f6c6c20627920746865206d656d6265722e30636c65616e75705f706f6c6c080128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e00010c6d617810010c753332000528d452656d6f766520766f7465732066726f6d2074686520676976656e20706f6c6c2e204974206d757374206861766520656e6465642e00b02d20606f726967696e603a204d75737420626520605369676e65646020627920616e79206163636f756e742e49012d2060706f6c6c5f696e646578603a20496e646578206f66206120706f6c6c20776869636820697320636f6d706c6574656420616e6420666f7220776869636820766f74657320636f6e74696e756520746f20202065786973742efc2d20606d6178603a204d6178696d756d206e756d626572206f6620766f7465206974656d732066726f6d2072656d6f766520696e20746869732063616c6c2e00ec5472616e73616374696f6e2066656573206172652077616976656420696620746865206f7065726174696f6e206973207375636365737366756c2e00150157656967687420604f286d6178296020286c65737320696620746865726520617265206665776572206974656d7320746f2072656d6f7665207468616e20606d617860292e3c65786368616e67655f6d656d62657208010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e00011c6e65775f77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e000614050145786368616e6765732061206d656d62657220776974682061206e6577206163636f756e7420616e64207468652073616d65206578697374696e672072616e6b2e00a42d20606f726967696e603a204d75737420626520746865206045786368616e67654f726967696e602e39012d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2062652065786368616e6765642e59012d20606e65775f77686f603a204e6577204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2065786368616e67656420746f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e81020c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e5902015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c5901014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e747502017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b5501013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f686173687902013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85020c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c75658d020150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d02085873746167696e675f6b7573616d615f72756e74696d654452756e74696d65506172616d657465727300010424496e666c6174696f6e04009102019464796e616d69635f706172616d733a3a696e666c6174696f6e3a3a506172616d6574657273000000009102105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e28506172616d6574657273000114304d696e496e666c6174696f6e0800950201304d696e496e666c6174696f6e00009902014c4f7074696f6e3c5065727175696e74696c6c3e000000304d6178496e666c6174696f6e0800a10201304d6178496e666c6174696f6e00009902014c4f7074696f6e3c5065727175696e74696c6c3e00010028496465616c5374616b650800a5020128496465616c5374616b6500009902014c4f7074696f6e3c5065727175696e74696c6c3e0002001c46616c6c6f66660800a902011c46616c6c6f666600009902014c4f7074696f6e3c5065727175696e74696c6c3e0003003c55736541756374696f6e536c6f74730800ad02013c55736541756374696f6e536c6f74730000b10201304f7074696f6e3c626f6f6c3e000400009502105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e304d696e496e666c6174696f6e00000000990204184f7074696f6e040454019d020108104e6f6e6500000010536f6d6504009d0200000100009d020c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c7536340000a102105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e304d6178496e666c6174696f6e00000000a502105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e28496465616c5374616b6500000000a902105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e1c46616c6c6f666600000000ad02105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e3c55736541756374696f6e536c6f747300000000b10204184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000b502105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265b902013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686fc102013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65c50201dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e74cd0201544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265b902013845636473615369676e617475726500012473746174656d656e7438011c5665633c75383e00026ce44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7438011c5665633c75383e00034cf441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0019015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c69646174654174746573747360206173206148605369676e6564457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c64c102013c457468657265756d4164647265737300010c6e6577c102013c457468657265756d416464726573730001386d617962655f707265636c61696dd90101504f7074696f6e3c543a3a4163636f756e7449643e000400040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400bd0201205b75383b2036355d0000bd02000003410000000800c1020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400e001205b75383b2032305d0000c50204184f7074696f6e04045401c9020108104e6f6e6500000010536f6d650400c9020000010000c9020000040c18181000cd0204184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000d1020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c6172000000105361667400010000d5020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73d902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465785501010c75313600011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73d902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e59020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73d902017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9020000025d0100dd020c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001500c62696404011476616c756518013c42616c616e63654f663c542c20493e000024dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0061015061796d656e743a205468652067726f757027732043616e646964617465204465706f7369742077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e14756e62696400011cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e14766f7563680c010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e000244410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e1c756e766f75636800031c29014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e10766f746508012463616e6469646174659d0101504163636f756e7449644c6f6f6b75704f663c543e00011c617070726f7665200110626f6f6c0004208441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e34646566656e6465725f766f746504011c617070726f7665200110626f6f6c00051c8841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e187061796f757400062841015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e2c77616976655f7265706179040118616d6f756e7418013c42616c616e63654f663c542c20493e0007084d01526570617920746865207061796d656e742070726576696f75736c7920676976656e20746f20746865206d656d626572207769746820746865207369676e6564206f726967696e2c2072656d6f766520616e79e470656e64696e67207061796d656e74732c20616e6420656c6576617465207468656d2066726f6d2072616e6b203020746f2072616e6b20312e34666f756e645f736f636965747918011c666f756e6465729d0101504163636f756e7449644c6f6f6b75704f663c543e00012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e00011472756c657338011c5665633c75383e00084448466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e0040436f6d706c65786974793a204f28312920646973736f6c7665000914b0446973736f6c76652074686520736f636965747920616e642072656d6f766520616c6c206d656d626572732e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e586a756467655f73757370656e6465645f6d656d62657208010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e00011c666f7267697665200110626f6f6c000a382901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642066726f6d2074686520466f756e6465722e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e387365745f706172616d657465727310012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e000b3061014368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f636965747920616e6420746865206d6178696d756d206e756d626572206f66206e65772063616e6469646174657368696e20612073696e676c6520696e74616b6520706572696f642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642062792074686520466f756e6465722e002c506172616d65746572733a55012d20606d61785f6d656d6265727360202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e2054686973206d757374206265206e6f206c6573739420207468616e207468652063757272656e74206e756d626572206f66206d656d626572732e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702e3870756e6973685f736b6570746963000c08550150756e6973682074686520736b65707469632077697468206120737472696b65206966207468657920646964206e6f7420766f7465206f6e20612063616e6469646174652e2043616c6c61626c65206279207468652863616e6469646174652e40636c61696d5f6d656d62657273686970000d080d015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865f87468652063616e6469646174652c20616e64206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642e44626573746f775f6d656d6265727368697004012463616e646964617465000130543a3a4163636f756e744964000e0c61015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e206f66207468655901466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e64656420616e64206f6e6c79207768656e207468652063616e646964617465206973206e6f7444636c6561726c792072656a65637465642e386b69636b5f63616e64696461746504012463616e646964617465000130543a3a4163636f756e744964000f145d0152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e55016f662074686520466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642c20616e64206f6e6c79207768656e207468657920646f206e6f745868617665206120636c65617220617070726f76616c2e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e4072657369676e5f63616e64696461637900100c510152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c79206279207468652063616e6469646174652e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e3864726f705f63616e64696461746504012463616e646964617465000130543a3a4163636f756e7449640011142d0152656d6f76652061206063616e646964617465602773206661696c6564206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c6520627920616e7919017369676e6564206f726967696e20627574206f6e6c792061742074686520656e64206f66207468652073756273657175656e7420726f756e6420616e64206f6e6c7920666f72c0612063616e6469646174652077697468206d6f72652072656a656374696f6e73207468616e20617070726f76616c732e00c854686520626964206465706f736974206973206c6f737420616e642074686520766f75636865722069732062616e6e65642e44636c65616e75705f63616e64696461637908012463616e646964617465000130543a3a4163636f756e74496400010c6d617810010c75333200120ce452656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520676976656e206063616e646964617465602e0059014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c79206166746572207468652063616e64696461746527732063616e64696461637920697320656e6465642e44636c65616e75705f6368616c6c656e676508013c6368616c6c656e67655f726f756e64100128526f756e64496e64657800010c6d617810010c75333200130c3d0152656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520646566656e64657220696e2074686520676976656e20606368616c6c656e67655f726f756e64602e0041014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c7920616674657220746865206368616c6c656e676520726f756e6420697320656e6465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1020c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001243061735f7265636f766572656408011c6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000020a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e347365745f7265636f76657265640801106c6f73749d0101504163636f756e7449644c6f6f6b75704f663c543e00011c726573637565729d0101504163636f756e7449644c6f6f6b75704f663c543e0001201901416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420616e20612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e3c6372656174655f7265636f766572790c011c667269656e6473ad0101445665633c543a3a4163636f756e7449643e0001247468726573686f6c645501010c75313600013064656c61795f706572696f64100144426c6f636b4e756d626572466f723c543e00024059014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e44696e6974696174655f7265636f7665727904011c6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e00032ce8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e38766f7563685f7265636f766572790801106c6f73749d0101504163636f756e7449644c6f6f6b75704f663c543e00011c726573637565729d0101504163636f756e7449644c6f6f6b75704f663c543e0004302501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e38636c61696d5f7265636f7665727904011c6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e000524f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e38636c6f73655f7265636f7665727904011c726573637565729d0101504163636f756e7449644c6f6f6b75704f663c543e00062c110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e3c72656d6f76655f7265636f7665727900072c590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e4063616e63656c5f7265636f766572656404011c6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e00081cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5020c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765749d0101504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765749d0101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65e90201b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263659d0101504163636f756e7449644c6f6f6b75704f663c543e0001187461726765749d0101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65e90201b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765749d01018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9020c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000ed020c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963f10201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963f10201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963f10201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963f10201ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef10204184f7074696f6e04045401f5020108104e6f6e6500000010536f6d650400f5020000010000f50200000408101000f9020c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616c9d0101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065fd0201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c65676174659d0101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c65676174659d0101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465785501010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e65729d0101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706501030130543a3a50726f787954797065000114696e6465785501010c753136000118686569676874d40144426c6f636b4e756d626572466f723c543e0001246578745f696e646578d4010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e39012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f206070757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c9d0101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c9d0101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c65676174659d0101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c65676174659d0101504163636f756e7449644c6f6f6b75704f663c543e0001107265616c9d0101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065fd0201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd0204184f7074696f6e0404540101030108104e6f6e6500000010536f6d650400010300000100000103085873746167696e675f6b7573616d615f72756e74696d652450726f7879547970650001240c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e670003002c43616e63656c50726f78790005001c41756374696f6e0006001c536f63696574790007003c4e6f6d696e6174696f6e506f6f6c730008003053706f6b6573706572736f6e0009000005030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573ad0101445665633c543a3a4163636f756e7449643e00011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c645501010c7531360001446f746865725f7369676e61746f72696573ad0101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74090301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c5d01017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c645501010c7531360001446f746865725f7369676e61746f72696573ad0101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74090301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c645501010c7531360001446f746865725f7369676e61746f72696573ad0101445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e090304184f7074696f6e040454010d030108104e6f6e6500000010536f6d6504000d0300000100000d03083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000011030c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573150301305665633c543a3a486173683e00040cc4456e7375726520746861742074686520612062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1503000002340019030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0804540004490001243870726f706f73655f626f756e747908011476616c7565e4013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964d4012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f6964d4012c426f756e7479496e64657800011c63757261746f729d0101504163636f756e7449644c6f6f6b75704f663c543e00010c666565e4013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f6964d4012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f6964d4012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f6964d4012c426f756e7479496e64657800012c62656e65666963696172799d0101504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f6964d4012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f6964d4012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964d4012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d030c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800011476616c7565e4013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964d4012c426f756e7479496e64657800011c63757261746f729d0101504163636f756e7449644c6f6f6b75704f663c543e00010c666565e4013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964d4012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964d4012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964d4012c426f756e7479496e64657800012c62656e65666963696172799d0101504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964d4012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964d4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964d4012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e250301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e65737359040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f72655d0401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747361040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e250301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572733d02012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574733d02012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2503089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453012903000c0120736f6c7574696f6e290301045300011473636f726555040134456c656374696f6e53636f7265000114726f756e6410010c75333200002903085873746167696e675f6b7573616d615f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e32340000600118766f746573312d0300000118766f74657332390300000118766f746573334d0300000118766f74657334590300000118766f74657335650300000118766f74657336710300000118766f746573377d0300000118766f74657338890300000118766f7465733995030000011c766f7465733130a1030000011c766f7465733131ad030000011c766f7465733132b9030000011c766f7465733133c5030000011c766f7465733134d1030000011c766f7465733135dd030000011c766f7465733136e9030000011c766f7465733137f5030000011c766f746573313801040000011c766f74657331390d040000011c766f746573323019040000011c766f746573323125040000011c766f746573323231040000011c766f74657332333d040000011c766f746573323449040000002d03000002310300310300000408d4350300350300000655010039030000023d03003d030000040cd441033503004103000004083503450300450300000649030049030c3473705f61726974686d65746963287065725f7468696e677318506572553136000004005501010c75313600004d0300000251030051030000040cd4550335030055030000030200000041030059030000025d03005d030000040cd46103350300610300000303000000410300650300000269030069030000040cd46d033503006d0300000304000000410300710300000275030075030000040cd479033503007903000003050000004103007d0300000281030081030000040cd4850335030085030000030600000041030089030000028d03008d030000040cd49103350300910300000307000000410300950300000299030099030000040cd49d033503009d0300000308000000410300a103000002a50300a5030000040cd4a903350300a90300000309000000410300ad03000002b10300b1030000040cd4b503350300b5030000030a000000410300b903000002bd0300bd030000040cd4c103350300c1030000030b000000410300c503000002c90300c9030000040cd4cd03350300cd030000030c000000410300d103000002d50300d5030000040cd4d903350300d9030000030d000000410300dd03000002e10300e1030000040cd4e503350300e5030000030e000000410300e903000002ed0300ed030000040cd4f103350300f1030000030f000000410300f503000002f90300f9030000040cd4fd03350300fd0300000310000000410300010400000205040005040000040cd409043503000904000003110000004103000d0400000211040011040000040cd4150435030015040000031200000041030019040000021d04001d040000040cd42104350300210400000313000000410300250400000229040029040000040cd42d043503002d0400000314000000410300310400000235040035040000040cd439043503003904000003150000004103003d0400000241040041040000040cd4450435030045040000031600000041030049040000024d04004d040000040cd451043503005104000003170000004103005504084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e636500005904089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273d4010c75333200011c74617267657473d4010c75333200005d0404184f7074696f6e0404540155040108104e6f6e6500000010536f6d650400550400000100006104000002650400650400000408006904006904084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f746572736d0401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e00006d0400000271040071040000040800180075040c2870616c6c65745f6e69731870616c6c65741043616c6c04045400011c24706c6163655f626964080118616d6f756e74e4013042616c616e63654f663c543e0001206475726174696f6e10010c75333200002c30506c6163652061206269642e003d014f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e0031012d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642c20616e642069662f7768656ecc2020636f6e736f6c6964617465642c2072656d6f7665642e204d757374206265206174206c6561737420604d696e426964602e49012d20606475726174696f6e603a20546865206e756d626572206f6620706572696f6473206265666f726520776869636820746865206e65776c7920636f6e736f6c69646174656420626964206d6179206265fc20207468617765642e204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e0034436f6d706c657869746965733aac2d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f626964080118616d6f756e74e4013042616c616e63654f663c543e0001206475726174696f6e10010c75333200011c805265747261637420612070726576696f75736c7920706c61636564206269642e005d014f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d616374697665206269646c6f662060616d6f756e746020666f7220606475726174696f6e602e00ac2d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ebc2d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e3066756e645f6465666963697400020cf0456e7375726520776520686176652073756666696369656e742066756e64696e6720666f7220616c6c20706f74656e7469616c207061796f7574732e00b42d20606f726967696e603a204d757374206265206163636570746564206279206046756e644f726967696e602e30746861775f70726976617465080114696e646578d4013052656365697074496e6465780001406d617962655f70726f706f7274696f6e9902014c4f7074696f6e3c5065727175696e74696c6c3e0003205d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0059012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f662074686520726563656970742060696e646578602061738c202077656c6c20617320616e792066756e6769626c6520636f756e746572706172742e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e5d012d2060706f7274696f6e603a2049662060536f6d65602c207468656e206f6e6c792074686520676976656e20706f7274696f6e206f662074686520726563656970742073686f756c64206265207468617765642e2049668c2020604e6f6e65602c207468656e20616c6c206f662069742073686f756c642062652e34746861775f636f6d6d756e616c040114696e646578d4013052656365697074496e6465780004185d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0061012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652066756e6769626c6520636f756e74657270617274582020666f7220726563656970742060696e646578602e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e24636f6d6d756e696679040114696e646578d4013052656365697074496e6465780005043d014d616b6520612070726976617465207265636569707420636f6d6d756e616c20616e64206372656174652066756e6769626c6520636f756e746572706172747320666f7220697473206f776e65722e24707269766174697a65040114696e646578d4013052656365697074496e64657800060439014d616b65206120636f6d6d756e616c2072656365697074207072697661746520616e64206275726e2066756e6769626c6520636f756e74657270617274732066726f6d20697473206f776e65722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e79040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f6465617468080110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263659d0101504163636f756e7449644c6f6f6b75704f663c543e000110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565e40128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573749d0101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fad0101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f9d0101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565e40128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6eb101014c41646a7573746d656e74446972656374696f6e00011464656c7461e40128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565e40128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d040c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f63617465649d0101504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465729d0101504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c686561766965729d0101504163636f756e7449644c6f6f6b75704f663c543e00011c6c6967687465729d0101504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e81040c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e74e4013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400002845015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e64206973207472616e736665727265642066726f6d20746865206d656d62657220746f20746865dc706f6f6c73206163636f756e7420616e6420696d6d6564696174656c7920696e637265617365732074686520706f6f6c7320626f6e642e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f657874726104011465787472618504015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e7473e4013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e74e4013042616c616e63654f663c543e000110726f6f749d0101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f729d0101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e6365729d0101504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e74e4013042616c616e63654f663c543e000110726f6f749d0101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f729d0101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e6365729d0101504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273ad0101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00490154686973206469726563746c7920666f7277617264207468652063616c6c20746f20746865207374616b696e672070616c6c65742c206f6e20626568616c66206f662074686520706f6f6c20626f6e646564206163636f756e742e001823204e6f7465005d01496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c20706f6f6c2773206465706f7369746f72206e6565647320746f2068617665f86174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c4964000114737461746589040124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e648d040158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e648d040158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c7391040134436f6e6669674f703c7533323e00012c6d61785f6d656d6265727391040134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6c91040134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e95040144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f7499040158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f7299040158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e63657299040158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d40704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a59012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f74686572776973652020706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ad82a205468652063616c6c6572206861732061206e6f6d696e61746f72206f7220726f6f7420726f6c65206f662074686520706f6f6c2e490154686973206469726563746c7920666f7277617264207468652063616c6c20746f20746865207374616b696e672070616c6c65742c206f6e20626568616c66206f662074686520706f6f6c20626f6e646564206163636f756e742e40626f6e645f65787472615f6f746865720801186d656d6265729d0101504163636f756e7449644c6f6f6b75704f663c543e00011465787472618504015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6e9d04013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6ea104017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6e94011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465a904019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400141464436c61696d2070656e64696e6720636f6d6d697373696f6e2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e6564206279207468652060726f6f746020726f6c65206f662074686520706f6f6c2e2050656e64696e675d01636f6d6d697373696f6e2069732070616964206f757420616e6420616464656420746f20746f74616c20636c61696d656420636f6d6d697373696f6e602e20546f74616c2070656e64696e6720636f6d6d697373696f6e78697320726573657420746f207a65726f2e207468652063757272656e742e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ead0401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e00171c884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005501546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e20496620746865206d656d626572206861731d01736c61736820746f206265206170706c6965642c2063616c6c6572206d61792062652072657761726465642077697468207468652070617274206f662074686520736c6173682e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e749d0101504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c52657761726473000100008904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e67000200008d04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200009104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200009504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540194010c104e6f6f700000000c5365740400940104540001001852656d6f7665000200009904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f7665000200009d04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000a10404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000a50400000408940000a904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e63726561736594011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000ad0404184f7074696f6e04045401b1040108104e6f6e6500000010536f6d650400b1040000010000b104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e74496400010000b5040c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66590163616c6c696e67205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c7920626520666f6c6c6f776564b0627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800023494436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb904106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001c07c7365745f76616c69646174696f6e5f757067726164655f636f6f6c646f776e04010c6e6577100144426c6f636b4e756d626572466f723c543e00000490536574207468652076616c69646174696f6e207570677261646520636f6f6c646f776e2e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e00010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e487365745f636f726574696d655f636f72657304010c6e657710010c753332000610ac53657420746865206e756d626572206f6620636f726574696d6520657865637574696f6e20636f7265732e0051014e4f54453a2074686174207468697320636f6e66696775726174696f6e206973206d616e616765642062792074686520636f726574696d6520636861696e2e204f6e6c79206d616e75616c6c79206368616e6765b0746869732c20696620796f75207265616c6c79206b6e6f77207768617420796f752061726520646f696e6721747365745f6d61785f617661696c6162696c6974795f74696d656f75747304010c6e657710010c753332000704410153657420746865206d6178206e756d626572206f662074696d6573206120636c61696d206d61792074696d656f7574206f6e206120636f7265206265666f7265206974206973206162616e646f6e6564707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100144426c6f636b4e756d626572466f723c543e000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f70617261735f617661696c6162696c6974795f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000904985365742074686520617661696c6162696c69747920706572696f6420666f722070617261732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65773d02012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e65773d02012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c7533320018084d015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174146f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e487365745f7076665f766f74696e675f74746c04010c6e657710013053657373696f6e496e646578002a04510153657420746865206e756d626572206f662073657373696f6e206368616e676573206166746572207768696368206120505646207072652d636865636b696e6720766f74696e672069732072656a65637465642e907365745f6d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e002b1055015365747320746865206d696e696d756d2064656c6179206265747765656e20616e6e6f756e63696e6720746865207570677261646520626c6f636b20666f7220612070617261636861696e20756e74696c2074686554757067726164652074616b696e6720706c6163652e00390153656520746865206669656c6420646f63756d656e746174696f6e20666f7220696e666f726d6174696f6e20616e6420636f6e73747261696e747320666f7220746865206e65772076616c75652e707365745f6279706173735f636f6e73697374656e63795f636865636b04010c6e6577200110626f6f6c002c084d0153657474696e67207468697320746f20747275652077696c6c2064697361626c6520636f6e73697374656e637920636865636b7320666f722074686520636f6e66696775726174696f6e20736574746572732e4455736520776974682063617574696f6e2e607365745f6173796e635f6261636b696e675f706172616d7304010c6e6577bd0401484173796e634261636b696e67506172616d73002d04a053657420746865206173796e6368726f6e6f7573206261636b696e6720706172616d65746572732e4c7365745f6578656375746f725f706172616d7304010c6e6577c10401384578656375746f72506172616d73002e047053657420505646206578656375746f7220706172616d65746572732e587365745f6f6e5f64656d616e645f626173655f66656504010c6e657718011c42616c616e6365002f04a453657420746865206f6e2064656d616e6420287061726174687265616473292062617365206665652e747365745f6f6e5f64656d616e645f6665655f766172696162696c69747904010c6e657794011c50657262696c6c003004c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e707365745f6f6e5f64656d616e645f71756575655f6d61785f73697a6504010c6e657710010c753332003104bc53657420746865206f6e2064656d616e642028706172617468726561647329207175657565206d61782073697a652e987365745f6f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e04010c6e657794011c50657262696c6c003204c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e447365745f6f6e5f64656d616e645f74746c04010c6e6577100144426c6f636b4e756d626572466f723c543e003304d853657420746865206f6e2064656d616e6420287061726174687265616473292074746c20696e2074686520636c61696d71756575652e647365745f6d696e696d756d5f6261636b696e675f766f74657304010c6e657710010c753332003404a053657420746865206d696e696d756d206261636b696e6720766f746573207468726573686f6c642e407365745f6e6f64655f66656174757265080114696e646578080108753800011476616c7565200110626f6f6c003504645365742f556e7365742061206e6f646520666561747572652e687365745f617070726f76616c5f766f74696e675f706172616d7304010c6e6577d5040150417070726f76616c566f74696e67506172616d730036046c53657420617070726f76616c2d766f74696e672d706172616d732e507365745f7363686564756c65725f706172616d7304010c6e6577d90401885363686564756c6572506172616d733c426c6f636b4e756d626572466f723c543e3e00370454536574207363686564756c65722d706172616d732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd04104c706f6c6b61646f745f7072696d697469766573087637346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000c104104c706f6c6b61646f745f7072696d6974697665730876373c6578656375746f725f706172616d73384578656375746f72506172616d7300000400c50401485665633c4578656375746f72506172616d3e0000c504000002c90400c904104c706f6c6b61646f745f7072696d6974697665730876373c6578656375746f725f706172616d73344578656375746f72506172616d00011c384d61784d656d6f72795061676573040010010c7533320001003c537461636b4c6f676963616c4d6178040010010c75333200020038537461636b4e61746976654d6178040010010c75333200030050507265636865636b696e674d61784d656d6f7279040030010c753634000400385076665072657054696d656f75740800cd04012c507666507265704b696e64000030010c753634000500385076664578656354696d656f75740800d104012c507666457865634b696e64000030010c753634000600445761736d45787442756c6b4d656d6f727900070000cd040c4c706f6c6b61646f745f7072696d6974697665730876372c507666507265704b696e6400010820507265636865636b0000001c5072657061726500010000d1040c4c706f6c6b61646f745f7072696d6974697665730876372c507666457865634b696e640001081c4261636b696e6700000020417070726f76616c00010000d5040c4c706f6c6b61646f745f7072696d69746976657308763750417070726f76616c566f74696e67506172616d73000004016c6d61785f617070726f76616c5f636f616c657363655f636f756e7410010c7533320000d9040c4c706f6c6b61646f745f7072696d697469766573207673746167696e673c5363686564756c6572506172616d73042c426c6f636b4e756d6265720110002c016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d62657200016470617261735f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d62657200015c6d61785f76616c696461746f72735f7065725f636f72653d02012c4f7074696f6e3c7533323e0001246c6f6f6b616865616410010c7533320001246e756d5f636f72657310010c7533320001646d61785f617661696c6162696c6974795f74696d656f75747310010c7533320001606f6e5f64656d616e645f71756575655f6d61785f73697a6510010c7533320001886f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e94011c50657262696c6c0001646f6e5f64656d616e645f6665655f766172696162696c69747994011c50657262696c6c0001486f6e5f64656d616e645f626173655f66656518011c42616c616e636500010c74746c10012c426c6f636b4e756d6265720000dd04106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee104106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee504106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e74657204011064617461e904019050617261636861696e73496e686572656e74446174613c486561646572466f723c543e3e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9040c4c706f6c6b61646f745f7072696d69746976657308763730496e686572656e7444617461040c484452017901001001246269746669656c6473ed040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465730905017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e00012064697370757465734d0501604d756c74694469737075746553746174656d656e74536574000134706172656e745f6865616465727901010c4844520000ed04000002f10400f104104c706f6c6b61646f745f7072696d697469766573087637187369676e65643c556e636865636b65645369676e6564081c5061796c6f616401f5042c5265616c5061796c6f616401f504000c011c7061796c6f6164f504011c5061796c6f616400013c76616c696461746f725f696e6465780105013856616c696461746f72496e6465780001247369676e61747572650505014856616c696461746f725369676e61747572650000f5040c4c706f6c6b61646f745f7072696d69746976657308763750417661696c6162696c6974794269746669656c6400000400f904017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e0000f90400000708fd0400fd040c18626974766563146f72646572104c7362300000000001050c4c706f6c6b61646f745f7072696d6974697665730876373856616c696461746f72496e6465780000040010010c75333200000505104c706f6c6b61646f745f7072696d6974697665730876373476616c696461746f725f617070245369676e61747572650000040025020148737232353531393a3a5369676e6174757265000009050000020d05000d050c4c706f6c6b61646f745f7072696d6974697665730876373c4261636b656443616e6469646174650404480134000c012463616e64696461746511050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573450501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573f904017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e000011050c4c706f6c6b61646f745f7072696d69746976657308763764436f6d6d697474656443616e6469646174655265636569707404044801340008012864657363726970746f721505015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74732505015043616e646964617465436f6d6d69746d656e7473000015050c4c706f6c6b61646f745f7072696d6974697665730876374c43616e64696461746544657363726970746f7204044801340024011c706172615f696469020108496400013072656c61795f706172656e7434010448000120636f6c6c61746f7219050128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736834011048617368000120706f765f6861736834011048617368000130657261737572655f726f6f74340110486173680001247369676e61747572651d050144436f6c6c61746f725369676e6174757265000124706172615f686561643401104861736800015076616c69646174696f6e5f636f64655f686173682105014856616c69646174696f6e436f64654861736800001905104c706f6c6b61646f745f7072696d69746976657308763730636f6c6c61746f725f617070185075626c69630000040004013c737232353531393a3a5075626c696300001d05104c706f6c6b61646f745f7072696d69746976657308763730636f6c6c61746f725f617070245369676e61747572650000040025020148737232353531393a3a5369676e6174757265000021050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665734856616c69646174696f6e436f6465486173680000040034011048617368000025050c4c706f6c6b61646f745f7072696d6974697665730876375043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573290501385570776172644d6573736167657300014c686f72697a6f6e74616c5f6d657373616765732d050148486f72697a6f6e74616c4d6573736167657300014c6e65775f76616c69646174696f6e5f636f6465390501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746141050120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000029050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401380453000004006d0101185665633c543e00002d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013105045300000400350501185665633c543e000031050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401690200080124726563697069656e746902010849640001106461746138015073705f7374643a3a7665633a3a5665633c75383e00003505000002310500390504184f7074696f6e040454013d050108104e6f6e6500000010536f6d6504003d0500000100003d050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040038011c5665633c75383e000041050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000450500000249050049050c4c706f6c6b61646f745f7072696d6974697665730876374c56616c69646974794174746573746174696f6e00010820496d706c6963697404000505014856616c696461746f725369676e6174757265000100204578706c6963697404000505014856616c696461746f725369676e6174757265000200004d0500000251050051050c4c706f6c6b61646f745f7072696d6974697665730876374c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173685505013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e7473590501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000055050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e646964617465486173680000040034011048617368000059050000025d05005d050000040c6105010505050061050c4c706f6c6b61646f745f7072696d697469766573087637404469737075746553746174656d656e740001081456616c696404006505016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404006d05016c496e76616c69644469737075746553746174656d656e744b696e640001000065050c4c706f6c6b61646f745f7072696d6974697665730876376456616c69644469737075746553746174656d656e744b696e64000114204578706c696369740000003c4261636b696e675365636f6e646564040034011048617368000100304261636b696e6756616c696404003401104861736800020040417070726f76616c436865636b696e6700030088417070726f76616c436865636b696e674d756c7469706c6543616e646964617465730400690501485665633c43616e646964617465486173683e0004000069050000025505006d050c4c706f6c6b61646f745f7072696d6974697665730876376c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000007105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400012458666f7263655f7365745f63757272656e745f636f646508011070617261690201185061726149640001206e65775f636f64653d05013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261690201185061726149640001206e65775f686561644105012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261690201185061726149640001206e65775f636f64653d05013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100144426c6f636b4e756d626572466f723c543e0002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261690201185061726149640001206e65775f686561644105012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172616902011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e6c6164645f747275737465645f76616c69646174696f6e5f636f646504013c76616c69646174696f6e5f636f64653d05013856616c69646174696f6e436f6465000538a041646473207468652076616c69646174696f6e20636f646520746f207468652073746f726167652e00590154686520636f64652077696c6c206e6f7420626520616464656420696620697420697320616c72656164792070726573656e742e204164646974696f6e616c6c792c20696620505646207072652d636865636b696e67e069732072756e6e696e6720666f72207468617420636f64652c2069742077696c6c20626520696e7374616e746c792061636365707465642e0051014f74686572776973652c2074686520636f64652077696c6c20626520616464656420696e746f207468652073746f726167652e204e6f746520746861742074686520636f64652077696c6c2062652061646465646101696e746f2073746f726167652077697468207265666572656e636520636f756e7420302e205468697320697320746f206163636f756e74207468652066616374207468617420746865726520617265206e6f2075736572734d01666f72207468697320636f6465207965742e205468652063616c6c65722077696c6c206861766520746f206d616b6520737572652074686174207468697320636f6465206576656e7475616c6c79206765747349017573656420627920736f6d652070617261636861696e206f722072656d6f7665642066726f6d207468652073746f7261676520746f2061766f69642073746f72616765206c65616b732e20466f722074686549016c61747465722070726566657220746f20757365207468652060706f6b655f756e757365645f76616c69646174696f6e5f636f64656020646973706174636861626c6520746f207261772073746f72616765346d616e6970756c6174696f6e2e005101546869732066756e6374696f6e206973206d61696e6c79206d65616e7420746f206265207573656420666f7220757067726164696e672070617261636861696e73207468617420646f206e6f7420666f6c6c6f77090174686520676f2d6168656164207369676e616c207768696c652074686520505646207072652d636865636b696e67206665617475726520697320656e61626c65642e6c706f6b655f756e757365645f76616c69646174696f6e5f636f646504015076616c69646174696f6e5f636f64655f686173682105014856616c69646174696f6e436f646548617368000614250152656d6f7665207468652076616c69646174696f6e20636f64652066726f6d207468652073746f726167652069666620746865207265666572656e636520636f756e7420697320302e0059015468697320697320626574746572207468616e2072656d6f76696e67207468652073746f72616765206469726563746c792c20626563617573652069742077696c6c206e6f742072656d6f76652074686520636f6465410174686174207761732073756464656e6c7920676f74207573656420627920736f6d652070617261636861696e207768696c65207468697320646973706174636861626c65207761732070656e64696e67306469737061746368696e672e6c696e636c7564655f7076665f636865636b5f73746174656d656e7408011073746d7475050144507666436865636b53746174656d656e740001247369676e61747572650505014856616c696461746f725369676e61747572650007085501496e636c7564657320612073746174656d656e7420666f72206120505646207072652d636865636b696e6720766f74652e20506f74656e7469616c6c792c2066696e616c697a65732074686520766f746520616e644101656e616374732074686520726573756c747320696620746861742077617320746865206c61737420766f7465206265666f726520616368696576696e67207468652073757065726d616a6f726974792e74666f7263655f7365745f6d6f73745f726563656e745f636f6e74657874080110706172616902011850617261496400011c636f6e74657874100144426c6f636b4e756d626572466f723c543e0008040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75050c4c706f6c6b61646f745f7072696d69746976657308763744507666436865636b53746174656d656e740000100118616363657074200110626f6f6c00011c7375626a6563742105014856616c69646174696f6e436f64654861736800013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c76616c696461746f725f696e6465780105013856616c696461746f72496e64657800007905106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400012c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e746902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465726902011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69648105013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d700c0110706172616902011850617261496400012c6e756d5f696e626f756e6410010c7533320001306e756d5f6f7574626f756e6410010c75333200031c5d01546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d73207468617420612070617261206d617920686176652e49014e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f777320796f7520746f20747269676765722074686520636c65616e757094696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e0051014e756d626572206f6620696e626f756e6420616e64206f7574626f756e64206368616e6e656c7320666f7220607061726160206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e5c666f7263655f70726f636573735f68726d705f6f70656e0401206368616e6e656c7310010c753332000420a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0055014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f66206f70656e696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e60666f7263655f70726f636573735f68726d705f636c6f73650401206368616e6e656c7310010c753332000520a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0059014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f6620636c6f73696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6068726d705f63616e63656c5f6f70656e5f726571756573740801286368616e6e656c5f69648105013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c7533320006205d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420627920656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e005d015468652063616e63656c6c6174696f6e2068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e005901546f74616c206e756d626572206f66206f70656e2072657175657374732028692e652e206048726d704f70656e4368616e6e656c52657175657374734c6973746029206d7573742062652070726f7669646564206173347769746e65737320646174612e5c666f7263655f6f70656e5f68726d705f6368616e6e656c10011873656e64657269020118506172614964000124726563697069656e74690201185061726149640001306d61785f636170616369747910010c7533320001406d61785f6d6573736167655f73697a6510010c75333200072061014f70656e2061206368616e6e656c2066726f6d2061206073656e6465726020746f20612060726563697069656e74602060506172614964602e20416c74686f756768206f70656e656420627920676f7665726e616e63652c410174686520606d61785f63617061636974796020616e6420606d61785f6d6573736167655f73697a656020617265207374696c6c207375626a65637420746f207468652052656c617920436861696e277348636f6e66696775726564206c696d6974732e004d01457870656374656420757365206973207768656e206f6e652028616e64206f6e6c79206f6e6529206f66207468652060506172614964607320696e766f6c76656420696e20746865206368616e6e656c206973c0676f7665726e6564206279207468652073797374656d2c20652e672e20612073797374656d2070617261636861696e2e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6065737461626c6973685f73797374656d5f6368616e6e656c08011873656e64657269020118506172614964000124726563697069656e7469020118506172614964000830510145737461626c69736820616e2048524d50206368616e6e656c206265747765656e2074776f2073797374656d20636861696e732e20496620746865206368616e6e656c20646f6573206e6f7420616c7265616479510165786973742c20746865207472616e73616374696f6e20666565732077696c6c20626520726566756e64656420746f207468652063616c6c65722e205468652073797374656d20646f6573206e6f742074616b6559016465706f7369747320666f72206368616e6e656c73206265747765656e2073797374656d20636861696e732c20616e64206175746f6d61746963616c6c79207365747320746865206d657373616765206e756d6265721901616e642073697a65206c696d69747320746f20746865206d6178696d756d20616c6c6f77656420627920746865206e6574776f726b277320636f6e66696775726174696f6e2e0028417267756d656e74733a00942d206073656e646572603a20412073797374656d20636861696e2c2060506172614964602ea02d2060726563697069656e74603a20412073797374656d20636861696e2c2060506172614964602e005501416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2c20627574205f626f74685f20696e70757473204d5553542062652073797374656d20636861696e732e204966c0746865206368616e6e656c20646f6573206e6f74206578697374207965742c207468657265206973206e6f206665652e54706f6b655f6368616e6e656c5f6465706f7369747308011873656e64657269020118506172614964000124726563697069656e7469020118506172614964000924510155706461746520746865206465706f736974732068656c6420666f7220616e2048524d50206368616e6e656c20746f20746865206c61746573742060436f6e66696775726174696f6e602e204368616e6e656c73b0776974682073797374656d20636861696e7320646f206e6f7420726571756972652061206465706f7369742e0028417267756d656e74733a00782d206073656e646572603a204120636861696e2c2060506172614964602e842d2060726563697069656e74603a204120636861696e2c2060506172614964602e00a4416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2e7465737461626c6973685f6368616e6e656c5f776974685f73797374656d04014c7461726765745f73797374656d5f636861696e69020118506172614964000a1c390145737461626c6973682061206269646972656374696f6e616c2048524d50206368616e6e656c206265747765656e20612070617261636861696e20616e6420612073797374656d20636861696e2e0028417267756d656e74733a00c82d20607461726765745f73797374656d5f636861696e603a20412073797374656d20636861696e2c2060506172614964602e00b0546865206f726967696e206e6565647320746f206265207468652070617261636861696e206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e81050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572690201084964000124726563697069656e7469020108496400008505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c65741043616c6c04045400010438666f7263655f756e667265657a65000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8905146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c65741043616c6c040454000104707265706f72745f646973707574655f6c6f73745f756e7369676e6564080134646973707574655f70726f6f668d050144426f783c4469737075746550726f6f663e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f66000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d05104c706f6c6b61646f745f7072696d69746976657308763720736c617368696e67304469737075746550726f6f66000010012474696d655f736c6f7491050140446973707574657354696d65536c6f740001106b696e649505014c536c617368696e674f6666656e63654b696e6400013c76616c696461746f725f696e6465780105013856616c696461746f72496e64657800013076616c696461746f725f6964f901012c56616c696461746f72496400009105104c706f6c6b61646f745f7072696d69746976657308763720736c617368696e6740446973707574657354696d65536c6f74000008013473657373696f6e5f696e64657810013053657373696f6e496e64657800013863616e6469646174655f686173685505013443616e6469646174654861736800009505104c706f6c6b61646f745f7072696d69746976657308763720736c617368696e674c536c617368696e674f6666656e63654b696e6400010828466f72496e76616c696400000030416761696e737456616c6964000100009905106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e641870616c6c65741043616c6c0404540001085c706c6163655f6f726465725f616c6c6f775f64656174680801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f69646902011850617261496400003c9443726561746520612073696e676c65206f6e2064656d616e6420636f7265206f726465722e490157696c6c20757365207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b20616e642077696c6c207265617020746865206163636f756e74206966206e65656465642e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646058706c6163655f6f726465725f6b6565705f616c6976650801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f69646902011850617261496400013c610153616d6520617320746865205b60706c6163655f6f726465725f616c6c6f775f6465617468605d2853656c663a3a706c6163655f6f726465725f616c6c6f775f6465617468292063616c6c202c2062757420776974682061dc636865636b207468617420706c6163696e6720746865206f726465722077696c6c206e6f74207265617020746865206163636f756e742e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c6163656460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001242072656769737465720c010869646902011850617261496400013067656e657369735f6865616441050120486561644461746100013c76616c69646174696f6e5f636f64653d05013856616c69646174696f6e436f6465000050f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565730901546865206163636f756e74207769746820746865206f726967696e6174696e67207369676e6174757265206d75737420726573657276652061206465706f7369742e004d01546865206465706f73697420697320726571756972656420746f20636f7665722074686520636f737473206173736f63696174656420776974682073746f72696e67207468652067656e657369732068656164746461746120616e64207468652076616c69646174696f6e20636f64652e310154686973206163636f756e747320666f722074686520706f74656e7469616c20746f2073746f72652076616c69646174696f6e20636f6465206f6620612073697a6520757020746f20746865dc606d61785f636f64655f73697a65602c20617320646566696e656420696e2074686520636f6e66696775726174696f6e2070616c6c6574001d01416e797468696e6720616c72656164792072657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869646902011850617261496400013067656e657369735f6865616441050120486561644461746100013c76616c69646174696f6e5f636f64653d05013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e2864657265676973746572040108696469020118506172614964000210050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e0051015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d75737420626520616e506f6e2d64656d616e642070617261636861696e2e10737761700801086964690201185061726149640001146f74686572690201185061726149640003304101537761702061206c6561736520686f6c64696e672070617261636861696e207769746820616e6f746865722070617261636861696e2c20656974686572206f6e2d64656d616e64206f72206c6561736520686f6c64696e672e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697235017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520616e206f6e2d64656d616e642070617261636861696e206f72206c6561736520686f6c64696e67150170617261636861696e292c2061756374696f6e20696e666f726d6174696f6e20616e64207468652061756374696f6e206465706f736974206172652073776974636865642e2c72656d6f76655f6c6f636b04011070617261690201185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e00dc43616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e206f72207468652070617261636861696e2e1c72657365727665000544945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e6101546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f590163726561746520616e206f6e2d64656d616e642070617261636861696e2e205573696e672074686520536c6f74732070616c6c65742c20616e206f6e2d64656d616e642070617261636861696e2063616e207468656ea4626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e0030232320417267756d656e747355012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e6577282020706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e747359015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72107573652e206164645f6c6f636b040110706172616902011850617261496400061409014164642061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c2070726576656e7420746865206d616e61676572206f662061887061726120746f2064657265676973746572206f722073776170206120706172612e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e547363686564756c655f636f64655f7570677261646508011070617261690201185061726149640001206e65775f636f64653d05013856616c69646174696f6e436f646500072c745363686564756c6520612070617261636861696e20757067726164652e005501546869732077696c6c206b69636b206f6666206120636865636b206f6620606e65775f636f64656020627920616c6c2076616c696461746f72732e20416674657220746865206d616a6f72697479206f6620746865550176616c696461746f72732068617665207265706f72746564206f6e207468652076616c6964697479206f662074686520636f64652c2074686520636f64652077696c6c2065697468657220626520656e616374656455016f722074686520757067726164652077696c6c2062652072656a65637465642e2049662074686520636f64652077696c6c20626520656e61637465642c207468652063757272656e7420636f6465206f66207468655d0170617261636861696e2077696c6c206265206f7665727772697474656e206469726563746c792e2054686973206d65616e73207468617420616e7920506f562077696c6c20626520636865636b656420627920746869735d016e657720636f64652e205468652070617261636861696e20697473656c662077696c6c206e6f7420626520696e666f726d6564206578706c696369746c792074686174207468652076616c69646174696f6e20636f646530686173206368616e6765642e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e407365745f63757272656e745f6865616408011070617261690201185061726149640001206e65775f6865616441050120486561644461746100081084536574207468652070617261636861696e27732063757272656e7420686561642e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea105105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261690201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e0000104d014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746ffc68617070656e20696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e40636c6561725f616c6c5f6c6561736573040110706172616902011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e3c747269676765725f6f6e626f617264040110706172616902011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ed40144426c6f636b4e756d626572466f723c543e0001486c656173655f706572696f645f696e646578d401404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c62696414011070617261a905011850617261496400013461756374696f6e5f696e646578d4013041756374696f6e496e64657800012866697273745f736c6f74d401404c65617365506572696f644f663c543e0001246c6173745f736c6f74d401404c65617365506572696f644f663c543e000118616d6f756e74e4013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea905000006690200ad05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012418637265617465180114696e646578a905011850617261496400010c636170e4013042616c616e63654f663c543e00013066697273745f706572696f64d401404c65617365506572696f644f663c543e00012c6c6173745f706572696f64d401404c65617365506572696f644f663c543e00010c656e64d40144426c6f636b4e756d626572466f723c543e0001207665726966696572b105014c4f7074696f6e3c4d756c74695369676e65723e0000144d014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f641872616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e646578a905011850617261496400011476616c7565e4013042616c616e63654f663c543e0001247369676e6174757265b90501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e646578a9050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e005d015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c49017468656e20746865207265746972656d656e7420666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e005501496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7434626c6f636b206e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e646578a9050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e646578a9050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e646578a905011850617261496400010c636170e4013042616c616e63654f663c543e00013066697273745f706572696f64d401404c65617365506572696f644f663c543e00012c6c6173745f706572696f64d401404c65617365506572696f644f663c543e00010c656e64d40144426c6f636b4e756d626572466f723c543e0001207665726966696572b105014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578690201185061726149640001106d656d6f38011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465786902011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e38636f6e747269627574655f616c6c080114696e646578a90501185061726149640001247369676e6174757265b90501584f7074696f6e3c4d756c74695369676e61747572653e00080c6101436f6e7472696275746520796f757220656e746972652062616c616e636520746f20612063726f77642073616c652e20546869732077696c6c207472616e736665722074686520656e746972652062616c616e6365206f665101612075736572206f76657220746f2066756e6420612070617261636861696e20736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e206861737c656e64656420616e64207468652066756e64732061726520756e757365642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb10504184f7074696f6e04045401b5050108104e6f6e6500000010536f6d650400b5050000010000b505082873705f72756e74696d652c4d756c74695369676e657200010c1c45643235353139040004013c656432353531393a3a5075626c69630000001c53723235353139040004013c737232353531393a3a5075626c696300010014456364736104000902013465636473613a3a5075626c696300020000b90504184f7074696f6e04045401bd050108104e6f6e6500000010536f6d650400bd050000010000bd05082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040025020148656432353531393a3a5369676e61747572650000001c53723235353139040025020148737232353531393a3a5369676e61747572650001001445636473610400bd02014065636473613a3a5369676e617475726500020000c105106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c65741043616c6c04045400010c48726571756573745f636f72655f636f756e74040114636f756e745501010c7531360001185101526571756573742074686520636f6e66696775726174696f6e20746f206265207570646174656420776974682074686520737065636966696564206e756d626572206f6620636f7265732e205761726e696e673a510153696e63652074686973206f6e6c79207363686564756c6573206120636f6e66696775726174696f6e207570646174652c2069742074616b65732074776f2073657373696f6e7320746f20636f6d6520696e746f1c6566666563742e00982d20606f726967696e603a20526f6f74206f722074686520436f726574696d6520436861696e802d2060636f756e74603a20746f74616c206e756d626572206f6620636f72657348726571756573745f726576656e75655f61740401107768656e10012c426c6f636b4e756d62657200021061015265717565737420746f20636c61696d2074686520696e7374616e74616e656f757320636f726574696d652073616c657320726576656e7565207374617274696e672066726f6d2074686520626c6f636b206974207761735d016c61737420636c61696d656420756e74696c20616e6420757020746f2074686520626c6f636b207370656369666965642e2054686520636c61696d656420616d6f756e742076616c75652069732073656e74206261636b5101746f2074686520436f726574696d6520636861696e20696e206120606e6f746966795f726576656e756560206d6573736167652e204174207468652073616d652074696d652c2074686520616d6f756e742069738474656c65706f7274656420746f2074686520436f726574696d6520636861696e2e2c61737369676e5f636f7265100110636f72655501013c42726f6b6572436f7265496e646578000114626567696e100144426c6f636b4e756d626572466f723c543e00012861737369676e6d656e74c505018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e743d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00042459015265636569766520696e737472756374696f6e732066726f6d20746865206045787465726e616c42726f6b65724f726967696e602c2064657461696c696e6720686f77206120737065636966696320636f72652069732c746f20626520757365642e002c506172616d65746572733a21012d606f726967696e603a20546865206045787465726e616c42726f6b65724f726967696e602c20617373756d656420746f2062652074686520636f726574696d6520636861696e2eac2d60636f7265603a2054686520636f726520746861742073686f756c64206265207363686564756c65642ed82d60626567696e603a20546865207374617274696e6720626c6f636b686569676874206f662074686520696e737472756374696f6e2ed42d6061737369676e6d656e74603a20486f772074686520626c6f636b73706163652073686f756c64206265207574696c697365642e59012d60656e645f68696e74603a20416e206f7074696f6e616c2068696e7420617320746f207768656e207468697320706172746963756c617220736574206f6620696e737472756374696f6e732077696c6c20656e642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec505000002c90500c90500000408cd05d10500cd050c3470616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b496400020000d1050c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653050617274734f663537363030000004005501010c7531360000d5050c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e64080110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d657373616765d9050154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f617373657473100110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172792d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473d9060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f617373657473100110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172792d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473d9060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765dd0601b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6ef40134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e3d0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e2d010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e2d010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f617373657473140110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172792d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473d9060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69748d06012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f617373657473140110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172792d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473d9060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69748d06012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f617373657473140110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172792d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473d9060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69748d06012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f617373657473080118617373657473d9060150426f783c56657273696f6e65644173736574733e00012c62656e65666963696172792d010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c0110646573742d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473d9060150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f7479706509070144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f69640d070154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f7479706509070144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f64657374d9050154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69748d06012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed905080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856320400dd05015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304002d06015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009106015076343a3a58636d3c52756e74696d6543616c6c3e00040000dd050c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400e10501745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000e105000002e50500e5050c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c00017034576974686472617741737365740400e905012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400e905012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400e905012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736505060120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e736665724173736574080118617373657473e905012c4d756c746941737365747300012c62656e6566696369617279310101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473e905012c4d756c746941737365747300011064657374310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065150601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6c19060168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572d4010c7533320001406d61785f6d6573736167655f73697a65d4010c7533320001306d61785f6361706163697479d4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74d4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72d4010c75333200011873656e646572d4010c753332000124726563697069656e74d4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040035010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374310101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c01186173736574731d0601404d756c7469417373657446696c7465720001286d61785f617373657473d4010c75333200012c62656e6566696369617279310101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365741001186173736574731d0601404d756c7469417373657446696c7465720001286d61785f617373657473d4010c75333200011064657374310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e000e003445786368616e67654173736574080110676976651d0601404d756c7469417373657446696c74657200011c72656365697665e905012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c01186173736574731d0601404d756c7469417373657446696c74657200011c72657365727665310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574731d0601404d756c7469417373657446696c74657200011064657374310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374310101344d756c74694c6f636174696f6e0001186173736574731d0601404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573f10501284d756c746941737365740001307765696768745f6c696d69742906012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400dd05014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e6469780400dd05014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473e905012c4d756c74694173736574730001187469636b6574310101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b0000e905100c78636d087632286d756c746961737365742c4d756c746941737365747300000400ed05013c5665633c4d756c746941737365743e0000ed05000002f10500f105100c78636d087632286d756c74696173736574284d756c7469417373657400000801086964f505011c4173736574496400010c66756ef905012c46756e676962696c6974790000f505100c78636d087632286d756c746961737365741c4173736574496400010820436f6e63726574650400310101344d756c74694c6f636174696f6e000000204162737472616374040038011c5665633c75383e00010000f905100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400e40110753132380000002c4e6f6e46756e6769626c650400fd0501344173736574496e7374616e636500010000fd05100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400e401107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804000106011c5b75383b20385d0003001c417272617931360400a801205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040038011c5665633c75383e00060000010600000308000000080005060c0c78636d08763220526573706f6e7365000110104e756c6c000000184173736574730400e905012c4d756c74694173736574730001003c457865637574696f6e526573756c740400090601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000090604184f7074696f6e040454010d060108104e6f6e6500000010536f6d6504000d0600000100000d0600000408101106001106100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404003001185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c650019000015060c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d0003000019060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00001d06100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400e905012c4d756c74694173736574730000001057696c6404002106013857696c644d756c74694173736574000100002106100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f660801086964f505011c4173736574496400010c66756e2506013c57696c6446756e676962696c697479000100002506100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000029060c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002c010c753634000100002d060c0c78636d0876330c58636d041043616c6c00000400310601585665633c496e737472756374696f6e3c43616c6c3e3e0000310600000235060035060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404003906012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404003906012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404003906012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572750601544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574733906012c4d756c746941737365747300012c62656e6566696369617279c801344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574733906012c4d756c746941737365747300011064657374c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64790601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c1906014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572d4010c7533320001406d61785f6d6573736167655f73697a65d4010c7533320001306d61785f6361706163697479d4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74d4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72d4010c75333200011873656e646572d4010c753332000124726563697069656e74d4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400cc0154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204007d0601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473810601404d756c7469417373657446696c74657200012c62656e6566696369617279c801344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473810601404d756c7469417373657446696c74657200011064657374c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e000e003445786368616e676541737365740c011067697665810601404d756c7469417373657446696c74657200011077616e743906012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473810601404d756c7469417373657446696c74657200011c72657365727665c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473810601404d756c7469417373657446696c74657200011064657374c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f000118617373657473810601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573410601284d756c746941737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204002d06012458636d3c43616c6c3e0015002c536574417070656e64697804002d06012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574733906012c4d756c74694173736574730001187469636b6574c801344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404003906012c4d756c7469417373657473001c002c457870656374417373657404003906012c4d756c7469417373657473001d00304578706563744f726967696e0400750601544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400510601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304006d0601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578d4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72d4010c75333200013c6d696e5f63726174655f6d696e6f72d4010c753332002200505265706f72745472616e7361637453746174757304007d0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400d001204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bdc01244e6574776f726b496400012c64657374696e6174696f6ecc0154496e746572696f724d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e002600244c6f636b41737365740801146173736574410601284d756c74694173736574000120756e6c6f636b6572c801344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574410601284d756c74694173736574000118746172676574c801344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574410601284d756c746941737365740001146f776e6572c801344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574410601284d756c746941737365740001186c6f636b6572c801344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400c801344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696e750601544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00003906100c78636d087633286d756c746961737365742c4d756c7469417373657473000004003d06013c5665633c4d756c746941737365743e00003d060000024106004106100c78636d087633286d756c74696173736574284d756c7469417373657400000801086964f0011c4173736574496400010c66756e4506012c46756e676962696c69747900004506100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400e40110753132380000002c4e6f6e46756e6769626c650400490601344173736574496e7374616e6365000100004906100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400e401107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804000106011c5b75383b20385d0003001c417272617931360400a801205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d000500004d060c0c78636d08763320526573706f6e7365000118104e756c6c0000001841737365747304003906012c4d756c74694173736574730001003c457865637574696f6e526573756c740400510601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04005d060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404006d0601384d617962654572726f72436f646500050000510604184f7074696f6e0404540155060108104e6f6e6500000010536f6d65040055060000010000550600000408105906005906100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d6974002700005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016106045300000400690601185665633c543e000061060c0c78636d0876332850616c6c6574496e666f0000180114696e646578d4010c7533320001106e616d6565060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6565060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72d4010c7533320001146d696e6f72d4010c7533320001147061746368d4010c753332000065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000069060000026106006d060c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204007106018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204007106018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000071060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000750604184f7074696f6e04045401c80108104e6f6e6500000010536f6d650400c8000001000079060c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300007d060c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ec801344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400008106100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504003906012c4d756c74694173736574730000001057696c6404008506013857696c644d756c74694173736574000100008506100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f660801086964f0011c4173736574496400010c66756e8906013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400d4010c75333200020030416c6c4f66436f756e7465640c01086964f0011c4173736574496400010c66756e8906013c57696c6446756e676962696c697479000114636f756e74d4010c753332000300008906100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100008d060c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002801185765696768740001000091060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400950601585665633c496e737472756374696f6e3c43616c6c3e3e0000950600000299060099060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404009d060118417373657473000000545265736572766541737365744465706f736974656404009d060118417373657473000100585265636569766554656c65706f72746564417373657404009d060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b1060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572c50601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574739d06011841737365747300012c62656e6566696369617279f401204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d06011841737365747300011064657374f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64790601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c1906014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572d4010c7533320001406d61785f6d6573736167655f73697a65d4010c7533320001306d61785f6361706163697479d4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74d4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72d4010c75333200011873656e646572d4010c753332000124726563697069656e74d4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f80140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400c90601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473cd06012c417373657446696c74657200012c62656e6566696369617279f401204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473cd06012c417373657446696c74657200011064657374f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e000e003445786368616e676541737365740c011067697665cd06012c417373657446696c74657200011077616e749d06011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473cd06012c417373657446696c74657200011c72657365727665f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473cd06012c417373657446696c74657200011064657374f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f000118617373657473cd06012c417373657446696c74657200120030427579457865637574696f6e08011066656573a506011441737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009106012458636d3c43616c6c3e0015002c536574417070656e64697804009106012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574739d0601184173736574730001187469636b6574f401204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404009d060118417373657473001c002c457870656374417373657404009d060118417373657473001d00304578706563744f726967696e0400c50601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400510601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304006d0601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578d4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72d4010c75333200013c6d696e5f63726174655f6d696e6f72d4010c753332002200505265706f72745472616e736163745374617475730400c90601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400010101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b090101244e6574776f726b496400012c64657374696e6174696f6ef80140496e746572696f724c6f636174696f6e00010c78636d9106011c58636d3c28293e002600244c6f636b41737365740801146173736574a50601144173736574000120756e6c6f636b6572f401204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574a50601144173736574000118746172676574f401204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574a506011441737365740001146f776e6572f401204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574a506011441737365740001186c6f636b6572f401204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400f401204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696ec50601404f7074696f6e3c4c6f636174696f6e3e002f00009d06102c73746167696e675f78636d0876341461737365741841737365747300000400a10601285665633c41737365743e0000a106000002a50600a506102c73746167696e675f78636d087634146173736574144173736574000008010869642901011c4173736574496400010c66756ea906012c46756e676962696c6974790000a906102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400e40110753132380000002c4e6f6e46756e6769626c650400ad0601344173736574496e7374616e636500010000ad06102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400e401107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804000106011c5b75383b20385d0003001c417272617931360400a801205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000b1060c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c0000001841737365747304009d0601184173736574730001003c457865637574696f6e526573756c740400510601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400b5060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c7404006d0601384d617962654572726f72436f646500050000b5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b906045300000400c10601185665633c543e0000b9060c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578d4010c7533320001106e616d65bd060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65bd060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72d4010c7533320001146d696e6f72d4010c7533320001147061746368d4010c7533320000bd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c106000002b90600c50604184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000c9060c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ef401204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000cd06102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e69746504009d0601184173736574730000001057696c640400d106012457696c64417373657400010000d106102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869642901011c4173736574496400010c66756ed506013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400d4010c75333200020030416c6c4f66436f756e7465640c010869642901011c4173736574496400010c66756ed506013c57696c6446756e676962696c697479000114636f756e74d4010c75333200030000d506102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000d906080c78636d3c56657273696f6e656441737365747300010c0856320400e905013c76323a3a4d756c746941737365747300010008563304003906013c76333a3a4d756c746941737365747300030008563404009d06012876343a3a41737365747300040000dd06080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856320400e106015076323a3a58636d3c52756e74696d6543616c6c3e0002000856330400f106015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400fd06015076343a3a58636d3c52756e74696d6543616c6c3e00040000e1060c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400e50601745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e0000e506000002e90600e9060c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c00017034576974686472617741737365740400e905012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400e905012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400e905012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f69642c011c51756572794964000120726573706f6e736505060120526573706f6e73650001286d61785f7765696768742c010c753634000300345472616e736665724173736574080118617373657473e905012c4d756c746941737365747300012c62656e6566696369617279310101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473e905012c4d756c746941737365747300011064657374310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f74797065150601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f73742c010c75363400011063616c6ced060168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572d4010c7533320001406d61785f6d6573736167655f73697a65d4010c7533320001306d61785f6361706163697479d4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74d4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72d4010c75333200011873656e646572d4010c753332000124726563697069656e74d4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040035010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f69642c011c5175657279496400011064657374310101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f7765696768742c010c753634000c00304465706f73697441737365740c01186173736574731d0601404d756c7469417373657446696c7465720001286d61785f617373657473d4010c75333200012c62656e6566696369617279310101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365741001186173736574731d0601404d756c7469417373657446696c7465720001286d61785f617373657473d4010c75333200011064657374310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e000e003445786368616e67654173736574080110676976651d0601404d756c7469417373657446696c74657200011c72656365697665e905012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c01186173736574731d0601404d756c7469417373657446696c74657200011c72657365727665310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574731d0601404d756c7469417373657446696c74657200011064657374310101344d756c74694c6f636174696f6e00010c78636ddd05011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f69642c011c5175657279496400011064657374310101344d756c74694c6f636174696f6e0001186173736574731d0601404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f7765696768742c010c75363400120030427579457865637574696f6e08011066656573f10501284d756c746941737365740001307765696768745f6c696d69742906012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400e106014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e6469780400e106014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473e905012c4d756c74694173736574730001187469636b6574310101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f7765696768742c010c753634001a0048556e73756273637269626556657273696f6e001b0000ed060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000f1060c0c78636d0876330c58636d041043616c6c00000400f50601585665633c496e737472756374696f6e3c43616c6c3e3e0000f506000002f90600f9060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404003906012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404003906012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404003906012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73654d060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572750601544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574733906012c4d756c746941737365747300012c62656e6566696369617279c801344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574733906012c4d756c746941737365747300011064657374c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64790601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ced06014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572d4010c7533320001406d61785f6d6573736167655f73697a65d4010c7533320001306d61785f6361706163697479d4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74d4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72d4010c75333200011873656e646572d4010c753332000124726563697069656e74d4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400cc0154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204007d0601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473810601404d756c7469417373657446696c74657200012c62656e6566696369617279c801344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473810601404d756c7469417373657446696c74657200011064657374c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e000e003445786368616e676541737365740c011067697665810601404d756c7469417373657446696c74657200011077616e743906012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473810601404d756c7469417373657446696c74657200011c72657365727665c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473810601404d756c7469417373657446696c74657200011064657374c801344d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f000118617373657473810601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573410601284d756c746941737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400f106012458636d3c43616c6c3e0015002c536574417070656e6469780400f106012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574733906012c4d756c74694173736574730001187469636b6574c801344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404003906012c4d756c7469417373657473001c002c457870656374417373657404003906012c4d756c7469417373657473001d00304578706563744f726967696e0400750601544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400510601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304006d0601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578d4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72d4010c75333200013c6d696e5f63726174655f6d696e6f72d4010c753332002200505265706f72745472616e7361637453746174757304007d0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400d001204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bdc01244e6574776f726b496400012c64657374696e6174696f6ecc0154496e746572696f724d756c74694c6f636174696f6e00010c78636d2d06011c58636d3c28293e002600244c6f636b41737365740801146173736574410601284d756c74694173736574000120756e6c6f636b6572c801344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574410601284d756c74694173736574000118746172676574c801344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574410601284d756c746941737365740001146f776e6572c801344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574410601284d756c746941737365740001186c6f636b6572c801344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400c801344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696e750601544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000fd060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400010701585665633c496e737472756374696f6e3c43616c6c3e3e0000010700000205070005070c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404009d060118417373657473000000545265736572766541737365744465706f736974656404009d060118417373657473000100585265636569766554656c65706f72746564417373657404009d060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b1060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572c50601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574739d06011841737365747300012c62656e6566696369617279f401204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d06011841737365747300011064657374f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64790601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ced06014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572d4010c7533320001406d61785f6d6573736167655f73697a65d4010c7533320001306d61785f6361706163697479d4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74d4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72d4010c75333200011873656e646572d4010c753332000124726563697069656e74d4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f80140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400c90601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473cd06012c417373657446696c74657200012c62656e6566696369617279f401204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473cd06012c417373657446696c74657200011064657374f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e000e003445786368616e676541737365740c011067697665cd06012c417373657446696c74657200011077616e749d06011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473cd06012c417373657446696c74657200011c72657365727665f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473cd06012c417373657446696c74657200011064657374f401204c6f636174696f6e00010c78636d9106011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f000118617373657473cd06012c417373657446696c74657200120030427579457865637574696f6e08011066656573a506011441737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400fd06012458636d3c43616c6c3e0015002c536574417070656e6469780400fd06012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574739d0601184173736574730001187469636b6574f401204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404009d060118417373657473001c002c457870656374417373657404009d060118417373657473001d00304578706563744f726967696e0400c50601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400510601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e7361637453746174757304006d0601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578d4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72d4010c75333200013c6d696e5f63726174655f6d696e6f72d4010c753332002200505265706f72745472616e736163745374617475730400c90601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400010101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b090101244e6574776f726b496400012c64657374696e6174696f6ef80140496e746572696f724c6f636174696f6e00010c78636d9106011c58636d3c28293e002600244c6f636b41737365740801146173736574a50601144173736574000120756e6c6f636b6572f401204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574a50601144173736574000118746172676574f401204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574a506011441737365740001146f776e6572f401204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574a506011441737365740001186c6f636b6572f401204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400f401204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696ec50601404f7074696f6e3c4c6f636174696f6e3e002f00000907105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f74655265736572766504002d01014456657273696f6e65644c6f636174696f6e000300000d07080c78636d4056657273696f6e6564417373657449640001080856330400f0012c76333a3a4173736574496400030008563404002901012c76343a3a417373657449640004000011070c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e150701484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e150701484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e584167677265676174654d6573736167654f726967696e0001040c556d70040019070128556d70517565756549640000000019070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e28556d70517565756549640001041050617261040069020118506172614964000000001d070c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e64c40144426f783c543a3a41737365744b696e643e00011072617465210701244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e64c40144426f783c543a3a41737365744b696e643e000110726174652107012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e64c40144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21070c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000025070c3070616c6c65745f62656566791870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f662907018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f662907018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6685010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2907084873705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d6265720110084964010502245369676e6174757265012d0700080114666972737431070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e6431070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e00002d070c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400bd02014065636473613a3a5369676e617475726500003107084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d6265720110084964010502245369676e6174757265012d07000c0128636f6d6d69746d656e7435070148436f6d6d69746d656e743c4e756d6265723e00010869640502010849640001247369676e61747572652d0701245369676e6174757265000035070c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61643907011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f725365744964000039070c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f6164000004003d0701785665633c2842656566795061796c6f616449642c205665633c75383e293e00003d0700000241070041070000040845073800450700000302000000080049070c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000004d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000051070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f746573000055070c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144576656e740804540004490001142c4d656d626572416464656404010c77686f000130543a3a4163636f756e7449640000047841206d656d626572206077686f6020686173206265656e2061646465642e2c52616e6b4368616e67656408010c77686f000130543a3a4163636f756e74496400011072616e6b5501011052616e6b000104f4546865206d656d626572206077686f6073652072616e6b20686173206265656e206368616e67656420746f2074686520676976656e206072616e6b602e344d656d62657252656d6f76656408010c77686f000130543a3a4163636f756e74496400011072616e6b5501011052616e6b0002041901546865206d656d626572206077686f60206f6620676976656e206072616e6b6020686173206265656e2072656d6f7665642066726f6d2074686520636f6c6c6563746976652e14566f74656410010c77686f000130543a3a4163636f756e744964000110706f6c6c100144506f6c6c496e6465784f663c542c20493e000110766f746559070128566f74655265636f726400011474616c6c795d07013454616c6c794f663c542c20493e0003085501546865206d656d626572206077686f602068617320766f74656420666f72207468652060706f6c6c6020776974682074686520676976656e2060766f746560206c656164696e6720746f20616e2075706461746564206074616c6c79602e3c4d656d62657245786368616e67656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000404f0546865206d656d626572206077686f602068616420746865697220604163636f756e74496460206368616e67656420746f20606e65775f77686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745907086070616c6c65745f72616e6b65645f636f6c6c65637469766528566f74655265636f72640001080c4179650400100114566f7465730000000c4e61790400100114566f746573000100005d07086070616c6c65745f72616e6b65645f636f6c6c6563746976651454616c6c790c045400044900044d00000c0124626172655f6179657310012c4d656d626572496e64657800011061796573100114566f7465730001106e617973100114566f746573000061070c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b5501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c5901014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b5501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c5901014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c795d070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c795d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c795d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c795d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c795d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c795d070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657465070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74690701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657469070418526573756c74080454016d0704450175070108084f6b04006d07000000000c4572720400750700000100006d070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874710701384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000710704184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100007507082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f016d0700080124706f73745f696e666f6d070110496e666f0001146572726f7268013444697370617463684572726f72000079070c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b65797d0701c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565850701ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565850701ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d07085873746167696e675f6b7573616d615f72756e74696d655052756e74696d65506172616d65746572734b657900010424496e666c6174696f6e0400810701a9013c64796e616d69635f706172616d733a3a696e666c6174696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000000008107105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e34506172616d65746572734b6579000114304d696e496e666c6174696f6e0400950201304d696e496e666c6174696f6e000000304d6178496e666c6174696f6e0400a10201304d6178496e666c6174696f6e00010028496465616c5374616b650400a5020128496465616c5374616b650002001c46616c6c6f66660400a902011c46616c6c6f66660003003c55736541756374696f6e536c6f74730400ad02013c55736541756374696f6e536c6f747300040000850704184f7074696f6e0404540189070108104e6f6e6500000010536f6d650400890700000100008907085873746167696e675f6b7573616d615f72756e74696d655852756e74696d65506172616d657465727356616c756500010424496e666c6174696f6e04008d0701b1013c64796e616d69635f706172616d733a3a696e666c6174696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000000008d07105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e3c506172616d657465727356616c7565000114304d696e496e666c6174696f6e04009d02012c5065727175696e74696c6c000000304d6178496e666c6174696f6e04009d02012c5065727175696e74696c6c00010028496465616c5374616b6504009d02012c5065727175696e74696c6c0002001c46616c6c6f666604009d02012c5065727175696e74696c6c0003003c55736541756374696f6e536c6f74730400200110626f6f6c000400009107105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f61646472657373c102013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e047c54686520604576656e746020656e756d206f6620746869732070616c6c657495070c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74990701384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657499070418526573756c7408045401a101044501680108084f6b0400a101000000000c45727204006800000100009d070c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001441c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e64696461746573ad0101445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564200110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572244e6577506172616d73040118706172616d73a107015047726f7570506172616d73466f723c542c20493e000d04cc41206e657720736574206f66205c5b706172616d735c5d20686173206265656e2073657420666f72207468652067726f75702e24556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e20456c6576617465640801186d656d626572000130543a3a4163636f756e74496400011072616e6b10011052616e6b0010049841205c5b6d656d6265725c5d20676f7420656c65766174656420746f205c5b72616e6b5c5d2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a107083870616c6c65745f736f63696574792c47726f7570506172616d73041c42616c616e636501180010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418011c42616c616e63650000a5070c3c70616c6c65745f7265636f766572791870616c6c6574144576656e740404540001183c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e04304576656e747320747970652ea9070c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad070c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000124245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e000118726573756c74990701384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736bf50201785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964b10701404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652eb10704184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000b5070c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c74990701384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465785501010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040450412070726f7879207761732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9070c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c74990701384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd070c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c1070c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900012c38426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5070c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c9070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d70757465cd07013c456c656374696f6e436f6d707574650001186f726967696ed90101504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564200110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c59017468652073746f72656420736f6c7574696f6e20776173207375626d697474656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d70757465cd07013c456c656374696f6e436f6d7075746500011473636f726555040134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6dd107016050686173653c426c6f636b4e756d626572466f723c543e3e000108746fd107016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd07089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000d107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400d507012828626f6f6c2c20426e2900020024456d657267656e637900030000d50700000408201000d9070c2870616c6c65745f6e69731870616c6c6574144576656e7404045400011c24426964506c616365640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200000478412062696420776173207375636365737366756c6c7920706c616365642e304269645265747261637465640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c753332000104dc412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e67206163636570746564292e2842696444726f707065640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200020455014120626964207761732064726f707065642066726f6d20612071756575652062656361757365206f6620616e6f746865722c206d6f7265207375627374616e7469616c2c20626964207761732070726573656e742e18497373756564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e0118657870697279100144426c6f636b4e756d626572466f723c543e04d054686520626c6f636b206e756d626572206174207768696368207468652072656365697074206d6179206265207468617765642e010c77686f000130543a3a4163636f756e7449640464546865206f776e6572206f662074686520726563656970742e012870726f706f7274696f6e9d02012c5065727175696e74696c6c0431015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520776869636820746865207265636569707420726570726573656e74732e0118616d6f756e7418013042616c616e63654f663c543e04d854686520616d6f756e74206f662066756e6473207768696368207765726520646562697465642066726f6d20746865206f776e65722e030405014120626964207761732061636365707465642e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e18546861776564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e010c77686f000130543a3a4163636f756e7449640428546865206f776e65722e012870726f706f7274696f6e9d02012c5065727175696e74696c6c0439015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520627920776869636820746865206f776e65722077617320646562697465642e0118616d6f756e7418013042616c616e63654f663c543e04ac54686520616d6f756e7420627920776869636820746865206f776e6572207761732063726564697465642e011c64726f70706564200110626f6f6c048c496620607472756560207468656e20746865207265636569707420697320646f6e652e0404c0416e207265636569707420686173206265656e20286174206c65617374207061727469616c6c7929207468617765642e1846756e64656404011c6465666963697418013042616c616e63654f663c543e000504b4416e206175746f6d617469632066756e64696e67206f6620746865206465666963697420776173206d6164652e2c5472616e736665727265640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000114696e64657810013052656365697074496e6465780006046841207265636569707420776173207472616e736665727265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dd070c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1070c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e5070c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e740404540001481c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f737461746589040124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f76656408011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400070c9841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e30526f6c6573557064617465640c0110726f6f74d90101504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572d90101504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72d90101504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e74a104017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6e94011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465a904019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ead0401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e04584576656e7473206f6620746869732070616c6c65742ee9070c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c74990701384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173c10101345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e740404540001103c43616e6469646174654261636b65641000f107016443616e646964617465526563656970743c543a3a486173683e00004105012048656164446174610000f5070124436f7265496e6465780000f907012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c756465641000f107016443616e646964617465526563656970743c543a3a486173683e00004105012048656164446174610000f5070124436f7265496e6465780000f907012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c00f107016443616e646964617465526563656970743c543a3a486173683e00004105012048656164446174610000f5070124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d60585570776172644d65737361676573526563656976656408011066726f6d69020118506172614964000114636f756e7410010c753332000304f8536f6d6520757077617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1070c4c706f6c6b61646f745f7072696d6974697665730876374043616e6469646174655265636569707404044801340008012864657363726970746f721505015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f68617368340110486173680000f5070c4c706f6c6b61646f745f7072696d69746976657308763724436f7265496e6465780000040010010c7533320000f9070c4c706f6c6b61646f745f7072696d6974697665730876372847726f7570496e6465780000040010010c7533320000fd07106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001204843757272656e74436f646555706461746564040069020118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040069020118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040069020118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040069020118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080069020118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f6964603c507666436865636b5374617274656408002105014856616c69646174696f6e436f646548617368000069020118506172614964000508550154686520676976656e20706172612065697468657220696e69746961746564206f72207375627363726962656420746f20612050564620636865636b20666f722074686520676976656e2076616c69646174696f6e6c636f64652e2060636f64655f68617368602060706172615f69646040507666436865636b416363657074656408002105014856616c69646174696f6e436f646548617368000069020118506172614964000608110154686520676976656e2076616c69646174696f6e20636f6465207761732061636365707465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f69646040507666436865636b52656a656374656408002105014856616c69646174696f6e436f646548617368000069020118506172614964000708110154686520676976656e2076616c69646174696f6e20636f6465207761732072656a65637465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f696460047c54686520604576656e746020656e756d206f6620746869732070616c6c65740108106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e7404045400011c504f70656e4368616e6e656c52657175657374656410011873656e64657269020118506172614964000124726563697069656e746902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000004704f70656e2048524d50206368616e6e656c207265717565737465642e4c4f70656e4368616e6e656c43616e63656c656408013062795f70617261636861696e690201185061726149640001286368616e6e656c5f69648105013448726d704368616e6e656c49640001042901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e4c4f70656e4368616e6e656c416363657074656408011873656e64657269020118506172614964000124726563697069656e74690201185061726149640002046c4f70656e2048524d50206368616e6e656c2061636365707465642e344368616e6e656c436c6f73656408013062795f70617261636861696e690201185061726149640001286368616e6e656c5f69648105013448726d704368616e6e656c49640003045048524d50206368616e6e656c20636c6f7365642e5848726d704368616e6e656c466f7263654f70656e656410011873656e64657269020118506172614964000124726563697069656e746902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000404ac416e2048524d50206368616e6e656c20776173206f70656e65642076696120526f6f74206f726967696e2e5c48726d7053797374656d4368616e6e656c4f70656e656410011873656e64657269020118506172614964000124726563697069656e746902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000504bc416e2048524d50206368616e6e656c20776173206f70656e6564207769746820612073797374656d20636861696e2e684f70656e4368616e6e656c4465706f736974735570646174656408011873656e64657269020118506172614964000124726563697069656e7469020118506172614964000604a0416e2048524d50206368616e6e656c2773206465706f73697473207765726520757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740508106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144576656e7404045400010c4044697370757465496e6974696174656408005505013443616e6469646174654861736800000908013c446973707574654c6f636174696f6e000004090141206469737075746520686173206265656e20696e697469617465642e205c5b63616e64696461746520686173682c2064697370757465206c6f636174696f6e5c5d4044697370757465436f6e636c7564656408005505013443616e6469646174654861736800000d08013444697370757465526573756c74000108cc4120646973707574652068617320636f6e636c7564656420666f72206f7220616761696e737420612063616e6469646174652eb4605c5b706172612069642c2063616e64696461746520686173682c206469737075746520726573756c745c5d60185265766572740400100144426c6f636b4e756d626572466f723c543e000210fc4120646973707574652068617320636f6e636c7564656420776974682073757065726d616a6f7269747920616761696e737420612063616e6469646174652e0d01426c6f636b20617574686f72732073686f756c64206e6f206c6f6e676572206275696c64206f6e20746f70206f662074686973206865616420616e642073686f756c640101696e7374656164207265766572742074686520626c6f636b2061742074686520676976656e206865696768742e20546869732073686f756c6420626520746865fc6e756d626572206f6620746865206368696c64206f6620746865206c617374206b6e6f776e2076616c696420626c6f636b20696e2074686520636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657409080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733c446973707574654c6f636174696f6e000108144c6f63616c0000001852656d6f7465000100000d080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733444697370757465526573756c740001081456616c69640000001c496e76616c6964000100001108106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e641870616c6c6574144576656e740404540001084c4f6e44656d616e644f72646572506c616365640c011c706172615f69646902011850617261496400012873706f745f707269636518013042616c616e63654f663c543e0001286f7264657265645f6279000130543a3a4163636f756e7449640000040d01416e206f726465722077617320706c6163656420617420736f6d652073706f7420707269636520616d6f756e74206279206f726465726572206f7264657265645f62793053706f74507269636553657404012873706f745f707269636518013042616c616e63654f663c543e000104b85468652076616c7565206f66207468652073706f7420707269636520686173206c696b656c79206368616e676564047c54686520604576656e746020656e756d206f6620746869732070616c6c65741508105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e74040454000110285265676973746572656408011c706172615f69646902011850617261496400011c6d616e61676572000130543a3a4163636f756e7449640000003044657265676973746572656404011c706172615f69646902011850617261496400010020526573657276656408011c706172615f69646902011850617261496400010c77686f000130543a3a4163636f756e7449640002001c5377617070656408011c706172615f6964690201185061726149640001206f746865725f696469020118506172614964000300047c54686520604576656e746020656e756d206f6620746869732070616c6c65741908105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f640401306c656173655f706572696f641001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c656173656418011c706172615f6964690201185061726149640001186c6561736572000130543a3a4163636f756e744964000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e00010c35014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c013461756374696f6e5f696e64657810013041756374696f6e496e6465780001306c656173655f706572696f641001404c65617365506572696f644f663c543e000118656e64696e67100144426c6f636b4e756d626572466f723c543e0000084901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f73656404013461756374696f6e5f696e64657810013041756374696f6e496e646578000104b8416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e2052657365727665640c0118626964646572000130543a3a4163636f756e74496400013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e505365636f6e642069732074686520746f74616c2e28556e7265736572766564080118626964646572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c011c706172615f6964690201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0004085501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696eb87265736572766520627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e2c4269644163636570746564140118626964646572000130543a3a4163636f756e74496400011c706172615f696469020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00012866697273745f736c6f741001404c65617365506572696f644f663c543e0001246c6173745f736c6f741001404c65617365506572696f644f663c543e000504c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722e3457696e6e696e674f666673657408013461756374696f6e5f696e64657810013041756374696f6e496e646578000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e00060859015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765106d61702e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c4372656174656404011c706172615f6964690201185061726149640000048c4372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e2c436f6e74726962757465640c010c77686f000130543a3a4163636f756e74496400012866756e645f696e64657869020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00010470436f6e747269627574656420746f20612063726f77642073616c652e2057697468647265770c010c77686f000130543a3a4163636f756e74496400012866756e645f696e64657869020118506172614964000118616d6f756e7418013042616c616e63654f663c543e0002049c57697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e445061727469616c6c79526566756e64656404011c706172615f6964690201185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674b46f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e2c416c6c526566756e64656404011c706172615f6964690201185061726149640004049c416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e24446973736f6c76656404011c706172615f6964690201185061726149640005044846756e6420697320646973736f6c7665642e3c48616e646c65426964526573756c7408011c706172615f696469020118506172614964000118726573756c74990701384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e1845646974656404011c706172615f696469020118506172614964000704c454686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e2c4d656d6f557064617465640c010c77686f000130543a3a4163636f756e74496400011c706172615f6964690201185061726149640001106d656d6f38011c5665633c75383e0008046041206d656d6f20686173206265656e20757064617465642e3c4164646564546f4e6577526169736504011c706172615f696469020118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e6577526169736560047c54686520604576656e746020656e756d206f6620746869732070616c6c65742508106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c6574144576656e7404045400010850526576656e7565496e666f5265717565737465640401107768656e100144426c6f636b4e756d626572466f723c543e00000421015468652062726f6b657220636861696e206861732061736b656420666f7220726576656e756520696e666f726d6174696f6e20666f72206120737065636966696320626c6f636b2e30436f726541737369676e6564040110636f7265f5070124436f7265496e646578000104ec4120636f7265206861732072656365697665642061206e65772061737369676e6d656e742066726f6d207468652062726f6b657220636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657429080c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d652d08015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696ef401204c6f636174696f6e00012c64657374696e6174696f6ef401204c6f636174696f6e00011c6d6573736167659106011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696ef401204c6f636174696f6e00012071756572795f696430011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e7365b1060120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696ef401204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6ec50601404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696ef401204c6f636174696f6e00012071756572795f696430011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696ef401204c6f636174696f6e000118617373657473d906013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6ef401204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f73749d0601184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6ef401204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6ef401204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f725906012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6e2d01014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696ef401204c6f636174696f6e00012071756572795f696430011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696ef401204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572f401204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572c50601404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6ef401204c6f636174696f6e000110636f73749d0601184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6ef401204c6f636174696f6e000110636f73749d0601184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6ef401204c6f636174696f6e000110636f73749d0601184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67f401204c6f636174696f6e000110666565739d060118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696ef401204c6f636174696f6e000118617373657473d906013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d08102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72590601144572726f72000100144572726f720401146572726f72590601144572726f720002000031080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e150701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f723508014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e150701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e150701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e150701484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574350810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d6974526561636865640005000039080c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e64c40130543a3a41737365744b696e6400011072617465210701244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e64c40130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e64c40130543a3a41737365744b696e6400010c6f6c642107012446697865645531323800010c6e657721070124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d0808306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200004108000002f50200450808306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ed4014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d654908016473705f72756e74696d653a3a52756e74696d65537472696e670000490800000502004d0808306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000051080c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373550801845065724469737061746368436c6173733c57656967687473506572436c6173733e000055080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454015908000c01186e6f726d616c590801045400012c6f7065726174696f6e616c59080104540001246d616e6461746f72795908010454000059080c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963710701384f7074696f6e3c5765696768743e0001246d61785f746f74616c710701384f7074696f6e3c5765696768743e0001207265736572766564710701384f7074696f6e3c5765696768743e00005d080c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178610801545065724469737061746368436c6173733c7533323e000061080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400006508082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400006908082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d654908013452756e74696d65537472696e67000124696d706c5f6e616d654908013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069736d08011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800006d08040c436f77040454017108000400710800000071080000027508007508000004080106100079080c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c65747d080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454018108045300000400850801185665633c543e00008108000004087d013000850800000281080089080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401040453000004008d0801185665633c543e00008d080000020400910804184f7074696f6e0404540195080108104e6f6e6500000010536f6d6504009508000001000095080c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400990801405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400a108015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400a50801545365636f6e646172795652465072654469676573740003000099080c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7481010110536c6f740001347672665f7369676e61747572659d0801305672665369676e617475726500009d08101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f662502012056726650726f6f660000a1080c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7481010110536c6f740000a5080c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7481010110536c6f740001347672665f7369676e61747572659d0801305672665369676e61747572650000a908084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e0000080104638d010128287536342c2075363429000134616c6c6f7765645f736c6f747391010130416c6c6f776564536c6f74730000ad080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b108045300000400b50801185665633c543e0000b10800000408301000b508000002b10800b9080c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd080000040c00182000c1080c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec5080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c908045300000400d10801185665633c543e0000c9080c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964010601384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73cd08011c526561736f6e730000cd080c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000d108000002c90800d5080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d908045300000400dd0801185665633c543e0000d9080c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720101061c42616c616e6365011800080108696401060144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000dd08000002d90800e1080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e508045300000400f50801185665633c543e0000e50814346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401e9081c42616c616e63650118000801086964e90801084964000118616d6f756e7418011c42616c616e63650000e908085873746167696e675f6b7573616d615f72756e74696d654452756e74696d65486f6c64526561736f6e00010820507265696d6167650400ed08016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0020000c4e69730400f108015870616c6c65745f6e69733a3a486f6c64526561736f6e00260000ed080c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d61676500000000f1080c2870616c6c65745f6e69731870616c6c657428486f6c64526561736f6e000104284e66745265636569707400000000f508000002e50800f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401fd08045300000400090901185665633c543e0000fd0814346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640101091c42616c616e63650118000801086964010901084964000118616d6f756e7418011c42616c616e636500000109085873746167696e675f6b7573616d615f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c7304000509019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e0029000005090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e6365000000000909000002fd08000d090c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1109086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100001509083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616ce4013042616c616e63654f663c543e000118616374697665e4013042616c616e63654f663c543e000124756e6c6f636b696e67e50101f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f7265776172647319090194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e000019090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e00001d09083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473210901b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c000021090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400ad0101185665633c543e00002509083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172742909012c4f7074696f6e3c7536343e0000290904184f7074696f6e04045401300108104e6f6e6500000010536f6d6504003000000100002d09000004081000003109082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ce4011c42616c616e636500010c6f776ee4011c42616c616e63650001186f7468657273350901ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e000035090000023909003909082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565e4011c42616c616e636500003d09082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616ce4011c42616c616e636500010c6f776ee4011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e7410011050616765000041090000040c100010004509082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616ce4011c42616c616e63650001186f7468657273350901ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e00004909083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c4d09018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00004d09042042547265654d617008044b0100045601100004005109000000510900000255090055090000040800100059090000025d09005d09083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f74686572736d0401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273ad0101385665633c4163636f756e7449643e0001187061796f757418011c42616c616e6365000061090000040894180065090c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72c10101345665633c457261496e6465783e000069090c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500006d09103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f7204045400017c344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e71090c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e646572017509000801206f6666656e646572750901204f6666656e6465720001247265706f7274657273ad0101345665633c5265706f727465723e000075090000040800310900790900000408a838007d0900000408341000810900000285090085090000040800f501008909000004088d0938008d090c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000091090c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e9509083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300009909083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f7269746965739d09016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f726365643d0201244f7074696f6e3c4e3e00009d090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b8045300000400b401185665633c543e0000a1090c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea5090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454010102045300000400a90901185665633c543e0000a909000002010200ad09083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000b1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e0000b509083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401c430417373657442616c616e636501182c42656e6566696369617279012d012c426c6f636b4e756d6265720110245061796d656e74496401300018012861737365745f6b696e64c4012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e65666963696172792d01012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573b909015c5061796d656e7453746174653c5061796d656e7449643e0000b909083c70616c6c65745f7472656173757279305061796d656e745374617465040849640130010c1c50656e64696e6700000024417474656d7074656404010869643001084964000100184661696c656400020000bd090c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000c10908346672616d655f737570706f72742050616c6c65744964000004000106011c5b75383b20385d0000c5090c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742ec9090000040800550100cd090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400d10901c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400e90901ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000d1090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573d50901dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73e109015044656c65676174696f6e733c42616c616e63653e0001147072696f72e509017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000d5090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d909045300000400dd0901185665633c543e0000d9090000040810450200dd09000002d90900e1090c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000e5090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000e9090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e4d020128436f6e76696374696f6e00012c64656c65676174696f6e73e109015044656c65676174696f6e733c42616c616e63653e0001147072696f72e509017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000ed090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f109045300000400f50901185665633c543e0000f1090000040855011800f509000002f10900f9090c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd090c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640155013452756e74696d654f726967696e015902184d6f6d656e7401101043616c6c0159011c42616c616e636501181454616c6c79015107244163636f756e74496401003c5363686564756c654164647265737301f50201181c4f6e676f696e670400010a018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000010a0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640155013452756e74696d654f726967696e015902184d6f6d656e7401101043616c6c0159011c42616c616e636501181454616c6c79015107244163636f756e74496401003c5363686564756c654164647265737301f502002c0114747261636b5501011c547261636b49640001186f726967696e5902013452756e74696d654f726967696e00012070726f706f73616c5901011043616c6c000124656e6163746d656e7475020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974050a016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e670d0a01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c795107011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d150a01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000050a0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000090a04184f7074696f6e04045401050a0108104e6f6e6500000010536f6d650400050a00000100000d0a04184f7074696f6e04045401110a0108104e6f6e6500000010536f6d650400110a0000010000110a0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e673d02014c4f7074696f6e3c426c6f636b4e756d6265723e0000150a04184f7074696f6e04045401190a0108104e6f6e6500000010536f6d650400190a0000010000190a0000040810f502001d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210a045300000400250a01185665633c543e0000210a00000408101800250a000002210a00290a0000022d0a002d0a000004085501310a00310a0c4070616c6c65745f7265666572656e646114747970657324547261636b496e666f081c42616c616e63650118184d6f6d656e740110002401106e616d65490801302627737461746963207374720001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c350a0114437572766500012c6d696e5f737570706f7274350a011443757276650000350a0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e67746894011c50657262696c6c000114666c6f6f7294011c50657262696c6c0001106365696c94011c50657262696c6c000000445374657070656444656372656173696e67100114626567696e94011c50657262696c6c00010c656e6494011c50657262696c6c0001107374657094011c50657262696c6c000118706572696f6494011c50657262696c6c000100285265636970726f63616c0c0118666163746f72390a01204669786564493634000120785f6f6666736574390a01204669786564493634000120795f6f6666736574390a0120466978656449363400020000390a0c3473705f61726974686d657469632c66697865645f706f696e74204669786564493634000004003d0a010c69363400003d0a0000050c00410a0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450a086070616c6c65745f72616e6b65645f636f6c6c656374697665304d656d6265725265636f7264000004011072616e6b5501011052616e6b0000490a00000408550100004d0a0000040855011000510a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550a0c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c34416c72656164794d656d626572000004704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000104604163636f756e74206973206e6f742061206d656d6265722e284e6f74506f6c6c696e67000204b854686520676976656e20706f6c6c20696e64657820697320756e6b6e6f776e206f722068617320636c6f7365642e1c4f6e676f696e670003048054686520676976656e20706f6c6c206973207374696c6c206f6e676f696e672e344e6f6e6552656d61696e696e67000404ac546865726520617265206e6f2066757274686572207265636f72647320746f2062652072656d6f7665642e28436f7272757074696f6e00050468556e6578706563746564206572726f7220696e2073746174652e2852616e6b546f6f4c6f7700060494546865206d656d62657227732072616e6b20697320746f6f206c6f7720746f20766f74652e38496e76616c69645769746e6573730007049854686520696e666f726d6174696f6e2070726f766964656420697320696e636f72726563742e304e6f5065726d697373696f6e000804f8546865206f726967696e206973206e6f742073756666696369656e746c792070726976696c6567656420746f20646f20746865206f7065726174696f6e2e2853616d654d656d626572000904e0546865206e6577206d656d62657220746f2065786368616e6765206973207468652073616d6520617320746865206f6c64206d656d62657238546f6f4d616e794d656d62657273000a04cc546865206d6178206d656d62657220636f756e7420666f72207468652072616e6b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590a0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640155013452756e74696d654f726967696e015902184d6f6d656e7401101043616c6c0159011c42616c616e636501181454616c6c79015d07244163636f756e74496401003c5363686564756c654164647265737301f50201181c4f6e676f696e6704005d0a018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e74000500005d0a0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640155013452756e74696d654f726967696e015902184d6f6d656e7401101043616c6c0159011c42616c616e636501181454616c6c79015d07244163636f756e74496401003c5363686564756c654164647265737301f502002c0114747261636b5501011c547261636b49640001186f726967696e5902013452756e74696d654f726967696e00012070726f706f73616c5901011043616c6c000124656e6163746d656e7475020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974050a016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974090a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e670d0a01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c795d07011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d150a01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000610a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f502045300000400410801185665633c543e0000650a0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690a0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d0a105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e710a0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750a083870616c6c65745f736f6369657479304d656d6265725265636f7264000010011072616e6b10011052616e6b00011c737472696b657310012c537472696b65436f756e74000120766f756368696e67790a01584f7074696f6e3c566f756368696e675374617475733e000114696e64657810010c7533320000790a04184f7074696f6e040454017d0a0108104e6f6e6500000010536f6d6504007d0a00000100007d0a083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e656400010000810a083870616c6c65745f736f6369657479305061796f75745265636f7264081c42616c616e63650118285061796f75747356656301850a000801107061696418011c42616c616e636500011c7061796f757473850a01285061796f7574735665630000850a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210a045300000400250a01185665633c543e0000890a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d0a045300000400950a01185665633c543e00008d0a083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e64910a016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e63650000910a083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000950a0000028d0a00990a083870616c6c65745f736f63696574792443616e64696461637908244163636f756e74496401001c42616c616e6365011800140114726f756e64100128526f756e64496e6465780001106b696e64910a016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00010c62696418011c42616c616e636500011474616c6c799d0a011454616c6c79000138736b65707469635f73747275636b200110626f6f6c00009d0a083870616c6c65745f736f63696574791454616c6c790000080124617070726f76616c73100124566f7465436f756e7400012872656a656374696f6e73100124566f7465436f756e740000a10a00000408000000a50a083870616c6c65745f736f636965747910566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c7533320000a90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000ad0a083870616c6c65745f736f636965747930496e74616b655265636f726408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e74496400010c62696418011c42616c616e6365000114726f756e64100128526f756e64496e6465780000b10a0000040c00009d0a00b50a0c3870616c6c65745f736f63696574791870616c6c6574144572726f72080454000449000180244e6f744d656d6265720000045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000104645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400020448557365722069732073757370656e6465642e304e6f7453757370656e6465640003045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000404484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400050460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000604984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000704e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e4c4e6f74566f756368696e674f6e4269646465720008045c4d656d626572206973206e6f7420766f756368696e672e10486561640009049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000a046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000b0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000c04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000d046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000e0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572000f04785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640010046c5468652063616c6c6572206973206e6f742074686520686561642e2c4e6f74417070726f7665640011042d01546865206d656d626572736869702063616e6e6f7420626520636c61696d6564206173207468652063616e64696461746520776173206e6f7420636c6561726c7920617070726f7665642e2c4e6f7452656a656374656400120425015468652063616e6469646174652063616e6e6f74206265206b69636b6564206173207468652063616e64696461746520776173206e6f7420636c6561726c792072656a65637465642e20417070726f76656400130419015468652063616e6469646163792063616e6e6f742062652064726f70706564206173207468652063616e6469646174652077617320636c6561726c7920617070726f7665642e2052656a65637465640014041d015468652063616e6469646163792063616e6e6f7420626520626573746f776564206173207468652063616e6469646174652077617320636c6561726c792072656a65637465642e28496e50726f677265737300150415015468652063616e6469646163792063616e6e6f7420626520636f6e636c756465642061732074686520766f74696e67206973207374696c6c20696e2070726f67726573732e20546f6f4561726c7900160441015468652063616e6469646163792063616e6e6f74206265207072756e656420756e74696c20612066756c6c206164646974696f6e616c20696e74616b6520706572696f6420686173207061737365642e14566f7465640017046854686520736b657074696320616c726561647920766f7465642e1c45787069726564001804f054686520736b6570746963206e656564206e6f7420766f7465206f6e2063616e646964617465732066726f6d206578706972656420726f756e64732e244e6f744269646465720019045455736572206973206e6f742061206269646465722e284e6f446566656e646572001a047c5468657265206973206e6f20646566656e6465722063757272656e746c792e204e6f7447726f7570001b045047726f757020646f65736e27742065786973742e3c416c7265616479456c657661746564001c04b0546865206d656d62657220697320616c726561647920656c65766174656420746f20746869732072616e6b2e3c416c726561647950756e6973686564001d04dc54686520736b65707469632068617320616c7265616479206265656e2070756e697368656420666f722074686973206f6666656e63652e44496e73756666696369656e7446756e6473001e04c046756e64732061726520696e73756666696369656e7420746f20706179206f666620736f63696574792064656274732e1c4e6f566f746573001f04d05468652063616e6469646174652f646566656e64657220686173206e6f207374616c6520766f74657320746f2072656d6f76652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb90a083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301bd0a0010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473bd0a011c467269656e64730001247468726573686f6c645501010c7531360000bd0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400ad0101185665633c543e0000c10a083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301bd0a000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473bd0a011c467269656e64730000c50a0c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e902045300000400cd0a01185665633c543e0000cd0a000002e90200d10a083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000d50a0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742ed90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd0a045300000400e50a01185665633c543e0000dd0a04184f7074696f6e04045401e10a0108104e6f6e6500000010536f6d650400e10a0000010000e10a084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0159012c426c6f636b4e756d62657201103450616c6c6574734f726967696e015902244163636f756e7449640100001401206d617962655f6964b10701304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5901011043616c6c0001386d617962655f706572696f646963f10201944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e5902013450616c6c6574734f726967696e0000e50a000002dd0a00e90a084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000ed0a0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10a00000408f50a1800f50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f90a045300000400fd0a01185665633c543e0000f90a083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650101032c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970650103012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000fd0a000002f90a00010b00000408050b1800050b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401090b0453000004000d0b01185665633c543e0000090b083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d62657200000d0b000002090b00110b0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150b00000408000400190b083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d03015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c731d0b018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e00001d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400ad0101185665633c543e0000210b0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e250b083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f73697471040150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974290b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e3d02012c4f7074696f6e3c7533323e00010000290b04184f7074696f6e0404540171040108104e6f6e6500000010536f6d650400710400000100002d0b083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401310b01082c556e7265717565737465640801187469636b6574350b014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574390b016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e3d02012c4f7074696f6e3c7533323e00010000310b14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000350b0000040800310b00390b04184f7074696f6e04045401350b0108104e6f6e6500000010536f6d650400350b00000100003d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000410b0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012418546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e184e6f436f737400080459014e6f207469636b65742077697468206120636f7374207761732072657475726e6564206279205b60436f6e6669673a3a436f6e73696465726174696f6e605d20746f2073746f72652074686520707265696d6167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450b083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573490b0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000490b083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d626572000500004d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000510b0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900012c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550b085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573590b01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000590b085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d626572000300005d0b0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e610b089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e08244163636f756e74496400284d617857696e6e65727300000c0120737570706f727473650b0198426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572733e00011473636f726555040134456c656374696f6e53636f726500011c636f6d70757465cd07013c456c656374696f6e436f6d707574650000650b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016504045300000400610401185665633c543e0000690b089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e7449640100304461746150726f7669646572016d0b00080118766f74657273710b01445665633c4461746150726f76696465723e00011c74617267657473ad0101385665633c4163636f756e7449643e00006d0b0000040c0030210900710b0000026d0b00750b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401790b0453000004007d0b01185665633c543e0000790b0000040c55041010007d0b000002790b00810b0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0129030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e25030154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e63650000850b0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b85375626d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e890b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210a045300000400250a01185665633c543e00008d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401910b045300000400950b01185665633c543e0000910b0c2870616c6c65745f6e69731870616c6c65740c426964081c42616c616e63650118244163636f756e744964010000080118616d6f756e7418011c42616c616e636500010c77686f0001244163636f756e7449640000950b000002910b00990b0c2870616c6c65745f6e69731870616c6c65743453756d6d6172795265636f7264082c426c6f636b4e756d62657201101c42616c616e636501180014013c70726f706f7274696f6e5f6f7765649d02012c5065727175696e74696c6c000114696e64657810013052656365697074496e6465780001187468617765649d02012c5065727175696e74696c6c00012c6c6173745f706572696f6410012c426c6f636b4e756d62657200014072656365697074735f6f6e5f686f6c6418011c42616c616e636500009d0b0c2870616c6c65745f6e69731870616c6c657434526563656970745265636f72640c244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118000c012870726f706f7274696f6e9d02012c5065727175696e74696c6c0001146f776e6572290b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e00011865787069727910012c426c6f636b4e756d6265720000a10b000004089d021000a50b0c2870616c6c65745f6e69731870616c6c6574144572726f7204045400013c404475726174696f6e546f6f536d616c6c000004a4546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f426967000104f4546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c000204dc54686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f77000308410154686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e887468726f756768207265706c6163696e6720616e206578697374696e67206269642e38556e6b6e6f776e52656365697074000404645265636569707420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572000504744e6f7420746865206f776e6572206f662074686520726563656970742e284e6f744578706972656400060470426f6e64206e6f74207965742061742065787069727920646174652e28556e6b6e6f776e426964000704a854686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e34506f7274696f6e546f6f426967000804e054686520706f7274696f6e20737570706c696564206973206265796f6e64207468652076616c7565206f662074686520726563656970742e20556e66756e646564000904944e6f7420656e6f7567682066756e6473206172652068656c6420746f20706179206f75742e34416c726561647946756e646564000a04b054686572652061726520656e6f7567682066756e647320666f7220776861742069732072657175697265642e245468726f74746c6564000b04cc5468652074686177207468726f74746c6520686173206265656e207265616368656420666f72207468697320706572696f642e244d616b657344757374000c041501546865206f7065726174696f6e20776f756c6420726573756c7420696e2061207265636569707420776f72746820616e20696e7369676e69666963616e742076616c75652e3c416c7265616479436f6d6d756e616c000d0480546865207265636569707420697320616c726561647920636f6d6d756e616c2e38416c726561647950726976617465000e047c546865207265636569707420697320616c726561647920707269766174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c908045300000400d10801185665633c543e0000ad0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d908045300000400dd0801185665633c543e0000b10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b50b045300000400b90b01185665633c543e0000b50b14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401a1011c42616c616e63650118000801086964a10101084964000118616d6f756e7418011c42616c616e63650000b90b000002b50b00bd0b0c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10b0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576d90101504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874d90101504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000c50b0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164d90101504f7074696f6e3c543a3a4163636f756e7449643e0001107461696cd90101504f7074696f6e3c543a3a4163636f756e7449643e0000c90b0000023000cd0b0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400d10b01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10b0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000d50b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e74657221070140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173d90b01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000d90b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400dd0b013842547265654d61703c4b2c20563e0000dd0b042042547265654d617008044b011004560118000400250a000000e10b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6ee50b0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573f10b015c506f6f6c526f6c65733c543a3a4163636f756e7449643e000114737461746589040124506f6f6c53746174650000e50b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e74a104017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d6178e90b013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465ed0b01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6d3d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6ead0401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000e90b04184f7074696f6e04045401940108104e6f6e6500000010536f6d650400940000010000ed0b04184f7074696f6e04045401a9040108104e6f6e6500000010536f6d650400a9040000010000f10b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74d90101444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72d90101444f7074696f6e3c4163636f756e7449643e00011c626f756e636572d90101444f7074696f6e3c4163636f756e7449643e0000f50b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e74657221070140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000f90b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261fd0b0134556e626f6e64506f6f6c3c543e000120776974685f657261010c010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000fd0b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000010c0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601fd0b045300000400050c013842547265654d61703c4b2c20563e0000050c042042547265654d617008044b0110045601fd0b000400090c000000090c0000020d0c000d0c0000040810fd0b00110c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000150c0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019030506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400190c0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e3c416c72656164794d69677261746564002104150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002304f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190c0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c696564000600001d0c0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c73746173686573210c01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564250c0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e0000210c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540171040453000004006d0401185665633c543e0000250c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e0000290c0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2d0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d6265720110008c01346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73bd0401484173796e634261636b696e67506172616d730001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c75333200019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c75333200013c6578656375746f725f706172616d73c10401384578656375746f72506172616d73000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d6265720001386d61785f76616c696461746f72733d02012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001387076665f766f74696e675f74746c10013053657373696f6e496e6465780001806d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001546d696e696d756d5f6261636b696e675f766f74657310010c7533320001346e6f64655f6665617475726573f90401304e6f64654665617475726573000158617070726f76616c5f766f74696e675f706172616d73d5040150417070726f76616c566f74696e67506172616d730001407363686564756c65725f706172616d73d90401705363686564756c6572506172616d733c426c6f636b4e756d6265723e0000310c000002350c00350c00000408102d0c00390c106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0c000002010500410c000002f90100450c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731873686172656468416c6c6f77656452656c6179506172656e7473547261636b657208104861736801342c426c6f636b4e756d626572011000080118627566666572490c015856656344657175653c28486173682c2048617368293e0001346c61746573745f6e756d62657210012c426c6f636b4e756d6265720000490c0000024d0c004d0c00000408343400510c000002550c00550c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480134044e011000240110636f7265f5070124436f7265496e646578000110686173685505013443616e6469646174654861736800012864657363726970746f721505015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74732505015043616e646964617465436f6d6d69746d656e7473000148617661696c6162696c6974795f766f746573f90401604269745665633c75382c204269744f726465724c7362303e00011c6261636b657273f90401604269745665633c75382c204269744f726465724c7362303e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f7570f907012847726f7570496e6465780000590c106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001486456616c696461746f72496e6465784f75744f66426f756e64730000047856616c696461746f7220696e646578206f7574206f6620626f756e64732e50556e7363686564756c656443616e646964617465000104ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e404865616444617461546f6f4c61726765000204a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500030464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000404604f757470757420636f646520697320746f6f206c6172676554446973616c6c6f77656452656c6179506172656e74000508ec5468652063616e64696461746527732072656c61792d706172656e7420776173206e6f7420616c6c6f7765642e204569746865722069742077617325016e6f7420726563656e7420656e6f756768206f72206974206469646e277420616476616e6365206261736564206f6e20746865206c6173742070617261636861696e20626c6f636b2e44496e76616c696441737369676e6d656e7400060815014661696c656420746f20636f6d707574652067726f757020696e64657820666f722074686520636f72653a206569746865722069742773206f7574206f6620626f756e6473e86f72207468652072656c617920706172656e7420646f65736e27742062656c6f6e6720746f207468652063757272656e742073657373696f6e2e44496e76616c696447726f7570496e6465780007049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e6700080490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000904e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e6564000a0468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368000b04c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67000c04d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d65737361676573000d041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e67000e0411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70000f04d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001004dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800110855015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c7470617261206865616420696e2074686520636f6d6d69746d656e74732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0c0c4c706f6c6b61646f745f7072696d6974697665730876374c536372617065644f6e436861696e566f7465730404480134000c011c73657373696f6e10013053657373696f6e496e6465780001806261636b696e675f76616c696461746f72735f7065725f63616e646964617465610c011d015665633c2843616e646964617465526563656970743c483e2c205665633c2856616c696461746f72496e6465782c2056616c69646974794174746573746174696f6e293e290a3e00012064697370757465734d0501604d756c74694469737075746553746174656d656e745365740000610c000002650c00650c00000408f107690c00690c0000026d0c006d0c000004080105490500710c106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400011464546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e48496e686572656e744f7665727765696768740002040901546865206461746120676976656e20746f2074686520696e686572656e742077696c6c20726573756c7420696e20616e206f76657277656967687420626c6f636b2e8443616e6469646174657346696c7465726564447572696e67457865637574696f6e0003084d01412063616e646964617465207761732066696c746572656420647572696e6720696e686572656e7420657865637574696f6e2e20546869732073686f756c642068617665206f6e6c79206265656e20646f6e6540647572696e67206372656174696f6e2e50556e7363686564756c656443616e64696461746500040474546f6f206d616e792063616e6469646174657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750c0000023d0c00790c0000027d0c007d0c106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65721870616c6c657430436f72654f6363757069656404044e0110010810467265650000001450617261730400810c01345061726173456e7472793c4e3e00010000810c106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65721870616c6c6574285061726173456e74727904044e0110000c012861737369676e6d656e74850c012841737369676e6d656e74000154617661696c6162696c6974795f74696d656f75747310010c75333200010c74746c1001044e0000850c106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657218636f6d6d6f6e2841737369676e6d656e7400010810506f6f6c08011c706172615f696469020118506172614964000128636f72655f696e646578f5070124436f7265496e6465780000001042756c6b04006902011850617261496400010000890c042042547265654d617008044b01f5070456018d0c000400910c0000008d0c000002810c00910c000002950c00950c00000408f5078d0c00990c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261735c507666436865636b416374697665566f74655374617465042c426c6f636b4e756d626572011000140130766f7465735f616363657074f90401604269745665633c75382c204269744f726465724c7362303e000130766f7465735f72656a656374f90401604269745665633c75382c204269744f726465724c7362303e00010c61676510013053657373696f6e496e646578000128637265617465645f617410012c426c6f636b4e756d6265720001186361757365739d0c017c5665633c507666436865636b43617573653c426c6f636b4e756d6265723e3e00009d0c000002a10c00a10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334507666436865636b4361757365042c426c6f636b4e756d62657201100108284f6e626f617264696e670400690201185061726149640000001c557067726164650c010869646902011850617261496400012c696e636c756465645f617410012c426c6f636b4e756d626572000140757067726164655f7374726174656779a50c013c55706772616465537472617465677900010000a50c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c55706772616465537472617465677900010840536574476f41686561645369676e616c000000504170706c7941744578706563746564426c6f636b00010000a90c000002210500ad0c000002690200b10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e00060000b50c0000040869021000b90c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573bd0c01605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e65643d0201244f7074696f6e3c4e3e0000bd0c000002c10c00c10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000c50c000002b50c00c90c0c4c706f6c6b61646f745f7072696d6974697665730876373855706772616465476f41686561640001081441626f72740000001c476f416865616400010000cd0c0c4c706f6c6b61646f745f7072696d69746976657308763748557067726164655265737472696374696f6e0001041c50726573656e7400000000d10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616441050120486561644461746100013c76616c69646174696f6e5f636f64653d05013856616c69646174696f6e436f6465000124706172615f6b696e64200120506172614b696e640000d50c106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000134344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f7455706772616465000304d4506172612063616e6e6f7420626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e3c43616e6e6f74446f776e6772616465000404d0506172612063616e6e6f7420626520646f776e67726164656420746f20616e206f6e2d64656d616e642070617261636861696e2e58507666436865636b53746174656d656e745374616c65000504b05468652073746174656d656e7420666f7220505646207072652d636865636b696e67206973207374616c652e5c507666436865636b53746174656d656e74467574757265000604ec5468652073746174656d656e7420666f7220505646207072652d636865636b696e6720697320666f722061206675747572652073657373696f6e2e84507666436865636b56616c696461746f72496e6465784f75744f66426f756e6473000704a4436c61696d65642076616c696461746f7220696e646578206973206f7574206f6620626f756e64732e60507666436865636b496e76616c69645369676e6174757265000804c8546865207369676e617475726520666f722074686520505646207072652d636865636b696e6720697320696e76616c69642e48507666436865636b446f75626c65566f7465000904b054686520676976656e2076616c696461746f7220616c7265616479206861732063617374206120766f74652e58507666436865636b5375626a656374496e76616c6964000a04f454686520676976656e2050564620646f6573206e6f7420657869737420617420746865206d6f6d656e74206f662070726f63657373206120766f74652e4443616e6e6f7455706772616465436f6465000b04cc50617261636861696e2063616e6e6f742063757272656e746c79207363686564756c65206120636f646520757067726164652e2c496e76616c6964436f6465000c0474496e76616c69642076616c69646174696f6e20636f64652073697a652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90c000002dd0c00dd0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273410c01405665633c56616c696461746f7249643e000118717565756564410c01405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e6465780000e10c000002e50c00e50c0860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000e90c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564200110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000ed0c000002810500f10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164790201304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000f50c000002f90c00f90c0860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138015073705f7374643a3a7665633a3a5665633c75383e0000fd0c000002010d00010d0000040810ad0c00050d106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000150544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e3057726f6e675769746e6573730012048c5468652070726f7669646564207769746e65737320646174612069732077726f6e672e704368616e6e656c4372656174696f6e4e6f74417574686f72697a6564001304e8546865206368616e6e656c206265747765656e2074686573652074776f20636861696e732063616e6e6f7420626520617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090d000002fd01000d0d0c4c706f6c6b61646f745f7072696d6974697665730876372c53657373696f6e496e666f00003401606163746976655f76616c696461746f725f696e64696365733d0c014c5665633c56616c696461746f72496e6465783e00012c72616e646f6d5f736565640401205b75383b2033325d000138646973707574655f706572696f6410013053657373696f6e496e64657800012876616c696461746f7273110d019c496e64657865645665633c56616c696461746f72496e6465782c2056616c696461746f7249643e000138646973636f766572795f6b657973a90901645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973090d01445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073150d01ac496e64657865645665633c47726f7570496e6465782c205665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000110d0c4c706f6c6b61646f745f7072696d69746976657308763728496e646578656456656308044b010105045601f901000400410c01185665633c563e0000150d0c4c706f6c6b61646f745f7072696d69746976657308763728496e646578656456656308044b01f9070456013d0c000400750c01185665633c563e0000190d00000408105505001d0d0c4c706f6c6b61646f745f7072696d6974697665730876373044697370757465537461746504044e01100010013876616c696461746f72735f666f72f904017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014876616c696461746f72735f616761696e7374f904017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00011473746172741001044e000130636f6e636c756465645f61743d0201244f7074696f6e3c4e3e0000210d042042547265655365740404540101050004003d0c000000250d106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144572726f72040454000124744475706c69636174654469737075746553746174656d656e7453657473000004a84475706c696361746520646973707574652073746174656d656e7420736574732070726f76696465642e5c416e6369656e744469737075746553746174656d656e740001048c416e6369656e7420646973707574652073746174656d656e742070726f76696465642e6456616c696461746f72496e6465784f75744f66426f756e6473000204e856616c696461746f7220696e646578206f6e2073746174656d656e74206973206f7574206f6620626f756e647320666f722073657373696f6e2e40496e76616c69645369676e61747572650003047c496e76616c6964207369676e6174757265206f6e2073746174656d656e742e484475706c696361746553746174656d656e74000404cc56616c696461746f7220766f7465207375626d6974746564206d6f7265207468616e206f6e636520746f20646973707574652e4853696e676c65536964656444697370757465000504c441206469737075746520776865726520746865726520617265206f6e6c7920766f746573206f6e206f6e6520736964652e3c4d616c6963696f75734261636b65720006049c41206469737075746520766f74652066726f6d2061206d616c6963696f7573206261636b65722e4c4d697373696e674261636b696e67566f746573000704e04e6f206261636b696e6720766f74657320776572652070726f766964657320616c6f6e6720646973707574652073746174656d656e74732e48556e636f6e6669726d656444697370757465000804b0556e636f6e6669726d656420646973707574652073746174656d656e7420736574732070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290d104c706f6c6b61646f745f7072696d69746976657308763720736c617368696e673850656e64696e67536c617368657300000801106b6579732d0d019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e649505014c536c617368696e674f6666656e63654b696e6400002d0d042042547265654d617008044b010105045601f901000400310d000000310d000002350d00350d000004080105f90100390d146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c6574144572726f7204045400011860496e76616c69644b65794f776e65727368697050726f6f660000048c546865206b6579206f776e6572736869702070726f6f6620697320696e76616c69642e4c496e76616c696453657373696f6e496e646578000104a05468652073657373696f6e20696e64657820697320746f6f206f6c64206f7220696e76616c69642e50496e76616c696443616e64696461746548617368000204785468652063616e646964617465206861736820697320696e76616c69642e54496e76616c696456616c696461746f72496e64657800030801015468657265206973206e6f2070656e64696e6720736c61736820666f722074686520676976656e2076616c696461746f7220696e64657820616e642074696d6514736c6f742e6056616c696461746f72496e64657849644d69736d61746368000404d05468652076616c696461746f7220696e64657820646f6573206e6f74206d61746368207468652076616c696461746f722069642e5c4475706c6963617465536c617368696e675265706f72740005040d0154686520676976656e20736c617368696e67207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e6414747970657344436f7265416666696e697479436f756e740000080128636f72655f696e646578f5070124436f7265496e646578000114636f756e7410010c7533320000410d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e641474797065733c517565756553746174757354797065000010011c74726166666963210701244669786564553132380001286e6578745f696e646578450d01285175657565496e646578000138736d616c6c6573745f696e646578450d01285175657565496e64657800013466726565645f696e6469636573490d017442696e617279486561703c526576657273655175657565496e6465783e0000450d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e64147479706573285175657565496e6465780000040010010c7533320000490d042842696e61727948656170040454014d0d000400510d0000004d0d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e6414747970657344526576657273655175657565496e6465780000040010010c7533320000510d0000024d0d00550d042842696e6172794865617004045401590d0004005d0d000000590d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e6414747970657334456e7175657565644f72646572000008011c706172615f69646902011850617261496400010c696478450d01285175657565496e64657800005d0d000002590d00610d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400650d01185665633c543e0000650d0000021800690d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734861737369676e65725f6f6e5f64656d616e641870616c6c6574144572726f7204045400010824517565756546756c6c000004e4546865206f726465722071756575652069732066756c6c2c2060706c6163655f6f72646572602077696c6c206e6f7420636f6e74696e75652e7053706f7450726963654869676865725468616e4d6178416d6f756e740001084d015468652063757272656e742073706f7420707269636520697320686967686572207468616e20746865206d617820616d6f756e742073706563696669656420696e207468652060706c6163655f6f72646572606063616c6c2c206d616b696e6720697420696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d0d0000040810f50700710d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d65205363686564756c6504044e0110000c012c61737369676e6d656e7473c505018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e743d0201244f7074696f6e3c4e3e0001346e6578745f7363686564756c653d0201244f7074696f6e3c4e3e0000750d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d6538436f726544657363726970746f7204044e0110000801147175657565790d01684f7074696f6e3c517565756544657363726970746f723c4e3e3e00013063757272656e745f776f726b810d01504f7074696f6e3c576f726b53746174653c4e3e3e0000790d04184f7074696f6e040454017d0d0108104e6f6e6500000010536f6d6504007d0d00000100007d0d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653c517565756544657363726970746f7204044e01100008011466697273741001044e0001106c6173741001044e0000810d04184f7074696f6e04045401850d0108104e6f6e6500000010536f6d650400850d0000010000850d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d6524576f726b537461746504044e01100010012c61737369676e6d656e7473890d01985665633c28436f726541737369676e6d656e742c2041737369676e6d656e745374617465293e000120656e645f68696e743d0201244f7074696f6e3c4e3e00010c706f735501010c75313600011073746570d105013050617274734f6635373630300000890d0000028d0d008d0d00000408cd05910d00910d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653c41737369676e6d656e7453746174650000080114726174696fd105013050617274734f66353736303000012472656d61696e696e67d105013050617274734f6635373630300000950d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d651870616c6c6574144572726f720404540001184041737369676e6d656e7473456d707479000000344f7665725363686564756c65640001049041737369676e6d656e747320746f6765746865722065786365656465642035373630302e38556e6465725363686564756c65640002049041737369676e6d656e747320746f676574686572206c657373207468616e20353736303040446973616c6c6f776564496e73657274000308510161737369676e5f636f7265206973206f6e6c7920616c6c6f77656420746f20617070656e64206e65772061737369676e6d656e74732061742074686520656e64206f6620616c7265616479206578697374696e67146f6e65732e3c4475706c6963617465496e736572740004045501547269656420746f20696e736572742061207363686564756c6520666f72207468652073616d6520636f726520616e6420626c6f636b206e756d62657220617320616e206578697374696e67207363686564756c655041737369676e6d656e74734e6f74536f72746564000504ac547269656420746f2061646420616e20756e736f7274656420736574206f662061737369676e6d656e7473048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990d0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564b10201304f7074696f6e3c626f6f6c3e00009d0d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000138344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f7450617261746872656164000604bc50617261206973206e6f742061205061726174687265616420286f6e2d64656d616e642070617261636861696e292e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e67726164650008042d0143616e6e6f74207363686564756c6520646f776e6772616465206f66206c6561736520686f6c64696e672070617261636861696e20746f206f6e2d64656d616e642070617261636861696e3443616e6e6f7455706772616465000904250143616e6e6f74207363686564756c652075706772616465206f66206f6e2d64656d616e642070617261636861696e20746f206c6561736520686f6c64696e672070617261636861696e28506172614c6f636b6564000a08490150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e2c676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e2c496e76616c6964436f6465000c047c5468652076616c69646174696f6e20636f646520697320696e76616c69642e2843616e6e6f7453776170000d08510143616e6e6f7420706572666f726d20612070617261636861696e20736c6f74202f206c6966656379636c6520737761702e20436865636b207468617420746865207374617465206f6620626f74682070617261738461726520636f727265637420666f7220746865207377617020746f20776f726b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10d000002290b00a50d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90d0000040800690200ad0d00000324000000b10d00b10d04184f7074696f6e04045401b50d0108104e6f6e6500000010536f6d650400b50d0000010000b50d0000040c0069021800b90d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd0d0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e7449640001207665726966696572b105014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ec10d01744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f6400012866756e645f696e64657810012446756e64496e6465780000c10d0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000c50d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110855015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e741c706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90d106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c6574144572726f7204045400010c244e6f7442726f6b6572000004290154686520706172616964206d616b696e67207468652063616c6c206973206e6f742074686520636f726574696d652062726f6b65726167652073797374656d2070617261636861696e2e58526571756573746564467574757265526576656e7565000108450152657175657374656420726576656e756520696e666f726d6174696f6e20607768656e6020706172616d657465722077617320696e20746865206675747572652066726f6d207468652063757272656e7434626c6f636b206865696768742e4c41737365745472616e736665724661696c6564000204bc4661696c656420746f207472616e736665722061737365747320746f2074686520636f726574696d6520636861696e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0d0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e6465722d01014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572d10d01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679d50d01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696e2d01014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365dd0d014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000d10d04184f7074696f6e040454012d010108104e6f6e6500000010536f6d6504002d010000010000d50d04184f7074696f6e04045401d90d0108104e6f6e6500000010536f6d650400d90d0000010000d90d00000408080800dd0d080c78636d4456657273696f6e6564526573706f6e736500010c08563204000506013076323a3a526573706f6e736500020008563304004d06013076333a3a526573706f6e73650003000856340400b106013076343a3a526573706f6e736500040000e10d00000408102d0100e50d0000040c30281000e90d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed0d045300000400f10d01185665633c543e0000ed0d000004082d011000f10d000002ed0d00f50d0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400f90d013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000f90d04184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000fd0d0000040c10000d0700010e0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e74696669657201a101304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e65722d01014456657273696f6e65644c6f636174696f6e0001186c6f636b65722d01014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273050e01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000050e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401090e0453000004000d0e01185665633c543e0000090e00000408a10118000d0e000002090e00110e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401150e045300000400190e01185665633c543e0000150e00000408182d0100190e000002150e001d0e0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001602c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210e085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01150700180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273250e01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000250e04184f7074696f6e04045401290e0108104e6f6e6500000010536f6d650400290e0000010000290e085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e0115070008011070726576150701344d6573736167654f726967696e0001106e657874150701344d6573736167654f726967696e00002d0e0000040815071000310e085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170350e019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000350e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000390e0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0e0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e410e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010502045300000400450e01185665633c543e0000450e000002050200490e0c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011060496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660001043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0e0c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e740000510e102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373019d011043616c6c015d01245369676e617475726501bd0514457874726101550e00040038000000550e00000424590e5d0e610e650e690e710e750e790e7d0e00590e10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000005d0e10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000610e10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000650e10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000690e10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004006d0e010c45726100006d0e102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000710e10306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400d40120543a3a4e6f6e63650000750e10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000790e086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400e4013042616c616e63654f663c543e00007d0e08746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465810e01104d6f64650000810e08746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000850e085873746167696e675f6b7573616d615f72756e74696d651c52756e74696d650000000001011853797374656d011853797374656d481c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023441080400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000450804000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500003d08040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500004d08040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e01610101581830426c6f636b576569676874735108010207a81a0a5303000b00204aa9d10113ffffffffffffffff4273bb1d00010b30f3708f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf0100004273bb1d00010b307bc3f9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000404273bb1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e6774685d083000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687465084040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e6908ed04186b7573616d61347061726974792d6b7573616d6102000000f84d0f00000000005cc51ff1fa3f5d0cca01000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0b00000049eaaf1b548a0cb00300000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92010000009ffb505aa738d69c0100000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000fbc577b9d747efd6010000001a000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978550108020014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e017908001042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301007d080400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100810120000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100810120000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000890104000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f72697469657301007d0804000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510890804000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000910804000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100b10704001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f636853746172740100f502200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000a90804000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000a9080400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100ad0804002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01710100103445706f63684475726174696f6e302058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d653020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e01b908012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0195010004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00021c496e6469636573011c496e646963657304204163636f756e74730001040210bd080400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e019901017c041c4465706f7369741840344dd2c207000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01c108032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200c508040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200d50804000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200e1080400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200f9080400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01a901018010484578697374656e7469616c4465706f73697418405543de1300000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100800000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e010d0904485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100210740000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100110904000000018804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e002128417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000051c5374616b696e67011c5374616b696e67ac3856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100ad0104000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e01009410000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c6564676572000104020015090400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e14506179656500010405009004000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500980800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405001d0904004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b6572730001040500a101040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100002509040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805052d0931090c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f7665727669657700010805052d093d09040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c697070656401010805052d0931090c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c05050541094509040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d65645265776172647301010805052d09c101040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f72507265667301010805052d09980800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510490914000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100a004000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000bd0104000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e01009410000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405105909040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100410804001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100010805052d096109040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100010805052d0918040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e73000104050065090400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101040555096909800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4844697361626c656456616c696461746f72730100c10104001c750120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e2074686520616374697665206572612e20546865206f6666656e64657273206172652064697361626c656420666f72206169012077686f6c65206572612e20466f72207468697320726561736f6e207468657920617265206b6570742068657265202d206f6e6c79207374616b696e672070616c6c6574206b6e6f77732061626f757420657261732e20546865550120696d706c656d656e746f72206f66205b6044697361626c696e675374726174656779605d20646566696e657320696620612076616c696461746f722073686f756c642062652064697361626c65642077686963686d0120696d706c696369746c79206d65616e7320746861742074686520696d706c656d656e746f7220616c736f20636f6e74726f6c7320746865206d6178206e756d626572206f662064697361626c65642076616c696461746f72732e006d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c7978206f6666656e646564207573696e672062696e617279207365617263682e384368696c6c5468726573686f6c640000bd0104000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01b501018c1830486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000200002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e016d0906204f6666656e63657301204f6666656e636573081c5265706f72747300010405347109040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505790915030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001a400000728486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e7300010405107d090400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e67650000f502040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c6173742900000000221c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100ad010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010081090400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100c1010400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b6579730001040500f5010400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405890900040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01f10101ac00019109081c4772616e647061011c4772616e6470611c1453746174650100950904000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500009909040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000f5020400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f72697469657301009d0904000484205468652063757272656e74206c697374206f6620617574686f7269746965732e010d0201b00c384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01a1090a48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100a5090400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100a50904000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c20547265617375727901205472656173757279183450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510ad090400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100b109040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510b509040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e01390201c0142c5370656e64506572696f64101080510100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726ebd0910d00700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964c1092070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010809706000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e01c5091240436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505c909cd09d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500ed0904000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e014102014d0108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010c0890100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01f90914245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210fd09040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b51756575650101040555011d0a0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405550110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01550201510114445375626d697373696f6e4465706f7369741840554dd2c207000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73290a191740000010726f6f740100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01004877686974656c69737465645f63616c6c65726400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f0100000000396279020000000002003c776973685f666f725f6368616e67650a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00347374616b696e675f61646d696e0a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b00247472656173757265720a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c002c6c656173655f61646d696e0a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d004066656c6c6f77736869705f61646d696e0a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e003467656e6572616c5f61646d696e0a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f003461756374696f6e5f61646d696e0a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400507265666572656e64756d5f63616e63656c6c6572e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500447265666572656e64756d5f6b696c6c6572e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0030736d616c6c5f746970706572c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00286269675f746970706572640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200034736d616c6c5f7370656e646572320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100386d656469756d5f7370656e64657232000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff22002c6269675f7370656e64657232000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff04e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e01410a155046656c6c6f7773686970436f6c6c656374697665015046656c6c6f7773686970436f6c6c656374697665182c4d656d626572436f756e7401010405550110100000000008690120546865206e756d626572206f66206d656d6265727320696e2074686520636f6c6c6563746976652077686f2068617665206174206c65617374207468652072616e6b206163636f7264696e6720746f2074686520696e64657830206f6620746865207665632e1c4d656d626572730001040500450a0400049c205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e244964546f496e6465780001080505490a1004000461012054686520696e646578206f6620656163682072616e6b732773206d656d62657220696e746f207468652067726f7570206f66206d656d626572732077686f2068617665206174206c6561737420746861742072616e6b2e24496e646578546f496400010805054d0a000400085d0120546865206d656d6265727320696e2074686520636f6c6c65637469766520627920696e6465782e20416c6c20696e646963657320696e207468652072616e67652060302e2e4d656d626572436f756e74602077696c6c65012072657475726e2060536f6d65602c20686f77657665722061206d656d626572277320696e646578206973206e6f742067756172616e7465656420746f2072656d61696e20756e6368616e676564206f7665722074696d652e18566f74696e6700010802052d095907040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e34566f74696e67436c65616e75700001040210510a040000017d020155070001550a164c46656c6c6f77736869705265666572656e6461014c46656c6c6f77736869705265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210590a040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104055501610a0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405550110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01810201610714445375626d697373696f6e4465706f73697418400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010c089010008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73290acd0b2800002863616e646964617465730a0000003435261a0803000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d01001c6d656d626572730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d02002c70726f66696369656e74730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d03001c66656c6c6f77730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d04003873656e696f722066656c6c6f77730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d05001c657870657274730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d06003873656e696f7220657870657274730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d07001c6d6173746572730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d08003873656e696f72206d6173746572730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0900346772616e64206d6173746572730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d04e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e01650a171c4f726967696e7300000000002b2457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c0001040534a1010400000185020165070001690a2c28506172616d65746572730128506172616d65746572730428506172616d6574657273000104027d0789070400044c2053746f72656420706172616d65746572732e01890201790700002e18436c61696d730118436c61696d731418436c61696d7300010406c1021804000014546f74616c0100184000000000000000000000000000000000001c56657374696e6700010406c102c902040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e6700010406c102d102040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d730001040600c1020400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e01b502019107041850726566697838807c506179204b534d7320746f20746865204b7573616d61206163636f756e743a00016d0a131c5574696c6974790001d502019507044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01710a181c536f6369657479011c536f63696574795028506172616d65746572730000a107040004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e0c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1c466f756e6465720000000400044820546865206669727374206d656d6265722e1048656164000000040004410120546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f7665642072616e6b2030206d656d6265727320696e2074686520736f63696574792e1452756c6573000034040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e1c4d656d626572730001040500750a0400042101205468652063757272656e74206d656d6265727320616e642074686569722072616e6b2e20446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e1c5061796f7574730101040500810a44000000000000000000000000000000000004dc20496e666f726d6174696f6e20726567617264696e672072616e6b2d30207061796f7574732c207061737420616e64206675747572652e2c4d656d626572436f756e74010010100000000004490120546865206e756d626572206f66206974656d7320696e20604d656d62657273602063757272656e746c792e2028446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e29344d656d6265724279496e6465780001040510000400085d01205468652063757272656e74206974656d7320696e20604d656d6265727360206b6579656420627920746865697220756e6971756520696e6465782e204b657973206172652064656e73656c7920706f70756c61746564cc2060302e2e4d656d626572436f756e74602028646f6573206e6f7420696e636c75646520604d656d626572436f756e7460292e4053757370656e6465644d656d626572730001040500750a04000401012054686520736574206f662073757370656e646564206d656d626572732c2077697468207468656972206f6c64206d656d62657273686970207265636f72642e28526f756e64436f756e74010010100000000004a020546865206e756d626572206f6620726f756e64732077686963682068617665207061737365642e10426964730100890a040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e2843616e646964617465730001040200990a0400001c536b657074696300000004000454205468652063757272656e7420736b65707469632e14566f7465730001080505a10aa50a040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e3c566f7465436c656172437572736f720001040500a90a040004f420436c6561722d637572736f7220666f7220566f74652c206d61702066726f6d2043616e646964617465202d3e20284d617962652920437572736f722e204e657874486561640000ad0a04000c75012041742074686520656e64206f662074686520636c61696d20706572696f642c207468697320636f6e7461696e7320746865206d6f737420726563656e746c7920617070726f766564206d656d626572732028616c6f6e67207769746865012074686569722062696420616e6420726f756e64204944292077686f2069732066726f6d20746865206d6f737420726563656e7420726f756e64207769746820746865206c6f77657374206269642e20546865792077696c6c5c206265636f6d6520746865206e6577206048656164602e4c4368616c6c656e6765526f756e64436f756e74010010100000000004590120546865206e756d626572206f66206368616c6c656e676520726f756e64732074686572652068617665206265656e2e205573656420746f206964656e74696679207374616c6520446566656e646572566f7465732e24446566656e64696e670000b10a04000459012054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642c20616c6f6e67207769746820612072756e6e696e672074616c6c79206f6620766f7465732e34446566656e646572566f74657300010805052d09a50a040004c820566f74657320666f722074686520646566656e6465722c206b65796564206279206368616c6c656e676520726f756e642e01dd02019d07242050616c6c65744964c1092070792f736f63696504682054686520736f6369657469657327732070616c6c6574206964304772616365537472696b657310100a00000004090120546865206d6178696d756d206e756d626572206f6620737472696b6573206265666f72652061206d656d62657220676574732066756e647320736c61736865642e2c506572696f645370656e641840040abf82280f00000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e30566f74696e67506572696f64101040190100083d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732073686f756c6420626520766f746564206f6e2e20546f67657468657220776974684d012060436c61696d506572696f64602c20746869732073756d7320746f20746865206e756d626572206f6620626c6f636b73206265747765656e2063616e64696461746520696e74616b6520706572696f64732e2c436c61696d506572696f64101080700000084d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732063616e20636c61696d207468656972206d656d6265727368697020616e642062652074686530206e616d656420686561642e3c4d61784c6f636b4475726174696f6e1010004eed0004a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e3c4368616c6c656e6765506572696f641010c089010004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e284d61785061796f757473101008000000040d0120546865206d6178696d756d206e756d626572206f66207061796f7574732061206d656d626572206d617920686176652077616974696e6720756e636c61696d65642e1c4d617842696473101000020000049020546865206d6178696d756d206e756d626572206f662062696473206174206f6e63652e01b50a1a205265636f7665727901205265636f766572790c2c5265636f76657261626c650001040500b90a04000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f7665726965730001080505a10ac10a0400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01e10201a5071044436f6e6669674465706f73697442617365184004821bce26000000000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f7218409a2669e1030000000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e3c5265636f766572794465706f736974184004821bce2600000000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e01c50a1b1c56657374696e67011c56657374696e67081c56657374696e670001040200c90a040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100d10a04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01e50201a90708444d696e5665737465645472616e736665721840344dd2c207000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001d50a1c245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040000184167656e64610101040510d90a0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c5265747269657300010402f502e90a040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b75700001040504f502040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01ed0201ad0708344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01ed0a1d1450726f7879011450726f7879081c50726f786965730101040500f10a4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500010b44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01f90201b507184050726f78794465706f736974426173651840b00953489b000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721840b4a6904100000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173651840b00953489b000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f721840684d218300000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01110b1e204d756c746973696701204d756c746973696704244d756c7469736967730001080502150b190b040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01050301b9070c2c4465706f736974426173651840f01945e79b000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218408006943f0000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01210b1f20507265696d6167650120507265696d6167650c24537461747573466f720001040634250b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f7200010406342d0b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f72000104067d093d0b04000001110301bd070001410b2020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510450b0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e7300010405104d0b0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100b109040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01190301c1072444426f756e74794465706f736974426173651840344dd2c207000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000000000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e6043757261746f724465706f7369744d756c7469706c696572bd091020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d6178dd01440104821bce260000000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696edd01440152a1aec6000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d1840689aa4850f00000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f7369745065724279746518405543de130000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501510b23344368696c64426f756e7469657301344368696c64426f756e7469657314404368696c64426f756e7479436f756e7401001010000000000480204e756d626572206f6620746f74616c206368696c6420626f756e746965732e4c506172656e744368696c64426f756e74696573010104051010100000000008b0204e756d626572206f66206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e344368696c64426f756e746965730001080505f502550b04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e5c4368696c64426f756e74794465736372697074696f6e7300010405104d0b0400049820546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e011d0301c50708644d61784163746976654368696c64426f756e7479436f756e74101064000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d1840a4425d8d0100000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e015d0b2868456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100d1070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000610b04000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e20536e617073686f740000690b0400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e40536e617073686f744d65746164617461000059040400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100750b0400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510810b04001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000055040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01210301c90738544265747465725369676e65645468726573686f6c64941000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479302065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687428400b88d8663c550113a3703d0ad7a370bd1494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e656452657761726442617365184000e87648170000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442797465184090f7040000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e284d617857696e6e6572731010d007000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687428400b88d8663c550113a3703d0ad7a370bd00544d696e65724d6178566f746573506572566f746572101018000000003c4d696e65724d617857696e6e6572731010d00700000001850b250c4e6973010c4e6973102c5175657565546f74616c730100890b499cd107000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e1851756575657301010402108d0b040004e02054686520717565756573206f6620626964732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e1c53756d6d6172790100990ba00000000000000000000000000000000000000000000000000000000000000000000000000000000004b02053756d6d61727920696e666f726d6174696f6e206f766572207468652067656e6572616c2073746174652e20526563656970747300010402109d0b0400044101205468652063757272656e746c79206f75747374616e64696e672072656365697074732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e01750401d907282050616c6c65744964c1092070792f6e697320200419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e285175657565436f756e741010f4010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e1010e80300000cf0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e0068204d757374206265206c6172676572207468616e207a65726f2e304669666f51756575654c656e1010fa0000000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e2842617365506572696f641010c089010008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e184d696e42696418403435261a08030000000000000000000018210120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d617920626520706c6163656420696e2061206269642e204e6f746520746861742074686973610120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d617920626520726570726573656e74656420696e206120726563656970742073696e63652062696473206d61796c2062652073706c6974207570206279207468652073797374656d2e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e284d696e526563656970749d022000e876481700000008550120546865206d696e696d756d20616d6f756e74206f662066756e6473207768696368206d617920696e74656e74696f6e616c6c79206265206c6566742072656d61696e696e6720756e64657220612073696e676c652420726563656970742e30496e74616b65506572696f64101032000000105d0120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f2064657175657565206269647320616e64206372656174652072656365697074732e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e3c4d6178496e74616b65576569676874283c0700d0ed902e1399999999999999190c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e20636f6e736f6c69646174656420696e746f20726563656970747320696e20612073696e676c6520696e74616b652e20415d01206c61726765722076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c6420746865726520626520613820676c7574206f6620626964732e30546861775468726f74746c65a10b300000d9e9ac2d78030500000004490120546865206d6178696d756d2070726f706f7274696f6e207768696368206d61792062652074686177656420616e642074686520706572696f64206f7665722077686963682069742069732072657365742e01a50b26584e6973436f756e7465727061727442616c616e63657301584e6973436f756e7465727061727442616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200a90b040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200ad0b04000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200e1080400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200b10b0400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01790401dd0710484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310100400000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010040000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100100000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01bd0b2d24566f7465724c6973740124566f7465724c6973740c244c6973744e6f6465730001040500c10b04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530c50b04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e017d0401e10704344261675468726573686f6c6473c90b0919210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01cd0b273c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e00009404000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500d50b04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c730001040510e10b040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c730001040510f50b04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f726167650001040510f90b04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d657461646174610101040510110c0400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e7301010405009d040402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e01810401e5070c2050616c6c65744964c1092070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101020000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01150c292c46617374556e7374616b65012c46617374556e7374616b6510104865616400001d0c04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e01b50401e907041c4465706f7369741840344dd2c2070000000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e01290c2a4050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0c30416374697665436f6e66696701002d0c410300003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c901809698000000000000000000000000000500000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3850656e64696e67436f6e666967730100310c04001c7c2050656e64696e6720636f6e66696775726174696f6e206368616e6765732e00590120546869732069732061206c697374206f6620636f6e66696775726174696f6e206368616e6765732c2065616368207769746820612073657373696f6e20696e6465782061742077686963682069742073686f756c6430206265206170706c6965642e00610120546865206c69737420697320736f7274656420617363656e64696e672062792073657373696f6e20696e6465782e20416c736f2c2074686973206c6973742063616e206f6e6c7920636f6e7461696e206174206d6f7374fc2032206974656d733a20666f7220746865206e6578742073657373696f6e20616e6420666f722074686520607363686564756c65645f73657373696f6e602e58427970617373436f6e73697374656e6379436865636b01002004000861012049662074686973206973207365742c207468656e2074686520636f6e66696775726174696f6e20736574746572732077696c6c206279706173732074686520636f6e73697374656e637920636865636b732e2054686973b4206973206d65616e7420746f2062652075736564206f6e6c7920617320746865206c617374207265736f72742e01b904000001390c332c5061726173536861726564012c5061726173536861726564104c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e646963657301003d0c040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100410c0400085501205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e1d0120636f6e73656e7375732e20546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e4c416c6c6f77656452656c6179506172656e74730100450c140000000000046c20416c6c20616c6c6f7765642072656c61792d706172656e74732e01dd04000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e04085631000104056902510c04001461012043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e205468657920666f726d206120636861696e207374617274696e672066726f6d20746865206c61746573746c20696e636c756465642068656164206f662074686520706172612e610120557365206120646966666572656e742070726566697820706f73742d6d6967726174696f6e20746f2076312c2073696e636520746865207630206050656e64696e67417661696c6162696c697479602073746f72616765710120776f756c64206f74686572776973652068617665207468652065786163742073616d652070726566697820776869636820636f756c6420636175736520756e646566696e6564206265686176696f7572207768656e20646f696e673c20746865206d6967726174696f6e2e01e10401ed070001590c353050617261496e686572656e74013050617261496e686572656e740820496e636c756465640000a101040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e304f6e436861696e566f74657300005d0c04000445012053637261706564206f6e20636861696e206461746120666f722065787472616374696e67207265736f6c7665642064697370757465732061732077656c6c206173206261636b696e6720766f7465732e01e504000001710c3634506172615363686564756c65720134506172615363686564756c6572103c56616c696461746f7247726f7570730100750c04001c6d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00490120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e6420706172617468726561646901206d756c7469706c65786572732e20526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a20736166655020757070657220626f756e642061742031306b2e44417661696c6162696c697479436f7265730100790c0400187101204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e2054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c207769746820746865f02072656d61696e696e6720636f72657320616c6c206265696e67206f6e2064656d616e642070617261636861696e206d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e4453657373696f6e5374617274426c6f636b01001010000000001c69012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e733c2068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e28436c61696d51756575650100890c04000c5901204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20546865206056656344657175656020726570726573656e7473207468652061737369676e6d656e747320746f2062655101207363686564756c6564206f6e207468617420636f72652e205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f666901206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f72657320666f7220746865207570636f6d696e6720626c6f636b2e0000000037145061726173011450617261735440507666416374697665566f74654d6170000104052105990c040010b420416c6c2063757272656e746c792061637469766520505646207072652d636865636b696e6720766f7465732e002c20496e76617269616e743a7501202d20546865726520617265206e6f20505646207072652d636865636b696e6720766f74657320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e44507666416374697665566f74654c6973740100a90c040004350120546865206c697374206f6620616c6c2063757272656e746c79206163746976652050564620766f7465732e20417578696c6961727920746f2060507666416374697665566f74654d6170602e2850617261636861696e730100ad0c040010690120416c6c206c6561736520686f6c64696e672070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e204f6e2064656d616e642070617261636861696e7320617265206e6f742820696e636c756465642e00e820436f6e7369646572207573696e6720746865205b6050617261636861696e734361636865605d2074797065206f66206d6f64696679696e672e38506172614c6966656379636c6573000104056902b10c040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040569024105040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e444d6f7374526563656e74436f6e746578740001040569021004000429012054686520636f6e74657874202872656c61792d636861696e20626c6f636b206e756d62657229206f6620746865206d6f737420726563656e742070617261636861696e20686561642e3c43757272656e74436f646548617368000104056902210504000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654861736800010405b50c210504001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d657461010104056902b90c0800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b020746f206b65657020697420617661696c61626c6520666f7220617070726f76616c20636865636b6572732e3c50617374436f64655072756e696e670100c50c04001869012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f6465690120776173207265706c616365642e204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465643d01206865696768742061742077686963682074686520636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e6d01205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f646d01207374617274696e672066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f64655570677261646573000104056902100400103d012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f7220612070617261636861696e2e00650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e50467574757265436f6465557067726164657341740100c50c040020ac20546865206c697374206f66207570636f6d696e672066757475726520636f64652075706772616465732e006d012045616368206974656d20697320612070616972206f66207468652070617261636861696e20616e642074686520657870656374656420626c6f636b2061742077686963682074686520757067726164652073686f756c642062655101206170706c6965642e2054686520757067726164652077696c6c206265206170706c6965642061742074686520676976656e2072656c617920636861696e20626c6f636b2e20496e20636f6e747261737420746f7501205b60467574757265436f64655570677261646573605d207468697320636f646520757067726164652077696c6c206265206170706c696564207265676172646c657373207468652070617261636861696e206d616b696e6720616e79442070726f6772657373206f72206e6f742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e38467574757265436f646548617368000104056902210504000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c000104056902c90c040028750120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652c2070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e550120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e6775012070617261636861696e2063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c20746865702076616c7565206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c000104056902cd0c040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100c50c04000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e6755706772616465730100c50c0400189020546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e0071012045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b206974402069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e7351756575650101040510ad0c04000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e65736973000104056902d10c040010a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e006501204e4f5445207468617420616674657220505646207072652d636865636b696e6720697320656e61626c65642074686520706172612067656e65736973206172672077696c6c2068617665206974277320636f646520736574610120746f20656d7074792e20496e73746561642c2074686520636f64652077696c6c20626520736176656420696e746f207468652073746f726167652072696768742061776179207669612060436f6465427948617368602e38436f64654279486173685265667301010406210510100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040621053d05040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01710501fd070440556e7369676e65645072696f726974793020ffffffffffffffff0001d50c382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a65640000a10104002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e00710120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e657501206f66207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c659020666f72207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100d90c04001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e017905000000390c446d70010c446d700c54446f776e776172644d657373616765517565756573010104056902e10c040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104056902348000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e4444656c6976657279466565466163746f72010104056902210740000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e000000003a1048726d70011048726d70305c48726d704f70656e4368616e6e656c5265717565737473000104058105e90c040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c6973740100ed0c0400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040569021010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e590120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732074686174206861730501206028582c205f296020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040569021010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c5265717565737473000104058105a10104001c7101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e2101206368616e67652e205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c6973740100ed0c0400003848726d7057617465726d61726b7300010405690210040010b8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a5501202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612c20202073657373696f6e2e3048726d704368616e6e656c73000104058105f10c04000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e646578010104056902ad0c040034710120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f7369746520736964652e1420492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a5101202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028492c205029602e4d01202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e646578010104056902ad0c0400004c48726d704368616e6e656c436f6e74656e7473010104058105f50c040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104056902fd0c0400186901204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a20576861742070617261732073656e742061206d657373616765206174e42074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e20496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e6d01202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468655420202073616d6520626c6f636b206e756d6265722e017d050101080001050d3c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f145041737369676e6d656e744b657973556e736166650100090d04000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e7300010406100d0d04000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e2c4163636f756e744b6579730001040610ad010400047101205468652076616c696461746f72206163636f756e74206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732e5453657373696f6e4578656375746f72506172616d730001040610c104040004c4204578656375746f7220706172616d657465722073657420666f72206120676976656e2073657373696f6e20696e646578000000003d345061726173446973707574657301345061726173446973707574657314444c6173745072756e656453657373696f6e000010040008010120546865206c617374207072756e65642073657373696f6e2c20696620616e792e20416c6c20646174612073746f7265642062792074686973206d6f64756c6554207265666572656e6365732073657373696f6e732e2044697370757465730001080502190d1d0d040004050120416c6c206f6e676f696e67206f7220636f6e636c7564656420646973707574657320666f7220746865206c617374207365766572616c2073657373696f6e732e444261636b6572734f6e44697370757465730001080502190d210d0400089c204261636b696e6720766f7465732073746f72656420666f72206561636820646973707574652e8c20546869732073746f72616765206973207573656420666f7220736c617368696e672e20496e636c756465640001080502190d10040008450120416c6c20696e636c7564656420626c6f636b73206f6e2074686520636861696e2c2061732077656c6c2061732074686520626c6f636b206e756d62657220696e207468697320636861696e207468617459012073686f756c64206265207265766572746564206261636b20746f206966207468652063616e64696461746520697320646973707574656420616e642064657465726d696e656420746f20626520696e76616c69642e1846726f7a656e01003d02040010110120576865746865722074686520636861696e2069732066726f7a656e2e2053746172747320617320604e6f6e65602e205768656e20746869732069732060536f6d65602c35012074686520636861696e2077696c6c206e6f742061636365707420616e79206e65772070617261636861696e20626c6f636b7320666f72206261636b696e67206f7220696e636c7573696f6e2c090120616e64206974732076616c756520696e6469636174657320746865206c6173742076616c696420626c6f636b206e756d62657220696e2074686520636861696e2ef82049742063616e206f6e6c7920626520736574206261636b20746f20604e6f6e656020627920676f7665726e616e636520696e74657276656e74696f6e2e0185050105080001250d3e345061726173536c617368696e6701345061726173536c617368696e670840556e6170706c696564536c61736865730001080502190d290d040004902056616c696461746f72732070656e64696e67206469737075746520736c61736865732e4856616c696461746f72536574436f756e747300010405101004000484206056616c696461746f72536574436f756e7460207065722073657373696f6e2e018905000001390d3f684f6e44656d616e6441737369676e6d656e7450726f766964657201684f6e44656d616e6441737369676e6d656e7450726f76696465721438506172614964416666696e6974790001040569023d0d04000c7101204d617073206120605061726149646020746f2060436f7265496e6465786020616e64206b6565707320747261636b206f6620686f77206d616e792061737369676e6d656e747320746865207363686564756c65722068617320696e5d012069742773206c6f6f6b61686561642e204b656570696e6720747261636b206f66207468697320616666696e6974792070726576656e747320706172616c6c656c20657865637574696f6e206f66207468652073616d659c206050617261496460206f6e2074776f206f72206d6f72652060436f7265496e6465786065732e2c51756575655374617475730100410d64000064a7b3b6e00d000000000000000000000000000000000004dc204f766572616c6c20737461747573206f662071756575652028626f74682066726565202b20616666696e69747920656e7472696573292c46726565456e74726965730100550d0400046101205072696f7269747920717565756520666f7220616c6c206f726465727320776869636820646f6e27742079657420286f72206e6f7420616e79206d6f726529206861766520616e7920636f726520616666696e6974792e3c416666696e697479456e747269657301010405f507550d040004490120517565756520656e74726965732074686174206172652063757272656e746c7920626f756e6420746f206120706172746963756c617220636f72652064756520746f20636f726520616666696e6974792e1c526576656e75650100610d040004fc204b6565707320747261636b206f6620616363756d756c6174656420726576656e75652066726f6d206f6e2064656d616e64206f726465722073616c65732e0199050111080c4c5472616666696344656661756c7456616c7565210740000064a7b3b6e00d000000000000000004cc205468652064656661756c742076616c756520666f72207468652073706f742074726166666963206d756c7469706c6965722e504d6178486973746f726963616c526576656e75651010a000000008d420546865206d6178696d756d206e756d626572206f6620626c6f636b7320736f6d6520686973746f726963616c20726576656e75656020696e666f726d6174696f6e2073746f72656420666f722e2050616c6c65744964c1092070792f6f6e646d6404b4204964656e74696669657220666f722074686520696e7465726e616c20726576656e75652062616c616e63652e01690d4068436f726574696d6541737369676e6d656e7450726f76696465720168436f726574696d6541737369676e6d656e7450726f76696465720834436f72655363686564756c6573000104046d0d710d0400106c205363686564756c65642061737369676e6d656e7420736574732e006d012041737369676e6d656e7473206173206f662074686520676976656e20626c6f636b206e756d6265722e20546865792077696c6c20676f20696e746f207374617465206f6e63652074686520626c6f636b206e756d626572206973d020726561636865642028616e64207265706c6163652077686174657665722077617320696e207468657265206265666f7265292e3c436f726544657363726970746f727301010404f507750d08000010a02041737369676e6d656e7473207768696368206172652063757272656e746c79206163746976652e00690120546865792077696c6c206265207069636b65642066726f6d206050656e64696e6741737369676e6d656e747360206f6e636520776520726561636820746865207363686564756c656420626c6f636b206e756d62657220696e58206050656e64696e6741737369676e6d656e7473602e00000001950d412452656769737472617201245265676973747261720c2c50656e64696e67537761700001040569026902040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104056902990d040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0071012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d61795501206f6e6c7920646f20736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010069021000000000046020546865206e65787420667265652060506172614964602e019d05011508082c506172614465706f73697418400080ca3961240000000000000000000008d420546865206465706f73697420746f206265207061696420746f2072756e2061206f6e2d64656d616e642070617261636861696e2e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518405543de1300000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e019d0d4614536c6f74730114536c6f747304184c6561736573010104056902a10d040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e006101205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f66207468652901207365636f6e642076616c756573206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e01a105011908082c4c65617365506572696f641010803a090004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f666673657410100000000004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01a50d472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f0000f502040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405a90d18040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510ad0d04000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e01a505011d081030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001b90d482443726f77646c6f616e012443726f77646c6f616e101446756e6473000104056902bd0d0400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e657752616973650100ad0c0400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787446756e64496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c652066756e6420696e64657801ad050121080c2050616c6c65744964c1092070792f6366756e64080d01206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c6420626564206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e1840180ca5d4e8000000000000000000000008610120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c792062657c206174206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01c50d4920436f726574696d650001c105012508082042726f6b657249641010ed03000004882054686520506172614964206f662074686520636f726574696d6520636861696e2e4442726f6b6572506f744c6f636174696f6ef88c0101006d6f646c70792f62726f6b65000000000000000000000000000000000000000004842054686520636f726574696d6520636861696e20706f74206c6f636174696f6e2e01c90d4a2458636d50616c6c6574012458636d50616c6c657438305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230cd0d0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502e10d10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502e10d30040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502e10de50d04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100e90d04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000f50d0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202fd0d010e040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200110e040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000091060400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e01d50501290800011d0e63304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f72010104051507210e74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c536572766963654865616400001507040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805052d0e310e0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01110701310810204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010100000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874710740010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874710740010700a0db215d133333333333333333145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01390e642441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e617469766500010402c4210704000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e642960011d0701390800013d0e6514426565667901144265656679142c417574686f7269746965730100410e04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100410e040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b01003d0204000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e012507000c384d6178417574686f7269746965731010a086010004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01490ec80c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000c93042656566794d6d724c656166013042656566794d6d724c65616608404265656679417574686f72697469657301004d0eb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f72697469657301004d0eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e00000000ca510e042448436865636b4e6f6e5a65726f53656e646572590ea10140436865636b5370656356657273696f6e5d0e1038436865636b547856657273696f6e610e1030436865636b47656e65736973650e3438436865636b4d6f7274616c697479690e3428436865636b4e6f6e6365710ea1012c436865636b576569676874750ea101604368617267655472616e73616374696f6e5061796d656e74790ea10144436865636b4d65746164617461486173687d0eb107850e'; diff --git a/packages/types-support/src/metadata/v14/dicle-json.json b/packages/types-support/src/metadata/v14/dicle-json.json new file mode 100644 index 0000000..e81e732 --- /dev/null +++ b/packages/types-support/src/metadata/v14/dicle-json.json @@ -0,0 +1,7988 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v14": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 528 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 529 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 527 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 531 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + } + ] + }, + "calls": { + "type": 88 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 532, + "value": "0x07a81a0a5303000b00204aa9d10113ffffffffffffffff4273bb1d00010b30f3708f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf0100004273bb1d00010b307bc3f9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000404273bb1d00000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 535, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 537, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 538, + "value": "0x186b7573616d61347061726974792d6b7573616d6102000000f84d0f00000000005cc51ff1fa3f5d0cca01000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0b00000049eaaf1b548a0cb00300000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92010000009ffb505aa738d69c0100000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000fbc577b9d747efd6010000001a00000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 85, + "value": "0x0200", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 542 + }, + "index": 0 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 543 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 96 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 96 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 98 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 543 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 546 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 548 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 492 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 189 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 554 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 554 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 555 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "type": 92 + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 12, + "value": "0x5802000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": 12, + "value": "0x7017000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max number of authorities allowed" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + } + ], + "errors": { + "type": 558 + }, + "index": 1 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 101 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0xb80b000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 2 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 559 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 102 + }, + "events": { + "type": 31 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 560 + }, + "index": 3 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 561 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 565 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 568 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 574 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 106 + }, + "events": { + "type": 32 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x5543de13000000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 579 + }, + "index": 4 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 456 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 580 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 34 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 33 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 5 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 107 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 37 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 581 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 36 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 38 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 583 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 104 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 585 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 588 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 591 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 588 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 592, + "value": 593 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 112 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 38 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 594 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 40 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 111 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 37 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 598 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 528 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 600 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 601 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 597, + "value": 602 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 112 + }, + "fallback": "0x00", + "docs": [ + " Indices of validators that have offended in the active era. The offenders are disabled for a", + " whole era. For this reason they are kept here - only staking pallet knows about eras. The", + " implementor of [`DisablingStrategy`] defines if a validator should be disabled which", + " implicitly means that the implementor also controls the max number of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator has previously", + " offended using binary search." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 111 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "type": 109 + }, + "events": { + "type": 35 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "errors": { + "type": 603 + }, + "index": 6 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 604 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 606, + "value": 197 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + } + ] + }, + "calls": null, + "events": { + "type": 41 + }, + "constants": [], + "errors": null, + "index": 7 + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 607 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ] + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 189 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 34 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 107 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 608 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 112 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 125 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 610, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 124 + }, + "events": { + "type": 43 + }, + "constants": [], + "errors": { + "type": 612 + }, + "index": 8 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 613 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 614 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 189 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 615 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ] + } + ] + }, + "calls": { + "type": 131 + }, + "events": { + "type": 44 + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xa800000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 616 + }, + "index": 10 + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 617 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 617 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 12 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 619 + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 620 + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 621 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + } + ] + }, + "calls": { + "type": 142 + }, + "events": { + "type": 48 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x80510100", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 623, + "value": "0xd0070000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 624, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x80970600", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + } + ], + "errors": { + "type": 625 + }, + "index": 18 + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 626, + "value": 627 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 635 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 144 + }, + "events": { + "type": 83 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 638 + }, + "index": 20 + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 639 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 85, + "value": 647 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 85, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 149 + }, + "events": { + "type": 84 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x554dd2c2070000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 650, + "value": "0x40000010726f6f740100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01004877686974656c69737465645f63616c6c65726400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f0100000000396279020000000002003c776973685f666f725f6368616e67650a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00347374616b696e675f61646d696e0a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b00247472656173757265720a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c002c6c656173655f61646d696e0a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d004066656c6c6f77736869705f61646d696e0a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e003467656e6572616c5f61646d696e0a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f003461756374696f6e5f61646d696e0a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400507265666572656e64756d5f63616e63656c6c6572e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500447265666572656e64756d5f6b696c6c6572e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0030736d616c6c5f746970706572c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00286269675f746970706572640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200034736d616c6c5f7370656e646572320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100386d656469756d5f7370656e64657232000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff22002c6269675f7370656e64657232000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff", + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "errors": { + "type": 656 + }, + "index": 21 + }, + { + "name": "FellowshipCollective", + "storage": { + "prefix": "FellowshipCollective", + "items": [ + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 85, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 657 + } + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective." + ] + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 658, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ] + }, + { + "name": "IndexToId", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 659, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 587, + "value": 470 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 660 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 159 + }, + "events": { + "type": 469 + }, + "constants": [], + "errors": { + "type": 661 + }, + "index": 22 + }, + { + "name": "FellowshipReferenda", + "storage": { + "prefix": "FellowshipReferenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 662 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 85, + "value": 664 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 85, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 160 + }, + "events": { + "type": 472 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 650, + "value": "0x2800002863616e646964617465730a0000003435261a0803000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d01001c6d656d626572730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d02002c70726f66696369656e74730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d03001c66656c6c6f77730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d04003873656e696f722066656c6c6f77730a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d05001c657870657274730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d06003873656e696f7220657870657274730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d07001c6d6173746572730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d08003873656e696f72206d6173746572730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0900346772616e64206d6173746572730a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d", + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "errors": { + "type": 665 + }, + "index": 23 + }, + { + "name": "Origins", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 43 + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 104 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 161 + }, + "events": { + "type": 473 + }, + "constants": [], + "errors": { + "type": 666 + }, + "index": 44 + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 479, + "value": 482 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ] + } + ] + }, + "calls": { + "type": 162 + }, + "events": { + "type": 478 + }, + "constants": [], + "errors": null, + "index": 46 + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 176, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 176, + "value": 178 + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 176, + "value": 180 + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 0, + "value": 176 + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": { + "type": 173 + }, + "events": { + "type": 484 + }, + "constants": [ + { + "name": "Prefix", + "type": 14, + "value": "0x7c506179204b534d7320746f20746865204b7573616d61206163636f756e743a", + "docs": [] + } + ], + "errors": { + "type": 667 + }, + "index": 19 + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 181 + }, + "events": { + "type": 485 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 668 + }, + "index": 24 + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "plain": 488 + }, + "fallback": "0x00", + "docs": [ + " The max number of members for the society at one time." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved rank 0 members in the society." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": 13 + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 669 + } + }, + "fallback": "0x00", + "docs": [ + " The current members and their rank. Doesn't include `SuspendedMembers`." + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 672 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Information regarding rank-0 payouts, past and future." + ] + }, + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" + ] + }, + { + "name": "MemberByIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The current items in `Members` keyed by their unique index. Keys are densely populated", + " `0..MemberCount` (does not include `MemberCount`)." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 669 + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members, with their old membership record." + ] + }, + { + "name": "RoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of rounds which have passed." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": 674 + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Candidates", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 678 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Skeptic", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current skeptic." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 680, + "value": 681 + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "VoteClearCursor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 682 + } + }, + "fallback": "0x00", + "docs": [ + " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." + ] + }, + { + "name": "NextHead", + "modifier": "Optional", + "type": { + "plain": 683 + }, + "fallback": "0x00", + "docs": [ + " At the end of the claim period, this contains the most recently approved members (along with", + " their bid and round ID) who is from the most recent round with the lowest bid. They will", + " become the new `Head`." + ] + }, + { + "name": "ChallengeRoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of challenge rounds there have been. Used to identify stale DefenderVotes." + ] + }, + { + "name": "Defending", + "modifier": "Optional", + "type": { + "plain": 684 + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged, along with a running tally of votes." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 587, + "value": 681 + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender, keyed by challenge round." + ] + } + ] + }, + "calls": { + "type": 183 + }, + "events": { + "type": 487 + }, + "constants": [ + { + "name": "PalletId", + "type": 624, + "value": "0x70792f736f636965", + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "GraceStrikes", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of strikes before a member gets funds slashed." + ] + }, + { + "name": "PeriodSpend", + "type": 6, + "value": "0x040abf82280f00000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x40190100", + "docs": [ + " The number of blocks on which new candidates should be voted on. Together with", + " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." + ] + }, + { + "name": "ClaimPeriod", + "type": 4, + "value": "0x80700000", + "docs": [ + " The number of blocks on which new candidates can claim their membership and be the", + " named head." + ] + }, + { + "name": "MaxLockDuration", + "type": 4, + "value": "0x004eed00", + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "MaxPayouts", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of payouts a member may have waiting unclaimed." + ] + }, + { + "name": "MaxBids", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of bids at once." + ] + } + ], + "errors": { + "type": 685 + }, + "index": 26 + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 686 + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 680, + "value": 688 + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "type": 184 + }, + "events": { + "type": 489 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "type": 6, + "value": "0x04821bce260000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": 6, + "value": "0x9a2669e1030000000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": 4, + "value": "0x09000000", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ] + }, + { + "name": "RecoveryDeposit", + "type": 6, + "value": "0x04821bce260000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": { + "type": 689 + }, + "index": 27 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 690 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 692 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 185 + }, + "events": { + "type": 490 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 693 + }, + "index": 28 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 694 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 189, + "value": 698 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 189 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 187 + }, + "events": { + "type": 491 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 699 + }, + "index": 29 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 700 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 704 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 190 + }, + "events": { + "type": 493 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0xb00953489b0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0xb4a69041000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0xb00953489b0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x684d2183000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 708 + }, + "index": 30 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 709, + "value": 710 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 193 + }, + "events": { + "type": 494 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0xf01945e79b0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x8006943f000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 712 + }, + "index": 31 + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 713 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 715 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 607, + "value": 719 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 196 + }, + "events": { + "type": 495 + }, + "constants": [], + "errors": { + "type": 720 + }, + "index": 32 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 721 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 723 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 620 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 198 + }, + "events": { + "type": 496 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x00000000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x80c61300", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 623, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 119, + "value": "0x0104821bce260000000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 119, + "value": "0x0152a1aec6000000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x689aa4850f0000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x5543de13000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 724 + }, + "index": 35 + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 189, + "value": 725 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 723 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 199 + }, + "events": { + "type": 497 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0xa4425d8d010000000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 727 + }, + "index": 40 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 500 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 728 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 730 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 278 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 733 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 736 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 277 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "type": 200 + }, + "events": { + "type": 498 + }, + "constants": [ + { + "name": "BetterSignedThreshold", + "type": 37, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x12000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": 12, + "value": "0x65666666666666e6", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": 10, + "value": "0x0b88d8663c550113a3703d0ad7a370bd", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x04000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x90f70400000000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xd0070000", + "docs": [ + " The maximum number of winners that can be elected by this `ElectionProvider`", + " implementation.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [] + }, + { + "name": "MinerMaxWeight", + "type": 10, + "value": "0x0b88d8663c550113a3703d0ad7a370bd", + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x18000000", + "docs": [] + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xd0070000", + "docs": [] + } + ], + "errors": { + "type": 737 + }, + "index": 37 + }, + { + "name": "Nis", + "storage": { + "prefix": "Nis", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": 738 + }, + "fallback": "0xd10700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 739 + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "Summary", + "modifier": "Default", + "type": { + "plain": 742 + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Summary information over the general state." + ] + }, + { + "name": "Receipts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 743 + } + }, + "fallback": "0x00", + "docs": [ + " The currently outstanding receipts, indexed according to the order of creation." + ] + } + ] + }, + "calls": { + "type": 285 + }, + "events": { + "type": 502 + }, + "constants": [ + { + "name": "PalletId", + "type": 624, + "value": "0x70792f6e69732020", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "QueueCount", + "type": 4, + "value": "0xf4010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue.", + "", + " Must be larger than zero." + ] + }, + { + "name": "FifoQueueLen", + "type": 4, + "value": "0xfa000000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "BasePeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinBid", + "type": 6, + "value": "0x3435261a080300000000000000000000", + "docs": [ + " The minimum amount of funds that may be placed in a bid. Note that this", + " does not actually limit the amount which may be represented in a receipt since bids may", + " be split up by the system.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "MinReceipt", + "type": 167, + "value": "0x00e8764817000000", + "docs": [ + " The minimum amount of funds which may intentionally be left remaining under a single", + " receipt." + ] + }, + { + "name": "IntakePeriod", + "type": 4, + "value": "0x32000000", + "docs": [ + " The number of blocks between consecutive attempts to dequeue bids and create receipts.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeWeight", + "type": 10, + "value": "0x0700d0ed902e139999999999999919", + "docs": [ + " The maximum amount of bids that can consolidated into receipts in a single intake. A", + " larger value here means less of the block available for transactions should there be a", + " glut of bids." + ] + }, + { + "name": "ThawThrottle", + "type": 744, + "value": "0x0000d9e9ac2d780305000000", + "docs": [ + " The maximum proportion which may be thawed and the period over which it is reset." + ] + } + ], + "errors": { + "type": 745 + }, + "index": 38 + }, + { + "name": "NisCounterpartBalances", + "storage": { + "prefix": "NisCounterpartBalances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 746 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 747 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 568 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 748 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 286 + }, + "events": { + "type": 503 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x04000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x04000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x01000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 751 + }, + "index": 45 + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 752 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 753 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + } + ] + }, + "calls": { + "type": 287 + }, + "events": { + "type": 504 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 754, + "value": "0x210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + } + ], + "errors": { + "type": 755 + }, + "index": 39 + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 37 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 757 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 760 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 765 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 766 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 772 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 295 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 288 + }, + "events": { + "type": 505 + }, + "constants": [ + { + "name": "PalletId", + "type": 624, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 773 + }, + "index": 41 + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 775 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ] + } + ] + }, + "calls": { + "type": 301 + }, + "events": { + "type": 506 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "errors": { + "type": 778 + }, + "index": 42 + }, + { + "name": "TeyrchainsOrigin", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 50 + }, + { + "name": "Configuration", + "storage": { + "prefix": "Configuration", + "items": [ + { + "name": "ActiveConfig", + "modifier": "Default", + "type": { + "plain": 779 + }, + "fallback": "0x00003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c9018096980000000000000000000000000005000000", + "docs": [ + " The active configuration for the current session." + ] + }, + { + "name": "PendingConfigs", + "modifier": "Default", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " Pending configuration changes.", + "", + " This is a list of configuration changes, each with a session index at which it should", + " be applied.", + "", + " The list is sorted ascending by session index. Also, this list can only contain at most", + " 2 items: for the next session and for the `scheduled_session`." + ] + }, + { + "name": "BypassConsistencyCheck", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " If this is set, then the configuration setters will bypass the consistency checks. This", + " is meant to be used only as the last resort." + ] + } + ] + }, + "calls": { + "type": 302 + }, + "events": null, + "constants": [], + "errors": { + "type": 782 + }, + "index": 51 + }, + { + "name": "ParasShared", + "storage": { + "prefix": "ParasShared", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current session index." + ] + }, + { + "name": "ActiveValidatorIndices", + "modifier": "Default", + "type": { + "plain": 783 + }, + "fallback": "0x00", + "docs": [ + " All the validators actively participating in teyrchain consensus.", + " Indices are into the broader validator set." + ] + }, + { + "name": "ActiveValidatorKeys", + "modifier": "Default", + "type": { + "plain": 784 + }, + "fallback": "0x00", + "docs": [ + " The teyrchain attestation keys of the validators actively participating in teyrchain", + " consensus. This should be the same length as `ActiveValidatorIndices`." + ] + }, + { + "name": "AllowedRelayParents", + "modifier": "Default", + "type": { + "plain": 785 + }, + "fallback": "0x0000000000", + "docs": [ + " All allowed relay-parents." + ] + } + ] + }, + "calls": { + "type": 311 + }, + "events": null, + "constants": [], + "errors": null, + "index": 52 + }, + { + "name": "ParaInclusion", + "storage": { + "prefix": "ParaInclusion", + "items": [ + { + "name": "V1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 788 + } + }, + "fallback": "0x00", + "docs": [ + " Candidates pending availability by `ParaId`. They form a chain starting from the latest", + " included head of the para.", + " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage", + " would otherwise have the exact same prefix which could cause undefined behaviour when doing", + " the migration." + ] + } + ] + }, + "calls": { + "type": 312 + }, + "events": { + "type": 507 + }, + "constants": [], + "errors": { + "type": 790 + }, + "index": 53 + }, + { + "name": "ParaInherent", + "storage": { + "prefix": "ParaInherent", + "items": [ + { + "name": "Included", + "modifier": "Optional", + "type": { + "plain": 104 + }, + "fallback": "0x00", + "docs": [ + " Whether the paras inherent was included within this block.", + "", + " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant", + " due to the guarantees of FRAME's storage APIs.", + "", + " If this is `None` at the end of the block, we panic and render the block invalid." + ] + }, + { + "name": "OnChainVotes", + "modifier": "Optional", + "type": { + "plain": 791 + }, + "fallback": "0x00", + "docs": [ + " Scraped on chain data for extracting resolved disputes as well as backing votes." + ] + } + ] + }, + "calls": { + "type": 313 + }, + "events": null, + "constants": [], + "errors": { + "type": 796 + }, + "index": 54 + }, + { + "name": "ParaScheduler", + "storage": { + "prefix": "ParaScheduler", + "items": [ + { + "name": "ValidatorGroups", + "modifier": "Default", + "type": { + "plain": 797 + }, + "fallback": "0x00", + "docs": [ + " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the", + " broader set of Pezkuwi validators, but instead just the subset used for teyrchains during", + " this session.", + "", + " Bound: The number of cores is the sum of the numbers of teyrchains and parathread", + " multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe", + " upper bound at 10k." + ] + }, + { + "name": "AvailabilityCores", + "modifier": "Default", + "type": { + "plain": 798 + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. The i'th teyrchain belongs to the i'th core, with the", + " remaining cores all being on demand teyrchain multiplexers.", + "", + " Bounded by the maximum of either of these two values:", + " * The number of teyrchains and parathread multiplexers", + " * The number of validators divided by `configuration.max_validators_per_core`." + ] + }, + { + "name": "SessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number where the session start occurred. Used to track how many group rotations", + " have occurred.", + "", + " Note that in the context of teyrchains modules the session change is signaled during", + " the block and enacted at the end of the block (at the finalization stage, to be exact).", + " Thus for all intents and purposes the effect of the session change is observed at the", + " block following the session change, block number of which we save in this storage value." + ] + }, + { + "name": "ClaimQueue", + "modifier": "Default", + "type": { + "plain": 802 + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. The `VecDeque` represents the assignments to be", + " scheduled on that core. The value contained here will not be valid after the end of", + " a block. Runtime APIs should be used to determine scheduled cores for the upcoming block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 55 + }, + { + "name": "Paras", + "storage": { + "prefix": "Paras", + "items": [ + { + "name": "PvfActiveVoteMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 328, + "value": 806 + } + }, + "fallback": "0x00", + "docs": [ + " All currently active PVF pre-checking votes.", + "", + " Invariant:", + " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa." + ] + }, + { + "name": "PvfActiveVoteList", + "modifier": "Default", + "type": { + "plain": 810 + }, + "fallback": "0x00", + "docs": [ + " The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`." + ] + }, + { + "name": "Teyrchains", + "modifier": "Default", + "type": { + "plain": 811 + }, + "fallback": "0x00", + "docs": [ + " All lease holding teyrchains. Ordered ascending by `ParaId`. On demand teyrchains are not", + " included.", + "", + " Consider using the [`TeyrchainsCache`] type of modifying." + ] + }, + { + "name": "ParaLifecycles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 812 + } + }, + "fallback": "0x00", + "docs": [ + " The current lifecycle of a all known Para IDs." + ] + }, + { + "name": "Heads", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 336 + } + }, + "fallback": "0x00", + "docs": [ + " The head-data of every registered para." + ] + }, + { + "name": "MostRecentContext", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The context (relay-chain block number) of the most recent teyrchain head." + ] + }, + { + "name": "CurrentCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 328 + } + }, + "fallback": "0x00", + "docs": [ + " The validation code hash of every live para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 813, + "value": 328 + } + }, + "fallback": "0x00", + "docs": [ + " Actual past code hash, indicated by the para id as well as the block number at which it", + " became outdated.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeMeta", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 814 + } + }, + "fallback": "0x0000", + "docs": [ + " Past code of teyrchains. The teyrchains themselves may not be registered anymore,", + " but we also keep their code on-chain for the same amount of time as outdated code", + " to keep it available for approval checkers." + ] + }, + { + "name": "PastCodePruning", + "modifier": "Default", + "type": { + "plain": 817 + }, + "fallback": "0x00", + "docs": [ + " Which paras have past code that needs pruning and the relay-chain block at which the code", + " was replaced. Note that this is the actual height of the included block, not the expected", + " height at which the code upgrade would be applied, although they may be equal.", + " This is to ensure the entire acceptance period is covered, not an offset acceptance period", + " starting from the time at which the teyrchain perceives a code upgrade as having occurred.", + " Multiple entries for a single para are permitted. Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeUpgrades", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The block number at which the planned code change is expected for a teyrchain.", + "", + " The change will be applied after the first parablock for this ID included which executes", + " in the context of a relay chain block with a number >= `expected_at`." + ] + }, + { + "name": "FutureCodeUpgradesAt", + "modifier": "Default", + "type": { + "plain": 817 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming future code upgrades.", + "", + " Each item is a pair of the teyrchain and the expected block at which the upgrade should be", + " applied. The upgrade will be applied at the given relay chain block. In contrast to", + " [`FutureCodeUpgrades`] this code upgrade will be applied regardless the teyrchain making any", + " progress or not.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 328 + } + }, + "fallback": "0x00", + "docs": [ + " The actual future code hash of a para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "UpgradeGoAheadSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 818 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate to a teyrchain a go-ahead with in the upgrade", + " procedure.", + "", + " This value is absent when there are no upgrades scheduled or during the time the relay chain", + " performs the checks. It is set at the first relay-chain block when the corresponding", + " teyrchain can switch its upgrade function. As soon as the teyrchain's block is included, the", + " value gets reset to `None`.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 819 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate that there are restrictions for performing", + " an upgrade for this teyrchain.", + "", + " This may be a because the teyrchain waits for the upgrade cooldown to expire. Another", + " potential use case is when we want to perform some maintenance (such as storage migration)", + " we could restrict upgrades to make the process simpler.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeCooldowns", + "modifier": "Default", + "type": { + "plain": 817 + }, + "fallback": "0x00", + "docs": [ + " The list of teyrchains that are awaiting for their upgrade restriction to cooldown.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "UpcomingUpgrades", + "modifier": "Default", + "type": { + "plain": 817 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming code upgrades.", + "", + " Each item is a pair of which para performs a code upgrade and at which relay-chain block it", + " is expected at.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "ActionsQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 811 + } + }, + "fallback": "0x00", + "docs": [ + " The actions to perform during the start of a specific session index." + ] + }, + { + "name": "UpcomingParasGenesis", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " Upcoming paras instantiation arguments.", + "", + " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set", + " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`." + ] + }, + { + "name": "CodeByHashRefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 328, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of reference on the validation code in [`CodeByHash`] storage." + ] + }, + { + "name": "CodeByHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 328, + "value": 335 + } + }, + "fallback": "0x00", + "docs": [ + " Validation code stored by its hash.", + "", + " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and", + " [`PastCodeHash`]." + ] + } + ] + }, + "calls": { + "type": 348 + }, + "events": { + "type": 511 + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 12, + "value": "0xffffffffffffffff", + "docs": [] + } + ], + "errors": { + "type": 821 + }, + "index": 56 + }, + { + "name": "Initializer", + "storage": { + "prefix": "Initializer", + "items": [ + { + "name": "HasInitialized", + "modifier": "Optional", + "type": { + "plain": 104 + }, + "fallback": "0x00", + "docs": [ + " Whether the teyrchains modules have been initialized within this block.", + "", + " Semantically a `bool`, but this guarantees it should never hit the trie,", + " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values.", + "", + " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one", + " of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable", + " for the semantics of this variable." + ] + }, + { + "name": "BufferedSessionChanges", + "modifier": "Default", + "type": { + "plain": 822 + }, + "fallback": "0x00", + "docs": [ + " Buffered session changes along with the block number at which they should be applied.", + "", + " Typically this will be empty or one element long. Apart from that this item never hits", + " the storage.", + "", + " However this is a `Vec` regardless to handle various edge cases that may occur at runtime", + " upgrade boundaries or if governance intervenes." + ] + } + ] + }, + "calls": { + "type": 350 + }, + "events": null, + "constants": [], + "errors": null, + "index": 57 + }, + { + "name": "Dmp", + "storage": { + "prefix": "Dmp", + "items": [ + { + "name": "DownwardMessageQueues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 824 + } + }, + "fallback": "0x00", + "docs": [ + " The downward messages addressed for a certain para." + ] + }, + { + "name": "DownwardMessageQueueHeads", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " A mapping that stores the downward message queue MQC head for each para.", + "", + " Each link in this chain has a form:", + " `(prev_head, B, H(M))`, where", + " - `prev_head`: is the previous head hash or zero if none.", + " - `B`: is the relay-chain block number in which a message was appended.", + " - `H(M)`: is the hash of the message being appended." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 456 + } + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 58 + }, + { + "name": "Hrmp", + "storage": { + "prefix": "Hrmp", + "items": [ + { + "name": "HrmpOpenChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 352, + "value": 826 + } + }, + "fallback": "0x00", + "docs": [ + " The set of pending HRMP open channel requests.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpOpenChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 827 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpOpenChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests are initiated by a given sender para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has", + " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpAcceptedChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests were accepted by a given recipient para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with", + " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpCloseChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 352, + "value": 104 + } + }, + "fallback": "0x00", + "docs": [ + " A set of pending HRMP close channel requests that are going to be closed during the session", + " change. Used for checking if a given channel is registered for closure.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpCloseChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 827 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpWatermarks", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The HRMP watermark associated with each para.", + " Invariant:", + " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a", + " session." + ] + }, + { + "name": "HrmpChannels", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 352, + "value": 828 + } + }, + "fallback": "0x00", + "docs": [ + " HRMP channel data associated with each para.", + " Invariant:", + " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session." + ] + }, + { + "name": "HrmpIngressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 811 + } + }, + "fallback": "0x00", + "docs": [ + " Ingress/egress indexes allow to find all the senders and receivers given the opposite side.", + " I.e.", + "", + " (a) ingress index allows to find all the senders for a given recipient.", + " (b) egress index allows to find all the recipients for a given sender.", + "", + " Invariants:", + " - for each ingress index entry for `P` each item `I` in the index should present in", + " `HrmpChannels` as `(I, P)`.", + " - for each egress index entry for `P` each item `E` in the index should present in", + " `HrmpChannels` as `(P, E)`.", + " - there should be no other dangling channels in `HrmpChannels`.", + " - the vectors are sorted." + ] + }, + { + "name": "HrmpEgressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 811 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpChannelContents", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 352, + "value": 829 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for the messages for each channel.", + " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`." + ] + }, + { + "name": "HrmpChannelDigests", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 831 + } + }, + "fallback": "0x00", + "docs": [ + " Maintains a mapping that can be used to answer the question: What paras sent a message at", + " the given block number for a given receiver. Invariants:", + " - The inner `Vec` is never empty.", + " - The inner `Vec` cannot store two same `ParaId`.", + " - The outer vector is sorted ascending by block number and cannot store two items with the", + " same block number." + ] + } + ] + }, + "calls": { + "type": 351 + }, + "events": { + "type": 512 + }, + "constants": [], + "errors": { + "type": 833 + }, + "index": 60 + }, + { + "name": "ParaSessionInfo", + "storage": { + "prefix": "ParaSessionInfo", + "items": [ + { + "name": "AssignmentKeysUnsafe", + "modifier": "Default", + "type": { + "plain": 834 + }, + "fallback": "0x00", + "docs": [ + " Assignment keys for the current session.", + " Note that this API is private due to it being prone to 'off-by-one' at session boundaries.", + " When in doubt, use `Sessions` API instead." + ] + }, + { + "name": "EarliestStoredSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The earliest session for which previous session info is stored." + ] + }, + { + "name": "Sessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 835 + } + }, + "fallback": "0x00", + "docs": [ + " Session information in a rolling window.", + " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`.", + " Does not have any entries before the session index in the first session change notification." + ] + }, + { + "name": "AccountKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 107 + } + }, + "fallback": "0x00", + "docs": [ + " The validator account keys of the validators actively participating in teyrchain consensus." + ] + }, + { + "name": "SessionExecutorParams", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 304 + } + }, + "fallback": "0x00", + "docs": [ + " Executor parameter set for a given session index" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 61 + }, + { + "name": "ParasDisputes", + "storage": { + "prefix": "ParasDisputes", + "items": [ + { + "name": "LastPrunedSession", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The last pruned session, if any. All data stored by this module", + " references sessions." + ] + }, + { + "name": "Disputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 838, + "value": 839 + } + }, + "fallback": "0x00", + "docs": [ + " All ongoing or concluded disputes for the last several sessions." + ] + }, + { + "name": "BackersOnDisputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 838, + "value": 840 + } + }, + "fallback": "0x00", + "docs": [ + " Backing votes stored for each dispute.", + " This storage is used for slashing." + ] + }, + { + "name": "Included", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 838, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " All included blocks on the chain, as well as the block number in this chain that", + " should be reverted back to if the candidate is disputed and determined to be invalid." + ] + }, + { + "name": "Frozen", + "modifier": "Default", + "type": { + "plain": 143 + }, + "fallback": "0x00", + "docs": [ + " Whether the chain is frozen. Starts as `None`. When this is `Some`,", + " the chain will not accept any new teyrchain blocks for backing or inclusion,", + " and its value indicates the last valid block number in the chain.", + " It can only be set back to `None` by governance intervention." + ] + } + ] + }, + "calls": { + "type": 353 + }, + "events": { + "type": 513 + }, + "constants": [], + "errors": { + "type": 841 + }, + "index": 62 + }, + { + "name": "ParasSlashing", + "storage": { + "prefix": "ParasSlashing", + "items": [ + { + "name": "UnappliedSlashes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 838, + "value": 842 + } + }, + "fallback": "0x00", + "docs": [ + " Validators pending dispute slashes." + ] + }, + { + "name": "ValidatorSetCounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " `ValidatorSetCount` per session." + ] + } + ] + }, + "calls": { + "type": 354 + }, + "events": null, + "constants": [], + "errors": { + "type": 846 + }, + "index": 63 + }, + { + "name": "OnDemandAssignmentProvider", + "storage": { + "prefix": "OnDemandAssignmentProvider", + "items": [ + { + "name": "ParaIdAffinity", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 847 + } + }, + "fallback": "0x00", + "docs": [ + " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in", + " it's lookahead. Keeping track of this affinity prevents parallel execution of the same", + " `ParaId` on two or more `CoreIndex`es." + ] + }, + { + "name": "QueueStatus", + "modifier": "Default", + "type": { + "plain": 848 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000000000000000000000", + "docs": [ + " Overall status of queue (both free + affinity entries)" + ] + }, + { + "name": "FreeEntries", + "modifier": "Default", + "type": { + "plain": 853 + }, + "fallback": "0x00", + "docs": [ + " Priority queue for all orders which don't yet (or not any more) have any core affinity." + ] + }, + { + "name": "AffinityEntries", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 509, + "value": 853 + } + }, + "fallback": "0x00", + "docs": [ + " Queue entries that are currently bound to a particular core due to core affinity." + ] + }, + { + "name": "Revenue", + "modifier": "Default", + "type": { + "plain": 856 + }, + "fallback": "0x00", + "docs": [ + " Keeps track of accumulated revenue from on demand order sales." + ] + } + ] + }, + "calls": { + "type": 358 + }, + "events": { + "type": 516 + }, + "constants": [ + { + "name": "TrafficDefaultValue", + "type": 456, + "value": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The default value for the spot traffic multiplier." + ] + }, + { + "name": "MaxHistoricalRevenue", + "type": 4, + "value": "0xa0000000", + "docs": [ + " The maximum number of blocks some historical revenue", + " information stored for." + ] + }, + { + "name": "PalletId", + "type": 624, + "value": "0x70792f6f6e646d64", + "docs": [ + " Identifier for the internal revenue balance." + ] + } + ], + "errors": { + "type": 858 + }, + "index": 64 + }, + { + "name": "CoretimeAssignmentProvider", + "storage": { + "prefix": "CoretimeAssignmentProvider", + "items": [ + { + "name": "CoreSchedules", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox256" + ], + "key": 859, + "value": 860 + } + }, + "fallback": "0x00", + "docs": [ + " Scheduled assignment sets.", + "", + " Assignments as of the given block number. They will go into state once the block number is", + " reached (and replace whatever was in there before)." + ] + }, + { + "name": "CoreDescriptors", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox256" + ], + "key": 509, + "value": 861 + } + }, + "fallback": "0x0000", + "docs": [ + " Assignments which are currently active.", + "", + " They will be picked from `PendingAssignments` once we reach the scheduled block number in", + " `PendingAssignments`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": { + "type": 869 + }, + "index": 65 + }, + { + "name": "Registrar", + "storage": { + "prefix": "Registrar", + "items": [ + { + "name": "PendingSwap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 154 + } + }, + "fallback": "0x00", + "docs": [ + " Pending swap operations." + ] + }, + { + "name": "Paras", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 870 + } + }, + "fallback": "0x00", + "docs": [ + " Amount held on deposit for each para and the original depositor.", + "", + " The given account ID is responsible for registering the code and initial head data, but may", + " only do so if it isn't yet registered. (After that, it's up to governance to do so.)" + ] + }, + { + "name": "NextFreeParaId", + "modifier": "Default", + "type": { + "plain": 154 + }, + "fallback": "0x00000000", + "docs": [ + " The next free `ParaId`." + ] + } + ] + }, + "calls": { + "type": 359 + }, + "events": { + "type": 517 + }, + "constants": [ + { + "name": "ParaDeposit", + "type": 6, + "value": "0x0080ca39612400000000000000000000", + "docs": [ + " The deposit to be paid to run a on-demand teyrchain.", + " This should include the cost for storing the genesis head and validation code." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x5543de13000000000000000000000000", + "docs": [ + " The deposit to be paid per byte stored on chain." + ] + } + ], + "errors": { + "type": 871 + }, + "index": 70 + }, + { + "name": "Slots", + "storage": { + "prefix": "Slots", + "items": [ + { + "name": "Leases", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 872 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts held on deposit for each (possibly future) leased teyrchain.", + "", + " The actual amount locked on its behalf by any account at any time is the maximum of the", + " second values of the items in this list whose first value is the account.", + "", + " The first item in the list is the amount locked for the current Lease Period. Following", + " items are for the subsequent lease periods.", + "", + " The default value (an empty list) implies that the teyrchain no longer exists (or never", + " existed) as far as this pallet is concerned.", + "", + " If a teyrchain doesn't exist *yet* but is scheduled to exist in the future, then it", + " will be left-padded with one or more `None`s to denote the fact that nothing is held on", + " deposit for the non-existent chain currently, but is held at some point in the future.", + "", + " It is illegal for a `None` value to trail in the list." + ] + } + ] + }, + "calls": { + "type": 360 + }, + "events": { + "type": 518 + }, + "constants": [ + { + "name": "LeasePeriod", + "type": 4, + "value": "0x803a0900", + "docs": [ + " The number of blocks over which a single period lasts." + ] + }, + { + "name": "LeaseOffset", + "type": 4, + "value": "0x00000000", + "docs": [ + " The number of blocks to offset each lease period by." + ] + } + ], + "errors": { + "type": 873 + }, + "index": 71 + }, + { + "name": "Auctions", + "storage": { + "prefix": "Auctions", + "items": [ + { + "name": "AuctionCounter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of auctions started so far." + ] + }, + { + "name": "AuctionInfo", + "modifier": "Optional", + "type": { + "plain": 189 + }, + "fallback": "0x00", + "docs": [ + " Information relating to the current auction, if there is one.", + "", + " The first item in the tuple is the lease period index that the first of the four", + " contiguous lease periods on auction is for. The second is the block number when the", + " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction." + ] + }, + { + "name": "ReservedAmounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 874, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts currently reserved in the accounts of the bidders currently winning", + " (sub-)ranges." + ] + }, + { + "name": "Winning", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 875 + } + }, + "fallback": "0x00", + "docs": [ + " The winning bids for each of the 10 ranges at each sample in the final Ending Period of", + " the current auction. The map's key is the 0-based index into the Sample Size. The", + " first sample of the ending period is 0; the last is `Sample Size - 1`." + ] + } + ] + }, + "calls": { + "type": 361 + }, + "events": { + "type": 519 + }, + "constants": [ + { + "name": "EndingPeriod", + "type": 4, + "value": "0x40190100", + "docs": [ + " The number of blocks over which an auction may be retroactively ended." + ] + }, + { + "name": "SampleLength", + "type": 4, + "value": "0x14000000", + "docs": [ + " The length of each sample to take during the ending period.", + "", + " `EndingPeriod` / `SampleLength` = Total # of Samples" + ] + }, + { + "name": "SlotRangeCount", + "type": 4, + "value": "0x24000000", + "docs": [] + }, + { + "name": "LeasePeriodsPerSlot", + "type": 4, + "value": "0x08000000", + "docs": [] + } + ], + "errors": { + "type": 878 + }, + "index": 72 + }, + { + "name": "Crowdloan", + "storage": { + "prefix": "Crowdloan", + "items": [ + { + "name": "Funds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 154, + "value": 879 + } + }, + "fallback": "0x00", + "docs": [ + " Info on all of the funds." + ] + }, + { + "name": "NewRaise", + "modifier": "Default", + "type": { + "plain": 811 + }, + "fallback": "0x00", + "docs": [ + " The funds that have had additional contributions during the last block. This is used", + " in order to determine which funds should submit new or updated bids." + ] + }, + { + "name": "EndingsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of auctions that have entered into their ending period so far." + ] + }, + { + "name": "NextFundIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Tracker for the next available fund index" + ] + } + ] + }, + "calls": { + "type": 363 + }, + "events": { + "type": 520 + }, + "constants": [ + { + "name": "PalletId", + "type": 624, + "value": "0x70792f6366756e64", + "docs": [ + " `PalletId` for the crowdloan pallet. An appropriate value could be", + " `PalletId(*b\"py/cfund\")`" + ] + }, + { + "name": "MinContribution", + "type": 6, + "value": "0x180ca5d4e80000000000000000000000", + "docs": [ + " The minimum amount that may be contributed into a crowdloan. Should almost certainly be", + " at least `ExistentialDeposit`." + ] + }, + { + "name": "RemoveKeysLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of storage keys to remove per extrinsic call." + ] + } + ], + "errors": { + "type": 881 + }, + "index": 73 + }, + { + "name": "Coretime", + "storage": null, + "calls": { + "type": 368 + }, + "events": { + "type": 521 + }, + "constants": [ + { + "name": "BrokerId", + "type": 4, + "value": "0xed030000", + "docs": [ + " The ParaId of the coretime chain." + ] + }, + { + "name": "BrokerPotLocation", + "type": 62, + "value": "0x0101006d6f646c70792f62726f6b650000000000000000000000000000000000000000", + "docs": [ + " The coretime chain pot location." + ] + } + ], + "errors": { + "type": 882 + }, + "index": 74 + }, + { + "name": "XcmPallet", + "storage": { + "prefix": "XcmPallet", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 883 + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 888, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 888, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 888, + "value": 889 + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": 890 + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": 893 + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 895, + "value": 896 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 900 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Global suspension state of the XCM executor." + ] + }, + { + "name": "ShouldRecordXcm", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not incoming XCMs (both executed locally and received) should be recorded.", + " Only one XCM program will be recorded at a time.", + " This is meant to be used in runtime APIs, and it's advised it stays false", + " for all other use cases, so as to not degrade regular performance.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "RecordedXcm", + "modifier": "Optional", + "type": { + "plain": 420 + }, + "fallback": "0x00", + "docs": [ + " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally", + " will be stored here.", + " Runtime APIs can fetch the XCM that was executed by accessing this value.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + } + ] + }, + "calls": { + "type": 373 + }, + "events": { + "type": 522 + }, + "constants": [], + "errors": { + "type": 903 + }, + "index": 99 + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 453, + "value": 904 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 453 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 907, + "value": 908 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 452 + }, + "events": { + "type": 524 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x10000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 476, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 476, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 910 + }, + "index": 100 + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 49, + "value": 456 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 455 + }, + "events": { + "type": 526 + }, + "constants": [], + "errors": { + "type": 911 + }, + "index": 101 + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 912 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ] + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 912 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ] + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 143 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ] + } + ] + }, + "calls": { + "type": 457 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " The maximum number of authorities that can be added." + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xa800000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 914 + }, + "index": 200 + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 201 + }, + { + "name": "BeefyMmrLeaf", + "storage": { + "prefix": "BeefyMmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 915 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ] + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 915 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 202 + } + ], + "extrinsic": { + "type": 916, + "version": 4, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 918, + "additionalSigned": 104 + }, + { + "identifier": "CheckSpecVersion", + "type": 919, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 920, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 921, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 922, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 924, + "additionalSigned": 104 + }, + { + "identifier": "CheckWeight", + "type": 925, + "additionalSigned": 104 + }, + { + "identifier": "ChargeTransactionPayment", + "type": 926, + "additionalSigned": 104 + }, + { + "identifier": "CheckMetadataHash", + "type": 927, + "additionalSigned": 492 + } + ] + }, + "type": 929 + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/dicle-rpc.ts b/packages/types-support/src/metadata/v14/dicle-rpc.ts new file mode 100644 index 0000000..be06a88 --- /dev/null +++ b/packages/types-support/src/metadata/v14/dicle-rpc.ts @@ -0,0 +1,134 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev --alice --force-authoring + +export default { + "methods": [ + "account_nextIndex", + "archive_unstable_body", + "archive_unstable_call", + "archive_unstable_finalizedHeight", + "archive_unstable_genesisHash", + "archive_unstable_hashByHeight", + "archive_unstable_header", + "archive_unstable_storage", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v14/dicle-types.json b/packages/types-support/src/metadata/v14/dicle-types.json new file mode 100644 index 0000000..dd1c38d --- /dev/null +++ b/packages/types-support/src/metadata/v14/dicle-types.json @@ -0,0 +1,60777 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 527, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 197, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 32, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 34, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 41, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 43, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 44, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "FellowshipCollective", + "fields": [ + { + "name": null, + "type": 469, + "typeName": "pallet_ranked_collective::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "FellowshipReferenda", + "fields": [ + { + "name": null, + "type": 472, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 473, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 478, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 484, + "typeName": "claims::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 485, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 487, + "typeName": "pallet_society::Event", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 489, + "typeName": "pallet_recovery::Event", + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 490, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 491, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 493, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 494, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 495, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 496, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 497, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 498, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "pallet_nis::Event", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "NisCounterpartBalances", + "fields": [ + { + "name": null, + "type": 503, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 504, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 505, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 506, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 507, + "typeName": "teyrchains_inclusion::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 511, + "typeName": "teyrchains_paras::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 512, + "typeName": "teyrchains_hrmp::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 513, + "typeName": "teyrchains_disputes::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "OnDemandAssignmentProvider", + "fields": [ + { + "name": null, + "type": 516, + "typeName": "teyrchains_assigner_on_demand::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 517, + "typeName": "paras_registrar::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 518, + "typeName": "slots::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 519, + "typeName": "auctions::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 520, + "typeName": "crowdloan::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 521, + "typeName": "coretime::Event", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 522, + "typeName": "pallet_xcm::Event", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 524, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 526, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 101, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 33, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 34, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 36, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "The stakers' rewards are getting paid." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 38, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 40, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 37, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 39, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 37 + } + }, + "docs": [] + } + }, + { + "id": 40, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 42, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 14, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 42, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 44, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 45, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 45, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 46 + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 47, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 49, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 49, + "type": { + "path": [ + "pezkuwi_runtime_common", + "impls", + "VersionedLocatableAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": "location", + "type": 50, + "typeName": "xcm::v3::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 60, + "typeName": "xcm::v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 74, + "typeName": "xcm::v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 51, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 54, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 54, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 54, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 56, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 58, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 59, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 55 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 55, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 55, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 56, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Moniker", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 61, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 62, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 62, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 73, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 63, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 65, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 65, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 65, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 56, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 58, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 59, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 66 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 66, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 66, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 67, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 71, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "v2::MultiLocation", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "v3::MultiLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "xcm", + "v2", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 77, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 77, + "type": { + "path": [ + "xcm", + "v2", + "multilocation", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 78, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [ + "xcm", + "v2", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 79, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 79, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 79, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "key", + "type": 56, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "WeakBoundedVec>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 81, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 82, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [ + "xcm", + "v2", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Named", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "WeakBoundedVec>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [ + "xcm", + "v2", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Named", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "WeakBoundedVec>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 82, + "type": { + "path": [ + "xcm", + "v2", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 84, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 85, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 86, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 85, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 86, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 468, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 468, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 468, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 468, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 468, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 468, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 85, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 87 + }, + { + "name": "H", + "type": 466 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 467, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 87, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 101, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 102, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 109, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 142, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 144, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "FellowshipCollective", + "fields": [ + { + "name": null, + "type": 159, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "FellowshipReferenda", + "fields": [ + { + "name": null, + "type": 160, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 162, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 181, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 183, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 184, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 185, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 187, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 190, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 193, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 196, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 198, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 199, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 200, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 285, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "NisCounterpartBalances", + "fields": [ + { + "name": null, + "type": 286, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 287, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 288, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 301, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Configuration", + "fields": [ + { + "name": null, + "type": 302, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "ParasShared", + "fields": [ + { + "name": null, + "type": 311, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 312, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "fields": [ + { + "name": null, + "type": 313, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 348, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Initializer", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 351, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 353, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "OnDemandAssignmentProvider", + "fields": [ + { + "name": null, + "type": 358, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 360, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 361, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 452, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 455, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 200, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 91, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 89, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 90 + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 92, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 93, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 93, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 98, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 93, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 94 + }, + { + "name": "Id", + "type": 95 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 95, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 96, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 94, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 94, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 53, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 91, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 99, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 100, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 99, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 102, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 103, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 104 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 105, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 104 + } + }, + "docs": [] + } + }, + { + "id": 106, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 108, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 107, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 109, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 36, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do whatever", + "it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans` indicates the number of metadata slashing spans to clear when", + "this call results in a complete removal of all the data related to the stash account.", + "In this case, the `num_slashing_spans` must be larger or equal to the number of", + "slashing spans associated with the stash account in the [`SlashingSpans`] storage type,", + "otherwise the call will fail. The call weight is directly proportional to", + "`num_slashing_spans`.", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 38, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 110, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 36, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 111, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 110, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 113, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 113, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 114, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 114, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 115, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 116, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 115, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 119, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 120, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 110, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 103 + } + }, + "docs": [] + } + }, + { + "id": 111, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 111 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 111, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 37 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 107, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 121 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 121, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 122 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 123, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 53, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 122 + } + }, + "docs": [] + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 125, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 125, + "type": { + "path": [ + "staging_zagros_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 47, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 95, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_validator", + "type": 126, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_assignment", + "type": 127, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 128, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 129, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 126, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "validator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "assignment_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 130, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 132, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 132, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 132, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 133, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 139, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 134, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 47 + }, + { + "name": "V", + "type": 135 + }, + { + "name": "S", + "type": 136 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 47, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 138, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 138, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 136, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 137, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 138, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 135, + 136 + ] + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 47 + }, + { + "name": "V", + "type": 140 + }, + { + "name": "S", + "type": 136 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 47, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 141, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 141, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 140, + 136 + ] + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 53, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 57, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 143, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 143, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 53, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 145, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 85, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 147, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 85, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 85, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 148, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 85, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 145, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 146, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 147, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 85 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 85, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 150, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 86, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 157, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 85, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 158, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 150, + "type": { + "path": [ + "staging_zagros_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 151, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "TeyrchainsOrigin", + "fields": [ + { + "name": null, + "type": 153, + "typeName": "teyrchains_origin::Origin", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 155, + "typeName": "pallet_xcm::Origin", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Void", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::\n__private::Void", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "staging_zagros_runtime", + "governance", + "origins", + "pallet_custom_origins", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingAdmin", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Treasurer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "FellowshipAdmin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "GeneralAdmin", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AuctionAdmin", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LeaseAdmin", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ReferendumCanceller", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ReferendumKiller", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "SmallTipper", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BigTipper", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "SmallSpender", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MediumSpender", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "BigSpender", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "WhitelistedCaller", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "FellowshipInitiates", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Fellows", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "FellowshipExperts", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FellowshipMasters", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "Fellowship1Dan", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "Fellowship2Dan", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "Fellowship3Dan", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Fellowship4Dan", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "Fellowship5Dan", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "Fellowship6Dan", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "Fellowship7Dan", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "Fellowship8Dan", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "Fellowship9Dan", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "WishForChange", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "origin", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "Id" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Response", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [ + "sp_core", + "Void" + ], + "params": [], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AddOrigin`.", + "- `who`: Account of non-member which will become a member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `PromoteOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `DemoteOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_rank", + "type": 85, + "typeName": "Rank", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `RemoveOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "aye", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + }, + { + "name": "exchange_member", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Exchanges a member with a new account and the same existing rank.", + "", + "- `origin`: Must be the `ExchangeOrigin`.", + "- `who`: Account of existing member of rank greater than zero to be exchanged.", + "- `new_who`: New Account of existing member of rank greater than zero to exchanged to." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 160, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 150, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 86, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 157, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 85, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 158, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 161, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 162, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 163, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 163, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inflation", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "dynamic_params::inflation::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "MinInflation", + "docs": [] + }, + { + "name": null, + "type": 166, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "MaxInflation", + "docs": [] + }, + { + "name": null, + "type": 166, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 169, + "typeName": "IdealStake", + "docs": [] + }, + { + "name": null, + "type": 166, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "Falloff", + "docs": [] + }, + { + "name": null, + "type": 166, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "UseAuctionSlots", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "UseAuctionSlots", + "docs": [] + }, + { + "name": null, + "type": 172, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 165, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "MinInflation" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 166, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 167 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 167, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "MaxInflation" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 169, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "IdealStake" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 170, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "Falloff" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 171, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "UseAuctionSlots" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 174, + "typeName": "EcdsaSignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make a claim to collect your DOTs.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to claim is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)", + "", + "and `address` matches the `dest` account.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "mint_claim", + "fields": [ + { + "name": "who", + "type": 176, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vesting_schedule", + "type": 177, + "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>", + "docs": [] + }, + { + "name": "statement", + "type": 179, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Mint a new claim to collect DOTs.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "Parameters:", + "- `who`: The Ethereum address allowed to collect this claim.", + "- `value`: The number of DOTs that will be claimed.", + "- `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "We assume worst case that both vesting and statement is being inserted.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "claim_attest", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 174, + "typeName": "EcdsaSignature", + "docs": [] + }, + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Make a claim to collect your DOTs by signing a statement.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to `claim_attest` is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)(statement)", + "", + "and `address` matches the `dest` account; the `statement` must match that which is", + "expected according to your purchase arrangement.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim_attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "attest", + "fields": [ + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Attest to a statement, needed to finalize the claims process.", + "", + "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a", + "`SignedExtension`.", + "", + "Unsigned Validation:", + "A call to attest is deemed valid if the sender has a `Preclaim` registered", + "and provides a `statement` which is expected for the account.", + "", + "Parameters:", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to do pre-validation on `attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "move_claim", + "fields": [ + { + "name": "old", + "type": 176, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "new", + "type": 176, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "maybe_preclaim", + "type": 118, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 174, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EcdsaSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 175, + "typeName": "[u8; 65]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EthereumAddress" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 56, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 178 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 178, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 180 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 180, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "StatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Regular", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Saft", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 182, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 182, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 150, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 182, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 182, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 87 + } + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society." + ] + }, + { + "name": "unbid", + "fields": [], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder." + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout." + ] + }, + { + "name": "unvouch", + "fields": [], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`)." + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`)." + ] + }, + { + "name": "payout", + "fields": [], + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining." + ] + }, + { + "name": "waive_repay", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Repay the payment previously given to the member with the signed origin, remove any", + "pending payments, and elevate them from rank 0 to rank 1." + ] + }, + { + "name": "found_society", + "fields": [ + { + "name": "founder", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "rules", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group.", + "- `rules` - The rules of this society concerning membership.", + "", + "Complexity: O(1)" + ] + }, + { + "name": "dissolve", + "fields": [], + "index": 9, + "docs": [ + "Dissolve the society and remove all members.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member." + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "forgive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be Signed from the Founder.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member." + ] + }, + { + "name": "set_parameters", + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the maximum number of members in society and the maximum number of new candidates", + "in a single intake period.", + "", + "The dispatch origin for this call must be Signed by the Founder.", + "", + "Parameters:", + "- `max_members` - The maximum number of members for the society. This must be no less", + " than the current number of members.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group." + ] + }, + { + "name": "punish_skeptic", + "fields": [], + "index": 12, + "docs": [ + "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the", + "candidate." + ] + }, + { + "name": "claim_membership", + "fields": [], + "index": 13, + "docs": [ + "Transform an approved candidate into a member. Callable only by the", + "the candidate, and only after the period for voting has ended." + ] + }, + { + "name": "bestow_membership", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Transform an approved candidate into a member. Callable only by the Signed origin of the", + "Founder, only after the period for voting has ended and only when the candidate is not", + "clearly rejected." + ] + }, + { + "name": "kick_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove the candidate's application from the society. Callable only by the Signed origin", + "of the Founder, only after the period for voting has ended, and only when they do not", + "have a clear approval.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "resign_candidacy", + "fields": [], + "index": 16, + "docs": [ + "Remove the candidate's application from the society. Callable only by the candidate.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "drop_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a `candidate`'s failed application from the society. Callable by any", + "signed origin but only at the end of the subsequent round and only for", + "a candidate with more rejections than approvals.", + "", + "The bid deposit is lost and the voucher is banned." + ] + }, + { + "name": "cleanup_candidacy", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Remove up to `max` stale votes for the given `candidate`.", + "", + "May be called by any Signed origin, but only after the candidate's candidacy is ended." + ] + }, + { + "name": "cleanup_challenge", + "fields": [ + { + "name": "challenge_round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove up to `max` stale votes for the defender in the given `challenge_round`.", + "", + "May be called by any Signed origin, but only after the challenge round is ended." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 184, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set an a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 107, + "typeName": "Vec", + "docs": [] + }, + { + "name": "threshold", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "fields": [], + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 185, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 186, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 186, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 103, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 186, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 188, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 188, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 188, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 188, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 188, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 189 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 189, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 191, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 85, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 53, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 191, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 191, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 192 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 192, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [ + "staging_zagros_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Society", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Spokesperson", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 107, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 107, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 87, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 107, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 107, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 194, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 195 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 195, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 197, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the a bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 197, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 198, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 199, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 53, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 200, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 201, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 278, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 279, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 280, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 201, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 143, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_max_targets", + "type": 143, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 201, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 202 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 202, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 277, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [ + "staging_zagros_runtime", + "NposCompactSolution24" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 203, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 206, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 211, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 214, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 217, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 220, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 223, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 226, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 229, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 232, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 235, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 238, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 241, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 244, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 247, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 250, + "typeName": null, + "docs": [] + }, + { + "name": "votes17", + "type": 253, + "typeName": null, + "docs": [] + }, + { + "name": "votes18", + "type": 256, + "typeName": null, + "docs": [] + }, + { + "name": "votes19", + "type": 259, + "typeName": null, + "docs": [] + }, + { + "name": "votes20", + "type": 262, + "typeName": null, + "docs": [] + }, + { + "name": "votes21", + "type": 265, + "typeName": null, + "docs": [] + }, + { + "name": "votes22", + "type": 268, + "typeName": null, + "docs": [] + }, + { + "name": "votes23", + "type": 271, + "typeName": null, + "docs": [] + }, + { + "name": "votes24", + "type": 274, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 204 + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 85 + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 207 + } + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 208, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 205, + 209 + ] + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 210 + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 85, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 212 + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 213, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 215 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 216, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 218 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 219, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 221 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 222, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 224 + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 225, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 227 + } + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 228, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 229, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 230 + } + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 231, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 233 + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 234, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 236 + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 237, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 239 + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 240, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 240, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 242 + } + }, + "docs": [] + } + }, + { + "id": 242, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 243, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 245 + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 246, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 246, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 248 + } + }, + "docs": [] + } + }, + { + "id": 248, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 249, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 251 + } + }, + "docs": [] + } + }, + { + "id": 251, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 252, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 252, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 253, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 254 + } + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 255, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 256, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 257 + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 258, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 260 + } + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 261, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 263 + } + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 264, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 266 + } + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 267, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 267, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 269 + } + }, + "docs": [] + } + }, + { + "id": 269, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 270, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 270, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 272 + } + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 273, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 274, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 275 + } + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 276, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 53, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 277 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 277, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 281 + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 282 + ] + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 283, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 284 + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "fields": [], + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "maybe_proportion", + "type": 166, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 286, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 108, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 57, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 57, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 287, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 288, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is transferred from the member to the", + "pools account and immediately increases the pools bond.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 289, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, pool's depositor needs to have", + "at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 290, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 291, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 291, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 292, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 292, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 292, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 293, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 294, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 294, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 294, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller has a nominator or root role of the pool.", + "This directly forward the call to the staking pallet, on behalf of the pool bonded", + "account." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 289, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 295, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 296, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 298, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The dispatch origin of this call must be signed by the `root` role of the pool. Pending", + "commission is paid out and added to total claimed commission`. Total pending commission", + "is reset to zero. the current." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 299, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly (i.e. by any account). If the member has", + "slash to be applied, caller may be rewarded with the part of the slash." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 103, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 289, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 37 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 297 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 297, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 37, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 300 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 300, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed", + "by a call to `rebond` in the staking system.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`].", + "", + "## Details", + "", + "Can set the number of eras to check per block, and potentially other admin work.", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 302, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_upgrade_cooldown", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the validation upgrade cooldown." + ] + }, + { + "name": "set_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the validation upgrade delay." + ] + }, + { + "name": "set_code_retention_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the acceptance period for an included candidate." + ] + }, + { + "name": "set_max_code_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the max validation code size for incoming upgrades." + ] + }, + { + "name": "set_max_pov_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the max POV block size for incoming upgrades." + ] + }, + { + "name": "set_max_head_data_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the max head data size for paras." + ] + }, + { + "name": "set_coretime_cores", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the number of coretime execution cores.", + "", + "NOTE: that this configuration is managed by the coretime chain. Only manually change", + "this, if you really know what you are doing!" + ] + }, + { + "name": "set_max_availability_timeouts", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set the max number of times a claim may timeout on a core before it is abandoned" + ] + }, + { + "name": "set_group_rotation_frequency", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the teyrchain validator-group rotation frequency" + ] + }, + { + "name": "set_paras_availability_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the availability period for paras." + ] + }, + { + "name": "set_scheduling_lookahead", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Set the scheduling lookahead, in expected number of blocks at peak throughput." + ] + }, + { + "name": "set_max_validators_per_core", + "fields": [ + { + "name": "new", + "type": 143, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Set the maximum number of validators to assign to any core." + ] + }, + { + "name": "set_max_validators", + "fields": [ + { + "name": "new", + "type": 143, + "typeName": "Option", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Set the maximum number of validators to use in teyrchain consensus." + ] + }, + { + "name": "set_dispute_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the dispute period, in number of sessions to keep for disputes." + ] + }, + { + "name": "set_dispute_post_conclusion_acceptance_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Set the dispute post conclusion acceptance period." + ] + }, + { + "name": "set_no_show_slots", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the no show slots, in number of number of consensus slots.", + "Must be at least 1." + ] + }, + { + "name": "set_n_delay_tranches", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the total number of delay tranches." + ] + }, + { + "name": "set_zeroth_delay_tranche_width", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the zeroth delay tranche width." + ] + }, + { + "name": "set_needed_approvals", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Set the number of validators needed to approve a block." + ] + }, + { + "name": "set_relay_vrf_modulo_samples", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion." + ] + }, + { + "name": "set_max_upward_queue_count", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Sets the maximum items that can present in a upward dispatch queue at once." + ] + }, + { + "name": "set_max_upward_queue_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Sets the maximum total size of items that can present in a upward dispatch queue at", + "once." + ] + }, + { + "name": "set_max_downward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Set the critical downward message size." + ] + }, + { + "name": "set_max_upward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Sets the maximum size of an upward message that can be sent by a candidate." + ] + }, + { + "name": "set_max_upward_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the maximum number of messages that a candidate can contain." + ] + }, + { + "name": "set_hrmp_open_request_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Sets the number of sessions after which an HRMP open channel request expires." + ] + }, + { + "name": "set_hrmp_sender_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Sets the amount of funds that the sender should provide for opening an HRMP channel." + ] + }, + { + "name": "set_hrmp_recipient_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Sets the amount of funds that the recipient should provide for accepting opening an HRMP", + "channel." + ] + }, + { + "name": "set_hrmp_channel_max_capacity", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Sets the maximum number of messages allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_channel_max_total_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_max_teyrchain_inbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Sets the maximum number of inbound HRMP channels a teyrchain is allowed to accept." + ] + }, + { + "name": "set_hrmp_channel_max_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Sets the maximum size of a message that could ever be put into an HRMP channel." + ] + }, + { + "name": "set_hrmp_max_teyrchain_outbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Sets the maximum number of outbound HRMP channels a teyrchain is allowed to open." + ] + }, + { + "name": "set_hrmp_max_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 39, + "docs": [ + "Sets the maximum number of outbound HRMP messages can be sent by a candidate." + ] + }, + { + "name": "set_pvf_voting_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 42, + "docs": [ + "Set the number of session changes after which a PVF pre-checking voting is rejected." + ] + }, + { + "name": "set_minimum_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 43, + "docs": [ + "Sets the minimum delay between announcing the upgrade block for a teyrchain until the", + "upgrade taking place.", + "", + "See the field documentation for information and constraints for the new value." + ] + }, + { + "name": "set_bypass_consistency_check", + "fields": [ + { + "name": "new", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 44, + "docs": [ + "Setting this to true will disable consistency checks for the configuration setters.", + "Use with caution." + ] + }, + { + "name": "set_async_backing_params", + "fields": [ + { + "name": "new", + "type": 303, + "typeName": "AsyncBackingParams", + "docs": [] + } + ], + "index": 45, + "docs": [ + "Set the asynchronous backing parameters." + ] + }, + { + "name": "set_executor_params", + "fields": [ + { + "name": "new", + "type": 304, + "typeName": "ExecutorParams", + "docs": [] + } + ], + "index": 46, + "docs": [ + "Set PVF executor parameters." + ] + }, + { + "name": "set_on_demand_base_fee", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 47, + "docs": [ + "Set the on demand (parathreads) base fee." + ] + }, + { + "name": "set_on_demand_fee_variability", + "fields": [ + { + "name": "new", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 48, + "docs": [ + "Set the on demand (parathreads) fee variability." + ] + }, + { + "name": "set_on_demand_queue_max_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 49, + "docs": [ + "Set the on demand (parathreads) queue max size." + ] + }, + { + "name": "set_on_demand_target_queue_utilization", + "fields": [ + { + "name": "new", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 50, + "docs": [ + "Set the on demand (parathreads) fee variability." + ] + }, + { + "name": "set_on_demand_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 51, + "docs": [ + "Set the on demand (parathreads) ttl in the claimqueue." + ] + }, + { + "name": "set_minimum_backing_votes", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 52, + "docs": [ + "Set the minimum backing votes threshold." + ] + }, + { + "name": "set_node_feature", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "value", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 53, + "docs": [ + "Set/Unset a node feature." + ] + }, + { + "name": "set_approval_voting_params", + "fields": [ + { + "name": "new", + "type": 309, + "typeName": "ApprovalVotingParams", + "docs": [] + } + ], + "index": 54, + "docs": [ + "Set approval-voting-params." + ] + }, + { + "name": "set_scheduler_params", + "fields": [ + { + "name": "new", + "type": 310, + "typeName": "SchedulerParams>", + "docs": [] + } + ], + "index": 55, + "docs": [ + "Set scheduler-params." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 303, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "async_backing", + "AsyncBackingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "executor_params", + "ExecutorParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 305, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 306 + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "executor_params", + "ExecutorParam" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxMemoryPages", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StackLogicalMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "StackNativeMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PrecheckingMaxMemory", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PvfPrepTimeout", + "fields": [ + { + "name": null, + "type": 307, + "typeName": "PvfPrepKind", + "docs": [] + }, + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "PvfExecTimeout", + "fields": [ + { + "name": null, + "type": 308, + "typeName": "PvfExecKind", + "docs": [] + }, + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "WasmExtBulkMemory", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "PvfPrepKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Precheck", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Prepare", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "PvfExecKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Backing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approval", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "ApprovalVotingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_approval_coalesce_count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "SchedulerParams" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "group_rotation_frequency", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "paras_availability_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "max_validators_per_core", + "type": 143, + "typeName": "Option", + "docs": [] + }, + { + "name": "lookahead", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_availability_timeouts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_queue_max_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_target_queue_utilization", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_fee_variability", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "ttl", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 312, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 313, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [ + { + "name": "data", + "type": 314, + "typeName": "TeyrchainsInherentData>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Enter the paras inherent. This will process bitfields and backed candidates." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 314, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "InherentData" + ], + "params": [ + { + "name": "HDR", + "type": 94 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bitfields", + "type": 315, + "typeName": "UncheckedSignedAvailabilityBitfields", + "docs": [] + }, + { + "name": "backed_candidates", + "type": 322, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "disputes", + "type": 339, + "typeName": "MultiDisputeStatementSet", + "docs": [] + }, + { + "name": "parent_header", + "type": 94, + "typeName": "HDR", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 316 + } + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "signed", + "UncheckedSigned" + ], + "params": [ + { + "name": "Payload", + "type": 317 + }, + { + "name": "RealPayload", + "type": 317 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 317, + "typeName": "Payload", + "docs": [] + }, + { + "name": "validator_index", + "type": 320, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "signature", + "type": 321, + "typeName": "ValidatorSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 317, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "AvailabilityBitfield" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 318, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 318, + "type": { + "path": [], + "params": [], + "def": { + "bitSequence": { + "bitStoreType": 2, + "bitOrderType": 319 + } + }, + "docs": [] + } + }, + { + "id": 319, + "type": { + "path": [ + "bitvec", + "order", + "Lsb0" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 320, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "ValidatorIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 321, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "validator_app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 137, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 323 + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "BackedCandidate" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "candidate", + "type": 324, + "typeName": "CommittedCandidateReceipt", + "docs": [] + }, + { + "name": "validity_votes", + "type": 337, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_indices", + "type": 318, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "CommittedCandidateReceipt" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 325, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments", + "type": 329, + "typeName": "CandidateCommitments", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 325, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "CandidateDescriptor" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "Id", + "docs": [] + }, + { + "name": "relay_parent", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "collator", + "type": 326, + "typeName": "CollatorId", + "docs": [] + }, + { + "name": "persisted_validation_data_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "pov_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "erasure_root", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "signature", + "type": 327, + "typeName": "CollatorSignature", + "docs": [] + }, + { + "name": "para_head", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 328, + "typeName": "ValidationCodeHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "collator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 327, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "collator_app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 137, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCodeHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 329, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "CandidateCommitments" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 330, + "typeName": "UpwardMessages", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 331, + "typeName": "HorizontalMessages", + "docs": [] + }, + { + "name": "new_validation_code", + "type": 334, + "typeName": "Option", + "docs": [] + }, + { + "name": "head_data", + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 330, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 91, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 331, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 332 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 333, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 332, + "type": { + "path": [ + "pezkuwi_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 154 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 154, + "typeName": "Id", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "sp_std::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 333, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 332 + } + }, + "docs": [] + } + }, + { + "id": 334, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 335 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 335, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 335, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 336, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HeadData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 337, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 338 + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "ValidityAttestation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Implicit", + "fields": [ + { + "name": null, + "type": 321, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Explicit", + "fields": [ + { + "name": null, + "type": 321, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 340 + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "DisputeStatementSet" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "candidate_hash", + "type": 341, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "statements", + "type": 342, + "typeName": "Vec<(DisputeStatement, ValidatorIndex, ValidatorSignature)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "pezkuwi_core_primitives", + "CandidateHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 343 + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 344, + 320, + 321 + ] + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "DisputeStatement" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [ + { + "name": null, + "type": 345, + "typeName": "ValidDisputeStatementKind", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 347, + "typeName": "InvalidDisputeStatementKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "ValidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BackingSeconded", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BackingValid", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ApprovalChecking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ApprovalCheckingMultipleCandidates", + "fields": [ + { + "name": null, + "type": 346, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 341 + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "InvalidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_current_code", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the storage for the teyrchain validation code immediately." + ] + }, + { + "name": "force_set_current_head", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 336, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the storage for the current teyrchain head data immediately." + ] + }, + { + "name": "force_schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule an upgrade as if it was scheduled in the given relay parent block." + ] + }, + { + "name": "force_note_new_head", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 336, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Note a new block head for para within the context of the current block." + ] + }, + { + "name": "force_queue_action", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Put a teyrchain directly into the next session's action queue.", + "We can't queue it any sooner than this without going into the", + "initializer..." + ] + }, + { + "name": "add_trusted_validation_code", + "fields": [ + { + "name": "validation_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Adds the validation code to the storage.", + "", + "The code will not be added if it is already present. Additionally, if PVF pre-checking", + "is running for that code, it will be instantly accepted.", + "", + "Otherwise, the code will be added into the storage. Note that the code will be added", + "into storage with reference count 0. This is to account the fact that there are no users", + "for this code yet. The caller will have to make sure that this code eventually gets", + "used by some teyrchain or removed from the storage to avoid storage leaks. For the", + "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage", + "manipulation.", + "", + "This function is mainly meant to be used for upgrading teyrchains that do not follow", + "the go-ahead signal while the PVF pre-checking feature is enabled." + ] + }, + { + "name": "poke_unused_validation_code", + "fields": [ + { + "name": "validation_code_hash", + "type": 328, + "typeName": "ValidationCodeHash", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Remove the validation code from the storage iff the reference count is 0.", + "", + "This is better than removing the storage directly, because it will not remove the code", + "that was suddenly got used by some teyrchain while this dispatchable was pending", + "dispatching." + ] + }, + { + "name": "include_pvf_check_statement", + "fields": [ + { + "name": "stmt", + "type": 349, + "typeName": "PvfCheckStatement", + "docs": [] + }, + { + "name": "signature", + "type": 321, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and", + "enacts the results if that was the last vote before achieving the supermajority." + ] + }, + { + "name": "force_set_most_recent_context", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "context", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the storage for the current teyrchain head data immediately." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 349, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "PvfCheckStatement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "accept", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "subject", + "type": 328, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_index", + "type": 320, + "typeName": "ValidatorIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_approve", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a signal to the consensus engine to forcibly act as though all teyrchain", + "blocks in all relay chain blocks up to and including the given number in the current", + "chain are valid and should be finalized." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 351, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "hrmp_init_open_channel", + "fields": [ + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initiate opening a channel from a teyrchain to a given recipient with given channel", + "parameters.", + "", + "- `proposed_max_capacity` - specifies how many messages can be in the channel at once.", + "- `proposed_max_message_size` - specifies the maximum size of the messages.", + "", + "These numbers are a subject to the relay-chain configuration limits.", + "", + "The channel can be opened only after the recipient confirms it and only on a session", + "change." + ] + }, + { + "name": "hrmp_accept_open_channel", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Accept a pending open channel request from the given sender.", + "", + "The channel will be opened only on the next session boundary." + ] + }, + { + "name": "hrmp_close_channel", + "fields": [ + { + "name": "channel_id", + "type": 352, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Initiate unilateral closing of a channel. The origin must be either the sender or the", + "recipient in the channel being closed.", + "", + "The closure can only happen on a session change." + ] + }, + { + "name": "force_clean_hrmp", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "num_inbound", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_outbound", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have.", + "Normally this happens once per session, but this allows you to trigger the cleanup", + "immediately for a specific teyrchain.", + "", + "Number of inbound and outbound channels for `para` must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "force_process_hrmp_open", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force process HRMP open channel requests.", + "", + "If there are pending HRMP open channel requests, you can use this function to process", + "all of those requests immediately.", + "", + "Total number of opening channels must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "force_process_hrmp_close", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force process HRMP close channel requests.", + "", + "If there are pending HRMP close channel requests, you can use this function to process", + "all of those requests immediately.", + "", + "Total number of closing channels must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "hrmp_cancel_open_request", + "fields": [ + { + "name": "channel_id", + "type": 352, + "typeName": "HrmpChannelId", + "docs": [] + }, + { + "name": "open_requests", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "This cancels a pending open channel request. It can be canceled by either of the sender", + "or the recipient for that request. The origin must be either of those.", + "", + "The cancellation happens immediately. It is not possible to cancel the request if it is", + "already accepted.", + "", + "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as", + "witness data." + ] + }, + { + "name": "force_open_hrmp_channel", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,", + "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's", + "configured limits.", + "", + "Expected use is when one (and only one) of the `ParaId`s involved in the channel is", + "governed by the system, e.g. a system teyrchain.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "establish_system_channel", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Establish an HRMP channel between two system chains. If the channel does not already", + "exist, the transaction fees will be refunded to the caller. The system does not take", + "deposits for channels between system chains, and automatically sets the message number", + "and size limits to the maximum allowed by the network's configuration.", + "", + "Arguments:", + "", + "- `sender`: A system chain, `ParaId`.", + "- `recipient`: A system chain, `ParaId`.", + "", + "Any signed origin can call this function, but _both_ inputs MUST be system chains. If", + "the channel does not exist yet, there is no fee." + ] + }, + { + "name": "poke_channel_deposits", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels", + "with system chains do not require a deposit.", + "", + "Arguments:", + "", + "- `sender`: A chain, `ParaId`.", + "- `recipient`: A chain, `ParaId`.", + "", + "Any signed origin can call this function." + ] + }, + { + "name": "establish_channel_with_system", + "fields": [ + { + "name": "target_system_chain", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Establish a bidirectional HRMP channel between a teyrchain and a system chain.", + "", + "Arguments:", + "", + "- `target_system_chain`: A system chain, `ParaId`.", + "", + "The origin needs to be the teyrchain origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 352, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HrmpChannelId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "Id", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "Id", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_unfreeze", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 354, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_dispute_lost_unsigned", + "fields": [ + { + "name": "dispute_proof", + "type": 355, + "typeName": "Box", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 355, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "slashing", + "DisputeProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "time_slot", + "type": 356, + "typeName": "DisputesTimeSlot", + "docs": [] + }, + { + "name": "kind", + "type": 357, + "typeName": "SlashingOffenceKind", + "docs": [] + }, + { + "name": "validator_index", + "type": 320, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "validator_id", + "type": 126, + "typeName": "ValidatorId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "slashing", + "DisputesTimeSlot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "candidate_hash", + "type": 341, + "typeName": "CandidateHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "slashing", + "SlashingOffenceKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ForInvalid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AgainstValid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_order_allow_death", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a single on demand core order.", + "Will use the spot price for the current block and will reap the account if needed.", + "", + "Parameters:", + "- `origin`: The sender of the call, funds will be withdrawn from this account.", + "- `max_amount`: The maximum balance to withdraw from the origin to place an order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientBalance`: from the Currency implementation", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + }, + { + "name": "place_order_keep_alive", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a", + "check that placing the order will not reap the account.", + "", + "Parameters:", + "- `origin`: The sender of the call, funds will be withdrawn from this account.", + "- `max_amount`: The maximum balance to withdraw from the origin to place an order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientBalance`: from the Currency implementation", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 359, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register head data and validation code for a reserved Para Id.", + "", + "## Arguments", + "- `origin`: Must be called by a `Signed` origin.", + "- `id`: The para ID. Must be owned/managed by the `origin` signing account.", + "- `genesis_head`: The genesis head data of the teyrchain/thread.", + "- `validation_code`: The initial validation code of the teyrchain/thread.", + "", + "## Deposits/Fees", + "The account with the originating signature must reserve a deposit.", + "", + "The deposit is required to cover the costs associated with storing the genesis head", + "data and the validation code.", + "This accounts for the potential to store validation code of a size up to the", + "`max_code_size`, as defined in the configuration pallet", + "", + "Anything already reserved previously for this para ID is accounted for.", + "", + "## Events", + "The `Registered` event is emitted in case of success." + ] + }, + { + "name": "force_register", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Force the registration of a Para Id on the relay chain.", + "", + "This function must be called by a Root origin.", + "", + "The deposit taken can be specified for this registration. Any `ParaId`", + "can be registered, including sub-1000 IDs which are System Teyrchains." + ] + }, + { + "name": "deregister", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Deregister a Para Id, freeing all data and returning any deposit.", + "", + "The caller must be Root, the `para` owner, or the `para` itself. The para must be an", + "on-demand teyrchain." + ] + }, + { + "name": "swap", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap a lease holding teyrchain with another teyrchain, either on-demand or lease", + "holding.", + "", + "The origin must be Root, the `para` owner, or the `para` itself.", + "", + "The swap will happen only if there is already an opposite swap pending. If there is not,", + "the swap will be stored in the pending swaps map, ready for a later confirmatory swap.", + "", + "The `ParaId`s remain mapped to the same head data and code so external code can rely on", + "`ParaId` to be a long-term identifier of a notional \"teyrchain\". However, their", + "scheduling info (i.e. whether they're an on-demand teyrchain or lease holding", + "teyrchain), auction information and the auction deposit are switched." + ] + }, + { + "name": "remove_lock", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a manager lock from a para. This will allow the manager of a", + "previously locked para to deregister or swap a para without using governance.", + "", + "Can only be called by the Root origin or the teyrchain." + ] + }, + { + "name": "reserve", + "fields": [], + "index": 5, + "docs": [ + "Reserve a Para Id on the relay chain.", + "", + "This function will reserve a new Para Id to be owned/managed by the origin account.", + "The origin account is able to register head data and validation code using `register` to", + "create an on-demand teyrchain. Using the Slots pallet, an on-demand teyrchain can then", + "be upgraded to a lease holding teyrchain.", + "", + "## Arguments", + "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new", + " para ID.", + "", + "## Deposits/Fees", + "The origin must reserve a deposit of `ParaDeposit` for the registration.", + "", + "## Events", + "The `Reserved` event is emitted in case of success, which provides the ID reserved for", + "use." + ] + }, + { + "name": "add_lock", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Add a manager lock from a para. This will prevent the manager of a", + "para to deregister or swap a para.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + }, + { + "name": "schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Schedule a teyrchain upgrade.", + "", + "This will kick off a check of `new_code` by all validators. After the majority of the", + "validators have reported on the validity of the code, the code will either be enacted", + "or the upgrade will be rejected. If the code will be enacted, the current code of the", + "teyrchain will be overwritten directly. This means that any PoV will be checked by this", + "new code. The teyrchain itself will not be informed explicitly that the validation code", + "has changed.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + }, + { + "name": "set_current_head", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 336, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the teyrchain's current head.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 360, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_lease", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Just a connect into the `lease_out` call, in case Root wants to force some lease to", + "happen independently of any other on-chain mechanism to use it.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`." + ] + }, + { + "name": "clear_all_leases", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear all leases for a Para Id, refunding any deposits back to the original owners.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`." + ] + }, + { + "name": "trigger_onboard", + "fields": [ + { + "name": "para", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Try to onboard a teyrchain that has a lease for the current lease period.", + "", + "This function can be useful if there was some state issue with a para that should", + "have onboarded, but was unable to. As long as they have a lease period, we can", + "let them onboard from here.", + "", + "Origin must be signed, but can be called by anyone." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 361, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "new_auction", + "fields": [ + { + "name": "duration", + "type": 53, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "lease_period_index", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new auction.", + "", + "This can only happen when there isn't already an auction in progress and may only be", + "called by the root origin. Accepts the `duration` of this auction and the", + "`lease_period_index` of the initial lease period of the four that are to be auctioned." + ] + }, + { + "name": "bid", + "fields": [ + { + "name": "para", + "type": 362, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "auction_index", + "type": 53, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "first_slot", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "amount", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Make a new bid from an account (including a teyrchain account) for deploying a new", + "teyrchain.", + "", + "Multiple simultaneous bids from the same bidder are allowed only as long as all active", + "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.", + "", + "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and", + "funded by) the same account.", + "- `auction_index` is the index of the auction to bid on. Should just be the present", + "value of `AuctionCounter`.", + "- `first_slot` is the first lease period index of the range to bid on. This is the", + "absolute lease period index value, not an auction-specific offset.", + "- `last_slot` is the last lease period index of the range to bid on. This is the", + "absolute lease period index value, not an auction-specific offset.", + "- `amount` is the amount to bid to be held as deposit for the teyrchain should the", + "bid win. This amount is held throughout the range." + ] + }, + { + "name": "cancel_auction", + "fields": [], + "index": 2, + "docs": [ + "Cancel an in-progress auction.", + "", + "Can only be called by Root origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 362, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 154 + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 53, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 364, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign for a teyrchain slot with the given lease period", + "range.", + "", + "This applies a lock to your teyrchain configuration, ensuring that it cannot be changed", + "by the teyrchain manager." + ] + }, + { + "name": "contribute", + "fields": [ + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "signature", + "type": 366, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contribute to a crowd sale. This will transfer some balance over to fund a teyrchain", + "slot. It will be withdrawable when the crowdloan has ended and the funds are unused." + ] + }, + { + "name": "withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdraw full balance of a specific contributor.", + "", + "Origin must be signed, but can come from anyone.", + "", + "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,", + "then the retirement flag must be set. For a fund to be ready for retirement, then:", + "- it must not already be in retirement;", + "- the amount of raised funds must be bigger than the _free_ balance of the account;", + "- and either:", + " - the block number must be at least `end`; or", + " - the current lease period must be greater than the fund's `last_period`.", + "", + "In this case, the fund's retirement flag is set and its `end` is reset to the current", + "block number.", + "", + "- `who`: The account whose contribution should be withdrawn.", + "- `index`: The teyrchain to whose crowdloan the contribution was made." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Automatically refund contributors of an ended crowdloan.", + "Due to weight restrictions, this function may need to be called multiple", + "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time.", + "", + "Origin must be signed, but can come from anyone." + ] + }, + { + "name": "dissolve", + "fields": [ + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a fund after the retirement period has ended and all funds have been returned." + ] + }, + { + "name": "edit", + "fields": [ + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 53, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 53, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 364, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Edit the configuration for an in-progress crowdloan.", + "", + "Can only be called by Root origin." + ] + }, + { + "name": "add_memo", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Add an optional memo to an existing crowdloan contribution.", + "", + "Origin must be Signed, and the user must have contributed to the crowdloan." + ] + }, + { + "name": "poke", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Poke the fund into `NewRaise`", + "", + "Origin must be Signed, and the fund has non-zero raise." + ] + }, + { + "name": "contribute_all", + "fields": [ + { + "name": "index", + "type": 362, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "signature", + "type": 366, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Contribute your entire balance to a crowd sale. This will transfer the entire balance of", + "a user over to fund a teyrchain slot. It will be withdrawable when the crowdloan has", + "ended and the funds are unused." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 364, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 365 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 365, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "sp_runtime", + "MultiSigner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "ecdsa::Public", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 367 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 367, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 175, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "request_core_count", + "fields": [ + { + "name": "count", + "type": 85, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Request the configuration to be updated with the specified number of cores. Warning:", + "Since this only schedules a configuration update, it takes two sessions to come into", + "effect.", + "", + "- `origin`: Root or the Coretime Chain", + "- `count`: total number of cores" + ] + }, + { + "name": "request_revenue_at", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request to claim the instantaneous coretime sales revenue starting from the block it was", + "last claimed until and up to the block specified. The claimed amount value is sent back", + "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is", + "teleported to the Coretime chain." + ] + }, + { + "name": "assign_core", + "fields": [ + { + "name": "core", + "type": 85, + "typeName": "BrokerCoreIndex", + "docs": [] + }, + { + "name": "begin", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "assignment", + "type": 369, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 143, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is", + "to be used.", + "", + "Parameters:", + "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain.", + "-`core`: The core that should be scheduled.", + "-`begin`: The starting blockheight of the instruction.", + "-`assignment`: How the blockspace should be utilised.", + "-`end_hint`: An optional hint as to when this particular set of instructions will end." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 369, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 370 + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 371, + 372 + ] + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_broker", + "coretime_interface", + "CoreAssignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Idle", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Pool", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Task", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 372, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "PartsOf57600" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 85, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 374, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "**This function is deprecated: Use `limited_teleport_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 439, + "typeName": "Box::RuntimeCall>>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Execute an XCM message from a local, signed, origin.", + "", + "An event is deposited indicating whether `msg` could be executed completely or only", + "partially.", + "", + "No more than `max_weight` will be used in its attempted execution. If this is less than", + "the maximum amount of weight that the message could take to be executed, then no", + "execution attempt will be made." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "Box", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Extoll that a particular destination can be communicated with through a particular", + "version of XCM.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The destination that is being described.", + "- `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 143, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a safe XCM version (the version that XCM should be encoded with if the most recent", + "version a destination can accept is unknown).", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 75, + "typeName": "Box", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Ask a location to notify us regarding their XCM version and any changes to it.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 75, + "typeName": "Box", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Require that a particular destination should no longer notify us regarding any XCM", + "version changes.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set or unset the global suspension state of the XCM executor.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `suspended`: `true` to suspend, `false` to resume." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve, or through teleports.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for", + "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the", + "operation will fail and the sent assets may be at risk.", + "", + "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable", + "to `dest`, no limitations imposed on `fees`.", + " - for local reserve: transfer assets to sovereign account of destination chain and", + " forward a notification XCM to `dest` to mint and deposit reserve-based assets to", + " `beneficiary`.", + " - for destination reserve: burn local assets and forward a notification to `dest` chain", + " to withdraw the reserve assets from this chain's sovereign account and deposit them", + " to `beneficiary`.", + " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves", + " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint", + " and deposit reserve-based assets to `beneficiary`.", + " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport", + " assets and deposit them to `beneficiary`.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `X2(Parent,", + " Teyrchain(..))` to send from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send", + " from relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Box", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claims assets trapped on this pallet because of leftover assets during XCM execution.", + "", + "- `origin`: Anyone can call this extrinsic.", + "- `assets`: The exact assets that were trapped. Use the version to specify what version", + "was the latest when they were trapped.", + "- `beneficiary`: The location/account where the claimed assets will be deposited." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 75, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets_transfer_type", + "type": 450, + "typeName": "Box", + "docs": [] + }, + { + "name": "remote_fees_id", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "fees_transfer_type", + "type": 450, + "typeName": "Box", + "docs": [] + }, + { + "name": "custom_xcm_on_dest", + "type": 374, + "typeName": "Box>", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Transfer assets from the local chain to the destination chain using explicit transfer", + "types for assets and fees.", + "", + "`assets` must have same reserve location or may be teleportable to `dest`. Caller must", + "provide the `assets_transfer_type` to be used for `assets`:", + " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `TransferType::DestinationReserve`: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`", + " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another", + " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically", + " the remote `reserve` is Asset Hub.", + " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to", + " mint/teleport assets and deposit them to `beneficiary`.", + "", + "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to", + "buy execution using transferred `assets` identified by `remote_fees_id`.", + "Make sure enough of the specified `remote_fees_id` asset is included in the given list", + "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "`remote_fees_id` may use different transfer type than rest of `assets` and can be", + "specified through `fees_transfer_type`.", + "", + "The caller needs to specify what should happen to the transferred assets once they reach", + "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which", + "contains the instructions to execute on `dest` as a final step.", + " This is usually as simple as:", + " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,", + " but could be something more exotic like sending the `assets` even further.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from", + " teyrchain across a bridge to another ecosystem destination.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.", + "- `remote_fees_id`: One of the included `assets` to be used to pay fees.", + "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.", + "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the", + " transfer, which also determines what happens to the assets on the destination chain.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 374, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "v2::Xcm", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 395, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "xcm", + "v2", + "Xcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 376, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 376, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 377 + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "xcm", + "v2", + "Instruction" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 385, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_type", + "type": 389, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "call", + "type": 390, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "receive", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "QueryHolding", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 380, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 394, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 378, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 379, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 380 + } + }, + "docs": [] + } + }, + { + "id": 380, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 381, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 382, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 382, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 383, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 384, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 42, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Blob", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 384, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "xcm", + "v2", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 387 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 387, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 388 + ] + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "xcm", + "v2", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "MultiLocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "MultiLocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "Weight", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 25, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "xcm", + "v2", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 391, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 392, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 392, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 381, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 393, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 393, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 394, + "type": { + "path": [ + "xcm", + "v2", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 395, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 396, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 397 + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 403, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 413, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 414, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 390, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 395, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 395, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 413, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 55, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 51, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 413, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 399, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 400 + } + }, + "docs": [] + } + }, + { + "id": 400, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 60, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 401, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 402, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 402, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 384, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 42, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 407, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 405 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 405, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 406 + ] + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 408 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 409, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 409, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 53, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 408 + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "TruncatedError", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 50 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 50, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "xcm", + "v3", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 417, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 60, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 418, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 60, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 418, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 421, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 422 + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 428, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 414, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 390, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 66, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 62, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 424, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 424, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 425 + } + }, + "docs": [] + } + }, + { + "id": 425, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 74, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 426, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 426, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 384, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 42, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 428, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 429, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 429, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 430 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 432, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 430, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 431, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 431, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 53, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 431, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 430 + } + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 61 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 61, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 74, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 437, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 74, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 437, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "v2::MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "v3::MultiAssets", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "v4::Assets", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "v2::Xcm", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 444, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "xcm", + "v2", + "Xcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 442 + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "xcm", + "v2", + "Instruction" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 385, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_type", + "type": 389, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "call", + "type": 443, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "receive", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "QueryHolding", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "assets", + "type": 391, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 380, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 394, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 378, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 76, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 445, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 446 + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 403, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 413, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 414, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 443, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 444, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 444, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 413, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 55, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 51, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 395, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 400, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 413, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 448, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 449 + } + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 428, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 414, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 443, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 53, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 53, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 66, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 62, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LocalReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DestinationReserve", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "RemoteReserve", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "VersionedLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 74, + "typeName": "v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 453, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 453, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 453, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "AggregateMessageOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ump", + "fields": [ + { + "name": null, + "type": 454, + "typeName": "UmpQueueId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "UmpQueueId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Para", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 456, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 456, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 456, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 458, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 458, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 97, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the", + "future.", + "", + "Note: `delay_in_blocks` has to be at least 1." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 458, + "type": { + "path": [ + "sp_consensus_beefy", + "DoubleVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 129 + }, + { + "name": "Signature", + "type": 459 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 460, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 460, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 175, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 129 + }, + { + "name": "Signature", + "type": 459 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 461, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 129, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 459, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 462, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 463, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 464 + } + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 465, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 469, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 85, + "typeName": "Rank", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 85, + "typeName": "Rank", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 470, + "typeName": "VoteRecord", + "docs": [] + }, + { + "name": "tally", + "type": 471, + "typeName": "TallyOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + }, + { + "name": "MemberExchanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The member `who` had their `AccountId` changed to `new_who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nay", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 471, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex", + "docs": [] + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 85, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 86, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 85, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 86, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 471, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 471, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 471, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 471, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 471, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 471, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 473, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 474, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 474, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 475 + }, + { + "name": "E", + "type": 477 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 475, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 477, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 476, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 475 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 475, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 479, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 481, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 481, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 479, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inflation", + "fields": [ + { + "name": null, + "type": 480, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "MinInflation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "MaxInflation", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 169, + "typeName": "IdealStake", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "Falloff", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "UseAuctionSlots", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "UseAuctionSlots", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 482 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 482, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inflation", + "fields": [ + { + "name": null, + "type": 483, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "UseAuctionSlots", + "fields": [ + { + "name": null, + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Claimed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_address", + "type": 176, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Someone claimed some DOTs." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 485, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 486, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 486, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 104 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 104, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "candidates", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "judged", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewParams", + "fields": [ + { + "name": "params", + "type": 488, + "typeName": "GroupParamsFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A new set of \\[params\\] has been set for the group." + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "Elevated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A \\[member\\] got elevated to \\[rank\\]." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_society", + "GroupParams" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 489, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 490, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 491, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 486, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 189, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 492, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 492, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 486, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 85, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 494, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 486, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 495, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 496, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 497, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 499, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submitted in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 499, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 277, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 500, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 500, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 501, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 501, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 8, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BidPlaced", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A bid was successfully placed." + ] + }, + { + "name": "BidRetracted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bid was successfully removed (before being accepted)." + ] + }, + { + "name": "BidDropped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bid was dropped from a queue because of another, more substantial, bid was present." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The block number at which the receipt may be thawed." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner of the receipt." + ] + }, + { + "name": "proportion", + "type": 167, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance which the receipt represents." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of funds which were debited from the owner." + ] + } + ], + "index": 3, + "docs": [ + "A bid was accepted. The balance may not be released until expiry." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner." + ] + }, + { + "name": "proportion", + "type": 167, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance by which the owner was debited." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount by which the owner was credited." + ] + }, + { + "name": "dropped", + "type": 8, + "typeName": "bool", + "docs": [ + "If `true` then the receipt is done." + ] + } + ], + "index": 4, + "docs": [ + "An receipt has been (at least partially) thawed." + ] + }, + { + "name": "Funded", + "fields": [ + { + "name": "deficit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An automatic funding of the deficit was made." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A receipt was transferred." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 503, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 33, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 504, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 505, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 290, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked)." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 118, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 296, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 298, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 299, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 506, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 486, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 507, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CandidateBacked", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 509, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 510, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A candidate was backed. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateIncluded", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 509, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 510, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A candidate was included. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateTimedOut", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 509, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A candidate timed out. `[candidate, head_data]`" + ] + }, + { + "name": "UpwardMessagesReceived", + "fields": [ + { + "name": "from", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some upward messages have been received and will be processed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 508, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "CandidateReceipt" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 325, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "CoreIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "GroupIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 511, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CurrentCodeUpdated", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Current code has been updated for a Para. `para_id`" + ] + }, + { + "name": "CurrentHeadUpdated", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Current head has been updated for a Para. `para_id`" + ] + }, + { + "name": "CodeUpgradeScheduled", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A code upgrade has been scheduled for a Para. `para_id`" + ] + }, + { + "name": "NewHeadNoted", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new head has been noted for a Para. `para_id`" + ] + }, + { + "name": "ActionQueued", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A para has been queued to execute pending actions. `para_id`" + ] + }, + { + "name": "PvfCheckStarted", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given para either initiated or subscribed to a PVF check for the given validation", + "code. `code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckAccepted", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given validation code was accepted by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckRejected", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given validation code was rejected by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 512, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenChannelRequested", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Open HRMP channel requested." + ] + }, + { + "name": "OpenChannelCanceled", + "fields": [ + { + "name": "by_teyrchain", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 352, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An HRMP channel request sent by the receiver was canceled by either party." + ] + }, + { + "name": "OpenChannelAccepted", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Open HRMP channel accepted." + ] + }, + { + "name": "ChannelClosed", + "fields": [ + { + "name": "by_teyrchain", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 352, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "HRMP channel closed." + ] + }, + { + "name": "HrmpChannelForceOpened", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An HRMP channel was opened via Root origin." + ] + }, + { + "name": "HrmpSystemChannelOpened", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An HRMP channel was opened with a system chain." + ] + }, + { + "name": "OpenChannelDepositsUpdated", + "fields": [ + { + "name": "sender", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An HRMP channel's deposits were updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 513, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DisputeInitiated", + "fields": [ + { + "name": null, + "type": 341, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 514, + "typeName": "DisputeLocation", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispute has been initiated. \\[candidate hash, dispute location\\]" + ] + }, + { + "name": "DisputeConcluded", + "fields": [ + { + "name": null, + "type": 341, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 515, + "typeName": "DisputeResult", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A dispute has concluded for or against a candidate.", + "`\\[para id, candidate hash, dispute result\\]`" + ] + }, + { + "name": "Revert", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A dispute has concluded with supermajority against a candidate.", + "Block authors should no longer build on top of this head and should", + "instead revert the block at the given height. This should be the", + "number of the child of the last known valid block in the chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 514, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Local", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Remote", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeResult" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OnDemandOrderPlaced", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "spot_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "ordered_by", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An order was placed at some spot price amount by orderer ordered_by" + ] + }, + { + "name": "SpotPriceSet", + "fields": [ + { + "name": "spot_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The value of the spot price has likely changed" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 517, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Registered", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "manager", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Deregistered", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 518, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewLeasePeriod", + "fields": [ + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new `[lease_period]` is beginning." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A para has won the right to a continuous set of lease periods as a teyrchain.", + "First balance is any extra amount reserved on top of the para's existing deposit.", + "Second balance is the total amount reserved." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 519, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionStarted", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "ending", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An auction started. Provides its index and the block number where it will begin to", + "close and the first lease period of the quadruplet that is auctioned." + ] + }, + { + "name": "AuctionClosed", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An auction ended. All funds become unreserved." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds were reserved for a winning bid. First balance is the extra amount reserved.", + "Second is the total." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Funds were unreserved since bidder is no longer active. `[bidder, amount]`" + ] + }, + { + "name": "ReserveConfiscated", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone attempted to lease the same slot twice for a teyrchain. The amount is held in", + "reserve but no teyrchain slot has been leased." + ] + }, + { + "name": "BidAccepted", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new bid has been accepted as the current winner." + ] + }, + { + "name": "WinningOffset", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The winning offset was chosen for an auction. This will map into the `Winning` storage", + "map." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 520, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign." + ] + }, + { + "name": "Contributed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contributed to a crowd sale." + ] + }, + { + "name": "Withdrew", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdrew full balance of a contributor." + ] + }, + { + "name": "PartiallyRefunded", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The loans in a fund have been partially dissolved, i.e. there are some left", + "over child keys that still need to be killed." + ] + }, + { + "name": "AllRefunded", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "All loans in a fund have been refunded." + ] + }, + { + "name": "Dissolved", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Fund is dissolved." + ] + }, + { + "name": "HandleBidResult", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "result", + "type": 486, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The result of trying to submit a new bid to the Slots pallet." + ] + }, + { + "name": "Edited", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The configuration to a crowdloan has been edited." + ] + }, + { + "name": "MemoUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A memo has been updated." + ] + }, + { + "name": "AddedToNewRaise", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A teyrchain has been moved to `NewRaise`" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 521, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RevenueInfoRequested", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The broker chain has asked for revenue information for a specific block." + ] + }, + { + "name": "CoreAssigned", + "fields": [ + { + "name": "core", + "type": 509, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A core has received a new assignment from the broker chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 522, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 523, + "typeName": "xcm::latest::Outcome", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A XCM message was sent." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 428, + "typeName": "Response", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "actual_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_budgeted_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_location", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + }, + { + "name": "cost", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 13, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "error", + "type": 406, + "typeName": "XcmError", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 75, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_querier", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "maybe_actual_querier", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 19, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 20, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "fees", + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 61, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 438, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A XCM version migration finished." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 523, + "type": { + "path": [ + "staging_xcm", + "v4", + "traits", + "Outcome" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "error", + "type": 406, + "typeName": "Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": "error", + "type": 406, + "typeName": "Error", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 453, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 525, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 453, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 453, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 453, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 525, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 456, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 456, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 456, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 527, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 189 + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 53, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 530, + "typeName": "sp_runtime::RuntimeString", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 533, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 534 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 534, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 534, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 534, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 476, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 476, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 476, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 536, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 530, + "typeName": "RuntimeString", + "docs": [] + }, + { + "name": "impl_name", + "type": 530, + "typeName": "RuntimeString", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 539, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "state_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 540 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 540, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 541 + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 384, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 543, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 544 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 545, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 544, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 95, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 544 + } + }, + "docs": [] + } + }, + { + "id": 546, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 547, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 548, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 549 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 549, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 549, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 550, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 552, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 553, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 550, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 96, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 551, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 137, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 552, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 96, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 96, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 551, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 99, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 100, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 556 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 557, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 556 + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 559, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 561, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 562 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 564, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 384, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 563, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 562 + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 566 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 567, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 384 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 384, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 566 + } + }, + "docs": [] + } + }, + { + "id": 568, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 569 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 573, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 570 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 570, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 571, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 572, + "typeName": "pallet_nis::HoldReason", + "docs": [] + } + ], + "index": 38, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "pallet_nis", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NftReceipt", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 569 + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 575 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 578, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 576 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 576, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 577, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 41, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 575 + } + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 580, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 57, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 121, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 582, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 584, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 584, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 107, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 586, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 57, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 57, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 589, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 590 + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 57, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 57, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 57, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 57, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 589, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 595, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 596, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 597 + } + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 599 + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 283, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 107, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 37, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 28, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 29, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 30, + "docs": [ + "Operation not allowed for virtual stakers." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 604, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 605 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 605, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 588 + ] + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 42, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 609 + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 125 + ] + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 611, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 612, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 615, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 143, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 46 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 45, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 617, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 128 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 618, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 128 + } + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 49 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 75 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 49, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 75, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 622, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 384, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 626, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 85 + ] + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 628, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 634, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 629, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 632, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 633, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 630 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 631, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 145 + ] + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 630 + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 147, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 632, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 633, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 636 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 637, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 85, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 636 + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 639, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 85 + }, + { + "name": "RuntimeOrigin", + "type": 150 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 86 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 468 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 189 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 640, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 85 + }, + { + "name": "RuntimeOrigin", + "type": 150 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 86 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 468 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 189 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 85, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 150, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 86, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 157, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 641, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 643, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 468, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 645, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 641 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 641, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 644 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 644, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 143, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 646 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 646, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 189 + ] + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 648 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 649, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 648 + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 651 + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 85, + 652 + ] + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 530, + "typeName": "&'static str", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 653, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 653, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 37, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 37, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 654, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 654, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 654, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 655, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 657, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 85, + "typeName": "Rank", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 85, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 85, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "fields": [], + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "fields": [], + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "fields": [], + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "fields": [], + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "fields": [], + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "fields": [], + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + }, + { + "name": "SameMember", + "fields": [], + "index": 9, + "docs": [ + "The new member to exchange is the same as the old member" + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 10, + "docs": [ + "The max member count for the rank has been reached." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 662, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 85 + }, + { + "name": "RuntimeOrigin", + "type": 150 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 86 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 471 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 189 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 663, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 642, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 85 + }, + { + "name": "RuntimeOrigin", + "type": 150 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 86 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 471 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 189 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 85, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 150, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 86, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 157, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 641, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 642, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 643, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 471, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 645, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 189 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 528, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 667, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEthereumSignature", + "fields": [], + "index": 0, + "docs": [ + "Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "fields": [], + "index": 1, + "docs": [ + "Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "fields": [], + "index": 2, + "docs": [ + "Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "fields": [], + "index": 3, + "docs": [ + "There's not enough in the pot to pay out some unvested amount. Generally implies a", + "logic error." + ] + }, + { + "name": "InvalidStatement", + "fields": [], + "index": 4, + "docs": [ + "A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "fields": [], + "index": 5, + "docs": [ + "The account already has a vested balance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_society", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "StrikeCount", + "docs": [] + }, + { + "name": "vouching", + "type": 670, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 671 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 671, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [ + "pallet_society", + "PayoutRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "PayoutsVec", + "type": 673 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "payouts", + "type": 673, + "typeName": "PayoutsVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 648 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 649, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 675 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 677, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 676, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 675 + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [ + "pallet_society", + "Candidacy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "kind", + "type": 676, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "tally", + "type": 679, + "typeName": "Tally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "pallet_society", + "Tally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "VoteCount", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "VoteCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "pallet_society", + "IntakeRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 679 + ] + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 1, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "fields": [], + "index": 2, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "fields": [], + "index": 3, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "fields": [], + "index": 4, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "fields": [], + "index": 5, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "fields": [], + "index": 6, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "fields": [], + "index": 7, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouchingOnBidder", + "fields": [], + "index": 8, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "fields": [], + "index": 9, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "fields": [], + "index": 10, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "fields": [], + "index": 11, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 12, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 13, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "fields": [], + "index": 14, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "fields": [], + "index": 15, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "fields": [], + "index": 16, + "docs": [ + "The caller is not the head." + ] + }, + { + "name": "NotApproved", + "fields": [], + "index": 17, + "docs": [ + "The membership cannot be claimed as the candidate was not clearly approved." + ] + }, + { + "name": "NotRejected", + "fields": [], + "index": 18, + "docs": [ + "The candidate cannot be kicked as the candidate was not clearly rejected." + ] + }, + { + "name": "Approved", + "fields": [], + "index": 19, + "docs": [ + "The candidacy cannot be dropped as the candidate was clearly approved." + ] + }, + { + "name": "Rejected", + "fields": [], + "index": 20, + "docs": [ + "The candidacy cannot be bestowed as the candidate was clearly rejected." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 21, + "docs": [ + "The candidacy cannot be concluded as the voting is still in progress." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 22, + "docs": [ + "The candidacy cannot be pruned until a full additional intake period has passed." + ] + }, + { + "name": "Voted", + "fields": [], + "index": 23, + "docs": [ + "The skeptic already voted." + ] + }, + { + "name": "Expired", + "fields": [], + "index": 24, + "docs": [ + "The skeptic need not vote on candidates from expired rounds." + ] + }, + { + "name": "NotBidder", + "fields": [], + "index": 25, + "docs": [ + "User is not a bidder." + ] + }, + { + "name": "NoDefender", + "fields": [], + "index": 26, + "docs": [ + "There is no defender currently." + ] + }, + { + "name": "NotGroup", + "fields": [], + "index": 27, + "docs": [ + "Group doesn't exist." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 28, + "docs": [ + "The member is already elevated to this rank." + ] + }, + { + "name": "AlreadyPunished", + "fields": [], + "index": 29, + "docs": [ + "The skeptic has already been punished for this offence." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 30, + "docs": [ + "Funds are insufficient to pay off society debts." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 31, + "docs": [ + "The candidate/defender has no stale votes to remove." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 686, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 687 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 687, + "typeName": "Friends", + "docs": [] + }, + { + "name": "threshold", + "type": 85, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 107, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 687 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 687, + "typeName": "Friends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "fields": [], + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "fields": [], + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "fields": [], + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "fields": [], + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "fields": [], + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "fields": [], + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "fields": [], + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "fields": [], + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "fields": [], + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "fields": [], + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "fields": [], + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "fields": [], + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "fields": [], + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "fields": [], + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 690, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 186 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 691, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 186 + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 694, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 695 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 697, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 696 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 696, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 86 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 150 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 492, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 86, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 188, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 150, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 695 + } + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 700, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 701, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 702 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 703, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 192 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 702 + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 705, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 706 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 707, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 706 + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 709, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 195, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 711, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 107, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 284, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 714, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 143, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 284 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 284, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 716 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 717, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 718, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 143, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 716, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 716 + ] + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 717 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 717, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + }, + { + "name": "NoCost", + "fields": [], + "index": 8, + "docs": [ + "No ticket with a cost was returned by [`Config::Consideration`] to store the preimage." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 721, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 722, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 726, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 728, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 729, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 277, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 499, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 281 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 280, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DataProvider", + "type": 731 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 732, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 107, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 584 + ] + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 731 + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 734 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 735, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 277, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 734 + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 202 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 201, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Submission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 738, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 648 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 649, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 740 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 741, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Bid" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 740 + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [ + "pallet_nis", + "pallet", + "SummaryRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion_owed", + "type": 167, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "thawed", + "type": 167, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "receipts_on_hold", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [ + "pallet_nis", + "pallet", + "ReceiptRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion", + "type": 167, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "owner", + "type": 714, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 167, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DurationTooSmall", + "fields": [], + "index": 0, + "docs": [ + "The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "fields": [], + "index": 1, + "docs": [ + "The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "fields": [], + "index": 2, + "docs": [ + "The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 3, + "docs": [ + "The queue for the bid's duration is full and the amount bid is too low to get in", + "through replacing an existing bid." + ] + }, + { + "name": "UnknownReceipt", + "fields": [], + "index": 4, + "docs": [ + "Receipt index is unknown." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 5, + "docs": [ + "Not the owner of the receipt." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 6, + "docs": [ + "Bond not yet at expiry date." + ] + }, + { + "name": "UnknownBid", + "fields": [], + "index": 7, + "docs": [ + "The given bid for retraction is not found." + ] + }, + { + "name": "PortionTooBig", + "fields": [], + "index": 8, + "docs": [ + "The portion supplied is beyond the value of the receipt." + ] + }, + { + "name": "Unfunded", + "fields": [], + "index": 9, + "docs": [ + "Not enough funds are held to pay out." + ] + }, + { + "name": "AlreadyFunded", + "fields": [], + "index": 10, + "docs": [ + "There are enough funds for what is required." + ] + }, + { + "name": "Throttled", + "fields": [], + "index": 11, + "docs": [ + "The thaw throttle has been reached for this period." + ] + }, + { + "name": "MakesDust", + "fields": [], + "index": 12, + "docs": [ + "The operation would result in a receipt worth an insignificant value." + ] + }, + { + "name": "AlreadyCommunal", + "fields": [], + "index": 13, + "docs": [ + "The receipt is already communal." + ] + }, + { + "name": "AlreadyPrivate", + "fields": [], + "index": 14, + "docs": [ + "The receipt is already private." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 746, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 562 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 564, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 566 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 567, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 749 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 750, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 104 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 104, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 749 + } + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 752, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 118, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 756, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 756, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 456, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 758, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 759, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 649, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 761, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 764, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 290, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 296, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 762, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 763, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 143, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 299, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 37 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 37, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 298 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 298, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 764, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 118, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 118, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 456, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 767, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 768, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 767 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 769, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 767 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 770, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 771 + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 767 + ] + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 773, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 774, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 33, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 35, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 774, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 776, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 777, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 284 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 283, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 779, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "HostConfiguration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "async_backing_params", + "type": 303, + "typeName": "AsyncBackingParams", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_downward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_outbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_channel_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_inbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "executor_params", + "type": 304, + "typeName": "ExecutorParams", + "docs": [] + }, + { + "name": "code_retention_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "max_validators", + "type": 143, + "typeName": "Option", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "dispute_post_conclusion_acceptance_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "pvf_voting_ttl", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "minimum_validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "minimum_backing_votes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "node_features", + "type": 318, + "typeName": "NodeFeatures", + "docs": [] + }, + { + "name": "approval_voting_params", + "type": 309, + "typeName": "ApprovalVotingParams", + "docs": [] + }, + { + "name": "scheduler_params", + "type": 310, + "typeName": "SchedulerParams", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 781 + } + }, + "docs": [] + } + }, + { + "id": 781, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 779 + ] + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNewValue", + "fields": [], + "index": 0, + "docs": [ + "The new value for a configuration parameter is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 783, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 320 + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 126 + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "AllowedRelayParentsTracker" + ], + "params": [ + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "buffer", + "type": 786, + "typeName": "VecDeque<(Hash, Hash)>", + "docs": [] + }, + { + "name": "latest_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 787 + } + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 789 + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "CandidatePendingAvailability" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 509, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "hash", + "type": 341, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "descriptor", + "type": 325, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments", + "type": 329, + "typeName": "CandidateCommitments", + "docs": [] + }, + { + "name": "availability_votes", + "type": 318, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "backers", + "type": 318, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backed_in_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backing_group", + "type": 510, + "typeName": "GroupIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 790, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 0, + "docs": [ + "Validator index out of bounds." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 1, + "docs": [ + "Candidate submitted but para not scheduled." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 2, + "docs": [ + "Head data exceeds the configured maximum." + ] + }, + { + "name": "PrematureCodeUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Code upgrade prematurely." + ] + }, + { + "name": "NewCodeTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Output code is too large" + ] + }, + { + "name": "DisallowedRelayParent", + "fields": [], + "index": 5, + "docs": [ + "The candidate's relay-parent was not allowed. Either it was", + "not recent enough or it didn't advance based on the last teyrchain block." + ] + }, + { + "name": "InvalidAssignment", + "fields": [], + "index": 6, + "docs": [ + "Failed to compute group index for the core: either it's out of bounds", + "or the relay parent doesn't belong to the current session." + ] + }, + { + "name": "InvalidGroupIndex", + "fields": [], + "index": 7, + "docs": [ + "Invalid group index in core assignment." + ] + }, + { + "name": "InsufficientBacking", + "fields": [], + "index": 8, + "docs": [ + "Insufficient (non-majority) backing." + ] + }, + { + "name": "InvalidBacking", + "fields": [], + "index": 9, + "docs": [ + "Invalid (bad signature, unknown validator, etc.) backing." + ] + }, + { + "name": "NotCollatorSigned", + "fields": [], + "index": 10, + "docs": [ + "Collator did not sign PoV." + ] + }, + { + "name": "ValidationDataHashMismatch", + "fields": [], + "index": 11, + "docs": [ + "The validation data hash does not match expected." + ] + }, + { + "name": "IncorrectDownwardMessageHandling", + "fields": [], + "index": 12, + "docs": [ + "The downward message queue is not processed correctly." + ] + }, + { + "name": "InvalidUpwardMessages", + "fields": [], + "index": 13, + "docs": [ + "At least one upward message sent does not pass the acceptance criteria." + ] + }, + { + "name": "HrmpWatermarkMishandling", + "fields": [], + "index": 14, + "docs": [ + "The candidate didn't follow the rules of HRMP watermark advancement." + ] + }, + { + "name": "InvalidOutboundHrmp", + "fields": [], + "index": 15, + "docs": [ + "The HRMP messages sent by the candidate is not valid." + ] + }, + { + "name": "InvalidValidationCodeHash", + "fields": [], + "index": 16, + "docs": [ + "The validation code hash of the candidate is not valid." + ] + }, + { + "name": "ParaHeadMismatch", + "fields": [], + "index": 17, + "docs": [ + "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual", + "para head in the commitments." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 791, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "ScrapedOnChainVotes" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "backing_validators_per_candidate", + "type": 792, + "typeName": "Vec<(CandidateReceipt, Vec<(ValidatorIndex, ValidityAttestation)>)\n>", + "docs": [] + }, + { + "name": "disputes", + "type": 339, + "typeName": "MultiDisputeStatementSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 793 + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 508, + 794 + ] + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 795 + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 320, + 338 + ] + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyInclusionInherents", + "fields": [], + "index": 0, + "docs": [ + "Inclusion inherent called more than once per block." + ] + }, + { + "name": "InvalidParentHeader", + "fields": [], + "index": 1, + "docs": [ + "The hash of the submitted parent header doesn't correspond to the saved block hash of", + "the parent." + ] + }, + { + "name": "InherentOverweight", + "fields": [], + "index": 2, + "docs": [ + "The data given to the inherent will result in an overweight block." + ] + }, + { + "name": "CandidatesFilteredDuringExecution", + "fields": [], + "index": 3, + "docs": [ + "A candidate was filtered during inherent execution. This should have only been done", + "during creation." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 4, + "docs": [ + "Too many candidates supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 797, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 783 + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 799 + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "pallet", + "CoreOccupied" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 800, + "typeName": "ParasEntry", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "pallet", + "ParasEntry" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignment", + "type": 801, + "typeName": "Assignment", + "docs": [] + }, + { + "name": "availability_timeouts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ttl", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "common", + "Assignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pool", + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "core_index", + "type": 509, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Bulk", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 509 + }, + { + "name": "V", + "type": 803 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 804, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 800 + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 805 + } + }, + "docs": [] + } + }, + { + "id": 805, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 509, + 803 + ] + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckActiveVoteState" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes_accept", + "type": 318, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "votes_reject", + "type": 318, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "created_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "causes", + "type": 807, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 808 + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckCause" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Upgrade", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "included_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "upgrade_strategy", + "type": 809, + "typeName": "UpgradeStrategy", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "UpgradeStrategy" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SetGoAheadSignal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ApplyAtExpectedBlock", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 328 + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 154 + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaLifecycle" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Parathread", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Teyrchain", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UpgradingParathread", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DowngradingTeyrchain", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "OffboardingParathread", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "OffboardingTeyrchain", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaPastCodeMeta" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upgrade_times", + "type": 815, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "last_pruned", + "type": 143, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 816 + } + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ReplacementTimes" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "expected_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "activated_at", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 813 + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "UpgradeGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "GoAhead", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "UpgradeRestriction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 820, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaGenesisArgs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "genesis_head", + "type": 336, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 335, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "para_kind", + "type": 8, + "typeName": "ParaKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "Para is not registered in our system." + ] + }, + { + "name": "CannotOnboard", + "fields": [], + "index": 1, + "docs": [ + "Para cannot be onboarded because it is already tracked by our system." + ] + }, + { + "name": "CannotOffboard", + "fields": [], + "index": 2, + "docs": [ + "Para cannot be offboarded at this time." + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Para cannot be upgraded to a lease holding teyrchain." + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 4, + "docs": [ + "Para cannot be downgraded to an on-demand teyrchain." + ] + }, + { + "name": "PvfCheckStatementStale", + "fields": [], + "index": 5, + "docs": [ + "The statement for PVF pre-checking is stale." + ] + }, + { + "name": "PvfCheckStatementFuture", + "fields": [], + "index": 6, + "docs": [ + "The statement for PVF pre-checking is for a future session." + ] + }, + { + "name": "PvfCheckValidatorIndexOutOfBounds", + "fields": [], + "index": 7, + "docs": [ + "Claimed validator index is out of bounds." + ] + }, + { + "name": "PvfCheckInvalidSignature", + "fields": [], + "index": 8, + "docs": [ + "The signature for the PVF pre-checking is invalid." + ] + }, + { + "name": "PvfCheckDoubleVote", + "fields": [], + "index": 9, + "docs": [ + "The given validator already has cast a vote." + ] + }, + { + "name": "PvfCheckSubjectInvalid", + "fields": [], + "index": 10, + "docs": [ + "The given PVF does not exist at the moment of process a vote." + ] + }, + { + "name": "CannotUpgradeCode", + "fields": [], + "index": 11, + "docs": [ + "Teyrchain cannot currently schedule a code upgrade." + ] + }, + { + "name": "InvalidCode", + "fields": [], + "index": 12, + "docs": [ + "Invalid validation code size." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 822, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 823 + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "BufferedSessionChange" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 784, + "typeName": "Vec", + "docs": [] + }, + { + "name": "queued", + "type": 784, + "typeName": "Vec", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 825 + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "msg", + "type": 14, + "typeName": "DownwardMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpOpenChannelRequest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "confirmed", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "_age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 352 + } + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpChannel" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "mqc_head", + "type": 158, + "typeName": "Option", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 830 + } + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "sp_std::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 832 + } + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 811 + ] + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenHrmpChannelToSelf", + "fields": [], + "index": 0, + "docs": [ + "The sender tried to open a channel to themselves." + ] + }, + { + "name": "OpenHrmpChannelInvalidRecipient", + "fields": [], + "index": 1, + "docs": [ + "The recipient is not a valid para." + ] + }, + { + "name": "OpenHrmpChannelZeroCapacity", + "fields": [], + "index": 2, + "docs": [ + "The requested capacity is zero." + ] + }, + { + "name": "OpenHrmpChannelCapacityExceedsLimit", + "fields": [], + "index": 3, + "docs": [ + "The requested capacity exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelZeroMessageSize", + "fields": [], + "index": 4, + "docs": [ + "The requested maximum message size is 0." + ] + }, + { + "name": "OpenHrmpChannelMessageSizeExceedsLimit", + "fields": [], + "index": 5, + "docs": [ + "The open request requested the message size that exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelAlreadyExists", + "fields": [], + "index": 6, + "docs": [ + "The channel already exists" + ] + }, + { + "name": "OpenHrmpChannelAlreadyRequested", + "fields": [], + "index": 7, + "docs": [ + "There is already a request to open the same channel." + ] + }, + { + "name": "OpenHrmpChannelLimitExceeded", + "fields": [], + "index": 8, + "docs": [ + "The sender already has the maximum number of allowed outbound channels." + ] + }, + { + "name": "AcceptHrmpChannelDoesntExist", + "fields": [], + "index": 9, + "docs": [ + "The channel from the sender to the origin doesn't exist." + ] + }, + { + "name": "AcceptHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 10, + "docs": [ + "The channel is already confirmed." + ] + }, + { + "name": "AcceptHrmpChannelLimitExceeded", + "fields": [], + "index": 11, + "docs": [ + "The recipient already has the maximum number of allowed inbound channels." + ] + }, + { + "name": "CloseHrmpChannelUnauthorized", + "fields": [], + "index": 12, + "docs": [ + "The origin tries to close a channel where it is neither the sender nor the recipient." + ] + }, + { + "name": "CloseHrmpChannelDoesntExist", + "fields": [], + "index": 13, + "docs": [ + "The channel to be closed doesn't exist." + ] + }, + { + "name": "CloseHrmpChannelAlreadyUnderway", + "fields": [], + "index": 14, + "docs": [ + "The channel close request is already requested." + ] + }, + { + "name": "CancelHrmpOpenChannelUnauthorized", + "fields": [], + "index": 15, + "docs": [ + "Canceling is requested by neither the sender nor recipient of the open channel request." + ] + }, + { + "name": "OpenHrmpChannelDoesntExist", + "fields": [], + "index": 16, + "docs": [ + "The open request doesn't exist." + ] + }, + { + "name": "OpenHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 17, + "docs": [ + "Cannot cancel an HRMP open channel request because it is already confirmed." + ] + }, + { + "name": "WrongWitness", + "fields": [], + "index": 18, + "docs": [ + "The provided witness data is wrong." + ] + }, + { + "name": "ChannelCreationNotAuthorized", + "fields": [], + "index": 19, + "docs": [ + "The channel between these two chains cannot be authorized." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 834, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 127 + } + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "SessionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "active_validator_indices", + "type": 783, + "typeName": "Vec", + "docs": [] + }, + { + "name": "random_seed", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validators", + "type": 836, + "typeName": "IndexedVec", + "docs": [] + }, + { + "name": "discovery_keys", + "type": 618, + "typeName": "Vec", + "docs": [] + }, + { + "name": "assignment_keys", + "type": 834, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_groups", + "type": 837, + "typeName": "IndexedVec>", + "docs": [] + }, + { + "name": "n_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 320 + }, + { + "name": "V", + "type": 126 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 784, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 510 + }, + { + "name": "V", + "type": 783 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 797, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 341 + ] + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "DisputeState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators_for", + "type": 318, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "validators_against", + "type": 318, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "concluded_at", + "type": 143, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 320 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 783, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DuplicateDisputeStatementSets", + "fields": [], + "index": 0, + "docs": [ + "Duplicate dispute statement sets provided." + ] + }, + { + "name": "AncientDisputeStatement", + "fields": [], + "index": 1, + "docs": [ + "Ancient dispute statement provided." + ] + }, + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 2, + "docs": [ + "Validator index on statement is out of bounds for session." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 3, + "docs": [ + "Invalid signature on statement." + ] + }, + { + "name": "DuplicateStatement", + "fields": [], + "index": 4, + "docs": [ + "Validator vote submitted more than once to dispute." + ] + }, + { + "name": "SingleSidedDispute", + "fields": [], + "index": 5, + "docs": [ + "A dispute where there are only votes on one side." + ] + }, + { + "name": "MaliciousBacker", + "fields": [], + "index": 6, + "docs": [ + "A dispute vote from a malicious backer." + ] + }, + { + "name": "MissingBackingVotes", + "fields": [], + "index": 7, + "docs": [ + "No backing votes were provides along dispute statements." + ] + }, + { + "name": "UnconfirmedDispute", + "fields": [], + "index": 8, + "docs": [ + "Unconfirmed dispute statement sets provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 842, + "type": { + "path": [ + "pezkuwi_primitives", + "v7", + "slashing", + "PendingSlashes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "keys", + "type": 843, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "kind", + "type": 357, + "typeName": "SlashingOffenceKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 320 + }, + { + "name": "V", + "type": 126 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 844, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 845 + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 320, + 126 + ] + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "The key ownership proof is invalid." + ] + }, + { + "name": "InvalidSessionIndex", + "fields": [], + "index": 1, + "docs": [ + "The session index is too old or invalid." + ] + }, + { + "name": "InvalidCandidateHash", + "fields": [], + "index": 2, + "docs": [ + "The candidate hash is invalid." + ] + }, + { + "name": "InvalidValidatorIndex", + "fields": [], + "index": 3, + "docs": [ + "There is no pending slash for the given validator index and time", + "slot." + ] + }, + { + "name": "ValidatorIndexIdMismatch", + "fields": [], + "index": 4, + "docs": [ + "The validator index does not match the validator id." + ] + }, + { + "name": "DuplicateSlashingReport", + "fields": [], + "index": 5, + "docs": [ + "The given slashing report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 847, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "types", + "CoreAffinityCount" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core_index", + "type": 509, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "types", + "QueueStatusType" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "traffic", + "type": 456, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "next_index", + "type": 849, + "typeName": "QueueIndex", + "docs": [] + }, + { + "name": "smallest_index", + "type": 849, + "typeName": "QueueIndex", + "docs": [] + }, + { + "name": "freed_indices", + "type": 850, + "typeName": "BinaryHeap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "types", + "QueueIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "BinaryHeap" + ], + "params": [ + { + "name": "T", + "type": 851 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 852, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "types", + "ReverseQueueIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 851 + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [ + "BinaryHeap" + ], + "params": [ + { + "name": "T", + "type": 854 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 855, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "types", + "EnqueuedOrder" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 154, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "idx", + "type": 849, + "typeName": "QueueIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 854 + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 857, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_on_demand", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "QueueFull", + "fields": [], + "index": 0, + "docs": [ + "The order queue is full, `place_order` will not continue." + ] + }, + { + "name": "SpotPriceHigherThanMaxAmount", + "fields": [], + "index": 1, + "docs": [ + "The current spot price is higher than the max amount specified in the `place_order`", + "call, making it invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 859, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 509 + ] + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "Schedule" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignments", + "type": 369, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 143, + "typeName": "Option", + "docs": [] + }, + { + "name": "next_schedule", + "type": 143, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "CoreDescriptor" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "queue", + "type": 862, + "typeName": "Option>", + "docs": [] + }, + { + "name": "current_work", + "type": 864, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 863 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 863, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "QueueDescriptor" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 864, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 865 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 865, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "WorkState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignments", + "type": 866, + "typeName": "Vec<(CoreAssignment, AssignmentState)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 143, + "typeName": "Option", + "docs": [] + }, + { + "name": "pos", + "type": 85, + "typeName": "u16", + "docs": [] + }, + { + "name": "step", + "type": 372, + "typeName": "PartsOf57600", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 867 + } + }, + "docs": [] + } + }, + { + "id": 867, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 371, + 868 + ] + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "AssignmentState" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ratio", + "type": 372, + "typeName": "PartsOf57600", + "docs": [] + }, + { + "name": "remaining", + "type": 372, + "typeName": "PartsOf57600", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssignmentsEmpty", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OverScheduled", + "fields": [], + "index": 1, + "docs": [ + "Assignments together exceeded 57600." + ] + }, + { + "name": "UnderScheduled", + "fields": [], + "index": 2, + "docs": [ + "Assignments together less than 57600" + ] + }, + { + "name": "DisallowedInsert", + "fields": [], + "index": 3, + "docs": [ + "assign_core is only allowed to append new assignments at the end of already existing", + "ones." + ] + }, + { + "name": "DuplicateInsert", + "fields": [], + "index": 4, + "docs": [ + "Tried to insert a schedule for the same core and block number as an existing schedule" + ] + }, + { + "name": "AssignmentsNotSorted", + "fields": [], + "index": 5, + "docs": [ + "Tried to add an unsorted set of assignments" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 870, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "ParaInfo" + ], + "params": [ + { + "name": "Account", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "manager", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "locked", + "type": 172, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "The ID is not registered." + ] + }, + { + "name": "AlreadyRegistered", + "fields": [], + "index": 1, + "docs": [ + "The ID is already registered." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 2, + "docs": [ + "The caller is not the owner of this Id." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 3, + "docs": [ + "Invalid para code size." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Invalid para head data size." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 5, + "docs": [ + "Para is not a Teyrchain." + ] + }, + { + "name": "NotParathread", + "fields": [], + "index": 6, + "docs": [ + "Para is not a Parathread (on-demand teyrchain)." + ] + }, + { + "name": "CannotDeregister", + "fields": [], + "index": 7, + "docs": [ + "Cannot deregister para" + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 8, + "docs": [ + "Cannot schedule downgrade of lease holding teyrchain to on-demand teyrchain" + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 9, + "docs": [ + "Cannot schedule upgrade of on-demand teyrchain to lease holding teyrchain" + ] + }, + { + "name": "ParaLocked", + "fields": [], + "index": 10, + "docs": [ + "Para is locked from manipulation by the manager. Must use teyrchain or relay chain", + "governance." + ] + }, + { + "name": "NotReserved", + "fields": [], + "index": 11, + "docs": [ + "The ID given for registration has not been reserved." + ] + }, + { + "name": "InvalidCode", + "fields": [], + "index": 12, + "docs": [ + "The validation code is invalid." + ] + }, + { + "name": "CannotSwap", + "fields": [], + "index": 13, + "docs": [ + "Cannot perform a teyrchain slot / lifecycle swap. Check that the state of both paras", + "are correct for the swap to work." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 872, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 714 + } + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParaNotOnboarding", + "fields": [], + "index": 0, + "docs": [ + "The teyrchain ID is not onboarding." + ] + }, + { + "name": "LeaseError", + "fields": [], + "index": 1, + "docs": [ + "There was an error with the lease." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 874, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 154 + ] + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 36, + "type": 876 + } + }, + "docs": [] + } + }, + { + "id": 876, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 877 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 877, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 154, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionInProgress", + "fields": [], + "index": 0, + "docs": [ + "This auction is already in progress." + ] + }, + { + "name": "LeasePeriodInPast", + "fields": [], + "index": 1, + "docs": [ + "The lease period is in the past." + ] + }, + { + "name": "ParaNotRegistered", + "fields": [], + "index": 2, + "docs": [ + "Para is not registered" + ] + }, + { + "name": "NotCurrentAuction", + "fields": [], + "index": 3, + "docs": [ + "Not a current auction." + ] + }, + { + "name": "NotAuction", + "fields": [], + "index": 4, + "docs": [ + "Not an auction." + ] + }, + { + "name": "AuctionEnded", + "fields": [], + "index": 5, + "docs": [ + "Auction has already ended." + ] + }, + { + "name": "AlreadyLeasedOut", + "fields": [], + "index": 6, + "docs": [ + "The para is already leased out for part of this range." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 879, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "FundInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "LeasePeriod", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "verifier", + "type": 364, + "typeName": "Option", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raised", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "cap", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "last_contribution", + "type": 880, + "typeName": "LastContribution", + "docs": [] + }, + { + "name": "first_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "fund_index", + "type": 4, + "typeName": "FundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "LastContribution" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Never", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PreEnding", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ending", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FirstPeriodInPast", + "fields": [], + "index": 0, + "docs": [ + "The current lease period is more than the first lease period." + ] + }, + { + "name": "FirstPeriodTooFarInFuture", + "fields": [], + "index": 1, + "docs": [ + "The first lease period needs to at least be less than 3 `max_value`." + ] + }, + { + "name": "LastPeriodBeforeFirstPeriod", + "fields": [], + "index": 2, + "docs": [ + "Last lease period must be greater than first lease period." + ] + }, + { + "name": "LastPeriodTooFarInFuture", + "fields": [], + "index": 3, + "docs": [ + "The last lease period cannot be more than 3 periods after the first period." + ] + }, + { + "name": "CannotEndInPast", + "fields": [], + "index": 4, + "docs": [ + "The campaign ends before the current block number. The end must be in the future." + ] + }, + { + "name": "EndTooFarInFuture", + "fields": [], + "index": 5, + "docs": [ + "The end date for this crowdloan is not sensible." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 6, + "docs": [ + "There was an overflow." + ] + }, + { + "name": "ContributionTooSmall", + "fields": [], + "index": 7, + "docs": [ + "The contribution was below the minimum, `MinContribution`." + ] + }, + { + "name": "InvalidParaId", + "fields": [], + "index": 8, + "docs": [ + "Invalid fund index." + ] + }, + { + "name": "CapExceeded", + "fields": [], + "index": 9, + "docs": [ + "Contributions exceed maximum amount." + ] + }, + { + "name": "ContributionPeriodOver", + "fields": [], + "index": 10, + "docs": [ + "The contribution period has already ended." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 11, + "docs": [ + "The origin of this call is invalid." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 12, + "docs": [ + "This crowdloan does not correspond to a teyrchain." + ] + }, + { + "name": "LeaseActive", + "fields": [], + "index": 13, + "docs": [ + "This teyrchain lease is still active and retirement cannot yet begin." + ] + }, + { + "name": "BidOrLeaseActive", + "fields": [], + "index": 14, + "docs": [ + "This teyrchain's bid or lease is still active and withdraw cannot yet begin." + ] + }, + { + "name": "FundNotEnded", + "fields": [], + "index": 15, + "docs": [ + "The crowdloan has not yet ended." + ] + }, + { + "name": "NoContributions", + "fields": [], + "index": 16, + "docs": [ + "There are no contributions stored in this crowdloan." + ] + }, + { + "name": "NotReadyToDissolve", + "fields": [], + "index": 17, + "docs": [ + "The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement", + "period." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 18, + "docs": [ + "Invalid signature." + ] + }, + { + "name": "MemoTooLarge", + "fields": [], + "index": 19, + "docs": [ + "The provided memo is too large." + ] + }, + { + "name": "AlreadyInNewRaise", + "fields": [], + "index": 20, + "docs": [ + "The fund is already in `NewRaise`" + ] + }, + { + "name": "VrfDelayInProgress", + "fields": [], + "index": 21, + "docs": [ + "No contributions allowed during the VRF delay" + ] + }, + { + "name": "NoLeasePeriod", + "fields": [], + "index": 22, + "docs": [ + "A lease period has not started yet, due to an offset in the starting block." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 882, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotBroker", + "fields": [], + "index": 0, + "docs": [ + "The paraid making the call is not the coretime brokerage system teyrchain." + ] + }, + { + "name": "RequestedFutureRevenue", + "fields": [], + "index": 1, + "docs": [ + "Requested revenue information `when` parameter was in the future from the current", + "block height." + ] + }, + { + "name": "AssetTransferFailed", + "fields": [], + "index": 2, + "docs": [ + "Failed to transfer assets to the coretime chain" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 883, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 75, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "maybe_match_querier", + "type": 884, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_notify", + "type": 885, + "typeName": "Option<(u8, u8)>", + "docs": [] + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 75, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 887, + "typeName": "VersionedResponse", + "docs": [] + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 75 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 75, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 886 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 886, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 887, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 385, + "typeName": "v2::Response", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "v3::Response", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "v4::Response", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 888, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 75 + ] + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 10, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 891 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 892, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 75, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 891 + } + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrateVersionNotifiers", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "name": null, + "type": 894, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MigrateAndNotifyOldTargets", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 451 + ] + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 104 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "owner", + "type": 75, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "locker", + "type": 75, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "consumers", + "type": 897, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 897, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 898 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 899, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 104, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 898 + } + }, + "docs": [] + } + }, + { + "id": 900, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 901 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 902, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 901, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 75 + ] + }, + "docs": [] + } + }, + { + "id": 902, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 901 + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "fields": [], + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "fields": [], + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "fields": [], + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "fields": [], + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "fields": [], + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "fields": [], + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "fields": [], + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "fields": [], + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "fields": [], + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "fields": [], + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "fields": [], + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "fields": [], + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "fields": [], + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "fields": [], + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "fields": [], + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "fields": [], + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 904, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 453 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 905, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 906 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 906, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 453 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 453, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 453, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 453, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 909, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 911, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 912, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 129 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 913, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 129 + } + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 1, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 915, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 13, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 103 + }, + { + "name": "Call", + "type": 87 + }, + { + "name": "Signature", + "type": 367 + }, + { + "name": "Extra", + "type": 917 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 917, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 918, + 919, + 920, + 921, + 922, + 924, + 925, + 926, + 927 + ] + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 923, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 53, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "pallet_transaction_payment", + "ChargeTransactionPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 928, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 928, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "staging_zagros_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/dicle-ver.ts b/packages/types-support/src/metadata/v14/dicle-ver.ts new file mode 100644 index 0000000..9a77810 --- /dev/null +++ b/packages/types-support/src/metadata/v14/dicle-ver.ts @@ -0,0 +1,110 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev --alice --force-authoring + +export default { + "specName": "dicle", + "implName": "parity-dicle", + "authoringVersion": 2, + "specVersion": 1003000, + "implVersion": 0, + "apis": [ + [ + "0xc51ff1fa3f5d0cca", + 1 + ], + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 11 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 1 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ], + "transactionVersion": 26, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v14/pezkuwi-hex.ts b/packages/types-support/src/metadata/v14/pezkuwi-hex.ts new file mode 100644 index 0000000..2e1248f --- /dev/null +++ b/packages/types-support/src/metadata/v14/pezkuwi-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x6d6574610e9d0d000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540124000c01186e6f726d616c2401045400012c6f7065726174696f6e616c240104540001246d616e6461746f7279240104540000240c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d6528010c75363400012870726f6f665f73697a6528010c7536340000280000062c002c000005060030083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d000034000002080038102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f67733c013c5665633c4469676573744974656d3e00003c000002400040102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e00060024436f6e73656e7375730800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000400105365616c0800440144436f6e73656e737573456e67696e654964000034011c5665633c75383e000500144f74686572040034011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e74557064617465640008000044000003040000000800480000024c004c08306672616d655f73797374656d2c4576656e745265636f7264080445015004540130000c011470686173652908011450686173650001146576656e7450010445000118746f70696373b90101185665633c543e0000500840706f6c6b61646f745f72756e74696d653052756e74696d654576656e7400019c1853797374656d04005401706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c657204007c018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e00010020507265696d616765040090017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e000a001c496e6469636573040094017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e636573040098017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e740400a001a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0020001c5374616b696e670400a4017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e6365730400bc015870616c6c65745f6f6666656e6365733a3a4576656e740008001c53657373696f6e0400c4015470616c6c65745f73657373696f6e3a3a4576656e740009001c4772616e6470610400c8015470616c6c65745f6772616e6470613a3a4576656e74000b0020496d4f6e6c696e650400dc018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e000c0020547265617375727904000101017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130040436f6e76696374696f6e566f74696e670400890101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e001400245265666572656e646104008d01018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0015002457686974656c69737404008507018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e00170018436c61696d73040099070158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704009d07017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c6974790400a107015470616c6c65745f7574696c6974793a3a4576656e74001a00204964656e746974790400a507017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001450726f78790400a907017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c74697369670400ad07017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e746965730400b107017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200344368696c64426f756e746965730400b507019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e00260068456c656374696f6e50726f76696465724d756c746950686173650400b90701d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e00240024566f7465724c6973740400c90701f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0025003c4e6f6d696e6174696f6e506f6f6c730400cd07019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e0027002c46617374556e7374616b650400d107018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e0028003450617261496e636c7573696f6e0400d507019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e0035001450617261730400e507015c70617261636861696e735f70617261733a3a4576656e740038001048726d700400e907017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c0034506172617344697370757465730400ed07018c70617261636861696e735f64697370757465733a3a4576656e743c52756e74696d653e003e00245265676973747261720400f907017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f74730400fd070154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304000108016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04000508016463726f77646c6f616e3a3a4576656e743c52756e74696d653e004900485374617465547269654d6967726174696f6e0400090801ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e0062002458636d50616c6c657404001508016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e006300304d657373616765517565756504001d08019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0064002441737365745261746504002508018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e00650000540c306672616d655f73797374656d1870616c6c6574144576656e7404045400011c4045787472696e7369635375636365737304013464697370617463685f696e666f5801304469737061746368496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7264013444697370617463684572726f7200013464697370617463685f696e666f5801304469737061746368496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736830011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e04704576656e7420666f72207468652053797374656d2070616c6c65742e580c346672616d655f737570706f7274206469737061746368304469737061746368496e666f00000c0118776569676874240118576569676874000114636c6173735c01344469737061746368436c617373000120706179735f6665656001105061797300005c0c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000600c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000064082873705f72756e74696d653444697370617463684572726f72000138144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c65040068012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e04006c0128546f6b656e4572726f720007002841726974686d65746963040070013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007401485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d000068082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7244018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d00006c082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000070083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000074082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007800000500007c0c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000118245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b8001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648401404f7074696f6e3c5461736b4e616d653e000118726573756c748801384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b8001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648401404f7074696f6e3c5461736b4e616d653e00030429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b8001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648401404f7074696f6e3c5461736b4e616d653e0004043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e545065726d616e656e746c794f7665727765696768740801107461736b8001785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648401404f7074696f6e3c5461736b4e616d653e000504f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e04304576656e747320747970652e80000004081010008404184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000880418526573756c74080454018c044501640108084f6b04008c000000000c45727204006400000100008c0000040000900c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736830011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736830011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736830011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574940c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400010c34496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574980c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739c01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000a00c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a4103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e740404540001481c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374a8017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eac011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465640801246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e744964000c0498546865207374616b657273272072657761726473206172652067657474696e6720706169642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673b0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465b8011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a8083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000ac0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b0083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6eb4011c50657262696c6c00011c626c6f636b6564780110626f6f6c0000b4000006ac00b8083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000bc0c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64c001104b696e6400012074696d65736c6f743401384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ec0000003100000000800c40c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74000104284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c80c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574cc0134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cc000002d000d000000408d42c00d40c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c696300000400d8013c656432353531393a3a5075626c69630000d80c1c73705f636f72651c65643235353139185075626c6963000004000401205b75383b2033325d0000dc1040706f6c6b61646f745f72756e74696d654070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f6964e0016c73757065723a3a737232353531393a3a417574686f7269747949640000001c416c6c476f6f640001002c536f6d654f66666c696e6504011c6f66666c696e65e801a073705f7374643a3a7665633a3a5665633c4964656e74696669636174696f6e5475706c653c543e3e000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e01440706f6c6b61646f745f72756e74696d654070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c696300000400e4013c737232353531393a3a5075626c69630000e40c1c73705f636f72651c73723235353139185075626c6963000004000401205b75383b2033325d0000e8000002ec00ec0000040800f000f0082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cf4011c42616c616e636500010c6f776ef4011c42616c616e63650001186f7468657273f801ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000f40000061800f8000002fc00fc082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565f4011c42616c616e6365000001010c3c70616c6c65745f74726561737572791870616c6c6574144576656e740804540004490001382050726f706f73656404013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000004344e65772070726f706f73616c2e205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000104e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640002047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e2052656a656374656408013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800011c736c617368656418013c42616c616e63654f663c542c20493e000304b0412070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00040488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0005042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0006047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640007049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000804cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e6405010130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727969010138543a3a42656e656669636961727900012876616c69645f66726f6d100144426c6f636b4e756d626572466f723c543e0001246578706972655f6174100144426c6f636b4e756d626572466f723c543e000904b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e646578000a0474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69642c01643c543a3a5061796d6173746572206173205061793e3a3a4964000b044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69642c01643c543a3a5061796d6173746572206173205061793e3a3a4964000c049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000d084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657405010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c6541737365740001080856330801206c6f636174696f6e0901015878636d3a3a76333a3a4d756c74694c6f636174696f6e00012061737365745f69642d01014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6e3101014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69646501014078636d3a3a76343a3a41737365744964000400000901102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f720d0101244a756e6374696f6e7300000d01100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400110101204a756e6374696f6e0001000858320800110101204a756e6374696f6e0000110101204a756e6374696f6e0002000858330c00110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0003000858341000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0004000858351400110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0005000858361800110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0006000858371c00110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0007000858382000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e0000110101204a756e6374696f6e000800001101100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04001501010c7533320000002c4163636f756e744964333208011c6e6574776f726b190101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b190101444f7074696f6e3c4e6574776f726b49643e000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726b190101444f7074696f6e3c4e6574776f726b49643e00010c6b6579210101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400f40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696425010118426f647949640001107061727429010120426f6479506172740008003c476c6f62616c436f6e73656e73757304001d0101244e6574776f726b49640009000015010000061000190104184f7074696f6e040454011d010108104e6f6e6500000010536f6d6504001d0100000100001d01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d6265722c010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f696428010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a000021010000031400000008002501100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040044011c5b75383b20345d00010014496e64657804001501010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e000800205472656173757279000900002901100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e741501010c753332000100204672616374696f6e08010c6e6f6d1501010c75333200011464656e6f6d1501010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d1501010c75333200011464656e6f6d1501010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d1501010c75333200011464656e6f6d1501010c753332000400002d01100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400090101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d000100003101102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72350101244a756e6374696f6e7300003501102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400390101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400490101484172633c5b4a756e6374696f6e3b20325d3e00020008583304004d0101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400510101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400550101484172633c5b4a756e6374696f6e3b20355d3e0005000858360400590101484172633c5b4a756e6374696f6e3b20365d3e00060008583704005d0101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400610101484172633c5b4a756e6374696f6e3b20385d3e000800003901000003010000003d01003d01102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04001501010c7533320000002c4163636f756e744964333208011c6e6574776f726b410101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b410101444f7074696f6e3c4e6574776f726b49643e000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726b410101444f7074696f6e3c4e6574776f726b49643e00010c6b6579210101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400f40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696425010118426f647949640001107061727429010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400450101244e6574776f726b496400090000410104184f7074696f6e0404540145010108104e6f6e6500000010536f6d650400450100000100004501102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d6265722c010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f696428010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00004901000003020000003d01004d01000003030000003d01005101000003040000003d01005501000003050000003d01005901000003060000003d01005d01000003070000003d01006101000003080000003d01006501102c73746167696e675f78636d0876341461737365741c4173736574496400000400310101204c6f636174696f6e00006901080c78636d4456657273696f6e65644c6f636174696f6e00010c08563204006d01014476323a3a4d756c74694c6f636174696f6e00010008563304000901014476333a3a4d756c74694c6f636174696f6e00030008563404003101013076343a3a4c6f636174696f6e000400006d01100c78636d087632346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72710101244a756e6374696f6e7300007101100c78636d087632346d756c74696c6f636174696f6e244a756e6374696f6e7300012410486572650000000858310400750101204a756e6374696f6e0001000858320800750101204a756e6374696f6e0000750101204a756e6374696f6e0002000858330c00750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0003000858341000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0004000858351400750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0005000858361800750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0006000858371c00750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0007000858382000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e0000750101204a756e6374696f6e000800007501100c78636d087632206a756e6374696f6e204a756e6374696f6e0001242450617261636861696e04001501010c7533320000002c4163636f756e744964333208011c6e6574776f726b790101244e6574776f726b496400010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b790101244e6574776f726b4964000114696e64657828010c753634000200304163636f756e744b6579323008011c6e6574776f726b790101244e6574776f726b496400010c6b6579210101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400f40110753132380005002847656e6572616c4b657904007d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e000600244f6e6c794368696c6400070024506c7572616c697479080108696481010118426f647949640001107061727485010120426f6479506172740008000079010c0c78636d087632244e6574776f726b49640001100c416e79000000144e616d656404007d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010020506f6c6b61646f74000200184b7573616d61000300007d010c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003401185665633c543e000081010c0c78636d08763218426f6479496400012810556e6974000000144e616d656404007d0101805765616b426f756e6465645665633c75382c20436f6e73745533323c33323e3e00010014496e64657804001501010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e0008002054726561737572790009000085010c0c78636d08763220426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e741501010c753332000100204672616374696f6e08010c6e6f6d1501010c75333200011464656e6f6d1501010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d1501010c75333200011464656e6f6d1501010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d1501010c75333200011464656e6f6d1501010c7533320004000089010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001082444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9101013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c9501014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9101013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c9501014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c7981070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7981070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7981070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7981070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7981070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7981070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736830011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736830011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657491010000050400950110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e6465640804540199010448017907010c184c656761637904011068617368300124483a3a4f757470757400000018496e6c696e6504007d070134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368300124483a3a4f757470757400010c6c656e10010c7533320002000099010840706f6c6b61646f745f72756e74696d652c52756e74696d6543616c6c0001b01853797374656d04009d0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c65720400ad0101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010020507265696d6167650400b50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e000a0010426162650400bd0101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400e10101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400e50101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400f10101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5374616b696e670400fd0101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400390201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400590201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b002054726561737572790400890201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130040436f6e76696374696f6e566f74696e670400910201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e001400245265666572656e64610400a50201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0015002457686974656c6973740400cd0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e00170018436c61696d730400d10201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400f10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c6974790400f90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a00204964656e746974790400010301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001450726f78790400b10301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400bd0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400c90301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e002200344368696c64426f756e746965730400cd0301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e00260068456c656374696f6e50726f76696465724d756c746950686173650400d10301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240024566f7465724c6973740400c50401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e0025003c4e6f6d696e6174696f6e506f6f6c730400c90401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e0027002c46617374556e7374616b650400fd0401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e00280034436f6e66696775726174696f6e0400010501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400210501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400250501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400290501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400b50501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400bd0501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039001048726d700400c10501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c0034506172617344697370757465730400c90501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172617344697370757465732c2052756e74696d653e003e00345061726173536c617368696e670400cd0501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061726173536c617368696e672c2052756e74696d653e003f00245265676973747261720400dd0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400e10501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e730400e50501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400ed0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e004900485374617465547269654d6967726174696f6e0400f90501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e0062002458636d50616c6c65740400110601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d50616c6c65742c2052756e74696d653e006300304d65737361676551756575650400450701c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e006400244173736574526174650400510701b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e0065001442656566790400590701a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e00c800009d010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b34011c5665633c75383e0000045c536565205b6050616c6c65743a3a72656d61726b605d2e387365745f686561705f706167657304011470616765732c010c7536340001047c536565205b6050616c6c65743a3a7365745f686561705f7061676573605d2e207365745f636f6465040110636f646534011c5665633c75383e00020464536565205b6050616c6c65743a3a7365745f636f6465605d2e5c7365745f636f64655f776974686f75745f636865636b73040110636f646534011c5665633c75383e000304a0536565205b6050616c6c65743a3a7365745f636f64655f776974686f75745f636865636b73605d2e2c7365745f73746f726167650401146974656d73a10101345665633c4b657956616c75653e00040470536565205b6050616c6c65743a3a7365745f73746f72616765605d2e306b696c6c5f73746f726167650401106b657973a90101205665633c4b65793e00050474536565205b6050616c6c65743a3a6b696c6c5f73746f72616765605d2e2c6b696c6c5f70726566697808011870726566697834010c4b657900011c7375626b65797310010c75333200060470536565205b6050616c6c65743a3a6b696c6c5f707265666978605d2e4472656d61726b5f776974685f6576656e7404011872656d61726b34011c5665633c75383e00070488536565205b6050616c6c65743a3a72656d61726b5f776974685f6576656e74605d2e44617574686f72697a655f75706772616465040124636f64655f6861736830011c543a3a4861736800090488536565205b6050616c6c65743a3a617574686f72697a655f75706772616465605d2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736830011c543a3a48617368000a04c4536565205b6050616c6c65743a3a617574686f72697a655f757067726164655f776974686f75745f636865636b73605d2e606170706c795f617574686f72697a65645f75706772616465040110636f646534011c5665633c75383e000b04a4536565205b6050616c6c65743a3a6170706c795f617574686f72697a65645f75706772616465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea101000002a50100a50100000408343400a9010000023400ad010c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000118207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963b10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000464536565205b6050616c6c65743a3a7363686564756c65605d2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001045c536565205b6050616c6c65743a3a63616e63656c605d2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963b10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0002047c536565205b6050616c6c65743a3a7363686564756c655f6e616d6564605d2e3063616e63656c5f6e616d656404010869640401205461736b4e616d6500030474536565205b6050616c6c65743a3a63616e63656c5f6e616d6564605d2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963b10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004047c536565205b6050616c6c65743a3a7363686564756c655f6166746572605d2e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963b10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00050494536565205b6050616c6c65743a3a7363686564756c655f6e616d65645f6166746572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb10104184f7074696f6e04045401800108104e6f6e6500000010536f6d650400800000010000b5010c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657334011c5665633c75383e00000478536565205b6050616c6c65743a3a6e6f74655f707265696d616765605d2e3c756e6e6f74655f707265696d6167650401106861736830011c543a3a4861736800010480536565205b6050616c6c65743a3a756e6e6f74655f707265696d616765605d2e40726571756573745f707265696d6167650401106861736830011c543a3a4861736800020484536565205b6050616c6c65743a3a726571756573745f707265696d616765605d2e48756e726571756573745f707265696d6167650401106861736830011c543a3a486173680003048c536565205b6050616c6c65743a3a756e726571756573745f707265696d616765605d2e38656e737572655f75706461746564040118686173686573b90101305665633c543a3a486173683e0004047c536565205b6050616c6c65743a3a656e737572655f75706461746564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9010000023000bd010c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66c1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f6600000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66c1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f66000104b4536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e5f756e7369676e6564605d2e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967d50101504e657874436f6e66696744657363726970746f720002048c536565205b6050616c6c65743a3a706c616e5f636f6e6669675f6368616e6765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201c50108496401c901001001206f6666656e646572c90101084964000110736c6f74cd010110536c6f7400013066697273745f686561646572c50101184865616465720001347365636f6e645f686561646572c50101184865616465720000c501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368300130486173683a3a4f75747075740001186e756d626572150101184e756d62657200012873746174655f726f6f74300130486173683a3a4f757470757400013c65787472696e736963735f726f6f74300130486173683a3a4f75747075740001186469676573743801184469676573740000c9010c4473705f636f6e73656e7375735f626162650c617070185075626c696300000400e4013c737232353531393a3a5075626c69630000cd01084873705f636f6e73656e7375735f736c6f747310536c6f74000004002c010c7536340000d101082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a90101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e740000d5010c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f7200010408563108010463d9010128287536342c2075363429000134616c6c6f7765645f736c6f7473dd010130416c6c6f776564536c6f747300010000d901000004082c2c00dd01084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f747300020000e1010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f77280124543a3a4d6f6d656e7400000450536565205b6050616c6c65743a3a736574605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5010c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011414636c61696d040114696e64657810013c543a3a4163636f756e74496e64657800000458536565205b6050616c6c65743a3a636c61696d605d2e207472616e7366657208010c6e6577e90101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e64657800010464536565205b6050616c6c65743a3a7472616e73666572605d2e1066726565040114696e64657810013c543a3a4163636f756e74496e64657800020454536565205b6050616c6c65743a3a66726565605d2e38666f7263655f7472616e736665720c010c6e6577e90101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65780110626f6f6c0003047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004045c536565205b6050616c6c65743a3a667265657a65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e646578018c011408496404000001244163636f756e74496400000014496e6465780400ed0101304163636f756e74496e6465780001000c526177040034011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400210101205b75383b2032305d00040000ed010000068c00f1010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000120507472616e736665725f616c6c6f775f646561746808011064657374e90101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565f40128543a3a42616c616e636500000494536565205b6050616c6c65743a3a7472616e736665725f616c6c6f775f6465617468605d2e38666f7263655f7472616e736665720c0118736f75726365e90101504163636f756e7449644c6f6f6b75704f663c543e00011064657374e90101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565f40128543a3a42616c616e63650002047c536565205b6050616c6c65743a3a666f7263655f7472616e73666572605d2e4c7472616e736665725f6b6565705f616c69766508011064657374e90101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565f40128543a3a42616c616e636500030490536565205b6050616c6c65743a3a7472616e736665725f6b6565705f616c697665605d2e307472616e736665725f616c6c08011064657374e90101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665780110626f6f6c00040474536565205b6050616c6c65743a3a7472616e736665725f616c6c605d2e3c666f7263655f756e7265736572766508010c77686fe90101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050480536565205b6050616c6c65743a3a666f7263655f756e72657365727665605d2e40757067726164655f6163636f756e747304010c77686ff50101445665633c543a3a4163636f756e7449643e00060484536565205b6050616c6c65743a3a757067726164655f6163636f756e7473605d2e44666f7263655f7365745f62616c616e636508010c77686fe90101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565f40128543a3a42616c616e636500080488536565205b6050616c6c65743a3a666f7263655f7365745f62616c616e6365605d2e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ef901014c41646a7573746d656e74446972656374696f6e00011464656c7461f40128543a3a42616c616e6365000904b0536565205b6050616c6c65743a3a666f7263655f61646a7573745f746f74616c5f69737375616e6365605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5010000020000f9010c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000fd01103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400017810626f6e6408011476616c7565f4013042616c616e63654f663c543e0001147061796565a8017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00000454536565205b6050616c6c65743a3a626f6e64605d2e28626f6e645f65787472610401386d61785f6164646974696f6e616cf4013042616c616e63654f663c543e0001046c536565205b6050616c6c65743a3a626f6e645f6578747261605d2e18756e626f6e6404011476616c7565f4013042616c616e63654f663c543e0002045c536565205b6050616c6c65743a3a756e626f6e64605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200030488536565205b6050616c6c65743a3a77697468647261775f756e626f6e646564605d2e2076616c69646174650401147072656673b0013856616c696461746f72507265667300040464536565205b6050616c6c65743a3a76616c6964617465605d2e206e6f6d696e61746504011c74617267657473010201645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00050464536565205b6050616c6c65743a3a6e6f6d696e617465605d2e146368696c6c00060458536565205b6050616c6c65743a3a6368696c6c605d2e247365745f70617965650401147061796565a8017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e00070468536565205b6050616c6c65743a3a7365745f7061796565605d2e387365745f636f6e74726f6c6c65720008047c536565205b6050616c6c65743a3a7365745f636f6e74726f6c6c6572605d2e4c7365745f76616c696461746f725f636f756e7404010c6e65771501010c75333200090490536565205b6050616c6c65743a3a7365745f76616c696461746f725f636f756e74605d2e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c1501010c753332000a04a4536565205b6050616c6c65743a3a696e6372656173655f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f720502011c50657263656e74000b0498536565205b6050616c6c65743a3a7363616c655f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c0478536565205b6050616c6c65743a3a666f7263655f6e6f5f65726173605d2e34666f7263655f6e65775f657261000d0478536565205b6050616c6c65743a3a666f7263655f6e65775f657261605d2e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573f50101445665633c543a3a4163636f756e7449643e000e0488536565205b6050616c6c65743a3a7365745f696e76756c6e657261626c6573605d2e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f0478536565205b6050616c6c65743a3a666f7263655f756e7374616b65605d2e50666f7263655f6e65775f6572615f616c7761797300100494536565205b6050616c6c65743a3a666f7263655f6e65775f6572615f616c77617973605d2e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573090201205665633c7533323e00110498536565205b6050616c6c65743a3a63616e63656c5f64656665727265645f736c617368605d2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012047c536565205b6050616c6c65743a3a7061796f75745f7374616b657273605d2e187265626f6e6404011476616c7565f4013042616c616e63654f663c543e0013045c536565205b6050616c6c65743a3a7265626f6e64605d2e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014046c536565205b6050616c6c65743a3a726561705f7374617368605d2e106b69636b04010c77686f010201645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00150454536565205b6050616c6c65743a3a6b69636b605d2e4c7365745f7374616b696e675f636f6e666967731801486d696e5f6e6f6d696e61746f725f626f6e640d020158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e640d020158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7411020134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7411020134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6415020144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e19020144436f6e6669674f703c50657262696c6c3e00160490536565205b6050616c6c65743a3a7365745f7374616b696e675f636f6e66696773605d2e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400170470536565205b6050616c6c65743a3a6368696c6c5f6f74686572605d2e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e744964001804ac536565205b6050616c6c65743a3a666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e605d2e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577ac011c50657262696c6c0019048c536565205b6050616c6c65743a3a7365745f6d696e5f636f6d6d697373696f6e605d2e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a049c536565205b6050616c6c65743a3a7061796f75745f7374616b6572735f62795f70616765605d2e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b0474536565205b6050616c6c65743a3a7570646174655f7061796565605d2e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c6572731d0201f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c04ac536565205b6050616c6c65743a3a6465707265636174655f636f6e74726f6c6c65725f6261746368605d2e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572210201504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616c250201504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e6729020115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d047c536565205b6050616c6c65743a3a726573746f72655f6c6564676572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0102000002e9010005020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000090200000210000d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200001102103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200001502103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454010502010c104e6f6f700000000c536574040005020104540001001852656d6f7665000200001902103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f7665000200001d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400f50101185665633c543e0000210204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000250204184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000290204184f7074696f6e040454012d020108104e6f6e6500000010536f6d6504002d0200000100002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013102045300000400350201185665633c543e00003102083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565f4011c42616c616e636500010c65726115010120457261496e6465780000350200000231020039020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579733d02011c543a3a4b65797300011470726f6f6634011c5665633c75383e00000464536565205b6050616c6c65743a3a7365745f6b657973605d2e2870757267655f6b6579730001046c536565205b6050616c6c65743a3a70757267655f6b657973605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061d401d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265c90101c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72410201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e74450201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279490201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011462656566794d0201c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300004102104c706f6c6b61646f745f7072696d6974697665730876363476616c696461746f725f617070185075626c696300000400e4013c737232353531393a3a5075626c696300004502104c706f6c6b61646f745f7072696d6974697665730876363861737369676e6d656e745f617070185075626c696300000400e4013c737232353531393a3a5075626c6963000049020c5873705f617574686f726974795f646973636f766572790c617070185075626c696300000400e4013c737232353531393a3a5075626c696300004d020c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c6963000004005102013465636473613a3a5075626c6963000051020c1c73705f636f7265146563647361185075626c696300000400550201805b75383b205055424c49435f4b45595f53455249414c495a45445f53495a455d0000550200000321000000080059020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f665d0201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f6600000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f665d0201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f66000104b4536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e5f756e7369676e6564605d2e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e00020474536565205b6050616c6c65743a3a6e6f74655f7374616c6c6564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d02085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480130044e0110000801187365745f69642c0114536574496400013065717569766f636174696f6e6102014845717569766f636174696f6e3c482c204e3e00006102085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480130044e011001081c507265766f7465040065020139016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265766f74653c482c204e3e2c0a417574686f726974795369676e61747572653e00000024507265636f6d6d697404007d020141016772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c206772616e6470613a3a507265636f6d6d69743c482c204e3e2c0a417574686f726974795369676e61747572653e000100006502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401d404560169020453016d0200100130726f756e645f6e756d6265722c010c7536340001206964656e74697479d40108496400011466697273747902011828562c2053290001187365636f6e647902011828562c20532900006902084066696e616c6974795f6772616e6470611c507265766f74650804480130044e01100008012c7461726765745f68617368300104480001347461726765745f6e756d6265721001044e00006d020c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040071020148656432353531393a3a5369676e6174757265000071020c1c73705f636f72651c65643235353139245369676e617475726500000400750201205b75383b2036345d0000750200000340000000080079020000040869026d02007d02084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401d404560181020453016d0200100130726f756e645f6e756d6265722c010c7536340001206964656e74697479d40108496400011466697273748502011828562c2053290001187365636f6e648502011828562c20532900008102084066696e616c6974795f6772616e64706124507265636f6d6d69740804480130044e01100008012c7461726765745f68617368300104480001347461726765745f6e756d6265721001044e000085020000040881026d020089020c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001243470726f706f73655f7370656e6408011476616c7565f4013c42616c616e63654f663c542c20493e00012c62656e6566696369617279e90101504163636f756e7449644c6f6f6b75704f663c543e00000478536565205b6050616c6c65743a3a70726f706f73655f7370656e64605d2e3c72656a6563745f70726f706f73616c04012c70726f706f73616c5f69641501013450726f706f73616c496e64657800010480536565205b6050616c6c65743a3a72656a6563745f70726f706f73616c605d2e40617070726f76655f70726f706f73616c04012c70726f706f73616c5f69641501013450726f706f73616c496e64657800020484536565205b6050616c6c65743a3a617070726f76655f70726f706f73616c605d2e2c7370656e645f6c6f63616c080118616d6f756e74f4013c42616c616e63654f663c542c20493e00012c62656e6566696369617279e90101504163636f756e7449644c6f6f6b75704f663c543e00030470536565205b6050616c6c65743a3a7370656e645f6c6f63616c605d2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69641501013450726f706f73616c496e64657800040480536565205b6050616c6c65743a3a72656d6f76655f617070726f76616c605d2e147370656e6410012861737365745f6b696e6405010144426f783c543a3a41737365744b696e643e000118616d6f756e74f40150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727969010178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6d8d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00050458536565205b6050616c6c65743a3a7370656e64605d2e187061796f7574040114696e6465781001285370656e64496e6465780006045c536565205b6050616c6c65743a3a7061796f7574605d2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800070474536565205b6050616c6c65743a3a636865636b5f737461747573605d2e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008046c536565205b6050616c6c65743a3a766f69645f7370656e64605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d0204184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000091020c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e64657815010144506f6c6c496e6465784f663c542c20493e000110766f7465950201704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00000454536565205b6050616c6c65743a3a766f7465605d2e2064656c6567617465100114636c61737391010134436c6173734f663c542c20493e000108746fe90101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e9d020128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00010464536565205b6050616c6c65743a3a64656c6567617465605d2e28756e64656c6567617465040114636c61737391010134436c6173734f663c542c20493e0002046c536565205b6050616c6c65743a3a756e64656c6567617465605d2e18756e6c6f636b080114636c61737391010134436c6173734f663c542c20493e000118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e0003045c536565205b6050616c6c65743a3a756e6c6f636b605d2e2c72656d6f76655f766f7465080114636c617373a10201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e00040470536565205b6050616c6c65743a3a72656d6f76655f766f7465605d2e4472656d6f76655f6f746865725f766f74650c0118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e000114636c61737391010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e00050488536565205b6050616c6c65743a3a72656d6f76655f6f746865725f766f7465605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746599020110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000099020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f746500000400080000009d020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000a10204184f7074696f6e0404540191010108104e6f6e6500000010536f6d65040091010000010000a5020c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696ea902015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c9501014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e74c502017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e0000045c536565205b6050616c6c65743a3a7375626d6974605d2e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e6465780001049c536565205b6050616c6c65743a3a706c6163655f6465636973696f6e5f6465706f736974605d2e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000204a0536565205b6050616c6c65743a3a726566756e645f6465636973696f6e5f6465706f736974605d2e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003045c536565205b6050616c6c65743a3a63616e63656c605d2e106b696c6c040114696e64657810013c5265666572656e64756d496e64657800040454536565205b6050616c6c65743a3a6b696c6c605d2e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e64657800050484536565205b6050616c6c65743a3a6e756467655f7265666572656e64756d605d2e486f6e655f66657765725f6465636964696e67040114747261636b9101013c547261636b49644f663c542c20493e0006048c536565205b6050616c6c65743a3a6f6e655f66657765725f6465636964696e67605d2e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000704a8536565205b6050616c6c65743a3a726566756e645f7375626d697373696f6e5f6465706f736974605d2e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368c902013c4f7074696f6e3c543a3a486173683e00080474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9020840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400ad0201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c4f726967696e730400b102017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e0016004050617261636861696e734f726967696e0400b502016470617261636861696e735f6f726967696e3a3a4f726967696e0032002458636d50616c6c65740400bd02014870616c6c65745f78636d3a3a4f726967696e00630010566f69640400c10201410173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a5f5f707269766174653a3a566f696400040000ad020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020000b1021440706f6c6b61646f745f72756e74696d6528676f7665726e616e63651c6f726967696e735470616c6c65745f637573746f6d5f6f726967696e73184f726967696e00013c305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d003457697368466f724368616e6765000e0000b502106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e0400b902011850617261496400000000b9020c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000bd020c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d0400310101204c6f636174696f6e00000020526573706f6e73650400310101204c6f636174696f6e00010000c102081c73705f636f726510566f696400010000c50210346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d62657200010000c90204184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000cd020c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736830011c543a3a486173680000047c536565205b6050616c6c65743a3a77686974656c6973745f63616c6c605d2e5c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736830011c543a3a48617368000104a0536565205b6050616c6c65743a3a72656d6f76655f77686974656c69737465645f63616c6c605d2e6464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736830011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e657373240118576569676874000204a8536565205b6050616c6c65743a3a64697370617463685f77686974656c69737465645f63616c6c605d2e9c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000304e0536565205b6050616c6c65743a3a64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d616765605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed102105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265d502013845636473615369676e617475726500000458536565205b6050616c6c65743a3a636c61696d605d2e286d696e745f636c61696d10010c77686fdd02013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65e10201dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e74e90201544f7074696f6e3c53746174656d656e744b696e643e0001046c536565205b6050616c6c65743a3a6d696e745f636c61696d605d2e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265d502013845636473615369676e617475726500012473746174656d656e7434011c5665633c75383e00020474536565205b6050616c6c65743a3a636c61696d5f617474657374605d2e1861747465737404012473746174656d656e7434011c5665633c75383e0003045c536565205b6050616c6c65743a3a617474657374605d2e286d6f76655f636c61696d0c010c6f6c64dd02013c457468657265756d4164647265737300010c6e6577dd02013c457468657265756d416464726573730001386d617962655f707265636c61696d210201504f7074696f6e3c543a3a4163636f756e7449643e0004046c536565205b6050616c6c65743a3a6d6f76655f636c61696d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400d90201205b75383b2036355d0000d902000003410000000800dd020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400210101205b75383b2032305d0000e10204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000e5020000040c18181000e90204184f7074696f6e04045401ed020108104e6f6e6500000010536f6d650400ed020000010000ed020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c6172000000105361667400010000f1020c3870616c6c65745f76657374696e671870616c6c65741043616c6c040454000118107665737400000454536565205b6050616c6c65743a3a76657374605d2e28766573745f6f74686572040118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e0001046c536565205b6050616c6c65743a3a766573745f6f74686572605d2e3c7665737465645f7472616e73666572080118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65f50201b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00020480536565205b6050616c6c65743a3a7665737465645f7472616e73666572605d2e54666f7263655f7665737465645f7472616e736665720c0118736f75726365e90101504163636f756e7449644c6f6f6b75704f663c543e000118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65f50201b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00030498536565205b6050616c6c65743a3a666f7263655f7665737465645f7472616e73666572605d2e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c75333200040480536565205b6050616c6c65743a3a6d657267655f7363686564756c6573605d2e74666f7263655f72656d6f76655f76657374696e675f7363686564756c65080118746172676574e901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c753332000504b8536565205b6050616c6c65743a3a666f7263655f72656d6f76655f76657374696e675f7363686564756c65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5020c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000f9020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400011814626174636804011463616c6c73fd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a6261746368605d2e3461735f64657269766174697665080114696e6465789101010c75313600011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00010478536565205b6050616c6c65743a3a61735f64657269766174697665605d2e2462617463685f616c6c04011463616c6c73fd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00020468536565205b6050616c6c65743a3a62617463685f616c6c605d2e2c64697370617463685f617308012461735f6f726967696ea9020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00030470536565205b6050616c6c65743a3a64697370617463685f6173605d2e2c666f7263655f626174636804011463616c6c73fd02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00040470536565205b6050616c6c65743a3a666f7263655f6261746368605d2e2c776974685f77656967687408011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011877656967687424011857656967687400050470536565205b6050616c6c65743a3a776974685f776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd0200000299010001030c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c040454000158346164645f72656769737472617204011c6163636f756e74e90101504163636f756e7449644c6f6f6b75704f663c543e00000478536565205b6050616c6c65743a3a6164645f726567697374726172605d2e307365745f6964656e74697479040110696e666f0503016c426f783c543a3a4964656e74697479496e666f726d6174696f6e3e00010474536565205b6050616c6c65743a3a7365745f6964656e74697479605d2e207365745f7375627304011073756273910301645665633c28543a3a4163636f756e7449642c2044617461293e00020464536565205b6050616c6c65743a3a7365745f73756273605d2e38636c6561725f6964656e746974790003047c536565205b6050616c6c65743a3a636c6561725f6964656e74697479605d2e44726571756573745f6a756467656d656e740801247265675f696e64657815010138526567697374726172496e64657800011c6d61785f666565f4013042616c616e63654f663c543e00040488536565205b6050616c6c65743a3a726571756573745f6a756467656d656e74605d2e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005047c536565205b6050616c6c65743a3a63616e63656c5f72657175657374605d2e1c7365745f666565080114696e64657815010138526567697374726172496e64657800010c666565f4013042616c616e63654f663c543e00060460536565205b6050616c6c65743a3a7365745f666565605d2e387365745f6163636f756e745f6964080114696e64657815010138526567697374726172496e64657800010c6e6577e90101504163636f756e7449644c6f6f6b75704f663c543e0007047c536565205b6050616c6c65743a3a7365745f6163636f756e745f6964605d2e287365745f6669656c6473080114696e64657815010138526567697374726172496e6465780001186669656c64732c0129013c543a3a4964656e74697479496e666f726d6174696f6e206173204964656e74697479496e666f726d6174696f6e50726f76696465723e3a3a0a4669656c64734964656e7469666965720008046c536565205b6050616c6c65743a3a7365745f6669656c6473605d2e4470726f766964655f6a756467656d656e741001247265675f696e64657815010138526567697374726172496e646578000118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e749903015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e7469747930011c543a3a4861736800090488536565205b6050616c6c65743a3a70726f766964655f6a756467656d656e74605d2e346b696c6c5f6964656e74697479040118746172676574e90101504163636f756e7449644c6f6f6b75704f663c543e000a0478536565205b6050616c6c65743a3a6b696c6c5f6964656e74697479605d2e1c6164645f73756208010c737562e90101504163636f756e7449644c6f6f6b75704f663c543e000110646174611103011044617461000b0460536565205b6050616c6c65743a3a6164645f737562605d2e2872656e616d655f73756208010c737562e90101504163636f756e7449644c6f6f6b75704f663c543e000110646174611103011044617461000c046c536565205b6050616c6c65743a3a72656e616d655f737562605d2e2872656d6f76655f73756204010c737562e90101504163636f756e7449644c6f6f6b75704f663c543e000d046c536565205b6050616c6c65743a3a72656d6f76655f737562605d2e20717569745f737562000e0464536565205b6050616c6c65743a3a717569745f737562605d2e586164645f757365726e616d655f617574686f726974790c0124617574686f72697479e90101504163636f756e7449644c6f6f6b75704f663c543e00011873756666697834011c5665633c75383e000128616c6c6f636174696f6e10010c753332000f049c536565205b6050616c6c65743a3a6164645f757365726e616d655f617574686f72697479605d2e6472656d6f76655f757365726e616d655f617574686f72697479040124617574686f72697479e90101504163636f756e7449644c6f6f6b75704f663c543e001004a8536565205b6050616c6c65743a3a72656d6f76655f757365726e616d655f617574686f72697479605d2e407365745f757365726e616d655f666f720c010c77686fe90101504163636f756e7449644c6f6f6b75704f663c543e000120757365726e616d6534011c5665633c75383e0001247369676e61747572659d0301704f7074696f6e3c543a3a4f6666636861696e5369676e61747572653e00110484536565205b6050616c6c65743a3a7365745f757365726e616d655f666f72605d2e3c6163636570745f757365726e616d65040120757365726e616d65ad03012c557365726e616d653c543e00120480536565205b6050616c6c65743a3a6163636570745f757365726e616d65605d2e5c72656d6f76655f657870697265645f617070726f76616c040120757365726e616d65ad03012c557365726e616d653c543e001304a0536565205b6050616c6c65743a3a72656d6f76655f657870697265645f617070726f76616c605d2e507365745f7072696d6172795f757365726e616d65040120757365726e616d65ad03012c557365726e616d653c543e00140494536565205b6050616c6c65743a3a7365745f7072696d6172795f757365726e616d65605d2e6072656d6f76655f64616e676c696e675f757365726e616d65040120757365726e616d65ad03012c557365726e616d653c543e001504a4536565205b6050616c6c65743a3a72656d6f76655f64616e676c696e675f757365726e616d65605d2e04704964656e746974792070616c6c6574206465636c61726174696f6e2e05030c3c70616c6c65745f6964656e74697479186c6567616379304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c09030190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617911030110446174610001146c6567616c110301104461746100010c776562110301104461746100011072696f741103011044617461000114656d61696c110301104461746100013c7067705f66696e6765727072696e748d0301404f7074696f6e3c5b75383b2032305d3e000114696d616765110301104461746100011c747769747465721103011044617461000009030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010d03045300000400890301185665633c543e00000d0300000408110311030011030c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e650000001052617730040015030000010010526177310400190300000200105261773204001d0300000300105261773304002103000004001052617734040044000005001052617735040025030000060010526177360400290300000700105261773704002d03000008001052617738040031030000090010526177390400350300000a001452617731300400390300000b0014526177313104003d0300000c001452617731320400410300000d001452617731330400450300000e001452617731340400490300000f0014526177313504004d03000010001452617731360400c000001100145261773137040051030000120014526177313804005503000013001452617731390400590300001400145261773230040021010000150014526177323104005d030000160014526177323204006103000017001452617732330400650300001800145261773234040069030000190014526177323504006d0300001a001452617732360400710300001b001452617732370400750300001c001452617732380400790300001d0014526177323904007d0300001e001452617733300400810300001f001452617733310400850300002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c53686154687265653235360400040000250000150300000300000000080019030000030100000008001d030000030200000008002103000003030000000800250300000305000000080029030000030600000008002d030000030700000008003103000003080000000800350300000309000000080039030000030a00000008003d030000030b000000080041030000030c000000080045030000030d000000080049030000030e00000008004d030000030f00000008005103000003110000000800550300000312000000080059030000031300000008005d030000031500000008006103000003160000000800650300000317000000080069030000031800000008006d0300000319000000080071030000031a000000080075030000031b000000080079030000031c00000008007d030000031d000000080081030000031e000000080085030000031f000000080089030000020d03008d0304184f7074696f6e0404540121010108104e6f6e6500000010536f6d6504002101000001000091030000029503009503000004080011030099030c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f7573000600009d0304184f7074696f6e04045401a1030108104e6f6e6500000010536f6d650400a1030000010000a103082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040071020148656432353531393a3a5369676e61747572650000001c537232353531390400a5030148737232353531393a3a5369676e61747572650001001445636473610400a903014065636473613a3a5369676e617475726500020000a5030c1c73705f636f72651c73723235353139245369676e617475726500000400750201205b75383b2036345d0000a9030c1c73705f636f7265146563647361245369676e617475726500000400d902017c5b75383b205349474e41545552455f53455249414c495a45445f53495a455d0000ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000b1030c3070616c6c65745f70726f78791870616c6c65741043616c6c0404540001281470726f78790c01107265616ce90101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065b50301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000458536565205b6050616c6c65743a3a70726f7879605d2e246164645f70726f78790c012064656c6567617465e90101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b9030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00010468536565205b6050616c6c65743a3a6164645f70726f7879605d2e3072656d6f76655f70726f78790c012064656c6567617465e90101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b9030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00020474536565205b6050616c6c65743a3a72656d6f76655f70726f7879605d2e3872656d6f76655f70726f786965730003047c536565205b6050616c6c65743a3a72656d6f76655f70726f78696573605d2e2c6372656174655f707572650c012870726f78795f74797065b9030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465789101010c75313600040470536565205b6050616c6c65743a3a6372656174655f70757265605d2e246b696c6c5f7075726514011c737061776e6572e90101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065b9030130543a3a50726f787954797065000114696e6465789101010c75313600011868656967687415010144426c6f636b4e756d626572466f723c543e0001246578745f696e6465781501010c75333200050468536565205b6050616c6c65743a3a6b696c6c5f70757265605d2e20616e6e6f756e63650801107265616ce90101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00060464536565205b6050616c6c65743a3a616e6e6f756e6365605d2e4c72656d6f76655f616e6e6f756e63656d656e740801107265616ce90101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00070490536565205b6050616c6c65743a3a72656d6f76655f616e6e6f756e63656d656e74605d2e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465e90101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736830013443616c6c486173684f663c543e00080490536565205b6050616c6c65743a3a72656a6563745f616e6e6f756e63656d656e74605d2e3c70726f78795f616e6e6f756e63656410012064656c6567617465e90101504163636f756e7449644c6f6f6b75704f663c543e0001107265616ce90101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065b50301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00090480536565205b6050616c6c65743a3a70726f78795f616e6e6f756e636564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb50304184f7074696f6e04045401b9030108104e6f6e6500000010536f6d650400b9030000010000b9030840706f6c6b61646f745f72756e74696d652450726f7879547970650001200c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e67000300444964656e746974794a756467656d656e740005002c43616e63656c50726f78790006001c41756374696f6e0007003c4e6f6d696e6174696f6e506f6f6c7300080000bd030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001105061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573f50101445665633c543a3a4163636f756e7449643e00011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000494536565205b6050616c6c65743a3a61735f6d756c74695f7468726573686f6c645f31605d2e2061735f6d756c74691401247468726573686f6c649101010c7531360001446f746865725f7369676e61746f72696573f50101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74c10301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c9901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687424011857656967687400010464536565205b6050616c6c65743a3a61735f6d756c7469605d2e40617070726f76655f61735f6d756c74691401247468726573686f6c649101010c7531360001446f746865725f7369676e61746f72696573f50101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74c10301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f77656967687424011857656967687400020484536565205b6050616c6c65743a3a617070726f76655f61735f6d756c7469605d2e3c63616e63656c5f61735f6d756c74691001247468726573686f6c649101010c7531360001446f746865725f7369676e61746f72696573f50101445665633c543a3a4163636f756e7449643e00012474696d65706f696e74c503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d00030480536565205b6050616c6c65743a3a63616e63656c5f61735f6d756c7469605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec10304184f7074696f6e04045401c5030108104e6f6e6500000010536f6d650400c5030000010000c503083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000c9030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0804540004490001243870726f706f73655f626f756e747908011476616c7565f4013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e34011c5665633c75383e0000047c536565205b6050616c6c65743a3a70726f706f73655f626f756e7479605d2e38617070726f76655f626f756e7479040124626f756e74795f69641501012c426f756e7479496e6465780001047c536565205b6050616c6c65743a3a617070726f76655f626f756e7479605d2e3c70726f706f73655f63757261746f720c0124626f756e74795f69641501012c426f756e7479496e64657800011c63757261746f72e90101504163636f756e7449644c6f6f6b75704f663c543e00010c666565f4013c42616c616e63654f663c542c20493e00020480536565205b6050616c6c65743a3a70726f706f73655f63757261746f72605d2e40756e61737369676e5f63757261746f72040124626f756e74795f69641501012c426f756e7479496e64657800030484536565205b6050616c6c65743a3a756e61737369676e5f63757261746f72605d2e386163636570745f63757261746f72040124626f756e74795f69641501012c426f756e7479496e6465780004047c536565205b6050616c6c65743a3a6163636570745f63757261746f72605d2e3061776172645f626f756e7479080124626f756e74795f69641501012c426f756e7479496e64657800012c62656e6566696369617279e90101504163636f756e7449644c6f6f6b75704f663c543e00050474536565205b6050616c6c65743a3a61776172645f626f756e7479605d2e30636c61696d5f626f756e7479040124626f756e74795f69641501012c426f756e7479496e64657800060474536565205b6050616c6c65743a3a636c61696d5f626f756e7479605d2e30636c6f73655f626f756e7479040124626f756e74795f69641501012c426f756e7479496e64657800070474536565205b6050616c6c65743a3a636c6f73655f626f756e7479605d2e50657874656e645f626f756e74795f657870697279080124626f756e74795f69641501012c426f756e7479496e64657800011872656d61726b34011c5665633c75383e00080494536565205b6050616c6c65743a3a657874656e645f626f756e74795f657870697279605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd030c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800011476616c7565f4013042616c616e63654f663c543e00012c6465736372697074696f6e34011c5665633c75383e00000484536565205b6050616c6c65743a3a6164645f6368696c645f626f756e7479605d2e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641501012c426f756e7479496e64657800011c63757261746f72e90101504163636f756e7449644c6f6f6b75704f663c543e00010c666565f4013042616c616e63654f663c543e00010480536565205b6050616c6c65743a3a70726f706f73655f63757261746f72605d2e386163636570745f63757261746f72080140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641501012c426f756e7479496e6465780002047c536565205b6050616c6c65743a3a6163636570745f63757261746f72605d2e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641501012c426f756e7479496e64657800030484536565205b6050616c6c65743a3a756e61737369676e5f63757261746f72605d2e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641501012c426f756e7479496e64657800012c62656e6566696369617279e90101504163636f756e7449644c6f6f6b75704f663c543e0004048c536565205b6050616c6c65743a3a61776172645f6368696c645f626f756e7479605d2e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641501012c426f756e7479496e6465780005048c536565205b6050616c6c65743a3a636c61696d5f6368696c645f626f756e7479605d2e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f69641501012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641501012c426f756e7479496e6465780006048c536565205b6050616c6c65743a3a636c6f73655f6368696c645f626f756e7479605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ed50301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e657373a9040158536f6c7574696f6e4f72536e617073686f7453697a6500000480536565205b6050616c6c65743a3a7375626d69745f756e7369676e6564605d2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265ad0401544f7074696f6e3c456c656374696f6e53636f72653e000104b0536565205b6050616c6c65743a3a7365745f6d696e696d756d5f756e747275737465645f73636f7265605d2e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473b1040158537570706f7274733c543a3a4163636f756e7449643e000204b8536565205b6050616c6c65743a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e187375626d69740401307261775f736f6c7574696f6ed50301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003045c536565205b6050616c6c65743a3a7375626d6974605d2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f746572738d02012c4f7074696f6e3c7533323e0001446d617962655f6d61785f746172676574738d02012c4f7074696f6e3c7533323e00040490536565205b6050616c6c65743a3a676f7665726e616e63655f66616c6c6261636b605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed503089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301d903000c0120736f6c7574696f6ed90301045300011473636f7265a5040134456c656374696f6e53636f7265000114726f756e6410010c7533320000d9030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331dd0300000118766f74657332e90300000118766f74657333fd0300000118766f74657334090400000118766f74657335150400000118766f74657336210400000118766f746573372d0400000118766f74657338390400000118766f7465733945040000011c766f746573313051040000011c766f74657331315d040000011c766f746573313269040000011c766f746573313375040000011c766f746573313481040000011c766f74657331358d040000011c766f74657331369904000000dd03000002e10300e103000004081501e50300e503000006910100e903000002ed0300ed030000040c1501f103e50300f10300000408e503f50300f503000006f90300f9030c3473705f61726974686d65746963287065725f7468696e677318506572553136000004009101010c7531360000fd0300000201040001040000040c15010504e50300050400000302000000f1030009040000020d04000d040000040c15011104e50300110400000303000000f10300150400000219040019040000040c15011d04e503001d0400000304000000f10300210400000225040025040000040c15012904e50300290400000305000000f103002d0400000231040031040000040c15013504e50300350400000306000000f1030039040000023d04003d040000040c15014104e50300410400000307000000f10300450400000249040049040000040c15014d04e503004d0400000308000000f10300510400000255040055040000040c15015904e50300590400000309000000f103005d0400000261040061040000040c15016504e5030065040000030a000000f1030069040000026d04006d040000040c15017104e5030071040000030b000000f10300750400000279040079040000040c15017d04e503007d040000030c000000f10300810400000285040085040000040c15018904e5030089040000030d000000f103008d0400000291040091040000040c15019504e5030095040000030e000000f1030099040000029d04009d040000040c1501a104e50300a1040000030f000000f10300a504084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000a904089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f746572731501010c75333200011c746172676574731501010c7533320000ad0404184f7074696f6e04045401a5040108104e6f6e6500000010536f6d650400a5040000010000b104000002b50400b5040000040800b90400b904084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273bd0401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000bd04000002c10400c10400000408001800c5040c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564e90101504163636f756e7449644c6f6f6b75704f663c543e00000458536565205b6050616c6c65743a3a7265626167605d2e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572e90101504163636f756e7449644c6f6f6b75704f663c543e00010480536565205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572e90101504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572e90101504163636f756e7449644c6f6f6b75704f663c543e00020498536565205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f665f6f74686572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec9040c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c04045400015c106a6f696e080118616d6f756e74f4013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400000454536565205b6050616c6c65743a3a6a6f696e605d2e28626f6e645f65787472610401146578747261cd04015c426f6e6445787472613c42616c616e63654f663c543e3e0001046c536565205b6050616c6c65743a3a626f6e645f6578747261605d2e30636c61696d5f7061796f757400020474536565205b6050616c6c65743a3a636c61696d5f7061796f7574605d2e18756e626f6e640801386d656d6265725f6163636f756e74e90101504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e7473f4013042616c616e63654f663c543e0003045c536565205b6050616c6c65743a3a756e626f6e64605d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c7533320004049c536565205b6050616c6c65743a3a706f6f6c5f77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74e90101504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c75333200050488536565205b6050616c6c65743a3a77697468647261775f756e626f6e646564605d2e18637265617465100118616d6f756e74f4013042616c616e63654f663c543e000110726f6f74e90101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72e90101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572e90101504163636f756e7449644c6f6f6b75704f663c543e0006045c536565205b6050616c6c65743a3a637265617465605d2e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e74f4013042616c616e63654f663c543e000110726f6f74e90101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72e90101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572e90101504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c496400070490536565205b6050616c6c65743a3a6372656174655f776974685f706f6f6c5f6964605d2e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273f50101445665633c543a3a4163636f756e7449643e00080464536565205b6050616c6c65743a3a6e6f6d696e617465605d2e247365745f737461746508011c706f6f6c5f6964100118506f6f6c49640001147374617465d1040124506f6f6c537461746500090468536565205b6050616c6c65743a3a7365745f7374617465605d2e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746134011c5665633c75383e000a0474536565205b6050616c6c65743a3a7365745f6d65746164617461605d2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e64d5040158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e64d5040158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c73d9040134436f6e6669674f703c7533323e00012c6d61785f6d656d62657273d9040134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6cd9040134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6edd040144436f6e6669674f703c50657262696c6c3e000b0470536565205b6050616c6c65743a3a7365745f636f6e66696773605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f74e1040158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f72e1040158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e636572e1040158436f6e6669674f703c543a3a4163636f756e7449643e000c0474536565205b6050616c6c65743a3a7570646174655f726f6c6573605d2e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d0458536565205b6050616c6c65743a3a6368696c6c605d2e40626f6e645f65787472615f6f746865720801186d656d626572e90101504163636f756e7449644c6f6f6b75704f663c543e0001146578747261cd04015c426f6e6445787472613c42616c616e63654f663c543e3e000e0484536565205b6050616c6c65743a3a626f6e645f65787472615f6f74686572605d2e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6ee504013c436c61696d5065726d697373696f6e000f0494536565205b6050616c6c65743a3a7365745f636c61696d5f7065726d697373696f6e605d2e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010048c536565205b6050616c6c65743a3a636c61696d5f7061796f75745f6f74686572605d2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6ee904017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e0011047c536565205b6050616c6c65743a3a7365745f636f6d6d697373696f6e605d2e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6eac011c50657262696c6c0012048c536565205b6050616c6c65743a3a7365745f636f6d6d697373696f6e5f6d6178605d2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465f104019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001304ac536565205b6050616c6c65743a3a7365745f636f6d6d697373696f6e5f6368616e67655f72617465605d2e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400140484536565205b6050616c6c65743a3a636c61696d5f636f6d6d697373696f6e605d2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400150490536565205b6050616c6c65743a3a61646a7573745f706f6f6c5f6465706f736974605d2e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ef50401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001604c0536565205b6050616c6c65743a3a7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c5265776172647300010000d104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e6700020000d504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000d904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000dd04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401ac010c104e6f6f700000000c5365740400ac0104540001001852656d6f766500020000e104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f766500020000e504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000e90404184f7074696f6e04045401ed040108104e6f6e6500000010536f6d650400ed040000010000ed0400000408ac0000f104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365ac011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000f50404184f7074696f6e04045401f9040108104e6f6e6500000010536f6d650400f9040000010000f904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e74496400010000fd040c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b6500000498536565205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e28646572656769737465720001046c536565205b6050616c6c65743a3a64657265676973746572605d2e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800020460536565205b6050616c6c65743a3a636f6e74726f6c605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0105106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001bc7c7365745f76616c69646174696f6e5f757067726164655f636f6f6c646f776e04010c6e6577100144426c6f636b4e756d626572466f723c543e000004c0536565205b6050616c6c65743a3a7365745f76616c69646174696f6e5f757067726164655f636f6f6c646f776e605d2e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e000104b4536565205b6050616c6c65743a3a7365745f76616c69646174696f6e5f757067726164655f64656c6179605d2e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000204a8536565205b6050616c6c65743a3a7365745f636f64655f726574656e74696f6e5f706572696f64605d2e447365745f6d61785f636f64655f73697a6504010c6e657710010c75333200030488536565205b6050616c6c65743a3a7365745f6d61785f636f64655f73697a65605d2e407365745f6d61785f706f765f73697a6504010c6e657710010c75333200040484536565205b6050616c6c65743a3a7365745f6d61785f706f765f73697a65605d2e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049c536565205b6050616c6c65743a3a7365745f6d61785f686561645f646174615f73697a65605d2e487365745f636f726574696d655f636f72657304010c6e657710010c7533320006048c536565205b6050616c6c65743a3a7365745f636f726574696d655f636f726573605d2e547365745f6f6e5f64656d616e645f7265747269657304010c6e657710010c75333200070498536565205b6050616c6c65743a3a7365745f6f6e5f64656d616e645f72657472696573605d2e707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100144426c6f636b4e756d626572466f723c543e000804b4536565205b6050616c6c65743a3a7365745f67726f75705f726f746174696f6e5f6672657175656e6379605d2e747365745f70617261735f617661696c6162696c6974795f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000904b8536565205b6050616c6c65743a3a7365745f70617261735f617661696c6162696c6974795f706572696f64605d2e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04a4536565205b6050616c6c65743a3a7365745f7363686564756c696e675f6c6f6f6b6168656164605d2e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e65778d02012c4f7074696f6e3c7533323e000c04b0536565205b6050616c6c65743a3a7365745f6d61785f76616c696461746f72735f7065725f636f7265605d2e487365745f6d61785f76616c696461746f727304010c6e65778d02012c4f7074696f6e3c7533323e000d048c536565205b6050616c6c65743a3a7365745f6d61785f76616c696461746f7273605d2e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e048c536565205b6050616c6c65743a3a7365745f646973707574655f706572696f64605d2eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000f04f8536565205b6050616c6c65743a3a7365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f64605d2e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c75333200120488536565205b6050616c6c65743a3a7365745f6e6f5f73686f775f736c6f7473605d2e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c75333200130494536565205b6050616c6c65743a3a7365745f6e5f64656c61795f7472616e63686573605d2e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c753332001404bc536565205b6050616c6c65743a3a7365745f7a65726f74685f64656c61795f7472616e6368655f7769647468605d2e507365745f6e65656465645f617070726f76616c7304010c6e657710010c75333200150494536565205b6050616c6c65743a3a7365745f6e65656465645f617070726f76616c73605d2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604b4536565205b6050616c6c65743a3a7365745f72656c61795f7672665f6d6f64756c6f5f73616d706c6573605d2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c753332001704ac536565205b6050616c6c65743a3a7365745f6d61785f7570776172645f71756575655f636f756e74605d2e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c753332001804a8536565205b6050616c6c65743a3a7365745f6d61785f7570776172645f71756575655f73697a65605d2e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c753332001904b8536565205b6050616c6c65743a3a7365745f6d61785f646f776e776172645f6d6573736167655f73697a65605d2e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b04b0536565205b6050616c6c65743a3a7365745f6d61785f7570776172645f6d6573736167655f73697a65605d2ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c04e4536565205b6050616c6c65743a3a7365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e646964617465605d2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d04a8536565205b6050616c6c65743a3a7365745f68726d705f6f70656e5f726571756573745f74746c605d2e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e04a0536565205b6050616c6c65743a3a7365745f68726d705f73656e6465725f6465706f736974605d2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f04ac536565205b6050616c6c65743a3a7365745f68726d705f726563697069656e745f6465706f736974605d2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c753332002004b8536565205b6050616c6c65743a3a7365745f68726d705f6368616e6e656c5f6d61785f6361706163697479605d2e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c753332002104c0536565205b6050616c6c65743a3a7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a65605d2e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c753332002204e0536565205b6050616c6c65743a3a7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c73605d2e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c753332002404c8536565205b6050616c6c65743a3a7365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a65605d2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c753332002504e4536565205b6050616c6c65743a3a7365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c73605d2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332002704dc536565205b6050616c6c65743a3a7365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e646964617465605d2e487365745f7076665f766f74696e675f74746c04010c6e657710013053657373696f6e496e646578002a048c536565205b6050616c6c65743a3a7365745f7076665f766f74696e675f74746c605d2e907365745f6d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e002b04d4536565205b6050616c6c65743a3a7365745f6d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c6179605d2e707365745f6279706173735f636f6e73697374656e63795f636865636b04010c6e6577780110626f6f6c002c04b4536565205b6050616c6c65743a3a7365745f6279706173735f636f6e73697374656e63795f636865636b605d2e607365745f6173796e635f6261636b696e675f706172616d7304010c6e6577050501484173796e634261636b696e67506172616d73002d04a4536565205b6050616c6c65743a3a7365745f6173796e635f6261636b696e675f706172616d73605d2e4c7365745f6578656375746f725f706172616d7304010c6e6577090501384578656375746f72506172616d73002e0490536565205b6050616c6c65743a3a7365745f6578656375746f725f706172616d73605d2e587365745f6f6e5f64656d616e645f626173655f66656504010c6e657718011c42616c616e6365002f049c536565205b6050616c6c65743a3a7365745f6f6e5f64656d616e645f626173655f666565605d2e747365745f6f6e5f64656d616e645f6665655f766172696162696c69747904010c6e6577ac011c50657262696c6c003004b8536565205b6050616c6c65743a3a7365745f6f6e5f64656d616e645f6665655f766172696162696c697479605d2e707365745f6f6e5f64656d616e645f71756575655f6d61785f73697a6504010c6e657710010c753332003104b4536565205b6050616c6c65743a3a7365745f6f6e5f64656d616e645f71756575655f6d61785f73697a65605d2e987365745f6f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e04010c6e6577ac011c50657262696c6c003204dc536565205b6050616c6c65743a3a7365745f6f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e605d2e447365745f6f6e5f64656d616e645f74746c04010c6e6577100144426c6f636b4e756d626572466f723c543e00330488536565205b6050616c6c65743a3a7365745f6f6e5f64656d616e645f74746c605d2e647365745f6d696e696d756d5f6261636b696e675f766f74657304010c6e657710010c753332003404a8536565205b6050616c6c65743a3a7365745f6d696e696d756d5f6261636b696e675f766f746573605d2e407365745f6e6f64655f66656174757265080114696e646578080108753800011476616c7565780110626f6f6c00350484536565205b6050616c6c65743a3a7365745f6e6f64655f66656174757265605d2e687365745f617070726f76616c5f766f74696e675f706172616d7304010c6e65771d050150417070726f76616c566f74696e67506172616d73003604ac536565205b6050616c6c65743a3a7365745f617070726f76616c5f766f74696e675f706172616d73605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0505104c706f6c6b61646f745f7072696d697469766573087636346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200000905104c706f6c6b61646f745f7072696d6974697665730876363c6578656375746f725f706172616d73384578656375746f72506172616d73000004000d0501485665633c4578656375746f72506172616d3e00000d050000021105001105104c706f6c6b61646f745f7072696d6974697665730876363c6578656375746f725f706172616d73344578656375746f72506172616d00011c384d61784d656d6f72795061676573040010010c7533320001003c537461636b4c6f676963616c4d6178040010010c75333200020038537461636b4e61746976654d6178040010010c75333200030050507265636865636b696e674d61784d656d6f727904002c010c753634000400385076665072657054696d656f757408001505012c507666507265704b696e6400002c010c753634000500385076664578656354696d656f757408001905012c507666457865634b696e6400002c010c753634000600445761736d45787442756c6b4d656d6f72790007000015050c4c706f6c6b61646f745f7072696d6974697665730876362c507666507265704b696e6400010820507265636865636b0000001c507265706172650001000019050c4c706f6c6b61646f745f7072696d6974697665730876362c507666457865634b696e640001081c4261636b696e6700000020417070726f76616c000100001d050c4c706f6c6b61646f745f7072696d697469766573207673746167696e6750417070726f76616c566f74696e67506172616d73000004016c6d61785f617070726f76616c5f636f616c657363655f636f756e7410010c75333200002105106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2505106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2905106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e746572040110646174612d05019050617261636861696e73496e686572656e74446174613c486561646572466f723c543e3e00000458536565205b6050616c6c65743a3a656e746572605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d050c4c706f6c6b61646f745f7072696d69746976657308763630496e686572656e7444617461040c48445201c501001001246269746669656c647331050190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465734d05017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573910501604d756c74694469737075746553746174656d656e74536574000134706172656e745f686561646572c501010c484452000031050000023505003505104c706f6c6b61646f745f7072696d697469766573087636187369676e65643c556e636865636b65645369676e6564081c5061796c6f61640139052c5265616c5061796c6f6164013905000c011c7061796c6f61643905011c5061796c6f616400013c76616c696461746f725f696e6465784505013856616c696461746f72496e6465780001247369676e61747572654905014856616c696461746f725369676e6174757265000039050c4c706f6c6b61646f745f7072696d69746976657308763650417661696c6162696c6974794269746669656c64000004003d05017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00003d050000070841050041050c18626974766563146f72646572104c7362300000000045050c4c706f6c6b61646f745f7072696d6974697665730876363856616c696461746f72496e6465780000040010010c75333200004905104c706f6c6b61646f745f7072696d6974697665730876363476616c696461746f725f617070245369676e617475726500000400a5030148737232353531393a3a5369676e617475726500004d0500000251050051050c4c706f6c6b61646f745f7072696d6974697665730876363c4261636b656443616e6469646174650404480130000c012463616e64696461746555050170436f6d6d697474656443616e646964617465526563656970743c483e00013876616c69646974795f766f746573890501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e64696365733d05017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e000055050c4c706f6c6b61646f745f7072696d69746976657308763664436f6d6d697474656443616e6469646174655265636569707404044801300008012864657363726970746f725905015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74736905015043616e646964617465436f6d6d69746d656e7473000059050c4c706f6c6b61646f745f7072696d6974697665730876364c43616e64696461746544657363726970746f7204044801300024011c706172615f6964b9020108496400013072656c61795f706172656e7430010448000120636f6c6c61746f725d050128436f6c6c61746f7249640001787065727369737465645f76616c69646174696f6e5f646174615f6861736830011048617368000120706f765f6861736830011048617368000130657261737572655f726f6f74300110486173680001247369676e617475726561050144436f6c6c61746f725369676e6174757265000124706172615f686561643001104861736800015076616c69646174696f6e5f636f64655f686173686505014856616c69646174696f6e436f64654861736800005d05104c706f6c6b61646f745f7072696d69746976657308763630636f6c6c61746f725f617070185075626c696300000400e4013c737232353531393a3a5075626c696300006105104c706f6c6b61646f745f7072696d69746976657308763630636f6c6c61746f725f617070245369676e617475726500000400a5030148737232353531393a3a5369676e6174757265000065050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665734856616c69646174696f6e436f6465486173680000040030011048617368000069050c4c706f6c6b61646f745f7072696d6974697665730876365043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d657373616765736d0501385570776172644d6573736167657300014c686f72697a6f6e74616c5f6d6573736167657371050148486f72697a6f6e74616c4d6573736167657300014c6e65775f76616c69646174696f6e5f636f64657d0501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746185050120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e00006d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400a90101185665633c543e000071050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017505045300000400790501185665633c543e000075050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401b90200080124726563697069656e74b902010849640001106461746134015073705f7374643a3a7665633a3a5665633c75383e000079050000027505007d0504184f7074696f6e0404540181050108104e6f6e6500000010536f6d6504008105000001000081050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040034011c5665633c75383e000085050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040034011c5665633c75383e000089050000028d05008d050c4c706f6c6b61646f745f7072696d6974697665730876364c56616c69646974794174746573746174696f6e00010820496d706c6963697404004905014856616c696461746f725369676e6174757265000100204578706c6963697404004905014856616c696461746f725369676e617475726500020000910500000295050095050c4c706f6c6b61646f745f7072696d6974697665730876364c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173689905013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e74739d0501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e000099050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e64696461746548617368000004003001104861736800009d05000002a10500a1050000040ca5054505490500a5050c4c706f6c6b61646f745f7072696d697469766573087636404469737075746553746174656d656e740001081456616c69640400a905016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c69640400b105016c496e76616c69644469737075746553746174656d656e744b696e6400010000a9050c4c706f6c6b61646f745f7072696d6974697665730876366456616c69644469737075746553746174656d656e744b696e64000114204578706c696369740000003c4261636b696e675365636f6e646564040030011048617368000100304261636b696e6756616c696404003001104861736800020040417070726f76616c436865636b696e6700030088417070726f76616c436865636b696e674d756c7469706c6543616e646964617465730400ad0501485665633c43616e646964617465486173683e00040000ad05000002990500b1050c4c706f6c6b61646f745f7072696d6974697665730876366c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c6963697400000000b505106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400012458666f7263655f7365745f63757272656e745f636f646508011070617261b90201185061726149640001206e65775f636f64658105013856616c69646174696f6e436f64650000049c536565205b6050616c6c65743a3a666f7263655f7365745f63757272656e745f636f6465605d2e58666f7263655f7365745f63757272656e745f6865616408011070617261b90201185061726149640001206e65775f686561648505012048656164446174610001049c536565205b6050616c6c65743a3a666f7263655f7365745f63757272656e745f68656164605d2e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261b90201185061726149640001206e65775f636f64658105013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100144426c6f636b4e756d626572466f723c543e000204b0536565205b6050616c6c65743a3a666f7263655f7363686564756c655f636f64655f75706772616465605d2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261b90201185061726149640001206e65775f6865616485050120486561644461746100030490536565205b6050616c6c65743a3a666f7263655f6e6f74655f6e65775f68656164605d2e48666f7263655f71756575655f616374696f6e04011070617261b90201185061726149640004048c536565205b6050616c6c65743a3a666f7263655f71756575655f616374696f6e605d2e6c6164645f747275737465645f76616c69646174696f6e5f636f646504013c76616c69646174696f6e5f636f64658105013856616c69646174696f6e436f6465000504b0536565205b6050616c6c65743a3a6164645f747275737465645f76616c69646174696f6e5f636f6465605d2e6c706f6b655f756e757365645f76616c69646174696f6e5f636f646504015076616c69646174696f6e5f636f64655f686173686505014856616c69646174696f6e436f646548617368000604b0536565205b6050616c6c65743a3a706f6b655f756e757365645f76616c69646174696f6e5f636f6465605d2e6c696e636c7564655f7076665f636865636b5f73746174656d656e7408011073746d74b9050144507666436865636b53746174656d656e740001247369676e61747572654905014856616c696461746f725369676e6174757265000704b0536565205b6050616c6c65743a3a696e636c7564655f7076665f636865636b5f73746174656d656e74605d2e74666f7263655f7365745f6d6f73745f726563656e745f636f6e7465787408011070617261b902011850617261496400011c636f6e74657874100144426c6f636b4e756d626572466f723c543e000804b8536565205b6050616c6c65743a3a666f7263655f7365745f6d6f73745f726563656e745f636f6e74657874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9050c4c706f6c6b61646f745f7072696d69746976657308763644507666436865636b53746174656d656e740000100118616363657074780110626f6f6c00011c7375626a6563746505014856616c69646174696f6e436f64654861736800013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c76616c696461746f725f696e6465784505013856616c696461746f72496e6465780000bd05106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000478536565205b6050616c6c65743a3a666f7263655f617070726f7665605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec105106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400012c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e74b902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000049c536565205b6050616c6c65743a3a68726d705f696e69745f6f70656e5f6368616e6e656c605d2e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e646572b9020118506172614964000104a4536565205b6050616c6c65743a3a68726d705f6163636570745f6f70656e5f6368616e6e656c605d2e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f6964c505013448726d704368616e6e656c49640002048c536565205b6050616c6c65743a3a68726d705f636c6f73655f6368616e6e656c605d2e40666f7263655f636c65616e5f68726d700c011070617261b902011850617261496400012c6e756d5f696e626f756e6410010c7533320001306e756d5f6f7574626f756e6410010c75333200030484536565205b6050616c6c65743a3a666f7263655f636c65616e5f68726d70605d2e5c666f7263655f70726f636573735f68726d705f6f70656e0401206368616e6e656c7310010c753332000404a0536565205b6050616c6c65743a3a666f7263655f70726f636573735f68726d705f6f70656e605d2e60666f7263655f70726f636573735f68726d705f636c6f73650401206368616e6e656c7310010c753332000504a4536565205b6050616c6c65743a3a666f7263655f70726f636573735f68726d705f636c6f7365605d2e6068726d705f63616e63656c5f6f70656e5f726571756573740801286368616e6e656c5f6964c505013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c753332000604a4536565205b6050616c6c65743a3a68726d705f63616e63656c5f6f70656e5f72657175657374605d2e5c666f7263655f6f70656e5f68726d705f6368616e6e656c10011873656e646572b9020118506172614964000124726563697069656e74b90201185061726149640001306d61785f636170616369747910010c7533320001406d61785f6d6573736167655f73697a6510010c753332000704a0536565205b6050616c6c65743a3a666f7263655f6f70656e5f68726d705f6368616e6e656c605d2e6065737461626c6973685f73797374656d5f6368616e6e656c08011873656e646572b9020118506172614964000124726563697069656e74b9020118506172614964000804a4536565205b6050616c6c65743a3a65737461626c6973685f73797374656d5f6368616e6e656c605d2e54706f6b655f6368616e6e656c5f6465706f7369747308011873656e646572b9020118506172614964000124726563697069656e74b902011850617261496400090498536565205b6050616c6c65743a3a706f6b655f6368616e6e656c5f6465706f73697473605d2e7465737461626c6973685f6368616e6e656c5f776974685f73797374656d04014c7461726765745f73797374656d5f636861696eb9020118506172614964000a04b8536565205b6050616c6c65743a3a65737461626c6973685f6368616e6e656c5f776974685f73797374656d605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572b90201084964000124726563697069656e74b902010849640000c905106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c65741043616c6c04045400010438666f7263655f756e667265657a650000047c536565205b6050616c6c65743a3a666f7263655f756e667265657a65605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd05146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c65741043616c6c040454000104707265706f72745f646973707574655f6c6f73745f756e7369676e6564080134646973707574655f70726f6f66d1050144426f783c4469737075746550726f6f663e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f66000004b4536565205b6050616c6c65743a3a7265706f72745f646973707574655f6c6f73745f756e7369676e6564605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed105104c706f6c6b61646f745f7072696d69746976657308763620736c617368696e67304469737075746550726f6f66000010012474696d655f736c6f74d5050140446973707574657354696d65536c6f740001106b696e64d905014c536c617368696e674f6666656e63654b696e6400013c76616c696461746f725f696e6465784505013856616c696461746f72496e64657800013076616c696461746f725f69644102012c56616c696461746f7249640000d505104c706f6c6b61646f745f7072696d69746976657308763620736c617368696e6740446973707574657354696d65536c6f74000008013473657373696f6e5f696e64657810013053657373696f6e496e64657800013863616e6469646174655f686173689905013443616e646964617465486173680000d905104c706f6c6b61646f745f7072696d69746976657308763620736c617368696e674c536c617368696e674f6666656e63654b696e6400010828466f72496e76616c696400000030416761696e737456616c696400010000dd05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001242072656769737465720c01086964b902011850617261496400013067656e657369735f6865616485050120486561644461746100013c76616c69646174696f6e5f636f64658105013856616c69646174696f6e436f646500000464536565205b6050616c6c65743a3a7265676973746572605d2e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0001086964b902011850617261496400013067656e657369735f6865616485050120486561644461746100013c76616c69646174696f6e5f636f64658105013856616c69646174696f6e436f64650001047c536565205b6050616c6c65743a3a666f7263655f7265676973746572605d2e28646572656769737465720401086964b90201185061726149640002046c536565205b6050616c6c65743a3a64657265676973746572605d2e10737761700801086964b90201185061726149640001146f74686572b902011850617261496400030454536565205b6050616c6c65743a3a73776170605d2e2c72656d6f76655f6c6f636b04011070617261b902011850617261496400040470536565205b6050616c6c65743a3a72656d6f76655f6c6f636b605d2e1c7265736572766500050460536565205b6050616c6c65743a3a72657365727665605d2e206164645f6c6f636b04011070617261b902011850617261496400060464536565205b6050616c6c65743a3a6164645f6c6f636b605d2e547363686564756c655f636f64655f7570677261646508011070617261b90201185061726149640001206e65775f636f64658105013856616c69646174696f6e436f646500070498536565205b6050616c6c65743a3a7363686564756c655f636f64655f75706772616465605d2e407365745f63757272656e745f6865616408011070617261b90201185061726149640001206e65775f6865616485050120486561644461746100080484536565205b6050616c6c65743a3a7365745f63757272656e745f68656164605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee105105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261b90201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00000470536565205b6050616c6c65743a3a666f7263655f6c65617365605d2e40636c6561725f616c6c5f6c656173657304011070617261b902011850617261496400010484536565205b6050616c6c65743a3a636c6561725f616c6c5f6c6561736573605d2e3c747269676765725f6f6e626f61726404011070617261b902011850617261496400020480536565205b6050616c6c65743a3a747269676765725f6f6e626f617264605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6e15010144426c6f636b4e756d626572466f723c543e0001486c656173655f706572696f645f696e646578150101404c65617365506572696f644f663c543e00000470536565205b6050616c6c65743a3a6e65775f61756374696f6e605d2e0c62696414011070617261e905011850617261496400013461756374696f6e5f696e6465781501013041756374696f6e496e64657800012866697273745f736c6f74150101404c65617365506572696f644f663c543e0001246c6173745f736c6f74150101404c65617365506572696f644f663c543e000118616d6f756e74f4013042616c616e63654f663c543e00010450536565205b6050616c6c65743a3a626964605d2e3863616e63656c5f61756374696f6e0002047c536565205b6050616c6c65743a3a63616e63656c5f61756374696f6e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee905000006b90200ed05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012418637265617465180114696e646578e905011850617261496400010c636170f4013042616c616e63654f663c543e00013066697273745f706572696f64150101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64150101404c65617365506572696f644f663c543e00010c656e6415010144426c6f636b4e756d626572466f723c543e0001207665726966696572f105014c4f7074696f6e3c4d756c74695369676e65723e0000045c536565205b6050616c6c65743a3a637265617465605d2e28636f6e747269627574650c0114696e646578e905011850617261496400011476616c7565f4013042616c616e63654f663c543e0001247369676e61747572659d0301584f7074696f6e3c4d756c74695369676e61747572653e0001046c536565205b6050616c6c65743a3a636f6e74726962757465605d2e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e646578e905011850617261496400020464536565205b6050616c6c65743a3a7769746864726177605d2e18726566756e64040114696e646578e90501185061726149640003045c536565205b6050616c6c65743a3a726566756e64605d2e20646973736f6c7665040114696e646578e905011850617261496400040464536565205b6050616c6c65743a3a646973736f6c7665605d2e1065646974180114696e646578e905011850617261496400010c636170f4013042616c616e63654f663c543e00013066697273745f706572696f64150101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64150101404c65617365506572696f644f663c543e00010c656e6415010144426c6f636b4e756d626572466f723c543e0001207665726966696572f105014c4f7074696f6e3c4d756c74695369676e65723e00050454536565205b6050616c6c65743a3a65646974605d2e206164645f6d656d6f080114696e646578b90201185061726149640001106d656d6f34011c5665633c75383e00060464536565205b6050616c6c65743a3a6164645f6d656d6f605d2e10706f6b65040114696e646578b902011850617261496400070454536565205b6050616c6c65743a3a706f6b65605d2e38636f6e747269627574655f616c6c080114696e646578e90501185061726149640001247369676e61747572659d0301584f7074696f6e3c4d756c74695369676e61747572653e0008047c536565205b6050616c6c65743a3a636f6e747269627574655f616c6c605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef10504184f7074696f6e04045401f5050108104e6f6e6500000010536f6d650400f5050000010000f505082873705f72756e74696d652c4d756c74695369676e657200010c1c456432353531390400d8013c656432353531393a3a5075626c69630000001c537232353531390400e4013c737232353531393a3a5075626c696300010014456364736104005102013465636473613a3a5075626c696300020000f9050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e666967fd05015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e0000049c536565205b6050616c6c65743a3a636f6e74726f6c5f6175746f5f6d6967726174696f6e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974730106013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b050601404d6967726174696f6e5461736b3c543e00010484536565205b6050616c6c65743a3a636f6e74696e75655f6d696772617465605d2e486d6967726174655f637573746f6d5f746f700801106b657973a90101305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c7533320002048c536565205b6050616c6c65743a3a6d6967726174655f637573746f6d5f746f70605d2e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7434011c5665633c75383e0001286368696c645f6b657973a90101305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200030494536565205b6050616c6c65743a3a6d6967726174655f637573746f6d5f6368696c64605d2e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974730106013c4d6967726174696f6e4c696d69747300040498536565205b6050616c6c65743a3a7365745f7369676e65645f6d61785f6c696d697473605d2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f700906013450726f67726573734f663c543e00013870726f67726573735f6368696c640906013450726f67726573734f663c543e0005048c536565205b6050616c6c65743a3a666f7263655f7365745f70726f6772657373605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd0504184f7074696f6e0404540101060108104e6f6e6500000010536f6d6504000106000001000001060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c753332000005060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f700906013450726f67726573734f663c543e00013870726f67726573735f6368696c640906013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c753332000009060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b657904000d060164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c657465000200000d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000011060c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001381073656e640801106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676515060154426f783c56657273696f6e656458636d3c28293e3e00000454536565205b6050616c6c65743a3a73656e64605d2e3c74656c65706f72745f6173736574731001106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727969010158426f783c56657273696f6e65644c6f636174696f6e3e0001186173736574730d070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c75333200010480536565205b6050616c6c65743a3a74656c65706f72745f617373657473605d2e5c726573657276655f7472616e736665725f6173736574731001106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727969010158426f783c56657273696f6e65644c6f636174696f6e3e0001186173736574730d070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000204a0536565205b6050616c6c65743a3a726573657276655f7472616e736665725f617373657473605d2e1c6578656375746508011c6d657373616765110701b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f77656967687424011857656967687400030460536565205b6050616c6c65743a3a65786563757465605d2e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e31010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00040488536565205b6050616c6c65743a3a666f7263655f78636d5f76657273696f6e605d2e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e8d0201484f7074696f6e3c58636d56657273696f6e3e000504a8536565205b6050616c6c65743a3a666f7263655f64656661756c745f78636d5f76657273696f6e605d2e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e69010158426f783c56657273696f6e65644c6f636174696f6e3e000604bc536565205b6050616c6c65743a3a666f7263655f7375627363726962655f76657273696f6e5f6e6f74696679605d2e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e69010158426f783c56657273696f6e65644c6f636174696f6e3e000704c4536565205b6050616c6c65743a3a666f7263655f756e7375627363726962655f76657273696f6e5f6e6f74696679605d2e7c6c696d697465645f726573657276655f7472616e736665725f6173736574731401106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727969010158426f783c56657273696f6e65644c6f636174696f6e3e0001186173736574730d070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974c106012c5765696768744c696d6974000804c0536565205b6050616c6c65743a3a6c696d697465645f726573657276655f7472616e736665725f617373657473605d2e5c6c696d697465645f74656c65706f72745f6173736574731401106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727969010158426f783c56657273696f6e65644c6f636174696f6e3e0001186173736574730d070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974c106012c5765696768744c696d6974000904a0536565205b6050616c6c65743a3a6c696d697465645f74656c65706f72745f617373657473605d2e40666f7263655f73757370656e73696f6e04012473757370656e646564780110626f6f6c000a0484536565205b6050616c6c65743a3a666f7263655f73757370656e73696f6e605d2e3c7472616e736665725f6173736574731401106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727969010158426f783c56657273696f6e65644c6f636174696f6e3e0001186173736574730d070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974c106012c5765696768744c696d6974000b0480536565205b6050616c6c65743a3a7472616e736665725f617373657473605d2e30636c61696d5f6173736574730801186173736574730d070150426f783c56657273696f6e65644173736574733e00012c62656e656669636961727969010158426f783c56657273696f6e65644c6f636174696f6e3e000c0474536565205b6050616c6c65743a3a636c61696d5f617373657473605d2e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c01106465737469010158426f783c56657273696f6e65644c6f636174696f6e3e0001186173736574730d070150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f747970653d070144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f696441070154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f747970653d070144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737415060154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d6974c106012c5765696768744c696d6974000d04d0536565205b6050616c6c65743a3a7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1506080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001906015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304006506015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400c506015076343a3a58636d3c52756e74696d6543616c6c3e0004000019060c0c78636d0876320c58636d042c52756e74696d6543616c6c000004001d0601745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e00001d0600000221060021060c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404002506012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404002506012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404002506012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696428011c51756572794964000120726573706f6e73653d060120526573706f6e73650001286d61785f77656967687428010c753634000300345472616e7366657241737365740801186173736574732506012c4d756c746941737365747300012c62656e65666963696172796d0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574732506012c4d756c7469417373657473000110646573746d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f747970654d0601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c51060168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721501010c7533320001406d61785f6d6573736167655f73697a651501010c7533320001306d61785f63617061636974791501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721501010c75333200011873656e6465721501010c753332000124726563697069656e741501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040071010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696428011c51756572794964000110646573746d0101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687428010c753634000c00304465706f73697441737365740c0118617373657473550601404d756c7469417373657446696c7465720001286d61785f6173736574731501010c75333200012c62656e65666963696172796d0101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473550601404d756c7469417373657446696c7465720001286d61785f6173736574731501010c753332000110646573746d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e000e003445786368616e6765417373657408011067697665550601404d756c7469417373657446696c74657200011c726563656976652506012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473550601404d756c7469417373657446696c74657200011c726573657276656d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473550601404d756c7469417373657446696c746572000110646573746d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696428011c51756572794964000110646573746d0101344d756c74694c6f636174696f6e000118617373657473550601404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687428010c75363400120030427579457865637574696f6e080110666565732d0601284d756c746941737365740001307765696768745f6c696d69746106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001906014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001906014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574732506012c4d756c74694173736574730001187469636b65746d0101344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f77656967687428010c753634001a0048556e73756273637269626556657273696f6e001b00002506100c78636d087632286d756c746961737365742c4d756c7469417373657473000004002906013c5665633c4d756c746941737365743e000029060000022d06002d06100c78636d087632286d756c74696173736574284d756c74694173736574000008010869643106011c4173736574496400010c66756e3506012c46756e676962696c69747900003106100c78636d087632286d756c746961737365741c4173736574496400010820436f6e637265746504006d0101344d756c74694c6f636174696f6e000000204162737472616374040034011c5665633c75383e000100003506100c78636d087632286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400f40110753132380000002c4e6f6e46756e6769626c650400390601344173736574496e7374616e6365000100003906100c78636d087632286d756c74696173736574344173736574496e7374616e636500011c24556e646566696e656400000014496e6465780400f401107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804003103011c5b75383b20385d0003001c417272617931360400c001205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050010426c6f62040034011c5665633c75383e000600003d060c0c78636d08763220526573706f6e7365000110104e756c6c0000001841737365747304002506012c4d756c74694173736574730001003c457865637574696f6e526573756c740400410601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e00030000410604184f7074696f6e0404540145060108104e6f6e6500000010536f6d65040045060000010000450600000408104906004906100c78636d08763218747261697473144572726f72000168204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300444d756c74694c6f636174696f6e46756c6c000400684d756c74694c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e73697665001400105472617004002c010c7536340015004c556e68616e646c656458636d56657273696f6e001600485765696768744c696d69745265616368656404002c01185765696768740017001c426172726965720018004c5765696768744e6f74436f6d70757461626c65001900004d060c0c78636d087632284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d0003000051060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656434011c5665633c75383e00005506100c78636d087632286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504002506012c4d756c74694173736574730000001057696c6404005906013857696c644d756c74694173736574000100005906100c78636d087632286d756c746961737365743857696c644d756c746941737365740001080c416c6c00000014416c6c4f6608010869643106011c4173736574496400010c66756e5d06013c57696c6446756e676962696c697479000100005d06100c78636d087632286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000061060c0c78636d0876322c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040028010c7536340001000065060c0c78636d0876330c58636d041043616c6c00000400690601585665633c496e737472756374696f6e3c43616c6c3e3e000069060000026d06006d060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404007106012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007106012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007106012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e736585060120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572ad0601544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574737106012c4d756c746941737365747300012c62656e6566696369617279090101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737106012c4d756c746941737365747300011064657374090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e644d0601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c5106014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721501010c7533320001406d61785f6d6573736167655f73697a651501010c7533320001306d61785f63617061636974791501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721501010c75333200011873656e6465721501010c753332000124726563697069656e741501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04000d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400b10601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473b50601404d756c7469417373657446696c74657200012c62656e6566696369617279090101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473b50601404d756c7469417373657446696c74657200011064657374090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e000e003445786368616e676541737365740c011067697665b50601404d756c7469417373657446696c74657200011077616e747106012c4d756c746941737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473b50601404d756c7469417373657446696c74657200011c72657365727665090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473b50601404d756c7469417373657446696c74657200011064657374090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fb10601445175657279526573706f6e7365496e666f000118617373657473b50601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573790601284d756c746941737365740001307765696768745f6c696d6974c106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006506012458636d3c43616c6c3e0015002c536574417070656e64697804006506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737106012c4d756c74694173736574730001187469636b6574090101344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404007106012c4d756c7469417373657473001c002c457870656374417373657404007106012c4d756c7469417373657473001d00304578706563744f726967696e0400ad0601544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400890601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400a50601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666fb10601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781501010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f721501010c75333200013c6d696e5f63726174655f6d696e6f721501010c753332002200505265706f72745472616e736163745374617475730400b10601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400110101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b1d0101244e6574776f726b496400012c64657374696e6174696f6e0d010154496e746572696f724d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e002600244c6f636b41737365740801146173736574790601284d756c74694173736574000120756e6c6f636b6572090101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574790601284d756c74694173736574000118746172676574090101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574790601284d756c746941737365740001146f776e6572090101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574790601284d756c746941737365740001186c6f636b6572090101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400090101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974c106012c5765696768744c696d6974000130636865636b5f6f726967696ead0601544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00007106100c78636d087633286d756c746961737365742c4d756c7469417373657473000004007506013c5665633c4d756c746941737365743e000075060000027906007906100c78636d087633286d756c74696173736574284d756c74694173736574000008010869642d01011c4173736574496400010c66756e7d06012c46756e676962696c69747900007d06100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400f40110753132380000002c4e6f6e46756e6769626c650400810601344173736574496e7374616e6365000100008106100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400f401107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804003103011c5b75383b20385d0003001c417272617931360400c001205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000085060c0c78636d08763320526573706f6e7365000118104e756c6c0000001841737365747304007106012c4d756c74694173736574730001003c457865637574696f6e526573756c740400890601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040095060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400a50601384d617962654572726f72436f646500050000890604184f7074696f6e040454018d060108104e6f6e6500000010536f6d6504008d0600000100008d0600000408109106009106100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e73697665001400105472617004002c010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002401185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d69740027000095060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019906045300000400a10601185665633c543e000099060c0c78636d0876332850616c6c6574496e666f0000180114696e6465781501010c7533320001106e616d659d060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d659d060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f721501010c7533320001146d696e6f721501010c75333200011470617463681501010c75333200009d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000a106000002990600a5060c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f720400a906018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f720400a906018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e00020000a9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000ad0604184f7074696f6e0404540109010108104e6f6e6500000010536f6d65040009010000010000b1060c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e090101344d756c74694c6f636174696f6e00012071756572795f696428011c517565727949640001286d61785f7765696768742401185765696768740000b506100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504007106012c4d756c74694173736574730000001057696c640400b906013857696c644d756c7469417373657400010000b906100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f6608010869642d01011c4173736574496400010c66756ebd06013c57696c6446756e676962696c69747900010028416c6c436f756e74656404001501010c75333200020030416c6c4f66436f756e7465640c010869642d01011c4173736574496400010c66756ebd06013c57696c6446756e676962696c697479000114636f756e741501010c75333200030000bd06100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000c1060c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040024011857656967687400010000c5060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400c90601585665633c496e737472756374696f6e3c43616c6c3e3e0000c906000002cd0600cd060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400d1060118417373657473000000545265736572766541737365744465706f73697465640400d1060118417373657473000100585265636569766554656c65706f7274656441737365740400d1060118417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e7365e5060120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572f90601404f7074696f6e3c4c6f636174696f6e3e000300345472616e736665724173736574080118617373657473d106011841737365747300012c62656e6566696369617279310101204c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473d106011841737365747300011064657374310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e644d0601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c5106014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721501010c7533320001406d61785f6d6573736167655f73697a651501010c7533320001306d61785f63617061636974791501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721501010c75333200011873656e6465721501010c753332000124726563697069656e741501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040035010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400fd0601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574730107012c417373657446696c74657200012c62656e6566696369617279310101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574730107012c417373657446696c74657200011064657374310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e000e003445786368616e676541737365740c0110676976650107012c417373657446696c74657200011077616e74d106011841737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574730107012c417373657446696c74657200011c72657365727665310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574730107012c417373657446696c74657200011064657374310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666ffd0601445175657279526573706f6e7365496e666f0001186173736574730107012c417373657446696c74657200120030427579457865637574696f6e08011066656573d906011441737365740001307765696768745f6c696d6974c106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400c506012458636d3c43616c6c3e0015002c536574417070656e6469780400c506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473d10601184173736574730001187469636b6574310101204c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400d1060118417373657473001c002c45787065637441737365740400d1060118417373657473001d00304578706563744f726967696e0400f90601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400890601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400a50601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666ffd0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781501010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f721501010c75333200013c6d696e5f63726174655f6d696e6f721501010c753332002200505265706f72745472616e736163745374617475730400fd0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e04003d0101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b450101244e6574776f726b496400012c64657374696e6174696f6e35010140496e746572696f724c6f636174696f6e00010c78636dc506011c58636d3c28293e002600244c6f636b41737365740801146173736574d90601144173736574000120756e6c6f636b6572310101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574d90601144173736574000118746172676574310101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574d906011441737365740001146f776e6572310101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574d906011441737365740001186c6f636b6572310101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400310101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974c106012c5765696768744c696d6974000130636865636b5f6f726967696ef90601404f7074696f6e3c4c6f636174696f6e3e002f0000d106102c73746167696e675f78636d0876341461737365741841737365747300000400d50601285665633c41737365743e0000d506000002d90600d906102c73746167696e675f78636d087634146173736574144173736574000008010869646501011c4173736574496400010c66756edd06012c46756e676962696c6974790000dd06102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400f40110753132380000002c4e6f6e46756e6769626c650400e10601344173736574496e7374616e636500010000e106102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400f401107531323800010018417272617934040044011c5b75383b20345d0002001841727261793804003103011c5b75383b20385d0003001c417272617931360400c001205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000e5060c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400d10601184173736574730001003c457865637574696f6e526573756c740400890601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400e9060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400a50601384d617962654572726f72436f646500050000e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f50601185665633c543e0000ed060c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e6465781501010c7533320001106e616d65f1060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65f1060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f721501010c7533320001146d696e6f721501010c75333200011470617463681501010c7533320000f1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000f506000002ed0600f90604184f7074696f6e0404540131010108104e6f6e6500000010536f6d65040031010000010000fd060c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e310101204c6f636174696f6e00012071756572795f696428011c517565727949640001286d61785f77656967687424011857656967687400000107102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400d10601184173736574730000001057696c6404000507012457696c644173736574000100000507102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869646501011c4173736574496400010c66756e0907013c57696c6446756e676962696c69747900010028416c6c436f756e74656404001501010c75333200020030416c6c4f66436f756e7465640c010869646501011c4173736574496400010c66756e0907013c57696c6446756e676962696c697479000114636f756e741501010c753332000300000907102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100000d07080c78636d3c56657273696f6e656441737365747300010c08563204002506013c76323a3a4d756c746941737365747300010008563304007106013c76333a3a4d756c74694173736574730003000856340400d106012876343a3a417373657473000400001107080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563204001507015076323a3a58636d3c52756e74696d6543616c6c3e00020008563304002507015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404003107015076343a3a58636d3c52756e74696d6543616c6c3e0004000015070c0c78636d0876320c58636d042c52756e74696d6543616c6c00000400190701745665633c496e737472756374696f6e3c52756e74696d6543616c6c3e3e000019070000021d07001d070c0c78636d0876322c496e737472756374696f6e042c52756e74696d6543616c6c000170345769746864726177417373657404002506012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404002506012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404002506012c4d756c7469417373657473000200345175657279526573706f6e73650c012071756572795f696428011c51756572794964000120726573706f6e73653d060120526573706f6e73650001286d61785f77656967687428010c753634000300345472616e7366657241737365740801186173736574732506012c4d756c746941737365747300012c62656e65666963696172796d0101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574732506012c4d756c7469417373657473000110646573746d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f747970654d0601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428010c75363400011063616c6c21070168446f75626c65456e636f6465643c52756e74696d6543616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721501010c7533320001406d61785f6d6573736167655f73697a651501010c7533320001306d61785f63617061636974791501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721501010c75333200011873656e6465721501010c753332000124726563697069656e741501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040071010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720c012071756572795f696428011c51756572794964000110646573746d0101344d756c74694c6f636174696f6e00014c6d61785f726573706f6e73655f77656967687428010c753634000c00304465706f73697441737365740c0118617373657473550601404d756c7469417373657446696c7465720001286d61785f6173736574731501010c75333200012c62656e65666963696172796d0101344d756c74694c6f636174696f6e000d004c4465706f736974526573657276654173736574100118617373657473550601404d756c7469417373657446696c7465720001286d61785f6173736574731501010c753332000110646573746d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e000e003445786368616e6765417373657408011067697665550601404d756c7469417373657446696c74657200011c726563656976652506012c4d756c7469417373657473000f005c496e6974696174655265736572766557697468647261770c0118617373657473550601404d756c7469417373657446696c74657200011c726573657276656d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473550601404d756c7469417373657446696c746572000110646573746d0101344d756c74694c6f636174696f6e00010c78636d1906011c58636d3c28293e001100305175657279486f6c64696e6710012071756572795f696428011c51756572794964000110646573746d0101344d756c74694c6f636174696f6e000118617373657473550601404d756c7469417373657446696c74657200014c6d61785f726573706f6e73655f77656967687428010c75363400120030427579457865637574696f6e080110666565732d0601284d756c746941737365740001307765696768745f6c696d69746106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204001507014058636d3c52756e74696d6543616c6c3e0015002c536574417070656e64697804001507014058636d3c52756e74696d6543616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574732506012c4d756c74694173736574730001187469636b65746d0101344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f77656967687428010c753634001a0048556e73756273637269626556657273696f6e001b000021070c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656434011c5665633c75383e000025070c0c78636d0876330c58636d041043616c6c00000400290701585665633c496e737472756374696f6e3c43616c6c3e3e000029070000022d07002d070c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404007106012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404007106012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404007106012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e736585060120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572ad0601544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574737106012c4d756c746941737365747300012c62656e6566696369617279090101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574737106012c4d756c746941737365747300011064657374090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e644d0601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c2107014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721501010c7533320001406d61785f6d6573736167655f73697a651501010c7533320001306d61785f63617061636974791501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721501010c75333200011873656e6465721501010c753332000124726563697069656e741501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04000d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400b10601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473b50601404d756c7469417373657446696c74657200012c62656e6566696369617279090101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473b50601404d756c7469417373657446696c74657200011064657374090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e000e003445786368616e676541737365740c011067697665b50601404d756c7469417373657446696c74657200011077616e747106012c4d756c746941737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473b50601404d756c7469417373657446696c74657200011c72657365727665090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473b50601404d756c7469417373657446696c74657200011064657374090101344d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fb10601445175657279526573706f6e7365496e666f000118617373657473b50601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573790601284d756c746941737365740001307765696768745f6c696d6974c106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204002507012458636d3c43616c6c3e0015002c536574417070656e64697804002507012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574737106012c4d756c74694173736574730001187469636b6574090101344d756c74694c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404007106012c4d756c7469417373657473001c002c457870656374417373657404007106012c4d756c7469417373657473001d00304578706563744f726967696e0400ad0601544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400890601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400a50601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666fb10601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781501010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f721501010c75333200013c6d696e5f63726174655f6d696e6f721501010c753332002200505265706f72745472616e736163745374617475730400b10601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400110101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b1d0101244e6574776f726b496400012c64657374696e6174696f6e0d010154496e746572696f724d756c74694c6f636174696f6e00010c78636d6506011c58636d3c28293e002600244c6f636b41737365740801146173736574790601284d756c74694173736574000120756e6c6f636b6572090101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574790601284d756c74694173736574000118746172676574090101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574790601284d756c746941737365740001146f776e6572090101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574790601284d756c746941737365740001186c6f636b6572090101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400090101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974c106012c5765696768744c696d6974000130636865636b5f6f726967696ead0601544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000031070c2c73746167696e675f78636d0876340c58636d041043616c6c00000400350701585665633c496e737472756374696f6e3c43616c6c3e3e0000350700000239070039070c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400d1060118417373657473000000545265736572766541737365744465706f73697465640400d1060118417373657473000100585265636569766554656c65706f7274656441737365740400d1060118417373657473000200345175657279526573706f6e736510012071756572795f696428011c51756572794964000120726573706f6e7365e5060120526573706f6e73650001286d61785f77656967687424011857656967687400011c71756572696572f90601404f7074696f6e3c4c6f636174696f6e3e000300345472616e736665724173736574080118617373657473d106011841737365747300012c62656e6566696369617279310101204c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473d106011841737365747300011064657374310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e644d0601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737424011857656967687400011063616c6c2107014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721501010c7533320001406d61785f6d6573736167655f73697a651501010c7533320001306d61785f63617061636974791501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721501010c75333200011873656e6465721501010c753332000124726563697069656e741501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040035010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400fd0601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574730107012c417373657446696c74657200012c62656e6566696369617279310101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574730107012c417373657446696c74657200011064657374310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e000e003445786368616e676541737365740c0110676976650107012c417373657446696c74657200011077616e74d106011841737365747300011c6d6178696d616c780110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574730107012c417373657446696c74657200011c72657365727665310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574730107012c417373657446696c74657200011064657374310101204c6f636174696f6e00010c78636dc506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666ffd0601445175657279526573706f6e7365496e666f0001186173736574730107012c417373657446696c74657200120030427579457865637574696f6e08011066656573d906011441737365740001307765696768745f6c696d6974c106012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204003107012458636d3c43616c6c3e0015002c536574417070656e64697804003107012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473d10601184173736574730001187469636b6574310101204c6f636174696f6e0018001054726170040028010c7536340019004053756273637269626556657273696f6e08012071756572795f696428011c5175657279496400014c6d61785f726573706f6e73655f776569676874240118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400d1060118417373657473001c002c45787065637441737365740400d1060118417373657473001d00304578706563744f726967696e0400f90601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400890601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400a50601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6534011c5665633c75383e000134726573706f6e73655f696e666ffd0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781501010c7533320001106e616d6534011c5665633c75383e00012c6d6f64756c655f6e616d6534011c5665633c75383e00012c63726174655f6d616a6f721501010c75333200013c6d696e5f63726174655f6d696e6f721501010c753332002200505265706f72745472616e736163745374617475730400fd0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e04003d0101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b450101244e6574776f726b496400012c64657374696e6174696f6e35010140496e746572696f724c6f636174696f6e00010c78636dc506011c58636d3c28293e002600244c6f636b41737365740801146173736574d90601144173736574000120756e6c6f636b6572310101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574d90601144173736574000118746172676574310101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574d906011441737365740001146f776e6572310101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574d906011441737365740001186c6f636b6572310101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177780110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400310101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974c106012c5765696768744c696d6974000130636865636b5f6f726967696ef90601404f7074696f6e3c4c6f636174696f6e3e002f00003d07105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f74655265736572766504006901014456657273696f6e65644c6f636174696f6e000300004107080c78636d4056657273696f6e65644173736574496400010808563304002d01012c76333a3a4173736574496400030008563404006501012c76343a3a417373657449640004000045070c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e490701484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e64657800000468536565205b6050616c6c65743a3a726561705f70616765605d2e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e490701484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d69742401185765696768740001048c536565205b6050616c6c65743a3a657865637574655f6f766572776569676874605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e584167677265676174654d6573736167654f726967696e0001040c556d7004004d070128556d7051756575654964000000004d070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e28556d705175657565496400010410506172610400b90201185061726149640000000051070c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e6405010144426f783c543a3a41737365744b696e643e00011072617465550701244669786564553132380000045c536565205b6050616c6c65743a3a637265617465605d2e1875706461746508012861737365745f6b696e6405010144426f783c543a3a41737365744b696e643e00011072617465550701244669786564553132380001045c536565205b6050616c6c65743a3a757064617465605d2e1872656d6f766504012861737365745f6b696e6405010144426f783c543a3a41737365744b696e643e0002045c536565205b6050616c6c65743a3a72656d6f7665605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e55070c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000059070c3070616c6c65745f62656566791870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f665d07018d01426f783c45717569766f636174696f6e50726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f6600000490536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e605d2e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f665d07018d01426f783c45717569766f636174696f6e50726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f66d1010140543a3a4b65794f776e657250726f6f66000104b4536565205b6050616c6c65743a3a7265706f72745f65717569766f636174696f6e5f756e7369676e6564605d2e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e00020480536565205b6050616c6c65743a3a7365745f6e65775f67656e65736973605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d07084873705f636f6e73656e7375735f62656566794445717569766f636174696f6e50726f6f660c184e756d6265720110084964014d02245369676e617475726501610700080114666972737465070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e6465070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e000061070c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400a903014065636473613a3a5369676e617475726500006507084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d6265720110084964014d02245369676e6174757265016107000c0128636f6d6d69746d656e7469070148436f6d6d69746d656e743c4e756d6265723e00010869644d02010849640001247369676e6174757265610701245369676e6174757265000069070c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61646d07011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f69642c013856616c696461746f72536574496400006d070c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f616400000400710701785665633c2842656566795061796c6f616449642c205665633c75383e293e000071070000027507007507000004081d03340079070c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000007d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e000081070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f746573000085070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736830011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736830011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736830011c543a3a48617368000118726573756c74890701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657489070418526573756c74080454018d0704450195070108084f6b04008d07000000000c4572720400950700000100008d070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874910701384f7074696f6e3c5765696768743e000120706179735f666565600110506179730000910704184f7074696f6e04045401240108104e6f6e6500000010536f6d6504002400000100009507082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f018d0700080124706f73745f696e666f8d070110496e666f0001146572726f7264013444697370617463684572726f7200009907105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f61646472657373dd02013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d070c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a1070c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000118404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7264013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7264013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a5070c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001442c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000908190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e38417574686f726974794164646564040124617574686f72697479000130543a3a4163636f756e744964000a047c4120757365726e616d6520617574686f72697479207761732061646465642e40417574686f7269747952656d6f766564040124617574686f72697479000130543a3a4163636f756e744964000b04844120757365726e616d6520617574686f72697479207761732072656d6f7665642e2c557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ad03012c557365726e616d653c543e000c04744120757365726e616d65207761732073657420666f72206077686f602e38557365726e616d655175657565640c010c77686f000130543a3a4163636f756e744964000120757365726e616d65ad03012c557365726e616d653c543e00012865787069726174696f6e100144426c6f636b4e756d626572466f723c543e000d0419014120757365726e616d6520776173207175657565642c20627574206077686f60206d75737420616363657074206974207072696f7220746f206065787069726174696f6e602e48507265617070726f76616c4578706972656404011477686f7365000130543a3a4163636f756e744964000e043901412071756575656420757365726e616d6520706173736564206974732065787069726174696f6e20776974686f7574206265696e6720636c61696d656420616e64207761732072656d6f7665642e485072696d617279557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ad03012c557365726e616d653c543e000f0401014120757365726e616d6520776173207365742061732061207072696d61727920616e642063616e206265206c6f6f6b65642075702066726f6d206077686f602e5c44616e676c696e67557365726e616d6552656d6f76656408010c77686f000130543a3a4163636f756e744964000120757365726e616d65ad03012c557365726e616d653c543e0010085d01412064616e676c696e6720757365726e616d652028617320696e2c206120757365726e616d6520636f72726573706f6e64696e6720746f20616e206163636f756e742074686174206861732072656d6f766564206974736c6964656e746974792920686173206265656e2072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a9070c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001143450726f78794578656375746564040118726573756c748801384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065b9030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789101010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736830013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065b9030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065b9030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040450412070726f7879207761732072656d6f7665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad070c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001102c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74c503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74c503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e74c503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1070c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900012c38426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5070c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d70757465bd07013c456c656374696f6e436f6d707574650001186f726967696e210201504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564780110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c55017468652073746f72656420736f6c7574696f6e20776173207375626d6974656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d70757465bd07013c456c656374696f6e436f6d7075746500011473636f7265a5040134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6dc107016050686173653c426c6f636b4e756d626572466f723c543e3e000108746fc107016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd07089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000c107089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400c507012828626f6f6c2c20426e2900020024456d657267656e637900030000c50700000408781000c9070c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d2c0120543a3a53636f7265000108746f2c0120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f72652c0120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd070c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e740404540001481c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564780110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f7374617465d1040124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f76656408011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400070c9841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e30526f6c6573557064617465640c0110726f6f74210201504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572210201504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72210201504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e74e904017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6eac011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465f104019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ef50401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e04584576656e7473206f6620746869732070616c6c65742ed1070c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c748801384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173090201345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d507106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e740404540001103c43616e6469646174654261636b65641000d907016443616e646964617465526563656970743c543a3a486173683e00008505012048656164446174610000dd070124436f7265496e6465780000e107012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c756465641000d907016443616e646964617465526563656970743c543a3a486173683e00008505012048656164446174610000dd070124436f7265496e6465780000e107012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c00d907016443616e646964617465526563656970743c543a3a486173683e00008505012048656164446174610000dd070124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d60585570776172644d65737361676573526563656976656408011066726f6db9020118506172614964000114636f756e7410010c753332000304f8536f6d6520757077617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d9070c4c706f6c6b61646f745f7072696d6974697665730876364043616e6469646174655265636569707404044801300008012864657363726970746f725905015843616e64696461746544657363726970746f723c483e000140636f6d6d69746d656e74735f68617368300110486173680000dd070c4c706f6c6b61646f745f7072696d69746976657308763624436f7265496e6465780000040010010c7533320000e1070c4c706f6c6b61646f745f7072696d6974697665730876362847726f7570496e6465780000040010010c7533320000e507106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740001204843757272656e74436f6465557064617465640400b9020118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e7448656164557064617465640400b9020118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c65640400b9020118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f7465640400b9020118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e5175657565640800b9020118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f6964603c507666436865636b5374617274656408006505014856616c69646174696f6e436f6465486173680000b9020118506172614964000508550154686520676976656e20706172612065697468657220696e69746961746564206f72207375627363726962656420746f20612050564620636865636b20666f722074686520676976656e2076616c69646174696f6e6c636f64652e2060636f64655f68617368602060706172615f69646040507666436865636b416363657074656408006505014856616c69646174696f6e436f6465486173680000b9020118506172614964000608110154686520676976656e2076616c69646174696f6e20636f6465207761732061636365707465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f69646040507666436865636b52656a656374656408006505014856616c69646174696f6e436f6465486173680000b9020118506172614964000708110154686520676976656e2076616c69646174696f6e20636f6465207761732072656a65637465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f696460047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e907106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e7404045400011c504f70656e4368616e6e656c52657175657374656410011873656e646572b9020118506172614964000124726563697069656e74b902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000004704f70656e2048524d50206368616e6e656c207265717565737465642e4c4f70656e4368616e6e656c43616e63656c656408013062795f70617261636861696eb90201185061726149640001286368616e6e656c5f6964c505013448726d704368616e6e656c49640001042901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e4c4f70656e4368616e6e656c416363657074656408011873656e646572b9020118506172614964000124726563697069656e74b90201185061726149640002046c4f70656e2048524d50206368616e6e656c2061636365707465642e344368616e6e656c436c6f73656408013062795f70617261636861696eb90201185061726149640001286368616e6e656c5f6964c505013448726d704368616e6e656c49640003045048524d50206368616e6e656c20636c6f7365642e5848726d704368616e6e656c466f7263654f70656e656410011873656e646572b9020118506172614964000124726563697069656e74b902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000404ac416e2048524d50206368616e6e656c20776173206f70656e65642076696120526f6f74206f726967696e2e5c48726d7053797374656d4368616e6e656c4f70656e656410011873656e646572b9020118506172614964000124726563697069656e74b902011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000504bc416e2048524d50206368616e6e656c20776173206f70656e6564207769746820612073797374656d20636861696e2e684f70656e4368616e6e656c4465706f736974735570646174656408011873656e646572b9020118506172614964000124726563697069656e74b9020118506172614964000604a0416e2048524d50206368616e6e656c2773206465706f73697473207765726520757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ed07106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144576656e7404045400010c4044697370757465496e6974696174656408009905013443616e646964617465486173680000f107013c446973707574654c6f636174696f6e000004090141206469737075746520686173206265656e20696e697469617465642e205c5b63616e64696461746520686173682c2064697370757465206c6f636174696f6e5c5d4044697370757465436f6e636c7564656408009905013443616e646964617465486173680000f507013444697370757465526573756c74000108cc4120646973707574652068617320636f6e636c7564656420666f72206f7220616761696e737420612063616e6469646174652eb4605c5b706172612069642c2063616e64696461746520686173682c206469737075746520726573756c745c5d60185265766572740400100144426c6f636b4e756d626572466f723c543e000210fc4120646973707574652068617320636f6e636c7564656420776974682073757065726d616a6f7269747920616761696e737420612063616e6469646174652e0d01426c6f636b20617574686f72732073686f756c64206e6f206c6f6e676572206275696c64206f6e20746f70206f662074686973206865616420616e642073686f756c640101696e7374656164207265766572742074686520626c6f636b2061742074686520676976656e206865696768742e20546869732073686f756c6420626520746865fc6e756d626572206f6620746865206368696c64206f6620746865206c617374206b6e6f776e2076616c696420626c6f636b20696e2074686520636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733c446973707574654c6f636174696f6e000108144c6f63616c0000001852656d6f746500010000f5070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733444697370757465526573756c740001081456616c69640000001c496e76616c696400010000f907105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e74040454000110285265676973746572656408011c706172615f6964b902011850617261496400011c6d616e61676572000130543a3a4163636f756e7449640000003044657265676973746572656404011c706172615f6964b902011850617261496400010020526573657276656408011c706172615f6964b902011850617261496400010c77686f000130543a3a4163636f756e7449640002001c5377617070656408011c706172615f6964b90201185061726149640001206f746865725f6964b9020118506172614964000300047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd07105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f640401306c656173655f706572696f641001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c656173656418011c706172615f6964b90201185061726149640001186c6561736572000130543a3a4163636f756e744964000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e00010c35014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c013461756374696f6e5f696e64657810013041756374696f6e496e6465780001306c656173655f706572696f641001404c65617365506572696f644f663c543e000118656e64696e67100144426c6f636b4e756d626572466f723c543e0000084901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f73656404013461756374696f6e5f696e64657810013041756374696f6e496e646578000104b8416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e2052657365727665640c0118626964646572000130543a3a4163636f756e74496400013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e505365636f6e642069732074686520746f74616c2e28556e7265736572766564080118626964646572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c011c706172615f6964b90201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0004085501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696eb87265736572766520627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e2c4269644163636570746564140118626964646572000130543a3a4163636f756e74496400011c706172615f6964b9020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00012866697273745f736c6f741001404c65617365506572696f644f663c543e0001246c6173745f736c6f741001404c65617365506572696f644f663c543e000504c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722e3457696e6e696e674f666673657408013461756374696f6e5f696e64657810013041756374696f6e496e646578000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e00060859015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765106d61702e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740508105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c4372656174656404011c706172615f6964b90201185061726149640000048c4372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e2c436f6e74726962757465640c010c77686f000130543a3a4163636f756e74496400012866756e645f696e646578b9020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00010470436f6e747269627574656420746f20612063726f77642073616c652e2057697468647265770c010c77686f000130543a3a4163636f756e74496400012866756e645f696e646578b9020118506172614964000118616d6f756e7418013042616c616e63654f663c543e0002049c57697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e445061727469616c6c79526566756e64656404011c706172615f6964b90201185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674b46f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e2c416c6c526566756e64656404011c706172615f6964b90201185061726149640004049c416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e24446973736f6c76656404011c706172615f6964b90201185061726149640005044846756e6420697320646973736f6c7665642e3c48616e646c65426964526573756c7408011c706172615f6964b9020118506172614964000118726573756c748801384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e1845646974656404011c706172615f6964b9020118506172614964000704c454686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e2c4d656d6f557064617465640c010c77686f000130543a3a4163636f756e74496400011c706172615f6964b90201185061726149640001106d656d6f34011c5665633c75383e0008046041206d656d6f20686173206265656e20757064617465642e3c4164646564546f4e6577526169736504011c706172615f6964b9020118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e6577526169736560047c54686520604576656e746020656e756d206f6620746869732070616c6c657409080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d707574650d0801404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f72110801204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e0d080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f0001000011080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e15080c2870616c6c65745f78636d1870616c6c6574144576656e7404045400016024417474656d7074656404011c6f7574636f6d651908015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696e310101204c6f636174696f6e00012c64657374696e6174696f6e310101204c6f636174696f6e00011c6d657373616765c506011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680001045c412058434d206d657373616765207761732073656e742e48556e6578706563746564526573706f6e73650801186f726967696e310101204c6f636174696f6e00012071756572795f69642c011c5175657279496400020c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f69642c011c51756572794964000120726573706f6e7365e5060120526573706f6e73650003085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380004085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687424011857656967687400014c6d61785f62756467657465645f77656967687424011857656967687400050c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f69642c011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800070c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696e310101204c6f636174696f6e00012071756572795f69642c011c5175657279496400014465787065637465645f6c6f636174696f6ef90601404f7074696f6e3c4c6f636174696f6e3e00080c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696e310101204c6f636174696f6e00012071756572795f69642c011c5175657279496400091c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f69642c011c51756572794964000a04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368300110483235360001186f726967696e310101204c6f636174696f6e0001186173736574730d07013c56657273696f6e6564417373657473000b04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6e310101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374d10601184173736574730001286d6573736167655f696404011c58636d48617368000c0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6e310101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000d08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6e310101204c6f636174696f6e00012071756572795f69642c011c517565727949640001146572726f729106012058636d4572726f72000e0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6e6901014456657273696f6e65644c6f636174696f6e00012071756572795f69642c011c51756572794964000f0859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696e310101204c6f636174696f6e00012071756572795f69642c011c5175657279496400101c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696e310101204c6f636174696f6e00012071756572795f69642c011c5175657279496400014065787065637465645f71756572696572310101204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572f90601404f7074696f6e3c4c6f636174696f6e3e00110c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6e310101204c6f636174696f6e000110636f7374d10601184173736574730001286d6573736167655f696404011c58636d486173680012085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6e310101204c6f636174696f6e000110636f7374d10601184173736574730001286d6573736167655f696404011c58636d486173680013043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6e310101204c6f636174696f6e000110636f7374d10601184173736574730001286d6573736167655f696404011c58636d4861736800140825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67310101204c6f636174696f6e00011066656573d1060118417373657473001504310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368300110483235360001186f726967696e310101204c6f636174696f6e0001186173736574730d07013c56657273696f6e6564417373657473001604c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00170484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741908102c73746167696e675f78636d087634187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656424011857656967687400000028496e636f6d706c657465080110757365642401185765696768740001146572726f72910601144572726f72000100144572726f720401146572726f72910601144572726f72000200001d080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643001104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e490701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f722108014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643001104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e490701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656424011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373780110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e490701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e490701484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574210810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011424426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400240118576569676874000300145969656c640004000025080c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e6405010130543a3a41737365744b696e6400011072617465550701244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e6405010130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e6405010130543a3a41737365744b696e6400010c6f6c645507012446697865645531323800010c6e657755070124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574290808306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200002d080000028000310808306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d653508016473705f72756e74696d653a3a52756e74696d65537472696e67000035080000050200390808306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736830011c543a3a48617368000134636865636b5f76657273696f6e780110626f6f6c00003d080c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2401185765696768740001246d61785f626c6f636b2401185765696768740001247065725f636c617373410801845065724469737061746368436c6173733c57656967687473506572436c6173733e000041080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454014508000c01186e6f726d616c450801045400012c6f7065726174696f6e616c45080104540001246d616e6461746f72794508010454000045080c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632401185765696768740001346d61785f65787472696e736963910701384f7074696f6e3c5765696768743e0001246d61785f746f74616c910701384f7074696f6e3c5765696768743e0001207265736572766564910701384f7074696f6e3c5765696768743e000049080c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61784d0801545065724469737061746368436c6173733c7533323e00004d080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400005108082873705f776569676874733c52756e74696d6544625765696768740000080110726561642c010c75363400011477726974652c010c75363400005508082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d653508013452756e74696d65537472696e67000124696d706c5f6e616d653508013452756e74696d65537472696e67000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069735908011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013473746174655f76657273696f6e080108753800005908040c436f77040454015d080004005d080000005d080000026108006108000004083103100065080c306672616d655f73797374656d1870616c6c6574144572726f720404540001203c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e444e6f7468696e67417574686f72697a6564000604584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400070494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657469080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d08045300000400750801185665633c543e00006d0804184f7074696f6e0404540171080108104e6f6e6500000010536f6d650400710800000100007108084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0195012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01a902244163636f756e7449640100001401206d617962655f69648401304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9501011043616c6c0001386d617962655f706572696f646963b10101944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ea902013450616c6c6574734f726967696e000075080000026d080079080c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d08083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974c1040150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974810801704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e8d02012c4f7074696f6e3c7533323e00010000810804184f7074696f6e04045401c1040108104e6f6e6500000010536f6d650400c10400000100008508083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401890801082c556e7265717565737465640801187469636b65748d08014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b65749108016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e8d02012c4f7074696f6e3c7533323e00010000890814346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e10044100044600045200044400000400180128463a3a42616c616e636500008d080000040800890800910804184f7074696f6e040454018d080108104e6f6e6500000010536f6d6504008d08000001000095080000040830100099080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e00009d080c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea1080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401a508045300000400a90801185665633c543e0000a50800000408c9012c00a908000002a50800ad080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400b10801185665633c543e0000b1080000020400b50804184f7074696f6e04045401b9080108104e6f6e6500000010536f6d650400b9080000010000b9080c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400bd0801405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400c508015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400c90801545365636f6e6461727956524650726544696765737400030000bd080c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74cd010110536c6f740001347672665f7369676e6174757265c10801305672665369676e61747572650000c108101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f667502012056726650726f6f660000c5080c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74cd010110536c6f740000c9080c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74cd010110536c6f740001347672665f7369676e6174757265c10801305672665369676e61747572650000cd08084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e000008010463d9010128287536342c2075363429000134616c6c6f7765645f736c6f7473dd010130416c6c6f776564536c6f74730000d1080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d508045300000400d90801185665633c543e0000d508000004082c1000d908000002d50800dd080c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee1080000040c00187800e5080c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee9080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401ed08045300000400f50801185665633c543e0000ed080c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964310301384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73f108011c526561736f6e730000f1080c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000f508000002ed0800f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401fd08045300000400010901185665633c543e0000fd080c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720131031c42616c616e6365011800080108696431030144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e636500000109000002fd080005090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010909045300000400190901185665633c543e000009090c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e7408084964010d091c42616c616e636501180008010869640d0901084964000118616d6f756e7418011c42616c616e636500000d090840706f6c6b61646f745f72756e74696d654452756e74696d65486f6c64526561736f6e00010820507265696d61676504001109016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e000a00485374617465547269654d6967726174696f6e04001509019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e0062000011090c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d6167650000000015090c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d6967726174650000000019090000020909001d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540121090453000004002d0901185665633c543e000021090c3c70616c6c65745f62616c616e636573147479706573204964416d6f756e74080849640125091c42616c616e63650118000801086964250901084964000118616d6f756e7418011c42616c616e6365000025090840706f6c6b61646f745f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c7304002909019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e0027000029090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e6365000000002d0900000221090031090c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3509086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100003909083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cf4013042616c616e63654f663c543e000118616374697665f4013042616c616e63654f663c543e000124756e6c6f636b696e672d0201f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f726577617264733d090194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e00003d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400090201185665633c543e00004109083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473450901b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564780110626f6f6c000045090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400f50101185665633c543e00004909083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172744d09012c4f7074696f6e3c7536343e00004d0904184f7074696f6e040454012c0108104e6f6e6500000010536f6d6504002c00000100005109000004081000005509082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616cf4011c42616c616e636500010c6f776ef4011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e7410011050616765000059090000040c100010005d09082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616cf4011c42616c616e63650001186f7468657273f801ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e00006109083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c6509018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00006509042042547265654d617008044b010004560110000400690900000069090000026d09006d090000040800100071090000027509007509083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273bd0401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273f50101385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000790900000408ac18007d090c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72090201345665633c457261496e6465783e000081090c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e6365000085090000028909008909000004081078008d09103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000170344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91090c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201ec000801206f6666656e646572ec01204f6666656e6465720001247265706f7274657273f50101345665633c5265706f727465723e0000950900000408c0340099090000029d09009d0900000408003d0200a10900000408a5093400a5090c1c73705f636f72651863727970746f244b65795479706549640000040044011c5b75383b20345d0000a9090c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742ead09083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000b109083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573b509016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f726365648d0201244f7074696f6e3c4e3e0000b5090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401d0045300000400cc01185665633c543e0000b9090c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454014902045300000400c10901185665633c543e0000c109000002490200c509083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000c9090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400090201185665633c543e0000cd09083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401050130417373657442616c616e636501182c42656e65666963696172790169012c426c6f636b4e756d6265720110245061796d656e744964012c0018012861737365745f6b696e640501012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e65666963696172796901012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573d109015c5061796d656e7453746174653c5061796d656e7449643e0000d109083c70616c6c65745f7472656173757279305061796d656e74537461746504084964012c010c1c50656e64696e6700000024417474656d7074656404010869642c01084964000100184661696c656400020000d5090c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000d90908346672616d655f737570706f72742050616c6c65744964000004003103011c5b75383b20385d0000dd090c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300020480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0003084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640004047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500050451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000604b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000704a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640008049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000904cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000a04a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000b04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742ee1090000040800910100e5090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400e90901c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400010a01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000e9090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573ed0901dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73f909015044656c65676174696f6e733c42616c616e63653e0001147072696f72fd09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000ed090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f109045300000400f50901185665633c543e0000f1090000040810950200f509000002f10900f9090c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000fd090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000010a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e9d020128436f6e76696374696f6e00012c64656c65676174696f6e73f909015044656c65676174696f6e733c42616c616e63653e0001147072696f72fd09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000050a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401090a0453000004000d0a01185665633c543e0000090a00000408910118000d0a000002090a00110a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150a0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640191013452756e74696d654f726967696e01a902184d6f6d656e7401101043616c6c0195011c42616c616e636501181454616c6c79018107244163636f756e74496401003c5363686564756c6541646472657373018001181c4f6e676f696e670400190a018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000190a0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640191013452756e74696d654f726967696e01a902184d6f6d656e7401101043616c6c0195011c42616c616e636501181454616c6c79018107244163636f756e74496401003c5363686564756c65416464726573730180002c0114747261636b9101011c547261636b49640001186f726967696ea902013452756e74696d654f726967696e00012070726f706f73616c9501011043616c6c000124656e6163746d656e74c5020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f7369741d0a016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974210a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67250a01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c798107011454616c6c79000120696e5f7175657565780110626f6f6c000114616c61726d2d0a01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e00001d0a0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000210a04184f7074696f6e040454011d0a0108104e6f6e6500000010536f6d6504001d0a0000010000250a04184f7074696f6e04045401290a0108104e6f6e6500000010536f6d650400290a0000010000290a0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e678d02014c4f7074696f6e3c426c6f636b4e756d6265723e00002d0a04184f7074696f6e04045401310a0108104e6f6e6500000010536f6d650400310a0000010000310a00000408108000350a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401390a0453000004003d0a01185665633c543e0000390a000004081018003d0a000002390a00410a000002450a00450a000004089101490a00490a0c4070616c6c65745f7265666572656e646114747970657324547261636b496e666f081c42616c616e63650118184d6f6d656e740110002401106e616d65350801302627737461746963207374720001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c4d0a0114437572766500012c6d696e5f737570706f72744d0a0114437572766500004d0a0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468ac011c50657262696c6c000114666c6f6f72ac011c50657262696c6c0001106365696cac011c50657262696c6c000000445374657070656444656372656173696e67100114626567696eac011c50657262696c6c00010c656e64ac011c50657262696c6c00011073746570ac011c50657262696c6c000118706572696f64ac011c50657262696c6c000100285265636970726f63616c0c0118666163746f72510a01204669786564493634000120785f6f6666736574510a01204669786564493634000120795f6f6666736574510a0120466978656449363400020000510a0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400550a010c6936340000550a0000050c00590a0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000134284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0a0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e610a105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f502045300000400690a01185665633c543e0000690a000002f502006d0a083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000710a0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e750a0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e790a000004087d0a8d0a007d0a0c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e747300304964656e74697479496e666f010503000c01286a756467656d656e7473810a01fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f050301304964656e74697479496e666f0000810a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401850a045300000400890a01185665633c543e0000850a0000040810990300890a000002850a008d0a04184f7074696f6e04045401ad030108104e6f6e6500000010536f6d650400ad030000010000910a0000040818950a00950a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400f50101185665633c543e0000990a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019d0a045300000400a50a01185665633c543e00009d0a04184f7074696f6e04045401a10a0108104e6f6e6500000010536f6d650400a10a0000010000a10a0c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f0c1c42616c616e63650118244163636f756e74496401001c49644669656c64012c000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c64732c011c49644669656c640000a50a0000029d0a00a90a0c3c70616c6c65745f6964656e746974791474797065734c417574686f7269747950726f70657274696573041853756666697801ad0a00080118737566666978ad0a0118537566666978000128616c6c6f636174696f6e100128416c6c6f636174696f6e0000ad0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000b10a0c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400016848546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e44546f6f4d616e7952656769737472617273000b04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000c04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000d047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000e04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479000f04d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e584a756467656d656e745061796d656e744661696c6564001004f84572726f722074686174206f6363757273207768656e20746865726520697320616e20697373756520706179696e6720666f72206a756467656d656e742e34496e76616c6964537566666978001104805468652070726f76696465642073756666697820697320746f6f206c6f6e672e504e6f74557365726e616d65417574686f72697479001204e05468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e20746f206973737565206120757365726e616d652e304e6f416c6c6f636174696f6e001304c454686520617574686f726974792063616e6e6f7420616c6c6f6361746520616e79206d6f726520757365726e616d65732e40496e76616c69645369676e6174757265001404a8546865207369676e6174757265206f6e206120757365726e616d6520776173206e6f742076616c69642e4452657175697265735369676e6174757265001504090153657474696e67207468697320757365726e616d652072657175697265732061207369676e61747572652c20627574206e6f6e65207761732070726f76696465642e3c496e76616c6964557365726e616d65001604b054686520757365726e616d6520646f6573206e6f74206d6565742074686520726571756972656d656e74732e34557365726e616d6554616b656e0017047854686520757365726e616d6520697320616c72656164792074616b656e2e284e6f557365726e616d65001804985468652072657175657374656420757365726e616d6520646f6573206e6f742065786973742e284e6f74457870697265640019042d0154686520757365726e616d652063616e6e6f7420626520666f72636566756c6c792072656d6f76656420626563617573652069742063616e207374696c6c2062652061636365707465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb50a00000408b90a1800b90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd0a045300000400c10a01185665633c543e0000bd0a083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501b9032c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f74797065b903012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000c10a000002bd0a00c50a00000408c90a1800c90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd0a045300000400d10a01185665633c543e0000cd0a083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801302c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683001104861736800011868656967687410012c426c6f636b4e756d6265720000d10a000002cd0a00d50a0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90a00000408000400dd0a083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656ec503015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73e10a018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000e10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400f50101185665633c543e0000e50a0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704dc4d756c7469736967206f7065726174696f6e206e6f7420666f756e64207768656e20617474656d7074696e6720746f2063616e63656c2e204e6f744f776e65720008042d014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c2069742e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee90a083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573ed0a0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000ed0a083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001182050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200050000f10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000f50a0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900012c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef90a085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573fd0a01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000fd0a085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000010b0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050b089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e08244163636f756e74496400284d617857696e6e65727300000c0120737570706f727473090b0198426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572733e00011473636f7265a5040134456c656374696f6e53636f726500011c636f6d70757465bd07013c456c656374696f6e436f6d707574650000090b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b504045300000400b10401185665633c543e00000d0b089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e7449640100304461746150726f766964657201110b00080118766f74657273150b01445665633c4461746150726f76696465723e00011c74617267657473f50101385665633c4163636f756e7449643e0000110b0000040c002c450900150b000002110b00190b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0b045300000400210b01185665633c543e00001d0b0000040ca504101000210b0000021d0b00250b0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01d9030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ed5030154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e63650000290b0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b453756d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e2d0b0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576210201504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874210201504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f75707065722c0120543a3a53636f726500011473636f72652c0120543a3a53636f72650000310b0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164210201504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c210201504f7074696f6e3c543a3a4163636f756e7449643e0000350b0000022c00390b0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c69737404003d0b01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0b0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000410b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e74657255070140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173450b01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000450b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400490b013842547265654d61703c4b2c20563e0000490b042042547265654d617008044b0110045601180004003d0a0000004d0b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6e510b0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c65735d0b015c506f6f6c526f6c65733c543a3a4163636f756e7449643e0001147374617465d1040124506f6f6c53746174650000510b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e74e904017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d6178550b013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465590b01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6d8d0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6ef50401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000550b04184f7074696f6e04045401ac0108104e6f6e6500000010536f6d650400ac0000010000590b04184f7074696f6e04045401f1040108104e6f6e6500000010536f6d650400f10400000100005d0b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74210201444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72210201444f7074696f6e3c4163636f756e7449643e00011c626f756e636572210201444f7074696f6e3c4163636f756e7449643e0000610b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e74657255070140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000650b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261690b0134556e626f6e64506f6f6c3c543e000120776974685f6572616d0b010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000690b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e00006d0b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601690b045300000400710b013842547265654d61703c4b2c20563e0000710b042042547265654d617008044b0110045601690b000400750b000000750b000002790b00790b0000040810690b007d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000810b0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400018030506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400850b0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e850b0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f72000114684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c7900040000890b0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c737461736865738d0b01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564910b0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e00008d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c104045300000400bd0401185665633c543e0000910b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400090201185665633c543e0000950b0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990b0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d626572011000b401346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73050501484173796e634261636b696e67506172616d730001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c75333200019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c75333200013c6578656375746f725f706172616d73090501384578656375746f72506172616d73000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d626572000138636f726574696d655f636f72657310010c7533320001446f6e5f64656d616e645f7265747269657310010c7533320001606f6e5f64656d616e645f71756575655f6d61785f73697a6510010c7533320001886f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6eac011c50657262696c6c0001646f6e5f64656d616e645f6665655f766172696162696c697479ac011c50657262696c6c0001486f6e5f64656d616e645f626173655f66656518011c42616c616e63650001346f6e5f64656d616e645f74746c10012c426c6f636b4e756d62657200016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d62657200016470617261735f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d6265720001507363686564756c696e675f6c6f6f6b616865616410010c75333200015c6d61785f76616c696461746f72735f7065725f636f72658d02012c4f7074696f6e3c7533323e0001386d61785f76616c696461746f72738d02012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001387076665f766f74696e675f74746c10013053657373696f6e496e6465780001806d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001546d696e696d756d5f6261636b696e675f766f74657310010c7533320001346e6f64655f66656174757265733d0501304e6f64654665617475726573000158617070726f76616c5f766f74696e675f706172616d731d050150417070726f76616c566f74696e67506172616d7300009d0b000002a10b00a10b0000040810990b00a50b106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90b000002450500ad0b000002410200b10b0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731873686172656468416c6c6f77656452656c6179506172656e7473547261636b657208104861736801302c426c6f636b4e756d626572011000080118627566666572b50b015856656344657175653c28486173682c2048617368293e0001346c61746573745f6e756d62657210012c426c6f636b4e756d6265720000b50b000002b90b00b90b00000408303000bd0b0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e68417661696c6162696c6974794269746669656c645265636f726404044e0110000801206269746669656c6439050150417661696c6162696c6974794269746669656c640001307375626d69747465645f61741001044e0000c10b0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480130044e011000200110636f7265dd070124436f7265496e646578000110686173689905013443616e6469646174654861736800012864657363726970746f725905015843616e64696461746544657363726970746f723c483e000148617661696c6162696c6974795f766f7465733d0501604269745665633c75382c204269744f726465724c7362303e00011c6261636b6572733d0501604269745665633c75382c204269744f726465724c7362303e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f7570e107012847726f7570496e6465780000c50b106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001748c556e736f727465644f724475706c696361746556616c696461746f72496e6469636573000004e856616c696461746f7220696e646963657320617265206f7574206f66206f72646572206f7220636f6e7461696e73206475706c6963617465732e98556e736f727465644f724475706c69636174654469737075746553746174656d656e74536574000104f8446973707574652073746174656d656e74207365747320617265206f7574206f66206f72646572206f7220636f6e7461696e206475706c6963617465732e8c556e736f727465644f724475706c69636174654261636b656443616e6469646174657300020419014261636b65642063616e6469646174657320617265206f7574206f66206f726465722028636f726520696e64657829206f7220636f6e7461696e206475706c6963617465732e54556e657870656374656452656c6179506172656e7400030429014120646966666572656e742072656c617920706172656e74207761732070726f766964656420636f6d706172656420746f20746865206f6e2d636861696e2073746f726564206f6e652e4457726f6e674269746669656c6453697a65000404a8417661696c6162696c697479206269746669656c642068617320756e65787065637465642073697a652e404269746669656c64416c6c5a65726f73000504804269746669656c6420636f6e7369737473206f66207a65726f73206f6e6c792e704269746669656c644475706c69636174654f72556e6f7264657265640006044d014d756c7469706c65206269746669656c6473207375626d69747465642062792073616d652076616c696461746f72206f722076616c696461746f7273206f7574206f66206f7264657220627920696e6465782e6456616c696461746f72496e6465784f75744f66426f756e64730007047856616c696461746f7220696e646578206f7574206f6620626f756e64732e60496e76616c69644269746669656c645369676e617475726500080444496e76616c6964207369676e617475726550556e7363686564756c656443616e646964617465000904ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e8043616e6469646174655363686564756c65644265666f72655061726146726565000a04310143616e646964617465207363686564756c656420646573706974652070656e64696e672063616e64696461746520616c7265616479206578697374696e6720666f722074686520706172612e4c5363686564756c65644f75744f664f72646572000b04745363686564756c656420636f726573206f7574206f66206f726465722e404865616444617461546f6f4c61726765000c04a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f646555706772616465000d0464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000e04604f757470757420636f646520697320746f6f206c6172676554446973616c6c6f77656452656c6179506172656e74000f08ec5468652063616e64696461746527732072656c61792d706172656e7420776173206e6f7420616c6c6f7765642e204569746865722069742077617325016e6f7420726563656e7420656e6f756768206f72206974206469646e277420616476616e6365206261736564206f6e20746865206c6173742070617261636861696e20626c6f636b2e44496e76616c696441737369676e6d656e7400100815014661696c656420746f20636f6d707574652067726f757020696e64657820666f722074686520636f72653a206569746865722069742773206f7574206f6620626f756e6473e86f72207468652072656c617920706172656e7420646f65736e27742062656c6f6e6720746f207468652063757272656e742073657373696f6e2e44496e76616c696447726f7570496e6465780011049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e6700120490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67001304e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e444e6f74436f6c6c61746f725369676e656400140468436f6c6c61746f7220646964206e6f74207369676e20506f562e6856616c69646174696f6e44617461486173684d69736d61746368001504c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67001604d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d657373616765730017041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e6700180411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70001904d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368001a04dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d61746368001b0855015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c7470617261206865616420696e2074686520636f6d6d69746d656e74732e6c4269746669656c645265666572656e6365734672656564436f7265001c0ca041206269746669656c642074686174207265666572656e636573206120667265656420636f72652cb865697468657220696e74656e74696f6e616c6c79206f722061732070617274206f66206120636f6e636c7564656440696e76616c696420646973707574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90b0c4c706f6c6b61646f745f7072696d6974697665730876364c536372617065644f6e436861696e566f7465730404480130000c011c73657373696f6e10013053657373696f6e496e6465780001806261636b696e675f76616c696461746f72735f7065725f63616e646964617465cd0b011d015665633c2843616e646964617465526563656970743c483e2c205665633c2856616c696461746f72496e6465782c2056616c69646974794174746573746174696f6e293e290a3e0001206469737075746573910501604d756c74694469737075746553746174656d656e745365740000cd0b000002d10b00d10b00000408d907d50b00d50b000002d90b00d90b0000040845058d0500dd0b106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400012464546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e6443616e646964617465436f6e636c75646564496e76616c6964000204b844697370757465642063616e64696461746520746861742077617320636f6e636c7564656420696e76616c69642e48496e686572656e744f7665727765696768740003040901546865206461746120676976656e20746f2074686520696e686572656e742077696c6c20726573756c7420696e20616e206f76657277656967687420626c6f636b2e944469737075746553746174656d656e7473556e736f727465644f724475706c696361746573000404bc546865206f72646572696e67206f6620646973707574652073746174656d656e74732077617320696e76616c69642e3844697370757465496e76616c6964000504804120646973707574652073746174656d656e742077617320696e76616c69642e404261636b6564427944697361626c6564000604b8412063616e64696461746520776173206261636b656420627920612064697361626c65642076616c696461746f725c4261636b65644f6e556e7363686564756c6564436f72650007040101412063616e64696461746520776173206261636b6564206576656e2074686f756768207468652070617261696420776173206e6f74207363686564756c65642e50556e7363686564756c656443616e64696461746500080474546f6f206d616e792063616e6469646174657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10b000002a90b00e50b000002e90b00e90b106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65721870616c6c657430436f72654f6363757069656404044e0110010810467265650000001450617261730400ed0b01345061726173456e7472793c4e3e00010000ed0b106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c65721870616c6c6574285061726173456e74727904044e0110000c012861737369676e6d656e74f10b012841737369676e6d656e74000154617661696c6162696c6974795f74696d656f75747310010c75333200010c74746c1001044e0000f10b106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657218636f6d6d6f6e2841737369676e6d656e7400010810506f6f6c08011c706172615f6964b9020118506172614964000128636f72655f696e646578dd070124436f7265496e6465780000001042756c6b0400b902011850617261496400010000f50b042042547265654d617008044b01dd07045601f90b000400fd0b000000f90b000002ed0b00fd0b000002010c00010c00000408dd07f90b00050c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261735c507666436865636b416374697665566f74655374617465042c426c6f636b4e756d626572011000140130766f7465735f6163636570743d0501604269745665633c75382c204269744f726465724c7362303e000130766f7465735f72656a6563743d0501604269745665633c75382c204269744f726465724c7362303e00010c61676510013053657373696f6e496e646578000128637265617465645f617410012c426c6f636b4e756d626572000118636175736573090c017c5665633c507666436865636b43617573653c426c6f636b4e756d6265723e3e0000090c0000020d0c000d0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334507666436865636b4361757365042c426c6f636b4e756d62657201100108284f6e626f617264696e670400b90201185061726149640000001c557067726164650c01086964b902011850617261496400012c696e636c756465645f617410012c426c6f636b4e756d6265720001307365745f676f5f6168656164110c0128536574476f416865616400010000110c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617328536574476f41686561640001080c596573000000084e6f00010000150c000002650500190c000002b902001d0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e00060000210c00000408b9021000250c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573290c01605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e65648d0201244f7074696f6e3c4e3e0000290c0000022d0c002d0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000310c000002210c00350c0c4c706f6c6b61646f745f7072696d6974697665730876363855706772616465476f41686561640001081441626f72740000001c476f416865616400010000390c0c4c706f6c6b61646f745f7072696d69746976657308763648557067726164655265737472696374696f6e0001041c50726573656e74000000003d0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616485050120486561644461746100013c76616c69646174696f6e5f636f64658105013856616c69646174696f6e436f6465000124706172615f6b696e64780120506172614b696e640000410c106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000130344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f7455706772616465000304d4506172612063616e6e6f7420626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e3c43616e6e6f74446f776e6772616465000404d0506172612063616e6e6f7420626520646f776e67726164656420746f20616e206f6e2d64656d616e642070617261636861696e2e58507666436865636b53746174656d656e745374616c65000504b05468652073746174656d656e7420666f7220505646207072652d636865636b696e67206973207374616c652e5c507666436865636b53746174656d656e74467574757265000604ec5468652073746174656d656e7420666f7220505646207072652d636865636b696e6720697320666f722061206675747572652073657373696f6e2e84507666436865636b56616c696461746f72496e6465784f75744f66426f756e6473000704a4436c61696d65642076616c696461746f7220696e646578206973206f7574206f6620626f756e64732e60507666436865636b496e76616c69645369676e6174757265000804c8546865207369676e617475726520666f722074686520505646207072652d636865636b696e6720697320696e76616c69642e48507666436865636b446f75626c65566f7465000904b054686520676976656e2076616c696461746f7220616c7265616479206861732063617374206120766f74652e58507666436865636b5375626a656374496e76616c6964000a04f454686520676976656e2050564620646f6573206e6f7420657869737420617420746865206d6f6d656e74206f662070726f63657373206120766f74652e4443616e6e6f7455706772616465436f6465000b04cc50617261636861696e2063616e6e6f742063757272656e746c79207363686564756c65206120636f646520757067726164652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450c000002490c00490c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273ad0b01405665633c56616c696461746f7249643e000118717565756564ad0b01405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800004d0c000002510c00510c0860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736734013c446f776e776172644d6573736167650000550c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564780110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000590c000002c505005d0c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164c90201304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000610c000002650c00650c0860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746134015073705f7374643a3a7665633a3a5665633c75383e0000690c0000026d0c006d0c0000040810190c00710c106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000150544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e3057726f6e675769746e6573730012048c5468652070726f7669646564207769746e65737320646174612069732077726f6e672e704368616e6e656c4372656174696f6e4e6f74417574686f72697a6564001304e8546865206368616e6e656c206265747765656e2074686573652074776f20636861696e732063616e6e6f7420626520617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750c000002450200790c0c4c706f6c6b61646f745f7072696d6974697665730876362c53657373696f6e496e666f00003401606163746976655f76616c696461746f725f696e6469636573a90b014c5665633c56616c696461746f72496e6465783e00012c72616e646f6d5f736565640401205b75383b2033325d000138646973707574655f706572696f6410013053657373696f6e496e64657800012876616c696461746f72737d0c019c496e64657865645665633c56616c696461746f72496e6465782c2056616c696461746f7249643e000138646973636f766572795f6b657973c10901645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973750c01445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073810c01ac496e64657865645665633c47726f7570496e6465782c205665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c75333200007d0c0c4c706f6c6b61646f745f7072696d69746976657308763628496e646578656456656308044b0145050456014102000400ad0b01185665633c563e0000810c0c4c706f6c6b61646f745f7072696d69746976657308763628496e646578656456656308044b01e107045601a90b000400e10b01185665633c563e0000850c0000040810990500890c0c4c706f6c6b61646f745f7072696d6974697665730876363044697370757465537461746504044e01100010013876616c696461746f72735f666f723d05017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014876616c696461746f72735f616761696e73743d05017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00011473746172741001044e000130636f6e636c756465645f61748d0201244f7074696f6e3c4e3e00008d0c04204254726565536574040454014505000400a90b000000910c106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144572726f72040454000124744475706c69636174654469737075746553746174656d656e7453657473000004a84475706c696361746520646973707574652073746174656d656e7420736574732070726f76696465642e5c416e6369656e744469737075746553746174656d656e740001048c416e6369656e7420646973707574652073746174656d656e742070726f76696465642e6456616c696461746f72496e6465784f75744f66426f756e6473000204e856616c696461746f7220696e646578206f6e2073746174656d656e74206973206f7574206f6620626f756e647320666f722073657373696f6e2e40496e76616c69645369676e61747572650003047c496e76616c6964207369676e6174757265206f6e2073746174656d656e742e484475706c696361746553746174656d656e74000404cc56616c696461746f7220766f7465207375626d6974746564206d6f7265207468616e206f6e636520746f20646973707574652e4853696e676c65536964656444697370757465000504c441206469737075746520776865726520746865726520617265206f6e6c7920766f746573206f6e206f6e6520736964652e3c4d616c6963696f75734261636b65720006049c41206469737075746520766f74652066726f6d2061206d616c6963696f7573206261636b65722e4c4d697373696e674261636b696e67566f746573000704e04e6f206261636b696e6720766f74657320776572652070726f766964657320616c6f6e6720646973707574652073746174656d656e74732e48556e636f6e6669726d656444697370757465000804b0556e636f6e6669726d656420646973707574652073746174656d656e7420736574732070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e950c104c706f6c6b61646f745f7072696d69746976657308763620736c617368696e673850656e64696e67536c617368657300000801106b657973990c019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e64d905014c536c617368696e674f6666656e63654b696e640000990c042042547265654d617008044b01450504560141020004009d0c0000009d0c000002a10c00a10c000004084505410200a50c146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c6574144572726f7204045400011860496e76616c69644b65794f776e65727368697050726f6f660000048c546865206b6579206f776e6572736869702070726f6f6620697320696e76616c69642e4c496e76616c696453657373696f6e496e646578000104a05468652073657373696f6e20696e64657820697320746f6f206f6c64206f7220696e76616c69642e50496e76616c696443616e64696461746548617368000204785468652063616e646964617465206861736820697320696e76616c69642e54496e76616c696456616c696461746f72496e64657800030801015468657265206973206e6f2070656e64696e6720736c61736820666f722074686520676976656e2076616c696461746f7220696e64657820616e642074696d6514736c6f742e6056616c696461746f72496e64657849644d69736d61746368000404d05468652076616c696461746f7220696e64657820646f6573206e6f74206d61746368207468652076616c696461746f722069642e5c4475706c6963617465536c617368696e675265706f72740005040d0154686520676976656e20736c617368696e67207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90c0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564ad0c01304f7074696f6e3c626f6f6c3e0000ad0c04184f7074696f6e04045401780108104e6f6e6500000010536f6d650400780000010000b10c105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000138344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f7450617261746872656164000604bc50617261206973206e6f742061205061726174687265616420286f6e2d64656d616e642070617261636861696e292e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e67726164650008042d0143616e6e6f74207363686564756c6520646f776e6772616465206f66206c6561736520686f6c64696e672070617261636861696e20746f206f6e2d64656d616e642070617261636861696e3443616e6e6f7455706772616465000904250143616e6e6f74207363686564756c652075706772616465206f66206f6e2d64656d616e642070617261636861696e20746f206c6561736520686f6c64696e672070617261636861696e28506172614c6f636b6564000a08490150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e2c676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e24456d707479436f6465000c04d45265676973746572696e672070617261636861696e207769746820656d70747920636f6465206973206e6f7420616c6c6f7765642e2843616e6e6f7453776170000d08510143616e6e6f7420706572666f726d20612070617261636861696e20736c6f74202f206c6966656379636c6520737761702e20436865636b207468617420746865207374617465206f6620626f74682070617261738461726520636f727265637420666f7220746865207377617020746f20776f726b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb50c000002810800b90c105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd0c0000040800b90200c10c00000324000000c50c00c50c04184f7074696f6e04045401c90c0108104e6f6e6500000010536f6d650400c90c0000010000c90c0000040c00b9021800cd0c105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10c0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e7449640001207665726966696572f105014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ed50c01744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f6400012866756e645f696e64657810012446756e64496e6465780000d50c0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000d90c105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110855015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e741c706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0c0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e6465726901014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572e10c01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679e50c01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696e6901014456657273696f6e65644c6f636174696f6e00012469735f616374697665780110626f6f6c000100145265616479080120726573706f6e7365ed0c014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000e10c04184f7074696f6e0404540169010108104e6f6e6500000010536f6d65040069010000010000e50c04184f7074696f6e04045401e90c0108104e6f6e6500000010536f6d650400e90c0000010000e90c00000408080800ed0c080c78636d4456657273696f6e6564526573706f6e736500010c08563204003d06013076323a3a526573706f6e736500020008563304008506013076333a3a526573706f6e73650003000856340400e506013076343a3a526573706f6e736500040000f10c0000040810690100f50c0000040c2c241000f90c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401fd0c045300000400010d01185665633c543e0000fd0c0000040869011000010d000002fd0c00050d0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400090d013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000090d04184f7074696f6e04045401340108104e6f6e6500000010536f6d6504003400000100000d0d0000040c1000410700110d0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e746966696572018c304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e65726901014456657273696f6e65644c6f636174696f6e0001186c6f636b65726901014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273150d01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000150d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401190d0453000004001d0d01185665633c543e0000190d000004088c18001d0d000002190d00210d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401250d045300000400290d01185665633c543e0000250d0000040818690100290d000002250d002d0d0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001642c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e5c496e76616c696441737365744e6f74436f6e63726574650014046c496e76616c6964206e6f6e2d636f6e63726574652061737365742e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310d085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01490700180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273350d01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e742c010c75363400011073697a652c010c7536340000350d04184f7074696f6e04045401390d0108104e6f6e6500000010536f6d650400390d0000010000390d085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e0149070008011070726576490701344d6573736167654f726967696e0001106e657874490701344d6573736167654f726967696e00003d0d0000040849071000410d085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170450d019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000450d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003401185665633c543e0000490d0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0d0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010840556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e510d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d02045300000400550d01185665633c543e0000550d0000024d0200590d0c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011060496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660001043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0d0c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740130000c010869642c015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74300158417574686f72697479536574436f6d6d69746d656e740000610d102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301e9011043616c6c019901245369676e617475726501a10314457874726101650d00040034000000650d00000428690d6d0d710d750d790d810d850d890d8d0d910d00690d10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e646572040454000000006d0d10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000710d10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000750d10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000790d10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004007d0d010c45726100007d0d102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000810d10306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040015010120543a3a4e6f6e63650000850d10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000890d086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400f4013042616c616e63654f663c543e00008d0d0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c69646174654174746573747304045400000000910d08746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465950d01104d6f64650000950d08746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000990d0840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000e41853797374656d011853797374656d441c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e2c426c6f636b576569676874010020180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510308000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510340400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003080000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e18446967657374010038040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004804001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402302d080400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000310804000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100780400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100780400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500002908040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500003908040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e019d0101541830426c6f636b576569676874733d08010207b0bde93603000b00204aa9d10113ffffffffffffffff222d0d1e00010bb8845c8f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf010000222d0d1e00010bb80caff9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040222d0d1e0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746849083000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687451084038ca38010000000098aaf904000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e55083d0420706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000154a0f00000000004cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a0600000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0a00000049eaaf1b548a0cb00300000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000fbc577b9d747efd6010000001a000000010484204765742074686520636861696e27732063757272656e742076657273696f6e2e2853533538507265666978910108000014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01650800245363686564756c657201245363686564756c65720c3c496e636f6d706c65746553696e6365000010040000184167656e6461010104051069080400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e184c6f6f6b7570000104050480040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01ad01017c08344d6178696d756d57656967687424400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e0179080120507265696d6167650120507265696d6167650c24537461747573466f7200010406307d080400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f72000104063085080400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f72000104069508990804000001b501019000019d080a1042616265011042616265442845706f6368496e64657801002c20000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100a1080400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100cd0120000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100cd0120000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000d50104000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100a10804000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ad0804000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000b50804000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301008404001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010080200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000cd0804000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000cd080400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100d10804002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01bd0100103445706f63684475726174696f6e2c2014000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d652c20701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e01dd08022454696d657374616d70012454696d657374616d70080c4e6f7701002c20000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010078040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01e1010004344d696e696d756d506572696f642c20b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00031c496e6469636573011c496e646963657304204163636f756e74730001040210e1080400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e01e5010194041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01e508042042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200e908040008b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e2052657365727665730101040200f908040004a4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e14486f6c6473010104020005090400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402001d090400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01f101019810484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000008f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e2c4d61785265736572766573101032000000040d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e284d6178467265657a657310100800000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01310905485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100550740000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e010035090400000001a004604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e002028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000061c5374616b696e67011c5374616b696e67a03856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100f50104000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100ac10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c6564676572000104020039090400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e1450617965650001040500a804000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500b00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500410904004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100004909040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805055109f00c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f76657276696577000108050551095509040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c697070656401010805055109f00c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c05050559095d09040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d656452657761726473010108050551090902040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f72507265667301010805055109b00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510610914000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100b804000454204d6f6465206f662065726120666f7263696e672e4c536c6173685265776172644672616374696f6e0100ac10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405107109040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e6465644572617301002d0804001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e457261000108050551097909040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505510918040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010405007d090400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c617368010104056d098109800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e4c4f6666656e64696e6756616c696461746f727301008509040024690120496e6469636573206f662076616c696461746f727320746861742068617665206f6666656e64656420696e20746865206163746976652065726120616e6420776865746865722074686579206172652063757272656e746c79282064697361626c65642e00690120546869732076616c75652073686f756c642062652061207375706572736574206f662064697361626c65642076616c696461746f72732073696e6365206e6f7420616c6c206f6666656e636573206c65616420746f2074686571012076616c696461746f72206265696e672064697361626c65642028696620746865726520776173206e6f20736c617368292e2054686973206973206e656564656420746f20747261636b207468652070657263656e74616765206f6649012076616c696461746f727320746861742068617665206f6666656e64656420696e207468652063757272656e74206572612c20656e737572696e672061206e65772065726120697320666f72636564206966750120604f6666656e64696e6756616c696461746f72735468726573686f6c646020697320726561636865642e205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e6471012077686574686572206120676976656e2076616c696461746f72206861732070726576696f75736c79206f6666656e646564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e38207468652065726120656e64732e384368696c6c5468726573686f6c640000050204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01fd0101a41830486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010010000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000200002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e018d0907204f6666656e63657301204f6666656e636573081c5265706f72747300010405309109040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805059509b9010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001bc00000828486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051095080400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e6765000080040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c6173742900000000211c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100f5010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010078040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010099090400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010009020400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405003d020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405a10900040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01390201c40001a909091c4772616e647061011c4772616e6470611c1453746174650100ad0904000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000b109040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000800400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e74536574496401002c200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e000104052c1004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100b50904000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01590201c80c384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965732c201c0000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01b9090b48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100bd090400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100bd0904000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000d20547265617375727901205472656173757279183450726f706f73616c436f756e74010010100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510c5090400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100c909040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510cd09040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e018902010101203050726f706f73616c426f6e64d5091050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d18400010a5d4e80000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4c50726f706f73616c426f6e644d6178696d756d25024401005039278c0400000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726ed50910102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964d9092070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c731010640000000c150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010809706000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e01dd091340436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505e109e509d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500050a04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01910201890108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f64101001000000109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01110a14245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210150a040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104059101350a0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405910110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021030040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01a502018d0114445375626d697373696f6e4465706f736974184000e40b5402000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73410a191740000010726f6f74010000000080c6a47e8d03000000000000000000b00400000027060040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01004877686974656c69737465645f63616c6c65726400000000407a10f35a000000000000000000002c01000000270600640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f0100000000396279020000000002003c776973685f666f725f6368616e67650a0000000080f420e6b500000000000000000000b00400000027060040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00347374616b696e675f61646d696e0a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b00247472656173757265720a00000000a0724e180900000000000000000000b004000000270600c0890100403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c002c6c656173655f61646d696e0a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d004066656c6c6f77736869705f61646d696e0a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e003467656e6572616c5f61646d696e0a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f003461756374696f6e5f61646d696e0a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400507265666572656e64756d5f63616e63656c6c6572e803000000407a10f35a00000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500447265666572656e64756d5f6b696c6c6572e803000000406352bfc601000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0030736d616c6c5f746970706572c800000000e40b540200000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00286269675f7469707065726400000000e8764817000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200034736d616c6c5f7370656e646572320000000010a5d4e800000000000000000000006009000000270600807000004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100386d656469756d5f7370656e6465723200000000204aa9d10100000000000000000000600900000027060000e1000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff22002c6269675f7370656e6465723200000000409452a303000000000000000000006009000000270600c0890100403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff04e020496e666f726d6174696f6e20636f6e6365726e696e672074686520646966666572656e74207265666572656e64756d20747261636b732e01590a151c4f726967696e730000000000162457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c00010405308c04000001cd0201850700015d0a1718436c61696d730118436c61696d731418436c61696d7300010406dd021804000014546f74616c0100184000000000000000000000000000000000001c56657374696e6700010406dd02e502040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e6700010406dd02ed02040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d730001040600dd020400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e01d102019907041850726566697834888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a0001610a181c56657374696e67011c56657374696e67081c56657374696e670001040200650a040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01006d0a04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01f102019d0708444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001710a191c5574696c6974790001f90201a107044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01750a1a204964656e7469747901204964656e746974791c284964656e746974794f660001040500790a040010690120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e204669727374206974656d20697320746865e020726567697374726174696f6e2c207365636f6e6420697320746865206163636f756e742773207072696d61727920757365726e616d652e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e1c53757065724f66000104020095030400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500910a44000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100990a0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e4c557365726e616d65417574686f7269746965730001040500a90a040004f42041206d6170206f6620746865206163636f756e74732077686f2061726520617574686f72697a656420746f206772616e7420757365726e616d65732e444163636f756e744f66557365726e616d6500010402ad03000400146d012052657665727365206c6f6f6b75702066726f6d2060757365726e616d656020746f2074686520604163636f756e7449646020746861742068617320726567697374657265642069742e205468652076616c75652073686f756c6465012062652061206b657920696e2074686520604964656e746974794f6660206d61702c20627574206974206d6179206e6f742069662074686520757365722068617320636c6561726564207468656972206964656e746974792e006901204d756c7469706c6520757365726e616d6573206d6179206d617020746f207468652073616d6520604163636f756e744964602c2062757420604964656e746974794f66602077696c6c206f6e6c79206d617020746f206f6e6548207072696d61727920757365726e616d652e4050656e64696e67557365726e616d657300010402ad036d090400186d0120557365726e616d6573207468617420616e20617574686f7269747920686173206772616e7465642c20627574207468617420746865206163636f756e7420636f6e74726f6c6c657220686173206e6f7420636f6e6669726d65647101207468617420746865792077616e742069742e2055736564207072696d6172696c7920696e2063617365732077686572652074686520604163636f756e744964602063616e6e6f742070726f766964652061207369676e61747572655d012062656361757365207468657920617265206120707572652070726f78792c206d756c74697369672c206574632e20496e206f7264657220746f20636f6e6669726d2069742c20746865792073686f756c642063616c6c6c205b6043616c6c3a3a6163636570745f757365726e616d65605d2e001d01204669727374207475706c65206974656d20697320746865206163636f756e7420616e64207365636f6e642069732074686520616363657074616e636520646561646c696e652e01010301a507203042617369634465706f7369741840007db52a2f000000000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e2c427974654465706f736974184080969800000000000000000000000000041d012054686520616d6f756e742068656c64206f6e206465706f7369742070657220656e636f646564206279746520666f7220612072656769737465726564206964656e746974792e445375624163636f756e744465706f736974184080f884b02e00000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e344d617852656769737472617273101014000000085101204d61786d696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e6450656e64696e67557365726e616d6545787069726174696f6e1010c089010004150120546865206e756d626572206f6620626c6f636b732077697468696e207768696368206120757365726e616d65206772616e74206d7573742062652061636365707465642e3c4d61785375666669784c656e677468101007000000048020546865206d6178696d756d206c656e677468206f662061207375666669782e444d6178557365726e616d654c656e67746810102000000004610120546865206d6178696d756d206c656e677468206f66206120757365726e616d652c20696e636c7564696e67206974732073756666697820616e6420616e792073797374656d2d61646465642064656c696d69746572732e01b10a1c1450726f7879011450726f7879081c50726f786965730101040500b50a4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500c50a44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01b10301a907184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01d50a1d204d756c746973696701204d756c746973696704244d756c7469736967730001080502d90add0a040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01bd0301ad070c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01e50a1e20426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510e90a0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510f10a0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100c909040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01c90301b1072444426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000c20100045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f64101080c61300046c20426f756e7479206475726174696f6e20696e20626c6f636b732e6043757261746f724465706f7369744d756c7469706c696572d5091020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d61782502440100204aa9d10100000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696e2502440100e87648170000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501f50a22344368696c64426f756e7469657301344368696c64426f756e7469657314404368696c64426f756e7479436f756e7401001010000000000480204e756d626572206f6620746f74616c206368696c6420626f756e746965732e4c506172656e744368696c64426f756e74696573010104051010100000000008b0204e756d626572206f66206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e344368696c64426f756e74696573000108050580f90a04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e5c4368696c64426f756e74794465736372697074696f6e730001040510f10a0400049820546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01cd0301b50708644d61784163746976654368696c64426f756e7479436f756e74101064000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d184000e40b540200000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01010b2668456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100c1070400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000050b04000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e20536e617073686f7400000d0b0400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e40536e617073686f744d657461646174610000a9040400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100190b0400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510250b04001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000a5040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01d10301b9074034556e7369676e6564506861736510100a0000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e6564506861736510100a0000000478204475726174696f6e206f6620746865207369676e65642070686173652e544265747465725369676e65645468726573686f6c64ac1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e384f6666636861696e52657065617410100000000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974792c2065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687424400b08c77258550113a3703d0ad7a370bd1494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e284d617857696e6e6572731010b004000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687424400b08c77258550113a3703d0ad7a370bd00544d696e65724d6178566f746573506572566f746572101010000000003c4d696e65724d617857696e6e6572731010b00400000001290b2424566f7465724c6973740124566f7465724c6973740c244c6973744e6f64657300010405002d0b04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c69737442616773000104052c310b04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01c50401c90704344261675468726573686f6c6473350b0919210300e40b5402000000f39e809702000000a8b197e20200000094492e3603000000279c3a930300000003bccefa0300000042c01b6e040000001b4775ee04000000385e557d0500000046dc601c0600000089386ccd06000000b6ee809207000000fe7ee36d08000000e81b1a6209000000b019f4710a000000103592a00b000000cfc96ff10c00000041146d680e000000e79bda0910000000cee885da1100000028a9c7df13000000bb70931f160000008e4089a018000000810a096a1b000000366a48841e0000005bd36af821000000807c9cd025000000c95530182a000000bd63c1db2e00000071e0572934000000689092103a000000edc4d4a240000000699379f3470000008fd80c18500000004baf8a28590000006a16a63f630000000995177b6e00000078c5f4fb7a00000062c811e78800000051bf6d6598000000048eaba4a9000000544698d7bc00000091cac036d2000000175f1801ea000000bd15b27c0401000043358ff721010000b8fc84c84201000099673c506701000007e44efa8f010000b341833ebd010000027f2ea2ef0100009883bcb927020000164d652a66020000b49513acab0200002d8e820bf9020000a1e6982c4f030000a616080daf030000cc9d37c719040000a0d584959004000042e7e0d514050000028cd70da80500000f750aef4b060000ea8d2e5c02070000c3cb996ecd070000b1e5717caf080000aa2b8e1fab090000b5c1203dc30a000026d03d0efb0b000070c75929560d0000ebadda8cd80e0000f797dbaa86100000cff04476651200001f2660717a14000009a611becb1600001dfbe82f60190000943a3c603f1c00008afe89c4711f0000ced963c70023000003a92ae4f6260000fe72eec55f2b000036c9cc6948300000dae33245bf350000062a7470d43b00007c9732d69942000084a32468234a0000571ad45987520000e7f10262de5b00000db8760344660000ae0401ded67100007d9eb308b97e00001e044a76108d00003a1df064079d0000e04fafdaccae00005679f02f95c2000095c3aaa99ad80000967c05251ef10000177a66d6670c010028cb1f1ec82a0100fa282f75984c0100d57dc8743c7201007dc4b3fb229c0100365cde74c7ca01009eb8e142b3fe01000c31ae547f3802005fe101e8d57802006373da7e74c0020051d1a60d2e100300c7e9a468ed68030061c091f7b7cb0300bf27a1b7b03904007b1499941bb404008523ed22613c050069a5d4c512d40500ec8c934def7c0600f5aa901be83807008cbe5ddb260a080002978ce113f30800fae314435df60900ddf12dbafe160b002ebadc6f4a580c000c5518c4f2bd0d00f0bb5431154c0f00498e866b46071100b2c153de9ff41200278a2fb2ce191500b2399f84247d1700e199e704aa251a00ba13f5ab331b1d00264785cc7866200088bf803f2d1124001c9823f81d262800ccc422d450b12c00f088820528c03100367c6d7e896137006e9329d30aa63d008cbc6c1322a044000070f32a5c644c00b43b84699909550080b4abe450a95e00a0cda979db5f69004cc27f4cc74c7500d0ac0eba34938200483e0ccf3d5a910068c68e7469cda100281e6fa52b1db40098a92326747fc800f09a74634d30df0080cdfc4b8d72f8009014602d9a901401f0b413d945dd330120973596c1b4560150dcfbaead7d7d01e01198b947aaa80130c7ee16bbb9d801206e488697390e02a0fa4b1d72c74902c0117170b5128c02808a1643a6ded502c0f823b1a204280380af5970a2768303c06f2d87ff41e90340937fac8f925a040091097117b6d804400fdf5b212065050049c149446e0106008ebca6e56caf0600595686851c71078068aa34a4b7480880a1e29e52b9380900bdabe880e4430a002a72b4204c6d0b80f1c013335cb80c00a03ccbdce3280e80b8629a9e20c30f00de5693d2ca8b11005d7f4c93238813001a87df3504be1500a7ce4b84ef3318000110fbea24f11a00802ae5d1b5fd1d0022a134609d62210044216bf0da2925000261f1828f5e29006620cf851e0d2e008410195252433300a0c18fca8410390026ad1493cc853f00d0cd24662fb646009ce19a1cdab64e0058ccc20c5f9f5700200a7578fb89610030bbbbd6e4936c0060cba7dc9edd7800b83bc0425b8b8600b886236164c59500f8f15fdc93b8a600206a91c0d696b900d8efe28fc097ce0068299bf52ef9e5ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01390b253c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e0000ac04000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500410b04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c7300010405104d0b040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c730001040510610b04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f757420666f207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f726167650001040510650b04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d6574616461746101010405107d0b0400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0055012054686973206973206f6e6c79207573656420666f7220736c617368696e672e20496e20616c6c206f7468657220696e7374616e6365732c2074686520706f6f6c20696420697320757365642c20616e6420746865c0206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e730101040500e5040400040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e01c90401cd070c2050616c6c65744964d9092070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101020000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01810b272c46617374556e7374616b65012c46617374556e7374616b651010486561640000890b04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e01fd0401d107041c4465706f736974184000e40b54020000000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e01950b284050617261636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0c30416374697665436f6e6669670100990b41030000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001027000080b2e60e80c3c9018096980000000000000000000000000005000000010000000100000001000000000006000000640000000100000000000000000000000000000000000000020000000200000002000000000100000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3850656e64696e67436f6e6669677301009d0b04001c7c2050656e64696e6720636f6e66696775726174696f6e206368616e6765732e00590120546869732069732061206c697374206f6620636f6e66696775726174696f6e206368616e6765732c2065616368207769746820612073657373696f6e20696e6465782061742077686963682069742073686f756c6430206265206170706c6965642e00610120546865206c69737420697320736f7274656420617363656e64696e672062792073657373696f6e20696e6465782e20416c736f2c2074686973206c6973742063616e206f6e6c7920636f6e7461696e206174206d6f7374fc2032206974656d733a20666f7220746865206e6578742073657373696f6e20616e6420666f722074686520607363686564756c65645f73657373696f6e602e58427970617373436f6e73697374656e6379436865636b01007804000861012049662074686973206973207365742c207468656e2074686520636f6e66696775726174696f6e20736574746572732077696c6c206279706173732074686520636f6e73697374656e637920636865636b732e2054686973b4206973206d65616e7420746f2062652075736564206f6e6c7920617320746865206c617374207265736f72742e010105000001a50b332c5061726173536861726564012c5061726173536861726564104c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100a90b040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100ad0b0400085501205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e1d0120636f6e73656e7375732e20546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e4c416c6c6f77656452656c6179506172656e74730100b10b140000000000046c20416c6c20616c6c6f7765642072656c61792d706172656e74732e012105000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0c54417661696c6162696c6974794269746669656c6473000104054505bd0b040004650120546865206c6174657374206269746669656c6420666f7220656163682076616c696461746f722c20726566657272656420746f20627920746865697220696e64657820696e207468652076616c696461746f72207365742e4c50656e64696e67417661696c6162696c69747900010405b902c10b040004b42043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e7850656e64696e67417661696c6162696c697479436f6d6d69746d656e747300010405b902690504000405012054686520636f6d6d69746d656e7473206f662063616e646964617465732070656e64696e6720617661696c6162696c6974792c2062792060506172614964602e01250501d5070001c50b353050617261496e686572656e74013050617261496e686572656e740820496e636c7564656400008c040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e304f6e436861696e566f7465730000c90b04000445012053637261706564206f6e20636861696e206461746120666f722065787472616374696e67207265736f6c7665642064697370757465732061732077656c6c206173206261636b696e6720766f7465732e012905000001dd0b3634506172615363686564756c65720134506172615363686564756c6572103c56616c696461746f7247726f7570730100e10b04001c6d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00490120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e6420706172617468726561646901206d756c7469706c65786572732e20526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a20736166655020757070657220626f756e642061742031306b2e44417661696c6162696c697479436f7265730100e50b0400205901204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20456e74726965732061726520604e6f6e65602069662074686520636f7265206973206e6f742063757272656e746c790d01206f636375706965642e2043616e2062652074656d706f726172696c792060536f6d6560206966207363686564756c656420627574206e6f74206f636375706965642e41012054686520692774682070617261636861696e2062656c6f6e677320746f20746865206927746820636f72652c2077697468207468652072656d61696e696e6720636f72657320616c6c206265696e676420706172617468726561642d6d756c7469706c65786572732e00d820426f756e64656420627920746865206d6178696d756d206f6620656974686572206f662074686573652074776f2076616c7565733ae42020202a20546865206e756d626572206f662070617261636861696e7320616e642070617261746872656164206d756c7469706c657865727345012020202a20546865206e756d626572206f662076616c696461746f727320646976696465642062792060636f6e66696775726174696f6e2e6d61785f76616c696461746f72735f7065725f636f7265602e4453657373696f6e5374617274426c6f636b01001010000000001c69012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e733c2068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e28436c61696d51756575650100f50b0400145901204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20546865206056656344657175656020726570726573656e7473207468652061737369676e6d656e747320746f2062656d01207363686564756c6564206f6e207468617420636f72652e20604e6f6e6560206973207573656420746f207369676e616c20746f206e6f74207363686564756c6520746865206e6578742070617261206f662074686520636f72655501206173207468657265206973206f6e652063757272656e746c79206265696e67207363686564756c65642e204e6f74207573696e6720604e6f6e6560206865726520776f756c64206f76657277726974652074686571012060436f726553746174656020696e207468652072756e74696d65204150492e205468652076616c756520636f6e7461696e656420686572652077696c6c206e6f742062652076616c69642061667465722074686520656e64206f666d01206120626c6f636b2e2052756e74696d6520415049732073686f756c64206265207573656420746f2064657465726d696e65207363686564756c656420636f7265732f20666f7220746865207570636f6d696e6720626c6f636b2e0000000037145061726173011450617261735040507666416374697665566f74654d6170000104056505050c040010b420416c6c2063757272656e746c792061637469766520505646207072652d636865636b696e6720766f7465732e002c20496e76617269616e743a7501202d20546865726520617265206e6f20505646207072652d636865636b696e6720766f74657320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e44507666416374697665566f74654c6973740100150c040004350120546865206c697374206f6620616c6c2063757272656e746c79206163746976652050564620766f7465732e20417578696c6961727920746f2060507666416374697665566f74654d6170602e2850617261636861696e730100190c040010690120416c6c206c6561736520686f6c64696e672070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e204f6e2064656d616e642070617261636861696e7320617265206e6f742820696e636c756465642e00e820436f6e7369646572207573696e6720746865205b6050617261636861696e734361636865605d2074797065206f66206d6f64696679696e672e38506172614c6966656379636c657300010405b9021d0c040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e14486561647300010405b9028505040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e444d6f7374526563656e74436f6e7465787400010405b9021004000429012054686520636f6e74657874202872656c61792d636861696e20626c6f636b206e756d62657229206f6620746865206d6f737420726563656e742070617261636861696e20686561642e3c43757272656e74436f64654861736800010405b902650504000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654861736800010405210c650504001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405b902250c0800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b020746f206b65657020697420617661696c61626c6520666f7220617070726f76616c20636865636b6572732e3c50617374436f64655072756e696e670100310c04001869012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f6465690120776173207265706c616365642e204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465643d01206865696768742061742077686963682074686520636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e6d01205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f646d01207374617274696e672066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f6465557067726164657300010405b9021004000c29012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f72206120706172612e650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e38467574757265436f64654861736800010405b902650504000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e5055706772616465476f41686561645369676e616c00010405b902350c040028750120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652c2070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e550120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e6775012070617261636861696e2063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c20746865702076616c7565206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c00010405b902390c040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100310c04000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e6755706772616465730100310c040010590120546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e2045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465e8207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b2069742069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e7351756575650101040510190c04000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e6573697300010405b9023d0c040010a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e006501204e4f5445207468617420616674657220505646207072652d636865636b696e6720697320656e61626c65642074686520706172612067656e65736973206172672077696c6c2068617665206974277320636f646520736574610120746f20656d7074792e20496e73746561642c2074686520636f64652077696c6c20626520736176656420696e746f207468652073746f726167652072696768742061776179207669612060436f6465427948617368602e38436f64654279486173685265667301010406650510100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040665058105040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01b50501e5070440556e7369676e65645072696f726974792c20ffffffffffffffff0001410c382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400008c04002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e00710120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e657501206f66207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c659020666f72207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100450c04001c59012042756666657265642073657373696f6e206368616e67657320616c6f6e6720776974682074686520626c6f636b206e756d62657220617420776869636820746865792073686f756c64206265206170706c6965642e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e01bd05000000390c446d70010c446d700c54446f776e776172644d65737361676551756575657301010405b9024d0c040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d6573736167655175657565486561647301010405b902308000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e4444656c6976657279466565466163746f7201010405b902550740000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e000000003a1048726d70011048726d70305c48726d704f70656e4368616e6e656c526571756573747300010405c505550c040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c6973740100590c0400006c48726d704f70656e4368616e6e656c52657175657374436f756e7401010405b9021010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e590120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732074686174206861730501206028582c205f296020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e7401010405b9021010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c526571756573747300010405c5058c04001c7101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e2101206368616e67652e205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c6973740100590c0400003848726d7057617465726d61726b7300010405b90210040010b8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a5501202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612c20202073657373696f6e2e3048726d704368616e6e656c7300010405c5055d0c04000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e64657801010405b902190c040034710120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f7369746520736964652e1420492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a5101202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028492c205029602e4d01202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e64657801010405b902190c0400004c48726d704368616e6e656c436f6e74656e747301010405c505610c040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c4469676573747301010405b902690c0400186901204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a20576861742070617261732073656e742061206d657373616765206174e42074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e20496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e6d01202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468655420202073616d6520626c6f636b206e756d6265722e01c10501e9070001710c3c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f145041737369676e6d656e744b657973556e736166650100750c04000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610790c04000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e2c4163636f756e744b6579730001040610f5010400047101205468652076616c696461746f72206163636f756e74206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732e5453657373696f6e4578656375746f72506172616d7300010406100905040004c4204578656375746f7220706172616d657465722073657420666f72206120676976656e2073657373696f6e20696e646578000000003d345061726173446973707574657301345061726173446973707574657314444c6173745072756e656453657373696f6e000010040008010120546865206c617374207072756e65642073657373696f6e2c20696620616e792e20416c6c20646174612073746f7265642062792074686973206d6f64756c6554207265666572656e6365732073657373696f6e732e2044697370757465730001080502850c890c040004050120416c6c206f6e676f696e67206f7220636f6e636c7564656420646973707574657320666f7220746865206c617374207365766572616c2073657373696f6e732e444261636b6572734f6e44697370757465730001080502850c8d0c0400089c204261636b696e6720766f7465732073746f72656420666f72206561636820646973707574652e8c20546869732073746f72616765206973207573656420666f7220736c617368696e672e20496e636c756465640001080502850c10040008450120416c6c20696e636c7564656420626c6f636b73206f6e2074686520636861696e2c2061732077656c6c2061732074686520626c6f636b206e756d62657220696e207468697320636861696e207468617459012073686f756c64206265207265766572746564206261636b20746f206966207468652063616e64696461746520697320646973707574656420616e642064657465726d696e656420746f20626520696e76616c69642e1846726f7a656e01008d02040010110120576865746865722074686520636861696e2069732066726f7a656e2e2053746172747320617320604e6f6e65602e205768656e20746869732069732060536f6d65602c35012074686520636861696e2077696c6c206e6f742061636365707420616e79206e65772070617261636861696e20626c6f636b7320666f72206261636b696e67206f7220696e636c7573696f6e2c090120616e64206974732076616c756520696e6469636174657320746865206c6173742076616c696420626c6f636b206e756d62657220696e2074686520636861696e2ef82049742063616e206f6e6c7920626520736574206261636b20746f20604e6f6e656020627920676f7665726e616e636520696e74657276656e74696f6e2e01c90501ed070001910c3e345061726173536c617368696e6701345061726173536c617368696e670840556e6170706c696564536c61736865730001080502850c950c040004902056616c696461746f72732070656e64696e67206469737075746520736c61736865732e4856616c696461746f72536574436f756e747300010405101004000484206056616c696461746f72536574436f756e7460207065722073657373696f6e2e01cd05000001a50c3f585061726141737369676e6d656e7450726f76696465720000000000402452656769737472617201245265676973747261720c2c50656e64696e675377617000010405b902b902040004642050656e64696e672073776170206f7065726174696f6e732e14506172617300010405b902a90c040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0071012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d61795501206f6e6c7920646f20736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e657874467265655061726149640100b9021000000000046020546865206e65787420667265652060506172614964602e01dd0501f907082c506172614465706f73697418400010a5d4e8000000000000000000000008d420546865206465706f73697420746f206265207061696420746f2072756e2061206f6e2d64656d616e642070617261636861696e2e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01b10c4614536c6f74730114536c6f747304184c656173657301010405b902b50c040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e006101205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f66207468652901207365636f6e642076616c756573206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e01e10501fd07082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f666673657410100000000004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01b90c472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000080040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405bd0c18040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510c10c04000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e01e5050101081030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001cd0c482443726f77646c6f616e012443726f77646c6f616e101446756e647300010405b902d10c0400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e657752616973650100190c0400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787446756e64496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c652066756e6420696e64657801ed050105080c2050616c6c65744964d9092070792f6366756e64080d01206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c6420626564206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b000000000000000000000008610120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c792062657c206174206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01d90c49485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f63657373010005063800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100fd0504000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000010604000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e01f90501090804244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e011108622458636d50616c6c6574012458636d50616c6c657430305175657279436f756e74657201002c200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c51756572696573000104022cdd0c0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040630101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502f10c10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502f10c2c040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502f10cf50c04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100f90c04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000050d0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c0502020d0d110d040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200210d040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010078040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e01110601150800012d0d63304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f72010104054907310d74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c536572766963654865616400004907040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805053d0d410d0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e014507011d080c204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874910740010700a0db215d1333333333333333331441012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f726820736572766963696e6720656e717565756564206974656d732e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6ca82060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c792e01490d642441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e6174697665000104020501550704000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e64296001510701250800014d0d6514426565667901144265656679142c417574686f7269746965730100510d04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f72536574496401002c2000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100510d040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e000104052c1004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b01008d0204000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e015907000c384d6178417574686f7269746965731010a086010004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965732c201c0000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01590dc80c4d6d72010c4d6d720c20526f6f74486173680100308000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301002c20000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f646573000104062c300400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000c93042656566794d6d724c656166013042656566794d6d724c65616608404265656679417574686f72697469657301005d0db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f72697469657301005d0db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e00000000ca610d042848436865636b4e6f6e5a65726f53656e646572690d8c40436865636b5370656356657273696f6e6d0d1038436865636b547856657273696f6e710d1030436865636b47656e65736973750d3038436865636b4d6f7274616c697479790d3028436865636b4e6f6e6365810d8c2c436865636b576569676874850d8c604368617267655472616e73616374696f6e5061796d656e74890d8c4850726576616c6964617465417474657374738d0d8c44436865636b4d6574616461746148617368910d84990d'; diff --git a/packages/types-support/src/metadata/v14/pezkuwi-json.json b/packages/types-support/src/metadata/v14/pezkuwi-json.json new file mode 100644 index 0000000..98404a5 --- /dev/null +++ b/packages/types-support/src/metadata/v14/pezkuwi-json.json @@ -0,0 +1,6860 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v14": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 12 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 18 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 523 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 524 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 30 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 30 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 522 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 526 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + } + ] + }, + "calls": { + "type": 103 + }, + "events": { + "type": 21 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 527, + "value": "0x07b0bde93603000b00204aa9d10113ffffffffffffffff222d0d1e00010bb8845c8f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf010000222d0d1e00010bb80caff9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040222d0d1e00000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 530, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 532, + "value": "0x38ca38010000000098aaf90400000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 533, + "value": "0x20706f6c6b61646f743c7061726974792d706f6c6b61646f7400000000154a0f00000000004cdf6acb689907609b0400000037e397fc7c91f5e40200000040fe3ad401f8959a0600000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0a00000049eaaf1b548a0cb00300000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab52705903000000fbc577b9d747efd6010000001a00000001", + "docs": [ + " Get the chain's current version." + ] + }, + { + "name": "SS58Prefix", + "type": 100, + "value": "0x0000", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 537 + }, + "index": 0 + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 538 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 32 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 107 + }, + "events": { + "type": 31 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 9, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 542 + }, + "index": 1 + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 543 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 545 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 549, + "value": 550 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 109 + }, + "events": { + "type": 36 + }, + "constants": [], + "errors": { + "type": 551 + }, + "index": 10 + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 11 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 552 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 115 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 115 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 117 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 552 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 555 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 557 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 33 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 32 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 563 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 563 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 564 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "type": 111 + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 11, + "value": "0x1400000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": 11, + "value": "0x7017000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max number of authorities allowed" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + } + ], + "errors": { + "type": 567 + }, + "index": 2 + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 11 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 30 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 120 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 11, + "value": "0xb80b000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 3 + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 568 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 121 + }, + "events": { + "type": 37 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 569 + }, + "index": 4 + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 570 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock." + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 574 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances." + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 577 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 583 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 124 + }, + "events": { + "type": 38 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation." + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account." + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 588 + }, + "index": 5 + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 469 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 589 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 40 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 32 + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 6 + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 125 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 43 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 590 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 42 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 44 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 592 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 594 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 60 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 597 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 60 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 598, + "value": 599 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 130 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 44 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 600 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 46 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 43 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 604 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 523 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 606 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 596, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 607 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 603, + "value": 608 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "OffendingValidators", + "modifier": "Default", + "type": { + "plain": 609 + }, + "fallback": "0x00", + "docs": [ + " Indices of validators that have offended in the active era and whether they are currently", + " disabled.", + "", + " This value should be a superset of disabled validators since not all offences lead to the", + " validator being disabled (if there was no slash). This is needed to track the percentage of", + " validators that have offended in the current era, ensuring a new era is forced if", + " `OffendingValidatorsThreshold` is reached. The vec is always kept sorted so that we can find", + " whether a given validator has previously offended using binary search. It gets cleared when", + " the era ends." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 129 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "type": 127 + }, + "events": { + "type": 41 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x01000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "errors": { + "type": 611 + }, + "index": 7 + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 612 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 613, + "value": 110 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + } + ] + }, + "calls": null, + "events": { + "type": 47 + }, + "constants": [], + "errors": null, + "index": 8 + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 549 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ] + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 32 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 33 + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 125 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 30 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 614 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 130 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 143 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 616, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 142 + }, + "events": { + "type": 49 + }, + "constants": [], + "errors": { + "type": 618 + }, + "index": 9 + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 619 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 620 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 32 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 11 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 621 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ] + } + ] + }, + "calls": { + "type": 150 + }, + "events": { + "type": 50 + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 11, + "value": "0x1c00000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 622 + }, + "index": 11 + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 623 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 623 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 13 + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 625 + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 626 + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 627 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + } + ] + }, + "calls": { + "type": 162 + }, + "events": { + "type": 64 + }, + "constants": [ + { + "name": "ProposalBond", + "type": 629, + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "ProposalBondMaximum", + "type": 137, + "value": "0x01005039278c0400000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": 4, + "value": "0x00460500", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 629, + "value": "0x10270000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 630, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x80970600", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + } + ], + "errors": { + "type": 631 + }, + "index": 19 + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 632, + "value": 633 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 641 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 164 + }, + "events": { + "type": 98 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x01000000", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 644 + }, + "index": 20 + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 645 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 653 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 169 + }, + "events": { + "type": 99 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 656, + "value": "0x40000010726f6f74010000000080c6a47e8d03000000000000000000b00400000027060040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01004877686974656c69737465645f63616c6c65726400000000407a10f35a000000000000000000002c01000000270600640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f0100000000396279020000000002003c776973685f666f725f6368616e67650a0000000080f420e6b500000000000000000000b00400000027060040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00347374616b696e675f61646d696e0a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b00247472656173757265720a00000000a0724e180900000000000000000000b004000000270600c0890100403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c002c6c656173655f61646d696e0a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d004066656c6c6f77736869705f61646d696e0a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e003467656e6572616c5f61646d696e0a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f003461756374696f6e5f61646d696e0a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400507265666572656e64756d5f63616e63656c6c6572e803000000407a10f35a00000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500447265666572656e64756d5f6b696c6c6572e803000000406352bfc601000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0030736d616c6c5f746970706572c800000000e40b540200000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00286269675f7469707065726400000000e8764817000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200034736d616c6c5f7370656e646572320000000010a5d4e800000000000000000000006009000000270600807000004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100386d656469756d5f7370656e6465723200000000204aa9d10100000000000000000000600900000027060000e1000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff22002c6269675f7370656e6465723200000000409452a303000000000000000000006009000000270600c0890100403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff", + "docs": [ + " Information concerning the different referendum tracks." + ] + } + ], + "errors": { + "type": 662 + }, + "index": 21 + }, + { + "name": "Origins", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 22 + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 35 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 179 + }, + "events": { + "type": 481 + }, + "constants": [], + "errors": { + "type": 663 + }, + "index": 23 + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 183, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 183, + "value": 185 + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 183, + "value": 187 + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 0, + "value": 183 + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": { + "type": 180 + }, + "events": { + "type": 486 + }, + "constants": [ + { + "name": "Prefix", + "type": 13, + "value": "0x8450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a", + "docs": [] + } + ], + "errors": { + "type": 664 + }, + "index": 24 + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 665 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 667 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 188 + }, + "events": { + "type": 487 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 668 + }, + "index": 25 + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 190 + }, + "events": { + "type": 488 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 669 + }, + "index": 26 + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 670 + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account. First item is the", + " registration, second is the account's primary username.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 229 + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 676 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": 678 + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + }, + { + "name": "UsernameAuthorities", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 682 + } + }, + "fallback": "0x00", + "docs": [ + " A map of the accounts who are authorized to grant usernames." + ] + }, + { + "name": "AccountOfUsername", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 235, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Reverse lookup from `username` to the `AccountId` that has registered it. The value should", + " be a key in the `IdentityOf` map, but it may not if the user has cleared their identity.", + "", + " Multiple usernames may map to the same `AccountId`, but `IdentityOf` will only map to one", + " primary username." + ] + }, + { + "name": "PendingUsernames", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 235, + "value": 603 + } + }, + "fallback": "0x00", + "docs": [ + " Usernames that an authority has granted, but that the account controller has not confirmed", + " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature", + " because they are a pure proxy, multisig, etc. In order to confirm it, they should call", + " [`Call::accept_username`].", + "", + " First tuple item is the account and second is the acceptance deadline." + ] + } + ] + }, + "calls": { + "type": 192 + }, + "events": { + "type": 489 + }, + "constants": [ + { + "name": "BasicDeposit", + "type": 6, + "value": "0x007db52a2f0000000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity." + ] + }, + { + "name": "ByteDeposit", + "type": 6, + "value": "0x80969800000000000000000000000000", + "docs": [ + " The amount held on deposit per encoded byte for a registered identity." + ] + }, + { + "name": "SubAccountDeposit", + "type": 6, + "value": "0x80f884b02e0000000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxRegistrars", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maxmimum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + }, + { + "name": "PendingUsernameExpiration", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The number of blocks within which a username grant must be accepted." + ] + }, + { + "name": "MaxSuffixLength", + "type": 4, + "value": "0x07000000", + "docs": [ + " The maximum length of a suffix." + ] + }, + { + "name": "MaxUsernameLength", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of a username, including its suffix and any system-added delimiters." + ] + } + ], + "errors": { + "type": 684 + }, + "index": 28 + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 685 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 689 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 236 + }, + "events": { + "type": 490 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0x0084b2952e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0x8066ab13000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x0084b2952e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x00cd5627000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 693 + }, + "index": 29 + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 694, + "value": 695 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 239 + }, + "events": { + "type": 491 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0x008c61c52e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x00d01213000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 697 + }, + "index": 30 + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 698 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 700 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 626 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 242 + }, + "events": { + "type": 492 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x00c20100", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x80c61300", + "docs": [ + " Bounty duration in blocks." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 629, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 137, + "value": "0x0100204aa9d10100000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 137, + "value": "0x0100e87648170000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 701 + }, + "index": 34 + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 32, + "value": 702 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 700 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 243 + }, + "events": { + "type": 493 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 704 + }, + "index": 38 + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 496 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 705 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 707 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 298 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 710 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 713 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 297 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "type": 244 + }, + "events": { + "type": 494 + }, + "constants": [ + { + "name": "UnsignedPhase", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "BetterSignedThreshold", + "type": 43, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x00000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": 11, + "value": "0x65666666666666e6", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": 9, + "value": "0x0b08c77258550113a3703d0ad7a370bd", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x04000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x787d0100000000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xb0040000", + "docs": [ + " The maximum number of winners that can be elected by this `ElectionProvider`", + " implementation.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [] + }, + { + "name": "MinerMaxWeight", + "type": 9, + "value": "0x0b08c77258550113a3703d0ad7a370bd", + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [] + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xb0040000", + "docs": [] + } + ], + "errors": { + "type": 714 + }, + "index": 36 + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 715 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 716 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + } + ] + }, + "calls": { + "type": 305 + }, + "events": { + "type": 498 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 717, + "value": "0x210300e40b5402000000f39e809702000000a8b197e20200000094492e3603000000279c3a930300000003bccefa0300000042c01b6e040000001b4775ee04000000385e557d0500000046dc601c0600000089386ccd06000000b6ee809207000000fe7ee36d08000000e81b1a6209000000b019f4710a000000103592a00b000000cfc96ff10c00000041146d680e000000e79bda0910000000cee885da1100000028a9c7df13000000bb70931f160000008e4089a018000000810a096a1b000000366a48841e0000005bd36af821000000807c9cd025000000c95530182a000000bd63c1db2e00000071e0572934000000689092103a000000edc4d4a240000000699379f3470000008fd80c18500000004baf8a28590000006a16a63f630000000995177b6e00000078c5f4fb7a00000062c811e78800000051bf6d6598000000048eaba4a9000000544698d7bc00000091cac036d2000000175f1801ea000000bd15b27c0401000043358ff721010000b8fc84c84201000099673c506701000007e44efa8f010000b341833ebd010000027f2ea2ef0100009883bcb927020000164d652a66020000b49513acab0200002d8e820bf9020000a1e6982c4f030000a616080daf030000cc9d37c719040000a0d584959004000042e7e0d514050000028cd70da80500000f750aef4b060000ea8d2e5c02070000c3cb996ecd070000b1e5717caf080000aa2b8e1fab090000b5c1203dc30a000026d03d0efb0b000070c75929560d0000ebadda8cd80e0000f797dbaa86100000cff04476651200001f2660717a14000009a611becb1600001dfbe82f60190000943a3c603f1c00008afe89c4711f0000ced963c70023000003a92ae4f6260000fe72eec55f2b000036c9cc6948300000dae33245bf350000062a7470d43b00007c9732d69942000084a32468234a0000571ad45987520000e7f10262de5b00000db8760344660000ae0401ded67100007d9eb308b97e00001e044a76108d00003a1df064079d0000e04fafdaccae00005679f02f95c2000095c3aaa99ad80000967c05251ef10000177a66d6670c010028cb1f1ec82a0100fa282f75984c0100d57dc8743c7201007dc4b3fb229c0100365cde74c7ca01009eb8e142b3fe01000c31ae547f3802005fe101e8d57802006373da7e74c0020051d1a60d2e100300c7e9a468ed68030061c091f7b7cb0300bf27a1b7b03904007b1499941bb404008523ed22613c050069a5d4c512d40500ec8c934def7c0600f5aa901be83807008cbe5ddb260a080002978ce113f30800fae314435df60900ddf12dbafe160b002ebadc6f4a580c000c5518c4f2bd0d00f0bb5431154c0f00498e866b46071100b2c153de9ff41200278a2fb2ce191500b2399f84247d1700e199e704aa251a00ba13f5ab331b1d00264785cc7866200088bf803f2d1124001c9823f81d262800ccc422d450b12c00f088820528c03100367c6d7e896137006e9329d30aa63d008cbc6c1322a044000070f32a5c644c00b43b84699909550080b4abe450a95e00a0cda979db5f69004cc27f4cc74c7500d0ac0eba34938200483e0ccf3d5a910068c68e7469cda100281e6fa52b1db40098a92326747fc800f09a74634d30df0080cdfc4b8d72f8009014602d9a901401f0b413d945dd330120973596c1b4560150dcfbaead7d7d01e01198b947aaa80130c7ee16bbb9d801206e488697390e02a0fa4b1d72c74902c0117170b5128c02808a1643a6ded502c0f823b1a204280380af5970a2768303c06f2d87ff41e90340937fac8f925a040091097117b6d804400fdf5b212065050049c149446e0106008ebca6e56caf0600595686851c71078068aa34a4b7480880a1e29e52b9380900bdabe880e4430a002a72b4204c6d0b80f1c013335cb80c00a03ccbdce3280e80b8629a9e20c30f00de5693d2ca8b11005d7f4c93238813001a87df3504be1500a7ce4b84ef3318000110fbea24f11a00802ae5d1b5fd1d0022a134609d62210044216bf0da2925000261f1828f5e29006620cf851e0d2e008410195252433300a0c18fca8410390026ad1493cc853f00d0cd24662fb646009ce19a1cdab64e0058ccc20c5f9f5700200a7578fb89610030bbbbd6e4936c0060cba7dc9edd7800b83bc0425b8b8600b886236164c59500f8f15fdc93b8a600206a91c0d696b900d8efe28fc097ce0068299bf52ef9e5ffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + } + ], + "errors": { + "type": 718 + }, + "index": 37 + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 43 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 720 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 723 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 728 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out fo the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 729 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 735 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing. In all other instances, the pool id is used, and the", + " accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 313 + } + }, + "fallback": "0x00", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 306 + }, + "events": { + "type": 499 + }, + "constants": [ + { + "name": "PalletId", + "type": 630, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 736 + }, + "index": 39 + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 738 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ] + } + ] + }, + "calls": { + "type": 319 + }, + "events": { + "type": 500 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "errors": { + "type": 741 + }, + "index": 40 + }, + { + "name": "TeyrchainsOrigin", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 50 + }, + { + "name": "Configuration", + "storage": { + "prefix": "Configuration", + "items": [ + { + "name": "ActiveConfig", + "modifier": "Default", + "type": { + "plain": 742 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001027000080b2e60e80c3c90180969800000000000000000000000000050000000100000001000000010000000000060000006400000001000000000000000000000000000000000000000200000002000000020000000001000000", + "docs": [ + " The active configuration for the current session." + ] + }, + { + "name": "PendingConfigs", + "modifier": "Default", + "type": { + "plain": 743 + }, + "fallback": "0x00", + "docs": [ + " Pending configuration changes.", + "", + " This is a list of configuration changes, each with a session index at which it should", + " be applied.", + "", + " The list is sorted ascending by session index. Also, this list can only contain at most", + " 2 items: for the next session and for the `scheduled_session`." + ] + }, + { + "name": "BypassConsistencyCheck", + "modifier": "Default", + "type": { + "plain": 30 + }, + "fallback": "0x00", + "docs": [ + " If this is set, then the configuration setters will bypass the consistency checks. This", + " is meant to be used only as the last resort." + ] + } + ] + }, + "calls": { + "type": 320 + }, + "events": null, + "constants": [], + "errors": { + "type": 745 + }, + "index": 51 + }, + { + "name": "ParasShared", + "storage": { + "prefix": "ParasShared", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current session index." + ] + }, + { + "name": "ActiveValidatorIndices", + "modifier": "Default", + "type": { + "plain": 746 + }, + "fallback": "0x00", + "docs": [ + " All the validators actively participating in teyrchain consensus.", + " Indices are into the broader validator set." + ] + }, + { + "name": "ActiveValidatorKeys", + "modifier": "Default", + "type": { + "plain": 747 + }, + "fallback": "0x00", + "docs": [ + " The teyrchain attestation keys of the validators actively participating in teyrchain", + " consensus. This should be the same length as `ActiveValidatorIndices`." + ] + }, + { + "name": "AllowedRelayParents", + "modifier": "Default", + "type": { + "plain": 748 + }, + "fallback": "0x0000000000", + "docs": [ + " All allowed relay-parents." + ] + } + ] + }, + "calls": { + "type": 328 + }, + "events": null, + "constants": [], + "errors": null, + "index": 52 + }, + { + "name": "ParaInclusion", + "storage": { + "prefix": "ParaInclusion", + "items": [ + { + "name": "AvailabilityBitfields", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 337, + "value": 751 + } + }, + "fallback": "0x00", + "docs": [ + " The latest bitfield for each validator, referred to by their index in the validator set." + ] + }, + { + "name": "PendingAvailability", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 752 + } + }, + "fallback": "0x00", + "docs": [ + " Candidates pending availability by `ParaId`." + ] + }, + { + "name": "PendingAvailabilityCommitments", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 346 + } + }, + "fallback": "0x00", + "docs": [ + " The commitments of candidates pending availability, by `ParaId`." + ] + } + ] + }, + "calls": { + "type": 329 + }, + "events": { + "type": 501 + }, + "constants": [], + "errors": { + "type": 753 + }, + "index": 53 + }, + { + "name": "ParaInherent", + "storage": { + "prefix": "ParaInherent", + "items": [ + { + "name": "Included", + "modifier": "Optional", + "type": { + "plain": 35 + }, + "fallback": "0x00", + "docs": [ + " Whether the paras inherent was included within this block.", + "", + " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant", + " due to the guarantees of FRAME's storage APIs.", + "", + " If this is `None` at the end of the block, we panic and render the block invalid." + ] + }, + { + "name": "OnChainVotes", + "modifier": "Optional", + "type": { + "plain": 754 + }, + "fallback": "0x00", + "docs": [ + " Scraped on chain data for extracting resolved disputes as well as backing votes." + ] + } + ] + }, + "calls": { + "type": 330 + }, + "events": null, + "constants": [], + "errors": { + "type": 759 + }, + "index": 54 + }, + { + "name": "ParaScheduler", + "storage": { + "prefix": "ParaScheduler", + "items": [ + { + "name": "ValidatorGroups", + "modifier": "Default", + "type": { + "plain": 760 + }, + "fallback": "0x00", + "docs": [ + " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the", + " broader set of Pezkuwi validators, but instead just the subset used for teyrchains during", + " this session.", + "", + " Bound: The number of cores is the sum of the numbers of teyrchains and parathread", + " multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe", + " upper bound at 10k." + ] + }, + { + "name": "AvailabilityCores", + "modifier": "Default", + "type": { + "plain": 761 + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. Entries are `None` if the core is not currently", + " occupied. Can be temporarily `Some` if scheduled but not occupied.", + " The i'th teyrchain belongs to the i'th core, with the remaining cores all being", + " parathread-multiplexers.", + "", + " Bounded by the maximum of either of these two values:", + " * The number of teyrchains and parathread multiplexers", + " * The number of validators divided by `configuration.max_validators_per_core`." + ] + }, + { + "name": "SessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number where the session start occurred. Used to track how many group rotations", + " have occurred.", + "", + " Note that in the context of teyrchains modules the session change is signaled during", + " the block and enacted at the end of the block (at the finalization stage, to be exact).", + " Thus for all intents and purposes the effect of the session change is observed at the", + " block following the session change, block number of which we save in this storage value." + ] + }, + { + "name": "ClaimQueue", + "modifier": "Default", + "type": { + "plain": 765 + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. The `VecDeque` represents the assignments to be", + " scheduled on that core. `None` is used to signal to not schedule the next para of the core", + " as there is one currently being scheduled. Not using `None` here would overwrite the", + " `CoreState` in the runtime API. The value contained here will not be valid after the end of", + " a block. Runtime APIs should be used to determine scheduled cores/ for the upcoming block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 55 + }, + { + "name": "Paras", + "storage": { + "prefix": "Paras", + "items": [ + { + "name": "PvfActiveVoteMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 345, + "value": 769 + } + }, + "fallback": "0x00", + "docs": [ + " All currently active PVF pre-checking votes.", + "", + " Invariant:", + " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa." + ] + }, + { + "name": "PvfActiveVoteList", + "modifier": "Default", + "type": { + "plain": 773 + }, + "fallback": "0x00", + "docs": [ + " The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`." + ] + }, + { + "name": "Teyrchains", + "modifier": "Default", + "type": { + "plain": 774 + }, + "fallback": "0x00", + "docs": [ + " All lease holding teyrchains. Ordered ascending by `ParaId`. On demand teyrchains are not", + " included.", + "", + " Consider using the [`TeyrchainsCache`] type of modifying." + ] + }, + { + "name": "ParaLifecycles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 775 + } + }, + "fallback": "0x00", + "docs": [ + " The current lifecycle of a all known Para IDs." + ] + }, + { + "name": "Heads", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 353 + } + }, + "fallback": "0x00", + "docs": [ + " The head-data of every registered para." + ] + }, + { + "name": "MostRecentContext", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The context (relay-chain block number) of the most recent teyrchain head." + ] + }, + { + "name": "CurrentCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 345 + } + }, + "fallback": "0x00", + "docs": [ + " The validation code hash of every live para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 776, + "value": 345 + } + }, + "fallback": "0x00", + "docs": [ + " Actual past code hash, indicated by the para id as well as the block number at which it", + " became outdated.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeMeta", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 777 + } + }, + "fallback": "0x0000", + "docs": [ + " Past code of teyrchains. The teyrchains themselves may not be registered anymore,", + " but we also keep their code on-chain for the same amount of time as outdated code", + " to keep it available for approval checkers." + ] + }, + { + "name": "PastCodePruning", + "modifier": "Default", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " Which paras have past code that needs pruning and the relay-chain block at which the code", + " was replaced. Note that this is the actual height of the included block, not the expected", + " height at which the code upgrade would be applied, although they may be equal.", + " This is to ensure the entire acceptance period is covered, not an offset acceptance period", + " starting from the time at which the teyrchain perceives a code upgrade as having occurred.", + " Multiple entries for a single para are permitted. Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeUpgrades", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The block number at which the planned code change is expected for a para.", + " The change will be applied after the first parablock for this ID included which executes", + " in the context of a relay chain block with a number >= `expected_at`." + ] + }, + { + "name": "FutureCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 345 + } + }, + "fallback": "0x00", + "docs": [ + " The actual future code hash of a para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "UpgradeGoAheadSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 781 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate to a teyrchain a go-ahead with in the upgrade", + " procedure.", + "", + " This value is absent when there are no upgrades scheduled or during the time the relay chain", + " performs the checks. It is set at the first relay-chain block when the corresponding", + " teyrchain can switch its upgrade function. As soon as the teyrchain's block is included, the", + " value gets reset to `None`.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 782 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate that there are restrictions for performing", + " an upgrade for this teyrchain.", + "", + " This may be a because the teyrchain waits for the upgrade cooldown to expire. Another", + " potential use case is when we want to perform some maintenance (such as storage migration)", + " we could restrict upgrades to make the process simpler.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeCooldowns", + "modifier": "Default", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " The list of teyrchains that are awaiting for their upgrade restriction to cooldown.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "UpcomingUpgrades", + "modifier": "Default", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming code upgrades. Each item is a pair of which para performs a code", + " upgrade and at which relay-chain block it is expected at.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "ActionsQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 774 + } + }, + "fallback": "0x00", + "docs": [ + " The actions to perform during the start of a specific session index." + ] + }, + { + "name": "UpcomingParasGenesis", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 783 + } + }, + "fallback": "0x00", + "docs": [ + " Upcoming paras instantiation arguments.", + "", + " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set", + " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`." + ] + }, + { + "name": "CodeByHashRefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 345, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of reference on the validation code in [`CodeByHash`] storage." + ] + }, + { + "name": "CodeByHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 345, + "value": 352 + } + }, + "fallback": "0x00", + "docs": [ + " Validation code stored by its hash.", + "", + " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and", + " [`PastCodeHash`]." + ] + } + ] + }, + "calls": { + "type": 365 + }, + "events": { + "type": 505 + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 11, + "value": "0xffffffffffffffff", + "docs": [] + } + ], + "errors": { + "type": 784 + }, + "index": 56 + }, + { + "name": "Initializer", + "storage": { + "prefix": "Initializer", + "items": [ + { + "name": "HasInitialized", + "modifier": "Optional", + "type": { + "plain": 35 + }, + "fallback": "0x00", + "docs": [ + " Whether the teyrchains modules have been initialized within this block.", + "", + " Semantically a `bool`, but this guarantees it should never hit the trie,", + " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values.", + "", + " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one", + " of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable", + " for the semantics of this variable." + ] + }, + { + "name": "BufferedSessionChanges", + "modifier": "Default", + "type": { + "plain": 785 + }, + "fallback": "0x00", + "docs": [ + " Buffered session changes along with the block number at which they should be applied.", + "", + " Typically this will be empty or one element long. Apart from that this item never hits", + " the storage.", + "", + " However this is a `Vec` regardless to handle various edge cases that may occur at runtime", + " upgrade boundaries or if governance intervenes." + ] + } + ] + }, + "calls": { + "type": 367 + }, + "events": null, + "constants": [], + "errors": null, + "index": 57 + }, + { + "name": "Dmp", + "storage": { + "prefix": "Dmp", + "items": [ + { + "name": "DownwardMessageQueues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 787 + } + }, + "fallback": "0x00", + "docs": [ + " The downward messages addressed for a certain para." + ] + }, + { + "name": "DownwardMessageQueueHeads", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 12 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " A mapping that stores the downward message queue MQC head for each para.", + "", + " Each link in this chain has a form:", + " `(prev_head, B, H(M))`, where", + " - `prev_head`: is the previous head hash or zero if none.", + " - `B`: is the relay-chain block number in which a message was appended.", + " - `H(M)`: is the hash of the message being appended." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 469 + } + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 58 + }, + { + "name": "Hrmp", + "storage": { + "prefix": "Hrmp", + "items": [ + { + "name": "HrmpOpenChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 369, + "value": 789 + } + }, + "fallback": "0x00", + "docs": [ + " The set of pending HRMP open channel requests.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpOpenChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 790 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpOpenChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests are initiated by a given sender para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has", + " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpAcceptedChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests were accepted by a given recipient para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with", + " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpCloseChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 369, + "value": 35 + } + }, + "fallback": "0x00", + "docs": [ + " A set of pending HRMP close channel requests that are going to be closed during the session", + " change. Used for checking if a given channel is registered for closure.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpCloseChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 790 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpWatermarks", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The HRMP watermark associated with each para.", + " Invariant:", + " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a", + " session." + ] + }, + { + "name": "HrmpChannels", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 369, + "value": 791 + } + }, + "fallback": "0x00", + "docs": [ + " HRMP channel data associated with each para.", + " Invariant:", + " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session." + ] + }, + { + "name": "HrmpIngressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 774 + } + }, + "fallback": "0x00", + "docs": [ + " Ingress/egress indexes allow to find all the senders and receivers given the opposite side.", + " I.e.", + "", + " (a) ingress index allows to find all the senders for a given recipient.", + " (b) egress index allows to find all the recipients for a given sender.", + "", + " Invariants:", + " - for each ingress index entry for `P` each item `I` in the index should present in", + " `HrmpChannels` as `(I, P)`.", + " - for each egress index entry for `P` each item `E` in the index should present in", + " `HrmpChannels` as `(P, E)`.", + " - there should be no other dangling channels in `HrmpChannels`.", + " - the vectors are sorted." + ] + }, + { + "name": "HrmpEgressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 774 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpChannelContents", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 369, + "value": 792 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for the messages for each channel.", + " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`." + ] + }, + { + "name": "HrmpChannelDigests", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 794 + } + }, + "fallback": "0x00", + "docs": [ + " Maintains a mapping that can be used to answer the question: What paras sent a message at", + " the given block number for a given receiver. Invariants:", + " - The inner `Vec` is never empty.", + " - The inner `Vec` cannot store two same `ParaId`.", + " - The outer vector is sorted ascending by block number and cannot store two items with the", + " same block number." + ] + } + ] + }, + "calls": { + "type": 368 + }, + "events": { + "type": 506 + }, + "constants": [], + "errors": { + "type": 796 + }, + "index": 60 + }, + { + "name": "ParaSessionInfo", + "storage": { + "prefix": "ParaSessionInfo", + "items": [ + { + "name": "AssignmentKeysUnsafe", + "modifier": "Default", + "type": { + "plain": 797 + }, + "fallback": "0x00", + "docs": [ + " Assignment keys for the current session.", + " Note that this API is private due to it being prone to 'off-by-one' at session boundaries.", + " When in doubt, use `Sessions` API instead." + ] + }, + { + "name": "EarliestStoredSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The earliest session for which previous session info is stored." + ] + }, + { + "name": "Sessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 798 + } + }, + "fallback": "0x00", + "docs": [ + " Session information in a rolling window.", + " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`.", + " Does not have any entries before the session index in the first session change notification." + ] + }, + { + "name": "AccountKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 125 + } + }, + "fallback": "0x00", + "docs": [ + " The validator account keys of the validators actively participating in teyrchain consensus." + ] + }, + { + "name": "SessionExecutorParams", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 322 + } + }, + "fallback": "0x00", + "docs": [ + " Executor parameter set for a given session index" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 61 + }, + { + "name": "ParasDisputes", + "storage": { + "prefix": "ParasDisputes", + "items": [ + { + "name": "LastPrunedSession", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The last pruned session, if any. All data stored by this module", + " references sessions." + ] + }, + { + "name": "Disputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 801, + "value": 802 + } + }, + "fallback": "0x00", + "docs": [ + " All ongoing or concluded disputes for the last several sessions." + ] + }, + { + "name": "BackersOnDisputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 801, + "value": 803 + } + }, + "fallback": "0x00", + "docs": [ + " Backing votes stored for each dispute.", + " This storage is used for slashing." + ] + }, + { + "name": "Included", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 801, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " All included blocks on the chain, as well as the block number in this chain that", + " should be reverted back to if the candidate is disputed and determined to be invalid." + ] + }, + { + "name": "Frozen", + "modifier": "Default", + "type": { + "plain": 163 + }, + "fallback": "0x00", + "docs": [ + " Whether the chain is frozen. Starts as `None`. When this is `Some`,", + " the chain will not accept any new teyrchain blocks for backing or inclusion,", + " and its value indicates the last valid block number in the chain.", + " It can only be set back to `None` by governance intervention." + ] + } + ] + }, + "calls": { + "type": 370 + }, + "events": { + "type": 507 + }, + "constants": [], + "errors": { + "type": 804 + }, + "index": 62 + }, + { + "name": "ParasSlashing", + "storage": { + "prefix": "ParasSlashing", + "items": [ + { + "name": "UnappliedSlashes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 801, + "value": 805 + } + }, + "fallback": "0x00", + "docs": [ + " Validators pending dispute slashes." + ] + }, + { + "name": "ValidatorSetCounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " `ValidatorSetCount` per session." + ] + } + ] + }, + "calls": { + "type": 371 + }, + "events": null, + "constants": [], + "errors": { + "type": 809 + }, + "index": 63 + }, + { + "name": "ParaAssignmentProvider", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 64 + }, + { + "name": "Registrar", + "storage": { + "prefix": "Registrar", + "items": [ + { + "name": "PendingSwap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 174 + } + }, + "fallback": "0x00", + "docs": [ + " Pending swap operations." + ] + }, + { + "name": "Paras", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 810 + } + }, + "fallback": "0x00", + "docs": [ + " Amount held on deposit for each para and the original depositor.", + "", + " The given account ID is responsible for registering the code and initial head data, but may", + " only do so if it isn't yet registered. (After that, it's up to governance to do so.)" + ] + }, + { + "name": "NextFreeParaId", + "modifier": "Default", + "type": { + "plain": 174 + }, + "fallback": "0x00000000", + "docs": [ + " The next free `ParaId`." + ] + } + ] + }, + "calls": { + "type": 375 + }, + "events": { + "type": 510 + }, + "constants": [ + { + "name": "ParaDeposit", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The deposit to be paid to run a on-demand teyrchain.", + " This should include the cost for storing the genesis head and validation code." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x80969800000000000000000000000000", + "docs": [ + " The deposit to be paid per byte stored on chain." + ] + } + ], + "errors": { + "type": 812 + }, + "index": 70 + }, + { + "name": "Slots", + "storage": { + "prefix": "Slots", + "items": [ + { + "name": "Leases", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 813 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts held on deposit for each (possibly future) leased teyrchain.", + "", + " The actual amount locked on its behalf by any account at any time is the maximum of the", + " second values of the items in this list whose first value is the account.", + "", + " The first item in the list is the amount locked for the current Lease Period. Following", + " items are for the subsequent lease periods.", + "", + " The default value (an empty list) implies that the teyrchain no longer exists (or never", + " existed) as far as this pallet is concerned.", + "", + " If a teyrchain doesn't exist *yet* but is scheduled to exist in the future, then it", + " will be left-padded with one or more `None`s to denote the fact that nothing is held on", + " deposit for the non-existent chain currently, but is held at some point in the future.", + "", + " It is illegal for a `None` value to trail in the list." + ] + } + ] + }, + "calls": { + "type": 376 + }, + "events": { + "type": 511 + }, + "constants": [ + { + "name": "LeasePeriod", + "type": 4, + "value": "0x00751200", + "docs": [ + " The number of blocks over which a single period lasts." + ] + }, + { + "name": "LeaseOffset", + "type": 4, + "value": "0x00000000", + "docs": [ + " The number of blocks to offset each lease period by." + ] + } + ], + "errors": { + "type": 814 + }, + "index": 71 + }, + { + "name": "Auctions", + "storage": { + "prefix": "Auctions", + "items": [ + { + "name": "AuctionCounter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of auctions started so far." + ] + }, + { + "name": "AuctionInfo", + "modifier": "Optional", + "type": { + "plain": 32 + }, + "fallback": "0x00", + "docs": [ + " Information relating to the current auction, if there is one.", + "", + " The first item in the tuple is the lease period index that the first of the four", + " contiguous lease periods on auction is for. The second is the block number when the", + " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction." + ] + }, + { + "name": "ReservedAmounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 815, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts currently reserved in the accounts of the bidders currently winning", + " (sub-)ranges." + ] + }, + { + "name": "Winning", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 816 + } + }, + "fallback": "0x00", + "docs": [ + " The winning bids for each of the 10 ranges at each sample in the final Ending Period of", + " the current auction. The map's key is the 0-based index into the Sample Size. The", + " first sample of the ending period is 0; the last is `Sample Size - 1`." + ] + } + ] + }, + "calls": { + "type": 377 + }, + "events": { + "type": 512 + }, + "constants": [ + { + "name": "EndingPeriod", + "type": 4, + "value": "0x40190100", + "docs": [ + " The number of blocks over which an auction may be retroactively ended." + ] + }, + { + "name": "SampleLength", + "type": 4, + "value": "0x14000000", + "docs": [ + " The length of each sample to take during the ending period.", + "", + " `EndingPeriod` / `SampleLength` = Total # of Samples" + ] + }, + { + "name": "SlotRangeCount", + "type": 4, + "value": "0x24000000", + "docs": [] + }, + { + "name": "LeasePeriodsPerSlot", + "type": 4, + "value": "0x08000000", + "docs": [] + } + ], + "errors": { + "type": 819 + }, + "index": 72 + }, + { + "name": "Crowdloan", + "storage": { + "prefix": "Crowdloan", + "items": [ + { + "name": "Funds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 174, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " Info on all of the funds." + ] + }, + { + "name": "NewRaise", + "modifier": "Default", + "type": { + "plain": 774 + }, + "fallback": "0x00", + "docs": [ + " The funds that have had additional contributions during the last block. This is used", + " in order to determine which funds should submit new or updated bids." + ] + }, + { + "name": "EndingsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of auctions that have entered into their ending period so far." + ] + }, + { + "name": "NextFundIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Tracker for the next available fund index" + ] + } + ] + }, + "calls": { + "type": 379 + }, + "events": { + "type": 513 + }, + "constants": [ + { + "name": "PalletId", + "type": 630, + "value": "0x70792f6366756e64", + "docs": [ + " `PalletId` for the crowdloan pallet. An appropriate value could be", + " `PalletId(*b\"py/cfund\")`" + ] + }, + { + "name": "MinContribution", + "type": 6, + "value": "0x00743ba40b0000000000000000000000", + "docs": [ + " The minimum amount that may be contributed into a crowdloan. Should almost certainly be", + " at least `ExistentialDeposit`." + ] + }, + { + "name": "RemoveKeysLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of storage keys to remove per extrinsic call." + ] + } + ], + "errors": { + "type": 822 + }, + "index": 73 + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 385 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 383 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 384 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "type": 382 + }, + "events": { + "type": 514 + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "errors": { + "type": 516 + }, + "index": 98 + }, + { + "name": "XcmPallet", + "storage": { + "prefix": "XcmPallet", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": 11 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 11, + "value": 823 + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 828, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 828, + "value": 11 + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 828, + "value": 829 + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": 830 + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": 833 + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 835, + "value": 836 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 840 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "type": { + "plain": 30 + }, + "fallback": "0x00", + "docs": [ + " Global suspension state of the XCM executor." + ] + } + ] + }, + "calls": { + "type": 388 + }, + "events": { + "type": 517 + }, + "constants": [], + "errors": { + "type": 843 + }, + "index": 99 + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 466, + "value": 844 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 466 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 847, + "value": 848 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 465 + }, + "events": { + "type": 519 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 484, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually." + ] + } + ], + "errors": { + "type": 850 + }, + "index": 100 + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 65, + "value": 469 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 468 + }, + "events": { + "type": 521 + }, + "constants": [], + "errors": { + "type": 851 + }, + "index": 101 + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 852 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ] + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 11 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 852 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 11, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ] + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 163 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ] + } + ] + }, + "calls": { + "type": 470 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " The maximum number of authorities that can be added." + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 11, + "value": "0x1c00000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 854 + }, + "index": 200 + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 11 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 11, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 201 + }, + { + "name": "BeefyMmrLeaf", + "storage": { + "prefix": "BeefyMmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 855 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ] + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 855 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 202 + } + ], + "extrinsic": { + "type": 856, + "version": 4, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 858, + "additionalSigned": 35 + }, + { + "identifier": "CheckSpecVersion", + "type": 859, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 860, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 861, + "additionalSigned": 12 + }, + { + "identifier": "CheckMortality", + "type": 862, + "additionalSigned": 12 + }, + { + "identifier": "CheckNonce", + "type": 864, + "additionalSigned": 35 + }, + { + "identifier": "CheckWeight", + "type": 865, + "additionalSigned": 35 + }, + { + "identifier": "ChargeTransactionPayment", + "type": 866, + "additionalSigned": 35 + }, + { + "identifier": "PrevalidateAttests", + "type": 867, + "additionalSigned": 35 + }, + { + "identifier": "CheckMetadataHash", + "type": 868, + "additionalSigned": 33 + } + ] + }, + "type": 870 + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/pezkuwi-rpc.ts b/packages/types-support/src/metadata/v14/pezkuwi-rpc.ts new file mode 100644 index 0000000..8f3eb59 --- /dev/null +++ b/packages/types-support/src/metadata/v14/pezkuwi-rpc.ts @@ -0,0 +1,128 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "methods": [ + "account_nextIndex", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v14/pezkuwi-types.json b/packages/types-support/src/metadata/v14/pezkuwi-types.json new file mode 100644 index 0000000..5ecdd7b --- /dev/null +++ b/packages/types-support/src/metadata/v14/pezkuwi-types.json @@ -0,0 +1,53294 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 9 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 9, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 9, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 9, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 10, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 10, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 11 + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 15, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 16 + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 19 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 20 + }, + { + "name": "T", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 522, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 20, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 110, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 21, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 36, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 38, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 41, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "pallet_im_online::Event", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 98, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 481, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 486, + "typeName": "claims::Event", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 487, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 488, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 489, + "typeName": "pallet_identity::Event", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 490, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 491, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 492, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 493, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 494, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 498, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 499, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 500, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 501, + "typeName": "teyrchains_inclusion::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 505, + "typeName": "teyrchains_paras::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 506, + "typeName": "teyrchains_hrmp::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 507, + "typeName": "teyrchains_disputes::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 510, + "typeName": "paras_registrar::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 511, + "typeName": "slots::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 512, + "typeName": "auctions::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 513, + "typeName": "crowdloan::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 514, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 517, + "typeName": "pallet_xcm::Event", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 519, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 521, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 101, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 22, + "typeName": "DispatchInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 25, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 22, + "typeName": "DispatchInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 23, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 24, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 26, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 17, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 33, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 34, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 33, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 33, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 33, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given task can never be executed since it is overweight." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 32, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 33, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 34, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 35 + }, + { + "name": "E", + "type": 25 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 35, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 25, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 37, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 39, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 40, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 42, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "The stakers' rewards are getting paid." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 44, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 46, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 42, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 30, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 43 + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 48, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 13, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 48, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 51, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 51, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 52 + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 53, + 11 + ] + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 54, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "sp_core", + "ed25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 55, + "type": { + "path": [ + "pezkuwi_runtime", + "pallet_im_online", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "HeartbeatReceived", + "fields": [ + { + "name": "authority_id", + "type": 56, + "typeName": "super::sr25519::AuthorityId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AllGood", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SomeOffline", + "fields": [ + { + "name": "offline", + "type": 58, + "typeName": "sp_std::vec::Vec>", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 56, + "type": { + "path": [ + "pezkuwi_runtime", + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "sp_core", + "sr25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 59 + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 60 + ] + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 62, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 61, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 62, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 63 + } + }, + "docs": [] + } + }, + { + "id": 63, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New proposal." + ] + }, + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "slashed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A proposal was rejected; funds were slashed." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 65, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 10, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 11, + "typeName": "::Id", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 11, + "typeName": "::Id", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 65, + "type": { + "path": [ + "pezkuwi_runtime_common", + "impls", + "VersionedLocatableAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": "location", + "type": 66, + "typeName": "xcm::v3::MultiLocation", + "docs": [] + }, + { + "name": "asset_id", + "type": 75, + "typeName": "xcm::v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 76, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 89, + "typeName": "xcm::v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 66, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 67, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 67, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 70, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 70, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 70, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 72, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 73, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 74, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 71 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 71, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 71, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Moniker", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 77, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 77, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 82, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 80, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 80, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 80, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 72, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 73, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 74, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 81 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 81, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 82, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 84, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 85, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 87, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 79 + } + }, + "docs": [] + } + }, + { + "id": 89, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 76, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "v2::MultiLocation", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "v3::MultiLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [ + "xcm", + "v2", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 92, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 92, + "type": { + "path": [ + "xcm", + "v2", + "multilocation", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 93, + "type": { + "path": [ + "xcm", + "v2", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 94, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 94, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "index", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 94, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "key", + "type": 72, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "WeakBoundedVec>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 96, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 97, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [ + "xcm", + "v2", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Named", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "WeakBoundedVec>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [ + "xcm", + "v2", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Named", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "WeakBoundedVec>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [ + "xcm", + "v2", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 99, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 101, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 101, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 480, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 480, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 480, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 480, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 480, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 480, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 100, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 102 + }, + { + "name": "H", + "type": 478 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 479, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 102, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 103, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 107, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 109, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 111, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 120, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 121, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 127, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 142, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 162, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 169, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 179, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 180, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 188, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 190, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 192, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 236, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 239, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 242, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 243, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 244, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 305, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 306, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 319, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Configuration", + "fields": [ + { + "name": null, + "type": 320, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "ParasShared", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 329, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "fields": [ + { + "name": null, + "type": 330, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 365, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Initializer", + "fields": [ + { + "name": null, + "type": 367, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 370, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "fields": [ + { + "name": null, + "type": 371, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 376, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 377, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 379, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 382, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 388, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 465, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 468, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 470, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 200, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 103, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::remark`]." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::set_heap_pages`]." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::set_code`]." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::set_code_without_checks`]." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 104, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::set_storage`]." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 106, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::kill_storage`]." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 13, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::kill_prefix`]." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::remark_with_event`]." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::authorize_upgrade`]." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "See [`Pallet::authorize_upgrade_without_checks`]." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "See [`Pallet::apply_authorized_upgrade`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 104, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 105 + } + }, + "docs": [] + } + }, + { + "id": 105, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 106, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 107, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 108, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::schedule`]." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::cancel`]." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 108, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::schedule_named`]." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::cancel_named`]." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 108, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::schedule_after`]." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 108, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::schedule_named_after`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 108, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 32 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 32, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 109, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::note_preimage`]." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::unnote_preimage`]." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::request_preimage`]." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::unrequest_preimage`]." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 110, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::ensure_updated`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 110, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 111, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 112, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::report_equivocation`]." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 112, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::report_equivocation_unsigned`]." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 117, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::plan_config_change`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 112, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 113 + }, + { + "name": "Id", + "type": 114 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 114, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 115, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 113, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 113, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 12, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 69, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 12, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 12, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 14, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 106, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 118, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 119, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 11, + 11 + ] + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 10, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::set`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 121, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::claim`]." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::transfer`]." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::free`]." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::force_transfer`]." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::freeze`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 122, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 35 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 123, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 35 + } + }, + "docs": [] + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::transfer_allow_death`]." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::force_transfer`]." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::transfer_keep_alive`]." + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::transfer_all`]." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::force_unreserve`]." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::upgrade_accounts`]." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::force_set_balance`]." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 126, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::force_adjust_total_issuance`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 125, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 42, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::bond`]." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::bond_extra`]." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::unbond`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::withdraw_unbonded`]." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 44, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::validate`]." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 128, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::nominate`]." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "See [`Pallet::chill`]." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 42, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::set_payee`]." + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "See [`Pallet::set_controller`]." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::set_validator_count`]." + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "See [`Pallet::increase_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 129, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "See [`Pallet::scale_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "See [`Pallet::force_no_eras`]." + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "See [`Pallet::force_new_era`]." + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "See [`Pallet::set_invulnerables`]." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "See [`Pallet::force_unstake`]." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "See [`Pallet::force_new_era_always`]." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 130, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "See [`Pallet::cancel_deferred_slash`]." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "See [`Pallet::payout_stakers`]." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "See [`Pallet::rebond`]." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "See [`Pallet::reap_stash`]." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 128, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "See [`Pallet::kick`]." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 131, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 131, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 132, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 132, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 133, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 134, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "See [`Pallet::set_staking_configs`]." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "See [`Pallet::chill_other`]." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "See [`Pallet::force_apply_min_commission`]." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "See [`Pallet::set_min_commission`]." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "See [`Pallet::payout_stakers_by_page`]." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "See [`Pallet::update_payee`]." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 135, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "See [`Pallet::deprecate_controller_batch`]." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 137, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 138, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "See [`Pallet::restore_ledger`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 128, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 122 + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 132, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 129 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 129, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 134, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 43 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 43, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 136, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 138, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 139 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 139, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 140 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 141, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 69, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 140 + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 143, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::set_keys`]." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "See [`Pallet::purge_keys`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 143, + "type": { + "path": [ + "pezkuwi_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 53, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 114, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_validator", + "type": 144, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_assignment", + "type": 145, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 146, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 147, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "validator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 145, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "assignment_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 147, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 148, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "sp_core", + "ecdsa", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 149, + "typeName": "[u8; PUBLIC_KEY_SERIALIZED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 151, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::report_equivocation`]." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 151, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::report_equivocation_unsigned`]." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::note_stalled`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 151, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 12 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 11, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 152, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 12 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 153, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 159, + "typeName": "grandpa::Equivocation,\nAuthoritySignature>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 53 + }, + { + "name": "V", + "type": 154 + }, + { + "name": "S", + "type": 155 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 53, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 158, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 158, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 12 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 12, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 156, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [ + "sp_core", + "ed25519", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 157, + "typeName": "[u8; 64]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 155 + ] + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 53 + }, + { + "name": "V", + "type": 160 + }, + { + "name": "S", + "type": 155 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 53, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 161, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 161, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 12 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 12, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 160, + 155 + ] + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_spend", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::propose_spend`]." + ] + }, + { + "name": "reject_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 69, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::reject_proposal`]." + ] + }, + { + "name": "approve_proposal", + "fields": [ + { + "name": "proposal_id", + "type": 69, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::approve_proposal`]." + ] + }, + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::spend_local`]." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 69, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::remove_approval`]." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 61, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 163, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::spend`]." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::payout`]." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::check_status`]." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::void_spend`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 163, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 69, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 165, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::vote`]." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 167, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::delegate`]." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::undelegate`]." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::unlock`]." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 168, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::remove_vote`]." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::remove_other_vote`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 166, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 166, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 100 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 100, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 170, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 101, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 177, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::submit`]." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::place_decision_deposit`]." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::refund_decision_deposit`]." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::cancel`]." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::kill`]." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::nudge_referendum`]." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::one_fewer_deciding`]." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::refund_submission_deposit`]." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 178, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::set_metadata`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 170, + "type": { + "path": [ + "pezkuwi_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 172, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "TeyrchainsOrigin", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "teyrchains_origin::Origin", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 175, + "typeName": "pallet_xcm::Origin", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Void", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::\n__private::Void", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 171, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [ + "pezkuwi_runtime", + "governance", + "origins", + "pallet_custom_origins", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingAdmin", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Treasurer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "FellowshipAdmin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "GeneralAdmin", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AuctionAdmin", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LeaseAdmin", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ReferendumCanceller", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ReferendumKiller", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "SmallTipper", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BigTipper", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "SmallSpender", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MediumSpender", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "BigSpender", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "WhitelistedCaller", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "WishForChange", + "fields": [], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "origin", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "Id" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Response", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [ + "sp_core", + "Void" + ], + "params": [], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::whitelist_call`]." + ] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::remove_whitelisted_call`]." + ] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::dispatch_whitelisted_call`]." + ] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::dispatch_whitelisted_call_with_preimage`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 180, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 181, + "typeName": "EcdsaSignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::claim`]." + ] + }, + { + "name": "mint_claim", + "fields": [ + { + "name": "who", + "type": 183, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vesting_schedule", + "type": 184, + "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>", + "docs": [] + }, + { + "name": "statement", + "type": 186, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::mint_claim`]." + ] + }, + { + "name": "claim_attest", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 181, + "typeName": "EcdsaSignature", + "docs": [] + }, + { + "name": "statement", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::claim_attest`]." + ] + }, + { + "name": "attest", + "fields": [ + { + "name": "statement", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::attest`]." + ] + }, + { + "name": "move_claim", + "fields": [ + { + "name": "old", + "type": 183, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "new", + "type": 183, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "maybe_preclaim", + "type": 136, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::move_claim`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 181, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EcdsaSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 182, + "typeName": "[u8; 65]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EthereumAddress" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 72, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 184, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 185 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 185, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 187 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 187, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "StatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Regular", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Saft", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "See [`Pallet::vest`]." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::vest_other`]." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 189, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::vested_transfer`]." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 189, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::force_vested_transfer`]." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::merge_schedules`]." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 122, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::force_remove_vesting_schedule`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 189, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 191, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::batch`]." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::as_derivative`]." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 191, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::batch_all`]." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 170, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::dispatch_as`]." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 191, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::force_batch`]." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::with_weight`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 191, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 102 + } + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::add_registrar`]." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 193, + "typeName": "Box", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::set_identity`]." + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 228, + "typeName": "Vec<(T::AccountId, Data)>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::set_subs`]." + ] + }, + { + "name": "clear_identity", + "fields": [], + "index": 3, + "docs": [ + "See [`Pallet::clear_identity`]." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 69, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "max_fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::request_judgement`]." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::cancel_request`]." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::set_fee`]." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "new", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::set_account_id`]." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fields", + "type": 11, + "typeName": "::\nFieldsIdentifier", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::set_fields`]." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 69, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "judgement", + "type": 230, + "typeName": "Judgement>", + "docs": [] + }, + { + "name": "identity", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::provide_judgement`]." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "See [`Pallet::kill_identity`]." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 196, + "typeName": "Data", + "docs": [] + } + ], + "index": 11, + "docs": [ + "See [`Pallet::add_sub`]." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 196, + "typeName": "Data", + "docs": [] + } + ], + "index": 12, + "docs": [ + "See [`Pallet::rename_sub`]." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "See [`Pallet::remove_sub`]." + ] + }, + { + "name": "quit_sub", + "fields": [], + "index": 14, + "docs": [ + "See [`Pallet::quit_sub`]." + ] + }, + { + "name": "add_username_authority", + "fields": [ + { + "name": "authority", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "suffix", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "See [`Pallet::add_username_authority`]." + ] + }, + { + "name": "remove_username_authority", + "fields": [ + { + "name": "authority", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "See [`Pallet::remove_username_authority`]." + ] + }, + { + "name": "set_username_for", + "fields": [ + { + "name": "who", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "username", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "signature", + "type": 231, + "typeName": "Option", + "docs": [] + } + ], + "index": 17, + "docs": [ + "See [`Pallet::set_username_for`]." + ] + }, + { + "name": "accept_username", + "fields": [ + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 18, + "docs": [ + "See [`Pallet::accept_username`]." + ] + }, + { + "name": "remove_expired_approval", + "fields": [ + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 19, + "docs": [ + "See [`Pallet::remove_expired_approval`]." + ] + }, + { + "name": "set_primary_username", + "fields": [ + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 20, + "docs": [ + "See [`Pallet::set_primary_username`]." + ] + }, + { + "name": "remove_dangling_username", + "fields": [ + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 21, + "docs": [ + "See [`Pallet::remove_dangling_username`]." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 193, + "type": { + "path": [ + "pallet_identity", + "legacy", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 194, + "typeName": "BoundedVec<(Data, Data), FieldLimit>", + "docs": [] + }, + { + "name": "display", + "type": 196, + "typeName": "Data", + "docs": [] + }, + { + "name": "legal", + "type": 196, + "typeName": "Data", + "docs": [] + }, + { + "name": "web", + "type": 196, + "typeName": "Data", + "docs": [] + }, + { + "name": "riot", + "type": 196, + "typeName": "Data", + "docs": [] + }, + { + "name": "email", + "type": 196, + "typeName": "Data", + "docs": [] + }, + { + "name": "pgp_fingerprint", + "type": 227, + "typeName": "Option<[u8; 20]>", + "docs": [] + }, + { + "name": "image", + "type": 196, + "typeName": "Data", + "docs": [] + }, + { + "name": "twitter", + "type": 196, + "typeName": "Data", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 195 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 226, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 196, + 196 + ] + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Raw0", + "fields": [ + { + "name": null, + "type": 197, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw1", + "fields": [ + { + "name": null, + "type": 198, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Raw2", + "fields": [ + { + "name": null, + "type": 199, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Raw3", + "fields": [ + { + "name": null, + "type": 200, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Raw4", + "fields": [ + { + "name": null, + "type": 17, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Raw5", + "fields": [ + { + "name": null, + "type": 201, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Raw6", + "fields": [ + { + "name": null, + "type": 202, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Raw7", + "fields": [ + { + "name": null, + "type": 203, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Raw8", + "fields": [ + { + "name": null, + "type": 204, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Raw9", + "fields": [ + { + "name": null, + "type": 205, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Raw10", + "fields": [ + { + "name": null, + "type": 206, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Raw11", + "fields": [ + { + "name": null, + "type": 207, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Raw12", + "fields": [ + { + "name": null, + "type": 208, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Raw13", + "fields": [ + { + "name": null, + "type": 209, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Raw14", + "fields": [ + { + "name": null, + "type": 210, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Raw15", + "fields": [ + { + "name": null, + "type": 211, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Raw16", + "fields": [ + { + "name": null, + "type": 48, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Raw17", + "fields": [ + { + "name": null, + "type": 212, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Raw18", + "fields": [ + { + "name": null, + "type": 213, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Raw19", + "fields": [ + { + "name": null, + "type": 214, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Raw20", + "fields": [ + { + "name": null, + "type": 72, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Raw21", + "fields": [ + { + "name": null, + "type": 215, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Raw22", + "fields": [ + { + "name": null, + "type": 216, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Raw23", + "fields": [ + { + "name": null, + "type": 217, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Raw24", + "fields": [ + { + "name": null, + "type": 218, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Raw25", + "fields": [ + { + "name": null, + "type": 219, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Raw26", + "fields": [ + { + "name": null, + "type": 220, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Raw27", + "fields": [ + { + "name": null, + "type": 221, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Raw28", + "fields": [ + { + "name": null, + "type": 222, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Raw29", + "fields": [ + { + "name": null, + "type": 223, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Raw30", + "fields": [ + { + "name": null, + "type": 224, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Raw31", + "fields": [ + { + "name": null, + "type": 225, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Raw32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Sha256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Keccak256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "ShaThree256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 197, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 0, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 198, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 199, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 200, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 201, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 24, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 25, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 26, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 27, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 28, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 29, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 30, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 31, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 195 + } + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 72 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 72, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 229 + } + }, + "docs": [] + } + }, + { + "id": 229, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 196 + ] + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FeePaid", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reasonable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "KnownGood", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "OutOfDate", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LowQuality", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Erroneous", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 232 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 232, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 233, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 234, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [ + "sp_core", + "sr25519", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 157, + "typeName": "[u8; 64]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [ + "sp_core", + "ecdsa", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 182, + "typeName": "[u8; SIGNATURE_SERIALIZED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 237, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::proxy`]." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::add_proxy`]." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::remove_proxy`]." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "See [`Pallet::remove_proxies`]." + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 100, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::create_pure`]." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 69, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::kill_pure`]." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 12, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::announce`]." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 12, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::remove_announcement`]." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 12, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::reject_announcement`]." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 237, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::proxy_announced`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 237, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 238 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 238, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [ + "pezkuwi_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "IdentityJudgement", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::as_multi_threshold_1`]." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 240, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 102, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::as_multi`]." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 240, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::approve_as_multi`]." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 241, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::cancel_as_multi`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 240, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 241 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 241, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 242, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::propose_bounty`]." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::approve_bounty`]." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::propose_curator`]." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::unassign_curator`]." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::accept_curator`]." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::award_bounty`]." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::claim_bounty`]." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::close_bounty`]." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::extend_bounty_expiry`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 243, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::add_child_bounty`]." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::propose_curator`]." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::accept_curator`]." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::unassign_curator`]." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::award_child_bounty`]." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::claim_child_bounty`]." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 69, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::close_child_bounty`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 244, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 245, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 298, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::submit_unsigned`]." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 299, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::set_minimum_untrusted_score`]." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 300, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::set_emergency_election_result`]." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 245, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::submit`]." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 163, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_max_targets", + "type": 163, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::governance_fallback`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 246 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 246, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 297, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 246, + "type": { + "path": [ + "pezkuwi_runtime", + "NposCompactSolution16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 247, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 250, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 255, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 258, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 261, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 264, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 267, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 270, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 273, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 276, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 279, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 282, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 285, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 288, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 291, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 294, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 248 + } + }, + "docs": [] + } + }, + { + "id": 248, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 100 + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 251 + } + }, + "docs": [] + } + }, + { + "id": 251, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 252, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 252, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 249, + 253 + ] + }, + "docs": [] + } + }, + { + "id": 253, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 254 + } + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 100, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 256 + } + }, + "docs": [] + } + }, + { + "id": 256, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 257, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 259 + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 260, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 262 + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 263, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 265 + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 266, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 267, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 268 + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 269, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 269, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 270, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 271 + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 272, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 274 + } + }, + "docs": [] + } + }, + { + "id": 274, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 275, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 277 + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 278, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 280 + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 281, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 283 + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 284, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 286 + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 287, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 289 + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 290, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 292 + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 293, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 295 + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 296, + 249 + ] + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 69, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 297 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 297, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 301 + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 302 + ] + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 303, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 304 + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::rebag`]." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::put_in_front_of`]." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::put_in_front_of_other`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 306, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::join`]." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 307, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::bond_extra`]." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "See [`Pallet::claim_payout`]." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::unbond`]." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::pool_withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::withdraw_unbonded`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::create`]." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::create_with_pool_id`]." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::nominate`]." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 308, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::set_state`]." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "See [`Pallet::set_metadata`]." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 309, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 309, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 310, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 310, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 310, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 311, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "See [`Pallet::set_configs`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 312, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 312, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 312, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "See [`Pallet::update_roles`]." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "See [`Pallet::chill`]." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 122, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 307, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "See [`Pallet::bond_extra_other`]." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 313, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "See [`Pallet::set_claim_permission`]." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "See [`Pallet::claim_payout_other`]." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 314, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "See [`Pallet::set_commission`]." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "See [`Pallet::set_commission_max`]." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 316, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "See [`Pallet::set_commission_change_rate`]." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "See [`Pallet::claim_commission`]." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "See [`Pallet::adjust_pool_deposit`]." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 317, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "See [`Pallet::set_commission_claim_permission`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 307, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 43 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 43, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 315 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 315, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 43, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 317, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 318 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 318, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "See [`Pallet::register_fast_unstake`]." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "See [`Pallet::deregister`]." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::control`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 320, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_upgrade_cooldown", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::set_validation_upgrade_cooldown`]." + ] + }, + { + "name": "set_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::set_validation_upgrade_delay`]." + ] + }, + { + "name": "set_code_retention_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::set_code_retention_period`]." + ] + }, + { + "name": "set_max_code_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::set_max_code_size`]." + ] + }, + { + "name": "set_max_pov_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::set_max_pov_size`]." + ] + }, + { + "name": "set_max_head_data_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::set_max_head_data_size`]." + ] + }, + { + "name": "set_coretime_cores", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::set_coretime_cores`]." + ] + }, + { + "name": "set_on_demand_retries", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::set_on_demand_retries`]." + ] + }, + { + "name": "set_group_rotation_frequency", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::set_group_rotation_frequency`]." + ] + }, + { + "name": "set_paras_availability_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::set_paras_availability_period`]." + ] + }, + { + "name": "set_scheduling_lookahead", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "See [`Pallet::set_scheduling_lookahead`]." + ] + }, + { + "name": "set_max_validators_per_core", + "fields": [ + { + "name": "new", + "type": 163, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "See [`Pallet::set_max_validators_per_core`]." + ] + }, + { + "name": "set_max_validators", + "fields": [ + { + "name": "new", + "type": 163, + "typeName": "Option", + "docs": [] + } + ], + "index": 13, + "docs": [ + "See [`Pallet::set_max_validators`]." + ] + }, + { + "name": "set_dispute_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "See [`Pallet::set_dispute_period`]." + ] + }, + { + "name": "set_dispute_post_conclusion_acceptance_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 15, + "docs": [ + "See [`Pallet::set_dispute_post_conclusion_acceptance_period`]." + ] + }, + { + "name": "set_no_show_slots", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "See [`Pallet::set_no_show_slots`]." + ] + }, + { + "name": "set_n_delay_tranches", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "See [`Pallet::set_n_delay_tranches`]." + ] + }, + { + "name": "set_zeroth_delay_tranche_width", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "See [`Pallet::set_zeroth_delay_tranche_width`]." + ] + }, + { + "name": "set_needed_approvals", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 21, + "docs": [ + "See [`Pallet::set_needed_approvals`]." + ] + }, + { + "name": "set_relay_vrf_modulo_samples", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 22, + "docs": [ + "See [`Pallet::set_relay_vrf_modulo_samples`]." + ] + }, + { + "name": "set_max_upward_queue_count", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "See [`Pallet::set_max_upward_queue_count`]." + ] + }, + { + "name": "set_max_upward_queue_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 24, + "docs": [ + "See [`Pallet::set_max_upward_queue_size`]." + ] + }, + { + "name": "set_max_downward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 25, + "docs": [ + "See [`Pallet::set_max_downward_message_size`]." + ] + }, + { + "name": "set_max_upward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 27, + "docs": [ + "See [`Pallet::set_max_upward_message_size`]." + ] + }, + { + "name": "set_max_upward_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 28, + "docs": [ + "See [`Pallet::set_max_upward_message_num_per_candidate`]." + ] + }, + { + "name": "set_hrmp_open_request_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "See [`Pallet::set_hrmp_open_request_ttl`]." + ] + }, + { + "name": "set_hrmp_sender_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 30, + "docs": [ + "See [`Pallet::set_hrmp_sender_deposit`]." + ] + }, + { + "name": "set_hrmp_recipient_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 31, + "docs": [ + "See [`Pallet::set_hrmp_recipient_deposit`]." + ] + }, + { + "name": "set_hrmp_channel_max_capacity", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 32, + "docs": [ + "See [`Pallet::set_hrmp_channel_max_capacity`]." + ] + }, + { + "name": "set_hrmp_channel_max_total_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 33, + "docs": [ + "See [`Pallet::set_hrmp_channel_max_total_size`]." + ] + }, + { + "name": "set_hrmp_max_teyrchain_inbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [ + "See [`Pallet::set_hrmp_max_teyrchain_inbound_channels`]." + ] + }, + { + "name": "set_hrmp_channel_max_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 36, + "docs": [ + "See [`Pallet::set_hrmp_channel_max_message_size`]." + ] + }, + { + "name": "set_hrmp_max_teyrchain_outbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 37, + "docs": [ + "See [`Pallet::set_hrmp_max_teyrchain_outbound_channels`]." + ] + }, + { + "name": "set_hrmp_max_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 39, + "docs": [ + "See [`Pallet::set_hrmp_max_message_num_per_candidate`]." + ] + }, + { + "name": "set_pvf_voting_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 42, + "docs": [ + "See [`Pallet::set_pvf_voting_ttl`]." + ] + }, + { + "name": "set_minimum_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 43, + "docs": [ + "See [`Pallet::set_minimum_validation_upgrade_delay`]." + ] + }, + { + "name": "set_bypass_consistency_check", + "fields": [ + { + "name": "new", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 44, + "docs": [ + "See [`Pallet::set_bypass_consistency_check`]." + ] + }, + { + "name": "set_async_backing_params", + "fields": [ + { + "name": "new", + "type": 321, + "typeName": "AsyncBackingParams", + "docs": [] + } + ], + "index": 45, + "docs": [ + "See [`Pallet::set_async_backing_params`]." + ] + }, + { + "name": "set_executor_params", + "fields": [ + { + "name": "new", + "type": 322, + "typeName": "ExecutorParams", + "docs": [] + } + ], + "index": 46, + "docs": [ + "See [`Pallet::set_executor_params`]." + ] + }, + { + "name": "set_on_demand_base_fee", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 47, + "docs": [ + "See [`Pallet::set_on_demand_base_fee`]." + ] + }, + { + "name": "set_on_demand_fee_variability", + "fields": [ + { + "name": "new", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 48, + "docs": [ + "See [`Pallet::set_on_demand_fee_variability`]." + ] + }, + { + "name": "set_on_demand_queue_max_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 49, + "docs": [ + "See [`Pallet::set_on_demand_queue_max_size`]." + ] + }, + { + "name": "set_on_demand_target_queue_utilization", + "fields": [ + { + "name": "new", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 50, + "docs": [ + "See [`Pallet::set_on_demand_target_queue_utilization`]." + ] + }, + { + "name": "set_on_demand_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 51, + "docs": [ + "See [`Pallet::set_on_demand_ttl`]." + ] + }, + { + "name": "set_minimum_backing_votes", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 52, + "docs": [ + "See [`Pallet::set_minimum_backing_votes`]." + ] + }, + { + "name": "set_node_feature", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "value", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 53, + "docs": [ + "See [`Pallet::set_node_feature`]." + ] + }, + { + "name": "set_approval_voting_params", + "fields": [ + { + "name": "new", + "type": 327, + "typeName": "ApprovalVotingParams", + "docs": [] + } + ], + "index": 54, + "docs": [ + "See [`Pallet::set_approval_voting_params`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 321, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "async_backing", + "AsyncBackingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "executor_params", + "ExecutorParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 323, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 324 + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "executor_params", + "ExecutorParam" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxMemoryPages", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StackLogicalMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "StackNativeMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PrecheckingMaxMemory", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PvfPrepTimeout", + "fields": [ + { + "name": null, + "type": 325, + "typeName": "PvfPrepKind", + "docs": [] + }, + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "PvfExecTimeout", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "PvfExecKind", + "docs": [] + }, + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "WasmExtBulkMemory", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 325, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "PvfPrepKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Precheck", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Prepare", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "PvfExecKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Backing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approval", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 327, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "ApprovalVotingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_approval_coalesce_count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 329, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 330, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [ + { + "name": "data", + "type": 331, + "typeName": "TeyrchainsInherentData>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::enter`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 331, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "InherentData" + ], + "params": [ + { + "name": "HDR", + "type": 113 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bitfields", + "type": 332, + "typeName": "UncheckedSignedAvailabilityBitfields", + "docs": [] + }, + { + "name": "backed_candidates", + "type": 339, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "disputes", + "type": 356, + "typeName": "MultiDisputeStatementSet", + "docs": [] + }, + { + "name": "parent_header", + "type": 113, + "typeName": "HDR", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 332, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 333 + } + }, + "docs": [] + } + }, + { + "id": 333, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "signed", + "UncheckedSigned" + ], + "params": [ + { + "name": "Payload", + "type": 334 + }, + { + "name": "RealPayload", + "type": 334 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 334, + "typeName": "Payload", + "docs": [] + }, + { + "name": "validator_index", + "type": 337, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "signature", + "type": 338, + "typeName": "ValidatorSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 334, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "AvailabilityBitfield" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 335, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 335, + "type": { + "path": [], + "params": [], + "def": { + "bitSequence": { + "bitStoreType": 2, + "bitOrderType": 336 + } + }, + "docs": [] + } + }, + { + "id": 336, + "type": { + "path": [ + "bitvec", + "order", + "Lsb0" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 337, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "ValidatorIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "validator_app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 233, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 340 + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "BackedCandidate" + ], + "params": [ + { + "name": "H", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "candidate", + "type": 341, + "typeName": "CommittedCandidateReceipt", + "docs": [] + }, + { + "name": "validity_votes", + "type": 354, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_indices", + "type": 335, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "CommittedCandidateReceipt" + ], + "params": [ + { + "name": "H", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 342, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments", + "type": 346, + "typeName": "CandidateCommitments", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "CandidateDescriptor" + ], + "params": [ + { + "name": "H", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "Id", + "docs": [] + }, + { + "name": "relay_parent", + "type": 12, + "typeName": "H", + "docs": [] + }, + { + "name": "collator", + "type": 343, + "typeName": "CollatorId", + "docs": [] + }, + { + "name": "persisted_validation_data_hash", + "type": 12, + "typeName": "Hash", + "docs": [] + }, + { + "name": "pov_hash", + "type": 12, + "typeName": "Hash", + "docs": [] + }, + { + "name": "erasure_root", + "type": 12, + "typeName": "Hash", + "docs": [] + }, + { + "name": "signature", + "type": 344, + "typeName": "CollatorSignature", + "docs": [] + }, + { + "name": "para_head", + "type": 12, + "typeName": "Hash", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 345, + "typeName": "ValidationCodeHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "collator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "collator_app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 233, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCodeHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "CandidateCommitments" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 347, + "typeName": "UpwardMessages", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 348, + "typeName": "HorizontalMessages", + "docs": [] + }, + { + "name": "new_validation_code", + "type": 351, + "typeName": "Option", + "docs": [] + }, + { + "name": "head_data", + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 106, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 349 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 350, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 349, + "type": { + "path": [ + "pezkuwi_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 174 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 174, + "typeName": "Id", + "docs": [] + }, + { + "name": "data", + "type": 13, + "typeName": "sp_std::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 349 + } + }, + "docs": [] + } + }, + { + "id": 351, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 352 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 352, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HeadData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 354, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 355 + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "ValidityAttestation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Implicit", + "fields": [ + { + "name": null, + "type": 338, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Explicit", + "fields": [ + { + "name": null, + "type": 338, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 357 + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "DisputeStatementSet" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "candidate_hash", + "type": 358, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "statements", + "type": 359, + "typeName": "Vec<(DisputeStatement, ValidatorIndex, ValidatorSignature)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "pezkuwi_core_primitives", + "CandidateHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 360 + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 361, + 337, + 338 + ] + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "DisputeStatement" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [ + { + "name": null, + "type": 362, + "typeName": "ValidDisputeStatementKind", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 364, + "typeName": "InvalidDisputeStatementKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "ValidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BackingSeconded", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BackingValid", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "Hash", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ApprovalChecking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ApprovalCheckingMultipleCandidates", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 358 + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "InvalidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_current_code", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::force_set_current_code`]." + ] + }, + { + "name": "force_set_current_head", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 353, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::force_set_current_head`]." + ] + }, + { + "name": "force_schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::force_schedule_code_upgrade`]." + ] + }, + { + "name": "force_note_new_head", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 353, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::force_note_new_head`]." + ] + }, + { + "name": "force_queue_action", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::force_queue_action`]." + ] + }, + { + "name": "add_trusted_validation_code", + "fields": [ + { + "name": "validation_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::add_trusted_validation_code`]." + ] + }, + { + "name": "poke_unused_validation_code", + "fields": [ + { + "name": "validation_code_hash", + "type": 345, + "typeName": "ValidationCodeHash", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::poke_unused_validation_code`]." + ] + }, + { + "name": "include_pvf_check_statement", + "fields": [ + { + "name": "stmt", + "type": 366, + "typeName": "PvfCheckStatement", + "docs": [] + }, + { + "name": "signature", + "type": 338, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::include_pvf_check_statement`]." + ] + }, + { + "name": "force_set_most_recent_context", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "context", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::force_set_most_recent_context`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 366, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "PvfCheckStatement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "accept", + "type": 30, + "typeName": "bool", + "docs": [] + }, + { + "name": "subject", + "type": 345, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_index", + "type": 337, + "typeName": "ValidatorIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_approve", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::force_approve`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 368, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "hrmp_init_open_channel", + "fields": [ + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::hrmp_init_open_channel`]." + ] + }, + { + "name": "hrmp_accept_open_channel", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::hrmp_accept_open_channel`]." + ] + }, + { + "name": "hrmp_close_channel", + "fields": [ + { + "name": "channel_id", + "type": 369, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::hrmp_close_channel`]." + ] + }, + { + "name": "force_clean_hrmp", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "num_inbound", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_outbound", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::force_clean_hrmp`]." + ] + }, + { + "name": "force_process_hrmp_open", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::force_process_hrmp_open`]." + ] + }, + { + "name": "force_process_hrmp_close", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::force_process_hrmp_close`]." + ] + }, + { + "name": "hrmp_cancel_open_request", + "fields": [ + { + "name": "channel_id", + "type": 369, + "typeName": "HrmpChannelId", + "docs": [] + }, + { + "name": "open_requests", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::hrmp_cancel_open_request`]." + ] + }, + { + "name": "force_open_hrmp_channel", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::force_open_hrmp_channel`]." + ] + }, + { + "name": "establish_system_channel", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::establish_system_channel`]." + ] + }, + { + "name": "poke_channel_deposits", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::poke_channel_deposits`]." + ] + }, + { + "name": "establish_channel_with_system", + "fields": [ + { + "name": "target_system_chain", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "See [`Pallet::establish_channel_with_system`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 369, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HrmpChannelId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "Id", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "Id", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_unfreeze", + "fields": [], + "index": 0, + "docs": [ + "See [`Pallet::force_unfreeze`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 371, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_dispute_lost_unsigned", + "fields": [ + { + "name": "dispute_proof", + "type": 372, + "typeName": "Box", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::report_dispute_lost_unsigned`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 372, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "slashing", + "DisputeProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "time_slot", + "type": 373, + "typeName": "DisputesTimeSlot", + "docs": [] + }, + { + "name": "kind", + "type": 374, + "typeName": "SlashingOffenceKind", + "docs": [] + }, + { + "name": "validator_index", + "type": 337, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "validator_id", + "type": 144, + "typeName": "ValidatorId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "slashing", + "DisputesTimeSlot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "candidate_hash", + "type": 358, + "typeName": "CandidateHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 374, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "slashing", + "SlashingOffenceKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ForInvalid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AgainstValid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::register`]." + ] + }, + { + "name": "force_register", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::force_register`]." + ] + }, + { + "name": "deregister", + "fields": [ + { + "name": "id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::deregister`]." + ] + }, + { + "name": "swap", + "fields": [ + { + "name": "id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::swap`]." + ] + }, + { + "name": "remove_lock", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::remove_lock`]." + ] + }, + { + "name": "reserve", + "fields": [], + "index": 5, + "docs": [ + "See [`Pallet::reserve`]." + ] + }, + { + "name": "add_lock", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::add_lock`]." + ] + }, + { + "name": "schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::schedule_code_upgrade`]." + ] + }, + { + "name": "set_current_head", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 353, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::set_current_head`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 376, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_lease", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::force_lease`]." + ] + }, + { + "name": "clear_all_leases", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::clear_all_leases`]." + ] + }, + { + "name": "trigger_onboard", + "fields": [ + { + "name": "para", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::trigger_onboard`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 377, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "new_auction", + "fields": [ + { + "name": "duration", + "type": 69, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "lease_period_index", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::new_auction`]." + ] + }, + { + "name": "bid", + "fields": [ + { + "name": "para", + "type": 378, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "auction_index", + "type": 69, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "first_slot", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::bid`]." + ] + }, + { + "name": "cancel_auction", + "fields": [], + "index": 2, + "docs": [ + "See [`Pallet::cancel_auction`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 378, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 174 + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 69, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 380, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::create`]." + ] + }, + { + "name": "contribute", + "fields": [ + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "signature", + "type": 231, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::contribute`]." + ] + }, + { + "name": "withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::withdraw`]." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::refund`]." + ] + }, + { + "name": "dissolve", + "fields": [ + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::dissolve`]." + ] + }, + { + "name": "edit", + "fields": [ + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 69, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 69, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 380, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::edit`]." + ] + }, + { + "name": "add_memo", + "fields": [ + { + "name": "index", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::add_memo`]." + ] + }, + { + "name": "poke", + "fields": [ + { + "name": "index", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::poke`]." + ] + }, + { + "name": "contribute_all", + "fields": [ + { + "name": "index", + "type": 378, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "signature", + "type": 231, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::contribute_all`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 380, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 381 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 381, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "sp_runtime", + "MultiSigner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "ed25519::Public", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "sr25519::Public", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 148, + "typeName": "ecdsa::Public", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 382, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 383, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::control_auto_migration`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 384, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 385, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::continue_migrate`]." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 106, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::migrate_custom_top`]." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 106, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::migrate_custom_child`]." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 384, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::set_signed_max_limits`]." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::force_set_progress`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 383, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 384 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 384, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 387, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 389, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::send`]." + ] + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::teleport_assets`]." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::reserve_transfer_assets`]." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 452, + "typeName": "Box::RuntimeCall>>", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [ + "See [`Pallet::execute`]." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 76, + "typeName": "Box", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 4, + "docs": [ + "See [`Pallet::force_xcm_version`]." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 163, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "See [`Pallet::force_default_xcm_version`]." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 90, + "typeName": "Box", + "docs": [] + } + ], + "index": 6, + "docs": [ + "See [`Pallet::force_subscribe_version_notify`]." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 90, + "typeName": "Box", + "docs": [] + } + ], + "index": 7, + "docs": [ + "See [`Pallet::force_unsubscribe_version_notify`]." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 8, + "docs": [ + "See [`Pallet::limited_reserve_transfer_assets`]." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 9, + "docs": [ + "See [`Pallet::limited_teleport_assets`]." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "See [`Pallet::force_suspension`]." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 11, + "docs": [ + "See [`Pallet::transfer_assets`]." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Box", + "docs": [] + } + ], + "index": 12, + "docs": [ + "See [`Pallet::claim_assets`]." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 90, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets_transfer_type", + "type": 463, + "typeName": "Box", + "docs": [] + }, + { + "name": "remote_fees_id", + "type": 464, + "typeName": "Box", + "docs": [] + }, + { + "name": "fees_transfer_type", + "type": 463, + "typeName": "Box", + "docs": [] + }, + { + "name": "custom_xcm_on_dest", + "type": 389, + "typeName": "Box>", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 13, + "docs": [ + "See [`Pallet::transfer_assets_using_type_and_then`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 389, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "v2::Xcm", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 409, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "xcm", + "v2", + "Xcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 391, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 391, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 392 + } + }, + "docs": [] + } + }, + { + "id": 392, + "type": { + "path": [ + "xcm", + "v2", + "Instruction" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 399, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_type", + "type": 403, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "u64", + "docs": [] + }, + { + "name": "call", + "type": 404, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "beneficiary", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "receive", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "QueryHolding", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 395, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 408, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 393, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 394, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 394, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 395 + } + }, + "docs": [] + } + }, + { + "id": 395, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 396, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 397, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 204, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Blob", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [ + "xcm", + "v2", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 400, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 400, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 401 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 401, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 402 + ] + }, + "docs": [] + } + }, + { + "id": 402, + "type": { + "path": [ + "xcm", + "v2", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "MultiLocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "MultiLocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "Weight", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 25, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "xcm", + "v2", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 406, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 396, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 407, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "xcm", + "v2", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "xcm", + "v2", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 411 + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 417, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 427, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 403, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 404, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 409, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 409, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 418, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 71, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 67, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 427, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 413, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 414 + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 75, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 415, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 416, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 204, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 418, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 421, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 419 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 419, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 422 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 424, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 423, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 423, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 69, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 424, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 422 + } + }, + "docs": [] + } + }, + { + "id": 425, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 426, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "TruncatedError", + "fields": [ + { + "name": null, + "type": 426, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 426, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 66 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 66, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 428, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 429, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 430, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 430, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 75, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 431, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 75, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 431, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 431, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 434, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 435 + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 441, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 403, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 404, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 418, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 81, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 77, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 437, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 438 + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 89, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 439, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 17, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 204, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 418, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 442, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 443 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 445, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 444, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 444, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 69, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 443 + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 76 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 76, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 449, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 89, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 450, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 89, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 450, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "v2::MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "v3::MultiAssets", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "v4::Assets", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 453, + "typeName": "v2::Xcm", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 460, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 453, + "type": { + "path": [ + "xcm", + "v2", + "Xcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 454, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 455 + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "xcm", + "v2", + "Instruction" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 399, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_type", + "type": 403, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "u64", + "docs": [] + }, + { + "name": "call", + "type": 456, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "beneficiary", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_assets", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "receive", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 390, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "QueryHolding", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "dest", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "assets", + "type": 405, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 395, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 408, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 453, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 453, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 393, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 91, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 458, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 459 + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 417, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 427, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 403, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 456, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 429, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 412, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 418, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 71, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 67, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 409, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 414, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 427, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 461, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 462 + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 441, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 403, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 456, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 448, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 460, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 460, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 10, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 418, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 13, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 69, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 69, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 81, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 77, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 438, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 432, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LocalReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DestinationReserve", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "RemoteReserve", + "fields": [ + { + "name": null, + "type": 90, + "typeName": "VersionedLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 89, + "typeName": "v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 466, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::reap_page`]." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 466, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::execute_overweight`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 466, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "AggregateMessageOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ump", + "fields": [ + { + "name": null, + "type": 467, + "typeName": "UmpQueueId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "UmpQueueId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Para", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 469, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::create`]." + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 469, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::update`]." + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::remove`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 469, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 471, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "See [`Pallet::report_equivocation`]." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 471, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 116, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "See [`Pallet::report_equivocation_unsigned`]." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "See [`Pallet::set_new_genesis`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 471, + "type": { + "path": [ + "sp_consensus_beefy", + "EquivocationProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 147 + }, + { + "name": "Signature", + "type": 472 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 473, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 473, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 234, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 147 + }, + { + "name": "Signature", + "type": 472 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 474, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 147, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 472, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 475, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 11, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 476, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 477 + } + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 199, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 479, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 482, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 482, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 483 + }, + { + "name": "E", + "type": 485 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 483, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 485, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 484, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 24, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 9 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 9, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 483 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 483, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 25, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Claimed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_address", + "type": 183, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Someone claimed some DOTs." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 487, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 25, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 25, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 34, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 489, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + }, + { + "name": "AuthorityAdded", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A username authority was added." + ] + }, + { + "name": "AuthorityRemoved", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A username authority was removed." + ] + }, + { + "name": "UsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A username was set for `who`." + ] + }, + { + "name": "UsernameQueued", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + }, + { + "name": "expiration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A username was queued, but `who` must accept it prior to `expiration`." + ] + }, + { + "name": "PreapprovalExpired", + "fields": [ + { + "name": "whose", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A queued username passed its expiration without being claimed and was removed." + ] + }, + { + "name": "PrimaryUsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A username was set as a primary and can be looked up from `who`." + ] + }, + { + "name": "DanglingUsernameRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 235, + "typeName": "Username", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A dangling username (as in, a username corresponding to an account that has removed its", + "identity) has been removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 490, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 34, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 100, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 12, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 491, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 241, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 241, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 34, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 241, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 492, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 493, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 494, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 495, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submited in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 495, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 297, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 496, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 496, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 495, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 497, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 30, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 11, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 11, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 11, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 308, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked)." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 136, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 314, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 316, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 317, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 34, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 130, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 501, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CandidateBacked", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 503, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 504, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A candidate was backed. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateIncluded", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 503, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 504, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A candidate was included. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateTimedOut", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 503, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A candidate timed out. `[candidate, head_data]`" + ] + }, + { + "name": "UpwardMessagesReceived", + "fields": [ + { + "name": "from", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some upward messages have been received and will be processed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 502, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "CandidateReceipt" + ], + "params": [ + { + "name": "H", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 342, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments_hash", + "type": 12, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "CoreIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "GroupIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CurrentCodeUpdated", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Current code has been updated for a Para. `para_id`" + ] + }, + { + "name": "CurrentHeadUpdated", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Current head has been updated for a Para. `para_id`" + ] + }, + { + "name": "CodeUpgradeScheduled", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A code upgrade has been scheduled for a Para. `para_id`" + ] + }, + { + "name": "NewHeadNoted", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new head has been noted for a Para. `para_id`" + ] + }, + { + "name": "ActionQueued", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A para has been queued to execute pending actions. `para_id`" + ] + }, + { + "name": "PvfCheckStarted", + "fields": [ + { + "name": null, + "type": 345, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given para either initiated or subscribed to a PVF check for the given validation", + "code. `code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckAccepted", + "fields": [ + { + "name": null, + "type": 345, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given validation code was accepted by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckRejected", + "fields": [ + { + "name": null, + "type": 345, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given validation code was rejected by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 506, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenChannelRequested", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Open HRMP channel requested." + ] + }, + { + "name": "OpenChannelCanceled", + "fields": [ + { + "name": "by_teyrchain", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 369, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An HRMP channel request sent by the receiver was canceled by either party." + ] + }, + { + "name": "OpenChannelAccepted", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Open HRMP channel accepted." + ] + }, + { + "name": "ChannelClosed", + "fields": [ + { + "name": "by_teyrchain", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 369, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "HRMP channel closed." + ] + }, + { + "name": "HrmpChannelForceOpened", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An HRMP channel was opened via Root origin." + ] + }, + { + "name": "HrmpSystemChannelOpened", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An HRMP channel was opened with a system chain." + ] + }, + { + "name": "OpenChannelDepositsUpdated", + "fields": [ + { + "name": "sender", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An HRMP channel's deposits were updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 507, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DisputeInitiated", + "fields": [ + { + "name": null, + "type": 358, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 508, + "typeName": "DisputeLocation", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispute has been initiated. \\[candidate hash, dispute location\\]" + ] + }, + { + "name": "DisputeConcluded", + "fields": [ + { + "name": null, + "type": 358, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 509, + "typeName": "DisputeResult", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A dispute has concluded for or against a candidate.", + "`\\[para id, candidate hash, dispute result\\]`" + ] + }, + { + "name": "Revert", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A dispute has concluded with supermajority against a candidate.", + "Block authors should no longer build on top of this head and should", + "instead revert the block at the given height. This should be the", + "number of the child of the last known valid block in the chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 508, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Local", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Remote", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeResult" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Registered", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "manager", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Deregistered", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 511, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewLeasePeriod", + "fields": [ + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new `[lease_period]` is beginning." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A para has won the right to a continuous set of lease periods as a teyrchain.", + "First balance is any extra amount reserved on top of the para's existing deposit.", + "Second balance is the total amount reserved." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 512, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionStarted", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "ending", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An auction started. Provides its index and the block number where it will begin to", + "close and the first lease period of the quadruplet that is auctioned." + ] + }, + { + "name": "AuctionClosed", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An auction ended. All funds become unreserved." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds were reserved for a winning bid. First balance is the extra amount reserved.", + "Second is the total." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Funds were unreserved since bidder is no longer active. `[bidder, amount]`" + ] + }, + { + "name": "ReserveConfiscated", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone attempted to lease the same slot twice for a teyrchain. The amount is held in", + "reserve but no teyrchain slot has been leased." + ] + }, + { + "name": "BidAccepted", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new bid has been accepted as the current winner." + ] + }, + { + "name": "WinningOffset", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The winning offset was chosen for an auction. This will map into the `Winning` storage", + "map." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 513, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign." + ] + }, + { + "name": "Contributed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contributed to a crowd sale." + ] + }, + { + "name": "Withdrew", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdrew full balance of a contributor." + ] + }, + { + "name": "PartiallyRefunded", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The loans in a fund have been partially dissolved, i.e. there are some left", + "over child keys that still need to be killed." + ] + }, + { + "name": "AllRefunded", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "All loans in a fund have been refunded." + ] + }, + { + "name": "Dissolved", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Fund is dissolved." + ] + }, + { + "name": "HandleBidResult", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "result", + "type": 34, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The result of trying to submit a new bid to the Slots pallet." + ] + }, + { + "name": "Edited", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The configuration to a crowdloan has been edited." + ] + }, + { + "name": "MemoUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 13, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A memo has been updated." + ] + }, + { + "name": "AddedToNewRaise", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A teyrchain has been moved to `NewRaise`" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 514, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 515, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 516, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 515, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 517, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 518, + "typeName": "xcm::latest::Outcome", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 433, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A XCM message was sent." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 441, + "typeName": "Response", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "actual_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_budgeted_weight", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_location", + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + }, + { + "name": "cost", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 13, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "error", + "type": 420, + "typeName": "XcmError", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 90, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_querier", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "maybe_actual_querier", + "type": 446, + "typeName": "Option", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 19, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 436, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 20, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "fees", + "type": 436, + "typeName": "Assets", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 12, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 76, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 451, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A XCM version migration finished." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 518, + "type": { + "path": [ + "staging_xcm", + "v4", + "traits", + "Outcome" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "error", + "type": 420, + "typeName": "Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": "error", + "type": 420, + "typeName": "Error", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 466, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 520, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 466, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 9, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 30, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 466, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 466, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 520, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 9, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 521, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 469, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 469, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 469, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 522, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 523, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 32 + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 69, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 525, + "typeName": "sp_runtime::RuntimeString", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 525, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 12, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 30, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 527, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 528, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 529 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 529, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 529, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 529, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 9, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 484, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 484, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 484, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 531, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 525, + "typeName": "RuntimeString", + "docs": [] + }, + { + "name": "impl_name", + "type": 525, + "typeName": "RuntimeString", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 534, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "state_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 535 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 535, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 536 + } + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 204, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 6, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 7, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 538, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 539 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 541, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 540 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 540, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 101 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 170 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 33, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 101, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 108, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 170, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 539 + } + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 543, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 304, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 544, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 163, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 544, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 304 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 304, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 546 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 547, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 548, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 163, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 546, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 546 + ] + }, + "docs": [] + } + }, + { + "id": 548, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 547 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 547, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 549, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 550, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 552, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 553 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 554, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 114, + 11 + ] + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 553 + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 556, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 558 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 558, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 559, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 561, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 562, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 115, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 560, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 157, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 561, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 115, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 115, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 560, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 118, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 119, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 565 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 566, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 11, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 565 + } + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 568, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 30 + ] + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 570, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 571 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 573, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 204, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 572, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 571 + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 575 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 576, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 204 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 204, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 575 + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 578 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 582, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_balances", + "types", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 579 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 579, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 580, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 581, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 98, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 578 + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 584 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 587, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 584, + "type": { + "path": [ + "pallet_balances", + "types", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 585 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 585, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 586, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 584 + } + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 589, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 139, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 591, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 130, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 593, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 30, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 595, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 11 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 11, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 62, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 601, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 602, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 603 + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 605 + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 303, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 43, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 130, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 610 + } + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 30 + ] + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 612, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 59 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 59, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 48, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 615 + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 143 + ] + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 617, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 17, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 619, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 621, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 163, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 52 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 51, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 623, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 146 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 624, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 146 + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 130, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 65 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 90 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 11 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 65, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 90, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 628, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 11 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 11, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 204, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 2, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 3, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 4, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 5, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 6, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 7, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 8, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 9, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 10, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 11, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 632, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 100 + ] + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 634, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 640, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 635, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 638, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 639, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 636 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 637, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 165 + ] + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 636 + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 167, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 638, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 639, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 642 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 643, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 100, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 642 + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 645, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 100 + }, + { + "name": "RuntimeOrigin", + "type": 170 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 101 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 480 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 32 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 646, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 648, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 100 + }, + { + "name": "RuntimeOrigin", + "type": 170 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 101 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 480 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 32 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 100, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 170, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 101, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 177, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 647, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 648, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 649, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 480, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 30, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 651, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 647 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 647, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 650 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 650, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 163, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 652 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 652, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 32 + ] + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 654 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 655, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 654 + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 657 + } + }, + "docs": [] + } + }, + { + "id": 657, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 100, + 658 + ] + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 525, + "typeName": "&'static str", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 659, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 659, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 43, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 660, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 660, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 660, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 661, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 663, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 664, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEthereumSignature", + "fields": [], + "index": 0, + "docs": [ + "Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "fields": [], + "index": 1, + "docs": [ + "Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "fields": [], + "index": 2, + "docs": [ + "Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "fields": [], + "index": 3, + "docs": [ + "There's not enough in the pot to pay out some unvested amount. Generally implies a", + "logic error." + ] + }, + { + "name": "InvalidStatement", + "fields": [], + "index": 4, + "docs": [ + "A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "fields": [], + "index": 5, + "docs": [ + "The account already has a vested balance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 665, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 189 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 666, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 189 + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 670, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 671, + 675 + ] + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "IdentityInfo", + "type": 193 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 672, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "info", + "type": 193, + "typeName": "IdentityInfo", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 673 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 674, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 230 + ] + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 673 + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 235 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 235, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 677 + ] + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 679 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 681, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 680 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 680, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "IdField", + "type": 11 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fields", + "type": 11, + "typeName": "IdField", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 681, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 679 + } + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [ + "pallet_identity", + "types", + "AuthorityProperties" + ], + "params": [ + { + "name": "Suffix", + "type": 683 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "suffix", + "type": 683, + "typeName": "Suffix", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "Allocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "fields": [], + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "fields": [], + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "fields": [], + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "fields": [], + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "fields": [], + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "fields": [], + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "fields": [], + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "fields": [], + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "fields": [], + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyRegistrars", + "fields": [], + "index": 11, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 12, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "fields": [], + "index": 13, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "fields": [], + "index": 14, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "fields": [], + "index": 15, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "fields": [], + "index": 16, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + }, + { + "name": "InvalidSuffix", + "fields": [], + "index": 17, + "docs": [ + "The provided suffix is too long." + ] + }, + { + "name": "NotUsernameAuthority", + "fields": [], + "index": 18, + "docs": [ + "The sender does not have permission to issue a username." + ] + }, + { + "name": "NoAllocation", + "fields": [], + "index": 19, + "docs": [ + "The authority cannot allocate any more usernames." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 20, + "docs": [ + "The signature on a username was not valid." + ] + }, + { + "name": "RequiresSignature", + "fields": [], + "index": 21, + "docs": [ + "Setting this username requires a signature, but none was provided." + ] + }, + { + "name": "InvalidUsername", + "fields": [], + "index": 22, + "docs": [ + "The username does not meet the requirements." + ] + }, + { + "name": "UsernameTaken", + "fields": [], + "index": 23, + "docs": [ + "The username is already taken." + ] + }, + { + "name": "NoUsername", + "fields": [], + "index": 24, + "docs": [ + "The requested username does not exist." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 25, + "docs": [ + "The username cannot be forcefully removed because it can still be accepted." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 685, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 686, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 687 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 688, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 238 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 238, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 687 + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 690, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 691 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 692, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 12 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 12, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 691 + } + }, + "docs": [] + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 694, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 241, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 696, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found when attempting to cancel." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 698, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 699, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 700, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 702, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 703, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 705, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 706, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 297, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 495, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 301 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 300, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DataProvider", + "type": 708 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 709, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 11, + 593 + ] + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 708 + } + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 711 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 712, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 297, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 712, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 711 + } + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 246 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 245, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Sumission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 11, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 11, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 716, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 136, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 11 + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 719, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 719, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 469, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 721, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 722, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 655, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 724, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 727, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 308, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 314, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 725, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 726, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 163, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 317, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 43 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 43, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 316 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 316, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 136, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 136, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 469, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 730, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 731, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 730 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 732, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 730 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 733, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 734 + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 730 + ] + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 737, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 739, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 740, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 304 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 303, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 130, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 742, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "HostConfiguration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "async_backing_params", + "type": 321, + "typeName": "AsyncBackingParams", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_downward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_outbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_channel_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_inbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "executor_params", + "type": 322, + "typeName": "ExecutorParams", + "docs": [] + }, + { + "name": "code_retention_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "coretime_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_retries", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_queue_max_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_target_queue_utilization", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_fee_variability", + "type": 43, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "on_demand_ttl", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "group_rotation_frequency", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "paras_availability_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "scheduling_lookahead", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_validators_per_core", + "type": 163, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_validators", + "type": 163, + "typeName": "Option", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "dispute_post_conclusion_acceptance_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "pvf_voting_ttl", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "minimum_validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "minimum_backing_votes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "node_features", + "type": 335, + "typeName": "NodeFeatures", + "docs": [] + }, + { + "name": "approval_voting_params", + "type": 327, + "typeName": "ApprovalVotingParams", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 744 + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 742 + ] + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNewValue", + "fields": [], + "index": 0, + "docs": [ + "The new value for a configuration parameter is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 746, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 337 + } + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 144 + } + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "AllowedRelayParentsTracker" + ], + "params": [ + { + "name": "Hash", + "type": 12 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "buffer", + "type": 749, + "typeName": "VecDeque<(Hash, Hash)>", + "docs": [] + }, + { + "name": "latest_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 750 + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "AvailabilityBitfieldRecord" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bitfield", + "type": 334, + "typeName": "AvailabilityBitfield", + "docs": [] + }, + { + "name": "submitted_at", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "CandidatePendingAvailability" + ], + "params": [ + { + "name": "H", + "type": 12 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 503, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "hash", + "type": 358, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "descriptor", + "type": 342, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "availability_votes", + "type": 335, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "backers", + "type": 335, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backed_in_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backing_group", + "type": 504, + "typeName": "GroupIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnsortedOrDuplicateValidatorIndices", + "fields": [], + "index": 0, + "docs": [ + "Validator indices are out of order or contains duplicates." + ] + }, + { + "name": "UnsortedOrDuplicateDisputeStatementSet", + "fields": [], + "index": 1, + "docs": [ + "Dispute statement sets are out of order or contain duplicates." + ] + }, + { + "name": "UnsortedOrDuplicateBackedCandidates", + "fields": [], + "index": 2, + "docs": [ + "Backed candidates are out of order (core index) or contain duplicates." + ] + }, + { + "name": "UnexpectedRelayParent", + "fields": [], + "index": 3, + "docs": [ + "A different relay parent was provided compared to the on-chain stored one." + ] + }, + { + "name": "WrongBitfieldSize", + "fields": [], + "index": 4, + "docs": [ + "Availability bitfield has unexpected size." + ] + }, + { + "name": "BitfieldAllZeros", + "fields": [], + "index": 5, + "docs": [ + "Bitfield consists of zeros only." + ] + }, + { + "name": "BitfieldDuplicateOrUnordered", + "fields": [], + "index": 6, + "docs": [ + "Multiple bitfields submitted by same validator or validators out of order by index." + ] + }, + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 7, + "docs": [ + "Validator index out of bounds." + ] + }, + { + "name": "InvalidBitfieldSignature", + "fields": [], + "index": 8, + "docs": [ + "Invalid signature" + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 9, + "docs": [ + "Candidate submitted but para not scheduled." + ] + }, + { + "name": "CandidateScheduledBeforeParaFree", + "fields": [], + "index": 10, + "docs": [ + "Candidate scheduled despite pending candidate already existing for the para." + ] + }, + { + "name": "ScheduledOutOfOrder", + "fields": [], + "index": 11, + "docs": [ + "Scheduled cores out of order." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 12, + "docs": [ + "Head data exceeds the configured maximum." + ] + }, + { + "name": "PrematureCodeUpgrade", + "fields": [], + "index": 13, + "docs": [ + "Code upgrade prematurely." + ] + }, + { + "name": "NewCodeTooLarge", + "fields": [], + "index": 14, + "docs": [ + "Output code is too large" + ] + }, + { + "name": "DisallowedRelayParent", + "fields": [], + "index": 15, + "docs": [ + "The candidate's relay-parent was not allowed. Either it was", + "not recent enough or it didn't advance based on the last teyrchain block." + ] + }, + { + "name": "InvalidAssignment", + "fields": [], + "index": 16, + "docs": [ + "Failed to compute group index for the core: either it's out of bounds", + "or the relay parent doesn't belong to the current session." + ] + }, + { + "name": "InvalidGroupIndex", + "fields": [], + "index": 17, + "docs": [ + "Invalid group index in core assignment." + ] + }, + { + "name": "InsufficientBacking", + "fields": [], + "index": 18, + "docs": [ + "Insufficient (non-majority) backing." + ] + }, + { + "name": "InvalidBacking", + "fields": [], + "index": 19, + "docs": [ + "Invalid (bad signature, unknown validator, etc.) backing." + ] + }, + { + "name": "NotCollatorSigned", + "fields": [], + "index": 20, + "docs": [ + "Collator did not sign PoV." + ] + }, + { + "name": "ValidationDataHashMismatch", + "fields": [], + "index": 21, + "docs": [ + "The validation data hash does not match expected." + ] + }, + { + "name": "IncorrectDownwardMessageHandling", + "fields": [], + "index": 22, + "docs": [ + "The downward message queue is not processed correctly." + ] + }, + { + "name": "InvalidUpwardMessages", + "fields": [], + "index": 23, + "docs": [ + "At least one upward message sent does not pass the acceptance criteria." + ] + }, + { + "name": "HrmpWatermarkMishandling", + "fields": [], + "index": 24, + "docs": [ + "The candidate didn't follow the rules of HRMP watermark advancement." + ] + }, + { + "name": "InvalidOutboundHrmp", + "fields": [], + "index": 25, + "docs": [ + "The HRMP messages sent by the candidate is not valid." + ] + }, + { + "name": "InvalidValidationCodeHash", + "fields": [], + "index": 26, + "docs": [ + "The validation code hash of the candidate is not valid." + ] + }, + { + "name": "ParaHeadMismatch", + "fields": [], + "index": 27, + "docs": [ + "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual", + "para head in the commitments." + ] + }, + { + "name": "BitfieldReferencesFreedCore", + "fields": [], + "index": 28, + "docs": [ + "A bitfield that references a freed core,", + "either intentionally or as part of a concluded", + "invalid dispute." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 754, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "ScrapedOnChainVotes" + ], + "params": [ + { + "name": "H", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "backing_validators_per_candidate", + "type": 755, + "typeName": "Vec<(CandidateReceipt, Vec<(ValidatorIndex, ValidityAttestation)>)\n>", + "docs": [] + }, + { + "name": "disputes", + "type": 356, + "typeName": "MultiDisputeStatementSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 756 + } + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 502, + 757 + ] + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 758 + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 337, + 355 + ] + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyInclusionInherents", + "fields": [], + "index": 0, + "docs": [ + "Inclusion inherent called more than once per block." + ] + }, + { + "name": "InvalidParentHeader", + "fields": [], + "index": 1, + "docs": [ + "The hash of the submitted parent header doesn't correspond to the saved block hash of", + "the parent." + ] + }, + { + "name": "CandidateConcludedInvalid", + "fields": [], + "index": 2, + "docs": [ + "Disputed candidate that was concluded invalid." + ] + }, + { + "name": "InherentOverweight", + "fields": [], + "index": 3, + "docs": [ + "The data given to the inherent will result in an overweight block." + ] + }, + { + "name": "DisputeStatementsUnsortedOrDuplicates", + "fields": [], + "index": 4, + "docs": [ + "The ordering of dispute statements was invalid." + ] + }, + { + "name": "DisputeInvalid", + "fields": [], + "index": 5, + "docs": [ + "A dispute statement was invalid." + ] + }, + { + "name": "BackedByDisabled", + "fields": [], + "index": 6, + "docs": [ + "A candidate was backed by a disabled validator" + ] + }, + { + "name": "BackedOnUnscheduledCore", + "fields": [], + "index": 7, + "docs": [ + "A candidate was backed even though the paraid was not scheduled." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 8, + "docs": [ + "Too many candidates supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 760, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 746 + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 762 + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "pallet", + "CoreOccupied" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 763, + "typeName": "ParasEntry", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "pallet", + "ParasEntry" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignment", + "type": 764, + "typeName": "Assignment", + "docs": [] + }, + { + "name": "availability_timeouts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ttl", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 764, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "common", + "Assignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pool", + "fields": [ + { + "name": "para_id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "core_index", + "type": 503, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Bulk", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 503 + }, + { + "name": "V", + "type": 766 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 767, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 763 + } + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 768 + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 503, + 766 + ] + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckActiveVoteState" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes_accept", + "type": 335, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "votes_reject", + "type": 335, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "created_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "causes", + "type": 770, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 771 + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckCause" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Upgrade", + "fields": [ + { + "name": "id", + "type": 174, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "included_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "set_go_ahead", + "type": 772, + "typeName": "SetGoAhead", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "SetGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 773, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 345 + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 174 + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaLifecycle" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Parathread", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Teyrchain", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UpgradingParathread", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DowngradingTeyrchain", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "OffboardingParathread", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "OffboardingTeyrchain", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 174, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaPastCodeMeta" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upgrade_times", + "type": 778, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "last_pruned", + "type": 163, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 779 + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ReplacementTimes" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "expected_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "activated_at", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 776 + } + }, + "docs": [] + } + }, + { + "id": 781, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "UpgradeGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "GoAhead", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "UpgradeRestriction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaGenesisArgs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "genesis_head", + "type": 353, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 352, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "para_kind", + "type": 30, + "typeName": "ParaKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "Para is not registered in our system." + ] + }, + { + "name": "CannotOnboard", + "fields": [], + "index": 1, + "docs": [ + "Para cannot be onboarded because it is already tracked by our system." + ] + }, + { + "name": "CannotOffboard", + "fields": [], + "index": 2, + "docs": [ + "Para cannot be offboarded at this time." + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Para cannot be upgraded to a lease holding teyrchain." + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 4, + "docs": [ + "Para cannot be downgraded to an on-demand teyrchain." + ] + }, + { + "name": "PvfCheckStatementStale", + "fields": [], + "index": 5, + "docs": [ + "The statement for PVF pre-checking is stale." + ] + }, + { + "name": "PvfCheckStatementFuture", + "fields": [], + "index": 6, + "docs": [ + "The statement for PVF pre-checking is for a future session." + ] + }, + { + "name": "PvfCheckValidatorIndexOutOfBounds", + "fields": [], + "index": 7, + "docs": [ + "Claimed validator index is out of bounds." + ] + }, + { + "name": "PvfCheckInvalidSignature", + "fields": [], + "index": 8, + "docs": [ + "The signature for the PVF pre-checking is invalid." + ] + }, + { + "name": "PvfCheckDoubleVote", + "fields": [], + "index": 9, + "docs": [ + "The given validator already has cast a vote." + ] + }, + { + "name": "PvfCheckSubjectInvalid", + "fields": [], + "index": 10, + "docs": [ + "The given PVF does not exist at the moment of process a vote." + ] + }, + { + "name": "CannotUpgradeCode", + "fields": [], + "index": 11, + "docs": [ + "Teyrchain cannot currently schedule a code upgrade." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 785, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 786 + } + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "BufferedSessionChange" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 747, + "typeName": "Vec", + "docs": [] + }, + { + "name": "queued", + "type": 747, + "typeName": "Vec", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 788 + } + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "msg", + "type": 13, + "typeName": "DownwardMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpOpenChannelRequest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "confirmed", + "type": 30, + "typeName": "bool", + "docs": [] + }, + { + "name": "_age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 790, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 369 + } + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpChannel" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "mqc_head", + "type": 178, + "typeName": "Option", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 793 + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "data", + "type": 13, + "typeName": "sp_std::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 795 + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 774 + ] + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenHrmpChannelToSelf", + "fields": [], + "index": 0, + "docs": [ + "The sender tried to open a channel to themselves." + ] + }, + { + "name": "OpenHrmpChannelInvalidRecipient", + "fields": [], + "index": 1, + "docs": [ + "The recipient is not a valid para." + ] + }, + { + "name": "OpenHrmpChannelZeroCapacity", + "fields": [], + "index": 2, + "docs": [ + "The requested capacity is zero." + ] + }, + { + "name": "OpenHrmpChannelCapacityExceedsLimit", + "fields": [], + "index": 3, + "docs": [ + "The requested capacity exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelZeroMessageSize", + "fields": [], + "index": 4, + "docs": [ + "The requested maximum message size is 0." + ] + }, + { + "name": "OpenHrmpChannelMessageSizeExceedsLimit", + "fields": [], + "index": 5, + "docs": [ + "The open request requested the message size that exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelAlreadyExists", + "fields": [], + "index": 6, + "docs": [ + "The channel already exists" + ] + }, + { + "name": "OpenHrmpChannelAlreadyRequested", + "fields": [], + "index": 7, + "docs": [ + "There is already a request to open the same channel." + ] + }, + { + "name": "OpenHrmpChannelLimitExceeded", + "fields": [], + "index": 8, + "docs": [ + "The sender already has the maximum number of allowed outbound channels." + ] + }, + { + "name": "AcceptHrmpChannelDoesntExist", + "fields": [], + "index": 9, + "docs": [ + "The channel from the sender to the origin doesn't exist." + ] + }, + { + "name": "AcceptHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 10, + "docs": [ + "The channel is already confirmed." + ] + }, + { + "name": "AcceptHrmpChannelLimitExceeded", + "fields": [], + "index": 11, + "docs": [ + "The recipient already has the maximum number of allowed inbound channels." + ] + }, + { + "name": "CloseHrmpChannelUnauthorized", + "fields": [], + "index": 12, + "docs": [ + "The origin tries to close a channel where it is neither the sender nor the recipient." + ] + }, + { + "name": "CloseHrmpChannelDoesntExist", + "fields": [], + "index": 13, + "docs": [ + "The channel to be closed doesn't exist." + ] + }, + { + "name": "CloseHrmpChannelAlreadyUnderway", + "fields": [], + "index": 14, + "docs": [ + "The channel close request is already requested." + ] + }, + { + "name": "CancelHrmpOpenChannelUnauthorized", + "fields": [], + "index": 15, + "docs": [ + "Canceling is requested by neither the sender nor recipient of the open channel request." + ] + }, + { + "name": "OpenHrmpChannelDoesntExist", + "fields": [], + "index": 16, + "docs": [ + "The open request doesn't exist." + ] + }, + { + "name": "OpenHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 17, + "docs": [ + "Cannot cancel an HRMP open channel request because it is already confirmed." + ] + }, + { + "name": "WrongWitness", + "fields": [], + "index": 18, + "docs": [ + "The provided witness data is wrong." + ] + }, + { + "name": "ChannelCreationNotAuthorized", + "fields": [], + "index": 19, + "docs": [ + "The channel between these two chains cannot be authorized." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 797, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 145 + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "SessionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "active_validator_indices", + "type": 746, + "typeName": "Vec", + "docs": [] + }, + { + "name": "random_seed", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validators", + "type": 799, + "typeName": "IndexedVec", + "docs": [] + }, + { + "name": "discovery_keys", + "type": 624, + "typeName": "Vec", + "docs": [] + }, + { + "name": "assignment_keys", + "type": 797, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_groups", + "type": 800, + "typeName": "IndexedVec>", + "docs": [] + }, + { + "name": "n_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 337 + }, + { + "name": "V", + "type": 144 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 747, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 504 + }, + { + "name": "V", + "type": 746 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 760, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 358 + ] + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "DisputeState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators_for", + "type": 335, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "validators_against", + "type": 335, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "concluded_at", + "type": 163, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 337 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 746, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DuplicateDisputeStatementSets", + "fields": [], + "index": 0, + "docs": [ + "Duplicate dispute statement sets provided." + ] + }, + { + "name": "AncientDisputeStatement", + "fields": [], + "index": 1, + "docs": [ + "Ancient dispute statement provided." + ] + }, + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 2, + "docs": [ + "Validator index on statement is out of bounds for session." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 3, + "docs": [ + "Invalid signature on statement." + ] + }, + { + "name": "DuplicateStatement", + "fields": [], + "index": 4, + "docs": [ + "Validator vote submitted more than once to dispute." + ] + }, + { + "name": "SingleSidedDispute", + "fields": [], + "index": 5, + "docs": [ + "A dispute where there are only votes on one side." + ] + }, + { + "name": "MaliciousBacker", + "fields": [], + "index": 6, + "docs": [ + "A dispute vote from a malicious backer." + ] + }, + { + "name": "MissingBackingVotes", + "fields": [], + "index": 7, + "docs": [ + "No backing votes were provides along dispute statements." + ] + }, + { + "name": "UnconfirmedDispute", + "fields": [], + "index": 8, + "docs": [ + "Unconfirmed dispute statement sets provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 805, + "type": { + "path": [ + "pezkuwi_primitives", + "v6", + "slashing", + "PendingSlashes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "keys", + "type": 806, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "kind", + "type": 374, + "typeName": "SlashingOffenceKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 337 + }, + { + "name": "V", + "type": 144 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 807, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 808 + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 337, + 144 + ] + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "The key ownership proof is invalid." + ] + }, + { + "name": "InvalidSessionIndex", + "fields": [], + "index": 1, + "docs": [ + "The session index is too old or invalid." + ] + }, + { + "name": "InvalidCandidateHash", + "fields": [], + "index": 2, + "docs": [ + "The candidate hash is invalid." + ] + }, + { + "name": "InvalidValidatorIndex", + "fields": [], + "index": 3, + "docs": [ + "There is no pending slash for the given validator index and time", + "slot." + ] + }, + { + "name": "ValidatorIndexIdMismatch", + "fields": [], + "index": 4, + "docs": [ + "The validator index does not match the validator id." + ] + }, + { + "name": "DuplicateSlashingReport", + "fields": [], + "index": 5, + "docs": [ + "The given slashing report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 810, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "ParaInfo" + ], + "params": [ + { + "name": "Account", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "manager", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "locked", + "type": 811, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 30 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 30, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "The ID is not registered." + ] + }, + { + "name": "AlreadyRegistered", + "fields": [], + "index": 1, + "docs": [ + "The ID is already registered." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 2, + "docs": [ + "The caller is not the owner of this Id." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 3, + "docs": [ + "Invalid para code size." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Invalid para head data size." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 5, + "docs": [ + "Para is not a Teyrchain." + ] + }, + { + "name": "NotParathread", + "fields": [], + "index": 6, + "docs": [ + "Para is not a Parathread (on-demand teyrchain)." + ] + }, + { + "name": "CannotDeregister", + "fields": [], + "index": 7, + "docs": [ + "Cannot deregister para" + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 8, + "docs": [ + "Cannot schedule downgrade of lease holding teyrchain to on-demand teyrchain" + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 9, + "docs": [ + "Cannot schedule upgrade of on-demand teyrchain to lease holding teyrchain" + ] + }, + { + "name": "ParaLocked", + "fields": [], + "index": 10, + "docs": [ + "Para is locked from manipulation by the manager. Must use teyrchain or relay chain", + "governance." + ] + }, + { + "name": "NotReserved", + "fields": [], + "index": 11, + "docs": [ + "The ID given for registration has not been reserved." + ] + }, + { + "name": "EmptyCode", + "fields": [], + "index": 12, + "docs": [ + "Registering teyrchain with empty code is not allowed." + ] + }, + { + "name": "CannotSwap", + "fields": [], + "index": 13, + "docs": [ + "Cannot perform a teyrchain slot / lifecycle swap. Check that the state of both paras", + "are correct for the swap to work." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 813, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 544 + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParaNotOnboarding", + "fields": [], + "index": 0, + "docs": [ + "The teyrchain ID is not onboarding." + ] + }, + { + "name": "LeaseError", + "fields": [], + "index": 1, + "docs": [ + "There was an error with the lease." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 815, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 174 + ] + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 36, + "type": 817 + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 818 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 818, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 174, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionInProgress", + "fields": [], + "index": 0, + "docs": [ + "This auction is already in progress." + ] + }, + { + "name": "LeasePeriodInPast", + "fields": [], + "index": 1, + "docs": [ + "The lease period is in the past." + ] + }, + { + "name": "ParaNotRegistered", + "fields": [], + "index": 2, + "docs": [ + "Para is not registered" + ] + }, + { + "name": "NotCurrentAuction", + "fields": [], + "index": 3, + "docs": [ + "Not a current auction." + ] + }, + { + "name": "NotAuction", + "fields": [], + "index": 4, + "docs": [ + "Not an auction." + ] + }, + { + "name": "AuctionEnded", + "fields": [], + "index": 5, + "docs": [ + "Auction has already ended." + ] + }, + { + "name": "AlreadyLeasedOut", + "fields": [], + "index": 6, + "docs": [ + "The para is already leased out for part of this range." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 820, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "FundInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "LeasePeriod", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "verifier", + "type": 380, + "typeName": "Option", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raised", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "cap", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "last_contribution", + "type": 821, + "typeName": "LastContribution", + "docs": [] + }, + { + "name": "first_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "fund_index", + "type": 4, + "typeName": "FundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "LastContribution" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Never", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PreEnding", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ending", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 822, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FirstPeriodInPast", + "fields": [], + "index": 0, + "docs": [ + "The current lease period is more than the first lease period." + ] + }, + { + "name": "FirstPeriodTooFarInFuture", + "fields": [], + "index": 1, + "docs": [ + "The first lease period needs to at least be less than 3 `max_value`." + ] + }, + { + "name": "LastPeriodBeforeFirstPeriod", + "fields": [], + "index": 2, + "docs": [ + "Last lease period must be greater than first lease period." + ] + }, + { + "name": "LastPeriodTooFarInFuture", + "fields": [], + "index": 3, + "docs": [ + "The last lease period cannot be more than 3 periods after the first period." + ] + }, + { + "name": "CannotEndInPast", + "fields": [], + "index": 4, + "docs": [ + "The campaign ends before the current block number. The end must be in the future." + ] + }, + { + "name": "EndTooFarInFuture", + "fields": [], + "index": 5, + "docs": [ + "The end date for this crowdloan is not sensible." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 6, + "docs": [ + "There was an overflow." + ] + }, + { + "name": "ContributionTooSmall", + "fields": [], + "index": 7, + "docs": [ + "The contribution was below the minimum, `MinContribution`." + ] + }, + { + "name": "InvalidParaId", + "fields": [], + "index": 8, + "docs": [ + "Invalid fund index." + ] + }, + { + "name": "CapExceeded", + "fields": [], + "index": 9, + "docs": [ + "Contributions exceed maximum amount." + ] + }, + { + "name": "ContributionPeriodOver", + "fields": [], + "index": 10, + "docs": [ + "The contribution period has already ended." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 11, + "docs": [ + "The origin of this call is invalid." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 12, + "docs": [ + "This crowdloan does not correspond to a teyrchain." + ] + }, + { + "name": "LeaseActive", + "fields": [], + "index": 13, + "docs": [ + "This teyrchain lease is still active and retirement cannot yet begin." + ] + }, + { + "name": "BidOrLeaseActive", + "fields": [], + "index": 14, + "docs": [ + "This teyrchain's bid or lease is still active and withdraw cannot yet begin." + ] + }, + { + "name": "FundNotEnded", + "fields": [], + "index": 15, + "docs": [ + "The crowdloan has not yet ended." + ] + }, + { + "name": "NoContributions", + "fields": [], + "index": 16, + "docs": [ + "There are no contributions stored in this crowdloan." + ] + }, + { + "name": "NotReadyToDissolve", + "fields": [], + "index": 17, + "docs": [ + "The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement", + "period." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 18, + "docs": [ + "Invalid signature." + ] + }, + { + "name": "MemoTooLarge", + "fields": [], + "index": 19, + "docs": [ + "The provided memo is too large." + ] + }, + { + "name": "AlreadyInNewRaise", + "fields": [], + "index": 20, + "docs": [ + "The fund is already in `NewRaise`" + ] + }, + { + "name": "VrfDelayInProgress", + "fields": [], + "index": 21, + "docs": [ + "No contributions allowed during the VRF delay" + ] + }, + { + "name": "NoLeasePeriod", + "fields": [], + "index": 22, + "docs": [ + "A lease period has not started yet, due to an offset in the starting block." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 823, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 90, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "maybe_match_querier", + "type": 824, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_notify", + "type": 825, + "typeName": "Option<(u8, u8)>", + "docs": [] + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 90, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "is_active", + "type": 30, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 827, + "typeName": "VersionedResponse", + "docs": [] + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 90 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 90, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 826 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 826, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V2", + "fields": [ + { + "name": null, + "type": 399, + "typeName": "v2::Response", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 417, + "typeName": "v3::Response", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "v4::Response", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 90 + ] + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 11, + 9, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 831 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 832, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 90, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 831 + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrateVersionNotifiers", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "name": null, + "type": 834, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MigrateAndNotifyOldTargets", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 464 + ] + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 35 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "owner", + "type": 90, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "locker", + "type": 90, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "consumers", + "type": 837, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 838 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 839, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 35, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 838 + } + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 841 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 842, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 90 + ] + }, + "docs": [] + } + }, + { + "id": 842, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 841 + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "fields": [], + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "fields": [], + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "fields": [], + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "fields": [], + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "fields": [], + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "fields": [], + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "fields": [], + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "fields": [], + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "fields": [], + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "fields": [], + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "fields": [], + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "fields": [], + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "fields": [], + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetNotConcrete", + "fields": [], + "index": 20, + "docs": [ + "Invalid non-concrete asset." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "fields": [], + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "fields": [], + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "fields": [], + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 844, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 466 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 845, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 846 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 846, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 466 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 466, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 466, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 466, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 849, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 851, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 852, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 147 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 853, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 147 + } + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 1, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 855, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 11, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 12, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 122 + }, + { + "name": "Call", + "type": 102 + }, + { + "name": "Signature", + "type": 232 + }, + { + "name": "Extra", + "type": 857 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 858, + 859, + 860, + 861, + 862, + 864, + 865, + 866, + 867, + 868 + ] + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 859, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 863, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 864, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 69, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [ + "pallet_transaction_payment", + "ChargeTransactionPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 867, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "PrevalidateAttests" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 869, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "pezkuwi_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v14/pezkuwi-ver.ts b/packages/types-support/src/metadata/v14/pezkuwi-ver.ts new file mode 100644 index 0000000..21bf298 --- /dev/null +++ b/packages/types-support/src/metadata/v14/pezkuwi-ver.ts @@ -0,0 +1,94 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "specName": "pezkuwi", + "implName": "parity-pezkuwi", + "authoringVersion": 0, + "specVersion": 1002005, + "implVersion": 0, + "apis": [ + [ + "0xdf6acb689907609b", + 4 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 10 + ], + [ + "0x49eaaf1b548a0cb0", + 3 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ], + "transactionVersion": 26, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v15/asset-hub-dicle-hex.ts b/packages/types-support/src/metadata/v15/asset-hub-dicle-hex.ts new file mode 100644 index 0000000..ec6a4a8 --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-dicle-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +//To run a asset-hub-dicle node please refer to types-support/src/metadata/README.md + +export default '0x01ca9125006d6574610f9513000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365550c011450686173650001146576656e7454010445000118746f70696373850301185665633c543e000054086061737365745f6875625f6b7573616d615f72756e74696d653052756e74696d654576656e740001c81853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04008401bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e000100504d756c7469426c6f636b4d6967726174696f6e7304008c018470616c6c65745f6d6967726174696f6e733a3a4576656e743c52756e74696d653e00050020507265696d616765040094017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e000600245363686564756c6572040098018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e00070028506172616d65746572730400a8018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e0008002042616c616e63657304003901017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e740400450101a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b0038417373657454785061796d656e740400490101c870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e743a3a4576656e743c52756e74696d653e000d001c56657374696e6704009501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e000e0018436c61696d7304009901017470616c6c65745f636c61696d733a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a10101a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e0400a901017870616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e0016002458636d7051756575650400ad0101a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d0400b101016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d0400d902018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e0020004c546f506f6c6b61646f7458636d526f757465720400dd0201590170616c6c65745f78636d5f6272696467655f6875625f726f757465723a3a4576656e743c52756e74696d652c2070616c6c65745f78636d5f6272696467655f6875625f726f757465720a3a3a496e7374616e6365313e002200304d65737361676551756575650400e502019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0023001c5574696c6974790400f502015470616c6c65745f7574696c6974793a3a4576656e74002800204d756c74697369670400f902017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0029001450726f787904000103017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e002a001c496e646963657304001103017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e002c00184173736574730400150301dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e0032001c556e697175657304001903017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e003300104e66747304003103016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00340034466f726569676e41737365747304004d0301dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e003500504e66744672616374696f6e616c697a6174696f6e0400510301b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4576656e743c52756e74696d653e00360028506f6f6c4173736574730400550301dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365333e0037003c4173736574436f6e76657273696f6e04005903019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4576656e743c52756e74696d653e003800205265636f7665727904006903017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e0039001c536f636965747904007503017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e003a001852657669766504007d03017470616c6c65745f7265766976653a3a4576656e743c52756e74696d653e003c00485374617465547269654d6967726174696f6e0400890301ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e0046003c4e6f6d696e6174696f6e506f6f6c7304009503019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e00500024566f7465724c6973740400bd0301f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0052004044656c6567617465645374616b696e670400c10301a070616c6c65745f64656c6567617465645f7374616b696e673a3a4576656e743c52756e74696d653e0053003c5374616b696e675263436c69656e740400c50301b870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e743a3a4576656e743c52756e74696d653e005400484d756c7469426c6f636b456c656374696f6e0400d50301d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a4576656e743c52756e74696d653e005500684d756c7469426c6f636b456c656374696f6e56657269666965720400dd0301f870616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a76657269666965723a3a4576656e743c52756e74696d653e005600604d756c7469426c6f636b456c656374696f6e5369676e65640400f10301f070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a7369676e65643a3a4576656e743c52756e74696d653e0058001c5374616b696e670400f503019070616c6c65745f7374616b696e675f6173796e633a3a4576656e743c52756e74696d653e00590020547265617375727904001104017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e005a0040436f6e76696374696f6e566f74696e6704001d0401a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e005b00245265666572656e646104002904018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e005c002457686974656c69737404002d0c018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e005e0020426f756e7469657304003d0c017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e005f00344368696c64426f756e746965730400410c019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e006000244173736574526174650400450c018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e0061001441684f70730400490c017470616c6c65745f61685f6f70733a3a4576656e743c52756e74696d653e00fe002841684d69677261746f7204004d0c018870616c6c65745f61685f6d69677261746f723a3a4576656e743c52756e74696d653e00ff0000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400012c4045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e2c5461736b537461727465640401107461736b800138543a3a52756e74696d655461736b0006048041205b605461736b605d20686173207374617274656420657865637574696e67345461736b436f6d706c657465640401107461736b800138543a3a52756e74696d655461736b0007048841205b605461736b605d206861732066696e697368656420657865637574696e672e285461736b4661696c65640801107461736b800138543a3a52756e74696d655461736b00010c65727268013444697370617463684572726f720008048c41205b605461736b605d206661696c656420647572696e6720657865637574696f6e2e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00090468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f72000a041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d000080086061737365745f6875625f6b7573616d615f72756e74696d652c52756e74696d655461736b00010000840c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736888013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748804184f7074696f6e04045401040108104e6f6e6500000010536f6d6504000400000100008c0c4470616c6c65745f6d6967726174696f6e731870616c6c6574144576656e740404540001203855706772616465537461727465640401286d6967726174696f6e7310010c75333210d0546865206e756d626572206f66206d6967726174696f6e7320746861742074686973207570677261646520636f6e7461696e732e004101546869732063616e206265207573656420746f2064657369676e20612070726f677265737320696e64696361746f7220696e20636f6d62696e6174696f6e207769746820636f756e74696e6720746865cc604d6967726174696f6e436f6d706c657465646020616e6420604d6967726174696f6e536b697070656460206576656e74732e000c68412052756e74696d65207570677261646520737461727465642e00f849747320656e6420697320696e64696361746564206279206055706772616465436f6d706c6574656460206f722060557067726164654661696c6564602e4055706772616465436f6d706c6574656400010c985468652063757272656e742072756e74696d65207570677261646520636f6d706c657465642e001d015468697320696d706c696573207468617420616c6c206f6620697473206d6967726174696f6e7320636f6d706c65746564207375636365737366756c6c792061732077656c6c2e34557067726164654661696c656400020c5c52756e74696d652075706772616465206661696c65642e00e85468697320697320766572792062616420616e642077696c6c207265717569726520676f7665726e616e636520696e74657276656e74696f6e2e404d6967726174696f6e536b6970706564040114696e64657810010c75333204290154686520696e646578206f662074686520736b6970706564206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0304090141206d6967726174696f6e2077617320736b69707065642073696e63652069742077617320616c726561647920657865637574656420696e2074686520706173742e444d6967726174696f6e416476616e636564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e04045c41206d6967726174696f6e2070726f677265737365642e484d6967726174696f6e436f6d706c65746564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e05045841204d6967726174696f6e20636f6d706c657465642e3c4d6967726174696f6e4661696c6564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e060c4c41204d6967726174696f6e206661696c65642e004d015468697320696d706c6965732074686174207468652077686f6c652075706772616465206661696c656420616e6420676f7665726e616e636520696e74657276656e74696f6e2069732072657175697265642e3c486973746f726963436c656172656404012c6e6578745f637572736f7290013c4f7074696f6e3c5665633c75383e3e04e853686f756c642062652070617373656420746f2060636c6561725f686973746f7269636020696e206120737563636573736976652063616c6c2e0704c854686520736574206f6620686973746f726963616c206d6967726174696f6e7320686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749004184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000940c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574980c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000118726573756c74a001384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652e9c00000408101000a00418526573756c7408045401a4044501680108084f6b0400a4000000000c4572720400680000010000a40000040000a80c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579ac01c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565090101ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565090101ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac086061737365745f6875625f6b7573616d615f72756e74696d655052756e74696d65506172616d65746572734b65790001142049737375616e63650400b001a5013c64796e616d69635f706172616d733a3a69737375616e63653a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b65790000002054726561737572790400c401a5013c64796e616d69635f706172616d733a3a74726561737572793a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b65790001003c5374616b696e67456c656374696f6e0400d001c5013c64796e616d69635f706172616d733a3a7374616b696e675f656c656374696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974730a3a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000200245363686564756c65720400f001a9013c64796e616d69635f706172616d733a3a7363686564756c65723a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000300304d65737361676551756575650400fc01b9013c64796e616d69635f706172616d733a3a6d6573736167655f71756575653a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900040000b0106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e636534506172616d65746572734b6579000110304d696e496e666c6174696f6e0400b401304d696e496e666c6174696f6e000000304d6178496e666c6174696f6e0400b801304d6178496e666c6174696f6e00010028496465616c5374616b650400bc0128496465616c5374616b650002001c46616c6c6f66660400c0011c46616c6c6f666600030000b4106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e6365304d696e496e666c6174696f6e00000000b8106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e6365304d6178496e666c6174696f6e00000000bc106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e636528496465616c5374616b6500000000c0106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e63651c46616c6c6f666600000000c4106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d7320747265617375727934506172616d65746572734b65790001082c4275726e506f7274696f6e0400c8012c4275726e506f7274696f6e0000003c4275726e44657374696e6174696f6e0400cc013c4275726e44657374696e6174696f6e00010000c8106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732074726561737572792c4275726e506f7274696f6e00000000cc106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732074726561737572793c4275726e44657374696e6174696f6e00000000d0106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e34506172616d65746572734b657900011c2c5369676e656450686173650400d4012c5369676e65645068617365000000504d61785369676e65645375626d697373696f6e730400d801504d61785369676e65645375626d697373696f6e7300010034556e7369676e656450686173650400dc0134556e7369676e65645068617365000200284d696e657250616765730400e001284d696e65725061676573000300444d6178456c656374696e67566f746572730400e401444d6178456c656374696e67566f7465727300040058546172676574536e617073686f74506572426c6f636b0400e80158546172676574536e617073686f74506572426c6f636b000500384d61784572614475726174696f6e0400ec01384d61784572614475726174696f6e00060000d4106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e2c5369676e6564506861736500000000d8106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e504d61785369676e65645375626d697373696f6e7300000000dc106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e34556e7369676e6564506861736500000000e0106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e284d696e6572506167657300000000e4106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e444d6178456c656374696e67566f7465727300000000e8106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e58546172676574536e617073686f74506572426c6f636b00000000ec106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e384d61784572614475726174696f6e00000000f0106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73247363686564756c657234506172616d65746572734b6579000108504d61785363686564756c6564506572426c6f636b0400f401504d61785363686564756c6564506572426c6f636b000000344d6178696d756d5765696768740400f801344d6178696d756d57656967687400010000f4106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73247363686564756c6572504d61785363686564756c6564506572426c6f636b00000000f8106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73247363686564756c6572344d6178696d756d57656967687400000000fc106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73346d6573736167655f717565756534506172616d65746572734b65790001083c4d61784f6e496e697457656967687404000101013c4d61784f6e496e69745765696768740000003c4d61784f6e49646c6557656967687404000501013c4d61784f6e49646c65576569676874000100000101106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73346d6573736167655f71756575653c4d61784f6e496e6974576569676874000000000501106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73346d6573736167655f71756575653c4d61784f6e49646c6557656967687400000000090104184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d0100000100000d01086061737365745f6875625f6b7573616d615f72756e74696d655852756e74696d65506172616d657465727356616c75650001142049737375616e63650400110101ad013c64796e616d69635f706172616d733a3a69737375616e63653a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c75650000002054726561737572790400190101ad013c64796e616d69635f706172616d733a3a74726561737572793a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c75650001003c5374616b696e67456c656374696f6e0400290101cd013c64796e616d69635f706172616d733a3a7374616b696e675f656c656374696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974730a3a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000200245363686564756c657204002d0101b1013c64796e616d69635f706172616d733a3a7363686564756c65723a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000300304d65737361676551756575650400310101c1013c64796e616d69635f706172616d733a3a6d6573736167655f71756575653a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000400001101106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e63653c506172616d657465727356616c7565000110304d696e496e666c6174696f6e04001501012c5065727175696e74696c6c000000304d6178496e666c6174696f6e04001501012c5065727175696e74696c6c00010028496465616c5374616b6504001501012c5065727175696e74696c6c0002001c46616c6c6f666604001501012c5065727175696e74696c6c0003000015010c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c75363400001901106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732074726561737572793c506172616d657465727356616c75650001082c4275726e506f7274696f6e04001d01011c5065726d696c6c0000003c4275726e44657374696e6174696f6e04002101019c63726174653a3a74726561737572793a3a4275726e44657374696e6174696f6e4163636f756e74000100001d010c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c753332000021010c6061737365745f6875625f6b7573616d615f72756e74696d65207472656173757279584275726e44657374696e6174696f6e4163636f756e7400000400250101ac4f7074696f6e3c706f6c6b61646f745f636f72655f7072696d6974697665733a3a4163636f756e7449643e0000250104184f7074696f6e04045401000108104e6f6e6500000010536f6d6504000000000100002901106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e3c506172616d657465727356616c756500011c2c5369676e65645068617365040010012c426c6f636b4e756d626572000000504d61785369676e65645375626d697373696f6e73040010010c75333200010034556e7369676e65645068617365040010012c426c6f636b4e756d626572000200284d696e65725061676573040010010c753332000300444d6178456c656374696e67566f74657273040010010c75333200040058546172676574536e617073686f74506572426c6f636b040010010c753332000500384d61784572614475726174696f6e040030010c753634000600002d01106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73247363686564756c65723c506172616d657465727356616c7565000108504d61785363686564756c6564506572426c6f636b040010010c753332000000344d6178696d756d5765696768740400280118576569676874000100003101106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73346d6573736167655f71756575653c506172616d657465727356616c75650001083c4d61784f6e496e69745765696768740400350101384f7074696f6e3c5765696768743e0000003c4d61784f6e49646c655765696768740400350101384f7074696f6e3c5765696768743e00010000350104184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000039010c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e7408045400044900015c1c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475733d0101185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e28556e6578706563746564040041010138556e65787065637465644b696e64001604b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d0114346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000041010c3c70616c6c65745f62616c616e6365731870616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e740001000045010c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657449010c8870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e741870616c6c6574144576656e7404045400010838417373657454784665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e00012061737365745f69644d010128543a3a41737365744964000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652cb8686173206265656e2070616964206279206077686f6020696e20616e206173736574206061737365745f6964602e444173736574526566756e644661696c65640401486e61746976655f616d6f756e745f6b65707418013042616c616e63654f663c543e000104f4412073776170206f662074686520726566756e6420696e206e61746976652063757272656e6379206261636b20746f206173736574206661696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65744d01102c73746167696e675f78636d087635206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72510101244a756e6374696f6e7300005101102c73746167696e675f78636d087635246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400550101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400790101484172633c5b4a756e6374696f6e3b20325d3e00020008583304007d0101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400810101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400850101484172633c5b4a756e6374696f6e3b20355d3e0005000858360400890101484172633c5b4a756e6374696f6e3b20365d3e00060008583704008d0101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400910101484172633c5b4a756e6374696f6e3b20385d3e000800005501000003010000005901005901102c73746167696e675f78636d087635206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04005d01010c7533320000002c4163636f756e744964333208011c6e6574776f726b610101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b610101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b610101444f7074696f6e3c4e6574776f726b49643e00010c6b6579690101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804006d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696471010118426f647949640001107061727475010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400650101244e6574776f726b4964000900005d010000061000610104184f7074696f6e0404540165010108104e6f6e6500000010536f6d650400650100000100006501102c73746167696e675f78636d087635206a756e6374696f6e244e6574776f726b496400012024427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d6100030020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a000069010000031400000008006d0100000618007101100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e64657804005d01010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e000800205472656173757279000900007501100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e745d01010c753332000100204672616374696f6e08010c6e6f6d5d01010c75333200011464656e6f6d5d01010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d5d01010c75333200011464656e6f6d5d01010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d5d01010c75333200011464656e6f6d5d01010c753332000400007901000003020000005901007d01000003030000005901008101000003040000005901008501000003050000005901008901000003060000005901008d010000030700000059010091010000030800000059010095010c3870616c6c65745f76657374696e671870616c6c6574144576656e7404045400010c3856657374696e674372656174656408011c6163636f756e74000130543a3a4163636f756e7449640001387363686564756c655f696e64657810010c75333200000490412076657374696e67207363686564756c6520686173206265656e20637265617465642e3856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000108510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640002049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f616464726573739d01013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400690101205b75383b2032305d0000a1010c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573a50101445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a5010000020000a9010c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74040454000110284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e244e6577517565756564000108490154686520604e657753657373696f6e60206576656e7420696e207468652063757272656e7420626c6f636b20616c736f20696d706c6965732061206e65772076616c696461746f722073657420746f2062651c7175657565642e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640003047856616c696461746f7220686173206265656e2072652d656e61626c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad010c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1010c2870616c6c65745f78636d1870616c6c6574144576656e7404045400017424417474656d7074656404011c6f7574636f6d65b501015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696e4d0101204c6f636174696f6e00012c64657374696e6174696f6e4d0101204c6f636174696f6e00011c6d657373616765c101011c58636d3c28293e0001286d6573736167655f696404011c58636d4861736800010460416e2058434d206d657373616765207761732073656e742e2853656e644661696c65641001186f726967696e4d0101204c6f636174696f6e00012c64657374696e6174696f6e4d0101204c6f636174696f6e0001146572726f725102012453656e644572726f720001286d6573736167655f696404011c58636d4861736800020478416e2058434d206d657373616765206661696c656420746f2073656e642e3c50726f6365737358636d4572726f720c01186f726967696e4d0101204c6f636174696f6e0001146572726f72bd01012058636d4572726f720001286d6573736167655f696404011c58636d4861736800030484416e2058434d206d657373616765206661696c656420746f2070726f636573732e48556e6578706563746564526573706f6e73650801186f726967696e4d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400040c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e7365ed010120526573706f6e73650005085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400070c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380008085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800090c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696e4d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e110201404f7074696f6e3c4c6f636174696f6e3e000a0c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696e4d0101204c6f636174696f6e00012071756572795f696430011c51756572794964000b1c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000c04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696e4d0101204c6f636174696f6e0001186173736574735502013c56657273696f6e6564417373657473000d04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6e4d0101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374cd0101184173736574730001286d6573736167655f696404011c58636d48617368000e0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6e4d0101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000f08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6e4d0101204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f72bd01012058636d4572726f7200100859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ed102014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c5175657279496400110859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696e4d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400121c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696e4d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f717565726965724d0101204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572110201404f7074696f6e3c4c6f636174696f6e3e00130c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6e4d0101204c6f636174696f6e000110636f7374cd0101184173736574730001286d6573736167655f696404011c58636d486173680014085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6e4d0101204c6f636174696f6e000110636f7374cd0101184173736574730001286d6573736167655f696404011c58636d486173680015043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6e4d0101204c6f636174696f6e000110636f7374cd0101184173736574730001286d6573736167655f696404011c58636d4861736800160825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e674d0101204c6f636174696f6e00011066656573cd010118417373657473001704310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696e4d0101204c6f636174696f6e0001186173736574735502013c56657273696f6e6564417373657473001804c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00190484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e3c416c696173417574686f72697a65640c011c616c69617365724d0101204c6f636174696f6e0001187461726765744d0101204c6f636174696f6e000118657870697279d502012c4f7074696f6e3c7536343e001a085d01416e2060616c696173657260206c6f636174696f6e2077617320617574686f72697a656420627920607461726765746020746f20616c6961732069742c20617574686f72697a6174696f6e2076616c696420756e74696c58606578706972796020626c6f636b206e756d6265722e64416c696173417574686f72697a6174696f6e52656d6f76656408011c616c69617365724d0101204c6f636174696f6e0001187461726765744d0101204c6f636174696f6e001b04cc60746172676574602072656d6f76656420616c69617320617574686f72697a6174696f6e20666f722060616c6961736572602e70416c6961736573417574686f72697a6174696f6e7352656d6f7665640401187461726765744d0101204c6f636174696f6e001c04a860746172676574602072656d6f76656420616c6c20616c69617320617574686f72697a6174696f6e732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b501102c73746167696e675f78636d087635187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b9010140496e737472756374696f6e4572726f72000100144572726f720400b9010140496e737472756374696f6e4572726f7200020000b901102c73746167696e675f78636d0876351874726169747340496e737472756374696f6e4572726f720000080114696e646578080140496e737472756374696f6e496e6465780001146572726f72bd0101144572726f720000bd01100c78636d08763518747261697473144572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d69745265616368656404002801185765696768740025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d697400280000c1010c2c73746167696e675f78636d0876350c58636d041043616c6c00000400c50101585665633c496e737472756374696f6e3c43616c6c3e3e0000c501000002c90100c9010c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d034576974686472617741737365740400cd010118417373657473000000545265736572766541737365744465706f73697465640400cd010118417373657473000100585265636569766554656c65706f7274656441737365740400cd010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365ed010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572110201404f7074696f6e3c4c6f636174696f6e3e000300345472616e736665724173736574080118617373657473cd01011841737365747300012c62656e65666963696172794d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473cd010118417373657473000110646573744d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64150201284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874350101384f7074696f6e3c5765696768743e00011063616c6c1902014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465725d01010c7533320001406d61785f6d6573736167655f73697a655d01010c7533320001306d61785f63617061636974795d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e745d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f725d01010c75333200011873656e6465725d01010c753332000124726563697069656e745d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040051010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f7204001d0201445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574732102012c417373657446696c74657200012c62656e65666963696172794d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574732102012c417373657446696c746572000110646573744d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e000e003445786368616e676541737365740c0110676976652102012c417373657446696c74657200011077616e74cd01011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574732102012c417373657446696c74657200011c726573657276654d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574732102012c417373657446696c746572000110646573744d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f1d0201445175657279526573706f6e7365496e666f0001186173736574732102012c417373657446696c74657200120030427579457865637574696f6e08011066656573d501011441737365740001307765696768745f6c696d69742d02012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400c101012458636d3c43616c6c3e0015002c536574417070656e6469780400c101012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473cd0101184173736574730001187469636b65744d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400cd010118417373657473001c002c45787065637441737365740400cd010118417373657473001d00304578706563744f726967696e0400110201404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400f10101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400090201384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f1d0201445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465785d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f725d01010c75333200013c6d696e5f63726174655f6d696e6f725d01010c753332002200505265706f72745472616e7361637453746174757304001d0201445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400590101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b650101244e6574776f726b496400012c64657374696e6174696f6e51010140496e746572696f724c6f636174696f6e00010c78636dc101011c58636d3c28293e002600244c6f636b41737365740801146173736574d50101144173736574000120756e6c6f636b65724d0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574d501011441737365740001187461726765744d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574d501011441737365740001146f776e65724d0101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574d501011441737365740001186c6f636b65724d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04004d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742d02012c5765696768744c696d6974000130636865636b5f6f726967696e110201404f7074696f6e3c4c6f636174696f6e3e002f001c506179466565730401146173736574d5010114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e4d0101204c6f636174696f6e00012c72656d6f74655f666565733102016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473390201e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636dc101011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696e410201604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636dc101012458636d3c43616c6c3e0032002053657448696e747304011468696e747345020184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e00330000cd01102c73746167696e675f78636d0876351461737365741841737365747300000400d10101285665633c41737365743e0000d101000002d50100d501102c73746167696e675f78636d08763514617373657414417373657400000801086964d901011c4173736574496400010c66756edd01012c46756e676962696c6974790000d901102c73746167696e675f78636d0876351461737365741c41737365744964000004004d0101204c6f636174696f6e0000dd01102c73746167696e675f78636d0876351461737365742c46756e676962696c6974790001082046756e6769626c6504006d010110753132380000002c4e6f6e46756e6769626c650400e10101344173736574496e7374616e636500010000e101102c73746167696e675f78636d087635146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804006d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400e501011c5b75383b20385d0003001c417272617931360400e90101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000e501000003080000000800e901000003100000000800ed010c2c73746167696e675f78636d08763520526573706f6e7365000118104e756c6c000000184173736574730400cd0101184173736574730001003c457865637574696f6e526573756c740400f10101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400f9010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400090201384d617962654572726f72436f646500050000f10104184f7074696f6e04045401f5010108104e6f6e6500000010536f6d650400f5010000010000f5010000040810bd0100f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401fd01045300000400050201185665633c543e0000fd010c2c73746167696e675f78636d0876352850616c6c6574496e666f0000180114696e6465785d01010c7533320001106e616d6501020180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6501020180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f725d01010c7533320001146d696e6f725d01010c75333200011470617463685d01010c753332000001020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00000502000002fd010009020c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204000d02018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204000d02018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000200000d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000110204184f7074696f6e040454014d010108104e6f6e6500000010536f6d6504004d01000001000015020c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d0003000019020c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00001d020c2c73746167696e675f78636d087635445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e4d0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400002102102c73746167696e675f78636d0876351461737365742c417373657446696c74657200010820446566696e6974650400cd0101184173736574730000001057696c6404002502012457696c644173736574000100002502102c73746167696e675f78636d0876351461737365742457696c6441737365740001100c416c6c00000014416c6c4f660801086964d901011c4173736574496400010c66756e2902013c57696c6446756e676962696c69747900010028416c6c436f756e74656404005d01010c75333200020030416c6c4f66436f756e7465640c01086964d901011c4173736574496400010c66756e2902013c57696c6446756e676962696c697479000114636f756e745d01010c753332000300002902102c73746167696e675f78636d0876351461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100002d020c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040028011857656967687400010000310204184f7074696f6e0404540135020108104e6f6e6500000010536f6d650400350200000100003502102c73746167696e675f78636d0876351461737365744c41737365745472616e7366657246696c74657200010c2054656c65706f727404002102012c417373657446696c74657200000038526573657276654465706f73697404002102012c417373657446696c7465720001003c52657365727665576974686472617704002102012c417373657446696c7465720002000039020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540135020453000004003d0201185665633c543e00003d02000002350200410204184f7074696f6e0404540151010108104e6f6e6500000010536f6d6504005101000001000045020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540149020453000004004d0201185665633c543e000049020c2c73746167696e675f78636d0876351048696e74000104304173736574436c61696d65720401206c6f636174696f6e4d0101204c6f636174696f6e000000004d020000024902005102100c78636d087633187472616974732453656e644572726f7200011c344e6f744170706c696361626c65000000245472616e73706f727400010028556e726f757461626c650002005844657374696e6174696f6e556e737570706f7274656400030054457863656564734d61784d65737361676553697a650004003c4d697373696e67417267756d656e740005001046656573000600005502080c78636d3c56657273696f6e656441737365747300010c08563304005902013c76333a3a4d756c746941737365747300030008563404008502012876343a3a4173736574730004000856350400cd01012876353a3a417373657473000500005902100c78636d087633286d756c746961737365742c4d756c7469417373657473000004005d02013c5665633c4d756c746941737365743e00005d020000026102006102100c78636d087633286d756c74696173736574284d756c74694173736574000008010869646502011c4173736574496400010c66756e7d02012c46756e676962696c69747900006502100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400690201344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d000100006902102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f726d0201244a756e6374696f6e7300006d02100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400710201204a756e6374696f6e0001000858320800710201204a756e6374696f6e0000710201204a756e6374696f6e0002000858330c00710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0003000858341000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0004000858351400710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0005000858361800710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0006000858371c00710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0007000858382000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e0000710201204a756e6374696f6e000800007102100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04005d01010c7533320000002c4163636f756e744964333208011c6e6574776f726b750201444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b750201444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b750201444f7074696f6e3c4e6574776f726b49643e00010c6b6579690101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804006d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696471010118426f647949640001107061727475010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400790201244e6574776f726b496400090000750204184f7074696f6e0404540179020108104e6f6e6500000010536f6d650400790200000100007902100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00007d02100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c6504006d010110753132380000002c4e6f6e46756e6769626c650400810201344173736574496e7374616e6365000100008102100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804006d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400e501011c5b75383b20385d0003001c417272617931360400e90101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d000500008502102c73746167696e675f78636d0876341461737365741841737365747300000400890201285665633c41737365743e000089020000028d02008d02102c73746167696e675f78636d087634146173736574144173736574000008010869649102011c4173736574496400010c66756ec902012c46756e676962696c69747900009102102c73746167696e675f78636d0876341461737365741c4173736574496400000400950201204c6f636174696f6e00009502102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72990201244a756e6374696f6e7300009902102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e73000124104865726500000008583104009d0201484172633c5b4a756e6374696f6e3b20315d3e0001000858320400ad0201484172633c5b4a756e6374696f6e3b20325d3e0002000858330400b10201484172633c5b4a756e6374696f6e3b20335d3e0003000858340400b50201484172633c5b4a756e6374696f6e3b20345d3e0004000858350400b90201484172633c5b4a756e6374696f6e3b20355d3e0005000858360400bd0201484172633c5b4a756e6374696f6e3b20365d3e0006000858370400c10201484172633c5b4a756e6374696f6e3b20375d3e0007000858380400c50201484172633c5b4a756e6374696f6e3b20385d3e000800009d0200000301000000a10200a102102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04005d01010c7533320000002c4163636f756e744964333208011c6e6574776f726ba50201444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726ba50201444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726ba50201444f7074696f6e3c4e6574776f726b49643e00010c6b6579690101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804006d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696471010118426f647949640001107061727475010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400a90201244e6574776f726b496400090000a50204184f7074696f6e04045401a9020108104e6f6e6500000010536f6d650400a9020000010000a902102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000ad0200000302000000a10200b10200000303000000a10200b50200000304000000a10200b90200000305000000a10200bd0200000306000000a10200c10200000307000000a10200c50200000308000000a10200c902102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c6504006d010110753132380000002c4e6f6e46756e6769626c650400cd0201344173736574496e7374616e636500010000cd02102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804006d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400e501011c5b75383b20385d0003001c417272617931360400e90101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d102080c78636d4456657273696f6e65644c6f636174696f6e00010c08563304006902014476333a3a4d756c74694c6f636174696f6e00030008563404009502013076343a3a4c6f636174696f6e00040008563504004d01013076353a3a4c6f636174696f6e00050000d50204184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000d9020c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d0000b501011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dd020c7070616c6c65745f78636d5f6272696467655f6875625f726f757465721870616c6c6574144576656e740804540004490001086844656c6976657279466565466163746f724465637265617365640401246e65775f76616c7565e102012446697865645531323804944e65772076616c7565206f6620746865206044656c6976657279466565466163746f72602e00049c44656c69766572792066656520666163746f7220686173206265656e206465637265617365642e6844656c6976657279466565466163746f72496e637265617365640401246e65775f76616c7565e102012446697865645531323804944e65772076616c7565206f6620746865206044656c6976657279466565466163746f72602e01049c44656c69766572792066656520666163746f7220686173206265656e20696e637265617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000e5020c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee90201484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72f102014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee90201484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ee90201484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ee90201484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e902085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400ed02011850617261496400020000ed020c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000f10210346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000f5020c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74a001384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9020c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74fd02017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74fd02017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c74a001384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e74fd02017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd02083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000001030c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c74a001384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706505030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465780903010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706505030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465780903010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706505030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706505030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e640d03012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740503086061737365745f6875625f6b7573616d615f72756e74696d652450726f7879547970650001380c416e790000002c4e6f6e5472616e736665720001002c43616e63656c50726f7879000200184173736574730003002841737365744f776e65720004003041737365744d616e6167657200050020436f6c6c61746f7200060028476f7665726e616e63650007001c5374616b696e670008003c4e6f6d696e6174696f6e506f6f6c730009001c41756374696f6e000a004050617261526567697374726174696f6e000b001c536f6369657479000c003053706f6b6573706572736f6e000d0000090300000504000d03083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e74730001000011030c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657415030c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419030c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000110646174611d030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000110646174611d030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73210301385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e00010c6b65792903016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c75652d030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e00010c6b65792903016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e2503015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572250101504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000021030000021000250304184f7074696f6e04045401100108104e6f6e6500000010536f6d65040010000001000029030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00002d030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000031030c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572250101504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696e250101504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a6572250101504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65250301704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746135030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746135030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73210301385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e00010c6b65792d03016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756535030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365390301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e00010c6b65792d03016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365390301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6e2503015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f69642503015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572250101504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d250301444f7074696f6e3c543a3a4974656d49643e00011470726963653d0301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656d250301444f7074696f6e3c543a3a4974656d49643e00011470726963653d0301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e74496400011470726963653d0301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365390301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d250301444f7074696f6e3c543a3a4974656d49643e0001246174747269627574654903018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756535030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000039030c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e744964000300003d0304184f7074696f6e0404540141030108104e6f6e6500000010536f6d6504004103000001000041030c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e450301385072696365446972656374696f6e000045030c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000049030c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c6564000100004d030c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f69644d010128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f69644d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f69644d010128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f69644d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f69644d010128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f69644d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f69644d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f69644d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f69644d010128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f69644d010128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f69644d010128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f69644d010128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f69644d010128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f69644d010128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f69644d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f69644d010128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f69644d010128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f69644d010128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f69644d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f69644d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f69644d010128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f69644d010128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f69644d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f69644d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f69644d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f69644d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c657451030c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144576656e74040454000108444e66744672616374696f6e616c697a65641401386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001246672616374696f6e73180144417373657442616c616e63654f663c543e0001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e7449640000049c416e204e465420776173207375636365737366756c6c79206672616374696f6e616c697a65642e284e6674556e69666965641001386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e74496400010498416e204e465420776173207375636365737366756c6c792072657475726e6564206261636b2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657455030c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c657459030c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144576656e740404540001182c506f6f6c4372656174656410011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f69645d030124543a3a506f6f6c496408490154686520706f6f6c206964206173736f63696174656420776974682074686520706f6f6c2e204e6f7465207468617420746865206f72646572206f662074686520617373657473206d6179206e6f74206265f47468652073616d6520617320746865206f726465722073706563696669656420696e207468652063726561746520706f6f6c2065787472696e7369632e0130706f6f6c5f6163636f756e74000130543a3a4163636f756e744964046c546865206163636f756e74204944206f662074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964084101546865206964206f6620746865206c697175696469747920746f6b656e7320746861742077696c6c206265206d696e746564207768656e206173736574732061726520616464656420746f207468697314706f6f6c2e00041d0141207375636365737366756c2063616c6c206f66207468652060437265617465506f6f6c602065787472696e7369632077696c6c206372656174652074686973206576656e742e384c697175696469747941646465641c010c77686f000130543a3a4163636f756e74496404b8546865206163636f756e74207468617420746865206c6971756964697479207761732074616b656e2066726f6d2e011c6d696e745f746f000130543a3a4163636f756e74496404d4546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206d696e74656420746f2e011c706f6f6c5f69645d030124543a3a506f6f6c496404e054686520706f6f6c206964206f662074686520706f6f6c207468617420746865206c69717569646974792077617320616464656420746f2e0140616d6f756e74315f70726f7669646564180128543a3a42616c616e636504e454686520616d6f756e74206f662074686520666972737420617373657420746861742077617320616464656420746f2074686520706f6f6c2e0140616d6f756e74325f70726f7669646564180128543a3a42616c616e636504e854686520616d6f756e74206f6620746865207365636f6e6420617373657420746861742077617320616464656420746f2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206d696e7465642e013c6c705f746f6b656e5f6d696e746564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206d696e746564206f6620746861742069642e0104250141207375636365737366756c2063616c6c206f662074686520604164644c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e404c697175696469747952656d6f76656420010c77686f000130543a3a4163636f756e74496404dc546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206275726e65642066726f6d2e012c77697468647261775f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e011c706f6f6c5f69645d030124543a3a506f6f6c496404c054686520706f6f6c206964207468617420746865206c6971756964697479207761732072656d6f7665642066726f6d2e011c616d6f756e7431180128543a3a42616c616e636504f454686520616d6f756e74206f66207468652066697273742061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e011c616d6f756e7432180128543a3a42616c616e636504f854686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206275726e65642e013c6c705f746f6b656e5f6275726e6564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206275726e6564206f6620746861742069642e01387769746864726177616c5f6665651d01011c5065726d696c6c04744c6971756964697479207769746864726177616c20666565202825292e0204310141207375636365737366756c2063616c6c206f6620746865206052656d6f76654c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e3053776170457865637574656414010c77686f000130543a3a4163636f756e74496404b45768696368206163636f756e74207761732074686520696e7374696761746f72206f662074686520737761702e011c73656e645f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174686103013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f757429030835014173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e20426f74682060537761704578616374546f6b656e466f72546f6b656e60d8616e64206053776170546f6b656e466f724578616374546f6b656e602077696c6c2067656e65726174652074686973206576656e742e485377617043726564697445786563757465640c0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174686103013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f7574290404bc4173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e1c546f756368656408011c706f6f6c5f69645d030124543a3a506f6f6c4964044c546865204944206f662074686520706f6f6c2e010c77686f000130543a3a4163636f756e7449640484546865206163636f756e7420696e6974696174696e672074686520746f7563682e05040d01506f6f6c20686173206265656e20746f756368656420696e206f7264657220746f2066756c66696c6c206f7065726174696f6e616c20726571756972656d656e74732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d03000004084d014d010061030000026503006503000004084d01180069030c3c70616c6c65745f7265636f766572791870616c6c6574144576656e7404045400011c3c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e646d0301384465706f7369744b696e643c543e00012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e0006046c41206465706f73697420686173206265656e20757064617465642e04304576656e747320747970652e6d03083c70616c6c65745f7265636f766572792c4465706f7369744b696e640404540171030108385265636f76657279436f6e666967000000444163746976655265636f76657279466f7204000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000100007103086061737365745f6875625f6b7573616d615f72756e74696d651c52756e74696d650000000075030c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001481c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e64696461746573a50101445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564200110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572244e6577506172616d73040118706172616d737903015047726f7570506172616d73466f723c542c20493e000d04cc41206e657720736574206f66205c5b706172616d735c5d20686173206265656e2073657420666f72207468652067726f75702e24556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e20456c6576617465640801186d656d626572000130543a3a4163636f756e74496400011072616e6b10011052616e6b0010049841205c5b6d656d6265725c5d20676f7420656c65766174656420746f205c5b72616e6b5c5d2e304465706f736974506f6b65640c010c77686f000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e0011047c41206465706f7369742077617320706f6b6564202f2061646a75737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747903083870616c6c65745f736f63696574792c47726f7570506172616d73041c42616c616e636501180010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418011c42616c616e636500007d030c3470616c6c65745f7265766976651870616c6c6574144576656e740404540001083c436f6e7472616374456d69747465640c0120636f6e74726163748103011048313630049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746138011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e0118746f70696373850301245665633c483235363e08a441206c697374206f6620746f70696373207573656420746f20696e64657820746865206576656e742eec4e756d626572206f6620746f7069637320697320636170706564206279205b606c696d6974733a3a4e554d5f4556454e545f544f50494353605d2e00049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e30496e7374616e7469617465640801206465706c6f7965728103011048313630000120636f6e74726163748103011048313630000104dc436f6e7472616374206465706c6f796564206279206465706c6f796572206174207468652073706563696669656420616464726573732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748103083c7072696d69746976655f7479706573104831363000000400690101205b75383b2032305d00008503000002340089030c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d707574658d0301404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f72910301204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e8d030c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f0001000091030c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e95030c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e7404045400015c1c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f737461746599030124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f7665640c011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400014072656c65617365645f62616c616e636518013042616c616e63654f663c543e0007149841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e4901416e792066756e6473207468617420617265207374696c6c2064656c6567617465642028692e652e2064616e676c696e672064656c65676174696f6e29206172652072656c656173656420616e642061726588726570726573656e746564206279206072656c65617365645f62616c616e6365602e30526f6c6573557064617465640c0110726f6f74250101504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572250101504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72250101504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e749d03017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ea503011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465a903019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ead0301bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e704d656d626572436c61696d5065726d697373696f6e557064617465640801186d656d626572000130543a3a4163636f756e7449640001287065726d697373696f6eb503013c436c61696d5065726d697373696f6e001204c84120706f6f6c206d656d626572277320636c61696d207065726d697373696f6e20686173206265656e20757064617465642e3c4d657461646174615570646174656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001304784120706f6f6c2773206d657461646174612077617320757064617465642e48506f6f6c4e6f6d696e6174696f6e4d61646508011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e74496400140859014120706f6f6c2773206e6f6d696e6174696e67206163636f756e7420286f722074686520706f6f6c277320726f6f74206163636f756e742920686173206e6f6d696e6174656420612076616c696461746f7220736574586f6e20626568616c66206f662074686520706f6f6c2e50506f6f6c4e6f6d696e61746f724368696c6c656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001504b854686520706f6f6c206973206368696c6c656420692e652e206e6f206c6f6e676572206e6f6d696e6174696e672e4c476c6f62616c506172616d73557064617465641801346d696e5f6a6f696e5f626f6e6418013042616c616e63654f663c543e00013c6d696e5f6372656174655f626f6e6418013042616c616e63654f663c543e0001246d61785f706f6f6c732503012c4f7074696f6e3c7533323e00012c6d61785f6d656d626572732503012c4f7074696f6e3c7533323e0001506d61785f6d656d626572735f7065725f706f6f6c2503012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6eb903013c4f7074696f6e3c50657262696c6c3e0016040101476c6f62616c20706172616d657465727320726567756c6174696e67206e6f6d696e6174696f6e20706f6f6c732068617665206265656e20757064617465642e04584576656e7473206f6620746869732070616c6c65742e9903085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e67000200009d0304184f7074696f6e04045401a1030108104e6f6e6500000010536f6d650400a1030000010000a10300000408a5030000a5030c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000a903085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365a503011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000ad0304184f7074696f6e04045401b1030108104e6f6e6500000010536f6d650400b1030000010000b103085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e74496400010000b503085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000b90304184f7074696f6e04045401a5030108104e6f6e6500000010536f6d650400a5030000010000bd030c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c1030c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144576656e740404540001102444656c6567617465640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000047c46756e64732064656c65676174656420627920612064656c656761746f722e2052656c65617365640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001047846756e64732072656c656173656420746f20612064656c656761746f722e1c536c61736865640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002047c46756e647320736c61736865642066726f6d20612064656c656761746f722e484d6967726174656444656c65676174696f6e0c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304c4556e636c61696d65642064656c65676174696f6e2066756e6473206d6967726174656420746f2064656c656761746f722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5030c7870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741870616c6c6574144576656e7404045400010c5453657373696f6e5265706f72745265636569766564100124656e645f696e64657810013053657373696f6e496e64657800015061637469766174696f6e5f74696d657374616d70c90301484f7074696f6e3c287536342c20753332293e00015c76616c696461746f725f706f696e74735f636f756e747310010c7533320001206c6566746f766572200110626f6f6c0000048c4120736169642073657373696f6e207265706f7274207761732072656365697665642e3c4f6666656e63655265636569766564080134736c6173685f73657373696f6e10013053657373696f6e496e6465780001386f6666656e6365735f636f756e7410010c7533320001046c41206e6577206f6666656e636520776173207265706f727465642e28556e65787065637465640400d1030138556e65787065637465644b696e640002080d01536f6d657468696e67206f6363757272656420746861742073686f756c64206e657665722068617070656e20756e646572206e6f726d616c206f7065726174696f6e2ebc4c6f6767656420617320616e206576656e7420666f72206661696c2d73616665206f62736572766162696c6974792e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c90304184f7074696f6e04045401cd030108104e6f6e6500000010536f6d650400cd030000010000cd0300000408301000d1030c7870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741870616c6c657438556e65787065637465644b696e640001187053657373696f6e5265706f7274496e746567726974794661696c65640000006c56616c696461746f72536574496e746567726974794661696c65640001003853657373696f6e536b69707065640002005c53657373696f6e416c726561647950726f6365737365640003005856616c696461746f7253657453656e644661696c65640004004c56616c696461746f7253657444726f7070656400050000d5030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1870616c6c6574144576656e7404045400010c4450686173655472616e736974696f6e656408011066726f6dd903012050686173653c543e044074686520736f757263652070686173650108746fd903012050686173653c543e04405468652074617267657420706861736500085d0141207068617365207472616e736974696f6e2068617070656e65642e204f6e6c7920636865636b73206d616a6f72206368616e67657320696e207468652076617269616e74732c206e6f74206d696e6f7220696e6e65721c76616c7565732e78556e6578706563746564546172676574536e617073686f744661696c65640001047c54617267657420736e617073686f74206372656174696f6e206661696c656474556e6578706563746564566f746572536e617073686f744661696c656400020478566f74657220736e617073686f74206372656174696f6e206661696c6564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d9030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1474797065731450686173650404540001200c4f6666000000185369676e65640400100144426c6f636b4e756d626572466f723c543e000100405369676e656456616c69646174696f6e0400100144426c6f636b4e756d626572466f723c543e00020020556e7369676e65640400100144426c6f636b4e756d626572466f723c543e00030020536e617073686f74040010012450616765496e64657800040010446f6e65000500184578706f7274040010012450616765496e64657800060024456d657267656e637900070000dd03149070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c731870616c6c6574144576656e7404045400010c48566572696669636174696f6e4661696c6564080010012450616765496e6465780000e1030140466561736962696c6974794572726f72000010a04120766572696669636174696f6e206661696c65642061742074686520676976656e20706167652e0055014e4f54453a2069662074686520696e64657820697320302c207468656e207468697320636f756c64206d65616e206569746865722074686520666561736962696c697479206f6620746865206c617374207061676505017761732077726f6e672c206f72207468652066696e616c20636865636b73206f66206066696e616c697a655f766572696669636174696f6e60206661696c65642e205665726966696564080010012450616765496e646578000010010c753332000108590154686520676976656e2070616765206f66206120736f6c7574696f6e20686173206265656e2076657269666965642c20776974682074686520676976656e206e756d626572206f662077696e6e657273206265696e6730666f756e6420696e2069742e185175657565640800e9030134456c656374696f6e53636f72650000ed0301544f7074696f6e3c456c656374696f6e53636f72653e0002041d014120736f6c7574696f6e20776974682074686520676976656e2073636f726520686173207265706c61636564206f75722063757272656e74206265737420736f6c7574696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657240466561736962696c6974794572726f7200012c4057726f6e6757696e6e6572436f756e740000004c536e617073686f74556e617661696c61626c650001002c496e76616c6964566f746500020030496e76616c6964566f74657200030034496e76616c696457696e6e657200040030496e76616c696453636f726500050030496e76616c6964526f756e640006002c53636f7265546f6f4c6f77000700504661696c6564546f426f756e64537570706f7274000800304e706f73456c656374696f6e0400e503016073705f6e706f735f656c656374696f6e733a3a4572726f7200090028496e636f6d706c657465000a0000e503084473705f6e706f735f656c656374696f6e73144572726f7200012858536f6c7574696f6e5765696768744f766572666c6f7700000058536f6c7574696f6e5461726765744f766572666c6f7700010050536f6c7574696f6e496e76616c6964496e64657800020060536f6c7574696f6e496e76616c696450616765496e6465780003003c41726974686d657469634572726f7200040048496e76616c6964537570706f72744564676500050034546f6f4d616e79566f7465727300060038426f756e64734578636565646564000700384475706c6963617465566f7465720008003c4475706c696361746554617267657400090000e903084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000ed0304184f7074696f6e04045401e9030108104e6f6e6500000010536f6d650400e9030000010000f103109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c6574144576656e7404045400011c28526567697374657265640c0010010c7533320000000130543a3a4163636f756e7449640000e9030134456c656374696f6e53636f726500000451015570636f6d696e67207375626d697373696f6e20686173206265656e207265676973746572656420666f722074686520676976656e206163636f756e742c20776974682074686520676976656e2073636f72652e1853746f7265640c0010010c7533320000000130543a3a4163636f756e744964000010012450616765496e6465780001045d01412070616765206f6620736f6c7574696f6e20736f6c7574696f6e20776974682074686520676976656e20696e64657820686173206265656e2073746f72656420666f722074686520676976656e206163636f756e742e2052657761726465640c0010010c7533320000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204e854686520676976656e206163636f756e7420686173206265656e20726577617264656420776974682074686520676976656e20616d6f756e742e1c536c61736865640c0010010c7533320000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304e454686520676976656e206163636f756e7420686173206265656e20736c617368656420776974682074686520676976656e20616d6f756e742e1c456a6563746564080010010c7533320000000130543a3a4163636f756e744964000404d454686520676976656e20736f6c7574696f6e2c20666f722074686520676976656e20726f756e642c2077617320656a65637465642e24446973636172646564080010010c7533320000000130543a3a4163636f756e7449640005049454686520676976656e206163636f756e7420686173206265656e206469736361726465642e184261696c6564080010010c7533320000000130543a3a4163636f756e7449640006047454686520676976656e206163636f756e7420686173206261696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f503105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c6574144576656e740404540001641c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374f903017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000410d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00050490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0006085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e345374616b657252656d6f7665640401147374617368000130543a3a4163636f756e7449640007085501412073756273657175656e74206576656e74206f66206057697468647261776e602c20696e6469636174696e6720746861742060737461736860207761732066756c6c792072656d6f7665642066726f6d207468651c73797374656d2e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000804b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e1c4368696c6c65640401147374617368000130543a3a4163636f756e7449640009042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874250301304f7074696f6e3c506167653e000a045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673fd03013856616c696461746f725072656673000b0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000c0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000d046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f64650504011c466f7263696e67000e0064436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332000f04a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00100855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e585061676564456c656374696f6e50726f6365656465640801107061676510012450616765496e646578000118726573756c7409040140526573756c743c7533322c207533323e00112441014120706167652066726f6d2061206d756c74692d7061676520656c656374696f6e2077617320666574636865642e2041206e756d626572206f662074686573652061726520666f6c6c6f77656420627944605374616b657273456c6563746564602e00f0604f6b28636f756e74296020696e64696361746573207468652067697665206e756d626572206f66207374617368657320776572652061646465642e05016045727228696e646578296020696e64696361746573207468617420746865207374617368657320616674657220696e64657820776572652064726f707065642e4101604572722830296020696e64696361746573207468617420616e206572726f722068617070656e656420627574206e6f207374617368657320776572652064726f70706564206e6f722061646465642e005101546865206572726f7220696e6469636174657320746861742061206e756d626572206f662076616c696461746f727320776572652064726f707065642064756520746f206578636573732073697a652c206275748c746865206f766572616c6c20656c656374696f6e2077696c6c20636f6e74696e75652e3c4f6666656e63655265706f727465640c012c6f6666656e63655f657261100120457261496e64657800012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6ea503011c50657262696c6c0012084d01416e206f6666656e636520666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c206174207468656c676976656e20657261206173206265656e207265706f727465642e34536c617368436f6d707574656410012c6f6666656e63655f657261100120457261496e646578000124736c6173685f657261100120457261496e6465780001206f6666656e646572000130543a3a4163636f756e7449640001107061676510010c7533320013043101416e206f6666656e636520686173206265656e2070726f63657373656420616e642074686520636f72726573706f6e64696e6720736c61736820686173206265656e20636f6d70757465642e38536c61736843616e63656c6c6564080124736c6173685f657261100120457261496e64657800012476616c696461746f72000130543a3a4163636f756e74496400140498416e20756e6170706c69656420736c61736820686173206265656e2063616e63656c6c65642e3853657373696f6e526f74617465640c01407374617274696e675f73657373696f6e10013053657373696f6e496e6465780001286163746976655f657261100120457261496e64657800012c706c616e6e65645f657261100120457261496e6465780015108853657373696f6e206368616e676520686173206265656e207472696767657265642e005901496620706c616e6e65645f657261206973206f6e6520657261206168656164206f66206163746976655f6572612c20697420696d706c696573206e657720657261206973206265696e6720706c616e6e656420616e6450656c656374696f6e206973206f6e676f696e672e28556e657870656374656404000d040138556e65787065637465644b696e640016080d01536f6d657468696e67206f6363757272656420746861742073686f756c64206e657665722068617070656e20756e646572206e6f726d616c206f7065726174696f6e2ebc4c6f6767656420617320616e206576656e7420666f72206661696c2d73616665206f62736572766162696c6974792e344f6666656e6365546f6f4f6c640c012c6f6666656e63655f657261100120457261496e64657800012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6ea503011c50657262696c6c0017043d01416e206f6666656e636520776173207265706f7274656420746861742077617320746f6f206f6c6420746f2062652070726f6365737365642c20616e642074687573207761732064726f707065642e244572615072756e6564040114696e646578100120457261496e646578001804ac416e206f6c642065726120776974682074686520676976656e20696e64657820776173207072756e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f903085070616c6c65745f7374616b696e675f6173796e634452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000fd03085070616c6c65745f7374616b696e675f6173796e633856616c696461746f7250726566730000080128636f6d6d697373696f6e0104011c50657262696c6c00011c626c6f636b6564200110626f6f6c00000104000006a503000504085070616c6c65745f7374616b696e675f6173796e631c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c776179730003000009040418526573756c740804540110044501100108084f6b040010000000000c45727204001000000100000d04105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657438556e65787065637465644b696e64000108604572614475726174696f6e426f756e64457863656564656400000068556e6b6e6f776e56616c696461746f7241637469766174696f6e0001000011040c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e6415040130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727919040138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657415040c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c65417373657400010c0856330801206c6f636174696f6e6902014478636d3a3a76333a3a4c6f636174696f6e00012061737365745f69646502014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6e9502014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69649102014078636d3a3a76343a3a417373657449640004000856350801206c6f636174696f6e4d01014478636d3a3a76353a3a4c6f636174696f6e00012061737365745f6964d901014078636d3a3a76353a3a417373657449640005000019040c4470617261636861696e735f636f6d6d6f6e0c7061796456657273696f6e65644c6f63617461626c654163636f756e740001080856340801206c6f636174696f6e9502014478636d3a3a76343a3a4c6f636174696f6e0001286163636f756e745f69649502014478636d3a3a76343a3a4c6f636174696f6e0004000856350801206c6f636174696f6e4d01014478636d3a3a76353a3a4c6f636174696f6e0001286163636f756e745f69644d01014478636d3a3a76353a3a4c6f636174696f6e000500001d040c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001142444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f74656408010c77686f000130543a3a4163636f756e744964000110766f7465210401704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f76656408010c77686f000130543a3a4163636f756e744964000110766f7465210401704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c61737309030134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421040c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746525040110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000025040c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f7465000004000800000029040c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b0903013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2d04014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b0903013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2d04014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c792d0a0120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c792d0a0120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c792d0a0120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c792d0a0120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c792d0a0120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c792d0a0120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d0410346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564080454013104044801290c010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e6504001d030134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200003104086061737365745f6875625f6b7573616d615f72756e74696d652c52756e74696d6543616c6c0001cc1853797374656d0400350401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400450401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400990401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003003450617261636861696e496e666f04009d0401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e000400504d756c7469426c6f636b4d6967726174696f6e730400a10401e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b4d6967726174696f6e732c2052756e74696d653e00050020507265696d6167650400c10401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e000600245363686564756c65720400c50401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00070028506172616d65746572730400cd0401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e0008002042616c616e6365730400f90401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a001c56657374696e670400090501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000e0018436c61696d730400110501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e04002d0501d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400310501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d70517565756504003d0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400410501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400f10501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e0020004c546f506f6c6b61646f7458636d526f757465720400f50501e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f506f6c6b61646f7458636d526f757465722c2052756e74696d653e002200304d65737361676551756575650400f90501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0023001c5574696c6974790400fd0501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e002800204d756c74697369670400190601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0029001450726f78790400210601a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e002a005452656d6f746550726f787952656c6179436861696e0400290601e90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52656d6f746550726f787952656c6179436861696e2c2052756e74696d653e002b001c496e64696365730400310601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e002c00184173736574730400350601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e0032001c556e69717565730400390601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e003300104e6674730400490601a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00340034466f726569676e4173736574730400990601c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f726569676e4173736574732c2052756e74696d653e003500504e66744672616374696f6e616c697a6174696f6e04009d0601e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e66744672616374696f6e616c697a6174696f6e2c2052756e74696d653e00360028506f6f6c4173736574730400a10601bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c4173736574732c2052756e74696d653e0037003c4173736574436f6e76657273696f6e0400a50601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e2c2052756e74696d653e003800205265636f766572790400ad0601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e0039001c536f63696574790400b10601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e003a00185265766976650400b50601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265766976652c2052756e74696d653e003c00485374617465547269654d6967726174696f6e0400c10601dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e0046003c4e6f6d696e6174696f6e506f6f6c730400d90601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e00500024566f7465724c6973740400f10601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e0052003c5374616b696e675263436c69656e740400f50601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e675263436c69656e742c2052756e74696d653e005400484d756c7469426c6f636b456c656374696f6e0400110701dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e2c2052756e74696d653e005500684d756c7469426c6f636b456c656374696f6e56657269666965720400390701fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e56657269666965722c2052756e74696d653e005600684d756c7469426c6f636b456c656374696f6e556e7369676e656404003d0701fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e556e7369676e65642c2052756e74696d653e005700604d756c7469426c6f636b456c656374696f6e5369676e65640400750801f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e5369676e65642c2052756e74696d653e0058001c5374616b696e6704007d0801b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0059002054726561737572790400b90801b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e005a0040436f6e76696374696f6e566f74696e670400bd0801d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e005b00245265666572656e64610400c90801b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e005c002457686974656c6973740400d50801b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e005e0020426f756e746965730400d90801b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e005f00344368696c64426f756e746965730400dd0801c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e006000244173736574526174650400e10801b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e0061001441684f70730400e50801a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41684f70732c2052756e74696d653e00fe002841684d69677261746f720400e90801bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41684d69677261746f722c2052756e74696d653e00ff000035040c306672616d655f73797374656d1870616c6c65741043616c6c0404540001301872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73390401345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973410401205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e1c646f5f7461736b0401107461736b800138543a3a52756e74696d655461736b00080044617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39040000023d04003d04000004083838004104000002380045040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001084c7365745f76616c69646174696f6e5f646174610801106461746149040168426173696350617261636861696e496e686572656e7444617461000154696e626f756e645f6d657373616765735f646174616904014c496e626f756e644d657373616765734461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d657373616765000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e7468426173696350617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174614d04015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174655504015473705f747269653a3a53746f7261676550726f6f6600016072656c61795f706172656e745f64657363656e64616e74735d0401405665633c52656c61794865616465723e000140636f6c6c61746f725f706565725f6964650401584f7074696f6e3c417070726f7665645065657249643e00004d040c4c706f6c6b61646f745f7072696d6974697665730876385c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616451040120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000051040c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e000055040c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465735904014442547265655365743c5665633c75383e3e0000590404204254726565536574040454013800040041040000005d040000026104006104102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265725d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000650404184f7074696f6e040454012d030108104e6f6e6500000010536f6d6504002d03000001000069040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e744c496e626f756e644d65737361676573446174610000080144646f776e776172645f6d657373616765736d04017c4162726964676564496e626f756e64446f776e776172644d6573736167657300014c686f72697a6f6e74616c5f6d657373616765738104016c4162726964676564496e626f756e6448726d704d6573736167657300006d040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e74844162726964676564496e626f756e644d65737361676573436f6c6c656374696f6e041c4d6573736167650171040008013466756c6c5f6d65737361676573750401305665633c4d6573736167653e00013c6861736865645f6d657373616765737904017c5665633c4d6573736167653a3a436f6d707265737365644d6573736167653e000071040860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000750400000271040079040000027d04007d04089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74344861736865644d657373616765000008011c73656e745f617410015452656c6179436861696e426c6f636b4e756d6265720001206d73675f6861736834013473705f636f72653a3a48323536000081040c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e74844162726964676564496e626f756e644d65737361676573436f6c6c656374696f6e041c4d6573736167650185040008013466756c6c5f6d657373616765738d0401305665633c4d6573736167653e00013c6861736865645f6d657373616765739104017c5665633c4d6573736167653a3a436f6d707265737365644d6573736167653e0000850400000408ed0289040089040860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e00008d040000028504009104000002950400950400000408ed027d040099040c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d040c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea1040c4470616c6c65745f6d6967726174696f6e731870616c6c65741043616c6c04045400011040666f7263655f7365745f637572736f72040118637572736f72a504014c4f7074696f6e3c437572736f724f663c543e3e0000145d01416c6c6f777320726f6f7420746f20736574206120637572736f7220746f20666f72636566756c6c792073746172742c2073746f70206f7220666f727761726420746865206d6967726174696f6e2070726f636573732e00490153686f756c64206e6f726d616c6c79206e6f74206265206e656564656420616e64206973206f6e6c7920696e20706c61636520617320656d657267656e6379206d6561737572652e204e6f74652074686174050172657374617274696e6720746865206d6967726174696f6e2070726f6365737320696e2074686973206d616e6e65722077696c6c206e6f742063616c6c207468652d015b604d6967726174696f6e53746174757348616e646c65723a3a73746172746564605d20686f6f6b206f7220656d697420616e2060557067726164655374617274656460206576656e742e5c666f7263655f7365745f6163746976655f637572736f720c0114696e64657810010c753332000130696e6e65725f637572736f72b50401584f7074696f6e3c526177437572736f724f663c543e3e000128737461727465645f6174250301644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0001185901416c6c6f777320726f6f7420746f2073657420616e2061637469766520637572736f7220746f20666f72636566756c6c792073746172742f666f727761726420746865206d6967726174696f6e2070726f636573732e0045015468697320697320616e20656467652d636173652076657273696f6e206f66205b6053656c663a3a666f7263655f7365745f637572736f72605d207468617420616c6c6f777320746f2073657420746865610160737461727465645f6174602076616c756520746f20746865206e65787420626c6f636b206e756d6265722e204f7468657277697365207468697320776f756c64206e6f7420626520706f737369626c652c2073696e6365450160666f7263655f7365745f637572736f72602074616b657320616e206162736f6c75746520626c6f636b206e756d6265722e2053657474696e672060737461727465645f61746020746f20604e6f6e65600101696e646963617465732074686174207468652063757272656e7420626c6f636b206e756d62657220706c7573206f6e652073686f756c6420626520757365642e48666f7263655f6f6e626f6172645f6d626d73000210a0466f7263657320746865206f6e626f617264696e67206f6620746865206d6967726174696f6e732e005d01546869732070726f636573732068617070656e73206175746f6d61746963616c6c79206f6e20612072756e74696d6520757067726164652e20497420697320696e20706c61636520617320616e20656d657267656e6379fc6d6561737572656d656e742e2054686520637572736f72206e6565647320746f20626520604e6f6e656020666f72207468697320746f20737563636565642e38636c6561725f686973746f72696304012073656c6563746f72b90401a0486973746f726963436c65616e757053656c6563746f723c4964656e7469666965724f663c543e3e00031468436c65617273207468652060486973746f72696360207365742e000d01606d61705f637572736f7260206d7573742062652073657420746f20746865206c6173742076616c75652074686174207761732072657475726e6564206279207468655d0160486973746f726963436c656172656460206576656e742e205468652066697273742074696d6520604e6f6e65602063616e20626520757365642e20606c696d697460206d7573742062652063686f73656e20696e2061a877617920746861742077696c6c20726573756c7420696e20612073656e7369626c65207765696768742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea50404184f7074696f6e04045401a9040108104e6f6e6500000010536f6d650400a9040000010000a904084470616c6c65745f6d6967726174696f6e733c4d6967726174696f6e437572736f720818437572736f7201ad042c426c6f636b4e756d62657201100108184163746976650400b1040184416374697665437572736f723c437572736f722c20426c6f636b4e756d6265723e00000014537475636b00010000ad040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b104084470616c6c65745f6d6967726174696f6e7330416374697665437572736f720818437572736f7201ad042c426c6f636b4e756d6265720110000c0114696e64657810010c753332000130696e6e65725f637572736f72b50401384f7074696f6e3c437572736f723e000128737461727465645f617410012c426c6f636b4e756d6265720000b50404184f7074696f6e04045401ad040108104e6f6e6500000010536f6d650400ad040000010000b904084470616c6c65745f6d6967726174696f6e735c486973746f726963436c65616e757053656c6563746f720408496401350301082053706563696669630400bd04011c5665633c49643e0000002057696c64636172640801146c696d69742503012c4f7074696f6e3c7533323e00013c70726576696f75735f637572736f7290013c4f7074696f6e3c5665633c75383e3e00010000bd04000002350300c1040c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573850301305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5040c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c90401ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c90401ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c90401ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c90401ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b9c01785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec90404184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c0000010000cd040c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c7565d1040150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed104086061737365745f6875625f6b7573616d615f72756e74696d654452756e74696d65506172616d65746572730001142049737375616e63650400d504019064796e616d69635f706172616d733a3a69737375616e63653a3a506172616d65746572730000002054726561737572790400dd04019064796e616d69635f706172616d733a3a74726561737572793a3a506172616d65746572730001003c5374616b696e67456c656374696f6e0400e90401b064796e616d69635f706172616d733a3a7374616b696e675f656c656374696f6e3a3a506172616d6574657273000200245363686564756c65720400ed04019464796e616d69635f706172616d733a3a7363686564756c65723a3a506172616d6574657273000300304d65737361676551756575650400f10401a464796e616d69635f706172616d733a3a6d6573736167655f71756575653a3a506172616d657465727300040000d504106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d732069737375616e636528506172616d6574657273000110304d696e496e666c6174696f6e0800b401304d696e496e666c6174696f6e0000d904014c4f7074696f6e3c5065727175696e74696c6c3e000000304d6178496e666c6174696f6e0800b801304d6178496e666c6174696f6e0000d904014c4f7074696f6e3c5065727175696e74696c6c3e00010028496465616c5374616b650800bc0128496465616c5374616b650000d904014c4f7074696f6e3c5065727175696e74696c6c3e0002001c46616c6c6f66660800c0011c46616c6c6f66660000d904014c4f7074696f6e3c5065727175696e74696c6c3e00030000d90404184f7074696f6e0404540115010108104e6f6e6500000010536f6d65040015010000010000dd04106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d7320747265617375727928506172616d65746572730001082c4275726e506f7274696f6e0800c8012c4275726e506f7274696f6e0000e104013c4f7074696f6e3c5065726d696c6c3e0000003c4275726e44657374696e6174696f6e0800cc013c4275726e44657374696e6174696f6e0000e50401bc4f7074696f6e3c63726174653a3a74726561737572793a3a4275726e44657374696e6174696f6e4163636f756e743e00010000e10404184f7074696f6e040454011d010108104e6f6e6500000010536f6d6504001d010000010000e50404184f7074696f6e0404540121010108104e6f6e6500000010536f6d65040021010000010000e904106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e28506172616d657465727300011c2c5369676e656450686173650800d4012c5369676e6564506861736500002503014c4f7074696f6e3c426c6f636b4e756d6265723e000000504d61785369676e65645375626d697373696f6e730800d801504d61785369676e65645375626d697373696f6e7300002503012c4f7074696f6e3c7533323e00010034556e7369676e656450686173650800dc0134556e7369676e6564506861736500002503014c4f7074696f6e3c426c6f636b4e756d6265723e000200284d696e657250616765730800e001284d696e6572506167657300002503012c4f7074696f6e3c7533323e000300444d6178456c656374696e67566f746572730800e401444d6178456c656374696e67566f7465727300002503012c4f7074696f6e3c7533323e00040058546172676574536e617073686f74506572426c6f636b0800e80158546172676574536e617073686f74506572426c6f636b00002503012c4f7074696f6e3c7533323e000500384d61784572614475726174696f6e0800ec01384d61784572614475726174696f6e0000d502012c4f7074696f6e3c7536343e00060000ed04106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73247363686564756c657228506172616d6574657273000108504d61785363686564756c6564506572426c6f636b0800f401504d61785363686564756c6564506572426c6f636b00002503012c4f7074696f6e3c7533323e000000344d6178696d756d5765696768740800f801344d6178696d756d5765696768740000350101384f7074696f6e3c5765696768743e00010000f104106061737365745f6875625f6b7573616d615f72756e74696d653864796e616d69635f706172616d73346d6573736167655f717565756528506172616d65746572730001083c4d61784f6e496e697457656967687408000101013c4d61784f6e496e69745765696768740000f50401584f7074696f6e3c4f7074696f6e3c5765696768743e3e0000003c4d61784f6e49646c6557656967687408000501013c4d61784f6e49646c655765696768740000f50401584f7074696f6e3c4f7074696f6e3c5765696768743e3e00010000f50404184f7074696f6e0404540135010108104e6f6e6500000010536f6d65040035010000010000f9040c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e00011476616c75656d010128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365fd0401504163636f756e7449644c6f6f6b75704f663c543e00011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e00011476616c75656d010128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e00011476616c75656d010128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fa50101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f667265656d010128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e0505014c41646a7573746d656e74446972656374696f6e00011464656c74616d010128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c75656d010128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd040c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801a4011408496404000001244163636f756e74496400000014496e6465780400010501304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400690101205b75383b2032305d000400000105000006a40005050c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000009050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c650d0501b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365fd0401504163636f756e7449644c6f6f6b75704f663c543e000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c650d0501b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c65080118746172676574fd04018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200001105105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572651505013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f9d01013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c651d0501dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e74250501544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572651505013845636473615369676e617475726500012473746174656d656e7438011c5665633c75383e00026ce44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7438011c5665633c75383e00034cf441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0019015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c6964617465417474657374736020617320615c605472616e73616374696f6e457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c649d01013c457468657265756d4164647265737300010c6e65779d01013c457468657265756d416464726573730001386d617962655f707265636c61696d250101504f7074696f6e3c543a3a4163636f756e7449643e000400040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15050c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400190501205b75383b2036355d000019050000034100000008001d0504184f7074696f6e0404540121050108104e6f6e6500000010536f6d6504002105000001000021050000040c18181000250504184f7074696f6e0404540129050108104e6f6e6500000010536f6d6504002905000001000029050c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c61720000001053616674000100002d050c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577a50101445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579733505011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3505086061737365745f6875625f6b7573616d615f72756e74696d652c53657373696f6e4b657973000004011061757261390501c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300003905104473705f636f6e73656e7375735f617572611c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300003d050c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41050c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001441073656e6408011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676545050154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747355020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f61737365747310011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747355020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765bd0501b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e4d010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6e250301484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed1020158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ed1020158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747355020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69742d02012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747355020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69742d02012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747355020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69742d02012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747355020150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279d1020158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747355020150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065e9050144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964ed050154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065e9050144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737445050154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69742d02012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e506164645f617574686f72697a65645f616c69617308011c616c6961736572d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011c65787069726573d502012c4f7074696f6e3c7536343e000e2c5d01417574686f72697a6520616e6f746865722060616c696173657260206c6f636174696f6e20746f20616c69617320696e746f20746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e29015468652060616c696173657260206973206f6e6c7920617574686f72697a656420756e74696c207468652070726f766964656420606578706972796020626c6f636b206e756d6265722e49015468652063616c6c2063616e20616c736f206265207573656420666f7220612070726576696f75736c7920617574686f72697a656420616c69617320696e206f7264657220746f207570646174652069747358606578706972796020626c6f636b206e756d6265722e005101557375616c6c792075736566756c20746f20616c6c6f7720796f7572206c6f63616c206163636f756e7420746f20626520616c696173656420696e746f2066726f6d20612072656d6f7465206c6f636174696f6ef4616c736f20756e64657220796f757220636f6e74726f6c20286c696b6520796f7572206163636f756e74206f6e20616e6f7468657220636861696e292e0051015741524e494e473a206d616b652073757265207468652063616c6c657220606f726967696e602028796f752920747275737473207468652060616c696173657260206c6f636174696f6e20746f2061637420696e590174686569722f796f7572206e616d652e204f6e636520617574686f72697a6564207573696e6720746869732063616c6c2c207468652060616c6961736572602063616e20667265656c7920696d706572736f6e617465d4606f726967696e6020696e2058434d2070726f6772616d73206578656375746564206f6e20746865206c6f63616c20636861696e2e5c72656d6f76655f617574686f72697a65645f616c69617304011c616c6961736572d1020158426f783c56657273696f6e65644c6f636174696f6e3e000f085d0152656d6f766520612070726576696f75736c7920617574686f72697a65642060616c6961736572602066726f6d20746865206c697374206f66206c6f636174696f6e7320746861742063616e20616c69617320696e746f90746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e7472656d6f76655f616c6c5f617574686f72697a65645f616c6961736573001008490152656d6f766520616c6c2070726576696f75736c7920617574686f72697a65642060616c6961736572607320746861742063616e20616c69617320696e746f20746865206c6f63616c20606f726967696e60446d616b696e6720746869732063616c6c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4505080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563304004905015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404008905015076343a3a58636d3c52756e74696d6543616c6c3e0004000856350400c101015076353a3a58636d3c52756e74696d6543616c6c3e0005000049050c0c78636d0876330c58636d041043616c6c000004004d0501585665633c496e737472756374696f6e3c43616c6c3e3e00004d0500000251050051050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404005902012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404005902012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404005902012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572750501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574735902012c4d756c746941737365747300012c62656e6566696369617279690201344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735902012c4d756c746941737365747300011064657374690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64150201284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c1902014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465725d01010c7533320001406d61785f6d6573736167655f73697a655d01010c7533320001306d61785f63617061636974795d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e745d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f725d01010c75333200011873656e6465725d01010c753332000124726563697069656e745d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04006d020154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400790501445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574737d0501404d756c7469417373657446696c74657200012c62656e6566696369617279690201344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574737d0501404d756c7469417373657446696c74657200011064657374690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e000e003445786368616e676541737365740c0110676976657d0501404d756c7469417373657446696c74657200011077616e745902012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574737d0501404d756c7469417373657446696c74657200011c72657365727665690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574737d0501404d756c7469417373657446696c74657200011064657374690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f790501445175657279526573706f6e7365496e666f0001186173736574737d0501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573610201284d756c746941737365740001307765696768745f6c696d69742d02012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004905012458636d3c43616c6c3e0015002c536574417070656e64697804004905012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574735902012c4d756c74694173736574730001187469636b6574690201344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404005902012c4d756c7469417373657473001c002c457870656374417373657404005902012c4d756c7469417373657473001d00304578706563744f726967696e0400750501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400590501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400090201384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f790501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465785d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f725d01010c75333200013c6d696e5f63726174655f6d696e6f725d01010c753332002200505265706f72745472616e736163745374617475730400790501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400710201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b790201244e6574776f726b496400012c64657374696e6174696f6e6d020154496e746572696f724d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e002600244c6f636b41737365740801146173736574610201284d756c74694173736574000120756e6c6f636b6572690201344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574610201284d756c74694173736574000118746172676574690201344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574610201284d756c746941737365740001146f776e6572690201344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574610201284d756c746941737365740001186c6f636b6572690201344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400690201344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742d02012c5765696768744c696d6974000130636865636b5f6f726967696e750501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000055050c0c78636d08763320526573706f6e7365000118104e756c6c0000001841737365747304005902012c4d756c74694173736574730001003c457865637574696f6e526573756c740400590501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040065050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400090201384d617962654572726f72436f646500050000590504184f7074696f6e040454015d050108104e6f6e6500000010536f6d6504005d0500000100005d0500000408106105006105100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d69740027000065050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016905045300000400710501185665633c543e000069050c0c78636d0876332850616c6c6574496e666f0000180114696e6465785d01010c7533320001106e616d656d050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d656d050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f725d01010c7533320001146d696e6f725d01010c75333200011470617463685d01010c75333200006d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00007105000002690500750504184f7074696f6e0404540169020108104e6f6e6500000010536f6d6504006902000001000079050c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e690201344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400007d05100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504005902012c4d756c74694173736574730000001057696c6404008105013857696c644d756c74694173736574000100008105100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f6608010869646502011c4173736574496400010c66756e8505013c57696c6446756e676962696c69747900010028416c6c436f756e74656404005d01010c75333200020030416c6c4f66436f756e7465640c010869646502011c4173736574496400010c66756e8505013c57696c6446756e676962696c697479000114636f756e745d01010c753332000300008505100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000089050c2c73746167696e675f78636d0876340c58636d041043616c6c000004008d0501585665633c496e737472756374696f6e3c43616c6c3e3e00008d0500000291050091050c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040085020118417373657473000000545265736572766541737365744465706f7369746564040085020118417373657473000100585265636569766554656c65706f727465644173736574040085020118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736595050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572a90501404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574738502011841737365747300012c62656e6566696369617279950201204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574738502011841737365747300011064657374950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64150201284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c1902014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465725d01010c7533320001406d61785f6d6573736167655f73697a655d01010c7533320001306d61785f63617061636974795d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e745d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f725d01010c75333200011873656e6465725d01010c753332000124726563697069656e745d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040099020140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400ad0501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473b105012c417373657446696c74657200012c62656e6566696369617279950201204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473b105012c417373657446696c74657200011064657374950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e000e003445786368616e676541737365740c011067697665b105012c417373657446696c74657200011077616e748502011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473b105012c417373657446696c74657200011c72657365727665950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473b105012c417373657446696c74657200011064657374950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fad0501445175657279526573706f6e7365496e666f000118617373657473b105012c417373657446696c74657200120030427579457865637574696f6e080110666565738d02011441737365740001307765696768745f6c696d69742d02012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008905012458636d3c43616c6c3e0015002c536574417070656e64697804008905012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473850201184173736574730001187469636b6574950201204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040085020118417373657473001c002c4578706563744173736574040085020118417373657473001d00304578706563744f726967696e0400a90501404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400590501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400090201384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fad0501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465785d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f725d01010c75333200013c6d696e5f63726174655f6d696e6f725d01010c753332002200505265706f72745472616e736163745374617475730400ad0501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400a10201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726ba90201244e6574776f726b496400012c64657374696e6174696f6e99020140496e746572696f724c6f636174696f6e00010c78636d8905011c58636d3c28293e002600244c6f636b417373657408011461737365748d0201144173736574000120756e6c6f636b6572950201204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365748d0201144173736574000118746172676574950201204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365748d02011441737365740001146f776e6572950201204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365748d02011441737365740001186c6f636b6572950201204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400950201204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742d02012c5765696768744c696d6974000130636865636b5f6f726967696ea90501404f7074696f6e3c4c6f636174696f6e3e002f000095050c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400850201184173736574730001003c457865637574696f6e526573756c740400590501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040099050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400090201384d617962654572726f72436f64650005000099050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019d05045300000400a50501185665633c543e00009d050c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e6465785d01010c7533320001106e616d65a1050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65a1050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f725d01010c7533320001146d696e6f725d01010c75333200011470617463685d01010c7533320000a1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a5050000029d0500a90504184f7074696f6e0404540195020108104e6f6e6500000010536f6d65040095020000010000ad050c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e950201204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000b105102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400850201184173736574730000001057696c640400b505012457696c64417373657400010000b505102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869649102011c4173736574496400010c66756eb905013c57696c6446756e676962696c69747900010028416c6c436f756e74656404005d01010c75333200020030416c6c4f66436f756e7465640c010869649102011c4173736574496400010c66756eb905013c57696c6446756e676962696c697479000114636f756e745d01010c75333200030000b905102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000bd05080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856330400c105015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400d105015076343a3a58636d3c52756e74696d6543616c6c3e0004000856350400dd05015076353a3a58636d3c52756e74696d6543616c6c3e00050000c1050c0c78636d0876330c58636d041043616c6c00000400c50501585665633c496e737472756374696f6e3c43616c6c3e3e0000c505000002c90500c9050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404005902012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404005902012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404005902012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736555050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572750501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574735902012c4d756c746941737365747300012c62656e6566696369617279690201344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735902012c4d756c746941737365747300011064657374690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64150201284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ccd05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465725d01010c7533320001406d61785f6d6573736167655f73697a655d01010c7533320001306d61785f63617061636974795d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e745d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f725d01010c75333200011873656e6465725d01010c753332000124726563697069656e745d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04006d020154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400790501445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574737d0501404d756c7469417373657446696c74657200012c62656e6566696369617279690201344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574737d0501404d756c7469417373657446696c74657200011064657374690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e000e003445786368616e676541737365740c0110676976657d0501404d756c7469417373657446696c74657200011077616e745902012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574737d0501404d756c7469417373657446696c74657200011c72657365727665690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574737d0501404d756c7469417373657446696c74657200011064657374690201344d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f790501445175657279526573706f6e7365496e666f0001186173736574737d0501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573610201284d756c746941737365740001307765696768745f6c696d69742d02012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400c105012458636d3c43616c6c3e0015002c536574417070656e6469780400c105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574735902012c4d756c74694173736574730001187469636b6574690201344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404005902012c4d756c7469417373657473001c002c457870656374417373657404005902012c4d756c7469417373657473001d00304578706563744f726967696e0400750501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400590501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400090201384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f790501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465785d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f725d01010c75333200013c6d696e5f63726174655f6d696e6f725d01010c753332002200505265706f72745472616e736163745374617475730400790501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400710201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b790201244e6574776f726b496400012c64657374696e6174696f6e6d020154496e746572696f724d756c74694c6f636174696f6e00010c78636d4905011c58636d3c28293e002600244c6f636b41737365740801146173736574610201284d756c74694173736574000120756e6c6f636b6572690201344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574610201284d756c74694173736574000118746172676574690201344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574610201284d756c746941737365740001146f776e6572690201344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574610201284d756c746941737365740001186c6f636b6572690201344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400690201344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742d02012c5765696768744c696d6974000130636865636b5f6f726967696e750501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000cd050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000d1050c2c73746167696e675f78636d0876340c58636d041043616c6c00000400d50501585665633c496e737472756374696f6e3c43616c6c3e3e0000d505000002d90500d9050c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040085020118417373657473000000545265736572766541737365744465706f7369746564040085020118417373657473000100585265636569766554656c65706f727465644173736574040085020118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736595050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572a90501404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574738502011841737365747300012c62656e6566696369617279950201204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574738502011841737365747300011064657374950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64150201284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ccd05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465725d01010c7533320001406d61785f6d6573736167655f73697a655d01010c7533320001306d61785f63617061636974795d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e745d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f725d01010c75333200011873656e6465725d01010c753332000124726563697069656e745d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040099020140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400ad0501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473b105012c417373657446696c74657200012c62656e6566696369617279950201204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473b105012c417373657446696c74657200011064657374950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e000e003445786368616e676541737365740c011067697665b105012c417373657446696c74657200011077616e748502011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473b105012c417373657446696c74657200011c72657365727665950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473b105012c417373657446696c74657200011064657374950201204c6f636174696f6e00010c78636d8905011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fad0501445175657279526573706f6e7365496e666f000118617373657473b105012c417373657446696c74657200120030427579457865637574696f6e080110666565738d02011441737365740001307765696768745f6c696d69742d02012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400d105012458636d3c43616c6c3e0015002c536574417070656e6469780400d105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473850201184173736574730001187469636b6574950201204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040085020118417373657473001c002c4578706563744173736574040085020118417373657473001d00304578706563744f726967696e0400a90501404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400590501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400090201384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fad0501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465785d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f725d01010c75333200013c6d696e5f63726174655f6d696e6f725d01010c753332002200505265706f72745472616e736163745374617475730400ad0501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400a10201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726ba90201244e6574776f726b496400012c64657374696e6174696f6e99020140496e746572696f724c6f636174696f6e00010c78636d8905011c58636d3c28293e002600244c6f636b417373657408011461737365748d0201144173736574000120756e6c6f636b6572950201204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365748d0201144173736574000118746172676574950201204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365748d02011441737365740001146f776e6572950201204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365748d02011441737365740001186c6f636b6572950201204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400950201204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742d02012c5765696768744c696d6974000130636865636b5f6f726967696ea90501404f7074696f6e3c4c6f636174696f6e3e002f0000dd050c2c73746167696e675f78636d0876350c58636d041043616c6c00000400e10501585665633c496e737472756374696f6e3c43616c6c3e3e0000e105000002e50500e5050c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d034576974686472617741737365740400cd010118417373657473000000545265736572766541737365744465706f73697465640400cd010118417373657473000100585265636569766554656c65706f7274656441737365740400cd010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365ed010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572110201404f7074696f6e3c4c6f636174696f6e3e000300345472616e736665724173736574080118617373657473cd01011841737365747300012c62656e65666963696172794d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473cd010118417373657473000110646573744d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64150201284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874350101384f7074696f6e3c5765696768743e00011063616c6ccd05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465725d01010c7533320001406d61785f6d6573736167655f73697a655d01010c7533320001306d61785f63617061636974795d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e745d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f725d01010c75333200011873656e6465725d01010c753332000124726563697069656e745d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040051010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f7204001d0201445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574732102012c417373657446696c74657200012c62656e65666963696172794d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574732102012c417373657446696c746572000110646573744d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e000e003445786368616e676541737365740c0110676976652102012c417373657446696c74657200011077616e74cd01011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574732102012c417373657446696c74657200011c726573657276654d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574732102012c417373657446696c746572000110646573744d0101204c6f636174696f6e00010c78636dc101011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f1d0201445175657279526573706f6e7365496e666f0001186173736574732102012c417373657446696c74657200120030427579457865637574696f6e08011066656573d501011441737365740001307765696768745f6c696d69742d02012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400dd05012458636d3c43616c6c3e0015002c536574417070656e6469780400dd05012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473cd0101184173736574730001187469636b65744d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400cd010118417373657473001c002c45787065637441737365740400cd010118417373657473001d00304578706563744f726967696e0400110201404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400f10101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400090201384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f1d0201445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465785d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f725d01010c75333200013c6d696e5f63726174655f6d696e6f725d01010c753332002200505265706f72745472616e7361637453746174757304001d0201445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400590101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b650101244e6574776f726b496400012c64657374696e6174696f6e51010140496e746572696f724c6f636174696f6e00010c78636dc101011c58636d3c28293e002600244c6f636b41737365740801146173736574d50101144173736574000120756e6c6f636b65724d0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574d501011441737365740001187461726765744d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574d501011441737365740001146f776e65724d0101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574d501011441737365740001186c6f636b65724d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04004d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742d02012c5765696768744c696d6974000130636865636b5f6f726967696e110201404f7074696f6e3c4c6f636174696f6e3e002f001c506179466565730401146173736574d5010114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e4d0101204c6f636174696f6e00012c72656d6f74655f666565733102016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473390201e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636dc101011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696e410201604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636ddd05012458636d3c43616c6c3e0032002053657448696e747304011468696e747345020184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e00330000e905105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400d102014456657273696f6e65644c6f636174696f6e00030000ed05080c78636d4056657273696f6e65644173736574496400010c08563304006502012c76333a3a4173736574496400030008563404009102012c76343a3a417373657449640004000856350400d901012c76353a3a4173736574496400050000f1050c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5050c7070616c6c65745f78636d5f6272696467655f6875625f726f757465721870616c6c65741043616c6c080454000449000104507265706f72745f6272696467655f7374617475730801246272696467655f69643401104832353600013069735f636f6e676573746564200110626f6f6c000004a84e6f74696669636174696f6e2061626f757420636f6e676573746564206272696467652071756575652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9050c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ee90201484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ee90201484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd050c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c730106017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465780903010c75313600011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c730106017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e05060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c730106017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696e3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636b3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696e05060154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01060000023104000506086061737365745f6875625f6b7573616d615f72756e74696d65304f726967696e43616c6c65720001101873797374656d0400090601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000002c506f6c6b61646f7458636d04000d06014870616c6c65745f78636d3a3a4f726967696e001f002843756d756c757358636d04001106016863756d756c75735f70616c6c65745f78636d3a3a4f726967696e0020001c4f726967696e7304001506017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e005d000009060c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a6564000300000d060c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d04004d0101204c6f636174696f6e00000020526573706f6e736504004d0101204c6f636174696f6e0001000011060c4863756d756c75735f70616c6c65745f78636d1870616c6c6574184f726967696e0001081452656c6179000000405369626c696e6750617261636861696e0400ed020118506172614964000100001506146061737365745f6875625f6b7573616d615f72756e74696d6528676f7665726e616e63651c6f726967696e735470616c6c65745f637573746f6d5f6f726967696e73184f726967696e000170305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d004c46656c6c6f7773686970496e69746961746573000e001c46656c6c6f7773000f004446656c6c6f7773686970457870657274730010004446656c6c6f77736869704d6173746572730011003846656c6c6f77736869703144616e0012003846656c6c6f77736869703244616e0013003846656c6c6f77736869703344616e0014003846656c6c6f77736869703444616e0015003846656c6c6f77736869703544616e0016003846656c6c6f77736869703644616e0017003846656c6c6f77736869703744616e0018003846656c6c6f77736869703844616e0019003846656c6c6f77736869703944616e001a003457697368466f724368616e6765001b000019060c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573a50101445665633c543a3a4163636f756e7449643e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c640903010c7531360001446f746865725f7369676e61746f72696573a50101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e741d0601904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c640903010c7531360001446f746865725f7369676e61746f72696573a50101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e741d0601904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c640903010c7531360001446f746865725f7369676e61746f72696573a50101445665633c543a3a4163636f756e7449643e00012474696d65706f696e74fd02017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c640903010c7531360001446f746865725f7369676e61746f72696573a50101445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d0604184f7074696f6e04045401fd020108104e6f6e6500000010536f6d650400fd02000001000021060c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616cfd0401504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250601504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706505030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706505030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706505030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465780903010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706505030130543a3a50726f787954797065000114696e6465780903010c7531360001186865696768745d010144426c6f636b4e756d626572466f723c543e0001246578745f696e6465785d01010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616cfd0401504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616cfd0401504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e0001107265616cfd0401504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250601504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e250604184f7074696f6e0404540105030108104e6f6e6500000010536f6d6504000503000001000029060c4c70616c6c65745f72656d6f74655f70726f78791870616c6c65741043616c6c08045400044900010c3072656d6f74655f70726f78791001107265616cfd0401504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250601504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c310401b4426f783c3c542061732070616c6c65745f70726f78793a3a436f6e6669673e3a3a52756e74696d6543616c6c3e00011470726f6f662d0601ac52656d6f746550726f787950726f6f663c52656d6f7465426c6f636b4e756d6265724f663c542c20493e3e0000284d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f7269736564206f6e20612072656d6f746518636861696e2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e31012d206070726f6f66603a205468652070726f6f662066726f6d207468652072656d6f746520636861696e2061626f757420746865206578697374656e6365206f66207468652070726f78792e6c72656769737465725f72656d6f74655f70726f78795f70726f6f6604011470726f6f662d0601ac52656d6f746550726f787950726f6f663c52656d6f7465426c6f636b4e756d6265724f663c542c20493e3e00017821015265676973746572206120676976656e2072656d6f74652070726f78792070726f6f6620696e207468652063757272656e74205b6064697370617463685f636f6e74657874605d2e004d0154686520726567697374657265642072656d6f74652070726f6f662063616e207468656e2062652075736564206c6174657220696e207468652073616d6520636f6e7465787420746f206578656375746520614d0172656d6f74652070726f78792063616c6c2e205468697320697320666f72206578616d706c652075736566756c207768656e20686176696e672061206d756c7469736967206f7065726174696f6e2e2054686561016d756c74697369672063616c6c2063616e20757365205b6053656c663a3a72656d6f74655f70726f78795f776974685f726567697374657265645f70726f6f66605d20746f2067657420616e20617070726f76616c2062796101746865206d656d62657273206f6620746865206d756c74697369672e205468652066696e616c20657865637574696f6e206f6620746865206d756c74697369672063616c6c2073686f756c64206265206174206c65617374210161206261746368206f66206072656769737465725f72656d6f74655f70726f78795f70726f6f666020616e6420746865206d756c74697369672063616c6c2074686174207573657361016072656d6f74655f70726f78795f776974685f726567697374657265645f70726f6f66602e205468697320776179207468652066696e616c20617070726f7665722063616e20757365206120726563656e742070726f6f664d01746f2070726f766520746865206578697374656e6365206f66207468652072656d6f74652070726f78792e204f746865727769736520697420776f756c64207265717569726520746865206d756c746973696741016d656d6265727320746f20617070726f7665207468652063616c6c20696e205b60436f6e6669673a3a4d617853746f72616765526f6f7473546f4b656570605d20616d6f756e74206f662074696d652e005901497420697320737570706f7274656420746f207265676973746572206d756c7469706c652070726f6f66732c20627574207468652070726f6f6673206e65656420746f20626520636f6e73756d656420696e207468653d0172657665727365206f726465722061732074686579207765726520726567697374657265642e204261736963616c6c792074686973206d65616e73206c61737420696e2c206669727374206f75742e005501546865205b6064697370617463685f636f6e74657874605d207370616e732074686520656e74697265206c69666574696d65206f662061207472616e73616374696f6e20616e642065766572792063616c6c20696ec0746865207472616e73616374696f6e20676574732061636365737320746f207468652073616d6520636f6e746578742e002423204578616d706c65002460606069676e6f72651c6261746368285b802020202072656769737465725f72656d6f74655f70726f78795f70726f6f662cf42020202061735f6d756c74697369672872656d6f74655f70726f78795f776974685f726567697374657265645f70726f6f66287472616e736665722929085d290c6060600059014173206070726f6f6673602063616e206e6f7420626520766572696669656420696e646566696e6974656c7920287468652074696d65207468652073746f7261676520726f6f7473206172652073746f72656420697355016c696d697465642920746869732066756e6374696f6e2070726f76696465732074686520706f73736962696c69747920746f2070726f766964652061202266726573682070726f6f66222061742074696d65206f664d0164697370617463682e20417320696e20746865206578616d706c652061626f76652c207468697320636f756c642062652075736566756c20666f72206d756c7469736967206f7065726174696f6e20746861745501646570656e64206f6e206d756c7469706c65206d656d6265727320746f20617070726f76652061206365727461696e20616374696f6e2c2077686963682063616e2074616b65206d756c7469706c6520646179732e8872656d6f74655f70726f78795f776974685f726567697374657265645f70726f6f660c01107265616cfd0401504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250601504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c310401b4426f783c3c542061732070616c6c65745f70726f78793a3a436f6e6669673e3a3a52756e74696d6543616c6c3e00022c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f7269736564206f6e20612072656d6f746518636861696e2e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2054686520646966666572656e636520746f21015b6053656c663a3a72656d6f74655f70726f7879605d2069732074686174207468652070726f6f66206e65657320746f2072656769737465726564206265666f7265207573696e6705015b6053656c663a3a72656769737465725f72656d6f74655f70726f78795f70726f6f66605d202873656520666f72206d6f726520696e666f726d6174696f6e292e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d060c4c70616c6c65745f72656d6f74655f70726f78791870616c6c65744052656d6f746550726f787950726f6f66044452656d6f7465426c6f636b4e756d626572011001042852656c6179436861696e08011470726f6f66410401305665633c5665633c75383e3e000114626c6f636b10014452656d6f7465426c6f636b4e756d6265720000000031060c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577fd0401504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577fd0401504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35060c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869645d01014c543a3a41737365744964506172616d6574657200011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869645d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e63656d010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869645d01014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869645d01014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869645d01014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869645d01014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869645d01014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869645d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869645d01014c543a3a41737365744964506172616d65746572000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869645d01014c543a3a41737365744964506172616d65746572000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869645d01014c543a3a41737365744964506172616d65746572000118736f75726365fd0401504163636f756e7449644c6f6f6b75704f663c543e00011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869645d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869645d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869645d01014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869645d01014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869645d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869645d01014c543a3a41737365744964506172616d65746572000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869645d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869645d01014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869645d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869645d01014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869645d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e63656d010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869645d01014c543a3a41737365744964506172616d6574657200012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869645d01014c543a3a41737365744964506172616d6574657200012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869645d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869645d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6efd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869645d01014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869645d01014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869645d01014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869645d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869645d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869645d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869645d01014c543a3a41737365744964506172616d6574657200011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39060c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e000040090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00ac604974656d4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a61012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e657720636f6c6c656374696f6e2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c000144190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0049012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e6577206974656d2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e39012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c207375706572757365723420207065726d697373696f6e7321016f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573733d06013844657374726f795769746e65737300023c9c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00645765696768743a20604f286e202b206d29602077686572653a542d20606e203d207769746e6573732e6974656d7360782d20606d203d207769746e6573732e6974656d5f6d657461646174617360682d206061203d207769746e6573732e6174747269627574657360106d696e740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00032ca04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e004101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ec82d20606974656d603a20546865206974656d2076616c7565206f6620746865206974656d20746f206265206d696e7465642ed82d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e746564206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012c636865636b5f6f776e6572410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00043c5844657374726f7920612073696e676c65206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265206275726e65642e51012d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c657373207468657820206974656d206973206f776e656420627920746869732076616c75652e00b4456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e00385765696768743a20604f283129607c4d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e000544c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00b454686973207265736574732074686520617070726f766564206163636f756e74206f6620746865206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642ec42d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73210301385665633c543a3a4974656d49643e0006449852656576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f6620746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e2829296018667265657a65080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000728c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652066726f7a656e2eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207468617765642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f2831296044667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000924fc446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e0064456d6974732060436f6c6c656374696f6e46726f7a656e602e00385765696768743a20604f283129603c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000a24dc52652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265207468617765642e0064456d6974732060436f6c6c656374696f6e546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000c30d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e000d381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e004d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265f865697468657220746865206f776e6572206f662074686520606974656d60206f72207468652061646d696e206f662074686520636f6c6c656374696f6e2e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e15012d20606974656d603a20546865206974656d206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e001901496d706f7274616e74204e4f54453a205468652060617070726f76656460206163636f756e7420676574732072657365742061667465722065616368207472616e736665722e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001506d617962655f636865636b5f64656c6567617465410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e40110143616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e206974656d20627920612064656c65676174652e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3bfc2d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652060636f6c6c656374696f6e603be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e0d012d20606974656d603a20546865206974656d206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e51012d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296044666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c00012469735f66726f7a656e200110626f6f6c000f4094416c746572207468652061747472696275746573206f66206120676976656e206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00ac2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2e982d20606f776e6572603a20546865206e6577204f776e6572206f662074686973206974656d2ea02d2060697373756572603a20546865206e657720497373756572206f662074686973206974656d2e982d206061646d696e603a20546865206e65772041646d696e206f662074686973206974656d2ea82d2060667265657a6572603a20546865206e657720467265657a6572206f662074686973206974656d2e51012d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e206974656d206f66207468697320636f6c6c656374696f6e2e39012d206069735f66726f7a656e603a2057686574686572207468697320636f6c6c656374696f6e2069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e0456d69747320604974656d5374617475734368616e67656460207769746820746865206964656e74697479206f6620746865206974656d2e00385765696768743a20604f28312960347365745f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e00010c6b65792903016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c75652d030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001044a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2901604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f6174747269627574650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e00010c6b65792903016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e001138b0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f28312960307365745f6d65746164617461100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000110646174611d030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0012447453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640013347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000110646174611d030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0014408853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400153090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e2503015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001628110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c75333200172ce053657420746865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00e44e6f74653a20546869732066756e6374696f6e2063616e206f6e6c792073756363656564206f6e63652070657220636f6c6c656374696f6e2e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963654506015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00182c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520617373657420606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e001924a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d060c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d735d01010c7533320001386974656d5f6d65746164617461735d01010c753332000128617474726962757465735d01010c7533320000410604184f7074696f6e04045401fd040108104e6f6e6500000010536f6d650400fd040000010000450604184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000049060c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e6669674d060164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000118636f6e6669674d060164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573736906013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746ffd0401504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f646174616d0601d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746ffd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967750601284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73210301385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e677351060148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e6669674d060164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65250301704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365390301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65792d03016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756535030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f6173250101504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365390301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65792d03016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756535030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656d250301444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365390301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b65792d03016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573737906017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746135030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746135030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6e2503015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e677359060115014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c542c20493e2c20543a3a0a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963654506015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970737d06019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656d250301444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f70726963653d0301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100150426c6f636b4e756d626572466f723c542c20493e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f70726963653d0301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746189060168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e61747572658d060150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174619506016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e61747572658d060150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d060c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e677351060148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c792503012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773590601b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e000051060c2c70616c6c65745f6e66747314747970657320426974466c616773040454015506000400300144436f6c6c656374696f6e53657474696e67000055060c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f73697452657175697265640010000059060c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f747970655d0601584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365450601344f7074696f6e3c50726963653e00012c73746172745f626c6f636b2503014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636b2503014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773610601304974656d53657474696e677300005d060c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e49640002000061060c2c70616c6c65745f6e66747314747970657320426974466c61677304045401650600040030012c4974656d53657474696e67000065060c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000069060c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d65746164617461735d01010c7533320001306974656d5f636f6e666967735d01010c753332000128617474726962757465735d01010c75333200006d0604184f7074696f6e0404540171060108104e6f6e6500000010536f6d6504007106000001000071060c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656d250301384f7074696f6e3c4974656d49643e0001286d696e745f70726963654506013c4f7074696f6e3c42616c616e63653e000075060c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773610601304974656d53657474696e6773000079060c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c75333200007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018106045300000400850601185665633c543e000081060c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000850600000281060089060c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733904015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e74250101444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f70726963654506013c4f7074696f6e3c42616c616e63653e00008d06082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040091060148656432353531393a3a5369676e61747572650000001c53723235353139040091060148737232353531393a3a5369676e617475726500010014456364736104001905014065636473613a3a5369676e617475726500020000910600000340000000080095060c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733904015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365390301744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000099060c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869644d01014c543a3a41737365744964506172616d6574657200011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869644d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e63656d010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869644d01014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869644d01014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869644d01014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869644d01014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869644d01014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869644d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869644d01014c543a3a41737365744964506172616d65746572000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869644d01014c543a3a41737365744964506172616d65746572000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869644d01014c543a3a41737365744964506172616d65746572000118736f75726365fd0401504163636f756e7449644c6f6f6b75704f663c543e00011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869644d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869644d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869644d01014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869644d01014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869644d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869644d01014c543a3a41737365744964506172616d65746572000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869644d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869644d01014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869644d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869644d01014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869644d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e63656d010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869644d01014c543a3a41737365744964506172616d6574657200012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869644d01014c543a3a41737365744964506172616d6574657200012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869644d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869644d01014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6efd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869644d01014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869644d01014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869644d01014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869644d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869644d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869644d01014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869644d01014c543a3a41737365744964506172616d6574657200011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d060c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c65741043616c6c040454000108346672616374696f6e616c697a651401446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e0001246672616374696f6e73180144417373657442616c616e63654f663c543e000044ac4c6f636b20746865204e465420616e64206d696e742061206e65772066756e6769626c652061737365742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0101546865206f726967696e206d75737420626520746865206f776e6572206f6620746865204e465420746865792061726520747279696e6720746f206c6f636b2e009c604465706f736974602066756e6473206f662073656e646572206172652072657365727665642e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602ee42d206061737365745f6964603a20546865204944206f6620746865206e65772061737365742e204974206d757374206e6f742065786973742eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602e1d012d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c207265636569766520746865206e65776c7920637265617465642061737365742e0d012d20606672616374696f6e73603a2054686520746f74616c2069737375616e6365206f6620746865206e65776c79206372656174656420617373657420636c6173732e00c0456d69747320604e66744672616374696f6e616c697a656460206576656e74207768656e207375636365737366756c2e14756e6966791001446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e00014045014275726e2074686520746f74616c2069737375616e6365206f66207468652066756e6769626c6520617373657420616e642072657475726e2028756e6c6f636b2920746865206c6f636b6564204e46542e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e00d0604465706f736974602066756e64732077696c6c2062652072657475726e656420746f206061737365745f63726561746f72602e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e29012d206061737365745f6964603a20546865204944206f6620746865206173736574206265696e672072657475726e656420616e642064657374726f7965642e204d757374206d61746368fc746865206f726967696e616c204944206f662074686520637265617465642061737365742c20636f72726573706f6e64696e6720746f20746865204e46542eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602efc2d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c20726563656976652074686520756e6966696564204e46542e00a4456d69747320604e6674556e696669656460206576656e74207768656e207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea1060c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c0108696410014c543a3a41737365744964506172616d6574657200011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f637265617465100108696410014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e63656d010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f79040108696410014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e7473040108696410014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c73040108696410014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f79040108696410014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c0108696410014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0108696410014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0108696410014c543a3a41737365744964506172616d65746572000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c0108696410014c543a3a41737365744964506172616d65746572000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e73666572100108696410014c543a3a41737365744964506172616d65746572000118736f75726365fd0401504163636f756e7449644c6f6f6b75704f663c543e00011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a65080108696410014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080108696410014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f6173736574040108696410014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f6173736574040108696410014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080108696410014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100108696410014c543a3a41737365744964506172616d65746572000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d65746164617461100108696410014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461040108696410014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140108696410014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040108696410014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f737461747573200108696410014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e000118697373756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011461646d696efd0401504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e63656d010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0108696410014c543a3a41737365744964506172616d6574657200012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c080108696410014c543a3a41737365744964506172616d6574657200012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0108696410014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465fd0401504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f766564100108696410014c543a3a41737365744964506172616d657465720001146f776e6572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6efd0401504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e746d010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f756368040108696410014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e64080108696410014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e6365080108696410014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f74686572080108696410014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f74686572080108696410014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b080108696410014c543a3a41737365744964506172616d6574657200010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c0108696410014c543a3a41737365744964506172616d6574657200011064657374fd0401504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5060c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c65741043616c6c0404540001182c6372656174655f706f6f6c0801186173736574314d010144426f783c543a3a41737365744b696e643e0001186173736574324d010144426f783c543a3a41737365744b696e643e00001019014372656174657320616e20656d707479206c697175696469747920706f6f6c20616e6420616e206173736f636961746564206e657720606c705f746f6b656e60206173736574010128746865206964206f662077686963682069732072657475726e656420696e2074686520604576656e743a3a506f6f6c4372656174656460206576656e74292e0011014f6e6365206120706f6f6c20697320637265617465642c20736f6d656f6e65206d6179205b6050616c6c65743a3a6164645f6c6971756964697479605d20746f2069742e346164645f6c69717569646974791c01186173736574314d010144426f783c543a3a41737365744b696e643e0001186173736574324d010144426f783c543a3a41737365744b696e643e00013c616d6f756e74315f64657369726564180128543a3a42616c616e636500013c616d6f756e74325f64657369726564180128543a3a42616c616e636500012c616d6f756e74315f6d696e180128543a3a42616c616e636500012c616d6f756e74325f6d696e180128543a3a42616c616e636500011c6d696e745f746f000130543a3a4163636f756e744964000138e450726f76696465206c697175696469747920696e746f2074686520706f6f6c206f6620606173736574316020616e642060617373657432602e0d014e4f54453a20616e206f7074696d616c20616d6f756e74206f662061737365743120616e64206173736574322077696c6c2062652063616c63756c6174656420616e6421016d6967687420626520646966666572656e74207468616e207468652070726f76696465642060616d6f756e74315f64657369726564602f60616d6f756e74325f6465736972656460fc7468757320796f752073686f756c642070726f7669646520746865206d696e20616d6f756e7420796f7527726520686170707920746f2070726f766964652ec8506172616d732060616d6f756e74315f6d696e602f60616d6f756e74325f6d696e6020726570726573656e7420746861742e4901606d696e745f746f602077696c6c2062652073656e7420746865206c697175696469747920746f6b656e73207468617420726570726573656e742074686973207368617265206f662074686520706f6f6c2e005d014e4f54453a207768656e20656e636f756e746572696e6720616e20696e636f72726563742065786368616e6765207261746520616e64206e6f6e2d776974686472617761626c6520706f6f6c206c69717569646974792cdc626174636820616e2061746f6d69632063616c6c2077697468205b6050616c6c65743a3a6164645f6c6971756964697479605d20616e6451015b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d206f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d250163616c6c7320746f2072656e64657220746865206c697175696469747920776974686472617761626c6520616e642072656374696679207468652065786368616e676520726174652e00d84f6e6365206c69717569646974792069732061646465642c20736f6d656f6e65206d6179207375636365737366756c6c792063616c6ca45b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e4072656d6f76655f6c69717569646974791801186173736574314d010144426f783c543a3a41737365744b696e643e0001186173736574324d010144426f783c543a3a41737365744b696e643e0001346c705f746f6b656e5f6275726e180128543a3a42616c616e636500014c616d6f756e74315f6d696e5f72656365697665180128543a3a42616c616e636500014c616d6f756e74325f6d696e5f72656365697665180128543a3a42616c616e636500012c77697468647261775f746f000130543a3a4163636f756e74496400020c4d01416c6c6f777320796f7520746f2072656d6f7665206c69717569646974792062792070726f766964696e672074686520606c705f746f6b656e5f6275726e6020746f6b656e7320746861742077696c6c20626551016275726e656420696e207468652070726f636573732e205769746820746865207573616765206f662060616d6f756e74315f6d696e5f72656365697665602f60616d6f756e74325f6d696e5f726563656976656035016974277320706f737369626c6520746f20636f6e74726f6c20746865206d696e20616d6f756e74206f662072657475726e656420746f6b656e7320796f7527726520686170707920776974682e70737761705f65786163745f746f6b656e735f666f725f746f6b656e7314011070617468a90601585665633c426f783c543a3a41737365744b696e643e3e000124616d6f756e745f696e180128543a3a42616c616e6365000138616d6f756e745f6f75745f6d696e180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c000318c0537761702074686520657861637420616d6f756e74206f6620606173736574316020696e746f2060617373657432602e2d0160616d6f756e745f6f75745f6d696e6020706172616d20616c6c6f777320796f7520746f207370656369667920746865206d696e20616d6f756e74206f662074686520606173736574326060796f7527726520686170707920746f20726563656976652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e70737761705f746f6b656e735f666f725f65786163745f746f6b656e7314011070617468a90601585665633c426f783c543a3a41737365744b696e643e3e000128616d6f756e745f6f7574180128543a3a42616c616e6365000134616d6f756e745f696e5f6d6178180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c00041801015377617020616e7920616d6f756e74206f6620606173736574316020746f206765742074686520657861637420616d6f756e74206f662060617373657432602e190160616d6f756e745f696e5f6d61786020706172616d20616c6c6f777320746f207370656369667920746865206d617820616d6f756e74206f662074686520606173736574316060796f7527726520686170707920746f2070726f766964652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e14746f7563680801186173736574314d010144426f783c543a3a41737365744b696e643e0001186173736574324d010144426f783c543a3a41737365744b696e643e00052c4d01546f75636820616e206578697374696e6720706f6f6c20746f2066756c66696c6c2070726572657175697369746573206265666f72652070726f766964696e67206c69717569646974792c20737563682061734901656e737572696e6720746861742074686520706f6f6c2773206163636f756e74732061726520696e20706c6163652e204974206973207479706963616c6c792075736566756c207768656e206120706f6f6c550163726561746f722072656d6f7665732074686520706f6f6c2773206163636f756e747320616e6420646f6573206e6f742070726f766964652061206c69717569646974792e205468697320616374696f6e206d61795501696e766f6c766520686f6c64696e67206173736574732066726f6d207468652063616c6c65722061732061206465706f73697420666f72206372656174696e672074686520706f6f6c2773206163636f756e74732e0068546865206f726967696e206d757374206265205369676e65642e0029012d2060617373657431603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e29012d2060617373657432603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732ea9060000024d0100ad060c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001283061735f7265636f766572656408011c6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000020a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e347365745f7265636f76657265640801106c6f7374fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572fd0401504163636f756e7449644c6f6f6b75704f663c543e0001200d01416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e3c6372656174655f7265636f766572790c011c667269656e6473a50101445665633c543a3a4163636f756e7449643e0001247468726573686f6c640903010c75313600013064656c61795f706572696f64100170426c6f636b4e756d62657246726f6d50726f76696465724f663c543e00024059014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e44696e6974696174655f7265636f7665727904011c6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e00032ce8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e38766f7563685f7265636f766572790801106c6f7374fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572fd0401504163636f756e7449644c6f6f6b75704f663c543e0004302501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e38636c61696d5f7265636f7665727904011c6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e000524f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e38636c6f73655f7265636f7665727904011c72657363756572fd0401504163636f756e7449644c6f6f6b75704f663c543e00062c110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e3c72656d6f76655f7265636f7665727900072c590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e4063616e63656c5f7265636f766572656404011c6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e00081cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e30706f6b655f6465706f7369740401346d617962655f6163636f756e74410601704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00095c1501506f6b65206465706f7369747320666f72207265636f7665727920636f6e66696775726174696f6e7320616e64202f206f7220616374697665207265636f7665726965732e000d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d20606d617962655f6163636f756e74603a204f7074696f6e616c207265636f76657261626c65206163636f756e7420666f7220776869636820796f75206861766520616e20616374697665207265636f76657279dc616e642077616e7420746f2061646a75737420746865206465706f73697420666f722074686520616374697665207265636f766572792e005501546869732066756e6374696f6e20636865636b7320626f7468207265636f7665727920636f6e66696775726174696f6e206465706f73697420616e6420616374697665207265636f76657279206465706f73697473386f66207468652063616c6c65723a51012d204966207468652063616c6c65722068617320637265617465642061207265636f7665727920636f6e66696775726174696f6e2c20636865636b7320616e642061646a7573747320697473206465706f73697441012d204966207468652063616c6c65722068617320696e6974696174656420616e7920616374697665207265636f7665726965732c20616e642070726f766964657320746865206163636f756e7420696ec8606d617962655f6163636f756e74602c20636865636b7320616e642061646a757374732074686f7365206465706f73697473005d01496620616e79206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468652063616c6c65722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620616e79206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620616e79206465706f73697420697320757064617465642e29014d756c7469706c65206576656e7473206d617920626520656d697474656420696e206361736520626f7468207479706573206f66206465706f736974732061726520757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1060c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001540c62696404011476616c756518013c42616c616e63654f663c542c20493e000024dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0061015061796d656e743a205468652067726f757027732043616e646964617465204465706f7369742077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e14756e62696400011cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e14766f7563680c010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e00011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e000244410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e1c756e766f75636800031c29014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e10766f746508012463616e646964617465fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c617070726f7665200110626f6f6c0004208441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e34646566656e6465725f766f746504011c617070726f7665200110626f6f6c00051c8841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e187061796f757400062841015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e2c77616976655f7265706179040118616d6f756e7418013c42616c616e63654f663c542c20493e0007084d01526570617920746865207061796d656e742070726576696f75736c7920676976656e20746f20746865206d656d626572207769746820746865207369676e6564206f726967696e2c2072656d6f766520616e79e470656e64696e67207061796d656e74732c20616e6420656c6576617465207468656d2066726f6d2072616e6b203020746f2072616e6b20312e34666f756e645f736f636965747918011c666f756e646572fd0401504163636f756e7449644c6f6f6b75704f663c543e00012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e00011472756c657338011c5665633c75383e00084448466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e0040436f6d706c65786974793a204f28312920646973736f6c7665000914b0446973736f6c76652074686520736f636965747920616e642072656d6f766520616c6c206d656d626572732e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e586a756467655f73757370656e6465645f6d656d62657208010c77686ffd0401504163636f756e7449644c6f6f6b75704f663c543e00011c666f7267697665200110626f6f6c000a382901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642066726f6d2074686520466f756e6465722e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e387365745f706172616d657465727310012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e000b3061014368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f636965747920616e6420746865206d6178696d756d206e756d626572206f66206e65772063616e6469646174657368696e20612073696e676c6520696e74616b6520706572696f642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642062792074686520466f756e6465722e002c506172616d65746572733a55012d20606d61785f6d656d6265727360202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e2054686973206d757374206265206e6f206c6573739420207468616e207468652063757272656e74206e756d626572206f66206d656d626572732e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702e3870756e6973685f736b6570746963000c08550150756e6973682074686520736b65707469632077697468206120737472696b65206966207468657920646964206e6f7420766f7465206f6e20612063616e6469646174652e2043616c6c61626c65206279207468652863616e6469646174652e40636c61696d5f6d656d62657273686970000d080d015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865f87468652063616e6469646174652c20616e64206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642e44626573746f775f6d656d6265727368697004012463616e646964617465000130543a3a4163636f756e744964000e0c61015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e206f66207468655901466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e64656420616e64206f6e6c79207768656e207468652063616e646964617465206973206e6f7444636c6561726c792072656a65637465642e386b69636b5f63616e64696461746504012463616e646964617465000130543a3a4163636f756e744964000f145d0152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e55016f662074686520466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642c20616e64206f6e6c79207768656e207468657920646f206e6f745868617665206120636c65617220617070726f76616c2e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e4072657369676e5f63616e64696461637900100c510152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c79206279207468652063616e6469646174652e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e3864726f705f63616e64696461746504012463616e646964617465000130543a3a4163636f756e7449640011142d0152656d6f76652061206063616e646964617465602773206661696c6564206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c6520627920616e7919017369676e6564206f726967696e20627574206f6e6c792061742074686520656e64206f66207468652073756273657175656e7420726f756e6420616e64206f6e6c7920666f72c0612063616e6469646174652077697468206d6f72652072656a656374696f6e73207468616e20617070726f76616c732e00c854686520626964206465706f736974206973206c6f737420616e642074686520766f75636865722069732062616e6e65642e44636c65616e75705f63616e64696461637908012463616e646964617465000130543a3a4163636f756e74496400010c6d617810010c75333200120ce452656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520676976656e206063616e646964617465602e0059014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c79206166746572207468652063616e64696461746527732063616e64696461637920697320656e6465642e44636c65616e75705f6368616c6c656e676508013c6368616c6c656e67655f726f756e64100128526f756e64496e64657800010c6d617810010c75333200130c3d0152656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520646566656e64657220696e2074686520676976656e20606368616c6c656e67655f726f756e64602e0041014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c7920616674657220746865206368616c6c656e676520726f756e6420697320656e6465642e30706f6b655f6465706f73697400141c9c506f6b6520746865206465706f736974207265736572766564207768656e2062696464696e672e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206269646465722e005501546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5060c3470616c6c65745f7265766976651870616c6c65741043616c6c040454000130306574685f7472616e7361637404011c7061796c6f616438011c5665633c75383e00003c2d0141207261772045564d207472616e73616374696f6e2c207479706963616c6c79206469737061746368656420627920616e20457468657265756d204a534f4e2d525043207365727665722e00302320506172616d657465727300ec2a20607061796c6f6164603a2054686520656e636f646564205b6063726174653a3a65766d3a3a5472616e73616374696f6e5369676e6564605d2e01012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f7263656420647572696e6720636f6e747261637420657865637574696f6e2e51012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d2062616c616e636520746861742063616e206265206368617267656420746f207468652063616c6c657220666f7240202073746f726167652075736167652e001823204e6f7465005101546869732063616c6c2063616e6e6f742062652064697370617463686564206469726563746c793b20617474656d7074696e6720746f20646f20736f2077696c6c20726573756c7420696e2061206661696c656451017472616e73616374696f6e2e204974207365727665732061732061207772617070657220666f7220616e20457468657265756d207472616e73616374696f6e2e205768656e207375626d69747465642c20746865590172756e74696d6520636f6e766572747320697420696e746f2061205b6073705f72756e74696d653a3a67656e657269633a3a436865636b656445787472696e736963605d206279207265636f766572696e6720746865987369676e657220616e642076616c69646174696e6720746865207472616e73616374696f6e2e1063616c6c14011064657374810301104831363000011476616c75656d01013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69746d01013042616c616e63654f663c543e0001106461746138011c5665633c75383e00014005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e746961746518011476616c75656d01013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69746d01013042616c616e63654f663c543e000124636f64655f6861736834013473705f636f72653a3a483235360001106461746138011c5665633c75383e00011073616c748801404f7074696f6e3c5b75383b2033325d3e000214f4496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f79656420766d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654101636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f79656420766d2062696e617279446d75737420626520737570706c6965642e54696e7374616e74696174655f776974685f636f646518011476616c75656d01013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69746d01013042616c616e63654f663c543e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c748801404f7074696f6e3c5b75383b2033325d3e00036c3101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3d012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e2049662060536f6d656020697320737570706c696564207468656e20604352454154453260d40973656d616e746963732061726520757365642e20496620604e6f6e6560207468656e20604352415445316020697320757365642e000094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0039012d2054686520737570706c6965642060636f646560206973206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e646574685f696e7374616e74696174655f776974685f636f646514011476616c7565b9060110553235360001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69746d01013042616c616e63654f663c543e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e000a1c3d0153616d65206173205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2c2062757420696e74656e64656420746f2062652064697370617463686564202a2a6f6e6c792a2ae8627920616e2045564d207472616e73616374696f6e207468726f756768207468652045564d20636f6d7061746962696c697479206c617965722e00390143616c6c696e67207468697320646973706174636861626c6520656e7375726573207468617420746865206f726967696e2773206e6f6e63652069732062756d706564206f6e6c79206f6e63652c6101766961207468652060436865636b4e6f6e636560207472616e73616374696f6e20657874656e73696f6e2e20496e20636f6e74726173742c205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d4d01616c736f2062756d707320746865206e6f6e636520616674657220636f6e747261637420696e7374616e74696174696f6e2c2073696e6365206974206d617920626520696e766f6b6564206d756c7469706c659874696d65732077697468696e20612062617463682063616c6c207472616e73616374696f6e2e206574685f63616c6c14011064657374810301104831363000011476616c7565b9060110553235360001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69746d01013042616c616e63654f663c543e0001106461746138011c5665633c75383e000b08f853616d65206173205b6053656c663a3a63616c6c605d2c2062757420696e74656e64656420746f2062652064697370617463686564202a2a6f6e6c792a2ae8627920616e2045564d207472616e73616374696f6e207468726f756768207468652045564d20636f6d7061746962696c697479206c617965722e2c75706c6f61645f636f6465080110636f646538011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d69746d01013042616c616e63654f663c543e000430ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665ac646570656e6473206f6e207468652073697a65206f662074686520737570706c6965642060636f6465602e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e2c72656d6f76655f636f6465040124636f64655f6861736834013473705f636f72653a3a48323536000510350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e207365745f636f6465080110646573748103011048313630000124636f64655f6861736834013473705f636f72653a3a48323536000628090150726976696c656765642066756e6374696f6e2074686174206368616e6765732074686520636f6465206f6620616e206578697374696e6720636f6e74726163742e004501546869732074616b65732063617265206f66207570646174696e6720726566636f756e747320616e6420616c6c206f74686572206e6563657373617279206f7065726174696f6e732e2052657475726e73e8616e206572726f7220696620656974686572207468652060636f64655f6861736860206f722060646573746020646f206e6f742065786973742e001823204e6f74650031015468697320646f6573202a2a6e6f742a2a206368616e6765207468652061646472657373206f662074686520636f6e747261637420696e207175657374696f6e2e2054686973206d65616e733d01746861742074686520636f6e74726163742061646472657373206973206e6f206c6f6e67657220646572697665642066726f6d2069747320636f646520686173682061667465722063616c6c696e67487468697320646973706174636861626c652e2c6d61705f6163636f756e7400071041015265676973746572207468652063616c6c657273206163636f756e7420696420736f20746861742069742063616e206265207573656420696e20636f6e747261637420696e746572616374696f6e732e005d01546869732077696c6c206572726f7220696620746865206f726967696e20697320616c7265616479206d6170706564206f72206973206120657468206e61746976652060416464726573733230602e2049742077696c6c1d0174616b652061206465706f73697420746861742063616e2062652072656c65617365642062792063616c6c696e67205b6053656c663a3a756e6d61705f6163636f756e74605d2e34756e6d61705f6163636f756e74000810fc556e7265676973746572207468652063616c6c657273206163636f756e7420696420696e206f7264657220746f206672656520746865206465706f7369742e0041015468657265206973206e6f20726561736f6e20746f20657665722063616c6c20746869732066756e6374696f6e206f74686572207468616e2066726565696e6720757020746865206465706f7369742ef854686973206973206f6e6c792075736566756c207768656e20746865206163636f756e742073686f756c64206e6f206c6f6e67657220626520757365642e7064697370617463685f61735f66616c6c6261636b5f6163636f756e7404011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0009141d01446973706174636820616e206063616c6c60207769746820746865206f726967696e2073657420746f207468652063616c6c6572732066616c6c6261636b20616464726573732e006101457665727920604163636f756e7449643332602063616e20636f6e74726f6c2069747320636f72726573706f6e64696e672066616c6c6261636b206163636f756e742e205468652066616c6c6261636b206163636f756e74410169732074686520604163636f756e744964323060207769746820746865206c6173742031322062797465732073657420746f206030784545602e205468697320697320657373656e7469616c6c79206155017265636f766572792066756e6374696f6e20696e206361736520616e20604163636f756e74496432306020776173207573656420776974686f7574206372656174696e672061206d617070696e672066697273742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb906083c7072696d69746976655f7479706573105532353600000400bd0601205b7536343b20345d0000bd06000003040000003000c1060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e666967c506015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d697473c906013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736bcd0601404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973410401305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b657973410401305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d697473c906013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f70d106013450726f67726573734f663c543e00013870726f67726573735f6368696c64d106013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec50604184f7074696f6e04045401c9060108104e6f6e6500000010536f6d650400c9060000010000c9060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c7533320000cd060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f70d106013450726f67726573734f663c543e00013870726f67726573735f6368696c64d106013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c7533320000d1060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b65790400d5060164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c65746500020000d5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d9060c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e746d01013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400004045015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e642069732064656c65676174656420286f72207472616e73666572726564206261736564206f6e4d015b60616461707465723a3a5374616b65537472617465677954797065605d292066726f6d20746865206d656d62657220746f2074686520706f6f6c206163636f756e7420616e6420696d6d6564696174656c7968696e637265617365732074686520706f6f6c277320626f6e642e002901546865206d6574686f64206f66207472616e7366657272696e672074686520616d6f756e7420746f2074686520706f6f6c206163636f756e742069732064657465726d696e656420627901015b60616461707465723a3a5374616b65537472617465677954797065605d2e2049662074686520706f6f6c20697320636f6e6669677572656420746f2075736531015b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2c207468652066756e64732072656d61696e20696e20746865206163636f756e74206f66310174686520606f726967696e602c207768696c652074686520706f6f6c206761696e732074686520726967687420746f207573652074686573652066756e647320666f72207374616b696e672e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f65787472610401146578747261dd06015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e74736d01013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e746d01013042616c616e63654f663c543e000110726f6f74fd0401504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572fd0401504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e746d01013042616c616e63654f663c543e000110726f6f74fd0401504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273a50101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e001823204e6f7465005901496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c2074686520706f6f6c2773206465706f7369746f72206e6565647320746f0d0168617665206174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c4964000114737461746599030124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e64e1060158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e64e1060158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c73e5060134436f6e6669674f703c7533323e00012c6d61785f6d656d62657273e5060134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6ce5060134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6ee9060144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f74ed060158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f72ed060158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e636572ed060158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d44704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a55012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f746865727769736520706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ab42a205468652063616c6c65722069732074686520706f6f6c2773206e6f6d696e61746f72206f7220726f6f742e40626f6e645f65787472615f6f746865720801186d656d626572fd0401504163636f756e7449644c6f6f6b75704f663c543e0001146578747261dd06015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6eb503013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6e9d03017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ea503011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465a903019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400144064436c61696d2070656e64696e6720636f6d6d697373696f6e2e003d015468652060726f6f746020726f6c65206f662074686520706f6f6c206973205f616c776179735f20616c6c6f77656420746f20636c61696d2074686520706f6f6c277320636f6d6d697373696f6e2e00550149662074686520706f6f6c20686173207365742060436f6d6d697373696f6e436c61696d5065726d697373696f6e3a3a5065726d697373696f6e6c657373602c207468656e20616e79206163636f756e742063616ed874726967676572207468652070726f63657373206f6620636c61696d696e672074686520706f6f6c277320636f6d6d697373696f6e2e00410149662074686520706f6f6c2068617320736574206974732060436f6d6d697373696f6e436c61696d5065726d697373696f6e6020746f20604163636f756e742861636329602c207468656e206f6e6c79206163636f756e7473302a2060616363602c20616e64642a2074686520706f6f6c277320726f6f74206163636f756e7400b86d61792063616c6c20746869732065787472696e736963206f6e20626568616c66206f662074686520706f6f6c2e002d0150656e64696e6720636f6d6d697373696f6e73206172652070616964206f757420616e6420616464656420746f2074686520746f74616c20636c61696d656420636f6d6d697373696f6e2eb854686520746f74616c2070656e64696e6720636f6d6d697373696f6e20697320726573657420746f207a65726f2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ead0301bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e001724884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005d015468652070656e64696e6720736c61736820616d6f756e74206f6620746865206d656d626572206d75737420626520657175616c206f72206d6f7265207468616e20604578697374656e7469616c4465706f736974602e5101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e2049662074686520657865637574696f6e49016973207375636365737366756c2c2066656520697320726566756e64656420616e642063616c6c6572206d6179206265207265776172646564207769746820612070617274206f662074686520736c6173680d016261736564206f6e20746865205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d20636f6e66696775726174696f6e2e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e74fd0401504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c5265776172647300010000e106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000e506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000e906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401a503010c104e6f6f700000000c5365740400a5030104540001001852656d6f766500020000ed06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f766500020000f1060c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564fd0401504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572fd0401504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572fd0401504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572fd0401504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5060c7870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741870616c6c65741043616c6c0404540001085072656c61795f73657373696f6e5f7265706f72740401187265706f7274f906016c53657373696f6e5265706f72743c543a3a4163636f756e7449643e000004050143616c6c656420746f20696e64696361746520746865207374617274206f662061206e65772073657373696f6e206f6e207468652072656c617920636861696e2e5c72656c61795f6e65775f6f6666656e63655f70616765640401206f6666656e636573050701a85665633c2853657373696f6e496e6465782c204f6666656e63653c543a3a4163636f756e7449643e293e000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef906087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e743453657373696f6e5265706f727404244163636f756e744964010000100124656e645f696e64657810013053657373696f6e496e64657800014076616c696461746f725f706f696e7473fd0601545665633c284163636f756e7449642c20753332293e00015061637469766174696f6e5f74696d657374616d70c90301484f7074696f6e3c287536342c20753332293e0001206c6566746f766572200110626f6f6c0000fd060000020107000107000004080010000507000002090700090700000408100d07000d07087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741c4f6666656e636504244163636f756e7449640100000c01206f6666656e6465720001244163636f756e7449640001247265706f7274657273a50101385665633c4163636f756e7449643e000138736c6173685f6672616374696f6ea503011c50657262696c6c000011070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1870616c6c65741043616c6c040454000104186d616e6167650401086f701507014441646d696e4f7065726174696f6e3c543e0000144c4d616e61676520746869732070616c6c65742e00e0546865206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a41646d696e4f726967696e605d2e000101536565205b6041646d696e4f7065726174696f6e605d20666f7220766172696f7573206f7065726174696f6e7320746861742061726520706f737369626c652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1507089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3841646d696e4f7065726174696f6e04045400011440466f726365526f74617465526f756e6400000034466f72636553657450686173650400d903012050686173653c543e00010050456d657267656e6379536574536f6c7574696f6e080019070184426f783c426f756e646564537570706f7274734f663c50616c6c65743c543e3e3e0000e9030134456c656374696f6e53636f726500020044456d657267656e637946616c6c6261636b000300505365744d696e556e7472757374656453636f72650400e9030134456c656374696f6e53636f7265000400001907087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f72743c426f756e646564537570706f7274730c244163636f756e744964010018424f75746572001842496e6e6572000004001d07010901426f756e6465645665633c284163636f756e7449642c20426f756e646564537570706f72743c4163636f756e7449642c2042496e6e65723e292c20424f757465723e00001d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012107045300000400350701185665633c543e0000210700000408002507002507087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f727438426f756e646564537570706f727408244163636f756e744964010014426f756e640000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273290701bc426f756e6465645665633c284163636f756e7449642c20457874656e64656442616c616e6365292c20426f756e643e000029070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d07045300000400310701185665633c543e00002d070000040800180031070000022d070035070000022107003907149070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c731870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d07109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20756e7369676e65641870616c6c65741043616c6c0404540001043c7375626d69745f756e7369676e656404013870616765645f736f6c7574696f6e41070194426f783c5061676564526177536f6c7574696f6e3c543a3a4d696e6572436f6e6669673e3e00003c705375626d697420616e20756e7369676e656420736f6c7574696f6e2e0055015468697320776f726b732076657279206d756368206c696b6520616e20696e686572656e742c206173206f6e6c79207468652076616c696461746f727320617265207065726d697474656420746f207375626d69745901616e797468696e672e2042792064656661756c742076616c696461746f72732077696c6c20636f6d7075746520746869732063616c6c20696e20746865697220606f6666636861696e5f776f726b65726020686f6f6b6c616e642074727920616e64207375626d6974206974206261636b2e0045015468697320697320646966666572656e742066726f6d207369676e65642070616765207375626d697373696f6e206d61696e6c7920696e20746861742074686520736f6c7574696f6e2070616765206973507665726966696564206f6e2074686520666c792e003d01546865206070616765645f736f6c7574696f6e60206d617920636f6e7461696e206174206d6f7374205b60436f6e6669673a3a4d696e65725061676573605d2070616765732e2054686579206172650d01696e746572707265746564206173206d7370202d3e206c73702c20617320706572205b6063726174653a3a50616c6c65743a3a6d73705f72616e67655f666f72605d2e005d01466f72206578616d706c652c20696620605061676573203d2034602c20616e6420604d696e65725061676573203d2032602c206f75722066756c6c20736e617073686f742072616e676520776f756c64206265205b302c5501312c20322c20335d2c20776974682033206265696e67206d73702e204275742c20696e207468697320636173652c207468656e20746865206070616765645f7261775f736f6c7574696f6e2e706167657360206973dc657870656374656420746f20636f72726573706f6e6420746f20605b736e617073686f742832292c20736e617073686f742833295d602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41070c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b147479706573405061676564526177536f6c7574696f6e04045400000c0138736f6c7574696f6e5f7061676573450701485665633c536f6c7574696f6e4f663c543e3e00011473636f7265e9030134456c656374696f6e53636f7265000114726f756e6410010c7533320000450700000249070049070c6061737365745f6875625f6b7573616d615f72756e74696d651c7374616b696e67544e706f73436f6d70616374536f6c7574696f6e32340000600118766f746573314d0700000118766f74657332590700000118766f746573336d0700000118766f74657334790700000118766f74657335850700000118766f74657336910700000118766f746573379d0700000118766f74657338a90700000118766f74657339b5070000011c766f7465733130c1070000011c766f7465733131cd070000011c766f7465733132d9070000011c766f7465733133e5070000011c766f7465733134f1070000011c766f7465733135fd070000011c766f746573313609080000011c766f746573313715080000011c766f746573313821080000011c766f74657331392d080000011c766f746573323039080000011c766f746573323145080000011c766f746573323251080000011c766f74657332335d080000011c766f746573323469080000004d070000025107005107000004085d01550700550700000609030059070000025d07005d070000040c5d0161075507006107000004085507650700650700000669070069070c3473705f61726974686d65746963287065725f7468696e677318506572553136000004000903010c75313600006d0700000271070071070000040c5d01750755070075070000030200000061070079070000027d07007d070000040c5d018107550700810700000303000000610700850700000289070089070000040c5d018d075507008d0700000304000000610700910700000295070095070000040c5d0199075507009907000003050000006107009d07000002a10700a1070000040c5d01a507550700a50700000306000000610700a907000002ad0700ad070000040c5d01b107550700b10700000307000000610700b507000002b90700b9070000040c5d01bd07550700bd0700000308000000610700c107000002c50700c5070000040c5d01c907550700c90700000309000000610700cd07000002d10700d1070000040c5d01d507550700d5070000030a000000610700d907000002dd0700dd070000040c5d01e107550700e1070000030b000000610700e507000002e90700e9070000040c5d01ed07550700ed070000030c000000610700f107000002f50700f5070000040c5d01f907550700f9070000030d000000610700fd0700000201080001080000040c5d01050855070005080000030e00000061070009080000020d08000d080000040c5d01110855070011080000030f000000610700150800000219080019080000040c5d011d085507001d0800000310000000610700210800000225080025080000040c5d0129085507002908000003110000006107002d0800000231080031080000040c5d01350855070035080000031200000061070039080000023d08003d080000040c5d014108550700410800000313000000610700450800000249080049080000040c5d014d085507004d0800000314000000610700510800000255080055080000040c5d0159085507005908000003150000006107005d0800000261080061080000040c5d01650855070065080000031600000061070069080000026d08006d080000040c5d0171085507007108000003170000006107007508109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c65741043616c6c040454000114207265676973746572040134636c61696d65645f73636f7265e9030134456c656374696f6e53636f7265000004c45265676973746572206f6e6573656c6620666f7220616e207570636f6d696e67207369676e656420656c656374696f6e2e2c7375626d69745f706167650801107061676510012450616765496e6465780001386d617962655f736f6c7574696f6e7908019c4f7074696f6e3c426f783c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0001208c5375626d697420612073696e676c652070616765206f66206120736f6c7574696f6e2e00b04d75737420616c7761797320636f6d65206166746572205b6050616c6c65743a3a7265676973746572605d2e00e0606d617962655f736f6c7574696f6e602063616e2062652073657420746f20604e6f6e656020746f2065726173652074686520706167652e003501436f6c6c65637473206465706f736974732066726f6d20746865207369676e6564206f726967696e206261736564206f6e205b60436f6e6669673a3a4465706f73697442617365605d20616e646c5b60436f6e6669673a3a4465706f73697450657250616765605d2e106261696c00021454526574726163742061207375626d697373696f6e2e0055014120706f7274696f6e206f6620746865206465706f736974206d61792062652072657475726e65642c206261736564206f6e20746865205b60436f6e6669673a3a4261696c6f75744772616365526174696f605d2e00c4546869732077696c6c2066756c6c792072656d6f76652074686520736f6c7574696f6e2066726f6d2073746f726167652e50636c6561725f6f6c645f726f756e645f64617461080114726f756e6410010c7533320001347769746e6573735f706167657310010c753332000318c0436c656172207468652064617461206f662061207375626d697474657220666f726d20616e206f6c6420726f756e642e003101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e6420746865206f726967696e616c207375626d69747465722e005d01546869732063616e206f6e6c792062652063616c6c656420666f72207375626d697373696f6e73207468617420656e64207570206265696e67206469736361726465642c20617320696e207468657920617265206e6f74c470726f63657373656420616e64207468657920656e64207570206c696e676572696e6720696e207468652071756575652e447365745f696e76756c6e657261626c657304010c696e76a50101445665633c543a3a4163636f756e7449643e00040c685365742074686520696e76756c6e657261626c65206c6973742e0011014469737061746368206f726967696e206d75737420746865207468652073616d65206173205b6063726174653a3a436f6e6669673a3a41646d696e4f726967696e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e790804184f7074696f6e0404540149070108104e6f6e6500000010536f6d650400490700000100007d08105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c65741043616c6c04045400018410626f6e6408011476616c75656d01013042616c616e63654f663c543e0001147061796565f903017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000030610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616c6d01013042616c616e63654f663c543e000128610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e18756e626f6e6404011476616c75656d01013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200034c290152656d6f766520616e79207374616b65207468617420686173206265656e2066756c6c7920756e626f6e64656420616e6420697320726561647920666f72207769746864726177616c2e0055015374616b6520697320636f6e736964657265642066756c6c7920756e626f6e646564206f6e6365205b60436f6e6669673a3a426f6e64696e674475726174696f6e605d2068617320656c61707365642073696e63655d0174686520756e626f6e64696e672077617320696e697469617465642e20496e2072617265206361736573e2809473756368206173207768656e206f6666656e63657320666f722074686520756e626f6e64656420657261550168617665206265656e207265706f7274656420627574206e6f74207965742070726f636573736564e280947769746864726177616c206973207265737472696374656420746f206572617320666f7220776869636884616c6c206f6666656e6365732068617665206265656e2070726f6365737365642e00250154686520756e6c6f636b6564207374616b652077696c6c2062652072657475726e656420617320667265652062616c616e636520696e20746865207374617368206163636f756e742e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730059012d20606e756d5f736c617368696e675f7370616e73603a202a2a446570726563617465642a2a2e2052657461696e6564206f6e6c7920666f72206261636b7761726420636f6d7061746962696c6974793b2074686973682020706172616d6574657220686173206e6f206566666563742e2076616c69646174650401147072656673fd03013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473810801645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005140d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f70617965650401147061796565f903017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000714b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e387365745f636f6e74726f6c6c657200082045012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e4c7365745f76616c696461746f725f636f756e7404010c6e65775d01010c75333200090c90536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c5d01010c753332000a10e8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f665460543a3a4d617856616c696461746f72536574602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e547363616c655f76616c696461746f725f636f756e74040118666163746f728508011c50657263656e74000b1011015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f665460543a3a4d617856616c696461746f72536574602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f6e6f5f65726173000c24ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e34666f7263655f6e65775f657261000d284901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573a50101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34232320506172616d657465727300b02d20607374617368603a20546865207374617368206163636f756e7420746f20626520756e7374616b65642e3d012d20606e756d5f736c617368696e675f7370616e73603a202a2a446570726563617465642a2a2e205468697320706172616d657465722069732072657461696e656420666f72206261636b77617264ac636f6d7061746962696c6974792e204974206e6f206c6f6e6765722068617320616e79206566666563742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e64657800014476616c696461746f725f736c6173686573890801705665633c28543a3a4163636f756e7449642c2050657262696c6c293e00112c090143616e63656c73207363686564756c656420736c617368657320666f72206120676976656e20657261206265666f7265207468657920617265206170706c6965642e006101546869732066756e6374696f6e20616c6c6f77732060543a3a41646d696e4f726967696e6020746f2063616e63656c2070656e64696e6720736c617368657320666f72207370656369666965642076616c696461746f72734901696e206120676976656e206572612e205468652063616e63656c6c656420736c6173686573206172652073746f72656420616e642077696c6c20626520636865636b6564207768656e206170706c79696e6720736c61736865732e0034232320506172616d657465727355012d2060657261603a20546865207374616b696e672065726120666f7220776869636820736c61736865732073686f756c642062652063616e63656c6c65642e205468697320697320746865206572612077686572653501202074686520736c61736820776f756c64206265206170706c6965642c206e6f74207468652065726120696e20776869636820746865206f6666656e63652077617320636f6d6d69747465642e59012d206076616c696461746f725f736c6173686573603a2041206c697374206f662076616c696461746f72207374617368206163636f756e747320616e6420746865697220736c617368206672616374696f6e7320746f3c202062652063616e63656c6c65642e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c75656d01013042616c616e63654f663c543e00130cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a002d01312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f7720606d696e5f6368696c6c65645f626f6e6460206f72206973207a65726f2e3901322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f7720606d696e5f6368696c6c65645f626f6e6460206f72206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d657465727300a82d20607374617368603a20546865207374617368206163636f756e7420746f206265207265617065642e3d012d20606e756d5f736c617368696e675f7370616e73603a202a2a446570726563617465642a2a2e205468697320706172616d657465722069732072657461696e656420666f72206261636b77617264ac636f6d7061746962696c6974792e204974206e6f206c6f6e6765722068617320616e79206566666563742e106b69636b04010c77686f810801645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e6491080158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6491080158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7495080134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7495080134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6499080144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e9d080144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f7265776172647399080144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577a503011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273a10801f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572250101504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616c450601504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e67a5080115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cd84d69677261746573207065726d697373696f6e6c6573736c7920612073746173682066726f6d206c6f636b7320746f20686f6c64732e004901546869732072656d6f76657320746865206f6c64206c6f636b206f6e20746865207374616b6520616e642063726561746573206120686f6c64206f6e2069742061746f6d6963616c6c792e20496620616c6c61017374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c64206173206d75636820617320706f737369626c652e205468652072656d61696e696e67847374616b652069732072656d6f7665642066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e2c6170706c795f736c617368080124736c6173685f657261100120457261496e646578000124736c6173685f6b6579b508017028543a3a4163636f756e7449642c2050657262696c6c2c2075333229001f841d014d616e75616c6c7920616e64207065726d697373696f6e6c6573736c79206170706c696573206120646566657272656420736c61736820666f72206120676976656e206572612e005d014e6f726d616c6c792c20736c617368657320617265206175746f6d61746963616c6c79206170706c6965642073686f72746c7920616674657220746865207374617274206f66207468652060736c6173685f657261602e5901546865206175746f6d61746963206170706c69636174696f6e206f6620736c61736865732069732068616e646c6564206279207468652070616c6c6574277320696e7465726e616c206c6f6769632c20616e64206974cc747269657320746f206170706c79206f6e6520736c61736820706167652070657220626c6f636b206f6620746865206572612e5501496620666f7220736f6d6520726561736f6e2c206f6e6520657261206973206e6f7420656e6f75676820666f72206170706c79696e6720616c6c20736c6173682070616765732c207468652072656d61696e696e67dc736c6173686573206e65656420746f206265206d616e75616c6c7920287065726d697373696f6e6c6573736c7929206170706c6965642e004901466f72206120676976656e2065726120782c2069662061742065726120782b312c20736c617368657320617265207374696c6c20756e6170706c6965642c20616c6c207769746864726177616c73206765742101626c6f636b65642c20616e64207468657365206e65656420746f206265206d616e75616c6c79206170706c6965642062792063616c6c696e6720746869732066756e6374696f6e2e4d01546869732066756e6374696f6e206578697374732061732061202a2a66616c6c6261636b206d656368616e69736d2a2a20666f7220746869732065787472656d6520736974756174696f6e2c20627574207765cc6e657665722065787065637420746f20656e636f756e746572207468697320696e206e6f726d616c207363656e6172696f732e00610154686520706172616d657465727320666f7220746869732063616c6c2063616e2062652071756572696564206279206c6f6f6b696e67206174207468652060556e6170706c696564536c6173686573602073746f726167658c666f722065726173206f6c646572207468616e2074686520616374697665206572612e0034232320506172616d65746572732d012d2060736c6173685f657261603a20546865207374616b696e672065726120696e2077686963682074686520736c61736820776173206f726967696e616c6c79207363686564756c65642e25012d2060736c6173685f6b6579603a204120756e69717565206964656e74696669657220666f722074686520736c6173682c20726570726573656e7465642061732061207475706c653af820202d20607374617368603a20546865207374617368206163636f756e74206f66207468652076616c696461746f72206265696e6720736c61736865642e050120202d2060736c6173685f6672616374696f6e603a20546865206672616374696f6e206f6620746865207374616b6520746861742077617320736c61736865642e050120202d2060706167655f696e646578603a2054686520696e646578206f6620746865206578706f737572652070616765206265696e672070726f6365737365642e002c2323204265686176696f72e82d205468652066756e6374696f6e206973202a2a7065726d697373696f6e6c6573732a2ae28094616e796f6e652063616e2063616c6c2069742ef02d205468652060736c6173685f65726160202a2a6d757374206265207468652063757272656e7420657261206f7220612070617374206572612a2a2e6c496620697420697320696e20746865206675747572652c2074686588202063616c6c206661696c73207769746820604572614e6f7453746172746564602ee42d2054686520666565206973207761697665642069662074686520736c617368206973207375636365737366756c6c79206170706c6965642e005423232046757475726520496d70726f76656d656e7461012d20496d706c656d656e7420616e202a2a6f66662d636861696e20776f726b657220284f435729207461736b2a2a20746f206175746f6d61746963616c6c79206170706c7920736c6173686573207768656e207468657265b82020697320756e7573656420626c6f636b2073706163652c20696d70726f76696e6720656666696369656e63792e387072756e655f6572615f7374657004010c657261100120457261496e64657800202c6101506572666f726d206f6e652073746570206f6620657261207072756e696e6720746f2070726576656e7420506f562073697a652065786861757374696f6e2066726f6d20756e626f756e6465642064656c6574696f6e732e003101546869732065787472696e73696320656e61626c6573207065726d697373696f6e6c657373206c617a79207072756e696e67206f6620657261206461746120627920706572666f726d696e672d01696e6372656d656e74616c2064656c6574696f6e206f662073746f72616765206974656d732e20456163682063616c6c2070726f6365737365732061206c696d69746564206e756d62657225016f66206974656d73206261736564206f6e20617661696c61626c6520626c6f636b2077656967687420746f2061766f696420657863656564696e6720626c6f636b206c696d6974732e00350152657475726e732060506179733a3a4e6f60207768656e20776f726b20697320706572666f726d656420746f20696e63656e746976697a6520726567756c6172206d61696e74656e616e63652e0501416e796f6e652063616e2063616c6c207468697320746f2068656c70206d61696e7461696e2074686520636861696e27732073746f72616765206865616c74682e000d0154686520657261206d75737420626520656c696769626c6520666f72207072756e696e6720286f6c646572207468616e20486973746f72794465707468202b2031292e3901436865636b20604572615072756e696e675374617465602073746f7261676520746f2073656520696620616e20657261206e65656473207072756e696e67206265666f72652063616c6c696e672e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8108000002fd040085080c3473705f61726974686d65746963287065725f7468696e67731c50657263656e74000004000801087538000089080000028d08008d080000040800a503009108105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200009508105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200009908105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f70040454018508010c104e6f6f700000000c536574040085080104540001001852656d6f7665000200009d08105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f7004045401a503010c104e6f6f700000000c5365740400a5030104540001001852656d6f766500020000a1080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e0000a50804184f7074696f6e04045401a9080108104e6f6e6500000010536f6d650400a9080000010000a9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad08045300000400b10801185665633c543e0000ad080c5070616c6c65745f7374616b696e675f6173796e63186c65646765722c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75656d01011c42616c616e636500010c6572615d010120457261496e6465780000b108000002ad0800b5080000040c00a5031000b9080c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e746d01013c42616c616e63654f663c542c20493e00012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69645d01013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e6415040144426f783c543a3a41737365744b696e643e000118616d6f756e746d010150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727919040178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6d250301704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd080c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e6465785d010144506f6c6c496e6465784f663c542c20493e000110766f7465210401704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c61737309030134436c6173734f663c542c20493e000108746ffd0401504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ec1080128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c61737309030134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c61737309030134436c6173734f663c542c20493e000118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373c50801544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574fd0401504163636f756e7449644c6f6f6b75704f663c543e000114636c61737309030134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1080c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000c50804184f7074696f6e0404540109030108104e6f6e6500000010536f6d65040009030000010000c9080c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e0506015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c2d04014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e74cd080188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b0903013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368d108013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd0810346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d62657200010000d10804184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000d5080c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c3104017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9080c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c08045400044900012c3870726f706f73655f626f756e747908011476616c75656d01013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f69645d01012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f69645d01012c426f756e7479496e64657800011c63757261746f72fd0401504163636f756e7449644c6f6f6b75704f663c543e00010c6665656d01013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f69645d01012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f69645d01012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f69645d01012c426f756e7479496e64657800012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f69645d01012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f69645d01012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f69645d01012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e6c617070726f76655f626f756e74795f776974685f63757261746f720c0124626f756e74795f69645d01012c426f756e7479496e64657800011c63757261746f72fd0401504163636f756e7449644c6f6f6b75704f663c543e00010c6665656d01013c42616c616e63654f663c542c20493e00092cd4417070726f766520626f756e74727920616e642070726f706f736520612063757261746f722073696d756c74616e656f75736c792e5501546869732063616c6c20697320612073686f727463757420746f2063616c6c696e672060617070726f76655f626f756e74796020616e64206070726f706f73655f63757261746f72602073657061726174656c792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e00902d2060626f756e74795f6964603a20426f756e747920494420746f20617070726f76652ef82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e0034232320436f6d706c65786974791c2d204f2831292e30706f6b655f6465706f736974040124626f756e74795f69645d01012c426f756e7479496e646578000a3ce4506f6b6520746865206465706f73697420726573657276656420666f72206372656174696e67206120626f756e74792070726f706f73616c2e00f4546869732063616e2062652075736564206279206163636f756e747320746f2075706461746520746865697220726573657276656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d2060626f756e74795f6964603a2054686520626f756e747920696420666f7220776869636820746f2061646a75737420746865206465706f7369742e003901496620746865206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468654c70726f706f7365722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620746865206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620746865206465706f73697420697320757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd080c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800011476616c75656d01013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69645d01012c426f756e7479496e64657800011c63757261746f72fd0401504163636f756e7449644c6f6f6b75704f663c543e00010c6665656d01013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69645d01012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69645d01012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69645d01012c426f756e7479496e64657800012c62656e6566696369617279fd0401504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69645d01012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f69645d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69645d01012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1080c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e6415040144426f783c543a3a41737365744b696e643e00011072617465e10201244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e6415040144426f783c543a3a41737365744b696e643e00011072617465e102012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e6415040144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5080c3470616c6c65745f61685f6f70731870616c6c65741043616c6c0404540001105c756e726573657276655f6c656173655f6465706f7369740c0114626c6f636b100144426c6f636b4e756d626572466f723c543e0001246465706f7369746f72250101504f7074696f6e3c543a3a4163636f756e7449643e00011c706172615f6964ed020118506172614964000020f8556e7265736572766520746865206465706f7369742074686174207761732074616b656e20666f72206372656174696e6720612063726f77646c6f616e2e005d01546869732063616e2062652063616c6c656420627920616e79207369676e6564206f726967696e2e20497420756e726573657276657320746865206c65617365206465706f736974206f6e20746865206163636f756e7459017468617420776f6e20746865206c656173652061756374696f6e2e2049742063616e20626520756e7265736572766564206f6e636520616c6c206c656173657320657870697265642e204e6f74652074686174206974510177696c6c2062652063616c6c6564206175746f6d61746963616c6c792066726f6d206077697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e6020666f7220746865206d61746368696e674863726f77646c6f616e206163636f756e742e005101536f6c6f20626964646572206163636f756e7473207468617420776f6e206c656173652061756374696f6e732063616e20757365207468697320746f20756e7265736572766520746865697220616d6f756e742e7c77697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e0c0114626c6f636b100144426c6f636b4e756d626572466f723c543e0001246465706f7369746f72250101504f7074696f6e3c543a3a4163636f756e7449643e00011c706172615f6964ed02011850617261496400011cc857697468647261772074686520636f6e747269627574696f6e206f6620612066696e69736865642063726f77646c6f616e2e00d0412063726f77646c6f616e20636f6e747269627574696f6e2063616e2062652077697468647261776e206966206569746865723ad42d205468652063726f77646c6f616e206661696c656420746f20696e20616e2061756374696f6e20616e642074696d6564206f75749c2d20576f6e20616e2061756374696f6e20616e6420616c6c206c65617365732065787069726564008c43616e2062652063616c6c656420627920616e79207369676e6564206f726967696e2e6c756e726573657276655f63726f77646c6f616e5f726573657276650c0114626c6f636b100144426c6f636b4e756d626572466f723c543e0001246465706f7369746f72250101504f7074696f6e3c543a3a4163636f756e7449643e00011c706172615f6964ed020118506172614964000220f8556e7265736572766520746865206465706f7369742074686174207761732074616b656e20666f72206372656174696e6720612063726f77646c6f616e2e007c546869732063616e2062652063616c6c6564206f6e6365206569746865723ad82d205468652063726f77646c6f616e206661696c656420746f2077696e20616e2061756374696f6e20616e642074696d6564206f757421012d20576f6e20616e2061756374696f6e2c20616c6c206c6561736573206578706972656420616e6420616c6c20636f6e747269627574696f6e73206172652077697468647261776e00590143616e2062652063616c6c656420627920616e79207369676e6564206f726967696e2e2054686520636f6e646974696f6e207468617420616c6c20636f6e747269627574696f6e73206172652077697468647261776ee0697320696e20706c6163652073696e6365207468652072657365727665206163747320617320612073746f72616765206465706f7369742e8c7472616e736665725f746f5f706f73745f6d6967726174696f6e5f747265617375727904012061737365745f69644d0101f8426f783c3c543a3a46756e6769626c65732061732046756e6769626c6573496e73706563743c543a3a4163636f756e7449643e3e3a3a417373657449643e00031049015472616e73666572207468652062616c616e63652066726f6d20746865207072652d6d6967726174696f6e207472656173757279206163636f756e7420746f2074686520706f73742d6d6967726174696f6e447472656173757279206163636f756e742e00f8546869732063616c6c2063616e206f6e6c792062652063616c6c656420616674657220746865206d6967726174696f6e20697320636f6d706c657465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9080c4870616c6c65745f61685f6d69677261746f721870616c6c65741043616c6c04045400018440726563656976655f6163636f756e74730401206163636f756e7473ed0801505665633c52634163636f756e74466f723c543e3e00000c9852656365697665206163636f756e74732066726f6d207468652052656c617920436861696e2e003d01546865206163636f756e74732073656e742077697468206070616c6c65745f72635f6d69677261746f723a3a50616c6c65743a3a6d6967726174655f6163636f756e7473602066756e6374696f6e2e44726563656976655f6d756c7469736967730401206163636f756e7473410901505665633c52634d756c74697369674f663c543e3e0001149c52656365697665206d756c7469736967732066726f6d207468652052656c617920436861696e2e004501546869732077696c6c2062652063616c6c65642066726f6d20616e2058434d20605472616e736163746020696e73696465206120444d502066726f6d207468652072656c617920636861696e2e20546865686d756c7469736967732077657265207072657061726564206279fc6070616c6c65745f72635f6d69677261746f723a3a6d756c74697369673a3a4d756c74697369674d69677261746f723a3a6d6967726174655f6d616e79602e54726563656976655f70726f78795f70726f7869657304011c70726f78696573490901845665633c526350726f78794f663c542c20543a3a526350726f7879547970653e3e00020494526563656976652070726f786965732066726f6d207468652052656c617920436861696e2e6c726563656976655f70726f78795f616e6e6f756e63656d656e7473040134616e6e6f756e63656d656e74735d0901745665633c526350726f7879416e6e6f756e63656d656e744f663c543e3e000304c4526563656976652070726f787920616e6e6f756e63656d656e74732066726f6d207468652052656c617920436861696e2e5c726563656976655f707265696d6167655f6368756e6b730401186368756e6b73650901505665633c5263507265696d6167654368756e6b3e0004007c726563656976655f707265696d6167655f726571756573745f737461747573040138726571756573745f737461747573710901685665633c506f727461626c65526571756573745374617475733e00050078726563656976655f707265696d6167655f6c65676163795f7374617475730401346c65676163795f737461747573890901805665633c5263507265696d6167654c65676163795374617475734f663c543e3e00060068726563656976655f6e6f6d5f706f6f6c735f6d657373616765730401206d65737361676573910901645665633c52634e6f6d506f6f6c734d6573736167653c543e3e00070064726563656976655f76657374696e675f7363686564756c65730401247363686564756c6573f50901645665633c526356657374696e675363686564756c653c543e3e00080060726563656976655f7265666572656e64615f76616c75657304011876616c756573050a019c5665633c5265666572656e64614d6573736167653c547261636b49644f663c542c2028293e3e3e000a04190152656365697665207265666572656e64756d20636f756e74732c206465636964696e6720636f756e74732c20766f74657320666f722074686520747261636b2071756575652e4c726563656976655f7265666572656e64756d7304012c7265666572656e64756d731d0a01945665633c287533322c2052635265666572656e64756d496e666f4f663c542c2028293e293e000b04a452656365697665207265666572656e64756d732066726f6d207468652052656c617920436861696e2e38726563656976655f636c61696d730401206d657373616765734d0a01645665633c5263436c61696d734d6573736167654f663c543e3e000c0068726563656976655f626167735f6c6973745f6d657373616765730401206d65737361676573610a01705665633c506f727461626c65426167734c6973744d6573736167653e000d0068726563656976655f7363686564756c65725f6d657373616765730401206d65737361676573710a01705665633c52635363686564756c65724d6573736167654f663c543e3e000e003c726563656976655f696e646963657304011c696e6469636573850a01605665633c5263496e6469636573496e6465784f663c543e3e000f0088726563656976655f636f6e76696374696f6e5f766f74696e675f6d657373616765730401206d657373616765738d0a018c5665633c5263436f6e76696374696f6e566f74696e674d6573736167654f663c543e3e00100064726563656976655f626f756e746965735f6d657373616765730401206d65737361676573bd0a016c5665633c5263426f756e746965734d6573736167654f663c543e3e0011004c726563656976655f61737365745f72617465730401147261746573d50a01f45665633c283c542061732070616c6c65745f61737365745f726174653a3a436f6e6669673e3a3a41737365744b696e642c20466978656455313238293e00120068726563656976655f63726f77646c6f616e5f6d657373616765730401206d65737361676573dd0a01705665633c526343726f77646c6f616e4d6573736167654f663c543e3e00130068726563656976655f7265666572656e64615f6d657461646174610401206d65746164617461e50a01b05665633c287533322c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368293e00140064726563656976655f74726561737572795f6d657373616765730401206d65737361676573ed0a01705665633c506f727461626c6554726561737572794d6573736167653e00150084726563656976655f7363686564756c65725f6167656e64615f6d657373616765730401206d65737361676573050b0131015665633c5363686564756c65724167656e64614d6573736167653c426c6f636b4e756d626572466f723c543e2c207363686564756c65723a3a0a52635363686564756c65644f663c543e3e3e00160088726563656976655f64656c6567617465645f7374616b696e675f6d657373616765730401206d65737361676573190b01905665633c506f727461626c6544656c6567617465645374616b696e674d6573736167653e0017007c726563656976655f6368696c645f626f756e746965735f6d657373616765730401206d65737361676573210b01845665633c506f727461626c654368696c64426f756e746965734d6573736167653e00180060726563656976655f7374616b696e675f6d657373616765730401206d65737361676573350b016c5665633c506f727461626c655374616b696e674d6573736167653e00190064726563656976655f7265636f766572795f6d657373616765730401206d65737361676573a50b01705665633c506f727461626c655265636f766572794d6573736167653e001a0060726563656976655f736f63696574795f6d657373616765730401206d65737361676573c90b016c5665633c506f727461626c65536f63696574794d6573736167653e001b003c666f7263655f7365745f73746167650401147374616765190c01384d6967726174696f6e53746167650064106053657420746865206d6967726174696f6e2073746167652e000901546869732063616c6c20697320696e74656e64656420666f7220656d657267656e637920757365206f6e6c7920616e64206973206775617264656420627920746865605b60436f6e6669673a3a41646d696e4f726967696e605d2e3c73746172745f6d6967726174696f6e006510645374617274207468652064617461206d6967726174696f6e2e005d0154686973206973207479706963616c6c792063616c6c6564206279207468652052656c617920436861696e20746f20737461727420746865206d6967726174696f6e206f6e207468652041737365742048756220616e6405017265636569766520612068616e647368616b65206d65737361676520696e6469636174696e67207468652041737365742048756227732072656164696e6573732e587365745f646d705f71756575655f7072696f7269747904010c6e65771d0c018c446d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e00660ca45365742074686520444d50207175657565207072696f7269747920636f6e66696775726174696f6e2e00a043616e206f6e6c792062652063616c6c656420627920746865206041646d696e4f726967696e602e2c7365745f6d616e6167657204010c6e6577250101504f7074696f6e3c543a3a4163636f756e7449643e0067106c53657420746865206d616e61676572206163636f756e742069642e004101546865206d616e6167657220686173207468652073696d696c617220746f205b60436f6e6669673a3a41646d696e4f726967696e605d2070726976696c65676573206578636570742074686174206974e863616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e4066696e6973685f6d6967726174696f6e04011064617461210c01a44f7074696f6e3c4d6967726174696f6e46696e6973686564446174613c543a3a42616c616e63653e3e006e1c5446696e69736820746865206d6967726174696f6e2e00450154686973206973207479706963616c6c792063616c6c6564206279207468652052656c617920436861696e20746f207369676e616c20746865206d6967726174696f6e206861732066696e69736865642e0059015468652060646174616020706172616d65746572206d6967687420626520604e6f6e6560206966207765206172652072756e6e696e6720746865206d6967726174696f6e20666f722061207365636f6e642074696d655101666f7220736f6d652070616c6c65747320616e64206861766520616c726561647920706572666f726d65642074686520636865636b696e67206163636f756e742062616c616e636520636f7272656374696f6e2c94736f20776520646f206e6f74206e65656420746f20646f20697420746869732074696d652e4073656e645f78636d5f6d65737361676508011064657374d1020158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676545050154426f783c56657273696f6e656458636d3c28293e3e006f0c350158434d2073656e642063616c6c206964656e746963616c20746f20746865205b6070616c6c65745f78636d3a3a50616c6c65743a3a73656e64605d2063616c6c2062757420776974682074686559015b436f6e6669673a3a53656e6458636d5d20726f757465722077686963682077696c6c2062652061626c6520746f2073656e64206d6573736167657320746f207468652052656c617920436861696e20647572696e6738746865206d6967726174696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed08000002f10800f1080c4870616c6c65745f72635f6d69677261746f72206163636f756e74731c4163636f756e7410244163636f756e74496401001c42616c616e6365011828486f6c64526561736f6e01f50830467265657a65526561736f6e0111090028010c77686f0001244163636f756e7449640001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114686f6c6473190901d8426f756e6465645665633c4964416d6f756e743c486f6c64526561736f6e2c2042616c616e63653e2c20436f6e73745533323c353e3e00011c667265657a6573250901e0426f756e6465645665633c4964416d6f756e743c467265657a65526561736f6e2c2042616c616e63653e2c20436f6e73745533323c353e3e0001146c6f636b73310901b4426f756e6465645665633c42616c616e63654c6f636b3c42616c616e63653e2c20436f6e73745533323c353e3e00013c756e6e616d65645f7265736572766518011c42616c616e6365000124636f6e73756d657273080108753800012470726f76696465727308010875380000f5080c4870616c6c65745f72635f6d69677261746f7214747970657348506f727461626c65486f6c64526561736f6e00011820507265696d6167650400f908016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0000001c5374616b696e670400fd08016870616c6c65745f7374616b696e673a3a486f6c64526561736f6e000100485374617465547269654d6967726174696f6e04000109019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e0002004044656c6567617465645374616b696e6704000509019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e0003001c53657373696f6e04000909016870616c6c65745f73657373696f6e3a3a486f6c64526561736f6e0004002458636d50616c6c657404000d09015870616c6c65745f78636d3a3a486f6c64526561736f6e00050000f9080c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d61676500000000fd08103870616c6c65745f7374616b696e671870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e670000000001090c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d6967726174650000000005090c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c657428486f6c64526561736f6e000104445374616b696e6744656c65676174696f6e0000000009090c3870616c6c65745f73657373696f6e1870616c6c657428486f6c64526561736f6e000104104b657973000000000d090c2870616c6c65745f78636d1870616c6c657428486f6c64526561736f6e00010438417574686f72697a65416c6961730000000011090c4870616c6c65745f72635f6d69677261746f7214747970657350506f727461626c65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c7304001509019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e0000000015090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e63650000000019090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d09045300000400210901185665633c543e00001d0914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401f5081c42616c616e63650118000801086964f50801084964000118616d6f756e7418011c42616c616e6365000021090000021d090025090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540129090453000004002d0901185665633c543e0000290914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640111091c42616c616e63650118000801086964110901084964000118616d6f756e7418011c42616c616e636500002d0900000229090031090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540135090453000004003d0901185665633c543e000035090c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964e50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733909011c526561736f6e73000039090c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c000200003d09000002350900410900000245090045090c4870616c6c65745f72635f6d69677261746f72206d756c74697369672852634d756c746973696708244163636f756e74496401001c42616c616e636501180008011c63726561746f720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000049090000024d09004d090c4870616c6c65745f72635f6d69677261746f721470726f78791c526350726f787910244163636f756e74496401001c42616c616e636501182450726f7879547970650151092c426c6f636b4e756d6265720110000c012464656c656761746f720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011c70726f7869657355090115015665633c70616c6c65745f70726f78793a3a50726f7879446566696e6974696f6e3c4163636f756e7449642c2050726f7879547970652c20426c6f636b4e756d6265723e3e000051090c606b7573616d615f72756e74696d655f636f6e7374616e74731470726f78792450726f7879547970650001280c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e670003002c43616e63656c50726f78790005001c41756374696f6e0006001c536f63696574790007003c4e6f6d696e6174696f6e506f6f6c730008003053706f6b6573706572736f6e0009004050617261526567697374726174696f6e000a000055090000025909005909083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650151092c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970655109012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200005d0900000261090061090c4870616c6c65745f72635f6d69677261746f721470726f78794c526350726f7879416e6e6f756e63656d656e7408244163636f756e74496401001c42616c616e63650118000801246465706f7369746f720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000065090000026909006909104870616c6c65745f72635f6d69677261746f7220707265696d616765186368756e6b733c5263507265696d6167654368756e6b0000100134707265696d6167655f6861736834011048323536000130707265696d6167655f6c656e10010c7533320001446368756e6b5f627974655f6f666673657410010c75333200012c6368756e6b5f62797465736d090190426f756e6465645665633c75382c20436f6e73745533323c4348554e4b5f53495a453e3e00006d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000071090000027509007509104870616c6c65745f72635f6d69677261746f7220707265696d61676538726571756573745f73746174757354506f727461626c655265717565737453746174757300000801106861736834011048323536000138726571756573745f73746174757379090168506f727461626c6552657175657374537461747573496e6e657200007909104870616c6c65745f72635f6d69677261746f7220707265696d61676538726571756573745f73746174757368506f727461626c6552657175657374537461747573496e6e65720001082c556e7265717565737465640801187469636b65747d090174284163636f756e74496433322c20506f727461626c655469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574850901944f7074696f6e3c284163636f756e74496433322c20506f727461626c655469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e2503012c4f7074696f6e3c7533323e000100007d09000004080081090081090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000850904184f7074696f6e040454017d090108104e6f6e6500000010536f6d6504007d09000001000089090000028d09008d09104870616c6c65745f72635f6d69677261746f7220707265696d616765546c65676163795f726571756573745f737461747573585263507265696d6167654c656761637953746174757308244163636f756e74496401001c42616c616e63650118000c011068617368340110483235360001246465706f7369746f720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000091090000029509009509104870616c6c65745f72635f6d69677261746f721c7374616b696e67246e6f6d5f706f6f6c734452634e6f6d506f6f6c734d6573736167650404540001203453746f7261676556616c75657304011876616c756573990901684e6f6d506f6f6c7353746f7261676556616c7565734f663c543e0000002c506f6f6c4d656d626572730401186d656d6265729d09017428543a3a4163636f756e7449642c20506f6f6c4d656d6265723c543e290001002c426f6e646564506f6f6c73040110706f6f6cb509017028506f6f6c49642c20426f6e646564506f6f6c496e6e65723c543e290002002c526577617264506f6f6c7304011c72657761726473c909015c28506f6f6c49642c20526577617264506f6f6c3c543e290003003c537562506f6f6c7353746f726167650401247375625f706f6f6c73d109015428506f6f6c49642c20537562506f6f6c733c543e29000400204d657461646174610401106d657461ed0901ac28506f6f6c49642c20426f756e6465645665633c75382c20543a3a4d61784d657461646174614c656e3e290005004c52657665727365506f6f6c49644c6f6f6b757004011c6c6f6f6b7570730107015828543a3a4163636f756e7449642c20506f6f6c49642900060040436c61696d5065726d697373696f6e730401147065726d73f109017c28543a3a4163636f756e7449642c20436c61696d5065726d697373696f6e29000700009909104870616c6c65745f72635f6d69677261746f721c7374616b696e67246e6f6d5f706f6f6c73544e6f6d506f6f6c7353746f7261676556616c756573041c42616c616e6365011800200148746f74616c5f76616c75655f6c6f636b65644506013c4f7074696f6e3c42616c616e63653e0001346d696e5f6a6f696e5f626f6e644506013c4f7074696f6e3c42616c616e63653e00013c6d696e5f6372656174655f626f6e644506013c4f7074696f6e3c42616c616e63653e0001246d61785f706f6f6c732503012c4f7074696f6e3c7533323e0001406d61785f706f6f6c5f6d656d626572732503012c4f7074696f6e3c7533323e0001646d61785f706f6f6c5f6d656d626572735f7065725f706f6f6c2503012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6eb903013c4f7074696f6e3c50657262696c6c3e0001306c6173745f706f6f6c5f69642503012c4f7074696f6e3c7533323e00009d090000040800a10900a109085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e746572e1020140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173a50901e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000a5090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400a909013842547265654d61703c4b2c20563e0000a909042042547265654d617008044b011004560118000400ad09000000ad09000002b10900b10900000408101800b5090000040810b90900b909085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6ebd090134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573c509015c506f6f6c526f6c65733c543a3a4163636f756e7449643e000114737461746599030124506f6f6c53746174650000bd09085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e749d03017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d6178b903013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465c10901bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6d250301644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6ead0301bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000c10904184f7074696f6e04045401a9030108104e6f6e6500000010536f6d650400a9030000010000c509085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74250101444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72250101444f7074696f6e3c4163636f756e7449643e00011c626f756e636572250101444f7074696f6e3c4163636f756e7449643e0000c9090000040810cd0900cd09104870616c6c65745f72635f6d69677261746f721c7374616b696e673c6e6f6d5f706f6f6c735f616c69617328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e746572e1020140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000d1090000040810d50900d509104870616c6c65745f72635f6d69677261746f721c7374616b696e673c6e6f6d5f706f6f6c735f616c69617320537562506f6f6c7304045400000801186e6f5f657261d9090134556e626f6e64506f6f6c3c543e000120776974685f657261dd09010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000d909104870616c6c65745f72635f6d69677261746f721c7374616b696e673c6e6f6d5f706f6f6c735f616c69617328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000dd090c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601d909045300000400e109013842547265654d61703c4b2c20563e0000e109042042547265654d617008044b0110045601d909000400e509000000e509000002e90900e9090000040810d90900ed090000040810350300f1090000040800b50300f509000002f90900f9090c4870616c6c65745f72635f6d69677261746f721c76657374696e6744526356657374696e675363686564756c65040454000008010c77686f0001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449640001247363686564756c6573fd09019501426f756e6465645665633c70616c6c65745f76657374696e673a3a56657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f720a3c543e3e2c204d617856657374696e675363686564756c65734765743c543e2c3e0000fd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010d05045300000400010a01185665633c543e0000010a0000020d0500050a000002090a00090a0c4870616c6c65745f72635f6d69677261746f72247265666572656e6461405265666572656e64614d6573736167650414547261636b010903000c01407265666572656e64756d5f636f756e742503012c4f7074696f6e3c7533323e0001386465636964696e675f636f756e740d0a01445665633c28547261636b2c20753332293e00012c747261636b5f7175657565150a01785665633c28547261636b2c205665633c287533322c2075313238293e293e00000d0a000002110a00110a0000040809031000150a000002190a00190a000004080903ad09001d0a000002210a00210a0000040810250a00250a0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640109033452756e74696d654f726967696e01290a184d6f6d656e7401101043616c6c012d041c42616c616e636501181454616c6c79012d0a244163636f756e74496401003c5363686564756c6541646472657373019c01181c4f6e676f696e670400310a018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000290a0c6061737365745f6875625f6b7573616d615f72756e74696d653061685f6d6967726174696f6e3c526350616c6c6574734f726967696e0001081873797374656d0400090601746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c4f726967696e7304001506017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e002b00002d0a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f7465730000310a0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640109033452756e74696d654f726967696e01290a184d6f6d656e7401101043616c6c012d041c42616c616e636501181454616c6c79012d0a244163636f756e74496401003c5363686564756c6541646472657373019c002c0114747261636b0903011c547261636b49640001186f726967696e290a013452756e74696d654f726967696e00012070726f706f73616c2d04011043616c6c000124656e6163746d656e74cd080150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974350a016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e673d0a01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c792d0a011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d450a01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000350a0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000390a04184f7074696f6e04045401350a0108104e6f6e6500000010536f6d650400350a00000100003d0a04184f7074696f6e04045401410a0108104e6f6e6500000010536f6d650400410a0000010000410a0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e672503014c4f7074696f6e3c426c6f636b4e756d6265723e0000450a04184f7074696f6e04045401490a0108104e6f6e6500000010536f6d650400490a0000010000490a00000408109c004d0a000002510a00510a0c4870616c6c65745f72635f6d69677261746f7218636c61696d733c5263436c61696d734d6573736167650c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001143453746f7261676556616c756573040114746f74616c18011c42616c616e636500000018436c61696d730400550a016828457468657265756d416464726573732c2042616c616e6365290001001c56657374696e6708010c77686f9d01013c457468657265756d416464726573730001207363686564756c652105017c2842616c616e63652c2042616c616e63652c20426c6f636b4e756d626572290002001c5369676e696e670400590a018028457468657265756d416464726573732c2053746174656d656e744b696e642900030024507265636c61696d7304005d0a0170284163636f756e7449642c20457468657265756d416464726573732900040000550a000004089d011800590a000004089d012905005d0a00000408009d0100610a000002650a00650a104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c6973745c506f727461626c65426167734c6973744d657373616765000108104e6f6465080108696400012c4163636f756e74496433320001106e6f6465690a0130506f727461626c654e6f64650000000c42616708011473636f726530010c75363400010c6261676d0a012c506f727461626c6542616700010000690a104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c69737430506f727461626c654e6f64650000140108696400012c4163636f756e7449643332000110707265762501014c4f7074696f6e3c4163636f756e74496433323e0001106e6578742501014c4f7074696f6e3c4163636f756e74496433323e0001246261675f757070657230010c75363400011473636f726530010c75363400006d0a104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c6973742c506f727461626c6542616700000c0110686561642501014c4f7074696f6e3c4163636f756e74496433323e0001107461696c2501014c4f7074696f6e3c4163636f756e74496433323e0001246261675f757070657230010c7536340000710a000002750a00750a0c4870616c6c65745f72635f6d69677261746f72247363686564756c65724852635363686564756c65724d657373616765042c426c6f636b4e756d6265720110010c3c496e636f6d706c65746553696e6365040010012c426c6f636b4e756d6265720000001c526574726965730400790a01d0285461736b416464726573733c426c6f636b4e756d6265723e2c205265747279436f6e6669673c426c6f636b4e756d6265723e29000100184c6f6f6b75700400810a0190285461736b4e616d652c205461736b416464726573733c426c6f636b4e756d6265723e2900020000790a000004089c7d0a007d0a084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000810a00000408049c00850a000002890a00890a0c4870616c6c65745f72635f6d69677261746f721c696e6469636573385263496e6469636573496e6465780c304163636f756e74496e6465780110244163636f756e74496401001c42616c616e6365011800100114696e6465781001304163636f756e74496e64657800010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e636500011866726f7a656e200110626f6f6c00008d0a000002910a00910a0c4870616c6c65745f72635f6d69677261746f7244636f6e76696374696f6e5f766f74696e67645263436f6e76696374696f6e566f74696e674d65737361676510244163636f756e744964010014436c61737301090318566f74696e6701950a1c42616c616e63650118010824566f74696e67466f720c000001244163636f756e744964000009030114436c6173730000950a0118566f74696e6700000034436c6173734c6f636b73466f7208000001244163636f756e7449640000b50a01545665633c28436c6173732c2042616c616e6365293e00010000950a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400990a01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400b10a01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000990a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f7465739d0a01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73a90a015044656c65676174696f6e733c42616c616e63653e0001147072696f72ad0a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00009d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a10a045300000400a50a01185665633c543e0000a10a0000040810210400a50a000002a10a00a90a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000ad0a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000b10a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ec1080128436f6e76696374696f6e00012c64656c65676174696f6e73a90a015044656c65676174696f6e733c42616c616e63653e0001147072696f72ad0a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000b50a000002b90a00b90a0000040809031800bd0a000002c10a00c10a0c4870616c6c65745f72635f6d69677261746f7220626f756e74696573445263426f756e746965734d6573736167650c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001102c426f756e7479436f756e74040010012c426f756e7479496e6465780000003c426f756e7479417070726f76616c730400210301405665633c426f756e7479496e6465783e00010048426f756e74794465736372697074696f6e730400c50a015828426f756e7479496e6465782c205665633c75383e2900020020426f756e746965730400c90a01f428426f756e7479496e6465782c20616c6961733a3a426f756e74793c4163636f756e7449642c2042616c616e63652c20426c6f636b4e756d6265723e2900030000c50a00000408103800c90a0000040810cd0a00cd0a104870616c6c65745f72635f6d69677261746f7220626f756e7469657314616c69617318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573d10a0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000d10a083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d6265720110011c2050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720005004c417070726f7665645769746843757261746f7204011c63757261746f720001244163636f756e74496400060000d50a000002d90a00d90a000004081504e10200dd0a000002e10a00e10a0c4870616c6c65745f72635f6d69677261746f722463726f77646c6f616e48526343726f77646c6f616e4d6573736167650c2c426c6f636b4e756d6265720110244163636f756e74496401001c42616c616e63650118010c304c656173655265736572766510013c756e726573657276655f626c6f636b10012c426c6f636b4e756d62657200011c6163636f756e740001244163636f756e74496400011c706172615f6964ed020118506172614964000118616d6f756e7418011c42616c616e63650000005443726f77646c6f616e436f6e747269627574696f6e14013877697468647261775f626c6f636b10012c426c6f636b4e756d62657200012c636f6e7472696275746f720001244163636f756e74496400011c706172615f6964ed020118506172614964000118616d6f756e7418011c42616c616e636500014463726f77646c6f616e5f6163636f756e740001244163636f756e7449640001004043726f77646c6f616e5265736572766510013c756e726573657276655f626c6f636b10012c426c6f636b4e756d6265720001246465706f7369746f720001244163636f756e74496400011c706172615f6964ed020118506172614964000118616d6f756e7418011c42616c616e636500020000e50a000002e90a00e90a00000408103400ed0a000002f10a00f10a0c4870616c6c65745f72635f6d69677261746f722074726561737572795c506f727461626c6554726561737572794d65737361676500011c3450726f706f73616c436f756e74040010013450726f706f73616c496e6465780000002450726f706f73616c730400f50a01b02850726f706f73616c496e6465782c2050726f706f73616c3c4163636f756e74496433322c20753132383e2900010024417070726f76616c730400210301485665633c50726f706f73616c496e6465783e000200285370656e64436f756e7404001001285370656e64496e646578000300185370656e647308010869641001285370656e64496e646578000118737461747573fd0a0160426f783c506f727461626c655370656e645374617475733e0004003c4c6173745370656e64506572696f6404002503012c4f7074696f6e3c7533323e0005001446756e647300060000f50a0000040810f90a00f90a083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000fd0a0c4870616c6c65745f72635f6d69677261746f722074726561737572794c506f727461626c655370656e64537461747573000018012861737365745f6b696e641504015c56657273696f6e65644c6f63617461626c654173736574000118616d6f756e741801107531323800012c62656e6566696369617279d102014456657273696f6e65644c6f636174696f6e00012876616c69645f66726f6d10010c7533320001246578706972655f617410010c753332000118737461747573010b0150506f727461626c655061796d656e7453746174650000010b0c4870616c6c65745f72635f6d69677261746f7220747265617375727950506f727461626c655061796d656e74537461746500010c1c50656e64696e6700000024417474656d70746564040108696430010c753634000100184661696c656400020000050b000002090b00090b0c4870616c6c65745f72635f6d69677261746f72247363686564756c6572585363686564756c65724167656e64614d65737361676508044201100453010d0b00080114626c6f636b100104420001186167656e6461110b01385665633c4f7074696f6e3c533e3e00000d0b104870616c6c65745f72635f6d69677261746f72247363686564756c657214616c696173245363686564756c65640c1043616c6c012d042c426c6f636b4e756d62657201103450616c6c6574734f726967696e01290a001401206d617962655f69648801404f7074696f6e3c5461736b4e616d653e0001207072696f726974790801205072696f7269747900011063616c6c2d04011043616c6c0001386d617962655f706572696f646963c904016c4f7074696f6e3c506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e290a013450616c6c6574734f726967696e0000110b000002150b00150b04184f7074696f6e040454010d0b0108104e6f6e6500000010536f6d6504000d0b0000010000190b0000021d0b001d0b104870616c6c65745f72635f6d69677261746f721c7374616b696e674464656c6567617465645f7374616b696e677c506f727461626c6544656c6567617465645374616b696e674d6573736167650001082844656c656761746f72730c012464656c656761746f7200012c4163636f756e74496433320001146167656e7400012c4163636f756e7449643332000118616d6f756e7418011075313238000000184167656e74731401146167656e7400012c4163636f756e7449643332000114706179656500012c4163636f756e744964333200013c746f74616c5f64656c65676174656418011075313238000154756e636c61696d65645f7769746864726177616c731801107531323800013470656e64696e675f736c6173681801107531323800010000210b000002250b00250b0c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e7469657370506f727461626c654368696c64426f756e746965734d65737361676500011c404368696c64426f756e7479436f756e74040010012c426f756e7479496e6465780000004c506172656e744368696c64426f756e74696573080010012c426f756e7479496e646578000010010c75333200010060506172656e74546f74616c4368696c64426f756e74696573080010012c426f756e7479496e646578000010010c7533320002002c4368696c64426f756e74790c0124706172656e745f696410012c426f756e7479496e6465780001206368696c645f696410012c426f756e7479496e6465780001306368696c645f626f756e7479290b014c506f727461626c654368696c64426f756e7479000300644368696c64426f756e74794465736372697074696f6e7356310c0124706172656e745f696410012c426f756e7479496e6465780001206368696c645f696410012c426f756e7479496e64657800012c6465736372697074696f6e310b017c426f756e6465645665633c75382c20436f6e73745533323c31373030303e3e000400505630546f56314368696c64426f756e74794964730c012c76305f6368696c645f696410012c426f756e7479496e646578000124706172656e745f696410012c426f756e7479496e64657800012c76315f6368696c645f696410012c426f756e7479496e6465780005004c4368696c6472656e43757261746f72466565730801206368696c645f696410012c426f756e7479496e646578000118616d6f756e741801107531323800060000290b0c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e746965734c506f727461626c654368696c64426f756e74790000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c75651801107531323800010c6665651801107531323800013c63757261746f725f6465706f736974180110753132380001187374617475732d0b0164506f727461626c654368696c64426f756e747953746174757300002d0b0c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e7469657364506f727461626c654368696c64426f756e74795374617475730001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f7200012c4163636f756e74496433320001001841637469766504011c63757261746f7200012c4163636f756e74496433320002003450656e64696e675061796f75740c011c63757261746f7200012c4163636f756e744964333200012c62656e656669636961727900012c4163636f756e7449643332000124756e6c6f636b5f617410010c75333200030000310b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000350b000002390b00390b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676558506f727461626c655374616b696e674d6573736167650001481856616c75657304003d0b0154506f727461626c655374616b696e6756616c75657300000034496e76756c6e657261626c65730400a50101405665633c4163636f756e74496433323e00010018426f6e646564080114737461736800012c4163636f756e7449643332000128636f6e74726f6c6c657200012c4163636f756e7449643332000200184c6564676572080128636f6e74726f6c6c657200012c4163636f756e74496433320001186c6564676572550b0154506f727461626c655374616b696e674c6564676572000300145061796565080114737461736800012c4163636f756e744964333200011c7061796d656e74650b0164506f727461626c6552657761726444657374696e6174696f6e0004002856616c696461746f7273080114737461736800012c4163636f756e744964333200012876616c696461746f7273690b0158506f727461626c6556616c696461746f725072656673000500284e6f6d696e61746f7273080114737461736800012c4163636f756e744964333200012c6e6f6d696e6174696f6e736d0b014c506f727461626c654e6f6d696e6174696f6e73000600385669727475616c5374616b657273040000012c4163636f756e74496433320007004c457261735374616b6572734f766572766965770c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e74496433320001206578706f73757265750b0174506f727461626c6550616765644578706f737572654d6574616461746100080040457261735374616b657273506167656410010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e744964333200011070616765100110506167650001206578706f73757265790b0150506f727461626c654578706f737572655061676500090038436c61696d6564526577617264730c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e744964333200011c72657761726473210301245665633c506167653e000a00484572617356616c696461746f7250726566730c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e74496433320001147072656673690b0158506f727461626c6556616c696461746f725072656673000b004c4572617356616c696461746f7252657761726408010c657261100120457261496e64657800011872657761726418011075313238000c004045726173526577617264506f696e747308010c657261100120457261496e646578000118706f696e7473890b015c506f727461626c65457261526577617264506f696e7473000d003845726173546f74616c5374616b6508010c657261100120457261496e64657800012c746f74616c5f7374616b6518011075313238000e0040556e6170706c696564536c617368657308010c657261100120457261496e646578000114736c617368910b0158506f727461626c65556e6170706c696564536c617368000f0028426f6e6465644572617304009d0b01745665633c28457261496e6465782c2053657373696f6e496e646578293e0010004c56616c696461746f72536c617368496e4572610c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e7449643332000114736c617368a10b013c2850657262696c6c2c207531323829001100003d0b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d657373616765345374616b696e6756616c756573041c42616c616e636501180040013c76616c696461746f725f636f756e742503012c4f7074696f6e3c7533323e00014c6d696e5f76616c696461746f725f636f756e742503012c4f7074696f6e3c7533323e0001486d696e5f6e6f6d696e61746f725f626f6e644506013c4f7074696f6e3c42616c616e63653e0001486d696e5f76616c696461746f725f626f6e644506013c4f7074696f6e3c42616c616e63653e0001406d696e5f6163746976655f7374616b654506013c4f7074696f6e3c42616c616e63653e0001386d696e5f636f6d6d697373696f6eb903013c4f7074696f6e3c50657262696c6c3e0001506d61785f76616c696461746f72735f636f756e742503012c4f7074696f6e3c7533323e0001506d61785f6e6f6d696e61746f72735f636f756e742503012c4f7074696f6e3c7533323e00012c63757272656e745f657261250301404f7074696f6e3c457261496e6465783e0001286163746976655f657261410b01744f7074696f6e3c506f727461626c65416374697665457261496e666f3e000124666f7263655f657261490b015c4f7074696f6e3c506f727461626c65466f7263696e673e0001486d61785f7374616b65645f72657761726473510b013c4f7074696f6e3c50657263656e743e000154736c6173685f7265776172645f6672616374696f6eb903013c4f7074696f6e3c50657262696c6c3e00015463616e63656c65645f736c6173685f7061796f75744506013c4f7074696f6e3c42616c616e63653e00015c63757272656e745f706c616e6e65645f73657373696f6e250301504f7074696f6e3c53657373696f6e496e6465783e00013c6368696c6c5f7468726573686f6c64510b013c4f7074696f6e3c50657263656e743e0000410b04184f7074696f6e04045401450b0108104e6f6e6500000010536f6d650400450b0000010000450b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676554506f727461626c65416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d502012c4f7074696f6e3c7536343e0000490b04184f7074696f6e040454014d0b0108104e6f6e6500000010536f6d6504004d0b00000100004d0b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167653c506f727461626c65466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000510b04184f7074696f6e0404540185080108104e6f6e6500000010536f6d65040085080000010000550b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676554506f727461626c655374616b696e674c65646765720000100114737461736800012c4163636f756e7449643332000114746f74616c1801107531323800011861637469766518011075313238000124756e6c6f636b696e67590b01b8426f756e6465645665633c506f727461626c65556e6c6f636b4368756e6b2c20436f6e73745533323c3130303e3e0000590b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d0b045300000400610b01185665633c543e00005d0b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167654c506f727461626c65556e6c6f636b4368756e6b000008011476616c75651801107531323800010c657261100120457261496e6465780000610b0000025d0b00650b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676564506f727461626c6552657761726444657374696e6174696f6e000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e74040000012c4163636f756e7449643332000300104e6f6e6500040000690b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676558506f727461626c6556616c696461746f7250726566730000080128636f6d6d697373696f6ea503011c50657262696c6c00011c626c6f636b6564200110626f6f6c00006d0b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167654c506f727461626c654e6f6d696e6174696f6e7300000c011c74617267657473710b0194426f756e6465645665633c4163636f756e74496433322c20436f6e73745533323c33323e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000710b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e0000750b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676574506f727461626c6550616765644578706f737572654d657461646174610000100114746f74616c1801107531323800010c6f776e1801107531323800013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000790b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676550506f727461626c654578706f73757265506167650000080128706167655f746f74616c180110753132380001186f74686572737d0b01d4426f756e6465645665633c506f727461626c65496e646976696475616c4578706f737572652c20436f6e73745533323c3630303e3e00007d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401810b045300000400850b01185665633c543e0000810b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676568506f727461626c65496e646976696475616c4578706f73757265000008010c77686f00012c4163636f756e744964333200011476616c7565180110753132380000850b000002810b00890b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167655c506f727461626c65457261526577617264506f696e74730000080114746f74616c10010c753332000128696e646976696475616c8d0b01b8426f756e6465645665633c284163636f756e74496433322c20753332292c20436f6e73745533323c323030303e3e00008d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010107045300000400fd0601185665633c543e0000910b104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676558506f727461626c65556e6170706c696564536c617368000014012476616c696461746f7200012c4163636f756e744964333200010c6f776e180110753132380001186f7468657273950b01b8426f756e6465645665633c284163636f756e74496433322c2075313238292c20436f6e73745533323c3630303e3e0001247265706f7274657273990b0194426f756e6465645665633c4163636f756e74496433322c20436f6e73745533323c31303e3e0001187061796f7574180110753132380000950b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d07045300000400310701185665633c543e0000990b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e00009d0b0000029c00a10b00000408a5031800a50b000002a90b00a90b0c4870616c6c65745f72635f6d69677261746f72207265636f766572795c506f727461626c655265636f766572794d65737361676500010c2c5265636f76657261626c650400ad0b0194284163636f756e74496433322c20506f727461626c655265636f76657279436f6e66696729000000404163746976655265636f7665726965730400bd0b01c8284163636f756e74496433322c204163636f756e74496433322c20506f727461626c654163746976655265636f76657279290001001450726f78790400c50b0168284163636f756e74496433322c204163636f756e74496433322900020000ad0b0000040800b10b00b10b0c4870616c6c65745f72635f6d69677261746f72207265636f7665727958506f727461626c655265636f76657279436f6e666967000010013064656c61795f706572696f6410010c75333200011c6465706f7369741801107531323800011c667269656e6473b50b015c506f727461626c655265636f76657279467269656e64730001247468726573686f6c640903010c7531360000b50b0c4870616c6c65745f72635f6d69677261746f72207265636f766572795c506f727461626c655265636f76657279467269656e6473000004011c667269656e6473b90b01b8426f756e6465645665633c4163636f756e74496433322c20436f6e73745533323c4d41585f465249454e44533e3e0000b90b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e0000bd0b0000040c0000c10b00c10b0c4870616c6c65745f72635f6d69677261746f72207265636f7665727958506f727461626c654163746976655265636f7665727900000c011c6372656174656410010c75333200011c6465706f7369741801107531323800011c667269656e6473b50b015c506f727461626c655265636f76657279467269656e64730000c50b00000408000000c90b000002cd0b00cd0b0c4870616c6c65745f72635f6d69677261746f721c736f636965747958506f727461626c65536f63696574794d6573736167650001241856616c7565730400d10b0148426f783c536f636965747956616c7565733e000000184d656d626572080000012c4163636f756e74496433320000010c0150506f727461626c654d656d6265725265636f7264000100185061796f7574080000012c4163636f756e744964333200000d0c0150506f727461626c655061796f75745265636f7264000200344d656d6265724279496e646578080010010c753332000000012c4163636f756e74496433320003004053757370656e6465644d656d62657273080000012c4163636f756e74496433320000010c0150506f727461626c654d656d6265725265636f72640004002843616e64696461746573080000012c4163636f756e74496433320000110c0144506f727461626c6543616e64696461637900050014566f7465730c0000012c4163636f756e7449643332000000012c4163636f756e74496433320000150c0130506f727461626c65566f74650006003c566f7465436c656172437572736f72080000012c4163636f756e7449643332000038011c5665633c75383e00070034446566656e646572566f7465730c0010010c753332000000012c4163636f756e74496433320000150c0130506f727461626c65566f746500080000d10b0c4870616c6c65745f72635f6d69677261746f721c736f636965747934536f636965747956616c7565730000380128706172616d6574657273d50b016c4f7074696f6e3c506f727461626c6547726f7570506172616d733e00010c706f74450601304f7074696f6e3c753132383e00011c666f756e6465722501014c4f7074696f6e3c4163636f756e74496433323e000110686561642501014c4f7074696f6e3c4163636f756e74496433323e00011472756c6573d10801304f7074696f6e3c483235363e0001306d656d6265725f636f756e742503012c4f7074696f6e3c7533323e00012c726f756e645f636f756e742503012c4f7074696f6e3c7533323e00011062696473dd0b01604f7074696f6e3c5665633c506f727461626c654269643e3e00011c736365707469632501014c4f7074696f6e3c4163636f756e74496433323e0001246e6578745f68656164ed0b01704f7074696f6e3c506f727461626c65496e74616b655265636f72643e0001546368616c6c656e67655f726f756e645f636f756e742503012c4f7074696f6e3c7533323e000124646566656e64696e67f50b01c44f7074696f6e3c284163636f756e74496433322c204163636f756e74496433322c20506f727461626c6554616c6c79293e0001386e6578745f696e74616b655f61742503012c4f7074696f6e3c7533323e0001446e6578745f6368616c6c656e67655f61742503012c4f7074696f6e3c7533323e0000d50b04184f7074696f6e04045401d90b0108104e6f6e6500000010536f6d650400d90b0000010000d90b0c4870616c6c65745f72635f6d69677261746f721c736f63696574794c506f727461626c6547726f7570506172616d73000010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f736974180110753132380000dd0b04184f7074696f6e04045401e10b0108104e6f6e6500000010536f6d650400e10b0000010000e10b000002e50b00e50b0c4870616c6c65745f72635f6d69677261746f721c736f63696574792c506f727461626c6542696400000c010c77686f00012c4163636f756e74496433320001106b696e64e90b013c506f727461626c654269644b696e6400011476616c7565180110753132380000e90b0c4870616c6c65745f72635f6d69677261746f721c736f63696574793c506f727461626c654269644b696e640001081c4465706f73697404001801107531323800000014566f756368080000012c4163636f756e744964333200001801107531323800010000ed0b04184f7074696f6e04045401f10b0108104e6f6e6500000010536f6d650400f10b0000010000f10b0c4870616c6c65745f72635f6d69677261746f721c736f636965747950506f727461626c65496e74616b655265636f726400000c010c77686f00012c4163636f756e744964333200010c62696418011075313238000114726f756e6410010c7533320000f50b04184f7074696f6e04045401f90b0108104e6f6e6500000010536f6d650400f90b0000010000f90b0000040c0000fd0b00fd0b0c4870616c6c65745f72635f6d69677261746f721c736f636965747934506f727461626c6554616c6c790000080124617070726f76616c7310010c75333200012872656a656374696f6e7310010c7533320000010c0c4870616c6c65745f72635f6d69677261746f721c736f636965747950506f727461626c654d656d6265725265636f7264000010011072616e6b10010c75333200011c737472696b657310010c753332000120766f756368696e67050c01784f7074696f6e3c506f727461626c65566f756368696e675374617475733e000114696e64657810010c7533320000050c04184f7074696f6e04045401090c0108104e6f6e6500000010536f6d650400090c0000010000090c0c4870616c6c65745f72635f6d69677261746f721c736f636965747958506f727461626c65566f756368696e6753746174757300010820566f756368696e670000001842616e6e6564000100000d0c0c4870616c6c65745f72635f6d69677261746f721c736f636965747950506f727461626c655061796f75745265636f72640000080110706169641801107531323800011c7061796f757473ad0901405665633c287533322c2075313238293e0000110c0c4870616c6c65745f72635f6d69677261746f721c736f636965747944506f727461626c6543616e6469646163790000140114726f756e6410010c7533320001106b696e64e90b013c506f727461626c654269644b696e6400010c6269641801107531323800011474616c6c79fd0b0134506f727461626c6554616c6c79000138736b65707469635f73747275636b200110626f6f6c0000150c0c4870616c6c65745f72635f6d69677261746f721c736f636965747930506f727461626c65566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c7533320000190c084870616c6c65745f61685f6d69677261746f72384d6967726174696f6e537461676500010c1c50656e64696e6700000050446174614d6967726174696f6e4f6e676f696e67000100344d6967726174696f6e446f6e65000200001d0c0c4870616c6c65745f72635f6d69677261746f721474797065733451756575655072696f72697479042c426c6f636b4e756d6265720110010c18436f6e666967000000384f76657272696465436f6e666967080010012c426c6f636b4e756d626572000010012c426c6f636b4e756d6265720001002044697361626c656400020000210c04184f7074696f6e04045401250c0108104e6f6e6500000010536f6d650400250c0000010000250c0c4870616c6c65745f72635f6d69677261746f72147479706573544d6967726174696f6e46696e697368656444617461041c42616c616e636501180004013c72635f62616c616e63655f6b65707418011c42616c616e63650000290c0c2873705f72756e74696d65187472616974732c426c616b6554776f323536000000002d0c0c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74310c01684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574310c0418526573756c7408045401350c044501390c0108084f6b0400350c000000000c4572720400390c0000010000350c0c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874350101384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000390c082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01350c00080124706f73745f696e666f350c0110496e666f0001146572726f7268013444697370617463684572726f7200003d0c0c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900013038426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e304465706f736974506f6b6564100124626f756e74795f696410012c426f756e7479496e64657800012070726f706f736572000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e000b04804120626f756e7479206465706f73697420686173206265656e20706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574410c0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574450c0c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e6415040130543a3a41737365744b696e6400011072617465e10201244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e6415040130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e6415040130543a3a41737365744b696e6400010c6f6c64e102012446697865645531323800010c6e6577e1020124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574490c0c3470616c6c65745f61685f6f70731870616c6c6574144576656e7404045400010c5c4c65617365556e7265736572766552656d61696e696e670c01246465706f7369746f72000130543a3a4163636f756e74496400011c706172615f6964ed02011850617261496400012472656d61696e696e6718013042616c616e63654f663c543e0000041101536f6d65206c65617365207265736572766520636f756c64206e6f7420626520756e726573657276656420616e64206e65656473206d616e75616c20636c65616e75702e6c43726f77646c6f616e556e7265736572766552656d61696e696e670c01246465706f7369746f72000130543a3a4163636f756e74496400011c706172615f6964ed02011850617261496400012472656d61696e696e6718013042616c616e63654f663c543e0001045501536f6d6520616d6f756e7420666f7220612063726f77646c6f616e207265736572766520636f756c64206e6f7420626520756e726573657276656420616e64206e65656473206d616e75616c20636c65616e75702e44536f7665726569676e4d6967726174656410011c706172615f6964ed02011850617261496404bc5468652070617261636861696e20494420746861742068616420697473206163636f756e74206d696772617465642e011066726f6d000130543a3a4163636f756e74496404a4546865206f6c64206163636f756e74207468617420776173206d69677261746564206f7574206f662e0108746f000130543a3a4163636f756e744964049c546865206e6577206163636f756e74207468617420776173206d6967726174656420696e746f2e014064657269766174696f6e5f696e646578c508015c4f7074696f6e3c44657269766174696f6e496e6465783e04f85365742069662074686973206163636f756e742077617320646572697665642066726f6d2061207061726120736f7665726569676e206163636f756e742e020825014120736f7665726569676e2070617261636861696e206163636f756e7420686173206265656e206d696772617465642066726f6d20697473206368696c6420746f207369626c696e673c726570726573656e746174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65744d0c0c4870616c6c65745f61685f6d69677261746f721870616c6c6574144576656e740404540001383c53746167655472616e736974696f6e08010c6f6c64190c01384d6967726174696f6e53746167650490546865206f6c64207374616765206265666f726520746865207472616e736974696f6e2e010c6e6577190c01384d6967726174696f6e5374616765048c546865206e657720737461676520616674657220746865207472616e736974696f6e2e00048041207374616765207472616e736974696f6e20686173206f636375727265642e344261746368526563656976656408011870616c6c6574510c013c50616c6c65744576656e744e616d65000114636f756e7410010c753332000104190157652072656365697665642061206261746368206f66206d6573736167657320746861742077696c6c20626520696e746567726174656420696e746f20612070616c6c65742e38426174636850726f6365737365640c011870616c6c6574510c013c50616c6c65744576656e744e616d65000128636f756e745f676f6f6410010c753332000124636f756e745f62616410010c753332000204c457652070726f6365737365642061206261746368206f66206d6573736167657320666f7220746869732070616c6c65742e6041737365744875624d6967726174696f6e53746172746564000318490154686520417373657420487562204d6967726174696f6e207374617274656420616e642069732061637469766520756e74696c206041737365744875624d6967726174696f6e46696e69736865646020697320656d69747465642e00590154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a20446174614d6967726174696f6e4f6e676f696e672c202e2e207d6020627574206973490165617369657220746f20756e6465727374616e642e205468652061637469766174696f6e20697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e6441737365744875624d6967726174696f6e46696e69736865640004148454686520417373657420487562204d6967726174696f6e2066696e69736865642e00590154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a204d6967726174696f6e446f6e652c202e2e207d6020627574206973206561736965722901746f20756e6465727374616e642e205468652066696e697368696e6720697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e4c446d7051756575655072696f726974795365740c012c7072696f726974697a6564200110626f6f6c0ce0496e6469636174657320696620444d5020717565756520776173207375636365737366756c6c7920736574206173207072696f726974792e2d014966206066616c7365602c206974206d65616e7320776527726520696e2074686520726f756e642d726f62696e207068617365206f66206f7572207072696f72697479207061747465726e210128736565205b60436f6e6669673a3a446d7051756575655072696f726974795061747465726e605d292c207768657265206e6f2071756575652067657473207072696f726974792e012c6379636c655f626c6f636b100144426c6f636b4e756d626572466f723c543e04f043757272656e7420626c6f636b206e756d6265722077697468696e20746865207061747465726e206379636c6520283120746f20706572696f64292e01306379636c655f706572696f64100144426c6f636b4e756d626572466f723c543e04ac546f74616c206e756d626572206f6620626c6f636b7320696e20746865207061747465726e206379636c650504e4576865746865722074686520444d5020717565756520776173207072696f726974697a656420666f7220746865206e65787420626c6f636b2e64446d7051756575655072696f72697479436f6e66696753657408010c6f6c641d0c018c446d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206f6c64207072696f72697479207061747465726e2e010c6e65771d0c018c446d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206e6577207072696f72697479207061747465726e2e06049854686520444d50207175657565207072696f7269747920636f6e66696720776173207365742e5c42616c616e6365734265666f72655265636f7264536574080140636865636b696e675f6163636f756e74180128543a3a42616c616e6365000138746f74616c5f69737375616e6365180128543a3a42616c616e6365000704c05468652062616c616e636573206265666f726520746865206d6967726174696f6e2077657265207265636f726465642e7042616c616e6365734265666f72655265636f7264436f6e73756d6564080140636865636b696e675f6163636f756e74180128543a3a42616c616e6365000138746f74616c5f69737375616e6365180128543a3a42616c616e6365000804c05468652062616c616e636573206265666f726520746865206d6967726174696f6e207765726520636f6e73756d65642e485265666572656e64756d43616e63656c6564040108696410010c753332000904e841207265666572656e64756d207761732063616e63656c6c6564206265636175736520697420636f756c64206e6f74206265206d61707065642e284d616e6167657253657408010c6f6c64250101504f7074696f6e3c543a3a4163636f756e7449643e046c546865206f6c64206d616e61676572206163636f756e742069642e010c6e6577250101504f7074696f6e3c543a3a4163636f756e7449643e046c546865206e6577206d616e61676572206163636f756e742069642e0a047c546865206d616e61676572206163636f756e7420696420776173207365742e8c4163636f756e745472616e736c6174656450617261636861696e536f7665726569676e08011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000b00a84163636f756e745472616e736c6174656450617261636861696e536f7665726569676e446572697665640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014064657269766174696f6e5f696e6465780903010c753136000c001c58636d53656e741001186f726967696e4d0101204c6f636174696f6e00012c64657374696e6174696f6e4d0101204c6f636174696f6e00011c6d657373616765c101011c58636d3c28293e0001286d6573736167655f696404011c58636d48617368000d0460416e2058434d206d657373616765207761732073656e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574510c084870616c6c65745f61685f6d69677261746f723c50616c6c65744576656e744e616d6500016c284173736574526174657300000020426167734c6973740001002042616c616e63657300020020426f756e74696573000300344368696c64426f756e7469657300040018436c61696d7300050040436f6e76696374696f6e566f74696e670006002443726f77646c6f616e0007004044656c6567617465645374616b696e670008001c496e6469636573000900204d756c7469736967000a00204e6f6d506f6f6c73000b0034507265696d6167654368756e6b000c0050507265696d6167654c6567616379537461747573000d0054507265696d61676552657175657374537461747573000e004850726f7879416e6e6f756e63656d656e7473000f003050726f787950726f78696573001000205265636f76657279001100445265666572656e64614d65746164617461001200505265666572656e64615265666572656e64756d730013003c5265666572656e646156616c756573001400245363686564756c65720015003c5363686564756c65724167656e64610016001c5374616b696e670017002054726561737572790018001c56657374696e670019001c536f6369657479001a0000550c08306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000590c08306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e5d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d655d0c0144436f773c277374617469632c207374723e00005d0c040c436f7704045401610c000400610c000000610c0000050200650c08306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000690c0c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173736d0c01845065724469737061746368436c6173733c57656967687473506572436c6173733e00006d0c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401710c000c01186e6f726d616c710c01045400012c6f7065726174696f6e616c710c0104540001246d616e6461746f7279710c0104540000710c0c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963350101384f7074696f6e3c5765696768743e0001246d61785f746f74616c350101384f7074696f6e3c5765696768743e0001207265736572766564350101384f7074696f6e3c5765696768743e0000750c0c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178790c01545065724469737061746368436c6173733c7533323e0000790c0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400007d0c082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000810c082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d655d0c0144436f773c277374617469632c207374723e000124696d706c5f6e616d655d0c0144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973850c011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000850c040c436f7704045401890c000400890c000000890c0000028d0c008d0c00000408e5011000910c0c306672616d655f73797374656d1870616c6c6574144572726f7204045400012c3c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e2c496e76616c69645461736b0007049054686520737065636966696564205b605461736b605d206973206e6f742076616c69642e284661696c65645461736b000804bc54686520737065636966696564205b605461736b605d206661696c656420647572696e6720657865637574696f6e2e444e6f7468696e67417574686f72697a6564000904584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a6564000a0494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574950c000002990c00990c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e6477696474689d0c01345573656442616e647769647468000138706172615f686561645f68617368d10801244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616cb10c018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e00009d0c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67a10c018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000a10c042042547265654d617008044b01ed02045601a50c000400a90c000000a50c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c7533320000a90c000002ad0c00ad0c00000408ed02a50c00b10c04184f7074696f6e04045401b50c0108104e6f6e6500000010536f6d650400b50c0000010000b50c0c4c706f6c6b61646f745f7072696d6974697665730876383855706772616465476f41686561640001081441626f72740000001c476f416865616400010000b90c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e6477696474689d0c01345573656442616e64776964746800013868726d705f77617465726d61726b250301804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616cb10c018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000bd0c04184f7074696f6e04045401c10c0108104e6f6e6500000010536f6d650400c10c0000010000c10c0c4c706f6c6b61646f745f7072696d69746976657308763848557067726164655265737472696374696f6e0001041c50726573656e7400000000c50c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f6361706163697479c90c018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73cd0c01885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73cd0c01885665633c285061726149642c20416272696467656448726d704368616e6e656c293e0000c90c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000cd0c000002d10c00d10c00000408ed02d50c00d50c0c4c706f6c6b61646f745f7072696d6974697665730876384c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164d10801304f7074696f6e3c486173683e0000d90c0c4c706f6c6b61646f745f7072696d697469766573087638644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73dd0c01484173796e634261636b696e67506172616d730000dd0c104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000e10c089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c6179486173680000e50c042042547265654d617008044b01ed02045601e10c000400e90c000000e90c000002ed0c00ed0c00000408ed02e10c00f10c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e7440496e626f756e644d6573736167654964000008011c73656e745f617410012c426c6f636b4e756d62657200012c726576657273655f69647810010c7533320000f50c000002f90c00f90c0860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401ed0200080124726563697069656e74ed02010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000fd0c0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001184c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010d0c4470616c6c65745f6d6967726174696f6e731870616c6c6574144572726f720404540001041c4f6e676f696e67000004e8546865206f7065726174696f6e2063616e6e6f7420636f6d706c6574652073696e636520736f6d65204d424d7320617265206f6e676f696e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050d083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f7369742d070150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974090d01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656e2503012c4f7074696f6e3c7533323e00010000090d04184f7074696f6e040454012d070108104e6f6e6500000010536f6d6504002d0700000100000d0d083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401110d01082c556e7265717565737465640801187469636b6574150d014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574190d016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656e2503012c4f7074696f6e3c7533323e00010000110d14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000150d0000040800110d00190d04184f7074696f6e04045401150d0108104e6f6e6500000010536f6d650400150d00000100001d0d00000408341000210d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000250d0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d0d045300000400350d01185665633c543e00002d0d04184f7074696f6e04045401310d0108104e6f6e6500000010536f6d650400310d0000010000310d084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c012d042c426c6f636b4e756d62657201103450616c6c6574734f726967696e010506244163636f756e7449640100001401206d617962655f69648801304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2d04011043616c6c0001386d617962655f706572696f646963c90401944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e0506013450616c6c6574734f726967696e0000350d0000022d0d00390d0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0d0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540135090453000004003d0901185665633c543e0000410d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401450d045300000400490d01185665633c543e0000450d0c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201e5011c42616c616e63650118000801086964e5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000490d000002450d004d0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401510d045300000400690d01185665633c543e0000510d14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401550d1c42616c616e63650118000801086964550d01084964000118616d6f756e7418011c42616c616e63650000550d086061737365745f6875625f6b7573616d615f72756e74696d654452756e74696d65486f6c64526561736f6e00012420507265696d6167650400f908016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0006001c53657373696f6e04000909016870616c6c65745f73657373696f6e3a3a486f6c64526561736f6e0016002c506f6c6b61646f7458636d04000d09015870616c6c65745f78636d3a3a486f6c64526561736f6e001f00504e66744672616374696f6e616c697a6174696f6e0400590d01a070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a486f6c64526561736f6e0036001852657669766504005d0d016470616c6c65745f7265766976653a3a486f6c64526561736f6e003c00485374617465547269654d6967726174696f6e04000109019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e0046004044656c6567617465645374616b696e6704000509019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e005300604d756c7469426c6f636b456c656374696f6e5369676e65640400610d01e070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a7369676e65643a3a486f6c64526561736f6e0058001c5374616b696e670400650d018070616c6c65745f7374616b696e675f6173796e633a3a486f6c64526561736f6e00590000590d0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c657428486f6c64526561736f6e000104384672616374696f6e616c697a6564000000005d0d0c3470616c6c65745f7265766976651870616c6c657428486f6c64526561736f6e00010c60436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f7369745265736572766500010038416464726573734d617070696e6700020000610d109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c657428486f6c64526561736f6e000104405369676e65645375626d697373696f6e00000000650d105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e6700000000690d000002510d006d0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401710d045300000400790d01185665633c543e0000710d14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401750d1c42616c616e63650118000801086964750d01084964000118616d6f756e7418011c42616c616e63650000750d086061737365745f6875625f6b7573616d615f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c7304001509019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e00500000790d000002710d007d0d0c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810d086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000850d083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000890d0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e8d0d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e910d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e0000950d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401990d0453000004009d0d01185665633c543e0000990d0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e636500009d0d000002990d00a10d08346672616d655f737570706f72742050616c6c6574496400000400e501011c5b75383b20385d0000a50d0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90d000002ad0d00ad0d0000040800350500b10d000002b50d00b50d0000040810b90d00b90d0c2873705f7374616b696e671c6f6666656e63653c4f6666656e6365536576657269747900000400a503011c50657262696c6c0000bd0d00000408c10d3800c10d0c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d0000c50d0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742ec90d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013905045300000400cd0d01185665633c543e0000cd0d000002390500d10d084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c7536340000d50d00000408d10d1000d90d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401ed02045300000400dd0d012c42547265655365743c543e0000dd0d0420425472656553657404045401ed02000400e10d000000e10d000002ed0200e50d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e90d045300000400f10d01185665633c543e0000e90d086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74ed0201185061726149640001147374617465ed0d01344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e6465780903010c7531360001286c6173745f696e6465780903010c7531360000ed0d086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000f10d000002e90d00f50d00000408ed02090300f90d0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e0000fd0d086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000010e0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050e0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572d102014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572090e01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f746966790d0e01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ed102014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365150e014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000090e04184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d10200000100000d0e04184f7074696f6e04045401110e0108104e6f6e6500000010536f6d650400110e0000010000110e00000408080800150e080c78636d4456657273696f6e6564526573706f6e736500010c08563304005505013076333a3a526573706f6e736500030008563404009505013076343a3a526573706f6e73650004000856350400ed01013076353a3a526573706f6e736500050000190e0000040810d102001d0e0000040c30281000210e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401250e045300000400290e01185665633c543e0000250e00000408d1021000290e000002250e002d0e0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e7454617267657473040090013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000310e0000040c1000ed0500350e0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e74696669657201a4304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572d102014456657273696f6e65644c6f636174696f6e0001186c6f636b6572d102014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273390e01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000390e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d0e045300000400410e01185665633c543e00003d0e00000408a41800410e0000023d0e00450e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401490e0453000004004d0e01185665633c543e0000490e0000040818d102004d0e000002490e00510e082870616c6c65745f78636d58417574686f72697a6564416c6961736573456e74727908185469636b657401550e0c4d415801590e00080120616c6961736572735d0e0178426f756e6465645665633c4f726967696e416c69617365722c204d41583e0001187469636b6574550e01185469636b65740000550e14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000590e0c2870616c6c65745f78636d1870616c6c6574504d6178417574686f72697a6564416c6961736573000000005d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401610e045300000400650e01185665633c543e0000610e0c4078636d5f72756e74696d655f6170697348617574686f72697a65645f616c6961736573344f726967696e416c696173657200000801206c6f636174696f6ed102014456657273696f6e65644c6f636174696f6e000118657870697279d502012c4f7074696f6e3c7536343e0000650e000002610e00690e0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001702c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e60546f6f4d616e79417574686f72697a6564416c6961736573001904b8546f6f206d616e79206c6f636174696f6e7320617574686f72697a656420746f20616c696173206f726967696e2e3445787069726573496e50617374001a048c45787069727920626c6f636b206e756d62657220697320696e2074686520706173742e34416c6961734e6f74466f756e64001b04d054686520616c69617320746f2072656d6f766520617574686f72697a6174696f6e20666f7220776173206e6f7420666f756e642e844c6f63616c457865637574696f6e496e636f6d706c657465576974684572726f72080114696e646578080140496e737472756374696f6e496e6465780001146572726f726d0e0138457865637574696f6e4572726f72001c0835014c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652077697468207468652061637475616c2058434d206572726f7220616e642074686520696e646578206f662074686588696e737472756374696f6e20746861742063617573656420746865206572726f722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d0e0c2870616c6c65745f78636d186572726f727338457865637574696f6e4572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d6974526561636865640025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d697400280000710e086062705f78636d5f6272696467655f6875625f726f757465722c4272696467655374617465000008014c64656c69766572795f6665655f666163746f72e102012446697865645531323800013069735f636f6e676573746564200110626f6f6c0000750e085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01e90200180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273790e01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000790e04184f7074696f6e040454017d0e0108104e6f6e6500000010536f6d6504007d0e00000100007d0e085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01e9020008011070726576e90201344d6573736167654f726967696e0001106e657874e90201344d6573736167654f726967696e0000810e00000408e9021000850e085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170890e019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000890e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00008d0e0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e910e0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e950e00000408000400990e083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656efd02015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c739d0e018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e00009d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e0000a10e0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50e00000408a90e1800a90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad0e045300000400b10e01185665633c543e0000ad0e083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650105032c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970650503012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000b10e000002ad0e00b50e00000408b90e1800b90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd0e045300000400c10e01185665633c543e0000bd0e083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000c10e000002bd0e00c50e0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e90a045300000400e50a01185665633c543e0000cd0e0c4c70616c6c65745f72656d6f74655f70726f78791870616c6c6574144572726f7208045400044900011c94436f756c644e6f74436f6e766572744c6f63616c546f52656d6f74654163636f756e7449640000040901546865206c6f63616c206163636f756e7420696420636f756c64206e6f7420636f6e76657274656420746f207468652072656d6f7465206163636f756e742069642e5c556e6b6e6f776e50726f6f66416e63686f72426c6f636b000104c054686520616e63686f7220626c6f636b206f66207468652072656d6f74652070726f6f6620697320756e6b6e6f776e2e30496e76616c696450726f6f66000204d45468652070726f787920646566696e6974696f6e20636f756c64206e6f7420626520666f756e6420696e207468652070726f6f662e7450726f7879446566696e6974696f6e4465636f64696e674661696c6564000304f04661696c656420746f206465636f6465207468652072656d6f74652070726f787920646566696e6974696f6e2066726f6d207468652070726f6f662e2c556e616e6e6f756e636564000404d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e844469644e6f7446696e644d61746368696e6750726f7879446566696e6974696f6e000504e8436f756c64206e6f742066696e6420616e79206d61746368696e672070726f787920646566696e6974696f6e20696e207468652070726f6f662e5c50726f787950726f6f664e6f74526567697374657265640006046c50726f78792070726f6f66206e6f7420726567697374657265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10e0000040c00182000d50e0c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90e0c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74200110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c753332000118737461747573dd0e012c41737365745374617475730000dd0e0c3470616c6c65745f6173736574731474797065732c417373657453746174757300010c104c6976650000001846726f7a656e0001002844657374726f79696e6700020000e10e00000408100000e50e0c3470616c6c65745f6173736574731474797065733041737365744163636f756e74101c42616c616e63650118384465706f73697442616c616e6365011814457874726101a4244163636f756e74496401000010011c62616c616e636518011c42616c616e6365000118737461747573e90e01344163636f756e74537461747573000118726561736f6eed0e01a84578697374656e6365526561736f6e3c4465706f73697442616c616e63652c204163636f756e7449643e0001146578747261a4011445787472610000e90e0c3470616c6c65745f617373657473147479706573344163636f756e7453746174757300010c184c69717569640000001846726f7a656e0001001c426c6f636b656400020000ed0e0c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e081c42616c616e63650118244163636f756e7449640100011420436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e6465640003002c4465706f73697446726f6d08000001244163636f756e744964000018011c42616c616e636500040000f10e0000040c10000000f50e0c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e63650000f90e0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701fd0e0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65fd0e0134426f756e646564537472696e6700011873796d626f6cfd0e0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000fd0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000010f0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050f0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67200110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e200110626f6f6c0000090f0000040c001010000d0f0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564250101444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e200110626f6f6c00011c6465706f7369741801384465706f73697442616c616e63650000110f0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174611d03016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000150f0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e6365000110646174611d03016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000190f0000040c1025032903001d0f000004082d031800210f0000040818250100250f0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000158304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e284e6f4d65746164617461001204544e6f206d6574616461746120697320666f756e642e3457726f6e674d65746164617461001304a057726f6e67206d65746164617461206b65792f76616c756520627974657320737570706c6965642e444174747269627574654e6f74466f756e6400140468416e20617474726962757465206973206e6f7420666f756e642e3857726f6e67417474726962757465001504a457726f6e6720617474726962757465206b65792f76616c756520627974657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290f0c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c75333200002d0f0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401310f000400080138436f6c6c656374696f6e526f6c650000310f0c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000350f0c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401390f24417070726f76616c73013d0f000c01146f776e65720001244163636f756e744964000124617070726f76616c733d0f0124417070726f76616c7300011c6465706f736974390f011c4465706f7369740000390f0c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e636500003d0f0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01000456012503045300000400410f013842547265654d61703c4b2c20563e0000410f042042547265654d617008044b01000456012503000400450f000000450f000002490f00490f00000408002503004d0f0c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174613503016c426f756e6465645665633c75382c20537472696e674c696d69743e0000510f0c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401550f2c537472696e674c696d6974000008011c6465706f736974550f011c4465706f736974000110646174613503016c426f756e6465645665633c75382c20537472696e674c696d69743e0000550f0c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74250101444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000590f0000041010250339032d03005d0f000004083503610f00610f0c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74250101444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000650f0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400690f012c42547265655365743c543e0000690f042042547265655365740404540100000400a5010000006d0f0c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01410320446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656d250301384f7074696f6e3c4974656d49643e00011470726963653d0301784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000710f0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401750f00040030013450616c6c6574466561747572650000750f0c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000790f0c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0f000004084d010000810f0000040c4d01000000850f0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701890f0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65890f0134426f756e646564537472696e6700011873796d626f6c890f0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000890f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00008d0f0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e910f0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1474797065731c44657461696c73101c417373657449640110244672616374696f6e7301181c4465706f7369740118244163636f756e744964010000100114617373657410011c417373657449640001246672616374696f6e731801244672616374696f6e7300011c6465706f73697418011c4465706f73697400013461737365745f63726561746f720001244163636f756e7449640000950f0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144572726f7204045400011040496e636f727265637441737365744964000004ac417373657420494420646f6573206e6f7420636f72726573706f6e6420746f206c6f636b6564204e46542e304e6f5065726d697373696f6e000104e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e2c4e66744e6f74466f756e64000204484e465420646f65736e27742065786973742e504e66744e6f744672616374696f6e616c697a6564000304904e465420686173206e6f7420796574206265656e206672616374696f6e616c697365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990f0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e67019d0f0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d659d0f0134426f756e646564537472696e6700011873796d626f6c9d0f0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c00009d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a10f0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50f0c5c70616c6c65745f61737365745f636f6e76657273696f6e14747970657320506f6f6c496e666f042c506f6f6c417373657449640110000401206c705f746f6b656e10012c506f6f6c417373657449640000a90f0c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144572726f7204045400015c40496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e28506f6f6c45786973747300010450506f6f6c20616c7265616479206578697374732e4857726f6e6744657369726564416d6f756e74000204744465736972656420616d6f756e742063616e2774206265207a65726f2e60416d6f756e744f6e654c6573735468616e4d696e696d616c000308490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e60416d6f756e7454776f4c6573735468616e4d696e696d616c000408490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e68526573657276654c6566744c6573735468616e4d696e696d616c0005084d0152657365727665206e6565647320746f20616c776179732062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e40416d6f756e744f7574546f6f48696768000604c84465736972656420616d6f756e742063616e277420626520657175616c20746f2074686520706f6f6c20726573657276652e30506f6f6c4e6f74466f756e640007045c54686520706f6f6c20646f65736e27742065786973742e204f766572666c6f7700080454416e206f766572666c6f772068617070656e65642e8041737365744f6e654465706f7369744469644e6f744d6565744d696e696d756d0009042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e80417373657454776f4465706f7369744469644e6f744d6565744d696e696d756d000a042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e8c41737365744f6e655769746864726177616c4469644e6f744d6565744d696e696d756d000b042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e8c417373657454776f5769746864726177616c4469644e6f744d6565744d696e696d756d000c042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e704f7074696d616c416d6f756e744c6573735468616e44657369726564000d04bc4f7074696d616c2063616c63756c6174656420616d6f756e74206973206c657373207468616e20646573697265642e6c496e73756666696369656e744c69717569646974794d696e746564000e0478496e73756666696369656e74206c6971756964697479206d696e7465642e345a65726f4c6971756964697479000f0488526571756573746564206c69717569646974792063616e2774206265207a65726f2e285a65726f416d6f756e7400100454416d6f756e742063616e2774206265207a65726f2e8c50726f76696465644d696e696d756d4e6f7453756666696369656e74466f7253776170001104ec43616c63756c6174656420616d6f756e74206f7574206973206c657373207468616e2070726f7669646564206d696e696d756d20616d6f756e742e8c50726f76696465644d6178696d756d4e6f7453756666696369656e74466f7253776170001204cc50726f7669646564206d6178696d756d20616d6f756e74206973206e6f742073756666696369656e7420666f7220737761702e2c496e76616c696450617468001304d45468652070726f76696465642070617468206d75737420636f6e7369737473206f66203220617373657473206174206c656173742e344e6f6e556e6971756550617468001404c45468652070726f76696465642070617468206d75737420636f6e7369737473206f6620756e69717565206173736574732e50496e636f7272656374506f6f6c41737365744964001504ec497420776173206e6f7420706f737369626c6520746f20676574206f7220696e6372656d656e7420746865204964206f662074686520706f6f6c2e3042656c6f774d696e696d756d001604f05468652064657374696e6174696f6e206163636f756e742063616e6e6f7420657869737420776974682074686520737761707065642066756e64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0f083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301b90b0010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473b90b011c467269656e64730001247468726573686f6c640903010c7531360000b10f083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301b90b000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473b90b011c467269656e64730000b50f0c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb90f083870616c6c65745f736f6369657479304d656d6265725265636f7264000010011072616e6b10011052616e6b00011c737472696b657310012c537472696b65436f756e74000120766f756368696e67bd0f01584f7074696f6e3c566f756368696e675374617475733e000114696e64657810010c7533320000bd0f04184f7074696f6e04045401c10f0108104e6f6e6500000010536f6d650400c10f0000010000c10f083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e656400010000c50f083870616c6c65745f736f6369657479305061796f75745265636f7264081c42616c616e63650118285061796f75747356656301c90f000801107061696418011c42616c616e636500011c7061796f757473c90f01285061796f7574735665630000c90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b109045300000400ad0901185665633c543e0000cd0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d10f045300000400d90f01185665633c543e0000d10f083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e64d50f016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e63650000d50f083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000d90f000002d10f00dd0f083870616c6c65745f736f63696574792443616e64696461637908244163636f756e74496401001c42616c616e6365011800140114726f756e64100128526f756e64496e6465780001106b696e64d50f016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00010c62696418011c42616c616e636500011474616c6c79e10f011454616c6c79000138736b65707469635f73747275636b200110626f6f6c0000e10f083870616c6c65745f736f63696574791454616c6c790000080124617070726f76616c73100124566f7465436f756e7400012872656a656374696f6e73100124566f7465436f756e740000e50f083870616c6c65745f736f636965747910566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c7533320000e90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000ed0f083870616c6c65745f736f636965747930496e74616b655265636f726408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e74496400010c62696418011c42616c616e6365000114726f756e64100128526f756e64496e6465780000f10f0000040c0000e10f00f50f0c3870616c6c65745f736f63696574791870616c6c6574144572726f72080454000449000184244e6f744d656d6265720000045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000104645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400020448557365722069732073757370656e6465642e304e6f7453757370656e6465640003045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000404484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400050460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000604984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000704e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e4c4e6f74566f756368696e674f6e4269646465720008045c4d656d626572206973206e6f7420766f756368696e672e10486561640009049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000a046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000b0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000c04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000d046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000e0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572000f04785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640010046c5468652063616c6c6572206973206e6f742074686520686561642e2c4e6f74417070726f7665640011042d01546865206d656d626572736869702063616e6e6f7420626520636c61696d6564206173207468652063616e64696461746520776173206e6f7420636c6561726c7920617070726f7665642e2c4e6f7452656a656374656400120425015468652063616e6469646174652063616e6e6f74206265206b69636b6564206173207468652063616e64696461746520776173206e6f7420636c6561726c792072656a65637465642e20417070726f76656400130419015468652063616e6469646163792063616e6e6f742062652064726f70706564206173207468652063616e6469646174652077617320636c6561726c7920617070726f7665642e2052656a65637465640014041d015468652063616e6469646163792063616e6e6f7420626520626573746f776564206173207468652063616e6469646174652077617320636c6561726c792072656a65637465642e28496e50726f677265737300150415015468652063616e6469646163792063616e6e6f7420626520636f6e636c756465642061732074686520766f74696e67206973207374696c6c20696e2070726f67726573732e20546f6f4561726c7900160441015468652063616e6469646163792063616e6e6f74206265207072756e656420756e74696c20612066756c6c206164646974696f6e616c20696e74616b6520706572696f6420686173207061737365642e14566f7465640017046854686520736b657074696320616c726561647920766f7465642e1c45787069726564001804f054686520736b6570746963206e656564206e6f7420766f7465206f6e2063616e646964617465732066726f6d206578706972656420726f756e64732e244e6f744269646465720019045455736572206973206e6f742061206269646465722e284e6f446566656e646572001a047c5468657265206973206e6f20646566656e6465722063757272656e746c792e204e6f7447726f7570001b045047726f757020646f65736e27742065786973742e3c416c7265616479456c657661746564001c04b0546865206d656d62657220697320616c726561647920656c65766174656420746f20746869732072616e6b2e3c416c726561647950756e6973686564001d04dc54686520736b65707469632068617320616c7265616479206265656e2070756e697368656420666f722074686973206f6666656e63652e44496e73756666696369656e7446756e6473001e04c046756e64732061726520696e73756666696369656e7420746f20706179206f666620736f63696574792064656274732e1c4e6f566f746573001f04d05468652063616e6469646174652f646566656e64657220686173206e6f207374616c6520766f74657320746f2072656d6f76652e244e6f4465706f736974002004a85468657265206973206e6f206465706f736974206173736f63696174656420776974682061206269642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000fd0f0c3470616c6c65745f72657669766508766d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f7369746d01013042616c616e63654f663c543e000120726566636f756e742c010c753634000120636f64655f6c656e10010c7533320001446265686176696f75725f76657273696f6e10010c753332000001100c3470616c6c65745f7265766976651c73746f726167652c4163636f756e74496e666f04045400000801306163636f756e745f74797065051001384163636f756e74547970653c543e0001106475737410010c753332000005100c3470616c6c65745f7265766976651c73746f726167652c4163636f756e745479706504045400010820436f6e747261637404000910013c436f6e7472616374496e666f3c543e0000000c454f410001000009100c3470616c6c65745f7265766976651c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f69641d030118547269654964000124636f64655f6861736834013473705f636f72653a3a4832353600013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e000148696d6d757461626c655f646174615f6c656e10010c75333200000d100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000011100c3470616c6c65745f7265766976651c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c753332000015100c3470616c6c65745f7265766976651870616c6c6574144572726f720404540001b83c496e76616c69645363686564756c650001041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730002043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000304b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f64654e6f74466f756e64000704c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000804d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e647300090425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000a042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000b0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000c04f44576656e7420626f6479206f722073746f72616765206974656d2065786365656473205b606c696d6974733a3a5041594c4f41445f4259544553605d2e605465726d696e617465645768696c655265656e7472616e74000d0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000e044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e34546f6f4d616e79546f70696373000f041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e444475706c6963617465436f6e7472616374001204c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200130cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640014040d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e3c5265656e746572656450616c6c65740015042d014120636f6e74726163742063616c6c656420696e746f207468652072756e74696d65207768696368207468656e2063616c6c6564206261636b20696e746f20746869732070616c6c65742e4453746174654368616e676544656e6965640016044d014120636f6e747261637420617474656d7074656420746f20696e766f6b652061207374617465206d6f64696679696e6720415049207768696c65206265696e6720696e20726561642d6f6e6c79206d6f64652e7053746f726167654465706f7369744e6f74456e6f75676846756e647300170421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640018040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e5573650019044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001a10250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001b10190154686520636f6e7472616374206661696c656420746f20636f6d70696c65206f72206973206d697373696e672074686520636f727265637420656e74727920706f696e74732e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c65649c627920737570706c79696e6720602d6c72756e74696d653a3a7265766976653d6465627567602e30426c6f62546f6f4c61726765001c040d0154686520636f646520626c6f6220737570706c696564206973206c6172676572207468616e205b606c696d6974733a3a636f64653a3a424c4f425f4259544553605d2e505374617469634d656d6f7279546f6f4c61726765001d04e054686520636f6e7472616374206465636c6172657320746f6f206d756368206d656d6f72792028726f202b207277202b20737461636b292e484261736963426c6f636b546f6f4c61726765001e04fc5468652070726f6772616d20636f6e7461696e73206120626173696320626c6f636b2074686174206973206c6172676572207468616e20616c6c6f7765642e48496e76616c6964496e737472756374696f6e001f04b05468652070726f6772616d20636f6e7461696e7320616e20696e76616c696420696e737472756374696f6e2e784d617844656c6567617465446570656e64656e6369657352656163686564002004150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64002104150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002204f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002304290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e544f75744f665472616e7369656e7453746f72616765002404ac43616e206e6f7420616464206d6f7265206461746120746f207472616e7369656e742073746f726167652e38496e76616c696453797363616c6c002504550154686520636f6e747261637420747269656420746f2063616c6c20612073797363616c6c20776869636820646f6573206e6f7420657869737420286174206974732063757272656e7420617069206c6576656c292e4c496e76616c696453746f72616765466c6167730026040501496e76616c69642073746f7261676520666c61677320776572652070617373656420746f206f6e65206f66207468652073746f726167652073797363616c6c732e3c457865637574696f6e4661696c65640027042901506f6c6b61564d206661696c656420647572696e6720636f646520657865637574696f6e2e2050726f6261626c792064756520746f2061206d616c666f726d65642070726f6772616d2e5c42616c616e6365436f6e76657273696f6e4661696c6564002804984661696c656420746f20636f6e766572742061205532353620746f20612042616c616e63652e58496e76616c6964496d6d757461626c65416363657373002a083101496d6d757461626c6520646174612063616e206f6e6c792062652073657420647572696e67206465706c6f797320616e64206f6e6c79206265207265616420647572696e672063616c6c732e35014164646974696f6e616c6c792c206974206973206f6e6c792076616c696420746f20736574207468652064617461206f6e636520616e64206974206d757374206e6f7420626520656d7074792e3c4163636f756e74556e6d6170706564002b0c5101416e20604163636f756e744944333260206163636f756e7420747269656420746f20696e7465726163742077697468207468652070616c6c657420776974686f757420686176696e672061206d617070696e672e00290143616c6c205b6050616c6c65743a3a6d61705f6163636f756e74605d20696e206f7264657220746f206372656174652061206d617070696e6720666f7220746865206163636f756e742e504163636f756e74416c72656164794d6170706564002c04bc547269656420746f206d617020616e206163636f756e74207468617420697320616c7265616479206d61707065642e64496e76616c696447656e657269635472616e73616374696f6e002d04d8546865207472616e73616374696f6e207573656420746f206472792d72756e206120636f6e747261637420697320696e76616c69642e5c526566636f756e744f7665724f72556e646572666c6f77002e04c854686520726566636f756e74206f66206120636f646520656974686572206f766572206f7220756e646572666c6f7765642e70556e737570706f72746564507265636f6d70696c6541646472657373002f047c556e737570706f7274656420707265636f6d70696c6520616464726573732e4043616c6c44617461546f6f4c61726765003004c05468652063616c6c646174612065786365656473205b606c696d6974733a3a43414c4c444154415f4259544553605d2e4852657475726e44617461546f6f4c61726765003104cc5468652072657475726e20646174612065786365656473205b606c696d6974733a3a43414c4c444154415f4259544553605d2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1910085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e746572e1020140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e00001d10085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f65726121100134556e626f6e64506f6f6c3c543e000120776974685f6572612510010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e00002110085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e000025100c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560121100453000004002910013842547265654d61703c4b2c20563e00002910042042547265654d617008044b011004560121100004002d100000002d100000023110003110000004081021100035100c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019830506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e73697665040039100138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e2c536c617368546f6f4c6f77002104a854686520736c61736820616d6f756e7420697320746f6f206c6f7720746f206265206170706c6965642e3c416c72656164794d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002304150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002404f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e285265737472696374656400250851014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e20706f6f6c732e2054686973206d61792068617070656e20696620746865206163636f756e742069737c7374616b696e6720696e20616e6f746865722077617920616c72656164792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e39100c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c696564000600003d100c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576250101504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874250101504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f7265000041100c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164250101504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c250101504f7074696f6e3c543a3a4163636f756e7449643e00004510000002300049100c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000108104c69737404004d1001244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e184c6f636b6564000104d8436f756c64206e6f74207570646174652061206e6f64652c2062656361757365207468652070616c6c6574206973206c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d100c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000114244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e64000300184c6f636b65640004000051100c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732844656c65676174696f6e04045400000801146167656e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000055100c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732c4167656e744c656467657204045400001001147061796565000130543a3a4163636f756e74496400013c746f74616c5f64656c6567617465646d01013042616c616e63654f663c543e000154756e636c61696d65645f7769746864726177616c736d01013042616c616e63654f663c543e00013470656e64696e675f736c6173686d01013042616c616e63654f663c543e000059100c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144572726f72040454000130284e6f74416c6c6f776564000004a8546865206163636f756e742063616e6e6f7420706572666f726d2074686973206f7065726174696f6e2e38416c72656164795374616b696e67000104b8416e206578697374696e67207374616b65722063616e6e6f7420706572666f726d207468697320616374696f6e2e60496e76616c696452657761726444657374696e6174696f6e000204d45265776172642044657374696e6174696f6e2063616e6e6f742062652073616d6520617320604167656e7460206163636f756e742e44496e76616c696444656c65676174696f6e0003148844656c65676174696f6e20636f6e646974696f6e7320617265206e6f74206d65742e004c506f737369626c6520697373756573206172656c31292043616e6e6f742064656c656761746520746f2073656c662ca432292043616e6e6f742064656c656761746520746f206d756c7469706c652064656c6567617465732e384e6f74456e6f75676846756e64730004040101546865206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20706572666f726d20746865206f7065726174696f6e2e204e6f744167656e74000504804e6f7420616e206578697374696e6720604167656e7460206163636f756e742e304e6f7444656c656761746f72000604604e6f7420612044656c656761746f72206163636f756e742e20426164537461746500070488536f6d6520636f7272757074696f6e20696e20696e7465726e616c2073746174652e38556e6170706c696564536c617368000804dc556e6170706c6965642070656e64696e6720736c61736820726573747269637473206f7065726174696f6e206f6e20604167656e74602e384e6f7468696e67546f536c617368000904ac604167656e746020686173206e6f2070656e64696e6720736c61736820746f206265206170706c6965642e3857697468647261774661696c6564000a04b04661696c656420746f20776974686472617720616d6f756e742066726f6d20436f7265205374616b696e672e304e6f74537570706f72746564000b049c4f7065726174696f6e206e6f7420737570706f7274656420627920746869732070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d1000000408611010006110087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e744856616c696461746f725365745265706f727404244163636f756e7449640100001001446e65775f76616c696461746f725f736574a50101385665633c4163636f756e7449643e000108696410010c75333200012c7072756e655f75705f746f250301504f7074696f6e3c53657373696f6e496e6465783e0001206c6566746f766572200110626f6f6c000065100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016910045300000400711001185665633c543e000069100000040c00306d10006d100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e0000711000000269100075100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e000079100c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1870616c6c6574144572726f7204045400010c2046616c6c6261636b0000048454726967676572696e6720746865206046616c6c6261636b60206661696c65642e3c556e6578706563746564506861736500010440556e657870656374656420706861736520536e617073686f7400020464536e617073686f742077617320756e617661696c61626c652e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e7d10109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c733456616c6964536f6c7574696f6e000108045800000004590001000081100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540185100453000004008d1001185665633c543e0000851000000408008910008910109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c733c5061727469616c4261636b696e67730000080114746f74616c18013c457874656e64656442616c616e636500011c6261636b65727310010c75333200008d100000028510009110109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c73185374617475730001081c4f6e676f696e67040010012450616765496e6465780000001c4e6f7468696e670001000095100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400a50101185665633c543e000099100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019d10045300000400a11001185665633c543e00009d100000040800e90300a1100000029d1000a5100000040c10001000a9100c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e6564485375626d697373696f6e4d65746164617461040454000014011c6465706f73697418013042616c616e63654f663c543e00010c66656518013042616c616e63654f663c543e00011872657761726418013042616c616e63654f663c543e000134636c61696d65645f73636f7265e9030134456c656374696f6e53636f72650001147061676573ad100168426f756e6465645665633c626f6f6c2c20543a3a50616765733e0000ad100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540120045300000400b11001185665633c543e0000b1100000022000b510109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c6574144572726f720404540001243850686173654e6f745369676e656400000460546865207068617365206973206e6f74207369676e65642e244475706c696361746500010478546865207375626d697373696f6e2069732061206475706c69636174652e24517565756546756c6c000204485468652071756575652069732066756c6c2e3042616450616765496e64657800030480546865207061676520696e646578206973206f7574206f6620626f756e64732e344e6f745265676973746572656400040478546865206163636f756e74206973206e6f7420726567697374657265642e304e6f5375626d697373696f6e000504504e6f207375626d697373696f6e20666f756e642e30526f756e644e6f744f76657200060458526f756e64206973206e6f7420796574206f7665722e384261645769746e6573734461746100070468426164207769746e65737320646174612070726f76696465642e50546f6f4d616e79496e76756c6e657261626c6573000804b0546f6f206d616e7920696e76756c6e657261626c65206163636f756e7473206172652070726f76696465642c048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb9100c5070616c6c65745f7374616b696e675f6173796e63186c6564676572345374616b696e674c656467657204045400001001147374617368000130543a3a4163636f756e744964000114746f74616c6d01013042616c616e63654f663c543e0001186163746976656d01013042616c616e63654f663c543e000124756e6c6f636b696e67a90801f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0000bd10085070616c6c65745f7374616b696e675f6173796e632c4e6f6d696e6174696f6e7304045400000c011c746172676574736d1001b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000c110085070616c6c65745f7374616b696e675f6173796e6334416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274d502012c4f7074696f6e3c7536343e0000c5100c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019c0453000004009d0b01185665633c543e0000c910082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616c6d01011c42616c616e636500010c6f776e6d01011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000cd10105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c65744c426f756e6465644578706f737572655061676504045400000400d11001a04578706f73757265506167653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0000d110082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616c6d01011c42616c616e63650001186f7468657273d51001ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000d510000002d91000d910082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75656d01011c42616c616e63650000dd100c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540110045300000400210301185665633c543e0000e110085070616c6c65745f7374616b696e675f6173796e633c457261526577617264506f696e74730404540000080114746f74616c10012c526577617264506f696e74000128696e646976696475616ce51001f8426f756e64656442547265654d61703c543a3a4163636f756e7449642c20526577617264506f696e742c20543a3a4d617856616c696461746f725365743e0000e5100c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b010004560110045300000400e910013842547265654d61703c4b2c20563e0000e910042042547265654d617008044b010004560110000400fd06000000ed100c5070616c6c65745f7374616b696e675f6173796e6320736c617368696e67344f6666656e63655265636f726404244163636f756e7449640100001401207265706f72746572250101444f7074696f6e3c4163636f756e7449643e0001307265706f727465645f657261100120457261496e6465780001346578706f737572655f7061676510010c753332000138736c6173685f6672616374696f6ea503011c50657262696c6c0001507072696f725f736c6173685f6672616374696f6ea503011c50657262696c6c0000f1100c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540110045300000400210301185665633c543e0000f5100000040c1000ed1000f9100000040810b50800fd10085070616c6c65745f7374616b696e675f6173796e6338556e6170706c696564536c617368040454000014012476616c696461746f72000130543a3a4163636f756e74496400010c6f776e18013042616c616e63654f663c543e0001186f746865727301110111015765616b426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a4d61784578706f737572655061676553697a653e0001207265706f72746572250101504f7074696f6e3c543a3a4163636f756e7449643e0001187061796f757418013042616c616e63654f663c543e000001110c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d07045300000400310701185665633c543e000005110c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d08045300000400890801185665633c543e00000911085070616c6c65745f7374616b696e675f6173796e6338536e617073686f7453746174757304244163636f756e7449640100010c1c4f6e676f696e6704000001244163636f756e74496400000020436f6e73756d65640001001c57616974696e67000200000d110c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400690f012c42547265655365743c543e00001111105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c65742c5072756e696e675374657000011c40457261735374616b65727350616765640000004c457261735374616b6572734f76657276696577000100484572617356616c696461746f72507265667300020038436c61696d6564526577617264730003004c4572617356616c696461746f725265776172640004004045726173526577617264506f696e74730005003845726173546f74616c5374616b65000600001511105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c6574144572726f72040454000190344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e48496e76616c6964536c6173685265636f72640006045c536c617368207265636f7264206e6f7420666f756e642e40496e73756666696369656e74426f6e6400070c350143616e6e6f7420626f6e642c206e6f6d696e617465206f722076616c696461746520776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e38416c7265616479436c61696d6564000d0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000e04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e2042616453746174650010043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300110494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740012043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001304550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730014084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001508550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001604e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400170458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001804010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c65646765720019045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001a04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001b049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001c04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001d04f4537461736820636f756c64206e6f7420626520726561706564206173206f746865722070616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d69677261746564001e040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e344572614e6f7453746172746564001f0450457261206e6f742079657420737461727465642e285265737472696374656400200859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e74556e6170706c696564536c6173686573496e50726576696f75734572610021082d01556e6170706c69656420736c617368657320696e2074686520726563656e746c7920636f6e636c756465642065726120697320626c6f636b696e672074686973206f7065726174696f6e2e98536565206043616c6c3a3a6170706c795f736c6173686020746f206170706c79207468656d2e384572614e6f745072756e61626c650022049054686520657261206973206e6f7420656c696769626c6520666f72207072756e696e672e3843616e63656c6c6564536c617368002304cc54686520736c61736820686173206265656e2063616e63656c6c656420616e642063616e6e6f74206265206170706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e19110c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400210301185665633c543e00001d11083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401150430417373657442616c616e636501182c42656e65666963696172790119042c426c6f636b4e756d6265720110245061796d656e74496401300018012861737365745f6b696e641504012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e65666963696172791904012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d6265720001187374617475732111015c5061796d656e7453746174653c5061796d656e7449643e00002111083c70616c6c65745f7472656173757279305061796d656e745374617465040849640130010c1c50656e64696e6700000024417474656d7074656404010869643001084964000100184661696c65640002000025110c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e291100000408000903002d110c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400311101c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400b10a01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e0001000031110c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573351101dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73a90a015044656c65676174696f6e733c42616c616e63653e0001147072696f72ad0a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e000035110c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a10a045300000400a50a01185665633c543e000039110c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b90a045300000400b50a01185665633c543e00003d110c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e41110c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640109033452756e74696d654f726967696e010506184d6f6d656e7401101043616c6c012d041c42616c616e636501181454616c6c79012d0a244163636f756e74496401003c5363686564756c6541646472657373019c01181c4f6e676f696e6704004511018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e740005000045110c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640109033452756e74696d654f726967696e010506184d6f6d656e7401101043616c6c012d041c42616c616e636501181454616c6c79012d0a244163636f756e74496401003c5363686564756c6541646472657373019c002c0114747261636b0903011c547261636b49640001186f726967696e0506013452756e74696d654f726967696e00012070726f706f73616c2d04011043616c6c000124656e6163746d656e74cd080150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974350a016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974390a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e673d0a01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c792d0a011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d450a01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e000049110c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b109045300000400ad0901185665633c543e00004d11000002511100511100000408090355110055110c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501610c002401106e616d65610c01104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c59110114437572766500012c6d696e5f737570706f7274591101144375727665000059110c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468a503011c50657262696c6c000114666c6f6f72a503011c50657262696c6c0001106365696ca503011c50657262696c6c000000445374657070656444656372656173696e67100114626567696ea503011c50657262696c6c00010c656e64a503011c50657262696c6c00011073746570a503011c50657262696c6c000118706572696f64a503011c50657262696c6c000100285265636970726f63616c0c0118666163746f725d1101204669786564493634000120785f6f66667365745d1101204669786564493634000120795f6f66667365745d1101204669786564493634000200005d110c3473705f61726974686d657469632c66697865645f706f696e74204669786564493634000004006111010c693634000061110000050c0065110c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e69110c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d11083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573d10a0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e000071110c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000075110c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e2c4e6f7450726f706f736572000b049c55736572206973206e6f74207468652070726f706f736572206f662074686520626f756e74792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7911085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e63650001187374617475737d1101a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00007d11085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720003000081110c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e85110c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e89110000040c10ed0200008d110c3470616c6c65745f61685f6f70731870616c6c6574144572726f7204045400012c384e6f4c6561736552657365727665000004b8456974686572206e6f206c65617365206465706f736974206f7220616c726561647920756e72657365727665642e5c4e6f43726f77646c6f616e436f6e747269627574696f6e000104d8456974686572206e6f2063726f77646c6f616e20636f6e747269627574696f6e206f7220616c72656164792077697468647261776e2e484e6f43726f77646c6f616e52657365727665000204c8456974686572206e6f2063726f77646c6f616e2072657365727665206f7220616c726561647920756e72657365727665642e944661696c6564546f576974686472617743726f77646c6f616e436f6e747269627574696f6e000304a84661696c656420746f2077697468647261772063726f77646c6f616e20636f6e747269627574696f6e2e184e6f7459657400040480426c6f636b206e756d626572206973206e6f742079657420726561636865642e58436f6e747269627574696f6e7352656d61696e696e67000504904e6f7420616c6c20636f6e747269627574696f6e73206172652077697468647261776e2e5c57726f6e67446572697665645472616e736c6174696f6e00060494546865206163636f756e74206973206e6f7420612064657269766564206163636f756e742e304e6f74536f7665726569676e00070425014163636f756e742063616e6e6f74206265206d696772617465642073696e6365206974206973206e6f74206120736f7665726569676e2070617261636861696e206163636f756e742e34496e7465726e616c4572726f7200080488496e7465726e616c206572726f722c20706c6561736520627567207265706f72742e544d6967726174696f6e4e6f74436f6d706c65746564000904a454686520417373657420487562206d6967726174696f6e206973206e6f7420636f6d706c657465642e2c5a65726f42616c616e6365000a04505468652062616c616e6365206973207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9111084870616c6c65745f61685f6d69677261746f723842616c616e6365734265666f7265041c42616c616e6365011800080140636865636b696e675f6163636f756e7418011c42616c616e6365000138746f74616c5f69737375616e636518011c42616c616e6365000095110c4870616c6c65745f61685f6d69677261746f721870616c6c6574144572726f7204045400014c604661696c6564546f556e726573657276654465706f736974000004704661696c656420746f20756e72657365727665206465706f7369742e584661696c6564546f50726f636573734163636f756e74000104a84661696c656420746f2070726f6365737320616e206163636f756e7420646174612066726f6d2052432e38496e73657274436f6e666c696374000204e8536f6d65206974656d20636f756c64206e6f7420626520696e736572746564206265636175736520697420616c7265616479206578697374732e4c4661696c6564546f436f6e7665727454797065000304944661696c656420746f20636f6e76657274205243207479706520746f20414820747970652e40507265696d6167654e6f74466f756e64000404644661696c656420746f20666574636820707265696d6167652e4c4661696c6564546f436f6e7665727443616c6c000504944661696c656420746f20636f6e766572742052432063616c6c20746f2041482063616c6c2e444661696c6564546f426f756e6443616c6c0006045c4661696c656420746f20626f756e6420612063616c6c2e2058636d4572726f720007046c4661696c656420746f2073656e642058434d206d6573736167652e804661696c6564546f496e7465677261746556657374696e675363686564756c650008049c4661696c656420746f20696e7465677261746520612076657374696e67207363686564756c652e804661696c6564546f43616c63756c617465436865636b696e674163636f756e740009049c436865636b696e67206163636f756e74206f766572666c6f77206f7220756e646572666c6f772e4c4661696c6564546f426f756e64566563746f72000a04bc566563746f7220646964206e6f742066697420696e746f2069747320636f6d70696c652d74696d6520626f756e642e68446d7051756575655072696f72697479416c7265616479536574000b04e054686520444d50207175657565207072696f7269747920697320616c72656164792073657420746f207468652073616d652076616c75652e40496e76616c6964506172616d65746572000c0448496e76616c696420706172616d657465722e3c507265696d6167654d697373696e67000d0444507265696d616765206d697373696e672e38507265696d616765546f6f426967000e0444507265696d61676520746f6f206269672e50507265696d6167654368756e6b4d697373696e67000f045c507265696d616765206368756e6b206d697373696e672e54507265696d616765537461747573496e76616c696400100460507265696d6167652073746174757320696e76616c69642e3442616458636d56657273696f6e0011046c5468652058434d2076657273696f6e20697320696e76616c69642e34496e76616c69644f726967696e00120458546865206f726967696e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9911000004249d11a111a511a911ad11b511b911bd11c111009d1110306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000a11110306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000a51110306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a91110306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ad1110306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400b111010c4572610000b111102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000b51110306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004005d010120543a3a4e6f6e63650000b91110306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000bd11088870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e7450436861726765417373657454785061796d656e74040454000008010c7469706d01013042616c616e63654f663c543e00012061737365745f6964110201484f7074696f6e3c543a3a417373657449643e0000c11108746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465c51101104d6f64650000c51108746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000c911084873705f636f6e73656e7375735f736c6f747330536c6f744475726174696f6e0000040030010c7536340000cd11102873705f72756e74696d651c67656e6572696314626c6f636b14426c6f636b08184865616465720161042445787472696e73696301d111000801186865616465726104011848656164657200012865787472696e73696373d51101385665633c45787472696e7369633e0000d111102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301fd041043616c6c013104245369676e6174757265018d0614457874726101991100040038000000d511000002d11100d911082873705f72756e74696d655845787472696e736963496e636c7573696f6e4d6f646500010834416c6c45787472696e73696373000000344f6e6c79496e686572656e747300010000dd11081c73705f636f7265384f70617175654d657461646174610000040038011c5665633c75383e0000e11104184f7074696f6e04045401dd110108104e6f6e6500000010536f6d650400dd110000010000e5110418526573756c7408045401a0044501e9110108084f6b0400a0000000000c4572720400e9110000010000e9110c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479605472616e73616374696f6e56616c69646974794572726f720001081c496e76616c69640400ed110148496e76616c69645472616e73616374696f6e0000001c556e6b6e6f776e0400f1110148556e6b6e6f776e5472616e73616374696f6e00010000ed110c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948496e76616c69645472616e73616374696f6e0001341043616c6c0000001c5061796d656e7400010018467574757265000200145374616c650003002042616450726f6f6600040044416e6369656e744269727468426c6f636b0005004445786861757374735265736f757263657300060018437573746f6d04000801087538000700304261644d616e6461746f72790008004c4d616e6461746f727956616c69646174696f6e000900244261645369676e6572000a0054496e64657465726d696e617465496d706c69636974000b0034556e6b6e6f776e4f726967696e000c0000f1110c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948556e6b6e6f776e5472616e73616374696f6e00010c3043616e6e6f744c6f6f6b75700000004c4e6f556e7369676e656456616c696461746f7200010018437573746f6d0400080108753800020000f511083073705f696e686572656e747330496e686572656e7444617461000004011064617461f911019442547265654d61703c496e686572656e744964656e7469666965722c205665633c75383e3e0000f911042042547265654d617008044b01e50104560138000400fd11000000fd11000002011200011200000408e50138000512083073705f696e686572656e747350436865636b496e686572656e7473526573756c7400000c01106f6b6179200110626f6f6c00012c666174616c5f6572726f72200110626f6f6c0001186572726f7273f5110130496e686572656e7444617461000009120c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479445472616e73616374696f6e536f7572636500010c1c496e426c6f636b000000144c6f63616c0001002045787465726e616c000200000d120418526573756c74080454011112044501e9110108084f6b04001112000000000c4572720400e911000001000011120c2873705f72756e74696d65507472616e73616374696f6e5f76616c69646974794056616c69645472616e73616374696f6e00001401207072696f7269747930014c5472616e73616374696f6e5072696f7269747900012072657175697265734104014c5665633c5472616e73616374696f6e5461673e00012070726f76696465734104014c5665633c5472616e73616374696f6e5461673e0001246c6f6e6765766974793001505472616e73616374696f6e4c6f6e67657669747900012470726f706167617465200110626f6f6c0000151204184f7074696f6e0404540119120108104e6f6e6500000010536f6d6504001912000001000019120000021d12001d120000040838c10d0021120c346672616d655f737570706f727438766965775f66756e6374696f6e73385669657746756e6374696f6e49640000080118707265666978e90101205b75383b2031365d000118737566666978e90101205b75383b2031365d000025120418526573756c74080454013804450129120108084f6b040038000000000c45727204002912000001000029120c346672616d655f737570706f727438766965775f66756e6374696f6e73645669657746756e6374696f6e44697370617463684572726f7200010c384e6f74496d706c656d656e746564000000204e6f74466f756e640400211201385669657746756e6374696f6e496400010014436f646563000200002d1204184f7074696f6e0404540131120108104e6f6e6500000010536f6d6504003112000001000031120000040818180035120c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065734c52756e74696d654469737061746368496e666f081c42616c616e63650118185765696768740128000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c61737300012c7061727469616c5f66656518011c42616c616e6365000039120c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065732846656544657461696c73041c42616c616e6365011800080134696e636c7573696f6e5f6665653d1201744f7074696f6e3c496e636c7573696f6e4665653c42616c616e63653e3e00010c74697018011c42616c616e636500003d1204184f7074696f6e0404540141120108104e6f6e6500000010536f6d6504004112000001000041120c6870616c6c65745f7472616e73616374696f6e5f7061796d656e7414747970657330496e636c7573696f6e466565041c42616c616e63650118000c0120626173655f66656518011c42616c616e636500011c6c656e5f66656518011c42616c616e636500014c61646a75737465645f7765696768745f66656518011c42616c616e6365000045120418526573756c740804540149120445014d120108084f6b04004912000000000c45727204004d1200000100004912000002ed05004d120c4078636d5f72756e74696d655f617069731066656573144572726f7200011834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001004c5765696768744e6f74436f6d70757461626c650002004c556e68616e646c656458636d56657273696f6e0003003441737365744e6f74466f756e6400040028556e726f757461626c650005000051120418526573756c7408045401280445014d120108084f6b040028000000000c45727204004d12000001000055120418526573756c7408045401180445014d120108084f6b040018000000000c45727204004d12000001000059120418526573756c740804540155020445014d120108084f6b04005502000000000c45727204004d1200000100005d120418526573756c7408045401611204450179120108084f6b04006112000000000c45727204007912000001000061120c4078636d5f72756e74696d655f617069731c6472795f72756e4443616c6c44727952756e4566666563747304144576656e74015400100140657865637574696f6e5f726573756c74310c01684469737061746368526573756c7457697468506f7374496e666f000138656d69747465645f6576656e7473651201285665633c4576656e743e0001246c6f63616c5f78636d691201604f7074696f6e3c56657273696f6e656458636d3c28293e3e000138666f727761726465645f78636d736d1201bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e000065120000025400691204184f7074696f6e0404540145050108104e6f6e6500000010536f6d650400450500000100006d12000002711200711200000408d102751200751200000245050079120c4078636d5f72756e74696d655f617069731c6472795f72756e144572726f7200010834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c6564000100007d120418526573756c7408045401811204450179120108084f6b04008112000000000c45727204007912000001000081120c4078636d5f72756e74696d655f617069731c6472795f72756e4058636d44727952756e4566666563747304144576656e740154000c0140657865637574696f6e5f726573756c74b501011c4f7574636f6d65000138656d69747465645f6576656e7473651201285665633c4576656e743e000138666f727761726465645f78636d736d1201bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e000085120418526573756c74080454010004450189120108084f6b040000000000000c45727204008912000001000089120c4078636d5f72756e74696d655f617069732c636f6e76657273696f6e73144572726f720001082c556e737570706f727465640000006456657273696f6e6564436f6e76657273696f6e4661696c6564000100008d12080c78636d3856657273696f6e6564417373657400010c08563304006102013876333a3a4d756c7469417373657400030008563404008d02012476343a3a41737365740004000856350400d501012476353a3a41737365740005000091120418526573756c74080454012004450195120108084f6b040020000000000c45727204009512000001000095120c4078636d5f72756e74696d655f6170697334747275737465645f7175657279144572726f720001087856657273696f6e65644173736574436f6e76657273696f6e4661696c65640000008456657273696f6e65644c6f636174696f6e436f6e76657273696f6e4661696c65640001000099120418526573756c7408045401650e0445019d120108084f6b0400650e000000000c45727204009d1200000100009d120c4078636d5f72756e74696d655f6170697348617574686f72697a65645f616c6961736573144572726f720001047c4c6f636174696f6e56657273696f6e436f6e76657273696f6e4661696c656400000000a1120418526573756c7408045401200445019d120108084f6b040020000000000c45727204009d120000010000a5120418526573756c74080454015502044501a9120108084f6b04005502000000000c4572720400a9120000010000a9120c346173736574735f636f6d6d6f6e2c72756e74696d655f6170695046756e6769626c65734163636573734572726f720001085c41737365744964436f6e76657273696f6e4661696c65640000007c416d6f756e74546f42616c616e6365436f6e76657273696f6e4661696c656400010000ad12085c63756d756c75735f7072696d6974697665735f636f726534436f6c6c6174696f6e496e666f000018013c7570776172645f6d65737361676573410401485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573f50c01605665633c4f7574626f756e6448726d704d6573736167653e00014c6e65775f76616c69646174696f6e5f636f6465b112018c4f7074696f6e3c72656c61795f636861696e3a3a56616c69646174696f6e436f64653e00016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b10016072656c61795f636861696e3a3a426c6f636b4e756d626572000124686561645f646174615104012048656164446174610000b11204184f7074696f6e04045401b5120108104e6f6e6500000010536f6d650400b5120000010000b5120c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040038011c5665633c75383e0000b9120418526573756c7408045401a4044501610c0108084f6b0400a4000000000c4572720400610c0000010000bd1204184f7074696f6e04045401610c0108104e6f6e6500000010536f6d650400610c0000010000c112000002610c00c5120c3470616c6c65745f726576697665287072696d69746976657338436f6e7472616374526573756c7408045201c9121c42616c616e63650118001001306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f736974d112015c53746f726167654465706f7369743c42616c616e63653e000118726573756c74d5120160526573756c743c522c2044697370617463684572726f723e0000c9120c3470616c6c65745f726576697665287072696d6974697665733c4578656352657475726e56616c75650000080114666c616773cd12012c52657475726e466c6167730001106461746138011c5665633c75383e0000cd120c4870616c6c65745f7265766976655f7561706914666c6167732c52657475726e466c61677300000401106269747310010c7533320000d1120c3470616c6c65745f726576697665287072696d6974697665733853746f726167654465706f736974041c42616c616e63650118010818526566756e64040018011c42616c616e636500000018436861726765040018011c42616c616e636500010000d5120418526573756c7408045401c912044501680108084f6b0400c912000000000c4572720400680000010000d9120c3470616c6c65745f726576697665287072696d69746976657310436f64650001081855706c6f6164040038011c5665633c75383e000000204578697374696e67040034013473705f636f72653a3a4832353600010000dd120c3470616c6c65745f726576697665287072696d69746976657338436f6e7472616374526573756c7408045201e1121c42616c616e63650118001001306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f736974d112015c53746f726167654465706f7369743c42616c616e63653e000118726573756c74e5120160526573756c743c522c2044697370617463684572726f723e0000e1120c3470616c6c65745f726576697665287072696d69746976657358496e7374616e746961746552657475726e56616c75650000080118726573756c74c912013c4578656352657475726e56616c75650001106164647281030110483136300000e5120418526573756c7408045401e112044501680108084f6b0400e112000000000c4572720400680000010000e912143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e4847656e657269635472616e73616374696f6e00003c012c6163636573735f6c697374ed1201484f7074696f6e3c4163636573734c6973743e000154626c6f625f76657273696f6e65645f686173686573850301245665633c483235363e000114626c6f6273f91201285665633c42797465733e000120636861696e5f6964011301304f7074696f6e3c553235363e00011066726f6d0513013c4f7074696f6e3c416464726573733e00010c676173011301304f7074696f6e3c553235363e0001246761735f7072696365011301304f7074696f6e3c553235363e000114696e7075740913012c496e7075744f72446174610001506d61785f6665655f7065725f626c6f625f676173011301304f7074696f6e3c553235363e00013c6d61785f6665655f7065725f676173011301304f7074696f6e3c553235363e0001606d61785f7072696f726974795f6665655f7065725f676173011301304f7074696f6e3c553235363e0001146e6f6e6365011301304f7074696f6e3c553235363e000108746f0513013c4f7074696f6e3c416464726573733e000118722374797065111301304f7074696f6e3c427974653e00011476616c7565011301304f7074696f6e3c553235363e0000ed1204184f7074696f6e04045401f1120108104e6f6e6500000010536f6d650400f1120000010000f112000002f51200f512143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e3c4163636573734c697374456e747279000008011c616464726573738103011c4164647265737300013073746f726167655f6b657973850301245665633c483235363e0000f912000002fd1200fd12143470616c6c65745f7265766976650c65766d0c61706910627974651442797465730000040038011c5665633c75383e0000011304184f7074696f6e04045401b9060108104e6f6e6500000010536f6d650400b9060000010000051304184f7074696f6e0404540181030108104e6f6e6500000010536f6d650400810300000100000913143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e2c496e7075744f72446174610000080114696e7075740d1301344f7074696f6e3c42797465733e000110646174610d1301344f7074696f6e3c42797465733e00000d1304184f7074696f6e04045401fd120108104e6f6e6500000010536f6d650400fd120000010000111304184f7074696f6e0404540115130108104e6f6e6500000010536f6d650400151300000100001513143470616c6c65745f7265766976650c65766d0c61706910627974651042797465000004000801087538000019130418526573756c74080454011d1304450121130108084f6b04001d13000000000c4572720400211300000100001d130c3470616c6c65745f726576697665287072696d6974697665733c4574685472616e73616374496e666f041c42616c616e63650118001001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f73697418011c42616c616e636500011c6574685f676173b9060110553235360001106461746138011c5665633c75383e000021130c3470616c6c65745f726576697665287072696d697469766573404574685472616e736163744572726f720001081044617461040038011c5665633c75383e0000001c4d6573736167650400610c0118537472696e670001000025130418526573756c74080454012913044501680108084f6b04002913000000000c457272040068000001000029130c3470616c6c65745f726576697665287072696d69746976657354436f646555706c6f616452657475726e56616c7565041c42616c616e6365011800080124636f64655f6861736834013473705f636f72653a3a4832353600011c6465706f73697418011c42616c616e636500002d130418526573756c74080454019004450131130108084f6b040090000000000c45727204003113000001000031130c3470616c6c65745f726576697665287072696d6974697665734c436f6e74726163744163636573734572726f720001082c446f65736e744578697374000000444b65794465636f64696e674661696c6564000100003513143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f747970657328547261636572547970650001082843616c6c5472616365720400391301604f7074696f6e3c43616c6c547261636572436f6e6669673e0000003850726573746174655472616365720400411301704f7074696f6e3c5072657374617465547261636572436f6e6669673e00010000391304184f7074696f6e040454013d130108104e6f6e6500000010536f6d6504003d1300000100003d13143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065734043616c6c547261636572436f6e6669670000080124776974685f6c6f6773200110626f6f6c0001346f6e6c795f746f705f63616c6c200110626f6f6c0000411304184f7074696f6e0404540145130108104e6f6e6500000010536f6d650400451300000100004513143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f7479706573505072657374617465547261636572436f6e66696700000c0124646966665f6d6f6465200110626f6f6c00013c64697361626c655f73746f72616765200110626f6f6c00013064697361626c655f636f6465200110626f6f6c000049130000024d13004d1300000408105113005113143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065731454726163650001081043616c6c04005513012443616c6c547261636500000020507265737461746504006913013450726573746174655472616365000100005513143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065732443616c6c5472616365040c47617301b9060030011066726f6d810301104831363000010c676173b906010c4761730001206761735f75736564b906010c476173000108746f8103011048313630000114696e707574fd12011442797465730001186f7574707574fd12011442797465730001146572726f72bd1201384f7074696f6e3c537472696e673e0001347265766572745f726561736f6ebd1201384f7074696f6e3c537472696e673e00011463616c6c735913014c5665633c43616c6c54726163653c4761733e3e0001106c6f67735d1301305665633c43616c6c4c6f673e00011476616c7565011301304f7074696f6e3c553235363e00012463616c6c5f747970656513012043616c6c54797065000059130000025513005d130000026113006113143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065731c43616c6c4c6f67000010011c616464726573738103011048313630000118746f70696373850301245665633c483235363e00011064617461fd1201144279746573000120706f736974696f6e10010c75333200006513143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065732043616c6c547970650001141043616c6c0000002853746174696343616c6c0001003044656c656761746543616c6c000200184372656174650003001c43726561746532000400006913143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f7479706573345072657374617465547261636500010820507265737461746504006d13018442547265654d61703c483136302c2050726573746174655472616365496e666f3e00000020446966664d6f646508010c7072656d13018442547265654d61703c483136302c2050726573746174655472616365496e666f3e000110706f73746d13018442547265654d61703c483136302c2050726573746174655472616365496e666f3e000100006d13042042547265654d617008044b018103045601711300040081130000007113143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065734450726573746174655472616365496e666f000010011c62616c616e6365011301304f7074696f6e3c553235363e0001146e6f6e63652503012c4f7074696f6e3c7533323e000110636f64650d1301344f7074696f6e3c42797465733e00011c73746f726167657513017842547265654d61703c42797465732c204f7074696f6e3c42797465733e3e00007513042042547265654d617008044b01fd120456010d13000400791300000079130000027d13007d1300000408fd120d130081130000028513008513000004088103711300891304184f7074696f6e0404540151130108104e6f6e6500000010536f6d650400511300000100008d130418526573756c7408045401511304450121130108084f6b04005113000000000c4572720400211300000100009113086061737365745f6875625f6b7573616d615f72756e74696d653052756e74696d654572726f720001b01853797374656d0400910c01706672616d655f73797374656d3a3a4572726f723c52756e74696d653e0000003c50617261636861696e53797374656d0400fd0c01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4572726f723c52756e74696d653e000100504d756c7469426c6f636b4d6967726174696f6e730400010d018470616c6c65745f6d6967726174696f6e733a3a4572726f723c52756e74696d653e00050020507265696d6167650400250d017c70616c6c65745f707265696d6167653a3a4572726f723c52756e74696d653e000600245363686564756c65720400390d018070616c6c65745f7363686564756c65723a3a4572726f723c52756e74696d653e0007002042616c616e63657304007d0d017c70616c6c65745f62616c616e6365733a3a4572726f723c52756e74696d653e000a001c56657374696e670400890d017870616c6c65745f76657374696e673a3a4572726f723c52756e74696d653e000e0018436c61696d7304008d0d017470616c6c65745f636c61696d733a3a4572726f723c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400a50d01a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4572726f723c52756e74696d653e0015001c53657373696f6e0400c50d017870616c6c65745f73657373696f6e3a3a4572726f723c52756e74696d653e0016002458636d7051756575650400010e01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4572726f723c52756e74696d653e001e002c506f6c6b61646f7458636d0400690e016870616c6c65745f78636d3a3a4572726f723c52756e74696d653e001f00304d657373616765517565756504008d0e019070616c6c65745f6d6573736167655f71756575653a3a4572726f723c52756e74696d653e0023001c5574696c6974790400910e017870616c6c65745f7574696c6974793a3a4572726f723c52756e74696d653e002800204d756c74697369670400a10e017c70616c6c65745f6d756c74697369673a3a4572726f723c52756e74696d653e0029001450726f78790400c50e017070616c6c65745f70726f78793a3a4572726f723c52756e74696d653e002a005452656d6f746550726f787952656c6179436861696e0400cd0e018c70616c6c65745f72656d6f74655f70726f78793a3a4572726f723c52756e74696d653e002b001c496e64696365730400d50e017870616c6c65745f696e64696365733a3a4572726f723c52756e74696d653e002c00184173736574730400010f01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e0032001c556e69717565730400250f017870616c6c65745f756e69717565733a3a4572726f723c52756e74696d653e003300104e6674730400790f016c70616c6c65745f6e6674733a3a4572726f723c52756e74696d653e00340034466f726569676e41737365747304008d0f01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e003500504e66744672616374696f6e616c697a6174696f6e0400950f01b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4572726f723c52756e74696d653e00360028506f6f6c4173736574730400a10f01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365333e0037003c4173736574436f6e76657273696f6e0400a90f019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4572726f723c52756e74696d653e003800205265636f766572790400b50f017c70616c6c65745f7265636f766572793a3a4572726f723c52756e74696d653e0039001c536f63696574790400f50f017870616c6c65745f736f63696574793a3a4572726f723c52756e74696d653e003a001852657669766504001510017470616c6c65745f7265766976653a3a4572726f723c52756e74696d653e003c00485374617465547269654d6967726174696f6e0400910301ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4572726f723c52756e74696d653e0046003c4e6f6d696e6174696f6e506f6f6c7304003510019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4572726f723c52756e74696d653e00500024566f7465724c6973740400491001f470616c6c65745f626167735f6c6973743a3a4572726f723c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0052004044656c6567617465645374616b696e670400591001a070616c6c65745f64656c6567617465645f7374616b696e673a3a4572726f723c52756e74696d653e005300484d756c7469426c6f636b456c656374696f6e0400791001d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a4572726f723c52756e74696d653e005500604d756c7469426c6f636b456c656374696f6e5369676e65640400b51001f070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a7369676e65643a3a4572726f723c52756e74696d653e0058001c5374616b696e6704001511019070616c6c65745f7374616b696e675f6173796e633a3a4572726f723c52756e74696d653e00590020547265617375727904002511017c70616c6c65745f74726561737572793a3a4572726f723c52756e74696d653e005a0040436f6e76696374696f6e566f74696e6704003d1101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4572726f723c52756e74696d653e005b00245265666572656e646104006511018070616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d653e005c002457686974656c69737404006911018070616c6c65745f77686974656c6973743a3a4572726f723c52756e74696d653e005e0020426f756e7469657304007511017c70616c6c65745f626f756e746965733a3a4572726f723c52756e74696d653e005f00344368696c64426f756e7469657304008111019470616c6c65745f6368696c645f626f756e746965733a3a4572726f723c52756e74696d653e0060002441737365745261746504008511018470616c6c65745f61737365745f726174653a3a4572726f723c52756e74696d653e0061001441684f707304008d11017470616c6c65745f61685f6f70733a3a4572726f723c52756e74696d653e00fe002841684d69677261746f7204009511018870616c6c65745f61685f6d69677261746f723a3a4572726f723c52756e74696d653e00ff0000e81853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d0b0400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000590c04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000550c040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000650c040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01350401581830426c6f636b57656967687473690c89010700f2052a01000b00204aa9d101020080020265cd1d00010bc026fb7f740102000002010b0068e5cf8b01020020020100000265cd1d00010bc0de5f59ba0102006002010b00204aa9d10102008002010700b864d945020060000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468750c3000004400000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768747d0c4040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e810c79052473746174656d696e652473746174656d696e65010000006b650f000000000068dd718d5cc53262d40100000004e70521a0d3d2f801000000d7bdd8a272ca0d6502000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f010000008a8047a53a8277ec0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c010000002609be83ac4468dc0100000012c8e3d4d7e06de001000000de92b8a0426b9bf602000000ea93e3f16f3d696203000000fbc577b9d747efd601000000a2ddb6a58477bf630100000017a6bc0d0062aeb30100000018ef58a3b67ba770010000008c403e5c4a9fd442010000000f000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978090308020014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01910c00003c50617261636861696e53797374656d013c50617261636861696e53797374656d6844556e696e636c756465645365676d656e740100950c0400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e740000b90c04000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e4461746100004d0404000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100bd0c04001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f41686561640100b10c040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600005504040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000c50c04001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e0000d90c0400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100e10c80000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100e50c040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e704c61737450726f636573736564446f776e776172644d6573736167650000f10c04000c9420546865206c6173742070726f63657373656420646f776e77617264206d6573736167652e005d01205765206e65656420746f206b65657020747261636b206f66207468697320746f2066696c74657220746865206d6573736167657320746861742068617665206265656e20616c72656164792070726f6365737365642e3448726d7057617465726d61726b010010100000000004a02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e604c61737450726f63657373656448726d704d6573736167650000f10c04000c8420546865206c6173742070726f6365737365642048524d50206d6573736167652e005d01205765206e65656420746f206b65657020747261636b206f66207468697320746f2066696c74657220746865206d6573736167657320746861742068617665206265656e20616c72656164792070726f6365737365642e5048726d704f7574626f756e644d657373616765730100f50c04000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100410404000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301004104040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100e10240000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e0145040184042853656c66506172614964ed0210e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e01fd0c01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0199040004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0003003450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100ed02106400000000019d040000000400504d756c7469426c6f636b4d6967726174696f6e7301504d756c7469426c6f636b4d6967726174696f6e730818437572736f720000a90404000cd8205468652063757272656e746c7920616374697665206d6967726174696f6e20746f2072756e20616e642069747320637572736f722e00bc20604e6f6e656020696e646963617465732074686174206e6f206d6967726174696f6e2069732072756e6e696e672e20486973746f726963000104053503a4040010b420536574206f6620616c6c207375636365737366756c6c79206578656375746564206d6967726174696f6e732e0071012054686973206973207573656420617320626c61636b6c6973742c20746f206e6f742072652d65786563757465206d6967726174696f6e7320746861742068617665206e6f74206265656e2072656d6f7665642066726f6d20746865310120636f646562617365207965742e20476f7665726e616e63652063616e20726567756c61726c7920636c6561722074686973206f7574207669612060636c6561725f686973746f726963602e01a104018c0830437572736f724d61784c656e10100000010010a420546865206d6178696d616c206c656e677468206f6620616e20656e636f64656420637572736f722e006501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c20657665722068617665206120637572736f722077697468204d454c09012061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e404964656e7469666965724d61784c656e10100001000010b420546865206d6178696d616c206c656e677468206f6620616e20656e636f646564206964656e7469666965722e005501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c2065766572206861766520616e206964656e7469666965722d012077697468204d454c2061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e01010d050020507265696d6167650120507265696d6167650c24537461747573466f720001040634050d0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f7200010406340d0d0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f72000104061d0d210d04000001c10401940001250d0600245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e184167656e64610101040510290d0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c52657472696573000104029c7d0a040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b757000010405049c040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01c504019808344d6178696d756d576569676874282c0b00806e8774010200000204290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01390d070028506172616d65746572730128506172616d65746572730428506172616d657465727300010402ac0d010400044c2053746f72656420706172616d65746572732e01cd0401a8000008002042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402003d0d040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200410d04000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c647301010402004d0d0400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402006d0d0400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01f90401390110484578697374656e7469616c4465706f7369741840d5dc320000000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100100000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e017d0d0a00485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100e10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100810d0400000001450104604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b0038417373657454785061796d656e74000001490100000d001c56657374696e67011c56657374696e67081c56657374696e670001040200fd09040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100850d04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01090501950108444d696e5665737465645472616e736665721840d5dc320000000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001890d0e0018436c61696d730118436c61696d731418436c61696d73000104069d011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e67000104069d012105040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e67000104069d012905040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d7300010406009d010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e011105019901041850726566697838807c506179204b534d7320746f20746865204b7573616d61206163636f756e743a00018d0d0f0028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000140044436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100910d04000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c6973740100950d0400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e012d0501a1011814506f744964a10d20506f745374616b6504f4204163636f756e74204964656e7469666965722066726f6d2077686963682074686520696e7465726e616c20506f742069732067656e6572617465642e344d617843616e646964617465731010640000000cc8204d6178696d756d206e756d626572206f662063616e6469646174657320746861742077652073686f756c6420686176652e00cc205468697320646f6573206e6f742074616b6520696e746f206163636f756e742074686520696e76756c6e657261626c65732e504d696e456c696769626c65436f6c6c61746f72731010040000000c5501204d696e696d756d206e756d62657220656c696769626c6520636f6c6c61746f72732e2053686f756c6420616c776179732062652067726561746572207468616e207a65726f2e205468697320696e636c75646573510120496e76756c6e657261626c6520636f6c6c61746f72732e205468697320656e737572657320746861742074686572652077696c6c20616c77617973206265206f6e6520636f6c6c61746f722077686f2063616e442070726f64756365206120626c6f636b2e404d6178496e76756c6e657261626c65731010140000000484204d6178696d756d206e756d626572206f6620696e76756c6e657261626c65732e344b69636b5468726573686f6c641010100e0000002c706f745f6163636f756e7400806d6f646c506f745374616b65000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e01a50d15001c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100a5010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100a90d0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100b10d0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050035050400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405bd0d00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01310501a90104284b65794465706f73697418400000000000000000000000000000000004a42054686520616d6f756e7420746f2062652068656c64207768656e2073657474696e67206b6579732e01c50d16001041757261011041757261082c417574686f7269746965730100c90d0400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f740100d10d2000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e3020e02e000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e0017001c41757261457874011c41757261457874082c417574686f7269746965730100c90d040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e3452656c6179536c6f74496e666f0000d50d04001009012043757272656e742072656c617920636861696e20736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e0065012054686973206973207570646174656420696e205b60466978656456656c6f63697479436f6e73656e737573486f6f6b3a3a6f6e5f73746174655f70726f6f66605d2077697468207468652063757272656e742072656c6179dc20636861696e20736c6f742061732070726f7669646564206279207468652072656c617920636861696e2073746174652070726f6f662e0000000018002458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e6465640100d90d0400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d705374617475730100e50d0400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d657373616765730101080205f50df90d040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402ed02f90d040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100fd0d302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405ed02e10240000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e013d0501ad010c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a651010009c010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e01010e1e002c506f6c6b61646f7458636d012c506f6c6b61646f7458636d3c305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230050e0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502190e10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502190e30040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502190e1d0e04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100210e04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e00002d0e0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202310e350e040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200450e040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d0000c1010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e44417574686f72697a6564416c696173657300010402d102510e04000c6501204d6170206f6620617574686f72697a656420616c696173657273206f66206c6f63616c206f726967696e732e2045616368206c6f63616c206c6f636174696f6e2063616e20617574686f72697a652061206c697374206f665901206f74686572206c6f636174696f6e7320746f20616c69617320696e746f2069742e204561636820616c6961736572206973206f6e6c792076616c696420756e74696c2069747320696e6e65722060657870697279603820626c6f636b206e756d6265722e01410501b1011044556e6976657273616c4c6f636174696f6e51011802090300a10f0484205468697320636861696e277320556e6976657273616c204c6f636174696f6e2e504164766572746973656458636d56657273696f6e10100500000008250120546865206c617465737420737570706f727465642076657273696f6e2074686174207765206164766572746973652e2047656e6572616c6c79206a7573742073657420697420746f84206070616c6c65745f78636d3a3a43757272656e7458636d56657273696f6e602e284d61784c6f636b65727310100800000004190120546865206d6178696d756d206e756d626572206f66206c6f63616c2058434d206c6f636b73207468617420612073696e676c65206163636f756e74206d617920686176652e584d617852656d6f74654c6f636b436f6e73756d65727310100000000004fc20546865206d6178696d756d206e756d626572206f6620636f6e73756d65727320612073696e676c652072656d6f7465206c6f636b206d617920686176652e01690e1f002843756d756c757358636d0001f10501d902000020004c546f506f6c6b61646f7458636d526f75746572014c546f506f6c6b61646f7458636d526f7574657204184272696467650100710e44000064a7b3b6e00d0000000000000000001c6820427269646765207468617420776520617265207573696e672e007101202a2a627269646765732d76312a2a20617373756d7074696f6e733a20616c6c206f7574626f756e64206d65737361676573207468726f756768207468697320726f7574657220617265207573696e672073696e676c65206c616e656d0120616e6420746f2073696e676c652072656d6f746520636f6e73656e7375732e20496620746865726520697320736f6d65206f746865722072656d6f746520636f6e73656e73757320746861742075736573207468652073616d65610120627269646765206875622c207468652073657061726174652070616c6c657420696e7374616e6365207368616c6c20626520757365642c20496e2060763260207765276c6c206861766520616c6c2072657175697265647101207072696d69746976657320286c616e652d696420616b61206272696467652d69642c20646572697665642066726f6d2058434d206c6f636174696f6e732920746f20737570706f7274206d756c7469706c6520206272696467657374206279207468652073616d652070616c6c657420696e7374616e63652e01f50501dd0200002200304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405e902750e74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000e902040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505810e850e0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01f90501e50210204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e345365727669636557656967687435012c01070010a5d4e8020040011841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d61785365727669636557656967687435012c01070010a5d4e802004001145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e018d0e23001c5574696c6974790001fd0501f502044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01910e2800204d756c746973696701204d756c746973696704244d756c7469736967730001080502950e990e040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01190601f9020c2c4465706f736974426173651840dcd91c8f01000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f721840a0c2a2000000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01a10e29001450726f7879011450726f7879081c50726f786965730101040500a50e4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500b50e44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e012106010103184050726f78794465706f736974426173651840ecb5288e01000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721840b5d8a70000000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518409466518e01000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f7218406ab14f0100000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01c50e2a005452656d6f746550726f787952656c6179436861696e015452656d6f746550726f787952656c6179436861696e042c426c6f636b546f526f6f740100c90e04000861012053746f72657320746865206c617374205b60436f6e6669673a3a4d617853746f72616765526f6f7473546f4b656570605d20626c6f636b20746f2073746f7261676520726f6f74206d617070696e6773206f6620746865382074617267657420636861696e2e012906000001cd0e2b001c496e6469636573011c496e646963657304204163636f756e74730001040210d10e0400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e013106011103041c4465706f73697418409466518e01000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01d50e2c00184173736574730118417373657473141441737365740001040210d90e040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202e10ee50e040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202f10ef50e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210f90e5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e0135060115031c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418403aa6239101000000000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f7369741840f4a3ae8d0100000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518403820b78e0100000000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f7369745065724279746518401516050000000000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f7369741840d5dc32000000000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01010f32001c556e6971756573011c556e69717565732814436c6173730001040210050f040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202090fa4040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e7400010802020107a404000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e14417373657400010802029c0d0f040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f660001040210110f04000468204d65746164617461206f66206120636f6c6c656374696f6e2e48496e7374616e63654d657461646174614f6600010802029c150f04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500010c020202190f1d0f040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029c210f04000470205072696365206f6620616e20617373657420696e7374616e63652e4c436f6c6c656374696f6e4d6178537570706c79000104021010040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e0139060119032044436f6c6c656374696f6e4465706f736974184000e876481700000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000ca9a3b00000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518403963ed8f010000000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f736974426173651840a4425d8d0100000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518401516050000000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410108000000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410104000000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01250f3300104e66747301104e6674733c28436f6c6c656374696f6e0001040210290f040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202090fa4040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e7400010802020107a404000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202e10e2d0f040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802029c350f040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f6600010402104d0f04000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802029c510f04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202590f5d0f040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802029c210f040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802029c650f04000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802029c6d0f0400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f6600010402104d060400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802029c75060400044c20436f6e666967206f6620616e206974656d2e0149060131033844436f6c6c656374696f6e4465706f73697418404e79f28f0100000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184033fc030a00000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518408523fe27000000000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f736974426173651840aa86bc270000000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f7369745065724279746518401516050000000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101e00000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573710f20000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01790f340034466f726569676e4173736574730134466f726569676e41737365747314144173736574000104024d01d90e040004542044657461696c73206f6620616e2061737365742e1c4163636f756e7400010802027d0fe50e040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202810ff50e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d65746164617461010104024d01850f5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e6578744173736574496400004d010400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e019906014d031c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418403aa6239101000000000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f7369741840f4a3ae8d0100000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518403820b78e0100000000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f7369745065724279746518401516050000000000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f7369741840d5dc32000000000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e018d0f3500504e66744672616374696f6e616c697a6174696f6e01504e66744672616374696f6e616c697a6174696f6e04284e6674546f4173736574000104029c910f0400041501204b6565707320747261636b206f662074686520636f72726573706f6e64696e67204e46542049442c20617373657420494420616e6420616d6f756e74206d696e7465642e019d06015103141c4465706f73697418403aa6239101000000000000000000000008650120546865206465706f7369742070616964206279207468652075736572206c6f636b696e6720616e204e46542e20546865206465706f7369742069732072657475726e656420746f20746865206f726967696e616c204e4654e4206f776e6572207768656e2074686520617373657420697320756e696669656420616e6420746865204e465420697320756e6c6f636b65642e2050616c6c65744964a10d206672616374696f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e384e6577417373657453796d626f6cfd0e141046524143048820546865206e65776c79206372656174656420617373657427732073796d626f6c2e304e657741737365744e616d65fd0e141046726163048020546865206e65776c7920637265617465642061737365742773206e616d652e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01950f360028506f6f6c4173736574730128506f6f6c417373657473141441737365740001040210d90e040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202e10ee50e040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202f10ef50e04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210990f5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e01a1060155031c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000000000000000000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f7369741840f4a3ae8d0100000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f736974426173651840000000000000000000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f7369745065724279746518400000000000000000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f7369741840d5dc32000000000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01a10f37003c4173736574436f6e76657273696f6e013c4173736574436f6e76657273696f6e0814506f6f6c73000104025d03a50f0400086901204d61702066726f6d2060506f6f6c417373657449646020746f2060506f6f6c496e666f602e20546869732065737461626c69736865732077686574686572206120706f6f6c20686173206265656e206f6666696369616c6c793d01206372656174656420726174686572207468616e2070656f706c652073656e64696e6720746f6b656e73206469726563746c7920746f206120706f6f6c2773207075626c6963206163636f756e742e3c4e657874506f6f6c4173736574496400001004000825012053746f726573207468652060506f6f6c4173736574496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e657874206c7020746f6b656e2ee42054686973206765747320696e6372656d656e746564207768656e657665722061206e6577206c7020706f6f6c20697320637265617465642e01a5060159031c144c504665651010030000000451012041202520746865206c69717569646974792070726f7669646572732077696c6c2074616b65206f6620657665727920737761702e20526570726573656e7473203130746873206f6620612070657263656e742e30506f6f6c536574757046656518403241951e03000000000000000000000004882041206f6e652d74696d652066656520746f2073657475702074686520706f6f6c2e44506f6f6c536574757046656541737365744d0108010004390120417373657420636c6173732066726f6d205b60436f6e6669673a3a417373657473605d207573656420746f2070617920746865205b60436f6e6669673a3a506f6f6c5365747570466565605d2e584c69717569646974795769746864726177616c4665651d011000000000048420412066656520746f20776974686472617720746865206c69717569646974792e404d696e744d696e4c6971756964697479184064000000000000000000000000000000043d0120546865206d696e696d756d204c5020746f6b656e20616d6f756e74207468617420636f756c64206265206d696e7465642e20416d656c696f726174657320726f756e64696e67206572726f72732e444d617853776170506174684c656e677468101003000000048820546865206d6178206e756d626572206f6620686f707320696e206120737761702e2050616c6c65744964a10d2070792f6173636f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e01a90f3800205265636f7665727901205265636f766572790c2c5265636f76657261626c650001040500ad0f04000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f7665726965730001080505c50bb10f0400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01ad060169031044436f6e6669674465706f73697442617365184004821bce26000000000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f7218409a2669e1030000000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e3c5265636f766572794465706f736974184004821bce2600000000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e01b50f39001c536f6369657479011c536f63696574795828506172616d657465727300007903040004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e0c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1c466f756e6465720000000400044820546865206669727374206d656d6265722e1048656164000000040004410120546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f7665642072616e6b2030206d656d6265727320696e2074686520736f63696574792e1452756c6573000034040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e1c4d656d626572730001040500b90f0400042101205468652063757272656e74206d656d6265727320616e642074686569722072616e6b2e20446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e1c5061796f7574730101040500c50f44000000000000000000000000000000000004dc20496e666f726d6174696f6e20726567617264696e672072616e6b2d30207061796f7574732c207061737420616e64206675747572652e2c4d656d626572436f756e74010010100000000004490120546865206e756d626572206f66206974656d7320696e20604d656d62657273602063757272656e746c792e2028446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e29344d656d6265724279496e6465780001040510000400085d01205468652063757272656e74206974656d7320696e20604d656d6265727360206b6579656420627920746865697220756e6971756520696e6465782e204b657973206172652064656e73656c7920706f70756c61746564cc2060302e2e4d656d626572436f756e74602028646f6573206e6f7420696e636c75646520604d656d626572436f756e7460292e4053757370656e6465644d656d626572730001040500b90f04000401012054686520736574206f662073757370656e646564206d656d626572732c2077697468207468656972206f6c64206d656d62657273686970207265636f72642e28526f756e64436f756e74010010100000000004a020546865206e756d626572206f6620726f756e64732077686963682068617665207061737365642e10426964730100cd0f040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e2843616e646964617465730001040200dd0f0400001c536b657074696300000004000454205468652063757272656e7420736b65707469632e14566f7465730001080505c50be50f040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e3c566f7465436c656172437572736f720001040500e90f040004f420436c6561722d637572736f7220666f7220566f74652c206d61702066726f6d2043616e646964617465202d3e20284d617962652920437572736f722e204e657874486561640000ed0f04000c75012041742074686520656e64206f662074686520636c61696d20706572696f642c207468697320636f6e7461696e7320746865206d6f737420726563656e746c7920617070726f766564206d656d626572732028616c6f6e67207769746865012074686569722062696420616e6420726f756e64204944292077686f2069732066726f6d20746865206d6f737420726563656e7420726f756e64207769746820746865206c6f77657374206269642e20546865792077696c6c5c206265636f6d6520746865206e6577206048656164602e4c4368616c6c656e6765526f756e64436f756e74010010100000000004590120546865206e756d626572206f66206368616c6c656e676520726f756e64732074686572652068617665206265656e2e205573656420746f206964656e74696679207374616c6520446566656e646572566f7465732e24446566656e64696e670000f10f04000459012054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642c20616c6f6e67207769746820612072756e6e696e672074616c6c79206f6620766f7465732e34446566656e646572566f7465730001080505e10ee50f040004c820566f74657320666f722074686520646566656e6465722c206b65796564206279206368616c6c656e676520726f756e642e304e657874496e74616b6541740000100400040d01204e65787420696e74616b6520726f746174696f6e207363686564756c65642077697468205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d2e3c4e6578744368616c6c656e676541740000100400041901204e657874206368616c6c656e676520726f746174696f6e207363686564756c65642077697468205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d2e01b106017503242050616c6c65744964a10d2070792f736f63696504682054686520736f6369657469657327732070616c6c6574206964304772616365537472696b657310100a00000004090120546865206d6178696d756d206e756d626572206f6620737472696b6573206265666f72652061206d656d62657220676574732066756e647320736c61736865642e2c506572696f645370656e641840040abf82280f00000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e30566f74696e67506572696f641010401901000c550120546865206e756d626572206f66205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d20626c6f636b73206f6e207768696368206e65772063616e646964617465732073686f756c642062656020766f746564206f6e2e20546f67657468657220776974684d012060436c61696d506572696f64602c20746869732073756d7320746f20746865206e756d626572206f6620626c6f636b73206265747765656e2063616e64696461746520696e74616b6520706572696f64732e2c436c61696d506572696f6410108070000008550120546865206e756d626572206f66205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d20626c6f636b73206f6e207768696368206e65772063616e646964617465732063616e20636c61696da0207468656972206d656d6265727368697020616e6420626520746865206e616d656420686561642e3c4d61784c6f636b4475726174696f6e1010004eed0004a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e3c4368616c6c656e6765506572696f641010c089010004490120546865206e756d626572206f66205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d20626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e284d61785061796f757473101008000000040d0120546865206d6178696d756d206e756d626572206f66207061796f7574732061206d656d626572206d617920686176652077616974696e6720756e636c61696d65642e1c4d617842696473101000020000049020546865206d6178696d756d206e756d626572206f662062696473206174206f6e63652e01f50f3a001852657669766501185265766976651c305072697374696e65436f64650001040634f90f040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e28436f6465496e666f4f660001040634fd0f040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e344163636f756e74496e666f4f660001040681030110040004fc205468652064617461206173736f63696174656420746f206120636f6e7472616374206f722065787465726e616c6c79206f776e6564206163636f756e742e3c496d6d757461626c65446174614f660001040681030d10040004d02054686520696d6d757461626c652064617461206173736f6369617465642077697468206120676976656e206163636f756e742e3444656c6574696f6e517565756500010405101d03040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e5044656c6574696f6e5175657565436f756e74657201001110200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e3c4f726967696e616c4163636f756e7400010406810300040018d8204d6170206120457468657265756d206164647265737320746f20697473206f726967696e616c20604163636f756e7449643332602e004501205768656e206465726976696e672061206048313630602066726f6d20616e20604163636f756e74496433326020776520757365206120686173682066756e6374696f6e2e20496e206f7264657220746f3101207265636f6e73747275637420746865206f726967696e616c206163636f756e74207765206e65656420746f2073746f7265207468652072657665727365206d617070696e6720686572652e190120526567697374657220796f757220604163636f756e744964333260207573696e67205b6050616c6c65743a3a6d61705f6163636f756e74605d20696e206f7264657220746f6420757365206974207769746820746869732070616c6c65742e01b506017d0318384465706f736974506572427974651840151605000000000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465003501204974206973207361666520746f206368616e676520746869732076616c7565206f6e2061206c69766520636861696e20617320616c6c20726566756e6473206172652070726f20726174612e384465706f7369745065724974656d1840a4425d8d0100000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465003501204974206973207361666520746f206368616e676520746869732076616c7565206f6e2061206c69766520636861696e20617320616c6c20726566756e6473206172652070726f20726174612e70436f6465486173684c6f636b75704465706f73697450657263656e74a5031000a3e1110c4501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e510120496e7374616e74696174696e67206120636f6e74726163742c2070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e74250120616275736520746865736520616374696f6e73206172652070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e5c556e73616665556e737461626c65496e74657266616365200400241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e1c436861696e49643020421b0f190000000010010120546865205b4549502d3135355d2868747470733a2f2f656970732e657468657265756d2e6f72672f454950532f6569702d3135352920636861696e2049442e0005012054686973206973206120756e69717565206964656e7469666965722061737369676e656420746f206561636820626c6f636b636861696e206e6574776f726b2c6c2070726576656e74696e67207265706c61792061747461636b732e404e6174697665546f457468526174696f101040420f000451012054686520726174696f206265747765656e2074686520646563696d616c20726570726573656e746174696f6e206f6620746865206e617469766520746f6b656e20616e64207468652045544820746f6b656e2e0115103c00485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f636573730100cd063800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100c50604000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000c90604000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e01c10601890304244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e01910346003c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e0000a50304000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500a10904000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c730001040510b909040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c730001040510191004000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f7261676500010405101d1004000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d65746164617461010104051035030400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e730101040500b5030402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e01d9060195030c2050616c6c65744964a10d2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101020000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e013510500024566f7465724c6973740124566f7465724c69737414244c6973744e6f64657300010405003d1004000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530411004000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e504e6578744e6f64654175746f5265626167676564000000040008050120506f696e74657220746861742072656d656d6265727320746865206e657874206e6f646520746861742077696c6c206265206175746f2d72656261676765642e0101205768656e20604e6f6e65602c20746865206e657874207363616e2077696c6c2073746172742066726f6d20746865206c697374206865616420616761696e2e104c6f636b0000a404001084204c6f636b20616c6c207570646174657320746f20746869732070616c6c65742e00390120496620616e79206e6f646573206e65656473207570646174696e672c2072656d6f76616c206f72206164646974696f6e2064756520746f20612074656d706f72617279206c6f636b2c2074686574205b6043616c6c3a3a7265626167605d2063616e20626520757365642e01f10601bd0308344261675468726573686f6c647345100919210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e504d61784175746f5265626167506572426c6f636b101005000000103501204d6178696d756d206e756d626572206f66206163636f756e74732074686174206d61792062652072652d626167676564206175746f6d61746963616c6c7920696e20606f6e5f69646c65602e00510120412076616c7565206f662060306020286f627461696e656420627920636f6e6669677572696e67206074797065204d61784175746f5265626167506572426c6f636b203d2028293b60292064697361626c6573342074686520666561747572652e01491052004044656c6567617465645374616b696e67014044656c6567617465645374616b696e67102844656c656761746f727300010405005110040010a4204d6170206f662044656c656761746f727320746f207468656972206044656c65676174696f6e602e00610120496d706c656d656e746174696f6e206e6f74653a20576520617265206e6f74207573696e67206120646f75626c65206d61702077697468206064656c656761746f726020616e6420606167656e7460206163636f756e746101206173206b6579732073696e63652077652077616e7420746f2072657374726963742064656c656761746f727320746f2064656c6567617465206f6e6c7920746f206f6e65206163636f756e7420617420612074696d652e50436f756e746572466f7244656c656761746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184167656e74730001040500551004000488204d6170206f6620604167656e746020746f20746865697220604c6564676572602e40436f756e746572466f724167656e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61700001c103082050616c6c65744964a10d2070792f646c73746b049020496e6a6563746564206964656e74696669657220666f72207468652070616c6c65742e4c536c6173685265776172644672616374696f6ea5031080969800045101204672616374696f6e206f662074686520736c617368207468617420697320726577617264656420746f207468652063616c6c6572206f662070656e64696e6720736c61736820746f20746865206167656e742e01591053003c5374616b696e675263436c69656e74013c5374616b696e675263436c69656e740c5c496e636f6d706c65746553657373696f6e5265706f72740000f9060400041d0120416e20696e636f6d706c65746520696e636f6d696e672073657373696f6e207265706f727420746861742077652068617665206e6f742061637465642075706f6e207965742e704c61737453657373696f6e5265706f7274456e64696e67496e646578000010040020fc20546865206c6173742073657373696f6e207265706f727427732060656e645f696e64657860207468617420776520686176652061637465642075706f6e2e006101205468697320616c6c6f777320746869732070616c6c657420746f20656e7375726520612073657175656e7469616c6c7920696e6372656173696e672073657175656e6365206f662073657373696f6e207265706f7274734c2070617373656420746f207374616b696e672e005d01204e6f746520746861742077697468207468652058434d206265696e6720746865206261636b626f6e65206f6620636f6d6d756e69636174696f6e2c207765206861766520612067756172616e746565206f6e207468656101206f72646572696e67206f66206d657373616765732e204173206c6f6e67206173207468652052432073656e64732073657373696f6e207265706f72747320696e206f726465722c207765205f6576656e7475616c6c795fc02072656365697665207468656d20696e207468652073616d6520636f7272656374206f726465722061732077656c6c2e504f7574676f696e6756616c696461746f7253657400005d10040010d820412076616c696461746f72207365742074686174206973206f7574676f696e672c20616e642073686f756c642062652073656e742e00750120546869732077696c6c20626520617474656d7074656420746f2062652073656e742c20706f737369626c79206f6e20657665727920606f6e5f696e697469616c697a65602063616c6c2c20756e74696c2069742069732073656e742cf4206f7220746865207365636f6e642076616c75652072656163686573207a65726f2c20617420776869636820706f696e742077652064726f702069742e01f50601c50300005400484d756c7469426c6f636b456c656374696f6e01484d756c7469426c6f636b456c656374696f6e1c14526f756e64010010100000000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100d9030400043c2043757272656e742070686173652e384465736972656454617267657473000104051010040004cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e485061676564566f746572536e617073686f7400010805059c6510040004010120506167696e6174656420766f74657220736e617073686f742e204174206d6f7374205b60543a3a5061676573605d206b6579732077696c6c2065786973742e585061676564566f746572536e617073686f744861736800010805059c3404000c31012053616d65206173205b605061676564566f746572536e617073686f74605d2c206275742069742077696c6c2073746f7265207468652068617368206f662074686520736e617073686f742e00fc2054686520686173682069732067656e657261746564207573696e67205b606672616d655f73797374656d3a3a436f6e6669673a3a48617368696e67605d2e4c5061676564546172676574536e617073686f7400010805059c751004000c6c20506167696e617465642074617267657420736e617073686f742e00590120466f72207468652074696d65206265696e672c2073696e636520776520617373756d65206f6e65207061676573206f6620746172676574732c206174206d6f7374204f4e45206b65792077696c6c2065786973742e5c5061676564546172676574536e617073686f744861736800010805059c3404000c35012053616d65206173205b605061676564546172676574536e617073686f74605d2c206275742069742077696c6c2073746f7265207468652068617368206f662074686520736e617073686f742e00fc2054686520686173682069732067656e657261746564207573696e67205b606672616d655f73797374656d3a3a436f6e6669673a3a48617368696e67605d2e01110701d5031834556e7369676e656450686173651010320000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010320000000478204475726174696f6e206f6620746865207369676e65642070686173652e545369676e656456616c69646174696f6e506861736510100001000014a4204475726174696f6e206f66207468652073696e6765642076616c69646174696f6e2070686173652e00550120546865206475726174696f6e206f6620746869732073686f756c64206e6f74206265206c657373207468616e2060543a3a5061676573602c20616e64207468657265206973206e6f20706f696e7420696e2069746501206265696e67206d6f7265207468616e20605369676e656450686173653a3a4d61785375626d697373696f6e3a3a6765742829202a20543a3a5061676573602e20544f444f3a20696e74656772697479207465737420666f72102069742e54566f746572536e617073686f74506572426c6f636b10100e03000004c820546865206e756d626572206f6620736e617073686f7420766f7465727320746f2066657463682070657220626c6f636b2e58546172676574536e617073686f74506572426c6f636b1010c409000004cc20546865206e756d626572206f6620736e617073686f74207461726765747320746f2066657463682070657220626c6f636b2e145061676573101010000000185420546865206e756d626572206f662070616765732e0001012054686520736e617073686f74206973206372656174656420776974682074686973206d616e79206b65797320696e207468652073746f72616765206d61702e0051012054686520736f6c7574696f6e73206d617920636f6e7461696e206174204d4f53542074686973206d616e792070616765732c20627574206c657373207061676573206172652061636365707461626c65206173182077656c6c2e0179105500684d756c7469426c6f636b456c656374696f6e566572696669657201684d756c7469426c6f636b456c656374696f6e56657269666965721c3c517565756564536f6c7574696f6e5800010805059c190704001c3d0120546865206058602076617269616e74206f66207468652063757272656e742071756575656420736f6c7574696f6e2e204d69676874206265207468652076616c6964206f6e65206f72206e6f742e006901205468652074776f2076617269616e7473206f6620746869732073746f72616765206974656d20697320746f2061766f696420746865206e656564206f6620636f7079696e672e20526563616c6c2074686174206f6e6365206171012060566572696679696e67536f6c7574696f6e60206973206265696e672070726f6365737365642c206974206e6565647320746f20777269746520697473207061727469616c20737570706f727473202a736f6d6577686572652a2e69012057726974696e672074686573657320737570706f727473206f6e20746f70206f662061202a676f6f642a2071756575656420737570706f7274732069732077726f6e672c2073696e6365207765206d69676874206261696c2e75012057726974696e67207468656d20746f20612062756767657220616e6420636f7079696e6720617420746865206e656420697320736c696768746c79206265747465722c2062757420657870656e736976652e205468697320666c61677c2073797374656d2069732062657374206f6620626f746820776f726c64732e3c517565756564536f6c7574696f6e5900010805059c19070400043d0120546865206059602076617269616e74206f66207468652063757272656e742071756575656420736f6c7574696f6e2e204d69676874206265207468652076616c6964206f6e65206f72206e6f742e4851756575656456616c696456617269616e7401010405107d100401085d0120506f696e74657220746f207468652076617269616e74206f66205b60517565756564536f6c7574696f6e58605d206f72205b60517565756564536f6c7574696f6e59605d20746861742069732063757272656e746c791c2076616c69642e58517565756564536f6c7574696f6e4261636b696e677300010805059c8110040020d420546865206028616d6f756e742c20636f756e742960206f66206261636b696e67732c20646976696465642070657220706167652e00710120546869732069732073746f726564206265636175736520696e20746865206c61737420626c6f636b206f6620766572696669636174696f6e207765206e656564207468656d20746f20636f6d70757465207468652073636f72652c9820616e6420636865636b20604d61784261636b65727350657257696e6e657246696e616c602e00710120546869732063616e206f6e6c792065766572206c69766520666f722074686520696e76616c69642076617269616e74206f662074686520736f6c7574696f6e2e204f6e63652069742069732076616c69642c20776520646f6e27741501206e656564207468697320696e666f726d6174696f6e20616e796d6f72653b207468652073636f726520697320616c726561647920636f6d7075746564206f6e636520696ef4205b60517565756564536f6c7574696f6e53636f7265605d2c20616e6420746865206261636b696e6720636f756e74732061726520636865636b65642e4c517565756564536f6c7574696f6e53636f72650001040510e90304000cd8205468652073636f7265206f66207468652076616c69642076617269616e74206f66205b60517565756564536f6c7574696f6e605d2e00b82054686973206f6e6c792065766572206c6976657320666f7220746865206076616c6964602076617269616e742e304d696e696d756d53636f72650000e903040004550120546865206d696e696d756d2073636f72652074686174206561636820736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e73696465726564206665617369626c652e3453746174757353746f7261676501009110040104742053746f72616765206974656d20666f72205b60537461747573605d2e01390701dd031070536f6c7574696f6e496d70726f76656d656e745468726573686f6c64a5031000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173282022626574746572222e604d61784261636b65727350657257696e6e657246696e616c1010d4300000141d01204d6178696d756d206e756d626572206f66206261636b6572732c207065722077696e6e65722c20616d6f6e6720616c6c207061676573206f6620616e20656c656374696f6e2e00050120546869732063616e206f6e6c7920626520636865636b65642061742074686520766572792066696e616c2073746570206f6620766572696669636174696f6e2e005d01204e4f54453a20617420746865206d6f6d656e742c20776520646f6e277420636865636b20746869732c20616e6420697420697320696e20706c61636520666f722066757475726520636f6d7061746962696c6974792e4c4d61784261636b65727350657257696e6e657210100e03000004c4204d6178696d756d206e756d626572206f66206261636b6572732c207065722077696e6e65722c2070657220706167652e444d617857696e6e657273506572506167651010e8030000086101204d6178696d756d206e756d626572206f6620737570706f7274732028616b612e2077696e6e6572732f76616c696461746f72732f746172676574732920746861742063616e20626520726570726573656e74656420696e4c20612070616765206f6620726573756c74732e005600684d756c7469426c6f636b456c656374696f6e556e7369676e656400013d070000005700604d756c7469426c6f636b456c656374696f6e5369676e656401604d756c7469426c6f636b456c656374696f6e5369676e65641034496e76756c6e657261626c6573010095100400241501204163636f756e74732077686974656c697374656420627920676f7665726e616e636520746f20616c77617973207375626d697420746865697220736f6c7574696f6e732e007020546865792061726520646966666572656e7420696e20746861743a00fc202a205468657920616c77617973207061792061206669786564206465706f73697420666f72207375626d697373696f6e2c20737065636966696564206279f42020205b60436f6e6669673a3a496e76756c6e657261626c654465706f736974605d2e205468657920706179206e6f2070616765206465706f7369742e6901202a204966205f656a65637465645f2062792062657474657220736f6c7574696f6e2066726f6d205b60536f7274656453636f726573605d2c20746865792077696c6c206765742074686569722066756c6c206465706f736974202020206261636b2e0901202a205468657920616c77617973206765742074686569722074782d666565206261636b206576656e206966207468657920617265205f6469736361726465645f2e30536f7274656453636f72657301010405109910040000445375626d697373696f6e53746f7261676500010c050505a5104907040004ec20547269706c65206d61702066726f6d2028726f756e642c206163636f756e742c20706167652920746f206120736f6c7574696f6e20706167652e645375626d697373696f6e4d6574616461746153746f726167650001080505e10ea910040010d8204d61702066726f6d206163636f756e7420746f20746865206d65746164617461206f66207468656972207375626d697373696f6e2e00710120696e76617269616e743a20666f7220616e79204b657931206f66207479706520604163636f756e7449646020696e205b605375626d697373696f6e73605d2c20746869732073746f72616765206d617020616c736f2068617320611c2076616c75652e01750801f1030001b51058001c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e34496e76756c6e657261626c65730100910d04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100a50310000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c65646765720001040200b9100400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e1450617965650001040500f90304000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500fd030800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500bd1004004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b6572730001040500a4040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400107c205468652063757272656e7420706c616e6e65642065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e244163746976654572610000c110040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d7573742062659820657175616c20746f207768617420697320524327732073657373696f6e2070616c6c65742e28426f6e646564457261730100c51004001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c457261735374616b6572734f766572766965770001080505e10ec910040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742ea02053686f756c64206f6e6c79206265206163636573736564207468726f756768206045726173602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e40457261735374616b657273506167656400010c050505a510cd10040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79c82074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f756768206045726173602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d6564526577617264730101080505e10edd10040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f7250726566730101080505e10efd03080000140501204578706f73757265206f662076616c696461746f722061742065726120776974682074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510e11014000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100050404000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000850804000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e0100a50310000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e304f6666656e636551756575650001080505e10eed100400284d012053746f726573207265706f72746564206f6666656e63657320696e206120717565756520756e74696c2074686579206172652070726f63657373656420696e2073756273657175656e7420626c6f636b732e0065012045616368206f6666656e6365206973207265636f7264656420756e6465722074686520636f72726573706f6e64696e672065726120696e64657820616e6420746865206f6666656e64696e672076616c696461746f7227737101206163636f756e742e20496620616e206f6666656e6365207370616e73206d756c7469706c652070616765732c206f6e6c79206f6e6520706167652069732070726f63657373656420617420612074696d652e204f6666656e6365733d01206172652068616e646c65642073657175656e7469616c6c792c2077697468207468656972206173736f63696174656420736c617368657320636f6d707574656420616e642073746f72656420696e51012060556e6170706c696564536c6173686573602e20546865736520736c617368657320617265207468656e206170706c69656420696e206120667574757265206572612061732064657465726d696e6564206279582060536c61736844656665724475726174696f6e602e00510120416e79206f6666656e636573207469656420746f20616e20657261206f6c646572207468616e2060426f6e64696e674475726174696f6e6020617265206175746f6d61746963616c6c792064726f707065642ed02050726f63657373696e6720616c77617973207072696f726974697a657320746865206f6c64657374206572612066697273742e404f6666656e63655175657565457261730000f11004002c750120547261636b73207468652065726173207468617420636f6e7461696e206f6666656e63657320696e20604f6666656e63655175657565602c20736f727465642066726f6d202a2a6561726c6965737420746f206c61746573742a2a2e004d01202d205468697320656e737572657320656666696369656e742072657472696576616c206f6620746865206f6c64657374206f6666656e636520776974686f757420697465726174696e67207468726f7567684020604f6666656e63655175657565602e6501202d205768656e2061206e6577206f6666656e636520697320616464656420746f20604f6666656e63655175657565602c2069747320657261206973202a2a696e73657274656420696e20736f72746564206f726465722a2a60206966206e6f7420616c72656164792070726573656e742e4101202d205768656e20616c6c206f6666656e63657320666f7220616e20657261206172652070726f6365737365642c206974206973202a2a72656d6f7665642a2a2066726f6d2074686973206c6973742e1501202d20546865206d6178696d756d206c656e677468206f66207468697320766563746f7220697320626f756e6465642062792060426f6e64696e674475726174696f6e602e007101205468697320656c696d696e6174657320746865206e65656420666f7220657870656e7369766520697465726174696f6e20616e6420736f7274696e67207768656e206665746368696e6720746865206e657874206f6666656e63653020746f2070726f636573732e4450726f63657373696e674f6666656e63650000f5100400301d0120547261636b73207468652063757272656e746c792070726f636573736564206f6666656e6365207265636f72642066726f6d2074686520604f6666656e63655175657565602e004d01202d205768656e2070726f63657373696e67206f6666656e6365732c20616e206f6666656e6365207265636f7264206973202a2a706f707065642a2a2066726f6d20746865206f6c646573742065726120696e88202020604f6666656e636551756575656020616e642073746f72656420686572652e7501202d205468652066756e6374696f6e206070726f636573735f6f6666656e6365602072656164732066726f6d20746869732073746f726167652c2070726f63657373696e67206f6e652070616765206f66206578706f7375726520617428202020612074696d652e6501202d2041667465722070726f63657373696e67206120706167652c2074686520606578706f737572655f706167656020636f756e74206973202a2a64656372656d656e7465642a2a20756e74696c2069742072656163686573202020207a65726f2e2501202d204f6e63652066756c6c792070726f6365737365642c20746865206f6666656e6365207265636f72642069732072656d6f7665642066726f6d20746869732073746f726167652e006501205468697320656e73757265732074686174206f6666656e636573206172652070726f63657373656420696e6372656d656e74616c6c792c2070726576656e74696e672065786365737369766520636f6d7075746174696f6efc20696e20612073696e676c6520626c6f636b207768696c65206d61696e7461696e696e6720636f727265637420736c617368696e67206265686176696f722e40556e6170706c696564536c61736865730001080505f910fd10040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e4043616e63656c6c6564536c61736865730101040510051104001451012043616e63656c6c656420736c61736865732062792065726120616e642076616c696461746f722077697468206d6178696d756d20736c617368206672616374696f6e20746f2062652063616e63656c6c65642e004501205768656e20736c6173686573206172652063616e63656c6c656420627920676f7665726e616e63652c20746869732073746f726573207468652065726120616e64207468652076616c696461746f727355012077686f736520736c61736865732073686f756c642062652063616e63656c6c65642c20616c6f6e67207769746820746865206d6178696d756d20736c617368206672616374696f6e20746861742073686f756c64842062652063616e63656c6c656420666f7220656163682076616c696461746f722e4c56616c696461746f72536c617368496e4572610001080505e10ea10b040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e384368696c6c5468726573686f6c640000850804000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e4c566f746572536e617073686f74537461747573010009110402108020566f74657220736e617073686f742070726f6772657373207374617475732e006901204966207468652073746174757320697320604f6e676f696e67602c206974206b65657073206120637572736f72206f6620746865206c61737420766f7465722072657472696576656420746f2070726f63656564207768656e84206372656174696e6720746865206e65787420736e617073686f7420706167652e404e657874456c656374696f6e506167650000100400180101204b6565707320747261636b206f6620616e206f6e676f696e67206d756c74692d7061676520656c656374696f6e20736f6c7574696f6e20726571756573742e0065012049662060536f6d65285f2960602c20697420697320746865206e6578742070616765207468617420776520696e74656e6420746f20656c6563742e20496620604e6f6e65602c20776520617265206e6f7420696e207468654820656c656374696f6e2070726f636573732e0039012054686973206973206f6e6c792073657420696e206d756c74692d626c6f636b20656c656374696f6e732e2053686f756c6420616c7761797320626520604e6f6e6560206f74686572776973652e40456c65637461626c655374617368657301000d110400045101204120626f756e646564206c697374206f66207468652022656c65637461626c65222073746173686573207468617420726573756c7465642066726f6d2061207375636365737366756c20656c656374696f6e2e3c4572615072756e696e67537461746500010405101111040004450120547261636b73207468652063757272656e742073746570206f6620657261207072756e696e672070726f6365737320666f72206561636820657261206265696e67206c617a696c79207072756e65642e017d0801f5032c30486973746f72794465707468101054000000348c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d290120486973746f727944657074682c2063757272656e745f6572615d603a20604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602ce0206045726173526577617264506f696e7473602c206045726173546f74616c5374616b65602c2060436c61696d656452657761726473602cac2060457261735374616b6572735061676564602c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e3853657373696f6e73506572457261101006000000042d01204e756d626572206f662073657373696f6e7320706572206572612c206173207065722074686520707265666572656e636573206f6620746865202a2a72656c617920636861696e2a2a2e44506c616e6e696e674572614f6666736574101002000000385101204e756d626572206f662073657373696f6e73206265666f72652074686520656e64206f6620616e20657261207768656e2074686520656c656374696f6e20666f7220746865206e657874206572612077696c6c1c2073746172742e005d01202d20546869732064657465726d696e657320686f77206d616e792073657373696f6e73202a2a6265666f72652a2a20746865206c6173742073657373696f6e206f66207468652065726120746865207374616b696e6784202020656c656374696f6e2070726f636573732073686f756c6420626567696e2e4d01202d205468652076616c756520697320626f756e646564206265747765656e202a2a312a2a2028656c656374696f6e207374617274732061742074686520626567696e6e696e67206f6620746865206c6173745d0120202073657373696f6e2920616e64206053657373696f6e73506572457261602028656c656374696f6e207374617274732061742074686520626567696e6e696e67206f66207468652066697273742073657373696f6e3c2020206f662074686520657261292e003420232323204578616d706c653a4901202d204966206053657373696f6e73506572457261203d20366020616e642060506c616e6e696e674572614f6666736574203d2031602c2074686520656c656374696f6e207374617274732061742074686590202020626567696e6e696e67206f662073657373696f6e206036202d2031203d2035602e5d01202d2049662060506c616e6e696e674572614f6666736574203d2036602c2074686520656c656374696f6e207374617274732061742074686520626567696e6e696e67206f662073657373696f6e206036202d2036203de820202030602c206d65616e696e672069742073746172747320617420746865207665727920626567696e6e696e67206f6620746865206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000200002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e003d01204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746fac2072656475636520776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e3c4d617856616c696461746f725365741010e803000010150120546865206162736f6c757465206d6178696d756d206f662077696e6e65722076616c696461746f727320746869732070616c6c65742073686f756c642072657475726e2e00410120417320746869732070616c6c657420737570706f727473206d756c74692d626c6f636b20656c656374696f6e2c2074686520736574206f662077696e6e65722076616c696461746f7273202a7065728c20656c656374696f6e2a20697320626f756e646564206279207468697320747970652e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e404d6178496e76756c6e657261626c657310101400000004ac204d6178696d756d206e756d626572206f6620696e76756c6e657261626c652076616c696461746f72732e384d61784572614475726174696f6e30208062ee010000000020b8204d6178696d756d20616c6c6f77656420657261206475726174696f6e20696e206d696c6c697365636f6e64732e00510120546869732070726f7669646573206120646566656e7369766520757070657220626f756e6420746f20636170207468652065666665637469766520657261206475726174696f6e2c2070726576656e74696e676101206578636573736976656c79206c6f6e6720657261732066726f6d2063617573696e672072756e6177617920696e666c6174696f6e2028652e672e2c2064756520746f2062756773292e204966207468652061637475616c150120657261206475726174696f6e206578636565647320746869732076616c75652c2069742077696c6c20626520636c616d70656420746f2074686973206d6178696d756d2e000101204578616d706c653a20466f7220616e20696465616c20657261206475726174696f6e206f6620323420686f757273202838362c3430302c303030206d73292cb020746869732063616e2062652073657420746f203630342c3830302c303030206d732028372064617973292e3c4d61785072756e696e674974656d73101064000000141501204d6178696d756d206e756d626572206f662073746f72616765206974656d7320746861742063616e206265207072756e656420696e20612073696e676c652063616c6c2e005901205468697320636f6e74726f6c7320686f77206d616e792073746f72616765206974656d732063616e2062652064656c6574656420696e20656163682063616c6c20746f20607072756e655f6572615f73746570602e4d0120546869732073686f756c642062652073657420746f206120636f6e7365727661746976652076616c75652028652e672e2c203130302d353030206974656d732920746f20656e73757265207072756e696e67550120646f65736e277420636f6e73756d6520746f6f206d75636820626c6f636b2073706163652e205468652061637475616c207765696768742069732064657465726d696e65642062792062656e63686d61726b732e0115115900205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510f90a040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c7301001911040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e647300010405101d11040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e3c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e01b908011104182c5370656e64506572696f64101080510100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1d0110000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964a10d2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f64101080c613000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e2c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e0125115a0040436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f72010108050529112d11d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500391104000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01bd08011d0408204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010c0890100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e013d115b00245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f7200010402104111040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b517565756501010405090349110400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405090310100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01c90801290414445375626d697373696f6e4465706f7369741840554dd2c207000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b734d11151a40000064726f6f740000000000000000000000000000000000000000000100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f746970706572000000000000000000000000000000640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e646572000000000000000000000032000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e646572000000000000000000000000000032000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e0165115c001c4f726967696e7300000000005d002457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c0001040534a404000001d508012d0c000169115e0020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e7469657300010405106d110400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e73000104051071110400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301001911040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01d908013d0c2444426f756e74794465706f736974426173651840702e7f0300000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000000000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6410100004170318f4205468652074696d65206c696d697420666f7220612063757261746f7220746f20616374206265666f7265206120626f756e747920657870697265732e0055012054686520706572696f64207468617420737461727473207768656e20612063757261746f7220697320617070726f7665642c20647572696e672077686963682074686579206d7573742065786563757465206f725501207570646174652074686520626f756e7479207669612060657874656e645f626f756e74795f657870697279602e204966206d69737365642c2074686520626f756e747920657870697265732c20616e642074686555012063757261746f72206d617920626520736c61736865642e2049662060426c6f636b4e756d626572466f723a3a4d4158602c20626f756e7469657320737461792061637469766520696e646566696e6974656c792cb82072656d6f76696e6720746865206e65656420666f722060657874656e645f626f756e74795f657870697279602e6043757261746f724465706f7369744d756c7469706c6965721d011020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d61784506440104821bce260000000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696e4506440152a1aec6000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d1840689aa4850f00000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f736974506572427974651840151605000000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c75650175115f00344368696c64426f756e7469657301344368696c64426f756e746965731c404368696c64426f756e7479436f756e740100101000000000086d0120444550524543415445443a205265706c6163656420776974682060506172656e74546f74616c4368696c64426f756e74696573602073746f72616765206974656d206b656570696e672064656469636174656420636f756e7473550120666f72206561636820706172656e7420626f756e74792e204e756d626572206f6620746f74616c206368696c6420626f756e746965732e2057696c6c2062652072656d6f76656420696e204d617920323032352e4c506172656e744368696c64426f756e74696573010104051010100000000008cc204e756d626572206f6620616374697665206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e60506172656e74546f74616c4368696c64426f756e746965730101040510101000000000044101204e756d626572206f6620746f74616c206368696c6420626f756e746965732070657220706172656e7420626f756e74792c20696e636c7564696e6720636f6d706c6574656420626f756e746965732e344368696c64426f756e7469657300010805059c791104000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e644368696c64426f756e74794465736372697074696f6e73563100010805059c711104000c290120546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e20496e6465786564206279206028706172656e745f69642c206368696c645f696429602e006d012054686973206974656d207265706c616365732074686520604368696c64426f756e74794465736372697074696f6e73602073746f72616765206974656d2066726f6d207468652056302073746f726167652076657273696f6e2e505630546f56314368696c64426f756e747949647300010405109c0400145d0120546865206d617070696e67206f6620746865206368696c6420626f756e7479206964732066726f6d2073746f726167652076657273696f6e206056306020746f20746865206e657720605631602076657273696f6e2e006d0120546865206056306020696473206261736564206f6e20746f74616c206368696c6420626f756e747920636f756e74205b604368696c64426f756e7479436f756e74605d602e2054686520605631602076657273696f6e206964734101206261736564206f6e20746865206368696c6420626f756e747920636f756e742070657220706172656e7420626f756e7479205b60506172656e74546f74616c4368696c64426f756e74696573605d2e650120546865206974656d20696e74656e64656420736f6c656c7920666f7220636c69656e7420636f6e76656e69656e636520616e64206e6f74207573656420696e207468652070616c6c6574277320636f7265206c6f6769632e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01dd0801410c08644d61784163746976654368696c64426f756e7479436f756e74101064000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d1840a4425d8d0100000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01811160002441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e6174697665000104021504e10204000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e64296001e10801450c0001851161001441684f7073011441684f70730c3852634c656173655265736572766500010c050505891118040038050120416d6f756e74206f662062616c616e636520746861742077617320726573657276656420666f722077696e6e696e672061206c656173652061756374696f6e2e0065012060756e726573657276655f6c656173655f6465706f736974602063616e206265207065726d697373696f6e6c6573736c792063616c6c6564206f6e63652074686520626c6f636b206e756d6265722070617373656420746f550120756e7265736572766520746865206465706f7369742e20497420697320696d706c696369746c792063616c6c6564206279206077697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e602e082020690120546865206163636f756e7420686572652063616e2065697468657220626520612063726f77646c6f616e206163636f756e74206f72206120736f6c6f206269646465722e20496620697420697320612063726f77646c6f616e6901206163636f756e742c207468656e207468652073756d6d656420757020636f6e747269627574696f6e7320666f7220697420696e2074686520636f6e747269627574696f6e73206d61702077696c6c20657175617465207468655c2072657365727665642062616c616e636520686572652e006420546865206b6579732061726520617320666f6c6c6f77733ae8202d20426c6f636b206e756d62657220616674657220776869636820746865206465706f7369742063616e20626520756e72657365727665642e84202d2054686520706172615f6964206f6620746865206c6561736520736c6f742ed4202d20546865206163636f756e7420746861742077696c6c2068617665207468652062616c616e636520756e72657365727665642e80202d205468652062616c616e636520746f20626520756e72657365727665642e5c526343726f77646c6f616e436f6e747269627574696f6e00010c05050589112d07040030fc20416d6f756e74206f662062616c616e63652074686174206120636f6e7472696275746f72206d61646520746f776172647320612063726f77646c6f616e2e005d01206077697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e602063616e206265207065726d697373696f6e6c6573736c792063616c6c6564206f6e63652074686520626c6f636b206e756d626572d42070617373656420746f20756e6c6f636b207468652062616c616e636520666f722061207370656369666963206163636f756e742e006420546865206b6579732061726520617320666f6c6c6f77733ae0202d20426c6f636b206e756d626572206166746572207768696368207468652062616c616e63652063616e20626520756e6c6f636b65642e80202d2054686520706172615f6964206f66207468652063726f77646c6f616e2ea8202d20546865206163636f756e742074686174206d6164652074686520636f6e747269627574696f6e2e004101205468652076616c7565206973202866756e645f706f742c2062616c616e6365292e2054686520636f6e747269627574696f6e20706f7420697320746865207365636f6e64206b657920696e207468658c2060526343726f77646c6f616e436f6e747269627574696f6e602073746f726167652e48526343726f77646c6f616e5265736572766500010c050505891118040024c82054686520726573657276652074686174207761732074616b656e20746f2063726561746520612063726f77646c6f616e2e0011012054686973206973206e6f726d616c6c792035303020444f5420616e642063616e20626520726566756e646564206173206c617374207374657020616674657220616c6cf42060526343726f77646c6f616e436f6e747269627574696f6e6073206f662074686973206c6f616e2068617665206265656e2077697468647261776e2e0018204b6579733ac8202d20426c6f636b206e756d62657220616674657220776869636820746869732063616e20626520756e72657365727665647c202d2054686520706172615f6964206f66207468652063726f77646c6f616ed0202d20546865206163636f756e7420746861742077696c6c2068617665207468652062616c616e636520756e726573657276656401e50801490c00018d11fe002841684d69677261746f72012841684d69677261746f721c2852634163636f756e74730001040500f10804000c2101205243206163636f756e74732074686174206661696c656420746f206d696772617465207768656e2077657265207265636569766564206f6e20746865204173736574204875622e007501205468697320697320756e6c696b656c7920746f2068617070656e2c2073696e6365207765206472792072756e20746865206d6967726174696f6e2c20627574207765206b65657020697420666f7220636f6d706c6574656e6573732e4041684d6967726174696f6e53746167650100190c0400047c2054686520417373657420487562206d6967726174696f6e2073746174652e40416842616c616e6365734265666f7265010091118000000000000000000000000000000000000000000000000000000000000000000c75012048656c7065722073746f72616765206974656d20746f2073746f72652074686520746f74616c2062616c616e6365202f20746f74616c2069737375616e6365206f66206e617469766520746f6b656e206174207468652073746172747501206f6620746865206d6967726174696f6e2e2053696e63652074656c65706f727473206172652064697361626c656420647572696e67206d6967726174696f6e2c2074686520746f74616c2069737375616e63652077696c6c206e6f74cc206368616e676520666f72206f7468657220726561736f6e207468616e20746865206d6967726174696f6e20697473656c662e58446d7051756575655072696f72697479436f6e66696701001d0c040018c020546865207072696f72697479206f662074686520444d5020717565756520647572696e67206d6967726174696f6e2e00710120436f6e74726f6c7320686f772074686520444d502028446f776e77617264204d6573736167652050617373696e67292071756575652069732070726f6365737365642072656c617469766520746f206f7468657220717565756573650120647572696e6720746865206d6967726174696f6e2070726f636573732e20546869732068656c707320656e737572652074696d656c792070726f63657373696e67206f66206d6967726174696f6e206d657373616765732e6d01205468652064656661756c74207072696f72697479207061747465726e20697320646566696e656420696e207468652070616c6c657420636f6e66696775726174696f6e2c206275742063616e206265206f76657272696464656e8420627920612073746f726167652076616c7565206f66207468697320747970652e1c4d616e616765720000000400109420416e206f7074696f6e616c206163636f756e74206964206f662061206d616e616765722e0045012054686973206163636f756e74206964206861732073696d696c61722070726976696c6567657320746f205b60436f6e6669673a3a41646d696e4f726967696e605d206578636570742074686174206974ec2063616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e4c4d6967726174696f6e5374617274426c6f636b0000100400105d012054686520626c6f636b206e756d62657220617420776869636820746865206d6967726174696f6e20626567616e20616e64207468652070616c6c657427732065787472696e736963732077657265206c6f636b65642e00150120546869732076616c756520697320736574207768656e20656e746572696e6720746865206057616974696e67466f724168602073746167652c20692e652e2c207768656ec4206052634d6967726174696f6e53746167653a3a69735f6f6e676f696e67282960206265636f6d6573206074727565602e444d6967726174696f6e456e64426c6f636b0000100400100d0120426c6f636b206e756d626572207768656e206d6967726174696f6e2066696e697368656420616e642065787472696e73696373207765726520756e6c6f636b65642e00fc205468697320697320736574207768656e20656e746572696e672074686520604d6967726174696f6e446f6e65602073746167652068656e6365207768656ec8206052634d6967726174696f6e53746167653a3a69735f66696e6973686564282960206265636f6d6573206074727565602e01e908014d0c00019511ff0004fd0431048d0699112448436865636b4e6f6e5a65726f53656e6465729d11a440436865636b5370656356657273696f6ea1111038436865636b547856657273696f6ea5111030436865636b47656e65736973a9113438436865636b4d6f7274616c697479ad113428436865636b4e6f6e6365b511a42c436865636b576569676874b911a450436861726765417373657454785061796d656e74bd11a444436865636b4d6574616461746148617368c111887103681c417572614170690834736c6f745f6475726174696f6e00c9110c902052657475726e732074686520736c6f74206475726174696f6e20666f7220417572612e0025012043757272656e746c792c206f6e6c79207468652076616c75652070726f7669646564206279207468697320747970652061742067656e657369732077696c6c20626520757365642e2c617574686f72697469657300cd0d049c2052657475726e207468652063757272656e7420736574206f6620617574686f7269746965732e04b820415049206e656365737361727920666f7220626c6f636b20617574686f7273686970207769746820617572612e5052656c6179506172656e744f6666736574417069044c72656c61795f706172656e745f6f6666736574001004f42046657463682074686520736c6f74206f666673657420746861742069732065787065637465642066726f6d207468652072656c617920636861696e2e1005012041504920746f2074656c6c20746865206e6f6465207369646520686f77207468652072656c617920706172656e742073686f756c642062652063686f73656e2e0069012041206c6172676572206f666673657420696e646963617465732074686174207468652072656c617920706172656e742073686f756c64206e6f742062652074686520746970206f66207468652072656c617920636861696e2c31012062757420604e6020626c6f636b7320626568696e6420746865207469702e2054686973206f6666736574206973207468656e20656e666f72636564206279207468652072756e74696d652e6041757261556e696e636c756465645365676d656e74417069043863616e5f6275696c645f75706f6e0834696e636c756465645f686173683410736c6f74d10d202839012057686574686572206974206973206c6567616c20746f20657874656e642074686520636861696e2c20617373756d696e672074686520676976656e20626c6f636b20697320746865206d6f7374350120726563656e746c7920696e636c75646564206f6e652061732d6f66207468652072656c617920706172656e7420746861742077696c6c206265206275696c7420616761696e73742c20616e64702074686520676976656e2072656c617920636861696e20736c6f742e00510120546869732073686f756c6420626520636f6e73697374656e74207769746820746865206c6f676963207468652072756e74696d652075736573207768656e2076616c69646174696e6720626c6f636b7320746f382061766f6964206973737565732e006101205768656e2074686520756e696e636c75646564207365676d656e7420697320656d7074792c20692e652e2060696e636c756465645f68617368203d3d206174602c2077686572652061742069732074686520626c6f636b61012077686f736520737461746520776520617265207175657279696e6720616761696e73742c2074686973206d75737420616c776179732072657475726e20607472756560206173206c6f6e672061732074686520736c6f74bc206973206d6f726520726563656e74207468616e2074686520696e636c7564656420626c6f636b20697473656c662e34350120546869732072756e74696d6520415049206973207573656420746f20696e666f726d20706f74656e7469616c20626c6f636b20617574686f7273207768657468657220746865792077696c6c250120686176652074686520726967687420746f20617574686f72206174206120736c6f742c20617373756d696e672074686579206861766520636c61696d65642074686520736c6f742e00750120496e20706172746963756c61722c20746869732041504920616c6c6f777320417572612d62617365642070617261636861696e7320746f20726567756c6174652074686569722022756e696e636c75646564207365676d656e74222c6d01207768696368206973207468652073656374696f6e206f66207468652068656164206f662074686520636861696e20776869636820686173206e6f7420796574206265656e206d61646520617661696c61626c6520696e20746865342072656c617920636861696e2e006101205768656e2074686520756e696e636c75646564207365676d656e742069732073686f72742c204175726120636861696e732077696c6c20616c6c6f7720617574686f727320746f20637265617465206d756c7469706c655d0120626c6f636b732070657220736c6f7420696e206f7264657220746f206275696c642061206261636b6c6f672e205768656e206974206973207361747572617465642c2074686973204150492077696c6c206c696d6974a82074686520616d6f756e74206f6620626c6f636b7320746861742063616e20626520637265617465642e0024204368616e6765733a9101202d2056657273696f6e20323a2055706461746520746f206063616e5f6275696c645f75706f6e6020746f2074616b6520612072656c617920636861696e2060536c6f746020696e7374656164206f6620612070617261636861696e2060536c6f74602e10436f72650c1c76657273696f6e00810c04902052657475726e73207468652076657273696f6e206f66207468652072756e74696d652e34657865637574655f626c6f636b0414626c6f636bcd11a4046420457865637574652074686520676976656e20626c6f636b2e40696e697469616c697a655f626c6f636b04186865616465726104d91104410120496e697469616c697a65206120626c6f636b20776974682074686520676976656e2068656164657220616e642072657475726e207468652072756e74696d6520657865637574697665206d6f64652e042101205468652060436f7265602072756e74696d65206170692074686174206576657279205375627374726174652072756e74696d65206e6565647320746f20696d706c656d656e742e204d657461646174610c206d6574616461746100dd11048c2052657475726e7320746865206d65746164617461206f6620612072756e74696d652e4c6d657461646174615f61745f76657273696f6e041c76657273696f6e10e11110a42052657475726e7320746865206d65746164617461206174206120676976656e2076657273696f6e2e0005012049662074686520676976656e206076657273696f6e602069736e277420737570706f727465642c20746869732077696c6c2072657475726e20604e6f6e65602e750120557365205b6053656c663a3a6d657461646174615f76657273696f6e73605d20746f2066696e64206f75742061626f757420737570706f72746564206d657461646174612076657273696f6e206f66207468652072756e74696d652e446d657461646174615f76657273696f6e730021030ca42052657475726e732074686520737570706f72746564206d657461646174612076657273696f6e732e00c020546869732063616e206265207573656420746f2063616c6c20606d657461646174615f61745f76657273696f6e602e0401012054686520604d65746164617461602061706920747261697420746861742072657475726e73206d6574616461746120666f72207468652072756e74696d652e30426c6f636b4275696c646572103c6170706c795f65787472696e736963042465787472696e736963d111e511106c204170706c792074686520676976656e2065787472696e7369632e0039012052657475726e7320616e20696e636c7573696f6e206f7574636f6d652077686963682073706563696669657320696620746869732065787472696e73696320697320696e636c7564656420696e4c207468697320626c6f636b206f72206e6f742e3866696e616c697a655f626c6f636b00610404682046696e697368207468652063757272656e7420626c6f636b2e4c696e686572656e745f65787472696e736963730420696e686572656e74f511d511043d012047656e657261746520696e686572656e742065787472696e736963732e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e3c636865636b5f696e686572656e74730814626c6f636bcd111064617461f511051204550120436865636b20746861742074686520696e686572656e7473206172652076616c69642e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e047101205468652060426c6f636b4275696c646572602061706920747261697420746861742070726f7669646573207468652072657175697265642066756e6374696f6e616c69747920666f72206275696c64696e67206120626c6f636b2e585461676765645472616e73616374696f6e5175657565045076616c69646174655f7472616e73616374696f6e0c18736f757263650912087478d11128626c6f636b5f68617368340d1224682056616c696461746520746865207472616e73616374696f6e2e0065012054686973206d6574686f6420697320696e766f6b656420627920746865207472616e73616374696f6e20706f6f6c20746f206c6561726e2064657461696c732061626f757420676976656e207472616e73616374696f6e2e45012054686520696d706c656d656e746174696f6e2073686f756c64206d616b65207375726520746f207665726966792074686520636f72726563746e657373206f6620746865207472616e73616374696f6e4d0120616761696e73742063757272656e742073746174652e2054686520676976656e2060626c6f636b5f686173686020636f72726573706f6e647320746f207468652068617368206f662074686520626c6f636b7c207468617420697320757365642061732063757272656e742073746174652e004501204e6f7465207468617420746869732063616c6c206d617920626520706572666f726d65642062792074686520706f6f6c206d756c7469706c652074696d657320616e64207472616e73616374696f6e73a4206d6967687420626520766572696669656420696e20616e7920706f737369626c65206f726465722e044d012054686520605461676765645472616e73616374696f6e5175657565602061706920747261697420666f7220696e746572666572696e67207769746820746865207472616e73616374696f6e2071756575652e444f6666636861696e576f726b6572417069043c6f6666636861696e5f776f726b657204186865616465726104a404c82053746172747320746865206f66662d636861696e207461736b20666f7220676976656e20626c6f636b206865616465722e046420546865206f6666636861696e20776f726b6572206170692e2c53657373696f6e4b657973085467656e65726174655f73657373696f6e5f6b65797304107365656490381c15012047656e6572617465206120736574206f662073657373696f6e206b6579732077697468206f7074696f6e616c6c79207573696e672074686520676976656e20736565642e090120546865206b6579732073686f756c642062652073746f7265642077697468696e20746865206b657973746f7265206578706f736564207669612072756e74696d653c2065787465726e616c69746965732e00b0205468652073656564206e6565647320746f20626520612076616c69642060757466386020737472696e672e00d02052657475726e732074686520636f6e636174656e61746564205343414c4520656e636f646564207075626c6963206b6579732e4c6465636f64655f73657373696f6e5f6b657973041c656e636f6465643815120c98204465636f64652074686520676976656e207075626c69632073657373696f6e206b6579732e00dc2052657475726e7320746865206c697374206f66207075626c696320726177207075626c6963206b657973202b206b657920747970652e04682053657373696f6e206b6579732072756e74696d65206170692e4c52756e74696d655669657746756e6374696f6e0454657865637574655f766965775f66756e6374696f6e082071756572795f6964211214696e707574382512047c2045786563757465206120766965772066756e6374696f6e2071756572792e04a42052756e74696d652041504920666f7220657865637574696e6720766965772066756e6374696f6e733c4163636f756e744e6f6e636541706904346163636f756e745f6e6f6e6365041c6163636f756e74001004c0204765742063757272656e74206163636f756e74206e6f6e6365206f6620676976656e20604163636f756e744964602e0480205468652041504920746f207175657279206163636f756e74206e6f6e63652e484173736574436f6e76657273696f6e4170690c8c71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e7310186173736574314d01186173736574324d0118616d6f756e74182c696e636c7564655f66656520450610fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eac20285573652060616d6f756e745f696e5f6d61786020746f20636f6e74726f6c20736c6970706167652e298c71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e7310186173736574314d01186173736574324d0118616d6f756e74182c696e636c7564655f66656520450610fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eb020285573652060616d6f756e745f6f75745f6d696e6020746f20636f6e74726f6c20736c6970706167652e29306765745f726573657276657308186173736574314d01186173736574324d012d120405012052657475726e73207468652073697a65206f6620746865206c697175696469747920706f6f6c20666f722074686520676976656e20617373657420706169722e08210120546869732072756e74696d652061706920616c6c6f77732070656f706c6520746f207175657279207468652073697a65206f6620746865206c697175696469747920706f6f6c737020616e642071756f74652070726963657320666f722073776170732e545472616e73616374696f6e5061796d656e74417069102871756572795f696e666f080c757874d1110c6c656e103512004471756572795f6665655f64657461696c73080c757874d1110c6c656e103912004c71756572795f7765696768745f746f5f66656504187765696768742818004c71756572795f6c656e6774685f746f5f66656504186c656e67746810180000645472616e73616374696f6e5061796d656e7443616c6c417069103c71756572795f63616c6c5f696e666f081063616c6c31040c6c656e10351204490120517565727920696e666f726d6174696f6e206f66206120646973706174636820636c6173732c207765696768742c20616e6420666565206f66206120676976656e20656e636f646564206043616c6c602e5871756572795f63616c6c5f6665655f64657461696c73081063616c6c31040c6c656e10391204b4205175657279206665652064657461696c73206f66206120676976656e20656e636f646564206043616c6c602e4c71756572795f7765696768745f746f5f6665650418776569676874281804010120517565727920746865206f7574707574206f66207468652063757272656e742060576569676874546f4665656020676976656e20736f6d6520696e7075742e4c71756572795f6c656e6774685f746f5f66656504186c656e677468101804010120517565727920746865206f7574707574206f66207468652063757272656e7420604c656e677468546f4665656020676976656e20736f6d6520696e7075742e003458636d5061796d656e74417069107c71756572795f61636365707461626c655f7061796d656e745f617373657473042c78636d5f76657273696f6e10451214b42052657475726e732061206c697374206f662061636365707461626c65207061796d656e74206173736574732e0030202320417267756d656e74730068202a206078636d5f76657273696f6e603a2056657273696f6e2e4071756572795f78636d5f776569676874041c6d6573736167654505511214a82052657475726e73206120776569676874206e656564656420746f206578656375746520612058434d2e0030202320417267756d656e74730074202a20606d657373616765603a206056657273696f6e656458636d602e6471756572795f7765696768745f746f5f61737365745f666565081877656967687428146173736574ed05551218e820436f6e766572747320612077656967687420696e746f20612066656520666f722074686520737065636966696564206041737365744964602e0030202320417267756d656e74730088202a2060776569676874603a20636f6e7665727469626c652060576569676874602e7c202a20606173736574603a206056657273696f6e656441737365744964602e4c71756572795f64656c69766572795f66656573082c64657374696e6174696f6ed1021c6d65737361676545055912201d01204765742064656c6976657279206665657320666f722073656e64696e67206120737065636966696320606d6573736167656020746f2061206064657374696e6174696f6e602ef420546865736520616c7761797320636f6d6520696e20612073706563696669632061737365742c20646566696e65642062792074686520636861696e2e0030202320417267756d656e74738101202a20606d657373616765603a20546865206d6573736167652074686174276c6c2062652073656e742c206e65636573736172792062656361757365206d6f73742064656c6976657279206665657320617265206261736564206f6e207468655c20202073697a65206f6620746865206d6573736167652e6101202a206064657374696e6174696f6e603a205468652064657374696e6174696f6e20746f2073656e6420746865206d65737361676520746f2e20446966666572656e742064657374696e6174696f6e73206d617920757365c0202020646966666572656e742073656e6465727320746861742063686172676520646966666572656e7420666565732e2c702041207472616974206f662058434d207061796d656e74204150492e00a8204150492070726f76696465732066756e6374696f6e616c69747920666f72206f627461696e696e673a00c4202a207468652077656967687420726571756972656420746f206578656375746520616e2058434d206d6573736167652c0501202a2061206c697374206f662061636365707461626c65206041737365744964607320666f72206d65737361676520657865637574696f6e207061796d656e742c0101202a2074686520636f7374206f66207468652077656967687420696e20746865207370656369666965642061636365707461626c65206041737365744964602ea0202a20746865206665657320666f7220616e2058434d206d6573736167652064656c69766572792e00f020546f2064657465726d696e652074686520657865637574696f6e20776569676874206f66207468652063616c6c7320726571756972656420666f727501205b6078636d3a3a6c61746573743a3a496e737472756374696f6e3a3a5472616e73616374605d20696e737472756374696f6e2c20605472616e73616374696f6e5061796d656e7443616c6c417069602063616e20626520757365642e2444727952756e41706908306472795f72756e5f63616c6c0c186f726967696e05061063616c6c31044c726573756c745f78636d735f76657273696f6e105d120444204472792072756e2063616c6c2056322e2c6472795f72756e5f78636d083c6f726967696e5f6c6f636174696f6ed1020c78636dbd057d120450204472792072756e2058434d2070726f6772616d24b1012041504920666f72206472792d72756e6e696e672065787472696e7369637320616e642058434d2070726f6772616d7320746f20676574207468652070726f6772616d732074686174206e65656420746f2062652070617373656420746f207468652066656573204150492e00810120416c6c2063616c6c732072657475726e206120766563746f72206f66207475706c657320286c6f636174696f6e2c2078636d292077686572652065616368202278636d2220697320657865637574656420696e20226c6f636174696f6e222ee42049662074686572652773206c6f63616c20657865637574696f6e2c20746865206c6f636174696f6e2077696c6c206265202248657265222e1d01205468697320766563746f722063616e206265207573656420746f2063616c63756c61746520626f746820657865637574696f6e20616e642064656c697665727920666565732e0099012043616c6c73206f722058434d73206d69676874206661696c207768656e2065786563757465642c207468697320646f65736e2774206d65616e2074686520726573756c74206f662074686573652063616c6c732077696c6c20626520616e2060457272602e650120496e2074686f73652063617365732c207468657265206d69676874207374696c6c20626520612076616c696420726573756c742c20776974682074686520657865637574696f6e206572726f7220696e736964652069742e650120546865206f6e6c7920726561736f6e73207768792074686573652063616c6c73206d696768742072657475726e20616e206572726f7220617265206c697374656420696e20746865205b604572726f72605d20656e756d2e504c6f636174696f6e546f4163636f756e744170690440636f6e766572745f6c6f636174696f6e04206c6f636174696f6ed1028512049020436f6e766572747320604c6f636174696f6e6020746f20604163636f756e744964602e040d012041504920666f722075736566756c20636f6e76657273696f6e73206265747765656e2058434d20604c6f636174696f6e6020616e6420604163636f756e744964602e3c547275737465645175657279417069084869735f747275737465645f72657365727665081461737365748d12206c6f636174696f6ed102911214f02052657475726e7320696620746865206c6f636174696f6e20697320612074727573746564207265736572766520666f72207468652061737365742e0030202320417267756d656e747374202a20606173736574603a206056657273696f6e65644173736574602e8c202a20606c6f636174696f6e603a206056657273696f6e65644c6f636174696f6e602e5469735f747275737465645f74656c65706f72746572081461737365748d12206c6f636174696f6ed102911214e02052657475726e73206966207468652061737365742063616e2062652074656c65706f7274656420746f20746865206c6f636174696f6e2e0030202320417267756d656e747374202a20606173736574603a206056657273696f6e65644173736574602e8c202a20606c6f636174696f6e603a206056657273696f6e65644c6f636174696f6e602e04ec2041504920666f72207175657279696e67207472757374656420726573657276657320616e6420747275737465642074656c65706f72746572732e54417574686f72697a6564416c696173657273417069084c617574686f72697a65645f616c6961736572730418746172676574d102991204f42052657475726e73206c6f636174696f6e7320616c6c6f77656420746f20616c69617320696e746f20616e64206163742061732060746172676574602e4c69735f617574686f72697a65645f616c69617308186f726967696ed10218746172676574d102a112041d012052657475726e73207768657468657220606f726967696e6020697320616c6c6f77656420746f20616c69617320696e746f20616e64206163742061732060746172676574602e04a02041504920666f72207175657279696e672058434d20617574686f72697a656420616c69617365733046756e6769626c6573417069045871756572795f6163636f756e745f62616c616e636573041c6163636f756e7400a51204ec2052657475726e7320746865206c697374206f6620616c6c205b604173736574605d207468617420616e20604163636f756e74496460206861732e04d8205468652041504920666f72207175657279696e67206163636f756e7427732062616c616e6365732066726f6d2072756e74696d652e50436f6c6c656374436f6c6c6174696f6e496e666f0458636f6c6c6563745f636f6c6c6174696f6e5f696e666f04186865616465726104ad12109c20436f6c6c65637420696e666f726d6174696f6e2061626f7574206120636f6c6c6174696f6e2e00f42054686520676976656e2060686561646572602069732074686520686561646572206f6620746865206275696c7420626c6f636b20666f722074686174a82077652061726520636f6c6c656374696e672074686520636f6c6c6174696f6e20696e666f20666f722e14d82052756e74696d652061706920746f20636f6c6c65637420696e666f726d6174696f6e2061626f7574206120636f6c6c6174696f6e2e00442056657273696f6e20686973746f72793a0101202d2056657273696f6e20323a204368616e676564205b6053656c663a3a636f6c6c6563745f636f6c6c6174696f6e5f696e666f605d207369676e61747572653501202d2056657273696f6e20333a205369676e616c7320746f20746865206e6f646520746f207573652076657273696f6e2031206f66205b6050617261636861696e426c6f636b44617461605d2e3847656e657369734275696c6465720c2c6275696c645f737461746504106a736f6e38b912286501204275696c64206052756e74696d6547656e65736973436f6e666967602066726f6d2061204a534f4e20626c6f62206e6f74207573696e6720616e792064656661756c747320616e642073746f726520697420696e20746865242073746f726167652e00290120496e207468652063617365206f662061204652414d452d62617365642072756e74696d652c20746869732066756e6374696f6e20646573657269616c697a6573207468652066756c6c5501206052756e74696d6547656e65736973436f6e666967602066726f6d2074686520676976656e204a534f4e20626c6f6220616e64207075747320697420696e746f207468652073746f726167652e2049662074686555012070726f7669646564204a534f4e20626c6f6220697320696e636f7272656374206f7220696e636f6d706c657465206f722074686520646573657269616c697a6174696f6e206661696c732c20616e206572726f72342069732072657475726e65642e005d0120506c65617365206e6f746520746861742070726f7669646564204a534f4e20626c6f62206d75737420636f6e7461696e20616c6c206052756e74696d6547656e65736973436f6e66696760206669656c64732c206e6f5c2064656661756c74732077696c6c20626520757365642e286765745f70726573657404086964bd12903861012052657475726e732061204a534f4e20626c6f6220726570726573656e746174696f6e206f6620746865206275696c742d696e206052756e74696d6547656e65736973436f6e66696760206964656e7469666965642062791820606964602e005501204966206069646020697320604e6f6e6560207468652066756e6374696f6e2073686f756c642072657475726e204a534f4e20626c6f6220726570726573656e746174696f6e206f66207468652064656661756c744901206052756e74696d6547656e65736973436f6e6669676020737472756374206f66207468652072756e74696d652e20496d706c656d656e746174696f6e206d7573742070726f766964652064656661756c7460206052756e74696d6547656e65736973436f6e666967602e002101204f74686572776973652066756e6374696f6e2072657475726e732061204a534f4e20726570726573656e746174696f6e206f6620746865206275696c742d696e2c206e616d65645101206052756e74696d6547656e65736973436f6e6669676020707265736574206964656e74696669656420627920606964602c206f7220604e6f6e656020696620737563682070726573657420646f6573206e6f7461012065786973742e2052657475726e656420605665633c75383e6020636f6e7461696e73206279746573206f66204a534f4e20626c6f62202870617463682920776869636820636f6d7072697365732061206c697374206f664d012028706f74656e7469616c6c79206e657374656429206b65792d76616c756520706169727320746861742061726520696e74656e64656420666f7220637573746f6d697a696e67207468652064656661756c7465012072756e74696d652067656e6573697320636f6e6669672e20546865207061746368207368616c6c206265206d657267656420287266633733383629207769746820746865204a534f4e20726570726573656e746174696f6e6101206f66207468652064656661756c74206052756e74696d6547656e65736973436f6e6669676020746f20637265617465206120636f6d70726568656e736976652067656e6573697320636f6e66696720746861742063616e84206265207573656420696e20606275696c645f737461746560206d6574686f642e307072657365745f6e616d657300c1121051012052657475726e732061206c697374206f66206964656e7469666965727320666f7220617661696c61626c65206275696c74696e206052756e74696d6547656e65736973436f6e6669676020707265736574732e0061012054686520707265736574732066726f6d20746865206c6973742063616e20626520717565726965642077697468205b6047656e657369734275696c6465723a3a6765745f707265736574605d206d6574686f642e2049660101206e6f206e616d65642070726573657473206172652070726f7669646564206279207468652072756e74696d6520746865206c69737420697320656d7074792e04f02041504920746f20696e7465726163742077697468206052756e74696d6547656e65736973436f6e6669676020666f72207468652072756e74696d654047657450617261636861696e496e666f043070617261636861696e5f696400ed0204b0205265747269657665207468652070617261636861696e206964207573656420666f722072756e74696d652e040d012052756e74696d6520617069207573656420746f206163636573732067656e6572616c20696e666f2061626f757420612070617261636861696e2072756e74696d652e484e6f6d696e6174696f6e506f6f6c73417069283c70656e64696e675f72657761726473040c77686f00180435012052657475726e73207468652070656e64696e67207265776172647320666f7220746865206d656d626572207468617420746865204163636f756e7449642077617320676976656e20666f722e44706f696e74735f746f5f62616c616e6365081c706f6f6c5f69641018706f696e7473181804f42052657475726e7320746865206571756976616c656e742062616c616e6365206f662060706f696e74736020666f72206120676976656e20706f6f6c2e4462616c616e63655f746f5f706f696e7473081c706f6f6c5f696410246e65775f66756e6473181804fc2052657475726e7320746865206571756976616c656e7420706f696e7473206f6620606e65775f66756e64736020666f72206120676976656e20706f6f6c2e48706f6f6c5f70656e64696e675f736c617368041c706f6f6c5f6964101804b02052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c2e506d656d6265725f70656e64696e675f736c61736804186d656d626572001810cc2052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c206d656d6265722e004d012049662070656e64696e6720736c617368206f6620746865206d656d626572206578636565647320604578697374656e7469616c4465706f736974602c2069742063616e206265207265706f72746564206f6e1c20636861696e2e74706f6f6c5f6e656564735f64656c65676174655f6d6967726174696f6e041c706f6f6c5f6964102020e42052657475726e7320747275652069662074686520706f6f6c20776974682060706f6f6c5f696460206e65656473206d6967726174696f6e2e00490120546869732063616e2068617070656e207768656e20746865206070616c6c65742d6e6f6d696e6174696f6e2d706f6f6c73602068617320737769746368656420746f207573696e672073747261746567794101205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b6529206275742074686520706f6f6ce8207374696c6c206861732066756e647320746861742077657265207374616b6564207573696e6720746865206f6c6465722073747261746567791901205b5472616e736665725374616b655d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a5472616e736665725374616b65292e205573658901205b606d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65295420746f206d6967726174652074686520706f6f6c2e7c6d656d6265725f6e656564735f64656c65676174655f6d6967726174696f6e04186d656d62657200201c29012052657475726e732074727565206966207468652064656c6567617465642066756e6473206f662074686520706f6f6c20606d656d62657260206e65656473206d6967726174696f6e2e00d8204f6e6365206120706f6f6c20686173207375636365737366756c6c79206d6967726174656420746f207468652073747261746567795501205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b65292c207468652066756e6473206f66207468651901206d656d6265722063616e206265206d696772617465642066726f6d20706f6f6c206163636f756e7420746f20746865206d656d6265722773206163636f756e742e205573652901205b606d6967726174655f64656c65676174696f6e605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f64656c65676174696f6e29a420746f206d696772617465207468652066756e6473206f662074686520706f6f6c206d656d6265722e506d656d6265725f746f74616c5f62616c616e6365040c77686f00180465012052657475726e732074686520746f74616c20636f6e747269627574696f6e206f66206120706f6f6c206d656d62657220696e636c7564696e6720616e792062616c616e6365207468617420697320756e626f6e64696e672e30706f6f6c5f62616c616e6365041c706f6f6c5f69641018049c20546f74616c2062616c616e636520636f6e747269627574656420746f2074686520706f6f6c2e34706f6f6c5f6163636f756e7473041c706f6f6c5f696410c50b042d012052657475726e732074686520626f6e646564206163636f756e7420616e6420726577617264206163636f756e74206173736f63696174656420776974682074686520706f6f6c5f69642e04f82052756e74696d652061706920666f7220616363657373696e6720696e666f726d6174696f6e2061626f7574206e6f6d696e6174696f6e20706f6f6c732e285374616b696e674170690c446e6f6d696e6174696f6e735f71756f7461041c62616c616e636518100411012052657475726e7320746865206e6f6d696e6174696f6e732071756f746120666f722061206e6f6d696e61746f722077697468206120676976656e2062616c616e63652e5c657261735f7374616b6572735f706167655f636f756e74080c657261101c6163636f756e7400100439012052657475726e7320746865207061676520636f756e74206f66206578706f737572657320666f7220612076616c696461746f7220606163636f756e746020696e206120676976656e206572612e3c70656e64696e675f72657761726473080c657261101c6163636f756e740020043d012052657475726e7320747275652069662076616c696461746f7220606163636f756e74602068617320706167657320746f20626520636c61696d656420666f722074686520676976656e206572612e0024526576697665417069443c626c6f636b5f6761735f6c696d697400b90604742052657475726e732074686520626c6f636b20676173206c696d69742e1c62616c616e6365041c616464726573738103b9060431012052657475726e732074686520667265652062616c616e6365206f662074686520676976656e20605b483136305d6020616464726573732c207573696e672045564d20646563696d616c732e246761735f707269636500b906045c2052657475726e7320746865206761732070726963652e146e6f6e6365041c6164647265737381031004c42052657475726e7320746865206e6f6e6365206f662074686520676976656e20605b483136305d6020616464726573732e1063616c6c18186f726967696e00106465737481031476616c756518246761735f6c696d697435015473746f726167655f6465706f7369745f6c696d6974450628696e7075745f6461746138c5120cf420506572666f726d20612063616c6c2066726f6d206120737065636966696564206163636f756e7420746f206120676976656e20636f6e74726163742e008820536565205b6063726174653a3a50616c6c65743a3a626172655f63616c6c605d2e2c696e7374616e74696174651c186f726967696e001476616c756518246761735f6c696d697435015473746f726167655f6465706f7369745f6c696d6974450610636f6465d9121064617461381073616c7488dd120c7020496e7374616e74696174652061206e657720636f6e74726163742e00a42053656520605b63726174653a3a50616c6c65743a3a626172655f696e7374616e74696174655d602e306574685f7472616e7361637404087478e91219130c6820506572666f726d20616e20457468657265756d2063616c6c2e00b020536565205b6063726174653a3a50616c6c65743a3a6472795f72756e5f6574685f7472616e73616374605d2c75706c6f61645f636f64650c186f726967696e0010636f6465385473746f726167655f6465706f7369745f6c696d6974450625130ce82055706c6f6164206e657720636f646520776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00a420536565205b6063726174653a3a50616c6c65743a3a626172655f75706c6f61645f636f6465605d2e2c6765745f73746f72616765081c6164647265737381030c6b6579042d1314bc205175657279206120676976656e2073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e4c6765745f73746f726167655f7661725f6b6579081c6164647265737381030c6b6579382d1314f8205175657279206120676976656e207661726961626c652d73697a65642073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e2c74726163655f626c6f636b0814626c6f636bcd1118636f6e66696735134913180501205472616365732074686520657865637574696f6e206f6620616e20656e7469726520626c6f636b20616e642072657475726e732063616c6c207472616365732e004101205468697320697320696e74656e64656420746f2062652063616c6c6564207468726f756768206073746174655f63616c6c6020746f207265706c61792074686520626c6f636b2066726f6d207468653820706172656e7420626c6f636b2e00c820536565206574682d727063206064656275675f7472616365426c6f636b42794e756d6265726020666f722075736167652e2074726163655f74780c14626c6f636bcd112074785f696e6465781018636f6e6669673513891318fc205472616365732074686520657865637574696f6e206f662061207370656369666963207472616e73616374696f6e2077697468696e206120626c6f636b2e004101205468697320697320696e74656e64656420746f2062652063616c6c6564207468726f756768206073746174655f63616c6c6020746f207265706c61792074686520626c6f636b2066726f6d207468658c20706172656e74206861736820757020746f20746865207472616e73616374696f6e2e00c020536565206574682d727063206064656275675f74726163655472616e73616374696f6e6020666f722075736167652e2874726163655f63616c6c08087478e91218636f6e66696735138d130cc0204472792072756e20616e642072657475726e20746865207472616365206f662074686520676976656e2063616c6c2e00a420536565206574682d727063206064656275675f747261636543616c6c6020666f722075736167652e30626c6f636b5f617574686f7200051304f8205468652061646472657373206f66207468652076616c696461746f7220746861742070726f6475636564207468652063757272656e7420626c6f636b2e1c6164647265737304286163636f756e745f696400810304cc204765742074686520483136302061646472657373206173736f63696174656420746f2074686973206163636f756e742069645c72756e74696d655f70616c6c6574735f6164647265737300810304f4205468652061646472657373207573656420746f2063616c6c207468652072756e74696d6527732070616c6c65747320646973706174636861626c657310636f6465041c616464726573738103380411012054686520636f6465206174207468652073706563696669656420616464726573732074616b696e67207072652d636f6d70696c657320696e746f206163636f756e742e04bc2054686520415049207573656420746f206472792d72756e20636f6e747261637420696e746572616374696f6e732e310454911300'; diff --git a/packages/types-support/src/metadata/v15/asset-hub-dicle-json.json b/packages/types-support/src/metadata/v15/asset-hub-dicle-json.json new file mode 100644 index 0000000..5e6ba9a --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-dicle-json.json @@ -0,0 +1,9655 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v15": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 743 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 790 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 789 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 793 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + }, + { + "name": "ExtrinsicWeightReclaimed", + "modifier": "Default", + "type": { + "plain": 10 + }, + "fallback": "0x0000", + "docs": [ + " The weight reclaimed for the extrinsic.", + "", + " This information is available until the end of the extrinsic execution.", + " More precisely this information is removed in `note_applied_extrinsic`.", + "", + " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate", + " reduction." + ] + } + ] + }, + "calls": { + "type": 269 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 794, + "value": "0x0700f2052a01000b00204aa9d101020080020265cd1d00010bc026fb7f740102000002010b0068e5cf8b01020020020100000265cd1d00010bc0de5f59ba0102006002010b00204aa9d10102008002010700b864d945020060000265cd1d00000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 797, + "value": "0x000044000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 799, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 800, + "value": "0x2473746174656d696e652473746174656d696e65010000006b650f000000000068dd718d5cc53262d40100000004e70521a0d3d2f801000000d7bdd8a272ca0d6502000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f010000008a8047a53a8277ec0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c010000002609be83ac4468dc0100000012c8e3d4d7e06de001000000de92b8a0426b9bf602000000ea93e3f16f3d696203000000fbc577b9d747efd601000000a2ddb6a58477bf630100000017a6bc0d0062aeb30100000018ef58a3b67ba770010000008c403e5c4a9fd442010000000f00000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 194, + "value": "0x0200", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 804 + }, + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "storage": { + "prefix": "TeyrchainSystem", + "items": [ + { + "name": "UnincludedSegment", + "modifier": "Default", + "type": { + "plain": 805 + }, + "fallback": "0x00", + "docs": [ + " Latest included block descendants the runtime accepted. In other words, these are", + " ancestors of the currently executing block which have not been included in the observed", + " relay-chain state.", + "", + " The segment length is limited by the capacity returned from the [`ConsensusHook`] configured", + " in the pallet." + ] + }, + { + "name": "AggregatedUnincludedSegment", + "modifier": "Optional", + "type": { + "plain": 814 + }, + "fallback": "0x00", + "docs": [ + " Storage field that keeps track of bandwidth used by the unincluded segment along with the", + " latest HRMP watermark. Used for limiting the acceptance of new blocks with", + " respect to relay chain constraints." + ] + }, + { + "name": "PendingValidationCode", + "modifier": "Default", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " In case of a scheduled upgrade, this storage field contains the validation code to be", + " applied.", + "", + " As soon as the relay chain gives us the go-ahead signal, we will overwrite the", + " [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process", + " with the new validation code. This concludes the upgrade process." + ] + }, + { + "name": "NewValidationCode", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " Validation code that is set by the teyrchain and is to be communicated to collator and", + " consequently the relay-chain.", + "", + " This will be cleared in `on_initialize` of each new block if no other pallet already set", + " the value." + ] + }, + { + "name": "ValidationData", + "modifier": "Optional", + "type": { + "plain": 275 + }, + "fallback": "0x00", + "docs": [ + " The [`PersistedValidationData`] set for this block.", + " This value is expected to be set only once per block and it's never stored", + " in the trie." + ] + }, + { + "name": "DidSetValidationCode", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Were the validation data set to notify the relay chain?" + ] + }, + { + "name": "LastRelayChainBlockNumber", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The relay chain block number associated with the last teyrchain block.", + "", + " This is updated in `on_finalize`." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Default", + "type": { + "plain": 815 + }, + "fallback": "0x00", + "docs": [ + " An option which indicates if the relay-chain restricts signalling a validation code upgrade.", + " In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced", + " candidate will be invalid.", + "", + " This storage item is a mirror of the corresponding value for the current teyrchain from the", + " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is", + " set after the inherent." + ] + }, + { + "name": "UpgradeGoAhead", + "modifier": "Default", + "type": { + "plain": 812 + }, + "fallback": "0x00", + "docs": [ + " Optional upgrade go-ahead signal from the relay-chain.", + "", + " This storage item is a mirror of the corresponding value for the current teyrchain from the", + " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is", + " set after the inherent." + ] + }, + { + "name": "RelayStateProof", + "modifier": "Optional", + "type": { + "plain": 277 + }, + "fallback": "0x00", + "docs": [ + " The state proof for the last relay parent block.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "RelevantMessagingState", + "modifier": "Optional", + "type": { + "plain": 817 + }, + "fallback": "0x00", + "docs": [ + " The snapshot of some state related to messaging relevant to the current teyrchain as per", + " the relay parent.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "HostConfiguration", + "modifier": "Optional", + "type": { + "plain": 822 + }, + "fallback": "0x00", + "docs": [ + " The teyrchain host configuration that was obtained from the relay parent.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "LastDmqMqcHead", + "modifier": "Default", + "type": { + "plain": 824 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The last downward message queue chain head we have observed.", + "", + " This value is loaded before and saved after processing inbound downward messages carried", + " by the system inherent." + ] + }, + { + "name": "LastHrmpMqcHeads", + "modifier": "Default", + "type": { + "plain": 825 + }, + "fallback": "0x00", + "docs": [ + " The message queue chain heads we have observed per each channel incoming channel.", + "", + " This value is loaded before and saved after processing inbound downward messages carried", + " by the system inherent." + ] + }, + { + "name": "ProcessedDownwardMessages", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of downward messages processed in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "LastProcessedDownwardMessage", + "modifier": "Optional", + "type": { + "plain": 828 + }, + "fallback": "0x00", + "docs": [ + " The last processed downward message.", + "", + " We need to keep track of this to filter the messages that have been already processed." + ] + }, + { + "name": "HrmpWatermark", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " HRMP watermark that was set in a block." + ] + }, + { + "name": "LastProcessedHrmpMessage", + "modifier": "Optional", + "type": { + "plain": 828 + }, + "fallback": "0x00", + "docs": [ + " The last processed HRMP message.", + "", + " We need to keep track of this to filter the messages that have been already processed." + ] + }, + { + "name": "HrmpOutboundMessages", + "modifier": "Default", + "type": { + "plain": 829 + }, + "fallback": "0x00", + "docs": [ + " HRMP messages that were sent in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "UpwardMessages", + "modifier": "Default", + "type": { + "plain": 272 + }, + "fallback": "0x00", + "docs": [ + " Upward messages that were sent in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "PendingUpwardMessages", + "modifier": "Default", + "type": { + "plain": 272 + }, + "fallback": "0x00", + "docs": [ + " Upward messages that are still pending and not yet send to the relay chain." + ] + }, + { + "name": "UpwardDeliveryFeeFactor", + "modifier": "Default", + "type": { + "plain": 184 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by for UMP." + ] + }, + { + "name": "AnnouncedHrmpMessagesPerCandidate", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of HRMP messages we observed in `on_initialize` and thus used that number for", + " announcing the weight of `on_initialize` and `on_finalize`." + ] + }, + { + "name": "ReservedXcmpWeightOverride", + "modifier": "Optional", + "type": { + "plain": 10 + }, + "fallback": "0x00", + "docs": [ + " The weight we reserve at the beginning of the block for processing XCMP messages. This", + " overrides the amount set in the Config trait." + ] + }, + { + "name": "ReservedDmpWeightOverride", + "modifier": "Optional", + "type": { + "plain": 10 + }, + "fallback": "0x00", + "docs": [ + " The weight we reserve at the beginning of the block for processing DMP messages. This", + " overrides the amount set in the Config trait." + ] + }, + { + "name": "CustomValidationHeadData", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " A custom head data that should be returned as result of `validate_block`.", + "", + " See `Pallet::set_custom_validation_head_data` for more information." + ] + } + ] + }, + "calls": { + "type": 273 + }, + "events": { + "type": 33 + }, + "constants": [ + { + "name": "SelfParaId", + "type": 187, + "value": "0xe8030000", + "docs": [ + " Returns the teyrchain ID we are running with." + ] + } + ], + "errors": { + "type": 831 + }, + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 294 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0x0000000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 3, + "docs": [] + }, + { + "name": "TeyrchainInfo", + "storage": { + "prefix": "TeyrchainInfo", + "items": [ + { + "name": "TeyrchainId", + "modifier": "Default", + "type": { + "plain": 187 + }, + "fallback": "0x64000000", + "docs": [] + } + ] + }, + "calls": { + "type": 295 + }, + "events": null, + "constants": [], + "errors": null, + "index": 4, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "storage": { + "prefix": "MultiBlockMigrations", + "items": [ + { + "name": "Cursor", + "modifier": "Optional", + "type": { + "plain": 298 + }, + "fallback": "0x00", + "docs": [ + " The currently active migration to run and its cursor.", + "", + " `None` indicates that no migration is running." + ] + }, + { + "name": "Historic", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 205, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [ + " Set of all successfully executed migrations.", + "", + " This is used as blacklist, to not re-execute migrations that have not been removed from the", + " codebase yet. Governance can regularly clear this out via `clear_historic`." + ] + } + ] + }, + "calls": { + "type": 296 + }, + "events": { + "type": 35 + }, + "constants": [ + { + "name": "CursorMaxLen", + "type": 4, + "value": "0x00000100", + "docs": [ + " The maximal length of an encoded cursor.", + "", + " A good default needs to selected such that no migration will ever have a cursor with MEL", + " above this limit. This is statically checked in `integrity_test`." + ] + }, + { + "name": "IdentifierMaxLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximal length of an encoded identifier.", + "", + " A good default needs to selected such that no migration will ever have an identifier", + " with MEL above this limit. This is statically checked in `integrity_test`." + ] + } + ], + "errors": { + "type": 832 + }, + "index": 5, + "docs": [] + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 833 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 835 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 839, + "value": 840 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 304 + }, + "events": { + "type": 37 + }, + "constants": [], + "errors": { + "type": 841 + }, + "index": 6, + "docs": [] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number at which the agenda began incomplete execution." + ] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 842 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 39, + "value": 671 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 305 + }, + "events": { + "type": 38 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740102000002", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 846 + }, + "index": 7, + "docs": [] + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 43, + "value": 67 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ] + } + ] + }, + "calls": { + "type": 307 + }, + "events": { + "type": 42 + }, + "constants": [], + "errors": null, + "index": 8, + "docs": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 847 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 848 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 851 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 318 + }, + "events": { + "type": 78 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0xd5dc3200000000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x01000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 863 + }, + "index": 10, + "docs": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 184 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 864 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 81 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 11, + "docs": [] + }, + { + "name": "AssetTxPayment", + "storage": null, + "calls": null, + "events": { + "type": 82 + }, + "constants": [], + "errors": null, + "index": 13, + "docs": [] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 639 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 865 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 322 + }, + "events": { + "type": 101 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0xd5dc3200000000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 866 + }, + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 103, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 103, + "value": 328 + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 103, + "value": 330 + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 0, + "value": 103 + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": { + "type": 324 + }, + "events": { + "type": 102 + }, + "constants": [ + { + "name": "Prefix", + "type": 14, + "value": "0x7c506179204b534d7320746f20746865204b7573616d61206163636f756e743a", + "docs": [] + } + ], + "errors": { + "type": 867 + }, + "index": 15, + "docs": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 20, + "docs": [] + }, + { + "name": "CollatorSelection", + "storage": { + "prefix": "CollatorSelection", + "items": [ + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 868 + }, + "fallback": "0x00", + "docs": [ + " The invulnerable, permissioned collators. This list must be sorted." + ] + }, + { + "name": "CandidateList", + "modifier": "Default", + "type": { + "plain": 869 + }, + "fallback": "0x00", + "docs": [ + " The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be", + " mutually exclusive.", + "", + " This list is sorted in ascending order by deposit and when the deposits are equal, the least", + " recently updated is considered greater." + ] + }, + { + "name": "LastAuthoredBlock", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Last block authored by collator." + ] + }, + { + "name": "DesiredCandidates", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Desired number of candidates.", + "", + " This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct." + ] + }, + { + "name": "CandidacyBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Fixed amount to deposit to become a collator.", + "", + " When a collator calls `leave_intent` they immediately receive the deposit back." + ] + } + ] + }, + "calls": { + "type": 331 + }, + "events": { + "type": 104 + }, + "constants": [ + { + "name": "PotId", + "type": 872, + "value": "0x506f745374616b65", + "docs": [ + " Account Identifier from which the internal Pot is generated." + ] + }, + { + "name": "MaxCandidates", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of candidates that we should have.", + "", + " This does not take into account the invulnerables." + ] + }, + { + "name": "MinEligibleCollators", + "type": 4, + "value": "0x04000000", + "docs": [ + " Minimum number eligible collators. Should always be greater than zero. This includes", + " Invulnerable collators. This ensures that there will always be one collator who can", + " produce a block." + ] + }, + { + "name": "MaxInvulnerables", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of invulnerables." + ] + }, + { + "name": "KickThreshold", + "type": 4, + "value": "0x100e0000", + "docs": [] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c506f745374616b650000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 873 + }, + "index": 21, + "docs": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 105 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 874 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 876 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 333 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 879, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 332 + }, + "events": { + "type": 106 + }, + "constants": [ + { + "name": "KeyDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The amount to be held when setting keys." + ] + } + ], + "errors": { + "type": 881 + }, + "index": 22, + "docs": [] + }, + { + "name": "Aura", + "storage": { + "prefix": "Aura", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 882 + }, + "fallback": "0x00", + "docs": [ + " The current authority set." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 884 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current slot of this block.", + "", + " This will be set in `on_initialize`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "SlotDuration", + "type": 12, + "value": "0xe02e000000000000", + "docs": [ + " The slot duration Aura should run with, expressed in milliseconds.", + " The effective value of this type should not change while the chain is running.", + "", + " For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const." + ] + } + ], + "errors": null, + "index": 23, + "docs": [] + }, + { + "name": "AuraExt", + "storage": { + "prefix": "AuraExt", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 882 + }, + "fallback": "0x00", + "docs": [ + " Serves as cache for the authorities.", + "", + " The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session,", + " but we require the old authorities to verify the seal when validating a PoV. This will", + " always be updated to the latest AuRa authorities in `on_finalize`." + ] + }, + { + "name": "RelaySlotInfo", + "modifier": "Optional", + "type": { + "plain": 885 + }, + "fallback": "0x00", + "docs": [ + " Current relay chain slot paired with a number of authored blocks.", + "", + " This is updated in [`FixedVelocityConsensusHook::on_state_proof`] with the current relay", + " chain slot as provided by the relay chain state proof." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 24, + "docs": [] + }, + { + "name": "XcmpQueue", + "storage": { + "prefix": "XcmpQueue", + "items": [ + { + "name": "InboundXcmpSuspended", + "modifier": "Default", + "type": { + "plain": 886 + }, + "fallback": "0x00", + "docs": [ + " The suspended inbound XCMP channels. All others are not suspended.", + "", + " This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block", + " to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached", + " within the block and therefore only included once in the proof size.", + "", + " NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof", + " will be smaller." + ] + }, + { + "name": "OutboundXcmpStatus", + "modifier": "Default", + "type": { + "plain": 889 + }, + "fallback": "0x00", + "docs": [ + " The non-empty XCMP channels in order of becoming non-empty, and the index of the first", + " and last outbound message. If the two indices are equal, then it indicates an empty", + " queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater", + " than 65535 items. Queue indices for normal messages begin at one; zero is reserved in", + " case of the need to send a high-priority signal message this block.", + " The bool is true if there is a signal message waiting to be sent." + ] + }, + { + "name": "OutboundXcmpMessages", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 893, + "value": 894 + } + }, + "fallback": "0x00", + "docs": [ + " The messages outbound in a given XCMP channel." + ] + }, + { + "name": "SignalMessages", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 187, + "value": 894 + } + }, + "fallback": "0x00", + "docs": [ + " Any signal messages waiting to be sent." + ] + }, + { + "name": "QueueConfig", + "modifier": "Default", + "type": { + "plain": 895 + }, + "fallback": "0x200000003000000008000000", + "docs": [ + " The configuration which controls the dynamics of the outbound queue." + ] + }, + { + "name": "QueueSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not the XCMP queue is suspended from executing incoming XCMs or not." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 187, + "value": 184 + } + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": { + "type": 335 + }, + "events": { + "type": 107 + }, + "constants": [ + { + "name": "MaxInboundSuspended", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The maximum number of inbound XCMP channels that can be suspended simultaneously.", + "", + " Any further channel suspensions will fail and messages may get dropped without further", + " notice. Choosing a high value (1000) is okay; the trade-off that is described in", + " [`InboundXcmpSuspended`] still applies at that scale." + ] + }, + { + "name": "MaxActiveOutboundChannels", + "type": 4, + "value": "0x80000000", + "docs": [ + " Maximal number of outbound XCMP channels that can have messages queued at the same time.", + "", + " If this is reached, then no further messages can be sent to channels that do not yet", + " have a message queued. This should be set to the expected maximum of outbound channels", + " which is determined by [`Self::ChannelInfo`]. It is important to set this large enough,", + " since otherwise the congestion control protocol will not work as intended and messages", + " may be dropped. This value increases the PoV and should therefore not be picked too", + " high. Governance needs to pay attention to not open more channels than this value." + ] + }, + { + "name": "MaxPageSize", + "type": 4, + "value": "0x009c0100", + "docs": [ + " The maximal page size for HRMP message pages.", + "", + " A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case", + " benchmarking. The limit for the size of a message is slightly below this, since some", + " overhead is incurred for encoding the format." + ] + } + ], + "errors": { + "type": 896 + }, + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "storage": { + "prefix": "PezkuwiXcm", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 897 + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 902, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 902, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 902, + "value": 903 + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": 904 + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": 907 + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 908, + "value": 909 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 913 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Global suspension state of the XCM executor." + ] + }, + { + "name": "ShouldRecordXcm", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not incoming XCMs (both executed locally and received) should be recorded.", + " Only one XCM program will be recorded at a time.", + " This is meant to be used in runtime APIs, and it's advised it stays false", + " for all other use cases, so as to not degrade regular performance.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "RecordedXcm", + "modifier": "Optional", + "type": { + "plain": 112 + }, + "fallback": "0x00", + "docs": [ + " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally", + " will be stored here.", + " Runtime APIs can fetch the XCM that was executed by accessing this value.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "AuthorizedAliases", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 180, + "value": 916 + } + }, + "fallback": "0x00", + "docs": [ + " Map of authorized aliasers of local origins. Each local location can authorize a list of", + " other locations to alias into it. Each aliaser is only valid until its inner `expiry`", + " block number." + ] + } + ] + }, + "calls": { + "type": 336 + }, + "events": { + "type": 108 + }, + "constants": [ + { + "name": "UniversalLocation", + "type": 84, + "value": "0x02090300a10f", + "docs": [ + " This chain's Universal Location." + ] + }, + { + "name": "AdvertisedXcmVersion", + "type": 4, + "value": "0x05000000", + "docs": [ + " The latest supported version that we advertise. Generally just set it to", + " `pallet_xcm::CurrentXcmVersion`." + ] + }, + { + "name": "MaxLockers", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of local XCM locks that a single account may have." + ] + }, + { + "name": "MaxRemoteLockConsumers", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of consumers a single remote lock may have." + ] + } + ], + "errors": { + "type": 922 + }, + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "storage": null, + "calls": { + "type": 380 + }, + "events": { + "type": 182 + }, + "constants": [], + "errors": null, + "index": 32, + "docs": [] + }, + { + "name": "ToPezkuwiXcmRouter", + "storage": { + "prefix": "ToPezkuwiXcmRouter", + "items": [ + { + "name": "Bridge", + "modifier": "Default", + "type": { + "plain": 924 + }, + "fallback": "0x000064a7b3b6e00d000000000000000000", + "docs": [ + " Bridge that we are using.", + "", + " **bridges-v1** assumptions: all outbound messages through this router are using single lane", + " and to single remote consensus. If there is some other remote consensus that uses the same", + " bridge hub, the separate pallet instance shall be used, In `v2` we'll have all required", + " primitives (lane-id aka bridge-id, derived from XCM locations) to support multiple bridges", + " by the same pallet instance." + ] + } + ] + }, + "calls": { + "type": 381 + }, + "events": { + "type": 183 + }, + "constants": [], + "errors": null, + "index": 34, + "docs": [] + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 186, + "value": 925 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 186 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 928, + "value": 929 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 382 + }, + "events": { + "type": 185 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 77, + "value": "0x01070010a5d4e802004001", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 77, + "value": "0x01070010a5d4e802004001", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 931 + }, + "index": 35, + "docs": [] + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 383 + }, + "events": { + "type": 189 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 932 + }, + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 933, + "value": 934 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 390 + }, + "events": { + "type": 190 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0xdcd91c8f010000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0xa0c2a200000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 936 + }, + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 937 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 941 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 392 + }, + "events": { + "type": 192 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0xecb5288e010000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0xb5d8a700000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x9466518e010000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x6ab14f01000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 945 + }, + "index": 42, + "docs": [] + }, + { + "name": "RemoteProxyRelayChain", + "storage": { + "prefix": "RemoteProxyRelayChain", + "items": [ + { + "name": "BlockToRoot", + "modifier": "Default", + "type": { + "plain": 946 + }, + "fallback": "0x00", + "docs": [ + " Stores the last [`Config::MaxStorageRootsToKeep`] block to storage root mappings of the", + " target chain." + ] + } + ] + }, + "calls": { + "type": 394 + }, + "events": null, + "constants": [], + "errors": { + "type": 947 + }, + "index": 43, + "docs": [] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 948 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 396 + }, + "events": { + "type": 196 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x9466518e010000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 949 + }, + "index": 44, + "docs": [] + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 950 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 952, + "value": 953 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 956, + "value": 957 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 958 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 397 + }, + "events": { + "type": 197 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x3aa62391010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0xf4a3ae8d010000000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x3820b78e010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x15160500000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0xd5dc3200000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 960 + }, + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "items": [ + { + "name": "Class", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 961 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 962, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "ClassAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 448, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 963 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 964 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 965 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 966, + "value": 967 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 968 + } + }, + "fallback": "0x00", + "docs": [ + " Price of an asset instance." + ] + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the number of items a collection might have." + ] + } + ] + }, + "calls": { + "type": 398 + }, + "events": { + "type": 198 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00ca9a3b000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x3963ed8f010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0xa4425d8d010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x15160500000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "errors": { + "type": 969 + }, + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "items": [ + { + "name": "Collection", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 970 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 962, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "CollectionAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 448, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "CollectionRoleOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 952, + "value": 971 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ] + }, + { + "name": "Item", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 973 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 979 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 980 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 982, + "value": 983 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 968 + } + }, + "fallback": "0x00", + "docs": [ + " A price of an item." + ] + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 985 + } + }, + "fallback": "0x00", + "docs": [ + " Item attribute approvals." + ] + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `CollectionId` that is going to be used for the next collection.", + " This gets incremented whenever a new collection is created." + ] + }, + { + "name": "PendingSwapOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 987 + } + }, + "fallback": "0x00", + "docs": [ + " Handles all the pending swaps." + ] + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 403 + } + }, + "fallback": "0x00", + "docs": [ + " Config of a collection." + ] + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 39, + "value": 413 + } + }, + "fallback": "0x00", + "docs": [ + " Config of an item." + ] + } + ] + }, + "calls": { + "type": 402 + }, + "events": { + "type": 204 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x4e79f28f010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x33fc030a000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x8523fe27000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0xaa86bc27000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x15160500000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of an attribute value." + ] + }, + { + "name": "ApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum approvals an item could have." + ] + }, + { + "name": "ItemAttributesApprovalsLimit", + "type": 4, + "value": "0x1e000000", + "docs": [ + " The maximum attributes approvals an item could have." + ] + }, + { + "name": "MaxTips", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of tips a user could send." + ] + }, + { + "name": "MaxDeadlineDuration", + "type": 4, + "value": "0x001a4f00", + "docs": [ + " The max duration in blocks for deadlines." + ] + }, + { + "name": "MaxAttributesPerCall", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of attributes a user could set per call." + ] + }, + { + "name": "Features", + "type": 988, + "value": "0x0000000000000000", + "docs": [ + " Disables some of pallet's features." + ] + } + ], + "errors": { + "type": 990 + }, + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "storage": { + "prefix": "ForeignAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 83, + "value": 950 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 991, + "value": 953 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 992, + "value": 957 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 83, + "value": 993 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 83 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 422 + }, + "events": { + "type": 211 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x3aa62391010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0xf4a3ae8d010000000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x3820b78e010000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x15160500000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0xd5dc3200000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 995 + }, + "index": 53, + "docs": [] + }, + { + "name": "NftFractionalization", + "storage": { + "prefix": "NftFractionalization", + "items": [ + { + "name": "NftToAsset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 39, + "value": 996 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the corresponding NFT ID, asset ID and amount minted." + ] + } + ] + }, + "calls": { + "type": 423 + }, + "events": { + "type": 212 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x3aa62391010000000000000000000000", + "docs": [ + " The deposit paid by the user locking an NFT. The deposit is returned to the original NFT", + " owner when the asset is unified and the NFT is unlocked." + ] + }, + { + "name": "PalletId", + "type": 872, + "value": "0x6672616374696f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + }, + { + "name": "NewAssetSymbol", + "type": 959, + "value": "0x1046524143", + "docs": [ + " The newly created asset's symbol." + ] + }, + { + "name": "NewAssetName", + "type": 959, + "value": "0x1046726163", + "docs": [ + " The newly created asset's name." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 997 + }, + "index": 54, + "docs": [] + }, + { + "name": "PoolAssets", + "storage": { + "prefix": "PoolAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 950 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 952, + "value": 953 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 956, + "value": 957 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 998 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 424 + }, + "events": { + "type": 213 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0xf4a3ae8d010000000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0xd5dc3200000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 1000 + }, + "index": 55, + "docs": [] + }, + { + "name": "AssetConversion", + "storage": { + "prefix": "AssetConversion", + "items": [ + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 215, + "value": 1001 + } + }, + "fallback": "0x00", + "docs": [ + " Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially", + " created rather than people sending tokens directly to a pool's public account." + ] + }, + { + "name": "NextPoolAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `PoolAssetId` that is going to be used for the next lp token.", + " This gets incremented whenever a new lp pool is created." + ] + } + ] + }, + "calls": { + "type": 425 + }, + "events": { + "type": 214 + }, + "constants": [ + { + "name": "LPFee", + "type": 4, + "value": "0x03000000", + "docs": [ + " A % the liquidity providers will take of every swap. Represents 10ths of a percent." + ] + }, + { + "name": "PoolSetupFee", + "type": 6, + "value": "0x3241951e030000000000000000000000", + "docs": [ + " A one-time fee to setup the pool." + ] + }, + { + "name": "PoolSetupFeeAsset", + "type": 83, + "value": "0x0100", + "docs": [ + " Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]." + ] + }, + { + "name": "LiquidityWithdrawalFee", + "type": 71, + "value": "0x00000000", + "docs": [ + " A fee to withdraw the liquidity." + ] + }, + { + "name": "MintMinLiquidity", + "type": 6, + "value": "0x64000000000000000000000000000000", + "docs": [ + " The minimum LP token amount that could be minted. Ameliorates rounding errors." + ] + }, + { + "name": "MaxSwapPathLength", + "type": 4, + "value": "0x03000000", + "docs": [ + " The max number of hops in a swap." + ] + }, + { + "name": "PalletId", + "type": 872, + "value": "0x70792f6173636f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + } + ], + "errors": { + "type": 1002 + }, + "index": 56, + "docs": [] + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1003 + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 753, + "value": 1004 + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "type": 427 + }, + "events": { + "type": 218 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "type": 6, + "value": "0x04821bce260000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": 6, + "value": "0x9a2669e1030000000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": 4, + "value": "0x09000000", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ] + }, + { + "name": "RecoveryDeposit", + "type": 6, + "value": "0x04821bce260000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": { + "type": 1005 + }, + "index": 57, + "docs": [] + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "plain": 222 + }, + "fallback": "0x00", + "docs": [ + " The max number of members for the society at one time." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved rank 0 members in the society." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": 13 + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1006 + } + }, + "fallback": "0x00", + "docs": [ + " The current members and their rank. Doesn't include `SuspendedMembers`." + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1009 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Information regarding rank-0 payouts, past and future." + ] + }, + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" + ] + }, + { + "name": "MemberByIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The current items in `Members` keyed by their unique index. Keys are densely populated", + " `0..MemberCount` (does not include `MemberCount`)." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1006 + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members, with their old membership record." + ] + }, + { + "name": "RoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of rounds which have passed." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": 1011 + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Candidates", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 1015 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Skeptic", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current skeptic." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 753, + "value": 1017 + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "VoteClearCursor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1018 + } + }, + "fallback": "0x00", + "docs": [ + " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." + ] + }, + { + "name": "NextHead", + "modifier": "Optional", + "type": { + "plain": 1019 + }, + "fallback": "0x00", + "docs": [ + " At the end of the claim period, this contains the most recently approved members (along with", + " their bid and round ID) who is from the most recent round with the lowest bid. They will", + " become the new `Head`." + ] + }, + { + "name": "ChallengeRoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of challenge rounds there have been. Used to identify stale DefenderVotes." + ] + }, + { + "name": "Defending", + "modifier": "Optional", + "type": { + "plain": 1020 + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged, along with a running tally of votes." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 1017 + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender, keyed by challenge round." + ] + }, + { + "name": "NextIntakeAt", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Next intake rotation scheduled with [Config::BlockNumberProvider]." + ] + }, + { + "name": "NextChallengeAt", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Next challenge rotation scheduled with [Config::BlockNumberProvider]." + ] + } + ] + }, + "calls": { + "type": 428 + }, + "events": { + "type": 221 + }, + "constants": [ + { + "name": "PalletId", + "type": 872, + "value": "0x70792f736f636965", + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "GraceStrikes", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of strikes before a member gets funds slashed." + ] + }, + { + "name": "PeriodSpend", + "type": 6, + "value": "0x040abf82280f00000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x40190100", + "docs": [ + " The number of [Config::BlockNumberProvider] blocks on which new candidates should be", + " voted on. Together with", + " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." + ] + }, + { + "name": "ClaimPeriod", + "type": 4, + "value": "0x80700000", + "docs": [ + " The number of [Config::BlockNumberProvider] blocks on which new candidates can claim", + " their membership and be the named head." + ] + }, + { + "name": "MaxLockDuration", + "type": 4, + "value": "0x004eed00", + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The number of [Config::BlockNumberProvider] blocks between membership challenges." + ] + }, + { + "name": "MaxPayouts", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of payouts a member may have waiting unclaimed." + ] + }, + { + "name": "MaxBids", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of bids at once." + ] + } + ], + "errors": { + "type": 1021 + }, + "index": 58, + "docs": [] + }, + { + "name": "Revive", + "storage": { + "prefix": "Revive", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 1022 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code." + ] + }, + { + "name": "CodeInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 1023 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code info." + ] + }, + { + "name": "AccountInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 224, + "value": 1024 + } + }, + "fallback": "0x00", + "docs": [ + " The data associated to a contract or externally owned account." + ] + }, + { + "name": "ImmutableDataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 224, + "value": 1027 + } + }, + "fallback": "0x00", + "docs": [ + " The immutable data associated with a given account." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 199 + } + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_idle`." + ] + }, + { + "name": "DeletionQueueCounter", + "modifier": "Default", + "type": { + "plain": 1028 + }, + "fallback": "0x0000000000000000", + "docs": [ + " A pair of monotonic counters used to track the latest contract marked for deletion", + " and the latest deleted contract in queue." + ] + }, + { + "name": "OriginalAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 224, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map a Ethereum address to its original `AccountId32`.", + "", + " When deriving a `H160` from an `AccountId32` we use a hash function. In order to", + " reconstruct the original account we need to store the reverse mapping here.", + " Register your `AccountId32` using [`Pallet::map_account`] in order to", + " use it with this pallet." + ] + } + ] + }, + "calls": { + "type": 429 + }, + "events": { + "type": 223 + }, + "constants": [ + { + "name": "DepositPerByte", + "type": 6, + "value": "0x15160500000000000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " It is safe to change this value on a live chain as all refunds are pro rata." + ] + }, + { + "name": "DepositPerItem", + "type": 6, + "value": "0xa4425d8d010000000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " It is safe to change this value on a live chain as all refunds are pro rata." + ] + }, + { + "name": "CodeHashLockupDepositPercent", + "type": 233, + "value": "0x00a3e111", + "docs": [ + " The percentage of the storage deposit that should be held for using a code hash.", + " Instantiating a contract, protects the code from being removed. In order to prevent", + " abuse these actions are protected with a percentage of the code deposit." + ] + }, + { + "name": "UnsafeUnstableInterface", + "type": 8, + "value": "0x00", + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ] + }, + { + "name": "ChainId", + "type": 12, + "value": "0x421b0f1900000000", + "docs": [ + " The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID.", + "", + " This is a unique identifier assigned to each blockchain network,", + " preventing replay attacks." + ] + }, + { + "name": "NativeToEthRatio", + "type": 4, + "value": "0x40420f00", + "docs": [ + " The ratio between the decimal representation of the native token and the ETH token." + ] + } + ], + "errors": { + "type": 1029 + }, + "index": 60, + "docs": [] + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 435 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 433 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 434 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "type": 432 + }, + "events": { + "type": 226 + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "errors": { + "type": 228 + }, + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 233 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 616 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 622 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1030 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1031 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 205 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 237 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 438 + }, + "events": { + "type": 229 + }, + "constants": [ + { + "name": "PalletId", + "type": 872, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 1037 + }, + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1039 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 1040 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + }, + { + "name": "NextNodeAutoRebagged", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Pointer that remembers the next node that will be auto-rebagged.", + " When `None`, the next scan will start from the list head again." + ] + }, + { + "name": "Lock", + "modifier": "Optional", + "type": { + "plain": 41 + }, + "fallback": "0x00", + "docs": [ + " Lock all updates to this pallet.", + "", + " If any nodes needs updating, removal or addition due to a temporary lock, the", + " [`Call::rebag`] can be used." + ] + } + ] + }, + "calls": { + "type": 444 + }, + "events": { + "type": 239 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 1041, + "value": "0x210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + }, + { + "name": "MaxAutoRebagPerBlock", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of accounts that may be re-bagged automatically in `on_idle`.", + "", + " A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables", + " the feature." + ] + } + ], + "errors": { + "type": 1042 + }, + "index": 82, + "docs": [] + }, + { + "name": "DelegatedStaking", + "storage": { + "prefix": "DelegatedStaking", + "items": [ + { + "name": "Delegators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1044 + } + }, + "fallback": "0x00", + "docs": [ + " Map of Delegators to their `Delegation`.", + "", + " Implementation note: We are not using a double map with `delegator` and `agent` account", + " as keys since we want to restrict delegators to delegate only to one account at a time." + ] + }, + { + "name": "CounterForDelegators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Agents", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1045 + } + }, + "fallback": "0x00", + "docs": [ + " Map of `Agent` to their `Ledger`." + ] + }, + { + "name": "CounterForAgents", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + } + ] + }, + "calls": null, + "events": { + "type": 240 + }, + "constants": [ + { + "name": "PalletId", + "type": 872, + "value": "0x70792f646c73746b", + "docs": [ + " Injected identifier for the pallet." + ] + }, + { + "name": "SlashRewardFraction", + "type": 233, + "value": "0x80969800", + "docs": [ + " Fraction of the slash that is rewarded to the caller of pending slash to the agent." + ] + } + ], + "errors": { + "type": 1046 + }, + "index": 83, + "docs": [] + }, + { + "name": "StakingRcClient", + "storage": { + "prefix": "StakingRcClient", + "items": [ + { + "name": "IncompleteSessionReport", + "modifier": "Optional", + "type": { + "plain": 446 + }, + "fallback": "0x00", + "docs": [ + " An incomplete incoming session report that we have not acted upon yet." + ] + }, + { + "name": "LastSessionReportEndingIndex", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The last session report's `end_index` that we have acted upon.", + "", + " This allows this pallet to ensure a sequentially increasing sequence of session reports", + " passed to staking.", + "", + " Note that with the XCM being the backbone of communication, we have a guarantee on the", + " ordering of messages. As long as the RC sends session reports in order, we _eventually_", + " receive them in the same correct order as well." + ] + }, + { + "name": "OutgoingValidatorSet", + "modifier": "Optional", + "type": { + "plain": 1047 + }, + "fallback": "0x00", + "docs": [ + " A validator set that is outgoing, and should be sent.", + "", + " This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent,", + " or the second value reaches zero, at which point we drop it." + ] + } + ] + }, + "calls": { + "type": 445 + }, + "events": { + "type": 241 + }, + "constants": [], + "errors": null, + "index": 84, + "docs": [] + }, + { + "name": "MultiBlockElection", + "storage": { + "prefix": "MultiBlockElection", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 246 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round." + ] + }, + { + "name": "PagedVoterSnapshot", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 1049 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated voter snapshot. At most [`T::Pages`] keys will exist." + ] + }, + { + "name": "PagedVoterSnapshotHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Same as [`PagedVoterSnapshot`], but it will store the hash of the snapshot.", + "", + " The hash is generated using [`frame_system::Config::Hashing`]." + ] + }, + { + "name": "PagedTargetSnapshot", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 1053 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated target snapshot.", + "", + " For the time being, since we assume one pages of targets, at most ONE key will exist." + ] + }, + { + "name": "PagedTargetSnapshotHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Same as [`PagedTargetSnapshot`], but it will store the hash of the snapshot.", + "", + " The hash is generated using [`frame_system::Config::Hashing`]." + ] + } + ] + }, + "calls": { + "type": 452 + }, + "events": { + "type": 245 + }, + "constants": [ + { + "name": "UnsignedPhase", + "type": 4, + "value": "0x32000000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": 4, + "value": "0x32000000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "SignedValidationPhase", + "type": 4, + "value": "0x00010000", + "docs": [ + " Duration of the singed validation phase.", + "", + " The duration of this should not be less than `T::Pages`, and there is no point in it", + " being more than `SignedPhase::MaxSubmission::get() * T::Pages`. TODO: integrity test for", + " it." + ] + }, + { + "name": "VoterSnapshotPerBlock", + "type": 4, + "value": "0x0e030000", + "docs": [ + " The number of snapshot voters to fetch per block." + ] + }, + { + "name": "TargetSnapshotPerBlock", + "type": 4, + "value": "0xc4090000", + "docs": [ + " The number of snapshot targets to fetch per block." + ] + }, + { + "name": "Pages", + "type": 4, + "value": "0x10000000", + "docs": [ + " The number of pages.", + "", + " The snapshot is created with this many keys in the storage map.", + "", + " The solutions may contain at MOST this many pages, but less pages are acceptable as", + " well." + ] + } + ], + "errors": { + "type": 1054 + }, + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionVerifier", + "storage": { + "prefix": "MultiBlockElectionVerifier", + "items": [ + { + "name": "QueuedSolutionX", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 454 + } + }, + "fallback": "0x00", + "docs": [ + " The `X` variant of the current queued solution. Might be the valid one or not.", + "", + " The two variants of this storage item is to avoid the need of copying. Recall that once a", + " `VerifyingSolution` is being processed, it needs to write its partial supports *somewhere*.", + " Writing theses supports on top of a *good* queued supports is wrong, since we might bail.", + " Writing them to a bugger and copying at the ned is slightly better, but expensive. This flag", + " system is best of both worlds." + ] + }, + { + "name": "QueuedSolutionY", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 454 + } + }, + "fallback": "0x00", + "docs": [ + " The `Y` variant of the current queued solution. Might be the valid one or not." + ] + }, + { + "name": "QueuedValidVariant", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1055 + } + }, + "fallback": "0x01", + "docs": [ + " Pointer to the variant of [`QueuedSolutionX`] or [`QueuedSolutionY`] that is currently", + " valid." + ] + }, + { + "name": "QueuedSolutionBackings", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 1056 + } + }, + "fallback": "0x00", + "docs": [ + " The `(amount, count)` of backings, divided per page.", + "", + " This is stored because in the last block of verification we need them to compute the score,", + " and check `MaxBackersPerWinnerFinal`.", + "", + " This can only ever live for the invalid variant of the solution. Once it is valid, we don't", + " need this information anymore; the score is already computed once in", + " [`QueuedSolutionScore`], and the backing counts are checked." + ] + }, + { + "name": "QueuedSolutionScore", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 250 + } + }, + "fallback": "0x00", + "docs": [ + " The score of the valid variant of [`QueuedSolution`].", + "", + " This only ever lives for the `valid` variant." + ] + }, + { + "name": "MinimumScore", + "modifier": "Optional", + "type": { + "plain": 250 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each solution must attain in order to be considered feasible." + ] + }, + { + "name": "StatusStorage", + "modifier": "Default", + "type": { + "plain": 1060 + }, + "fallback": "0x01", + "docs": [ + " Storage item for [`Status`]." + ] + } + ] + }, + "calls": { + "type": 462 + }, + "events": { + "type": 247 + }, + "constants": [ + { + "name": "SolutionImprovementThreshold", + "type": 233, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\"." + ] + }, + { + "name": "MaxBackersPerWinnerFinal", + "type": 4, + "value": "0xd4300000", + "docs": [ + " Maximum number of backers, per winner, among all pages of an election.", + "", + " This can only be checked at the very final step of verification.", + "", + " NOTE: at the moment, we don't check this, and it is in place for future compatibility." + ] + }, + { + "name": "MaxBackersPerWinner", + "type": 4, + "value": "0x0e030000", + "docs": [ + " Maximum number of backers, per winner, per page." + ] + }, + { + "name": "MaxWinnersPerPage", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of supports (aka. winners/validators/targets) that can be represented in", + " a page of results." + ] + } + ], + "errors": null, + "index": 86, + "docs": [] + }, + { + "name": "MultiBlockElectionUnsigned", + "storage": null, + "calls": { + "type": 463 + }, + "events": null, + "constants": [], + "errors": null, + "index": 87, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "storage": { + "prefix": "MultiBlockElectionSigned", + "items": [ + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 1061 + }, + "fallback": "0x00", + "docs": [ + " Accounts whitelisted by governance to always submit their solutions.", + "", + " They are different in that:", + "", + " * They always pay a fixed deposit for submission, specified by", + " [`Config::InvulnerableDeposit`]. They pay no page deposit.", + " * If _ejected_ by better solution from [`SortedScores`], they will get their full deposit", + " back.", + " * They always get their tx-fee back even if they are _discarded_." + ] + }, + { + "name": "SortedScores", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1062 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "SubmissionStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 1065, + "value": 466 + } + }, + "fallback": "0x00", + "docs": [ + " Triple map from (round, account, page) to a solution page." + ] + }, + { + "name": "SubmissionMetadataStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 1066 + } + }, + "fallback": "0x00", + "docs": [ + " Map from account to the metadata of their submission.", + "", + " invariant: for any Key1 of type `AccountId` in [`Submissions`], this storage map also has a", + " value." + ] + } + ] + }, + "calls": { + "type": 541 + }, + "events": { + "type": 252 + }, + "constants": [], + "errors": { + "type": 1069 + }, + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 868 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 233 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 1070 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 254 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 255 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1071 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current planned era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 1072 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to what is RC's session pallet." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 1073 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 1074 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `Eras`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 1065, + "value": 1075 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `Eras`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 1079 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 255 + } + }, + "fallback": "0x0000", + "docs": [ + " Exposure of validator at era with the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1080 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 257 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 545 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 233 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "OffenceQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 1083 + } + }, + "fallback": "0x00", + "docs": [ + " Stores reported offences in a queue until they are processed in subsequent blocks.", + "", + " Each offence is recorded under the corresponding era index and the offending validator's", + " account. If an offence spans multiple pages, only one page is processed at a time. Offences", + " are handled sequentially, with their associated slashes computed and stored in", + " `UnappliedSlashes`. These slashes are then applied in a future era as determined by", + " `SlashDeferDuration`.", + "", + " Any offences tied to an era older than `BondingDuration` are automatically dropped.", + " Processing always prioritizes the oldest era first." + ] + }, + { + "name": "OffenceQueueEras", + "modifier": "Optional", + "type": { + "plain": 1084 + }, + "fallback": "0x00", + "docs": [ + " Tracks the eras that contain offences in `OffenceQueue`, sorted from **earliest to latest**.", + "", + " - This ensures efficient retrieval of the oldest offence without iterating through", + " `OffenceQueue`.", + " - When a new offence is added to `OffenceQueue`, its era is **inserted in sorted order**", + " if not already present.", + " - When all offences for an era are processed, it is **removed** from this list.", + " - The maximum length of this vector is bounded by `BondingDuration`.", + "", + " This eliminates the need for expensive iteration and sorting when fetching the next offence", + " to process." + ] + }, + { + "name": "ProcessingOffence", + "modifier": "Optional", + "type": { + "plain": 1085 + }, + "fallback": "0x00", + "docs": [ + " Tracks the currently processed offence record from the `OffenceQueue`.", + "", + " - When processing offences, an offence record is **popped** from the oldest era in", + " `OffenceQueue` and stored here.", + " - The function `process_offence` reads from this storage, processing one page of exposure at", + " a time.", + " - After processing a page, the `exposure_page` count is **decremented** until it reaches", + " zero.", + " - Once fully processed, the offence record is removed from this storage.", + "", + " This ensures that offences are processed incrementally, preventing excessive computation", + " in a single block while maintaining correct slashing behavior." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 1086, + "value": 1087 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "CancelledSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1089 + } + }, + "fallback": "0x00", + "docs": [ + " Cancelled slashes by era and validator with maximum slash fraction to be cancelled.", + "", + " When slashes are cancelled by governance, this stores the era and the validators", + " whose slashes should be cancelled, along with the maximum slash fraction that should", + " be cancelled for each validator." + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 952, + "value": 744 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 545 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + }, + { + "name": "VoterSnapshotStatus", + "modifier": "Default", + "type": { + "plain": 1090 + }, + "fallback": "0x02", + "docs": [ + " Voter snapshot progress status.", + "", + " If the status is `Ongoing`, it keeps a cursor of the last voter retrieved to proceed when", + " creating the next snapshot page." + ] + }, + { + "name": "NextElectionPage", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Keeps track of an ongoing multi-page election solution request.", + "", + " If `Some(_)``, it is the next page that we intend to elect. If `None`, we are not in the", + " election process.", + "", + " This is only set in multi-block elections. Should always be `None` otherwise." + ] + }, + { + "name": "ElectableStashes", + "modifier": "Default", + "type": { + "plain": 1091 + }, + "fallback": "0x00", + "docs": [ + " A bounded list of the \"electable\" stashes that resulted from a successful election." + ] + }, + { + "name": "EraPruningState", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1092 + } + }, + "fallback": "0x00", + "docs": [ + " Tracks the current step of era pruning process for each era being lazily pruned." + ] + } + ] + }, + "calls": { + "type": 543 + }, + "events": { + "type": 253 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasValidatorPrefs`, `ErasValidatorReward`,", + " `ErasRewardPoints`, `ErasTotalStake`, `ClaimedRewards`,", + " `ErasStakersPaged`, `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era, as per the preferences of the **relay chain**." + ] + }, + { + "name": "PlanningEraOffset", + "type": 4, + "value": "0x02000000", + "docs": [ + " Number of sessions before the end of an era when the election for the next era will", + " start.", + "", + " - This determines how many sessions **before** the last session of the era the staking", + " election process should begin.", + " - The value is bounded between **1** (election starts at the beginning of the last", + " session) and `SessionsPerEra` (election starts at the beginning of the first session", + " of the era).", + "", + " ### Example:", + " - If `SessionsPerEra = 6` and `PlanningEraOffset = 1`, the election starts at the", + " beginning of session `6 - 1 = 5`.", + " - If `PlanningEraOffset = 6`, the election starts at the beginning of session `6 - 6 =", + " 0`, meaning it starts at the very beginning of the era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to", + " reduce without handling it in a migration." + ] + }, + { + "name": "MaxValidatorSet", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The absolute maximum of winner validators this pallet should return.", + "", + " As this pallet supports multi-block election, the set of winner validators *per", + " election* is bounded by this type." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + }, + { + "name": "MaxInvulnerables", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of invulnerable validators." + ] + }, + { + "name": "MaxEraDuration", + "type": 12, + "value": "0x8062ee0100000000", + "docs": [ + " Maximum allowed era duration in milliseconds.", + "", + " This provides a defensive upper bound to cap the effective era duration, preventing", + " excessively long eras from causing runaway inflation (e.g., due to bugs). If the actual", + " era duration exceeds this value, it will be clamped to this maximum.", + "", + " Example: For an ideal era duration of 24 hours (86,400,000 ms),", + " this can be set to 604,800,000 ms (7 days)." + ] + }, + { + "name": "MaxPruningItems", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of storage items that can be pruned in a single call.", + "", + " This controls how many storage items can be deleted in each call to `prune_era_step`.", + " This should be set to a conservative value (e.g., 100-500 items) to ensure pruning", + " doesn't consume too much block space. The actual weight is determined by benchmarks." + ] + } + ], + "errors": { + "type": 1093 + }, + "index": 89, + "docs": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 702 + } + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 1094 + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1095 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + }, + { + "name": "LastSpendPeriod", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The blocknumber for the last triggered spend period." + ] + } + ] + }, + "calls": { + "type": 558 + }, + "events": { + "type": 260 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x80510100", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 71, + "value": "0x00000000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 872, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x80c61300", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 1097 + }, + "index": 90, + "docs": [] + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 1098, + "value": 1099 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1102 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 559 + }, + "events": { + "type": 263 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 1103 + }, + "index": 91, + "docs": [] + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 1104 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 194, + "value": 1106 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 194, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 562 + }, + "events": { + "type": 266 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x554dd2c2070000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 1107, + "value": "0x40000064726f6f740000000000000000000000000000000000000000000100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f746970706572000000000000000000000000000000640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e646572000000000000000000000032000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e646572000000000000000000000000000032000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 1113 + }, + "index": 92, + "docs": [] + }, + { + "name": "Origins", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 93, + "docs": [] + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 41 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 565 + }, + "events": { + "type": 779 + }, + "constants": [], + "errors": { + "type": 1114 + }, + "index": 94, + "docs": [] + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1115 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 1116 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 1094 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 566 + }, + "events": { + "type": 783 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x702e7f03000000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x00000000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00041703", + "docs": [ + " The time limit for a curator to act before a bounty expires.", + "", + " The period that starts when a curator is approved, during which they must execute or", + " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the", + " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,", + " removing the need for `extend_bounty_expiry`." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 71, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 401, + "value": "0x0104821bce260000000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 401, + "value": "0x0152a1aec6000000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x689aa4850f0000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x15160500000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 1117 + }, + "index": 95, + "docs": [] + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts", + " for each parent bounty. Number of total child bounties. Will be removed in May 2025." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of active child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ParentTotalChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties per parent bounty, including completed bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 1118 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptionsV1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 39, + "value": 1116 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty. Indexed by `(parent_id, child_id)`.", + "", + " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version." + ] + }, + { + "name": "V0ToV1ChildBountyIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.", + "", + " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids", + " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].", + " The item intended solely for client convenience and not used in the pallet's core logic." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 567 + }, + "events": { + "type": 784 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0xa4425d8d010000000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 1120 + }, + "index": 96, + "docs": [] + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 261, + "value": 184 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 568 + }, + "events": { + "type": 785 + }, + "constants": [], + "errors": { + "type": 1121 + }, + "index": 97, + "docs": [] + }, + { + "name": "AhOps", + "storage": { + "prefix": "AhOps", + "items": [ + { + "name": "RcLeaseReserve", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 1122, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Amount of balance that was reserved for winning a lease auction.", + "", + " `unreserve_lease_deposit` can be permissionlessly called once the block number passed to", + " unreserve the deposit. It is implicitly called by `withdraw_crowdloan_contribution`.", + " ", + " The account here can either be a crowdloan account or a solo bidder. If it is a crowdloan", + " account, then the summed up contributions for it in the contributions map will equate the", + " reserved balance here.", + "", + " The keys are as follows:", + " - Block number after which the deposit can be unreserved.", + " - The para_id of the lease slot.", + " - The account that will have the balance unreserved.", + " - The balance to be unreserved." + ] + }, + { + "name": "RcCrowdloanContribution", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 1122, + "value": 459 + } + }, + "fallback": "0x00", + "docs": [ + " Amount of balance that a contributor made towards a crowdloan.", + "", + " `withdraw_crowdloan_contribution` can be permissionlessly called once the block number", + " passed to unlock the balance for a specific account.", + "", + " The keys are as follows:", + " - Block number after which the balance can be unlocked.", + " - The para_id of the crowdloan.", + " - The account that made the contribution.", + "", + " The value is (fund_pot, balance). The contribution pot is the second key in the", + " `RcCrowdloanContribution` storage." + ] + }, + { + "name": "RcCrowdloanReserve", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 1122, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The reserve that was taken to create a crowdloan.", + "", + " This is normally 500 DOT and can be refunded as last step after all", + " `RcCrowdloanContribution`s of this loan have been withdrawn.", + "", + " Keys:", + " - Block number after which this can be unreserved", + " - The para_id of the crowdloan", + " - The account that will have the balance unreserved" + ] + } + ] + }, + "calls": { + "type": 569 + }, + "events": { + "type": 786 + }, + "constants": [], + "errors": { + "type": 1123 + }, + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "storage": { + "prefix": "AhMigrator", + "items": [ + { + "name": "RcAccounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 572 + } + }, + "fallback": "0x00", + "docs": [ + " RC accounts that failed to migrate when were received on the Asset Hub.", + "", + " This is unlikely to happen, since we dry run the migration, but we keep it for completeness." + ] + }, + { + "name": "AhMigrationStage", + "modifier": "Default", + "type": { + "plain": 774 + }, + "fallback": "0x00", + "docs": [ + " The Asset Hub migration state." + ] + }, + { + "name": "AhBalancesBefore", + "modifier": "Default", + "type": { + "plain": 1124 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Helper storage item to store the total balance / total issuance of native token at the start", + " of the migration. Since teleports are disabled during migration, the total issuance will not", + " change for other reason than the migration itself." + ] + }, + { + "name": "DmpQueuePriorityConfig", + "modifier": "Default", + "type": { + "plain": 775 + }, + "fallback": "0x00", + "docs": [ + " The priority of the DMP queue during migration.", + "", + " Controls how the DMP (Downward Message Passing) queue is processed relative to other queues", + " during the migration process. This helps ensure timely processing of migration messages.", + " The default priority pattern is defined in the pallet configuration, but can be overridden", + " by a storage value of this type." + ] + }, + { + "name": "Manager", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " An optional account id of a manager.", + "", + " This account id has similar privileges to [`Config::AdminOrigin`] except that it", + " can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "MigrationStartBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The block number at which the migration began and the pallet's extrinsics were locked.", + "", + " This value is set when entering the `WaitingForAh` stage, i.e., when", + " `RcMigrationStage::is_ongoing()` becomes `true`." + ] + }, + { + "name": "MigrationEndBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number when migration finished and extrinsics were unlocked.", + "", + " This is set when entering the `MigrationDone` stage hence when", + " `RcMigrationStage::is_finished()` becomes `true`." + ] + } + ] + }, + "calls": { + "type": 570 + }, + "events": { + "type": 787 + }, + "constants": [], + "errors": { + "type": 1125 + }, + "index": 255, + "docs": [] + } + ], + "extrinsic": { + "version": 4, + "addressType": 319, + "callType": 268, + "signatureType": 419, + "extraType": 1126, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 1127, + "additionalSigned": 41 + }, + { + "identifier": "CheckSpecVersion", + "type": 1128, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 1129, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 1130, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 1131, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 1133, + "additionalSigned": 41 + }, + { + "identifier": "CheckWeight", + "type": 1134, + "additionalSigned": 41 + }, + { + "identifier": "ChargeAssetTxPayment", + "type": 1135, + "additionalSigned": 41 + }, + { + "identifier": "CheckMetadataHash", + "type": 1136, + "additionalSigned": 34 + } + ] + }, + "type": 220, + "apis": [ + { + "name": "AuraApi", + "methods": [ + { + "name": "slot_duration", + "inputs": [], + "output": 1138, + "docs": [ + " Returns the slot duration for Aura.", + "", + " Currently, only the value provided by this type at genesis will be used." + ] + }, + { + "name": "authorities", + "inputs": [], + "output": 883, + "docs": [ + " Return the current set of authorities." + ] + } + ], + "docs": [ + " API necessary for block authorship with aura." + ] + }, + { + "name": "RelayParentOffsetApi", + "methods": [ + { + "name": "relay_parent_offset", + "inputs": [], + "output": 4, + "docs": [ + " Fetch the slot offset that is expected from the relay chain." + ] + } + ], + "docs": [ + " API to tell the node side how the relay parent should be chosen.", + "", + " A larger offset indicates that the relay parent should not be the tip of the relay chain,", + " but `N` blocks behind the tip. This offset is then enforced by the runtime." + ] + }, + { + "name": "AuraUnincludedSegmentApi", + "methods": [ + { + "name": "can_build_upon", + "inputs": [ + { + "name": "included_hash", + "type": 13 + }, + { + "name": "slot", + "type": 884 + } + ], + "output": 8, + "docs": [ + " Whether it is legal to extend the chain, assuming the given block is the most", + " recently included one as-of the relay parent that will be built against, and", + " the given relay chain slot.", + "", + " This should be consistent with the logic the runtime uses when validating blocks to", + " avoid issues.", + "", + " When the unincluded segment is empty, i.e. `included_hash == at`, where at is the block", + " whose state we are querying against, this must always return `true` as long as the slot", + " is more recent than the included block itself." + ] + } + ], + "docs": [ + " This runtime API is used to inform potential block authors whether they will", + " have the right to author at a slot, assuming they have claimed the slot.", + "", + " In particular, this API allows Aura-based teyrchains to regulate their \"unincluded segment\",", + " which is the section of the head of the chain which has not yet been made available in the", + " relay chain.", + "", + " When the unincluded segment is short, Aura chains will allow authors to create multiple", + " blocks per slot in order to build a backlog. When it is saturated, this API will limit", + " the amount of blocks that can be created.", + "", + " Changes:", + " - Version 2: Update to `can_build_upon` to take a relay chain `Slot` instead of a teyrchain `Slot`." + ] + }, + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 800, + "docs": [ + " Returns the version of the runtime." + ] + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "type": 1139 + } + ], + "output": 41, + "docs": [ + " Execute the given block." + ] + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "type": 280 + } + ], + "output": 1142, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ] + } + ], + "docs": [ + " The `Core` runtime api that every Bizinikiwi runtime needs to implement." + ] + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 1143, + "docs": [ + " Returns the metadata of a runtime." + ] + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "type": 4 + } + ], + "output": 1144, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ] + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 200, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ] + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ] + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "type": 1140 + } + ], + "output": 1145, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ] + }, + { + "name": "finalize_block", + "inputs": [], + "output": 280, + "docs": [ + " Finish the current block." + ] + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "type": 1149 + } + ], + "output": 1141, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ] + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "type": 1139 + }, + { + "name": "data", + "type": 1149 + } + ], + "output": 1153, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ] + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ] + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "type": 1154 + }, + { + "name": "tx", + "type": 1140 + }, + { + "name": "block_hash", + "type": 13 + } + ], + "output": 1155, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ] + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ] + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "type": 280 + } + ], + "output": 41, + "docs": [ + " Starts the off-chain task for given block header." + ] + } + ], + "docs": [ + " The offchain worker api." + ] + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "type": 36 + } + ], + "output": 14, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ] + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "type": 14 + } + ], + "output": 1157, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ] + } + ], + "docs": [ + " Session keys runtime api." + ] + }, + { + "name": "RuntimeViewFunction", + "methods": [ + { + "name": "execute_view_function", + "inputs": [ + { + "name": "query_id", + "type": 1160 + }, + { + "name": "input", + "type": 14 + } + ], + "output": 1161, + "docs": [ + " Execute a view function query." + ] + } + ], + "docs": [ + " Runtime API for executing view functions" + ] + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ] + } + ], + "docs": [ + " The API to query account nonce." + ] + }, + { + "name": "AssetConversionApi", + "methods": [ + { + "name": "quote_price_tokens_for_exact_tokens", + "inputs": [ + { + "name": "asset1", + "type": 83 + }, + { + "name": "asset2", + "type": 83 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 401, + "docs": [ + " Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_in_max` to control slippage.)" + ] + }, + { + "name": "quote_price_exact_tokens_for_tokens", + "inputs": [ + { + "name": "asset1", + "type": 83 + }, + { + "name": "asset2", + "type": 83 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 401, + "docs": [ + " Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_out_min` to control slippage.)" + ] + }, + { + "name": "get_reserves", + "inputs": [ + { + "name": "asset1", + "type": 83 + }, + { + "name": "asset2", + "type": 83 + } + ], + "output": 1163, + "docs": [ + " Returns the size of the liquidity pool for the given asset pair." + ] + } + ], + "docs": [ + " This runtime api allows people to query the size of the liquidity pools", + " and quote prices for swaps." + ] + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "type": 1140 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1165, + "docs": [] + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "type": 1140 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1166, + "docs": [] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "type": 268 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1165, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ] + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "type": 268 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1166, + "docs": [ + " Query fee details of a given encoded `Call`." + ] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ] + } + ], + "docs": [] + }, + { + "name": "XcmPaymentApi", + "methods": [ + { + "name": "query_acceptable_payment_assets", + "inputs": [ + { + "name": "xcm_version", + "type": 4 + } + ], + "output": 1169, + "docs": [ + " Returns a list of acceptable payment assets.", + "", + " # Arguments", + "", + " * `xcm_version`: Version." + ] + }, + { + "name": "query_xcm_weight", + "inputs": [ + { + "name": "message", + "type": 337 + } + ], + "output": 1172, + "docs": [ + " Returns a weight needed to execute a XCM.", + "", + " # Arguments", + "", + " * `message`: `VersionedXcm`." + ] + }, + { + "name": "query_weight_to_asset_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + }, + { + "name": "asset", + "type": 379 + } + ], + "output": 1173, + "docs": [ + " Converts a weight into a fee for the specified `AssetId`.", + "", + " # Arguments", + "", + " * `weight`: convertible `Weight`.", + " * `asset`: `VersionedAssetId`." + ] + }, + { + "name": "query_delivery_fees", + "inputs": [ + { + "name": "destination", + "type": 180 + }, + { + "name": "message", + "type": 337 + } + ], + "output": 1174, + "docs": [ + " Get delivery fees for sending a specific `message` to a `destination`.", + " These always come in a specific asset, defined by the chain.", + "", + " # Arguments", + " * `message`: The message that'll be sent, necessary because most delivery fees are based on the", + " size of the message.", + " * `destination`: The destination to send the message to. Different destinations may use", + " different senders that charge different fees." + ] + } + ], + "docs": [ + " A trait of XCM payment API.", + "", + " API provides functionality for obtaining:", + "", + " * the weight required to execute an XCM message,", + " * a list of acceptable `AssetId`s for message execution payment,", + " * the cost of the weight in the specified acceptable `AssetId`.", + " * the fees for an XCM message delivery.", + "", + " To determine the execution weight of the calls required for", + " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used." + ] + }, + { + "name": "DryRunApi", + "methods": [ + { + "name": "dry_run_call", + "inputs": [ + { + "name": "origin", + "type": 385 + }, + { + "name": "call", + "type": 268 + }, + { + "name": "result_xcms_version", + "type": 4 + } + ], + "output": 1175, + "docs": [ + " Dry run call V2." + ] + }, + { + "name": "dry_run_xcm", + "inputs": [ + { + "name": "origin_location", + "type": 180 + }, + { + "name": "xcm", + "type": 367 + } + ], + "output": 1183, + "docs": [ + " Dry run XCM program" + ] + } + ], + "docs": [ + " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API.", + "", + " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\".", + " If there's local execution, the location will be \"Here\".", + " This vector can be used to calculate both execution and delivery fees.", + "", + " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`.", + " In those cases, there might still be a valid result, with the execution error inside it.", + " The only reasons why these calls might return an error are listed in the [`Error`] enum." + ] + }, + { + "name": "LocationToAccountApi", + "methods": [ + { + "name": "convert_location", + "inputs": [ + { + "name": "location", + "type": 180 + } + ], + "output": 1185, + "docs": [ + " Converts `Location` to `AccountId`." + ] + } + ], + "docs": [ + " API for useful conversions between XCM `Location` and `AccountId`." + ] + }, + { + "name": "TrustedQueryApi", + "methods": [ + { + "name": "is_trusted_reserve", + "inputs": [ + { + "name": "asset", + "type": 1187 + }, + { + "name": "location", + "type": 180 + } + ], + "output": 1188, + "docs": [ + " Returns if the location is a trusted reserve for the asset.", + "", + " # Arguments", + " * `asset`: `VersionedAsset`.", + " * `location`: `VersionedLocation`." + ] + }, + { + "name": "is_trusted_teleporter", + "inputs": [ + { + "name": "asset", + "type": 1187 + }, + { + "name": "location", + "type": 180 + } + ], + "output": 1188, + "docs": [ + " Returns if the asset can be teleported to the location.", + "", + " # Arguments", + " * `asset`: `VersionedAsset`.", + " * `location`: `VersionedLocation`." + ] + } + ], + "docs": [ + " API for querying trusted reserves and trusted teleporters." + ] + }, + { + "name": "AuthorizedAliasersApi", + "methods": [ + { + "name": "authorized_aliasers", + "inputs": [ + { + "name": "target", + "type": 180 + } + ], + "output": 1190, + "docs": [ + " Returns locations allowed to alias into and act as `target`." + ] + }, + { + "name": "is_authorized_alias", + "inputs": [ + { + "name": "origin", + "type": 180 + }, + { + "name": "target", + "type": 180 + } + ], + "output": 1192, + "docs": [ + " Returns whether `origin` is allowed to alias into and act as `target`." + ] + } + ], + "docs": [ + " API for querying XCM authorized aliases" + ] + }, + { + "name": "FungiblesApi", + "methods": [ + { + "name": "query_account_balances", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 1193, + "docs": [ + " Returns the list of all [`Asset`] that an `AccountId` has." + ] + } + ], + "docs": [ + " The API for querying account's balances from runtime." + ] + }, + { + "name": "CollectCollationInfo", + "methods": [ + { + "name": "collect_collation_info", + "inputs": [ + { + "name": "header", + "type": 280 + } + ], + "output": 1195, + "docs": [ + " Collect information about a collation.", + "", + " The given `header` is the header of the built block for that", + " we are collecting the collation info for." + ] + } + ], + "docs": [ + " Runtime api to collect information about a collation.", + "", + " Version history:", + " - Version 2: Changed [`Self::collect_collation_info`] signature", + " - Version 3: Signals to the node to use version 1 of [`TeyrchainBlockData`]." + ] + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "type": 14 + } + ], + "output": 1198, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full", + " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the", + " provided JSON blob is incorrect or incomplete or the deserialization fails, an error", + " is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ] + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "type": 1199 + } + ], + "output": 36, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function should return JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ] + }, + { + "name": "preset_names", + "inputs": [], + "output": 1200, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ] + } + ], + "docs": [ + " API to interact with `RuntimeGenesisConfig` for the runtime" + ] + }, + { + "name": "GetTeyrchainInfo", + "methods": [ + { + "name": "teyrchain_id", + "inputs": [], + "output": 187, + "docs": [ + " Retrieve the teyrchain id used for runtime." + ] + } + ], + "docs": [ + " Runtime api used to access general info about a teyrchain runtime." + ] + }, + { + "name": "NominationPoolsApi", + "methods": [ + { + "name": "pending_rewards", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending rewards for the member that the AccountId was given for." + ] + }, + { + "name": "points_to_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "points", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent balance of `points` for a given pool." + ] + }, + { + "name": "balance_to_points", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "new_funds", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent points of `new_funds` for a given pool." + ] + }, + { + "name": "pool_pending_slash", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool." + ] + }, + { + "name": "member_pending_slash", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool member.", + "", + " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on", + " chain." + ] + }, + { + "name": "pool_needs_delegate_migration", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 8, + "docs": [ + " Returns true if the pool with `pool_id` needs migration.", + "", + " This can happen when the `pallet-nomination-pools` has switched to using strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool", + " still has funds that were staked using the older strategy", + " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use", + " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)", + " to migrate the pool." + ] + }, + { + "name": "member_needs_delegate_migration", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if the delegated funds of the pool `member` needs migration.", + "", + " Once a pool has successfully migrated to the strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the", + " member can be migrated from pool account to the member's account. Use", + " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)", + " to migrate the funds of the pool member." + ] + }, + { + "name": "member_total_balance", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the total contribution of a pool member including any balance that is unbonding." + ] + }, + { + "name": "pool_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Total balance contributed to the pool." + ] + }, + { + "name": "pool_accounts", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 753, + "docs": [ + " Returns the bonded account and reward account associated with the pool_id." + ] + } + ], + "docs": [ + " Runtime api for accessing information about nomination pools." + ] + }, + { + "name": "StakingApi", + "methods": [ + { + "name": "nominations_quota", + "inputs": [ + { + "name": "balance", + "type": 6 + } + ], + "output": 4, + "docs": [ + " Returns the nominations quota for a nominator with a given balance." + ] + }, + { + "name": "eras_stakers_page_count", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Returns the page count of exposures for a validator `account` in a given era." + ] + }, + { + "name": "pending_rewards", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if validator `account` has pages to be claimed for the given era." + ] + } + ], + "docs": [] + }, + { + "name": "ReviveApi", + "methods": [ + { + "name": "block_gas_limit", + "inputs": [], + "output": 430, + "docs": [ + " Returns the block gas limit." + ] + }, + { + "name": "balance", + "inputs": [ + { + "name": "address", + "type": 224 + } + ], + "output": 430, + "docs": [ + " Returns the free balance of the given `[H160]` address, using EVM decimals." + ] + }, + { + "name": "gas_price", + "inputs": [], + "output": 430, + "docs": [ + " Returns the gas price." + ] + }, + { + "name": "nonce", + "inputs": [ + { + "name": "address", + "type": 224 + } + ], + "output": 4, + "docs": [ + " Returns the nonce of the given `[H160]` address." + ] + }, + { + "name": "call", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "dest", + "type": 224 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 77 + }, + { + "name": "storage_deposit_limit", + "type": 401 + }, + { + "name": "input_data", + "type": 14 + } + ], + "output": 1201, + "docs": [ + " Perform a call from a specified account to a given contract.", + "", + " See [`crate::Pallet::bare_call`]." + ] + }, + { + "name": "instantiate", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 77 + }, + { + "name": "storage_deposit_limit", + "type": 401 + }, + { + "name": "code", + "type": 1206 + }, + { + "name": "data", + "type": 14 + }, + { + "name": "salt", + "type": 34 + } + ], + "output": 1207, + "docs": [ + " Instantiate a new contract.", + "", + " See `[crate::Pallet::bare_instantiate]`." + ] + }, + { + "name": "eth_transact", + "inputs": [ + { + "name": "tx", + "type": 1210 + } + ], + "output": 1222, + "docs": [ + " Perform an Ethereum call.", + "", + " See [`crate::Pallet::dry_run_eth_transact`]" + ] + }, + { + "name": "upload_code", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "code", + "type": 14 + }, + { + "name": "storage_deposit_limit", + "type": 401 + } + ], + "output": 1225, + "docs": [ + " Upload new code without instantiating a contract from it.", + "", + " See [`crate::Pallet::bare_upload_code`]." + ] + }, + { + "name": "get_storage", + "inputs": [ + { + "name": "address", + "type": 224 + }, + { + "name": "key", + "type": 1 + } + ], + "output": 1227, + "docs": [ + " Query a given storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ] + }, + { + "name": "get_storage_var_key", + "inputs": [ + { + "name": "address", + "type": 224 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 1227, + "docs": [ + " Query a given variable-sized storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ] + }, + { + "name": "trace_block", + "inputs": [ + { + "name": "block", + "type": 1139 + }, + { + "name": "config", + "type": 1229 + } + ], + "output": 1234, + "docs": [ + " Traces the execution of an entire block and returns call traces.", + "", + " This is intended to be called through `state_call` to replay the block from the", + " parent block.", + "", + " See eth-rpc `debug_traceBlockByNumber` for usage." + ] + }, + { + "name": "trace_tx", + "inputs": [ + { + "name": "block", + "type": 1139 + }, + { + "name": "tx_index", + "type": 4 + }, + { + "name": "config", + "type": 1229 + } + ], + "output": 1250, + "docs": [ + " Traces the execution of a specific transaction within a block.", + "", + " This is intended to be called through `state_call` to replay the block from the", + " parent hash up to the transaction.", + "", + " See eth-rpc `debug_traceTransaction` for usage." + ] + }, + { + "name": "trace_call", + "inputs": [ + { + "name": "tx", + "type": 1210 + }, + { + "name": "config", + "type": 1229 + } + ], + "output": 1251, + "docs": [ + " Dry run and return the trace of the given call.", + "", + " See eth-rpc `debug_traceCall` for usage." + ] + }, + { + "name": "block_author", + "inputs": [], + "output": 1217, + "docs": [ + " The address of the validator that produced the current block." + ] + }, + { + "name": "address", + "inputs": [ + { + "name": "account_id", + "type": 0 + } + ], + "output": 224, + "docs": [ + " Get the H160 address associated to this account id" + ] + }, + { + "name": "runtime_pallets_address", + "inputs": [], + "output": 224, + "docs": [ + " The address used to call the runtime's pallets dispatchables" + ] + }, + { + "name": "code", + "inputs": [ + { + "name": "address", + "type": 224 + } + ], + "output": 14, + "docs": [ + " The code at the specified address taking pre-compiles into account." + ] + } + ], + "docs": [ + " The API used to dry-run contract interactions." + ] + } + ], + "outerEnums": { + "callType": 268, + "eventType": 21, + "errorType": 1252 + }, + "custom": { + "map": {} + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/asset-hub-dicle-rpc.ts b/packages/types-support/src/metadata/v15/asset-hub-dicle-rpc.ts new file mode 100644 index 0000000..2b850a3 --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-dicle-rpc.ts @@ -0,0 +1,126 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +//To run a asset-hub-dicle node please refer to types-support/src/metadata/README.md + +export default { + "methods": [ + "account_nextIndex", + "archive_v1_body", + "archive_v1_call", + "archive_v1_finalizedHeight", + "archive_v1_genesisHash", + "archive_v1_hashByHeight", + "archive_v1_header", + "archive_v1_stopStorage", + "archive_v1_storage", + "archive_v1_storageDiff", + "archive_v1_storageDiff_stopStorageDiff", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "dev_getBlockStats", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v15/asset-hub-dicle-types.json b/packages/types-support/src/metadata/v15/asset-hub-dicle-types.json new file mode 100644 index 0000000..142be8b --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-dicle-types.json @@ -0,0 +1,85868 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 789, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 225, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "fields": [ + { + "name": null, + "type": 33, + "typeName": "pezcumulus_pallet_teyrchain_system::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "pallet_migrations::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 38, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 42, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "AssetTxPayment", + "fields": [ + { + "name": null, + "type": 82, + "typeName": "pallet_asset_conversion_tx_payment::Event", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 101, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 102, + "typeName": "pallet_claims::Event", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "CollatorSelection", + "fields": [ + { + "name": null, + "type": 104, + "typeName": "pallet_collator_selection::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "XcmpQueue", + "fields": [ + { + "name": null, + "type": 107, + "typeName": "pezcumulus_pallet_xcmp_queue::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "pallet_xcm::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "fields": [ + { + "name": null, + "type": 182, + "typeName": "pezcumulus_pallet_xcm::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "ToPezkuwiXcmRouter", + "fields": [ + { + "name": null, + "type": 183, + "typeName": "pallet_xcm_bridge_hub_router::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 185, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 189, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 190, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 192, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 196, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 197, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 198, + "typeName": "pallet_uniques::Event", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 204, + "typeName": "pallet_nfts::Event", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "fields": [ + { + "name": null, + "type": 211, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 212, + "typeName": "pallet_nft_fractionalization::Event", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 213, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 214, + "typeName": "pallet_asset_conversion::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 218, + "typeName": "pallet_recovery::Event", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 221, + "typeName": "pallet_society::Event", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 223, + "typeName": "pallet_revive::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 226, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 229, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 239, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 240, + "typeName": "pallet_delegated_staking::Event", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "StakingRcClient", + "fields": [ + { + "name": null, + "type": 241, + "typeName": "pallet_staking_async_rc_client::Event", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MultiBlockElection", + "fields": [ + { + "name": null, + "type": 245, + "typeName": "pallet_election_provider_multi_block::Event", + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionVerifier", + "fields": [ + { + "name": null, + "type": 247, + "typeName": "pallet_election_provider_multi_block::verifier::Event", + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 252, + "typeName": "pallet_election_provider_multi_block::signed::Event", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 253, + "typeName": "pallet_staking_async::Event", + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 260, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 263, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 266, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 779, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 783, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 784, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 785, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "AhOps", + "fields": [ + { + "name": null, + "type": 786, + "typeName": "pallet_ah_ops::Event", + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "fields": [ + { + "name": null, + "type": 787, + "typeName": "pallet_ah_migrator::Event", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "TaskStarted", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A [`Task`] has started executing" + ] + }, + { + "name": "TaskCompleted", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A [`Task`] has finished executing." + ] + }, + { + "name": "TaskFailed", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + }, + { + "name": "err", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A [`Task`] failed during execution." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An upgrade was authorized." + ] + }, + { + "name": "RejectedInvalidAuthorizedUpgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 10, + "docs": [ + "An invalid authorized upgrade was rejected while trying to apply it." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "DispatchEventInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Trie", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "TrieError", + "docs": [] + } + ], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "proving_trie", + "TrieError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidStateRoot", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "IncompleteDatabase", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ValueAtIncompleteKey", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DecoderError", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DuplicateKey", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExtraneousNode", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ExtraneousValue", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "ExtraneousHashReference", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidChildReference", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ValueMismatch", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IncompleteProof", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "RootMismatch", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DecodeError", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 32, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeTask" + ], + "params": [], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [] + } + }, + { + "id": 33, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidationFunctionStored", + "fields": [], + "index": 0, + "docs": [ + "The validation function has been scheduled to apply." + ] + }, + { + "name": "ValidationFunctionApplied", + "fields": [ + { + "name": "relay_chain_block_num", + "type": 4, + "typeName": "RelayChainBlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The validation function was applied as of the contained relay chain block number." + ] + }, + { + "name": "ValidationFunctionDiscarded", + "fields": [], + "index": 2, + "docs": [ + "The relay-chain aborted the upgrade process." + ] + }, + { + "name": "DownwardMessagesReceived", + "fields": [ + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some downward messages have been received and will be processed." + ] + }, + { + "name": "DownwardMessagesProcessed", + "fields": [ + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "dmq_head", + "type": 13, + "typeName": "relay_chain::Hash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Downward messages were processed using the given weight." + ] + }, + { + "name": "UpwardMessageSent", + "fields": [ + { + "name": "message_hash", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An upward message was sent to the relay chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 34, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UpgradeStarted", + "fields": [ + { + "name": "migrations", + "type": 4, + "typeName": "u32", + "docs": [ + "The number of migrations that this upgrade contains.", + "", + "This can be used to design a progress indicator in combination with counting the", + "`MigrationCompleted` and `MigrationSkipped` events." + ] + } + ], + "index": 0, + "docs": [ + "A Runtime upgrade started.", + "", + "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`." + ] + }, + { + "name": "UpgradeCompleted", + "fields": [], + "index": 1, + "docs": [ + "The current runtime upgrade completed.", + "", + "This implies that all of its migrations completed successfully as well." + ] + }, + { + "name": "UpgradeFailed", + "fields": [], + "index": 2, + "docs": [ + "Runtime upgrade failed.", + "", + "This is very bad and will require governance intervention." + ] + }, + { + "name": "MigrationSkipped", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the skipped migration within the [`Config::Migrations`] list." + ] + } + ], + "index": 3, + "docs": [ + "A migration was skipped since it was already executed in the past." + ] + }, + { + "name": "MigrationAdvanced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 4, + "docs": [ + "A migration progressed." + ] + }, + { + "name": "MigrationCompleted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 5, + "docs": [ + "A Migration completed." + ] + }, + { + "name": "MigrationFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 6, + "docs": [ + "A Migration failed.", + "", + "This implies that the whole upgrade failed and governance intervention is required." + ] + }, + { + "name": "HistoricCleared", + "fields": [ + { + "name": "next_cursor", + "type": 36, + "typeName": "Option>", + "docs": [ + "Should be passed to `clear_historic` in a successive call." + ] + } + ], + "index": 7, + "docs": [ + "The set of historical migrations has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 37, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 40, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + }, + { + "name": "AgendaIncomplete", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Agenda is incomplete from `when`." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 39, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 40, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 41 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 41, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 41, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 42, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 43, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 66, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 66, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 43, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuance", + "fields": [ + { + "name": null, + "type": 44, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "::Key", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StakingElection", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "::Key", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "::Key", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "::Key", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "MinInflation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "MaxInflation", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "IdealStake", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "Falloff", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "MinInflation" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "MaxInflation" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "IdealStake" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 48, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "Falloff" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "treasury", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BurnPortion", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "BurnPortion", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BurnDestination", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "BurnDestination", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "treasury", + "BurnPortion" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "treasury", + "BurnDestination" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedPhase", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "SignedPhase", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxSignedSubmissions", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MaxSignedSubmissions", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "UnsignedPhase", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "UnsignedPhase", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MinerPages", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "MinerPages", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MaxElectingVoters", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "MaxElectingVoters", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TargetSnapshotPerBlock", + "fields": [ + { + "name": null, + "type": 58, + "typeName": "TargetSnapshotPerBlock", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "MaxEraDuration", + "fields": [ + { + "name": null, + "type": 59, + "typeName": "MaxEraDuration", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "SignedPhase" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "MaxSignedSubmissions" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 55, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "UnsignedPhase" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 56, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "MinerPages" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "MaxElectingVoters" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "TargetSnapshotPerBlock" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "MaxEraDuration" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "scheduler", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxScheduledPerBlock", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "MaxScheduledPerBlock", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaximumWeight", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "MaximumWeight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 61, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "scheduler", + "MaxScheduledPerBlock" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 62, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "scheduler", + "MaximumWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 63, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "message_queue", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxOnInitWeight", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "MaxOnInitWeight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxOnIdleWeight", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "MaxOnIdleWeight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "message_queue", + "MaxOnInitWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "message_queue", + "MaxOnIdleWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 66, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 67 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 67, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 67, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuance", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "::Value", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StakingElection", + "fields": [ + { + "name": null, + "type": 74, + "typeName": "::Value", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "::Value", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "::Value", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "treasury", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BurnPortion", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "Permill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BurnDestination", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "crate::treasury::BurnDestinationAccount", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 71, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "treasury", + "BurnDestinationAccount" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 73, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedPhase", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxSignedSubmissions", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "UnsignedPhase", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MinerPages", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MaxElectingVoters", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TargetSnapshotPerBlock", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "MaxEraDuration", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "scheduler", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxScheduledPerBlock", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaximumWeight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "message_queue", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxOnInitWeight", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxOnIdleWeight", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 77, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 79, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 22, + "docs": [ + "An unexpected/defensive event was triggered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 79, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [ + "pallet_balances", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceUpdated", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FailedToMutateAccount", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 82, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + }, + { + "name": "AssetRefundFailed", + "fields": [ + { + "name": "native_amount_kept", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A swap of the refund in native currency back to asset failed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 83, + "type": { + "path": [ + "staging_xcm", + "v5", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 84, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 84, + "type": { + "path": [ + "staging_xcm", + "v5", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 94, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 97, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 98, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 100, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 85, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 88, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 88, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 88, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 90, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 92, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 93, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 89, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 87, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 89 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 89, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 89, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 92, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Moniker", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 93, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 99, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 86 + } + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A vesting schedule has been created." + ] + }, + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 102, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Claimed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_address", + "type": 103, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Someone claimed some DOTs." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 103, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EthereumAddress" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 90, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewInvulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New Invulnerables were set." + ] + }, + { + "name": "InvulnerableAdded", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new Invulnerable was added." + ] + }, + { + "name": "InvulnerableRemoved", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An Invulnerable was removed." + ] + }, + { + "name": "NewDesiredCandidates", + "fields": [ + { + "name": "desired_candidates", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The number of desired candidates was set." + ] + }, + { + "name": "NewCandidacyBond", + "fields": [ + { + "name": "bond_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The candidacy bond was set." + ] + }, + { + "name": "CandidateAdded", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new candidate joined." + ] + }, + { + "name": "CandidateBondUpdated", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Bond of a candidate updated." + ] + }, + { + "name": "CandidateRemoved", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A candidate was removed." + ] + }, + { + "name": "CandidateReplaced", + "fields": [ + { + "name": "old", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account was replaced in the candidate list by another one." + ] + }, + { + "name": "InvalidInvulnerableSkipped", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An account was unable to be added to the Invulnerables because they did not have keys", + "registered. Other Invulnerables may have been set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 105, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 106, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + }, + { + "name": "NewQueued", + "fields": [], + "index": 1, + "docs": [ + "The `NewSession` event in the current block also implies a new validator set to be", + "queued." + ] + }, + { + "name": "ValidatorDisabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Validator has been disabled." + ] + }, + { + "name": "ValidatorReenabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Validator has been re-enabled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 107, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "XcmpMessageSent", + "fields": [ + { + "name": "message_hash", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An HRMP message was sent to a sibling teyrchain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 109, + "typeName": "xcm::latest::Outcome", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "SendFailed", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 148, + "typeName": "SendError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An XCM message failed to send." + ] + }, + { + "name": "ProcessXcmError", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 111, + "typeName": "XcmError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An XCM message failed to process." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 123, + "typeName": "Response", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "actual_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_budgeted_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_location", + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + }, + { + "name": "cost", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 15, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "error", + "type": 111, + "typeName": "XcmError", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_querier", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "maybe_actual_querier", + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 21, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 22, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "fees", + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 25, + "docs": [ + "A XCM version migration finished." + ] + }, + { + "name": "AliasAuthorized", + "fields": [ + { + "name": "aliaser", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "expiry", + "type": 181, + "typeName": "Option", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An `aliaser` location was authorized by `target` to alias it, authorization valid until", + "`expiry` block number." + ] + }, + { + "name": "AliasAuthorizationRemoved", + "fields": [ + { + "name": "aliaser", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 27, + "docs": [ + "`target` removed alias authorization for `aliaser`." + ] + }, + { + "name": "AliasesAuthorizationsRemoved", + "fields": [ + { + "name": "target", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 28, + "docs": [ + "`target` removed all alias authorizations." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 109, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "Outcome" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "error", + "type": 110, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 110, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "InstructionError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 111, + "typeName": "Error", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 111, + "type": { + "path": [ + "xcm", + "v5", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 113, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 114 + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 123, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 133, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 77, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 134, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 89, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 84, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 142, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 144, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 145, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 116, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 117 + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 118, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 119, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 120, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 121, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 122, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [ + "staging_xcm", + "v5", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 126, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 124, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 125 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 125, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 125, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 111 + ] + }, + "docs": [] + } + }, + { + "id": 126, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 127 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 129, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "staging_xcm", + "v5", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 128, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 128, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 87, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 127 + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "TruncatedError", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 132, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 83 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 83, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "xcm", + "v3", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 134, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [ + "staging_xcm", + "v5", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 136, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 118, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 138, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 118, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 138, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 138, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 141 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 141, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetTransferFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [ + { + "name": null, + "type": 136, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveDeposit", + "fields": [ + { + "name": null, + "type": 136, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReserveWithdraw", + "fields": [ + { + "name": null, + "type": 136, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 141 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 143, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 143, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 141 + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 84 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 84, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 145, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 146 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 147, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "staging_xcm", + "v5", + "Hint" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetClaimer", + "fields": [ + { + "name": "location", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 147, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 146 + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "SendError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotApplicable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "MissingArgument", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Fees", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "v3::MultiAssets", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "v4::Assets", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "v5::Assets", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 151, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 153, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 159, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 155, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 157, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 157, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 157, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 90, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 92, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 93, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 158, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 158 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 158, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 160, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 121, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 122, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 162, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 163 + } + }, + "docs": [] + } + }, + { + "id": 163, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 178, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 165, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 165, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 166, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 166, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 172, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 175, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 177, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 169, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 169, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 169, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 90, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 92, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 93, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 169, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 170 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 170, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 170, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 171, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 168 + } + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 179, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 121, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 122, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "v3::MultiLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "v5::Location", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [ + "pezcumulus_pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidFormat", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Downward message is invalid XCM.", + "\\[ id \\]" + ] + }, + { + "name": "UnsupportedVersion", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Downward message is unsupported version of XCM.", + "\\[ id \\]" + ] + }, + { + "name": "ExecutedDownward", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": null, + "type": 109, + "typeName": "Outcome", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Downward message executed with the given outcome.", + "\\[ id, outcome \\]" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 183, + "type": { + "path": [ + "pallet_xcm_bridge_hub_router", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DeliveryFeeFactorDecreased", + "fields": [ + { + "name": "new_value", + "type": 184, + "typeName": "FixedU128", + "docs": [ + "New value of the `DeliveryFeeFactor`." + ] + } + ], + "index": 0, + "docs": [ + "Delivery fee factor has been decreased." + ] + }, + { + "name": "DeliveryFeeFactorIncreased", + "fields": [ + { + "name": "new_value", + "type": 184, + "typeName": "FixedU128", + "docs": [ + "New value of the `DeliveryFeeFactor`." + ] + } + ], + "index": 1, + "docs": [ + "Delivery fee factor has been increased." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 184, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 186, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 188, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 186, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 186, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 186, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 186, + "type": { + "path": [ + "pezcumulus_primitives_core", + "AggregateMessageOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Parent", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Sibling", + "fields": [ + { + "name": null, + "type": 187, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "Id" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 40, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + }, + { + "name": "IfElseMainSuccess", + "fields": [], + "index": 6, + "docs": [ + "Main call was dispatched." + ] + }, + { + "name": "IfElseFallbackCalled", + "fields": [ + { + "name": "main_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The fallback call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 190, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 191, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 191, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 40, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 191, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The deposit for a multisig operation has been updated/poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 191, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 40, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 194, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "PureKilled", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "spawner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 194, + "typeName": "u16", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A pure proxy was killed by its spawner." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proxy was removed." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 195, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit stored for proxies or announcements was poked / updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 193, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Assets", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AssetOwner", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AssetManager", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Collator", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "ParaRegistration", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Society", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "Spokesperson", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [ + "pallet_proxy", + "DepositKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Proxies", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Announcements", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A deposit to reserve an index has been poked/reconsidered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 197, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 198, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 199, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 199, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 202, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 202, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 73, + "typeName": "Option", + "docs": [] + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 199, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 200, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 201, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "admin", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "freezer", + "type": 73, + "typeName": "Option", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deadline", + "type": 201, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 73, + "typeName": "Option", + "docs": [] + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf", + "docs": [] + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 207, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 207, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "price", + "type": 207, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + }, + { + "name": "PalletAttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "attribute", + "type": 210, + "typeName": "PalletAttributes", + "docs": [] + }, + { + "name": "value", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 37, + "docs": [ + "A new attribute in the `Pallet` namespace was set for the `collection` or an `item`", + "within that `collection`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 205, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CollectionOwner", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ItemOwner", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 208 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 208, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + }, + { + "name": "direction", + "type": 209, + "typeName": "PriceDirection", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Receive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UsedToClaim", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TransferDisabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 212, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NftFractionalized", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An NFT was successfully fractionalized." + ] + }, + { + "name": "NftUnified", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An NFT was successfully returned back." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 213, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 214, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 215, + "typeName": "T::PoolId", + "docs": [ + "The pool id associated with the pool. Note that the order of the assets may not be", + "the same as the order specified in the create pool extrinsic." + ] + }, + { + "name": "pool_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account ID of the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the liquidity tokens that will be minted when assets are added to this", + "pool." + ] + } + ], + "index": 0, + "docs": [ + "A successful call of the `CreatePool` extrinsic will create this event." + ] + }, + { + "name": "LiquidityAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity was taken from." + ] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were minted to." + ] + }, + { + "name": "pool_id", + "type": 215, + "typeName": "T::PoolId", + "docs": [ + "The pool id of the pool that the liquidity was added to." + ] + }, + { + "name": "amount1_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was added to the pool." + ] + }, + { + "name": "amount2_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was added to the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was minted." + ] + }, + { + "name": "lp_token_minted", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were minted of that id." + ] + } + ], + "index": 1, + "docs": [ + "A successful call of the `AddLiquidity` extrinsic will create this event." + ] + }, + { + "name": "LiquidityRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were burned from." + ] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "pool_id", + "type": 215, + "typeName": "T::PoolId", + "docs": [ + "The pool id that the liquidity was removed from." + ] + }, + { + "name": "amount1", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was removed from the pool." + ] + }, + { + "name": "amount2", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was removed from the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was burned." + ] + }, + { + "name": "lp_token_burned", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were burned of that id." + ] + }, + { + "name": "withdrawal_fee", + "type": 71, + "typeName": "Permill", + "docs": [ + "Liquidity withdrawal fee (%)." + ] + } + ], + "index": 2, + "docs": [ + "A successful call of the `RemoveLiquidity` extrinsic will create this event." + ] + }, + { + "name": "SwapExecuted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Which account was the instigator of the swap." + ] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 216, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 3, + "docs": [ + "Assets have been converted from one to another. Both `SwapExactTokenForToken`", + "and `SwapTokenForExactToken` will generate this event." + ] + }, + { + "name": "SwapCreditExecuted", + "fields": [ + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 216, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 4, + "docs": [ + "Assets have been converted from one to another." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "pool_id", + "type": 215, + "typeName": "T::PoolId", + "docs": [ + "The ID of the pool." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account initiating the touch." + ] + } + ], + "index": 5, + "docs": [ + "Pool has been touched in order to fulfill operational requirements." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 83, + 83 + ] + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 217 + } + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 83, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 219, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit has been updated." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 219, + "type": { + "path": [ + "pallet_recovery", + "DepositKind" + ], + "params": [ + { + "name": "T", + "type": 220 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryConfig", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ActiveRecoveryFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "candidates", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "judged", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewParams", + "fields": [ + { + "name": "params", + "type": 222, + "typeName": "GroupParamsFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A new set of \\[params\\] has been set for the group." + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "Elevated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A \\[member\\] got elevated to \\[rank\\]." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A deposit was poked / adjusted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 222, + "type": { + "path": [ + "pallet_society", + "GroupParams" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 224, + "typeName": "H160", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + }, + { + "name": "topics", + "type": 225, + "typeName": "Vec", + "docs": [ + "A list of topics used to index the event.", + "Number of topics is capped by [`limits::NUM_EVENT_TOPICS`]." + ] + } + ], + "index": 0, + "docs": [ + "A custom event emitted by the contract." + ] + }, + { + "name": "Instantiated", + "fields": [ + { + "name": "deployer", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "contract", + "type": 224, + "typeName": "H160", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contract deployed by deployer at the specified address." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 224, + "type": { + "path": [ + "primitive_types", + "H160" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 90, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 227, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 228, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 227, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 229, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 230, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "released_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked).", + "Any funds that are still delegated (i.e. dangling delegation) are released and are", + "represented by `released_balance`." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 73, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 231, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 234, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 235, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + }, + { + "name": "MemberClaimPermissionUpdated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "permission", + "type": 237, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A pool member's claim permission has been updated." + ] + }, + { + "name": "MetadataUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A pool's metadata was updated." + ] + }, + { + "name": "PoolNominationMade", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A pool's nominating account (or the pool's root account) has nominated a validator set", + "on behalf of the pool." + ] + }, + { + "name": "PoolNominatorChilled", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The pool is chilled i.e. no longer nominating." + ] + }, + { + "name": "GlobalParamsUpdated", + "fields": [ + { + "name": "min_join_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "max_pools", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 238, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Global parameters regulating nomination pools have been updated." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 230, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 232 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 232, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 233, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 236 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 236, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 233 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 233, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 240, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Funds delegated by a delegator." + ] + }, + { + "name": "Released", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Funds released to a delegator." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds slashed from a delegator." + ] + }, + { + "name": "MigratedDelegation", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unclaimed delegation funds migrated to delegator." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SessionReportReceived", + "fields": [ + { + "name": "end_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "activation_timestamp", + "type": 242, + "typeName": "Option<(u64, u32)>", + "docs": [] + }, + { + "name": "validator_points_counts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A said session report was received." + ] + }, + { + "name": "OffenceReceived", + "fields": [ + { + "name": "slash_session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "offences_count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new offence was reported." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 244, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Something occurred that should never happen under normal operation.", + "Logged as an event for fail-safe observability." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 242, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 243 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 243, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SessionReportIntegrityFailed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ValidatorSetIntegrityFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SessionSkipped", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SessionAlreadyProcessed", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ValidatorSetSendFailed", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "ValidatorSetDropped", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 246, + "typeName": "Phase", + "docs": [ + "the source phase" + ] + }, + { + "name": "to", + "type": 246, + "typeName": "Phase", + "docs": [ + "The target phase" + ] + } + ], + "index": 0, + "docs": [ + "A phase transition happened. Only checks major changes in the variants, not minor inner", + "values." + ] + }, + { + "name": "UnexpectedTargetSnapshotFailed", + "fields": [], + "index": 1, + "docs": [ + "Target snapshot creation failed" + ] + }, + { + "name": "UnexpectedVoterSnapshotFailed", + "fields": [], + "index": 2, + "docs": [ + "Voter snapshot creation failed" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 246, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "types", + "Phase" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SignedValidation", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Snapshot", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Done", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Export", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VerificationFailed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": null, + "type": 248, + "typeName": "FeasibilityError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A verification failed at the given page.", + "", + "NOTE: if the index is 0, then this could mean either the feasibility of the last page", + "was wrong, or the final checks of `finalize_verification` failed." + ] + }, + { + "name": "Verified", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The given page of a solution has been verified, with the given number of winners being", + "found in it." + ] + }, + { + "name": "Queued", + "fields": [ + { + "name": null, + "type": 250, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": null, + "type": 251, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A solution with the given score has replaced our current best solution." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 248, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "FeasibilityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "WrongWinnerCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SnapshotUnavailable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "InvalidVote", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "InvalidVoter", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidWinner", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "InvalidScore", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "InvalidRound", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ScoreTooLow", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "FailedToBoundSupport", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "NposElection", + "fields": [ + { + "name": null, + "type": 249, + "typeName": "sp_npos_elections::Error", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [ + "sp_npos_elections", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionWeightOverflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SolutionTargetOverflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SolutionInvalidIndex", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SolutionInvalidPageIndex", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ArithmeticError", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "InvalidSupportEdge", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyVoters", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "BoundsExceeded", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "DuplicateVoter", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DuplicateTarget", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 251, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 250 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 250, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Registered", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 250, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Upcoming submission has been registered for the given account, with the given score." + ] + }, + { + "name": "Stored", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A page of solution solution with the given index has been stored for the given account." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The given account has been rewarded with the given amount." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The given account has been slashed with the given amount." + ] + }, + { + "name": "Ejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The given solution, for the given round, was ejected." + ] + }, + { + "name": "Discarded", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given account has been discarded." + ] + }, + { + "name": "Bailed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given account has bailed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 253, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 254, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "StakerRemoved", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A subsequent event of `Withdrawn`, indicating that `stash` was fully removed from the", + "system." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "next", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 255, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 257, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Report of a controller batch deprecation." + ] + }, + { + "name": "CurrencyMigrated", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "force_withdraw", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Staking balance migrated from locks to holds, with any balance that could not be held", + "is force withdrawn." + ] + }, + { + "name": "PagedElectionProceeded", + "fields": [ + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "result", + "type": 258, + "typeName": "Result", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A page from a multi-page election was fetched. A number of these are followed by", + "`StakersElected`.", + "", + "`Ok(count)` indicates the give number of stashes were added.", + "`Err(index)` indicates that the stashes after index were dropped.", + "`Err(0)` indicates that an error happened but no stashes were dropped nor added.", + "", + "The error indicates that a number of validators were dropped due to excess size, but", + "the overall election will continue." + ] + }, + { + "name": "OffenceReported", + "fields": [ + { + "name": "offence_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An offence for the given validator, for the given percentage of their stake, at the", + "given era as been reported." + ] + }, + { + "name": "SlashComputed", + "fields": [ + { + "name": "offence_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "offender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An offence has been processed and the corresponding slash has been computed." + ] + }, + { + "name": "SlashCancelled", + "fields": [ + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An unapplied slash has been cancelled." + ] + }, + { + "name": "SessionRotated", + "fields": [ + { + "name": "starting_session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "active_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "planned_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Session change has been triggered.", + "", + "If planned_era is one era ahead of active_era, it implies new era is being planned and", + "election is ongoing." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 259, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Something occurred that should never happen under normal operation.", + "Logged as an event for fail-safe observability." + ] + }, + { + "name": "OffenceTooOld", + "fields": [ + { + "name": "offence_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 23, + "docs": [ + "An offence was reported that was too old to be processed, and thus was dropped." + ] + }, + { + "name": "EraPruned", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 24, + "docs": [ + "An old era with the given index was pruned." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_staking_async", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_staking_async", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 256, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 256, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 233 + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [ + "pallet_staking_async", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "E", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "EraDurationBoundExceeded", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "UnknownValidatorActivation", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 261, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 262, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 261, + "type": { + "path": [ + "pezkuwi_runtime_common", + "impls", + "VersionedLocatableAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": "location", + "type": 154, + "typeName": "xcm::v3::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 153, + "typeName": "xcm::v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 165, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 164, + "typeName": "xcm::v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": "location", + "type": 83, + "typeName": "xcm::v5::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 118, + "typeName": "xcm::v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [ + "teyrchains_common", + "pay", + "VersionedLocatableAccount" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 165, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "account_id", + "type": 165, + "typeName": "xcm::v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": "location", + "type": 83, + "typeName": "xcm::v5::Location", + "docs": [] + }, + { + "name": "account_id", + "type": 83, + "typeName": "xcm::v5::Location", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 264, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account has voted" + ] + }, + { + "name": "VoteRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 264, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A vote has been removed" + ] + }, + { + "name": "VoteUnlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "class", + "type": 194, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The lockup period of a conviction vote expired, and the funds have been unlocked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 264, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 265, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 194, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 267, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 194, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 267, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 651, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 651, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 651, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 651, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 651, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 651, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 267, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 268 + }, + { + "name": "H", + "type": 778 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 199, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 269, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "fields": [ + { + "name": null, + "type": 273, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 294, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TeyrchainInfo", + "fields": [ + { + "name": null, + "type": 295, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 304, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 305, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 307, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 318, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 322, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 324, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "CollatorSelection", + "fields": [ + { + "name": null, + "type": 331, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 332, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "XcmpQueue", + "fields": [ + { + "name": null, + "type": 335, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 336, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "fields": [ + { + "name": null, + "type": 380, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "ToPezkuwiXcmRouter", + "fields": [ + { + "name": null, + "type": 381, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 382, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 392, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "RemoteProxyRelayChain", + "fields": [ + { + "name": null, + "type": 394, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 397, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 402, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "fields": [ + { + "name": null, + "type": 422, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 424, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 429, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 432, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 438, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 444, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "StakingRcClient", + "fields": [ + { + "name": null, + "type": 445, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MultiBlockElection", + "fields": [ + { + "name": null, + "type": 452, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionVerifier", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "MultiBlockElectionUnsigned", + "fields": [ + { + "name": null, + "type": 463, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 541, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 543, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 558, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 559, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 562, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 565, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 566, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 567, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 568, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "AhOps", + "fields": [ + { + "name": null, + "type": 569, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "fields": [ + { + "name": null, + "type": 570, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 269, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 270, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 272, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "do_task", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 270, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 271 + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_data", + "fields": [ + { + "name": "data", + "type": 274, + "typeName": "BasicTeyrchainInherentData", + "docs": [] + }, + { + "name": "inbound_messages_data", + "type": 282, + "typeName": "InboundMessagesData", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current validation data.", + "", + "This should be invoked exactly once per block. It will panic at the finalization", + "phase if the call was not invoked.", + "", + "The dispatch origin for this call must be `Inherent`", + "", + "As a side effect, this function upgrades the current validation function", + "if the appropriate time has come." + ] + }, + { + "name": "sudo_send_upward_message", + "fields": [ + { + "name": "message", + "type": 14, + "typeName": "UpwardMessage", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 274, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "BasicTeyrchainInherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validation_data", + "type": 275, + "typeName": "PersistedValidationData", + "docs": [] + }, + { + "name": "relay_chain_state", + "type": 277, + "typeName": "sp_trie::StorageProof", + "docs": [] + }, + { + "name": "relay_parent_descendants", + "type": 279, + "typeName": "Vec", + "docs": [] + }, + { + "name": "collator_peer_id", + "type": 281, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PersistedValidationData" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_head", + "type": 276, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "relay_parent_storage_root", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HeadData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "sp_trie", + "storage_proof", + "StorageProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "trie_nodes", + "type": 278, + "typeName": "BTreeSet>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 272, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 280 + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 87, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 203 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 203, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "InboundMessagesData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "downward_messages", + "type": 283, + "typeName": "AbridgedInboundDownwardMessages", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 288, + "typeName": "AbridgedInboundHrmpMessages", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "AbridgedInboundMessagesCollection" + ], + "params": [ + { + "name": "Message", + "type": 284 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "full_messages", + "type": 285, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hashed_messages", + "type": 286, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "msg", + "type": 14, + "typeName": "DownwardMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 284 + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 287 + } + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [ + "pezcumulus_primitives_teyrchain_inherent", + "HashedMessage" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "RelayChainBlockNumber", + "docs": [] + }, + { + "name": "msg_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "AbridgedInboundMessagesCollection" + ], + "params": [ + { + "name": "Message", + "type": 289 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "full_messages", + "type": 291, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hashed_messages", + "type": 292, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 187, + 290 + ] + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 289 + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 293 + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 187, + 287 + ] + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 295, + "type": { + "path": [ + "staging_teyrchain_info", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 296, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_cursor", + "fields": [ + { + "name": "cursor", + "type": 297, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Allows root to set a cursor to forcefully start, stop or forward the migration process.", + "", + "Should normally not be needed and is only in place as emergency measure. Note that", + "restarting the migration process in this manner will not call the", + "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event." + ] + }, + { + "name": "force_set_active_cursor", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 301, + "typeName": "Option>", + "docs": [] + }, + { + "name": "started_at", + "type": 201, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allows root to set an active cursor to forcefully start/forward the migration process.", + "", + "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the", + "`started_at` value to the next block number. Otherwise this would not be possible, since", + "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`", + "indicates that the current block number plus one should be used." + ] + }, + { + "name": "force_onboard_mbms", + "fields": [], + "index": 2, + "docs": [ + "Forces the onboarding of the migrations.", + "", + "This process happens automatically on a runtime upgrade. It is in place as an emergency", + "measurement. The cursor needs to be `None` for this to succeed." + ] + }, + { + "name": "clear_historic", + "fields": [ + { + "name": "selector", + "type": 302, + "typeName": "HistoricCleanupSelector>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clears the `Historic` set.", + "", + "`map_cursor` must be set to the last value that was returned by the", + "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a", + "way that will result in a sensible weight." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 297, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 298 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 298, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [ + "pallet_migrations", + "MigrationCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 299 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Active", + "fields": [ + { + "name": null, + "type": 300, + "typeName": "ActiveCursor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Stuck", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [ + "pallet_migrations", + "ActiveCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 299 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 301, + "typeName": "Option", + "docs": [] + }, + { + "name": "started_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 299 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 299, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [ + "pallet_migrations", + "HistoricCleanupSelector" + ], + "params": [ + { + "name": "Id", + "type": 205 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Specific", + "fields": [ + { + "name": null, + "type": 303, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wildcard", + "fields": [ + { + "name": "limit", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "previous_cursor", + "type": 36, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 205 + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 225, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 305, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 306, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 306, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 306, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 306, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 39, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 306, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 39, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 308, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 308, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuance", + "fields": [ + { + "name": null, + "type": 309, + "typeName": "dynamic_params::issuance::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 311, + "typeName": "dynamic_params::treasury::Parameters", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StakingElection", + "fields": [ + { + "name": null, + "type": 314, + "typeName": "dynamic_params::staking_election::Parameters", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 315, + "typeName": "dynamic_params::scheduler::Parameters", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "dynamic_params::message_queue::Parameters", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "issuance", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "MinInflation", + "docs": [] + }, + { + "name": null, + "type": 310, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "MaxInflation", + "docs": [] + }, + { + "name": null, + "type": 310, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "IdealStake", + "docs": [] + }, + { + "name": null, + "type": 310, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "Falloff", + "docs": [] + }, + { + "name": null, + "type": 310, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 69 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 69, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "treasury", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BurnPortion", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "BurnPortion", + "docs": [] + }, + { + "name": null, + "type": 312, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BurnDestination", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "BurnDestination", + "docs": [] + }, + { + "name": null, + "type": 313, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 71 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 71, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 72 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 72, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "staking_election", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedPhase", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "SignedPhase", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxSignedSubmissions", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MaxSignedSubmissions", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "UnsignedPhase", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "UnsignedPhase", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MinerPages", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "MinerPages", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MaxElectingVoters", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "MaxElectingVoters", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TargetSnapshotPerBlock", + "fields": [ + { + "name": null, + "type": 58, + "typeName": "TargetSnapshotPerBlock", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "MaxEraDuration", + "fields": [ + { + "name": null, + "type": 59, + "typeName": "MaxEraDuration", + "docs": [] + }, + { + "name": null, + "type": 181, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "scheduler", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxScheduledPerBlock", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "MaxScheduledPerBlock", + "docs": [] + }, + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaximumWeight", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "MaximumWeight", + "docs": [] + }, + { + "name": null, + "type": 77, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "dynamic_params", + "message_queue", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxOnInitWeight", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "MaxOnInitWeight", + "docs": [] + }, + { + "name": null, + "type": 317, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxOnIdleWeight", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "MaxOnIdleWeight", + "docs": [] + }, + { + "name": null, + "type": 317, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 317, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 77 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 77, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 321, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 319, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 41 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 320, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 90, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 320, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 41 + } + }, + "docs": [] + } + }, + { + "id": 321, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 323, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 323, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 319, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 323, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 325, + "typeName": "EcdsaSignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make a claim to collect your DOTs.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to claim is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)", + "", + "and `address` matches the `dest` account.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "mint_claim", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vesting_schedule", + "type": 327, + "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>", + "docs": [] + }, + { + "name": "statement", + "type": 329, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Mint a new claim to collect DOTs.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "Parameters:", + "- `who`: The Ethereum address allowed to collect this claim.", + "- `value`: The number of DOTs that will be claimed.", + "- `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "We assume worst case that both vesting and statement is being inserted.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "claim_attest", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 325, + "typeName": "EcdsaSignature", + "docs": [] + }, + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Make a claim to collect your DOTs by signing a statement.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to `claim_attest` is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)(statement)", + "", + "and `address` matches the `dest` account; the `statement` must match that which is", + "expected according to your purchase arrangement.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim_attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "attest", + "fields": [ + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Attest to a statement, needed to finalize the claims process.", + "", + "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a", + "`TransactionExtension`.", + "", + "Unsigned Validation:", + "A call to attest is deemed valid if the sender has a `Preclaim` registered", + "and provides a `statement` which is expected for the account.", + "", + "Parameters:", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to do pre-validation on `attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "move_claim", + "fields": [ + { + "name": "old", + "type": 103, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "new", + "type": 103, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "maybe_preclaim", + "type": 73, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 325, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EcdsaSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 326, + "typeName": "[u8; 65]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 327, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 328 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 328, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 329, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 330 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 330, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 330, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "StatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Regular", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Saft", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 331, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_invulnerables", + "fields": [ + { + "name": "new", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the list of invulnerable (fixed) collators. These collators must do some", + "preparation, namely to have registered session keys.", + "", + "The call will remove any accounts that have not registered keys from the set. That is,", + "it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as", + "acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables.", + "", + "This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It", + "is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A", + "`batch_all` can also be used to enforce atomicity. If any candidates are included in", + "`new`, they should be removed with `remove_invulnerable_candidate` after execution.", + "", + "Must be called by the `UpdateOrigin`." + ] + }, + { + "name": "set_desired_candidates", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the ideal number of non-invulnerable collators. If lowering this number, then the", + "number of running collators could be higher than this figure. Aside from that edge case,", + "there should be no other way to have more candidates than the desired number.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "set_candidacy_bond", + "fields": [ + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the candidacy bond amount.", + "", + "If the candidacy bond is increased by this call, all current candidates which have a", + "deposit lower than the new bond will be kicked from the list and get their deposits", + "back.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "register_as_candidate", + "fields": [], + "index": 3, + "docs": [ + "Register this account as a collator candidate. The account must (a) already have", + "registered session keys and (b) be able to reserve the `CandidacyBond`.", + "", + "This call is not available to `Invulnerable` collators." + ] + }, + { + "name": "leave_intent", + "fields": [], + "index": 4, + "docs": [ + "Deregister `origin` as a collator candidate. Note that the collator can only leave on", + "session change. The `CandidacyBond` will be unreserved immediately.", + "", + "This call will fail if the total number of candidates would drop below", + "`MinEligibleCollators`." + ] + }, + { + "name": "add_invulnerable", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Add a new account `who` to the list of `Invulnerables` collators. `who` must have", + "registered session keys. If `who` is a candidate, they will be removed.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "remove_invulnerable", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must", + "be sorted.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "update_bond", + "fields": [ + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`.", + "", + "Setting a `new_deposit` that is lower than the current deposit while `origin` is", + "occupying a top-`DesiredCandidates` slot is not allowed.", + "", + "This call will fail if `origin` is not a collator candidate, the updated bond is lower", + "than the minimum candidacy bond, and/or the amount cannot be reserved." + ] + }, + { + "name": "take_candidate_slot", + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The caller `origin` replaces a candidate `target` in the collator candidate list by", + "reserving `deposit`. The amount `deposit` reserved by the caller must be greater than", + "the existing bond of the target it is trying to replace.", + "", + "This call will fail if the caller is already a collator candidate or invulnerable, the", + "caller does not have registered session keys, the target is not a collator candidate,", + "and/or the `deposit` amount cannot be reserved." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 332, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 333, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 333, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "aura", + "type": 334, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 334, + "type": { + "path": [ + "sp_consensus_aura", + "sr25519", + "app_sr25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 335, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "suspend_xcm_execution", + "fields": [], + "index": 1, + "docs": [ + "Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.", + "", + "- `origin`: Must pass `ControllerOrigin`." + ] + }, + { + "name": "resume_xcm_execution", + "fields": [], + "index": 2, + "docs": [ + "Resumes all XCM executions for the XCMP queue.", + "", + "Note that this function doesn't change the status of the in/out bound channels.", + "", + "- `origin`: Must pass `ControllerOrigin`." + ] + }, + { + "name": "update_suspend_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Overwrites the number of pages which must be in the queue for the other side to be", + "told to suspend their sending.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.suspend_value`" + ] + }, + { + "name": "update_drop_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Overwrites the number of pages which must be in the queue after which we drop any", + "further messages from the channel.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.drop_threshold`" + ] + }, + { + "name": "update_resume_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Overwrites the number of pages which the queue must be reduced to before it signals", + "that message sending may recommence after it has been suspended.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.resume_threshold`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 336, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 337, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "**This function is deprecated: Use `limited_teleport_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 367, + "typeName": "Box::RuntimeCall>>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Execute an XCM message from a local, signed, origin.", + "", + "An event is deposited indicating whether `msg` could be executed completely or only", + "partially.", + "", + "No more than `max_weight` will be used in its attempted execution. If this is less than", + "the maximum amount of weight that the message could take to be executed, then no", + "execution attempt will be made." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Extoll that a particular destination can be communicated with through a particular", + "version of XCM.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The destination that is being described.", + "- `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a safe XCM version (the version that XCM should be encoded with if the most recent", + "version a destination can accept is unknown).", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 180, + "typeName": "Box", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Ask a location to notify us regarding their XCM version and any changes to it.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 180, + "typeName": "Box", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Require that a particular destination should no longer notify us regarding any XCM", + "version changes.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set or unset the global suspension state of the XCM executor.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `suspended`: `true` to suspend, `false` to resume." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve, or through teleports.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for", + "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the", + "operation will fail and the sent assets may be at risk.", + "", + "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable", + "to `dest`, no limitations imposed on `fees`.", + " - for local reserve: transfer assets to sovereign account of destination chain and", + " forward a notification XCM to `dest` to mint and deposit reserve-based assets to", + " `beneficiary`.", + " - for destination reserve: burn local assets and forward a notification to `dest` chain", + " to withdraw the reserve assets from this chain's sovereign account and deposit them", + " to `beneficiary`.", + " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves", + " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint", + " and deposit reserve-based assets to `beneficiary`.", + " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport", + " assets and deposit them to `beneficiary`.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `X2(Parent,", + " Teyrchain(..))` to send from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send", + " from relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "Box", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claims assets trapped on this pallet because of leftover assets during XCM execution.", + "", + "- `origin`: Anyone can call this extrinsic.", + "- `assets`: The exact assets that were trapped. Use the version to specify what version", + "was the latest when they were trapped.", + "- `beneficiary`: The location/account where the claimed assets will be deposited." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 149, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets_transfer_type", + "type": 378, + "typeName": "Box", + "docs": [] + }, + { + "name": "remote_fees_id", + "type": 379, + "typeName": "Box", + "docs": [] + }, + { + "name": "fees_transfer_type", + "type": 378, + "typeName": "Box", + "docs": [] + }, + { + "name": "custom_xcm_on_dest", + "type": 337, + "typeName": "Box>", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Transfer assets from the local chain to the destination chain using explicit transfer", + "types for assets and fees.", + "", + "`assets` must have same reserve location or may be teleportable to `dest`. Caller must", + "provide the `assets_transfer_type` to be used for `assets`:", + " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `TransferType::DestinationReserve`: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`", + " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another", + " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically", + " the remote `reserve` is Asset Hub.", + " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to", + " mint/teleport assets and deposit them to `beneficiary`.", + "", + "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to", + "buy execution using transferred `assets` identified by `remote_fees_id`.", + "Make sure enough of the specified `remote_fees_id` asset is included in the given list", + "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "`remote_fees_id` may use different transfer type than rest of `assets` and can be", + "specified through `fees_transfer_type`.", + "", + "The caller needs to specify what should happen to the transferred assets once they reach", + "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which", + "contains the instructions to execute on `dest` as a final step.", + " This is usually as simple as:", + " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,", + " but could be something more exotic like sending the `assets` even further.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from", + " teyrchain across a bridge to another ecosystem destination.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.", + "- `remote_fees_id`: One of the included `assets` to be used to pay fees.", + "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.", + "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the", + " transfer, which also determines what happens to the assets on the destination chain.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "add_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "expires", + "type": 181, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Authorize another `aliaser` location to alias into the local `origin` making this call.", + "The `aliaser` is only authorized until the provided `expiry` block number.", + "The call can also be used for a previously authorized alias in order to update its", + "`expiry` block number.", + "", + "Usually useful to allow your local account to be aliased into from a remote location", + "also under your control (like your account on another chain).", + "", + "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in", + "their/your name. Once authorized using this call, the `aliaser` can freely impersonate", + "`origin` in XCM programs executed on the local chain." + ] + }, + { + "name": "remove_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 180, + "typeName": "Box", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a previously authorized `aliaser` from the list of locations that can alias into", + "the local `origin` making this call." + ] + }, + { + "name": "remove_all_authorized_aliases", + "fields": [], + "index": 16, + "docs": [ + "Remove all previously authorized `aliaser`s that can alias into the local `origin`", + "making this call." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 337, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 338, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 112, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 339, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 340 + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 341, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 133, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 134, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 155, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 338, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 338, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 158, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 155, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 345, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 343 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 343, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 344 + ] + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 346 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 348, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 347, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 347, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 87, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 346 + } + }, + "docs": [] + } + }, + { + "id": 349, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 154 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 154, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 351, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 352, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 153, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 353, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 153, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 353, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 354, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 355, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 356 + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 357, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 362, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 133, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 134, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 166, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 362, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 170, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 166, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 362, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 358, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 359 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 361, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 360, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 360, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 87, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 359 + } + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 165 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 165, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 365, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 366, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 366, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 372, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 369, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 369, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 370 + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 341, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 133, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 371, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 155, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 351, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 150, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 158, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 155, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 338, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 152, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 372, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 373, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 374 + } + }, + "docs": [] + } + }, + { + "id": 374, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 357, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 362, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 133, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 371, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 166, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 364, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 372, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 372, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 161, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 362, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 342, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 170, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 166, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 354, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 163, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 362, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 376, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 376, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 377 + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 123, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 133, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 77, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 371, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 136, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 115, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 130, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 89, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 84, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 139, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 132, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 117, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 142, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 144, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 375, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 145, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 378, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LocalReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DestinationReserve", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "RemoteReserve", + "fields": [ + { + "name": null, + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 153, + "typeName": "v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 118, + "typeName": "v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 380, + "type": { + "path": [ + "pezcumulus_pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 381, + "type": { + "path": [ + "pallet_xcm_bridge_hub_router", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_bridge_status", + "fields": [ + { + "name": "bridge_id", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "is_congested", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Notification about congested bridge queue." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 382, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 186, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 186, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 383, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 384, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 384, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 385, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 384, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + }, + { + "name": "if_else", + "fields": [ + { + "name": "main", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "fallback", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Dispatch a fallback call in the event the main call fails to execute.", + "May be called from any origin except `None`.", + "", + "This function first attempts to dispatch the `main` call.", + "If the `main` call fails, the `fallback` is attemted.", + "if the fallback is successfully dispatched, the weights of both calls", + "are accumulated and an event containing the main call error is deposited.", + "", + "In the event of a fallback failure the whole call fails", + "with the weights returned.", + "", + "- `main`: The main call to be dispatched. This is the primary action to execute.", + "- `fallback`: The fallback call to be dispatched in case the `main` call fails.", + "", + "## Dispatch Logic", + "- If the origin is `root`, both the main and fallback calls are executed without", + " applying any origin filters.", + "- If the origin is not `root`, the origin filter is applied to both the `main` and", + " `fallback` calls.", + "", + "## Use Case", + "- Some use cases might involve submitting a `batch` type call in either main, fallback", + " or both." + ] + }, + { + "name": "dispatch_as_fallible", + "fields": [ + { + "name": "as_origin", + "type": 385, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 384, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 268 + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 387, + "typeName": "pallet_xcm::Origin", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "fields": [ + { + "name": null, + "type": 388, + "typeName": "pezcumulus_pallet_xcm::Origin", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 389, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 93, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Authorized", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Response", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Location", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "pezcumulus_pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Relay", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SiblingTeyrchain", + "fields": [ + { + "name": null, + "type": 187, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "governance", + "origins", + "pallet_custom_origins", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingAdmin", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Treasurer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "FellowshipAdmin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "GeneralAdmin", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AuctionAdmin", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LeaseAdmin", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ReferendumCanceller", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ReferendumKiller", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "SmallTipper", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BigTipper", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "SmallSpender", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MediumSpender", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "BigSpender", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "WhitelistedCaller", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "FellowshipInitiates", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Fellows", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "FellowshipExperts", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FellowshipMasters", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "Fellowship1Dan", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "Fellowship2Dan", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "Fellowship3Dan", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Fellowship4Dan", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "Fellowship5Dan", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "Fellowship6Dan", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "Fellowship7Dan", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "Fellowship8Dan", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "Fellowship9Dan", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "WishForChange", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 391, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 391, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 191, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Poke the deposit reserved for an existing multisig operation.", + "", + "The dispatch origin for this call must be _Signed_ and must be the original depositor of", + "the multisig operation.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "- `threshold`: The total number of approvals needed for this multisig.", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + " multisig.", + "- `call_hash`: The hash of the call this deposit is reserved for.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 391, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 191 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 191, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 392, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 393, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `create_pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 194, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 87, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`create_pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `create_pure` to create this account.", + "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `create_pure`.", + "- `height`: The height of the chain when the call to `create_pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `create_pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 393, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 10, + "docs": [ + "Poke / Adjust deposits made for proxies and announcements based on current values.", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 393, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 193 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 193, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_remote_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remote_proxy", + "fields": [ + { + "name": "real", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 393, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "proof", + "type": 395, + "typeName": "RemoteProxyProof>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised on a remote", + "chain.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account.", + "- `proof`: The proof from the remote chain about the existence of the proxy." + ] + }, + { + "name": "register_remote_proxy_proof", + "fields": [ + { + "name": "proof", + "type": 395, + "typeName": "RemoteProxyProof>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a given remote proxy proof in the current [`dispatch_context`].", + "", + "The registered remote proof can then be used later in the same context to execute a", + "remote proxy call. This is for example useful when having a multisig operation. The", + "multisig call can use [`Self::remote_proxy_with_registered_proof`] to get an approval by", + "the members of the multisig. The final execution of the multisig call should be at least", + "a batch of `register_remote_proxy_proof` and the multisig call that uses", + "`remote_proxy_with_registered_proof`. This way the final approver can use a recent proof", + "to prove the existence of the remote proxy. Otherwise it would require the multisig", + "members to approve the call in [`Config::MaxStorageRootsToKeep`] amount of time.", + "", + "It is supported to register multiple proofs, but the proofs need to be consumed in the", + "reverse order as they were registered. Basically this means last in, first out.", + "", + "The [`dispatch_context`] spans the entire lifetime of a transaction and every call in", + "the transaction gets access to the same context.", + "", + "# Example", + "", + "```ignore", + "batch([", + " register_remote_proxy_proof,", + " as_multisig(remote_proxy_with_registered_proof(transfer))", + "])", + "```", + "", + "As `proofs` can not be verified indefinitely (the time the storage roots are stored is", + "limited) this function provides the possibility to provide a \"fresh proof\" at time of", + "dispatch. As in the example above, this could be useful for multisig operation that", + "depend on multiple members to approve a certain action, which can take multiple days." + ] + }, + { + "name": "remote_proxy_with_registered_proof", + "fields": [ + { + "name": "real", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 393, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised on a remote", + "chain.", + "", + "The dispatch origin for this call must be _Signed_. The difference to", + "[`Self::remote_proxy`] is that the proof nees to registered before using", + "[`Self::register_remote_proxy_proof`] (see for more information).", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 395, + "type": { + "path": [ + "pallet_remote_proxy", + "pallet", + "RemoteProxyProof" + ], + "params": [ + { + "name": "RemoteBlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RelayChain", + "fields": [ + { + "name": "proof", + "type": 272, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "RemoteBlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Poke the deposit reserved for an index.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "The transaction fees is waived if the deposit is changed after poking/reconsideration.", + "", + "- `index`: the index whose deposit is to be poked/reconsidered.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 397, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 91, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 87, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 398, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 399, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "check_owner", + "type": 400, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "maybe_check_delegate", + "type": 400, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 202, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 202, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 199, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 199, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 401, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 400, + "typeName": "Option>", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 399, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 87, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 400, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 319 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 319, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 402, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 403, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`CollectionDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 403, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 410, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "NOTE: The collection must have 0 items to be destroyed.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(m + c + a)` where:", + "- `m = witness.item_metadatas`", + "- `c = witness.item_configs`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness_data", + "type": 411, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must comply with the `mint_settings` rules.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object. If", + " the mint price is set, then it should be additionally confirmed in the `witness_data`.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "item_config", + "type": 413, + "typeName": "ItemConfig", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "The origin must conform to `ForceOrigin` or must be Signed and the signing account must", + "be the owner of the `item`.", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "", + "Emits `Burned`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "lock_settings", + "type": 404, + "typeName": "CollectionSettings", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 400, + "typeName": "Option>", + "docs": [] + }, + { + "name": "admin", + "type": 400, + "typeName": "Option>", + "docs": [] + }, + { + "name": "freezer", + "type": 400, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Note: by setting the role to `None` only the `ForceOrigin` will be able to change it", + "after to `Some(account)`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "config", + "type": 403, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "maybe_deadline", + "type": 201, + "typeName": "Option>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin", + "of the `collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only.", + "When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` Admin only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 203, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness", + "type": 414, + "typeName": "CancelAttributesApprovalWitness", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "mint_settings", + "type": 406, + "typeName": "MintSettings, BlockNumberFor, T::\nCollectionId>", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer", + "of the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 401, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 400, + "typeName": "Option>", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 415, + "typeName": "BoundedVec, T::MaxTips>", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_desired_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_price", + "type": 207, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "witness_price", + "type": 207, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 418, + "typeName": "Box>", + "docs": [] + }, + { + "name": "signature", + "type": 419, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Issuer of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 421, + "typeName": "PreSignedAttributesOf", + "docs": [] + }, + { + "name": "signature", + "type": 419, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Admin of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 403, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 404, + "typeName": "CollectionSettings", + "docs": [] + }, + { + "name": "max_supply", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_settings", + "type": 406, + "typeName": "MintSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 405 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "CollectionSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "UnlockedMaxSupply", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DepositRequired", + "fields": [], + "index": 16, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 407, + "typeName": "MintType", + "docs": [] + }, + { + "name": "price", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "start_block", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "end_block", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "default_item_settings", + "type": 408, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Public", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "HolderOf", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 409 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "ItemSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "item_metadatas", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 87, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 87, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 412 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 412, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owned_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_price", + "type": 401, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 408, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 416 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 417, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 416 + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 270, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "only_account", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + }, + { + "name": "mint_price", + "type": 401, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 270, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "namespace", + "type": 206, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 91, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 83, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 423, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fractionalize", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Lock the NFT and mint a new fungible asset.", + "", + "The dispatch origin for this call must be Signed.", + "The origin must be the owner of the NFT they are trying to lock.", + "", + "`Deposit` funds of sender are reserved.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the new asset. It must not exist.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the newly created asset.", + "- `fractions`: The total issuance of the newly created asset class.", + "", + "Emits `NftFractionalized` event when successful." + ] + }, + { + "name": "unify", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Burn the total issuance of the fungible asset and return (unlock) the locked NFT.", + "", + "The dispatch origin for this call must be Signed.", + "", + "`Deposit` funds will be returned to `asset_creator`.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the asset being returned and destroyed. Must match", + "the original ID of the created asset, corresponding to the NFT.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the unified NFT.", + "", + "Emits `NftUnified` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 424, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 91, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 425, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "asset1", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 83, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Creates an empty liquidity pool and an associated new `lp_token` asset", + "(the id of which is returned in the `Event::PoolCreated` event).", + "", + "Once a pool is created, someone may [`Pallet::add_liquidity`] to it." + ] + }, + { + "name": "add_liquidity", + "fields": [ + { + "name": "asset1", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount1_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Provide liquidity into the pool of `asset1` and `asset2`.", + "NOTE: an optimal amount of asset1 and asset2 will be calculated and", + "might be different than the provided `amount1_desired`/`amount2_desired`", + "thus you should provide the min amount you're happy to provide.", + "Params `amount1_min`/`amount2_min` represent that.", + "`mint_to` will be sent the liquidity tokens that represent this share of the pool.", + "", + "NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity,", + "batch an atomic call with [`Pallet::add_liquidity`] and", + "[`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`]", + "calls to render the liquidity withdrawable and rectify the exchange rate.", + "", + "Once liquidity is added, someone may successfully call", + "[`Pallet::swap_exact_tokens_for_tokens`]." + ] + }, + { + "name": "remove_liquidity", + "fields": [ + { + "name": "asset1", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "lp_token_burn", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be", + "burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive`", + "it's possible to control the min amount of returned tokens you're happy with." + ] + }, + { + "name": "swap_exact_tokens_for_tokens", + "fields": [ + { + "name": "path", + "type": 426, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_out_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap the exact amount of `asset1` into `asset2`.", + "`amount_out_min` param allows you to specify the min amount of the `asset2`", + "you're happy to receive.", + "", + "[`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "swap_tokens_for_exact_tokens", + "fields": [ + { + "name": "path", + "type": 426, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_in_max", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap any amount of `asset1` to get the exact amount of `asset2`.", + "`amount_in_max` param allows to specify the max amount of the `asset1`", + "you're happy to provide.", + "", + "[`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "asset1", + "type": 83, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 83, + "typeName": "Box", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Touch an existing pool to fulfill prerequisites before providing liquidity, such as", + "ensuring that the pool's accounts are in place. It is typically useful when a pool", + "creator removes the pool's accounts and does not provide a liquidity. This action may", + "involve holding assets from the caller as a deposit for creating the pool's accounts.", + "", + "The origin must be Signed.", + "", + "- `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).", + "- `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).", + "", + "Emits `Touched` event when successful." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 426, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 83 + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumberFromProviderOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "fields": [], + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "maybe_account", + "type": 400, + "typeName": "Option>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Poke deposits for recovery configurations and / or active recoveries.", + "", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `maybe_account`: Optional recoverable account for which you have an active recovery", + "and want to adjust the deposit for the active recovery.", + "", + "This function checks both recovery configuration deposit and active recovery deposits", + "of the caller:", + "- If the caller has created a recovery configuration, checks and adjusts its deposit", + "- If the caller has initiated any active recoveries, and provides the account in", + "`maybe_account`, checks and adjusts those deposits", + "", + "If any deposit is updated, the difference will be reserved/unreserved from the caller's", + "account.", + "", + "The transaction is made free if any deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if any deposit is updated.", + "Multiple events may be emitted in case both types of deposits are updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 428, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society." + ] + }, + { + "name": "unbid", + "fields": [], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder." + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout." + ] + }, + { + "name": "unvouch", + "fields": [], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`)." + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`)." + ] + }, + { + "name": "payout", + "fields": [], + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining." + ] + }, + { + "name": "waive_repay", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Repay the payment previously given to the member with the signed origin, remove any", + "pending payments, and elevate them from rank 0 to rank 1." + ] + }, + { + "name": "found_society", + "fields": [ + { + "name": "founder", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "rules", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group.", + "- `rules` - The rules of this society concerning membership.", + "", + "Complexity: O(1)" + ] + }, + { + "name": "dissolve", + "fields": [], + "index": 9, + "docs": [ + "Dissolve the society and remove all members.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member." + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "forgive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be Signed from the Founder.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member." + ] + }, + { + "name": "set_parameters", + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the maximum number of members in society and the maximum number of new candidates", + "in a single intake period.", + "", + "The dispatch origin for this call must be Signed by the Founder.", + "", + "Parameters:", + "- `max_members` - The maximum number of members for the society. This must be no less", + " than the current number of members.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group." + ] + }, + { + "name": "punish_skeptic", + "fields": [], + "index": 12, + "docs": [ + "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the", + "candidate." + ] + }, + { + "name": "claim_membership", + "fields": [], + "index": 13, + "docs": [ + "Transform an approved candidate into a member. Callable only by the", + "the candidate, and only after the period for voting has ended." + ] + }, + { + "name": "bestow_membership", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Transform an approved candidate into a member. Callable only by the Signed origin of the", + "Founder, only after the period for voting has ended and only when the candidate is not", + "clearly rejected." + ] + }, + { + "name": "kick_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove the candidate's application from the society. Callable only by the Signed origin", + "of the Founder, only after the period for voting has ended, and only when they do not", + "have a clear approval.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "resign_candidacy", + "fields": [], + "index": 16, + "docs": [ + "Remove the candidate's application from the society. Callable only by the candidate.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "drop_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a `candidate`'s failed application from the society. Callable by any", + "signed origin but only at the end of the subsequent round and only for", + "a candidate with more rejections than approvals.", + "", + "The bid deposit is lost and the voucher is banned." + ] + }, + { + "name": "cleanup_candidacy", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Remove up to `max` stale votes for the given `candidate`.", + "", + "May be called by any Signed origin, but only after the candidate's candidacy is ended." + ] + }, + { + "name": "cleanup_challenge", + "fields": [ + { + "name": "challenge_round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove up to `max` stale votes for the defender in the given `challenge_round`.", + "", + "May be called by any Signed origin, but only after the challenge round is ended." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 20, + "docs": [ + "Poke the deposit reserved when bidding.", + "", + "The dispatch origin for this call must be _Signed_ and must be the bidder.", + "", + "The transaction fee is waived if the deposit is changed after poking/reconsideration.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 429, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "eth_transact", + "fields": [ + { + "name": "payload", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server.", + "", + "# Parameters", + "", + "* `payload`: The encoded [`crate::evm::TransactionSigned`].", + "* `gas_limit`: The gas limit enforced during contract execution.", + "* `storage_deposit_limit`: The maximum balance that can be charged to the caller for", + " storage usage.", + "", + "# Note", + "", + "This call cannot be dispatched directly; attempting to do so will result in a failed", + "transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the", + "runtime converts it into a [`sp_runtime::generic::CheckedExtrinsic`] by recovering the", + "signer and validating the transaction." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 34, + "typeName": "Option<[u8; 32]>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Instantiates a contract from a previously deployed vm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed vm binary", + "must be supplied." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 34, + "typeName": "Option<[u8; 32]>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2`", + "\tsemantics are used. If `None` then `CRATE1` is used.", + "", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is deployed, and a `code_hash` is created for that code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "eth_instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 430, + "typeName": "U256", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Same as [`Self::instantiate_with_code`], but intended to be dispatched **only**", + "by an EVM transaction through the EVM compatibility layer.", + "", + "Calling this dispatchable ensures that the origin's nonce is bumped only once,", + "via the `CheckNonce` transaction extension. In contrast, [`Self::instantiate_with_code`]", + "also bumps the nonce after contract instantiation, since it may be invoked multiple", + "times within a batch call transaction." + ] + }, + { + "name": "eth_call", + "fields": [ + { + "name": "dest", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "value", + "type": 430, + "typeName": "U256", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Same as [`Self::call`], but intended to be dispatched **only**", + "by an EVM transaction through the EVM compatibility layer." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the size of the supplied `code`.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`]." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "map_account", + "fields": [], + "index": 7, + "docs": [ + "Register the callers account id so that it can be used in contract interactions.", + "", + "This will error if the origin is already mapped or is a eth native `Address20`. It will", + "take a deposit that can be released by calling [`Self::unmap_account`]." + ] + }, + { + "name": "unmap_account", + "fields": [], + "index": 8, + "docs": [ + "Unregister the callers account id in order to free the deposit.", + "", + "There is no reason to ever call this function other than freeing up the deposit.", + "This is only useful when the account should no longer be used." + ] + }, + { + "name": "dispatch_as_fallback_account", + "fields": [ + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch an `call` with the origin set to the callers fallback address.", + "", + "Every `AccountId32` can control its corresponding fallback account. The fallback account", + "is the `AccountId20` with the last 12 bytes set to `0xEE`. This is essentially a", + "recovery function in case an `AccountId20` was used without creating a mapping first." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 430, + "type": { + "path": [ + "primitive_types", + "U256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 431, + "typeName": "[u64; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 431, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 434, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 435, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 272, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 272, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 434, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 436, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 436, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a teyrchain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 433, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 434 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 434, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 436, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 436, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 437, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is delegated (or transferred based on", + "[`adapter::StakeStrategyType`]) from the member to the pool account and immediately", + "increases the pool's bond.", + "", + "The method of transferring the amount to the pool account is determined by", + "[`adapter::StakeStrategyType`]. If the pool is configured to use", + "[`adapter::StakeStrategyType::Delegate`], the funds remain in the account of", + "the `origin`, while the pool gains the right to use these funds for staking.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 439, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to", + "have at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 230, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 440, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 440, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 441, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 441, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 441, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 442, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 443, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 443, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 443, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller is the pool's nominator or root." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 439, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 237, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 231, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 234, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The `root` role of the pool is _always_ allowed to claim the pool's commission.", + "", + "If the pool has set `CommissionClaimPermission::Permissionless`, then any account can", + "trigger the process of claiming the pool's commission.", + "", + "If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only", + "accounts", + "* `acc`, and", + "* the pool's root account", + "", + "may call this extrinsic on behalf of the pool.", + "", + "Pending commissions are paid out and added to the total claimed commission.", + "The total pending commission is reset to zero." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 235, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "The pending slash amount of the member must be equal or more than `ExistentialDeposit`.", + "This call can be dispatched permissionlessly (i.e. by any account). If the execution", + "is successful, fee is refunded and caller may be rewarded with a part of the slash", + "based on the [`crate::pallet::Config::StakeAdapter`] configuration." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 439, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 233 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 233, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 445, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "relay_session_report", + "fields": [ + { + "name": "report", + "type": 446, + "typeName": "SessionReport", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Called to indicate the start of a new session on the relay chain." + ] + }, + { + "name": "relay_new_offence_paged", + "fields": [ + { + "name": "offences", + "type": 449, + "typeName": "Vec<(SessionIndex, Offence)>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 446, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "SessionReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_points", + "type": 447, + "typeName": "Vec<(AccountId, u32)>", + "docs": [] + }, + { + "name": "activation_timestamp", + "type": 242, + "typeName": "Option<(u64, u32)>", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 448 + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 450 + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 451 + ] + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "Offence" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "reporters", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "manage", + "fields": [ + { + "name": "op", + "type": 453, + "typeName": "AdminOperation", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Manage this pallet.", + "", + "The origin of this call must be [`Config::AdminOrigin`].", + "", + "See [`AdminOperation`] for various operations that are possible." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 453, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "AdminOperation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ForceRotateRound", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceSetPhase", + "fields": [ + { + "name": null, + "type": 246, + "typeName": "Phase", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "EmergencySetSolution", + "fields": [ + { + "name": null, + "type": 454, + "typeName": "Box>>", + "docs": [] + }, + { + "name": null, + "type": 250, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "EmergencyFallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "SetMinUntrustedScore", + "fields": [ + { + "name": null, + "type": 250, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupports" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BOuter", + "type": null + }, + { + "name": "BInner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 455, + "typeName": "BoundedVec<(AccountId, BoundedSupport), BOuter>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 456 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 461, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 457 + ] + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Bound", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 458, + "typeName": "BoundedVec<(AccountId, ExtendedBalance), Bound>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 459 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 460, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 459 + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 456 + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 463, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "unsigned", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "paged_solution", + "type": 464, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit an unsigned solution.", + "", + "This works very much like an inherent, as only the validators are permitted to submit", + "anything. By default validators will compute this call in their `offchain_worker` hook", + "and try and submit it back.", + "", + "This is different from signed page submission mainly in that the solution page is", + "verified on the fly.", + "", + "The `paged_solution` may contain at most [`Config::MinerPages`] pages. They are", + "interpreted as msp -> lsp, as per [`crate::Pallet::msp_range_for`].", + "", + "For example, if `Pages = 4`, and `MinerPages = 2`, our full snapshot range would be [0,", + "1, 2, 3], with 3 being msp. But, in this case, then the `paged_raw_solution.pages` is", + "expected to correspond to `[snapshot(2), snapshot(3)]`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 464, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "types", + "PagedRawSolution" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution_pages", + "type": 465, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "score", + "type": 250, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 466 + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "staking", + "NposCompactSolution24" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 467, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 470, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 475, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 478, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 481, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 484, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 487, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 490, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 493, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 496, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 499, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 502, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 505, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 508, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 511, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 514, + "typeName": null, + "docs": [] + }, + { + "name": "votes17", + "type": 517, + "typeName": null, + "docs": [] + }, + { + "name": "votes18", + "type": 520, + "typeName": null, + "docs": [] + }, + { + "name": "votes19", + "type": 523, + "typeName": null, + "docs": [] + }, + { + "name": "votes20", + "type": 526, + "typeName": null, + "docs": [] + }, + { + "name": "votes21", + "type": 529, + "typeName": null, + "docs": [] + }, + { + "name": "votes22", + "type": 532, + "typeName": null, + "docs": [] + }, + { + "name": "votes23", + "type": 535, + "typeName": null, + "docs": [] + }, + { + "name": "votes24", + "type": 538, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 468 + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 469, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 194 + } + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 471 + } + }, + "docs": [] + } + }, + { + "id": 471, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 472, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 469, + 473 + ] + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 474 + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 194, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 476 + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 477, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 479 + } + }, + "docs": [] + } + }, + { + "id": 479, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 480, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 482 + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 483, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 485 + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 486, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 488 + } + }, + "docs": [] + } + }, + { + "id": 488, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 489, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 489, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 490, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 491 + } + }, + "docs": [] + } + }, + { + "id": 491, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 492, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 492, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 494 + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 495, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 495, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 497 + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 498, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 499, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 500 + } + }, + "docs": [] + } + }, + { + "id": 500, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 501, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 501, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 503 + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 504, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 506 + } + }, + "docs": [] + } + }, + { + "id": 506, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 507, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 507, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 508, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 509 + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 510, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 511, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 512 + } + }, + "docs": [] + } + }, + { + "id": 512, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 513, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 513, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 515 + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 516, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 518 + } + }, + "docs": [] + } + }, + { + "id": 518, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 519, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 520, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 521 + } + }, + "docs": [] + } + }, + { + "id": 521, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 522, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 522, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 523, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 524 + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 525, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 525, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 527 + } + }, + "docs": [] + } + }, + { + "id": 527, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 528, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 530 + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 531, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 533 + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 534, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 536 + } + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 537, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 539 + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 540, + 469 + ] + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "claimed_score", + "type": 250, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register oneself for an upcoming signed election." + ] + }, + { + "name": "submit_page", + "fields": [ + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "maybe_solution", + "type": 542, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Submit a single page of a solution.", + "", + "Must always come after [`Pallet::register`].", + "", + "`maybe_solution` can be set to `None` to erase the page.", + "", + "Collects deposits from the signed origin based on [`Config::DepositBase`] and", + "[`Config::DepositPerPage`]." + ] + }, + { + "name": "bail", + "fields": [], + "index": 2, + "docs": [ + "Retract a submission.", + "", + "A portion of the deposit may be returned, based on the [`Config::BailoutGraceRatio`].", + "", + "This will fully remove the solution from storage." + ] + }, + { + "name": "clear_old_round_data", + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_pages", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear the data of a submitter form an old round.", + "", + "The dispatch origin of this call must be signed, and the original submitter.", + "", + "This can only be called for submissions that end up being discarded, as in they are not", + "processed and they end up lingering in the queue." + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "inv", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the invulnerable list.", + "", + "Dispatch origin must the the same as [`crate::Config::AdminOrigin`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 542, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 466 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 466, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 543, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 254, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "[`asset::existential_deposit`], then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any stake that has been fully unbonded and is ready for withdrawal.", + "", + "Stake is considered fully unbonded once [`Config::BondingDuration`] has elapsed since", + "the unbonding was initiated. In rare cases—such as when offences for the unbonded era", + "have been reported but not yet processed—withdrawal is restricted to eras for which", + "all offences have been processed.", + "", + "The unlocked stake will be returned as free balance in the stash account.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans`: **Deprecated**. Retained only for backward compatibility; this", + " parameter has no effect." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 255, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 544, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 254, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 87, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`T::MaxValidatorSet`.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 545, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`T::MaxValidatorSet`.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered." + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "## Parameters", + "", + "- `stash`: The stash account to be unstaked.", + "- `num_slashing_spans`: **Deprecated**. This parameter is retained for backward", + "compatibility. It no longer has any effect." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_slashes", + "type": 546, + "typeName": "Vec<(T::AccountId, Perbill)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancels scheduled slashes for a given era before they are applied.", + "", + "This function allows `T::AdminOrigin` to cancel pending slashes for specified validators", + "in a given era. The cancelled slashes are stored and will be checked when applying", + "slashes.", + "", + "## Parameters", + "- `era`: The staking era for which slashes should be cancelled. This is the era where", + " the slash would be applied, not the era in which the offence was committed.", + "- `validator_slashes`: A list of validator stash accounts and their slash fractions to", + " be cancelled." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below `min_chilled_bond` or is zero.", + "2. or, the `ledger.total` of the stash is below `min_chilled_bond` or is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `stash`: The stash account to be reaped.", + "- `num_slashing_spans`: **Deprecated**. This parameter is retained for backward", + "compatibility. It no longer has any effect." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 544, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 548, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 548, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 549, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 549, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 550, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 551, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 550, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 552, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 401, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 553, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + }, + { + "name": "migrate_currency", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Migrates permissionlessly a stash from locks to holds.", + "", + "This removes the old lock on the stake and creates a hold on it atomically. If all", + "stake cannot be held, the best effort is made to hold as much as possible. The remaining", + "stake is removed from the ledger.", + "", + "The fee is waived if the migration is successful." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_key", + "type": 557, + "typeName": "(T::AccountId, Perbill, u32)", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Manually and permissionlessly applies a deferred slash for a given era.", + "", + "Normally, slashes are automatically applied shortly after the start of the `slash_era`.", + "The automatic application of slashes is handled by the pallet's internal logic, and it", + "tries to apply one slash page per block of the era.", + "If for some reason, one era is not enough for applying all slash pages, the remaining", + "slashes need to be manually (permissionlessly) applied.", + "", + "For a given era x, if at era x+1, slashes are still unapplied, all withdrawals get", + "blocked, and these need to be manually applied by calling this function.", + "This function exists as a **fallback mechanism** for this extreme situation, but we", + "never expect to encounter this in normal scenarios.", + "", + "The parameters for this call can be queried by looking at the `UnappliedSlashes` storage", + "for eras older than the active era.", + "", + "## Parameters", + "- `slash_era`: The staking era in which the slash was originally scheduled.", + "- `slash_key`: A unique identifier for the slash, represented as a tuple:", + " - `stash`: The stash account of the validator being slashed.", + " - `slash_fraction`: The fraction of the stake that was slashed.", + " - `page_index`: The index of the exposure page being processed.", + "", + "## Behavior", + "- The function is **permissionless**—anyone can call it.", + "- The `slash_era` **must be the current era or a past era**.", + "If it is in the future, the", + " call fails with `EraNotStarted`.", + "- The fee is waived if the slash is successfully applied.", + "", + "## Future Improvement", + "- Implement an **off-chain worker (OCW) task** to automatically apply slashes when there", + " is unused block space, improving efficiency." + ] + }, + { + "name": "prune_era_step", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Perform one step of era pruning to prevent PoV size exhaustion from unbounded deletions.", + "", + "This extrinsic enables permissionless lazy pruning of era data by performing", + "incremental deletion of storage items. Each call processes a limited number", + "of items based on available block weight to avoid exceeding block limits.", + "", + "Returns `Pays::No` when work is performed to incentivize regular maintenance.", + "Anyone can call this to help maintain the chain's storage health.", + "", + "The era must be eligible for pruning (older than HistoryDepth + 1).", + "Check `EraPruningState` storage to see if an era needs pruning before calling." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 544, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 319 + } + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 546, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 547 + } + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 233 + ] + }, + "docs": [] + } + }, + { + "id": 548, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 549, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 550, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 545 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 545, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 233 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 233, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 552, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 554 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 554, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 555 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 556, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "pallet_staking_async", + "ledger", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 87, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 555 + } + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 233, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 87, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 91, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 262, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 201, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 559, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 87, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 264, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 194, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 560, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 194, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 194, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 561, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 194, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 561, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 194 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 194, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 385, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 267, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 563, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 194, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 564, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 563, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 268, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 566, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "approve_bounty_with_curator", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Approve bountry and propose a curator simultaneously.", + "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "- `bounty_id`: Bounty ID to approve.", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Poke the deposit reserved for creating a bounty proposal.", + "", + "This can be used by accounts to update their reserved amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `bounty_id`: The bounty id for which to adjust the deposit.", + "", + "If the deposit is updated, the difference will be reserved/unreserved from the", + "proposer's account.", + "", + "The transaction is made free if the deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if the deposit is updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 567, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 319, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 87, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 568, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 184, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 184, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 569, + "type": { + "path": [ + "pallet_ah_ops", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "unreserve_lease_deposit", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "depositor", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Unreserve the deposit that was taken for creating a crowdloan.", + "", + "This can be called by any signed origin. It unreserves the lease deposit on the account", + "that won the lease auction. It can be unreserved once all leases expired. Note that it", + "will be called automatically from `withdraw_crowdloan_contribution` for the matching", + "crowdloan account.", + "", + "Solo bidder accounts that won lease auctions can use this to unreserve their amount." + ] + }, + { + "name": "withdraw_crowdloan_contribution", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "depositor", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Withdraw the contribution of a finished crowdloan.", + "", + "A crowdloan contribution can be withdrawn if either:", + "- The crowdloan failed to in an auction and timed out", + "- Won an auction and all leases expired", + "", + "Can be called by any signed origin." + ] + }, + { + "name": "unreserve_crowdloan_reserve", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "depositor", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unreserve the deposit that was taken for creating a crowdloan.", + "", + "This can be called once either:", + "- The crowdloan failed to win an auction and timed out", + "- Won an auction, all leases expired and all contributions are withdrawn", + "", + "Can be called by any signed origin. The condition that all contributions are withdrawn", + "is in place since the reserve acts as a storage deposit." + ] + }, + { + "name": "transfer_to_post_migration_treasury", + "fields": [ + { + "name": "asset_id", + "type": 83, + "typeName": "Box<>::AssetId>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Transfer the balance from the pre-migration treasury account to the post-migration", + "treasury account.", + "", + "This call can only be called after the migration is completed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 570, + "type": { + "path": [ + "pallet_ah_migrator", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "receive_accounts", + "fields": [ + { + "name": "accounts", + "type": 571, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Receive accounts from the Relay Chain.", + "", + "The accounts sent with `pallet_rc_migrator::Pallet::migrate_accounts` function." + ] + }, + { + "name": "receive_multisigs", + "fields": [ + { + "name": "accounts", + "type": 592, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Receive multisigs from the Relay Chain.", + "", + "This will be called from an XCM `Transact` inside a DMP from the relay chain. The", + "multisigs were prepared by", + "`pallet_rc_migrator::multisig::MultisigMigrator::migrate_many`." + ] + }, + { + "name": "receive_proxy_proxies", + "fields": [ + { + "name": "proxies", + "type": 594, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Receive proxies from the Relay Chain." + ] + }, + { + "name": "receive_proxy_announcements", + "fields": [ + { + "name": "announcements", + "type": 599, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Receive proxy announcements from the Relay Chain." + ] + }, + { + "name": "receive_preimage_chunks", + "fields": [ + { + "name": "chunks", + "type": 601, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "receive_preimage_request_status", + "fields": [ + { + "name": "request_status", + "type": 604, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "receive_preimage_legacy_status", + "fields": [ + { + "name": "legacy_status", + "type": 610, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "receive_nom_pools_messages", + "fields": [ + { + "name": "messages", + "type": 612, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "receive_vesting_schedules", + "fields": [ + { + "name": "schedules", + "type": 637, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "receive_referenda_values", + "fields": [ + { + "name": "values", + "type": 641, + "typeName": "Vec>>", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Receive referendum counts, deciding counts, votes for the track queue." + ] + }, + { + "name": "receive_referendums", + "fields": [ + { + "name": "referendums", + "type": 647, + "typeName": "Vec<(u32, RcReferendumInfoOf)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Receive referendums from the Relay Chain." + ] + }, + { + "name": "receive_claims", + "fields": [ + { + "name": "messages", + "type": 659, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "receive_bags_list_messages", + "fields": [ + { + "name": "messages", + "type": 664, + "typeName": "Vec", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "receive_scheduler_messages", + "fields": [ + { + "name": "messages", + "type": 668, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "receive_indices", + "fields": [ + { + "name": "indices", + "type": 673, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "receive_conviction_voting_messages", + "fields": [ + { + "name": "messages", + "type": 675, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "receive_bounties_messages", + "fields": [ + { + "name": "messages", + "type": 687, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "receive_asset_rates", + "fields": [ + { + "name": "rates", + "type": 693, + "typeName": "Vec<(::AssetKind, FixedU128)>", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "receive_crowdloan_messages", + "fields": [ + { + "name": "messages", + "type": 695, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "receive_referenda_metadata", + "fields": [ + { + "name": "metadata", + "type": 697, + "typeName": "Vec<(u32,::Hash)>", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "receive_treasury_messages", + "fields": [ + { + "name": "messages", + "type": 699, + "typeName": "Vec", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "receive_scheduler_agenda_messages", + "fields": [ + { + "name": "messages", + "type": 705, + "typeName": "Vec, scheduler::\nRcScheduledOf>>", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "receive_delegated_staking_messages", + "fields": [ + { + "name": "messages", + "type": 710, + "typeName": "Vec", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "receive_child_bounties_messages", + "fields": [ + { + "name": "messages", + "type": 712, + "typeName": "Vec", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "receive_staking_messages", + "fields": [ + { + "name": "messages", + "type": 717, + "typeName": "Vec", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "receive_recovery_messages", + "fields": [ + { + "name": "messages", + "type": 745, + "typeName": "Vec", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "receive_society_messages", + "fields": [ + { + "name": "messages", + "type": 754, + "typeName": "Vec", + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "force_set_stage", + "fields": [ + { + "name": "stage", + "type": 774, + "typeName": "MigrationStage", + "docs": [] + } + ], + "index": 100, + "docs": [ + "Set the migration stage.", + "", + "This call is intended for emergency use only and is guarded by the", + "[`Config::AdminOrigin`]." + ] + }, + { + "name": "start_migration", + "fields": [], + "index": 101, + "docs": [ + "Start the data migration.", + "", + "This is typically called by the Relay Chain to start the migration on the Asset Hub and", + "receive a handshake message indicating the Asset Hub's readiness." + ] + }, + { + "name": "set_dmp_queue_priority", + "fields": [ + { + "name": "new", + "type": 775, + "typeName": "DmpQueuePriority>", + "docs": [] + } + ], + "index": 102, + "docs": [ + "Set the DMP queue priority configuration.", + "", + "Can only be called by the `AdminOrigin`." + ] + }, + { + "name": "set_manager", + "fields": [ + { + "name": "new", + "type": 73, + "typeName": "Option", + "docs": [] + } + ], + "index": 103, + "docs": [ + "Set the manager account id.", + "", + "The manager has the similar to [`Config::AdminOrigin`] privileges except that it", + "can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "finish_migration", + "fields": [ + { + "name": "data", + "type": 776, + "typeName": "Option>", + "docs": [] + } + ], + "index": 110, + "docs": [ + "Finish the migration.", + "", + "This is typically called by the Relay Chain to signal the migration has finished.", + "", + "The `data` parameter might be `None` if we are running the migration for a second time", + "for some pallets and have already performed the checking account balance correction,", + "so we do not need to do it this time." + ] + }, + { + "name": "send_xcm_message", + "fields": [ + { + "name": "dest", + "type": 180, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 337, + "typeName": "Box>", + "docs": [] + } + ], + "index": 111, + "docs": [ + "XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the", + "[Config::SendXcm] router which will be able to send messages to the Relay Chain during", + "the migration." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 571, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 572 + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "pallet_rc_migrator", + "accounts", + "Account" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "HoldReason", + "type": 573 + }, + { + "name": "FreezeReason", + "type": 580 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "holds", + "type": 582, + "typeName": "BoundedVec, ConstU32<5>>", + "docs": [] + }, + { + "name": "freezes", + "type": 585, + "typeName": "BoundedVec, ConstU32<5>>", + "docs": [] + }, + { + "name": "locks", + "type": 588, + "typeName": "BoundedVec, ConstU32<5>>", + "docs": [] + }, + { + "name": "unnamed_reserve", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "consumers", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "providers", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "PortableHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 574, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 575, + "typeName": "pallet_staking::HoldReason", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 576, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 577, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 578, + "typeName": "pallet_session::HoldReason", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 579, + "typeName": "pallet_xcm::HoldReason", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingDelegation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_session", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Keys", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AuthorizeAlias", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "PortableFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 581, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 583 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 584, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 573 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 573, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 584, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 583 + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 586 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 587, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 580 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 580, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 586 + } + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 589 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 591, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 121, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 590, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 589 + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 593 + } + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "pallet_rc_migrator", + "multisig", + "RcMultisig" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 595 + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [ + "pallet_rc_migrator", + "proxy", + "RcProxy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "ProxyType", + "type": 596 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "proxies", + "type": 597, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [ + "zagros_runtime_constants", + "proxy", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Society", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Spokesperson", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ParaRegistration", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 598 + } + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 596 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 596, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 600 + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [ + "pallet_rc_migrator", + "proxy", + "RcProxyAnnouncement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 602 + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "chunks", + "RcPreimageChunk" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "preimage_hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "preimage_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "chunk_byte_offset", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "chunk_bytes", + "type": 603, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 605 + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "request_status", + "PortableRequestStatus" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "request_status", + "type": 606, + "typeName": "PortableRequestStatusInner", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "request_status", + "PortableRequestStatusInner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 607, + "typeName": "(AccountId32, PortableTicket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 609, + "typeName": "Option<(AccountId32, PortableTicket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 608 + ] + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 607 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 607, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 611 + } + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "legacy_request_status", + "RcPreimageLegacyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 612, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 613 + } + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools", + "RcNomPoolsMessage" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [ + { + "name": "values", + "type": 614, + "typeName": "NomPoolsStorageValuesOf", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "PoolMembers", + "fields": [ + { + "name": "member", + "type": 615, + "typeName": "(T::AccountId, PoolMember)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BondedPools", + "fields": [ + { + "name": "pool", + "type": 621, + "typeName": "(PoolId, BondedPoolInner)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "RewardPools", + "fields": [ + { + "name": "rewards", + "type": 626, + "typeName": "(PoolId, RewardPool)", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "SubPoolsStorage", + "fields": [ + { + "name": "sub_pools", + "type": 628, + "typeName": "(PoolId, SubPools)", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Metadata", + "fields": [ + { + "name": "meta", + "type": 635, + "typeName": "(PoolId, BoundedVec)", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ReversePoolIdLookup", + "fields": [ + { + "name": "lookups", + "type": 448, + "typeName": "(T::AccountId, PoolId)", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ClaimPermissions", + "fields": [ + { + "name": "perms", + "type": 636, + "typeName": "(T::AccountId, ClaimPermission)", + "docs": [] + } + ], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools", + "NomPoolsStorageValues" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_value_locked", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_join_bond", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_pools", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_pool_members", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_pool_members_per_pool", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 238, + "typeName": "Option", + "docs": [] + }, + { + "name": "last_pool_id", + "type": 201, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 616 + ] + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 184, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 617, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 618, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 619, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 620 + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 622 + ] + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 623, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 625, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 230, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 231, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 238, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 624, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 201, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 235, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 234 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 234, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 73, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 627 + ] + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools_alias", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 184, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 629 + ] + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools_alias", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 630, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 631, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools_alias", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 630 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 632, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 630 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 633, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 634 + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 630 + ] + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 205 + ] + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 237 + ] + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 638 + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_rc_migrator", + "vesting", + "RcVestingSchedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "schedules", + "type": 639, + "typeName": "BoundedVec, BlockNumberFor\n>, MaxVestingSchedulesGet,>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 323 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 640, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 323 + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 642 + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [ + "pallet_rc_migrator", + "referenda", + "ReferendaMessage" + ], + "params": [ + { + "name": "Track", + "type": 194 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "referendum_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "deciding_count", + "type": 643, + "typeName": "Vec<(Track, u32)>", + "docs": [] + }, + { + "name": "track_queue", + "type": 645, + "typeName": "Vec<(Track, Vec<(u32, u128)>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 644 + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 194, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 646 + } + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 194, + 619 + ] + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 648 + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 649 + ] + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 194 + }, + { + "name": "RuntimeOrigin", + "type": 650 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 267 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 651 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 652, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "ah_migration", + "RcPalletsOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 389, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 43, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 194 + }, + { + "name": "RuntimeOrigin", + "type": 650 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 267 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 651 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 39 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 194, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 650, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 267, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 563, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 653, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 655, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 651, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 657, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 653 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 653, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 656 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 656, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 201, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 657, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 658 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 658, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 39 + ] + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 660 + } + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [ + "pallet_rc_migrator", + "claims", + "RcClaimsMessage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 661, + "typeName": "(EthereumAddress, Balance)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": "who", + "type": 103, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "schedule", + "type": 328, + "typeName": "(Balance, Balance, BlockNumber)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Signing", + "fields": [ + { + "name": null, + "type": 662, + "typeName": "(EthereumAddress, StatementKind)", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Preclaims", + "fields": [ + { + "name": null, + "type": 663, + "typeName": "(AccountId, EthereumAddress)", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 103, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 103, + 330 + ] + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 103 + ] + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 665 + } + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "PortableBagsListMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Node", + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "node", + "type": 666, + "typeName": "PortableNode", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Bag", + "fields": [ + { + "name": "score", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "bag", + "type": 667, + "typeName": "PortableBag", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "PortableNode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "prev", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "PortableBag" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 668, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 669 + } + }, + "docs": [] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "RcSchedulerMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncompleteSince", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Retries", + "fields": [ + { + "name": null, + "type": 670, + "typeName": "(TaskAddress, RetryConfig)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": null, + "type": 672, + "typeName": "(TaskName, TaskAddress)", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 39, + 671 + ] + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1, + 39 + ] + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 674 + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [ + "pallet_rc_migrator", + "indices", + "RcIndicesIndex" + ], + "params": [ + { + "name": "AccountIndex", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 676 + } + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [ + "pallet_rc_migrator", + "conviction_voting", + "RcConvictionVotingMessage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Class", + "type": 194 + }, + { + "name": "Voting", + "type": 677 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VotingFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 194, + "typeName": "Class", + "docs": [] + }, + { + "name": null, + "type": 677, + "typeName": "Voting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ClassLocksFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 685, + "typeName": "Vec<(Class, Balance)>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 678, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 684, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 679, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 682, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 683, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 680 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 681, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 264 + ] + }, + "docs": [] + } + }, + { + "id": 681, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 680 + } + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 560, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 682, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 683, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 686 + } + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 194, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 688 + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_rc_migrator", + "bounties", + "RcBountiesMessage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BountyApprovals", + "fields": [ + { + "name": null, + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BountyDescriptions", + "fields": [ + { + "name": null, + "type": 689, + "typeName": "(BountyIndex, Vec)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 690, + "typeName": "(BountyIndex, alias::Bounty)", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 691 + ] + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [ + "pallet_rc_migrator", + "bounties", + "alias", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 692, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ApprovedWithCurator", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 693, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 694 + } + }, + "docs": [] + } + }, + { + "id": 694, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 261, + 184 + ] + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 696 + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_rc_migrator", + "crowdloan", + "RcCrowdloanMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LeaseReserve", + "fields": [ + { + "name": "unreserve_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "CrowdloanContribution", + "fields": [ + { + "name": "withdraw_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "contributor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "crowdloan_account", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "CrowdloanReserve", + "fields": [ + { + "name": "unreserve_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 698 + } + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 700 + } + }, + "docs": [] + } + }, + { + "id": 700, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "PortableTreasuryMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Proposals", + "fields": [ + { + "name": null, + "type": 701, + "typeName": "(ProposalIndex, Proposal)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Approvals", + "fields": [ + { + "name": null, + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SpendCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Spends", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "status", + "type": 703, + "typeName": "Box", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "LastSpendPeriod", + "fields": [ + { + "name": null, + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Funds", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 702 + ] + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "PortableSpendStatus" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "VersionedLocatableAsset", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "beneficiary", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 704, + "typeName": "PortablePaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "PortablePaymentState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 706 + } + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "SchedulerAgendaMessage" + ], + "params": [ + { + "name": "B", + "type": 4 + }, + { + "name": "S", + "type": 707 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "B", + "docs": [] + }, + { + "name": "agenda", + "type": 708, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "alias", + "Scheduled" + ], + "params": [ + { + "name": "Call", + "type": 267 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 650 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "Priority", + "docs": [] + }, + { + "name": "call", + "type": 267, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 306, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 650, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 709 + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 707 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 707, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 711 + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "delegated_staking", + "PortableDelegatedStakingMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Delegators", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "agent", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Agents", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "total_delegated", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "pending_slash", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 712, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 713 + } + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "PortableChildBountiesMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ChildBountyCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ParentChildBounties", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ParentTotalChildBounties", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ChildBounty", + "fields": [ + { + "name": "parent_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty", + "type": 714, + "typeName": "PortableChildBounty", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ChildBountyDescriptionsV1", + "fields": [ + { + "name": "parent_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "description", + "type": 716, + "typeName": "BoundedVec>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V0ToV1ChildBountyIds", + "fields": [ + { + "name": "v0_child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "parent_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "v1_child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ChildrenCuratorFees", + "fields": [ + { + "name": "child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "PortableChildBounty" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "status", + "type": 715, + "typeName": "PortableChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "PortableChildBountyStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 716, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 718 + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableStakingMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Values", + "fields": [ + { + "name": null, + "type": 719, + "typeName": "PortableStakingValues", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Invulnerables", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "controller", + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Ledger", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "ledger", + "type": 725, + "typeName": "PortableStakingLedger", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Payee", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "payment", + "type": 729, + "typeName": "PortableRewardDestination", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Validators", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "validators", + "type": 730, + "typeName": "PortableValidatorPrefs", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Nominators", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "nominations", + "type": 731, + "typeName": "PortableNominations", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "VirtualStakers", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "ErasStakersOverview", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "exposure", + "type": 733, + "typeName": "PortablePagedExposureMetadata", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "ErasStakersPaged", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "exposure", + "type": 734, + "typeName": "PortableExposurePage", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClaimedRewards", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "rewards", + "type": 200, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "ErasValidatorPrefs", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "prefs", + "type": 730, + "typeName": "PortableValidatorPrefs", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ErasValidatorReward", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "reward", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "ErasRewardPoints", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "points", + "type": 738, + "typeName": "PortableEraRewardPoints", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "ErasTotalStake", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "total_stake", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "UnappliedSlashes", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash", + "type": 740, + "typeName": "PortableUnappliedSlash", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "BondedEras", + "fields": [ + { + "name": null, + "type": 743, + "typeName": "Vec<(EraIndex, SessionIndex)>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "ValidatorSlashInEra", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "slash", + "type": 744, + "typeName": "(Perbill, u128)", + "docs": [] + } + ], + "index": 17, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "StakingValues" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_validator_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_nominator_bond", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_active_stake", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_commission", + "type": 238, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_validators_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_nominators_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "current_era", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "active_era", + "type": 720, + "typeName": "Option", + "docs": [] + }, + { + "name": "force_era", + "type": 722, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 724, + "typeName": "Option", + "docs": [] + }, + { + "name": "slash_reward_fraction", + "type": 238, + "typeName": "Option", + "docs": [] + }, + { + "name": "canceled_slash_payout", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "current_planned_session", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 724, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 721 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 721, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 181, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 723 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 723, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableForcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 545 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 545, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableStakingLedger" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "total", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "active", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "unlocking", + "type": 726, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 727 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 728, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableUnlockChunk" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 727 + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableRewardDestination" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableNominations" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 732, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortablePagedExposureMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableExposurePage" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "others", + "type": 735, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 736 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 737, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableIndividualExposure" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 736 + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableEraRewardPoints" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "individual", + "type": 739, + "typeName": "BoundedVec<(AccountId32, u32), ConstU32<2000>>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 448 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 447, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableUnappliedSlash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "others", + "type": 741, + "typeName": "BoundedVec<(AccountId32, u128), ConstU32<600>>", + "docs": [] + }, + { + "name": "reporters", + "type": 742, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 459 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 460, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 39 + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 233, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 746 + } + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [ + "pallet_rc_migrator", + "recovery", + "PortableRecoveryMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Recoverable", + "fields": [ + { + "name": null, + "type": 747, + "typeName": "(AccountId32, PortableRecoveryConfig)", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ActiveRecoveries", + "fields": [ + { + "name": null, + "type": 751, + "typeName": "(AccountId32, AccountId32, PortableActiveRecovery)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 753, + "typeName": "(AccountId32, AccountId32)", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 748 + ] + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [ + "pallet_rc_migrator", + "recovery", + "PortableRecoveryConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "friends", + "type": 749, + "typeName": "PortableRecoveryFriends", + "docs": [] + }, + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "pallet_rc_migrator", + "recovery", + "PortableRecoveryFriends" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "friends", + "type": 750, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 752 + ] + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [ + "pallet_rc_migrator", + "recovery", + "PortableActiveRecovery" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "friends", + "type": 749, + "typeName": "PortableRecoveryFriends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 755 + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableSocietyMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Values", + "fields": [ + { + "name": null, + "type": 756, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 768, + "typeName": "PortableMemberRecord", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Payout", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 771, + "typeName": "PortablePayoutRecord", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MemberByIndex", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "SuspendedMembers", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 768, + "typeName": "PortableMemberRecord", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Candidates", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 772, + "typeName": "PortableCandidacy", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Votes", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 773, + "typeName": "PortableVote", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "VoteClearCursor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "DefenderVotes", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 773, + "typeName": "PortableVote", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "SocietyValues" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parameters", + "type": 757, + "typeName": "Option", + "docs": [] + }, + { + "name": "pot", + "type": 401, + "typeName": "Option", + "docs": [] + }, + { + "name": "founder", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "head", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "rules", + "type": 564, + "typeName": "Option", + "docs": [] + }, + { + "name": "member_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "round_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "bids", + "type": 759, + "typeName": "Option>", + "docs": [] + }, + { + "name": "sceptic", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "next_head", + "type": 763, + "typeName": "Option", + "docs": [] + }, + { + "name": "challenge_round_count", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "defending", + "type": 765, + "typeName": "Option<(AccountId32, AccountId32, PortableTally)>", + "docs": [] + }, + { + "name": "next_intake_at", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "next_challenge_at", + "type": 201, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 758 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 758, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableGroupParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 760 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 760, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 761 + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableBid" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "kind", + "type": 762, + "typeName": "PortableBidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableBidKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 764 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 764, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 764, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableIntakeRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 766 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 766, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 767 + ] + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableTally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableMemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "vouching", + "type": 769, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 770 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 770, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableVouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortablePayoutRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "payouts", + "type": 619, + "typeName": "Vec<(u32, u128)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableCandidacy" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "kind", + "type": 762, + "typeName": "PortableBidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "tally", + "type": 767, + "typeName": "PortableTally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 773, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "PortableVote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [ + "pallet_ah_migrator", + "MigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "DataMigrationOngoing", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "MigrationDone", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "QueuePriority" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Config", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OverrideConfig", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Disabled", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 777 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 777, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "MigrationFinishedData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "rc_balance_kept", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 780, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 780, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 781 + }, + { + "name": "E", + "type": 782 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 781, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 782, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 781, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 77, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 781 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 781, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "proposer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A bounty deposit has been poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 784, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 785, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 184, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 184, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 184, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 786, + "type": { + "path": [ + "pallet_ah_ops", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LeaseUnreserveRemaining", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some lease reserve could not be unreserved and needs manual cleanup." + ] + }, + { + "name": "CrowdloanUnreserveRemaining", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some amount for a crowdloan reserve could not be unreserved and needs manual cleanup." + ] + }, + { + "name": "SovereignMigrated", + "fields": [ + { + "name": "para_id", + "type": 187, + "typeName": "ParaId", + "docs": [ + "The teyrchain ID that had its account migrated." + ] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The old account that was migrated out of." + ] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new account that was migrated into." + ] + }, + { + "name": "derivation_index", + "type": 561, + "typeName": "Option", + "docs": [ + "Set if this account was derived from a para sovereign account." + ] + } + ], + "index": 2, + "docs": [ + "A sovereign teyrchain account has been migrated from its child to sibling", + "representation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 787, + "type": { + "path": [ + "pallet_ah_migrator", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StageTransition", + "fields": [ + { + "name": "old", + "type": 774, + "typeName": "MigrationStage", + "docs": [ + "The old stage before the transition." + ] + }, + { + "name": "new", + "type": 774, + "typeName": "MigrationStage", + "docs": [ + "The new stage after the transition." + ] + } + ], + "index": 0, + "docs": [ + "A stage transition has occurred." + ] + }, + { + "name": "BatchReceived", + "fields": [ + { + "name": "pallet", + "type": 788, + "typeName": "PalletEventName", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "We received a batch of messages that will be integrated into a pallet." + ] + }, + { + "name": "BatchProcessed", + "fields": [ + { + "name": "pallet", + "type": 788, + "typeName": "PalletEventName", + "docs": [] + }, + { + "name": "count_good", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "count_bad", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "We processed a batch of messages for this pallet." + ] + }, + { + "name": "AssetHubMigrationStarted", + "fields": [], + "index": 3, + "docs": [ + "The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is", + "emitted.", + "", + "This event is equivalent to `StageTransition { new: DataMigrationOngoing, .. }` but is", + "easier to understand. The activation is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "AssetHubMigrationFinished", + "fields": [], + "index": 4, + "docs": [ + "The Asset Hub Migration finished.", + "", + "This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier", + "to understand. The finishing is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "DmpQueuePrioritySet", + "fields": [ + { + "name": "prioritized", + "type": 8, + "typeName": "bool", + "docs": [ + "Indicates if DMP queue was successfully set as priority.", + "If `false`, it means we're in the round-robin phase of our priority pattern", + "(see [`Config::DmpQueuePriorityPattern`]), where no queue gets priority." + ] + }, + { + "name": "cycle_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Current block number within the pattern cycle (1 to period)." + ] + }, + { + "name": "cycle_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Total number of blocks in the pattern cycle" + ] + } + ], + "index": 5, + "docs": [ + "Whether the DMP queue was prioritized for the next block." + ] + }, + { + "name": "DmpQueuePriorityConfigSet", + "fields": [ + { + "name": "old", + "type": 775, + "typeName": "DmpQueuePriority>", + "docs": [ + "The old priority pattern." + ] + }, + { + "name": "new", + "type": 775, + "typeName": "DmpQueuePriority>", + "docs": [ + "The new priority pattern." + ] + } + ], + "index": 6, + "docs": [ + "The DMP queue priority config was set." + ] + }, + { + "name": "BalancesBeforeRecordSet", + "fields": [ + { + "name": "checking_account", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "total_issuance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The balances before the migration were recorded." + ] + }, + { + "name": "BalancesBeforeRecordConsumed", + "fields": [ + { + "name": "checking_account", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "total_issuance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The balances before the migration were consumed." + ] + }, + { + "name": "ReferendumCanceled", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A referendum was cancelled because it could not be mapped." + ] + }, + { + "name": "ManagerSet", + "fields": [ + { + "name": "old", + "type": 73, + "typeName": "Option", + "docs": [ + "The old manager account id." + ] + }, + { + "name": "new", + "type": 73, + "typeName": "Option", + "docs": [ + "The new manager account id." + ] + } + ], + "index": 10, + "docs": [ + "The manager account id was set." + ] + }, + { + "name": "AccountTranslatedTeyrchainSovereign", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "AccountTranslatedTeyrchainSovereignDerived", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "derivation_index", + "type": 194, + "typeName": "u16", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "XcmSent", + "fields": [ + { + "name": "origin", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 83, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 112, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An XCM message was sent." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 788, + "type": { + "path": [ + "pallet_ah_migrator", + "PalletEventName" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRates", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BagsList", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Balances", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Bounties", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Claims", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Indices", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "Multisig", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "NomPools", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "PreimageChunk", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "PreimageLegacyStatus", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "PreimageRequestStatus", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "ProxyAnnouncements", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "ProxyProxies", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "Recovery", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "ReferendaMetadata", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "ReferendaReferendums", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "ReferendaValues", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "SchedulerAgenda", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "Society", + "fields": [], + "index": 26, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 790, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 87, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 791, + "typeName": "Cow<'static, str>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 792 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 792, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 795, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 796 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 796, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 796, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 796, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 77, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 77, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 77, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 797, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 798, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 791, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "impl_name", + "type": 791, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 801, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "system_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 802 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 802, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 803 + } + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 121, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "InvalidTask", + "fields": [], + "index": 7, + "docs": [ + "The specified [`Task`] is not valid." + ] + }, + { + "name": "FailedTask", + "fields": [], + "index": 8, + "docs": [ + "The specified [`Task`] failed during execution." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 9, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 10, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 805, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 806 + } + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "Ancestor" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "used_bandwidth", + "type": 807, + "typeName": "UsedBandwidth", + "docs": [] + }, + { + "name": "para_head_hash", + "type": 564, + "typeName": "Option", + "docs": [] + }, + { + "name": "consumed_go_ahead_signal", + "type": 812, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "UsedBandwidth" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ump_msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_total_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_outgoing", + "type": 808, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 187 + }, + { + "name": "V", + "type": 809 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 810, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "HrmpChannelUpdate" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 811 + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 187, + 809 + ] + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 813 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 813, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "GoAhead", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "SegmentTracker" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "used_bandwidth", + "type": 807, + "typeName": "UsedBandwidth", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "consumed_go_ahead_signal", + "type": 812, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 816 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 816, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeRestriction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "relay_state_snapshot", + "MessagingStateSnapshot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "dmq_mqc_head", + "type": 13, + "typeName": "relay_chain::Hash", + "docs": [] + }, + { + "name": "relay_dispatch_queue_remaining_capacity", + "type": 818, + "typeName": "RelayDispatchQueueRemainingCapacity", + "docs": [] + }, + { + "name": "ingress_channels", + "type": 819, + "typeName": "Vec<(ParaId, AbridgedHrmpChannel)>", + "docs": [] + }, + { + "name": "egress_channels", + "type": 819, + "typeName": "Vec<(ParaId, AbridgedHrmpChannel)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "relay_state_snapshot", + "RelayDispatchQueueRemainingCapacity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "remaining_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 820 + } + }, + "docs": [] + } + }, + { + "id": 820, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 187, + 821 + ] + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "AbridgedHrmpChannel" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "mqc_head", + "type": 564, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 822, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "AbridgedHostConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "async_backing_params", + "type": 823, + "typeName": "AsyncBackingParams", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "AsyncBackingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [ + "pezcumulus_primitives_teyrchain_inherent", + "MessageQueueChain" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "RelayHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 187 + }, + { + "name": "V", + "type": 824 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 826, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 827 + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 187, + 824 + ] + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "InboundMessageId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "reverse_idx", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 830 + } + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pezkuwi_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 187 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 187, + "typeName": "Id", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OverlappingUpgrades", + "fields": [], + "index": 0, + "docs": [ + "Attempt to upgrade validation function while existing upgrade pending." + ] + }, + { + "name": "ProhibitedByPezkuwi", + "fields": [], + "index": 1, + "docs": [ + "Pezkuwi currently prohibits this teyrchain from upgrading its validation function." + ] + }, + { + "name": "TooBig", + "fields": [], + "index": 2, + "docs": [ + "The supplied validation function has compiled into a blob larger than Pezkuwi is", + "willing to run." + ] + }, + { + "name": "ValidationDataNotAvailable", + "fields": [], + "index": 3, + "docs": [ + "The inherent which supplies the validation data did not run this block." + ] + }, + { + "name": "HostConfigurationNotAvailable", + "fields": [], + "index": 4, + "docs": [ + "The inherent which supplies the host configuration did not run this block." + ] + }, + { + "name": "NotScheduled", + "fields": [], + "index": 5, + "docs": [ + "No validation function upgrade is currently scheduled." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 832, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [], + "index": 0, + "docs": [ + "The operation cannot complete since some MBMs are ongoing." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 833, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 459, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 834, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 459 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 459, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 836 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 837, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 838, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 201, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 836 + ] + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 837 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 837, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 842, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 843 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 845, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 844 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 844, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 267 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 385 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 267, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 306, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 385, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 843 + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 847, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 589 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 591, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 849 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 850, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 121 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 121, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 849 + } + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 852 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 858, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 853 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 853, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 574, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 578, + "typeName": "pallet_session::HoldReason", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 579, + "typeName": "pallet_xcm::HoldReason", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 854, + "typeName": "pallet_nft_fractionalization::HoldReason", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 855, + "typeName": "pallet_revive::HoldReason", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 576, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 577, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 856, + "typeName": "pallet_election_provider_multi_block::signed::HoldReason", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 857, + "typeName": "pallet_staking_async::HoldReason", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fractionalized", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [ + "pallet_revive", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CodeUploadDepositReserve", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StorageDepositReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "AddressMapping", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 852 + } + }, + "docs": [] + } + }, + { + "id": 859, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 860 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 862, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 861 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 861, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 581, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 80, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 860 + } + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 864, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 867, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEthereumSignature", + "fields": [], + "index": 0, + "docs": [ + "Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "fields": [], + "index": 1, + "docs": [ + "Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "fields": [], + "index": 2, + "docs": [ + "Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "fields": [], + "index": 3, + "docs": [ + "There's not enough in the pot to pay out some unvested amount. Generally implies a", + "logic error." + ] + }, + { + "name": "InvalidStatement", + "fields": [], + "index": 4, + "docs": [ + "A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "fields": [], + "index": 5, + "docs": [ + "The account already has a vested balance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 868, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 870 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 871, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "CandidateInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 870 + } + }, + "docs": [] + } + }, + { + "id": 872, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 121, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCandidates", + "fields": [], + "index": 0, + "docs": [ + "The pallet has too many candidates." + ] + }, + { + "name": "TooFewEligibleCollators", + "fields": [], + "index": 1, + "docs": [ + "Leaving would result in too few candidates." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 2, + "docs": [ + "Account is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 3, + "docs": [ + "Account is not a candidate." + ] + }, + { + "name": "TooManyInvulnerables", + "fields": [], + "index": 4, + "docs": [ + "There are too many Invulnerables." + ] + }, + { + "name": "AlreadyInvulnerable", + "fields": [], + "index": 5, + "docs": [ + "Account is already an Invulnerable." + ] + }, + { + "name": "NotInvulnerable", + "fields": [], + "index": 6, + "docs": [ + "Account is not an Invulnerable." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 7, + "docs": [ + "Account has no associated validator ID." + ] + }, + { + "name": "ValidatorNotRegistered", + "fields": [], + "index": 8, + "docs": [ + "Validator ID is not yet registered." + ] + }, + { + "name": "InsertToCandidateListFailed", + "fields": [], + "index": 9, + "docs": [ + "Could not insert in the candidate list." + ] + }, + { + "name": "RemoveFromCandidateListFailed", + "fields": [], + "index": 10, + "docs": [ + "Could not remove from the candidate list." + ] + }, + { + "name": "DepositTooLow", + "fields": [], + "index": 11, + "docs": [ + "New deposit amount would be below the minimum candidacy bond." + ] + }, + { + "name": "UpdateCandidateListFailed", + "fields": [], + "index": 12, + "docs": [ + "Could not update the candidate list." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 13, + "docs": [ + "Deposit amount is too low to take the target's slot in the candidate list." + ] + }, + { + "name": "TargetIsNotCandidate", + "fields": [], + "index": 14, + "docs": [ + "The target account to be replaced in the candidate list is not a candidate." + ] + }, + { + "name": "IdenticalDeposit", + "fields": [], + "index": 15, + "docs": [ + "The updated deposit amount is equal to the amount already reserved." + ] + }, + { + "name": "InvalidUnreserve", + "fields": [], + "index": 16, + "docs": [ + "Cannot lower candidacy bond while occupying a future collator slot in the list." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 874, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 875 + } + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 333 + ] + }, + "docs": [] + } + }, + { + "id": 876, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 877 + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 878 + ] + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceSeverity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 879, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 880, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 882, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 334 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 883, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 883, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 334 + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 884, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 187 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 887, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 887, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 187 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 888, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 888, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 187 + } + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 890 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 892, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "OutboundChannelDetails" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 187, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "state", + "type": 891, + "typeName": "OutboundState", + "docs": [] + }, + { + "name": "signals_exist", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "first_index", + "type": 194, + "typeName": "u16", + "docs": [] + }, + { + "name": "last_index", + "type": 194, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "OutboundState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Suspended", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 890 + } + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 187, + 194 + ] + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "QueueConfigData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "suspend_threshold", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "drop_threshold", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "resume_threshold", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadQueueConfig", + "fields": [], + "index": 0, + "docs": [ + "Setting the queue config failed since one of its values was invalid." + ] + }, + { + "name": "AlreadySuspended", + "fields": [], + "index": 1, + "docs": [ + "The execution is already suspended." + ] + }, + { + "name": "AlreadyResumed", + "fields": [], + "index": 2, + "docs": [ + "The execution is already resumed." + ] + }, + { + "name": "TooManyActiveOutboundChannels", + "fields": [], + "index": 3, + "docs": [ + "There are too many active outbound channels." + ] + }, + { + "name": "TooBig", + "fields": [], + "index": 4, + "docs": [ + "The message is too big." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 897, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "maybe_match_querier", + "type": 898, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_notify", + "type": 899, + "typeName": "Option<(u8, u8)>", + "docs": [] + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 901, + "typeName": "VersionedResponse", + "docs": [] + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 180 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 180, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 900 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 900, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 900, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 901, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 341, + "typeName": "v3::Response", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 357, + "typeName": "v4::Response", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 123, + "typeName": "v5::Response", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 902, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 180 + ] + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 10, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 904, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 905 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 906, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 180, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 905 + } + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrateVersionNotifiers", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "name": null, + "type": 36, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MigrateAndNotifyOldTargets", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 379 + ] + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 41 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "owner", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "locker", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "consumers", + "type": 910, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 911 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 912, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 911, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 41, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 912, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 911 + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 914 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 915, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 180 + ] + }, + "docs": [] + } + }, + { + "id": 915, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 914 + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "pallet_xcm", + "AuthorizedAliasesEntry" + ], + "params": [ + { + "name": "Ticket", + "type": 917 + }, + { + "name": "MAX", + "type": 918 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "aliasers", + "type": 919, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "ticket", + "type": 917, + "typeName": "Ticket", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 917, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "MaxAuthorizedAliases" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 920 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 921, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [ + "xcm_runtime_apis", + "authorized_aliases", + "OriginAliaser" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "location", + "type": 180, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "expiry", + "type": 181, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 920 + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "fields": [], + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "fields": [], + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "fields": [], + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "fields": [], + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "fields": [], + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "fields": [], + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "fields": [], + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "fields": [], + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "fields": [], + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "fields": [], + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "fields": [], + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "fields": [], + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "fields": [], + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "fields": [], + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "fields": [], + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "fields": [], + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + }, + { + "name": "TooManyAuthorizedAliases", + "fields": [], + "index": 25, + "docs": [ + "Too many locations authorized to alias origin." + ] + }, + { + "name": "ExpiresInPast", + "fields": [], + "index": 26, + "docs": [ + "Expiry block number is in the past." + ] + }, + { + "name": "AliasNotFound", + "fields": [], + "index": 27, + "docs": [ + "The alias to remove authorization for was not found." + ] + }, + { + "name": "LocalExecutionIncompleteWithError", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 923, + "typeName": "ExecutionError", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Local XCM execution incomplete with the actual XCM error and the index of the", + "instruction that caused the error." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 923, + "type": { + "path": [ + "pallet_xcm", + "errors", + "ExecutionError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [ + "bp_xcm_bridge_hub_router", + "BridgeState" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "delivery_fee_factor", + "type": 184, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "is_congested", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 186 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 926, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 927 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 927, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 186 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 186, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 186, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 928, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 186, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 930, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 930, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 931, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 932, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 933, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 934, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 191, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 935, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 935, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 936, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found in storage." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it or update", + "its deposits." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 937, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 938, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 939 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 940, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 939, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 193 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 193, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 940, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 939 + } + }, + "docs": [] + } + }, + { + "id": 941, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 942, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 943 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 944, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 943, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 944, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 943 + } + }, + "docs": [] + } + }, + { + "id": 945, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 946, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 698 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 697, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 947, + "type": { + "path": [ + "pallet_remote_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CouldNotConvertLocalToRemoteAccountId", + "fields": [], + "index": 0, + "docs": [ + "The local account id could not converted to the remote account id." + ] + }, + { + "name": "UnknownProofAnchorBlock", + "fields": [], + "index": 1, + "docs": [ + "The anchor block of the remote proof is unknown." + ] + }, + { + "name": "InvalidProof", + "fields": [], + "index": 2, + "docs": [ + "The proxy definition could not be found in the proof." + ] + }, + { + "name": "ProxyDefinitionDecodingFailed", + "fields": [], + "index": 3, + "docs": [ + "Failed to decode the remote proxy definition from the proof." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 4, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "DidNotFindMatchingProxyDefinition", + "fields": [], + "index": 5, + "docs": [ + "Could not find any matching proxy definition in the proof." + ] + }, + { + "name": "ProxyProofNotRegistered", + "fields": [], + "index": 6, + "docs": [ + "Proxy proof not registered." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 948, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 949, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 950, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 951, + "typeName": "AssetStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 951, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 952, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 953, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 41 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 954, + "typeName": "AccountStatus", + "docs": [] + }, + { + "name": "reason", + "type": 955, + "typeName": "ExistenceReason", + "docs": [] + }, + { + "name": "extra", + "type": 41, + "typeName": "Extra", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 954, + "type": { + "path": [ + "pallet_assets", + "types", + "AccountStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Liquid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 955, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Sufficient", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DepositHeld", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DepositRefunded", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DepositFrom", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 956, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 957, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 958, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 959 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 959, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 959, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 959, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 960, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 961, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 962, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 963, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approved", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 964, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 199, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 965, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 199, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 966, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 201, + 202 + ] + }, + "docs": [] + } + }, + { + "id": 967, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 203, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 968, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 73 + ] + }, + "docs": [] + } + }, + { + "id": 969, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "fields": [], + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 17, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "NoMetadata", + "fields": [], + "index": 18, + "docs": [ + "No metadata is found." + ] + }, + { + "name": "WrongMetadata", + "fields": [], + "index": 19, + "docs": [ + "Wrong metadata key/value bytes supplied." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 20, + "docs": [ + "An attribute is not found." + ] + }, + { + "name": "WrongAttribute", + "fields": [], + "index": 21, + "docs": [ + "Wrong attribute key/value bytes supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 970, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 971, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 972 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "CollectionRole", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 972, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Freezer", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Admin", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 973, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 974 + }, + { + "name": "Approvals", + "type": 975 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 975, + "typeName": "Approvals", + "docs": [] + }, + { + "name": "deposit", + "type": 974, + "typeName": "Deposit", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 974, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 975, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 201 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 976, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 976, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 201 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 977, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 977, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 978 + } + }, + "docs": [] + } + }, + { + "id": 978, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 201 + ] + }, + "docs": [] + } + }, + { + "id": 979, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 980, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 981 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 981, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 205, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 981, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 982, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 201, + 206, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 983, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 205, + 984 + ] + }, + "docs": [] + } + }, + { + "id": 984, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 985, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 986, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 986, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 987, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 208 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 207, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 988, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 989 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "PalletFeature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 989, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Attributes", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Swaps", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 990, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "fields": [], + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "fields": [], + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "fields": [], + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "fields": [], + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "fields": [], + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "fields": [], + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "fields": [], + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "fields": [], + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "fields": [], + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "fields": [], + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "fields": [], + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "fields": [], + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "fields": [], + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "fields": [], + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "fields": [], + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "fields": [], + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "fields": [], + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "fields": [], + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "fields": [], + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "fields": [], + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "fields": [], + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "fields": [], + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "fields": [], + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "fields": [], + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "fields": [], + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "fields": [], + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "fields": [], + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "fields": [], + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + }, + { + "name": "CollectionNotEmpty", + "fields": [], + "index": 43, + "docs": [ + "Can't delete non-empty collections." + ] + }, + { + "name": "WitnessRequired", + "fields": [], + "index": 44, + "docs": [ + "The witness data should be provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 991, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 83, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 992, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 83, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 993, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 994 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 994, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 994, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 994, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 995, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 996, + "type": { + "path": [ + "pallet_nft_fractionalization", + "types", + "Details" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + }, + { + "name": "Fractions", + "type": 6 + }, + { + "name": "Deposit", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset", + "type": 4, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "Fractions", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "asset_creator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 997, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncorrectAssetId", + "fields": [], + "index": 0, + "docs": [ + "Asset ID does not correspond to locked NFT." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 1, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "NftNotFound", + "fields": [], + "index": 2, + "docs": [ + "NFT doesn't exist." + ] + }, + { + "name": "NftNotFractionalized", + "fields": [], + "index": 3, + "docs": [ + "NFT has not yet been fractionalised." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 998, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 999 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 999, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 999, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 999, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1000, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1001, + "type": { + "path": [ + "pallet_asset_conversion", + "types", + "PoolInfo" + ], + "params": [ + { + "name": "PoolAssetId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "lp_token", + "type": 4, + "typeName": "PoolAssetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1002, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolExists", + "fields": [], + "index": 1, + "docs": [ + "Pool already exists." + ] + }, + { + "name": "WrongDesiredAmount", + "fields": [], + "index": 2, + "docs": [ + "Desired amount can't be zero." + ] + }, + { + "name": "AmountOneLessThanMinimal", + "fields": [], + "index": 3, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountTwoLessThanMinimal", + "fields": [], + "index": 4, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "ReserveLeftLessThanMinimal", + "fields": [], + "index": 5, + "docs": [ + "Reserve needs to always be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountOutTooHigh", + "fields": [], + "index": 6, + "docs": [ + "Desired amount can't be equal to the pool reserve." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 7, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 8, + "docs": [ + "An overflow happened." + ] + }, + { + "name": "AssetOneDepositDidNotMeetMinimum", + "fields": [], + "index": 9, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoDepositDidNotMeetMinimum", + "fields": [], + "index": 10, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "AssetOneWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 11, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 12, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "OptimalAmountLessThanDesired", + "fields": [], + "index": 13, + "docs": [ + "Optimal calculated amount is less than desired." + ] + }, + { + "name": "InsufficientLiquidityMinted", + "fields": [], + "index": 14, + "docs": [ + "Insufficient liquidity minted." + ] + }, + { + "name": "ZeroLiquidity", + "fields": [], + "index": 15, + "docs": [ + "Requested liquidity can't be zero." + ] + }, + { + "name": "ZeroAmount", + "fields": [], + "index": 16, + "docs": [ + "Amount can't be zero." + ] + }, + { + "name": "ProvidedMinimumNotSufficientForSwap", + "fields": [], + "index": 17, + "docs": [ + "Calculated amount out is less than provided minimum amount." + ] + }, + { + "name": "ProvidedMaximumNotSufficientForSwap", + "fields": [], + "index": 18, + "docs": [ + "Provided maximum amount is not sufficient for swap." + ] + }, + { + "name": "InvalidPath", + "fields": [], + "index": 19, + "docs": [ + "The provided path must consists of 2 assets at least." + ] + }, + { + "name": "NonUniquePath", + "fields": [], + "index": 20, + "docs": [ + "The provided path must consists of unique assets." + ] + }, + { + "name": "IncorrectPoolAssetId", + "fields": [], + "index": 21, + "docs": [ + "It was not possible to get or increment the Id of the pool." + ] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 22, + "docs": [ + "The destination account cannot exist with the swapped funds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1003, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 750 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 750, + "typeName": "Friends", + "docs": [] + }, + { + "name": "threshold", + "type": 194, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1004, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 750 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 750, + "typeName": "Friends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1005, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "fields": [], + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "fields": [], + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "fields": [], + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "fields": [], + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "fields": [], + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "fields": [], + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "fields": [], + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "fields": [], + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "fields": [], + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "fields": [], + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "fields": [], + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "fields": [], + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "fields": [], + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "fields": [], + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1006, + "type": { + "path": [ + "pallet_society", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "StrikeCount", + "docs": [] + }, + { + "name": "vouching", + "type": 1007, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1007, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1008 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1008, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1008, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1009, + "type": { + "path": [ + "pallet_society", + "PayoutRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "PayoutsVec", + "type": 1010 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "payouts", + "type": 1010, + "typeName": "PayoutsVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1010, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 620 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 619, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1011, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1012 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1014, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1012, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 1013, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1013, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1014, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1012 + } + }, + "docs": [] + } + }, + { + "id": 1015, + "type": { + "path": [ + "pallet_society", + "Candidacy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "kind", + "type": 1013, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "tally", + "type": 1016, + "typeName": "Tally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1016, + "type": { + "path": [ + "pallet_society", + "Tally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "VoteCount", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "VoteCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1017, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1018, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1019, + "type": { + "path": [ + "pallet_society", + "IntakeRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1020, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 1016 + ] + }, + "docs": [] + } + }, + { + "id": 1021, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 1, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "fields": [], + "index": 2, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "fields": [], + "index": 3, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "fields": [], + "index": 4, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "fields": [], + "index": 5, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "fields": [], + "index": 6, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "fields": [], + "index": 7, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouchingOnBidder", + "fields": [], + "index": 8, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "fields": [], + "index": 9, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "fields": [], + "index": 10, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "fields": [], + "index": 11, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 12, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 13, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "fields": [], + "index": 14, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "fields": [], + "index": 15, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "fields": [], + "index": 16, + "docs": [ + "The caller is not the head." + ] + }, + { + "name": "NotApproved", + "fields": [], + "index": 17, + "docs": [ + "The membership cannot be claimed as the candidate was not clearly approved." + ] + }, + { + "name": "NotRejected", + "fields": [], + "index": 18, + "docs": [ + "The candidate cannot be kicked as the candidate was not clearly rejected." + ] + }, + { + "name": "Approved", + "fields": [], + "index": 19, + "docs": [ + "The candidacy cannot be dropped as the candidate was clearly approved." + ] + }, + { + "name": "Rejected", + "fields": [], + "index": 20, + "docs": [ + "The candidacy cannot be bestowed as the candidate was clearly rejected." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 21, + "docs": [ + "The candidacy cannot be concluded as the voting is still in progress." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 22, + "docs": [ + "The candidacy cannot be pruned until a full additional intake period has passed." + ] + }, + { + "name": "Voted", + "fields": [], + "index": 23, + "docs": [ + "The skeptic already voted." + ] + }, + { + "name": "Expired", + "fields": [], + "index": 24, + "docs": [ + "The skeptic need not vote on candidates from expired rounds." + ] + }, + { + "name": "NotBidder", + "fields": [], + "index": 25, + "docs": [ + "User is not a bidder." + ] + }, + { + "name": "NoDefender", + "fields": [], + "index": 26, + "docs": [ + "There is no defender currently." + ] + }, + { + "name": "NotGroup", + "fields": [], + "index": 27, + "docs": [ + "Group doesn't exist." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 28, + "docs": [ + "The member is already elevated to this rank." + ] + }, + { + "name": "AlreadyPunished", + "fields": [], + "index": 29, + "docs": [ + "The skeptic has already been punished for this offence." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 30, + "docs": [ + "Funds are insufficient to pay off society debts." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 31, + "docs": [ + "The candidate/defender has no stale votes to remove." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 32, + "docs": [ + "There is no deposit associated with a bid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1022, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1023, + "type": { + "path": [ + "pallet_revive", + "vm", + "CodeInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf", + "docs": [] + }, + { + "name": "deposit", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "refcount", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "code_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "behaviour_version", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1024, + "type": { + "path": [ + "pallet_revive", + "storage", + "AccountInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_type", + "type": 1025, + "typeName": "AccountType", + "docs": [] + }, + { + "name": "dust", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1025, + "type": { + "path": [ + "pallet_revive", + "storage", + "AccountType" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Contract", + "fields": [ + { + "name": null, + "type": 1026, + "typeName": "ContractInfo", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "EOA", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1026, + "type": { + "path": [ + "pallet_revive", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 199, + "typeName": "TrieId", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "immutable_data_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1027, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1028, + "type": { + "path": [ + "pallet_revive", + "storage", + "DeletionQueueManager" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "insert_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "delete_counter", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1029, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSchedule", + "fields": [], + "index": 1, + "docs": [ + "Invalid schedule supplied, e.g. with zero weight of a basic operation." + ] + }, + { + "name": "InvalidCallFlags", + "fields": [], + "index": 2, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "fields": [], + "index": 3, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "TransferFailed", + "fields": [], + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "fields": [], + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "fields": [], + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeNotFound", + "fields": [], + "index": 7, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "CodeInfoNotFound", + "fields": [], + "index": 8, + "docs": [ + "No code info could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "fields": [], + "index": 9, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "fields": [], + "index": 10, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "fields": [], + "index": 11, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "fields": [], + "index": 12, + "docs": [ + "Event body or storage item exceeds [`limits::PAYLOAD_BYTES`]." + ] + }, + { + "name": "TerminatedWhileReentrant", + "fields": [], + "index": 13, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "fields": [], + "index": 14, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "TooManyTopics", + "fields": [], + "index": 15, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "DuplicateContract", + "fields": [], + "index": 18, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "fields": [], + "index": 19, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "fields": [], + "index": 20, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant." + ] + }, + { + "name": "ReenteredPallet", + "fields": [], + "index": 21, + "docs": [ + "A contract called into the runtime which then called back into this pallet." + ] + }, + { + "name": "StateChangeDenied", + "fields": [], + "index": 22, + "docs": [ + "A contract attempted to invoke a state modifying API while being in read-only mode." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "fields": [], + "index": 23, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "fields": [], + "index": 24, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "fields": [], + "index": 25, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "fields": [], + "index": 26, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "fields": [], + "index": 27, + "docs": [ + "The contract failed to compile or is missing the correct entry points.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::revive=debug`." + ] + }, + { + "name": "BlobTooLarge", + "fields": [], + "index": 28, + "docs": [ + "The code blob supplied is larger than [`limits::code::BLOB_BYTES`]." + ] + }, + { + "name": "StaticMemoryTooLarge", + "fields": [], + "index": 29, + "docs": [ + "The contract declares too much memory (ro + rw + stack)." + ] + }, + { + "name": "BasicBlockTooLarge", + "fields": [], + "index": 30, + "docs": [ + "The program contains a basic block that is larger than allowed." + ] + }, + { + "name": "InvalidInstruction", + "fields": [], + "index": 31, + "docs": [ + "The program contains an invalid instruction." + ] + }, + { + "name": "MaxDelegateDependenciesReached", + "fields": [], + "index": 32, + "docs": [ + "The contract has reached its maximum number of delegate dependencies." + ] + }, + { + "name": "DelegateDependencyNotFound", + "fields": [], + "index": 33, + "docs": [ + "The dependency was not found in the contract's delegate dependencies." + ] + }, + { + "name": "DelegateDependencyAlreadyExists", + "fields": [], + "index": 34, + "docs": [ + "The contract already depends on the given delegate dependency." + ] + }, + { + "name": "CannotAddSelfAsDelegateDependency", + "fields": [], + "index": 35, + "docs": [ + "Can not add a delegate dependency to the code hash of the contract itself." + ] + }, + { + "name": "OutOfTransientStorage", + "fields": [], + "index": 36, + "docs": [ + "Can not add more data to transient storage." + ] + }, + { + "name": "InvalidSyscall", + "fields": [], + "index": 37, + "docs": [ + "The contract tried to call a syscall which does not exist (at its current api level)." + ] + }, + { + "name": "InvalidStorageFlags", + "fields": [], + "index": 38, + "docs": [ + "Invalid storage flags were passed to one of the storage syscalls." + ] + }, + { + "name": "ExecutionFailed", + "fields": [], + "index": 39, + "docs": [ + "PolkaVM failed during code execution. Probably due to a malformed program." + ] + }, + { + "name": "BalanceConversionFailed", + "fields": [], + "index": 40, + "docs": [ + "Failed to convert a U256 to a Balance." + ] + }, + { + "name": "InvalidImmutableAccess", + "fields": [], + "index": 42, + "docs": [ + "Immutable data can only be set during deploys and only be read during calls.", + "Additionally, it is only valid to set the data once and it must not be empty." + ] + }, + { + "name": "AccountUnmapped", + "fields": [], + "index": 43, + "docs": [ + "An `AccountID32` account tried to interact with the pallet without having a mapping.", + "", + "Call [`Pallet::map_account`] in order to create a mapping for the account." + ] + }, + { + "name": "AccountAlreadyMapped", + "fields": [], + "index": 44, + "docs": [ + "Tried to map an account that is already mapped." + ] + }, + { + "name": "InvalidGenericTransaction", + "fields": [], + "index": 45, + "docs": [ + "The transaction used to dry-run a contract is invalid." + ] + }, + { + "name": "RefcountOverOrUnderflow", + "fields": [], + "index": 46, + "docs": [ + "The refcount of a code either over or underflowed." + ] + }, + { + "name": "UnsupportedPrecompileAddress", + "fields": [], + "index": 47, + "docs": [ + "Unsupported precompile address." + ] + }, + { + "name": "CallDataTooLarge", + "fields": [], + "index": 48, + "docs": [ + "The calldata exceeds [`limits::CALLDATA_BYTES`]." + ] + }, + { + "name": "ReturnDataTooLarge", + "fields": [], + "index": 49, + "docs": [ + "The return data exceeds [`limits::CALLDATA_BYTES`]." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1030, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 184, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1031, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 1032, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 1033, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1032, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1033, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 1032 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1034, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1034, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 1032 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1035, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1035, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1036 + } + }, + "docs": [] + } + }, + { + "id": 1036, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 1032 + ] + }, + "docs": [] + } + }, + { + "id": 1037, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 1038, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "SlashTooLow", + "fields": [], + "index": 33, + "docs": [ + "The slash amount is too low to be applied." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 35, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 36, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 37, + "docs": [ + "Account is restricted from participation in pools. This may happen if the account is", + "staking in another way already." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1038, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1039, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1040, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 73, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1041, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 1042, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 1043, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 1, + "docs": [ + "Could not update a node, because the pallet is locked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1043, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1044, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "Delegation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1045, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "AgentLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total_delegated", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pending_slash", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1046, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "The account cannot perform this operation." + ] + }, + { + "name": "AlreadyStaking", + "fields": [], + "index": 1, + "docs": [ + "An existing staker cannot perform this action." + ] + }, + { + "name": "InvalidRewardDestination", + "fields": [], + "index": 2, + "docs": [ + "Reward Destination cannot be same as `Agent` account." + ] + }, + { + "name": "InvalidDelegation", + "fields": [], + "index": 3, + "docs": [ + "Delegation conditions are not met.", + "", + "Possible issues are", + "1) Cannot delegate to self,", + "2) Cannot delegate to multiple delegates." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 4, + "docs": [ + "The account does not have enough funds to perform the operation." + ] + }, + { + "name": "NotAgent", + "fields": [], + "index": 5, + "docs": [ + "Not an existing `Agent` account." + ] + }, + { + "name": "NotDelegator", + "fields": [], + "index": 6, + "docs": [ + "Not a Delegator account." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 7, + "docs": [ + "Some corruption in internal state." + ] + }, + { + "name": "UnappliedSlash", + "fields": [], + "index": 8, + "docs": [ + "Unapplied pending slash restricts operation on `Agent`." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 9, + "docs": [ + "`Agent` has no pending slash to be applied." + ] + }, + { + "name": "WithdrawFailed", + "fields": [], + "index": 10, + "docs": [ + "Failed to withdraw amount from Core Staking." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 11, + "docs": [ + "Operation not supported by this pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1047, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1048, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 1048, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "ValidatorSetReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "new_validator_set", + "type": 105, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "prune_up_to", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1049, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1050 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1052, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1050, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 1051 + ] + }, + "docs": [] + } + }, + { + "id": 1051, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1052, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1050 + } + }, + "docs": [] + } + }, + { + "id": 1053, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1054, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fallback", + "fields": [], + "index": 0, + "docs": [ + "Triggering the `Fallback` failed." + ] + }, + { + "name": "UnexpectedPhase", + "fields": [], + "index": 1, + "docs": [ + "Unexpected phase" + ] + }, + { + "name": "Snapshot", + "fields": [], + "index": 2, + "docs": [ + "Snapshot was unavailable." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 1055, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "ValidSolution" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "X", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Y", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1056, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1057 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1059, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1057, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1058 + ] + }, + "docs": [] + } + }, + { + "id": 1058, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "PartialBackings" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "backers", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1059, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1057 + } + }, + "docs": [] + } + }, + { + "id": 1060, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "Status" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nothing", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1061, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1062, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1063 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1064, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1063, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 250 + ] + }, + "docs": [] + } + }, + { + "id": 1064, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1063 + } + }, + "docs": [] + } + }, + { + "id": 1065, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 1066, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "SubmissionMetadata" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "reward", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "claimed_score", + "type": 250, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "pages", + "type": 1067, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1067, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1068, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1068, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 8 + } + }, + "docs": [] + } + }, + { + "id": 1069, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PhaseNotSigned", + "fields": [], + "index": 0, + "docs": [ + "The phase is not signed." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 1, + "docs": [ + "The submission is a duplicate." + ] + }, + { + "name": "QueueFull", + "fields": [], + "index": 2, + "docs": [ + "The queue is full." + ] + }, + { + "name": "BadPageIndex", + "fields": [], + "index": 3, + "docs": [ + "The page index is out of bounds." + ] + }, + { + "name": "NotRegistered", + "fields": [], + "index": 4, + "docs": [ + "The account is not registered." + ] + }, + { + "name": "NoSubmission", + "fields": [], + "index": 5, + "docs": [ + "No submission found." + ] + }, + { + "name": "RoundNotOver", + "fields": [], + "index": 6, + "docs": [ + "Round is not yet over." + ] + }, + { + "name": "BadWitnessData", + "fields": [], + "index": 7, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "TooManyInvulnerables", + "fields": [], + "index": 8, + "docs": [ + "Too many invulnerable accounts are provided," + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1070, + "type": { + "path": [ + "pallet_staking_async", + "ledger", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 554, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1071, + "type": { + "path": [ + "pallet_staking_async", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 1051, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1072, + "type": { + "path": [ + "pallet_staking_async", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 181, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1073, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 39 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 743, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1074, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 91, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 91, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1075, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "BoundedExposurePage" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1076, + "typeName": "ExposurePage>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1076, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 91, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 1077, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1077, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1078 + } + }, + "docs": [] + } + }, + { + "id": 1078, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 91, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1079, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 200, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1080, + "type": { + "path": [ + "pallet_staking_async", + "EraRewardPoints" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 1081, + "typeName": "BoundedBTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1081, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1082, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1082, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 447, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1083, + "type": { + "path": [ + "pallet_staking_async", + "slashing", + "OffenceRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reporter", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "reported_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "exposure_page", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "prior_slash_fraction", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1084, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 200, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1085, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 1083 + ] + }, + "docs": [] + } + }, + { + "id": 1086, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 557 + ] + }, + "docs": [] + } + }, + { + "id": 1087, + "type": { + "path": [ + "pallet_staking_async", + "UnappliedSlash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "others", + "type": 1088, + "typeName": "WeakBoundedVec<(T::AccountId, BalanceOf), T::MaxExposurePageSize>", + "docs": [] + }, + { + "name": "reporter", + "type": 73, + "typeName": "Option", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1088, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 459 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 460, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1089, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 547 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 546, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1090, + "type": { + "path": [ + "pallet_staking_async", + "SnapshotStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Consumed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Waiting", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1091, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 986, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1092, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "PruningStep" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ErasStakersPaged", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ErasStakersOverview", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ErasValidatorPrefs", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ClaimedRewards", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ErasValidatorReward", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "ErasRewardPoints", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ErasTotalStake", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1093, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashRecord", + "fields": [], + "index": 6, + "docs": [ + "Slash record not found." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot bond, nominate or validate with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 13, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 14, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 15, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 16, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 17, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 18, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 19, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 20, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 21, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 22, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 23, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 24, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 25, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 26, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 27, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 28, + "docs": [ + "Operation not allowed for virtual stakers." + ] + }, + { + "name": "CannotReapStash", + "fields": [], + "index": 29, + "docs": [ + "Stash could not be reaped as other pallet might depend on it." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 30, + "docs": [ + "The stake of this account is already migrated to `Fungible` holds." + ] + }, + { + "name": "EraNotStarted", + "fields": [], + "index": 31, + "docs": [ + "Era not yet started." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 32, + "docs": [ + "Account is restricted from participation in staking. This may happen if the account is", + "staking in another way already, such as via pool." + ] + }, + { + "name": "UnappliedSlashesInPreviousEra", + "fields": [], + "index": 33, + "docs": [ + "Unapplied slashes in the recently concluded era is blocking this operation.", + "See `Call::apply_slash` to apply them." + ] + }, + { + "name": "EraNotPrunable", + "fields": [], + "index": 34, + "docs": [ + "The era is not eligible for pruning." + ] + }, + { + "name": "CancelledSlash", + "fields": [], + "index": 35, + "docs": [ + "The slash has been cancelled and cannot be applied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1094, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 200, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1095, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 261 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 262 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 261, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 262, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 1096, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1096, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1097, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 1098, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 194 + ] + }, + "docs": [] + } + }, + { + "id": 1099, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 1100, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 684, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1100, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 1101, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 682, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 683, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1101, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 680 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 681, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1102, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 686 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 685, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1103, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1104, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 194 + }, + { + "name": "RuntimeOrigin", + "type": 385 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 267 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 651 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 1105, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 654, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1105, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 194 + }, + { + "name": "RuntimeOrigin", + "type": 385 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 267 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 651 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 39 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 194, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 385, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 267, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 563, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 653, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 654, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 655, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 651, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 657, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1106, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 620 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 619, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1107, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1108 + } + }, + "docs": [] + } + }, + { + "id": 1108, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 194, + 1109 + ] + }, + "docs": [] + } + }, + { + "id": 1109, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 792 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 792, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 1110, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 1110, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1110, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 233, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 233, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 1111, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 1111, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 1111, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1111, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1112, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1112, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 1113, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1114, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1115, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 692, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1116, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1117, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + }, + { + "name": "NotProposer", + "fields": [], + "index": 11, + "docs": [ + "User is not the proposer of the bounty." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1118, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 1119, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1119, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1120, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1121, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1122, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 187, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 1123, + "type": { + "path": [ + "pallet_ah_ops", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoLeaseReserve", + "fields": [], + "index": 0, + "docs": [ + "Either no lease deposit or already unreserved." + ] + }, + { + "name": "NoCrowdloanContribution", + "fields": [], + "index": 1, + "docs": [ + "Either no crowdloan contribution or already withdrawn." + ] + }, + { + "name": "NoCrowdloanReserve", + "fields": [], + "index": 2, + "docs": [ + "Either no crowdloan reserve or already unreserved." + ] + }, + { + "name": "FailedToWithdrawCrowdloanContribution", + "fields": [], + "index": 3, + "docs": [ + "Failed to withdraw crowdloan contribution." + ] + }, + { + "name": "NotYet", + "fields": [], + "index": 4, + "docs": [ + "Block number is not yet reached." + ] + }, + { + "name": "ContributionsRemaining", + "fields": [], + "index": 5, + "docs": [ + "Not all contributions are withdrawn." + ] + }, + { + "name": "WrongDerivedTranslation", + "fields": [], + "index": 6, + "docs": [ + "The account is not a derived account." + ] + }, + { + "name": "NotSovereign", + "fields": [], + "index": 7, + "docs": [ + "Account cannot be migrated since it is not a sovereign teyrchain account." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 8, + "docs": [ + "Internal error, please bug report." + ] + }, + { + "name": "MigrationNotCompleted", + "fields": [], + "index": 9, + "docs": [ + "The Asset Hub migration is not completed." + ] + }, + { + "name": "ZeroBalance", + "fields": [], + "index": 10, + "docs": [ + "The balance is zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1124, + "type": { + "path": [ + "pallet_ah_migrator", + "BalancesBefore" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "checking_account", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_issuance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1125, + "type": { + "path": [ + "pallet_ah_migrator", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToUnreserveDeposit", + "fields": [], + "index": 0, + "docs": [ + "Failed to unreserve deposit." + ] + }, + { + "name": "FailedToProcessAccount", + "fields": [], + "index": 1, + "docs": [ + "Failed to process an account data from RC." + ] + }, + { + "name": "InsertConflict", + "fields": [], + "index": 2, + "docs": [ + "Some item could not be inserted because it already exists." + ] + }, + { + "name": "FailedToConvertType", + "fields": [], + "index": 3, + "docs": [ + "Failed to convert RC type to AH type." + ] + }, + { + "name": "PreimageNotFound", + "fields": [], + "index": 4, + "docs": [ + "Failed to fetch preimage." + ] + }, + { + "name": "FailedToConvertCall", + "fields": [], + "index": 5, + "docs": [ + "Failed to convert RC call to AH call." + ] + }, + { + "name": "FailedToBoundCall", + "fields": [], + "index": 6, + "docs": [ + "Failed to bound a call." + ] + }, + { + "name": "XcmError", + "fields": [], + "index": 7, + "docs": [ + "Failed to send XCM message." + ] + }, + { + "name": "FailedToIntegrateVestingSchedule", + "fields": [], + "index": 8, + "docs": [ + "Failed to integrate a vesting schedule." + ] + }, + { + "name": "FailedToCalculateCheckingAccount", + "fields": [], + "index": 9, + "docs": [ + "Checking account overflow or underflow." + ] + }, + { + "name": "FailedToBoundVector", + "fields": [], + "index": 10, + "docs": [ + "Vector did not fit into its compile-time bound." + ] + }, + { + "name": "DmpQueuePriorityAlreadySet", + "fields": [], + "index": 11, + "docs": [ + "The DMP queue priority is already set to the same value." + ] + }, + { + "name": "InvalidParameter", + "fields": [], + "index": 12, + "docs": [ + "Invalid parameter." + ] + }, + { + "name": "PreimageMissing", + "fields": [], + "index": 13, + "docs": [ + "Preimage missing." + ] + }, + { + "name": "PreimageTooBig", + "fields": [], + "index": 14, + "docs": [ + "Preimage too big." + ] + }, + { + "name": "PreimageChunkMissing", + "fields": [], + "index": 15, + "docs": [ + "Preimage chunk missing." + ] + }, + { + "name": "PreimageStatusInvalid", + "fields": [], + "index": 16, + "docs": [ + "Preimage status invalid." + ] + }, + { + "name": "BadXcmVersion", + "fields": [], + "index": 17, + "docs": [ + "The XCM version is invalid." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 18, + "docs": [ + "The origin is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1126, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1127, + 1128, + 1129, + 1130, + 1131, + 1133, + 1134, + 1135, + 1136 + ] + }, + "docs": [] + } + }, + { + "id": 1127, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1128, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1129, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1130, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1131, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1132, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1132, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1133, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1134, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1135, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 91, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 132, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1136, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 1137, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1137, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1138, + "type": { + "path": [ + "sp_consensus_slots", + "SlotDuration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1139, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 280 + }, + { + "name": "Extrinsic", + "type": 1140 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 280, + "typeName": "Header", + "docs": [] + }, + { + "name": "extrinsics", + "type": 1141, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1140, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 319 + }, + { + "name": "Call", + "type": 268 + }, + { + "name": "Signature", + "type": 419 + }, + { + "name": "Extra", + "type": 1126 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1141, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1140 + } + }, + "docs": [] + } + }, + { + "id": 1142, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyInherents", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1143, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1144, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1143 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1143, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1145, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 40 + }, + { + "name": "E", + "type": 1146 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 40, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1146, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1146, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 1147, + "typeName": "InvalidTransaction", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Unknown", + "fields": [ + { + "name": null, + "type": 1148, + "typeName": "UnknownTransaction", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1147, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Payment", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Future", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Stale", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BadProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExhaustsResources", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BadMandatory", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "MandatoryValidation", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "BadSigner", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IndeterminateImplicit", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 12, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1148, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoUnsignedValidator", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1149, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 1150, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1150, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 121 + }, + { + "name": "V", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1151, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1151, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1152 + } + }, + "docs": [] + } + }, + { + "id": 1152, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 121, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 1153, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "errors", + "type": 1149, + "typeName": "InherentData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1154, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "External", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1155, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1156 + }, + { + "name": "E", + "type": 1146 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1156, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1146, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1156, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority", + "docs": [] + }, + { + "name": "requires", + "type": 272, + "typeName": "Vec", + "docs": [] + }, + { + "name": "provides", + "type": 272, + "typeName": "Vec", + "docs": [] + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity", + "docs": [] + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1157, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1158 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1158, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1158, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1159 + } + }, + "docs": [] + } + }, + { + "id": 1159, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 880 + ] + }, + "docs": [] + } + }, + { + "id": 1160, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "prefix", + "type": 122, + "typeName": "[u8; 16]", + "docs": [] + }, + { + "name": "suffix", + "type": 122, + "typeName": "[u8; 16]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1161, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "E", + "type": 1162 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1162, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1162, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionDispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotImplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotFound", + "fields": [ + { + "name": null, + "type": 1160, + "typeName": "ViewFunctionId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Codec", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1163, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1164 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1164, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1164, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 1165, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1166, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 1167, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1167, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1168 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1168, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1168, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1169, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1170 + }, + { + "name": "E", + "type": 1171 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1170, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1171, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1170, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 379 + } + }, + "docs": [] + } + }, + { + "id": 1171, + "type": { + "path": [ + "xcm_runtime_apis", + "fees", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1172, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 1171 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1171, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1173, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "E", + "type": 1171 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1171, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1174, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 149 + }, + { + "name": "E", + "type": 1171 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 149, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1171, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1175, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1176 + }, + { + "name": "E", + "type": 1182 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1176, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1182, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1176, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "CallDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 780, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1177, + "typeName": "Vec", + "docs": [] + }, + { + "name": "local_xcm", + "type": 1178, + "typeName": "Option>", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1179, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1177, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 21 + } + }, + "docs": [] + } + }, + { + "id": 1178, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 337 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 337, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1179, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1180 + } + }, + "docs": [] + } + }, + { + "id": 1180, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 180, + 1181 + ] + }, + "docs": [] + } + }, + { + "id": 1181, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 337 + } + }, + "docs": [] + } + }, + { + "id": 1182, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1183, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1184 + }, + { + "name": "E", + "type": 1182 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1184, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1182, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1184, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "XcmDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 109, + "typeName": "Outcome", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1177, + "typeName": "Vec", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1179, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1185, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 1186 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1186, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1186, + "type": { + "path": [ + "xcm_runtime_apis", + "conversions", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unsupported", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1187, + "type": { + "path": [ + "xcm", + "VersionedAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "v3::MultiAsset", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 163, + "typeName": "v4::Asset", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 117, + "typeName": "v5::Asset", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1188, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 1189 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1189, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1189, + "type": { + "path": [ + "xcm_runtime_apis", + "trusted_query", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "VersionedAssetConversionFailed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedLocationConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1190, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 921 + }, + { + "name": "E", + "type": 1191 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 921, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1191, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1191, + "type": { + "path": [ + "xcm_runtime_apis", + "authorized_aliases", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LocationVersionConversionFailed", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1192, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 1191 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1191, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1193, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 149 + }, + { + "name": "E", + "type": 1194 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 149, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1194, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1194, + "type": { + "path": [ + "assets_common", + "runtime_api", + "FungiblesAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetIdConversionFailed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AmountToBalanceConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1195, + "type": { + "path": [ + "pezcumulus_primitives_core", + "CollationInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 272, + "typeName": "Vec", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 829, + "typeName": "Vec", + "docs": [] + }, + { + "name": "new_validation_code", + "type": 1196, + "typeName": "Option", + "docs": [] + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "relay_chain::BlockNumber", + "docs": [] + }, + { + "name": "head_data", + "type": 276, + "typeName": "HeadData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1196, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1197 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1197, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1197, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1198, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 41 + }, + { + "name": "E", + "type": 792 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 41, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 792, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1199, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 792 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 792, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1200, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 792 + } + }, + "docs": [] + } + }, + { + "id": 1201, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1202 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1204, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "result", + "type": 1205, + "typeName": "Result", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1202, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ExecReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "flags", + "type": 1203, + "typeName": "ReturnFlags", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1203, + "type": { + "path": [ + "pallet_revive_uapi", + "flags", + "ReturnFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bits", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1204, + "type": { + "path": [ + "pallet_revive", + "primitives", + "StorageDeposit" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Refund", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Charge", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1205, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1202 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1202, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1206, + "type": { + "path": [ + "pallet_revive", + "primitives", + "Code" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Upload", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Existing", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1207, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1208 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1204, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "result", + "type": 1209, + "typeName": "Result", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1208, + "type": { + "path": [ + "pallet_revive", + "primitives", + "InstantiateReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "result", + "type": 1202, + "typeName": "ExecReturnValue", + "docs": [] + }, + { + "name": "addr", + "type": 224, + "typeName": "H160", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1209, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1208 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1208, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1210, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "GenericTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "access_list", + "type": 1211, + "typeName": "Option", + "docs": [] + }, + { + "name": "blob_versioned_hashes", + "type": 225, + "typeName": "Vec", + "docs": [] + }, + { + "name": "blobs", + "type": 1214, + "typeName": "Vec", + "docs": [] + }, + { + "name": "chain_id", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "from", + "type": 1217, + "typeName": "Option
", + "docs": [] + }, + { + "name": "gas", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "gas_price", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "input", + "type": 1218, + "typeName": "InputOrData", + "docs": [] + }, + { + "name": "max_fee_per_blob_gas", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_fee_per_gas", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_priority_fee_per_gas", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "nonce", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "to", + "type": 1217, + "typeName": "Option
", + "docs": [] + }, + { + "name": "r#type", + "type": 1220, + "typeName": "Option", + "docs": [] + }, + { + "name": "value", + "type": 1216, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1211, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1212 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1212, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1212, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1213 + } + }, + "docs": [] + } + }, + { + "id": 1213, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "AccessListEntry" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 224, + "typeName": "Address", + "docs": [] + }, + { + "name": "storage_keys", + "type": 225, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1214, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1215 + } + }, + "docs": [] + } + }, + { + "id": 1215, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "byte", + "Bytes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1216, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 430 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 430, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1217, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 224 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 224, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1218, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "InputOrData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "input", + "type": 1219, + "typeName": "Option", + "docs": [] + }, + { + "name": "data", + "type": 1219, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1219, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1215 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1215, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1220, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1221 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1221, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1221, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "byte", + "Byte" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1222, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1223 + }, + { + "name": "E", + "type": 1224 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1223, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1224, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1223, + "type": { + "path": [ + "pallet_revive", + "primitives", + "EthTransactInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "eth_gas", + "type": 430, + "typeName": "U256", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1224, + "type": { + "path": [ + "pallet_revive", + "primitives", + "EthTransactError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Data", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Message", + "fields": [ + { + "name": null, + "type": 792, + "typeName": "String", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1225, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1226 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1226, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1226, + "type": { + "path": [ + "pallet_revive", + "primitives", + "CodeUploadReturnValue" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1227, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 1228 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 36, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1228, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1228, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "DoesntExist", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "KeyDecodingFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1229, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "TracerType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CallTracer", + "fields": [ + { + "name": null, + "type": 1230, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "PrestateTracer", + "fields": [ + { + "name": null, + "type": 1232, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1230, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1231 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1231, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1231, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallTracerConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "with_logs", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "only_top_call", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1232, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1233 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1233, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1233, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "PrestateTracerConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "diff_mode", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "disable_storage", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "disable_code", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1234, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1235 + } + }, + "docs": [] + } + }, + { + "id": 1235, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 1236 + ] + }, + "docs": [] + } + }, + { + "id": 1236, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "Trace" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [ + { + "name": null, + "type": 1237, + "typeName": "CallTrace", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Prestate", + "fields": [ + { + "name": null, + "type": 1242, + "typeName": "PrestateTrace", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1237, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallTrace" + ], + "params": [ + { + "name": "Gas", + "type": 430 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "from", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "gas", + "type": 430, + "typeName": "Gas", + "docs": [] + }, + { + "name": "gas_used", + "type": 430, + "typeName": "Gas", + "docs": [] + }, + { + "name": "to", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "input", + "type": 1215, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "output", + "type": 1215, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "error", + "type": 1199, + "typeName": "Option", + "docs": [] + }, + { + "name": "revert_reason", + "type": 1199, + "typeName": "Option", + "docs": [] + }, + { + "name": "calls", + "type": 1238, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "logs", + "type": 1239, + "typeName": "Vec", + "docs": [] + }, + { + "name": "value", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "call_type", + "type": 1241, + "typeName": "CallType", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1238, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1237 + } + }, + "docs": [] + } + }, + { + "id": 1239, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1240 + } + }, + "docs": [] + } + }, + { + "id": 1240, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallLog" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 224, + "typeName": "H160", + "docs": [] + }, + { + "name": "topics", + "type": 225, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 1215, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "position", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1241, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StaticCall", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DelegateCall", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Create", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Create2", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1242, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "PrestateTrace" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Prestate", + "fields": [ + { + "name": null, + "type": 1243, + "typeName": "BTreeMap", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "DiffMode", + "fields": [ + { + "name": "pre", + "type": 1243, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "post", + "type": 1243, + "typeName": "BTreeMap", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1243, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 224 + }, + { + "name": "V", + "type": 1244 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1248, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1244, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "PrestateTraceInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 1216, + "typeName": "Option", + "docs": [] + }, + { + "name": "nonce", + "type": 201, + "typeName": "Option", + "docs": [] + }, + { + "name": "code", + "type": 1219, + "typeName": "Option", + "docs": [] + }, + { + "name": "storage", + "type": 1245, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1245, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 1215 + }, + { + "name": "V", + "type": 1219 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1246, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1246, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1247 + } + }, + "docs": [] + } + }, + { + "id": 1247, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1215, + 1219 + ] + }, + "docs": [] + } + }, + { + "id": 1248, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1249 + } + }, + "docs": [] + } + }, + { + "id": 1249, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 224, + 1244 + ] + }, + "docs": [] + } + }, + { + "id": 1250, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1236 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1236, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1251, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1236 + }, + { + "name": "E", + "type": 1224 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1236, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1224, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1252, + "type": { + "path": [ + "asset_hub_zagros_runtime", + "RuntimeError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 804, + "typeName": "frame_system::Error", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "fields": [ + { + "name": null, + "type": 831, + "typeName": "pezcumulus_pallet_teyrchain_system::Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 832, + "typeName": "pallet_migrations::Error", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 841, + "typeName": "pallet_preimage::Error", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 846, + "typeName": "pallet_scheduler::Error", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 863, + "typeName": "pallet_balances::Error", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 866, + "typeName": "pallet_vesting::Error", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 867, + "typeName": "pallet_claims::Error", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "CollatorSelection", + "fields": [ + { + "name": null, + "type": 873, + "typeName": "pallet_collator_selection::Error", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 881, + "typeName": "pallet_session::Error", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "XcmpQueue", + "fields": [ + { + "name": null, + "type": 896, + "typeName": "pezcumulus_pallet_xcmp_queue::Error", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 922, + "typeName": "pallet_xcm::Error", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 931, + "typeName": "pallet_message_queue::Error", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 932, + "typeName": "pallet_utility::Error", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 936, + "typeName": "pallet_multisig::Error", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 945, + "typeName": "pallet_proxy::Error", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "RemoteProxyRelayChain", + "fields": [ + { + "name": null, + "type": 947, + "typeName": "pallet_remote_proxy::Error", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 949, + "typeName": "pallet_indices::Error", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 960, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 969, + "typeName": "pallet_uniques::Error", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 990, + "typeName": "pallet_nfts::Error", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "fields": [ + { + "name": null, + "type": 995, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 997, + "typeName": "pallet_nft_fractionalization::Error", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 1000, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 1002, + "typeName": "pallet_asset_conversion::Error", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 1005, + "typeName": "pallet_recovery::Error", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 1021, + "typeName": "pallet_society::Error", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 1029, + "typeName": "pallet_revive::Error", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 228, + "typeName": "pallet_state_trie_migration::Error", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 1037, + "typeName": "pallet_nomination_pools::Error", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 1042, + "typeName": "pallet_bags_list::Error", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 1046, + "typeName": "pallet_delegated_staking::Error", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "MultiBlockElection", + "fields": [ + { + "name": null, + "type": 1054, + "typeName": "pallet_election_provider_multi_block::Error", + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 1069, + "typeName": "pallet_election_provider_multi_block::signed::Error", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 1093, + "typeName": "pallet_staking_async::Error", + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 1097, + "typeName": "pallet_treasury::Error", + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 1103, + "typeName": "pallet_conviction_voting::Error", + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 1113, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 1114, + "typeName": "pallet_whitelist::Error", + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 1117, + "typeName": "pallet_bounties::Error", + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 1120, + "typeName": "pallet_child_bounties::Error", + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 1121, + "typeName": "pallet_asset_rate::Error", + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "AhOps", + "fields": [ + { + "name": null, + "type": 1123, + "typeName": "pallet_ah_ops::Error", + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "fields": [ + { + "name": null, + "type": 1125, + "typeName": "pallet_ah_migrator::Error", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/asset-hub-dicle-ver.ts b/packages/types-support/src/metadata/v15/asset-hub-dicle-ver.ts new file mode 100644 index 0000000..2aa0513 --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-dicle-ver.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +//To run a asset-hub-dicle node please refer to types-support/src/metadata/README.md + +export default { + "specName": "statemine", + "implName": "statemine", + "authoringVersion": 1, + "specVersion": 1009003, + "implVersion": 0, + "apis": [ + [ + "0xdd718d5cc53262d4", + 1 + ], + [ + "0x04e70521a0d3d2f8", + 1 + ], + [ + "0xd7bdd8a272ca0d65", + 2 + ], + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xccd9de6396c899ca", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x8a8047a53a8277ec", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 2 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x2609be83ac4468dc", + 1 + ], + [ + "0x12c8e3d4d7e06de0", + 1 + ], + [ + "0xde92b8a0426b9bf6", + 2 + ], + [ + "0xea93e3f16f3d6962", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0xa2ddb6a58477bf63", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0x8c403e5c4a9fd442", + 1 + ] + ], + "transactionVersion": 15, + "systemVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-hex.ts b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-hex.ts new file mode 100644 index 0000000..25f98f6 --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +//To run a asset-hub-pezkuwi node please refer to types-support/src/metadata/README.md + +export default '0x017a9b21006d6574610fe110000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365e90a011450686173650001146576656e7454010445000118746f70696373c90301185665633c543e000054086861737365745f6875625f706f6c6b61646f745f72756e74696d653052756e74696d654576656e740001b81853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000003c50617261636861696e53797374656d04008401bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4576656e743c52756e74696d653e00010020507265696d61676504008c017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e000500245363686564756c6572040090018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e00060028506172616d65746572730400a0018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e0007002042616c616e6365730400f8017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000a00485472616e73616374696f6e5061796d656e740400050101a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000b0038417373657454785061796d656e740400090101c870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e743a3a4576656e743c52756e74696d653e000d001c56657374696e6704005501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e000e0018436c61696d7304005901017470616c6c65745f636c61696d733a3a4576656e743c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400610101a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4576656e743c52756e74696d653e0015001c53657373696f6e04006901017870616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e0016002458636d70517565756504006d0101a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4576656e743c52756e74696d653e001e002c506f6c6b61646f7458636d04007101016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e001f002843756d756c757358636d04009902018863756d756c75735f70616c6c65745f78636d3a3a4576656e743c52756e74696d653e00200044546f4b7573616d6158636d526f7574657204009d0201590170616c6c65745f78636d5f6272696467655f6875625f726f757465723a3a4576656e743c52756e74696d652c2070616c6c65745f78636d5f6272696467655f6875625f726f757465720a3a3a496e7374616e6365313e002200304d65737361676551756575650400a502019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e00230060536e6f7762726964676553797374656d46726f6e74656e640400b50201c4736e6f776272696467655f70616c6c65745f73797374656d5f66726f6e74656e643a3a4576656e743c52756e74696d653e0024001c5574696c6974790400bd02015470616c6c65745f7574696c6974793a3a4576656e74002800204d756c74697369670400c102017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e0029001450726f78790400c902017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e002a001c496e64696365730400d902017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e002b00184173736574730400dd0201dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e0032001c556e69717565730400e102017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e003300104e6674730400fd02016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e00340034466f726569676e4173736574730400190301dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e00350028506f6f6c41737365747304001d0301dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365333e0036003c4173736574436f6e76657273696f6e04002103019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4576656e743c52756e74696d653e00370020547265617375727904003503017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e003c0040436f6e76696374696f6e566f74696e670400410301a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e003d00245265666572656e646104004d03018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e003e002457686974656c6973740400790a018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e00400020426f756e746965730400890a017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e004100344368696c64426f756e7469657304008d0a019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e004200244173736574526174650400910a018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e004300485374617465547269654d6967726174696f6e0400950a01ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e0046003c4e6f6d696e6174696f6e506f6f6c730400a10a019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e00500024566f7465724c6973740400a50a01f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0052004044656c6567617465645374616b696e670400a90a01a070616c6c65745f64656c6567617465645f7374616b696e673a3a4576656e743c52756e74696d653e0053003c5374616b696e675263436c69656e740400ad0a01b870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e743a3a4576656e743c52756e74696d653e005400484d756c7469426c6f636b456c656374696f6e0400b50a01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a4576656e743c52756e74696d653e005500684d756c7469426c6f636b456c656374696f6e56657269666965720400b90a01f870616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a76657269666965723a3a4576656e743c52756e74696d653e005600604d756c7469426c6f636b456c656374696f6e5369676e65640400c90a01f070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a7369676e65643a3a4576656e743c52756e74696d653e0058001c5374616b696e670400cd0a019070616c6c65745f7374616b696e675f6173796e633a3a4576656e743c52756e74696d653e0059001441684f70730400dd0a017470616c6c65745f61685f6f70733a3a4576656e743c52756e74696d653e00fe002841684d69677261746f720400e10a018870616c6c65745f61685f6d69677261746f723a3a4576656e743c52756e74696d653e00ff0000580c306672616d655f73797374656d1870616c6c6574144576656e7404045400012c4045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e2c5461736b537461727465640401107461736b800138543a3a52756e74696d655461736b0006048041205b605461736b605d20686173207374617274656420657865637574696e67345461736b436f6d706c657465640401107461736b800138543a3a52756e74696d655461736b0007048841205b605461736b605d206861732066696e697368656420657865637574696e672e285461736b4661696c65640801107461736b800138543a3a52756e74696d655461736b00010c65727268013444697370617463684572726f720008048c41205b605461736b605d206661696c656420647572696e6720657865637574696f6e2e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00090468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f72000a041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d000080086861737365745f6875625f706f6c6b61646f745f72756e74696d652c52756e74696d655461736b00010000840c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144576656e740404540001186056616c69646174696f6e46756e6374696f6e53746f726564000004d05468652076616c69646174696f6e2066756e6374696f6e20686173206265656e207363686564756c656420746f206170706c792e6456616c69646174696f6e46756e6374696f6e4170706c69656404015472656c61795f636861696e5f626c6f636b5f6e756d10015452656c6179436861696e426c6f636b4e756d62657200010445015468652076616c69646174696f6e2066756e6374696f6e20776173206170706c696564206173206f662074686520636f6e7461696e65642072656c617920636861696e20626c6f636b206e756d6265722e6c56616c69646174696f6e46756e6374696f6e446973636172646564000204b05468652072656c61792d636861696e2061626f727465642074686520757067726164652070726f636573732e60446f776e776172644d657373616765735265636569766564040114636f756e7410010c7533320003040101536f6d6520646f776e77617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e64446f776e776172644d6573736167657350726f63657373656408012c7765696768745f75736564280118576569676874000120646d715f6865616434014472656c61795f636861696e3a3a48617368000404e0446f776e77617264206d6573736167657320776572652070726f636573736564207573696e672074686520676976656e207765696768742e445570776172644d65737361676553656e740401306d6573736167655f6861736888013c4f7074696f6e3c58636d486173683e000504b8416e20757077617264206d657373616765207761732073656e7420746f207468652072656c617920636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748804184f7074696f6e04045401040108104e6f6e6500000010536f6d6504000400000100008c0c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000118726573756c749801384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652e9400000408101000980418526573756c74080454019c044501680108084f6b04009c000000000c45727204006800000100009c0000040000a00c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579a401c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565e001ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565e001ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a4086861737365745f6875625f706f6c6b61646f745f72756e74696d655052756e74696d65506172616d65746572734b657900010c3c5374616b696e67456c656374696f6e0400a801c5013c64796e616d69635f706172616d733a3a7374616b696e675f656c656374696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974730a3a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000000245363686564756c65720400c801a9013c64796e616d69635f706172616d733a3a7363686564756c65723a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000100304d65737361676551756575650400d401b9013c64796e616d69635f706172616d733a3a6d6573736167655f71756575653a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900020000a8106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e34506172616d65746572734b657900011c2c5369676e656450686173650400ac012c5369676e65645068617365000000504d61785369676e65645375626d697373696f6e730400b001504d61785369676e65645375626d697373696f6e7300010034556e7369676e656450686173650400b40134556e7369676e65645068617365000200284d696e657250616765730400b801284d696e65725061676573000300444d6178456c656374696e67566f746572730400bc01444d6178456c656374696e67566f7465727300040058546172676574536e617073686f74506572426c6f636b0400c00158546172676574536e617073686f74506572426c6f636b000500384d61784572614475726174696f6e0400c401384d61784572614475726174696f6e00060000ac106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e2c5369676e6564506861736500000000b0106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e504d61785369676e65645375626d697373696f6e7300000000b4106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e34556e7369676e6564506861736500000000b8106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e284d696e6572506167657300000000bc106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e444d6178456c656374696e67566f7465727300000000c0106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e58546172676574536e617073686f74506572426c6f636b00000000c4106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e384d61784572614475726174696f6e00000000c8106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73247363686564756c657234506172616d65746572734b6579000108504d61785363686564756c6564506572426c6f636b0400cc01504d61785363686564756c6564506572426c6f636b000000344d6178696d756d5765696768740400d001344d6178696d756d57656967687400010000cc106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73247363686564756c6572504d61785363686564756c6564506572426c6f636b00000000d0106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73247363686564756c6572344d6178696d756d57656967687400000000d4106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73346d6573736167655f717565756534506172616d65746572734b65790001083c4d61784f6e496e69745765696768740400d8013c4d61784f6e496e69745765696768740000003c4d61784f6e49646c655765696768740400dc013c4d61784f6e49646c6557656967687400010000d8106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73346d6573736167655f71756575653c4d61784f6e496e697457656967687400000000dc106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73346d6573736167655f71756575653c4d61784f6e49646c6557656967687400000000e004184f7074696f6e04045401e40108104e6f6e6500000010536f6d650400e40000010000e4086861737365745f6875625f706f6c6b61646f745f72756e74696d655852756e74696d65506172616d657465727356616c756500010c3c5374616b696e67456c656374696f6e0400e801cd013c64796e616d69635f706172616d733a3a7374616b696e675f656c656374696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974730a3a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000000245363686564756c65720400ec01b1013c64796e616d69635f706172616d733a3a7363686564756c65723a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000100304d65737361676551756575650400f001c1013c64796e616d69635f706172616d733a3a6d6573736167655f71756575653a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c756500020000e8106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e3c506172616d657465727356616c756500011c2c5369676e65645068617365040010012c426c6f636b4e756d626572000000504d61785369676e65645375626d697373696f6e73040010010c75333200010034556e7369676e65645068617365040010012c426c6f636b4e756d626572000200284d696e65725061676573040010010c753332000300444d6178456c656374696e67566f74657273040010010c75333200040058546172676574536e617073686f74506572426c6f636b040010010c753332000500384d61784572614475726174696f6e040030010c75363400060000ec106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73247363686564756c65723c506172616d657465727356616c7565000108504d61785363686564756c6564506572426c6f636b040010010c753332000000344d6178696d756d576569676874040028011857656967687400010000f0106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73346d6573736167655f71756575653c506172616d657465727356616c75650001083c4d61784f6e496e69745765696768740400f401384f7074696f6e3c5765696768743e0000003c4d61784f6e49646c655765696768740400f401384f7074696f6e3c5765696768743e00010000f404184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000f80c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e7408045400044900015c1c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573fc01185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e28556e6578706563746564040001010138556e65787065637465644b696e64001604b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc14346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e636553746174757300010810467265650000002052657365727665640001000001010c3c70616c6c65745f62616c616e6365731870616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e740001000005010c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657409010c8870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e741870616c6c6574144576656e7404045400010838417373657454784665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e00012061737365745f69640d010128543a3a41737365744964000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652cb8686173206265656e2070616964206279206077686f6020696e20616e206173736574206061737365745f6964602e444173736574526566756e644661696c65640401486e61746976655f616d6f756e745f6b65707418013042616c616e63654f663c543e000104f4412073776170206f662074686520726566756e6420696e206e61746976652063757272656e6379206261636b20746f206173736574206661696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d01102c73746167696e675f78636d087635206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72110101244a756e6374696f6e7300001101102c73746167696e675f78636d087635246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400150101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400390101484172633c5b4a756e6374696f6e3b20325d3e00020008583304003d0101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400410101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400450101484172633c5b4a756e6374696f6e3b20355d3e0005000858360400490101484172633c5b4a756e6374696f6e3b20365d3e00060008583704004d0101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400510101484172633c5b4a756e6374696f6e3b20385d3e000800001501000003010000001901001901102c73746167696e675f78636d087635206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04001d01010c7533320000002c4163636f756e744964333208011c6e6574776f726b210101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b210101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b210101444f7074696f6e3c4e6574776f726b49643e00010c6b6579290101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804002d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696431010118426f647949640001107061727435010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400250101244e6574776f726b4964000900001d010000061000210104184f7074696f6e0404540125010108104e6f6e6500000010536f6d650400250100000100002501102c73746167696e675f78636d087635206a756e6374696f6e244e6574776f726b496400012024427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d6100030020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a000029010000031400000008002d0100000618003101100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e64657804001d01010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e000800205472656173757279000900003501100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e741d01010c753332000100204672616374696f6e08010c6e6f6d1d01010c75333200011464656e6f6d1d01010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d1d01010c75333200011464656e6f6d1d01010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d1d01010c75333200011464656e6f6d1d01010c753332000400003901000003020000001901003d01000003030000001901004101000003040000001901004501000003050000001901004901000003060000001901004d010000030700000019010051010000030800000019010055010c3870616c6c65745f76657374696e671870616c6c6574144576656e7404045400010c3856657374696e674372656174656408011c6163636f756e74000130543a3a4163636f756e7449640001387363686564756c655f696e64657810010c75333200000490412076657374696e67207363686564756c6520686173206265656e20637265617465642e3856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000108510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640002049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745901105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f616464726573735d01013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d010c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400290101205b75383b2032305d000061010c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144576656e74040454000128404e6577496e76756c6e657261626c6573040134696e76756c6e657261626c6573650101445665633c543a3a4163636f756e7449643e0000046c4e657720496e76756c6e657261626c65732077657265207365742e44496e76756c6e657261626c6541646465640401286163636f756e745f6964000130543a3a4163636f756e7449640001047441206e657720496e76756c6e657261626c65207761732061646465642e4c496e76756c6e657261626c6552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400020470416e20496e76756c6e657261626c65207761732072656d6f7665642e504e65774465736972656443616e64696461746573040148646573697265645f63616e6469646174657310010c753332000304a4546865206e756d626572206f6620646573697265642063616e6469646174657320776173207365742e404e657743616e646964616379426f6e6404012c626f6e645f616d6f756e7418013042616c616e63654f663c543e0004046c5468652063616e64696461637920626f6e6420776173207365742e3843616e64696461746541646465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0005045c41206e65772063616e646964617465206a6f696e65642e5043616e646964617465426f6e64557064617465640801286163636f756e745f6964000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00060470426f6e64206f6620612063616e64696461746520757064617465642e4043616e64696461746552656d6f7665640401286163636f756e745f6964000130543a3a4163636f756e74496400070460412063616e646964617465207761732072656d6f7665642e4443616e6469646174655265706c616365640c010c6f6c64000130543a3a4163636f756e74496400010c6e6577000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000804f4416e206163636f756e7420776173207265706c6163656420696e207468652063616e646964617465206c69737420627920616e6f74686572206f6e652e68496e76616c6964496e76756c6e657261626c65536b69707065640401286163636f756e745f6964000130543a3a4163636f756e7449640009085501416e206163636f756e742077617320756e61626c6520746f20626520616464656420746f2074686520496e76756c6e657261626c65732062656361757365207468657920646964206e6f742068617665206b657973c8726567697374657265642e204f7468657220496e76756c6e657261626c6573206d61792068617665206265656e207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746501000002000069010c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74040454000110284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e244e6577517565756564000108490154686520604e657753657373696f6e60206576656e7420696e207468652063757272656e7420626c6f636b20616c736f20696d706c6965732061206e65772076616c696461746f722073657420746f2062651c7175657565642e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640003047856616c696461746f7220686173206265656e2072652d656e61626c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d010c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144576656e740404540001043c58636d704d65737361676553656e740401306d6573736167655f6861736804011c58636d48617368000004c0416e2048524d50206d657373616765207761732073656e7420746f2061207369626c696e672070617261636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471010c2870616c6c65745f78636d1870616c6c6574144576656e7404045400017424417474656d7074656404011c6f7574636f6d657501015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696e0d0101204c6f636174696f6e00012c64657374696e6174696f6e0d0101204c6f636174696f6e00011c6d6573736167658101011c58636d3c28293e0001286d6573736167655f696404011c58636d4861736800010460416e2058434d206d657373616765207761732073656e742e2853656e644661696c65641001186f726967696e0d0101204c6f636174696f6e00012c64657374696e6174696f6e0d0101204c6f636174696f6e0001146572726f721102012453656e644572726f720001286d6573736167655f696404011c58636d4861736800020478416e2058434d206d657373616765206661696c656420746f2073656e642e3c50726f6365737358636d4572726f720c01186f726967696e0d0101204c6f636174696f6e0001146572726f727d01012058636d4572726f720001286d6573736167655f696404011c58636d4861736800030484416e2058434d206d657373616765206661696c656420746f2070726f636573732e48556e6578706563746564526573706f6e73650801186f726967696e0d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400040c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e7365ad010120526573706f6e73650005085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400070c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380008085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800090c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696e0d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6ed10101404f7074696f6e3c4c6f636174696f6e3e000a0c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696e0d0101204c6f636174696f6e00012071756572795f696430011c51756572794964000b1c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000c04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696e0d0101204c6f636174696f6e0001186173736574731502013c56657273696f6e6564417373657473000d04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6e0d0101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f73748d0101184173736574730001286d6573736167655f696404011c58636d48617368000e0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6e0d0101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000f08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6e0d0101204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f727d01012058636d4572726f7200100859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6e9102014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c5175657279496400110859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696e0d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400121c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696e0d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f717565726965720d0101204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572d10101404f7074696f6e3c4c6f636174696f6e3e00130c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6e0d0101204c6f636174696f6e000110636f73748d0101184173736574730001286d6573736167655f696404011c58636d486173680014085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6e0d0101204c6f636174696f6e000110636f73748d0101184173736574730001286d6573736167655f696404011c58636d486173680015043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6e0d0101204c6f636174696f6e000110636f73748d0101184173736574730001286d6573736167655f696404011c58636d4861736800160825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e670d0101204c6f636174696f6e000110666565738d010118417373657473001704310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696e0d0101204c6f636174696f6e0001186173736574731502013c56657273696f6e6564417373657473001804c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00190484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e3c416c696173417574686f72697a65640c011c616c69617365720d0101204c6f636174696f6e0001187461726765740d0101204c6f636174696f6e0001186578706972799502012c4f7074696f6e3c7536343e001a085d01416e2060616c696173657260206c6f636174696f6e2077617320617574686f72697a656420627920607461726765746020746f20616c6961732069742c20617574686f72697a6174696f6e2076616c696420756e74696c58606578706972796020626c6f636b206e756d6265722e64416c696173417574686f72697a6174696f6e52656d6f76656408011c616c69617365720d0101204c6f636174696f6e0001187461726765740d0101204c6f636174696f6e001b04cc60746172676574602072656d6f76656420616c69617320617574686f72697a6174696f6e20666f722060616c6961736572602e70416c6961736573417574686f72697a6174696f6e7352656d6f7665640401187461726765740d0101204c6f636174696f6e001c04a860746172676574602072656d6f76656420616c6c20616c69617320617574686f72697a6174696f6e732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747501102c73746167696e675f78636d087635187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f7279010140496e737472756374696f6e4572726f72000100144572726f72040079010140496e737472756374696f6e4572726f72000200007901102c73746167696e675f78636d0876351874726169747340496e737472756374696f6e4572726f720000080114696e646578080140496e737472756374696f6e496e6465780001146572726f727d0101144572726f7200007d01100c78636d08763518747261697473144572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d69745265616368656404002801185765696768740025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d69740028000081010c2c73746167696e675f78636d0876350c58636d041043616c6c00000400850101585665633c496e737472756374696f6e3c43616c6c3e3e0000850100000289010089010c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d0345769746864726177417373657404008d010118417373657473000000545265736572766541737365744465706f736974656404008d010118417373657473000100585265636569766554656c65706f72746564417373657404008d010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365ad010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572d10101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574738d01011841737365747300012c62656e65666963696172790d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574738d010118417373657473000110646573740d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64d50101284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874f401384f7074696f6e3c5765696768743e00011063616c6cd901014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721d01010c7533320001406d61785f6d6573736167655f73697a651d01010c7533320001306d61785f63617061636974791d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721d01010c75333200011873656e6465721d01010c753332000124726563697069656e741d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040011010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400dd0101445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473e101012c417373657446696c74657200012c62656e65666963696172790d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473e101012c417373657446696c746572000110646573740d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e000e003445786368616e676541737365740c011067697665e101012c417373657446696c74657200011077616e748d01011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473e101012c417373657446696c74657200011c726573657276650d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473e101012c417373657446696c746572000110646573740d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fdd0101445175657279526573706f6e7365496e666f000118617373657473e101012c417373657446696c74657200120030427579457865637574696f6e080110666565739501011441737365740001307765696768745f6c696d6974ed01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204008101012458636d3c43616c6c3e0015002c536574417070656e64697804008101012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574738d0101184173736574730001187469636b65740d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404008d010118417373657473001c002c457870656374417373657404008d010118417373657473001d00304578706563744f726967696e0400d10101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400b10101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400c90101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fdd0101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f721d01010c75333200013c6d696e5f63726174655f6d696e6f721d01010c753332002200505265706f72745472616e736163745374617475730400dd0101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400190101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b250101244e6574776f726b496400012c64657374696e6174696f6e11010140496e746572696f724c6f636174696f6e00010c78636d8101011c58636d3c28293e002600244c6f636b41737365740801146173736574950101144173736574000120756e6c6f636b65720d0101204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365749501011441737365740001187461726765740d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365749501011441737365740001146f776e65720d0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365749501011441737365740001186c6f636b65720d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04000d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974ed01012c5765696768744c696d6974000130636865636b5f6f726967696ed10101404f7074696f6e3c4c6f636174696f6e3e002f001c50617946656573040114617373657495010114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e0d0101204c6f636174696f6e00012c72656d6f74655f66656573f101016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473f90101e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636d8101011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696e010201604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636d8101012458636d3c43616c6c3e0032002053657448696e747304011468696e747305020184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e003300008d01102c73746167696e675f78636d0876351461737365741841737365747300000400910101285665633c41737365743e000091010000029501009501102c73746167696e675f78636d087635146173736574144173736574000008010869649901011c4173736574496400010c66756e9d01012c46756e676962696c69747900009901102c73746167696e675f78636d0876351461737365741c41737365744964000004000d0101204c6f636174696f6e00009d01102c73746167696e675f78636d0876351461737365742c46756e676962696c6974790001082046756e6769626c6504002d010110753132380000002c4e6f6e46756e6769626c650400a10101344173736574496e7374616e636500010000a101102c73746167696e675f78636d087635146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804002d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400a501011c5b75383b20385d0003001c417272617931360400a90101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000a501000003080000000800a901000003100000000800ad010c2c73746167696e675f78636d08763520526573706f6e7365000118104e756c6c0000001841737365747304008d0101184173736574730001003c457865637574696f6e526573756c740400b10101504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400b9010198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400c90101384d617962654572726f72436f646500050000b10104184f7074696f6e04045401b5010108104e6f6e6500000010536f6d650400b5010000010000b50100000408107d0100b9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd01045300000400c50101185665633c543e0000bd010c2c73746167696e675f78636d0876352850616c6c6574496e666f0000180114696e6465781d01010c7533320001106e616d65c1010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65c1010180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f721d01010c7533320001146d696e6f721d01010c75333200011470617463681d01010c7533320000c1010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c501000002bd0100c9010c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f720400cd01018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f720400cd01018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e00020000cd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d10104184f7074696f6e040454010d010108104e6f6e6500000010536f6d6504000d010000010000d5010c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d00030000d9010c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000dd010c2c73746167696e675f78636d087635445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e0d0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000e101102c73746167696e675f78636d0876351461737365742c417373657446696c74657200010820446566696e69746504008d0101184173736574730000001057696c640400e501012457696c64417373657400010000e501102c73746167696e675f78636d0876351461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869649901011c4173736574496400010c66756ee901013c57696c6446756e676962696c69747900010028416c6c436f756e74656404001d01010c75333200020030416c6c4f66436f756e7465640c010869649901011c4173736574496400010c66756ee901013c57696c6446756e676962696c697479000114636f756e741d01010c75333200030000e901102c73746167696e675f78636d0876351461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000ed010c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040028011857656967687400010000f10104184f7074696f6e04045401f5010108104e6f6e6500000010536f6d650400f5010000010000f501102c73746167696e675f78636d0876351461737365744c41737365745472616e7366657246696c74657200010c2054656c65706f72740400e101012c417373657446696c74657200000038526573657276654465706f7369740400e101012c417373657446696c7465720001003c5265736572766557697468647261770400e101012c417373657446696c74657200020000f9010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f501045300000400fd0101185665633c543e0000fd01000002f50100010204184f7074696f6e0404540111010108104e6f6e6500000010536f6d6504001101000001000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540109020453000004000d0201185665633c543e000009020c2c73746167696e675f78636d0876351048696e74000104304173736574436c61696d65720401206c6f636174696f6e0d0101204c6f636174696f6e000000000d020000020902001102100c78636d087633187472616974732453656e644572726f7200011c344e6f744170706c696361626c65000000245472616e73706f727400010028556e726f757461626c650002005844657374696e6174696f6e556e737570706f7274656400030054457863656564734d61784d65737361676553697a650004003c4d697373696e67417267756d656e740005001046656573000600001502080c78636d3c56657273696f6e656441737365747300010c08563304001902013c76333a3a4d756c746941737365747300030008563404004502012876343a3a41737365747300040008563504008d01012876353a3a417373657473000500001902100c78636d087633286d756c746961737365742c4d756c7469417373657473000004001d02013c5665633c4d756c746941737365743e00001d020000022102002102100c78636d087633286d756c74696173736574284d756c74694173736574000008010869642502011c4173736574496400010c66756e3d02012c46756e676962696c69747900002502100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400290201344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d000100002902102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f722d0201244a756e6374696f6e7300002d02100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400310201204a756e6374696f6e0001000858320800310201204a756e6374696f6e0000310201204a756e6374696f6e0002000858330c00310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0003000858341000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0004000858351400310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0005000858361800310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0006000858371c00310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0007000858382000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e0000310201204a756e6374696f6e000800003102100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04001d01010c7533320000002c4163636f756e744964333208011c6e6574776f726b350201444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b350201444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b350201444f7074696f6e3c4e6574776f726b49643e00010c6b6579290101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804002d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696431010118426f647949640001107061727435010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400390201244e6574776f726b496400090000350204184f7074696f6e0404540139020108104e6f6e6500000010536f6d650400390200000100003902100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00003d02100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c6504002d010110753132380000002c4e6f6e46756e6769626c650400410201344173736574496e7374616e6365000100004102100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804002d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400a501011c5b75383b20385d0003001c417272617931360400a90101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d000500004502102c73746167696e675f78636d0876341461737365741841737365747300000400490201285665633c41737365743e000049020000024d02004d02102c73746167696e675f78636d087634146173736574144173736574000008010869645102011c4173736574496400010c66756e8902012c46756e676962696c69747900005102102c73746167696e675f78636d0876341461737365741c4173736574496400000400550201204c6f636174696f6e00005502102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72590201244a756e6374696f6e7300005902102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e73000124104865726500000008583104005d0201484172633c5b4a756e6374696f6e3b20315d3e00010008583204006d0201484172633c5b4a756e6374696f6e3b20325d3e0002000858330400710201484172633c5b4a756e6374696f6e3b20335d3e0003000858340400750201484172633c5b4a756e6374696f6e3b20345d3e0004000858350400790201484172633c5b4a756e6374696f6e3b20355d3e00050008583604007d0201484172633c5b4a756e6374696f6e3b20365d3e0006000858370400810201484172633c5b4a756e6374696f6e3b20375d3e0007000858380400850201484172633c5b4a756e6374696f6e3b20385d3e000800005d02000003010000006102006102102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e04001d01010c7533320000002c4163636f756e744964333208011c6e6574776f726b650201444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b650201444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b650201444f7074696f6e3c4e6574776f726b49643e00010c6b6579290101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804002d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696431010118426f647949640001107061727435010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400690201244e6574776f726b496400090000650204184f7074696f6e0404540169020108104e6f6e6500000010536f6d650400690200000100006902102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00006d02000003020000006102007102000003030000006102007502000003040000006102007902000003050000006102007d02000003060000006102008102000003070000006102008502000003080000006102008902102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c6504002d010110753132380000002c4e6f6e46756e6769626c6504008d0201344173736574496e7374616e6365000100008d02102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804002d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400a501011c5b75383b20385d0003001c417272617931360400a90101205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d000500009102080c78636d4456657273696f6e65644c6f636174696f6e00010c08563304002902014476333a3a4d756c74694c6f636174696f6e00030008563404005502013076343a3a4c6f636174696f6e00040008563504000d01013076353a3a4c6f636174696f6e00050000950204184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000099020c4863756d756c75735f70616c6c65745f78636d1870616c6c6574144576656e7404045400010c34496e76616c6964466f726d617404000401205b75383b2033325d00000880446f776e77617264206d65737361676520697320696e76616c69642058434d2e205c5b206964205c5d48556e737570706f7274656456657273696f6e04000401205b75383b2033325d000108bc446f776e77617264206d65737361676520697320756e737570706f727465642076657273696f6e206f662058434d2e205c5b206964205c5d404578656375746564446f776e7761726408000401205b75383b2033325d00007501011c4f7574636f6d65000208c4446f776e77617264206d65737361676520657865637574656420776974682074686520676976656e206f7574636f6d652e445c5b2069642c206f7574636f6d65205c5d047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d020c7070616c6c65745f78636d5f6272696467655f6875625f726f757465721870616c6c6574144576656e740804540004490001086844656c6976657279466565466163746f724465637265617365640401246e65775f76616c7565a102012446697865645531323804944e65772076616c7565206f6620746865206044656c6976657279466565466163746f72602e00049c44656c69766572792066656520666163746f7220686173206265656e206465637265617365642e6844656c6976657279466565466163746f72496e637265617365640401246e65775f76616c7565a102012446697865645531323804944e65772076616c7565206f6620746865206044656c6976657279466565466163746f72602e01049c44656c69766572792066656520666163746f7220686173206265656e20696e637265617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a1020c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000a5020c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ea90201484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72b102014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ea90201484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696ea90201484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696ea90201484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a902085c63756d756c75735f7072696d6974697665735f636f7265584167677265676174654d6573736167654f726967696e00010c104865726500000018506172656e740001001c5369626c696e670400ad02011850617261496400020000ad020c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000b10210346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000b5020c84736e6f776272696467655f70616c6c65745f73797374656d5f66726f6e74656e641870616c6c6574144576656e740404540001082c4d65737361676553656e741001186f726967696e0d0101204c6f636174696f6e00012c64657374696e6174696f6e0d0101204c6f636174696f6e00011c6d6573736167658101011c58636d3c28293e0001286d6573736167655f696404011c58636d486173680000043c416e2058434d207761732073656e74684578706f72744f7065726174696e674d6f64654368616e6765640401106d6f6465b90201344f7065726174696e674d6f646500010444536574204f7065726174696e674d6f6465047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9020c3c736e6f776272696467655f636f7265386f7065726174696e675f6d6f64654842617369634f7065726174696e674d6f6465000108184e6f726d616c0000001848616c74656400010000bd020c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c749801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c1020c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74c502017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e74c502017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c749801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e74c502017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c502083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000c9020c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c749801384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f74797065cd020130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578d102010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f74797065cd020130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578d102010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065cd020130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f74797065cd020130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e64d502012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd02086861737365745f6875625f706f6c6b61646f745f72756e74696d652450726f7879547970650001300c416e790000002c4e6f6e5472616e736665720001002c43616e63656c50726f7879000200184173736574730003002841737365744f776e65720004003041737365744d616e6167657200050020436f6c6c61746f7200060028476f7665726e616e63650007001c5374616b696e670008003c4e6f6d696e6174696f6e506f6f6c730009001c41756374696f6e000a004050617261526567697374726174696f6e000b0000d1020000050400d502083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e747300010000d9020c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dd020c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e1020c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461e5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461e5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73e90201385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00010c6b6579f102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565f5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00010c6b6579f102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6eed02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572f90201504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000e9020000021000ed0204184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000f1020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f5020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f90204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000fd020c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572f90201504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696ef90201504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a6572f90201504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65ed0201704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746101030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746101030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73e90201385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00010c6b6579f502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365050301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00010c6b6579f502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365050301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6eed02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f6964ed02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572f90201504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656ded0201444f7074696f6e3c543a3a4974656d49643e0001147072696365090301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656ded0201444f7074696f6e3c543a3a4974656d49643e0001147072696365090301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365090301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365050301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656ded0201444f7074696f6e3c543a3a4974656d49643e0001246174747269627574651503018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c756501030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657401030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000005030c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000090304184f7074696f6e040454010d030108104e6f6e6500000010536f6d6504000d0300000100000d030c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6e110301385072696365446972656374696f6e000011030c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c526563656976650001000015030c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c65640001000019030c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f69640d010128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f69640d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f69640d010128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f69640d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f69640d010128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f69640d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f69640d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f69640d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f69640d010128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f69640d010128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f69640d010128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f69640d010128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f69640d010128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f69640d010128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f69640d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f69640d010128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f69640d010128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f69640d010128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f69640d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f69640d010128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f69640d010128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f69640d010128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f69640d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f69640d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f69640d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f69640d010128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d030c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421030c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144576656e740404540001182c506f6f6c4372656174656410011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f696425030124543a3a506f6f6c496408490154686520706f6f6c206964206173736f63696174656420776974682074686520706f6f6c2e204e6f7465207468617420746865206f72646572206f662074686520617373657473206d6179206e6f74206265f47468652073616d6520617320746865206f726465722073706563696669656420696e207468652063726561746520706f6f6c2065787472696e7369632e0130706f6f6c5f6163636f756e74000130543a3a4163636f756e744964046c546865206163636f756e74204944206f662074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964084101546865206964206f6620746865206c697175696469747920746f6b656e7320746861742077696c6c206265206d696e746564207768656e206173736574732061726520616464656420746f207468697314706f6f6c2e00041d0141207375636365737366756c2063616c6c206f66207468652060437265617465506f6f6c602065787472696e7369632077696c6c206372656174652074686973206576656e742e384c697175696469747941646465641c010c77686f000130543a3a4163636f756e74496404b8546865206163636f756e74207468617420746865206c6971756964697479207761732074616b656e2066726f6d2e011c6d696e745f746f000130543a3a4163636f756e74496404d4546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206d696e74656420746f2e011c706f6f6c5f696425030124543a3a506f6f6c496404e054686520706f6f6c206964206f662074686520706f6f6c207468617420746865206c69717569646974792077617320616464656420746f2e0140616d6f756e74315f70726f7669646564180128543a3a42616c616e636504e454686520616d6f756e74206f662074686520666972737420617373657420746861742077617320616464656420746f2074686520706f6f6c2e0140616d6f756e74325f70726f7669646564180128543a3a42616c616e636504e854686520616d6f756e74206f6620746865207365636f6e6420617373657420746861742077617320616464656420746f2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206d696e7465642e013c6c705f746f6b656e5f6d696e746564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206d696e746564206f6620746861742069642e0104250141207375636365737366756c2063616c6c206f662074686520604164644c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e404c697175696469747952656d6f76656420010c77686f000130543a3a4163636f756e74496404dc546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206275726e65642066726f6d2e012c77697468647261775f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e011c706f6f6c5f696425030124543a3a506f6f6c496404c054686520706f6f6c206964207468617420746865206c6971756964697479207761732072656d6f7665642066726f6d2e011c616d6f756e7431180128543a3a42616c616e636504f454686520616d6f756e74206f66207468652066697273742061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e011c616d6f756e7432180128543a3a42616c616e636504f854686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206275726e65642e013c6c705f746f6b656e5f6275726e6564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206275726e6564206f6620746861742069642e01387769746864726177616c5f6665652903011c5065726d696c6c04744c6971756964697479207769746864726177616c20666565202825292e0204310141207375636365737366756c2063616c6c206f6620746865206052656d6f76654c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e3053776170457865637574656414010c77686f000130543a3a4163636f756e74496404b45768696368206163636f756e74207761732074686520696e7374696761746f72206f662074686520737761702e011c73656e645f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174682d03013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f757429030835014173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e20426f74682060537761704578616374546f6b656e466f72546f6b656e60d8616e64206053776170546f6b656e466f724578616374546f6b656e602077696c6c2067656e65726174652074686973206576656e742e485377617043726564697445786563757465640c0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174682d03013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f7574290404bc4173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e1c546f756368656408011c706f6f6c5f696425030124543a3a506f6f6c4964044c546865204944206f662074686520706f6f6c2e010c77686f000130543a3a4163636f756e7449640484546865206163636f756e7420696e6974696174696e672074686520746f7563682e05040d01506f6f6c20686173206265656e20746f756368656420696e206f7264657220746f2066756c66696c6c206f7065726174696f6e616c20726571756972656d656e74732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742503000004080d010d010029030c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200002d030000023103003103000004080d01180035030c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e6439030130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172793d030138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657439030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c65417373657400010c0856330801206c6f636174696f6e2902014478636d3a3a76333a3a4c6f636174696f6e00012061737365745f69642502014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6e5502014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69645102014078636d3a3a76343a3a417373657449640004000856350801206c6f636174696f6e0d01014478636d3a3a76353a3a4c6f636174696f6e00012061737365745f69649901014078636d3a3a76353a3a41737365744964000500003d030c4470617261636861696e735f636f6d6d6f6e0c7061796456657273696f6e65644c6f63617461626c654163636f756e740001080856340801206c6f636174696f6e5502014478636d3a3a76343a3a4c6f636174696f6e0001286163636f756e745f69645502014478636d3a3a76343a3a4c6f636174696f6e0004000856350801206c6f636174696f6e0d01014478636d3a3a76353a3a4c6f636174696f6e0001286163636f756e745f69640d01014478636d3a3a76353a3a4c6f636174696f6e0005000041030c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001142444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f74656408010c77686f000130543a3a4163636f756e744964000110766f7465450301704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f76656408010c77686f000130543a3a4163636f756e744964000110766f7465450301704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c617373d1020134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657445030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746549030110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000049030c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f746500000400080000004d030c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bd102013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c5103014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bd102013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c5103014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79ed080120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79ed080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79ed080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79ed080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79ed080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79ed080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574510310346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564080454015503044801750a010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e650400e5020134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200005503086861737365745f6875625f706f6c6b61646f745f72756e74696d652c52756e74696d6543616c6c0001b81853797374656d0400590301ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000003c50617261636861696e53797374656d0400690301d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e53797374656d2c2052756e74696d653e0001002454696d657374616d700400bd0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003003450617261636861696e496e666f0400c10301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261636861696e496e666f2c2052756e74696d653e00040020507265696d6167650400c50301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e000500245363686564756c65720400cd0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00060028506172616d65746572730400d50301bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e0007002042616c616e6365730400ed0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e000a001c56657374696e670400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e000e0018436c61696d730400050401ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e0400210401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6c6c61746f7253656c656374696f6e2c2052756e74696d653e0015001c53657373696f6e0400250401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0016002458636d7051756575650400310401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d7051756575652c2052756e74696d653e001e002c506f6c6b61646f7458636d0400350401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6c6b61646f7458636d2c2052756e74696d653e001f002843756d756c757358636d0400e50401bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43756d756c757358636d2c2052756e74696d653e00200044546f4b7573616d6158636d526f757465720400e90401d90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546f4b7573616d6158636d526f757465722c2052756e74696d653e002200304d65737361676551756575650400ed0401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e00230060536e6f7762726964676553797374656d46726f6e74656e640400f10401f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536e6f7762726964676553797374656d46726f6e74656e642c2052756e74696d653e0024001c5574696c6974790400fd0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e002800204d756c74697369670400190501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e0029001450726f78790400210501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e002a001c496e64696365730400290501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e002b001841737365747304002d0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e0032001c556e69717565730400310501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e003300104e6674730400410501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e00340034466f726569676e4173736574730400910501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c466f726569676e4173736574732c2052756e74696d653e00350028506f6f6c4173736574730400950501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c4173736574732c2052756e74696d653e0036003c4173736574436f6e76657273696f6e0400990501d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e2c2052756e74696d653e0037002054726561737572790400a10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e003c0040436f6e76696374696f6e566f74696e670400a50501d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e003d00245265666572656e64610400b10501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e003e002457686974656c6973740400bd0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e00400020426f756e746965730400c10501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e004100344368696c64426f756e746965730400c50501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e004200244173736574526174650400c90501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e004300485374617465547269654d6967726174696f6e0400cd0501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e0046003c4e6f6d696e6174696f6e506f6f6c730400e50501d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e00500024566f7465724c69737404001d0601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e0052003c5374616b696e675263436c69656e740400210601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e675263436c69656e742c2052756e74696d653e005400484d756c7469426c6f636b456c656374696f6e0400450601dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e2c2052756e74696d653e005500684d756c7469426c6f636b456c656374696f6e56657269666965720400750601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e56657269666965722c2052756e74696d653e005600684d756c7469426c6f636b456c656374696f6e556e7369676e65640400790601fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e556e7369676e65642c2052756e74696d653e005700604d756c7469426c6f636b456c656374696f6e5369676e65640400510701f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b456c656374696f6e5369676e65642c2052756e74696d653e0058001c5374616b696e670400590701b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0059001441684f70730400a10701a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41684f70732c2052756e74696d653e00fe002841684d69677261746f720400a50701bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41684d69677261746f722c2052756e74696d653e00ff000059030c306672616d655f73797374656d1870616c6c65741043616c6c0404540001301872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d735d0301345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973650301205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e1c646f5f7461736b0401107461736b800138543a3a52756e74696d655461736b00080044617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d030000026103006103000004083838006503000002380069030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c65741043616c6c0404540001084c7365745f76616c69646174696f6e5f64617461080110646174616d030168426173696350617261636861696e496e686572656e7444617461000154696e626f756e645f6d657373616765735f646174618d03014c496e626f756e644d657373616765734461746100002480536574207468652063757272656e742076616c69646174696f6e20646174612e004101546869732073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6e887068617365206966207468652063616c6c20776173206e6f7420696e766f6b65642e00d0546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e7460002101417320612073696465206566666563742c20746869732066756e6374696f6e207570677261646573207468652063757272656e742076616c69646174696f6e2066756e6374696f6e8469662074686520617070726f7072696174652074696d652068617320636f6d652e607375646f5f73656e645f7570776172645f6d65737361676504011c6d6573736167653801345570776172644d657373616765000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e7468426173696350617261636861696e496e686572656e7444617461000010013c76616c69646174696f6e5f646174617103015c50657273697374656456616c69646174696f6e4461746100014472656c61795f636861696e5f73746174657903015473705f747269653a3a53746f7261676550726f6f6600016072656c61795f706172656e745f64657363656e64616e7473810301405665633c52656c61794865616465723e000140636f6c6c61746f725f706565725f6964890301584f7074696f6e3c417070726f7665645065657249643e000071030c4c706f6c6b61646f745f7072696d6974697665730876385c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616475030120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c753332000075030c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e000079030c1c73705f747269653473746f726167655f70726f6f663053746f7261676550726f6f660000040128747269655f6e6f6465737d03014442547265655365743c5665633c75383e3e00007d03042042547265655365740404540138000400650300000081030000028503008503102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d6265721d0101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000890304184f7074696f6e04045401f5020108104e6f6e6500000010536f6d650400f50200000100008d030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e744c496e626f756e644d65737361676573446174610000080144646f776e776172645f6d657373616765739103017c4162726964676564496e626f756e64446f776e776172644d6573736167657300014c686f72697a6f6e74616c5f6d65737361676573a503016c4162726964676564496e626f756e6448726d704d65737361676573000091030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e74844162726964676564496e626f756e644d65737361676573436f6c6c656374696f6e041c4d6573736167650195030008013466756c6c5f6d65737361676573990301305665633c4d6573736167653e00013c6861736865645f6d657373616765739d03017c5665633c4d6573736167653a3a436f6d707265737365644d6573736167653e000095030860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d657373616765000099030000029503009d03000002a10300a103089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74344861736865644d657373616765000008011c73656e745f617410015452656c6179436861696e426c6f636b4e756d6265720001206d73675f6861736834013473705f636f72653a3a483235360000a5030c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e74844162726964676564496e626f756e644d65737361676573436f6c6c656374696f6e041c4d65737361676501a9030008013466756c6c5f6d65737361676573b10301305665633c4d6573736167653e00013c6861736865645f6d65737361676573b503017c5665633c4d6573736167653a3a436f6d707265737365644d6573736167653e0000a90300000408ad02ad0300ad030860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000b103000002a90300b503000002b90300b90300000408ad02a10300bd030c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1030c5873746167696e675f70617261636861696e5f696e666f1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5030c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573c90301305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec9030000023400cd030c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963d10301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963d10301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963d10301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963d10301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b9401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed10304184f7074696f6e04045401940108104e6f6e6500000010536f6d650400940000010000d5030c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c7565d9030150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed903086861737365745f6875625f706f6c6b61646f745f72756e74696d654452756e74696d65506172616d657465727300010c3c5374616b696e67456c656374696f6e0400dd0301b064796e616d69635f706172616d733a3a7374616b696e675f656c656374696f6e3a3a506172616d6574657273000000245363686564756c65720400e103019464796e616d69635f706172616d733a3a7363686564756c65723a3a506172616d6574657273000100304d65737361676551756575650400e50301a464796e616d69635f706172616d733a3a6d6573736167655f71756575653a3a506172616d657465727300020000dd03106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73407374616b696e675f656c656374696f6e28506172616d657465727300011c2c5369676e656450686173650800ac012c5369676e656450686173650000ed02014c4f7074696f6e3c426c6f636b4e756d6265723e000000504d61785369676e65645375626d697373696f6e730800b001504d61785369676e65645375626d697373696f6e730000ed02012c4f7074696f6e3c7533323e00010034556e7369676e656450686173650800b40134556e7369676e656450686173650000ed02014c4f7074696f6e3c426c6f636b4e756d6265723e000200284d696e657250616765730800b801284d696e657250616765730000ed02012c4f7074696f6e3c7533323e000300444d6178456c656374696e67566f746572730800bc01444d6178456c656374696e67566f746572730000ed02012c4f7074696f6e3c7533323e00040058546172676574536e617073686f74506572426c6f636b0800c00158546172676574536e617073686f74506572426c6f636b0000ed02012c4f7074696f6e3c7533323e000500384d61784572614475726174696f6e0800c401384d61784572614475726174696f6e00009502012c4f7074696f6e3c7536343e00060000e103106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73247363686564756c657228506172616d6574657273000108504d61785363686564756c6564506572426c6f636b0800cc01504d61785363686564756c6564506572426c6f636b0000ed02012c4f7074696f6e3c7533323e000000344d6178696d756d5765696768740800d001344d6178696d756d5765696768740000f401384f7074696f6e3c5765696768743e00010000e503106861737365745f6875625f706f6c6b61646f745f72756e74696d653864796e616d69635f706172616d73346d6573736167655f717565756528506172616d65746572730001083c4d61784f6e496e69745765696768740800d8013c4d61784f6e496e69745765696768740000e90301584f7074696f6e3c4f7074696f6e3c5765696768743e3e0000003c4d61784f6e49646c655765696768740800dc013c4d61784f6e49646c655765696768740000e90301584f7074696f6e3c4f7074696f6e3c5765696768743e3e00010000e90304184f7074696f6e04045401f40108104e6f6e6500000010536f6d650400f40000010000ed030c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c75652d010128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365f10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c75652d010128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e00011476616c75652d010128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f650101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f667265652d010128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ef903014c41646a7573746d656e74446972656374696f6e00011464656c74612d010128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c75652d010128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1030c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e646578019c011408496404000001244163636f756e74496400000014496e6465780400f50301304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400290101205b75383b2032305d00040000f5030000069c00f9030c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000fd030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65010401b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365f10301504163636f756e7449644c6f6f6b75704f663c543e000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65010401b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c65080118746172676574f103018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01040c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d62657200000504105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650904013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f5d01013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65110401dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e74190401544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650904013845636473615369676e617475726500012473746174656d656e7438011c5665633c75383e00026ce44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7438011c5665633c75383e00034cf441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0019015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c6964617465417474657374736020617320615c605472616e73616374696f6e457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c645d01013c457468657265756d4164647265737300010c6e65775d01013c457468657265756d416464726573730001386d617962655f707265636c61696df90201504f7074696f6e3c543a3a4163636f756e7449643e000400040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e09040c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e6174757265000004000d0401205b75383b2036355d00000d04000003410000000800110404184f7074696f6e0404540115040108104e6f6e6500000010536f6d6504001504000001000015040000040c18181000190404184f7074696f6e040454011d040108104e6f6e6500000010536f6d6504001d0400000100001d040c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000021040c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65741043616c6c040454000124447365745f696e76756c6e657261626c657304010c6e6577650101445665633c543a3a4163636f756e7449643e000034310153657420746865206c697374206f6620696e76756c6e657261626c65202866697865642920636f6c6c61746f72732e20546865736520636f6c6c61746f7273206d75737420646f20736f6d65d07072657061726174696f6e2c206e616d656c7920746f206861766520726567697374657265642073657373696f6e206b6579732e0059015468652063616c6c2077696c6c2072656d6f766520616e79206163636f756e747320746861742068617665206e6f742072656769737465726564206b6579732066726f6d20746865207365742e20546861742069732c5d016974206973206e6f6e2d61746f6d69633b207468652063616c6c6572206163636570747320616c6c20604163636f756e74496460732070617373656420696e20606e657760205f696e646976696475616c6c795f206173310161636365707461626c6520496e76756c6e657261626c65732c20616e64206973206e6f742070726f706f73696e672061205f7365745f206f66206e657720496e76756c6e657261626c65732e005901546869732063616c6c20646f6573206e6f74206d61696e7461696e206d757475616c206578636c75736976697479206f662060496e76756c6e657261626c65736020616e64206043616e64696461746573602e20497461016973207265636f6d6d656e64656420746f207573652061206261746368206f6620606164645f696e76756c6e657261626c656020616e64206072656d6f76655f696e76756c6e657261626c656020696e73746561642e204151016062617463685f616c6c602063616e20616c736f206265207573656420746f20656e666f7263652061746f6d69636974792e20496620616e792063616e646964617465732061726520696e636c7564656420696e4d01606e6577602c20746865792073686f756c642062652072656d6f7665642077697468206072656d6f76655f696e76756c6e657261626c655f63616e6469646174656020616674657220657865637574696f6e2e00944d7573742062652063616c6c65642062792074686520605570646174654f726967696e602e587365745f646573697265645f63616e6469646174657304010c6d617810010c75333200011455015365742074686520696465616c206e756d626572206f66206e6f6e2d696e76756c6e657261626c6520636f6c6c61746f72732e204966206c6f776572696e672074686973206e756d6265722c207468656e2074686561016e756d626572206f662072756e6e696e6720636f6c6c61746f727320636f756c6420626520686967686572207468616e2074686973206669677572652e2041736964652066726f6d2074686174206564676520636173652c350174686572652073686f756c64206265206e6f206f746865722077617920746f2068617665206d6f72652063616e64696461746573207468616e207468652064657369726564206e756d6265722e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e487365745f63616e6469646163795f626f6e64040110626f6e6418013042616c616e63654f663c543e00021c78536574207468652063616e64696461637920626f6e6420616d6f756e742e0051014966207468652063616e64696461637920626f6e6420697320696e6372656173656420627920746869732063616c6c2c20616c6c2063757272656e742063616e64696461746573207768696368206861766520614d016465706f736974206c6f776572207468616e20746865206e657720626f6e642077696c6c206265206b69636b65642066726f6d20746865206c69737420616e6420676574207468656972206465706f73697473146261636b2e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e5472656769737465725f61735f63616e646964617465000310410152656769737465722074686973206163636f756e74206173206120636f6c6c61746f722063616e6469646174652e20546865206163636f756e74206d7573742028612920616c726561647920686176651d01726567697374657265642073657373696f6e206b65797320616e64202862292062652061626c6520746f207265736572766520746865206043616e646964616379426f6e64602e00dc546869732063616c6c206973206e6f7420617661696c61626c6520746f2060496e76756c6e657261626c656020636f6c6c61746f72732e306c656176655f696e74656e7400041455014465726567697374657220606f726967696e60206173206120636f6c6c61746f722063616e6469646174652e204e6f746520746861742074686520636f6c6c61746f722063616e206f6e6c79206c65617665206f6e0d0173657373696f6e206368616e67652e20546865206043616e646964616379426f6e64602077696c6c20626520756e726573657276656420696d6d6564696174656c792e001901546869732063616c6c2077696c6c206661696c2069662074686520746f74616c206e756d626572206f662063616e6469646174657320776f756c642064726f702062656c6f775c604d696e456c696769626c65436f6c6c61746f7273602e406164645f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e74496400051045014164642061206e6577206163636f756e74206077686f6020746f20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e206077686f60206d75737420686176651d01726567697374657265642073657373696f6e206b6579732e204966206077686f6020697320612063616e6469646174652c20746865792077696c6c2062652072656d6f7665642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e4c72656d6f76655f696e76756c6e657261626c6504010c77686f000130543a3a4163636f756e744964000610610152656d6f766520616e206163636f756e74206077686f602066726f6d20746865206c697374206f662060496e76756c6e657261626c65736020636f6c6c61746f72732e2060496e76756c6e657261626c657360206d75737428626520736f727465642e00d0546865206f726967696e20666f7220746869732063616c6c206d7573742062652074686520605570646174654f726967696e602e2c7570646174655f626f6e6404012c6e65775f6465706f73697418013042616c616e63654f663c543e00071c5d01557064617465207468652063616e64696461637920626f6e64206f6620636f6c6c61746f722063616e64696461746520606f726967696e6020746f2061206e657720616d6f756e7420606e65775f6465706f736974602e00410153657474696e67206120606e65775f6465706f736974602074686174206973206c6f776572207468616e207468652063757272656e74206465706f736974207768696c6520606f726967696e60206973e06f6363757079696e67206120746f702d604465736972656443616e646964617465736020736c6f74206973206e6f7420616c6c6f7765642e005901546869732063616c6c2077696c6c206661696c20696620606f726967696e60206973206e6f74206120636f6c6c61746f722063616e6469646174652c20746865207570646174656420626f6e64206973206c6f77657219017468616e20746865206d696e696d756d2063616e64696461637920626f6e642c20616e642f6f722074686520616d6f756e742063616e6e6f742062652072657365727665642e4c74616b655f63616e6469646174655f736c6f7408011c6465706f73697418013042616c616e63654f663c543e000118746172676574000130543a3a4163636f756e74496400081c4d015468652063616c6c657220606f726967696e60207265706c6163657320612063616e64696461746520607461726765746020696e2074686520636f6c6c61746f722063616e646964617465206c6973742062795501726573657276696e6720606465706f736974602e2054686520616d6f756e7420606465706f73697460207265736572766564206279207468652063616c6c6572206d7573742062652067726561746572207468616ee0746865206578697374696e6720626f6e64206f66207468652074617267657420697420697320747279696e6720746f207265706c6163652e005901546869732063616c6c2077696c6c206661696c206966207468652063616c6c657220697320616c7265616479206120636f6c6c61746f722063616e646964617465206f7220696e76756c6e657261626c652c20746865550163616c6c657220646f6573206e6f74206861766520726567697374657265642073657373696f6e206b6579732c2074686520746172676574206973206e6f74206120636f6c6c61746f722063616e6469646174652cbc616e642f6f722074686520606465706f7369746020616d6f756e742063616e6e6f742062652072657365727665642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25040c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579732904011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2904086861737365745f6875625f706f6c6b61646f745f72756e74696d652c53657373696f6e4b6579730000040110617572612d0401c43c41757261206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300002d04104473705f636f6e73656e7375735f617572611c656432353531392c6170705f65643235353139185075626c69630000040004013c656432353531393a3a5075626c6963000031040c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c65741043616c6c0404540001145473757370656e645f78636d5f657865637574696f6e00010c490153757370656e647320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652c207265676172646c657373206f66207468652073656e6465722773206f726967696e2e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e50726573756d655f78636d5f657865637574696f6e000214b8526573756d657320616c6c2058434d20657865637574696f6e7320666f72207468652058434d502071756575652e003d014e6f7465207468617420746869732066756e6374696f6e20646f65736e2774206368616e67652074686520737461747573206f662074686520696e2f6f757420626f756e64206368616e6e656c732e00a42d20606f726967696e603a204d75737420706173732060436f6e74726f6c6c65724f726967696e602e607570646174655f73757370656e645f7468726573686f6c6404010c6e657710010c75333200031449014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e2074686520717565756520666f7220746865206f74686572207369646520746f20626578746f6c6420746f2073757370656e642074686569722073656e64696e672e00742d20606f726967696e603a204d75737420706173732060526f6f74602ee82d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e73757370656e645f76616c756560547570646174655f64726f705f7468726573686f6c6404010c6e657710010c75333200041445014f76657277726974657320746865206e756d626572206f66207061676573207768696368206d75737420626520696e207468652071756575652061667465722077686963682077652064726f7020616e798866757274686572206d657373616765732066726f6d20746865206368616e6e656c2e00742d20606f726967696e603a204d75737420706173732060526f6f74602eec2d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e64726f705f7468726573686f6c64605c7570646174655f726573756d655f7468726573686f6c6404010c6e657710010c7533320005144d014f76657277726974657320746865206e756d626572206f6620706167657320776869636820746865207175657565206d757374206265207265647563656420746f206265666f7265206974207369676e616c73010174686174206d6573736167652073656e64696e67206d6179207265636f6d6d656e636520616674657220697420686173206265656e2073757370656e6465642e00742d20606f726967696e603a204d75737420706173732060526f6f74602ef42d20606e6577603a20446573697265642076616c756520666f7220605175657565436f6e666967446174612e726573756d655f7468726573686f6c6460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35040c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001441073656e640801106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676539040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f6173736574731001106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727991020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747315020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f6173736574731001106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727991020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747315020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765b10401b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e0d010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6eed0201484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e91020158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e91020158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f6173736574731401106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727991020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747315020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974ed01012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f6173736574731401106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727991020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747315020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974ed01012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f6173736574731401106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727991020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747315020150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974ed01012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747315020150426f783c56657273696f6e65644173736574733e00012c62656e656669636961727991020158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c01106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747315020150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065dd040144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964e1040154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065dd040144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737439040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d6974ed01012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e506164645f617574686f72697a65645f616c69617308011c616c696173657291020158426f783c56657273696f6e65644c6f636174696f6e3e00011c657870697265739502012c4f7074696f6e3c7536343e000e2c5d01417574686f72697a6520616e6f746865722060616c696173657260206c6f636174696f6e20746f20616c69617320696e746f20746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e29015468652060616c696173657260206973206f6e6c7920617574686f72697a656420756e74696c207468652070726f766964656420606578706972796020626c6f636b206e756d6265722e49015468652063616c6c2063616e20616c736f206265207573656420666f7220612070726576696f75736c7920617574686f72697a656420616c69617320696e206f7264657220746f207570646174652069747358606578706972796020626c6f636b206e756d6265722e005101557375616c6c792075736566756c20746f20616c6c6f7720796f7572206c6f63616c206163636f756e7420746f20626520616c696173656420696e746f2066726f6d20612072656d6f7465206c6f636174696f6ef4616c736f20756e64657220796f757220636f6e74726f6c20286c696b6520796f7572206163636f756e74206f6e20616e6f7468657220636861696e292e0051015741524e494e473a206d616b652073757265207468652063616c6c657220606f726967696e602028796f752920747275737473207468652060616c696173657260206c6f636174696f6e20746f2061637420696e590174686569722f796f7572206e616d652e204f6e636520617574686f72697a6564207573696e6720746869732063616c6c2c207468652060616c6961736572602063616e20667265656c7920696d706572736f6e617465d4606f726967696e6020696e2058434d2070726f6772616d73206578656375746564206f6e20746865206c6f63616c20636861696e2e5c72656d6f76655f617574686f72697a65645f616c69617304011c616c696173657291020158426f783c56657273696f6e65644c6f636174696f6e3e000f085d0152656d6f766520612070726576696f75736c7920617574686f72697a65642060616c6961736572602066726f6d20746865206c697374206f66206c6f636174696f6e7320746861742063616e20616c69617320696e746f90746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e7472656d6f76655f616c6c5f617574686f72697a65645f616c6961736573001008490152656d6f766520616c6c2070726576696f75736c7920617574686f72697a65642060616c6961736572607320746861742063616e20616c69617320696e746f20746865206c6f63616c20606f726967696e60446d616b696e6720746869732063616c6c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3904080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563304003d04015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404007d04015076343a3a58636d3c52756e74696d6543616c6c3e00040008563504008101015076353a3a58636d3c52756e74696d6543616c6c3e000500003d040c0c78636d0876330c58636d041043616c6c00000400410401585665633c496e737472756374696f6e3c43616c6c3e3e0000410400000245040045040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404001902012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404001902012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404001902012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736549040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731902012c4d756c746941737365747300012c62656e6566696369617279290201344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731902012c4d756c746941737365747300011064657374290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64d50101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cd901014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721d01010c7533320001406d61785f6d6573736167655f73697a651d01010c7533320001306d61785f63617061636974791d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721d01010c75333200011873656e6465721d01010c753332000124726563697069656e741d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04002d020154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279290201344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e741902012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573210201284d756c746941737365740001307765696768745f6c696d6974ed01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204003d04012458636d3c43616c6c3e0015002c536574417070656e64697804003d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574731902012c4d756c74694173736574730001187469636b6574290201344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404001902012c4d756c7469417373657473001c002c457870656374417373657404001902012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f7204004d0401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400c90101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f721d01010c75333200013c6d696e5f63726174655f6d696e6f721d01010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400310201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b390201244e6574776f726b496400012c64657374696e6174696f6e2d020154496e746572696f724d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e002600244c6f636b41737365740801146173736574210201284d756c74694173736574000120756e6c6f636b6572290201344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574210201284d756c74694173736574000118746172676574290201344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574210201284d756c746941737365740001146f776e6572290201344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574210201284d756c746941737365740001186c6f636b6572290201344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400290201344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974ed01012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000049040c0c78636d08763320526573706f6e7365000118104e756c6c0000001841737365747304001902012c4d756c74694173736574730001003c457865637574696f6e526573756c7404004d0401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040059040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400c90101384d617962654572726f72436f6465000500004d0404184f7074696f6e0404540151040108104e6f6e6500000010536f6d65040051040000010000510400000408105504005504100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d69740027000059040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d04045300000400650401185665633c543e00005d040c0c78636d0876332850616c6c6574496e666f0000180114696e6465781d01010c7533320001106e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6561040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f721d01010c7533320001146d696e6f721d01010c75333200011470617463681d01010c753332000061040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000065040000025d0400690404184f7074696f6e0404540129020108104e6f6e6500000010536f6d650400290200000100006d040c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e290201344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400007104100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504001902012c4d756c74694173736574730000001057696c6404007504013857696c644d756c74694173736574000100007504100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f6608010869642502011c4173736574496400010c66756e7904013c57696c6446756e676962696c69747900010028416c6c436f756e74656404001d01010c75333200020030416c6c4f66436f756e7465640c010869642502011c4173736574496400010c66756e7904013c57696c6446756e676962696c697479000114636f756e741d01010c753332000300007904100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100007d040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400810401585665633c496e737472756374696f6e3c43616c6c3e3e0000810400000285040085040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040045020118417373657473000000545265736572766541737365744465706f7369746564040045020118417373657473000100585265636569766554656c65706f727465644173736574040045020118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736589040120526573706f6e73650001286d61785f77656967687428011857656967687400011c717565726965729d0401404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574734502011841737365747300012c62656e6566696369617279550201204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574734502011841737365747300011064657374550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64d50101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cd901014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721d01010c7533320001406d61785f6d6573736167655f73697a651d01010c7533320001306d61785f63617061636974791d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721d01010c75333200011873656e6465721d01010c753332000124726563697069656e741d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040059020140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400a10401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473a504012c417373657446696c74657200012c62656e6566696369617279550201204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473a504012c417373657446696c74657200011064657374550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e000e003445786368616e676541737365740c011067697665a504012c417373657446696c74657200011077616e744502011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473a504012c417373657446696c74657200011c72657365727665550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a504012c417373657446696c74657200011064657374550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fa10401445175657279526573706f6e7365496e666f000118617373657473a504012c417373657446696c74657200120030427579457865637574696f6e080110666565734d02011441737365740001307765696768745f6c696d6974ed01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007d04012458636d3c43616c6c3e0015002c536574417070656e64697804007d04012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473450201184173736574730001187469636b6574550201204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040045020118417373657473001c002c4578706563744173736574040045020118417373657473001d00304578706563744f726967696e04009d0401404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f7204004d0401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400c90101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fa10401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f721d01010c75333200013c6d696e5f63726174655f6d696e6f721d01010c753332002200505265706f72745472616e736163745374617475730400a10401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400610201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b690201244e6574776f726b496400012c64657374696e6174696f6e59020140496e746572696f724c6f636174696f6e00010c78636d7d04011c58636d3c28293e002600244c6f636b417373657408011461737365744d0201144173736574000120756e6c6f636b6572550201204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365744d0201144173736574000118746172676574550201204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365744d02011441737365740001146f776e6572550201204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365744d02011441737365740001186c6f636b6572550201204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400550201204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974ed01012c5765696768744c696d6974000130636865636b5f6f726967696e9d0401404f7074696f6e3c4c6f636174696f6e3e002f000089040c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400450201184173736574730001003c457865637574696f6e526573756c7404004d0401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04008d040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400c90101384d617962654572726f72436f6465000500008d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019104045300000400990401185665633c543e000091040c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e6465781d01010c7533320001106e616d6595040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6595040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f721d01010c7533320001146d696e6f721d01010c75333200011470617463681d01010c753332000095040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000099040000029104009d0404184f7074696f6e0404540155020108104e6f6e6500000010536f6d65040055020000010000a1040c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e550201204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000a504102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400450201184173736574730000001057696c640400a904012457696c64417373657400010000a904102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869645102011c4173736574496400010c66756ead04013c57696c6446756e676962696c69747900010028416c6c436f756e74656404001d01010c75333200020030416c6c4f66436f756e7465640c010869645102011c4173736574496400010c66756ead04013c57696c6446756e676962696c697479000114636f756e741d01010c75333200030000ad04102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000b104080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856330400b504015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400c504015076343a3a58636d3c52756e74696d6543616c6c3e0004000856350400d104015076353a3a58636d3c52756e74696d6543616c6c3e00050000b5040c0c78636d0876330c58636d041043616c6c00000400b90401585665633c496e737472756374696f6e3c43616c6c3e3e0000b904000002bd0400bd040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404001902012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404001902012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404001902012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736549040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572690401544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574731902012c4d756c746941737365747300012c62656e6566696369617279290201344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574731902012c4d756c746941737365747300011064657374290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64d50101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cc104014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721d01010c7533320001406d61785f6d6573736167655f73697a651d01010c7533320001306d61785f63617061636974791d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721d01010c75333200011873656e6465721d01010c753332000124726563697069656e741d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04002d020154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204006d0401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473710401404d756c7469417373657446696c74657200012c62656e6566696369617279290201344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473710401404d756c7469417373657446696c74657200011064657374290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e000e003445786368616e676541737365740c011067697665710401404d756c7469417373657446696c74657200011077616e741902012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473710401404d756c7469417373657446696c74657200011c72657365727665290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473710401404d756c7469417373657446696c74657200011064657374290201344d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f000118617373657473710401404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573210201284d756c746941737365740001307765696768745f6c696d6974ed01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400b504012458636d3c43616c6c3e0015002c536574417070656e6469780400b504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574731902012c4d756c74694173736574730001187469636b6574290201344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404001902012c4d756c7469417373657473001c002c457870656374417373657404001902012c4d756c7469417373657473001d00304578706563744f726967696e0400690401544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f7204004d0401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400c90101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f6d0401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f721d01010c75333200013c6d696e5f63726174655f6d696e6f721d01010c753332002200505265706f72745472616e7361637453746174757304006d0401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400310201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b390201244e6574776f726b496400012c64657374696e6174696f6e2d020154496e746572696f724d756c74694c6f636174696f6e00010c78636d3d04011c58636d3c28293e002600244c6f636b41737365740801146173736574210201284d756c74694173736574000120756e6c6f636b6572290201344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574210201284d756c74694173736574000118746172676574290201344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574210201284d756c746941737365740001146f776e6572290201344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574210201284d756c746941737365740001186c6f636b6572290201344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400290201344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974ed01012c5765696768744c696d6974000130636865636b5f6f726967696e690401544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000c1040c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000c5040c2c73746167696e675f78636d0876340c58636d041043616c6c00000400c90401585665633c496e737472756374696f6e3c43616c6c3e3e0000c904000002cd0400cd040c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040045020118417373657473000000545265736572766541737365744465706f7369746564040045020118417373657473000100585265636569766554656c65706f727465644173736574040045020118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736589040120526573706f6e73650001286d61785f77656967687428011857656967687400011c717565726965729d0401404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574734502011841737365747300012c62656e6566696369617279550201204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574734502011841737365747300011064657374550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64d50101284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cc104014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721d01010c7533320001406d61785f6d6573736167655f73697a651d01010c7533320001306d61785f63617061636974791d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721d01010c75333200011873656e6465721d01010c753332000124726563697069656e741d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040059020140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400a10401445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473a504012c417373657446696c74657200012c62656e6566696369617279550201204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473a504012c417373657446696c74657200011064657374550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e000e003445786368616e676541737365740c011067697665a504012c417373657446696c74657200011077616e744502011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473a504012c417373657446696c74657200011c72657365727665550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473a504012c417373657446696c74657200011064657374550201204c6f636174696f6e00010c78636d7d04011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fa10401445175657279526573706f6e7365496e666f000118617373657473a504012c417373657446696c74657200120030427579457865637574696f6e080110666565734d02011441737365740001307765696768745f6c696d6974ed01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400c504012458636d3c43616c6c3e0015002c536574417070656e6469780400c504012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473450201184173736574730001187469636b6574550201204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040045020118417373657473001c002c4578706563744173736574040045020118417373657473001d00304578706563744f726967696e04009d0401404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f7204004d0401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400c90101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fa10401445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f721d01010c75333200013c6d696e5f63726174655f6d696e6f721d01010c753332002200505265706f72745472616e736163745374617475730400a10401445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400610201204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b690201244e6574776f726b496400012c64657374696e6174696f6e59020140496e746572696f724c6f636174696f6e00010c78636d7d04011c58636d3c28293e002600244c6f636b417373657408011461737365744d0201144173736574000120756e6c6f636b6572550201204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365744d0201144173736574000118746172676574550201204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365744d02011441737365740001146f776e6572550201204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365744d02011441737365740001186c6f636b6572550201204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400550201204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974ed01012c5765696768744c696d6974000130636865636b5f6f726967696e9d0401404f7074696f6e3c4c6f636174696f6e3e002f0000d1040c2c73746167696e675f78636d0876350c58636d041043616c6c00000400d50401585665633c496e737472756374696f6e3c43616c6c3e3e0000d504000002d90400d9040c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d0345769746864726177417373657404008d010118417373657473000000545265736572766541737365744465706f736974656404008d010118417373657473000100585265636569766554656c65706f72746564417373657404008d010118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365ad010120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572d10101404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574738d01011841737365747300012c62656e65666963696172790d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574738d010118417373657473000110646573740d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64d50101284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874f401384f7074696f6e3c5765696768743e00011063616c6cc104014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465721d01010c7533320001406d61785f6d6573736167655f73697a651d01010c7533320001306d61785f63617061636974791d01010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e741d01010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f721d01010c75333200011873656e6465721d01010c753332000124726563697069656e741d01010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040011010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400dd0101445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473e101012c417373657446696c74657200012c62656e65666963696172790d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473e101012c417373657446696c746572000110646573740d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e000e003445786368616e676541737365740c011067697665e101012c417373657446696c74657200011077616e748d01011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473e101012c417373657446696c74657200011c726573657276650d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473e101012c417373657446696c746572000110646573740d0101204c6f636174696f6e00010c78636d8101011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fdd0101445175657279526573706f6e7365496e666f000118617373657473e101012c417373657446696c74657200120030427579457865637574696f6e080110666565739501011441737365740001307765696768745f6c696d6974ed01012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400d104012458636d3c43616c6c3e0015002c536574417070656e6469780400d104012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574738d0101184173736574730001187469636b65740d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404008d010118417373657473001c002c457870656374417373657404008d010118417373657473001d00304578706563744f726967696e0400d10101404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400b10101504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400c90101384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fdd0101445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465781d01010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f721d01010c75333200013c6d696e5f63726174655f6d696e6f721d01010c753332002200505265706f72745472616e736163745374617475730400dd0101445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400190101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b250101244e6574776f726b496400012c64657374696e6174696f6e11010140496e746572696f724c6f636174696f6e00010c78636d8101011c58636d3c28293e002600244c6f636b41737365740801146173736574950101144173736574000120756e6c6f636b65720d0101204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365749501011441737365740001187461726765740d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365749501011441737365740001146f776e65720d0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365749501011441737365740001186c6f636b65720d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04000d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974ed01012c5765696768744c696d6974000130636865636b5f6f726967696ed10101404f7074696f6e3c4c6f636174696f6e3e002f001c50617946656573040114617373657495010114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e0d0101204c6f636174696f6e00012c72656d6f74655f66656573f101016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473f90101e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636d8101011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696e010201604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636dd104012458636d3c43616c6c3e0032002053657448696e747304011468696e747305020184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e00330000dd04105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f74655265736572766504009102014456657273696f6e65644c6f636174696f6e00030000e104080c78636d4056657273696f6e65644173736574496400010c08563304002502012c76333a3a4173736574496400030008563404005102012c76343a3a4173736574496400040008563504009901012c76353a3a4173736574496400050000e5040c4863756d756c75735f70616c6c65745f78636d1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9040c7070616c6c65745f78636d5f6272696467655f6875625f726f757465721870616c6c65741043616c6c080454000449000104507265706f72745f6272696467655f7374617475730801246272696467655f69643401104832353600013069735f636f6e676573746564200110626f6f6c000004a84e6f74696669636174696f6e2061626f757420636f6e676573746564206272696467652071756575652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed040c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696ea90201484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696ea90201484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1040c84736e6f776272696467655f70616c6c65745f73797374656d5f66726f6e74656e641870616c6c65741043616c6c04045400010c487365745f6f7065726174696e675f6d6f64650401106d6f6465b90201344f7065726174696e674d6f6465000004e853657420746865206f7065726174696e67206d6f646520666f72206578706f7274696e67206d6573736167657320746f20457468657265756d2e3872656769737465725f746f6b656e0c012061737365745f696491020158426f783c56657273696f6e65644c6f636174696f6e3e0001206d65746164617461f504013441737365744d657461646174610001246665655f617373657495010114417373657400011c4901496e697469617465732074686520726567697374726174696f6e20666f72206120506f6c6b61646f742d6e617469766520746f6b656e2061732061207772617070656420455243323020746f6b656e206f6e24457468657265756d2e8c2d206061737365745f6964603a204c6f636174696f6e206f662074686520617373657441012d20606d65746164617461603a204d6574616461746120746f20696e636c75646520696e2074686520696e7374616e74696174656420455243323020636f6e7472616374206f6e20457468657265756d005d01416c6c206f726967696e732061726520616c6c6f7765642c20686f7765766572206061737365745f696460206d7573742062652061206c6f636174696f6e206e65737465642077697468696e20746865206f726967696e44636f6e73656e7375732073797374656d2e1c6164645f7469700801286d6573736167655f6964f90401244d65737361676549640001146173736574950101144173736574000208450141646420616e206164646974696f6e616c2072656c617965722074697020666f72206120636f6d6d6974746564206d657373616765206964656e74696669656420627920606d6573736167655f6964602ea0546865207469702061737365742077696c6c206265207377617070656420666f722065746865722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef504083c736e6f776272696467655f636f72653441737365744d6574616461746100000c01106e616d65f10201c0426f756e6465645665633c75382c20436f6e73745533323c4d455441444154415f4649454c445f4d41585f4c454e3e3e00011873796d626f6cf10201c0426f756e6465645665633c75382c20436f6e73745533323c4d455441444154415f4649454c445f4d41585f4c454e3e3e000120646563696d616c7308010875380000f9040c3c736e6f776272696467655f636f726518726577617264244d65737361676549640001081c496e626f756e64040030010c753634000000204f7574626f756e64040030010c75363400010000fd040c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c730105017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e646578d102010c75313600011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c730105017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e05050154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c730105017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696e5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636b5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696e05050154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01050000025503000505086861737365745f6875625f706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001101873797374656d0400090501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000002c506f6c6b61646f7458636d04000d05014870616c6c65745f78636d3a3a4f726967696e001f002843756d756c757358636d04001105016863756d756c75735f70616c6c65745f78636d3a3a4f726967696e0020001c4f726967696e7304001505017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e003f000009050c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a6564000300000d050c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d04000d0101204c6f636174696f6e00000020526573706f6e736504000d0101204c6f636174696f6e0001000011050c4863756d756c75735f70616c6c65745f78636d1870616c6c6574184f726967696e0001081452656c6179000000405369626c696e6750617261636861696e0400ad020118506172614964000100001505146861737365745f6875625f706f6c6b61646f745f72756e74696d6528676f7665726e616e63651c6f726967696e735470616c6c65745f637573746f6d5f6f726967696e73184f726967696e00013c305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d003457697368466f724368616e6765000e000019050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c64d102010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e741d0501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c64d102010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e741d0501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c64d102010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00012474696d65706f696e74c502017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c64d102010c7531360001446f746865725f7369676e61746f72696573650101445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d0504184f7074696f6e04045401c5020108104e6f6e6500000010536f6d650400c502000001000021050c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616cf10301504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065cd020130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065cd020130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f74797065cd020130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e646578d102010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f74797065cd020130543a3a50726f787954797065000114696e646578d102010c7531360001186865696768741d010144426c6f636b4e756d626572466f723c543e0001246578745f696e6465781d01010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616cf10301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616cf10301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e0001107265616cf10301504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065250501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e250504184f7074696f6e04045401cd020108104e6f6e6500000010536f6d650400cd02000001000029050c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577f10301504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577f10301504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869641d01014c543a3a41737365744964506172616d6574657200011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869641d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e63652d010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869641d01014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869641d01014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869641d01014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869641d01014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869641d01014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869641d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869641d01014c543a3a41737365744964506172616d65746572000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869641d01014c543a3a41737365744964506172616d65746572000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869641d01014c543a3a41737365744964506172616d65746572000118736f75726365f10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869641d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869641d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869641d01014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869641d01014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869641d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869641d01014c543a3a41737365744964506172616d65746572000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869641d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869641d01014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869641d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869641d01014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869641d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e63652d010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869641d01014c543a3a41737365744964506172616d6574657200012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869641d01014c543a3a41737365744964506172616d6574657200012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869641d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869641d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6ef10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869641d01014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869641d01014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869641d01014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869641d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869641d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869641d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869641d01014c543a3a41737365744964506172616d6574657200011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e000040090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00ac604974656d4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a61012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e657720636f6c6c656374696f6e2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c000144190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0049012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e6577206974656d2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e39012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c207375706572757365723420207065726d697373696f6e7321016f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573733505013844657374726f795769746e65737300023c9c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00645765696768743a20604f286e202b206d29602077686572653a542d20606e203d207769746e6573732e6974656d7360782d20606d203d207769746e6573732e6974656d5f6d657461646174617360682d206061203d207769746e6573732e6174747269627574657360106d696e740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00032ca04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e004101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ec82d20606974656d603a20546865206974656d2076616c7565206f6620746865206974656d20746f206265206d696e7465642ed82d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e746564206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012c636865636b5f6f776e6572390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00043c5844657374726f7920612073696e676c65206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265206275726e65642e51012d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c657373207468657820206974656d206973206f776e656420627920746869732076616c75652e00b4456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e00385765696768743a20604f283129607c4d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e000544c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00b454686973207265736574732074686520617070726f766564206163636f756e74206f6620746865206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642ec42d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73e90201385665633c543a3a4974656d49643e0006449852656576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f6620746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e2829296018667265657a65080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000728c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652066726f7a656e2eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207468617765642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f2831296044667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000924fc446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e0064456d6974732060436f6c6c656374696f6e46726f7a656e602e00385765696768743a20604f283129603c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000a24dc52652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265207468617765642e0064456d6974732060436f6c6c656374696f6e546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e000c30d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e000d381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e004d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265f865697468657220746865206f776e6572206f662074686520606974656d60206f72207468652061646d696e206f662074686520636f6c6c656374696f6e2e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e15012d20606974656d603a20546865206974656d206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e001901496d706f7274616e74204e4f54453a205468652060617070726f76656460206163636f756e7420676574732072657365742061667465722065616368207472616e736665722e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001506d617962655f636865636b5f64656c6567617465390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e40110143616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e206974656d20627920612064656c65676174652e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3bfc2d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652060636f6c6c656374696f6e603be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e0d012d20606974656d603a20546865206974656d206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e51012d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296044666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c00012469735f66726f7a656e200110626f6f6c000f4094416c746572207468652061747472696275746573206f66206120676976656e206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00ac2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2e982d20606f776e6572603a20546865206e6577204f776e6572206f662074686973206974656d2ea02d2060697373756572603a20546865206e657720497373756572206f662074686973206974656d2e982d206061646d696e603a20546865206e65772041646d696e206f662074686973206974656d2ea82d2060667265657a6572603a20546865206e657720467265657a6572206f662074686973206974656d2e51012d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e206974656d206f66207468697320636f6c6c656374696f6e2e39012d206069735f66726f7a656e603a2057686574686572207468697320636f6c6c656374696f6e2069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e0456d69747320604974656d5374617475734368616e67656460207769746820746865206964656e74697479206f6620746865206974656d2e00385765696768743a20604f28312960347365745f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00010c6b6579f102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565f5020174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001044a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2901604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f6174747269627574650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00010c6b6579f102016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e001138b0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f28312960307365745f6d65746164617461100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461e5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0012447453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640013347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461e5020178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0014408853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400153090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6eed02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001628110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c75333200172ce053657420746865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00e44e6f74653a20546869732066756e6374696f6e2063616e206f6e6c792073756363656564206f6e63652070657220636f6c6c656374696f6e2e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963653d05015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00182c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520617373657420606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e001924a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35050c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d731d01010c7533320001386974656d5f6d65746164617461731d01010c753332000128617474726962757465731d01010c7533320000390504184f7074696f6e04045401f1030108104e6f6e6500000010536f6d650400f10300000100003d0504184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000041050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696745050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696745050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573736105013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746ff10301504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461650501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746ff10301504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e6669676d0501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73e90201385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e677349050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e66696745050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65ed0201704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365050301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579f502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f6173f90201504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365050301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579f502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c756501030174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656ded0201444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365050301804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579f502016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e6573737105017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001106461746101030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106461746101030178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6eed02015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e677351050115014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c542c20493e2c20543a3a0a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011470726963653d05015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572390501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f74697073040110746970737505019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656ded0201444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365090301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100150426c6f636b4e756d626572466f723c542c20493e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365090301ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f6461746181050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e617475726585050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c0110646174618d05016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e617475726585050150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e677349050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c79ed02012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773510501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e000049050c2c70616c6c65745f6e66747314747970657320426974466c616773040454014d05000400300144436f6c6c656374696f6e53657474696e6700004d050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f73697452657175697265640010000051050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065550501584d696e74547970653c436f6c6c656374696f6e49643e00011470726963653d0501344f7074696f6e3c50726963653e00012c73746172745f626c6f636bed02014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636bed02014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773590501304974656d53657474696e6773000055050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e49640002000059050c2c70616c6c65745f6e66747314747970657320426974466c616773040454015d0500040030012c4974656d53657474696e6700005d050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b6564417474726962757465730004000061050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d65746164617461731d01010c7533320001306974656d5f636f6e666967731d01010c753332000128617474726962757465731d01010c7533320000650504184f7074696f6e0404540169050108104e6f6e6500000010536f6d6504006905000001000069050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656ded0201384f7074696f6e3c4974656d49643e0001286d696e745f70726963653d05013c4f7074696f6e3c42616c616e63653e00006d050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773590501304974656d53657474696e6773000071050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c753332000075050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540179050453000004007d0501185665633c543e000079050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e7400007d0500000279050081050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465735d03015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e74f90201444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f70726963653d05013c4f7074696f6e3c42616c616e63653e00008505082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040089050148656432353531393a3a5369676e61747572650000001c53723235353139040089050148737232353531393a3a5369676e617475726500010014456364736104000d04014065636473613a3a5369676e61747572650002000089050000034000000008008d050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465735d03015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365050301744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e65000091050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869640d01014c543a3a41737365744964506172616d6574657200011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869640d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e63652d010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869640d01014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869640d01014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869640d01014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869640d01014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869640d01014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869640d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869640d01014c543a3a41737365744964506172616d65746572000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869640d01014c543a3a41737365744964506172616d65746572000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869640d01014c543a3a41737365744964506172616d65746572000118736f75726365f10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869640d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869640d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869640d01014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869640d01014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869640d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869640d01014c543a3a41737365744964506172616d65746572000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869640d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869640d01014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869640d01014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869640d01014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869640d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e63652d010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869640d01014c543a3a41737365744964506172616d6574657200012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869640d01014c543a3a41737365744964506172616d6574657200012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869640d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869640d01014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6ef10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869640d01014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869640d01014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869640d01014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869640d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869640d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869640d01014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869640d01014c543a3a41737365744964506172616d6574657200011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c0108696410014c543a3a41737365744964506172616d6574657200011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f637265617465100108696410014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e63652d010128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f79040108696410014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e7473040108696410014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c73040108696410014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f79040108696410014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c0108696410014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c0108696410014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c0108696410014c543a3a41737365744964506172616d65746572000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c0108696410014c543a3a41737365744964506172616d65746572000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e73666572100108696410014c543a3a41737365744964506172616d65746572000118736f75726365f10301504163636f756e7449644c6f6f6b75704f663c543e00011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a65080108696410014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080108696410014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f6173736574040108696410014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f6173736574040108696410014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080108696410014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100108696410014c543a3a41737365744964506172616d65746572000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d65746164617461100108696410014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461040108696410014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d65746164617461140108696410014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d65746164617461040108696410014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f737461747573200108696410014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e000118697373756572f10301504163636f756e7449644c6f6f6b75704f663c543e00011461646d696ef10301504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e63652d010128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0108696410014c543a3a41737365744964506172616d6574657200012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c080108696410014c543a3a41737365744964506172616d6574657200012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c0108696410014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465f10301504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f766564100108696410014c543a3a41737365744964506172616d657465720001146f776e6572f10301504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6ef10301504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e742d010128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f756368040108696410014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e64080108696410014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e6365080108696410014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f74686572080108696410014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f74686572080108696410014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b080108696410014c543a3a41737365744964506172616d6574657200010c77686ff10301504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c0108696410014c543a3a41737365744964506172616d6574657200011064657374f10301504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99050c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c65741043616c6c0404540001182c6372656174655f706f6f6c0801186173736574310d010144426f783c543a3a41737365744b696e643e0001186173736574320d010144426f783c543a3a41737365744b696e643e00001019014372656174657320616e20656d707479206c697175696469747920706f6f6c20616e6420616e206173736f636961746564206e657720606c705f746f6b656e60206173736574010128746865206964206f662077686963682069732072657475726e656420696e2074686520604576656e743a3a506f6f6c4372656174656460206576656e74292e0011014f6e6365206120706f6f6c20697320637265617465642c20736f6d656f6e65206d6179205b6050616c6c65743a3a6164645f6c6971756964697479605d20746f2069742e346164645f6c69717569646974791c01186173736574310d010144426f783c543a3a41737365744b696e643e0001186173736574320d010144426f783c543a3a41737365744b696e643e00013c616d6f756e74315f64657369726564180128543a3a42616c616e636500013c616d6f756e74325f64657369726564180128543a3a42616c616e636500012c616d6f756e74315f6d696e180128543a3a42616c616e636500012c616d6f756e74325f6d696e180128543a3a42616c616e636500011c6d696e745f746f000130543a3a4163636f756e744964000138e450726f76696465206c697175696469747920696e746f2074686520706f6f6c206f6620606173736574316020616e642060617373657432602e0d014e4f54453a20616e206f7074696d616c20616d6f756e74206f662061737365743120616e64206173736574322077696c6c2062652063616c63756c6174656420616e6421016d6967687420626520646966666572656e74207468616e207468652070726f76696465642060616d6f756e74315f64657369726564602f60616d6f756e74325f6465736972656460fc7468757320796f752073686f756c642070726f7669646520746865206d696e20616d6f756e7420796f7527726520686170707920746f2070726f766964652ec8506172616d732060616d6f756e74315f6d696e602f60616d6f756e74325f6d696e6020726570726573656e7420746861742e4901606d696e745f746f602077696c6c2062652073656e7420746865206c697175696469747920746f6b656e73207468617420726570726573656e742074686973207368617265206f662074686520706f6f6c2e005d014e4f54453a207768656e20656e636f756e746572696e6720616e20696e636f72726563742065786368616e6765207261746520616e64206e6f6e2d776974686472617761626c6520706f6f6c206c69717569646974792cdc626174636820616e2061746f6d69632063616c6c2077697468205b6050616c6c65743a3a6164645f6c6971756964697479605d20616e6451015b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d206f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d250163616c6c7320746f2072656e64657220746865206c697175696469747920776974686472617761626c6520616e642072656374696679207468652065786368616e676520726174652e00d84f6e6365206c69717569646974792069732061646465642c20736f6d656f6e65206d6179207375636365737366756c6c792063616c6ca45b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e4072656d6f76655f6c69717569646974791801186173736574310d010144426f783c543a3a41737365744b696e643e0001186173736574320d010144426f783c543a3a41737365744b696e643e0001346c705f746f6b656e5f6275726e180128543a3a42616c616e636500014c616d6f756e74315f6d696e5f72656365697665180128543a3a42616c616e636500014c616d6f756e74325f6d696e5f72656365697665180128543a3a42616c616e636500012c77697468647261775f746f000130543a3a4163636f756e74496400020c4d01416c6c6f777320796f7520746f2072656d6f7665206c69717569646974792062792070726f766964696e672074686520606c705f746f6b656e5f6275726e6020746f6b656e7320746861742077696c6c20626551016275726e656420696e207468652070726f636573732e205769746820746865207573616765206f662060616d6f756e74315f6d696e5f72656365697665602f60616d6f756e74325f6d696e5f726563656976656035016974277320706f737369626c6520746f20636f6e74726f6c20746865206d696e20616d6f756e74206f662072657475726e656420746f6b656e7320796f7527726520686170707920776974682e70737761705f65786163745f746f6b656e735f666f725f746f6b656e73140110706174689d0501585665633c426f783c543a3a41737365744b696e643e3e000124616d6f756e745f696e180128543a3a42616c616e6365000138616d6f756e745f6f75745f6d696e180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c000318c0537761702074686520657861637420616d6f756e74206f6620606173736574316020696e746f2060617373657432602e2d0160616d6f756e745f6f75745f6d696e6020706172616d20616c6c6f777320796f7520746f207370656369667920746865206d696e20616d6f756e74206f662074686520606173736574326060796f7527726520686170707920746f20726563656976652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e70737761705f746f6b656e735f666f725f65786163745f746f6b656e73140110706174689d0501585665633c426f783c543a3a41737365744b696e643e3e000128616d6f756e745f6f7574180128543a3a42616c616e6365000134616d6f756e745f696e5f6d6178180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c00041801015377617020616e7920616d6f756e74206f6620606173736574316020746f206765742074686520657861637420616d6f756e74206f662060617373657432602e190160616d6f756e745f696e5f6d61786020706172616d20616c6c6f777320746f207370656369667920746865206d617820616d6f756e74206f662074686520606173736574316060796f7527726520686170707920746f2070726f766964652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e14746f7563680801186173736574310d010144426f783c543a3a41737365744b696e643e0001186173736574320d010144426f783c543a3a41737365744b696e643e00052c4d01546f75636820616e206578697374696e6720706f6f6c20746f2066756c66696c6c2070726572657175697369746573206265666f72652070726f766964696e67206c69717569646974792c20737563682061734901656e737572696e6720746861742074686520706f6f6c2773206163636f756e74732061726520696e20706c6163652e204974206973207479706963616c6c792075736566756c207768656e206120706f6f6c550163726561746f722072656d6f7665732074686520706f6f6c2773206163636f756e747320616e6420646f6573206e6f742070726f766964652061206c69717569646974792e205468697320616374696f6e206d61795501696e766f6c766520686f6c64696e67206173736574732066726f6d207468652063616c6c65722061732061206465706f73697420666f72206372656174696e672074686520706f6f6c2773206163636f756e74732e0068546865206f726967696e206d757374206265205369676e65642e0029012d2060617373657431603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e29012d2060617373657432603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732e9d050000020d0100a1050c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e742d01013c42616c616e63654f663c542c20493e00012c62656e6566696369617279f10301504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69641d01013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e6439030144426f783c543a3a41737365744b696e643e000118616d6f756e742d010150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172793d030178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6ded0201704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5050c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e6465781d010144506f6c6c496e6465784f663c542c20493e000110766f7465450301704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c617373d1020134436c6173734f663c542c20493e000108746ff10301504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ea9050128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c617373d1020134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c617373d1020134436c6173734f663c542c20493e000118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373ad0501544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574f10301504163636f756e7449644c6f6f6b75704f663c543e000114636c617373d1020134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9050c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000ad0504184f7074696f6e04045401d1020108104e6f6e6500000010536f6d650400d1020000010000b1050c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e0505015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c5103014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e74b5050188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636bd102013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368b905013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb50510346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d62657200010000b90504184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000bd050c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c5503017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec1050c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c08045400044900012c3870726f706f73655f626f756e747908011476616c75652d01013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f69641d01012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f69641d01012c426f756e7479496e64657800011c63757261746f72f10301504163636f756e7449644c6f6f6b75704f663c543e00010c6665652d01013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f69641d01012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f69641d01012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f69641d01012c426f756e7479496e64657800012c62656e6566696369617279f10301504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f69641d01012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f69641d01012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f69641d01012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e6c617070726f76655f626f756e74795f776974685f63757261746f720c0124626f756e74795f69641d01012c426f756e7479496e64657800011c63757261746f72f10301504163636f756e7449644c6f6f6b75704f663c543e00010c6665652d01013c42616c616e63654f663c542c20493e00092cd4417070726f766520626f756e74727920616e642070726f706f736520612063757261746f722073696d756c74616e656f75736c792e5501546869732063616c6c20697320612073686f727463757420746f2063616c6c696e672060617070726f76655f626f756e74796020616e64206070726f706f73655f63757261746f72602073657061726174656c792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e00902d2060626f756e74795f6964603a20426f756e747920494420746f20617070726f76652ef82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e0034232320436f6d706c65786974791c2d204f2831292e30706f6b655f6465706f736974040124626f756e74795f69641d01012c426f756e7479496e646578000a3ce4506f6b6520746865206465706f73697420726573657276656420666f72206372656174696e67206120626f756e74792070726f706f73616c2e00f4546869732063616e2062652075736564206279206163636f756e747320746f2075706461746520746865697220726573657276656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d2060626f756e74795f6964603a2054686520626f756e747920696420666f7220776869636820746f2061646a75737420746865206465706f7369742e003901496620746865206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468654c70726f706f7365722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620746865206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620746865206465706f73697420697320757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5050c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800011476616c75652d01013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641d01012c426f756e7479496e64657800011c63757261746f72f10301504163636f756e7449644c6f6f6b75704f663c543e00010c6665652d01013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641d01012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641d01012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641d01012c426f756e7479496e64657800012c62656e6566696369617279f10301504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641d01012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f69641d01012c426f756e7479496e64657800013c6368696c645f626f756e74795f69641d01012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec9050c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e6439030144426f783c543a3a41737365744b696e643e00011072617465a10201244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e6439030144426f783c543a3a41737365744b696e643e00011072617465a102012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e6439030144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e666967d105015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d697473d505013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736bd90501404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973650301305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b657973650301305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d697473d505013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f70dd05013450726f67726573734f663c543e00013870726f67726573735f6368696c64dd05013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed10504184f7074696f6e04045401d5050108104e6f6e6500000010536f6d650400d5050000010000d5050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c7533320000d9050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f70dd05013450726f67726573734f663c543e00013870726f67726573735f6368696c64dd05013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c7533320000dd050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b65790400e1050164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c65746500020000e1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000e5050c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e742d01013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400004045015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e642069732064656c65676174656420286f72207472616e73666572726564206261736564206f6e4d015b60616461707465723a3a5374616b65537472617465677954797065605d292066726f6d20746865206d656d62657220746f2074686520706f6f6c206163636f756e7420616e6420696d6d6564696174656c7968696e637265617365732074686520706f6f6c277320626f6e642e002901546865206d6574686f64206f66207472616e7366657272696e672074686520616d6f756e7420746f2074686520706f6f6c206163636f756e742069732064657465726d696e656420627901015b60616461707465723a3a5374616b65537472617465677954797065605d2e2049662074686520706f6f6c20697320636f6e6669677572656420746f2075736531015b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2c207468652066756e64732072656d61696e20696e20746865206163636f756e74206f66310174686520606f726967696e602c207768696c652074686520706f6f6c206761696e732074686520726967687420746f207573652074686573652066756e647320666f72207374616b696e672e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f65787472610401146578747261e905015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e74f10301504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e74732d01013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74f10301504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e742d01013042616c616e63654f663c543e000110726f6f74f10301504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72f10301504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572f10301504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e742d01013042616c616e63654f663c543e000110726f6f74f10301504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72f10301504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572f10301504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273650101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e001823204e6f7465005901496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c2074686520706f6f6c2773206465706f7369746f72206e6565647320746f0d0168617665206174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c49640001147374617465ed050124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e64f1050158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e64f1050158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c73f5050134436f6e6669674f703c7533323e00012c6d61785f6d656d62657273f5050134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6cf5050134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6ef9050144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f7401060158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f7201060158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e63657201060158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d44704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a55012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f746865727769736520706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ab42a205468652063616c6c65722069732074686520706f6f6c2773206e6f6d696e61746f72206f7220726f6f742e40626f6e645f65787472615f6f746865720801186d656d626572f10301504163636f756e7449644c6f6f6b75704f663c543e0001146578747261e905015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6e0506013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6e0906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6efd05011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174651106019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400144064436c61696d2070656e64696e6720636f6d6d697373696f6e2e003d015468652060726f6f746020726f6c65206f662074686520706f6f6c206973205f616c776179735f20616c6c6f77656420746f20636c61696d2074686520706f6f6c277320636f6d6d697373696f6e2e00550149662074686520706f6f6c20686173207365742060436f6d6d697373696f6e436c61696d5065726d697373696f6e3a3a5065726d697373696f6e6c657373602c207468656e20616e79206163636f756e742063616ed874726967676572207468652070726f63657373206f6620636c61696d696e672074686520706f6f6c277320636f6d6d697373696f6e2e00410149662074686520706f6f6c2068617320736574206974732060436f6d6d697373696f6e436c61696d5065726d697373696f6e6020746f20604163636f756e742861636329602c207468656e206f6e6c79206163636f756e7473302a2060616363602c20616e64642a2074686520706f6f6c277320726f6f74206163636f756e7400b86d61792063616c6c20746869732065787472696e736963206f6e20626568616c66206f662074686520706f6f6c2e002d0150656e64696e6720636f6d6d697373696f6e73206172652070616964206f757420616e6420616464656420746f2074686520746f74616c20636c61696d656420636f6d6d697373696f6e2eb854686520746f74616c2070656e64696e6720636f6d6d697373696f6e20697320726573657420746f207a65726f2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e150601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e74f10301504163636f756e7449644c6f6f6b75704f663c543e001724884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005d015468652070656e64696e6720736c61736820616d6f756e74206f6620746865206d656d626572206d75737420626520657175616c206f72206d6f7265207468616e20604578697374656e7469616c4465706f736974602e5101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e2049662074686520657865637574696f6e49016973207375636365737366756c2c2066656520697320726566756e64656420616e642063616c6c6572206d6179206265207265776172646564207769746820612070617274206f662074686520736c6173680d016261736564206f6e20746865205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d20636f6e66696775726174696f6e2e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e74f10301504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee905085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c5265776172647300010000ed05085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e6700020000f105085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000f505085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000f905085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401fd05010c104e6f6f700000000c5365740400fd050104540001001852656d6f766500020000fd050c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c75333200000106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f7665000200000506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000090604184f7074696f6e040454010d060108104e6f6e6500000010536f6d6504000d0600000100000d0600000408fd0500001106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365fd05011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000150604184f7074696f6e0404540119060108104e6f6e6500000010536f6d650400190600000100001906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e744964000100001d060c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564f10301504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572f10301504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572f10301504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572f10301504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21060c7870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741870616c6c65741043616c6c0404540001085072656c61795f73657373696f6e5f7265706f72740401187265706f72742506016c53657373696f6e5265706f72743c543a3a4163636f756e7449643e000004050143616c6c656420746f20696e64696361746520746865207374617274206f662061206e65772073657373696f6e206f6e207468652072656c617920636861696e2e5c72656c61795f6e65775f6f6666656e63655f70616765640401206f6666656e636573390601a85665633c2853657373696f6e496e6465782c204f6666656e63653c543a3a4163636f756e7449643e293e000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2506087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e743453657373696f6e5265706f727404244163636f756e744964010000100124656e645f696e64657810013053657373696f6e496e64657800014076616c696461746f725f706f696e7473290601545665633c284163636f756e7449642c20753332293e00015061637469766174696f6e5f74696d657374616d70310601484f7074696f6e3c287536342c20753332293e0001206c6566746f766572200110626f6f6c000029060000022d06002d0600000408001000310604184f7074696f6e0404540135060108104e6f6e6500000010536f6d6504003506000001000035060000040830100039060000023d06003d0600000408104106004106087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741c4f6666656e636504244163636f756e7449640100000c01206f6666656e6465720001244163636f756e7449640001247265706f7274657273650101385665633c4163636f756e7449643e000138736c6173685f6672616374696f6efd05011c50657262696c6c000045060c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1870616c6c65741043616c6c040454000104186d616e6167650401086f704906014441646d696e4f7065726174696f6e3c543e0000144c4d616e61676520746869732070616c6c65742e00e0546865206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a41646d696e4f726967696e605d2e000101536565205b6041646d696e4f7065726174696f6e605d20666f7220766172696f7573206f7065726174696f6e7320746861742061726520706f737369626c652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4906089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3841646d696e4f7065726174696f6e04045400011440466f726365526f74617465526f756e6400000034466f726365536574506861736504004d06012050686173653c543e00010050456d657267656e6379536574536f6c7574696f6e080051060184426f783c426f756e646564537570706f7274734f663c50616c6c65743c543e3e3e000071060134456c656374696f6e53636f726500020044456d657267656e637946616c6c6261636b000300505365744d696e556e7472757374656453636f7265040071060134456c656374696f6e53636f7265000400004d060c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1474797065731450686173650404540001200c4f6666000000185369676e65640400100144426c6f636b4e756d626572466f723c543e000100405369676e656456616c69646174696f6e0400100144426c6f636b4e756d626572466f723c543e00020020556e7369676e65640400100144426c6f636b4e756d626572466f723c543e00030020536e617073686f74040010012450616765496e64657800040010446f6e65000500184578706f7274040010012450616765496e64657800060024456d657267656e6379000700005106087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f72743c426f756e646564537570706f7274730c244163636f756e744964010018424f75746572001842496e6e6572000004005506010901426f756e6465645665633c284163636f756e7449642c20426f756e646564537570706f72743c4163636f756e7449642c2042496e6e65723e292c20424f757465723e000055060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540159060453000004006d0601185665633c543e0000590600000408005d06005d06087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f727438426f756e646564537570706f727408244163636f756e744964010014426f756e640000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273610601bc426f756e6465645665633c284163636f756e7449642c20457874656e64656442616c616e6365292c20426f756e643e000061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016506045300000400690601185665633c543e000065060000040800180069060000026506006d060000025906007106084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e636500007506149070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c731870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7906109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20756e7369676e65641870616c6c65741043616c6c0404540001043c7375626d69745f756e7369676e656404013870616765645f736f6c7574696f6e7d060194426f783c5061676564526177536f6c7574696f6e3c543a3a4d696e6572436f6e6669673e3e00003c705375626d697420616e20756e7369676e656420736f6c7574696f6e2e0055015468697320776f726b732076657279206d756368206c696b6520616e20696e686572656e742c206173206f6e6c79207468652076616c696461746f727320617265207065726d697474656420746f207375626d69745901616e797468696e672e2042792064656661756c742076616c696461746f72732077696c6c20636f6d7075746520746869732063616c6c20696e20746865697220606f6666636861696e5f776f726b65726020686f6f6b6c616e642074727920616e64207375626d6974206974206261636b2e0045015468697320697320646966666572656e742066726f6d207369676e65642070616765207375626d697373696f6e206d61696e6c7920696e20746861742074686520736f6c7574696f6e2070616765206973507665726966696564206f6e2074686520666c792e003d01546865206070616765645f736f6c7574696f6e60206d617920636f6e7461696e206174206d6f7374205b60436f6e6669673a3a4d696e65725061676573605d2070616765732e2054686579206172650d01696e746572707265746564206173206d7370202d3e206c73702c20617320706572205b6063726174653a3a50616c6c65743a3a6d73705f72616e67655f666f72605d2e005d01466f72206578616d706c652c20696620605061676573203d2034602c20616e6420604d696e65725061676573203d2032602c206f75722066756c6c20736e617073686f742072616e676520776f756c64206265205b302c5501312c20322c20335d2c20776974682033206265696e67206d73702e204275742c20696e207468697320636173652c207468656e20746865206070616765645f7261775f736f6c7574696f6e2e706167657360206973dc657870656374656420746f20636f72726573706f6e6420746f20605b736e617073686f742832292c20736e617073686f742833295d602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d060c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b147479706573405061676564526177536f6c7574696f6e04045400000c0138736f6c7574696f6e5f7061676573810601485665633c536f6c7574696f6e4f663c543e3e00011473636f726571060134456c656374696f6e53636f7265000114726f756e6410010c7533320000810600000285060085060c6861737365745f6875625f706f6c6b61646f745f72756e74696d651c7374616b696e67544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331890600000118766f74657332950600000118766f74657333a90600000118766f74657334b50600000118766f74657335c10600000118766f74657336cd0600000118766f74657337d90600000118766f74657338e50600000118766f74657339f1060000011c766f7465733130fd060000011c766f746573313109070000011c766f746573313215070000011c766f746573313321070000011c766f74657331342d070000011c766f746573313539070000011c766f7465733136450700000089060000028d06008d06000004081d019106009106000006d10200950600000299060099060000040c1d019d069106009d06000004089106a10600a106000006a50600a5060c3473705f61726974686d65746963287065725f7468696e67731850657255313600000400d102010c7531360000a906000002ad0600ad060000040c1d01b106910600b106000003020000009d0600b506000002b90600b9060000040c1d01bd06910600bd06000003030000009d0600c106000002c50600c5060000040c1d01c906910600c906000003040000009d0600cd06000002d10600d1060000040c1d01d506910600d506000003050000009d0600d906000002dd0600dd060000040c1d01e106910600e106000003060000009d0600e506000002e90600e9060000040c1d01ed06910600ed06000003070000009d0600f106000002f50600f5060000040c1d01f906910600f906000003080000009d0600fd0600000201070001070000040c1d0105079106000507000003090000009d060009070000020d07000d070000040c1d01110791060011070000030a0000009d0600150700000219070019070000040c1d011d079106001d070000030b0000009d0600210700000225070025070000040c1d01290791060029070000030c0000009d06002d0700000231070031070000040c1d01350791060035070000030d0000009d060039070000023d07003d070000040c1d01410791060041070000030e0000009d0600450700000249070049070000040c1d014d079106004d070000030f0000009d06005107109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c65741043616c6c040454000114207265676973746572040134636c61696d65645f73636f726571060134456c656374696f6e53636f7265000004c45265676973746572206f6e6573656c6620666f7220616e207570636f6d696e67207369676e656420656c656374696f6e2e2c7375626d69745f706167650801107061676510012450616765496e6465780001386d617962655f736f6c7574696f6e5507019c4f7074696f6e3c426f783c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0001208c5375626d697420612073696e676c652070616765206f66206120736f6c7574696f6e2e00b04d75737420616c7761797320636f6d65206166746572205b6050616c6c65743a3a7265676973746572605d2e00e0606d617962655f736f6c7574696f6e602063616e2062652073657420746f20604e6f6e656020746f2065726173652074686520706167652e003501436f6c6c65637473206465706f736974732066726f6d20746865207369676e6564206f726967696e206261736564206f6e205b60436f6e6669673a3a4465706f73697442617365605d20616e646c5b60436f6e6669673a3a4465706f73697450657250616765605d2e106261696c00021454526574726163742061207375626d697373696f6e2e0055014120706f7274696f6e206f6620746865206465706f736974206d61792062652072657475726e65642c206261736564206f6e20746865205b60436f6e6669673a3a4261696c6f75744772616365526174696f605d2e00c4546869732077696c6c2066756c6c792072656d6f76652074686520736f6c7574696f6e2066726f6d2073746f726167652e50636c6561725f6f6c645f726f756e645f64617461080114726f756e6410010c7533320001347769746e6573735f706167657310010c753332000318c0436c656172207468652064617461206f662061207375626d697474657220666f726d20616e206f6c6420726f756e642e003101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e6420746865206f726967696e616c207375626d69747465722e005d01546869732063616e206f6e6c792062652063616c6c656420666f72207375626d697373696f6e73207468617420656e64207570206265696e67206469736361726465642c20617320696e207468657920617265206e6f74c470726f63657373656420616e64207468657920656e64207570206c696e676572696e6720696e207468652071756575652e447365745f696e76756c6e657261626c657304010c696e76650101445665633c543a3a4163636f756e7449643e00040c685365742074686520696e76756c6e657261626c65206c6973742e0011014469737061746368206f726967696e206d75737420746865207468652073616d65206173205b6063726174653a3a436f6e6669673a3a41646d696e4f726967696e605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e550704184f7074696f6e0404540185060108104e6f6e6500000010536f6d650400850600000100005907105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c65741043616c6c04045400018410626f6e6408011476616c75652d01013042616c616e63654f663c543e00011470617965655d07017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000030610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616c2d01013042616c616e63654f663c543e000128610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e18756e626f6e6404011476616c75652d01013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200034c290152656d6f766520616e79207374616b65207468617420686173206265656e2066756c6c7920756e626f6e64656420616e6420697320726561647920666f72207769746864726177616c2e0055015374616b6520697320636f6e736964657265642066756c6c7920756e626f6e646564206f6e6365205b60436f6e6669673a3a426f6e64696e674475726174696f6e605d2068617320656c61707365642073696e63655d0174686520756e626f6e64696e672077617320696e697469617465642e20496e2072617265206361736573e2809473756368206173207768656e206f6666656e63657320666f722074686520756e626f6e64656420657261550168617665206265656e207265706f7274656420627574206e6f74207965742070726f636573736564e280947769746864726177616c206973207265737472696374656420746f206572617320666f7220776869636884616c6c206f6666656e6365732068617665206265656e2070726f6365737365642e00250154686520756e6c6f636b6564207374616b652077696c6c2062652072657475726e656420617320667265652062616c616e636520696e20746865207374617368206163636f756e742e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730059012d20606e756d5f736c617368696e675f7370616e73603a202a2a446570726563617465642a2a2e2052657461696e6564206f6e6c7920666f72206261636b7761726420636f6d7061746962696c6974793b2074686973682020706172616d6574657220686173206e6f206566666563742e2076616c696461746504011470726566736107013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473690701645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005140d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f706179656504011470617965655d07017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000714b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e387365745f636f6e74726f6c6c657200082045012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e4c7365745f76616c696461746f725f636f756e7404010c6e65771d01010c75333200090c90536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e60696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c1d01010c753332000a10e8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f665460543a3a4d617856616c696461746f72536574602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e547363616c655f76616c696461746f725f636f756e74040118666163746f726d07011c50657263656e74000b1011015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f665460543a3a4d617856616c696461746f72536574602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f6e6f5f65726173000c24ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e34666f7263655f6e65775f657261000d284901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573650101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34232320506172616d657465727300b02d20607374617368603a20546865207374617368206163636f756e7420746f20626520756e7374616b65642e3d012d20606e756d5f736c617368696e675f7370616e73603a202a2a446570726563617465642a2a2e205468697320706172616d657465722069732072657461696e656420666f72206261636b77617264ac636f6d7061746962696c6974792e204974206e6f206c6f6e6765722068617320616e79206566666563742e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e64657800014476616c696461746f725f736c6173686573710701705665633c28543a3a4163636f756e7449642c2050657262696c6c293e00112c090143616e63656c73207363686564756c656420736c617368657320666f72206120676976656e20657261206265666f7265207468657920617265206170706c6965642e006101546869732066756e6374696f6e20616c6c6f77732060543a3a41646d696e4f726967696e6020746f2063616e63656c2070656e64696e6720736c617368657320666f72207370656369666965642076616c696461746f72734901696e206120676976656e206572612e205468652063616e63656c6c656420736c6173686573206172652073746f72656420616e642077696c6c20626520636865636b6564207768656e206170706c79696e6720736c61736865732e0034232320506172616d657465727355012d2060657261603a20546865207374616b696e672065726120666f7220776869636820736c61736865732073686f756c642062652063616e63656c6c65642e205468697320697320746865206572612077686572653501202074686520736c61736820776f756c64206265206170706c6965642c206e6f74207468652065726120696e20776869636820746865206f6666656e63652077617320636f6d6d69747465642e59012d206076616c696461746f725f736c6173686573603a2041206c697374206f662076616c696461746f72207374617368206163636f756e747320616e6420746865697220736c617368206672616374696f6e7320746f3c202062652063616e63656c6c65642e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c75652d01013042616c616e63654f663c543e00130cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a002d01312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f7720606d696e5f6368696c6c65645f626f6e6460206f72206973207a65726f2e3901322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f7720606d696e5f6368696c6c65645f626f6e6460206f72206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d657465727300a82d20607374617368603a20546865207374617368206163636f756e7420746f206265207265617065642e3d012d20606e756d5f736c617368696e675f7370616e73603a202a2a446570726563617465642a2a2e205468697320706172616d657465722069732072657461696e656420666f72206261636b77617264ac636f6d7061746962696c6974792e204974206e6f206c6f6e6765722068617320616e79206566666563742e106b69636b04010c77686f690701645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e6479070158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6479070158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e747d070134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e747d070134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6481070144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e85070144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f7265776172647381070144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577fd05011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273890701f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572f90201504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616c3d0501504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e678d070115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cd84d69677261746573207065726d697373696f6e6c6573736c7920612073746173682066726f6d206c6f636b7320746f20686f6c64732e004901546869732072656d6f76657320746865206f6c64206c6f636b206f6e20746865207374616b6520616e642063726561746573206120686f6c64206f6e2069742061746f6d6963616c6c792e20496620616c6c61017374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c64206173206d75636820617320706f737369626c652e205468652072656d61696e696e67847374616b652069732072656d6f7665642066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e2c6170706c795f736c617368080124736c6173685f657261100120457261496e646578000124736c6173685f6b65799d07017028543a3a4163636f756e7449642c2050657262696c6c2c2075333229001f841d014d616e75616c6c7920616e64207065726d697373696f6e6c6573736c79206170706c696573206120646566657272656420736c61736820666f72206120676976656e206572612e005d014e6f726d616c6c792c20736c617368657320617265206175746f6d61746963616c6c79206170706c6965642073686f72746c7920616674657220746865207374617274206f66207468652060736c6173685f657261602e5901546865206175746f6d61746963206170706c69636174696f6e206f6620736c61736865732069732068616e646c6564206279207468652070616c6c6574277320696e7465726e616c206c6f6769632c20616e64206974cc747269657320746f206170706c79206f6e6520736c61736820706167652070657220626c6f636b206f6620746865206572612e5501496620666f7220736f6d6520726561736f6e2c206f6e6520657261206973206e6f7420656e6f75676820666f72206170706c79696e6720616c6c20736c6173682070616765732c207468652072656d61696e696e67dc736c6173686573206e65656420746f206265206d616e75616c6c7920287065726d697373696f6e6c6573736c7929206170706c6965642e004901466f72206120676976656e2065726120782c2069662061742065726120782b312c20736c617368657320617265207374696c6c20756e6170706c6965642c20616c6c207769746864726177616c73206765742101626c6f636b65642c20616e64207468657365206e65656420746f206265206d616e75616c6c79206170706c6965642062792063616c6c696e6720746869732066756e6374696f6e2e4d01546869732066756e6374696f6e206578697374732061732061202a2a66616c6c6261636b206d656368616e69736d2a2a20666f7220746869732065787472656d6520736974756174696f6e2c20627574207765cc6e657665722065787065637420746f20656e636f756e746572207468697320696e206e6f726d616c207363656e6172696f732e00610154686520706172616d657465727320666f7220746869732063616c6c2063616e2062652071756572696564206279206c6f6f6b696e67206174207468652060556e6170706c696564536c6173686573602073746f726167658c666f722065726173206f6c646572207468616e2074686520616374697665206572612e0034232320506172616d65746572732d012d2060736c6173685f657261603a20546865207374616b696e672065726120696e2077686963682074686520736c61736820776173206f726967696e616c6c79207363686564756c65642e25012d2060736c6173685f6b6579603a204120756e69717565206964656e74696669657220666f722074686520736c6173682c20726570726573656e7465642061732061207475706c653af820202d20607374617368603a20546865207374617368206163636f756e74206f66207468652076616c696461746f72206265696e6720736c61736865642e050120202d2060736c6173685f6672616374696f6e603a20546865206672616374696f6e206f6620746865207374616b6520746861742077617320736c61736865642e050120202d2060706167655f696e646578603a2054686520696e646578206f6620746865206578706f737572652070616765206265696e672070726f6365737365642e002c2323204265686176696f72e82d205468652066756e6374696f6e206973202a2a7065726d697373696f6e6c6573732a2ae28094616e796f6e652063616e2063616c6c2069742ef02d205468652060736c6173685f65726160202a2a6d757374206265207468652063757272656e7420657261206f7220612070617374206572612a2a2e6c496620697420697320696e20746865206675747572652c2074686588202063616c6c206661696c73207769746820604572614e6f7453746172746564602ee42d2054686520666565206973207761697665642069662074686520736c617368206973207375636365737366756c6c79206170706c6965642e005423232046757475726520496d70726f76656d656e7461012d20496d706c656d656e7420616e202a2a6f66662d636861696e20776f726b657220284f435729207461736b2a2a20746f206175746f6d61746963616c6c79206170706c7920736c6173686573207768656e207468657265b82020697320756e7573656420626c6f636b2073706163652c20696d70726f76696e6720656666696369656e63792e387072756e655f6572615f7374657004010c657261100120457261496e64657800202c6101506572666f726d206f6e652073746570206f6620657261207072756e696e6720746f2070726576656e7420506f562073697a652065786861757374696f6e2066726f6d20756e626f756e6465642064656c6574696f6e732e003101546869732065787472696e73696320656e61626c6573207065726d697373696f6e6c657373206c617a79207072756e696e67206f6620657261206461746120627920706572666f726d696e672d01696e6372656d656e74616c2064656c6574696f6e206f662073746f72616765206974656d732e20456163682063616c6c2070726f6365737365732061206c696d69746564206e756d62657225016f66206974656d73206261736564206f6e20617661696c61626c6520626c6f636b2077656967687420746f2061766f696420657863656564696e6720626c6f636b206c696d6974732e00350152657475726e732060506179733a3a4e6f60207768656e20776f726b20697320706572666f726d656420746f20696e63656e746976697a6520726567756c6172206d61696e74656e616e63652e0501416e796f6e652063616e2063616c6c207468697320746f2068656c70206d61696e7461696e2074686520636861696e27732073746f72616765206865616c74682e000d0154686520657261206d75737420626520656c696769626c6520666f72207072756e696e6720286f6c646572207468616e20486973746f72794465707468202b2031292e3901436865636b20604572615072756e696e675374617465602073746f7261676520746f2073656520696620616e20657261206e65656473207072756e696e67206265666f72652063616c6c696e672e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5d07085070616c6c65745f7374616b696e675f6173796e634452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400006107085070616c6c65745f7374616b696e675f6173796e633856616c696461746f7250726566730000080128636f6d6d697373696f6e6507011c50657262696c6c00011c626c6f636b6564200110626f6f6c00006507000006fd05006907000002f103006d070c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000710700000275070075070000040800fd05007907105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200007d07105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200008107105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f70040454016d07010c104e6f6f700000000c53657404006d070104540001001852656d6f7665000200008507105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657420436f6e6669674f7004045401fd05010c104e6f6f700000000c5365740400fd050104540001001852656d6f76650002000089070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e00008d0704184f7074696f6e0404540191070108104e6f6e6500000010536f6d6504009107000001000091070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019507045300000400990701185665633c543e000095070c5070616c6c65745f7374616b696e675f6173796e63186c65646765722c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75652d01011c42616c616e636500010c6572611d010120457261496e646578000099070000029507009d070000040c00fd051000a1070c3470616c6c65745f61685f6f70731870616c6c65741043616c6c0404540001105c756e726573657276655f6c656173655f6465706f7369740c0114626c6f636b100144426c6f636b4e756d626572466f723c543e0001246465706f7369746f72f90201504f7074696f6e3c543a3a4163636f756e7449643e00011c706172615f6964ad020118506172614964000020f8556e7265736572766520746865206465706f7369742074686174207761732074616b656e20666f72206372656174696e6720612063726f77646c6f616e2e005d01546869732063616e2062652063616c6c656420627920616e79207369676e6564206f726967696e2e20497420756e726573657276657320746865206c65617365206465706f736974206f6e20746865206163636f756e7459017468617420776f6e20746865206c656173652061756374696f6e2e2049742063616e20626520756e7265736572766564206f6e636520616c6c206c656173657320657870697265642e204e6f74652074686174206974510177696c6c2062652063616c6c6564206175746f6d61746963616c6c792066726f6d206077697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e6020666f7220746865206d61746368696e674863726f77646c6f616e206163636f756e742e005101536f6c6f20626964646572206163636f756e7473207468617420776f6e206c656173652061756374696f6e732063616e20757365207468697320746f20756e7265736572766520746865697220616d6f756e742e7c77697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e0c0114626c6f636b100144426c6f636b4e756d626572466f723c543e0001246465706f7369746f72f90201504f7074696f6e3c543a3a4163636f756e7449643e00011c706172615f6964ad02011850617261496400011cc857697468647261772074686520636f6e747269627574696f6e206f6620612066696e69736865642063726f77646c6f616e2e00d0412063726f77646c6f616e20636f6e747269627574696f6e2063616e2062652077697468647261776e206966206569746865723ad42d205468652063726f77646c6f616e206661696c656420746f20696e20616e2061756374696f6e20616e642074696d6564206f75749c2d20576f6e20616e2061756374696f6e20616e6420616c6c206c65617365732065787069726564008c43616e2062652063616c6c656420627920616e79207369676e6564206f726967696e2e6c756e726573657276655f63726f77646c6f616e5f726573657276650c0114626c6f636b100144426c6f636b4e756d626572466f723c543e0001246465706f7369746f72f90201504f7074696f6e3c543a3a4163636f756e7449643e00011c706172615f6964ad020118506172614964000220f8556e7265736572766520746865206465706f7369742074686174207761732074616b656e20666f72206372656174696e6720612063726f77646c6f616e2e007c546869732063616e2062652063616c6c6564206f6e6365206569746865723ad82d205468652063726f77646c6f616e206661696c656420746f2077696e20616e2061756374696f6e20616e642074696d6564206f757421012d20576f6e20616e2061756374696f6e2c20616c6c206c6561736573206578706972656420616e6420616c6c20636f6e747269627574696f6e73206172652077697468647261776e00590143616e2062652063616c6c656420627920616e79207369676e6564206f726967696e2e2054686520636f6e646974696f6e207468617420616c6c20636f6e747269627574696f6e73206172652077697468647261776ee0697320696e20706c6163652073696e6365207468652072657365727665206163747320617320612073746f72616765206465706f7369742e8c7472616e736665725f746f5f706f73745f6d6967726174696f6e5f747265617375727904012061737365745f69640d0101f8426f783c3c543a3a46756e6769626c65732061732046756e6769626c6573496e73706563743c543a3a4163636f756e7449643e3e3a3a417373657449643e00031049015472616e73666572207468652062616c616e63652066726f6d20746865207072652d6d6967726174696f6e207472656173757279206163636f756e7420746f2074686520706f73742d6d6967726174696f6e447472656173757279206163636f756e742e00f8546869732063616c6c2063616e206f6e6c792062652063616c6c656420616674657220746865206d6967726174696f6e20697320636f6d706c657465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5070c4870616c6c65745f61685f6d69677261746f721870616c6c65741043616c6c04045400017c40726563656976655f6163636f756e74730401206163636f756e7473a90701505665633c52634163636f756e74466f723c543e3e00000c9852656365697665206163636f756e74732066726f6d207468652052656c617920436861696e2e003d01546865206163636f756e74732073656e742077697468206070616c6c65745f72635f6d69677261746f723a3a50616c6c65743a3a6d6967726174655f6163636f756e7473602066756e6374696f6e2e44726563656976655f6d756c7469736967730401206163636f756e7473fd0701505665633c52634d756c74697369674f663c543e3e0001149c52656365697665206d756c7469736967732066726f6d207468652052656c617920436861696e2e004501546869732077696c6c2062652063616c6c65642066726f6d20616e2058434d20605472616e736163746020696e73696465206120444d502066726f6d207468652072656c617920636861696e2e20546865686d756c7469736967732077657265207072657061726564206279fc6070616c6c65745f72635f6d69677261746f723a3a6d756c74697369673a3a4d756c74697369674d69677261746f723a3a6d6967726174655f6d616e79602e54726563656976655f70726f78795f70726f7869657304011c70726f78696573050801845665633c526350726f78794f663c542c20543a3a526350726f7879547970653e3e00020494526563656976652070726f786965732066726f6d207468652052656c617920436861696e2e6c726563656976655f70726f78795f616e6e6f756e63656d656e7473040134616e6e6f756e63656d656e7473190801745665633c526350726f7879416e6e6f756e63656d656e744f663c543e3e000304c4526563656976652070726f787920616e6e6f756e63656d656e74732066726f6d207468652052656c617920436861696e2e5c726563656976655f707265696d6167655f6368756e6b730401186368756e6b73210801505665633c5263507265696d6167654368756e6b3e0004007c726563656976655f707265696d6167655f726571756573745f737461747573040138726571756573745f7374617475732d0801685665633c506f727461626c65526571756573745374617475733e00050078726563656976655f707265696d6167655f6c65676163795f7374617475730401346c65676163795f737461747573450801805665633c5263507265696d6167654c65676163795374617475734f663c543e3e00060068726563656976655f6e6f6d5f706f6f6c735f6d657373616765730401206d657373616765734d0801645665633c52634e6f6d506f6f6c734d6573736167653c543e3e00070064726563656976655f76657374696e675f7363686564756c65730401247363686564756c6573b50801645665633c526356657374696e675363686564756c653c543e3e00080060726563656976655f7265666572656e64615f76616c75657304011876616c756573c508019c5665633c5265666572656e64614d6573736167653c547261636b49644f663c542c2028293e3e3e000a04190152656365697665207265666572656e64756d20636f756e74732c206465636964696e6720636f756e74732c20766f74657320666f722074686520747261636b2071756575652e4c726563656976655f7265666572656e64756d7304012c7265666572656e64756d73dd0801945665633c287533322c2052635265666572656e64756d496e666f4f663c542c2028293e293e000b04a452656365697665207265666572656e64756d732066726f6d207468652052656c617920436861696e2e38726563656976655f636c61696d730401206d657373616765730d0901645665633c5263436c61696d734d6573736167654f663c543e3e000c0068726563656976655f626167735f6c6973745f6d657373616765730401206d65737361676573210901705665633c506f727461626c65426167734c6973744d6573736167653e000d0068726563656976655f7363686564756c65725f6d657373616765730401206d65737361676573310901705665633c52635363686564756c65724d6573736167654f663c543e3e000e003c726563656976655f696e646963657304011c696e6469636573450901605665633c5263496e6469636573496e6465784f663c543e3e000f0088726563656976655f636f6e76696374696f6e5f766f74696e675f6d657373616765730401206d657373616765734d09018c5665633c5263436f6e76696374696f6e566f74696e674d6573736167654f663c543e3e00100064726563656976655f626f756e746965735f6d657373616765730401206d657373616765737d09016c5665633c5263426f756e746965734d6573736167654f663c543e3e0011004c726563656976655f61737365745f72617465730401147261746573950901f45665633c283c542061732070616c6c65745f61737365745f726174653a3a436f6e6669673e3a3a41737365744b696e642c20466978656455313238293e00120068726563656976655f63726f77646c6f616e5f6d657373616765730401206d657373616765739d0901705665633c526343726f77646c6f616e4d6573736167654f663c543e3e00130068726563656976655f7265666572656e64615f6d657461646174610401206d65746164617461a50901b05665633c287533322c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368293e00140064726563656976655f74726561737572795f6d657373616765730401206d65737361676573ad0901705665633c506f727461626c6554726561737572794d6573736167653e00150084726563656976655f7363686564756c65725f6167656e64615f6d657373616765730401206d65737361676573c5090131015665633c5363686564756c65724167656e64614d6573736167653c426c6f636b4e756d626572466f723c543e2c207363686564756c65723a3a0a52635363686564756c65644f663c543e3e3e00160088726563656976655f64656c6567617465645f7374616b696e675f6d657373616765730401206d65737361676573d90901905665633c506f727461626c6544656c6567617465645374616b696e674d6573736167653e0017007c726563656976655f6368696c645f626f756e746965735f6d657373616765730401206d65737361676573e10901845665633c506f727461626c654368696c64426f756e746965734d6573736167653e00180060726563656976655f7374616b696e675f6d657373616765730401206d65737361676573f509016c5665633c506f727461626c655374616b696e674d6573736167653e0019003c666f7263655f7365745f73746167650401147374616765650a01384d6967726174696f6e53746167650064106053657420746865206d6967726174696f6e2073746167652e000901546869732063616c6c20697320696e74656e64656420666f7220656d657267656e637920757365206f6e6c7920616e64206973206775617264656420627920746865605b60436f6e6669673a3a41646d696e4f726967696e605d2e3c73746172745f6d6967726174696f6e006510645374617274207468652064617461206d6967726174696f6e2e005d0154686973206973207479706963616c6c792063616c6c6564206279207468652052656c617920436861696e20746f20737461727420746865206d6967726174696f6e206f6e207468652041737365742048756220616e6405017265636569766520612068616e647368616b65206d65737361676520696e6469636174696e67207468652041737365742048756227732072656164696e6573732e587365745f646d705f71756575655f7072696f7269747904010c6e6577690a018c446d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e00660ca45365742074686520444d50207175657565207072696f7269747920636f6e66696775726174696f6e2e00a043616e206f6e6c792062652063616c6c656420627920746865206041646d696e4f726967696e602e2c7365745f6d616e6167657204010c6e6577f90201504f7074696f6e3c543a3a4163636f756e7449643e0067106c53657420746865206d616e61676572206163636f756e742069642e004101546865206d616e6167657220686173207468652073696d696c617220746f205b60436f6e6669673a3a41646d696e4f726967696e605d2070726976696c65676573206578636570742074686174206974e863616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e4066696e6973685f6d6967726174696f6e080110646174616d0a01a44f7074696f6e3c4d6967726174696f6e46696e6973686564446174613c543a3a42616c616e63653e3e00013c636f6f6c5f6f66665f656e645f617410010c753332006e1c5446696e69736820746865206d6967726174696f6e2e00450154686973206973207479706963616c6c792063616c6c6564206279207468652052656c617920436861696e20746f207369676e616c20746865206d6967726174696f6e206861732066696e69736865642e0059015468652060646174616020706172616d65746572206d6967687420626520604e6f6e6560206966207765206172652072756e6e696e6720746865206d6967726174696f6e20666f722061207365636f6e642074696d655101666f7220736f6d652070616c6c65747320616e64206861766520616c726561647920706572666f726d65642074686520636865636b696e67206163636f756e742062616c616e636520636f7272656374696f6e2c94736f20776520646f206e6f74206e65656420746f20646f20697420746869732074696d652e4073656e645f78636d5f6d6573736167650801106465737491020158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676539040154426f783c56657273696f6e656458636d3c28293e3e006f0c350158434d2073656e642063616c6c206964656e746963616c20746f20746865205b6070616c6c65745f78636d3a3a50616c6c65743a3a73656e64605d2063616c6c2062757420776974682074686559015b436f6e6669673a3a53656e6458636d5d20726f757465722077686963682077696c6c2062652061626c6520746f2073656e64206d6573736167657320746f207468652052656c617920436861696e20647572696e6738746865206d6967726174696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea907000002ad0700ad070c4870616c6c65745f72635f6d69677261746f72206163636f756e74731c4163636f756e7410244163636f756e74496401001c42616c616e6365011828486f6c64526561736f6e01b10730467265657a65526561736f6e01cd070028010c77686f0001244163636f756e7449640001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114686f6c6473d50701d8426f756e6465645665633c4964416d6f756e743c486f6c64526561736f6e2c2042616c616e63653e2c20436f6e73745533323c353e3e00011c667265657a6573e10701e0426f756e6465645665633c4964416d6f756e743c467265657a65526561736f6e2c2042616c616e63653e2c20436f6e73745533323c353e3e0001146c6f636b73ed0701b4426f756e6465645665633c42616c616e63654c6f636b3c42616c616e63653e2c20436f6e73745533323c353e3e00013c756e6e616d65645f7265736572766518011c42616c616e6365000124636f6e73756d657273080108753800012470726f76696465727308010875380000b1070c4870616c6c65745f72635f6d69677261746f7214747970657348506f727461626c65486f6c64526561736f6e00011820507265696d6167650400b507016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0000001c5374616b696e670400b907016870616c6c65745f7374616b696e673a3a486f6c64526561736f6e000100485374617465547269654d6967726174696f6e0400bd07019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e0002004044656c6567617465645374616b696e670400c107019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e0003001c53657373696f6e0400c507016870616c6c65745f73657373696f6e3a3a486f6c64526561736f6e0004002458636d50616c6c65740400c907015870616c6c65745f78636d3a3a486f6c64526561736f6e00050000b5070c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d61676500000000b907103870616c6c65745f7374616b696e671870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e6700000000bd070c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d69677261746500000000c1070c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c657428486f6c64526561736f6e000104445374616b696e6744656c65676174696f6e00000000c5070c3870616c6c65745f73657373696f6e1870616c6c657428486f6c64526561736f6e000104104b65797300000000c9070c2870616c6c65745f78636d1870616c6c657428486f6c64526561736f6e00010438417574686f72697a65416c69617300000000cd070c4870616c6c65745f72635f6d69677261746f7214747970657350506f727461626c65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c730400d107019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e00000000d1070c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e636500000000d5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d907045300000400dd0701185665633c543e0000d90714346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401b1071c42616c616e63650118000801086964b10701084964000118616d6f756e7418011c42616c616e63650000dd07000002d90700e1070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e507045300000400e90701185665633c543e0000e50714346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401cd071c42616c616e63650118000801086964cd0701084964000118616d6f756e7418011c42616c616e63650000e907000002e50700ed070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f107045300000400f90701185665633c543e0000f1070c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964a50101384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73f507011c526561736f6e730000f5070c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000f907000002f10700fd0700000201080001080c4870616c6c65745f72635f6d69677261746f72206d756c74697369672852634d756c746973696708244163636f756e74496401001c42616c616e636501180008011c63726561746f720001244163636f756e74496400011c6465706f73697418011c42616c616e63650000050800000209080009080c4870616c6c65745f72635f6d69677261746f721470726f78791c526350726f787910244163636f756e74496401001c42616c616e636501182450726f787954797065010d082c426c6f636b4e756d6265720110000c012464656c656761746f720001244163636f756e74496400011c6465706f73697418011c42616c616e636500011c70726f7869657311080115015665633c70616c6c65745f70726f78793a3a50726f7879446566696e6974696f6e3c4163636f756e7449642c2050726f7879547970652c20426c6f636b4e756d6265723e3e00000d080c68706f6c6b61646f745f72756e74696d655f636f6e7374616e74731470726f78792450726f7879547970650001200c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e670003002c43616e63656c50726f78790006001c41756374696f6e0007003c4e6f6d696e6174696f6e506f6f6c730008004050617261526567697374726174696f6e0009000011080000021508001508083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f787954797065010d082c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970650d08012450726f78795479706500011464656c617910012c426c6f636b4e756d626572000019080000021d08001d080c4870616c6c65745f72635f6d69677261746f721470726f78794c526350726f7879416e6e6f756e63656d656e7408244163636f756e74496401001c42616c616e63650118000801246465706f7369746f720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000021080000022508002508104870616c6c65745f72635f6d69677261746f7220707265696d616765186368756e6b733c5263507265696d6167654368756e6b0000100134707265696d6167655f6861736834011048323536000130707265696d6167655f6c656e10010c7533320001446368756e6b5f627974655f6f666673657410010c75333200012c6368756e6b5f627974657329080190426f756e6465645665633c75382c20436f6e73745533323c4348554e4b5f53495a453e3e000029080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00002d080000023108003108104870616c6c65745f72635f6d69677261746f7220707265696d61676538726571756573745f73746174757354506f727461626c655265717565737453746174757300000801106861736834011048323536000138726571756573745f73746174757335080168506f727461626c6552657175657374537461747573496e6e657200003508104870616c6c65745f72635f6d69677261746f7220707265696d61676538726571756573745f73746174757368506f727461626c6552657175657374537461747573496e6e65720001082c556e7265717565737465640801187469636b657439080174284163636f756e74496433322c20506f727461626c655469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574410801944f7074696f6e3c284163636f756e74496433322c20506f727461626c655469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656eed02012c4f7074696f6e3c7533323e00010000390800000408003d08003d080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000410804184f7074696f6e0404540139080108104e6f6e6500000010536f6d6504003908000001000045080000024908004908104870616c6c65745f72635f6d69677261746f7220707265696d616765546c65676163795f726571756573745f737461747573585263507265696d6167654c656761637953746174757308244163636f756e74496401001c42616c616e63650118000c011068617368340110483235360001246465706f7369746f720001244163636f756e74496400011c6465706f73697418011c42616c616e636500004d080000025108005108104870616c6c65745f72635f6d69677261746f721c7374616b696e67246e6f6d5f706f6f6c734452634e6f6d506f6f6c734d6573736167650404540001203453746f7261676556616c75657304011876616c756573550801684e6f6d506f6f6c7353746f7261676556616c7565734f663c543e0000002c506f6f6c4d656d626572730401186d656d6265725d08017428543a3a4163636f756e7449642c20506f6f6c4d656d6265723c543e290001002c426f6e646564506f6f6c73040110706f6f6c7508017028506f6f6c49642c20426f6e646564506f6f6c496e6e65723c543e290002002c526577617264506f6f6c7304011c726577617264738908015c28506f6f6c49642c20526577617264506f6f6c3c543e290003003c537562506f6f6c7353746f726167650401247375625f706f6f6c739108015428506f6f6c49642c20537562506f6f6c733c543e29000400204d657461646174610401106d657461ad0801ac28506f6f6c49642c20426f756e6465645665633c75382c20543a3a4d61784d657461646174614c656e3e290005004c52657665727365506f6f6c49644c6f6f6b757004011c6c6f6f6b7570732d06015828543a3a4163636f756e7449642c20506f6f6c49642900060040436c61696d5065726d697373696f6e730401147065726d73b108017c28543a3a4163636f756e7449642c20436c61696d5065726d697373696f6e29000700005508104870616c6c65745f72635f6d69677261746f721c7374616b696e67246e6f6d5f706f6f6c73544e6f6d506f6f6c7353746f7261676556616c756573041c42616c616e6365011800200148746f74616c5f76616c75655f6c6f636b65643d05013c4f7074696f6e3c42616c616e63653e0001346d696e5f6a6f696e5f626f6e643d05013c4f7074696f6e3c42616c616e63653e00013c6d696e5f6372656174655f626f6e643d05013c4f7074696f6e3c42616c616e63653e0001246d61785f706f6f6c73ed02012c4f7074696f6e3c7533323e0001406d61785f706f6f6c5f6d656d62657273ed02012c4f7074696f6e3c7533323e0001646d61785f706f6f6c5f6d656d626572735f7065725f706f6f6ced02012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e5908013c4f7074696f6e3c50657262696c6c3e0001306c6173745f706f6f6c5f6964ed02012c4f7074696f6e3c7533323e0000590804184f7074696f6e04045401fd050108104e6f6e6500000010536f6d650400fd0500000100005d0800000408006108006108085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e746572a1020140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173650801e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e000065080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601180453000004006908013842547265654d61703c4b2c20563e00006908042042547265654d617008044b0110045601180004006d080000006d08000002710800710800000408101800750800000408107908007908085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6e7d080134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c65738508015c506f6f6c526f6c65733c543a3a4163636f756e7449643e0001147374617465ed050124506f6f6c537461746500007d08085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e740906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d61785908013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465810801bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6ded0201644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6e150601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000810804184f7074696f6e0404540111060108104e6f6e6500000010536f6d650400110600000100008508085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74f90201444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72f90201444f7074696f6e3c4163636f756e7449643e00011c626f756e636572f90201444f7074696f6e3c4163636f756e7449643e0000890800000408108d08008d08104870616c6c65745f72635f6d69677261746f721c7374616b696e673c6e6f6d5f706f6f6c735f616c69617328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e746572a1020140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000910800000408109508009508104870616c6c65745f72635f6d69677261746f721c7374616b696e673c6e6f6d5f706f6f6c735f616c69617320537562506f6f6c7304045400000801186e6f5f65726199080134556e626f6e64506f6f6c3c543e000120776974685f6572619d08010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e00009908104870616c6c65745f72635f6d69677261746f721c7374616b696e673c6e6f6d5f706f6f6c735f616c69617328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e00009d080c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b01100456019908045300000400a108013842547265654d61703c4b2c20563e0000a108042042547265654d617008044b01100456019908000400a508000000a508000002a90800a9080000040810990800ad080000040810010300b1080000040800050600b508000002b90800b9080c4870616c6c65745f72635f6d69677261746f721c76657374696e6744526356657374696e675363686564756c65040454000008010c77686f0001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449640001247363686564756c6573bd08019501426f756e6465645665633c70616c6c65745f76657374696e673a3a56657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f720a3c543e3e2c204d617856657374696e675363686564756c65734765743c543e2c3e0000bd080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010104045300000400c10801185665633c543e0000c108000002010400c508000002c90800c9080c4870616c6c65745f72635f6d69677261746f72247265666572656e6461405265666572656e64614d6573736167650414547261636b01d102000c01407265666572656e64756d5f636f756e74ed02012c4f7074696f6e3c7533323e0001386465636964696e675f636f756e74cd0801445665633c28547261636b2c20753332293e00012c747261636b5f7175657565d50801785665633c28547261636b2c205665633c287533322c2075313238293e293e0000cd08000002d10800d10800000408d1021000d508000002d90800d90800000408d1026d0800dd08000002e10800e1080000040810e50800e5080c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b496401d1023452756e74696d654f726967696e01e908184d6f6d656e7401101043616c6c0151031c42616c616e636501181454616c6c7901ed08244163636f756e74496401003c5363686564756c6541646472657373019401181c4f6e676f696e670400f108018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000e9080c6861737365745f6875625f706f6c6b61646f745f72756e74696d653061685f6d6967726174696f6e3c526350616c6c6574734f726967696e0001081873797374656d0400090501746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c4f726967696e7304001505017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e00160000ed080c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f7465730000f1080c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b496401d1023452756e74696d654f726967696e01e908184d6f6d656e7401101043616c6c0151031c42616c616e636501181454616c6c7901ed08244163636f756e74496401003c5363686564756c65416464726573730194002c0114747261636bd102011c547261636b49640001186f726967696ee908013452756e74696d654f726967696e00012070726f706f73616c5103011043616c6c000124656e6163746d656e74b5050150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974f508016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67fd0801784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79ed08011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d050901844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000f5080c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000f90804184f7074696f6e04045401f5080108104e6f6e6500000010536f6d650400f5080000010000fd0804184f7074696f6e0404540101090108104e6f6e6500000010536f6d6504000109000001000001090c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e67ed02014c4f7074696f6e3c426c6f636b4e756d6265723e0000050904184f7074696f6e0404540109090108104e6f6e6500000010536f6d650400090900000100000909000004081094000d0900000211090011090c4870616c6c65745f72635f6d69677261746f7218636c61696d733c5263436c61696d734d6573736167650c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001143453746f7261676556616c756573040114746f74616c18011c42616c616e636500000018436c61696d7304001509016828457468657265756d416464726573732c2042616c616e6365290001001c56657374696e6708010c77686f5d01013c457468657265756d416464726573730001207363686564756c651504017c2842616c616e63652c2042616c616e63652c20426c6f636b4e756d626572290002001c5369676e696e6704001909018028457468657265756d416464726573732c2053746174656d656e744b696e642900030024507265636c61696d7304001d090170284163636f756e7449642c20457468657265756d4164647265737329000400001509000004085d0118001909000004085d011d04001d0900000408005d010021090000022509002509104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c6973745c506f727461626c65426167734c6973744d657373616765000108104e6f6465080108696400012c4163636f756e74496433320001106e6f646529090130506f727461626c654e6f64650000000c42616708011473636f726530010c75363400010c6261672d09012c506f727461626c65426167000100002909104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c69737430506f727461626c654e6f64650000140108696400012c4163636f756e744964333200011070726576f902014c4f7074696f6e3c4163636f756e74496433323e0001106e657874f902014c4f7074696f6e3c4163636f756e74496433323e0001246261675f757070657230010c75363400011473636f726530010c75363400002d09104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c6973742c506f727461626c6542616700000c011068656164f902014c4f7074696f6e3c4163636f756e74496433323e0001107461696cf902014c4f7074696f6e3c4163636f756e74496433323e0001246261675f757070657230010c7536340000310900000235090035090c4870616c6c65745f72635f6d69677261746f72247363686564756c65724852635363686564756c65724d657373616765042c426c6f636b4e756d6265720110010c3c496e636f6d706c65746553696e6365040010012c426c6f636b4e756d6265720000001c526574726965730400390901d0285461736b416464726573733c426c6f636b4e756d6265723e2c205265747279436f6e6669673c426c6f636b4e756d6265723e29000100184c6f6f6b7570040041090190285461736b4e616d652c205461736b416464726573733c426c6f636b4e756d6265723e2900020000390900000408943d09003d09084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000410900000408049400450900000249090049090c4870616c6c65745f72635f6d69677261746f721c696e6469636573385263496e6469636573496e6465780c304163636f756e74496e6465780110244163636f756e74496401001c42616c616e6365011800100114696e6465781001304163636f756e74496e64657800010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e636500011866726f7a656e200110626f6f6c00004d0900000251090051090c4870616c6c65745f72635f6d69677261746f7244636f6e76696374696f6e5f766f74696e67645263436f6e76696374696f6e566f74696e674d65737361676510244163636f756e744964010014436c61737301d10218566f74696e670155091c42616c616e63650118010824566f74696e67466f720c000001244163636f756e7449640000d1020114436c617373000055090118566f74696e6700000034436c6173734c6f636b73466f7208000001244163636f756e7449640000750901545665633c28436c6173732c2042616c616e6365293e0001000055090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400590901c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400710901ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e0001000059090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f7465735d0901dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e736909015044656c65676174696f6e733c42616c616e63653e0001147072696f726d09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00005d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016109045300000400650901185665633c543e000061090000040810450300650900000261090069090c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e636500006d090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e6365000071090c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ea9050128436f6e76696374696f6e00012c64656c65676174696f6e736909015044656c65676174696f6e733c42616c616e63653e0001147072696f726d09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00007509000002790900790900000408d10218007d0900000281090081090c4870616c6c65745f72635f6d69677261746f7220626f756e74696573445263426f756e746965734d6573736167650c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011001102c426f756e7479436f756e74040010012c426f756e7479496e6465780000003c426f756e7479417070726f76616c730400e90201405665633c426f756e7479496e6465783e00010048426f756e74794465736372697074696f6e7304008509015828426f756e7479496e6465782c205665633c75383e2900020020426f756e746965730400890901f428426f756e7479496e6465782c20616c6961733a3a426f756e74793c4163636f756e7449642c2042616c616e63652c20426c6f636b4e756d6265723e2900030000850900000408103800890900000408108d09008d09104870616c6c65745f72635f6d69677261746f7220626f756e7469657314616c69617318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e636500011873746174757391090190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00009109083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d6265720110011c2050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720005004c417070726f7665645769746843757261746f7204011c63757261746f720001244163636f756e7449640006000095090000029909009909000004083903a102009d09000002a10900a1090c4870616c6c65745f72635f6d69677261746f722463726f77646c6f616e48526343726f77646c6f616e4d6573736167650c2c426c6f636b4e756d6265720110244163636f756e74496401001c42616c616e63650118010c304c656173655265736572766510013c756e726573657276655f626c6f636b10012c426c6f636b4e756d62657200011c6163636f756e740001244163636f756e74496400011c706172615f6964ad020118506172614964000118616d6f756e7418011c42616c616e63650000005443726f77646c6f616e436f6e747269627574696f6e14013877697468647261775f626c6f636b10012c426c6f636b4e756d62657200012c636f6e7472696275746f720001244163636f756e74496400011c706172615f6964ad020118506172614964000118616d6f756e7418011c42616c616e636500014463726f77646c6f616e5f6163636f756e740001244163636f756e7449640001004043726f77646c6f616e5265736572766510013c756e726573657276655f626c6f636b10012c426c6f636b4e756d6265720001246465706f7369746f720001244163636f756e74496400011c706172615f6964ad020118506172614964000118616d6f756e7418011c42616c616e636500020000a509000002a90900a90900000408103400ad09000002b10900b1090c4870616c6c65745f72635f6d69677261746f722074726561737572795c506f727461626c6554726561737572794d65737361676500011c3450726f706f73616c436f756e74040010013450726f706f73616c496e6465780000002450726f706f73616c730400b50901b02850726f706f73616c496e6465782c2050726f706f73616c3c4163636f756e74496433322c20753132383e2900010024417070726f76616c730400e90201485665633c50726f706f73616c496e6465783e000200285370656e64436f756e7404001001285370656e64496e646578000300185370656e647308010869641001285370656e64496e646578000118737461747573bd090160426f783c506f727461626c655370656e645374617475733e0004003c4c6173745370656e64506572696f640400ed02012c4f7074696f6e3c7533323e0005001446756e647300060000b5090000040810b90900b909083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000bd090c4870616c6c65745f72635f6d69677261746f722074726561737572794c506f727461626c655370656e64537461747573000018012861737365745f6b696e643903015c56657273696f6e65644c6f63617461626c654173736574000118616d6f756e741801107531323800012c62656e65666963696172799102014456657273696f6e65644c6f636174696f6e00012876616c69645f66726f6d10010c7533320001246578706972655f617410010c753332000118737461747573c1090150506f727461626c655061796d656e7453746174650000c1090c4870616c6c65745f72635f6d69677261746f7220747265617375727950506f727461626c655061796d656e74537461746500010c1c50656e64696e6700000024417474656d70746564040108696430010c753634000100184661696c656400020000c509000002c90900c9090c4870616c6c65745f72635f6d69677261746f72247363686564756c6572585363686564756c65724167656e64614d6573736167650804420110045301cd0900080114626c6f636b100104420001186167656e6461d10901385665633c4f7074696f6e3c533e3e0000cd09104870616c6c65745f72635f6d69677261746f72247363686564756c657214616c696173245363686564756c65640c1043616c6c0151032c426c6f636b4e756d62657201103450616c6c6574734f726967696e01e908001401206d617962655f69648801404f7074696f6e3c5461736b4e616d653e0001207072696f726974790801205072696f7269747900011063616c6c5103011043616c6c0001386d617962655f706572696f646963d103016c4f7074696f6e3c506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ee908013450616c6c6574734f726967696e0000d109000002d50900d50904184f7074696f6e04045401cd090108104e6f6e6500000010536f6d650400cd090000010000d909000002dd0900dd09104870616c6c65745f72635f6d69677261746f721c7374616b696e674464656c6567617465645f7374616b696e677c506f727461626c6544656c6567617465645374616b696e674d6573736167650001082844656c656761746f72730c012464656c656761746f7200012c4163636f756e74496433320001146167656e7400012c4163636f756e7449643332000118616d6f756e7418011075313238000000184167656e74731401146167656e7400012c4163636f756e7449643332000114706179656500012c4163636f756e744964333200013c746f74616c5f64656c65676174656418011075313238000154756e636c61696d65645f7769746864726177616c731801107531323800013470656e64696e675f736c6173681801107531323800010000e109000002e50900e5090c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e7469657370506f727461626c654368696c64426f756e746965734d65737361676500011c404368696c64426f756e7479436f756e74040010012c426f756e7479496e6465780000004c506172656e744368696c64426f756e74696573080010012c426f756e7479496e646578000010010c75333200010060506172656e74546f74616c4368696c64426f756e74696573080010012c426f756e7479496e646578000010010c7533320002002c4368696c64426f756e74790c0124706172656e745f696410012c426f756e7479496e6465780001206368696c645f696410012c426f756e7479496e6465780001306368696c645f626f756e7479e909014c506f727461626c654368696c64426f756e7479000300644368696c64426f756e74794465736372697074696f6e7356310c0124706172656e745f696410012c426f756e7479496e6465780001206368696c645f696410012c426f756e7479496e64657800012c6465736372697074696f6ef109017c426f756e6465645665633c75382c20436f6e73745533323c31373030303e3e000400505630546f56314368696c64426f756e74794964730c012c76305f6368696c645f696410012c426f756e7479496e646578000124706172656e745f696410012c426f756e7479496e64657800012c76315f6368696c645f696410012c426f756e7479496e6465780005004c4368696c6472656e43757261746f72466565730801206368696c645f696410012c426f756e7479496e646578000118616d6f756e741801107531323800060000e9090c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e746965734c506f727461626c654368696c64426f756e74790000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c75651801107531323800010c6665651801107531323800013c63757261746f725f6465706f73697418011075313238000118737461747573ed090164506f727461626c654368696c64426f756e74795374617475730000ed090c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e7469657364506f727461626c654368696c64426f756e74795374617475730001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f7200012c4163636f756e74496433320001001841637469766504011c63757261746f7200012c4163636f756e74496433320002003450656e64696e675061796f75740c011c63757261746f7200012c4163636f756e744964333200012c62656e656669636961727900012c4163636f756e7449643332000124756e6c6f636b5f617410010c75333200030000f1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f509000002f90900f909104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676558506f727461626c655374616b696e674d6573736167650001481856616c7565730400fd090154506f727461626c655374616b696e6756616c75657300000034496e76756c6e657261626c65730400650101405665633c4163636f756e74496433323e00010018426f6e646564080114737461736800012c4163636f756e7449643332000128636f6e74726f6c6c657200012c4163636f756e7449643332000200184c6564676572080128636f6e74726f6c6c657200012c4163636f756e74496433320001186c6564676572150a0154506f727461626c655374616b696e674c6564676572000300145061796565080114737461736800012c4163636f756e744964333200011c7061796d656e74250a0164506f727461626c6552657761726444657374696e6174696f6e0004002856616c696461746f7273080114737461736800012c4163636f756e744964333200012876616c696461746f7273290a0158506f727461626c6556616c696461746f725072656673000500284e6f6d696e61746f7273080114737461736800012c4163636f756e744964333200012c6e6f6d696e6174696f6e732d0a014c506f727461626c654e6f6d696e6174696f6e73000600385669727475616c5374616b657273040000012c4163636f756e74496433320007004c457261735374616b6572734f766572766965770c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e74496433320001206578706f73757265350a0174506f727461626c6550616765644578706f737572654d6574616461746100080040457261735374616b657273506167656410010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e744964333200011070616765100110506167650001206578706f73757265390a0150506f727461626c654578706f737572655061676500090038436c61696d6564526577617264730c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e744964333200011c72657761726473e90201245665633c506167653e000a00484572617356616c696461746f7250726566730c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e74496433320001147072656673290a0158506f727461626c6556616c696461746f725072656673000b004c4572617356616c696461746f7252657761726408010c657261100120457261496e64657800011872657761726418011075313238000c004045726173526577617264506f696e747308010c657261100120457261496e646578000118706f696e7473490a015c506f727461626c65457261526577617264506f696e7473000d003845726173546f74616c5374616b6508010c657261100120457261496e64657800012c746f74616c5f7374616b6518011075313238000e0040556e6170706c696564536c617368657308010c657261100120457261496e646578000114736c617368510a0158506f727461626c65556e6170706c696564536c617368000f0028426f6e6465644572617304005d0a01745665633c28457261496e6465782c2053657373696f6e496e646578293e0010004c56616c696461746f72536c617368496e4572610c010c657261100120457261496e64657800012476616c696461746f7200012c4163636f756e7449643332000114736c617368610a013c2850657262696c6c2c20753132382900110000fd09104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d657373616765345374616b696e6756616c756573041c42616c616e636501180040013c76616c696461746f725f636f756e74ed02012c4f7074696f6e3c7533323e00014c6d696e5f76616c696461746f725f636f756e74ed02012c4f7074696f6e3c7533323e0001486d696e5f6e6f6d696e61746f725f626f6e643d05013c4f7074696f6e3c42616c616e63653e0001486d696e5f76616c696461746f725f626f6e643d05013c4f7074696f6e3c42616c616e63653e0001406d696e5f6163746976655f7374616b653d05013c4f7074696f6e3c42616c616e63653e0001386d696e5f636f6d6d697373696f6e5908013c4f7074696f6e3c50657262696c6c3e0001506d61785f76616c696461746f72735f636f756e74ed02012c4f7074696f6e3c7533323e0001506d61785f6e6f6d696e61746f72735f636f756e74ed02012c4f7074696f6e3c7533323e00012c63757272656e745f657261ed0201404f7074696f6e3c457261496e6465783e0001286163746976655f657261010a01744f7074696f6e3c506f727461626c65416374697665457261496e666f3e000124666f7263655f657261090a015c4f7074696f6e3c506f727461626c65466f7263696e673e0001486d61785f7374616b65645f72657761726473110a013c4f7074696f6e3c50657263656e743e000154736c6173685f7265776172645f6672616374696f6e5908013c4f7074696f6e3c50657262696c6c3e00015463616e63656c65645f736c6173685f7061796f75743d05013c4f7074696f6e3c42616c616e63653e00015c63757272656e745f706c616e6e65645f73657373696f6eed0201504f7074696f6e3c53657373696f6e496e6465783e00013c6368696c6c5f7468726573686f6c64110a013c4f7074696f6e3c50657263656e743e0000010a04184f7074696f6e04045401050a0108104e6f6e6500000010536f6d650400050a0000010000050a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676554506f727461626c65416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172749502012c4f7074696f6e3c7536343e0000090a04184f7074696f6e040454010d0a0108104e6f6e6500000010536f6d6504000d0a00000100000d0a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167653c506f727461626c65466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000110a04184f7074696f6e040454016d070108104e6f6e6500000010536f6d6504006d070000010000150a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676554506f727461626c655374616b696e674c65646765720000100114737461736800012c4163636f756e7449643332000114746f74616c1801107531323800011861637469766518011075313238000124756e6c6f636b696e67190a01b8426f756e6465645665633c506f727461626c65556e6c6f636b4368756e6b2c20436f6e73745533323c3130303e3e0000190a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0a045300000400210a01185665633c543e00001d0a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167654c506f727461626c65556e6c6f636b4368756e6b000008011476616c75651801107531323800010c657261100120457261496e6465780000210a0000021d0a00250a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676564506f727461626c6552657761726444657374696e6174696f6e000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e74040000012c4163636f756e7449643332000300104e6f6e6500040000290a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676558506f727461626c6556616c696461746f7250726566730000080128636f6d6d697373696f6efd05011c50657262696c6c00011c626c6f636b6564200110626f6f6c00002d0a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167654c506f727461626c654e6f6d696e6174696f6e7300000c011c74617267657473310a0194426f756e6465645665633c4163636f756e74496433322c20436f6e73745533323c33323e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000310a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000350a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676574506f727461626c6550616765644578706f737572654d657461646174610000100114746f74616c1801107531323800010c6f776e1801107531323800013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000390a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676550506f727461626c654578706f73757265506167650000080128706167655f746f74616c180110753132380001186f74686572733d0a01d4426f756e6465645665633c506f727461626c65496e646976696475616c4578706f737572652c20436f6e73745533323c3630303e3e00003d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401410a045300000400450a01185665633c543e0000410a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676568506f727461626c65496e646976696475616c4578706f73757265000008010c77686f00012c4163636f756e744964333200011476616c7565180110753132380000450a000002410a00490a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d6573736167655c506f727461626c65457261526577617264506f696e74730000080114746f74616c10010c753332000128696e646976696475616c4d0a01b8426f756e6465645665633c284163636f756e74496433322c20753332292c20436f6e73745533323c323030303e3e00004d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d06045300000400290601185665633c543e0000510a104870616c6c65745f72635f6d69677261746f721c7374616b696e671c6d65737361676558506f727461626c65556e6170706c696564536c617368000014012476616c696461746f7200012c4163636f756e744964333200010c6f776e180110753132380001186f7468657273550a01b8426f756e6465645665633c284163636f756e74496433322c2075313238292c20436f6e73745533323c3630303e3e0001247265706f7274657273590a0194426f756e6465645665633c4163636f756e74496433322c20436f6e73745533323c31303e3e0001187061796f7574180110753132380000550a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016506045300000400690601185665633c543e0000590a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e00005d0a0000029400610a00000408fd051800650a084870616c6c65745f61685f6d69677261746f72384d6967726174696f6e53746167650001101c50656e64696e6700000050446174614d6967726174696f6e4f6e676f696e67000100344d6967726174696f6e446f6e650002001c436f6f6c4f6666040118656e645f617410010c75333200030000690a0c4870616c6c65745f72635f6d69677261746f721474797065733451756575655072696f72697479042c426c6f636b4e756d6265720110010c18436f6e666967000000384f76657272696465436f6e666967080010012c426c6f636b4e756d626572000010012c426c6f636b4e756d6265720001002044697361626c6564000200006d0a04184f7074696f6e04045401710a0108104e6f6e6500000010536f6d650400710a0000010000710a0c4870616c6c65745f72635f6d69677261746f72147479706573544d6967726174696f6e46696e697368656444617461041c42616c616e636501180004013c72635f62616c616e63655f6b65707418011c42616c616e63650000750a0c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000790a0c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c747d0a01684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d0a0418526573756c7408045401810a044501850a0108084f6b0400810a000000000c4572720400850a0000010000810a0c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874f401384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000850a082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01810a00080124706f73745f696e666f810a0110496e666f0001146572726f7268013444697370617463684572726f720000890a0c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900013038426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e304465706f736974506f6b6564100124626f756e74795f696410012c426f756e7479496e64657800012070726f706f736572000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e000b04804120626f756e7479206465706f73697420686173206265656e20706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d0a0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574910a0c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e6439030130543a3a41737365744b696e6400011072617465a10201244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e6439030130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e6439030130543a3a41737365744b696e6400010c6f6c64a102012446697865645531323800010c6e6577a1020124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574950a0c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465990a01404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f729d0a01204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e990a0c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f000100009d0a0c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10a0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e7404045400015c1c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f7374617465ed050124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f7665640c011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400014072656c65617365645f62616c616e636518013042616c616e63654f663c543e0007149841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e4901416e792066756e6473207468617420617265207374696c6c2064656c6567617465642028692e652e2064616e676c696e672064656c65676174696f6e29206172652072656c656173656420616e642061726588726570726573656e746564206279206072656c65617365645f62616c616e6365602e30526f6c6573557064617465640c0110726f6f74f90201504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572f90201504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72f90201504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e740906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6efd05011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174651106019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e150601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e704d656d626572436c61696d5065726d697373696f6e557064617465640801186d656d626572000130543a3a4163636f756e7449640001287065726d697373696f6e0506013c436c61696d5065726d697373696f6e001204c84120706f6f6c206d656d626572277320636c61696d207065726d697373696f6e20686173206265656e20757064617465642e3c4d657461646174615570646174656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001304784120706f6f6c2773206d657461646174612077617320757064617465642e48506f6f6c4e6f6d696e6174696f6e4d61646508011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e74496400140859014120706f6f6c2773206e6f6d696e6174696e67206163636f756e7420286f722074686520706f6f6c277320726f6f74206163636f756e742920686173206e6f6d696e6174656420612076616c696461746f7220736574586f6e20626568616c66206f662074686520706f6f6c2e50506f6f6c4e6f6d696e61746f724368696c6c656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001504b854686520706f6f6c206973206368696c6c656420692e652e206e6f206c6f6e676572206e6f6d696e6174696e672e4c476c6f62616c506172616d73557064617465641801346d696e5f6a6f696e5f626f6e6418013042616c616e63654f663c543e00013c6d696e5f6372656174655f626f6e6418013042616c616e63654f663c543e0001246d61785f706f6f6c73ed02012c4f7074696f6e3c7533323e00012c6d61785f6d656d62657273ed02012c4f7074696f6e3c7533323e0001506d61785f6d656d626572735f7065725f706f6f6ced02012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e5908013c4f7074696f6e3c50657262696c6c3e0016040101476c6f62616c20706172616d657465727320726567756c6174696e67206e6f6d696e6174696f6e20706f6f6c732068617665206265656e20757064617465642e04584576656e7473206f6620746869732070616c6c65742ea50a0c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a90a0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144576656e740404540001102444656c6567617465640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000047c46756e64732064656c65676174656420627920612064656c656761746f722e2052656c65617365640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001047846756e64732072656c656173656420746f20612064656c656761746f722e1c536c61736865640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002047c46756e647320736c61736865642066726f6d20612064656c656761746f722e484d6967726174656444656c65676174696f6e0c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304c4556e636c61696d65642064656c65676174696f6e2066756e6473206d6967726174656420746f2064656c656761746f722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad0a0c7870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741870616c6c6574144576656e7404045400010c5453657373696f6e5265706f72745265636569766564100124656e645f696e64657810013053657373696f6e496e64657800015061637469766174696f6e5f74696d657374616d70310601484f7074696f6e3c287536342c20753332293e00015c76616c696461746f725f706f696e74735f636f756e747310010c7533320001206c6566746f766572200110626f6f6c0000048c4120736169642073657373696f6e207265706f7274207761732072656365697665642e3c4f6666656e63655265636569766564080134736c6173685f73657373696f6e10013053657373696f6e496e6465780001386f6666656e6365735f636f756e7410010c7533320001046c41206e6577206f6666656e636520776173207265706f727465642e28556e65787065637465640400b10a0138556e65787065637465644b696e640002080d01536f6d657468696e67206f6363757272656420746861742073686f756c64206e657665722068617070656e20756e646572206e6f726d616c206f7065726174696f6e2ebc4c6f6767656420617320616e206576656e7420666f72206661696c2d73616665206f62736572766162696c6974792e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b10a0c7870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741870616c6c657438556e65787065637465644b696e640001187053657373696f6e5265706f7274496e746567726974794661696c65640000006c56616c696461746f72536574496e746567726974794661696c65640001003853657373696f6e536b69707065640002005c53657373696f6e416c726561647950726f6365737365640003005856616c696461746f7253657453656e644661696c65640004004c56616c696461746f7253657444726f7070656400050000b50a0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1870616c6c6574144576656e7404045400010c4450686173655472616e736974696f6e656408011066726f6d4d06012050686173653c543e044074686520736f757263652070686173650108746f4d06012050686173653c543e04405468652074617267657420706861736500085d0141207068617365207472616e736974696f6e2068617070656e65642e204f6e6c7920636865636b73206d616a6f72206368616e67657320696e207468652076617269616e74732c206e6f74206d696e6f7220696e6e65721c76616c7565732e78556e6578706563746564546172676574536e617073686f744661696c65640001047c54617267657420736e617073686f74206372656174696f6e206661696c656474556e6578706563746564566f746572536e617073686f744661696c656400020478566f74657220736e617073686f74206372656174696f6e206661696c6564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b90a149070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c731870616c6c6574144576656e7404045400010c48566572696669636174696f6e4661696c6564080010012450616765496e6465780000bd0a0140466561736962696c6974794572726f72000010a04120766572696669636174696f6e206661696c65642061742074686520676976656e20706167652e0055014e4f54453a2069662074686520696e64657820697320302c207468656e207468697320636f756c64206d65616e206569746865722074686520666561736962696c697479206f6620746865206c617374207061676505017761732077726f6e672c206f72207468652066696e616c20636865636b73206f66206066696e616c697a655f766572696669636174696f6e60206661696c65642e205665726966696564080010012450616765496e646578000010010c753332000108590154686520676976656e2070616765206f66206120736f6c7574696f6e20686173206265656e2076657269666965642c20776974682074686520676976656e206e756d626572206f662077696e6e657273206265696e6730666f756e6420696e2069742e18517565756564080071060134456c656374696f6e53636f72650000c50a01544f7074696f6e3c456c656374696f6e53636f72653e0002041d014120736f6c7574696f6e20776974682074686520676976656e2073636f726520686173207265706c61636564206f75722063757272656e74206265737420736f6c7574696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd0a0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657240466561736962696c6974794572726f7200012c4057726f6e6757696e6e6572436f756e740000004c536e617073686f74556e617661696c61626c650001002c496e76616c6964566f746500020030496e76616c6964566f74657200030034496e76616c696457696e6e657200040030496e76616c696453636f726500050030496e76616c6964526f756e640006002c53636f7265546f6f4c6f77000700504661696c6564546f426f756e64537570706f7274000800304e706f73456c656374696f6e0400c10a016073705f6e706f735f656c656374696f6e733a3a4572726f7200090028496e636f6d706c657465000a0000c10a084473705f6e706f735f656c656374696f6e73144572726f7200012858536f6c7574696f6e5765696768744f766572666c6f7700000058536f6c7574696f6e5461726765744f766572666c6f7700010050536f6c7574696f6e496e76616c6964496e64657800020060536f6c7574696f6e496e76616c696450616765496e6465780003003c41726974686d657469634572726f7200040048496e76616c6964537570706f72744564676500050034546f6f4d616e79566f7465727300060038426f756e64734578636565646564000700384475706c6963617465566f7465720008003c4475706c696361746554617267657400090000c50a04184f7074696f6e0404540171060108104e6f6e6500000010536f6d65040071060000010000c90a109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c6574144576656e7404045400011c28526567697374657265640c0010010c7533320000000130543a3a4163636f756e744964000071060134456c656374696f6e53636f726500000451015570636f6d696e67207375626d697373696f6e20686173206265656e207265676973746572656420666f722074686520676976656e206163636f756e742c20776974682074686520676976656e2073636f72652e1853746f7265640c0010010c7533320000000130543a3a4163636f756e744964000010012450616765496e6465780001045d01412070616765206f6620736f6c7574696f6e20736f6c7574696f6e20776974682074686520676976656e20696e64657820686173206265656e2073746f72656420666f722074686520676976656e206163636f756e742e2052657761726465640c0010010c7533320000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000204e854686520676976656e206163636f756e7420686173206265656e20726577617264656420776974682074686520676976656e20616d6f756e742e1c536c61736865640c0010010c7533320000000130543a3a4163636f756e744964000018013042616c616e63654f663c543e000304e454686520676976656e206163636f756e7420686173206265656e20736c617368656420776974682074686520676976656e20616d6f756e742e1c456a6563746564080010010c7533320000000130543a3a4163636f756e744964000404d454686520676976656e20736f6c7574696f6e2c20666f722074686520676976656e20726f756e642c2077617320656a65637465642e24446973636172646564080010010c7533320000000130543a3a4163636f756e7449640005049454686520676976656e206163636f756e7420686173206265656e206469736361726465642e184261696c6564080010010c7533320000000130543a3a4163636f756e7449640006047454686520676976656e206163636f756e7420686173206261696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd0a105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c6574144576656e740404540001641c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e744964000110646573745d07017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780003081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000410d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00050490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0006085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e345374616b657252656d6f7665640401147374617368000130543a3a4163636f756e7449640007085501412073756273657175656e74206576656e74206f66206057697468647261776e602c20696e6469636174696e6720746861742060737461736860207761732066756c6c792072656d6f7665642066726f6d207468651c73797374656d2e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000804b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e1c4368696c6c65640401147374617368000130543a3a4163636f756e7449640009042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874ed0201304f7074696f6e3c506167653e000a045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e74496400011470726566736107013856616c696461746f725072656673000b0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000c0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000d046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465d10a011c466f7263696e67000e0064436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332000f04a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00100855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e585061676564456c656374696f6e50726f6365656465640801107061676510012450616765496e646578000118726573756c74d50a0140526573756c743c7533322c207533323e00112441014120706167652066726f6d2061206d756c74692d7061676520656c656374696f6e2077617320666574636865642e2041206e756d626572206f662074686573652061726520666f6c6c6f77656420627944605374616b657273456c6563746564602e00f0604f6b28636f756e74296020696e64696361746573207468652067697665206e756d626572206f66207374617368657320776572652061646465642e05016045727228696e646578296020696e64696361746573207468617420746865207374617368657320616674657220696e64657820776572652064726f707065642e4101604572722830296020696e64696361746573207468617420616e206572726f722068617070656e656420627574206e6f207374617368657320776572652064726f70706564206e6f722061646465642e005101546865206572726f7220696e6469636174657320746861742061206e756d626572206f662076616c696461746f727320776572652064726f707065642064756520746f206578636573732073697a652c206275748c746865206f766572616c6c20656c656374696f6e2077696c6c20636f6e74696e75652e3c4f6666656e63655265706f727465640c012c6f6666656e63655f657261100120457261496e64657800012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6efd05011c50657262696c6c0012084d01416e206f6666656e636520666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c206174207468656c676976656e20657261206173206265656e207265706f727465642e34536c617368436f6d707574656410012c6f6666656e63655f657261100120457261496e646578000124736c6173685f657261100120457261496e6465780001206f6666656e646572000130543a3a4163636f756e7449640001107061676510010c7533320013043101416e206f6666656e636520686173206265656e2070726f63657373656420616e642074686520636f72726573706f6e64696e6720736c61736820686173206265656e20636f6d70757465642e38536c61736843616e63656c6c6564080124736c6173685f657261100120457261496e64657800012476616c696461746f72000130543a3a4163636f756e74496400140498416e20756e6170706c69656420736c61736820686173206265656e2063616e63656c6c65642e3853657373696f6e526f74617465640c01407374617274696e675f73657373696f6e10013053657373696f6e496e6465780001286163746976655f657261100120457261496e64657800012c706c616e6e65645f657261100120457261496e6465780015108853657373696f6e206368616e676520686173206265656e207472696767657265642e005901496620706c616e6e65645f657261206973206f6e6520657261206168656164206f66206163746976655f6572612c20697420696d706c696573206e657720657261206973206265696e6720706c616e6e656420616e6450656c656374696f6e206973206f6e676f696e672e28556e65787065637465640400d90a0138556e65787065637465644b696e640016080d01536f6d657468696e67206f6363757272656420746861742073686f756c64206e657665722068617070656e20756e646572206e6f726d616c206f7065726174696f6e2ebc4c6f6767656420617320616e206576656e7420666f72206661696c2d73616665206f62736572766162696c6974792e344f6666656e6365546f6f4f6c640c012c6f6666656e63655f657261100120457261496e64657800012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6efd05011c50657262696c6c0017043d01416e206f6666656e636520776173207265706f7274656420746861742077617320746f6f206f6c6420746f2062652070726f6365737365642c20616e642074687573207761732064726f707065642e244572615072756e6564040114696e646578100120457261496e646578001804ac416e206f6c642065726120776974682074686520676976656e20696e64657820776173207072756e65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d10a085070616c6c65745f7374616b696e675f6173796e631c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000d50a0418526573756c740804540110044501100108084f6b040010000000000c4572720400100000010000d90a105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657438556e65787065637465644b696e64000108604572614475726174696f6e426f756e64457863656564656400000068556e6b6e6f776e56616c696461746f7241637469766174696f6e00010000dd0a0c3470616c6c65745f61685f6f70731870616c6c6574144576656e7404045400010c5c4c65617365556e7265736572766552656d61696e696e670c01246465706f7369746f72000130543a3a4163636f756e74496400011c706172615f6964ad02011850617261496400012472656d61696e696e6718013042616c616e63654f663c543e0000041101536f6d65206c65617365207265736572766520636f756c64206e6f7420626520756e726573657276656420616e64206e65656473206d616e75616c20636c65616e75702e6c43726f77646c6f616e556e7265736572766552656d61696e696e670c01246465706f7369746f72000130543a3a4163636f756e74496400011c706172615f6964ad02011850617261496400012472656d61696e696e6718013042616c616e63654f663c543e0001045501536f6d6520616d6f756e7420666f7220612063726f77646c6f616e207265736572766520636f756c64206e6f7420626520756e726573657276656420616e64206e65656473206d616e75616c20636c65616e75702e44536f7665726569676e4d6967726174656410011c706172615f6964ad02011850617261496404bc5468652070617261636861696e20494420746861742068616420697473206163636f756e74206d696772617465642e011066726f6d000130543a3a4163636f756e74496404a4546865206f6c64206163636f756e74207468617420776173206d69677261746564206f7574206f662e0108746f000130543a3a4163636f756e744964049c546865206e6577206163636f756e74207468617420776173206d6967726174656420696e746f2e014064657269766174696f6e5f696e646578ad05015c4f7074696f6e3c44657269766174696f6e496e6465783e04f85365742069662074686973206163636f756e742077617320646572697665642066726f6d2061207061726120736f7665726569676e206163636f756e742e020825014120736f7665726569676e2070617261636861696e206163636f756e7420686173206265656e206d696772617465642066726f6d20697473206368696c6420746f207369626c696e673c726570726573656e746174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e10a0c4870616c6c65745f61685f6d69677261746f721870616c6c6574144576656e740404540001403c53746167655472616e736974696f6e08010c6f6c64650a01384d6967726174696f6e53746167650490546865206f6c64207374616765206265666f726520746865207472616e736974696f6e2e010c6e6577650a01384d6967726174696f6e5374616765048c546865206e657720737461676520616674657220746865207472616e736974696f6e2e00048041207374616765207472616e736974696f6e20686173206f636375727265642e344261746368526563656976656408011870616c6c6574e50a013c50616c6c65744576656e744e616d65000114636f756e7410010c753332000104190157652072656365697665642061206261746368206f66206d6573736167657320746861742077696c6c20626520696e746567726174656420696e746f20612070616c6c65742e38426174636850726f6365737365640c011870616c6c6574e50a013c50616c6c65744576656e744e616d65000128636f756e745f676f6f6410010c753332000124636f756e745f62616410010c753332000204c457652070726f6365737365642061206261746368206f66206d6573736167657320666f7220746869732070616c6c65742e6041737365744875624d6967726174696f6e53746172746564000318490154686520417373657420487562204d6967726174696f6e207374617274656420616e642069732061637469766520756e74696c206041737365744875624d6967726174696f6e46696e69736865646020697320656d69747465642e00590154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a20446174614d6967726174696f6e4f6e676f696e672c202e2e207d6020627574206973490165617369657220746f20756e6465727374616e642e205468652061637469766174696f6e20697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e6441737365744875624d6967726174696f6e46696e69736865640004148454686520417373657420487562204d6967726174696f6e2066696e69736865642e00590154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a204d6967726174696f6e446f6e652c202e2e207d6020627574206973206561736965722901746f20756e6465727374616e642e205468652066696e697368696e6720697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e4c446d7051756575655072696f726974795365740c012c7072696f726974697a6564200110626f6f6c0ce0496e6469636174657320696620444d5020717565756520776173207375636365737366756c6c7920736574206173207072696f726974792e2d014966206066616c7365602c206974206d65616e7320776527726520696e2074686520726f756e642d726f62696e207068617365206f66206f7572207072696f72697479207061747465726e210128736565205b60436f6e6669673a3a446d7051756575655072696f726974795061747465726e605d292c207768657265206e6f2071756575652067657473207072696f726974792e012c6379636c655f626c6f636b100144426c6f636b4e756d626572466f723c543e04f043757272656e7420626c6f636b206e756d6265722077697468696e20746865207061747465726e206379636c6520283120746f20706572696f64292e01306379636c655f706572696f64100144426c6f636b4e756d626572466f723c543e04ac546f74616c206e756d626572206f6620626c6f636b7320696e20746865207061747465726e206379636c650504e4576865746865722074686520444d5020717565756520776173207072696f726974697a656420666f7220746865206e65787420626c6f636b2e64446d7051756575655072696f72697479436f6e66696753657408010c6f6c64690a018c446d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206f6c64207072696f72697479207061747465726e2e010c6e6577690a018c446d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206e6577207072696f72697479207061747465726e2e06049854686520444d50207175657565207072696f7269747920636f6e66696720776173207365742e5c42616c616e6365734265666f72655265636f7264536574080140636865636b696e675f6163636f756e74180128543a3a42616c616e6365000138746f74616c5f69737375616e6365180128543a3a42616c616e6365000704c05468652062616c616e636573206265666f726520746865206d6967726174696f6e2077657265207265636f726465642e7042616c616e6365734265666f72655265636f7264436f6e73756d6564080140636865636b696e675f6163636f756e74180128543a3a42616c616e6365000138746f74616c5f69737375616e6365180128543a3a42616c616e6365000804c05468652062616c616e636573206265666f726520746865206d6967726174696f6e207765726520636f6e73756d65642e485265666572656e64756d43616e63656c6564040108696410010c753332000904e841207265666572656e64756d207761732063616e63656c6c6564206265636175736520697420636f756c64206e6f74206265206d61707065642e284d616e6167657253657408010c6f6c64f90201504f7074696f6e3c543a3a4163636f756e7449643e046c546865206f6c64206d616e61676572206163636f756e742069642e010c6e6577f90201504f7074696f6e3c543a3a4163636f756e7449643e046c546865206e6577206d616e61676572206163636f756e742069642e0a047c546865206d616e61676572206163636f756e7420696420776173207365742e8c4163636f756e745472616e736c6174656450617261636861696e536f7665726569676e08011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000b00a84163636f756e745472616e736c6174656450617261636861696e536f7665726569676e446572697665640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400014064657269766174696f6e5f696e646578d102010c753136000c001c58636d53656e741001186f726967696e0d0101204c6f636174696f6e00012c64657374696e6174696f6e0d0101204c6f636174696f6e00011c6d6573736167658101011c58636d3c28293e0001286d6573736167655f696404011c58636d48617368000d0460416e2058434d206d657373616765207761732073656e742e804661696c6564546f556e726573657276654d756c74697369674465706f7369740c013c65787065637465645f616d6f756e741801a870616c6c65745f72635f6d69677261746f723a3a6d756c74697369673a3a42616c616e63654f663c543e04190154686520657870656374656420616d6f756e74206f6620746865206465706f73697420746861742077617320657870656374656420746f20626520756e72657365727665642e01386d697373696e675f616d6f756e741801a870616c6c65745f72635f6d69677261746f723a3a6d756c74697369673a3a42616c616e63654f663c543e0488546865206d697373696e6720616d6f756e74206f6620746865206465706f7369742e011c6163636f756e74000130543a3a4163636f756e74496404c4546865206163636f756e74207468617420746865206465706f7369742077617320756e72657365727665642066726f6d2e0e049c4661696c656420746f20756e726573657276652061206d756c7469736967206465706f7369742e804661696c6564546f556e72657365727665507265696d6167654465706f7369740c013c65787065637465645f616d6f756e7418017470616c6c65745f707265696d6167653a3a42616c616e63654f663c543e04190154686520657870656374656420616d6f756e74206f6620746865206465706f73697420746861742077617320657870656374656420746f20626520756e72657365727665642e01386d697373696e675f616d6f756e7418017470616c6c65745f707265696d6167653a3a42616c616e63654f663c543e0488546865206d697373696e6720616d6f756e74206f6620746865206465706f7369742e011c6163636f756e74000130543a3a4163636f756e74496404c4546865206163636f756e74207468617420746865206465706f7369742077617320756e72657365727665642066726f6d2e0f04d44661696c656420746f20756e726573657276652061206c65676163792073746174757320707265696d616765206465706f7369742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e50a084870616c6c65745f61685f6d69677261746f723c50616c6c65744576656e744e616d6500016c284173736574526174657300000020426167734c6973740001002042616c616e63657300020020426f756e74696573000300344368696c64426f756e7469657300040018436c61696d7300050040436f6e76696374696f6e566f74696e670006002443726f77646c6f616e0007004044656c6567617465645374616b696e670008001c496e6469636573000900204d756c7469736967000a00204e6f6d506f6f6c73000b0034507265696d6167654368756e6b000c0050507265696d6167654c6567616379537461747573000d0054507265696d61676552657175657374537461747573000e004850726f7879416e6e6f756e63656d656e7473000f003050726f787950726f78696573001000205265636f76657279001100445265666572656e64614d65746164617461001200505265666572656e64615265666572656e64756d730013003c5265666572656e646156616c756573001400245363686564756c65720015003c5363686564756c65724167656e64610016001c5374616b696e670017002054726561737572790018001c56657374696e670019001c536f6369657479001a0000e90a08306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000ed0a08306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e1d01014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65f10a0144436f773c277374617469632c207374723e0000f10a040c436f7704045401f50a000400f50a000000f50a0000050200f90a08306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000fd0a0c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373010b01845065724469737061746368436c6173733c57656967687473506572436c6173733e0000010b0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401050b000c01186e6f726d616c050b01045400012c6f7065726174696f6e616c050b0104540001246d616e6461746f7279050b0104540000050b0c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963f401384f7074696f6e3c5765696768743e0001246d61785f746f74616cf401384f7074696f6e3c5765696768743e0001207265736572766564f401384f7074696f6e3c5765696768743e0000090b0c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d61780d0b01545065724469737061746368436c6173733c7533323e00000d0b0c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000110b082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000150b082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65f10a0144436f773c277374617469632c207374723e000124696d706c5f6e616d65f10a0144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973190b011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000190b040c436f77040454011d0b0004001d0b0000001d0b000002210b00210b00000408a5011000250b0c306672616d655f73797374656d1870616c6c6574144572726f7204045400012c3c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e2c496e76616c69645461736b0007049054686520737065636966696564205b605461736b605d206973206e6f742076616c69642e284661696c65645461736b000804bc54686520737065636966696564205b605461736b605d206661696c656420647572696e6720657865637574696f6e2e444e6f7468696e67417574686f72697a6564000904584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a6564000a0494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574290b0000022d0b002d0b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e7420416e636573746f720404480134000c0138757365645f62616e647769647468310b01345573656442616e647769647468000138706172615f686561645f68617368b90501244f7074696f6e3c483e000160636f6e73756d65645f676f5f61686561645f7369676e616c450b018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000310b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74345573656442616e64776964746800000c0134756d705f6d73675f636f756e7410010c75333200013c756d705f746f74616c5f627974657310010c75333200013468726d705f6f7574676f696e67350b018c42547265654d61703c5061726149642c2048726d704368616e6e656c5570646174653e0000350b042042547265654d617008044b01ad02045601390b0004003d0b000000390b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e744448726d704368616e6e656c55706461746500000801246d73675f636f756e7410010c75333200012c746f74616c5f627974657310010c75333200003d0b000002410b00410b00000408ad02390b00450b04184f7074696f6e04045401490b0108104e6f6e6500000010536f6d650400490b0000010000490b0c4c706f6c6b61646f745f7072696d6974697665730876383855706772616465476f41686561640001081441626f72740000001c476f4168656164000100004d0b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d48756e696e636c756465645f7365676d656e74385365676d656e74547261636b65720404480134000c0138757365645f62616e647769647468310b01345573656442616e64776964746800013868726d705f77617465726d61726bed0201804f7074696f6e3c72656c61795f636861696e3a3a426c6f636b4e756d6265723e000160636f6e73756d65645f676f5f61686561645f7369676e616c450b018c4f7074696f6e3c72656c61795f636861696e3a3a55706772616465476f41686561643e0000510b04184f7074696f6e04045401550b0108104e6f6e6500000010536f6d650400550b0000010000550b0c4c706f6c6b61646f745f7072696d69746976657308763848557067726164655265737472696374696f6e0001041c50726573656e7400000000590b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f74584d6573736167696e675374617465536e617073686f740000100130646d715f6d71635f6865616434014472656c61795f636861696e3a3a4861736800019c72656c61795f64697370617463685f71756575655f72656d61696e696e675f63617061636974795d0b018c52656c61794469737061746368517565756552656d61696e696e674361706163697479000140696e67726573735f6368616e6e656c73610b01885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00013c6567726573735f6368616e6e656c73610b01885665633c285061726149642c20416272696467656448726d704368616e6e656c293e00005d0b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d5072656c61795f73746174655f736e617073686f748c52656c61794469737061746368517565756552656d61696e696e674361706163697479000008013c72656d61696e696e675f636f756e7410010c75333200013872656d61696e696e675f73697a6510010c7533320000610b000002650b00650b00000408ad02690b00690b0c4c706f6c6b61646f745f7072696d6974697665730876384c416272696467656448726d704368616e6e656c00001801306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164b90501304f7074696f6e3c486173683e00006d0b0c4c706f6c6b61646f745f7072696d697469766573087638644162726964676564486f7374436f6e66696775726174696f6e00002801346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73710b01484173796e634261636b696e67506172616d730000710b104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c7533320000750b089463756d756c75735f7072696d6974697665735f70617261636861696e5f696e686572656e74444d6573736167655175657565436861696e0000040034012452656c6179486173680000790b042042547265654d617008044b01ad02045601750b0004007d0b0000007d0b000002810b00810b00000408ad02750b00850b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d4870617261636861696e5f696e686572656e7440496e626f756e644d6573736167654964000008011c73656e745f617410012c426c6f636b4e756d62657200012c726576657273655f69647810010c7533320000890b0000028d0b008d0b0860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401ad0200080124726563697069656e74ad02010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000910b0c7c63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d1870616c6c6574144572726f720404540001184c4f7665726c617070696e6755706772616465730000041901417474656d707420746f20757067726164652076616c69646174696f6e2066756e6374696f6e207768696c65206578697374696e6720757067726164652070656e64696e672e5050726f686962697465644279506f6c6b61646f740001044d01506f6c6b61646f742063757272656e746c792070726f68696269747320746869732070617261636861696e2066726f6d20757067726164696e67206974732076616c69646174696f6e2066756e6374696f6e2e18546f6f426967000208450154686520737570706c6965642076616c69646174696f6e2066756e6374696f6e2068617320636f6d70696c656420696e746f206120626c6f62206c6172676572207468616e20506f6c6b61646f742069733c77696c6c696e6720746f2072756e2e6856616c69646174696f6e446174614e6f74417661696c61626c650003041d0154686520696e686572656e7420776869636820737570706c696573207468652076616c69646174696f6e206461746120646964206e6f742072756e207468697320626c6f636b2e74486f7374436f6e66696775726174696f6e4e6f74417661696c61626c65000404290154686520696e686572656e7420776869636820737570706c6965732074686520686f737420636f6e66696775726174696f6e20646964206e6f742072756e207468697320626c6f636b2e304e6f745363686564756c6564000504d84e6f2076616c69646174696f6e2066756e6374696f6e20757067726164652069732063757272656e746c79207363686564756c65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e950b083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f73697465060150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974990b01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656eed02012c4f7074696f6e3c7533323e00010000990b04184f7074696f6e0404540165060108104e6f6e6500000010536f6d650400650600000100009d0b083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401a10b01082c556e7265717565737465640801187469636b6574a50b014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574a90b016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656eed02012c4f7074696f6e3c7533323e00010000a10b14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000a50b0000040800a10b00a90b04184f7074696f6e04045401a50b0108104e6f6e6500000010536f6d650400a50b0000010000ad0b00000408341000b10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b50b0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb90b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd0b045300000400c50b01185665633c543e0000bd0b04184f7074696f6e04045401c10b0108104e6f6e6500000010536f6d650400c10b0000010000c10b084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0151032c426c6f636b4e756d62657201103450616c6c6574734f726967696e010505244163636f756e7449640100001401206d617962655f69648801304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c5103011043616c6c0001386d617962655f706572696f646963d10301944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e0505013450616c6c6574734f726967696e0000c50b000002bd0b00c90b0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401f107045300000400f90701185665633c543e0000d10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50b045300000400d90b01185665633c543e0000d50b0c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201a5011c42616c616e63650118000801086964a5010144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000d90b000002d50b00dd0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e10b045300000400f10b01185665633c543e0000e10b14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401e50b1c42616c616e63650118000801086964e50b01084964000118616d6f756e7418011c42616c616e63650000e50b086861737365745f6875625f706f6c6b61646f745f72756e74696d654452756e74696d65486f6c64526561736f6e00011c20507265696d6167650400b507016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0005001c53657373696f6e0400c507016870616c6c65745f73657373696f6e3a3a486f6c64526561736f6e0016002c506f6c6b61646f7458636d0400c907015870616c6c65745f78636d3a3a486f6c64526561736f6e001f00485374617465547269654d6967726174696f6e0400bd07019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e0046004044656c6567617465645374616b696e670400c107019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e005300604d756c7469426c6f636b456c656374696f6e5369676e65640400e90b01e070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a7369676e65643a3a486f6c64526561736f6e0058001c5374616b696e670400ed0b018070616c6c65745f7374616b696e675f6173796e633a3a486f6c64526561736f6e00590000e90b109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c657428486f6c64526561736f6e000104405369676e65645375626d697373696f6e00000000ed0b105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e6700000000f10b000002e10b00f50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f90b045300000400010c01185665633c543e0000f90b14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401fd0b1c42616c616e63650118000801086964fd0b01084964000118616d6f756e7418011c42616c616e63650000fd0b086861737365745f6875625f706f6c6b61646f745f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c730400d107019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e00500000010c000002f90b00050c0c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090c086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100000d0c083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000110c0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e150c105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e00001d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210c045300000400250c01185665633c543e0000210c0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c65743443616e646964617465496e666f08244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650000250c000002210c00290c08346672616d655f737570706f72742050616c6c6574496400000400a501011c5b75383b20385d00002d0c0c6470616c6c65745f636f6c6c61746f725f73656c656374696f6e1870616c6c6574144572726f7204045400014444546f6f4d616e7943616e646964617465730000048c5468652070616c6c65742068617320746f6f206d616e792063616e646964617465732e5c546f6f466577456c696769626c65436f6c6c61746f7273000104ac4c656176696e6720776f756c6420726573756c7420696e20746f6f206665772063616e646964617465732e40416c726561647943616e6469646174650002047c4163636f756e7420697320616c726561647920612063616e6469646174652e304e6f7443616e6469646174650003046c4163636f756e74206973206e6f7420612063616e6469646174652e50546f6f4d616e79496e76756c6e657261626c65730004048454686572652061726520746f6f206d616e7920496e76756c6e657261626c65732e4c416c7265616479496e76756c6e657261626c650005048c4163636f756e7420697320616c726561647920616e20496e76756c6e657261626c652e3c4e6f74496e76756c6e657261626c650006047c4163636f756e74206973206e6f7420616e20496e76756c6e657261626c652e5c4e6f4173736f63696174656456616c696461746f7249640007049c4163636f756e7420686173206e6f206173736f6369617465642076616c696461746f722049442e5856616c696461746f724e6f74526567697374657265640008048c56616c696461746f72204944206973206e6f742079657420726567697374657265642e6c496e73657274546f43616e6469646174654c6973744661696c65640009049c436f756c64206e6f7420696e7365727420696e207468652063616e646964617465206c6973742e7452656d6f766546726f6d43616e6469646174654c6973744661696c6564000a04a4436f756c64206e6f742072656d6f76652066726f6d207468652063616e646964617465206c6973742e344465706f736974546f6f4c6f77000b04f44e6577206465706f73697420616d6f756e7420776f756c642062652062656c6f7720746865206d696e696d756d2063616e64696461637920626f6e642e6455706461746543616e6469646174654c6973744661696c6564000c0490436f756c64206e6f7420757064617465207468652063616e646964617465206c6973742e40496e73756666696369656e74426f6e64000d0429014465706f73697420616d6f756e7420697320746f6f206c6f7720746f2074616b652074686520746172676574277320736c6f7420696e207468652063616e646964617465206c6973742e5054617267657449734e6f7443616e646964617465000e042d0154686520746172676574206163636f756e7420746f206265207265706c6163656420696e207468652063616e646964617465206c697374206973206e6f7420612063616e6469646174652e404964656e746963616c4465706f736974000f040d015468652075706461746564206465706f73697420616d6f756e7420697320657175616c20746f2074686520616d6f756e7420616c72656164792072657365727665642e40496e76616c6964556e726573657276650010043d0143616e6e6f74206c6f7765722063616e64696461637920626f6e64207768696c65206f6363757079696e6720612066757475726520636f6c6c61746f7220736c6f7420696e20746865206c6973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310c000002350c00350c0000040800290400390c0000023d0c003d0c0000040810410c00410c0c2873705f7374616b696e671c6f6666656e63653c4f6666656e6365536576657269747900000400fd05011c50657262696c6c0000450c00000408490c3800490c0c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00004d0c0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e510c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d04045300000400550c01185665633c543e0000550c0000022d0400590c084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400005d0c00000408590c1000610c0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e646564425472656553657408045401ad02045300000400650c012c42547265655365743c543e0000650c0420425472656553657404045401ad02000400690c000000690c000002ad02006d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401710c045300000400790c01185665633c543e0000710c086463756d756c75735f70616c6c65745f78636d705f7175657565584f7574626f756e644368616e6e656c44657461696c730000140124726563697069656e74ad0201185061726149640001147374617465750c01344f7574626f756e6453746174650001347369676e616c735f6578697374200110626f6f6c00012c66697273745f696e646578d102010c7531360001286c6173745f696e646578d102010c7531360000750c086463756d756c75735f70616c6c65745f78636d705f7175657565344f7574626f756e645374617465000108084f6b0000002453757370656e64656400010000790c000002710c007d0c00000408ad02d10200810c0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401080453000004003801185665633c543e0000850c086463756d756c75735f70616c6c65745f78636d705f71756575653c5175657565436f6e6669674461746100000c014473757370656e645f7468726573686f6c6410010c75333200013864726f705f7468726573686f6c6410010c753332000140726573756d655f7468726573686f6c6410010c7533320000890c0c6463756d756c75735f70616c6c65745f78636d705f71756575651870616c6c6574144572726f72040454000114384261645175657565436f6e666967000004110153657474696e672074686520717565756520636f6e666967206661696c65642073696e6365206f6e65206f66206974732076616c7565732077617320696e76616c69642e40416c726561647953757370656e6465640001048c54686520657865637574696f6e20697320616c72656164792073757370656e6465642e38416c7265616479526573756d65640002048454686520657865637574696f6e20697320616c726561647920726573756d65642e74546f6f4d616e794163746976654f7574626f756e644368616e6e656c73000304b054686572652061726520746f6f206d616e7920616374697665206f7574626f756e64206368616e6e656c732e18546f6f4269670004045c546865206d65737361676520697320746f6f206269672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0c0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e6465729102014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572910c01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679950c01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696e9102014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e73659d0c014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000910c04184f7074696f6e0404540191020108104e6f6e6500000010536f6d65040091020000010000950c04184f7074696f6e04045401990c0108104e6f6e6500000010536f6d650400990c0000010000990c000004080808009d0c080c78636d4456657273696f6e6564526573706f6e736500010c08563304004904013076333a3a526573706f6e736500030008563404008904013076343a3a526573706f6e73650004000856350400ad01013076353a3a526573706f6e736500050000a10c0000040810910200a50c0000040c30281000a90c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad0c045300000400b10c01185665633c543e0000ad0c0000040891021000b10c000002ad0c00b50c0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400b90c013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000b90c04184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000bd0c0000040c1000e10400c10c0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e746966696572019c304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e65729102014456657273696f6e65644c6f636174696f6e0001186c6f636b65729102014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273c50c01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000c50c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c90c045300000400cd0c01185665633c543e0000c90c000004089c1800cd0c000002c90c00d10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d50c045300000400d90c01185665633c543e0000d50c0000040818910200d90c000002d50c00dd0c082870616c6c65745f78636d58417574686f72697a6564416c6961736573456e74727908185469636b657401e10c0c4d415801e50c00080120616c696173657273e90c0178426f756e6465645665633c4f726967696e416c69617365722c204d41583e0001187469636b6574e10c01185469636b65740000e10c14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000e50c0c2870616c6c65745f78636d1870616c6c6574504d6178417574686f72697a6564416c696173657300000000e90c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed0c045300000400f10c01185665633c543e0000ed0c0c4078636d5f72756e74696d655f6170697348617574686f72697a65645f616c6961736573344f726967696e416c696173657200000801206c6f636174696f6e9102014456657273696f6e65644c6f636174696f6e0001186578706972799502012c4f7074696f6e3c7536343e0000f10c000002ed0c00f50c0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001702c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e60546f6f4d616e79417574686f72697a6564416c6961736573001904b8546f6f206d616e79206c6f636174696f6e7320617574686f72697a656420746f20616c696173206f726967696e2e3445787069726573496e50617374001a048c45787069727920626c6f636b206e756d62657220697320696e2074686520706173742e34416c6961734e6f74466f756e64001b04d054686520616c69617320746f2072656d6f766520617574686f72697a6174696f6e20666f7220776173206e6f7420666f756e642e844c6f63616c457865637574696f6e496e636f6d706c657465576974684572726f72080114696e646578080140496e737472756374696f6e496e6465780001146572726f72f90c0138457865637574696f6e4572726f72001c0835014c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652077697468207468652061637475616c2058434d206572726f7220616e642074686520696e646578206f662074686588696e737472756374696f6e20746861742063617573656420746865206572726f722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef90c0c2870616c6c65745f78636d186572726f727338457865637574696f6e4572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d6974526561636865640025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d697400280000fd0c086062705f78636d5f6272696467655f6875625f726f757465722c4272696467655374617465000008014c64656c69766572795f6665655f666163746f72a102012446697865645531323800013069735f636f6e676573746564200110626f6f6c0000010d085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01a90200180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273050d01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000050d04184f7074696f6e04045401090d0108104e6f6e6500000010536f6d650400090d0000010000090d085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01a9020008011070726576a90201344d6573736167654f726967696e0001106e657874a90201344d6573736167654f726967696e00000d0d00000408a9021000110d085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170150d019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000150d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000190d0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0d0c84736e6f776272696467655f70616c6c65745f73797374656d5f66726f6e74656e641870616c6c6574144572726f7204045400013468556e737570706f727465644c6f636174696f6e56657273696f6e00000488436f6e766572742076657273696f6e6564206c6f636174696f6e206661696c75726544496e76616c696441737365744f776e65720001041901436865636b206c6f636174696f6e206661696c7572652c2073686f756c642073746172742066726f6d20746865206469737061746368206f726967696e206173206f776e65722c53656e644661696c7572650002046053656e642078636d206d657373616765206661696c75726528466565734e6f744d657400030468576974686472617720666565206173736574206661696c757265604c6f636174696f6e436f6e76657273696f6e4661696c656400040498436f6e7665727420746f207265616e63686f726564206c6f636174696f6e206661696c7572651848616c746564000504604d657373616765206578706f72742069732068616c7465642c556e726561636861626c650006085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e40556e737570706f727465644173736574000704b85468652061737365742070726f766964656420666f72207468652074697020697320756e737570706f727465642e3457697468647261774572726f7200080464556e61626c6520746f2077697468647261772061737365742e38496e76616c69644163636f756e74000904b44163636f756e7420636f756c64206e6f7420626520636f6e76657274656420746f2061206c6f636174696f6e2e24537761704572726f72000a04c850726f76696465642074697020617373657420636f756c64206e6f74206265207377617070656420666f722065746865722e244275726e4572726f72000b0468457468657220636f756c64206e6f74206265206275726e65642e34546970416d6f756e745a65726f000c0464546865207469702070726f7669646564206973207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210d0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e250d00000408000400290d083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656ec502015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c732d0d018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e00002d0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000310d0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350d00000408390d1800390d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d0d045300000400410d01185665633c543e00003d0d083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f78795479706501cd022c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f74797065cd02012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000410d0000023d0d00450d00000408490d1800490d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d0d045300000400510d01185665633c543e00004d0d083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000510d0000024d0d00550d0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590d0000040c001820005d0d0c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e610d0c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74200110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c753332000118737461747573650d012c41737365745374617475730000650d0c3470616c6c65745f6173736574731474797065732c417373657453746174757300010c104c6976650000001846726f7a656e0001002844657374726f79696e6700020000690d000004081000006d0d0c3470616c6c65745f6173736574731474797065733041737365744163636f756e74101c42616c616e63650118384465706f73697442616c616e63650118144578747261019c244163636f756e74496401000010011c62616c616e636518011c42616c616e6365000118737461747573710d01344163636f756e74537461747573000118726561736f6e750d01a84578697374656e6365526561736f6e3c4465706f73697442616c616e63652c204163636f756e7449643e00011465787472619c011445787472610000710d0c3470616c6c65745f617373657473147479706573344163636f756e7453746174757300010c184c69717569640000001846726f7a656e0001001c426c6f636b656400020000750d0c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e081c42616c616e63650118244163636f756e7449640100011420436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e6465640003002c4465706f73697446726f6d08000001244163636f756e744964000018011c42616c616e636500040000790d0000040c100000007d0d0c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e63650000810d0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701850d0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65850d0134426f756e646564537472696e6700011873796d626f6c850d0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000850d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000890d0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0d0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67200110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e200110626f6f6c0000910d0000040c00101000950d0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564f90201444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e200110626f6f6c00011c6465706f7369741801384465706f73697442616c616e63650000990d0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461e502016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c00009d0d0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461e502016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000a10d0000040c10ed02f10200a50d00000408f5021800a90d0000040818f90200ad0d0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000158304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e284e6f4d65746164617461001204544e6f206d6574616461746120697320666f756e642e3457726f6e674d65746164617461001304a057726f6e67206d65746164617461206b65792f76616c756520627974657320737570706c6965642e444174747269627574654e6f74466f756e6400140468416e20617474726962757465206973206e6f7420666f756e642e3857726f6e67417474726962757465001504a457726f6e6720617474726962757465206b65792f76616c756520627974657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10d0c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000b50d0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401b90d000400080138436f6c6c656374696f6e526f6c650000b90d0c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000bd0d0c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401c10d24417070726f76616c7301c50d000c01146f776e65720001244163636f756e744964000124617070726f76616c73c50d0124417070726f76616c7300011c6465706f736974c10d011c4465706f7369740000c10d0c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000c50d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0100045601ed02045300000400c90d013842547265654d61703c4b2c20563e0000c90d042042547265654d617008044b0100045601ed02000400cd0d000000cd0d000002d10d00d10d0000040800ed0200d50d0c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f736974000110646174610103016c426f756e6465645665633c75382c20537472696e674c696d69743e0000d90d0c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401dd0d2c537472696e674c696d6974000008011c6465706f736974dd0d011c4465706f736974000110646174610103016c426f756e6465645665633c75382c20537472696e674c696d69743e0000dd0d0c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74f90201444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000e10d0000041010ed020503f50200e50d000004080103e90d00e90d0c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74f90201444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000ed0d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f10d012c42547265655365743c543e0000f10d0420425472656553657404045401000004006501000000f50d0c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e010d0320446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656ded0201384f7074696f6e3c4974656d49643e0001147072696365090301784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000f90d0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401fd0d00040030013450616c6c6574466561747572650000fd0d0c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000010e0c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050e000004080d010000090e0000040c0d010000000d0e0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701110e0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65110e0134426f756e646564537472696e6700011873796d626f6c110e0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000110e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000150e0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190e0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e67011d0e0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d651d0e0134426f756e646564537472696e6700011873796d626f6c1d0e0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c00001d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000210e0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e250e0c5c70616c6c65745f61737365745f636f6e76657273696f6e14747970657320506f6f6c496e666f042c506f6f6c417373657449640110000401206c705f746f6b656e10012c506f6f6c417373657449640000290e0c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144572726f7204045400015c40496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e28506f6f6c45786973747300010450506f6f6c20616c7265616479206578697374732e4857726f6e6744657369726564416d6f756e74000204744465736972656420616d6f756e742063616e2774206265207a65726f2e60416d6f756e744f6e654c6573735468616e4d696e696d616c000308490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e60416d6f756e7454776f4c6573735468616e4d696e696d616c000408490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e68526573657276654c6566744c6573735468616e4d696e696d616c0005084d0152657365727665206e6565647320746f20616c776179732062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e40416d6f756e744f7574546f6f48696768000604c84465736972656420616d6f756e742063616e277420626520657175616c20746f2074686520706f6f6c20726573657276652e30506f6f6c4e6f74466f756e640007045c54686520706f6f6c20646f65736e27742065786973742e204f766572666c6f7700080454416e206f766572666c6f772068617070656e65642e8041737365744f6e654465706f7369744469644e6f744d6565744d696e696d756d0009042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e80417373657454776f4465706f7369744469644e6f744d6565744d696e696d756d000a042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e8c41737365744f6e655769746864726177616c4469644e6f744d6565744d696e696d756d000b042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e8c417373657454776f5769746864726177616c4469644e6f744d6565744d696e696d756d000c042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e704f7074696d616c416d6f756e744c6573735468616e44657369726564000d04bc4f7074696d616c2063616c63756c6174656420616d6f756e74206973206c657373207468616e20646573697265642e6c496e73756666696369656e744c69717569646974794d696e746564000e0478496e73756666696369656e74206c6971756964697479206d696e7465642e345a65726f4c6971756964697479000f0488526571756573746564206c69717569646974792063616e2774206265207a65726f2e285a65726f416d6f756e7400100454416d6f756e742063616e2774206265207a65726f2e8c50726f76696465644d696e696d756d4e6f7453756666696369656e74466f7253776170001104ec43616c63756c6174656420616d6f756e74206f7574206973206c657373207468616e2070726f7669646564206d696e696d756d20616d6f756e742e8c50726f76696465644d6178696d756d4e6f7453756666696369656e74466f7253776170001204cc50726f7669646564206d6178696d756d20616d6f756e74206973206e6f742073756666696369656e7420666f7220737761702e2c496e76616c696450617468001304d45468652070726f76696465642070617468206d75737420636f6e7369737473206f66203220617373657473206174206c656173742e344e6f6e556e6971756550617468001404c45468652070726f76696465642070617468206d75737420636f6e7369737473206f6620756e69717565206173736574732e50496e636f7272656374506f6f6c41737365744964001504ec497420776173206e6f7420706f737369626c6520746f20676574206f7220696e6372656d656e7420746865204964206f662074686520706f6f6c2e3042656c6f774d696e696d756d001604f05468652064657374696e6174696f6e206163636f756e742063616e6e6f7420657869737420776974682074686520737761707065642066756e64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e2d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400e90201185665633c543e0000310e083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401390330417373657442616c616e636501182c42656e6566696369617279013d032c426c6f636b4e756d6265720110245061796d656e74496401300018012861737365745f6b696e643903012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e65666963696172793d03012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573350e015c5061796d656e7453746174653c5061796d656e7449643e0000350e083c70616c6c65745f7472656173757279305061796d656e745374617465040849640130010c1c50656e64696e6700000024417474656d7074656404010869643001084964000100184661696c656400020000390e0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e3d0e0000040800d10200410e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400450e01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400710901ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000450e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573490e01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e736909015044656c65676174696f6e733c42616c616e63653e0001147072696f726d09017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000490e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016109045300000400650901185665633c543e00004d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017909045300000400750901185665633c543e0000510e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550e0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b496401d1023452756e74696d654f726967696e010505184d6f6d656e7401101043616c6c0151031c42616c616e636501181454616c6c7901ed08244163636f756e74496401003c5363686564756c6541646472657373019401181c4f6e676f696e670400590e018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000590e0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b496401d1023452756e74696d654f726967696e010505184d6f6d656e7401101043616c6c0151031c42616c616e636501181454616c6c7901ed08244163636f756e74496401003c5363686564756c65416464726573730194002c0114747261636bd102011c547261636b49640001186f726967696e0505013452756e74696d654f726967696e00012070726f706f73616c5103011043616c6c000124656e6163746d656e74b5050150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974f508016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974f908018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67fd0801784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79ed08011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d050901844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e00005d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540171080453000004006d0801185665633c543e0000610e000002650e00650e00000408d102690e00690e0c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501f50a002401106e616d65f50a01104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c6d0e0114437572766500012c6d696e5f737570706f72746d0e0114437572766500006d0e0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468fd05011c50657262696c6c000114666c6f6f72fd05011c50657262696c6c0001106365696cfd05011c50657262696c6c000000445374657070656444656372656173696e67100114626567696efd05011c50657262696c6c00010c656e64fd05011c50657262696c6c00011073746570fd05011c50657262696c6c000118706572696f64fd05011c50657262696c6c000100285265636970726f63616c0c0118666163746f72710e01204669786564493634000120785f6f6666736574710e01204669786564493634000120795f6f6666736574710e0120466978656449363400020000710e0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400750e010c6936340000750e0000050c00790e0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0e0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810e083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e636500011873746174757391090190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000850e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000890e0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e2c4e6f7450726f706f736572000b049c55736572206973206e6f74207468652070726f706f736572206f662074686520626f756e74792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0e085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573910e01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000910e085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000950e0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990e0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e9d0e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e746572a1020140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000a10e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261a50e0134556e626f6e64506f6f6c3c543e000120776974685f657261a90e010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000a50e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000a90e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601a50e045300000400ad0e013842547265654d61703c4b2c20563e0000ad0e042042547265654d617008044b0110045601a50e000400b10e000000b10e000002b50e00b50e0000040810a50e00b90e0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019830506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400bd0e0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e2c536c617368546f6f4c6f77002104a854686520736c61736820616d6f756e7420697320746f6f206c6f7720746f206265206170706c6965642e3c416c72656164794d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002304150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002404f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e285265737472696374656400250851014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e20706f6f6c732e2054686973206d61792068617070656e20696620746865206163636f756e742069737c7374616b696e6720696e20616e6f746865722077617920616c72656164792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd0e0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c69656400060000c10e0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576f90201504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874f90201504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000c50e0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164f90201504f7074696f6e3c543a3a4163636f756e7449643e0001107461696cf90201504f7074696f6e3c543a3a4163636f756e7449643e0000c90e0000023000cd0e0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000108104c6973740400d10e01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e184c6f636b6564000104d8436f756c64206e6f74207570646174652061206e6f64652c2062656361757365207468652070616c6c6574206973206c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10e0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000114244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e64000300184c6f636b656400040000d50e0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732844656c65676174696f6e04045400000801146167656e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000d90e0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732c4167656e744c656467657204045400001001147061796565000130543a3a4163636f756e74496400013c746f74616c5f64656c6567617465642d01013042616c616e63654f663c543e000154756e636c61696d65645f7769746864726177616c732d01013042616c616e63654f663c543e00013470656e64696e675f736c6173682d01013042616c616e63654f663c543e0000dd0e0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144572726f72040454000130284e6f74416c6c6f776564000004a8546865206163636f756e742063616e6e6f7420706572666f726d2074686973206f7065726174696f6e2e38416c72656164795374616b696e67000104b8416e206578697374696e67207374616b65722063616e6e6f7420706572666f726d207468697320616374696f6e2e60496e76616c696452657761726444657374696e6174696f6e000204d45265776172642044657374696e6174696f6e2063616e6e6f742062652073616d6520617320604167656e7460206163636f756e742e44496e76616c696444656c65676174696f6e0003148844656c65676174696f6e20636f6e646974696f6e7320617265206e6f74206d65742e004c506f737369626c6520697373756573206172656c31292043616e6e6f742064656c656761746520746f2073656c662ca432292043616e6e6f742064656c656761746520746f206d756c7469706c652064656c6567617465732e384e6f74456e6f75676846756e64730004040101546865206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20706572666f726d20746865206f7065726174696f6e2e204e6f744167656e74000504804e6f7420616e206578697374696e6720604167656e7460206163636f756e742e304e6f7444656c656761746f72000604604e6f7420612044656c656761746f72206163636f756e742e20426164537461746500070488536f6d6520636f7272757074696f6e20696e20696e7465726e616c2073746174652e38556e6170706c696564536c617368000804dc556e6170706c6965642070656e64696e6720736c61736820726573747269637473206f7065726174696f6e206f6e20604167656e74602e384e6f7468696e67546f536c617368000904ac604167656e746020686173206e6f2070656e64696e6720736c61736820746f206265206170706c6965642e3857697468647261774661696c6564000a04b04661696c656420746f20776974686472617720616d6f756e742066726f6d20436f7265205374616b696e672e304e6f74537570706f72746564000b049c4f7065726174696f6e206e6f7420737570706f7274656420627920746869732070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10e00000408e50e1000e50e087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e744856616c696461746f725365745265706f727404244163636f756e7449640100001001446e65775f76616c696461746f725f736574650101385665633c4163636f756e7449643e000108696410010c75333200012c7072756e655f75705f746fed0201504f7074696f6e3c53657373696f6e496e6465783e0001206c6566746f766572200110626f6f6c0000e90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed0e045300000400f50e01185665633c543e0000ed0e0000040c0030f10e00f10e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000f50e000002ed0e00f90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400650101185665633c543e0000fd0e0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b1870616c6c6574144572726f7204045400010c2046616c6c6261636b0000048454726967676572696e6720746865206046616c6c6261636b60206661696c65642e3c556e6578706563746564506861736500010440556e657870656374656420706861736520536e617073686f7400020464536e617073686f742077617320756e617661696c61626c652e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e010f109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c733456616c6964536f6c7574696f6e0001080458000000045900010000050f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401090f045300000400110f01185665633c543e0000090f00000408000d0f000d0f109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c733c5061727469616c4261636b696e67730000080114746f74616c18013c457874656e64656442616c616e636500011c6261636b65727310010c7533320000110f000002090f00150f109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b20766572696669657214696d706c73185374617475730001081c4f6e676f696e67040010012450616765496e6465780000001c4e6f7468696e6700010000190f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0f045300000400210f01185665633c543e00001d0f0000040800710600210f0000021d0f00250f0000040c10001000290f0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e6564485375626d697373696f6e4d65746164617461040454000014011c6465706f73697418013042616c616e63654f663c543e00010c66656518013042616c616e63654f663c543e00011872657761726418013042616c616e63654f663c543e000134636c61696d65645f73636f726571060134456c656374696f6e53636f726500011470616765732d0f0168426f756e6465645665633c626f6f6c2c20543a3a50616765733e00002d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540120045300000400310f01185665633c543e0000310f0000022000350f109070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b187369676e65641870616c6c6574144572726f720404540001243850686173654e6f745369676e656400000460546865207068617365206973206e6f74207369676e65642e244475706c696361746500010478546865207375626d697373696f6e2069732061206475706c69636174652e24517565756546756c6c000204485468652071756575652069732066756c6c2e3042616450616765496e64657800030480546865207061676520696e646578206973206f7574206f6620626f756e64732e344e6f745265676973746572656400040478546865206163636f756e74206973206e6f7420726567697374657265642e304e6f5375626d697373696f6e000504504e6f207375626d697373696f6e20666f756e642e30526f756e644e6f744f76657200060458526f756e64206973206e6f7420796574206f7665722e384261645769746e6573734461746100070468426164207769746e65737320646174612070726f76696465642e50546f6f4d616e79496e76756c6e657261626c6573000804b0546f6f206d616e7920696e76756c6e657261626c65206163636f756e7473206172652070726f76696465642c048054686520604572726f726020656e756d206f6620746869732070616c6c65742e390f0c5070616c6c65745f7374616b696e675f6173796e63186c6564676572345374616b696e674c656467657204045400001001147374617368000130543a3a4163636f756e744964000114746f74616c2d01013042616c616e63654f663c543e0001186163746976652d01013042616c616e63654f663c543e000124756e6c6f636b696e67910701f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e00003d0f085070616c6c65745f7374616b696e675f6173796e632c4e6f6d696e6174696f6e7304045400000c011c74617267657473f10e01b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000410f085070616c6c65745f7374616b696e675f6173796e6334416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172749502012c4f7074696f6e3c7536343e0000450f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401940453000004005d0a01185665633c543e0000490f082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616c2d01011c42616c616e636500010c6f776e2d01011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e741001105061676500004d0f105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c65744c426f756e6465644578706f737572655061676504045400000400510f01a04578706f73757265506167653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e0000510f082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616c2d01011c42616c616e63650001186f7468657273550f01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000550f000002590f00590f082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75652d01011c42616c616e636500005d0f0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540110045300000400e90201185665633c543e0000610f085070616c6c65745f7374616b696e675f6173796e633c457261526577617264506f696e74730404540000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c650f01f8426f756e64656442547265654d61703c543a3a4163636f756e7449642c20526577617264506f696e742c20543a3a4d617856616c696461746f725365743e0000650f0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b010004560110045300000400690f013842547265654d61703c4b2c20563e0000690f042042547265654d617008044b01000456011000040029060000006d0f0c5070616c6c65745f7374616b696e675f6173796e6320736c617368696e67344f6666656e63655265636f726404244163636f756e7449640100001401207265706f72746572f90201444f7074696f6e3c4163636f756e7449643e0001307265706f727465645f657261100120457261496e6465780001346578706f737572655f7061676510010c753332000138736c6173685f6672616374696f6efd05011c50657262696c6c0001507072696f725f736c6173685f6672616374696f6efd05011c50657262696c6c0000710f0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540110045300000400e90201185665633c543e0000750f0000040c10006d0f00790f00000408109d07007d0f085070616c6c65745f7374616b696e675f6173796e6338556e6170706c696564536c617368040454000014012476616c696461746f72000130543a3a4163636f756e74496400010c6f776e18013042616c616e63654f663c543e0001186f7468657273810f0111015765616b426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a4d61784578706f737572655061676553697a653e0001207265706f72746572f90201504f7074696f6e3c543a3a4163636f756e7449643e0001187061796f757418013042616c616e63654f663c543e0000810f0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454016506045300000400690601185665633c543e0000850f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017507045300000400710701185665633c543e0000890f085070616c6c65745f7374616b696e675f6173796e6338536e617073686f7453746174757304244163636f756e7449640100010c1c4f6e676f696e6704000001244163636f756e74496400000020436f6e73756d65640001001c57616974696e67000200008d0f0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400f10d012c42547265655365743c543e0000910f105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c65742c5072756e696e675374657000011c40457261735374616b65727350616765640000004c457261735374616b6572734f76657276696577000100484572617356616c696461746f72507265667300020038436c61696d6564526577617264730003004c4572617356616c696461746f725265776172640004004045726173526577617264506f696e74730005003845726173546f74616c5374616b6500060000950f105070616c6c65745f7374616b696e675f6173796e631870616c6c65741870616c6c6574144572726f72040454000190344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e48496e76616c6964536c6173685265636f72640006045c536c617368207265636f7264206e6f7420666f756e642e40496e73756666696369656e74426f6e6400070c350143616e6e6f7420626f6e642c206e6f6d696e617465206f722076616c696461746520776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e38416c7265616479436c61696d6564000d0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000e04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468000f04c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e2042616453746174650010043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300110494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740012043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001304550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730014084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001508550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001604e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400170458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001804010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c65646765720019045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001a04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001b049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001c04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001d04f4537461736820636f756c64206e6f7420626520726561706564206173206f746865722070616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d69677261746564001e040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e344572614e6f7453746172746564001f0450457261206e6f742079657420737461727465642e285265737472696374656400200859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e74556e6170706c696564536c6173686573496e50726576696f75734572610021082d01556e6170706c69656420736c617368657320696e2074686520726563656e746c7920636f6e636c756465642065726120697320626c6f636b696e672074686973206f7065726174696f6e2e98536565206043616c6c3a3a6170706c795f736c6173686020746f206170706c79207468656d2e384572614e6f745072756e61626c650022049054686520657261206973206e6f7420656c696769626c6520666f72207072756e696e672e3843616e63656c6c6564536c617368002304cc54686520736c61736820686173206265656e2063616e63656c6c656420616e642063616e6e6f74206265206170706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990f0000040c10ad0200009d0f0c3470616c6c65745f61685f6f70731870616c6c6574144572726f7204045400012c384e6f4c6561736552657365727665000004b8456974686572206e6f206c65617365206465706f736974206f7220616c726561647920756e72657365727665642e5c4e6f43726f77646c6f616e436f6e747269627574696f6e000104d8456974686572206e6f2063726f77646c6f616e20636f6e747269627574696f6e206f7220616c72656164792077697468647261776e2e484e6f43726f77646c6f616e52657365727665000204c8456974686572206e6f2063726f77646c6f616e2072657365727665206f7220616c726561647920756e72657365727665642e944661696c6564546f576974686472617743726f77646c6f616e436f6e747269627574696f6e000304a84661696c656420746f2077697468647261772063726f77646c6f616e20636f6e747269627574696f6e2e184e6f7459657400040480426c6f636b206e756d626572206973206e6f742079657420726561636865642e58436f6e747269627574696f6e7352656d61696e696e67000504904e6f7420616c6c20636f6e747269627574696f6e73206172652077697468647261776e2e5c57726f6e67446572697665645472616e736c6174696f6e00060494546865206163636f756e74206973206e6f7420612064657269766564206163636f756e742e304e6f74536f7665726569676e00070425014163636f756e742063616e6e6f74206265206d696772617465642073696e6365206974206973206e6f74206120736f7665726569676e2070617261636861696e206163636f756e742e34496e7465726e616c4572726f7200080488496e7465726e616c206572726f722c20706c6561736520627567207265706f72742e544d6967726174696f6e4e6f74436f6d706c65746564000904a454686520417373657420487562206d6967726174696f6e206973206e6f7420636f6d706c657465642e2c5a65726f42616c616e6365000a04505468652062616c616e6365206973207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10f084870616c6c65745f61685f6d69677261746f723842616c616e6365734265666f7265041c42616c616e6365011800080140636865636b696e675f6163636f756e7418011c42616c616e6365000138746f74616c5f69737375616e636518011c42616c616e63650000a50f0c4870616c6c65745f61685f6d69677261746f721870616c6c6574144572726f7204045400014c604661696c6564546f556e726573657276654465706f736974000004704661696c656420746f20756e72657365727665206465706f7369742e584661696c6564546f50726f636573734163636f756e74000104a84661696c656420746f2070726f6365737320616e206163636f756e7420646174612066726f6d2052432e38496e73657274436f6e666c696374000204e8536f6d65206974656d20636f756c64206e6f7420626520696e736572746564206265636175736520697420616c7265616479206578697374732e4c4661696c6564546f436f6e7665727454797065000304944661696c656420746f20636f6e76657274205243207479706520746f20414820747970652e40507265696d6167654e6f74466f756e64000404644661696c656420746f20666574636820707265696d6167652e4c4661696c6564546f436f6e7665727443616c6c000504944661696c656420746f20636f6e766572742052432063616c6c20746f2041482063616c6c2e444661696c6564546f426f756e6443616c6c0006045c4661696c656420746f20626f756e6420612063616c6c2e2058636d4572726f720007046c4661696c656420746f2073656e642058434d206d6573736167652e804661696c6564546f496e7465677261746556657374696e675363686564756c650008049c4661696c656420746f20696e7465677261746520612076657374696e67207363686564756c652e804661696c6564546f43616c63756c617465436865636b696e674163636f756e740009049c436865636b696e67206163636f756e74206f766572666c6f77206f7220756e646572666c6f772e4c4661696c6564546f426f756e64566563746f72000a04bc566563746f7220646964206e6f742066697420696e746f2069747320636f6d70696c652d74696d6520626f756e642e68446d7051756575655072696f72697479416c7265616479536574000b04e054686520444d50207175657565207072696f7269747920697320616c72656164792073657420746f207468652073616d652076616c75652e40496e76616c6964506172616d65746572000c0448496e76616c696420706172616d657465722e3c507265696d6167654d697373696e67000d0444507265696d616765206d697373696e672e38507265696d616765546f6f426967000e0444507265696d61676520746f6f206269672e50507265696d6167654368756e6b4d697373696e67000f045c507265696d616765206368756e6b206d697373696e672e54507265696d616765537461747573496e76616c696400100460507265696d6167652073746174757320696e76616c69642e3442616458636d56657273696f6e0011046c5468652058434d2076657273696f6e20697320696e76616c69642e34496e76616c69644f726967696e00120458546865206f726967696e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90f00000424ad0fb10fb50fb90fbd0fc50fc90fcd0fd10f00ad0f10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000b10f10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000b50f10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000b90f10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000bd0f10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400c10f010c4572610000c10f102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000c50f10306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e6365040454000004001d010120543a3a4e6f6e63650000c90f10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000cd0f088870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e7450436861726765417373657454785061796d656e74040454000008010c7469702d01013042616c616e63654f663c543e00012061737365745f6964d10101484f7074696f6e3c543a3a417373657449643e0000d10f08746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465d50f01104d6f64650000d50f08746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000d90f086861737365745f6875625f706f6c6b61646f745f72756e74696d651c52756e74696d6500000000dd0f084873705f636f6e73656e7375735f736c6f747330536c6f744475726174696f6e0000040030010c7536340000e10f102873705f72756e74696d651c67656e6572696314626c6f636b14426c6f636b08184865616465720185032445787472696e73696301e50f000801186865616465728503011848656164657200012865787472696e73696373e90f01385665633c45787472696e7369633e0000e50f102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301f1031043616c6c015503245369676e617475726501850514457874726101a90f00040038000000e90f000002e50f00ed0f082873705f72756e74696d655845787472696e736963496e636c7573696f6e4d6f646500010834416c6c45787472696e73696373000000344f6e6c79496e686572656e747300010000f10f081c73705f636f7265384f70617175654d657461646174610000040038011c5665633c75383e0000f50f04184f7074696f6e04045401f10f0108104e6f6e6500000010536f6d650400f10f0000010000f90f0418526573756c740804540198044501fd0f0108084f6b040098000000000c4572720400fd0f0000010000fd0f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479605472616e73616374696f6e56616c69646974794572726f720001081c496e76616c6964040001100148496e76616c69645472616e73616374696f6e0000001c556e6b6e6f776e040005100148556e6b6e6f776e5472616e73616374696f6e0001000001100c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948496e76616c69645472616e73616374696f6e0001341043616c6c0000001c5061796d656e7400010018467574757265000200145374616c650003002042616450726f6f6600040044416e6369656e744269727468426c6f636b0005004445786861757374735265736f757263657300060018437573746f6d04000801087538000700304261644d616e6461746f72790008004c4d616e6461746f727956616c69646174696f6e000900244261645369676e6572000a0054496e64657465726d696e617465496d706c69636974000b0034556e6b6e6f776e4f726967696e000c000005100c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948556e6b6e6f776e5472616e73616374696f6e00010c3043616e6e6f744c6f6f6b75700000004c4e6f556e7369676e656456616c696461746f7200010018437573746f6d04000801087538000200000910083073705f696e686572656e747330496e686572656e74446174610000040110646174610d10019442547265654d61703c496e686572656e744964656e7469666965722c205665633c75383e3e00000d10042042547265654d617008044b01a5010456013800040011100000001110000002151000151000000408a50138001910083073705f696e686572656e747350436865636b496e686572656e7473526573756c7400000c01106f6b6179200110626f6f6c00012c666174616c5f6572726f72200110626f6f6c0001186572726f727309100130496e686572656e744461746100001d100c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479445472616e73616374696f6e536f7572636500010c1c496e426c6f636b000000144c6f63616c0001002045787465726e616c0002000021100418526573756c74080454012510044501fd0f0108084f6b04002510000000000c4572720400fd0f000001000025100c2873705f72756e74696d65507472616e73616374696f6e5f76616c69646974794056616c69645472616e73616374696f6e00001401207072696f7269747930014c5472616e73616374696f6e5072696f7269747900012072657175697265736503014c5665633c5472616e73616374696f6e5461673e00012070726f76696465736503014c5665633c5472616e73616374696f6e5461673e0001246c6f6e6765766974793001505472616e73616374696f6e4c6f6e67657669747900012470726f706167617465200110626f6f6c0000291004184f7074696f6e040454012d100108104e6f6e6500000010536f6d6504002d1000000100002d1000000231100031100000040838490c0035100c346672616d655f737570706f727438766965775f66756e6374696f6e73385669657746756e6374696f6e49640000080118707265666978a90101205b75383b2031365d000118737566666978a90101205b75383b2031365d000039100418526573756c7408045401380445013d100108084f6b040038000000000c45727204003d1000000100003d100c346672616d655f737570706f727438766965775f66756e6374696f6e73645669657746756e6374696f6e44697370617463684572726f7200010c384e6f74496d706c656d656e746564000000204e6f74466f756e640400351001385669657746756e6374696f6e496400010014436f6465630002000041100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065734c52756e74696d654469737061746368496e666f081c42616c616e63650118185765696768740128000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c61737300012c7061727469616c5f66656518011c42616c616e6365000045100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065732846656544657461696c73041c42616c616e6365011800080134696e636c7573696f6e5f666565491001744f7074696f6e3c496e636c7573696f6e4665653c42616c616e63653e3e00010c74697018011c42616c616e63650000491004184f7074696f6e040454014d100108104e6f6e6500000010536f6d6504004d1000000100004d100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e7414747970657330496e636c7573696f6e466565041c42616c616e63650118000c0120626173655f66656518011c42616c616e636500011c6c656e5f66656518011c42616c616e636500014c61646a75737465645f7765696768745f66656518011c42616c616e6365000051100418526573756c7408045401551004450159100108084f6b04005510000000000c4572720400591000000100005510000002e1040059100c4078636d5f72756e74696d655f617069731066656573144572726f7200011834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001004c5765696768744e6f74436f6d70757461626c650002004c556e68616e646c656458636d56657273696f6e0003003441737365744e6f74466f756e6400040028556e726f757461626c65000500005d100418526573756c74080454012804450159100108084f6b040028000000000c45727204005910000001000061100418526573756c74080454011804450159100108084f6b040018000000000c45727204005910000001000065100418526573756c7408045401150204450159100108084f6b04001502000000000c45727204005910000001000069100418526573756c74080454016d1004450185100108084f6b04006d10000000000c4572720400851000000100006d100c4078636d5f72756e74696d655f617069731c6472795f72756e4443616c6c44727952756e4566666563747304144576656e74015400100140657865637574696f6e5f726573756c747d0a01684469737061746368526573756c7457697468506f7374496e666f000138656d69747465645f6576656e7473711001285665633c4576656e743e0001246c6f63616c5f78636d751001604f7074696f6e3c56657273696f6e656458636d3c28293e3e000138666f727761726465645f78636d73791001bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e000071100000025400751004184f7074696f6e0404540139040108104e6f6e6500000010536f6d6504003904000001000079100000027d10007d10000004089102811000811000000239040085100c4078636d5f72756e74696d655f617069731c6472795f72756e144572726f7200010834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001000089100418526573756c74080454018d1004450185100108084f6b04008d10000000000c4572720400851000000100008d100c4078636d5f72756e74696d655f617069731c6472795f72756e4058636d44727952756e4566666563747304144576656e740154000c0140657865637574696f6e5f726573756c747501011c4f7574636f6d65000138656d69747465645f6576656e7473711001285665633c4576656e743e000138666f727761726465645f78636d73791001bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e000091100418526573756c74080454010004450195100108084f6b040000000000000c45727204009510000001000095100c4078636d5f72756e74696d655f617069732c636f6e76657273696f6e73144572726f720001082c556e737570706f727465640000006456657273696f6e6564436f6e76657273696f6e4661696c6564000100009910080c78636d3856657273696f6e6564417373657400010c08563304002102013876333a3a4d756c7469417373657400030008563404004d02012476343a3a417373657400040008563504009501012476353a3a4173736574000500009d100418526573756c740804540120044501a1100108084f6b040020000000000c4572720400a1100000010000a1100c4078636d5f72756e74696d655f6170697334747275737465645f7175657279144572726f720001087856657273696f6e65644173736574436f6e76657273696f6e4661696c65640000008456657273696f6e65644c6f636174696f6e436f6e76657273696f6e4661696c656400010000a5100418526573756c7408045401f10c044501a9100108084f6b0400f10c000000000c4572720400a9100000010000a9100c4078636d5f72756e74696d655f6170697348617574686f72697a65645f616c6961736573144572726f720001047c4c6f636174696f6e56657273696f6e436f6e76657273696f6e4661696c656400000000ad100418526573756c740804540120044501a9100108084f6b040020000000000c4572720400a9100000010000b1100418526573756c74080454011502044501b5100108084f6b04001502000000000c4572720400b5100000010000b5100c346173736574735f636f6d6d6f6e2c72756e74696d655f6170695046756e6769626c65734163636573734572726f720001085c41737365744964436f6e76657273696f6e4661696c65640000007c416d6f756e74546f42616c616e6365436f6e76657273696f6e4661696c656400010000b910085c63756d756c75735f7072696d6974697665735f636f726534436f6c6c6174696f6e496e666f000018013c7570776172645f6d65737361676573650301485665633c5570776172644d6573736167653e00014c686f72697a6f6e74616c5f6d65737361676573890b01605665633c4f7574626f756e6448726d704d6573736167653e00014c6e65775f76616c69646174696f6e5f636f6465bd10018c4f7074696f6e3c72656c61795f636861696e3a3a56616c69646174696f6e436f64653e00016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b10016072656c61795f636861696e3a3a426c6f636b4e756d626572000124686561645f646174617503012048656164446174610000bd1004184f7074696f6e04045401c1100108104e6f6e6500000010536f6d650400c1100000010000c1100c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040038011c5665633c75383e0000c5100418526573756c74080454019c044501f50a0108084f6b04009c000000000c4572720400f50a0000010000c91004184f7074696f6e04045401f50a0108104e6f6e6500000010536f6d650400f50a0000010000cd10000002f50a00d11004184f7074696f6e04045401d5100108104e6f6e6500000010536f6d650400d5100000010000d51000000408181800d91000000408000000dd10086861737365745f6875625f706f6c6b61646f745f72756e74696d653052756e74696d654572726f7200019c1853797374656d0400250b01706672616d655f73797374656d3a3a4572726f723c52756e74696d653e0000003c50617261636861696e53797374656d0400910b01bc63756d756c75735f70616c6c65745f70617261636861696e5f73797374656d3a3a4572726f723c52756e74696d653e00010020507265696d6167650400b50b017c70616c6c65745f707265696d6167653a3a4572726f723c52756e74696d653e000500245363686564756c65720400c90b018070616c6c65745f7363686564756c65723a3a4572726f723c52756e74696d653e0006002042616c616e6365730400050c017c70616c6c65745f62616c616e6365733a3a4572726f723c52756e74696d653e000a001c56657374696e670400110c017870616c6c65745f76657374696e673a3a4572726f723c52756e74696d653e000e0018436c61696d730400150c017470616c6c65745f636c61696d733a3a4572726f723c52756e74696d653e000f0044436f6c6c61746f7253656c656374696f6e04002d0c01a470616c6c65745f636f6c6c61746f725f73656c656374696f6e3a3a4572726f723c52756e74696d653e0015001c53657373696f6e04004d0c017870616c6c65745f73657373696f6e3a3a4572726f723c52756e74696d653e0016002458636d7051756575650400890c01a463756d756c75735f70616c6c65745f78636d705f71756575653a3a4572726f723c52756e74696d653e001e002c506f6c6b61646f7458636d0400f50c016870616c6c65745f78636d3a3a4572726f723c52756e74696d653e001f00304d65737361676551756575650400190d019070616c6c65745f6d6573736167655f71756575653a3a4572726f723c52756e74696d653e00230060536e6f7762726964676553797374656d46726f6e74656e6404001d0d01c4736e6f776272696467655f70616c6c65745f73797374656d5f66726f6e74656e643a3a4572726f723c52756e74696d653e0024001c5574696c6974790400210d017870616c6c65745f7574696c6974793a3a4572726f723c52756e74696d653e002800204d756c74697369670400310d017c70616c6c65745f6d756c74697369673a3a4572726f723c52756e74696d653e0029001450726f78790400550d017070616c6c65745f70726f78793a3a4572726f723c52756e74696d653e002a001c496e646963657304005d0d017870616c6c65745f696e64696365733a3a4572726f723c52756e74696d653e002b00184173736574730400890d01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e0032001c556e69717565730400ad0d017870616c6c65745f756e69717565733a3a4572726f723c52756e74696d653e003300104e6674730400010e016c70616c6c65745f6e6674733a3a4572726f723c52756e74696d653e00340034466f726569676e4173736574730400150e01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e00350028506f6f6c4173736574730400210e01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365333e0036003c4173736574436f6e76657273696f6e0400290e019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4572726f723c52756e74696d653e0037002054726561737572790400390e017c70616c6c65745f74726561737572793a3a4572726f723c52756e74696d653e003c0040436f6e76696374696f6e566f74696e670400510e01a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4572726f723c52756e74696d653e003d00245265666572656e64610400790e018070616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d653e003e002457686974656c69737404007d0e018070616c6c65745f77686974656c6973743a3a4572726f723c52756e74696d653e00400020426f756e746965730400890e017c70616c6c65745f626f756e746965733a3a4572726f723c52756e74696d653e004100344368696c64426f756e746965730400950e019470616c6c65745f6368696c645f626f756e746965733a3a4572726f723c52756e74696d653e004200244173736574526174650400990e018470616c6c65745f61737365745f726174653a3a4572726f723c52756e74696d653e004300485374617465547269654d6967726174696f6e04009d0a01ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4572726f723c52756e74696d653e0046003c4e6f6d696e6174696f6e506f6f6c730400b90e019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4572726f723c52756e74696d653e00500024566f7465724c6973740400cd0e01f470616c6c65745f626167735f6c6973743a3a4572726f723c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0052004044656c6567617465645374616b696e670400dd0e01a070616c6c65745f64656c6567617465645f7374616b696e673a3a4572726f723c52756e74696d653e005300484d756c7469426c6f636b456c656374696f6e0400fd0e01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a4572726f723c52756e74696d653e005500604d756c7469426c6f636b456c656374696f6e5369676e65640400350f01f070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f626c6f636b3a3a7369676e65643a3a4572726f723c52756e74696d653e0058001c5374616b696e670400950f019070616c6c65745f7374616b696e675f6173796e633a3a4572726f723c52756e74696d653e0059001441684f707304009d0f017470616c6c65745f61685f6f70733a3a4572726f723c52756e74696d653e00fe002841684d69677261746f720400a50f018870616c6c65745f61685f6d69677261746f723a3a4572726f723c52756e74696d653e00ff0000d41853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402345d0a0400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000ed0a04000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000e90a040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000f90a040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01590301581830426c6f636b57656967687473fd0a89010700f2052a01000b00204aa9d101020080020265cd1d00010bc026fb7f740102000002010b0068e5cf8b01020020020100000265cd1d00010bc0de5f59ba0102006002010b00204aa9d10102008002010700b864d945020060000265cd1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468090b3000004400000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874110b4040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e150b49052473746174656d696e742473746174656d696e740100000080841e000000000064dd718d5cc53262d40100000004e70521a0d3d2f801000000d7bdd8a272ca0d6502000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c010000002609be83ac4468dc0100000012c8e3d4d7e06de001000000de92b8a0426b9bf602000000ea93e3f16f3d696203000000fbc577b9d747efd6010000008a8047a53a8277ec01000000a2ddb6a58477bf630100000017a6bc0d0062aeb30100000018ef58a3b67ba770010000000f000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978d10208000014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01250b00003c50617261636861696e53797374656d013c50617261636861696e53797374656d6844556e696e636c756465645365676d656e740100290b0400184901204c617465737420696e636c7564656420626c6f636b2064657363656e64616e7473207468652072756e74696d652061636365707465642e20496e206f7468657220776f7264732c20746865736520617265610120616e636573746f7273206f66207468652063757272656e746c7920657865637574696e6720626c6f636b2077686963682068617665206e6f74206265656e20696e636c7564656420696e20746865206f627365727665644c2072656c61792d636861696e2073746174652e00750120546865207365676d656e74206c656e677468206973206c696d69746564206279207468652063617061636974792072657475726e65642066726f6d20746865205b60436f6e73656e737573486f6f6b605d20636f6e666967757265643c20696e207468652070616c6c65742e6c41676772656761746564556e696e636c756465645365676d656e7400004d0b04000c69012053746f72616765206669656c642074686174206b6565707320747261636b206f662062616e64776964746820757365642062792074686520756e696e636c75646564207365676d656e7420616c6f6e672077697468207468652d01206c61746573742048524d502077617465726d61726b2e205573656420666f72206c696d6974696e672074686520616363657074616e6365206f66206e657720626c6f636b73207769746890207265737065637420746f2072656c617920636861696e20636f6e73747261696e74732e5450656e64696e6756616c69646174696f6e436f6465010038040018590120496e2063617365206f662061207363686564756c656420757067726164652c20746869732073746f72616765206669656c6420636f6e7461696e73207468652076616c69646174696f6e20636f646520746f20626524206170706c6965642e003d0120417320736f6f6e206173207468652072656c617920636861696e2067697665732075732074686520676f2d6168656164207369676e616c2c2077652077696c6c206f7665727772697465207468657101205b603a636f6465605d5b73705f636f72653a3a73746f726167653a3a77656c6c5f6b6e6f776e5f6b6579733a3a434f44455d2077686963682077696c6c20726573756c7420746865206e65787420626c6f636b2070726f636573730901207769746820746865206e65772076616c69646174696f6e20636f64652e205468697320636f6e636c756465732074686520757067726164652070726f636573732e444e657756616c69646174696f6e436f64650000380400145d012056616c69646174696f6e20636f6465207468617420697320736574206279207468652070617261636861696e20616e6420697320746f20626520636f6d6d756e69636174656420746f20636f6c6c61746f7220616e647820636f6e73657175656e746c79207468652072656c61792d636861696e2e00650120546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b206966206e6f206f746865722070616c6c657420616c7265616479207365742c207468652076616c75652e3856616c69646174696f6e446174610000710304000cd020546865205b6050657273697374656456616c69646174696f6e44617461605d2073657420666f72207468697320626c6f636b2e2d0120546869732076616c756520697320657870656374656420746f20626520736574206f6e6c79206f6e63652070657220626c6f636b20616e642069742773206e657665722073746f7265643420696e2074686520747269652e5044696453657456616c69646174696f6e436f6465010020040004e02057657265207468652076616c69646174696f6e20646174612073657420746f206e6f74696679207468652072656c617920636861696e3f644c61737452656c6179436861696e426c6f636b4e756d62657201001010000000000c1d01205468652072656c617920636861696e20626c6f636b206e756d626572206173736f636961746564207769746820746865206c6173742070617261636861696e20626c6f636b2e00882054686973206973207570646174656420696e20606f6e5f66696e616c697a65602e60557067726164655265737472696374696f6e5369676e616c0100510b04001c750120416e206f7074696f6e20776869636820696e64696361746573206966207468652072656c61792d636861696e20726573747269637473207369676e616c6c696e6720612076616c69646174696f6e20636f646520757067726164652e610120496e206f7468657220776f7264732c20696620746869732069732060536f6d656020616e64205b604e657756616c69646174696f6e436f6465605d2069732060536f6d6560207468656e207468652070726f64756365646c2063616e6469646174652077696c6c20626520696e76616c69642e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3855706772616465476f41686561640100450b040014dc204f7074696f6e616c207570677261646520676f2d6168656164207369676e616c2066726f6d207468652072656c61792d636861696e2e00710120546869732073746f72616765206974656d2069732061206d6972726f72206f662074686520636f72726573706f6e64696e672076616c756520666f72207468652063757272656e742070617261636861696e2066726f6d207468656d012072656c61792d636861696e2e20546869732076616c756520697320657068656d6572616c207768696368206d65616e7320697420646f65736e277420686974207468652073746f726167652e20546869732076616c756520697360207365742061667465722074686520696e686572656e742e3c52656c6179537461746550726f6f6600007903040018c4205468652073746174652070726f6f6620666f7220746865206c6173742072656c617920706172656e7420626c6f636b2e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e5852656c6576616e744d6573736167696e6753746174650000590b04001c65012054686520736e617073686f74206f6620736f6d652073746174652072656c6174656420746f206d6573736167696e672072656c6576616e7420746f207468652063757272656e742070617261636861696e2061732070657248207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e44486f7374436f6e66696775726174696f6e00006d0b0400182901205468652070617261636861696e20686f737420636f6e66696775726174696f6e207468617420776173206f627461696e65642066726f6d207468652072656c617920706172656e742e006d012054686973206669656c64206973206d65616e7420746f2062652075706461746564206561636820626c6f636b2077697468207468652076616c69646174696f6e206461746120696e686572656e742e205468657265666f72652c4d01206265666f72652070726f63657373696e67206f662074686520696e686572656e742c20652e672e20696e20606f6e5f696e697469616c697a656020746869732064617461206d6179206265207374616c652e00ac2054686973206461746120697320616c736f20616273656e742066726f6d207468652067656e657369732e384c617374446d714d7163486561640100750b80000000000000000000000000000000000000000000000000000000000000000010f420546865206c61737420646f776e77617264206d65737361676520717565756520636861696e20686561642077652068617665206f627365727665642e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e404c61737448726d704d716348656164730100790b040010490120546865206d65737361676520717565756520636861696e2068656164732077652068617665206f62736572766564207065722065616368206368616e6e656c20696e636f6d696e67206368616e6e656c2e00650120546869732076616c7565206973206c6f61646564206265666f726520616e642073617665642061667465722070726f63657373696e6720696e626f756e6420646f776e77617264206d65737361676573206361727269656460206279207468652073797374656d20696e686572656e742e6450726f636573736564446f776e776172644d6573736167657301001010000000000cc8204e756d626572206f6620646f776e77617264206d657373616765732070726f63657373656420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e704c61737450726f636573736564446f776e776172644d6573736167650000850b04000c9420546865206c6173742070726f63657373656420646f776e77617264206d6573736167652e005d01205765206e65656420746f206b65657020747261636b206f66207468697320746f2066696c74657220746865206d6573736167657320746861742068617665206265656e20616c72656164792070726f6365737365642e3448726d7057617465726d61726b010010100000000004a02048524d502077617465726d61726b2074686174207761732073657420696e206120626c6f636b2e604c61737450726f63657373656448726d704d6573736167650000850b04000c8420546865206c6173742070726f6365737365642048524d50206d6573736167652e005d01205765206e65656420746f206b65657020747261636b206f66207468697320746f2066696c74657220746865206d6573736167657320746861742068617665206265656e20616c72656164792070726f6365737365642e5048726d704f7574626f756e644d657373616765730100890b04000ca42048524d50206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e385570776172644d657373616765730100650304000cac20557077617264206d65737361676573207468617420776572652073656e7420696e206120626c6f636b2e00ec20546869732077696c6c20626520636c656172656420696e20606f6e5f696e697469616c697a6560206f662065616368206e657720626c6f636b2e5450656e64696e675570776172644d6573736167657301006503040004310120557077617264206d65737361676573207468617420617265207374696c6c2070656e64696e6720616e64206e6f74207965742073656e6420746f207468652072656c617920636861696e2e5c55707761726444656c6976657279466565466163746f720100a10240000064a7b3b6e00d000000000000000004e42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c69766572792066656520627920666f7220554d502e84416e6e6f756e63656448726d704d6573736167657350657243616e646964617465010010100000000008650120546865206e756d626572206f662048524d50206d65737361676573207765206f6273657276656420696e20606f6e5f696e697469616c697a656020616e64207468757320757365642074686174206e756d62657220666f72f020616e6e6f756e63696e672074686520776569676874206f6620606f6e5f696e697469616c697a656020616e6420606f6e5f66696e616c697a65602e68526573657276656458636d705765696768744f766572726964650000280400085d01205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e672058434d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e645265736572766564446d705765696768744f766572726964650000280400085901205468652077656967687420776520726573657276652061742074686520626567696e6e696e67206f662074686520626c6f636b20666f722070726f63657373696e6720444d50206d657373616765732e2054686973b8206f76657272696465732074686520616d6f756e742073657420696e2074686520436f6e6669672074726169742e60437573746f6d56616c69646174696f6e486561644461746100003804000c2901204120637573746f6d2068656164206461746120746861742073686f756c642062652072657475726e656420617320726573756c74206f66206076616c69646174655f626c6f636b602e00110120536565206050616c6c65743a3a7365745f637573746f6d5f76616c69646174696f6e5f686561645f646174616020666f72206d6f726520696e666f726d6174696f6e2e0169030184042853656c66506172614964ad0210e803000004b82052657475726e73207468652070617261636861696e204944207765206172652072756e6e696e6720776974682e01910b01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01bd030004344d696e696d756d506572696f6430200000000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0003003450617261636861696e496e666f013450617261636861696e496e666f042c50617261636861696e49640100ad0210640000000001c103000000040020507265696d6167650120507265696d6167650c24537461747573466f720001040634950b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f7200010406349d0b0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f7200010406ad0bb10b04000001c503018c0001b50b0500245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e184167656e64610101040510b90b0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c5265747269657300010402943d09040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b7570000104050494040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01cd03019008344d6178696d756d576569676874282c0b00806e8774010200000204290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01c90b060028506172616d65746572730128506172616d65746572730428506172616d657465727300010402a4e40400044c2053746f72656420706172616d65746572732e01d50301a0000007002042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200cd0b040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200d10b04000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200dd0b0400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200f50b0400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01ed0301f810484578697374656e7469616c4465706f736974184000e1f50500000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100100000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01050c0a00485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100a10240000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100090c0400000001050104604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000b0038417373657454785061796d656e74000001090100000d001c56657374696e67011c56657374696e67081c56657374696e670001040200bd08040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01000d0c04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01fd0301550108444d696e5665737465645472616e73666572184000e1f50500000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001110c0e0018436c61696d730118436c61696d731418436c61696d73000104065d011804000014546f74616c0100184000000000000000000000000000000000001c56657374696e67000104065d011504040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e67000104065d011d04040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d7300010406005d010400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e010504015901041850726566697838888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a0001150c0f0028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e00000000140044436f6c6c61746f7253656c656374696f6e0144436f6c6c61746f7253656c656374696f6e1434496e76756c6e657261626c65730100190c04000411012054686520696e76756c6e657261626c652c207065726d697373696f6e656420636f6c6c61746f72732e2054686973206c697374206d75737420626520736f727465642e3443616e6469646174654c69737401001d0c0400146901205468652028636f6d6d756e6974792c206c696d697465642920636f6c6c6174696f6e2063616e646964617465732e206043616e646964617465736020616e642060496e76756c6e657261626c6573602073686f756c6420626550206d757475616c6c79206578636c75736976652e0075012054686973206c69737420697320736f7274656420696e20617363656e64696e67206f72646572206279206465706f73697420616e64207768656e20746865206465706f736974732061726520657175616c2c20746865206c65617374a020726563656e746c79207570646174656420697320636f6e7369646572656420677265617465722e444c617374417574686f726564426c6f636b01010405001010000000000484204c61737420626c6f636b20617574686f72656420627920636f6c6c61746f722e444465736972656443616e6469646174657301001010000000000c782044657369726564206e756d626572206f662063616e646964617465732e00750120546869732073686f756c6420696465616c6c7920616c77617973206265206c657373207468616e205b60436f6e6669673a3a4d617843616e64696461746573605d20666f72207765696768747320746f20626520636f72726563742e3443616e646964616379426f6e6401001840000000000000000000000000000000000cb820466978656420616d6f756e7420746f206465706f73697420746f206265636f6d65206120636f6c6c61746f722e004101205768656e206120636f6c6c61746f722063616c6c7320606c656176655f696e74656e7460207468657920696d6d6564696174656c79207265636569766520746865206465706f736974206261636b2e0121040161011814506f744964290c20506f745374616b6504f4204163636f756e74204964656e7469666965722066726f6d2077686963682074686520696e7465726e616c20506f742069732067656e6572617465642e344d617843616e646964617465731010640000000cc8204d6178696d756d206e756d626572206f662063616e6469646174657320746861742077652073686f756c6420686176652e00cc205468697320646f6573206e6f742074616b6520696e746f206163636f756e742074686520696e76756c6e657261626c65732e504d696e456c696769626c65436f6c6c61746f72731010040000000c5501204d696e696d756d206e756d62657220656c696769626c6520636f6c6c61746f72732e2053686f756c6420616c776179732062652067726561746572207468616e207a65726f2e205468697320696e636c75646573510120496e76756c6e657261626c6520636f6c6c61746f72732e205468697320656e737572657320746861742074686572652077696c6c20616c77617973206265206f6e6520636f6c6c61746f722077686f2063616e442070726f64756365206120626c6f636b2e404d6178496e76756c6e657261626c65731010140000000484204d6178696d756d206e756d626572206f6620696e76756c6e657261626c65732e344b69636b5468726573686f6c641010100e0000002c706f745f6163636f756e7400806d6f646c506f745374616b65000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e012d0c15001c53657373696f6e011c53657373696f6e1c2856616c696461746f7273010065010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100310c0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100390c0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050029040400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405450c00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01250401690104284b65794465706f73697418400000000000000000000000000000000004a42054686520616d6f756e7420746f2062652068656c64207768656e2073657474696e67206b6579732e014d0c16001041757261011041757261082c417574686f7269746965730100510c0400046c205468652063757272656e7420617574686f72697479207365742e2c43757272656e74536c6f740100590c2000000000000000000c80205468652063757272656e7420736c6f74206f66207468697320626c6f636b2e009420546869732077696c6c2062652073657420696e20606f6e5f696e697469616c697a65602e00000430536c6f744475726174696f6e3020e02e000000000000100d012054686520736c6f74206475726174696f6e20417572612073686f756c642072756e20776974682c2065787072657373656420696e206d696c6c697365636f6e64732e3d0120546865206566666563746976652076616c7565206f66207468697320747970652073686f756c64206e6f74206368616e6765207768696c652074686520636861696e2069732072756e6e696e672e00350120466f72206261636b776172647320636f6d7061746962696c6974792065697468657220757365205b604d696e696d756d506572696f6454696d657354776f605d206f72206120636f6e73742e0017001c41757261457874011c41757261457874082c417574686f7269746965730100510c040014942053657276657320617320636163686520666f722074686520617574686f7269746965732e0071012054686520617574686f72697469657320696e204175526120617265206f7665727772697474656e20696e20606f6e5f696e697469616c697a6560207768656e2077652073776974636820746f2061206e65772073657373696f6e2c5d0120627574207765207265717569726520746865206f6c6420617574686f72697469657320746f2076657269667920746865207365616c207768656e2076616c69646174696e67206120506f562e20546869732077696c6c0d0120616c77617973206265207570646174656420746f20746865206c6174657374204175526120617574686f72697469657320696e20606f6e5f66696e616c697a65602e3452656c6179536c6f74496e666f00005d0c04001009012043757272656e742072656c617920636861696e20736c6f742070616972656420776974682061206e756d626572206f6620617574686f72656420626c6f636b732e0065012054686973206973207570646174656420696e205b60466978656456656c6f63697479436f6e73656e737573486f6f6b3a3a6f6e5f73746174655f70726f6f66605d2077697468207468652063757272656e742072656c6179dc20636861696e20736c6f742061732070726f7669646564206279207468652072656c617920636861696e2073746174652070726f6f662e0000000018002458636d705175657565012458636d7051756575651c50496e626f756e6458636d7053757370656e6465640100610c0400200d01205468652073757370656e64656420696e626f756e642058434d50206368616e6e656c732e20416c6c206f746865727320617265206e6f742073757370656e6465642e00710120546869732069732061206053746f7261676556616c75656020696e7374656164206f662061206053746f726167654d6170602073696e636520776520657870656374206d756c7469706c652072656164732070657220626c6f636b690120746f20646966666572656e74206b65797320776974682061206f6e652062797465207061796c6f61642e205468652061636365737320746f2060426f756e6465644254726565536574602077696c6c2062652063616368656415012077697468696e2074686520626c6f636b20616e64207468657265666f7265206f6e6c7920696e636c75646564206f6e636520696e207468652070726f6f662073697a652e006501204e4f54453a2054686520506f562062656e63686d61726b696e672063616e6e6f74206b6e6f77207468697320616e642077696c6c206f7665722d657374696d6174652c20627574207468652061637475616c2070726f6f66442077696c6c20626520736d616c6c65722e484f7574626f756e6458636d7053746174757301006d0c0400185d0120546865206e6f6e2d656d7074792058434d50206368616e6e656c7320696e206f72646572206f66206265636f6d696e67206e6f6e2d656d7074792c20616e642074686520696e646578206f6620746865206669727374510120616e64206c617374206f7574626f756e64206d6573736167652e204966207468652074776f20696e64696365732061726520657175616c2c207468656e20697420696e6469636174657320616e20656d707479590120717565756520616e64207468657265206d7573742062652061206e6f6e2d604f6b6020604f7574626f756e64537461747573602e20576520617373756d65207175657565732067726f77206e6f20677265617465725901207468616e203635353335206974656d732e20517565756520696e646963657320666f72206e6f726d616c206d6573736167657320626567696e206174206f6e653b207a65726f20697320726573657276656420696e11012063617365206f6620746865206e65656420746f2073656e64206120686967682d7072696f72697479207369676e616c206d657373616765207468697320626c6f636b2e09012054686520626f6f6c20697320747275652069662074686572652069732061207369676e616c206d6573736167652077616974696e6720746f2062652073656e742e504f7574626f756e6458636d704d6573736167657301010802057d0c810c040004bc20546865206d65737361676573206f7574626f756e6420696e206120676976656e2058434d50206368616e6e656c2e385369676e616c4d6573736167657301010402ad02810c040004a020416e79207369676e616c206d657373616765732077616974696e6720746f2062652073656e742e2c5175657565436f6e6669670100850c302000000030000000080000000415012054686520636f6e66696775726174696f6e20776869636820636f6e74726f6c73207468652064796e616d696373206f6620746865206f7574626f756e642071756575652e38517565756553757370656e64656401002004000441012057686574686572206f72206e6f74207468652058434d502071756575652069732073757370656e6465642066726f6d20657865637574696e6720696e636f6d696e672058434d73206f72206e6f742e4444656c6976657279466565466163746f7201010405ad02a10240000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e013104016d010c4c4d6178496e626f756e6453757370656e6465641010e803000014490120546865206d6178696d756d206e756d626572206f6620696e626f756e642058434d50206368616e6e656c7320746861742063616e2062652073757370656e6465642073696d756c74616e656f75736c792e005d0120416e792066757274686572206368616e6e656c2073757370656e73696f6e732077696c6c206661696c20616e64206d65737361676573206d6179206765742064726f7070656420776974686f757420667572746865724501206e6f746963652e2043686f6f73696e67206120686967682076616c756520283130303029206973206f6b61793b207468652074726164652d6f666620746861742069732064657363726962656420696ed8205b60496e626f756e6458636d7053757370656e646564605d207374696c6c206170706c6965732061742074686174207363616c652e644d61784163746976654f7574626f756e644368616e6e656c73101080000000206501204d6178696d616c206e756d626572206f66206f7574626f756e642058434d50206368616e6e656c7320746861742063616e2068617665206d6573736167657320717565756564206174207468652073616d652074696d652e005501204966207468697320697320726561636865642c207468656e206e6f2066757274686572206d657373616765732063616e2062652073656e7420746f206368616e6e656c73207468617420646f206e6f74207965745d0120686176652061206d657373616765207175657565642e20546869732073686f756c642062652073657420746f20746865206578706563746564206d6178696d756d206f66206f7574626f756e64206368616e6e656c7361012077686963682069732064657465726d696e6564206279205b6053656c663a3a4368616e6e656c496e666f605d2e20497420697320696d706f7274616e7420746f207365742074686973206c6172676520656e6f7567682c5d012073696e6365206f74686572776973652074686520636f6e67657374696f6e20636f6e74726f6c2070726f746f636f6c2077696c6c206e6f7420776f726b20617320696e74656e64656420616e64206d657373616765735101206d61792062652064726f707065642e20546869732076616c756520696e637265617365732074686520506f5620616e642073686f756c64207468657265666f7265206e6f74206265207069636b656420746f6f4d0120686967682e20476f7665726e616e6365206e6565647320746f2070617920617474656e74696f6e20746f206e6f74206f70656e206d6f7265206368616e6e656c73207468616e20746869732076616c75652e2c4d61785061676553697a651010009c010014b820546865206d6178696d616c20706167652073697a6520666f722048524d50206d6573736167652070616765732e0061012041206c6f776572206c696d69742063616e206265207365742064796e616d6963616c6c792c2062757420746869732069732074686520686172642d6c696d697420666f722074686520506f5620776f727374206361736555012062656e63686d61726b696e672e20546865206c696d697420666f72207468652073697a65206f662061206d65737361676520697320736c696768746c792062656c6f7720746869732c2073696e636520736f6d65b8206f7665726865616420697320696e63757272656420666f7220656e636f64696e672074686520666f726d61742e01890c1e002c506f6c6b61646f7458636d012c506f6c6b61646f7458636d3c305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c5175657269657300010402308d0c0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502a10c10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502a10c30040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502a10ca50c04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100a90c04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000b50c0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202bd0cc10c040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200d10c040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000081010400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e44417574686f72697a6564416c6961736573000104029102dd0c04000c6501204d6170206f6620617574686f72697a656420616c696173657273206f66206c6f63616c206f726967696e732e2045616368206c6f63616c206c6f636174696f6e2063616e20617574686f72697a652061206c697374206f665901206f74686572206c6f636174696f6e7320746f20616c69617320696e746f2069742e204561636820616c6961736572206973206f6e6c792076616c696420756e74696c2069747320696e6e65722060657870697279603820626c6f636b206e756d6265722e0135040171011044556e6976657273616c4c6f636174696f6e11011802090200a10f0484205468697320636861696e277320556e6976657273616c204c6f636174696f6e2e504164766572746973656458636d56657273696f6e10100500000008250120546865206c617465737420737570706f727465642076657273696f6e2074686174207765206164766572746973652e2047656e6572616c6c79206a7573742073657420697420746f84206070616c6c65745f78636d3a3a43757272656e7458636d56657273696f6e602e284d61784c6f636b65727310100800000004190120546865206d6178696d756d206e756d626572206f66206c6f63616c2058434d206c6f636b73207468617420612073696e676c65206163636f756e74206d617920686176652e584d617852656d6f74654c6f636b436f6e73756d65727310100000000004fc20546865206d6178696d756d206e756d626572206f6620636f6e73756d65727320612073696e676c652072656d6f7465206c6f636b206d617920686176652e01f50c1f002843756d756c757358636d0001e5040199020000200044546f4b7573616d6158636d526f757465720144546f4b7573616d6158636d526f7574657204184272696467650100fd0c44000064a7b3b6e00d0000000000000000001c6820427269646765207468617420776520617265207573696e672e007101202a2a627269646765732d76312a2a20617373756d7074696f6e733a20616c6c206f7574626f756e64206d65737361676573207468726f756768207468697320726f7574657220617265207573696e672073696e676c65206c616e656d0120616e6420746f2073696e676c652072656d6f746520636f6e73656e7375732e20496620746865726520697320736f6d65206f746865722072656d6f746520636f6e73656e73757320746861742075736573207468652073616d65610120627269646765206875622c207468652073657061726174652070616c6c657420696e7374616e6365207368616c6c20626520757365642c20496e2060763260207765276c6c206861766520616c6c2072657175697265647101207072696d69746976657320286c616e652d696420616b61206272696467652d69642c20646572697665642066726f6d2058434d206c6f636174696f6e732920746f20737570706f7274206d756c7469706c6520206272696467657374206279207468652073616d652070616c6c657420696e7374616e63652e01e904019d0200002200304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405a902010d74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000a902040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805050d0d110d0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01ed0401a50210204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874f42c01070010a5d4e8020040011841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874f42c01070010a5d4e802004001145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01190d230060536e6f7762726964676553797374656d46726f6e74656e640160536e6f7762726964676553797374656d46726f6e74656e64044c4578706f72744f7065726174696e674d6f64650100b902040004d8205468652063757272656e74206f7065726174696e67206d6f646520666f72206578706f7274696e6720746f20457468657265756d2e01f10401b50200011d0d24001c5574696c6974790001fd0401bd02044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01210d2800204d756c746973696701204d756c746973696704244d756c7469736967730001080502250d290d040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e01190501c1020c2c4465706f73697442617365184000dbbb7700000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d430000000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01310d29001450726f7879011450726f7879081c50726f786965730101040500350d4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500450d44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01210501c902184050726f78794465706f736974426173651840009d727700000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721840a05a320000000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000d27e7700000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184040b5640000000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01550d2a001c496e6469636573011c496e646963657304204163636f756e74730001040210590d0400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e01290501d902041c4465706f736974184000d27e7700000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e015d0d2b00184173736574730118417373657473141441737365740001040210610d040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202690d6d0d040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202790d7d0d04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210810d5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e012d0501dd021c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f7369741840c07e577800000000000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000fe4d770000000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f73697442617365184080569d770000000000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f736974506572427974651840a086010000000000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000e1f5050000000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01890d32001c556e6971756573011c556e69717565732814436c61737300010402108d0d040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202910d9c040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e7400010802022d069c04000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e144173736574000108020294950d040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f660001040210990d04000468204d65746164617461206f66206120636f6c6c656374696f6e2e48496e7374616e63654d657461646174614f660001080202949d0d04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500010c020202a10da50d040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f66000108020294a90d04000470205072696365206f6620616e20617373657420696e7374616e63652e4c436f6c6c656374696f6e4d6178537570706c79000104021010040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e01310501e1022044436f6c6c656374696f6e4465706f736974184000e876481700000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000e1f50500000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f736974426173651840a06afa77000000000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f736974426173651840009435770000000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f736974506572427974651840a086010000000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410108000000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410104000000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01ad0d3300104e66747301104e6674733c28436f6c6c656374696f6e0001040210b10d040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202910d9c040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e7400010802022d069c04000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202690db50d040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d000108020294bd0d040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210d50d04000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f66000108020294d90d04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202e10de50d040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f66000108020294a90d040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f66010108020294ed0d04000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f66000108020294f50d0400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f66000104021045050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f660001080202946d050400044c20436f6e666967206f6620616e206974656d2e01410501fd023844436f6c6c656374696f6e4465706f736974184040f1fb770000000000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f73697418401032010300000000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518401071ff0b000000000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f73697442617365184000c2eb0b0000000000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f736974506572427974651840a086010000000000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101e00000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e1010001a4f0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e204665617475726573f90d20000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01010e340034466f726569676e4173736574730134466f726569676e41737365747314144173736574000104020d01610d040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202050e6d0d040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202090e7d0d04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d65746164617461010104020d010d0e5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e6578744173736574496400000d010400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e0191050119031c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f7369741840c07e577800000000000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000fe4d770000000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f73697442617365184080569d770000000000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f736974506572427974651840a086010000000000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000e1f5050000000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01150e350028506f6f6c4173736574730128506f6f6c417373657473141441737365740001040210610d040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202690d6d0d040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202790d7d0d04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210190e5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e019505011d031c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000000000000000000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000fe4d770000000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f736974426173651840000000000000000000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f7369745065724279746518400000000000000000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000e1f5050000000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01210e36003c4173736574436f6e76657273696f6e013c4173736574436f6e76657273696f6e0814506f6f6c73000104022503250e0400086901204d61702066726f6d2060506f6f6c417373657449646020746f2060506f6f6c496e666f602e20546869732065737461626c69736865732077686574686572206120706f6f6c20686173206265656e206f6666696369616c6c793d01206372656174656420726174686572207468616e2070656f706c652073656e64696e6720746f6b656e73206469726563746c7920746f206120706f6f6c2773207075626c6963206163636f756e742e3c4e657874506f6f6c4173736574496400001004000825012053746f726573207468652060506f6f6c4173736574496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e657874206c7020746f6b656e2ee42054686973206765747320696e6372656d656e746564207768656e657665722061206e6577206c7020706f6f6c20697320637265617465642e0199050121031c144c504665651010030000000451012041202520746865206c69717569646974792070726f7669646572732077696c6c2074616b65206f6620657665727920737761702e20526570726573656e7473203130746873206f6620612070657263656e742e30506f6f6c53657475704665651840402d93ef00000000000000000000000004882041206f6e652d74696d652066656520746f2073657475702074686520706f6f6c2e44506f6f6c536574757046656541737365740d0108010004390120417373657420636c6173732066726f6d205b60436f6e6669673a3a417373657473605d207573656420746f2070617920746865205b60436f6e6669673a3a506f6f6c5365747570466565605d2e584c69717569646974795769746864726177616c46656529031000000000048420412066656520746f20776974686472617720746865206c69717569646974792e404d696e744d696e4c6971756964697479184064000000000000000000000000000000043d0120546865206d696e696d756d204c5020746f6b656e20616d6f756e74207468617420636f756c64206265206d696e7465642e20416d656c696f726174657320726f756e64696e67206572726f72732e444d617853776170506174684c656e677468101003000000048820546865206d6178206e756d626572206f6620686f707320696e206120737761702e2050616c6c65744964290c2070792f6173636f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e01290e3700205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510b909040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c7301002d0e040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510310e040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e3c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e01a105013503182c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e290310102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964290c2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f64101080c613000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e2c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e01390e3c0040436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f7201010805053d0e410ed800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f7201010405004d0e04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01a50501410308204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010c0890100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01510e3d00245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210550e040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b517565756501010405d1025d0e0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405d10210100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01b105014d0314445375626d697373696f6e4465706f736974184000e40b5402000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73610e151a40000064726f6f74000000000000000000000000000000000000000000010000000080c6a47e8d03000000000000000000b00400000027060040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000000407a10f35a000000000000000000002c01000000270600640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a0000000080f420e6b500000000000000000000b00400000027060040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000000a0724e180900000000000000000000b004000000270600c0890100403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000000407a10f35a00000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000000406352bfc601000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c800000000e40b540200000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f7469707065720000000000000000000000000000006400000000e8764817000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000000010a5d4e800000000000000000000006009000000270600807000004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e64657200000000000000000000003200000000204aa9d10100000000000000000000600900000027060000e1000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e64657200000000000000000000000000003200000000409452a303000000000000000000006009000000270600c0890100403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e01790e3e001c4f726967696e7300000000003f002457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c00010405349c04000001bd0501790a00017d0e400020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510810e0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510850e0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301002d0e040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e01c10501890a2444426f756e74794465706f736974426173651840008e0c0100000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000000000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6410100004170318f4205468652074696d65206c696d697420666f7220612063757261746f7220746f20616374206265666f7265206120626f756e747920657870697265732e0055012054686520706572696f64207468617420737461727473207768656e20612063757261746f7220697320617070726f7665642c20647572696e672077686963682074686579206d7573742065786563757465206f725501207570646174652074686520626f756e7479207669612060657874656e645f626f756e74795f657870697279602e204966206d69737365642c2074686520626f756e747920657870697265732c20616e642074686555012063757261746f72206d617920626520736c61736865642e2049662060426c6f636b4e756d626572466f723a3a4d4158602c20626f756e7469657320737461792061637469766520696e646566696e6974656c792cb82072656d6f76696e6720746865206e65656420666f722060657874656e645f626f756e74795f657870697279602e6043757261746f724465706f7369744d756c7469706c69657229031020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d61783d05440100204aa9d10100000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696e3d05440100e87648170000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f736974506572427974651840a08601000000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501890e4100344368696c64426f756e7469657301344368696c64426f756e746965731c404368696c64426f756e7479436f756e740100101000000000086d0120444550524543415445443a205265706c6163656420776974682060506172656e74546f74616c4368696c64426f756e74696573602073746f72616765206974656d206b656570696e672064656469636174656420636f756e7473550120666f72206561636820706172656e7420626f756e74792e204e756d626572206f6620746f74616c206368696c6420626f756e746965732e2057696c6c2062652072656d6f76656420696e204d617920323032352e4c506172656e744368696c64426f756e74696573010104051010100000000008cc204e756d626572206f6620616374697665206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e60506172656e74546f74616c4368696c64426f756e746965730101040510101000000000044101204e756d626572206f6620746f74616c206368696c6420626f756e746965732070657220706172656e7420626f756e74792c20696e636c7564696e6720636f6d706c6574656420626f756e746965732e344368696c64426f756e746965730001080505948d0e04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e644368696c64426f756e74794465736372697074696f6e735631000108050594850e04000c290120546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e20496e6465786564206279206028706172656e745f69642c206368696c645f696429602e006d012054686973206974656d207265706c616365732074686520604368696c64426f756e74794465736372697074696f6e73602073746f72616765206974656d2066726f6d207468652056302073746f726167652076657273696f6e2e505630546f56314368696c64426f756e74794964730001040510940400145d0120546865206d617070696e67206f6620746865206368696c6420626f756e7479206964732066726f6d2073746f726167652076657273696f6e206056306020746f20746865206e657720605631602076657273696f6e2e006d0120546865206056306020696473206261736564206f6e20746f74616c206368696c6420626f756e747920636f756e74205b604368696c64426f756e7479436f756e74605d602e2054686520605631602076657273696f6e206964734101206261736564206f6e20746865206368696c6420626f756e747920636f756e742070657220706172656e7420626f756e7479205b60506172656e74546f74616c4368696c64426f756e74696573605d2e650120546865206974656d20696e74656e64656420736f6c656c7920666f7220636c69656e7420636f6e76656e69656e636520616e64206e6f74207573656420696e207468652070616c6c6574277320636f7265206c6f6769632e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01c505018d0a08644d61784163746976654368696c64426f756e7479436f756e74101064000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d184000e40b540200000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01950e42002441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e6174697665000104023903a10204000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e64296001c90501910a0001990e4300485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f636573730100d9053800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100d10504000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000d50504000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e01cd0501950a04244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e019d0a46003c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e0000fd0504000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500610804000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c7300010405107908040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c7300010405109d0e04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f726167650001040510a10e04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d65746164617461010104051001030400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e73010104050005060402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e01e50501a10a0c2050616c6c65744964290c2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101020000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01b90e500024566f7465724c6973740124566f7465724c69737414244c6973744e6f6465730001040500c10e04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530c50e04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e504e6578744e6f64654175746f5265626167676564000000040008050120506f696e74657220746861742072656d656d6265727320746865206e657874206e6f646520746861742077696c6c206265206175746f2d72656261676765642e0101205768656e20604e6f6e65602c20746865206e657874207363616e2077696c6c2073746172742066726f6d20746865206c697374206865616420616761696e2e104c6f636b00009c04001084204c6f636b20616c6c207570646174657320746f20746869732070616c6c65742e00390120496620616e79206e6f646573206e65656473207570646174696e672c2072656d6f76616c206f72206164646974696f6e2064756520746f20612074656d706f72617279206c6f636b2c2074686574205b6043616c6c3a3a7265626167605d2063616e20626520757365642e011d0601a50a08344261675468726573686f6c6473c90e0919210300e40b5402000000f39e809702000000a8b197e20200000094492e3603000000279c3a930300000003bccefa0300000042c01b6e040000001b4775ee04000000385e557d0500000046dc601c0600000089386ccd06000000b6ee809207000000fe7ee36d08000000e81b1a6209000000b019f4710a000000103592a00b000000cfc96ff10c00000041146d680e000000e79bda0910000000cee885da1100000028a9c7df13000000bb70931f160000008e4089a018000000810a096a1b000000366a48841e0000005bd36af821000000807c9cd025000000c95530182a000000bd63c1db2e00000071e0572934000000689092103a000000edc4d4a240000000699379f3470000008fd80c18500000004baf8a28590000006a16a63f630000000995177b6e00000078c5f4fb7a00000062c811e78800000051bf6d6598000000048eaba4a9000000544698d7bc00000091cac036d2000000175f1801ea000000bd15b27c0401000043358ff721010000b8fc84c84201000099673c506701000007e44efa8f010000b341833ebd010000027f2ea2ef0100009883bcb927020000164d652a66020000b49513acab0200002d8e820bf9020000a1e6982c4f030000a616080daf030000cc9d37c719040000a0d584959004000042e7e0d514050000028cd70da80500000f750aef4b060000ea8d2e5c02070000c3cb996ecd070000b1e5717caf080000aa2b8e1fab090000b5c1203dc30a000026d03d0efb0b000070c75929560d0000ebadda8cd80e0000f797dbaa86100000cff04476651200001f2660717a14000009a611becb1600001dfbe82f60190000943a3c603f1c00008afe89c4711f0000ced963c70023000003a92ae4f6260000fe72eec55f2b000036c9cc6948300000dae33245bf350000062a7470d43b00007c9732d69942000084a32468234a0000571ad45987520000e7f10262de5b00000db8760344660000ae0401ded67100007d9eb308b97e00001e044a76108d00003a1df064079d0000e04fafdaccae00005679f02f95c2000095c3aaa99ad80000967c05251ef10000177a66d6670c010028cb1f1ec82a0100fa282f75984c0100d57dc8743c7201007dc4b3fb229c0100365cde74c7ca01009eb8e142b3fe01000c31ae547f3802005fe101e8d57802006373da7e74c0020051d1a60d2e100300c7e9a468ed68030061c091f7b7cb0300bf27a1b7b03904007b1499941bb404008523ed22613c050069a5d4c512d40500ec8c934def7c0600f5aa901be83807008cbe5ddb260a080002978ce113f30800fae314435df60900ddf12dbafe160b002ebadc6f4a580c000c5518c4f2bd0d00f0bb5431154c0f00498e866b46071100b2c153de9ff41200278a2fb2ce191500b2399f84247d1700e199e704aa251a00ba13f5ab331b1d00264785cc7866200088bf803f2d1124001c9823f81d262800ccc422d450b12c00f088820528c03100367c6d7e896137006e9329d30aa63d008cbc6c1322a044000070f32a5c644c00b43b84699909550080b4abe450a95e00a0cda979db5f69004cc27f4cc74c7500d0ac0eba34938200483e0ccf3d5a910068c68e7469cda100281e6fa52b1db40098a92326747fc800f09a74634d30df0080cdfc4b8d72f8009014602d9a901401f0b413d945dd330120973596c1b4560150dcfbaead7d7d01e01198b947aaa80130c7ee16bbb9d801206e488697390e02a0fa4b1d72c74902c0117170b5128c02808a1643a6ded502c0f823b1a204280380af5970a2768303c06f2d87ff41e90340937fac8f925a040091097117b6d804400fdf5b212065050049c149446e0106008ebca6e56caf0600595686851c71078068aa34a4b7480880a1e29e52b9380900bdabe880e4430a002a72b4204c6d0b80f1c013335cb80c00a03ccbdce3280e80b8629a9e20c30f00de5693d2ca8b11005d7f4c93238813001a87df3504be1500a7ce4b84ef3318000110fbea24f11a00802ae5d1b5fd1d0022a134609d62210044216bf0da2925000261f1828f5e29006620cf851e0d2e008410195252433300a0c18fca8410390026ad1493cc853f00d0cd24662fb646009ce19a1cdab64e0058ccc20c5f9f5700200a7578fb89610030bbbbd6e4936c0060cba7dc9edd7800b83bc0425b8b8600b886236164c59500f8f15fdc93b8a600206a91c0d696b900d8efe28fc097ce0068299bf52ef9e5ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e504d61784175746f5265626167506572426c6f636b101005000000103501204d6178696d756d206e756d626572206f66206163636f756e74732074686174206d61792062652072652d626167676564206175746f6d61746963616c6c7920696e20606f6e5f69646c65602e00510120412076616c7565206f662060306020286f627461696e656420627920636f6e6669677572696e67206074797065204d61784175746f5265626167506572426c6f636b203d2028293b60292064697361626c6573342074686520666561747572652e01cd0e52004044656c6567617465645374616b696e67014044656c6567617465645374616b696e67102844656c656761746f72730001040500d50e040010a4204d6170206f662044656c656761746f727320746f207468656972206044656c65676174696f6e602e00610120496d706c656d656e746174696f6e206e6f74653a20576520617265206e6f74207573696e67206120646f75626c65206d61702077697468206064656c656761746f726020616e6420606167656e7460206163636f756e746101206173206b6579732073696e63652077652077616e7420746f2072657374726963742064656c656761746f727320746f2064656c6567617465206f6e6c7920746f206f6e65206163636f756e7420617420612074696d652e50436f756e746572466f7244656c656761746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184167656e74730001040500d90e04000488204d6170206f6620604167656e746020746f20746865697220604c6564676572602e40436f756e746572466f724167656e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61700001a90a082050616c6c65744964290c2070792f646c73746b049020496e6a6563746564206964656e74696669657220666f72207468652070616c6c65742e4c536c6173685265776172644672616374696f6efd051080969800045101204672616374696f6e206f662074686520736c617368207468617420697320726577617264656420746f207468652063616c6c6572206f662070656e64696e6720736c61736820746f20746865206167656e742e01dd0e53003c5374616b696e675263436c69656e74013c5374616b696e675263436c69656e740c5c496e636f6d706c65746553657373696f6e5265706f7274000025060400041d0120416e20696e636f6d706c65746520696e636f6d696e672073657373696f6e207265706f727420746861742077652068617665206e6f742061637465642075706f6e207965742e704c61737453657373696f6e5265706f7274456e64696e67496e646578000010040020fc20546865206c6173742073657373696f6e207265706f727427732060656e645f696e64657860207468617420776520686176652061637465642075706f6e2e006101205468697320616c6c6f777320746869732070616c6c657420746f20656e7375726520612073657175656e7469616c6c7920696e6372656173696e672073657175656e6365206f662073657373696f6e207265706f7274734c2070617373656420746f207374616b696e672e005d01204e6f746520746861742077697468207468652058434d206265696e6720746865206261636b626f6e65206f6620636f6d6d756e69636174696f6e2c207765206861766520612067756172616e746565206f6e207468656101206f72646572696e67206f66206d657373616765732e204173206c6f6e67206173207468652052432073656e64732073657373696f6e207265706f72747320696e206f726465722c207765205f6576656e7475616c6c795fc02072656365697665207468656d20696e207468652073616d6520636f7272656374206f726465722061732077656c6c2e504f7574676f696e6756616c696461746f725365740000e10e040010d820412076616c696461746f72207365742074686174206973206f7574676f696e672c20616e642073686f756c642062652073656e742e00750120546869732077696c6c20626520617474656d7074656420746f2062652073656e742c20706f737369626c79206f6e20657665727920606f6e5f696e697469616c697a65602063616c6c2c20756e74696c2069742069732073656e742cf4206f7220746865207365636f6e642076616c75652072656163686573207a65726f2c20617420776869636820706f696e742077652064726f702069742e01210601ad0a00005400484d756c7469426c6f636b456c656374696f6e01484d756c7469426c6f636b456c656374696f6e1c14526f756e64010010100000000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501004d060400043c2043757272656e742070686173652e384465736972656454617267657473000104051010040004cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e485061676564566f746572536e617073686f74000108050594e90e040004010120506167696e6174656420766f74657220736e617073686f742e204174206d6f7374205b60543a3a5061676573605d206b6579732077696c6c2065786973742e585061676564566f746572536e617073686f74486173680001080505943404000c31012053616d65206173205b605061676564566f746572536e617073686f74605d2c206275742069742077696c6c2073746f7265207468652068617368206f662074686520736e617073686f742e00fc2054686520686173682069732067656e657261746564207573696e67205b606672616d655f73797374656d3a3a436f6e6669673a3a48617368696e67605d2e4c5061676564546172676574536e617073686f74000108050594f90e04000c6c20506167696e617465642074617267657420736e617073686f742e00590120466f72207468652074696d65206265696e672c2073696e636520776520617373756d65206f6e65207061676573206f6620746172676574732c206174206d6f7374204f4e45206b65792077696c6c2065786973742e5c5061676564546172676574536e617073686f74486173680001080505943404000c35012053616d65206173205b605061676564546172676574536e617073686f74605d2c206275742069742077696c6c2073746f7265207468652068617368206f662074686520736e617073686f742e00fc2054686520686173682069732067656e657261746564207573696e67205b606672616d655f73797374656d3a3a436f6e6669673a3a48617368696e67605d2e01450601b50a1834556e7369676e656450686173651010960000000480204475726174696f6e206f662074686520756e7369676e65642070686173652e2c5369676e656450686173651010960000000478204475726174696f6e206f6620746865207369676e65642070686173652e545369676e656456616c69646174696f6e506861736510100002000014a4204475726174696f6e206f66207468652073696e6765642076616c69646174696f6e2070686173652e00550120546865206475726174696f6e206f6620746869732073686f756c64206e6f74206265206c657373207468616e2060543a3a5061676573602c20616e64207468657265206973206e6f20706f696e7420696e2069746501206265696e67206d6f7265207468616e20605369676e656450686173653a3a4d61785375626d697373696f6e3a3a6765742829202a20543a3a5061676573602e20544f444f3a20696e74656772697479207465737420666f72102069742e54566f746572536e617073686f74506572426c6f636b1010c002000004c820546865206e756d626572206f6620736e617073686f7420766f7465727320746f2066657463682070657220626c6f636b2e58546172676574536e617073686f74506572426c6f636b1010d007000004cc20546865206e756d626572206f6620736e617073686f74207461726765747320746f2066657463682070657220626c6f636b2e145061676573101020000000185420546865206e756d626572206f662070616765732e0001012054686520736e617073686f74206973206372656174656420776974682074686973206d616e79206b65797320696e207468652073746f72616765206d61702e0051012054686520736f6c7574696f6e73206d617920636f6e7461696e206174204d4f53542074686973206d616e792070616765732c20627574206c657373207061676573206172652061636365707461626c65206173182077656c6c2e01fd0e5500684d756c7469426c6f636b456c656374696f6e566572696669657201684d756c7469426c6f636b456c656374696f6e56657269666965721c3c517565756564536f6c7574696f6e58000108050594510604001c3d0120546865206058602076617269616e74206f66207468652063757272656e742071756575656420736f6c7574696f6e2e204d69676874206265207468652076616c6964206f6e65206f72206e6f742e006901205468652074776f2076617269616e7473206f6620746869732073746f72616765206974656d20697320746f2061766f696420746865206e656564206f6620636f7079696e672e20526563616c6c2074686174206f6e6365206171012060566572696679696e67536f6c7574696f6e60206973206265696e672070726f6365737365642c206974206e6565647320746f20777269746520697473207061727469616c20737570706f727473202a736f6d6577686572652a2e69012057726974696e672074686573657320737570706f727473206f6e20746f70206f662061202a676f6f642a2071756575656420737570706f7274732069732077726f6e672c2073696e6365207765206d69676874206261696c2e75012057726974696e67207468656d20746f20612062756767657220616e6420636f7079696e6720617420746865206e656420697320736c696768746c79206265747465722c2062757420657870656e736976652e205468697320666c61677c2073797374656d2069732062657374206f6620626f746820776f726c64732e3c517565756564536f6c7574696f6e5900010805059451060400043d0120546865206059602076617269616e74206f66207468652063757272656e742071756575656420736f6c7574696f6e2e204d69676874206265207468652076616c6964206f6e65206f72206e6f742e4851756575656456616c696456617269616e740101040510010f0401085d0120506f696e74657220746f207468652076617269616e74206f66205b60517565756564536f6c7574696f6e58605d206f72205b60517565756564536f6c7574696f6e59605d20746861742069732063757272656e746c791c2076616c69642e58517565756564536f6c7574696f6e4261636b696e6773000108050594050f040020d420546865206028616d6f756e742c20636f756e742960206f66206261636b696e67732c20646976696465642070657220706167652e00710120546869732069732073746f726564206265636175736520696e20746865206c61737420626c6f636b206f6620766572696669636174696f6e207765206e656564207468656d20746f20636f6d70757465207468652073636f72652c9820616e6420636865636b20604d61784261636b65727350657257696e6e657246696e616c602e00710120546869732063616e206f6e6c792065766572206c69766520666f722074686520696e76616c69642076617269616e74206f662074686520736f6c7574696f6e2e204f6e63652069742069732076616c69642c20776520646f6e27741501206e656564207468697320696e666f726d6174696f6e20616e796d6f72653b207468652073636f726520697320616c726561647920636f6d7075746564206f6e636520696ef4205b60517565756564536f6c7574696f6e53636f7265605d2c20616e6420746865206261636b696e6720636f756e74732061726520636865636b65642e4c517565756564536f6c7574696f6e53636f72650001040510710604000cd8205468652073636f7265206f66207468652076616c69642076617269616e74206f66205b60517565756564536f6c7574696f6e605d2e00b82054686973206f6e6c792065766572206c6976657320666f7220746865206076616c6964602076617269616e742e304d696e696d756d53636f726500007106040004550120546865206d696e696d756d2073636f72652074686174206561636820736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e73696465726564206665617369626c652e3453746174757353746f726167650100150f040104742053746f72616765206974656d20666f72205b60537461747573605d2e01750601b90a1070536f6c7574696f6e496d70726f76656d656e745468726573686f6c64fd051000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e206173282022626574746572222e604d61784261636b65727350657257696e6e657246696e616c1010e4570000141d01204d6178696d756d206e756d626572206f66206261636b6572732c207065722077696e6e65722c20616d6f6e6720616c6c207061676573206f6620616e20656c656374696f6e2e00050120546869732063616e206f6e6c7920626520636865636b65642061742074686520766572792066696e616c2073746570206f6620766572696669636174696f6e2e005d01204e4f54453a20617420746865206d6f6d656e742c20776520646f6e277420636865636b20746869732c20616e6420697420697320696e20706c61636520666f722066757475726520636f6d7061746962696c6974792e4c4d61784261636b65727350657257696e6e65721010c002000004c4204d6178696d756d206e756d626572206f66206261636b6572732c207065722077696e6e65722c2070657220706167652e444d617857696e6e657273506572506167651010e8030000086101204d6178696d756d206e756d626572206f6620737570706f7274732028616b612e2077696e6e6572732f76616c696461746f72732f746172676574732920746861742063616e20626520726570726573656e74656420696e4c20612070616765206f6620726573756c74732e005600684d756c7469426c6f636b456c656374696f6e556e7369676e6564000179060000005700604d756c7469426c6f636b456c656374696f6e5369676e656401604d756c7469426c6f636b456c656374696f6e5369676e65641034496e76756c6e657261626c65730100f10e0400241501204163636f756e74732077686974656c697374656420627920676f7665726e616e636520746f20616c77617973207375626d697420746865697220736f6c7574696f6e732e007020546865792061726520646966666572656e7420696e20746861743a00fc202a205468657920616c77617973207061792061206669786564206465706f73697420666f72207375626d697373696f6e2c20737065636966696564206279f42020205b60436f6e6669673a3a496e76756c6e657261626c654465706f736974605d2e205468657920706179206e6f2070616765206465706f7369742e6901202a204966205f656a65637465645f2062792062657474657220736f6c7574696f6e2066726f6d205b60536f7274656453636f726573605d2c20746865792077696c6c206765742074686569722066756c6c206465706f736974202020206261636b2e0901202a205468657920616c77617973206765742074686569722074782d666565206261636b206576656e206966207468657920617265205f6469736361726465645f2e30536f7274656453636f7265730101040510190f040000445375626d697373696f6e53746f7261676500010c050505250f8506040004ec20547269706c65206d61702066726f6d2028726f756e642c206163636f756e742c20706167652920746f206120736f6c7574696f6e20706167652e645375626d697373696f6e4d6574616461746153746f726167650001080505690d290f040010d8204d61702066726f6d206163636f756e7420746f20746865206d65746164617461206f66207468656972207375626d697373696f6e2e00710120696e76617269616e743a20666f7220616e79204b657931206f66207479706520604163636f756e7449646020696e205b605375626d697373696f6e73605d2c20746869732073746f72616765206d617020616c736f2068617320611c2076616c75652e01510701c90a0001350f58001c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e34496e76756c6e657261626c65730100190c04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100fd0510000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c65646765720001040200390f0400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e14506179656500010405005d0704000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f7273010104050061070800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f727300010405003d0f04004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b65727300010405009c040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400107c205468652063757272656e7420706c616e6e65642065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e244163746976654572610000410f040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d7573742062659820657175616c20746f207768617420697320524327732073657373696f6e2070616c6c65742e28426f6e646564457261730100450f04001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c457261735374616b6572734f766572766965770001080505690d490f040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742ea02053686f756c64206f6e6c79206265206163636573736564207468726f756768206045726173602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e40457261735374616b657273506167656400010c050505250f4d0f040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79c82074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f756768206045726173602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d6564526577617264730101080505690d5d0f040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f7250726566730101080505690d6107080000140501204578706f73757265206f662076616c696461746f722061742065726120776974682074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510610f14000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100d10a04000454204d6f6465206f662065726120666f7263696e672e404d61785374616b65645265776172647300006d0704000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e0100fd0510000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e304f6666656e636551756575650001080505690d6d0f0400284d012053746f726573207265706f72746564206f6666656e63657320696e206120717565756520756e74696c2074686579206172652070726f63657373656420696e2073756273657175656e7420626c6f636b732e0065012045616368206f6666656e6365206973207265636f7264656420756e6465722074686520636f72726573706f6e64696e672065726120696e64657820616e6420746865206f6666656e64696e672076616c696461746f7227737101206163636f756e742e20496620616e206f6666656e6365207370616e73206d756c7469706c652070616765732c206f6e6c79206f6e6520706167652069732070726f63657373656420617420612074696d652e204f6666656e6365733d01206172652068616e646c65642073657175656e7469616c6c792c2077697468207468656972206173736f63696174656420736c617368657320636f6d707574656420616e642073746f72656420696e51012060556e6170706c696564536c6173686573602e20546865736520736c617368657320617265207468656e206170706c69656420696e206120667574757265206572612061732064657465726d696e6564206279582060536c61736844656665724475726174696f6e602e00510120416e79206f6666656e636573207469656420746f20616e20657261206f6c646572207468616e2060426f6e64696e674475726174696f6e6020617265206175746f6d61746963616c6c792064726f707065642ed02050726f63657373696e6720616c77617973207072696f726974697a657320746865206f6c64657374206572612066697273742e404f6666656e63655175657565457261730000710f04002c750120547261636b73207468652065726173207468617420636f6e7461696e206f6666656e63657320696e20604f6666656e63655175657565602c20736f727465642066726f6d202a2a6561726c6965737420746f206c61746573742a2a2e004d01202d205468697320656e737572657320656666696369656e742072657472696576616c206f6620746865206f6c64657374206f6666656e636520776974686f757420697465726174696e67207468726f7567684020604f6666656e63655175657565602e6501202d205768656e2061206e6577206f6666656e636520697320616464656420746f20604f6666656e63655175657565602c2069747320657261206973202a2a696e73657274656420696e20736f72746564206f726465722a2a60206966206e6f7420616c72656164792070726573656e742e4101202d205768656e20616c6c206f6666656e63657320666f7220616e20657261206172652070726f6365737365642c206974206973202a2a72656d6f7665642a2a2066726f6d2074686973206c6973742e1501202d20546865206d6178696d756d206c656e677468206f66207468697320766563746f7220697320626f756e6465642062792060426f6e64696e674475726174696f6e602e007101205468697320656c696d696e6174657320746865206e65656420666f7220657870656e7369766520697465726174696f6e20616e6420736f7274696e67207768656e206665746368696e6720746865206e657874206f6666656e63653020746f2070726f636573732e4450726f63657373696e674f6666656e63650000750f0400301d0120547261636b73207468652063757272656e746c792070726f636573736564206f6666656e6365207265636f72642066726f6d2074686520604f6666656e63655175657565602e004d01202d205768656e2070726f63657373696e67206f6666656e6365732c20616e206f6666656e6365207265636f7264206973202a2a706f707065642a2a2066726f6d20746865206f6c646573742065726120696e88202020604f6666656e636551756575656020616e642073746f72656420686572652e7501202d205468652066756e6374696f6e206070726f636573735f6f6666656e6365602072656164732066726f6d20746869732073746f726167652c2070726f63657373696e67206f6e652070616765206f66206578706f7375726520617428202020612074696d652e6501202d2041667465722070726f63657373696e67206120706167652c2074686520606578706f737572655f706167656020636f756e74206973202a2a64656372656d656e7465642a2a20756e74696c2069742072656163686573202020207a65726f2e2501202d204f6e63652066756c6c792070726f6365737365642c20746865206f6666656e6365207265636f72642069732072656d6f7665642066726f6d20746869732073746f726167652e006501205468697320656e73757265732074686174206f6666656e636573206172652070726f63657373656420696e6372656d656e74616c6c792c2070726576656e74696e672065786365737369766520636f6d7075746174696f6efc20696e20612073696e676c6520626c6f636b207768696c65206d61696e7461696e696e6720636f727265637420736c617368696e67206265686176696f722e40556e6170706c696564536c61736865730001080505790f7d0f040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e4043616e63656c6c6564536c61736865730101040510850f04001451012043616e63656c6c656420736c61736865732062792065726120616e642076616c696461746f722077697468206d6178696d756d20736c617368206672616374696f6e20746f2062652063616e63656c6c65642e004501205768656e20736c6173686573206172652063616e63656c6c656420627920676f7665726e616e63652c20746869732073746f726573207468652065726120616e64207468652076616c696461746f727355012077686f736520736c61736865732073686f756c642062652063616e63656c6c65642c20616c6f6e67207769746820746865206d6178696d756d20736c617368206672616374696f6e20746861742073686f756c64842062652063616e63656c6c656420666f7220656163682076616c696461746f722e4c56616c696461746f72536c617368496e4572610001080505690d610a040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e384368696c6c5468726573686f6c6400006d0704000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e4c566f746572536e617073686f745374617475730100890f0402108020566f74657220736e617073686f742070726f6772657373207374617475732e006901204966207468652073746174757320697320604f6e676f696e67602c206974206b65657073206120637572736f72206f6620746865206c61737420766f7465722072657472696576656420746f2070726f63656564207768656e84206372656174696e6720746865206e65787420736e617073686f7420706167652e404e657874456c656374696f6e506167650000100400180101204b6565707320747261636b206f6620616e206f6e676f696e67206d756c74692d7061676520656c656374696f6e20736f6c7574696f6e20726571756573742e0065012049662060536f6d65285f2960602c20697420697320746865206e6578742070616765207468617420776520696e74656e6420746f20656c6563742e20496620604e6f6e65602c20776520617265206e6f7420696e207468654820656c656374696f6e2070726f636573732e0039012054686973206973206f6e6c792073657420696e206d756c74692d626c6f636b20656c656374696f6e732e2053686f756c6420616c7761797320626520604e6f6e6560206f74686572776973652e40456c65637461626c655374617368657301008d0f0400045101204120626f756e646564206c697374206f66207468652022656c65637461626c65222073746173686573207468617420726573756c7465642066726f6d2061207375636365737366756c20656c656374696f6e2e3c4572615072756e696e6753746174650001040510910f040004450120547261636b73207468652063757272656e742073746570206f6620657261207072756e696e672070726f6365737320666f72206561636820657261206265696e67206c617a696c79207072756e65642e01590701cd0a2c30486973746f72794465707468101054000000348c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d290120486973746f727944657074682c2063757272656e745f6572615d603a20604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602ce0206045726173526577617264506f696e7473602c206045726173546f74616c5374616b65602c2060436c61696d656452657761726473602cac2060457261735374616b6572735061676564602c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e3853657373696f6e73506572457261101006000000042d01204e756d626572206f662073657373696f6e7320706572206572612c206173207065722074686520707265666572656e636573206f6620746865202a2a72656c617920636861696e2a2a2e44506c616e6e696e674572614f6666736574101002000000385101204e756d626572206f662073657373696f6e73206265666f72652074686520656e64206f6620616e20657261207768656e2074686520656c656374696f6e20666f7220746865206e657874206572612077696c6c1c2073746172742e005d01202d20546869732064657465726d696e657320686f77206d616e792073657373696f6e73202a2a6265666f72652a2a20746865206c6173742073657373696f6e206f66207468652065726120746865207374616b696e6784202020656c656374696f6e2070726f636573732073686f756c6420626567696e2e4d01202d205468652076616c756520697320626f756e646564206265747765656e202a2a312a2a2028656c656374696f6e207374617274732061742074686520626567696e6e696e67206f6620746865206c6173745d0120202073657373696f6e2920616e64206053657373696f6e73506572457261602028656c656374696f6e207374617274732061742074686520626567696e6e696e67206f66207468652066697273742073657373696f6e3c2020206f662074686520657261292e003420232323204578616d706c653a4901202d204966206053657373696f6e73506572457261203d20366020616e642060506c616e6e696e674572614f6666736574203d2031602c2074686520656c656374696f6e207374617274732061742074686590202020626567696e6e696e67206f662073657373696f6e206036202d2031203d2035602e5d01202d2049662060506c616e6e696e674572614f6666736574203d2036602c2074686520656c656374696f6e207374617274732061742074686520626567696e6e696e67206f662073657373696f6e206036202d2036203de820202030602c206d65616e696e672069742073746172747320617420746865207665727920626567696e6e696e67206f6620746865206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000200002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e003d01204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746fac2072656475636520776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e3c4d617856616c696461746f725365741010e803000010150120546865206162736f6c757465206d6178696d756d206f662077696e6e65722076616c696461746f727320746869732070616c6c65742073686f756c642072657475726e2e00410120417320746869732070616c6c657420737570706f727473206d756c74692d626c6f636b20656c656374696f6e2c2074686520736574206f662077696e6e65722076616c696461746f7273202a7065728c20656c656374696f6e2a20697320626f756e646564206279207468697320747970652e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e404d6178496e76756c6e657261626c657310101400000004ac204d6178696d756d206e756d626572206f6620696e76756c6e657261626c652076616c696461746f72732e384d61784572614475726174696f6e3020008ab9070000000020b8204d6178696d756d20616c6c6f77656420657261206475726174696f6e20696e206d696c6c697365636f6e64732e00510120546869732070726f7669646573206120646566656e7369766520757070657220626f756e6420746f20636170207468652065666665637469766520657261206475726174696f6e2c2070726576656e74696e676101206578636573736976656c79206c6f6e6720657261732066726f6d2063617573696e672072756e6177617920696e666c6174696f6e2028652e672e2c2064756520746f2062756773292e204966207468652061637475616c150120657261206475726174696f6e206578636565647320746869732076616c75652c2069742077696c6c20626520636c616d70656420746f2074686973206d6178696d756d2e000101204578616d706c653a20466f7220616e20696465616c20657261206475726174696f6e206f6620323420686f757273202838362c3430302c303030206d73292cb020746869732063616e2062652073657420746f203630342c3830302c303030206d732028372064617973292e3c4d61785072756e696e674974656d73101064000000141501204d6178696d756d206e756d626572206f662073746f72616765206974656d7320746861742063616e206265207072756e656420696e20612073696e676c652063616c6c2e005901205468697320636f6e74726f6c7320686f77206d616e792073746f72616765206974656d732063616e2062652064656c6574656420696e20656163682063616c6c20746f20607072756e655f6572615f73746570602e4d0120546869732073686f756c642062652073657420746f206120636f6e7365727661746976652076616c75652028652e672e2c203130302d353030206974656d732920746f20656e73757265207072756e696e67550120646f65736e277420636f6e73756d6520746f6f206d75636820626c6f636b2073706163652e205468652061637475616c207765696768742069732064657465726d696e65642062792062656e63686d61726b732e01950f59001441684f7073011441684f70730c3852634c656173655265736572766500010c050505990f18040038050120416d6f756e74206f662062616c616e636520746861742077617320726573657276656420666f722077696e6e696e672061206c656173652061756374696f6e2e0065012060756e726573657276655f6c656173655f6465706f736974602063616e206265207065726d697373696f6e6c6573736c792063616c6c6564206f6e63652074686520626c6f636b206e756d6265722070617373656420746f550120756e7265736572766520746865206465706f7369742e20497420697320696d706c696369746c792063616c6c6564206279206077697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e602e082020690120546865206163636f756e7420686572652063616e2065697468657220626520612063726f77646c6f616e206163636f756e74206f72206120736f6c6f206269646465722e20496620697420697320612063726f77646c6f616e6901206163636f756e742c207468656e207468652073756d6d656420757020636f6e747269627574696f6e7320666f7220697420696e2074686520636f6e747269627574696f6e73206d61702077696c6c20657175617465207468655c2072657365727665642062616c616e636520686572652e006420546865206b6579732061726520617320666f6c6c6f77733ae8202d20426c6f636b206e756d62657220616674657220776869636820746865206465706f7369742063616e20626520756e72657365727665642e84202d2054686520706172615f6964206f6620746865206c6561736520736c6f742ed4202d20546865206163636f756e7420746861742077696c6c2068617665207468652062616c616e636520756e72657365727665642e80202d205468652062616c616e636520746f20626520756e72657365727665642e5c526343726f77646c6f616e436f6e747269627574696f6e00010c050505990f6506040030fc20416d6f756e74206f662062616c616e63652074686174206120636f6e7472696275746f72206d61646520746f776172647320612063726f77646c6f616e2e005d01206077697468647261775f63726f77646c6f616e5f636f6e747269627574696f6e602063616e206265207065726d697373696f6e6c6573736c792063616c6c6564206f6e63652074686520626c6f636b206e756d626572d42070617373656420746f20756e6c6f636b207468652062616c616e636520666f722061207370656369666963206163636f756e742e006420546865206b6579732061726520617320666f6c6c6f77733ae0202d20426c6f636b206e756d626572206166746572207768696368207468652062616c616e63652063616e20626520756e6c6f636b65642e80202d2054686520706172615f6964206f66207468652063726f77646c6f616e2ea8202d20546865206163636f756e742074686174206d6164652074686520636f6e747269627574696f6e2e004101205468652076616c7565206973202866756e645f706f742c2062616c616e6365292e2054686520636f6e747269627574696f6e20706f7420697320746865207365636f6e64206b657920696e207468658c2060526343726f77646c6f616e436f6e747269627574696f6e602073746f726167652e48526343726f77646c6f616e5265736572766500010c050505990f18040024c82054686520726573657276652074686174207761732074616b656e20746f2063726561746520612063726f77646c6f616e2e0011012054686973206973206e6f726d616c6c792035303020444f5420616e642063616e20626520726566756e646564206173206c617374207374657020616674657220616c6cf42060526343726f77646c6f616e436f6e747269627574696f6e6073206f662074686973206c6f616e2068617665206265656e2077697468647261776e2e0018204b6579733ac8202d20426c6f636b206e756d62657220616674657220776869636820746869732063616e20626520756e72657365727665647c202d2054686520706172615f6964206f66207468652063726f77646c6f616ed0202d20546865206163636f756e7420746861742077696c6c2068617665207468652062616c616e636520756e726573657276656401a10701dd0a00019d0ffe002841684d69677261746f72012841684d69677261746f721c2852634163636f756e74730001040500ad0704000c2101205243206163636f756e74732074686174206661696c656420746f206d696772617465207768656e2077657265207265636569766564206f6e20746865204173736574204875622e007501205468697320697320756e6c696b656c7920746f2068617070656e2c2073696e6365207765206472792072756e20746865206d6967726174696f6e2c20627574207765206b65657020697420666f7220636f6d706c6574656e6573732e4041684d6967726174696f6e53746167650100650a0400047c2054686520417373657420487562206d6967726174696f6e2073746174652e40416842616c616e6365734265666f72650100a10f8000000000000000000000000000000000000000000000000000000000000000000c75012048656c7065722073746f72616765206974656d20746f2073746f72652074686520746f74616c2062616c616e6365202f20746f74616c2069737375616e6365206f66206e617469766520746f6b656e206174207468652073746172747501206f6620746865206d6967726174696f6e2e2053696e63652074656c65706f727473206172652064697361626c656420647572696e67206d6967726174696f6e2c2074686520746f74616c2069737375616e63652077696c6c206e6f74cc206368616e676520666f72206f7468657220726561736f6e207468616e20746865206d6967726174696f6e20697473656c662e58446d7051756575655072696f72697479436f6e6669670100690a040018c020546865207072696f72697479206f662074686520444d5020717565756520647572696e67206d6967726174696f6e2e00710120436f6e74726f6c7320686f772074686520444d502028446f776e77617264204d6573736167652050617373696e67292071756575652069732070726f6365737365642072656c617469766520746f206f7468657220717565756573650120647572696e6720746865206d6967726174696f6e2070726f636573732e20546869732068656c707320656e737572652074696d656c792070726f63657373696e67206f66206d6967726174696f6e206d657373616765732e6d01205468652064656661756c74207072696f72697479207061747465726e20697320646566696e656420696e207468652070616c6c657420636f6e66696775726174696f6e2c206275742063616e206265206f76657272696464656e8420627920612073746f726167652076616c7565206f66207468697320747970652e1c4d616e616765720000000400109420416e206f7074696f6e616c206163636f756e74206964206f662061206d616e616765722e0045012054686973206163636f756e74206964206861732073696d696c61722070726976696c6567657320746f205b60436f6e6669673a3a41646d696e4f726967696e605d206578636570742074686174206974ec2063616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e4c4d6967726174696f6e5374617274426c6f636b0000100400105d012054686520626c6f636b206e756d62657220617420776869636820746865206d6967726174696f6e20626567616e20616e64207468652070616c6c657427732065787472696e736963732077657265206c6f636b65642e00150120546869732076616c756520697320736574207768656e20656e746572696e6720746865206057616974696e67466f724168602073746167652c20692e652e2c207768656ec4206052634d6967726174696f6e53746167653a3a69735f6f6e676f696e67282960206265636f6d6573206074727565602e444d6967726174696f6e456e64426c6f636b0000100400100d0120426c6f636b206e756d626572207768656e206d6967726174696f6e2066696e697368656420616e642065787472696e73696373207765726520756e6c6f636b65642e00fc205468697320697320736574207768656e20656e746572696e672074686520604d6967726174696f6e446f6e65602073746167652068656e6365207768656ec8206052634d6967726174696f6e53746167653a3a69735f66696e6973686564282960206265636f6d6573206074727565602e01a50701e10a0001a50fff0004f10355038505a90f2448436865636b4e6f6e5a65726f53656e646572ad0f9c40436865636b5370656356657273696f6eb10f1038436865636b547856657273696f6eb50f1030436865636b47656e65736973b90f3438436865636b4d6f7274616c697479bd0f3428436865636b4e6f6e6365c50f9c2c436865636b576569676874c90f9c50436861726765417373657454785061796d656e74cd0f9c44436865636b4d6574616461746148617368d10f88d90f641c417572614170690834736c6f745f6475726174696f6e00dd0f0c902052657475726e732074686520736c6f74206475726174696f6e20666f7220417572612e0025012043757272656e746c792c206f6e6c79207468652076616c75652070726f7669646564206279207468697320747970652061742067656e657369732077696c6c20626520757365642e2c617574686f72697469657300550c049c2052657475726e207468652063757272656e7420736574206f6620617574686f7269746965732e04b820415049206e656365737361727920666f7220626c6f636b20617574686f7273686970207769746820617572612e5052656c6179506172656e744f6666736574417069044c72656c61795f706172656e745f6f6666736574001004f42046657463682074686520736c6f74206f666673657420746861742069732065787065637465642066726f6d207468652072656c617920636861696e2e1005012041504920746f2074656c6c20746865206e6f6465207369646520686f77207468652072656c617920706172656e742073686f756c642062652063686f73656e2e0069012041206c6172676572206f666673657420696e646963617465732074686174207468652072656c617920706172656e742073686f756c64206e6f742062652074686520746970206f66207468652072656c617920636861696e2c31012062757420604e6020626c6f636b7320626568696e6420746865207469702e2054686973206f6666736574206973207468656e20656e666f72636564206279207468652072756e74696d652e6041757261556e696e636c756465645365676d656e74417069043863616e5f6275696c645f75706f6e0834696e636c756465645f686173683410736c6f74590c202839012057686574686572206974206973206c6567616c20746f20657874656e642074686520636861696e2c20617373756d696e672074686520676976656e20626c6f636b20697320746865206d6f7374350120726563656e746c7920696e636c75646564206f6e652061732d6f66207468652072656c617920706172656e7420746861742077696c6c206265206275696c7420616761696e73742c20616e64702074686520676976656e2072656c617920636861696e20736c6f742e00510120546869732073686f756c6420626520636f6e73697374656e74207769746820746865206c6f676963207468652072756e74696d652075736573207768656e2076616c69646174696e6720626c6f636b7320746f382061766f6964206973737565732e006101205768656e2074686520756e696e636c75646564207365676d656e7420697320656d7074792c20692e652e2060696e636c756465645f68617368203d3d206174602c2077686572652061742069732074686520626c6f636b61012077686f736520737461746520776520617265207175657279696e6720616761696e73742c2074686973206d75737420616c776179732072657475726e20607472756560206173206c6f6e672061732074686520736c6f74bc206973206d6f726520726563656e74207468616e2074686520696e636c7564656420626c6f636b20697473656c662e34350120546869732072756e74696d6520415049206973207573656420746f20696e666f726d20706f74656e7469616c20626c6f636b20617574686f7273207768657468657220746865792077696c6c250120686176652074686520726967687420746f20617574686f72206174206120736c6f742c20617373756d696e672074686579206861766520636c61696d65642074686520736c6f742e00750120496e20706172746963756c61722c20746869732041504920616c6c6f777320417572612d62617365642070617261636861696e7320746f20726567756c6174652074686569722022756e696e636c75646564207365676d656e74222c6d01207768696368206973207468652073656374696f6e206f66207468652068656164206f662074686520636861696e20776869636820686173206e6f7420796574206265656e206d61646520617661696c61626c6520696e20746865342072656c617920636861696e2e006101205768656e2074686520756e696e636c75646564207365676d656e742069732073686f72742c204175726120636861696e732077696c6c20616c6c6f7720617574686f727320746f20637265617465206d756c7469706c655d0120626c6f636b732070657220736c6f7420696e206f7264657220746f206275696c642061206261636b6c6f672e205768656e206974206973207361747572617465642c2074686973204150492077696c6c206c696d6974a82074686520616d6f756e74206f6620626c6f636b7320746861742063616e20626520637265617465642e0024204368616e6765733a9101202d2056657273696f6e20323a2055706461746520746f206063616e5f6275696c645f75706f6e6020746f2074616b6520612072656c617920636861696e2060536c6f746020696e7374656164206f6620612070617261636861696e2060536c6f74602e10436f72650c1c76657273696f6e00150b04902052657475726e73207468652076657273696f6e206f66207468652072756e74696d652e34657865637574655f626c6f636b0414626c6f636be10f9c046420457865637574652074686520676976656e20626c6f636b2e40696e697469616c697a655f626c6f636b04186865616465728503ed0f04410120496e697469616c697a65206120626c6f636b20776974682074686520676976656e2068656164657220616e642072657475726e207468652072756e74696d6520657865637574697665206d6f64652e042101205468652060436f7265602072756e74696d65206170692074686174206576657279205375627374726174652072756e74696d65206e6565647320746f20696d706c656d656e742e204d657461646174610c206d6574616461746100f10f048c2052657475726e7320746865206d65746164617461206f6620612072756e74696d652e4c6d657461646174615f61745f76657273696f6e041c76657273696f6e10f50f10a42052657475726e7320746865206d65746164617461206174206120676976656e2076657273696f6e2e0005012049662074686520676976656e206076657273696f6e602069736e277420737570706f727465642c20746869732077696c6c2072657475726e20604e6f6e65602e750120557365205b6053656c663a3a6d657461646174615f76657273696f6e73605d20746f2066696e64206f75742061626f757420737570706f72746564206d657461646174612076657273696f6e206f66207468652072756e74696d652e446d657461646174615f76657273696f6e7300e9020ca42052657475726e732074686520737570706f72746564206d657461646174612076657273696f6e732e00c020546869732063616e206265207573656420746f2063616c6c20606d657461646174615f61745f76657273696f6e602e0401012054686520604d65746164617461602061706920747261697420746861742072657475726e73206d6574616461746120666f72207468652072756e74696d652e30426c6f636b4275696c646572103c6170706c795f65787472696e736963042465787472696e736963e50ff90f106c204170706c792074686520676976656e2065787472696e7369632e0039012052657475726e7320616e20696e636c7573696f6e206f7574636f6d652077686963682073706563696669657320696620746869732065787472696e73696320697320696e636c7564656420696e4c207468697320626c6f636b206f72206e6f742e3866696e616c697a655f626c6f636b00850304682046696e697368207468652063757272656e7420626c6f636b2e4c696e686572656e745f65787472696e736963730420696e686572656e740910e90f043d012047656e657261746520696e686572656e742065787472696e736963732e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e3c636865636b5f696e686572656e74730814626c6f636be10f10646174610910191004550120436865636b20746861742074686520696e686572656e7473206172652076616c69642e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e047101205468652060426c6f636b4275696c646572602061706920747261697420746861742070726f7669646573207468652072657175697265642066756e6374696f6e616c69747920666f72206275696c64696e67206120626c6f636b2e585461676765645472616e73616374696f6e5175657565045076616c69646174655f7472616e73616374696f6e0c18736f757263651d10087478e50f28626c6f636b5f6861736834211024682056616c696461746520746865207472616e73616374696f6e2e0065012054686973206d6574686f6420697320696e766f6b656420627920746865207472616e73616374696f6e20706f6f6c20746f206c6561726e2064657461696c732061626f757420676976656e207472616e73616374696f6e2e45012054686520696d706c656d656e746174696f6e2073686f756c64206d616b65207375726520746f207665726966792074686520636f72726563746e657373206f6620746865207472616e73616374696f6e4d0120616761696e73742063757272656e742073746174652e2054686520676976656e2060626c6f636b5f686173686020636f72726573706f6e647320746f207468652068617368206f662074686520626c6f636b7c207468617420697320757365642061732063757272656e742073746174652e004501204e6f7465207468617420746869732063616c6c206d617920626520706572666f726d65642062792074686520706f6f6c206d756c7469706c652074696d657320616e64207472616e73616374696f6e73a4206d6967687420626520766572696669656420696e20616e7920706f737369626c65206f726465722e044d012054686520605461676765645472616e73616374696f6e5175657565602061706920747261697420666f7220696e746572666572696e67207769746820746865207472616e73616374696f6e2071756575652e444f6666636861696e576f726b6572417069043c6f6666636861696e5f776f726b6572041868656164657285039c04c82053746172747320746865206f66662d636861696e207461736b20666f7220676976656e20626c6f636b206865616465722e046420546865206f6666636861696e20776f726b6572206170692e2c53657373696f6e4b657973085467656e65726174655f73657373696f6e5f6b657973041073656564b90c381c15012047656e6572617465206120736574206f662073657373696f6e206b6579732077697468206f7074696f6e616c6c79207573696e672074686520676976656e20736565642e090120546865206b6579732073686f756c642062652073746f7265642077697468696e20746865206b657973746f7265206578706f736564207669612072756e74696d653c2065787465726e616c69746965732e00b0205468652073656564206e6565647320746f20626520612076616c69642060757466386020737472696e672e00d02052657475726e732074686520636f6e636174656e61746564205343414c4520656e636f646564207075626c6963206b6579732e4c6465636f64655f73657373696f6e5f6b657973041c656e636f6465643829100c98204465636f64652074686520676976656e207075626c69632073657373696f6e206b6579732e00dc2052657475726e7320746865206c697374206f66207075626c696320726177207075626c6963206b657973202b206b657920747970652e04682053657373696f6e206b6579732072756e74696d65206170692e4c52756e74696d655669657746756e6374696f6e0454657865637574655f766965775f66756e6374696f6e082071756572795f6964351014696e707574383910047c2045786563757465206120766965772066756e6374696f6e2071756572792e04a42052756e74696d652041504920666f7220657865637574696e6720766965772066756e6374696f6e733c4163636f756e744e6f6e636541706904346163636f756e745f6e6f6e6365041c6163636f756e74001004c0204765742063757272656e74206163636f756e74206e6f6e6365206f6620676976656e20604163636f756e744964602e0480205468652041504920746f207175657279206163636f756e74206e6f6e63652e545472616e73616374696f6e5061796d656e74417069102871756572795f696e666f080c757874e50f0c6c656e104110004471756572795f6665655f64657461696c73080c757874e50f0c6c656e104510004c71756572795f7765696768745f746f5f66656504187765696768742818004c71756572795f6c656e6774685f746f5f66656504186c656e67746810180000645472616e73616374696f6e5061796d656e7443616c6c417069103c71756572795f63616c6c5f696e666f081063616c6c55030c6c656e10411004490120517565727920696e666f726d6174696f6e206f66206120646973706174636820636c6173732c207765696768742c20616e6420666565206f66206120676976656e20656e636f646564206043616c6c602e5871756572795f63616c6c5f6665655f64657461696c73081063616c6c55030c6c656e10451004b4205175657279206665652064657461696c73206f66206120676976656e20656e636f646564206043616c6c602e4c71756572795f7765696768745f746f5f6665650418776569676874281804010120517565727920746865206f7574707574206f66207468652063757272656e742060576569676874546f4665656020676976656e20736f6d6520696e7075742e4c71756572795f6c656e6774685f746f5f66656504186c656e677468101804010120517565727920746865206f7574707574206f66207468652063757272656e7420604c656e677468546f4665656020676976656e20736f6d6520696e7075742e003458636d5061796d656e74417069107c71756572795f61636365707461626c655f7061796d656e745f617373657473042c78636d5f76657273696f6e10511014b42052657475726e732061206c697374206f662061636365707461626c65207061796d656e74206173736574732e0030202320417267756d656e74730068202a206078636d5f76657273696f6e603a2056657273696f6e2e4071756572795f78636d5f776569676874041c6d65737361676539045d1014a82052657475726e73206120776569676874206e656564656420746f206578656375746520612058434d2e0030202320417267756d656e74730074202a20606d657373616765603a206056657273696f6e656458636d602e6471756572795f7765696768745f746f5f61737365745f666565081877656967687428146173736574e104611018e820436f6e766572747320612077656967687420696e746f20612066656520666f722074686520737065636966696564206041737365744964602e0030202320417267756d656e74730088202a2060776569676874603a20636f6e7665727469626c652060576569676874602e7c202a20606173736574603a206056657273696f6e656441737365744964602e4c71756572795f64656c69766572795f66656573082c64657374696e6174696f6e91021c6d65737361676539046510201d01204765742064656c6976657279206665657320666f722073656e64696e67206120737065636966696320606d6573736167656020746f2061206064657374696e6174696f6e602ef420546865736520616c7761797320636f6d6520696e20612073706563696669632061737365742c20646566696e65642062792074686520636861696e2e0030202320417267756d656e74738101202a20606d657373616765603a20546865206d6573736167652074686174276c6c2062652073656e742c206e65636573736172792062656361757365206d6f73742064656c6976657279206665657320617265206261736564206f6e207468655c20202073697a65206f6620746865206d6573736167652e6101202a206064657374696e6174696f6e603a205468652064657374696e6174696f6e20746f2073656e6420746865206d65737361676520746f2e20446966666572656e742064657374696e6174696f6e73206d617920757365c0202020646966666572656e742073656e6465727320746861742063686172676520646966666572656e7420666565732e2c702041207472616974206f662058434d207061796d656e74204150492e00a8204150492070726f76696465732066756e6374696f6e616c69747920666f72206f627461696e696e673a00c4202a207468652077656967687420726571756972656420746f206578656375746520616e2058434d206d6573736167652c0501202a2061206c697374206f662061636365707461626c65206041737365744964607320666f72206d65737361676520657865637574696f6e207061796d656e742c0101202a2074686520636f7374206f66207468652077656967687420696e20746865207370656369666965642061636365707461626c65206041737365744964602ea0202a20746865206665657320666f7220616e2058434d206d6573736167652064656c69766572792e00f020546f2064657465726d696e652074686520657865637574696f6e20776569676874206f66207468652063616c6c7320726571756972656420666f727501205b6078636d3a3a6c61746573743a3a496e737472756374696f6e3a3a5472616e73616374605d20696e737472756374696f6e2c20605472616e73616374696f6e5061796d656e7443616c6c417069602063616e20626520757365642e2444727952756e41706908306472795f72756e5f63616c6c0c186f726967696e05051063616c6c55034c726573756c745f78636d735f76657273696f6e1069100444204472792072756e2063616c6c2056322e2c6472795f72756e5f78636d083c6f726967696e5f6c6f636174696f6e91020c78636db10489100450204472792072756e2058434d2070726f6772616d24b1012041504920666f72206472792d72756e6e696e672065787472696e7369637320616e642058434d2070726f6772616d7320746f20676574207468652070726f6772616d732074686174206e65656420746f2062652070617373656420746f207468652066656573204150492e00810120416c6c2063616c6c732072657475726e206120766563746f72206f66207475706c657320286c6f636174696f6e2c2078636d292077686572652065616368202278636d2220697320657865637574656420696e20226c6f636174696f6e222ee42049662074686572652773206c6f63616c20657865637574696f6e2c20746865206c6f636174696f6e2077696c6c206265202248657265222e1d01205468697320766563746f722063616e206265207573656420746f2063616c63756c61746520626f746820657865637574696f6e20616e642064656c697665727920666565732e0099012043616c6c73206f722058434d73206d69676874206661696c207768656e2065786563757465642c207468697320646f65736e2774206d65616e2074686520726573756c74206f662074686573652063616c6c732077696c6c20626520616e2060457272602e650120496e2074686f73652063617365732c207468657265206d69676874207374696c6c20626520612076616c696420726573756c742c20776974682074686520657865637574696f6e206572726f7220696e736964652069742e650120546865206f6e6c7920726561736f6e73207768792074686573652063616c6c73206d696768742072657475726e20616e206572726f7220617265206c697374656420696e20746865205b604572726f72605d20656e756d2e504c6f636174696f6e546f4163636f756e744170690440636f6e766572745f6c6f636174696f6e04206c6f636174696f6e91029110049020436f6e766572747320604c6f636174696f6e6020746f20604163636f756e744964602e040d012041504920666f722075736566756c20636f6e76657273696f6e73206265747765656e2058434d20604c6f636174696f6e6020616e6420604163636f756e744964602e3c547275737465645175657279417069084869735f747275737465645f72657365727665081461737365749910206c6f636174696f6e91029d1014f02052657475726e7320696620746865206c6f636174696f6e20697320612074727573746564207265736572766520666f72207468652061737365742e0030202320417267756d656e747374202a20606173736574603a206056657273696f6e65644173736574602e8c202a20606c6f636174696f6e603a206056657273696f6e65644c6f636174696f6e602e5469735f747275737465645f74656c65706f72746572081461737365749910206c6f636174696f6e91029d1014e02052657475726e73206966207468652061737365742063616e2062652074656c65706f7274656420746f20746865206c6f636174696f6e2e0030202320417267756d656e747374202a20606173736574603a206056657273696f6e65644173736574602e8c202a20606c6f636174696f6e603a206056657273696f6e65644c6f636174696f6e602e04ec2041504920666f72207175657279696e67207472757374656420726573657276657320616e6420747275737465642074656c65706f72746572732e54417574686f72697a6564416c696173657273417069084c617574686f72697a65645f616c69617365727304187461726765749102a51004f42052657475726e73206c6f636174696f6e7320616c6c6f77656420746f20616c69617320696e746f20616e64206163742061732060746172676574602e4c69735f617574686f72697a65645f616c69617308186f726967696e9102187461726765749102ad10041d012052657475726e73207768657468657220606f726967696e6020697320616c6c6f77656420746f20616c69617320696e746f20616e64206163742061732060746172676574602e04a02041504920666f72207175657279696e672058434d20617574686f72697a656420616c69617365733046756e6769626c6573417069045871756572795f6163636f756e745f62616c616e636573041c6163636f756e7400b11004ec2052657475726e7320746865206c697374206f6620616c6c205b604173736574605d207468617420616e20604163636f756e74496460206861732e04d8205468652041504920666f72207175657279696e67206163636f756e7427732062616c616e6365732066726f6d2072756e74696d652e50436f6c6c656374436f6c6c6174696f6e496e666f0458636f6c6c6563745f636f6c6c6174696f6e5f696e666f04186865616465728503b910109c20436f6c6c65637420696e666f726d6174696f6e2061626f7574206120636f6c6c6174696f6e2e00f42054686520676976656e2060686561646572602069732074686520686561646572206f6620746865206275696c7420626c6f636b20666f722074686174a82077652061726520636f6c6c656374696e672074686520636f6c6c6174696f6e20696e666f20666f722e14d82052756e74696d652061706920746f20636f6c6c65637420696e666f726d6174696f6e2061626f7574206120636f6c6c6174696f6e2e00442056657273696f6e20686973746f72793a0101202d2056657273696f6e20323a204368616e676564205b6053656c663a3a636f6c6c6563745f636f6c6c6174696f6e5f696e666f605d207369676e61747572653501202d2056657273696f6e20333a205369676e616c7320746f20746865206e6f646520746f207573652076657273696f6e2031206f66205b6050617261636861696e426c6f636b44617461605d2e3847656e657369734275696c6465720c2c6275696c645f737461746504106a736f6e38c510286501204275696c64206052756e74696d6547656e65736973436f6e666967602066726f6d2061204a534f4e20626c6f62206e6f74207573696e6720616e792064656661756c747320616e642073746f726520697420696e20746865242073746f726167652e00290120496e207468652063617365206f662061204652414d452d62617365642072756e74696d652c20746869732066756e6374696f6e20646573657269616c697a6573207468652066756c6c5501206052756e74696d6547656e65736973436f6e666967602066726f6d2074686520676976656e204a534f4e20626c6f6220616e64207075747320697420696e746f207468652073746f726167652e2049662074686555012070726f7669646564204a534f4e20626c6f6220697320696e636f7272656374206f7220696e636f6d706c657465206f722074686520646573657269616c697a6174696f6e206661696c732c20616e206572726f72342069732072657475726e65642e005d0120506c65617365206e6f746520746861742070726f7669646564204a534f4e20626c6f62206d75737420636f6e7461696e20616c6c206052756e74696d6547656e65736973436f6e66696760206669656c64732c206e6f5c2064656661756c74732077696c6c20626520757365642e286765745f70726573657404086964c910b90c3861012052657475726e732061204a534f4e20626c6f6220726570726573656e746174696f6e206f6620746865206275696c742d696e206052756e74696d6547656e65736973436f6e66696760206964656e7469666965642062791820606964602e005501204966206069646020697320604e6f6e6560207468652066756e6374696f6e2073686f756c642072657475726e204a534f4e20626c6f6220726570726573656e746174696f6e206f66207468652064656661756c744901206052756e74696d6547656e65736973436f6e6669676020737472756374206f66207468652072756e74696d652e20496d706c656d656e746174696f6e206d7573742070726f766964652064656661756c7460206052756e74696d6547656e65736973436f6e666967602e002101204f74686572776973652066756e6374696f6e2072657475726e732061204a534f4e20726570726573656e746174696f6e206f6620746865206275696c742d696e2c206e616d65645101206052756e74696d6547656e65736973436f6e6669676020707265736574206964656e74696669656420627920606964602c206f7220604e6f6e656020696620737563682070726573657420646f6573206e6f7461012065786973742e2052657475726e656420605665633c75383e6020636f6e7461696e73206279746573206f66204a534f4e20626c6f62202870617463682920776869636820636f6d7072697365732061206c697374206f664d012028706f74656e7469616c6c79206e657374656429206b65792d76616c756520706169727320746861742061726520696e74656e64656420666f7220637573746f6d697a696e67207468652064656661756c7465012072756e74696d652067656e6573697320636f6e6669672e20546865207061746368207368616c6c206265206d657267656420287266633733383629207769746820746865204a534f4e20726570726573656e746174696f6e6101206f66207468652064656661756c74206052756e74696d6547656e65736973436f6e6669676020746f20637265617465206120636f6d70726568656e736976652067656e6573697320636f6e66696720746861742063616e84206265207573656420696e20606275696c645f737461746560206d6574686f642e307072657365745f6e616d657300cd101051012052657475726e732061206c697374206f66206964656e7469666965727320666f7220617661696c61626c65206275696c74696e206052756e74696d6547656e65736973436f6e6669676020707265736574732e0061012054686520707265736574732066726f6d20746865206c6973742063616e20626520717565726965642077697468205b6047656e657369734275696c6465723a3a6765745f707265736574605d206d6574686f642e2049660101206e6f206e616d65642070726573657473206172652070726f7669646564206279207468652072756e74696d6520746865206c69737420697320656d7074792e04f02041504920746f20696e7465726163742077697468206052756e74696d6547656e65736973436f6e6669676020666f72207468652072756e74696d65484173736574436f6e76657273696f6e4170690c8c71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e7310186173736574310d01186173736574320d0118616d6f756e74182c696e636c7564655f666565203d0510fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eac20285573652060616d6f756e745f696e5f6d61786020746f20636f6e74726f6c20736c6970706167652e298c71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e7310186173736574310d01186173736574320d0118616d6f756e74182c696e636c7564655f666565203d0510fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eb020285573652060616d6f756e745f6f75745f6d696e6020746f20636f6e74726f6c20736c6970706167652e29306765745f726573657276657308186173736574310d01186173736574320d01d1100405012052657475726e73207468652073697a65206f6620746865206c697175696469747920706f6f6c20666f722074686520676976656e20617373657420706169722e08210120546869732072756e74696d652061706920616c6c6f77732070656f706c6520746f207175657279207468652073697a65206f6620746865206c697175696469747920706f6f6c737020616e642071756f74652070726963657320666f722073776170732e4047657450617261636861696e496e666f043070617261636861696e5f696400ad0204b0205265747269657665207468652070617261636861696e206964207573656420666f722072756e74696d652e040d012052756e74696d6520617069207573656420746f206163636573732067656e6572616c20696e666f2061626f757420612070617261636861696e2072756e74696d652e484e6f6d696e6174696f6e506f6f6c73417069283c70656e64696e675f72657761726473040c77686f00180435012052657475726e73207468652070656e64696e67207265776172647320666f7220746865206d656d626572207468617420746865204163636f756e7449642077617320676976656e20666f722e44706f696e74735f746f5f62616c616e6365081c706f6f6c5f69641018706f696e7473181804f42052657475726e7320746865206571756976616c656e742062616c616e6365206f662060706f696e74736020666f72206120676976656e20706f6f6c2e4462616c616e63655f746f5f706f696e7473081c706f6f6c5f696410246e65775f66756e6473181804fc2052657475726e7320746865206571756976616c656e7420706f696e7473206f6620606e65775f66756e64736020666f72206120676976656e20706f6f6c2e48706f6f6c5f70656e64696e675f736c617368041c706f6f6c5f6964101804b02052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c2e506d656d6265725f70656e64696e675f736c61736804186d656d626572001810cc2052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c206d656d6265722e004d012049662070656e64696e6720736c617368206f6620746865206d656d626572206578636565647320604578697374656e7469616c4465706f736974602c2069742063616e206265207265706f72746564206f6e1c20636861696e2e74706f6f6c5f6e656564735f64656c65676174655f6d6967726174696f6e041c706f6f6c5f6964102020e42052657475726e7320747275652069662074686520706f6f6c20776974682060706f6f6c5f696460206e65656473206d6967726174696f6e2e00490120546869732063616e2068617070656e207768656e20746865206070616c6c65742d6e6f6d696e6174696f6e2d706f6f6c73602068617320737769746368656420746f207573696e672073747261746567794101205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b6529206275742074686520706f6f6ce8207374696c6c206861732066756e647320746861742077657265207374616b6564207573696e6720746865206f6c6465722073747261746567791901205b5472616e736665725374616b655d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a5472616e736665725374616b65292e205573658901205b606d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65295420746f206d6967726174652074686520706f6f6c2e7c6d656d6265725f6e656564735f64656c65676174655f6d6967726174696f6e04186d656d62657200201c29012052657475726e732074727565206966207468652064656c6567617465642066756e6473206f662074686520706f6f6c20606d656d62657260206e65656473206d6967726174696f6e2e00d8204f6e6365206120706f6f6c20686173207375636365737366756c6c79206d6967726174656420746f207468652073747261746567795501205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b65292c207468652066756e6473206f66207468651901206d656d6265722063616e206265206d696772617465642066726f6d20706f6f6c206163636f756e7420746f20746865206d656d6265722773206163636f756e742e205573652901205b606d6967726174655f64656c65676174696f6e605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f64656c65676174696f6e29a420746f206d696772617465207468652066756e6473206f662074686520706f6f6c206d656d6265722e506d656d6265725f746f74616c5f62616c616e6365040c77686f00180465012052657475726e732074686520746f74616c20636f6e747269627574696f6e206f66206120706f6f6c206d656d62657220696e636c7564696e6720616e792062616c616e6365207468617420697320756e626f6e64696e672e30706f6f6c5f62616c616e6365041c706f6f6c5f69641018049c20546f74616c2062616c616e636520636f6e747269627574656420746f2074686520706f6f6c2e34706f6f6c5f6163636f756e7473041c706f6f6c5f696410d910042d012052657475726e732074686520626f6e646564206163636f756e7420616e6420726577617264206163636f756e74206173736f63696174656420776974682074686520706f6f6c5f69642e04f82052756e74696d652061706920666f7220616363657373696e6720696e666f726d6174696f6e2061626f7574206e6f6d696e6174696f6e20706f6f6c732e285374616b696e674170690c446e6f6d696e6174696f6e735f71756f7461041c62616c616e636518100411012052657475726e7320746865206e6f6d696e6174696f6e732071756f746120666f722061206e6f6d696e61746f722077697468206120676976656e2062616c616e63652e5c657261735f7374616b6572735f706167655f636f756e74080c657261101c6163636f756e7400100439012052657475726e7320746865207061676520636f756e74206f66206578706f737572657320666f7220612076616c696461746f7220606163636f756e746020696e206120676976656e206572612e3c70656e64696e675f72657761726473080c657261101c6163636f756e740020043d012052657475726e7320747275652069662076616c696461746f7220606163636f756e74602068617320706167657320746f20626520636c61696d656420666f722074686520676976656e206572612e00550354dd1000'; diff --git a/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-json.json b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-json.json new file mode 100644 index 0000000..e3a3500 --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-json.json @@ -0,0 +1,8458 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v15": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 663 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 699 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 698 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 702 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + }, + { + "name": "ExtrinsicWeightReclaimed", + "modifier": "Default", + "type": { + "plain": 10 + }, + "fallback": "0x0000", + "docs": [ + " The weight reclaimed for the extrinsic.", + "", + " This information is available until the end of the extrinsic execution.", + " More precisely this information is removed in `note_applied_extrinsic`.", + "", + " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate", + " reduction." + ] + } + ] + }, + "calls": { + "type": 214 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 703, + "value": "0x0700f2052a01000b00204aa9d101020080020265cd1d00010bc026fb7f740102000002010b0068e5cf8b01020020020100000265cd1d00010bc0de5f59ba0102006002010b00204aa9d10102008002010700b864d945020060000265cd1d00000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 706, + "value": "0x000044000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 708, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 709, + "value": "0x2473746174656d696e742473746174656d696e740100000080841e000000000064dd718d5cc53262d40100000004e70521a0d3d2f801000000d7bdd8a272ca0d6502000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c010000002609be83ac4468dc0100000012c8e3d4d7e06de001000000de92b8a0426b9bf602000000ea93e3f16f3d696203000000fbc577b9d747efd6010000008a8047a53a8277ec01000000a2ddb6a58477bf630100000017a6bc0d0062aeb30100000018ef58a3b67ba770010000000f00000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 180, + "value": "0x0000", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 713 + }, + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "storage": { + "prefix": "TeyrchainSystem", + "items": [ + { + "name": "UnincludedSegment", + "modifier": "Default", + "type": { + "plain": 714 + }, + "fallback": "0x00", + "docs": [ + " Latest included block descendants the runtime accepted. In other words, these are", + " ancestors of the currently executing block which have not been included in the observed", + " relay-chain state.", + "", + " The segment length is limited by the capacity returned from the [`ConsensusHook`] configured", + " in the pallet." + ] + }, + { + "name": "AggregatedUnincludedSegment", + "modifier": "Optional", + "type": { + "plain": 723 + }, + "fallback": "0x00", + "docs": [ + " Storage field that keeps track of bandwidth used by the unincluded segment along with the", + " latest HRMP watermark. Used for limiting the acceptance of new blocks with", + " respect to relay chain constraints." + ] + }, + { + "name": "PendingValidationCode", + "modifier": "Default", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " In case of a scheduled upgrade, this storage field contains the validation code to be", + " applied.", + "", + " As soon as the relay chain gives us the go-ahead signal, we will overwrite the", + " [`:code`][sp_core::storage::well_known_keys::CODE] which will result the next block process", + " with the new validation code. This concludes the upgrade process." + ] + }, + { + "name": "NewValidationCode", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " Validation code that is set by the teyrchain and is to be communicated to collator and", + " consequently the relay-chain.", + "", + " This will be cleared in `on_initialize` of each new block if no other pallet already set", + " the value." + ] + }, + { + "name": "ValidationData", + "modifier": "Optional", + "type": { + "plain": 220 + }, + "fallback": "0x00", + "docs": [ + " The [`PersistedValidationData`] set for this block.", + " This value is expected to be set only once per block and it's never stored", + " in the trie." + ] + }, + { + "name": "DidSetValidationCode", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Were the validation data set to notify the relay chain?" + ] + }, + { + "name": "LastRelayChainBlockNumber", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The relay chain block number associated with the last teyrchain block.", + "", + " This is updated in `on_finalize`." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Default", + "type": { + "plain": 724 + }, + "fallback": "0x00", + "docs": [ + " An option which indicates if the relay-chain restricts signalling a validation code upgrade.", + " In other words, if this is `Some` and [`NewValidationCode`] is `Some` then the produced", + " candidate will be invalid.", + "", + " This storage item is a mirror of the corresponding value for the current teyrchain from the", + " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is", + " set after the inherent." + ] + }, + { + "name": "UpgradeGoAhead", + "modifier": "Default", + "type": { + "plain": 721 + }, + "fallback": "0x00", + "docs": [ + " Optional upgrade go-ahead signal from the relay-chain.", + "", + " This storage item is a mirror of the corresponding value for the current teyrchain from the", + " relay-chain. This value is ephemeral which means it doesn't hit the storage. This value is", + " set after the inherent." + ] + }, + { + "name": "RelayStateProof", + "modifier": "Optional", + "type": { + "plain": 222 + }, + "fallback": "0x00", + "docs": [ + " The state proof for the last relay parent block.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "RelevantMessagingState", + "modifier": "Optional", + "type": { + "plain": 726 + }, + "fallback": "0x00", + "docs": [ + " The snapshot of some state related to messaging relevant to the current teyrchain as per", + " the relay parent.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "HostConfiguration", + "modifier": "Optional", + "type": { + "plain": 731 + }, + "fallback": "0x00", + "docs": [ + " The teyrchain host configuration that was obtained from the relay parent.", + "", + " This field is meant to be updated each block with the validation data inherent. Therefore,", + " before processing of the inherent, e.g. in `on_initialize` this data may be stale.", + "", + " This data is also absent from the genesis." + ] + }, + { + "name": "LastDmqMqcHead", + "modifier": "Default", + "type": { + "plain": 733 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The last downward message queue chain head we have observed.", + "", + " This value is loaded before and saved after processing inbound downward messages carried", + " by the system inherent." + ] + }, + { + "name": "LastHrmpMqcHeads", + "modifier": "Default", + "type": { + "plain": 734 + }, + "fallback": "0x00", + "docs": [ + " The message queue chain heads we have observed per each channel incoming channel.", + "", + " This value is loaded before and saved after processing inbound downward messages carried", + " by the system inherent." + ] + }, + { + "name": "ProcessedDownwardMessages", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of downward messages processed in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "LastProcessedDownwardMessage", + "modifier": "Optional", + "type": { + "plain": 737 + }, + "fallback": "0x00", + "docs": [ + " The last processed downward message.", + "", + " We need to keep track of this to filter the messages that have been already processed." + ] + }, + { + "name": "HrmpWatermark", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " HRMP watermark that was set in a block." + ] + }, + { + "name": "LastProcessedHrmpMessage", + "modifier": "Optional", + "type": { + "plain": 737 + }, + "fallback": "0x00", + "docs": [ + " The last processed HRMP message.", + "", + " We need to keep track of this to filter the messages that have been already processed." + ] + }, + { + "name": "HrmpOutboundMessages", + "modifier": "Default", + "type": { + "plain": 738 + }, + "fallback": "0x00", + "docs": [ + " HRMP messages that were sent in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "UpwardMessages", + "modifier": "Default", + "type": { + "plain": 217 + }, + "fallback": "0x00", + "docs": [ + " Upward messages that were sent in a block.", + "", + " This will be cleared in `on_initialize` of each new block." + ] + }, + { + "name": "PendingUpwardMessages", + "modifier": "Default", + "type": { + "plain": 217 + }, + "fallback": "0x00", + "docs": [ + " Upward messages that are still pending and not yet send to the relay chain." + ] + }, + { + "name": "UpwardDeliveryFeeFactor", + "modifier": "Default", + "type": { + "plain": 168 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by for UMP." + ] + }, + { + "name": "AnnouncedHrmpMessagesPerCandidate", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of HRMP messages we observed in `on_initialize` and thus used that number for", + " announcing the weight of `on_initialize` and `on_finalize`." + ] + }, + { + "name": "ReservedXcmpWeightOverride", + "modifier": "Optional", + "type": { + "plain": 10 + }, + "fallback": "0x00", + "docs": [ + " The weight we reserve at the beginning of the block for processing XCMP messages. This", + " overrides the amount set in the Config trait." + ] + }, + { + "name": "ReservedDmpWeightOverride", + "modifier": "Optional", + "type": { + "plain": 10 + }, + "fallback": "0x00", + "docs": [ + " The weight we reserve at the beginning of the block for processing DMP messages. This", + " overrides the amount set in the Config trait." + ] + }, + { + "name": "CustomValidationHeadData", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " A custom head data that should be returned as result of `validate_block`.", + "", + " See `Pallet::set_custom_validation_head_data` for more information." + ] + } + ] + }, + "calls": { + "type": 218 + }, + "events": { + "type": 33 + }, + "constants": [ + { + "name": "SelfParaId", + "type": 171, + "value": "0xe8030000", + "docs": [ + " Returns the teyrchain ID we are running with." + ] + } + ], + "errors": { + "type": 740 + }, + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 239 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0x0000000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 3, + "docs": [] + }, + { + "name": "TeyrchainInfo", + "storage": { + "prefix": "TeyrchainInfo", + "items": [ + { + "name": "TeyrchainId", + "modifier": "Default", + "type": { + "plain": 171 + }, + "fallback": "0x64000000", + "docs": [] + } + ] + }, + "calls": { + "type": 240 + }, + "events": null, + "constants": [], + "errors": null, + "index": 4, + "docs": [] + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 741 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 743 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 747, + "value": 748 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 241 + }, + "events": { + "type": 35 + }, + "constants": [], + "errors": { + "type": 749 + }, + "index": 5, + "docs": [] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number at which the agenda began incomplete execution." + ] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 750 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 37, + "value": 591 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 37 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 243 + }, + "events": { + "type": 36 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740102000002", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 754 + }, + "index": 6, + "docs": [] + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 41, + "value": 57 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ] + } + ] + }, + "calls": { + "type": 245 + }, + "events": { + "type": 40 + }, + "constants": [], + "errors": null, + "index": 7, + "docs": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 755 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 756 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 759 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 765 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 251 + }, + "events": { + "type": 62 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x01000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 769 + }, + "index": 10, + "docs": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 168 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 770 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 65 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 11, + "docs": [] + }, + { + "name": "AssetTxPayment", + "storage": null, + "calls": null, + "events": { + "type": 66 + }, + "constants": [], + "errors": null, + "index": 13, + "docs": [] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 559 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 771 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 255 + }, + "events": { + "type": 85 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 772 + }, + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 87, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 87, + "value": 261 + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 87, + "value": 263 + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 0, + "value": 87 + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": { + "type": 257 + }, + "events": { + "type": 86 + }, + "constants": [ + { + "name": "Prefix", + "type": 14, + "value": "0x8450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a", + "docs": [] + } + ], + "errors": { + "type": 773 + }, + "index": 15, + "docs": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 20, + "docs": [] + }, + { + "name": "CollatorSelection", + "storage": { + "prefix": "CollatorSelection", + "items": [ + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 774 + }, + "fallback": "0x00", + "docs": [ + " The invulnerable, permissioned collators. This list must be sorted." + ] + }, + { + "name": "CandidateList", + "modifier": "Default", + "type": { + "plain": 775 + }, + "fallback": "0x00", + "docs": [ + " The (community, limited) collation candidates. `Candidates` and `Invulnerables` should be", + " mutually exclusive.", + "", + " This list is sorted in ascending order by deposit and when the deposits are equal, the least", + " recently updated is considered greater." + ] + }, + { + "name": "LastAuthoredBlock", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Last block authored by collator." + ] + }, + { + "name": "DesiredCandidates", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Desired number of candidates.", + "", + " This should ideally always be less than [`Config::MaxCandidates`] for weights to be correct." + ] + }, + { + "name": "CandidacyBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Fixed amount to deposit to become a collator.", + "", + " When a collator calls `leave_intent` they immediately receive the deposit back." + ] + } + ] + }, + "calls": { + "type": 264 + }, + "events": { + "type": 88 + }, + "constants": [ + { + "name": "PotId", + "type": 778, + "value": "0x506f745374616b65", + "docs": [ + " Account Identifier from which the internal Pot is generated." + ] + }, + { + "name": "MaxCandidates", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of candidates that we should have.", + "", + " This does not take into account the invulnerables." + ] + }, + { + "name": "MinEligibleCollators", + "type": 4, + "value": "0x04000000", + "docs": [ + " Minimum number eligible collators. Should always be greater than zero. This includes", + " Invulnerable collators. This ensures that there will always be one collator who can", + " produce a block." + ] + }, + { + "name": "MaxInvulnerables", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of invulnerables." + ] + }, + { + "name": "KickThreshold", + "type": 4, + "value": "0x100e0000", + "docs": [] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c506f745374616b650000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 779 + }, + "index": 21, + "docs": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 89 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 782 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 266 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 785, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 265 + }, + "events": { + "type": 90 + }, + "constants": [ + { + "name": "KeyDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The amount to be held when setting keys." + ] + } + ], + "errors": { + "type": 787 + }, + "index": 22, + "docs": [] + }, + { + "name": "Aura", + "storage": { + "prefix": "Aura", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 788 + }, + "fallback": "0x00", + "docs": [ + " The current authority set." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 790 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current slot of this block.", + "", + " This will be set in `on_initialize`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "SlotDuration", + "type": 12, + "value": "0xe02e000000000000", + "docs": [ + " The slot duration Aura should run with, expressed in milliseconds.", + " The effective value of this type should not change while the chain is running.", + "", + " For backwards compatibility either use [`MinimumPeriodTimesTwo`] or a const." + ] + } + ], + "errors": null, + "index": 23, + "docs": [] + }, + { + "name": "AuraExt", + "storage": { + "prefix": "AuraExt", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 788 + }, + "fallback": "0x00", + "docs": [ + " Serves as cache for the authorities.", + "", + " The authorities in AuRa are overwritten in `on_initialize` when we switch to a new session,", + " but we require the old authorities to verify the seal when validating a PoV. This will", + " always be updated to the latest AuRa authorities in `on_finalize`." + ] + }, + { + "name": "RelaySlotInfo", + "modifier": "Optional", + "type": { + "plain": 791 + }, + "fallback": "0x00", + "docs": [ + " Current relay chain slot paired with a number of authored blocks.", + "", + " This is updated in [`FixedVelocityConsensusHook::on_state_proof`] with the current relay", + " chain slot as provided by the relay chain state proof." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 24, + "docs": [] + }, + { + "name": "XcmpQueue", + "storage": { + "prefix": "XcmpQueue", + "items": [ + { + "name": "InboundXcmpSuspended", + "modifier": "Default", + "type": { + "plain": 792 + }, + "fallback": "0x00", + "docs": [ + " The suspended inbound XCMP channels. All others are not suspended.", + "", + " This is a `StorageValue` instead of a `StorageMap` since we expect multiple reads per block", + " to different keys with a one byte payload. The access to `BoundedBTreeSet` will be cached", + " within the block and therefore only included once in the proof size.", + "", + " NOTE: The PoV benchmarking cannot know this and will over-estimate, but the actual proof", + " will be smaller." + ] + }, + { + "name": "OutboundXcmpStatus", + "modifier": "Default", + "type": { + "plain": 795 + }, + "fallback": "0x00", + "docs": [ + " The non-empty XCMP channels in order of becoming non-empty, and the index of the first", + " and last outbound message. If the two indices are equal, then it indicates an empty", + " queue and there must be a non-`Ok` `OutboundStatus`. We assume queues grow no greater", + " than 65535 items. Queue indices for normal messages begin at one; zero is reserved in", + " case of the need to send a high-priority signal message this block.", + " The bool is true if there is a signal message waiting to be sent." + ] + }, + { + "name": "OutboundXcmpMessages", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 799, + "value": 800 + } + }, + "fallback": "0x00", + "docs": [ + " The messages outbound in a given XCMP channel." + ] + }, + { + "name": "SignalMessages", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 171, + "value": 800 + } + }, + "fallback": "0x00", + "docs": [ + " Any signal messages waiting to be sent." + ] + }, + { + "name": "QueueConfig", + "modifier": "Default", + "type": { + "plain": 801 + }, + "fallback": "0x200000003000000008000000", + "docs": [ + " The configuration which controls the dynamics of the outbound queue." + ] + }, + { + "name": "QueueSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not the XCMP queue is suspended from executing incoming XCMs or not." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 171, + "value": 168 + } + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": { + "type": 268 + }, + "events": { + "type": 91 + }, + "constants": [ + { + "name": "MaxInboundSuspended", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The maximum number of inbound XCMP channels that can be suspended simultaneously.", + "", + " Any further channel suspensions will fail and messages may get dropped without further", + " notice. Choosing a high value (1000) is okay; the trade-off that is described in", + " [`InboundXcmpSuspended`] still applies at that scale." + ] + }, + { + "name": "MaxActiveOutboundChannels", + "type": 4, + "value": "0x80000000", + "docs": [ + " Maximal number of outbound XCMP channels that can have messages queued at the same time.", + "", + " If this is reached, then no further messages can be sent to channels that do not yet", + " have a message queued. This should be set to the expected maximum of outbound channels", + " which is determined by [`Self::ChannelInfo`]. It is important to set this large enough,", + " since otherwise the congestion control protocol will not work as intended and messages", + " may be dropped. This value increases the PoV and should therefore not be picked too", + " high. Governance needs to pay attention to not open more channels than this value." + ] + }, + { + "name": "MaxPageSize", + "type": 4, + "value": "0x009c0100", + "docs": [ + " The maximal page size for HRMP message pages.", + "", + " A lower limit can be set dynamically, but this is the hard-limit for the PoV worst case", + " benchmarking. The limit for the size of a message is slightly below this, since some", + " overhead is incurred for encoding the format." + ] + } + ], + "errors": { + "type": 802 + }, + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "storage": { + "prefix": "PezkuwiXcm", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 803 + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 808, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 808, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 808, + "value": 809 + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": 810 + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": 813 + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 815, + "value": 816 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Global suspension state of the XCM executor." + ] + }, + { + "name": "ShouldRecordXcm", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not incoming XCMs (both executed locally and received) should be recorded.", + " Only one XCM program will be recorded at a time.", + " This is meant to be used in runtime APIs, and it's advised it stays false", + " for all other use cases, so as to not degrade regular performance.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "RecordedXcm", + "modifier": "Optional", + "type": { + "plain": 96 + }, + "fallback": "0x00", + "docs": [ + " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally", + " will be stored here.", + " Runtime APIs can fetch the XCM that was executed by accessing this value.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "AuthorizedAliases", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 164, + "value": 823 + } + }, + "fallback": "0x00", + "docs": [ + " Map of authorized aliasers of local origins. Each local location can authorize a list of", + " other locations to alias into it. Each aliaser is only valid until its inner `expiry`", + " block number." + ] + } + ] + }, + "calls": { + "type": 269 + }, + "events": { + "type": 92 + }, + "constants": [ + { + "name": "UniversalLocation", + "type": 68, + "value": "0x02090200a10f", + "docs": [ + " This chain's Universal Location." + ] + }, + { + "name": "AdvertisedXcmVersion", + "type": 4, + "value": "0x05000000", + "docs": [ + " The latest supported version that we advertise. Generally just set it to", + " `pallet_xcm::CurrentXcmVersion`." + ] + }, + { + "name": "MaxLockers", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of local XCM locks that a single account may have." + ] + }, + { + "name": "MaxRemoteLockConsumers", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of consumers a single remote lock may have." + ] + } + ], + "errors": { + "type": 829 + }, + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "storage": null, + "calls": { + "type": 313 + }, + "events": { + "type": 166 + }, + "constants": [], + "errors": null, + "index": 32, + "docs": [] + }, + { + "name": "ToZagrosXcmRouter", + "storage": { + "prefix": "ToZagrosXcmRouter", + "items": [ + { + "name": "Bridge", + "modifier": "Default", + "type": { + "plain": 831 + }, + "fallback": "0x000064a7b3b6e00d000000000000000000", + "docs": [ + " Bridge that we are using.", + "", + " **bridges-v1** assumptions: all outbound messages through this router are using single lane", + " and to single remote consensus. If there is some other remote consensus that uses the same", + " bridge hub, the separate pallet instance shall be used, In `v2` we'll have all required", + " primitives (lane-id aka bridge-id, derived from XCM locations) to support multiple bridges", + " by the same pallet instance." + ] + } + ] + }, + "calls": { + "type": 314 + }, + "events": { + "type": 167 + }, + "constants": [], + "errors": null, + "index": 34, + "docs": [] + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 170, + "value": 832 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 170 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 835, + "value": 836 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 315 + }, + "events": { + "type": 169 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 61, + "value": "0x01070010a5d4e802004001", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 61, + "value": "0x01070010a5d4e802004001", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 838 + }, + "index": 35, + "docs": [] + }, + { + "name": "SnowbridgeSystemFrontend", + "storage": { + "prefix": "SnowbridgeSystemFrontend", + "items": [ + { + "name": "ExportOperatingMode", + "modifier": "Default", + "type": { + "plain": 174 + }, + "fallback": "0x00", + "docs": [ + " The current operating mode for exporting to Ethereum." + ] + } + ] + }, + "calls": { + "type": 316 + }, + "events": { + "type": 173 + }, + "constants": [], + "errors": { + "type": 839 + }, + "index": 36, + "docs": [] + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 319 + }, + "events": { + "type": 175 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 840 + }, + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 841, + "value": 842 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 326 + }, + "events": { + "type": 176 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0x00dbbb77000000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x00d43000000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 844 + }, + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 845 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 849 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 328 + }, + "events": { + "type": 178 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0x009d7277000000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0xa05a3200000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x00d27e77000000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x40b56400000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 853 + }, + "index": 42, + "docs": [] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 854 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 330 + }, + "events": { + "type": 182 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00d27e77000000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 855 + }, + "index": 43, + "docs": [] + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 856 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 858, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 862, + "value": 863 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 864 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 331 + }, + "events": { + "type": 183 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0xc07e5778000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00fe4d77000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x80569d77000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0xa0860100000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 866 + }, + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "items": [ + { + "name": "Class", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 867 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 868, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "ClassAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 395, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 869 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 870 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 871 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 872, + "value": 873 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 874 + } + }, + "fallback": "0x00", + "docs": [ + " Price of an asset instance." + ] + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the number of items a collection might have." + ] + } + ] + }, + "calls": { + "type": 332 + }, + "events": { + "type": 184 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0xa06afa77000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x00943577000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0xa0860100000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "errors": { + "type": 875 + }, + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "items": [ + { + "name": "Collection", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 876 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 868, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "CollectionAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 395, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "CollectionRoleOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 858, + "value": 877 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ] + }, + { + "name": "Item", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 879 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 885 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 886 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 888, + "value": 889 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 874 + } + }, + "fallback": "0x00", + "docs": [ + " A price of an item." + ] + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 891 + } + }, + "fallback": "0x00", + "docs": [ + " Item attribute approvals." + ] + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `CollectionId` that is going to be used for the next collection.", + " This gets incremented whenever a new collection is created." + ] + }, + { + "name": "PendingSwapOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 893 + } + }, + "fallback": "0x00", + "docs": [ + " Handles all the pending swaps." + ] + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 337 + } + }, + "fallback": "0x00", + "docs": [ + " Config of a collection." + ] + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 37, + "value": 347 + } + }, + "fallback": "0x00", + "docs": [ + " Config of an item." + ] + } + ] + }, + "calls": { + "type": 336 + }, + "events": { + "type": 191 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x40f1fb77000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x10320103000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x1071ff0b000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x00c2eb0b000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0xa0860100000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of an attribute value." + ] + }, + { + "name": "ApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum approvals an item could have." + ] + }, + { + "name": "ItemAttributesApprovalsLimit", + "type": 4, + "value": "0x1e000000", + "docs": [ + " The maximum attributes approvals an item could have." + ] + }, + { + "name": "MaxTips", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of tips a user could send." + ] + }, + { + "name": "MaxDeadlineDuration", + "type": 4, + "value": "0x001a4f00", + "docs": [ + " The max duration in blocks for deadlines." + ] + }, + { + "name": "MaxAttributesPerCall", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of attributes a user could set per call." + ] + }, + { + "name": "Features", + "type": 894, + "value": "0x0000000000000000", + "docs": [ + " Disables some of pallet's features." + ] + } + ], + "errors": { + "type": 896 + }, + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "storage": { + "prefix": "ForeignAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 67, + "value": 856 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 897, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 898, + "value": 863 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 67, + "value": 899 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 67 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 356 + }, + "events": { + "type": 198 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0xc07e5778000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00fe4d77000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x80569d77000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0xa0860100000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 901 + }, + "index": 53, + "docs": [] + }, + { + "name": "PoolAssets", + "storage": { + "prefix": "PoolAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 856 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 858, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 862, + "value": 863 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 902 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 357 + }, + "events": { + "type": 199 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00fe4d77000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 904 + }, + "index": 54, + "docs": [] + }, + { + "name": "AssetConversion", + "storage": { + "prefix": "AssetConversion", + "items": [ + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 201, + "value": 905 + } + }, + "fallback": "0x00", + "docs": [ + " Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially", + " created rather than people sending tokens directly to a pool's public account." + ] + }, + { + "name": "NextPoolAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `PoolAssetId` that is going to be used for the next lp token.", + " This gets incremented whenever a new lp pool is created." + ] + } + ] + }, + "calls": { + "type": 358 + }, + "events": { + "type": 200 + }, + "constants": [ + { + "name": "LPFee", + "type": 4, + "value": "0x03000000", + "docs": [ + " A % the liquidity providers will take of every swap. Represents 10ths of a percent." + ] + }, + { + "name": "PoolSetupFee", + "type": 6, + "value": "0x402d93ef000000000000000000000000", + "docs": [ + " A one-time fee to setup the pool." + ] + }, + { + "name": "PoolSetupFeeAsset", + "type": 67, + "value": "0x0100", + "docs": [ + " Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]." + ] + }, + { + "name": "LiquidityWithdrawalFee", + "type": 202, + "value": "0x00000000", + "docs": [ + " A fee to withdraw the liquidity." + ] + }, + { + "name": "MintMinLiquidity", + "type": 6, + "value": "0x64000000000000000000000000000000", + "docs": [ + " The minimum LP token amount that could be minted. Ameliorates rounding errors." + ] + }, + { + "name": "MaxSwapPathLength", + "type": 4, + "value": "0x03000000", + "docs": [ + " The max number of hops in a swap." + ] + }, + { + "name": "PalletId", + "type": 778, + "value": "0x70792f6173636f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + } + ], + "errors": { + "type": 906 + }, + "index": 55, + "docs": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 622 + } + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 907 + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 908 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + }, + { + "name": "LastSpendPeriod", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The blocknumber for the last triggered spend period." + ] + } + ] + }, + "calls": { + "type": 360 + }, + "events": { + "type": 205 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x00460500", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 202, + "value": "0x10270000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 778, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x80c61300", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 910 + }, + "index": 60, + "docs": [] + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 911, + "value": 912 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 915 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 361 + }, + "events": { + "type": 208 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 916 + }, + "index": 61, + "docs": [] + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 917 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 180, + "value": 919 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 180, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 364 + }, + "events": { + "type": 211 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 920, + "value": "0x40000064726f6f74000000000000000000000000000000000000000000010000000080c6a47e8d03000000000000000000b00400000027060040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000000407a10f35a000000000000000000002c01000000270600640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a0000000080f420e6b500000000000000000000b00400000027060040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000000a0724e180900000000000000000000b004000000270600c0890100403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000000407a10f35a00000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000000406352bfc601000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c800000000e40b540200000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f7469707065720000000000000000000000000000006400000000e8764817000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000000010a5d4e800000000000000000000006009000000270600807000004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e64657200000000000000000000003200000000204aa9d10100000000000000000000600900000027060000e1000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e64657200000000000000000000000000003200000000409452a303000000000000000000006009000000270600c0890100403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 926 + }, + "index": 62, + "docs": [] + }, + { + "name": "Origins", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 63, + "docs": [] + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 367 + }, + "events": { + "type": 670 + }, + "constants": [], + "errors": { + "type": 927 + }, + "index": 64, + "docs": [] + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 928 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 929 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 907 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 368 + }, + "events": { + "type": 674 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x008e0c01000000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x00000000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00041703", + "docs": [ + " The time limit for a curator to act before a bounty expires.", + "", + " The period that starts when a curator is approved, during which they must execute or", + " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the", + " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,", + " removing the need for `extend_bounty_expiry`." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 202, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 335, + "value": "0x0100204aa9d10100000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 335, + "value": "0x0100e87648170000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0xa0860100000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 930 + }, + "index": 65, + "docs": [] + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts", + " for each parent bounty. Number of total child bounties. Will be removed in May 2025." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of active child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ParentTotalChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties per parent bounty, including completed bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 931 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptionsV1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 929 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty. Indexed by `(parent_id, child_id)`.", + "", + " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version." + ] + }, + { + "name": "V0ToV1ChildBountyIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 37 + } + }, + "fallback": "0x00", + "docs": [ + " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.", + "", + " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids", + " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].", + " The item intended solely for client convenience and not used in the pallet's core logic." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 369 + }, + "events": { + "type": 675 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 933 + }, + "index": 66, + "docs": [] + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 206, + "value": 168 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 370 + }, + "events": { + "type": 676 + }, + "constants": [], + "errors": { + "type": 934 + }, + "index": 67, + "docs": [] + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 374 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 372 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 373 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "type": 371 + }, + "events": { + "type": 677 + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "errors": { + "type": 679 + }, + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 383 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 536 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 542 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 935 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 936 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 192 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 385 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 377 + }, + "events": { + "type": 680 + }, + "constants": [ + { + "name": "PalletId", + "type": 778, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 942 + }, + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 944 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 945 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + }, + { + "name": "NextNodeAutoRebagged", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Pointer that remembers the next node that will be auto-rebagged.", + " When `None`, the next scan will start from the list head again." + ] + }, + { + "name": "Lock", + "modifier": "Optional", + "type": { + "plain": 39 + }, + "fallback": "0x00", + "docs": [ + " Lock all updates to this pallet.", + "", + " If any nodes needs updating, removal or addition due to a temporary lock, the", + " [`Call::rebag`] can be used." + ] + } + ] + }, + "calls": { + "type": 391 + }, + "events": { + "type": 681 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 946, + "value": "0x210300e40b5402000000f39e809702000000a8b197e20200000094492e3603000000279c3a930300000003bccefa0300000042c01b6e040000001b4775ee04000000385e557d0500000046dc601c0600000089386ccd06000000b6ee809207000000fe7ee36d08000000e81b1a6209000000b019f4710a000000103592a00b000000cfc96ff10c00000041146d680e000000e79bda0910000000cee885da1100000028a9c7df13000000bb70931f160000008e4089a018000000810a096a1b000000366a48841e0000005bd36af821000000807c9cd025000000c95530182a000000bd63c1db2e00000071e0572934000000689092103a000000edc4d4a240000000699379f3470000008fd80c18500000004baf8a28590000006a16a63f630000000995177b6e00000078c5f4fb7a00000062c811e78800000051bf6d6598000000048eaba4a9000000544698d7bc00000091cac036d2000000175f1801ea000000bd15b27c0401000043358ff721010000b8fc84c84201000099673c506701000007e44efa8f010000b341833ebd010000027f2ea2ef0100009883bcb927020000164d652a66020000b49513acab0200002d8e820bf9020000a1e6982c4f030000a616080daf030000cc9d37c719040000a0d584959004000042e7e0d514050000028cd70da80500000f750aef4b060000ea8d2e5c02070000c3cb996ecd070000b1e5717caf080000aa2b8e1fab090000b5c1203dc30a000026d03d0efb0b000070c75929560d0000ebadda8cd80e0000f797dbaa86100000cff04476651200001f2660717a14000009a611becb1600001dfbe82f60190000943a3c603f1c00008afe89c4711f0000ced963c70023000003a92ae4f6260000fe72eec55f2b000036c9cc6948300000dae33245bf350000062a7470d43b00007c9732d69942000084a32468234a0000571ad45987520000e7f10262de5b00000db8760344660000ae0401ded67100007d9eb308b97e00001e044a76108d00003a1df064079d0000e04fafdaccae00005679f02f95c2000095c3aaa99ad80000967c05251ef10000177a66d6670c010028cb1f1ec82a0100fa282f75984c0100d57dc8743c7201007dc4b3fb229c0100365cde74c7ca01009eb8e142b3fe01000c31ae547f3802005fe101e8d57802006373da7e74c0020051d1a60d2e100300c7e9a468ed68030061c091f7b7cb0300bf27a1b7b03904007b1499941bb404008523ed22613c050069a5d4c512d40500ec8c934def7c0600f5aa901be83807008cbe5ddb260a080002978ce113f30800fae314435df60900ddf12dbafe160b002ebadc6f4a580c000c5518c4f2bd0d00f0bb5431154c0f00498e866b46071100b2c153de9ff41200278a2fb2ce191500b2399f84247d1700e199e704aa251a00ba13f5ab331b1d00264785cc7866200088bf803f2d1124001c9823f81d262800ccc422d450b12c00f088820528c03100367c6d7e896137006e9329d30aa63d008cbc6c1322a044000070f32a5c644c00b43b84699909550080b4abe450a95e00a0cda979db5f69004cc27f4cc74c7500d0ac0eba34938200483e0ccf3d5a910068c68e7469cda100281e6fa52b1db40098a92326747fc800f09a74634d30df0080cdfc4b8d72f8009014602d9a901401f0b413d945dd330120973596c1b4560150dcfbaead7d7d01e01198b947aaa80130c7ee16bbb9d801206e488697390e02a0fa4b1d72c74902c0117170b5128c02808a1643a6ded502c0f823b1a204280380af5970a2768303c06f2d87ff41e90340937fac8f925a040091097117b6d804400fdf5b212065050049c149446e0106008ebca6e56caf0600595686851c71078068aa34a4b7480880a1e29e52b9380900bdabe880e4430a002a72b4204c6d0b80f1c013335cb80c00a03ccbdce3280e80b8629a9e20c30f00de5693d2ca8b11005d7f4c93238813001a87df3504be1500a7ce4b84ef3318000110fbea24f11a00802ae5d1b5fd1d0022a134609d62210044216bf0da2925000261f1828f5e29006620cf851e0d2e008410195252433300a0c18fca8410390026ad1493cc853f00d0cd24662fb646009ce19a1cdab64e0058ccc20c5f9f5700200a7578fb89610030bbbbd6e4936c0060cba7dc9edd7800b83bc0425b8b8600b886236164c59500f8f15fdc93b8a600206a91c0d696b900d8efe28fc097ce0068299bf52ef9e5ffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + }, + { + "name": "MaxAutoRebagPerBlock", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of accounts that may be re-bagged automatically in `on_idle`.", + "", + " A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables", + " the feature." + ] + } + ], + "errors": { + "type": 947 + }, + "index": 82, + "docs": [] + }, + { + "name": "DelegatedStaking", + "storage": { + "prefix": "DelegatedStaking", + "items": [ + { + "name": "Delegators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 949 + } + }, + "fallback": "0x00", + "docs": [ + " Map of Delegators to their `Delegation`.", + "", + " Implementation note: We are not using a double map with `delegator` and `agent` account", + " as keys since we want to restrict delegators to delegate only to one account at a time." + ] + }, + { + "name": "CounterForDelegators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Agents", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 950 + } + }, + "fallback": "0x00", + "docs": [ + " Map of `Agent` to their `Ledger`." + ] + }, + { + "name": "CounterForAgents", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + } + ] + }, + "calls": null, + "events": { + "type": 682 + }, + "constants": [ + { + "name": "PalletId", + "type": 778, + "value": "0x70792f646c73746b", + "docs": [ + " Injected identifier for the pallet." + ] + }, + { + "name": "SlashRewardFraction", + "type": 383, + "value": "0x80969800", + "docs": [ + " Fraction of the slash that is rewarded to the caller of pending slash to the agent." + ] + } + ], + "errors": { + "type": 951 + }, + "index": 83, + "docs": [] + }, + { + "name": "StakingRcClient", + "storage": { + "prefix": "StakingRcClient", + "items": [ + { + "name": "IncompleteSessionReport", + "modifier": "Optional", + "type": { + "plain": 393 + }, + "fallback": "0x00", + "docs": [ + " An incomplete incoming session report that we have not acted upon yet." + ] + }, + { + "name": "LastSessionReportEndingIndex", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The last session report's `end_index` that we have acted upon.", + "", + " This allows this pallet to ensure a sequentially increasing sequence of session reports", + " passed to staking.", + "", + " Note that with the XCM being the backbone of communication, we have a guarantee on the", + " ordering of messages. As long as the RC sends session reports in order, we _eventually_", + " receive them in the same correct order as well." + ] + }, + { + "name": "OutgoingValidatorSet", + "modifier": "Optional", + "type": { + "plain": 952 + }, + "fallback": "0x00", + "docs": [ + " A validator set that is outgoing, and should be sent.", + "", + " This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent,", + " or the second value reaches zero, at which point we drop it." + ] + } + ] + }, + "calls": { + "type": 392 + }, + "events": { + "type": 683 + }, + "constants": [], + "errors": null, + "index": 84, + "docs": [] + }, + { + "name": "MultiBlockElection", + "storage": { + "prefix": "MultiBlockElection", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 403 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round." + ] + }, + { + "name": "PagedVoterSnapshot", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 954 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated voter snapshot. At most [`T::Pages`] keys will exist." + ] + }, + { + "name": "PagedVoterSnapshotHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Same as [`PagedVoterSnapshot`], but it will store the hash of the snapshot.", + "", + " The hash is generated using [`frame_system::Config::Hashing`]." + ] + }, + { + "name": "PagedTargetSnapshot", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 958 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated target snapshot.", + "", + " For the time being, since we assume one pages of targets, at most ONE key will exist." + ] + }, + { + "name": "PagedTargetSnapshotHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Same as [`PagedTargetSnapshot`], but it will store the hash of the snapshot.", + "", + " The hash is generated using [`frame_system::Config::Hashing`]." + ] + } + ] + }, + "calls": { + "type": 401 + }, + "events": { + "type": 685 + }, + "constants": [ + { + "name": "UnsignedPhase", + "type": 4, + "value": "0x96000000", + "docs": [ + " Duration of the unsigned phase." + ] + }, + { + "name": "SignedPhase", + "type": 4, + "value": "0x96000000", + "docs": [ + " Duration of the signed phase." + ] + }, + { + "name": "SignedValidationPhase", + "type": 4, + "value": "0x00020000", + "docs": [ + " Duration of the singed validation phase.", + "", + " The duration of this should not be less than `T::Pages`, and there is no point in it", + " being more than `SignedPhase::MaxSubmission::get() * T::Pages`. TODO: integrity test for", + " it." + ] + }, + { + "name": "VoterSnapshotPerBlock", + "type": 4, + "value": "0xc0020000", + "docs": [ + " The number of snapshot voters to fetch per block." + ] + }, + { + "name": "TargetSnapshotPerBlock", + "type": 4, + "value": "0xd0070000", + "docs": [ + " The number of snapshot targets to fetch per block." + ] + }, + { + "name": "Pages", + "type": 4, + "value": "0x20000000", + "docs": [ + " The number of pages.", + "", + " The snapshot is created with this many keys in the storage map.", + "", + " The solutions may contain at MOST this many pages, but less pages are acceptable as", + " well." + ] + } + ], + "errors": { + "type": 959 + }, + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionVerifier", + "storage": { + "prefix": "MultiBlockElectionVerifier", + "items": [ + { + "name": "QueuedSolutionX", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 404 + } + }, + "fallback": "0x00", + "docs": [ + " The `X` variant of the current queued solution. Might be the valid one or not.", + "", + " The two variants of this storage item is to avoid the need of copying. Recall that once a", + " `VerifyingSolution` is being processed, it needs to write its partial supports *somewhere*.", + " Writing theses supports on top of a *good* queued supports is wrong, since we might bail.", + " Writing them to a bugger and copying at the ned is slightly better, but expensive. This flag", + " system is best of both worlds." + ] + }, + { + "name": "QueuedSolutionY", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 404 + } + }, + "fallback": "0x00", + "docs": [ + " The `Y` variant of the current queued solution. Might be the valid one or not." + ] + }, + { + "name": "QueuedValidVariant", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 960 + } + }, + "fallback": "0x01", + "docs": [ + " Pointer to the variant of [`QueuedSolutionX`] or [`QueuedSolutionY`] that is currently", + " valid." + ] + }, + { + "name": "QueuedSolutionBackings", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 37, + "value": 961 + } + }, + "fallback": "0x00", + "docs": [ + " The `(amount, count)` of backings, divided per page.", + "", + " This is stored because in the last block of verification we need them to compute the score,", + " and check `MaxBackersPerWinnerFinal`.", + "", + " This can only ever live for the invalid variant of the solution. Once it is valid, we don't", + " need this information anymore; the score is already computed once in", + " [`QueuedSolutionScore`], and the backing counts are checked." + ] + }, + { + "name": "QueuedSolutionScore", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 412 + } + }, + "fallback": "0x00", + "docs": [ + " The score of the valid variant of [`QueuedSolution`].", + "", + " This only ever lives for the `valid` variant." + ] + }, + { + "name": "MinimumScore", + "modifier": "Optional", + "type": { + "plain": 412 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each solution must attain in order to be considered feasible." + ] + }, + { + "name": "StatusStorage", + "modifier": "Default", + "type": { + "plain": 965 + }, + "fallback": "0x01", + "docs": [ + " Storage item for [`Status`]." + ] + } + ] + }, + "calls": { + "type": 413 + }, + "events": { + "type": 686 + }, + "constants": [ + { + "name": "SolutionImprovementThreshold", + "type": 383, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\"." + ] + }, + { + "name": "MaxBackersPerWinnerFinal", + "type": 4, + "value": "0xe4570000", + "docs": [ + " Maximum number of backers, per winner, among all pages of an election.", + "", + " This can only be checked at the very final step of verification.", + "", + " NOTE: at the moment, we don't check this, and it is in place for future compatibility." + ] + }, + { + "name": "MaxBackersPerWinner", + "type": 4, + "value": "0xc0020000", + "docs": [ + " Maximum number of backers, per winner, per page." + ] + }, + { + "name": "MaxWinnersPerPage", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of supports (aka. winners/validators/targets) that can be represented in", + " a page of results." + ] + } + ], + "errors": null, + "index": 86, + "docs": [] + }, + { + "name": "MultiBlockElectionUnsigned", + "storage": null, + "calls": { + "type": 414 + }, + "events": null, + "constants": [], + "errors": null, + "index": 87, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "storage": { + "prefix": "MultiBlockElectionSigned", + "items": [ + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 956 + }, + "fallback": "0x00", + "docs": [ + " Accounts whitelisted by governance to always submit their solutions.", + "", + " They are different in that:", + "", + " * They always pay a fixed deposit for submission, specified by", + " [`Config::InvulnerableDeposit`]. They pay no page deposit.", + " * If _ejected_ by better solution from [`SortedScores`], they will get their full deposit", + " back.", + " * They always get their tx-fee back even if they are _discarded_." + ] + }, + { + "name": "SortedScores", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 966 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "SubmissionStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 969, + "value": 417 + } + }, + "fallback": "0x00", + "docs": [ + " Triple map from (round, account, page) to a solution page." + ] + }, + { + "name": "SubmissionMetadataStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 858, + "value": 970 + } + }, + "fallback": "0x00", + "docs": [ + " Map from account to the metadata of their submission.", + "", + " invariant: for any Key1 of type `AccountId` in [`Submissions`], this storage map also has a", + " value." + ] + } + ] + }, + "calls": { + "type": 468 + }, + "events": { + "type": 690 + }, + "constants": [], + "errors": { + "type": 973 + }, + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 774 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 383 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 974 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 471 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 472 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 975 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 39 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current planned era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 976 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to what is RC's session pallet." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 977 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 858, + "value": 978 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `Eras`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 969, + "value": 979 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `Eras`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 858, + "value": 983 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 858, + "value": 472 + } + }, + "fallback": "0x0000", + "docs": [ + " Exposure of validator at era with the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 984 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 692 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 475 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 383 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "OffenceQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 858, + "value": 987 + } + }, + "fallback": "0x00", + "docs": [ + " Stores reported offences in a queue until they are processed in subsequent blocks.", + "", + " Each offence is recorded under the corresponding era index and the offending validator's", + " account. If an offence spans multiple pages, only one page is processed at a time. Offences", + " are handled sequentially, with their associated slashes computed and stored in", + " `UnappliedSlashes`. These slashes are then applied in a future era as determined by", + " `SlashDeferDuration`.", + "", + " Any offences tied to an era older than `BondingDuration` are automatically dropped.", + " Processing always prioritizes the oldest era first." + ] + }, + { + "name": "OffenceQueueEras", + "modifier": "Optional", + "type": { + "plain": 988 + }, + "fallback": "0x00", + "docs": [ + " Tracks the eras that contain offences in `OffenceQueue`, sorted from **earliest to latest**.", + "", + " - This ensures efficient retrieval of the oldest offence without iterating through", + " `OffenceQueue`.", + " - When a new offence is added to `OffenceQueue`, its era is **inserted in sorted order**", + " if not already present.", + " - When all offences for an era are processed, it is **removed** from this list.", + " - The maximum length of this vector is bounded by `BondingDuration`.", + "", + " This eliminates the need for expensive iteration and sorting when fetching the next offence", + " to process." + ] + }, + { + "name": "ProcessingOffence", + "modifier": "Optional", + "type": { + "plain": 989 + }, + "fallback": "0x00", + "docs": [ + " Tracks the currently processed offence record from the `OffenceQueue`.", + "", + " - When processing offences, an offence record is **popped** from the oldest era in", + " `OffenceQueue` and stored here.", + " - The function `process_offence` reads from this storage, processing one page of exposure at", + " a time.", + " - After processing a page, the `exposure_page` count is **decremented** until it reaches", + " zero.", + " - Once fully processed, the offence record is removed from this storage.", + "", + " This ensures that offences are processed incrementally, preventing excessive computation", + " in a single block while maintaining correct slashing behavior." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 990, + "value": 991 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "CancelledSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 993 + } + }, + "fallback": "0x00", + "docs": [ + " Cancelled slashes by era and validator with maximum slash fraction to be cancelled.", + "", + " When slashes are cancelled by governance, this stores the era and the validators", + " whose slashes should be cancelled, along with the maximum slash fraction that should", + " be cancelled for each validator." + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 858, + "value": 664 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 475 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + }, + { + "name": "VoterSnapshotStatus", + "modifier": "Default", + "type": { + "plain": 994 + }, + "fallback": "0x02", + "docs": [ + " Voter snapshot progress status.", + "", + " If the status is `Ongoing`, it keeps a cursor of the last voter retrieved to proceed when", + " creating the next snapshot page." + ] + }, + { + "name": "NextElectionPage", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Keeps track of an ongoing multi-page election solution request.", + "", + " If `Some(_)``, it is the next page that we intend to elect. If `None`, we are not in the", + " election process.", + "", + " This is only set in multi-block elections. Should always be `None` otherwise." + ] + }, + { + "name": "ElectableStashes", + "modifier": "Default", + "type": { + "plain": 995 + }, + "fallback": "0x00", + "docs": [ + " A bounded list of the \"electable\" stashes that resulted from a successful election." + ] + }, + { + "name": "EraPruningState", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 996 + } + }, + "fallback": "0x00", + "docs": [ + " Tracks the current step of era pruning process for each era being lazily pruned." + ] + } + ] + }, + "calls": { + "type": 470 + }, + "events": { + "type": 691 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasValidatorPrefs`, `ErasValidatorReward`,", + " `ErasRewardPoints`, `ErasTotalStake`, `ClaimedRewards`,", + " `ErasStakersPaged`, `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era, as per the preferences of the **relay chain**." + ] + }, + { + "name": "PlanningEraOffset", + "type": 4, + "value": "0x02000000", + "docs": [ + " Number of sessions before the end of an era when the election for the next era will", + " start.", + "", + " - This determines how many sessions **before** the last session of the era the staking", + " election process should begin.", + " - The value is bounded between **1** (election starts at the beginning of the last", + " session) and `SessionsPerEra` (election starts at the beginning of the first session", + " of the era).", + "", + " ### Example:", + " - If `SessionsPerEra = 6` and `PlanningEraOffset = 1`, the election starts at the", + " beginning of session `6 - 1 = 5`.", + " - If `PlanningEraOffset = 6`, the election starts at the beginning of session `6 - 6 =", + " 0`, meaning it starts at the very beginning of the era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to", + " reduce without handling it in a migration." + ] + }, + { + "name": "MaxValidatorSet", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The absolute maximum of winner validators this pallet should return.", + "", + " As this pallet supports multi-block election, the set of winner validators *per", + " election* is bounded by this type." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + }, + { + "name": "MaxInvulnerables", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of invulnerable validators." + ] + }, + { + "name": "MaxEraDuration", + "type": 12, + "value": "0x008ab90700000000", + "docs": [ + " Maximum allowed era duration in milliseconds.", + "", + " This provides a defensive upper bound to cap the effective era duration, preventing", + " excessively long eras from causing runaway inflation (e.g., due to bugs). If the actual", + " era duration exceeds this value, it will be clamped to this maximum.", + "", + " Example: For an ideal era duration of 24 hours (86,400,000 ms),", + " this can be set to 604,800,000 ms (7 days)." + ] + }, + { + "name": "MaxPruningItems", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of storage items that can be pruned in a single call.", + "", + " This controls how many storage items can be deleted in each call to `prune_era_step`.", + " This should be set to a conservative value (e.g., 100-500 items) to ensure pruning", + " doesn't consume too much block space. The actual weight is determined by benchmarks." + ] + } + ], + "errors": { + "type": 997 + }, + "index": 89, + "docs": [] + }, + { + "name": "AhOps", + "storage": { + "prefix": "AhOps", + "items": [ + { + "name": "RcLeaseReserve", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 998, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Amount of balance that was reserved for winning a lease auction.", + "", + " `unreserve_lease_deposit` can be permissionlessly called once the block number passed to", + " unreserve the deposit. It is implicitly called by `withdraw_crowdloan_contribution`.", + " ", + " The account here can either be a crowdloan account or a solo bidder. If it is a crowdloan", + " account, then the summed up contributions for it in the contributions map will equate the", + " reserved balance here.", + "", + " The keys are as follows:", + " - Block number after which the deposit can be unreserved.", + " - The para_id of the lease slot.", + " - The account that will have the balance unreserved.", + " - The balance to be unreserved." + ] + }, + { + "name": "RcCrowdloanContribution", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 998, + "value": 409 + } + }, + "fallback": "0x00", + "docs": [ + " Amount of balance that a contributor made towards a crowdloan.", + "", + " `withdraw_crowdloan_contribution` can be permissionlessly called once the block number", + " passed to unlock the balance for a specific account.", + "", + " The keys are as follows:", + " - Block number after which the balance can be unlocked.", + " - The para_id of the crowdloan.", + " - The account that made the contribution.", + "", + " The value is (fund_pot, balance). The contribution pot is the second key in the", + " `RcCrowdloanContribution` storage." + ] + }, + { + "name": "RcCrowdloanReserve", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 998, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The reserve that was taken to create a crowdloan.", + "", + " This is normally 500 DOT and can be refunded as last step after all", + " `RcCrowdloanContribution`s of this loan have been withdrawn.", + "", + " Keys:", + " - Block number after which this can be unreserved", + " - The para_id of the crowdloan", + " - The account that will have the balance unreserved" + ] + } + ] + }, + "calls": { + "type": 488 + }, + "events": { + "type": 695 + }, + "constants": [], + "errors": { + "type": 999 + }, + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "storage": { + "prefix": "AhMigrator", + "items": [ + { + "name": "RcAccounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 491 + } + }, + "fallback": "0x00", + "docs": [ + " RC accounts that failed to migrate when were received on the Asset Hub.", + "", + " This is unlikely to happen, since we dry run the migration, but we keep it for completeness." + ] + }, + { + "name": "AhMigrationStage", + "modifier": "Default", + "type": { + "plain": 665 + }, + "fallback": "0x00", + "docs": [ + " The Asset Hub migration state." + ] + }, + { + "name": "AhBalancesBefore", + "modifier": "Default", + "type": { + "plain": 1000 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Helper storage item to store the total balance / total issuance of native token at the start", + " of the migration. Since teleports are disabled during migration, the total issuance will not", + " change for other reason than the migration itself." + ] + }, + { + "name": "DmpQueuePriorityConfig", + "modifier": "Default", + "type": { + "plain": 666 + }, + "fallback": "0x00", + "docs": [ + " The priority of the DMP queue during migration.", + "", + " Controls how the DMP (Downward Message Passing) queue is processed relative to other queues", + " during the migration process. This helps ensure timely processing of migration messages.", + " The default priority pattern is defined in the pallet configuration, but can be overridden", + " by a storage value of this type." + ] + }, + { + "name": "Manager", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " An optional account id of a manager.", + "", + " This account id has similar privileges to [`Config::AdminOrigin`] except that it", + " can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "MigrationStartBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The block number at which the migration began and the pallet's extrinsics were locked.", + "", + " This value is set when entering the `WaitingForAh` stage, i.e., when", + " `RcMigrationStage::is_ongoing()` becomes `true`." + ] + }, + { + "name": "MigrationEndBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number when migration finished and extrinsics were unlocked.", + "", + " This is set when entering the `MigrationDone` stage hence when", + " `RcMigrationStage::is_finished()` becomes `true`." + ] + } + ] + }, + "calls": { + "type": 489 + }, + "events": { + "type": 696 + }, + "constants": [], + "errors": { + "type": 1001 + }, + "index": 255, + "docs": [] + } + ], + "extrinsic": { + "version": 4, + "addressType": 252, + "callType": 213, + "signatureType": 353, + "extraType": 1002, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 1003, + "additionalSigned": 39 + }, + { + "identifier": "CheckSpecVersion", + "type": 1004, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 1005, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 1006, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 1007, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 1009, + "additionalSigned": 39 + }, + { + "identifier": "CheckWeight", + "type": 1010, + "additionalSigned": 39 + }, + { + "identifier": "ChargeAssetTxPayment", + "type": 1011, + "additionalSigned": 39 + }, + { + "identifier": "CheckMetadataHash", + "type": 1012, + "additionalSigned": 34 + } + ] + }, + "type": 1014, + "apis": [ + { + "name": "AuraApi", + "methods": [ + { + "name": "slot_duration", + "inputs": [], + "output": 1015, + "docs": [ + " Returns the slot duration for Aura.", + "", + " Currently, only the value provided by this type at genesis will be used." + ] + }, + { + "name": "authorities", + "inputs": [], + "output": 789, + "docs": [ + " Return the current set of authorities." + ] + } + ], + "docs": [ + " API necessary for block authorship with aura." + ] + }, + { + "name": "RelayParentOffsetApi", + "methods": [ + { + "name": "relay_parent_offset", + "inputs": [], + "output": 4, + "docs": [ + " Fetch the slot offset that is expected from the relay chain." + ] + } + ], + "docs": [ + " API to tell the node side how the relay parent should be chosen.", + "", + " A larger offset indicates that the relay parent should not be the tip of the relay chain,", + " but `N` blocks behind the tip. This offset is then enforced by the runtime." + ] + }, + { + "name": "AuraUnincludedSegmentApi", + "methods": [ + { + "name": "can_build_upon", + "inputs": [ + { + "name": "included_hash", + "type": 13 + }, + { + "name": "slot", + "type": 790 + } + ], + "output": 8, + "docs": [ + " Whether it is legal to extend the chain, assuming the given block is the most", + " recently included one as-of the relay parent that will be built against, and", + " the given relay chain slot.", + "", + " This should be consistent with the logic the runtime uses when validating blocks to", + " avoid issues.", + "", + " When the unincluded segment is empty, i.e. `included_hash == at`, where at is the block", + " whose state we are querying against, this must always return `true` as long as the slot", + " is more recent than the included block itself." + ] + } + ], + "docs": [ + " This runtime API is used to inform potential block authors whether they will", + " have the right to author at a slot, assuming they have claimed the slot.", + "", + " In particular, this API allows Aura-based teyrchains to regulate their \"unincluded segment\",", + " which is the section of the head of the chain which has not yet been made available in the", + " relay chain.", + "", + " When the unincluded segment is short, Aura chains will allow authors to create multiple", + " blocks per slot in order to build a backlog. When it is saturated, this API will limit", + " the amount of blocks that can be created.", + "", + " Changes:", + " - Version 2: Update to `can_build_upon` to take a relay chain `Slot` instead of a teyrchain `Slot`." + ] + }, + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 709, + "docs": [ + " Returns the version of the runtime." + ] + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "type": 1016 + } + ], + "output": 39, + "docs": [ + " Execute the given block." + ] + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "type": 225 + } + ], + "output": 1019, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ] + } + ], + "docs": [ + " The `Core` runtime api that every Bizinikiwi runtime needs to implement." + ] + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 1020, + "docs": [ + " Returns the metadata of a runtime." + ] + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "type": 4 + } + ], + "output": 1021, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ] + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 186, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ] + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ] + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "type": 1017 + } + ], + "output": 1022, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ] + }, + { + "name": "finalize_block", + "inputs": [], + "output": 225, + "docs": [ + " Finish the current block." + ] + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "type": 1026 + } + ], + "output": 1018, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ] + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "type": 1016 + }, + { + "name": "data", + "type": 1026 + } + ], + "output": 1030, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ] + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ] + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "type": 1031 + }, + { + "name": "tx", + "type": 1017 + }, + { + "name": "block_hash", + "type": 13 + } + ], + "output": 1032, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ] + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ] + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "type": 225 + } + ], + "output": 39, + "docs": [ + " Starts the off-chain task for given block header." + ] + } + ], + "docs": [ + " The offchain worker api." + ] + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "type": 814 + } + ], + "output": 14, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ] + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "type": 14 + } + ], + "output": 1034, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ] + } + ], + "docs": [ + " Session keys runtime api." + ] + }, + { + "name": "RuntimeViewFunction", + "methods": [ + { + "name": "execute_view_function", + "inputs": [ + { + "name": "query_id", + "type": 1037 + }, + { + "name": "input", + "type": 14 + } + ], + "output": 1038, + "docs": [ + " Execute a view function query." + ] + } + ], + "docs": [ + " Runtime API for executing view functions" + ] + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ] + } + ], + "docs": [ + " The API to query account nonce." + ] + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "type": 1017 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1040, + "docs": [] + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "type": 1017 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1041, + "docs": [] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "type": 213 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1040, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ] + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "type": 213 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1041, + "docs": [ + " Query fee details of a given encoded `Call`." + ] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ] + } + ], + "docs": [] + }, + { + "name": "XcmPaymentApi", + "methods": [ + { + "name": "query_acceptable_payment_assets", + "inputs": [ + { + "name": "xcm_version", + "type": 4 + } + ], + "output": 1044, + "docs": [ + " Returns a list of acceptable payment assets.", + "", + " # Arguments", + "", + " * `xcm_version`: Version." + ] + }, + { + "name": "query_xcm_weight", + "inputs": [ + { + "name": "message", + "type": 270 + } + ], + "output": 1047, + "docs": [ + " Returns a weight needed to execute a XCM.", + "", + " # Arguments", + "", + " * `message`: `VersionedXcm`." + ] + }, + { + "name": "query_weight_to_asset_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + }, + { + "name": "asset", + "type": 312 + } + ], + "output": 1048, + "docs": [ + " Converts a weight into a fee for the specified `AssetId`.", + "", + " # Arguments", + "", + " * `weight`: convertible `Weight`.", + " * `asset`: `VersionedAssetId`." + ] + }, + { + "name": "query_delivery_fees", + "inputs": [ + { + "name": "destination", + "type": 164 + }, + { + "name": "message", + "type": 270 + } + ], + "output": 1049, + "docs": [ + " Get delivery fees for sending a specific `message` to a `destination`.", + " These always come in a specific asset, defined by the chain.", + "", + " # Arguments", + " * `message`: The message that'll be sent, necessary because most delivery fees are based on the", + " size of the message.", + " * `destination`: The destination to send the message to. Different destinations may use", + " different senders that charge different fees." + ] + } + ], + "docs": [ + " A trait of XCM payment API.", + "", + " API provides functionality for obtaining:", + "", + " * the weight required to execute an XCM message,", + " * a list of acceptable `AssetId`s for message execution payment,", + " * the cost of the weight in the specified acceptable `AssetId`.", + " * the fees for an XCM message delivery.", + "", + " To determine the execution weight of the calls required for", + " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used." + ] + }, + { + "name": "DryRunApi", + "methods": [ + { + "name": "dry_run_call", + "inputs": [ + { + "name": "origin", + "type": 321 + }, + { + "name": "call", + "type": 213 + }, + { + "name": "result_xcms_version", + "type": 4 + } + ], + "output": 1050, + "docs": [ + " Dry run call V2." + ] + }, + { + "name": "dry_run_xcm", + "inputs": [ + { + "name": "origin_location", + "type": 164 + }, + { + "name": "xcm", + "type": 300 + } + ], + "output": 1058, + "docs": [ + " Dry run XCM program" + ] + } + ], + "docs": [ + " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API.", + "", + " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\".", + " If there's local execution, the location will be \"Here\".", + " This vector can be used to calculate both execution and delivery fees.", + "", + " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`.", + " In those cases, there might still be a valid result, with the execution error inside it.", + " The only reasons why these calls might return an error are listed in the [`Error`] enum." + ] + }, + { + "name": "LocationToAccountApi", + "methods": [ + { + "name": "convert_location", + "inputs": [ + { + "name": "location", + "type": 164 + } + ], + "output": 1060, + "docs": [ + " Converts `Location` to `AccountId`." + ] + } + ], + "docs": [ + " API for useful conversions between XCM `Location` and `AccountId`." + ] + }, + { + "name": "TrustedQueryApi", + "methods": [ + { + "name": "is_trusted_reserve", + "inputs": [ + { + "name": "asset", + "type": 1062 + }, + { + "name": "location", + "type": 164 + } + ], + "output": 1063, + "docs": [ + " Returns if the location is a trusted reserve for the asset.", + "", + " # Arguments", + " * `asset`: `VersionedAsset`.", + " * `location`: `VersionedLocation`." + ] + }, + { + "name": "is_trusted_teleporter", + "inputs": [ + { + "name": "asset", + "type": 1062 + }, + { + "name": "location", + "type": 164 + } + ], + "output": 1063, + "docs": [ + " Returns if the asset can be teleported to the location.", + "", + " # Arguments", + " * `asset`: `VersionedAsset`.", + " * `location`: `VersionedLocation`." + ] + } + ], + "docs": [ + " API for querying trusted reserves and trusted teleporters." + ] + }, + { + "name": "AuthorizedAliasersApi", + "methods": [ + { + "name": "authorized_aliasers", + "inputs": [ + { + "name": "target", + "type": 164 + } + ], + "output": 1065, + "docs": [ + " Returns locations allowed to alias into and act as `target`." + ] + }, + { + "name": "is_authorized_alias", + "inputs": [ + { + "name": "origin", + "type": 164 + }, + { + "name": "target", + "type": 164 + } + ], + "output": 1067, + "docs": [ + " Returns whether `origin` is allowed to alias into and act as `target`." + ] + } + ], + "docs": [ + " API for querying XCM authorized aliases" + ] + }, + { + "name": "FungiblesApi", + "methods": [ + { + "name": "query_account_balances", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 1068, + "docs": [ + " Returns the list of all [`Asset`] that an `AccountId` has." + ] + } + ], + "docs": [ + " The API for querying account's balances from runtime." + ] + }, + { + "name": "CollectCollationInfo", + "methods": [ + { + "name": "collect_collation_info", + "inputs": [ + { + "name": "header", + "type": 225 + } + ], + "output": 1070, + "docs": [ + " Collect information about a collation.", + "", + " The given `header` is the header of the built block for that", + " we are collecting the collation info for." + ] + } + ], + "docs": [ + " Runtime api to collect information about a collation.", + "", + " Version history:", + " - Version 2: Changed [`Self::collect_collation_info`] signature", + " - Version 3: Signals to the node to use version 1 of [`TeyrchainBlockData`]." + ] + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "type": 14 + } + ], + "output": 1073, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full", + " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the", + " provided JSON blob is incorrect or incomplete or the deserialization fails, an error", + " is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ] + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "type": 1074 + } + ], + "output": 814, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function should return JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ] + }, + { + "name": "preset_names", + "inputs": [], + "output": 1075, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ] + } + ], + "docs": [ + " API to interact with `RuntimeGenesisConfig` for the runtime" + ] + }, + { + "name": "AssetConversionApi", + "methods": [ + { + "name": "quote_price_tokens_for_exact_tokens", + "inputs": [ + { + "name": "asset1", + "type": 67 + }, + { + "name": "asset2", + "type": 67 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 335, + "docs": [ + " Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_in_max` to control slippage.)" + ] + }, + { + "name": "quote_price_exact_tokens_for_tokens", + "inputs": [ + { + "name": "asset1", + "type": 67 + }, + { + "name": "asset2", + "type": 67 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 335, + "docs": [ + " Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_out_min` to control slippage.)" + ] + }, + { + "name": "get_reserves", + "inputs": [ + { + "name": "asset1", + "type": 67 + }, + { + "name": "asset2", + "type": 67 + } + ], + "output": 1076, + "docs": [ + " Returns the size of the liquidity pool for the given asset pair." + ] + } + ], + "docs": [ + " This runtime api allows people to query the size of the liquidity pools", + " and quote prices for swaps." + ] + }, + { + "name": "GetTeyrchainInfo", + "methods": [ + { + "name": "teyrchain_id", + "inputs": [], + "output": 171, + "docs": [ + " Retrieve the teyrchain id used for runtime." + ] + } + ], + "docs": [ + " Runtime api used to access general info about a teyrchain runtime." + ] + }, + { + "name": "NominationPoolsApi", + "methods": [ + { + "name": "pending_rewards", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending rewards for the member that the AccountId was given for." + ] + }, + { + "name": "points_to_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "points", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent balance of `points` for a given pool." + ] + }, + { + "name": "balance_to_points", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "new_funds", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent points of `new_funds` for a given pool." + ] + }, + { + "name": "pool_pending_slash", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool." + ] + }, + { + "name": "member_pending_slash", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool member.", + "", + " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on", + " chain." + ] + }, + { + "name": "pool_needs_delegate_migration", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 8, + "docs": [ + " Returns true if the pool with `pool_id` needs migration.", + "", + " This can happen when the `pallet-nomination-pools` has switched to using strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool", + " still has funds that were staked using the older strategy", + " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use", + " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)", + " to migrate the pool." + ] + }, + { + "name": "member_needs_delegate_migration", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if the delegated funds of the pool `member` needs migration.", + "", + " Once a pool has successfully migrated to the strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the", + " member can be migrated from pool account to the member's account. Use", + " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)", + " to migrate the funds of the pool member." + ] + }, + { + "name": "member_total_balance", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the total contribution of a pool member including any balance that is unbonding." + ] + }, + { + "name": "pool_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Total balance contributed to the pool." + ] + }, + { + "name": "pool_accounts", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 1078, + "docs": [ + " Returns the bonded account and reward account associated with the pool_id." + ] + } + ], + "docs": [ + " Runtime api for accessing information about nomination pools." + ] + }, + { + "name": "StakingApi", + "methods": [ + { + "name": "nominations_quota", + "inputs": [ + { + "name": "balance", + "type": 6 + } + ], + "output": 4, + "docs": [ + " Returns the nominations quota for a nominator with a given balance." + ] + }, + { + "name": "eras_stakers_page_count", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Returns the page count of exposures for a validator `account` in a given era." + ] + }, + { + "name": "pending_rewards", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if validator `account` has pages to be claimed for the given era." + ] + } + ], + "docs": [] + } + ], + "outerEnums": { + "callType": 213, + "eventType": 21, + "errorType": 1079 + }, + "custom": { + "map": {} + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-rpc.ts b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-rpc.ts new file mode 100644 index 0000000..4e305de --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-rpc.ts @@ -0,0 +1,126 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +//To run a asset-hub-pezkuwi node please refer to types-support/src/metadata/README.md + +export default { + "methods": [ + "account_nextIndex", + "archive_v1_body", + "archive_v1_call", + "archive_v1_finalizedHeight", + "archive_v1_genesisHash", + "archive_v1_hashByHeight", + "archive_v1_header", + "archive_v1_stopStorage", + "archive_v1_storage", + "archive_v1_storageDiff", + "archive_v1_storageDiff_stopStorageDiff", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "dev_getBlockStats", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-types.json b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-types.json new file mode 100644 index 0000000..43adef2 --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-types.json @@ -0,0 +1,76690 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 698, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 242, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "fields": [ + { + "name": null, + "type": 33, + "typeName": "pezcumulus_pallet_teyrchain_system::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 36, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "AssetTxPayment", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "pallet_asset_conversion_tx_payment::Event", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "pallet_claims::Event", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "CollatorSelection", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "pallet_collator_selection::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 90, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "XcmpQueue", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "pezcumulus_pallet_xcmp_queue::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "pallet_xcm::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "fields": [ + { + "name": null, + "type": 166, + "typeName": "pezcumulus_pallet_xcm::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "ToZagrosXcmRouter", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "pallet_xcm_bridge_hub_router::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 169, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "SnowbridgeSystemFrontend", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "snowbridge_pallet_system_frontend::Event", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 175, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 178, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 182, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 183, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 184, + "typeName": "pallet_uniques::Event", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 191, + "typeName": "pallet_nfts::Event", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "fields": [ + { + "name": null, + "type": 198, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 199, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 200, + "typeName": "pallet_asset_conversion::Event", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 205, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 208, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 211, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 670, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 674, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 675, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 676, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 677, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 680, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 681, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 682, + "typeName": "pallet_delegated_staking::Event", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "StakingRcClient", + "fields": [ + { + "name": null, + "type": 683, + "typeName": "pallet_staking_async_rc_client::Event", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MultiBlockElection", + "fields": [ + { + "name": null, + "type": 685, + "typeName": "pallet_election_provider_multi_block::Event", + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionVerifier", + "fields": [ + { + "name": null, + "type": 686, + "typeName": "pallet_election_provider_multi_block::verifier::Event", + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 690, + "typeName": "pallet_election_provider_multi_block::signed::Event", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 691, + "typeName": "pallet_staking_async::Event", + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "AhOps", + "fields": [ + { + "name": null, + "type": 695, + "typeName": "pallet_ah_ops::Event", + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "fields": [ + { + "name": null, + "type": 696, + "typeName": "pallet_ah_migrator::Event", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "TaskStarted", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A [`Task`] has started executing" + ] + }, + { + "name": "TaskCompleted", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A [`Task`] has finished executing." + ] + }, + { + "name": "TaskFailed", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + }, + { + "name": "err", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A [`Task`] failed during execution." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An upgrade was authorized." + ] + }, + { + "name": "RejectedInvalidAuthorizedUpgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 10, + "docs": [ + "An invalid authorized upgrade was rejected while trying to apply it." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "DispatchEventInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Trie", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "TrieError", + "docs": [] + } + ], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "proving_trie", + "TrieError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidStateRoot", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "IncompleteDatabase", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ValueAtIncompleteKey", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DecoderError", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DuplicateKey", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExtraneousNode", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ExtraneousValue", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "ExtraneousHashReference", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidChildReference", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ValueMismatch", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IncompleteProof", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "RootMismatch", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DecodeError", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 32, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeTask" + ], + "params": [], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [] + } + }, + { + "id": 33, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidationFunctionStored", + "fields": [], + "index": 0, + "docs": [ + "The validation function has been scheduled to apply." + ] + }, + { + "name": "ValidationFunctionApplied", + "fields": [ + { + "name": "relay_chain_block_num", + "type": 4, + "typeName": "RelayChainBlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The validation function was applied as of the contained relay chain block number." + ] + }, + { + "name": "ValidationFunctionDiscarded", + "fields": [], + "index": 2, + "docs": [ + "The relay-chain aborted the upgrade process." + ] + }, + { + "name": "DownwardMessagesReceived", + "fields": [ + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some downward messages have been received and will be processed." + ] + }, + { + "name": "DownwardMessagesProcessed", + "fields": [ + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "dmq_head", + "type": 13, + "typeName": "relay_chain::Hash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Downward messages were processed using the given weight." + ] + }, + { + "name": "UpwardMessageSent", + "fields": [ + { + "name": "message_hash", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An upward message was sent to the relay chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 34, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 38, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + }, + { + "name": "AgendaIncomplete", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Agenda is incomplete from `when`." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 37, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 38, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 39 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 39, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 39, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 40, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 41, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 56, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 56, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 41, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingElection", + "fields": [ + { + "name": null, + "type": 42, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "::Key", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "::Key", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 42, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedPhase", + "fields": [ + { + "name": null, + "type": 43, + "typeName": "SignedPhase", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxSignedSubmissions", + "fields": [ + { + "name": null, + "type": 44, + "typeName": "MaxSignedSubmissions", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "UnsignedPhase", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "UnsignedPhase", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MinerPages", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "MinerPages", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MaxElectingVoters", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "MaxElectingVoters", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TargetSnapshotPerBlock", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "TargetSnapshotPerBlock", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "MaxEraDuration", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "MaxEraDuration", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "SignedPhase" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "MaxSignedSubmissions" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "UnsignedPhase" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "MinerPages" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "MaxElectingVoters" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 48, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "TargetSnapshotPerBlock" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "MaxEraDuration" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "scheduler", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxScheduledPerBlock", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "MaxScheduledPerBlock", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaximumWeight", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "MaximumWeight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "scheduler", + "MaxScheduledPerBlock" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "scheduler", + "MaximumWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "message_queue", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxOnInitWeight", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MaxOnInitWeight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxOnIdleWeight", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "MaxOnIdleWeight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "message_queue", + "MaxOnInitWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 55, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "message_queue", + "MaxOnIdleWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 56, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 57 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 57, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingElection", + "fields": [ + { + "name": null, + "type": 58, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 59, + "typeName": "::Value", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "::Value", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedPhase", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxSignedSubmissions", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "UnsignedPhase", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MinerPages", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MaxElectingVoters", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TargetSnapshotPerBlock", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "MaxEraDuration", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "scheduler", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxScheduledPerBlock", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaximumWeight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "message_queue", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxOnInitWeight", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxOnIdleWeight", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 61, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 62, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 63, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 22, + "docs": [ + "An unexpected/defensive event was triggered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 63, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "pallet_balances", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceUpdated", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FailedToMutateAccount", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 66, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + }, + { + "name": "AssetRefundFailed", + "fields": [ + { + "name": "native_amount_kept", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A swap of the refund in native currency back to asset failed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 67, + "type": { + "path": [ + "staging_xcm", + "v5", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 68, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [ + "staging_xcm", + "v5", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 69, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 82, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 72, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 72, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 72, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 74, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 76, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 77, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 73, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 71, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 73 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 73, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Moniker", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 77, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 82, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 84, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 70 + } + }, + "docs": [] + } + }, + { + "id": 85, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A vesting schedule has been created." + ] + }, + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 86, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Claimed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_address", + "type": 87, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Someone claimed some DOTs." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 87, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EthereumAddress" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 74, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewInvulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New Invulnerables were set." + ] + }, + { + "name": "InvulnerableAdded", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new Invulnerable was added." + ] + }, + { + "name": "InvulnerableRemoved", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An Invulnerable was removed." + ] + }, + { + "name": "NewDesiredCandidates", + "fields": [ + { + "name": "desired_candidates", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The number of desired candidates was set." + ] + }, + { + "name": "NewCandidacyBond", + "fields": [ + { + "name": "bond_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The candidacy bond was set." + ] + }, + { + "name": "CandidateAdded", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new candidate joined." + ] + }, + { + "name": "CandidateBondUpdated", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Bond of a candidate updated." + ] + }, + { + "name": "CandidateRemoved", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A candidate was removed." + ] + }, + { + "name": "CandidateReplaced", + "fields": [ + { + "name": "old", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account was replaced in the candidate list by another one." + ] + }, + { + "name": "InvalidInvulnerableSkipped", + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An account was unable to be added to the Invulnerables because they did not have keys", + "registered. Other Invulnerables may have been set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 89, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + }, + { + "name": "NewQueued", + "fields": [], + "index": 1, + "docs": [ + "The `NewSession` event in the current block also implies a new validator set to be", + "queued." + ] + }, + { + "name": "ValidatorDisabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Validator has been disabled." + ] + }, + { + "name": "ValidatorReenabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Validator has been re-enabled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 91, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "XcmpMessageSent", + "fields": [ + { + "name": "message_hash", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An HRMP message was sent to a sibling teyrchain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 92, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 93, + "typeName": "xcm::latest::Outcome", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "SendFailed", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 132, + "typeName": "SendError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An XCM message failed to send." + ] + }, + { + "name": "ProcessXcmError", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 95, + "typeName": "XcmError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An XCM message failed to process." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 107, + "typeName": "Response", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "actual_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_budgeted_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_location", + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + }, + { + "name": "cost", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 15, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "error", + "type": 95, + "typeName": "XcmError", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_querier", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "maybe_actual_querier", + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 21, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 22, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "fees", + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 25, + "docs": [ + "A XCM version migration finished." + ] + }, + { + "name": "AliasAuthorized", + "fields": [ + { + "name": "aliaser", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "expiry", + "type": 165, + "typeName": "Option", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An `aliaser` location was authorized by `target` to alias it, authorization valid until", + "`expiry` block number." + ] + }, + { + "name": "AliasAuthorizationRemoved", + "fields": [ + { + "name": "aliaser", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 27, + "docs": [ + "`target` removed alias authorization for `aliaser`." + ] + }, + { + "name": "AliasesAuthorizationsRemoved", + "fields": [ + { + "name": "target", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 28, + "docs": [ + "`target` removed all alias authorizations." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 93, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "Outcome" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "error", + "type": 94, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 94, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "InstructionError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 95, + "typeName": "Error", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [ + "xcm", + "v5", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 97, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 98 + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 107, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 117, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 61, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 118, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 73, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 68, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 124, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 126, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 128, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 129, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 99, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 100, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 101 + } + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 102, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 103, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 102, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 103, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 104, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 105, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 106, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 107, + "type": { + "path": [ + "staging_xcm", + "v5", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 110, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 108, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 109 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 109, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 109, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 95 + ] + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 111 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 113, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 111, + "type": { + "path": [ + "staging_xcm", + "v5", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 112, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 112, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 71, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 111 + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "TruncatedError", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 67 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 67, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [ + "xcm", + "v3", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "staging_xcm", + "v5", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 121, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 102, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 122, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 102, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 122, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 124, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 125 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 125, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 125, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetTransferFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [ + { + "name": null, + "type": 120, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveDeposit", + "fields": [ + { + "name": null, + "type": 120, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReserveWithdraw", + "fields": [ + { + "name": null, + "type": 120, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 126, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 125 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 127, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 125 + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 68 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 68, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 130 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "staging_xcm", + "v5", + "Hint" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetClaimer", + "fields": [ + { + "name": "location", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 130 + } + }, + "docs": [] + } + }, + { + "id": 132, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "SendError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotApplicable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "MissingArgument", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Fees", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "v3::MultiAssets", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "v4::Assets", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "v5::Assets", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 134, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 135, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 136 + } + }, + "docs": [] + } + }, + { + "id": 136, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 137, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 143, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 138, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 139, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 141, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 141, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 141, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 74, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 76, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 77, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 142, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 142 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 142, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 143, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 144, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 145, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 146, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 147 + } + }, + "docs": [] + } + }, + { + "id": 147, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 148, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 162, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 149, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 150, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 151, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 155, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 157, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 158, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 159, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 160, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 153, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 153, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 153, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 74, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 76, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 77, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 154 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 154, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 152 + } + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 163, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 163, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 138, + "typeName": "v3::MultiLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "v5::Location", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 165, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 166, + "type": { + "path": [ + "pezcumulus_pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidFormat", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Downward message is invalid XCM.", + "\\[ id \\]" + ] + }, + { + "name": "UnsupportedVersion", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Downward message is unsupported version of XCM.", + "\\[ id \\]" + ] + }, + { + "name": "ExecutedDownward", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": null, + "type": 93, + "typeName": "Outcome", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Downward message executed with the given outcome.", + "\\[ id, outcome \\]" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 167, + "type": { + "path": [ + "pallet_xcm_bridge_hub_router", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DeliveryFeeFactorDecreased", + "fields": [ + { + "name": "new_value", + "type": 168, + "typeName": "FixedU128", + "docs": [ + "New value of the `DeliveryFeeFactor`." + ] + } + ], + "index": 0, + "docs": [ + "Delivery fee factor has been decreased." + ] + }, + { + "name": "DeliveryFeeFactorIncreased", + "fields": [ + { + "name": "new_value", + "type": 168, + "typeName": "FixedU128", + "docs": [ + "New value of the `DeliveryFeeFactor`." + ] + } + ], + "index": 1, + "docs": [ + "Delivery fee factor has been increased." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 168, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 170, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 172, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 170, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 170, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 170, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 170, + "type": { + "path": [ + "pezcumulus_primitives_core", + "AggregateMessageOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Parent", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Sibling", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 171, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "Id" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [ + "snowbridge_pallet_system_frontend", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MessageSent", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An XCM was sent" + ] + }, + { + "name": "ExportOperatingModeChanged", + "fields": [ + { + "name": "mode", + "type": 174, + "typeName": "OperatingMode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set OperatingMode" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 174, + "type": { + "path": [ + "snowbridge_core", + "operating_mode", + "BasicOperatingMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Halted", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 38, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + }, + { + "name": "IfElseMainSuccess", + "fields": [], + "index": 6, + "docs": [ + "Main call was dispatched." + ] + }, + { + "name": "IfElseFallbackCalled", + "fields": [ + { + "name": "main_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The fallback call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 176, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 177, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 177, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 38, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 177, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The deposit for a multisig operation has been updated/poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 177, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 38, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 180, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "PureKilled", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "spawner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 180, + "typeName": "u16", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A pure proxy was killed by its spawner." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proxy was removed." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 181, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit stored for proxies or announcements was poked / updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 179, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Assets", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AssetOwner", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AssetManager", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Collator", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "ParaRegistration", + "fields": [], + "index": 11, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [ + "pallet_proxy", + "DepositKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Proxies", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Announcements", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A deposit to reserve an index has been poked/reconsidered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 183, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 184, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 185, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 185, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 188, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 188, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 190, + "typeName": "Option", + "docs": [] + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 185, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 191, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "admin", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "freezer", + "type": 190, + "typeName": "Option", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deadline", + "type": 187, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 190, + "typeName": "Option", + "docs": [] + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf", + "docs": [] + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "price", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + }, + { + "name": "PalletAttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "attribute", + "type": 197, + "typeName": "PalletAttributes", + "docs": [] + }, + { + "name": "value", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 37, + "docs": [ + "A new attribute in the `Pallet` namespace was set for the `collection` or an `item`", + "within that `collection`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 192, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CollectionOwner", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ItemOwner", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 195 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 195, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + }, + { + "name": "direction", + "type": 196, + "typeName": "PriceDirection", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Receive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 197, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UsedToClaim", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TransferDisabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 198, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 199, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 200, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 201, + "typeName": "T::PoolId", + "docs": [ + "The pool id associated with the pool. Note that the order of the assets may not be", + "the same as the order specified in the create pool extrinsic." + ] + }, + { + "name": "pool_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account ID of the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the liquidity tokens that will be minted when assets are added to this", + "pool." + ] + } + ], + "index": 0, + "docs": [ + "A successful call of the `CreatePool` extrinsic will create this event." + ] + }, + { + "name": "LiquidityAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity was taken from." + ] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were minted to." + ] + }, + { + "name": "pool_id", + "type": 201, + "typeName": "T::PoolId", + "docs": [ + "The pool id of the pool that the liquidity was added to." + ] + }, + { + "name": "amount1_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was added to the pool." + ] + }, + { + "name": "amount2_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was added to the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was minted." + ] + }, + { + "name": "lp_token_minted", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were minted of that id." + ] + } + ], + "index": 1, + "docs": [ + "A successful call of the `AddLiquidity` extrinsic will create this event." + ] + }, + { + "name": "LiquidityRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were burned from." + ] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "pool_id", + "type": 201, + "typeName": "T::PoolId", + "docs": [ + "The pool id that the liquidity was removed from." + ] + }, + { + "name": "amount1", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was removed from the pool." + ] + }, + { + "name": "amount2", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was removed from the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was burned." + ] + }, + { + "name": "lp_token_burned", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were burned of that id." + ] + }, + { + "name": "withdrawal_fee", + "type": 202, + "typeName": "Permill", + "docs": [ + "Liquidity withdrawal fee (%)." + ] + } + ], + "index": 2, + "docs": [ + "A successful call of the `RemoveLiquidity` extrinsic will create this event." + ] + }, + { + "name": "SwapExecuted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Which account was the instigator of the swap." + ] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 203, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 3, + "docs": [ + "Assets have been converted from one to another. Both `SwapExactTokenForToken`", + "and `SwapTokenForExactToken` will generate this event." + ] + }, + { + "name": "SwapCreditExecuted", + "fields": [ + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 203, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 4, + "docs": [ + "Assets have been converted from one to another." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "pool_id", + "type": 201, + "typeName": "T::PoolId", + "docs": [ + "The ID of the pool." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account initiating the touch." + ] + } + ], + "index": 5, + "docs": [ + "Pool has been touched in order to fulfill operational requirements." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 201, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 67, + 67 + ] + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 204 + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 67, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 206, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 207, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 206, + "type": { + "path": [ + "pezkuwi_runtime_common", + "impls", + "VersionedLocatableAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": "location", + "type": 138, + "typeName": "xcm::v3::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 137, + "typeName": "xcm::v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 149, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 148, + "typeName": "xcm::v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": "location", + "type": 67, + "typeName": "xcm::v5::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 102, + "typeName": "xcm::v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [ + "teyrchains_common", + "pay", + "VersionedLocatableAccount" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 149, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "account_id", + "type": 149, + "typeName": "xcm::v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": "location", + "type": 67, + "typeName": "xcm::v5::Location", + "docs": [] + }, + { + "name": "account_id", + "type": 67, + "typeName": "xcm::v5::Location", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 209, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account has voted" + ] + }, + { + "name": "VoteRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 209, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A vote has been removed" + ] + }, + { + "name": "VoteUnlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "class", + "type": 180, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The lockup period of a conviction vote expired, and the funds have been unlocked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 209, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 210, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 180, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 212, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 180, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 212, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 571, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 571, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 571, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 571, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 571, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 571, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 212, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 213 + }, + { + "name": "H", + "type": 669 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 185, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 214, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "fields": [ + { + "name": null, + "type": 218, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 239, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TeyrchainInfo", + "fields": [ + { + "name": null, + "type": 240, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 241, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 243, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 245, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 251, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 255, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 257, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "CollatorSelection", + "fields": [ + { + "name": null, + "type": 264, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 265, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "XcmpQueue", + "fields": [ + { + "name": null, + "type": 268, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 269, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "fields": [ + { + "name": null, + "type": 313, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "ToZagrosXcmRouter", + "fields": [ + { + "name": null, + "type": 314, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 315, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "SnowbridgeSystemFrontend", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 319, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 330, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 331, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 332, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 336, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "fields": [ + { + "name": null, + "type": 356, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 357, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 358, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 360, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 361, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 364, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 367, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 369, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 370, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 371, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 377, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 391, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "StakingRcClient", + "fields": [ + { + "name": null, + "type": 392, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MultiBlockElection", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionVerifier", + "fields": [ + { + "name": null, + "type": 413, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "MultiBlockElectionUnsigned", + "fields": [ + { + "name": null, + "type": 414, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 468, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 470, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "AhOps", + "fields": [ + { + "name": null, + "type": 488, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "fields": [ + { + "name": null, + "type": 489, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 215, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 217, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "do_task", + "fields": [ + { + "name": "task", + "type": 32, + "typeName": "T::RuntimeTask", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 216 + } + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_data", + "fields": [ + { + "name": "data", + "type": 219, + "typeName": "BasicTeyrchainInherentData", + "docs": [] + }, + { + "name": "inbound_messages_data", + "type": 227, + "typeName": "InboundMessagesData", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current validation data.", + "", + "This should be invoked exactly once per block. It will panic at the finalization", + "phase if the call was not invoked.", + "", + "The dispatch origin for this call must be `Inherent`", + "", + "As a side effect, this function upgrades the current validation function", + "if the appropriate time has come." + ] + }, + { + "name": "sudo_send_upward_message", + "fields": [ + { + "name": "message", + "type": 14, + "typeName": "UpwardMessage", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 219, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "BasicTeyrchainInherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validation_data", + "type": 220, + "typeName": "PersistedValidationData", + "docs": [] + }, + { + "name": "relay_chain_state", + "type": 222, + "typeName": "sp_trie::StorageProof", + "docs": [] + }, + { + "name": "relay_parent_descendants", + "type": 224, + "typeName": "Vec", + "docs": [] + }, + { + "name": "collator_peer_id", + "type": 226, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PersistedValidationData" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_head", + "type": 221, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "relay_parent_storage_root", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HeadData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [ + "sp_trie", + "storage_proof", + "StorageProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "trie_nodes", + "type": 223, + "typeName": "BTreeSet>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 217, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 71, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 189 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 189, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "InboundMessagesData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "downward_messages", + "type": 228, + "typeName": "AbridgedInboundDownwardMessages", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 233, + "typeName": "AbridgedInboundHrmpMessages", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "AbridgedInboundMessagesCollection" + ], + "params": [ + { + "name": "Message", + "type": 229 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "full_messages", + "type": 230, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hashed_messages", + "type": 231, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 229, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "msg", + "type": 14, + "typeName": "DownwardMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 229 + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 232 + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [ + "pezcumulus_primitives_teyrchain_inherent", + "HashedMessage" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "RelayChainBlockNumber", + "docs": [] + }, + { + "name": "msg_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "AbridgedInboundMessagesCollection" + ], + "params": [ + { + "name": "Message", + "type": 234 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "full_messages", + "type": 236, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hashed_messages", + "type": 237, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 171, + 235 + ] + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 234 + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 238 + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 171, + 232 + ] + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 240, + "type": { + "path": [ + "staging_teyrchain_info", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 242, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 242, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 244, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 244, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 244, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 244, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 37, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 244, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 37 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 37, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 246, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 246, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingElection", + "fields": [ + { + "name": null, + "type": 247, + "typeName": "dynamic_params::staking_election::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 248, + "typeName": "dynamic_params::scheduler::Parameters", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 249, + "typeName": "dynamic_params::message_queue::Parameters", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "staking_election", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedPhase", + "fields": [ + { + "name": null, + "type": 43, + "typeName": "SignedPhase", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxSignedSubmissions", + "fields": [ + { + "name": null, + "type": 44, + "typeName": "MaxSignedSubmissions", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "UnsignedPhase", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "UnsignedPhase", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MinerPages", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "MinerPages", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MaxElectingVoters", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "MaxElectingVoters", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TargetSnapshotPerBlock", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "TargetSnapshotPerBlock", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "MaxEraDuration", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "MaxEraDuration", + "docs": [] + }, + { + "name": null, + "type": 165, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 248, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "scheduler", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxScheduledPerBlock", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "MaxScheduledPerBlock", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaximumWeight", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "MaximumWeight", + "docs": [] + }, + { + "name": null, + "type": 61, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "dynamic_params", + "message_queue", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxOnInitWeight", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MaxOnInitWeight", + "docs": [] + }, + { + "name": null, + "type": 250, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxOnIdleWeight", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "MaxOnIdleWeight", + "docs": [] + }, + { + "name": null, + "type": 250, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 61 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 61, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 251, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 254, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 75, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 252, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 253, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 74, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 253, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 39 + } + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 256, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 256, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 252, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 256, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 258, + "typeName": "EcdsaSignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make a claim to collect your DOTs.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to claim is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)", + "", + "and `address` matches the `dest` account.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "mint_claim", + "fields": [ + { + "name": "who", + "type": 87, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vesting_schedule", + "type": 260, + "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>", + "docs": [] + }, + { + "name": "statement", + "type": 262, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Mint a new claim to collect DOTs.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "Parameters:", + "- `who`: The Ethereum address allowed to collect this claim.", + "- `value`: The number of DOTs that will be claimed.", + "- `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "We assume worst case that both vesting and statement is being inserted.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "claim_attest", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 258, + "typeName": "EcdsaSignature", + "docs": [] + }, + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Make a claim to collect your DOTs by signing a statement.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to `claim_attest` is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)(statement)", + "", + "and `address` matches the `dest` account; the `statement` must match that which is", + "expected according to your purchase arrangement.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim_attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "attest", + "fields": [ + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Attest to a statement, needed to finalize the claims process.", + "", + "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a", + "`TransactionExtension`.", + "", + "Unsigned Validation:", + "A call to attest is deemed valid if the sender has a `Preclaim` registered", + "and provides a `statement` which is expected for the account.", + "", + "Parameters:", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to do pre-validation on `attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "move_claim", + "fields": [ + { + "name": "old", + "type": 87, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "new", + "type": 87, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "maybe_preclaim", + "type": 190, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 258, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EcdsaSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 259, + "typeName": "[u8; 65]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 261 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 261, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 263 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 263, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "StatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Regular", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Saft", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_invulnerables", + "fields": [ + { + "name": "new", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the list of invulnerable (fixed) collators. These collators must do some", + "preparation, namely to have registered session keys.", + "", + "The call will remove any accounts that have not registered keys from the set. That is,", + "it is non-atomic; the caller accepts all `AccountId`s passed in `new` _individually_ as", + "acceptable Invulnerables, and is not proposing a _set_ of new Invulnerables.", + "", + "This call does not maintain mutual exclusivity of `Invulnerables` and `Candidates`. It", + "is recommended to use a batch of `add_invulnerable` and `remove_invulnerable` instead. A", + "`batch_all` can also be used to enforce atomicity. If any candidates are included in", + "`new`, they should be removed with `remove_invulnerable_candidate` after execution.", + "", + "Must be called by the `UpdateOrigin`." + ] + }, + { + "name": "set_desired_candidates", + "fields": [ + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the ideal number of non-invulnerable collators. If lowering this number, then the", + "number of running collators could be higher than this figure. Aside from that edge case,", + "there should be no other way to have more candidates than the desired number.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "set_candidacy_bond", + "fields": [ + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the candidacy bond amount.", + "", + "If the candidacy bond is increased by this call, all current candidates which have a", + "deposit lower than the new bond will be kicked from the list and get their deposits", + "back.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "register_as_candidate", + "fields": [], + "index": 3, + "docs": [ + "Register this account as a collator candidate. The account must (a) already have", + "registered session keys and (b) be able to reserve the `CandidacyBond`.", + "", + "This call is not available to `Invulnerable` collators." + ] + }, + { + "name": "leave_intent", + "fields": [], + "index": 4, + "docs": [ + "Deregister `origin` as a collator candidate. Note that the collator can only leave on", + "session change. The `CandidacyBond` will be unreserved immediately.", + "", + "This call will fail if the total number of candidates would drop below", + "`MinEligibleCollators`." + ] + }, + { + "name": "add_invulnerable", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Add a new account `who` to the list of `Invulnerables` collators. `who` must have", + "registered session keys. If `who` is a candidate, they will be removed.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "remove_invulnerable", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Remove an account `who` from the list of `Invulnerables` collators. `Invulnerables` must", + "be sorted.", + "", + "The origin for this call must be the `UpdateOrigin`." + ] + }, + { + "name": "update_bond", + "fields": [ + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Update the candidacy bond of collator candidate `origin` to a new amount `new_deposit`.", + "", + "Setting a `new_deposit` that is lower than the current deposit while `origin` is", + "occupying a top-`DesiredCandidates` slot is not allowed.", + "", + "This call will fail if `origin` is not a collator candidate, the updated bond is lower", + "than the minimum candidacy bond, and/or the amount cannot be reserved." + ] + }, + { + "name": "take_candidate_slot", + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The caller `origin` replaces a candidate `target` in the collator candidate list by", + "reserving `deposit`. The amount `deposit` reserved by the caller must be greater than", + "the existing bond of the target it is trying to replace.", + "", + "This call will fail if the caller is already a collator candidate or invulnerable, the", + "caller does not have registered session keys, the target is not a collator candidate,", + "and/or the `deposit` amount cannot be reserved." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 265, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 266, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 266, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "aura", + "type": 267, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 267, + "type": { + "path": [ + "sp_consensus_aura", + "ed25519", + "app_ed25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "suspend_xcm_execution", + "fields": [], + "index": 1, + "docs": [ + "Suspends all XCM executions for the XCMP queue, regardless of the sender's origin.", + "", + "- `origin`: Must pass `ControllerOrigin`." + ] + }, + { + "name": "resume_xcm_execution", + "fields": [], + "index": 2, + "docs": [ + "Resumes all XCM executions for the XCMP queue.", + "", + "Note that this function doesn't change the status of the in/out bound channels.", + "", + "- `origin`: Must pass `ControllerOrigin`." + ] + }, + { + "name": "update_suspend_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Overwrites the number of pages which must be in the queue for the other side to be", + "told to suspend their sending.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.suspend_value`" + ] + }, + { + "name": "update_drop_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Overwrites the number of pages which must be in the queue after which we drop any", + "further messages from the channel.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.drop_threshold`" + ] + }, + { + "name": "update_resume_threshold", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Overwrites the number of pages which the queue must be reduced to before it signals", + "that message sending may recommence after it has been suspended.", + "", + "- `origin`: Must pass `Root`.", + "- `new`: Desired value for `QueueConfigData.resume_threshold`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 269, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 270, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "**This function is deprecated: Use `limited_teleport_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 300, + "typeName": "Box::RuntimeCall>>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Execute an XCM message from a local, signed, origin.", + "", + "An event is deposited indicating whether `msg` could be executed completely or only", + "partially.", + "", + "No more than `max_weight` will be used in its attempted execution. If this is less than", + "the maximum amount of weight that the message could take to be executed, then no", + "execution attempt will be made." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Extoll that a particular destination can be communicated with through a particular", + "version of XCM.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The destination that is being described.", + "- `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a safe XCM version (the version that XCM should be encoded with if the most recent", + "version a destination can accept is unknown).", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 164, + "typeName": "Box", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Ask a location to notify us regarding their XCM version and any changes to it.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 164, + "typeName": "Box", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Require that a particular destination should no longer notify us regarding any XCM", + "version changes.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set or unset the global suspension state of the XCM executor.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `suspended`: `true` to suspend, `false` to resume." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve, or through teleports.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for", + "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the", + "operation will fail and the sent assets may be at risk.", + "", + "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable", + "to `dest`, no limitations imposed on `fees`.", + " - for local reserve: transfer assets to sovereign account of destination chain and", + " forward a notification XCM to `dest` to mint and deposit reserve-based assets to", + " `beneficiary`.", + " - for destination reserve: burn local assets and forward a notification to `dest` chain", + " to withdraw the reserve assets from this chain's sovereign account and deposit them", + " to `beneficiary`.", + " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves", + " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint", + " and deposit reserve-based assets to `beneficiary`.", + " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport", + " assets and deposit them to `beneficiary`.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `X2(Parent,", + " Teyrchain(..))` to send from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send", + " from relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "Box", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claims assets trapped on this pallet because of leftover assets during XCM execution.", + "", + "- `origin`: Anyone can call this extrinsic.", + "- `assets`: The exact assets that were trapped. Use the version to specify what version", + "was the latest when they were trapped.", + "- `beneficiary`: The location/account where the claimed assets will be deposited." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 133, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets_transfer_type", + "type": 311, + "typeName": "Box", + "docs": [] + }, + { + "name": "remote_fees_id", + "type": 312, + "typeName": "Box", + "docs": [] + }, + { + "name": "fees_transfer_type", + "type": 311, + "typeName": "Box", + "docs": [] + }, + { + "name": "custom_xcm_on_dest", + "type": 270, + "typeName": "Box>", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Transfer assets from the local chain to the destination chain using explicit transfer", + "types for assets and fees.", + "", + "`assets` must have same reserve location or may be teleportable to `dest`. Caller must", + "provide the `assets_transfer_type` to be used for `assets`:", + " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `TransferType::DestinationReserve`: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`", + " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another", + " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically", + " the remote `reserve` is Asset Hub.", + " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to", + " mint/teleport assets and deposit them to `beneficiary`.", + "", + "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to", + "buy execution using transferred `assets` identified by `remote_fees_id`.", + "Make sure enough of the specified `remote_fees_id` asset is included in the given list", + "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "`remote_fees_id` may use different transfer type than rest of `assets` and can be", + "specified through `fees_transfer_type`.", + "", + "The caller needs to specify what should happen to the transferred assets once they reach", + "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which", + "contains the instructions to execute on `dest` as a final step.", + " This is usually as simple as:", + " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,", + " but could be something more exotic like sending the `assets` even further.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from", + " teyrchain across a bridge to another ecosystem destination.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.", + "- `remote_fees_id`: One of the included `assets` to be used to pay fees.", + "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.", + "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the", + " transfer, which also determines what happens to the assets on the destination chain.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "add_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "expires", + "type": 165, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Authorize another `aliaser` location to alias into the local `origin` making this call.", + "The `aliaser` is only authorized until the provided `expiry` block number.", + "The call can also be used for a previously authorized alias in order to update its", + "`expiry` block number.", + "", + "Usually useful to allow your local account to be aliased into from a remote location", + "also under your control (like your account on another chain).", + "", + "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in", + "their/your name. Once authorized using this call, the `aliaser` can freely impersonate", + "`origin` in XCM programs executed on the local chain." + ] + }, + { + "name": "remove_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 164, + "typeName": "Box", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a previously authorized `aliaser` from the list of locations that can alias into", + "the local `origin` making this call." + ] + }, + { + "name": "remove_all_authorized_aliases", + "fields": [], + "index": 16, + "docs": [ + "Remove all previously authorized `aliaser`s that can alias into the local `origin`", + "making this call." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 270, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 271, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 287, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 272, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 273 + } + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 274, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 282, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 117, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 118, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 139, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 271, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 271, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 282, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 142, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 139, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 282, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 274, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 278, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 276 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 276, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 277 + ] + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 279 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 281, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 280, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 280, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 71, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 279 + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 138 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 138, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 285, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 137, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 286, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 137, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 286, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 288, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 289 + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 290, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 295, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 117, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 118, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 287, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 287, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 295, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 154, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 150, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 295, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 291, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 292 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 294, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 293, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 293, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 71, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 292 + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 149 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 149, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 298, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 148, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 299, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 148, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 299, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 301, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 305, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 308, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 302, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 303 + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 274, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 282, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 117, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 304, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 139, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 284, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 301, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 301, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 134, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 282, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 283, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 142, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 139, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 271, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 136, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 138, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 282, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 306, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 307 + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 290, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 295, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 117, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 304, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 149, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 297, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 305, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 305, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 145, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 295, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 154, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 150, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 287, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 147, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 295, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 309, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 310 + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 107, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 117, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 61, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 304, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 120, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 308, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 308, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 99, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 119, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 73, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 68, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 123, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 116, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 124, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 126, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 128, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 308, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 129, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LocalReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DestinationReserve", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "RemoteReserve", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 148, + "typeName": "v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 102, + "typeName": "v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "pezcumulus_pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 314, + "type": { + "path": [ + "pallet_xcm_bridge_hub_router", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_bridge_status", + "fields": [ + { + "name": "bridge_id", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "is_congested", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Notification about congested bridge queue." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 315, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 170, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 170, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 316, + "type": { + "path": [ + "snowbridge_pallet_system_frontend", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_operating_mode", + "fields": [ + { + "name": "mode", + "type": 174, + "typeName": "OperatingMode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the operating mode for exporting messages to Ethereum." + ] + }, + { + "name": "register_token", + "fields": [ + { + "name": "asset_id", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "metadata", + "type": 317, + "typeName": "AssetMetadata", + "docs": [] + }, + { + "name": "fee_asset", + "type": 101, + "typeName": "Asset", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Initiates the registration for a Pezkuwi-native token as a wrapped ERC20 token on", + "Ethereum.", + "- `asset_id`: Location of the asset", + "- `metadata`: Metadata to include in the instantiated ERC20 contract on Ethereum", + "", + "All origins are allowed, however `asset_id` must be a location nested within the origin", + "consensus system." + ] + }, + { + "name": "add_tip", + "fields": [ + { + "name": "message_id", + "type": 318, + "typeName": "MessageId", + "docs": [] + }, + { + "name": "asset", + "type": 101, + "typeName": "Asset", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add an additional relayer tip for a committed message identified by `message_id`.", + "The tip asset will be swapped for ether." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 317, + "type": { + "path": [ + "snowbridge_core", + "AssetMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 188, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "symbol", + "type": 188, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 318, + "type": { + "path": [ + "snowbridge_core", + "reward", + "MessageId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inbound", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Outbound", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 320, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 320, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 321, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 320, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + }, + { + "name": "if_else", + "fields": [ + { + "name": "main", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "fallback", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Dispatch a fallback call in the event the main call fails to execute.", + "May be called from any origin except `None`.", + "", + "This function first attempts to dispatch the `main` call.", + "If the `main` call fails, the `fallback` is attemted.", + "if the fallback is successfully dispatched, the weights of both calls", + "are accumulated and an event containing the main call error is deposited.", + "", + "In the event of a fallback failure the whole call fails", + "with the weights returned.", + "", + "- `main`: The main call to be dispatched. This is the primary action to execute.", + "- `fallback`: The fallback call to be dispatched in case the `main` call fails.", + "", + "## Dispatch Logic", + "- If the origin is `root`, both the main and fallback calls are executed without", + " applying any origin filters.", + "- If the origin is not `root`, the origin filter is applied to both the `main` and", + " `fallback` calls.", + "", + "## Use Case", + "- Some use cases might involve submitting a `batch` type call in either main, fallback", + " or both." + ] + }, + { + "name": "dispatch_as_fallible", + "fields": [ + { + "name": "as_origin", + "type": 321, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 320, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 213 + } + }, + "docs": [] + } + }, + { + "id": 321, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 322, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 323, + "typeName": "pallet_xcm::Origin", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "PezcumulusXcm", + "fields": [ + { + "name": null, + "type": 324, + "typeName": "pezcumulus_pallet_xcm::Origin", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 325, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 63, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Authorized", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Response", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Location", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pezcumulus_pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Relay", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SiblingTeyrchain", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 325, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "governance", + "origins", + "pallet_custom_origins", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingAdmin", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Treasurer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "FellowshipAdmin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "GeneralAdmin", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AuctionAdmin", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LeaseAdmin", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ReferendumCanceller", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ReferendumKiller", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "SmallTipper", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BigTipper", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "SmallSpender", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MediumSpender", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "BigSpender", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "WhitelistedCaller", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "WishForChange", + "fields": [], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 327, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 327, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 177, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "threshold", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Poke the deposit reserved for an existing multisig operation.", + "", + "The dispatch origin for this call must be _Signed_ and must be the original depositor of", + "the multisig operation.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "- `threshold`: The total number of approvals needed for this multisig.", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + " multisig.", + "- `call_hash`: The hash of the call this deposit is reserved for.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 327, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 177 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 177, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 329, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `create_pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 180, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 71, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`create_pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `create_pure` to create this account.", + "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `create_pure`.", + "- `height`: The height of the chain when the call to `create_pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `create_pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 329, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 10, + "docs": [ + "Poke / Adjust deposits made for proxies and announcements based on current values.", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 329, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 179 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 179, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 330, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Poke the deposit reserved for an index.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "The transaction fees is waived if the deposit is changed after poking/reconsideration.", + "", + "- `index`: the index whose deposit is to be poked/reconsidered.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 331, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 75, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 71, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 332, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 333, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "check_owner", + "type": 334, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "maybe_check_delegate", + "type": 334, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 188, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 188, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 185, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 185, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 335, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 334, + "typeName": "Option>", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 333, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 71, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 334, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 252 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 252, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 335, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 336, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 337, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`CollectionDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 337, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 344, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "NOTE: The collection must have 0 items to be destroyed.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(m + c + a)` where:", + "- `m = witness.item_metadatas`", + "- `c = witness.item_configs`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness_data", + "type": 345, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must comply with the `mint_settings` rules.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object. If", + " the mint price is set, then it should be additionally confirmed in the `witness_data`.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "item_config", + "type": 347, + "typeName": "ItemConfig", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "The origin must conform to `ForceOrigin` or must be Signed and the signing account must", + "be the owner of the `item`.", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "", + "Emits `Burned`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "lock_settings", + "type": 338, + "typeName": "CollectionSettings", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 334, + "typeName": "Option>", + "docs": [] + }, + { + "name": "admin", + "type": 334, + "typeName": "Option>", + "docs": [] + }, + { + "name": "freezer", + "type": 334, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Note: by setting the role to `None` only the `ForceOrigin` will be able to change it", + "after to `Some(account)`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "config", + "type": 337, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "maybe_deadline", + "type": 187, + "typeName": "Option>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin", + "of the `collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only.", + "When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` Admin only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 189, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness", + "type": 348, + "typeName": "CancelAttributesApprovalWitness", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "mint_settings", + "type": 340, + "typeName": "MintSettings, BlockNumberFor, T::\nCollectionId>", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer", + "of the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 335, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 334, + "typeName": "Option>", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 349, + "typeName": "BoundedVec, T::MaxTips>", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_desired_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_price", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "witness_price", + "type": 194, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 352, + "typeName": "Box>", + "docs": [] + }, + { + "name": "signature", + "type": 353, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Issuer of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 355, + "typeName": "PreSignedAttributesOf", + "docs": [] + }, + { + "name": "signature", + "type": 353, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Admin of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 337, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 338, + "typeName": "CollectionSettings", + "docs": [] + }, + { + "name": "max_supply", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_settings", + "type": 340, + "typeName": "MintSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 339 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "CollectionSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "UnlockedMaxSupply", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DepositRequired", + "fields": [], + "index": 16, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 341, + "typeName": "MintType", + "docs": [] + }, + { + "name": "price", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "start_block", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "end_block", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "default_item_settings", + "type": 342, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Public", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "HolderOf", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 343 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "ItemSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "item_metadatas", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 71, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 71, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 346 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 346, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owned_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_price", + "type": 335, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 342, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 349, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 350 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 351, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 351, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 350 + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 215, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "only_account", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + }, + { + "name": "mint_price", + "type": 335, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 259, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 354, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 215, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "namespace", + "type": 193, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 75, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 67, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 357, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 75, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 358, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "asset1", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 67, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Creates an empty liquidity pool and an associated new `lp_token` asset", + "(the id of which is returned in the `Event::PoolCreated` event).", + "", + "Once a pool is created, someone may [`Pallet::add_liquidity`] to it." + ] + }, + { + "name": "add_liquidity", + "fields": [ + { + "name": "asset1", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount1_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Provide liquidity into the pool of `asset1` and `asset2`.", + "NOTE: an optimal amount of asset1 and asset2 will be calculated and", + "might be different than the provided `amount1_desired`/`amount2_desired`", + "thus you should provide the min amount you're happy to provide.", + "Params `amount1_min`/`amount2_min` represent that.", + "`mint_to` will be sent the liquidity tokens that represent this share of the pool.", + "", + "NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity,", + "batch an atomic call with [`Pallet::add_liquidity`] and", + "[`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`]", + "calls to render the liquidity withdrawable and rectify the exchange rate.", + "", + "Once liquidity is added, someone may successfully call", + "[`Pallet::swap_exact_tokens_for_tokens`]." + ] + }, + { + "name": "remove_liquidity", + "fields": [ + { + "name": "asset1", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "lp_token_burn", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be", + "burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive`", + "it's possible to control the min amount of returned tokens you're happy with." + ] + }, + { + "name": "swap_exact_tokens_for_tokens", + "fields": [ + { + "name": "path", + "type": 359, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_out_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap the exact amount of `asset1` into `asset2`.", + "`amount_out_min` param allows you to specify the min amount of the `asset2`", + "you're happy to receive.", + "", + "[`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "swap_tokens_for_exact_tokens", + "fields": [ + { + "name": "path", + "type": 359, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_in_max", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap any amount of `asset1` to get the exact amount of `asset2`.", + "`amount_in_max` param allows to specify the max amount of the `asset1`", + "you're happy to provide.", + "", + "[`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "asset1", + "type": 67, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 67, + "typeName": "Box", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Touch an existing pool to fulfill prerequisites before providing liquidity, such as", + "ensuring that the pool's accounts are in place. It is typically useful when a pool", + "creator removes the pool's accounts and does not provide a liquidity. This action may", + "involve holding assets from the caller as a deposit for creating the pool's accounts.", + "", + "The origin must be Signed.", + "", + "- `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).", + "- `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).", + "", + "Emits `Touched` event when successful." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 359, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 67 + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 71, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 75, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 207, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 187, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 71, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 209, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 180, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 362, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 180, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 180, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 363, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 180, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 362, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 180 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 180, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 321, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 212, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 365, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 180, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 366, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 365, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 213, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 368, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "approve_bounty_with_curator", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Approve bountry and propose a curator simultaneously.", + "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "- `bounty_id`: Bounty ID to approve.", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Poke the deposit reserved for creating a bounty proposal.", + "", + "This can be used by accounts to update their reserved amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `bounty_id`: The bounty id for which to adjust the deposit.", + "", + "If the deposit is updated, the difference will be reserved/unreserved from the", + "proposer's account.", + "", + "The transaction is made free if the deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if the deposit is updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 369, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 71, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 370, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 168, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 168, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 372, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 373, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 374, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 217, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 217, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 373, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 375, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 375, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a teyrchain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 372, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 373 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 373, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 374, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 375, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 375, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 376, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 376, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is delegated (or transferred based on", + "[`adapter::StakeStrategyType`]) from the member to the pool account and immediately", + "increases the pool's bond.", + "", + "The method of transferring the amount to the pool account is determined by", + "[`adapter::StakeStrategyType`]. If the pool is configured to use", + "[`adapter::StakeStrategyType::Delegate`], the funds remain in the account of", + "the `origin`, while the pool gains the right to use these funds for staking.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 378, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to", + "have at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 379, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 380, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 380, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 381, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 381, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 381, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 382, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 384, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 384, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 384, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller is the pool's nominator or root." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 378, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 385, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 386, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 388, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The `root` role of the pool is _always_ allowed to claim the pool's commission.", + "", + "If the pool has set `CommissionClaimPermission::Permissionless`, then any account can", + "trigger the process of claiming the pool's commission.", + "", + "If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only", + "accounts", + "* `acc`, and", + "* the pool's root account", + "", + "may call this extrinsic on behalf of the pool.", + "", + "Pending commissions are paid out and added to the total claimed commission.", + "The total pending commission is reset to zero." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 389, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "The pending slash amount of the member must be equal or more than `ExistentialDeposit`.", + "This call can be dispatched permissionlessly (i.e. by any account). If the execution", + "is successful, fee is refunded and caller may be rewarded with a part of the slash", + "based on the [`crate::pallet::Config::StakeAdapter`] configuration." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 378, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 380, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 382, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 383 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 383, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 387 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 387, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 383, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 390 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 390, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 252, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "relay_session_report", + "fields": [ + { + "name": "report", + "type": 393, + "typeName": "SessionReport", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Called to indicate the start of a new session on the relay chain." + ] + }, + { + "name": "relay_new_offence_paged", + "fields": [ + { + "name": "offences", + "type": 398, + "typeName": "Vec<(SessionIndex, Offence)>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 393, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "SessionReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_points", + "type": 394, + "typeName": "Vec<(AccountId, u32)>", + "docs": [] + }, + { + "name": "activation_timestamp", + "type": 396, + "typeName": "Option<(u64, u32)>", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 394, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 395 + } + }, + "docs": [] + } + }, + { + "id": 395, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 397 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 397, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 399 + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 400 + ] + }, + "docs": [] + } + }, + { + "id": 400, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "Offence" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "reporters", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "manage", + "fields": [ + { + "name": "op", + "type": 402, + "typeName": "AdminOperation", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Manage this pallet.", + "", + "The origin of this call must be [`Config::AdminOrigin`].", + "", + "See [`AdminOperation`] for various operations that are possible." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 402, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "AdminOperation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ForceRotateRound", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceSetPhase", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Phase", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "EmergencySetSolution", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Box>>", + "docs": [] + }, + { + "name": null, + "type": 412, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "EmergencyFallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "SetMinUntrustedScore", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "types", + "Phase" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SignedValidation", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Snapshot", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Done", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Export", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupports" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BOuter", + "type": null + }, + { + "name": "BInner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 405, + "typeName": "BoundedVec<(AccountId, BoundedSupport), BOuter>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 406 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 411, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 407 + ] + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Bound", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 408, + "typeName": "BoundedVec<(AccountId, ExtendedBalance), Bound>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 409 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 409 + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 406 + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 414, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "unsigned", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "paged_solution", + "type": 415, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit an unsigned solution.", + "", + "This works very much like an inherent, as only the validators are permitted to submit", + "anything. By default validators will compute this call in their `offchain_worker` hook", + "and try and submit it back.", + "", + "This is different from signed page submission mainly in that the solution page is", + "verified on the fly.", + "", + "The `paged_solution` may contain at most [`Config::MinerPages`] pages. They are", + "interpreted as msp -> lsp, as per [`crate::Pallet::msp_range_for`].", + "", + "For example, if `Pages = 4`, and `MinerPages = 2`, our full snapshot range would be [0,", + "1, 2, 3], with 3 being msp. But, in this case, then the `paged_raw_solution.pages` is", + "expected to correspond to `[snapshot(2), snapshot(3)]`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 415, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "types", + "PagedRawSolution" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution_pages", + "type": 416, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "score", + "type": 412, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 417 + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "staking", + "NposCompactSolution16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 418, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 421, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 426, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 429, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 432, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 435, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 438, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 441, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 444, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 447, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 450, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 453, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 456, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 459, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 462, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 465, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 419 + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 180 + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 422 + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 423, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 420, + 424 + ] + }, + "docs": [] + } + }, + { + "id": 424, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 425 + } + }, + "docs": [] + } + }, + { + "id": 425, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 180, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 426, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 427 + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 428, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 428, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 429, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 430 + } + }, + "docs": [] + } + }, + { + "id": 430, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 431, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 431, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 433 + } + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 434, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 436 + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 437, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 439 + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 440, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 442 + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 443, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 445 + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 446, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 448 + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 449, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 451 + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 452, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 453, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 454 + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 455, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 457 + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 458, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 460 + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 461, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 463 + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 464, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 466 + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 71, + 467, + 420 + ] + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 423 + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "claimed_score", + "type": 412, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register oneself for an upcoming signed election." + ] + }, + { + "name": "submit_page", + "fields": [ + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "maybe_solution", + "type": 469, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Submit a single page of a solution.", + "", + "Must always come after [`Pallet::register`].", + "", + "`maybe_solution` can be set to `None` to erase the page.", + "", + "Collects deposits from the signed origin based on [`Config::DepositBase`] and", + "[`Config::DepositPerPage`]." + ] + }, + { + "name": "bail", + "fields": [], + "index": 2, + "docs": [ + "Retract a submission.", + "", + "A portion of the deposit may be returned, based on the [`Config::BailoutGraceRatio`].", + "", + "This will fully remove the solution from storage." + ] + }, + { + "name": "clear_old_round_data", + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_pages", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear the data of a submitter form an old round.", + "", + "The dispatch origin of this call must be signed, and the original submitter.", + "", + "This can only be called for submissions that end up being discarded, as in they are not", + "processed and they end up lingering in the queue." + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "inv", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the invulnerable list.", + "", + "Dispatch origin must the the same as [`crate::Config::AdminOrigin`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 469, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 417 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 417, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 471, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "[`asset::existential_deposit`], then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any stake that has been fully unbonded and is ready for withdrawal.", + "", + "Stake is considered fully unbonded once [`Config::BondingDuration`] has elapsed since", + "the unbonding was initiated. In rare cases—such as when offences for the unbonded era", + "have been reported but not yet processed—withdrawal is restricted to eras for which", + "all offences have been processed.", + "", + "The unlocked stake will be returned as free balance in the stash account.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans`: **Deprecated**. Retained only for backward compatibility; this", + " parameter has no effect." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 472, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 474, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 471, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 71, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`T::MaxValidatorSet`.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 475, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`T::MaxValidatorSet`.", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered." + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "## Parameters", + "", + "- `stash`: The stash account to be unstaked.", + "- `num_slashing_spans`: **Deprecated**. This parameter is retained for backward", + "compatibility. It no longer has any effect." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_slashes", + "type": 476, + "typeName": "Vec<(T::AccountId, Perbill)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancels scheduled slashes for a given era before they are applied.", + "", + "This function allows `T::AdminOrigin` to cancel pending slashes for specified validators", + "in a given era. The cancelled slashes are stored and will be checked when applying", + "slashes.", + "", + "## Parameters", + "- `era`: The staking era for which slashes should be cancelled. This is the era where", + " the slash would be applied, not the era in which the offence was committed.", + "- `validator_slashes`: A list of validator stash accounts and their slash fractions to", + " be cancelled." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below `min_chilled_bond` or is zero.", + "2. or, the `ledger.total` of the stash is below `min_chilled_bond` or is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `stash`: The stash account to be reaped.", + "- `num_slashing_spans`: **Deprecated**. This parameter is retained for backward", + "compatibility. It no longer has any effect." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 474, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 478, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 478, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 479, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 479, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 480, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 481, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 480, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 482, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 335, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 483, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + }, + { + "name": "migrate_currency", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Migrates permissionlessly a stash from locks to holds.", + "", + "This removes the old lock on the stake and creates a hold on it atomically. If all", + "stake cannot be held, the best effort is made to hold as much as possible. The remaining", + "stake is removed from the ledger.", + "", + "The fee is waived if the migration is successful." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_key", + "type": 487, + "typeName": "(T::AccountId, Perbill, u32)", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Manually and permissionlessly applies a deferred slash for a given era.", + "", + "Normally, slashes are automatically applied shortly after the start of the `slash_era`.", + "The automatic application of slashes is handled by the pallet's internal logic, and it", + "tries to apply one slash page per block of the era.", + "If for some reason, one era is not enough for applying all slash pages, the remaining", + "slashes need to be manually (permissionlessly) applied.", + "", + "For a given era x, if at era x+1, slashes are still unapplied, all withdrawals get", + "blocked, and these need to be manually applied by calling this function.", + "This function exists as a **fallback mechanism** for this extreme situation, but we", + "never expect to encounter this in normal scenarios.", + "", + "The parameters for this call can be queried by looking at the `UnappliedSlashes` storage", + "for eras older than the active era.", + "", + "## Parameters", + "- `slash_era`: The staking era in which the slash was originally scheduled.", + "- `slash_key`: A unique identifier for the slash, represented as a tuple:", + " - `stash`: The stash account of the validator being slashed.", + " - `slash_fraction`: The fraction of the stake that was slashed.", + " - `page_index`: The index of the exposure page being processed.", + "", + "## Behavior", + "- The function is **permissionless**—anyone can call it.", + "- The `slash_era` **must be the current era or a past era**.", + "If it is in the future, the", + " call fails with `EraNotStarted`.", + "- The fee is waived if the slash is successfully applied.", + "", + "## Future Improvement", + "- Implement an **off-chain worker (OCW) task** to automatically apply slashes when there", + " is unused block space, improving efficiency." + ] + }, + { + "name": "prune_era_step", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Perform one step of era pruning to prevent PoV size exhaustion from unbounded deletions.", + "", + "This extrinsic enables permissionless lazy pruning of era data by performing", + "incremental deletion of storage items. Each call processes a limited number", + "of items based on available block weight to avoid exceeding block limits.", + "", + "Returns `Pays::No` when work is performed to incentivize regular maintenance.", + "Anyone can call this to help maintain the chain's storage health.", + "", + "The era must be eligible for pruning (older than HistoryDepth + 1).", + "Check `EraPruningState` storage to see if an era needs pruning before calling." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 471, + "type": { + "path": [ + "pallet_staking_async", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "pallet_staking_async", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 473, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 383 + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 252 + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 477 + } + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 383 + ] + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 479, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 475 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 475, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 383 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 484 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 484, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 485 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 486, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [ + "pallet_staking_async", + "ledger", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 75, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 71, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 485 + } + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 383, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_ah_ops", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "unreserve_lease_deposit", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "depositor", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Unreserve the deposit that was taken for creating a crowdloan.", + "", + "This can be called by any signed origin. It unreserves the lease deposit on the account", + "that won the lease auction. It can be unreserved once all leases expired. Note that it", + "will be called automatically from `withdraw_crowdloan_contribution` for the matching", + "crowdloan account.", + "", + "Solo bidder accounts that won lease auctions can use this to unreserve their amount." + ] + }, + { + "name": "withdraw_crowdloan_contribution", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "depositor", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Withdraw the contribution of a finished crowdloan.", + "", + "A crowdloan contribution can be withdrawn if either:", + "- The crowdloan failed to in an auction and timed out", + "- Won an auction and all leases expired", + "", + "Can be called by any signed origin." + ] + }, + { + "name": "unreserve_crowdloan_reserve", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "depositor", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unreserve the deposit that was taken for creating a crowdloan.", + "", + "This can be called once either:", + "- The crowdloan failed to win an auction and timed out", + "- Won an auction, all leases expired and all contributions are withdrawn", + "", + "Can be called by any signed origin. The condition that all contributions are withdrawn", + "is in place since the reserve acts as a storage deposit." + ] + }, + { + "name": "transfer_to_post_migration_treasury", + "fields": [ + { + "name": "asset_id", + "type": 67, + "typeName": "Box<>::AssetId>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Transfer the balance from the pre-migration treasury account to the post-migration", + "treasury account.", + "", + "This call can only be called after the migration is completed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 489, + "type": { + "path": [ + "pallet_ah_migrator", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "receive_accounts", + "fields": [ + { + "name": "accounts", + "type": 490, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Receive accounts from the Relay Chain.", + "", + "The accounts sent with `pallet_rc_migrator::Pallet::migrate_accounts` function." + ] + }, + { + "name": "receive_multisigs", + "fields": [ + { + "name": "accounts", + "type": 511, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Receive multisigs from the Relay Chain.", + "", + "This will be called from an XCM `Transact` inside a DMP from the relay chain. The", + "multisigs were prepared by", + "`pallet_rc_migrator::multisig::MultisigMigrator::migrate_many`." + ] + }, + { + "name": "receive_proxy_proxies", + "fields": [ + { + "name": "proxies", + "type": 513, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Receive proxies from the Relay Chain." + ] + }, + { + "name": "receive_proxy_announcements", + "fields": [ + { + "name": "announcements", + "type": 518, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Receive proxy announcements from the Relay Chain." + ] + }, + { + "name": "receive_preimage_chunks", + "fields": [ + { + "name": "chunks", + "type": 520, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "receive_preimage_request_status", + "fields": [ + { + "name": "request_status", + "type": 523, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "receive_preimage_legacy_status", + "fields": [ + { + "name": "legacy_status", + "type": 529, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "receive_nom_pools_messages", + "fields": [ + { + "name": "messages", + "type": 531, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "receive_vesting_schedules", + "fields": [ + { + "name": "schedules", + "type": 557, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "receive_referenda_values", + "fields": [ + { + "name": "values", + "type": 561, + "typeName": "Vec>>", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Receive referendum counts, deciding counts, votes for the track queue." + ] + }, + { + "name": "receive_referendums", + "fields": [ + { + "name": "referendums", + "type": 567, + "typeName": "Vec<(u32, RcReferendumInfoOf)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Receive referendums from the Relay Chain." + ] + }, + { + "name": "receive_claims", + "fields": [ + { + "name": "messages", + "type": 579, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "receive_bags_list_messages", + "fields": [ + { + "name": "messages", + "type": 584, + "typeName": "Vec", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "receive_scheduler_messages", + "fields": [ + { + "name": "messages", + "type": 588, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "receive_indices", + "fields": [ + { + "name": "indices", + "type": 593, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "receive_conviction_voting_messages", + "fields": [ + { + "name": "messages", + "type": 595, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "receive_bounties_messages", + "fields": [ + { + "name": "messages", + "type": 607, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "receive_asset_rates", + "fields": [ + { + "name": "rates", + "type": 613, + "typeName": "Vec<(::AssetKind, FixedU128)>", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "receive_crowdloan_messages", + "fields": [ + { + "name": "messages", + "type": 615, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "receive_referenda_metadata", + "fields": [ + { + "name": "metadata", + "type": 617, + "typeName": "Vec<(u32,::Hash)>", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "receive_treasury_messages", + "fields": [ + { + "name": "messages", + "type": 619, + "typeName": "Vec", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "receive_scheduler_agenda_messages", + "fields": [ + { + "name": "messages", + "type": 625, + "typeName": "Vec, scheduler::\nRcScheduledOf>>", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "receive_delegated_staking_messages", + "fields": [ + { + "name": "messages", + "type": 630, + "typeName": "Vec", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "receive_child_bounties_messages", + "fields": [ + { + "name": "messages", + "type": 632, + "typeName": "Vec", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "receive_staking_messages", + "fields": [ + { + "name": "messages", + "type": 637, + "typeName": "Vec", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "force_set_stage", + "fields": [ + { + "name": "stage", + "type": 665, + "typeName": "MigrationStage", + "docs": [] + } + ], + "index": 100, + "docs": [ + "Set the migration stage.", + "", + "This call is intended for emergency use only and is guarded by the", + "[`Config::AdminOrigin`]." + ] + }, + { + "name": "start_migration", + "fields": [], + "index": 101, + "docs": [ + "Start the data migration.", + "", + "This is typically called by the Relay Chain to start the migration on the Asset Hub and", + "receive a handshake message indicating the Asset Hub's readiness." + ] + }, + { + "name": "set_dmp_queue_priority", + "fields": [ + { + "name": "new", + "type": 666, + "typeName": "DmpQueuePriority>", + "docs": [] + } + ], + "index": 102, + "docs": [ + "Set the DMP queue priority configuration.", + "", + "Can only be called by the `AdminOrigin`." + ] + }, + { + "name": "set_manager", + "fields": [ + { + "name": "new", + "type": 190, + "typeName": "Option", + "docs": [] + } + ], + "index": 103, + "docs": [ + "Set the manager account id.", + "", + "The manager has the similar to [`Config::AdminOrigin`] privileges except that it", + "can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "finish_migration", + "fields": [ + { + "name": "data", + "type": 667, + "typeName": "Option>", + "docs": [] + }, + { + "name": "cool_off_end_at", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 110, + "docs": [ + "Finish the migration.", + "", + "This is typically called by the Relay Chain to signal the migration has finished.", + "", + "The `data` parameter might be `None` if we are running the migration for a second time", + "for some pallets and have already performed the checking account balance correction,", + "so we do not need to do it this time." + ] + }, + { + "name": "send_xcm_message", + "fields": [ + { + "name": "dest", + "type": 164, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 270, + "typeName": "Box>", + "docs": [] + } + ], + "index": 111, + "docs": [ + "XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the", + "[Config::SendXcm] router which will be able to send messages to the Relay Chain during", + "the migration." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 490, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 491 + } + }, + "docs": [] + } + }, + { + "id": 491, + "type": { + "path": [ + "pallet_rc_migrator", + "accounts", + "Account" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "HoldReason", + "type": 492 + }, + { + "name": "FreezeReason", + "type": 499 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "holds", + "type": 501, + "typeName": "BoundedVec, ConstU32<5>>", + "docs": [] + }, + { + "name": "freezes", + "type": 504, + "typeName": "BoundedVec, ConstU32<5>>", + "docs": [] + }, + { + "name": "locks", + "type": 507, + "typeName": "BoundedVec, ConstU32<5>>", + "docs": [] + }, + { + "name": "unnamed_reserve", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "consumers", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "providers", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 492, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "PortableHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 493, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 494, + "typeName": "pallet_staking::HoldReason", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 495, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 496, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 497, + "typeName": "pallet_session::HoldReason", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 498, + "typeName": "pallet_xcm::HoldReason", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 495, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingDelegation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [ + "pallet_session", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Keys", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AuthorizeAlias", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "PortableFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 500, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 501, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 502 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 503, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 492 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 492, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 502 + } + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 505 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 506, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 499 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 499, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 506, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 505 + } + }, + "docs": [] + } + }, + { + "id": 507, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 508 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 510, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 508, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 105, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 509, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 508 + } + }, + "docs": [] + } + }, + { + "id": 511, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 512 + } + }, + "docs": [] + } + }, + { + "id": 512, + "type": { + "path": [ + "pallet_rc_migrator", + "multisig", + "RcMultisig" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 513, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 514 + } + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [ + "pallet_rc_migrator", + "proxy", + "RcProxy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "ProxyType", + "type": 515 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "proxies", + "type": 516, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [ + "pezkuwi_runtime_constants", + "proxy", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "ParaRegistration", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 517 + } + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 515 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 515, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 518, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 519 + } + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [ + "pallet_rc_migrator", + "proxy", + "RcProxyAnnouncement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 520, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 521 + } + }, + "docs": [] + } + }, + { + "id": 521, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "chunks", + "RcPreimageChunk" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "preimage_hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "preimage_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "chunk_byte_offset", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "chunk_bytes", + "type": 522, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 522, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 523, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 524 + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "request_status", + "PortableRequestStatus" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "request_status", + "type": 525, + "typeName": "PortableRequestStatusInner", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 525, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "request_status", + "PortableRequestStatusInner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 526, + "typeName": "(AccountId32, PortableTicket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 528, + "typeName": "Option<(AccountId32, PortableTicket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 527 + ] + }, + "docs": [] + } + }, + { + "id": 527, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 526 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 526, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 530 + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [ + "pallet_rc_migrator", + "preimage", + "legacy_request_status", + "RcPreimageLegacyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 532 + } + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools", + "RcNomPoolsMessage" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [ + { + "name": "values", + "type": 533, + "typeName": "NomPoolsStorageValuesOf", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "PoolMembers", + "fields": [ + { + "name": "member", + "type": 535, + "typeName": "(T::AccountId, PoolMember)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BondedPools", + "fields": [ + { + "name": "pool", + "type": 541, + "typeName": "(PoolId, BondedPoolInner)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "RewardPools", + "fields": [ + { + "name": "rewards", + "type": 546, + "typeName": "(PoolId, RewardPool)", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "SubPoolsStorage", + "fields": [ + { + "name": "sub_pools", + "type": 548, + "typeName": "(PoolId, SubPools)", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Metadata", + "fields": [ + { + "name": "meta", + "type": 555, + "typeName": "(PoolId, BoundedVec)", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ReversePoolIdLookup", + "fields": [ + { + "name": "lookups", + "type": 395, + "typeName": "(T::AccountId, PoolId)", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ClaimPermissions", + "fields": [ + { + "name": "perms", + "type": 556, + "typeName": "(T::AccountId, ClaimPermission)", + "docs": [] + } + ], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools", + "NomPoolsStorageValues" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_value_locked", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_join_bond", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_pools", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_pool_members", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_pool_members_per_pool", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 534, + "typeName": "Option", + "docs": [] + }, + { + "name": "last_pool_id", + "type": 187, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 383 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 383, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 536 + ] + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 168, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 537, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 538, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 539, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 540 + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 542 + ] + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 543, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 545, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 379, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 543, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 386, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 534, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 544, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 187, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 389, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 544, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 388 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 388, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 190, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 546, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 547 + ] + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools_alias", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 168, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 548, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 549 + ] + }, + "docs": [] + } + }, + { + "id": 549, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools_alias", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 550, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 551, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 550, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools_alias", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 550 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 552, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 552, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 550 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 553, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 554 + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 550 + ] + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 192 + ] + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 385 + ] + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 558 + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "pallet_rc_migrator", + "vesting", + "RcVestingSchedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "schedules", + "type": 559, + "typeName": "BoundedVec, BlockNumberFor\n>, MaxVestingSchedulesGet,>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 256 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 560, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 256 + } + }, + "docs": [] + } + }, + { + "id": 561, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 562 + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_rc_migrator", + "referenda", + "ReferendaMessage" + ], + "params": [ + { + "name": "Track", + "type": 180 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "referendum_count", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "deciding_count", + "type": 563, + "typeName": "Vec<(Track, u32)>", + "docs": [] + }, + { + "name": "track_queue", + "type": 565, + "typeName": "Vec<(Track, Vec<(u32, u128)>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 564 + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 180, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 566 + } + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 180, + 539 + ] + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 568 + } + }, + "docs": [] + } + }, + { + "id": 568, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 569 + ] + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 180 + }, + { + "name": "RuntimeOrigin", + "type": 570 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 212 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 571 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 37 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 572, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "ah_migration", + "RcPalletsOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 322, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 325, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 22, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 180 + }, + { + "name": "RuntimeOrigin", + "type": 570 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 212 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 571 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 37 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 180, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 570, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 212, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 365, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 573, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 575, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 571, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 577, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 573 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 573, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 576 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 576, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 187, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 578 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 578, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 37 + ] + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 580 + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [ + "pallet_rc_migrator", + "claims", + "RcClaimsMessage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 581, + "typeName": "(EthereumAddress, Balance)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": "who", + "type": 87, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "schedule", + "type": 261, + "typeName": "(Balance, Balance, BlockNumber)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Signing", + "fields": [ + { + "name": null, + "type": 582, + "typeName": "(EthereumAddress, StatementKind)", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Preclaims", + "fields": [ + { + "name": null, + "type": 583, + "typeName": "(AccountId, EthereumAddress)", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 87, + 263 + ] + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 87 + ] + }, + "docs": [] + } + }, + { + "id": 584, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 585 + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "PortableBagsListMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Node", + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "node", + "type": 586, + "typeName": "PortableNode", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Bag", + "fields": [ + { + "name": "score", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "bag", + "type": 587, + "typeName": "PortableBag", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "PortableNode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "prev", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "PortableBag" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 589 + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "RcSchedulerMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncompleteSince", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Retries", + "fields": [ + { + "name": null, + "type": 590, + "typeName": "(TaskAddress, RetryConfig)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": null, + "type": 592, + "typeName": "(TaskName, TaskAddress)", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 37, + 591 + ] + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1, + 37 + ] + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 594 + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_rc_migrator", + "indices", + "RcIndicesIndex" + ], + "params": [ + { + "name": "AccountIndex", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 596 + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [ + "pallet_rc_migrator", + "conviction_voting", + "RcConvictionVotingMessage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Class", + "type": 180 + }, + { + "name": "Voting", + "type": 597 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VotingFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 180, + "typeName": "Class", + "docs": [] + }, + { + "name": null, + "type": 597, + "typeName": "Voting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ClassLocksFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 605, + "typeName": "Vec<(Class, Balance)>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 598, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 604, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 599, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 602, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 603, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 600 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 601, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 209 + ] + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 600 + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 362, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 602, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 603, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 606 + } + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 180, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 608 + } + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "pallet_rc_migrator", + "bounties", + "RcBountiesMessage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BountyApprovals", + "fields": [ + { + "name": null, + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BountyDescriptions", + "fields": [ + { + "name": null, + "type": 609, + "typeName": "(BountyIndex, Vec)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 610, + "typeName": "(BountyIndex, alias::Bounty)", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 611 + ] + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_rc_migrator", + "bounties", + "alias", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 612, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 612, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ApprovedWithCurator", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 614 + } + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 206, + 168 + ] + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 616 + } + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [ + "pallet_rc_migrator", + "crowdloan", + "RcCrowdloanMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LeaseReserve", + "fields": [ + { + "name": "unreserve_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "CrowdloanContribution", + "fields": [ + { + "name": "withdraw_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "contributor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "crowdloan_account", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "CrowdloanReserve", + "fields": [ + { + "name": "unreserve_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 618 + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 620 + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "PortableTreasuryMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Proposals", + "fields": [ + { + "name": null, + "type": 621, + "typeName": "(ProposalIndex, Proposal)", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Approvals", + "fields": [ + { + "name": null, + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SpendCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Spends", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "status", + "type": 623, + "typeName": "Box", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "LastSpendPeriod", + "fields": [ + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Funds", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 622 + ] + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "PortableSpendStatus" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "VersionedLocatableAsset", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "beneficiary", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 624, + "typeName": "PortablePaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "PortablePaymentState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 626 + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "SchedulerAgendaMessage" + ], + "params": [ + { + "name": "B", + "type": 4 + }, + { + "name": "S", + "type": 627 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "B", + "docs": [] + }, + { + "name": "agenda", + "type": 628, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "alias", + "Scheduled" + ], + "params": [ + { + "name": "Call", + "type": 212 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 570 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "Priority", + "docs": [] + }, + { + "name": "call", + "type": 212, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 244, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 570, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 629 + } + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 627 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 627, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 631 + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "delegated_staking", + "PortableDelegatedStakingMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Delegators", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "agent", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Agents", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "total_delegated", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "pending_slash", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 633 + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "PortableChildBountiesMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ChildBountyCount", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ParentChildBounties", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ParentTotalChildBounties", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ChildBounty", + "fields": [ + { + "name": "parent_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty", + "type": 634, + "typeName": "PortableChildBounty", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ChildBountyDescriptionsV1", + "fields": [ + { + "name": "parent_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "description", + "type": 636, + "typeName": "BoundedVec>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V0ToV1ChildBountyIds", + "fields": [ + { + "name": "v0_child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "parent_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "v1_child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ChildrenCuratorFees", + "fields": [ + { + "name": "child_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "PortableChildBounty" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "status", + "type": 635, + "typeName": "PortableChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "PortableChildBountyStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 638 + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableStakingMessage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Values", + "fields": [ + { + "name": null, + "type": 639, + "typeName": "PortableStakingValues", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Invulnerables", + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "controller", + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Ledger", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "ledger", + "type": 645, + "typeName": "PortableStakingLedger", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Payee", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "payment", + "type": 649, + "typeName": "PortableRewardDestination", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Validators", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "validators", + "type": 650, + "typeName": "PortableValidatorPrefs", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Nominators", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "nominations", + "type": 651, + "typeName": "PortableNominations", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "VirtualStakers", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "ErasStakersOverview", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "exposure", + "type": 653, + "typeName": "PortablePagedExposureMetadata", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "ErasStakersPaged", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "exposure", + "type": 654, + "typeName": "PortableExposurePage", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClaimedRewards", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "rewards", + "type": 186, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "ErasValidatorPrefs", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "prefs", + "type": 650, + "typeName": "PortableValidatorPrefs", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ErasValidatorReward", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "reward", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "ErasRewardPoints", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "points", + "type": 658, + "typeName": "PortableEraRewardPoints", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "ErasTotalStake", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "total_stake", + "type": 6, + "typeName": "u128", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "UnappliedSlashes", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash", + "type": 660, + "typeName": "PortableUnappliedSlash", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "BondedEras", + "fields": [ + { + "name": null, + "type": 663, + "typeName": "Vec<(EraIndex, SessionIndex)>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "ValidatorSlashInEra", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "slash", + "type": 664, + "typeName": "(Perbill, u128)", + "docs": [] + } + ], + "index": 17, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "StakingValues" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator_count", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_validator_count", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_nominator_bond", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_active_stake", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "min_commission", + "type": 534, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_validators_count", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_nominators_count", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "current_era", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "active_era", + "type": 640, + "typeName": "Option", + "docs": [] + }, + { + "name": "force_era", + "type": 642, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 644, + "typeName": "Option", + "docs": [] + }, + { + "name": "slash_reward_fraction", + "type": 534, + "typeName": "Option", + "docs": [] + }, + { + "name": "canceled_slash_payout", + "type": 335, + "typeName": "Option", + "docs": [] + }, + { + "name": "current_planned_session", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 644, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 641 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 641, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 165, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 643 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 643, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableForcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 475 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 475, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableStakingLedger" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "total", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "active", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "unlocking", + "type": 646, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 647 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 648, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableUnlockChunk" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 647 + } + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableRewardDestination" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableNominations" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 652, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortablePagedExposureMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableExposurePage" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "others", + "type": 655, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 656 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 657, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableIndividualExposure" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 657, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 656 + } + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableEraRewardPoints" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "individual", + "type": 659, + "typeName": "BoundedVec<(AccountId32, u32), ConstU32<2000>>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 395 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 394, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "message", + "PortableUnappliedSlash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId32", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "others", + "type": 661, + "typeName": "BoundedVec<(AccountId32, u128), ConstU32<600>>", + "docs": [] + }, + { + "name": "reporters", + "type": 662, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 409 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 37 + } + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 383, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_ah_migrator", + "MigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "DataMigrationOngoing", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "MigrationDone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CoolOff", + "fields": [ + { + "name": "end_at", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "QueuePriority" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Config", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OverrideConfig", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Disabled", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 668 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 668, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "MigrationFinishedData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "rc_balance_kept", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 669, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 671, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 671, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 672 + }, + { + "name": "E", + "type": 673 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 672, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 673, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 61, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 672 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 672, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "proposer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A bounty deposit has been poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 675, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 676, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 168, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 168, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 168, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 677, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 678, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 679, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 678, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 379, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "released_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked).", + "Any funds that are still delegated (i.e. dangling delegation) are released and are", + "represented by `released_balance`." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 190, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 386, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 388, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 389, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + }, + { + "name": "MemberClaimPermissionUpdated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "permission", + "type": 385, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A pool member's claim permission has been updated." + ] + }, + { + "name": "MetadataUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A pool's metadata was updated." + ] + }, + { + "name": "PoolNominationMade", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A pool's nominating account (or the pool's root account) has nominated a validator set", + "on behalf of the pool." + ] + }, + { + "name": "PoolNominatorChilled", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The pool is chilled i.e. no longer nominating." + ] + }, + { + "name": "GlobalParamsUpdated", + "fields": [ + { + "name": "min_join_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "max_pools", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 534, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Global parameters regulating nomination pools have been updated." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 682, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Funds delegated by a delegator." + ] + }, + { + "name": "Released", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Funds released to a delegator." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds slashed from a delegator." + ] + }, + { + "name": "MigratedDelegation", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unclaimed delegation funds migrated to delegator." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 683, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SessionReportReceived", + "fields": [ + { + "name": "end_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "activation_timestamp", + "type": 396, + "typeName": "Option<(u64, u32)>", + "docs": [] + }, + { + "name": "validator_points_counts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A said session report was received." + ] + }, + { + "name": "OffenceReceived", + "fields": [ + { + "name": "slash_session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "offences_count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new offence was reported." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 684, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Something occurred that should never happen under normal operation.", + "Logged as an event for fail-safe observability." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SessionReportIntegrityFailed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ValidatorSetIntegrityFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SessionSkipped", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SessionAlreadyProcessed", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ValidatorSetSendFailed", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "ValidatorSetDropped", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 403, + "typeName": "Phase", + "docs": [ + "the source phase" + ] + }, + { + "name": "to", + "type": 403, + "typeName": "Phase", + "docs": [ + "The target phase" + ] + } + ], + "index": 0, + "docs": [ + "A phase transition happened. Only checks major changes in the variants, not minor inner", + "values." + ] + }, + { + "name": "UnexpectedTargetSnapshotFailed", + "fields": [], + "index": 1, + "docs": [ + "Target snapshot creation failed" + ] + }, + { + "name": "UnexpectedVoterSnapshotFailed", + "fields": [], + "index": 2, + "docs": [ + "Voter snapshot creation failed" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 686, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VerificationFailed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": null, + "type": 687, + "typeName": "FeasibilityError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A verification failed at the given page.", + "", + "NOTE: if the index is 0, then this could mean either the feasibility of the last page", + "was wrong, or the final checks of `finalize_verification` failed." + ] + }, + { + "name": "Verified", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The given page of a solution has been verified, with the given number of winners being", + "found in it." + ] + }, + { + "name": "Queued", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": null, + "type": 689, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A solution with the given score has replaced our current best solution." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 687, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "FeasibilityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "WrongWinnerCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SnapshotUnavailable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "InvalidVote", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "InvalidVoter", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidWinner", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "InvalidScore", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "InvalidRound", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ScoreTooLow", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "FailedToBoundSupport", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "NposElection", + "fields": [ + { + "name": null, + "type": 688, + "typeName": "sp_npos_elections::Error", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [ + "sp_npos_elections", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionWeightOverflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SolutionTargetOverflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SolutionInvalidIndex", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SolutionInvalidPageIndex", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ArithmeticError", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "InvalidSupportEdge", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyVoters", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "BoundsExceeded", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "DuplicateVoter", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DuplicateTarget", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 412 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 412, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Registered", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 412, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Upcoming submission has been registered for the given account, with the given score." + ] + }, + { + "name": "Stored", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A page of solution solution with the given index has been stored for the given account." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The given account has been rewarded with the given amount." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The given account has been slashed with the given amount." + ] + }, + { + "name": "Ejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The given solution, for the given round, was ejected." + ] + }, + { + "name": "Discarded", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given account has been discarded." + ] + }, + { + "name": "Bailed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given account has bailed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 691, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 471, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "StakerRemoved", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A subsequent event of `Withdrawn`, indicating that `stash` was fully removed from the", + "system." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "next", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 472, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 692, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Report of a controller batch deprecation." + ] + }, + { + "name": "CurrencyMigrated", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "force_withdraw", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Staking balance migrated from locks to holds, with any balance that could not be held", + "is force withdrawn." + ] + }, + { + "name": "PagedElectionProceeded", + "fields": [ + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "result", + "type": 693, + "typeName": "Result", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A page from a multi-page election was fetched. A number of these are followed by", + "`StakersElected`.", + "", + "`Ok(count)` indicates the give number of stashes were added.", + "`Err(index)` indicates that the stashes after index were dropped.", + "`Err(0)` indicates that an error happened but no stashes were dropped nor added.", + "", + "The error indicates that a number of validators were dropped due to excess size, but", + "the overall election will continue." + ] + }, + { + "name": "OffenceReported", + "fields": [ + { + "name": "offence_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An offence for the given validator, for the given percentage of their stake, at the", + "given era as been reported." + ] + }, + { + "name": "SlashComputed", + "fields": [ + { + "name": "offence_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "offender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An offence has been processed and the corresponding slash has been computed." + ] + }, + { + "name": "SlashCancelled", + "fields": [ + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An unapplied slash has been cancelled." + ] + }, + { + "name": "SessionRotated", + "fields": [ + { + "name": "starting_session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "active_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "planned_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Session change has been triggered.", + "", + "If planned_era is one era ahead of active_era, it implies new era is being planned and", + "election is ongoing." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 694, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Something occurred that should never happen under normal operation.", + "Logged as an event for fail-safe observability." + ] + }, + { + "name": "OffenceTooOld", + "fields": [ + { + "name": "offence_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 23, + "docs": [ + "An offence was reported that was too old to be processed, and thus was dropped." + ] + }, + { + "name": "EraPruned", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 24, + "docs": [ + "An old era with the given index was pruned." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_staking_async", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 693, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "E", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 694, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "EraDurationBoundExceeded", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "UnknownValidatorActivation", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "pallet_ah_ops", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LeaseUnreserveRemaining", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some lease reserve could not be unreserved and needs manual cleanup." + ] + }, + { + "name": "CrowdloanUnreserveRemaining", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some amount for a crowdloan reserve could not be unreserved and needs manual cleanup." + ] + }, + { + "name": "SovereignMigrated", + "fields": [ + { + "name": "para_id", + "type": 171, + "typeName": "ParaId", + "docs": [ + "The teyrchain ID that had its account migrated." + ] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The old account that was migrated out of." + ] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new account that was migrated into." + ] + }, + { + "name": "derivation_index", + "type": 363, + "typeName": "Option", + "docs": [ + "Set if this account was derived from a para sovereign account." + ] + } + ], + "index": 2, + "docs": [ + "A sovereign teyrchain account has been migrated from its child to sibling", + "representation." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_ah_migrator", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StageTransition", + "fields": [ + { + "name": "old", + "type": 665, + "typeName": "MigrationStage", + "docs": [ + "The old stage before the transition." + ] + }, + { + "name": "new", + "type": 665, + "typeName": "MigrationStage", + "docs": [ + "The new stage after the transition." + ] + } + ], + "index": 0, + "docs": [ + "A stage transition has occurred." + ] + }, + { + "name": "BatchReceived", + "fields": [ + { + "name": "pallet", + "type": 697, + "typeName": "PalletEventName", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "We received a batch of messages that will be integrated into a pallet." + ] + }, + { + "name": "BatchProcessed", + "fields": [ + { + "name": "pallet", + "type": 697, + "typeName": "PalletEventName", + "docs": [] + }, + { + "name": "count_good", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "count_bad", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "We processed a batch of messages for this pallet." + ] + }, + { + "name": "AssetHubMigrationStarted", + "fields": [], + "index": 3, + "docs": [ + "The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is", + "emitted.", + "", + "This event is equivalent to `StageTransition { new: DataMigrationOngoing, .. }` but is", + "easier to understand. The activation is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "AssetHubMigrationFinished", + "fields": [], + "index": 4, + "docs": [ + "The Asset Hub Migration finished.", + "", + "This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier", + "to understand. The finishing is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "DmpQueuePrioritySet", + "fields": [ + { + "name": "prioritized", + "type": 8, + "typeName": "bool", + "docs": [ + "Indicates if DMP queue was successfully set as priority.", + "If `false`, it means we're in the round-robin phase of our priority pattern", + "(see [`Config::DmpQueuePriorityPattern`]), where no queue gets priority." + ] + }, + { + "name": "cycle_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Current block number within the pattern cycle (1 to period)." + ] + }, + { + "name": "cycle_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Total number of blocks in the pattern cycle" + ] + } + ], + "index": 5, + "docs": [ + "Whether the DMP queue was prioritized for the next block." + ] + }, + { + "name": "DmpQueuePriorityConfigSet", + "fields": [ + { + "name": "old", + "type": 666, + "typeName": "DmpQueuePriority>", + "docs": [ + "The old priority pattern." + ] + }, + { + "name": "new", + "type": 666, + "typeName": "DmpQueuePriority>", + "docs": [ + "The new priority pattern." + ] + } + ], + "index": 6, + "docs": [ + "The DMP queue priority config was set." + ] + }, + { + "name": "BalancesBeforeRecordSet", + "fields": [ + { + "name": "checking_account", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "total_issuance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The balances before the migration were recorded." + ] + }, + { + "name": "BalancesBeforeRecordConsumed", + "fields": [ + { + "name": "checking_account", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "total_issuance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The balances before the migration were consumed." + ] + }, + { + "name": "ReferendumCanceled", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A referendum was cancelled because it could not be mapped." + ] + }, + { + "name": "ManagerSet", + "fields": [ + { + "name": "old", + "type": 190, + "typeName": "Option", + "docs": [ + "The old manager account id." + ] + }, + { + "name": "new", + "type": 190, + "typeName": "Option", + "docs": [ + "The new manager account id." + ] + } + ], + "index": 10, + "docs": [ + "The manager account id was set." + ] + }, + { + "name": "AccountTranslatedTeyrchainSovereign", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "AccountTranslatedTeyrchainSovereignDerived", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "derivation_index", + "type": 180, + "typeName": "u16", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "XcmSent", + "fields": [ + { + "name": "origin", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 67, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 96, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "FailedToUnreserveMultisigDeposit", + "fields": [ + { + "name": "expected_amount", + "type": 6, + "typeName": "pallet_rc_migrator::multisig::BalanceOf", + "docs": [ + "The expected amount of the deposit that was expected to be unreserved." + ] + }, + { + "name": "missing_amount", + "type": 6, + "typeName": "pallet_rc_migrator::multisig::BalanceOf", + "docs": [ + "The missing amount of the deposit." + ] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the deposit was unreserved from." + ] + } + ], + "index": 14, + "docs": [ + "Failed to unreserve a multisig deposit." + ] + }, + { + "name": "FailedToUnreservePreimageDeposit", + "fields": [ + { + "name": "expected_amount", + "type": 6, + "typeName": "pallet_preimage::BalanceOf", + "docs": [ + "The expected amount of the deposit that was expected to be unreserved." + ] + }, + { + "name": "missing_amount", + "type": 6, + "typeName": "pallet_preimage::BalanceOf", + "docs": [ + "The missing amount of the deposit." + ] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the deposit was unreserved from." + ] + } + ], + "index": 15, + "docs": [ + "Failed to unreserve a legacy status preimage deposit." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 697, + "type": { + "path": [ + "pallet_ah_migrator", + "PalletEventName" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRates", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BagsList", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Balances", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Bounties", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Claims", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Indices", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "Multisig", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "NomPools", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "PreimageChunk", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "PreimageLegacyStatus", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "PreimageRequestStatus", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "ProxyAnnouncements", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "ProxyProxies", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "Recovery", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "ReferendaMetadata", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "ReferendaReferendums", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "ReferendaValues", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "SchedulerAgenda", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "Society", + "fields": [], + "index": 26, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 71, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 700, + "typeName": "Cow<'static, str>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 700, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 701 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 701, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 704, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 705 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 705, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 705, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 705, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 61, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 61, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 61, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 707, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 700, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "impl_name", + "type": 700, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 710, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "system_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 711 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 711, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 712 + } + }, + "docs": [] + } + }, + { + "id": 712, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 105, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "InvalidTask", + "fields": [], + "index": 7, + "docs": [ + "The specified [`Task`] is not valid." + ] + }, + { + "name": "FailedTask", + "fields": [], + "index": 8, + "docs": [ + "The specified [`Task`] failed during execution." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 9, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 10, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 714, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 715 + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "Ancestor" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "used_bandwidth", + "type": 716, + "typeName": "UsedBandwidth", + "docs": [] + }, + { + "name": "para_head_hash", + "type": 366, + "typeName": "Option", + "docs": [] + }, + { + "name": "consumed_go_ahead_signal", + "type": 721, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 716, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "UsedBandwidth" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ump_msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_total_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_outgoing", + "type": 717, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 171 + }, + { + "name": "V", + "type": 718 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 719, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "HrmpChannelUpdate" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 720 + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 171, + 718 + ] + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 722 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 722, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "GoAhead", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "unincluded_segment", + "SegmentTracker" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "used_bandwidth", + "type": 716, + "typeName": "UsedBandwidth", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "consumed_go_ahead_signal", + "type": 721, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 725 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 725, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeRestriction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "relay_state_snapshot", + "MessagingStateSnapshot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "dmq_mqc_head", + "type": 13, + "typeName": "relay_chain::Hash", + "docs": [] + }, + { + "name": "relay_dispatch_queue_remaining_capacity", + "type": 727, + "typeName": "RelayDispatchQueueRemainingCapacity", + "docs": [] + }, + { + "name": "ingress_channels", + "type": 728, + "typeName": "Vec<(ParaId, AbridgedHrmpChannel)>", + "docs": [] + }, + { + "name": "egress_channels", + "type": 728, + "typeName": "Vec<(ParaId, AbridgedHrmpChannel)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "relay_state_snapshot", + "RelayDispatchQueueRemainingCapacity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "remaining_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 729 + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 171, + 730 + ] + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "AbridgedHrmpChannel" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "mqc_head", + "type": 366, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "AbridgedHostConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "async_backing_params", + "type": 732, + "typeName": "AsyncBackingParams", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "AsyncBackingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "pezcumulus_primitives_teyrchain_inherent", + "MessageQueueChain" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "RelayHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 171 + }, + { + "name": "V", + "type": 733 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 735, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 736 + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 171, + 733 + ] + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "teyrchain_inherent", + "InboundMessageId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "reverse_idx", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 739 + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "pezkuwi_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 171 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 171, + "typeName": "Id", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "pezcumulus_pallet_teyrchain_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OverlappingUpgrades", + "fields": [], + "index": 0, + "docs": [ + "Attempt to upgrade validation function while existing upgrade pending." + ] + }, + { + "name": "ProhibitedByPezkuwi", + "fields": [], + "index": 1, + "docs": [ + "Pezkuwi currently prohibits this teyrchain from upgrading its validation function." + ] + }, + { + "name": "TooBig", + "fields": [], + "index": 2, + "docs": [ + "The supplied validation function has compiled into a blob larger than Pezkuwi is", + "willing to run." + ] + }, + { + "name": "ValidationDataNotAvailable", + "fields": [], + "index": 3, + "docs": [ + "The inherent which supplies the validation data did not run this block." + ] + }, + { + "name": "HostConfigurationNotAvailable", + "fields": [], + "index": 4, + "docs": [ + "The inherent which supplies the host configuration did not run this block." + ] + }, + { + "name": "NotScheduled", + "fields": [], + "index": 5, + "docs": [ + "No validation function upgrade is currently scheduled." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 741, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 409, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 742, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 409 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 409, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 744 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 745, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 746, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 744 + ] + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 745 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 745, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 750, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 751 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 753, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 752 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 752, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 212 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 321 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 212, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 244, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 321, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 751 + } + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 755, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 508 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 510, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 757 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 758, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 105 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 105, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 757 + } + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 760 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 764, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 761 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 761, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 493, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 497, + "typeName": "pallet_session::HoldReason", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 498, + "typeName": "pallet_xcm::HoldReason", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 495, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 496, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 762, + "typeName": "pallet_election_provider_multi_block::signed::HoldReason", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 763, + "typeName": "pallet_staking_async::HoldReason", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SignedSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 764, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 760 + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 766 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 768, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 767 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 767, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 500, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 80, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 766 + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 770, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 773, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEthereumSignature", + "fields": [], + "index": 0, + "docs": [ + "Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "fields": [], + "index": 1, + "docs": [ + "Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "fields": [], + "index": 2, + "docs": [ + "Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "fields": [], + "index": 3, + "docs": [ + "There's not enough in the pot to pay out some unvested amount. Generally implies a", + "logic error." + ] + }, + { + "name": "InvalidStatement", + "fields": [], + "index": 4, + "docs": [ + "A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "fields": [], + "index": 5, + "docs": [ + "The account already has a vested balance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 774, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 776 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 777, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "CandidateInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 776 + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 105, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "pallet_collator_selection", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCandidates", + "fields": [], + "index": 0, + "docs": [ + "The pallet has too many candidates." + ] + }, + { + "name": "TooFewEligibleCollators", + "fields": [], + "index": 1, + "docs": [ + "Leaving would result in too few candidates." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 2, + "docs": [ + "Account is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 3, + "docs": [ + "Account is not a candidate." + ] + }, + { + "name": "TooManyInvulnerables", + "fields": [], + "index": 4, + "docs": [ + "There are too many Invulnerables." + ] + }, + { + "name": "AlreadyInvulnerable", + "fields": [], + "index": 5, + "docs": [ + "Account is already an Invulnerable." + ] + }, + { + "name": "NotInvulnerable", + "fields": [], + "index": 6, + "docs": [ + "Account is not an Invulnerable." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 7, + "docs": [ + "Account has no associated validator ID." + ] + }, + { + "name": "ValidatorNotRegistered", + "fields": [], + "index": 8, + "docs": [ + "Validator ID is not yet registered." + ] + }, + { + "name": "InsertToCandidateListFailed", + "fields": [], + "index": 9, + "docs": [ + "Could not insert in the candidate list." + ] + }, + { + "name": "RemoveFromCandidateListFailed", + "fields": [], + "index": 10, + "docs": [ + "Could not remove from the candidate list." + ] + }, + { + "name": "DepositTooLow", + "fields": [], + "index": 11, + "docs": [ + "New deposit amount would be below the minimum candidacy bond." + ] + }, + { + "name": "UpdateCandidateListFailed", + "fields": [], + "index": 12, + "docs": [ + "Could not update the candidate list." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 13, + "docs": [ + "Deposit amount is too low to take the target's slot in the candidate list." + ] + }, + { + "name": "TargetIsNotCandidate", + "fields": [], + "index": 14, + "docs": [ + "The target account to be replaced in the candidate list is not a candidate." + ] + }, + { + "name": "IdenticalDeposit", + "fields": [], + "index": 15, + "docs": [ + "The updated deposit amount is equal to the amount already reserved." + ] + }, + { + "name": "InvalidUnreserve", + "fields": [], + "index": 16, + "docs": [ + "Cannot lower candidacy bond while occupying a future collator slot in the list." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 780, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 781 + } + }, + "docs": [] + } + }, + { + "id": 781, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 266 + ] + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 783 + } + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 784 + ] + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceSeverity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 786, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 788, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 267 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 789, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 267 + } + }, + "docs": [] + } + }, + { + "id": 790, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 790, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 171 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 793, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 171 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 794, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 171 + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 796 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 798, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "OutboundChannelDetails" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 171, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "state", + "type": 797, + "typeName": "OutboundState", + "docs": [] + }, + { + "name": "signals_exist", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "first_index", + "type": 180, + "typeName": "u16", + "docs": [] + }, + { + "name": "last_index", + "type": 180, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 797, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "OutboundState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Suspended", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 796 + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 171, + 180 + ] + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "QueueConfigData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "suspend_threshold", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "drop_threshold", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "resume_threshold", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [ + "pezcumulus_pallet_xcmp_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadQueueConfig", + "fields": [], + "index": 0, + "docs": [ + "Setting the queue config failed since one of its values was invalid." + ] + }, + { + "name": "AlreadySuspended", + "fields": [], + "index": 1, + "docs": [ + "The execution is already suspended." + ] + }, + { + "name": "AlreadyResumed", + "fields": [], + "index": 2, + "docs": [ + "The execution is already resumed." + ] + }, + { + "name": "TooManyActiveOutboundChannels", + "fields": [], + "index": 3, + "docs": [ + "There are too many active outbound channels." + ] + }, + { + "name": "TooBig", + "fields": [], + "index": 4, + "docs": [ + "The message is too big." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 803, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "maybe_match_querier", + "type": 804, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_notify", + "type": 805, + "typeName": "Option<(u8, u8)>", + "docs": [] + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 807, + "typeName": "VersionedResponse", + "docs": [] + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 164 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 164, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 805, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 806 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 806, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 274, + "typeName": "v3::Response", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 290, + "typeName": "v4::Response", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 107, + "typeName": "v5::Response", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 164 + ] + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 10, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 811 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 812, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 164, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 811 + } + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrateVersionNotifiers", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "name": null, + "type": 814, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MigrateAndNotifyOldTargets", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 312 + ] + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 39 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "owner", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "locker", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "consumers", + "type": 817, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 818 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 819, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 39, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 818 + } + }, + "docs": [] + } + }, + { + "id": 820, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 821 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 822, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 164 + ] + }, + "docs": [] + } + }, + { + "id": 822, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 821 + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [ + "pallet_xcm", + "AuthorizedAliasesEntry" + ], + "params": [ + { + "name": "Ticket", + "type": 824 + }, + { + "name": "MAX", + "type": 825 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "aliasers", + "type": 826, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "ticket", + "type": 824, + "typeName": "Ticket", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "MaxAuthorizedAliases" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 827 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 828, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [ + "xcm_runtime_apis", + "authorized_aliases", + "OriginAliaser" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "location", + "type": 164, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "expiry", + "type": 165, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 827 + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "fields": [], + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "fields": [], + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "fields": [], + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "fields": [], + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "fields": [], + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "fields": [], + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "fields": [], + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "fields": [], + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "fields": [], + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "fields": [], + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "fields": [], + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "fields": [], + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "fields": [], + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "fields": [], + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "fields": [], + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "fields": [], + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + }, + { + "name": "TooManyAuthorizedAliases", + "fields": [], + "index": 25, + "docs": [ + "Too many locations authorized to alias origin." + ] + }, + { + "name": "ExpiresInPast", + "fields": [], + "index": 26, + "docs": [ + "Expiry block number is in the past." + ] + }, + { + "name": "AliasNotFound", + "fields": [], + "index": 27, + "docs": [ + "The alias to remove authorization for was not found." + ] + }, + { + "name": "LocalExecutionIncompleteWithError", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 830, + "typeName": "ExecutionError", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Local XCM execution incomplete with the actual XCM error and the index of the", + "instruction that caused the error." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 830, + "type": { + "path": [ + "pallet_xcm", + "errors", + "ExecutionError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [ + "bp_xcm_bridge_hub_router", + "BridgeState" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "delivery_fee_factor", + "type": 168, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "is_congested", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 170 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 833, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 834 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 834, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 170 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 170, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 170, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 170, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 837, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 839, + "type": { + "path": [ + "snowbridge_pallet_system_frontend", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnsupportedLocationVersion", + "fields": [], + "index": 0, + "docs": [ + "Convert versioned location failure" + ] + }, + { + "name": "InvalidAssetOwner", + "fields": [], + "index": 1, + "docs": [ + "Check location failure, should start from the dispatch origin as owner" + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 2, + "docs": [ + "Send xcm message failure" + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 3, + "docs": [ + "Withdraw fee asset failure" + ] + }, + { + "name": "LocationConversionFailed", + "fields": [], + "index": 4, + "docs": [ + "Convert to reanchored location failure" + ] + }, + { + "name": "Halted", + "fields": [], + "index": 5, + "docs": [ + "Message export is halted" + ] + }, + { + "name": "Unreachable", + "fields": [], + "index": 6, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "UnsupportedAsset", + "fields": [], + "index": 7, + "docs": [ + "The asset provided for the tip is unsupported." + ] + }, + { + "name": "WithdrawError", + "fields": [], + "index": 8, + "docs": [ + "Unable to withdraw asset." + ] + }, + { + "name": "InvalidAccount", + "fields": [], + "index": 9, + "docs": [ + "Account could not be converted to a location." + ] + }, + { + "name": "SwapError", + "fields": [], + "index": 10, + "docs": [ + "Provided tip asset could not be swapped for ether." + ] + }, + { + "name": "BurnError", + "fields": [], + "index": 11, + "docs": [ + "Ether could not be burned." + ] + }, + { + "name": "TipAmountZero", + "fields": [], + "index": 12, + "docs": [ + "The tip provided is zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 840, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 841, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 842, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 177, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 843, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found in storage." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it or update", + "its deposits." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 845, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 846, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 847 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 848, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 179 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 179, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 847 + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 850, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 851 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 852, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 851 + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 854, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 856, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 857, + "typeName": "AssetStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 859, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 39 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 860, + "typeName": "AccountStatus", + "docs": [] + }, + { + "name": "reason", + "type": 861, + "typeName": "ExistenceReason", + "docs": [] + }, + { + "name": "extra", + "type": 39, + "typeName": "Extra", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "pallet_assets", + "types", + "AccountStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Liquid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Sufficient", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DepositHeld", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DepositRefunded", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DepositFrom", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 864, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 865 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 865, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 865, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 867, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approved", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 185, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 185, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 872, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 187, + 188 + ] + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 189, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 874, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 190 + ] + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "fields": [], + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 17, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "NoMetadata", + "fields": [], + "index": 18, + "docs": [ + "No metadata is found." + ] + }, + { + "name": "WrongMetadata", + "fields": [], + "index": 19, + "docs": [ + "Wrong metadata key/value bytes supplied." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 20, + "docs": [ + "An attribute is not found." + ] + }, + { + "name": "WrongAttribute", + "fields": [], + "index": 21, + "docs": [ + "Wrong attribute key/value bytes supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 876, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 878 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "CollectionRole", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Freezer", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Admin", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 879, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 880 + }, + { + "name": "Approvals", + "type": 881 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 881, + "typeName": "Approvals", + "docs": [] + }, + { + "name": "deposit", + "type": 880, + "typeName": "Deposit", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 187 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 882, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 882, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 187 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 883, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 883, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 884 + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 187 + ] + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 887 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 887, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 192, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 887, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 888, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 187, + 193, + 189 + ] + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 192, + 890 + ] + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 892, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 195 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 194, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 895 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "PalletFeature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Attributes", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Swaps", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "fields": [], + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "fields": [], + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "fields": [], + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "fields": [], + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "fields": [], + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "fields": [], + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "fields": [], + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "fields": [], + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "fields": [], + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "fields": [], + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "fields": [], + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "fields": [], + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "fields": [], + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "fields": [], + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "fields": [], + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "fields": [], + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "fields": [], + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "fields": [], + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "fields": [], + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "fields": [], + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "fields": [], + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "fields": [], + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "fields": [], + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "fields": [], + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "fields": [], + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "fields": [], + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "fields": [], + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "fields": [], + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + }, + { + "name": "CollectionNotEmpty", + "fields": [], + "index": 43, + "docs": [ + "Can't delete non-empty collections." + ] + }, + { + "name": "WitnessRequired", + "fields": [], + "index": 44, + "docs": [ + "The witness data should be provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 897, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 67, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 67, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 900 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 900, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 900, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 900, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 901, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 902, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 903 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 903, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 903, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 904, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 905, + "type": { + "path": [ + "pallet_asset_conversion", + "types", + "PoolInfo" + ], + "params": [ + { + "name": "PoolAssetId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "lp_token", + "type": 4, + "typeName": "PoolAssetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolExists", + "fields": [], + "index": 1, + "docs": [ + "Pool already exists." + ] + }, + { + "name": "WrongDesiredAmount", + "fields": [], + "index": 2, + "docs": [ + "Desired amount can't be zero." + ] + }, + { + "name": "AmountOneLessThanMinimal", + "fields": [], + "index": 3, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountTwoLessThanMinimal", + "fields": [], + "index": 4, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "ReserveLeftLessThanMinimal", + "fields": [], + "index": 5, + "docs": [ + "Reserve needs to always be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountOutTooHigh", + "fields": [], + "index": 6, + "docs": [ + "Desired amount can't be equal to the pool reserve." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 7, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 8, + "docs": [ + "An overflow happened." + ] + }, + { + "name": "AssetOneDepositDidNotMeetMinimum", + "fields": [], + "index": 9, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoDepositDidNotMeetMinimum", + "fields": [], + "index": 10, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "AssetOneWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 11, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 12, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "OptimalAmountLessThanDesired", + "fields": [], + "index": 13, + "docs": [ + "Optimal calculated amount is less than desired." + ] + }, + { + "name": "InsufficientLiquidityMinted", + "fields": [], + "index": 14, + "docs": [ + "Insufficient liquidity minted." + ] + }, + { + "name": "ZeroLiquidity", + "fields": [], + "index": 15, + "docs": [ + "Requested liquidity can't be zero." + ] + }, + { + "name": "ZeroAmount", + "fields": [], + "index": 16, + "docs": [ + "Amount can't be zero." + ] + }, + { + "name": "ProvidedMinimumNotSufficientForSwap", + "fields": [], + "index": 17, + "docs": [ + "Calculated amount out is less than provided minimum amount." + ] + }, + { + "name": "ProvidedMaximumNotSufficientForSwap", + "fields": [], + "index": 18, + "docs": [ + "Provided maximum amount is not sufficient for swap." + ] + }, + { + "name": "InvalidPath", + "fields": [], + "index": 19, + "docs": [ + "The provided path must consists of 2 assets at least." + ] + }, + { + "name": "NonUniquePath", + "fields": [], + "index": 20, + "docs": [ + "The provided path must consists of unique assets." + ] + }, + { + "name": "IncorrectPoolAssetId", + "fields": [], + "index": 21, + "docs": [ + "It was not possible to get or increment the Id of the pool." + ] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 22, + "docs": [ + "The destination account cannot exist with the swapped funds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 907, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 186, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 206 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 207 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 206, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 207, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 909, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 911, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 180 + ] + }, + "docs": [] + } + }, + { + "id": 912, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 913, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 604, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 914, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 602, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 603, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 600 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 601, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 915, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 606 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 605, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 917, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 180 + }, + { + "name": "RuntimeOrigin", + "type": 321 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 212 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 571 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 37 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 918, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 574, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 180 + }, + { + "name": "RuntimeOrigin", + "type": 321 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 212 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 571 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 37 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 180, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 321, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 212, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 365, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 573, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 574, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 575, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 571, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 577, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 540 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 539, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 921 + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 180, + 922 + ] + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 701 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 701, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 923, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 923, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 924, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 924, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 924, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 925, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 927, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 928, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 612, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 930, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + }, + { + "name": "NotProposer", + "fields": [], + "index": 11, + "docs": [ + "User is not the proposer of the bounty." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 931, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 932, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 932, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 933, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 934, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 935, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 168, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 936, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 937, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 938, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 937, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 937 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 939, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 939, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 937 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 940, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 940, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 941 + } + }, + "docs": [] + } + }, + { + "id": 941, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 937 + ] + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 943, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "SlashTooLow", + "fields": [], + "index": 33, + "docs": [ + "The slash amount is too low to be applied." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 35, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 36, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 37, + "docs": [ + "Account is restricted from participation in pools. This may happen if the account is", + "staking in another way already." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 943, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 944, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 945, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 190, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 946, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 947, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 948, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 1, + "docs": [ + "Could not update a node, because the pallet is locked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 948, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 949, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "Delegation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 950, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "AgentLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total_delegated", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pending_slash", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 951, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "The account cannot perform this operation." + ] + }, + { + "name": "AlreadyStaking", + "fields": [], + "index": 1, + "docs": [ + "An existing staker cannot perform this action." + ] + }, + { + "name": "InvalidRewardDestination", + "fields": [], + "index": 2, + "docs": [ + "Reward Destination cannot be same as `Agent` account." + ] + }, + { + "name": "InvalidDelegation", + "fields": [], + "index": 3, + "docs": [ + "Delegation conditions are not met.", + "", + "Possible issues are", + "1) Cannot delegate to self,", + "2) Cannot delegate to multiple delegates." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 4, + "docs": [ + "The account does not have enough funds to perform the operation." + ] + }, + { + "name": "NotAgent", + "fields": [], + "index": 5, + "docs": [ + "Not an existing `Agent` account." + ] + }, + { + "name": "NotDelegator", + "fields": [], + "index": 6, + "docs": [ + "Not a Delegator account." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 7, + "docs": [ + "Some corruption in internal state." + ] + }, + { + "name": "UnappliedSlash", + "fields": [], + "index": 8, + "docs": [ + "Unapplied pending slash restricts operation on `Agent`." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 9, + "docs": [ + "`Agent` has no pending slash to be applied." + ] + }, + { + "name": "WithdrawFailed", + "fields": [], + "index": 10, + "docs": [ + "Failed to withdraw amount from Core Staking." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 11, + "docs": [ + "Operation not supported by this pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 952, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 953, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 953, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "ValidatorSetReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "new_validator_set", + "type": 89, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "prune_up_to", + "type": 187, + "typeName": "Option", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 954, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 955 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 957, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 955, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 956 + ] + }, + "docs": [] + } + }, + { + "id": 956, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 957, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 955 + } + }, + "docs": [] + } + }, + { + "id": 958, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 959, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Fallback", + "fields": [], + "index": 0, + "docs": [ + "Triggering the `Fallback` failed." + ] + }, + { + "name": "UnexpectedPhase", + "fields": [], + "index": 1, + "docs": [ + "Unexpected phase" + ] + }, + { + "name": "Snapshot", + "fields": [], + "index": 2, + "docs": [ + "Snapshot was unavailable." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 960, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "ValidSolution" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "X", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Y", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 961, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 962 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 964, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 962, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 963 + ] + }, + "docs": [] + } + }, + { + "id": 963, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "PartialBackings" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "backers", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 964, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 962 + } + }, + "docs": [] + } + }, + { + "id": 965, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "verifier", + "impls", + "Status" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nothing", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 966, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 967 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 968, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 967, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 412 + ] + }, + "docs": [] + } + }, + { + "id": 968, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 967 + } + }, + "docs": [] + } + }, + { + "id": 969, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 970, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "SubmissionMetadata" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "reward", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "claimed_score", + "type": 412, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "pages", + "type": 971, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 971, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 972, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 972, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 8 + } + }, + "docs": [] + } + }, + { + "id": 973, + "type": { + "path": [ + "pallet_election_provider_multi_block", + "signed", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PhaseNotSigned", + "fields": [], + "index": 0, + "docs": [ + "The phase is not signed." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 1, + "docs": [ + "The submission is a duplicate." + ] + }, + { + "name": "QueueFull", + "fields": [], + "index": 2, + "docs": [ + "The queue is full." + ] + }, + { + "name": "BadPageIndex", + "fields": [], + "index": 3, + "docs": [ + "The page index is out of bounds." + ] + }, + { + "name": "NotRegistered", + "fields": [], + "index": 4, + "docs": [ + "The account is not registered." + ] + }, + { + "name": "NoSubmission", + "fields": [], + "index": 5, + "docs": [ + "No submission found." + ] + }, + { + "name": "RoundNotOver", + "fields": [], + "index": 6, + "docs": [ + "Round is not yet over." + ] + }, + { + "name": "BadWitnessData", + "fields": [], + "index": 7, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "TooManyInvulnerables", + "fields": [], + "index": 8, + "docs": [ + "Too many invulnerable accounts are provided," + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 974, + "type": { + "path": [ + "pallet_staking_async", + "ledger", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 484, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 975, + "type": { + "path": [ + "pallet_staking_async", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 956, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 976, + "type": { + "path": [ + "pallet_staking_async", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 165, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 977, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 37 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 663, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 978, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 75, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 75, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 979, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "BoundedExposurePage" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 980, + "typeName": "ExposurePage>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 980, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 75, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 981, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 981, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 982 + } + }, + "docs": [] + } + }, + { + "id": 982, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 75, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 983, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 186, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 984, + "type": { + "path": [ + "pallet_staking_async", + "EraRewardPoints" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 985, + "typeName": "BoundedBTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 985, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 986, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 986, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 394, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 987, + "type": { + "path": [ + "pallet_staking_async", + "slashing", + "OffenceRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reporter", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "reported_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "exposure_page", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 383, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "prior_slash_fraction", + "type": 383, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 988, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 186, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 989, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 987 + ] + }, + "docs": [] + } + }, + { + "id": 990, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 487 + ] + }, + "docs": [] + } + }, + { + "id": 991, + "type": { + "path": [ + "pallet_staking_async", + "UnappliedSlash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "others", + "type": 992, + "typeName": "WeakBoundedVec<(T::AccountId, BalanceOf), T::MaxExposurePageSize>", + "docs": [] + }, + { + "name": "reporter", + "type": 190, + "typeName": "Option", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 992, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 409 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 993, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 477 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 476, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 994, + "type": { + "path": [ + "pallet_staking_async", + "SnapshotStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Consumed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Waiting", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 995, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 892, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 996, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "PruningStep" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ErasStakersPaged", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ErasStakersOverview", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ErasValidatorPrefs", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ClaimedRewards", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ErasValidatorReward", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "ErasRewardPoints", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ErasTotalStake", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 997, + "type": { + "path": [ + "pallet_staking_async", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashRecord", + "fields": [], + "index": 6, + "docs": [ + "Slash record not found." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot bond, nominate or validate with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 13, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 14, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 15, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 16, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 17, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 18, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 19, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 20, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 21, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 22, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 23, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 24, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 25, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 26, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 27, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 28, + "docs": [ + "Operation not allowed for virtual stakers." + ] + }, + { + "name": "CannotReapStash", + "fields": [], + "index": 29, + "docs": [ + "Stash could not be reaped as other pallet might depend on it." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 30, + "docs": [ + "The stake of this account is already migrated to `Fungible` holds." + ] + }, + { + "name": "EraNotStarted", + "fields": [], + "index": 31, + "docs": [ + "Era not yet started." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 32, + "docs": [ + "Account is restricted from participation in staking. This may happen if the account is", + "staking in another way already, such as via pool." + ] + }, + { + "name": "UnappliedSlashesInPreviousEra", + "fields": [], + "index": 33, + "docs": [ + "Unapplied slashes in the recently concluded era is blocking this operation.", + "See `Call::apply_slash` to apply them." + ] + }, + { + "name": "EraNotPrunable", + "fields": [], + "index": 34, + "docs": [ + "The era is not eligible for pruning." + ] + }, + { + "name": "CancelledSlash", + "fields": [], + "index": 35, + "docs": [ + "The slash has been cancelled and cannot be applied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 998, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 171, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 999, + "type": { + "path": [ + "pallet_ah_ops", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoLeaseReserve", + "fields": [], + "index": 0, + "docs": [ + "Either no lease deposit or already unreserved." + ] + }, + { + "name": "NoCrowdloanContribution", + "fields": [], + "index": 1, + "docs": [ + "Either no crowdloan contribution or already withdrawn." + ] + }, + { + "name": "NoCrowdloanReserve", + "fields": [], + "index": 2, + "docs": [ + "Either no crowdloan reserve or already unreserved." + ] + }, + { + "name": "FailedToWithdrawCrowdloanContribution", + "fields": [], + "index": 3, + "docs": [ + "Failed to withdraw crowdloan contribution." + ] + }, + { + "name": "NotYet", + "fields": [], + "index": 4, + "docs": [ + "Block number is not yet reached." + ] + }, + { + "name": "ContributionsRemaining", + "fields": [], + "index": 5, + "docs": [ + "Not all contributions are withdrawn." + ] + }, + { + "name": "WrongDerivedTranslation", + "fields": [], + "index": 6, + "docs": [ + "The account is not a derived account." + ] + }, + { + "name": "NotSovereign", + "fields": [], + "index": 7, + "docs": [ + "Account cannot be migrated since it is not a sovereign teyrchain account." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 8, + "docs": [ + "Internal error, please bug report." + ] + }, + { + "name": "MigrationNotCompleted", + "fields": [], + "index": 9, + "docs": [ + "The Asset Hub migration is not completed." + ] + }, + { + "name": "ZeroBalance", + "fields": [], + "index": 10, + "docs": [ + "The balance is zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1000, + "type": { + "path": [ + "pallet_ah_migrator", + "BalancesBefore" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "checking_account", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_issuance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1001, + "type": { + "path": [ + "pallet_ah_migrator", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToUnreserveDeposit", + "fields": [], + "index": 0, + "docs": [ + "Failed to unreserve deposit." + ] + }, + { + "name": "FailedToProcessAccount", + "fields": [], + "index": 1, + "docs": [ + "Failed to process an account data from RC." + ] + }, + { + "name": "InsertConflict", + "fields": [], + "index": 2, + "docs": [ + "Some item could not be inserted because it already exists." + ] + }, + { + "name": "FailedToConvertType", + "fields": [], + "index": 3, + "docs": [ + "Failed to convert RC type to AH type." + ] + }, + { + "name": "PreimageNotFound", + "fields": [], + "index": 4, + "docs": [ + "Failed to fetch preimage." + ] + }, + { + "name": "FailedToConvertCall", + "fields": [], + "index": 5, + "docs": [ + "Failed to convert RC call to AH call." + ] + }, + { + "name": "FailedToBoundCall", + "fields": [], + "index": 6, + "docs": [ + "Failed to bound a call." + ] + }, + { + "name": "XcmError", + "fields": [], + "index": 7, + "docs": [ + "Failed to send XCM message." + ] + }, + { + "name": "FailedToIntegrateVestingSchedule", + "fields": [], + "index": 8, + "docs": [ + "Failed to integrate a vesting schedule." + ] + }, + { + "name": "FailedToCalculateCheckingAccount", + "fields": [], + "index": 9, + "docs": [ + "Checking account overflow or underflow." + ] + }, + { + "name": "FailedToBoundVector", + "fields": [], + "index": 10, + "docs": [ + "Vector did not fit into its compile-time bound." + ] + }, + { + "name": "DmpQueuePriorityAlreadySet", + "fields": [], + "index": 11, + "docs": [ + "The DMP queue priority is already set to the same value." + ] + }, + { + "name": "InvalidParameter", + "fields": [], + "index": 12, + "docs": [ + "Invalid parameter." + ] + }, + { + "name": "PreimageMissing", + "fields": [], + "index": 13, + "docs": [ + "Preimage missing." + ] + }, + { + "name": "PreimageTooBig", + "fields": [], + "index": 14, + "docs": [ + "Preimage too big." + ] + }, + { + "name": "PreimageChunkMissing", + "fields": [], + "index": 15, + "docs": [ + "Preimage chunk missing." + ] + }, + { + "name": "PreimageStatusInvalid", + "fields": [], + "index": 16, + "docs": [ + "Preimage status invalid." + ] + }, + { + "name": "BadXcmVersion", + "fields": [], + "index": 17, + "docs": [ + "The XCM version is invalid." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 18, + "docs": [ + "The origin is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1002, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1003, + 1004, + 1005, + 1006, + 1007, + 1009, + 1010, + 1011, + 1012 + ] + }, + "docs": [] + } + }, + { + "id": 1003, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1004, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1005, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1006, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1007, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1008, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1008, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1009, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 71, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1010, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1011, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 75, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 116, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1012, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 1013, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1013, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1014, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1015, + "type": { + "path": [ + "sp_consensus_slots", + "SlotDuration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1016, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 225 + }, + { + "name": "Extrinsic", + "type": 1017 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 225, + "typeName": "Header", + "docs": [] + }, + { + "name": "extrinsics", + "type": 1018, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1017, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 252 + }, + { + "name": "Call", + "type": 213 + }, + { + "name": "Signature", + "type": 353 + }, + { + "name": "Extra", + "type": 1002 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1018, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1017 + } + }, + "docs": [] + } + }, + { + "id": 1019, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyInherents", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1020, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1021, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1020 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1020, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1022, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 38 + }, + { + "name": "E", + "type": 1023 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 38, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1023, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1023, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 1024, + "typeName": "InvalidTransaction", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Unknown", + "fields": [ + { + "name": null, + "type": 1025, + "typeName": "UnknownTransaction", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1024, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Payment", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Future", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Stale", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BadProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExhaustsResources", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BadMandatory", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "MandatoryValidation", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "BadSigner", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IndeterminateImplicit", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 12, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1025, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoUnsignedValidator", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1026, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 1027, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1027, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 105 + }, + { + "name": "V", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1028, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1028, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1029 + } + }, + "docs": [] + } + }, + { + "id": 1029, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 105, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 1030, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "errors", + "type": 1026, + "typeName": "InherentData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1031, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "External", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1032, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1033 + }, + { + "name": "E", + "type": 1023 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1033, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1023, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1033, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority", + "docs": [] + }, + { + "name": "requires", + "type": 217, + "typeName": "Vec", + "docs": [] + }, + { + "name": "provides", + "type": 217, + "typeName": "Vec", + "docs": [] + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity", + "docs": [] + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1034, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1035 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1035, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1035, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1036 + } + }, + "docs": [] + } + }, + { + "id": 1036, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 786 + ] + }, + "docs": [] + } + }, + { + "id": 1037, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "prefix", + "type": 106, + "typeName": "[u8; 16]", + "docs": [] + }, + { + "name": "suffix", + "type": 106, + "typeName": "[u8; 16]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1038, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "E", + "type": 1039 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1039, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1039, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionDispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotImplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotFound", + "fields": [ + { + "name": null, + "type": 1037, + "typeName": "ViewFunctionId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Codec", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1040, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1041, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 1042, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1042, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1043 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1043, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1043, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1044, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1045 + }, + { + "name": "E", + "type": 1046 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1045, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1046, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1045, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 312 + } + }, + "docs": [] + } + }, + { + "id": 1046, + "type": { + "path": [ + "xcm_runtime_apis", + "fees", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1047, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 1046 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1046, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1048, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "E", + "type": 1046 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1046, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1049, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 133 + }, + { + "name": "E", + "type": 1046 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 133, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1046, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1050, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1051 + }, + { + "name": "E", + "type": 1057 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1051, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1057, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1051, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "CallDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 671, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1052, + "typeName": "Vec", + "docs": [] + }, + { + "name": "local_xcm", + "type": 1053, + "typeName": "Option>", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1054, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1052, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 21 + } + }, + "docs": [] + } + }, + { + "id": 1053, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 270 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 270, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1054, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1055 + } + }, + "docs": [] + } + }, + { + "id": 1055, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 164, + 1056 + ] + }, + "docs": [] + } + }, + { + "id": 1056, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 270 + } + }, + "docs": [] + } + }, + { + "id": 1057, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1058, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1059 + }, + { + "name": "E", + "type": 1057 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1059, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1057, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1059, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "XcmDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 93, + "typeName": "Outcome", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1052, + "typeName": "Vec", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1054, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1060, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 1061 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1061, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1061, + "type": { + "path": [ + "xcm_runtime_apis", + "conversions", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unsupported", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1062, + "type": { + "path": [ + "xcm", + "VersionedAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 136, + "typeName": "v3::MultiAsset", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 147, + "typeName": "v4::Asset", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 101, + "typeName": "v5::Asset", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1063, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 1064 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1064, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1064, + "type": { + "path": [ + "xcm_runtime_apis", + "trusted_query", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "VersionedAssetConversionFailed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedLocationConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1065, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 828 + }, + { + "name": "E", + "type": 1066 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 828, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1066, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1066, + "type": { + "path": [ + "xcm_runtime_apis", + "authorized_aliases", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LocationVersionConversionFailed", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1067, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 8 + }, + { + "name": "E", + "type": 1066 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1066, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1068, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 133 + }, + { + "name": "E", + "type": 1069 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 133, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1069, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1069, + "type": { + "path": [ + "assets_common", + "runtime_api", + "FungiblesAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetIdConversionFailed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AmountToBalanceConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1070, + "type": { + "path": [ + "pezcumulus_primitives_core", + "CollationInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 217, + "typeName": "Vec", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 738, + "typeName": "Vec", + "docs": [] + }, + { + "name": "new_validation_code", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "relay_chain::BlockNumber", + "docs": [] + }, + { + "name": "head_data", + "type": 221, + "typeName": "HeadData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1071, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1072 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1072, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1072, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1073, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 39 + }, + { + "name": "E", + "type": 701 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 39, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 701, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1074, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 701 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 701, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1075, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 701 + } + }, + "docs": [] + } + }, + { + "id": 1076, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1077 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1077, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1077, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 1078, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 1079, + "type": { + "path": [ + "asset_hub_pezkuwi_runtime", + "RuntimeError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 713, + "typeName": "frame_system::Error", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TeyrchainSystem", + "fields": [ + { + "name": null, + "type": 740, + "typeName": "pezcumulus_pallet_teyrchain_system::Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 749, + "typeName": "pallet_preimage::Error", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 754, + "typeName": "pallet_scheduler::Error", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 769, + "typeName": "pallet_balances::Error", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 772, + "typeName": "pallet_vesting::Error", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 773, + "typeName": "pallet_claims::Error", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "CollatorSelection", + "fields": [ + { + "name": null, + "type": 779, + "typeName": "pallet_collator_selection::Error", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 787, + "typeName": "pallet_session::Error", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "XcmpQueue", + "fields": [ + { + "name": null, + "type": 802, + "typeName": "pezcumulus_pallet_xcmp_queue::Error", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "PezkuwiXcm", + "fields": [ + { + "name": null, + "type": 829, + "typeName": "pallet_xcm::Error", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 838, + "typeName": "pallet_message_queue::Error", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "SnowbridgeSystemFrontend", + "fields": [ + { + "name": null, + "type": 839, + "typeName": "snowbridge_pallet_system_frontend::Error", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 840, + "typeName": "pallet_utility::Error", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 844, + "typeName": "pallet_multisig::Error", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 853, + "typeName": "pallet_proxy::Error", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 855, + "typeName": "pallet_indices::Error", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 866, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 875, + "typeName": "pallet_uniques::Error", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 896, + "typeName": "pallet_nfts::Error", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ForeignAssets", + "fields": [ + { + "name": null, + "type": 901, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 904, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 906, + "typeName": "pallet_asset_conversion::Error", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 910, + "typeName": "pallet_treasury::Error", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 916, + "typeName": "pallet_conviction_voting::Error", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 926, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 927, + "typeName": "pallet_whitelist::Error", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 930, + "typeName": "pallet_bounties::Error", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 933, + "typeName": "pallet_child_bounties::Error", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 934, + "typeName": "pallet_asset_rate::Error", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 679, + "typeName": "pallet_state_trie_migration::Error", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 942, + "typeName": "pallet_nomination_pools::Error", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 947, + "typeName": "pallet_bags_list::Error", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 951, + "typeName": "pallet_delegated_staking::Error", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "MultiBlockElection", + "fields": [ + { + "name": null, + "type": 959, + "typeName": "pallet_election_provider_multi_block::Error", + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "MultiBlockElectionSigned", + "fields": [ + { + "name": null, + "type": 973, + "typeName": "pallet_election_provider_multi_block::signed::Error", + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 997, + "typeName": "pallet_staking_async::Error", + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "AhOps", + "fields": [ + { + "name": null, + "type": 999, + "typeName": "pallet_ah_ops::Error", + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "AhMigrator", + "fields": [ + { + "name": null, + "type": 1001, + "typeName": "pallet_ah_migrator::Error", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-ver.ts b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-ver.ts new file mode 100644 index 0000000..3b60d5f --- /dev/null +++ b/packages/types-support/src/metadata/v15/asset-hub-pezkuwi-ver.ts @@ -0,0 +1,119 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +//To run a asset-hub-pezkuwi node please refer to types-support/src/metadata/README.md + +export default { + "specName": "statemint", + "implName": "statemint", + "authoringVersion": 1, + "specVersion": 2000000, + "implVersion": 0, + "apis": [ + [ + "0xdd718d5cc53262d4", + 1 + ], + [ + "0x04e70521a0d3d2f8", + 1 + ], + [ + "0xd7bdd8a272ca0d65", + 2 + ], + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xccd9de6396c899ca", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 2 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x2609be83ac4468dc", + 1 + ], + [ + "0x12c8e3d4d7e06de0", + 1 + ], + [ + "0xde92b8a0426b9bf6", + 2 + ], + [ + "0xea93e3f16f3d6962", + 3 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0x8a8047a53a8277ec", + 1 + ], + [ + "0xa2ddb6a58477bf63", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ] + ], + "transactionVersion": 15, + "systemVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v15/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v15/bizinikiwi-hex.ts new file mode 100644 index 0000000..a380b34 --- /dev/null +++ b/packages/types-support/src/metadata/v15/bizinikiwi-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x0122d029006d6574610fa111000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173659908011450686173650001146576656e7454010445000118746f70696373150501185665633c543e000054084c6b69746368656e73696e6b5f72756e74696d653052756e74696d654576656e74000121011853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c697479040080015470616c6c65745f7574696c6974793a3a4576656e740001001c496e646963657304008c017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0005002042616c616e636573040090017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e7404009801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000700604173736574436f6e76657273696f6e54785061796d656e7404009c01c870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e743a3a4576656e743c52756e74696d653e00090068456c656374696f6e50726f76696465724d756c746950686173650400a401d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e000a001c5374616b696e670400bc017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000b001c53657373696f6e0400d8017870616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400dc018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000d001c436f756e63696c0400f001fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400f401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024456c656374696f6e730400f801a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0010004c546563686e6963616c4d656d626572736869700400050101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e0011001c4772616e64706104000901015470616c6c65745f6772616e6470613a3a4576656e7400120020547265617375727904001901017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e0013002441737365745261746504001d01018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e00140024436f6e74726163747304002501018070616c6c65745f636f6e7472616374733a3a4576656e743c52756e74696d653e001500105375646f04003101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00160020496d4f6e6c696e6504003501018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e001700204f6666656e63657304004501015870616c6c65745f6f6666656e6365733a3a4576656e74001900204964656e7469747904004d01017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001c536f636965747904005501017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e001d00205265636f7665727904006101017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e001e001c56657374696e6704006501017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001f00245363686564756c657204006901018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0020001c476c7574746f6e04007501015470616c6c65745f676c7574746f6e3a3a4576656e7400210020507265696d61676504007d01017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e0022001450726f787904008101017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e002300204d756c746973696704009101017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e00240020426f756e7469657304009901017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002500105469707304009d01016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e002600184173736574730400a10101dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e00270028506f6f6c4173736574730400a50101dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e0028001c4c6f74746572790400a901017870616c6c65745f6c6f74746572793a3a4576656e743c52756e74696d653e002c000c4e69730400b101016870616c6c65745f6e69733a3a4576656e743c52756e74696d653e002d001c556e69717565730400b901017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e002e00104e6674730400c901016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400e50101b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4576656e743c52756e74696d653e0030001853616c6172790400e901017470616c6c65745f73616c6172793a3a4576656e743c52756e74696d653e00310038436f726546656c6c6f77736869700400ed01019870616c6c65745f636f72655f66656c6c6f77736869703a3a4576656e743c52756e74696d653e003200485472616e73616374696f6e53746f7261676504000d0201a870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a4576656e743c52756e74696d653e00330024566f7465724c6973740400110201f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e003400485374617465547269654d6967726174696f6e0400150201ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e003500344368696c64426f756e7469657304002102019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e003600245265666572656e646104002502018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0037001852656d61726b0400c107017470616c6c65745f72656d61726b3a3a4576656e743c52756e74696d653e0038002c526f6f7454657374696e670400c507018c70616c6c65745f726f6f745f74657374696e673a3a4576656e743c52756e74696d653e00390040436f6e76696374696f6e566f74696e670400c90701a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e003a002457686974656c6973740400cd07018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400e10701fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020416c6c69616e63650400e507017c70616c6c65745f616c6c69616e63653a3a4576656e743c52756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400e907019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e003e002c52616e6b6564506f6c6c730400f10701f470616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e003f004052616e6b6564436f6c6c6563746976650400f90701a070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4576656e743c52756e74696d653e0040003c4173736574436f6e76657273696f6e04000108019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4576656e743c52756e74696d653e0041002c46617374556e7374616b6504001508018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e004200304d657373616765517565756504001908019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0043000c506f760400210801b46672616d655f62656e63686d61726b696e675f70616c6c65745f706f763a3a4576656e743c52756e74696d653e0044001c5478506175736504002508017c70616c6c65745f74785f70617573653a3a4576656e743c52756e74696d653e00450020536166654d6f646504002908018070616c6c65745f736166655f6d6f64653a3a4576656e743c52756e74696d653e0046002453746174656d656e7404003108018070616c6c65745f73746174656d656e743a3a4576656e743c52756e74696d653e004700504d756c7469426c6f636b4d6967726174696f6e7304004508018470616c6c65745f6d6967726174696f6e733a3a4576656e743c52756e74696d653e0048001842726f6b657204004908017470616c6c65745f62726f6b65723a3a4576656e743c52756e74696d653e00490028506172616d657465727304005d08018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e004c0048536b69704665656c6573735061796d656e7404007d0801ac70616c6c65745f736b69705f6665656c6573735f7061796d656e743a3a4576656e743c52756e74696d653e004d00604173736574436f6e76657273696f6e4d6967726174696f6e0400810801ac70616c6c65745f61737365745f636f6e76657273696f6e5f6f70733a3a4576656e743c52756e74696d653e004f001852657669766504008508017470616c6c65745f7265766976653a3a4576656e743c52756e74696d653e0050004044656c6567617465645374616b696e670400890801a070616c6c65745f64656c6567617465645f7374616b696e673a3a4576656e743c52756e74696d653e0052003041737365745265776172647304008d08019070616c6c65745f61737365745f726577617264733a3a4576656e743c52756e74696d653e00530034417373657473467265657a657204009108011d0170616c6c65745f6173736574735f667265657a65723a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574735f667265657a65723a3a496e7374616e6365313e005400184d657461547804009508017870616c6c65745f6d6574615f74783a3a4576656e743c52756e74696d653e00590000580c306672616d655f73797374656d1870616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748401384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574840418526573756c740804540188044501680108084f6b040088000000000c45727204006800000100008800000400008c0c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000980c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c0c8870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e741870616c6c6574144576656e7404045400010838417373657454784665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e00012061737365745f6964a00128543a3a41737365744964000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652cb8686173206265656e2070616964206279206077686f6020696e20616e206173736574206061737365745f6964602e444173736574526566756e644661696c65640401486e61746976655f616d6f756e745f6b65707418013042616c616e63654f663c543e000104f4412073776170206f662074686520726566756e6420696e206e61746976652063757272656e6379206261636b20746f206173736574206661696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a018346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6520756e696f6e5f6f66384e61746976654f72576974684964041c4173736574496401100108184e617469766500000018576974684964040010011c4173736574496400010000a40c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d70757465a8013c456c656374696f6e436f6d707574650001186f726967696eac01504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564200110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c59017468652073746f72656420736f6c7574696f6e20776173207375626d697474656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d70757465a8013c456c656374696f6e436f6d7075746500011473636f7265b00134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6db4016050686173653c426c6f636b4e756d626572466f723c543e3e000108746fb4016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a8089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000ac04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000b0084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000b4089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400b8012828626f6f6c2c20426e2900020024456d657267656e637900030000b800000408201000bc103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400014c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6ec4011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874c801304f7074696f6e3c506167653e000c045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673cc013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465d4011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00120855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c0083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000c40c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000c804184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000cc083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6ed0011c50657262696c6c00011c626c6f636b6564200110626f6f6c0000d0000006c400d4083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000d80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e7404045400010c284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640001047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047856616c696461746f7220686173206265656e2072652d656e61626c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc0c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64e00134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000704dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000804e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114756e74696c100144426c6f636b4e756d626572466f723c543e00090494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e2c426c61636b6c697374656404013470726f706f73616c5f6861736834011c543a3a48617368000a04c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465e401644163636f756e74566f74653c42616c616e63654f663c543e3e000b0490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c0488416e206163636f756e7420686173207365636f6e64656420612070726f706f73616c4050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d0460412070726f706f73616c20676f742063616e63656c65642e2c4d657461646174615365740801146f776e6572ec01344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e0e04d44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c65617265640801146f776e6572ec01344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04e44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e20636c65617265642e4c4d657461646174615472616e736665727265640c0128707265765f6f776e6572ec01344d657461646174614f776e6572046050726576696f7573206d65746164617461206f776e65722e01146f776e6572ec01344d657461646174614f776e6572044c4e6577206d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e1004ac4d6574616461746120686173206265656e207472616e7366657272656420746f206e6577206f776e65722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e80110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e80c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000ec0c4070616c6c65745f64656d6f6372616379147479706573344d657461646174614f776e657200010c2045787465726e616c0000002050726f706f73616c040010012450726f70496e646578000100285265666572656e64756d040010013c5265666572656e64756d496e64657800020000f00c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f80c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273fc01ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e450174686520656c656374696f6e2c206e6f74207468617420656e6f7567682068617665206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc00000201010001010000040800180005010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657409010c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f7365740d010134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d010000021101001101000004081501300015010c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c6963000019010c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64a00130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69648801643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69648801643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d010c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e64a00130543a3a41737365744b696e6400011072617465210101244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e64a00130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e64a00130543a3a41737365744b696e6400010c6f6c642101012446697865645531323800010c6e657721010124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657421010c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000025010c4070616c6c65745f636f6e7472616374731870616c6c6574144576656e7404045400012830496e7374616e7469617465640801206465706c6f796572000130543a3a4163636f756e744964000120636f6e7472616374000130543a3a4163636f756e744964000004d8436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e285465726d696e61746564080120636f6e7472616374000130543a3a4163636f756e744964048454686520636f6e7472616374207468617420776173207465726d696e617465642e012c62656e6566696369617279000130543a3a4163636f756e74496404e4546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e6365011868436f6e747261637420686173206265656e2072656d6f7665642e001823204e6f7465003d01546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420616e6420656d697474696e672074686973206576656e742069732062792063616c6c696e6744607365616c5f7465726d696e617465602e28436f646553746f7265640c0124636f64655f6861736834011c543a3a486173680001306465706f7369745f68656c6418013042616c616e63654f663c543e00012075706c6f61646572000130543a3a4163636f756e744964000204b4436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c436f6e7472616374456d6974746564080120636f6e7472616374000130543a3a4163636f756e744964049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746138011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e03049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e2c436f646552656d6f7665640c0124636f64655f6861736834011c543a3a486173680001406465706f7369745f72656c656173656418013042616c616e63654f663c543e00011c72656d6f766572000130543a3a4163636f756e744964000404ac4120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e4c436f6e7472616374436f6465557064617465640c0120636f6e7472616374000130543a3a4163636f756e744964048c54686520636f6e7472616374207468617420686173206265656e20757064617465642e01346e65775f636f64655f6861736834011c543a3a4861736804b04e657720636f646520686173682074686174207761732073657420666f722074686520636f6e74726163742e01346f6c645f636f64655f6861736834011c543a3a48617368048c50726576696f757320636f64652068617368206f662074686520636f6e74726163742e0504784120636f6e7472616374277320636f64652077617320757064617465642e1843616c6c656408011863616c6c6572290101244f726967696e3c543e04745468652063616c6c6572206f66207468652060636f6e7472616374602e0120636f6e7472616374000130543a3a4163636f756e744964047454686520636f6e74726163742074686174207761732063616c6c65642e061c11014120636f6e7472616374207761732063616c6c656420656974686572206279206120706c61696e206163636f756e74206f7220616e6f7468657220636f6e74726163742e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e3844656c656761746543616c6c6564080120636f6e7472616374000130543a3a4163636f756e74496408210154686520636f6e7472616374207468617420706572666f726d6564207468652064656c65676174652063616c6c20616e642068656e636520696e2077686f736520636f6e74657874707468652060636f64655f68617368602069732065786563757465642e0124636f64655f6861736834012c436f6465486173683c543e049c54686520636f646520686173682074686174207761732064656c65676174652063616c6c65642e071c9c4120636f6e74726163742064656c65676174652063616c6c6564206120636f646520686173682e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e8053746f726167654465706f7369745472616e73666572726564416e6448656c640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000804f4536f6d652066756e64732068617665206265656e207472616e7366657272656420616e642068656c642061732073746f72616765206465706f7369742e9053746f726167654465706f7369745472616e73666572726564416e6452656c65617365640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000904f8536f6d652073746f72616765206465706f7369742066756e64732068617665206265656e207472616e7366657272656420616e642072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742901084070616c6c65745f636f6e747261637473184f726967696e040454012d01010810526f6f74000000185369676e65640400000130543a3a4163636f756e744964000100002d01084c6b69746368656e73696e6b5f72756e74696d651c52756e74696d650000000031010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c748401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64ac01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c748401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435010c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f696439010138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e653d01016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743901104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300003d0100000241010041010000040800880045010c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64490101104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e49010000031000000008004d010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001582c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e405375624964656e7469746965735365740c01106d61696e000130543a3a4163636f756e7449640001386e756d6265725f6f665f7375627310010c75333200012c6e65775f6465706f73697418013042616c616e63654f663c543e000804bc416e206163636f756e742773207375622d6964656e7469746965732077657265207365742028696e2062756c6b292e485375624964656e7469747952656e616d656408010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400090421014120676976656e207375622d6163636f756e742773206173736f636961746564206e616d6520776173206368616e676564206279206974732073757065722d6964656e746974792e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000a04090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000b08190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e38417574686f726974794164646564040124617574686f72697479000130543a3a4163636f756e744964000c047c4120757365726e616d6520617574686f72697479207761732061646465642e40417574686f7269747952656d6f766564040124617574686f72697479000130543a3a4163636f756e744964000d04844120757365726e616d6520617574686f72697479207761732072656d6f7665642e2c557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d655101012c557365726e616d653c543e000e04744120757365726e616d65207761732073657420666f72206077686f602e38557365726e616d655175657565640c010c77686f000130543a3a4163636f756e744964000120757365726e616d655101012c557365726e616d653c543e00012865787069726174696f6e100144426c6f636b4e756d626572466f723c543e000f0419014120757365726e616d6520776173207175657565642c20627574206077686f60206d75737420616363657074206974207072696f7220746f206065787069726174696f6e602e48507265617070726f76616c4578706972656404011477686f7365000130543a3a4163636f756e7449640010043901412071756575656420757365726e616d6520706173736564206974732065787069726174696f6e20776974686f7574206265696e6720636c61696d656420616e64207761732072656d6f7665642e485072696d617279557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d655101012c557365726e616d653c543e00110401014120757365726e616d6520776173207365742061732061207072696d61727920616e642063616e206265206c6f6f6b65642075702066726f6d206077686f602e5c44616e676c696e67557365726e616d6552656d6f76656408010c77686f000130543a3a4163636f756e744964000120757365726e616d655101012c557365726e616d653c543e0012085d01412064616e676c696e6720757365726e616d652028617320696e2c206120757365726e616d6520636f72726573706f6e64696e6720746f20616e206163636f756e742074686174206861732072656d6f766564206974736c6964656e746974792920686173206265656e2072656d6f7665642e3c557365726e616d65556e626f756e64040120757365726e616d655101012c557365726e616d653c543e001304704120757365726e616d6520686173206265656e20756e626f756e642e3c557365726e616d6552656d6f766564040120757365726e616d655101012c557365726e616d653c543e001404704120757365726e616d6520686173206265656e2072656d6f7665642e38557365726e616d654b696c6c6564040120757365726e616d655101012c557365726e616d653c543e0015046c4120757365726e616d6520686173206265656e206b696c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657451010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000055010c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001441c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e64696461746573590101445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564200110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572244e6577506172616d73040118706172616d735d01015047726f7570506172616d73466f723c542c20493e000d04cc41206e657720736574206f66205c5b706172616d735c5d20686173206265656e2073657420666f72207468652067726f75702e24556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e20456c6576617465640801186d656d626572000130543a3a4163636f756e74496400011072616e6b10011052616e6b0010049841205c5b6d656d6265725c5d20676f7420656c65766174656420746f205c5b72616e6b5c5d2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574590100000200005d01083870616c6c65745f736f63696574792c47726f7570506172616d73041c42616c616e636501180010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418011c42616c616e6365000061010c3c70616c6c65745f7265636f766572791870616c6c6574144576656e740404540001183c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e04304576656e747320747970652e65010c3870616c6c65745f76657374696e671870616c6c6574144576656e740404540001083856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000008510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640001049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657469010c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e000118726573756c748401384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964710101404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652e6d0100000408101000710104184f7074696f6e04045401040108104e6f6e6500000010536f6d65040004000001000075010c3870616c6c65745f676c7574746f6e1870616c6c6574144576656e740001104450616c6c6574496e697469616c697a65640401187265696e6974200110626f6f6c04ac57686574686572207468652070616c6c657420686173206265656e2072652d696e697469616c697a65642e0004905468652070616c6c657420686173206265656e2028726529696e697469616c697a65642e4c436f6d7075746174696f6e4c696d697453657404011c636f6d70757465790101204669786564553634045854686520636f6d7075746174696f6e206c696d69742e01049c54686520636f6d7075746174696f6e206c696d697420686173206265656e20757064617465642e3c53746f726167654c696d697453657404011c73746f7261676579010120466978656455363404485468652073746f72616765206c696d69742e02048c5468652073746f72616765206c696d697420686173206265656e20757064617465642e4c426c6f636b4c656e6774684c696d6974536574040130626c6f636b5f6c656e677468790101204669786564553634045c54686520626c6f636b206c656e677468206c696d69742e0304a054686520626c6f636b206c656e677468206c696d697420686173206265656e20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657479010c3473705f61726974686d657469632c66697865645f706f696e742046697865645536340000040030010c75363400007d010c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657481010c3070616c6c65745f70726f78791870616c6c6574144576656e740404540001183450726f78794578656375746564040118726573756c748401384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706585010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465788901010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000204e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706585010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00030448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706585010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e648d01012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000504090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748501084c6b69746368656e73696e6b5f72756e74696d652450726f7879547970650001100c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e6700030000890100000504008d01083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e74730001000091010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e749501017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e749501017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748401384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e749501017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749501083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000099010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900012c38426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d010c2c70616c6c65745f746970731870616c6c6574144576656e74080454000449000114184e65775469700401207469705f6861736834011c543a3a486173680000049441206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e670401207469705f6861736834011c543a3a48617368000104d841207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c01207469705f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e7449640001187061796f757418013c42616c616e63654f663c542c20493e0002048441207469702073756767657374696f6e20686173206265656e20636c6f7365642e305469705265747261637465640401207469705f6861736834011c543a3a486173680003049041207469702073756767657374696f6e20686173206265656e207265747261637465642e28546970536c61736865640c01207469705f6861736834011c543a3a4861736800011866696e646572000130543a3a4163636f756e74496400011c6465706f73697418013c42616c616e63654f663c542c20493e0004048841207469702073756767657374696f6e20686173206265656e20736c61736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a1010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a5010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a9010c3870616c6c65745f6c6f74746572791870616c6c6574144576656e74040454000110384c6f7474657279537461727465640000046c41206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640001048441206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208011877696e6e6572000130543a3a4163636f756e74496400013c6c6f74746572795f62616c616e636518013042616c616e63654f663c543e00020464412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408010c77686f000130543a3a4163636f756e74496400012863616c6c5f696e646578ad01012443616c6c496e6465780003046441207469636b657420686173206265656e20626f7567687421047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad0100000408080800b1010c2870616c6c65745f6e69731870616c6c6574144576656e7404045400011c24426964506c616365640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200000478412062696420776173207375636365737366756c6c7920706c616365642e304269645265747261637465640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c753332000104dc412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e67206163636570746564292e2842696444726f707065640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200020455014120626964207761732064726f707065642066726f6d20612071756575652062656361757365206f6620616e6f746865722c206d6f7265207375627374616e7469616c2c20626964207761732070726573656e742e18497373756564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e0118657870697279100144426c6f636b4e756d626572466f723c543e04d054686520626c6f636b206e756d626572206174207768696368207468652072656365697074206d6179206265207468617765642e010c77686f000130543a3a4163636f756e7449640464546865206f776e6572206f662074686520726563656970742e012870726f706f7274696f6eb501012c5065727175696e74696c6c0431015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520776869636820746865207265636569707420726570726573656e74732e0118616d6f756e7418013042616c616e63654f663c543e04d854686520616d6f756e74206f662066756e6473207768696368207765726520646562697465642066726f6d20746865206f776e65722e030405014120626964207761732061636365707465642e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e18546861776564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e010c77686f000130543a3a4163636f756e7449640428546865206f776e65722e012870726f706f7274696f6eb501012c5065727175696e74696c6c0439015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520627920776869636820746865206f776e65722077617320646562697465642e0118616d6f756e7418013042616c616e63654f663c543e04ac54686520616d6f756e7420627920776869636820746865206f776e6572207761732063726564697465642e011c64726f70706564200110626f6f6c048c496620607472756560207468656e20746865207265636569707420697320646f6e652e0404c0416e207265636569707420686173206265656e20286174206c65617374207061727469616c6c7929207468617765642e1846756e64656404011c6465666963697418013042616c616e63654f663c543e000504b4416e206175746f6d617469632066756e64696e67206f6620746865206465666963697420776173206d6164652e2c5472616e736665727265640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000114696e64657810013052656365697074496e6465780006046841207265636569707420776173207472616e736665727265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b5010c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c7536340000b9010c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461bd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461bd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c10101385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565c5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572ac01504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c1010000021000c5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c9010c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572ac01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696eac01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a6572ac01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65c801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461cd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461cd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c10101385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b6579c501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365d10101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b6579c501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365d10101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f6964c8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572ac01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001147072696365d50101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001147072696365d50101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365d50101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365d10101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656dc801444f7074696f6e3c543a3a4974656d49643e000124617474726962757465e101018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d1010c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000d50104184f7074696f6e04045401d9010108104e6f6e6500000010536f6d650400d9010000010000d9010c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6edd0101385072696365446972656374696f6e0000dd010c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000e1010c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000e5010c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144576656e74040454000108444e66744672616374696f6e616c697a65641401386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001246672616374696f6e73180144417373657442616c616e63654f663c543e0001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e7449640000049c416e204e465420776173207375636365737366756c6c79206672616374696f6e616c697a65642e284e6674556e69666965641001386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e74496400010498416e204e465420776173207375636365737366756c6c792072657475726e6564206261636b2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e9010c3470616c6c65745f73616c6172791870616c6c6574144576656e7408045400044900011420496e64756374656404010c77686f000130543a3a4163636f756e7449640000049841206d656d62657220697320696e64756374656420696e746f2074686520706179726f6c6c2e285265676973746572656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0001048441206d656d626572207265676973746572656420666f722061207061796f75742e105061696410010c77686f000130543a3a4163636f756e74496400012c62656e6566696369617279000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00010869648801643c543a3a5061796d6173746572206173205061793e3a3a49640002044c41207061796d656e742068617070656e65642e304379636c6553746172746564040114696e64657810013c4379636c65496e6465784f663c543e00030458546865206e657874206379636c6520626567696e732e1c5377617070656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e7449640004047c41206d656d6265722073776170706564207468656972206163636f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ed010c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c6574144576656e7408045400044900012c34506172616d734368616e676564040118706172616d73f1010138506172616d734f663c542c20493e0000049c506172616d657465727320666f72207468652070616c6c65742068617665206368616e6765642e344163746976654368616e67656408010c77686f000130543a3a4163636f756e74496400012469735f616374697665200110626f6f6c000104884d656d62657220616374697669747920666c616720686173206265656e207365742e20496e64756374656404010c77686f000130543a3a4163636f756e744964000204b84d656d6265722068617320626567756e206265696e6720747261636b656420696e20746869732070616c6c65742e284f6666626f617264656404010c77686f000130543a3a4163636f756e7449640003084d014d656d62657220686173206265656e2072656d6f7665642066726f6d206265696e6720747261636b656420696e20746869732070616c6c65742028692e652e20626563617573652072616e6b206973206e6f77187a65726f292e2050726f6d6f74656408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b8901013052616e6b4f663c542c20493e000404ac4d656d62657220686173206265656e2070726f6d6f74656420746f2074686520676976656e2072616e6b2e1c44656d6f74656408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b8901013052616e6b4f663c542c20493e000504d44d656d62657220686173206265656e2064656d6f74656420746f2074686520676976656e20286e6f6e2d7a65726f292072616e6b2e1850726f76656e08010c77686f000130543a3a4163636f756e74496400011c61745f72616e6b8901013052616e6b4f663c542c20493e0006041d014d656d62657220686173206265656e2070726f76656e2061742074686569722063757272656e742072616e6b2c20706f7374706f6e696e67206175746f2d64656d6f74696f6e2e2452657175657374656408010c77686f000130543a3a4163636f756e7449640001107769736801020110576973680007040d014d656d62657220686173207374617465642065766964656e6365206f66207468656972206566666f727473207468656972207265717565737420666f722072616e6b2e3845766964656e63654a756467656414010c77686f000130543a3a4163636f756e7449640454546865206d656d6265722f63616e6469646174652e011077697368010201105769736804e45468652064657369726564206f7574636f6d6520666f72207768696368207468652065766964656e6365207761732070726573656e7465642e012065766964656e63650502013845766964656e63653c542c20493e04605468652065766964656e6365206f66206566666f7274732e01206f6c645f72616e6b8901010c753136048c546865206f6c642072616e6b2c207072696f7220746f2074686973206368616e67652e01206e65775f72616e6b0902012c4f7074696f6e3c7531363e04fc4e65772072616e6b2e20496620604e6f6e6560207468656e2063616e646964617465207265636f7264207761732072656d6f76656420656e746972656c792e08085d01536f6d65207375626d69747465642065766964656e636520776173206a756467656420616e642072656d6f7665642e205468657265206d6179206f72206d6179206e6f742068617665206265656e2061206368616e6765d0746f207468652072616e6b2c2062757420696e20616e7920636173652c20606c6173745f70726f6f66602069732072657365742e20496d706f7274656408010c77686f000130543a3a4163636f756e74496400011072616e6b8901013052616e6b4f663c542c20493e000904ec5072652d72616e6b6564206163636f756e7420686173206265656e20696e6475637465642061742074686569722063757272656e742072616e6b2e1c5377617070656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000a048c41206d656d6265722068616420697473204163636f756e74496420737761707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f101085870616c6c65745f636f72655f66656c6c6f777368697028506172616d73547970650c1c42616c616e636501182c426c6f636b4e756d62657201101452616e6b7300001401346163746976655f73616c617279f5010168426f756e6465645665633c42616c616e63652c2052616e6b733e000138706173736976655f73616c617279f5010168426f756e6465645665633c42616c616e63652c2052616e6b733e00013c64656d6f74696f6e5f706572696f64fd010178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001506d696e5f70726f6d6f74696f6e5f706572696f64fd010178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001406f6666626f6172645f74696d656f757410012c426c6f636b4e756d6265720000f5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400f90101185665633c543e0000f9010000021800fd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e00000102085870616c6c65745f636f72655f66656c6c6f7773686970105769736800010824526574656e74696f6e0000002450726f6d6f74696f6e0001000005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000090204184f7074696f6e0404540189010108104e6f6e6500000010536f6d650400890100000100000d020c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144576656e7404045400010c1853746f726564040114696e64657810010c7533320000048853746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040114696e64657810010c7533320001048c52656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640002049c53746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657411020c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657415020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465190201404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f721d0201204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e19020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f000100001d020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21020c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425020c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8901013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2902014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8901013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2902014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79bd070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574290210346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564080454012d02044801b907010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e650400bd010134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200002d02084c6b69746368656e73696e6b5f72756e74696d652c52756e74696d6543616c6c000115011853797374656d0400310201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400410201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e000100104261626504005d0201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400850201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400890201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0005002042616c616e6365730400950201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00060068456c656374696f6e50726f76696465724d756c746950686173650400a10201fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e000a001c5374616b696e670400890301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e000b001c53657373696f6e0400bd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e000c002444656d6f63726163790400d50301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000d001c436f756e63696c0400e10301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000e0048546563686e6963616c436f6d6d69747465650400e50301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e000f0024456c656374696f6e730400e90301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e0010004c546563686e6963616c4d656d626572736869700400f10301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0011001c4772616e6470610400f50301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e0012002054726561737572790400210401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e001300244173736574526174650400250401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e00140024436f6e7472616374730400290401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e7472616374732c2052756e74696d653e001500105375646f0400350401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00160020496d4f6e6c696e650400390401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e001700204964656e746974790400450401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001c536f63696574790400ed0401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e001d00205265636f766572790400f10401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e001e001c56657374696e670400f50401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001f00245363686564756c65720400fd0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e0020001c476c7574746f6e0400050501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c476c7574746f6e2c2052756e74696d653e00210020507265696d6167650400110501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e0022001450726f78790400190501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e002300204d756c74697369670400210501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e00240020426f756e746965730400290501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e002500105469707304002d0501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e002600184173736574730400310501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e00270028506f6f6c4173736574730400350501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c4173736574732c2052756e74696d653e0028001442656566790400390501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e0029001c4c6f747465727904006d0501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f74746572792c2052756e74696d653e002c000c4e69730400710501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e69732c2052756e74696d653e002d001c556e69717565730400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e002e00104e6674730400850501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400cd0501e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e66744672616374696f6e616c697a6174696f6e2c2052756e74696d653e0030001853616c6172790400d10501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53616c6172792c2052756e74696d653e00310038436f726546656c6c6f77736869700400d50501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f726546656c6c6f77736869702c2052756e74696d653e003200485472616e73616374696f6e53746f726167650400ed0501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73616374696f6e53746f726167652c2052756e74696d653e00330024566f7465724c6973740400f50501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e003400485374617465547269654d6967726174696f6e0400f90501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e003500344368696c64426f756e746965730400110601c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e003600245265666572656e64610400150601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0037001852656d61726b04001d0601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52656d61726b2c2052756e74696d653e0038002c526f6f7454657374696e670400210601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526f6f7454657374696e672c2052756e74696d653e00390040436f6e76696374696f6e566f74696e670400250601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e003a002457686974656c6973740400350601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400390601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416c6c69616e63654d6f74696f6e2c2052756e74696d653e003c0020416c6c69616e636504003d0601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416c6c69616e63652c2052756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400610601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e003e002c52616e6b6564506f6c6c730400950601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e6b6564506f6c6c732c2052756e74696d653e003f004052616e6b6564436f6c6c6563746976650400990601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e6b6564436f6c6c6563746976652c2052756e74696d653e0040003c4173736574436f6e76657273696f6e04009d0601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e2c2052756e74696d653e0041002c46617374556e7374616b650400a50601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e004200304d65737361676551756575650400a90601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0043000c506f760400ad0601a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f762c2052756e74696d653e0044001c547850617573650400b10601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c547850617573652c2052756e74696d653e00450020536166654d6f64650400b90601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536166654d6f64652c2052756e74696d653e004600504d756c7469426c6f636b4d6967726174696f6e730400bd0601e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b4d6967726174696f6e732c2052756e74696d653e0048001842726f6b65720400e10601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42726f6b65722c2052756e74696d653e004900184d69786e65740400090701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d69786e65742c2052756e74696d653e004b0028506172616d65746572730400210701bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e004c00604173736574436f6e76657273696f6e4d6967726174696f6e0400710701f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e4d6967726174696f6e2c2052756e74696d653e004f00185265766976650400750701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265766976652c2052756e74696d653e0050003041737365745265776172647304007d0701c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526577617264732c2052756e74696d653e005300184d65746154780400810701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65746154782c2052756e74696d653e0059000031020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73350201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b6579733d0201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35020000023902003902000004083838003d02000002380041020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c734502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465788901010c75313600011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c734502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e49020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c734502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696e2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636b2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696e49020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45020000022d02004902084c6b69746368656e73696e6b5f72756e74696d65304f726967696e43616c6c65720001101873797374656d04004d0201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400510201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400550201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0038416c6c69616e63654d6f74696f6e0400590201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c00004d020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100010c10526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e65000200005102084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200005502084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200005902084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200005d020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6661020190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6661020190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967790201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6102084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572016502084964016d02001001206f6666656e6465726d0201084964000110736c6f7471020110536c6f7400013066697273745f686561646572650201184865616465720001347365636f6e645f6865616465726502011848656164657200006502102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572690201184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000690200000610006d020c4473705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c696300007102084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007502082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f6465733d0201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000079020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f72000104085631080104637d020128287536342c2075363429000134616c6c6f7765645f736c6f747381020130416c6c6f776564536c6f7473000100007d02000004083030008102084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000085020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780110011408496404000001244163636f756e74496400000014496e6465780400690201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400910201205b75383b2032305d00040000910200000314000000080095020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f6465617468080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756599020128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756599020128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c697665080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756599020128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f590101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656599020128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e9d02014c41646a7573746d656e74446972656374696f6e00011464656c746199020128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c756599020128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e990200000618009d020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a1020c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ea50201b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e65737375030158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265790301544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f7274737d030158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6ea50201b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b0801406d617962655f6d61785f766f74657273c8012c4f7074696f6e3c7533323e0001446d617962655f6d61785f74617267657473c8012c4f7074696f6e3c7533323e00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea502089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301a902000c0120736f6c7574696f6ea90201045300011473636f7265b00134456c656374696f6e53636f7265000114726f756e6410010c7533320000a902084c6b69746368656e73696e6b5f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331ad0200000118766f74657332b90200000118766f74657333cd0200000118766f74657334d90200000118766f74657335e50200000118766f74657336f10200000118766f74657337fd0200000118766f74657338090300000118766f7465733915030000011c766f746573313021030000011c766f74657331312d030000011c766f746573313239030000011c766f746573313345030000011c766f746573313451030000011c766f74657331355d030000011c766f74657331366903000000ad02000002b10200b102000004086902b50200b502000006890100b902000002bd0200bd020000040c6902c102b50200c10200000408b502c50200c502000006c90200c9020c3473705f61726974686d65746963287065725f7468696e677318506572553136000004008901010c7531360000cd02000002d10200d1020000040c6902d502b50200d50200000302000000c10200d902000002dd0200dd020000040c6902e102b50200e10200000303000000c10200e502000002e90200e9020000040c6902ed02b50200ed0200000304000000c10200f102000002f50200f5020000040c6902f902b50200f90200000305000000c10200fd0200000201030001030000040c69020503b50200050300000306000000c1020009030000020d03000d030000040c69021103b50200110300000307000000c10200150300000219030019030000040c69021d03b502001d0300000308000000c10200210300000225030025030000040c69022903b50200290300000309000000c102002d0300000231030031030000040c69023503b5020035030000030a000000c1020039030000023d03003d030000040c69024103b5020041030000030b000000c10200450300000249030049030000040c69024d03b502004d030000030c000000c10200510300000255030055030000040c69025903b5020059030000030d000000c102005d0300000261030061030000040c69026503b5020065030000030e000000c1020069030000026d03006d030000040c69027103b5020071030000030f000000c102007503089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f746572736902010c75333200011c746172676574736902010c7533320000790304184f7074696f6e04045401b00108104e6f6e6500000010536f6d650400b000000100007d03000002810300810300000408008503008503084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273fc01845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e00008903103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400018010626f6e6408011476616c75659902013042616c616e63654f663c543e0001147061796565c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616c9902013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c75659902013042616c616e63654f663c543e00024c51015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673cc013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c746172676574738d0301645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f70617965650401147061796565c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e65776902010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c6902010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f729103011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573590101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573c10101205665633c7533323e0011149443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c75659902013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686f8d0301645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e6495030158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e6495030158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7499030134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7499030134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c649d030144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6ea1030144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f726577617264739d030144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577c4011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273a50301f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572ac01504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616ca90301504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e67ad030115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cbc52656d6f76657320746865206c6567616379205374616b696e67206c6f636b7320696620746865792065786973742e005101546869732072656d6f76657320746865206c6567616379206c6f636b206f6e20746865207374616b652077697468205b60436f6e6669673a3a4f6c6443757272656e6379605d20616e64206372656174657320615501686f6c64206f6e206974206966206e65656465642e20496620616c6c207374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c6420617329016d75636820617320706f737369626c652e205468652072656d61696e696e67207374616b6520697320666f726365642077697468647261776e2066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e306d616e75616c5f736c6173680c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e646578000138736c6173685f6672616374696f6ec4011c50657262696c6c0021541901546869732066756e6374696f6e20616c6c6f777320676f7665726e616e636520746f206d616e75616c6c7920736c61736820612076616c696461746f7220616e6420697320615c2a2a66616c6c6261636b206d656368616e69736d2a2a2e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e0034232320506172616d657465727309012d206076616c696461746f725f737461736860202d20546865207374617368206163636f756e74206f66207468652076616c696461746f7220746f20736c6173682efc2d206065726160202d205468652065726120696e207768696368207468652076616c696461746f722077617320696e2074686520616374697665207365742e49012d2060736c6173685f6672616374696f6e60202d205468652070657263656e74616765206f6620746865207374616b6520746f20736c6173682c2065787072657373656420617320612050657262696c6c2e002c2323204265686176696f72003d0154686520736c6173682077696c6c206265206170706c696564207573696e6720746865207374616e6461726420736c617368696e67206d656368616e6963732c2072657370656374696e672074686580636f6e666967757265642060536c61736844656665724475726174696f6e602e002c54686973206d65616e733a51012d204966207468652076616c696461746f722077617320616c726561647920736c61736865642062792061206869676865722070657263656e7461676520666f72207468652073616d65206572612c20746869739c2020736c6173682077696c6c2068617665206e6f206164646974696f6e616c206566666563742e51012d204966207468652076616c696461746f72207761732070726576696f75736c7920736c61736865642062792061206c6f7765722070657263656e746167652c206f6e6c792074686520646966666572656e636548202077696c6c206265206170706c6965642e3d012d2054686520736c6173682077696c6c2062652064656665727265642062792060536c61736844656665724475726174696f6e602065726173206265666f7265206265696e6720656e61637465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d030000028d020091030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800009503103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200009903103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200009d03103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454019103010c104e6f6f700000000c536574040091030104540001001852656d6f766500020000a103103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401c4010c104e6f6f700000000c5365740400c40104540001001852656d6f766500020000a5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000a90304184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000ad0304184f7074696f6e04045401b1030108104e6f6e6500000010536f6d650400b1030000010000b1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b503045300000400b90301185665633c543e0000b503083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75659902011c42616c616e636500010c65726169020120457261496e6465780000b903000002b50300bd030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b657973c103011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec103084c6b69746368656e73696e6b5f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061150101d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000110626162656d0201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65390101d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279c50301fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001186d69786e6574c90301cc3c4d69786e6574206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001146265656679cd0301c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000c5030c5873705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c69630000c903102473705f6d69786e65741474797065730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000cd030c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c696300000400d103013465636473613a3a5075626c69630000d103000003210000000800d5030c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c04045400014c1c70726f706f736508012070726f706f73616c29020140426f756e64656443616c6c4f663c543e00011476616c75659902013042616c616e63654f663c543e0000249c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e187365636f6e6404012070726f706f73616c6902012450726f70496e646578000118b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e10766f74650801247265665f696e6465786902013c5265666572656e64756d496e646578000110766f7465e401644163636f756e74566f74653c42616c616e63654f663c543e3e00021c3101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504012070726f706f73616c29020140426f756e64656443616c6c4f663c543e0004182d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e6465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616c29020140426f756e64656443616c6c4f663c543e00052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616c29020140426f756e64656443616c6c4f663c543e00062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736834011c543a3a48617368000134766f74696e675f706572696f64100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e0007404d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f88094d75737420626520616c776179732067726561746572207468616e207a65726f2e350109466f72206046617374547261636b4f726967696e60206d75737420626520657175616c206f722067726561746572207468616e206046617374547261636b566f74696e67506572696f64602e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736834011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e6465786902013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e2064656c65676174650c0108746f8d0201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ed9030128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000b30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000c1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e18756e6c6f636b0401187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000d1ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e6c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650801187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f3c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e24626c61636b6c69737408013470726f706f73616c5f6861736834011c543a3a4861736800013c6d617962655f7265665f696e646578c8015c4f7074696f6e3c5265666572656e64756d496e6465783e00103c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e6465786902012450726f70496e64657800111c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960307365745f6d657461646174610801146f776e6572ec01344d657461646174614f776e65720001286d617962655f68617368dd03013c4f7074696f6e3c543a3a486173683e00123cd8536574206f7220636c6561722061206d65746164617461206f6620612070726f706f73616c206f722061207265666572656e64756d2e002c506172616d65746572733acc2d20606f726967696e603a204d75737420636f72726573706f6e6420746f2074686520604d657461646174614f776e6572602e3d01202020202d206045787465726e616c4f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053757065724d616a6f72697479417070726f766560402020202020207468726573686f6c642e5901202020202d206045787465726e616c44656661756c744f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053757065724d616a6f72697479416761696e737460402020202020207468726573686f6c642e4501202020202d206045787465726e616c4d616a6f726974794f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053696d706c654d616a6f7269747960402020202020207468726573686f6c642ec8202020202d20605369676e65646020627920612063726561746f7220666f722061207075626c69632070726f706f73616c2ef4202020202d20605369676e65646020746f20636c6561722061206d6574616461746120666f7220612066696e6973686564207265666572656e64756d2ee4202020202d2060526f6f746020746f207365742061206d6574616461746120666f7220616e206f6e676f696e67207265666572656e64756d2eb42d20606f776e6572603a20616e206964656e746966696572206f662061206d65746164617461206f776e65722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9030c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000dd0304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000e1030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d62657273590101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c646902012c4d656d626572436f756e7400012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e646902010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d62657273590101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c646902012c4d656d626572436f756e7400012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e646902010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee9030c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f746573590101445665633c543a3a4163636f756e7449643e00011476616c75659902013042616c616e63654f663c543e00004c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e0049014966206076616c756560206973206d6f7265207468616e206077686f60277320667265652062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e746902010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e000901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e34232320436f6d706c6578697479a44f2843202b206c6f672843292920776865726520432069732063616e6469646174655f636f756e742e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67ed03012852656e6f756e63696e670003504d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e0034232320436f6d706c6578697479dc20202d2052656e6f756e63696e673a3a43616e64696461746528636f756e74293a204f28636f756e74202b206c6f6728636f756e7429297020202d2052656e6f756e63696e673a3a4d656d6265723a204f2831297820202d2052656e6f756e63696e673a3a52756e6e657255703a204f2831293472656d6f76655f6d656d6265720c010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000128736c6173685f626f6e64200110626f6f6c000138726572756e5f656c656374696f6e200110626f6f6c000440590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c616365732074686555016f7574676f696e67206d656d6265722e204f74686572776973652c2069662060726572756e5f656c656374696f6e60206973206074727565602c2061206e65772070687261676d656e20656c656374696f6e2069737c737461727465642c20656c73652c206e6f7468696e672068617070656e732e00590149662060736c6173685f626f6e64602069732073657420746f20747275652c2074686520626f6e64206f6620746865206d656d626572206265696e672072656d6f76656420697320736c61736865642e20456c73652c3c69742069732072657475726e65642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e0034232320436f6d706c657869747905012d20436865636b2064657461696c73206f662072656d6f76655f616e645f7265706c6163655f6d656d626572282920616e6420646f5f70687261676d656e28292e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005244501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0034232320436f6d706c65786974798c2d20436865636b2069735f646566756e63745f766f74657228292064657461696c732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed03086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e64696461746504006902010c75333200020000f1030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f76658d0201504163636f756e7449644c6f6f6b75704f663c543e00010c6164648d0201504163636f756e7449644c6f6f6b75704f663c543e000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d62657273590101445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5030c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66f90301c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66f90301c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef903085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6efd03014845717569766f636174696f6e3c482c204e3e0000fd03085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400010401890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d69740400150401910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100000104084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c0849640115010456010504045301090400100130726f756e645f6e756d62657230010c7536340001206964656e7469747915010108496400011466697273741104011828562c2053290001187365636f6e641104011828562c20532900000504084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000009040c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e6174757265000004000d040148656432353531393a3a5369676e617475726500000d0400000340000000080011040000040805040904001504084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c0849640115010456011904045301090400100130726f756e645f6e756d62657230010c7536340001206964656e7469747915010108496400011466697273741d04011828562c2053290001187365636f6e641d04011828562c20532900001904084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e00001d0400000408190409040021040c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e749902013c42616c616e63654f663c542c20493e00012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69646902013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e000118616d6f756e7499020150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172798d020178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6dc801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25040c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e00011072617465210101244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e000110726174652101012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29040c4070616c6c65745f636f6e7472616374731870616c6c65741043616c6c0404540001283c63616c6c5f6f6c645f776569676874140110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746138011c5665633c75383e0000041501446570726563617465642076657273696f6e206966205b6053656c663a3a63616c6c605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e80696e7374616e74696174655f776974685f636f64655f6f6c645f77656967687418011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0001045901446570726563617465642076657273696f6e206966205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e58696e7374616e74696174655f6f6c645f77656967687418011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736834012c436f6465486173683c543e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0002043101446570726563617465642076657273696f6e206966205b6053656c663a3a696e7374616e7469617465605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e2c75706c6f61645f636f64650c0110636f646538011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e00012c64657465726d696e69736d3104012c44657465726d696e69736d000360ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665ac646570656e6473206f6e207468652073697a65206f662074686520737570706c6965642060636f6465602e00310149662074686520636f646520616c72656164792065786973747320696e2073746f726167652069742077696c6c207374696c6c2072657475726e20604f6b6020616e642075706772616465739474686520696e2073746f726167652076657273696f6e20746f207468652063757272656e74d05b60496e737472756374696f6e576569676874733a3a76657273696f6e605d28496e737472756374696f6e57656967687473292e0055012d206064657465726d696e69736d603a20496620746869732069732073657420746f20616e79206f746865722076616c756520627574205b6044657465726d696e69736d3a3a456e666f72636564605d207468656e5d012020746865206f6e6c792077617920746f20757365207468697320636f646520697320746f2064656c65676174652063616c6c20696e746f2069742066726f6d20616e206f6666636861696e20657865637574696f6e2ebc202053657420746f205b6044657465726d696e69736d3a3a456e666f72636564605d20696620696e20646f7562742e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e005101557365205b6044657465726d696e69736d3a3a52656c61786564605d206578636c75736976656c7920666f72206e6f6e2d64657465726d696e697374696320636f64652e204966207468652075706c6f616465644901636f64652069732064657465726d696e69737469632c2073706563696679696e67205b6044657465726d696e69736d3a3a52656c61786564605d2077696c6c20626520646973726567617264656420616e646c726573756c7420696e206869676865722067617320636f7374732e2c72656d6f76655f636f6465040124636f64655f6861736834012c436f6465486173683c543e000410350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e207365745f636f6465080110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e000124636f64655f6861736834012c436f6465486173683c543e000528090150726976696c656765642066756e6374696f6e2074686174206368616e6765732074686520636f6465206f6620616e206578697374696e6720636f6e74726163742e004501546869732074616b65732063617265206f66207570646174696e6720726566636f756e747320616e6420616c6c206f74686572206e6563657373617279206f7065726174696f6e732e2052657475726e73e8616e206572726f7220696620656974686572207468652060636f64655f6861736860206f722060646573746020646f206e6f742065786973742e001823204e6f74650031015468697320646f6573202a2a6e6f742a2a206368616e6765207468652061646472657373206f662074686520636f6e747261637420696e207175657374696f6e2e2054686973206d65616e733d01746861742074686520636f6e74726163742061646472657373206973206e6f206c6f6e67657220646572697665642066726f6d2069747320636f646520686173682061667465722063616c6c696e67487468697320646973706174636861626c652e1063616c6c140110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746138011c5665633c75383e00064005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f646518011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0007643101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e31012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e0094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0039012d2054686520737570706c6965642060636f646560206973206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e746961746518011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69742d0401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736834012c436f6465486173683c543e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e000814fc496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654901636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e617279446d75737420626520737570706c6965642e1c6d6967726174650401307765696768745f6c696d697428011857656967687400091059015768656e2061206d6967726174696f6e20697320696e2070726f67726573732c207468697320646973706174636861626c652063616e206265207573656420746f2072756e206d6967726174696f6e2073746570732e610143616c6c73207468617420636f6e7472696275746520746f20616476616e63696e6720746865206d6967726174696f6e20686176652074686569722066656573207761697665642c20617320697427732068656c7066756c4501666f722074686520636861696e2e204e6f74652074686174207768696c6520746865206d6967726174696f6e20697320696e2070726f67726573732c207468652070616c6c65742077696c6c20616c736fd06c657665726167652074686520606f6e5f69646c656020686f6f6b7320746f2072756e206d6967726174696f6e2073746570732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d0404184f7074696f6e0404540199020108104e6f6e6500000010536f6d6504009902000001000031040c4070616c6c65745f636f6e747261637473107761736d2c44657465726d696e69736d00010820456e666f726365640000001c52656c617865640001000035040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39040c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c040454000104246865617274626561740801246865617274626561743d0401704865617274626561743c426c6f636b4e756d626572466f723c543e3e0001247369676e6174757265410401bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500000c38232320436f6d706c65786974793afc2d20604f284b2960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e298820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d04084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000100130626c6f636b5f6e756d62657210012c426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c75333200004104104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e6174757265000004000d040148737232353531393a3a5369676e6174757265000045040c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c040454000160346164645f72656769737472617204011c6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e00001c7841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e307365745f6964656e74697479040110696e666f4904016c426f783c543a3a4964656e74697479496e666f726d6174696f6e3e000128290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e207365745f7375627304011073756273d50401645665633c28543a3a4163636f756e7449642c2044617461293e0002248c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e38636c6561725f6964656e746974790003203901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e44726571756573745f6a756467656d656e740801247265675f696e64657869020138526567697374726172496e64657800011c6d61785f6665659902013042616c616e63654f663c543e00044094526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65c8526567697374726172733a3a3c543e3a3a67657428292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005286843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e1c7365745f666565080114696e64657869020138526567697374726172496e64657800010c6665659902013042616c616e63654f663c543e00061c1901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e387365745f6163636f756e745f6964080114696e64657869020138526567697374726172496e64657800010c6e65778d0201504163636f756e7449644c6f6f6b75704f663c543e00071cbc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e287365745f6669656c6473080114696e64657869020138526567697374726172496e6465780001186669656c6473300129013c543a3a4964656e74697479496e666f726d6174696f6e206173204964656e74697479496e666f726d6174696f6e50726f76696465723e3a3a0a4669656c64734964656e74696669657200081ca853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e4470726f766964655f6a756467656d656e741001247265675f696e64657869020138526567697374726172496e6465780001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e74dd04015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e7469747934011c543a3a4861736800093cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e5d012d20606964656e74697479603a205468652068617368206f6620746865205b604964656e74697479496e666f726d6174696f6e50726f7669646572605d20666f72207468617420746865206a756467656d656e742069732c202070726f76696465642e00b04e6f74653a204a756467656d656e747320646f206e6f74206170706c7920746f206120757365726e616d652e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e346b696c6c5f6964656e746974790401187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000a30410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e1c6164645f73756208010c7375628d0201504163636f756e7449644c6f6f6b75704f663c543e000110646174615504011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c7375628d0201504163636f756e7449644c6f6f6b75704f663c543e000110646174615504011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c7375628d0201504163636f756e7449644c6f6f6b75704f663c543e000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e586164645f757365726e616d655f617574686f726974790c0124617574686f726974798d0201504163636f756e7449644c6f6f6b75704f663c543e00011873756666697838011c5665633c75383e000128616c6c6f636174696f6e10010c753332000f14550141646420616e20604163636f756e744964602077697468207065726d697373696f6e20746f206772616e7420757365726e616d65732077697468206120676976656e20607375666669786020617070656e6465642e00450154686520617574686f726974792063616e206772616e7420757020746f2060616c6c6f636174696f6e6020757365726e616d65732e20546f20746f702075702074686520616c6c6f636174696f6e206f7249016368616e676520746865206163636f756e74207573656420746f206772616e7420757365726e616d65732c20746869732063616c6c2063616e20626520757365642077697468207468652075706461746564cc706172616d657465727320746f206f766572777269746520746865206578697374696e6720636f6e66696775726174696f6e2e6472656d6f76655f757365726e616d655f617574686f7269747908011873756666697838011c5665633c75383e000124617574686f726974798d0201504163636f756e7449644c6f6f6b75704f663c543e001004c452656d6f76652060617574686f72697479602066726f6d2074686520757365726e616d6520617574686f7269746965732e407365745f757365726e616d655f666f7210010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000120757365726e616d6538011c5665633c75383e0001247369676e6174757265e10401704f7074696f6e3c543a3a4f6666636861696e5369676e61747572653e0001387573655f616c6c6f636174696f6e200110626f6f6c0011340d015365742074686520757365726e616d6520666f72206077686f602e204d7573742062652063616c6c6564206279206120757365726e616d6520617574686f726974792e005901496620607573655f616c6c6f636174696f6e60206973207365742c2074686520617574686f72697479206d7573742068617665206120757365726e616d6520616c6c6f636174696f6e20617661696c61626c6520746f45017370656e642e204f74686572776973652c2074686520617574686f726974792077696c6c206e65656420746f207075742075702061206465706f73697420666f72207265676973746572696e672074686524757365726e616d652e00b055736572732063616e20656974686572207072652d7369676e20746865697220757365726e616d6573206f7248616363657074207468656d206c617465722e003c557365726e616d6573206d7573743ad820202d204f6e6c7920636f6e7461696e206c6f776572636173652041534349492063686172616374657273206f72206469676974732e350120202d205768656e20636f6d62696e656420776974682074686520737566666978206f66207468652069737375696e6720617574686f72697479206265205f6c657373207468616e5f207468656020202020604d6178557365726e616d654c656e677468602e3c6163636570745f757365726e616d65040120757365726e616d655101012c557365726e616d653c543e0012084d01416363657074206120676976656e20757365726e616d65207468617420616e2060617574686f7269747960206772616e7465642e205468652063616c6c206d75737420696e636c756465207468652066756c6c88757365726e616d652c20617320696e2060757365726e616d652e737566666978602e5c72656d6f76655f657870697265645f617070726f76616c040120757365726e616d655101012c557365726e616d653c543e00130c610152656d6f766520616e206578706972656420757365726e616d6520617070726f76616c2e2054686520757365726e616d652077617320617070726f76656420627920616e20617574686f7269747920627574206e657665725501616363657074656420627920746865207573657220616e64206d757374206e6f77206265206265796f6e64206974732065787069726174696f6e2e205468652063616c6c206d75737420696e636c756465207468659c66756c6c20757365726e616d652c20617320696e2060757365726e616d652e737566666978602e507365745f7072696d6172795f757365726e616d65040120757365726e616d655101012c557365726e616d653c543e0014043101536574206120676976656e20757365726e616d6520617320746865207072696d6172792e2054686520757365726e616d652073686f756c6420696e636c75646520746865207375666669782e3c756e62696e645f757365726e616d65040120757365726e616d655101012c557365726e616d653c543e00150c59015374617274207468652070726f63657373206f662072656d6f76696e67206120757365726e616d6520627920706c6163696e6720697420696e2074686520756e62696e64696e6720757365726e616d6573206d61702e21014f6e63652074686520677261636520706572696f6420686173207061737365642c2074686520757365726e616d652063616e2062652064656c657465642062792063616c6c696e67c05b72656d6f76655f757365726e616d655d2863726174653a3a43616c6c3a3a72656d6f76655f757365726e616d65292e3c72656d6f76655f757365726e616d65040120757365726e616d655101012c557365726e616d653c543e00160861015065726d616e656e746c792064656c657465206120757365726e616d6520776869636820686173206265656e20756e62696e64696e6720666f72206c6f6e676572207468616e2074686520677261636520706572696f642e490143616c6c657220697320726566756e64656420746865206665652069662074686520757365726e616d65206578706972656420616e64207468652072656d6f76616c20776173207375636365737366756c2e346b696c6c5f757365726e616d65040120757365726e616d655101012c557365726e616d653c543e0017085d0143616c6c2077697468205b466f7263654f726967696e5d2863726174653a3a436f6e6669673a3a466f7263654f726967696e292070726976696c656765732077686963682064656c65746573206120757365726e616d65ac616e6420736c617368657320616e79206465706f736974206173736f63696174656420776974682069742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e49040c3c70616c6c65745f6964656e74697479186c6567616379304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c4d040190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c617955040110446174610001146c6567616c550401104461746100010c776562550401104461746100011072696f745504011044617461000114656d61696c550401104461746100013c7067705f66696e6765727072696e74d10401404f7074696f6e3c5b75383b2032305d3e000114696d616765550401104461746100011c74776974746572550401104461746100004d040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015104045300000400cd0401185665633c543e0000510400000408550455040055040c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e6500000010526177300400590400000100105261773104005d0400000200105261773204006104000003001052617733040065040000040010526177340400480000050010526177350400690400000600105261773604006d0400000700105261773704007104000008001052617738040075040000090010526177390400790400000a0014526177313004007d0400000b001452617731310400810400000c001452617731320400850400000d001452617731330400890400000e0014526177313404008d0400000f00145261773135040091040000100014526177313604004901000011001452617731370400950400001200145261773138040099040000130014526177313904009d040000140014526177323004009102000015001452617732310400a104000016001452617732320400a504000017001452617732330400a904000018001452617732340400ad04000019001452617732350400b10400001a001452617732360400b50400001b001452617732370400b90400001c001452617732380400bd0400001d001452617732390400c10400001e001452617733300400c50400001f001452617733310400c90400002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c5368615468726565323536040004000025000059040000030000000008005d040000030100000008006104000003020000000800650400000303000000080069040000030500000008006d040000030600000008007104000003070000000800750400000308000000080079040000030900000008007d040000030a000000080081040000030b000000080085040000030c000000080089040000030d00000008008d040000030e000000080091040000030f0000000800950400000311000000080099040000031200000008009d04000003130000000800a104000003150000000800a504000003160000000800a904000003170000000800ad04000003180000000800b104000003190000000800b5040000031a0000000800b9040000031b0000000800bd040000031c0000000800c1040000031d0000000800c5040000031e0000000800c9040000031f0000000800cd04000002510400d10404184f7074696f6e0404540191020108104e6f6e6500000010536f6d65040091020000010000d504000002d90400d9040000040800550400dd040c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000e10404184f7074696f6e04045401e5040108104e6f6e6500000010536f6d650400e5040000010000e504082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904000d040148656432353531393a3a5369676e61747572650000001c5372323535313904000d040148737232353531393a3a5369676e61747572650001001445636473610400e904014065636473613a3a5369676e617475726500020000e904000003410000000800ed040c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001500c62696404011476616c756518013c42616c616e63654f663c542c20493e000024dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0061015061796d656e743a205468652067726f757027732043616e646964617465204465706f7369742077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e14756e62696400011cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e14766f7563680c010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e000244410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e1c756e766f75636800031c29014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e10766f746508012463616e6469646174658d0201504163636f756e7449644c6f6f6b75704f663c543e00011c617070726f7665200110626f6f6c0004208441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e34646566656e6465725f766f746504011c617070726f7665200110626f6f6c00051c8841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e187061796f757400062841015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e2c77616976655f7265706179040118616d6f756e7418013c42616c616e63654f663c542c20493e0007084d01526570617920746865207061796d656e742070726576696f75736c7920676976656e20746f20746865206d656d626572207769746820746865207369676e6564206f726967696e2c2072656d6f766520616e79e470656e64696e67207061796d656e74732c20616e6420656c6576617465207468656d2066726f6d2072616e6b203020746f2072616e6b20312e34666f756e645f736f636965747918011c666f756e6465728d0201504163636f756e7449644c6f6f6b75704f663c543e00012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e00011472756c657338011c5665633c75383e00084448466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e0040436f6d706c65786974793a204f28312920646973736f6c7665000914b0446973736f6c76652074686520736f636965747920616e642072656d6f766520616c6c206d656d626572732e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e586a756467655f73757370656e6465645f6d656d62657208010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c666f7267697665200110626f6f6c000a382901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642066726f6d2074686520466f756e6465722e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e387365745f706172616d657465727310012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e000b3061014368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f636965747920616e6420746865206d6178696d756d206e756d626572206f66206e65772063616e6469646174657368696e20612073696e676c6520696e74616b6520706572696f642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642062792074686520466f756e6465722e002c506172616d65746572733a55012d20606d61785f6d656d6265727360202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e2054686973206d757374206265206e6f206c6573739420207468616e207468652063757272656e74206e756d626572206f66206d656d626572732e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702e3870756e6973685f736b6570746963000c08550150756e6973682074686520736b65707469632077697468206120737472696b65206966207468657920646964206e6f7420766f7465206f6e20612063616e6469646174652e2043616c6c61626c65206279207468652863616e6469646174652e40636c61696d5f6d656d62657273686970000d080d015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865f87468652063616e6469646174652c20616e64206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642e44626573746f775f6d656d6265727368697004012463616e646964617465000130543a3a4163636f756e744964000e0c61015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e206f66207468655901466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e64656420616e64206f6e6c79207768656e207468652063616e646964617465206973206e6f7444636c6561726c792072656a65637465642e386b69636b5f63616e64696461746504012463616e646964617465000130543a3a4163636f756e744964000f145d0152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e55016f662074686520466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642c20616e64206f6e6c79207768656e207468657920646f206e6f745868617665206120636c65617220617070726f76616c2e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e4072657369676e5f63616e64696461637900100c510152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c79206279207468652063616e6469646174652e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e3864726f705f63616e64696461746504012463616e646964617465000130543a3a4163636f756e7449640011142d0152656d6f76652061206063616e646964617465602773206661696c6564206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c6520627920616e7919017369676e6564206f726967696e20627574206f6e6c792061742074686520656e64206f66207468652073756273657175656e7420726f756e6420616e64206f6e6c7920666f72c0612063616e6469646174652077697468206d6f72652072656a656374696f6e73207468616e20617070726f76616c732e00c854686520626964206465706f736974206973206c6f737420616e642074686520766f75636865722069732062616e6e65642e44636c65616e75705f63616e64696461637908012463616e646964617465000130543a3a4163636f756e74496400010c6d617810010c75333200120ce452656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520676976656e206063616e646964617465602e0059014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c79206166746572207468652063616e64696461746527732063616e64696461637920697320656e6465642e44636c65616e75705f6368616c6c656e676508013c6368616c6c656e67655f726f756e64100128526f756e64496e64657800010c6d617810010c75333200130c3d0152656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520646566656e64657220696e2074686520676976656e20606368616c6c656e67655f726f756e64602e0041014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c7920616674657220746865206368616c6c656e676520726f756e6420697320656e6465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1040c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001243061735f7265636f766572656408011c6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000020a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e347365745f7265636f76657265640801106c6f73748d0201504163636f756e7449644c6f6f6b75704f663c543e00011c726573637565728d0201504163636f756e7449644c6f6f6b75704f663c543e0001200d01416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e3c6372656174655f7265636f766572790c011c667269656e6473590101445665633c543a3a4163636f756e7449643e0001247468726573686f6c648901010c75313600013064656c61795f706572696f64100170426c6f636b4e756d62657246726f6d50726f76696465724f663c543e00024059014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e44696e6974696174655f7265636f7665727904011c6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e00032ce8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e38766f7563685f7265636f766572790801106c6f73748d0201504163636f756e7449644c6f6f6b75704f663c543e00011c726573637565728d0201504163636f756e7449644c6f6f6b75704f663c543e0004302501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e38636c61696d5f7265636f7665727904011c6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e000524f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e38636c6f73655f7265636f7665727904011c726573637565728d0201504163636f756e7449644c6f6f6b75704f663c543e00062c110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e3c72656d6f76655f7265636f7665727900072c590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e4063616e63656c5f7265636f766572656404011c6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e00081cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5040c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f746865720401187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e736665720801187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65f90401b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e0001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65f90401b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765748d02018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9040c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000fd040c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963010501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963010501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963010501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963010501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b6d0101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e010504184f7074696f6e040454016d010108104e6f6e6500000010536f6d6504006d01000001000005050c3870616c6c65745f676c7574746f6e1870616c6c65741043616c6c04045400011444696e697469616c697a655f70616c6c65740801246e65775f636f756e7410010c7533320001347769746e6573735f636f756e74c8012c4f7074696f6e3c7533323e0000183d01496e697469616c697a65207468652070616c6c65742e2053686f756c642062652063616c6c6564206f6e63652c206966206e6f2067656e65736973207374617465207761732070726f76696465642e0051016063757272656e745f636f756e7460206973207468652063757272656e74206e756d626572206f6620656c656d656e747320696e2060547261736844617461602e20546869732063616e2062652073657420746fb0604e6f6e6560207768656e207468652070616c6c657420697320666972737420696e697469616c697a65642e0049014f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e204120676f6f642064656661756c7420666f7220606e65775f636f756e74602069732060355f303030602e2c7365745f636f6d7075746504011c636f6d7075746579010120466978656455363400010c410153657420686f77206d756368206f66207468652072656d61696e696e6720607265665f74696d6560207765696768742073686f756c6420626520636f6e73756d656420627920606f6e5f69646c65602e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e2c7365745f73746f7261676504011c73746f7261676579010120466978656455363400021c490153657420686f77206d756368206f66207468652072656d61696e696e67206070726f6f665f73697a6560207765696768742073686f756c6420626520636f6e73756d656420627920606f6e5f69646c65602e00490160312e3060206d65616e73207468617420616c6c2072656d61696e696e67206070726f6f665f73697a65602077696c6c20626520636f6e73756d65642e2054686520506f562062656e63686d61726b696e676101726573756c74732074686174206172652075736564206865726520617265206c696b656c7920616e206f7665722d657374696d6174696f6e2e203130302520696e74656e64656420636f6e73756d7074696f6e2077696c6ce47468657265666f7265207472616e736c61746520746f206c657373207468616e20313030252061637475616c20636f6e73756d7074696f6e2e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e14626c6f617404011c67617262616765090501545665633c5b75383b2056414c55455f53495a455d3e0003040501496e6372656173652074686520626c6f636b2073697a6520627920696e636c7564696e67207468652073706563696669656420676172626167652062797465732e407365745f626c6f636b5f6c656e677468040130626c6f636b5f6c656e677468790101204669786564553634000418410153657420686f77206d756368206f662074686520626c6f636b206c656e6774682073686f756c642062652066696c6c656420776974682074726173682064617461206f6e206561636820626c6f636b2e00550160312e3060206d65616e73207468617420616c6c20626c6f636b2073686f756c642062652066696c6c65642e2049662073657420746f2060312e30602c2073746f726167652070726f6f662073697a652077696c6c4820626520636c6f736520746f207a65726f2e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e09050000020d05000d0500000300040000080011050c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573150501305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1505000002340019050c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616c8d0201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f747970651d0501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706585010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706585010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706585010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465788901010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706585010130543a3a50726f787954797065000114696e6465788901010c75313600011868656967687469020144426c6f636b4e756d626572466f723c543e0001246578745f696e6465786902010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e39012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f206070757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c8d0201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c8d0201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e0001107265616c8d0201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f747970651d0501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d0504184f7074696f6e0404540185010108104e6f6e6500000010536f6d6504008501000001000021050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573590101445665633c543a3a4163636f756e7449643e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c648901010c7531360001446f746865725f7369676e61746f72696573590101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74250501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c648901010c7531360001446f746865725f7369676e61746f72696573590101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74250501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c648901010c7531360001446f746865725f7369676e61746f72696573590101445665633c543a3a4163636f756e7449643e00012474696d65706f696e749501017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c648901010c7531360001446f746865725f7369676e61746f72696573590101445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e250504184f7074696f6e0404540195010108104e6f6e6500000010536f6d6504009501000001000029050c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c0804540004490001283870726f706f73655f626f756e747908011476616c75659902013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f69646902012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f69646902012c426f756e7479496e64657800011c63757261746f728d0201504163636f756e7449644c6f6f6b75704f663c543e00010c6665659902013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f69646902012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f69646902012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f69646902012c426f756e7479496e64657800012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f69646902012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f69646902012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f69646902012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e6c617070726f76655f626f756e74795f776974685f63757261746f720c0124626f756e74795f69646902012c426f756e7479496e64657800011c63757261746f728d0201504163636f756e7449644c6f6f6b75704f663c543e00010c6665659902013c42616c616e63654f663c542c20493e00092cd4417070726f766520626f756e74727920616e642070726f706f736520612063757261746f722073696d756c74616e656f75736c792e5501546869732063616c6c20697320612073686f727463757420746f2063616c6c696e672060617070726f76655f626f756e74796020616e64206070726f706f73655f63757261746f72602073657061726174656c792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e00902d2060626f756e74795f6964603a20426f756e747920494420746f20617070726f76652ef82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e0034232320436f6d706c65786974791c2d204f2831292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d050c2c70616c6c65745f746970731870616c6c65741043616c6c080454000449000118387265706f72745f617765736f6d65080118726561736f6e38011c5665633c75383e00010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00004059015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e0034232320436f6d706c6578697479982d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e272c726574726163745f7469700401106861736834011c543a3a486173680001405101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e0034232320436f6d706c6578697479202d20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e1c7469705f6e65770c0118726561736f6e38011c5665633c75383e00010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001247469705f76616c75659902013c42616c616e63654f663c542c20493e00024cf04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e0034232320436f6d706c657869747921012d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052600c7469700801106861736834011c543a3a486173680001247469705f76616c75659902013c42616c616e63654f663c542c20493e000354b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e0034232320436f6d706c657869747961012d20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572745901202074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e24636c6f73655f7469700401106861736834011c543a3a486173680004345c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e0034232320436f6d706c65786974795d012d203a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460590120206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e94202074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e24736c6173685f7469700401106861736834011c543a3a486173680005289452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e0034232320436f6d706c65786974791c2d204f2831292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869646902014c543a3a41737365744964506172616d6574657200011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e636599020128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869646902014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869646902014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869646902014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869646902014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869646902014c543a3a41737365744964506172616d6574657200012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869646902014c543a3a41737365744964506172616d657465720001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869646902014c543a3a41737365744964506172616d657465720001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869646902014c543a3a41737365744964506172616d65746572000118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869646902014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869646902014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869646902014c543a3a41737365744964506172616d657465720001186973737565728d0201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a65728d0201504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869646902014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869646902014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869646902014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869646902014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e0001186973737565728d0201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e636599020128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869646902014c543a3a41737365744964506172616d6574657200012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869646902014c543a3a41737365744964506172616d6574657200012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869646902014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869646902014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869646902014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869646902014c543a3a41737365744964506172616d65746572000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e35050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869646902014c543a3a41737365744964506172616d6574657200011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e636599020128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869646902014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869646902014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869646902014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869646902014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869646902014c543a3a41737365744964506172616d6574657200012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869646902014c543a3a41737365744964506172616d657465720001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869646902014c543a3a41737365744964506172616d657465720001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869646902014c543a3a41737365744964506172616d65746572000118736f757263658d0201504163636f756e7449644c6f6f6b75704f663c543e000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869646902014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869646902014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869646902014c543a3a41737365744964506172616d657465720001186973737565728d0201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a65728d0201504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869646902014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869646902014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869646902014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869646902014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e0001186973737565728d0201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e636599020128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869646902014c543a3a41737365744964506172616d6574657200012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869646902014c543a3a41737365744964506172616d6574657200012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869646902014c543a3a41737365744964506172616d657465720001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e8d0201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e7499020128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869646902014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869646902014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869646902014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869646902014c543a3a41737365744964506172616d6574657200010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869646902014c543a3a41737365744964506172616d65746572000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39050c3070616c6c65745f62656566791870616c6c65741043616c6c04045400011c507265706f72745f646f75626c655f766f74696e6708014865717569766f636174696f6e5f70726f6f663d05018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e747265706f72745f646f75626c655f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f663d05018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e487265706f72745f666f726b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66590501ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600030c3d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e6c7265706f72745f666f726b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66590501ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f660004203d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e687265706f72745f6675747572655f626c6f636b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66690501e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f6600050c5d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e8c7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66690501e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f6675020140543a3a4b65794f776e657250726f6f660006205d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d05084873705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d626572011008496401cd03245369676e617475726501410500080114666972737445050188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e6445050188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e000041050c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400e904014065636473613a3a5369676e617475726500004505084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d626572011008496401cd03245369676e6174757265014105000c0128636f6d6d69746d656e7449050148436f6d6d69746d656e743c4e756d6265723e0001086964cd03010849640001247369676e6174757265410501245369676e6174757265000049050c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61644d05011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f72536574496400004d050c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f616400000400510501785665633c2842656566795061796c6f616449642c205665633c75383e293e00005105000002550500550500000408610438005905084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201650208496401cd0334416e63657374727950726f6f66015d05000c0110766f7465450501b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f665d050134416e63657374727950726f6f660001186865616465726502011848656164657200005d05084473705f6d6d725f7072696d69746976657334416e63657374727950726f6f66041048617368013400100128707265765f7065616b73150501245665633c486173683e00013c707265765f6c6561665f636f756e7430010c7536340001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73610501405665633c287536342c2048617368293e000061050000026505006505000004083034006905084873705f636f6e73656e7375735f626565667958467574757265426c6f636b566f74696e6750726f6f6608184e756d626572011008496401cd0300040110766f746545050198566f74654d6573736167653c4e756d6265722c2049642c2049643a3a5369676e61747572653e00006d050c3870616c6c65745f6c6f74746572791870616c6c65741043616c6c040454000110286275795f7469636b657404011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00002c884275792061207469636b657420746f20656e74657220746865206c6f74746572792e000101546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0901736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c6420737563636565642e000d014966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c11017768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75ac73686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c4546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c7304011463616c6c734502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011811015365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e001d01546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e250170726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d0546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279100114707269636518013042616c616e63654f663c543e0001186c656e677468100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e000118726570656174200110626f6f6c000228c453746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e002c506172616d65746572733a009c2a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e39012a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e45012a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee02a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174000310fc49662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ebc546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e71050c2870616c6c65745f6e69731870616c6c65741043616c6c04045400011c24706c6163655f626964080118616d6f756e749902013042616c616e63654f663c543e0001206475726174696f6e10010c75333200002c30506c6163652061206269642e003d014f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e0031012d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642c20616e642069662f7768656ecc2020636f6e736f6c6964617465642c2072656d6f7665642e204d757374206265206174206c6561737420604d696e426964602e49012d20606475726174696f6e603a20546865206e756d626572206f6620706572696f6473206265666f726520776869636820746865206e65776c7920636f6e736f6c69646174656420626964206d6179206265fc20207468617765642e204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e0034436f6d706c657869746965733aac2d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f626964080118616d6f756e749902013042616c616e63654f663c543e0001206475726174696f6e10010c75333200011c805265747261637420612070726576696f75736c7920706c61636564206269642e005d014f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d616374697665206269646c6f662060616d6f756e746020666f7220606475726174696f6e602e00ac2d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ebc2d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e3066756e645f6465666963697400020cf0456e7375726520776520686176652073756666696369656e742066756e64696e6720666f7220616c6c20706f74656e7469616c207061796f7574732e00b42d20606f726967696e603a204d757374206265206163636570746564206279206046756e644f726967696e602e30746861775f70726976617465080114696e6465786902013052656365697074496e6465780001406d617962655f70726f706f7274696f6e7505014c4f7074696f6e3c5065727175696e74696c6c3e0003205d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0059012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f662074686520726563656970742060696e646578602061738c202077656c6c20617320616e792066756e6769626c6520636f756e746572706172742e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e5d012d2060706f7274696f6e603a2049662060536f6d65602c207468656e206f6e6c792074686520676976656e20706f7274696f6e206f662074686520726563656970742073686f756c64206265207468617765642e2049668c2020604e6f6e65602c207468656e20616c6c206f662069742073686f756c642062652e34746861775f636f6d6d756e616c040114696e6465786902013052656365697074496e6465780004185d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0061012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652066756e6769626c6520636f756e74657270617274582020666f7220726563656970742060696e646578602e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e24636f6d6d756e696679040114696e6465786902013052656365697074496e6465780005043d014d616b6520612070726976617465207265636569707420636f6d6d756e616c20616e64206372656174652066756e6769626c6520636f756e746572706172747320666f7220697473206f776e65722e24707269766174697a65040114696e6465786902013052656365697074496e64657800060439014d616b65206120636f6d6d756e616c2072656365697074207072697661746520616e64206275726e2066756e6769626c6520636f756e74657270617274732066726f6d20697473206f776e65722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e750504184f7074696f6e04045401b5010108104e6f6e6500000010536f6d650400b501000001000079050c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e000040090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00ac604974656d4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a61012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e657720636f6c6c656374696f6e2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c000144190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0049012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e6577206974656d2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e39012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c207375706572757365723420207065726d697373696f6e7321016f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573737d05013844657374726f795769746e65737300023c9c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00645765696768743a20604f286e202b206d29602077686572653a542d20606e203d207769746e6573732e6974656d7360782d20606d203d207769746e6573732e6974656d5f6d657461646174617360682d206061203d207769746e6573732e6174747269627574657360106d696e740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e00032ca04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e004101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ec82d20606974656d603a20546865206974656d2076616c7565206f6620746865206974656d20746f206265206d696e7465642ed82d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e746564206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012c636865636b5f6f776e6572810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00043c5844657374726f7920612073696e676c65206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265206275726e65642e51012d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c657373207468657820206974656d206973206f776e656420627920746869732076616c75652e00b4456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e00385765696768743a20604f283129607c4d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e000544c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00b454686973207265736574732074686520617070726f766564206163636f756e74206f6620746865206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642ec42d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c10101385665633c543a3a4974656d49643e0006449852656576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f6620746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e2829296018667265657a65080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000728c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652066726f7a656e2eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207468617765642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f2831296044667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000924fc446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e0064456d6974732060436f6c6c656374696f6e46726f7a656e602e00385765696768743a20604f283129603c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000a24dc52652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265207468617765642e0064456d6974732060436f6c6c656374696f6e546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001186973737565728d0201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a65728d0201504163636f756e7449644c6f6f6b75704f663c543e000c30d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e000d381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e004d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265f865697468657220746865206f776e6572206f662074686520606974656d60206f72207468652061646d696e206f662074686520636f6c6c656374696f6e2e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e15012d20606974656d603a20546865206974656d206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e001901496d706f7274616e74204e4f54453a205468652060617070726f76656460206163636f756e7420676574732072657365742061667465722065616368207472616e736665722e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001506d617962655f636865636b5f64656c6567617465810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e40110143616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e206974656d20627920612064656c65676174652e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3bfc2d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652060636f6c6c656374696f6e603be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e0d012d20606974656d603a20546865206974656d206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e51012d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296044666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e0001186973737565728d0201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a65728d0201504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c00012469735f66726f7a656e200110626f6f6c000f4094416c746572207468652061747472696275746573206f66206120676976656e206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00ac2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2e982d20606f776e6572603a20546865206e6577204f776e6572206f662074686973206974656d2ea02d2060697373756572603a20546865206e657720497373756572206f662074686973206974656d2e982d206061646d696e603a20546865206e65772041646d696e206f662074686973206974656d2ea82d2060667265657a6572603a20546865206e657720467265657a6572206f662074686973206974656d2e51012d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e206974656d206f66207468697320636f6c6c656374696f6e2e39012d206069735f66726f7a656e603a2057686574686572207468697320636f6c6c656374696f6e2069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e0456d69747320604974656d5374617475734368616e67656460207769746820746865206964656e74697479206f6620746865206974656d2e00385765696768743a20604f28312960347365745f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565c5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001044a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2901604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f6174747269627574650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795101016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e001138b0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f28312960307365745f6d65746164617461100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461bd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0012447453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640013347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461bd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0014408853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400153090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001628110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c75333200172ce053657420746865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00e44e6f74653a20546869732066756e6374696f6e2063616e206f6e6c792073756363656564206f6e63652070657220636f6c6c656374696f6e2e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365a903015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00182c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520617373657420606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e001924a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d050c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d736902010c7533320001386974656d5f6d65746164617461736902010c753332000128617474726962757465736902010c7533320000810504184f7074696f6e040454018d020108104e6f6e6500000010536f6d6504008d02000001000085050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e8d0201504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696789050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696789050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e657373a505013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461a90501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f8d0201504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967b10501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000110646573748d0201504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c10101385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e67738d050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696e810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e65728d0201504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e66696789050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65c801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d10101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579c501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f6173ac01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d10101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579c501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d10101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579c501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c65676174658d0201504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e657373b505017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461cd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461cd010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e677395050115014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c542c20493e2c20543a3a0a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365a903015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572810501704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073b905019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656dc801444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365d50101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100150426c6f636b4e756d626572466f723c542c20493e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365d50101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461c5050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265e5040150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c011064617461c905016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265e5040150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e67738d050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c79c8012c4f7074696f6e3c7533323e0001346d696e745f73657474696e6773950501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e00008d050c2c70616c6c65745f6e66747314747970657320426974466c616773040454019105000400300144436f6c6c656374696f6e53657474696e67000091050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f73697452657175697265640010000095050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065990501584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365a90301344f7074696f6e3c50726963653e00012c73746172745f626c6f636bc8014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636bc8014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e67739d0501304974656d53657474696e6773000099050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e4964000200009d050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401a10500040030012c4974656d53657474696e670000a1050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040000a5050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d65746164617461736902010c7533320001306974656d5f636f6e666967736902010c753332000128617474726962757465736902010c7533320000a90504184f7074696f6e04045401ad050108104e6f6e6500000010536f6d650400ad050000010000ad050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656dc801384f7074696f6e3c4974656d49643e0001286d696e745f7072696365a903013c4f7074696f6e3c42616c616e63653e0000b1050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e67739d0501304974656d53657474696e67730000b5050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000b9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd05045300000400c10501185665633c543e0000bd050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000c105000002bd0500c5050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733502015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365a903013c4f7074696f6e3c42616c616e63653e0000c9050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733502015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365d10101744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e650000cd050c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c65741043616c6c040454000108346672616374696f6e616c697a651401446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e0001246672616374696f6e73180144417373657442616c616e63654f663c543e000044ac4c6f636b20746865204e465420616e64206d696e742061206e65772066756e6769626c652061737365742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0101546865206f726967696e206d75737420626520746865206f776e6572206f6620746865204e465420746865792061726520747279696e6720746f206c6f636b2e009c604465706f736974602066756e6473206f662073656e646572206172652072657365727665642e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602ee42d206061737365745f6964603a20546865204944206f6620746865206e65772061737365742e204974206d757374206e6f742065786973742eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602e1d012d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c207265636569766520746865206e65776c7920637265617465642061737365742e0d012d20606672616374696f6e73603a2054686520746f74616c2069737375616e6365206f6620746865206e65776c79206372656174656420617373657420636c6173732e00c0456d69747320604e66744672616374696f6e616c697a656460206576656e74207768656e207375636365737366756c2e14756e6966791001446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e00014045014275726e2074686520746f74616c2069737375616e6365206f66207468652066756e6769626c6520617373657420616e642072657475726e2028756e6c6f636b2920746865206c6f636b6564204e46542e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e00d0604465706f736974602066756e64732077696c6c2062652072657475726e656420746f206061737365745f63726561746f72602e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e29012d206061737365745f6964603a20546865204944206f6620746865206173736574206265696e672072657475726e656420616e642064657374726f7965642e204d757374206d61746368fc746865206f726967696e616c204944206f662074686520637265617465642061737365742c20636f72726573706f6e64696e6720746f20746865204e46542eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602efc2d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c20726563656976652074686520756e6966696564204e46542e00a4456d69747320604e6674556e696669656460206576656e74207768656e207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1050c3470616c6c65745f73616c6172791870616c6c65741043616c6c08045400044900011c10696e697400000c74537461727420746865206669727374207061796f7574206379636c652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e1062756d7000010c51014d6f766520746f206e657874207061796f7574206379636c652c20617373756d696e672074686174207468652070726573656e7420626c6f636b206973206e6f772077697468696e2074686174206379636c652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e18696e6475637400020498496e64756374206f6e6573656c6620696e746f20746865207061796f75742073797374656d2e20726567697374657200031858526567697374657220666f722061207061796f75742e00450157696c6c206f6e6c7920776f726b2069662077652061726520696e207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c6520737461727465642e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602e187061796f757400041844526571756573742061207061796f75742e00510157696c6c206f6e6c7920776f726b20696620776520617265206166746572207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c65c87374617274656420627574206279206e6f206d6f7265207468616e20605061796f7574506572696f646020626c6f636b732e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602e307061796f75745f6f7468657204012c62656e6566696369617279000130543a3a4163636f756e74496400051ca0526571756573742061207061796f757420746f2061207365636f6e64617279206163636f756e742e00510157696c6c206f6e6c7920776f726b20696620776520617265206166746572207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c65c87374617274656420627574206279206e6f206d6f7265207468616e20605061796f7574506572696f646020626c6f636b732e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602ec02d206062656e6566696369617279603a20546865206163636f756e7420746f2072656365697665207061796d656e742e34636865636b5f7061796d656e7400061c5d015570646174652061207061796d656e742773207374617475733b206966206974206661696c65642c20616c7465722074686520737461746520736f20746865207061796d656e742063616e20626520726574726965642e00490154686973206d7573742062652063616c6c65642077697468696e207468652073616d65206379636c6520617320746865206661696c6564207061796d656e742e2049742077696c6c206661696c207769746878604576656e743a3a4e6f7443757272656e7460206f74686572776973652e0049012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602077686f2068617380202072656365697665642061207061796d656e742074686973206379636c652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5050c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c65741043616c6c0804540004490001301062756d7004010c77686f000130543a3a4163636f756e74496400001c6c42756d7020746865207374617465206f662061206d656d6265722e001d01546869732077696c6c2064656d6f74652061206d656d6265722077686f736520606c6173745f70726f6f6660206973206e6f77206265796f6e642074686569722072616e6b2773486064656d6f74696f6e5f706572696f64602e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742edc2d206077686f603a2041206d656d626572206163636f756e742077686f736520737461746520697320746f20626520757064617465642e287365745f706172616d73040118706172616d73f101014c426f783c506172616d734f663c542c20493e3e0001104c5365742074686520706172616d65746572732e00f02d20606f726967696e603a20416e206f726967696e20636f6d706c79696e6720776974682060506172616d734f726967696e60206f7220726f6f742eb82d2060706172616d73603a20546865206e657720706172616d657465727320666f72207468652070616c6c65742e287365745f61637469766504012469735f616374697665200110626f6f6c0002109853657420776865746865722061206d656d62657220697320616374697665206f72206e6f742e00d02d20606f726967696e603a204120605369676e656460206f726967696e206f662061206d656d6265722773206163636f756e742ebc2d206069735f616374697665603a206074727565602069666620746865206d656d626572206973206163746976652e1c617070726f766508010c77686f000130543a3a4163636f756e74496400011c61745f72616e6b8901013052616e6b4f663c542c20493e000324ac417070726f76652061206d656d62657220746f20636f6e74696e75652061742074686569722072616e6b2e005d01546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b2c20746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2e0021016077686f60206d75737420616c726561647920626520747261636b656420627920746869732070616c6c657420666f72207468697320746f206861766520616e206566666563742e00f82d20606f726967696e603a20416e206f726967696e207768696368207361746973666965732060417070726f76654f726967696e60206f7220726f6f742ea82d206077686f603a2041206d656d6265722028692e652e206f66206e6f6e2d7a65726f2072616e6b292e802d206061745f72616e6b603a205468652072616e6b206f66206d656d6265722e18696e6475637404010c77686f000130543a3a4163636f756e744964000410cc496e74726f647563652061206e657720616e6420756e72616e6b65642063616e646964617465202872616e6b207a65726f292e00f42d20606f726967696e603a20416e206f726967696e207768696368207361746973666965732060496e647563744f726967696e60206f7220726f6f742e31012d206077686f603a20546865206163636f756e74204944206f66207468652063616e64696461746520746f20626520696e64756374656420616e64206265636f6d652061206d656d6265722e1c70726f6d6f746508010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b8901013052616e6b4f663c542c20493e000518cc496e6372656d656e74207468652072616e6b206f6620612072616e6b656420616e6420747261636b6564206163636f756e742e0041012d20606f726967696e603a20416e206f726967696e20776869636820736174697366696573206050726f6d6f74654f726967696e60207769746820612060537563636573736020726573756c74206f6670202060746f5f72616e6b60206f72206d6f7265206f7220726f6f742e09012d206077686f603a20546865206163636f756e74204944206f6620746865206d656d62657220746f2062652070726f6d6f74656420746f2060746f5f72616e6b602ed42d2060746f5f72616e6b603a204f6e65206d6f7265207468616e207468652063757272656e742072616e6b206f66206077686f602e3070726f6d6f74655f6661737408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b8901013052616e6b4f663c542c20493e000a141501466173742070726f6d6f74696f6e732063616e20736b69702072616e6b7320616e642069676e6f72652074686520606d696e5f70726f6d6f74696f6e5f706572696f64602e005901546869732069732075736566756c20666f72206f75742d6f662d62616e642070726f6d6f74696f6e732c2068656e63652069742068617320697473206f776e20604661737450726f6d6f74654f726967696e6020746f590162652028706f737369626c7929206d6f7265207265737472696374697665207468616e206050726f6d6f74654f726967696e602e204e6f7465207468617420746865206d656d626572206d75737420616c726561647930626520696e6475637465642e206f6666626f61726404010c77686f000130543a3a4163636f756e744964000614390153746f7020747261636b696e672061207072696f72206d656d6265722077686f206973206e6f77206e6f7420612072616e6b6564206d656d626572206f662074686520636f6c6c6563746976652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e55012d206077686f603a20546865204944206f6620616e206163636f756e742077686963682077617320747261636b656420696e20746869732070616c6c657420627574207768696368206973206e6f77206e6f74206188202072616e6b6564206d656d626572206f662074686520636f6c6c6563746976652e3c7375626d69745f65766964656e636508011077697368010201105769736800012065766964656e63650502013845766964656e63653c542c20493e000728a450726f766964652065766964656e6365207468617420612072616e6b2069732064657365727665642e005d01546869732069732066726565206173206c6f6e67206173206e6f2065766964656e636520666f722074686520666f727468636f6d696e67206a756467656d656e7420697320616c7265616479207375626d69747465642e390145766964656e636520697320636c656172656420616674657220616e206f7574636f6d6520286569746865722064656d6f74696f6e2c2070726f6d6f74696f6e206f6620617070726f76616c292e0001012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e20696e64756374656420616e642072616e6b6564206163636f756e742ea82d206077697368603a205468652073746174656420646573697265206f6620746865206d656d6265722e51012d206065766964656e6365603a20412064756d70206f662065766964656e636520746f20626520636f6e736964657265642e20546869732073686f756c642067656e6572616c6c79206265206569746865722061450120204d61726b646f776e2d656e636f64656420646f63756d656e74206f72206120736572696573206f662033322d62797465206861736865732077686963682063616e20626520666f756e64206f6e2061ec2020646563656e7472616c6973656420636f6e74656e742d62617365642d696e646578696e672073797374656d207375636820617320495046532e18696d706f727400081c2901496e74726f6475636520616e20616c72656164792d72616e6b656420696e646976696475616c206f662074686520636f6c6c65637469766520696e746f20746869732070616c6c65742e0035015468652072616e6b206d6179207374696c6c206265207a65726f2e20546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b20616e644501606c6173745f70726f6d6f74696f6e602077696c6c2062652073657420746f207a65726f2c20746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2062757474616c6c6f77696e6720696d6d6564696174652070726f6d6f74696f6e2e0009012d20606f726967696e603a2041207369676e6564206f726967696e206f6620612072616e6b65642c20627574206e6f7420747261636b65642c206163636f756e742e34696d706f72745f6d656d62657204010c77686f000130543a3a4163636f756e744964000b282901496e74726f6475636520616e20616c72656164792d72616e6b656420696e646976696475616c206f662074686520636f6c6c65637469766520696e746f20746869732070616c6c65742e0061015468652072616e6b206d6179207374696c6c206265207a65726f2e2043616e2062652063616c6c656420627920616e796f6e65206f6e20616e7920636f6c6c656374697665206d656d626572202d20696e636c7564696e672c7468652073656e6465722e005d01546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b20616e6420606c6173745f70726f6d6f74696f6e602077696c6c2062652073657420746f207a65726f2c2501746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2062757420616c6c6f77696e6720696d6d6564696174652070726f6d6f74696f6e2e0009012d20606f726967696e603a2041207369676e6564206f726967696e206f6620612072616e6b65642c20627574206e6f7420747261636b65642c206163636f756e742e01012d206077686f603a20546865206163636f756e74204944206f662074686520636f6c6c656374697665206d656d62657220746f20626520696e6475637465642e487365745f7061727469616c5f706172616d730401387061727469616c5f706172616d73d9050168426f783c5061727469616c506172616d734f663c542c20493e3e00091c745365742074686520706172616d6574657273207061727469616c6c792e00f02d20606f726967696e603a20416e206f726967696e20636f6d706c79696e6720776974682060506172616d734f726967696e60206f7220726f6f742ed82d20607061727469616c5f706172616d73603a20546865206e657720706172616d657465727320666f72207468652070616c6c65742e00f8546869732075706461746520636f6e6669672077697468206d756c7469706c6520617267756d656e747320776974686f7574206475706c69636174696e67d8746865206669656c6473207468617420646f6573206e6f74206e65656420746f20757064617465202873657420746f204e6f6e65292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed905085870616c6c65745f636f72655f66656c6c6f777368697028506172616d73547970650c1c42616c616e636501a9032c426c6f636b4e756d62657201c81452616e6b7300001401346163746976655f73616c617279dd050168426f756e6465645665633c42616c616e63652c2052616e6b733e000138706173736976655f73616c617279dd050168426f756e6465645665633c42616c616e63652c2052616e6b733e00013c64656d6f74696f6e5f706572696f64e5050178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001506d696e5f70726f6d6f74696f6e5f706572696f64e5050178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001406f6666626f6172645f74696d656f7574c8012c426c6f636b4e756d6265720000dd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a903045300000400e10501185665633c543e0000e105000002a90300e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c8045300000400e90501185665633c543e0000e905000002c800ed050c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c65741043616c6c04045400010c1473746f72650401106461746138011c5665633c75383e0000142101496e64657820616e642073746f72652064617461206f666620636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d2069736101604d61785472616e73616374696f6e53697a65602e20446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577602869732063616c6c65642e34232320436f6d706c65786974791d012d204f286e2a6c6f67286e2929206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e1472656e6577080114626c6f636b100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001182d0152656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e73250170726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e01015472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e744170706c6965732073616d652066656573206173206073746f7265602e34232320436f6d706c65786974791c2d204f2831292e2c636865636b5f70726f6f6604011470726f6f66f105015c5472616e73616374696f6e53746f7261676550726f6f660002181901436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e01014966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e34232320436f6d706c657869747941012d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d28202070726f62696e672e9c546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef105087073705f7472616e73616374696f6e5f73746f726167655f70726f6f665c5472616e73616374696f6e53746f7261676550726f6f6600000801146368756e6b38011c5665633c75383e00011470726f6f663d0201305665633c5665633c75383e3e0000f5050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f63617465648d0201504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c6967687465728d0201504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c686561766965728d0201504163636f756e7449644c6f6f6b75704f663c543e00011c6c6967687465728d0201504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e666967fd05015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974730106013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b050601404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b6579733d0201305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b6579733d0201305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974730106013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f700906013450726f67726573734f663c543e00013870726f67726573735f6368696c640906013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd0504184f7074696f6e0404540101060108104e6f6e6500000010536f6d6504000106000001000001060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c753332000005060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f700906013450726f67726573734f663c543e00013870726f67726573735f6368696c640906013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c753332000009060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b657904000d060164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c657465000200000d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000011060c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800011476616c75659902013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800013c6368696c645f626f756e74795f69646902012c426f756e7479496e64657800011c63757261746f728d0201504163636f756e7449644c6f6f6b75704f663c543e00010c6665659902013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800013c6368696c645f626f756e74795f69646902012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800013c6368696c645f626f756e74795f69646902012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800013c6368696c645f626f756e74795f69646902012c426f756e7479496e64657800012c62656e65666963696172798d0201504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800013c6368696c645f626f756e74795f69646902012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f69646902012c426f756e7479496e64657800013c6368696c645f626f756e74795f69646902012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15060c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e4902015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c2902014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e7419060188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b8901013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368dd03013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e190610346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d626572000100001d060c3470616c6c65745f72656d61726b1870616c6c65741043616c6c0404540001041473746f726504011872656d61726b38011c5665633c75383e0000047c496e64657820616e642073746f72652064617461206f666620636861696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21060c4c70616c6c65745f726f6f745f74657374696e671870616c6c65741043616c6c0404540001082866696c6c5f626c6f636b040114726174696fc4011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e44747269676765725f646566656e73697665000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e25060c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e64657869020144506f6c6c496e6465784f663c542c20493e000110766f7465290601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c61737389010134436c6173734f663c542c20493e000108746f8d0201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e31060128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c61737389010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c61737389010134436c6173734f663c542c20493e0001187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373090201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c01187461726765748d0201504163636f756e7449644c6f6f6b75704f663c543e000114636c61737389010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f74652d060110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e6365000200002d060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f7465000004000800000031060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b656436780006000035060c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39060c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d62657273590101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c646902012c4d656d626572436f756e7400012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e646902010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d060c3c70616c6c65745f616c6c69616e63651870616c6c65741043616c6c0804540004490001441c70726f706f73650c01247468726573686f6c646902010c75333200012070726f706f73616c2d02017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e646902010c75333200000c884164642061206e65772070726f706f73616c20746f20626520766f746564206f6e2e006c4d7573742062652063616c6c656420627920612046656c6c6f772e10766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c00010cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e006c4d7573742062652063616c6c656420627920612046656c6c6f772e30696e69745f6d656d6265727308011c66656c6c6f7773590101445665633c543a3a4163636f756e7449643e000118616c6c696573590101445665633c543a3a4163636f756e7449643e000314d0496e697469616c697a652074686520416c6c69616e63652c206f6e626f6172642066656c6c6f777320616e6420616c6c6965732e00310154686520416c6c69616e6365206d75737420626520656d7074792c20616e64207468652063616c6c206d7573742070726f7669646520736f6d6520666f756e64696e67206d656d626572732e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e1c64697362616e6404011c7769746e6573734106013844697362616e645769746e65737300040c1d0144697362616e642074686520416c6c69616e63652c2072656d6f766520616c6c20616374697665206d656d6265727320616e6420756e72657365727665206465706f736974732e00645769746e6573732064617461206d757374206265207365742e207365745f72756c6504011072756c654506010c436964000504a05365742061206e657720495046532043494420746f2074686520616c6c69616e63652072756c652e20616e6e6f756e6365040130616e6e6f756e63656d656e744506010c436964000604f44d616b6520616e20616e6e6f756e63656d656e74206f662061206e65772049504653204349442061626f757420616c6c69616e6365206973737565732e4c72656d6f76655f616e6e6f756e63656d656e74040130616e6e6f756e63656d656e744506010c4369640007045c52656d6f766520616e20616e6e6f756e63656d656e742e346a6f696e5f616c6c69616e6365000804e85375626d6974206f6e6573656c6620666f722063616e6469646163792e2041206669786564206465706f7369742069732072657365727665642e346e6f6d696e6174655f616c6c7904010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0009084901412046656c6c6f772063616e206e6f6d696e61746520736f6d656f6e6520746f206a6f696e2074686520616c6c69616e636520617320616e20416c6c792e205468657265206973206e6f206465706f7369749c72657175697265642066726f6d20746865206e6f6d696e61746f72206f72206e6f6d696e65652e30656c65766174655f616c6c79040110616c6c798d0201504163636f756e7449644c6f6f6b75704f663c543e000a0468456c657661746520616e20416c6c7920746f2046656c6c6f772e58676976655f7265746972656d656e745f6e6f74696365000b085d0141732061206d656d6265722c20676976652061207265746972656d656e74206e6f7469636520616e642073746172742061207265746972656d656e7420706572696f6420726571756972656420746f207061737320696e406f7264657220746f207265746972652e18726574697265000c10010141732061206d656d6265722c207265746972652066726f6d2074686520416c6c69616e636520616e6420756e7265736572766520746865206465706f7369742e002d01546869732063616e206f6e6c7920626520646f6e65206f6e636520796f7520686176652063616c6c65642060676976655f7265746972656d656e745f6e6f746963656020616e642074686578605265746972656d656e74506572696f646020686173207061737365642e2c6b69636b5f6d656d62657204010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000d04d84b69636b2061206d656d6265722066726f6d2074686520416c6c69616e636520616e6420736c61736820697473206465706f7369742e586164645f756e7363727570756c6f75735f6974656d730401146974656d73550601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000e04ec416464206163636f756e7473206f7220776562736974657320746f20746865206c697374206f6620756e7363727570756c6f7573206974656d732e6472656d6f76655f756e7363727570756c6f75735f6974656d730401146974656d73550601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000f049c4465656d20736f6d65206974656d73206e6f206c6f6e67657220756e7363727570756c6f75732e14636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465786902013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e646902010c75333200100c5101436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f7665642c206f722077686f736520766f74696e6720706572696f642068617320656e6465642e006c4d7573742062652063616c6c656420627920612046656c6c6f772e5861626469636174655f66656c6c6f775f73746174757300110c59014162646963617465206f6e65277320706f736974696f6e206173206120766f74696e67206d656d62657220616e64206a75737420626520616e20416c6c792e204d617920626520757365642062792046656c6c6f7773450177686f20646f206e6f742077616e7420746f206c656176652074686520416c6c69616e63652062757420646f206e6f7420686176652074686520636170616369747920746f207061727469636970617465706f7065726174696f6e616c6c7920666f7220736f6d652074696d652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41060c3c70616c6c65745f616c6c69616e63651474797065733844697362616e645769746e657373000008013866656c6c6f775f6d656d626572736902010c753332000130616c6c795f6d656d626572736902010c753332000045060c3c70616c6c65745f616c6c69616e63651474797065730c43696400000c011c76657273696f6e4906011c56657273696f6e000114636f64656330010c753634000110686173684d0601244d756c746968617368000049060c3c70616c6c65745f616c6c69616e63651474797065731c56657273696f6e000108085630000000085631000100004d060c3c70616c6c65745f616c6c69616e6365147479706573244d756c7469686173680000080110636f646530010c75363400011864696765737451060170426f756e6465645665633c75382c20436f6e73745533323c36383e3e000051060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000055060000025906005906083c70616c6c65745f616c6c69616e636540556e7363727570756c6f75734974656d08244163636f756e74496401000c55726c015d060108244163636f756e74496404000001244163636f756e7449640000001c5765627369746504005d06010c55726c000100005d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000061060c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e749902013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400004045015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e642069732064656c65676174656420286f72207472616e73666572726564206261736564206f6e4d015b60616461707465723a3a5374616b65537472617465677954797065605d292066726f6d20746865206d656d62657220746f2074686520706f6f6c206163636f756e7420616e6420696d6d6564696174656c7968696e637265617365732074686520706f6f6c277320626f6e642e002901546865206d6574686f64206f66207472616e7366657272696e672074686520616d6f756e7420746f2074686520706f6f6c206163636f756e742069732064657465726d696e656420627901015b60616461707465723a3a5374616b65537472617465677954797065605d2e2049662074686520706f6f6c20697320636f6e6669677572656420746f2075736531015b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2c207468652066756e64732072656d61696e20696e20746865206163636f756e74206f66310174686520606f726967696e602c207768696c652074686520706f6f6c206761696e732074686520726967687420746f207573652074686573652066756e647320666f72207374616b696e672e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f657874726104011465787472616506015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e74739902013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e749902013042616c616e63654f663c543e000110726f6f748d0201504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f728d0201504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e6365728d0201504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e749902013042616c616e63654f663c543e000110726f6f748d0201504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f728d0201504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e6365728d0201504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273590101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e001823204e6f7465005901496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c2074686520706f6f6c2773206465706f7369746f72206e6565647320746f0d0168617665206174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c4964000114737461746569060124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e646d060158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e646d060158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c7371060134436f6e6669674f703c7533323e00012c6d61785f6d656d6265727371060134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6c71060134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e75060144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f7479060158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f7279060158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e63657279060158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d44704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a55012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f746865727769736520706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ab42a205468652063616c6c65722069732074686520706f6f6c2773206e6f6d696e61746f72206f7220726f6f742e40626f6e645f65787472615f6f746865720801186d656d6265728d0201504163636f756e7449644c6f6f6b75704f663c543e00011465787472616506015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6e7d06013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6e8106017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ec4011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174658906019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400144064436c61696d2070656e64696e6720636f6d6d697373696f6e2e003d015468652060726f6f746020726f6c65206f662074686520706f6f6c206973205f616c776179735f20616c6c6f77656420746f20636c61696d2074686520706f6f6c277320636f6d6d697373696f6e2e00550149662074686520706f6f6c20686173207365742060436f6d6d697373696f6e436c61696d5065726d697373696f6e3a3a5065726d697373696f6e6c657373602c207468656e20616e79206163636f756e742063616ed874726967676572207468652070726f63657373206f6620636c61696d696e672074686520706f6f6c277320636f6d6d697373696f6e2e00410149662074686520706f6f6c2068617320736574206974732060436f6d6d697373696f6e436c61696d5065726d697373696f6e6020746f20604163636f756e742861636329602c207468656e206f6e6c79206163636f756e7473302a2060616363602c20616e64642a2074686520706f6f6c277320726f6f74206163636f756e7400b86d61792063616c6c20746869732065787472696e736963206f6e20626568616c66206f662074686520706f6f6c2e002d0150656e64696e6720636f6d6d697373696f6e73206172652070616964206f757420616e6420616464656420746f2074686520746f74616c20636c61696d656420636f6d6d697373696f6e2eb854686520746f74616c2070656e64696e6720636f6d6d697373696f6e20697320726573657420746f207a65726f2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e8d0601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e001724884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005d015468652070656e64696e6720736c61736820616d6f756e74206f6620746865206d656d626572206d75737420626520657175616c206f72206d6f7265207468616e20604578697374656e7469616c4465706f736974602e5101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e2049662074686520657865637574696f6e49016973207375636365737366756c2c2066656520697320726566756e64656420616e642063616c6c6572206d6179206265207265776172646564207769746820612070617274206f662074686520736c6173680d016261736564206f6e20746865205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d20636f6e66696775726174696f6e2e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e748d0201504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c52657761726473000100006906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e67000200006d06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200007106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401c4010c104e6f6f700000000c5365740400c40104540001001852656d6f7665000200007906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f7665000200007d06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000810604184f7074696f6e0404540185060108104e6f6e6500000010536f6d65040085060000010000850600000408c400008906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365c4011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d62657200008d0604184f7074696f6e0404540191060108104e6f6e6500000010536f6d650400910600000100009106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e7449640001000095060c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e4902015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c2902014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e7419060188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b8901013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368dd03013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99060c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0000185c496e74726f647563652061206e6577206d656d6265722e00902d20606f726967696e603a204d7573742062652074686520604164644f726967696e602ee82d206077686f603a204163636f756e74206f66206e6f6e2d6d656d6265722077686963682077696c6c206265636f6d652061206d656d6265722e00385765696768743a20604f283129603870726f6d6f74655f6d656d62657204010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000118c0496e6372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e00a02d20606f726967696e603a204d75737420626520746865206050726f6d6f74654f726967696e602e902d206077686f603a204163636f756e74206f66206578697374696e67206d656d6265722e00385765696768743a20604f283129603464656d6f74655f6d656d62657204010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00021c5d0144656372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e20496620746865206d656d62657220697320616c72656164792061742072616e6b207a65726f2c7c7468656e2074686579206172652072656d6f76656420656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206044656d6f74654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2e0009015765696768743a20604f283129602c206c65737320696620746865206d656d626572277320696e646578206973206869676865737420696e206974732072616e6b2e3472656d6f76655f6d656d62657208010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e0001206d696e5f72616e6b8901011052616e6b00031c6c52656d6f766520746865206d656d62657220656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206052656d6f76654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2ec02d20606d696e5f72616e6b603a205468652072616e6b206f6620746865206d656d626572206f7220677265617465722e00585765696768743a20604f286d696e5f72616e6b29602e10766f7465080110706f6c6c100144506f6c6c496e6465784f663c542c20493e00010c617965200110626f6f6c00042cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e00c42d20606f726967696e603a204d75737420626520605369676e6564602062792061206d656d626572206163636f756e742eac2d2060706f6c6c603a20496e646578206f66206120706f6c6c207768696368206973206f6e676f696e672e29012d2060617965603a206074727565602069662074686520766f746520697320746f20617070726f7665207468652070726f706f73616c2c206066616c736560206f74686572776973652e0045015472616e73616374696f6e2066656573206172652062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e0035015765696768743a20604f283129602c206c65737320696620746865726520776173206e6f2070726576696f757320766f7465206f6e2074686520706f6c6c20627920746865206d656d6265722e30636c65616e75705f706f6c6c080128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e00010c6d617810010c753332000528d452656d6f766520766f7465732066726f6d2074686520676976656e20706f6c6c2e204974206d757374206861766520656e6465642e00b02d20606f726967696e603a204d75737420626520605369676e65646020627920616e79206163636f756e742e49012d2060706f6c6c5f696e646578603a20496e646578206f66206120706f6c6c20776869636820697320636f6d706c6574656420616e6420666f7220776869636820766f74657320636f6e74696e756520746f20202065786973742efc2d20606d6178603a204d6178696d756d206e756d626572206f6620766f7465206974656d732066726f6d2072656d6f766520696e20746869732063616c6c2e00ec5472616e73616374696f6e2066656573206172652077616976656420696620746865206f7065726174696f6e206973207375636365737366756c2e00150157656967687420604f286d6178296020286c65737320696620746865726520617265206665776572206974656d7320746f2072656d6f7665207468616e20606d617860292e3c65786368616e67655f6d656d62657208010c77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e00011c6e65775f77686f8d0201504163636f756e7449644c6f6f6b75704f663c543e000614050145786368616e6765732061206d656d62657220776974682061206e6577206163636f756e7420616e64207468652073616d65206578697374696e672072616e6b2e00a42d20606f726967696e603a204d75737420626520746865206045786368616e67654f726967696e602e39012d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2062652065786368616e6765642e59012d20606e65775f77686f603a204e6577204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2065786368616e67656420746f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d060c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c65741043616c6c0404540001182c6372656174655f706f6f6c080118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e00001019014372656174657320616e20656d707479206c697175696469747920706f6f6c20616e6420616e206173736f636961746564206e657720606c705f746f6b656e60206173736574010128746865206964206f662077686963682069732072657475726e656420696e2074686520604576656e743a3a506f6f6c4372656174656460206576656e74292e0011014f6e6365206120706f6f6c20697320637265617465642c20736f6d656f6e65206d6179205b6050616c6c65743a3a6164645f6c6971756964697479605d20746f2069742e346164645f6c69717569646974791c0118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e00013c616d6f756e74315f64657369726564180128543a3a42616c616e636500013c616d6f756e74325f64657369726564180128543a3a42616c616e636500012c616d6f756e74315f6d696e180128543a3a42616c616e636500012c616d6f756e74325f6d696e180128543a3a42616c616e636500011c6d696e745f746f000130543a3a4163636f756e744964000138e450726f76696465206c697175696469747920696e746f2074686520706f6f6c206f6620606173736574316020616e642060617373657432602e0d014e4f54453a20616e206f7074696d616c20616d6f756e74206f662061737365743120616e64206173736574322077696c6c2062652063616c63756c6174656420616e6421016d6967687420626520646966666572656e74207468616e207468652070726f76696465642060616d6f756e74315f64657369726564602f60616d6f756e74325f6465736972656460fc7468757320796f752073686f756c642070726f7669646520746865206d696e20616d6f756e7420796f7527726520686170707920746f2070726f766964652ec8506172616d732060616d6f756e74315f6d696e602f60616d6f756e74325f6d696e6020726570726573656e7420746861742e4901606d696e745f746f602077696c6c2062652073656e7420746865206c697175696469747920746f6b656e73207468617420726570726573656e742074686973207368617265206f662074686520706f6f6c2e005d014e4f54453a207768656e20656e636f756e746572696e6720616e20696e636f72726563742065786368616e6765207261746520616e64206e6f6e2d776974686472617761626c6520706f6f6c206c69717569646974792cdc626174636820616e2061746f6d69632063616c6c2077697468205b6050616c6c65743a3a6164645f6c6971756964697479605d20616e6451015b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d206f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d250163616c6c7320746f2072656e64657220746865206c697175696469747920776974686472617761626c6520616e642072656374696679207468652065786368616e676520726174652e00d84f6e6365206c69717569646974792069732061646465642c20736f6d656f6e65206d6179207375636365737366756c6c792063616c6ca45b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e4072656d6f76655f6c6971756964697479180118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e0001346c705f746f6b656e5f6275726e180128543a3a42616c616e636500014c616d6f756e74315f6d696e5f72656365697665180128543a3a42616c616e636500014c616d6f756e74325f6d696e5f72656365697665180128543a3a42616c616e636500012c77697468647261775f746f000130543a3a4163636f756e74496400020c4d01416c6c6f777320796f7520746f2072656d6f7665206c69717569646974792062792070726f766964696e672074686520606c705f746f6b656e5f6275726e6020746f6b656e7320746861742077696c6c20626551016275726e656420696e207468652070726f636573732e205769746820746865207573616765206f662060616d6f756e74315f6d696e5f72656365697665602f60616d6f756e74325f6d696e5f726563656976656035016974277320706f737369626c6520746f20636f6e74726f6c20746865206d696e20616d6f756e74206f662072657475726e656420746f6b656e7320796f7527726520686170707920776974682e70737761705f65786163745f746f6b656e735f666f725f746f6b656e7314011070617468a10601585665633c426f783c543a3a41737365744b696e643e3e000124616d6f756e745f696e180128543a3a42616c616e6365000138616d6f756e745f6f75745f6d696e180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c000318c0537761702074686520657861637420616d6f756e74206f6620606173736574316020696e746f2060617373657432602e2d0160616d6f756e745f6f75745f6d696e6020706172616d20616c6c6f777320796f7520746f207370656369667920746865206d696e20616d6f756e74206f662074686520606173736574326060796f7527726520686170707920746f20726563656976652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e70737761705f746f6b656e735f666f725f65786163745f746f6b656e7314011070617468a10601585665633c426f783c543a3a41737365744b696e643e3e000128616d6f756e745f6f7574180128543a3a42616c616e6365000134616d6f756e745f696e5f6d6178180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c00041801015377617020616e7920616d6f756e74206f6620606173736574316020746f206765742074686520657861637420616d6f756e74206f662060617373657432602e190160616d6f756e745f696e5f6d61786020706172616d20616c6c6f777320746f207370656369667920746865206d617820616d6f756e74206f662074686520606173736574316060796f7527726520686170707920746f2070726f766964652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e14746f756368080118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e00052c4d01546f75636820616e206578697374696e6720706f6f6c20746f2066756c66696c6c2070726572657175697369746573206265666f72652070726f766964696e67206c69717569646974792c20737563682061734901656e737572696e6720746861742074686520706f6f6c2773206163636f756e74732061726520696e20706c6163652e204974206973207479706963616c6c792075736566756c207768656e206120706f6f6c550163726561746f722072656d6f7665732074686520706f6f6c2773206163636f756e747320616e6420646f6573206e6f742070726f766964652061206c69717569646974792e205468697320616374696f6e206d61795501696e766f6c766520686f6c64696e67206173736574732066726f6d207468652063616c6c65722061732061206465706f73697420666f72206372656174696e672074686520706f6f6c2773206163636f756e74732e0068546865206f726967696e206d757374206265205369676e65642e0029012d2060617373657431603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e29012d2060617373657432603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732ea106000002a000a5060c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66590163616c6c696e67205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c7920626520666f6c6c6f776564b0627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800023494436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9060c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e1001484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e1001484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead060c746672616d655f62656e63686d61726b696e675f70616c6c65745f706f761870616c6c65741043616c6c04045400010828656d69745f6576656e74000000106e6f6f70000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1060c3c70616c6c65745f74785f70617573651870616c6c65741043616c6c04045400010814706175736504012466756c6c5f6e616d65b506015052756e74696d6543616c6c4e616d654f663c543e00001034506175736520612063616c6c2e00b843616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a50617573654f726967696e605d2ec0456d69747320616e205b604576656e743a3a43616c6c506175736564605d206576656e74206f6e20737563636573732e1c756e70617573650401146964656e74b506015052756e74696d6543616c6c4e616d654f663c543e00011040556e2d706175736520612063616c6c2e00c043616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a556e70617573654f726967696e605d2ec8456d69747320616e205b604576656e743a3a43616c6c556e706175736564605d206576656e74206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb50600000408cd01cd0100b9060c4070616c6c65745f736166655f6d6f64651870616c6c65741043616c6c04045400012014656e7465720000181901456e74657220736166652d6d6f6465207065726d697373696f6e6c6573736c7920666f72205b60436f6e6669673a3a456e7465724475726174696f6e605d20626c6f636b732e0009015265736572766573205b60436f6e6669673a3a456e7465724465706f736974416d6f756e74605d2066726f6d207468652063616c6c65722773206163636f756e742eb4456d69747320616e205b604576656e743a3a456e7465726564605d206576656e74206f6e20737563636573732e0d014572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320616c726561647920656e74657265642e15014572726f72732077697468205b604572726f723a3a4e6f74436f6e66696775726564605d20696620746865206465706f73697420616d6f756e7420697320604e6f6e65602e2c666f7263655f656e7465720001181901456e74657220736166652d6d6f646520627920666f72636520666f722061207065722d6f726967696e20636f6e66696775726564206e756d626572206f6620626c6f636b732e00b4456d69747320616e205b604576656e743a3a456e7465726564605d206576656e74206f6e20737563636573732e0d014572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320616c726561647920656e74657265642e00f843616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f726365456e7465724f726967696e605d206f726967696e2e18657874656e6400022c3101457874656e642074686520736166652d6d6f6465207065726d697373696f6e6c6573736c7920666f72205b60436f6e6669673a3a457874656e644475726174696f6e605d20626c6f636b732e00e85468697320616363756d756c61746573206f6e20746f70206f66207468652063757272656e742072656d61696e696e67206475726174696f6e2e0d015265736572766573205b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d2066726f6d207468652063616c6c65722773206163636f756e742eb8456d69747320616e205b604576656e743a3a457874656e646564605d206576656e74206f6e20737563636573732ee84572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320656e74657265642e15014572726f72732077697468205b604572726f723a3a4e6f74436f6e66696775726564605d20696620746865206465706f73697420616d6f756e7420697320604e6f6e65602e00450154686973206d61792062652063616c6c656420627920616e79207369676e6564206f726967696e2077697468205b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d2066726565350163757272656e637920746f20726573657276652e20546869732063616c6c2063616e2062652064697361626c656420666f7220616c6c206f726967696e7320627920636f6e6669677572696e67a85b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d20746f20604e6f6e65602e30666f7263655f657874656e640003182d01457874656e642074686520736166652d6d6f646520627920666f72636520666f722061207065722d6f726967696e20636f6e66696775726564206e756d626572206f6620626c6f636b732e00b8456d69747320616e205b604576656e743a3a457874656e646564605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320696e6163746976652e00fc43616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f726365457874656e644f726967696e605d206f726967696e2e28666f7263655f65786974000424604578697420736166652d6d6f646520627920666f7263652e001d01456d69747320616e205b604576656e743a3a457869746564605d2077697468205b6045786974526561736f6e3a3a466f726365605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320696e6163746976652e0055014e6f74653a2060736166652d6d6f6465602077696c6c206265206175746f6d61746963616c6c79206465616374697661746564206279205b6050616c6c65743a3a6f6e5f696e697469616c697a65605d20686f6f6b250161667465722074686520626c6f636b206865696768742069732067726561746572207468616e20746865205b60456e7465726564556e74696c605d2073746f72616765206974656d2e5501456d69747320616e205b604576656e743a3a457869746564605d2077697468205b6045786974526561736f6e3a3a54696d656f7574605d206576656e74207768656e20646561637469766174656420696e2074686514686f6f6b2e4c666f7263655f736c6173685f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e0005243101536c6173682061206465706f73697420666f7220616e206163636f756e74207468617420656e7465726564206f7220657874656e64656420736166652d6d6f6465206174206120676976656e44686973746f726963616c20626c6f636b2e00cc546869732063616e206f6e6c792062652063616c6c6564207768696c6520736166652d6d6f646520697320656e74657265642e00cc456d6974732061205b604576656e743a3a4465706f736974536c6173686564605d206576656e74206f6e20737563636573732edc4572726f72732077697468205b604572726f723a3a456e7465726564605d20696620736166652d6d6f646520697320656e74657265642e00010143616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f7263654465706f7369744f726967696e605d206f726967696e2e3c72656c656173655f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e00063035015065726d697373696f6e6c6573736c792072656c656173652061206465706f73697420666f7220616e206163636f756e74207468617420656e746572656420736166652d6d6f646520617420615c676976656e20686973746f726963616c20626c6f636b2e0049015468652063616c6c2063616e20626520636f6d706c6574656c792064697361626c65642062792073657474696e67205b60436f6e6669673a3a52656c6561736544656c6179605d20746f20604e6f6e65602ef8546869732063616e6e6f742062652063616c6c6564207768696c6520736166652d6d6f646520697320656e746572656420616e64206e6f7420756e74696c21015b60436f6e6669673a3a52656c6561736544656c6179605d20626c6f636b732068617665207061737365642073696e636520736166652d6d6f64652077617320656e74657265642e00d0456d6974732061205b604576656e743a3a4465706f73697452656c6561736564605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320656e74657265642e49014572726f72732077697468205b604572726f723a3a43616e6e6f7452656c65617365596574605d206966205b60436f6e6669673a3a52656c6561736544656c6179605d20626c6f636b2068617665206e6f7461017061737365642073696e636520736166652d6d6f64652077617320656e74657265642e204572726f72732077697468205b604572726f723a3a4e6f4465706f736974605d2069662074686520706179656520686173206e6fa472657365727665642063757272656e63792061742074686520626c6f636b207370656369666965642e54666f7263655f72656c656173655f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e00072c2d01466f72636520746f2072656c656173652061206465706f73697420666f7220616e206163636f756e74207468617420656e746572656420736166652d6d6f6465206174206120676976656e44686973746f726963616c20626c6f636b2e00d0546869732063616e2062652063616c6c6564207768696c6520736166652d6d6f6465206973207374696c6c20656e74657265642e00d0456d6974732061205b604576656e743a3a4465706f73697452656c6561736564605d206576656e74206f6e20737563636573732edc4572726f72732077697468205b604572726f723a3a456e7465726564605d20696620736166652d6d6f646520697320656e74657265642e35014572726f72732077697468205b604572726f723a3a4e6f4465706f736974605d2069662074686520706179656520686173206e6f2072657365727665642063757272656e6379206174207468654073706563696669656420626c6f636b2e00010143616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f7263654465706f7369744f726967696e605d206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd060c4470616c6c65745f6d6967726174696f6e731870616c6c65741043616c6c04045400011040666f7263655f7365745f637572736f72040118637572736f72c106014c4f7074696f6e3c437572736f724f663c543e3e0000145d01416c6c6f777320726f6f7420746f20736574206120637572736f7220746f20666f72636566756c6c792073746172742c2073746f70206f7220666f727761726420746865206d6967726174696f6e2070726f636573732e00490153686f756c64206e6f726d616c6c79206e6f74206265206e656564656420616e64206973206f6e6c7920696e20706c61636520617320656d657267656e6379206d6561737572652e204e6f74652074686174050172657374617274696e6720746865206d6967726174696f6e2070726f6365737320696e2074686973206d616e6e65722077696c6c206e6f742063616c6c207468652d015b604d6967726174696f6e53746174757348616e646c65723a3a73746172746564605d20686f6f6b206f7220656d697420616e2060557067726164655374617274656460206576656e742e5c666f7263655f7365745f6163746976655f637572736f720c0114696e64657810010c753332000130696e6e65725f637572736f72d10601584f7074696f6e3c526177437572736f724f663c543e3e000128737461727465645f6174c801644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0001185901416c6c6f777320726f6f7420746f2073657420616e2061637469766520637572736f7220746f20666f72636566756c6c792073746172742f666f727761726420746865206d6967726174696f6e2070726f636573732e0045015468697320697320616e20656467652d636173652076657273696f6e206f66205b6053656c663a3a666f7263655f7365745f637572736f72605d207468617420616c6c6f777320746f2073657420746865610160737461727465645f6174602076616c756520746f20746865206e65787420626c6f636b206e756d6265722e204f7468657277697365207468697320776f756c64206e6f7420626520706f737369626c652c2073696e6365450160666f7263655f7365745f637572736f72602074616b657320616e206162736f6c75746520626c6f636b206e756d6265722e2053657474696e672060737461727465645f61746020746f20604e6f6e65600101696e646963617465732074686174207468652063757272656e7420626c6f636b206e756d62657220706c7573206f6e652073686f756c6420626520757365642e48666f7263655f6f6e626f6172645f6d626d73000210a0466f7263657320746865206f6e626f617264696e67206f6620746865206d6967726174696f6e732e005d01546869732070726f636573732068617070656e73206175746f6d61746963616c6c79206f6e20612072756e74696d6520757067726164652e20497420697320696e20706c61636520617320616e20656d657267656e6379fc6d6561737572656d656e742e2054686520637572736f72206e6565647320746f20626520604e6f6e656020666f72207468697320746f20737563636565642e38636c6561725f686973746f72696304012073656c6563746f72d50601a0486973746f726963436c65616e757053656c6563746f723c4964656e7469666965724f663c543e3e00031468436c65617273207468652060486973746f72696360207365742e000d01606d61705f637572736f7260206d7573742062652073657420746f20746865206c6173742076616c75652074686174207761732072657475726e6564206279207468655d0160486973746f726963436c656172656460206576656e742e205468652066697273742074696d6520604e6f6e65602063616e20626520757365642e20606c696d697460206d7573742062652063686f73656e20696e2061a877617920746861742077696c6c20726573756c7420696e20612073656e7369626c65207765696768742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec10604184f7074696f6e04045401c5060108104e6f6e6500000010536f6d650400c5060000010000c506084470616c6c65745f6d6967726174696f6e733c4d6967726174696f6e437572736f720818437572736f7201c9062c426c6f636b4e756d62657201100108184163746976650400cd060184416374697665437572736f723c437572736f722c20426c6f636b4e756d6265723e00000014537475636b00010000c9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000cd06084470616c6c65745f6d6967726174696f6e7330416374697665437572736f720818437572736f7201c9062c426c6f636b4e756d6265720110000c0114696e64657810010c753332000130696e6e65725f637572736f72d10601384f7074696f6e3c437572736f723e000128737461727465645f617410012c426c6f636b4e756d6265720000d10604184f7074696f6e04045401c9060108104e6f6e6500000010536f6d650400c9060000010000d506084470616c6c65745f6d6967726174696f6e735c486973746f726963436c65616e757053656c6563746f720408496401cd0101082053706563696669630400d906011c5665633c49643e0000002057696c64636172640801146c696d6974c8012c4f7074696f6e3c7533323e00013c70726576696f75735f637572736f72dd06013c4f7074696f6e3c5665633c75383e3e00010000d906000002cd0100dd0604184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000e1060c3470616c6c65745f62726f6b65721870616c6c65741043616c6c04045400016c24636f6e666967757265040118636f6e666967e5060144436f6e6669675265636f72644f663c543e00001054436f6e666967757265207468652070616c6c65742e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602eb82d2060636f6e666967603a2054686520636f6e66696775726174696f6e20666f7220746869732070616c6c65742e1c72657365727665040120776f726b6c6f6164e90601205363686564756c6500011c7852657365727665206120636f726520666f72206120776f726b6c6f61642e00490154686520776f726b6c6f61642077696c6c20626520676976656e2061207265736572766174696f6e2c206275742074776f2073616c6520706572696f6420626f756e646172696573206d7573742070617373946265666f72652074686520636f72652069732061637475616c6c792061737369676e65642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e21012d2060776f726b6c6f6164603a2054686520776f726b6c6f61642077686963682073686f756c64206265207065726d616e656e746c7920706c61636564206f6e206120636f72652e24756e726573657276650401286974656d5f696e64657810010c75333200021c9043616e63656c2061207265736572766174696f6e20666f72206120776f726b6c6f61642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e61012d20606974656d5f696e646578603a2054686520696e646578206f6620746865207265736572766174696f6e2e20557375616c6c7920746869732077696c6c20616c736f2062652074686520696e646578206f66207468654d012020636f7265206f6e20776869636820746865207265736572766174696f6e20686173206265656e207363686564756c65642e20486f77657665722c20697420697320706f737369626c652074686174206966490120206f7468657220636f72657320617265207265736572766564206f7220756e726573657276656420696e207468652073616d652073616c6520726f746174696f6e2074686174207468657920776f6e277461012020636f72726573706f6e642c20736f20697427732062657474657220746f206c6f6f6b2075702074686520636f72652070726f7065726c7920696e2074686520605265736572766174696f6e73602073746f726167652e247365745f6c656173650801107461736b1001185461736b4964000114756e74696c10012454696d65736c696365000324fc52657365727665206120636f726520666f7220612073696e676c65207461736b20776f726b6c6f616420666f722061206c696d6974656420706572696f642e005d01496e2074686520696e7465726c75646520616e642073616c6520706572696f642077686572652042756c6b20436f726574696d6520697320736f6c6420666f722074686520706572696f6420696d6d6564696174656c79d461667465722060756e74696c602c207468656e207468652073616d6520776f726b6c6f6164206d61792062652072656e657765642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602ee02d20607461736b603a2054686520776f726b6c6f61642077686963682073686f756c6420626520706c61636564206f6e206120636f72652e61012d2060756e74696c603a205468652074696d65736c696365206e6f77206561726c696572207468616e20776869636820607461736b602073686f756c6420626520706c61636564206173206120776f726b6c6f6164206f6e2420206120636f72652e2c73746172745f73616c6573080124656e645f707269636518013042616c616e63654f663c543e00012c65787472615f636f72657389010124436f7265496e6465780004249c426567696e207468652042756c6b20436f726574696d652073616c657320726f746174696f6e2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e51012d2060656e645f7072696365603a2054686520707269636520616674657220746865206c656164696e20706572696f64206f662042756c6b20436f726574696d6520696e207468652066697273742073616c652e4d012d206065787472615f636f726573603a204e756d626572206f6620657874726120636f72657320746861742073686f756c6420626520726571756573746564206f6e20746f70206f662074686520636f726573ac2020726571756972656420666f7220605265736572766174696f6e736020616e6420604c6561736573602e005d01546869732077696c6c2063616c6c205b6053656c663a3a726571756573745f636f72655f636f756e74605d20696e7465726e616c6c7920746f207365742074686520636f727265637420636f726520636f756e74206f6e407468652072656c617920636861696e2e20707572636861736504012c70726963655f6c696d697418013042616c616e63654f663c543e000514ac50757263686173652042756c6b20436f726574696d6520696e20746865206f6e676f696e672053616c652e005d012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2077697468206174206c6561737420656e6f7567682066756e647320746f20706179207468652063757272656e742070726963654c20206f662042756c6b20436f726574696d652ef42d206070726963655f6c696d6974603a20416e20616d6f756e74206e6f206d6f7265207468616e2077686963682073686f756c6420626520706169642e1472656e6577040110636f726589010124436f7265496e646578000614190152656e65772042756c6b20436f726574696d6520696e20746865206f6e676f696e672053616c65206f7220697473207072696f7220496e7465726c75646520506572696f642e005d012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2077697468206174206c6561737420656e6f7567682066756e647320746f20706179207468652072656e6577616c2070726963653820206f662074686520636f72652eac2d2060636f7265603a2054686520636f72652077686963682073686f756c642062652072656e657765642e207472616e73666572080124726567696f6e5f6964fd060120526567696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000714bc5472616e7366657220612042756c6b20436f726574696d6520526567696f6e20746f2061206e6577206f776e65722e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602ee02d2060726567696f6e5f6964603a2054686520526567696f6e2077686f7365206f776e6572736869702073686f756c64206368616e67652eb02d20606e65775f6f776e6572603a20546865206e6577206f776e657220666f722074686520526567696f6e2e24706172746974696f6e080124726567696f6e5f6964fd060120526567696f6e49640001147069766f7410012454696d65736c6963650008185d0153706c697420612042756c6b20436f726574696d6520526567696f6e20696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e73206174206120706172746963756c61722074696d6520696e746f2c74686520726567696f6e2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602e5d012d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c6420626520706172746974696f6e656420696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e732e25012d20607069766f74603a20546865206f666673657420696e2074696d6520696e746f2074686520526567696f6e20617420776869636820746f206d616b65207468652073706c69742e24696e7465726c616365080124726567696f6e5f6964fd060120526567696f6e49640001147069766f74f1060120436f72654d61736b0009204d0153706c697420612042756c6b20436f726574696d6520526567696f6e20696e746f2074776f2077686f6c6c792d6f7665726c617070696e6720526567696f6e73207769746820636f6d706c656d656e746172793101696e7465726c616365206d61736b7320776869636820746f676574686572206d616b6520757020746865206f726967696e616c20526567696f6e277320696e7465726c616365206d61736b2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602e49012d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c64206265636f6d652074776f20696e7465726c6163656420526567696f6e73206f6620696e636f6d706c657465342020726567756c61726974792e55012d20607069766f74603a2054686520696e7465726c616365206d61736b206f66206f6e65206f66207468652074776f206e657720726567696f6e732028746865206f7468657220697320697473207061727469616c382020636f6d706c656d656e74292e1861737369676e0c0124726567696f6e5f6964fd060120526567696f6e49640001107461736b1001185461736b496400012066696e616c6974790107012046696e616c697479000a20a041737369676e20612042756c6b20436f726574696d6520526567696f6e20746f2061207461736b2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602efc2d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c642062652061737369676e656420746f20746865207461736b2e742d20607461736b603a20546865207461736b20746f2061737369676e2e55012d206066696e616c697479603a20496e6469636174696f6e206f66207768657468657220746869732061737369676e6d656e742069732066696e616c2028696e2077686963682063617365206974206d617920626549012020656c696769626c6520666f722072656e6577616c29206f722070726f766973696f6e616c2028696e2077686963682063617365206974206d6179206265206d616e6970756c6174656420616e642f6f7274726561737369676e65642061742061206c61746572207374616765292e10706f6f6c0c0124726567696f6e5f6964fd060120526567696f6e49640001147061796565000130543a3a4163636f756e74496400012066696e616c6974790107012046696e616c697479000b180901506c61636520612042756c6b20436f726574696d6520526567696f6e20696e746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602efc2d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c642062652061737369676e656420746f2074686520506f6f6c2e55012d20607061796565603a20546865206163636f756e742077686963682069732061626c6520746f20636f6c6c65637420616e7920726576656e75652064756520666f7220746865207573616765206f6620746869732c2020436f726574696d652e34636c61696d5f726576656e7565080124726567696f6e5f6964fd060120526567696f6e49640001386d61785f74696d65736c6963657310012454696d65736c696365000c202501436c61696d2074686520726576656e7565206f7765642066726f6d20696e636c7573696f6e20696e2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e00902d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2ee42d2060726567696f6e5f6964603a2054686520526567696f6e207768696368207761732061737369676e656420746f2074686520506f6f6c2e51012d20606d61785f74696d65736c69636573603a20546865206d6178696d756d206e756d626572206f662074696d65736c696365732077686963682073686f756c642062652070726f6365737365642e2054686973590120206d7573742062652067726561746572207468616e20302e2054686973206d6179206166666563742074686520776569676874206f66207468652063616c6c206275742073686f756c6420626520696465616c6c79590120206d616465206571756976616c656e7420746f20746865206c656e677468206f662074686520526567696f6e2060726567696f6e5f6964602e204966206c6573732c206675727468657220646973706174636865734101202077696c6c2062652072657175697265642077697468207468652073616d652060726567696f6e5f69646020746f20636c61696d20726576656e756520666f72207468652072656d61696e6465722e3c70757263686173655f637265646974080118616d6f756e7418013042616c616e63654f663c543e00012c62656e656669636961727900014c52656c61794163636f756e7449644f663c543e000d18ec50757263686173652063726564697420666f722075736520696e2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0009012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2061626c6520746f20706179206174206c656173742060616d6f756e74602eb42d2060616d6f756e74603a2054686520616d6f756e74206f662063726564697420746f2070757263686173652e51012d206062656e6566696369617279603a20546865206163636f756e74206f6e207468652052656c61792d636861696e20776869636820636f6e74726f6c732074686520637265646974202867656e6572616c6c79a82020746869732077696c6c2062652074686520636f6c6c61746f72277320686f742077616c6c6574292e2c64726f705f726567696f6e040124726567696f6e5f6964fd060120526567696f6e4964000e109844726f7020616e206578706972656420526567696f6e2066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2eb02d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682068617320657870697265642e4464726f705f636f6e747269627574696f6e040124726567696f6e5f6964fd060120526567696f6e4964000f10190144726f7020616e206578706972656420496e7374616e74616e656f757320506f6f6c20436f6e747269627574696f6e207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e39012d2060726567696f6e5f6964603a2054686520526567696f6e206964656e74696679696e672074686520506f6f6c20436f6e747269627574696f6e2077686963682068617320657870697265642e3064726f705f686973746f72790401107768656e10012454696d65736c696365001010050144726f7020616e206578706972656420496e7374616e74616e656f757320506f6f6c20486973746f7279207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e15012d2060726567696f6e5f6964603a205468652074696d65206f662074686520506f6f6c20486973746f7279207265636f72642077686963682068617320657870697265642e3064726f705f72656e6577616c080110636f726589010124436f7265496e6465780001107768656e10012454696d65736c696365001114d844726f7020616e206578706972656420416c6c6f7765642052656e6577616c207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2edc2d2060636f7265603a2054686520636f726520746f2077686963682074686520657870697265642072656e6577616c207265666572732e4d012d20607768656e603a205468652074696d65736c69636520746f2077686963682074686520657870697265642072656e6577616c207265666572732e2054686973206d7573742068617665207061737365642e48726571756573745f636f72655f636f756e74040128636f72655f636f756e7489010124436f7265496e6465780012101901526571756573742061206368616e676520746f20746865206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e6720776f726b2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e05012d2060636f72655f636f756e74603a205468652064657369726564206e756d626572206f6620636f72657320746f206265206d61646520617661696c61626c652e446e6f746966795f636f72655f636f756e74040128636f72655f636f756e7489010124436f7265496e646578001300386e6f746966795f726576656e756504011c726576656e7565050701684f6e44656d616e64526576656e75655265636f72644f663c543e00140044656e61626c655f6175746f5f72656e65770c0110636f726589010124436f7265496e6465780001107461736b1001185461736b4964000144776f726b6c6f61645f656e645f68696e74c801444f7074696f6e3c54696d65736c6963653e00152c9045787472696e73696320666f7220656e61626c696e67206175746f2072656e6577616c2e00450143616c6c61626c652062792074686520736f7665726569676e206163636f756e74206f6620746865207461736b206f6e207468652073706563696669656420636f72652e2054686973206163636f756e74250177696c6c206265206368617267656420617420746865207374617274206f662065766572792062756c6b20706572696f6420666f722072656e6577696e6720636f72652074696d652e00d42d20606f726967696e603a204d7573742062652074686520736f7665726569676e206163636f756e74206f6620746865207461736b25012d2060636f7265603a2054686520636f726520746f20776869636820746865207461736b20746f2062652072656e657765642069732063757272656e746c792061737369676e65642ef02d20607461736b603a20546865207461736b20666f722077686963682077652077616e7420746f20656e61626c65206175746f2072656e6577616c2e5d012d2060776f726b6c6f61645f656e645f68696e74603a2073686f756c642062652075736564207768656e20656e61626c696e67206175746f2d72656e6577616c20666f72206120636f72652074686174206973206e6f745d0120206578706972696e6720696e20746865207570636f6d696e672062756c6b20706572696f642028652e672e2c2064756520746f20686f6c64696e672061206c65617365292073696e636520697420776f756c6420626531012020696e656666696369656e7420746f206c6f6f6b207570207768656e2074686520636f7265206578706972657320746f207363686564756c6520746865206e6578742072656e6577616c2e4864697361626c655f6175746f5f72656e6577080110636f726589010124436f7265496e6465780001107461736b1001185461736b496400161c9445787472696e73696320666f722064697361626c696e67206175746f2072656e6577616c2e00110143616c6c61626c652062792074686520736f7665726569676e206163636f756e74206f6620746865207461736b206f6e207468652073706563696669656420636f72652e00d82d20606f726967696e603a204d7573742062652074686520736f7665726569676e206163636f756e74206f6620746865207461736b2ef42d2060636f7265603a2054686520636f726520666f722077686963682077652077616e7420746f2064697361626c65206175746f2072656e6577616c2ef42d20607461736b603a20546865207461736b20666f722077686963682077652077616e7420746f2064697361626c65206175746f2072656e6577616c2e34666f7263655f72657365727665080120776f726b6c6f6164e90601205363686564756c65000110636f726589010124436f7265496e646578001730a852657365727665206120636f726520666f72206120776f726b6c6f616420696d6d6564696174656c792e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e41012d2060776f726b6c6f6164603a2054686520776f726b6c6f61642077686963682073686f756c64206265207065726d616e656e746c7920706c61636564206f6e206120636f7265207374617274696e67382020696d6d6564696174656c792e55012d2060636f7265603a2054686520636f726520746f207768696368207468652061737369676e6d656e742073686f756c64206265206d61646520756e74696c20746865207265736572766174696f6e2074616b6573510120206566666563742e204974206973206c65667420746f207468652063616c6c657220746f20656974686572206164642074686973206e657720636f7265206f7220726561737369676e20616e79206f746865727820207461736b7320746f2074686973206578697374696e6720636f72652e005d01546869732072657365727665732074686520776f726b6c6f616420616e64207468656e20696e6a656374732074686520776f726b6c6f616420696e746f2074686520576f726b706c616e20666f7220746865206e657874610174776f2073616c6520706572696f64732e2054686973206f76657277726974657320616e79206578697374696e672061737369676e6d656e747320666f72207468697320636f726520617420746865207374617274206f6654746865206e6578742073616c6520706572696f642e3072656d6f76655f6c656173650401107461736b1001185461736b49640018103c52656d6f76652061206c656173652e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602eec2d20607461736b603a20546865207461736b206964206f6620746865206c656173652077686963682073686f756c642062652072656d6f7665642e4472656d6f76655f61737369676e6d656e74040124726567696f6e5f6964fd060120526567696f6e4964001a109c52656d6f766520616e2061737369676e6d656e742066726f6d2074686520576f726b706c616e2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602ee82d2060726567696f6e5f6964603a2054686520526567696f6e20746f2062652072656d6f7665642066726f6d2074686520776f726b706c616e2e2c737761705f6c656173657308010869641001185461736b49640001146f746865721001185461736b4964006300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee5060c3470616c6c65745f62726f6b657214747970657330436f6e6669675265636f7264044052656c6179426c6f636b4e756d626572011000200138616476616e63655f6e6f7469636510014052656c6179426c6f636b4e756d626572000140696e7465726c7564655f6c656e67746810014052656c6179426c6f636b4e756d6265720001346c656164696e5f6c656e67746810014052656c6179426c6f636b4e756d626572000134726567696f6e5f6c656e67746810012454696d65736c696365000154696465616c5f62756c6b5f70726f706f7274696f6ec4011c50657262696c6c00014c6c696d69745f636f7265735f6f666665726564090201444f7074696f6e3c436f7265496e6465783e00013072656e6577616c5f62756d70c4011c50657262696c6c000150636f6e747269627574696f6e5f74696d656f757410012454696d65736c6963650000e9060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed06045300000400f90601185665633c543e0000ed060c3470616c6c65745f62726f6b6572147479706573305363686564756c654974656d00000801106d61736bf1060120436f72654d61736b00012861737369676e6d656e74f5060138436f726541737369676e6d656e740000f1060c3470616c6c65745f62726f6b657224636f72655f6d61736b20436f72654d61736b000004007d0401205b75383b2031305d0000f5060c3470616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b496400020000f906000002ed0600fd060c3470616c6c65745f62726f6b657214747970657320526567696f6e496400000c0114626567696e10012454696d65736c696365000110636f726589010124436f7265496e6465780001106d61736bf1060120436f72654d61736b000001070c3470616c6c65745f62726f6b65721474797065732046696e616c6974790001082c50726f766973696f6e616c0000001446696e616c0001000005070c3470616c6c65745f62726f6b6572147479706573544f6e44656d616e64526576656e75655265636f7264084052656c6179426c6f636b4e756d62657201103052656c617942616c616e6365011800080114756e74696c10014052656c6179426c6f636b4e756d626572000118616d6f756e7418013052656c617942616c616e6365000009070c3470616c6c65745f6d69786e65741870616c6c65741043616c6c040454000104207265676973746572080130726567697374726174696f6e0d070148526567697374726174696f6e466f723c543e0001247369676e61747572651d070148417574686f726974795369676e6174757265000004b452656769737465722061206d69786e6f646520666f722074686520666f6c6c6f77696e672073657373696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d07083470616c6c65745f6d69786e657430526567697374726174696f6e082c426c6f636b4e756d626572011038426f756e6465644d69786e6f646501110700100130626c6f636b5f6e756d62657210012c426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e646578100138417574686f72697479496e64657800011c6d69786e6f646511070138426f756e6465644d69786e6f646500001107083470616c6c65745f6d69786e657438426f756e6465644d69786e6f6465044445787465726e616c416464726573736573011507000c01246b785f7075626c69630401204b785075626c696300011c706565725f696404011850656572496400014865787465726e616c5f6164647265737365731507014445787465726e616c416464726573736573000015070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd01045300000400190701185665633c543e00001907000002bd01001d07102473705f6d69786e65741474797065730c617070245369676e6174757265000004000d040148737232353531393a3a5369676e6174757265000021070c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c756525070150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2507084c6b69746368656e73696e6b5f72756e74696d654452756e74696d65506172616d65746572730001081c53746f7261676504002907018c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d6574657273000000245265666572656e646104003507019464796e616d69635f706172616d733a3a7265666572656e64613a3a506172616d6574657273000100002907104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f7261676528506172616d65746572730001082c426173654465706f73697408002d07012c426173654465706f7369740000a903013c4f7074696f6e3c42616c616e63653e0000002c427974654465706f73697408003107012c427974654465706f7369740000a903013c4f7074696f6e3c42616c616e63653e000100002d07104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167652c426173654465706f736974000000003107104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167652c427974654465706f736974000000003507104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e646128506172616d657465727300010818547261636b73080039070118547261636b7300003d07015d014f7074696f6e3c426f756e6465645665633c70616c6c65745f7265666572656e64613a3a547261636b3c7531362c2042616c616e63652c20426c6f636b4e756d6265723e0a2c20436f6e73745533323c3130303e2c3e3e0000001c4f726967696e7308005d07011c4f726967696e730000610701d84f7074696f6e3c426f756e6465645665633c284f726967696e43616c6c65722c20753136292c20436f6e73745533323c3130303e3e3e000100003907104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e646118547261636b73000000003d0704184f7074696f6e0404540141070108104e6f6e6500000010536f6d6504004107000001000041070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014507045300000400590701185665633c543e000045070c4070616c6c65745f7265666572656e646114747970657314547261636b0c0849640189011c42616c616e63650118184d6f6d656e740110000801086964890101084964000110696e666f49070174547261636b496e666f3c42616c616e63652c204d6f6d656e742c204e3e000049070c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501b104002401106e616d65b10401104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c4d070114437572766500012c6d696e5f737570706f72744d070114437572766500004d070c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468c4011c50657262696c6c000114666c6f6f72c4011c50657262696c6c0001106365696cc4011c50657262696c6c000000445374657070656444656372656173696e67100114626567696ec4011c50657262696c6c00010c656e64c4011c50657262696c6c00011073746570c4011c50657262696c6c000118706572696f64c4011c50657262696c6c000100285265636970726f63616c0c0118666163746f72510701204669786564493634000120785f6f6666736574510701204669786564493634000120795f6f66667365745107012046697865644936340002000051070c3473705f61726974686d657469632c66697865645f706f696e74204669786564493634000004005507010c693634000055070000050c0059070000024507005d07104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e64611c4f726967696e7300000000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d6504006507000001000065070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540169070453000004006d0701185665633c543e000069070000040849028901006d0700000269070071070c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c65741043616c6c040454000104586d6967726174655f746f5f6e65775f6163636f756e74080118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e0000105d014d6967726174657320616e206578697374696e6720706f6f6c20746f2061206e6577206163636f756e742049442064657269766174696f6e206d6574686f6420666f72206120676976656e20617373657420706169722e3101496620746865206d6967726174696f6e206973207375636365737366756c2c207472616e73616374696f6e20666565732061726520726566756e64656420746f207468652063616c6c65722e003c4d757374206265207369676e65642e047050616c6c657427732063616c6c61626c652066756e6374696f6e732e75070c3470616c6c65745f7265766976651870616c6c65741043616c6c040454000128306574685f7472616e7361637404011c7061796c6f616438011c5665633c75383e00003c2d0141207261772045564d207472616e73616374696f6e2c207479706963616c6c79206469737061746368656420627920616e20457468657265756d204a534f4e2d525043207365727665722e00302320506172616d657465727300ec2a20607061796c6f6164603a2054686520656e636f646564205b6063726174653a3a65766d3a3a5472616e73616374696f6e5369676e6564605d2e01012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f7263656420647572696e6720636f6e747261637420657865637574696f6e2e51012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d2062616c616e636520746861742063616e206265206368617267656420746f207468652063616c6c657220666f7240202073746f726167652075736167652e001823204e6f7465005101546869732063616c6c2063616e6e6f742062652064697370617463686564206469726563746c793b20617474656d7074696e6720746f20646f20736f2077696c6c20726573756c7420696e2061206661696c656451017472616e73616374696f6e2e204974207365727665732061732061207772617070657220666f7220616e20457468657265756d207472616e73616374696f6e2e205768656e207375626d69747465642c20746865590172756e74696d6520636f6e766572747320697420696e746f2061205b6073705f72756e74696d653a3a67656e657269633a3a436865636b656445787472696e736963605d206279207265636f766572696e6720746865987369676e657220616e642076616c69646174696e6720746865207472616e73616374696f6e2e1063616c6c14011064657374790701104831363000011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69749902013042616c616e63654f663c543e0001106461746138011c5665633c75383e00014005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e746961746518011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69749902013042616c616e63654f663c543e000124636f64655f6861736834013473705f636f72653a3a483235360001106461746138011c5665633c75383e00011073616c74710101404f7074696f6e3c5b75383b2033325d3e000214fc496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654901636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e617279446d75737420626520737570706c6965642e54696e7374616e74696174655f776974685f636f646518011476616c75659902013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d69749902013042616c616e63654f663c543e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c74710101404f7074696f6e3c5b75383b2033325d3e00036c3101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3d012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e2049662060536f6d656020697320737570706c696564207468656e20604352454154453260d40973656d616e746963732061726520757365642e20496620604e6f6e6560207468656e20604352415445316020697320757365642e000094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0039012d2054686520737570706c6965642060636f646560206973206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c75706c6f61645f636f6465080110636f646538011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d69749902013042616c616e63654f663c543e000430ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665ac646570656e6473206f6e207468652073697a65206f662074686520737570706c6965642060636f6465602e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e2c72656d6f76655f636f6465040124636f64655f6861736834013473705f636f72653a3a48323536000510350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e207365745f636f6465080110646573747907011048313630000124636f64655f6861736834013473705f636f72653a3a48323536000628090150726976696c656765642066756e6374696f6e2074686174206368616e6765732074686520636f6465206f6620616e206578697374696e6720636f6e74726163742e004501546869732074616b65732063617265206f66207570646174696e6720726566636f756e747320616e6420616c6c206f74686572206e6563657373617279206f7065726174696f6e732e2052657475726e73e8616e206572726f7220696620656974686572207468652060636f64655f6861736860206f722060646573746020646f206e6f742065786973742e001823204e6f74650031015468697320646f6573202a2a6e6f742a2a206368616e6765207468652061646472657373206f662074686520636f6e747261637420696e207175657374696f6e2e2054686973206d65616e733d01746861742074686520636f6e74726163742061646472657373206973206e6f206c6f6e67657220646572697665642066726f6d2069747320636f646520686173682061667465722063616c6c696e67487468697320646973706174636861626c652e2c6d61705f6163636f756e7400071041015265676973746572207468652063616c6c657273206163636f756e7420696420736f20746861742069742063616e206265207573656420696e20636f6e747261637420696e746572616374696f6e732e005d01546869732077696c6c206572726f7220696620746865206f726967696e20697320616c7265616479206d6170706564206f72206973206120657468206e61746976652060416464726573733230602e2049742077696c6c1d0174616b652061206465706f73697420746861742063616e2062652072656c65617365642062792063616c6c696e67205b6053656c663a3a756e6d61705f6163636f756e74605d2e34756e6d61705f6163636f756e74000810fc556e7265676973746572207468652063616c6c657273206163636f756e7420696420696e206f7264657220746f206672656520746865206465706f7369742e0041015468657265206973206e6f20726561736f6e20746f20657665722063616c6c20746869732066756e6374696f6e206f74686572207468616e2066726565696e6720757020746865206465706f7369742ef854686973206973206f6e6c792075736566756c207768656e20746865206163636f756e742073686f756c64206e6f206c6f6e67657220626520757365642e7064697370617463685f61735f66616c6c6261636b5f6163636f756e7404011063616c6c2d02017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0009141d01446973706174636820616e206063616c6c60207769746820746865206f726967696e2073657420746f207468652063616c6c6572732066616c6c6261636b20616464726573732e006101457665727920604163636f756e7449643332602063616e20636f6e74726f6c2069747320636f72726573706f6e64696e672066616c6c6261636b206163636f756e742e205468652066616c6c6261636b206163636f756e74410169732074686520604163636f756e744964323060207769746820746865206c6173742031322062797465732073657420746f206030784545602e205468697320697320657373656e7469616c6c79206155017265636f766572792066756e6374696f6e20696e206361736520616e20604163636f756e74496432306020776173207573656420776974686f7574206372656174696e672061206d617070696e672066697273742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7907083c7072696d69746976655f7479706573104831363000000400910201205b75383b2032305d00007d070c5070616c6c65745f61737365745f726577617264731870616c6c65741043616c6c0404540001242c6372656174655f706f6f6c14013c7374616b65645f61737365745f6964a0013c426f783c543a3a417373657449643e00013c7265776172645f61737365745f6964a0013c426f783c543a3a417373657449643e0001547265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e63650001186578706972791906017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e00011461646d696eac01504f7074696f6e3c543a3a4163636f756e7449643e000030644372656174652061206e65772072657761726420706f6f6c2e002c506172616d65746572733abc2d20606f726967696e603a206d7573742062652060436f6e6669673a3a437265617465506f6f6c4f726967696e603be02d20607374616b65645f61737365745f6964603a2074686520617373657420746f206265207374616b656420696e2074686520706f6f6c3bf02d20607265776172645f61737365745f6964603a2074686520617373657420746f20626520646973747269627574656420617320726577617264733b35012d20607265776172645f726174655f7065725f626c6f636b603a2074686520616d6f756e74206f662072657761726420746f6b656e732064697374726962757465642070657220626c6f636b3b51012d2060657870697279603a2074686520626c6f636b206e756d6265722061742077686963682074686520706f6f6c2077696c6c20636561736520746f20616363756d756c61746520726577617264732e20546865090120205b60446973706174636854696d653a3a4166746572605d2076617269616e74206576616c75617465642061742074686520657865637574696f6e2074696d652e5d012d206061646d696e603a20746865206163636f756e7420616c6c6f77656420746f20657874656e642074686520706f6f6c2065787069726174696f6e2c20696e637265617365207468652072657761726473207261746555012020616e6420726563656976652074686520756e7574696c697a65642072657761726420746f6b656e73206261636b2061667465722074686520706f6f6c20636f6d706c6574696f6e2e20496620604e6f6e65602c8020207468652063616c6c65722069732073657420617320616e2061646d696e2e147374616b6508011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e74180128543a3a42616c616e636500010c885374616b65206164646974696f6e616c20746f6b656e7320696e206120706f6f6c2e00a04120667265657a6520697320706c61636564206f6e20746865207374616b656420746f6b656e732e1c756e7374616b650c011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e74180128543a3a42616c616e63650001187374616b6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0002246c556e7374616b6520746f6b656e732066726f6d206120706f6f6c2e00a052656d6f7665732074686520667265657a65206f6e20746865207374616b656420746f6b656e732e002c506172616d65746572733a4d012d206f726967696e3a206d7573742062652074686520607374616b6572602069662074686520706f6f6c206973207374696c6c206163746976652e204f74686572776973652c20616e79206163636f756e742e902d20706f6f6c5f69643a2074686520706f6f6c20746f20756e7374616b652066726f6d2ea82d20616d6f756e743a2074686520616d6f756e74206f6620746f6b656e7320746f20756e7374616b652e15012d207374616b65723a20746865206163636f756e7420746f20756e7374616b652066726f6d2e20496620604e6f6e65602c207468652063616c6c657220697320757365642e3c686172766573745f7265776172647308011c706f6f6c5f6964100118506f6f6c49640001187374616b6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0003187c4861727665737420756e636c61696d656420706f6f6c20726577617264732e002c506172616d65746572733a4d012d206f726967696e3a206d7573742062652074686520607374616b6572602069662074686520706f6f6c206973207374696c6c206163746976652e204f74686572776973652c20616e79206163636f756e742e902d20706f6f6c5f69643a2074686520706f6f6c20746f20686172766573742066726f6d2e49012d207374616b65723a20746865206163636f756e7420666f7220776869636820746f206861727665737420726577617264732e20496620604e6f6e65602c207468652063616c6c657220697320757365642e787365745f706f6f6c5f7265776172645f726174655f7065725f626c6f636b08011c706f6f6c5f6964100118506f6f6c49640001646e65775f7265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e6365000414684d6f64696679206120706f6f6c2072657761726420726174652e00c043757272656e746c79207468652072657761726420726174652063616e206f6e6c7920626520696e637265617365642e00bc4f6e6c792074686520706f6f6c2061646d696e206d617920706572666f726d2074686973206f7065726174696f6e2e387365745f706f6f6c5f61646d696e08011c706f6f6c5f6964100118506f6f6c49640001246e65775f61646d696e000130543a3a4163636f756e74496400050c504d6f64696679206120706f6f6c2061646d696e2e00bc4f6e6c792074686520706f6f6c2061646d696e206d617920706572666f726d2074686973206f7065726174696f6e2e547365745f706f6f6c5f6578706972795f626c6f636b08011c706f6f6c5f6964100118506f6f6c49640001286e65775f6578706972791906017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e00061480536574207768656e2074686520706f6f6c2073686f756c64206578706972652e00c043757272656e746c79207468652065787069727920626c6f636b2063616e206f6e6c7920626520657874656e6465642e00bc4f6e6c792074686520706f6f6c2061646d696e206d617920706572666f726d2074686973206f7065726174696f6e2e546465706f7369745f7265776172645f746f6b656e7308011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e74180128543a3a42616c616e6365000714e0436f6e76656e69656e6365206d6574686f6420746f206465706f7369742072657761726420746f6b656e7320696e746f206120706f6f6c2e00490154686973206d6574686f64206973206e6f74207374726963746c79206e65636573736172792028746f6b656e7320636f756c64206265207472616e73666572726564206469726563746c7920746f207468653901706f6f6c20706f742061646472657373292c206275742069732070726f766964656420666f7220636f6e76656e69656e636520736f206d616e75616c2064657269766174696f6e206f66207468656c6163636f756e74206964206973206e6f742072657175697265642e30636c65616e75705f706f6f6c04011c706f6f6c5f6964100118506f6f6c49640008183c436c65616e7570206120706f6f6c2e00784f726967696e206d7573742062652074686520706f6f6c2061646d696e2e005101436c65616e75702073746f726167652c2072656c6561736520616e79206173736f6369617465642073746f7261676520636f737420616e642072657475726e207468652072656d61696e696e672072657761726450746f6b656e7320746f207468652061646d696e2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732e81070c3870616c6c65745f6d6574615f74781870616c6c65741043616c6c04045400010420646973706174636804011c6d6574615f747885070144426f783c4d6574615478466f723c543e3e000010884469737061746368206120676976656e206d657461207472616e73616374696f6e2e009c2d20605f6f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e09012d20606d6574615f7478603a204d657461205472616e73616374696f6e20776974682061207461726765742063616c6c20746f20626520646973706174636865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8507083870616c6c65745f6d6574615f7478184d6574615478081043616c6c012d0224457874656e73696f6e018907000c011063616c6c2d02011043616c6c000144657874656e73696f6e5f76657273696f6e080140457874656e73696f6e56657273696f6e000124657874656e73696f6e89070124457874656e73696f6e00008907000004248d079107950799079d07a107a507ad07b107008d070c5c70616c6c65745f7665726966795f7369676e617475726524657874656e73696f6e3c5665726966795369676e6174757265040454000108185369676e65640801247369676e6174757265e5040130543a3a5369676e617475726500011c6163636f756e74000130543a3a4163636f756e7449640000002044697361626c65640001000091070c3870616c6c65745f6d6574615f747824657874656e73696f6e304d65746154784d61726b657204045400000000950710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000990710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e040454000000009d0710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a10710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000a50710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400a907010c4572610000a907102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ad0710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040069020120543a3a4e6f6e63650000b10708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465b50701104d6f64650000b50708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000b9070c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000bd070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f7465730000c1070c3470616c6c65745f72656d61726b1870616c6c6574144576656e740404540001041853746f72656408011873656e646572000130543a3a4163636f756e744964000130636f6e74656e745f6861736834013473705f636f72653a3a483235360000045853746f7265642064617461206f666620636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5070c4c70616c6c65745f726f6f745f74657374696e671870616c6c6574144576656e7404045400010444446566656e736976655465737443616c6c00000401014576656e742064697370617463686564207768656e2074686520747269676765725f646566656e736976652065787472696e7369632069732063616c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c9070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001142444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f74656408010c77686f000130543a3a4163636f756e744964000110766f7465290601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f76656408010c77686f000130543a3a4163636f756e744964000110766f7465290601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c61737389010134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74d10701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1070418526573756c7408045401d507044501dd070108084f6b0400d507000000000c4572720400dd070000010000d5070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874d90701384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000d90704184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000dd07082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01d50700080124706f73745f696e666fd5070110496e666f0001146572726f7268013444697370617463684572726f720000e1070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e5070c3c70616c6c65745f616c6c69616e63651870616c6c6574144576656e74080454000449000134284e657752756c6553657404011072756c654506010c4369640000046041206e65772072756c6520686173206265656e207365742e24416e6e6f756e636564040130616e6e6f756e63656d656e744506010c4369640001049441206e657720616e6e6f756e63656d656e7420686173206265656e2070726f706f7365642e4c416e6e6f756e63656d656e7452656d6f766564040130616e6e6f756e63656d656e744506010c436964000204a8416e206f6e2d636861696e20616e6e6f756e63656d656e7420686173206265656e2072656d6f7665642e484d656d62657273496e697469616c697a656408011c66656c6c6f7773590101445665633c543a3a4163636f756e7449643e000118616c6c696573590101445665633c543a3a4163636f756e7449643e0003040101536f6d65206163636f756e74732068617665206265656e20696e697469616c697a6564206173206d656d62657273202866656c6c6f77732f616c6c696573292e344e6577416c6c794a6f696e65640c0110616c6c79000130543a3a4163636f756e7449640001246e6f6d696e61746f72ac01504f7074696f6e3c543a3a4163636f756e7449643e0001207265736572766564a903015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000404f8416e206163636f756e7420686173206265656e20616464656420617320616e20416c6c7920616e6420726573657276656420697473206465706f7369742e30416c6c79456c657661746564040110616c6c79000130543a3a4163636f756e74496400050490416e20616c6c7920686173206265656e20656c65766174656420746f2046656c6c6f772e744d656d6265725265746972656d656e74506572696f64537461727465640401186d656d626572000130543a3a4163636f756e744964000604110141206d656d6265722067617665207265746972656d656e74206e6f7469636520616e64207468656972207265746972656d656e7420706572696f6420737461727465642e344d656d626572526574697265640801186d656d626572000130543a3a4163636f756e744964000128756e7265736572766564a903015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000704c441206d656d626572206861732072657469726564207769746820697473206465706f73697420756e72657365727665642e304d656d6265724b69636b65640801186d656d626572000130543a3a4163636f756e74496400011c736c6173686564a903015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000804d841206d656d62657220686173206265656e206b69636b6564206f7574207769746820697473206465706f73697420736c61736865642e54556e7363727570756c6f75734974656d41646465640401146974656d73550601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e00090425014163636f756e7473206f722077656273697465732068617665206265656e20616464656420696e746f20746865206c697374206f6620756e7363727570756c6f7573206974656d732e5c556e7363727570756c6f75734974656d52656d6f7665640401146974656d73550601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000a042d014163636f756e7473206f722077656273697465732068617665206265656e2072656d6f7665642066726f6d20746865206c697374206f6620756e7363727570756c6f7573206974656d732e44416c6c69616e636544697362616e6465640c013866656c6c6f775f6d656d6265727310010c753332000130616c6c795f6d656d6265727310010c753332000128756e726573657276656410010c753332000b043101416c6c69616e63652064697362616e6465642e20496e636c75646573206e756d6265722064656c65746564206d656d6265727320616e6420756e7265736572766564206465706f736974732e3c46656c6c6f7741626469636174656404011866656c6c6f77000130543a3a4163636f756e744964000c04f4412046656c6c6f772061626469636174656420746865697220766f74696e67207269676874732e205468657920617265206e6f7720616e20416c6c792e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e9070c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e7404045400015c1c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f737461746569060124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f7665640c011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400014072656c65617365645f62616c616e636518013042616c616e63654f663c543e0007149841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e4901416e792066756e6473207468617420617265207374696c6c2064656c6567617465642028692e652e2064616e676c696e672064656c65676174696f6e29206172652072656c656173656420616e642061726588726570726573656e746564206279206072656c65617365645f62616c616e6365602e30526f6c6573557064617465640c0110726f6f74ac01504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72ac01504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e748106017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ec4011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174658906019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e8d0601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e704d656d626572436c61696d5065726d697373696f6e557064617465640801186d656d626572000130543a3a4163636f756e7449640001287065726d697373696f6e7d06013c436c61696d5065726d697373696f6e001204c84120706f6f6c206d656d626572277320636c61696d207065726d697373696f6e20686173206265656e20757064617465642e3c4d657461646174615570646174656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001304784120706f6f6c2773206d657461646174612077617320757064617465642e48506f6f6c4e6f6d696e6174696f6e4d61646508011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e74496400140859014120706f6f6c2773206e6f6d696e6174696e67206163636f756e7420286f722074686520706f6f6c277320726f6f74206163636f756e742920686173206e6f6d696e6174656420612076616c696461746f7220736574586f6e20626568616c66206f662074686520706f6f6c2e50506f6f6c4e6f6d696e61746f724368696c6c656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001504b854686520706f6f6c206973206368696c6c656420692e652e206e6f206c6f6e676572206e6f6d696e6174696e672e4c476c6f62616c506172616d73557064617465641801346d696e5f6a6f696e5f626f6e6418013042616c616e63654f663c543e00013c6d696e5f6372656174655f626f6e6418013042616c616e63654f663c543e0001246d61785f706f6f6c73c8012c4f7074696f6e3c7533323e00012c6d61785f6d656d62657273c8012c4f7074696f6e3c7533323e0001506d61785f6d656d626572735f7065725f706f6f6cc8012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6eed07013c4f7074696f6e3c50657262696c6c3e0016040101476c6f62616c20706172616d657465727320726567756c6174696e67206e6f6d696e6174696f6e20706f6f6c732068617665206265656e20757064617465642e04584576656e7473206f6620746869732070616c6c65742eed0704184f7074696f6e04045401c40108104e6f6e6500000010536f6d650400c40000010000f1070c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8901013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2902014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8901013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c2902014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79f5070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79f5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79f5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79f5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79f5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79f5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f507086070616c6c65745f72616e6b65645f636f6c6c6563746976651454616c6c790c045400044900044d00000c0124626172655f6179657310012c4d656d626572496e64657800011061796573100114566f7465730001106e617973100114566f7465730000f9070c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144576656e740804540004490001142c4d656d626572416464656404010c77686f000130543a3a4163636f756e7449640000047841206d656d626572206077686f6020686173206265656e2061646465642e2c52616e6b4368616e67656408010c77686f000130543a3a4163636f756e74496400011072616e6b8901011052616e6b000104f4546865206d656d626572206077686f6073652072616e6b20686173206265656e206368616e67656420746f2074686520676976656e206072616e6b602e344d656d62657252656d6f76656408010c77686f000130543a3a4163636f756e74496400011072616e6b8901011052616e6b0002041901546865206d656d626572206077686f60206f6620676976656e206072616e6b6020686173206265656e2072656d6f7665642066726f6d2074686520636f6c6c6563746976652e14566f74656410010c77686f000130543a3a4163636f756e744964000110706f6c6c100144506f6c6c496e6465784f663c542c20493e000110766f7465fd070128566f74655265636f726400011474616c6c79f507013454616c6c794f663c542c20493e0003085501546865206d656d626572206077686f602068617320766f74656420666f72207468652060706f6c6c6020776974682074686520676976656e2060766f746560206c656164696e6720746f20616e2075706461746564206074616c6c79602e3c4d656d62657245786368616e67656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000404f0546865206d656d626572206077686f602068616420746865697220604163636f756e74496460206368616e67656420746f20606e65775f77686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd07086070616c6c65745f72616e6b65645f636f6c6c65637469766528566f74655265636f72640001080c4179650400100114566f7465730000000c4e61790400100114566f7465730001000001080c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144576656e740404540001182c506f6f6c4372656174656410011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f696405080124543a3a506f6f6c496408490154686520706f6f6c206964206173736f63696174656420776974682074686520706f6f6c2e204e6f7465207468617420746865206f72646572206f662074686520617373657473206d6179206e6f74206265f47468652073616d6520617320746865206f726465722073706563696669656420696e207468652063726561746520706f6f6c2065787472696e7369632e0130706f6f6c5f6163636f756e74000130543a3a4163636f756e744964046c546865206163636f756e74204944206f662074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964084101546865206964206f6620746865206c697175696469747920746f6b656e7320746861742077696c6c206265206d696e746564207768656e206173736574732061726520616464656420746f207468697314706f6f6c2e00041d0141207375636365737366756c2063616c6c206f66207468652060437265617465506f6f6c602065787472696e7369632077696c6c206372656174652074686973206576656e742e384c697175696469747941646465641c010c77686f000130543a3a4163636f756e74496404b8546865206163636f756e74207468617420746865206c6971756964697479207761732074616b656e2066726f6d2e011c6d696e745f746f000130543a3a4163636f756e74496404d4546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206d696e74656420746f2e011c706f6f6c5f696405080124543a3a506f6f6c496404e054686520706f6f6c206964206f662074686520706f6f6c207468617420746865206c69717569646974792077617320616464656420746f2e0140616d6f756e74315f70726f7669646564180128543a3a42616c616e636504e454686520616d6f756e74206f662074686520666972737420617373657420746861742077617320616464656420746f2074686520706f6f6c2e0140616d6f756e74325f70726f7669646564180128543a3a42616c616e636504e854686520616d6f756e74206f6620746865207365636f6e6420617373657420746861742077617320616464656420746f2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206d696e7465642e013c6c705f746f6b656e5f6d696e746564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206d696e746564206f6620746861742069642e0104250141207375636365737366756c2063616c6c206f662074686520604164644c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e404c697175696469747952656d6f76656420010c77686f000130543a3a4163636f756e74496404dc546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206275726e65642066726f6d2e012c77697468647261775f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e011c706f6f6c5f696405080124543a3a506f6f6c496404c054686520706f6f6c206964207468617420746865206c6971756964697479207761732072656d6f7665642066726f6d2e011c616d6f756e7431180128543a3a42616c616e636504f454686520616d6f756e74206f66207468652066697273742061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e011c616d6f756e7432180128543a3a42616c616e636504f854686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206275726e65642e013c6c705f746f6b656e5f6275726e6564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206275726e6564206f6620746861742069642e01387769746864726177616c5f6665650908011c5065726d696c6c04744c6971756964697479207769746864726177616c20666565202825292e0204310141207375636365737366756c2063616c6c206f6620746865206052656d6f76654c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e3053776170457865637574656414010c77686f000130543a3a4163636f756e74496404b45768696368206163636f756e74207761732074686520696e7374696761746f72206f662074686520737761702e011c73656e645f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174680d08013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f757429030835014173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e20426f74682060537761704578616374546f6b656e466f72546f6b656e60d8616e64206053776170546f6b656e466f724578616374546f6b656e602077696c6c2067656e65726174652074686973206576656e742e485377617043726564697445786563757465640c0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174680d08013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f7574290404bc4173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e1c546f756368656408011c706f6f6c5f696405080124543a3a506f6f6c4964044c546865204944206f662074686520706f6f6c2e010c77686f000130543a3a4163636f756e7449640484546865206163636f756e7420696e6974696174696e672074686520746f7563682e05040d01506f6f6c20686173206265656e20746f756368656420696e206f7264657220746f2066756c66696c6c206f7065726174696f6e616c20726571756972656d656e74732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574050800000408a0a00009080c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200000d08000002110800110800000408a0180015080c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c748401384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173c10101345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f721d08014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e1001484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d0810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d6974526561636865640005000021080c746672616d655f62656e63686d61726b696e675f70616c6c65745f706f761870616c6c6574144576656e7404045400010424546573744576656e74000000047c54686520604576656e746020656e756d206f6620746869732070616c6c657425080c3c70616c6c65745f74785f70617573651870616c6c6574144576656e740404540001082843616c6c50617573656404012466756c6c5f6e616d65b506015052756e74696d6543616c6c4e616d654f663c543e000004b8546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f77207061757365642e3043616c6c556e70617573656404012466756c6c5f6e616d65b506015052756e74696d6543616c6c4e616d654f663c543e000104c0546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f7720756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657429080c4070616c6c65745f736166655f6d6f64651870616c6c6574144576656e740404540001201c456e7465726564040114756e74696c100144426c6f636b4e756d626572466f723c543e000004dc54686520736166652d6d6f64652077617320656e746572656420756e74696c20696e636c75736976656c79207468697320626c6f636b2e20457874656e646564040114756e74696c100144426c6f636b4e756d626572466f723c543e000104e054686520736166652d6d6f64652077617320657874656e64656420756e74696c20696e636c75736976656c79207468697320626c6f636b2e18457869746564040118726561736f6e2d08012845786974526561736f6e000204ac4578697465642074686520736166652d6d6f646520666f72206120737065636966696320726561736f6e2e344465706f736974506c6163656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0003042501416e206163636f756e742072657365727665642066756e647320666f722065697468657220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e3c4465706f73697452656c656173656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000404d0416e206163636f756e7420686164206120726573657276652072656c65617365642074686174207761732072657365727665642e384465706f736974536c617368656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000504c4416e206163636f756e7420686164207265736572766520736c61736865642074686174207761732072657365727665642e3443616e6e6f744465706f73697400060cf4436f756c64206e6f7420686f6c642066756e647320666f7220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e00c054686973206572726f7220636f6d65732066726f6d2074686520756e6465726c79696e67206043757272656e6379602e3443616e6e6f7452656c6561736500070c0101436f756c64206e6f742072656c656173652066756e647320666f7220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e00c054686973206572726f7220636f6d65732066726f6d2074686520756e6465726c79696e67206043757272656e6379602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d080c4070616c6c65745f736166655f6d6f64651870616c6c65742845786974526561736f6e0001081c54696d656f757400000014466f7263650001000031080c4070616c6c65745f73746174656d656e741870616c6c6574144576656e74040454000104304e657753746174656d656e7408011c6163636f756e74000130543a3a4163636f756e74496400012473746174656d656e743508012453746174656d656e740000047041206e65772073746174656d656e74206973207375626d6974746564047c54686520604576656e746020656e756d206f6620746869732070616c6c65743508084873705f73746174656d656e745f73746f72652453746174656d656e7400001c011470726f6f66390801344f7074696f6e3c50726f6f663e00013864656372797074696f6e5f6b6579710101544f7074696f6e3c44656372797074696f6e4b65793e00011c6368616e6e656c7101013c4f7074696f6e3c4368616e6e656c3e0001207072696f72697479c8012c4f7074696f6e3c7533323e0001286e756d5f746f706963730801087538000118746f706963734108014c5b546f7069633b204d41585f544f504943535d00011064617461dd06013c4f7074696f6e3c5665633c75383e3e0000390804184f7074696f6e040454013d080108104e6f6e6500000010536f6d6504003d0800000100003d08084873705f73746174656d656e745f73746f72651450726f6f660001101c537232353531390801247369676e61747572650d0401205b75383b2036345d0001187369676e65720401205b75383b2033325d0000001c456432353531390801247369676e61747572650d0401205b75383b2036345d0001187369676e65720401205b75383b2033325d00010038536563703235366b3145636473610801247369676e6174757265e90401205b75383b2036355d0001187369676e6572d10301205b75383b2033335d0002001c4f6e436861696e0c010c77686f0401244163636f756e744964000128626c6f636b5f68617368040124426c6f636b4861736800012c6576656e745f696e64657830010c75363400030000410800000304000000040045080c4470616c6c65745f6d6967726174696f6e731870616c6c6574144576656e740404540001203855706772616465537461727465640401286d6967726174696f6e7310010c75333210d0546865206e756d626572206f66206d6967726174696f6e7320746861742074686973207570677261646520636f6e7461696e732e004101546869732063616e206265207573656420746f2064657369676e20612070726f677265737320696e64696361746f7220696e20636f6d62696e6174696f6e207769746820636f756e74696e6720746865cc604d6967726174696f6e436f6d706c657465646020616e6420604d6967726174696f6e536b697070656460206576656e74732e000c68412052756e74696d65207570677261646520737461727465642e00f849747320656e6420697320696e64696361746564206279206055706772616465436f6d706c6574656460206f722060557067726164654661696c6564602e4055706772616465436f6d706c6574656400010c985468652063757272656e742072756e74696d65207570677261646520636f6d706c657465642e001d015468697320696d706c696573207468617420616c6c206f6620697473206d6967726174696f6e7320636f6d706c65746564207375636365737366756c6c792061732077656c6c2e34557067726164654661696c656400020c5c52756e74696d652075706772616465206661696c65642e00e85468697320697320766572792062616420616e642077696c6c207265717569726520676f7665726e616e636520696e74657276656e74696f6e2e404d6967726174696f6e536b6970706564040114696e64657810010c75333204290154686520696e646578206f662074686520736b6970706564206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0304090141206d6967726174696f6e2077617320736b69707065642073696e63652069742077617320616c726561647920657865637574656420696e2074686520706173742e444d6967726174696f6e416476616e636564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e04045c41206d6967726174696f6e2070726f677265737365642e484d6967726174696f6e436f6d706c65746564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e05045841204d6967726174696f6e20636f6d706c657465642e3c4d6967726174696f6e4661696c6564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e060c4c41204d6967726174696f6e206661696c65642e004d015468697320696d706c6965732074686174207468652077686f6c652075706772616465206661696c656420616e6420676f7665726e616e636520696e74657276656e74696f6e2069732072657175697265642e3c486973746f726963436c656172656404012c6e6578745f637572736f72dd06013c4f7074696f6e3c5665633c75383e3e04e853686f756c642062652070617373656420746f2060636c6561725f686973746f7269636020696e206120737563636573736976652063616c6c2e0704c854686520736574206f6620686973746f726963616c206d6967726174696f6e7320686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657449080c3470616c6c65745f62726f6b65721870616c6c6574144576656e740404540001882450757263686173656410010c77686f000130543a3a4163636f756e7449640478546865206964656e74697479206f6620746865207075726368617365722e0124726567696f6e5f6964fd060120526567696f6e4964046c546865206964656e74697479206f662074686520526567696f6e2e0114707269636518013042616c616e63654f663c543e047c546865207072696365207061696420666f72207468697320526567696f6e2e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e0004b44120526567696f6e206f662042756c6b20436f726574696d6520686173206265656e207075726368617365642e2452656e657761626c65100110636f726589010124436f7265496e646578049c54686520636f72652077686f736520776f726b6c6f61642063616e2062652072656e657765642e0114707269636518013042616c616e63654f663c543e04bc5468652070726963652061742077686963682074686520776f726b6c6f61642063616e2062652072656e657765642e0114626567696e10012454696d65736c6963650c49015468652074696d652061742077686963682074686520776f726b6c6f616420776f756c64207265636f6d6d656e6365206f6620746869732072656e6577616c2e205468652063616c6c20746f2072656e6577450163616e6e6f742068617070656e206265666f72652074686520626567696e6e696e67206f662074686520696e7465726c756465207072696f7220746f207468652073616c6520666f7220726567696f6e7364776869636820626567696e20617420746869732074696d652e0120776f726b6c6f6164e90601205363686564756c6504a45468652061637475616c20776f726b6c6f61642077686963682063616e2062652072656e657765642e0104b054686520776f726b6c6f6164206f66206120636f726520686173206265636f6d652072656e657761626c652e1c52656e657765641c010c77686f000130543a3a4163636f756e7449640470546865206964656e74697479206f66207468652072656e657765722e0114707269636518013042616c616e63654f663c543e0480546865207072696365207061696420666f7220746869732072656e6577616c2e01206f6c645f636f726589010124436f7265496e646578041d0154686520696e646578206f662074686520636f7265206f6e207768696368207468652060776f726b6c6f616460207761732070726576696f75736c79207363686564756c65642e0110636f726589010124436f7265496e64657804250154686520696e646578206f662074686520636f7265206f6e207768696368207468652072656e657765642060776f726b6c6f61646020686173206265656e207363686564756c65642e0114626567696e10012454696d65736c69636504e85468652074696d65206174207768696368207468652060776f726b6c6f6164602077696c6c20626567696e206f6e207468652060636f7265602e01206475726174696f6e10012454696d65736c696365041901546865206e756d626572206f662074696d65736c6963657320666f7220776869636820746869732060776f726b6c6f616460206973206e65776c79207363686564756c65642e0120776f726b6c6f6164e90601205363686564756c65047c54686520776f726b6c6f6164207768696368207761732072656e657765642e0204704120776f726b6c6f616420686173206265656e2072656e657765642e2c5472616e73666572726564100124726567696f6e5f6964fd060120526567696f6e4964049854686520526567696f6e20776869636820686173206265656e207472616e736665727265642e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e01246f6c645f6f776e6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0470546865206f6c64206f776e6572206f662074686520526567696f6e2e01146f776e6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0470546865206e6577206f776e6572206f662074686520526567696f6e2e0304ac4f776e657273686970206f66206120526567696f6e20686173206265656e207472616e736665727265642e2c506172746974696f6e65640801346f6c645f726567696f6e5f6964fd060120526567696f6e4964046c54686520526567696f6e207768696368207761732073706c69742e01386e65775f726567696f6e5f6964734d08015028526567696f6e49642c20526567696f6e4964290494546865206e657720526567696f6e7320696e746f20776869636820697420626563616d652e0404e44120526567696f6e20686173206265656e2073706c697420696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e732e28496e7465726c616365640801346f6c645f726567696f6e5f6964fd060120526567696f6e4964048054686520526567696f6e2077686963682077617320696e7465726c616365642e01386e65775f726567696f6e5f6964734d08015028526567696f6e49642c20526567696f6e4964290494546865206e657720526567696f6e7320696e746f20776869636820697420626563616d652e05044d014120526567696f6e20686173206265656e20636f6e76657274656420696e746f2074776f206f7665726c617070696e6720526567696f6e732065616368206f66206c657373657220726567756c61726974792e2041737369676e65640c0124726567696f6e5f6964fd060120526567696f6e4964047854686520526567696f6e207768696368207761732061737369676e65642e01206475726174696f6e10012454696d65736c696365047c546865206475726174696f6e206f66207468652061737369676e6d656e742e01107461736b1001185461736b496404a8546865207461736b20746f2077686963682074686520526567696f6e207761732061737369676e65642e0604c04120526567696f6e20686173206265656e2061737369676e656420746f206120706172746963756c6172207461736b2e4441737369676e6d656e7452656d6f766564040124726567696f6e5f6964fd060120526567696f6e496404bc54686520526567696f6e207768696368207761732072656d6f7665642066726f6d2074686520776f726b706c616e2e0704c4416e2061737369676e6d656e7420686173206265656e2072656d6f7665642066726f6d2074686520776f726b706c616e2e18506f6f6c6564080124726567696f6e5f6964fd060120526567696f6e496404f854686520526567696f6e2077686963682077617320616464656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e0804ec4120526567696f6e20686173206265656e20616464656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e48436f7265436f756e74526571756573746564040128636f72655f636f756e7489010124436f7265496e6465780478546865206e756d626572206f6620636f726573207265717565737465642e0904a441206e6577206e756d626572206f6620636f72657320686173206265656e207265717565737465642e40436f7265436f756e744368616e676564040128636f72655f636f756e7489010124436f7265496e64657804c4546865206e6577206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e672e0a04e4546865206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e6720686173206368616e6765642e3c5265736572766174696f6e4d616465080114696e64657810010c753332047454686520696e646578206f6620746865207265736572766174696f6e2e0120776f726b6c6f6164e90601205363686564756c65048054686520776f726b6c6f6164206f6620746865207265736572766174696f6e2e0b04a854686572652069732061206e6577207265736572766174696f6e20666f72206120776f726b6c6f61642e505265736572766174696f6e43616e63656c6c6564080114696e64657810010c75333204c454686520696e646578206f6620746865207265736572766174696f6e207768696368207761732063616e63656c6c65642e0120776f726b6c6f6164e90601205363686564756c6504b854686520776f726b6c6f6164206f6620746865206e6f772063616e63656c6c6564207265736572766174696f6e2e0c04c041207265736572766174696f6e20666f72206120776f726b6c6f616420686173206265656e2063616e63656c6c65642e3c53616c65496e697469616c697a656420012873616c655f737461727410015452656c6179426c6f636b4e756d6265724f663c543e04e05468652072656c617920626c6f636b206e756d626572206174207768696368207468652073616c652077696c6c2f6469642073746172742e01346c656164696e5f6c656e67746810015452656c6179426c6f636b4e756d6265724f663c543e082501546865206c656e67746820696e2072656c617920636861696e20626c6f636b73206f6620746865204c656164696e20506572696f6420287768657265207468652070726963652069733064656372656173696e67292e012c73746172745f707269636518013042616c616e63654f663c543e040501546865207072696365206f662042756c6b20436f726574696d652061742074686520626567696e6e696e67206f6620746865204c656164696e20506572696f642e0124656e645f707269636518013042616c616e63654f663c543e04cc546865207072696365206f662042756c6b20436f726574696d6520616674657220746865204c656164696e20506572696f642e0130726567696f6e5f626567696e10012454696d65736c6963650415015468652066697273742074696d65736c696365206f662074686520526567696f6e7320776869636820617265206265696e6720736f6c6420696e20746869732073616c652e0128726567696f6e5f656e6410012454696d65736c6963650839015468652074696d65736c696365206f6e2077686963682074686520526567696f6e7320776869636820617265206265696e6720736f6c6420696e207468652073616c65207465726d696e6174652ef828692e652e204f6e6520616674657220746865206c6173742074696d65736c6963652077686963682074686520526567696f6e7320636f6e74726f6c2e290140696465616c5f636f7265735f736f6c6489010124436f7265496e64657804b4546865206e756d626572206f6620636f7265732077652077616e7420746f2073656c6c2c20696465616c6c792e0134636f7265735f6f66666572656489010124436f7265496e64657804d44e756d626572206f6620636f726573207768696368206172652f68617665206265656e206f66666572656420666f722073616c652e0d048041206e65772073616c6520686173206265656e20696e697469616c697a65642e184c65617365640801107461736b1001185461736b496404a8546865207461736b20746f207768696368206120636f72652077696c6c2062652061737369676e65642e0114756e74696c10012454696d65736c6963650c19015468652074696d65736c69636520636f6e7461696e656420696e207468652073616c6520706572696f642061667465722077686963682074686973206c656173652077696c6c390173656c662d7465726d696e6174652028616e64207468657265666f726520746865206561726c696573742074696d65736c69636520617420776869636820746865206c65617365206d6179206e6f386c6f6e676572206170706c79292e0e047441206e6577206c6561736520686173206265656e20637265617465642e304c6561736552656d6f7665640401107461736b1001185461736b49640498546865207461736b20746f207768696368206120636f7265207761732061737369676e65642e0f046441206c6561736520686173206265656e2072656d6f7665642e2c4c65617365456e64696e670801107461736b1001185461736b49640498546865207461736b20746f207768696368206120636f7265207761732061737369676e65642e01107768656e10012454696d65736c69636504f05468652074696d65736c69636520617420776869636820746865207461736b2077696c6c206e6f206c6f6e676572206265207363686564756c65642e10046041206c656173652069732061626f757420746f20656e642e3053616c657353746172746564080114707269636518013042616c616e63654f663c543e04c0546865206e6f6d696e616c207072696365206f6620616e20526567696f6e206f662042756c6b20436f726574696d652e0128636f72655f636f756e7489010124436f7265496e646578041501546865206d6178696d756d206e756d626572206f6620636f72657320776869636820746869732070616c6c65742077696c6c20617474656d707420746f2061737369676e2e1104f85468652073616c6520726f746174696f6e20686173206265656e207374617274656420616e642061206e65772073616c6520697320696d6d696e656e742e44526576656e7565436c61696d426567756e080118726567696f6efd060120526567696f6e4964047454686520726567696f6e20746f20626520636c61696d656420666f722e01386d61785f74696d65736c6963657310012454696d65736c696365041901546865206d6178696d756d206e756d626572206f662074696d65736c696365732077686963682073686f756c6420626520736561726368656420666f7220636c61696d65642e12049854686520616374206f6620636c61696d696e6720726576656e75652068617320626567756e2e40526576656e7565436c61696d4974656d0801107768656e10012454696d65736c69636504b45468652074696d65736c6963652077686f736520636c61696d206973206265696e672070726f6365737365642e0118616d6f756e7418013042616c616e63654f663c543e04bc54686520616d6f756e742077686963682077617320636c61696d656420617420746869732074696d65736c6963652e1304b04120706172746963756c61722074696d65736c696365206861732061206e6f6e2d7a65726f20636c61696d2e40526576656e7565436c61696d506169640c010c77686f000130543a3a4163636f756e74496404a8546865206163636f756e7420746f2077686f6d20726576656e756520686173206265656e20706169642e0118616d6f756e7418013042616c616e63654f663c543e04b454686520746f74616c20616d6f756e74206f6620726576656e756520636c61696d656420616e6420706169642e01106e657874510801404f7074696f6e3c526567696f6e49643e044901546865206e65787420726567696f6e2077686963682073686f756c6420626520636c61696d656420666f722074686520636f6e74696e756174696f6e206f66207468697320636f6e747269627574696f6e2e1404d84120726576656e756520636c61696d206861732028706f737369626c79206f6e6c7920696e207061727429206265656e20706169642e3c4372656469745075726368617365640c010c77686f000130543a3a4163636f756e744964049c546865206163636f756e742077686963682070757263686173656420746865206372656469742e012c62656e656669636961727900014c52656c61794163636f756e7449644f663c543e04e45468652052656c61792d636861696e206163636f756e7420746f20776869636820746865206372656469742077696c6c206265206d6164652e0118616d6f756e7418013042616c616e63654f663c543e047c54686520616d6f756e74206f6620637265646974207075726368617365642e1504ec536f6d6520496e7374616e74616e656f757320436f726574696d6520506f6f6c2063726564697420686173206265656e207075726368617365642e34526567696f6e44726f70706564080124726567696f6e5f6964fd060120526567696f6e4964048854686520526567696f6e207768696368206e6f206c6f6e676572206578697374732e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e1604cc4120526567696f6e20686173206265656e2064726f707065642064756520746f206265696e67206f7574206f6620646174652e4c436f6e747269627574696f6e44726f70706564040124726567696f6e5f6964fd060120526567696f6e496404c854686520526567696f6e2077686f736520636f6e747269627574696f6e206973206e6f206c6f6e676572206578697374732e17043501536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c20636f6e747269627574696f6e207265636f726420686173206265656e2064726f707065642e48486973746f7279496e697469616c697a65640c01107768656e10012454696d65736c69636504c45468652074696d65736c6963652077686f736520686973746f727920686173206265656e20696e697469616c697a65642e0144707269766174655f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7404410154686520616d6f756e74206f6620707269766174656c7920636f6e747269627574656420436f726574696d6520746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e014073797374656d5f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7408310154686520616d6f756e74206f6620436f726574696d6520636f6e747269627574656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2062792074686540506f6c6b61646f742053797374656d2e18043101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e20696e697469616c697a65642e38486973746f727944726f707065640801107768656e10012454696d65736c69636504cc5468652074696d65736c6963652077686f736520686973746f7279206973206e6f206c6f6e67657220617661696c61626c652e011c726576656e756518013042616c616e63654f663c543e04ac54686520616d6f756e74206f6620726576656e7565207468652073797374656d206861732074616b656e2e19042101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2064726f707065642e38486973746f727949676e6f7265640801107768656e10012454696d65736c69636504ac5468652074696d65736c6963652077686f736520686973746f7279206973207761732069676e6f7265642e011c726576656e756518013042616c616e63654f663c543e04a054686520616d6f756e74206f6620726576656e7565207768696368207761732069676e6f7265642e1a084d01536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2069676e6f726564206265636175736520746865f874696d65736c6963652077617320616c7265616479206b6e6f776e2e20476f7665726e616e6365206d6179206e65656420746f20696e74657276656e652e2c436c61696d7352656164790c01107768656e10012454696d65736c69636504a45468652074696d65736c6963652077686f736520686973746f727920697320617661696c61626c652e013473797374656d5f7061796f757418013042616c616e63654f663c543e04f054686520616d6f756e74206f6620726576656e75652074686520506f6c6b61646f742053797374656d2068617320616c72656164792074616b656e2e0138707269766174655f7061796f757418013042616c616e63654f663c543e04d054686520746f74616c20616d6f756e74206f6620726576656e75652072656d61696e696e6720746f20626520636c61696d65642e1b042d01536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c20526576656e756520697320726561647920666f72207061796f757420636c61696d732e30436f726541737369676e65640c0110636f726589010124436f7265496e64657804b854686520696e646578206f662074686520436f726520776869636820686173206265656e2061737369676e65642e01107768656e10015452656c6179426c6f636b4e756d6265724f663c543e0409015468652052656c61792d636861696e20626c6f636b20617420776869636820746869732061737369676e6d656e742073686f756c642074616b65206566666563742e012861737369676e6d656e745508018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e049054686520776f726b6c6f616420746f20626520646f6e65206f6e2074686520436f72652e1c0445014120436f726520686173206265656e2061737369676e656420746f206f6e65206f72206d6f7265207461736b7320616e642f6f722074686520506f6f6c206f6e207468652052656c61792d636861696e2e5c506f74656e7469616c52656e6577616c44726f707065640801107768656e10012454696d65736c69636504cc5468652074696d65736c6963652077686f73652072656e6577616c206973206e6f206c6f6e67657220617661696c61626c652e0110636f726589010124436f7265496e64657804210154686520636f72652077686f736520776f726b6c6f6164206973206e6f206c6f6e67657220617661696c61626c6520746f2062652072656e6577656420666f7220607768656e602e1d042101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2064726f707065642e484175746f52656e6577616c456e61626c6564080110636f726589010124436f7265496e64657804ac54686520636f726520666f72207768696368207468652072656e6577616c2077617320656e61626c65642e01107461736b1001185461736b496404ac546865207461736b20666f72207768696368207468652072656e6577616c2077617320656e61626c65642e1e004c4175746f52656e6577616c44697361626c6564080110636f726589010124436f7265496e64657804b054686520636f726520666f72207768696368207468652072656e6577616c207761732064697361626c65642e01107461736b1001185461736b496404b0546865207461736b20666f72207768696368207468652072656e6577616c207761732064697361626c65642e1f00444175746f52656e6577616c4661696c6564080110636f726589010124436f7265496e646578049854686520636f726520666f72207768696368207468652072656e6577616c206661696c65642e01147061796572ac01504f7074696f6e3c543a3a4163636f756e7449643e0cc8546865206163636f756e742077686963682077617320737570706f73656420746f2070617920666f722072656e6577616c2e003501496620604e6f6e656020697420696e646963617465732074686174207765206661696c656420746f206765742074686520736f7665726569676e206163636f756e74206f662061207461736b2e20084d014661696c656420746f206175746f2d72656e6577206120636f72652c206c696b656c792064756520746f20746865207061796572206163636f756e74206e6f74206265696e672073756666696369656e746c791c66756e6465642e5c4175746f52656e6577616c4c696d697452656163686564002110f0546865206175746f2d72656e6577616c206c696d697420686173206265656e20726561636865642075706f6e2072656e6577696e6720636f7265732e005901546869732073686f756c64206e657665722068617070656e2c20676976656e207468617420656e61626c655f6175746f5f72656e657720636865636b7320666f722074686973206265666f726520656e61626c696e67346175746f2d72656e6577616c2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65744d0800000408fd06fd0600510804184f7074696f6e04045401fd060108104e6f6e6500000010536f6d650400fd0600000100005508000002590800590800000408f5068901005d080c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579610801c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c75656d0801ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c75656d0801ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746108084c6b69746368656e73696e6b5f72756e74696d655052756e74696d65506172616d65746572734b65790001081c53746f726167650400650801d9013c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72743a3a0a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000000245265666572656e64610400690801e1013c64796e616d69635f706172616d733a3a7265666572656e64613a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72740a3a3a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000100006508104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f7261676534506172616d65746572734b65790001082c426173654465706f73697404002d07012c426173654465706f7369740000002c427974654465706f73697404003107012c427974654465706f736974000100006908104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e646134506172616d65746572734b657900010818547261636b73040039070118547261636b730000001c4f726967696e7304005d07011c4f726967696e73000100006d0804184f7074696f6e0404540171080108104e6f6e6500000010536f6d650400710800000100007108084c6b69746368656e73696e6b5f72756e74696d655852756e74696d65506172616d657465727356616c75650001081c53746f726167650400750801e1013c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72743a3a0a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000000245265666572656e64610400790801e9013c64796e616d69635f706172616d733a3a7265666572656e64613a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72740a3a3a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000100007508104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167653c506172616d657465727356616c75650001082c426173654465706f736974040018011c42616c616e63650000002c427974654465706f736974040018011c42616c616e6365000100007908104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e64613c506172616d657465727356616c756500010818547261636b7304004107013901426f756e6465645665633c70616c6c65745f7265666572656e64613a3a547261636b3c7531362c2042616c616e63652c20426c6f636b4e756d6265723e2c0a436f6e73745533323c3130303e2c3e0000001c4f726967696e730400650701b8426f756e6465645665633c284f726967696e43616c6c65722c20753136292c20436f6e73745533323c3130303e3e000100007d080c6c70616c6c65745f736b69705f6665656c6573735f7061796d656e741870616c6c6574144576656e7404045400010428466565536b69707065640401186f726967696e490201c03c543a3a52756e74696d654f726967696e206173204f726967696e54726169743e3a3a50616c6c6574734f726967696e0000047841207472616e73616374696f6e206665652077617320736b69707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657481080c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c6574144576656e74040454000104504d69677261746564546f4e65774163636f756e740c011c706f6f6c5f696405080124543a3a506f6f6c49640428506f6f6c27732049442e01347072696f725f6163636f756e74000130543a3a4163636f756e7449640460506f6f6c2773207072696f72206163636f756e742049442e012c6e65775f6163636f756e74000130543a3a4163636f756e7449640458506f6f6c2773206e6577206163636f756e742049442e0004f8496e646963617465732074686174206120706f6f6c20686173206265656e206d6967726174656420746f20746865206e6577206163636f756e742049442e047c54686520604576656e746020656e756d206f6620746869732070616c6c657485080c3470616c6c65745f7265766976651870616c6c6574144576656e740404540001043c436f6e7472616374456d69747465640c0120636f6e74726163747907011048313630049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746138011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e0118746f70696373150501245665633c483235363e08a441206c697374206f6620746f70696373207573656420746f20696e64657820746865206576656e742eec4e756d626572206f6620746f7069637320697320636170706564206279205b606c696d6974733a3a4e554d5f4556454e545f544f50494353605d2e00049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657489080c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144576656e740404540001102444656c6567617465640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000047c46756e64732064656c65676174656420627920612064656c656761746f722e2052656c65617365640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001047846756e64732072656c656173656420746f20612064656c656761746f722e1c536c61736865640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002047c46756e647320736c61736865642066726f6d20612064656c656761746f722e484d6967726174656444656c65676174696f6e0c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304c4556e636c61696d65642064656c65676174696f6e2066756e6473206d6967726174656420746f2064656c656761746f722e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d080c5070616c6c65745f61737365745f726577617264731870616c6c6574144576656e74040454000120185374616b65640c01187374616b6572000130543a3a4163636f756e744964047c546865206163636f756e742074686174207374616b6564206173736574732e011c706f6f6c5f6964100118506f6f6c4964042454686520706f6f6c2e0118616d6f756e74180128543a3a42616c616e63650460546865207374616b656420617373657420616d6f756e742e0004a0416e206163636f756e74207374616b656420736f6d6520746f6b656e7320696e206120706f6f6c2e20556e7374616b656410011863616c6c6572000130543a3a4163636f756e7449640490546865206163636f756e742074686174207369676e6564207472616e73616374696f6e2e01187374616b6572000130543a3a4163636f756e7449640484546865206163636f756e74207468617420756e7374616b6564206173736574732e011c706f6f6c5f6964100118506f6f6c4964042454686520706f6f6c2e0118616d6f756e74180128543a3a42616c616e6365046854686520756e7374616b656420617373657420616d6f756e742e0104b0416e206163636f756e7420756e7374616b656420736f6d6520746f6b656e732066726f6d206120706f6f6c2e405265776172647348617276657374656410011863616c6c6572000130543a3a4163636f756e7449640490546865206163636f756e742074686174207369676e6564207472616e73616374696f6e2e01187374616b6572000130543a3a4163636f756e744964049c546865207374616b65722077686f7320726577617264732077657265206861727665737465642e011c706f6f6c5f6964100118506f6f6c4964042454686520706f6f6c2e0118616d6f756e74180128543a3a42616c616e6365047c54686520616d6f756e74206f662068617276657374656420746f6b656e732e020488416e206163636f756e742068617276657374656420736f6d6520726577617264732e2c506f6f6c437265617465641c011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f6964100118506f6f6c4964047c54686520756e6971756520494420666f7220746865206e657720706f6f6c2e013c7374616b65645f61737365745f6964a00128543a3a417373657449640448546865207374616b696e672061737365742e013c7265776172645f61737365745f6964a00128543a3a417373657449640444546865207265776172642061737365742e01547265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e6365048854686520696e697469616c2072657761726420726174652070657220626c6f636b2e01306578706972795f626c6f636b100144426c6f636b4e756d626572466f723c543e04d054686520626c6f636b2074686520706f6f6c2077696c6c20636561736520746f20616363756d756c61746520726577617264732e011461646d696e000130543a3a4163636f756e744964049c546865206163636f756e7420616c6c6f77656420746f206d6f646966792074686520706f6f6c2e03047841206e65772072657761726420706f6f6c2077617320637265617465642e58506f6f6c526577617264526174654d6f64696669656408011c706f6f6c5f6964100118506f6f6c49640448546865206d6f64696669656420706f6f6c2e01646e65775f7265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e63650478546865206e65772072657761726420726174652070657220626c6f636b2e0404b44120706f6f6c20726577617264207261746520776173206d6f646966696564206279207468652061646d696e2e44506f6f6c41646d696e4d6f64696669656408011c706f6f6c5f6964100118506f6f6c49640448546865206d6f64696669656420706f6f6c2e01246e65775f61646d696e000130543a3a4163636f756e7449640438546865206e65772061646d696e2e0504684120706f6f6c2061646d696e20776173206d6f6469666965642e5c506f6f6c457870697279426c6f636b4d6f64696669656408011c706f6f6c5f6964100118506f6f6c49640448546865206d6f64696669656420706f6f6c2e01406e65775f6578706972795f626c6f636b100144426c6f636b4e756d626572466f723c543e0454546865206e65772065787069727920626c6f636b2e0604b84120706f6f6c2065787069727920626c6f636b20776173206d6f646966696564206279207468652061646d696e2e34506f6f6c436c65616e6564557004011c706f6f6c5f6964100118506f6f6c4964044454686520636c656172656420706f6f6c2e0704d44120706f6f6c20696e666f726d6174696f6e2077617320636c6561726564206166746572206974277320636f6d706c6574696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657491080c5470616c6c65745f6173736574735f667265657a65721870616c6c6574144576656e740804540004490001081846726f7a656e0c010c77686f000130543a3a4163636f756e74496400012061737365745f6964100128543a3a41737365744964000118616d6f756e74180128543a3a42616c616e6365000000185468617765640c010c77686f000130543a3a4163636f756e74496400012061737365745f6964100128543a3a41737365744964000118616d6f756e74180128543a3a42616c616e6365000100047c54686520604576656e746020656e756d206f6620746869732070616c6c657495080c3870616c6c65745f6d6574615f74781870616c6c6574144576656e740404540001042844697370617463686564040118726573756c74d10701684469737061746368526573756c7457697468506f7374496e666f0000109c41206d657461207472616e73616374696f6e20686173206265656e20646973706174636865642e003501436f6e7461696e732074686520646973706174636820726573756c74206f6620746865206d657461207472616e73616374696f6e20616c6f6e67207769746820706f73742d646973706174636830696e666f726d6174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574990808306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e000200009d080000026d0100a10808306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e6902014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65a5080144436f773c277374617469632c207374723e0000a508040c436f7704045401a908000400a908000000a9080000050200ad0808306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b1080c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373b50801845065724469737061746368436c6173733c57656967687473506572436c6173733e0000b5080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401b908000c01186e6f726d616cb90801045400012c6f7065726174696f6e616cb9080104540001246d616e6461746f7279b9080104540000b9080c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963d90701384f7074696f6e3c5765696768743e0001246d61785f746f74616cd90701384f7074696f6e3c5765696768743e0001207265736572766564d90701384f7074696f6e3c5765696768743e0000bd080c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178c10801545065724469737061746368436c6173733c7533323e0000c1080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000c508082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000c908082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65a5080144436f773c277374617469632c207374723e000124696d706c5f6e616d65a5080144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973cd08011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000cd08040c436f7704045401d108000400d108000000d108000002d50800d5080000040875041000d9080c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574dd080c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee1080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e508045300000400e90801185665633c543e0000e508000004086d023000e908000002e50800ed080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400f10801185665633c543e0000f1080000020400f50804184f7074696f6e04045401f9080108104e6f6e6500000010536f6d650400f9080000010000f9080c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400fd0801405072696d617279507265446967657374000100385365636f6e64617279506c61696e04000509015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400090901545365636f6e6461727956524650726544696765737400030000fd080c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7471020110536c6f740001347672665f7369676e6174757265010901305672665369676e617475726500000109101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f660d04012056726650726f6f66000005090c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7471020110536c6f74000009090c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7471020110536c6f740001347672665f7369676e6174757265010901305672665369676e617475726500000d09084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e0000080104637d020128287536342c2075363429000134616c6c6f7765645f736c6f747381020130416c6c6f776564536c6f7473000011090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011509045300000400190901185665633c543e000015090000040830100019090000021509001d090c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e21090000040c0018200025090c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454012d09045300000400350901185665633c543e00002d090c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964750401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e733109011c526561736f6e73000031090c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000035090000022d090039090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d09045300000400410901185665633c543e00003d090c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720175041c42616c616e6365011800080108696475040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e6365000041090000023d090045090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014909045300000400890901185665633c543e0000490914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e7408084964014d091c42616c616e636501180008010869644d0901084964000118616d6f756e7418011c42616c616e636500004d09084c6b69746368656e73696e6b5f72756e74696d654452756e74696d65486f6c64526561736f6e0001381c5374616b696e6704005109016870616c6c65745f7374616b696e673a3a486f6c64526561736f6e000b001c436f756e63696c0400550901ec70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400590901ec70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024436f6e74726163747304005d09017070616c6c65745f636f6e7472616374733a3a486f6c64526561736f6e00150020507265696d61676504006109016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0022000c4e697304006509015870616c6c65745f6e69733a3a486f6c64526561736f6e002d00504e66744672616374696f6e616c697a6174696f6e0400690901a070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a486f6c64526561736f6e003000485472616e73616374696f6e53746f7261676504006d09019870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a486f6c64526561736f6e003300485374617465547269654d6967726174696f6e04007109019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e00350038416c6c69616e63654d6f74696f6e0400750901ec70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020536166654d6f646504007909017070616c6c65745f736166655f6d6f64653a3a486f6c64526561736f6e0046001852657669766504007d09016470616c6c65745f7265766976653a3a486f6c64526561736f6e0050004044656c6567617465645374616b696e6704008109019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e0052003041737365745265776172647304008509018070616c6c65745f61737365745f726577617264733a3a486f6c64526561736f6e005300005109103870616c6c65745f7374616b696e671870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e670000000055090c4470616c6c65745f636f6c6c6563746976651870616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e0000000059090c4470616c6c65745f636f6c6c6563746976651870616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e000000005d090c4070616c6c65745f636f6e7472616374731870616c6c657428486f6c64526561736f6e00010860436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f736974526573657276650001000061090c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d6167650000000065090c2870616c6c65745f6e69731870616c6c657428486f6c64526561736f6e000104284e6674526563656970740000000069090c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c657428486f6c64526561736f6e000104384672616374696f6e616c697a6564000000006d090c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c657428486f6c64526561736f6e0001043853746f72616765466565486f6c640000000071090c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d6967726174650000000075090c4470616c6c65745f636f6c6c6563746976651870616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e0000000079090c4070616c6c65745f736166655f6d6f64651870616c6c657428486f6c64526561736f6e00010434456e7465724f72457874656e64000000007d090c3470616c6c65745f7265766976651870616c6c657428486f6c64526561736f6e00010c60436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f7369745265736572766500010038416464726573734d617070696e670002000081090c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c657428486f6c64526561736f6e000104445374616b696e6744656c65676174696f6e0000000085090c5070616c6c65745f61737365745f726577617264731870616c6c657428486f6c64526561736f6e00010430506f6f6c4372656174696f6e0000000089090000024909008d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454019109045300000400a10901185665633c543e0000910914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640195091c42616c616e63650118000801086964950901084964000118616d6f756e7418011c42616c616e636500009509084c6b69746368656e73696e6b5f72756e74696d654c52756e74696d65467265657a65526561736f6e0001083c4e6f6d696e6174696f6e506f6f6c7304009909019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e003e003041737365745265776172647304009d09018870616c6c65745f61737365745f726577617264733a3a467265657a65526561736f6e0053000099090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e6365000000009d090c5070616c6c65745f61737365745f726577617264731870616c6c657430467265657a65526561736f6e000104185374616b656400000000a109000002910900a5090c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea909086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000ad09089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e08244163636f756e74496400284d617857696e6e65727300000c0120737570706f727473b1090198426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572733e00011473636f7265b00134456c656374696f6e53636f726500011c636f6d70757465a8013c456c656374696f6e436f6d707574650000b1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540181030453000004007d0301185665633c543e0000b509089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e744964010024566f7465725479706501b90900080118766f74657273c10901385665633c566f746572547970653e00011c74617267657473590101385665633c4163636f756e7449643e0000b9090000040c0030bd0900bd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000c109000002b90900c5090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c909045300000400cd0901185665633c543e0000c9090000040cb0101000cd09000002c90900d1090c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01a9020010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ea5020154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e63650000d5090c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b85375626d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ed909083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616c9902013042616c616e63654f663c543e0001186163746976659902013042616c616e63654f663c543e000124756e6c6f636b696e67b10301f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f72657761726473dd090194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e0000dd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e0000e109083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473bd0901b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000e509083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274e909012c4f7074696f6e3c7536343e0000e90904184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000ed0900000408100000f109082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616c9902011c42616c616e636500010c6f776e9902011c42616c616e63650001186f7468657273f50901ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000f509000002f90900f909082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75659902011c42616c616e63650000fd09082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616c9902011c42616c616e636500010c6f776e9902011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000010a0000040c10001000050a082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616c9902011c42616c616e63650001186f7468657273f50901ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000090a083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c0d0a018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00000d0a042042547265654d617008044b010004560110000400110a000000110a000002150a00150a00000408001000190a0000021d0a001d0a083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273fc01645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273590101385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000210a00000408c41800250a0c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72c10101345665633c457261496e6465783e0000290a0c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500002d0a103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000188344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001f04f4537461736820636f756c64206e6f7420626520726561706564206173206f746865722070616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d696772617465640020040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e285265737472696374656400210859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310a000002350a00350a0000040800c10300390a0000023d0a003d0a0000040810410a00410a0c2873705f7374616b696e671c6f6666656e63653c4f6666656e6365536576657269747900000400c4011c50657262696c6c0000450a00000408490a3800490a0c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00004d0a0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e510a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401550a045300000400590a01185665633c543e0000550a0000040c1029020000590a000002550a005d0a00000408610a1800610a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000650a0c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c0129021c42616c616e6365011801081c4f6e676f696e670400690a01c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564200110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000690a0c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c0129021c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616c2902012050726f706f73616c0001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c796d0a013854616c6c793c42616c616e63653e00006d0a0c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000710a0c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573750a01f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73810a015044656c65676174696f6e733c42616c616e63653e0001147072696f72850a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ed9030128436f6e76696374696f6e00012c64656c65676174696f6e73810a015044656c65676174696f6e733c42616c616e63653e0001147072696f72850a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000750a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401790a0453000004007d0a01185665633c543e0000790a0000040810e4007d0a000002790a00810a0c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000850a0c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000890a000004082902e0008d0a0000040810610a00910a0c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001602056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365445265666572656e64756d496e76616c696400090484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d2c4e6f6e6557616974696e67000a04504e6f2070726f706f73616c732077616974696e67204e6f74566f746572000b04c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e000c04c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67000d0488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473000e04fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000f04a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740010085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001104d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650012049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400130450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001404804d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c546f6f4d616e79001504804d6178696d756d206e756d626572206f66206974656d7320726561636865642e3c566f74696e67506572696f644c6f7700160454566f74696e6720706572696f6420746f6f206c6f7740507265696d6167654e6f7445786973740017047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e950a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400150501185665633c543e0000990a00000408009d0a009d0a14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000a10a084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e7400011061796573590101385665633c4163636f756e7449643e0001106e617973590101385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000a50a0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400150501185665633c543e0000ad0a0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10a000002b50a00b50a086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000b90a086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f746573590101385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000bd0a0c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e4c4475706c69636174656443616e646964617465000704804475706c6963617465642063616e646964617465207375626d697373696f6e2e44546f6f4d616e7943616e6469646174657300080498546f6f206d616e792063616e646964617465732068617665206265656e20637265617465642e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000c50a0c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e38546f6f4d616e794d656d6265727300020444546f6f206d616e79206d656d626572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90a083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000cd0a083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573d10a016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564c801244f7074696f6e3c4e3e0000d10a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540111010453000004000d0101185665633c543e0000d50a0c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90a083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e63650000dd0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e0000e10a083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401a030417373657442616c616e636501182c42656e656669636961727901002c426c6f636b4e756d6265720110245061796d656e74496401880018012861737365745f6b696e64a0012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e656669636961727900012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573e50a015c5061796d656e7453746174653c5061796d656e7449643e0000e50a083c70616c6c65745f7472656173757279305061796d656e745374617465040849640188010c1c50656e64696e6700000024417474656d7074656404010869648801084964000100184661696c656400020000e90a08346672616d655f737570706f72742050616c6c65744964000004007504011c5b75383b20385d0000ed0a0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742ef10a0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f90a0c4070616c6c65745f636f6e747261637473107761736d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f7369749902013042616c616e63654f663c543e000120726566636f756e742c010c75363400012c64657465726d696e69736d3104012c44657465726d696e69736d000120636f64655f6c656e10010c7533320000fd0a0c4070616c6c65745f636f6e7472616374731c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f6964bd010118547269654964000124636f64655f6861736834012c436f6465486173683c543e00013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e00015464656c65676174655f646570656e64656e63696573010b011d01426f756e64656442547265654d61703c436f6465486173683c543e2c2042616c616e63654f663c543e2c20543a3a0a4d617844656c6567617465446570656e64656e636965733e0000010b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013404560118045300000400050b013842547265654d61703c4b2c20563e0000050b042042547265654d617008044b013404560118000400090b000000090b0000020d0b000d0b00000408341800110b0c4070616c6c65745f636f6e7472616374731c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c7533320000150b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000190b0c4070616c6c65745f636f6e747261637473207363686564756c65205363686564756c6504045400000801186c696d6974731d0b01184c696d69747300014c696e737472756374696f6e5f77656967687473210b0154496e737472756374696f6e576569676874733c543e00001d0b0c4070616c6c65745f636f6e747261637473207363686564756c65184c696d69747300001c01306576656e745f746f7069637310010c7533320001306d656d6f72795f706167657310010c75333200012c7375626a6563745f6c656e10010c75333200012c7061796c6f61645f6c656e10010c75333200013872756e74696d655f6d656d6f727910010c75333200016076616c696461746f725f72756e74696d655f6d656d6f727910010c7533320001386576656e745f7265665f74696d6530010c7536340000210b0c4070616c6c65745f636f6e747261637473207363686564756c6548496e737472756374696f6e5765696768747304045400000401106261736510010c7533320000250b084070616c6c65745f636f6e7472616374732c456e7669726f6e6d656e7404045400001801286163636f756e745f6964290b017c456e7669726f6e6d656e74547970653c4163636f756e7449644f663c543e3e00011c62616c616e63652d0b0174456e7669726f6e6d656e74547970653c42616c616e63654f663c543e3e00011068617368310b01c8456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a486173683e000118686173686572350b01d4456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368696e673e00012474696d657374616d70390b0170456e7669726f6e6d656e74547970653c4d6f6d656e744f663c543e3e000130626c6f636b5f6e756d6265723d0b0188456e7669726f6e6d656e74547970653c426c6f636b4e756d626572466f723c543e3e0000290b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401000000002d0b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540118000000310b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540134000000350b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401b907000000390b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401300000003d0b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540110000000410b084070616c6c65745f636f6e7472616374732841706956657273696f6e000004008901010c7531360000450b0c4070616c6c65745f636f6e7472616374731870616c6c6574144572726f720404540001943c496e76616c69645363686564756c650000041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730001043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000204b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c0003040101546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f6465546f6f4c617267650007083d0154686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468654463757272656e74207363686564756c652e30436f64654e6f74466f756e64000804c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000904d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473000a0425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000b042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000c0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000d04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000e0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000f044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e67001004d8546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730011041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e404e6f436861696e457874656e73696f6e00120c450154686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c74734d01696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e7472616374733069732072656a65637465642e3c58434d4465636f64654661696c6564001304844661696c656420746f206465636f6465207468652058434d2070726f6772616d2e444475706c6963617465436f6e7472616374001404c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200150cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640016100d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e5d01546865206f6e6c79206f74686572206361757365206973207468617420612063616c6c2066726f6d206120636f6e747261637420696e746f207468652072756e74696d6520747269656420746f2063616c6c206261636b4901696e746f206070616c6c65742d636f6e747261637473602e205468697320776f756c64206d616b65207468652077686f6c652070616c6c6574207265656e7472616e7420776974682072656761726420746fbc636f6e747261637420636f646520657865637574696f6e207768696368206973206e6f7420737570706f727465642e4453746174654368616e676544656e6965640017044d014120636f6e747261637420617474656d7074656420746f20696e766f6b652061207374617465206d6f64696679696e6720415049207768696c65206265696e6720696e20726561642d6f6e6c79206d6f64652e7053746f726167654465706f7369744e6f74456e6f75676846756e647300180421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640019040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e557365001a044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001b10250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001c20f854686520636f6e7472616374277320636f64652077617320666f756e6420746f20626520696e76616c696420647572696e672076616c69646174696f6e2e004d01546865206d6f7374206c696b656c79206361757365206f662074686973206973207468617420616e20415049207761732075736564207768696368206973206e6f7420737570706f727465642062792074686551016e6f64652e20546869732068617070656e7320696620616e206f6c646572206e6f6465206973207573656420776974682061206e65772076657273696f6e206f6620696e6b212e20547279207570646174696e67a8796f7572206e6f646520746f20746865206e657765737420617661696c61626c652076657273696f6e2e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c6564a8627920737570706c79696e6720602d6c72756e74696d653a3a636f6e7472616374733d6465627567602e3c496e64657465726d696e6973746963001d042901416e20696e64657465726d696e697374696320636f646520776173207573656420696e206120636f6e746578742077686572652074686973206973206e6f74207065726d69747465642e4c4d6967726174696f6e496e50726f6772657373001e042501412070656e64696e67206d6967726174696f6e206e6565647320746f20636f6d706c657465206265666f7265207468652065787472696e7369632063616e2062652063616c6c65642e504e6f4d6967726174696f6e506572666f726d6564001f040d014d6967726174652064697370617463682063616c6c2077617320617474656d7074656420627574206e6f206d6967726174696f6e2077617320706572666f726d65642e784d617844656c6567617465446570656e64656e6369657352656163686564002004150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64002104150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002204f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002304290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e544f75744f665472616e7369656e7453746f72616765002404ac43616e206e6f7420616464206d6f7265206461746120746f207472616e7369656e742073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490b0c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e4d0b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454013901045300000400510b01185665633c543e0000510b000002390100550b0c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c5030453000004005d0b01185665633c543e00005d0b000002c50300610b0c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e646572014101000801206f6666656e646572410101204f6666656e6465720001247265706f7274657273590101345665633c5265706f727465723e0000650b0000040849013800690b000004083410006d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400150501185665633c543e0000710b0c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e747300304964656e74697479496e666f014904000c01286a756467656d656e7473750b01fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f490401304964656e74697479496e666f0000750b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401790b0453000004007d0b01185665633c543e0000790b0000040810dd04007d0b000002790b00810b0000040818850b00850b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000890b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d0b045300000400950b01185665633c543e00008d0b04184f7074696f6e04045401910b0108104e6f6e6500000010536f6d650400910b0000010000910b0c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f0c1c42616c616e63650118244163636f756e74496401001c49644669656c640130000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c647330011c49644669656c640000950b0000028d0b00990b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00009d0b0c3c70616c6c65745f6964656e746974791474797065734c417574686f7269747950726f70657274696573041c4163636f756e740100000801286163636f756e745f696400011c4163636f756e74000128616c6c6f636174696f6e100128416c6c6f636174696f6e0000a10b0c3c70616c6c65745f6964656e746974791474797065734c557365726e616d65496e666f726d6174696f6e081c4163636f756e7401001c42616c616e63650118000801146f776e657200011c4163636f756e7400012070726f7669646572a50b014450726f76696465723c42616c616e63653e0000a50b0c3c70616c6c65745f6964656e746974791474797065732050726f7669646572041c42616c616e63650118010c28416c6c6f636174696f6e00000040417574686f726974794465706f736974040018011c42616c616e63650001001853797374656d00020000a90b0000040c0010a50b00ad0b0c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400017848546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e44546f6f4d616e7952656769737472617273000b04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000c04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000d047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000e04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479000f04d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e584a756467656d656e745061796d656e744661696c6564001004f84572726f722074686174206f6363757273207768656e20746865726520697320616e20697373756520706179696e6720666f72206a756467656d656e742e34496e76616c6964537566666978001104805468652070726f76696465642073756666697820697320746f6f206c6f6e672e504e6f74557365726e616d65417574686f72697479001204e05468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e20746f206973737565206120757365726e616d652e304e6f416c6c6f636174696f6e001304c454686520617574686f726974792063616e6e6f7420616c6c6f6361746520616e79206d6f726520757365726e616d65732e40496e76616c69645369676e6174757265001404a8546865207369676e6174757265206f6e206120757365726e616d6520776173206e6f742076616c69642e4452657175697265735369676e6174757265001504090153657474696e67207468697320757365726e616d652072657175697265732061207369676e61747572652c20627574206e6f6e65207761732070726f76696465642e3c496e76616c6964557365726e616d65001604b054686520757365726e616d6520646f6573206e6f74206d6565742074686520726571756972656d656e74732e34557365726e616d6554616b656e0017047854686520757365726e616d6520697320616c72656164792074616b656e2e284e6f557365726e616d65001804985468652072657175657374656420757365726e616d6520646f6573206e6f742065786973742e284e6f74457870697265640019042d0154686520757365726e616d652063616e6e6f7420626520666f72636566756c6c792072656d6f76656420626563617573652069742063616e207374696c6c2062652061636365707465642e20546f6f4561726c79001a04190154686520757365726e616d652063616e6e6f742062652072656d6f76656420626563617573652069742773207374696c6c20696e2074686520677261636520706572696f642e304e6f74556e62696e64696e67001b04ec54686520757365726e616d652063616e6e6f742062652072656d6f7665642062656361757365206974206973206e6f7420756e62696e64696e672e40416c7265616479556e62696e64696e67001c04fc54686520757365726e616d652063616e6e6f7420626520756e626f756e64206265636175736520697420697320616c726561647920756e62696e64696e672e58496e73756666696369656e7450726976696c65676573001d08450154686520616374696f6e2063616e6e6f7420626520706572666f726d65642062656361757365206f6620696e73756666696369656e742070726976696c656765732028652e672e20617574686f72697479d0747279696e6720746f20756e62696e64206120757365726e616d652070726f7669646564206279207468652073797374656d292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10b083870616c6c65745f736f6369657479304d656d6265725265636f7264000010011072616e6b10011052616e6b00011c737472696b657310012c537472696b65436f756e74000120766f756368696e67b50b01584f7074696f6e3c566f756368696e675374617475733e000114696e64657810010c7533320000b50b04184f7074696f6e04045401b90b0108104e6f6e6500000010536f6d650400b90b0000010000b90b083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e656400010000bd0b083870616c6c65745f736f6369657479305061796f75745265636f7264081c42616c616e63650118285061796f75747356656301c10b000801107061696418011c42616c616e636500011c7061796f757473c10b01285061796f7574735665630000c10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c50b045300000400c90b01185665633c543e0000c50b00000408101800c90b000002c50b00cd0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d10b045300000400d90b01185665633c543e0000d10b083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e64d50b016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e63650000d50b083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000d90b000002d10b00dd0b083870616c6c65745f736f63696574792443616e64696461637908244163636f756e74496401001c42616c616e6365011800140114726f756e64100128526f756e64496e6465780001106b696e64d50b016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00010c62696418011c42616c616e636500011474616c6c79e10b011454616c6c79000138736b65707469635f73747275636b200110626f6f6c0000e10b083870616c6c65745f736f63696574791454616c6c790000080124617070726f76616c73100124566f7465436f756e7400012872656a656374696f6e73100124566f7465436f756e740000e50b00000408000000e90b083870616c6c65745f736f636965747910566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c7533320000ed0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f10b083870616c6c65745f736f636965747930496e74616b655265636f726408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e74496400010c62696418011c42616c616e6365000114726f756e64100128526f756e64496e6465780000f50b0000040c0000e10b00f90b0c3870616c6c65745f736f63696574791870616c6c6574144572726f72080454000449000180244e6f744d656d6265720000045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000104645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400020448557365722069732073757370656e6465642e304e6f7453757370656e6465640003045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000404484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400050460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000604984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000704e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e4c4e6f74566f756368696e674f6e4269646465720008045c4d656d626572206973206e6f7420766f756368696e672e10486561640009049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000a046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000b0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000c04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000d046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000e0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572000f04785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640010046c5468652063616c6c6572206973206e6f742074686520686561642e2c4e6f74417070726f7665640011042d01546865206d656d626572736869702063616e6e6f7420626520636c61696d6564206173207468652063616e64696461746520776173206e6f7420636c6561726c7920617070726f7665642e2c4e6f7452656a656374656400120425015468652063616e6469646174652063616e6e6f74206265206b69636b6564206173207468652063616e64696461746520776173206e6f7420636c6561726c792072656a65637465642e20417070726f76656400130419015468652063616e6469646163792063616e6e6f742062652064726f70706564206173207468652063616e6469646174652077617320636c6561726c7920617070726f7665642e2052656a65637465640014041d015468652063616e6469646163792063616e6e6f7420626520626573746f776564206173207468652063616e6469646174652077617320636c6561726c792072656a65637465642e28496e50726f677265737300150415015468652063616e6469646163792063616e6e6f7420626520636f6e636c756465642061732074686520766f74696e67206973207374696c6c20696e2070726f67726573732e20546f6f4561726c7900160441015468652063616e6469646163792063616e6e6f74206265207072756e656420756e74696c20612066756c6c206164646974696f6e616c20696e74616b6520706572696f6420686173207061737365642e14566f7465640017046854686520736b657074696320616c726561647920766f7465642e1c45787069726564001804f054686520736b6570746963206e656564206e6f7420766f7465206f6e2063616e646964617465732066726f6d206578706972656420726f756e64732e244e6f744269646465720019045455736572206973206e6f742061206269646465722e284e6f446566656e646572001a047c5468657265206973206e6f20646566656e6465722063757272656e746c792e204e6f7447726f7570001b045047726f757020646f65736e27742065786973742e3c416c7265616479456c657661746564001c04b0546865206d656d62657220697320616c726561647920656c65766174656420746f20746869732072616e6b2e3c416c726561647950756e6973686564001d04dc54686520736b65707469632068617320616c7265616479206265656e2070756e697368656420666f722074686973206f6666656e63652e44496e73756666696369656e7446756e6473001e04c046756e64732061726520696e73756666696369656e7420746f20706179206f666620736f63696574792064656274732e1c4e6f566f746573001f04d05468652063616e6469646174652f646566656e64657220686173206e6f207374616c6520766f74657320746f2072656d6f76652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0b083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301010c0010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473010c011c467269656e64730001247468726573686f6c648901010c7531360000010c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000050c083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301010c000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473010c011c467269656e64730000090c0c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f904045300000400110c01185665633c543e0000110c000002f90400150c083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000190c0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e1d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401210c045300000400290c01185665633c543e0000210c04184f7074696f6e04045401250c0108104e6f6e6500000010536f6d650400250c0000010000250c084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0129022c426c6f636b4e756d62657201103450616c6c6574734f726967696e014902244163636f756e7449640100001401206d617962655f6964710101304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c2902011043616c6c0001386d617962655f706572696f646963010501944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e4902013450616c6c6574734f726967696e0000290c000002210c002d0c084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000310c0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350c0c3870616c6c65745f676c7574746f6e1870616c6c6574144572726f7204045400010848416c7265616479496e697469616c697a656400000c8c5468652070616c6c65742077617320616c726561647920696e697469616c697a65642e00cc53657420607769746e6573735f636f756e746020746f2060536f6d656020746f206279706173732074686973206572726f722e2c496e73616e654c696d6974000104c8546865206c696d697420776173206f766572205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e390c083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f73697401010150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f7369743d0c01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656ec8012c4f7074696f6e3c7533323e000100003d0c04184f7074696f6e0404540101010108104e6f6e6500000010536f6d65040001010000010000410c083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401450c01082c556e7265717565737465640801187469636b6574490c014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b65744d0c016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656ec8012c4f7074696f6e3c7533323e00010000450c14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000490c0000040800450c004d0c04184f7074696f6e04045401490c0108104e6f6e6500000010536f6d650400490c0000010000510c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000550c0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590c000004085d0c18005d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401610c045300000400650c01185665633c543e0000610c083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650185012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970658501012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000650c000002610c00690c000004086d0c18006d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401710c045300000400750c01185665633c543e0000710c083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000750c000002710c00790c0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e7d0c00000408000400810c083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e9501015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73610a018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000850c0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e890c083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e63650001187374617475738d0c0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00008d0c083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d6265720110011c2050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720005004c417070726f7665645769746843757261746f7204011c63757261746f720001244163636f756e74496400060000910c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000950c0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900012c70496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990c082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680134001c0118726561736f6e3401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f736573c8014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073fc01645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565200110626f6f6c00009d0c0c2c70616c6c65745f746970731870616c6c6574144572726f7208045400044900011c30526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e504d6178546970416d6f756e7445786365656465640003047c5468652074697020676976656e2077617320746f6f2067656e65726f75732e244e6f7446696e6465720004041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0005042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650006043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10c0c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74200110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c753332000118737461747573a50c012c41737365745374617475730000a50c0c3470616c6c65745f6173736574731474797065732c417373657453746174757300010c104c6976650000001846726f7a656e0001002844657374726f79696e6700020000a90c0c3470616c6c65745f6173736574731474797065733041737365744163636f756e74101c42616c616e63650118384465706f73697442616c616e636501181445787472610188244163636f756e74496401000010011c62616c616e636518011c42616c616e6365000118737461747573ad0c01344163636f756e74537461747573000118726561736f6eb10c01a84578697374656e6365526561736f6e3c4465706f73697442616c616e63652c204163636f756e7449643e000114657874726188011445787472610000ad0c0c3470616c6c65745f617373657473147479706573344163636f756e7453746174757300010c184c69717569640000001846726f7a656e0001001c426c6f636b656400020000b10c0c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e081c42616c616e63650118244163636f756e7449640100011420436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e6465640003002c4465706f73697446726f6d08000001244163636f756e744964000018011c42616c616e636500040000b50c0000040c10000000b90c0c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e63650000bd0c0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701c10c0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65c10c0134426f756e646564537472696e6700011873796d626f6cc10c0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000c10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c50c0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90c0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd03045300000400d10c01185665633c543e0000d10c000002cd0300d50c0c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011c60496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c6964446f75626c65566f74696e6750726f6f6600010431014120646f75626c6520766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e58496e76616c6964466f726b566f74696e6750726f6f6600020429014120666f726b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e74496e76616c6964467574757265426c6f636b566f74696e6750726f6f660003044901412066757475726520626c6f636b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e7c496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e000404c05468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f6620697320696e76616c6964584475706c69636174654f6666656e63655265706f727400050415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0006048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90c0c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e740000dd0c083870616c6c65745f6c6f7474657279344c6f7474657279436f6e666967082c426c6f636b4e756d62657201101c42616c616e6365011800140114707269636518011c42616c616e6365000114737461727410012c426c6f636b4e756d6265720001186c656e67746810012c426c6f636b4e756d62657200011464656c617910012c426c6f636b4e756d626572000118726570656174200110626f6f6c0000e10c0000040810e50c00e50c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad01045300000400e90c01185665633c543e0000e90c000002ad0100ed0c0c3870616c6c65745f6c6f74746572791870616c6c6574144572726f7204045400011c344e6f74436f6e666967757265640000048841206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f67726573730001048441206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e6465640002047041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c000304a85468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e67000404f0596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c7300050490546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564000604584661696c656420746f20656e636f64652063616c6c73048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c50b045300000400c90b01185665633c543e0000f50c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f90c045300000400fd0c01185665633c543e0000f90c0c2870616c6c65745f6e69731870616c6c65740c426964081c42616c616e63650118244163636f756e744964010000080118616d6f756e7418011c42616c616e636500010c77686f0001244163636f756e7449640000fd0c000002f90c00010d0c2870616c6c65745f6e69731870616c6c65743453756d6d6172795265636f7264082c426c6f636b4e756d62657201101c42616c616e636501180014013c70726f706f7274696f6e5f6f776564b501012c5065727175696e74696c6c000114696e64657810013052656365697074496e646578000118746861776564b501012c5065727175696e74696c6c00012c6c6173745f706572696f6410012c426c6f636b4e756d62657200014072656365697074735f6f6e5f686f6c6418011c42616c616e63650000050d0c2870616c6c65745f6e69731870616c6c657434526563656970745265636f72640c244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118000c012870726f706f7274696f6eb501012c5065727175696e74696c6c0001146f776e65723d0c01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e00011865787069727910012c426c6f636b4e756d6265720000090d00000408b50110000d0d0c2870616c6c65745f6e69731870616c6c6574144572726f7204045400013c404475726174696f6e546f6f536d616c6c000004a4546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f426967000104f4546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c000204dc54686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f77000308410154686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e887468726f756768207265706c6163696e6720616e206578697374696e67206269642e38556e6b6e6f776e52656365697074000404645265636569707420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572000504744e6f7420746865206f776e6572206f662074686520726563656970742e284e6f744578706972656400060470426f6e64206e6f74207965742061742065787069727920646174652e28556e6b6e6f776e426964000704a854686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e34506f7274696f6e546f6f426967000804e054686520706f7274696f6e20737570706c696564206973206265796f6e64207468652076616c7565206f662074686520726563656970742e20556e66756e646564000904944e6f7420656e6f7567682066756e6473206172652068656c6420746f20706179206f75742e34416c726561647946756e646564000a04b054686572652061726520656e6f7567682066756e647320666f7220776861742069732072657175697265642e245468726f74746c6564000b04cc5468652074686177207468726f74746c6520686173206265656e207265616368656420666f72207468697320706572696f642e244d616b657344757374000c041501546865206f7065726174696f6e20776f756c6420726573756c7420696e2061207265636569707420776f72746820616e20696e7369676e69666963616e742076616c75652e3c416c7265616479436f6d6d756e616c000d0480546865207265636569707420697320616c726561647920636f6d6d756e616c2e38416c726561647950726976617465000e047c546865207265636569707420697320616c726561647920707269766174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e110d0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67200110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e200110626f6f6c0000150d0000040c00101000190d0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564ac01444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e200110626f6f6c00011c6465706f7369741801384465706f73697442616c616e636500001d0d0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461bd01016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000210d0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461bd01016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000250d0000040c10c8510100290d00000408c50118002d0d0000040818ac00310d0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000148304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350d0c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000390d0c2c70616c6c65745f6e66747314747970657320426974466c616773040454013d0d000400080138436f6c6c656374696f6e526f6c6500003d0d0c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000410d0c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401450d24417070726f76616c7301490d000c01146f776e65720001244163636f756e744964000124617070726f76616c73490d0124417070726f76616c7300011c6465706f736974450d011c4465706f7369740000450d0c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000490d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0100045601c80453000004004d0d013842547265654d61703c4b2c20563e00004d0d042042547265654d617008044b0100045601c8000400510d000000510d000002550d00550d0000040800c800590d0c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f73697400011064617461cd01016c426f756e6465645665633c75382c20537472696e674c696d69743e00005d0d0c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401610d2c537472696e674c696d6974000008011c6465706f736974610d011c4465706f73697400011064617461cd01016c426f756e6465645665633c75382c20537472696e674c696d69743e0000610d0c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000650d0000041010c8d101c50100690d00000408cd016d0d006d0d0c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000710d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400750d012c42547265655365743c543e0000750d0420425472656553657404045401000004005901000000790d0c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01d90120446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656dc801384f7074696f6e3c4974656d49643e0001147072696365d50101784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e6500007d0d0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401810d00040030013450616c6c6574466561747572650000810d0c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000850d0c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e890d0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1474797065731c44657461696c73101c417373657449640110244672616374696f6e7301181c4465706f7369740118244163636f756e744964010000100114617373657410011c417373657449640001246672616374696f6e731801244672616374696f6e7300011c6465706f73697418011c4465706f73697400013461737365745f63726561746f720001244163636f756e74496400008d0d0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144572726f7204045400011040496e636f727265637441737365744964000004ac417373657420494420646f6573206e6f7420636f72726573706f6e6420746f206c6f636b6564204e46542e304e6f5065726d697373696f6e000104e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e2c4e66744e6f74466f756e64000204484e465420646f65736e27742065786973742e504e66744e6f744672616374696f6e616c697a6564000304904e465420686173206e6f7420796574206265656e206672616374696f6e616c697365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e910d083470616c6c65745f73616c61727928537461747573547970650c284379636c65496e64657801102c426c6f636b4e756d62657201101c42616c616e636501180014012c6379636c655f696e6465781001284379636c65496e64657800012c6379636c655f737461727410012c426c6f636b4e756d62657200011862756467657418011c42616c616e636500014c746f74616c5f726567697374726174696f6e7318011c42616c616e636500015c746f74616c5f756e726567697374657265645f7061696418011c42616c616e63650000950d083470616c6c65745f73616c61727938436c61696d616e745374617475730c284379636c65496e64657801101c42616c616e6365011808496401880008012c6c6173745f6163746976651001284379636c65496e646578000118737461747573990d015c436c61696d53746174653c42616c616e63652c2049643e0000990d083470616c6c65745f73616c61727928436c61696d5374617465081c42616c616e636501180849640188010c1c4e6f7468696e670000002852656769737465726564040018011c42616c616e636500010024417474656d707465640c012872656769737465726564a903013c4f7074696f6e3c42616c616e63653e00010869648801084964000118616d6f756e7418011c42616c616e6365000200009d0d0c3470616c6c65745f73616c6172791870616c6c6574144572726f7208045400044900013838416c726561647953746172746564000004ac5468652073616c6172792073797374656d2068617320616c7265616479206265656e20737461727465642e244e6f744d656d6265720001048c546865206163636f756e74206973206e6f7420612072616e6b6564206d656d6265722e3c416c7265616479496e64756374656400020480546865206163636f756e7420697320616c726561647920696e6475637465642e2c4e6f74496e6475637465640003001c4e6f436c61696d000404bc546865206d656d62657220646f6573206e6f74206861766520612063757272656e742076616c696420636c61696d2e24436c61696d5a65726f0005046c546865206d656d626572277320636c61696d206973207a65726f2e1c546f6f4c617465000604b043757272656e74206379636c65277320726567697374726174696f6e20706572696f64206973206f7665722e20546f6f4561726c79000704c043757272656e74206379636c652773207061796d656e7420706572696f64206973206e6f742079657420626567756e2e184e6f74596574000804584379636c65206973206e6f7420796574206f7665722e284e6f74537461727465640009049c546865207061796f7574206379636c65732068617665206e6f742079657420737461727465642e2042616e6b72757074000a049c5468657265206973206e6f20627564676574206c65667420666f7220746865207061796f75742e205061794572726f72000b04cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e30496e636f6e636c7573697665000c04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e284e6f7443757272656e74000d04d8546865206379636c65206973206166746572207468617420696e20776869636820746865207061796d656e7420776173206d6164652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10d085870616c6c65745f636f72655f66656c6c6f7773686970304d656d626572537461747573042c426c6f636b4e756d6265720110000c012469735f616374697665200110626f6f6c0001386c6173745f70726f6d6f74696f6e10012c426c6f636b4e756d6265720001286c6173745f70726f6f6610012c426c6f636b4e756d6265720000a50d000004080102050200a90d0c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c6574144572726f7208045400044900012420556e72616e6b6564000004644d656d62657227732072616e6b20697320746f6f206c6f772e1852616e6b6564000104684d656d62657227732072616e6b206973206e6f74207a65726f2e38556e657870656374656452616e6b00020855014d656d62657227732072616e6b206973206e6f74206173206578706563746564202d2067656e6572616c6c79206d65616e732074686174207468652072616e6b2070726f766964656420746f207468652063616c6cb0646f6573206e6f74206167726565207769746820746865207374617465206f66207468652073797374656d2e2c496e76616c696452616e6b000304550154686520676976656e2072616e6b20697320696e76616c6964202d20746869732067656e6572616c6c79206d65616e732069742773206e6f74206265747765656e203120616e64206052414e4b5f434f554e54602e304e6f5065726d697373696f6e0004040101546865206f726967696e20646f6573206e6f74206861766520656e6f756768207065726d697373696f6e20746f20646f2074686973206f7065726174696f6e2e304e6f7468696e67446f696e67000504d04e6f20776f726b206e6565647320746f20626520646f6e652061742070726573656e7420666f722074686973206d656d6265722e3c416c7265616479496e64756374656400060841015468652063616e6469646174652068617320616c7265616479206265656e20696e6475637465642e20546869732073686f756c64206e657665722068617070656e2073696e636520697420776f756c6405017265717569726520612063616e646964617465202872616e6b20302920746f20616c726561647920626520747261636b656420696e207468652070616c6c65742e284e6f74547261636b656400070439015468652063616e64696461746520686173206e6f74206265656e20696e6475637465642c20736f2063616e6e6f74206265206f6666626f61726465642066726f6d20746869732070616c6c65742e1c546f6f536f6f6e000804f84f7065726174696f6e2063616e6e6f7420626520646f6e65207965742073696e6365206e6f7420656e6f7567682074696d6520686173207061737365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10d045300000400b50d01185665633c543e0000b10d086870616c6c65745f7472616e73616374696f6e5f73746f726167653c5472616e73616374696f6e496e666f00001001286368756e6b5f726f6f743401743c426c616b6554776f32353620617320486173683e3a3a4f7574707574000130636f6e74656e745f686173683401743c426c616b6554776f32353620617320486173683e3a3a4f757470757400011073697a6510010c753332000130626c6f636b5f6368756e6b7310010c7533320000b50d000002b10d00b90d0c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144572726f72040454000130344e6f74436f6e6669677572656400000458496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e640001047c52656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e00020494417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f660003049450726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f660004046850726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66000504584d697373696e672073746f726167652070726f6f662e404d697373696e67537461746544617461000604d4556e61626c6520746f207665726966792070726f6f6620626563617573652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b00070480446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b6564000804ac53746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c61726765000904645472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73000a048c546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e74657874000b04d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd0d0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576ac01504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000c10d0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164ac01504f7074696f6e3c543a3a4163636f756e7449643e0001107461696cac01504f7074696f6e3c543a3a4163636f756e7449643e0000c50d0000023000c90d0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000104104c6973740400cd0d01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ecd0d0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000110244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e6400030000d10d085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573d50d01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000d50d085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000d90d0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0d0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640189013452756e74696d654f726967696e014902184d6f6d656e7401101043616c6c0129021c42616c616e636501181454616c6c7901bd07244163636f756e74496401003c5363686564756c6541646472657373016d0101181c4f6e676f696e670400e10d018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000e10d0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640189013452756e74696d654f726967696e014902184d6f6d656e7401101043616c6c0129021c42616c616e636501181454616c6c7901bd07244163636f756e74496401003c5363686564756c6541646472657373016d01002c0114747261636b8901011c547261636b49640001186f726967696e4902013452756e74696d654f726967696e00012070726f706f73616c2902011043616c6c000124656e6163746d656e7419060150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974e50d016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67ed0d01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79bd07011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726df50d01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000e50d0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000e90d04184f7074696f6e04045401e50d0108104e6f6e6500000010536f6d650400e50d0000010000ed0d04184f7074696f6e04045401f10d0108104e6f6e6500000010536f6d650400f10d0000010000f10d0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e67c8014c4f7074696f6e3c426c6f636b4e756d6265723e0000f50d04184f7074696f6e04045401f90d0108104e6f6e6500000010536f6d650400f90d0000010000f90d00000408106d0100fd0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c50b045300000400c90b01185665633c543e0000010e000002050e00050e000004088901090e00090e0c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501a908002401106e616d65a90801104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c4d070114437572766500012c6d696e5f737570706f72744d070114437572766500000d0e0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e110e0c3470616c6c65745f72656d61726b1870616c6c6574144572726f7204045400010814456d7074790000047c417474656d7074696e6720746f2073746f726520656d70747920646174612e28426164436f6e74657874000104d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150e0000040800890100190e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e6704001d0e01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400350e01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e000100001d0e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573210e01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e732d0e015044656c65676174696f6e733c42616c616e63653e0001147072696f72310e017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000210e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401250e045300000400290e01185665633c543e0000250e0000040810290600290e000002250e002d0e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000310e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000350e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e31060128436f6e76696374696f6e00012c64656c65676174696f6e732d0e015044656c65676174696f6e733c42616c616e63653e0001147072696f72310e017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000390e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d0e045300000400410e01185665633c543e00003d0e0000040889011800410e0000023d0e00450e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490e0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400150501185665633c543e0000510e0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014506045300000400590e01185665633c543e0000590e0000024506005d0e083c70616c6c65745f616c6c69616e6365284d656d626572526f6c6500010c1846656c6c6f7700000010416c6c79000100205265746972696e6700020000610e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400590101185665633c543e0000650e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d06045300000400690e01185665633c543e0000690e0000025d06006d0e0c3c70616c6c65745f616c6c69616e63651870616c6c6574144572726f7208045400044900016064416c6c69616e63654e6f74596574496e697469616c697a6564000004350154686520416c6c69616e636520686173206e6f74206265656e20696e697469616c697a6564207965742c207468657265666f7265206163636f756e74732063616e6e6f74206a6f696e2069742e68416c6c69616e6365416c7265616479496e697469616c697a6564000104250154686520416c6c69616e636520686173206265656e20696e697469616c697a65642c207468657265666f72652063616e6e6f7420626520696e697469616c697a656420616761696e2e34416c72656164794d656d626572000204704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000304604163636f756e74206973206e6f742061206d656d6265722e1c4e6f74416c6c790004045c4163636f756e74206973206e6f7420616e20616c6c792e384e6f566f74696e67526967687473000504904163636f756e7420646f6573206e6f74206861766520766f74696e67207269676874732e3c416c7265616479456c657661746564000604bc4163636f756e7420697320616c726561647920616e20656c657661746564202866656c6c6f7729206d656d6265722e4c416c7265616479556e7363727570756c6f75730007049c4974656d20697320616c7265616479206c697374656420617320756e7363727570756c6f75732e3c4163636f756e744e6f6e477261746100080855014163636f756e7420686173206265656e206465656d656420756e7363727570756c6f75732062792074686520416c6c69616e636520616e64206973206e6f742077656c636f6d6520746f206a6f696e206f72206265286e6f6d696e617465642e5c4e6f744c69737465644173556e7363727570756c6f7573000904984974656d20686173206e6f74206265656e206465656d656420756e7363727570756c6f75732e60546f6f4d616e79556e7363727570756c6f75734974656d73000a040101546865206e756d626572206f6620756e7363727570756c6f7573206974656d73206578636565647320604d6178556e7363727570756c6f75734974656d73602e44546f6f4c6f6e675765627369746555726c000b04d04c656e677468206f6620776562736974652055524c206578636565647320604d61785765627369746555726c4c656e677468602e44496e73756666696369656e7446756e6473000c04c442616c616e636520697320696e73756666696369656e7420666f7220746865207265717569726564206465706f7369742e74576974686f757452657175697265644964656e746974794669656c6473000d041501546865206163636f756e742773206964656e7469747920646f6573206e6f74206861766520646973706c6179206669656c6420616e642077656273697465206669656c642e70576974686f7574476f6f644964656e746974794a756467656d656e74000e04b4546865206163636f756e742773206964656e7469747920686173206e6f20676f6f64206a756467656d656e742e4c4d697373696e6750726f706f73616c48617368000f047c5468652070726f706f73616c2068617368206973206e6f7420666f756e642e4c4d697373696e67416e6e6f756e63656d656e740010047854686520616e6e6f756e63656d656e74206973206e6f7420666f756e642e38546f6f4d616e794d656d62657273001104b04e756d626572206f66206d656d62657273206578636565647320604d61784d656d62657273436f756e74602e50546f6f4d616e79416e6e6f756e63656d656e7473001204e04e756d626572206f6620616e6e6f756e63656d656e7473206578636565647320604d6178416e6e6f756e63656d656e7473436f756e74602e284261645769746e6573730013046c496e76616c6964207769746e657373206461746120676976656e2e3c416c72656164795265746972696e67001404984163636f756e7420616c72656164792067617665207265746972656d656e74206e6f74696365605265746972656d656e744e6f746963654e6f74476976656e001504f04163636f756e7420646964206e6f7420676976652061207265746972656d656e74206e6f7469636520726571756972656420746f207265746972652e645265746972656d656e74506572696f644e6f74506173736564001604845265746972656d656e7420706572696f6420686173206e6f74207061737365642e3846656c6c6f77734d697373696e67001704d046656c6c6f7773206d7573742062652070726f766964656420746f20696e697469616c697a652074686520416c6c69616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e710e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e74657221010140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173750e01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000750e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400790e013842547265654d61703c4b2c20563e0000790e042042547265654d617008044b011004560118000400c90b0000007d0e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6e810e0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573890e015c506f6f6c526f6c65733c543a3a4163636f756e7449643e000114737461746569060124506f6f6c53746174650000810e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e748106017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d6178ed07013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465850e01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6dc801644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6e8d0601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000850e04184f7074696f6e0404540189060108104e6f6e6500000010536f6d65040089060000010000890e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74ac01444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72ac01444f7074696f6e3c4163636f756e7449643e00011c626f756e636572ac01444f7074696f6e3c4163636f756e7449643e00008d0e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e74657221010140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000910e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261950e0134556e626f6e64506f6f6c3c543e000120776974685f657261990e010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000950e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000990e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601950e0453000004009d0e013842547265654d61703c4b2c20563e00009d0e042042547265654d617008044b0110045601950e000400a10e000000a10e000002a50e00a50e0000040810950e00a90e0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019830506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400ad0e0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e2c536c617368546f6f4c6f77002104a854686520736c61736820616d6f756e7420697320746f6f206c6f7720746f206265206170706c6965642e3c416c72656164794d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002304150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002404f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e285265737472696374656400250851014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e20706f6f6c732e2054686973206d61792068617070656e20696620746865206163636f756e742069737c7374616b696e6720696e20616e6f746865722077617920616c72656164792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0e0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c69656400060000b10e0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640189013452756e74696d654f726967696e014902184d6f6d656e7401101043616c6c0129021c42616c616e636501181454616c6c7901f507244163636f756e74496401003c5363686564756c6541646472657373016d0101181c4f6e676f696e670400b50e018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000b50e0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640189013452756e74696d654f726967696e014902184d6f6d656e7401101043616c6c0129021c42616c616e636501181454616c6c7901f507244163636f756e74496401003c5363686564756c6541646472657373016d01002c0114747261636b8901011c547261636b49640001186f726967696e4902013452756e74696d654f726967696e00012070726f706f73616c2902011043616c6c000124656e6163746d656e7419060150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974e50d016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974e90d018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67ed0d01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79f507011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726df50d01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000b90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d010453000004009d0801185665633c543e0000bd0e0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10e086070616c6c65745f72616e6b65645f636f6c6c656374697665304d656d6265725265636f7264000004011072616e6b8901011052616e6b0000c50e0000040889010000c90e0000040889011000cd0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d10e0c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c34416c72656164794d656d626572000004704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000104604163636f756e74206973206e6f742061206d656d6265722e284e6f74506f6c6c696e67000204b854686520676976656e20706f6c6c20696e64657820697320756e6b6e6f776e206f722068617320636c6f7365642e1c4f6e676f696e670003048054686520676976656e20706f6c6c206973207374696c6c206f6e676f696e672e344e6f6e6552656d61696e696e67000404ac546865726520617265206e6f2066757274686572207265636f72647320746f2062652072656d6f7665642e28436f7272757074696f6e00050468556e6578706563746564206572726f7220696e2073746174652e2852616e6b546f6f4c6f7700060494546865206d656d62657227732072616e6b20697320746f6f206c6f7720746f20766f74652e38496e76616c69645769746e6573730007049854686520696e666f726d6174696f6e2070726f766964656420697320696e636f72726563742e304e6f5065726d697373696f6e000804f8546865206f726967696e206973206e6f742073756666696369656e746c792070726976696c6567656420746f20646f20746865206f7065726174696f6e2e2853616d654d656d626572000904e0546865206e6577206d656d62657220746f2065786368616e6765206973207468652073616d6520617320746865206f6c64206d656d62657238546f6f4d616e794d656d62657273000a04cc546865206d6178206d656d62657220636f756e7420666f72207468652072616e6b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed50e0c5c70616c6c65745f61737365745f636f6e76657273696f6e14747970657320506f6f6c496e666f042c506f6f6c417373657449640110000401206c705f746f6b656e10012c506f6f6c417373657449640000d90e0c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144572726f7204045400015c40496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e28506f6f6c45786973747300010450506f6f6c20616c7265616479206578697374732e4857726f6e6744657369726564416d6f756e74000204744465736972656420616d6f756e742063616e2774206265207a65726f2e60416d6f756e744f6e654c6573735468616e4d696e696d616c000308490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e60416d6f756e7454776f4c6573735468616e4d696e696d616c000408490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e68526573657276654c6566744c6573735468616e4d696e696d616c0005084d0152657365727665206e6565647320746f20616c776179732062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e40416d6f756e744f7574546f6f48696768000604c84465736972656420616d6f756e742063616e277420626520657175616c20746f2074686520706f6f6c20726573657276652e30506f6f6c4e6f74466f756e640007045c54686520706f6f6c20646f65736e27742065786973742e204f766572666c6f7700080454416e206f766572666c6f772068617070656e65642e8041737365744f6e654465706f7369744469644e6f744d6565744d696e696d756d0009042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e80417373657454776f4465706f7369744469644e6f744d6565744d696e696d756d000a042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e8c41737365744f6e655769746864726177616c4469644e6f744d6565744d696e696d756d000b042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e8c417373657454776f5769746864726177616c4469644e6f744d6565744d696e696d756d000c042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e704f7074696d616c416d6f756e744c6573735468616e44657369726564000d04bc4f7074696d616c2063616c63756c6174656420616d6f756e74206973206c657373207468616e20646573697265642e6c496e73756666696369656e744c69717569646974794d696e746564000e0478496e73756666696369656e74206c6971756964697479206d696e7465642e345a65726f4c6971756964697479000f0488526571756573746564206c69717569646974792063616e2774206265207a65726f2e285a65726f416d6f756e7400100454416d6f756e742063616e2774206265207a65726f2e8c50726f76696465644d696e696d756d4e6f7453756666696369656e74466f7253776170001104ec43616c63756c6174656420616d6f756e74206f7574206973206c657373207468616e2070726f7669646564206d696e696d756d20616d6f756e742e8c50726f76696465644d6178696d756d4e6f7453756666696369656e74466f7253776170001204cc50726f7669646564206d6178696d756d20616d6f756e74206973206e6f742073756666696369656e7420666f7220737761702e2c496e76616c696450617468001304d45468652070726f76696465642070617468206d75737420636f6e7369737473206f66203220617373657473206174206c656173742e344e6f6e556e6971756550617468001404c45468652070726f76696465642070617468206d75737420636f6e7369737473206f6620756e69717565206173736574732e50496e636f7272656374506f6f6c41737365744964001504ec497420776173206e6f7420706f737369626c6520746f20676574206f7220696e6372656d656e7420746865204964206f662074686520706f6f6c2e3042656c6f774d696e696d756d001604f05468652064657374696e6174696f6e206163636f756e742063616e6e6f7420657869737420776974682074686520737761707065642066756e64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0e0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c73746173686573e10e01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564e50e0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e0000e10e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010101045300000400fc01185665633c543e0000e50e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c10101185665633c543e0000e90e0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed0e085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e011000180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273f10e01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000f10e04184f7074696f6e04045401f50e0108104e6f6e6500000010536f6d650400f50e0000010000f50e085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e011000080110707265761001344d6573736167654f726967696e0001106e6578741001344d6573736167654f726967696e0000f90e085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170fd0e019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000fd0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000010f0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050f0c3c70616c6c65745f74785f70617573651870616c6c6574144572726f720404540001102049735061757365640000044c5468652063616c6c206973207061757365642e284973556e706175736564000104545468652063616c6c20697320756e7061757365642e28556e7061757361626c65000204b45468652063616c6c2069732077686974656c697374656420616e642063616e6e6f74206265207061757365642e204e6f74466f756e64000300048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090f0c4070616c6c65745f736166655f6d6f64651870616c6c6574144572726f7204045400011c1c456e7465726564000004b054686520736166652d6d6f64652069732028616c7265616479206f72207374696c6c2920656e74657265642e18457869746564000104ac54686520736166652d6d6f64652069732028616c7265616479206f72207374696c6c29206578697465642e344e6f74436f6e666967757265640002040901546869732066756e6374696f6e616c697479206f66207468652070616c6c65742069732064697361626c65642062792074686520636f6e66696775726174696f6e2e244e6f4465706f736974000304745468657265206973206e6f2062616c616e63652072657365727665642e40416c72656164794465706f73697465640004045d01546865206163636f756e7420616c7265616479206861732061206465706f73697420726573657276656420616e642063616e207468657265666f7265206e6f7420656e746572206f7220657874656e6420616761696e2e4043616e6e6f7452656c656173655965740005049054686973206465706f7369742063616e6e6f742062652072656c6561736564207965742e3443757272656e63794572726f72000604a0416e206572726f722066726f6d2074686520756e6465726c79696e67206043757272656e6379602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d0f0c4470616c6c65745f6d6967726174696f6e731870616c6c6574144572726f720404540001041c4f6e676f696e67000004e8546865206f7065726174696f6e2063616e6e6f7420636f6d706c6574652073696e636520736f6d65204d424d7320617265206f6e676f696e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e110f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e906045300000400150f01185665633c543e0000150f000002e90600190f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d0f045300000400210f01185665633c543e00001d0f0c3470616c6c65745f62726f6b65721474797065733c4c656173655265636f72644974656d0000080114756e74696c10012454696d65736c6963650001107461736b1001185461736b49640000210f0000021d0f00250f0c3470616c6c65745f62726f6b6572147479706573305374617475735265636f72640000140128636f72655f636f756e7489010124436f7265496e646578000144707269766174655f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7400014073797374656d5f706f6f6c5f73697a65100140436f72654d61736b426974436f756e740001606c6173745f636f6d6d69747465645f74696d65736c69636510012454696d65736c6963650001386c6173745f74696d65736c69636510012454696d65736c6963650000290f0c3470616c6c65745f62726f6b65721474797065733853616c65496e666f5265636f7264081c42616c616e636501184052656c6179426c6f636b4e756d62657201100028012873616c655f737461727410014052656c6179426c6f636b4e756d6265720001346c656164696e5f6c656e67746810014052656c6179426c6f636b4e756d626572000124656e645f707269636518011c42616c616e6365000130726567696f6e5f626567696e10012454696d65736c696365000128726567696f6e5f656e6410012454696d65736c696365000140696465616c5f636f7265735f736f6c6489010124436f7265496e646578000134636f7265735f6f66666572656489010124436f7265496e64657800012866697273745f636f726589010124436f7265496e64657800013473656c6c6f75745f7072696365a903013c4f7074696f6e3c42616c616e63653e000128636f7265735f736f6c6489010124436f7265496e64657800002d0f0c3470616c6c65745f62726f6b657214747970657348506f74656e7469616c52656e6577616c49640000080110636f726589010124436f7265496e6465780001107768656e10012454696d65736c6963650000310f0c3470616c6c65745f62726f6b657214747970657358506f74656e7469616c52656e6577616c5265636f7264041c42616c616e6365011800080114707269636518011c42616c616e6365000128636f6d706c6574696f6e350f0140436f6d706c6574696f6e5374617475730000350f0c3470616c6c65745f62726f6b657214747970657340436f6d706c6574696f6e5374617475730001081c5061727469616c0400f1060120436f72654d61736b00000020436f6d706c6574650400e90601205363686564756c6500010000390f0c3470616c6c65745f62726f6b657214747970657330526567696f6e5265636f726408244163636f756e74496401001c42616c616e63650118000c010c656e6410012454696d65736c6963650001146f776e6572ac01444f7074696f6e3c4163636f756e7449643e00011070616964a903013c4f7074696f6e3c42616c616e63653e00003d0f0000040810890100410f0c3470616c6c65745f62726f6b657214747970657348436f6e747269627574696f6e5265636f726404244163636f756e7449640100000801186c656e67746810012454696d65736c69636500011470617965650001244163636f756e7449640000450f0c3470616c6c65745f62726f6b657214747970657330506f6f6c496f5265636f7264000008011c70726976617465490f01585369676e6564436f72654d61736b426974436f756e7400011873797374656d490f01585369676e6564436f72654d61736b426974436f756e740000490f0000050b004d0f0c3470616c6c65745f62726f6b657214747970657358496e737461506f6f6c486973746f72795265636f7264041c42616c616e63650118000c0154707269766174655f636f6e747269627574696f6e73100140436f72654d61736b426974436f756e7400015073797374656d5f636f6e747269627574696f6e73100140436f72654d61736b426974436f756e740001306d617962655f7061796f7574a903013c4f7074696f6e3c42616c616e63653e0000510f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401550f045300000400590f01185665633c543e0000550f0c3470616c6c65745f62726f6b6572147479706573444175746f52656e6577616c5265636f726400000c0110636f726589010124436f7265496e6465780001107461736b1001185461736b49640001306e6578745f72656e6577616c10012454696d65736c6963650000590f000002550f005d0f0c3470616c6c65745f62726f6b65721870616c6c6574144572726f7204045400019434556e6b6e6f776e526567696f6e0000049c54686520676976656e20726567696f6e206964656e74697479206973206e6f74206b6e6f776e2e204e6f744f776e6572000104a8546865206f776e6572206f662074686520726567696f6e206973206e6f7420746865206f726967696e2e305069766f74546f6f4c6174650002040d01546865207069766f7420706f696e74206f662074686520706172746974696f6e206174206f722061667465722074686520656e64206f662074686520726567696f6e2e345069766f74546f6f4561726c790003040101546865207069766f7420706f696e74206f662074686520706172746974696f6e2061742074686520626567696e6e696e67206f662074686520726567696f6e2e344578746572696f725069766f740004045d01546865207069766f74206d61736b20666f722074686520696e7465726c6163696e67206973206e6f7420636f6e7461696e65642077697468696e2074686520726567696f6e277320696e7465726c616365206d61736b2e24566f69645069766f740005042501546865207069766f74206d61736b20666f722074686520696e7465726c6163696e6720697320766f69642028616e64207468657265666f726520756e7363686564756c61626c65292e34436f6d706c6574655069766f740006044d01546865207069766f74206d61736b20666f722074686520696e7465726c6163696e6720697320636f6d706c6574652028616e64207468657265666f7265206e6f7420612073747269637420737562736574292e3c436f7272757074576f726b706c616e000704450154686520776f726b706c616e206f66207468652070616c6c6574277320737461746520697320696e76616c69642e205468697320696e64696361746573206120737461746520636f7272757074696f6e2e1c4e6f53616c6573000804945468657265206973206e6f2073616c652068617070656e696e672063757272656e746c792e284f76657270726963656400090470546865207072696365206c696d69742069732065786365656465642e2c556e617661696c61626c65000a0474546865726520617265206e6f20636f72657320617661696c61626c652e1c536f6c644f7574000b04805468652073616c65206c696d697420686173206265656e20726561636865642e2457726f6e6754696d65000c085d015468652072656e6577616c206f7065726174696f6e206973206e6f742076616c6964206174207468652063757272656e742074696d6520286974206d6179206265636f6d652076616c696420696e20746865206e6578741873616c65292e284e6f74416c6c6f776564000d0464496e76616c696420617474656d707420746f2072656e65772e34556e696e697469616c697a6564000e04a4546869732070616c6c657420686173206e6f7420796574206265656e20696e697469616c697a65642e20546f6f4561726c79000f0409015468652070757263686173652063616e6e6f742068617070656e20796574206173207468652073616c6520706572696f642069732079657420746f20626567696e2e2c4e6f7468696e67546f446f001004705468657265206973206e6f20776f726b20746f20626520646f6e652e4c546f6f4d616e795265736572766174696f6e73001104f0546865206d6178696d756d20616d6f756e74206f66207265736572766174696f6e732068617320616c7265616479206265656e20726561636865642e34546f6f4d616e794c6561736573001204d8546865206d6178696d756d20616d6f756e74206f66206c65617365732068617320616c7265616479206265656e20726561636865642e344c656173654e6f74466f756e6400130464546865206c6561736520646f6573206e6f742065786973742e38556e6b6e6f776e526576656e75650014085d0154686520726576656e756520666f722074686520496e7374616e74616e656f757320436f72652053616c6573206f66207468697320706572696f64206973206e6f74202879657429206b6e6f776e20616e6420746875737874686973206f7065726174696f6e2063616e6e6f742070726f636565642e4c556e6b6e6f776e436f6e747269627574696f6e0015041901546865206964656e74696669656420636f6e747269627574696f6e20746f2074686520496e7374616e74616e656f757320436f726520506f6f6c20697320756e6b6e6f776e2e50496e636f6d706c65746541737369676e6d656e740016084d0154686520776f726b6c6f61642061737369676e656420666f722072656e6577616c20697320696e636f6d706c6574652e205468697320697320756e657870656374656420616e6420696e646963617465732061306c6f676963206572726f722e285374696c6c56616c6964001704d0416e206974656d2063616e6e6f742062652064726f707065642062656361757365206974206973207374696c6c2076616c69642e244e6f486973746f72790018048054686520686973746f7279206974656d20646f6573206e6f742065786973742e48556e6b6e6f776e5265736572766174696f6e001904a44e6f207265736572766174696f6e206f662074686520676976656e20696e646578206578697374732e38556e6b6e6f776e52656e6577616c001a048c5468652072656e6577616c207265636f72642063616e6e6f7420626520666f756e642e38416c726561647945787069726564001b04a4546865206c65617365206578706972792074696d652068617320616c7265616479207061737365642e34496e76616c6964436f6e666967001c04f454686520636f6e66696775726174696f6e20636f756c64206e6f74206265206170706c696564206265636175736520697420697320696e76616c69642e444e6f436c61696d54696d65736c69636573001d04d454686520726576656e7565206d75737420626520636c61696d656420666f722031206f72206d6f72652074696d65736c696365732e304e6f5065726d697373696f6e001e0425015468652063616c6c657220646f65736e2774206861766520746865207065726d697373696f6e20746f20656e61626c65206f722064697361626c65206175746f2d72656e6577616c2e4c546f6f4d616e794175746f52656e6577616c73001f049c5765207265616368656420746865206c696d697420666f72206175746f2d72656e6577616c732e484e6f6e5461736b4175746f52656e6577616c002004f04f6e6c7920636f726573207768696368206172652061737369676e656420746f2061207461736b2063616e206265206175746f2d72656e657765642e60536f7665726569676e4163636f756e744e6f74466f756e64002104b84661696c656420746f206765742074686520736f7665726569676e206163636f756e74206f662061207461736b2e544175746f52656e6577616c4e6f74456e61626c65640022042501417474656d7074656420746f2064697361626c65206175746f2d72656e6577616c20666f72206120636f72652074686174206469646e2774206861766520697420656e61626c65642e4841737369676e6d656e744e6f74466f756e64002304ec417474656d7074656420746f20666f7263652072656d6f766520616e2061737369676e6d656e74207468617420646f65736e27742065786973742e584372656469745075726368617365546f6f536d616c6c00240859014e656564656420746f2070726576656e74207370616d2061747461636b732e54686520616d6f756e74206f66206372656469747320746865207573657220617474656d7074656420746f2070757263686173652069738462656c6f772060543a3a4d696e696d756d4372656469745075726368617365602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e610f0c5070616c6c65745f6578616d706c655f7461736b731870616c6c6574144572726f72040454000104204e6f74466f756e6400000488546865207265666572656e636564207461736b20776173206e6f7420666f756e642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650f0c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c6574144572726f7204045400011040496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e30506f6f6c4e6f74466f756e640001045c54686520706f6f6c20646f65736e27742065786973742e2c5a65726f42616c616e636500020478506f6f6c27732062616c616e63652063616e6e6f74206265207a65726f2e3c5061727469616c5472616e736665720003043901496e646963617465732061207061727469616c207472616e73666572206f662062616c616e636520746f20746865206e6577206163636f756e7420647572696e672061206d6967726174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00006d0f0c3470616c6c65745f726576697665107761736d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f7369749902013042616c616e63654f663c543e000120726566636f756e742c010c753634000120636f64655f6c656e10010c7533320001446265686176696f75725f76657273696f6e10010c7533320000710f0c3470616c6c65745f7265766976651c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f6964bd010118547269654964000124636f64655f6861736834013473705f636f72653a3a4832353600013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e000148696d6d757461626c655f646174615f6c656e10010c7533320000750f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000790f0c3470616c6c65745f7265766976651c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c75333200007d0f0c3470616c6c65745f7265766976651870616c6c6574144572726f720404540001c03c496e76616c69645363686564756c650000041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730001043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000204b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e385472616e736665724661696c65640003083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640004082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000504bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f64654e6f74466f756e64000604c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000704d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e647300080425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c65640009042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000a0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000b04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000c0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000d044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e34546f6f4d616e79546f70696373000e041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e404e6f436861696e457874656e73696f6e000f0c450154686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c74734d01696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e7472616374733069732072656a65637465642e3c58434d4465636f64654661696c6564001004844661696c656420746f206465636f6465207468652058434d2070726f6772616d2e444475706c6963617465436f6e7472616374001104c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200120cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640013040d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e3c5265656e746572656450616c6c65740014042d014120636f6e74726163742063616c6c656420696e746f207468652072756e74696d65207768696368207468656e2063616c6c6564206261636b20696e746f20746869732070616c6c65742e4453746174654368616e676544656e6965640015044d014120636f6e747261637420617474656d7074656420746f20696e766f6b652061207374617465206d6f64696679696e6720415049207768696c65206265696e6720696e20726561642d6f6e6c79206d6f64652e7053746f726167654465706f7369744e6f74456e6f75676846756e647300160421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640017040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e5573650018044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001910250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001a10190154686520636f6e7472616374206661696c656420746f20636f6d70696c65206f72206973206d697373696e672074686520636f727265637420656e74727920706f696e74732e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c65649c627920737570706c79696e6720602d6c72756e74696d653a3a7265766976653d6465627567602e30426c6f62546f6f4c61726765001b040d0154686520636f646520626c6f6220737570706c696564206973206c6172676572207468616e205b606c696d6974733a3a636f64653a3a424c4f425f4259544553605d2e505374617469634d656d6f7279546f6f4c61726765001c08f454686520737461746963206d656d6f727920636f6e73756d7074696f6e206f662074686520626c6f622077696c6c206265206c6172676572207468616e985b606c696d6974733a3a636f64653a3a5354415449435f4d454d4f52595f4259544553605d2e484261736963426c6f636b546f6f4c61726765001d04fc5468652070726f6772616d20636f6e7461696e73206120626173696320626c6f636b2074686174206973206c6172676572207468616e20616c6c6f7765642e48496e76616c6964496e737472756374696f6e001e04b05468652070726f6772616d20636f6e7461696e7320616e20696e76616c696420696e737472756374696f6e2e784d617844656c6567617465446570656e64656e6369657352656163686564001f04150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64002004150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002104f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002204290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e544f75744f665472616e7369656e7453746f72616765002304ac43616e206e6f7420616464206d6f7265206461746120746f207472616e7369656e742073746f726167652e38496e76616c696453797363616c6c002404550154686520636f6e747261637420747269656420746f2063616c6c20612073797363616c6c20776869636820646f6573206e6f7420657869737420286174206974732063757272656e7420617069206c6576656c292e4c496e76616c696453746f72616765466c6167730025040501496e76616c69642073746f7261676520666c61677320776572652070617373656420746f206f6e65206f66207468652073746f726167652073797363616c6c732e3c457865637574696f6e4661696c65640026042901506f6c6b61564d206661696c656420647572696e6720636f646520657865637574696f6e2e2050726f6261626c792064756520746f2061206d616c666f726d65642070726f6772616d2e5c42616c616e6365436f6e76657273696f6e4661696c6564002704984661696c656420746f20636f6e766572742061205532353620746f20612042616c616e63652e50446563696d616c507265636973696f6e4c6f7373002804d44661696c656420746f20636f6e7665727420616e2045564d2062616c616e636520746f2061206e61746976652062616c616e63652e58496e76616c6964496d6d757461626c654163636573730029083101496d6d757461626c6520646174612063616e206f6e6c792062652073657420647572696e67206465706c6f797320616e64206f6e6c79206265207265616420647572696e672063616c6c732e35014164646974696f6e616c6c792c206974206973206f6e6c792076616c696420746f20736574207468652064617461206f6e636520616e64206974206d757374206e6f7420626520656d7074792e3c4163636f756e74556e6d6170706564002a0c5101416e20604163636f756e744944333260206163636f756e7420747269656420746f20696e7465726163742077697468207468652070616c6c657420776974686f757420686176696e672061206d617070696e672e00290143616c6c205b6050616c6c65743a3a6d61705f6163636f756e74605d20696e206f7264657220746f206372656174652061206d617070696e6720666f7220746865206163636f756e742e504163636f756e74416c72656164794d6170706564002b04bc547269656420746f206d617020616e206163636f756e74207468617420697320616c7265616479206d61707065642e64496e76616c696447656e657269635472616e73616374696f6e002c04d8546865207472616e73616374696f6e207573656420746f206472792d72756e206120636f6e747261637420697320696e76616c69642e5c526566636f756e744f7665724f72556e646572666c6f77002d04c854686520726566636f756e74206f66206120636f646520656974686572206f766572206f7220756e646572666c6f7765642e70556e737570706f72746564507265636f6d70696c6541646472657373002e0478556e737570706f7274656420707265636f6d70696c65206164647265737344507265636f6d70696c654661696c757265002f0440507265636f6d70696c65204572726f72048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810f0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732844656c65676174696f6e04045400000801146167656e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000850f0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732c4167656e744c656467657204045400001001147061796565000130543a3a4163636f756e74496400013c746f74616c5f64656c6567617465649902013042616c616e63654f663c543e000154756e636c61696d65645f7769746864726177616c739902013042616c616e63654f663c543e00013470656e64696e675f736c6173689902013042616c616e63654f663c543e0000890f0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144572726f72040454000130284e6f74416c6c6f776564000004a8546865206163636f756e742063616e6e6f7420706572666f726d2074686973206f7065726174696f6e2e38416c72656164795374616b696e67000104b8416e206578697374696e67207374616b65722063616e6e6f7420706572666f726d207468697320616374696f6e2e60496e76616c696452657761726444657374696e6174696f6e000204d45265776172642044657374696e6174696f6e2063616e6e6f742062652073616d6520617320604167656e7460206163636f756e742e44496e76616c696444656c65676174696f6e0003148844656c65676174696f6e20636f6e646974696f6e7320617265206e6f74206d65742e004c506f737369626c6520697373756573206172656c31292043616e6e6f742064656c656761746520746f2073656c662ca432292043616e6e6f742064656c656761746520746f206d756c7469706c652064656c6567617465732e384e6f74456e6f75676846756e64730004040101546865206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20706572666f726d20746865206f7065726174696f6e2e204e6f744167656e74000504804e6f7420616e206578697374696e6720604167656e7460206163636f756e742e304e6f7444656c656761746f72000604604e6f7420612044656c656761746f72206163636f756e742e20426164537461746500070488536f6d6520636f7272757074696f6e20696e20696e7465726e616c2073746174652e38556e6170706c696564536c617368000804dc556e6170706c6965642070656e64696e6720736c61736820726573747269637473206f7065726174696f6e206f6e20604167656e74602e384e6f7468696e67546f536c617368000904ac604167656e746020686173206e6f2070656e64696e6720736c61736820746f206265206170706c6965642e3857697468647261774661696c6564000a04b04661696c656420746f20776974686472617720616d6f756e742066726f6d20436f7265205374616b696e672e304e6f74537570706f72746564000b049c4f7065726174696f6e206e6f7420737570706f7274656420627920746869732070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0f085070616c6c65745f61737365745f7265776172647338506f6f6c5374616b6572496e666f041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011c7265776172647318011c42616c616e63650001547265776172645f7065725f746f6b656e5f7061696418011c42616c616e63650000910f085070616c6c65745f61737365745f7265776172647320506f6f6c496e666f10244163636f756e74496401001c4173736574496401a01c42616c616e636501182c426c6f636b4e756d62657201100024013c7374616b65645f61737365745f6964a0011c4173736574496400013c7265776172645f61737365745f6964a0011c417373657449640001547265776172645f726174655f7065725f626c6f636b18011c42616c616e63650001306578706972795f626c6f636b10012c426c6f636b4e756d62657200011461646d696e0001244163636f756e74496400014c746f74616c5f746f6b656e735f7374616b656418011c42616c616e636500015c7265776172645f7065725f746f6b656e5f73746f72656418011c42616c616e63650001446c6173745f7570646174655f626c6f636b10012c426c6f636b4e756d62657200011c6163636f756e740001244163636f756e7449640000950f0000040800990f00990f14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e636500009d0f0c5070616c6c65745f61737365745f726577617264731870616c6c6574144572726f720404540001283c4e6f74456e6f756768546f6b656e730000040101546865207374616b657220646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f20706572666f726d20746865206f7065726174696f6e2e3c4e6f6e4578697374656e74506f6f6c000104c8416e206f7065726174696f6e2077617320617474656d70746564206f6e2061206e6f6e2d6578697374656e7420706f6f6c2e444e6f6e4578697374656e745374616b6572000204d4416e206f7065726174696f6e2077617320617474656d7074656420666f722061206e6f6e2d6578697374656e74207374616b65722e404e6f6e4578697374656e744173736574000304d4416e206f7065726174696f6e2077617320617474656d7074656420776974682061206e6f6e2d6578697374656e742061737365742e68426c6f636b4e756d626572436f6e76657273696f6e4572726f72000404b454686572652077617320616e206572726f7220636f6e76657274696e67206120626c6f636b206e756d6265722e70457870697279426c6f636b4d7573744265496e5468654675747572650005049c5468652065787069727920626c6f636b206d75737420626520696e20746865206675747572652e44496e73756666696369656e7446756e6473000604a0496e73756666696369656e742066756e647320746f206372656174652074686520667265657a652e24457870697279437574000704985468652065787069727920626c6f636b2063616e206265206f6e6c7920657874656e6465642e3452657761726452617465437574000804c05468652072657761726420726174652070657220626c6f636b2063616e206265206f6e6c7920696e637265617365642e304e6f6e456d707479506f6f6c000904b054686520706f6f6c207374696c6c20686173207374616b656420746f6b656e73206f7220726577617264732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10f0c5470616c6c65745f6173736574735f667265657a65721870616c6c6574144572726f7208045400044900010438546f6f4d616e79467265657a6573000004e84e756d626572206f6620667265657a6573206f6e20616e206163636f756e7420776f756c642065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50f0c3870616c6c65745f6d6574615f74781870616c6c6574144572726f720404540001182042616450726f6f660000047c496e76616c69642070726f6f662028652e672e207369676e6174757265292e18467574757265000104f0546865206d657461207472616e73616374696f6e206973206e6f74207965742076616c69642028652e672e206e6f6e636520746f6f2068696768292e145374616c65000204d8546865206d657461207472616e73616374696f6e206973206f757464617465642028652e672e206e6f6e636520746f6f206c6f77292e44416e6369656e744269727468426c6f636b000304bc546865206d657461207472616e73616374696f6e73277320626972746820626c6f636b20697320616e6369656e742e34556e6b6e6f776e4f726967696e000404dc546865207472616e73616374696f6e20657874656e73696f6e20646964206e6f7420617574686f72697a6520616e79206f726967696e2e1c496e76616c696400050480546865206d657461207472616e73616374696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90f00000428950799079d07a107a507ad07ad0fb10fb107b90f00ad0f10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000b10f088870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e7450436861726765417373657454785061796d656e74040454000008010c7469709902013042616c616e63654f663c543e00012061737365745f6964b50f01484f7074696f6e3c543a3a417373657449643e0000b50f04184f7074696f6e04045401a00108104e6f6e6500000010536f6d650400a00000010000b90f10306672616d655f73797374656d28657874656e73696f6e73387765696768745f7265636c61696d345765696768745265636c61696d04045400000000bd0f102873705f72756e74696d651c67656e6572696314626c6f636b14426c6f636b08184865616465720165022445787472696e73696301c10f000801186865616465726502011848656164657200012865787472696e73696373c50f01385665633c45787472696e7369633e0000c10f102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c41646472657373018d021043616c6c012d02245369676e617475726501e50414457874726101a90f00040038000000c50f000002c10f00c90f082873705f72756e74696d655845787472696e736963496e636c7573696f6e4d6f646500010834416c6c45787472696e73696373000000344f6e6c79496e686572656e747300010000cd0f081c73705f636f7265384f70617175654d657461646174610000040038011c5665633c75383e0000d10f04184f7074696f6e04045401cd0f0108104e6f6e6500000010536f6d650400cd0f0000010000d50f0c346672616d655f737570706f727438766965775f66756e6374696f6e73385669657746756e6374696f6e49640000080118707265666978490101205b75383b2031365d000118737566666978490101205b75383b2031365d0000d90f0418526573756c740804540138044501dd0f0108084f6b040038000000000c4572720400dd0f0000010000dd0f0c346672616d655f737570706f727438766965775f66756e6374696f6e73645669657746756e6374696f6e44697370617463684572726f7200010c384e6f74496d706c656d656e746564000000204e6f74466f756e640400d50f01385669657746756e6374696f6e496400010014436f64656300020000e10f0418526573756c740804540184044501e50f0108084f6b040084000000000c4572720400e50f0000010000e50f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479605472616e73616374696f6e56616c69646974794572726f720001081c496e76616c69640400e90f0148496e76616c69645472616e73616374696f6e0000001c556e6b6e6f776e0400ed0f0148556e6b6e6f776e5472616e73616374696f6e00010000e90f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948496e76616c69645472616e73616374696f6e0001341043616c6c0000001c5061796d656e7400010018467574757265000200145374616c650003002042616450726f6f6600040044416e6369656e744269727468426c6f636b0005004445786861757374735265736f757263657300060018437573746f6d04000801087538000700304261644d616e6461746f72790008004c4d616e6461746f727956616c69646174696f6e000900244261645369676e6572000a0054496e64657465726d696e617465496d706c69636974000b0034556e6b6e6f776e4f726967696e000c0000ed0f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948556e6b6e6f776e5472616e73616374696f6e00010c3043616e6e6f744c6f6f6b75700000004c4e6f556e7369676e656456616c696461746f7200010018437573746f6d0400080108753800020000f10f083073705f696e686572656e747330496e686572656e7444617461000004011064617461f50f019442547265654d61703c496e686572656e744964656e7469666965722c205665633c75383e3e0000f50f042042547265654d617008044b01750404560138000400f90f000000f90f000002fd0f00fd0f00000408750438000110083073705f696e686572656e747350436865636b496e686572656e7473526573756c7400000c01106f6b6179200110626f6f6c00012c666174616c5f6572726f72200110626f6f6c0001186572726f7273f10f0130496e686572656e7444617461000005100c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479445472616e73616374696f6e536f7572636500010c1c496e426c6f636b000000144c6f63616c0001002045787465726e616c0002000009100418526573756c74080454010d10044501e50f0108084f6b04000d10000000000c4572720400e50f00000100000d100c2873705f72756e74696d65507472616e73616374696f6e5f76616c69646974794056616c69645472616e73616374696f6e00001401207072696f7269747930014c5472616e73616374696f6e5072696f7269747900012072657175697265733d02014c5665633c5472616e73616374696f6e5461673e00012070726f76696465733d02014c5665633c5472616e73616374696f6e5461673e0001246c6f6e6765766974793001505472616e73616374696f6e4c6f6e67657669747900012470726f706167617465200110626f6f6c000011100c4873705f73746174656d656e745f73746f72652c72756e74696d655f6170693c53746174656d656e74536f7572636500010c14436861696e0000001c4e6574776f726b000100144c6f63616c0002000015100418526573756c740804540119100445011d100108084f6b04001910000000000c45727204001d10000001000019100c4873705f73746174656d656e745f73746f72652c72756e74696d655f6170693856616c696453746174656d656e7400000801246d61785f636f756e7410010c7533320001206d61785f73697a6510010c75333200001d100c4873705f73746174656d656e745f73746f72652c72756e74696d655f61706940496e76616c696453746174656d656e7400010c2042616450726f6f660000001c4e6f50726f6f6600010034496e7465726e616c4572726f72000200002110082873705f72756e74696d652c4f706171756556616c75650000040038011c5665633c75383e0000251004184f7074696f6e04045401880108104e6f6e6500000010536f6d650400880000010000291004184f7074696f6e0404540121100108104e6f6e6500000010536f6d650400211000000100002d10084473705f636f6e73656e7375735f626162654442616265436f6e66696775726174696f6e0000180134736c6f745f6475726174696f6e30010c75363400013065706f63685f6c656e67746830010c753634000104637d020128287536342c207536342900012c617574686f726974696573e908019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000134616c6c6f7765645f736c6f747381020130416c6c6f776564536c6f747300003110084473705f636f6e73656e7375735f626162651445706f6368000018012c65706f63685f696e64657830010c75363400012873746172745f736c6f7471020110536c6f740001206475726174696f6e30010c75363400012c617574686f726974696573e908019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000118636f6e6669670d0901584261626545706f6368436f6e66696775726174696f6e0000351004184f7074696f6e0404540139100108104e6f6e6500000010536f6d650400391000000100003910084473705f636f6e73656e7375735f626162655c4f70617175654b65794f776e65727368697050726f6f660000040038011c5665633c75383e00003d100c4070616c6c65745f636f6e747261637473287072696d69746976657338436f6e7472616374526573756c740c04520141101c42616c616e636501182c4576656e745265636f72640150001801306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369744d10015c53746f726167654465706f7369743c42616c616e63653e00013464656275675f6d65737361676538011c5665633c75383e000118726573756c7441100104520001186576656e7473511001604f7074696f6e3c5665633c4576656e745265636f72643e3e000041100418526573756c74080454014510044501680108084f6b04004510000000000c457272040068000001000045100c4070616c6c65745f636f6e747261637473287072696d6974697665733c4578656352657475726e56616c75650000080114666c6167734910012c52657475726e466c6167730001106461746138011c5665633c75383e000049100c5470616c6c65745f636f6e7472616374735f7561706914666c6167732c52657475726e466c61677300000401106269747310010c75333200004d100c4070616c6c65745f636f6e747261637473287072696d6974697665733853746f726167654465706f736974041c42616c616e63650118010818526566756e64040018011c42616c616e636500000018436861726765040018011c42616c616e636500010000511004184f7074696f6e0404540155100108104e6f6e6500000010536f6d650400551000000100005510000002500059100c4070616c6c65745f636f6e747261637473287072696d69746976657310436f6465041048617368013401081855706c6f6164040038011c5665633c75383e000000204578697374696e67040034011048617368000100005d100c4070616c6c65745f636f6e747261637473287072696d69746976657338436f6e7472616374526573756c740c04520161101c42616c616e636501182c4576656e745265636f72640150001801306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369744d10015c53746f726167654465706f7369743c42616c616e63653e00013464656275675f6d65737361676538011c5665633c75383e000118726573756c7461100104520001186576656e7473511001604f7074696f6e3c5665633c4576656e745265636f72643e3e000061100418526573756c74080454016510044501680108084f6b04006510000000000c457272040068000001000065100c4070616c6c65745f636f6e747261637473287072696d69746976657358496e7374616e746961746552657475726e56616c756504244163636f756e744964010000080118726573756c744510013c4578656352657475726e56616c75650001286163636f756e745f69640001244163636f756e744964000069100418526573756c74080454016d10044501680108084f6b04006d10000000000c45727204006800000100006d100c4070616c6c65745f636f6e747261637473287072696d69746976657354436f646555706c6f616452657475726e56616c75650820436f64654861736801341c42616c616e6365011800080124636f64655f68617368340120436f64654861736800011c6465706f73697418011c42616c616e6365000071100418526573756c7408045401dd0604450175100108084f6b0400dd06000000000c45727204007510000001000075100c4070616c6c65745f636f6e747261637473287072696d6974697665734c436f6e74726163744163636573734572726f7200010c2c446f65736e744578697374000000444b65794465636f64696e674661696c65640001004c4d6967726174696f6e496e50726f6772657373000200007910083c7072696d69746976655f74797065731055323536000004007d1001205b7536343b20345d00007d1000000304000000300081100c3470616c6c65745f726576697665287072696d69746976657338436f6e7472616374526573756c740804520185101c42616c616e63650118001001306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369748d10015c53746f726167654465706f7369743c42616c616e63653e000118726573756c7491100160526573756c743c522c2044697370617463684572726f723e000085100c3470616c6c65745f726576697665287072696d6974697665733c4578656352657475726e56616c75650000080114666c6167738910012c52657475726e466c6167730001106461746138011c5665633c75383e000089100c4870616c6c65745f7265766976655f7561706914666c6167732c52657475726e466c61677300000401106269747310010c75333200008d100c3470616c6c65745f726576697665287072696d6974697665733853746f726167654465706f736974041c42616c616e63650118010818526566756e64040018011c42616c616e636500000018436861726765040018011c42616c616e63650001000091100418526573756c74080454018510044501680108084f6b04008510000000000c457272040068000001000095100c3470616c6c65745f726576697665287072696d69746976657310436f64650001081855706c6f6164040038011c5665633c75383e000000204578697374696e67040034013473705f636f72653a3a483235360001000099100c3470616c6c65745f726576697665287072696d69746976657338436f6e7472616374526573756c74080452019d101c42616c616e63650118001001306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369748d10015c53746f726167654465706f7369743c42616c616e63653e000118726573756c74a1100160526573756c743c522c2044697370617463684572726f723e00009d100c3470616c6c65745f726576697665287072696d69746976657358496e7374616e746961746552657475726e56616c75650000080118726573756c748510013c4578656352657475726e56616c75650001106164647279070110483136300000a1100418526573756c74080454019d10044501680108084f6b04009d10000000000c4572720400680000010000a510143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e4847656e657269635472616e73616374696f6e00003c012c6163636573735f6c697374a91001484f7074696f6e3c4163636573734c6973743e000154626c6f625f76657273696f6e65645f686173686573150501245665633c483235363e000114626c6f6273b51001285665633c42797465733e000120636861696e5f6964bd1001304f7074696f6e3c553235363e00011066726f6dc110013c4f7074696f6e3c416464726573733e00010c676173bd1001304f7074696f6e3c553235363e0001246761735f7072696365bd1001304f7074696f6e3c553235363e000114696e707574c510012c496e7075744f72446174610001506d61785f6665655f7065725f626c6f625f676173bd1001304f7074696f6e3c553235363e00013c6d61785f6665655f7065725f676173bd1001304f7074696f6e3c553235363e0001606d61785f7072696f726974795f6665655f7065725f676173bd1001304f7074696f6e3c553235363e0001146e6f6e6365bd1001304f7074696f6e3c553235363e000108746fc110013c4f7074696f6e3c416464726573733e000118722374797065cd1001304f7074696f6e3c427974653e00011476616c7565bd1001304f7074696f6e3c553235363e0000a91004184f7074696f6e04045401ad100108104e6f6e6500000010536f6d650400ad100000010000ad10000002b11000b110143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e3c4163636573734c697374456e747279000008011c616464726573737907011c4164647265737300013073746f726167655f6b657973150501245665633c483235363e0000b510000002b91000b910143470616c6c65745f7265766976650c65766d0c61706910627974651442797465730000040038011c5665633c75383e0000bd1004184f7074696f6e0404540179100108104e6f6e6500000010536f6d65040079100000010000c11004184f7074696f6e0404540179070108104e6f6e6500000010536f6d65040079070000010000c510143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e2c496e7075744f72446174610000080114696e707574c91001344f7074696f6e3c42797465733e00011064617461c91001344f7074696f6e3c42797465733e0000c91004184f7074696f6e04045401b9100108104e6f6e6500000010536f6d650400b9100000010000cd1004184f7074696f6e04045401d1100108104e6f6e6500000010536f6d650400d1100000010000d110143470616c6c65745f7265766976650c65766d0c617069106279746510427974650000040008010875380000d5100418526573756c7408045401d910044501dd100108084f6b0400d910000000000c4572720400dd100000010000d9100c3470616c6c65745f726576697665287072696d6974697665733c4574685472616e73616374496e666f041c42616c616e63650118001001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f73697418011c42616c616e636500011c6574685f67617379100110553235360001106461746138011c5665633c75383e0000dd100c3470616c6c65745f726576697665287072696d697469766573404574685472616e736163744572726f720001081044617461040038011c5665633c75383e0000001c4d6573736167650400a9080118537472696e6700010000e1100418526573756c7408045401e510044501680108084f6b0400e510000000000c4572720400680000010000e5100c3470616c6c65745f726576697665287072696d69746976657354436f646555706c6f616452657475726e56616c7565041c42616c616e6365011800080124636f64655f6861736834013473705f636f72653a3a4832353600011c6465706f73697418011c42616c616e63650000e9100418526573756c7408045401dd06044501ed100108084f6b0400dd06000000000c4572720400ed100000010000ed100c3470616c6c65745f726576697665287072696d6974697665734c436f6e74726163744163636573734572726f720001082c446f65736e744578697374000000444b65794465636f64696e674661696c656400010000f110143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f747970657328547261636572547970650001042843616c6c5472616365720400f51001604f7074696f6e3c43616c6c547261636572436f6e6669673e00000000f51004184f7074696f6e04045401f9100108104e6f6e6500000010536f6d650400f9100000010000f910143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065734043616c6c547261636572436f6e6669670000080124776974685f6c6f6773200110626f6f6c0001346f6e6c795f746f705f63616c6c200110626f6f6c0000fd10000002011100011100000408100511000511143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065731454726163650001041043616c6c04000911012443616c6c5472616365000000000911143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065732443616c6c5472616365040c4761730179100030011066726f6d790701104831363000010c6761737910010c4761730001206761735f757365647910010c476173000108746f7907011048313630000114696e707574b910011442797465730001186f7574707574b910011442797465730001146572726f720d1101384f7074696f6e3c537472696e673e0001347265766572745f726561736f6e0d1101384f7074696f6e3c537472696e673e00011463616c6c731111014c5665633c43616c6c54726163653c4761733e3e0001106c6f6773151101305665633c43616c6c4c6f673e00011476616c7565bd1001304f7074696f6e3c553235363e00012463616c6c5f747970651d11012043616c6c5479706500000d1104184f7074696f6e04045401a9080108104e6f6e6500000010536f6d650400a9080000010000111100000209110015110000021911001911143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065731c43616c6c4c6f67000010011c616464726573737907011048313630000118746f70696373150501245665633c483235363e00011064617461b91001144279746573000120706f736974696f6e10010c75333200001d11143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065732043616c6c5479706500010c1043616c6c0000002853746174696343616c6c0001003044656c656761746543616c6c00020000211104184f7074696f6e0404540105110108104e6f6e6500000010536f6d6504000511000001000025110418526573756c74080454010511044501dd100108084f6b04000511000000000c4572720400dd10000001000029110c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065734c52756e74696d654469737061746368496e666f081c42616c616e63650118185765696768740128000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c61737300012c7061727469616c5f66656518011c42616c616e636500002d110c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065732846656544657461696c73041c42616c616e6365011800080134696e636c7573696f6e5f666565311101744f7074696f6e3c496e636c7573696f6e4665653c42616c616e63653e3e00010c74697018011c42616c616e63650000311104184f7074696f6e0404540135110108104e6f6e6500000010536f6d6504003511000001000035110c6870616c6c65745f7472616e73616374696f6e5f7061796d656e7414747970657330496e636c7573696f6e466565041c42616c616e63650118000c0120626173655f66656518011c42616c616e636500011c6c656e5f66656518011c42616c616e636500014c61646a75737465645f7765696768745f66656518011c42616c616e63650000391104184f7074696f6e040454013d110108104e6f6e6500000010536f6d6504003d1100000100003d1100000408181800411104184f7074696f6e0404540145110108104e6f6e6500000010536f6d650400451100000100004511084873705f636f6e73656e7375735f62656566793056616c696461746f72536574042c417574686f72697479496401cd030008012876616c696461746f7273d10c01405665633c417574686f7269747949643e000108696430013856616c696461746f72536574496400004911084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201650208496401cd0334416e63657374727950726f6f66012110000c0110766f7465450501b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6621100134416e63657374727950726f6f660001186865616465726502011848656164657200004d110418526573756c74080454013404450151110108084f6b040034000000000c4572720400511100000100005111084473705f6d6d725f7072696d697469766573144572726f7200012840496e76616c69644e756d657269634f7000000010507573680001001c476574526f6f7400020018436f6d6d69740003003447656e657261746550726f6f6600040018566572696679000500304c6561664e6f74466f756e640006004450616c6c65744e6f74496e636c7564656400070040496e76616c69644c656166496e64657800080054496e76616c6964426573744b6e6f776e426c6f636b0009000055110418526573756c74080454013004450151110108084f6b040030000000000c45727204005111000001000059110418526573756c74080454015d1104450151110108084f6b04005d11000000000c4572720400511100000100005d1100000408611169110061110000026511006511084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00006911084473705f6d6d725f7072696d697469766573244c65616650726f6f660410486173680134000c01306c6561665f696e6469636573c50d01385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73150501245665633c486173683e00006d110418526573756c74080454018804450151110108084f6b040088000000000c45727204005111000001000071110c2473705f6d69786e65741474797065733453657373696f6e537461747573000008013463757272656e745f696e64657810013053657373696f6e496e64657800011470686173657511013053657373696f6e5068617365000075110c2473705f6d69786e65741474797065733053657373696f6e506861736500011038436f766572546f43757272656e74000000445265717565737473546f43757272656e740001002c436f766572546f5072657600020048446973636f6e6e65637446726f6d507265760003000079110418526573756c74080454017d1104450185110108084f6b04007d11000000000c4572720400851100000100007d1100000281110081110c2473705f6d69786e65741474797065731c4d69786e6f646500000c01246b785f7075626c69630401204b785075626c696300011c706565725f696404011850656572496400014865787465726e616c5f6164647265737365733d0201305665633c5665633c75383e3e000085110c2473705f6d69786e65741474797065732c4d69786e6f64657345727200010464496e73756666696369656e74526567697374726174696f6e7308010c6e756d10010c75333200010c6d696e10010c75333200000000891104184f7074696f6e040454018d110108104e6f6e6500000010536f6d6504008d1100000100008d1100000291110091110000040838490a0095110418526573756c740804540188044501a9080108084f6b040088000000000c4572720400a90800000100009911000002a908009d11084c6b69746368656e73696e6b5f72756e74696d653052756e74696d654572726f7200010d011853797374656d0400d90801706672616d655f73797374656d3a3a4572726f723c52756e74696d653e0000001c5574696c6974790400dd08017870616c6c65745f7574696c6974793a3a4572726f723c52756e74696d653e000100104261626504001d09016c70616c6c65745f626162653a3a4572726f723c52756e74696d653e0002001c496e646963657304002509017870616c6c65745f696e64696365733a3a4572726f723c52756e74696d653e0005002042616c616e6365730400a509017c70616c6c65745f62616c616e6365733a3a4572726f723c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c746950686173650400d50901d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4572726f723c52756e74696d653e000a001c5374616b696e6704002d0a017870616c6c65745f7374616b696e673a3a4572726f723c52756e74696d653e000b001c53657373696f6e04004d0a017870616c6c65745f73657373696f6e3a3a4572726f723c52756e74696d653e000c002444656d6f63726163790400910a018070616c6c65745f64656d6f63726163793a3a4572726f723c52756e74696d653e000d001c436f756e63696c0400a50a01fc70616c6c65745f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400ad0a01fc70616c6c65745f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024456c656374696f6e730400bd0a01a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4572726f723c52756e74696d653e0010004c546563686e6963616c4d656d626572736869700400c50a01fc70616c6c65745f6d656d626572736869703a3a4572726f723c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e0011001c4772616e6470610400d50a017870616c6c65745f6772616e6470613a3a4572726f723c52756e74696d653e0012002054726561737572790400ed0a017c70616c6c65745f74726561737572793a3a4572726f723c52756e74696d653e001300244173736574526174650400f10a018470616c6c65745f61737365745f726174653a3a4572726f723c52756e74696d653e00140024436f6e7472616374730400450b018070616c6c65745f636f6e7472616374733a3a4572726f723c52756e74696d653e001500105375646f0400490b016c70616c6c65745f7375646f3a3a4572726f723c52756e74696d653e00160020496d4f6e6c696e650400550b018070616c6c65745f696d5f6f6e6c696e653a3a4572726f723c52756e74696d653e001700204964656e746974790400ad0b017c70616c6c65745f6964656e746974793a3a4572726f723c52756e74696d653e001c001c536f63696574790400f90b017870616c6c65745f736f63696574793a3a4572726f723c52756e74696d653e001d00205265636f766572790400090c017c70616c6c65745f7265636f766572793a3a4572726f723c52756e74696d653e001e001c56657374696e670400190c017870616c6c65745f76657374696e673a3a4572726f723c52756e74696d653e001f00245363686564756c65720400310c018070616c6c65745f7363686564756c65723a3a4572726f723c52756e74696d653e0020001c476c7574746f6e0400350c017870616c6c65745f676c7574746f6e3a3a4572726f723c52756e74696d653e00210020507265696d6167650400550c017c70616c6c65745f707265696d6167653a3a4572726f723c52756e74696d653e0022001450726f78790400790c017070616c6c65745f70726f78793a3a4572726f723c52756e74696d653e002300204d756c74697369670400850c017c70616c6c65745f6d756c74697369673a3a4572726f723c52756e74696d653e00240020426f756e746965730400950c017c70616c6c65745f626f756e746965733a3a4572726f723c52756e74696d653e002500105469707304009d0c016c70616c6c65745f746970733a3a4572726f723c52756e74696d653e002600184173736574730400c50c01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e00270028506f6f6c4173736574730400c90c01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e0028001442656566790400d50c017070616c6c65745f62656566793a3a4572726f723c52756e74696d653e0029001c4c6f74746572790400ed0c017870616c6c65745f6c6f74746572793a3a4572726f723c52756e74696d653e002c000c4e697304000d0d016870616c6c65745f6e69733a3a4572726f723c52756e74696d653e002d001c556e69717565730400310d017870616c6c65745f756e69717565733a3a4572726f723c52756e74696d653e002e00104e6674730400850d016c70616c6c65745f6e6674733a3a4572726f723c52756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e04008d0d01b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4572726f723c52756e74696d653e0030001853616c61727904009d0d017470616c6c65745f73616c6172793a3a4572726f723c52756e74696d653e00310038436f726546656c6c6f77736869700400a90d019870616c6c65745f636f72655f66656c6c6f77736869703a3a4572726f723c52756e74696d653e003200485472616e73616374696f6e53746f726167650400b90d01a870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a4572726f723c52756e74696d653e00330024566f7465724c6973740400c90d01f470616c6c65745f626167735f6c6973743a3a4572726f723c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e003400485374617465547269654d6967726174696f6e04001d0201ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4572726f723c52756e74696d653e003500344368696c64426f756e746965730400d90d019470616c6c65745f6368696c645f626f756e746965733a3a4572726f723c52756e74696d653e003600245265666572656e646104000d0e018070616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d653e0037001852656d61726b0400110e017470616c6c65745f72656d61726b3a3a4572726f723c52756e74696d653e00380040436f6e76696374696f6e566f74696e670400450e01a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4572726f723c52756e74696d653e003a002457686974656c6973740400490e018070616c6c65745f77686974656c6973743a3a4572726f723c52756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400510e01fc70616c6c65745f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020416c6c69616e636504006d0e017c70616c6c65745f616c6c69616e63653a3a4572726f723c52756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400a90e019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4572726f723c52756e74696d653e003e002c52616e6b6564506f6c6c730400bd0e01f470616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e003f004052616e6b6564436f6c6c6563746976650400d10e01a070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4572726f723c52756e74696d653e0040003c4173736574436f6e76657273696f6e0400d90e019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4572726f723c52756e74696d653e0041002c46617374556e7374616b650400e90e018c70616c6c65745f666173745f756e7374616b653a3a4572726f723c52756e74696d653e004200304d65737361676551756575650400010f019070616c6c65745f6d6573736167655f71756575653a3a4572726f723c52756e74696d653e0043001c547850617573650400050f017c70616c6c65745f74785f70617573653a3a4572726f723c52756e74696d653e00450020536166654d6f64650400090f018070616c6c65745f736166655f6d6f64653a3a4572726f723c52756e74696d653e004600504d756c7469426c6f636b4d6967726174696f6e7304000d0f018470616c6c65745f6d6967726174696f6e733a3a4572726f723c52756e74696d653e0048001842726f6b657204005d0f017470616c6c65745f62726f6b65723a3a4572726f723c52756e74696d653e004900305461736b734578616d706c650400610f019070616c6c65745f6578616d706c655f7461736b733a3a4572726f723c52756e74696d653e004a00604173736574436f6e76657273696f6e4d6967726174696f6e0400650f01ac70616c6c65745f61737365745f636f6e76657273696f6e5f6f70733a3a4572726f723c52756e74696d653e004f001852657669766504007d0f017470616c6c65745f7265766976653a3a4572726f723c52756e74696d653e0050004044656c6567617465645374616b696e670400890f01a070616c6c65745f64656c6567617465645f7374616b696e673a3a4572726f723c52756e74696d653e0052003041737365745265776172647304009d0f019070616c6c65745f61737365745f726577617264733a3a4572726f723c52756e74696d653e00530034417373657473467265657a65720400a10f011d0170616c6c65745f6173736574735f667265657a65723a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574735f667265657a65723a3a496e7374616e6365313e005400184d65746154780400a50f017870616c6c65745f6d6574615f74783a3a4572726f723c52756e74696d653e0059000055011853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f7069637301010402349d080400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000a10804000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500009908040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000ad08040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01310201581830426c6f636b57656967687473b108f901c2a0e766000b00204aa9d10113ffffffffffffffff2261c91900010bb86f97a72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100002261c91900010bb8f7e911a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000402261c9190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468bd083000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874c5084040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ec9087905106e6f6465387375627374726174652d6e6f64650a0000000c0100000000000068df6acb689907609b0500000037e397fc7c91f5e402000000ccd9de6396c899ca0100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000be9fb0c91a8046cf01000000f78b278be53f454c02000000ed99c5acb25eedf50300000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f010000008453b50b222939770100000068b66ba122c93fa7020000008c403e5c4a9fd4420100000037c8bb1350a9a2a8040000008a8047a53a8277ec01000000f3ff14d5ab52705903000000899a250cbe84f2500100000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000006fd7c327202e4a8d01000000ab3c0572291feb8b0100000065f855d6e093c2f101000000fbc577b9d747efd60100000002000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669788901082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01d90800001c5574696c697479000141020180044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01dd0801001042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100e1080400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100710220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100710220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000790204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100e10804000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510ed0804000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000f50804000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100710104001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401006d01200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e66696700000d0904000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e66696700000d090400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100110904002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e015d0200103445706f63684475726174696f6e3020c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d653020b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010640000000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310104000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e011d0902002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0185020004344d696e696d756d506572696f643020dc05000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e00030028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e0000000004001c496e6469636573011c496e646963657304204163636f756e7473000104021021090400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e018902018c041c4465706f736974184000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01250905002042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402002909040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200390904000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c6473010104020045090400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402008d090400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e019502019010484578697374656e7469616c4465706f736974184000407a10f35a0000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100200000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a5090600485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100210140000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100a90904000000019804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e000700604173736574436f6e76657273696f6e54785061796d656e740000019c0000090068456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e7450686173650100b40400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000ad0904000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e20536e617073686f740000b5090400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e40536e617073686f744d65746164617461000075030400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100c5090400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510d10904001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000b00400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e01a10201a438544265747465725369676e65645468726573686f6c64c41000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f726974793020feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e7310100a0000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687428400b8887dd8d2e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100300000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e656452657761726442617365184000407a10f35a00000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f7369744279746518400010a5d4e8000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e284d617857696e6e6572731010e803000010350120546865206d6178696d756d206e756d626572206f662077696e6e65727320746861742063616e20626520656c656374656420627920746869732060456c656374696f6e50726f7669646572604020696d706c656d656e746174696f6e2e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687428400b8887dd8d2e011366666666666666a600544d696e65724d6178566f746573506572566f746572101010000000003c4d696e65724d617857696e6e6572731010e80300000001d5090a001c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100590104000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100c410000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c65646765720001040200d9090400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e1450617965650001040500c004000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500cc0800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500e10904004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b657273000104050088040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e244163746976654572610000e509040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b6572730101080505ed09f1090c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f766572766965770001080505ed09fd09040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c69707065640101080505ed09f1090c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c050505010a050a040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d6564526577617264730101080505ed09c101040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f7250726566730101080505ed09cc0800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510090a14000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100d404000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000910304000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e0100c410000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c61736865730101040510190a040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e6465644572617301009d0804001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e4572610001080505ed09210a040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505ed0918040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e730001040500250a0400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c61736801010405150a290a800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e384368696c6c5468726573686f6c640000910304000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01890301bc1830486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e1010a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e1010a8000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000100002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e012d0a0b001c53657373696f6e011c53657373696f6e1c2856616c696461746f7273010059010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100310a0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100390a0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b6579730001040500c1030400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405450a00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01bd0301d800014d0a0c002444656d6f6372616379012444656d6f6372616379303c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f70730100510a040004050120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c2e244465706f7369744f6600010405105d0a04000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e3c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e405265666572656e64756d496e666f4f660001040510650a04000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e20566f74696e674f660101040500710ad8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e544c6173745461626c656457617345787465726e616c0100200400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c0000890a040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c69737400010406348d0a04000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101040634200400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e284d657461646174614f6600010402ec34040018ec2047656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720616e792070726f706f73616c206f72207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01d50301dc303c456e6163746d656e74506572696f641010002f0d0014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f641010004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f641010004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e44566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e384d696e696d756d4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e38496e7374616e74416c6c6f7765642004010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e5446617374547261636b566f74696e67506572696f6410108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e34436f6f6c6f6666506572696f641010004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e2c4d61784465706f73697473101064000000041d0120546865206d6178696d756d206e756d626572206f66206465706f736974732061207075626c69632070726f706f73616c206d6179206861766520617420616e792074696d652e384d6178426c61636b6c697374656410106400000004d820546865206d6178696d756d206e756d626572206f66206974656d732077686963682063616e20626520626c61636b6c69737465642e01910a0d001c436f756e63696c011c436f756e63696c1c2450726f706f73616c730100950a040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406342d02040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18436f73744f660001040634990a040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e18566f74696e670001040634a10a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d62657273010059010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e01e10301f004444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01a50a0e0048546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d69747465651c2450726f706f73616c730100a90a040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406342d02040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18436f73744f6600010406344101040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e18566f74696e670001040634a10a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d62657273010059010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e01e50301f404444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01ad0a0f0024456c656374696f6e730124456c656374696f6e73141c4d656d626572730100b10a04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100b10a04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e2843616e646964617465730100fc0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e38456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e18566f74696e670101040500b90a840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e01e90301f8282050616c6c65744964750420706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b3443616e646964616379426f6e6418400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e38566f74696e67426f6e6442617365184000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e40566f74696e67426f6e64466163746f7218400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e38446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e404465736972656452756e6e65727355701010070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e305465726d4475726174696f6e1010801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e344d617843616e6469646174657310104000000018e420546865206d6178696d756d206e756d626572206f662063616e6469646174657320696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e003101205768656e2074686973206c696d69742069732072656163686564206e6f206d6f72652063616e646964617465732061726520616363657074656420696e2074686520656c656374696f6e2e244d6178566f7465727310100002000018f820546865206d6178696d756d206e756d626572206f6620766f7465727320746f20616c6c6f7720696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e00d8205768656e20746865206c696d6974206973207265616368656420746865206e657720766f74657273206172652069676e6f7265642e404d6178566f746573506572566f7465721010100000001090204d6178696d756d206e756d62657273206f6620766f7465732070657220766f7465722e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e01bd0a10004c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100c10a040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e01f1030105010001c50a11001c4772616e647061011c4772616e6470611c1453746174650100c90a04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000cd0a040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400006d010400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100d10a04000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01f5030109010c384d6178417574686f726974696573101064000000045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310104000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020c00f00000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01d50a1200205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510d90a040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c730100dd0a040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510e10a040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e3c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e012104011901182c5370656e64506572696f64101080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e09081020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964e90a2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010002f0d000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e2c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e01ed0a13002441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e617469766500010402a0210104000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e642960012504011d010001f10a140024436f6e7472616374730124436f6e7472616374731c305072697374696e65436f64650001040634f50a040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e28436f6465496e666f4f660001040634f90a040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e144e6f6e6365010030200000000000000000581d0120546869732069732061202a2a6d6f6e6f746f6e69632a2a20636f756e74657220696e6372656d656e746564206f6e20636f6e747261637420696e7374616e74696174696f6e2e0005012054686973206973207573656420696e206f7264657220746f2067656e657261746520756e6971756520747269652069647320666f7220636f6e7472616374732e2901205468652074726965206964206f662061206e657720636f6e74726163742069732063616c63756c617465642066726f6d2068617368286163636f756e745f69642c206e6f6e6365292e350120546865206e6f6e63652069732072657175697265642062656361757365206f74686572776973652074686520666f6c6c6f77696e672073657175656e636520776f756c64206c65616420746f84206120706f737369626c6520636f6c6c6973696f6e206f662073746f726167653a006820312e204372656174652061206e657720636f6e74726163742e6c20322e205465726d696e6174652074686520636f6e74726163742efc20332e20496d6d6564696174656c792072656372656174652074686520636f6e74726163742077697468207468652073616d65206163636f756e745f69642e00450120546869732069732062616420626563617573652074686520636f6e74656e7473206f6620612074726965206172652064656c65746564206c617a696c7920616e64207468657265206d6967687420626559012073746f72616765206f6620746865206f6c6420696e7374616e74696174696f6e207374696c6c20696e206974207768656e20746865206e657720636f6e747261637420697320637265617465642e20506c656173655901206e6f746520746861742077652063616e2774207265706c6163652074686520636f756e7465722062792074686520626c6f636b206e756d6265722062656361757365207468652073657175656e63652061626f766551012063616e2068617070656e20696e207468652073616d6520626c6f636b2e20576520616c736f2063616e2774206b65657020746865206163636f756e7420636f756e74657220696e206d656d6f7279206f6e6c79490120626563617573652073746f7261676520697320746865206f6e6c792077617920746f20636f6d6d756e6963617465206163726f737320646966666572656e742065787472696e7369637320696e20746865302073616d6520626c6f636b2e001c2023204e6f7465003d0120446f206e6f742075736520697420746f2064657465726d696e6520746865206e756d626572206f6620636f6e7472616374732e20497420776f6e27742062652064656372656d656e74656420696664206120636f6e74726163742069732064657374726f7965642e38436f6e7472616374496e666f4f660001040500fd0a04000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e3444656c6574696f6e51756575650001040510bd01040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e5044656c6574696f6e5175657565436f756e7465720100110b200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e4c4d6967726174696f6e496e50726f67726573730000150b04000861012041206d6967726174696f6e2063616e207370616e206163726f7373206d756c7469706c6520626c6f636b732e20546869732073746f7261676520646566696e6573206120637572736f7220746f20747261636b207468654d012070726f6772657373206f6620746865206d6967726174696f6e2c20656e61626c696e6720757320746f20726573756d652066726f6d20746865206c61737420636f6d706c6574656420706f736974696f6e2e01290401250134205363686564756c65190b9004000000100000002000000000400000000000080000002060ea000000000000eb040000046820436f7374207363686564756c6520616e64206c696d6974732e384465706f7369745065724279746518400060defb7405000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e4c44656661756c744465706f7369744c696d697418400000c0afbc4f865700000000000000000445012046616c6c6261636b2076616c756520746f206c696d6974207468652073746f72616765206465706f7369742069662069742773206e6f74206265696e6720736574206279207468652063616c6c65722e384465706f7369745065724974656d184000f0ab75a40d000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e70436f6465486173684c6f636b75704465706f73697450657263656e74c41000a3e111104501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e610120496e7374616e74696174696e67206120636f6e74726163742c206f722063616c6c696e67205b60636861696e5f657874656e73696f6e3a3a4578743a3a6c6f636b5f64656c65676174655f646570656e64656e6379605d49012070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e7420616275736520746865736520616374696f6e7320617265c42070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e284d6178436f64654c656e101000ec010014c020546865206d6178696d756d206c656e677468206f66206120636f6e747261637420636f646520696e2062797465732e005901205468652076616c75652073686f756c642062652063686f73656e206361726566756c6c792074616b696e6720696e746f20746865206163636f756e7420746865206f766572616c6c206d656d6f7279206c696d6974f020796f75722072756e74696d65206861732c2061732077656c6c20617320746865205b6d6178696d756d20616c6c6f7765642063616c6c737461636b5d012064657074685d28236173736f636961746564747970652e43616c6c537461636b292e204c6f6f6b20696e746f207468652060696e746567726974795f7465737428296020666f7220736f6d6520696e7369676874732e404d617853746f726167654b65794c656e10108000000004e020546865206d6178696d756d20616c6c6f7761626c65206c656e67746820696e20627974657320666f722073746f72616765206b6579732e5c4d61785472616e7369656e7453746f7261676553697a6510100000100008d020546865206d6178696d756d2073697a65206f6620746865207472616e7369656e742073746f7261676520696e2062797465732e3101205468697320696e636c75646573206b6579732c2076616c7565732c20616e642070726576696f757320656e7472696573207573656420666f722073746f7261676520726f6c6c6261636b2e5c4d617844656c6567617465446570656e64656e6369657310102000000008290120546865206d6178696d756d206e756d626572206f662064656c65676174655f646570656e64656e636965732074686174206120636f6e74726163742063616e206c6f636b2077697468d0205b60636861696e5f657874656e73696f6e3a3a4578743a3a6c6f636b5f64656c65676174655f646570656e64656e6379605d2e5c556e73616665556e737461626c65496e74657266616365200400241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e444d617844656275674275666665724c656e10100000200004c420546865206d6178696d756d206c656e677468206f66207468652064656275672062756666657220696e2062797465732e2c456e7669726f6e6d656e74250b00102501205479706520746861742062756e646c657320746f67657468657220616c6c207468652072756e74696d6520636f6e666967757261626c6520696e746572666163652074797065732e0035012054686973206973206e6f742061207265616c20636f6e6669672e205765206a757374206d656e74696f6e207468652074797065206865726520617320636f6e7374616e7420736f2074686174f0206974732074797065206170706561727320696e20746865206d657461646174612e204f6e6c792076616c69642076616c756520697320602829602e2841706956657273696f6e410b0804000c0901205468652076657273696f6e206f662074686520486f7374466e204150497320746861742061726520617661696c61626c6520696e207468652072756e74696d652e0068204f6e6c792076616c69642076616c756520697320602829602e01450b1500105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e0135040131010001490b160020496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e104b65797301004d0b040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e4852656365697665644865617274626561747300010805056d0120040004350120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e646578602e38417574686f726564426c6f636b730101080505ed0910100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0139040135010440556e7369676e65645072696f726974793020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e01550b170048417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100590b0400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100590b04000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000001800204f6666656e63657301204f6666656e636573081c5265706f7274730001040534610b040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505650b15050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e000145010000190028486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e730001040510690b0400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e676500006d01040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c61737429000000001a006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c01006d0b04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000001b00204964656e7469747901204964656e7469747924284964656e746974794f660001040500710b040010690120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e204669727374206974656d20697320746865e020726567697374726174696f6e2c207365636f6e6420697320746865206163636f756e742773207072696d61727920757365726e616d652e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28557365726e616d654f6600010405005101040004bc204964656e74696669657320746865207072696d61727920757365726e616d65206f6620616e206163636f756e742e1c53757065724f660001040200d9040400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e18537562734f660101040500810b44000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e28526567697374726172730100890b0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e2c417574686f726974794f6600010405990b9d0b040004f42041206d6170206f6620746865206163636f756e74732077686f2061726520617574686f72697a656420746f206772616e7420757365726e616d65732e38557365726e616d65496e666f4f66000104025101a10b04001875012052657665727365206c6f6f6b75702066726f6d2060757365726e616d656020746f2074686520604163636f756e74496460207468617420686173207265676973746572656420697420616e64207468652070726f7669646572206f666d012074686520757365726e616d652e2054686520606f776e6572602076616c75652073686f756c642062652061206b657920696e207468652060557365726e616d654f6660206d61702c20627574206974206d6179206e6f74206966f02074686520757365722068617320636c656172656420746865697220757365726e616d65206f7220697420686173206265656e2072656d6f7665642e006901204d756c7469706c6520757365726e616d6573206d6179206d617020746f207468652073616d6520604163636f756e744964602c206275742060557365726e616d654f66602077696c6c206f6e6c79206d617020746f206f6e6548207072696d61727920757365726e616d652e4050656e64696e67557365726e616d6573000104025101a90b0400186d0120557365726e616d6573207468617420616e20617574686f7269747920686173206772616e7465642c20627574207468617420746865206163636f756e7420636f6e74726f6c6c657220686173206e6f7420636f6e6669726d65647101207468617420746865792077616e742069742e2055736564207072696d6172696c7920696e2063617365732077686572652074686520604163636f756e744964602063616e6e6f742070726f766964652061207369676e61747572655d012062656361757365207468657920617265206120707572652070726f78792c206d756c74697369672c206574632e20496e206f7264657220746f20636f6e6669726d2069742c20746865792073686f756c642063616c6cb0205b6163636570745f757365726e616d655d286043616c6c3a3a6163636570745f757365726e616d6560292e001d01204669727374207475706c65206974656d20697320746865206163636f756e7420616e64207365636f6e642069732074686520616363657074616e636520646561646c696e652e48556e62696e64696e67557365726e616d6573000104025101100400105d0120557365726e616d657320666f722077686963682074686520617574686f726974792074686174206772616e746564207468656d206861732073746172746564207468652072656d6f76616c2070726f63657373206279710120756e62696e64696e67207468656d2e204561636820756e62696e64696e6720757365726e616d65206d61707320746f2069747320677261636520706572696f64206578706972792c20776869636820697320746865206669727374dc20626c6f636b20696e2077686963682074686520757365726e616d6520636f756c642062652064656c65746564207468726f7567682061c4205b72656d6f76655f757365726e616d655d286043616c6c3a3a72656d6f76655f757365726e616d6560292063616c6c2e014504014d01283042617369634465706f73697418400050702f696a0000000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e2c427974654465706f73697418400060defb740500000000000000000000041d012054686520616d6f756e742068656c64206f6e206465706f7369742070657220656e636f646564206279746520666f7220612072656769737465726564206964656e746974792e3c557365726e616d654465706f73697418400000cc7b9fae000000000000000000000855012054686520616d6f756e742068656c64206f6e206465706f73697420706572207265676973746572656420757365726e616d652e20546869732076616c75652073686f756c64206368616e6765206f6e6c7920696ef42072756e74696d6520757067726164657320776974682070726f706572206d6967726174696f6e206f66206578697374696e67206465706f736974732e445375624163636f756e744465706f73697418400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e344d617852656769737472617273101014000000084d01204d6178696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e6450656e64696e67557365726e616d6545787069726174696f6e10108013030004150120546865206e756d626572206f6620626c6f636b732077697468696e207768696368206120757365726e616d65206772616e74206d7573742062652061636365707465642e4c557365726e616d654772616365506572696f641010002f0d0008590120546865206e756d626572206f6620626c6f636b732074686174206d757374207061737320746f20656e61626c6520746865207065726d616e656e742064656c6574696f6e206f66206120757365726e616d652062796820697473207265737065637469766520617574686f726974792e3c4d61785375666669784c656e677468101007000000048020546865206d6178696d756d206c656e677468206f662061207375666669782e444d6178557365726e616d654c656e67746810102000000004610120546865206d6178696d756d206c656e677468206f66206120757365726e616d652c20696e636c7564696e67206974732073756666697820616e6420616e792073797374656d2d61646465642064656c696d69746572732e01ad0b1c001c536f6369657479011c536f63696574795028506172616d657465727300005d01040004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e0c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1c466f756e6465720000000400044820546865206669727374206d656d6265722e1048656164000000040004410120546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f7665642072616e6b2030206d656d6265727320696e2074686520736f63696574792e1452756c6573000034040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e1c4d656d626572730001040500b10b0400042101205468652063757272656e74206d656d6265727320616e642074686569722072616e6b2e20446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e1c5061796f7574730101040500bd0b44000000000000000000000000000000000004dc20496e666f726d6174696f6e20726567617264696e672072616e6b2d30207061796f7574732c207061737420616e64206675747572652e2c4d656d626572436f756e74010010100000000004490120546865206e756d626572206f66206974656d7320696e20604d656d62657273602063757272656e746c792e2028446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e29344d656d6265724279496e6465780001040510000400085d01205468652063757272656e74206974656d7320696e20604d656d6265727360206b6579656420627920746865697220756e6971756520696e6465782e204b657973206172652064656e73656c7920706f70756c61746564cc2060302e2e4d656d626572436f756e74602028646f6573206e6f7420696e636c75646520604d656d626572436f756e7460292e4053757370656e6465644d656d626572730001040500b10b04000401012054686520736574206f662073757370656e646564206d656d626572732c2077697468207468656972206f6c64206d656d62657273686970207265636f72642e28526f756e64436f756e74010010100000000004a020546865206e756d626572206f6620726f756e64732077686963682068617665207061737365642e10426964730100cd0b040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e2843616e646964617465730001040200dd0b0400001c536b657074696300000004000454205468652063757272656e7420736b65707469632e14566f7465730001080505e50be90b040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e3c566f7465436c656172437572736f720001040500ed0b040004f420436c6561722d637572736f7220666f7220566f74652c206d61702066726f6d2043616e646964617465202d3e20284d617962652920437572736f722e204e657874486561640000f10b04000c75012041742074686520656e64206f662074686520636c61696d20706572696f642c207468697320636f6e7461696e7320746865206d6f737420726563656e746c7920617070726f766564206d656d626572732028616c6f6e67207769746865012074686569722062696420616e6420726f756e64204944292077686f2069732066726f6d20746865206d6f737420726563656e7420726f756e64207769746820746865206c6f77657374206269642e20546865792077696c6c5c206265636f6d6520746865206e6577206048656164602e4c4368616c6c656e6765526f756e64436f756e74010010100000000004590120546865206e756d626572206f66206368616c6c656e676520726f756e64732074686572652068617665206265656e2e205573656420746f206964656e74696679207374616c6520446566656e646572566f7465732e24446566656e64696e670000f50b04000459012054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642c20616c6f6e67207769746820612072756e6e696e672074616c6c79206f6620766f7465732e34446566656e646572566f7465730001080505ed09e90b040004c820566f74657320666f722074686520646566656e6465722c206b65796564206279206368616c6c656e676520726f756e642e01ed04015501242050616c6c65744964e90a2070792f736f63696504682054686520736f6369657469657327732070616c6c6574206964304772616365537472696b657310100a00000004090120546865206d6178696d756d206e756d626572206f6620737472696b6573206265666f72652061206d656d62657220676574732066756e647320736c61736865642e2c506572696f645370656e6418400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e30566f74696e67506572696f64101000770100083d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732073686f756c6420626520766f746564206f6e2e20546f67657468657220776974684d012060436c61696d506572696f64602c20746869732073756d7320746f20746865206e756d626572206f6620626c6f636b73206265747765656e2063616e64696461746520696e74616b6520706572696f64732e2c436c61696d506572696f64101000770100084d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732063616e20636c61696d207468656972206d656d6265727368697020616e642062652074686530206e616d656420686561642e3c4d61784c6f636b4475726174696f6e1010009cda0104a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e3c4368616c6c656e6765506572696f6410108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e284d61785061796f75747310100a000000040d0120546865206d6178696d756d206e756d626572206f66207061796f7574732061206d656d626572206d617920686176652077616974696e6720756e636c61696d65642e1c4d61784269647310100a000000049020546865206d6178696d756d206e756d626572206f662062696473206174206f6e63652e01f90b1d00205265636f7665727901205265636f766572790c2c5265636f76657261626c650001040500fd0b04000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f7665726965730001080505e50b050c0400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e01f1040161011044436f6e6669674465706f73697442617365184000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f72184000203d88792d00000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e3c5265636f766572794465706f736974184000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e01090c1e001c56657374696e67011c56657374696e67081c56657374696e6700010402000d0c040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100150c04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01f50401650108444d696e5665737465645472616e7366657218400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001190c1f00245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e184167656e646101010405101d0c0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c52657472696573000104026d012d0c040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b757000010405046d01040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01fd0401690108344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01310c20001c476c7574746f6e011c476c7574746f6e141c436f6d7075746501007901200000000000000000102101205468652070726f706f7274696f6e206f66207468652072656d61696e696e6720607265665f74696d656020746f20636f6e73756d6520647572696e6720606f6e5f69646c65602e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e1c53746f7261676501007901200000000000000000102901205468652070726f706f7274696f6e206f66207468652072656d61696e696e67206070726f6f665f73697a656020746f20636f6e73756d6520647572696e6720606f6e5f69646c65602e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e184c656e6774680100790120000000000000000010fc205468652070726f706f7274696f6e206f66207468652060626c6f636b206c656e6774686020746f20636f6e73756d65206f6e206561636820626c6f636b2e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e2454726173684461746100010405100d05040020a42053746f72616765206d6170207573656420666f722077617374696e672070726f6f662073697a652e00690120497420636f6e7461696e73206e6f206d65616e696e6766756c2064617461202d2068656e636520746865206e616d6520225472617368222e20546865206d6178696d616c206e756d626572206f6620656e747269657320697375012073657420746f2036356b2c207768696368206973206a7573742062656c6f7720746865206e657874206a756d702061742031365e342e205468697320697320696d706f7274616e7420746f20726564756365207468652070726f6f6669012073697a652062656e63686d61726b696e67206f766572657374696d6174652e2054686520617373756d7074696f6e2068657265206973207468617420776520776f6e27742068617665206d6f7265207468616e2036356b202a710120314b6942203d2036354d6942206f662070726f6f662073697a652077617374696e6720696e2070726163746963652e20486f77657665722c2074686973206c696d6974206973206e6f7420656e666f726365642c20736f2074686569012070616c6c657420776f756c6420616c736f20776f726b206f7574206f662074686520626f782077697468206d6f726520656e74726965732c20627574206974732062656e63686d61726b65642070726f6f6620776569676874bc20776f756c6420706f737369626c7920626520756e646572657374696d6174656420696e207468617420636173652e38547261736844617461436f756e74010010100000000004b8205468652063757272656e74206e756d626572206f6620656e747269657320696e2060547261736844617461602e0105050175010001350c210020507265696d6167650120507265696d6167650c24537461747573466f720001040634390c0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f720001040634410c0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f7200010406690b510c040000011105017d010001550c22001450726f7879011450726f7879081c50726f786965730101040500590c4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500690c44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e011905018101184050726f78794465706f73697442617365184000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f73697442617365184000f09e544c390000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01790c2300204d756c746973696701204d756c746973696704244d756c74697369677300010805027d0c810c040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0121050191010c2c4465706f73697442617365184000f01c0adbed0100000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01850c240020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510890c0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510910c0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c730100dd0a040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e0129050199012444426f756e74794465706f73697442617365184000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6410100027060018f4205468652074696d65206c696d697420666f7220612063757261746f7220746f20616374206265666f7265206120626f756e747920657870697265732e0055012054686520706572696f64207468617420737461727473207768656e20612063757261746f7220697320617070726f7665642c20647572696e672077686963682074686579206d7573742065786563757465206f725501207570646174652074686520626f756e7479207669612060657874656e645f626f756e74795f657870697279602e204966206d69737365642c2074686520626f756e747920657870697265732c20616e642074686555012063757261746f72206d617920626520736c61736865642e2049662060426c6f636b4e756d626572466f723a3a4d4158602c20626f756e7469657320737461792061637469766520696e646566696e6974656c792cb82072656d6f76696e6720746865206e65656420666f722060657874656e645f626f756e74795f657870697279602e6043757261746f724465706f7369744d756c7469706c69657209081020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d6178a90344010000c16ff28623000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696ea903440100407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d184000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501950c250010546970730110546970730810546970730001040534990c04000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e1c526561736f6e7300010406343804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e012d05019d01184c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756548446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e30546970436f756e74646f776e1010807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e3454697046696e6465727346656591030414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e505469705265706f72744465706f73697442617365184000407a10f35a0000000000000000000004f820546865206e6f6e2d7a65726f20616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e304d6178546970416d6f756e7418400000c52ebca2b1000000000000000000049420546865206d6178696d756d20616d6f756e7420666f7220612073696e676c65207469702e019d0c2600184173736574730118417373657473141441737365740001040210a10c040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202ed09a90c040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202b50cb90c04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210bd0c5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e01310501a1011c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01c50c270028506f6f6c4173736574730128506f6f6c417373657473141441737365740001040210a10c040004542044657461696c73206f6620616e2061737365742e1c4163636f756e740001080202ed09a90c040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e24417070726f76616c7300010c020202b50cb90c04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e204d657461646174610101040210bd0c5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e2c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e01350501a5011c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e3041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e4c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e4c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e3c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e01c90c280014426565667901144265656679142c417574686f7269746965730100cd0c04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100cd0c040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b0100c804000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e013905000c384d6178417574686f72697469657310106400000004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020c00f00000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01d50c29000c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000002a001c4d6d724c656166011c4d6d724c65616608404265656679417574686f7269746965730100d90cb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f7269746965730100d90cb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e000000002b001c4c6f7474657279011c4c6f747465727918304c6f7474657279496e6465780100101000000000001c4c6f74746572790000dd0c040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e305061727469636970616e74730101040500e10c1400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b6574732050757263686173656429305469636b657473436f756e740100101000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e1c5469636b657473000104051000040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e2c43616c6c496e64696365730100e50c0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e016d0501a9010c2050616c6c65744964e90a2070792f6c6f74746f046020546865204c6f747465727927732070616c6c6574206964204d617843616c6c7310100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e444d617847656e657261746552616e646f6d10100a0000000c4901204e756d626572206f662074696d652077652073686f756c642074727920746f2067656e657261746520612072616e646f6d206e756d626572207468617420686173206e6f206d6f64756c6f20626961732e5d0120546865206c61726765722074686973206e756d6265722c20746865206d6f726520706f74656e7469616c20636f6d7075746174696f6e206973207573656420666f72207069636b696e67207468652077696e6e65722c01012062757420616c736f20746865206d6f7265206c696b656c792074686174207468652063686f73656e2077696e6e657220697320646f6e6520666169726c792e01ed0c2c000c4e6973010c4e6973102c5175657565546f74616c730100f10cc95db1040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e185175657565730101040210f50c040004e02054686520717565756573206f6620626964732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e1c53756d6d6172790100010da00000000000000000000000000000000000000000000000000000000000000000000000000000000004b02053756d6d61727920696e666f726d6174696f6e206f766572207468652067656e6572616c2073746174652e2052656365697074730001040210050d0400044101205468652063757272656e746c79206f75747374616e64696e672072656365697074732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e01710501b101282050616c6c65744964e90a2070792f6e697320200419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e285175657565436f756e7410102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e2c4d617851756575654c656e1010e80300000cf0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e0068204d757374206265206c6172676572207468616e207a65726f2e304669666f51756575654c656e1010f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e2842617365506572696f641010002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e184d696e42696418400000c16ff2862300000000000000000018210120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d617920626520706c6163656420696e2061206269642e204e6f746520746861742074686973610120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d617920626520726570726573656e74656420696e206120726563656970742073696e63652062696473206d61796c2062652073706c6974207570206279207468652073797374656d2e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e284d696e52656365697074b501200000c16ff286230008550120546865206d696e696d756d20616d6f756e74206f662066756e6473207768696368206d617920696e74656e74696f6e616c6c79206265206c6566742072656d61696e696e6720756e64657220612073696e676c652420726563656970742e30496e74616b65506572696f6410100a000000105d0120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f2064657175657565206269647320616e64206372656174652072656365697074732e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e3c4d6178496e74616b65576569676874283c0700d0ed902e1399999999999999190c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e20636f6e736f6c69646174656420696e746f20726563656970747320696e20612073696e676c6520696e74616b652e20415d01206c61726765722076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c6420746865726520626520613820676c7574206f6620626964732e30546861775468726f74746c65090d300000d9e9ac2d78030500000004490120546865206d6178696d756d2070726f706f7274696f6e207768696368206d61792062652074686177656420616e642074686520706572696f64206f7665722077686963682069742069732072657365742e010d0d2d001c556e6971756573011c556e69717565732814436c6173730001040210110d040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202150d88040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e30436c6173734163636f756e740001080202150a8804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e14417373657400010802026d01190d040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e3c436c6173734d657461646174614f6600010402101d0d04000468204d65746164617461206f66206120636f6c6c656374696f6e2e48496e7374616e63654d657461646174614f6600010802026d01210d04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500010c020202250d290d040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802026d012d0d04000470205072696365206f6620616e20617373657420696e7374616e63652e4c436f6c6c656374696f6e4d6178537570706c79000104021010040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e01790501b9012044436f6c6c656374696f6e4465706f73697418400000c16ff286230000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000407a10f35a0000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518400080c6a47e8d03000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410108000000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410104000000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e01310d2e00104e66747301104e6674733c28436f6c6c656374696f6e0001040210350d040004642044657461696c73206f66206120636f6c6c656374696f6e2e4c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e1c4163636f756e7400010c020202150d88040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e44436f6c6c656374696f6e4163636f756e740001080202150a8804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e40436f6c6c656374696f6e526f6c654f660001080202ed09390d040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e104974656d00010802026d01410d040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e50436f6c6c656374696f6e4d657461646174614f660001040210590d04000468204d65746164617461206f66206120636f6c6c656374696f6e2e384974656d4d657461646174614f6600010802026d015d0d04000454204d65746164617461206f6620616e206974656d2e2441747472696275746500011002020202650d690d040004702041747472696275746573206f66206120636f6c6c656374696f6e2e2c4974656d50726963654f6600010802026d012d0d040004502041207072696365206f6620616e206974656d2e644974656d41747472696275746573417070726f76616c734f6601010802026d01710d04000468204974656d2061747472696275746520617070726f76616c732e404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e3450656e64696e67537761704f6600010802026d01790d0400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e48436f6c6c656374696f6e436f6e6669674f66000104021089050400046020436f6e666967206f66206120636f6c6c656374696f6e2e304974656d436f6e6669674f6600010802026d01b1050400044c20436f6e666967206f6620616e206974656d2e01850501c9013844436f6c6c656374696f6e4465706f73697418400000c16ff286230000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e2c4974656d4465706f736974184000407a10f35a0000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e4c4d657461646174614465706f7369744261736518400080c6a47e8d03000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e2c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e2856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e38417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e1c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e4c4d6178446561646c696e654475726174696f6e101000349e0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e2046656174757265737d0d20000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e01850d2f00504e66744672616374696f6e616c697a6174696f6e01504e66744672616374696f6e616c697a6174696f6e04284e6674546f4173736574000104026d01890d0400041501204b6565707320747261636b206f662074686520636f72726573706f6e64696e67204e46542049442c20617373657420494420616e6420616d6f756e74206d696e7465642e01cd0501e501141c4465706f73697418400000c16ff2862300000000000000000008650120546865206465706f7369742070616964206279207468652075736572206c6f636b696e6720616e204e46542e20546865206465706f7369742069732072657475726e656420746f20746865206f726967696e616c204e4654e4206f776e6572207768656e2074686520617373657420697320756e696669656420616e6420746865204e465420697320756e6c6f636b65642e2050616c6c65744964e90a206672616374696f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e384e6577417373657453796d626f6cc10c141046524143048820546865206e65776c79206372656174656420617373657427732073796d626f6c2e304e657741737365744e616d65c10c141046726163048020546865206e65776c7920637265617465642061737365742773206e616d652e2c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e018d0d30001853616c617279011853616c61727908185374617475730000910d0400048820546865206f766572616c6c20737461747573206f66207468652073797374656d2e20436c61696d616e740001040500950d040004682054686520737461747573206f66206120636c61696d616e742e01d10501e9010c48526567697374726174696f6e506572696f641010c800000014510120546865206e756d626572206f6620626c6f636b732077697468696e2061206379636c65207768696368206163636f756e7473206861766520746f20726567697374657220746865697220696e74656e7420746f1c20636c61696d2e00350120546865206e756d626572206f6620626c6f636b73206265747765656e2073657175656e7469616c207061796f7574206379636c6573206973207468652073756d206f66207468697320616e644020605061796f7574506572696f64602e305061796f7574506572696f641010c800000010350120546865206e756d626572206f6620626c6f636b732077697468696e2061206379636c65207768696368206163636f756e7473206861766520746f20636c61696d20746865207061796f75742e00350120546865206e756d626572206f6620626c6f636b73206265747765656e2073657175656e7469616c207061796f7574206379636c6573206973207468652073756d206f66207468697320616e64582060526567697374726174696f6e506572696f64602e184275646765741840000064a7b3b6e00d00000000000000000c702054686520746f74616c2062756467657420706572206379636c652e0001012054686973206d6179206368616e6765206f7665722074686520636f75727365206f662061206379636c6520776974686f757420616e792070726f626c656d2e019d0d310038436f726546656c6c6f77736869700138436f726546656c6c6f77736869700c18506172616d730100f101200000000000000000048820546865206f766572616c6c20737461747573206f66207468652073797374656d2e184d656d6265720001040500a10d040004682054686520737461747573206f66206120636c61696d616e742e384d656d62657245766964656e63650001040500a50d040004310120536f6d652065766964656e636520746f6765746865722077697468207468652064657369726564206f7574636f6d6520666f72207768696368206974207761732070726573656e7465642e01d50501ed01083045766964656e636553697a6510100040000004fc20546865206d6178696d756d2073697a6520696e206279746573207375626d69747465642065766964656e636520697320616c6c6f77656420746f2062652e1c4d617852616e6b1010090000000cd420526570726573656e747320746865206869676865737420706f737369626c652072616e6b20696e20746869732070616c6c65742e00490120496e6372656173696e6720746869732076616c756520697320737570706f727465642c206275742064656372656173696e67206974206d6179206c65616420746f20612062726f6b656e2073746174652e01a90d3200485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f726167651c305472616e73616374696f6e730001040210ad0d040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e284368756e6b436f756e740101040210101000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e1c42797465466565000018040004582053746f72616765206665652070657220627974652e20456e747279466565000018040004742053746f726167652066656520706572207472616e73616374696f6e2e3453746f72616765506572696f640100101000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e44426c6f636b5472616e73616374696f6e730100ad0d0400003050726f6f66436865636b65640100200400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f01ed05010d020001b90d330024566f7465724c6973740124566f7465724c6973740c244c6973744e6f6465730001040500bd0d04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530c10d04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e01f50501110204344261675468726573686f6c6473c50d0919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e01c90d3400485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f63657373010005063800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100fd0504000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000010604000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e01f90501150204244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e011d023500344368696c64426f756e7469657301344368696c64426f756e746965731c404368696c64426f756e7479436f756e740100101000000000086d0120444550524543415445443a205265706c6163656420776974682060506172656e74546f74616c4368696c64426f756e74696573602073746f72616765206974656d206b656570696e672064656469636174656420636f756e7473550120666f72206561636820706172656e7420626f756e74792e204e756d626572206f6620746f74616c206368696c6420626f756e746965732e2057696c6c2062652072656d6f76656420696e204d617920323032352e4c506172656e744368696c64426f756e74696573010104051010100000000008cc204e756d626572206f6620616374697665206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e60506172656e74546f74616c4368696c64426f756e746965730101040510101000000000044101204e756d626572206f6620746f74616c206368696c6420626f756e746965732070657220706172656e7420626f756e74792c20696e636c7564696e6720636f6d706c6574656420626f756e746965732e344368696c64426f756e7469657300010805056d01d10d04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e644368696c64426f756e74794465736372697074696f6e73563100010805056d01910c04000c290120546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e20496e6465786564206279206028706172656e745f69642c206368696c645f696429602e006d012054686973206974656d207265706c616365732074686520604368696c64426f756e74794465736372697074696f6e73602073746f72616765206974656d2066726f6d207468652056302073746f726167652076657273696f6e2e505630546f56314368696c64426f756e747949647300010405106d010400145d0120546865206d617070696e67206f6620746865206368696c6420626f756e7479206964732066726f6d2073746f726167652076657273696f6e206056306020746f20746865206e657720605631602076657273696f6e2e006d0120546865206056306020696473206261736564206f6e20746f74616c206368696c6420626f756e747920636f756e74205b604368696c64426f756e7479436f756e74605d602e2054686520605631602076657273696f6e206964734101206261736564206f6e20746865206368696c6420626f756e747920636f756e742070657220706172656e7420626f756e7479205b60506172656e74546f74616c4368696c64426f756e74696573605d2e650120546865206974656d20696e74656e64656420736f6c656c7920666f7220636c69656e7420636f6e76656e69656e636520616e64206e6f74207573656420696e207468652070616c6c6574277320636f7265206c6f6769632e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01110601210208644d61784163746976654368696c64426f756e7479436f756e74101005000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d184000407a10f35a000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01d90d3600245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210dd0d040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104058901fd0d0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405890110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01150601250214445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73010e6d0104000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e010d0e37001852656d61726b00011d0601c1070001110e38002c526f6f7454657374696e670001210601c5070000390040436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505150e190ed800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500390e04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01250601c90708204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01450e3a002457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c00010405348804000001350601cd070001490e3b0038416c6c69616e63654d6f74696f6e0138416c6c69616e63654d6f74696f6e1c2450726f706f73616c7301004d0e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f6600010406342d02040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18436f73744f6600010406344101040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e18566f74696e670001040634a10a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d62657273010059010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e01390601e10704444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01510e3c0020416c6c69616e63650120416c6c69616e63651c1052756c65000045060400088c20546865204950465320434944206f662074686520616c6c69616e63652072756c652ed82046656c6c6f77732063616e2070726f706f73652061206e65772072756c65207769746820612073757065722d6d616a6f726974792e34416e6e6f756e63656d656e74730100550e040004b0205468652063757272656e7420495046532043494473206f6620616e7920616e6e6f756e63656d656e74732e244465706f7369744f66000104020018040004a4204d617073206d656d6265727320746f2074686569722063616e646964616379206465706f7369742e1c4d656d62657273010104055d0e610e040004a8204d617073206d656d626572207479706520746f206d656d62657273206f66206561636820747970652e3c5265746972696e674d656d626572730001040200100400086d01204120736574206f66206d656d626572732077686f20676176652061207265746972656d656e74206e6f746963652e20546865792063616e207265746972652061667465722074686520656e64206f66207265746972656d656e74a020706572696f642073746f72656420617320612066757475726520626c6f636b206e756d6265722e50556e7363727570756c6f75734163636f756e74730100610a0400086501205468652063757272656e74206c697374206f66206163636f756e7473206465656d656420756e7363727570756c6f75732e205468657365206163636f756e7473206e6f6e2067726174612063616e6e6f74207375626d69742c2063616e6469646163792e50556e7363727570756c6f757357656273697465730100650e040004c8205468652063757272656e74206c697374206f66207765627369746573206465656d656420756e7363727570756c6f75732e013d0601e50714504d6178556e7363727570756c6f75734974656d7310106400000004190120546865206d6178696d756d206e756d626572206f662074686520756e7363727570756c6f7573206974656d7320737570706f72746564206279207468652070616c6c65742e4c4d61785765627369746555726c4c656e6774681010ff000000049420546865206d6178696d756d206c656e677468206f66206120776562736974652055524c2e2c416c6c794465706f73697418400080c6a47e8d0300000000000000000004bc20546865206465706f73697420726571756972656420666f72207375626d697474696e672063616e6469646163792e544d6178416e6e6f756e63656d656e7473436f756e74101064000000049420546865206d6178696d756d206e756d626572206f6620616e6e6f756e63656d656e74732e3c4d61784d656d62657273436f756e7410106400000004bc20546865206d6178696d756d206e756d626572206f66206d656d6265727320706572206d656d62657220726f6c652e016d0e3d003c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e0000c404000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500710e04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c7300010405107d0e040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c7300010405108d0e04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f726167650001040510910e04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d657461646174610101040510cd010400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e7301010405007d060402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e01610601e9070c2050616c6c65744964e90a2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101008000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01a90e3e002c52616e6b6564506f6c6c73012c52616e6b6564506f6c6c73143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210b10e040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104058901b90e0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405890110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01950601f10714445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73010e6d0104000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e01bd0e3f004052616e6b6564436f6c6c656374697665014052616e6b6564436f6c6c656374697665182c4d656d626572436f756e7401010405890110100000000008690120546865206e756d626572206f66206d656d6265727320696e2074686520636f6c6c6563746976652077686f2068617665206174206c65617374207468652072616e6b206163636f7264696e6720746f2074686520696e64657830206f6620746865207665632e1c4d656d626572730001040500c10e0400049c205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e244964546f496e6465780001080505c50e1004000461012054686520696e646578206f6620656163682072616e6b732773206d656d62657220696e746f207468652067726f7570206f66206d656d626572732077686f2068617665206174206c6561737420746861742072616e6b2e24496e646578546f49640001080505c90e000400085d0120546865206d656d6265727320696e2074686520636f6c6c65637469766520627920696e6465782e20416c6c20696e646963657320696e207468652072616e67652060302e2e4d656d626572436f756e74602077696c6c65012072657475726e2060536f6d65602c20686f77657665722061206d656d626572277320696e646578206973206e6f742067756172616e7465656420746f2072656d61696e20756e6368616e676564206f7665722074696d652e18566f74696e670001080205ed09fd07040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e34566f74696e67436c65616e75700001040210cd0e04000001990601f9070001d10e40003c4173736574436f6e76657273696f6e013c4173736574436f6e76657273696f6e0814506f6f6c73000104020508d50e0400086901204d61702066726f6d2060506f6f6c417373657449646020746f2060506f6f6c496e666f602e20546869732065737461626c69736865732077686574686572206120706f6f6c20686173206265656e206f6666696369616c6c793d01206372656174656420726174686572207468616e2070656f706c652073656e64696e6720746f6b656e73206469726563746c7920746f206120706f6f6c2773207075626c6963206163636f756e742e3c4e657874506f6f6c4173736574496400001004000825012053746f726573207468652060506f6f6c4173736574496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e657874206c7020746f6b656e2ee42054686973206765747320696e6372656d656e746564207768656e657665722061206e6577206c7020706f6f6c20697320637265617465642e019d060101081c144c504665651010030000000451012041202520746865206c69717569646974792070726f7669646572732077696c6c2074616b65206f6620657665727920737761702e20526570726573656e7473203130746873206f6620612070657263656e742e30506f6f6c5365747570466565184000407a10f35a0000000000000000000004882041206f6e652d74696d652066656520746f2073657475702074686520706f6f6c2e44506f6f6c53657475704665654173736574a0040004390120417373657420636c6173732066726f6d205b60436f6e6669673a3a417373657473605d207573656420746f2070617920746865205b60436f6e6669673a3a506f6f6c5365747570466565605d2e584c69717569646974795769746864726177616c46656509081000000000048420412066656520746f20776974686472617720746865206c69717569646974792e404d696e744d696e4c6971756964697479184064000000000000000000000000000000043d0120546865206d696e696d756d204c5020746f6b656e20616d6f756e74207468617420636f756c64206265206d696e7465642e20416d656c696f726174657320726f756e64696e67206572726f72732e444d617853776170506174684c656e677468101004000000048820546865206d6178206e756d626572206f6620686f707320696e206120737761702e2050616c6c65744964e90a2070792f6173636f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e01d90e41002c46617374556e7374616b65012c46617374556e7374616b651010486561640000dd0e04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e01a506011508041c4465706f736974184000407a10f35a00000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e01e90e4200304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f720101040510ed0e74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c5365727669636548656164000010040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805056d01f90e0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01a90601190810204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010800000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874d90740010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874d9070400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01010f43000c506f76010c506f76301456616c75650000100400001856616c75653200001004000038556e626f756e64656456616c75650000380400047420412076616c756520776974686f75742061204d454c20626f756e642e30426f756e64656456616c7565000051010400049420412076616c756520776974682061204d454c20626f756e64206f6620333220627974652e284c6172676556616c75650000510c0400043020344d69422076616c75652e2c4c6172676556616c7565320000510c040000144d6170314d000104011010040004902041206d617020776974682061206d6178696d756d206f6620314d20656e74726965732e184d617031364d000104011010040004942041206d617020776974682061206d6178696d756d206f662031364d20656e74726965732e2c446f75626c654d6170314d00010801016d011004000030556e626f756e6465644d61700001040110c10104000034556e626f756e6465644d6170320001040110c10104000040556e626f756e6465644d617054776f780001040510c10104000001ad06012108000044001c54785061757365011c54785061757365042c50617573656443616c6c7300010402b50688040004b42054686520736574206f662063616c6c73207468617420617265206578706c696369746c79207061757365642e01b10601250804284d61784e616d654c656e1010000100000c2501204d6178696d756d206c656e67746820666f722070616c6c6574206e616d6520616e642063616c6c206e616d65205343414c4520656e636f64656420737472696e67206e616d65732e00a820544f4f204c4f4e47204e414d45532057494c4c2042452054524541544544204153205041555345442e01050f450020536166654d6f64650120536166654d6f64650830456e7465726564556e74696c000010040014290120436f6e7461696e7320746865206c61737420626c6f636b206e756d62657220746861742074686520736166652d6d6f64652077696c6c2072656d61696e20656e746572656420696e2e00a4202053657420746f20604e6f6e6560207768656e20736166652d6d6f6465206973206578697465642e00510120536166652d6d6f6465206973206175746f6d61746963616c6c7920657869746564207768656e207468652063757272656e7420626c6f636b206e756d626572206578636565647320746869732076616c75652e204465706f736974730001080505150a18040010350120486f6c64732074686520726573657276652074686174207761732074616b656e2066726f6d20616e206163636f756e74206174206120737065636966696320626c6f636b206e756d6265722e00750120546869732068656c707320676f7665726e616e636520746f206861766520616e206f76657276696577206f66206f75747374616e64696e67206465706f7369747320746861742073686f756c642062652072657475726e6564206f722420736c61736865642e01b9060129081434456e7465724475726174696f6e1010c012000004210120466f7220686f77206d616e7920626c6f636b732074686520736166652d6d6f64652077696c6c20626520656e7465726564206279205b6050616c6c65743a3a656e746572605d2e38457874656e644475726174696f6e1010600900000c4d0120466f7220686f77206d616e7920626c6f636b732074686520736166652d6d6f64652063616e20626520657874656e6465642062792065616368205b6050616c6c65743a3a657874656e64605d2063616c6c2e004d01205468697320646f6573206e6f7420696d706f736520612068617264206c696d69742061732074686520736166652d6d6f64652063616e20626520657874656e646564206d756c7469706c652074696d65732e48456e7465724465706f736974416d6f756e74a9034401000020c65abc8ed70a000000000000000c05012054686520616d6f756e7420746861742077696c6c2062652072657365727665642075706f6e2063616c6c696e67205b6050616c6c65743a3a656e746572605d2e00410120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c7920656e61626c696e672074686520736166652d6d6f646520616e6420697320612073616e652064656661756c742e4c457874656e644465706f736974416d6f756e74a9034401000010632d5ec76b05000000000000000c09012054686520616d6f756e7420746861742077696c6c2062652072657365727665642075706f6e2063616c6c696e67205b6050616c6c65743a3a657874656e64605d2e00450120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c7920657874656e64696e672074686520736166652d6d6f646520616e6420697320612073616e652064656661756c742e3052656c6561736544656c6179c8140100e1000020490120546865206d696e696d616c206475726174696f6e2061206465706f7369742077696c6c2072656d61696e20726573657276656420616674657220736166652d6d6f646520697320656e7465726564206f72490120657874656e6465642c20756e6c657373205b6050616c6c65743a3a666f7263655f72656c656173655f6465706f736974605d206973207375636365737366756c6c792063616c6c656420736f6f6e65722e005901204576657279206465706f736974206973207469656420746f20612073706563696669632061637469766174696f6e206f7220657874656e73696f6e2c20746875732065616368206465706f7369742063616e206265e82072656c656173656420696e646570656e64656e746c79206166746572207468652064656c617920666f7220697420686173207061737365642e00450120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c792072656c656173696e672074686520736166652d6d6f6465206465706f7369747320616e6420697320612073616e65242064656661756c742e01090f46002453746174656d656e740000013108183453746174656d656e74436f7374184000407a10f35a000000000000000000000494204d696e2062616c616e636520666f72207072696f726974792073746174656d656e74732e2042797465436f7374184000e8764817000000000000000000000004c420436f7374206f6620646174612062797465207573656420666f72207072696f726974792063616c63756c6174696f6e2e504d696e416c6c6f77656453746174656d656e747310100400000004c8204d696e696d756d206e756d626572206f662073746174656d656e747320616c6c6f77656420706572206163636f756e742e504d6178416c6c6f77656453746174656d656e747310100a00000004c8204d6178696d756d206e756d626572206f662073746174656d656e747320616c6c6f77656420706572206163636f756e742e3c4d696e416c6c6f776564427974657310100004000004a0204d696e696d756d206461746120627974657320616c6c6f77656420706572206163636f756e742e3c4d6178416c6c6f776564427974657310100010000004a0204d6178696d756d206461746120627974657320616c6c6f77656420706572206163636f756e742e004700504d756c7469426c6f636b4d6967726174696f6e7301504d756c7469426c6f636b4d6967726174696f6e730818437572736f720000c50604000cd8205468652063757272656e746c7920616374697665206d6967726174696f6e20746f2072756e20616e642069747320637572736f722e00bc20604e6f6e656020696e646963617465732074686174206e6f206d6967726174696f6e2069732072756e6e696e672e20486973746f72696300010405cd0188040010b420536574206f6620616c6c207375636365737366756c6c79206578656375746564206d6967726174696f6e732e0071012054686973206973207573656420617320626c61636b6c6973742c20746f206e6f742072652d65786563757465206d6967726174696f6e7320746861742068617665206e6f74206265656e2072656d6f7665642066726f6d20746865310120636f646562617365207965742e20476f7665726e616e63652063616e20726567756c61726c7920636c6561722074686973206f7574207669612060636c6561725f686973746f726963602e01bd060145080830437572736f724d61784c656e10100000010010a420546865206d6178696d616c206c656e677468206f6620616e20656e636f64656420637572736f722e006501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c20657665722068617665206120637572736f722077697468204d454c09012061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e404964656e7469666965724d61784c656e10100001000010b420546865206d6178696d616c206c656e677468206f6620616e20656e636f646564206964656e7469666965722e005501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c2065766572206861766520616e206964656e7469666965722d012077697468204d454c2061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e010d0f48001842726f6b6572011842726f6b65723c34436f6e66696775726174696f6e0000e506040004a8205468652063757272656e7420636f6e66696775726174696f6e206f6620746869732070616c6c65742e305265736572766174696f6e730100110f04000465012054686520506f6c6b61646f7420436f7265207265736572766174696f6e73202867656e6572616c6c79207461736b6564207769746820746865206d61696e74656e616e6365206f662053797374656d20436861696e73292e184c65617365730100190f040004842054686520506f6c6b61646f7420436f7265206c6567616379206c65617365732e185374617475730000250f040004fc205468652063757272656e7420737461747573206f66206d697363656c6c616e656f75732073756273797374656d73206f6620746869732070616c6c65742e2053616c65496e666f0000290f0400041901205468652064657461696c73206f66207468652063757272656e742073616c652c20696e636c7564696e67206974732070726f7065727469657320616e64207374617475732e44506f74656e7469616c52656e6577616c73000104052d0f310f04000c7c205265636f726473206f6620706f74656e7469616c2072656e6577616c732e0055012052656e6577616c732077696c6c206f6e6c792061637475616c6c7920626520616c6c6f7765642069662060436f6d706c6574696f6e537461747573602069732061637475616c6c792060436f6d706c657465602e1c526567696f6e7300010402fd06390f040004f0205468652063757272656e742028756e61737369676e6564206f722070726f766973696f6e616c6c79206173736967656e642920526567696f6e732e20576f726b706c616e000104053d0fe90604000431012054686520776f726b20776520706c616e206f6e20686176696e67206561636820636f726520646f206174206120706172746963756c61722074696d6520696e20746865206675747572652e20576f726b6c6f6164010104058901e9060400045d01205468652063757272656e7420776f726b6c6f6164206f66206561636820636f72652e205468697320676574732075706461746564207769746820776f726b706c616e2061732074696d65736c6963657320706173732e54496e737461506f6f6c436f6e747269627574696f6e00010402fd06410f0400041101205265636f7264206f6620612073696e676c6520636f6e747269627574696f6e20746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e2c496e737461506f6f6c496f0101040210450f200000000000000000042101205265636f7264206f6620436f726574696d6520656e746572696e67206f72206c656176696e672074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e40496e737461506f6f6c486973746f727900010402104d0f0400046d0120546f74616c20496e737461506f6f6c207265776172647320666f7220656163682054696d65736c69636520616e6420746865206e756d626572206f6620636f726520706172747320776869636820636f6e74726962757465642e38436f7265436f756e74496e626f7800008901040004c420526563656976656420636f726520636f756e74206368616e67652066726f6d207468652072656c617920636861696e2e304175746f52656e6577616c730100510f04000ce0204b656570696e6720747261636b206f6620636f7265732077686963682068617665206175746f2d72656e6577616c20656e61626c65642e00550120536f727465642062792060436f7265496e6465786020746f206d616b65207468652072656d6f76616c206f6620636f7265732066726f6d206175746f2d72656e6577616c206d6f726520656666696369656e742e30526576656e7565496e626f7800000507040004b020526563656976656420726576656e756520696e666f2066726f6d207468652072656c617920636861696e2e01e106014908182050616c6c65744964e90a2070792f62726f6b6504d4204964656e7469666965722066726f6d2077686963682074686520696e7465726e616c20506f742069732067656e6572617465642e3c54696d65736c696365506572696f6410100200000004b0204e756d626572206f662052656c61792d636861696e20626c6f636b73207065722074696d65736c6963652e384d61784c6561736564436f7265731010050000000484204d6178696d756d206e756d626572206f66206c6567616379206c65617365732e404d61785265736572766564436f7265731010050000000480204d6178696d756d206e756d626572206f662073797374656d20636f7265732e3c4d61784175746f52656e6577616c7310100a00000004610120476976656e20746861742077652061726520706572666f726d696e6720616c6c206175746f2d72656e6577616c7320696e20612073696e676c6520626c6f636b2c2069742068617320746f206265206c696d697465642e544d696e696d756d4372656469745075726368617365184000e876481700000000000000000000000cd02054686520736d616c6c65737420616d6f756e74206f662063726564697473206120757365722063616e2070757263686173652e0080204e656564656420746f2070726576656e74207370616d2061747461636b732e015d0f4900305461736b734578616d706c6501305461736b734578616d706c650814546f74616c01006d01200000000000000000045020536f6d652072756e6e696e6720746f74616c2e1c4e756d6265727300010405101004000490204e756d6265727320746f20626520616464656420696e746f2074686520746f74616c2e00000001610f4a00184d69786e657401184d69786e6574104c43757272656e7453657373696f6e496e646578010010100000000008690120496e646578206f66207468652063757272656e742073657373696f6e2e2054686973206d6179206265206f66667365742072656c617469766520746f207468652073657373696f6e20696e64657820747261636b6564206279f4206567206070616c6c65745f73657373696f6e603b206d69786e65742073657373696f6e20696e64696365732061726520696e646570656e64656e742e6043757272656e7453657373696f6e5374617274426c6f636b010010100000000004b020426c6f636b20696e207768696368207468652063757272656e742073657373696f6e20737461727465642e404e657874417574686f726974794964730001040610c9030400049420417574686f72697479206c69737420666f7220746865206e6578742073657373696f6e2e204d69786e6f64657300010806066d0111070400186501204d69786e6f646520736574732062792073657373696f6e20696e6465782e204f6e6c7920746865206d69786e6f6465207365747320666f72207468652070726576696f75732c2063757272656e742c20616e64206e657874b42073657373696f6e7320617265206b6570743b206f6c646572207365747320617265206469736361726465642e004d0120546865206d69786e6f64657320696e20656163682073657420617265206b6579656420627920617574686f7269747920696e64657820736f2077652063616e20656173696c7920636865636b20696620616e550120617574686f726974792068617320726567697374657265642061206d69786e6f64652e2054686520617574686f7269747920696e64696365732073686f756c64206f6e6c79206265207573656420647572696e67310120726567697374726174696f6e3b2074686520617574686f7269747920696e646963657320666f722074686520766572792066697273742073657373696f6e20617265206d6164652075702e0109070028384d6178417574686f72697469657310106400000004bc20546865206d6178696d756d206e756d626572206f6620617574686f726974696573207065722073657373696f6e2e584d617845787465726e616c4164647265737353697a6510108000000004ec20546865206d6178696d756d2073697a65206f66206f6e65206f662061206d69786e6f646527732065787465726e616c206164647265737365732e784d617845787465726e616c4164647265737365735065724d69786e6f646510101000000004e020546865206d6178696d756d206e756d626572206f662065787465726e616c2061646472657373657320666f722061206d69786e6f64652e5c4e756d436f766572546f43757272656e74426c6f636b73101003000000042501204c656e677468206f6620746865206669727374207068617365206f6620656163682073657373696f6e202860436f766572546f43757272656e7460292c20696e20626c6f636b732e684e756d5265717565737473546f43757272656e74426c6f636b73101003000000043501204c656e677468206f6620746865207365636f6e64207068617365206f6620656163682073657373696f6e2028605265717565737473546f43757272656e7460292c20696e20626c6f636b732e504e756d436f766572546f50726576426c6f636b73101003000000041901204c656e677468206f6620746865207468697264207068617365206f6620656163682073657373696f6e202860436f766572546f5072657660292c20696e20626c6f636b732e6c4e756d52656769737465725374617274536c61636b426c6f636b731010030000000c210120546865206e756d626572206f662022736c61636b2220626c6f636b7320617420746865207374617274206f6620656163682073657373696f6e2c20647572696e672077686963684501205b606d617962655f7265676973746572605d2850616c6c65743a3a6d617962655f7265676973746572292077696c6c206e6f7420617474656d707420746f20706f737420726567697374726174696f6e38207472616e73616374696f6e732e644e756d5265676973746572456e64536c61636b426c6f636b7310100300000010e420546865206e756d626572206f662022736c61636b2220626c6f636b732061742074686520656e64206f6620656163682073657373696f6e2e4901205b606d617962655f7265676973746572605d2850616c6c65743a3a6d617962655f7265676973746572292077696c6c2074727920746f207265676973746572206265666f7265207468697320736c61636b450120706572696f642c20627574206d617920706f737420726567697374726174696f6e207472616e73616374696f6e7320647572696e672074686520736c61636b20706572696f642061732061206c61737420207265736f72742e50526567697374726174696f6e5072696f726974793020feffffffffffffff04f4205072696f72697479206f6620756e7369676e6564207472616e73616374696f6e73207573656420746f207265676973746572206d69786e6f6465732e2c4d696e4d69786e6f646573101007000000086101204d696e696d756d206e756d626572206f66206d69786e6f6465732e20496620746865726520617265206665776572207468616e2074686973206d616e79206d69786e6f646573207265676973746572656420666f722061ec2073657373696f6e2c20746865206d69786e65742077696c6c206e6f742062652061637469766520647572696e67207468652073657373696f6e2e004b0028506172616d65746572730128506172616d65746572730428506172616d657465727300010402610871080400044c2053746f72656420706172616d65746572732e012107015d0800004c0048536b69704665656c6573735061796d656e740000017d0800004d004450616c6c65744578616d706c654d626d73014450616c6c65744578616d706c654d626d7304144d794d6170000104021030040004f020446566696e6520612073746f72616765206974656d20746f20696c6c75737472617465206d756c74692d626c6f636b206d6967726174696f6e732e000000004e00604173736574436f6e76657273696f6e4d6967726174696f6e000171070181080001650f4f001852657669766501185265766976651c305072697374696e65436f64650001040634690f040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e28436f6465496e666f4f6600010406346d0f040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e38436f6e7472616374496e666f4f66000104067907710f040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e3c496d6d757461626c65446174614f66000104067907750f040004d02054686520696d6d757461626c652064617461206173736f6369617465642077697468206120676976656e206163636f756e742e3444656c6574696f6e51756575650001040510bd01040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e5044656c6574696f6e5175657565436f756e7465720100790f200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e3c4f726967696e616c4163636f756e7400010406790700040018d8204d6170206120457468657265756d206164647265737320746f20697473206f726967696e616c20604163636f756e7449643332602e004501205768656e206465726976696e672061206048313630602066726f6d20616e20604163636f756e74496433326020776520757365206120686173682066756e6374696f6e2e20496e206f7264657220746f3101207265636f6e73747275637420746865206f726967696e616c206163636f756e74207765206e65656420746f2073746f7265207468652072657665727365206d617070696e6720686572652e190120526567697374657220796f757220604163636f756e744964333260207573696e67205b6050616c6c65743a3a6d61705f6163636f756e74605d20696e206f7264657220746f6420757365206974207769746820746869732070616c6c65742e01750701850818384465706f7369745065724279746518400060defb7405000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465003501204974206973207361666520746f206368616e676520746869732076616c7565206f6e2061206c69766520636861696e20617320616c6c20726566756e6473206172652070726f20726174612e384465706f7369745065724974656d184000f0ab75a40d000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465003501204974206973207361666520746f206368616e676520746869732076616c7565206f6e2061206c69766520636861696e20617320616c6c20726566756e6473206172652070726f20726174612e70436f6465486173684c6f636b75704465706f73697450657263656e74c41000a3e1110c4501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e510120496e7374616e74696174696e67206120636f6e74726163742c2070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e74250120616275736520746865736520616374696f6e73206172652070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e5c556e73616665556e737461626c65496e74657266616365200400241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e1c436861696e49643020441b0f190000000010010120546865205b4549502d3135355d2868747470733a2f2f656970732e657468657265756d2e6f72672f454950532f6569702d3135352920636861696e2049442e0005012054686973206973206120756e69717565206964656e7469666965722061737369676e656420746f206561636820626c6f636b636861696e206e6574776f726b2c6c2070726576656e74696e67207265706c61792061747461636b732e404e6174697665546f457468526174696f101040420f000451012054686520726174696f206265747765656e2074686520646563696d616c20726570726573656e746174696f6e206f6620746865206e617469766520746f6b656e20616e64207468652045544820746f6b656e2e017d0f50003c5665726966795369676e6174757265000000000051004044656c6567617465645374616b696e67014044656c6567617465645374616b696e67102844656c656761746f72730001040500810f040010a4204d6170206f662044656c656761746f727320746f207468656972206044656c65676174696f6e602e00610120496d706c656d656e746174696f6e206e6f74653a20576520617265206e6f74207573696e67206120646f75626c65206d61702077697468206064656c656761746f726020616e6420606167656e7460206163636f756e746101206173206b6579732073696e63652077652077616e7420746f2072657374726963742064656c656761746f727320746f2064656c6567617465206f6e6c7920746f206f6e65206163636f756e7420617420612074696d652e50436f756e746572466f7244656c656761746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184167656e74730001040500850f04000488204d6170206f6620604167656e746020746f20746865697220604c6564676572602e40436f756e746572466f724167656e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000018908082050616c6c65744964e90a2070792f646c73746b049020496e6a6563746564206964656e74696669657220666f72207468652070616c6c65742e4c536c6173685265776172644672616374696f6ec41080969800045101204672616374696f6e206f662074686520736c617368207468617420697320726577617264656420746f207468652063616c6c6572206f662070656e64696e6720736c61736820746f20746865206167656e742e01890f5200304173736574526577617264730130417373657452657761726473102c506f6f6c5374616b6572730001080202ed098d0f0400045c205374617465206f6620706f6f6c207374616b6572732e14506f6f6c730001040210910f040004b820537461746520616e6420636f6e66696775726174696f6e206f662065616368207374616b696e6720706f6f6c2e20506f6f6c436f73740001040210950f04001069012054686520636f7374206173736f63696174656420776974682073746f72696e6720706f6f6c20696e666f726d6174696f6e206f6e2d636861696e2077686963682077617320696e6375727265642062792074686520706f6f6c242063726561746f722e001d01205468697320636f7374206d6179206265205b604e6f6e65605d2c2061732064657465726d696e6564206279205b60436f6e6669673a3a436f6e73696465726174696f6e605d2e284e657874506f6f6c496401001010000000000cc02053746f72657320746865205b60506f6f6c4964605d20746f2075736520666f7220746865206e65787420706f6f6c2e00a020496e6372656d656e746564207768656e2061206e657720706f6f6c20697320637265617465642e017d07018d08042050616c6c65744964e90a2070792f73746b72640c1901205468652070616c6c6574277320756e69717565206964656e7469666965722c207573656420746f206465726976652074686520706f6f6c2773206163636f756e742049442e003d0120546865206163636f756e742049442069732064657269766564206f6e636520647572696e6720706f6f6c206372656174696f6e20616e642073746f72656420696e207468652073746f726167652e019d0f530034417373657473467265657a65720134417373657473467265657a6572081c467265657a65730101080202ed098d0904000415012041206d617020746861742073746f72657320667265657a6573206170706c696564206f6e20616e206163636f756e7420666f72206120676976656e20417373657449642e3846726f7a656e42616c616e6365730001080202ed091804000465012041206d617020746861742073746f726573207468652063757272656e7420746f74616c2066726f7a656e2062616c616e636520666f72206576657279206163636f756e74206f6e206120676976656e20417373657449642e000191080001a10f5400184d6574615478000181070195080001a50f5900048d022d02e504a90f2848436865636b4e6f6e5a65726f53656e64657295078840436865636b5370656356657273696f6e99071038436865636b547856657273696f6e9d071030436865636b47656e65736973a1073438436865636b4d6f7274616c697479a5073428436865636b4e6f6e6365ad07882c436865636b576569676874ad0f8850436861726765417373657454785061796d656e74b10f8844436865636b4d6574616461746148617368b1077101345765696768745265636c61696db90f882d016810436f72650c1c76657273696f6e00c90804902052657475726e73207468652076657273696f6e206f66207468652072756e74696d652e34657865637574655f626c6f636b0414626c6f636bbd0f88046420457865637574652074686520676976656e20626c6f636b2e40696e697469616c697a655f626c6f636b04186865616465726502c90f04410120496e697469616c697a65206120626c6f636b20776974682074686520676976656e2068656164657220616e642072657475726e207468652072756e74696d6520657865637574697665206d6f64652e042101205468652060436f7265602072756e74696d65206170692074686174206576657279205375627374726174652072756e74696d65206e6565647320746f20696d706c656d656e742e204d657461646174610c206d6574616461746100cd0f048c2052657475726e7320746865206d65746164617461206f6620612072756e74696d652e4c6d657461646174615f61745f76657273696f6e041c76657273696f6e10d10f10a42052657475726e7320746865206d65746164617461206174206120676976656e2076657273696f6e2e0005012049662074686520676976656e206076657273696f6e602069736e277420737570706f727465642c20746869732077696c6c2072657475726e20604e6f6e65602e750120557365205b6053656c663a3a6d657461646174615f76657273696f6e73605d20746f2066696e64206f75742061626f757420737570706f72746564206d657461646174612076657273696f6e206f66207468652072756e74696d652e446d657461646174615f76657273696f6e7300c1010ca42052657475726e732074686520737570706f72746564206d657461646174612076657273696f6e732e00c020546869732063616e206265207573656420746f2063616c6c20606d657461646174615f61745f76657273696f6e602e0401012054686520604d65746164617461602061706920747261697420746861742072657475726e73206d6574616461746120666f72207468652072756e74696d652e4c52756e74696d655669657746756e6374696f6e0454657865637574655f766965775f66756e6374696f6e082071756572795f6964d50f14696e70757438d90f047c2045786563757465206120766965772066756e6374696f6e2071756572792e04a42052756e74696d652041504920666f7220657865637574696e6720766965772066756e6374696f6e7330426c6f636b4275696c646572103c6170706c795f65787472696e736963042465787472696e736963c10fe10f106c204170706c792074686520676976656e2065787472696e7369632e0039012052657475726e7320616e20696e636c7573696f6e206f7574636f6d652077686963682073706563696669657320696620746869732065787472696e73696320697320696e636c7564656420696e4c207468697320626c6f636b206f72206e6f742e3866696e616c697a655f626c6f636b00650204682046696e697368207468652063757272656e7420626c6f636b2e4c696e686572656e745f65787472696e736963730420696e686572656e74f10fc50f043d012047656e657261746520696e686572656e742065787472696e736963732e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e3c636865636b5f696e686572656e74730814626c6f636bbd0f1064617461f10f011004550120436865636b20746861742074686520696e686572656e7473206172652076616c69642e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e047101205468652060426c6f636b4275696c646572602061706920747261697420746861742070726f7669646573207468652072657175697265642066756e6374696f6e616c69747920666f72206275696c64696e67206120626c6f636b2e585461676765645472616e73616374696f6e5175657565045076616c69646174655f7472616e73616374696f6e0c18736f757263650510087478c10f28626c6f636b5f6861736834091024682056616c696461746520746865207472616e73616374696f6e2e0065012054686973206d6574686f6420697320696e766f6b656420627920746865207472616e73616374696f6e20706f6f6c20746f206c6561726e2064657461696c732061626f757420676976656e207472616e73616374696f6e2e45012054686520696d706c656d656e746174696f6e2073686f756c64206d616b65207375726520746f207665726966792074686520636f72726563746e657373206f6620746865207472616e73616374696f6e4d0120616761696e73742063757272656e742073746174652e2054686520676976656e2060626c6f636b5f686173686020636f72726573706f6e647320746f207468652068617368206f662074686520626c6f636b7c207468617420697320757365642061732063757272656e742073746174652e004501204e6f7465207468617420746869732063616c6c206d617920626520706572666f726d65642062792074686520706f6f6c206d756c7469706c652074696d657320616e64207472616e73616374696f6e73a4206d6967687420626520766572696669656420696e20616e7920706f737369626c65206f726465722e044d012054686520605461676765645472616e73616374696f6e5175657565602061706920747261697420666f7220696e746572666572696e67207769746820746865207472616e73616374696f6e2071756575652e4456616c696461746553746174656d656e74044876616c69646174655f73746174656d656e740818736f7572636511102473746174656d656e743508151004602056616c6964617465207468652073746174656d656e742e04b02052756e74696d652041504920747261697420666f722073746174656d656e742076616c69646174696f6e2e444f6666636861696e576f726b6572417069043c6f6666636861696e5f776f726b6572041868656164657265028804c82053746172747320746865206f66662d636861696e207461736b20666f7220676976656e20626c6f636b206865616465722e046420546865206f6666636861696e20776f726b6572206170692e284772616e647061417069104c6772616e6470615f617574686f726974696573000d01183d0120476574207468652063757272656e74204752414e44504120617574686f72697469657320616e6420776569676874732e20546869732073686f756c64206e6f74206368616e6765206578636570741d0120666f72207768656e206368616e67657320617265207363686564756c656420616e642074686520636f72726573706f6e64696e672064656c617920686173207061737365642e003501205768656e2063616c6c656420617420626c6f636b20422c2069742077696c6c2072657475726e2074686520736574206f6620617574686f72697469657320746861742073686f756c642062653d01207573656420746f2066696e616c697a652064657363656e64616e7473206f66207468697320626c6f636b2028422b312c20422b322c202e2e2e292e2054686520626c6f636b204220697473656c66c02069732066696e616c697a65642062792074686520617574686f7269746965732066726f6d20626c6f636b20422d312eb47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f66f9033c6b65795f6f776e65725f70726f6f6621102510201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f6964150129102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74fc20696d706c656d656e746174696f6e732069676e6f7265207468697320706172616d6574657220616e6420696e73746561642072656c79206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e3863757272656e745f7365745f696400300498204765742063757272656e74204752414e44504120617574686f72697479207365742069642e240101204150497320666f7220696e746567726174696e6720746865204752414e4450412066696e616c6974792067616467657420696e746f2072756e74696d65732ec020546869732073686f756c6420626520696d706c656d656e746564206f6e207468652072756e74696d6520736964652e0015012054686973206973207072696d6172696c79207573656420666f72206e65676f74696174696e6720617574686f726974792d736574206368616e67657320666f72207468650d01206761646765742e204752414e44504120757365732061207369676e616c696e67206d6f64656c206f66206368616e67696e6720617574686f7269747920736574733a3101206368616e6765732073686f756c64206265207369676e616c6564207769746820612064656c6179206f66204e20626c6f636b732c20616e64207468656e206175746f6d61746963616c6c79e4206170706c69656420696e207468652072756e74696d652061667465722074686f7365204e20626c6f636b732068617665207061737365642e00fc2054686520636f6e73656e7375732070726f746f636f6c2077696c6c20636f6f7264696e617465207468652068616e646f66662065787465726e616c6c792e484e6f6d696e6174696f6e506f6f6c73417069283c70656e64696e675f72657761726473040c77686f00180435012052657475726e73207468652070656e64696e67207265776172647320666f7220746865206d656d626572207468617420746865204163636f756e7449642077617320676976656e20666f722e44706f696e74735f746f5f62616c616e6365081c706f6f6c5f69641018706f696e7473181804f42052657475726e7320746865206571756976616c656e742062616c616e6365206f662060706f696e74736020666f72206120676976656e20706f6f6c2e4462616c616e63655f746f5f706f696e7473081c706f6f6c5f696410246e65775f66756e6473181804fc2052657475726e7320746865206571756976616c656e7420706f696e7473206f6620606e65775f66756e64736020666f72206120676976656e20706f6f6c2e48706f6f6c5f70656e64696e675f736c617368041c706f6f6c5f6964101804b02052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c2e506d656d6265725f70656e64696e675f736c61736804186d656d626572001810cc2052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c206d656d6265722e004d012049662070656e64696e6720736c617368206f6620746865206d656d626572206578636565647320604578697374656e7469616c4465706f736974602c2069742063616e206265207265706f72746564206f6e1c20636861696e2e74706f6f6c5f6e656564735f64656c65676174655f6d6967726174696f6e041c706f6f6c5f6964102020e42052657475726e7320747275652069662074686520706f6f6c20776974682060706f6f6c5f696460206e65656473206d6967726174696f6e2e00490120546869732063616e2068617070656e207768656e20746865206070616c6c65742d6e6f6d696e6174696f6e2d706f6f6c73602068617320737769746368656420746f207573696e672073747261746567794101205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b6529206275742074686520706f6f6ce8207374696c6c206861732066756e647320746861742077657265207374616b6564207573696e6720746865206f6c6465722073747261746567791901205b5472616e736665725374616b655d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a5472616e736665725374616b65292e205573658901205b606d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65295420746f206d6967726174652074686520706f6f6c2e7c6d656d6265725f6e656564735f64656c65676174655f6d6967726174696f6e04186d656d62657200201c29012052657475726e732074727565206966207468652064656c6567617465642066756e6473206f662074686520706f6f6c20606d656d62657260206e65656473206d6967726174696f6e2e00d8204f6e6365206120706f6f6c20686173207375636365737366756c6c79206d6967726174656420746f207468652073747261746567795501205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b65292c207468652066756e6473206f66207468651901206d656d6265722063616e206265206d696772617465642066726f6d20706f6f6c206163636f756e7420746f20746865206d656d6265722773206163636f756e742e205573652901205b606d6967726174655f64656c65676174696f6e605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f64656c65676174696f6e29a420746f206d696772617465207468652066756e6473206f662074686520706f6f6c206d656d6265722e506d656d6265725f746f74616c5f62616c616e6365040c77686f00180465012052657475726e732074686520746f74616c20636f6e747269627574696f6e206f66206120706f6f6c206d656d62657220696e636c7564696e6720616e792062616c616e6365207468617420697320756e626f6e64696e672e30706f6f6c5f62616c616e6365041c706f6f6c5f69641018049c20546f74616c2062616c616e636520636f6e747269627574656420746f2074686520706f6f6c2e34706f6f6c5f6163636f756e7473041c706f6f6c5f696410e50b042d012052657475726e732074686520626f6e646564206163636f756e7420616e6420726577617264206163636f756e74206173736f63696174656420776974682074686520706f6f6c5f69642e04f82052756e74696d652061706920666f7220616363657373696e6720696e666f726d6174696f6e2061626f7574206e6f6d696e6174696f6e20706f6f6c732e285374616b696e674170690c446e6f6d696e6174696f6e735f71756f7461041c62616c616e636518100411012052657475726e7320746865206e6f6d696e6174696f6e732071756f746120666f722061206e6f6d696e61746f722077697468206120676976656e2062616c616e63652e5c657261735f7374616b6572735f706167655f636f756e74080c657261101c6163636f756e7400100439012052657475726e7320746865207061676520636f756e74206f66206578706f737572657320666f7220612076616c696461746f7220606163636f756e746020696e206120676976656e206572612e3c70656e64696e675f72657761726473080c657261101c6163636f756e740020043d012052657475726e7320747275652069662076616c696461746f7220606163636f756e74602068617320706167657320746f20626520636c61696d656420666f722074686520676976656e206572612e001c426162654170691834636f6e66696775726174696f6e002d10048c2052657475726e2074686520636f6e66696775726174696f6e20666f7220424142452e4c63757272656e745f65706f63685f737461727400710204c42052657475726e732074686520736c6f7420746861742073746172746564207468652063757272656e742065706f63682e3463757272656e745f65706f636800311004c42052657475726e7320696e666f726d6174696f6e20726567617264696e67207468652063757272656e742065706f63682e286e6578745f65706f63680031100801012052657475726e7320696e666f726d6174696f6e20726567617264696e6720746865206e6578742065706f6368202877686963682077617320616c72656164795c2070726576696f75736c7920616e6e6f756e636564292e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f660810736c6f74710230617574686f726974795f69646d0235102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e207468650d012063757272656e742065706f63682e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e0901204e4f54453a206576656e2074686f75676820746865204150492074616b657320612060736c6f746020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e74206174f0207768696368207468652065706f636820666f722074686520676976656e20736c6f74206973206c697665206f6e2d636861696e2e20467574757265090120696d706c656d656e746174696f6e732077696c6c20696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696ed020776f726b65722c206e6f7420726571756972696e67206f6c6465722073746174657320746f20626520617661696c61626c652eb47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6661023c6b65795f6f776e65725f70726f6f6639102510201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e04b820415049206e656365737361727920666f7220626c6f636b20617574686f7273686970207769746820424142452e54417574686f72697479446973636f76657279417069042c617574686f726974696573005d0b04190120526574726965766520617574686f72697479206964656e74696669657273206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e10742054686520617574686f7269747920646973636f76657279206170692e0051012054686973206170692069732075736564206279207468652060636c69656e742f617574686f726974792d646973636f7665727960206d6f64756c6520746f207265747269657665206964656e746966696572739c206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e3c4163636f756e744e6f6e636541706904346163636f756e745f6e6f6e6365041c6163636f756e74001004c0204765742063757272656e74206163636f756e74206e6f6e6365206f6620676976656e20604163636f756e744964602e0480205468652041504920746f207175657279206163636f756e74206e6f6e63652e2441737365747341706904406163636f756e745f62616c616e636573041c6163636f756e7400c90b0449012052657475726e7320746865206c697374206f66206041737365744964607320616e6420636f72726573706f6e64696e672062616c616e6365207468617420616e20604163636f756e74496460206861732e0030436f6e747261637473417069101063616c6c18186f726967696e001064657374001476616c756518246761735f6c696d6974d9075473746f726167655f6465706f7369745f6c696d6974a90328696e7075745f64617461383d100cf420506572666f726d20612063616c6c2066726f6d206120737065636966696564206163636f756e7420746f206120676976656e20636f6e74726163742e008820536565205b6063726174653a3a50616c6c65743a3a626172655f63616c6c605d2e2c696e7374616e74696174651c186f726967696e001476616c756518246761735f6c696d6974d9075473746f726167655f6465706f7369745f6c696d6974a90310636f646559101064617461381073616c74385d100c7020496e7374616e74696174652061206e657720636f6e74726163742e00a42053656520605b63726174653a3a50616c6c65743a3a626172655f696e7374616e74696174655d602e2c75706c6f61645f636f646510186f726967696e0010636f6465385473746f726167655f6465706f7369745f6c696d6974a9032c64657465726d696e69736d310469100ce82055706c6f6164206e657720636f646520776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00a420536565205b6063726174653a3a50616c6c65743a3a626172655f75706c6f61645f636f6465605d2e2c6765745f73746f72616765081c61646472657373000c6b657938711014bc205175657279206120676976656e2073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e04bc2054686520415049207573656420746f206472792d72756e20636f6e747261637420696e746572616374696f6e732e24526576697665417069303c626c6f636b5f6761735f6c696d697400791004742052657475726e732074686520626c6f636b20676173206c696d69742e1c62616c616e6365041c61646472657373790779100431012052657475726e732074686520667265652062616c616e6365206f662074686520676976656e20605b483136305d6020616464726573732c207573696e672045564d20646563696d616c732e246761735f7072696365007910045c2052657475726e7320746865206761732070726963652e146e6f6e6365041c6164647265737379071004c42052657475726e7320746865206e6f6e6365206f662074686520676976656e20605b483136305d6020616464726573732e1063616c6c18186f726967696e00106465737479071476616c756518246761735f6c696d6974d9075473746f726167655f6465706f7369745f6c696d6974a90328696e7075745f646174613881100cf420506572666f726d20612063616c6c2066726f6d206120737065636966696564206163636f756e7420746f206120676976656e20636f6e74726163742e008820536565205b6063726174653a3a50616c6c65743a3a626172655f63616c6c605d2e2c696e7374616e74696174651c186f726967696e001476616c756518246761735f6c696d6974d9075473746f726167655f6465706f7369745f6c696d6974a90310636f646595101064617461381073616c74710199100c7020496e7374616e74696174652061206e657720636f6e74726163742e00a42053656520605b63726174653a3a50616c6c65743a3a626172655f696e7374616e74696174655d602e306574685f7472616e7361637404087478a510d5100c6820506572666f726d20616e20457468657265756d2063616c6c2e00a420536565205b6063726174653a3a50616c6c65743a3a626172655f6574685f7472616e73616374605d2c75706c6f61645f636f64650c186f726967696e0010636f6465385473746f726167655f6465706f7369745f6c696d6974a903e1100ce82055706c6f6164206e657720636f646520776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00a420536565205b6063726174653a3a50616c6c65743a3a626172655f75706c6f61645f636f6465605d2e2c6765745f73746f72616765081c6164647265737379070c6b657904e91014bc205175657279206120676976656e2073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e2c74726163655f626c6f636b0814626c6f636bbd0f18636f6e666967f110fd10180501205472616365732074686520657865637574696f6e206f6620616e20656e7469726520626c6f636b20616e642072657475726e732063616c6c207472616365732e004101205468697320697320696e74656e64656420746f2062652063616c6c6564207468726f756768206073746174655f63616c6c6020746f207265706c61792074686520626c6f636b2066726f6d207468653820706172656e7420626c6f636b2e00c820536565206574682d727063206064656275675f7472616365426c6f636b42794e756d6265726020666f722075736167652e2074726163655f74780c14626c6f636bbd0f2074785f696e6465781018636f6e666967f110211118fc205472616365732074686520657865637574696f6e206f662061207370656369666963207472616e73616374696f6e2077697468696e206120626c6f636b2e004101205468697320697320696e74656e64656420746f2062652063616c6c6564207468726f756768206073746174655f63616c6c6020746f207265706c61792074686520626c6f636b2066726f6d207468658c20706172656e74206861736820757020746f20746865207472616e73616374696f6e2e00c020536565206574682d727063206064656275675f74726163655472616e73616374696f6e6020666f722075736167652e2874726163655f63616c6c08087478a51018636f6e666967f11025110cc0204472792072756e20616e642072657475726e20746865207472616365206f662074686520676976656e2063616c6c2e00a420536565206574682d727063206064656275675f747261636543616c6c6020666f722075736167652e04bc2054686520415049207573656420746f206472792d72756e20636f6e747261637420696e746572616374696f6e732e545472616e73616374696f6e5061796d656e74417069102871756572795f696e666f080c757874c10f0c6c656e102911004471756572795f6665655f64657461696c73080c757874c10f0c6c656e102d11004c71756572795f7765696768745f746f5f66656504187765696768742818004c71756572795f6c656e6774685f746f5f66656504186c656e67746810180000484173736574436f6e76657273696f6e4170690c8c71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e731018617373657431a018617373657432a018616d6f756e74182c696e636c7564655f66656520a90310fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eac20285573652060616d6f756e745f696e5f6d61786020746f20636f6e74726f6c20736c6970706167652e298c71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e731018617373657431a018617373657432a018616d6f756e74182c696e636c7564655f66656520a90310fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eb020285573652060616d6f756e745f6f75745f6d696e6020746f20636f6e74726f6c20736c6970706167652e29306765745f72657365727665730818617373657431a018617373657432a039110405012052657475726e73207468652073697a65206f6620746865206c697175696469747920706f6f6c20666f722074686520676976656e20617373657420706169722e08210120546869732072756e74696d652061706920616c6c6f77732070656f706c6520746f207175657279207468652073697a65206f6620746865206c697175696469747920706f6f6c737020616e642071756f74652070726963657320666f722073776170732e645472616e73616374696f6e5061796d656e7443616c6c417069103c71756572795f63616c6c5f696e666f081063616c6c2d020c6c656e10291104490120517565727920696e666f726d6174696f6e206f66206120646973706174636820636c6173732c207765696768742c20616e6420666565206f66206120676976656e20656e636f646564206043616c6c602e5871756572795f63616c6c5f6665655f64657461696c73081063616c6c2d020c6c656e102d1104b4205175657279206665652064657461696c73206f66206120676976656e20656e636f646564206043616c6c602e4c71756572795f7765696768745f746f5f6665650418776569676874281804010120517565727920746865206f7574707574206f66207468652063757272656e742060576569676874546f4665656020676976656e20736f6d6520696e7075742e4c71756572795f6c656e6774685f746f5f66656504186c656e677468101804010120517565727920746865206f7574707574206f66207468652063757272656e7420604c656e677468546f4665656020676976656e20736f6d6520696e7075742e001c4e66747341706918146f776e65720828636f6c6c656374696f6e10106974656d10ac0040636f6c6c656374696f6e5f6f776e65720428636f6c6c656374696f6e10ac00246174747269627574650c28636f6c6c656374696f6e10106974656d100c6b657938dd060040637573746f6d5f617474726962757465101c6163636f756e740028636f6c6c656374696f6e10106974656d100c6b657938dd06004073797374656d5f6174747269627574650c28636f6c6c656374696f6e10106974656dc80c6b657938dd060050636f6c6c656374696f6e5f6174747269627574650828636f6c6c656374696f6e100c6b657938dd0600002042656566794170691c3462656566795f67656e6573697300c80405012052657475726e2074686520626c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465643476616c696461746f725f73657400411104b82052657475726e207468652063757272656e74206163746976652042454546592076616c696461746f7220736574b87375626d69745f7265706f72745f646f75626c655f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f663d053c6b65795f6f776e65725f70726f6f6621102510204501205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120646f75626c6520766f74696e672065717569766f636174696f6e2e205468652063616c6c6572fc206d7573742070726f766964652074686520646f75626c6520766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742eb07375626d69745f7265706f72745f666f726b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6649113c6b65795f6f776e65725f70726f6f6621102510203d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120666f726b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65724101206d7573742070726f766964652074686520666f726b20766f74696e672070726f6f66202874686520616e6365737472792070726f6f662073686f756c64206265206f627461696e6564207573696e673d01206067656e65726174655f616e6365737472795f70726f6f66602920616e642061206b6579206f776e6572736869702070726f6f66202873686f756c64206265206f627461696e6564207573696e674101206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c794d0120626520616363657074656420666f72206c6f63616c20617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f6429012072657475726e7320604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742ed07375626d69745f7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6669053c6b65795f6f776e65725f70726f6f6621102510205d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420612066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65721501206d7573742070726f76696465207468652066757475726520626c6f636b20766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66ec202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e1501205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f6964cd0329102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e5c67656e65726174655f616e6365737472795f70726f6f660844707265765f626c6f636b5f6e756d626572105c626573745f6b6e6f776e5f626c6f636b5f6e756d626572c829100845012047656e65726174657320612070726f6f662074686174207468652060707265765f626c6f636b5f6e756d626572602069732070617274206f66207468652063616e6f6e6963616c20636861696e2061746c2060626573745f6b6e6f776e5f626c6f636b5f6e756d626572602e048020415049206e656365737361727920666f7220424545465920766f746572732e184d6d7241706914206d6d725f726f6f74004d11048c2052657475726e20746865206f6e2d636861696e204d4d5220726f6f7420686173682e386d6d725f6c6561665f636f756e7400551104b82052657475726e20746865206e756d626572206f66204d4d5220626c6f636b7320696e2074686520636861696e2e3867656e65726174655f70726f6f660834626c6f636b5f6e756d62657273c1015c626573745f6b6e6f776e5f626c6f636b5f6e756d626572c859110869012047656e6572617465204d4d522070726f6f6620666f72206120736572696573206f6620626c6f636b206e756d626572732e2049662060626573745f6b6e6f776e5f626c6f636b5f6e756d626572203d20536f6d65286e29602c45012075736520686973746f726963616c204d4d5220737461746520617420676976656e20626c6f636b2068656967687420606e602e20456c73652c207573652063757272656e74204d4d522073746174652e307665726966795f70726f6f6608186c656176657361111470726f6f6669116d1114f420566572696679204d4d522070726f6f6620616761696e7374206f6e2d636861696e204d4d5220666f722061206261746368206f66206c65617665732e007101204e6f746520746869732066756e6374696f6e2077696c6c20757365206f6e2d636861696e204d4d5220726f6f74206861736820616e6420636865636b206966207468652070726f6f66206d6174636865732074686520686173682e6d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d587665726966795f70726f6f665f73746174656c6573730c10726f6f7434186c656176657361111470726f6f6669116d111c010120566572696679204d4d522070726f6f6620616761696e737420676976656e20726f6f74206861736820666f722061206261746368206f66206c65617665732e00fc204e6f746520746869732066756e6374696f6e20646f6573206e6f74207265717569726520616e79206f6e2d636861696e2073746f72616765202d20746865bc2070726f6f6620697320766572696669656420616761696e737420676976656e204d4d5220726f6f7420686173682e006d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d04842041504920746f20696e7465726163742077697468204d4d522070616c6c65742e244d69786e6574417069103873657373696f6e5f73746174757300711104c0204765742074686520696e64657820616e64207068617365206f66207468652063757272656e742073657373696f6e2e34707265765f6d69786e6f64657300791104b82047657420746865206d69786e6f64652073657420666f72207468652070726576696f75732073657373696f6e2e4063757272656e745f6d69786e6f64657300791104b42047657420746865206d69786e6f64652073657420666f72207468652063757272656e742073657373696f6e2e386d617962655f7265676973746572083473657373696f6e5f696e646578101c6d69786e6f64658111203cc02054727920746f2072656769737465722061206d69786e6f646520666f7220746865206e6578742073657373696f6e2e005901204966206120726567697374726174696f6e2065787472696e736963206973207375626d69747465642c206074727565602069732072657475726e65642e205468652063616c6c65722073686f756c642061766f69644d012063616c6c696e6720606d617962655f72656769737465726020616761696e20666f7220612066657720626c6f636b732c20746f206769766520746865207375626d69747465642065787472696e736963206160206368616e636520746f2067657420696e636c756465642e0059012057697468207468652061626f766520657863657074696f6e2c20606d617962655f7265676973746572602069732064657369676e656420746f2062652063616c6c656420657665727920626c6f636b2e204d6f7374c8206f66207468652074696d652069742077696c6c206e6f7420646f20616e797468696e672c20666f72206578616d706c653a001d01202d204966206974206973206e6f7420616e20617070726f7072696174652074696d6520746f207375626d6974206120726567697374726174696f6e2065787472696e7369632e2d01202d20496620746865206c6f63616c206e6f64652068617320616c726561647920726567697374657265642061206d69786e6f646520666f7220746865206e6578742073657373696f6e2e4501202d20496620746865206c6f63616c206e6f6465206973206e6f74207065726d697474656420746f2072656769737465722061206d69786e6f646520666f7220746865206e6578742073657373696f6e2e005d01206073657373696f6e5f696e646578602073686f756c64206d61746368206073657373696f6e5f73746174757328292e63757272656e745f696e646578603b20696620697420646f6573206e6f742c206066616c736560642069732072657475726e656420696d6d6564696174656c792e044d012041504920746f20717565727920746865206d69786e65742073657373696f6e2073746174757320616e64206d69786e6f646520736574732c20616e6420746f207265676973746572206d69786e6f6465732e2c53657373696f6e4b657973085467656e65726174655f73657373696f6e5f6b657973041073656564dd06381c15012047656e6572617465206120736574206f662073657373696f6e206b6579732077697468206f7074696f6e616c6c79207573696e672074686520676976656e20736565642e090120546865206b6579732073686f756c642062652073746f7265642077697468696e20746865206b657973746f7265206578706f736564207669612072756e74696d653c2065787465726e616c69746965732e00b0205468652073656564206e6565647320746f20626520612076616c69642060757466386020737472696e672e00d02052657475726e732074686520636f6e636174656e61746564205343414c4520656e636f646564207075626c6963206b6579732e4c6465636f64655f73657373696f6e5f6b657973041c656e636f6465643889110c98204465636f64652074686520676976656e207075626c69632073657373696f6e206b6579732e00dc2052657475726e7320746865206c697374206f66207075626c696320726177207075626c6963206b657973202b206b657920747970652e04682053657373696f6e206b6579732072756e74696d65206170692e304173736574526577617264730448706f6f6c5f6372656174696f6e5f636f737400180c84204765742074686520636f7374206f66206372656174696e67206120706f6f6c2e00d0205468697320697320657370656369616c6c792075736566756c207768656e2074686520636f73742069732064796e616d69632e04b8205468652072756e74696d652041504920666f722074686520617373657420726577617264732070616c6c65742e3847656e657369734275696c6465720c2c6275696c645f737461746504106a736f6e389511286501204275696c64206052756e74696d6547656e65736973436f6e666967602066726f6d2061204a534f4e20626c6f62206e6f74207573696e6720616e792064656661756c747320616e642073746f726520697420696e20746865242073746f726167652e00290120496e207468652063617365206f662061204652414d452d62617365642072756e74696d652c20746869732066756e6374696f6e20646573657269616c697a6573207468652066756c6c5501206052756e74696d6547656e65736973436f6e666967602066726f6d2074686520676976656e204a534f4e20626c6f6220616e64207075747320697420696e746f207468652073746f726167652e2049662074686555012070726f7669646564204a534f4e20626c6f6220697320696e636f7272656374206f7220696e636f6d706c657465206f722074686520646573657269616c697a6174696f6e206661696c732c20616e206572726f72342069732072657475726e65642e005d0120506c65617365206e6f746520746861742070726f7669646564204a534f4e20626c6f62206d75737420636f6e7461696e20616c6c206052756e74696d6547656e65736973436f6e66696760206669656c64732c206e6f5c2064656661756c74732077696c6c20626520757365642e286765745f707265736574040869640d11dd063861012052657475726e732061204a534f4e20626c6f6220726570726573656e746174696f6e206f6620746865206275696c742d696e206052756e74696d6547656e65736973436f6e66696760206964656e7469666965642062791820606964602e005501204966206069646020697320604e6f6e6560207468652066756e6374696f6e2073686f756c642072657475726e204a534f4e20626c6f6220726570726573656e746174696f6e206f66207468652064656661756c744901206052756e74696d6547656e65736973436f6e6669676020737472756374206f66207468652072756e74696d652e20496d706c656d656e746174696f6e206d7573742070726f766964652064656661756c7460206052756e74696d6547656e65736973436f6e666967602e002101204f74686572776973652066756e6374696f6e2072657475726e732061204a534f4e20726570726573656e746174696f6e206f6620746865206275696c742d696e2c206e616d65645101206052756e74696d6547656e65736973436f6e6669676020707265736574206964656e74696669656420627920606964602c206f7220604e6f6e656020696620737563682070726573657420646f6573206e6f7461012065786973742e2052657475726e656420605665633c75383e6020636f6e7461696e73206279746573206f66204a534f4e20626c6f62202870617463682920776869636820636f6d7072697365732061206c697374206f664d012028706f74656e7469616c6c79206e657374656429206b65792d76616c756520706169727320746861742061726520696e74656e64656420666f7220637573746f6d697a696e67207468652064656661756c7465012072756e74696d652067656e6573697320636f6e6669672e20546865207061746368207368616c6c206265206d657267656420287266633733383629207769746820746865204a534f4e20726570726573656e746174696f6e6101206f66207468652064656661756c74206052756e74696d6547656e65736973436f6e6669676020746f20637265617465206120636f6d70726568656e736976652067656e6573697320636f6e66696720746861742063616e84206265207573656420696e20606275696c645f737461746560206d6574686f642e307072657365745f6e616d65730099111051012052657475726e732061206c697374206f66206964656e7469666965727320666f7220617661696c61626c65206275696c74696e206052756e74696d6547656e65736973436f6e6669676020707265736574732e0061012054686520707265736574732066726f6d20746865206c6973742063616e20626520717565726965642077697468205b6047656e657369734275696c6465723a3a6765745f707265736574605d206d6574686f642e2049660101206e6f206e616d65642070726573657473206172652070726f7669646564206279207468652072756e74696d6520746865206c69737420697320656d7074792e04f02041504920746f20696e7465726163742077697468206052756e74696d6547656e65736973436f6e6669676020666f72207468652072756e74696d652d02549d1100'; diff --git a/packages/types-support/src/metadata/v15/bizinikiwi-json.json b/packages/types-support/src/metadata/v15/bizinikiwi-json.json new file mode 100644 index 0000000..86ab5bd --- /dev/null +++ b/packages/types-support/src/metadata/v15/bizinikiwi-json.json @@ -0,0 +1,12787 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v15": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 551 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 552 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 550 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 555 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + }, + { + "name": "ExtrinsicWeightReclaimed", + "modifier": "Default", + "type": { + "plain": 10 + }, + "fallback": "0x0000", + "docs": [ + " The weight reclaimed for the extrinsic.", + "", + " This information is available until the end of the extrinsic execution.", + " More precisely this information is removed in `note_applied_extrinsic`.", + "", + " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate", + " reduction." + ] + } + ] + }, + "calls": { + "type": 140 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 556, + "value": "0xc2a0e766000b00204aa9d10113ffffffffffffffff2261c91900010bb86f97a72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100002261c91900010bb8f7e911a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000402261c91900000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 559, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 561, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 562, + "value": "0x106e6f6465387375627374726174652d6e6f64650a0000000c0100000000000068df6acb689907609b0500000037e397fc7c91f5e402000000ccd9de6396c899ca0100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000be9fb0c91a8046cf01000000f78b278be53f454c02000000ed99c5acb25eedf50300000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f010000008453b50b222939770100000068b66ba122c93fa7020000008c403e5c4a9fd4420100000037c8bb1350a9a2a8040000008a8047a53a8277ec01000000f3ff14d5ab52705903000000899a250cbe84f2500100000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000006fd7c327202e4a8d01000000ab3c0572291feb8b0100000065f855d6e093c2f101000000fbc577b9d747efd6010000000200000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 98, + "value": "0x2a00", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 566 + }, + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 144 + }, + "events": { + "type": 32 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 567 + }, + "index": 1, + "docs": [] + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 568 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 156 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 156 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 158 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 568 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 571 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 573 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 92 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 91 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 579 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 579 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 580 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "type": 151 + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 12, + "value": "0xc800000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": 12, + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " Max number of authorities allowed" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of nominators for each validator." + ] + } + ], + "errors": { + "type": 583 + }, + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 161 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 3, + "docs": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 4, + "docs": [] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 584 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 162 + }, + "events": { + "type": 35 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 585 + }, + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 586 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 590 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 593 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 611 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 165 + }, + "events": { + "type": 36 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x02000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 617 + }, + "index": 6, + "docs": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 72 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 618 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 38 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 7, + "docs": [] + }, + { + "name": "AssetConversionTxPayment", + "storage": null, + "calls": null, + "events": { + "type": 39 + }, + "constants": [], + "errors": null, + "index": 9, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 45 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 619 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 621 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 221 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 625 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 628 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 44 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "type": 168 + }, + "events": { + "type": 41 + }, + "constants": [ + { + "name": "BetterSignedThreshold", + "type": 49, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x05000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": 12, + "value": "0xfeffffffffffff7f", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": 10, + "value": "0x0b8887dd8d2e011366666666666666a6", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x03000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The maximum number of winners that can be elected by this `ElectionProvider`", + " implementation.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [] + }, + { + "name": "MinerMaxWeight", + "type": 10, + "value": "0x0b8887dd8d2e011366666666666666a6", + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [] + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xe8030000", + "docs": [] + } + ], + "errors": { + "type": 629 + }, + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 86 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 630 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 48 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 51 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 632 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 633 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 636 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 639 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 636 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 640, + "value": 641 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 112 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 51 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 642 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 53 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 228 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 646 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 551 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 648 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 649 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 645, + "value": 650 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 228 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "type": 226 + }, + "events": { + "type": 47 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0xa8000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "errors": { + "type": 651 + }, + "index": 11, + "docs": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 86 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 652 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 654 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 240 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 657, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 239 + }, + "events": { + "type": 54 + }, + "constants": [], + "errors": { + "type": 659 + }, + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": 660 + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 663 + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 665 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ] + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 668 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": 674 + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 675 + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 59, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " General information concerning any proposal or referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 245 + }, + "events": { + "type": 55 + }, + "constants": [ + { + "name": "EnactmentPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + }, + { + "name": "MinimumDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "InstantAllowed", + "type": 8, + "value": "0x01", + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ] + }, + { + "name": "FastTrackVotingPeriod", + "type": 4, + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "MaxVotes", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ] + }, + { + "name": "MaxProposals", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of public proposals that can exist at any time." + ] + }, + { + "name": "MaxDeposits", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of deposits a public proposal may have at any time." + ] + }, + { + "name": "MaxBlacklisted", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of items which can be blacklisted." + ] + } + ], + "errors": { + "type": 676 + }, + "index": 13, + "docs": [] + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 677 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 139 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "CostOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 678 + } + }, + "fallback": "0x00", + "docs": [ + " Consideration cost created for publishing and storing a proposal.", + "", + " Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if", + " the proposal count at the time of creation was below threshold N)." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 680 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 86 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "type": 248 + }, + "events": { + "type": 60 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "errors": { + "type": 681 + }, + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 682 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 139 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "CostOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 80 + } + }, + "fallback": "0x00", + "docs": [ + " Consideration cost created for publishing and storing a proposal.", + "", + " Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if", + " the proposal count at the time of creation was below threshold N)." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 680 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 86 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "type": 249 + }, + "events": { + "type": 61 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "errors": { + "type": 683 + }, + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 684 + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": 684 + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": 63 + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 686 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ] + } + ] + }, + "calls": { + "type": 250 + }, + "events": { + "type": 62 + }, + "constants": [ + { + "name": "PalletId", + "type": 285, + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ] + }, + { + "name": "CandidacyBond", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ] + }, + { + "name": "VotingBondBase", + "type": 6, + "value": "0x00f0436de36a01000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ] + }, + { + "name": "VotingBondFactor", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ] + }, + { + "name": "DesiredMembers", + "type": 4, + "value": "0x0d000000", + "docs": [ + " Number of members to elect." + ] + }, + { + "name": "DesiredRunnersUp", + "type": 4, + "value": "0x07000000", + "docs": [ + " Number of runners_up to keep." + ] + }, + { + "name": "TermDuration", + "type": 4, + "value": "0x80130300", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ] + }, + { + "name": "MaxCandidates", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of candidates in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When this limit is reached no more candidates are accepted in the election." + ] + }, + { + "name": "MaxVoters", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of voters to allow in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When the limit is reached the new voters are ignored." + ] + }, + { + "name": "MaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum numbers of votes per voter.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`." + ] + } + ], + "errors": { + "type": 687 + }, + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 688 + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ] + } + ] + }, + "calls": { + "type": 252 + }, + "events": { + "type": 65 + }, + "constants": [], + "errors": { + "type": 689 + }, + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 690 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 691 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 91 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 692 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ] + } + ] + }, + "calls": { + "type": 253 + }, + "events": { + "type": 66 + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xc00f000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 693 + }, + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 694 + } + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 695 + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 696 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + }, + { + "name": "LastSpendPeriod", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The blocknumber for the last triggered spend period." + ] + } + ] + }, + "calls": { + "type": 264 + }, + "events": { + "type": 70 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 514, + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 698, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 699 + }, + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 40, + "value": 72 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 265 + }, + "events": { + "type": 71 + }, + "constants": [], + "errors": { + "type": 700 + }, + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 701 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code." + ] + }, + { + "name": "CodeInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 702 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code info." + ] + }, + { + "name": "Nonce", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " This is a **monotonic** counter incremented on contract instantiation.", + "", + " This is used in order to generate unique trie ids for contracts.", + " The trie id of a new contract is calculated from hash(account_id, nonce).", + " The nonce is required because otherwise the following sequence would lead to", + " a possible collision of storage:", + "", + " 1. Create a new contract.", + " 2. Terminate the contract.", + " 3. Immediately recreate the contract with the same account_id.", + "", + " This is bad because the contents of a trie are deleted lazily and there might be", + " storage of the old instantiation still in it when the new contract is created. Please", + " note that we can't replace the counter by the block number because the sequence above", + " can happen in the same block. We also can't keep the account counter in memory only", + " because storage is the only way to communicate across different extrinsics in the", + " same block.", + "", + " # Note", + "", + " Do not use it to determine the number of contracts. It won't be decremented if", + " a contract is destroyed." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 703 + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 111 + } + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_idle`." + ] + }, + { + "name": "DeletionQueueCounter", + "modifier": "Default", + "type": { + "plain": 708 + }, + "fallback": "0x0000000000000000", + "docs": [ + " A pair of monotonic counters used to track the latest contract marked for deletion", + " and the latest deleted contract in queue." + ] + }, + { + "name": "MigrationInProgress", + "modifier": "Optional", + "type": { + "plain": 709 + }, + "fallback": "0x00", + "docs": [ + " A migration can span across multiple blocks. This storage defines a cursor to track the", + " progress of the migration, enabling us to resume from the last completed position." + ] + } + ] + }, + "calls": { + "type": 266 + }, + "events": { + "type": 73 + }, + "constants": [ + { + "name": "Schedule", + "type": 710, + "value": "0x04000000100000002000000000400000000000080000002060ea000000000000eb040000", + "docs": [ + " Cost schedule and limits." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "DefaultDepositLimit", + "type": 6, + "value": "0x0000c0afbc4f86570000000000000000", + "docs": [ + " Fallback value to limit the storage deposit if it's not being set by the caller." + ] + }, + { + "name": "DepositPerItem", + "type": 6, + "value": "0x00f0ab75a40d00000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ] + }, + { + "name": "CodeHashLockupDepositPercent", + "type": 49, + "value": "0x00a3e111", + "docs": [ + " The percentage of the storage deposit that should be held for using a code hash.", + " Instantiating a contract, or calling [`chain_extension::Ext::lock_delegate_dependency`]", + " protects the code from being removed. In order to prevent abuse these actions are", + " protected with a percentage of the code deposit." + ] + }, + { + "name": "MaxCodeLen", + "type": 4, + "value": "0x00ec0100", + "docs": [ + " The maximum length of a contract code in bytes.", + "", + " The value should be chosen carefully taking into the account the overall memory limit", + " your runtime has, as well as the [maximum allowed callstack", + " depth](#associatedtype.CallStack). Look into the `integrity_test()` for some insights." + ] + }, + { + "name": "MaxStorageKeyLen", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum allowable length in bytes for storage keys." + ] + }, + { + "name": "MaxTransientStorageSize", + "type": 4, + "value": "0x00001000", + "docs": [ + " The maximum size of the transient storage in bytes.", + " This includes keys, values, and previous entries used for storage rollback." + ] + }, + { + "name": "MaxDelegateDependencies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of delegate_dependencies that a contract can lock with", + " [`chain_extension::Ext::lock_delegate_dependency`]." + ] + }, + { + "name": "UnsafeUnstableInterface", + "type": 8, + "value": "0x00", + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ] + }, + { + "name": "MaxDebugBufferLen", + "type": 4, + "value": "0x00002000", + "docs": [ + " The maximum length of the debug buffer in bytes." + ] + }, + { + "name": "Environment", + "type": 713, + "value": "0x", + "docs": [ + " Type that bundles together all the runtime configurable interface types.", + "", + " This is not a real config. We just mention the type here as constant so that", + " its type appears in the metadata. Only valid value is `()`." + ] + }, + { + "name": "ApiVersion", + "type": 720, + "value": "0x0400", + "docs": [ + " The version of the HostFn APIs that are available in the runtime.", + "", + " Only valid value is `()`." + ] + } + ], + "errors": { + "type": 721 + }, + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": { + "type": 269 + }, + "events": { + "type": 76 + }, + "constants": [], + "errors": { + "type": 722 + }, + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 723 + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 91, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": { + "type": 270 + }, + "events": { + "type": 77 + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 12, + "value": "0xffffffffffffffff", + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ] + } + ], + "errors": { + "type": 725 + }, + "index": 23, + "docs": [] + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 726 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 726 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 24, + "docs": [] + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 728 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 729, + "value": 325 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + } + ] + }, + "calls": null, + "events": { + "type": 81 + }, + "constants": [], + "errors": null, + "index": 25, + "docs": [] + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 730 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ] + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 91 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 26, + "docs": [] + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": 731 + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 27, + "docs": [] + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 732 + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account. First item is the", + " registration, second is the account's primary username.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "UsernameOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 84 + } + }, + "fallback": "0x00", + "docs": [ + " Identifies the primary username of an account." + ] + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 310 + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ] + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 736 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ] + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": 738 + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ] + }, + { + "name": "AuthorityOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 742, + "value": 743 + } + }, + "fallback": "0x00", + "docs": [ + " A map of the accounts who are authorized to grant usernames." + ] + }, + { + "name": "UsernameInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 84, + "value": 744 + } + }, + "fallback": "0x00", + "docs": [ + " Reverse lookup from `username` to the `AccountId` that has registered it and the provider of", + " the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if", + " the user has cleared their username or it has been removed.", + "", + " Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one", + " primary username." + ] + }, + { + "name": "PendingUsernames", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 84, + "value": 746 + } + }, + "fallback": "0x00", + "docs": [ + " Usernames that an authority has granted, but that the account controller has not confirmed", + " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature", + " because they are a pure proxy, multisig, etc. In order to confirm it, they should call", + " [accept_username](`Call::accept_username`).", + "", + " First tuple item is the account and second is the acceptance deadline." + ] + }, + { + "name": "UnbindingUsernames", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 84, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Usernames for which the authority that granted them has started the removal process by", + " unbinding them. Each unbinding username maps to its grace period expiry, which is the first", + " block in which the username could be deleted through a", + " [remove_username](`Call::remove_username`) call." + ] + } + ] + }, + "calls": { + "type": 273 + }, + "events": { + "type": 83 + }, + "constants": [ + { + "name": "BasicDeposit", + "type": 6, + "value": "0x0050702f696a00000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity." + ] + }, + { + "name": "ByteDeposit", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount held on deposit per encoded byte for a registered identity." + ] + }, + { + "name": "UsernameDeposit", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount held on deposit per registered username. This value should change only in", + " runtime upgrades with proper migration of existing deposits." + ] + }, + { + "name": "SubAccountDeposit", + "type": 6, + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ] + }, + { + "name": "MaxSubAccounts", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ] + }, + { + "name": "MaxRegistrars", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ] + }, + { + "name": "PendingUsernameExpiration", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks within which a username grant must be accepted." + ] + }, + { + "name": "UsernameGracePeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The number of blocks that must pass to enable the permanent deletion of a username by", + " its respective authority." + ] + }, + { + "name": "MaxSuffixLength", + "type": 4, + "value": "0x07000000", + "docs": [ + " The maximum length of a suffix." + ] + }, + { + "name": "MaxUsernameLength", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of a username, including its suffix and any system-added delimiters." + ] + } + ], + "errors": { + "type": 747 + }, + "index": 28, + "docs": [] + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " The max number of members for the society at one time." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved rank 0 members in the society." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": 13 + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 748 + } + }, + "fallback": "0x00", + "docs": [ + " The current members and their rank. Doesn't include `SuspendedMembers`." + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 751 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Information regarding rank-0 payouts, past and future." + ] + }, + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" + ] + }, + { + "name": "MemberByIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The current items in `Members` keyed by their unique index. Keys are densely populated", + " `0..MemberCount` (does not include `MemberCount`)." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 748 + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members, with their old membership record." + ] + }, + { + "name": "RoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of rounds which have passed." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": 755 + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Candidates", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 759 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Skeptic", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current skeptic." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 761, + "value": 762 + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "VoteClearCursor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 763 + } + }, + "fallback": "0x00", + "docs": [ + " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." + ] + }, + { + "name": "NextHead", + "modifier": "Optional", + "type": { + "plain": 764 + }, + "fallback": "0x00", + "docs": [ + " At the end of the claim period, this contains the most recently approved members (along with", + " their bid and round ID) who is from the most recent round with the lowest bid. They will", + " become the new `Head`." + ] + }, + { + "name": "ChallengeRoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of challenge rounds there have been. Used to identify stale DefenderVotes." + ] + }, + { + "name": "Defending", + "modifier": "Optional", + "type": { + "plain": 765 + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged, along with a running tally of votes." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 635, + "value": 762 + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender, keyed by challenge round." + ] + } + ] + }, + "calls": { + "type": 315 + }, + "events": { + "type": 85 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f736f636965", + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "GraceStrikes", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of strikes before a member gets funds slashed." + ] + }, + { + "name": "PeriodSpend", + "type": 6, + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x00770100", + "docs": [ + " The number of blocks on which new candidates should be voted on. Together with", + " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." + ] + }, + { + "name": "ClaimPeriod", + "type": 4, + "value": "0x00770100", + "docs": [ + " The number of blocks on which new candidates can claim their membership and be the", + " named head." + ] + }, + { + "name": "MaxLockDuration", + "type": 4, + "value": "0x009cda01", + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ] + }, + { + "name": "MaxPayouts", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of payouts a member may have waiting unclaimed." + ] + }, + { + "name": "MaxBids", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of bids at once." + ] + } + ], + "errors": { + "type": 766 + }, + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 767 + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 761, + "value": 769 + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "type": 316 + }, + "events": { + "type": 88 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": 6, + "value": "0x00203d88792d00000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": 4, + "value": "0x09000000", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ] + }, + { + "name": "RecoveryDeposit", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": { + "type": 770 + }, + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 771 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 773 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 317 + }, + "events": { + "type": 89 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 774 + }, + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number at which the agenda began incomplete execution." + ] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 775 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 91, + "value": 779 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 91 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 319 + }, + "events": { + "type": 90 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 780 + }, + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "storage": { + "prefix": "Glutton", + "items": [ + { + "name": "Compute", + "modifier": "Default", + "type": { + "plain": 94 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the remaining `ref_time` to consume during `on_idle`.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ] + }, + { + "name": "Storage", + "modifier": "Default", + "type": { + "plain": 94 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the remaining `proof_size` to consume during `on_idle`.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ] + }, + { + "name": "Length", + "modifier": "Default", + "type": { + "plain": 94 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the `block length` to consume on each block.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ] + }, + { + "name": "TrashData", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 323 + } + }, + "fallback": "0x00", + "docs": [ + " Storage map used for wasting proof size.", + "", + " It contains no meaningful data - hence the name \"Trash\". The maximal number of entries is", + " set to 65k, which is just below the next jump at 16^4. This is important to reduce the proof", + " size benchmarking overestimate. The assumption here is that we won't have more than 65k *", + " 1KiB = 65MiB of proof size wasting in practice. However, this limit is not enforced, so the", + " pallet would also work out of the box with more entries, but its benchmarked proof weight", + " would possibly be underestimated in that case." + ] + }, + { + "name": "TrashDataCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current number of entries in `TrashData`." + ] + } + ] + }, + "calls": { + "type": 321 + }, + "events": { + "type": 93 + }, + "constants": [], + "errors": { + "type": 781 + }, + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 782 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 784 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 730, + "value": 788 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 324 + }, + "events": { + "type": 95 + }, + "constants": [], + "errors": { + "type": 789 + }, + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 790 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 794 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 326 + }, + "events": { + "type": 96 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0x0060aa7714b400000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x00c054ef286801000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 798 + }, + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 799, + "value": 800 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 328 + }, + "events": { + "type": 100 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0x00f01c0adbed01000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 801 + }, + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 802 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 804 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 695 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 330 + }, + "events": { + "type": 102 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x80700000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00270600", + "docs": [ + " The time limit for a curator to act before a bounty expires.", + "", + " The period that starts when a curator is approved, during which they must execute or", + " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the", + " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,", + " removing the need for `extend_bounty_expiry`." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 514, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 234, + "value": "0x010000c16ff28623000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 234, + "value": "0x0100407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 805 + }, + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 806 + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ] + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ] + } + ] + }, + "calls": { + "type": 331 + }, + "events": { + "type": 103 + }, + "constants": [ + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "TipCountdown", + "type": 4, + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ] + }, + { + "name": "TipFindersFee", + "type": 228, + "value": "0x14", + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ] + }, + { + "name": "TipReportDepositBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The non-zero amount held on deposit for placing a tip report." + ] + }, + { + "name": "MaxTipAmount", + "type": 6, + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The maximum amount for a single tip." + ] + } + ], + "errors": { + "type": 807 + }, + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 808 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 635, + "value": 810 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 813, + "value": 814 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 815 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 332 + }, + "events": { + "type": 104 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 817 + }, + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "storage": { + "prefix": "PoolAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 808 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 635, + "value": 810 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ] + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 813, + "value": 814 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 815 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ] + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ] + } + ] + }, + "calls": { + "type": 333 + }, + "events": { + "type": 105 + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ] + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ] + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ] + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ] + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 818 + }, + "index": 40, + "docs": [] + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 819 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ] + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 819 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ] + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 50 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ] + } + ] + }, + "calls": { + "type": 334 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of authorities that can be added." + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xc00f000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 821 + }, + "index": 41, + "docs": [] + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 42, + "docs": [] + }, + { + "name": "MmrLeaf", + "storage": { + "prefix": "MmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 822 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ] + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 822 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 43, + "docs": [] + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "items": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [] + }, + { + "name": "Lottery", + "modifier": "Optional", + "type": { + "plain": 823 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current lottery." + ] + }, + { + "name": "Participants", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 824 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ] + }, + { + "name": "TicketsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Total number of tickets sold." + ] + }, + { + "name": "Tickets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ] + }, + { + "name": "CallIndices", + "modifier": "Default", + "type": { + "plain": 825 + }, + "fallback": "0x00", + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ] + } + ] + }, + "calls": { + "type": 347 + }, + "events": { + "type": 106 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f6c6f74746f", + "docs": [ + " The Lottery's pallet id" + ] + }, + { + "name": "MaxCalls", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of calls available in a single lottery." + ] + }, + { + "name": "MaxGenerateRandom", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Number of time we should try to generate a random number that has no modulo bias.", + " The larger this number, the more potential computation is used for picking the winner,", + " but also the more likely that the chosen winner is done fairly." + ] + } + ], + "errors": { + "type": 827 + }, + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "storage": { + "prefix": "Nis", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": 828 + }, + "fallback": "0xb104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ] + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 829 + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids. Indexed by duration (in `Period`s)." + ] + }, + { + "name": "Summary", + "modifier": "Default", + "type": { + "plain": 832 + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Summary information over the general state." + ] + }, + { + "name": "Receipts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 833 + } + }, + "fallback": "0x00", + "docs": [ + " The currently outstanding receipts, indexed according to the order of creation." + ] + } + ] + }, + "calls": { + "type": 348 + }, + "events": { + "type": 108 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f6e69732020", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "QueueCount", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ] + }, + { + "name": "MaxQueueLen", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue.", + "", + " Must be larger than zero." + ] + }, + { + "name": "FifoQueueLen", + "type": 4, + "value": "0xf4010000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ] + }, + { + "name": "BasePeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ] + }, + { + "name": "MinBid", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount of funds that may be placed in a bid. Note that this", + " does not actually limit the amount which may be represented in a receipt since bids may", + " be split up by the system.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ] + }, + { + "name": "MinReceipt", + "type": 109, + "value": "0x0000c16ff2862300", + "docs": [ + " The minimum amount of funds which may intentionally be left remaining under a single", + " receipt." + ] + }, + { + "name": "IntakePeriod", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The number of blocks between consecutive attempts to dequeue bids and create receipts.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ] + }, + { + "name": "MaxIntakeWeight", + "type": 10, + "value": "0x0700d0ed902e139999999999999919", + "docs": [ + " The maximum amount of bids that can consolidated into receipts in a single intake. A", + " larger value here means less of the block available for transactions should there be a", + " glut of bids." + ] + }, + { + "name": "ThawThrottle", + "type": 834, + "value": "0x0000d9e9ac2d780305000000", + "docs": [ + " The maximum proportion which may be thawed and the period over which it is reset." + ] + } + ], + "errors": { + "type": 835 + }, + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "items": [ + { + "name": "Class", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 836 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 837, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "ClassAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 645, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 838 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 839 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 840 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 841, + "value": 842 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 843 + } + }, + "fallback": "0x00", + "docs": [ + " Price of an asset instance." + ] + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the number of items a collection might have." + ] + } + ] + }, + "calls": { + "type": 350 + }, + "events": { + "type": 110 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute value." + ] + } + ], + "errors": { + "type": 844 + }, + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "items": [ + { + "name": "Collection", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 845 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ] + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ] + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 837, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ] + }, + { + "name": "CollectionAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 645, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ] + }, + { + "name": "CollectionRoleOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 635, + "value": 846 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ] + }, + { + "name": "Item", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 848 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ] + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 854 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ] + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 855 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ] + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 857, + "value": 858 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ] + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 843 + } + }, + "fallback": "0x00", + "docs": [ + " A price of an item." + ] + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 860 + } + }, + "fallback": "0x00", + "docs": [ + " Item attribute approvals." + ] + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `CollectionId` that is going to be used for the next collection.", + " This gets incremented whenever a new collection is created." + ] + }, + { + "name": "PendingSwapOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 862 + } + }, + "fallback": "0x00", + "docs": [ + " Handles all the pending swaps." + ] + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 354 + } + }, + "fallback": "0x00", + "docs": [ + " Config of a collection." + ] + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 91, + "value": 364 + } + }, + "fallback": "0x00", + "docs": [ + " Config of an item." + ] + } + ] + }, + "calls": { + "type": 353 + }, + "events": { + "type": 114 + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ] + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ] + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ] + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ] + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of data stored on-chain." + ] + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute key." + ] + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of an attribute value." + ] + }, + { + "name": "ApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum approvals an item could have." + ] + }, + { + "name": "ItemAttributesApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum attributes approvals an item could have." + ] + }, + { + "name": "MaxTips", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of tips a user could send." + ] + }, + { + "name": "MaxDeadlineDuration", + "type": 4, + "value": "0x00349e00", + "docs": [ + " The max duration in blocks for deadlines." + ] + }, + { + "name": "MaxAttributesPerCall", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of attributes a user could set per call." + ] + }, + { + "name": "Features", + "type": 863, + "value": "0x0000000000000000", + "docs": [ + " Disables some of pallet's features." + ] + } + ], + "errors": { + "type": 865 + }, + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "storage": { + "prefix": "NftFractionalization", + "items": [ + { + "name": "NftToAsset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 91, + "value": 866 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the corresponding NFT ID, asset ID and amount minted." + ] + } + ] + }, + "calls": { + "type": 371 + }, + "events": { + "type": 121 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The deposit paid by the user locking an NFT. The deposit is returned to the original NFT", + " owner when the asset is unified and the NFT is unlocked." + ] + }, + { + "name": "PalletId", + "type": 698, + "value": "0x6672616374696f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + }, + { + "name": "NewAssetSymbol", + "type": 816, + "value": "0x1046524143", + "docs": [ + " The newly created asset's symbol." + ] + }, + { + "name": "NewAssetName", + "type": 816, + "value": "0x1046726163", + "docs": [ + " The newly created asset's name." + ] + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ] + } + ], + "errors": { + "type": 867 + }, + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "storage": { + "prefix": "Salary", + "items": [ + { + "name": "Status", + "modifier": "Optional", + "type": { + "plain": 868 + }, + "fallback": "0x00", + "docs": [ + " The overall status of the system." + ] + }, + { + "name": "Claimant", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 869 + } + }, + "fallback": "0x00", + "docs": [ + " The status of a claimant." + ] + } + ] + }, + "calls": { + "type": 372 + }, + "events": { + "type": 122 + }, + "constants": [ + { + "name": "RegistrationPeriod", + "type": 4, + "value": "0xc8000000", + "docs": [ + " The number of blocks within a cycle which accounts have to register their intent to", + " claim.", + "", + " The number of blocks between sequential payout cycles is the sum of this and", + " `PayoutPeriod`." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0xc8000000", + "docs": [ + " The number of blocks within a cycle which accounts have to claim the payout.", + "", + " The number of blocks between sequential payout cycles is the sum of this and", + " `RegistrationPeriod`." + ] + }, + { + "name": "Budget", + "type": 6, + "value": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The total budget per cycle.", + "", + " This may change over the course of a cycle without any problem." + ] + } + ], + "errors": { + "type": 871 + }, + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "storage": { + "prefix": "CoreFellowship", + "items": [ + { + "name": "Params", + "modifier": "Default", + "type": { + "plain": 124 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The overall status of the system." + ] + }, + { + "name": "Member", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 872 + } + }, + "fallback": "0x00", + "docs": [ + " The status of a claimant." + ] + }, + { + "name": "MemberEvidence", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 873 + } + }, + "fallback": "0x00", + "docs": [ + " Some evidence together with the desired outcome for which it was presented." + ] + } + ] + }, + "calls": { + "type": 373 + }, + "events": { + "type": 123 + }, + "constants": [ + { + "name": "EvidenceSize", + "type": 4, + "value": "0x00400000", + "docs": [ + " The maximum size in bytes submitted evidence is allowed to be." + ] + }, + { + "name": "MaxRank", + "type": 4, + "value": "0x09000000", + "docs": [ + " Represents the highest possible rank in this pallet.", + "", + " Increasing this value is supported, but decreasing it may lead to a broken state." + ] + } + ], + "errors": { + "type": 874 + }, + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "storage": { + "prefix": "TransactionStorage", + "items": [ + { + "name": "Transactions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 875 + } + }, + "fallback": "0x00", + "docs": [ + " Collection of transaction metadata by block number." + ] + }, + { + "name": "ChunkCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Count indexed chunks for each block." + ] + }, + { + "name": "ByteFee", + "modifier": "Optional", + "type": { + "plain": 6 + }, + "fallback": "0x00", + "docs": [ + " Storage fee per byte." + ] + }, + { + "name": "EntryFee", + "modifier": "Optional", + "type": { + "plain": 6 + }, + "fallback": "0x00", + "docs": [ + " Storage fee per transaction." + ] + }, + { + "name": "StoragePeriod", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", + " for block authoring." + ] + }, + { + "name": "BlockTransactions", + "modifier": "Default", + "type": { + "plain": 875 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "ProofChecked", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Was the proof checked in this block?" + ] + } + ] + }, + "calls": { + "type": 379 + }, + "events": { + "type": 131 + }, + "constants": [], + "errors": { + "type": 878 + }, + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 879 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 880 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + } + ] + }, + "calls": { + "type": 381 + }, + "events": { + "type": 132 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 881, + "value": "0x210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + } + ], + "errors": { + "type": 882 + }, + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 385 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 383 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 384 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "type": 382 + }, + "events": { + "type": 133 + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "errors": { + "type": 135 + }, + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts", + " for each parent bounty. Number of total child bounties. Will be removed in May 2025." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of active child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ParentTotalChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties per parent bounty, including completed bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 91, + "value": 884 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptionsV1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 91, + "value": 804 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty. Indexed by `(parent_id, child_id)`.", + "", + " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version." + ] + }, + { + "name": "V0ToV1ChildBountyIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 91 + } + }, + "fallback": "0x00", + "docs": [ + " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.", + "", + " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids", + " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].", + " The item intended solely for client convenience and not used in the pallet's core logic." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 388 + }, + "events": { + "type": 136 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 886 + }, + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 887 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 98, + "value": 895 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 98, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 389 + }, + "events": { + "type": 137 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 896, + "value": "0x04000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 899 + }, + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "storage": null, + "calls": { + "type": 391 + }, + "events": { + "type": 496 + }, + "constants": [], + "errors": { + "type": 900 + }, + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "storage": null, + "calls": { + "type": 392 + }, + "events": { + "type": 497 + }, + "constants": [], + "errors": null, + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 901, + "value": 902 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 910 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 393 + }, + "events": { + "type": 498 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 913 + }, + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 397 + }, + "events": { + "type": 499 + }, + "constants": [], + "errors": { + "type": 914 + }, + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "storage": { + "prefix": "AllianceMotion", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 915 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 139 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "CostOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 80 + } + }, + "fallback": "0x00", + "docs": [ + " Consideration cost created for publishing and storing a proposal.", + "", + " Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if", + " the proposal count at the time of creation was below threshold N)." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 680 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 86 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ] + } + ] + }, + "calls": { + "type": 398 + }, + "events": { + "type": 504 + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ] + } + ], + "errors": { + "type": 916 + }, + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "storage": { + "prefix": "Alliance", + "items": [ + { + "name": "Rule", + "modifier": "Optional", + "type": { + "plain": 401 + }, + "fallback": "0x00", + "docs": [ + " The IPFS CID of the alliance rule.", + " Fellows can propose a new rule with a super-majority." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "plain": 917 + }, + "fallback": "0x00", + "docs": [ + " The current IPFS CIDs of any announcements." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Maps members to their candidacy deposit." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 919, + "value": 920 + } + }, + "fallback": "0x00", + "docs": [ + " Maps member type to members of each type." + ] + }, + { + "name": "RetiringMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A set of members who gave a retirement notice. They can retire after the end of retirement", + " period stored as a future block number." + ] + }, + { + "name": "UnscrupulousAccounts", + "modifier": "Default", + "type": { + "plain": 664 + }, + "fallback": "0x00", + "docs": [ + " The current list of accounts deemed unscrupulous. These accounts non grata cannot submit", + " candidacy." + ] + }, + { + "name": "UnscrupulousWebsites", + "modifier": "Default", + "type": { + "plain": 921 + }, + "fallback": "0x00", + "docs": [ + " The current list of websites deemed unscrupulous." + ] + } + ] + }, + "calls": { + "type": 399 + }, + "events": { + "type": 505 + }, + "constants": [ + { + "name": "MaxUnscrupulousItems", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of the unscrupulous items supported by the pallet." + ] + }, + { + "name": "MaxWebsiteUrlLength", + "type": 4, + "value": "0xff000000", + "docs": [ + " The maximum length of a website URL." + ] + }, + { + "name": "AllyDeposit", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The deposit required for submitting candidacy." + ] + }, + { + "name": "MaxAnnouncementsCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of announcements." + ] + }, + { + "name": "MaxMembersCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of members per member role." + ] + } + ], + "errors": { + "type": 923 + }, + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 49 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 924 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 927 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 931 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 932 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 115 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 415 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 408 + }, + "events": { + "type": 506 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 938 + }, + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "storage": { + "prefix": "RankedPolls", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 940 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 98, + "value": 942 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 98, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 421 + }, + "events": { + "type": 508 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 896, + "value": "0x04000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 943 + }, + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "storage": { + "prefix": "RankedCollective", + "items": [ + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 98, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 944 + } + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective." + ] + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 945, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ] + }, + { + "name": "IndexToId", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 946, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 635, + "value": 511 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 947 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 422 + }, + "events": { + "type": 510 + }, + "constants": [], + "errors": { + "type": 948 + }, + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "storage": { + "prefix": "AssetConversion", + "items": [ + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 513, + "value": 949 + } + }, + "fallback": "0x00", + "docs": [ + " Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially", + " created rather than people sending tokens directly to a pool's public account." + ] + }, + { + "name": "NextPoolAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `PoolAssetId` that is going to be used for the next lp token.", + " This gets incremented whenever a new lp pool is created." + ] + } + ] + }, + "calls": { + "type": 423 + }, + "events": { + "type": 512 + }, + "constants": [ + { + "name": "LPFee", + "type": 4, + "value": "0x03000000", + "docs": [ + " A % the liquidity providers will take of every swap. Represents 10ths of a percent." + ] + }, + { + "name": "PoolSetupFee", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " A one-time fee to setup the pool." + ] + }, + { + "name": "PoolSetupFeeAsset", + "type": 40, + "value": "0x00", + "docs": [ + " Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]." + ] + }, + { + "name": "LiquidityWithdrawalFee", + "type": 514, + "value": "0x00000000", + "docs": [ + " A fee to withdraw the liquidity." + ] + }, + { + "name": "MintMinLiquidity", + "type": 6, + "value": "0x64000000000000000000000000000000", + "docs": [ + " The minimum LP token amount that could be minted. Ameliorates rounding errors." + ] + }, + { + "name": "MaxSwapPathLength", + "type": 4, + "value": "0x04000000", + "docs": [ + " The max number of hops in a swap." + ] + }, + { + "name": "PalletId", + "type": 698, + "value": "0x70792f6173636f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ] + } + ], + "errors": { + "type": 950 + }, + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 951 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ] + } + ] + }, + "calls": { + "type": 425 + }, + "events": { + "type": 517 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "errors": { + "type": 954 + }, + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 955 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 91, + "value": 958 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 426 + }, + "events": { + "type": 518 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 502, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 502, + "value": "0x00", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 960 + }, + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "storage": { + "prefix": "Pov", + "items": [ + { + "name": "Value", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Value2", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedValue", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " A value without a MEL bound." + ] + }, + { + "name": "BoundedValue", + "modifier": "Optional", + "type": { + "plain": 84 + }, + "fallback": "0x00", + "docs": [ + " A value with a MEL bound of 32 byte." + ] + }, + { + "name": "LargeValue", + "modifier": "Optional", + "type": { + "plain": 788 + }, + "fallback": "0x00", + "docs": [ + " 4MiB value." + ] + }, + { + "name": "LargeValue2", + "modifier": "Optional", + "type": { + "plain": 788 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Map1M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A map with a maximum of 1M entries." + ] + }, + { + "name": "Map16M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A map with a maximum of 16M entries." + ] + }, + { + "name": "DoubleMap1M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256", + "Blake2_256" + ], + "key": 91, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 112 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedMap2", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 112 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "UnboundedMapTwox", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 112 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 427 + }, + "events": { + "type": 520 + }, + "constants": [], + "errors": null, + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "storage": { + "prefix": "TxPause", + "items": [ + { + "name": "PausedCalls", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 429, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The set of calls that are explicitly paused." + ] + } + ] + }, + "calls": { + "type": 428 + }, + "events": { + "type": 521 + }, + "constants": [ + { + "name": "MaxNameLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " Maximum length for pallet name and call name SCALE encoded string names.", + "", + " TOO LONG NAMES WILL BE TREATED AS PAUSED." + ] + } + ], + "errors": { + "type": 961 + }, + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "storage": { + "prefix": "SafeMode", + "items": [ + { + "name": "EnteredUntil", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Contains the last block number that the safe-mode will remain entered in.", + "", + " Set to `None` when safe-mode is exited.", + "", + " Safe-mode is automatically exited when the current block number exceeds this value." + ] + }, + { + "name": "Deposits", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 645, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Holds the reserve that was taken from an account at a specific block number.", + "", + " This helps governance to have an overview of outstanding deposits that should be returned or", + " slashed." + ] + } + ] + }, + "calls": { + "type": 430 + }, + "events": { + "type": 522 + }, + "constants": [ + { + "name": "EnterDuration", + "type": 4, + "value": "0xc0120000", + "docs": [ + " For how many blocks the safe-mode will be entered by [`Pallet::enter`]." + ] + }, + { + "name": "ExtendDuration", + "type": 4, + "value": "0x60090000", + "docs": [ + " For how many blocks the safe-mode can be extended by each [`Pallet::extend`] call.", + "", + " This does not impose a hard limit as the safe-mode can be extended multiple times." + ] + }, + { + "name": "EnterDepositAmount", + "type": 234, + "value": "0x01000020c65abc8ed70a00000000000000", + "docs": [ + " The amount that will be reserved upon calling [`Pallet::enter`].", + "", + " `None` disallows permissionlessly enabling the safe-mode and is a sane default." + ] + }, + { + "name": "ExtendDepositAmount", + "type": 234, + "value": "0x01000010632d5ec76b0500000000000000", + "docs": [ + " The amount that will be reserved upon calling [`Pallet::extend`].", + "", + " `None` disallows permissionlessly extending the safe-mode and is a sane default." + ] + }, + { + "name": "ReleaseDelay", + "type": 50, + "value": "0x0100e10000", + "docs": [ + " The minimal duration a deposit will remain reserved after safe-mode is entered or", + " extended, unless [`Pallet::force_release_deposit`] is successfully called sooner.", + "", + " Every deposit is tied to a specific activation or extension, thus each deposit can be", + " released independently after the delay for it has passed.", + "", + " `None` disallows permissionlessly releasing the safe-mode deposits and is a sane", + " default." + ] + } + ], + "errors": { + "type": 962 + }, + "index": 70, + "docs": [] + }, + { + "name": "Statement", + "storage": null, + "calls": null, + "events": { + "type": 524 + }, + "constants": [ + { + "name": "StatementCost", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Min balance for priority statements." + ] + }, + { + "name": "ByteCost", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Cost of data byte used for priority calculation." + ] + }, + { + "name": "MinAllowedStatements", + "type": 4, + "value": "0x04000000", + "docs": [ + " Minimum number of statements allowed per account." + ] + }, + { + "name": "MaxAllowedStatements", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Maximum number of statements allowed per account." + ] + }, + { + "name": "MinAllowedBytes", + "type": 4, + "value": "0x00040000", + "docs": [ + " Minimum data bytes allowed per account." + ] + }, + { + "name": "MaxAllowedBytes", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum data bytes allowed per account." + ] + } + ], + "errors": null, + "index": 71, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "storage": { + "prefix": "MultiBlockMigrations", + "items": [ + { + "name": "Cursor", + "modifier": "Optional", + "type": { + "plain": 433 + }, + "fallback": "0x00", + "docs": [ + " The currently active migration to run and its cursor.", + "", + " `None` indicates that no migration is running." + ] + }, + { + "name": "Historic", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 115, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " Set of all successfully executed migrations.", + "", + " This is used as blacklist, to not re-execute migrations that have not been removed from the", + " codebase yet. Governance can regularly clear this out via `clear_historic`." + ] + } + ] + }, + "calls": { + "type": 431 + }, + "events": { + "type": 529 + }, + "constants": [ + { + "name": "CursorMaxLen", + "type": 4, + "value": "0x00000100", + "docs": [ + " The maximal length of an encoded cursor.", + "", + " A good default needs to selected such that no migration will ever have a cursor with MEL", + " above this limit. This is statically checked in `integrity_test`." + ] + }, + { + "name": "IdentifierMaxLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximal length of an encoded identifier.", + "", + " A good default needs to selected such that no migration will ever have an identifier", + " with MEL above this limit. This is statically checked in `integrity_test`." + ] + } + ], + "errors": { + "type": 963 + }, + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "storage": { + "prefix": "Broker", + "items": [ + { + "name": "Configuration", + "modifier": "Optional", + "type": { + "plain": 441 + }, + "fallback": "0x00", + "docs": [ + " The current configuration of this pallet." + ] + }, + { + "name": "Reservations", + "modifier": "Default", + "type": { + "plain": 964 + }, + "fallback": "0x00", + "docs": [ + " The Pezkuwi Core reservations (generally tasked with the maintenance of System Chains)." + ] + }, + { + "name": "Leases", + "modifier": "Default", + "type": { + "plain": 966 + }, + "fallback": "0x00", + "docs": [ + " The Pezkuwi Core legacy leases." + ] + }, + { + "name": "Status", + "modifier": "Optional", + "type": { + "plain": 969 + }, + "fallback": "0x00", + "docs": [ + " The current status of miscellaneous subsystems of this pallet." + ] + }, + { + "name": "SaleInfo", + "modifier": "Optional", + "type": { + "plain": 970 + }, + "fallback": "0x00", + "docs": [ + " The details of the current sale, including its properties and status." + ] + }, + { + "name": "PotentialRenewals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 971, + "value": 972 + } + }, + "fallback": "0x00", + "docs": [ + " Records of potential renewals.", + "", + " Renewals will only actually be allowed if `CompletionStatus` is actually `Complete`." + ] + }, + { + "name": "Regions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 447, + "value": 974 + } + }, + "fallback": "0x00", + "docs": [ + " The current (unassigned or provisionally assigend) Regions." + ] + }, + { + "name": "Workplan", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 975, + "value": 442 + } + }, + "fallback": "0x00", + "docs": [ + " The work we plan on having each core do at a particular time in the future." + ] + }, + { + "name": "Workload", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 98, + "value": 442 + } + }, + "fallback": "0x00", + "docs": [ + " The current workload of each core. This gets updated with workplan as timeslices pass." + ] + }, + { + "name": "InstaPoolContribution", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 447, + "value": 976 + } + }, + "fallback": "0x00", + "docs": [ + " Record of a single contribution to the Instantaneous Coretime Pool." + ] + }, + { + "name": "InstaPoolIo", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 977 + } + }, + "fallback": "0x0000000000000000", + "docs": [ + " Record of Coretime entering or leaving the Instantaneous Coretime Pool." + ] + }, + { + "name": "InstaPoolHistory", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 979 + } + }, + "fallback": "0x00", + "docs": [ + " Total InstaPool rewards for each Timeslice and the number of core parts which contributed." + ] + }, + { + "name": "CoreCountInbox", + "modifier": "Optional", + "type": { + "plain": 98 + }, + "fallback": "0x00", + "docs": [ + " Received core count change from the relay chain." + ] + }, + { + "name": "AutoRenewals", + "modifier": "Default", + "type": { + "plain": 980 + }, + "fallback": "0x00", + "docs": [ + " Keeping track of cores which have auto-renewal enabled.", + "", + " Sorted by `CoreIndex` to make the removal of cores from auto-renewal more efficient." + ] + }, + { + "name": "RevenueInbox", + "modifier": "Optional", + "type": { + "plain": 449 + }, + "fallback": "0x00", + "docs": [ + " Received revenue info from the relay chain." + ] + } + ] + }, + "calls": { + "type": 440 + }, + "events": { + "type": 530 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f62726f6b65", + "docs": [ + " Identifier from which the internal Pot is generated." + ] + }, + { + "name": "TimeslicePeriod", + "type": 4, + "value": "0x02000000", + "docs": [ + " Number of Relay-chain blocks per timeslice." + ] + }, + { + "name": "MaxLeasedCores", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of legacy leases." + ] + }, + { + "name": "MaxReservedCores", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of system cores." + ] + }, + { + "name": "MaxAutoRenewals", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Given that we are performing all auto-renewals in a single block, it has to be limited." + ] + }, + { + "name": "MinimumCreditPurchase", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The smallest amount of credits a user can purchase.", + "", + " Needed to prevent spam attacks." + ] + } + ], + "errors": { + "type": 983 + }, + "index": 73, + "docs": [] + }, + { + "name": "TasksExample", + "storage": { + "prefix": "TasksExample", + "items": [ + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 91 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Some running total." + ] + }, + { + "name": "Numbers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Numbers to be added into the total." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": { + "type": 984 + }, + "index": 74, + "docs": [] + }, + { + "name": "Mixnet", + "storage": { + "prefix": "Mixnet", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Index of the current session. This may be offset relative to the session index tracked by", + " eg `pallet_session`; mixnet session indices are independent." + ] + }, + { + "name": "CurrentSessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Block in which the current session started." + ] + }, + { + "name": "NextAuthorityIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 242 + } + }, + "fallback": "0x00", + "docs": [ + " Authority list for the next session." + ] + }, + { + "name": "Mixnodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity", + "Identity" + ], + "key": 91, + "value": 452 + } + }, + "fallback": "0x00", + "docs": [ + " Mixnode sets by session index. Only the mixnode sets for the previous, current, and next", + " sessions are kept; older sets are discarded.", + "", + " The mixnodes in each set are keyed by authority index so we can easily check if an", + " authority has registered a mixnode. The authority indices should only be used during", + " registration; the authority indices for the very first session are made up." + ] + } + ] + }, + "calls": { + "type": 450 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of authorities per session." + ] + }, + { + "name": "MaxExternalAddressSize", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum size of one of a mixnode's external addresses." + ] + }, + { + "name": "MaxExternalAddressesPerMixnode", + "type": 4, + "value": "0x10000000", + "docs": [ + " The maximum number of external addresses for a mixnode." + ] + }, + { + "name": "NumCoverToCurrentBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the first phase of each session (`CoverToCurrent`), in blocks." + ] + }, + { + "name": "NumRequestsToCurrentBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the second phase of each session (`RequestsToCurrent`), in blocks." + ] + }, + { + "name": "NumCoverToPrevBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the third phase of each session (`CoverToPrev`), in blocks." + ] + }, + { + "name": "NumRegisterStartSlackBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " The number of \"slack\" blocks at the start of each session, during which", + " [`maybe_register`](Pallet::maybe_register) will not attempt to post registration", + " transactions." + ] + }, + { + "name": "NumRegisterEndSlackBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " The number of \"slack\" blocks at the end of each session.", + " [`maybe_register`](Pallet::maybe_register) will try to register before this slack", + " period, but may post registration transactions during the slack period as a last", + " resort." + ] + }, + { + "name": "RegistrationPriority", + "type": 12, + "value": "0xfeffffffffffffff", + "docs": [ + " Priority of unsigned transactions used to register mixnodes." + ] + }, + { + "name": "MinMixnodes", + "type": 4, + "value": "0x07000000", + "docs": [ + " Minimum number of mixnodes. If there are fewer than this many mixnodes registered for a", + " session, the mixnet will not be active during the session." + ] + } + ], + "errors": null, + "index": 75, + "docs": [] + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 536, + "value": 540 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ] + } + ] + }, + "calls": { + "type": 456 + }, + "events": { + "type": 535 + }, + "constants": [], + "errors": null, + "index": 76, + "docs": [] + }, + { + "name": "SkipFeelessPayment", + "storage": null, + "calls": null, + "events": { + "type": 543 + }, + "constants": [], + "errors": null, + "index": 77, + "docs": [] + }, + { + "name": "PalletExampleMbms", + "storage": { + "prefix": "PalletExampleMbms", + "items": [ + { + "name": "MyMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " Define a storage item to illustrate multi-block migrations." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 78, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "storage": null, + "calls": { + "type": 476 + }, + "events": { + "type": 544 + }, + "constants": [], + "errors": { + "type": 985 + }, + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "storage": { + "prefix": "Revive", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 986 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code." + ] + }, + { + "name": "CodeInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 987 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code info." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 478, + "value": 988 + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account." + ] + }, + { + "name": "ImmutableDataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 478, + "value": 989 + } + }, + "fallback": "0x00", + "docs": [ + " The immutable data associated with a given account." + ] + }, + { + "name": "DeletionQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 111 + } + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_idle`." + ] + }, + { + "name": "DeletionQueueCounter", + "modifier": "Default", + "type": { + "plain": 990 + }, + "fallback": "0x0000000000000000", + "docs": [ + " A pair of monotonic counters used to track the latest contract marked for deletion", + " and the latest deleted contract in queue." + ] + }, + { + "name": "OriginalAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 478, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map a Ethereum address to its original `AccountId32`.", + "", + " When deriving a `H160` from an `AccountId32` we use a hash function. In order to", + " reconstruct the original account we need to store the reverse mapping here.", + " Register your `AccountId32` using [`Pallet::map_account`] in order to", + " use it with this pallet." + ] + } + ] + }, + "calls": { + "type": 477 + }, + "events": { + "type": 545 + }, + "constants": [ + { + "name": "DepositPerByte", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " It is safe to change this value on a live chain as all refunds are pro rata." + ] + }, + { + "name": "DepositPerItem", + "type": 6, + "value": "0x00f0ab75a40d00000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " It is safe to change this value on a live chain as all refunds are pro rata." + ] + }, + { + "name": "CodeHashLockupDepositPercent", + "type": 49, + "value": "0x00a3e111", + "docs": [ + " The percentage of the storage deposit that should be held for using a code hash.", + " Instantiating a contract, protects the code from being removed. In order to prevent", + " abuse these actions are protected with a percentage of the code deposit." + ] + }, + { + "name": "UnsafeUnstableInterface", + "type": 8, + "value": "0x00", + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ] + }, + { + "name": "ChainId", + "type": 12, + "value": "0x441b0f1900000000", + "docs": [ + " The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID.", + "", + " This is a unique identifier assigned to each blockchain network,", + " preventing replay attacks." + ] + }, + { + "name": "NativeToEthRatio", + "type": 4, + "value": "0x40420f00", + "docs": [ + " The ratio between the decimal representation of the native token and the ETH token." + ] + } + ], + "errors": { + "type": 991 + }, + "index": 80, + "docs": [] + }, + { + "name": "VerifySignature", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 81, + "docs": [] + }, + { + "name": "DelegatedStaking", + "storage": { + "prefix": "DelegatedStaking", + "items": [ + { + "name": "Delegators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 992 + } + }, + "fallback": "0x00", + "docs": [ + " Map of Delegators to their `Delegation`.", + "", + " Implementation note: We are not using a double map with `delegator` and `agent` account", + " as keys since we want to restrict delegators to delegate only to one account at a time." + ] + }, + { + "name": "CounterForDelegators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Agents", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 993 + } + }, + "fallback": "0x00", + "docs": [ + " Map of `Agent` to their `Ledger`." + ] + }, + { + "name": "CounterForAgents", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + } + ] + }, + "calls": null, + "events": { + "type": 546 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f646c73746b", + "docs": [ + " Injected identifier for the pallet." + ] + }, + { + "name": "SlashRewardFraction", + "type": 49, + "value": "0x80969800", + "docs": [ + " Fraction of the slash that is rewarded to the caller of pending slash to the agent." + ] + } + ], + "errors": { + "type": 994 + }, + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "storage": { + "prefix": "AssetRewards", + "items": [ + { + "name": "PoolStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 635, + "value": 995 + } + }, + "fallback": "0x00", + "docs": [ + " State of pool stakers." + ] + }, + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 996 + } + }, + "fallback": "0x00", + "docs": [ + " State and configuration of each staking pool." + ] + }, + { + "name": "PoolCost", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 997 + } + }, + "fallback": "0x00", + "docs": [ + " The cost associated with storing pool information on-chain which was incurred by the pool", + " creator.", + "", + " This cost may be [`None`], as determined by [`Config::Consideration`]." + ] + }, + { + "name": "NextPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Stores the [`PoolId`] to use for the next pool.", + "", + " Incremented when a new pool is created." + ] + } + ] + }, + "calls": { + "type": 479 + }, + "events": { + "type": 547 + }, + "constants": [ + { + "name": "PalletId", + "type": 698, + "value": "0x70792f73746b7264", + "docs": [ + " The pallet's unique identifier, used to derive the pool's account ID.", + "", + " The account ID is derived once during pool creation and stored in the storage." + ] + } + ], + "errors": { + "type": 999 + }, + "index": 83, + "docs": [] + }, + { + "name": "AssetsFreezer", + "storage": { + "prefix": "AssetsFreezer", + "items": [ + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 635, + "value": 611 + } + }, + "fallback": "0x00", + "docs": [ + " A map that stores freezes applied on an account for a given AssetId." + ] + }, + { + "name": "FrozenBalances", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 635, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " A map that stores the current total frozen balance for every account on a given AssetId." + ] + } + ] + }, + "calls": null, + "events": { + "type": 548 + }, + "constants": [], + "errors": { + "type": 1000 + }, + "index": 84, + "docs": [] + }, + { + "name": "MetaTx", + "storage": null, + "calls": { + "type": 480 + }, + "events": { + "type": 549 + }, + "constants": [], + "errors": { + "type": 1001 + }, + "index": 89, + "docs": [] + } + ], + "extrinsic": { + "version": 4, + "addressType": 163, + "callType": 139, + "signatureType": 313, + "extraType": 1002, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 485, + "additionalSigned": 34 + }, + { + "identifier": "CheckSpecVersion", + "type": 486, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 487, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 488, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 489, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 491, + "additionalSigned": 34 + }, + { + "identifier": "CheckWeight", + "type": 1003, + "additionalSigned": 34 + }, + { + "identifier": "ChargeAssetTxPayment", + "type": 1004, + "additionalSigned": 34 + }, + { + "identifier": "CheckMetadataHash", + "type": 492, + "additionalSigned": 92 + }, + { + "identifier": "WeightReclaim", + "type": 1006, + "additionalSigned": 34 + } + ] + }, + "type": 75, + "apis": [ + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 562, + "docs": [ + " Returns the version of the runtime." + ] + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "type": 1007 + } + ], + "output": 34, + "docs": [ + " Execute the given block." + ] + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "type": 153 + } + ], + "output": 1010, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ] + } + ], + "docs": [ + " The `Core` runtime api that every Bizinikiwi runtime needs to implement." + ] + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 1011, + "docs": [ + " Returns the metadata of a runtime." + ] + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "type": 4 + } + ], + "output": 1012, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ] + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 112, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ] + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ] + }, + { + "name": "RuntimeViewFunction", + "methods": [ + { + "name": "execute_view_function", + "inputs": [ + { + "name": "query_id", + "type": 1013 + }, + { + "name": "input", + "type": 14 + } + ], + "output": 1014, + "docs": [ + " Execute a view function query." + ] + } + ], + "docs": [ + " Runtime API for executing view functions" + ] + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "type": 1008 + } + ], + "output": 1016, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ] + }, + { + "name": "finalize_block", + "inputs": [], + "output": 153, + "docs": [ + " Finish the current block." + ] + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "type": 1020 + } + ], + "output": 1009, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ] + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "type": 1007 + }, + { + "name": "data", + "type": 1020 + } + ], + "output": 1024, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ] + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ] + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "type": 1025 + }, + { + "name": "tx", + "type": 1008 + }, + { + "name": "block_hash", + "type": 13 + } + ], + "output": 1026, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ] + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ] + }, + { + "name": "ValidateStatement", + "methods": [ + { + "name": "validate_statement", + "inputs": [ + { + "name": "source", + "type": 1028 + }, + { + "name": "statement", + "type": 525 + } + ], + "output": 1029, + "docs": [ + " Validate the statement." + ] + } + ], + "docs": [ + " Runtime API trait for statement validation." + ] + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "type": 153 + } + ], + "output": 34, + "docs": [ + " Starts the off-chain task for given block header." + ] + } + ], + "docs": [ + " The offchain worker api." + ] + }, + { + "name": "GrandpaApi", + "methods": [ + { + "name": "grandpa_authorities", + "inputs": [], + "output": 67, + "docs": [ + " Get the current GRANDPA authorities and weights. This should not change except", + " for when changes are scheduled and the corresponding delay has passed.", + "", + " When called at block B, it will return the set of authorities that should be", + " used to finalize descendants of this block (B+1, B+2, ...). The block B itself", + " is finalized by the authorities from block B-1." + ] + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 254 + }, + { + "name": "key_owner_proof", + "type": 1032 + } + ], + "output": 1033, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 69 + } + ], + "output": 1034, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignore this parameter and instead rely on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ] + }, + { + "name": "current_set_id", + "inputs": [], + "output": 12, + "docs": [ + " Get current GRANDPA authority set id." + ] + } + ], + "docs": [ + " APIs for integrating the GRANDPA finality gadget into runtimes.", + " This should be implemented on the runtime side.", + "", + " This is primarily used for negotiating authority-set changes for the", + " gadget. GRANDPA uses a signaling model of changing authority sets:", + " changes should be signaled with a delay of N blocks, and then automatically", + " applied in the runtime after those N blocks have passed.", + "", + " The consensus protocol will coordinate the handoff externally." + ] + }, + { + "name": "NominationPoolsApi", + "methods": [ + { + "name": "pending_rewards", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending rewards for the member that the AccountId was given for." + ] + }, + { + "name": "points_to_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "points", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent balance of `points` for a given pool." + ] + }, + { + "name": "balance_to_points", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "new_funds", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent points of `new_funds` for a given pool." + ] + }, + { + "name": "pool_pending_slash", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool." + ] + }, + { + "name": "member_pending_slash", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool member.", + "", + " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on", + " chain." + ] + }, + { + "name": "pool_needs_delegate_migration", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 8, + "docs": [ + " Returns true if the pool with `pool_id` needs migration.", + "", + " This can happen when the `pallet-nomination-pools` has switched to using strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool", + " still has funds that were staked using the older strategy", + " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use", + " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)", + " to migrate the pool." + ] + }, + { + "name": "member_needs_delegate_migration", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if the delegated funds of the pool `member` needs migration.", + "", + " Once a pool has successfully migrated to the strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the", + " member can be migrated from pool account to the member's account. Use", + " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)", + " to migrate the funds of the pool member." + ] + }, + { + "name": "member_total_balance", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the total contribution of a pool member including any balance that is unbonding." + ] + }, + { + "name": "pool_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Total balance contributed to the pool." + ] + }, + { + "name": "pool_accounts", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 761, + "docs": [ + " Returns the bonded account and reward account associated with the pool_id." + ] + } + ], + "docs": [ + " Runtime api for accessing information about nomination pools." + ] + }, + { + "name": "StakingApi", + "methods": [ + { + "name": "nominations_quota", + "inputs": [ + { + "name": "balance", + "type": 6 + } + ], + "output": 4, + "docs": [ + " Returns the nominations quota for a nominator with a given balance." + ] + }, + { + "name": "eras_stakers_page_count", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Returns the page count of exposures for a validator `account` in a given era." + ] + }, + { + "name": "pending_rewards", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if validator `account` has pages to be claimed for the given era." + ] + } + ], + "docs": [] + }, + { + "name": "BabeApi", + "methods": [ + { + "name": "configuration", + "inputs": [], + "output": 1035, + "docs": [ + " Return the configuration for BABE." + ] + }, + { + "name": "current_epoch_start", + "inputs": [], + "output": 156, + "docs": [ + " Returns the slot that started the current epoch." + ] + }, + { + "name": "current_epoch", + "inputs": [], + "output": 1036, + "docs": [ + " Returns information regarding the current epoch." + ] + }, + { + "name": "next_epoch", + "inputs": [], + "output": 1036, + "docs": [ + " Returns information regarding the next epoch (which was already", + " previously announced)." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "slot", + "type": 156 + }, + { + "name": "authority_id", + "type": 155 + } + ], + "output": 1037, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " current epoch. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `slot` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the epoch for the given slot is live on-chain. Future", + " implementations will instead use indexed data through an offchain", + " worker, not requiring older states to be available." + ] + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 152 + }, + { + "name": "key_owner_proof", + "type": 1038 + } + ], + "output": 1033, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + } + ], + "docs": [ + " API necessary for block authorship with BABE." + ] + }, + { + "name": "AuthorityDiscoveryApi", + "methods": [ + { + "name": "authorities", + "inputs": [], + "output": 727, + "docs": [ + " Retrieve authority identifiers of the current and next authority set." + ] + } + ], + "docs": [ + " The authority discovery api.", + "", + " This api is used by the `client/authority-discovery` module to retrieve identifiers", + " of the current and next authority set." + ] + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ] + } + ], + "docs": [ + " The API to query account nonce." + ] + }, + { + "name": "AssetsApi", + "methods": [ + { + "name": "account_balances", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 754, + "docs": [ + " Returns the list of `AssetId`s and corresponding balance that an `AccountId` has." + ] + } + ], + "docs": [] + }, + { + "name": "ContractsApi", + "methods": [ + { + "name": "call", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "dest", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 502 + }, + { + "name": "storage_deposit_limit", + "type": 234 + }, + { + "name": "input_data", + "type": 14 + } + ], + "output": 1039, + "docs": [ + " Perform a call from a specified account to a given contract.", + "", + " See [`crate::Pallet::bare_call`]." + ] + }, + { + "name": "instantiate", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 502 + }, + { + "name": "storage_deposit_limit", + "type": 234 + }, + { + "name": "code", + "type": 1046 + }, + { + "name": "data", + "type": 14 + }, + { + "name": "salt", + "type": 14 + } + ], + "output": 1047, + "docs": [ + " Instantiate a new contract.", + "", + " See `[crate::Pallet::bare_instantiate]`." + ] + }, + { + "name": "upload_code", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "code", + "type": 14 + }, + { + "name": "storage_deposit_limit", + "type": 234 + }, + { + "name": "determinism", + "type": 268 + } + ], + "output": 1050, + "docs": [ + " Upload new code without instantiating a contract from it.", + "", + " See [`crate::Pallet::bare_upload_code`]." + ] + }, + { + "name": "get_storage", + "inputs": [ + { + "name": "address", + "type": 0 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 1052, + "docs": [ + " Query a given storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ] + } + ], + "docs": [ + " The API used to dry-run contract interactions." + ] + }, + { + "name": "ReviveApi", + "methods": [ + { + "name": "block_gas_limit", + "inputs": [], + "output": 1054, + "docs": [ + " Returns the block gas limit." + ] + }, + { + "name": "balance", + "inputs": [ + { + "name": "address", + "type": 478 + } + ], + "output": 1054, + "docs": [ + " Returns the free balance of the given `[H160]` address, using EVM decimals." + ] + }, + { + "name": "gas_price", + "inputs": [], + "output": 1054, + "docs": [ + " Returns the gas price." + ] + }, + { + "name": "nonce", + "inputs": [ + { + "name": "address", + "type": 478 + } + ], + "output": 4, + "docs": [ + " Returns the nonce of the given `[H160]` address." + ] + }, + { + "name": "call", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "dest", + "type": 478 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 502 + }, + { + "name": "storage_deposit_limit", + "type": 234 + }, + { + "name": "input_data", + "type": 14 + } + ], + "output": 1056, + "docs": [ + " Perform a call from a specified account to a given contract.", + "", + " See [`crate::Pallet::bare_call`]." + ] + }, + { + "name": "instantiate", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 502 + }, + { + "name": "storage_deposit_limit", + "type": 234 + }, + { + "name": "code", + "type": 1061 + }, + { + "name": "data", + "type": 14 + }, + { + "name": "salt", + "type": 92 + } + ], + "output": 1062, + "docs": [ + " Instantiate a new contract.", + "", + " See `[crate::Pallet::bare_instantiate]`." + ] + }, + { + "name": "eth_transact", + "inputs": [ + { + "name": "tx", + "type": 1065 + } + ], + "output": 1077, + "docs": [ + " Perform an Ethereum call.", + "", + " See [`crate::Pallet::bare_eth_transact`]" + ] + }, + { + "name": "upload_code", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "code", + "type": 14 + }, + { + "name": "storage_deposit_limit", + "type": 234 + } + ], + "output": 1080, + "docs": [ + " Upload new code without instantiating a contract from it.", + "", + " See [`crate::Pallet::bare_upload_code`]." + ] + }, + { + "name": "get_storage", + "inputs": [ + { + "name": "address", + "type": 478 + }, + { + "name": "key", + "type": 1 + } + ], + "output": 1082, + "docs": [ + " Query a given storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ] + }, + { + "name": "trace_block", + "inputs": [ + { + "name": "block", + "type": 1007 + }, + { + "name": "config", + "type": 1084 + } + ], + "output": 1087, + "docs": [ + " Traces the execution of an entire block and returns call traces.", + "", + " This is intended to be called through `state_call` to replay the block from the", + " parent block.", + "", + " See eth-rpc `debug_traceBlockByNumber` for usage." + ] + }, + { + "name": "trace_tx", + "inputs": [ + { + "name": "block", + "type": 1007 + }, + { + "name": "tx_index", + "type": 4 + }, + { + "name": "config", + "type": 1084 + } + ], + "output": 1096, + "docs": [ + " Traces the execution of a specific transaction within a block.", + "", + " This is intended to be called through `state_call` to replay the block from the", + " parent hash up to the transaction.", + "", + " See eth-rpc `debug_traceTransaction` for usage." + ] + }, + { + "name": "trace_call", + "inputs": [ + { + "name": "tx", + "type": 1065 + }, + { + "name": "config", + "type": 1084 + } + ], + "output": 1097, + "docs": [ + " Dry run and return the trace of the given call.", + "", + " See eth-rpc `debug_traceCall` for usage." + ] + } + ], + "docs": [ + " The API used to dry-run contract interactions." + ] + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "type": 1008 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1098, + "docs": [] + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "type": 1008 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1099, + "docs": [] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "AssetConversionApi", + "methods": [ + { + "name": "quote_price_tokens_for_exact_tokens", + "inputs": [ + { + "name": "asset1", + "type": 40 + }, + { + "name": "asset2", + "type": 40 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 234, + "docs": [ + " Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_in_max` to control slippage.)" + ] + }, + { + "name": "quote_price_exact_tokens_for_tokens", + "inputs": [ + { + "name": "asset1", + "type": 40 + }, + { + "name": "asset2", + "type": 40 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 234, + "docs": [ + " Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_out_min` to control slippage.)" + ] + }, + { + "name": "get_reserves", + "inputs": [ + { + "name": "asset1", + "type": 40 + }, + { + "name": "asset2", + "type": 40 + } + ], + "output": 1102, + "docs": [ + " Returns the size of the liquidity pool for the given asset pair." + ] + } + ], + "docs": [ + " This runtime api allows people to query the size of the liquidity pools", + " and quote prices for swaps." + ] + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "type": 139 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1098, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ] + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "type": 139 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1099, + "docs": [ + " Query fee details of a given encoded `Call`." + ] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ] + } + ], + "docs": [] + }, + { + "name": "NftsApi", + "methods": [ + { + "name": "owner", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 4 + } + ], + "output": 43, + "docs": [] + }, + { + "name": "collection_owner", + "inputs": [ + { + "name": "collection", + "type": 4 + } + ], + "output": 43, + "docs": [] + }, + { + "name": "attribute", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 4 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 439, + "docs": [] + }, + { + "name": "custom_attribute", + "inputs": [ + { + "name": "account", + "type": 0 + }, + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 4 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 439, + "docs": [] + }, + { + "name": "system_attribute", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 50 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 439, + "docs": [] + }, + { + "name": "collection_attribute", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 439, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "BeefyApi", + "methods": [ + { + "name": "beefy_genesis", + "inputs": [], + "output": 50, + "docs": [ + " Return the block number where BEEFY consensus is enabled/started" + ] + }, + { + "name": "validator_set", + "inputs": [], + "output": 1104, + "docs": [ + " Return the current active BEEFY validator set" + ] + }, + { + "name": "submit_report_double_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 335 + }, + { + "name": "key_owner_proof", + "type": 1032 + } + ], + "output": 1033, + "docs": [ + " Submits an unsigned extrinsic to report a double voting equivocation. The caller", + " must provide the double voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "submit_report_fork_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 1106 + }, + { + "name": "key_owner_proof", + "type": 1032 + } + ], + "output": 1033, + "docs": [ + " Submits an unsigned extrinsic to report a fork voting equivocation. The caller", + " must provide the fork voting proof (the ancestry proof should be obtained using", + " `generate_ancestry_proof`) and a key ownership proof (should be obtained using", + " `generate_key_ownership_proof`). The extrinsic will be unsigned and should only", + " be accepted for local authorship (not to be broadcast to the network). This method", + " returns `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "submit_report_future_block_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 346 + }, + { + "name": "key_owner_proof", + "type": 1032 + } + ], + "output": 1033, + "docs": [ + " Submits an unsigned extrinsic to report a future block voting equivocation. The caller", + " must provide the future block voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`).", + " The extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 243 + } + ], + "output": 1034, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ] + }, + { + "name": "generate_ancestry_proof", + "inputs": [ + { + "name": "prev_block_number", + "type": 4 + }, + { + "name": "best_known_block_number", + "type": 50 + } + ], + "output": 1034, + "docs": [ + " Generates a proof that the `prev_block_number` is part of the canonical chain at", + " `best_known_block_number`." + ] + } + ], + "docs": [ + " API necessary for BEEFY voters." + ] + }, + { + "name": "MmrApi", + "methods": [ + { + "name": "mmr_root", + "inputs": [], + "output": 1107, + "docs": [ + " Return the on-chain MMR root hash." + ] + }, + { + "name": "mmr_leaf_count", + "inputs": [], + "output": 1109, + "docs": [ + " Return the number of MMR blocks in the chain." + ] + }, + { + "name": "generate_proof", + "inputs": [ + { + "name": "block_numbers", + "type": 112 + }, + { + "name": "best_known_block_number", + "type": 50 + } + ], + "output": 1110, + "docs": [ + " Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,", + " use historical MMR state at given block height `n`. Else, use current MMR state." + ] + }, + { + "name": "verify_proof", + "inputs": [ + { + "name": "leaves", + "type": 1112 + }, + { + "name": "proof", + "type": 1114 + } + ], + "output": 1115, + "docs": [ + " Verify MMR proof against on-chain MMR for a batch of leaves.", + "", + " Note this function will use on-chain MMR root hash and check if the proof matches the hash.", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ] + }, + { + "name": "verify_proof_stateless", + "inputs": [ + { + "name": "root", + "type": 13 + }, + { + "name": "leaves", + "type": 1112 + }, + { + "name": "proof", + "type": 1114 + } + ], + "output": 1115, + "docs": [ + " Verify MMR proof against given root hash for a batch of leaves.", + "", + " Note this function does not require any on-chain storage - the", + " proof is verified against given MMR root hash.", + "", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ] + } + ], + "docs": [ + " API to interact with MMR pallet." + ] + }, + { + "name": "MixnetApi", + "methods": [ + { + "name": "session_status", + "inputs": [], + "output": 1116, + "docs": [ + " Get the index and phase of the current session." + ] + }, + { + "name": "prev_mixnodes", + "inputs": [], + "output": 1118, + "docs": [ + " Get the mixnode set for the previous session." + ] + }, + { + "name": "current_mixnodes", + "inputs": [], + "output": 1118, + "docs": [ + " Get the mixnode set for the current session." + ] + }, + { + "name": "maybe_register", + "inputs": [ + { + "name": "session_index", + "type": 4 + }, + { + "name": "mixnode", + "type": 1120 + } + ], + "output": 8, + "docs": [ + " Try to register a mixnode for the next session.", + "", + " If a registration extrinsic is submitted, `true` is returned. The caller should avoid", + " calling `maybe_register` again for a few blocks, to give the submitted extrinsic a", + " chance to get included.", + "", + " With the above exception, `maybe_register` is designed to be called every block. Most", + " of the time it will not do anything, for example:", + "", + " - If it is not an appropriate time to submit a registration extrinsic.", + " - If the local node has already registered a mixnode for the next session.", + " - If the local node is not permitted to register a mixnode for the next session.", + "", + " `session_index` should match `session_status().current_index`; if it does not, `false`", + " is returned immediately." + ] + } + ], + "docs": [ + " API to query the mixnet session status and mixnode sets, and to register mixnodes." + ] + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "type": 439 + } + ], + "output": 14, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ] + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "type": 14 + } + ], + "output": 1122, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ] + } + ], + "docs": [ + " Session keys runtime api." + ] + }, + { + "name": "AssetRewards", + "methods": [ + { + "name": "pool_creation_cost", + "inputs": [], + "output": 6, + "docs": [ + " Get the cost of creating a pool.", + "", + " This is especially useful when the cost is dynamic." + ] + } + ], + "docs": [ + " The runtime API for the asset rewards pallet." + ] + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "type": 14 + } + ], + "output": 1125, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full", + " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the", + " provided JSON blob is incorrect or incomplete or the deserialization fails, an error", + " is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ] + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "type": 1091 + } + ], + "output": 439, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function should return JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ] + }, + { + "name": "preset_names", + "inputs": [], + "output": 1126, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ] + } + ], + "docs": [ + " API to interact with `RuntimeGenesisConfig` for the runtime" + ] + } + ], + "outerEnums": { + "callType": 139, + "eventType": 21, + "errorType": 1127 + }, + "custom": { + "map": {} + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/bizinikiwi-rpc.ts b/packages/types-support/src/metadata/v15/bizinikiwi-rpc.ts new file mode 100644 index 0000000..806b377 --- /dev/null +++ b/packages/types-support/src/metadata/v15/bizinikiwi-rpc.ts @@ -0,0 +1,135 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "methods": [ + "account_nextIndex", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "dev_getBlockStats", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "statement_broadcasts", + "statement_dump", + "statement_posted", + "statement_postedClear", + "statement_remove", + "statement_submit", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v15/bizinikiwi-types.json b/packages/types-support/src/metadata/v15/bizinikiwi-types.json new file mode 100644 index 0000000..52c1188 --- /dev/null +++ b/packages/types-support/src/metadata/v15/bizinikiwi-types.json @@ -0,0 +1,81302 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 550, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 32, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 36, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 38, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "AssetConversionTxPayment", + "fields": [ + { + "name": null, + "type": 39, + "typeName": "pallet_asset_conversion_tx_payment::Event", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 41, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "pallet_democracy::Event", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "pallet_elections_phragmen::Event", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "pallet_membership::Event", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 73, + "typeName": "pallet_contracts::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "pallet_sudo::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "pallet_im_online::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "pallet_identity::Event", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "pallet_society::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "pallet_recovery::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 89, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 90, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "pallet_glutton::Event", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 100, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 102, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 103, + "typeName": "pallet_tips::Event", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 104, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "pallet_lottery::Event", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "pallet_nis::Event", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 110, + "typeName": "pallet_uniques::Event", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "pallet_nfts::Event", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 121, + "typeName": "pallet_nft_fractionalization::Event", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 122, + "typeName": "pallet_salary::Event", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 123, + "typeName": "pallet_core_fellowship::Event", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "pallet_transaction_storage::Event", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 132, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 133, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 136, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 496, + "typeName": "pallet_remark::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "fields": [ + { + "name": null, + "type": 497, + "typeName": "pallet_root_testing::Event", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 498, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 499, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 504, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 505, + "typeName": "pallet_alliance::Event", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 506, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 510, + "typeName": "pallet_ranked_collective::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 512, + "typeName": "pallet_asset_conversion::Event", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 517, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 518, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "fields": [ + { + "name": null, + "type": 520, + "typeName": "frame_benchmarking_pallet_pov::Event", + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 521, + "typeName": "pallet_tx_pause::Event", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 522, + "typeName": "pallet_safe_mode::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Statement", + "fields": [ + { + "name": null, + "type": 524, + "typeName": "pallet_statement::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 529, + "typeName": "pallet_migrations::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 530, + "typeName": "pallet_broker::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 535, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "SkipFeelessPayment", + "fields": [ + { + "name": null, + "type": 543, + "typeName": "pallet_skip_feeless_payment::Event", + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "pallet_asset_conversion_ops::Event", + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 545, + "typeName": "pallet_revive::Event", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 546, + "typeName": "pallet_delegated_staking::Event", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 547, + "typeName": "pallet_asset_rewards::Event", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "AssetsFreezer", + "fields": [ + { + "name": null, + "type": 548, + "typeName": "pallet_assets_freezer::Event", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MetaTx", + "fields": [ + { + "name": null, + "type": 549, + "typeName": "pallet_meta_tx::Event", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + }, + { + "name": "RejectedInvalidAuthorizedUpgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An invalid authorized upgrade was rejected while trying to apply it." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "DispatchEventInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Trie", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "TrieError", + "docs": [] + } + ], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "proving_trie", + "TrieError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidStateRoot", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "IncompleteDatabase", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ValueAtIncompleteKey", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DecoderError", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DuplicateKey", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExtraneousNode", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ExtraneousValue", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "ExtraneousHashReference", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidChildReference", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ValueMismatch", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IncompleteProof", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "RootMismatch", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DecodeError", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + }, + { + "name": "IfElseMainSuccess", + "fields": [], + "index": 6, + "docs": [ + "Main call was dispatched." + ] + }, + { + "name": "IfElseFallbackCalled", + "fields": [ + { + "name": "main_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The fallback call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 34, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A deposit to reserve an index has been poked/reconsidered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 37, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 37, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 40, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + }, + { + "name": "AssetRefundFailed", + "fields": [ + { + "name": "native_amount_kept", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A swap of the refund in native currency back to asset failed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 40, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "union_of", + "NativeOrWithId" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "WithId", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "AssetId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submitted in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 45, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 45, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 42, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 8, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "next", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 51, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 53, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + }, + { + "name": "CurrencyMigrated", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "force_withdraw", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Staking balance migrated from locks to holds, with any balance that could not be held", + "is force withdrawn." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 52, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 49 + } + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + }, + { + "name": "ValidatorDisabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Validator has been disabled." + ] + }, + { + "name": "ValidatorReenabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Validator has been re-enabled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 55, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "fields": [], + "index": 2, + "docs": [ + "An external proposal has been tabled." + ] + }, + { + "name": "Started", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "threshold", + "type": 56, + "typeName": "VoteThreshold", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A referendum has begun." + ] + }, + { + "name": "Passed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Delegated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An external proposal has been vetoed." + ] + }, + { + "name": "Blacklisted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A proposal_hash has been blacklisted permanently." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "vote", + "type": 57, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has voted in a referendum" + ] + }, + { + "name": "Seconded", + "fields": [ + { + "name": "seconder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An account has seconded a proposal" + ] + }, + { + "name": "ProposalCanceled", + "fields": [ + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A proposal got canceled." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a proposal or a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a proposal or a referendum has been cleared." + ] + }, + { + "name": "MetadataTransferred", + "fields": [ + { + "name": "prev_owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "Previous metadata owner." + ] + }, + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "New metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 16, + "docs": [ + "Metadata has been transferred to new owner." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 56, + "type": { + "path": [ + "pallet_democracy", + "vote_threshold", + "VoteThreshold" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SuperMajorityApprove", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SuperMajorityAgainst", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SimpleMajority", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 58, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Proposal", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Referendum", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A proposal was killed." + ] + }, + { + "name": "ProposalCostBurned", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some cost for storing a proposal was burned." + ] + }, + { + "name": "ProposalCostReleased", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some cost for storing a proposal was released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 61, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A proposal was killed." + ] + }, + { + "name": "ProposalCostBurned", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some cost for storing a proposal was burned." + ] + }, + { + "name": "ProposalCostReleased", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some cost for storing a proposal was released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 62, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTerm", + "fields": [ + { + "name": "new_members", + "type": 63, + "typeName": "Vec<(::AccountId, BalanceOf)>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new term with new_members. This indicates that enough candidates existed to run", + "the election, not that enough have been elected. The inner value must be examined", + "for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + "slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + "begin with." + ] + }, + { + "name": "EmptyTerm", + "fields": [], + "index": 1, + "docs": [ + "No (or not enough) candidates existed for this round. This is different from", + "`NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "fields": [], + "index": 2, + "docs": [ + "Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has been removed. This should always be followed by either `NewTerm` or", + "`EmptyTerm`." + ] + }, + { + "name": "Renounced", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was slashed by amount due to failing to obtain a seat as member or", + "runner-up.", + "", + "Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "fields": [ + { + "name": "seat_holder", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A seat holder was slashed by amount by being forcefully removed from the set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 63, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [], + "index": 0, + "docs": [ + "The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "fields": [], + "index": 1, + "docs": [ + "The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "fields": [], + "index": 2, + "docs": [ + "Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "fields": [], + "index": 3, + "docs": [ + "The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "fields": [], + "index": 4, + "docs": [ + "One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "fields": [], + "index": 5, + "docs": [ + "Phantom member, never used." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 66, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 67, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 67, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 34, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 34, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 71, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 72, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 72, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Instantiated", + "fields": [ + { + "name": "deployer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Contract deployed by address at the specified address." + ] + }, + { + "name": "Terminated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was terminated." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that received the contracts remaining balance" + ] + } + ], + "index": 1, + "docs": [ + "Contract has been removed.", + "", + "# Note", + "", + "The only way for a contract to be removed and emitting this event is by calling", + "`seal_terminate`." + ] + }, + { + "name": "CodeStored", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "deposit_held", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "uploader", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Code with the specified hash has been stored." + ] + }, + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + } + ], + "index": 3, + "docs": [ + "A custom event emitted by the contract." + ] + }, + { + "name": "CodeRemoved", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "deposit_released", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remover", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A code with the specified hash was removed." + ] + }, + { + "name": "ContractCodeUpdated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that has been updated." + ] + }, + { + "name": "new_code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "New code hash that was set for the contract." + ] + }, + { + "name": "old_code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Previous code hash of the contract." + ] + } + ], + "index": 5, + "docs": [ + "A contract's code was updated." + ] + }, + { + "name": "Called", + "fields": [ + { + "name": "caller", + "type": 74, + "typeName": "Origin", + "docs": [ + "The caller of the `contract`." + ] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was called." + ] + } + ], + "index": 6, + "docs": [ + "A contract was called either by a plain account or another contract.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "DelegateCalled", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that performed the delegate call and hence in whose context", + "the `code_hash` is executed." + ] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [ + "The code hash that was delegate called." + ] + } + ], + "index": 7, + "docs": [ + "A contract delegate called a code hash.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "StorageDepositTransferredAndHeld", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some funds have been transferred and held as storage deposit." + ] + }, + { + "name": "StorageDepositTransferredAndReleased", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some storage deposit funds have been transferred and released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 74, + "type": { + "path": [ + "pallet_contracts", + "Origin" + ], + "params": [ + { + "name": "T", + "type": 75 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "kitchensink_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Sudid", + "fields": [ + { + "name": "sudo_result", + "type": 33, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 0, + "docs": [ + "A sudo call just took place." + ] + }, + { + "name": "KeyChanged", + "fields": [ + { + "name": "old", + "type": 43, + "typeName": "Option", + "docs": [ + "The old sudo key (if one was previously set)." + ] + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new sudo key (if one was set)." + ] + } + ], + "index": 1, + "docs": [ + "The sudo key has been updated." + ] + }, + { + "name": "KeyRemoved", + "fields": [], + "index": 2, + "docs": [ + "The key was permanently removed." + ] + }, + { + "name": "SudoAsDone", + "fields": [ + { + "name": "sudo_result", + "type": 33, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 3, + "docs": [ + "A [sudo_as](Pallet::sudo_as) call just took place." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 77, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "HeartbeatReceived", + "fields": [ + { + "name": "authority_id", + "type": 78, + "typeName": "T::AuthorityId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new heartbeat was received from `AuthorityId`." + ] + }, + { + "name": "AllGood", + "fields": [], + "index": 1, + "docs": [ + "At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "fields": [ + { + "name": "offline", + "type": 79, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "At the end of the session, at least one validator was found to be offline." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 78, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 80 + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 34 + ] + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 82, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 14, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 82, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentitiesSet", + "fields": [ + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "number_of_subs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account's sub-identities were set (in bulk)." + ] + }, + { + "name": "SubIdentityRenamed", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A given sub-account's associated name was changed by its super-identity." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + }, + { + "name": "AuthorityAdded", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A username authority was added." + ] + }, + { + "name": "AuthorityRemoved", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A username authority was removed." + ] + }, + { + "name": "UsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A username was set for `who`." + ] + }, + { + "name": "UsernameQueued", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + }, + { + "name": "expiration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A username was queued, but `who` must accept it prior to `expiration`." + ] + }, + { + "name": "PreapprovalExpired", + "fields": [ + { + "name": "whose", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A queued username passed its expiration without being claimed and was removed." + ] + }, + { + "name": "PrimaryUsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A username was set as a primary and can be looked up from `who`." + ] + }, + { + "name": "DanglingUsernameRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A dangling username (as in, a username corresponding to an account that has removed its", + "identity) has been removed." + ] + }, + { + "name": "UsernameUnbound", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A username has been unbound." + ] + }, + { + "name": "UsernameRemoved", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A username has been removed." + ] + }, + { + "name": "UsernameKilled", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 21, + "docs": [ + "A username has been killed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 84, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 85, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "candidates", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "judged", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewParams", + "fields": [ + { + "name": "params", + "type": 87, + "typeName": "GroupParamsFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A new set of \\[params\\] has been set for the group." + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "Elevated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A \\[member\\] got elevated to \\[rank\\]." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 86, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 87, + "type": { + "path": [ + "pallet_society", + "GroupParams" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 89, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 90, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 92, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + }, + { + "name": "AgendaIncomplete", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Agenda is incomplete from `when`." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 91, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 92, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 93, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PalletInitialized", + "fields": [ + { + "name": "reinit", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the pallet has been re-initialized." + ] + } + ], + "index": 0, + "docs": [ + "The pallet has been (re)initialized." + ] + }, + { + "name": "ComputationLimitSet", + "fields": [ + { + "name": "compute", + "type": 94, + "typeName": "FixedU64", + "docs": [ + "The computation limit." + ] + } + ], + "index": 1, + "docs": [ + "The computation limit has been updated." + ] + }, + { + "name": "StorageLimitSet", + "fields": [ + { + "name": "storage", + "type": 94, + "typeName": "FixedU64", + "docs": [ + "The storage limit." + ] + } + ], + "index": 2, + "docs": [ + "The storage limit has been updated." + ] + }, + { + "name": "BlockLengthLimitSet", + "fields": [ + { + "name": "block_length", + "type": 94, + "typeName": "FixedU64", + "docs": [ + "The block length limit." + ] + } + ], + "index": 3, + "docs": [ + "The block length limit has been updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 94, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 96, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 98, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was removed." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 99, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A deposit stored for proxies or announcements was poked / updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 97, + "type": { + "path": [ + "kitchensink_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 99, + "type": { + "path": [ + "pallet_proxy", + "DepositKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Proxies", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Announcements", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 101, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 101, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 101, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The deposit for a multisig operation has been updated/poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 102, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 103, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTip", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new tip suggestion has been opened." + ] + }, + { + "name": "TipClosing", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A tip suggestion has reached threshold and is closing." + ] + }, + { + "name": "TipClosed", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A tip suggestion has been closed." + ] + }, + { + "name": "TipRetracted", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A tip suggestion has been retracted." + ] + }, + { + "name": "TipSlashed", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "finder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A tip suggestion has been slashed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 104, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 105, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 106, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LotteryStarted", + "fields": [], + "index": 0, + "docs": [ + "A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "fields": [], + "index": 1, + "docs": [ + "A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "fields": [ + { + "name": "winner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "lottery_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_index", + "type": 107, + "typeName": "CallIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A ticket has been bought!" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 107, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BidPlaced", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A bid was successfully placed." + ] + }, + { + "name": "BidRetracted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bid was successfully removed (before being accepted)." + ] + }, + { + "name": "BidDropped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bid was dropped from a queue because of another, more substantial, bid was present." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The block number at which the receipt may be thawed." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner of the receipt." + ] + }, + { + "name": "proportion", + "type": 109, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance which the receipt represents." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of funds which were debited from the owner." + ] + } + ], + "index": 3, + "docs": [ + "A bid was accepted. The balance may not be released until expiry." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner." + ] + }, + { + "name": "proportion", + "type": 109, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance by which the owner was debited." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount by which the owner was credited." + ] + }, + { + "name": "dropped", + "type": 8, + "typeName": "bool", + "docs": [ + "If `true` then the receipt is done." + ] + } + ], + "index": 4, + "docs": [ + "An receipt has been (at least partially) thawed." + ] + }, + { + "name": "Funded", + "fields": [ + { + "name": "deficit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An automatic funding of the deficit was made." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A receipt was transferred." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 109, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 111, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 111, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 84, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 84, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 111, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "admin", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "freezer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deadline", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf", + "docs": [] + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 117, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 117, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "price", + "type": 117, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + }, + { + "name": "PalletAttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "attribute", + "type": 120, + "typeName": "PalletAttributes", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 37, + "docs": [ + "A new attribute in the `Pallet` namespace was set for the `collection` or an `item`", + "within that `collection`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 115, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CollectionOwner", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ItemOwner", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 118 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 118, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + }, + { + "name": "direction", + "type": 119, + "typeName": "PriceDirection", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Receive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UsedToClaim", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TransferDisabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NftFractionalized", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An NFT was successfully fractionalized." + ] + }, + { + "name": "NftUnified", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An NFT was successfully returned back." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 122, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Inducted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member is inducted into the payroll." + ] + }, + { + "name": "Registered", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member registered for a payout." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "::Id", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payment happened." + ] + }, + { + "name": "CycleStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "CycleIndexOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The next cycle begins." + ] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member swapped their account." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 123, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParamsChanged", + "fields": [ + { + "name": "params", + "type": 124, + "typeName": "ParamsOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Parameters for the pallet have changed." + ] + }, + { + "name": "ActiveChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Member activity flag has been set." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Member has begun being tracked in this pallet." + ] + }, + { + "name": "Offboarded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Member has been removed from being tracked in this pallet (i.e. because rank is now", + "zero)." + ] + }, + { + "name": "Promoted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Member has been promoted to the given rank." + ] + }, + { + "name": "Demoted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Member has been demoted to the given (non-zero) rank." + ] + }, + { + "name": "Proven", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "at_rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Member has been proven at their current rank, postponing auto-demotion." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "wish", + "type": 128, + "typeName": "Wish", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Member has stated evidence of their efforts their request for rank." + ] + }, + { + "name": "EvidenceJudged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The member/candidate." + ] + }, + { + "name": "wish", + "type": 128, + "typeName": "Wish", + "docs": [ + "The desired outcome for which the evidence was presented." + ] + }, + { + "name": "evidence", + "type": 129, + "typeName": "Evidence", + "docs": [ + "The evidence of efforts." + ] + }, + { + "name": "old_rank", + "type": 98, + "typeName": "u16", + "docs": [ + "The old rank, prior to this change." + ] + }, + { + "name": "new_rank", + "type": 130, + "typeName": "Option", + "docs": [ + "New rank. If `None` then candidate record was removed entirely." + ] + } + ], + "index": 8, + "docs": [ + "Some submitted evidence was judged and removed. There may or may not have been a change", + "to the rank, but in any case, `last_proof` is reset." + ] + }, + { + "name": "Imported", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Pre-ranked account has been inducted at their current rank." + ] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member had its AccountId swapped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_core_fellowship", + "ParamsType" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Ranks", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "active_salary", + "type": 125, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "passive_salary", + "type": 125, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "demotion_period", + "type": 127, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "min_promotion_period", + "type": 127, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "offboard_timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 125, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 126, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 126, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [ + "pallet_core_fellowship", + "Wish" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Retention", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Promotion", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 98 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 98, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stored data under specified index." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Renewed data under specified index." + ] + }, + { + "name": "ProofChecked", + "fields": [], + "index": 2, + "docs": [ + "Storage proof was successfully checked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 132, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 133, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 134, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 135, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 134, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 136, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 98, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 98, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 495, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 495, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 495, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 495, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 495, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 495, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 138, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 139 + }, + { + "name": "H", + "type": 494 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 111, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 144, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 151, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 162, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 226, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 239, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 245, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 248, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 249, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 250, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 252, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 253, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 264, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 265, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 266, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 269, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 270, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 273, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 315, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 317, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 319, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 321, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 324, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 330, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 331, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 332, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 333, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 334, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 347, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 348, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 353, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 371, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 372, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 379, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 381, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 382, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 388, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 389, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 391, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "fields": [ + { + "name": null, + "type": 392, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 397, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 398, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 399, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 408, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 421, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 422, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 426, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 430, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 431, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mixnet", + "fields": [ + { + "name": null, + "type": 450, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 456, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 476, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 477, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 479, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "MetaTx", + "fields": [ + { + "name": null, + "type": 480, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 141, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 143, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 141, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 142 + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 143, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 145, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 145, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 146, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 145, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + }, + { + "name": "if_else", + "fields": [ + { + "name": "main", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "fallback", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Dispatch a fallback call in the event the main call fails to execute.", + "May be called from any origin except `None`.", + "", + "This function first attempts to dispatch the `main` call.", + "If the `main` call fails, the `fallback` is attemted.", + "if the fallback is successfully dispatched, the weights of both calls", + "are accumulated and an event containing the main call error is deposited.", + "", + "In the event of a fallback failure the whole call fails", + "with the weights returned.", + "", + "- `main`: The main call to be dispatched. This is the primary action to execute.", + "- `fallback`: The fallback call to be dispatched in case the `main` call fails.", + "", + "## Dispatch Logic", + "- If the origin is `root`, both the main and fallback calls are executed without", + " applying any origin filters.", + "- If the origin is not `root`, the origin filter is applied to both the `main` and", + " `fallback` calls.", + "", + "## Use Case", + "- Some use cases might involve submitting a `batch` type call in either main, fallback", + " or both." + ] + }, + { + "name": "dispatch_as_fallible", + "fields": [ + { + "name": "as_origin", + "type": 146, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 145, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 139 + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "kitchensink_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 147, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 148, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 60, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 147, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 152, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 152, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 158, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 152, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 153 + }, + { + "name": "Id", + "type": 155 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 155, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 156, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 153, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 153, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 154, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 143, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 159, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 160, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 162, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Poke the deposit reserved for an index.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "The transaction fees is waived if the deposit is changed after poking/reconsideration.", + "", + "- `index`: the index whose deposit is to be poked/reconsidered.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 163, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 167, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 166, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 169, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 221, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 222, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 223, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 169, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [ + { + "name": "maybe_max_voters", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_max_targets", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 170 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 170, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 170, + "type": { + "path": [ + "kitchensink_runtime", + "NposSolution16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 171, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 174, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 179, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 182, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 185, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 188, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 191, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 194, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 197, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 200, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 203, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 206, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 209, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 212, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 215, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 218, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 171, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 172 + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 98 + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 175 + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 176, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 173, + 177 + ] + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 98, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 180 + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 181, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 183 + } + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 184, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 184, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 186 + } + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 187, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 189 + } + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 190, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 191, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 192 + } + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 193, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 195 + } + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 196, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 197, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 198 + } + }, + "docs": [] + } + }, + { + "id": 198, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 199, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 199, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 200, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 201 + } + }, + "docs": [] + } + }, + { + "id": 201, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 202, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 204 + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 205, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 207 + } + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 208, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 210 + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 211, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 213 + } + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 214, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 216 + } + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 217, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 219 + } + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 154, + 220, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 176 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 154, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 44 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 44, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 224 + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 225 + ] + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 63, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "[`asset::existential_deposit`], then it is increased to the full amount.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do whatever", + "it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans` indicates the number of metadata slashing spans to clear when", + "this call results in a complete removal of all the data related to the stash account.", + "In this case, the `num_slashing_spans` must be larger or equal to the number of", + "slashing spans associated with the stash account in the [`SlashingSpans`] storage type,", + "otherwise the call will fail. The call weight is directly proportional to", + "`num_slashing_spans`.", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 51, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 227, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 228, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 227, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 229, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 229, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 230, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 230, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 231, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 232, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 231, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 233, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 234, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 235, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + }, + { + "name": "migrate_currency", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Removes the legacy Staking locks if they exist.", + "", + "This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a", + "hold on it if needed. If all stake cannot be held, the best effort is made to hold as", + "much as possible. The remaining stake is forced withdrawn from the ledger.", + "", + "The fee is waived if the migration is successful." + ] + }, + { + "name": "manual_slash", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 33, + "docs": [ + "This function allows governance to manually slash a validator and is a", + "**fallback mechanism**.", + "", + "The dispatch origin must be `T::AdminOrigin`.", + "", + "## Parameters", + "- `validator_stash` - The stash account of the validator to slash.", + "- `era` - The era in which the validator was in the active set.", + "- `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill.", + "", + "## Behavior", + "", + "The slash will be applied using the standard slashing mechanics, respecting the", + "configured `SlashDeferDuration`.", + "", + "This means:", + "- If the validator was already slashed by a higher percentage for the same era, this", + " slash will have no additional effect.", + "- If the validator was previously slashed by a lower percentage, only the difference", + " will be applied.", + "- The slash will be deferred by `SlashDeferDuration` eras before being enacted." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 227, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 163 + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 229, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 228 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 228, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 236 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 236, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 237 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 238, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 154, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 237 + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 240, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 240, + "type": { + "path": [ + "kitchensink_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 69, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 155, + "typeName": "::Public", + "docs": [] + }, + { + "name": "im_online", + "type": 78, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 241, + "typeName": "::Public", + "docs": [] + }, + { + "name": "mixnet", + "type": 242, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 243, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 242, + "type": { + "path": [ + "sp_mixnet", + "types", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 244, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 154, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 154, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "vote", + "type": 57, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voting_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 154, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 246, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "fields": [], + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "fields": [], + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "maybe_ref_index", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 154, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 247, + "typeName": "Option", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 246, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 248, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 154, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disapprove the proposal and burn the cost held for storing this proposal.", + "", + "Parameters:", + "- `origin`: must be the `KillOrigin`.", + "- `proposal_hash`: The hash of the proposal that should be killed.", + "", + "Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal." + ] + }, + { + "name": "release_proposal_cost", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Release the cost held for storing a proposal once the given proposal is completed.", + "", + "If there is no associated cost for the given proposal, this call will have no effect.", + "", + "Parameters:", + "- `origin`: must be `Signed` or `Root`.", + "- `proposal_hash`: The hash of the proposal.", + "", + "Emits `ProposalCostReleased` if any cost held for a given proposal." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 249, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 154, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disapprove the proposal and burn the cost held for storing this proposal.", + "", + "Parameters:", + "- `origin`: must be the `KillOrigin`.", + "- `proposal_hash`: The hash of the proposal that should be killed.", + "", + "Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal." + ] + }, + { + "name": "release_proposal_cost", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Release the cost held for storing a proposal once the given proposal is completed.", + "", + "If there is no associated cost for the given proposal, this call will have no effect.", + "", + "Parameters:", + "- `origin`: must be `Signed` or `Root`.", + "- `proposal_hash`: The hash of the proposal.", + "", + "Emits `ProposalCostReleased` if any cost held for a given proposal." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 250, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "fields": [], + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 251, + "typeName": "Renouncing", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "slash_bond", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "rerun_election", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 251, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "RunnerUp", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Candidate", + "fields": [ + { + "name": null, + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "add", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "fields": [], + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 253, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 254, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 254, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 254, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 255, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 256, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 261, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 256, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 69 + }, + { + "name": "V", + "type": 257 + }, + { + "name": "S", + "type": 258 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 69, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 260, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 260, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 259, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 257, + 258 + ] + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 69 + }, + { + "name": "V", + "type": 262 + }, + { + "name": "S", + "type": 258 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 69, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 263, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 263, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 262, + 258 + ] + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 265, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 266, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "call_old_weight", + "fields": [ + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Deprecated version if [`Self::call`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_with_code_old_weight", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_old_weight", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "determinism", + "type": 268, + "typeName": "Determinism", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the size of the supplied `code`.", + "", + "If the code already exists in storage it will still return `Ok` and upgrades", + "the in storage version to the current", + "[`InstructionWeights::version`](InstructionWeights).", + "", + "- `determinism`: If this is set to any other value but [`Determinism::Enforced`] then", + " the only way to use this code is to delegate call into it from an offchain execution.", + " Set to [`Determinism::Enforced`] if in doubt.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`].", + "", + "Use [`Determinism::Relaxed`] exclusively for non-deterministic code. If the uploaded", + "code is deterministic, specifying [`Determinism::Relaxed`] will be disregarded and", + "result in higher gas costs." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is deployed, and a `code_hash` is created for that code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 267, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + }, + { + "name": "migrate", + "fields": [ + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 9, + "docs": [ + "When a migration is in progress, this dispatchable can be used to run migration steps.", + "Calls that contribute to advancing the migration have their fees waived, as it's helpful", + "for the chain. Note that while the migration is in progress, the pallet will also", + "leverage the `on_idle` hooks to run migration steps." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 267, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 166 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 166, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "Determinism" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Enforced", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Relaxed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 269, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "remove_key", + "fields": [], + "index": 4, + "docs": [ + "Permanently removes the sudo key.", + "", + "**This cannot be un-done.**" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 270, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "heartbeat", + "fields": [ + { + "name": "heartbeat", + "type": 271, + "typeName": "Heartbeat>", + "docs": [] + }, + { + "name": "signature", + "type": 272, + "typeName": "::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "## Complexity:", + "- `O(K)` where K is length of `Keys` (heartbeat.validators_len)", + " - `O(K)`: decoding of length `K`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 271, + "type": { + "path": [ + "pallet_im_online", + "Heartbeat" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthIndex", + "docs": [] + }, + { + "name": "validators_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 259, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 274, + "typeName": "Box", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful." + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 309, + "typeName": "Vec<(T::AccountId, Data)>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts." + ] + }, + { + "name": "clear_identity", + "fields": [], + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 154, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "max_fee", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Registrars::::get().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fee", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "new", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fields", + "type": 12, + "typeName": "::\nFieldsIdentifier", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 154, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "judgement", + "type": 311, + "typeName": "Judgement>", + "docs": [] + }, + { + "name": "identity", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is", + " provided.", + "", + "Note: Judgements do not apply to a username.", + "", + "Emits `JudgementGiven` if successful." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 277, + "typeName": "Data", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 277, + "typeName": "Data", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "fields": [], + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + }, + { + "name": "add_username_authority", + "fields": [ + { + "name": "authority", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "suffix", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Add an `AccountId` with permission to grant usernames with a given `suffix` appended.", + "", + "The authority can grant up to `allocation` usernames. To top up the allocation or", + "change the account used to grant usernames, this call can be used with the updated", + "parameters to overwrite the existing configuration." + ] + }, + { + "name": "remove_username_authority", + "fields": [ + { + "name": "suffix", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "authority", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Remove `authority` from the username authorities." + ] + }, + { + "name": "set_username_for", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "username", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "signature", + "type": 312, + "typeName": "Option", + "docs": [] + }, + { + "name": "use_allocation", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the username for `who`. Must be called by a username authority.", + "", + "If `use_allocation` is set, the authority must have a username allocation available to", + "spend. Otherwise, the authority will need to put up a deposit for registering the", + "username.", + "", + "Users can either pre-sign their usernames or", + "accept them later.", + "", + "Usernames must:", + " - Only contain lowercase ASCII characters or digits.", + " - When combined with the suffix of the issuing authority be _less than_ the", + " `MaxUsernameLength`." + ] + }, + { + "name": "accept_username", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Accept a given username that an `authority` granted. The call must include the full", + "username, as in `username.suffix`." + ] + }, + { + "name": "remove_expired_approval", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove an expired username approval. The username was approved by an authority but never", + "accepted by the user and must now be beyond its expiration. The call must include the", + "full username, as in `username.suffix`." + ] + }, + { + "name": "set_primary_username", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set a given username as the primary. The username should include the suffix." + ] + }, + { + "name": "unbind_username", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Start the process of removing a username by placing it in the unbinding usernames map.", + "Once the grace period has passed, the username can be deleted by calling", + "[remove_username](crate::Call::remove_username)." + ] + }, + { + "name": "remove_username", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Permanently delete a username which has been unbinding for longer than the grace period.", + "Caller is refunded the fee if the username expired and the removal was successful." + ] + }, + { + "name": "kill_username", + "fields": [ + { + "name": "username", + "type": 84, + "typeName": "Username", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username", + "and slashes any deposit associated with it." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 274, + "type": { + "path": [ + "pallet_identity", + "legacy", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 275, + "typeName": "BoundedVec<(Data, Data), FieldLimit>", + "docs": [] + }, + { + "name": "display", + "type": 277, + "typeName": "Data", + "docs": [] + }, + { + "name": "legal", + "type": 277, + "typeName": "Data", + "docs": [] + }, + { + "name": "web", + "type": 277, + "typeName": "Data", + "docs": [] + }, + { + "name": "riot", + "type": 277, + "typeName": "Data", + "docs": [] + }, + { + "name": "email", + "type": 277, + "typeName": "Data", + "docs": [] + }, + { + "name": "pgp_fingerprint", + "type": 308, + "typeName": "Option<[u8; 20]>", + "docs": [] + }, + { + "name": "image", + "type": 277, + "typeName": "Data", + "docs": [] + }, + { + "name": "twitter", + "type": 277, + "typeName": "Data", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 276 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 307, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 277, + 277 + ] + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Raw0", + "fields": [ + { + "name": null, + "type": 278, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw1", + "fields": [ + { + "name": null, + "type": 279, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Raw2", + "fields": [ + { + "name": null, + "type": 280, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Raw3", + "fields": [ + { + "name": null, + "type": 281, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Raw4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Raw5", + "fields": [ + { + "name": null, + "type": 282, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Raw6", + "fields": [ + { + "name": null, + "type": 283, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Raw7", + "fields": [ + { + "name": null, + "type": 284, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Raw8", + "fields": [ + { + "name": null, + "type": 285, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Raw9", + "fields": [ + { + "name": null, + "type": 286, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Raw10", + "fields": [ + { + "name": null, + "type": 287, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Raw11", + "fields": [ + { + "name": null, + "type": 288, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Raw12", + "fields": [ + { + "name": null, + "type": 289, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Raw13", + "fields": [ + { + "name": null, + "type": 290, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Raw14", + "fields": [ + { + "name": null, + "type": 291, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Raw15", + "fields": [ + { + "name": null, + "type": 292, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Raw16", + "fields": [ + { + "name": null, + "type": 82, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Raw17", + "fields": [ + { + "name": null, + "type": 293, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Raw18", + "fields": [ + { + "name": null, + "type": 294, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Raw19", + "fields": [ + { + "name": null, + "type": 295, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Raw20", + "fields": [ + { + "name": null, + "type": 164, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Raw21", + "fields": [ + { + "name": null, + "type": 296, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Raw22", + "fields": [ + { + "name": null, + "type": 297, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Raw23", + "fields": [ + { + "name": null, + "type": 298, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Raw24", + "fields": [ + { + "name": null, + "type": 299, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Raw25", + "fields": [ + { + "name": null, + "type": 300, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Raw26", + "fields": [ + { + "name": null, + "type": 301, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Raw27", + "fields": [ + { + "name": null, + "type": 302, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Raw28", + "fields": [ + { + "name": null, + "type": 303, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Raw29", + "fields": [ + { + "name": null, + "type": 304, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Raw30", + "fields": [ + { + "name": null, + "type": 305, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Raw31", + "fields": [ + { + "name": null, + "type": 306, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Raw32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Sha256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Keccak256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "ShaThree256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 0, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 24, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 25, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 26, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 27, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 28, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 29, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 30, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 31, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 276 + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 164 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 164, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 310 + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 277 + ] + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FeePaid", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reasonable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "KnownGood", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "OutOfDate", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LowQuality", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Erroneous", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 313 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 313, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 259, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 259, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 314, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society." + ] + }, + { + "name": "unbid", + "fields": [], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder." + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout." + ] + }, + { + "name": "unvouch", + "fields": [], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`)." + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`)." + ] + }, + { + "name": "payout", + "fields": [], + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining." + ] + }, + { + "name": "waive_repay", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Repay the payment previously given to the member with the signed origin, remove any", + "pending payments, and elevate them from rank 0 to rank 1." + ] + }, + { + "name": "found_society", + "fields": [ + { + "name": "founder", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "rules", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group.", + "- `rules` - The rules of this society concerning membership.", + "", + "Complexity: O(1)" + ] + }, + { + "name": "dissolve", + "fields": [], + "index": 9, + "docs": [ + "Dissolve the society and remove all members.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member." + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "forgive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be Signed from the Founder.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member." + ] + }, + { + "name": "set_parameters", + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the maximum number of members in society and the maximum number of new candidates", + "in a single intake period.", + "", + "The dispatch origin for this call must be Signed by the Founder.", + "", + "Parameters:", + "- `max_members` - The maximum number of members for the society. This must be no less", + " than the current number of members.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group." + ] + }, + { + "name": "punish_skeptic", + "fields": [], + "index": 12, + "docs": [ + "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the", + "candidate." + ] + }, + { + "name": "claim_membership", + "fields": [], + "index": 13, + "docs": [ + "Transform an approved candidate into a member. Callable only by the", + "the candidate, and only after the period for voting has ended." + ] + }, + { + "name": "bestow_membership", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Transform an approved candidate into a member. Callable only by the Signed origin of the", + "Founder, only after the period for voting has ended and only when the candidate is not", + "clearly rejected." + ] + }, + { + "name": "kick_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove the candidate's application from the society. Callable only by the Signed origin", + "of the Founder, only after the period for voting has ended, and only when they do not", + "have a clear approval.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "resign_candidacy", + "fields": [], + "index": 16, + "docs": [ + "Remove the candidate's application from the society. Callable only by the candidate.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "drop_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a `candidate`'s failed application from the society. Callable by any", + "signed origin but only at the end of the subsequent round and only for", + "a candidate with more rejections than approvals.", + "", + "The bid deposit is lost and the voucher is banned." + ] + }, + { + "name": "cleanup_candidacy", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Remove up to `max` stale votes for the given `candidate`.", + "", + "May be called by any Signed origin, but only after the candidate's candidacy is ended." + ] + }, + { + "name": "cleanup_challenge", + "fields": [ + { + "name": "challenge_round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove up to `max` stale votes for the defender in the given `challenge_round`.", + "", + "May be called by any Signed origin, but only after the challenge round is ended." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 316, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "threshold", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumberFromProviderOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "fields": [], + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 317, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 318, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 318, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 320, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 320, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 320, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 320, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 91, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 320, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 91 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 91, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 321, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "initialize_pallet", + "fields": [ + { + "name": "new_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_count", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize the pallet. Should be called once, if no genesis state was provided.", + "", + "`current_count` is the current number of elements in `TrashData`. This can be set to", + "`None` when the pallet is first initialized.", + "", + "Only callable by Root or `AdminOrigin`. A good default for `new_count` is `5_000`." + ] + }, + { + "name": "set_compute", + "fields": [ + { + "name": "compute", + "type": 94, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set how much of the remaining `ref_time` weight should be consumed by `on_idle`.", + "", + "Only callable by Root or `AdminOrigin`." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "storage", + "type": 94, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set how much of the remaining `proof_size` weight should be consumed by `on_idle`.", + "", + "`1.0` means that all remaining `proof_size` will be consumed. The PoV benchmarking", + "results that are used here are likely an over-estimation. 100% intended consumption will", + "therefore translate to less than 100% actual consumption.", + "", + "Only callable by Root or `AdminOrigin`." + ] + }, + { + "name": "bloat", + "fields": [ + { + "name": "garbage", + "type": 322, + "typeName": "Vec<[u8; VALUE_SIZE]>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Increase the block size by including the specified garbage bytes." + ] + }, + { + "name": "set_block_length", + "fields": [ + { + "name": "block_length", + "type": 94, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set how much of the block length should be filled with trash data on each block.", + "", + "`1.0` means that all block should be filled. If set to `1.0`, storage proof size will", + " be close to zero.", + "", + "Only callable by Root or `AdminOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 322, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 323 + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1024, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 325, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 325, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 327, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 98, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 154, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 327, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 10, + "docs": [ + "Poke / Adjust deposits made for proxies and announcements based on current values.", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 327, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 97 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 97, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 329, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 329, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 101, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "threshold", + "type": 98, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Poke the deposit reserved for an existing multisig operation.", + "", + "The dispatch origin for this call must be _Signed_ and must be the original depositor of", + "the multisig operation.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "- `threshold`: The total number of approvals needed for this multisig.", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + " multisig.", + "- `call_hash`: The hash of the call this deposit is reserved for.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 329, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 101 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 101, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 330, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "approve_bounty_with_curator", + "fields": [ + { + "name": "bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Approve bountry and propose a curator simultaneously.", + "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "- `bounty_id`: Bounty ID to approve.", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 331, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_awesome", + "fields": [ + { + "name": "reason", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'" + ] + }, + { + "name": "retract_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + "If successful, the original deposit will be unreserved.", + "", + "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + "must have been reported by the signing account through `report_awesome` (and not", + "through `tip_new`).", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "Emits `TipRetracted` if successful.", + "", + "## Complexity", + "- `O(1)`", + " - Depends on the length of `T::Hash` which is fixed." + ] + }, + { + "name": "tip_new", + "fields": [ + { + "name": "reason", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "tip_value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Give a tip for something new; no finder's fee will be taken.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`" + ] + }, + { + "name": "tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "tip_value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Declare a tip value for an already-open tip.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + "has started.", + "", + "## Complexity", + "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert", + " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`." + ] + }, + { + "name": "close_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Close and payout a tip.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The tip identified by `hash` must have finished its countdown period.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "## Complexity", + "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`", + " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on", + " the implementation of `T::Tippers`." + ] + }, + { + "name": "slash_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove and slash an already-open tip.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "As a result, the finder is slashed and the deposits are lost.", + "", + "Emits `TipSlashed` if successful.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 332, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 166, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 333, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 166, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 166, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 154, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 334, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_double_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 335, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_double_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 335, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the", + "future.", + "", + "Note: `delay_in_blocks` has to be at least 1." + ] + }, + { + "name": "report_fork_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 342, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_fork_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 342, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "report_future_block_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 346, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_future_block_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 346, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 157, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 335, + "type": { + "path": [ + "sp_consensus_beefy", + "DoubleVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 243 + }, + { + "name": "Signature", + "type": 336 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 337, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 337, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 336, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 314, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 337, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 243 + }, + { + "name": "Signature", + "type": 336 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 338, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 243, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 336, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 339, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 340, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 341 + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 280, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 153 + }, + { + "name": "Id", + "type": 243 + }, + { + "name": "AncestryProof", + "type": 343 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 337, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 343, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 153, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [ + "sp_mmr_primitives", + "AncestryProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev_peaks", + "type": 325, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prev_leaf_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 344, + "typeName": "Vec<(u64, Hash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 345 + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "sp_consensus_beefy", + "FutureBlockVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 243 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 337, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "buy_ticket", + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Buy a ticket to enter the lottery.", + "", + "This extrinsic acts as a passthrough function for `call`. In all", + "situations where `call` alone would succeed, this extrinsic should", + "succeed.", + "", + "If `call` is successful, then we will attempt to purchase a ticket,", + "which may fail silently. To detect success of a ticket purchase, you", + "should listen for the `TicketBought` event.", + "", + "This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "fields": [ + { + "name": "calls", + "type": 145, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set calls in storage which can be used to purchase a lottery ticket.", + "", + "This function only matters if you use the `ValidateCall` implementation", + "provided by this pallet, which uses storage to determine the valid calls.", + "", + "This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "repeat", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start a lottery using the provided configuration.", + "", + "This extrinsic must be called by the `ManagerOrigin`.", + "", + "Parameters:", + "", + "* `price`: The cost of a single ticket.", + "* `length`: How long the lottery should run for starting at the current block.", + "* `delay`: How long after the lottery end we should wait before picking a winner.", + "* `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "fields": [], + "index": 3, + "docs": [ + "If a lottery is repeating, you can use this to stop the repeat.", + "The lottery will continue to run to completion.", + "", + "This extrinsic must be called by the `ManagerOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 348, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "fields": [], + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "maybe_proportion", + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 154, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 349, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 109 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 109, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 351, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "check_owner", + "type": 352, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "maybe_check_delegate", + "type": 352, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 84, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 84, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 111, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 111, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 234, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 352, + "typeName": "Option>", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 351, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 154, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 163 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 163, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 354, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`CollectionDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 354, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 361, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "NOTE: The collection must have 0 items to be destroyed.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(m + c + a)` where:", + "- `m = witness.item_metadatas`", + "- `c = witness.item_configs`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness_data", + "type": 362, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must comply with the `mint_settings` rules.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object. If", + " the mint price is set, then it should be additionally confirmed in the `witness_data`.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "item_config", + "type": 364, + "typeName": "ItemConfig", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "The origin must conform to `ForceOrigin` or must be Signed and the signing account must", + "be the owner of the `item`.", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "", + "Emits `Burned`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "lock_settings", + "type": 355, + "typeName": "CollectionSettings", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 352, + "typeName": "Option>", + "docs": [] + }, + { + "name": "admin", + "type": 352, + "typeName": "Option>", + "docs": [] + }, + { + "name": "freezer", + "type": 352, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Note: by setting the role to `None` only the `ForceOrigin` will be able to change it", + "after to `Some(account)`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "config", + "type": 354, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "maybe_deadline", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin", + "of the `collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only.", + "When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` Admin only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness", + "type": 365, + "typeName": "CancelAttributesApprovalWitness", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "mint_settings", + "type": 357, + "typeName": "MintSettings, BlockNumberFor, T::\nCollectionId>", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer", + "of the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 234, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 352, + "typeName": "Option>", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 366, + "typeName": "BoundedVec, T::MaxTips>", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_price", + "type": 117, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "witness_price", + "type": 117, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 369, + "typeName": "Box>", + "docs": [] + }, + { + "name": "signature", + "type": 313, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Issuer of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 370, + "typeName": "PreSignedAttributesOf", + "docs": [] + }, + { + "name": "signature", + "type": 313, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Admin of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 354, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 355, + "typeName": "CollectionSettings", + "docs": [] + }, + { + "name": "max_supply", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_settings", + "type": 357, + "typeName": "MintSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 356 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "CollectionSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "UnlockedMaxSupply", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DepositRequired", + "fields": [], + "index": 16, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 358, + "typeName": "MintType", + "docs": [] + }, + { + "name": "price", + "type": 234, + "typeName": "Option", + "docs": [] + }, + { + "name": "start_block", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "end_block", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "default_item_settings", + "type": 359, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Public", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "HolderOf", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 360 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "ItemSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "item_metadatas", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 154, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 363 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 363, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owned_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_price", + "type": 234, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 359, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 367 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 368, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 367 + } + }, + "docs": [] + } + }, + { + "id": 369, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 141, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "only_account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + }, + { + "name": "mint_price", + "type": 234, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 141, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "namespace", + "type": 116, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fractionalize", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Lock the NFT and mint a new fungible asset.", + "", + "The dispatch origin for this call must be Signed.", + "The origin must be the owner of the NFT they are trying to lock.", + "", + "`Deposit` funds of sender are reserved.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the new asset. It must not exist.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the newly created asset.", + "- `fractions`: The total issuance of the newly created asset class.", + "", + "Emits `NftFractionalized` event when successful." + ] + }, + { + "name": "unify", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Burn the total issuance of the fungible asset and return (unlock) the locked NFT.", + "", + "The dispatch origin for this call must be Signed.", + "", + "`Deposit` funds will be returned to `asset_creator`.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the asset being returned and destroyed. Must match", + "the original ID of the created asset, corresponding to the NFT.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the unified NFT.", + "", + "Emits `NftUnified` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 372, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "init", + "fields": [], + "index": 0, + "docs": [ + "Start the first payout cycle.", + "", + "- `origin`: A `Signed` origin of an account." + ] + }, + { + "name": "bump", + "fields": [], + "index": 1, + "docs": [ + "Move to next payout cycle, assuming that the present block is now within that cycle.", + "", + "- `origin`: A `Signed` origin of an account." + ] + }, + { + "name": "induct", + "fields": [], + "index": 2, + "docs": [ + "Induct oneself into the payout system." + ] + }, + { + "name": "register", + "fields": [], + "index": 3, + "docs": [ + "Register for a payout.", + "", + "Will only work if we are in the first `RegistrationPeriod` blocks since the cycle", + "started.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`." + ] + }, + { + "name": "payout", + "fields": [], + "index": 4, + "docs": [ + "Request a payout.", + "", + "Will only work if we are after the first `RegistrationPeriod` blocks since the cycle", + "started but by no more than `PayoutPeriod` blocks.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`." + ] + }, + { + "name": "payout_other", + "fields": [ + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Request a payout to a secondary account.", + "", + "Will only work if we are after the first `RegistrationPeriod` blocks since the cycle", + "started but by no more than `PayoutPeriod` blocks.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`.", + "- `beneficiary`: The account to receive payment." + ] + }, + { + "name": "check_payment", + "fields": [], + "index": 6, + "docs": [ + "Update a payment's status; if it failed, alter the state so the payment can be retried.", + "", + "This must be called within the same cycle as the failed payment. It will fail with", + "`Event::NotCurrent` otherwise.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members` who has", + " received a payment this cycle." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bump", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Bump the state of a member.", + "", + "This will demote a member whose `last_proof` is now beyond their rank's", + "`demotion_period`.", + "", + "- `origin`: A `Signed` origin of an account.", + "- `who`: A member account whose state is to be updated." + ] + }, + { + "name": "set_params", + "fields": [ + { + "name": "params", + "type": 124, + "typeName": "Box>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the parameters.", + "", + "- `origin`: An origin complying with `ParamsOrigin` or root.", + "- `params`: The new parameters for the pallet." + ] + }, + { + "name": "set_active", + "fields": [ + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set whether a member is active or not.", + "", + "- `origin`: A `Signed` origin of a member's account.", + "- `is_active`: `true` iff the member is active." + ] + }, + { + "name": "approve", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "at_rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Approve a member to continue at their rank.", + "", + "This resets `last_proof` to the current block, thereby delaying any automatic demotion.", + "", + "`who` must already be tracked by this pallet for this to have an effect.", + "", + "- `origin`: An origin which satisfies `ApproveOrigin` or root.", + "- `who`: A member (i.e. of non-zero rank).", + "- `at_rank`: The rank of member." + ] + }, + { + "name": "induct", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Introduce a new and unranked candidate (rank zero).", + "", + "- `origin`: An origin which satisfies `InductOrigin` or root.", + "- `who`: The account ID of the candidate to be inducted and become a member." + ] + }, + { + "name": "promote", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Increment the rank of a ranked and tracked account.", + "", + "- `origin`: An origin which satisfies `PromoteOrigin` with a `Success` result of", + " `to_rank` or more or root.", + "- `who`: The account ID of the member to be promoted to `to_rank`.", + "- `to_rank`: One more than the current rank of `who`." + ] + }, + { + "name": "promote_fast", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 98, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Fast promotions can skip ranks and ignore the `min_promotion_period`.", + "", + "This is useful for out-of-band promotions, hence it has its own `FastPromoteOrigin` to", + "be (possibly) more restrictive than `PromoteOrigin`. Note that the member must already", + "be inducted." + ] + }, + { + "name": "offboard", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Stop tracking a prior member who is now not a ranked member of the collective.", + "", + "- `origin`: A `Signed` origin of an account.", + "- `who`: The ID of an account which was tracked in this pallet but which is now not a", + " ranked member of the collective." + ] + }, + { + "name": "submit_evidence", + "fields": [ + { + "name": "wish", + "type": 128, + "typeName": "Wish", + "docs": [] + }, + { + "name": "evidence", + "type": 129, + "typeName": "Evidence", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Provide evidence that a rank is deserved.", + "", + "This is free as long as no evidence for the forthcoming judgement is already submitted.", + "Evidence is cleared after an outcome (either demotion, promotion of approval).", + "", + "- `origin`: A `Signed` origin of an inducted and ranked account.", + "- `wish`: The stated desire of the member.", + "- `evidence`: A dump of evidence to be considered. This should generally be either a", + " Markdown-encoded document or a series of 32-byte hashes which can be found on a", + " decentralised content-based-indexing system such as IPFS." + ] + }, + { + "name": "import", + "fields": [], + "index": 8, + "docs": [ + "Introduce an already-ranked individual of the collective into this pallet.", + "", + "The rank may still be zero. This resets `last_proof` to the current block and", + "`last_promotion` will be set to zero, thereby delaying any automatic demotion but", + "allowing immediate promotion.", + "", + "- `origin`: A signed origin of a ranked, but not tracked, account." + ] + }, + { + "name": "import_member", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Introduce an already-ranked individual of the collective into this pallet.", + "", + "The rank may still be zero. Can be called by anyone on any collective member - including", + "the sender.", + "", + "This resets `last_proof` to the current block and `last_promotion` will be set to zero,", + "thereby delaying any automatic demotion but allowing immediate promotion.", + "", + "- `origin`: A signed origin of a ranked, but not tracked, account.", + "- `who`: The account ID of the collective member to be inducted." + ] + }, + { + "name": "set_partial_params", + "fields": [ + { + "name": "partial_params", + "type": 374, + "typeName": "Box>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the parameters partially.", + "", + "- `origin`: An origin complying with `ParamsOrigin` or root.", + "- `partial_params`: The new parameters for the pallet.", + "", + "This update config with multiple arguments without duplicating", + "the fields that does not need to update (set to None)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 374, + "type": { + "path": [ + "pallet_core_fellowship", + "ParamsType" + ], + "params": [ + { + "name": "Balance", + "type": 234 + }, + { + "name": "BlockNumber", + "type": 50 + }, + { + "name": "Ranks", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "active_salary", + "type": 375, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "passive_salary", + "type": 375, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "demotion_period", + "type": 377, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "min_promotion_period", + "type": 377, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "offboard_timeout", + "type": 50, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 234 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 376, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 376, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 234 + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 50 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 378, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 378, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 50 + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Index and store data off chain. Minimum data size is 1 bytes, maximum is", + "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + "is called.", + "## Complexity", + "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Renew previously stored data. Parameters are the block number that contains", + "previous `store` or `renew` call and transaction index within that block.", + "Transaction index is emitted in the `Stored` or `Renewed` event.", + "Applies same fees as `store`.", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "check_proof", + "fields": [ + { + "name": "proof", + "type": 380, + "typeName": "TransactionStorageProof", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Check storage proof for block number `block_number() - StoragePeriod`.", + "If such block does not exist the proof is expected to be `None`.", + "## Complexity", + "- Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + "There's a DB read for each transaction." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 380, + "type": { + "path": [ + "sp_transaction_storage_proof", + "TransactionStorageProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "chunk", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "proof", + "type": 143, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 382, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 383, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 384, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 385, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 143, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 143, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 384, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a teyrchain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 383, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 384 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 384, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 386, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 387, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 154, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 389, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 146, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 390, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 98, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 247, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 390, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Index and store data off chain." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fill_block", + "fields": [ + { + "name": "ratio", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "trigger_defensive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 393, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 154, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 394, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 98, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 396, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 98, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 98, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 130, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 98, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 395, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 395, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 398, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 154, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disapprove the proposal and burn the cost held for storing this proposal.", + "", + "Parameters:", + "- `origin`: must be the `KillOrigin`.", + "- `proposal_hash`: The hash of the proposal that should be killed.", + "", + "Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal." + ] + }, + { + "name": "release_proposal_cost", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Release the cost held for storing a proposal once the given proposal is completed.", + "", + "If there is no associated cost for the given proposal, this call will have no effect.", + "", + "Parameters:", + "- `origin`: must be `Signed` or `Root`.", + "- `proposal_hash`: The hash of the proposal.", + "", + "Emits `ProposalCostReleased` if any cost held for a given proposal." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 399, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposal", + "type": 139, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new proposal to be voted on.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "init_members", + "fields": [ + { + "name": "fellows", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allies", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initialize the Alliance, onboard fellows and allies.", + "", + "The Alliance must be empty, and the call must provide some founding members.", + "", + "Must be called by the Root origin." + ] + }, + { + "name": "disband", + "fields": [ + { + "name": "witness", + "type": 400, + "typeName": "DisbandWitness", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Disband the Alliance, remove all active members and unreserve deposits.", + "", + "Witness data must be set." + ] + }, + { + "name": "set_rule", + "fields": [ + { + "name": "rule", + "type": 401, + "typeName": "Cid", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a new IPFS CID to the alliance rule." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "announcement", + "type": 401, + "typeName": "Cid", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make an announcement of a new IPFS CID about alliance issues." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "announcement", + "type": 401, + "typeName": "Cid", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove an announcement." + ] + }, + { + "name": "join_alliance", + "fields": [], + "index": 8, + "docs": [ + "Submit oneself for candidacy. A fixed deposit is reserved." + ] + }, + { + "name": "nominate_ally", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit", + "required from the nominator or nominee." + ] + }, + { + "name": "elevate_ally", + "fields": [ + { + "name": "ally", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Elevate an Ally to Fellow." + ] + }, + { + "name": "give_retirement_notice", + "fields": [], + "index": 11, + "docs": [ + "As a member, give a retirement notice and start a retirement period required to pass in", + "order to retire." + ] + }, + { + "name": "retire", + "fields": [], + "index": 12, + "docs": [ + "As a member, retire from the Alliance and unreserve the deposit.", + "", + "This can only be done once you have called `give_retirement_notice` and the", + "`RetirementPeriod` has passed." + ] + }, + { + "name": "kick_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Kick a member from the Alliance and slash its deposit." + ] + }, + { + "name": "add_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 405, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Add accounts or websites to the list of unscrupulous items." + ] + }, + { + "name": "remove_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 405, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Deem some items no longer unscrupulous." + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 154, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 154, + "typeName": "u32", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "abdicate_fellow_status", + "fields": [], + "index": 17, + "docs": [ + "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows", + "who do not want to leave the Alliance but do not have the capacity to participate", + "operationally for some time." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 400, + "type": { + "path": [ + "pallet_alliance", + "types", + "DisbandWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "fellow_members", + "type": 154, + "typeName": "u32", + "docs": [] + }, + { + "name": "ally_members", + "type": 154, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [ + "pallet_alliance", + "types", + "Cid" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 402, + "typeName": "Version", + "docs": [] + }, + { + "name": "codec", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "hash", + "type": 403, + "typeName": "Multihash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 402, + "type": { + "path": [ + "pallet_alliance", + "types", + "Version" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "pallet_alliance", + "types", + "Multihash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "digest", + "type": 404, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 406 + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "pallet_alliance", + "UnscrupulousItem" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Url", + "type": 407 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AccountId", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Website", + "fields": [ + { + "name": null, + "type": 407, + "typeName": "Url", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is delegated (or transferred based on", + "[`adapter::StakeStrategyType`]) from the member to the pool account and immediately", + "increases the pool's bond.", + "", + "The method of transferring the amount to the pool account is determined by", + "[`adapter::StakeStrategyType`]. If the pool is configured to use", + "[`adapter::StakeStrategyType::Delegate`], the funds remain in the account of", + "the `origin`, while the pool gains the right to use these funds for staking.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 409, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to", + "have at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 410, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 411, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 411, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 412, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 412, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 412, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 413, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller is the pool's nominator or root." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 409, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 415, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 416, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 418, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The `root` role of the pool is _always_ allowed to claim the pool's commission.", + "", + "If the pool has set `CommissionClaimPermission::Permissionless`, then any account can", + "trigger the process of claiming the pool's commission.", + "", + "If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only", + "accounts", + "* `acc`, and", + "* the pool's root account", + "", + "may call this extrinsic on behalf of the pool.", + "", + "Pending commissions are paid out and added to the total claimed commission.", + "The total pending commission is reset to zero." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 419, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "The pending slash amount of the member must be equal or more than `ExistentialDeposit`.", + "This call can be dispatched permissionlessly (i.e. by any account). If the execution", + "is successful, fee is refunded and caller may be rewarded with a part of the slash", + "based on the [`crate::pallet::Config::StakeAdapter`] configuration." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 409, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 417 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 417, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 49, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 420 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 420, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 146, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 390, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 98, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 247, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 422, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AddOrigin`.", + "- `who`: Account of non-member which will become a member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `PromoteOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `DemoteOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_rank", + "type": 98, + "typeName": "Rank", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `RemoveOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "aye", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + }, + { + "name": "exchange_member", + "fields": [ + { + "name": "who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_who", + "type": 163, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Exchanges a member with a new account and the same existing rank.", + "", + "- `origin`: Must be the `ExchangeOrigin`.", + "- `who`: Account of existing member of rank greater than zero to be exchanged.", + "- `new_who`: New Account of existing member of rank greater than zero to exchanged to." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 423, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Creates an empty liquidity pool and an associated new `lp_token` asset", + "(the id of which is returned in the `Event::PoolCreated` event).", + "", + "Once a pool is created, someone may [`Pallet::add_liquidity`] to it." + ] + }, + { + "name": "add_liquidity", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount1_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Provide liquidity into the pool of `asset1` and `asset2`.", + "NOTE: an optimal amount of asset1 and asset2 will be calculated and", + "might be different than the provided `amount1_desired`/`amount2_desired`", + "thus you should provide the min amount you're happy to provide.", + "Params `amount1_min`/`amount2_min` represent that.", + "`mint_to` will be sent the liquidity tokens that represent this share of the pool.", + "", + "NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity,", + "batch an atomic call with [`Pallet::add_liquidity`] and", + "[`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`]", + "calls to render the liquidity withdrawable and rectify the exchange rate.", + "", + "Once liquidity is added, someone may successfully call", + "[`Pallet::swap_exact_tokens_for_tokens`]." + ] + }, + { + "name": "remove_liquidity", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "lp_token_burn", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be", + "burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive`", + "it's possible to control the min amount of returned tokens you're happy with." + ] + }, + { + "name": "swap_exact_tokens_for_tokens", + "fields": [ + { + "name": "path", + "type": 424, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_out_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap the exact amount of `asset1` into `asset2`.", + "`amount_out_min` param allows you to specify the min amount of the `asset2`", + "you're happy to receive.", + "", + "[`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "swap_tokens_for_exact_tokens", + "fields": [ + { + "name": "path", + "type": 424, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_in_max", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap any amount of `asset1` to get the exact amount of `asset2`.", + "`amount_in_max` param allows to specify the max amount of the `asset1`", + "you're happy to provide.", + "", + "[`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Touch an existing pool to fulfill prerequisites before providing liquidity, such as", + "ensuring that the pool's accounts are in place. It is typically useful when a pool", + "creator removes the pool's accounts and does not provide a liquidity. This action may", + "involve holding assets from the caller as a deposit for creating the pool's accounts.", + "", + "The origin must be Signed.", + "", + "- `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).", + "- `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).", + "", + "Emits `Touched` event when successful." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 424, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 40 + } + }, + "docs": [] + } + }, + { + "id": 425, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed", + "by a call to `rebond` in the staking system.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`].", + "", + "## Details", + "", + "Can set the number of eras to check per block, and potentially other admin work.", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 426, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 427, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "emit_event", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "noop", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 428, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "pause", + "fields": [ + { + "name": "full_name", + "type": 429, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Pause a call.", + "", + "Can only be called by [`Config::PauseOrigin`].", + "Emits an [`Event::CallPaused`] event on success." + ] + }, + { + "name": "unpause", + "fields": [ + { + "name": "ident", + "type": 429, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Un-pause a call.", + "", + "Can only be called by [`Config::UnpauseOrigin`].", + "Emits an [`Event::CallUnpaused`] event on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 429, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 115, + 115 + ] + }, + "docs": [] + } + }, + { + "id": 430, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [], + "index": 0, + "docs": [ + "Enter safe-mode permissionlessly for [`Config::EnterDuration`] blocks.", + "", + "Reserves [`Config::EnterDepositAmount`] from the caller's account.", + "Emits an [`Event::Entered`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is already entered.", + "Errors with [`Error::NotConfigured`] if the deposit amount is `None`." + ] + }, + { + "name": "force_enter", + "fields": [], + "index": 1, + "docs": [ + "Enter safe-mode by force for a per-origin configured number of blocks.", + "", + "Emits an [`Event::Entered`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is already entered.", + "", + "Can only be called by the [`Config::ForceEnterOrigin`] origin." + ] + }, + { + "name": "extend", + "fields": [], + "index": 2, + "docs": [ + "Extend the safe-mode permissionlessly for [`Config::ExtendDuration`] blocks.", + "", + "This accumulates on top of the current remaining duration.", + "Reserves [`Config::ExtendDepositAmount`] from the caller's account.", + "Emits an [`Event::Extended`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is entered.", + "Errors with [`Error::NotConfigured`] if the deposit amount is `None`.", + "", + "This may be called by any signed origin with [`Config::ExtendDepositAmount`] free", + "currency to reserve. This call can be disabled for all origins by configuring", + "[`Config::ExtendDepositAmount`] to `None`." + ] + }, + { + "name": "force_extend", + "fields": [], + "index": 3, + "docs": [ + "Extend the safe-mode by force for a per-origin configured number of blocks.", + "", + "Emits an [`Event::Extended`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is inactive.", + "", + "Can only be called by the [`Config::ForceExtendOrigin`] origin." + ] + }, + { + "name": "force_exit", + "fields": [], + "index": 4, + "docs": [ + "Exit safe-mode by force.", + "", + "Emits an [`Event::Exited`] with [`ExitReason::Force`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is inactive.", + "", + "Note: `safe-mode` will be automatically deactivated by [`Pallet::on_initialize`] hook", + "after the block height is greater than the [`EnteredUntil`] storage item.", + "Emits an [`Event::Exited`] with [`ExitReason::Timeout`] event when deactivated in the", + "hook." + ] + }, + { + "name": "force_slash_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Slash a deposit for an account that entered or extended safe-mode at a given", + "historical block.", + "", + "This can only be called while safe-mode is entered.", + "", + "Emits a [`Event::DepositSlashed`] event on success.", + "Errors with [`Error::Entered`] if safe-mode is entered.", + "", + "Can only be called by the [`Config::ForceDepositOrigin`] origin." + ] + }, + { + "name": "release_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Permissionlessly release a deposit for an account that entered safe-mode at a", + "given historical block.", + "", + "The call can be completely disabled by setting [`Config::ReleaseDelay`] to `None`.", + "This cannot be called while safe-mode is entered and not until", + "[`Config::ReleaseDelay`] blocks have passed since safe-mode was entered.", + "", + "Emits a [`Event::DepositReleased`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is entered.", + "Errors with [`Error::CannotReleaseYet`] if [`Config::ReleaseDelay`] block have not", + "passed since safe-mode was entered. Errors with [`Error::NoDeposit`] if the payee has no", + "reserved currency at the block specified." + ] + }, + { + "name": "force_release_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Force to release a deposit for an account that entered safe-mode at a given", + "historical block.", + "", + "This can be called while safe-mode is still entered.", + "", + "Emits a [`Event::DepositReleased`] event on success.", + "Errors with [`Error::Entered`] if safe-mode is entered.", + "Errors with [`Error::NoDeposit`] if the payee has no reserved currency at the", + "specified block.", + "", + "Can only be called by the [`Config::ForceDepositOrigin`] origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 431, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_cursor", + "fields": [ + { + "name": "cursor", + "type": 432, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Allows root to set a cursor to forcefully start, stop or forward the migration process.", + "", + "Should normally not be needed and is only in place as emergency measure. Note that", + "restarting the migration process in this manner will not call the", + "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event." + ] + }, + { + "name": "force_set_active_cursor", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 436, + "typeName": "Option>", + "docs": [] + }, + { + "name": "started_at", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allows root to set an active cursor to forcefully start/forward the migration process.", + "", + "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the", + "`started_at` value to the next block number. Otherwise this would not be possible, since", + "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`", + "indicates that the current block number plus one should be used." + ] + }, + { + "name": "force_onboard_mbms", + "fields": [], + "index": 2, + "docs": [ + "Forces the onboarding of the migrations.", + "", + "This process happens automatically on a runtime upgrade. It is in place as an emergency", + "measurement. The cursor needs to be `None` for this to succeed." + ] + }, + { + "name": "clear_historic", + "fields": [ + { + "name": "selector", + "type": 437, + "typeName": "HistoricCleanupSelector>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clears the `Historic` set.", + "", + "`map_cursor` must be set to the last value that was returned by the", + "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a", + "way that will result in a sensible weight." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 432, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 433 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 433, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [ + "pallet_migrations", + "MigrationCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 434 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Active", + "fields": [ + { + "name": null, + "type": 435, + "typeName": "ActiveCursor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Stuck", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "pallet_migrations", + "ActiveCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 434 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 436, + "typeName": "Option", + "docs": [] + }, + { + "name": "started_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 434 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 434, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "pallet_migrations", + "HistoricCleanupSelector" + ], + "params": [ + { + "name": "Id", + "type": 115 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Specific", + "fields": [ + { + "name": null, + "type": 438, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wildcard", + "fields": [ + { + "name": "limit", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "previous_cursor", + "type": 439, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 115 + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "configure", + "fields": [ + { + "name": "config", + "type": 441, + "typeName": "ConfigRecordOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Configure the pallet.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `config`: The configuration for this pallet." + ] + }, + { + "name": "reserve", + "fields": [ + { + "name": "workload", + "type": 442, + "typeName": "Schedule", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Reserve a core for a workload.", + "", + "The workload will be given a reservation, but two sale period boundaries must pass", + "before the core is actually assigned.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `workload`: The workload which should be permanently placed on a core." + ] + }, + { + "name": "unreserve", + "fields": [ + { + "name": "item_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Cancel a reservation for a workload.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `item_index`: The index of the reservation. Usually this will also be the index of the", + " core on which the reservation has been scheduled. However, it is possible that if", + " other cores are reserved or unreserved in the same sale rotation that they won't", + " correspond, so it's better to look up the core properly in the `Reservations` storage." + ] + }, + { + "name": "set_lease", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reserve a core for a single task workload for a limited period.", + "", + "In the interlude and sale period where Bulk Coretime is sold for the period immediately", + "after `until`, then the same workload may be renewed.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `task`: The workload which should be placed on a core.", + "- `until`: The timeslice now earlier than which `task` should be placed as a workload on", + " a core." + ] + }, + { + "name": "start_sales", + "fields": [ + { + "name": "end_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "extra_cores", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Begin the Bulk Coretime sales rotation.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `end_price`: The price after the leadin period of Bulk Coretime in the first sale.", + "- `extra_cores`: Number of extra cores that should be requested on top of the cores", + " required for `Reservations` and `Leases`.", + "", + "This will call [`Self::request_core_count`] internally to set the correct core count on", + "the relay chain." + ] + }, + { + "name": "purchase", + "fields": [ + { + "name": "price_limit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Purchase Bulk Coretime in the ongoing Sale.", + "", + "- `origin`: Must be a Signed origin with at least enough funds to pay the current price", + " of Bulk Coretime.", + "- `price_limit`: An amount no more than which should be paid." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Renew Bulk Coretime in the ongoing Sale or its prior Interlude Period.", + "", + "- `origin`: Must be a Signed origin with at least enough funds to pay the renewal price", + " of the core.", + "- `core`: The core which should be renewed." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Transfer a Bulk Coretime Region to a new owner.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region whose ownership should change.", + "- `new_owner`: The new owner for the Region." + ] + }, + { + "name": "partition", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "pivot", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Split a Bulk Coretime Region into two non-overlapping Regions at a particular time into", + "the region.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be partitioned into two non-overlapping Regions.", + "- `pivot`: The offset in time into the Region at which to make the split." + ] + }, + { + "name": "interlace", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "pivot", + "type": 444, + "typeName": "CoreMask", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Split a Bulk Coretime Region into two wholly-overlapping Regions with complementary", + "interlace masks which together make up the original Region's interlace mask.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should become two interlaced Regions of incomplete", + " regularity.", + "- `pivot`: The interlace mask of one of the two new regions (the other is its partial", + " complement)." + ] + }, + { + "name": "assign", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "finality", + "type": 448, + "typeName": "Finality", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Assign a Bulk Coretime Region to a task.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be assigned to the task.", + "- `task`: The task to assign.", + "- `finality`: Indication of whether this assignment is final (in which case it may be", + " eligible for renewal) or provisional (in which case it may be manipulated and/or", + "reassigned at a later stage)." + ] + }, + { + "name": "pool", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "finality", + "type": 448, + "typeName": "Finality", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Place a Bulk Coretime Region into the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be assigned to the Pool.", + "- `payee`: The account which is able to collect any revenue due for the usage of this", + " Coretime." + ] + }, + { + "name": "claim_revenue", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "max_timeslices", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claim the revenue owed from inclusion in the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin.", + "- `region_id`: The Region which was assigned to the Pool.", + "- `max_timeslices`: The maximum number of timeslices which should be processed. This", + " must be greater than 0. This may affect the weight of the call but should be ideally", + " made equivalent to the length of the Region `region_id`. If less, further dispatches", + " will be required with the same `region_id` to claim revenue for the remainder." + ] + }, + { + "name": "purchase_credit", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "RelayAccountIdOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Purchase credit for use in the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin able to pay at least `amount`.", + "- `amount`: The amount of credit to purchase.", + "- `beneficiary`: The account on the Relay-chain which controls the credit (generally", + " this will be the collator's hot wallet)." + ] + }, + { + "name": "drop_region", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Drop an expired Region from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The Region which has expired." + ] + }, + { + "name": "drop_contribution", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Drop an expired Instantaneous Pool Contribution record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The Region identifying the Pool Contribution which has expired." + ] + }, + { + "name": "drop_history", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Drop an expired Instantaneous Pool History record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The time of the Pool History record which has expired." + ] + }, + { + "name": "drop_renewal", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Drop an expired Allowed Renewal record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `core`: The core to which the expired renewal refers.", + "- `when`: The timeslice to which the expired renewal refers. This must have passed." + ] + }, + { + "name": "request_core_count", + "fields": [ + { + "name": "core_count", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Request a change to the number of cores available for scheduling work.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `core_count`: The desired number of cores to be made available." + ] + }, + { + "name": "notify_core_count", + "fields": [ + { + "name": "core_count", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "notify_revenue", + "fields": [ + { + "name": "revenue", + "type": 449, + "typeName": "OnDemandRevenueRecordOf", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "enable_auto_renew", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "workload_end_hint", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Extrinsic for enabling auto renewal.", + "", + "Callable by the sovereign account of the task on the specified core. This account", + "will be charged at the start of every bulk period for renewing core time.", + "", + "- `origin`: Must be the sovereign account of the task", + "- `core`: The core to which the task to be renewed is currently assigned.", + "- `task`: The task for which we want to enable auto renewal.", + "- `workload_end_hint`: should be used when enabling auto-renewal for a core that is not", + " expiring in the upcoming bulk period (e.g., due to holding a lease) since it would be", + " inefficient to look up when the core expires to schedule the next renewal." + ] + }, + { + "name": "disable_auto_renew", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Extrinsic for disabling auto renewal.", + "", + "Callable by the sovereign account of the task on the specified core.", + "", + "- `origin`: Must be the sovereign account of the task.", + "- `core`: The core for which we want to disable auto renewal.", + "- `task`: The task for which we want to disable auto renewal." + ] + }, + { + "name": "force_reserve", + "fields": [ + { + "name": "workload", + "type": 442, + "typeName": "Schedule", + "docs": [] + }, + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Reserve a core for a workload immediately.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `workload`: The workload which should be permanently placed on a core starting", + " immediately.", + "- `core`: The core to which the assignment should be made until the reservation takes", + " effect. It is left to the caller to either add this new core or reassign any other", + " tasks to this existing core.", + "", + "This reserves the workload and then injects the workload into the Workplan for the next", + "two sale periods. This overwrites any existing assignments for this core at the start of", + "the next sale period." + ] + }, + { + "name": "remove_lease", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Remove a lease.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `task`: The task id of the lease which should be removed." + ] + }, + { + "name": "remove_assignment", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Remove an assignment from the Workplan.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `region_id`: The Region to be removed from the workplan." + ] + }, + { + "name": "swap_leases", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "other", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 441, + "type": { + "path": [ + "pallet_broker", + "types", + "ConfigRecord" + ], + "params": [ + { + "name": "RelayBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "advance_notice", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "interlude_length", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "region_length", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "ideal_bulk_proportion", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "limit_cores_offered", + "type": 130, + "typeName": "Option", + "docs": [] + }, + { + "name": "renewal_bump", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "contribution_timeout", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 443 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 446, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "pallet_broker", + "types", + "ScheduleItem" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "mask", + "type": 444, + "typeName": "CoreMask", + "docs": [] + }, + { + "name": "assignment", + "type": 445, + "typeName": "CoreAssignment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "pallet_broker", + "core_mask", + "CoreMask" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 287, + "typeName": "[u8; 10]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [ + "pallet_broker", + "coretime_interface", + "CoreAssignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Idle", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Pool", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Task", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 443 + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [ + "pallet_broker", + "types", + "RegionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "mask", + "type": 444, + "typeName": "CoreMask", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [ + "pallet_broker", + "types", + "Finality" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Provisional", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Final", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [ + "pallet_broker", + "types", + "OnDemandRevenueRecord" + ], + "params": [ + { + "name": "RelayBlockNumber", + "type": 4 + }, + { + "name": "RelayBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "RelayBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [ + "pallet_mixnet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "registration", + "type": 451, + "typeName": "RegistrationFor", + "docs": [] + }, + { + "name": "signature", + "type": 455, + "typeName": "AuthoritySignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a mixnode for the following session." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 451, + "type": { + "path": [ + "pallet_mixnet", + "Registration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "BoundedMixnode", + "type": 452 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthorityIndex", + "docs": [] + }, + { + "name": "mixnode", + "type": 452, + "typeName": "BoundedMixnode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "pallet_mixnet", + "BoundedMixnode" + ], + "params": [ + { + "name": "ExternalAddresses", + "type": 453 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "kx_public", + "type": 1, + "typeName": "KxPublic", + "docs": [] + }, + { + "name": "peer_id", + "type": 1, + "typeName": "PeerId", + "docs": [] + }, + { + "name": "external_addresses", + "type": 453, + "typeName": "ExternalAddresses", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 453, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 111 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 454, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 111 + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "sp_mixnet", + "types", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 259, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 457, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 457, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 458, + "typeName": "dynamic_params::storage::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 461, + "typeName": "dynamic_params::referenda::Parameters", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 459, + "typeName": "BaseDeposit", + "docs": [] + }, + { + "name": null, + "type": 234, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 460, + "typeName": "ByteDeposit", + "docs": [] + }, + { + "name": null, + "type": 234, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "BaseDeposit" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ByteDeposit" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Tracks", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "Tracks", + "docs": [] + }, + { + "name": null, + "type": 463, + "typeName": "Option\n, ConstU32<100>,>>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 471, + "typeName": "Origins", + "docs": [] + }, + { + "name": null, + "type": 472, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "Tracks" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 464 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 464, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 465 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 470, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [ + "pallet_referenda", + "types", + "Track" + ], + "params": [ + { + "name": "Id", + "type": 98 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 98, + "typeName": "Id", + "docs": [] + }, + { + "name": "info", + "type": 466, + "typeName": "TrackInfo", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 300 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 300, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 467, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 467, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 468, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 468, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 468, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 469, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 469, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 465 + } + }, + "docs": [] + } + }, + { + "id": 471, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "Origins" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 473 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 473, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 474 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 475, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 146, + 98 + ] + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 474 + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "migrate_to_new_account", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Migrates an existing pool to a new account ID derivation method for a given asset pair.", + "If the migration is successful, transaction fees are refunded to the caller.", + "", + "Must be signed." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 477, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "eth_transact", + "fields": [ + { + "name": "payload", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server.", + "", + "# Parameters", + "", + "* `payload`: The encoded [`crate::evm::TransactionSigned`].", + "* `gas_limit`: The gas limit enforced during contract execution.", + "* `storage_deposit_limit`: The maximum balance that can be charged to the caller for", + " storage usage.", + "", + "# Note", + "", + "This call cannot be dispatched directly; attempting to do so will result in a failed", + "transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the", + "runtime converts it into a [`sp_runtime::generic::CheckedExtrinsic`] by recovering the", + "signer and validating the transaction." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 478, + "typeName": "H160", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 92, + "typeName": "Option<[u8; 32]>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 92, + "typeName": "Option<[u8; 32]>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2`", + "\tsemantics are used. If `None` then `CRATE1` is used.", + "", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is deployed, and a `code_hash` is created for that code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the size of the supplied `code`.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`]." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 478, + "typeName": "H160", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "map_account", + "fields": [], + "index": 7, + "docs": [ + "Register the callers account id so that it can be used in contract interactions.", + "", + "This will error if the origin is already mapped or is a eth native `Address20`. It will", + "take a deposit that can be released by calling [`Self::unmap_account`]." + ] + }, + { + "name": "unmap_account", + "fields": [], + "index": 8, + "docs": [ + "Unregister the callers account id in order to free the deposit.", + "", + "There is no reason to ever call this function other than freeing up the deposit.", + "This is only useful when the account should no longer be used." + ] + }, + { + "name": "dispatch_as_fallback_account", + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch an `call` with the origin set to the callers fallback address.", + "", + "Every `AccountId32` can control its corresponding fallback account. The fallback account", + "is the `AccountId20` with the last 12 bytes set to `0xEE`. This is essentially a", + "recovery function in case an `AccountId20` was used without creating a mapping first." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 478, + "type": { + "path": [ + "primitive_types", + "H160" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 164, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 479, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "staked_asset_id", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "reward_asset_id", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "expiry", + "type": 390, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "admin", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new reward pool.", + "", + "Parameters:", + "- `origin`: must be `Config::CreatePoolOrigin`;", + "- `staked_asset_id`: the asset to be staked in the pool;", + "- `reward_asset_id`: the asset to be distributed as rewards;", + "- `reward_rate_per_block`: the amount of reward tokens distributed per block;", + "- `expiry`: the block number at which the pool will cease to accumulate rewards. The", + " [`DispatchTime::After`] variant evaluated at the execution time.", + "- `admin`: the account allowed to extend the pool expiration, increase the rewards rate", + " and receive the unutilized reward tokens back after the pool completion. If `None`,", + " the caller is set as an admin." + ] + }, + { + "name": "stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Stake additional tokens in a pool.", + "", + "A freeze is placed on the staked tokens." + ] + }, + { + "name": "unstake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "staker", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unstake tokens from a pool.", + "", + "Removes the freeze on the staked tokens.", + "", + "Parameters:", + "- origin: must be the `staker` if the pool is still active. Otherwise, any account.", + "- pool_id: the pool to unstake from.", + "- amount: the amount of tokens to unstake.", + "- staker: the account to unstake from. If `None`, the caller is used." + ] + }, + { + "name": "harvest_rewards", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "staker", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Harvest unclaimed pool rewards.", + "", + "Parameters:", + "- origin: must be the `staker` if the pool is still active. Otherwise, any account.", + "- pool_id: the pool to harvest from.", + "- staker: the account for which to harvest rewards. If `None`, the caller is used." + ] + }, + { + "name": "set_pool_reward_rate_per_block", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Modify a pool reward rate.", + "", + "Currently the reward rate can only be increased.", + "", + "Only the pool admin may perform this operation." + ] + }, + { + "name": "set_pool_admin", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Modify a pool admin.", + "", + "Only the pool admin may perform this operation." + ] + }, + { + "name": "set_pool_expiry_block", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_expiry", + "type": 390, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set when the pool should expire.", + "", + "Currently the expiry block can only be extended.", + "", + "Only the pool admin may perform this operation." + ] + }, + { + "name": "deposit_reward_tokens", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Convenience method to deposit reward tokens into a pool.", + "", + "This method is not strictly necessary (tokens could be transferred directly to the", + "pool pot address), but is provided for convenience so manual derivation of the", + "account id is not required." + ] + }, + { + "name": "cleanup_pool", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cleanup a pool.", + "", + "Origin must be the pool admin.", + "", + "Cleanup storage, release any associated storage cost and return the remaining reward", + "tokens to the admin." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 480, + "type": { + "path": [ + "pallet_meta_tx", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "dispatch", + "fields": [ + { + "name": "meta_tx", + "type": 481, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch a given meta transaction.", + "", + "- `_origin`: Can be any kind of origin.", + "- `meta_tx`: Meta Transaction with a target call to be dispatched." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_meta_tx", + "MetaTx" + ], + "params": [ + { + "name": "Call", + "type": 139 + }, + { + "name": "Extension", + "type": 482 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "call", + "type": 139, + "typeName": "Call", + "docs": [] + }, + { + "name": "extension_version", + "type": 2, + "typeName": "ExtensionVersion", + "docs": [] + }, + { + "name": "extension", + "type": 482, + "typeName": "Extension", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 483, + 484, + 485, + 486, + 487, + 488, + 489, + 491, + 492 + ] + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [ + "pallet_verify_signature", + "extension", + "VerifySignature" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [ + { + "name": "signature", + "type": 313, + "typeName": "T::Signature", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Disabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [ + "pallet_meta_tx", + "extension", + "MetaTxMarker" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 488, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 489, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 490, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 490, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 491, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 154, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 492, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 493, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 495, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "content_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stored data off chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 497, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DefensiveTestCall", + "fields": [], + "index": 0, + "docs": [ + "Event dispatched when the trigger_defensive extrinsic is called." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 394, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account has voted" + ] + }, + { + "name": "VoteRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 394, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A vote has been removed" + ] + }, + { + "name": "VoteUnlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "class", + "type": 98, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The lockup period of a conviction vote expired, and the funds have been unlocked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 500, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 500, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 501 + }, + { + "name": "E", + "type": 503 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 501, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 503, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 501, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 502, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 501 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 501, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A proposal was killed." + ] + }, + { + "name": "ProposalCostBurned", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some cost for storing a proposal was burned." + ] + }, + { + "name": "ProposalCostReleased", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some cost for storing a proposal was released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 505, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewRuleSet", + "fields": [ + { + "name": "rule", + "type": 401, + "typeName": "Cid", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new rule has been set." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "announcement", + "type": 401, + "typeName": "Cid", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new announcement has been proposed." + ] + }, + { + "name": "AnnouncementRemoved", + "fields": [ + { + "name": "announcement", + "type": 401, + "typeName": "Cid", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An on-chain announcement has been removed." + ] + }, + { + "name": "MembersInitialized", + "fields": [ + { + "name": "fellows", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allies", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some accounts have been initialized as members (fellows/allies)." + ] + }, + { + "name": "NewAllyJoined", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 234, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been added as an Ally and reserved its deposit." + ] + }, + { + "name": "AllyElevated", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An ally has been elevated to Fellow." + ] + }, + { + "name": "MemberRetirementPeriodStarted", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A member gave retirement notice and their retirement period started." + ] + }, + { + "name": "MemberRetired", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unreserved", + "type": 234, + "typeName": "Option>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has retired with its deposit unreserved." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "slashed", + "type": 234, + "typeName": "Option>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A member has been kicked out with its deposit slashed." + ] + }, + { + "name": "UnscrupulousItemAdded", + "fields": [ + { + "name": "items", + "type": 405, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Accounts or websites have been added into the list of unscrupulous items." + ] + }, + { + "name": "UnscrupulousItemRemoved", + "fields": [ + { + "name": "items", + "type": 405, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts or websites have been removed from the list of unscrupulous items." + ] + }, + { + "name": "AllianceDisbanded", + "fields": [ + { + "name": "fellow_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ally_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "unreserved", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Alliance disbanded. Includes number deleted members and unreserved deposits." + ] + }, + { + "name": "FellowAbdicated", + "fields": [ + { + "name": "fellow", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Fellow abdicated their voting rights. They are now an Ally." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 506, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 410, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "released_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked).", + "Any funds that are still delegated (i.e. dangling delegation) are released and are", + "represented by `released_balance`." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 416, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 418, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 419, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + }, + { + "name": "MemberClaimPermissionUpdated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "permission", + "type": 415, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A pool member's claim permission has been updated." + ] + }, + { + "name": "MetadataUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A pool's metadata was updated." + ] + }, + { + "name": "PoolNominationMade", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A pool's nominating account (or the pool's root account) has nominated a validator set", + "on behalf of the pool." + ] + }, + { + "name": "PoolNominatorChilled", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The pool is chilled i.e. no longer nominating." + ] + }, + { + "name": "GlobalParamsUpdated", + "fields": [ + { + "name": "min_join_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "max_pools", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 507, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Global parameters regulating nomination pools have been updated." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 507, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 49, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 508, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 98, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 98, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 138, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 509, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 509, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 509, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 509, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 509, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 509, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 509, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex", + "docs": [] + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 98, + "typeName": "Rank", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 98, + "typeName": "Rank", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 511, + "typeName": "VoteRecord", + "docs": [] + }, + { + "name": "tally", + "type": 509, + "typeName": "TallyOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + }, + { + "name": "MemberExchanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The member `who` had their `AccountId` changed to `new_who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 511, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nay", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 512, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 513, + "typeName": "T::PoolId", + "docs": [ + "The pool id associated with the pool. Note that the order of the assets may not be", + "the same as the order specified in the create pool extrinsic." + ] + }, + { + "name": "pool_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account ID of the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the liquidity tokens that will be minted when assets are added to this", + "pool." + ] + } + ], + "index": 0, + "docs": [ + "A successful call of the `CreatePool` extrinsic will create this event." + ] + }, + { + "name": "LiquidityAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity was taken from." + ] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were minted to." + ] + }, + { + "name": "pool_id", + "type": 513, + "typeName": "T::PoolId", + "docs": [ + "The pool id of the pool that the liquidity was added to." + ] + }, + { + "name": "amount1_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was added to the pool." + ] + }, + { + "name": "amount2_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was added to the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was minted." + ] + }, + { + "name": "lp_token_minted", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were minted of that id." + ] + } + ], + "index": 1, + "docs": [ + "A successful call of the `AddLiquidity` extrinsic will create this event." + ] + }, + { + "name": "LiquidityRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were burned from." + ] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "pool_id", + "type": 513, + "typeName": "T::PoolId", + "docs": [ + "The pool id that the liquidity was removed from." + ] + }, + { + "name": "amount1", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was removed from the pool." + ] + }, + { + "name": "amount2", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was removed from the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was burned." + ] + }, + { + "name": "lp_token_burned", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were burned of that id." + ] + }, + { + "name": "withdrawal_fee", + "type": 514, + "typeName": "Permill", + "docs": [ + "Liquidity withdrawal fee (%)." + ] + } + ], + "index": 2, + "docs": [ + "A successful call of the `RemoveLiquidity` extrinsic will create this event." + ] + }, + { + "name": "SwapExecuted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Which account was the instigator of the swap." + ] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 515, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 3, + "docs": [ + "Assets have been converted from one to another. Both `SwapExactTokenForToken`", + "and `SwapTokenForExactToken` will generate this event." + ] + }, + { + "name": "SwapCreditExecuted", + "fields": [ + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 515, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 4, + "docs": [ + "Assets have been converted from one to another." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "pool_id", + "type": 513, + "typeName": "T::PoolId", + "docs": [ + "The ID of the pool." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account initiating the touch." + ] + } + ], + "index": 5, + "docs": [ + "Pool has been touched in order to fulfill operational requirements." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 513, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 40, + 40 + ] + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 516 + } + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 40, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 518, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 519, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 519, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 520, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TestEvent", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 521, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallPaused", + "fields": [ + { + "name": "full_name", + "type": 429, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "This pallet, or a specific call is now paused." + ] + }, + { + "name": "CallUnpaused", + "fields": [ + { + "name": "full_name", + "type": 429, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "This pallet, or a specific call is now unpaused." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 522, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Entered", + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The safe-mode was entered until inclusively this block." + ] + }, + { + "name": "Extended", + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The safe-mode was extended until inclusively this block." + ] + }, + { + "name": "Exited", + "fields": [ + { + "name": "reason", + "type": 523, + "typeName": "ExitReason", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exited the safe-mode for a specific reason." + ] + }, + { + "name": "DepositPlaced", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account reserved funds for either entering or extending the safe-mode." + ] + }, + { + "name": "DepositReleased", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account had a reserve released that was reserved." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An account had reserve slashed that was reserved." + ] + }, + { + "name": "CannotDeposit", + "fields": [], + "index": 6, + "docs": [ + "Could not hold funds for entering or extending the safe-mode.", + "", + "This error comes from the underlying `Currency`." + ] + }, + { + "name": "CannotRelease", + "fields": [], + "index": 7, + "docs": [ + "Could not release funds for entering or extending the safe-mode.", + "", + "This error comes from the underlying `Currency`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 523, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "ExitReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Timeout", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Force", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_statement", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewStatement", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "statement", + "type": 525, + "typeName": "Statement", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new statement is submitted" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 525, + "type": { + "path": [ + "sp_statement_store", + "Statement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "proof", + "type": 526, + "typeName": "Option", + "docs": [] + }, + { + "name": "decryption_key", + "type": 92, + "typeName": "Option", + "docs": [] + }, + { + "name": "channel", + "type": 92, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "num_topics", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "topics", + "type": 528, + "typeName": "[Topic; MAX_TOPICS]", + "docs": [] + }, + { + "name": "data", + "type": 439, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 527 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 527, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 527, + "type": { + "path": [ + "sp_statement_store", + "Proof" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Sr25519", + "fields": [ + { + "name": "signature", + "type": 259, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "signer", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Ed25519", + "fields": [ + { + "name": "signature", + "type": 259, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "signer", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Secp256k1Ecdsa", + "fields": [ + { + "name": "signature", + "type": 314, + "typeName": "[u8; 65]", + "docs": [] + }, + { + "name": "signer", + "type": 244, + "typeName": "[u8; 33]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "OnChain", + "fields": [ + { + "name": "who", + "type": 1, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "BlockHash", + "docs": [] + }, + { + "name": "event_index", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UpgradeStarted", + "fields": [ + { + "name": "migrations", + "type": 4, + "typeName": "u32", + "docs": [ + "The number of migrations that this upgrade contains.", + "", + "This can be used to design a progress indicator in combination with counting the", + "`MigrationCompleted` and `MigrationSkipped` events." + ] + } + ], + "index": 0, + "docs": [ + "A Runtime upgrade started.", + "", + "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`." + ] + }, + { + "name": "UpgradeCompleted", + "fields": [], + "index": 1, + "docs": [ + "The current runtime upgrade completed.", + "", + "This implies that all of its migrations completed successfully as well." + ] + }, + { + "name": "UpgradeFailed", + "fields": [], + "index": 2, + "docs": [ + "Runtime upgrade failed.", + "", + "This is very bad and will require governance intervention." + ] + }, + { + "name": "MigrationSkipped", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the skipped migration within the [`Config::Migrations`] list." + ] + } + ], + "index": 3, + "docs": [ + "A migration was skipped since it was already executed in the past." + ] + }, + { + "name": "MigrationAdvanced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 4, + "docs": [ + "A migration progressed." + ] + }, + { + "name": "MigrationCompleted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 5, + "docs": [ + "A Migration completed." + ] + }, + { + "name": "MigrationFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 6, + "docs": [ + "A Migration failed.", + "", + "This implies that the whole upgrade failed and governance intervention is required." + ] + }, + { + "name": "HistoricCleared", + "fields": [ + { + "name": "next_cursor", + "type": 439, + "typeName": "Option>", + "docs": [ + "Should be passed to `clear_historic` in a successive call." + ] + } + ], + "index": 7, + "docs": [ + "The set of historical migrations has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 530, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Purchased", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The identity of the purchaser." + ] + }, + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The identity of the Region." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price paid for this Region." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 0, + "docs": [ + "A Region of Bulk Coretime has been purchased." + ] + }, + { + "name": "Renewable", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The core whose workload can be renewed." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price at which the workload can be renewed." + ] + }, + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The time at which the workload would recommence of this renewal. The call to renew", + "cannot happen before the beginning of the interlude prior to the sale for regions", + "which begin at this time." + ] + }, + { + "name": "workload", + "type": 442, + "typeName": "Schedule", + "docs": [ + "The actual workload which can be renewed." + ] + } + ], + "index": 1, + "docs": [ + "The workload of a core has become renewable." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The identity of the renewer." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price paid for this renewal." + ] + }, + { + "name": "old_core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The index of the core on which the `workload` was previously scheduled." + ] + }, + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The index of the core on which the renewed `workload` has been scheduled." + ] + }, + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The time at which the `workload` will begin on the `core`." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The number of timeslices for which this `workload` is newly scheduled." + ] + }, + { + "name": "workload", + "type": 442, + "typeName": "Schedule", + "docs": [ + "The workload which was renewed." + ] + } + ], + "index": 2, + "docs": [ + "A workload has been renewed." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which has been transferred." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + }, + { + "name": "old_owner", + "type": 43, + "typeName": "Option", + "docs": [ + "The old owner of the Region." + ] + }, + { + "name": "owner", + "type": 43, + "typeName": "Option", + "docs": [ + "The new owner of the Region." + ] + } + ], + "index": 3, + "docs": [ + "Ownership of a Region has been transferred." + ] + }, + { + "name": "Partitioned", + "fields": [ + { + "name": "old_region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which was split." + ] + }, + { + "name": "new_region_ids", + "type": 531, + "typeName": "(RegionId, RegionId)", + "docs": [ + "The new Regions into which it became." + ] + } + ], + "index": 4, + "docs": [ + "A Region has been split into two non-overlapping Regions." + ] + }, + { + "name": "Interlaced", + "fields": [ + { + "name": "old_region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which was interlaced." + ] + }, + { + "name": "new_region_ids", + "type": 531, + "typeName": "(RegionId, RegionId)", + "docs": [ + "The new Regions into which it became." + ] + } + ], + "index": 5, + "docs": [ + "A Region has been converted into two overlapping Regions each of lesser regularity." + ] + }, + { + "name": "Assigned", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which was assigned." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the assignment." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which the Region was assigned." + ] + } + ], + "index": 6, + "docs": [ + "A Region has been assigned to a particular task." + ] + }, + { + "name": "AssignmentRemoved", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which was removed from the workplan." + ] + } + ], + "index": 7, + "docs": [ + "An assignment has been removed from the workplan." + ] + }, + { + "name": "Pooled", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which was added to the Instantaneous Coretime Pool." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 8, + "docs": [ + "A Region has been added to the Instantaneous Coretime Pool." + ] + }, + { + "name": "CoreCountRequested", + "fields": [ + { + "name": "core_count", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The number of cores requested." + ] + } + ], + "index": 9, + "docs": [ + "A new number of cores has been requested." + ] + }, + { + "name": "CoreCountChanged", + "fields": [ + { + "name": "core_count", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The new number of cores available for scheduling." + ] + } + ], + "index": 10, + "docs": [ + "The number of cores available for scheduling has changed." + ] + }, + { + "name": "ReservationMade", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the reservation." + ] + }, + { + "name": "workload", + "type": 442, + "typeName": "Schedule", + "docs": [ + "The workload of the reservation." + ] + } + ], + "index": 11, + "docs": [ + "There is a new reservation for a workload." + ] + }, + { + "name": "ReservationCancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the reservation which was cancelled." + ] + }, + { + "name": "workload", + "type": 442, + "typeName": "Schedule", + "docs": [ + "The workload of the now cancelled reservation." + ] + } + ], + "index": 12, + "docs": [ + "A reservation for a workload has been cancelled." + ] + }, + { + "name": "SaleInitialized", + "fields": [ + { + "name": "sale_start", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The relay block number at which the sale will/did start." + ] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The length in relay chain blocks of the Leadin Period (where the price is", + "decreasing)." + ] + }, + { + "name": "start_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price of Bulk Coretime at the beginning of the Leadin Period." + ] + }, + { + "name": "end_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price of Bulk Coretime after the Leadin Period." + ] + }, + { + "name": "region_begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The first timeslice of the Regions which are being sold in this sale." + ] + }, + { + "name": "region_end", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice on which the Regions which are being sold in the sale terminate.", + "(i.e. One after the last timeslice which the Regions control.)" + ] + }, + { + "name": "ideal_cores_sold", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The number of cores we want to sell, ideally." + ] + }, + { + "name": "cores_offered", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "Number of cores which are/have been offered for sale." + ] + } + ], + "index": 13, + "docs": [ + "A new sale has been initialized." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core will be assigned." + ] + }, + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice contained in the sale period after which this lease will", + "self-terminate (and therefore the earliest timeslice at which the lease may no", + "longer apply)." + ] + } + ], + "index": 14, + "docs": [ + "A new lease has been created." + ] + }, + { + "name": "LeaseRemoved", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core was assigned." + ] + } + ], + "index": 15, + "docs": [ + "A lease has been removed." + ] + }, + { + "name": "LeaseEnding", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core was assigned." + ] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice at which the task will no longer be scheduled." + ] + } + ], + "index": 16, + "docs": [ + "A lease is about to end." + ] + }, + { + "name": "SalesStarted", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The nominal price of an Region of Bulk Coretime." + ] + }, + { + "name": "core_count", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The maximum number of cores which this pallet will attempt to assign." + ] + } + ], + "index": 17, + "docs": [ + "The sale rotation has been started and a new sale is imminent." + ] + }, + { + "name": "RevenueClaimBegun", + "fields": [ + { + "name": "region", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The region to be claimed for." + ] + }, + { + "name": "max_timeslices", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The maximum number of timeslices which should be searched for claimed." + ] + } + ], + "index": 18, + "docs": [ + "The act of claiming revenue has begun." + ] + }, + { + "name": "RevenueClaimItem", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose claim is being processed." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount which was claimed at this timeslice." + ] + } + ], + "index": 19, + "docs": [ + "A particular timeslice has a non-zero claim." + ] + }, + { + "name": "RevenueClaimPaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account to whom revenue has been paid." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The total amount of revenue claimed and paid." + ] + }, + { + "name": "next", + "type": 532, + "typeName": "Option", + "docs": [ + "The next region which should be claimed for the continuation of this contribution." + ] + } + ], + "index": 20, + "docs": [ + "A revenue claim has (possibly only in part) been paid." + ] + }, + { + "name": "CreditPurchased", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account which purchased the credit." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "RelayAccountIdOf", + "docs": [ + "The Relay-chain account to which the credit will be made." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of credit purchased." + ] + } + ], + "index": 21, + "docs": [ + "Some Instantaneous Coretime Pool credit has been purchased." + ] + }, + { + "name": "RegionDropped", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region which no longer exists." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 22, + "docs": [ + "A Region has been dropped due to being out of date." + ] + }, + { + "name": "ContributionDropped", + "fields": [ + { + "name": "region_id", + "type": 447, + "typeName": "RegionId", + "docs": [ + "The Region whose contribution is no longer exists." + ] + } + ], + "index": 23, + "docs": [ + "Some historical Instantaneous Core Pool contribution record has been dropped." + ] + }, + { + "name": "HistoryInitialized", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history has been initialized." + ] + }, + { + "name": "private_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [ + "The amount of privately contributed Coretime to the Instantaneous Coretime Pool." + ] + }, + { + "name": "system_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [ + "The amount of Coretime contributed to the Instantaneous Coretime Pool by the", + "Pezkuwi System." + ] + } + ], + "index": 24, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been initialized." + ] + }, + { + "name": "HistoryDropped", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is no longer available." + ] + }, + { + "name": "revenue", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue the system has taken." + ] + } + ], + "index": 25, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been dropped." + ] + }, + { + "name": "HistoryIgnored", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is was ignored." + ] + }, + { + "name": "revenue", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue which was ignored." + ] + } + ], + "index": 26, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been ignored because the", + "timeslice was already known. Governance may need to intervene." + ] + }, + { + "name": "ClaimsReady", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is available." + ] + }, + { + "name": "system_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue the Pezkuwi System has already taken." + ] + }, + { + "name": "private_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The total amount of revenue remaining to be claimed." + ] + } + ], + "index": 27, + "docs": [ + "Some historical Instantaneous Core Pool Revenue is ready for payout claims." + ] + }, + { + "name": "CoreAssigned", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The index of the Core which has been assigned." + ] + }, + { + "name": "when", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The Relay-chain block at which this assignment should take effect." + ] + }, + { + "name": "assignment", + "type": 533, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [ + "The workload to be done on the Core." + ] + } + ], + "index": 28, + "docs": [ + "A Core has been assigned to one or more tasks and/or the Pool on the Relay-chain." + ] + }, + { + "name": "PotentialRenewalDropped", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose renewal is no longer available." + ] + }, + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The core whose workload is no longer available to be renewed for `when`." + ] + } + ], + "index": 29, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been dropped." + ] + }, + { + "name": "AutoRenewalEnabled", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The core for which the renewal was enabled." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task for which the renewal was enabled." + ] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "AutoRenewalDisabled", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The core for which the renewal was disabled." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task for which the renewal was disabled." + ] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "AutoRenewalFailed", + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [ + "The core for which the renewal failed." + ] + }, + { + "name": "payer", + "type": 43, + "typeName": "Option", + "docs": [ + "The account which was supposed to pay for renewal.", + "", + "If `None` it indicates that we failed to get the sovereign account of a task." + ] + } + ], + "index": 32, + "docs": [ + "Failed to auto-renew a core, likely due to the payer account not being sufficiently", + "funded." + ] + }, + { + "name": "AutoRenewalLimitReached", + "fields": [], + "index": 33, + "docs": [ + "The auto-renewal limit has been reached upon renewing cores.", + "", + "This should never happen, given that enable_auto_renew checks for this before enabling", + "auto-renewal." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 531, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 447, + 447 + ] + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 447 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 447, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 534 + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 445, + 98 + ] + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 536, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 539, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 539, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 536, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 537, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 538, + "typeName": "::Key", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 459, + "typeName": "BaseDeposit", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 460, + "typeName": "ByteDeposit", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Tracks", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "Tracks", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 471, + "typeName": "Origins", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 540 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 540, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 541, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 542, + "typeName": "::Value", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Tracks", + "fields": [ + { + "name": null, + "type": 464, + "typeName": "BoundedVec,\nConstU32<100>,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 473, + "typeName": "BoundedVec<(OriginCaller, u16), ConstU32<100>>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 543, + "type": { + "path": [ + "pallet_skip_feeless_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FeeSkipped", + "fields": [ + { + "name": "origin", + "type": 146, + "typeName": "::PalletsOrigin", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee was skipped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 544, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MigratedToNewAccount", + "fields": [ + { + "name": "pool_id", + "type": 513, + "typeName": "T::PoolId", + "docs": [ + "Pool's ID." + ] + }, + { + "name": "prior_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Pool's prior account ID." + ] + }, + { + "name": "new_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Pool's new account ID." + ] + } + ], + "index": 0, + "docs": [ + "Indicates that a pool has been migrated to the new account ID." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 545, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 478, + "typeName": "H160", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + }, + { + "name": "topics", + "type": 325, + "typeName": "Vec", + "docs": [ + "A list of topics used to index the event.", + "Number of topics is capped by [`limits::NUM_EVENT_TOPICS`]." + ] + } + ], + "index": 0, + "docs": [ + "A custom event emitted by the contract." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 546, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Funds delegated by a delegator." + ] + }, + { + "name": "Released", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Funds released to a delegator." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds slashed from a delegator." + ] + }, + { + "name": "MigratedDelegation", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unclaimed delegation funds migrated to delegator." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that staked assets." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The pool." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The staked asset amount." + ] + } + ], + "index": 0, + "docs": [ + "An account staked some tokens in a pool." + ] + }, + { + "name": "Unstaked", + "fields": [ + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that signed transaction." + ] + }, + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that unstaked assets." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The pool." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The unstaked asset amount." + ] + } + ], + "index": 1, + "docs": [ + "An account unstaked some tokens from a pool." + ] + }, + { + "name": "RewardsHarvested", + "fields": [ + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that signed transaction." + ] + }, + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The staker whos rewards were harvested." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The pool." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of harvested tokens." + ] + } + ], + "index": 2, + "docs": [ + "An account harvested some rewards." + ] + }, + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The unique ID for the new pool." + ] + }, + { + "name": "staked_asset_id", + "type": 40, + "typeName": "T::AssetId", + "docs": [ + "The staking asset." + ] + }, + { + "name": "reward_asset_id", + "type": 40, + "typeName": "T::AssetId", + "docs": [ + "The reward asset." + ] + }, + { + "name": "reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The initial reward rate per block." + ] + }, + { + "name": "expiry_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The block the pool will cease to accumulate rewards." + ] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account allowed to modify the pool." + ] + } + ], + "index": 3, + "docs": [ + "A new reward pool was created." + ] + }, + { + "name": "PoolRewardRateModified", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The modified pool." + ] + }, + { + "name": "new_reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The new reward rate per block." + ] + } + ], + "index": 4, + "docs": [ + "A pool reward rate was modified by the admin." + ] + }, + { + "name": "PoolAdminModified", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The modified pool." + ] + }, + { + "name": "new_admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new admin." + ] + } + ], + "index": 5, + "docs": [ + "A pool admin was modified." + ] + }, + { + "name": "PoolExpiryBlockModified", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The modified pool." + ] + }, + { + "name": "new_expiry_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The new expiry block." + ] + } + ], + "index": 6, + "docs": [ + "A pool expiry block was modified by the admin." + ] + }, + { + "name": "PoolCleanedUp", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The cleared pool." + ] + } + ], + "index": 7, + "docs": [ + "A pool information was cleared after it's completion." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 548, + "type": { + "path": [ + "pallet_assets_freezer", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 549, + "type": { + "path": [ + "pallet_meta_tx", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Dispatched", + "fields": [ + { + "name": "result", + "type": 500, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A meta transaction has been dispatched.", + "", + "Contains the dispatch result of the meta transaction along with post-dispatch", + "information." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 550, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 91 + } + }, + "docs": [] + } + }, + { + "id": 552, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 154, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 553, + "typeName": "Cow<'static, str>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 554 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 554, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 557, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 558 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 558, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 558, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 558, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 502, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 502, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 502, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 560, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 561, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 553, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "impl_name", + "type": 553, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 563, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "system_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 564 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 564, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 565 + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 285, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 567, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 568, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 569 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 570, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 155, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 569 + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 572, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 574 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 574, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 575, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 577, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 578, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 156, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 576, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 259, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 156, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 156, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 576, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 159, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 160, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 581 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 582, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 581 + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 584, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 586, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 587 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 589, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 285, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 588, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 587 + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 591 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 592, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 285 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 285, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 591 + } + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 594 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 610, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 595 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 595, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 596, + "typeName": "pallet_staking::HoldReason", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 597, + "typeName": "pallet_collective::HoldReason", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 598, + "typeName": "pallet_collective::HoldReason", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 599, + "typeName": "pallet_contracts::HoldReason", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 600, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "pallet_nis::HoldReason", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 602, + "typeName": "pallet_nft_fractionalization::HoldReason", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 603, + "typeName": "pallet_transaction_storage::HoldReason", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 604, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 605, + "typeName": "pallet_collective::HoldReason", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 606, + "typeName": "pallet_safe_mode::HoldReason", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 607, + "typeName": "pallet_revive::HoldReason", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 608, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 609, + "typeName": "pallet_asset_rewards::HoldReason", + "docs": [] + } + ], + "index": 83, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [ + "pallet_collective", + "pallet", + "HoldReason" + ], + "params": [ + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_collective", + "pallet", + "HoldReason" + ], + "params": [ + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CodeUploadDepositReserve", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StorageDepositReserve", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [ + "pallet_nis", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NftReceipt", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fractionalized", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StorageFeeHold", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [ + "pallet_collective", + "pallet", + "HoldReason" + ], + "params": [ + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "EnterOrExtend", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [ + "pallet_revive", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CodeUploadDepositReserve", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StorageDepositReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "AddressMapping", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingDelegation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 594 + } + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 612 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 616, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 612, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 613 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 613, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 614, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 615, + "typeName": "pallet_asset_rewards::FreezeReason", + "docs": [] + } + ], + "index": 83, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 612 + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 618, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 620, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 224 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 223, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "VoterType", + "type": 622 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 624, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 623 + ] + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 622 + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 626 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 627, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 44, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 626 + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 170 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 169, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Submission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 630, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 236, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 631, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 623, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 634, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 166, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 166, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 637, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 638 + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 166, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 166, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 166, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 166, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 637, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 643, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 644, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 645 + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 647 + } + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 63, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 49, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 28, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 29, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 30, + "docs": [ + "Operation not allowed for virtual stakers." + ] + }, + { + "name": "CannotReapStash", + "fields": [], + "index": 31, + "docs": [ + "Stash could not be reaped as other pallet might depend on it." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 32, + "docs": [ + "The stake of this account is already migrated to `Fungible` holds." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 33, + "docs": [ + "Account is restricted from participation in staking. This may happen if the account is", + "staking in another way already, such as via pool." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 652, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 653 + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 240 + ] + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 655 + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 656 + ] + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceSeverity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 657, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 658, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 660, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 661 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 662, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 138, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 661 + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 664, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 138 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 666, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finished", + "fields": [ + { + "name": "approved", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 138 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "proposal", + "type": 138, + "typeName": "Proposal", + "docs": [] + }, + { + "name": "threshold", + "type": 56, + "typeName": "VoteThreshold", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "tally", + "type": 667, + "typeName": "Tally", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_democracy", + "types", + "Tally" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "turnout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Direct", + "fields": [ + { + "name": "votes", + "type": 669, + "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 672, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 673, + "typeName": "PriorLock", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 246, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 672, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 673, + "typeName": "PriorLock", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 669, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 670 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 671, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 57 + ] + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 670 + } + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [ + "pallet_democracy", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [ + "pallet_democracy", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 138, + 56 + ] + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 664 + ] + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValueLow", + "fields": [], + "index": 0, + "docs": [ + "Value too low" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 1, + "docs": [ + "Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "fields": [], + "index": 2, + "docs": [ + "Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 3, + "docs": [ + "Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "fields": [], + "index": 4, + "docs": [ + "Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "fields": [], + "index": 5, + "docs": [ + "Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 6, + "docs": [ + "Invalid hash" + ] + }, + { + "name": "NoProposal", + "fields": [], + "index": 7, + "docs": [ + "No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "fields": [], + "index": 8, + "docs": [ + "Identity may not veto a proposal twice" + ] + }, + { + "name": "ReferendumInvalid", + "fields": [], + "index": 9, + "docs": [ + "Vote given for invalid referendum" + ] + }, + { + "name": "NoneWaiting", + "fields": [], + "index": 10, + "docs": [ + "No proposals waiting" + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 11, + "docs": [ + "The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 12, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 13, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 14, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 15, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "fields": [], + "index": 16, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "fields": [], + "index": 17, + "docs": [ + "The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 18, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "fields": [], + "index": 19, + "docs": [ + "Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 20, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 21, + "docs": [ + "Maximum number of items reached." + ] + }, + { + "name": "VotingPeriodLow", + "fields": [], + "index": 22, + "docs": [ + "Voting period too low" + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 23, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 677, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 679 + ] + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_collective", + "Votes" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "ayes", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "nays", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + }, + { + "name": "ProposalActive", + "fields": [], + "index": 11, + "docs": [ + "Proposal is still active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 682, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + }, + { + "name": "ProposalActive", + "fields": [], + "index": 11, + "docs": [ + "Proposal is still active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 684, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 685 + } + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [ + "pallet_elections_phragmen", + "SeatHolder" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [ + "pallet_elections_phragmen", + "Voter" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 86, + "typeName": "Vec", + "docs": [] + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnableToVote", + "fields": [], + "index": 0, + "docs": [ + "Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 1, + "docs": [ + "Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "fields": [], + "index": 2, + "docs": [ + "Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "fields": [], + "index": 3, + "docs": [ + "Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 4, + "docs": [ + "Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "fields": [], + "index": 5, + "docs": [ + "Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "fields": [], + "index": 6, + "docs": [ + "Must be a voter." + ] + }, + { + "name": "DuplicatedCandidate", + "fields": [], + "index": 7, + "docs": [ + "Duplicated candidate submission." + ] + }, + { + "name": "TooManyCandidates", + "fields": [], + "index": 8, + "docs": [ + "Too many candidates have been created." + ] + }, + { + "name": "MemberSubmit", + "fields": [], + "index": 9, + "docs": [ + "Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "fields": [], + "index": 10, + "docs": [ + "Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "fields": [], + "index": 11, + "docs": [ + "Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 12, + "docs": [ + "Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "fields": [], + "index": 13, + "docs": [ + "The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "fields": [], + "index": 14, + "docs": [ + "The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "fields": [], + "index": 15, + "docs": [ + "The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "fields": [], + "index": 16, + "docs": [ + "Prediction regarding replacement after member removal is wrong." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 688, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Not a member." + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 2, + "docs": [ + "Too many members." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 690, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 692, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 50, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 68 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 694, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 40 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 34 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 697, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 34 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 34, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 285, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 700, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 701, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "CodeInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf", + "docs": [] + }, + { + "name": "deposit", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "refcount", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "determinism", + "type": 268, + "typeName": "Determinism", + "docs": [] + }, + { + "name": "code_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [ + "pallet_contracts", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 111, + "typeName": "TrieId", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "delegate_dependencies", + "type": 704, + "typeName": "BoundedBTreeMap, BalanceOf, T::\nMaxDelegateDependencies>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 13 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 705, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 13 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 706, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 707 + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DeletionQueueManager" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "insert_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "delete_counter", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Schedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "limits", + "type": 711, + "typeName": "Limits", + "docs": [] + }, + { + "name": "instruction_weights", + "type": 712, + "typeName": "InstructionWeights", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Limits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "event_topics", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "memory_pages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "subject_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "payload_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "runtime_memory", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validator_runtime_memory", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "event_ref_time", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "InstructionWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_contracts", + "Environment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_id", + "type": 714, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "balance", + "type": 715, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "hash", + "type": 716, + "typeName": "EnvironmentType<::Hash>", + "docs": [] + }, + { + "name": "hasher", + "type": 717, + "typeName": "EnvironmentType<::Hashing>", + "docs": [] + }, + { + "name": "timestamp", + "type": 718, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "block_number", + "type": 719, + "typeName": "EnvironmentType>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 716, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 494 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "pallet_contracts", + "ApiVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 98, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSchedule", + "fields": [], + "index": 0, + "docs": [ + "Invalid schedule supplied, e.g. with zero weight of a basic operation." + ] + }, + { + "name": "InvalidCallFlags", + "fields": [], + "index": 1, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "fields": [], + "index": 2, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "fields": [], + "index": 3, + "docs": [ + "The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "TransferFailed", + "fields": [], + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "fields": [], + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "fields": [], + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 7, + "docs": [ + "The code supplied to `instantiate_with_code` exceeds the limit specified in the", + "current schedule." + ] + }, + { + "name": "CodeNotFound", + "fields": [], + "index": 8, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "CodeInfoNotFound", + "fields": [], + "index": 9, + "docs": [ + "No code info could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "fields": [], + "index": 10, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "fields": [], + "index": 11, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "fields": [], + "index": 12, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "fields": [], + "index": 13, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "fields": [], + "index": 14, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "fields": [], + "index": 15, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "RandomSubjectTooLong", + "fields": [], + "index": 16, + "docs": [ + "The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "fields": [], + "index": 17, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "NoChainExtension", + "fields": [], + "index": 18, + "docs": [ + "The chain does not provide a chain extension. Calling the chain extension results", + "in this error. Note that this usually shouldn't happen as deploying such contracts", + "is rejected." + ] + }, + { + "name": "XCMDecodeFailed", + "fields": [], + "index": 19, + "docs": [ + "Failed to decode the XCM program." + ] + }, + { + "name": "DuplicateContract", + "fields": [], + "index": 20, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "fields": [], + "index": 21, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "fields": [], + "index": 22, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant.", + "The only other cause is that a call from a contract into the runtime tried to call back", + "into `pallet-contracts`. This would make the whole pallet reentrant with regard to", + "contract code execution which is not supported." + ] + }, + { + "name": "StateChangeDenied", + "fields": [], + "index": 23, + "docs": [ + "A contract attempted to invoke a state modifying API while being in read-only mode." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "fields": [], + "index": 24, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "fields": [], + "index": 25, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "fields": [], + "index": 26, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "fields": [], + "index": 27, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "fields": [], + "index": 28, + "docs": [ + "The contract's code was found to be invalid during validation.", + "", + "The most likely cause of this is that an API was used which is not supported by the", + "node. This happens if an older node is used with a new version of ink!. Try updating", + "your node to the newest available version.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::contracts=debug`." + ] + }, + { + "name": "Indeterministic", + "fields": [], + "index": 29, + "docs": [ + "An indeterministic code was used in a context where this is not permitted." + ] + }, + { + "name": "MigrationInProgress", + "fields": [], + "index": 30, + "docs": [ + "A pending migration needs to complete before the extrinsic can be called." + ] + }, + { + "name": "NoMigrationPerformed", + "fields": [], + "index": 31, + "docs": [ + "Migrate dispatch call was attempted but no migration was performed." + ] + }, + { + "name": "MaxDelegateDependenciesReached", + "fields": [], + "index": 32, + "docs": [ + "The contract has reached its maximum number of delegate dependencies." + ] + }, + { + "name": "DelegateDependencyNotFound", + "fields": [], + "index": 33, + "docs": [ + "The dependency was not found in the contract's delegate dependencies." + ] + }, + { + "name": "DelegateDependencyAlreadyExists", + "fields": [], + "index": 34, + "docs": [ + "The contract already depends on the given delegate dependency." + ] + }, + { + "name": "CannotAddSelfAsDelegateDependency", + "fields": [], + "index": 35, + "docs": [ + "Can not add a delegate dependency to the code hash of the contract itself." + ] + }, + { + "name": "OutOfTransientStorage", + "fields": [], + "index": 36, + "docs": [ + "Can not add more data to transient storage." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 722, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RequireSudo", + "fields": [], + "index": 0, + "docs": [ + "Sender must be the Sudo account." + ] + } + ] + } + }, + "docs": [ + "Error for the Sudo pallet." + ] + } + }, + { + "id": 723, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 78 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 724, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 78 + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKey", + "fields": [], + "index": 0, + "docs": [ + "Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "fields": [], + "index": 1, + "docs": [ + "Duplicated heartbeat." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 726, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 241 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 727, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 241 + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 80 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 80, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 82, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "IdentityInfo", + "type": 274 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 733, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "info", + "type": 274, + "typeName": "IdentityInfo", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 734 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 735, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 311 + ] + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 734 + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 737 + ] + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 739 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 741, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 740 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 740, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "IdField", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fields", + "type": 12, + "typeName": "IdField", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 739 + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [ + "pallet_identity", + "types", + "AuthorityProperties" + ], + "params": [ + { + "name": "Account", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "Allocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [ + "pallet_identity", + "types", + "UsernameInformation" + ], + "params": [ + { + "name": "Account", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "provider", + "type": 745, + "typeName": "Provider", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [ + "pallet_identity", + "types", + "Provider" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Allocation", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AuthorityDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "System", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 745 + ] + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "fields": [], + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "fields": [], + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "fields": [], + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "fields": [], + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "fields": [], + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "fields": [], + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "fields": [], + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "fields": [], + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "fields": [], + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyRegistrars", + "fields": [], + "index": 11, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 12, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "fields": [], + "index": 13, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "fields": [], + "index": 14, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "fields": [], + "index": 15, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "fields": [], + "index": 16, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + }, + { + "name": "InvalidSuffix", + "fields": [], + "index": 17, + "docs": [ + "The provided suffix is too long." + ] + }, + { + "name": "NotUsernameAuthority", + "fields": [], + "index": 18, + "docs": [ + "The sender does not have permission to issue a username." + ] + }, + { + "name": "NoAllocation", + "fields": [], + "index": 19, + "docs": [ + "The authority cannot allocate any more usernames." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 20, + "docs": [ + "The signature on a username was not valid." + ] + }, + { + "name": "RequiresSignature", + "fields": [], + "index": 21, + "docs": [ + "Setting this username requires a signature, but none was provided." + ] + }, + { + "name": "InvalidUsername", + "fields": [], + "index": 22, + "docs": [ + "The username does not meet the requirements." + ] + }, + { + "name": "UsernameTaken", + "fields": [], + "index": 23, + "docs": [ + "The username is already taken." + ] + }, + { + "name": "NoUsername", + "fields": [], + "index": 24, + "docs": [ + "The requested username does not exist." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 25, + "docs": [ + "The username cannot be forcefully removed because it can still be accepted." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 26, + "docs": [ + "The username cannot be removed because it's still in the grace period." + ] + }, + { + "name": "NotUnbinding", + "fields": [], + "index": 27, + "docs": [ + "The username cannot be removed because it is not unbinding." + ] + }, + { + "name": "AlreadyUnbinding", + "fields": [], + "index": 28, + "docs": [ + "The username cannot be unbound because it is already unbinding." + ] + }, + { + "name": "InsufficientPrivileges", + "fields": [], + "index": 29, + "docs": [ + "The action cannot be performed because of insufficient privileges (e.g. authority", + "trying to unbind a username provided by the system)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 748, + "type": { + "path": [ + "pallet_society", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "StrikeCount", + "docs": [] + }, + { + "name": "vouching", + "type": 749, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 750 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 750, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [ + "pallet_society", + "PayoutRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "PayoutsVec", + "type": 752 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "payouts", + "type": 752, + "typeName": "PayoutsVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 753 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 754, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 753 + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 756 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 758, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 757, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 756 + } + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "pallet_society", + "Candidacy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "kind", + "type": 757, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "tally", + "type": 760, + "typeName": "Tally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "pallet_society", + "Tally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "VoteCount", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "VoteCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 764, + "type": { + "path": [ + "pallet_society", + "IntakeRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 760 + ] + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 1, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "fields": [], + "index": 2, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "fields": [], + "index": 3, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "fields": [], + "index": 4, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "fields": [], + "index": 5, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "fields": [], + "index": 6, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "fields": [], + "index": 7, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouchingOnBidder", + "fields": [], + "index": 8, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "fields": [], + "index": 9, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "fields": [], + "index": 10, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "fields": [], + "index": 11, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 12, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 13, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "fields": [], + "index": 14, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "fields": [], + "index": 15, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "fields": [], + "index": 16, + "docs": [ + "The caller is not the head." + ] + }, + { + "name": "NotApproved", + "fields": [], + "index": 17, + "docs": [ + "The membership cannot be claimed as the candidate was not clearly approved." + ] + }, + { + "name": "NotRejected", + "fields": [], + "index": 18, + "docs": [ + "The candidate cannot be kicked as the candidate was not clearly rejected." + ] + }, + { + "name": "Approved", + "fields": [], + "index": 19, + "docs": [ + "The candidacy cannot be dropped as the candidate was clearly approved." + ] + }, + { + "name": "Rejected", + "fields": [], + "index": 20, + "docs": [ + "The candidacy cannot be bestowed as the candidate was clearly rejected." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 21, + "docs": [ + "The candidacy cannot be concluded as the voting is still in progress." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 22, + "docs": [ + "The candidacy cannot be pruned until a full additional intake period has passed." + ] + }, + { + "name": "Voted", + "fields": [], + "index": 23, + "docs": [ + "The skeptic already voted." + ] + }, + { + "name": "Expired", + "fields": [], + "index": 24, + "docs": [ + "The skeptic need not vote on candidates from expired rounds." + ] + }, + { + "name": "NotBidder", + "fields": [], + "index": 25, + "docs": [ + "User is not a bidder." + ] + }, + { + "name": "NoDefender", + "fields": [], + "index": 26, + "docs": [ + "There is no defender currently." + ] + }, + { + "name": "NotGroup", + "fields": [], + "index": 27, + "docs": [ + "Group doesn't exist." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 28, + "docs": [ + "The member is already elevated to this rank." + ] + }, + { + "name": "AlreadyPunished", + "fields": [], + "index": 29, + "docs": [ + "The skeptic has already been punished for this offence." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 30, + "docs": [ + "Funds are insufficient to pay off society debts." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 31, + "docs": [ + "The candidate/defender has no stale votes to remove." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 767, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 768 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 768, + "typeName": "Friends", + "docs": [] + }, + { + "name": "threshold", + "type": 98, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 768 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 768, + "typeName": "Friends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "fields": [], + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "fields": [], + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "fields": [], + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "fields": [], + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "fields": [], + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "fields": [], + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "fields": [], + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "fields": [], + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "fields": [], + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "fields": [], + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "fields": [], + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "fields": [], + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "fields": [], + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "fields": [], + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 771, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 318 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 772, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 318 + } + }, + "docs": [] + } + }, + { + "id": 773, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 775, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 776 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 778, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 777 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 777, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 138 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 146 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 92, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 138, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 320, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 146, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 776 + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 781, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyInitialized", + "fields": [], + "index": 0, + "docs": [ + "The pallet was already initialized.", + "", + "Set `witness_count` to `Some` to bypass this error." + ] + }, + { + "name": "InsaneLimit", + "fields": [], + "index": 1, + "docs": [ + "The limit was over [`crate::RESOURCE_HARD_LIMIT`]." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 782, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 64, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 783, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 64 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 64, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 785 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 786, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 787, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 785 + ] + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 786 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 786, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 790, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 791, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 792 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 793, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 97 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 97, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 792 + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 795, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 796 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 797, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 797, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 796 + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 799, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 101, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 664, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found in storage." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it or update", + "its deposits." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 802, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 803, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ApprovedWithCurator", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 805, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 806, + "type": { + "path": [ + "pallet_tips", + "OpenTip" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reason", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "finder", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "closes", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "tips", + "type": 63, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "finders_fee", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ReasonTooBig", + "fields": [], + "index": 0, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "fields": [], + "index": 1, + "docs": [ + "The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "fields": [], + "index": 2, + "docs": [ + "The tip hash is unknown." + ] + }, + { + "name": "MaxTipAmountExceeded", + "fields": [], + "index": 3, + "docs": [ + "The tip given was too generous." + ] + }, + { + "name": "NotFinder", + "fields": [], + "index": 4, + "docs": [ + "The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "fields": [], + "index": 5, + "docs": [ + "The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 6, + "docs": [ + "The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 808, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 809, + "typeName": "AssetStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 34 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 811, + "typeName": "AccountStatus", + "docs": [] + }, + { + "name": "reason", + "type": 812, + "typeName": "ExistenceReason", + "docs": [] + }, + { + "name": "extra", + "type": 34, + "typeName": "Extra", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [ + "pallet_assets", + "types", + "AccountStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Liquid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Sufficient", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DepositHeld", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DepositRefunded", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DepositFrom", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 816 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 816, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 816, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 818, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 819, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 243 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 820, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 820, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 243 + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidDoubleVotingProof", + "fields": [], + "index": 1, + "docs": [ + "A double voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidForkVotingProof", + "fields": [], + "index": 2, + "docs": [ + "A fork voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidFutureBlockVotingProof", + "fields": [], + "index": 3, + "docs": [ + "A future block voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProofSession", + "fields": [], + "index": 4, + "docs": [ + "The session of the equivocation proof is invalid" + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 5, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 6, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 822, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 13, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [ + "pallet_lottery", + "LotteryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "repeat", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 825 + ] + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 107 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 826, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 107 + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "fields": [], + "index": 0, + "docs": [ + "A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 1, + "docs": [ + "A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "fields": [], + "index": 2, + "docs": [ + "A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "fields": [], + "index": 3, + "docs": [ + "The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "fields": [], + "index": 4, + "docs": [ + "You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "fields": [], + "index": 5, + "docs": [ + "Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "fields": [], + "index": 6, + "docs": [ + "Failed to encode calls" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 828, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 753 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 754, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 830 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 831, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Bid" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 830 + } + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [ + "pallet_nis", + "pallet", + "SummaryRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion_owed", + "type": 109, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "thawed", + "type": 109, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "receipts_on_hold", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "pallet_nis", + "pallet", + "ReceiptRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion", + "type": 109, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "owner", + "type": 783, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 109, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DurationTooSmall", + "fields": [], + "index": 0, + "docs": [ + "The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "fields": [], + "index": 1, + "docs": [ + "The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "fields": [], + "index": 2, + "docs": [ + "The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 3, + "docs": [ + "The queue for the bid's duration is full and the amount bid is too low to get in", + "through replacing an existing bid." + ] + }, + { + "name": "UnknownReceipt", + "fields": [], + "index": 4, + "docs": [ + "Receipt index is unknown." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 5, + "docs": [ + "Not the owner of the receipt." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 6, + "docs": [ + "Bond not yet at expiry date." + ] + }, + { + "name": "UnknownBid", + "fields": [], + "index": 7, + "docs": [ + "The given bid for retraction is not found." + ] + }, + { + "name": "PortionTooBig", + "fields": [], + "index": 8, + "docs": [ + "The portion supplied is beyond the value of the receipt." + ] + }, + { + "name": "Unfunded", + "fields": [], + "index": 9, + "docs": [ + "Not enough funds are held to pay out." + ] + }, + { + "name": "AlreadyFunded", + "fields": [], + "index": 10, + "docs": [ + "There are enough funds for what is required." + ] + }, + { + "name": "Throttled", + "fields": [], + "index": 11, + "docs": [ + "The thaw throttle has been reached for this period." + ] + }, + { + "name": "MakesDust", + "fields": [], + "index": 12, + "docs": [ + "The operation would result in a receipt worth an insignificant value." + ] + }, + { + "name": "AlreadyCommunal", + "fields": [], + "index": 13, + "docs": [ + "The receipt is already communal." + ] + }, + { + "name": "AlreadyPrivate", + "fields": [], + "index": 14, + "docs": [ + "The receipt is already private." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 836, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approved", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 111, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 111, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 50, + 84 + ] + }, + "docs": [] + } + }, + { + "id": 842, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 113, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 43 + ] + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "fields": [], + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 17, + "docs": [ + "The provided bid is too low." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 845, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 847 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "CollectionRole", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Freezer", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Admin", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 849 + }, + { + "name": "Approvals", + "type": 850 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 850, + "typeName": "Approvals", + "docs": [] + }, + { + "name": "deposit", + "type": 849, + "typeName": "Deposit", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 50 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 851, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 50 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 852, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 853 + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 50 + ] + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 856 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 856, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 50, + 116, + 113 + ] + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 115, + 859 + ] + }, + "docs": [] + } + }, + { + "id": 859, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 861, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 118 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 117, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 864 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "PalletFeature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 864, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Attributes", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Swaps", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "fields": [], + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "fields": [], + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "fields": [], + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "fields": [], + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "fields": [], + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "fields": [], + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "fields": [], + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "fields": [], + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "fields": [], + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "fields": [], + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "fields": [], + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "fields": [], + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "fields": [], + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "fields": [], + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "fields": [], + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "fields": [], + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "fields": [], + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "fields": [], + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "fields": [], + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "fields": [], + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "fields": [], + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "fields": [], + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "fields": [], + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "fields": [], + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "fields": [], + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "fields": [], + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "fields": [], + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "fields": [], + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + }, + { + "name": "CollectionNotEmpty", + "fields": [], + "index": 43, + "docs": [ + "Can't delete non-empty collections." + ] + }, + { + "name": "WitnessRequired", + "fields": [], + "index": 44, + "docs": [ + "The witness data should be provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 866, + "type": { + "path": [ + "pallet_nft_fractionalization", + "types", + "Details" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + }, + { + "name": "Fractions", + "type": 6 + }, + { + "name": "Deposit", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset", + "type": 4, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "Fractions", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "asset_creator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 867, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncorrectAssetId", + "fields": [], + "index": 0, + "docs": [ + "Asset ID does not correspond to locked NFT." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 1, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "NftNotFound", + "fields": [], + "index": 2, + "docs": [ + "NFT doesn't exist." + ] + }, + { + "name": "NftNotFractionalized", + "fields": [], + "index": 3, + "docs": [ + "NFT has not yet been fractionalised." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 868, + "type": { + "path": [ + "pallet_salary", + "StatusType" + ], + "params": [ + { + "name": "CycleIndex", + "type": 4 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "cycle_index", + "type": 4, + "typeName": "CycleIndex", + "docs": [] + }, + { + "name": "cycle_start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "budget", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_registrations", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_unregistered_paid", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "pallet_salary", + "ClaimantStatus" + ], + "params": [ + { + "name": "CycleIndex", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Id", + "type": 34 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_active", + "type": 4, + "typeName": "CycleIndex", + "docs": [] + }, + { + "name": "status", + "type": 870, + "typeName": "ClaimState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "pallet_salary", + "ClaimState" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Id", + "type": 34 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Nothing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Registered", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "registered", + "type": 234, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyStarted", + "fields": [], + "index": 0, + "docs": [ + "The salary system has already been started." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "The account is not a ranked member." + ] + }, + { + "name": "AlreadyInducted", + "fields": [], + "index": 2, + "docs": [ + "The account is already inducted." + ] + }, + { + "name": "NotInducted", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "NoClaim", + "fields": [], + "index": 4, + "docs": [ + "The member does not have a current valid claim." + ] + }, + { + "name": "ClaimZero", + "fields": [], + "index": 5, + "docs": [ + "The member's claim is zero." + ] + }, + { + "name": "TooLate", + "fields": [], + "index": 6, + "docs": [ + "Current cycle's registration period is over." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 7, + "docs": [ + "Current cycle's payment period is not yet begun." + ] + }, + { + "name": "NotYet", + "fields": [], + "index": 8, + "docs": [ + "Cycle is not yet over." + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 9, + "docs": [ + "The payout cycles have not yet started." + ] + }, + { + "name": "Bankrupt", + "fields": [], + "index": 10, + "docs": [ + "There is no budget left for the payout." + ] + }, + { + "name": "PayError", + "fields": [], + "index": 11, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 12, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + }, + { + "name": "NotCurrent", + "fields": [], + "index": 13, + "docs": [ + "The cycle is after that in which the payment was made." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 872, + "type": { + "path": [ + "pallet_core_fellowship", + "MemberStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "last_promotion", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "last_proof", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 128, + 129 + ] + }, + "docs": [] + } + }, + { + "id": 874, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unranked", + "fields": [], + "index": 0, + "docs": [ + "Member's rank is too low." + ] + }, + { + "name": "Ranked", + "fields": [], + "index": 1, + "docs": [ + "Member's rank is not zero." + ] + }, + { + "name": "UnexpectedRank", + "fields": [], + "index": 2, + "docs": [ + "Member's rank is not as expected - generally means that the rank provided to the call", + "does not agree with the state of the system." + ] + }, + { + "name": "InvalidRank", + "fields": [], + "index": 3, + "docs": [ + "The given rank is invalid - this generally means it's not between 1 and `RANK_COUNT`." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 4, + "docs": [ + "The origin does not have enough permission to do this operation." + ] + }, + { + "name": "NothingDoing", + "fields": [], + "index": 5, + "docs": [ + "No work needs to be done at present for this member." + ] + }, + { + "name": "AlreadyInducted", + "fields": [], + "index": 6, + "docs": [ + "The candidate has already been inducted. This should never happen since it would", + "require a candidate (rank 0) to already be tracked in the pallet." + ] + }, + { + "name": "NotTracked", + "fields": [], + "index": 7, + "docs": [ + "The candidate has not been inducted, so cannot be offboarded from this pallet." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 8, + "docs": [ + "Operation cannot be done yet since not enough time has passed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 875, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 876 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 877, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 876, + "type": { + "path": [ + "pallet_transaction_storage", + "TransactionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "chunk_root", + "type": 13, + "typeName": "::Output", + "docs": [] + }, + { + "name": "content_hash", + "type": 13, + "typeName": "::Output", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "block_chunks", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 876 + } + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "fields": [], + "index": 0, + "docs": [ + "Invalid configuration." + ] + }, + { + "name": "RenewedNotFound", + "fields": [], + "index": 1, + "docs": [ + "Renewed extrinsic is not found." + ] + }, + { + "name": "EmptyTransaction", + "fields": [], + "index": 2, + "docs": [ + "Attempting to store empty transaction" + ] + }, + { + "name": "UnexpectedProof", + "fields": [], + "index": 3, + "docs": [ + "Proof was not expected in this block." + ] + }, + { + "name": "InvalidProof", + "fields": [], + "index": 4, + "docs": [ + "Proof failed verification." + ] + }, + { + "name": "MissingProof", + "fields": [], + "index": 5, + "docs": [ + "Missing storage proof." + ] + }, + { + "name": "MissingStateData", + "fields": [], + "index": 6, + "docs": [ + "Unable to verify proof because state data is missing." + ] + }, + { + "name": "DoubleCheck", + "fields": [], + "index": 7, + "docs": [ + "Double proof check in the block." + ] + }, + { + "name": "ProofNotChecked", + "fields": [], + "index": 8, + "docs": [ + "Storage proof was not checked in the block." + ] + }, + { + "name": "TransactionTooLarge", + "fields": [], + "index": 9, + "docs": [ + "Transaction is too large." + ] + }, + { + "name": "TooManyTransactions", + "fields": [], + "index": 10, + "docs": [ + "Too many transactions in the block." + ] + }, + { + "name": "BadContext", + "fields": [], + "index": 11, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 879, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 43, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 882, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 883, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 883, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 885, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 887, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 98 + }, + { + "name": "RuntimeOrigin", + "type": 146 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 138 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 495 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 91 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 888, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 888, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 98 + }, + { + "name": "RuntimeOrigin", + "type": 146 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 138 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 495 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 91 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 98, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 146, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 138, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 390, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 889, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 891, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 495, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 893, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 889 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 889, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 892 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 892, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 50, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 894 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 894, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 91 + ] + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 753 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 754, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 897 + } + }, + "docs": [] + } + }, + { + "id": 897, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 98, + 898 + ] + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 554 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 554, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 467, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 467, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 900, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Empty", + "fields": [], + "index": 0, + "docs": [ + "Attempting to store empty data." + ] + }, + { + "name": "BadContext", + "fields": [], + "index": 1, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 901, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 98 + ] + }, + "docs": [] + } + }, + { + "id": 902, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 903, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 909, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 904, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 907, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 908, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 904, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 905 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 906, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 394 + ] + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 905 + } + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 396, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 907, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 908, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 911 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 912, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 911, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 98, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 912, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 911 + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 914, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 915, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + }, + { + "name": "ProposalActive", + "fields": [], + "index": 11, + "docs": [ + "Proposal is still active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 917, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 401 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 918, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 401 + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [ + "pallet_alliance", + "MemberRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fellow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Ally", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Retiring", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 407 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 922, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 407 + } + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AllianceNotYetInitialized", + "fields": [], + "index": 0, + "docs": [ + "The Alliance has not been initialized yet, therefore accounts cannot join it." + ] + }, + { + "name": "AllianceAlreadyInitialized", + "fields": [], + "index": 1, + "docs": [ + "The Alliance has been initialized, therefore cannot be initialized again." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 2, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 3, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotAlly", + "fields": [], + "index": 4, + "docs": [ + "Account is not an ally." + ] + }, + { + "name": "NoVotingRights", + "fields": [], + "index": 5, + "docs": [ + "Account does not have voting rights." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 6, + "docs": [ + "Account is already an elevated (fellow) member." + ] + }, + { + "name": "AlreadyUnscrupulous", + "fields": [], + "index": 7, + "docs": [ + "Item is already listed as unscrupulous." + ] + }, + { + "name": "AccountNonGrata", + "fields": [], + "index": 8, + "docs": [ + "Account has been deemed unscrupulous by the Alliance and is not welcome to join or be", + "nominated." + ] + }, + { + "name": "NotListedAsUnscrupulous", + "fields": [], + "index": 9, + "docs": [ + "Item has not been deemed unscrupulous." + ] + }, + { + "name": "TooManyUnscrupulousItems", + "fields": [], + "index": 10, + "docs": [ + "The number of unscrupulous items exceeds `MaxUnscrupulousItems`." + ] + }, + { + "name": "TooLongWebsiteUrl", + "fields": [], + "index": 11, + "docs": [ + "Length of website URL exceeds `MaxWebsiteUrlLength`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 12, + "docs": [ + "Balance is insufficient for the required deposit." + ] + }, + { + "name": "WithoutRequiredIdentityFields", + "fields": [], + "index": 13, + "docs": [ + "The account's identity does not have display field and website field." + ] + }, + { + "name": "WithoutGoodIdentityJudgement", + "fields": [], + "index": 14, + "docs": [ + "The account's identity has no good judgement." + ] + }, + { + "name": "MissingProposalHash", + "fields": [], + "index": 15, + "docs": [ + "The proposal hash is not found." + ] + }, + { + "name": "MissingAnnouncement", + "fields": [], + "index": 16, + "docs": [ + "The announcement is not found." + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 17, + "docs": [ + "Number of members exceeds `MaxMembersCount`." + ] + }, + { + "name": "TooManyAnnouncements", + "fields": [], + "index": 18, + "docs": [ + "Number of announcements exceeds `MaxAnnouncementsCount`." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 19, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "AlreadyRetiring", + "fields": [], + "index": 20, + "docs": [ + "Account already gave retirement notice" + ] + }, + { + "name": "RetirementNoticeNotGiven", + "fields": [], + "index": 21, + "docs": [ + "Account did not give a retirement notice required to retire." + ] + }, + { + "name": "RetirementPeriodNotPassed", + "fields": [], + "index": 22, + "docs": [ + "Retirement period has not passed." + ] + }, + { + "name": "FellowsMissing", + "fields": [], + "index": 23, + "docs": [ + "Fellows must be provided to initialize the Alliance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 924, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 72, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 925, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 926, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 754, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 928, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 930, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 410, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 928, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 416, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 507, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 929, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 50, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 419, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 418 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 418, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 930, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 931, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 72, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 932, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 933, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 934, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 933, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 934, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 933 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 935, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 935, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 933 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 936, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 936, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 937 + } + }, + "docs": [] + } + }, + { + "id": 937, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 933 + ] + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 939, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "SlashTooLow", + "fields": [], + "index": 33, + "docs": [ + "The slash amount is too low to be applied." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 35, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 36, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 37, + "docs": [ + "Account is restricted from participation in pools. This may happen if the account is", + "staking in another way already." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 939, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 940, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 98 + }, + { + "name": "RuntimeOrigin", + "type": 146 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 138 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 509 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 91 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 941, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 890, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 941, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 98 + }, + { + "name": "RuntimeOrigin", + "type": 146 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 138 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 509 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 91 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 98, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 146, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 138, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 390, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 889, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 890, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 891, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 509, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 893, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 91 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 551, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 943, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 944, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 98, + "typeName": "Rank", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 945, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 98, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 946, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 98, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 947, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 948, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "fields": [], + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "fields": [], + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "fields": [], + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "fields": [], + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "fields": [], + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "fields": [], + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + }, + { + "name": "SameMember", + "fields": [], + "index": 9, + "docs": [ + "The new member to exchange is the same as the old member" + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 10, + "docs": [ + "The max member count for the rank has been reached." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 949, + "type": { + "path": [ + "pallet_asset_conversion", + "types", + "PoolInfo" + ], + "params": [ + { + "name": "PoolAssetId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "lp_token", + "type": 4, + "typeName": "PoolAssetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 950, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolExists", + "fields": [], + "index": 1, + "docs": [ + "Pool already exists." + ] + }, + { + "name": "WrongDesiredAmount", + "fields": [], + "index": 2, + "docs": [ + "Desired amount can't be zero." + ] + }, + { + "name": "AmountOneLessThanMinimal", + "fields": [], + "index": 3, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountTwoLessThanMinimal", + "fields": [], + "index": 4, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "ReserveLeftLessThanMinimal", + "fields": [], + "index": 5, + "docs": [ + "Reserve needs to always be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountOutTooHigh", + "fields": [], + "index": 6, + "docs": [ + "Desired amount can't be equal to the pool reserve." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 7, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 8, + "docs": [ + "An overflow happened." + ] + }, + { + "name": "AssetOneDepositDidNotMeetMinimum", + "fields": [], + "index": 9, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoDepositDidNotMeetMinimum", + "fields": [], + "index": 10, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "AssetOneWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 11, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 12, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "OptimalAmountLessThanDesired", + "fields": [], + "index": 13, + "docs": [ + "Optimal calculated amount is less than desired." + ] + }, + { + "name": "InsufficientLiquidityMinted", + "fields": [], + "index": 14, + "docs": [ + "Insufficient liquidity minted." + ] + }, + { + "name": "ZeroLiquidity", + "fields": [], + "index": 15, + "docs": [ + "Requested liquidity can't be zero." + ] + }, + { + "name": "ZeroAmount", + "fields": [], + "index": 16, + "docs": [ + "Amount can't be zero." + ] + }, + { + "name": "ProvidedMinimumNotSufficientForSwap", + "fields": [], + "index": 17, + "docs": [ + "Calculated amount out is less than provided minimum amount." + ] + }, + { + "name": "ProvidedMaximumNotSufficientForSwap", + "fields": [], + "index": 18, + "docs": [ + "Provided maximum amount is not sufficient for swap." + ] + }, + { + "name": "InvalidPath", + "fields": [], + "index": 19, + "docs": [ + "The provided path must consists of 2 assets at least." + ] + }, + { + "name": "NonUniquePath", + "fields": [], + "index": 20, + "docs": [ + "The provided path must consists of unique assets." + ] + }, + { + "name": "IncorrectPoolAssetId", + "fields": [], + "index": 21, + "docs": [ + "It was not possible to get or increment the Id of the pool." + ] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 22, + "docs": [ + "The destination account cannot exist with the swapped funds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 951, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 952, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 953, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 952, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 64 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 63, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 953, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 954, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 955, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 956, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 956, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 957 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 957, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 957, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 4, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 4, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 958, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 959, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 959, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 960, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 961, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IsPaused", + "fields": [], + "index": 0, + "docs": [ + "The call is paused." + ] + }, + { + "name": "IsUnpaused", + "fields": [], + "index": 1, + "docs": [ + "The call is unpaused." + ] + }, + { + "name": "Unpausable", + "fields": [], + "index": 2, + "docs": [ + "The call is whitelisted and cannot be paused." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 962, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Entered", + "fields": [], + "index": 0, + "docs": [ + "The safe-mode is (already or still) entered." + ] + }, + { + "name": "Exited", + "fields": [], + "index": 1, + "docs": [ + "The safe-mode is (already or still) exited." + ] + }, + { + "name": "NotConfigured", + "fields": [], + "index": 2, + "docs": [ + "This functionality of the pallet is disabled by the configuration." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 3, + "docs": [ + "There is no balance reserved." + ] + }, + { + "name": "AlreadyDeposited", + "fields": [], + "index": 4, + "docs": [ + "The account already has a deposit reserved and can therefore not enter or extend again." + ] + }, + { + "name": "CannotReleaseYet", + "fields": [], + "index": 5, + "docs": [ + "This deposit cannot be released yet." + ] + }, + { + "name": "CurrencyError", + "fields": [], + "index": 6, + "docs": [ + "An error from the underlying `Currency`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 963, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [], + "index": 0, + "docs": [ + "The operation cannot complete since some MBMs are ongoing." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 964, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 442 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 965, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 965, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 442 + } + }, + "docs": [] + } + }, + { + "id": 966, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 967 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 968, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 967, + "type": { + "path": [ + "pallet_broker", + "types", + "LeaseRecordItem" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 968, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 967 + } + }, + "docs": [] + } + }, + { + "id": 969, + "type": { + "path": [ + "pallet_broker", + "types", + "StatusRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core_count", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "private_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "system_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "last_committed_timeslice", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "last_timeslice", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 970, + "type": { + "path": [ + "pallet_broker", + "types", + "SaleInfoRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "RelayBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sale_start", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "end_price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "region_begin", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "region_end", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "ideal_cores_sold", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "cores_offered", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "first_core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "sellout_price", + "type": 234, + "typeName": "Option", + "docs": [] + }, + { + "name": "cores_sold", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 971, + "type": { + "path": [ + "pallet_broker", + "types", + "PotentialRenewalId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 972, + "type": { + "path": [ + "pallet_broker", + "types", + "PotentialRenewalRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "completion", + "type": 973, + "typeName": "CompletionStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 973, + "type": { + "path": [ + "pallet_broker", + "types", + "CompletionStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Partial", + "fields": [ + { + "name": null, + "type": 444, + "typeName": "CoreMask", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Complete", + "fields": [ + { + "name": null, + "type": 442, + "typeName": "Schedule", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 974, + "type": { + "path": [ + "pallet_broker", + "types", + "RegionRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "owner", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "paid", + "type": 234, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 975, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 98 + ] + }, + "docs": [] + } + }, + { + "id": 976, + "type": { + "path": [ + "pallet_broker", + "types", + "ContributionRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "length", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 977, + "type": { + "path": [ + "pallet_broker", + "types", + "PoolIoRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "private", + "type": 978, + "typeName": "SignedCoreMaskBitCount", + "docs": [] + }, + { + "name": "system", + "type": 978, + "typeName": "SignedCoreMaskBitCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 978, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I32" + }, + "docs": [] + } + }, + { + "id": 979, + "type": { + "path": [ + "pallet_broker", + "types", + "InstaPoolHistoryRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "private_contributions", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "system_contributions", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "maybe_payout", + "type": 234, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 980, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 981 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 982, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 981, + "type": { + "path": [ + "pallet_broker", + "types", + "AutoRenewalRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 98, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "next_renewal", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 982, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 981 + } + }, + "docs": [] + } + }, + { + "id": 983, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownRegion", + "fields": [], + "index": 0, + "docs": [ + "The given region identity is not known." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The owner of the region is not the origin." + ] + }, + { + "name": "PivotTooLate", + "fields": [], + "index": 2, + "docs": [ + "The pivot point of the partition at or after the end of the region." + ] + }, + { + "name": "PivotTooEarly", + "fields": [], + "index": 3, + "docs": [ + "The pivot point of the partition at the beginning of the region." + ] + }, + { + "name": "ExteriorPivot", + "fields": [], + "index": 4, + "docs": [ + "The pivot mask for the interlacing is not contained within the region's interlace mask." + ] + }, + { + "name": "VoidPivot", + "fields": [], + "index": 5, + "docs": [ + "The pivot mask for the interlacing is void (and therefore unschedulable)." + ] + }, + { + "name": "CompletePivot", + "fields": [], + "index": 6, + "docs": [ + "The pivot mask for the interlacing is complete (and therefore not a strict subset)." + ] + }, + { + "name": "CorruptWorkplan", + "fields": [], + "index": 7, + "docs": [ + "The workplan of the pallet's state is invalid. This indicates a state corruption." + ] + }, + { + "name": "NoSales", + "fields": [], + "index": 8, + "docs": [ + "There is no sale happening currently." + ] + }, + { + "name": "Overpriced", + "fields": [], + "index": 9, + "docs": [ + "The price limit is exceeded." + ] + }, + { + "name": "Unavailable", + "fields": [], + "index": 10, + "docs": [ + "There are no cores available." + ] + }, + { + "name": "SoldOut", + "fields": [], + "index": 11, + "docs": [ + "The sale limit has been reached." + ] + }, + { + "name": "WrongTime", + "fields": [], + "index": 12, + "docs": [ + "The renewal operation is not valid at the current time (it may become valid in the next", + "sale)." + ] + }, + { + "name": "NotAllowed", + "fields": [], + "index": 13, + "docs": [ + "Invalid attempt to renew." + ] + }, + { + "name": "Uninitialized", + "fields": [], + "index": 14, + "docs": [ + "This pallet has not yet been initialized." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 15, + "docs": [ + "The purchase cannot happen yet as the sale period is yet to begin." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 16, + "docs": [ + "There is no work to be done." + ] + }, + { + "name": "TooManyReservations", + "fields": [], + "index": 17, + "docs": [ + "The maximum amount of reservations has already been reached." + ] + }, + { + "name": "TooManyLeases", + "fields": [], + "index": 18, + "docs": [ + "The maximum amount of leases has already been reached." + ] + }, + { + "name": "LeaseNotFound", + "fields": [], + "index": 19, + "docs": [ + "The lease does not exist." + ] + }, + { + "name": "UnknownRevenue", + "fields": [], + "index": 20, + "docs": [ + "The revenue for the Instantaneous Core Sales of this period is not (yet) known and thus", + "this operation cannot proceed." + ] + }, + { + "name": "UnknownContribution", + "fields": [], + "index": 21, + "docs": [ + "The identified contribution to the Instantaneous Core Pool is unknown." + ] + }, + { + "name": "IncompleteAssignment", + "fields": [], + "index": 22, + "docs": [ + "The workload assigned for renewal is incomplete. This is unexpected and indicates a", + "logic error." + ] + }, + { + "name": "StillValid", + "fields": [], + "index": 23, + "docs": [ + "An item cannot be dropped because it is still valid." + ] + }, + { + "name": "NoHistory", + "fields": [], + "index": 24, + "docs": [ + "The history item does not exist." + ] + }, + { + "name": "UnknownReservation", + "fields": [], + "index": 25, + "docs": [ + "No reservation of the given index exists." + ] + }, + { + "name": "UnknownRenewal", + "fields": [], + "index": 26, + "docs": [ + "The renewal record cannot be found." + ] + }, + { + "name": "AlreadyExpired", + "fields": [], + "index": 27, + "docs": [ + "The lease expiry time has already passed." + ] + }, + { + "name": "InvalidConfig", + "fields": [], + "index": 28, + "docs": [ + "The configuration could not be applied because it is invalid." + ] + }, + { + "name": "NoClaimTimeslices", + "fields": [], + "index": 29, + "docs": [ + "The revenue must be claimed for 1 or more timeslices." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 30, + "docs": [ + "The caller doesn't have the permission to enable or disable auto-renewal." + ] + }, + { + "name": "TooManyAutoRenewals", + "fields": [], + "index": 31, + "docs": [ + "We reached the limit for auto-renewals." + ] + }, + { + "name": "NonTaskAutoRenewal", + "fields": [], + "index": 32, + "docs": [ + "Only cores which are assigned to a task can be auto-renewed." + ] + }, + { + "name": "SovereignAccountNotFound", + "fields": [], + "index": 33, + "docs": [ + "Failed to get the sovereign account of a task." + ] + }, + { + "name": "AutoRenewalNotEnabled", + "fields": [], + "index": 34, + "docs": [ + "Attempted to disable auto-renewal for a core that didn't have it enabled." + ] + }, + { + "name": "AssignmentNotFound", + "fields": [], + "index": 35, + "docs": [ + "Attempted to force remove an assignment that doesn't exist." + ] + }, + { + "name": "CreditPurchaseTooSmall", + "fields": [], + "index": 36, + "docs": [ + "Needed to prevent spam attacks.The amount of credits the user attempted to purchase is", + "below `T::MinimumCreditPurchase`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 984, + "type": { + "path": [ + "pallet_example_tasks", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotFound", + "fields": [], + "index": 0, + "docs": [ + "The referenced task was not found." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 985, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "ZeroBalance", + "fields": [], + "index": 2, + "docs": [ + "Pool's balance cannot be zero." + ] + }, + { + "name": "PartialTransfer", + "fields": [], + "index": 3, + "docs": [ + "Indicates a partial transfer of balance to the new account during a migration." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 986, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 987, + "type": { + "path": [ + "pallet_revive", + "wasm", + "CodeInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf", + "docs": [] + }, + { + "name": "deposit", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "refcount", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "code_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "behaviour_version", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 988, + "type": { + "path": [ + "pallet_revive", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 111, + "typeName": "TrieId", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "immutable_data_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 989, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 990, + "type": { + "path": [ + "pallet_revive", + "storage", + "DeletionQueueManager" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "insert_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "delete_counter", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 991, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSchedule", + "fields": [], + "index": 0, + "docs": [ + "Invalid schedule supplied, e.g. with zero weight of a basic operation." + ] + }, + { + "name": "InvalidCallFlags", + "fields": [], + "index": 1, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "fields": [], + "index": 2, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "TransferFailed", + "fields": [], + "index": 3, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "fields": [], + "index": 4, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "fields": [], + "index": 5, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeNotFound", + "fields": [], + "index": 6, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "CodeInfoNotFound", + "fields": [], + "index": 7, + "docs": [ + "No code info could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "fields": [], + "index": 8, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "fields": [], + "index": 9, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "fields": [], + "index": 10, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "fields": [], + "index": 11, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "fields": [], + "index": 12, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "fields": [], + "index": 13, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "TooManyTopics", + "fields": [], + "index": 14, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "NoChainExtension", + "fields": [], + "index": 15, + "docs": [ + "The chain does not provide a chain extension. Calling the chain extension results", + "in this error. Note that this usually shouldn't happen as deploying such contracts", + "is rejected." + ] + }, + { + "name": "XCMDecodeFailed", + "fields": [], + "index": 16, + "docs": [ + "Failed to decode the XCM program." + ] + }, + { + "name": "DuplicateContract", + "fields": [], + "index": 17, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "fields": [], + "index": 18, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "fields": [], + "index": 19, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant." + ] + }, + { + "name": "ReenteredPallet", + "fields": [], + "index": 20, + "docs": [ + "A contract called into the runtime which then called back into this pallet." + ] + }, + { + "name": "StateChangeDenied", + "fields": [], + "index": 21, + "docs": [ + "A contract attempted to invoke a state modifying API while being in read-only mode." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "fields": [], + "index": 22, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "fields": [], + "index": 23, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "fields": [], + "index": 24, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "fields": [], + "index": 25, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "fields": [], + "index": 26, + "docs": [ + "The contract failed to compile or is missing the correct entry points.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::revive=debug`." + ] + }, + { + "name": "BlobTooLarge", + "fields": [], + "index": 27, + "docs": [ + "The code blob supplied is larger than [`limits::code::BLOB_BYTES`]." + ] + }, + { + "name": "StaticMemoryTooLarge", + "fields": [], + "index": 28, + "docs": [ + "The static memory consumption of the blob will be larger than", + "[`limits::code::STATIC_MEMORY_BYTES`]." + ] + }, + { + "name": "BasicBlockTooLarge", + "fields": [], + "index": 29, + "docs": [ + "The program contains a basic block that is larger than allowed." + ] + }, + { + "name": "InvalidInstruction", + "fields": [], + "index": 30, + "docs": [ + "The program contains an invalid instruction." + ] + }, + { + "name": "MaxDelegateDependenciesReached", + "fields": [], + "index": 31, + "docs": [ + "The contract has reached its maximum number of delegate dependencies." + ] + }, + { + "name": "DelegateDependencyNotFound", + "fields": [], + "index": 32, + "docs": [ + "The dependency was not found in the contract's delegate dependencies." + ] + }, + { + "name": "DelegateDependencyAlreadyExists", + "fields": [], + "index": 33, + "docs": [ + "The contract already depends on the given delegate dependency." + ] + }, + { + "name": "CannotAddSelfAsDelegateDependency", + "fields": [], + "index": 34, + "docs": [ + "Can not add a delegate dependency to the code hash of the contract itself." + ] + }, + { + "name": "OutOfTransientStorage", + "fields": [], + "index": 35, + "docs": [ + "Can not add more data to transient storage." + ] + }, + { + "name": "InvalidSyscall", + "fields": [], + "index": 36, + "docs": [ + "The contract tried to call a syscall which does not exist (at its current api level)." + ] + }, + { + "name": "InvalidStorageFlags", + "fields": [], + "index": 37, + "docs": [ + "Invalid storage flags were passed to one of the storage syscalls." + ] + }, + { + "name": "ExecutionFailed", + "fields": [], + "index": 38, + "docs": [ + "PolkaVM failed during code execution. Probably due to a malformed program." + ] + }, + { + "name": "BalanceConversionFailed", + "fields": [], + "index": 39, + "docs": [ + "Failed to convert a U256 to a Balance." + ] + }, + { + "name": "DecimalPrecisionLoss", + "fields": [], + "index": 40, + "docs": [ + "Failed to convert an EVM balance to a native balance." + ] + }, + { + "name": "InvalidImmutableAccess", + "fields": [], + "index": 41, + "docs": [ + "Immutable data can only be set during deploys and only be read during calls.", + "Additionally, it is only valid to set the data once and it must not be empty." + ] + }, + { + "name": "AccountUnmapped", + "fields": [], + "index": 42, + "docs": [ + "An `AccountID32` account tried to interact with the pallet without having a mapping.", + "", + "Call [`Pallet::map_account`] in order to create a mapping for the account." + ] + }, + { + "name": "AccountAlreadyMapped", + "fields": [], + "index": 43, + "docs": [ + "Tried to map an account that is already mapped." + ] + }, + { + "name": "InvalidGenericTransaction", + "fields": [], + "index": 44, + "docs": [ + "The transaction used to dry-run a contract is invalid." + ] + }, + { + "name": "RefcountOverOrUnderflow", + "fields": [], + "index": 45, + "docs": [ + "The refcount of a code either over or underflowed." + ] + }, + { + "name": "UnsupportedPrecompileAddress", + "fields": [], + "index": 46, + "docs": [ + "Unsupported precompile address" + ] + }, + { + "name": "PrecompileFailure", + "fields": [], + "index": 47, + "docs": [ + "Precompile Error" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 992, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "Delegation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 993, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "AgentLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total_delegated", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pending_slash", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 994, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "The account cannot perform this operation." + ] + }, + { + "name": "AlreadyStaking", + "fields": [], + "index": 1, + "docs": [ + "An existing staker cannot perform this action." + ] + }, + { + "name": "InvalidRewardDestination", + "fields": [], + "index": 2, + "docs": [ + "Reward Destination cannot be same as `Agent` account." + ] + }, + { + "name": "InvalidDelegation", + "fields": [], + "index": 3, + "docs": [ + "Delegation conditions are not met.", + "", + "Possible issues are", + "1) Cannot delegate to self,", + "2) Cannot delegate to multiple delegates." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 4, + "docs": [ + "The account does not have enough funds to perform the operation." + ] + }, + { + "name": "NotAgent", + "fields": [], + "index": 5, + "docs": [ + "Not an existing `Agent` account." + ] + }, + { + "name": "NotDelegator", + "fields": [], + "index": 6, + "docs": [ + "Not a Delegator account." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 7, + "docs": [ + "Some corruption in internal state." + ] + }, + { + "name": "UnappliedSlash", + "fields": [], + "index": 8, + "docs": [ + "Unapplied pending slash restricts operation on `Agent`." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 9, + "docs": [ + "`Agent` has no pending slash to be applied." + ] + }, + { + "name": "WithdrawFailed", + "fields": [], + "index": 10, + "docs": [ + "Failed to withdraw amount from Core Staking." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 11, + "docs": [ + "Operation not supported by this pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 995, + "type": { + "path": [ + "pallet_asset_rewards", + "PoolStakerInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "rewards", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reward_per_token_paid", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 996, + "type": { + "path": [ + "pallet_asset_rewards", + "PoolInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AssetId", + "type": 40 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "staked_asset_id", + "type": 40, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "reward_asset_id", + "type": 40, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "reward_rate_per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "expiry_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_tokens_staked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reward_per_token_stored", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "last_update_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 997, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 998 + ] + }, + "docs": [] + } + }, + { + "id": 998, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 999, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughTokens", + "fields": [], + "index": 0, + "docs": [ + "The staker does not have enough tokens to perform the operation." + ] + }, + { + "name": "NonExistentPool", + "fields": [], + "index": 1, + "docs": [ + "An operation was attempted on a non-existent pool." + ] + }, + { + "name": "NonExistentStaker", + "fields": [], + "index": 2, + "docs": [ + "An operation was attempted for a non-existent staker." + ] + }, + { + "name": "NonExistentAsset", + "fields": [], + "index": 3, + "docs": [ + "An operation was attempted with a non-existent asset." + ] + }, + { + "name": "BlockNumberConversionError", + "fields": [], + "index": 4, + "docs": [ + "There was an error converting a block number." + ] + }, + { + "name": "ExpiryBlockMustBeInTheFuture", + "fields": [], + "index": 5, + "docs": [ + "The expiry block must be in the future." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Insufficient funds to create the freeze." + ] + }, + { + "name": "ExpiryCut", + "fields": [], + "index": 7, + "docs": [ + "The expiry block can be only extended." + ] + }, + { + "name": "RewardRateCut", + "fields": [], + "index": 8, + "docs": [ + "The reward rate per block can be only increased." + ] + }, + { + "name": "NonEmptyPool", + "fields": [], + "index": 9, + "docs": [ + "The pool still has staked tokens or rewards." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1000, + "type": { + "path": [ + "pallet_assets_freezer", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyFreezes", + "fields": [], + "index": 0, + "docs": [ + "Number of freezes on an account would exceed `MaxFreezes`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1001, + "type": { + "path": [ + "pallet_meta_tx", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid proof (e.g. signature)." + ] + }, + { + "name": "Future", + "fields": [], + "index": 1, + "docs": [ + "The meta transaction is not yet valid (e.g. nonce too high)." + ] + }, + { + "name": "Stale", + "fields": [], + "index": 2, + "docs": [ + "The meta transaction is outdated (e.g. nonce too low)." + ] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 3, + "docs": [ + "The meta transactions's birth block is ancient." + ] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 4, + "docs": [ + "The transaction extension did not authorize any origin." + ] + }, + { + "name": "Invalid", + "fields": [], + "index": 5, + "docs": [ + "The meta transaction is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1002, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 485, + 486, + 487, + 488, + 489, + 491, + 1003, + 1004, + 492, + 1006 + ] + }, + "docs": [] + } + }, + { + "id": 1003, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1004, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 166, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 1005, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1005, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 40 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 40, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1006, + "type": { + "path": [ + "frame_system", + "extensions", + "weight_reclaim", + "WeightReclaim" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1007, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 153 + }, + { + "name": "Extrinsic", + "type": 1008 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 153, + "typeName": "Header", + "docs": [] + }, + { + "name": "extrinsics", + "type": 1009, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1008, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 163 + }, + { + "name": "Call", + "type": 139 + }, + { + "name": "Signature", + "type": 313 + }, + { + "name": "Extra", + "type": 1002 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1009, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1008 + } + }, + "docs": [] + } + }, + { + "id": 1010, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyInherents", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1011, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1012, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1011 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1011, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1013, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "prefix", + "type": 82, + "typeName": "[u8; 16]", + "docs": [] + }, + { + "name": "suffix", + "type": 82, + "typeName": "[u8; 16]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1014, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "E", + "type": 1015 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1015, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1015, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionDispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotImplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotFound", + "fields": [ + { + "name": null, + "type": 1013, + "typeName": "ViewFunctionId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Codec", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1016, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 33 + }, + { + "name": "E", + "type": 1017 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 33, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1017, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1017, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 1018, + "typeName": "InvalidTransaction", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Unknown", + "fields": [ + { + "name": null, + "type": 1019, + "typeName": "UnknownTransaction", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1018, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Payment", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Future", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Stale", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BadProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExhaustsResources", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BadMandatory", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "MandatoryValidation", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "BadSigner", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IndeterminateImplicit", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 12, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1019, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoUnsignedValidator", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1020, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 1021, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1021, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 285 + }, + { + "name": "V", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1022, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1022, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1023 + } + }, + "docs": [] + } + }, + { + "id": 1023, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 285, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 1024, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "errors", + "type": 1020, + "typeName": "InherentData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1025, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "External", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1026, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1027 + }, + { + "name": "E", + "type": 1017 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1027, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1017, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1027, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority", + "docs": [] + }, + { + "name": "requires", + "type": 143, + "typeName": "Vec", + "docs": [] + }, + { + "name": "provides", + "type": 143, + "typeName": "Vec", + "docs": [] + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity", + "docs": [] + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1028, + "type": { + "path": [ + "sp_statement_store", + "runtime_api", + "StatementSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Chain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Network", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1029, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1030 + }, + { + "name": "E", + "type": 1031 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1030, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1031, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1030, + "type": { + "path": [ + "sp_statement_store", + "runtime_api", + "ValidStatement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1031, + "type": { + "path": [ + "sp_statement_store", + "runtime_api", + "InvalidStatement" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadProof", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoProof", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "InternalError", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1032, + "type": { + "path": [ + "sp_runtime", + "OpaqueValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1033, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 34 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1034, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1032 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1032, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1035, + "type": { + "path": [ + "sp_consensus_babe", + "BabeConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "slot_duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "epoch_length", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "c", + "type": 159, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "authorities", + "type": 570, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 160, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1036, + "type": { + "path": [ + "sp_consensus_babe", + "Epoch" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "epoch_index", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "start_slot", + "type": 156, + "typeName": "Slot", + "docs": [] + }, + { + "name": "duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "authorities", + "type": 570, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "config", + "type": 579, + "typeName": "BabeEpochConfiguration", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1037, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1038 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1038, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1038, + "type": { + "path": [ + "sp_consensus_babe", + "OpaqueKeyOwnershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1039, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1040 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "EventRecord", + "type": 20 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1043, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "debug_message", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "result", + "type": 1040, + "typeName": "R", + "docs": [] + }, + { + "name": "events", + "type": 1044, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1040, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1041 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1041, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1041, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ExecReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "flags", + "type": 1042, + "typeName": "ReturnFlags", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1042, + "type": { + "path": [ + "pallet_contracts_uapi", + "flags", + "ReturnFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bits", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1043, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "StorageDeposit" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Refund", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Charge", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1044, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1045 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1045, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1045, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 1046, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "Code" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Upload", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Existing", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1047, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1048 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "EventRecord", + "type": 20 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1043, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "debug_message", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "result", + "type": 1048, + "typeName": "R", + "docs": [] + }, + { + "name": "events", + "type": 1044, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1048, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1049 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1049, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1049, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "InstantiateReturnValue" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "result", + "type": 1041, + "typeName": "ExecReturnValue", + "docs": [] + }, + { + "name": "account_id", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1050, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1051 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1051, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1051, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "CodeUploadReturnValue" + ], + "params": [ + { + "name": "CodeHash", + "type": 13 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1052, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 439 + }, + { + "name": "E", + "type": 1053 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 439, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1053, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1053, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ContractAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "DoesntExist", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "KeyDecodingFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "MigrationInProgress", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1054, + "type": { + "path": [ + "primitive_types", + "U256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1055, + "typeName": "[u64; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1055, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 1056, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1057 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1059, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "result", + "type": 1060, + "typeName": "Result", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1057, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ExecReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "flags", + "type": 1058, + "typeName": "ReturnFlags", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1058, + "type": { + "path": [ + "pallet_revive_uapi", + "flags", + "ReturnFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bits", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1059, + "type": { + "path": [ + "pallet_revive", + "primitives", + "StorageDeposit" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Refund", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Charge", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1060, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1057 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1057, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1061, + "type": { + "path": [ + "pallet_revive", + "primitives", + "Code" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Upload", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Existing", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1062, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1063 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1059, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "result", + "type": 1064, + "typeName": "Result", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1063, + "type": { + "path": [ + "pallet_revive", + "primitives", + "InstantiateReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "result", + "type": 1057, + "typeName": "ExecReturnValue", + "docs": [] + }, + { + "name": "addr", + "type": 478, + "typeName": "H160", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1064, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1063 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1063, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1065, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "GenericTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "access_list", + "type": 1066, + "typeName": "Option", + "docs": [] + }, + { + "name": "blob_versioned_hashes", + "type": 325, + "typeName": "Vec", + "docs": [] + }, + { + "name": "blobs", + "type": 1069, + "typeName": "Vec", + "docs": [] + }, + { + "name": "chain_id", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "from", + "type": 1072, + "typeName": "Option
", + "docs": [] + }, + { + "name": "gas", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "gas_price", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "input", + "type": 1073, + "typeName": "InputOrData", + "docs": [] + }, + { + "name": "max_fee_per_blob_gas", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_fee_per_gas", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_priority_fee_per_gas", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "nonce", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "to", + "type": 1072, + "typeName": "Option
", + "docs": [] + }, + { + "name": "r#type", + "type": 1075, + "typeName": "Option", + "docs": [] + }, + { + "name": "value", + "type": 1071, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1066, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1067 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1067, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1067, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1068 + } + }, + "docs": [] + } + }, + { + "id": 1068, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "AccessListEntry" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 478, + "typeName": "Address", + "docs": [] + }, + { + "name": "storage_keys", + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1069, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1070 + } + }, + "docs": [] + } + }, + { + "id": 1070, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "byte", + "Bytes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1071, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1054 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1054, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1072, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 478 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 478, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1073, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "InputOrData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "input", + "type": 1074, + "typeName": "Option", + "docs": [] + }, + { + "name": "data", + "type": 1074, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1074, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1070 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1070, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1075, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1076 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1076, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1076, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "byte", + "Byte" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1077, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1078 + }, + { + "name": "E", + "type": 1079 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1078, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1079, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1078, + "type": { + "path": [ + "pallet_revive", + "primitives", + "EthTransactInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "eth_gas", + "type": 1054, + "typeName": "U256", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1079, + "type": { + "path": [ + "pallet_revive", + "primitives", + "EthTransactError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Data", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Message", + "fields": [ + { + "name": null, + "type": 554, + "typeName": "String", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1080, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1081 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1081, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1081, + "type": { + "path": [ + "pallet_revive", + "primitives", + "CodeUploadReturnValue" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1082, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 439 + }, + { + "name": "E", + "type": 1083 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 439, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1083, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1083, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "DoesntExist", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "KeyDecodingFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1084, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "TracerType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CallTracer", + "fields": [ + { + "name": null, + "type": 1085, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1085, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1086 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1086, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1086, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallTracerConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "with_logs", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "only_top_call", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1087, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1088 + } + }, + "docs": [] + } + }, + { + "id": 1088, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 1089 + ] + }, + "docs": [] + } + }, + { + "id": 1089, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "Trace" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [ + { + "name": null, + "type": 1090, + "typeName": "CallTrace", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1090, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallTrace" + ], + "params": [ + { + "name": "Gas", + "type": 1054 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "from", + "type": 478, + "typeName": "H160", + "docs": [] + }, + { + "name": "gas", + "type": 1054, + "typeName": "Gas", + "docs": [] + }, + { + "name": "gas_used", + "type": 1054, + "typeName": "Gas", + "docs": [] + }, + { + "name": "to", + "type": 478, + "typeName": "H160", + "docs": [] + }, + { + "name": "input", + "type": 1070, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "output", + "type": 1070, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "error", + "type": 1091, + "typeName": "Option", + "docs": [] + }, + { + "name": "revert_reason", + "type": 1091, + "typeName": "Option", + "docs": [] + }, + { + "name": "calls", + "type": 1092, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "logs", + "type": 1093, + "typeName": "Vec", + "docs": [] + }, + { + "name": "value", + "type": 1071, + "typeName": "Option", + "docs": [] + }, + { + "name": "call_type", + "type": 1095, + "typeName": "CallType", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1091, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 554 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 554, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1092, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1090 + } + }, + "docs": [] + } + }, + { + "id": 1093, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1094 + } + }, + "docs": [] + } + }, + { + "id": 1094, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallLog" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 478, + "typeName": "H160", + "docs": [] + }, + { + "name": "topics", + "type": 325, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 1070, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "position", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1095, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StaticCall", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DelegateCall", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1096, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1089 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1089, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1097, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1089 + }, + { + "name": "E", + "type": 1079 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1089, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1079, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1098, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1099, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 1100, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1100, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1101 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1101, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1101, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1102, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1103 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1103, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1103, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 1104, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1105 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1105, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1105, + "type": { + "path": [ + "sp_consensus_beefy", + "ValidatorSet" + ], + "params": [ + { + "name": "AuthorityId", + "type": 243 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 820, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1106, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 153 + }, + { + "name": "Id", + "type": 243 + }, + { + "name": "AncestryProof", + "type": 1032 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 337, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 1032, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 153, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1107, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 1108 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1108, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1108, + "type": { + "path": [ + "sp_mmr_primitives", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNumericOp", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Push", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "GetRoot", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Commit", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "GenerateProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Verify", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "LeafNotFound", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "PalletNotIncluded", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "InvalidLeafIndex", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidBestKnownBlock", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1109, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 12 + }, + { + "name": "E", + "type": 1108 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1108, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1110, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1111 + }, + { + "name": "E", + "type": 1108 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1111, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1108, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1111, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1112, + 1114 + ] + }, + "docs": [] + } + }, + { + "id": 1112, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1113 + } + }, + "docs": [] + } + }, + { + "id": 1113, + "type": { + "path": [ + "sp_mmr_primitives", + "EncodableOpaqueLeaf" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1114, + "type": { + "path": [ + "sp_mmr_primitives", + "LeafProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "leaf_indices", + "type": 881, + "typeName": "Vec", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 325, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1115, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 1108 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1108, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1116, + "type": { + "path": [ + "sp_mixnet", + "types", + "SessionStatus" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "current_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "phase", + "type": 1117, + "typeName": "SessionPhase", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1117, + "type": { + "path": [ + "sp_mixnet", + "types", + "SessionPhase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CoverToCurrent", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "RequestsToCurrent", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "CoverToPrev", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DisconnectFromPrev", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1118, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1119 + }, + { + "name": "E", + "type": 1121 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1119, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1121, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1119, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1120 + } + }, + "docs": [] + } + }, + { + "id": 1120, + "type": { + "path": [ + "sp_mixnet", + "types", + "Mixnode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "kx_public", + "type": 1, + "typeName": "KxPublic", + "docs": [] + }, + { + "name": "peer_id", + "type": 1, + "typeName": "PeerId", + "docs": [] + }, + { + "name": "external_addresses", + "type": 143, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1121, + "type": { + "path": [ + "sp_mixnet", + "types", + "MixnodesErr" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientRegistrations", + "fields": [ + { + "name": "num", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "min", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1122, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1123 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1123, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1123, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1124 + } + }, + "docs": [] + } + }, + { + "id": 1124, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 658 + ] + }, + "docs": [] + } + }, + { + "id": 1125, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 554 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 554, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1126, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 554 + } + }, + "docs": [] + } + }, + { + "id": 1127, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 566, + "typeName": "frame_system::Error", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 567, + "typeName": "pallet_utility::Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 583, + "typeName": "pallet_babe::Error", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 585, + "typeName": "pallet_indices::Error", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 617, + "typeName": "pallet_balances::Error", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 629, + "typeName": "pallet_election_provider_multi_phase::Error", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 651, + "typeName": "pallet_staking::Error", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 659, + "typeName": "pallet_session::Error", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 676, + "typeName": "pallet_democracy::Error", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 681, + "typeName": "pallet_collective::Error", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 683, + "typeName": "pallet_collective::Error", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 687, + "typeName": "pallet_elections_phragmen::Error", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 689, + "typeName": "pallet_membership::Error", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 693, + "typeName": "pallet_grandpa::Error", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 699, + "typeName": "pallet_treasury::Error", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 700, + "typeName": "pallet_asset_rate::Error", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 721, + "typeName": "pallet_contracts::Error", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 722, + "typeName": "pallet_sudo::Error", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 725, + "typeName": "pallet_im_online::Error", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 747, + "typeName": "pallet_identity::Error", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 766, + "typeName": "pallet_society::Error", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 770, + "typeName": "pallet_recovery::Error", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 774, + "typeName": "pallet_vesting::Error", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 780, + "typeName": "pallet_scheduler::Error", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 781, + "typeName": "pallet_glutton::Error", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 789, + "typeName": "pallet_preimage::Error", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 798, + "typeName": "pallet_proxy::Error", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 801, + "typeName": "pallet_multisig::Error", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 805, + "typeName": "pallet_bounties::Error", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 807, + "typeName": "pallet_tips::Error", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 817, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 818, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 821, + "typeName": "pallet_beefy::Error", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 827, + "typeName": "pallet_lottery::Error", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 835, + "typeName": "pallet_nis::Error", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 844, + "typeName": "pallet_uniques::Error", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 865, + "typeName": "pallet_nfts::Error", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 867, + "typeName": "pallet_nft_fractionalization::Error", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 871, + "typeName": "pallet_salary::Error", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 874, + "typeName": "pallet_core_fellowship::Error", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 878, + "typeName": "pallet_transaction_storage::Error", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 882, + "typeName": "pallet_bags_list::Error", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "pallet_state_trie_migration::Error", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 886, + "typeName": "pallet_child_bounties::Error", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 899, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 900, + "typeName": "pallet_remark::Error", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 913, + "typeName": "pallet_conviction_voting::Error", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 914, + "typeName": "pallet_whitelist::Error", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 916, + "typeName": "pallet_collective::Error", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 923, + "typeName": "pallet_alliance::Error", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 938, + "typeName": "pallet_nomination_pools::Error", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 943, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 948, + "typeName": "pallet_ranked_collective::Error", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 950, + "typeName": "pallet_asset_conversion::Error", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 954, + "typeName": "pallet_fast_unstake::Error", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 960, + "typeName": "pallet_message_queue::Error", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 961, + "typeName": "pallet_tx_pause::Error", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 962, + "typeName": "pallet_safe_mode::Error", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 963, + "typeName": "pallet_migrations::Error", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 983, + "typeName": "pallet_broker::Error", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "TasksExample", + "fields": [ + { + "name": null, + "type": 984, + "typeName": "pallet_example_tasks::Error", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 985, + "typeName": "pallet_asset_conversion_ops::Error", + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 991, + "typeName": "pallet_revive::Error", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 994, + "typeName": "pallet_delegated_staking::Error", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 999, + "typeName": "pallet_asset_rewards::Error", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "AssetsFreezer", + "fields": [ + { + "name": null, + "type": 1000, + "typeName": "pallet_assets_freezer::Error", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MetaTx", + "fields": [ + { + "name": null, + "type": 1001, + "typeName": "pallet_meta_tx::Error", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/bizinikiwi-ver.ts b/packages/types-support/src/metadata/v15/bizinikiwi-ver.ts new file mode 100644 index 0000000..730ceaa --- /dev/null +++ b/packages/types-support/src/metadata/v15/bizinikiwi-ver.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "specName": "node", + "implName": "bizinikiwi-node", + "authoringVersion": 10, + "specVersion": 268, + "implVersion": 0, + "apis": [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0xccd9de6396c899ca", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xbe9fb0c91a8046cf", + 1 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x8453b50b22293977", + 1 + ], + [ + "0x68b66ba122c93fa7", + 2 + ], + [ + "0x8c403e5c4a9fd442", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0x8a8047a53a8277ec", + 1 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x899a250cbe84f250", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x6fd7c327202e4a8d", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0x65f855d6e093c2f1", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ], + "transactionVersion": 2, + "systemVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v15/dicle-hex.ts b/packages/types-support/src/metadata/v15/dicle-hex.ts new file mode 100644 index 0000000..cdca9d6 --- /dev/null +++ b/packages/types-support/src/metadata/v15/dicle-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev --alice --force-authoring + +export default '0x0176001f006d6574610f2112000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365c109011450686173650001146576656e7454010445000118746f70696373590301185665633c543e000054085873746167696e675f6b7573616d615f72756e74696d653052756e74696d654576656e740001bc1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c496e6469636573040080017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0003002042616c616e636573040084017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000400485472616e73616374696f6e5061796d656e7404009001a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0021001c5374616b696e67040094017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000600204f6666656e6365730400b0015870616c6c65745f6f6666656e6365733a3a4576656e7400070028486973746f726963616c0400b8018873657373696f6e5f686973746f726963616c3a3a4576656e743c52756e74696d653e0022001c53657373696f6e0400bc017870616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e0008001c4772616e6470610400c0015470616c6c65745f6772616e6470613a3a4576656e74000a002054726561737572790400d0017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00120040436f6e76696374696f6e566f74696e670400790101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e001400245265666572656e646104008901018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0015005046656c6c6f7773686970436f6c6c6563746976650400b50801390170616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a0a496e7374616e6365313e0016004c46656c6c6f77736869705265666572656e64610400c10801f470616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e0017002457686974656c6973740400c508018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e002c0028506172616d65746572730400d508018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e002e0018436c61696d730400f5080158636c61696d733a3a4576656e743c52756e74696d653e0013001c5574696c6974790400f908015470616c6c65745f7574696c6974793a3a4576656e740018001c536f636965747904000109017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e001a00205265636f7665727904000909017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e001b001c56657374696e6704001509017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001c00245363686564756c657204001909018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e001d001450726f787904001d09017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001e00204d756c746973696704002509017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001f0020507265696d61676504002909017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e00200020426f756e7469657304002d09017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002300344368696c64426f756e7469657304003109019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e00280068456c656374696f6e50726f76696465724d756c746950686173650400350901d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e00250024566f7465724c6973740400450901f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0027003c4e6f6d696e6174696f6e506f6f6c7304004909019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e0029002c46617374556e7374616b6504005109018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e002a004044656c6567617465645374616b696e670400550901a070616c6c65745f64656c6567617465645f7374616b696e673a3a4576656e743c52756e74696d653e002f003c5374616b696e674168436c69656e740400590901b870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e743a3a4576656e743c52756e74696d653e0030003450617261496e636c7573696f6e04006109019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007109018070617261636861696e735f70617261733a3a4576656e743c52756e74696d653e0038001048726d7004007509017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c00345061726173446973707574657304007909018c70617261636861696e735f64697370757465733a3a4576656e743c52756e74696d653e003e00684f6e44656d616e6441737369676e6d656e7450726f766964657204008509019070617261636861696e735f6f6e5f64656d616e643a3a4576656e743c52756e74696d653e0040002452656769737472617204008909017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f747304008d090154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009109016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009509016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490020436f726574696d65040099090160636f726574696d653a3a4576656e743c52756e74696d653e004a002458636d50616c6c657404009d09016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e006300304d65737361676551756575650400ad09019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e006400244173736574526174650400b509018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e0065002852634d69677261746f720400b909018870616c6c65745f72635f6d69677261746f723a3a4576656e743c52756e74696d653e00ff0000580c306672616d655f73797374656d1870616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574840c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e7408045400044900015c1c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e28556e657870656374656404008c0138556e65787065637465644b696e64001604b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748814346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c0c3c70616c6c65745f62616c616e6365731870616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e7400010000900c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657494103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400014c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e7449640001106465737498017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6e9c011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874a001304f7074696f6e3c506167653e000c045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673a4013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465ac011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00120855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657498083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e65000400009c0c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000a004184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000a4083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6ea8011c50657262696c6c00011c626c6f636b6564200110626f6f6c0000a80000069c00ac083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000b00c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64b401104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652eb4000003100000000800b8103870616c6c65745f73657373696f6e28686973746f726963616c1870616c6c6574144576656e7404045400010828526f6f7453746f726564040114696e64657810013053657373696f6e496e6465780000040501546865206d65726b6c6520726f6f74206f66207468652076616c696461746f7273206f662074686520736169642073657373696f6e20776572652073746f7265642c526f6f74735072756e656404011475705f746f10013053657373696f6e496e646578000104e0546865206d65726b6c6520726f6f7473206f6620757020746f20746869732073657373696f6e20696e6465782077657265207072756e6564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bc0c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74040454000110284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e244e6577517565756564000108490154686520604e657753657373696f6e60206576656e7420696e207468652063757272656e7420626c6f636b20616c736f20696d706c6965732061206e65772076616c696461746f722073657420746f2062651c7175657565642e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640003047856616c696461746f7220686173206265656e2072652d656e61626c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c00c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574c40134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c4000002c800c800000408cc3000cc0c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c69630000d00c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64d40130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727975010138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d40c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c65417373657400010c0856330801206c6f636174696f6ed8014478636d3a3a76333a3a4c6f636174696f6e00012061737365745f69640101014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6e0501014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69643901014078636d3a3a76343a3a417373657449640004000856350801206c6f636174696f6e3d01014478636d3a3a76353a3a4c6f636174696f6e00012061737365745f69647101014078636d3a3a76353a3a4173736574496400050000d8102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72dc01244a756e6374696f6e730000dc100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400e001204a756e6374696f6e0001000858320800e001204a756e6374696f6e0000e001204a756e6374696f6e0002000858330c00e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0003000858341000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0004000858351400e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0005000858361800e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0006000858371c00e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0007000858382000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e0000e001204a756e6374696f6e00080000e0100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400e4010c7533320000002c4163636f756e744964333208011c6e6574776f726be801444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726be801444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726be801444f7074696f6e3c4e6574776f726b49643e00010c6b6579f001205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400f40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f80118426f6479496400011070617274fc0120426f6479506172740008003c476c6f62616c436f6e73656e7375730400ec01244e6574776f726b496400090000e40000061000e804184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec0000010000ec100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a0000f0000003140000000800f40000061800f8100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400e4010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e00080020547265617375727900090000fc100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74e4010c753332000100204672616374696f6e08010c6e6f6de4010c75333200011464656e6f6de4010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6de4010c75333200011464656e6f6de4010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6de4010c75333200011464656e6f6de4010c753332000400000101100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400d801344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d000100000501102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72090101244a756e6374696f6e7300000901102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e73000124104865726500000008583104000d0101484172633c5b4a756e6374696f6e3b20315d3e00010008583204001d0101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400210101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400250101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400290101484172633c5b4a756e6374696f6e3b20355d3e00050008583604002d0101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400310101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400350101484172633c5b4a756e6374696f6e3b20385d3e000800000d01000003010000001101001101102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400e4010c7533320000002c4163636f756e744964333208011c6e6574776f726b150101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b150101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b150101444f7074696f6e3c4e6574776f726b49643e00010c6b6579f001205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400f40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f80118426f6479496400011070617274fc0120426f6479506172740008003c476c6f62616c436f6e73656e7375730400190101244e6574776f726b496400090000150104184f7074696f6e0404540119010108104e6f6e6500000010536f6d650400190100000100001901102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00001d01000003020000001101002101000003030000001101002501000003040000001101002901000003050000001101002d01000003060000001101003101000003070000001101003501000003080000001101003901102c73746167696e675f78636d0876341461737365741c4173736574496400000400050101204c6f636174696f6e00003d01102c73746167696e675f78636d087635206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72410101244a756e6374696f6e7300004101102c73746167696e675f78636d087635246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400450101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400550101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400590101484172633c5b4a756e6374696f6e3b20335d3e00030008583404005d0101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400610101484172633c5b4a756e6374696f6e3b20355d3e0005000858360400650101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400690101484172633c5b4a756e6374696f6e3b20375d3e00070008583804006d0101484172633c5b4a756e6374696f6e3b20385d3e000800004501000003010000004901004901102c73746167696e675f78636d087635206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400e4010c7533320000002c4163636f756e744964333208011c6e6574776f726b4d0101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b4d0101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b4d0101444f7074696f6e3c4e6574776f726b49643e00010c6b6579f001205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e6465780400f40110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c6974790801086964f80118426f6479496400011070617274fc0120426f6479506172740008003c476c6f62616c436f6e73656e7375730400510101244e6574776f726b4964000900004d0104184f7074696f6e0404540151010108104e6f6e6500000010536f6d650400510100000100005101102c73746167696e675f78636d087635206a756e6374696f6e244e6574776f726b496400012024427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d6100030020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00005501000003020000004901005901000003030000004901005d01000003040000004901006101000003050000004901006501000003060000004901006901000003070000004901006d01000003080000004901007101102c73746167696e675f78636d0876351461737365741c41737365744964000004003d0101204c6f636174696f6e00007501080c78636d4456657273696f6e65644c6f636174696f6e00010c0856330400d8014476333a3a4d756c74694c6f636174696f6e00030008563404000501013076343a3a4c6f636174696f6e00040008563504003d01013076353a3a4c6f636174696f6e0005000079010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001142444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f74656408010c77686f000130543a3a4163636f756e744964000110766f74657d0101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f76656408010c77686f000130543a3a4163636f756e744964000110766f74657d0101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c61737385010134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d010c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746581010110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000081010c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f746500000400080000008501000005040089010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c8d01014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c8d01014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79b1080120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79b1080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79b1080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79b1080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79b1080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79b1080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d0110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564080454019101044801a908010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e650400ad080134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200009101085873746167696e675f6b7573616d615f72756e74696d652c52756e74696d6543616c6c0001cc1853797374656d0400950101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e00000010426162650400a50101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0001002454696d657374616d700400c90101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002001c496e64696365730400cd0101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0003002042616c616e6365730400dd0101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0004001c5374616b696e670400e90101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0006001c53657373696f6e0400250201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0008001c4772616e6470610400410201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000a0020547265617375727904006d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00120040436f6e76696374696f6e566f74696e670400710201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e001400245265666572656e646104007d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0015005046656c6c6f7773686970436f6c6c6563746976650400a10201e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46656c6c6f7773686970436f6c6c6563746976652c2052756e74696d653e0016004c46656c6c6f77736869705265666572656e64610400a50201e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46656c6c6f77736869705265666572656e64612c2052756e74696d653e0017002457686974656c6973740400a90201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e002c0028506172616d65746572730400ad0201bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e002e0018436c61696d730400f50201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0013001c5574696c6974790400150301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0018001c536f636965747904001d0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e001a00205265636f766572790400210301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e001b001c56657374696e670400290301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001c00245363686564756c65720400310301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e001d001450726f787904003d0301a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001e00204d756c74697369670400490301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001f0020507265696d6167650400550301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00200020426f756e7469657304005d0301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e002300344368696c64426f756e746965730400610301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e00280068456c656374696f6e50726f76696465724d756c746950686173650400650301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00250024566f7465724c6973740400b90401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e0027003c4e6f6d696e6174696f6e506f6f6c730400bd0401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e0029002c46617374556e7374616b650400f10401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e002a003c5374616b696e674168436c69656e740400f50401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e674168436c69656e742c2052756e74696d653e00300034436f6e66696775726174696f6e0400010501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400250501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400290501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e7404002d0501c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400b90501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400c10501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039001048726d700400c50501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c0034506172617344697370757465730400cd0501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172617344697370757465732c2052756e74696d653e003e00345061726173536c617368696e670400d10501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061726173536c617368696e672c2052756e74696d653e003f00684f6e44656d616e6441737369676e6d656e7450726f76696465720400e10501fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f6e44656d616e6441737369676e6d656e7450726f76696465722c2052756e74696d653e004000245265676973747261720400e50501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400e90501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e730400ed0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400f50501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e00490020436f726574696d650400090601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f726574696d652c2052756e74696d653e004a002458636d50616c6c657404001d0601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d50616c6c65742c2052756e74696d653e006300304d657373616765517565756504008d0701c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e006400244173736574526174650400990701b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e0065001442656566790400a10701a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e00c8002852634d69677261746f720400d90701bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52634d69677261746f722c2052756e74696d653e00ff000095010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73990101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973a10101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99010000029d01009d0100000408383800a1010000023800a5010c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66a9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66a9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967bd0101504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea901084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201ad0108496401b101001001206f6666656e646572b10101084964000110736c6f74b5010110536c6f7400013066697273745f686561646572ad0101184865616465720001347365636f6e645f686561646572ad0101184865616465720000ad01102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572e401184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000b1010c4473705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c69630000b501084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c7536340000b901082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573a10101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e740000bd010c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f7200010408563108010463c1010128287536342c2075363429000134616c6c6f7765645f736c6f7473c5010130416c6c6f776564536c6f747300010000c10100000408303000c501084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f747300020000c9010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd010c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577d10101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577d10101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed1010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e64657801d501011408496404000001244163636f756e74496400000014496e6465780400d90101304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400f001205b75383b2032305d00040000d5010000040000d901000006d50100dd010c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374d10101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565f40128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365d10101504163636f756e7449644c6f6f6b75704f663c543e00011064657374d10101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565f40128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374d10101504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565f40128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374d10101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686fe10101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565f40128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ee501014c41646a7573746d656e74446972656374696f6e00011464656c7461f40128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565f40128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1010000020000e5010c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000e901103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400018010626f6e6408011476616c7565f4013042616c616e63654f663c543e000114706179656598017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616cf4013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565f4013042616c616e63654f663c543e00025451015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e003d01546865207374617368206d6179206265206368696c6c656420696620746865206c656467657220746f74616c20616d6f756e742066616c6c7320746f203020616674657220756e626f6e64696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673a4013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473ed0101645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f7061796565040114706179656598017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577e4010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616ce4010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f72f101011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573e10101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573f50101205665633c7533323e0011189443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2ee454686579202a2a6d7573742a2a20626520736f7274656420696e20617363656e64696e67206f726465722c202a616e642a20756e697175652e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c7565f4013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686fed0101645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e64f9010158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e64f9010158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e74fd010134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e74fd010134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6401020144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e05020144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f7265776172647301020144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e65779c011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273090201f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c65720d0201504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616c110201504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e6715020115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cbc52656d6f76657320746865206c6567616379205374616b696e67206c6f636b7320696620746865792065786973742e005101546869732072656d6f76657320746865206c6567616379206c6f636b206f6e20746865207374616b652077697468205b60436f6e6669673a3a4f6c6443757272656e6379605d20616e64206372656174657320615501686f6c64206f6e206974206966206e65656465642e20496620616c6c207374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c6420617329016d75636820617320706f737369626c652e205468652072656d61696e696e67207374616b6520697320666f726365642077697468647261776e2066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e306d616e75616c5f736c6173680c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e646578000138736c6173685f6672616374696f6e9c011c50657262696c6c0021541901546869732066756e6374696f6e20616c6c6f777320676f7665726e616e636520746f206d616e75616c6c7920736c61736820612076616c696461746f7220616e6420697320615c2a2a66616c6c6261636b206d656368616e69736d2a2a2e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e0034232320506172616d657465727309012d206076616c696461746f725f737461736860202d20546865207374617368206163636f756e74206f66207468652076616c696461746f7220746f20736c6173682efc2d206065726160202d205468652065726120696e207768696368207468652076616c696461746f722077617320696e2074686520616374697665207365742e49012d2060736c6173685f6672616374696f6e60202d205468652070657263656e74616765206f6620746865207374616b6520746f20736c6173682c2065787072657373656420617320612050657262696c6c2e002c2323204265686176696f72003d0154686520736c6173682077696c6c206265206170706c696564207573696e6720746865207374616e6461726420736c617368696e67206d656368616e6963732c2072657370656374696e672074686580636f6e666967757265642060536c61736844656665724475726174696f6e602e002c54686973206d65616e733a51012d204966207468652076616c696461746f722077617320616c726561647920736c61736865642062792061206869676865722070657263656e7461676520666f72207468652073616d65206572612c20746869739c2020736c6173682077696c6c2068617665206e6f206164646974696f6e616c206566666563742e51012d204966207468652076616c696461746f72207761732070726576696f75736c7920736c61736865642062792061206c6f7765722070657263656e746167652c206f6e6c792074686520646966666572656e636548202077696c6c206265206170706c6965642e3d012d2054686520736c6173682077696c6c2062652064656665727265642062792060536c61736844656665724475726174696f6e602065726173206265666f7265206265696e6720656e61637465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed01000002d10100f1010c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000f5010000021000f901103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000fd01103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200000102103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401f101010c104e6f6f700000000c5365740400f1010104540001001852656d6f7665000200000502103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454019c010c104e6f6f700000000c53657404009c0104540001001852656d6f76650002000009020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400e10101185665633c543e00000d0204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000110204184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000150204184f7074696f6e0404540119020108104e6f6e6500000010536f6d6504001902000001000019020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d02045300000400210201185665633c543e00001d02083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565f4011c42616c616e636500010c657261e40120457261496e646578000021020000021d020025020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579732902011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2902085873746167696e675f6b7573616d615f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061cc01d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265b10101c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f722d0201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e74310201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279350201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001146265656679390201c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300002d02104c706f6c6b61646f745f7072696d6974697665730876383476616c696461746f725f617070185075626c69630000040004013c737232353531393a3a5075626c696300003102104c706f6c6b61646f745f7072696d6974697665730876383861737369676e6d656e745f617070185075626c69630000040004013c737232353531393a3a5075626c6963000035020c5873705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c6963000039020c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c6963000004003d02013465636473613a3a5075626c696300003d0200000321000000080041020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66450201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66450201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4502085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e4902014845717569766f636174696f6e3c482c204e3e00004902085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f746504004d0201890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d69740400610201910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100004d02084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456015102045301550200100130726f756e645f6e756d62657230010c7536340001206964656e74697479cc0108496400011466697273745d02011828562c2053290001187365636f6e645d02011828562c20532900005102084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000055020c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040059020148656432353531393a3a5369676e6174757265000059020000034000000008005d020000040851025502006102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401cc0456016502045301550200100130726f756e645f6e756d62657230010c7536340001206964656e74697479cc0108496400011466697273746902011828562c2053290001187365636f6e646902011828562c20532900006502084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000069020000040865025502006d020c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e74f4013c42616c616e63654f663c542c20493e00012c62656e6566696369617279d10101504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f6964e4013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e64d40144426f783c543a3a41737365744b696e643e000118616d6f756e74f40150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727975010178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6da001704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e71020c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e646578e40144506f6c6c496e6465784f663c542c20493e000110766f74657d0101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c61737385010134436c6173734f663c542c20493e000108746fd10101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e75020128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c61737385010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c61737385010134436c6173734f663c542c20493e000118746172676574d10101504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373790201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574d10101504163636f756e7449644c6f6f6b75704f663c543e000114636c61737385010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e75020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000790204184f7074696f6e0404540185010108104e6f6e6500000010536f6d650400850100000100007d020c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e8102015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c8d01014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e7499020188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b8501013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f686173689d02013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8102085873746167696e675f6b7573616d615f72756e74696d65304f726967696e43616c6c65720001101873797374656d0400850201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c4f726967696e7304008902017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e002b004050617261636861696e734f726967696e04008d02016470617261636861696e735f6f726967696e3a3a4f726967696e0032002458636d50616c6c657404009502014870616c6c65745f78636d3a3a4f726967696e0063000085020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a6564000300008902145873746167696e675f6b7573616d615f72756e74696d6528676f7665726e616e63651c6f726967696e735470616c6c65745f637573746f6d5f6f726967696e73184f726967696e000170305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d004c46656c6c6f7773686970496e69746961746573000e001c46656c6c6f7773000f004446656c6c6f7773686970457870657274730010004446656c6c6f77736869704d6173746572730011003846656c6c6f77736869703144616e0012003846656c6c6f77736869703244616e0013003846656c6c6f77736869703344616e0014003846656c6c6f77736869703444616e0015003846656c6c6f77736869703544616e0016003846656c6c6f77736869703644616e0017003846656c6c6f77736869703744616e0018003846656c6c6f77736869703844616e0019003846656c6c6f77736869703944616e001a003457697368466f724368616e6765001b00008d02106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e0400910201185061726149640000000091020c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c753332000095020c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d04003d0101204c6f636174696f6e00000020526573706f6e736504003d0101204c6f636174696f6e00010000990210346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d626572000100009d0204184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000a1020c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e0000185c496e74726f647563652061206e6577206d656d6265722e00902d20606f726967696e603a204d7573742062652074686520604164644f726967696e602ee82d206077686f603a204163636f756e74206f66206e6f6e2d6d656d6265722077686963682077696c6c206265636f6d652061206d656d6265722e00385765696768743a20604f283129603870726f6d6f74655f6d656d62657204010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e000118c0496e6372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e00a02d20606f726967696e603a204d75737420626520746865206050726f6d6f74654f726967696e602e902d206077686f603a204163636f756e74206f66206578697374696e67206d656d6265722e00385765696768743a20604f283129603464656d6f74655f6d656d62657204010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e00021c5d0144656372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e20496620746865206d656d62657220697320616c72656164792061742072616e6b207a65726f2c7c7468656e2074686579206172652072656d6f76656420656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206044656d6f74654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2e0009015765696768743a20604f283129602c206c65737320696620746865206d656d626572277320696e646578206973206869676865737420696e206974732072616e6b2e3472656d6f76655f6d656d62657208010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e0001206d696e5f72616e6b8501011052616e6b00031c6c52656d6f766520746865206d656d62657220656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206052656d6f76654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2ec02d20606d696e5f72616e6b603a205468652072616e6b206f6620746865206d656d626572206f7220677265617465722e00585765696768743a20604f286d696e5f72616e6b29602e10766f7465080110706f6c6c100144506f6c6c496e6465784f663c542c20493e00010c617965200110626f6f6c00042cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e00c42d20606f726967696e603a204d75737420626520605369676e6564602062792061206d656d626572206163636f756e742eac2d2060706f6c6c603a20496e646578206f66206120706f6c6c207768696368206973206f6e676f696e672e29012d2060617965603a206074727565602069662074686520766f746520697320746f20617070726f7665207468652070726f706f73616c2c206066616c736560206f74686572776973652e0045015472616e73616374696f6e2066656573206172652062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e0035015765696768743a20604f283129602c206c65737320696620746865726520776173206e6f2070726576696f757320766f7465206f6e2074686520706f6c6c20627920746865206d656d6265722e30636c65616e75705f706f6c6c080128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e00010c6d617810010c753332000528d452656d6f766520766f7465732066726f6d2074686520676976656e20706f6c6c2e204974206d757374206861766520656e6465642e00b02d20606f726967696e603a204d75737420626520605369676e65646020627920616e79206163636f756e742e49012d2060706f6c6c5f696e646578603a20496e646578206f66206120706f6c6c20776869636820697320636f6d706c6574656420616e6420666f7220776869636820766f74657320636f6e74696e756520746f20202065786973742efc2d20606d6178603a204d6178696d756d206e756d626572206f6620766f7465206974656d732066726f6d2072656d6f766520696e20746869732063616c6c2e00ec5472616e73616374696f6e2066656573206172652077616976656420696620746865206f7065726174696f6e206973207375636365737366756c2e00150157656967687420604f286d6178296020286c65737320696620746865726520617265206665776572206974656d7320746f2072656d6f7665207468616e20606d617860292e3c65786368616e67655f6d656d62657208010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e00011c6e65775f77686fd10101504163636f756e7449644c6f6f6b75704f663c543e000614050145786368616e6765732061206d656d62657220776974682061206e6577206163636f756e7420616e64207468652073616d65206578697374696e672072616e6b2e00a42d20606f726967696e603a204d75737420626520746865206045786368616e67654f726967696e602e39012d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2062652065786368616e6765642e59012d20606e65775f77686f603a204e6577204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2065786368616e67656420746f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5020c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e8102015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c8d01014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e7499020188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b8501013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f686173689d02013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea9020c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead020c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c7565b1020150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb102085873746167696e675f6b7573616d615f72756e74696d654452756e74696d65506172616d657465727300010824496e666c6174696f6e0400b502019464796e616d69635f706172616d733a3a696e666c6174696f6e3a3a506172616d65746572730000002054726561737572790400d902019064796e616d69635f706172616d733a3a74726561737572793a3a506172616d657465727300010000b502105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e28506172616d6574657273000114304d696e496e666c6174696f6e0800b90201304d696e496e666c6174696f6e0000bd02014c4f7074696f6e3c5065727175696e74696c6c3e000000304d6178496e666c6174696f6e0800c50201304d6178496e666c6174696f6e0000bd02014c4f7074696f6e3c5065727175696e74696c6c3e00010028496465616c5374616b650800c9020128496465616c5374616b650000bd02014c4f7074696f6e3c5065727175696e74696c6c3e0002001c46616c6c6f66660800cd02011c46616c6c6f66660000bd02014c4f7074696f6e3c5065727175696e74696c6c3e0003003c55736541756374696f6e536c6f74730800d102013c55736541756374696f6e536c6f74730000d50201304f7074696f6e3c626f6f6c3e00040000b902105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e304d696e496e666c6174696f6e00000000bd0204184f7074696f6e04045401c1020108104e6f6e6500000010536f6d650400c1020000010000c1020c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c7536340000c502105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e304d6178496e666c6174696f6e00000000c902105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e28496465616c5374616b6500000000cd02105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e1c46616c6c6f666600000000d102105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e3c55736541756374696f6e536c6f747300000000d50204184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d902105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7320747265617375727928506172616d65746572730001082c4275726e506f7274696f6e0800dd02012c4275726e506f7274696f6e0000e102013c4f7074696f6e3c5065726d696c6c3e0000003c4275726e44657374696e6174696f6e0800e902013c4275726e44657374696e6174696f6e0000ed0201784f7074696f6e3c4275726e44657374696e6174696f6e4163636f756e743e00010000dd02105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d732074726561737572792c4275726e506f7274696f6e00000000e10204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000e5020c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c7533320000e902105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d732074726561737572793c4275726e44657374696e6174696f6e00000000ed0204184f7074696f6e04045401f1020108104e6f6e6500000010536f6d650400f1020000010000f102085873746167696e675f6b7573616d615f72756e74696d65584275726e44657374696e6174696f6e4163636f756e74000004000d0201444f7074696f6e3c4163636f756e7449643e0000f502105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265f902013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f0103013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65050301dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e740d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265f902013845636473615369676e617475726500012473746174656d656e7438011c5665633c75383e00026ce44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7438011c5665633c75383e00034cf441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0019015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c6964617465417474657374736020617320615c605472616e73616374696f6e457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c640103013c457468657265756d4164647265737300010c6e65770103013c457468657265756d416464726573730001386d617962655f707265636c61696d0d0201504f7074696f6e3c543a3a4163636f756e7449643e000400040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400fd0201205b75383b2036355d0000fd0200000341000000080001030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400f001205b75383b2032305d0000050304184f7074696f6e0404540109030108104e6f6e6500000010536f6d6504000903000001000009030000040c181810000d0304184f7074696f6e0404540111030108104e6f6e6500000010536f6d6504001103000001000011030c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000015030c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c731903017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465788501010c75313600011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c731903017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e81020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c731903017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696e9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636b9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696e81020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19030000029101001d030c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001540c62696404011476616c756518013c42616c616e63654f663c542c20493e000024dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0061015061796d656e743a205468652067726f757027732043616e646964617465204465706f7369742077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e14756e62696400011cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e14766f7563680c010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e00011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e000244410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e1c756e766f75636800031c29014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e10766f746508012463616e646964617465d10101504163636f756e7449644c6f6f6b75704f663c543e00011c617070726f7665200110626f6f6c0004208441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e34646566656e6465725f766f746504011c617070726f7665200110626f6f6c00051c8841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e187061796f757400062841015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e2c77616976655f7265706179040118616d6f756e7418013c42616c616e63654f663c542c20493e0007084d01526570617920746865207061796d656e742070726576696f75736c7920676976656e20746f20746865206d656d626572207769746820746865207369676e6564206f726967696e2c2072656d6f766520616e79e470656e64696e67207061796d656e74732c20616e6420656c6576617465207468656d2066726f6d2072616e6b203020746f2072616e6b20312e34666f756e645f736f636965747918011c666f756e646572d10101504163636f756e7449644c6f6f6b75704f663c543e00012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e00011472756c657338011c5665633c75383e00084448466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e0040436f6d706c65786974793a204f28312920646973736f6c7665000914b0446973736f6c76652074686520736f636965747920616e642072656d6f766520616c6c206d656d626572732e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e586a756467655f73757370656e6465645f6d656d62657208010c77686fd10101504163636f756e7449644c6f6f6b75704f663c543e00011c666f7267697665200110626f6f6c000a382901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642066726f6d2074686520466f756e6465722e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e387365745f706172616d657465727310012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e000b3061014368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f636965747920616e6420746865206d6178696d756d206e756d626572206f66206e65772063616e6469646174657368696e20612073696e676c6520696e74616b6520706572696f642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642062792074686520466f756e6465722e002c506172616d65746572733a55012d20606d61785f6d656d6265727360202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e2054686973206d757374206265206e6f206c6573739420207468616e207468652063757272656e74206e756d626572206f66206d656d626572732e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702e3870756e6973685f736b6570746963000c08550150756e6973682074686520736b65707469632077697468206120737472696b65206966207468657920646964206e6f7420766f7465206f6e20612063616e6469646174652e2043616c6c61626c65206279207468652863616e6469646174652e40636c61696d5f6d656d62657273686970000d080d015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865f87468652063616e6469646174652c20616e64206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642e44626573746f775f6d656d6265727368697004012463616e646964617465000130543a3a4163636f756e744964000e0c61015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e206f66207468655901466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e64656420616e64206f6e6c79207768656e207468652063616e646964617465206973206e6f7444636c6561726c792072656a65637465642e386b69636b5f63616e64696461746504012463616e646964617465000130543a3a4163636f756e744964000f145d0152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e55016f662074686520466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642c20616e64206f6e6c79207768656e207468657920646f206e6f745868617665206120636c65617220617070726f76616c2e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e4072657369676e5f63616e64696461637900100c510152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c79206279207468652063616e6469646174652e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e3864726f705f63616e64696461746504012463616e646964617465000130543a3a4163636f756e7449640011142d0152656d6f76652061206063616e646964617465602773206661696c6564206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c6520627920616e7919017369676e6564206f726967696e20627574206f6e6c792061742074686520656e64206f66207468652073756273657175656e7420726f756e6420616e64206f6e6c7920666f72c0612063616e6469646174652077697468206d6f72652072656a656374696f6e73207468616e20617070726f76616c732e00c854686520626964206465706f736974206973206c6f737420616e642074686520766f75636865722069732062616e6e65642e44636c65616e75705f63616e64696461637908012463616e646964617465000130543a3a4163636f756e74496400010c6d617810010c75333200120ce452656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520676976656e206063616e646964617465602e0059014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c79206166746572207468652063616e64696461746527732063616e64696461637920697320656e6465642e44636c65616e75705f6368616c6c656e676508013c6368616c6c656e67655f726f756e64100128526f756e64496e64657800010c6d617810010c75333200130c3d0152656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520646566656e64657220696e2074686520676976656e20606368616c6c656e67655f726f756e64602e0041014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c7920616674657220746865206368616c6c656e676520726f756e6420697320656e6465642e30706f6b655f6465706f73697400141c9c506f6b6520746865206465706f736974207265736572766564207768656e2062696464696e672e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206269646465722e005501546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e21030c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001283061735f7265636f766572656408011c6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000020a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e347365745f7265636f76657265640801106c6f7374d10101504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572d10101504163636f756e7449644c6f6f6b75704f663c543e0001200d01416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e3c6372656174655f7265636f766572790c011c667269656e6473e10101445665633c543a3a4163636f756e7449643e0001247468726573686f6c648501010c75313600013064656c61795f706572696f64100170426c6f636b4e756d62657246726f6d50726f76696465724f663c543e00024059014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e44696e6974696174655f7265636f7665727904011c6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e00032ce8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e38766f7563685f7265636f766572790801106c6f7374d10101504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572d10101504163636f756e7449644c6f6f6b75704f663c543e0004302501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e38636c61696d5f7265636f7665727904011c6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e000524f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e38636c6f73655f7265636f7665727904011c72657363756572d10101504163636f756e7449644c6f6f6b75704f663c543e00062c110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e3c72656d6f76655f7265636f7665727900072c590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e4063616e63656c5f7265636f766572656404011c6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e00081cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e30706f6b655f6465706f7369740401346d617962655f6163636f756e74250301704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00095c1501506f6b65206465706f7369747320666f72207265636f7665727920636f6e66696775726174696f6e7320616e64202f206f7220616374697665207265636f7665726965732e000d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d20606d617962655f6163636f756e74603a204f7074696f6e616c207265636f76657261626c65206163636f756e7420666f7220776869636820796f75206861766520616e20616374697665207265636f76657279dc616e642077616e7420746f2061646a75737420746865206465706f73697420666f722074686520616374697665207265636f766572792e005501546869732066756e6374696f6e20636865636b7320626f7468207265636f7665727920636f6e66696775726174696f6e206465706f73697420616e6420616374697665207265636f76657279206465706f73697473386f66207468652063616c6c65723a51012d204966207468652063616c6c65722068617320637265617465642061207265636f7665727920636f6e66696775726174696f6e2c20636865636b7320616e642061646a7573747320697473206465706f73697441012d204966207468652063616c6c65722068617320696e6974696174656420616e7920616374697665207265636f7665726965732c20616e642070726f766964657320746865206163636f756e7420696ec8606d617962655f6163636f756e74602c20636865636b7320616e642061646a757374732074686f7365206465706f73697473005d01496620616e79206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468652063616c6c65722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620616e79206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620616e79206465706f73697420697320757064617465642e29014d756c7469706c65206576656e7473206d617920626520656d697474656420696e206361736520626f7468207479706573206f66206465706f736974732061726520757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e250304184f7074696f6e04045401d1010108104e6f6e6500000010536f6d650400d101000001000029030c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574d10101504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574d10101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c652d0301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365d10101504163636f756e7449644c6f6f6b75704f663c543e000118746172676574d10101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c652d0301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c65080118746172676574d101018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d030c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000031030c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963350301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963350301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963350301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963350301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e350304184f7074696f6e0404540139030108104e6f6e6500000010536f6d650400390300000100003903000004081010003d030c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616cd10101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065410301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465d10101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706545030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465d10101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706545030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706545030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465788501010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572d10101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706545030130543a3a50726f787954797065000114696e6465788501010c753136000118686569676874e40144426c6f636b4e756d626572466f723c543e0001246578745f696e646578e4010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616cd10101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616cd10101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465d10101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465d10101504163636f756e7449644c6f6f6b75704f663c543e0001107265616cd10101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065410301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e410304184f7074696f6e0404540145030108104e6f6e6500000010536f6d6504004503000001000045030c606b7573616d615f72756e74696d655f636f6e7374616e74731470726f78792450726f7879547970650001280c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e670003002c43616e63656c50726f78790005001c41756374696f6e0006001c536f63696574790007003c4e6f6d696e6174696f6e506f6f6c730008003053706f6b6573706572736f6e0009004050617261526567697374726174696f6e000a000049030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573e10101445665633c543a3a4163636f756e7449643e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c648501010c7531360001446f746865725f7369676e61746f72696573e10101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e744d0301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c9101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c648501010c7531360001446f746865725f7369676e61746f72696573e10101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e744d0301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c648501010c7531360001446f746865725f7369676e61746f72696573e10101445665633c543a3a4163636f756e7449643e00012474696d65706f696e745103017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c648501010c7531360001446f746865725f7369676e61746f72696573e10101445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d0304184f7074696f6e0404540151030108104e6f6e6500000010536f6d650400510300000100005103083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000055030c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573590301305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e590300000234005d030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c08045400044900012c3870726f706f73655f626f756e747908011476616c7565f4013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964e4012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f6964e4012c426f756e7479496e64657800011c63757261746f72d10101504163636f756e7449644c6f6f6b75704f663c543e00010c666565f4013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f6964e4012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f6964e4012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f6964e4012c426f756e7479496e64657800012c62656e6566696369617279d10101504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f6964e4012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f6964e4012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964e4012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e6c617070726f76655f626f756e74795f776974685f63757261746f720c0124626f756e74795f6964e4012c426f756e7479496e64657800011c63757261746f72d10101504163636f756e7449644c6f6f6b75704f663c543e00010c666565f4013c42616c616e63654f663c542c20493e00092cd4417070726f766520626f756e74727920616e642070726f706f736520612063757261746f722073696d756c74616e656f75736c792e5501546869732063616c6c20697320612073686f727463757420746f2063616c6c696e672060617070726f76655f626f756e74796020616e64206070726f706f73655f63757261746f72602073657061726174656c792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e00902d2060626f756e74795f6964603a20426f756e747920494420746f20617070726f76652ef82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e0034232320436f6d706c65786974791c2d204f2831292e30706f6b655f6465706f736974040124626f756e74795f6964e4012c426f756e7479496e646578000a3ce4506f6b6520746865206465706f73697420726573657276656420666f72206372656174696e67206120626f756e74792070726f706f73616c2e00f4546869732063616e2062652075736564206279206163636f756e747320746f2075706461746520746865697220726573657276656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d2060626f756e74795f6964603a2054686520626f756e747920696420666f7220776869636820746f2061646a75737420746865206465706f7369742e003901496620746865206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468654c70726f706f7365722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620746865206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620746865206465706f73697420697320757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e61030c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800011476616c7565f4013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964e4012c426f756e7479496e64657800011c63757261746f72d10101504163636f756e7449644c6f6f6b75704f663c543e00010c666565f4013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964e4012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964e4012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964e4012c426f756e7479496e64657800012c62656e6566696369617279d10101504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964e4012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964e4012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964e4012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e65030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e690301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573739d040158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265a10401544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473a5040158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e690301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6903089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453016d03000c0120736f6c7574696f6e6d0301045300011473636f726599040134456c656374696f6e53636f7265000114726f756e6410010c75333200006d03085873746167696e675f6b7573616d615f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e32340000600118766f74657331710300000118766f746573327d0300000118766f74657333910300000118766f746573349d0300000118766f74657335a90300000118766f74657336b50300000118766f74657337c10300000118766f74657338cd0300000118766f74657339d9030000011c766f7465733130e5030000011c766f7465733131f1030000011c766f7465733132fd030000011c766f746573313309040000011c766f746573313415040000011c766f746573313521040000011c766f74657331362d040000011c766f746573313739040000011c766f746573313845040000011c766f746573313951040000011c766f74657332305d040000011c766f746573323169040000011c766f746573323275040000011c766f746573323381040000011c766f74657332348d040000007103000002750300750300000408e479030079030000068501007d0300000281030081030000040ce48503790300850300000408790389030089030000068d03008d030c3473705f61726974686d65746963287065725f7468696e677318506572553136000004008501010c7531360000910300000295030095030000040ce499037903009903000003020000008503009d03000002a10300a1030000040ce4a503790300a50300000303000000850300a903000002ad0300ad030000040ce4b103790300b10300000304000000850300b503000002b90300b9030000040ce4bd03790300bd0300000305000000850300c103000002c50300c5030000040ce4c903790300c90300000306000000850300cd03000002d10300d1030000040ce4d503790300d50300000307000000850300d903000002dd0300dd030000040ce4e103790300e10300000308000000850300e503000002e90300e9030000040ce4ed03790300ed0300000309000000850300f103000002f50300f5030000040ce4f903790300f9030000030a000000850300fd0300000201040001040000040ce4050479030005040000030b00000085030009040000020d04000d040000040ce4110479030011040000030c000000850300150400000219040019040000040ce41d047903001d040000030d000000850300210400000225040025040000040ce4290479030029040000030e0000008503002d0400000231040031040000040ce4350479030035040000030f00000085030039040000023d04003d040000040ce44104790300410400000310000000850300450400000249040049040000040ce44d047903004d0400000311000000850300510400000255040055040000040ce459047903005904000003120000008503005d0400000261040061040000040ce4650479030065040000031300000085030069040000026d04006d040000040ce47104790300710400000314000000850300750400000279040079040000040ce47d047903007d0400000315000000850300810400000285040085040000040ce489047903008904000003160000008503008d0400000291040091040000040ce495047903009504000003170000008503009904084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e636500009d04089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273e4010c75333200011c74617267657473e4010c7533320000a10404184f7074696f6e0404540199040108104e6f6e6500000010536f6d65040099040000010000a504000002a90400a9040000040800ad0400ad04084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273b10401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e0000b104000002b50400b50400000408001800b9040c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564d10101504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572d10101504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572d10101504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572d10101504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd040c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e74f4013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400004045015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e642069732064656c65676174656420286f72207472616e73666572726564206261736564206f6e4d015b60616461707465723a3a5374616b65537472617465677954797065605d292066726f6d20746865206d656d62657220746f2074686520706f6f6c206163636f756e7420616e6420696d6d6564696174656c7968696e637265617365732074686520706f6f6c277320626f6e642e002901546865206d6574686f64206f66207472616e7366657272696e672074686520616d6f756e7420746f2074686520706f6f6c206163636f756e742069732064657465726d696e656420627901015b60616461707465723a3a5374616b65537472617465677954797065605d2e2049662074686520706f6f6c20697320636f6e6669677572656420746f2075736531015b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2c207468652066756e64732072656d61696e20696e20746865206163636f756e74206f66310174686520606f726967696e602c207768696c652074686520706f6f6c206761696e732074686520726967687420746f207573652074686573652066756e647320666f72207374616b696e672e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f65787472610401146578747261c104015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e7473f4013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e74f4013042616c616e63654f663c543e000110726f6f74d10101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72d10101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572d10101504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e74f4013042616c616e63654f663c543e000110726f6f74d10101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72d10101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572d10101504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273e10101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e001823204e6f7465005901496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c2074686520706f6f6c2773206465706f7369746f72206e6565647320746f0d0168617665206174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c49640001147374617465c5040124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e64c9040158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e64c9040158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c73cd040134436f6e6669674f703c7533323e00012c6d61785f6d656d62657273cd040134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6ccd040134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6ed1040144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f74d5040158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f72d5040158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e636572d5040158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d44704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a55012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f746865727769736520706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ab42a205468652063616c6c65722069732074686520706f6f6c2773206e6f6d696e61746f72206f7220726f6f742e40626f6e645f65787472615f6f746865720801186d656d626572d10101504163636f756e7449644c6f6f6b75704f663c543e0001146578747261c104015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6ed904013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6edd04017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6e9c011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465e504019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400144064436c61696d2070656e64696e6720636f6d6d697373696f6e2e003d015468652060726f6f746020726f6c65206f662074686520706f6f6c206973205f616c776179735f20616c6c6f77656420746f20636c61696d2074686520706f6f6c277320636f6d6d697373696f6e2e00550149662074686520706f6f6c20686173207365742060436f6d6d697373696f6e436c61696d5065726d697373696f6e3a3a5065726d697373696f6e6c657373602c207468656e20616e79206163636f756e742063616ed874726967676572207468652070726f63657373206f6620636c61696d696e672074686520706f6f6c277320636f6d6d697373696f6e2e00410149662074686520706f6f6c2068617320736574206974732060436f6d6d697373696f6e436c61696d5065726d697373696f6e6020746f20604163636f756e742861636329602c207468656e206f6e6c79206163636f756e7473302a2060616363602c20616e64642a2074686520706f6f6c277320726f6f74206163636f756e7400b86d61792063616c6c20746869732065787472696e736963206f6e20626568616c66206f662074686520706f6f6c2e002d0150656e64696e6720636f6d6d697373696f6e73206172652070616964206f757420616e6420616464656420746f2074686520746f74616c20636c61696d656420636f6d6d697373696f6e2eb854686520746f74616c2070656e64696e6720636f6d6d697373696f6e20697320726573657420746f207a65726f2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ee90401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e001724884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005d015468652070656e64696e6720736c61736820616d6f756e74206f6620746865206d656d626572206d75737420626520657175616c206f72206d6f7265207468616e20604578697374656e7469616c4465706f736974602e5101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e2049662074686520657865637574696f6e49016973207375636365737366756c2c2066656520697320726566756e64656420616e642063616c6c6572206d6179206265207265776172646564207769746820612070617274206f662074686520736c6173680d016261736564206f6e20746865205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d20636f6e66696775726174696f6e2e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e74d10101504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c5265776172647300010000c504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e6700020000c904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000cd04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000d104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f70040454019c010c104e6f6f700000000c53657404009c0104540001001852656d6f766500020000d504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f766500020000d904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000dd0404184f7074696f6e04045401e1040108104e6f6e6500000010536f6d650400e1040000010000e104000004089c0000e504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e6372656173659c011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000e90404184f7074696f6e04045401ed040108104e6f6e6500000010536f6d650400ed040000010000ed04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e74496400010000f1040c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66590163616c6c696e67205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c7920626520666f6c6c6f776564b0627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800023494436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5040c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c65741043616c6c04045400010c3476616c696461746f725f7365740401187265706f7274f90401ac72635f636c69656e743a3a56616c696461746f725365745265706f72743c543a3a4163636f756e7449643e000000207365745f6d6f64650401106d6f6465fd0401344f7065726174696e674d6f64650001040101416c6c6f777320676f7665726e616e636520746f20666f7263652073657420746865206f7065726174696e67206d6f6465206f66207468652070616c6c65742e58666f7263655f6f6e5f6d6967726174696f6e5f656e6400020425016d616e75616c6c7920646f207768617420746869732070616c6c657420776173206d65616e7420746f20646f2061742074686520656e64206f6620746865206d6967726174696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef904087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e744856616c696461746f725365745265706f727404244163636f756e7449640100001001446e65775f76616c696461746f725f736574e10101385665633c4163636f756e7449643e000108696410010c75333200012c7072756e655f75705f746fa001504f7074696f6e3c53657373696f6e496e6465783e0001206c6566746f766572200110626f6f6c0000fd04087870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e74344f7065726174696e674d6f646500010c1c5061737369766500000020427566666572656400010018416374697665000200000105106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001b87c7365745f76616c69646174696f6e5f757067726164655f636f6f6c646f776e04010c6e6577100144426c6f636b4e756d626572466f723c543e00000490536574207468652076616c69646174696f6e207570677261646520636f6f6c646f776e2e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e00010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e487365745f636f726574696d655f636f72657304010c6e657710010c753332000610ac53657420746865206e756d626572206f6620636f726574696d6520657865637574696f6e20636f7265732e0051014e4f54453a2074686174207468697320636f6e66696775726174696f6e206973206d616e616765642062792074686520636f726574696d6520636861696e2e204f6e6c79206d616e75616c6c79206368616e6765b0746869732c20696620796f75207265616c6c79206b6e6f77207768617420796f752061726520646f696e6721707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100144426c6f636b4e756d626572466f723c543e000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f70617261735f617661696c6162696c6974795f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000904985365742074686520617661696c6162696c69747920706572696f6420666f722070617261732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e6577a0012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e6577a0012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c7533320018084d015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174146f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e487365745f7076665f766f74696e675f74746c04010c6e657710013053657373696f6e496e646578002a04510153657420746865206e756d626572206f662073657373696f6e206368616e676573206166746572207768696368206120505646207072652d636865636b696e6720766f74696e672069732072656a65637465642e907365745f6d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e002b1055015365747320746865206d696e696d756d2064656c6179206265747765656e20616e6e6f756e63696e6720746865207570677261646520626c6f636b20666f7220612070617261636861696e20756e74696c2074686554757067726164652074616b696e6720706c6163652e00390153656520746865206669656c6420646f63756d656e746174696f6e20666f7220696e666f726d6174696f6e20616e6420636f6e73747261696e747320666f7220746865206e65772076616c75652e707365745f6279706173735f636f6e73697374656e63795f636865636b04010c6e6577200110626f6f6c002c084d0153657474696e67207468697320746f20747275652077696c6c2064697361626c6520636f6e73697374656e637920636865636b7320666f722074686520636f6e66696775726174696f6e20736574746572732e4455736520776974682063617574696f6e2e607365745f6173796e635f6261636b696e675f706172616d7304010c6e6577050501484173796e634261636b696e67506172616d73002d04a053657420746865206173796e6368726f6e6f7573206261636b696e6720706172616d65746572732e4c7365745f6578656375746f725f706172616d7304010c6e6577090501384578656375746f72506172616d73002e047053657420505646206578656375746f7220706172616d65746572732e587365745f6f6e5f64656d616e645f626173655f66656504010c6e657718011c42616c616e6365002f04a453657420746865206f6e2064656d616e6420287061726174687265616473292062617365206665652e747365745f6f6e5f64656d616e645f6665655f766172696162696c69747904010c6e65779c011c50657262696c6c003004c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e707365745f6f6e5f64656d616e645f71756575655f6d61785f73697a6504010c6e657710010c753332003104bc53657420746865206f6e2064656d616e642028706172617468726561647329207175657565206d61782073697a652e987365745f6f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e04010c6e65779c011c50657262696c6c003204c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e647365745f6d696e696d756d5f6261636b696e675f766f74657304010c6e657710010c753332003404a053657420746865206d696e696d756d206261636b696e6720766f746573207468726573686f6c642e407365745f6e6f64655f66656174757265080114696e646578080108753800011476616c7565200110626f6f6c003504645365742f556e7365742061206e6f646520666561747572652e687365745f617070726f76616c5f766f74696e675f706172616d7304010c6e65771d050150417070726f76616c566f74696e67506172616d730036046c53657420617070726f76616c2d766f74696e672d706172616d732e507365745f7363686564756c65725f706172616d7304010c6e6577210501885363686564756c6572506172616d733c426c6f636b4e756d626572466f723c543e3e00370454536574207363686564756c65722d706172616d732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0505104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200000905104c706f6c6b61646f745f7072696d6974697665730876383c6578656375746f725f706172616d73384578656375746f72506172616d73000004000d0501485665633c4578656375746f72506172616d3e00000d050000021105001105104c706f6c6b61646f745f7072696d6974697665730876383c6578656375746f725f706172616d73344578656375746f72506172616d00011c384d61784d656d6f72795061676573040010010c7533320001003c537461636b4c6f676963616c4d6178040010010c75333200020038537461636b4e61746976654d6178040010010c75333200030050507265636865636b696e674d61784d656d6f7279040030010c753634000400385076665072657054696d656f757408001505012c507666507265704b696e64000030010c753634000500385076664578656354696d656f757408001905012c507666457865634b696e64000030010c753634000600445761736d45787442756c6b4d656d6f72790007000015050c4c706f6c6b61646f745f7072696d6974697665730876382c507666507265704b696e6400010820507265636865636b0000001c507265706172650001000019050c4c706f6c6b61646f745f7072696d6974697665730876382c507666457865634b696e640001081c4261636b696e6700000020417070726f76616c000100001d050c4c706f6c6b61646f745f7072696d69746976657308763850417070726f76616c566f74696e67506172616d73000004016c6d61785f617070726f76616c5f636f616c657363655f636f756e7410010c753332000021050c4c706f6c6b61646f745f7072696d6974697665730876383c5363686564756c6572506172616d73042c426c6f636b4e756d6265720110002c016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d62657200016470617261735f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d62657200015c6d61785f76616c696461746f72735f7065725f636f7265a0012c4f7074696f6e3c7533323e0001246c6f6f6b616865616410010c7533320001246e756d5f636f72657310010c7533320001646d61785f617661696c6162696c6974795f74696d656f75747310010c7533320001606f6e5f64656d616e645f71756575655f6d61785f73697a6510010c7533320001886f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e9c011c50657262696c6c0001646f6e5f64656d616e645f6665655f766172696162696c6974799c011c50657262696c6c0001486f6e5f64656d616e645f626173655f66656518011c42616c616e636500010c74746c10012c426c6f636b4e756d62657200002505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2905106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e746572040110646174613105019050617261636861696e73496e686572656e74446174613c486561646572466f723c543e3e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31050c4c706f6c6b61646f745f7072696d697469766573207673746167696e6730496e686572656e7444617461040c48445201ad01001001246269746669656c647335050190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e646964617465735105017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573950501604d756c74694469737075746553746174656d656e74536574000134706172656e745f686561646572ad01010c484452000035050000023905003905104c706f6c6b61646f745f7072696d697469766573087638187369676e65643c556e636865636b65645369676e6564081c5061796c6f6164013d052c5265616c5061796c6f6164013d05000c011c7061796c6f61643d05011c5061796c6f616400013c76616c696461746f725f696e6465784905013856616c696461746f72496e6465780001247369676e61747572654d05014856616c696461746f725369676e617475726500003d050c4c706f6c6b61646f745f7072696d69746976657308763850417661696c6162696c6974794269746669656c64000004004105017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e000041050000070845050045050c18626974766563146f72646572104c7362300000000049050c4c706f6c6b61646f745f7072696d6974697665730876383856616c696461746f72496e6465780000040010010c75333200004d05104c706f6c6b61646f745f7072696d6974697665730876383476616c696461746f725f617070245369676e61747572650000040059020148737232353531393a3a5369676e61747572650000510500000255050055050c4c706f6c6b61646f745f7072696d697469766573207673746167696e673c4261636b656443616e6469646174650404480134000c012463616e64696461746559050178436f6d6d697474656443616e6469646174655265636569707456323c483e00013876616c69646974795f766f7465738d0501605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e64696365734105017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e000059050c4c706f6c6b61646f745f7072696d697469766573207673746167696e676c436f6d6d697474656443616e64696461746552656365697074563204044801340008012864657363726970746f725d05016043616e64696461746544657363726970746f7256323c483e00012c636f6d6d69746d656e74736d05015043616e646964617465436f6d6d69746d656e747300005d050c4c706f6c6b61646f745f7072696d697469766573207673746167696e675443616e64696461746544657363726970746f72563204044801340030011c706172615f69649102011850617261496400013072656c61795f706172656e743401044800011c76657273696f6e6105013c496e7465726e616c56657273696f6e000128636f72655f696e6465788501010c75313600013473657373696f6e5f696e64657810013053657373696f6e496e646578000124726573657276656431650501205b75383b2032355d0001787065727369737465645f76616c69646174696f6e5f646174615f6861736834011048617368000120706f765f6861736834011048617368000130657261737572655f726f6f7434011048617368000124726573657276656432590201205b75383b2036345d000124706172615f686561643401104861736800015076616c69646174696f6e5f636f64655f686173686905014856616c69646174696f6e436f646548617368000061050c4c706f6c6b61646f745f7072696d697469766573207673746167696e673c496e7465726e616c56657273696f6e0000040008010875380000650500000319000000080069050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665734856616c69646174696f6e436f646548617368000004003401104861736800006d050c4c706f6c6b61646f745f7072696d6974697665730876385043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573710501385570776172644d6573736167657300014c686f72697a6f6e74616c5f6d6573736167657375050148486f72697a6f6e74616c4d6573736167657300014c6e65775f76616c69646174696f6e5f636f6465810501584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f6461746189050120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e000071050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540138045300000400a10101185665633c543e000075050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540179050453000004007d0501185665633c543e000079050860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401910200080124726563697069656e749102010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e00007d05000002790500810504184f7074696f6e0404540185050108104e6f6e6500000010536f6d6504008505000001000085050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040038011c5665633c75383e000089050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e00008d0500000291050091050c4c706f6c6b61646f745f7072696d6974697665730876384c56616c69646974794174746573746174696f6e00010820496d706c6963697404004d05014856616c696461746f725369676e6174757265000100204578706c6963697404004d05014856616c696461746f725369676e617475726500020000950500000299050099050c4c706f6c6b61646f745f7072696d6974697665730876384c4469737075746553746174656d656e7453657400000c013863616e6469646174655f686173689d05013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e7473a10501ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e00009d050860706f6c6b61646f745f636f72655f7072696d6974697665733443616e6469646174654861736800000400340110486173680000a105000002a50500a5050000040ca90549054d0500a9050c4c706f6c6b61646f745f7072696d697469766573087638404469737075746553746174656d656e740001081456616c69640400ad05016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c69640400b505016c496e76616c69644469737075746553746174656d656e744b696e6400010000ad050c4c706f6c6b61646f745f7072696d6974697665730876386456616c69644469737075746553746174656d656e744b696e64000114204578706c696369740000003c4261636b696e675365636f6e646564040034011048617368000100304261636b696e6756616c696404003401104861736800020040417070726f76616c436865636b696e6700030088417070726f76616c436865636b696e674d756c7469706c6543616e646964617465730400b10501485665633c43616e646964617465486173683e00040000b1050000029d0500b5050c4c706f6c6b61646f745f7072696d6974697665730876386c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c6963697400000000b905106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400013058666f7263655f7365745f63757272656e745f636f646508011070617261910201185061726149640001206e65775f636f64658505013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261910201185061726149640001206e65775f686561648905012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261910201185061726149640001206e65775f636f64658505013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100144426c6f636b4e756d626572466f723c543e0002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261910201185061726149640001206e65775f686561648905012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e040110706172619102011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e6c6164645f747275737465645f76616c69646174696f6e5f636f646504013c76616c69646174696f6e5f636f64658505013856616c69646174696f6e436f6465000538a041646473207468652076616c69646174696f6e20636f646520746f207468652073746f726167652e00590154686520636f64652077696c6c206e6f7420626520616464656420696620697420697320616c72656164792070726573656e742e204164646974696f6e616c6c792c20696620505646207072652d636865636b696e67e069732072756e6e696e6720666f72207468617420636f64652c2069742077696c6c20626520696e7374616e746c792061636365707465642e0051014f74686572776973652c2074686520636f64652077696c6c20626520616464656420696e746f207468652073746f726167652e204e6f746520746861742074686520636f64652077696c6c2062652061646465646101696e746f2073746f726167652077697468207265666572656e636520636f756e7420302e205468697320697320746f206163636f756e74207468652066616374207468617420746865726520617265206e6f2075736572734d01666f72207468697320636f6465207965742e205468652063616c6c65722077696c6c206861766520746f206d616b6520737572652074686174207468697320636f6465206576656e7475616c6c79206765747349017573656420627920736f6d652070617261636861696e206f722072656d6f7665642066726f6d207468652073746f7261676520746f2061766f69642073746f72616765206c65616b732e20466f722074686549016c61747465722070726566657220746f20757365207468652060706f6b655f756e757365645f76616c69646174696f6e5f636f64656020646973706174636861626c6520746f207261772073746f72616765346d616e6970756c6174696f6e2e005101546869732066756e6374696f6e206973206d61696e6c79206d65616e7420746f206265207573656420666f7220757067726164696e672070617261636861696e73207468617420646f206e6f7420666f6c6c6f77090174686520676f2d6168656164207369676e616c207768696c652074686520505646207072652d636865636b696e67206665617475726520697320656e61626c65642e6c706f6b655f756e757365645f76616c69646174696f6e5f636f646504015076616c69646174696f6e5f636f64655f686173686905014856616c69646174696f6e436f646548617368000614250152656d6f7665207468652076616c69646174696f6e20636f64652066726f6d207468652073746f726167652069666620746865207265666572656e636520636f756e7420697320302e0059015468697320697320626574746572207468616e2072656d6f76696e67207468652073746f72616765206469726563746c792c20626563617573652069742077696c6c206e6f742072656d6f76652074686520636f6465410174686174207761732073756464656e6c7920676f74207573656420627920736f6d652070617261636861696e207768696c65207468697320646973706174636861626c65207761732070656e64696e67306469737061746368696e672e6c696e636c7564655f7076665f636865636b5f73746174656d656e7408011073746d74bd050144507666436865636b53746174656d656e740001247369676e61747572654d05014856616c696461746f725369676e61747572650007085501496e636c7564657320612073746174656d656e7420666f72206120505646207072652d636865636b696e6720766f74652e20506f74656e7469616c6c792c2066696e616c697a65732074686520766f746520616e644101656e616374732074686520726573756c747320696620746861742077617320746865206c61737420766f7465206265666f726520616368696576696e67207468652073757065726d616a6f726974792e74666f7263655f7365745f6d6f73745f726563656e745f636f6e74657874080110706172619102011850617261496400011c636f6e74657874100144426c6f636b4e756d626572466f723c543e0008040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e5c72656d6f76655f757067726164655f636f6f6c646f776e0401107061726191020118506172614964000910ac52656d6f766520616e207570677261646520636f6f6c646f776e20666f7220612070617261636861696e2e00510154686520636f737420666f722072656d6f76696e672074686520636f6f6c646f776e206561726c69657220646570656e6473206f6e207468652074696d65206c65667420666f722074686520636f6f6c646f776e41016d756c7469706c696564206279205b60436f6e6669673a3a436f6f6c646f776e52656d6f76616c4d756c7469706c696572605d2e20546865207061696420746f6b656e7320617265206275726e65642e94617574686f72697a655f666f7263655f7365745f63757272656e745f636f64655f686173680c011070617261910201185061726149640001346e65775f636f64655f686173686905014856616c69646174696f6e436f64654861736800013076616c69645f706572696f64100144426c6f636b4e756d626572466f723c543e000a2c1d0153657473207468652073746f7261676520666f722074686520617574686f72697a65642063757272656e7420636f64652068617368206f66207468652070617261636861696e2e61014966206e6f74206170706c6965642c2069742077696c6c2062652072656d6f76656420617420746865206053797374656d3a3a626c6f636b5f6e756d6265722829202b2076616c69645f706572696f646020626c6f636b2e003d01546869732063616e2062652075736566756c2c207768656e2074726967676572696e67206050617261733a3a666f7263655f7365745f63757272656e745f636f646528706172612c20636f64652960250166726f6d206120646966666572656e7420636861696e207468616e20746865206f6e652077686572652074686520605061726173602070616c6c6574206973206465706c6f7965642e005501546865206d61696e20707572706f736520697320746f2061766f6964207472616e7366657272696e672074686520656e746972652060636f646560205761736d20626c6f62206265747765656e20636861696e732e3101496e73746561642c20776520617574686f72697a652060636f64655f686173686020776974682060726f6f74602c2077686963682063616e206c61746572206265206170706c6965642062791d016050617261733a3a6170706c795f617574686f72697a65645f666f7263655f7365745f63757272656e745f636f646528706172612c20636f6465296020627920616e796f6e652e00dc417574686f72697a6174696f6e73206172652073746f72656420696e20616e202a2a6f76657277726974696e67206d616e6e65722a2a2e9c6170706c795f617574686f72697a65645f666f7263655f7365745f63757272656e745f636f646508011070617261910201185061726149640001206e65775f636f64658505013856616c69646174696f6e436f6465000b08f84170706c6965732074686520616c726561647920617574686f72697a65642063757272656e7420636f646520666f72207468652070617261636861696e2cf874726967676572696e67207468652073616d652066756e6374696f6e616c6974792061732060666f7263655f7365745f63757272656e745f636f6465602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd050c4c706f6c6b61646f745f7072696d69746976657308763844507666436865636b53746174656d656e740000100118616363657074200110626f6f6c00011c7375626a6563746905014856616c69646174696f6e436f64654861736800013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c76616c696461746f725f696e6465784905013856616c696461746f72496e6465780000c105106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec505106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400012c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e749102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e6465729102011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f6964c905013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d700c0110706172619102011850617261496400012c6e756d5f696e626f756e6410010c7533320001306e756d5f6f7574626f756e6410010c75333200031c5d01546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d73207468617420612070617261206d617920686176652e49014e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f777320796f7520746f20747269676765722074686520636c65616e757094696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e0051014e756d626572206f6620696e626f756e6420616e64206f7574626f756e64206368616e6e656c7320666f7220607061726160206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e5c666f7263655f70726f636573735f68726d705f6f70656e0401206368616e6e656c7310010c753332000420a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0055014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f66206f70656e696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e60666f7263655f70726f636573735f68726d705f636c6f73650401206368616e6e656c7310010c753332000520a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0059014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f6620636c6f73696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6068726d705f63616e63656c5f6f70656e5f726571756573740801286368616e6e656c5f6964c905013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c7533320006205d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420627920656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e005d015468652063616e63656c6c6174696f6e2068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e005901546f74616c206e756d626572206f66206f70656e2072657175657374732028692e652e206048726d704f70656e4368616e6e656c52657175657374734c6973746029206d7573742062652070726f7669646564206173347769746e65737320646174612e5c666f7263655f6f70656e5f68726d705f6368616e6e656c10011873656e64657291020118506172614964000124726563697069656e74910201185061726149640001306d61785f636170616369747910010c7533320001406d61785f6d6573736167655f73697a6510010c75333200072061014f70656e2061206368616e6e656c2066726f6d2061206073656e6465726020746f20612060726563697069656e74602060506172614964602e20416c74686f756768206f70656e656420627920676f7665726e616e63652c410174686520606d61785f63617061636974796020616e6420606d61785f6d6573736167655f73697a656020617265207374696c6c207375626a65637420746f207468652052656c617920436861696e277348636f6e66696775726564206c696d6974732e004d01457870656374656420757365206973207768656e206f6e652028616e64206f6e6c79206f6e6529206f66207468652060506172614964607320696e766f6c76656420696e20746865206368616e6e656c206973c0676f7665726e6564206279207468652073797374656d2c20652e672e20612073797374656d2070617261636861696e2e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6065737461626c6973685f73797374656d5f6368616e6e656c08011873656e64657291020118506172614964000124726563697069656e7491020118506172614964000830510145737461626c69736820616e2048524d50206368616e6e656c206265747765656e2074776f2073797374656d20636861696e732e20496620746865206368616e6e656c20646f6573206e6f7420616c7265616479510165786973742c20746865207472616e73616374696f6e20666565732077696c6c20626520726566756e64656420746f207468652063616c6c65722e205468652073797374656d20646f6573206e6f742074616b6559016465706f7369747320666f72206368616e6e656c73206265747765656e2073797374656d20636861696e732c20616e64206175746f6d61746963616c6c79207365747320746865206d657373616765206e756d6265721901616e642073697a65206c696d69747320746f20746865206d6178696d756d20616c6c6f77656420627920746865206e6574776f726b277320636f6e66696775726174696f6e2e0028417267756d656e74733a00942d206073656e646572603a20412073797374656d20636861696e2c2060506172614964602ea02d2060726563697069656e74603a20412073797374656d20636861696e2c2060506172614964602e005501416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2c20627574205f626f74685f20696e70757473204d5553542062652073797374656d20636861696e732e204966c0746865206368616e6e656c20646f6573206e6f74206578697374207965742c207468657265206973206e6f206665652e54706f6b655f6368616e6e656c5f6465706f7369747308011873656e64657291020118506172614964000124726563697069656e7491020118506172614964000924510155706461746520746865206465706f736974732068656c6420666f7220616e2048524d50206368616e6e656c20746f20746865206c61746573742060436f6e66696775726174696f6e602e204368616e6e656c73b0776974682073797374656d20636861696e7320646f206e6f7420726571756972652061206465706f7369742e0028417267756d656e74733a00782d206073656e646572603a204120636861696e2c2060506172614964602e842d2060726563697069656e74603a204120636861696e2c2060506172614964602e00a4416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2e7465737461626c6973685f6368616e6e656c5f776974685f73797374656d04014c7461726765745f73797374656d5f636861696e91020118506172614964000a1c390145737461626c6973682061206269646972656374696f6e616c2048524d50206368616e6e656c206265747765656e20612070617261636861696e20616e6420612073797374656d20636861696e2e0028417267756d656e74733a00c82d20607461726765745f73797374656d5f636861696e603a20412073797374656d20636861696e2c2060506172614964602e00b0546865206f726967696e206e6565647320746f206265207468652070617261636861696e206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec9050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572910201084964000124726563697069656e749102010849640000cd05106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c65741043616c6c04045400010438666f7263655f756e667265657a65000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed105146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c65741043616c6c040454000104707265706f72745f646973707574655f6c6f73745f756e7369676e6564080134646973707574655f70726f6f66d505014c426f783c4469737075746550726f6f6656323e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f66000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed5050c4c706f6c6b61646f745f7072696d697469766573207673746167696e67304469737075746550726f6f66000010012474696d655f736c6f74d9050140446973707574657354696d65536c6f740001106b696e64dd050148446973707574654f6666656e63654b696e6400013c76616c696461746f725f696e6465784905013856616c696461746f72496e64657800013076616c696461746f725f69642d02012c56616c696461746f7249640000d905104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e6740446973707574657354696d65536c6f74000008013473657373696f6e5f696e64657810013053657373696f6e496e64657800013863616e6469646174655f686173689d05013443616e646964617465486173680000dd050c4c706f6c6b61646f745f7072696d697469766573207673746167696e6748446973707574654f6666656e63654b696e6400010c40466f72496e76616c69644261636b656400000030416761696e737456616c696400010048466f72496e76616c6964417070726f76656400020000e105106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641870616c6c65741043616c6c04045400010c5c706c6163655f6f726465725f616c6c6f775f64656174680801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f69649102011850617261496400003c9443726561746520612073696e676c65206f6e2064656d616e6420636f7265206f726465722e490157696c6c20757365207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b20616e642077696c6c207265617020746865206163636f756e74206966206e65656465642e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646058706c6163655f6f726465725f6b6565705f616c6976650801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f69649102011850617261496400013c610153616d6520617320746865205b60706c6163655f6f726465725f616c6c6f775f6465617468605d2853656c663a3a706c6163655f6f726465725f616c6c6f775f6465617468292063616c6c202c2062757420776974682061dc636865636b207468617420706c6163696e6720746865206f726465722077696c6c206e6f74207265617020746865206163636f756e742e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646060706c6163655f6f726465725f776974685f637265646974730801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f696491020118506172614964000244c843726561746520612073696e676c65206f6e2064656d616e6420636f7265206f72646572207769746820637265646974732e590157696c6c2063686172676520746865206f776e65722773206f6e2d64656d616e6420637265646974206163636f756e74207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b2e002c506172616d65746572733a45012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c206f6e2d64656d616e6420637265646974732077696c6c2062652077697468647261776e2066726f6d20746869732820206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d206e756d626572206f66206372656469747320746f207370656e642066726f6d20746865206f726967696e20746f20706c61636520616e2020206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733a5c2d2060496e73756666696369656e744372656469747360342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c6163656460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001242072656769737465720c010869649102011850617261496400013067656e657369735f6865616489050120486561644461746100013c76616c69646174696f6e5f636f64658505013856616c69646174696f6e436f6465000050f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565730901546865206163636f756e74207769746820746865206f726967696e6174696e67207369676e6174757265206d75737420726573657276652061206465706f7369742e004d01546865206465706f73697420697320726571756972656420746f20636f7665722074686520636f737473206173736f63696174656420776974682073746f72696e67207468652067656e657369732068656164746461746120616e64207468652076616c69646174696f6e20636f64652e310154686973206163636f756e747320666f722074686520706f74656e7469616c20746f2073746f72652076616c69646174696f6e20636f6465206f6620612073697a6520757020746f20746865dc606d61785f636f64655f73697a65602c20617320646566696e656420696e2074686520636f6e66696775726174696f6e2070616c6c6574001d01416e797468696e6720616c72656164792072657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e00010869649102011850617261496400013067656e657369735f6865616489050120486561644461746100013c76616c69646174696f6e5f636f64658505013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e2864657265676973746572040108696491020118506172614964000210050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e0051015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d75737420626520616e506f6e2d64656d616e642070617261636861696e2e10737761700801086964910201185061726149640001146f74686572910201185061726149640003304101537761702061206c6561736520686f6c64696e672070617261636861696e207769746820616e6f746865722070617261636861696e2c20656974686572206f6e2d64656d616e64206f72206c6561736520686f6c64696e672e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697235017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520616e206f6e2d64656d616e642070617261636861696e206f72206c6561736520686f6c64696e67150170617261636861696e292c2061756374696f6e20696e666f726d6174696f6e20616e64207468652061756374696f6e206465706f736974206172652073776974636865642e2c72656d6f76655f6c6f636b04011070617261910201185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e00dc43616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e206f72207468652070617261636861696e2e1c72657365727665000544945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e6101546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f590163726561746520616e206f6e2d64656d616e642070617261636861696e2e205573696e672074686520536c6f74732070616c6c65742c20616e206f6e2d64656d616e642070617261636861696e2063616e207468656ea4626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e0030232320417267756d656e747355012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e6577282020706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e747359015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72107573652e206164645f6c6f636b040110706172619102011850617261496400061409014164642061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c2070726576656e7420746865206d616e61676572206f662061887061726120746f2064657265676973746572206f722073776170206120706172612e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e547363686564756c655f636f64655f7570677261646508011070617261910201185061726149640001206e65775f636f64658505013856616c69646174696f6e436f646500072c745363686564756c6520612070617261636861696e20757067726164652e005501546869732077696c6c206b69636b206f6666206120636865636b206f6620606e65775f636f64656020627920616c6c2076616c696461746f72732e20416674657220746865206d616a6f72697479206f6620746865550176616c696461746f72732068617665207265706f72746564206f6e207468652076616c6964697479206f662074686520636f64652c2074686520636f64652077696c6c2065697468657220626520656e616374656455016f722074686520757067726164652077696c6c2062652072656a65637465642e2049662074686520636f64652077696c6c20626520656e61637465642c207468652063757272656e7420636f6465206f66207468655d0170617261636861696e2077696c6c206265206f7665727772697474656e206469726563746c792e2054686973206d65616e73207468617420616e7920506f562077696c6c20626520636865636b656420627920746869735d016e657720636f64652e205468652070617261636861696e20697473656c662077696c6c206e6f7420626520696e666f726d6564206578706c696369746c792074686174207468652076616c69646174696f6e20636f646530686173206368616e6765642e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e407365745f63757272656e745f6865616408011070617261910201185061726149640001206e65775f6865616489050120486561644461746100081084536574207468652070617261636861696e27732063757272656e7420686561642e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261910201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e0000104d014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746ffc68617070656e20696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e40636c6561725f616c6c5f6c6561736573040110706172619102011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e3c747269676765725f6f6e626f617264040110706172619102011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6ee40144426c6f636b4e756d626572466f723c543e0001486c656173655f706572696f645f696e646578e401404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c62696414011070617261f105011850617261496400013461756374696f6e5f696e646578e4013041756374696f6e496e64657800012866697273745f736c6f74e401404c65617365506572696f644f663c543e0001246c6173745f736c6f74e401404c65617365506572696f644f663c543e000118616d6f756e74f4013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef105000006910200f505105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012418637265617465180114696e646578f105011850617261496400010c636170f4013042616c616e63654f663c543e00013066697273745f706572696f64e401404c65617365506572696f644f663c543e00012c6c6173745f706572696f64e401404c65617365506572696f644f663c543e00010c656e64e40144426c6f636b4e756d626572466f723c543e0001207665726966696572f905014c4f7074696f6e3c4d756c74695369676e65723e0000144d014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f641872616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e646578f105011850617261496400011476616c7565f4013042616c616e63654f663c543e0001247369676e6174757265010601584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e646578f1050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e005d015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c49017468656e20746865207265746972656d656e7420666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e005501496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7434626c6f636b206e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e646578f1050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e646578f1050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e646578f105011850617261496400010c636170f4013042616c616e63654f663c543e00013066697273745f706572696f64e401404c65617365506572696f644f663c543e00012c6c6173745f706572696f64e401404c65617365506572696f644f663c543e00010c656e64e40144426c6f636b4e756d626572466f723c543e0001207665726966696572f905014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578910201185061726149640001106d656d6f38011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e6465789102011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e38636f6e747269627574655f616c6c080114696e646578f10501185061726149640001247369676e6174757265010601584f7074696f6e3c4d756c74695369676e61747572653e00080c6101436f6e7472696275746520796f757220656e746972652062616c616e636520746f20612063726f77642073616c652e20546869732077696c6c207472616e736665722074686520656e746972652062616c616e6365206f665101612075736572206f76657220746f2066756e6420612070617261636861696e20736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e206861737c656e64656420616e64207468652066756e64732061726520756e757365642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef90504184f7074696f6e04045401fd050108104e6f6e6500000010536f6d650400fd050000010000fd05082873705f72756e74696d652c4d756c74695369676e657200010c1c45643235353139040004013c656432353531393a3a5075626c69630000001c53723235353139040004013c737232353531393a3a5075626c696300010014456364736104003d02013465636473613a3a5075626c696300020000010604184f7074696f6e0404540105060108104e6f6e6500000010536f6d650400050600000100000506082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040059020148656432353531393a3a5369676e61747572650000001c53723235353139040059020148737232353531393a3a5369676e61747572650001001445636473610400fd02014065636473613a3a5369676e6174757265000200000906106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c65741043616c6c04045400011048726571756573745f636f72655f636f756e74040114636f756e748501010c7531360001185101526571756573742074686520636f6e66696775726174696f6e20746f206265207570646174656420776974682074686520737065636966696564206e756d626572206f6620636f7265732e205761726e696e673a510153696e63652074686973206f6e6c79207363686564756c6573206120636f6e66696775726174696f6e207570646174652c2069742074616b65732074776f2073657373696f6e7320746f20636f6d6520696e746f1c6566666563742e00982d20606f726967696e603a20526f6f74206f722074686520436f726574696d6520436861696e802d2060636f756e74603a20746f74616c206e756d626572206f6620636f72657348726571756573745f726576656e75655f61740401107768656e10012c426c6f636b4e756d62657200021061015265717565737420746f20636c61696d2074686520696e7374616e74616e656f757320636f726574696d652073616c657320726576656e7565207374617274696e672066726f6d2074686520626c6f636b206974207761735d016c61737420636c61696d656420756e74696c20616e6420757020746f2074686520626c6f636b207370656369666965642e2054686520636c61696d656420616d6f756e742076616c75652069732073656e74206261636b5101746f2074686520436f726574696d6520636861696e20696e206120606e6f746966795f726576656e756560206d6573736167652e204174207468652073616d652074696d652c2074686520616d6f756e742069738474656c65706f7274656420746f2074686520436f726574696d6520636861696e2e386372656469745f6163636f756e7408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0003002c61737369676e5f636f7265100110636f72658501013c42726f6b6572436f7265496e646578000114626567696e100144426c6f636b4e756d626572466f723c543e00012861737369676e6d656e740d06018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e74a001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00042459015265636569766520696e737472756374696f6e732066726f6d20746865206045787465726e616c42726f6b65724f726967696e602c2064657461696c696e6720686f77206120737065636966696320636f72652069732c746f20626520757365642e002c506172616d65746572733a21012d606f726967696e603a20546865206045787465726e616c42726f6b65724f726967696e602c20617373756d656420746f2062652074686520636f726574696d6520636861696e2eac2d60636f7265603a2054686520636f726520746861742073686f756c64206265207363686564756c65642ed82d60626567696e603a20546865207374617274696e6720626c6f636b686569676874206f662074686520696e737472756374696f6e2ed42d6061737369676e6d656e74603a20486f772074686520626c6f636b73706163652073686f756c64206265207574696c697365642e59012d60656e645f68696e74603a20416e206f7074696f6e616c2068696e7420617320746f207768656e207468697320706172746963756c617220736574206f6620696e737472756374696f6e732077696c6c20656e642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d06000002110600110600000408150619060015060c3470616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b49640002000019060c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653050617274734f663537363030000004008501010c75313600001d060c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001441073656e640801106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676521060154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f6173736574731001106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727975010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747351070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f6173736574731001106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727975010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747351070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765550701b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e3d010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6ea001484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e75010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e75010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f6173736574731401106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727975010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747351070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69748d06012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f6173736574731401106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727975010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747351070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69748d06012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f6173736574731401106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e656669636961727975010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747351070150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d69748d06012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f61737365747308011861737365747351070150426f783c56657273696f6e65644173736574733e00012c62656e656669636961727975010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c01106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00011861737365747351070150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f7479706581070144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f696485070154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f7479706581070144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f6465737421060154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69748d06012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e506164645f617574686f72697a65645f616c69617308011c616c696173657275010158426f783c56657273696f6e65644c6f636174696f6e3e00011c657870697265738907012c4f7074696f6e3c7536343e000e2c5d01417574686f72697a6520616e6f746865722060616c696173657260206c6f636174696f6e20746f20616c69617320696e746f20746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e29015468652060616c696173657260206973206f6e6c7920617574686f72697a656420756e74696c207468652070726f766964656420606578706972796020626c6f636b206e756d6265722e49015468652063616c6c2063616e20616c736f206265207573656420666f7220612070726576696f75736c7920617574686f72697a656420616c69617320696e206f7264657220746f207570646174652069747358606578706972796020626c6f636b206e756d6265722e005101557375616c6c792075736566756c20746f20616c6c6f7720796f7572206c6f63616c206163636f756e7420746f20626520616c696173656420696e746f2066726f6d20612072656d6f7465206c6f636174696f6ef4616c736f20756e64657220796f757220636f6e74726f6c20286c696b6520796f7572206163636f756e74206f6e20616e6f7468657220636861696e292e0051015741524e494e473a206d616b652073757265207468652063616c6c657220606f726967696e602028796f752920747275737473207468652060616c696173657260206c6f636174696f6e20746f2061637420696e590174686569722f796f7572206e616d652e204f6e636520617574686f72697a6564207573696e6720746869732063616c6c2c207468652060616c6961736572602063616e20667265656c7920696d706572736f6e617465d4606f726967696e6020696e2058434d2070726f6772616d73206578656375746564206f6e20746865206c6f63616c20636861696e2e5c72656d6f76655f617574686f72697a65645f616c69617304011c616c696173657275010158426f783c56657273696f6e65644c6f636174696f6e3e000f085d0152656d6f766520612070726576696f75736c7920617574686f72697a65642060616c6961736572602066726f6d20746865206c697374206f66206c6f636174696f6e7320746861742063616e20616c69617320696e746f90746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e7472656d6f76655f616c6c5f617574686f72697a65645f616c6961736573001008490152656d6f766520616c6c2070726576696f75736c7920617574686f72697a65642060616c6961736572607320746861742063616e20616c69617320696e746f20746865206c6f63616c20606f726967696e60446d616b696e6720746869732063616c6c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2106080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563304002506015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404009106015076343a3a58636d3c52756e74696d6543616c6c3e0004000856350400d906015076353a3a58636d3c52756e74696d6543616c6c3e0005000025060c0c78636d0876330c58636d041043616c6c00000400290601585665633c496e737472756374696f6e3c43616c6c3e3e000029060000022d06002d060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404003106012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404003106012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404003106012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736549060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572710601544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574733106012c4d756c746941737365747300012c62656e6566696369617279d801344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574733106012c4d756c746941737365747300011064657374d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64750601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c7906014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572e4010c7533320001406d61785f6d6573736167655f73697a65e4010c7533320001306d61785f6361706163697479e4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74e4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72e4010c75333200011873656e646572e4010c753332000124726563697069656e74e4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400dc0154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204007d0601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473810601404d756c7469417373657446696c74657200012c62656e6566696369617279d801344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473810601404d756c7469417373657446696c74657200011064657374d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e000e003445786368616e676541737365740c011067697665810601404d756c7469417373657446696c74657200011077616e743106012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473810601404d756c7469417373657446696c74657200011c72657365727665d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473810601404d756c7469417373657446696c74657200011064657374d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f000118617373657473810601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573390601284d756c746941737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204002506012458636d3c43616c6c3e0015002c536574417070656e64697804002506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574733106012c4d756c74694173736574730001187469636b6574d801344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404003106012c4d756c7469417373657473001c002c457870656374417373657404003106012c4d756c7469417373657473001d00304578706563744f726967696e0400710601544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f7204004d0601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400690601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578e4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72e4010c75333200013c6d696e5f63726174655f6d696e6f72e4010c753332002200505265706f72745472616e7361637453746174757304007d0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400e001204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bec01244e6574776f726b496400012c64657374696e6174696f6edc0154496e746572696f724d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e002600244c6f636b41737365740801146173736574390601284d756c74694173736574000120756e6c6f636b6572d801344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574390601284d756c74694173736574000118746172676574d801344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574390601284d756c746941737365740001146f776e6572d801344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574390601284d756c746941737365740001186c6f636b6572d801344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400d801344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696e710601544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00003106100c78636d087633286d756c746961737365742c4d756c7469417373657473000004003506013c5665633c4d756c746941737365743e000035060000023906003906100c78636d087633286d756c74696173736574284d756c74694173736574000008010869640101011c4173736574496400010c66756e3d06012c46756e676962696c69747900003d06100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c650400f40110753132380000002c4e6f6e46756e6769626c650400410601344173736574496e7374616e6365000100004106100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400f401107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804004506011c5b75383b20385d0003001c417272617931360400b401205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000450600000308000000080049060c0c78636d08763320526573706f6e7365000118104e756c6c0000001841737365747304003106012c4d756c74694173736574730001003c457865637574696f6e526573756c7404004d0601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040059060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400690601384d617962654572726f72436f6465000500004d0604184f7074696f6e0404540151060108104e6f6e6500000010536f6d65040051060000010000510600000408105506005506100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d69740027000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d06045300000400650601185665633c543e00005d060c0c78636d0876332850616c6c6574496e666f0000180114696e646578e4010c7533320001106e616d6561060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6561060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72e4010c7533320001146d696e6f72e4010c7533320001147061746368e4010c753332000061060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000065060000025d060069060c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204006d06018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204006d06018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000200006d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000710604184f7074696f6e04045401d80108104e6f6e6500000010536f6d650400d8000001000075060c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d0003000079060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e00007d060c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ed801344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400008106100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504003106012c4d756c74694173736574730000001057696c6404008506013857696c644d756c74694173736574000100008506100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f6608010869640101011c4173736574496400010c66756e8906013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400e4010c75333200020030416c6c4f66436f756e7465640c010869640101011c4173736574496400010c66756e8906013c57696c6446756e676962696c697479000114636f756e74e4010c753332000300008906100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100008d060c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002801185765696768740001000091060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400950601585665633c496e737472756374696f6e3c43616c6c3e3e0000950600000299060099060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404009d060118417373657473000000545265736572766541737365744465706f736974656404009d060118417373657473000100585265636569766554656c65706f72746564417373657404009d060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b1060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572c50601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574739d06011841737365747300012c62656e6566696369617279050101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d06011841737365747300011064657374050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64750601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c7906014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572e4010c7533320001406d61785f6d6573736167655f73697a65e4010c7533320001306d61785f6361706163697479e4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74e4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72e4010c75333200011873656e646572e4010c753332000124726563697069656e74e4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040009010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400c90601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473cd06012c417373657446696c74657200012c62656e6566696369617279050101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473cd06012c417373657446696c74657200011064657374050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e000e003445786368616e676541737365740c011067697665cd06012c417373657446696c74657200011077616e749d06011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473cd06012c417373657446696c74657200011c72657365727665050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473cd06012c417373657446696c74657200011064657374050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f000118617373657473cd06012c417373657446696c74657200120030427579457865637574696f6e08011066656573a506011441737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009106012458636d3c43616c6c3e0015002c536574417070656e64697804009106012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574739d0601184173736574730001187469636b6574050101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404009d060118417373657473001c002c457870656374417373657404009d060118417373657473001d00304578706563744f726967696e0400c50601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f7204004d0601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400690601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578e4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72e4010c75333200013c6d696e5f63726174655f6d696e6f72e4010c753332002200505265706f72745472616e736163745374617475730400c90601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400110101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b190101244e6574776f726b496400012c64657374696e6174696f6e09010140496e746572696f724c6f636174696f6e00010c78636d9106011c58636d3c28293e002600244c6f636b41737365740801146173736574a50601144173736574000120756e6c6f636b6572050101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574a50601144173736574000118746172676574050101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574a506011441737365740001146f776e6572050101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574a506011441737365740001186c6f636b6572050101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400050101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696ec50601404f7074696f6e3c4c6f636174696f6e3e002f00009d06102c73746167696e675f78636d0876341461737365741841737365747300000400a10601285665633c41737365743e0000a106000002a50600a506102c73746167696e675f78636d087634146173736574144173736574000008010869643901011c4173736574496400010c66756ea906012c46756e676962696c6974790000a906102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c650400f40110753132380000002c4e6f6e46756e6769626c650400ad0601344173736574496e7374616e636500010000ad06102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400f401107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804004506011c5b75383b20385d0003001c417272617931360400b401205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000b1060c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c0000001841737365747304009d0601184173736574730001003c457865637574696f6e526573756c7404004d0601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400b5060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400690601384d617962654572726f72436f646500050000b5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b906045300000400c10601185665633c543e0000b9060c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578e4010c7533320001106e616d65bd060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65bd060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72e4010c7533320001146d696e6f72e4010c7533320001147061746368e4010c7533320000bd060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c106000002b90600c50604184f7074696f6e0404540105010108104e6f6e6500000010536f6d65040005010000010000c9060c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e050101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000cd06102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e69746504009d0601184173736574730000001057696c640400d106012457696c64417373657400010000d106102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869643901011c4173736574496400010c66756ed506013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400e4010c75333200020030416c6c4f66436f756e7465640c010869643901011c4173736574496400010c66756ed506013c57696c6446756e676962696c697479000114636f756e74e4010c75333200030000d506102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000d9060c2c73746167696e675f78636d0876350c58636d041043616c6c00000400dd0601585665633c496e737472756374696f6e3c43616c6c3e3e0000dd06000002e10600e1060c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d034576974686472617741737365740400e5060118417373657473000000545265736572766541737365744465706f73697465640400e5060118417373657473000100585265636569766554656c65706f7274656441737365740400e5060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365f9060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572190701404f7074696f6e3c4c6f636174696f6e3e000300345472616e736665724173736574080118617373657473e506011841737365747300012c62656e65666963696172793d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473e5060118417373657473000110646573743d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64750601284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f7765696768741d0701384f7074696f6e3c5765696768743e00011063616c6c7906014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572e4010c7533320001406d61785f6d6573736167655f73697a65e4010c7533320001306d61785f6361706163697479e4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74e4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72e4010c75333200011873656e646572e4010c753332000124726563697069656e74e4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040041010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400210701445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574732507012c417373657446696c74657200012c62656e65666963696172793d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574732507012c417373657446696c746572000110646573743d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e000e003445786368616e676541737365740c0110676976652507012c417373657446696c74657200011077616e74e506011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574732507012c417373657446696c74657200011c726573657276653d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574732507012c417373657446696c746572000110646573743d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f210701445175657279526573706f6e7365496e666f0001186173736574732507012c417373657446696c74657200120030427579457865637574696f6e08011066656573ed06011441737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400d906012458636d3c43616c6c3e0015002c536574417070656e6469780400d906012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473e50601184173736574730001187469636b65743d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400e5060118417373657473001c002c45787065637441737365740400e5060118417373657473001d00304578706563744f726967696e0400190701404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400fd0601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400690601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f210701445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578e4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72e4010c75333200013c6d696e5f63726174655f6d696e6f72e4010c753332002200505265706f72745472616e736163745374617475730400210701445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400490101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b510101244e6574776f726b496400012c64657374696e6174696f6e41010140496e746572696f724c6f636174696f6e00010c78636dd906011c58636d3c28293e002600244c6f636b41737365740801146173736574ed0601144173736574000120756e6c6f636b65723d0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574ed06011441737365740001187461726765743d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574ed06011441737365740001146f776e65723d0101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574ed06011441737365740001186c6f636b65723d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04003d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696e190701404f7074696f6e3c4c6f636174696f6e3e002f001c506179466565730401146173736574ed060114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e3d0101204c6f636174696f6e00012c72656d6f74655f666565733107016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473390701e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636dd906011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696e410701604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636dd906012458636d3c43616c6c3e0032002053657448696e747304011468696e747345070184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e00330000e506102c73746167696e675f78636d0876351461737365741841737365747300000400e90601285665633c41737365743e0000e906000002ed0600ed06102c73746167696e675f78636d087635146173736574144173736574000008010869647101011c4173736574496400010c66756ef106012c46756e676962696c6974790000f106102c73746167696e675f78636d0876351461737365742c46756e676962696c6974790001082046756e6769626c650400f40110753132380000002c4e6f6e46756e6769626c650400f50601344173736574496e7374616e636500010000f506102c73746167696e675f78636d087635146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400f401107531323800010018417272617934040048011c5b75383b20345d0002001841727261793804004506011c5b75383b20385d0003001c417272617931360400b401205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000f9060c2c73746167696e675f78636d08763520526573706f6e7365000118104e756c6c000000184173736574730400e50601184173736574730001003c457865637574696f6e526573756c740400fd0601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040009070198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400690601384d617962654572726f72436f646500050000fd0604184f7074696f6e0404540101070108104e6f6e6500000010536f6d65040001070000010000010700000408100507000507100c78636d08763518747261697473144572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d69745265616368656404002801185765696768740025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d69740028000009070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010d07045300000400150701185665633c543e00000d070c2c73746167696e675f78636d0876352850616c6c6574496e666f0000180114696e646578e4010c7533320001106e616d6511070180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6511070180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72e4010c7533320001146d696e6f72e4010c7533320001147061746368e4010c753332000011070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000015070000020d0700190704184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100001d0704184f7074696f6e04045401280108104e6f6e6500000010536f6d65040028000001000021070c2c73746167696e675f78636d087635445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e3d0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400002507102c73746167696e675f78636d0876351461737365742c417373657446696c74657200010820446566696e6974650400e50601184173736574730000001057696c6404002907012457696c644173736574000100002907102c73746167696e675f78636d0876351461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869647101011c4173736574496400010c66756e2d07013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400e4010c75333200020030416c6c4f66436f756e7465640c010869647101011c4173736574496400010c66756e2d07013c57696c6446756e676962696c697479000114636f756e74e4010c753332000300002d07102c73746167696e675f78636d0876351461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000310704184f7074696f6e0404540135070108104e6f6e6500000010536f6d650400350700000100003507102c73746167696e675f78636d0876351461737365744c41737365745472616e7366657246696c74657200010c2054656c65706f727404002507012c417373657446696c74657200000038526573657276654465706f73697404002507012c417373657446696c7465720001003c52657365727665576974686472617704002507012c417373657446696c7465720002000039070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540135070453000004003d0701185665633c543e00003d07000002350700410704184f7074696f6e0404540141010108104e6f6e6500000010536f6d6504004101000001000045070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540149070453000004004d0701185665633c543e000049070c2c73746167696e675f78636d0876351048696e74000104304173736574436c61696d65720401206c6f636174696f6e3d0101204c6f636174696f6e000000004d070000024907005107080c78636d3c56657273696f6e656441737365747300010c08563304003106013c76333a3a4d756c746941737365747300030008563404009d06012876343a3a4173736574730004000856350400e506012876353a3a417373657473000500005507080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563304005907015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404006907015076343a3a58636d3c52756e74696d6543616c6c3e00040008563504007507015076353a3a58636d3c52756e74696d6543616c6c3e0005000059070c0c78636d0876330c58636d041043616c6c000004005d0701585665633c496e737472756374696f6e3c43616c6c3e3e00005d0700000261070061070c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404003106012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404003106012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404003106012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736549060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572710601544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574733106012c4d756c746941737365747300012c62656e6566696369617279d801344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574733106012c4d756c746941737365747300011064657374d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64750601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c6507014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572e4010c7533320001406d61785f6d6573736167655f73697a65e4010c7533320001306d61785f6361706163697479e4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74e4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72e4010c75333200011873656e646572e4010c753332000124726563697069656e74e4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400dc0154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f7204007d0601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473810601404d756c7469417373657446696c74657200012c62656e6566696369617279d801344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473810601404d756c7469417373657446696c74657200011064657374d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e000e003445786368616e676541737365740c011067697665810601404d756c7469417373657446696c74657200011077616e743106012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473810601404d756c7469417373657446696c74657200011c72657365727665d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473810601404d756c7469417373657446696c74657200011064657374d801344d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f000118617373657473810601404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573390601284d756c746941737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204005907012458636d3c43616c6c3e0015002c536574417070656e64697804005907012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574733106012c4d756c74694173736574730001187469636b6574d801344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404003106012c4d756c7469417373657473001c002c457870656374417373657404003106012c4d756c7469417373657473001d00304578706563744f726967696e0400710601544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f7204004d0601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400690601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f7d0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578e4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72e4010c75333200013c6d696e5f63726174655f6d696e6f72e4010c753332002200505265706f72745472616e7361637453746174757304007d0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400e001204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726bec01244e6574776f726b496400012c64657374696e6174696f6edc0154496e746572696f724d756c74694c6f636174696f6e00010c78636d2506011c58636d3c28293e002600244c6f636b41737365740801146173736574390601284d756c74694173736574000120756e6c6f636b6572d801344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574390601284d756c74694173736574000118746172676574d801344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574390601284d756c746941737365740001146f776e6572d801344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574390601284d756c746941737365740001186c6f636b6572d801344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400d801344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696e710601544f7074696f6e3c4d756c74694c6f636174696f6e3e002f000065070c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000069070c2c73746167696e675f78636d0876340c58636d041043616c6c000004006d0701585665633c496e737472756374696f6e3c43616c6c3e3e00006d0700000271070071070c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404009d060118417373657473000000545265736572766541737365744465706f736974656404009d060118417373657473000100585265636569766554656c65706f72746564417373657404009d060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b1060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572c50601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574739d06011841737365747300012c62656e6566696369617279050101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d06011841737365747300011064657374050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64750601284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c6507014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572e4010c7533320001406d61785f6d6573736167655f73697a65e4010c7533320001306d61785f6361706163697479e4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74e4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72e4010c75333200011873656e646572e4010c753332000124726563697069656e74e4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040009010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400c90601445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473cd06012c417373657446696c74657200012c62656e6566696369617279050101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473cd06012c417373657446696c74657200011064657374050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e000e003445786368616e676541737365740c011067697665cd06012c417373657446696c74657200011077616e749d06011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473cd06012c417373657446696c74657200011c72657365727665050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473cd06012c417373657446696c74657200011064657374050101204c6f636174696f6e00010c78636d9106011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f000118617373657473cd06012c417373657446696c74657200120030427579457865637574696f6e08011066656573a506011441737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006907012458636d3c43616c6c3e0015002c536574417070656e64697804006907012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574739d0601184173736574730001187469636b6574050101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404009d060118417373657473001c002c457870656374417373657404009d060118417373657473001d00304578706563744f726967696e0400c50601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f7204004d0601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400690601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fc90601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578e4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72e4010c75333200013c6d696e5f63726174655f6d696e6f72e4010c753332002200505265706f72745472616e736163745374617475730400c90601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400110101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b190101244e6574776f726b496400012c64657374696e6174696f6e09010140496e746572696f724c6f636174696f6e00010c78636d9106011c58636d3c28293e002600244c6f636b41737365740801146173736574a50601144173736574000120756e6c6f636b6572050101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574a50601144173736574000118746172676574050101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574a506011441737365740001146f776e6572050101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574a506011441737365740001186c6f636b6572050101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400050101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696ec50601404f7074696f6e3c4c6f636174696f6e3e002f000075070c2c73746167696e675f78636d0876350c58636d041043616c6c00000400790701585665633c496e737472756374696f6e3c43616c6c3e3e000079070000027d07007d070c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d034576974686472617741737365740400e5060118417373657473000000545265736572766541737365744465706f73697465640400e5060118417373657473000100585265636569766554656c65706f7274656441737365740400e5060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365f9060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572190701404f7074696f6e3c4c6f636174696f6e3e000300345472616e736665724173736574080118617373657473e506011841737365747300012c62656e65666963696172793d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473e5060118417373657473000110646573743d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64750601284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f7765696768741d0701384f7074696f6e3c5765696768743e00011063616c6c6507014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572e4010c7533320001406d61785f6d6573736167655f73697a65e4010c7533320001306d61785f6361706163697479e4010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74e4010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72e4010c75333200011873656e646572e4010c753332000124726563697069656e74e4010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040041010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400210701445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574732507012c417373657446696c74657200012c62656e65666963696172793d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574732507012c417373657446696c746572000110646573743d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e000e003445786368616e676541737365740c0110676976652507012c417373657446696c74657200011077616e74e506011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574732507012c417373657446696c74657200011c726573657276653d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574732507012c417373657446696c746572000110646573743d0101204c6f636174696f6e00010c78636dd906011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f210701445175657279526573706f6e7365496e666f0001186173736574732507012c417373657446696c74657200120030427579457865637574696f6e08011066656573ed06011441737365740001307765696768745f6c696d69748d06012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204007507012458636d3c43616c6c3e0015002c536574417070656e64697804007507012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473e50601184173736574730001187469636b65743d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400e5060118417373657473001c002c45787065637441737365740400e5060118417373657473001d00304578706563744f726967696e0400190701404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400fd0601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400690601384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f210701445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578e4010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72e4010c75333200013c6d696e5f63726174655f6d696e6f72e4010c753332002200505265706f72745472616e736163745374617475730400210701445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400490101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b510101244e6574776f726b496400012c64657374696e6174696f6e41010140496e746572696f724c6f636174696f6e00010c78636dd906011c58636d3c28293e002600244c6f636b41737365740801146173736574ed0601144173736574000120756e6c6f636b65723d0101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574ed06011441737365740001187461726765743d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574ed06011441737365740001146f776e65723d0101204c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574ed06011441737365740001186c6f636b65723d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04003d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69748d06012c5765696768744c696d6974000130636865636b5f6f726967696e190701404f7074696f6e3c4c6f636174696f6e3e002f001c506179466565730401146173736574ed060114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e3d0101204c6f636174696f6e00012c72656d6f74655f666565733107016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473390701e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636dd906011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696e410701604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636d7507012458636d3c43616c6c3e0032002053657448696e747304011468696e747345070184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e003300008107105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f74655265736572766504007501014456657273696f6e65644c6f636174696f6e000300008507080c78636d4056657273696f6e65644173736574496400010c08563304000101012c76333a3a4173736574496400030008563404003901012c76343a3a4173736574496400040008563504007101012c76353a3a4173736574496400050000890704184f7074696f6e04045401300108104e6f6e6500000010536f6d6504003000000100008d070c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e910701484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e910701484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e584167677265676174654d6573736167654f726967696e0001040c556d70040095070128556d70517565756549640000000095070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e28556d705175657565496400010410506172610400910201185061726149640000000099070c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e64d40144426f783c543a3a41737365744b696e643e000110726174659d0701244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e64d40144426f783c543a3a41737365744b696e643e000110726174659d07012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e64d40144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e9d070c3473705f61726974686d657469632c66697865645f706f696e742446697865645531323800000400180110753132380000a1070c3070616c6c65745f62656566791870616c6c65741043616c6c04045400011c507265706f72745f646f75626c655f766f74696e6708014865717569766f636174696f6e5f70726f6f66a507018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e747265706f72745f646f75626c655f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66a507018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e487265706f72745f666f726b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66c50701ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600030c3d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e6c7265706f72745f666f726b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66c50701ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f660004203d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e687265706f72745f6675747572655f626c6f636b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66d50701e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f6600050c5d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e8c7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66d50701e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f66b9010140543a3a4b65794f776e657250726f6f660006205d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea507084873705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d6265720110084964013902245369676e617475726501a907000801146669727374ad070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e64ad070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0000a9070c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400fd02014065636473613a3a5369676e61747572650000ad07084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d6265720110084964013902245369676e617475726501a907000c0128636f6d6d69746d656e74b1070148436f6d6d69746d656e743c4e756d6265723e00010869643902010849640001247369676e6174757265a90701245369676e61747572650000b1070c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f6164b507011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f7253657449640000b5070c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f616400000400b90701785665633c2842656566795061796c6f616449642c205665633c75383e293e0000b907000002bd0700bd0700000408c1073800c107000003020000000800c507084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201ad0108496401390234416e63657374727950726f6f6601c907000c0110766f7465ad0701b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f66c9070134416e63657374727950726f6f66000118686561646572ad0101184865616465720000c907084473705f6d6d725f7072696d69746976657334416e63657374727950726f6f66041048617368013400100128707265765f7065616b73590301245665633c486173683e00013c707265765f6c6561665f636f756e7430010c7536340001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73cd0701405665633c287536342c2048617368293e0000cd07000002d10700d10700000408303400d507084873705f636f6e73656e7375735f626565667958467574757265426c6f636b566f74696e6750726f6f6608184e756d626572011008496401390200040110766f7465ad070198566f74654d6573736167653c4e756d6265722c2049642c2049643a3a5369676e61747572653e0000d9070c4870616c6c65745f72635f6d69677261746f721870616c6c65741043616c6c0404540001383c666f7263655f7365745f73746167650401147374616765dd070160426f783c4d6967726174696f6e53746167654f663c543e3e0000106053657420746865206d6967726174696f6e2073746167652e000901546869732063616c6c20697320696e74656e64656420666f7220656d657267656e637920757365206f6e6c7920616e64206973206775617264656420627920746865605b60436f6e6669673a3a41646d696e4f726967696e605d2e487363686564756c655f6d6967726174696f6e10011473746172749902017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e00011c7761726d5f75709902017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000120636f6f6c5f6f66669902017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000180756e736166655f69676e6f72655f7374616b696e675f6c6f636b5f636865636b200110626f6f6c000154c85363686564756c6520746865206d6967726174696f6e20746f207374617274206174206120676976656e206d6f6d656e742e003c23232320506172616d65746572733a61012d20607374617274603a2054686520626c6f636b206e756d62657220617420776869636820746865206d6967726174696f6e2077696c6c2073746172742e2060446973706174636854696d65602063616c63756c61746564ac2020617420746865206d6f6d656e74206f66207468652065787472696e73696320657865637574696f6e2e61012d20607761726d5f7570603a204475726174696f6e206f722074696d65706f696e7420746861742077696c6c206265207573656420746f207072657061726520666f7220746865206d6967726174696f6e2e2043616c6c73550120206172652066696c746572656420647572696e67207468697320706572696f642e20497420697320696e74656e64656420746f206769766520656e6f7567682074696d6520666f7220554d5020616e6420444d504d01202071756575657320746f20656d7074792e2060446973706174636854696d65602063616c63756c6174656420617420746865206d6f6d656e74206f6620746865207472616e736974696f6e20746f207468654020207761726d2d75702073746167652e61012d2060636f6f6c5f6f6666603a2054686520626c6f636b206e756d6265722061742077686963682074686520706f7374206d6967726174696f6e20636f6f6c2d6f666620706572696f642077696c6c20656e642e205468654901202060446973706174636854696d65602063616c63756c6174656420617420746865206d6f6d656e74206f6620746865207472616e736974696f6e20746f2074686520636f6f6c2d6f66662073746167652e51012d2060756e736166655f69676e6f72655f7374616b696e675f6c6f636b5f636865636b603a204f4e4c5920464f522054455354494e472e2049676e6f72652074686520636865636b207768657468657220746865cc20207363686564756c65642074696d6520706f696e742069732066617220656e6f75676820696e20746865206675747572652e0031014e6f74653a20496620746865207374616b696e6720656c656374696f6e20666f72206e6578742065726120697320616c726561647920636f6d706c6574652c20616e6420746865206e6578743d0176616c696461746f72207365742069732071756575656420696e206070616c6c65742d73657373696f6e602c2077652077616e7420746f2061766f6964207374617274696e672074686520646174614d016d6967726174696f6e206174207468697320706f696e742061732069742063616e206c65616420746f20736f6d65206d69737365642076616c696461746f7220726577617264732e20546f20616464726573734101746869732c2077652073746f70207374616b696e6720656c656374696f6e20617420746865207374617274206f66206d6967726174696f6e20616e64206d75737420776169742061746c656173742031f473657373696f6e202873657420766961207761726d5f757029206265666f7265207374617274696e67207468652064617461206d6967726174696f6e2e00090152656164205b604d6967726174696f6e53746167653a3a5363686564756c6564605d20646f63756d656e746174696f6e20666f72206d6f72652064657461696c732e5073746172745f646174615f6d6967726174696f6e000210645374617274207468652064617461206d6967726174696f6e2e004d0154686973206973207479706963616c6c792063616c6c6564206279207468652041737365742048756220746f20696e64696361746520697427732072656164696e65737320746f2072656365697665207468653c6d6967726174696f6e20646174612e58726563656976655f71756572795f726573706f6e736508012071756572795f696430011c51756572794964000120726573706f6e7365f9060120526573706f6e7365000304390152656365697665206120717565727920726573706f6e73652066726f6d207468652041737365742048756220666f7220612070726576696f75736c792073656e742078636d206d6573736167652e28726573656e645f78636d04012071756572795f696430010c753634000404d4526573656e6420612070726576696f75736c792073656e7420616e6420756e636f6e6669726d65642058434d206d6573736167652e687365745f756e70726f6365737365645f6d73675f62756666657204010c6e6577a0012c4f7074696f6e3c7533323e00050ca05365742074686520756e70726f636573736564206d657373616765206275666665722073697a652e00b0604e6f6e6560206d65616e7320746f207573652074686520636f6e66696775726174696f6e2076616c75652e647365745f61685f756d705f71756575655f7072696f7269747904010c6e6577a10801944168556d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e00060cb05365742074686520414820554d50207175657565207072696f7269747920636f6e66696775726174696f6e2e00a043616e206f6e6c792062652063616c6c656420627920746865206041646d696e4f726967696e602e2c7365745f6d616e6167657204010c6e65770d0201504f7074696f6e3c543a3a4163636f756e7449643e0007106c53657420746865206d616e61676572206163636f756e742069642e004101546865206d616e6167657220686173207468652073696d696c617220746f205b60436f6e6669673a3a41646d696e4f726967696e605d2070726976696c65676573206578636570742074686174206974e863616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e4073656e645f78636d5f6d6573736167650801106465737475010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d65737361676521060154426f783c56657273696f6e656458636d3c28293e3e00080c350158434d2073656e642063616c6c206964656e746963616c20746f20746865205b6070616c6c65745f78636d3a3a50616c6c65743a3a73656e64605d2063616c6c2062757420776974682074686551015b436f6e6669673a3a53656e6458636d5d20726f757465722077686963682077696c6c2062652061626c6520746f2073656e64206d6573736167657320746f207468652041737365742048756220647572696e6738746865206d6967726174696f6e2e4470726573657276655f6163636f756e74730401206163636f756e7473e10101445665633c543a3a4163636f756e7449643e00090c150153657420746865206163636f756e747320746f20626520707265736572766564206f6e2052656c617920436861696e20647572696e6720746865206d6967726174696f6e2e00bc546865206163636f756e7473206d7573742068617665206e6f20636f6e73756d657273207265666572656e6365732e347365745f63616e63656c6c657204010c6e65770d0201504f7074696f6e3c543a3a4163636f756e7449643e000a0c74536574207468652063616e63656c6c6572206163636f756e742069642e00c05468652063616e63656c6c65722063616e206f6e6c792073746f70207363686564756c6564206d6967726174696f6e2e3c70617573655f6d6967726174696f6e000b0450506175736520746865206d6967726174696f6e2e4063616e63656c5f6d6967726174696f6e000c0c5443616e63656c20746865206d6967726174696f6e2e0051014d6967726174696f6e2063616e206f6e6c792062652063616e63656c6c656420696620697420697320696e20746865205b604d6967726174696f6e53746167653a3a5363686564756c6564605d2073746174652e54766f74655f6d616e616765725f6d756c746973696708011c7061796c6f6164a508016c426f783c4d616e616765724d756c7469736967566f74653c543e3e00010c7369670506016873705f72756e74696d653a3a4d756c74695369676e6174757265000d24e8566f7465206f6e20626568616c66206f6620616e79206f6620746865206d656d6265727320696e20604d756c74697369674d656d62657273602e00e4556e7369676e65642065787472696e7369632c20726571756972696e672074686520607061796c6f61646020746f206265207369676e65642e00590155706f6e20656163682063616c6c2c2061206e657720656e747279206973206372656174656420696e20604d616e616765724d756c74697369677360206d61702074686520607061796c6f61642e63616c6c6020746f5501626520646973706174636865642e204f6e636520604d756c74697369675468726573686f6c646020697320726561636865642c2074686520656e74697265206d61702069732064656c657465642c20616e64207765686d6f7665206f6e20746f20746865206e65787420726f756e642e002d0154686520726f756e642073797374656d20656e73757265732074686174207369676e6174757265732066726f6d206f6c64657220726f756e642063616e6e6f74206265207265757365642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd07084870616c6c65745f72635f6d69677261746f72384d6967726174696f6e537461676518244163636f756e74496401002c426c6f636b4e756d626572011034426167734c69737453636f726501302c566f74696e67436c6173730185012441737365744b696e6401d4505363686564756c6572426c6f636b4e756d62657201100145011c50656e64696e670000003c4d6967726174696f6e506175736564000100245363686564756c6564040114737461727410012c426c6f636b4e756d6265720002003057616974696e67466f724168000300185761726d5570040118656e645f617410012c426c6f636b4e756d626572000400205374617274696e67000500805075726550726f787943616e646964617465734d6967726174696f6e496e6974000600544163636f756e74734d6967726174696f6e496e6974000700604163636f756e74734d6967726174696f6e4f6e676f696e670401206c6173745f6b65790d0201444f7074696f6e3c4163636f756e7449643e000800544163636f756e74734d6967726174696f6e446f6e65000900544d756c74697369674d6967726174696f6e496e6974000a00604d756c74697369674d6967726174696f6e4f6e676f696e670401206c6173745f6b6579e10701704f7074696f6e3c284163636f756e7449642c5b75383b2033325d293e000b00544d756c74697369674d6967726174696f6e446f6e65000c004c436c61696d734d6967726174696f6e496e6974000d0058436c61696d734d6967726174696f6e4f6e676f696e6704012c63757272656e745f6b6579e90701784f7074696f6e3c436c61696d7353746167653c4163636f756e7449643e3e000e004c436c61696d734d6967726174696f6e446f6e65000f004850726f78794d6967726174696f6e496e69740010005450726f78794d6967726174696f6e50726f786965730401206c6173745f6b65790d0201444f7074696f6e3c4163636f756e7449643e0011006c50726f78794d6967726174696f6e416e6e6f756e63656d656e74730401206c6173745f6b65790d0201444f7074696f6e3c4163636f756e7449643e0012004850726f78794d6967726174696f6e446f6e6500130054507265696d6167654d6967726174696f6e496e697400140078507265696d6167654d6967726174696f6e4368756e6b734f6e676f696e670401206c6173745f6b6579f50701684f7074696f6e3c2828483235362c20753332292c20753332293e0015006c507265696d6167654d6967726174696f6e4368756e6b73446f6e6500160094507265696d6167654d6967726174696f6e526571756573745374617475734f6e676f696e670401206e6578745f6b65799d0201304f7074696f6e3c483235363e00170088507265696d6167654d6967726174696f6e52657175657374537461747573446f6e65001800a0507265696d6167654d6967726174696f6e4c656761637952657175657374537461747573496e6974001900ac507265696d6167654d6967726174696f6e4c6567616379526571756573745374617475734f6e676f696e670401206e6578745f6b65799d0201304f7074696f6e3c483235363e001a00a0507265696d6167654d6967726174696f6e4c656761637952657175657374537461747573446f6e65001b0054507265696d6167654d6967726174696f6e446f6e65001c00544e6f6d506f6f6c734d6967726174696f6e496e6974001d00604e6f6d506f6f6c734d6967726174696f6e4f6e676f696e670401206e6578745f6b6579010801804f7074696f6e3c4e6f6d506f6f6c7353746167653c4163636f756e7449643e3e001e00544e6f6d506f6f6c734d6967726174696f6e446f6e65001f005056657374696e674d6967726174696f6e496e69740020005c56657374696e674d6967726174696f6e4f6e676f696e670401206e6578745f6b65790d0201444f7074696f6e3c4163636f756e7449643e0021005056657374696e674d6967726174696f6e446f6e650022007444656c6567617465645374616b696e674d6967726174696f6e496e69740023008044656c6567617465645374616b696e674d6967726174696f6e4f6e676f696e670401206e6578745f6b6579090801a04f7074696f6e3c44656c6567617465645374616b696e6753746167653c4163636f756e7449643e3e0024007444656c6567617465645374616b696e674d6967726174696f6e446f6e6500250050496e64696365734d6967726174696f6e496e69740026005c496e64696365734d6967726174696f6e4f6e676f696e670401206e6578745f6b6579110801284f7074696f6e3c28293e00270050496e64696365734d6967726174696f6e446f6e65002800585265666572656e64614d6967726174696f6e496e6974002900645265666572656e64614d6967726174696f6e4f6e676f696e670401206c6173745f6b6579150801584f7074696f6e3c5265666572656e646153746167653e002a00585265666572656e64614d6967726174696f6e446f6e65002b0054426167734c6973744d6967726174696f6e496e6974002c0060426167734c6973744d6967726174696f6e4f6e676f696e670401206e6578745f6b65791d0801bc4f7074696f6e3c426167734c69737453746167653c4163636f756e7449642c20426167734c69737453636f72653e3e002d0054426167734c6973744d6967726174696f6e446f6e65002e00585363686564756c65724d6967726174696f6e496e6974002f00645363686564756c65724d6967726174696f6e4f6e676f696e670401206c6173745f6b6579250801dc4f7074696f6e3c7363686564756c65723a3a5363686564756c657253746167653c5363686564756c6572426c6f636b4e756d6265723e3e0030007c5363686564756c65724167656e64614d6967726174696f6e4f6e676f696e670401206c6173745f6b6579a001704f7074696f6e3c5363686564756c6572426c6f636b4e756d6265723e003100585363686564756c65724d6967726174696f6e446f6e6500320074436f6e76696374696f6e566f74696e674d6967726174696f6e496e697400330080436f6e76696374696f6e566f74696e674d6967726174696f6e4f6e676f696e670401206c6173745f6b657931080125014f7074696f6e3c636f6e76696374696f6e5f766f74696e673a3a436f6e76696374696f6e566f74696e6753746167653c4163636f756e7449642c20566f74696e67436c6173733e0a3e00340074436f6e76696374696f6e566f74696e674d6967726174696f6e446f6e6500350054426f756e746965734d6967726174696f6e496e697400360060426f756e746965734d6967726174696f6e4f6e676f696e670401206c6173745f6b65794108017c4f7074696f6e3c626f756e746965733a3a426f756e7469657353746167653e00370054426f756e746965734d6967726174696f6e446f6e65003800684368696c64426f756e746965734d6967726174696f6e496e6974003900744368696c64426f756e746965734d6967726174696f6e4f6e676f696e670401206c6173745f6b6579490801a84f7074696f6e3c6368696c645f626f756e746965733a3a4368696c64426f756e7469657353746167653e003a00684368696c64426f756e746965734d6967726174696f6e446f6e65003b00584173736574526174654d6967726174696f6e496e6974003c00644173736574526174654d6967726174696f6e4f6e676f696e670401206c6173745f6b6579510801444f7074696f6e3c41737365744b696e643e003d00584173736574526174654d6967726174696f6e446f6e65003e005843726f77646c6f616e4d6967726174696f6e496e6974003f006443726f77646c6f616e4d6967726174696f6e4f6e676f696e670401206c6173745f6b6579550801844f7074696f6e3c63726f77646c6f616e3a3a43726f77646c6f616e53746167653e0040005843726f77646c6f616e4d6967726174696f6e446f6e650041005454726561737572794d6967726174696f6e496e69740042006054726561737572794d6967726174696f6e4f6e676f696e670401206c6173745f6b65796108017c4f7074696f6e3c74726561737572793a3a547265617375727953746167653e0043005454726561737572794d6967726174696f6e446f6e65004400545265636f766572794d6967726174696f6e496e6974004500605265636f766572794d6967726174696f6e4f6e676f696e670401206c6173745f6b65796908017c4f7074696f6e3c7265636f766572793a3a5265636f7665727953746167653e004600545265636f766572794d6967726174696f6e446f6e6500470050536f63696574794d6967726174696f6e496e69740048005c536f63696574794d6967726174696f6e4f6e676f696e670401206c6173745f6b6579790801744f7074696f6e3c736f63696574793a3a536f636965747953746167653e00490050536f63696574794d6967726174696f6e446f6e65004a00505374616b696e674d6967726174696f6e496e6974004b005c5374616b696e674d6967726174696f6e4f6e676f696e670401206e6578745f6b6579890801a04f7074696f6e3c7374616b696e673a3a5374616b696e6753746167653c4163636f756e7449643e3e004c00505374616b696e674d6967726174696f6e446f6e65004d001c436f6f6c4f6666040118656e645f617410012c426c6f636b4e756d626572004e00545369676e616c4d6967726174696f6e46696e697368004f00344d6967726174696f6e446f6e6500500000e10704184f7074696f6e04045401e5070108104e6f6e6500000010536f6d650400e5070000010000e50700000408000400e90704184f7074696f6e04045401ed070108104e6f6e6500000010536f6d650400ed070000010000ed070c4870616c6c65745f72635f6d69677261746f7218636c61696d732c436c61696d73537461676504244163636f756e744964010001183453746f7261676556616c75657300000018436c61696d730400f107015c4f7074696f6e3c457468657265756d416464726573733e0001001c56657374696e670400f107015c4f7074696f6e3c457468657265756d416464726573733e0002001c5369676e696e670400f107015c4f7074696f6e3c457468657265756d416464726573733e00030024507265636c61696d7304000d0201444f7074696f6e3c4163636f756e7449643e0004002046696e697368656400050000f10704184f7074696f6e0404540101030108104e6f6e6500000010536f6d65040001030000010000f50704184f7074696f6e04045401f9070108104e6f6e6500000010536f6d650400f9070000010000f90700000408fd071000fd0700000408341000010804184f7074696f6e0404540105080108104e6f6e6500000010536f6d650400050800000100000508104870616c6c65745f72635f6d69677261746f721c7374616b696e67246e6f6d5f706f6f6c73344e6f6d506f6f6c73537461676504244163636f756e744964010001243453746f7261676556616c7565730000002c506f6f6c4d656d6265727304000d0201444f7074696f6e3c4163636f756e7449643e0001002c426f6e646564506f6f6c730400a001384f7074696f6e3c506f6f6c49643e0002002c526577617264506f6f6c730400a001384f7074696f6e3c506f6f6c49643e0003003c537562506f6f6c7353746f726167650400a001384f7074696f6e3c506f6f6c49643e000400204d657461646174610400a001384f7074696f6e3c506f6f6c49643e0005004c52657665727365506f6f6c49644c6f6f6b757004000d0201444f7074696f6e3c4163636f756e7449643e00060040436c61696d5065726d697373696f6e7304000d0201444f7074696f6e3c4163636f756e7449643e0007002046696e697368656400080000090804184f7074696f6e040454010d080108104e6f6e6500000010536f6d6504000d0800000100000d08104870616c6c65745f72635f6d69677261746f721c7374616b696e674464656c6567617465645f7374616b696e675444656c6567617465645374616b696e67537461676504244163636f756e7449640100010c2844656c656761746f727304000d0201444f7074696f6e3c4163636f756e7449643e000000184167656e747304000d0201444f7074696f6e3c4163636f756e7449643e0001002046696e697368656400020000110804184f7074696f6e04045401d5010108104e6f6e6500000010536f6d650400d5010000010000150804184f7074696f6e0404540119080108104e6f6e6500000010536f6d6504001908000001000019080c4870616c6c65745f72635f6d69677261746f72247265666572656e6461385265666572656e6461537461676500010c3453746f7261676556616c756573000000204d657461646174610400a0012c4f7074696f6e3c7533323e000100385265666572656e64756d496e666f0400a0012c4f7074696f6e3c7533323e000200001d0804184f7074696f6e0404540121080108104e6f6e6500000010536f6d650400210800000100002108104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c69737434426167734c697374537461676508244163636f756e74496401001453636f72650130010c244c6973744e6f64657304000d0201444f7074696f6e3c4163636f756e7449643e000000204c697374426167730400890701344f7074696f6e3c53636f72653e0001002046696e697368656400020000250804184f7074696f6e0404540129080108104e6f6e6500000010536f6d6504002908000001000029080c4870616c6c65745f72635f6d69677261746f72247363686564756c6572385363686564756c65725374616765042c426c6f636b4e756d626572011001103c496e636f6d706c65746553696e63650000001c526574726965730400350301804f7074696f6e3c5461736b416464726573733c426c6f636b4e756d6265723e3e000100184c6f6f6b757004002d0801404f7074696f6e3c5461736b4e616d653e0002002046696e6973686564000300002d0804184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000310804184f7074696f6e0404540135080108104e6f6e6500000010536f6d6504003508000001000035080c4870616c6c65745f72635f6d69677261746f7244636f6e76696374696f6e5f766f74696e6754436f6e76696374696f6e566f74696e67537461676508244163636f756e744964010014436c617373018501010c24566f74696e67466f720400390801684f7074696f6e3c284163636f756e7449642c20436c617373293e00000034436c6173734c6f636b73466f7204000d0201444f7074696f6e3c4163636f756e7449643e0001002046696e697368656400020000390804184f7074696f6e040454013d080108104e6f6e6500000010536f6d6504003d0800000100003d080000040800850100410804184f7074696f6e0404540145080108104e6f6e6500000010536f6d6504004508000001000045080c4870616c6c65745f72635f6d69677261746f7220626f756e7469657334426f756e7469657353746167650001142c426f756e7479436f756e740000003c426f756e7479417070726f76616c7300010048426f756e74794465736372697074696f6e730401206c6173745f6b6579a0014c4f7074696f6e3c426f756e7479496e6465783e00020020426f756e746965730401206c6173745f6b6579a0014c4f7074696f6e3c426f756e7479496e6465783e0003002046696e697368656400040000490804184f7074696f6e040454014d080108104e6f6e6500000010536f6d6504004d0800000100004d080c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e74696573484368696c64426f756e746965735374616765000120404368696c64426f756e7479436f756e740000004c506172656e744368696c64426f756e74696573040124706172656e745f6964a0014c4f7074696f6e3c426f756e7479496e6465783e00010060506172656e74546f74616c4368696c64426f756e74696573040124706172656e745f6964a0014c4f7074696f6e3c426f756e7479496e6465783e000200344368696c64426f756e7469657304010c696473350301884f7074696f6e3c28426f756e7479496e6465782c20426f756e7479496e646578293e000300644368696c64426f756e74794465736372697074696f6e73563104010c696473350301884f7074696f6e3c28426f756e7479496e6465782c20426f756e7479496e646578293e000400505630546f56314368696c64426f756e74794964730401206368696c645f6964a0014c4f7074696f6e3c426f756e7479496e6465783e0005004c4368696c6472656e43757261746f72466565730401206368696c645f6964a0014c4f7074696f6e3c426f756e7479496e6465783e0006002046696e697368656400070000510804184f7074696f6e04045401d40108104e6f6e6500000010536f6d650400d40000010000550804184f7074696f6e0404540159080108104e6f6e6500000010536f6d6504005908000001000059080c4870616c6c65745f72635f6d69677261746f722463726f77646c6f616e3843726f77646c6f616e5374616765000114145365747570000000304c65617365526573657276650401206c6173745f6b65795d0801384f7074696f6e3c5061726149643e0001005443726f77646c6f616e436f6e747269627574696f6e0401206c6173745f6b65795d0801384f7074696f6e3c5061726149643e0002004043726f77646c6f616e526573657276650003002046696e6973686564000400005d0804184f7074696f6e0404540191020108104e6f6e6500000010536f6d65040091020000010000610804184f7074696f6e0404540165080108104e6f6e6500000010536f6d6504006508000001000065080c4870616c6c65745f72635f6d69677261746f7220747265617375727934547265617375727953746167650001203450726f706f73616c436f756e740000002450726f706f73616c730400a001544f7074696f6e3c50726f706f73616c496e6465783e00010024417070726f76616c73000200285370656e64436f756e74000300185370656e64730400a001484f7074696f6e3c5370656e64496e6465783e0004003c4c6173745370656e64506572696f640005001446756e64730006002046696e697368656400070000690804184f7074696f6e040454016d080108104e6f6e6500000010536f6d6504006d0800000100006d080c4870616c6c65745f72635f6d69677261746f72207265636f76657279345265636f7665727953746167650001102c5265636f76657261626c6504000d02014c4f7074696f6e3c4163636f756e74496433323e000000404163746976655265636f7665726965730400710801884f7074696f6e3c284163636f756e74496433322c204163636f756e7449643332293e0001001450726f787904000d02014c4f7074696f6e3c4163636f756e74496433323e0002002046696e697368656400030000710804184f7074696f6e0404540175080108104e6f6e6500000010536f6d65040075080000010000750800000408000000790804184f7074696f6e040454017d080108104e6f6e6500000010536f6d6504007d0800000100007d080c4870616c6c65745f72635f6d69677261746f721c736f636965747930536f636965747953746167650001281856616c7565730000001c4d656d6265727304000d02014c4f7074696f6e3c4163636f756e74496433323e0001001c5061796f75747304000d02014c4f7074696f6e3c4163636f756e74496433323e000200344d656d6265724279496e6465780400a0012c4f7074696f6e3c7533323e0003004053757370656e6465644d656d6265727304000d02014c4f7074696f6e3c4163636f756e74496433323e0004002843616e6469646174657304000d02014c4f7074696f6e3c4163636f756e74496433323e00050014566f7465730400710801884f7074696f6e3c284163636f756e74496433322c204163636f756e7449643332293e0006003c566f7465436c656172437572736f7204000d02014c4f7074696f6e3c4163636f756e74496433323e00070034446566656e646572566f7465730400810801684f7074696f6e3c287533322c204163636f756e7449643332293e0008002046696e697368656400090000810804184f7074696f6e0404540185080108104e6f6e6500000010536f6d65040085080000010000850800000408100000890804184f7074696f6e040454018d080108104e6f6e6500000010536f6d6504008d0800000100008d08104870616c6c65745f72635f6d69677261746f721c7374616b696e67307374616b696e675f696d706c305374616b696e67537461676504244163636f756e744964010001581856616c75657300000034496e76756c6e657261626c657300010018426f6e64656404000d0201444f7074696f6e3c4163636f756e7449643e000200184c656467657204000d0201444f7074696f6e3c4163636f756e7449643e00030014506179656504000d0201444f7074696f6e3c4163636f756e7449643e0004002856616c696461746f727304000d0201444f7074696f6e3c4163636f756e7449643e000500284e6f6d696e61746f727304000d0201444f7074696f6e3c4163636f756e7449643e000600385669727475616c5374616b65727304000d0201444f7074696f6e3c4163636f756e7449643e0007004c457261735374616b6572734f766572766965770400810801744f7074696f6e3c28457261496e6465782c204163636f756e744964293e00080040457261735374616b657273506167656404009108018c4f7074696f6e3c28457261496e6465782c204163636f756e7449642c2050616765293e00090038436c61696d6564526577617264730400810801744f7074696f6e3c28457261496e6465782c204163636f756e744964293e000a00484572617356616c696461746f7250726566730400810801744f7074696f6e3c28457261496e6465782c204163636f756e744964293e000b004c4572617356616c696461746f725265776172640400a001404f7074696f6e3c457261496e6465783e000c004045726173526577617264506f696e74730400a001404f7074696f6e3c457261496e6465783e000d003845726173546f74616c5374616b650400a001404f7074696f6e3c457261496e6465783e000e0040556e6170706c696564536c61736865730400a001404f7074696f6e3c457261496e6465783e000f0028426f6e646564457261730010004c56616c696461746f72536c617368496e4572610400810801744f7074696f6e3c28457261496e6465782c204163636f756e744964293e0011004c4e6f6d696e61746f72536c617368496e4572610400810801744f7074696f6e3c28457261496e6465782c204163636f756e744964293e00120034536c617368696e675370616e7304000d0201444f7074696f6e3c4163636f756e7449643e001300245370616e536c6173680400990801784f7074696f6e3c284163636f756e7449642c205370616e496e646578293e0014002046696e697368656400150000910804184f7074696f6e0404540195080108104e6f6e6500000010536f6d6504009508000001000095080000040c10001000990804184f7074696f6e040454019d080108104e6f6e6500000010536f6d6504009d0800000100009d0800000408001000a1080c4870616c6c65745f72635f6d69677261746f721474797065733451756575655072696f72697479042c426c6f636b4e756d6265720110010c18436f6e666967000000384f76657272696465436f6e666967080010012c426c6f636b4e756d626572000010012c426c6f636b4e756d6265720001002044697361626c656400020000a5080c4870616c6c65745f72635f6d69677261746f721870616c6c65744c4d616e616765724d756c7469736967566f746504045400000c010c77686ffd05015c73705f72756e74696d653a3a4d756c74695369676e657200011063616c6c910101683c5420617320436f6e6669673e3a3a52756e74696d6543616c6c000114726f756e6410010c7533320000a9080c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000ad080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b1080c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f7465730000b5080c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144576656e740804540004490001142c4d656d626572416464656404010c77686f000130543a3a4163636f756e7449640000047841206d656d626572206077686f6020686173206265656e2061646465642e2c52616e6b4368616e67656408010c77686f000130543a3a4163636f756e74496400011072616e6b8501011052616e6b000104f4546865206d656d626572206077686f6073652072616e6b20686173206265656e206368616e67656420746f2074686520676976656e206072616e6b602e344d656d62657252656d6f76656408010c77686f000130543a3a4163636f756e74496400011072616e6b8501011052616e6b0002041901546865206d656d626572206077686f60206f6620676976656e206072616e6b6020686173206265656e2072656d6f7665642066726f6d2074686520636f6c6c6563746976652e14566f74656410010c77686f000130543a3a4163636f756e744964000110706f6c6c100144506f6c6c496e6465784f663c542c20493e000110766f7465b9080128566f74655265636f726400011474616c6c79bd08013454616c6c794f663c542c20493e0003085501546865206d656d626572206077686f602068617320766f74656420666f72207468652060706f6c6c6020776974682074686520676976656e2060766f746560206c656164696e6720746f20616e2075706461746564206074616c6c79602e3c4d656d62657245786368616e67656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000404f0546865206d656d626572206077686f602068616420746865697220604163636f756e74496460206368616e67656420746f20606e65775f77686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b908086070616c6c65745f72616e6b65645f636f6c6c65637469766528566f74655265636f72640001080c4179650400100114566f7465730000000c4e61790400100114566f74657300010000bd08086070616c6c65745f72616e6b65645f636f6c6c6563746976651454616c6c790c045400044900044d00000c0124626172655f6179657310012c4d656d626572496e64657800011061796573100114566f7465730001106e617973100114566f7465730000c1080c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c8d01014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b8501013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c8d01014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79bd080120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79bd080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5080c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74c90801684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c9080418526573756c7408045401cd08044501d1080108084f6b0400cd08000000000c4572720400d1080000010000cd080c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f7765696768741d0701384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000d108082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01cd0800080124706f73745f696e666fcd080110496e666f0001146572726f7268013444697370617463684572726f720000d5080c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579d90801c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565e50801ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565e50801ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d908085873746167696e675f6b7573616d615f72756e74696d655052756e74696d65506172616d65746572734b657900010824496e666c6174696f6e0400dd0801a9013c64796e616d69635f706172616d733a3a696e666c6174696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b65790000002054726561737572790400e10801a5013c64796e616d69635f706172616d733a3a74726561737572793a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900010000dd08105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e34506172616d65746572734b6579000114304d696e496e666c6174696f6e0400b90201304d696e496e666c6174696f6e000000304d6178496e666c6174696f6e0400c50201304d6178496e666c6174696f6e00010028496465616c5374616b650400c9020128496465616c5374616b650002001c46616c6c6f66660400cd02011c46616c6c6f66660003003c55736541756374696f6e536c6f74730400d102013c55736541756374696f6e536c6f747300040000e108105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7320747265617375727934506172616d65746572734b65790001082c4275726e506f7274696f6e0400dd02012c4275726e506f7274696f6e0000003c4275726e44657374696e6174696f6e0400e902013c4275726e44657374696e6174696f6e00010000e50804184f7074696f6e04045401e9080108104e6f6e6500000010536f6d650400e9080000010000e908085873746167696e675f6b7573616d615f72756e74696d655852756e74696d65506172616d657465727356616c756500010824496e666c6174696f6e0400ed0801b1013c64796e616d69635f706172616d733a3a696e666c6174696f6e3a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c75650000002054726561737572790400f10801ad013c64796e616d69635f706172616d733a3a74726561737572793a3a506172616d6574657273206173206672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c756500010000ed08105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d7324696e666c6174696f6e3c506172616d657465727356616c7565000114304d696e496e666c6174696f6e0400c102012c5065727175696e74696c6c000000304d6178496e666c6174696f6e0400c102012c5065727175696e74696c6c00010028496465616c5374616b650400c102012c5065727175696e74696c6c0002001c46616c6c6f66660400c102012c5065727175696e74696c6c0003003c55736541756374696f6e536c6f74730400200110626f6f6c00040000f108105873746167696e675f6b7573616d615f72756e74696d653864796e616d69635f706172616d732074726561737572793c506172616d657465727356616c75650001082c4275726e506f7274696f6e0400e502011c5065726d696c6c0000003c4275726e44657374696e6174696f6e0400f10201584275726e44657374696e6174696f6e4163636f756e7400010000f508105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f616464726573730103013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f9080c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74fd0801384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd080418526573756c7408045401d501044501680108084f6b0400d501000000000c457272040068000001000001090c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001481c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e64696461746573e10101445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564200110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572244e6577506172616d73040118706172616d730509015047726f7570506172616d73466f723c542c20493e000d04cc41206e657720736574206f66205c5b706172616d735c5d20686173206265656e2073657420666f72207468652067726f75702e24556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e20456c6576617465640801186d656d626572000130543a3a4163636f756e74496400011072616e6b10011052616e6b0010049841205c5b6d656d6265725c5d20676f7420656c65766174656420746f205c5b72616e6b5c5d2e304465706f736974506f6b65640c010c77686f000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e0011047c41206465706f7369742077617320706f6b6564202f2061646a75737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740509083870616c6c65745f736f63696574792c47726f7570506172616d73041c42616c616e636501180010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418011c42616c616e6365000009090c3c70616c6c65745f7265636f766572791870616c6c6574144576656e7404045400011c3c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e640d0901384465706f7369744b696e643c543e00012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e0006046c41206465706f73697420686173206265656e20757064617465642e04304576656e747320747970652e0d09083c70616c6c65745f7265636f766572792c4465706f7369744b696e640404540111090108385265636f76657279436f6e666967000000444163746976655265636f76657279466f7204000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000100001109085873746167696e675f6b7573616d615f72756e74696d651c52756e74696d650000000015090c3870616c6c65745f76657374696e671870616c6c6574144576656e7404045400010c3856657374696e674372656174656408011c6163636f756e74000130543a3a4163636f756e7449640001387363686564756c655f696e64657810010c75333200000490412076657374696e67207363686564756c6520686173206265656e20637265617465642e3856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000108510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640002049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419090c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e000118726573756c74fd0801384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b390301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869642d0801404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652e1d090c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c74fd0801384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706545030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465788501010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706545030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465788501010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706545030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706545030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e642109012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742109083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e74730001000025090c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e745103017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e745103017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c74fd0801384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e745103017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657429090c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d090c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900013038426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e304465706f736974506f6b6564100124626f756e74795f696410012c426f756e7479496e64657800012070726f706f736572000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e000b04804120626f756e7479206465706f73697420686173206265656e20706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657431090c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435090c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d707574653909013c456c656374696f6e436f6d707574650001186f726967696e0d0201504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564200110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c59017468652073746f72656420736f6c7574696f6e20776173207375626d697474656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d707574653909013c456c656374696f6e436f6d7075746500011473636f726599040134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6d3d09016050686173653c426c6f636b4e756d626572466f723c543e3e000108746f3d09016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743909089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400003d09089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e656404004109012828626f6f6c2c20426e2900020024456d657267656e63790003000041090000040820100045090c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657449090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e7404045400015c1c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f7374617465c5040124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f7665640c011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400014072656c65617365645f62616c616e636518013042616c616e63654f663c543e0007149841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e4901416e792066756e6473207468617420617265207374696c6c2064656c6567617465642028692e652e2064616e676c696e672064656c65676174696f6e29206172652072656c656173656420616e642061726588726570726573656e746564206279206072656c65617365645f62616c616e6365602e30526f6c6573557064617465640c0110726f6f740d0201504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e6365720d0201504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f720d0201504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e74dd04017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6e9c011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f72617465e504019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6ee90401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e704d656d626572436c61696d5065726d697373696f6e557064617465640801186d656d626572000130543a3a4163636f756e7449640001287065726d697373696f6ed904013c436c61696d5065726d697373696f6e001204c84120706f6f6c206d656d626572277320636c61696d207065726d697373696f6e20686173206265656e20757064617465642e3c4d657461646174615570646174656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001304784120706f6f6c2773206d657461646174612077617320757064617465642e48506f6f6c4e6f6d696e6174696f6e4d61646508011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e74496400140859014120706f6f6c2773206e6f6d696e6174696e67206163636f756e7420286f722074686520706f6f6c277320726f6f74206163636f756e742920686173206e6f6d696e6174656420612076616c696461746f7220736574586f6e20626568616c66206f662074686520706f6f6c2e50506f6f6c4e6f6d696e61746f724368696c6c656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001504b854686520706f6f6c206973206368696c6c656420692e652e206e6f206c6f6e676572206e6f6d696e6174696e672e4c476c6f62616c506172616d73557064617465641801346d696e5f6a6f696e5f626f6e6418013042616c616e63654f663c543e00013c6d696e5f6372656174655f626f6e6418013042616c616e63654f663c543e0001246d61785f706f6f6c73a0012c4f7074696f6e3c7533323e00012c6d61785f6d656d62657273a0012c4f7074696f6e3c7533323e0001506d61785f6d656d626572735f7065725f706f6f6ca0012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e4d09013c4f7074696f6e3c50657262696c6c3e0016040101476c6f62616c20706172616d657465727320726567756c6174696e67206e6f6d696e6174696f6e20706f6f6c732068617665206265656e20757064617465642e04584576656e7473206f6620746869732070616c6c65742e4d0904184f7074696f6e040454019c0108104e6f6e6500000010536f6d6504009c000001000051090c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c74fd0801384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173f50101345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c657455090c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144576656e740404540001102444656c6567617465640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000047c46756e64732064656c65676174656420627920612064656c656761746f722e2052656c65617365640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001047846756e64732072656c656173656420746f20612064656c656761746f722e1c536c61736865640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002047c46756e647320736c61736865642066726f6d20612064656c656761746f722e484d6967726174656444656c65676174696f6e0c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304c4556e636c61696d65642064656c65676174696f6e2066756e6473206d6967726174656420746f2064656c656761746f722e047c54686520604576656e746020656e756d206f6620746869732070616c6c657459090c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c6574144576656e740404540001105056616c696461746f725365745265636569766564100108696410010c75333200015c6e65775f76616c696461746f725f7365745f636f756e7410010c75333200012c7072756e655f75705f746fa001504f7074696f6e3c53657373696f6e496e6465783e0001206c6566746f766572200110626f6f6c0000049841206e65772076616c696461746f722073657420686173206265656e2072656365697665642e5c436f756c644e6f744d65726765416e6444726f70706564000110f4576520636f756c64206e6f74206d657267652c20616e64207468657265666f72652064726f707065642061206275666665726564206d6573736167652e0055014e6f746520746861742074686973206576656e74206973206d6f726520726573656d626c696e6720616e206572726f722c206275742077652075736520616e206576656e74206265636175736520696e2074686973d070616c6c6574207765206e65656420746f206d75746174652073746f726167652075706f6e20736f6d65206661696c757265732e54536574546f6f536d616c6c416e6444726f70706564000208cc5468652076616c696461746f72207365742072656365697665642069732077617920746f6f20736d616c6c2c20617320706572905b60436f6e6669673a3a4d696e696d756d56616c696461746f7253657453697a65605d2e28556e657870656374656404005d090138556e65787065637465644b696e640003085901536f6d657468696e67206f6363757272656420746861742073686f756c64206e657665722068617070656e20756e646572206e6f726d616c206f7065726174696f6e2e204c6f6767656420617320616e206576656e7470666f72206661696c2d73616665206f62736572766162696c6974792e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d090c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c657438556e65787065637465644b696e6400011880526563656976656456616c696461746f725365745768696c655061737369766500000060556e65787065637465644d6f64655472616e736974696f6e0001005c53657373696f6e5265706f727453656e644661696c65640002005053657373696f6e5265706f727444726f70706564000300444f6666656e636553656e644661696c65640004005456616c696461746f72506f696e7444726f70706564000500006109106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e740404540001103c43616e6469646174654261636b656410006509016443616e646964617465526563656970743c543a3a486173683e0000890501204865616444617461000069090124436f7265496e64657800006d09012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410006509016443616e646964617465526563656970743c543a3a486173683e0000890501204865616444617461000069090124436f7265496e64657800006d09012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c006509016443616e646964617465526563656970743c543a3a486173683e0000890501204865616444617461000069090124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d60585570776172644d65737361676573526563656976656408011066726f6d91020118506172614964000114636f756e7410010c753332000304f8536f6d6520757077617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657465090c4c706f6c6b61646f745f7072696d697469766573207673746167696e674843616e64696461746552656365697074563204044801340008012864657363726970746f725d05016043616e64696461746544657363726970746f7256323c483e000140636f6d6d69746d656e74735f6861736834011048617368000069090c4c706f6c6b61646f745f7072696d69746976657308763824436f7265496e6465780000040010010c75333200006d090c4c706f6c6b61646f745f7072696d6974697665730876382847726f7570496e6465780000040010010c75333200007109106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740404540001284843757272656e74436f646555706461746564040091020118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e744865616455706461746564040091020118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c6564040091020118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f746564040091020118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e517565756564080091020118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f6964603c507666436865636b5374617274656408006905014856616c69646174696f6e436f646548617368000091020118506172614964000508550154686520676976656e20706172612065697468657220696e69746961746564206f72207375627363726962656420746f20612050564620636865636b20666f722074686520676976656e2076616c69646174696f6e6c636f64652e2060636f64655f68617368602060706172615f69646040507666436865636b416363657074656408006905014856616c69646174696f6e436f646548617368000091020118506172614964000608110154686520676976656e2076616c69646174696f6e20636f6465207761732061636365707465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f69646040507666436865636b52656a656374656408006905014856616c69646174696f6e436f646548617368000091020118506172614964000708110154686520676976656e2076616c69646174696f6e20636f6465207761732072656a65637465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f6964605855706772616465436f6f6c646f776e52656d6f76656404011c706172615f69649102011850617261496404c45468652070617261636861696e20666f722077686963682074686520636f6f6c646f776e20676f742072656d6f7665642e080484546865207570677261646520636f6f6c646f776e207761732072656d6f7665642e38436f6465417574686f72697a65640c011c706172615f6964910201185061726149640410506172610124636f64655f686173686905014856616c69646174696f6e436f6465486173680454417574686f72697a656420636f646520686173682e01246578706972655f6174100144426c6f636b4e756d626572466f723c543e04e4426c6f636b20617420776869636820617574686f72697a6174696f6e206578706972657320616e642077696c6c2062652072656d6f7665642e0904bc41206e657720636f6465206861736820686173206265656e20617574686f72697a656420666f72206120506172612e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747509106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e7404045400011c504f70656e4368616e6e656c52657175657374656410011873656e64657291020118506172614964000124726563697069656e749102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000004704f70656e2048524d50206368616e6e656c207265717565737465642e4c4f70656e4368616e6e656c43616e63656c656408013062795f70617261636861696e910201185061726149640001286368616e6e656c5f6964c905013448726d704368616e6e656c49640001042901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e4c4f70656e4368616e6e656c416363657074656408011873656e64657291020118506172614964000124726563697069656e74910201185061726149640002046c4f70656e2048524d50206368616e6e656c2061636365707465642e344368616e6e656c436c6f73656408013062795f70617261636861696e910201185061726149640001286368616e6e656c5f6964c905013448726d704368616e6e656c49640003045048524d50206368616e6e656c20636c6f7365642e5848726d704368616e6e656c466f7263654f70656e656410011873656e64657291020118506172614964000124726563697069656e749102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000404ac416e2048524d50206368616e6e656c20776173206f70656e65642076696120526f6f74206f726967696e2e5c48726d7053797374656d4368616e6e656c4f70656e656410011873656e64657291020118506172614964000124726563697069656e749102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000504bc416e2048524d50206368616e6e656c20776173206f70656e6564207769746820612073797374656d20636861696e2e684f70656e4368616e6e656c4465706f736974735570646174656408011873656e64657291020118506172614964000124726563697069656e7491020118506172614964000604a0416e2048524d50206368616e6e656c2773206465706f73697473207765726520757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747909106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144576656e7404045400010c4044697370757465496e6974696174656408009d05013443616e6469646174654861736800007d09013c446973707574654c6f636174696f6e000004090141206469737075746520686173206265656e20696e697469617465642e205c5b63616e64696461746520686173682c2064697370757465206c6f636174696f6e5c5d4044697370757465436f6e636c7564656408009d05013443616e6469646174654861736800008109013444697370757465526573756c74000108cc4120646973707574652068617320636f6e636c7564656420666f72206f7220616761696e737420612063616e6469646174652eb4605c5b706172612069642c2063616e64696461746520686173682c206469737075746520726573756c745c5d60185265766572740400100144426c6f636b4e756d626572466f723c543e000210fc4120646973707574652068617320636f6e636c7564656420776974682073757065726d616a6f7269747920616761696e737420612063616e6469646174652e0d01426c6f636b20617574686f72732073686f756c64206e6f206c6f6e676572206275696c64206f6e20746f70206f662074686973206865616420616e642073686f756c640101696e7374656164207265766572742074686520626c6f636b2061742074686520676976656e206865696768742e20546869732073686f756c6420626520746865fc6e756d626572206f6620746865206368696c64206f6620746865206c617374206b6e6f776e2076616c696420626c6f636b20696e2074686520636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d090c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733c446973707574654c6f636174696f6e000108144c6f63616c0000001852656d6f74650001000081090c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733444697370757465526573756c740001081456616c69640000001c496e76616c6964000100008509106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641870616c6c6574144576656e7404045400010c4c4f6e44656d616e644f72646572506c616365640c011c706172615f69649102011850617261496400012873706f745f707269636518013042616c616e63654f663c543e0001286f7264657265645f6279000130543a3a4163636f756e7449640000040d01416e206f726465722077617320706c6163656420617420736f6d652073706f7420707269636520616d6f756e74206279206f726465726572206f7264657265645f62793053706f74507269636553657404012873706f745f707269636518013042616c616e63654f663c543e000104b85468652076616c7565206f66207468652073706f7420707269636520686173206c696b656c79206368616e6765643c4163636f756e74437265646974656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00020474416e206163636f756e742077617320676976656e20637265646974732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748909105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e74040454000110285265676973746572656408011c706172615f69649102011850617261496400011c6d616e61676572000130543a3a4163636f756e7449640000003044657265676973746572656404011c706172615f69649102011850617261496400010020526573657276656408011c706172615f69649102011850617261496400010c77686f000130543a3a4163636f756e7449640002001c5377617070656408011c706172615f6964910201185061726149640001206f746865725f696491020118506172614964000300047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d09105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f640401306c656173655f706572696f641001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c656173656418011c706172615f6964910201185061726149640001186c6561736572000130543a3a4163636f756e744964000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e00010c35014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749109105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c013461756374696f6e5f696e64657810013041756374696f6e496e6465780001306c656173655f706572696f641001404c65617365506572696f644f663c543e000118656e64696e67100144426c6f636b4e756d626572466f723c543e0000084901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f73656404013461756374696f6e5f696e64657810013041756374696f6e496e646578000104b8416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e2052657365727665640c0118626964646572000130543a3a4163636f756e74496400013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e505365636f6e642069732074686520746f74616c2e28556e7265736572766564080118626964646572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c011c706172615f6964910201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0004085501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696eb87265736572766520627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e2c4269644163636570746564140118626964646572000130543a3a4163636f756e74496400011c706172615f696491020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00012866697273745f736c6f741001404c65617365506572696f644f663c543e0001246c6173745f736c6f741001404c65617365506572696f644f663c543e000504c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722e3457696e6e696e674f666673657408013461756374696f6e5f696e64657810013041756374696f6e496e646578000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e00060859015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765106d61702e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749509105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c4372656174656404011c706172615f6964910201185061726149640000048c4372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e2c436f6e74726962757465640c010c77686f000130543a3a4163636f756e74496400012866756e645f696e64657891020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00010470436f6e747269627574656420746f20612063726f77642073616c652e2057697468647265770c010c77686f000130543a3a4163636f756e74496400012866756e645f696e64657891020118506172614964000118616d6f756e7418013042616c616e63654f663c543e0002049c57697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e445061727469616c6c79526566756e64656404011c706172615f6964910201185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674b46f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e2c416c6c526566756e64656404011c706172615f6964910201185061726149640004049c416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e24446973736f6c76656404011c706172615f6964910201185061726149640005044846756e6420697320646973736f6c7665642e3c48616e646c65426964526573756c7408011c706172615f696491020118506172614964000118726573756c74fd0801384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e1845646974656404011c706172615f696491020118506172614964000704c454686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e2c4d656d6f557064617465640c010c77686f000130543a3a4163636f756e74496400011c706172615f6964910201185061726149640001106d656d6f38011c5665633c75383e0008046041206d656d6f20686173206265656e20757064617465642e3c4164646564546f4e6577526169736504011c706172615f696491020118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e6577526169736560047c54686520604576656e746020656e756d206f6620746869732070616c6c65749909106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c6574144576656e7404045400010850526576656e7565496e666f5265717565737465640401107768656e100144426c6f636b4e756d626572466f723c543e00000421015468652062726f6b657220636861696e206861732061736b656420666f7220726576656e756520696e666f726d6174696f6e20666f72206120737065636966696320626c6f636b2e30436f726541737369676e6564040110636f726569090124436f7265496e646578000104ec4120636f7265206861732072656365697665642061206e65772061737369676e6d656e742066726f6d207468652062726f6b657220636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d090c2870616c6c65745f78636d1870616c6c6574144576656e7404045400017424417474656d7074656404011c6f7574636f6d65a109015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696e3d0101204c6f636174696f6e00012c64657374696e6174696f6e3d0101204c6f636174696f6e00011c6d657373616765d906011c58636d3c28293e0001286d6573736167655f696404011c58636d4861736800010460416e2058434d206d657373616765207761732073656e742e2853656e644661696c65641001186f726967696e3d0101204c6f636174696f6e00012c64657374696e6174696f6e3d0101204c6f636174696f6e0001146572726f72a909012453656e644572726f720001286d6573736167655f696404011c58636d4861736800020478416e2058434d206d657373616765206661696c656420746f2073656e642e3c50726f6365737358636d4572726f720c01186f726967696e3d0101204c6f636174696f6e0001146572726f720507012058636d4572726f720001286d6573736167655f696404011c58636d4861736800030484416e2058434d206d657373616765206661696c656420746f2070726f636573732e48556e6578706563746564526573706f6e73650801186f726967696e3d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400040c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e7365f9060120526573706f6e73650005085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400070c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380008085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800090c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696e3d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e190701404f7074696f6e3c4c6f636174696f6e3e000a0c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696e3d0101204c6f636174696f6e00012071756572795f696430011c51756572794964000b1c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000c04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696e3d0101204c6f636174696f6e0001186173736574735107013c56657273696f6e6564417373657473000d04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6e3d0101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374e50601184173736574730001286d6573736167655f696404011c58636d48617368000e0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6e3d0101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000f08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6e3d0101204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f720507012058636d4572726f7200100859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6e7501014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c5175657279496400110859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696e3d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400121c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696e3d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f717565726965723d0101204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572190701404f7074696f6e3c4c6f636174696f6e3e00130c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6e3d0101204c6f636174696f6e000110636f7374e50601184173736574730001286d6573736167655f696404011c58636d486173680014085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6e3d0101204c6f636174696f6e000110636f7374e50601184173736574730001286d6573736167655f696404011c58636d486173680015043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6e3d0101204c6f636174696f6e000110636f7374e50601184173736574730001286d6573736167655f696404011c58636d4861736800160825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e673d0101204c6f636174696f6e00011066656573e5060118417373657473001704310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696e3d0101204c6f636174696f6e0001186173736574735107013c56657273696f6e6564417373657473001804c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00190484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e3c416c696173417574686f72697a65640c011c616c69617365723d0101204c6f636174696f6e0001187461726765743d0101204c6f636174696f6e0001186578706972798907012c4f7074696f6e3c7536343e001a085d01416e2060616c696173657260206c6f636174696f6e2077617320617574686f72697a656420627920607461726765746020746f20616c6961732069742c20617574686f72697a6174696f6e2076616c696420756e74696c58606578706972796020626c6f636b206e756d6265722e64416c696173417574686f72697a6174696f6e52656d6f76656408011c616c69617365723d0101204c6f636174696f6e0001187461726765743d0101204c6f636174696f6e001b04cc60746172676574602072656d6f76656420616c69617320617574686f72697a6174696f6e20666f722060616c6961736572602e70416c6961736573417574686f72697a6174696f6e7352656d6f7665640401187461726765743d0101204c6f636174696f6e001c04a860746172676574602072656d6f76656420616c6c20616c69617320617574686f72697a6174696f6e732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a109102c73746167696e675f78636d087635187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72a5090140496e737472756374696f6e4572726f72000100144572726f720400a5090140496e737472756374696f6e4572726f7200020000a509102c73746167696e675f78636d0876351874726169747340496e737472756374696f6e4572726f720000080114696e646578080140496e737472756374696f6e496e6465780001146572726f72050701144572726f720000a909100c78636d087633187472616974732453656e644572726f7200011c344e6f744170706c696361626c65000000245472616e73706f727400010028556e726f757461626c650002005844657374696e6174696f6e556e737570706f7274656400030054457863656564734d61784d65737361676553697a650004003c4d697373696e67417267756d656e74000500104665657300060000ad090c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e910701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72b109014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e910701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e910701484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e910701484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b10910346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000b5090c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e64d40130543a3a41737365744b696e64000110726174659d0701244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e64d40130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e64d40130543a3a41737365744b696e6400010c6f6c649d07012446697865645531323800010c6e65779d070124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b9090c4870616c6c65745f72635f6d69677261746f721870616c6c6574144576656e740404540001503c53746167655472616e736974696f6e08010c6f6c64dd07014c4d6967726174696f6e53746167654f663c543e0490546865206f6c64207374616765206265666f726520746865207472616e736974696f6e2e010c6e6577dd07014c4d6967726174696f6e53746167654f663c543e048c546865206e657720737461676520616674657220746865207472616e736974696f6e2e00048041207374616765207472616e736974696f6e20686173206f636375727265642e6041737365744875624d6967726174696f6e53746172746564000118490154686520417373657420487562204d6967726174696f6e207374617274656420616e642069732061637469766520756e74696c206041737365744875624d6967726174696f6e46696e69736865646020697320656d69747465642e00550154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a20496e697469616c697a696e672c202e2e207d6020627574206973206561736965722d01746f20756e6465727374616e642e205468652061637469766174696f6e20697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e6441737365744875624d6967726174696f6e46696e69736865640002148454686520417373657420487562204d6967726174696f6e2066696e69736865642e00590154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a204d6967726174696f6e446f6e652c202e2e207d6020627574206973206561736965722901746f20756e6465727374616e642e205468652066696e697368696e6720697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e545175657279526573706f6e7365526563656976656408012071756572795f696430010c75363404345468652071756572792049442e0120726573706f6e7365690601384d617962654572726f72436f6465043454686520726573706f6e73652e03048c4120717565727920726573706f6e736520686173206265656e2072656365697665642e4058636d526573656e64417474656d707408012071756572795f696430010c75363404345468652071756572792049442e012873656e645f6572726f72bd0901444f7074696f6e3c53656e644572726f723e0448546865206572726f72206d6573736167652e040478412058434d206d65737361676520686173206265656e20726573656e742e5c556e70726f6365737365644d736742756666657253657408010c6e657710010c7533320434546865206e65772073697a652e010c6f6c6410010c7533320434546865206f6c642073697a652e0504c454686520756e70726f636573736564206d657373616765206275666665722073697a6520686173206265656e207365742e544168556d7051756575655072696f726974795365740c012c7072696f726974697a6564200110626f6f6c0cec496e6469636174657320696620414820554d5020717565756520776173207375636365737366756c6c7920736574206173207072696f726974792e2d014966206066616c7365602c206974206d65616e7320776527726520696e2074686520726f756e642d726f62696e207068617365206f66206f7572207072696f72697479207061747465726e290128736565205b60436f6e6669673a3a4168556d7051756575655072696f726974795061747465726e605d292c207768657265206e6f2071756575652067657473207072696f726974792e012c6379636c655f626c6f636b100144426c6f636b4e756d626572466f723c543e04f043757272656e7420626c6f636b206e756d6265722077697468696e20746865207061747465726e206379636c6520283120746f20706572696f64292e01306379636c655f706572696f64100144426c6f636b4e756d626572466f723c543e04ac546f74616c206e756d626572206f6620626c6f636b7320696e20746865207061747465726e206379636c650604f0576865746865722074686520414820554d5020717565756520776173207072696f726974697a656420666f7220746865206e65787420626c6f636b2e6c4168556d7051756575655072696f72697479436f6e66696753657408010c6f6c64a10801944168556d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206f6c64207072696f72697479207061747465726e2e010c6e6577a10801944168556d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206e6577207072696f72697479207061747465726e2e0704a454686520414820554d50207175657565207072696f7269747920636f6e66696720776173207365742e604d6967726174656442616c616e63655265636f72645365740801106b657074180128543a3a42616c616e63650001206d69677261746564180128543a3a42616c616e63650008048054686520746f74616c2069737375616e636520776173207265636f726465642e5c4d6967726174656442616c616e6365436f6e73756d65640801106b657074180128543a3a42616c616e63650001206d69677261746564180128543a3a42616c616e636500090484546865205243206b6570742062616c616e63652077617320636f6e73756d65642e284d616e6167657253657408010c6f6c640d0201504f7074696f6e3c543a3a4163636f756e7449643e046c546865206f6c64206d616e61676572206163636f756e742069642e010c6e65770d0201504f7074696f6e3c543a3a4163636f756e7449643e046c546865206e6577206d616e61676572206163636f756e742069642e0a047c546865206d616e61676572206163636f756e7420696420776173207365742e1c58636d53656e741001186f726967696e3d0101204c6f636174696f6e00012c64657374696e6174696f6e3d0101204c6f636174696f6e00011c6d657373616765d906011c58636d3c28293e0001286d6573736167655f696404011c58636d48617368000b0460416e2058434d206d657373616765207761732073656e742e585374616b696e67456c656374696f6e73506175736564000c0488546865207374616b696e6720656c656374696f6e732077657265207061757365642e444163636f756e74735072657365727665640401206163636f756e7473e10101445665633c543a3a4163636f756e7449643e0490546865206163636f756e747320746861742077696c6c206265207072657365727665642e0d04d4546865206163636f756e747320746f20626520707265736572766564206f6e2052656c617920436861696e2077657265207365742e3043616e63656c6c657253657408010c6f6c640d0201504f7074696f6e3c543a3a4163636f756e7449643e0474546865206f6c642063616e63656c6c6572206163636f756e742069642e010c6e65770d0201504f7074696f6e3c543a3a4163636f756e7449643e0474546865206e65772063616e63656c6c6572206163636f756e742069642e0e04845468652063616e63656c6c6572206163636f756e7420696420776173207365742e3c4d6967726174696f6e50617573656404012c70617573655f7374616765dd07014c4d6967726174696f6e53746167654f663c543e04b054686520737461676520617420776869636820746865206d6967726174696f6e20776173207061757365642e0f0464546865206d6967726174696f6e20776173207061757365642e484d6967726174696f6e43616e63656c6c656400100470546865206d6967726174696f6e207761732063616e63656c6c65642e4c507572654163636f756e7473496e64657865640401446e756d5f707572655f6163636f756e747310010c7533320490546865206e756d626572206f6620696e64657865642070757265206163636f756e74732e11042901536f6d652070757265206163636f756e7473207765726520696e646578656420666f7220706f737369626c7920726563656976696e6720667265652060416e79602070726f786965732e644d616e616765724d756c74697369674469737061746368656404010c726573fd0801384469737061746368526573756c74001204a8546865206d616e61676572206d756c7469736967206469737061746368656420736f6d657468696e672e504d616e616765724d756c7469736967566f746564040114766f74657310010c75333200130494546865206d616e61676572206d756c7469736967207265636569766564206120766f74652e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd0904184f7074696f6e04045401a9090108104e6f6e6500000010536f6d650400a9090000010000c10908306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000c509000002390300c90908306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6ee4014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65cd090144436f773c277374617469632c207374723e0000cd09040c436f7704045401d109000400d109000000d1090000050200d50908306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000d9090c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373dd0901845065724469737061746368436c6173733c57656967687473506572436c6173733e0000dd090c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401e109000c01186e6f726d616ce10901045400012c6f7065726174696f6e616ce1090104540001246d616e6461746f7279e1090104540000e1090c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e7369631d0701384f7074696f6e3c5765696768743e0001246d61785f746f74616c1d0701384f7074696f6e3c5765696768743e00012072657365727665641d0701384f7074696f6e3c5765696768743e0000e5090c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178e90901545065724469737061746368436c6173733c7533323e0000e9090c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000ed09082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000f109082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65cd090144436f773c277374617469632c207374723e000124696d706c5f6e616d65cd090144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973f509011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000f509040c436f7704045401f909000400f909000000f909000002fd0900fd090000040845061000010a0c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574050a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401090a0453000004000d0a01185665633c543e0000090a00000408b10130000d0a000002090a00110a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400150a01185665633c543e0000150a0000020400190a04184f7074696f6e040454011d0a0108104e6f6e6500000010536f6d6504001d0a00000100001d0a0c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400210a01405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400290a015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e6461727956524604002d0a01545365636f6e6461727956524650726544696765737400030000210a0c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74b5010110536c6f740001347672665f7369676e6174757265250a01305672665369676e61747572650000250a101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f665902012056726650726f6f660000290a0c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74b5010110536c6f7400002d0a0c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74b5010110536c6f740001347672665f7369676e6174757265250a01305672665369676e61747572650000310a084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e000008010463c1010128287536342c2075363429000134616c6c6f7765645f736c6f7473c5010130416c6c6f776564536c6f74730000350a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401390a0453000004003d0a01185665633c543e0000390a000004083010003d0a000002390a00410a0c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450a0000040c00182000490a0c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401510a045300000400590a01185665633c543e0000510a0c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964450601384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73550a011c526561736f6e730000550a0c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000590a000002510a005d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401610a045300000400650a01185665633c543e0000610a0c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e7469666965720145061c42616c616e6365011800080108696445060144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000650a000002610a00690a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016d0a045300000400890a01185665633c543e00006d0a14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401710a1c42616c616e63650118000801086964710a01084964000118616d6f756e7418011c42616c616e63650000710a085873746167696e675f6b7573616d615f72756e74696d654452756e74696d65486f6c64526561736f6e0001141c5374616b696e670400750a016870616c6c65745f7374616b696e673a3a486f6c64526561736f6e0006001c53657373696f6e0400790a016870616c6c65745f73657373696f6e3a3a486f6c64526561736f6e00080020507265696d61676504007d0a016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0020004044656c6567617465645374616b696e670400810a019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e002f002458636d50616c6c65740400850a015870616c6c65745f78636d3a3a486f6c64526561736f6e00630000750a103870616c6c65745f7374616b696e671870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e6700000000790a0c3870616c6c65745f73657373696f6e1870616c6c657428486f6c64526561736f6e000104104b657973000000007d0a0c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d61676500000000810a0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c657428486f6c64526561736f6e000104445374616b696e6744656c65676174696f6e00000000850a0c2870616c6c65745f78636d1870616c6c657428486f6c64526561736f6e00010438417574686f72697a65416c69617300000000890a0000026d0a008d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401910a0453000004009d0a01185665633c543e0000910a14346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401950a1c42616c616e63650118000801086964950a01084964000118616d6f756e7418011c42616c616e63650000950a085873746167696e675f6b7573616d615f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c730400990a019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e00290000990a0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e6365000000009d0a000002910a00a10a0c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50a086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000a90a083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616cf4013042616c616e63654f663c543e000118616374697665f4013042616c616e63654f663c543e000124756e6c6f636b696e67190201f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f72657761726473ad0a0194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e0000ad0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400f50101185665633c543e0000b10a083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473b50a01b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000b50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400e10101185665633c543e0000b90a083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172748907012c4f7074696f6e3c7536343e0000bd0a082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616cf4011c42616c616e636500010c6f776ef4011c42616c616e63650001186f7468657273c10a01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000c10a000002c50a00c50a082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565f4011c42616c616e63650000c90a082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616cf4011c42616c616e636500010c6f776ef4011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000cd0a082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616cf4011c42616c616e63650001186f7468657273c10a01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000d10a083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616cd50a018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e0000d50a042042547265654d617008044b010004560110000400d90a000000d90a0000029d0800dd0a000002e10a00e10a083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273b10401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273e10101385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000e50a000004089c1800e90a0c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72f50101345665633c457261496e6465783e0000ed0a0c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e63650000f10a103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000188344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001f04f4537461736820636f756c64206e6f7420626520726561706564206173206f746865722070616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d696772617465640020040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e285265737472696374656400210859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50a0c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201f90a000801206f6666656e646572f90a01204f6666656e6465720001247265706f7274657273e10101345665633c5265706f727465723e0000f90a0000040800bd0a00fd0a00000408b43800010b000002050b00050b0000040800290200090b0000020d0b000d0b0000040810110b00110b0c2873705f7374616b696e671c6f6666656e63653c4f6666656e63655365766572697479000004009c011c50657262696c6c0000150b00000408190b3800190b0c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00001d0b0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e210b083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000250b083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573290b016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564a001244f7074696f6e3c4e3e0000290b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401c8045300000400c401185665633c543e00002d0b0c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454013502045300000400350b01185665633c543e0000350b000002350200390b083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500003d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400f50101185665633c543e0000410b083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401d430417373657442616c616e636501182c42656e65666963696172790175012c426c6f636b4e756d6265720110245061796d656e74496401300018012861737365745f6b696e64d4012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e65666963696172797501012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573450b015c5061796d656e7453746174653c5061796d656e7449643e0000450b083c70616c6c65745f7472656173757279305061796d656e745374617465040849640130010c1c50656e64696e6700000024417474656d7074656404010869643001084964000100184661696c656400020000490b08346672616d655f737570706f72742050616c6c65744964000004004506011c5b75383b20385d00004d0b0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e510b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400550b01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e6704006d0b01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000550b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573590b01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73650b015044656c65676174696f6e733c42616c616e63653e0001147072696f72690b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000590b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d0b045300000400610b01185665633c543e00005d0b00000408107d0100610b0000025d0b00650b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000690b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e636500006d0b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e75020128436f6e76696374696f6e00012c64656c65676174696f6e73650b015044656c65676174696f6e733c42616c616e63653e0001147072696f72690b017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000710b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401750b045300000400790b01185665633c543e0000750b0000040885011800790b000002750b007d0b0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810b0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640185013452756e74696d654f726967696e018102184d6f6d656e7401101043616c6c018d011c42616c616e636501181454616c6c7901b108244163636f756e74496401003c5363686564756c654164647265737301390301181c4f6e676f696e670400850b018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000850b0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640185013452756e74696d654f726967696e018102184d6f6d656e7401101043616c6c018d011c42616c616e636501181454616c6c7901b108244163636f756e74496401003c5363686564756c6541646472657373013903002c0114747261636b8501011c547261636b49640001186f726967696e8102013452756e74696d654f726967696e00012070726f706f73616c8d01011043616c6c000124656e6163746d656e7499020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974890b016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369748d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67910b01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79b108011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d990b01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000890b0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e636500008d0b04184f7074696f6e04045401890b0108104e6f6e6500000010536f6d650400890b0000010000910b04184f7074696f6e04045401950b0108104e6f6e6500000010536f6d650400950b0000010000950b0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e67a0014c4f7074696f6e3c426c6f636b4e756d6265723e0000990b04184f7074696f6e040454019d0b0108104e6f6e6500000010536f6d6504009d0b00000100009d0b0000040810390300a10b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50b045300000400a90b01185665633c543e0000a50b00000408101800a90b000002a50b00ad0b000002b10b00b10b000004088501b50b00b50b0c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501d109002401106e616d65d10901104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616cb90b0114437572766500012c6d696e5f737570706f7274b90b011443757276650000b90b0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e6774689c011c50657262696c6c000114666c6f6f729c011c50657262696c6c0001106365696c9c011c50657262696c6c000000445374657070656444656372656173696e67100114626567696e9c011c50657262696c6c00010c656e649c011c50657262696c6c000110737465709c011c50657262696c6c000118706572696f649c011c50657262696c6c000100285265636970726f63616c0c0118666163746f72bd0b01204669786564493634000120785f6f6666736574bd0b01204669786564493634000120795f6f6666736574bd0b0120466978656449363400020000bd0b0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400c10b010c6936340000c10b0000050c00c50b0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90b086070616c6c65745f72616e6b65645f636f6c6c656374697665304d656d6265725265636f7264000004011072616e6b8501011052616e6b0000cd0b0000040885010000d10b0000040885011000d50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d90b0c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c34416c72656164794d656d626572000004704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000104604163636f756e74206973206e6f742061206d656d6265722e284e6f74506f6c6c696e67000204b854686520676976656e20706f6c6c20696e64657820697320756e6b6e6f776e206f722068617320636c6f7365642e1c4f6e676f696e670003048054686520676976656e20706f6c6c206973207374696c6c206f6e676f696e672e344e6f6e6552656d61696e696e67000404ac546865726520617265206e6f2066757274686572207265636f72647320746f2062652072656d6f7665642e28436f7272757074696f6e00050468556e6578706563746564206572726f7220696e2073746174652e2852616e6b546f6f4c6f7700060494546865206d656d62657227732072616e6b20697320746f6f206c6f7720746f20766f74652e38496e76616c69645769746e6573730007049854686520696e666f726d6174696f6e2070726f766964656420697320696e636f72726563742e304e6f5065726d697373696f6e000804f8546865206f726967696e206973206e6f742073756666696369656e746c792070726976696c6567656420746f20646f20746865206f7065726174696f6e2e2853616d654d656d626572000904e0546865206e6577206d656d62657220746f2065786368616e6765206973207468652073616d6520617320746865206f6c64206d656d62657238546f6f4d616e794d656d62657273000a04cc546865206d6178206d656d62657220636f756e7420666f72207468652072616e6b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0b0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640185013452756e74696d654f726967696e018102184d6f6d656e7401101043616c6c018d011c42616c616e636501181454616c6c7901bd08244163636f756e74496401003c5363686564756c654164647265737301390301181c4f6e676f696e670400e10b018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00008d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000e10b0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640185013452756e74696d654f726967696e018102184d6f6d656e7401101043616c6c018d011c42616c616e636501181454616c6c7901bd08244163636f756e74496401003c5363686564756c6541646472657373013903002c0114747261636b8501011c547261636b49640001186f726967696e8102013452756e74696d654f726967696e00012070726f706f73616c8d01011043616c6c000124656e6163746d656e7499020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974890b016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369748d0b018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67910b01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79bd08011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d990b01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000e50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013903045300000400c50901185665633c543e0000e90b0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed0b0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10b105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50b0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef90b083870616c6c65745f736f6369657479304d656d6265725265636f7264000010011072616e6b10011052616e6b00011c737472696b657310012c537472696b65436f756e74000120766f756368696e67fd0b01584f7074696f6e3c566f756368696e675374617475733e000114696e64657810010c7533320000fd0b04184f7074696f6e04045401010c0108104e6f6e6500000010536f6d650400010c0000010000010c083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e656400010000050c083870616c6c65745f736f6369657479305061796f75745265636f7264081c42616c616e63650118285061796f75747356656301090c000801107061696418011c42616c616e636500011c7061796f757473090c01285061796f7574735665630000090c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50b045300000400a90b01185665633c543e00000d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401110c045300000400190c01185665633c543e0000110c083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e64150c016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e63650000150c083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000190c000002110c001d0c083870616c6c65745f736f63696574792443616e64696461637908244163636f756e74496401001c42616c616e6365011800140114726f756e64100128526f756e64496e6465780001106b696e64150c016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00010c62696418011c42616c616e636500011474616c6c79210c011454616c6c79000138736b65707469635f73747275636b200110626f6f6c0000210c083870616c6c65745f736f63696574791454616c6c790000080124617070726f76616c73100124566f7465436f756e7400012872656a656374696f6e73100124566f7465436f756e740000250c083870616c6c65745f736f636965747910566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c7533320000290c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00002d0c083870616c6c65745f736f636965747930496e74616b655265636f726408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e74496400010c62696418011c42616c616e6365000114726f756e64100128526f756e64496e6465780000310c0000040c0000210c00350c0c3870616c6c65745f736f63696574791870616c6c6574144572726f72080454000449000184244e6f744d656d6265720000045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000104645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400020448557365722069732073757370656e6465642e304e6f7453757370656e6465640003045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000404484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400050460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000604984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000704e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e4c4e6f74566f756368696e674f6e4269646465720008045c4d656d626572206973206e6f7420766f756368696e672e10486561640009049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000a046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000b0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000c04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000d046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000e0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572000f04785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640010046c5468652063616c6c6572206973206e6f742074686520686561642e2c4e6f74417070726f7665640011042d01546865206d656d626572736869702063616e6e6f7420626520636c61696d6564206173207468652063616e64696461746520776173206e6f7420636c6561726c7920617070726f7665642e2c4e6f7452656a656374656400120425015468652063616e6469646174652063616e6e6f74206265206b69636b6564206173207468652063616e64696461746520776173206e6f7420636c6561726c792072656a65637465642e20417070726f76656400130419015468652063616e6469646163792063616e6e6f742062652064726f70706564206173207468652063616e6469646174652077617320636c6561726c7920617070726f7665642e2052656a65637465640014041d015468652063616e6469646163792063616e6e6f7420626520626573746f776564206173207468652063616e6469646174652077617320636c6561726c792072656a65637465642e28496e50726f677265737300150415015468652063616e6469646163792063616e6e6f7420626520636f6e636c756465642061732074686520766f74696e67206973207374696c6c20696e2070726f67726573732e20546f6f4561726c7900160441015468652063616e6469646163792063616e6e6f74206265207072756e656420756e74696c20612066756c6c206164646974696f6e616c20696e74616b6520706572696f6420686173207061737365642e14566f7465640017046854686520736b657074696320616c726561647920766f7465642e1c45787069726564001804f054686520736b6570746963206e656564206e6f7420766f7465206f6e2063616e646964617465732066726f6d206578706972656420726f756e64732e244e6f744269646465720019045455736572206973206e6f742061206269646465722e284e6f446566656e646572001a047c5468657265206973206e6f20646566656e6465722063757272656e746c792e204e6f7447726f7570001b045047726f757020646f65736e27742065786973742e3c416c7265616479456c657661746564001c04b0546865206d656d62657220697320616c726561647920656c65766174656420746f20746869732072616e6b2e3c416c726561647950756e6973686564001d04dc54686520736b65707469632068617320616c7265616479206265656e2070756e697368656420666f722074686973206f6666656e63652e44496e73756666696369656e7446756e6473001e04c046756e64732061726520696e73756666696369656e7420746f20706179206f666620736f63696574792064656274732e1c4e6f566f746573001f04d05468652063616e6469646174652f646566656e64657220686173206e6f207374616c6520766f74657320746f2072656d6f76652e244e6f4465706f736974002004a85468657265206973206e6f206465706f736974206173736f63696174656420776974682061206269642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e390c083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e6473013d0c0010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e64733d0c011c467269656e64730001247468726573686f6c648501010c75313600003d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400e10101185665633c543e0000410c083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e6473013d0c000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e64733d0c011c467269656e64730000450c0c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012d030453000004004d0c01185665633c543e00004d0c0000022d0300510c083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000550c0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e590c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d0c045300000400650c01185665633c543e00005d0c04184f7074696f6e04045401610c0108104e6f6e6500000010536f6d650400610c0000010000610c084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c018d012c426c6f636b4e756d62657201103450616c6c6574734f726967696e018102244163636f756e7449640100001401206d617962655f69642d0801304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c8d01011043616c6c0001386d617962655f706572696f646963350301944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e8102013450616c6c6574734f726967696e0000650c0000025d0c00690c084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f6400006d0c0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e710c00000408750c1800750c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401790c0453000004007d0c01185665633c543e0000790c083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650145032c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970654503012450726f78795479706500011464656c617910012c426c6f636b4e756d62657200007d0c000002790c00810c00000408850c1800850c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401890c0453000004008d0c01185665633c543e0000890c083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d62657200008d0c000002890c00910c0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e950c083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e5103015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73990c018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000990c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400e10101185665633c543e00009d0c0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10c083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974b5040150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974a50c01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656ea0012c4f7074696f6e3c7533323e00010000a50c04184f7074696f6e04045401b5040108104e6f6e6500000010536f6d650400b5040000010000a90c083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401ad0c01082c556e7265717565737465640801187469636b6574b10c014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574b50c016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656ea0012c4f7074696f6e3c7533323e00010000ad0c14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000b10c0000040800ad0c00b50c04184f7074696f6e04045401b10c0108104e6f6e6500000010536f6d650400b10c0000010000b90c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000bd0c0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10c083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573c50c0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000c50c083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d6265720110011c2050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720005004c417070726f7665645769746843757261746f7204011c63757261746f720001244163636f756e74496400060000c90c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000cd0c0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e2c4e6f7450726f706f736572000b049c55736572206973206e6f74207468652070726f706f736572206f662074686520626f756e74792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10c085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573d50c01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000d50c085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000d90c0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0c089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0c244163636f756e74496400284d617857696e6e657273004c4d61784261636b65727350657257696e6e657200000c0120737570706f727473e10c01ec426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572732c204d61784261636b65727350657257696e6e65723e00011473636f726599040134456c656374696f6e53636f726500011c636f6d707574653909013c456c656374696f6e436f6d707574650000e10c087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f72743c426f756e646564537570706f7274730c244163636f756e744964010018424f75746572001842496e6e657200000400e50c010901426f756e6465645665633c284163636f756e7449642c20426f756e646564537570706f72743c4163636f756e7449642c2042496e6e65723e292c20424f757465723e0000e50c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e90c045300000400f50c01185665633c543e0000e90c0000040800ed0c00ed0c087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f727438426f756e646564537570706f727408244163636f756e744964010014426f756e640000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273f10c01bc426f756e6465645665633c284163636f756e7449642c20457874656e64656442616c616e6365292c20426f756e643e0000f10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b504045300000400b10401185665633c543e0000f50c000002e90c00f90c089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e744964010024566f7465725479706501fd0c00080118766f74657273010d01385665633c566f746572547970653e00011c74617267657473e10101385665633c4163636f756e7449643e0000fd0c0000040c0030b50a00010d000002fd0c00050d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401090d0453000004000d0d01185665633c543e0000090d0000040c99041010000d0d000002090d00110d0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e016d030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e69030154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e63650000150d0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b85375626d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e190d0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e744964000110707265760d0201504f7074696f6e3c543a3a4163636f756e7449643e0001106e6578740d0201504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f726500001d0d0c4070616c6c65745f626167735f6c697374106c6973740c4261670804540004490000080110686561640d0201504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c0d0201504f7074696f6e3c543a3a4163636f756e7449643e0000210d0000023000250d0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000108104c6973740400290d01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e184c6f636b6564000104d8436f756c64206e6f74207570646174652061206e6f64652c2062656361757365207468652070616c6c6574206973206c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290d0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000114244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e64000300184c6f636b6564000400002d0d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e7465729d070140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173310d01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000310d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400350d013842547265654d61703c4b2c20563e0000350d042042547265654d617008044b011004560118000400a90b000000390d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6e3d0d0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573450d015c506f6f6c526f6c65733c543a3a4163636f756e7449643e0001147374617465c5040124506f6f6c537461746500003d0d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e74dd04017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d61784d09013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465410d01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6da001644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6ee90401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000410d04184f7074696f6e04045401e5040108104e6f6e6500000010536f6d650400e5040000010000450d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f740d0201444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f720d0201444f7074696f6e3c4163636f756e7449643e00011c626f756e6365720d0201444f7074696f6e3c4163636f756e7449643e0000490d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e7465729d070140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e00004d0d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261510d0134556e626f6e64506f6f6c3c543e000120776974685f657261550d010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000510d085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000550d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601510d045300000400590d013842547265654d61703c4b2c20563e0000590d042042547265654d617008044b0110045601510d0004005d0d0000005d0d000002610d00610d0000040810510d00650d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000690d0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019830506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e7369766504006d0d0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e2c536c617368546f6f4c6f77002104a854686520736c61736820616d6f756e7420697320746f6f206c6f7720746f206265206170706c6965642e3c416c72656164794d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002304150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002404f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e285265737472696374656400250851014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e20706f6f6c732e2054686973206d61792068617070656e20696620746865206163636f756e742069737c7374616b696e6720696e20616e6f746865722077617920616c72656164792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d0d0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c69656400060000710d0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c73746173686573750d01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564790d0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e0000750d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b504045300000400b10401185665633c543e0000790d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400f50101185665633c543e00007d0d0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810d0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732844656c65676174696f6e04045400000801146167656e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000850d0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732c4167656e744c656467657204045400001001147061796565000130543a3a4163636f756e74496400013c746f74616c5f64656c656761746564f4013042616c616e63654f663c543e000154756e636c61696d65645f7769746864726177616c73f4013042616c616e63654f663c543e00013470656e64696e675f736c617368f4013042616c616e63654f663c543e0000890d0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144572726f72040454000130284e6f74416c6c6f776564000004a8546865206163636f756e742063616e6e6f7420706572666f726d2074686973206f7065726174696f6e2e38416c72656164795374616b696e67000104b8416e206578697374696e67207374616b65722063616e6e6f7420706572666f726d207468697320616374696f6e2e60496e76616c696452657761726444657374696e6174696f6e000204d45265776172642044657374696e6174696f6e2063616e6e6f742062652073616d6520617320604167656e7460206163636f756e742e44496e76616c696444656c65676174696f6e0003148844656c65676174696f6e20636f6e646974696f6e7320617265206e6f74206d65742e004c506f737369626c6520697373756573206172656c31292043616e6e6f742064656c656761746520746f2073656c662ca432292043616e6e6f742064656c656761746520746f206d756c7469706c652064656c6567617465732e384e6f74456e6f75676846756e64730004040101546865206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20706572666f726d20746865206f7065726174696f6e2e204e6f744167656e74000504804e6f7420616e206578697374696e6720604167656e7460206163636f756e742e304e6f7444656c656761746f72000604604e6f7420612044656c656761746f72206163636f756e742e20426164537461746500070488536f6d6520636f7272757074696f6e20696e20696e7465726e616c2073746174652e38556e6170706c696564536c617368000804dc556e6170706c6965642070656e64696e6720736c61736820726573747269637473206f7065726174696f6e206f6e20604167656e74602e384e6f7468696e67546f536c617368000904ac604167656e746020686173206e6f2070656e64696e6720736c61736820746f206265206170706c6965642e3857697468647261774661696c6564000a04b04661696c656420746f20776974686472617720616d6f756e742066726f6d20436f7265205374616b696e672e304e6f74537570706f72746564000b049c4f7065726174696f6e206e6f7420737570706f7274656420627920746869732070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0d0000040810e10100910d00000408950d1000950d087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e743453657373696f6e5265706f727404244163636f756e744964010000100124656e645f696e64657810013053657373696f6e496e64657800014076616c696461746f725f706f696e7473d90a01545665633c284163636f756e7449642c20753332293e00015061637469766174696f6e5f74696d657374616d70990d01484f7074696f6e3c287536342c20753332293e0001206c6566746f766572200110626f6f6c0000990d04184f7074696f6e04045401390a0108104e6f6e6500000010536f6d650400390a00000100009d0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a10d045300000400a90d01185665633c543e0000a10d0000040810a50d00a50d087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741c4f6666656e636504244163636f756e7449640100000c01206f6666656e6465720001244163636f756e7449640001247265706f7274657273e10101385665633c4163636f756e7449643e000138736c6173685f6672616374696f6e9c011c50657262696c6c0000a90d000002a10d00ad0d0c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c6574144572726f720404540001041c426c6f636b65640000042501436f756c64206e6f742070726f6365737320696e636f6d696e67206d657373616765206265636175736520696e636f6d696e67206d657373616765732061726520626c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d6265720110008c01346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73050501484173796e634261636b696e67506172616d730001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c75333200019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c75333200013c6578656375746f725f706172616d73090501384578656375746f72506172616d73000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d6265720001386d61785f76616c696461746f7273a0012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001387076665f766f74696e675f74746c10013053657373696f6e496e6465780001806d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001546d696e696d756d5f6261636b696e675f766f74657310010c7533320001346e6f64655f6665617475726573410501304e6f64654665617475726573000158617070726f76616c5f766f74696e675f706172616d731d050150417070726f76616c566f74696e67506172616d730001407363686564756c65725f706172616d73210501705363686564756c6572506172616d733c426c6f636b4e756d6265723e0000b50d000002b90d00b90d0000040810b10d00bd0d106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10d000002490500c50d0000022d0200c90d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731873686172656468416c6c6f77656452656c6179506172656e7473547261636b657208104861736801342c426c6f636b4e756d626572011000080118627566666572cd0d017c56656344657175653c52656c6179506172656e74496e666f3c486173683e3e0001346c61746573745f6e756d62657210012c426c6f636b4e756d6265720000cd0d000002d10d00d10d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265643c52656c6179506172656e74496e666f0410486173680134000c013072656c61795f706172656e743401104861736800012873746174655f726f6f743401104861736800012c636c61696d5f7175657565d50d01bc42547265654d61703c49642c2042547265654d61703c75382c2042547265655365743c436f7265496e6465783e3e3e0000d50d042042547265654d617008044b019102045601d90d000400ed0d000000d90d042042547265654d617008044b0108045601dd0d000400e50d000000dd0d04204254726565536574040454016909000400e10d000000e10d000002690900e50d000002e90d00e90d0000040808dd0d00ed0d000002f10d00f10d000004089102d90d00f50d000002f90d00f90d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480134044e011000240110636f726569090124436f7265496e646578000110686173689d05013443616e6469646174654861736800012864657363726970746f725d05015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e74736d05015043616e646964617465436f6d6d69746d656e7473000148617661696c6162696c6974795f766f746573410501604269745665633c75382c204269744f726465724c7362303e00011c6261636b657273410501604269745665633c75382c204269744f726465724c7362303e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75706d09012847726f7570496e6465780000fd0d106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001446456616c696461746f72496e6465784f75744f66426f756e64730000047856616c696461746f7220696e646578206f7574206f6620626f756e64732e50556e7363686564756c656443616e646964617465000104ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e404865616444617461546f6f4c61726765000204a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500030464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000404604f757470757420636f646520697320746f6f206c6172676554446973616c6c6f77656452656c6179506172656e74000508ec5468652063616e64696461746527732072656c61792d706172656e7420776173206e6f7420616c6c6f7765642e204569746865722069742077617325016e6f7420726563656e7420656e6f756768206f72206974206469646e277420616476616e6365206261736564206f6e20746865206c6173742070617261636861696e20626c6f636b2e44496e76616c696441737369676e6d656e7400060815014661696c656420746f20636f6d707574652067726f757020696e64657820666f722074686520636f72653a206569746865722069742773206f7574206f6620626f756e6473e86f72207468652072656c617920706172656e7420646f65736e27742062656c6f6e6720746f207468652063757272656e742073657373696f6e2e44496e76616c696447726f7570496e6465780007049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e6700080490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000904e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e6856616c69646174696f6e44617461486173684d69736d61746368000a04c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67000b04d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d65737361676573000c041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e67000d0411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70000e04d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368000f04dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800100855015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c7470617261206865616420696e2074686520636f6d6d69746d656e74732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010e0c4c706f6c6b61646f745f7072696d697469766573207673746167696e674c536372617065644f6e436861696e566f7465730404480134000c011c73657373696f6e10013053657373696f6e496e6465780001806261636b696e675f76616c696461746f72735f7065725f63616e646964617465050e0125015665633c0a2843616e6469646174655265636569707456323c483e2c205665633c2856616c696461746f72496e6465782c2056616c69646974794174746573746174696f6e293e293e0001206469737075746573950501604d756c74694469737075746553746174656d656e745365740000050e000002090e00090e0000040865090d0e000d0e000002110e00110e000004084905910500150e106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400011064546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e8c496e686572656e744461746146696c7465726564447572696e67457865637574696f6e0002083101496e686572656e742064617461207761732066696c746572656420647572696e6720657865637574696f6e2e20546869732073686f756c642068617665206f6e6c79206265656e20646f6e6540647572696e67206372656174696f6e2e50556e7363686564756c656443616e64696461746500030474546f6f206d616e792063616e6469646174657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190e000002c10d001d0e042042547265654d617008044b016909045601210e000400290e000000210e000002250e00250e106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657218636f6d6d6f6e2841737369676e6d656e7400010810506f6f6c08011c706172615f696491020118506172614964000128636f72655f696e64657869090124436f7265496e6465780000001042756c6b04009102011850617261496400010000290e0000022d0e002d0e000004086909210e00310e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261735c507666436865636b416374697665566f74655374617465042c426c6f636b4e756d626572011000140130766f7465735f616363657074410501604269745665633c75382c204269744f726465724c7362303e000130766f7465735f72656a656374410501604269745665633c75382c204269744f726465724c7362303e00010c61676510013053657373696f6e496e646578000128637265617465645f617410012c426c6f636b4e756d626572000118636175736573350e017c5665633c507666436865636b43617573653c426c6f636b4e756d6265723e3e0000350e000002390e00390e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334507666436865636b4361757365042c426c6f636b4e756d62657201100108284f6e626f617264696e670400910201185061726149640000001c557067726164650c010869649102011850617261496400012c696e636c756465645f617410012c426c6f636b4e756d626572000140757067726164655f73747261746567793d0e013c557067726164655374726174656779000100003d0e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c55706772616465537472617465677900010840536574476f41686561645369676e616c000000504170706c7941744578706563746564426c6f636b00010000410e000002690500450e000002910200490e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e000600004d0e0000040891021000510e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573550e01605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564a001244f7074696f6e3c4e3e0000550e000002590e00590e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e00005d0e0000024d0e00610e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261736c417574686f72697a6564436f646548617368416e64457870697279040454011000080124636f64655f686173686905014856616c69646174696f6e436f6465486173680001246578706972655f6174100104540000650e0c4c706f6c6b61646f745f7072696d6974697665730876383855706772616465476f41686561640001081441626f72740000001c476f416865616400010000690e0c4c706f6c6b61646f745f7072696d69746976657308763848557067726164655265737472696374696f6e0001041c50726573656e74000000006d0e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f6865616489050120486561644461746100013c76616c69646174696f6e5f636f64658505013856616c69646174696f6e436f6465000124706172615f6b696e64200120506172614b696e640000710e106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000140344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f7455706772616465000304d4506172612063616e6e6f7420626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e3c43616e6e6f74446f776e6772616465000404d0506172612063616e6e6f7420626520646f776e67726164656420746f20616e206f6e2d64656d616e642070617261636861696e2e58507666436865636b53746174656d656e745374616c65000504b05468652073746174656d656e7420666f7220505646207072652d636865636b696e67206973207374616c652e5c507666436865636b53746174656d656e74467574757265000604ec5468652073746174656d656e7420666f7220505646207072652d636865636b696e6720697320666f722061206675747572652073657373696f6e2e84507666436865636b56616c696461746f72496e6465784f75744f66426f756e6473000704a4436c61696d65642076616c696461746f7220696e646578206973206f7574206f6620626f756e64732e60507666436865636b496e76616c69645369676e6174757265000804c8546865207369676e617475726520666f722074686520505646207072652d636865636b696e6720697320696e76616c69642e48507666436865636b446f75626c65566f7465000904b054686520676976656e2076616c696461746f7220616c7265616479206861732063617374206120766f74652e58507666436865636b5375626a656374496e76616c6964000a04f454686520676976656e2050564620646f6573206e6f7420657869737420617420746865206d6f6d656e74206f662070726f63657373206120766f74652e4443616e6e6f7455706772616465436f6465000b04cc50617261636861696e2063616e6e6f742063757272656e746c79207363686564756c65206120636f646520757067726164652e2c496e76616c6964436f6465000c0474496e76616c69642076616c69646174696f6e20636f64652073697a652e444e6f7468696e67417574686f72697a6564000d04584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a6564000e0494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e48496e76616c6964426c6f636b4e756d626572000f0454496e76616c696420626c6f636b206e756d6265722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750e000002790e00790e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273c50d01405665633c56616c696461746f7249643e000118717565756564c50d01405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e64657800007d0e000002810e00810e0860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000850e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564200110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000890e000002c905008d0e0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f686561649d0201304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000910e000002950e00950e0860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000990e0000029d0e009d0e0000040810450e00a10e106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000150544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e3057726f6e675769746e6573730012048c5468652070726f7669646564207769746e65737320646174612069732077726f6e672e704368616e6e656c4372656174696f6e4e6f74417574686f72697a6564001304e8546865206368616e6e656c206265747765656e2074686573652074776f20636861696e732063616e6e6f7420626520617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50e000002310200a90e0c4c706f6c6b61646f745f7072696d6974697665730876382c53657373696f6e496e666f00003401606163746976655f76616c696461746f725f696e6469636573c10d014c5665633c56616c696461746f72496e6465783e00012c72616e646f6d5f736565640401205b75383b2033325d000138646973707574655f706572696f6410013053657373696f6e496e64657800012876616c696461746f7273ad0e019c496e64657865645665633c56616c696461746f72496e6465782c2056616c696461746f7249643e000138646973636f766572795f6b657973350b01645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b657973a50e01445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073b10e01ac496e64657865645665633c47726f7570496e6465782c205665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000ad0e0c4c706f6c6b61646f745f7072696d69746976657308763828496e646578656456656308044b0149050456012d02000400c50d01185665633c563e0000b10e0c4c706f6c6b61646f745f7072696d69746976657308763828496e646578656456656308044b016d09045601c10d000400190e01185665633c563e0000b50e00000408109d0500b90e0c4c706f6c6b61646f745f7072696d6974697665730876383044697370757465537461746504044e01100010013876616c696461746f72735f666f724105017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014876616c696461746f72735f616761696e73744105017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00011473746172741001044e000130636f6e636c756465645f6174a001244f7074696f6e3c4e3e0000bd0e04204254726565536574040454014905000400c10d000000c10e106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144572726f72040454000124744475706c69636174654469737075746553746174656d656e7453657473000004a84475706c696361746520646973707574652073746174656d656e7420736574732070726f76696465642e5c416e6369656e744469737075746553746174656d656e740001048c416e6369656e7420646973707574652073746174656d656e742070726f76696465642e6456616c696461746f72496e6465784f75744f66426f756e6473000204e856616c696461746f7220696e646578206f6e2073746174656d656e74206973206f7574206f6620626f756e647320666f722073657373696f6e2e40496e76616c69645369676e61747572650003047c496e76616c6964207369676e6174757265206f6e2073746174656d656e742e484475706c696361746553746174656d656e74000404cc56616c696461746f7220766f7465207375626d6974746564206d6f7265207468616e206f6e636520746f20646973707574652e4853696e676c65536964656444697370757465000504c441206469737075746520776865726520746865726520617265206f6e6c7920766f746573206f6e206f6e6520736964652e3c4d616c6963696f75734261636b65720006049c41206469737075746520766f74652066726f6d2061206d616c6963696f7573206261636b65722e4c4d697373696e674261636b696e67566f746573000704e04e6f206261636b696e6720766f74657320776572652070726f766964657320616c6f6e6720646973707574652073746174656d656e74732e48556e636f6e6669726d656444697370757465000804b0556e636f6e6669726d656420646973707574652073746174656d656e7420736574732070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec50e0c4c706f6c6b61646f745f7072696d697469766573207673746167696e673850656e64696e67536c617368657300000801106b657973c90e019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e64dd050148446973707574654f6666656e63654b696e640000c90e042042547265654d617008044b0149050456012d02000400cd0e000000cd0e000002d10e00d10e0000040849052d0200d50e146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c6574144572726f7204045400011860496e76616c69644b65794f776e65727368697050726f6f660000048c546865206b6579206f776e6572736869702070726f6f6620697320696e76616c69642e4c496e76616c696453657373696f6e496e646578000104a05468652073657373696f6e20696e64657820697320746f6f206f6c64206f7220696e76616c69642e50496e76616c696443616e64696461746548617368000204785468652063616e646964617465206861736820697320696e76616c69642e54496e76616c696456616c696461746f72496e64657800030801015468657265206973206e6f2070656e64696e6720736c61736820666f722074686520676976656e2076616c696461746f7220696e64657820616e642074696d6514736c6f742e6056616c696461746f72496e64657849644d69736d61746368000404d05468652076616c696461746f7220696e64657820646f6573206e6f74206d61746368207468652076616c696461746f722069642e5c4475706c6963617465536c617368696e675265706f72740005040d0154686520676976656e20736c617368696e67207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90e106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e6414747970657344436f7265416666696e697479436f756e740000080128636f72655f696e64657869090124436f7265496e646578000114636f756e7410010c7533320000dd0e106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641474797065733c517565756553746174757354797065000010011c747261666669639d0701244669786564553132380001286e6578745f696e646578e10e01285175657565496e646578000138736d616c6c6573745f696e646578e10e01285175657565496e64657800013466726565645f696e6469636573e50e017442696e617279486561703c526576657273655175657565496e6465783e0000e10e106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e64147479706573285175657565496e6465780000040010010c7533320000e50e042842696e6172794865617004045401e90e000400ed0e000000e90e106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e6414747970657344526576657273655175657565496e6465780000040010010c7533320000ed0e000002e90e00f10e042842696e6172794865617004045401f50e000400f90e000000f50e106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e6414747970657334456e7175657565644f72646572000008011c706172615f69649102011850617261496400010c696478e10e01285175657565496e6465780000f90e000002f50e00fd0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400010f01185665633c543e0000010f0000021800050f106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641870616c6c6574144572726f7204045400010c24517565756546756c6c000004e4546865206f726465722071756575652069732066756c6c2c2060706c6163655f6f72646572602077696c6c206e6f7420636f6e74696e75652e7053706f7450726963654869676865725468616e4d6178416d6f756e740001084d015468652063757272656e742073706f7420707269636520697320686967686572207468616e20746865206d617820616d6f756e742073706563696669656420696e207468652060706c6163655f6f72646572606063616c6c2c206d616b696e6720697420696e76616c69642e4c496e73756666696369656e74437265646974730002041d01546865206163636f756e7420646f65736e2774206861766520656e6f756768206372656469747320746f207075726368617365206f6e2d64656d616e6420636f726574696d652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090f00000408106909000d0f0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d65205363686564756c6504044e0110000c012c61737369676e6d656e74730d06018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e74a001244f7074696f6e3c4e3e0001346e6578745f7363686564756c65a001244f7074696f6e3c4e3e0000110f0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d6538436f726544657363726970746f7204044e0110000801147175657565150f01684f7074696f6e3c517565756544657363726970746f723c4e3e3e00013063757272656e745f776f726b1d0f01504f7074696f6e3c576f726b53746174653c4e3e3e0000150f04184f7074696f6e04045401190f0108104e6f6e6500000010536f6d650400190f0000010000190f0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653c517565756544657363726970746f7204044e01100008011466697273741001044e0001106c6173741001044e00001d0f04184f7074696f6e04045401210f0108104e6f6e6500000010536f6d650400210f0000010000210f0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d6524576f726b537461746504044e01100010012c61737369676e6d656e7473250f01985665633c28436f726541737369676e6d656e742c2041737369676e6d656e745374617465293e000120656e645f68696e74a001244f7074696f6e3c4e3e00010c706f738501010c753136000110737465701906013050617274734f6635373630300000250f000002290f00290f0000040815062d0f002d0f0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653c41737369676e6d656e7453746174650000080114726174696f1906013050617274734f66353736303000012472656d61696e696e671906013050617274734f6635373630300000310f106c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d651870616c6c6574144572726f720404540001084041737369676e6d656e7473456d70747900000040446973616c6c6f776564496e73657274000108510161737369676e5f636f7265206973206f6e6c7920616c6c6f77656420746f20617070656e64206e65772061737369676e6d656e74732061742074686520656e64206f6620616c7265616479206578697374696e67786f6e6573206f722075706461746520746865206c61737420656e7472792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350f0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564d50201304f7074696f6e3c626f6f6c3e0000390f105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000138344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f7450617261746872656164000604bc50617261206973206e6f742061205061726174687265616420286f6e2d64656d616e642070617261636861696e292e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e67726164650008042d0143616e6e6f74207363686564756c6520646f776e6772616465206f66206c6561736520686f6c64696e672070617261636861696e20746f206f6e2d64656d616e642070617261636861696e3443616e6e6f7455706772616465000904250143616e6e6f74207363686564756c652075706772616465206f66206f6e2d64656d616e642070617261636861696e20746f206c6561736520686f6c64696e672070617261636861696e28506172614c6f636b6564000a08490150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e2c676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e2c496e76616c6964436f6465000c047c5468652076616c69646174696f6e20636f646520697320696e76616c69642e2843616e6e6f7453776170000d08510143616e6e6f7420706572666f726d20612070617261636861696e20736c6f74202f206c6966656379636c6520737761702e20436865636b207468617420746865207374617465206f6620626f74682070617261738461726520636f727265637420666f7220746865207377617020746f20776f726b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0f000002a50c00410f105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450f0000040800910200490f000003240000004d0f004d0f04184f7074696f6e04045401510f0108104e6f6e6500000010536f6d650400510f0000010000510f0000040c0091021800550f105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590f0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e7449640001207665726966696572f905014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6e5d0f01744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f6400012866756e645f696e64657810012446756e64496e64657800005d0f0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000610f105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110855015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e741c706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e650f106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c6574144572726f7204045400010c244e6f7442726f6b6572000004290154686520706172616964206d616b696e67207468652063616c6c206973206e6f742074686520636f726574696d652062726f6b65726167652073797374656d2070617261636861696e2e58526571756573746564467574757265526576656e7565000108450152657175657374656420726576656e756520696e666f726d6174696f6e20607768656e6020706172616d657465722077617320696e20746865206675747572652066726f6d207468652063757272656e7434626c6f636b206865696768742e4c41737365745472616e736665724661696c6564000204bc4661696c656420746f207472616e736665722061737365747320746f2074686520636f726574696d6520636861696e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690f0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e6465727501014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f717565726965726d0f01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f74696679710f01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696e7501014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365790f014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d626572000200006d0f04184f7074696f6e0404540175010108104e6f6e6500000010536f6d65040075010000010000710f04184f7074696f6e04045401750f0108104e6f6e6500000010536f6d650400750f0000010000750f00000408080800790f080c78636d4456657273696f6e6564526573706f6e736500010c08563304004906013076333a3a526573706f6e73650003000856340400b106013076343a3a526573706f6e73650004000856350400f906013076353a3a526573706f6e7365000500007d0f0000040810750100810f0000040c30281000850f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401890f0453000004008d0f01185665633c543e0000890f00000408750110008d0f000002890f00910f0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400950f013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000950f04184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000990f0000040c10008507009d0f0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e74696669657201d501304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e65727501014456657273696f6e65644c6f636174696f6e0001186c6f636b65727501014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273a10f01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000a10f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a50f045300000400a90f01185665633c543e0000a50f00000408d5011800a90f000002a50f00ad0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10f045300000400b50f01185665633c543e0000b10f0000040818750100b50f000002b10f00b90f082870616c6c65745f78636d58417574686f72697a6564416c6961736573456e74727908185469636b657401bd0f0c4d415801c10f00080120616c696173657273c50f0178426f756e6465645665633c4f726967696e416c69617365722c204d41583e0001187469636b6574bd0f01185469636b65740000bd0f10346672616d655f737570706f7274187472616974731c73746f726167652044697361626c656400000000c10f0c2870616c6c65745f78636d1870616c6c6574504d6178417574686f72697a6564416c696173657300000000c50f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c90f045300000400cd0f01185665633c543e0000c90f0c4078636d5f72756e74696d655f6170697348617574686f72697a65645f616c6961736573344f726967696e416c696173657200000801206c6f636174696f6e7501014456657273696f6e65644c6f636174696f6e0001186578706972798907012c4f7074696f6e3c7536343e0000cd0f000002c90f00d10f0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001702c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e60546f6f4d616e79417574686f72697a6564416c6961736573001904b8546f6f206d616e79206c6f636174696f6e7320617574686f72697a656420746f20616c696173206f726967696e2e3445787069726573496e50617374001a048c45787069727920626c6f636b206e756d62657220697320696e2074686520706173742e34416c6961734e6f74466f756e64001b04d054686520616c69617320746f2072656d6f766520617574686f72697a6174696f6e20666f7220776173206e6f7420666f756e642e844c6f63616c457865637574696f6e496e636f6d706c657465576974684572726f72080114696e646578080140496e737472756374696f6e496e6465780001146572726f72d50f0138457865637574696f6e4572726f72001c0835014c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652077697468207468652061637475616c2058434d206572726f7220616e642074686520696e646578206f662074686588696e737472756374696f6e20746861742063617573656420746865206572726f722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed50f0c2870616c6c65745f78636d186572726f727338457865637574696f6e4572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d6974526561636865640025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d697400280000d90f085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01910700180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273dd0f01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000dd0f04184f7074696f6e04045401e10f0108104e6f6e6500000010536f6d650400e10f0000010000e10f085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e0191070008011070726576910701344d6573736167654f726967696e0001106e657874910701344d6573736167654f726967696e0000e50f0000040891071000e90f085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170ed0f019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000ed0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f10f0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef50f0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013902045300000400fd0f01185665633c543e0000fd0f00000239020001100c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011c60496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c6964446f75626c65566f74696e6750726f6f6600010431014120646f75626c6520766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e58496e76616c6964466f726b566f74696e6750726f6f6600020429014120666f726b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e74496e76616c6964467574757265426c6f636b566f74696e6750726f6f660003044901412066757475726520626c6f636b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e7c496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e000404c05468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f6620697320696e76616c6964584475706c69636174654f6666656e63655265706f727400050415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0006048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e05100c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e74000009100c4870616c6c65745f72635f6d69677261746f72206163636f756e7473304163636f756e745374617465041c42616c616e63650118010c1c4d69677261746500000020507265736572766500010010506172740c01106672656518011c42616c616e6365000120726573657276656418011c42616c616e6365000124636f6e73756d65727310010c753332000200000d100c4870616c6c65745f72635f6d69677261746f72206163636f756e7473404d6967726174656442616c616e636573041c42616c616e63650118000801106b65707418011c42616c616e63650001206d6967726174656418011c42616c616e636500001110000002fd050015100c4870616c6c65745f72635f6d69677261746f721870616c6c6574144572726f720404540001482c556e726561636861626c650000002c4f75744f665765696768740001002058636d4572726f72000204844661696c656420746f2073656e642058434d206d65737361676520746f2041482e5c4661696c6564546f57697468647261774163636f756e74000304dc4661696c656420746f207769746864726177206163636f756e742066726f6d20524320666f72206d6967726174696f6e20746f2041482e3c50617374426c6f636b4e756d626572000404e4496e646963617465732074686174207468652073706563696669656420626c6f636b206e756d62657220697320696e2074686520706173742e38457261456e6473546f6f536f6f6e00050cf0496e646963617465732074686174207468657265206973206e6f7420656e6f7567682074696d6520666f72207374616b696e6720746f206c6f636b2e0025015363686564756c6520746865206d6967726174696f6e206174206c656173742074776f2073657373696f6e73206265666f7265207468652063757272656e742065726120656e64732e3c42616c616e63654f766572666c6f770006047042616c616e6365206163636f756e74696e67206f766572666c6f772e4042616c616e6365556e646572666c6f770007047442616c616e6365206163636f756e74696e6720756e646572666c6f772e50496e76616c69645175657279526573706f6e73650008047854686520717565727920726573706f6e736520697320696e76616c69642e3451756572794e6f74466f756e64000904705468652078636d20717565727920776173206e6f7420666f756e642e3058636d53656e644572726f72000a046c4661696c656420746f2073656e642058434d206d6573736167652e40556e726561636861626c655374616765000b04f0546865206d6967726174696f6e207374616765206973206e6f7420726561636861626c652066726f6d207468652063757272656e742073746167652e40496e76616c6964506172616d65746572000c0448496e76616c696420706172616d657465722e704168556d7051756575655072696f72697479416c7265616479536574000d04dc54686520414820554d50207175657565207072696f7269747920636f6e66696775726174696f6e20697320616c7265616479207365742e444163636f756e745265666572656e636564000e043d01546865206163636f756e74206973207265666572656e63656420627920736f6d65206f746865722070616c6c65742e204974206d69676874206861766520667265657a6573206f7220686f6c64732e3442616458636d56657273696f6e000f046c5468652058434d2076657273696f6e20697320696e76616c69642e34496e76616c69644f726967696e00100458546865206f726967696e20697320696e76616c69642e58496e76616c696453746167655472616e736974696f6e00110480546865207374616765207472616e736974696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1910000004241d102110251029102d10351039103d104110001d1010306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000211010306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000251010306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000291010306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e65736973040454000000002d1010306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c697479040454000004003110010c45726100003110102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000351010306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400e40120543a3a4e6f6e63650000391010306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b576569676874040454000000003d10086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e7404045400000400f4013042616c616e63654f663c543e0000411008746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465451001104d6f64650000451008746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c65640001000049100c3072656c61795f636f6d6d6f6e106170697334496e666c6174696f6e496e666f0000080124696e666c6174696f6ec102015c73705f72756e74696d653a3a5065727175696e74696c6c0001246e6578745f6d696e744d1001f028706f6c6b61646f745f7072696d6974697665733a3a42616c616e63652c20706f6c6b61646f745f7072696d6974697665733a3a42616c616e63652900004d10000004081818005110102873705f72756e74696d651c67656e6572696314626c6f636b14426c6f636b081848656164657201ad012445787472696e73696301551000080118686561646572ad01011848656164657200012865787472696e73696373591001385665633c45787472696e7369633e00005510102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301d1011043616c6c019101245369676e61747572650105061445787472610119100004003800000059100000025510005d10082873705f72756e74696d655845787472696e736963496e636c7573696f6e4d6f646500010834416c6c45787472696e73696373000000344f6e6c79496e686572656e7473000100006110081c73705f636f7265384f70617175654d657461646174610000040038011c5665633c75383e0000651004184f7074696f6e0404540161100108104e6f6e6500000010536f6d6504006110000001000069100418526573756c7408045401fd080445016d100108084f6b0400fd08000000000c45727204006d1000000100006d100c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479605472616e73616374696f6e56616c69646974794572726f720001081c496e76616c6964040071100148496e76616c69645472616e73616374696f6e0000001c556e6b6e6f776e040075100148556e6b6e6f776e5472616e73616374696f6e0001000071100c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948496e76616c69645472616e73616374696f6e0001341043616c6c0000001c5061796d656e7400010018467574757265000200145374616c650003002042616450726f6f6600040044416e6369656e744269727468426c6f636b0005004445786861757374735265736f757263657300060018437573746f6d04000801087538000700304261644d616e6461746f72790008004c4d616e6461746f727956616c69646174696f6e000900244261645369676e6572000a0054496e64657465726d696e617465496d706c69636974000b0034556e6b6e6f776e4f726967696e000c000075100c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948556e6b6e6f776e5472616e73616374696f6e00010c3043616e6e6f744c6f6f6b75700000004c4e6f556e7369676e656456616c696461746f7200010018437573746f6d04000801087538000200007910083073705f696e686572656e747330496e686572656e74446174610000040110646174617d10019442547265654d61703c496e686572656e744964656e7469666965722c205665633c75383e3e00007d10042042547265654d617008044b0145060456013800040081100000008110000002851000851000000408450638008910083073705f696e686572656e747350436865636b496e686572656e7473526573756c7400000c01106f6b6179200110626f6f6c00012c666174616c5f6572726f72200110626f6f6c0001186572726f727379100130496e686572656e744461746100008d100c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479445472616e73616374696f6e536f7572636500010c1c496e426c6f636b000000144c6f63616c0001002045787465726e616c0002000091100418526573756c740804540195100445016d100108084f6b04009510000000000c45727204006d10000001000095100c2873705f72756e74696d65507472616e73616374696f6e5f76616c69646974794056616c69645472616e73616374696f6e00001401207072696f7269747930014c5472616e73616374696f6e5072696f726974790001207265717569726573a101014c5665633c5472616e73616374696f6e5461673e00012070726f7669646573a101014c5665633c5472616e73616374696f6e5461673e0001246c6f6e6765766974793001505472616e73616374696f6e4c6f6e67657669747900012470726f706167617465200110626f6f6c0000991000000408190e9d10009d100c4c706f6c6b61646f745f7072696d6974697665730876384447726f7570526f746174696f6e496e666f04044e0110000c014c73657373696f6e5f73746172745f626c6f636b1001044e00016067726f75705f726f746174696f6e5f6672657175656e63791001044e00010c6e6f771001044e0000a110000002a51000a5100c4c706f6c6b61646f745f7072696d697469766573207673746167696e6724436f726553746174650804480134044e0110010c204f636375706965640400a91001484f63637570696564436f72653c482c204e3e000000245363686564756c65640400b11001345363686564756c6564436f7265000100104672656500020000a9100c4c706f6c6b61646f745f7072696d697469766573207673746167696e67304f63637570696564436f72650804480134044e0110002001506e6578745f75705f6f6e5f617661696c61626c65ad1001544f7074696f6e3c5363686564756c6564436f72653e0001386f636375706965645f73696e63651001044e00012c74696d655f6f75745f61741001044e00014c6e6578745f75705f6f6e5f74696d655f6f7574ad1001544f7074696f6e3c5363686564756c6564436f72653e000130617661696c6162696c6974794105017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014467726f75705f726573706f6e7369626c656d09012847726f7570496e64657800013863616e6469646174655f686173689d05013443616e6469646174654861736800015063616e6469646174655f64657363726970746f725d05016043616e64696461746544657363726970746f7256323c483e0000ad1004184f7074696f6e04045401b1100108104e6f6e6500000010536f6d650400b1100000010000b1100c4c706f6c6b61646f745f7072696d697469766573087638345363686564756c6564436f7265000008011c706172615f6964910201084964000120636f6c6c61746f72b51001484f7074696f6e3c436f6c6c61746f7249643e0000b51004184f7074696f6e04045401b9100108104e6f6e6500000010536f6d650400b9100000010000b910104c706f6c6b61646f745f7072696d69746976657308763830636f6c6c61746f725f617070185075626c69630000040004013c737232353531393a3a5075626c69630000bd100c4c706f6c6b61646f745f7072696d697469766573087638584f63637570696564436f7265417373756d7074696f6e00010c20496e636c756465640000002054696d65644f7574000100104672656500020000c11004184f7074696f6e04045401c5100108104e6f6e6500000010536f6d650400c5100000010000c5100c4c706f6c6b61646f745f7072696d6974697665730876385c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f6865616489050120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c7533320000c91004184f7074696f6e04045401cd100108104e6f6e6500000010536f6d650400cd100000010000cd1000000408c510690500d11004184f7074696f6e0404540159050108104e6f6e6500000010536f6d65040059050000010000d510000002d91000d9100c4c706f6c6b61646f745f7072696d697469766573207673746167696e673843616e6469646174654576656e740404480134010c3c43616e6469646174654261636b656410006509015443616e6469646174655265636569707456323c483e0000890501204865616444617461000069090124436f7265496e64657800006d09012847726f7570496e6465780000004443616e646964617465496e636c7564656410006509015443616e6469646174655265636569707456323c483e0000890501204865616444617461000069090124436f7265496e64657800006d09012847726f7570496e6465780001004443616e64696461746554696d65644f75740c006509015443616e6469646174655265636569707456323c483e0000890501204865616444617461000069090124436f7265496e64657800020000dd10042042547265654d617008044b019102045601910e000400e110000000e110000002e51000e510000004089102910e00e91004184f7074696f6e04045401010e0108104e6f6e6500000010536f6d650400010e0000010000ed1004184f7074696f6e04045401a90e0108104e6f6e6500000010536f6d650400a90e0000010000f11004184f7074696f6e0404540169050108104e6f6e6500000010536f6d65040069050000010000f510000002f91000f9100000040c109d05b90e00fd1004184f7074696f6e0404540109050108104e6f6e6500000010536f6d65040009050000010000011100000205110005110000040c109d050911000911104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e673850656e64696e67536c617368657300000801106b657973c90e019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e640d11014c536c617368696e674f6666656e63654b696e6400000d11104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e674c536c617368696e674f6666656e63654b696e6400010828466f72496e76616c696400000030416761696e737456616c696400010000111104184f7074696f6e0404540115110108104e6f6e6500000010536f6d650400151100000100001511104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e675c4f70617175654b65794f776e65727368697050726f6f660000040038011c5665633c75383e00001911104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e67304469737075746550726f6f66000010012474696d655f736c6f74d9050140446973707574657354696d65536c6f740001106b696e640d11014c536c617368696e674f6666656e63654b696e6400013c76616c696461746f725f696e6465784905013856616c696461746f72496e64657800013076616c696461746f725f69642d02012c56616c696461746f72496400001d1104184f7074696f6e0404540121110108104e6f6e6500000010536f6d650400211100000100002111104c706f6c6b61646f745f7072696d697469766573207673746167696e67346173796e635f6261636b696e67304261636b696e6753746174650804480134044e01100008012c636f6e73747261696e74732511019063726174653a3a6173796e635f6261636b696e673a3a436f6e73747261696e74733c4e3e00015070656e64696e675f617661696c6162696c6974794511019c5665633c43616e64696461746550656e64696e67417661696c6162696c6974793c482c204e3e3e00002511104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e672c436f6e73747261696e747304044e01100038015c6d696e5f72656c61795f706172656e745f6e756d6265721001044e0001306d61785f706f765f73697a6510010c7533320001346d61785f636f64655f73697a6510010c753332000134756d705f72656d61696e696e6710010c75333200014c756d705f72656d61696e696e675f627974657310010c7533320001646d61785f756d705f6e756d5f7065725f63616e64696461746510010c753332000158646d705f72656d61696e696e675f6d65737361676573f50101185665633c4e3e00013068726d705f696e626f756e6429110164496e626f756e6448726d704c696d69746174696f6e733c4e3e00014468726d705f6368616e6e656c735f6f75742d1101a45665633c2849642c204f7574626f756e6448726d704368616e6e656c4c696d69746174696f6e73293e0001686d61785f68726d705f6e756d5f7065725f63616e64696461746510010c75333200013c72657175697265645f706172656e7489050120486561644461746100015076616c69646174696f6e5f636f64655f686173686905014856616c69646174696f6e436f64654861736800014c757067726164655f7265737472696374696f6e391101684f7074696f6e3c557067726164655265737472696374696f6e3e0001586675747572655f76616c69646174696f6e5f636f64653d11017c4f7074696f6e3c284e2c2056616c69646174696f6e436f646548617368293e00002911104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e6758496e626f756e6448726d704c696d69746174696f6e7304044e01100004014076616c69645f77617465726d61726b73f50101185665633c4e3e00002d1100000231110031110000040891023511003511104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67784f7574626f756e6448726d704368616e6e656c4c696d69746174696f6e73000008013c62797465735f72656d61696e696e6710010c7533320001486d657373616765735f72656d61696e696e6710010c7533320000391104184f7074696f6e04045401690e0108104e6f6e6500000010536f6d650400690e00000100003d1104184f7074696f6e0404540141110108104e6f6e6500000010536f6d650400411100000100004111000004081069050045110000024911004911104c706f6c6b61646f745f7072696d697469766573207673746167696e67346173796e635f6261636b696e677043616e64696461746550656e64696e67417661696c6162696c6974790804480134044e01100014013863616e6469646174655f686173689d05013443616e6469646174654861736800012864657363726970746f725d05016043616e64696461746544657363726970746f7256323c483e00012c636f6d6d69746d656e74736d05015043616e646964617465436f6d6d69746d656e747300014c72656c61795f706172656e745f6e756d6265721001044e0001306d61785f706f765f73697a6510010c75333200004d11042042547265654d617008044b016909045601450e000400511100000051110000025511005511000004086909450e0059110000025905005d1104184f7074696f6e0404540161110108104e6f6e6500000010536f6d650400611100000100006111104c706f6c6b61646f745f7072696d697469766573207673746167696e67346173796e635f6261636b696e672c436f6e73747261696e747304044e0110003c015c6d696e5f72656c61795f706172656e745f6e756d6265721001044e0001306d61785f706f765f73697a6510010c7533320001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c753332000134756d705f72656d61696e696e6710010c75333200014c756d705f72656d61696e696e675f627974657310010c7533320001646d61785f756d705f6e756d5f7065725f63616e64696461746510010c753332000158646d705f72656d61696e696e675f6d65737361676573f50101185665633c4e3e00013068726d705f696e626f756e6429110164496e626f756e6448726d704c696d69746174696f6e733c4e3e00014468726d705f6368616e6e656c735f6f75742d1101a45665633c2849642c204f7574626f756e6448726d704368616e6e656c4c696d69746174696f6e73293e0001686d61785f68726d705f6e756d5f7065725f63616e64696461746510010c75333200013c72657175697265645f706172656e7489050120486561644461746100015076616c69646174696f6e5f636f64655f686173686905014856616c69646174696f6e436f64654861736800014c757067726164655f7265737472696374696f6e391101684f7074696f6e3c557067726164655265737472696374696f6e3e0001586675747572655f76616c69646174696f6e5f636f64653d11017c4f7074696f6e3c284e2c2056616c69646174696f6e436f646548617368293e0000651104184f7074696f6e0404540169110108104e6f6e6500000010536f6d650400691100000100006911084873705f636f6e73656e7375735f62656566793056616c696461746f72536574042c417574686f7269747949640139020008012876616c696461746f7273fd0f01405665633c417574686f7269747949643e000108696430013856616c696461746f72536574496400006d11082873705f72756e74696d652c4f706171756556616c75650000040038011c5665633c75383e00007111084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201ad0108496401390234416e63657374727950726f6f66016d11000c0110766f7465ad0701b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f666d110134416e63657374727950726f6f66000118686561646572ad0101184865616465720000751104184f7074696f6e040454016d110108104e6f6e6500000010536f6d6504006d11000001000079110418526573756c7408045401340445017d110108084f6b040034000000000c45727204007d1100000100007d11084473705f6d6d725f7072696d697469766573144572726f7200012840496e76616c69644e756d657269634f7000000010507573680001001c476574526f6f7400020018436f6d6d69740003003447656e657261746550726f6f6600040018566572696679000500304c6561664e6f74466f756e640006004450616c6c65744e6f74496e636c7564656400070040496e76616c69644c656166496e64657800080054496e76616c6964426573744b6e6f776e426c6f636b0009000081110418526573756c7408045401300445017d110108084f6b040030000000000c45727204007d11000001000085110418526573756c740804540189110445017d110108084f6b04008911000000000c45727204007d1100000100008911000004088d119511008d110000029111009111084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00009511084473705f6d6d725f7072696d697469766573244c65616650726f6f660410486173680134000c01306c6561665f696e6469636573210d01385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73590301245665633c486173683e000099110418526573756c7408045401d5010445017d110108084f6b0400d501000000000c45727204007d1100000100009d11084473705f636f6e73656e7375735f626162654442616265436f6e66696775726174696f6e0000180134736c6f745f6475726174696f6e30010c75363400013065706f63685f6c656e67746830010c75363400010463c1010128287536342c207536342900012c617574686f7269746965730d0a019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000134616c6c6f7765645f736c6f7473c5010130416c6c6f776564536c6f74730000a111084473705f636f6e73656e7375735f626162651445706f6368000018012c65706f63685f696e64657830010c75363400012873746172745f736c6f74b5010110536c6f740001206475726174696f6e30010c75363400012c617574686f7269746965730d0a019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000118636f6e666967310a01584261626545706f6368436f6e66696775726174696f6e0000a51104184f7074696f6e04045401a9110108104e6f6e6500000010536f6d650400a9110000010000a911084473705f636f6e73656e7375735f626162655c4f70617175654b65794f776e65727368697050726f6f660000040038011c5665633c75383e0000ad1104184f7074696f6e04045401b1110108104e6f6e6500000010536f6d650400b1110000010000b111000002b51100b5110000040838190b00b9110c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065734c52756e74696d654469737061746368496e666f081c42616c616e63650118185765696768740128000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c61737300012c7061727469616c5f66656518011c42616c616e63650000bd110c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065732846656544657461696c73041c42616c616e6365011800080134696e636c7573696f6e5f666565c11101744f7074696f6e3c496e636c7573696f6e4665653c42616c616e63653e3e00010c74697018011c42616c616e63650000c11104184f7074696f6e04045401c5110108104e6f6e6500000010536f6d650400c5110000010000c5110c6870616c6c65745f7472616e73616374696f6e5f7061796d656e7414747970657330496e636c7573696f6e466565041c42616c616e63650118000c0120626173655f66656518011c42616c616e636500011c6c656e5f66656518011c42616c616e636500014c61646a75737465645f7765696768745f66656518011c42616c616e63650000c9110418526573756c7408045401cd11044501d1110108084f6b0400cd11000000000c4572720400d1110000010000cd11000002850700d1110c4078636d5f72756e74696d655f617069731066656573144572726f7200011834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001004c5765696768744e6f74436f6d70757461626c650002004c556e68616e646c656458636d56657273696f6e0003003441737365744e6f74466f756e6400040028556e726f757461626c6500050000d5110418526573756c740804540128044501d1110108084f6b040028000000000c4572720400d1110000010000d9110418526573756c740804540118044501d1110108084f6b040018000000000c4572720400d1110000010000dd110418526573756c74080454015107044501d1110108084f6b04005107000000000c4572720400d1110000010000e1110418526573756c7408045401e511044501fd110108084f6b0400e511000000000c4572720400fd110000010000e5110c4078636d5f72756e74696d655f617069731c6472795f72756e4443616c6c44727952756e4566666563747304144576656e74015400100140657865637574696f6e5f726573756c74c90801684469737061746368526573756c7457697468506f7374496e666f000138656d69747465645f6576656e7473e91101285665633c4576656e743e0001246c6f63616c5f78636ded1101604f7074696f6e3c56657273696f6e656458636d3c28293e3e000138666f727761726465645f78636d73f11101bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e0000e9110000025400ed1104184f7074696f6e0404540121060108104e6f6e6500000010536f6d65040021060000010000f111000002f51100f511000004087501f91100f911000002210600fd110c4078636d5f72756e74696d655f617069731c6472795f72756e144572726f7200010834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001000001120418526573756c74080454010512044501fd110108084f6b04000512000000000c4572720400fd11000001000005120c4078636d5f72756e74696d655f617069731c6472795f72756e4058636d44727952756e4566666563747304144576656e740154000c0140657865637574696f6e5f726573756c74a109011c4f7574636f6d65000138656d69747465645f6576656e7473e91101285665633c4576656e743e000138666f727761726465645f78636d73f11101bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e000009120418526573756c7408045401000445010d120108084f6b040000000000000c45727204000d1200000100000d120c4078636d5f72756e74696d655f617069732c636f6e76657273696f6e73144572726f720001082c556e737570706f727465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001000011120418526573756c7408045401d501044501d1090108084f6b0400d501000000000c4572720400d1090000010000151204184f7074696f6e04045401d1090108104e6f6e6500000010536f6d650400d10900000100001912000002d109001d12085873746167696e675f6b7573616d615f72756e74696d653052756e74696d654572726f720001c41853797374656d0400010a01706672616d655f73797374656d3a3a4572726f723c52756e74696d653e00000010426162650400410a016c70616c6c65745f626162653a3a4572726f723c52756e74696d653e0001001c496e64696365730400490a017870616c6c65745f696e64696365733a3a4572726f723c52756e74696d653e0003002042616c616e6365730400a10a017c70616c6c65745f62616c616e6365733a3a4572726f723c52756e74696d653e0004001c5374616b696e670400f10a017870616c6c65745f7374616b696e673a3a4572726f723c52756e74696d653e0006001c53657373696f6e04001d0b017870616c6c65745f73657373696f6e3a3a4572726f723c52756e74696d653e0008001c4772616e64706104002d0b017870616c6c65745f6772616e6470613a3a4572726f723c52756e74696d653e000a0020547265617375727904004d0b017c70616c6c65745f74726561737572793a3a4572726f723c52756e74696d653e00120040436f6e76696374696f6e566f74696e6704007d0b01a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4572726f723c52756e74696d653e001400245265666572656e64610400c50b018070616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d653e0015005046656c6c6f7773686970436f6c6c6563746976650400d90b01390170616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a0a496e7374616e6365313e0016004c46656c6c6f77736869705265666572656e64610400e90b01f470616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e0017002457686974656c6973740400ed0b018070616c6c65745f77686974656c6973743a3a4572726f723c52756e74696d653e002c0018436c61696d730400f10b0158636c61696d733a3a4572726f723c52756e74696d653e0013001c5574696c6974790400f50b017870616c6c65745f7574696c6974793a3a4572726f723c52756e74696d653e0018001c536f63696574790400350c017870616c6c65745f736f63696574793a3a4572726f723c52756e74696d653e001a00205265636f766572790400450c017c70616c6c65745f7265636f766572793a3a4572726f723c52756e74696d653e001b001c56657374696e670400550c017870616c6c65745f76657374696e673a3a4572726f723c52756e74696d653e001c00245363686564756c657204006d0c018070616c6c65745f7363686564756c65723a3a4572726f723c52756e74696d653e001d001450726f78790400910c017070616c6c65745f70726f78793a3a4572726f723c52756e74696d653e001e00204d756c746973696704009d0c017c70616c6c65745f6d756c74697369673a3a4572726f723c52756e74696d653e001f0020507265696d6167650400bd0c017c70616c6c65745f707265696d6167653a3a4572726f723c52756e74696d653e00200020426f756e746965730400cd0c017c70616c6c65745f626f756e746965733a3a4572726f723c52756e74696d653e002300344368696c64426f756e746965730400d90c019470616c6c65745f6368696c645f626f756e746965733a3a4572726f723c52756e74696d653e00280068456c656374696f6e50726f76696465724d756c746950686173650400150d01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4572726f723c52756e74696d653e00250024566f7465724c6973740400250d01f470616c6c65745f626167735f6c6973743a3a4572726f723c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0027003c4e6f6d696e6174696f6e506f6f6c730400690d019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4572726f723c52756e74696d653e0029002c46617374556e7374616b6504007d0d018c70616c6c65745f666173745f756e7374616b653a3a4572726f723c52756e74696d653e002a004044656c6567617465645374616b696e670400890d01a070616c6c65745f64656c6567617465645f7374616b696e673a3a4572726f723c52756e74696d653e002f003c5374616b696e674168436c69656e740400ad0d01b870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e743a3a4572726f723c52756e74696d653e00300034436f6e66696775726174696f6e0400bd0d01a070617261636861696e735f636f6e66696775726174696f6e3a3a4572726f723c52756e74696d653e0033003450617261496e636c7573696f6e0400fd0d019070617261636861696e735f696e636c7573696f6e3a3a4572726f723c52756e74696d653e0035003050617261496e686572656e740400150e01a470617261636861696e735f70617261735f696e686572656e743a3a4572726f723c52756e74696d653e0036001450617261730400710e018070617261636861696e735f70617261733a3a4572726f723c52756e74696d653e0038001048726d700400a10e017c70617261636861696e735f68726d703a3a4572726f723c52756e74696d653e003c0034506172617344697370757465730400c10e018c70617261636861696e735f64697370757465733a3a4572726f723c52756e74696d653e003e00345061726173536c617368696e670400d50e018c70617261636861696e735f736c617368696e673a3a4572726f723c52756e74696d653e003f00684f6e44656d616e6441737369676e6d656e7450726f76696465720400050f019070617261636861696e735f6f6e5f64656d616e643a3a4572726f723c52756e74696d653e00400068436f726574696d6541737369676e6d656e7450726f76696465720400310f01b070617261636861696e735f61737369676e65725f636f726574696d653a3a4572726f723c52756e74696d653e004100245265676973747261720400390f017c70617261735f7265676973747261723a3a4572726f723c52756e74696d653e00460014536c6f74730400410f0154736c6f74733a3a4572726f723c52756e74696d653e0047002041756374696f6e730400550f016061756374696f6e733a3a4572726f723c52756e74696d653e0048002443726f77646c6f616e0400610f016463726f77646c6f616e3a3a4572726f723c52756e74696d653e00490020436f726574696d650400650f0160636f726574696d653a3a4572726f723c52756e74696d653e004a002458636d50616c6c65740400d10f016870616c6c65745f78636d3a3a4572726f723c52756e74696d653e006300304d65737361676551756575650400f10f019070616c6c65745f6d6573736167655f71756575653a3a4572726f723c52756e74696d653e006400244173736574526174650400f50f018470616c6c65745f61737365745f726174653a3a4572726f723c52756e74696d653e00650014426565667904000110017070616c6c65745f62656566793a3a4572726f723c52756e74696d653e00c8002852634d69677261746f7204001510018870616c6c65745f72635f6d69677261746f723a3a4572726f723c52756e74696d653e00ff000005011853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040234c5090400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000c90904000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000c109040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000d509040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01950101581830426c6f636b57656967687473d909010207a81a0a5303000b00204aa9d10113ffffffffffffffff4273bb1d00010b30f3708f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf0100004273bb1d00010b307bc3f9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000404273bb1d0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468e5093000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e204462576569676874ed094040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ef109ed04186b7573616d61347061726974792d6b7573616d61020000006a650f00000000005cc51ff1fa3f5d0cca01000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0d00000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c0100000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000fbc577b9d747efd6010000001a000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978850108020014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01010a00001042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100050a0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100b50120000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100b50120000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000bd0104000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100050a04000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510110a04000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000190a04000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301002d0804001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401003903200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000310a04000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000310a0400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100350a04002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01a50100103445706f63684475726174696f6e302058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d653020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e01410a01002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01c9010004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0002001c496e6469636573011c496e646963657304204163636f756e74730001040210450a0400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e01cd010180041c4465706f7369741840344dd2c207000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01490a03002042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402004d0a040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6020526573657276657301010402005d0a04000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200690a0400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a657301010402008d0a0400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e01dd01018410484578697374656e7469616c4465706f73697418405543de1300000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100800000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01a10a0400485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c69657201009d0740000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100a50a04000000019004604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00210028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e0000000005001c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100e10104000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e01009c10000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c65646765720001040200a90a0400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e14506179656500010405009804000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500a40800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500b10a04004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b6572730001040500d501040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e244163746976654572610000b90a040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805058508bd0a0c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f7665727669657700010805058508c90a040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c697070656401010805058508bd0a0c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c0505059508cd0a040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d65645265776172647301010805058508f501040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f72507265667301010805058508a40800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510d10a14000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100ac04000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000f10104000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e01009c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c61736865730101040510dd0a040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100c50904001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100010805058508e50a040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505850818040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e730001040500e90a0400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c617368010104059d08ed0a800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e384368696c6c5468726573686f6c640000f10104000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01e90101941c30486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000200002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e3c4d617856616c696461746f725365741010d007000004150120546865206162736f6c757465206d6178696d756d206f662077696e6e65722076616c696461746f727320746869732070616c6c65742073686f756c642072657475726e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e01f10a0600204f6666656e63657301204f6666656e636573081c5265706f7274730001040534f50a040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e6465780101080505fd0a59030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001b00000070028486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e730001040510fd070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e676500003903040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c617374290001b8000022001c53657373696f6e011c53657373696f6e1c2856616c696461746f72730100e1010400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100010b0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100090b0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050029020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405150b00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01250201bc04284b65794465706f73697418400000000000000000000000000000000004a42054686520616d6f756e7420746f2062652068656c64207768656e2073657474696e67206b6579732e011d0b08001c4772616e647061011c4772616e6470611c1453746174650100210b04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000250b040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c6564000039030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100290b04000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01410201c00c384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e012d0b0a0048417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100310b0400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100310b04000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c00205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510390b040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c7301003d0b040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510410b040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e3c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e016d0201d0182c5370656e64506572696f64101080510100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726ee50210000000000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c65744964490b2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f64101080c613000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e2c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e014d0b120040436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f7201010805053d08510bd800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500710b04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01710201790108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010c0890100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e017d0b1400245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210810b040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104058501a10b0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405850110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e017d0201890114445375626d697373696f6e4465706f7369741840554dd2c207000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73ad0b151a40000064726f6f740000000000000000000000000000000000000000000100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f746970706572000000000000000000000000000000640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e646572000000000000000000000032000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e646572000000000000000000000000000032000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e01c50b15005046656c6c6f7773686970436f6c6c656374697665015046656c6c6f7773686970436f6c6c656374697665182c4d656d626572436f756e7401010405850110100000000008690120546865206e756d626572206f66206d656d6265727320696e2074686520636f6c6c6563746976652077686f2068617665206174206c65617374207468652072616e6b206163636f7264696e6720746f2074686520696e64657830206f6620746865207665632e1c4d656d626572730001040500c90b0400049c205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e244964546f496e6465780001080505cd0b1004000461012054686520696e646578206f6620656163682072616e6b732773206d656d62657220696e746f207468652067726f7570206f66206d656d626572732077686f2068617665206174206c6561737420746861742072616e6b2e24496e646578546f49640001080505d10b000400085d0120546865206d656d6265727320696e2074686520636f6c6c65637469766520627920696e6465782e20416c6c20696e646963657320696e207468652072616e67652060302e2e4d656d626572436f756e74602077696c6c65012072657475726e2060536f6d65602c20686f77657665722061206d656d626572277320696e646578206973206e6f742067756172616e7465656420746f2072656d61696e20756e6368616e676564206f7665722074696d652e18566f74696e6700010802058508b908040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e34566f74696e67436c65616e75700001040210d50b04000001a10201b5080001d90b16004c46656c6c6f77736869705265666572656e6461014c46656c6c6f77736869705265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210dd0b040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104058501e50b0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405850110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01a50201c10814445375626d697373696f6e4465706f73697418400000000000000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f75741010c089010008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73ad0b150e2800006463616e646964617465730000000000000000000000000000000a0000003435261a0803000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0100646d656d626572730000000000000000000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d02006470726f66696369656e747300000000000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d03006466656c6c6f77730000000000000000000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d04006473656e696f722066656c6c6f777300000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d050064657870657274730000000000000000000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d06006473656e696f72206578706572747300000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0700646d6173746572730000000000000000000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d08006473656e696f72206d61737465727300000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0900646772616e64206d6173746572730000000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e01e90b17001c4f726967696e7300000000002b002457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c0001040534d50104000001a90201c5080001ed0b2c0028506172616d65746572730128506172616d65746572730428506172616d657465727300010402d908e9080400044c2053746f72656420706172616d65746572732e01ad0201d50800002e0018436c61696d730118436c61696d731418436c61696d730001040601031804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040601030903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040601031103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060001030400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e01f50201f508041850726566697838807c506179204b534d7320746f20746865204b7573616d61206163636f756e743a0001f10b13001c5574696c6974790001150301f908044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01f50b18001c536f6369657479011c536f63696574795828506172616d657465727300000509040004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e0c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e1c466f756e6465720000000400044820546865206669727374206d656d6265722e1048656164000000040004410120546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f7665642072616e6b2030206d656d6265727320696e2074686520736f63696574792e1452756c6573000034040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e1c4d656d626572730001040500f90b0400042101205468652063757272656e74206d656d6265727320616e642074686569722072616e6b2e20446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e1c5061796f7574730101040500050c44000000000000000000000000000000000004dc20496e666f726d6174696f6e20726567617264696e672072616e6b2d30207061796f7574732c207061737420616e64206675747572652e2c4d656d626572436f756e74010010100000000004490120546865206e756d626572206f66206974656d7320696e20604d656d62657273602063757272656e746c792e2028446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e29344d656d6265724279496e6465780001040510000400085d01205468652063757272656e74206974656d7320696e20604d656d6265727360206b6579656420627920746865697220756e6971756520696e6465782e204b657973206172652064656e73656c7920706f70756c61746564cc2060302e2e4d656d626572436f756e74602028646f6573206e6f7420696e636c75646520604d656d626572436f756e7460292e4053757370656e6465644d656d626572730001040500f90b04000401012054686520736574206f662073757370656e646564206d656d626572732c2077697468207468656972206f6c64206d656d62657273686970207265636f72642e28526f756e64436f756e74010010100000000004a020546865206e756d626572206f6620726f756e64732077686963682068617665207061737365642e104269647301000d0c040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e2843616e6469646174657300010402001d0c0400001c536b657074696300000004000454205468652063757272656e7420736b65707469632e14566f74657300010805057508250c040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e3c566f7465436c656172437572736f720001040500290c040004f420436c6561722d637572736f7220666f7220566f74652c206d61702066726f6d2043616e646964617465202d3e20284d617962652920437572736f722e204e6578744865616400002d0c04000c75012041742074686520656e64206f662074686520636c61696d20706572696f642c207468697320636f6e7461696e7320746865206d6f737420726563656e746c7920617070726f766564206d656d626572732028616c6f6e67207769746865012074686569722062696420616e6420726f756e64204944292077686f2069732066726f6d20746865206d6f737420726563656e7420726f756e64207769746820746865206c6f77657374206269642e20546865792077696c6c5c206265636f6d6520746865206e6577206048656164602e4c4368616c6c656e6765526f756e64436f756e74010010100000000004590120546865206e756d626572206f66206368616c6c656e676520726f756e64732074686572652068617665206265656e2e205573656420746f206964656e74696679207374616c6520446566656e646572566f7465732e24446566656e64696e670000310c04000459012054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642c20616c6f6e67207769746820612072756e6e696e672074616c6c79206f6620766f7465732e34446566656e646572566f74657300010805058508250c040004c820566f74657320666f722074686520646566656e6465722c206b65796564206279206368616c6c656e676520726f756e642e304e657874496e74616b6541740000100400040d01204e65787420696e74616b6520726f746174696f6e207363686564756c65642077697468205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d2e3c4e6578744368616c6c656e676541740000100400041901204e657874206368616c6c656e676520726f746174696f6e207363686564756c65642077697468205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d2e011d03010109242050616c6c65744964490b2070792f736f63696504682054686520736f6369657469657327732070616c6c6574206964304772616365537472696b657310100a00000004090120546865206d6178696d756d206e756d626572206f6620737472696b6573206265666f72652061206d656d62657220676574732066756e647320736c61736865642e2c506572696f645370656e641840040abf82280f00000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e30566f74696e67506572696f6410107fcdfdff0c550120546865206e756d626572206f66205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d20626c6f636b73206f6e207768696368206e65772063616e646964617465732073686f756c642062656020766f746564206f6e2e20546f67657468657220776974684d012060436c61696d506572696f64602c20746869732073756d7320746f20746865206e756d626572206f6620626c6f636b73206265747765656e2063616e64696461746520696e74616b6520706572696f64732e2c436c61696d506572696f6410108070000008550120546865206e756d626572206f66205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d20626c6f636b73206f6e207768696368206e65772063616e646964617465732063616e20636c61696da0207468656972206d656d6265727368697020616e6420626520746865206e616d656420686561642e3c4d61784c6f636b4475726174696f6e1010004eed0004a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e3c4368616c6c656e6765506572696f6410107fcdfdff04490120546865206e756d626572206f66205b436f6e6669673a3a426c6f636b4e756d62657250726f76696465725d20626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e284d61785061796f757473101008000000040d0120546865206d6178696d756d206e756d626572206f66207061796f7574732061206d656d626572206d617920686176652077616974696e6720756e636c61696d65642e1c4d617842696473101000020000049020546865206d6178696d756d206e756d626572206f662062696473206174206f6e63652e01350c1a00205265636f7665727901205265636f766572790c2c5265636f76657261626c650001040500390c04000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e404163746976655265636f76657269657300010805057508410c0400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e1450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e0121030109091044436f6e6669674465706f73697442617365184004821bce26000000000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e4c467269656e644465706f736974466163746f7218409a2669e1030000000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e3c5265636f766572794465706f736974184004821bce2600000000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e01450c1b001c56657374696e67011c56657374696e67081c56657374696e670001040200490c040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100510c04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01290301150908444d696e5665737465645472616e736665721840344dd2c207000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001550c1c00245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e184167656e64610101040510590c0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c52657472696573000104023903690c040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b757000010405043903040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01310301190908344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e016d0c1d001450726f7879011450726f7879081c50726f786965730101040500710c4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500810c44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e013d03011d09184050726f78794465706f736974426173651840b00953489b000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f721840b4a6904100000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173651840b00953489b000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f721840684d218300000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01910c1e00204d756c746973696701204d756c746973696704244d756c7469736967730001080502e507950c040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0149030125090c2c4465706f736974426173651840f01945e79b000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f7218408006943f0000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e019d0c1f0020507265696d6167650120507265696d6167650c24537461747573466f720001040634a10c0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f720001040634a90c0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f7200010406fd07b90c0400000155030129090001bd0c200020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510c10c0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510c90c0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301003d0b040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e015d03012d092444426f756e74794465706f736974426173651840344dd2c207000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000000000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6410100004170318f4205468652074696d65206c696d697420666f7220612063757261746f7220746f20616374206265666f7265206120626f756e747920657870697265732e0055012054686520706572696f64207468617420737461727473207768656e20612063757261746f7220697320617070726f7665642c20647572696e672077686963682074686579206d7573742065786563757465206f725501207570646174652074686520626f756e7479207669612060657874656e645f626f756e74795f657870697279602e204966206d69737365642c2074686520626f756e747920657870697265732c20616e642074686555012063757261746f72206d617920626520736c61736865642e2049662060426c6f636b4e756d626572466f723a3a4d4158602c20626f756e7469657320737461792061637469766520696e646566696e6974656c792cb82072656d6f76696e6720746865206e65656420666f722060657874656e645f626f756e74795f657870697279602e6043757261746f724465706f7369744d756c7469706c696572e5021020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d61781102440104821bce260000000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696e1102440152a1aec6000000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d1840689aa4850f00000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184055a0fc010000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501cd0c2300344368696c64426f756e7469657301344368696c64426f756e746965731c404368696c64426f756e7479436f756e740100101000000000086d0120444550524543415445443a205265706c6163656420776974682060506172656e74546f74616c4368696c64426f756e74696573602073746f72616765206974656d206b656570696e672064656469636174656420636f756e7473550120666f72206561636820706172656e7420626f756e74792e204e756d626572206f6620746f74616c206368696c6420626f756e746965732e2057696c6c2062652072656d6f76656420696e204d617920323032352e4c506172656e744368696c64426f756e74696573010104051010100000000008cc204e756d626572206f6620616374697665206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e60506172656e74546f74616c4368696c64426f756e746965730101040510101000000000044101204e756d626572206f6620746f74616c206368696c6420626f756e746965732070657220706172656e7420626f756e74792c20696e636c7564696e6720636f6d706c6574656420626f756e746965732e344368696c64426f756e7469657300010805053903d10c04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e644368696c64426f756e74794465736372697074696f6e73563100010805053903c90c04000c290120546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e20496e6465786564206279206028706172656e745f69642c206368696c645f696429602e006d012054686973206974656d207265706c616365732074686520604368696c64426f756e74794465736372697074696f6e73602073746f72616765206974656d2066726f6d207468652056302073746f726167652076657273696f6e2e505630546f56314368696c64426f756e7479496473000104051039030400145d0120546865206d617070696e67206f6620746865206368696c6420626f756e7479206964732066726f6d2073746f726167652076657273696f6e206056306020746f20746865206e657720605631602076657273696f6e2e006d0120546865206056306020696473206261736564206f6e20746f74616c206368696c6420626f756e747920636f756e74205b604368696c64426f756e7479436f756e74605d602e2054686520605631602076657273696f6e206964734101206261736564206f6e20746865206368696c6420626f756e747920636f756e742070657220706172656e7420626f756e7479205b60506172656e74546f74616c4368696c64426f756e74696573605d2e650120546865206974656d20696e74656e64656420736f6c656c7920666f7220636c69656e7420636f6e76656e69656e636520616e64206e6f74207573656420696e207468652070616c6c6574277320636f7265206c6f6769632e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01610301310908644d61784163746976654368696c64426f756e7479436f756e74101064000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d1840a4425d8d0100000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01d90c280068456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e74506861736501003d090400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000dd0c04000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e20536e617073686f740000f90c0400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e40536e617073686f744d6574616461746100009d040400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100050d0400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510110d04001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f7265000099040400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e0165030135093c544265747465725369676e65645468726573686f6c649c1000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479302065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687428400b88d8663c550113a3703d0ad7a370bd1494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e656452657761726442617365184000e87648170000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f73697442797465184090f7040000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e284d617857696e6e6572731010d00700000cd4204d6178696d756d206e756d626572206f662077696e6e657273207468617420616e20656c656374696f6e20737570706f7274732e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e4c4d61784261636b65727350657257696e6e65721010d43000000c3101204d6178696d756d206e756d626572206f6620766f7465727320746861742063616e20737570706f727420612077696e6e657220696e20616e20656c656374696f6e20736f6c7574696f6e2e00e82054686973206973206e656564656420746f20656e7375726520656c656374696f6e20636f6d7075746174696f6e20697320626f756e6465642e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687428400b88d8663c550113a3703d0ad7a370bd00544d696e65724d6178566f746573506572566f746572101018000000003c4d696e65724d617857696e6e6572731010d00700000001150d250024566f7465724c6973740124566f7465724c69737414244c6973744e6f6465730001040500190d04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c6973744261677300010405301d0d04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e504e6578744e6f64654175746f5265626167676564000000040008050120506f696e74657220746861742072656d656d6265727320746865206e657874206e6f646520746861742077696c6c206265206175746f2d72656261676765642e0101205768656e20604e6f6e65602c20746865206e657874207363616e2077696c6c2073746172742066726f6d20746865206c697374206865616420616761696e2e104c6f636b0000d50104001084204c6f636b20616c6c207570646174657320746f20746869732070616c6c65742e00390120496620616e79206e6f646573206e65656473207570646174696e672c2072656d6f76616c206f72206164646974696f6e2064756520746f20612074656d706f72617279206c6f636b2c2074686574205b6043616c6c3a3a7265626167605d2063616e20626520757365642e01b90401450908344261675468726573686f6c6473210d0919210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e504d61784175746f5265626167506572426c6f636b101000000000103501204d6178696d756d206e756d626572206f66206163636f756e74732074686174206d61792062652072652d626167676564206175746f6d61746963616c6c7920696e20606f6e5f69646c65602e00510120412076616c7565206f662060306020286f627461696e656420627920636f6e6669677572696e67206074797065204d61784175746f5265626167506572426c6f636b203d2028293b60292064697361626c6573342074686520666561747572652e01250d27003c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e00009c04000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d6265727300010405002d0d04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c730001040510390d040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c730001040510490d04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f7261676500010405104d0d04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d657461646174610101040510650d0400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e730101040500d9040402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e01bd040149090c2050616c6c65744964490b2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101020000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01690d29002c46617374556e7374616b65012c46617374556e7374616b651010486561640000710d04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e01f104015109041c4465706f7369741840344dd2c2070000000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e017d0d2a004044656c6567617465645374616b696e67014044656c6567617465645374616b696e67102844656c656761746f72730001040500810d040010a4204d6170206f662044656c656761746f727320746f207468656972206044656c65676174696f6e602e00610120496d706c656d656e746174696f6e206e6f74653a20576520617265206e6f74207573696e67206120646f75626c65206d61702077697468206064656c656761746f726020616e6420606167656e7460206163636f756e746101206173206b6579732073696e63652077652077616e7420746f2072657374726963742064656c656761746f727320746f2064656c6567617465206f6e6c7920746f206f6e65206163636f756e7420617420612074696d652e50436f756e746572466f7244656c656761746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184167656e74730001040500850d04000488204d6170206f6620604167656e746020746f20746865697220604c6564676572602e40436f756e746572466f724167656e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000015509082050616c6c65744964490b2070792f646c73746b049020496e6a6563746564206964656e74696669657220666f72207468652070616c6c65742e4c536c6173685265776172644672616374696f6e9c1080969800045101204672616374696f6e206f662074686520736c617368207468617420697320726577617264656420746f207468652063616c6c6572206f662070656e64696e6720736c61736820746f20746865206167656e742e01890d2f003c5374616b696e674168436c69656e74013c5374616b696e674168436c69656e74243056616c696461746f7253657400008d0d04000cf820546865207175657565642076616c696461746f72207365747320666f72206120676976656e20706c616e6e696e672073657373696f6e20696e6465782e00ac20546869732069732072656365697665642076696120612063616c6c2066726f6d2041737365744875622e70496e636f6d706c65746556616c696461746f725365745265706f72740000f9040400049020416e20696e636f6d706c6574652076616c696461746f7220736574207265706f72742e3c56616c696461746f72506f696e74730101040500101000000000109420416c6c206f662074686520706f696e7473206f66207468652076616c696461746f72732e006101205468697320697320706f70756c6174656420647572696e6720612073657373696f6e2c20616e6420697320666c757368656420616e642073656e74206f76657220766961205b6053656e64546f4173736574487562605d5420617420656163682073657373696f6e20656e642e104d6f64650100fd04040010d020496e64696361746573207468652063757272656e74206f7065726174696e67206d6f6465206f66207468652070616c6c65742e00710120546869732076616c75652064657465726d696e657320686f77207468652070616c6c6574206265686176657320696e20726573706f6e736520746f20696e636f6d696e6720616e64206f7574676f696e67206d657373616765732c690120706172746963756c61726c7920776865746865722069742073686f756c642065786563757465206c6f676963206469726563746c792c2064656665722069742c206f722064656c656761746520697420656e746972656c792e704e65787453657373696f6e4368616e67657356616c696461746f7273000010040020690120412073746f726167652076616c7565207468617420697320736574207768656e206120606e65775f73657373696f6e602067697665732061206e65772076616c696461746f722073657420746f207468652073657373696f6ea42070616c6c65742c20616e6420697320636c6561726564206f6e20746865206e6578742063616c6c2e006d012054686520696e6e65722075333220697320746865206964206f66207468652073616964206163746976617465642076616c696461746f72207365742e205768696c65206e6f742072656c6576616e7420686572652c20676f6f64fc20746f206b6e6f7720746869732069732074686520706c616e6e696e672065726120696e646578206f66207374616b696e672d6173796e63206f6e2041482e005901204f6e636520636c65617265642c207765206b6e6f7720612076616c696461746f722073657420686173206265656e206163746976617465642c20616e64207468657265666f72652077652063616e2073656e642061442074696d657374616d7020746f2041482e5456616c696461746f725365744170706c69656441740000100400102501205468652073657373696f6e20696e64657820617420776869636820746865206c617465737420656c65637465642076616c696461746f722073657420776173206170706c6965642e0075012054686973206973207573656420746f2064657465726d696e6520696620616e206f6666656e63652c20676976656e20612073657373696f6e20696e6465782c20697320696e207468652063757272656e74206163746976652065726120206f72206e6f742e544f7574676f696e6753657373696f6e5265706f72740000910d040010dc20412073657373696f6e207265706f72742074686174206973206f7574676f696e672c20616e642073686f756c642062652073656e742e00750120546869732077696c6c20626520617474656d7074656420746f2062652073656e742c20706f737369626c79206f6e20657665727920606f6e5f696e697469616c697a65602063616c6c2c20756e74696c2069742069732073656e742cf4206f7220746865207365636f6e642076616c75652072656163686573207a65726f2c20617420776869636820706f696e742077652064726f702069742e604f6666656e636553656e6451756575654f6666656e63657301010405109d0d040004310120496e7465726e616c2073746f72616765206974656d206f66205b604f6666656e636553656e645175657565605d2e2053686f756c64206e6f742062652075736564206d616e75616c6c792e584f6666656e636553656e645175657565437572736f72010010100000000004310120496e7465726e616c2073746f72616765206974656d206f66205b604f6666656e636553656e645175657565605d2e2053686f756c64206e6f742062652075736564206d616e75616c6c792e01f5040159090001ad0d30004050617261636861696e734f726967696e000000000032107901205468657265206973206e6f2077617920746f20726567697374657220616e206f726967696e207479706520696e2060636f6e7374727563745f72756e74696d656020776974686f757420612070616c6c657420746865206f726967696e302062656c6f6e677320746f2e0075012054686973206d6f64756c652066756c66696c6c73206f6e6c79207468652073696e676c6520707572706f7365206f6620686f7573696e672074686520604f726967696e6020696e2060636f6e7374727563745f72756e74696d65602e34436f6e66696775726174696f6e0134436f6e66696775726174696f6e0c30416374697665436f6e6669670100b10d410300003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c901809698000000000000000000000000000500000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3850656e64696e67436f6e666967730100b50d04001c7c2050656e64696e6720636f6e66696775726174696f6e206368616e6765732e00590120546869732069732061206c697374206f6620636f6e66696775726174696f6e206368616e6765732c2065616368207769746820612073657373696f6e20696e6465782061742077686963682069742073686f756c6430206265206170706c6965642e00610120546865206c69737420697320736f7274656420617363656e64696e672062792073657373696f6e20696e6465782e20416c736f2c2074686973206c6973742063616e206f6e6c7920636f6e7461696e206174206d6f7374fc2032206974656d733a20666f7220746865206e6578742073657373696f6e20616e6420666f722074686520607363686564756c65645f73657373696f6e602e58427970617373436f6e73697374656e6379436865636b01002004000861012049662074686973206973207365742c207468656e2074686520636f6e66696775726174696f6e20736574746572732077696c6c206279706173732074686520636f6e73697374656e637920636865636b732e2054686973b4206973206d65616e7420746f2062652075736564206f6e6c7920617320746865206c617374207265736f72742e010105000001bd0d33002c5061726173536861726564012c5061726173536861726564104c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100c10d040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100c50d0400085501205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e1d0120636f6e73656e7375732e20546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e4c416c6c6f77656452656c6179506172656e74730100c90d140000000000046c20416c6c20616c6c6f7765642072656c61792d706172656e74732e01250500000034003450617261496e636c7573696f6e013450617261496e636c7573696f6e04085631000104059102f50d04001461012043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e205468657920666f726d206120636861696e207374617274696e672066726f6d20746865206c61746573746c20696e636c756465642068656164206f662074686520706172612e610120557365206120646966666572656e742070726566697820706f73742d6d6967726174696f6e20746f2076312c2073696e636520746865207630206050656e64696e67417661696c6162696c697479602073746f72616765710120776f756c64206f74686572776973652068617665207468652065786163742073616d652070726566697820776869636820636f756c6420636175736520756e646566696e6564206265686176696f7572207768656e20646f696e673c20746865206d6967726174696f6e2e0129050161090001fd0d35003050617261496e686572656e74013050617261496e686572656e740820496e636c756465640000d501040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e304f6e436861696e566f7465730000010e04000445012053637261706564206f6e20636861696e206461746120666f722065787472616374696e67207265736f6c7665642064697370757465732061732077656c6c206173206261636b696e6720766f7465732e012d05000001150e360034506172615363686564756c65720134506172615363686564756c65720c3c56616c696461746f7247726f7570730100190e04001c6d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00490120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e6420706172617468726561646901206d756c7469706c65786572732e20526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a20736166655020757070657220626f756e642061742031306b2e4453657373696f6e5374617274426c6f636b01001010000000001c69012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e733c2068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e28436c61696d517565756501001d0e0400085901204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20546865206056656344657175656020726570726573656e7473207468652061737369676e6d656e747320746f20626560207363686564756c6564206f6e207468617420636f72652e000000003700145061726173011450617261735840507666416374697665566f74654d6170000104056905310e040010b420416c6c2063757272656e746c792061637469766520505646207072652d636865636b696e6720766f7465732e002c20496e76617269616e743a7501202d20546865726520617265206e6f20505646207072652d636865636b696e6720766f74657320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e44507666416374697665566f74654c6973740100410e040004350120546865206c697374206f6620616c6c2063757272656e746c79206163746976652050564620766f7465732e20417578696c6961727920746f2060507666416374697665566f74654d6170602e2850617261636861696e730100450e040010690120416c6c206c6561736520686f6c64696e672070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e204f6e2064656d616e642070617261636861696e7320617265206e6f742820696e636c756465642e00e820436f6e7369646572207573696e6720746865205b6050617261636861696e734361636865605d2074797065206f66206d6f64696679696e672e38506172614c6966656379636c6573000104059102490e040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e1448656164730001040591028905040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e444d6f7374526563656e74436f6e746578740001040591021004000429012054686520636f6e74657874202872656c61792d636861696e20626c6f636b206e756d62657229206f6620746865206d6f737420726563656e742070617261636861696e20686561642e3c43757272656e74436f646548617368000104059102690504000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f646548617368000104054d0e690504001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d657461010104059102510e0800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b020746f206b65657020697420617661696c61626c6520666f7220617070726f76616c20636865636b6572732e3c50617374436f64655072756e696e6701005d0e04001869012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f6465690120776173207265706c616365642e204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465643d01206865696768742061742077686963682074686520636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e6d01205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f646d01207374617274696e672066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f64655570677261646573000104059102100400103d012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f7220612070617261636861696e2e00650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e50467574757265436f64655570677261646573417401005d0e040020ac20546865206c697374206f66207570636f6d696e672066757475726520636f64652075706772616465732e006d012045616368206974656d20697320612070616972206f66207468652070617261636861696e20616e642074686520657870656374656420626c6f636b2061742077686963682074686520757067726164652073686f756c642062655101206170706c6965642e2054686520757067726164652077696c6c206265206170706c6965642061742074686520676976656e2072656c617920636861696e20626c6f636b2e20496e20636f6e747261737420746f7501205b60467574757265436f64655570677261646573605d207468697320636f646520757067726164652077696c6c206265206170706c696564207265676172646c657373207468652070617261636861696e206d616b696e6720616e79442070726f6772657373206f72206e6f742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e38467574757265436f646548617368000104059102690504000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e48417574686f72697a6564436f646548617368000104059102610e0400046d012054686520636f6465206861736820617574686f72697a6174696f6e7320666f72206120706172612077686963682077696c6c2065787069726520606578706972655f6174602060426c6f636b4e756d626572466f723c543e602e5055706772616465476f41686561645369676e616c000104059102650e040028750120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652c2070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e550120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e6775012070617261636861696e2063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c20746865702076616c7565206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c000104059102690e040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e7301005d0e04000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e67557067726164657301005d0e0400189020546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e0071012045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b206974402069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e7351756575650101040510450e04000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e657369730001040591026d0e040010a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e006501204e4f5445207468617420616674657220505646207072652d636865636b696e6720697320656e61626c65642074686520706172612067656e65736973206172672077696c6c2068617665206974277320636f646520736574610120746f20656d7074792e20496e73746561642c2074686520636f64652077696c6c20626520736176656420696e746f207468652073746f726167652072696768742061776179207669612060436f6465427948617368602e38436f64654279486173685265667301010406690510100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f64654279486173680001040669058505040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01b9050171090440556e7369676e65645072696f726974793020ffffffffffffffff0001710e38002c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a65640000d50104002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e00710120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e657501206f66207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c659020666f72207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100750e04001c682042756666657265642073657373696f6e206368616e6765732e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e01c10500000039000c446d70010c446d700c54446f776e776172644d6573736167655175657565730101040591027d0e040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d65737361676551756575654865616473010104059102348000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e4444656c6976657279466565466163746f720101040591029d0740000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e000000003a001048726d70011048726d70305c48726d704f70656e4368616e6e656c526571756573747300010405c905850e040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c6973740100890e0400006c48726d704f70656e4368616e6e656c52657175657374436f756e740101040591021010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e590120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732074686174206861730501206028582c205f296020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e740101040591021010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c526571756573747300010405c905d50104001c7101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e2101206368616e67652e205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c6973740100890e0400003848726d7057617465726d61726b7300010405910210040010b8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a5501202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612c20202073657373696f6e2e3048726d704368616e6e656c7300010405c9058d0e04000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e646578010104059102450e040034710120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f7369746520736964652e1420492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a5101202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028492c205029602e4d01202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e646578010104059102450e0400004c48726d704368616e6e656c436f6e74656e747301010405c905910e040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c44696765737473010104059102990e0400186901204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a20576861742070617261732073656e742061206d657373616765206174e42074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e20496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e6d01202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468655420202073616d6520626c6f636b206e756d6265722e01c5050175090001a10e3c003c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f145041737369676e6d656e744b657973556e736166650100a50e04000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610a90e04000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e2c4163636f756e744b6579730001040610e1010400047101205468652076616c696461746f72206163636f756e74206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732e5453657373696f6e4578656375746f72506172616d7300010406100905040004c4204578656375746f7220706172616d657465722073657420666f72206120676976656e2073657373696f6e20696e646578000000003d00345061726173446973707574657301345061726173446973707574657314444c6173745072756e656453657373696f6e000010040008010120546865206c617374207072756e65642073657373696f6e2c20696620616e792e20416c6c20646174612073746f7265642062792074686973206d6f64756c6554207265666572656e6365732073657373696f6e732e2044697370757465730001080502b50eb90e040004050120416c6c206f6e676f696e67206f7220636f6e636c7564656420646973707574657320666f7220746865206c617374207365766572616c2073657373696f6e732e444261636b6572734f6e44697370757465730001080502b50ebd0e0400089c204261636b696e6720766f7465732073746f72656420666f72206561636820646973707574652e8c20546869732073746f72616765206973207573656420666f7220736c617368696e672e20496e636c756465640001080502b50e10040008450120416c6c20696e636c7564656420626c6f636b73206f6e2074686520636861696e2c2061732077656c6c2061732074686520626c6f636b206e756d62657220696e207468697320636861696e207468617459012073686f756c64206265207265766572746564206261636b20746f206966207468652063616e64696461746520697320646973707574656420616e642064657465726d696e656420746f20626520696e76616c69642e1846726f7a656e0100a0040010110120576865746865722074686520636861696e2069732066726f7a656e2e2053746172747320617320604e6f6e65602e205768656e20746869732069732060536f6d65602c35012074686520636861696e2077696c6c206e6f742061636365707420616e79206e65772070617261636861696e20626c6f636b7320666f72206261636b696e67206f7220696e636c7573696f6e2c090120616e64206974732076616c756520696e6469636174657320746865206c6173742076616c696420626c6f636b206e756d62657220696e2074686520636861696e2ef82049742063616e206f6e6c7920626520736574206261636b20746f20604e6f6e656020627920676f7665726e616e636520696e74657276656e74696f6e2e01cd050179090001c10e3e00345061726173536c617368696e6701345061726173536c617368696e670840556e6170706c696564536c61736865730001080502b50ec50e040004902056616c696461746f72732070656e64696e67206469737075746520736c61736865732e4856616c696461746f72536574436f756e747300010405101004000484206056616c696461746f72536574436f756e7460207065722073657373696f6e2e01d105000001d50e3f00684f6e44656d616e6441737369676e6d656e7450726f766964657201684f6e44656d616e6441737369676e6d656e7450726f76696465721838506172614964416666696e697479000104059102d90e04000c7101204d617073206120605061726149646020746f2060436f7265496e6465786020616e64206b6565707320747261636b206f6620686f77206d616e792061737369676e6d656e747320746865207363686564756c65722068617320696e5d012069742773206c6f6f6b61686561642e204b656570696e6720747261636b206f66207468697320616666696e6974792070726576656e747320706172616c6c656c20657865637574696f6e206f66207468652073616d659c206050617261496460206f6e2074776f206f72206d6f72652060436f7265496e6465786065732e2c51756575655374617475730100dd0e64000064a7b3b6e00d000000000000000000000000000000000004dc204f766572616c6c20737461747573206f662071756575652028626f74682066726565202b20616666696e69747920656e7472696573292c46726565456e74726965730100f10e0400046101205072696f7269747920717565756520666f7220616c6c206f726465727320776869636820646f6e27742079657420286f72206e6f7420616e79206d6f726529206861766520616e7920636f726520616666696e6974792e3c416666696e697479456e7472696573010104056909f10e040004490120517565756520656e74726965732074686174206172652063757272656e746c7920626f756e6420746f206120706172746963756c617220636f72652064756520746f20636f726520616666696e6974792e1c526576656e75650100fd0e040004fc204b6565707320747261636b206f6620616363756d756c6174656420726576656e75652066726f6d206f6e2064656d616e64206f726465722073616c65732e1c43726564697473010104020018400000000000000000000000000000000004b8204b6565707320747261636b206f662063726564697473206f776e65642062792065616368206163636f756e742e01e1050185090c4c5472616666696344656661756c7456616c75659d0740000064a7b3b6e00d000000000000000004cc205468652064656661756c742076616c756520666f72207468652073706f742074726166666963206d756c7469706c6965722e504d6178486973746f726963616c526576656e75651010a000000008d420546865206d6178696d756d206e756d626572206f6620626c6f636b7320736f6d6520686973746f726963616c20726576656e75656020696e666f726d6174696f6e2073746f72656420666f722e2050616c6c65744964490b2070792f6f6e646d6404b4204964656e74696669657220666f722074686520696e7465726e616c20726576656e75652062616c616e63652e01050f400068436f726574696d6541737369676e6d656e7450726f76696465720168436f726574696d6541737369676e6d656e7450726f76696465720834436f72655363686564756c657300010404090f0d0f0400106c205363686564756c65642061737369676e6d656e7420736574732e006d012041737369676e6d656e7473206173206f662074686520676976656e20626c6f636b206e756d6265722e20546865792077696c6c20676f20696e746f207374617465206f6e63652074686520626c6f636b206e756d626572206973d020726561636865642028616e64207265706c6163652077686174657665722077617320696e207468657265206265666f7265292e3c436f726544657363726970746f7273010104046909110f08000010a02041737369676e6d656e7473207768696368206172652063757272656e746c79206163746976652e00690120546865792077696c6c206265207069636b65642066726f6d206050656e64696e6741737369676e6d656e747360206f6e636520776520726561636820746865207363686564756c656420626c6f636b206e756d62657220696e58206050656e64696e6741737369676e6d656e7473602e00000001310f41002452656769737472617201245265676973747261720c2c50656e64696e67537761700001040591029102040004642050656e64696e672073776170206f7065726174696f6e732e145061726173000104059102350f040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0071012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d61795501206f6e6c7920646f20736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e65787446726565506172614964010091021000000000046020546865206e65787420667265652060506172614964602e01e505018909082c506172614465706f736974184000409452a3030000000000000000000008d420546865206465706f73697420746f206265207061696420746f2072756e2061206f6e2d64656d616e642070617261636861696e2e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f73697450657242797465184055a0fc0100000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01390f460014536c6f74730114536c6f747304184c65617365730101040591023d0f040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e006101205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f66207468652901207365636f6e642076616c756573206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e01e905018d09082c4c65617365506572696f641010803a090004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f666673657410100000000004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01410f47002041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f00003903040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405450f18040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510490f04000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e01ed050191091030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001550f48002443726f77646c6f616e012443726f77646c6f616e101446756e6473000104059102590f0400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e657752616973650100450e0400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787446756e64496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c652066756e6420696e64657801f5050195090c2050616c6c65744964490b2070792f6366756e64080d01206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c6420626564206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e1840180ca5d4e8000000000000000000000008610120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c792062657c206174206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01610f490020436f726574696d6500010906019909082042726f6b657249641010ed03000004882054686520506172614964206f662074686520636f726574696d6520636861696e2e4442726f6b6572506f744c6f636174696f6e41018c0101006d6f646c70792f62726f6b65000000000000000000000000000000000000000004842054686520636f726574696d6520636861696e20706f74206c6f636174696f6e2e01650f4a002458636d50616c6c6574012458636d50616c6c65743c305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230690f0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e00010805027d0f10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f7469666965727300010805027d0f30040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f746966795461726765747300010805027d0f810f04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100850f04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e0000910f0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202990f9d0f040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200ad0f040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d0000d9060400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e44417574686f72697a6564416c6961736573000104027501b90f04000c6501204d6170206f6620617574686f72697a656420616c696173657273206f66206c6f63616c206f726967696e732e2045616368206c6f63616c206c6f636174696f6e2063616e20617574686f72697a652061206c697374206f665901206f74686572206c6f636174696f6e7320746f20616c69617320696e746f2069742e204561636820616c6961736572206973206f6e6c792076616c696420756e74696c2069747320696e6e65722060657870697279603820626c6f636b206e756d6265722e011d06019d091044556e6976657273616c4c6f636174696f6e41010c0109030484205468697320636861696e277320556e6976657273616c204c6f636174696f6e2e504164766572746973656458636d56657273696f6e10100500000008250120546865206c617465737420737570706f727465642076657273696f6e2074686174207765206164766572746973652e2047656e6572616c6c79206a7573742073657420697420746f84206070616c6c65745f78636d3a3a43757272656e7458636d56657273696f6e602e284d61784c6f636b65727310100800000004190120546865206d6178696d756d206e756d626572206f66206c6f63616c2058434d206c6f636b73207468617420612073696e676c65206163636f756e74206d617920686176652e584d617852656d6f74654c6f636b436f6e73756d65727310100000000004fc20546865206d6178696d756d206e756d626572206f6620636f6e73756d65727320612073696e676c652072656d6f7465206c6f636b206d617920686176652e01d10f6300304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f72010104059107d90f74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c536572766963654865616400009107040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505e50fe90f0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e018d0701ad0910204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010100000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e34536572766963655765696768741d0740010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d6178536572766963655765696768741d0740010700a0db215d133333333333333333145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01f10f64002441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e617469766500010402d49d0704000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e64296001990701b5090001f50f650014426565667901144265656679142c417574686f7269746965730100f90f04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100f90f040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b0100a004000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e01a107000c384d6178417574686f7269746965731010a086010004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e010110c8000c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000c9003042656566794d6d724c656166013042656566794d6d724c65616608404265656679417574686f72697469657301000510b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f72697469657301000510b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e00000000ca002852634d69677261746f72012852634d69677261746f724c4052634d6967726174696f6e53746167650100dd0704000484205468652052656c617920436861696e206d6967726174696f6e2073746174652e2852634163636f756e74730001040500091004000871012048656c7065722073746f72616765206974656d20746f206f627461696e20616e642073746f726520746865206b6e6f776e206163636f756e747320746861742073686f756c64206265206b657074207061727469616c6c79206f72582066756c6c79206f6e2052656c617920436861696e2e50436f756e746572466f7252634163636f756e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704452634d6967726174656442616c616e636501000d10800000000000000000000000000000000000000000000000000000000000000000044d012048656c7065722073746f72616765206974656d20746f2073746f72652074686520746f74616c2062616c616e636520746861742073686f756c64206265206b657074206f6e2052656c617920436861696e2e6052634d6967726174656442616c616e63654172636869766501000d108000000000000000000000000000000000000000000000000000000000000000001861012048656c7065722073746f72616765206974656d20746f2073746f72652074686520746f74616c2062616c616e636520746861742073686f756c64206265206b657074206f6e2052656c617920436861696e206166746572510120697420697320636f6e73756d65642066726f6d20746865206052634d6967726174656442616c616e6365602073746f72616765206974656d20616e642073656e7420746f20746865204173736574204875622e0055012054686973206c657420757320746f2074616b65207468652076616c75652066726f6d20746865206052634d6967726174656442616c616e6365602073746f72616765206974656d20616e64206b656570207468656d0120605369676e616c4d6967726174696f6e46696e6973686020737461676520746f206265206964656d706f74656e74207768696c652070726573657276696e672074686573652076616c75657320666f7220746573747320616e644c206c6174657220646973636f7665726965732e4850656e64696e6758636d4d657373616765730001040534d90604001468205468652070656e64696e672058434d206d657373616765732e004d0120436f6e7461696e732064617461206d6573736167657320746861742068617665206265656e2073656e7420746f207468652041737365742048756220627574206e6f742079657420636f6e6669726d65642e004d0120556e636f6e6669726d6564206d657373616765732063616e20626520726573656e742062792063616c6c696e6720746865205b6050616c6c65743a3a726573656e645f78636d605d2066756e6374696f6e2e70436f756e746572466f7250656e64696e6758636d4d65737361676573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706c5075726550726f787943616e646964617465734d6967726174656400010405002004000c3901204163636f756e7473207468617420757365207468652070726f78792070616c6c657420746f2064656c6567617465207065726d697373696f6e7320616e642068617665206e6f206e6f6e63652e006d0120426f6f6c65616e2076616c7565206973207768657468657220746865792068617665206265656e206d6967726174656420746f20746865204173736574204875622e204e656564656420666f72206964656d706f74656e63792e4450656e64696e6758636d5175657269657300010405303404001c4d01205468652070656e64696e672058434d20726573706f6e7365207175657269657320616e642074686569722058434d2068617368207265666572656e63696e6720746865206d65737361676520696e2074686580205b6050656e64696e6758636d4d65737361676573605d2073746f726167652e006101205468652060517565727949646020697320746865206964656e7469666965722066726f6d20746865205b6070616c6c65745f78636d605d2071756572792068616e646c65722072656769737472792e205468652058434d09012070616c6c65742077696c6c206e6f746966792061626f75742074686520737461747573206f6620746865206d6573736167652062792063616c6c696e67207468651d01205b6050616c6c65743a3a726563656976655f71756572795f726573706f6e7365605d2066756e6374696f6e2077697468207468652060517565727949646020616e64207468652820726573706f6e73652e50556e70726f6365737365644d73674275666665720000100400044101204d616e75616c206f7665727269646520666f7220607479706520556e70726f6365737365644d73674275666665723a204765743c7533323e602e204c6f6f6b20746865726520666f7220646f63732e604168556d7051756575655072696f72697479436f6e6669670100a108040018e820546865207072696f72697479206f66207468652041737365742048756220554d5020717565756520647572696e67206d6967726174696f6e2e00750120436f6e74726f6c7320686f77207468652041737365742048756220554d502028557077617264204d6573736167652050617373696e67292071756575652069732070726f6365737365642072656c617469766520746f206f7468657259012071756575657320647572696e6720746865206d6967726174696f6e2070726f636573732e20546869732068656c707320656e737572652074696d656c792070726f63657373696e67206f66206d6967726174696f6e6901206d657373616765732e205468652064656661756c74207072696f72697479207061747465726e20697320646566696e656420696e207468652070616c6c657420636f6e66696775726174696f6e2c206275742063616e206265b0206f76657272696464656e20627920612073746f726167652076616c7565206f66207468697320747970652e1c4d616e616765720000000400109420416e206f7074696f6e616c206163636f756e74206964206f662061206d616e616765722e0045012054686973206163636f756e74206964206861732073696d696c61722070726976696c6567657320746f205b60436f6e6669673a3a41646d696e4f726967696e605d206578636570742074686174206974ec2063616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e2443616e63656c6c657200000004000c9c20416e206f7074696f6e616c206163636f756e74206964206f6620612063616e63656c6c65722e00cc2054686973206163636f756e742069642063616e206f6e6c792073746f70207363686564756c6564206d6967726174696f6e2e4c4d6967726174696f6e5374617274426c6f636b0000100400105d012054686520626c6f636b206e756d62657220617420776869636820746865206d6967726174696f6e20626567616e20616e64207468652070616c6c657427732065787472696e736963732077657265206c6f636b65642e00150120546869732076616c756520697320736574207768656e20656e746572696e6720746865206057616974696e67466f724168602073746167652c20692e652e2c207768656ec4206052634d6967726174696f6e53746167653a3a69735f6f6e676f696e67282960206265636f6d6573206074727565602e444d6967726174696f6e456e64426c6f636b0000100400100d0120426c6f636b206e756d626572207768656e206d6967726174696f6e2066696e697368656420616e642065787472696e73696373207765726520756e6c6f636b65642e00fc205468697320697320736574207768656e20656e746572696e672074686520604d6967726174696f6e446f6e65602073746167652068656e6365207768656ec8206052634d6967726174696f6e53746167653a3a69735f66696e6973686564282960206265636f6d6573206074727565602e305761726d5570506572696f6400009902040010c820546865206475726174696f6e206f662074686520707265206d6967726174696f6e207761726d2d757020706572696f642e006501205468697320697320746865206475726174696f6e206f6620746865207761726d2d757020706572696f64206265666f7265207468652064617461206d6967726174696f6e207374617274732e20447572696e672074686973710120706572696f642c20746865206d6967726174696f6e2077696c6c20626520696e206f6e676f696e6720737461746520616e642074686520636f6e6365726e65642065787472696e736963732077696c6c206265206c6f636b65642e34436f6f6c4f6666506572696f6400009902040014d020546865206475726174696f6e206f662074686520706f7374206d6967726174696f6e20636f6f6c2d6f666620706572696f642e006501205468697320697320746865206475726174696f6e206f662074686520636f6f6c2d6f666620706572696f64206166746572207468652064617461206d6967726174696f6e2069732066696e69736865642e20447572696e677101207468697320706572696f642c20746865206d6967726174696f6e2077696c6c206265207374696c6c20696e206f6e676f696e6720737461746520616e642074686520636f6e6365726e65642065787472696e736963732077696c6c2c206265206c6f636b65642e404d616e616765724d756c7469736967730101040591011110040000504d616e616765724d756c7469736967526f756e6401001010000000000001d90701b90900011510ff0004d1019101050619102448436865636b4e6f6e5a65726f53656e6465721d10d50140436865636b5370656356657273696f6e21101038436865636b547856657273696f6e25101030436865636b47656e6573697329103438436865636b4d6f7274616c6974792d103428436865636b4e6f6e63653510d5012c436865636b5765696768743910d501604368617267655472616e73616374696f6e5061796d656e743d10d50144436865636b4d657461646174614861736841102d0811095c24496e666c6174696f6e04986578706572696d656e74616c5f696e666c6174696f6e5f70726564696374696f6e5f696e666f00491010d82052657475726e207468652063757272656e7420657374696d61746573206f662074686520696e666c6174696f6e20616d6f756e742e0051012054686973206973206d61726b6564206173206578706572696d656e74616c20696e206c69676874206f66205246432338392e204e6f6e657468656c6573732c2069747320757361676520697320686967686c792501207265636f6d6d656e646564206f76657220747279696e6720746f20726561642d73746f726167652c206f722072652d63726561746520746865206f6e636861696e206c6f6769632e0010436f72650c1c76657273696f6e00f10904902052657475726e73207468652076657273696f6e206f66207468652072756e74696d652e34657865637574655f626c6f636b0414626c6f636b5110d501046420457865637574652074686520676976656e20626c6f636b2e40696e697469616c697a655f626c6f636b0418686561646572ad015d1004410120496e697469616c697a65206120626c6f636b20776974682074686520676976656e2068656164657220616e642072657475726e207468652072756e74696d6520657865637574697665206d6f64652e042101205468652060436f7265602072756e74696d65206170692074686174206576657279205375627374726174652072756e74696d65206e6565647320746f20696d706c656d656e742e204d657461646174610c206d65746164617461006110048c2052657475726e7320746865206d65746164617461206f6620612072756e74696d652e4c6d657461646174615f61745f76657273696f6e041c76657273696f6e10651010a42052657475726e7320746865206d65746164617461206174206120676976656e2076657273696f6e2e0005012049662074686520676976656e206076657273696f6e602069736e277420737570706f727465642c20746869732077696c6c2072657475726e20604e6f6e65602e750120557365205b6053656c663a3a6d657461646174615f76657273696f6e73605d20746f2066696e64206f75742061626f757420737570706f72746564206d657461646174612076657273696f6e206f66207468652072756e74696d652e446d657461646174615f76657273696f6e7300f5010ca42052657475726e732074686520737570706f72746564206d657461646174612076657273696f6e732e00c020546869732063616e206265207573656420746f2063616c6c20606d657461646174615f61745f76657273696f6e602e0401012054686520604d65746164617461602061706920747261697420746861742072657475726e73206d6574616461746120666f72207468652072756e74696d652e30426c6f636b4275696c646572103c6170706c795f65787472696e736963042465787472696e73696355106910106c204170706c792074686520676976656e2065787472696e7369632e0039012052657475726e7320616e20696e636c7573696f6e206f7574636f6d652077686963682073706563696669657320696620746869732065787472696e73696320697320696e636c7564656420696e4c207468697320626c6f636b206f72206e6f742e3866696e616c697a655f626c6f636b00ad0104682046696e697368207468652063757272656e7420626c6f636b2e4c696e686572656e745f65787472696e736963730420696e686572656e7479105910043d012047656e657261746520696e686572656e742065787472696e736963732e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e3c636865636b5f696e686572656e74730814626c6f636b511010646174617910891004550120436865636b20746861742074686520696e686572656e7473206172652076616c69642e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e047101205468652060426c6f636b4275696c646572602061706920747261697420746861742070726f7669646573207468652072657175697265642066756e6374696f6e616c69747920666f72206275696c64696e67206120626c6f636b2e585461676765645472616e73616374696f6e5175657565045076616c69646174655f7472616e73616374696f6e0c18736f757263658d10087478551028626c6f636b5f6861736834911024682056616c696461746520746865207472616e73616374696f6e2e0065012054686973206d6574686f6420697320696e766f6b656420627920746865207472616e73616374696f6e20706f6f6c20746f206c6561726e2064657461696c732061626f757420676976656e207472616e73616374696f6e2e45012054686520696d706c656d656e746174696f6e2073686f756c64206d616b65207375726520746f207665726966792074686520636f72726563746e657373206f6620746865207472616e73616374696f6e4d0120616761696e73742063757272656e742073746174652e2054686520676976656e2060626c6f636b5f686173686020636f72726573706f6e647320746f207468652068617368206f662074686520626c6f636b7c207468617420697320757365642061732063757272656e742073746174652e004501204e6f7465207468617420746869732063616c6c206d617920626520706572666f726d65642062792074686520706f6f6c206d756c7469706c652074696d657320616e64207472616e73616374696f6e73a4206d6967687420626520766572696669656420696e20616e7920706f737369626c65206f726465722e044d012054686520605461676765645472616e73616374696f6e5175657565602061706920747261697420666f7220696e746572666572696e67207769746820746865207472616e73616374696f6e2071756575652e444f6666636861696e576f726b6572417069043c6f6666636861696e5f776f726b65720418686561646572ad01d50104c82053746172747320746865206f66662d636861696e207461736b20666f7220676976656e20626c6f636b206865616465722e046420546865206f6666636861696e20776f726b6572206170692e3450617261636861696e486f7374882876616c696461746f727300c50d047020476574207468652063757272656e742076616c696461746f72732e4076616c696461746f725f67726f7570730099100c65012052657475726e73207468652076616c696461746f722067726f75707320616e6420726f746174696f6e20696e666f206c6f63616c697a6564206261736564206f6e20746865206879706f746865746963616c206368696c64610120206f66206120626c6f636b2077686f736520737461746520207468697320697320696e766f6b6564206f6e2e204e6f7465207468617420606e6f776020696e20746865206047726f7570526f746174696f6e496e666f60d02073686f756c642062652074686520737563636573736f72206f6620746865206e756d626572206f662074686520626c6f636b2e48617661696c6162696c6974795f636f72657300a110083501205969656c647320696e666f726d6174696f6e206f6e20616c6c20617661696c6162696c69747920636f7265732061732072656c6576616e7420746f20746865206368696c6420626c6f636b2e3d0120436f72657320617265206569746865722066726565206f72206f636375706965642e204672656520636f7265732063616e20686176652070617261732061737369676e656420746f207468656d2e647065727369737465645f76616c69646174696f6e5f64617461081c706172615f6964910228617373756d7074696f6ebd10c110146901205969656c647320746865207065727369737465642076616c69646174696f6e206461746120666f722074686520676976656e20605061726149646020616c6f6e67207769746820616e20617373756d7074696f6e2074686174d82073686f756c6420626520757365642069662074686520706172612063757272656e746c79206f63637570696573206120636f72652e0045012052657475726e7320604e6f6e656020696620656974686572207468652070617261206973206e6f742072656769737465726564206f722074686520617373756d7074696f6e20697320604672656564609820616e6420746865207061726120616c7265616479206f63637570696573206120636f72652e5c617373756d65645f76616c69646174696f6e5f64617461081c706172615f696491029c65787065637465645f7065727369737465645f76616c69646174696f6e5f646174615f6861736834c9100c69012052657475726e7320746865207065727369737465642076616c69646174696f6e206461746120666f722074686520676976656e20605061726149646020616c6f6e6720776974682074686520636f72726573706f6e64696e6775012076616c69646174696f6e20636f646520686173682e20496e7374656164206f6620616363657074696e6720617373756d7074696f6e2061626f75742074686520706172612c206d617463686573207468652076616c69646174696f6e29012064617461206861736820616761696e737420616e206578706563746564206f6e6520616e64207969656c647320604e6f6e65602069662074686579277265206e6f7420657175616c2e60636865636b5f76616c69646174696f6e5f6f757470757473081c706172615f696491021c6f7574707574736d052004150120436865636b732069662074686520676976656e2076616c69646174696f6e206f75747075747320706173732074686520616363657074616e63652063726974657269612e5c73657373696f6e5f696e6465785f666f725f6368696c6400100cf02052657475726e73207468652073657373696f6e20696e6465782065787065637465642061742061206368696c64206f662074686520626c6f636b2e00d020546869732063616e206265207573656420746f20696e7374616e7469617465206120605369676e696e67436f6e74657874602e3c76616c69646174696f6e5f636f6465081c706172615f6964910228617373756d7074696f6ebd108105105501204665746368207468652076616c69646174696f6e20636f64652075736564206279206120706172612c206d616b696e672074686520676976656e20604f63637570696564436f7265417373756d7074696f6e602e0045012052657475726e7320604e6f6e656020696620656974686572207468652070617261206973206e6f742072656769737465726564206f722074686520617373756d7074696f6e20697320604672656564609820616e6420746865207061726120616c7265616479206f63637570696573206120636f72652e7863616e6469646174655f70656e64696e675f617661696c6162696c697479041c706172615f69649102d110085d0120476574207468652072656365697074206f6620612063616e6469646174652070656e64696e6720617661696c6162696c6974792e20546869732072657475726e732060536f6d656020666f7220616e7920706172617325012061737369676e656420746f206f6363757069656420636f72657320696e2060617661696c6162696c6974795f636f7265736020616e6420604e6f6e6560206f74686572776973652e4063616e6469646174655f6576656e747300d510042d0120476574206120766563746f72206f66206576656e747320636f6e6365726e696e672063616e646964617465732074686174206f636375727265642077697468696e206120626c6f636b2e30646d715f636f6e74656e74730424726563697069656e7491027d0e043d012047657420616c6c207468652070656e64696e6720696e626f756e64206d6573736167657320696e2074686520646f776e77617264206d65737361676520717565756520666f72206120706172612e78696e626f756e645f68726d705f6368616e6e656c735f636f6e74656e74730424726563697069656e749102dd10086501204765742074686520636f6e74656e7473206f6620616c6c206368616e6e656c732061646472657373656420746f2074686520676976656e20726563697069656e742e204368616e6e656c7320746861742068617665206e6f90206d6573736167657320696e207468656d2061726520616c736f20696e636c756465642e5c76616c69646174696f6e5f636f64655f62795f6861736804106861736869058105049c20476574207468652076616c69646174696f6e20636f64652066726f6d2069747320686173682e386f6e5f636861696e5f766f74657300e9100431012053637261706520646973707574652072656c6576616e742066726f6d206f6e2d636861696e2c206261636b696e6720766f74657320616e64207265736f6c7665642064697370757465732e3073657373696f6e5f696e666f0414696e64657810ed100cdc20476574207468652073657373696f6e20696e666f20666f722074686520676976656e2073657373696f6e2c2069662073746f7265642e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e687375626d69745f7076665f636865636b5f73746174656d656e74081073746d74bd05247369676e61747572654d05d5010c0101205375626d697473206120505646207072652d636865636b696e672073746174656d656e7420696e746f20746865207472616e73616374696f6e20706f6f6c2e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e54707666735f726571756972655f707265636865636b00410e0c5d012052657475726e7320636f646520686173686573206f66205056467320746861742072657175697265207072652d636865636b696e672062792076616c696461746f727320696e2074686520616374697665207365742e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e5076616c69646174696f6e5f636f64655f68617368081c706172615f6964910228617373756d7074696f6ebd10f1100c8501204665746368207468652068617368206f66207468652076616c69646174696f6e20636f64652075736564206279206120706172612c206d616b696e672074686520676976656e20604f63637570696564436f7265417373756d7074696f6e602e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e20646973707574657300f51004782052657475726e7320616c6c206f6e636861696e2064697370757465732e5c73657373696f6e5f6578656375746f725f706172616d73043473657373696f6e5f696e64657810fd1004b82052657475726e7320657865637574696f6e20706172616d657465727320666f72207468652073657373696f6e2e44756e6170706c6965645f736c61736865730001110859012052657475726e732061206c697374206f662076616c696461746f72732074686174206c6f7374206120706173742073657373696f6e206469737075746520616e64206e65656420746f20626520736c61736865642e1901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20352e4c6b65795f6f776e6572736869705f70726f6f66043076616c696461746f725f69642d02111108cc2052657475726e732061206d65726b6c652070726f6f66206f6620612076616c696461746f722073657373696f6e206b65792e1901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20352e687375626d69745f7265706f72745f646973707574655f6c6f73740834646973707574655f70726f6f6619114c6b65795f6f776e6572736869705f70726f6f66151111080c2901205375626d697420616e20756e7369676e65642065787472696e73696320746f20736c6173682076616c696461746f72732077686f206c6f7374206120646973707574652061626f75747c20612063616e646964617465206f66206120706173742073657373696f6e2e1901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20352e546d696e696d756d5f6261636b696e675f766f7465730010080d012047657420746865206d696e696d756d206e756d626572206f66206261636b696e6720766f74657320666f7220612070617261636861696e2063616e6469646174652ef4205468697320697320612073746167696e67206d6574686f642120446f206e6f7420757365206f6e2070726f64756374696f6e2072756e74696d65732148706172615f6261636b696e675f737461746504805f5f72756e74696d655f6170695f67656e6572617465645f6e616d655f305f5f91021d1104e42052657475726e7320746865207374617465206f662070617261636861696e206261636b696e6720666f72206120676976656e20706172612e506173796e635f6261636b696e675f706172616d730005050461012052657475726e732063616e646964617465277320616363657074616e6365206c696d69746174696f6e7320666f72206173796e6368726f6e6f7573206261636b696e6720666f7220612072656c617920706172656e742e4c64697361626c65645f76616c696461746f727300c10d04f82052657475726e732061206c697374206f6620616c6c2064697361626c65642076616c696461746f72732061742074686520676976656e20626c6f636b2e346e6f64655f6665617475726573004105084c20476574206e6f64652066656174757265732ef4205468697320697320612073746167696e67206d6574686f642120446f206e6f7420757365206f6e2070726f64756374696f6e2072756e74696d65732158617070726f76616c5f766f74696e675f706172616d73001d0504a420417070726f76616c20766f74696e6720636f6e66696775726174696f6e20706172616d65746572732c636c61696d5f7175657565004d11043020436c61696d2071756575657c63616e646964617465735f70656e64696e675f617661696c6162696c697479041c706172615f696491025911046020456c6173746963207363616c696e6720737570706f72746876616c69646174696f6e5f636f64655f626f6d625f6c696d6974001004b420526574726965766520746865206d6178696d756d20756e636f6d7072657373656420636f64652073697a652e4c6261636b696e675f636f6e73747261696e7473041c706172615f696491025d110831012052657475726e732074686520636f6e73747261696e7473206f6e2074686520616374696f6e7320746861742063616e2062652074616b656e2062792061206e65772070617261636861696e1c20626c6f636b2e507363686564756c696e675f6c6f6f6b61686561640010048820526574726965766520746865207363686564756c696e67206c6f6f6b616865616404dc205468652041504920666f72207175657279696e6720746865207374617465206f662070617261636861696e73206f6e2d636861696e2e2042656566794170691c3462656566795f67656e6573697300a00405012052657475726e2074686520626c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465643476616c696461746f725f73657400651104b82052657475726e207468652063757272656e74206163746976652042454546592076616c696461746f7220736574b87375626d69745f7265706f72745f646f75626c655f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f66a5073c6b65795f6f776e65725f70726f6f666d111108204501205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120646f75626c6520766f74696e672065717569766f636174696f6e2e205468652063616c6c6572fc206d7573742070726f766964652074686520646f75626c6520766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742eb07375626d69745f7265706f72745f666f726b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6671113c6b65795f6f776e65725f70726f6f666d111108203d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120666f726b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65724101206d7573742070726f766964652074686520666f726b20766f74696e672070726f6f66202874686520616e6365737472792070726f6f662073686f756c64206265206f627461696e6564207573696e673d01206067656e65726174655f616e6365737472795f70726f6f66602920616e642061206b6579206f776e6572736869702070726f6f66202873686f756c64206265206f627461696e6564207573696e674101206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c794d0120626520616363657074656420666f72206c6f63616c20617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f6429012072657475726e7320604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742ed07375626d69745f7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f66d5073c6b65795f6f776e65725f70726f6f666d111108205d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420612066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65721501206d7573742070726f76696465207468652066757475726520626c6f636b20766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66ec202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e1501205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f6964390275112c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e5c67656e65726174655f616e6365737472795f70726f6f660844707265765f626c6f636b5f6e756d626572105c626573745f6b6e6f776e5f626c6f636b5f6e756d626572a075110845012047656e65726174657320612070726f6f662074686174207468652060707265765f626c6f636b5f6e756d626572602069732070617274206f66207468652063616e6f6e6963616c20636861696e2061746c2060626573745f6b6e6f776e5f626c6f636b5f6e756d626572602e048020415049206e656365737361727920666f7220424545465920766f746572732e184d6d7241706914206d6d725f726f6f74007911048c2052657475726e20746865206f6e2d636861696e204d4d5220726f6f7420686173682e386d6d725f6c6561665f636f756e7400811104b82052657475726e20746865206e756d626572206f66204d4d5220626c6f636b7320696e2074686520636861696e2e3867656e65726174655f70726f6f660834626c6f636b5f6e756d62657273f5015c626573745f6b6e6f776e5f626c6f636b5f6e756d626572a085110869012047656e6572617465204d4d522070726f6f6620666f72206120736572696573206f6620626c6f636b206e756d626572732e2049662060626573745f6b6e6f776e5f626c6f636b5f6e756d626572203d20536f6d65286e29602c45012075736520686973746f726963616c204d4d5220737461746520617420676976656e20626c6f636b2068656967687420606e602e20456c73652c207573652063757272656e74204d4d522073746174652e307665726966795f70726f6f6608186c65617665738d111470726f6f669511991114f420566572696679204d4d522070726f6f6620616761696e7374206f6e2d636861696e204d4d5220666f722061206261746368206f66206c65617665732e007101204e6f746520746869732066756e6374696f6e2077696c6c20757365206f6e2d636861696e204d4d5220726f6f74206861736820616e6420636865636b206966207468652070726f6f66206d6174636865732074686520686173682e6d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d587665726966795f70726f6f665f73746174656c6573730c10726f6f7434186c65617665738d111470726f6f66951199111c010120566572696679204d4d522070726f6f6620616761696e737420676976656e20726f6f74206861736820666f722061206261746368206f66206c65617665732e00fc204e6f746520746869732066756e6374696f6e20646f6573206e6f74207265717569726520616e79206f6e2d636861696e2073746f72616765202d20746865bc2070726f6f6620697320766572696669656420616761696e737420676976656e204d4d5220726f6f7420686173682e006d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d04842041504920746f20696e7465726163742077697468204d4d522070616c6c65742e2c42656566794d6d72417069084c617574686f726974795f7365745f70726f6f6600051004dc2052657475726e207468652063757272656e746c792061637469766520424545465920617574686f72697479207365742070726f6f662e606e6578745f617574686f726974795f7365745f70726f6f6600051004c82052657475726e20746865206e6578742f71756575656420424545465920617574686f72697479207365742070726f6f662e0490204150492075736566756c20666f72204245454659206c6967687420636c69656e74732e284772616e647061417069104c6772616e6470615f617574686f72697469657300c4183d0120476574207468652063757272656e74204752414e44504120617574686f72697469657320616e6420776569676874732e20546869732073686f756c64206e6f74206368616e6765206578636570741d0120666f72207768656e206368616e67657320617265207363686564756c656420616e642074686520636f72726573706f6e64696e672064656c617920686173207061737365642e003501205768656e2063616c6c656420617420626c6f636b20422c2069742077696c6c2072657475726e2074686520736574206f6620617574686f72697469657320746861742073686f756c642062653d01207573656420746f2066696e616c697a652064657363656e64616e7473206f66207468697320626c6f636b2028422b312c20422b322c202e2e2e292e2054686520626c6f636b204220697473656c66c02069732066696e616c697a65642062792074686520617574686f7269746965732066726f6d20626c6f636b20422d312eb47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6645023c6b65795f6f776e65725f70726f6f666d111108201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f6964cc75112c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74fc20696d706c656d656e746174696f6e732069676e6f7265207468697320706172616d6574657220616e6420696e73746561642072656c79206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e3863757272656e745f7365745f696400300498204765742063757272656e74204752414e44504120617574686f72697479207365742069642e240101204150497320666f7220696e746567726174696e6720746865204752414e4450412066696e616c6974792067616467657420696e746f2072756e74696d65732ec020546869732073686f756c6420626520696d706c656d656e746564206f6e207468652072756e74696d6520736964652e0015012054686973206973207072696d6172696c79207573656420666f72206e65676f74696174696e6720617574686f726974792d736574206368616e67657320666f72207468650d01206761646765742e204752414e44504120757365732061207369676e616c696e67206d6f64656c206f66206368616e67696e6720617574686f7269747920736574733a3101206368616e6765732073686f756c64206265207369676e616c6564207769746820612064656c6179206f66204e20626c6f636b732c20616e64207468656e206175746f6d61746963616c6c79e4206170706c69656420696e207468652072756e74696d652061667465722074686f7365204e20626c6f636b732068617665207061737365642e00fc2054686520636f6e73656e7375732070726f746f636f6c2077696c6c20636f6f7264696e617465207468652068616e646f66662065787465726e616c6c792e1c426162654170691834636f6e66696775726174696f6e009d11048c2052657475726e2074686520636f6e66696775726174696f6e20666f7220424142452e4c63757272656e745f65706f63685f737461727400b50104c42052657475726e732074686520736c6f7420746861742073746172746564207468652063757272656e742065706f63682e3463757272656e745f65706f636800a11104c42052657475726e7320696e666f726d6174696f6e20726567617264696e67207468652063757272656e742065706f63682e286e6578745f65706f636800a1110801012052657475726e7320696e666f726d6174696f6e20726567617264696e6720746865206e6578742065706f6368202877686963682077617320616c72656164795c2070726576696f75736c7920616e6e6f756e636564292e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f660810736c6f74b50130617574686f726974795f6964b101a5112c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e207468650d012063757272656e742065706f63682e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e0901204e4f54453a206576656e2074686f75676820746865204150492074616b657320612060736c6f746020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e74206174f0207768696368207468652065706f636820666f722074686520676976656e20736c6f74206973206c697665206f6e2d636861696e2e20467574757265090120696d706c656d656e746174696f6e732077696c6c20696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696ed020776f726b65722c206e6f7420726571756972696e67206f6c6465722073746174657320746f20626520617661696c61626c652eb47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f66a9013c6b65795f6f776e65725f70726f6f66a9111108201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e04b820415049206e656365737361727920666f7220626c6f636b20617574686f7273686970207769746820424142452e54417574686f72697479446973636f76657279417069042c617574686f72697469657300350b04190120526574726965766520617574686f72697479206964656e74696669657273206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e10742054686520617574686f7269747920646973636f76657279206170692e0051012054686973206170692069732075736564206279207468652060636c69656e742f617574686f726974792d646973636f7665727960206d6f64756c6520746f207265747269657665206964656e746966696572739c206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e2c53657373696f6e4b657973085467656e65726174655f73657373696f6e5f6b657973041073656564950f381c15012047656e6572617465206120736574206f662073657373696f6e206b6579732077697468206f7074696f6e616c6c79207573696e672074686520676976656e20736565642e090120546865206b6579732073686f756c642062652073746f7265642077697468696e20746865206b657973746f7265206578706f736564207669612072756e74696d653c2065787465726e616c69746965732e00b0205468652073656564206e6565647320746f20626520612076616c69642060757466386020737472696e672e00d02052657475726e732074686520636f6e636174656e61746564205343414c4520656e636f646564207075626c6963206b6579732e4c6465636f64655f73657373696f6e5f6b657973041c656e636f64656438ad110c98204465636f64652074686520676976656e207075626c69632073657373696f6e206b6579732e00dc2052657475726e7320746865206c697374206f66207075626c696320726177207075626c6963206b657973202b206b657920747970652e04682053657373696f6e206b6579732072756e74696d65206170692e3c4163636f756e744e6f6e636541706904346163636f756e745f6e6f6e6365041c6163636f756e74001004c0204765742063757272656e74206163636f756e74206e6f6e6365206f6620676976656e20604163636f756e744964602e0480205468652041504920746f207175657279206163636f756e74206e6f6e63652e545472616e73616374696f6e5061796d656e74417069102871756572795f696e666f080c75787455100c6c656e10b911004471756572795f6665655f64657461696c73080c75787455100c6c656e10bd11004c71756572795f7765696768745f746f5f66656504187765696768742818004c71756572795f6c656e6774685f746f5f66656504186c656e67746810180000645472616e73616374696f6e5061796d656e7443616c6c417069103c71756572795f63616c6c5f696e666f081063616c6c91010c6c656e10b91104490120517565727920696e666f726d6174696f6e206f66206120646973706174636820636c6173732c207765696768742c20616e6420666565206f66206120676976656e20656e636f646564206043616c6c602e5871756572795f63616c6c5f6665655f64657461696c73081063616c6c91010c6c656e10bd1104b4205175657279206665652064657461696c73206f66206120676976656e20656e636f646564206043616c6c602e4c71756572795f7765696768745f746f5f6665650418776569676874281804010120517565727920746865206f7574707574206f66207468652063757272656e742060576569676874546f4665656020676976656e20736f6d6520696e7075742e4c71756572795f6c656e6774685f746f5f66656504186c656e677468101804010120517565727920746865206f7574707574206f66207468652063757272656e7420604c656e677468546f4665656020676976656e20736f6d6520696e7075742e003458636d5061796d656e74417069107c71756572795f61636365707461626c655f7061796d656e745f617373657473042c78636d5f76657273696f6e10c91114b42052657475726e732061206c697374206f662061636365707461626c65207061796d656e74206173736574732e0030202320417267756d656e74730068202a206078636d5f76657273696f6e603a2056657273696f6e2e4071756572795f78636d5f776569676874041c6d6573736167652106d51114a82052657475726e73206120776569676874206e656564656420746f206578656375746520612058434d2e0030202320417267756d656e74730074202a20606d657373616765603a206056657273696f6e656458636d602e6471756572795f7765696768745f746f5f61737365745f6665650818776569676874281461737365748507d91118e820436f6e766572747320612077656967687420696e746f20612066656520666f722074686520737065636966696564206041737365744964602e0030202320417267756d656e74730088202a2060776569676874603a20636f6e7665727469626c652060576569676874602e7c202a20606173736574603a206056657273696f6e656441737365744964602e4c71756572795f64656c69766572795f66656573082c64657374696e6174696f6e75011c6d6573736167652106dd11201d01204765742064656c6976657279206665657320666f722073656e64696e67206120737065636966696320606d6573736167656020746f2061206064657374696e6174696f6e602ef420546865736520616c7761797320636f6d6520696e20612073706563696669632061737365742c20646566696e65642062792074686520636861696e2e0030202320417267756d656e74738101202a20606d657373616765603a20546865206d6573736167652074686174276c6c2062652073656e742c206e65636573736172792062656361757365206d6f73742064656c6976657279206665657320617265206261736564206f6e207468655c20202073697a65206f6620746865206d6573736167652e6101202a206064657374696e6174696f6e603a205468652064657374696e6174696f6e20746f2073656e6420746865206d65737361676520746f2e20446966666572656e742064657374696e6174696f6e73206d617920757365c0202020646966666572656e742073656e6465727320746861742063686172676520646966666572656e7420666565732e2c702041207472616974206f662058434d207061796d656e74204150492e00a8204150492070726f76696465732066756e6374696f6e616c69747920666f72206f627461696e696e673a00c4202a207468652077656967687420726571756972656420746f206578656375746520616e2058434d206d6573736167652c0501202a2061206c697374206f662061636365707461626c65206041737365744964607320666f72206d65737361676520657865637574696f6e207061796d656e742c0101202a2074686520636f7374206f66207468652077656967687420696e20746865207370656369666965642061636365707461626c65206041737365744964602ea0202a20746865206665657320666f7220616e2058434d206d6573736167652064656c69766572792e00f020546f2064657465726d696e652074686520657865637574696f6e20776569676874206f66207468652063616c6c7320726571756972656420666f727501205b6078636d3a3a6c61746573743a3a496e737472756374696f6e3a3a5472616e73616374605d20696e737472756374696f6e2c20605472616e73616374696f6e5061796d656e7443616c6c417069602063616e20626520757365642e2444727952756e41706908306472795f72756e5f63616c6c0c186f726967696e81021063616c6c91014c726573756c745f78636d735f76657273696f6e10e1110444204472792072756e2063616c6c2056322e2c6472795f72756e5f78636d083c6f726967696e5f6c6f636174696f6e75010c78636d550701120450204472792072756e2058434d2070726f6772616d24b1012041504920666f72206472792d72756e6e696e672065787472696e7369637320616e642058434d2070726f6772616d7320746f20676574207468652070726f6772616d732074686174206e65656420746f2062652070617373656420746f207468652066656573204150492e00810120416c6c2063616c6c732072657475726e206120766563746f72206f66207475706c657320286c6f636174696f6e2c2078636d292077686572652065616368202278636d2220697320657865637574656420696e20226c6f636174696f6e222ee42049662074686572652773206c6f63616c20657865637574696f6e2c20746865206c6f636174696f6e2077696c6c206265202248657265222e1d01205468697320766563746f722063616e206265207573656420746f2063616c63756c61746520626f746820657865637574696f6e20616e642064656c697665727920666565732e0099012043616c6c73206f722058434d73206d69676874206661696c207768656e2065786563757465642c207468697320646f65736e2774206d65616e2074686520726573756c74206f662074686573652063616c6c732077696c6c20626520616e2060457272602e650120496e2074686f73652063617365732c207468657265206d69676874207374696c6c20626520612076616c696420726573756c742c20776974682074686520657865637574696f6e206572726f7220696e736964652069742e650120546865206f6e6c7920726561736f6e73207768792074686573652063616c6c73206d696768742072657475726e20616e206572726f7220617265206c697374656420696e20746865205b604572726f72605d20656e756d2e504c6f636174696f6e546f4163636f756e744170690440636f6e766572745f6c6f636174696f6e04206c6f636174696f6e75010912049020436f6e766572747320604c6f636174696f6e6020746f20604163636f756e744964602e040d012041504920666f722075736566756c20636f6e76657273696f6e73206265747765656e2058434d20604c6f636174696f6e6020616e6420604163636f756e744964602e484e6f6d696e6174696f6e506f6f6c73417069283c70656e64696e675f72657761726473040c77686f00180435012052657475726e73207468652070656e64696e67207265776172647320666f7220746865206d656d626572207468617420746865204163636f756e7449642077617320676976656e20666f722e44706f696e74735f746f5f62616c616e6365081c706f6f6c5f69641018706f696e7473181804f42052657475726e7320746865206571756976616c656e742062616c616e6365206f662060706f696e74736020666f72206120676976656e20706f6f6c2e4462616c616e63655f746f5f706f696e7473081c706f6f6c5f696410246e65775f66756e6473181804fc2052657475726e7320746865206571756976616c656e7420706f696e7473206f6620606e65775f66756e64736020666f72206120676976656e20706f6f6c2e48706f6f6c5f70656e64696e675f736c617368041c706f6f6c5f6964101804b02052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c2e506d656d6265725f70656e64696e675f736c61736804186d656d626572001810cc2052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c206d656d6265722e004d012049662070656e64696e6720736c617368206f6620746865206d656d626572206578636565647320604578697374656e7469616c4465706f736974602c2069742063616e206265207265706f72746564206f6e1c20636861696e2e74706f6f6c5f6e656564735f64656c65676174655f6d6967726174696f6e041c706f6f6c5f6964102020e42052657475726e7320747275652069662074686520706f6f6c20776974682060706f6f6c5f696460206e65656473206d6967726174696f6e2e00490120546869732063616e2068617070656e207768656e20746865206070616c6c65742d6e6f6d696e6174696f6e2d706f6f6c73602068617320737769746368656420746f207573696e672073747261746567794101205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b6529206275742074686520706f6f6ce8207374696c6c206861732066756e647320746861742077657265207374616b6564207573696e6720746865206f6c6465722073747261746567791901205b5472616e736665725374616b655d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a5472616e736665725374616b65292e205573658901205b606d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65295420746f206d6967726174652074686520706f6f6c2e7c6d656d6265725f6e656564735f64656c65676174655f6d6967726174696f6e04186d656d62657200201c29012052657475726e732074727565206966207468652064656c6567617465642066756e6473206f662074686520706f6f6c20606d656d62657260206e65656473206d6967726174696f6e2e00d8204f6e6365206120706f6f6c20686173207375636365737366756c6c79206d6967726174656420746f207468652073747261746567795501205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b65292c207468652066756e6473206f66207468651901206d656d6265722063616e206265206d696772617465642066726f6d20706f6f6c206163636f756e7420746f20746865206d656d6265722773206163636f756e742e205573652901205b606d6967726174655f64656c65676174696f6e605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f64656c65676174696f6e29a420746f206d696772617465207468652066756e6473206f662074686520706f6f6c206d656d6265722e506d656d6265725f746f74616c5f62616c616e6365040c77686f00180465012052657475726e732074686520746f74616c20636f6e747269627574696f6e206f66206120706f6f6c206d656d62657220696e636c7564696e6720616e792062616c616e6365207468617420697320756e626f6e64696e672e30706f6f6c5f62616c616e6365041c706f6f6c5f69641018049c20546f74616c2062616c616e636520636f6e747269627574656420746f2074686520706f6f6c2e34706f6f6c5f6163636f756e7473041c706f6f6c5f6964107508042d012052657475726e732074686520626f6e646564206163636f756e7420616e6420726577617264206163636f756e74206173736f63696174656420776974682074686520706f6f6c5f69642e04f82052756e74696d652061706920666f7220616363657373696e6720696e666f726d6174696f6e2061626f7574206e6f6d696e6174696f6e20706f6f6c732e285374616b696e674170690c446e6f6d696e6174696f6e735f71756f7461041c62616c616e636518100411012052657475726e7320746865206e6f6d696e6174696f6e732071756f746120666f722061206e6f6d696e61746f722077697468206120676976656e2062616c616e63652e5c657261735f7374616b6572735f706167655f636f756e74080c657261101c6163636f756e7400100439012052657475726e7320746865207061676520636f756e74206f66206578706f737572657320666f7220612076616c696461746f7220606163636f756e746020696e206120676976656e206572612e3c70656e64696e675f72657761726473080c657261101c6163636f756e740020043d012052657475726e7320747275652069662076616c696461746f7220606163636f756e74602068617320706167657320746f20626520636c61696d656420666f722074686520676976656e206572612e003847656e657369734275696c6465720c2c6275696c645f737461746504106a736f6e381112286501204275696c64206052756e74696d6547656e65736973436f6e666967602066726f6d2061204a534f4e20626c6f62206e6f74207573696e6720616e792064656661756c747320616e642073746f726520697420696e20746865242073746f726167652e00290120496e207468652063617365206f662061204652414d452d62617365642072756e74696d652c20746869732066756e6374696f6e20646573657269616c697a6573207468652066756c6c5501206052756e74696d6547656e65736973436f6e666967602066726f6d2074686520676976656e204a534f4e20626c6f6220616e64207075747320697420696e746f207468652073746f726167652e2049662074686555012070726f7669646564204a534f4e20626c6f6220697320696e636f7272656374206f7220696e636f6d706c657465206f722074686520646573657269616c697a6174696f6e206661696c732c20616e206572726f72342069732072657475726e65642e005d0120506c65617365206e6f746520746861742070726f7669646564204a534f4e20626c6f62206d75737420636f6e7461696e20616c6c206052756e74696d6547656e65736973436f6e66696760206669656c64732c206e6f5c2064656661756c74732077696c6c20626520757365642e286765745f707265736574040869641512950f3861012052657475726e732061204a534f4e20626c6f6220726570726573656e746174696f6e206f6620746865206275696c742d696e206052756e74696d6547656e65736973436f6e66696760206964656e7469666965642062791820606964602e005501204966206069646020697320604e6f6e6560207468652066756e6374696f6e2073686f756c642072657475726e204a534f4e20626c6f6220726570726573656e746174696f6e206f66207468652064656661756c744901206052756e74696d6547656e65736973436f6e6669676020737472756374206f66207468652072756e74696d652e20496d706c656d656e746174696f6e206d7573742070726f766964652064656661756c7460206052756e74696d6547656e65736973436f6e666967602e002101204f74686572776973652066756e6374696f6e2072657475726e732061204a534f4e20726570726573656e746174696f6e206f6620746865206275696c742d696e2c206e616d65645101206052756e74696d6547656e65736973436f6e6669676020707265736574206964656e74696669656420627920606964602c206f7220604e6f6e656020696620737563682070726573657420646f6573206e6f7461012065786973742e2052657475726e656420605665633c75383e6020636f6e7461696e73206279746573206f66204a534f4e20626c6f62202870617463682920776869636820636f6d7072697365732061206c697374206f664d012028706f74656e7469616c6c79206e657374656429206b65792d76616c756520706169727320746861742061726520696e74656e64656420666f7220637573746f6d697a696e67207468652064656661756c7465012072756e74696d652067656e6573697320636f6e6669672e20546865207061746368207368616c6c206265206d657267656420287266633733383629207769746820746865204a534f4e20726570726573656e746174696f6e6101206f66207468652064656661756c74206052756e74696d6547656e65736973436f6e6669676020746f20637265617465206120636f6d70726568656e736976652067656e6573697320636f6e66696720746861742063616e84206265207573656420696e20606275696c645f737461746560206d6574686f642e307072657365745f6e616d65730019121051012052657475726e732061206c697374206f66206964656e7469666965727320666f7220617661696c61626c65206275696c74696e206052756e74696d6547656e65736973436f6e6669676020707265736574732e0061012054686520707265736574732066726f6d20746865206c6973742063616e20626520717565726965642077697468205b6047656e657369734275696c6465723a3a6765745f707265736574605d206d6574686f642e2049660101206e6f206e616d65642070726573657473206172652070726f7669646564206279207468652072756e74696d6520746865206c69737420697320656d7074792e04f02041504920746f20696e7465726163742077697468206052756e74696d6547656e65736973436f6e6669676020666f72207468652072756e74696d659101541d1200'; diff --git a/packages/types-support/src/metadata/v15/dicle-json.json b/packages/types-support/src/metadata/v15/dicle-json.json new file mode 100644 index 0000000..ca72071 --- /dev/null +++ b/packages/types-support/src/metadata/v15/dicle-json.json @@ -0,0 +1,10217 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v15": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 625 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 626 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 624 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 629 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + }, + { + "name": "ExtrinsicWeightReclaimed", + "modifier": "Default", + "type": { + "plain": 10 + }, + "fallback": "0x0000", + "docs": [ + " The weight reclaimed for the extrinsic.", + "", + " This information is available until the end of the extrinsic execution.", + " More precisely this information is removed in `note_applied_extrinsic`.", + "", + " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate", + " reduction." + ] + } + ] + }, + "calls": { + "type": 101 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 630, + "value": "0x07a81a0a5303000b00204aa9d10113ffffffffffffffff4273bb1d00010b30f3708f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf0100004273bb1d00010b307bc3f9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000404273bb1d00000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 633, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 635, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 636, + "value": "0x186b7573616d61347061726974792d6b7573616d61020000006a650f00000000005cc51ff1fa3f5d0cca01000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0d00000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c0100000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000fbc577b9d747efd6010000001a00000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 97, + "value": "0x0200", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 640 + }, + "index": 0, + "docs": [] + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 641 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 109 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 109 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 111 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 641 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 644 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 646 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 523 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 206 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 652 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 652 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 653 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "type": 105 + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 12, + "value": "0x5802000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": 12, + "value": "0x7017000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max number of authorities allowed" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + } + ], + "errors": { + "type": 656 + }, + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 114 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0xb80b000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 2, + "docs": [] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 657 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 115 + }, + "events": { + "type": 32 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 658 + }, + "index": 3, + "docs": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 659 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 663 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 666 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 675 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 119 + }, + "events": { + "type": 33 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x5543de13000000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 680 + }, + "index": 4, + "docs": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 487 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 681 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 36 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 33, + "docs": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 5, + "docs": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 120 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 39 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 682 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 38 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 41 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 684 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 117 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 686 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 687 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 690 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 687 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 549, + "value": 691 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 125 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 41 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 692 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 43 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 124 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 39 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 695 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 625 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 697 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 698 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 551, + "value": 699 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 124 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "type": 122 + }, + "events": { + "type": 37 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ] + }, + { + "name": "MaxValidatorSet", + "type": 4, + "value": "0xd0070000", + "docs": [ + " The absolute maximum of winner validators this pallet should return." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "errors": { + "type": 700 + }, + "index": 6, + "docs": [] + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 701 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 703, + "value": 214 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + } + ] + }, + "calls": null, + "events": { + "type": 44 + }, + "constants": [], + "errors": null, + "index": 7, + "docs": [] + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 511 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ] + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 206 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ] + } + ] + }, + "calls": null, + "events": { + "type": 46 + }, + "constants": [], + "errors": null, + "index": 34, + "docs": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 120 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 704 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 706 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 138 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 709, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 137 + }, + "events": { + "type": 47 + }, + "constants": [ + { + "name": "KeyDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The amount to be held when setting keys." + ] + } + ], + "errors": { + "type": 711 + }, + "index": 8, + "docs": [] + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 712 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 713 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 206 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 714 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ] + } + ] + }, + "calls": { + "type": 144 + }, + "events": { + "type": 48 + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xa800000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 715 + }, + "index": 10, + "docs": [] + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 716 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 716 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 12, + "docs": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 718 + } + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 719 + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 720 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + }, + { + "name": "LastSpendPeriod", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The blocknumber for the last triggered spend period." + ] + } + ] + }, + "calls": { + "type": 155 + }, + "events": { + "type": 52 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x80510100", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 185, + "value": "0x00000000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 722, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x80c61300", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 723 + }, + "index": 18, + "docs": [] + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 527, + "value": 724 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 732 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 156 + }, + "events": { + "type": 94 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 735 + }, + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 736 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 97, + "value": 744 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 97, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 159 + }, + "events": { + "type": 98 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x554dd2c2070000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 747, + "value": "0x40000064726f6f740000000000000000000000000000000000000000000100000020d33f25a6d70b000000000000000000b00400008013030040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000050c8ec362a2f010000000000000000002c01000080130300640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a000000a090d96d545e02000000000000000000b00400008013030040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000008147e05511e00000000000000000000b00400008013030080700000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a0000002864761b959700000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a0000002864761b959700000000000000000000b00400008013030008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000050c8ec362a2f01000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000090e99f12d3eb05000000000000000000b004000080130300080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c8000000554dd2c20700000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f746970706572000000000000000000000000000000640000005205379c4d000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000003435261a0803000000000000000000006009000080130300201c00004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e646572000000000000000000000032000000686a4c3410060000000000000000000060090000801303004038000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e646572000000000000000000000000000032000000d0d49868200c00000000000000000000600900008013030080700000403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 753 + }, + "index": 21, + "docs": [] + }, + { + "name": "FellowshipCollective", + "storage": { + "prefix": "FellowshipCollective", + "items": [ + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 97, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 754 + } + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective." + ] + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 755, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ] + }, + { + "name": "IndexToId", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 756, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 545, + "value": 558 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 757 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 168 + }, + "events": { + "type": 557 + }, + "constants": [], + "errors": { + "type": 758 + }, + "index": 22, + "docs": [] + }, + { + "name": "FellowshipReferenda", + "storage": { + "prefix": "FellowshipReferenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 759 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 97, + "value": 761 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 97, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 169 + }, + "events": { + "type": 560 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 747, + "value": "0x2800006463616e646964617465730000000000000000000000000000000a0000003435261a0803000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0100646d656d626572730000000000000000000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d02006470726f66696369656e747300000000000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d03006466656c6c6f77730000000000000000000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d04006473656e696f722066656c6c6f777300000000000000000000000a0000005205379c4d00000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d050064657870657274730000000000000000000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d06006473656e696f72206578706572747300000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0700646d6173746572730000000000000000000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d08006473656e696f72206d61737465727300000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d0900646772616e64206d6173746572730000000000000000000000000a000000554dd2c20700000000000000000000002c010000c08901002c0100000a0000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b000000000065cd1d", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 762 + }, + "index": 23, + "docs": [] + }, + { + "name": "Origins", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 43, + "docs": [] + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 117 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 170 + }, + "events": { + "type": 561 + }, + "constants": [], + "errors": { + "type": 763 + }, + "index": 44, + "docs": [] + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 566, + "value": 570 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ] + } + ] + }, + "calls": { + "type": 171 + }, + "events": { + "type": 565 + }, + "constants": [], + "errors": null, + "index": 46, + "docs": [] + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 192, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 192, + "value": 194 + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 192, + "value": 196 + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 0, + "value": 192 + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": { + "type": 189 + }, + "events": { + "type": 573 + }, + "constants": [ + { + "name": "Prefix", + "type": 14, + "value": "0x7c506179204b534d7320746f20746865204b7573616d61206163636f756e743a", + "docs": [] + } + ], + "errors": { + "type": 764 + }, + "index": 19, + "docs": [] + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 197 + }, + "events": { + "type": 574 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 765 + }, + "index": 24, + "docs": [] + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "plain": 577 + }, + "fallback": "0x00", + "docs": [ + " The max number of members for the society at one time." + ] + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ] + }, + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The first member." + ] + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved rank 0 members in the society." + ] + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": 13 + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ] + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 766 + } + }, + "fallback": "0x00", + "docs": [ + " The current members and their rank. Doesn't include `SuspendedMembers`." + ] + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 769 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Information regarding rank-0 payouts, past and future." + ] + }, + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" + ] + }, + { + "name": "MemberByIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The current items in `Members` keyed by their unique index. Keys are densely populated", + " `0..MemberCount` (does not include `MemberCount`)." + ] + }, + { + "name": "SuspendedMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 766 + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members, with their old membership record." + ] + }, + { + "name": "RoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of rounds which have passed." + ] + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": 771 + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ] + }, + { + "name": "Candidates", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 775 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Skeptic", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current skeptic." + ] + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 541, + "value": 777 + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ] + }, + { + "name": "VoteClearCursor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 778 + } + }, + "fallback": "0x00", + "docs": [ + " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." + ] + }, + { + "name": "NextHead", + "modifier": "Optional", + "type": { + "plain": 779 + }, + "fallback": "0x00", + "docs": [ + " At the end of the claim period, this contains the most recently approved members (along with", + " their bid and round ID) who is from the most recent round with the lowest bid. They will", + " become the new `Head`." + ] + }, + { + "name": "ChallengeRoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of challenge rounds there have been. Used to identify stale DefenderVotes." + ] + }, + { + "name": "Defending", + "modifier": "Optional", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged, along with a running tally of votes." + ] + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 545, + "value": 777 + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender, keyed by challenge round." + ] + }, + { + "name": "NextIntakeAt", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Next intake rotation scheduled with [Config::BlockNumberProvider]." + ] + }, + { + "name": "NextChallengeAt", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Next challenge rotation scheduled with [Config::BlockNumberProvider]." + ] + } + ] + }, + "calls": { + "type": 199 + }, + "events": { + "type": 576 + }, + "constants": [ + { + "name": "PalletId", + "type": 722, + "value": "0x70792f736f636965", + "docs": [ + " The societies's pallet id" + ] + }, + { + "name": "GraceStrikes", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of strikes before a member gets funds slashed." + ] + }, + { + "name": "PeriodSpend", + "type": 6, + "value": "0x040abf82280f00000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ] + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x7fcdfdff", + "docs": [ + " The number of [Config::BlockNumberProvider] blocks on which new candidates should be", + " voted on. Together with", + " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." + ] + }, + { + "name": "ClaimPeriod", + "type": 4, + "value": "0x80700000", + "docs": [ + " The number of [Config::BlockNumberProvider] blocks on which new candidates can claim", + " their membership and be the named head." + ] + }, + { + "name": "MaxLockDuration", + "type": 4, + "value": "0x004eed00", + "docs": [ + " The maximum duration of the payout lock." + ] + }, + { + "name": "ChallengePeriod", + "type": 4, + "value": "0x7fcdfdff", + "docs": [ + " The number of [Config::BlockNumberProvider] blocks between membership challenges." + ] + }, + { + "name": "MaxPayouts", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of payouts a member may have waiting unclaimed." + ] + }, + { + "name": "MaxBids", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of bids at once." + ] + } + ], + "errors": { + "type": 781 + }, + "index": 26, + "docs": [] + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 782 + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ] + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 541, + "value": 784 + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ] + } + ] + }, + "calls": { + "type": 200 + }, + "events": { + "type": 578 + }, + "constants": [ + { + "name": "ConfigDepositBase", + "type": 6, + "value": "0x04821bce260000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ] + }, + { + "name": "FriendDepositFactor", + "type": 6, + "value": "0x9a2669e1030000000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ] + }, + { + "name": "MaxFriends", + "type": 4, + "value": "0x09000000", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ] + }, + { + "name": "RecoveryDeposit", + "type": 6, + "value": "0x04821bce260000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ] + } + ], + "errors": { + "type": 785 + }, + "index": 27, + "docs": [] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 786 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 788 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 202 + }, + "events": { + "type": 581 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 789 + }, + "index": 28, + "docs": [] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number at which the agenda began incomplete execution." + ] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 790 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 206, + "value": 794 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 206 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 204 + }, + "events": { + "type": 582 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 795 + }, + "index": 29, + "docs": [] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 796 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 800 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 207 + }, + "events": { + "type": 583 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0xb00953489b0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0xb4a69041000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0xb00953489b0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x684d2183000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 804 + }, + "index": 30, + "docs": [] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 505, + "value": 805 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 210 + }, + "events": { + "type": 585 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0xf01945e79b0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x8006943f000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 807 + }, + "index": 31, + "docs": [] + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 808 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 810 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 511, + "value": 814 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 213 + }, + "events": { + "type": 586 + }, + "constants": [], + "errors": { + "type": 815 + }, + "index": 32, + "docs": [] + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 816 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 818 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 719 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 215 + }, + "events": { + "type": 587 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x00000000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00041703", + "docs": [ + " The time limit for a curator to act before a bounty expires.", + "", + " The period that starts when a curator is approved, during which they must execute or", + " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the", + " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,", + " removing the need for `extend_bounty_expiry`." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 185, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 132, + "value": "0x0104821bce260000000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 132, + "value": "0x0152a1aec6000000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x689aa4850f0000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x55a0fc01000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 819 + }, + "index": 35, + "docs": [] + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts", + " for each parent bounty. Number of total child bounties. Will be removed in May 2025." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of active child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ParentTotalChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties per parent bounty, including completed bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 206, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptionsV1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 206, + "value": 818 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty. Indexed by `(parent_id, child_id)`.", + "", + " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version." + ] + }, + { + "name": "V0ToV1ChildBountyIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 206 + } + }, + "fallback": "0x00", + "docs": [ + " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.", + "", + " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids", + " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].", + " The item intended solely for client convenience and not used in the pallet's core logic." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 216 + }, + "events": { + "type": 588 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0xa4425d8d010000000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 822 + }, + "index": 40, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 591 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 823 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 830 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 295 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 833 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 836 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 294 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "type": 217 + }, + "events": { + "type": 589 + }, + "constants": [ + { + "name": "BetterSignedThreshold", + "type": 39, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x12000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": 12, + "value": "0x65666666666666e6", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": 10, + "value": "0x0b88d8663c550113a3703d0ad7a370bd", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x04000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x90f70400000000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xd0070000", + "docs": [ + " Maximum number of winners that an election supports.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MaxBackersPerWinner", + "type": 4, + "value": "0xd4300000", + "docs": [ + " Maximum number of voters that can support a winner in an election solution.", + "", + " This is needed to ensure election computation is bounded." + ] + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [] + }, + { + "name": "MinerMaxWeight", + "type": 10, + "value": "0x0b88d8663c550113a3703d0ad7a370bd", + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x18000000", + "docs": [] + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xd0070000", + "docs": [] + } + ], + "errors": { + "type": 837 + }, + "index": 37, + "docs": [] + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 838 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 839 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + }, + { + "name": "NextNodeAutoRebagged", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Pointer that remembers the next node that will be auto-rebagged.", + " When `None`, the next scan will start from the list head again." + ] + }, + { + "name": "Lock", + "modifier": "Optional", + "type": { + "plain": 117 + }, + "fallback": "0x00", + "docs": [ + " Lock all updates to this pallet.", + "", + " If any nodes needs updating, removal or addition due to a temporary lock, the", + " [`Call::rebag`] can be used." + ] + } + ] + }, + "calls": { + "type": 302 + }, + "events": { + "type": 593 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 840, + "value": "0x210355a0fc0100000000daa64602000000006e739b02000000007997fc0200000000d0de6b03000000003358eb03000000000d5f7d04000000009aa6240500000000b146e4050000000067cabf0600000000d640bb07000000005350db0800000000714c250a00000000364f9f0b000000000056500d000000009862400f000000001ba17811000000006593031400000000cd42ed16000000002079431a00000000e401161e000000001ef5762200000000f90c7b2700000000e0073a2d00000000e818cf33000000008c68593b000000002ea8fc43000000000abbe14d00000000c3773759000000001986336600000000e85c13750000000018651d8600000000e846a29900000000be67feaf00000000849f9bc900000000ad2df3e60000000028f78f0801000000d817112f01000000bed32c5b01000000c2f5b38d010000000aac95c7010000002bf4e3090200000022acd855020000001060dbac020000002ef08710030000007c2eb682030000002b988205040000001754589b040000009da5fc4605000000ff099c0b060000006c3ed9ec06000000c475deee07000000960f711609000000aa2d08690a000000f892e6ec0b0000008c4638a90d000000978634a60f0000006dac44ed1100000078b93089140000001660528617000000e479cff21a0000004000ddde1e000000ffc30b5d23000000824fa082280000002793f7672e000000a638fa283500000048bfa0e53c00000047d28ac245000000c5a5ace94f000000f68e158b5b0000009083d3dd6800000066b5f72078000000cf1bc19c89000000fc6ff2a39d0000001eef5995b4000000c02092ddce000000b2ed03f9ec000000078933760f010000d30e63f8360100001252973a64010000e1230d1398010000a0722f77d301000078012180170200006533ef6f65020000428586b7be02000028e784fd24030000b13f0a269a030000d016ac5b2004000022c8b619ba04000079c7ec376a050000e092fbf7330600003d05e6141b070000f701add423080000d8108a1c53090000c8ab1b88ae0a0000b2eff0833c0c0000e858f26b040e00000f7d37ae0e100000d5a7eef264120000583f134a121500001753cb5f231800005c3664b8a61b0000a61a0af5ac1f000033f27f22492400004b3a4c1391290000288805c79d2f000037d3a7e08b360000ffa1222e7c3e0000f0c4a14394470000e5ad6f2dff510000076ebb3bee5d0000abf006ec996b00008c6c8ef4427b00003ad69a76338d0000ba57695dc0a100005dda24f04ab90000b66f609e42d400007655960f27f30000258d6c7f8a1601005169eb71143f0100b9be72cc846d01003c4b1762b7a20100cc2f3404a8df0100f7276e2a77250200480b33486f7502001d5cf5e80ad102000f6410b0fb390300a904775d32b203002de121fde73b040030afb76ca8d90400fb753e695e8e05003c44e45d615d06002cb93b35854a0700a8f8cb772c5a08007a48b90d5d9109003d3dc705d8f50a000d1e42d2348e0c001cb0be7c00620e0024796364e17910001b8ded2fc0df1200d3e942b5f69e1500e8ca99b485c41800d0c88c65525f1c00c2f577f96c8020000abce260613b250074bd4dd293a62a00ec4b61c8aadb300048b0376d08f83700c01384b1551d4000dc2bfda12172490070b645ed972254006cfc51fa516160006c93086d46686e009caae886db797e00c036837621e29000a0649b653af8a50028a34ceef61fbe00385aa297aecbd900483335165d7ef900d0cae4520ece1d010090a7aea4664701e09d92a5060d770130778edcc2a2ad01d00bb8d53b2aec0140b18c096fcb3302805193026ed98502a0f6d663a3d8e30260bbcb8701864f03a045f8b63cdfca0340816de8372c5804405e20a9d009fa04808d72453d76b30580f35bc037df8706804eeca838327b0700b198a10eef9108800b2f9b2a3dd10980a2489405043f0b00724c5a1307e20c00d8f897c605c20e009890be3de0e71000434f6546c15d1300d61cff7d4e2f16009b32b873df691900008775d0bc1c1d00da56ebaf68592100dacb4281f13326003c889ef750c32b000ab7e6cbd8213200346dad52af6d39005047e9335ec9410024ee18e8755c4b0038d4b40049545600087d76b2c2e46200981c03995c497100881e553f38c68100b0cb90a161a99400284fe59e404caa00c0e54a304015c30060cd7437b379dfffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + }, + { + "name": "MaxAutoRebagPerBlock", + "type": 4, + "value": "0x00000000", + "docs": [ + " Maximum number of accounts that may be re-bagged automatically in `on_idle`.", + "", + " A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables", + " the feature." + ] + } + ], + "errors": { + "type": 841 + }, + "index": 39, + "docs": [] + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 39 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 843 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 846 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 850 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 851 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 857 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 310 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 303 + }, + "events": { + "type": 594 + }, + "constants": [ + { + "name": "PalletId", + "type": 722, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 858 + }, + "index": 41, + "docs": [] + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 860 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ] + } + ] + }, + "calls": { + "type": 316 + }, + "events": { + "type": 596 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x344dd2c2070000000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "errors": { + "type": 863 + }, + "index": 42, + "docs": [] + }, + { + "name": "DelegatedStaking", + "storage": { + "prefix": "DelegatedStaking", + "items": [ + { + "name": "Delegators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 864 + } + }, + "fallback": "0x00", + "docs": [ + " Map of Delegators to their `Delegation`.", + "", + " Implementation note: We are not using a double map with `delegator` and `agent` account", + " as keys since we want to restrict delegators to delegate only to one account at a time." + ] + }, + { + "name": "CounterForDelegators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Agents", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 865 + } + }, + "fallback": "0x00", + "docs": [ + " Map of `Agent` to their `Ledger`." + ] + }, + { + "name": "CounterForAgents", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + } + ] + }, + "calls": null, + "events": { + "type": 597 + }, + "constants": [ + { + "name": "PalletId", + "type": 722, + "value": "0x70792f646c73746b", + "docs": [ + " Injected identifier for the pallet." + ] + }, + { + "name": "SlashRewardFraction", + "type": 39, + "value": "0x80969800", + "docs": [ + " Fraction of the slash that is rewarded to the caller of pending slash to the agent." + ] + } + ], + "errors": { + "type": 866 + }, + "index": 47, + "docs": [] + }, + { + "name": "StakingAhClient", + "storage": { + "prefix": "StakingAhClient", + "items": [ + { + "name": "ValidatorSet", + "modifier": "Optional", + "type": { + "plain": 867 + }, + "fallback": "0x00", + "docs": [ + " The queued validator sets for a given planning session index.", + "", + " This is received via a call from AssetHub." + ] + }, + { + "name": "IncompleteValidatorSetReport", + "modifier": "Optional", + "type": { + "plain": 318 + }, + "fallback": "0x00", + "docs": [ + " An incomplete validator set report." + ] + }, + { + "name": "ValidatorPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " All of the points of the validators.", + "", + " This is populated during a session, and is flushed and sent over via [`SendToAssetHub`]", + " at each session end." + ] + }, + { + "name": "Mode", + "modifier": "Default", + "type": { + "plain": 319 + }, + "fallback": "0x00", + "docs": [ + " Indicates the current operating mode of the pallet.", + "", + " This value determines how the pallet behaves in response to incoming and outgoing messages,", + " particularly whether it should execute logic directly, defer it, or delegate it entirely." + ] + }, + { + "name": "NextSessionChangesValidators", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " A storage value that is set when a `new_session` gives a new validator set to the session", + " pallet, and is cleared on the next call.", + "", + " The inner u32 is the id of the said activated validator set. While not relevant here, good", + " to know this is the planning era index of staking-async on AH.", + "", + " Once cleared, we know a validator set has been activated, and therefore we can send a", + " timestamp to AH." + ] + }, + { + "name": "ValidatorSetAppliedAt", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The session index at which the latest elected validator set was applied.", + "", + " This is used to determine if an offence, given a session index, is in the current active era", + " or not." + ] + }, + { + "name": "OutgoingSessionReport", + "modifier": "Optional", + "type": { + "plain": 868 + }, + "fallback": "0x00", + "docs": [ + " A session report that is outgoing, and should be sent.", + "", + " This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent,", + " or the second value reaches zero, at which point we drop it." + ] + }, + { + "name": "OffenceSendQueueOffences", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 871 + } + }, + "fallback": "0x00", + "docs": [ + " Internal storage item of [`OffenceSendQueue`]. Should not be used manually." + ] + }, + { + "name": "OffenceSendQueueCursor", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Internal storage item of [`OffenceSendQueue`]. Should not be used manually." + ] + } + ] + }, + "calls": { + "type": 317 + }, + "events": { + "type": 598 + }, + "constants": [], + "errors": { + "type": 875 + }, + "index": 48, + "docs": [] + }, + { + "name": "TeyrchainsOrigin", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 50, + "docs": [ + " There is no way to register an origin type in `construct_runtime` without a pallet the origin", + " belongs to.", + "", + " This module fulfills only the single purpose of housing the `Origin` in `construct_runtime`." + ] + }, + { + "name": "Configuration", + "storage": { + "prefix": "Configuration", + "items": [ + { + "name": "ActiveConfig", + "modifier": "Default", + "type": { + "plain": 876 + }, + "fallback": "0x00003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c9018096980000000000000000000000000005000000", + "docs": [ + " The active configuration for the current session." + ] + }, + { + "name": "PendingConfigs", + "modifier": "Default", + "type": { + "plain": 877 + }, + "fallback": "0x00", + "docs": [ + " Pending configuration changes.", + "", + " This is a list of configuration changes, each with a session index at which it should", + " be applied.", + "", + " The list is sorted ascending by session index. Also, this list can only contain at most", + " 2 items: for the next session and for the `scheduled_session`." + ] + }, + { + "name": "BypassConsistencyCheck", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " If this is set, then the configuration setters will bypass the consistency checks. This", + " is meant to be used only as the last resort." + ] + } + ] + }, + "calls": { + "type": 320 + }, + "events": null, + "constants": [], + "errors": { + "type": 879 + }, + "index": 51, + "docs": [] + }, + { + "name": "ParasShared", + "storage": { + "prefix": "ParasShared", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current session index." + ] + }, + { + "name": "ActiveValidatorIndices", + "modifier": "Default", + "type": { + "plain": 880 + }, + "fallback": "0x00", + "docs": [ + " All the validators actively participating in teyrchain consensus.", + " Indices are into the broader validator set." + ] + }, + { + "name": "ActiveValidatorKeys", + "modifier": "Default", + "type": { + "plain": 881 + }, + "fallback": "0x00", + "docs": [ + " The teyrchain attestation keys of the validators actively participating in teyrchain", + " consensus. This should be the same length as `ActiveValidatorIndices`." + ] + }, + { + "name": "AllowedRelayParents", + "modifier": "Default", + "type": { + "plain": 882 + }, + "fallback": "0x0000000000", + "docs": [ + " All allowed relay-parents." + ] + } + ] + }, + "calls": { + "type": 329 + }, + "events": null, + "constants": [], + "errors": null, + "index": 52, + "docs": [] + }, + { + "name": "ParaInclusion", + "storage": { + "prefix": "ParaInclusion", + "items": [ + { + "name": "V1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 893 + } + }, + "fallback": "0x00", + "docs": [ + " Candidates pending availability by `ParaId`. They form a chain starting from the latest", + " included head of the para.", + " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage", + " would otherwise have the exact same prefix which could cause undefined behaviour when doing", + " the migration." + ] + } + ] + }, + "calls": { + "type": 330 + }, + "events": { + "type": 600 + }, + "constants": [], + "errors": { + "type": 895 + }, + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "storage": { + "prefix": "ParaInherent", + "items": [ + { + "name": "Included", + "modifier": "Optional", + "type": { + "plain": 117 + }, + "fallback": "0x00", + "docs": [ + " Whether the paras inherent was included within this block.", + "", + " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant", + " due to the guarantees of FRAME's storage APIs.", + "", + " If this is `None` at the end of the block, we panic and render the block invalid." + ] + }, + { + "name": "OnChainVotes", + "modifier": "Optional", + "type": { + "plain": 896 + }, + "fallback": "0x00", + "docs": [ + " Scraped on chain data for extracting resolved disputes as well as backing votes." + ] + } + ] + }, + "calls": { + "type": 331 + }, + "events": null, + "constants": [], + "errors": { + "type": 901 + }, + "index": 54, + "docs": [] + }, + { + "name": "ParaScheduler", + "storage": { + "prefix": "ParaScheduler", + "items": [ + { + "name": "ValidatorGroups", + "modifier": "Default", + "type": { + "plain": 902 + }, + "fallback": "0x00", + "docs": [ + " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the", + " broader set of Pezkuwi validators, but instead just the subset used for teyrchains during", + " this session.", + "", + " Bound: The number of cores is the sum of the numbers of teyrchains and parathread", + " multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe", + " upper bound at 10k." + ] + }, + { + "name": "SessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number where the session start occurred. Used to track how many group rotations", + " have occurred.", + "", + " Note that in the context of teyrchains modules the session change is signaled during", + " the block and enacted at the end of the block (at the finalization stage, to be exact).", + " Thus for all intents and purposes the effect of the session change is observed at the", + " block following the session change, block number of which we save in this storage value." + ] + }, + { + "name": "ClaimQueue", + "modifier": "Default", + "type": { + "plain": 903 + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. The `VecDeque` represents the assignments to be", + " scheduled on that core." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 55, + "docs": [] + }, + { + "name": "Paras", + "storage": { + "prefix": "Paras", + "items": [ + { + "name": "PvfActiveVoteMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 346, + "value": 908 + } + }, + "fallback": "0x00", + "docs": [ + " All currently active PVF pre-checking votes.", + "", + " Invariant:", + " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa." + ] + }, + { + "name": "PvfActiveVoteList", + "modifier": "Default", + "type": { + "plain": 912 + }, + "fallback": "0x00", + "docs": [ + " The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`." + ] + }, + { + "name": "Teyrchains", + "modifier": "Default", + "type": { + "plain": 913 + }, + "fallback": "0x00", + "docs": [ + " All lease holding teyrchains. Ordered ascending by `ParaId`. On demand teyrchains are not", + " included.", + "", + " Consider using the [`TeyrchainsCache`] type of modifying." + ] + }, + { + "name": "ParaLifecycles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 914 + } + }, + "fallback": "0x00", + "docs": [ + " The current lifecycle of a all known Para IDs." + ] + }, + { + "name": "Heads", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 354 + } + }, + "fallback": "0x00", + "docs": [ + " The head-data of every registered para." + ] + }, + { + "name": "MostRecentContext", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The context (relay-chain block number) of the most recent teyrchain head." + ] + }, + { + "name": "CurrentCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 346 + } + }, + "fallback": "0x00", + "docs": [ + " The validation code hash of every live para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 915, + "value": 346 + } + }, + "fallback": "0x00", + "docs": [ + " Actual past code hash, indicated by the para id as well as the block number at which it", + " became outdated.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeMeta", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 916 + } + }, + "fallback": "0x0000", + "docs": [ + " Past code of teyrchains. The teyrchains themselves may not be registered anymore,", + " but we also keep their code on-chain for the same amount of time as outdated code", + " to keep it available for approval checkers." + ] + }, + { + "name": "PastCodePruning", + "modifier": "Default", + "type": { + "plain": 919 + }, + "fallback": "0x00", + "docs": [ + " Which paras have past code that needs pruning and the relay-chain block at which the code", + " was replaced. Note that this is the actual height of the included block, not the expected", + " height at which the code upgrade would be applied, although they may be equal.", + " This is to ensure the entire acceptance period is covered, not an offset acceptance period", + " starting from the time at which the teyrchain perceives a code upgrade as having occurred.", + " Multiple entries for a single para are permitted. Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeUpgrades", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The block number at which the planned code change is expected for a teyrchain.", + "", + " The change will be applied after the first parablock for this ID included which executes", + " in the context of a relay chain block with a number >= `expected_at`." + ] + }, + { + "name": "FutureCodeUpgradesAt", + "modifier": "Default", + "type": { + "plain": 919 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming future code upgrades.", + "", + " Each item is a pair of the teyrchain and the expected block at which the upgrade should be", + " applied. The upgrade will be applied at the given relay chain block. In contrast to", + " [`FutureCodeUpgrades`] this code upgrade will be applied regardless the teyrchain making any", + " progress or not.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 346 + } + }, + "fallback": "0x00", + "docs": [ + " The actual future code hash of a para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "AuthorizedCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 920 + } + }, + "fallback": "0x00", + "docs": [ + " The code hash authorizations for a para which will expire `expire_at` `BlockNumberFor`." + ] + }, + { + "name": "UpgradeGoAheadSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 921 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate to a teyrchain a go-ahead with in the upgrade", + " procedure.", + "", + " This value is absent when there are no upgrades scheduled or during the time the relay chain", + " performs the checks. It is set at the first relay-chain block when the corresponding", + " teyrchain can switch its upgrade function. As soon as the teyrchain's block is included, the", + " value gets reset to `None`.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 922 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate that there are restrictions for performing", + " an upgrade for this teyrchain.", + "", + " This may be a because the teyrchain waits for the upgrade cooldown to expire. Another", + " potential use case is when we want to perform some maintenance (such as storage migration)", + " we could restrict upgrades to make the process simpler.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeCooldowns", + "modifier": "Default", + "type": { + "plain": 919 + }, + "fallback": "0x00", + "docs": [ + " The list of teyrchains that are awaiting for their upgrade restriction to cooldown.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "UpcomingUpgrades", + "modifier": "Default", + "type": { + "plain": 919 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming code upgrades.", + "", + " Each item is a pair of which para performs a code upgrade and at which relay-chain block it", + " is expected at.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "ActionsQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 913 + } + }, + "fallback": "0x00", + "docs": [ + " The actions to perform during the start of a specific session index." + ] + }, + { + "name": "UpcomingParasGenesis", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 923 + } + }, + "fallback": "0x00", + "docs": [ + " Upcoming paras instantiation arguments.", + "", + " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set", + " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`." + ] + }, + { + "name": "CodeByHashRefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 346, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of reference on the validation code in [`CodeByHash`] storage." + ] + }, + { + "name": "CodeByHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 346, + "value": 353 + } + }, + "fallback": "0x00", + "docs": [ + " Validation code stored by its hash.", + "", + " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and", + " [`PastCodeHash`]." + ] + } + ] + }, + "calls": { + "type": 366 + }, + "events": { + "type": 604 + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 12, + "value": "0xffffffffffffffff", + "docs": [] + } + ], + "errors": { + "type": 924 + }, + "index": 56, + "docs": [] + }, + { + "name": "Initializer", + "storage": { + "prefix": "Initializer", + "items": [ + { + "name": "HasInitialized", + "modifier": "Optional", + "type": { + "plain": 117 + }, + "fallback": "0x00", + "docs": [ + " Whether the teyrchains modules have been initialized within this block.", + "", + " Semantically a `bool`, but this guarantees it should never hit the trie,", + " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values.", + "", + " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one", + " of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable", + " for the semantics of this variable." + ] + }, + { + "name": "BufferedSessionChanges", + "modifier": "Default", + "type": { + "plain": 925 + }, + "fallback": "0x00", + "docs": [ + " Buffered session changes.", + "", + " Typically this will be empty or one element long. Apart from that this item never hits", + " the storage.", + "", + " However this is a `Vec` regardless to handle various edge cases that may occur at runtime", + " upgrade boundaries or if governance intervenes." + ] + } + ] + }, + "calls": { + "type": 368 + }, + "events": null, + "constants": [], + "errors": null, + "index": 57, + "docs": [] + }, + { + "name": "Dmp", + "storage": { + "prefix": "Dmp", + "items": [ + { + "name": "DownwardMessageQueues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 927 + } + }, + "fallback": "0x00", + "docs": [ + " The downward messages addressed for a certain para." + ] + }, + { + "name": "DownwardMessageQueueHeads", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " A mapping that stores the downward message queue MQC head for each para.", + "", + " Each link in this chain has a form:", + " `(prev_head, B, H(M))`, where", + " - `prev_head`: is the previous head hash or zero if none.", + " - `B`: is the relay-chain block number in which a message was appended.", + " - `H(M)`: is the hash of the message being appended." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 487 + } + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 58, + "docs": [] + }, + { + "name": "Hrmp", + "storage": { + "prefix": "Hrmp", + "items": [ + { + "name": "HrmpOpenChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 370, + "value": 929 + } + }, + "fallback": "0x00", + "docs": [ + " The set of pending HRMP open channel requests.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpOpenChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 930 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpOpenChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests are initiated by a given sender para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has", + " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpAcceptedChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests were accepted by a given recipient para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with", + " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpCloseChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 370, + "value": 117 + } + }, + "fallback": "0x00", + "docs": [ + " A set of pending HRMP close channel requests that are going to be closed during the session", + " change. Used for checking if a given channel is registered for closure.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpCloseChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 930 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpWatermarks", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The HRMP watermark associated with each para.", + " Invariant:", + " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a", + " session." + ] + }, + { + "name": "HrmpChannels", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 370, + "value": 931 + } + }, + "fallback": "0x00", + "docs": [ + " HRMP channel data associated with each para.", + " Invariant:", + " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session." + ] + }, + { + "name": "HrmpIngressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 913 + } + }, + "fallback": "0x00", + "docs": [ + " Ingress/egress indexes allow to find all the senders and receivers given the opposite side.", + " I.e.", + "", + " (a) ingress index allows to find all the senders for a given recipient.", + " (b) egress index allows to find all the recipients for a given sender.", + "", + " Invariants:", + " - for each ingress index entry for `P` each item `I` in the index should present in", + " `HrmpChannels` as `(I, P)`.", + " - for each egress index entry for `P` each item `E` in the index should present in", + " `HrmpChannels` as `(P, E)`.", + " - there should be no other dangling channels in `HrmpChannels`.", + " - the vectors are sorted." + ] + }, + { + "name": "HrmpEgressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 913 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpChannelContents", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 370, + "value": 932 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for the messages for each channel.", + " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`." + ] + }, + { + "name": "HrmpChannelDigests", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 934 + } + }, + "fallback": "0x00", + "docs": [ + " Maintains a mapping that can be used to answer the question: What paras sent a message at", + " the given block number for a given receiver. Invariants:", + " - The inner `Vec` is never empty.", + " - The inner `Vec` cannot store two same `ParaId`.", + " - The outer vector is sorted ascending by block number and cannot store two items with the", + " same block number." + ] + } + ] + }, + "calls": { + "type": 369 + }, + "events": { + "type": 605 + }, + "constants": [], + "errors": { + "type": 936 + }, + "index": 60, + "docs": [] + }, + { + "name": "ParaSessionInfo", + "storage": { + "prefix": "ParaSessionInfo", + "items": [ + { + "name": "AssignmentKeysUnsafe", + "modifier": "Default", + "type": { + "plain": 937 + }, + "fallback": "0x00", + "docs": [ + " Assignment keys for the current session.", + " Note that this API is private due to it being prone to 'off-by-one' at session boundaries.", + " When in doubt, use `Sessions` API instead." + ] + }, + { + "name": "EarliestStoredSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The earliest session for which previous session info is stored." + ] + }, + { + "name": "Sessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 938 + } + }, + "fallback": "0x00", + "docs": [ + " Session information in a rolling window.", + " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`.", + " Does not have any entries before the session index in the first session change notification." + ] + }, + { + "name": "AccountKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 120 + } + }, + "fallback": "0x00", + "docs": [ + " The validator account keys of the validators actively participating in teyrchain consensus." + ] + }, + { + "name": "SessionExecutorParams", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 322 + } + }, + "fallback": "0x00", + "docs": [ + " Executor parameter set for a given session index" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 61, + "docs": [] + }, + { + "name": "ParasDisputes", + "storage": { + "prefix": "ParasDisputes", + "items": [ + { + "name": "LastPrunedSession", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The last pruned session, if any. All data stored by this module", + " references sessions." + ] + }, + { + "name": "Disputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 941, + "value": 942 + } + }, + "fallback": "0x00", + "docs": [ + " All ongoing or concluded disputes for the last several sessions." + ] + }, + { + "name": "BackersOnDisputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 941, + "value": 943 + } + }, + "fallback": "0x00", + "docs": [ + " Backing votes stored for each dispute.", + " This storage is used for slashing." + ] + }, + { + "name": "Included", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 941, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " All included blocks on the chain, as well as the block number in this chain that", + " should be reverted back to if the candidate is disputed and determined to be invalid." + ] + }, + { + "name": "Frozen", + "modifier": "Default", + "type": { + "plain": 40 + }, + "fallback": "0x00", + "docs": [ + " Whether the chain is frozen. Starts as `None`. When this is `Some`,", + " the chain will not accept any new teyrchain blocks for backing or inclusion,", + " and its value indicates the last valid block number in the chain.", + " It can only be set back to `None` by governance intervention." + ] + } + ] + }, + "calls": { + "type": 371 + }, + "events": { + "type": 606 + }, + "constants": [], + "errors": { + "type": 944 + }, + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "storage": { + "prefix": "ParasSlashing", + "items": [ + { + "name": "UnappliedSlashes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 941, + "value": 945 + } + }, + "fallback": "0x00", + "docs": [ + " Validators pending dispute slashes." + ] + }, + { + "name": "ValidatorSetCounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " `ValidatorSetCount` per session." + ] + } + ] + }, + "calls": { + "type": 372 + }, + "events": null, + "constants": [], + "errors": { + "type": 949 + }, + "index": 63, + "docs": [] + }, + { + "name": "OnDemandAssignmentProvider", + "storage": { + "prefix": "OnDemandAssignmentProvider", + "items": [ + { + "name": "ParaIdAffinity", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 950 + } + }, + "fallback": "0x00", + "docs": [ + " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in", + " it's lookahead. Keeping track of this affinity prevents parallel execution of the same", + " `ParaId` on two or more `CoreIndex`es." + ] + }, + { + "name": "QueueStatus", + "modifier": "Default", + "type": { + "plain": 951 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000000000000000000000", + "docs": [ + " Overall status of queue (both free + affinity entries)" + ] + }, + { + "name": "FreeEntries", + "modifier": "Default", + "type": { + "plain": 956 + }, + "fallback": "0x00", + "docs": [ + " Priority queue for all orders which don't yet (or not any more) have any core affinity." + ] + }, + { + "name": "AffinityEntries", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 602, + "value": 956 + } + }, + "fallback": "0x00", + "docs": [ + " Queue entries that are currently bound to a particular core due to core affinity." + ] + }, + { + "name": "Revenue", + "modifier": "Default", + "type": { + "plain": 959 + }, + "fallback": "0x00", + "docs": [ + " Keeps track of accumulated revenue from on demand order sales." + ] + }, + { + "name": "Credits", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Keeps track of credits owned by each account." + ] + } + ] + }, + "calls": { + "type": 376 + }, + "events": { + "type": 609 + }, + "constants": [ + { + "name": "TrafficDefaultValue", + "type": 487, + "value": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The default value for the spot traffic multiplier." + ] + }, + { + "name": "MaxHistoricalRevenue", + "type": 4, + "value": "0xa0000000", + "docs": [ + " The maximum number of blocks some historical revenue", + " information stored for." + ] + }, + { + "name": "PalletId", + "type": 722, + "value": "0x70792f6f6e646d64", + "docs": [ + " Identifier for the internal revenue balance." + ] + } + ], + "errors": { + "type": 961 + }, + "index": 64, + "docs": [] + }, + { + "name": "CoretimeAssignmentProvider", + "storage": { + "prefix": "CoretimeAssignmentProvider", + "items": [ + { + "name": "CoreSchedules", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox256" + ], + "key": 962, + "value": 963 + } + }, + "fallback": "0x00", + "docs": [ + " Scheduled assignment sets.", + "", + " Assignments as of the given block number. They will go into state once the block number is", + " reached (and replace whatever was in there before)." + ] + }, + { + "name": "CoreDescriptors", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox256" + ], + "key": 602, + "value": 964 + } + }, + "fallback": "0x0000", + "docs": [ + " Assignments which are currently active.", + "", + " They will be picked from `PendingAssignments` once we reach the scheduled block number in", + " `PendingAssignments`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": { + "type": 972 + }, + "index": 65, + "docs": [] + }, + { + "name": "Registrar", + "storage": { + "prefix": "Registrar", + "items": [ + { + "name": "PendingSwap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 164 + } + }, + "fallback": "0x00", + "docs": [ + " Pending swap operations." + ] + }, + { + "name": "Paras", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 973 + } + }, + "fallback": "0x00", + "docs": [ + " Amount held on deposit for each para and the original depositor.", + "", + " The given account ID is responsible for registering the code and initial head data, but may", + " only do so if it isn't yet registered. (After that, it's up to governance to do so.)" + ] + }, + { + "name": "NextFreeParaId", + "modifier": "Default", + "type": { + "plain": 164 + }, + "fallback": "0x00000000", + "docs": [ + " The next free `ParaId`." + ] + } + ] + }, + "calls": { + "type": 377 + }, + "events": { + "type": 610 + }, + "constants": [ + { + "name": "ParaDeposit", + "type": 6, + "value": "0x00409452a30300000000000000000000", + "docs": [ + " The deposit to be paid to run a on-demand teyrchain.", + " This should include the cost for storing the genesis head and validation code." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x55a0fc01000000000000000000000000", + "docs": [ + " The deposit to be paid per byte stored on chain." + ] + } + ], + "errors": { + "type": 974 + }, + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "storage": { + "prefix": "Slots", + "items": [ + { + "name": "Leases", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 975 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts held on deposit for each (possibly future) leased teyrchain.", + "", + " The actual amount locked on its behalf by any account at any time is the maximum of the", + " second values of the items in this list whose first value is the account.", + "", + " The first item in the list is the amount locked for the current Lease Period. Following", + " items are for the subsequent lease periods.", + "", + " The default value (an empty list) implies that the teyrchain no longer exists (or never", + " existed) as far as this pallet is concerned.", + "", + " If a teyrchain doesn't exist *yet* but is scheduled to exist in the future, then it", + " will be left-padded with one or more `None`s to denote the fact that nothing is held on", + " deposit for the non-existent chain currently, but is held at some point in the future.", + "", + " It is illegal for a `None` value to trail in the list." + ] + } + ] + }, + "calls": { + "type": 378 + }, + "events": { + "type": 611 + }, + "constants": [ + { + "name": "LeasePeriod", + "type": 4, + "value": "0x803a0900", + "docs": [ + " The number of blocks over which a single period lasts." + ] + }, + { + "name": "LeaseOffset", + "type": 4, + "value": "0x00000000", + "docs": [ + " The number of blocks to offset each lease period by." + ] + } + ], + "errors": { + "type": 976 + }, + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "storage": { + "prefix": "Auctions", + "items": [ + { + "name": "AuctionCounter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of auctions started so far." + ] + }, + { + "name": "AuctionInfo", + "modifier": "Optional", + "type": { + "plain": 206 + }, + "fallback": "0x00", + "docs": [ + " Information relating to the current auction, if there is one.", + "", + " The first item in the tuple is the lease period index that the first of the four", + " contiguous lease periods on auction is for. The second is the block number when the", + " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction." + ] + }, + { + "name": "ReservedAmounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 977, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts currently reserved in the accounts of the bidders currently winning", + " (sub-)ranges." + ] + }, + { + "name": "Winning", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 978 + } + }, + "fallback": "0x00", + "docs": [ + " The winning bids for each of the 10 ranges at each sample in the final Ending Period of", + " the current auction. The map's key is the 0-based index into the Sample Size. The", + " first sample of the ending period is 0; the last is `Sample Size - 1`." + ] + } + ] + }, + "calls": { + "type": 379 + }, + "events": { + "type": 612 + }, + "constants": [ + { + "name": "EndingPeriod", + "type": 4, + "value": "0x40190100", + "docs": [ + " The number of blocks over which an auction may be retroactively ended." + ] + }, + { + "name": "SampleLength", + "type": 4, + "value": "0x14000000", + "docs": [ + " The length of each sample to take during the ending period.", + "", + " `EndingPeriod` / `SampleLength` = Total # of Samples" + ] + }, + { + "name": "SlotRangeCount", + "type": 4, + "value": "0x24000000", + "docs": [] + }, + { + "name": "LeasePeriodsPerSlot", + "type": 4, + "value": "0x08000000", + "docs": [] + } + ], + "errors": { + "type": 981 + }, + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "storage": { + "prefix": "Crowdloan", + "items": [ + { + "name": "Funds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 164, + "value": 982 + } + }, + "fallback": "0x00", + "docs": [ + " Info on all of the funds." + ] + }, + { + "name": "NewRaise", + "modifier": "Default", + "type": { + "plain": 913 + }, + "fallback": "0x00", + "docs": [ + " The funds that have had additional contributions during the last block. This is used", + " in order to determine which funds should submit new or updated bids." + ] + }, + { + "name": "EndingsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of auctions that have entered into their ending period so far." + ] + }, + { + "name": "NextFundIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Tracker for the next available fund index" + ] + } + ] + }, + "calls": { + "type": 381 + }, + "events": { + "type": 613 + }, + "constants": [ + { + "name": "PalletId", + "type": 722, + "value": "0x70792f6366756e64", + "docs": [ + " `PalletId` for the crowdloan pallet. An appropriate value could be", + " `PalletId(*b\"py/cfund\")`" + ] + }, + { + "name": "MinContribution", + "type": 6, + "value": "0x180ca5d4e80000000000000000000000", + "docs": [ + " The minimum amount that may be contributed into a crowdloan. Should almost certainly be", + " at least `ExistentialDeposit`." + ] + }, + { + "name": "RemoveKeysLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of storage keys to remove per extrinsic call." + ] + } + ], + "errors": { + "type": 984 + }, + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "storage": null, + "calls": { + "type": 386 + }, + "events": { + "type": 614 + }, + "constants": [ + { + "name": "BrokerId", + "type": 4, + "value": "0xed030000", + "docs": [ + " The ParaId of the coretime chain." + ] + }, + { + "name": "BrokerPotLocation", + "type": 80, + "value": "0x0101006d6f646c70792f62726f6b650000000000000000000000000000000000000000", + "docs": [ + " The coretime chain pot location." + ] + } + ], + "errors": { + "type": 985 + }, + "index": 74, + "docs": [] + }, + { + "name": "XcmPallet", + "storage": { + "prefix": "XcmPallet", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 986 + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 991, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 991, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 991, + "value": 992 + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": 993 + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": 996 + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 998, + "value": 999 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 1003 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Global suspension state of the XCM executor." + ] + }, + { + "name": "ShouldRecordXcm", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not incoming XCMs (both executed locally and received) should be recorded.", + " Only one XCM program will be recorded at a time.", + " This is meant to be used in runtime APIs, and it's advised it stays false", + " for all other use cases, so as to not degrade regular performance.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "RecordedXcm", + "modifier": "Optional", + "type": { + "plain": 438 + }, + "fallback": "0x00", + "docs": [ + " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally", + " will be stored here.", + " Runtime APIs can fetch the XCM that was executed by accessing this value.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "AuthorizedAliases", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 93, + "value": 1006 + } + }, + "fallback": "0x00", + "docs": [ + " Map of authorized aliasers of local origins. Each local location can authorize a list of", + " other locations to alias into it. Each aliaser is only valid until its inner `expiry`", + " block number." + ] + } + ] + }, + "calls": { + "type": 391 + }, + "events": { + "type": 615 + }, + "constants": [ + { + "name": "UniversalLocation", + "type": 80, + "value": "0x010903", + "docs": [ + " This chain's Universal Location." + ] + }, + { + "name": "AdvertisedXcmVersion", + "type": 4, + "value": "0x05000000", + "docs": [ + " The latest supported version that we advertise. Generally just set it to", + " `pallet_xcm::CurrentXcmVersion`." + ] + }, + { + "name": "MaxLockers", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of local XCM locks that a single account may have." + ] + }, + { + "name": "MaxRemoteLockConsumers", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of consumers a single remote lock may have." + ] + } + ], + "errors": { + "type": 1012 + }, + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 484, + "value": 1014 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 484 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 1017, + "value": 1018 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 483 + }, + "events": { + "type": 619 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x10000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 455, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 455, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 1020 + }, + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 53, + "value": 487 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 486 + }, + "events": { + "type": 621 + }, + "constants": [], + "errors": { + "type": 1021 + }, + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 1022 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ] + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 1022 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ] + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 40 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ] + } + ] + }, + "calls": { + "type": 488 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " The maximum number of authorities that can be added." + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xa800000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 1024 + }, + "index": 200, + "docs": [] + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 201, + "docs": [] + }, + { + "name": "BeefyMmrLeaf", + "storage": { + "prefix": "BeefyMmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 1025 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ] + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 1025 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 202, + "docs": [] + }, + { + "name": "RcMigrator", + "storage": { + "prefix": "RcMigrator", + "items": [ + { + "name": "RcMigrationStage", + "modifier": "Default", + "type": { + "plain": 503 + }, + "fallback": "0x00", + "docs": [ + " The Relay Chain migration state." + ] + }, + { + "name": "RcAccounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1026 + } + }, + "fallback": "0x00", + "docs": [ + " Helper storage item to obtain and store the known accounts that should be kept partially or", + " fully on Relay Chain." + ] + }, + { + "name": "CounterForRcAccounts", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RcMigratedBalance", + "modifier": "Default", + "type": { + "plain": 1027 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Helper storage item to store the total balance that should be kept on Relay Chain." + ] + }, + { + "name": "RcMigratedBalanceArchive", + "modifier": "Default", + "type": { + "plain": 1027 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Helper storage item to store the total balance that should be kept on Relay Chain after", + " it is consumed from the `RcMigratedBalance` storage item and sent to the Asset Hub.", + "", + " This let us to take the value from the `RcMigratedBalance` storage item and keep the", + " `SignalMigrationFinish` stage to be idempotent while preserving these values for tests and", + " later discoveries." + ] + }, + { + "name": "PendingXcmMessages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 438 + } + }, + "fallback": "0x00", + "docs": [ + " The pending XCM messages.", + "", + " Contains data messages that have been sent to the Asset Hub but not yet confirmed.", + "", + " Unconfirmed messages can be resent by calling the [`Pallet::resend_xcm`] function." + ] + }, + { + "name": "CounterForPendingXcmMessages", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "PureProxyCandidatesMigrated", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " Accounts that use the proxy pallet to delegate permissions and have no nonce.", + "", + " Boolean value is whether they have been migrated to the Asset Hub. Needed for idempotency." + ] + }, + { + "name": "PendingXcmQueries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The pending XCM response queries and their XCM hash referencing the message in the", + " [`PendingXcmMessages`] storage.", + "", + " The `QueryId` is the identifier from the [`pallet_xcm`] query handler registry. The XCM", + " pallet will notify about the status of the message by calling the", + " [`Pallet::receive_query_response`] function with the `QueryId` and the", + " response." + ] + }, + { + "name": "UnprocessedMsgBuffer", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Manual override for `type UnprocessedMsgBuffer: Get`. Look there for docs." + ] + }, + { + "name": "AhUmpQueuePriorityConfig", + "modifier": "Default", + "type": { + "plain": 552 + }, + "fallback": "0x00", + "docs": [ + " The priority of the Asset Hub UMP queue during migration.", + "", + " Controls how the Asset Hub UMP (Upward Message Passing) queue is processed relative to other", + " queues during the migration process. This helps ensure timely processing of migration", + " messages. The default priority pattern is defined in the pallet configuration, but can be", + " overridden by a storage value of this type." + ] + }, + { + "name": "Manager", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " An optional account id of a manager.", + "", + " This account id has similar privileges to [`Config::AdminOrigin`] except that it", + " can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "Canceller", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " An optional account id of a canceller.", + "", + " This account id can only stop scheduled migration." + ] + }, + { + "name": "MigrationStartBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The block number at which the migration began and the pallet's extrinsics were locked.", + "", + " This value is set when entering the `WaitingForAh` stage, i.e., when", + " `RcMigrationStage::is_ongoing()` becomes `true`." + ] + }, + { + "name": "MigrationEndBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number when migration finished and extrinsics were unlocked.", + "", + " This is set when entering the `MigrationDone` stage hence when", + " `RcMigrationStage::is_finished()` becomes `true`." + ] + }, + { + "name": "WarmUpPeriod", + "modifier": "Optional", + "type": { + "plain": 166 + }, + "fallback": "0x00", + "docs": [ + " The duration of the pre migration warm-up period.", + "", + " This is the duration of the warm-up period before the data migration starts. During this", + " period, the migration will be in ongoing state and the concerned extrinsics will be locked." + ] + }, + { + "name": "CoolOffPeriod", + "modifier": "Optional", + "type": { + "plain": 166 + }, + "fallback": "0x00", + "docs": [ + " The duration of the post migration cool-off period.", + "", + " This is the duration of the cool-off period after the data migration is finished. During", + " this period, the migration will be still in ongoing state and the concerned extrinsics will", + " be locked." + ] + }, + { + "name": "ManagerMultisigs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 1028 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "ManagerMultisigRound", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [] + } + ] + }, + "calls": { + "type": 502 + }, + "events": { + "type": 622 + }, + "constants": [], + "errors": { + "type": 1029 + }, + "index": 255, + "docs": [] + } + ], + "extrinsic": { + "version": 4, + "addressType": 116, + "callType": 100, + "signatureType": 385, + "extraType": 1030, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 1031, + "additionalSigned": 117 + }, + { + "identifier": "CheckSpecVersion", + "type": 1032, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 1033, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 1034, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 1035, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 1037, + "additionalSigned": 117 + }, + { + "identifier": "CheckWeight", + "type": 1038, + "additionalSigned": 117 + }, + { + "identifier": "ChargeTransactionPayment", + "type": 1039, + "additionalSigned": 117 + }, + { + "identifier": "CheckMetadataHash", + "type": 1040, + "additionalSigned": 523 + } + ] + }, + "type": 580, + "apis": [ + { + "name": "Inflation", + "methods": [ + { + "name": "experimental_inflation_prediction_info", + "inputs": [], + "output": 1042, + "docs": [ + " Return the current estimates of the inflation amount.", + "", + " This is marked as experimental in light of RFC#89. Nonetheless, its usage is highly", + " recommended over trying to read-storage, or re-create the onchain logic." + ] + } + ], + "docs": [] + }, + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 636, + "docs": [ + " Returns the version of the runtime." + ] + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "type": 1044 + } + ], + "output": 117, + "docs": [ + " Execute the given block." + ] + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "type": 107 + } + ], + "output": 1047, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ] + } + ], + "docs": [ + " The `Core` runtime api that every Bizinikiwi runtime needs to implement." + ] + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 1048, + "docs": [ + " Returns the metadata of a runtime." + ] + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "type": 4 + } + ], + "output": 1049, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ] + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 125, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ] + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ] + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "type": 1045 + } + ], + "output": 1050, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ] + }, + { + "name": "finalize_block", + "inputs": [], + "output": 107, + "docs": [ + " Finish the current block." + ] + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "type": 1054 + } + ], + "output": 1046, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ] + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "type": 1044 + }, + { + "name": "data", + "type": 1054 + } + ], + "output": 1058, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ] + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ] + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "type": 1059 + }, + { + "name": "tx", + "type": 1045 + }, + { + "name": "block_hash", + "type": 13 + } + ], + "output": 1060, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ] + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ] + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "type": 107 + } + ], + "output": 117, + "docs": [ + " Starts the off-chain task for given block header." + ] + } + ], + "docs": [ + " The offchain worker api." + ] + }, + { + "name": "TeyrchainHost", + "methods": [ + { + "name": "validators", + "inputs": [], + "output": 881, + "docs": [ + " Get the current validators." + ] + }, + { + "name": "validator_groups", + "inputs": [], + "output": 1062, + "docs": [ + " Returns the validator groups and rotation info localized based on the hypothetical child", + " of a block whose state this is invoked on. Note that `now` in the `GroupRotationInfo`", + " should be the successor of the number of the block." + ] + }, + { + "name": "availability_cores", + "inputs": [], + "output": 1064, + "docs": [ + " Yields information on all availability cores as relevant to the child block.", + " Cores are either free or occupied. Free cores can have paras assigned to them." + ] + }, + { + "name": "persisted_validation_data", + "inputs": [ + { + "name": "para_id", + "type": 164 + }, + { + "name": "assumption", + "type": 1071 + } + ], + "output": 1072, + "docs": [ + " Yields the persisted validation data for the given `ParaId` along with an assumption that", + " should be used if the para currently occupies a core.", + "", + " Returns `None` if either the para is not registered or the assumption is `Freed`", + " and the para already occupies a core." + ] + }, + { + "name": "assumed_validation_data", + "inputs": [ + { + "name": "para_id", + "type": 164 + }, + { + "name": "expected_persisted_validation_data_hash", + "type": 13 + } + ], + "output": 1074, + "docs": [ + " Returns the persisted validation data for the given `ParaId` along with the corresponding", + " validation code hash. Instead of accepting assumption about the para, matches the validation", + " data hash against an expected one and yields `None` if they're not equal." + ] + }, + { + "name": "check_validation_outputs", + "inputs": [ + { + "name": "para_id", + "type": 164 + }, + { + "name": "outputs", + "type": 347 + } + ], + "output": 8, + "docs": [ + " Checks if the given validation outputs pass the acceptance criteria." + ] + }, + { + "name": "session_index_for_child", + "inputs": [], + "output": 4, + "docs": [ + " Returns the session index expected at a child of the block.", + "", + " This can be used to instantiate a `SigningContext`." + ] + }, + { + "name": "validation_code", + "inputs": [ + { + "name": "para_id", + "type": 164 + }, + { + "name": "assumption", + "type": 1071 + } + ], + "output": 352, + "docs": [ + " Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.", + "", + " Returns `None` if either the para is not registered or the assumption is `Freed`", + " and the para already occupies a core." + ] + }, + { + "name": "candidate_pending_availability", + "inputs": [ + { + "name": "para_id", + "type": 164 + } + ], + "output": 1076, + "docs": [ + " Get the receipt of a candidate pending availability. This returns `Some` for any paras", + " assigned to occupied cores in `availability_cores` and `None` otherwise." + ] + }, + { + "name": "candidate_events", + "inputs": [], + "output": 1077, + "docs": [ + " Get a vector of events concerning candidates that occurred within a block." + ] + }, + { + "name": "dmq_contents", + "inputs": [ + { + "name": "recipient", + "type": 164 + } + ], + "output": 927, + "docs": [ + " Get all the pending inbound messages in the downward message queue for a para." + ] + }, + { + "name": "inbound_hrmp_channels_contents", + "inputs": [ + { + "name": "recipient", + "type": 164 + } + ], + "output": 1079, + "docs": [ + " Get the contents of all channels addressed to the given recipient. Channels that have no", + " messages in them are also included." + ] + }, + { + "name": "validation_code_by_hash", + "inputs": [ + { + "name": "hash", + "type": 346 + } + ], + "output": 352, + "docs": [ + " Get the validation code from its hash." + ] + }, + { + "name": "on_chain_votes", + "inputs": [], + "output": 1082, + "docs": [ + " Scrape dispute relevant from on-chain, backing votes and resolved disputes." + ] + }, + { + "name": "session_info", + "inputs": [ + { + "name": "index", + "type": 4 + } + ], + "output": 1083, + "docs": [ + " Get the session info for the given session, if stored.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "submit_pvf_check_statement", + "inputs": [ + { + "name": "stmt", + "type": 367 + }, + { + "name": "signature", + "type": 339 + } + ], + "output": 117, + "docs": [ + " Submits a PVF pre-checking statement into the transaction pool.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "pvfs_require_precheck", + "inputs": [], + "output": 912, + "docs": [ + " Returns code hashes of PVFs that require pre-checking by validators in the active set.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "validation_code_hash", + "inputs": [ + { + "name": "para_id", + "type": 164 + }, + { + "name": "assumption", + "type": 1071 + } + ], + "output": 1084, + "docs": [ + " Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "disputes", + "inputs": [], + "output": 1085, + "docs": [ + " Returns all onchain disputes." + ] + }, + { + "name": "session_executor_params", + "inputs": [ + { + "name": "session_index", + "type": 4 + } + ], + "output": 1087, + "docs": [ + " Returns execution parameters for the session." + ] + }, + { + "name": "unapplied_slashes", + "inputs": [], + "output": 1088, + "docs": [ + " Returns a list of validators that lost a past session dispute and need to be slashed.", + " NOTE: This function is only available since teyrchain host version 5." + ] + }, + { + "name": "key_ownership_proof", + "inputs": [ + { + "name": "validator_id", + "type": 139 + } + ], + "output": 1092, + "docs": [ + " Returns a merkle proof of a validator session key.", + " NOTE: This function is only available since teyrchain host version 5." + ] + }, + { + "name": "submit_report_dispute_lost", + "inputs": [ + { + "name": "dispute_proof", + "type": 1094 + }, + { + "name": "key_ownership_proof", + "type": 1093 + } + ], + "output": 516, + "docs": [ + " Submit an unsigned extrinsic to slash validators who lost a dispute about", + " a candidate of a past session.", + " NOTE: This function is only available since teyrchain host version 5." + ] + }, + { + "name": "minimum_backing_votes", + "inputs": [], + "output": 4, + "docs": [ + " Get the minimum number of backing votes for a teyrchain candidate.", + " This is a staging method! Do not use on production runtimes!" + ] + }, + { + "name": "para_backing_state", + "inputs": [ + { + "name": "__runtime_api_generated_name_0__", + "type": 164 + } + ], + "output": 1095, + "docs": [ + " Returns the state of teyrchain backing for a given para." + ] + }, + { + "name": "async_backing_params", + "inputs": [], + "output": 321, + "docs": [ + " Returns candidate's acceptance limitations for asynchronous backing for a relay parent." + ] + }, + { + "name": "disabled_validators", + "inputs": [], + "output": 880, + "docs": [ + " Returns a list of all disabled validators at the given block." + ] + }, + { + "name": "node_features", + "inputs": [], + "output": 336, + "docs": [ + " Get node features.", + " This is a staging method! Do not use on production runtimes!" + ] + }, + { + "name": "approval_voting_params", + "inputs": [], + "output": 327, + "docs": [ + " Approval voting configuration parameters" + ] + }, + { + "name": "claim_queue", + "inputs": [], + "output": 1107, + "docs": [ + " Claim queue" + ] + }, + { + "name": "candidates_pending_availability", + "inputs": [ + { + "name": "para_id", + "type": 164 + } + ], + "output": 1110, + "docs": [ + " Elastic scaling support" + ] + }, + { + "name": "validation_code_bomb_limit", + "inputs": [], + "output": 4, + "docs": [ + " Retrieve the maximum uncompressed code size." + ] + }, + { + "name": "backing_constraints", + "inputs": [ + { + "name": "para_id", + "type": 164 + } + ], + "output": 1111, + "docs": [ + " Returns the constraints on the actions that can be taken by a new teyrchain", + " block." + ] + }, + { + "name": "scheduling_lookahead", + "inputs": [], + "output": 4, + "docs": [ + " Retrieve the scheduling lookahead" + ] + } + ], + "docs": [ + " The API for querying the state of teyrchains on-chain." + ] + }, + { + "name": "BeefyApi", + "methods": [ + { + "name": "beefy_genesis", + "inputs": [], + "output": 40, + "docs": [ + " Return the block number where BEEFY consensus is enabled/started" + ] + }, + { + "name": "validator_set", + "inputs": [], + "output": 1113, + "docs": [ + " Return the current active BEEFY validator set" + ] + }, + { + "name": "submit_report_double_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 489 + }, + { + "name": "key_owner_proof", + "type": 1115 + } + ], + "output": 516, + "docs": [ + " Submits an unsigned extrinsic to report a double voting equivocation. The caller", + " must provide the double voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "submit_report_fork_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 1116 + }, + { + "name": "key_owner_proof", + "type": 1115 + } + ], + "output": 516, + "docs": [ + " Submits an unsigned extrinsic to report a fork voting equivocation. The caller", + " must provide the fork voting proof (the ancestry proof should be obtained using", + " `generate_ancestry_proof`) and a key ownership proof (should be obtained using", + " `generate_key_ownership_proof`). The extrinsic will be unsigned and should only", + " be accepted for local authorship (not to be broadcast to the network). This method", + " returns `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "submit_report_future_block_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 501 + }, + { + "name": "key_owner_proof", + "type": 1115 + } + ], + "output": 516, + "docs": [ + " Submits an unsigned extrinsic to report a future block voting equivocation. The caller", + " must provide the future block voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`).", + " The extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 142 + } + ], + "output": 1117, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ] + }, + { + "name": "generate_ancestry_proof", + "inputs": [ + { + "name": "prev_block_number", + "type": 4 + }, + { + "name": "best_known_block_number", + "type": 40 + } + ], + "output": 1117, + "docs": [ + " Generates a proof that the `prev_block_number` is part of the canonical chain at", + " `best_known_block_number`." + ] + } + ], + "docs": [ + " API necessary for BEEFY voters." + ] + }, + { + "name": "MmrApi", + "methods": [ + { + "name": "mmr_root", + "inputs": [], + "output": 1118, + "docs": [ + " Return the on-chain MMR root hash." + ] + }, + { + "name": "mmr_leaf_count", + "inputs": [], + "output": 1120, + "docs": [ + " Return the number of MMR blocks in the chain." + ] + }, + { + "name": "generate_proof", + "inputs": [ + { + "name": "block_numbers", + "type": 125 + }, + { + "name": "best_known_block_number", + "type": 40 + } + ], + "output": 1121, + "docs": [ + " Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,", + " use historical MMR state at given block height `n`. Else, use current MMR state." + ] + }, + { + "name": "verify_proof", + "inputs": [ + { + "name": "leaves", + "type": 1123 + }, + { + "name": "proof", + "type": 1125 + } + ], + "output": 1126, + "docs": [ + " Verify MMR proof against on-chain MMR for a batch of leaves.", + "", + " Note this function will use on-chain MMR root hash and check if the proof matches the hash.", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ] + }, + { + "name": "verify_proof_stateless", + "inputs": [ + { + "name": "root", + "type": 13 + }, + { + "name": "leaves", + "type": 1123 + }, + { + "name": "proof", + "type": 1125 + } + ], + "output": 1126, + "docs": [ + " Verify MMR proof against given root hash for a batch of leaves.", + "", + " Note this function does not require any on-chain storage - the", + " proof is verified against given MMR root hash.", + "", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ] + } + ], + "docs": [ + " API to interact with MMR pallet." + ] + }, + { + "name": "BeefyMmrApi", + "methods": [ + { + "name": "authority_set_proof", + "inputs": [], + "output": 1025, + "docs": [ + " Return the currently active BEEFY authority set proof." + ] + }, + { + "name": "next_authority_set_proof", + "inputs": [], + "output": 1025, + "docs": [ + " Return the next/queued BEEFY authority set proof." + ] + } + ], + "docs": [ + " API useful for BEEFY light clients." + ] + }, + { + "name": "GrandpaApi", + "methods": [ + { + "name": "grandpa_authorities", + "inputs": [], + "output": 49, + "docs": [ + " Get the current GRANDPA authorities and weights. This should not change except", + " for when changes are scheduled and the corresponding delay has passed.", + "", + " When called at block B, it will return the set of authorities that should be", + " used to finalize descendants of this block (B+1, B+2, ...). The block B itself", + " is finalized by the authorities from block B-1." + ] + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 145 + }, + { + "name": "key_owner_proof", + "type": 1115 + } + ], + "output": 516, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 51 + } + ], + "output": 1117, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignore this parameter and instead rely on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ] + }, + { + "name": "current_set_id", + "inputs": [], + "output": 12, + "docs": [ + " Get current GRANDPA authority set id." + ] + } + ], + "docs": [ + " APIs for integrating the GRANDPA finality gadget into runtimes.", + " This should be implemented on the runtime side.", + "", + " This is primarily used for negotiating authority-set changes for the", + " gadget. GRANDPA uses a signaling model of changing authority sets:", + " changes should be signaled with a delay of N blocks, and then automatically", + " applied in the runtime after those N blocks have passed.", + "", + " The consensus protocol will coordinate the handoff externally." + ] + }, + { + "name": "BabeApi", + "methods": [ + { + "name": "configuration", + "inputs": [], + "output": 1127, + "docs": [ + " Return the configuration for BABE." + ] + }, + { + "name": "current_epoch_start", + "inputs": [], + "output": 109, + "docs": [ + " Returns the slot that started the current epoch." + ] + }, + { + "name": "current_epoch", + "inputs": [], + "output": 1128, + "docs": [ + " Returns information regarding the current epoch." + ] + }, + { + "name": "next_epoch", + "inputs": [], + "output": 1128, + "docs": [ + " Returns information regarding the next epoch (which was already", + " previously announced)." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "slot", + "type": 109 + }, + { + "name": "authority_id", + "type": 108 + } + ], + "output": 1129, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " current epoch. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `slot` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the epoch for the given slot is live on-chain. Future", + " implementations will instead use indexed data through an offchain", + " worker, not requiring older states to be available." + ] + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 106 + }, + { + "name": "key_owner_proof", + "type": 1130 + } + ], + "output": 516, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + } + ], + "docs": [ + " API necessary for block authorship with BABE." + ] + }, + { + "name": "AuthorityDiscoveryApi", + "methods": [ + { + "name": "authorities", + "inputs": [], + "output": 717, + "docs": [ + " Retrieve authority identifiers of the current and next authority set." + ] + } + ], + "docs": [ + " The authority discovery api.", + "", + " This api is used by the `client/authority-discovery` module to retrieve identifiers", + " of the current and next authority set." + ] + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "type": 997 + } + ], + "output": 14, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ] + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "type": 14 + } + ], + "output": 1131, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ] + } + ], + "docs": [ + " Session keys runtime api." + ] + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ] + } + ], + "docs": [ + " The API to query account nonce." + ] + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "type": 1045 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1134, + "docs": [] + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "type": 1045 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1135, + "docs": [] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "type": 100 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1134, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ] + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "type": 100 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1135, + "docs": [ + " Query fee details of a given encoded `Call`." + ] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ] + } + ], + "docs": [] + }, + { + "name": "XcmPaymentApi", + "methods": [ + { + "name": "query_acceptable_payment_assets", + "inputs": [ + { + "name": "xcm_version", + "type": 4 + } + ], + "output": 1138, + "docs": [ + " Returns a list of acceptable payment assets.", + "", + " # Arguments", + "", + " * `xcm_version`: Version." + ] + }, + { + "name": "query_xcm_weight", + "inputs": [ + { + "name": "message", + "type": 392 + } + ], + "output": 1141, + "docs": [ + " Returns a weight needed to execute a XCM.", + "", + " # Arguments", + "", + " * `message`: `VersionedXcm`." + ] + }, + { + "name": "query_weight_to_asset_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + }, + { + "name": "asset", + "type": 481 + } + ], + "output": 1142, + "docs": [ + " Converts a weight into a fee for the specified `AssetId`.", + "", + " # Arguments", + "", + " * `weight`: convertible `Weight`.", + " * `asset`: `VersionedAssetId`." + ] + }, + { + "name": "query_delivery_fees", + "inputs": [ + { + "name": "destination", + "type": 93 + }, + { + "name": "message", + "type": 392 + } + ], + "output": 1143, + "docs": [ + " Get delivery fees for sending a specific `message` to a `destination`.", + " These always come in a specific asset, defined by the chain.", + "", + " # Arguments", + " * `message`: The message that'll be sent, necessary because most delivery fees are based on the", + " size of the message.", + " * `destination`: The destination to send the message to. Different destinations may use", + " different senders that charge different fees." + ] + } + ], + "docs": [ + " A trait of XCM payment API.", + "", + " API provides functionality for obtaining:", + "", + " * the weight required to execute an XCM message,", + " * a list of acceptable `AssetId`s for message execution payment,", + " * the cost of the weight in the specified acceptable `AssetId`.", + " * the fees for an XCM message delivery.", + "", + " To determine the execution weight of the calls required for", + " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used." + ] + }, + { + "name": "DryRunApi", + "methods": [ + { + "name": "dry_run_call", + "inputs": [ + { + "name": "origin", + "type": 160 + }, + { + "name": "call", + "type": 100 + }, + { + "name": "result_xcms_version", + "type": 4 + } + ], + "output": 1144, + "docs": [ + " Dry run call V2." + ] + }, + { + "name": "dry_run_xcm", + "inputs": [ + { + "name": "origin_location", + "type": 93 + }, + { + "name": "xcm", + "type": 469 + } + ], + "output": 1152, + "docs": [ + " Dry run XCM program" + ] + } + ], + "docs": [ + " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API.", + "", + " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\".", + " If there's local execution, the location will be \"Here\".", + " This vector can be used to calculate both execution and delivery fees.", + "", + " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`.", + " In those cases, there might still be a valid result, with the execution error inside it.", + " The only reasons why these calls might return an error are listed in the [`Error`] enum." + ] + }, + { + "name": "LocationToAccountApi", + "methods": [ + { + "name": "convert_location", + "inputs": [ + { + "name": "location", + "type": 93 + } + ], + "output": 1154, + "docs": [ + " Converts `Location` to `AccountId`." + ] + } + ], + "docs": [ + " API for useful conversions between XCM `Location` and `AccountId`." + ] + }, + { + "name": "NominationPoolsApi", + "methods": [ + { + "name": "pending_rewards", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending rewards for the member that the AccountId was given for." + ] + }, + { + "name": "points_to_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "points", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent balance of `points` for a given pool." + ] + }, + { + "name": "balance_to_points", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "new_funds", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent points of `new_funds` for a given pool." + ] + }, + { + "name": "pool_pending_slash", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool." + ] + }, + { + "name": "member_pending_slash", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool member.", + "", + " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on", + " chain." + ] + }, + { + "name": "pool_needs_delegate_migration", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 8, + "docs": [ + " Returns true if the pool with `pool_id` needs migration.", + "", + " This can happen when the `pallet-nomination-pools` has switched to using strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool", + " still has funds that were staked using the older strategy", + " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use", + " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)", + " to migrate the pool." + ] + }, + { + "name": "member_needs_delegate_migration", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if the delegated funds of the pool `member` needs migration.", + "", + " Once a pool has successfully migrated to the strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the", + " member can be migrated from pool account to the member's account. Use", + " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)", + " to migrate the funds of the pool member." + ] + }, + { + "name": "member_total_balance", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the total contribution of a pool member including any balance that is unbonding." + ] + }, + { + "name": "pool_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Total balance contributed to the pool." + ] + }, + { + "name": "pool_accounts", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 541, + "docs": [ + " Returns the bonded account and reward account associated with the pool_id." + ] + } + ], + "docs": [ + " Runtime api for accessing information about nomination pools." + ] + }, + { + "name": "StakingApi", + "methods": [ + { + "name": "nominations_quota", + "inputs": [ + { + "name": "balance", + "type": 6 + } + ], + "output": 4, + "docs": [ + " Returns the nominations quota for a nominator with a given balance." + ] + }, + { + "name": "eras_stakers_page_count", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Returns the page count of exposures for a validator `account` in a given era." + ] + }, + { + "name": "pending_rewards", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if validator `account` has pages to be claimed for the given era." + ] + } + ], + "docs": [] + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "type": 14 + } + ], + "output": 1156, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full", + " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the", + " provided JSON blob is incorrect or incomplete or the deserialization fails, an error", + " is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ] + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "type": 1157 + } + ], + "output": 997, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function should return JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ] + }, + { + "name": "preset_names", + "inputs": [], + "output": 1158, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ] + } + ], + "docs": [ + " API to interact with `RuntimeGenesisConfig` for the runtime" + ] + } + ], + "outerEnums": { + "callType": 100, + "eventType": 21, + "errorType": 1159 + }, + "custom": { + "map": {} + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/dicle-rpc.ts b/packages/types-support/src/metadata/v15/dicle-rpc.ts new file mode 100644 index 0000000..09d531d --- /dev/null +++ b/packages/types-support/src/metadata/v15/dicle-rpc.ts @@ -0,0 +1,138 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev --alice --force-authoring + +export default { + "methods": [ + "account_nextIndex", + "archive_v1_body", + "archive_v1_call", + "archive_v1_finalizedHeight", + "archive_v1_genesisHash", + "archive_v1_hashByHeight", + "archive_v1_header", + "archive_v1_stopStorage", + "archive_v1_storage", + "archive_v1_storageDiff", + "archive_v1_storageDiff_stopStorageDiff", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v15/dicle-types.json b/packages/types-support/src/metadata/v15/dicle-types.json new file mode 100644 index 0000000..1107763 --- /dev/null +++ b/packages/types-support/src/metadata/v15/dicle-types.json @@ -0,0 +1,73257 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 624, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 214, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 32, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 33, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 36, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 44, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Historical", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "session_historical::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 48, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 94, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 98, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "FellowshipCollective", + "fields": [ + { + "name": null, + "type": 557, + "typeName": "pallet_ranked_collective::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "FellowshipReferenda", + "fields": [ + { + "name": null, + "type": 560, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 561, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 565, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 573, + "typeName": "claims::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 574, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 576, + "typeName": "pallet_society::Event", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 578, + "typeName": "pallet_recovery::Event", + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 581, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 582, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 583, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 585, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 586, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 587, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 588, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 589, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 593, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 594, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 596, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 597, + "typeName": "pallet_delegated_staking::Event", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "StakingAhClient", + "fields": [ + { + "name": null, + "type": 598, + "typeName": "pallet_staking_async_ah_client::Event", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 600, + "typeName": "teyrchains_inclusion::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 604, + "typeName": "teyrchains_paras::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 605, + "typeName": "teyrchains_hrmp::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 606, + "typeName": "teyrchains_disputes::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "OnDemandAssignmentProvider", + "fields": [ + { + "name": null, + "type": 609, + "typeName": "teyrchains_on_demand::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 610, + "typeName": "paras_registrar::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 611, + "typeName": "slots::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 612, + "typeName": "auctions::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 613, + "typeName": "crowdloan::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 614, + "typeName": "coretime::Event", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 615, + "typeName": "pallet_xcm::Event", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 619, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 621, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "RcMigrator", + "fields": [ + { + "name": null, + "type": 622, + "typeName": "pallet_rc_migrator::Event", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + }, + { + "name": "RejectedInvalidAuthorizedUpgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An invalid authorized upgrade was rejected while trying to apply it." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "DispatchEventInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Trie", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "TrieError", + "docs": [] + } + ], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "proving_trie", + "TrieError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidStateRoot", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "IncompleteDatabase", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ValueAtIncompleteKey", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DecoderError", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DuplicateKey", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExtraneousNode", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ExtraneousValue", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "ExtraneousHashReference", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidChildReference", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ValueMismatch", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IncompleteProof", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "RootMismatch", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DecodeError", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A deposit to reserve an index has been poked/reconsidered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 34, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 22, + "docs": [ + "An unexpected/defensive event was triggered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 34, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_balances", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceUpdated", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FailedToMutateAccount", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 37, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 38, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "next", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 41, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 43, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + }, + { + "name": "CurrencyMigrated", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "force_withdraw", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Staking balance migrated from locks to holds, with any balance that could not be held", + "is force withdrawn." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 39, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 40, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 42, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 42, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 39 + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 45, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 14, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 45, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [ + "pallet_session", + "historical", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RootStored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The merkle root of the validators of the said session were stored" + ] + }, + { + "name": "RootsPruned", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The merkle roots of up to this session index were pruned" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + }, + { + "name": "NewQueued", + "fields": [], + "index": 1, + "docs": [ + "The `NewSession` event in the current block also implies a new validator set to be", + "queued." + ] + }, + { + "name": "ValidatorDisabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Validator has been disabled." + ] + }, + { + "name": "ValidatorReenabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Validator has been re-enabled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 49, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 49, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 50 + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 51, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 53, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 53, + "type": { + "path": [ + "pezkuwi_runtime_common", + "impls", + "VersionedLocatableAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": "location", + "type": 54, + "typeName": "xcm::v3::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 64, + "typeName": "xcm::v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 65, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 78, + "typeName": "xcm::v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": "location", + "type": 79, + "typeName": "xcm::v5::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 92, + "typeName": "xcm::v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 55, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 55, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 56, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 58, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 58, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 58, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 60, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 62, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 63, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 59, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 59 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 59, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 61, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 62, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Moniker", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 63, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 66, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 66, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 73, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 74, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 75, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 67, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 69, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 69, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 69, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 60, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 62, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 63, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 70 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 70, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 71, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 77, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 65, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [ + "staging_xcm", + "v5", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 80, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [ + "staging_xcm", + "v5", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 89, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 90, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 82, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 83, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 83, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 83, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 60, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 62, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 63, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 84 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 84, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 84, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 85, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 87, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 89, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 82 + } + }, + "docs": [] + } + }, + { + "id": 92, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 93, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "v3::MultiLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "v5::Location", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 95, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account has voted" + ] + }, + { + "name": "VoteRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 95, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A vote has been removed" + ] + }, + { + "name": "VoteUnlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "class", + "type": 97, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The lockup period of a conviction vote expired, and the funds have been unlocked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 95, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 96, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 97, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 99, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 97, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 99, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 556, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 556, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 556, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 556, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 556, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 556, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 99, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 100 + }, + { + "name": "H", + "type": 554 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 555, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 101, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 114, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 119, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 122, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 144, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 155, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 159, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "FellowshipCollective", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "FellowshipReferenda", + "fields": [ + { + "name": null, + "type": 169, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 189, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 197, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 199, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 200, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 202, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 204, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 207, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 210, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 213, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 215, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 216, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 217, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 302, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 303, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "StakingAhClient", + "fields": [ + { + "name": null, + "type": 317, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Configuration", + "fields": [ + { + "name": null, + "type": 320, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "ParasShared", + "fields": [ + { + "name": null, + "type": 329, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 330, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "fields": [ + { + "name": null, + "type": 331, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Initializer", + "fields": [ + { + "name": null, + "type": 368, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 369, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 371, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "fields": [ + { + "name": null, + "type": 372, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "OnDemandAssignmentProvider", + "fields": [ + { + "name": null, + "type": 376, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 377, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 379, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 381, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 391, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 483, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 486, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 488, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "RcMigrator", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 102, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 104, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 102, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 103 + } + }, + "docs": [] + } + }, + { + "id": 103, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 105, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 106, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 106, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 111, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 106, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 107 + }, + { + "name": "Id", + "type": 108 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 108, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 109, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 107, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 107, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 107, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 57, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 108, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 109, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 104, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 111, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 112, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 113, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 115, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Poke the deposit reserved for an index.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "The transaction fees is waived if the deposit is changed after poking/reconsideration.", + "", + "- `index`: the index whose deposit is to be poked/reconsidered.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 116, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 117 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 118, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 117 + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 121, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 61, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 120, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 38, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "[`asset::existential_deposit`], then it is increased to the full amount.", + "", + "The stash may be chilled if the ledger total amount falls to 0 after unbonding.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do whatever", + "it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans` indicates the number of metadata slashing spans to clear when", + "this call results in a complete removal of all the data related to the stash account.", + "In this case, the `num_slashing_spans` must be larger or equal to the number of", + "slashing spans associated with the stash account in the [`SlashingSpans`] storage type,", + "otherwise the call will fail. The call weight is directly proportional to", + "`num_slashing_spans`.", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 41, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 123, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 38, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 124, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill.", + "They **must** be sorted in ascending order, *and* unique." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 123, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 126, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 126, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 127, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 127, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 128, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 129, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 128, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 130, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 132, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 133, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + }, + { + "name": "migrate_currency", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Removes the legacy Staking locks if they exist.", + "", + "This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a", + "hold on it if needed. If all stake cannot be held, the best effort is made to hold as", + "much as possible. The remaining stake is forced withdrawn from the ledger.", + "", + "The fee is waived if the migration is successful." + ] + }, + { + "name": "manual_slash", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 33, + "docs": [ + "This function allows governance to manually slash a validator and is a", + "**fallback mechanism**.", + "", + "The dispatch origin must be `T::AdminOrigin`.", + "", + "## Parameters", + "- `validator_stash` - The stash account of the validator to slash.", + "- `era` - The era in which the validator was in the active set.", + "- `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill.", + "", + "## Behavior", + "", + "The slash will be applied using the standard slashing mechanics, respecting the", + "configured `SlashDeferDuration`.", + "", + "This means:", + "- If the validator was already slashed by a higher percentage for the same era, this", + " slash will have no additional effect.", + "- If the validator was previously slashed by a lower percentage, only the difference", + " will be applied.", + "- The slash will be deferred by `SlashDeferDuration` eras before being enacted." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 123, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 116 + } + }, + "docs": [] + } + }, + { + "id": 124, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 125, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 124 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 39, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 120, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 132, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 134 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 134, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 134, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 135 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 136, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 57, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 136, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 135 + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 138, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 138, + "type": { + "path": [ + "staging_zagros_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 51, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 108, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_validator", + "type": 139, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_assignment", + "type": 140, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 141, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 142, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "validator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "assignment_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 143, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 143, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 145, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 145, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 145, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 146, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 147, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 147, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 51 + }, + { + "name": "V", + "type": 148 + }, + { + "name": "S", + "type": 149 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 51, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 151, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 151, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 150, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 148, + 149 + ] + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 51 + }, + { + "name": "V", + "type": 153 + }, + { + "name": "S", + "type": 149 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 51, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 154, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 154, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 154, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 153, + 149 + ] + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 57, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 61, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 40, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 156, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 57, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 95, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 97, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 157, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 97, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 97, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 158, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 97, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 157, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 97 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 97, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 160, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 99, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 166, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 97, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 167, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 160, + "type": { + "path": [ + "staging_zagros_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 162, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "TeyrchainsOrigin", + "fields": [ + { + "name": null, + "type": 163, + "typeName": "teyrchains_origin::Origin", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "pallet_xcm::Origin", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Authorized", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [ + "staging_zagros_runtime", + "governance", + "origins", + "pallet_custom_origins", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingAdmin", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Treasurer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "FellowshipAdmin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "GeneralAdmin", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AuctionAdmin", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LeaseAdmin", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ReferendumCanceller", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ReferendumKiller", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "SmallTipper", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BigTipper", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "SmallSpender", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MediumSpender", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "BigSpender", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "WhitelistedCaller", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "FellowshipInitiates", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Fellows", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "FellowshipExperts", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FellowshipMasters", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "Fellowship1Dan", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "Fellowship2Dan", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "Fellowship3Dan", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Fellowship4Dan", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "Fellowship5Dan", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "Fellowship6Dan", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "Fellowship7Dan", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "Fellowship8Dan", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "Fellowship9Dan", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "WishForChange", + "fields": [], + "index": 27, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 163, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "origin", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "Id" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Response", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 166, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AddOrigin`.", + "- `who`: Account of non-member which will become a member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `PromoteOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `DemoteOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_rank", + "type": 97, + "typeName": "Rank", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `RemoveOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "aye", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + }, + { + "name": "exchange_member", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Exchanges a member with a new account and the same existing rank.", + "", + "- `origin`: Must be the `ExchangeOrigin`.", + "- `who`: Account of existing member of rank greater than zero to be exchanged.", + "- `new_who`: New Account of existing member of rank greater than zero to exchanged to." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 160, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 99, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 166, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 97, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 167, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 170, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 171, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 172, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 172, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inflation", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "dynamic_params::inflation::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 182, + "typeName": "dynamic_params::treasury::Parameters", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "MinInflation", + "docs": [] + }, + { + "name": null, + "type": 175, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 177, + "typeName": "MaxInflation", + "docs": [] + }, + { + "name": null, + "type": 175, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 178, + "typeName": "IdealStake", + "docs": [] + }, + { + "name": null, + "type": 175, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 179, + "typeName": "Falloff", + "docs": [] + }, + { + "name": null, + "type": 175, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "UseAuctionSlots", + "fields": [ + { + "name": null, + "type": 180, + "typeName": "UseAuctionSlots", + "docs": [] + }, + { + "name": null, + "type": 181, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "MinInflation" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 176 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 176, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "MaxInflation" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "IdealStake" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "Falloff" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "UseAuctionSlots" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "treasury", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BurnPortion", + "fields": [ + { + "name": null, + "type": 183, + "typeName": "BurnPortion", + "docs": [] + }, + { + "name": null, + "type": 184, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BurnDestination", + "fields": [ + { + "name": null, + "type": 186, + "typeName": "BurnDestination", + "docs": [] + }, + { + "name": null, + "type": 187, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "treasury", + "BurnPortion" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 184, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 185 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 185, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "treasury", + "BurnDestination" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 188 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 188, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [ + "staging_zagros_runtime", + "BurnDestinationAccount" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 190, + "typeName": "EcdsaSignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make a claim to collect your DOTs.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to claim is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)", + "", + "and `address` matches the `dest` account.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "mint_claim", + "fields": [ + { + "name": "who", + "type": 192, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vesting_schedule", + "type": 193, + "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>", + "docs": [] + }, + { + "name": "statement", + "type": 195, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Mint a new claim to collect DOTs.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "Parameters:", + "- `who`: The Ethereum address allowed to collect this claim.", + "- `value`: The number of DOTs that will be claimed.", + "- `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "We assume worst case that both vesting and statement is being inserted.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "claim_attest", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 190, + "typeName": "EcdsaSignature", + "docs": [] + }, + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Make a claim to collect your DOTs by signing a statement.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to `claim_attest` is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)(statement)", + "", + "and `address` matches the `dest` account; the `statement` must match that which is", + "expected according to your purchase arrangement.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim_attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "attest", + "fields": [ + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Attest to a statement, needed to finalize the claims process.", + "", + "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a", + "`TransactionExtension`.", + "", + "Unsigned Validation:", + "A call to attest is deemed valid if the sender has a `Preclaim` registered", + "and provides a `statement` which is expected for the account.", + "", + "Parameters:", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to do pre-validation on `attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "move_claim", + "fields": [ + { + "name": "old", + "type": 192, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "new", + "type": 192, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "maybe_preclaim", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 190, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EcdsaSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 191, + "typeName": "[u8; 65]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 191, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EthereumAddress" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 60, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 194 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 194, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 196 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 196, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "StatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Regular", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Saft", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 197, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 198, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 198, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 160, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 198, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + }, + { + "name": "if_else", + "fields": [ + { + "name": "main", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "fallback", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Dispatch a fallback call in the event the main call fails to execute.", + "May be called from any origin except `None`.", + "", + "This function first attempts to dispatch the `main` call.", + "If the `main` call fails, the `fallback` is attemted.", + "if the fallback is successfully dispatched, the weights of both calls", + "are accumulated and an event containing the main call error is deposited.", + "", + "In the event of a fallback failure the whole call fails", + "with the weights returned.", + "", + "- `main`: The main call to be dispatched. This is the primary action to execute.", + "- `fallback`: The fallback call to be dispatched in case the `main` call fails.", + "", + "## Dispatch Logic", + "- If the origin is `root`, both the main and fallback calls are executed without", + " applying any origin filters.", + "- If the origin is not `root`, the origin filter is applied to both the `main` and", + " `fallback` calls.", + "", + "## Use Case", + "- Some use cases might involve submitting a `batch` type call in either main, fallback", + " or both." + ] + }, + { + "name": "dispatch_as_fallible", + "fields": [ + { + "name": "as_origin", + "type": 160, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 198, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 100 + } + }, + "docs": [] + } + }, + { + "id": 199, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society." + ] + }, + { + "name": "unbid", + "fields": [], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder." + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout." + ] + }, + { + "name": "unvouch", + "fields": [], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`)." + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`)." + ] + }, + { + "name": "payout", + "fields": [], + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining." + ] + }, + { + "name": "waive_repay", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Repay the payment previously given to the member with the signed origin, remove any", + "pending payments, and elevate them from rank 0 to rank 1." + ] + }, + { + "name": "found_society", + "fields": [ + { + "name": "founder", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "rules", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group.", + "- `rules` - The rules of this society concerning membership.", + "", + "Complexity: O(1)" + ] + }, + { + "name": "dissolve", + "fields": [], + "index": 9, + "docs": [ + "Dissolve the society and remove all members.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member." + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "forgive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be Signed from the Founder.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member." + ] + }, + { + "name": "set_parameters", + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the maximum number of members in society and the maximum number of new candidates", + "in a single intake period.", + "", + "The dispatch origin for this call must be Signed by the Founder.", + "", + "Parameters:", + "- `max_members` - The maximum number of members for the society. This must be no less", + " than the current number of members.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group." + ] + }, + { + "name": "punish_skeptic", + "fields": [], + "index": 12, + "docs": [ + "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the", + "candidate." + ] + }, + { + "name": "claim_membership", + "fields": [], + "index": 13, + "docs": [ + "Transform an approved candidate into a member. Callable only by the", + "the candidate, and only after the period for voting has ended." + ] + }, + { + "name": "bestow_membership", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Transform an approved candidate into a member. Callable only by the Signed origin of the", + "Founder, only after the period for voting has ended and only when the candidate is not", + "clearly rejected." + ] + }, + { + "name": "kick_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove the candidate's application from the society. Callable only by the Signed origin", + "of the Founder, only after the period for voting has ended, and only when they do not", + "have a clear approval.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "resign_candidacy", + "fields": [], + "index": 16, + "docs": [ + "Remove the candidate's application from the society. Callable only by the candidate.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "drop_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a `candidate`'s failed application from the society. Callable by any", + "signed origin but only at the end of the subsequent round and only for", + "a candidate with more rejections than approvals.", + "", + "The bid deposit is lost and the voucher is banned." + ] + }, + { + "name": "cleanup_candidacy", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Remove up to `max` stale votes for the given `candidate`.", + "", + "May be called by any Signed origin, but only after the candidate's candidacy is ended." + ] + }, + { + "name": "cleanup_challenge", + "fields": [ + { + "name": "challenge_round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove up to `max` stale votes for the defender in the given `challenge_round`.", + "", + "May be called by any Signed origin, but only after the challenge round is ended." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 20, + "docs": [ + "Poke the deposit reserved when bidding.", + "", + "The dispatch origin for this call must be _Signed_ and must be the bidder.", + "", + "The transaction fee is waived if the deposit is changed after poking/reconsideration.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 200, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "threshold", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumberFromProviderOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "fields": [], + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "maybe_account", + "type": 201, + "typeName": "Option>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Poke deposits for recovery configurations and / or active recoveries.", + "", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `maybe_account`: Optional recoverable account for which you have an active recovery", + "and want to adjust the deposit for the active recovery.", + "", + "This function checks both recovery configuration deposit and active recovery deposits", + "of the caller:", + "- If the caller has created a recovery configuration, checks and adjusts its deposit", + "- If the caller has initiated any active recoveries, and provides the account in", + "`maybe_account`, checks and adjusts those deposits", + "", + "If any deposit is updated, the difference will be reserved/unreserved from the caller's", + "account.", + "", + "The transaction is made free if any deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if any deposit is updated.", + "Multiple events may be emitted in case both types of deposits are updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 201, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 116 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 116, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 203, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 203, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 116, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 203, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 205, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 205, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 205, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 205, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 205, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 206 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 206, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 208, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `create_pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 97, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 57, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`create_pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `create_pure` to create this account.", + "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `create_pure`.", + "- `height`: The height of the chain when the call to `create_pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `create_pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 208, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 10, + "docs": [ + "Poke / Adjust deposits made for proxies and announcements based on current values.", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 208, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 209 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 209, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [ + "zagros_runtime_constants", + "proxy", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Society", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Spokesperson", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ParaRegistration", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 211, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 211, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 212, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "threshold", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Poke the deposit reserved for an existing multisig operation.", + "", + "The dispatch origin for this call must be _Signed_ and must be the original depositor of", + "the multisig operation.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "- `threshold`: The total number of approvals needed for this multisig.", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + " multisig.", + "- `call_hash`: The hash of the call this deposit is reserved for.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 211, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 212 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 212, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 214, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "approve_bounty_with_curator", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Approve bountry and propose a curator simultaneously.", + "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "- `bounty_id`: Bounty ID to approve.", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Poke the deposit reserved for creating a bounty proposal.", + "", + "This can be used by accounts to update their reserved amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `bounty_id`: The bounty id for which to adjust the deposit.", + "", + "If the deposit is updated, the difference will be reserved/unreserved from the", + "proposer's account.", + "", + "The transaction is made free if the deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if the deposit is updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 216, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 57, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 217, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 218, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 295, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 296, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 297, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 218, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 218, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 219 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 219, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 294, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [ + "staging_zagros_runtime", + "NposCompactSolution24" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 220, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 223, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 228, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 231, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 234, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 237, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 240, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 243, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 246, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 249, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 252, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 255, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 258, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 261, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 264, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 267, + "typeName": null, + "docs": [] + }, + { + "name": "votes17", + "type": 270, + "typeName": null, + "docs": [] + }, + { + "name": "votes18", + "type": 273, + "typeName": null, + "docs": [] + }, + { + "name": "votes19", + "type": 276, + "typeName": null, + "docs": [] + }, + { + "name": "votes20", + "type": 279, + "typeName": null, + "docs": [] + }, + { + "name": "votes21", + "type": 282, + "typeName": null, + "docs": [] + }, + { + "name": "votes22", + "type": 285, + "typeName": null, + "docs": [] + }, + { + "name": "votes23", + "type": 288, + "typeName": null, + "docs": [] + }, + { + "name": "votes24", + "type": 291, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 221 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 97 + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 224 + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 225, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 222, + 226 + ] + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 227 + } + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 97, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 229 + } + }, + "docs": [] + } + }, + { + "id": 229, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 230, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 232 + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 233, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 235 + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 236, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 238 + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 239, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 240, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 241 + } + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 242, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 242, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 244 + } + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 245, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 246, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 247 + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 248, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 248, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 250 + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 251, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 251, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 252, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 253 + } + }, + "docs": [] + } + }, + { + "id": 253, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 254, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 256 + } + }, + "docs": [] + } + }, + { + "id": 256, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 257, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 259 + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 260, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 262 + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 263, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 265 + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 266, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 267, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 268 + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 269, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 269, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 270, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 271 + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 272, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 274 + } + }, + "docs": [] + } + }, + { + "id": 274, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 275, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 277 + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 278, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 280 + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 281, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 283 + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 284, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 286 + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 287, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 289 + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 290, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 292 + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 293, + 222 + ] + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 57, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 294 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 294, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 298 + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 299 + ] + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 300, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 301 + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 303, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is delegated (or transferred based on", + "[`adapter::StakeStrategyType`]) from the member to the pool account and immediately", + "increases the pool's bond.", + "", + "The method of transferring the amount to the pool account is determined by", + "[`adapter::StakeStrategyType`]. If the pool is configured to use", + "[`adapter::StakeStrategyType::Delegate`], the funds remain in the account of", + "the `origin`, while the pool gains the right to use these funds for staking.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 304, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to", + "have at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 305, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 306, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 306, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 307, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 307, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 307, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 308, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 309, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 309, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 309, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller is the pool's nominator or root." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 304, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 310, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 311, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 313, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The `root` role of the pool is _always_ allowed to claim the pool's commission.", + "", + "If the pool has set `CommissionClaimPermission::Permissionless`, then any account can", + "trigger the process of claiming the pool's commission.", + "", + "If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only", + "accounts", + "* `acc`, and", + "* the pool's root account", + "", + "may call this extrinsic on behalf of the pool.", + "", + "Pending commissions are paid out and added to the total claimed commission.", + "The total pending commission is reset to zero." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 314, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "The pending slash amount of the member must be equal or more than `ExistentialDeposit`.", + "This call can be dispatched permissionlessly (i.e. by any account). If the execution", + "is successful, fee is refunded and caller may be rewarded with a part of the slash", + "based on the [`crate::pallet::Config::StakeAdapter`] configuration." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 116, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 304, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 39, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 312 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 312, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 39, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 315 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 315, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed", + "by a call to `rebond` in the staking system.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`].", + "", + "## Details", + "", + "Can set the number of eras to check per block, and potentially other admin work.", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 317, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "validator_set", + "fields": [ + { + "name": "report", + "type": 318, + "typeName": "rc_client::ValidatorSetReport", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "set_mode", + "fields": [ + { + "name": "mode", + "type": 319, + "typeName": "OperatingMode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allows governance to force set the operating mode of the pallet." + ] + }, + { + "name": "force_on_migration_end", + "fields": [], + "index": 2, + "docs": [ + "manually do what this pallet was meant to do at the end of the migration." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "ValidatorSetReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "new_validator_set", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "prune_up_to", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 319, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "OperatingMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Passive", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Buffered", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 320, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_upgrade_cooldown", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the validation upgrade cooldown." + ] + }, + { + "name": "set_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the validation upgrade delay." + ] + }, + { + "name": "set_code_retention_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the acceptance period for an included candidate." + ] + }, + { + "name": "set_max_code_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the max validation code size for incoming upgrades." + ] + }, + { + "name": "set_max_pov_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the max POV block size for incoming upgrades." + ] + }, + { + "name": "set_max_head_data_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the max head data size for paras." + ] + }, + { + "name": "set_coretime_cores", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the number of coretime execution cores.", + "", + "NOTE: that this configuration is managed by the coretime chain. Only manually change", + "this, if you really know what you are doing!" + ] + }, + { + "name": "set_group_rotation_frequency", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the teyrchain validator-group rotation frequency" + ] + }, + { + "name": "set_paras_availability_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the availability period for paras." + ] + }, + { + "name": "set_scheduling_lookahead", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Set the scheduling lookahead, in expected number of blocks at peak throughput." + ] + }, + { + "name": "set_max_validators_per_core", + "fields": [ + { + "name": "new", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Set the maximum number of validators to assign to any core." + ] + }, + { + "name": "set_max_validators", + "fields": [ + { + "name": "new", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Set the maximum number of validators to use in teyrchain consensus." + ] + }, + { + "name": "set_dispute_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the dispute period, in number of sessions to keep for disputes." + ] + }, + { + "name": "set_dispute_post_conclusion_acceptance_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Set the dispute post conclusion acceptance period." + ] + }, + { + "name": "set_no_show_slots", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the no show slots, in number of number of consensus slots.", + "Must be at least 1." + ] + }, + { + "name": "set_n_delay_tranches", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the total number of delay tranches." + ] + }, + { + "name": "set_zeroth_delay_tranche_width", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the zeroth delay tranche width." + ] + }, + { + "name": "set_needed_approvals", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Set the number of validators needed to approve a block." + ] + }, + { + "name": "set_relay_vrf_modulo_samples", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion." + ] + }, + { + "name": "set_max_upward_queue_count", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Sets the maximum items that can present in a upward dispatch queue at once." + ] + }, + { + "name": "set_max_upward_queue_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Sets the maximum total size of items that can present in a upward dispatch queue at", + "once." + ] + }, + { + "name": "set_max_downward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Set the critical downward message size." + ] + }, + { + "name": "set_max_upward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Sets the maximum size of an upward message that can be sent by a candidate." + ] + }, + { + "name": "set_max_upward_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the maximum number of messages that a candidate can contain." + ] + }, + { + "name": "set_hrmp_open_request_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Sets the number of sessions after which an HRMP open channel request expires." + ] + }, + { + "name": "set_hrmp_sender_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Sets the amount of funds that the sender should provide for opening an HRMP channel." + ] + }, + { + "name": "set_hrmp_recipient_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Sets the amount of funds that the recipient should provide for accepting opening an HRMP", + "channel." + ] + }, + { + "name": "set_hrmp_channel_max_capacity", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Sets the maximum number of messages allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_channel_max_total_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_max_teyrchain_inbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Sets the maximum number of inbound HRMP channels a teyrchain is allowed to accept." + ] + }, + { + "name": "set_hrmp_channel_max_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Sets the maximum size of a message that could ever be put into an HRMP channel." + ] + }, + { + "name": "set_hrmp_max_teyrchain_outbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Sets the maximum number of outbound HRMP channels a teyrchain is allowed to open." + ] + }, + { + "name": "set_hrmp_max_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 39, + "docs": [ + "Sets the maximum number of outbound HRMP messages can be sent by a candidate." + ] + }, + { + "name": "set_pvf_voting_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 42, + "docs": [ + "Set the number of session changes after which a PVF pre-checking voting is rejected." + ] + }, + { + "name": "set_minimum_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 43, + "docs": [ + "Sets the minimum delay between announcing the upgrade block for a teyrchain until the", + "upgrade taking place.", + "", + "See the field documentation for information and constraints for the new value." + ] + }, + { + "name": "set_bypass_consistency_check", + "fields": [ + { + "name": "new", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 44, + "docs": [ + "Setting this to true will disable consistency checks for the configuration setters.", + "Use with caution." + ] + }, + { + "name": "set_async_backing_params", + "fields": [ + { + "name": "new", + "type": 321, + "typeName": "AsyncBackingParams", + "docs": [] + } + ], + "index": 45, + "docs": [ + "Set the asynchronous backing parameters." + ] + }, + { + "name": "set_executor_params", + "fields": [ + { + "name": "new", + "type": 322, + "typeName": "ExecutorParams", + "docs": [] + } + ], + "index": 46, + "docs": [ + "Set PVF executor parameters." + ] + }, + { + "name": "set_on_demand_base_fee", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 47, + "docs": [ + "Set the on demand (parathreads) base fee." + ] + }, + { + "name": "set_on_demand_fee_variability", + "fields": [ + { + "name": "new", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 48, + "docs": [ + "Set the on demand (parathreads) fee variability." + ] + }, + { + "name": "set_on_demand_queue_max_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 49, + "docs": [ + "Set the on demand (parathreads) queue max size." + ] + }, + { + "name": "set_on_demand_target_queue_utilization", + "fields": [ + { + "name": "new", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 50, + "docs": [ + "Set the on demand (parathreads) fee variability." + ] + }, + { + "name": "set_minimum_backing_votes", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 52, + "docs": [ + "Set the minimum backing votes threshold." + ] + }, + { + "name": "set_node_feature", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "value", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 53, + "docs": [ + "Set/Unset a node feature." + ] + }, + { + "name": "set_approval_voting_params", + "fields": [ + { + "name": "new", + "type": 327, + "typeName": "ApprovalVotingParams", + "docs": [] + } + ], + "index": 54, + "docs": [ + "Set approval-voting-params." + ] + }, + { + "name": "set_scheduler_params", + "fields": [ + { + "name": "new", + "type": 328, + "typeName": "SchedulerParams>", + "docs": [] + } + ], + "index": 55, + "docs": [ + "Set scheduler-params." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 321, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "AsyncBackingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "executor_params", + "ExecutorParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 323, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 324 + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "executor_params", + "ExecutorParam" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxMemoryPages", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StackLogicalMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "StackNativeMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PrecheckingMaxMemory", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PvfPrepTimeout", + "fields": [ + { + "name": null, + "type": 325, + "typeName": "PvfPrepKind", + "docs": [] + }, + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "PvfExecTimeout", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "PvfExecKind", + "docs": [] + }, + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "WasmExtBulkMemory", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 325, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PvfPrepKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Precheck", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Prepare", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PvfExecKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Backing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approval", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 327, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ApprovalVotingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_approval_coalesce_count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "SchedulerParams" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "group_rotation_frequency", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "paras_availability_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "max_validators_per_core", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "lookahead", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_availability_timeouts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_queue_max_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_target_queue_utilization", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_fee_variability", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "ttl", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 329, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 330, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 331, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [ + { + "name": "data", + "type": 332, + "typeName": "TeyrchainsInherentData>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Enter the paras inherent. This will process bitfields and backed candidates." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 332, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "InherentData" + ], + "params": [ + { + "name": "HDR", + "type": 107 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bitfields", + "type": 333, + "typeName": "UncheckedSignedAvailabilityBitfields", + "docs": [] + }, + { + "name": "backed_candidates", + "type": 340, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "disputes", + "type": 357, + "typeName": "MultiDisputeStatementSet", + "docs": [] + }, + { + "name": "parent_header", + "type": 107, + "typeName": "HDR", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 333, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 334 + } + }, + "docs": [] + } + }, + { + "id": 334, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "signed", + "UncheckedSigned" + ], + "params": [ + { + "name": "Payload", + "type": 335 + }, + { + "name": "RealPayload", + "type": 335 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 335, + "typeName": "Payload", + "docs": [] + }, + { + "name": "validator_index", + "type": 338, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "signature", + "type": 339, + "typeName": "ValidatorSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 335, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "AvailabilityBitfield" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 336, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 336, + "type": { + "path": [], + "params": [], + "def": { + "bitSequence": { + "bitStoreType": 2, + "bitOrderType": 337 + } + }, + "docs": [] + } + }, + { + "id": 337, + "type": { + "path": [ + "bitvec", + "order", + "Lsb0" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ValidatorIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "validator_app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 150, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 341 + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "BackedCandidate" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "candidate", + "type": 342, + "typeName": "CommittedCandidateReceiptV2", + "docs": [] + }, + { + "name": "validity_votes", + "type": 355, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_indices", + "type": 336, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CommittedCandidateReceiptV2" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 343, + "typeName": "CandidateDescriptorV2", + "docs": [] + }, + { + "name": "commitments", + "type": 347, + "typeName": "CandidateCommitments", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CandidateDescriptorV2" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "relay_parent", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "version", + "type": 344, + "typeName": "InternalVersion", + "docs": [] + }, + { + "name": "core_index", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "reserved1", + "type": 345, + "typeName": "[u8; 25]", + "docs": [] + }, + { + "name": "persisted_validation_data_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "pov_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "erasure_root", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "reserved2", + "type": 150, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "para_head", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "InternalVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 25, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCodeHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "CandidateCommitments" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 348, + "typeName": "UpwardMessages", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 349, + "typeName": "HorizontalMessages", + "docs": [] + }, + { + "name": "new_validation_code", + "type": 352, + "typeName": "Option", + "docs": [] + }, + { + "name": "head_data", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 104, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 349, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 350 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 351, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "pezkuwi_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 164 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 164, + "typeName": "Id", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 351, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 350 + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 353 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 353, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 354, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HeadData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 356 + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ValidityAttestation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Implicit", + "fields": [ + { + "name": null, + "type": 339, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Explicit", + "fields": [ + { + "name": null, + "type": 339, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 358 + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "DisputeStatementSet" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "candidate_hash", + "type": 359, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "statements", + "type": 360, + "typeName": "Vec<(DisputeStatement, ValidatorIndex, ValidatorSignature)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [ + "pezkuwi_core_primitives", + "CandidateHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 361 + } + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 362, + 338, + 339 + ] + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "DisputeStatement" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "ValidDisputeStatementKind", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 365, + "typeName": "InvalidDisputeStatementKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ValidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BackingSeconded", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BackingValid", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ApprovalChecking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ApprovalCheckingMultipleCandidates", + "fields": [ + { + "name": null, + "type": 364, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 359 + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "InvalidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_current_code", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the storage for the teyrchain validation code immediately." + ] + }, + { + "name": "force_set_current_head", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the storage for the current teyrchain head data immediately." + ] + }, + { + "name": "force_schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule an upgrade as if it was scheduled in the given relay parent block." + ] + }, + { + "name": "force_note_new_head", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Note a new block head for para within the context of the current block." + ] + }, + { + "name": "force_queue_action", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Put a teyrchain directly into the next session's action queue.", + "We can't queue it any sooner than this without going into the", + "initializer..." + ] + }, + { + "name": "add_trusted_validation_code", + "fields": [ + { + "name": "validation_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Adds the validation code to the storage.", + "", + "The code will not be added if it is already present. Additionally, if PVF pre-checking", + "is running for that code, it will be instantly accepted.", + "", + "Otherwise, the code will be added into the storage. Note that the code will be added", + "into storage with reference count 0. This is to account the fact that there are no users", + "for this code yet. The caller will have to make sure that this code eventually gets", + "used by some teyrchain or removed from the storage to avoid storage leaks. For the", + "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage", + "manipulation.", + "", + "This function is mainly meant to be used for upgrading teyrchains that do not follow", + "the go-ahead signal while the PVF pre-checking feature is enabled." + ] + }, + { + "name": "poke_unused_validation_code", + "fields": [ + { + "name": "validation_code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Remove the validation code from the storage iff the reference count is 0.", + "", + "This is better than removing the storage directly, because it will not remove the code", + "that was suddenly got used by some teyrchain while this dispatchable was pending", + "dispatching." + ] + }, + { + "name": "include_pvf_check_statement", + "fields": [ + { + "name": "stmt", + "type": 367, + "typeName": "PvfCheckStatement", + "docs": [] + }, + { + "name": "signature", + "type": 339, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and", + "enacts the results if that was the last vote before achieving the supermajority." + ] + }, + { + "name": "force_set_most_recent_context", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "context", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the storage for the current teyrchain head data immediately." + ] + }, + { + "name": "remove_upgrade_cooldown", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Remove an upgrade cooldown for a teyrchain.", + "", + "The cost for removing the cooldown earlier depends on the time left for the cooldown", + "multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned." + ] + }, + { + "name": "authorize_force_set_current_code_hash", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "valid_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Sets the storage for the authorized current code hash of the teyrchain.", + "If not applied, it will be removed at the `System::block_number() + valid_period` block.", + "", + "This can be useful, when triggering `Paras::force_set_current_code(para, code)`", + "from a different chain than the one where the `Paras` pallet is deployed.", + "", + "The main purpose is to avoid transferring the entire `code` Wasm blob between chains.", + "Instead, we authorize `code_hash` with `root`, which can later be applied by", + "`Paras::apply_authorized_force_set_current_code(para, code)` by anyone.", + "", + "Authorizations are stored in an **overwriting manner**." + ] + }, + { + "name": "apply_authorized_force_set_current_code", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Applies the already authorized current code for the teyrchain,", + "triggering the same functionality as `force_set_current_code`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 367, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PvfCheckStatement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "accept", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "subject", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_index", + "type": 338, + "typeName": "ValidatorIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_approve", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a signal to the consensus engine to forcibly act as though all teyrchain", + "blocks in all relay chain blocks up to and including the given number in the current", + "chain are valid and should be finalized." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 369, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "hrmp_init_open_channel", + "fields": [ + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initiate opening a channel from a teyrchain to a given recipient with given channel", + "parameters.", + "", + "- `proposed_max_capacity` - specifies how many messages can be in the channel at once.", + "- `proposed_max_message_size` - specifies the maximum size of the messages.", + "", + "These numbers are a subject to the relay-chain configuration limits.", + "", + "The channel can be opened only after the recipient confirms it and only on a session", + "change." + ] + }, + { + "name": "hrmp_accept_open_channel", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Accept a pending open channel request from the given sender.", + "", + "The channel will be opened only on the next session boundary." + ] + }, + { + "name": "hrmp_close_channel", + "fields": [ + { + "name": "channel_id", + "type": 370, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Initiate unilateral closing of a channel. The origin must be either the sender or the", + "recipient in the channel being closed.", + "", + "The closure can only happen on a session change." + ] + }, + { + "name": "force_clean_hrmp", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "num_inbound", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_outbound", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have.", + "Normally this happens once per session, but this allows you to trigger the cleanup", + "immediately for a specific teyrchain.", + "", + "Number of inbound and outbound channels for `para` must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "force_process_hrmp_open", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force process HRMP open channel requests.", + "", + "If there are pending HRMP open channel requests, you can use this function to process", + "all of those requests immediately.", + "", + "Total number of opening channels must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "force_process_hrmp_close", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force process HRMP close channel requests.", + "", + "If there are pending HRMP close channel requests, you can use this function to process", + "all of those requests immediately.", + "", + "Total number of closing channels must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "hrmp_cancel_open_request", + "fields": [ + { + "name": "channel_id", + "type": 370, + "typeName": "HrmpChannelId", + "docs": [] + }, + { + "name": "open_requests", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "This cancels a pending open channel request. It can be canceled by either of the sender", + "or the recipient for that request. The origin must be either of those.", + "", + "The cancellation happens immediately. It is not possible to cancel the request if it is", + "already accepted.", + "", + "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as", + "witness data." + ] + }, + { + "name": "force_open_hrmp_channel", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,", + "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's", + "configured limits.", + "", + "Expected use is when one (and only one) of the `ParaId`s involved in the channel is", + "governed by the system, e.g. a system teyrchain.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "establish_system_channel", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Establish an HRMP channel between two system chains. If the channel does not already", + "exist, the transaction fees will be refunded to the caller. The system does not take", + "deposits for channels between system chains, and automatically sets the message number", + "and size limits to the maximum allowed by the network's configuration.", + "", + "Arguments:", + "", + "- `sender`: A system chain, `ParaId`.", + "- `recipient`: A system chain, `ParaId`.", + "", + "Any signed origin can call this function, but _both_ inputs MUST be system chains. If", + "the channel does not exist yet, there is no fee." + ] + }, + { + "name": "poke_channel_deposits", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels", + "with system chains do not require a deposit.", + "", + "Arguments:", + "", + "- `sender`: A chain, `ParaId`.", + "- `recipient`: A chain, `ParaId`.", + "", + "Any signed origin can call this function." + ] + }, + { + "name": "establish_channel_with_system", + "fields": [ + { + "name": "target_system_chain", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Establish a bidirectional HRMP channel between a teyrchain and a system chain.", + "", + "Arguments:", + "", + "- `target_system_chain`: A system chain, `ParaId`.", + "", + "The origin needs to be the teyrchain origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 370, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HrmpChannelId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "Id", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "Id", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_unfreeze", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 372, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_dispute_lost_unsigned", + "fields": [ + { + "name": "dispute_proof", + "type": 373, + "typeName": "Box", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 373, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "DisputeProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "time_slot", + "type": 374, + "typeName": "DisputesTimeSlot", + "docs": [] + }, + { + "name": "kind", + "type": 375, + "typeName": "DisputeOffenceKind", + "docs": [] + }, + { + "name": "validator_index", + "type": 338, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "validator_id", + "type": 139, + "typeName": "ValidatorId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 374, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "DisputesTimeSlot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "candidate_hash", + "type": 359, + "typeName": "CandidateHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "DisputeOffenceKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ForInvalidBacked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AgainstValid", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForInvalidApproved", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 376, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_order_allow_death", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a single on demand core order.", + "Will use the spot price for the current block and will reap the account if needed.", + "", + "Parameters:", + "- `origin`: The sender of the call, funds will be withdrawn from this account.", + "- `max_amount`: The maximum balance to withdraw from the origin to place an order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientBalance`: from the Currency implementation", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + }, + { + "name": "place_order_keep_alive", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a", + "check that placing the order will not reap the account.", + "", + "Parameters:", + "- `origin`: The sender of the call, funds will be withdrawn from this account.", + "- `max_amount`: The maximum balance to withdraw from the origin to place an order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientBalance`: from the Currency implementation", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + }, + { + "name": "place_order_with_credits", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a single on demand core order with credits.", + "Will charge the owner's on-demand credit account the spot price for the current block.", + "", + "Parameters:", + "- `origin`: The sender of the call, on-demand credits will be withdrawn from this", + " account.", + "- `max_amount`: The maximum number of credits to spend from the origin to place an", + " order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientCredits`", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 377, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register head data and validation code for a reserved Para Id.", + "", + "## Arguments", + "- `origin`: Must be called by a `Signed` origin.", + "- `id`: The para ID. Must be owned/managed by the `origin` signing account.", + "- `genesis_head`: The genesis head data of the teyrchain/thread.", + "- `validation_code`: The initial validation code of the teyrchain/thread.", + "", + "## Deposits/Fees", + "The account with the originating signature must reserve a deposit.", + "", + "The deposit is required to cover the costs associated with storing the genesis head", + "data and the validation code.", + "This accounts for the potential to store validation code of a size up to the", + "`max_code_size`, as defined in the configuration pallet", + "", + "Anything already reserved previously for this para ID is accounted for.", + "", + "## Events", + "The `Registered` event is emitted in case of success." + ] + }, + { + "name": "force_register", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Force the registration of a Para Id on the relay chain.", + "", + "This function must be called by a Root origin.", + "", + "The deposit taken can be specified for this registration. Any `ParaId`", + "can be registered, including sub-1000 IDs which are System Teyrchains." + ] + }, + { + "name": "deregister", + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Deregister a Para Id, freeing all data and returning any deposit.", + "", + "The caller must be Root, the `para` owner, or the `para` itself. The para must be an", + "on-demand teyrchain." + ] + }, + { + "name": "swap", + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap a lease holding teyrchain with another teyrchain, either on-demand or lease", + "holding.", + "", + "The origin must be Root, the `para` owner, or the `para` itself.", + "", + "The swap will happen only if there is already an opposite swap pending. If there is not,", + "the swap will be stored in the pending swaps map, ready for a later confirmatory swap.", + "", + "The `ParaId`s remain mapped to the same head data and code so external code can rely on", + "`ParaId` to be a long-term identifier of a notional \"teyrchain\". However, their", + "scheduling info (i.e. whether they're an on-demand teyrchain or lease holding", + "teyrchain), auction information and the auction deposit are switched." + ] + }, + { + "name": "remove_lock", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a manager lock from a para. This will allow the manager of a", + "previously locked para to deregister or swap a para without using governance.", + "", + "Can only be called by the Root origin or the teyrchain." + ] + }, + { + "name": "reserve", + "fields": [], + "index": 5, + "docs": [ + "Reserve a Para Id on the relay chain.", + "", + "This function will reserve a new Para Id to be owned/managed by the origin account.", + "The origin account is able to register head data and validation code using `register` to", + "create an on-demand teyrchain. Using the Slots pallet, an on-demand teyrchain can then", + "be upgraded to a lease holding teyrchain.", + "", + "## Arguments", + "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new", + " para ID.", + "", + "## Deposits/Fees", + "The origin must reserve a deposit of `ParaDeposit` for the registration.", + "", + "## Events", + "The `Reserved` event is emitted in case of success, which provides the ID reserved for", + "use." + ] + }, + { + "name": "add_lock", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Add a manager lock from a para. This will prevent the manager of a", + "para to deregister or swap a para.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + }, + { + "name": "schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Schedule a teyrchain upgrade.", + "", + "This will kick off a check of `new_code` by all validators. After the majority of the", + "validators have reported on the validity of the code, the code will either be enacted", + "or the upgrade will be rejected. If the code will be enacted, the current code of the", + "teyrchain will be overwritten directly. This means that any PoV will be checked by this", + "new code. The teyrchain itself will not be informed explicitly that the validation code", + "has changed.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + }, + { + "name": "set_current_head", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the teyrchain's current head.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 378, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_lease", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Just a connect into the `lease_out` call, in case Root wants to force some lease to", + "happen independently of any other on-chain mechanism to use it.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`." + ] + }, + { + "name": "clear_all_leases", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear all leases for a Para Id, refunding any deposits back to the original owners.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`." + ] + }, + { + "name": "trigger_onboard", + "fields": [ + { + "name": "para", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Try to onboard a teyrchain that has a lease for the current lease period.", + "", + "This function can be useful if there was some state issue with a para that should", + "have onboarded, but was unable to. As long as they have a lease period, we can", + "let them onboard from here.", + "", + "Origin must be signed, but can be called by anyone." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 379, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "new_auction", + "fields": [ + { + "name": "duration", + "type": 57, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "lease_period_index", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new auction.", + "", + "This can only happen when there isn't already an auction in progress and may only be", + "called by the root origin. Accepts the `duration` of this auction and the", + "`lease_period_index` of the initial lease period of the four that are to be auctioned." + ] + }, + { + "name": "bid", + "fields": [ + { + "name": "para", + "type": 380, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "auction_index", + "type": 57, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "first_slot", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "amount", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Make a new bid from an account (including a teyrchain account) for deploying a new", + "teyrchain.", + "", + "Multiple simultaneous bids from the same bidder are allowed only as long as all active", + "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.", + "", + "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and", + "funded by) the same account.", + "- `auction_index` is the index of the auction to bid on. Should just be the present", + "value of `AuctionCounter`.", + "- `first_slot` is the first lease period index of the range to bid on. This is the", + "absolute lease period index value, not an auction-specific offset.", + "- `last_slot` is the last lease period index of the range to bid on. This is the", + "absolute lease period index value, not an auction-specific offset.", + "- `amount` is the amount to bid to be held as deposit for the teyrchain should the", + "bid win. This amount is held throughout the range." + ] + }, + { + "name": "cancel_auction", + "fields": [], + "index": 2, + "docs": [ + "Cancel an in-progress auction.", + "", + "Can only be called by Root origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 380, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 164 + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 57, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 382, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign for a teyrchain slot with the given lease period", + "range.", + "", + "This applies a lock to your teyrchain configuration, ensuring that it cannot be changed", + "by the teyrchain manager." + ] + }, + { + "name": "contribute", + "fields": [ + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "signature", + "type": 384, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contribute to a crowd sale. This will transfer some balance over to fund a teyrchain", + "slot. It will be withdrawable when the crowdloan has ended and the funds are unused." + ] + }, + { + "name": "withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdraw full balance of a specific contributor.", + "", + "Origin must be signed, but can come from anyone.", + "", + "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,", + "then the retirement flag must be set. For a fund to be ready for retirement, then:", + "- it must not already be in retirement;", + "- the amount of raised funds must be bigger than the _free_ balance of the account;", + "- and either:", + " - the block number must be at least `end`; or", + " - the current lease period must be greater than the fund's `last_period`.", + "", + "In this case, the fund's retirement flag is set and its `end` is reset to the current", + "block number.", + "", + "- `who`: The account whose contribution should be withdrawn.", + "- `index`: The teyrchain to whose crowdloan the contribution was made." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Automatically refund contributors of an ended crowdloan.", + "Due to weight restrictions, this function may need to be called multiple", + "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time.", + "", + "Origin must be signed, but can come from anyone." + ] + }, + { + "name": "dissolve", + "fields": [ + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a fund after the retirement period has ended and all funds have been returned." + ] + }, + { + "name": "edit", + "fields": [ + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 57, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 57, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 382, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Edit the configuration for an in-progress crowdloan.", + "", + "Can only be called by Root origin." + ] + }, + { + "name": "add_memo", + "fields": [ + { + "name": "index", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Add an optional memo to an existing crowdloan contribution.", + "", + "Origin must be Signed, and the user must have contributed to the crowdloan." + ] + }, + { + "name": "poke", + "fields": [ + { + "name": "index", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Poke the fund into `NewRaise`", + "", + "Origin must be Signed, and the fund has non-zero raise." + ] + }, + { + "name": "contribute_all", + "fields": [ + { + "name": "index", + "type": 380, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "signature", + "type": 384, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Contribute your entire balance to a crowd sale. This will transfer the entire balance of", + "a user over to fund a teyrchain slot. It will be withdrawable when the crowdloan has", + "ended and the funds are unused." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 382, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 383 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 383, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 383, + "type": { + "path": [ + "sp_runtime", + "MultiSigner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 143, + "typeName": "ecdsa::Public", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 384, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 385 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 385, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 191, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "request_core_count", + "fields": [ + { + "name": "count", + "type": 97, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Request the configuration to be updated with the specified number of cores. Warning:", + "Since this only schedules a configuration update, it takes two sessions to come into", + "effect.", + "", + "- `origin`: Root or the Coretime Chain", + "- `count`: total number of cores" + ] + }, + { + "name": "request_revenue_at", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request to claim the instantaneous coretime sales revenue starting from the block it was", + "last claimed until and up to the block specified. The claimed amount value is sent back", + "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is", + "teleported to the Coretime chain." + ] + }, + { + "name": "credit_account", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "assign_core", + "fields": [ + { + "name": "core", + "type": 97, + "typeName": "BrokerCoreIndex", + "docs": [] + }, + { + "name": "begin", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "assignment", + "type": 387, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 40, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is", + "to be used.", + "", + "Parameters:", + "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain.", + "-`core`: The core that should be scheduled.", + "-`begin`: The starting blockheight of the instruction.", + "-`assignment`: How the blockspace should be utilised.", + "-`end_hint`: An optional hint as to when this particular set of instructions will end." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 387, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 388 + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 389, + 390 + ] + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "pallet_broker", + "coretime_interface", + "CoreAssignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Idle", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Pool", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Task", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "PartsOf57600" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 97, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 392, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "**This function is deprecated: Use `limited_teleport_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 469, + "typeName": "Box::RuntimeCall>>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Execute an XCM message from a local, signed, origin.", + "", + "An event is deposited indicating whether `msg` could be executed completely or only", + "partially.", + "", + "No more than `max_weight` will be used in its attempted execution. If this is less than", + "the maximum amount of weight that the message could take to be executed, then no", + "execution attempt will be made." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 79, + "typeName": "Box", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Extoll that a particular destination can be communicated with through a particular", + "version of XCM.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The destination that is being described.", + "- `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a safe XCM version (the version that XCM should be encoded with if the most recent", + "version a destination can accept is unknown).", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 93, + "typeName": "Box", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Ask a location to notify us regarding their XCM version and any changes to it.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 93, + "typeName": "Box", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Require that a particular destination should no longer notify us regarding any XCM", + "version changes.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set or unset the global suspension state of the XCM executor.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `suspended`: `true` to suspend, `false` to resume." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve, or through teleports.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for", + "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the", + "operation will fail and the sent assets may be at risk.", + "", + "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable", + "to `dest`, no limitations imposed on `fees`.", + " - for local reserve: transfer assets to sovereign account of destination chain and", + " forward a notification XCM to `dest` to mint and deposit reserve-based assets to", + " `beneficiary`.", + " - for destination reserve: burn local assets and forward a notification to `dest` chain", + " to withdraw the reserve assets from this chain's sovereign account and deposit them", + " to `beneficiary`.", + " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves", + " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint", + " and deposit reserve-based assets to `beneficiary`.", + " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport", + " assets and deposit them to `beneficiary`.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `X2(Parent,", + " Teyrchain(..))` to send from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send", + " from relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Box", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claims assets trapped on this pallet because of leftover assets during XCM execution.", + "", + "- `origin`: Anyone can call this extrinsic.", + "- `assets`: The exact assets that were trapped. Use the version to specify what version", + "was the latest when they were trapped.", + "- `beneficiary`: The location/account where the claimed assets will be deposited." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets_transfer_type", + "type": 480, + "typeName": "Box", + "docs": [] + }, + { + "name": "remote_fees_id", + "type": 481, + "typeName": "Box", + "docs": [] + }, + { + "name": "fees_transfer_type", + "type": 480, + "typeName": "Box", + "docs": [] + }, + { + "name": "custom_xcm_on_dest", + "type": 392, + "typeName": "Box>", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Transfer assets from the local chain to the destination chain using explicit transfer", + "types for assets and fees.", + "", + "`assets` must have same reserve location or may be teleportable to `dest`. Caller must", + "provide the `assets_transfer_type` to be used for `assets`:", + " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `TransferType::DestinationReserve`: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`", + " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another", + " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically", + " the remote `reserve` is Asset Hub.", + " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to", + " mint/teleport assets and deposit them to `beneficiary`.", + "", + "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to", + "buy execution using transferred `assets` identified by `remote_fees_id`.", + "Make sure enough of the specified `remote_fees_id` asset is included in the given list", + "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "`remote_fees_id` may use different transfer type than rest of `assets` and can be", + "specified through `fees_transfer_type`.", + "", + "The caller needs to specify what should happen to the transferred assets once they reach", + "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which", + "contains the instructions to execute on `dest` as a final step.", + " This is usually as simple as:", + " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,", + " but could be something more exotic like sending the `assets` even further.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from", + " teyrchain across a bridge to another ecosystem destination.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.", + "- `remote_fees_id`: One of the included `assets` to be used to pay fees.", + "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.", + "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the", + " transfer, which also determines what happens to the assets on the destination chain.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "add_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "expires", + "type": 482, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Authorize another `aliaser` location to alias into the local `origin` making this call.", + "The `aliaser` is only authorized until the provided `expiry` block number.", + "The call can also be used for a previously authorized alias in order to update its", + "`expiry` block number.", + "", + "Usually useful to allow your local account to be aliased into from a remote location", + "also under your control (like your account on another chain).", + "", + "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in", + "their/your name. Once authorized using this call, the `aliaser` can freely impersonate", + "`origin` in XCM programs executed on the local chain." + ] + }, + { + "name": "remove_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 93, + "typeName": "Box", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a previously authorized `aliaser` from the list of locations that can alias into", + "the local `origin` making this call." + ] + }, + { + "name": "remove_all_authorized_aliases", + "fields": [], + "index": 16, + "docs": [ + "Remove all previously authorized `aliaser`s that can alias into the local `origin`", + "making this call." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 438, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 393, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 394, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 394, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 395 + } + }, + "docs": [] + } + }, + { + "id": 395, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 402, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 412, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 413, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 414, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 59, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 55, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 412, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 397, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 398 + } + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 64, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 399, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 400, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 400, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 402, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 406, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 404 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 404, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 405 + ] + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 407 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 409, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 408, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 408, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 57, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 407 + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "TruncatedError", + "fields": [ + { + "name": null, + "type": 411, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 54 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 54, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "xcm", + "v3", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 417, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 64, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 418, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 64, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 418, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 421, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 422 + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 428, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 413, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 414, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 70, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 66, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 424, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 424, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 425 + } + }, + "docs": [] + } + }, + { + "id": 425, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 78, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 426, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 426, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 428, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 429, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 429, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 430 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 432, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 430, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 431, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 431, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 57, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 431, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 430 + } + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 65 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 65, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 436, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 78, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 437, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 78, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 437, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 439, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 440 + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 446, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 413, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 455, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 414, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 438, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 438, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 82, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 84, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 80, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 460, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 462, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 464, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 465, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 442, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 443 + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 92, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 444, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 445, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [ + "staging_xcm", + "v5", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 450, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 448 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 448, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 449 + ] + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [ + "xcm", + "v5", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 451 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 453, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "staging_xcm", + "v5", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 452, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 452, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 57, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 453, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 451 + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 79 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 79, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [ + "staging_xcm", + "v5", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 458, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 92, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 459, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 92, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 459, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 461 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 461, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetTransferFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveDeposit", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReserveWithdraw", + "fields": [ + { + "name": null, + "type": 457, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 461 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 463, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 461 + } + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 80 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 80, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 466 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 467, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [ + "staging_xcm", + "v5", + "Hint" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetClaimer", + "fields": [ + { + "name": "location", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 466 + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "v3::MultiAssets", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "v4::Assets", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "v5::Assets", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 469, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 470, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 474, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 477, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 471, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 471, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 472 + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 402, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 412, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 413, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 473, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 416, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 470, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 470, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 396, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 412, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 415, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 56, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 59, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 55, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 393, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 398, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 412, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 475, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 476 + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 428, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 413, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 473, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 65, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 435, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 474, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 474, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 423, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 403, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 434, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 68, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 70, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 66, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 420, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 425, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 433, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 478, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 479 + } + }, + "docs": [] + } + }, + { + "id": 479, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 446, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 413, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 455, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 473, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 457, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 477, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 477, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 447, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 57, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 57, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 456, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 82, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 84, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 80, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 419, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 443, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 460, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 462, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 464, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 477, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 465, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LocalReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DestinationReserve", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "RemoteReserve", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 64, + "typeName": "v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 484, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 484, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 484, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "AggregateMessageOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ump", + "fields": [ + { + "name": null, + "type": 485, + "typeName": "UmpQueueId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "UmpQueueId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Para", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 487, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 487, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 487, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 488, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_double_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 489, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_double_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 489, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the", + "future.", + "", + "Note: `delay_in_blocks` has to be at least 1." + ] + }, + { + "name": "report_fork_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 497, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_fork_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 497, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "report_future_block_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 501, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_future_block_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 501, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 110, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 489, + "type": { + "path": [ + "sp_consensus_beefy", + "DoubleVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 142 + }, + { + "name": "Signature", + "type": 490 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 491, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 491, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 490, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 191, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 491, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 142 + }, + { + "name": "Signature", + "type": 490 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 492, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 142, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 490, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 492, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 493, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 494, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 495 + } + }, + "docs": [] + } + }, + { + "id": 495, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 496, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 107 + }, + { + "name": "Id", + "type": 142 + }, + { + "name": "AncestryProof", + "type": 498 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 491, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 498, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 107, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [ + "sp_mmr_primitives", + "AncestryProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev_peaks", + "type": 214, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prev_leaf_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 499, + "typeName": "Vec<(u64, Hash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 499, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 500 + } + }, + "docs": [] + } + }, + { + "id": 500, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 501, + "type": { + "path": [ + "sp_consensus_beefy", + "FutureBlockVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 142 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 491, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_stage", + "fields": [ + { + "name": "stage", + "type": 503, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the migration stage.", + "", + "This call is intended for emergency use only and is guarded by the", + "[`Config::AdminOrigin`]." + ] + }, + { + "name": "schedule_migration", + "fields": [ + { + "name": "start", + "type": 166, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "warm_up", + "type": 166, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "cool_off", + "type": 166, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "unsafe_ignore_staking_lock_check", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Schedule the migration to start at a given moment.", + "", + "### Parameters:", + "- `start`: The block number at which the migration will start. `DispatchTime` calculated", + " at the moment of the extrinsic execution.", + "- `warm_up`: Duration or timepoint that will be used to prepare for the migration. Calls", + " are filtered during this period. It is intended to give enough time for UMP and DMP", + " queues to empty. `DispatchTime` calculated at the moment of the transition to the", + " warm-up stage.", + "- `cool_off`: The block number at which the post migration cool-off period will end. The", + " `DispatchTime` calculated at the moment of the transition to the cool-off stage.", + "- `unsafe_ignore_staking_lock_check`: ONLY FOR TESTING. Ignore the check whether the", + " scheduled time point is far enough in the future.", + "", + "Note: If the staking election for next era is already complete, and the next", + "validator set is queued in `pallet-session`, we want to avoid starting the data", + "migration at this point as it can lead to some missed validator rewards. To address", + "this, we stop staking election at the start of migration and must wait atleast 1", + "session (set via warm_up) before starting the data migration.", + "", + "Read [`MigrationStage::Scheduled`] documentation for more details." + ] + }, + { + "name": "start_data_migration", + "fields": [], + "index": 2, + "docs": [ + "Start the data migration.", + "", + "This is typically called by the Asset Hub to indicate it's readiness to receive the", + "migration data." + ] + }, + { + "name": "receive_query_response", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 446, + "typeName": "Response", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Receive a query response from the Asset Hub for a previously sent xcm message." + ] + }, + { + "name": "resend_xcm", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Resend a previously sent and unconfirmed XCM message." + ] + }, + { + "name": "set_unprocessed_msg_buffer", + "fields": [ + { + "name": "new", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the unprocessed message buffer size.", + "", + "`None` means to use the configuration value." + ] + }, + { + "name": "set_ah_ump_queue_priority", + "fields": [ + { + "name": "new", + "type": 552, + "typeName": "AhUmpQueuePriority>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the AH UMP queue priority configuration.", + "", + "Can only be called by the `AdminOrigin`." + ] + }, + { + "name": "set_manager", + "fields": [ + { + "name": "new", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set the manager account id.", + "", + "The manager has the similar to [`Config::AdminOrigin`] privileges except that it", + "can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "send_xcm_message", + "fields": [ + { + "name": "dest", + "type": 93, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 392, + "typeName": "Box>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the", + "[Config::SendXcm] router which will be able to send messages to the Asset Hub during", + "the migration." + ] + }, + { + "name": "preserve_accounts", + "fields": [ + { + "name": "accounts", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the accounts to be preserved on Relay Chain during the migration.", + "", + "The accounts must have no consumers references." + ] + }, + { + "name": "set_canceller", + "fields": [ + { + "name": "new", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set the canceller account id.", + "", + "The canceller can only stop scheduled migration." + ] + }, + { + "name": "pause_migration", + "fields": [], + "index": 11, + "docs": [ + "Pause the migration." + ] + }, + { + "name": "cancel_migration", + "fields": [], + "index": 12, + "docs": [ + "Cancel the migration.", + "", + "Migration can only be cancelled if it is in the [`MigrationStage::Scheduled`] state." + ] + }, + { + "name": "vote_manager_multisig", + "fields": [ + { + "name": "payload", + "type": 553, + "typeName": "Box>", + "docs": [] + }, + { + "name": "sig", + "type": 385, + "typeName": "sp_runtime::MultiSignature", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Vote on behalf of any of the members in `MultisigMembers`.", + "", + "Unsigned extrinsic, requiring the `payload` to be signed.", + "", + "Upon each call, a new entry is created in `ManagerMultisigs` map the `payload.call` to", + "be dispatched. Once `MultisigThreshold` is reached, the entire map is deleted, and we", + "move on to the next round.", + "", + "The round system ensures that signatures from older round cannot be reused." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 503, + "type": { + "path": [ + "pallet_rc_migrator", + "MigrationStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "BagsListScore", + "type": 12 + }, + { + "name": "VotingClass", + "type": 97 + }, + { + "name": "AssetKind", + "type": 53 + }, + { + "name": "SchedulerBlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrationPaused", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Scheduled", + "fields": [ + { + "name": "start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "WaitingForAh", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "WarmUp", + "fields": [ + { + "name": "end_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Starting", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "PureProxyCandidatesMigrationInit", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "AccountsMigrationInit", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AccountsMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "AccountsMigrationDone", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "MultisigMigrationInit", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MultisigMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 504, + "typeName": "Option<(AccountId,[u8; 32])>", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "MultisigMigrationDone", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "ClaimsMigrationInit", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "ClaimsMigrationOngoing", + "fields": [ + { + "name": "current_key", + "type": 506, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ClaimsMigrationDone", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "ProxyMigrationInit", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "ProxyMigrationProxies", + "fields": [ + { + "name": "last_key", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ProxyMigrationAnnouncements", + "fields": [ + { + "name": "last_key", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ProxyMigrationDone", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "PreimageMigrationInit", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "PreimageMigrationChunksOngoing", + "fields": [ + { + "name": "last_key", + "type": 509, + "typeName": "Option<((H256, u32), u32)>", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "PreimageMigrationChunksDone", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PreimageMigrationRequestStatusOngoing", + "fields": [ + { + "name": "next_key", + "type": 167, + "typeName": "Option", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "PreimageMigrationRequestStatusDone", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "PreimageMigrationLegacyRequestStatusInit", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "PreimageMigrationLegacyRequestStatusOngoing", + "fields": [ + { + "name": "next_key", + "type": 167, + "typeName": "Option", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "PreimageMigrationLegacyRequestStatusDone", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "PreimageMigrationDone", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NomPoolsMigrationInit", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "NomPoolsMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 512, + "typeName": "Option>", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "NomPoolsMigrationDone", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "VestingMigrationInit", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "VestingMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "VestingMigrationDone", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "DelegatedStakingMigrationInit", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "DelegatedStakingMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 514, + "typeName": "Option>", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "DelegatedStakingMigrationDone", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "IndicesMigrationInit", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "IndicesMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 516, + "typeName": "Option<()>", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "IndicesMigrationDone", + "fields": [], + "index": 40, + "docs": [] + }, + { + "name": "ReferendaMigrationInit", + "fields": [], + "index": 41, + "docs": [] + }, + { + "name": "ReferendaMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 517, + "typeName": "Option", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "ReferendaMigrationDone", + "fields": [], + "index": 43, + "docs": [] + }, + { + "name": "BagsListMigrationInit", + "fields": [], + "index": 44, + "docs": [] + }, + { + "name": "BagsListMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 519, + "typeName": "Option>", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "BagsListMigrationDone", + "fields": [], + "index": 46, + "docs": [] + }, + { + "name": "SchedulerMigrationInit", + "fields": [], + "index": 47, + "docs": [] + }, + { + "name": "SchedulerMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 521, + "typeName": "Option>", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "SchedulerAgendaMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "SchedulerMigrationDone", + "fields": [], + "index": 50, + "docs": [] + }, + { + "name": "ConvictionVotingMigrationInit", + "fields": [], + "index": 51, + "docs": [] + }, + { + "name": "ConvictionVotingMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 524, + "typeName": "Option\n>", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ConvictionVotingMigrationDone", + "fields": [], + "index": 53, + "docs": [] + }, + { + "name": "BountiesMigrationInit", + "fields": [], + "index": 54, + "docs": [] + }, + { + "name": "BountiesMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 528, + "typeName": "Option", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "BountiesMigrationDone", + "fields": [], + "index": 56, + "docs": [] + }, + { + "name": "ChildBountiesMigrationInit", + "fields": [], + "index": 57, + "docs": [] + }, + { + "name": "ChildBountiesMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 530, + "typeName": "Option", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "ChildBountiesMigrationDone", + "fields": [], + "index": 59, + "docs": [] + }, + { + "name": "AssetRateMigrationInit", + "fields": [], + "index": 60, + "docs": [] + }, + { + "name": "AssetRateMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 532, + "typeName": "Option", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "AssetRateMigrationDone", + "fields": [], + "index": 62, + "docs": [] + }, + { + "name": "CrowdloanMigrationInit", + "fields": [], + "index": 63, + "docs": [] + }, + { + "name": "CrowdloanMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 533, + "typeName": "Option", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "CrowdloanMigrationDone", + "fields": [], + "index": 65, + "docs": [] + }, + { + "name": "TreasuryMigrationInit", + "fields": [], + "index": 66, + "docs": [] + }, + { + "name": "TreasuryMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 536, + "typeName": "Option", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "TreasuryMigrationDone", + "fields": [], + "index": 68, + "docs": [] + }, + { + "name": "RecoveryMigrationInit", + "fields": [], + "index": 69, + "docs": [] + }, + { + "name": "RecoveryMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 538, + "typeName": "Option", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "RecoveryMigrationDone", + "fields": [], + "index": 71, + "docs": [] + }, + { + "name": "SocietyMigrationInit", + "fields": [], + "index": 72, + "docs": [] + }, + { + "name": "SocietyMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 542, + "typeName": "Option", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "SocietyMigrationDone", + "fields": [], + "index": 74, + "docs": [] + }, + { + "name": "StakingMigrationInit", + "fields": [], + "index": 75, + "docs": [] + }, + { + "name": "StakingMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 546, + "typeName": "Option>", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "StakingMigrationDone", + "fields": [], + "index": 77, + "docs": [] + }, + { + "name": "CoolOff", + "fields": [ + { + "name": "end_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "SignalMigrationFinish", + "fields": [], + "index": 79, + "docs": [] + }, + { + "name": "MigrationDone", + "fields": [], + "index": 80, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 505 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 505, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 506, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 507 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 507, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 507, + "type": { + "path": [ + "pallet_rc_migrator", + "claims", + "ClaimsStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Signing", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Preclaims", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 508, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 192 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 192, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 510 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 510, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 511, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 511, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 512, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 513 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 513, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 513, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools", + "NomPoolsStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolMembers", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BondedPools", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "RewardPools", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "SubPoolsStorage", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Metadata", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ReversePoolIdLookup", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ClaimPermissions", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 515 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 515, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "delegated_staking", + "DelegatedStakingStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegators", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Agents", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 117 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 117, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 518 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 518, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 518, + "type": { + "path": [ + "pallet_rc_migrator", + "referenda", + "ReferendaStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Metadata", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReferendumInfo", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 520 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 520, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 520, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "BagsListStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Score", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ListNodes", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ListBags", + "fields": [ + { + "name": null, + "type": 482, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 521, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 522 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 522, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 522, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "SchedulerStage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncompleteSince", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Retries", + "fields": [ + { + "name": null, + "type": 205, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": null, + "type": 523, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 523, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 525 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 525, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 525, + "type": { + "path": [ + "pallet_rc_migrator", + "conviction_voting", + "ConvictionVotingStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Class", + "type": 97 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VotingFor", + "fields": [ + { + "name": null, + "type": 526, + "typeName": "Option<(AccountId, Class)>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ClassLocksFor", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 527 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 527, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 527, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 97 + ] + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 529 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 529, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_rc_migrator", + "bounties", + "BountiesStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BountyCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BountyApprovals", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BountyDescriptions", + "fields": [ + { + "name": "last_key", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": "last_key", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 531 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 531, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "ChildBountiesStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ChildBountyCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ParentChildBounties", + "fields": [ + { + "name": "parent_id", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ParentTotalChildBounties", + "fields": [ + { + "name": "parent_id", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": "ids", + "type": 205, + "typeName": "Option<(BountyIndex, BountyIndex)>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ChildBountyDescriptionsV1", + "fields": [ + { + "name": "ids", + "type": 205, + "typeName": "Option<(BountyIndex, BountyIndex)>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V0ToV1ChildBountyIds", + "fields": [ + { + "name": "child_id", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ChildrenCuratorFees", + "fields": [ + { + "name": "child_id", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 532, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 53 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 53, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 533, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 534 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 534, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [ + "pallet_rc_migrator", + "crowdloan", + "CrowdloanStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Setup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LeaseReserve", + "fields": [ + { + "name": "last_key", + "type": 535, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "CrowdloanContribution", + "fields": [ + { + "name": "last_key", + "type": 535, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "CrowdloanReserve", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 164 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 164, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 537 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 537, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "TreasuryStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Proposals", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SpendCount", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Spends", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "LastSpendPeriod", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Funds", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 539 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 539, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [ + "pallet_rc_migrator", + "recovery", + "RecoveryStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Recoverable", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ActiveRecoveries", + "fields": [ + { + "name": null, + "type": 540, + "typeName": "Option<(AccountId32, AccountId32)>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 541 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 541, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 543 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 543, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 543, + "type": { + "path": [ + "pallet_rc_migrator", + "society", + "SocietyStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Values", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Payouts", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MemberByIndex", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "SuspendedMembers", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Candidates", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Votes", + "fields": [ + { + "name": null, + "type": 540, + "typeName": "Option<(AccountId32, AccountId32)>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "VoteClearCursor", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "DefenderVotes", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Option<(u32, AccountId32)>", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 544, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 545 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 545, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 546, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 547 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 547, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "staking_impl", + "StakingStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Values", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Invulnerables", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Bonded", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Ledger", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Payee", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Validators", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Nominators", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "VirtualStakers", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "ErasStakersOverview", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "ErasStakersPaged", + "fields": [ + { + "name": null, + "type": 548, + "typeName": "Option<(EraIndex, AccountId, Page)>", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClaimedRewards", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "ErasValidatorPrefs", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ErasValidatorReward", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "ErasRewardPoints", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "ErasTotalStake", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "UnappliedSlashes", + "fields": [ + { + "name": null, + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "BondedEras", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "ValidatorSlashInEra", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "NominatorSlashInEra", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "SlashingSpans", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "SpanSlash", + "fields": [ + { + "name": null, + "type": 550, + "typeName": "Option<(AccountId, SpanIndex)>", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 21, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 548, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 549 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 549, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 549, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 550, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 551 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 551, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 551, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 552, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "QueuePriority" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Config", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OverrideConfig", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Disabled", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "ManagerMultisigVote" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 383, + "typeName": "sp_runtime::MultiSigner", + "docs": [] + }, + { + "name": "call", + "type": 100, + "typeName": "::RuntimeCall", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 97, + "typeName": "Rank", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 97, + "typeName": "Rank", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 558, + "typeName": "VoteRecord", + "docs": [] + }, + { + "name": "tally", + "type": 559, + "typeName": "TallyOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + }, + { + "name": "MemberExchanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The member `who` had their `AccountId` changed to `new_who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 558, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nay", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex", + "docs": [] + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 97, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 99, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 97, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 99, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 559, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 559, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 559, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 559, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 559, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 559, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 561, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 562, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 562, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 563 + }, + { + "name": "E", + "type": 564 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 563, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 564, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 455, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 563 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 563, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 566, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 569, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 569, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 566, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inflation", + "fields": [ + { + "name": null, + "type": 567, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 568, + "typeName": "::Key", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "MinInflation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 177, + "typeName": "MaxInflation", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 178, + "typeName": "IdealStake", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 179, + "typeName": "Falloff", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "UseAuctionSlots", + "fields": [ + { + "name": null, + "type": 180, + "typeName": "UseAuctionSlots", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 568, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "treasury", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BurnPortion", + "fields": [ + { + "name": null, + "type": 183, + "typeName": "BurnPortion", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BurnDestination", + "fields": [ + { + "name": null, + "type": 186, + "typeName": "BurnDestination", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 570 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 570, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Inflation", + "fields": [ + { + "name": null, + "type": 571, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 572, + "typeName": "::Value", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "inflation", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MinInflation", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "MaxInflation", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "IdealStake", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Falloff", + "fields": [ + { + "name": null, + "type": 176, + "typeName": "Perquintill", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "UseAuctionSlots", + "fields": [ + { + "name": null, + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "staging_zagros_runtime", + "dynamic_params", + "treasury", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BurnPortion", + "fields": [ + { + "name": null, + "type": 185, + "typeName": "Permill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "BurnDestination", + "fields": [ + { + "name": null, + "type": 188, + "typeName": "BurnDestinationAccount", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Claimed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_address", + "type": 192, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Someone claimed some DOTs." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 574, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + }, + { + "name": "IfElseMainSuccess", + "fields": [], + "index": 6, + "docs": [ + "Main call was dispatched." + ] + }, + { + "name": "IfElseFallbackCalled", + "fields": [ + { + "name": "main_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The fallback call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 575, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 117 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 117, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "candidates", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "judged", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewParams", + "fields": [ + { + "name": "params", + "type": 577, + "typeName": "GroupParamsFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A new set of \\[params\\] has been set for the group." + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "Elevated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A \\[member\\] got elevated to \\[rank\\]." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A deposit was poked / adjusted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 577, + "type": { + "path": [ + "pallet_society", + "GroupParams" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 579, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit has been updated." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 579, + "type": { + "path": [ + "pallet_recovery", + "DepositKind" + ], + "params": [ + { + "name": "T", + "type": 580 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryConfig", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ActiveRecoveryFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [ + "staging_zagros_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A vesting schedule has been created." + ] + }, + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 582, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 206, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 523, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + }, + { + "name": "AgendaIncomplete", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Agenda is incomplete from `when`." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 583, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 97, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "PureKilled", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "spawner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 97, + "typeName": "u16", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A pure proxy was killed by its spawner." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proxy was removed." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 584, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit stored for proxies or announcements was poked / updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 584, + "type": { + "path": [ + "pallet_proxy", + "DepositKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Proxies", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Announcements", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 212, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 212, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 212, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The deposit for a multisig operation has been updated/poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 586, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "proposer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A bounty deposit has been poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 588, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 589, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 590, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submitted in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 590, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 294, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 591, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 591, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 590, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 592, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 8, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 305, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "released_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked).", + "Any funds that are still delegated (i.e. dangling delegation) are released and are", + "represented by `released_balance`." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 131, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 311, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 313, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 314, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + }, + { + "name": "MemberClaimPermissionUpdated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "permission", + "type": 310, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A pool member's claim permission has been updated." + ] + }, + { + "name": "MetadataUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A pool's metadata was updated." + ] + }, + { + "name": "PoolNominationMade", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A pool's nominating account (or the pool's root account) has nominated a validator set", + "on behalf of the pool." + ] + }, + { + "name": "PoolNominatorChilled", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The pool is chilled i.e. no longer nominating." + ] + }, + { + "name": "GlobalParamsUpdated", + "fields": [ + { + "name": "min_join_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "max_pools", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 595, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Global parameters regulating nomination pools have been updated." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 595, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 39 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 39, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 597, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Funds delegated by a delegator." + ] + }, + { + "name": "Released", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Funds released to a delegator." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds slashed from a delegator." + ] + }, + { + "name": "MigratedDelegation", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unclaimed delegation funds migrated to delegator." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidatorSetReceived", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "new_validator_set_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "prune_up_to", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new validator set has been received." + ] + }, + { + "name": "CouldNotMergeAndDropped", + "fields": [], + "index": 1, + "docs": [ + "We could not merge, and therefore dropped a buffered message.", + "", + "Note that this event is more resembling an error, but we use an event because in this", + "pallet we need to mutate storage upon some failures." + ] + }, + { + "name": "SetTooSmallAndDropped", + "fields": [], + "index": 2, + "docs": [ + "The validator set received is way too small, as per", + "[`Config::MinimumValidatorSetSize`]." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 599, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Something occurred that should never happen under normal operation. Logged as an event", + "for fail-safe observability." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 599, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ReceivedValidatorSetWhilePassive", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "UnexpectedModeTransition", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SessionReportSendFailed", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SessionReportDropped", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "OffenceSendFailed", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "ValidatorPointDropped", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CandidateBacked", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 602, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 603, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A candidate was backed. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateIncluded", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 602, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 603, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A candidate was included. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateTimedOut", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 602, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A candidate timed out. `[candidate, head_data]`" + ] + }, + { + "name": "UpwardMessagesReceived", + "fields": [ + { + "name": "from", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some upward messages have been received and will be processed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 601, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CandidateReceiptV2" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 343, + "typeName": "CandidateDescriptorV2", + "docs": [] + }, + { + "name": "commitments_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "CoreIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "GroupIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CurrentCodeUpdated", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Current code has been updated for a Para. `para_id`" + ] + }, + { + "name": "CurrentHeadUpdated", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Current head has been updated for a Para. `para_id`" + ] + }, + { + "name": "CodeUpgradeScheduled", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A code upgrade has been scheduled for a Para. `para_id`" + ] + }, + { + "name": "NewHeadNoted", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new head has been noted for a Para. `para_id`" + ] + }, + { + "name": "ActionQueued", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A para has been queued to execute pending actions. `para_id`" + ] + }, + { + "name": "PvfCheckStarted", + "fields": [ + { + "name": null, + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given para either initiated or subscribed to a PVF check for the given validation", + "code. `code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckAccepted", + "fields": [ + { + "name": null, + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given validation code was accepted by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckRejected", + "fields": [ + { + "name": null, + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given validation code was rejected by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + }, + { + "name": "UpgradeCooldownRemoved", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [ + "The teyrchain for which the cooldown got removed." + ] + } + ], + "index": 8, + "docs": [ + "The upgrade cooldown was removed." + ] + }, + { + "name": "CodeAuthorized", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [ + "Para" + ] + }, + { + "name": "code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [ + "Authorized code hash." + ] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Block at which authorization expires and will be removed." + ] + } + ], + "index": 9, + "docs": [ + "A new code hash has been authorized for a Para." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 605, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenChannelRequested", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Open HRMP channel requested." + ] + }, + { + "name": "OpenChannelCanceled", + "fields": [ + { + "name": "by_teyrchain", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 370, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An HRMP channel request sent by the receiver was canceled by either party." + ] + }, + { + "name": "OpenChannelAccepted", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Open HRMP channel accepted." + ] + }, + { + "name": "ChannelClosed", + "fields": [ + { + "name": "by_teyrchain", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 370, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "HRMP channel closed." + ] + }, + { + "name": "HrmpChannelForceOpened", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An HRMP channel was opened via Root origin." + ] + }, + { + "name": "HrmpSystemChannelOpened", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An HRMP channel was opened with a system chain." + ] + }, + { + "name": "OpenChannelDepositsUpdated", + "fields": [ + { + "name": "sender", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An HRMP channel's deposits were updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 606, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DisputeInitiated", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 607, + "typeName": "DisputeLocation", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispute has been initiated. \\[candidate hash, dispute location\\]" + ] + }, + { + "name": "DisputeConcluded", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 608, + "typeName": "DisputeResult", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A dispute has concluded for or against a candidate.", + "`\\[para id, candidate hash, dispute result\\]`" + ] + }, + { + "name": "Revert", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A dispute has concluded with supermajority against a candidate.", + "Block authors should no longer build on top of this head and should", + "instead revert the block at the given height. This should be the", + "number of the child of the last known valid block in the chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 607, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Local", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Remote", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeResult" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OnDemandOrderPlaced", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "spot_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "ordered_by", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An order was placed at some spot price amount by orderer ordered_by" + ] + }, + { + "name": "SpotPriceSet", + "fields": [ + { + "name": "spot_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The value of the spot price has likely changed" + ] + }, + { + "name": "AccountCredited", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account was given credits." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 610, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Registered", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "manager", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Deregistered", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 611, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewLeasePeriod", + "fields": [ + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new `[lease_period]` is beginning." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A para has won the right to a continuous set of lease periods as a teyrchain.", + "First balance is any extra amount reserved on top of the para's existing deposit.", + "Second balance is the total amount reserved." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 612, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionStarted", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "ending", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An auction started. Provides its index and the block number where it will begin to", + "close and the first lease period of the quadruplet that is auctioned." + ] + }, + { + "name": "AuctionClosed", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An auction ended. All funds become unreserved." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds were reserved for a winning bid. First balance is the extra amount reserved.", + "Second is the total." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Funds were unreserved since bidder is no longer active. `[bidder, amount]`" + ] + }, + { + "name": "ReserveConfiscated", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone attempted to lease the same slot twice for a teyrchain. The amount is held in", + "reserve but no teyrchain slot has been leased." + ] + }, + { + "name": "BidAccepted", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new bid has been accepted as the current winner." + ] + }, + { + "name": "WinningOffset", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The winning offset was chosen for an auction. This will map into the `Winning` storage", + "map." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 613, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign." + ] + }, + { + "name": "Contributed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contributed to a crowd sale." + ] + }, + { + "name": "Withdrew", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdrew full balance of a contributor." + ] + }, + { + "name": "PartiallyRefunded", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The loans in a fund have been partially dissolved, i.e. there are some left", + "over child keys that still need to be killed." + ] + }, + { + "name": "AllRefunded", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "All loans in a fund have been refunded." + ] + }, + { + "name": "Dissolved", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Fund is dissolved." + ] + }, + { + "name": "HandleBidResult", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "result", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The result of trying to submit a new bid to the Slots pallet." + ] + }, + { + "name": "Edited", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The configuration to a crowdloan has been edited." + ] + }, + { + "name": "MemoUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A memo has been updated." + ] + }, + { + "name": "AddedToNewRaise", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A teyrchain has been moved to `NewRaise`" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 614, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RevenueInfoRequested", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The broker chain has asked for revenue information for a specific block." + ] + }, + { + "name": "CoreAssigned", + "fields": [ + { + "name": "core", + "type": 602, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A core has received a new assignment from the broker chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 615, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 616, + "typeName": "xcm::latest::Outcome", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "SendFailed", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 618, + "typeName": "SendError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An XCM message failed to send." + ] + }, + { + "name": "ProcessXcmError", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 449, + "typeName": "XcmError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An XCM message failed to process." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 446, + "typeName": "Response", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "actual_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_budgeted_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_location", + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + }, + { + "name": "cost", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 15, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "error", + "type": 449, + "typeName": "XcmError", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_querier", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "maybe_actual_querier", + "type": 454, + "typeName": "Option", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 21, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 441, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 22, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "fees", + "type": 441, + "typeName": "Assets", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 468, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 25, + "docs": [ + "A XCM version migration finished." + ] + }, + { + "name": "AliasAuthorized", + "fields": [ + { + "name": "aliaser", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "expiry", + "type": 482, + "typeName": "Option", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An `aliaser` location was authorized by `target` to alias it, authorization valid until", + "`expiry` block number." + ] + }, + { + "name": "AliasAuthorizationRemoved", + "fields": [ + { + "name": "aliaser", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 27, + "docs": [ + "`target` removed alias authorization for `aliaser`." + ] + }, + { + "name": "AliasesAuthorizationsRemoved", + "fields": [ + { + "name": "target", + "type": 79, + "typeName": "Location", + "docs": [] + } + ], + "index": 28, + "docs": [ + "`target` removed all alias authorizations." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 616, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "Outcome" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "error", + "type": 617, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 617, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "InstructionError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 449, + "typeName": "Error", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "SendError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotApplicable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "MissingArgument", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Fees", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 484, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 620, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 484, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 484, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 484, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 620, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 487, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 487, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 487, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 622, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StageTransition", + "fields": [ + { + "name": "old", + "type": 503, + "typeName": "MigrationStageOf", + "docs": [ + "The old stage before the transition." + ] + }, + { + "name": "new", + "type": 503, + "typeName": "MigrationStageOf", + "docs": [ + "The new stage after the transition." + ] + } + ], + "index": 0, + "docs": [ + "A stage transition has occurred." + ] + }, + { + "name": "AssetHubMigrationStarted", + "fields": [], + "index": 1, + "docs": [ + "The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is", + "emitted.", + "", + "This event is equivalent to `StageTransition { new: Initializing, .. }` but is easier", + "to understand. The activation is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "AssetHubMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The Asset Hub Migration finished.", + "", + "This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier", + "to understand. The finishing is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "QueryResponseReceived", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "u64", + "docs": [ + "The query ID." + ] + }, + { + "name": "response", + "type": 410, + "typeName": "MaybeErrorCode", + "docs": [ + "The response." + ] + } + ], + "index": 3, + "docs": [ + "A query response has been received." + ] + }, + { + "name": "XcmResendAttempt", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "u64", + "docs": [ + "The query ID." + ] + }, + { + "name": "send_error", + "type": 623, + "typeName": "Option", + "docs": [ + "The error message." + ] + } + ], + "index": 4, + "docs": [ + "A XCM message has been resent." + ] + }, + { + "name": "UnprocessedMsgBufferSet", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [ + "The new size." + ] + }, + { + "name": "old", + "type": 4, + "typeName": "u32", + "docs": [ + "The old size." + ] + } + ], + "index": 5, + "docs": [ + "The unprocessed message buffer size has been set." + ] + }, + { + "name": "AhUmpQueuePrioritySet", + "fields": [ + { + "name": "prioritized", + "type": 8, + "typeName": "bool", + "docs": [ + "Indicates if AH UMP queue was successfully set as priority.", + "If `false`, it means we're in the round-robin phase of our priority pattern", + "(see [`Config::AhUmpQueuePriorityPattern`]), where no queue gets priority." + ] + }, + { + "name": "cycle_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Current block number within the pattern cycle (1 to period)." + ] + }, + { + "name": "cycle_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Total number of blocks in the pattern cycle" + ] + } + ], + "index": 6, + "docs": [ + "Whether the AH UMP queue was prioritized for the next block." + ] + }, + { + "name": "AhUmpQueuePriorityConfigSet", + "fields": [ + { + "name": "old", + "type": 552, + "typeName": "AhUmpQueuePriority>", + "docs": [ + "The old priority pattern." + ] + }, + { + "name": "new", + "type": 552, + "typeName": "AhUmpQueuePriority>", + "docs": [ + "The new priority pattern." + ] + } + ], + "index": 7, + "docs": [ + "The AH UMP queue priority config was set." + ] + }, + { + "name": "MigratedBalanceRecordSet", + "fields": [ + { + "name": "kept", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "migrated", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The total issuance was recorded." + ] + }, + { + "name": "MigratedBalanceConsumed", + "fields": [ + { + "name": "kept", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "migrated", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The RC kept balance was consumed." + ] + }, + { + "name": "ManagerSet", + "fields": [ + { + "name": "old", + "type": 131, + "typeName": "Option", + "docs": [ + "The old manager account id." + ] + }, + { + "name": "new", + "type": 131, + "typeName": "Option", + "docs": [ + "The new manager account id." + ] + } + ], + "index": 10, + "docs": [ + "The manager account id was set." + ] + }, + { + "name": "XcmSent", + "fields": [ + { + "name": "origin", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 79, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 438, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "StakingElectionsPaused", + "fields": [], + "index": 12, + "docs": [ + "The staking elections were paused." + ] + }, + { + "name": "AccountsPreserved", + "fields": [ + { + "name": "accounts", + "type": 120, + "typeName": "Vec", + "docs": [ + "The accounts that will be preserved." + ] + } + ], + "index": 13, + "docs": [ + "The accounts to be preserved on Relay Chain were set." + ] + }, + { + "name": "CancellerSet", + "fields": [ + { + "name": "old", + "type": 131, + "typeName": "Option", + "docs": [ + "The old canceller account id." + ] + }, + { + "name": "new", + "type": 131, + "typeName": "Option", + "docs": [ + "The new canceller account id." + ] + } + ], + "index": 14, + "docs": [ + "The canceller account id was set." + ] + }, + { + "name": "MigrationPaused", + "fields": [ + { + "name": "pause_stage", + "type": 503, + "typeName": "MigrationStageOf", + "docs": [ + "The stage at which the migration was paused." + ] + } + ], + "index": 15, + "docs": [ + "The migration was paused." + ] + }, + { + "name": "MigrationCancelled", + "fields": [], + "index": 16, + "docs": [ + "The migration was cancelled." + ] + }, + { + "name": "PureAccountsIndexed", + "fields": [ + { + "name": "num_pure_accounts", + "type": 4, + "typeName": "u32", + "docs": [ + "The number of indexed pure accounts." + ] + } + ], + "index": 17, + "docs": [ + "Some pure accounts were indexed for possibly receiving free `Any` proxies." + ] + }, + { + "name": "ManagerMultisigDispatched", + "fields": [ + { + "name": "res", + "type": 575, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 18, + "docs": [ + "The manager multisig dispatched something." + ] + }, + { + "name": "ManagerMultisigVoted", + "fields": [ + { + "name": "votes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "The manager multisig received a vote." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 623, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 618 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 618, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 57, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 627, + "typeName": "Cow<'static, str>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 628 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 628, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 631, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 632 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 632, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 632, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 632, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 455, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 455, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 455, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 634, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 627, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "impl_name", + "type": 627, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 637, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "system_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 638 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 638, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 639 + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 401, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 642 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 643, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 108, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 642 + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 645, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 647 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 647, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 648, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 650, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 651, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 109, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 649, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 150, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 109, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 109, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 649, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 112, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 113, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 654 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 655, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 654 + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 657, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 659, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 660 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 662, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 401, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 661, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 660 + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 664 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 665, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 401 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 401, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 664 + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 667 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 674, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 668 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 668, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 668, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 669, + "typeName": "pallet_staking::HoldReason", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 670, + "typeName": "pallet_session::HoldReason", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 671, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 672, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 673, + "typeName": "pallet_xcm::HoldReason", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [ + "pallet_session", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Keys", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingDelegation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AuthorizeAlias", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 667 + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 676 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 679, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 677 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 677, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 678, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 41, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 676 + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 134, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 683, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 685, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 120, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 482, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 688, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 689 + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 61, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 61, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 688, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 693, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 693, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 694, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 694, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 551 + } + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 696 + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 300, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 39, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 700, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 28, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 29, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 30, + "docs": [ + "Operation not allowed for virtual stakers." + ] + }, + { + "name": "CannotReapStash", + "fields": [], + "index": 31, + "docs": [ + "Stash could not be reaped as other pallet might depend on it." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 32, + "docs": [ + "The stake of this account is already migrated to `Fungible` holds." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 33, + "docs": [ + "Account is restricted from participation in staking. This may happen if the account is", + "staking in another way already, such as via pool." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 701, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 702 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 702, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 687 + ] + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 45, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 705 + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 138 + ] + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 707 + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 708 + ] + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceSeverity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 710, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 714, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 40, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 50 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 49, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 716, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 141 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 717, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 717, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 141 + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 53 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 93 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 53, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 93, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 721, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 401, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 725, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 731, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 726, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 729, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 730, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 727 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 728, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 95 + ] + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 727 + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 157, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 729, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 730, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 733 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 734, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 97, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 733 + } + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 97 + }, + { + "name": "RuntimeOrigin", + "type": 160 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 99 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 556 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 206 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 737, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 97 + }, + { + "name": "RuntimeOrigin", + "type": 160 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 99 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 556 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 206 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 97, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 160, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 99, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 166, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 738, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 740, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 556, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 742, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 738 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 738, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 741 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 741, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 40, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 743 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 743, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 206 + ] + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 745 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 746, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 745 + } + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 748 + } + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 97, + 749 + ] + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 628 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 628, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 750, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 750, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 39, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 751, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 751, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 751, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 752, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 754, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 97, + "typeName": "Rank", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 97, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 97, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "fields": [], + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "fields": [], + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "fields": [], + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "fields": [], + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "fields": [], + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "fields": [], + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + }, + { + "name": "SameMember", + "fields": [], + "index": 9, + "docs": [ + "The new member to exchange is the same as the old member" + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 10, + "docs": [ + "The max member count for the rank has been reached." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 759, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 97 + }, + { + "name": "RuntimeOrigin", + "type": 160 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 99 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 559 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 206 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 760, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 739, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 97 + }, + { + "name": "RuntimeOrigin", + "type": 160 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 99 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 559 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 206 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 97, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 160, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 99, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 166, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 738, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 739, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 740, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 559, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 742, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 206 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 625, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 763, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 764, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEthereumSignature", + "fields": [], + "index": 0, + "docs": [ + "Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "fields": [], + "index": 1, + "docs": [ + "Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "fields": [], + "index": 2, + "docs": [ + "Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "fields": [], + "index": 3, + "docs": [ + "There's not enough in the pot to pay out some unvested amount. Generally implies a", + "logic error." + ] + }, + { + "name": "InvalidStatement", + "fields": [], + "index": 4, + "docs": [ + "A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "fields": [], + "index": 5, + "docs": [ + "The account already has a vested balance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 765, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 766, + "type": { + "path": [ + "pallet_society", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "StrikeCount", + "docs": [] + }, + { + "name": "vouching", + "type": 767, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 768 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 768, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [ + "pallet_society", + "PayoutRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "PayoutsVec", + "type": 770 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "payouts", + "type": 770, + "typeName": "PayoutsVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 745 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 746, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 772 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 774, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 773, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 773, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 772 + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "pallet_society", + "Candidacy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "kind", + "type": 773, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "tally", + "type": 776, + "typeName": "Tally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "pallet_society", + "Tally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "VoteCount", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "VoteCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "pallet_society", + "IntakeRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 776 + ] + }, + "docs": [] + } + }, + { + "id": 781, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 1, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "fields": [], + "index": 2, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "fields": [], + "index": 3, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "fields": [], + "index": 4, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "fields": [], + "index": 5, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "fields": [], + "index": 6, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "fields": [], + "index": 7, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouchingOnBidder", + "fields": [], + "index": 8, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "fields": [], + "index": 9, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "fields": [], + "index": 10, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "fields": [], + "index": 11, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 12, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 13, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "fields": [], + "index": 14, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "fields": [], + "index": 15, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "fields": [], + "index": 16, + "docs": [ + "The caller is not the head." + ] + }, + { + "name": "NotApproved", + "fields": [], + "index": 17, + "docs": [ + "The membership cannot be claimed as the candidate was not clearly approved." + ] + }, + { + "name": "NotRejected", + "fields": [], + "index": 18, + "docs": [ + "The candidate cannot be kicked as the candidate was not clearly rejected." + ] + }, + { + "name": "Approved", + "fields": [], + "index": 19, + "docs": [ + "The candidacy cannot be dropped as the candidate was clearly approved." + ] + }, + { + "name": "Rejected", + "fields": [], + "index": 20, + "docs": [ + "The candidacy cannot be bestowed as the candidate was clearly rejected." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 21, + "docs": [ + "The candidacy cannot be concluded as the voting is still in progress." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 22, + "docs": [ + "The candidacy cannot be pruned until a full additional intake period has passed." + ] + }, + { + "name": "Voted", + "fields": [], + "index": 23, + "docs": [ + "The skeptic already voted." + ] + }, + { + "name": "Expired", + "fields": [], + "index": 24, + "docs": [ + "The skeptic need not vote on candidates from expired rounds." + ] + }, + { + "name": "NotBidder", + "fields": [], + "index": 25, + "docs": [ + "User is not a bidder." + ] + }, + { + "name": "NoDefender", + "fields": [], + "index": 26, + "docs": [ + "There is no defender currently." + ] + }, + { + "name": "NotGroup", + "fields": [], + "index": 27, + "docs": [ + "Group doesn't exist." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 28, + "docs": [ + "The member is already elevated to this rank." + ] + }, + { + "name": "AlreadyPunished", + "fields": [], + "index": 29, + "docs": [ + "The skeptic has already been punished for this offence." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 30, + "docs": [ + "Funds are insufficient to pay off society debts." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 31, + "docs": [ + "The candidate/defender has no stale votes to remove." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 32, + "docs": [ + "There is no deposit associated with a bid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 782, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 783 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 783, + "typeName": "Friends", + "docs": [] + }, + { + "name": "threshold", + "type": 97, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 120, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 783 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 783, + "typeName": "Friends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "fields": [], + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "fields": [], + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "fields": [], + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "fields": [], + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "fields": [], + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "fields": [], + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "fields": [], + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "fields": [], + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "fields": [], + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "fields": [], + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "fields": [], + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "fields": [], + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "fields": [], + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "fields": [], + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 786, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 203 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 787, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 203 + } + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 790, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 791 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 793, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 792 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 792, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 99 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 160 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 523, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 99, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 205, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 160, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 791 + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 796, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 797, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 797, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 798 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 799, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 209 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 209, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 798 + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 801, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 802 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 803, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 802 + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 805, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 212, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 806, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 120, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found in storage." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it or update", + "its deposits." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 808, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 301, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 809, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 301 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 301, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 811 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 812, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 813, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 40, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 811 + ] + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 812 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 812, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 816, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 817, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ApprovedWithCurator", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + }, + { + "name": "NotProposer", + "fields": [], + "index": 11, + "docs": [ + "User is not the proposer of the bounty." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 820, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 821, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 822, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 823, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + }, + { + "name": "MaxBackersPerWinner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 824, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 294, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 590, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupports" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BOuter", + "type": null + }, + { + "name": "BInner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 825, + "typeName": "BoundedVec<(AccountId, BoundedSupport), BOuter>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 826 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 829, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 827 + ] + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Bound", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 828, + "typeName": "BoundedVec<(AccountId, ExtendedBalance), Bound>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 301 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 300, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 826 + } + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "VoterType", + "type": 831 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 832, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 120, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 685 + ] + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 831 + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 834 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 835, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 294, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 834 + } + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 219 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 218, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Submission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 838, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 131, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 842, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 1, + "docs": [ + "Could not update a node, because the pallet is locked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 842, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 487, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 844, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 845, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 746, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 847, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 849, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 305, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 311, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 595, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 848, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 40, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 314, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 313 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 313, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 131, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 131, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 487, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 852, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 853, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 852 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 854, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 852 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 855, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 856 + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 852 + ] + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 859, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "SlashTooLow", + "fields": [], + "index": 33, + "docs": [ + "The slash amount is too low to be applied." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 35, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 36, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 37, + "docs": [ + "Account is restricted from participation in pools. This may happen if the account is", + "staking in another way already." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 859, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 861, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 862, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 301 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 300, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 864, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "Delegation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "AgentLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total_delegated", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pending_slash", + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "The account cannot perform this operation." + ] + }, + { + "name": "AlreadyStaking", + "fields": [], + "index": 1, + "docs": [ + "An existing staker cannot perform this action." + ] + }, + { + "name": "InvalidRewardDestination", + "fields": [], + "index": 2, + "docs": [ + "Reward Destination cannot be same as `Agent` account." + ] + }, + { + "name": "InvalidDelegation", + "fields": [], + "index": 3, + "docs": [ + "Delegation conditions are not met.", + "", + "Possible issues are", + "1) Cannot delegate to self,", + "2) Cannot delegate to multiple delegates." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 4, + "docs": [ + "The account does not have enough funds to perform the operation." + ] + }, + { + "name": "NotAgent", + "fields": [], + "index": 5, + "docs": [ + "Not an existing `Agent` account." + ] + }, + { + "name": "NotDelegator", + "fields": [], + "index": 6, + "docs": [ + "Not a Delegator account." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 7, + "docs": [ + "Some corruption in internal state." + ] + }, + { + "name": "UnappliedSlash", + "fields": [], + "index": 8, + "docs": [ + "Unapplied pending slash restricts operation on `Agent`." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 9, + "docs": [ + "`Agent` has no pending slash to be applied." + ] + }, + { + "name": "WithdrawFailed", + "fields": [], + "index": 10, + "docs": [ + "Failed to withdraw amount from Core Staking." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 11, + "docs": [ + "Operation not supported by this pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 867, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 120 + ] + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 869, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "SessionReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_points", + "type": 694, + "typeName": "Vec<(AccountId, u32)>", + "docs": [] + }, + { + "name": "activation_timestamp", + "type": 870, + "typeName": "Option<(u64, u32)>", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 654 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 654, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 872 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 874, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 872, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 873 + ] + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "Offence" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "reporters", + "type": 120, + "typeName": "Vec", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 39, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 874, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 872 + } + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Blocked", + "fields": [], + "index": 0, + "docs": [ + "Could not process incoming message because incoming messages are blocked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 876, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "HostConfiguration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "async_backing_params", + "type": 321, + "typeName": "AsyncBackingParams", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_downward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_outbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_channel_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_inbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "executor_params", + "type": 322, + "typeName": "ExecutorParams", + "docs": [] + }, + { + "name": "code_retention_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "max_validators", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "dispute_post_conclusion_acceptance_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "pvf_voting_ttl", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "minimum_validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "minimum_backing_votes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "node_features", + "type": 336, + "typeName": "NodeFeatures", + "docs": [] + }, + { + "name": "approval_voting_params", + "type": 327, + "typeName": "ApprovalVotingParams", + "docs": [] + }, + { + "name": "scheduler_params", + "type": 328, + "typeName": "SchedulerParams", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 878 + } + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 876 + ] + }, + "docs": [] + } + }, + { + "id": 879, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNewValue", + "fields": [], + "index": 0, + "docs": [ + "The new value for a configuration parameter is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 880, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 338 + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 139 + } + }, + "docs": [] + } + }, + { + "id": 882, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "AllowedRelayParentsTracker" + ], + "params": [ + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "buffer", + "type": 883, + "typeName": "VecDeque>", + "docs": [] + }, + { + "name": "latest_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 883, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 884 + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "RelayParentInfo" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "relay_parent", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "claim_queue", + "type": 885, + "typeName": "BTreeMap>>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 164 + }, + { + "name": "V", + "type": 886 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 891, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 887 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 889, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 887, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 602 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 888, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 888, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 602 + } + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 890 + } + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 887 + ] + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 892 + } + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 164, + 886 + ] + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 894 + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "CandidatePendingAvailability" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 602, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "hash", + "type": 359, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "descriptor", + "type": 343, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments", + "type": 347, + "typeName": "CandidateCommitments", + "docs": [] + }, + { + "name": "availability_votes", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "backers", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backed_in_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backing_group", + "type": 603, + "typeName": "GroupIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 0, + "docs": [ + "Validator index out of bounds." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 1, + "docs": [ + "Candidate submitted but para not scheduled." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 2, + "docs": [ + "Head data exceeds the configured maximum." + ] + }, + { + "name": "PrematureCodeUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Code upgrade prematurely." + ] + }, + { + "name": "NewCodeTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Output code is too large" + ] + }, + { + "name": "DisallowedRelayParent", + "fields": [], + "index": 5, + "docs": [ + "The candidate's relay-parent was not allowed. Either it was", + "not recent enough or it didn't advance based on the last teyrchain block." + ] + }, + { + "name": "InvalidAssignment", + "fields": [], + "index": 6, + "docs": [ + "Failed to compute group index for the core: either it's out of bounds", + "or the relay parent doesn't belong to the current session." + ] + }, + { + "name": "InvalidGroupIndex", + "fields": [], + "index": 7, + "docs": [ + "Invalid group index in core assignment." + ] + }, + { + "name": "InsufficientBacking", + "fields": [], + "index": 8, + "docs": [ + "Insufficient (non-majority) backing." + ] + }, + { + "name": "InvalidBacking", + "fields": [], + "index": 9, + "docs": [ + "Invalid (bad signature, unknown validator, etc.) backing." + ] + }, + { + "name": "ValidationDataHashMismatch", + "fields": [], + "index": 10, + "docs": [ + "The validation data hash does not match expected." + ] + }, + { + "name": "IncorrectDownwardMessageHandling", + "fields": [], + "index": 11, + "docs": [ + "The downward message queue is not processed correctly." + ] + }, + { + "name": "InvalidUpwardMessages", + "fields": [], + "index": 12, + "docs": [ + "At least one upward message sent does not pass the acceptance criteria." + ] + }, + { + "name": "HrmpWatermarkMishandling", + "fields": [], + "index": 13, + "docs": [ + "The candidate didn't follow the rules of HRMP watermark advancement." + ] + }, + { + "name": "InvalidOutboundHrmp", + "fields": [], + "index": 14, + "docs": [ + "The HRMP messages sent by the candidate is not valid." + ] + }, + { + "name": "InvalidValidationCodeHash", + "fields": [], + "index": 15, + "docs": [ + "The validation code hash of the candidate is not valid." + ] + }, + { + "name": "ParaHeadMismatch", + "fields": [], + "index": 16, + "docs": [ + "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual", + "para head in the commitments." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 896, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "ScrapedOnChainVotes" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "backing_validators_per_candidate", + "type": 897, + "typeName": "Vec<\n(CandidateReceiptV2, Vec<(ValidatorIndex, ValidityAttestation)>)>", + "docs": [] + }, + { + "name": "disputes", + "type": 357, + "typeName": "MultiDisputeStatementSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 897, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 898 + } + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 601, + 899 + ] + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 900 + } + }, + "docs": [] + } + }, + { + "id": 900, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 338, + 356 + ] + }, + "docs": [] + } + }, + { + "id": 901, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyInclusionInherents", + "fields": [], + "index": 0, + "docs": [ + "Inclusion inherent called more than once per block." + ] + }, + { + "name": "InvalidParentHeader", + "fields": [], + "index": 1, + "docs": [ + "The hash of the submitted parent header doesn't correspond to the saved block hash of", + "the parent." + ] + }, + { + "name": "InherentDataFilteredDuringExecution", + "fields": [], + "index": 2, + "docs": [ + "Inherent data was filtered during execution. This should have only been done", + "during creation." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 3, + "docs": [ + "Too many candidates supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 902, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 880 + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 602 + }, + { + "name": "V", + "type": 904 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 906, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 904, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 905 + } + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "common", + "Assignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pool", + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "core_index", + "type": 602, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Bulk", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 907 + } + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 602, + 904 + ] + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckActiveVoteState" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes_accept", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "votes_reject", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "created_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "causes", + "type": 909, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 910 + } + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckCause" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Upgrade", + "fields": [ + { + "name": "id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "included_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "upgrade_strategy", + "type": 911, + "typeName": "UpgradeStrategy", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 911, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "UpgradeStrategy" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SetGoAheadSignal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ApplyAtExpectedBlock", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 912, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 346 + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 164 + } + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaLifecycle" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Parathread", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Teyrchain", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UpgradingParathread", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DowngradingTeyrchain", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "OffboardingParathread", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "OffboardingTeyrchain", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 915, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 164, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaPastCodeMeta" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upgrade_times", + "type": 917, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "last_pruned", + "type": 40, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 917, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 918 + } + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ReplacementTimes" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "expected_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "activated_at", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 915 + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "AuthorizedCodeHashAndExpiry" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "GoAhead", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeRestriction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaGenesisArgs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "genesis_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 353, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "para_kind", + "type": 8, + "typeName": "ParaKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "Para is not registered in our system." + ] + }, + { + "name": "CannotOnboard", + "fields": [], + "index": 1, + "docs": [ + "Para cannot be onboarded because it is already tracked by our system." + ] + }, + { + "name": "CannotOffboard", + "fields": [], + "index": 2, + "docs": [ + "Para cannot be offboarded at this time." + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Para cannot be upgraded to a lease holding teyrchain." + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 4, + "docs": [ + "Para cannot be downgraded to an on-demand teyrchain." + ] + }, + { + "name": "PvfCheckStatementStale", + "fields": [], + "index": 5, + "docs": [ + "The statement for PVF pre-checking is stale." + ] + }, + { + "name": "PvfCheckStatementFuture", + "fields": [], + "index": 6, + "docs": [ + "The statement for PVF pre-checking is for a future session." + ] + }, + { + "name": "PvfCheckValidatorIndexOutOfBounds", + "fields": [], + "index": 7, + "docs": [ + "Claimed validator index is out of bounds." + ] + }, + { + "name": "PvfCheckInvalidSignature", + "fields": [], + "index": 8, + "docs": [ + "The signature for the PVF pre-checking is invalid." + ] + }, + { + "name": "PvfCheckDoubleVote", + "fields": [], + "index": 9, + "docs": [ + "The given validator already has cast a vote." + ] + }, + { + "name": "PvfCheckSubjectInvalid", + "fields": [], + "index": 10, + "docs": [ + "The given PVF does not exist at the moment of process a vote." + ] + }, + { + "name": "CannotUpgradeCode", + "fields": [], + "index": 11, + "docs": [ + "Teyrchain cannot currently schedule a code upgrade." + ] + }, + { + "name": "InvalidCode", + "fields": [], + "index": 12, + "docs": [ + "Invalid validation code size." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 13, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 14, + "docs": [ + "The submitted code is not authorized." + ] + }, + { + "name": "InvalidBlockNumber", + "fields": [], + "index": 15, + "docs": [ + "Invalid block number." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 925, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 926 + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "BufferedSessionChange" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 881, + "typeName": "Vec", + "docs": [] + }, + { + "name": "queued", + "type": 881, + "typeName": "Vec", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 928 + } + }, + "docs": [] + } + }, + { + "id": 928, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "msg", + "type": 14, + "typeName": "DownwardMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpOpenChannelRequest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "confirmed", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "_age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 930, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 370 + } + }, + "docs": [] + } + }, + { + "id": 931, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpChannel" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "mqc_head", + "type": 167, + "typeName": "Option", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 932, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 933 + } + }, + "docs": [] + } + }, + { + "id": 933, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 934, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 935 + } + }, + "docs": [] + } + }, + { + "id": 935, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 913 + ] + }, + "docs": [] + } + }, + { + "id": 936, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenHrmpChannelToSelf", + "fields": [], + "index": 0, + "docs": [ + "The sender tried to open a channel to themselves." + ] + }, + { + "name": "OpenHrmpChannelInvalidRecipient", + "fields": [], + "index": 1, + "docs": [ + "The recipient is not a valid para." + ] + }, + { + "name": "OpenHrmpChannelZeroCapacity", + "fields": [], + "index": 2, + "docs": [ + "The requested capacity is zero." + ] + }, + { + "name": "OpenHrmpChannelCapacityExceedsLimit", + "fields": [], + "index": 3, + "docs": [ + "The requested capacity exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelZeroMessageSize", + "fields": [], + "index": 4, + "docs": [ + "The requested maximum message size is 0." + ] + }, + { + "name": "OpenHrmpChannelMessageSizeExceedsLimit", + "fields": [], + "index": 5, + "docs": [ + "The open request requested the message size that exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelAlreadyExists", + "fields": [], + "index": 6, + "docs": [ + "The channel already exists" + ] + }, + { + "name": "OpenHrmpChannelAlreadyRequested", + "fields": [], + "index": 7, + "docs": [ + "There is already a request to open the same channel." + ] + }, + { + "name": "OpenHrmpChannelLimitExceeded", + "fields": [], + "index": 8, + "docs": [ + "The sender already has the maximum number of allowed outbound channels." + ] + }, + { + "name": "AcceptHrmpChannelDoesntExist", + "fields": [], + "index": 9, + "docs": [ + "The channel from the sender to the origin doesn't exist." + ] + }, + { + "name": "AcceptHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 10, + "docs": [ + "The channel is already confirmed." + ] + }, + { + "name": "AcceptHrmpChannelLimitExceeded", + "fields": [], + "index": 11, + "docs": [ + "The recipient already has the maximum number of allowed inbound channels." + ] + }, + { + "name": "CloseHrmpChannelUnauthorized", + "fields": [], + "index": 12, + "docs": [ + "The origin tries to close a channel where it is neither the sender nor the recipient." + ] + }, + { + "name": "CloseHrmpChannelDoesntExist", + "fields": [], + "index": 13, + "docs": [ + "The channel to be closed doesn't exist." + ] + }, + { + "name": "CloseHrmpChannelAlreadyUnderway", + "fields": [], + "index": 14, + "docs": [ + "The channel close request is already requested." + ] + }, + { + "name": "CancelHrmpOpenChannelUnauthorized", + "fields": [], + "index": 15, + "docs": [ + "Canceling is requested by neither the sender nor recipient of the open channel request." + ] + }, + { + "name": "OpenHrmpChannelDoesntExist", + "fields": [], + "index": 16, + "docs": [ + "The open request doesn't exist." + ] + }, + { + "name": "OpenHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 17, + "docs": [ + "Cannot cancel an HRMP open channel request because it is already confirmed." + ] + }, + { + "name": "WrongWitness", + "fields": [], + "index": 18, + "docs": [ + "The provided witness data is wrong." + ] + }, + { + "name": "ChannelCreationNotAuthorized", + "fields": [], + "index": 19, + "docs": [ + "The channel between these two chains cannot be authorized." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 937, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 140 + } + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "SessionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "active_validator_indices", + "type": 880, + "typeName": "Vec", + "docs": [] + }, + { + "name": "random_seed", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validators", + "type": 939, + "typeName": "IndexedVec", + "docs": [] + }, + { + "name": "discovery_keys", + "type": 717, + "typeName": "Vec", + "docs": [] + }, + { + "name": "assignment_keys", + "type": 937, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_groups", + "type": 940, + "typeName": "IndexedVec>", + "docs": [] + }, + { + "name": "n_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 939, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 338 + }, + { + "name": "V", + "type": 139 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 881, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 940, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 603 + }, + { + "name": "V", + "type": 880 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 902, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 941, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 359 + ] + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "DisputeState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators_for", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "validators_against", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "concluded_at", + "type": 40, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 943, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 338 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 880, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 944, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DuplicateDisputeStatementSets", + "fields": [], + "index": 0, + "docs": [ + "Duplicate dispute statement sets provided." + ] + }, + { + "name": "AncientDisputeStatement", + "fields": [], + "index": 1, + "docs": [ + "Ancient dispute statement provided." + ] + }, + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 2, + "docs": [ + "Validator index on statement is out of bounds for session." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 3, + "docs": [ + "Invalid signature on statement." + ] + }, + { + "name": "DuplicateStatement", + "fields": [], + "index": 4, + "docs": [ + "Validator vote submitted more than once to dispute." + ] + }, + { + "name": "SingleSidedDispute", + "fields": [], + "index": 5, + "docs": [ + "A dispute where there are only votes on one side." + ] + }, + { + "name": "MaliciousBacker", + "fields": [], + "index": 6, + "docs": [ + "A dispute vote from a malicious backer." + ] + }, + { + "name": "MissingBackingVotes", + "fields": [], + "index": 7, + "docs": [ + "No backing votes were provides along dispute statements." + ] + }, + { + "name": "UnconfirmedDispute", + "fields": [], + "index": 8, + "docs": [ + "Unconfirmed dispute statement sets provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 945, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "PendingSlashes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "keys", + "type": 946, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "kind", + "type": 375, + "typeName": "DisputeOffenceKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 946, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 338 + }, + { + "name": "V", + "type": 139 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 947, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 947, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 948 + } + }, + "docs": [] + } + }, + { + "id": 948, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 338, + 139 + ] + }, + "docs": [] + } + }, + { + "id": 949, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "The key ownership proof is invalid." + ] + }, + { + "name": "InvalidSessionIndex", + "fields": [], + "index": 1, + "docs": [ + "The session index is too old or invalid." + ] + }, + { + "name": "InvalidCandidateHash", + "fields": [], + "index": 2, + "docs": [ + "The candidate hash is invalid." + ] + }, + { + "name": "InvalidValidatorIndex", + "fields": [], + "index": 3, + "docs": [ + "There is no pending slash for the given validator index and time", + "slot." + ] + }, + { + "name": "ValidatorIndexIdMismatch", + "fields": [], + "index": 4, + "docs": [ + "The validator index does not match the validator id." + ] + }, + { + "name": "DuplicateSlashingReport", + "fields": [], + "index": 5, + "docs": [ + "The given slashing report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 950, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "CoreAffinityCount" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core_index", + "type": 602, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 951, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "QueueStatusType" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "traffic", + "type": 487, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "next_index", + "type": 952, + "typeName": "QueueIndex", + "docs": [] + }, + { + "name": "smallest_index", + "type": 952, + "typeName": "QueueIndex", + "docs": [] + }, + { + "name": "freed_indices", + "type": 953, + "typeName": "BinaryHeap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 952, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "QueueIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 953, + "type": { + "path": [ + "BinaryHeap" + ], + "params": [ + { + "name": "T", + "type": 954 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 955, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 954, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "ReverseQueueIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 955, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 954 + } + }, + "docs": [] + } + }, + { + "id": 956, + "type": { + "path": [ + "BinaryHeap" + ], + "params": [ + { + "name": "T", + "type": 957 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 958, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 957, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "EnqueuedOrder" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "idx", + "type": 952, + "typeName": "QueueIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 958, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 957 + } + }, + "docs": [] + } + }, + { + "id": 959, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 960, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 960, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 961, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "QueueFull", + "fields": [], + "index": 0, + "docs": [ + "The order queue is full, `place_order` will not continue." + ] + }, + { + "name": "SpotPriceHigherThanMaxAmount", + "fields": [], + "index": 1, + "docs": [ + "The current spot price is higher than the max amount specified in the `place_order`", + "call, making it invalid." + ] + }, + { + "name": "InsufficientCredits", + "fields": [], + "index": 2, + "docs": [ + "The account doesn't have enough credits to purchase on-demand coretime." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 962, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 602 + ] + }, + "docs": [] + } + }, + { + "id": 963, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "Schedule" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignments", + "type": 387, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "next_schedule", + "type": 40, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 964, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "CoreDescriptor" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "queue", + "type": 965, + "typeName": "Option>", + "docs": [] + }, + { + "name": "current_work", + "type": 967, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 965, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 966 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 966, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 966, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "QueueDescriptor" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 967, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 968 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 968, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 968, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "WorkState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignments", + "type": 969, + "typeName": "Vec<(CoreAssignment, AssignmentState)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 40, + "typeName": "Option", + "docs": [] + }, + { + "name": "pos", + "type": 97, + "typeName": "u16", + "docs": [] + }, + { + "name": "step", + "type": 390, + "typeName": "PartsOf57600", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 969, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 970 + } + }, + "docs": [] + } + }, + { + "id": 970, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 389, + 971 + ] + }, + "docs": [] + } + }, + { + "id": 971, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "AssignmentState" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ratio", + "type": 390, + "typeName": "PartsOf57600", + "docs": [] + }, + { + "name": "remaining", + "type": 390, + "typeName": "PartsOf57600", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 972, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssignmentsEmpty", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "DisallowedInsert", + "fields": [], + "index": 1, + "docs": [ + "assign_core is only allowed to append new assignments at the end of already existing", + "ones or update the last entry." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 973, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "ParaInfo" + ], + "params": [ + { + "name": "Account", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "manager", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "locked", + "type": 181, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 974, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "The ID is not registered." + ] + }, + { + "name": "AlreadyRegistered", + "fields": [], + "index": 1, + "docs": [ + "The ID is already registered." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 2, + "docs": [ + "The caller is not the owner of this Id." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 3, + "docs": [ + "Invalid para code size." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Invalid para head data size." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 5, + "docs": [ + "Para is not a Teyrchain." + ] + }, + { + "name": "NotParathread", + "fields": [], + "index": 6, + "docs": [ + "Para is not a Parathread (on-demand teyrchain)." + ] + }, + { + "name": "CannotDeregister", + "fields": [], + "index": 7, + "docs": [ + "Cannot deregister para" + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 8, + "docs": [ + "Cannot schedule downgrade of lease holding teyrchain to on-demand teyrchain" + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 9, + "docs": [ + "Cannot schedule upgrade of on-demand teyrchain to lease holding teyrchain" + ] + }, + { + "name": "ParaLocked", + "fields": [], + "index": 10, + "docs": [ + "Para is locked from manipulation by the manager. Must use teyrchain or relay chain", + "governance." + ] + }, + { + "name": "NotReserved", + "fields": [], + "index": 11, + "docs": [ + "The ID given for registration has not been reserved." + ] + }, + { + "name": "InvalidCode", + "fields": [], + "index": 12, + "docs": [ + "The validation code is invalid." + ] + }, + { + "name": "CannotSwap", + "fields": [], + "index": 13, + "docs": [ + "Cannot perform a teyrchain slot / lifecycle swap. Check that the state of both paras", + "are correct for the swap to work." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 975, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 809 + } + }, + "docs": [] + } + }, + { + "id": 976, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParaNotOnboarding", + "fields": [], + "index": 0, + "docs": [ + "The teyrchain ID is not onboarding." + ] + }, + { + "name": "LeaseError", + "fields": [], + "index": 1, + "docs": [ + "There was an error with the lease." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 977, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 164 + ] + }, + "docs": [] + } + }, + { + "id": 978, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 36, + "type": 979 + } + }, + "docs": [] + } + }, + { + "id": 979, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 980 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 980, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 980, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 164, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 981, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionInProgress", + "fields": [], + "index": 0, + "docs": [ + "This auction is already in progress." + ] + }, + { + "name": "LeasePeriodInPast", + "fields": [], + "index": 1, + "docs": [ + "The lease period is in the past." + ] + }, + { + "name": "ParaNotRegistered", + "fields": [], + "index": 2, + "docs": [ + "Para is not registered" + ] + }, + { + "name": "NotCurrentAuction", + "fields": [], + "index": 3, + "docs": [ + "Not a current auction." + ] + }, + { + "name": "NotAuction", + "fields": [], + "index": 4, + "docs": [ + "Not an auction." + ] + }, + { + "name": "AuctionEnded", + "fields": [], + "index": 5, + "docs": [ + "Auction has already ended." + ] + }, + { + "name": "AlreadyLeasedOut", + "fields": [], + "index": 6, + "docs": [ + "The para is already leased out for part of this range." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 982, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "FundInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "LeasePeriod", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "verifier", + "type": 382, + "typeName": "Option", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raised", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "cap", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "last_contribution", + "type": 983, + "typeName": "LastContribution", + "docs": [] + }, + { + "name": "first_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "fund_index", + "type": 4, + "typeName": "FundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 983, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "LastContribution" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Never", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PreEnding", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ending", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 984, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FirstPeriodInPast", + "fields": [], + "index": 0, + "docs": [ + "The current lease period is more than the first lease period." + ] + }, + { + "name": "FirstPeriodTooFarInFuture", + "fields": [], + "index": 1, + "docs": [ + "The first lease period needs to at least be less than 3 `max_value`." + ] + }, + { + "name": "LastPeriodBeforeFirstPeriod", + "fields": [], + "index": 2, + "docs": [ + "Last lease period must be greater than first lease period." + ] + }, + { + "name": "LastPeriodTooFarInFuture", + "fields": [], + "index": 3, + "docs": [ + "The last lease period cannot be more than 3 periods after the first period." + ] + }, + { + "name": "CannotEndInPast", + "fields": [], + "index": 4, + "docs": [ + "The campaign ends before the current block number. The end must be in the future." + ] + }, + { + "name": "EndTooFarInFuture", + "fields": [], + "index": 5, + "docs": [ + "The end date for this crowdloan is not sensible." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 6, + "docs": [ + "There was an overflow." + ] + }, + { + "name": "ContributionTooSmall", + "fields": [], + "index": 7, + "docs": [ + "The contribution was below the minimum, `MinContribution`." + ] + }, + { + "name": "InvalidParaId", + "fields": [], + "index": 8, + "docs": [ + "Invalid fund index." + ] + }, + { + "name": "CapExceeded", + "fields": [], + "index": 9, + "docs": [ + "Contributions exceed maximum amount." + ] + }, + { + "name": "ContributionPeriodOver", + "fields": [], + "index": 10, + "docs": [ + "The contribution period has already ended." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 11, + "docs": [ + "The origin of this call is invalid." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 12, + "docs": [ + "This crowdloan does not correspond to a teyrchain." + ] + }, + { + "name": "LeaseActive", + "fields": [], + "index": 13, + "docs": [ + "This teyrchain lease is still active and retirement cannot yet begin." + ] + }, + { + "name": "BidOrLeaseActive", + "fields": [], + "index": 14, + "docs": [ + "This teyrchain's bid or lease is still active and withdraw cannot yet begin." + ] + }, + { + "name": "FundNotEnded", + "fields": [], + "index": 15, + "docs": [ + "The crowdloan has not yet ended." + ] + }, + { + "name": "NoContributions", + "fields": [], + "index": 16, + "docs": [ + "There are no contributions stored in this crowdloan." + ] + }, + { + "name": "NotReadyToDissolve", + "fields": [], + "index": 17, + "docs": [ + "The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement", + "period." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 18, + "docs": [ + "Invalid signature." + ] + }, + { + "name": "MemoTooLarge", + "fields": [], + "index": 19, + "docs": [ + "The provided memo is too large." + ] + }, + { + "name": "AlreadyInNewRaise", + "fields": [], + "index": 20, + "docs": [ + "The fund is already in `NewRaise`" + ] + }, + { + "name": "VrfDelayInProgress", + "fields": [], + "index": 21, + "docs": [ + "No contributions allowed during the VRF delay" + ] + }, + { + "name": "NoLeasePeriod", + "fields": [], + "index": 22, + "docs": [ + "A lease period has not started yet, due to an offset in the starting block." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 985, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotBroker", + "fields": [], + "index": 0, + "docs": [ + "The paraid making the call is not the coretime brokerage system teyrchain." + ] + }, + { + "name": "RequestedFutureRevenue", + "fields": [], + "index": 1, + "docs": [ + "Requested revenue information `when` parameter was in the future from the current", + "block height." + ] + }, + { + "name": "AssetTransferFailed", + "fields": [], + "index": 2, + "docs": [ + "Failed to transfer assets to the coretime chain" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 986, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "maybe_match_querier", + "type": 987, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_notify", + "type": 988, + "typeName": "Option<(u8, u8)>", + "docs": [] + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 990, + "typeName": "VersionedResponse", + "docs": [] + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 987, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 93 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 93, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 988, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 989 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 989, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 989, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 990, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 402, + "typeName": "v3::Response", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "v4::Response", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 446, + "typeName": "v5::Response", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 991, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 93 + ] + }, + "docs": [] + } + }, + { + "id": 992, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 10, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 993, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 994 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 995, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 994, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 93, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 995, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 994 + } + }, + "docs": [] + } + }, + { + "id": 996, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrateVersionNotifiers", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "name": null, + "type": 997, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MigrateAndNotifyOldTargets", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 997, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 998, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 481 + ] + }, + "docs": [] + } + }, + { + "id": 999, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 117 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "owner", + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "locker", + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "consumers", + "type": 1000, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1000, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1001 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1002, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1001, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 117, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 1002, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1001 + } + }, + "docs": [] + } + }, + { + "id": 1003, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1004 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1005, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1004, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 93 + ] + }, + "docs": [] + } + }, + { + "id": 1005, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1004 + } + }, + "docs": [] + } + }, + { + "id": 1006, + "type": { + "path": [ + "pallet_xcm", + "AuthorizedAliasesEntry" + ], + "params": [ + { + "name": "Ticket", + "type": 1007 + }, + { + "name": "MAX", + "type": 1008 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "aliasers", + "type": 1009, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "ticket", + "type": 1007, + "typeName": "Ticket", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1007, + "type": { + "path": [ + "frame_support", + "traits", + "storage", + "Disabled" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1008, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "MaxAuthorizedAliases" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1009, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1010 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1011, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1010, + "type": { + "path": [ + "xcm_runtime_apis", + "authorized_aliases", + "OriginAliaser" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "location", + "type": 93, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "expiry", + "type": 482, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1011, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1010 + } + }, + "docs": [] + } + }, + { + "id": 1012, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "fields": [], + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "fields": [], + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "fields": [], + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "fields": [], + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "fields": [], + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "fields": [], + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "fields": [], + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "fields": [], + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "fields": [], + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "fields": [], + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "fields": [], + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "fields": [], + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "fields": [], + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "fields": [], + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "fields": [], + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "fields": [], + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + }, + { + "name": "TooManyAuthorizedAliases", + "fields": [], + "index": 25, + "docs": [ + "Too many locations authorized to alias origin." + ] + }, + { + "name": "ExpiresInPast", + "fields": [], + "index": 26, + "docs": [ + "Expiry block number is in the past." + ] + }, + { + "name": "AliasNotFound", + "fields": [], + "index": 27, + "docs": [ + "The alias to remove authorization for was not found." + ] + }, + { + "name": "LocalExecutionIncompleteWithError", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 1013, + "typeName": "ExecutionError", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Local XCM execution incomplete with the actual XCM error and the index of the", + "instruction that caused the error." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1013, + "type": { + "path": [ + "pallet_xcm", + "errors", + "ExecutionError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1014, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 484 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 1015, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1015, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1016 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1016, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1016, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 484 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 484, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 484, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1017, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 484, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 1018, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 1019, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1019, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1020, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1021, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1022, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 142 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1023, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1023, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 142 + } + }, + "docs": [] + } + }, + { + "id": 1024, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidDoubleVotingProof", + "fields": [], + "index": 1, + "docs": [ + "A double voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidForkVotingProof", + "fields": [], + "index": 2, + "docs": [ + "A fork voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidFutureBlockVotingProof", + "fields": [], + "index": 3, + "docs": [ + "A future block voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProofSession", + "fields": [], + "index": 4, + "docs": [ + "The session of the equivocation proof is invalid" + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 5, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 6, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1025, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 13, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1026, + "type": { + "path": [ + "pallet_rc_migrator", + "accounts", + "AccountState" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Preserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Part", + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1027, + "type": { + "path": [ + "pallet_rc_migrator", + "accounts", + "MigratedBalances" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "kept", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "migrated", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1028, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 383 + } + }, + "docs": [] + } + }, + { + "id": 1029, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OutOfWeight", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "XcmError", + "fields": [], + "index": 2, + "docs": [ + "Failed to send XCM message to AH." + ] + }, + { + "name": "FailedToWithdrawAccount", + "fields": [], + "index": 3, + "docs": [ + "Failed to withdraw account from RC for migration to AH." + ] + }, + { + "name": "PastBlockNumber", + "fields": [], + "index": 4, + "docs": [ + "Indicates that the specified block number is in the past." + ] + }, + { + "name": "EraEndsTooSoon", + "fields": [], + "index": 5, + "docs": [ + "Indicates that there is not enough time for staking to lock.", + "", + "Schedule the migration at least two sessions before the current era ends." + ] + }, + { + "name": "BalanceOverflow", + "fields": [], + "index": 6, + "docs": [ + "Balance accounting overflow." + ] + }, + { + "name": "BalanceUnderflow", + "fields": [], + "index": 7, + "docs": [ + "Balance accounting underflow." + ] + }, + { + "name": "InvalidQueryResponse", + "fields": [], + "index": 8, + "docs": [ + "The query response is invalid." + ] + }, + { + "name": "QueryNotFound", + "fields": [], + "index": 9, + "docs": [ + "The xcm query was not found." + ] + }, + { + "name": "XcmSendError", + "fields": [], + "index": 10, + "docs": [ + "Failed to send XCM message." + ] + }, + { + "name": "UnreachableStage", + "fields": [], + "index": 11, + "docs": [ + "The migration stage is not reachable from the current stage." + ] + }, + { + "name": "InvalidParameter", + "fields": [], + "index": 12, + "docs": [ + "Invalid parameter." + ] + }, + { + "name": "AhUmpQueuePriorityAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The AH UMP queue priority configuration is already set." + ] + }, + { + "name": "AccountReferenced", + "fields": [], + "index": 14, + "docs": [ + "The account is referenced by some other pallet. It might have freezes or holds." + ] + }, + { + "name": "BadXcmVersion", + "fields": [], + "index": 15, + "docs": [ + "The XCM version is invalid." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 16, + "docs": [ + "The origin is invalid." + ] + }, + { + "name": "InvalidStageTransition", + "fields": [], + "index": 17, + "docs": [ + "The stage transition is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1030, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1031, + 1032, + 1033, + 1034, + 1035, + 1037, + 1038, + 1039, + 1040 + ] + }, + "docs": [] + } + }, + { + "id": 1031, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1032, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1033, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1034, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1035, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1036, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1036, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1037, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 57, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1038, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 1039, + "type": { + "path": [ + "pallet_transaction_payment", + "ChargeTransactionPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 61, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1040, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 1041, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1041, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1042, + "type": { + "path": [ + "relay_common", + "apis", + "InflationInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "inflation", + "type": 176, + "typeName": "sp_runtime::Perquintill", + "docs": [] + }, + { + "name": "next_mint", + "type": 1043, + "typeName": "(pezkuwi_primitives::Balance, pezkuwi_primitives::Balance)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1043, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 1044, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 107 + }, + { + "name": "Extrinsic", + "type": 1045 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 107, + "typeName": "Header", + "docs": [] + }, + { + "name": "extrinsics", + "type": 1046, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1045, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 116 + }, + { + "name": "Call", + "type": 100 + }, + { + "name": "Signature", + "type": 385 + }, + { + "name": "Extra", + "type": 1030 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1046, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1045 + } + }, + "docs": [] + } + }, + { + "id": 1047, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyInherents", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1048, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1049, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1048 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1048, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1050, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 575 + }, + { + "name": "E", + "type": 1051 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 575, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1051, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1051, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 1052, + "typeName": "InvalidTransaction", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Unknown", + "fields": [ + { + "name": null, + "type": 1053, + "typeName": "UnknownTransaction", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1052, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Payment", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Future", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Stale", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BadProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExhaustsResources", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BadMandatory", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "MandatoryValidation", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "BadSigner", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IndeterminateImplicit", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 12, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1053, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoUnsignedValidator", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1054, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 1055, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1055, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 401 + }, + { + "name": "V", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1056, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1056, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1057 + } + }, + "docs": [] + } + }, + { + "id": 1057, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 401, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 1058, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "errors", + "type": 1054, + "typeName": "InherentData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1059, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "External", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1060, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1061 + }, + { + "name": "E", + "type": 1051 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1061, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1051, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1061, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority", + "docs": [] + }, + { + "name": "requires", + "type": 104, + "typeName": "Vec", + "docs": [] + }, + { + "name": "provides", + "type": 104, + "typeName": "Vec", + "docs": [] + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity", + "docs": [] + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1062, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 902, + 1063 + ] + }, + "docs": [] + } + }, + { + "id": 1063, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "GroupRotationInfo" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "session_start_block", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "group_rotation_frequency", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "now", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1064, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1065 + } + }, + "docs": [] + } + }, + { + "id": 1065, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CoreState" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Occupied", + "fields": [ + { + "name": null, + "type": 1066, + "typeName": "OccupiedCore", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduled", + "fields": [ + { + "name": null, + "type": 1068, + "typeName": "ScheduledCore", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Free", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1066, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "OccupiedCore" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "next_up_on_available", + "type": 1067, + "typeName": "Option", + "docs": [] + }, + { + "name": "occupied_since", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "time_out_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_up_on_time_out", + "type": 1067, + "typeName": "Option", + "docs": [] + }, + { + "name": "availability", + "type": 336, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "group_responsible", + "type": 603, + "typeName": "GroupIndex", + "docs": [] + }, + { + "name": "candidate_hash", + "type": 359, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "candidate_descriptor", + "type": 343, + "typeName": "CandidateDescriptorV2", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1067, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1068 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1068, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1068, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ScheduledCore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 164, + "typeName": "Id", + "docs": [] + }, + { + "name": "collator", + "type": 1069, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1069, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1070 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1070, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1070, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "collator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1071, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "OccupiedCoreAssumption" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Included", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Free", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1072, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1073 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1073, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1073, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PersistedValidationData" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_head", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "relay_parent_storage_root", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1074, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1075 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1075, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1075, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1073, + 346 + ] + }, + "docs": [] + } + }, + { + "id": 1076, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 342 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 342, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1077, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1078 + } + }, + "docs": [] + } + }, + { + "id": 1078, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CandidateEvent" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CandidateBacked", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "CandidateReceiptV2", + "docs": [] + }, + { + "name": null, + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 602, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 603, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "CandidateIncluded", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "CandidateReceiptV2", + "docs": [] + }, + { + "name": null, + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 602, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 603, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "CandidateTimedOut", + "fields": [ + { + "name": null, + "type": 601, + "typeName": "CandidateReceiptV2", + "docs": [] + }, + { + "name": null, + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 602, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1079, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 164 + }, + { + "name": "V", + "type": 932 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1080, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1080, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1081 + } + }, + "docs": [] + } + }, + { + "id": 1081, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 164, + 932 + ] + }, + "docs": [] + } + }, + { + "id": 1082, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 896 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 896, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1083, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 938 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 938, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1084, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 346 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 346, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1085, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1086 + } + }, + "docs": [] + } + }, + { + "id": 1086, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 359, + 942 + ] + }, + "docs": [] + } + }, + { + "id": 1087, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 322 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 322, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1088, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1089 + } + }, + "docs": [] + } + }, + { + "id": 1089, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 359, + 1090 + ] + }, + "docs": [] + } + }, + { + "id": 1090, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "PendingSlashes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "keys", + "type": 946, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "kind", + "type": 1091, + "typeName": "SlashingOffenceKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1091, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "SlashingOffenceKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ForInvalid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AgainstValid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1092, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1093 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1093, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1093, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "OpaqueKeyOwnershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1094, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "DisputeProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "time_slot", + "type": 374, + "typeName": "DisputesTimeSlot", + "docs": [] + }, + { + "name": "kind", + "type": 1091, + "typeName": "SlashingOffenceKind", + "docs": [] + }, + { + "name": "validator_index", + "type": 338, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "validator_id", + "type": 139, + "typeName": "ValidatorId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1095, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1096 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1096, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1096, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "async_backing", + "BackingState" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "constraints", + "type": 1097, + "typeName": "crate::async_backing::Constraints", + "docs": [] + }, + { + "name": "pending_availability", + "type": 1105, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1097, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "Constraints" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "min_relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_ump_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "dmp_remaining_messages", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hrmp_inbound", + "type": 1098, + "typeName": "InboundHrmpLimitations", + "docs": [] + }, + { + "name": "hrmp_channels_out", + "type": 1099, + "typeName": "Vec<(Id, OutboundHrmpChannelLimitations)>", + "docs": [] + }, + { + "name": "max_hrmp_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "required_parent", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "upgrade_restriction", + "type": 1102, + "typeName": "Option", + "docs": [] + }, + { + "name": "future_validation_code", + "type": 1103, + "typeName": "Option<(N, ValidationCodeHash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1098, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "InboundHrmpLimitations" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "valid_watermarks", + "type": 125, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1099, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1100 + } + }, + "docs": [] + } + }, + { + "id": 1100, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 164, + 1101 + ] + }, + "docs": [] + } + }, + { + "id": 1101, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "OutboundHrmpChannelLimitations" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bytes_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "messages_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1102, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 922 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 922, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1103, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1104 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1104, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1104, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 346 + ] + }, + "docs": [] + } + }, + { + "id": 1105, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1106 + } + }, + "docs": [] + } + }, + { + "id": 1106, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "async_backing", + "CandidatePendingAvailability" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "candidate_hash", + "type": 359, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "descriptor", + "type": 343, + "typeName": "CandidateDescriptorV2", + "docs": [] + }, + { + "name": "commitments", + "type": 347, + "typeName": "CandidateCommitments", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1107, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 602 + }, + { + "name": "V", + "type": 913 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1108, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1108, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1109 + } + }, + "docs": [] + } + }, + { + "id": 1109, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 602, + 913 + ] + }, + "docs": [] + } + }, + { + "id": 1110, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 342 + } + }, + "docs": [] + } + }, + { + "id": 1111, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1112 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1112, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1112, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "async_backing", + "Constraints" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "min_relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_ump_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "dmp_remaining_messages", + "type": 125, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hrmp_inbound", + "type": 1098, + "typeName": "InboundHrmpLimitations", + "docs": [] + }, + { + "name": "hrmp_channels_out", + "type": 1099, + "typeName": "Vec<(Id, OutboundHrmpChannelLimitations)>", + "docs": [] + }, + { + "name": "max_hrmp_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "required_parent", + "type": 354, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 346, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "upgrade_restriction", + "type": 1102, + "typeName": "Option", + "docs": [] + }, + { + "name": "future_validation_code", + "type": 1103, + "typeName": "Option<(N, ValidationCodeHash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1113, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1114 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1114, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1114, + "type": { + "path": [ + "sp_consensus_beefy", + "ValidatorSet" + ], + "params": [ + { + "name": "AuthorityId", + "type": 142 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 1023, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1115, + "type": { + "path": [ + "sp_runtime", + "OpaqueValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1116, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 107 + }, + { + "name": "Id", + "type": 142 + }, + { + "name": "AncestryProof", + "type": 1115 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 491, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 1115, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 107, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1117, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1115 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1115, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1118, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 1119 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1119, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1119, + "type": { + "path": [ + "sp_mmr_primitives", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNumericOp", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Push", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "GetRoot", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Commit", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "GenerateProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Verify", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "LeafNotFound", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "PalletNotIncluded", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "InvalidLeafIndex", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidBestKnownBlock", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1120, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 12 + }, + { + "name": "E", + "type": 1119 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1119, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1121, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1122 + }, + { + "name": "E", + "type": 1119 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1122, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1119, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1122, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1123, + 1125 + ] + }, + "docs": [] + } + }, + { + "id": 1123, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1124 + } + }, + "docs": [] + } + }, + { + "id": 1124, + "type": { + "path": [ + "sp_mmr_primitives", + "EncodableOpaqueLeaf" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1125, + "type": { + "path": [ + "sp_mmr_primitives", + "LeafProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "leaf_indices", + "type": 840, + "typeName": "Vec", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 214, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1126, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 117 + }, + { + "name": "E", + "type": 1119 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 117, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1119, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1127, + "type": { + "path": [ + "sp_consensus_babe", + "BabeConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "slot_duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "epoch_length", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "c", + "type": 112, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "authorities", + "type": 643, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 113, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1128, + "type": { + "path": [ + "sp_consensus_babe", + "Epoch" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "epoch_index", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "start_slot", + "type": 109, + "typeName": "Slot", + "docs": [] + }, + { + "name": "duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "authorities", + "type": 643, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "config", + "type": 652, + "typeName": "BabeEpochConfiguration", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1129, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1130 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1130, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1130, + "type": { + "path": [ + "sp_consensus_babe", + "OpaqueKeyOwnershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1131, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1132 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1132, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1132, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1133 + } + }, + "docs": [] + } + }, + { + "id": 1133, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 710 + ] + }, + "docs": [] + } + }, + { + "id": 1134, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1135, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 1136, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1136, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1137 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1137, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1137, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1138, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1139 + }, + { + "name": "E", + "type": 1140 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1139, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1140, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1139, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 481 + } + }, + "docs": [] + } + }, + { + "id": 1140, + "type": { + "path": [ + "xcm_runtime_apis", + "fees", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1141, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 1140 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1140, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1142, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "E", + "type": 1140 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1140, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1143, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 468 + }, + { + "name": "E", + "type": 1140 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 468, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1140, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1144, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1145 + }, + { + "name": "E", + "type": 1151 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1145, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1151, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1145, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "CallDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 562, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1146, + "typeName": "Vec", + "docs": [] + }, + { + "name": "local_xcm", + "type": 1147, + "typeName": "Option>", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1148, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1146, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 21 + } + }, + "docs": [] + } + }, + { + "id": 1147, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 392 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 392, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1148, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1149 + } + }, + "docs": [] + } + }, + { + "id": 1149, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 93, + 1150 + ] + }, + "docs": [] + } + }, + { + "id": 1150, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 392 + } + }, + "docs": [] + } + }, + { + "id": 1151, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1152, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1153 + }, + { + "name": "E", + "type": 1151 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1153, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1151, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1153, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "XcmDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 616, + "typeName": "Outcome", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1146, + "typeName": "Vec", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1148, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1154, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 1155 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1155, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1155, + "type": { + "path": [ + "xcm_runtime_apis", + "conversions", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unsupported", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1156, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 117 + }, + { + "name": "E", + "type": 628 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 117, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 628, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1157, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 628 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 628, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1158, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 628 + } + }, + "docs": [] + } + }, + { + "id": 1159, + "type": { + "path": [ + "staging_zagros_runtime", + "RuntimeError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 640, + "typeName": "frame_system::Error", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 656, + "typeName": "pallet_babe::Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 658, + "typeName": "pallet_indices::Error", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 680, + "typeName": "pallet_balances::Error", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 700, + "typeName": "pallet_staking::Error", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 711, + "typeName": "pallet_session::Error", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 715, + "typeName": "pallet_grandpa::Error", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 723, + "typeName": "pallet_treasury::Error", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 735, + "typeName": "pallet_conviction_voting::Error", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 753, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "FellowshipCollective", + "fields": [ + { + "name": null, + "type": 758, + "typeName": "pallet_ranked_collective::Error", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "FellowshipReferenda", + "fields": [ + { + "name": null, + "type": 762, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 763, + "typeName": "pallet_whitelist::Error", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 764, + "typeName": "claims::Error", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 765, + "typeName": "pallet_utility::Error", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 781, + "typeName": "pallet_society::Error", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 785, + "typeName": "pallet_recovery::Error", + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 789, + "typeName": "pallet_vesting::Error", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 795, + "typeName": "pallet_scheduler::Error", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 804, + "typeName": "pallet_proxy::Error", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 807, + "typeName": "pallet_multisig::Error", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 815, + "typeName": "pallet_preimage::Error", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 819, + "typeName": "pallet_bounties::Error", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 822, + "typeName": "pallet_child_bounties::Error", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 837, + "typeName": "pallet_election_provider_multi_phase::Error", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 841, + "typeName": "pallet_bags_list::Error", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 858, + "typeName": "pallet_nomination_pools::Error", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 863, + "typeName": "pallet_fast_unstake::Error", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 866, + "typeName": "pallet_delegated_staking::Error", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "StakingAhClient", + "fields": [ + { + "name": null, + "type": 875, + "typeName": "pallet_staking_async_ah_client::Error", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Configuration", + "fields": [ + { + "name": null, + "type": 879, + "typeName": "teyrchains_configuration::Error", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 895, + "typeName": "teyrchains_inclusion::Error", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "fields": [ + { + "name": null, + "type": 901, + "typeName": "teyrchains_paras_inherent::Error", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 924, + "typeName": "teyrchains_paras::Error", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 936, + "typeName": "teyrchains_hrmp::Error", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 944, + "typeName": "teyrchains_disputes::Error", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "fields": [ + { + "name": null, + "type": 949, + "typeName": "teyrchains_slashing::Error", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "OnDemandAssignmentProvider", + "fields": [ + { + "name": null, + "type": 961, + "typeName": "teyrchains_on_demand::Error", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "CoretimeAssignmentProvider", + "fields": [ + { + "name": null, + "type": 972, + "typeName": "teyrchains_assigner_coretime::Error", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 974, + "typeName": "paras_registrar::Error", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 976, + "typeName": "slots::Error", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 981, + "typeName": "auctions::Error", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 984, + "typeName": "crowdloan::Error", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 985, + "typeName": "coretime::Error", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 1012, + "typeName": "pallet_xcm::Error", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 1020, + "typeName": "pallet_message_queue::Error", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 1021, + "typeName": "pallet_asset_rate::Error", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 1024, + "typeName": "pallet_beefy::Error", + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "RcMigrator", + "fields": [ + { + "name": null, + "type": 1029, + "typeName": "pallet_rc_migrator::Error", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/dicle-ver.ts b/packages/types-support/src/metadata/v15/dicle-ver.ts new file mode 100644 index 0000000..b8812cc --- /dev/null +++ b/packages/types-support/src/metadata/v15/dicle-ver.ts @@ -0,0 +1,111 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --chain dicle-dev && cargo run --release -- --chain dicle-dev --alice --force-authoring + +export default { + "specName": "dicle", + "implName": "parity-dicle", + "authoringVersion": 2, + "specVersion": 1009002, + "implVersion": 0, + "apis": [ + [ + "0xc51ff1fa3f5d0cca", + 1 + ], + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 13 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 2 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ], + "transactionVersion": 26, + "systemVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v15/pezkuwi-hex.ts b/packages/types-support/src/metadata/v15/pezkuwi-hex.ts new file mode 100644 index 0000000..f8cf9de --- /dev/null +++ b/packages/types-support/src/metadata/v15/pezkuwi-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x018e8a1c006d6574610fe510000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365d508011450686173650001146576656e7454010445000118746f70696373c90101185665633c543e0000540840706f6c6b61646f745f72756e74696d653052756e74696d654576656e740001ac1853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e000000245363686564756c6572040080018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e00010020507265696d616765040094017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e000a001c496e6469636573040098017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0004002042616c616e63657304009c017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000500485472616e73616374696f6e5061796d656e740400a801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e0020001c5374616b696e670400ac017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000700204f6666656e6365730400c8015870616c6c65745f6f6666656e6365733a3a4576656e7400080028486973746f726963616c0400d0018873657373696f6e5f686973746f726963616c3a3a4576656e743c52756e74696d653e0021001c53657373696f6e0400d4017870616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e0009001c4772616e6470610400d8015470616c6c65745f6772616e6470613a3a4576656e74000b002054726561737572790400e8017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00130040436f6e76696374696f6e566f74696e670400910101a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e001400245265666572656e64610400a101018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0015002457686974656c69737404000d08018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e00170018436c61696d7304001d080158636c61696d733a3a4576656e743c52756e74696d653e0018001c56657374696e6704002108017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e0019001c5574696c69747904002508015470616c6c65745f7574696c6974793a3a4576656e74001a001450726f787904002908017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001d00204d756c746973696704003108017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001e0020426f756e7469657304003508017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e002200344368696c64426f756e7469657304003908019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e00260068456c656374696f6e50726f76696465724d756c7469506861736504003d0801d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e00240024566f7465724c69737404004d0801f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0025003c4e6f6d696e6174696f6e506f6f6c7304005108019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e0027002c46617374556e7374616b6504005908018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e0028004044656c6567617465645374616b696e6704005d0801a070616c6c65745f64656c6567617465645f7374616b696e673a3a4576656e743c52756e74696d653e0029003c5374616b696e674168436c69656e740400610801b870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e743a3a4576656e743c52756e74696d653e002a003450617261496e636c7573696f6e04006908019070617261636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e00350014506172617304007908018070617261636861696e735f70617261733a3a4576656e743c52756e74696d653e0038001048726d7004007d08017c70617261636861696e735f68726d703a3a4576656e743c52756e74696d653e003c00345061726173446973707574657304008108018c70617261636861696e735f64697370757465733a3a4576656e743c52756e74696d653e003e00204f6e44656d616e6404008d08019070617261636861696e735f6f6e5f64656d616e643a3a4576656e743c52756e74696d653e0040002452656769737472617204009108017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040095080154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304009908016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04009d08016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490020436f726574696d650400a1080160636f726574696d653a3a4576656e743c52756e74696d653e004a00485374617465547269654d6967726174696f6e0400a50801ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e0062002458636d50616c6c65740400b108016870616c6c65745f78636d3a3a4576656e743c52756e74696d653e006300304d65737361676551756575650400c108019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e006400244173736574526174650400c908018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e0065002852634d69677261746f720400cd08018870616c6c65745f72635f6d69677261746f723a3a4576656e743c52756e74696d653e00ff0000580c306672616d655f73797374656d1870616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000118726573756c748c01384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00010869648801404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652e84000004081010008804184f7074696f6e04045401040108104e6f6e6500000010536f6d6504000400000100008c0418526573756c740804540190044501680108084f6b040090000000000c4572720400680000010000900000040000940c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574980c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c0c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e7408045400044900015c1c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f737461747573a001185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e28556e65787065637465640400a40138556e65787065637465644b696e64001604b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a014346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000a40c3c70616c6c65745f62616c616e6365731870616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e7400010000a80c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ac103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400014c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374b0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6eb4011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874b801304f7074696f6e3c506167653e000c045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673bc013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465c4011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00120855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b0083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000b40c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000b804184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000bc083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6ec0011c50657262696c6c00011c626c6f636b6564200110626f6f6c0000c0000006b400c4083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000c80c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64cc01104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ecc000003100000000800d0103870616c6c65745f73657373696f6e28686973746f726963616c1870616c6c6574144576656e7404045400010828526f6f7453746f726564040114696e64657810013053657373696f6e496e6465780000040501546865206d65726b6c6520726f6f74206f66207468652076616c696461746f7273206f662074686520736169642073657373696f6e20776572652073746f7265642c526f6f74735072756e656404011475705f746f10013053657373696f6e496e646578000104e0546865206d65726b6c6520726f6f7473206f6620757020746f20746869732073657373696f6e20696e6465782077657265207072756e6564047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d40c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74040454000110284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e244e6577517565756564000108490154686520604e657753657373696f6e60206576656e7420696e207468652063757272656e7420626c6f636b20616c736f20696d706c6965732061206e65772076616c696461746f722073657420746f2062651c7175657565642e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640003047856616c696461746f7220686173206265656e2072652d656e61626c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d80c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f736574dc0134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc000002e000e000000408e43000e40c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c69630000e80c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64ec0130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172798d010138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ec0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c65417373657400010c0856330801206c6f636174696f6ef0014478636d3a3a76333a3a4c6f636174696f6e00012061737365745f69641901014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6e1d01014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69645101014078636d3a3a76343a3a417373657449640004000856350801206c6f636174696f6e5501014478636d3a3a76353a3a4c6f636174696f6e00012061737365745f69648901014078636d3a3a76353a3a4173736574496400050000f0102c73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72f401244a756e6374696f6e730000f4100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400f801204a756e6374696f6e0001000858320800f801204a756e6374696f6e0000f801204a756e6374696f6e0002000858330c00f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0003000858341000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0004000858351400f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0005000858361800f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0006000858371c00f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0007000858382000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e0000f801204a756e6374696f6e00080000f8100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400fc010c7533320000002c4163636f756e744964333208011c6e6574776f726b010101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b010101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b010101444f7074696f6e3c4e6574776f726b49643e00010c6b6579090101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804000d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696411010118426f647949640001107061727415010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400050101244e6574776f726b496400090000fc0000061000010104184f7074696f6e0404540105010108104e6f6e6500000010536f6d650400050100000100000501100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a000009010000031400000008000d0100000618001101100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e6465780400fc010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e000800205472656173757279000900001501100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e74fc010c753332000100204672616374696f6e08010c6e6f6dfc010c75333200011464656e6f6dfc010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6dfc010c75333200011464656e6f6dfc010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6dfc010c75333200011464656e6f6dfc010c753332000400001901100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400f001344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d000100001d01102c73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72210101244a756e6374696f6e7300002101102c73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400250101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400350101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400390101484172633c5b4a756e6374696f6e3b20335d3e00030008583404003d0101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400410101484172633c5b4a756e6374696f6e3b20355d3e0005000858360400450101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400490101484172633c5b4a756e6374696f6e3b20375d3e00070008583804004d0101484172633c5b4a756e6374696f6e3b20385d3e000800002501000003010000002901002901102c73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400fc010c7533320000002c4163636f756e744964333208011c6e6574776f726b2d0101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b2d0101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b2d0101444f7074696f6e3c4e6574776f726b49643e00010c6b6579090101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804000d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696411010118426f647949640001107061727415010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400310101244e6574776f726b4964000900002d0104184f7074696f6e0404540131010108104e6f6e6500000010536f6d650400310100000100003101102c73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d610003001c57657374656e6400040018526f636f636f00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00003501000003020000002901003901000003030000002901003d01000003040000002901004101000003050000002901004501000003060000002901004901000003070000002901004d01000003080000002901005101102c73746167696e675f78636d0876341461737365741c41737365744964000004001d0101204c6f636174696f6e00005501102c73746167696e675f78636d087635206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72590101244a756e6374696f6e7300005901102c73746167696e675f78636d087635246a756e6374696f6e73244a756e6374696f6e73000124104865726500000008583104005d0101484172633c5b4a756e6374696f6e3b20315d3e00010008583204006d0101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400710101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400750101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400790101484172633c5b4a756e6374696f6e3b20355d3e00050008583604007d0101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400810101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400850101484172633c5b4a756e6374696f6e3b20385d3e000800005d01000003010000006101006101102c73746167696e675f78636d087635206a756e6374696f6e204a756e6374696f6e0001282450617261636861696e0400fc010c7533320000002c4163636f756e744964333208011c6e6574776f726b650101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b650101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b650101444f7074696f6e3c4e6574776f726b49643e00010c6b6579090101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e64657804000d010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696411010118426f647949640001107061727415010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400690101244e6574776f726b496400090000650104184f7074696f6e0404540169010108104e6f6e6500000010536f6d650400690100000100006901102c73746167696e675f78636d087635206a756e6374696f6e244e6574776f726b496400012024427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d00010020506f6c6b61646f74000200184b7573616d6100030020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e4361736800090040506f6c6b61646f7442756c6c6574696e000a00006d01000003020000006101007101000003030000006101007501000003040000006101007901000003050000006101007d01000003060000006101008101000003070000006101008501000003080000006101008901102c73746167696e675f78636d0876351461737365741c4173736574496400000400550101204c6f636174696f6e00008d01080c78636d4456657273696f6e65644c6f636174696f6e00010c0856330400f0014476333a3a4d756c74694c6f636174696f6e00030008563404001d01013076343a3a4c6f636174696f6e00040008563504005501013076353a3a4c6f636174696f6e0005000091010c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001142444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f74656408010c77686f000130543a3a4163636f756e744964000110766f7465950101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f76656408010c77686f000130543a3a4163636f756e744964000110766f7465950101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c6173739d010134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657495010c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746599010110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000099010c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f746500000400080000009d010000050400a1010c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9d01013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616ca501014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9d01013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616ca501014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c7909080120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7909080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7909080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7909080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7909080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c7909080120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a50110346672616d655f737570706f72741874726169747324707265696d616765731c426f756e64656408045401a9010448010108010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e65040005080134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c75333200020000a9010840706f6c6b61646f745f72756e74696d652c52756e74696d6543616c6c0001bc1853797374656d0400ad0101ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e000000245363686564756c65720400bd0101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e00010020507265696d6167650400c50101b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e000a0010426162650400cd0101a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d700400f10101b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400f50101b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0004002042616c616e6365730400010201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e0005001c5374616b696e6704000d0201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0007001c53657373696f6e0400490201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0009001c4772616e6470610400650201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000b002054726561737572790400910201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00130040436f6e76696374696f6e566f74696e670400950201d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e001400245265666572656e64610400a10201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0015002457686974656c6973740400c50201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e00170018436c61696d730400c90201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0018001c56657374696e670400e90201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e0019001c5574696c6974790400f10201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e001a001450726f78790400f90201a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001d00204d756c74697369670400050301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001e0020426f756e746965730400110301b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e002200344368696c64426f756e746965730400150301c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e00260068456c656374696f6e50726f76696465724d756c746950686173650400190301fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e00240024566f7465724c69737404000d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e0025003c4e6f6d696e6174696f6e506f6f6c730400110401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e0027002c46617374556e7374616b650400450401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e0028003c5374616b696e674168436c69656e740400490401d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e674168436c69656e742c2052756e74696d653e002a0034436f6e66696775726174696f6e0400550401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400790401c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e04007d0401c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e740400810401c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e00360014506172617304000d0501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400150501c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039001048726d700400190501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c0034506172617344697370757465730400210501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172617344697370757465732c2052756e74696d653e003e00345061726173536c617368696e670400250501c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5061726173536c617368696e672c2052756e74696d653e003f00204f6e44656d616e640400350501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4f6e44656d616e642c2052756e74696d653e004000245265676973747261720400390501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f747304003d0501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e730400410501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400490501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e00490020436f726574696d6504005d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f726574696d652c2052756e74696d653e004a00485374617465547269654d6967726174696f6e0400710501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e0062002458636d50616c6c65740400890501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c58636d50616c6c65742c2052756e74696d653e006300304d65737361676551756575650400f90601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e006400244173736574526174650400050701b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e00650014426565667904000d0701a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e00c8002852634d69677261746f720400450701bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52634d69677261746f722c2052756e74696d653e00ff0000ad010c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73b10101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973b90101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb101000002b50100b50100000408383800b9010000023800bd010c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963c10101ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b8401785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec10104184f7074696f6e04045401840108104e6f6e6500000010536f6d650400840000010000c5010c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573c90101305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec9010000023400cd010c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66d1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66d1010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967e50101504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed101084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201d50108496401d901001001206f6666656e646572d90101084964000110736c6f74dd010110536c6f7400013066697273745f686561646572d50101184865616465720001347365636f6e645f686561646572d50101184865616465720000d501102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572fc01184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c01184469676573740000d9010c4473705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c69630000dd01084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c7536340000e101082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573b90101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e740000e5010c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f7200010408563108010463e9010128287536342c2075363429000134616c6c6f7765645f736c6f7473ed010130416c6c6f776564536c6f747300010000e90100000408303000ed01084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f747300020000f1010c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef5010c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577f90101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577f90101504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9010c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780190011408496404000001244163636f756e74496400000014496e6465780400fd0101304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400090101205b75383b2032305d00040000fd01000006900001020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374f90101504163636f756e7449644c6f6f6b75704f663c543e00011476616c75650d010128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365f90101504163636f756e7449644c6f6f6b75704f663c543e00011064657374f90101504163636f756e7449644c6f6f6b75704f663c543e00011476616c75650d010128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374f90101504163636f756e7449644c6f6f6b75704f663c543e00011476616c75650d010128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374f90101504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686ff90101504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f050201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686ff90101504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f667265650d010128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e0902014c41646a7573746d656e74446972656374696f6e00011464656c74610d010128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c75650d010128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0502000002000009020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e637265617365000000204465637265617365000100000d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400018010626f6e6408011476616c75650d01013042616c616e63654f663c543e0001147061796565b0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616c0d01013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c75650d01013042616c616e63654f663c543e00025451015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e003d01546865207374617368206d6179206265206368696c6c656420696620746865206c656467657220746f74616c20616d6f756e742066616c6c7320746f203020616674657220756e626f6e64696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673bc013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473110201645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f70617965650401147061796565b0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e6577fc010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616cfc010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f721502011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c6573050201445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573190201205665633c7533323e0011189443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2ee454686579202a2a6d7573742a2a20626520736f7274656420696e20617363656e64696e67206f726465722c202a616e642a20756e697175652e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c75650d01013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686f110201645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e641d020158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e641d020158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7421020134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7421020134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6425020144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e29020144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f7265776172647325020144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577b4011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c6572732d0201f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572310201504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616c350201504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e6739020115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cbc52656d6f76657320746865206c6567616379205374616b696e67206c6f636b7320696620746865792065786973742e005101546869732072656d6f76657320746865206c6567616379206c6f636b206f6e20746865207374616b652077697468205b60436f6e6669673a3a4f6c6443757272656e6379605d20616e64206372656174657320615501686f6c64206f6e206974206966206e65656465642e20496620616c6c207374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c6420617329016d75636820617320706f737369626c652e205468652072656d61696e696e67207374616b6520697320666f726365642077697468647261776e2066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e306d616e75616c5f736c6173680c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e646578000138736c6173685f6672616374696f6eb4011c50657262696c6c0021541901546869732066756e6374696f6e20616c6c6f777320676f7665726e616e636520746f206d616e75616c6c7920736c61736820612076616c696461746f7220616e6420697320615c2a2a66616c6c6261636b206d656368616e69736d2a2a2e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e0034232320506172616d657465727309012d206076616c696461746f725f737461736860202d20546865207374617368206163636f756e74206f66207468652076616c696461746f7220746f20736c6173682efc2d206065726160202d205468652065726120696e207768696368207468652076616c696461746f722077617320696e2074686520616374697665207365742e49012d2060736c6173685f6672616374696f6e60202d205468652070657263656e74616765206f6620746865207374616b6520746f20736c6173682c2065787072657373656420617320612050657262696c6c2e002c2323204265686176696f72003d0154686520736c6173682077696c6c206265206170706c696564207573696e6720746865207374616e6461726420736c617368696e67206d656368616e6963732c2072657370656374696e672074686580636f6e666967757265642060536c61736844656665724475726174696f6e602e002c54686973206d65616e733a51012d204966207468652076616c696461746f722077617320616c726561647920736c61736865642062792061206869676865722070657263656e7461676520666f72207468652073616d65206572612c20746869739c2020736c6173682077696c6c2068617665206e6f206164646974696f6e616c206566666563742e51012d204966207468652076616c696461746f72207761732070726576696f75736c7920736c61736865642062792061206c6f7765722070657263656e746167652c206f6e6c792074686520646966666572656e636548202077696c6c206265206170706c6965642e3d012d2054686520736c6173682077696c6c2062652064656665727265642062792060536c61736844656665724475726174696f6e602065726173206265666f7265206265696e6720656e61637465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1102000002f9010015020c3473705f61726974686d65746963287065725f7468696e67731c50657263656e740000040008010875380000190200000210001d02103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200002102103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200002502103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454011502010c104e6f6f700000000c536574040015020104540001001852656d6f7665000200002902103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401b4010c104e6f6f700000000c5365740400b40104540001001852656d6f7665000200002d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400050201185665633c543e0000310204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000350204184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000390204184f7074696f6e040454013d020108104e6f6e6500000010536f6d6504003d0200000100003d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014102045300000400450201185665633c543e00004102083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75650d01011c42616c616e636500010c657261fc0120457261496e6465780000450200000241020049020c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b6579734d02011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d020840706f6c6b61646f745f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061e401d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265d90101c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f72510201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e74550201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279590201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011462656566795d0201c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300005102104c706f6c6b61646f745f7072696d6974697665730876383476616c696461746f725f617070185075626c69630000040004013c737232353531393a3a5075626c696300005502104c706f6c6b61646f745f7072696d6974697665730876383861737369676e6d656e745f617070185075626c69630000040004013c737232353531393a3a5075626c6963000059020c5873705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c696300005d020c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c6963000004006102013465636473613a3a5075626c69630000610200000321000000080065020c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66690201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66690201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6902085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e6d02014845717569766f636174696f6e3c482c204e3e00006d02085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400710201890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d69740400850201910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100007102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401e40456017502045301790200100130726f756e645f6e756d62657230010c7536340001206964656e74697479e40108496400011466697273748102011828562c2053290001187365636f6e648102011828562c20532900007502084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000079020c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e6174757265000004007d020148656432353531393a3a5369676e617475726500007d0200000340000000080081020000040875027902008502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c08496401e40456018902045301790200100130726f756e645f6e756d62657230010c7536340001206964656e74697479e40108496400011466697273748d02011828562c2053290001187365636f6e648d02011828562c20532900008902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e00008d0200000408890279020091020c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e740d01013c42616c616e63654f663c542c20493e00012c62656e6566696369617279f90101504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f6964fc013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e64ec0144426f783c543a3a41737365744b696e643e000118616d6f756e740d010150417373657442616c616e63654f663c542c20493e00012c62656e65666963696172798d010178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6db801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e646578fc0144506f6c6c496e6465784f663c542c20493e000110766f7465950101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c6173739d010134436c6173734f663c542c20493e000108746ff90101504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e99020128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c6173739d010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c6173739d010134436c6173734f663c542c20493e000118746172676574f90101504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c6173739d0201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574f90101504163636f756e7449644c6f6f6b75704f663c543e000114636c6173739d010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e99020c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b65643678000600009d0204184f7074696f6e040454019d010108104e6f6e6500000010536f6d6504009d010000010000a1020c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696ea502015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616ca501014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e74bd020188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b9d01013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368c102013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5020840706f6c6b61646f745f72756e74696d65304f726967696e43616c6c65720001101873797374656d0400a90201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c4f726967696e730400ad02017470616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e0016004050617261636861696e734f726967696e0400b102016470617261636861696e735f6f726967696e3a3a4f726967696e0032002458636d50616c6c65740400b902014870616c6c65745f78636d3a3a4f726967696e00630000a9020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a656400030000ad021440706f6c6b61646f745f72756e74696d6528676f7665726e616e63651c6f726967696e735470616c6c65745f637573746f6d5f6f726967696e73184f726967696e00013c305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d003457697368466f724368616e6765000e0000b102106c706f6c6b61646f745f72756e74696d655f70617261636861696e73186f726967696e1870616c6c6574184f726967696e0001042450617261636861696e0400b502011850617261496400000000b5020c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000b9020c2870616c6c65745f78636d1870616c6c6574184f726967696e0001080c58636d0400550101204c6f636174696f6e00000020526573706f6e73650400550101204c6f636174696f6e00010000bd0210346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d62657200010000c10204184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000c5020c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec902105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265cd02013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686fd502013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65d90201dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e74e10201544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e6174757265cd02013845636473615369676e617475726500012473746174656d656e7438011c5665633c75383e00026ce44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7438011c5665633c75383e00034cf441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0019015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c6964617465417474657374736020617320615c605472616e73616374696f6e457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c64d502013c457468657265756d4164647265737300010c6e6577d502013c457468657265756d416464726573730001386d617962655f707265636c61696d310201504f7074696f6e3c543a3a4163636f756e7449643e000400040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ecd020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e617475726500000400d10201205b75383b2036355d0000d102000003410000000800d5020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400090101205b75383b2032305d0000d90204184f7074696f6e04045401dd020108104e6f6e6500000010536f6d650400dd020000010000dd020000040c18181000e10204184f7074696f6e04045401e5020108104e6f6e6500000010536f6d650400e5020000010000e5020c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c6172000000105361667400010000e9020c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574f90101504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574f90101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65ed0201b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365f90101504163636f756e7449644c6f6f6b75704f663c543e000118746172676574f90101504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65ed0201b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c65080118746172676574f901018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed020c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d6265720000f1020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c73f502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465789d01010c75313600011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c73f502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696ea5020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c73f502017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696ea901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636ba901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696ea5020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef502000002a90100f9020c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616cf90101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065fd0201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465f90101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465f90101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465789d01010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572f90101504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706501030130543a3a50726f787954797065000114696e6465789d01010c753136000118686569676874fc0144426c6f636b4e756d626572466f723c543e0001246578745f696e646578fc010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616cf90101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616cf90101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465f90101504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465f90101504163636f756e7449644c6f6f6b75704f663c543e0001107265616cf90101504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065fd0201504f7074696f6e3c543a3a50726f7879547970653e00011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd0204184f7074696f6e0404540101030108104e6f6e6500000010536f6d6504000103000001000001030c68706f6c6b61646f745f72756e74696d655f636f6e7374616e74731470726f78792450726f7879547970650001200c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e670003002c43616e63656c50726f78790006001c41756374696f6e0007003c4e6f6d696e6174696f6e506f6f6c730008004050617261526567697374726174696f6e0009000005030c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f72696573050201445665633c543a3a4163636f756e7449643e00011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c649d01010c7531360001446f746865725f7369676e61746f72696573050201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74090301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6ca901017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c649d01010c7531360001446f746865725f7369676e61746f72696573050201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74090301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c649d01010c7531360001446f746865725f7369676e61746f72696573050201445665633c543a3a4163636f756e7449643e00012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c649d01010c7531360001446f746865725f7369676e61746f72696573050201445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e090304184f7074696f6e040454010d030108104e6f6e6500000010536f6d6504000d0300000100000d03083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000011030c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c08045400044900012c3870726f706f73655f626f756e747908011476616c75650d01013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f6964fc012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f6964fc012c426f756e7479496e64657800011c63757261746f72f90101504163636f756e7449644c6f6f6b75704f663c543e00010c6665650d01013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f6964fc012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f6964fc012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f6964fc012c426f756e7479496e64657800012c62656e6566696369617279f90101504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f6964fc012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f6964fc012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f6964fc012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e6c617070726f76655f626f756e74795f776974685f63757261746f720c0124626f756e74795f6964fc012c426f756e7479496e64657800011c63757261746f72f90101504163636f756e7449644c6f6f6b75704f663c543e00010c6665650d01013c42616c616e63654f663c542c20493e00092cd4417070726f766520626f756e74727920616e642070726f706f736520612063757261746f722073696d756c74616e656f75736c792e5501546869732063616c6c20697320612073686f727463757420746f2063616c6c696e672060617070726f76655f626f756e74796020616e64206070726f706f73655f63757261746f72602073657061726174656c792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e00902d2060626f756e74795f6964603a20426f756e747920494420746f20617070726f76652ef82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e0034232320436f6d706c65786974791c2d204f2831292e30706f6b655f6465706f736974040124626f756e74795f6964fc012c426f756e7479496e646578000a3ce4506f6b6520746865206465706f73697420726573657276656420666f72206372656174696e67206120626f756e74792070726f706f73616c2e00f4546869732063616e2062652075736564206279206163636f756e747320746f2075706461746520746865697220726573657276656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d2060626f756e74795f6964603a2054686520626f756e747920696420666f7220776869636820746f2061646a75737420746865206465706f7369742e003901496620746865206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468654c70726f706f7365722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620746865206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620746865206465706f73697420697320757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e15030c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800011476616c75650d01013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964fc012c426f756e7479496e64657800011c63757261746f72f90101504163636f756e7449644c6f6f6b75704f663c543e00010c6665650d01013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964fc012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964fc012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964fc012c426f756e7479496e64657800012c62656e6566696369617279f90101504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964fc012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f6964fc012c426f756e7479496e64657800013c6368696c645f626f756e74795f6964fc012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e19030c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6e1d0301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e657373f1030158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265f50301544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f727473f9030158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6e1d0301b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d03089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e040453012103000c0120736f6c7574696f6e210301045300011473636f7265ed030134456c656374696f6e53636f7265000114726f756e6410010c753332000021030840706f6c6b61646f745f72756e74696d65544e706f73436f6d70616374536f6c7574696f6e31360000400118766f74657331250300000118766f74657332310300000118766f74657333450300000118766f74657334510300000118766f746573355d0300000118766f74657336690300000118766f74657337750300000118766f74657338810300000118766f746573398d030000011c766f746573313099030000011c766f7465733131a5030000011c766f7465733132b1030000011c766f7465733133bd030000011c766f7465733134c9030000011c766f7465733135d5030000011c766f7465733136e1030000002503000002290300290300000408fc2d03002d030000069d0100310300000235030035030000040cfc39032d03003903000004082d033d03003d0300000641030041030c3473705f61726974686d65746963287065725f7468696e677318506572553136000004009d01010c7531360000450300000249030049030000040cfc4d032d03004d0300000302000000390300510300000255030055030000040cfc59032d03005903000003030000003903005d0300000261030061030000040cfc65032d030065030000030400000039030069030000026d03006d030000040cfc71032d0300710300000305000000390300750300000279030079030000040cfc7d032d03007d0300000306000000390300810300000285030085030000040cfc89032d03008903000003070000003903008d0300000291030091030000040cfc95032d030095030000030800000039030099030000029d03009d030000040cfca1032d0300a10300000309000000390300a503000002a90300a9030000040cfcad032d0300ad030000030a000000390300b103000002b50300b5030000040cfcb9032d0300b9030000030b000000390300bd03000002c10300c1030000040cfcc5032d0300c5030000030c000000390300c903000002cd0300cd030000040cfcd1032d0300d1030000030d000000390300d503000002d90300d9030000040cfcdd032d0300dd030000030e000000390300e103000002e50300e5030000040cfce9032d0300e9030000030f000000390300ed03084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000f103089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f74657273fc010c75333200011c74617267657473fc010c7533320000f50304184f7074696f6e04045401ed030108104e6f6e6500000010536f6d650400ed030000010000f903000002fd0300fd0300000408000104000104084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273050401845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e000005040000020904000904000004080018000d040c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564f90101504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572f90101504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572f90101504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572f90101504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11040c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e740d01013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400004045015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e642069732064656c65676174656420286f72207472616e73666572726564206261736564206f6e4d015b60616461707465723a3a5374616b65537472617465677954797065605d292066726f6d20746865206d656d62657220746f2074686520706f6f6c206163636f756e7420616e6420696d6d6564696174656c7968696e637265617365732074686520706f6f6c277320626f6e642e002901546865206d6574686f64206f66207472616e7366657272696e672074686520616d6f756e7420746f2074686520706f6f6c206163636f756e742069732064657465726d696e656420627901015b60616461707465723a3a5374616b65537472617465677954797065605d2e2049662074686520706f6f6c20697320636f6e6669677572656420746f2075736531015b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2c207468652066756e64732072656d61696e20696e20746865206163636f756e74206f66310174686520606f726967696e602c207768696c652074686520706f6f6c206761696e732074686520726967687420746f207573652074686573652066756e647320666f72207374616b696e672e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f657874726104011465787472611504015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e74f90101504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e74730d01013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74f90101504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e740d01013042616c616e63654f663c543e000110726f6f74f90101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72f90101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572f90101504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e740d01013042616c616e63654f663c543e000110726f6f74f90101504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72f90101504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572f90101504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f7273050201445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e001823204e6f7465005901496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c2074686520706f6f6c2773206465706f7369746f72206e6565647320746f0d0168617665206174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c4964000114737461746519040124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e641d040158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e641d040158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c7321040134436f6e6669674f703c7533323e00012c6d61785f6d656d6265727321040134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6c21040134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e25040144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f7429040158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f7229040158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e63657229040158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d44704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a55012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f746865727769736520706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ab42a205468652063616c6c65722069732074686520706f6f6c2773206e6f6d696e61746f72206f7220726f6f742e40626f6e645f65787472615f6f746865720801186d656d626572f90101504163636f756e7449644c6f6f6b75704f663c543e00011465787472611504015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6e2d04013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6e3104017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6eb4011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174653904019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400144064436c61696d2070656e64696e6720636f6d6d697373696f6e2e003d015468652060726f6f746020726f6c65206f662074686520706f6f6c206973205f616c776179735f20616c6c6f77656420746f20636c61696d2074686520706f6f6c277320636f6d6d697373696f6e2e00550149662074686520706f6f6c20686173207365742060436f6d6d697373696f6e436c61696d5065726d697373696f6e3a3a5065726d697373696f6e6c657373602c207468656e20616e79206163636f756e742063616ed874726967676572207468652070726f63657373206f6620636c61696d696e672074686520706f6f6c277320636f6d6d697373696f6e2e00410149662074686520706f6f6c2068617320736574206974732060436f6d6d697373696f6e436c61696d5065726d697373696f6e6020746f20604163636f756e742861636329602c207468656e206f6e6c79206163636f756e7473302a2060616363602c20616e64642a2074686520706f6f6c277320726f6f74206163636f756e7400b86d61792063616c6c20746869732065787472696e736963206f6e20626568616c66206f662074686520706f6f6c2e002d0150656e64696e6720636f6d6d697373696f6e73206172652070616964206f757420616e6420616464656420746f2074686520746f74616c20636c61696d656420636f6d6d697373696f6e2eb854686520746f74616c2070656e64696e6720636f6d6d697373696f6e20697320726573657420746f207a65726f2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e3d0401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e74f90101504163636f756e7449644c6f6f6b75704f663c543e001724884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005d015468652070656e64696e6720736c61736820616d6f756e74206f6620746865206d656d626572206d75737420626520657175616c206f72206d6f7265207468616e20604578697374656e7469616c4465706f736974602e5101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e2049662074686520657865637574696f6e49016973207375636365737366756c2c2066656520697320726566756e64656420616e642063616c6c6572206d6179206265207265776172646564207769746820612070617274206f662074686520736c6173680d016261736564206f6e20746865205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d20636f6e66696775726174696f6e2e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e74f90101504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c52657761726473000100001904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e67000200001d04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200002104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200002504085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401b4010c104e6f6f700000000c5365740400b40104540001001852656d6f7665000200002904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f7665000200002d04085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000310404184f7074696f6e0404540135040108104e6f6e6500000010536f6d65040035040000010000350400000408b400003904085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365b4011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d62657200003d0404184f7074696f6e0404540141040108104e6f6e6500000010536f6d650400410400000100004104085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e7449640001000045040c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66590163616c6c696e67205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c7920626520666f6c6c6f776564b0627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800023494436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49040c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c65741043616c6c04045400010c3476616c696461746f725f7365740401187265706f72744d0401ac72635f636c69656e743a3a56616c696461746f725365745265706f72743c543a3a4163636f756e7449643e000000207365745f6d6f64650401106d6f6465510401344f7065726174696e674d6f64650001040101416c6c6f777320676f7665726e616e636520746f20666f7263652073657420746865206f7065726174696e67206d6f6465206f66207468652070616c6c65742e58666f7263655f6f6e5f6d6967726174696f6e5f656e6400020425016d616e75616c6c7920646f207768617420746869732070616c6c657420776173206d65616e7420746f20646f2061742074686520656e64206f6620746865206d6967726174696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d04087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e744856616c696461746f725365745265706f727404244163636f756e7449640100001001446e65775f76616c696461746f725f736574050201385665633c4163636f756e7449643e000108696410010c75333200012c7072756e655f75705f746fb801504f7074696f6e3c53657373696f6e496e6465783e0001206c6566746f766572200110626f6f6c00005104087870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e74344f7065726174696e674d6f646500010c1c5061737369766500000020427566666572656400010018416374697665000200005504106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c65741043616c6c0404540001b87c7365745f76616c69646174696f6e5f757067726164655f636f6f6c646f776e04010c6e6577100144426c6f636b4e756d626572466f723c543e00000490536574207468652076616c69646174696f6e207570677261646520636f6f6c646f776e2e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e00010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e487365745f636f726574696d655f636f72657304010c6e657710010c753332000610ac53657420746865206e756d626572206f6620636f726574696d6520657865637574696f6e20636f7265732e0051014e4f54453a2074686174207468697320636f6e66696775726174696f6e206973206d616e616765642062792074686520636f726574696d6520636861696e2e204f6e6c79206d616e75616c6c79206368616e6765b0746869732c20696620796f75207265616c6c79206b6e6f77207768617420796f752061726520646f696e6721707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100144426c6f636b4e756d626572466f723c543e000804d0536574207468652070617261636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f70617261735f617661696c6162696c6974795f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000904985365742074686520617661696c6162696c69747920706572696f6420666f722070617261732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e6577b8012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e6577b8012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2070617261636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c7533320018084d015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174146f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612070617261636861696e20697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e487365745f7076665f766f74696e675f74746c04010c6e657710013053657373696f6e496e646578002a04510153657420746865206e756d626572206f662073657373696f6e206368616e676573206166746572207768696368206120505646207072652d636865636b696e6720766f74696e672069732072656a65637465642e907365745f6d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e002b1055015365747320746865206d696e696d756d2064656c6179206265747765656e20616e6e6f756e63696e6720746865207570677261646520626c6f636b20666f7220612070617261636861696e20756e74696c2074686554757067726164652074616b696e6720706c6163652e00390153656520746865206669656c6420646f63756d656e746174696f6e20666f7220696e666f726d6174696f6e20616e6420636f6e73747261696e747320666f7220746865206e65772076616c75652e707365745f6279706173735f636f6e73697374656e63795f636865636b04010c6e6577200110626f6f6c002c084d0153657474696e67207468697320746f20747275652077696c6c2064697361626c6520636f6e73697374656e637920636865636b7320666f722074686520636f6e66696775726174696f6e20736574746572732e4455736520776974682063617574696f6e2e607365745f6173796e635f6261636b696e675f706172616d7304010c6e6577590401484173796e634261636b696e67506172616d73002d04a053657420746865206173796e6368726f6e6f7573206261636b696e6720706172616d65746572732e4c7365745f6578656375746f725f706172616d7304010c6e65775d0401384578656375746f72506172616d73002e047053657420505646206578656375746f7220706172616d65746572732e587365745f6f6e5f64656d616e645f626173655f66656504010c6e657718011c42616c616e6365002f04a453657420746865206f6e2064656d616e6420287061726174687265616473292062617365206665652e747365745f6f6e5f64656d616e645f6665655f766172696162696c69747904010c6e6577b4011c50657262696c6c003004c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e707365745f6f6e5f64656d616e645f71756575655f6d61785f73697a6504010c6e657710010c753332003104bc53657420746865206f6e2064656d616e642028706172617468726561647329207175657565206d61782073697a652e987365745f6f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e04010c6e6577b4011c50657262696c6c003204c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e647365745f6d696e696d756d5f6261636b696e675f766f74657304010c6e657710010c753332003404a053657420746865206d696e696d756d206261636b696e6720766f746573207468726573686f6c642e407365745f6e6f64655f66656174757265080114696e646578080108753800011476616c7565200110626f6f6c003504645365742f556e7365742061206e6f646520666561747572652e687365745f617070726f76616c5f766f74696e675f706172616d7304010c6e657771040150417070726f76616c566f74696e67506172616d730036046c53657420617070726f76616c2d766f74696e672d706172616d732e507365745f7363686564756c65725f706172616d7304010c6e6577750401885363686564756c6572506172616d733c426c6f636b4e756d626572466f723c543e3e00370454536574207363686564756c65722d706172616d732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e5904104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200005d04104c706f6c6b61646f745f7072696d6974697665730876383c6578656375746f725f706172616d73384578656375746f72506172616d7300000400610401485665633c4578656375746f72506172616d3e000061040000026504006504104c706f6c6b61646f745f7072696d6974697665730876383c6578656375746f725f706172616d73344578656375746f72506172616d00011c384d61784d656d6f72795061676573040010010c7533320001003c537461636b4c6f676963616c4d6178040010010c75333200020038537461636b4e61746976654d6178040010010c75333200030050507265636865636b696e674d61784d656d6f7279040030010c753634000400385076665072657054696d656f757408006904012c507666507265704b696e64000030010c753634000500385076664578656354696d656f757408006d04012c507666457865634b696e64000030010c753634000600445761736d45787442756c6b4d656d6f72790007000069040c4c706f6c6b61646f745f7072696d6974697665730876382c507666507265704b696e6400010820507265636865636b0000001c50726570617265000100006d040c4c706f6c6b61646f745f7072696d6974697665730876382c507666457865634b696e640001081c4261636b696e6700000020417070726f76616c0001000071040c4c706f6c6b61646f745f7072696d69746976657308763850417070726f76616c566f74696e67506172616d73000004016c6d61785f617070726f76616c5f636f616c657363655f636f756e7410010c753332000075040c4c706f6c6b61646f745f7072696d6974697665730876383c5363686564756c6572506172616d73042c426c6f636b4e756d6265720110002c016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d62657200016470617261735f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d62657200015c6d61785f76616c696461746f72735f7065725f636f7265b8012c4f7074696f6e3c7533323e0001246c6f6f6b616865616410010c7533320001246e756d5f636f72657310010c7533320001646d61785f617661696c6162696c6974795f74696d656f75747310010c7533320001606f6e5f64656d616e645f71756575655f6d61785f73697a6510010c7533320001886f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6eb4011c50657262696c6c0001646f6e5f64656d616e645f6665655f766172696162696c697479b4011c50657262696c6c0001486f6e5f64656d616e645f626173655f66656518011c42616c616e636500010c74746c10012c426c6f636b4e756d62657200007904106c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265641870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d04106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c65741043616c6c040454000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8104106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c65741043616c6c04045400010414656e746572040110646174618504019050617261636861696e73496e686572656e74446174613c486561646572466f723c543e3e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e85040c4c706f6c6b61646f745f7072696d697469766573207673746167696e6730496e686572656e7444617461040c48445201d501001001246269746669656c647389040190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e64696461746573a504017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573e90401604d756c74694469737075746553746174656d656e74536574000134706172656e745f686561646572d501010c484452000089040000028d04008d04104c706f6c6b61646f745f7072696d697469766573087638187369676e65643c556e636865636b65645369676e6564081c5061796c6f61640191042c5265616c5061796c6f6164019104000c011c7061796c6f61649104011c5061796c6f616400013c76616c696461746f725f696e6465789d04013856616c696461746f72496e6465780001247369676e6174757265a104014856616c696461746f725369676e6174757265000091040c4c706f6c6b61646f745f7072696d69746976657308763850417661696c6162696c6974794269746669656c64000004009504017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e000095040000070899040099040c18626974766563146f72646572104c736230000000009d040c4c706f6c6b61646f745f7072696d6974697665730876383856616c696461746f72496e6465780000040010010c7533320000a104104c706f6c6b61646f745f7072696d6974697665730876383476616c696461746f725f617070245369676e6174757265000004007d020148737232353531393a3a5369676e61747572650000a504000002a90400a9040c4c706f6c6b61646f745f7072696d697469766573207673746167696e673c4261636b656443616e6469646174650404480134000c012463616e646964617465ad040178436f6d6d697474656443616e6469646174655265636569707456323c483e00013876616c69646974795f766f746573e10401605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e64696365739504017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e0000ad040c4c706f6c6b61646f745f7072696d697469766573207673746167696e676c436f6d6d697474656443616e64696461746552656365697074563204044801340008012864657363726970746f72b104016043616e64696461746544657363726970746f7256323c483e00012c636f6d6d69746d656e7473c104015043616e646964617465436f6d6d69746d656e74730000b1040c4c706f6c6b61646f745f7072696d697469766573207673746167696e675443616e64696461746544657363726970746f72563204044801340030011c706172615f6964b502011850617261496400013072656c61795f706172656e743401044800011c76657273696f6eb504013c496e7465726e616c56657273696f6e000128636f72655f696e6465789d01010c75313600013473657373696f6e5f696e64657810013053657373696f6e496e646578000124726573657276656431b90401205b75383b2032355d0001787065727369737465645f76616c69646174696f6e5f646174615f6861736834011048617368000120706f765f6861736834011048617368000130657261737572655f726f6f74340110486173680001247265736572766564327d0201205b75383b2036345d000124706172615f686561643401104861736800015076616c69646174696f6e5f636f64655f68617368bd04014856616c69646174696f6e436f6465486173680000b5040c4c706f6c6b61646f745f7072696d697469766573207673746167696e673c496e7465726e616c56657273696f6e0000040008010875380000b904000003190000000800bd040c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665734856616c69646174696f6e436f64654861736800000400340110486173680000c1040c4c706f6c6b61646f745f7072696d6974697665730876385043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573c50401385570776172644d6573736167657300014c686f72697a6f6e74616c5f6d65737361676573c9040148486f72697a6f6e74616c4d6573736167657300014c6e65775f76616c69646174696f6e5f636f6465d50401584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f64617461dd040120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e0000c5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540138045300000400b90101185665633c543e0000c9040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd04045300000400d10401185665633c543e0000cd040860706f6c6b61646f745f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401b50200080124726563697069656e74b502010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000d104000002cd0400d50404184f7074696f6e04045401d9040108104e6f6e6500000010536f6d650400d9040000010000d9040c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040038011c5665633c75383e0000dd040c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000e104000002e50400e5040c4c706f6c6b61646f745f7072696d6974697665730876384c56616c69646974794174746573746174696f6e00010820496d706c696369740400a104014856616c696461746f725369676e6174757265000100204578706c696369740400a104014856616c696461746f725369676e617475726500020000e904000002ed0400ed040c4c706f6c6b61646f745f7072696d6974697665730876384c4469737075746553746174656d656e7453657400000c013863616e6469646174655f68617368f104013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e7473f50401ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e0000f1040860706f6c6b61646f745f636f72655f7072696d6974697665733443616e6469646174654861736800000400340110486173680000f504000002f90400f9040000040cfd049d04a10400fd040c4c706f6c6b61646f745f7072696d697469766573087638404469737075746553746174656d656e740001081456616c696404000105016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404000905016c496e76616c69644469737075746553746174656d656e744b696e640001000001050c4c706f6c6b61646f745f7072696d6974697665730876386456616c69644469737075746553746174656d656e744b696e64000114204578706c696369740000003c4261636b696e675365636f6e646564040034011048617368000100304261636b696e6756616c696404003401104861736800020040417070726f76616c436865636b696e6700030088417070726f76616c436865636b696e674d756c7469706c6543616e646964617465730400050501485665633c43616e646964617465486173683e000400000505000002f1040009050c4c706f6c6b61646f745f7072696d6974697665730876386c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000000d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c65741043616c6c04045400013058666f7263655f7365745f63757272656e745f636f646508011070617261b50201185061726149640001206e65775f636f6465d904013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652070617261636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261b50201185061726149640001206e65775f68656164dd04012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261b50201185061726149640001206e65775f636f6465d904013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100144426c6f636b4e756d626572466f723c543e0002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261b50201185061726149640001206e65775f68656164dd04012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e04011070617261b502011850617261496400040cf850757420612070617261636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e6c6164645f747275737465645f76616c69646174696f6e5f636f646504013c76616c69646174696f6e5f636f6465d904013856616c69646174696f6e436f6465000538a041646473207468652076616c69646174696f6e20636f646520746f207468652073746f726167652e00590154686520636f64652077696c6c206e6f7420626520616464656420696620697420697320616c72656164792070726573656e742e204164646974696f6e616c6c792c20696620505646207072652d636865636b696e67e069732072756e6e696e6720666f72207468617420636f64652c2069742077696c6c20626520696e7374616e746c792061636365707465642e0051014f74686572776973652c2074686520636f64652077696c6c20626520616464656420696e746f207468652073746f726167652e204e6f746520746861742074686520636f64652077696c6c2062652061646465646101696e746f2073746f726167652077697468207265666572656e636520636f756e7420302e205468697320697320746f206163636f756e74207468652066616374207468617420746865726520617265206e6f2075736572734d01666f72207468697320636f6465207965742e205468652063616c6c65722077696c6c206861766520746f206d616b6520737572652074686174207468697320636f6465206576656e7475616c6c79206765747349017573656420627920736f6d652070617261636861696e206f722072656d6f7665642066726f6d207468652073746f7261676520746f2061766f69642073746f72616765206c65616b732e20466f722074686549016c61747465722070726566657220746f20757365207468652060706f6b655f756e757365645f76616c69646174696f6e5f636f64656020646973706174636861626c6520746f207261772073746f72616765346d616e6970756c6174696f6e2e005101546869732066756e6374696f6e206973206d61696e6c79206d65616e7420746f206265207573656420666f7220757067726164696e672070617261636861696e73207468617420646f206e6f7420666f6c6c6f77090174686520676f2d6168656164207369676e616c207768696c652074686520505646207072652d636865636b696e67206665617475726520697320656e61626c65642e6c706f6b655f756e757365645f76616c69646174696f6e5f636f646504015076616c69646174696f6e5f636f64655f68617368bd04014856616c69646174696f6e436f646548617368000614250152656d6f7665207468652076616c69646174696f6e20636f64652066726f6d207468652073746f726167652069666620746865207265666572656e636520636f756e7420697320302e0059015468697320697320626574746572207468616e2072656d6f76696e67207468652073746f72616765206469726563746c792c20626563617573652069742077696c6c206e6f742072656d6f76652074686520636f6465410174686174207761732073756464656e6c7920676f74207573656420627920736f6d652070617261636861696e207768696c65207468697320646973706174636861626c65207761732070656e64696e67306469737061746368696e672e6c696e636c7564655f7076665f636865636b5f73746174656d656e7408011073746d7411050144507666436865636b53746174656d656e740001247369676e6174757265a104014856616c696461746f725369676e61747572650007085501496e636c7564657320612073746174656d656e7420666f72206120505646207072652d636865636b696e6720766f74652e20506f74656e7469616c6c792c2066696e616c697a65732074686520766f746520616e644101656e616374732074686520726573756c747320696620746861742077617320746865206c61737420766f7465206265666f726520616368696576696e67207468652073757065726d616a6f726974792e74666f7263655f7365745f6d6f73745f726563656e745f636f6e7465787408011070617261b502011850617261496400011c636f6e74657874100144426c6f636b4e756d626572466f723c543e0008040101536574207468652073746f7261676520666f72207468652063757272656e742070617261636861696e2068656164206461746120696d6d6564696174656c792e5c72656d6f76655f757067726164655f636f6f6c646f776e04011070617261b5020118506172614964000910ac52656d6f766520616e207570677261646520636f6f6c646f776e20666f7220612070617261636861696e2e00510154686520636f737420666f722072656d6f76696e672074686520636f6f6c646f776e206561726c69657220646570656e6473206f6e207468652074696d65206c65667420666f722074686520636f6f6c646f776e41016d756c7469706c696564206279205b60436f6e6669673a3a436f6f6c646f776e52656d6f76616c4d756c7469706c696572605d2e20546865207061696420746f6b656e7320617265206275726e65642e94617574686f72697a655f666f7263655f7365745f63757272656e745f636f64655f686173680c011070617261b50201185061726149640001346e65775f636f64655f68617368bd04014856616c69646174696f6e436f64654861736800013076616c69645f706572696f64100144426c6f636b4e756d626572466f723c543e000a2c1d0153657473207468652073746f7261676520666f722074686520617574686f72697a65642063757272656e7420636f64652068617368206f66207468652070617261636861696e2e61014966206e6f74206170706c6965642c2069742077696c6c2062652072656d6f76656420617420746865206053797374656d3a3a626c6f636b5f6e756d6265722829202b2076616c69645f706572696f646020626c6f636b2e003d01546869732063616e2062652075736566756c2c207768656e2074726967676572696e67206050617261733a3a666f7263655f7365745f63757272656e745f636f646528706172612c20636f64652960250166726f6d206120646966666572656e7420636861696e207468616e20746865206f6e652077686572652074686520605061726173602070616c6c6574206973206465706c6f7965642e005501546865206d61696e20707572706f736520697320746f2061766f6964207472616e7366657272696e672074686520656e746972652060636f646560205761736d20626c6f62206265747765656e20636861696e732e3101496e73746561642c20776520617574686f72697a652060636f64655f686173686020776974682060726f6f74602c2077686963682063616e206c61746572206265206170706c6965642062791d016050617261733a3a6170706c795f617574686f72697a65645f666f7263655f7365745f63757272656e745f636f646528706172612c20636f6465296020627920616e796f6e652e00dc417574686f72697a6174696f6e73206172652073746f72656420696e20616e202a2a6f76657277726974696e67206d616e6e65722a2a2e9c6170706c795f617574686f72697a65645f666f7263655f7365745f63757272656e745f636f646508011070617261b50201185061726149640001206e65775f636f6465d904013856616c69646174696f6e436f6465000b08f84170706c6965732074686520616c726561647920617574686f72697a65642063757272656e7420636f646520666f72207468652070617261636861696e2cf874726967676572696e67207468652073616d652066756e6374696f6e616c6974792061732060666f7263655f7365745f63757272656e745f636f6465602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e11050c4c706f6c6b61646f745f7072696d69746976657308763844507666436865636b53746174656d656e740000100118616363657074200110626f6f6c00011c7375626a656374bd04014856616c69646174696f6e436f64654861736800013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c76616c696461746f725f696e6465789d04013856616c696461746f72496e64657800001505106c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a65721870616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2070617261636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1905106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c65741043616c6c04045400012c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e74b502011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612070617261636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e646572b502011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69641d05013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d700c011070617261b502011850617261496400012c6e756d5f696e626f756e6410010c7533320001306e756d5f6f7574626f756e6410010c75333200031c5d01546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d73207468617420612070617261206d617920686176652e49014e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f777320796f7520746f20747269676765722074686520636c65616e757094696d6d6564696174656c7920666f7220612073706563696669632070617261636861696e2e0051014e756d626572206f6620696e626f756e6420616e64206f7574626f756e64206368616e6e656c7320666f7220607061726160206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e5c666f7263655f70726f636573735f68726d705f6f70656e0401206368616e6e656c7310010c753332000420a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0055014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f66206f70656e696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e60666f7263655f70726f636573735f68726d705f636c6f73650401206368616e6e656c7310010c753332000520a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0059014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f6620636c6f73696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6068726d705f63616e63656c5f6f70656e5f726571756573740801286368616e6e656c5f69641d05013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c7533320006205d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420627920656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e005d015468652063616e63656c6c6174696f6e2068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e005901546f74616c206e756d626572206f66206f70656e2072657175657374732028692e652e206048726d704f70656e4368616e6e656c52657175657374734c6973746029206d7573742062652070726f7669646564206173347769746e65737320646174612e5c666f7263655f6f70656e5f68726d705f6368616e6e656c10011873656e646572b5020118506172614964000124726563697069656e74b50201185061726149640001306d61785f636170616369747910010c7533320001406d61785f6d6573736167655f73697a6510010c75333200072061014f70656e2061206368616e6e656c2066726f6d2061206073656e6465726020746f20612060726563697069656e74602060506172614964602e20416c74686f756768206f70656e656420627920676f7665726e616e63652c410174686520606d61785f63617061636974796020616e6420606d61785f6d6573736167655f73697a656020617265207374696c6c207375626a65637420746f207468652052656c617920436861696e277348636f6e66696775726564206c696d6974732e004d01457870656374656420757365206973207768656e206f6e652028616e64206f6e6c79206f6e6529206f66207468652060506172614964607320696e766f6c76656420696e20746865206368616e6e656c206973c0676f7665726e6564206279207468652073797374656d2c20652e672e20612073797374656d2070617261636861696e2e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6065737461626c6973685f73797374656d5f6368616e6e656c08011873656e646572b5020118506172614964000124726563697069656e74b5020118506172614964000830510145737461626c69736820616e2048524d50206368616e6e656c206265747765656e2074776f2073797374656d20636861696e732e20496620746865206368616e6e656c20646f6573206e6f7420616c7265616479510165786973742c20746865207472616e73616374696f6e20666565732077696c6c20626520726566756e64656420746f207468652063616c6c65722e205468652073797374656d20646f6573206e6f742074616b6559016465706f7369747320666f72206368616e6e656c73206265747765656e2073797374656d20636861696e732c20616e64206175746f6d61746963616c6c79207365747320746865206d657373616765206e756d6265721901616e642073697a65206c696d69747320746f20746865206d6178696d756d20616c6c6f77656420627920746865206e6574776f726b277320636f6e66696775726174696f6e2e0028417267756d656e74733a00942d206073656e646572603a20412073797374656d20636861696e2c2060506172614964602ea02d2060726563697069656e74603a20412073797374656d20636861696e2c2060506172614964602e005501416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2c20627574205f626f74685f20696e70757473204d5553542062652073797374656d20636861696e732e204966c0746865206368616e6e656c20646f6573206e6f74206578697374207965742c207468657265206973206e6f206665652e54706f6b655f6368616e6e656c5f6465706f7369747308011873656e646572b5020118506172614964000124726563697069656e74b5020118506172614964000924510155706461746520746865206465706f736974732068656c6420666f7220616e2048524d50206368616e6e656c20746f20746865206c61746573742060436f6e66696775726174696f6e602e204368616e6e656c73b0776974682073797374656d20636861696e7320646f206e6f7420726571756972652061206465706f7369742e0028417267756d656e74733a00782d206073656e646572603a204120636861696e2c2060506172614964602e842d2060726563697069656e74603a204120636861696e2c2060506172614964602e00a4416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2e7465737461626c6973685f6368616e6e656c5f776974685f73797374656d04014c7461726765745f73797374656d5f636861696eb5020118506172614964000a1c390145737461626c6973682061206269646972656374696f6e616c2048524d50206368616e6e656c206265747765656e20612070617261636861696e20616e6420612073797374656d20636861696e2e0028417267756d656e74733a00c82d20607461726765745f73797374656d5f636861696e603a20412073797374656d20636861696e2c2060506172614964602e00b0546865206f726967696e206e6565647320746f206265207468652070617261636861696e206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d050c74706f6c6b61646f745f70617261636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572b50201084964000124726563697069656e74b5020108496400002105106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c65741043616c6c04045400010438666f7263655f756e667265657a65000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2505146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c65741043616c6c040454000104707265706f72745f646973707574655f6c6f73745f756e7369676e6564080134646973707574655f70726f6f662905014c426f783c4469737075746550726f6f6656323e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f66000000040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29050c4c706f6c6b61646f745f7072696d697469766573207673746167696e67304469737075746550726f6f66000010012474696d655f736c6f742d050140446973707574657354696d65536c6f740001106b696e6431050148446973707574654f6666656e63654b696e6400013c76616c696461746f725f696e6465789d04013856616c696461746f72496e64657800013076616c696461746f725f69645102012c56616c696461746f72496400002d05104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e6740446973707574657354696d65536c6f74000008013473657373696f6e5f696e64657810013053657373696f6e496e64657800013863616e6469646174655f68617368f104013443616e64696461746548617368000031050c4c706f6c6b61646f745f7072696d697469766573207673746167696e6748446973707574654f6666656e63654b696e6400010c40466f72496e76616c69644261636b656400000030416761696e737456616c696400010048466f72496e76616c6964417070726f766564000200003505106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641870616c6c65741043616c6c04045400010c5c706c6163655f6f726465725f616c6c6f775f64656174680801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f6964b502011850617261496400003c9443726561746520612073696e676c65206f6e2064656d616e6420636f7265206f726465722e490157696c6c20757365207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b20616e642077696c6c207265617020746865206163636f756e74206966206e65656465642e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646058706c6163655f6f726465725f6b6565705f616c6976650801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f6964b502011850617261496400013c610153616d6520617320746865205b60706c6163655f6f726465725f616c6c6f775f6465617468605d2853656c663a3a706c6163655f6f726465725f616c6c6f775f6465617468292063616c6c202c2062757420776974682061dc636865636b207468617420706c6163696e6720746865206f726465722077696c6c206e6f74207265617020746865206163636f756e742e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646060706c6163655f6f726465725f776974685f637265646974730801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f6964b5020118506172614964000244c843726561746520612073696e676c65206f6e2064656d616e6420636f7265206f72646572207769746820637265646974732e590157696c6c2063686172676520746865206f776e65722773206f6e2d64656d616e6420637265646974206163636f756e74207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b2e002c506172616d65746572733a45012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c206f6e2d64656d616e6420637265646974732077696c6c2062652077697468647261776e2066726f6d20746869732820206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d206e756d626572206f66206372656469747320746f207370656e642066726f6d20746865206f726967696e20746f20706c61636520616e2020206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733a5c2d2060496e73756666696369656e744372656469747360342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c6163656460040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c65741043616c6c0404540001242072656769737465720c01086964b502011850617261496400013067656e657369735f68656164dd040120486561644461746100013c76616c69646174696f6e5f636f6465d904013856616c69646174696f6e436f6465000050f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652070617261636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652070617261636861696e2f7468726561642e00402323204465706f736974732f466565730901546865206163636f756e74207769746820746865206f726967696e6174696e67207369676e6174757265206d75737420726573657276652061206465706f7369742e004d01546865206465706f73697420697320726571756972656420746f20636f7665722074686520636f737473206173736f63696174656420776974682073746f72696e67207468652067656e657369732068656164746461746120616e64207468652076616c69646174696f6e20636f64652e310154686973206163636f756e747320666f722074686520706f74656e7469616c20746f2073746f72652076616c69646174696f6e20636f6465206f6620612073697a6520757020746f20746865dc606d61785f636f64655f73697a65602c20617320646566696e656420696e2074686520636f6e66696775726174696f6e2070616c6c6574001d01416e797468696e6720616c72656164792072657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0001086964b502011850617261496400013067656e657369735f68656164dd040120486561644461746100013c76616c69646174696f6e5f636f6465d904013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2050617261636861696e732e28646572656769737465720401086964b5020118506172614964000210050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e0051015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d75737420626520616e506f6e2d64656d616e642070617261636861696e2e10737761700801086964b50201185061726149640001146f74686572b50201185061726149640003304101537761702061206c6561736520686f6c64696e672070617261636861696e207769746820616e6f746865722070617261636861696e2c20656974686572206f6e2d64656d616e64206f72206c6561736520686f6c64696e672e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202270617261636861696e222e20486f77657665722c20746865697235017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520616e206f6e2d64656d616e642070617261636861696e206f72206c6561736520686f6c64696e67150170617261636861696e292c2061756374696f6e20696e666f726d6174696f6e20616e64207468652061756374696f6e206465706f736974206172652073776974636865642e2c72656d6f76655f6c6f636b04011070617261b50201185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e00dc43616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e206f72207468652070617261636861696e2e1c72657365727665000544945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e6101546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f590163726561746520616e206f6e2d64656d616e642070617261636861696e2e205573696e672074686520536c6f74732070616c6c65742c20616e206f6e2d64656d616e642070617261636861696e2063616e207468656ea4626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e0030232320417267756d656e747355012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e6577282020706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e747359015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72107573652e206164645f6c6f636b04011070617261b502011850617261496400061409014164642061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c2070726576656e7420746865206d616e61676572206f662061887061726120746f2064657265676973746572206f722073776170206120706172612e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e547363686564756c655f636f64655f7570677261646508011070617261b50201185061726149640001206e65775f636f6465d904013856616c69646174696f6e436f646500072c745363686564756c6520612070617261636861696e20757067726164652e005501546869732077696c6c206b69636b206f6666206120636865636b206f6620606e65775f636f64656020627920616c6c2076616c696461746f72732e20416674657220746865206d616a6f72697479206f6620746865550176616c696461746f72732068617665207265706f72746564206f6e207468652076616c6964697479206f662074686520636f64652c2074686520636f64652077696c6c2065697468657220626520656e616374656455016f722074686520757067726164652077696c6c2062652072656a65637465642e2049662074686520636f64652077696c6c20626520656e61637465642c207468652063757272656e7420636f6465206f66207468655d0170617261636861696e2077696c6c206265206f7665727772697474656e206469726563746c792e2054686973206d65616e73207468617420616e7920506f562077696c6c20626520636865636b656420627920746869735d016e657720636f64652e205468652070617261636861696e20697473656c662077696c6c206e6f7420626520696e666f726d6564206578706c696369746c792074686174207468652076616c69646174696f6e20636f646530686173206368616e6765642e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e407365745f63757272656e745f6865616408011070617261b50201185061726149640001206e65775f68656164dd040120486561644461746100081084536574207468652070617261636861696e27732063757272656e7420686561642e00490143616e2062652063616c6c656420627920526f6f742c207468652070617261636861696e2c206f72207468652070617261636861696e206d616e61676572206966207468652070617261636861696e20697324756e6c6f636b65642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d05105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261b50201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e0000104d014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746ffc68617070656e20696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e40636c6561725f616c6c5f6c656173657304011070617261b502011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e3c747269676765725f6f6e626f61726404011070617261b502011850617261496400021c250154727920746f206f6e626f61726420612070617261636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4105105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6efc0144426c6f636b4e756d626572466f723c543e0001486c656173655f706572696f645f696e646578fc01404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172614505011850617261496400013461756374696f6e5f696e646578fc013041756374696f6e496e64657800012866697273745f736c6f74fc01404c65617365506572696f644f663c543e0001246c6173745f736c6f74fc01404c65617365506572696f644f663c543e000118616d6f756e740d01013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612070617261636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772870617261636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652070617261636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4505000006b502004905105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c65741043616c6c04045400012418637265617465180114696e6465784505011850617261496400010c6361700d01013042616c616e63654f663c543e00013066697273745f706572696f64fc01404c65617365506572696f644f663c543e00012c6c6173745f706572696f64fc01404c65617365506572696f644f663c543e00010c656e64fc0144426c6f636b4e756d626572466f723c543e00012076657269666965724d05014c4f7074696f6e3c4d756c74695369676e65723e0000144d014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612070617261636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f641872616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722070617261636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652070617261636861696e206d616e616765722e28636f6e747269627574650c0114696e6465784505011850617261496400011476616c75650d01013042616c616e63654f663c543e0001247369676e6174757265550501584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612070617261636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e64657845050118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e005d015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c49017468656e20746865207265746972656d656e7420666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e005501496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7434626c6f636b206e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652070617261636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e64657845050118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e64657845050118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465784505011850617261496400010c6361700d01013042616c616e63654f663c543e00013066697273745f706572696f64fc01404c65617365506572696f644f663c543e00012c6c6173745f706572696f64fc01404c65617365506572696f644f663c543e00010c656e64fc0144426c6f636b4e756d626572466f723c543e00012076657269666965724d05014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578b50201185061726149640001106d656d6f38011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e646578b502011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e38636f6e747269627574655f616c6c080114696e646578450501185061726149640001247369676e6174757265550501584f7074696f6e3c4d756c74695369676e61747572653e00080c6101436f6e7472696275746520796f757220656e746972652062616c616e636520746f20612063726f77642073616c652e20546869732077696c6c207472616e736665722074686520656e746972652062616c616e6365206f665101612075736572206f76657220746f2066756e6420612070617261636861696e20736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e206861737c656e64656420616e64207468652066756e64732061726520756e757365642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d0504184f7074696f6e0404540151050108104e6f6e6500000010536f6d650400510500000100005105082873705f72756e74696d652c4d756c74695369676e657200010c1c45643235353139040004013c656432353531393a3a5075626c69630000001c53723235353139040004013c737232353531393a3a5075626c696300010014456364736104006102013465636473613a3a5075626c696300020000550504184f7074696f6e0404540159050108104e6f6e6500000010536f6d650400590500000100005905082873705f72756e74696d65384d756c74695369676e617475726500010c1c4564323535313904007d020148656432353531393a3a5369676e61747572650000001c5372323535313904007d020148737232353531393a3a5369676e61747572650001001445636473610400d102014065636473613a3a5369676e6174757265000200005d05106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c65741043616c6c04045400011048726571756573745f636f72655f636f756e74040114636f756e749d01010c7531360001185101526571756573742074686520636f6e66696775726174696f6e20746f206265207570646174656420776974682074686520737065636966696564206e756d626572206f6620636f7265732e205761726e696e673a510153696e63652074686973206f6e6c79207363686564756c6573206120636f6e66696775726174696f6e207570646174652c2069742074616b65732074776f2073657373696f6e7320746f20636f6d6520696e746f1c6566666563742e00982d20606f726967696e603a20526f6f74206f722074686520436f726574696d6520436861696e802d2060636f756e74603a20746f74616c206e756d626572206f6620636f72657348726571756573745f726576656e75655f61740401107768656e10012c426c6f636b4e756d62657200021061015265717565737420746f20636c61696d2074686520696e7374616e74616e656f757320636f726574696d652073616c657320726576656e7565207374617274696e672066726f6d2074686520626c6f636b206974207761735d016c61737420636c61696d656420756e74696c20616e6420757020746f2074686520626c6f636b207370656369666965642e2054686520636c61696d656420616d6f756e742076616c75652069732073656e74206261636b5101746f2074686520436f726574696d6520636861696e20696e206120606e6f746966795f726576656e756560206d6573736167652e204174207468652073616d652074696d652c2074686520616d6f756e742069738474656c65706f7274656420746f2074686520436f726574696d6520636861696e2e386372656469745f6163636f756e7408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0003002c61737369676e5f636f7265100110636f72659d01013c42726f6b6572436f7265496e646578000114626567696e100144426c6f636b4e756d626572466f723c543e00012861737369676e6d656e746105018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e74b801644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00042459015265636569766520696e737472756374696f6e732066726f6d20746865206045787465726e616c42726f6b65724f726967696e602c2064657461696c696e6720686f77206120737065636966696320636f72652069732c746f20626520757365642e002c506172616d65746572733a21012d606f726967696e603a20546865206045787465726e616c42726f6b65724f726967696e602c20617373756d656420746f2062652074686520636f726574696d6520636861696e2eac2d60636f7265603a2054686520636f726520746861742073686f756c64206265207363686564756c65642ed82d60626567696e603a20546865207374617274696e6720626c6f636b686569676874206f662074686520696e737472756374696f6e2ed42d6061737369676e6d656e74603a20486f772074686520626c6f636b73706163652073686f756c64206265207574696c697365642e59012d60656e645f68696e74603a20416e206f7074696f6e616c2068696e7420617320746f207768656e207468697320706172746963756c617220736574206f6620696e737472756374696f6e732077696c6c20656e642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e610500000265050065050000040869056d050069050c3470616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b4964000200006d050c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653050617274734f663537363030000004009d01010c753136000071050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e6669677505015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974737905013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b7d0501404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973b90101305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b657973b90101305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974737905013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f708105013450726f67726573734f663c543e00013870726f67726573735f6368696c648105013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e750504184f7074696f6e0404540179050108104e6f6e6500000010536f6d6504007905000001000079050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c75333200007d050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f708105013450726f67726573734f663c543e00013870726f67726573735f6368696c648105013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c753332000081050c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b6579040085050164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c6574650002000085050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000089050c2870616c6c65745f78636d1870616c6c65741043616c6c0404540001441073656e64080110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d6573736167658d050154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f617373657473100110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172798d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473bd060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c753332000148110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e5c726573657276655f7472616e736665725f617373657473100110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172798d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473bd060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320002785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e1c6578656375746508011c6d657373616765c10601b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e55010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6eb801484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e8d010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6e8d010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f617373657473140110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172798d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473bd060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974f905012c5765696768744c696d69740008785d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f617373657473140110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172798d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473bd060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974f905012c5765696768744c696d6974000948110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f666101696e64657820606665655f61737365745f6974656d602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f617373657473140110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e65666963696172798d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473bd060150426f783c56657273696f6e65644173736574733e0001386665655f61737365745f6974656d10010c7533320001307765696768745f6c696d6974f905012c5765696768744c696d6974000b845d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f663501696e64657820606665655f61737365745f6974656d60202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202050617261636861696e282e2e29296020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f72206058312850617261636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2070617261636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e4d012d20606665655f61737365745f6974656d603a2054686520696e64657820696e746f206061737365747360206f6620746865206974656d2077686963682073686f756c64206265207573656420746f207061791c2020666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f617373657473080118617373657473bd060150426f783c56657273696f6e65644173736574733e00012c62656e65666963696172798d010158426f783c56657273696f6e65644c6f636174696f6e3e000c185501436c61696d73206173736574732074726170706564206f6e20746869732070616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c0110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473bd060150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f74797065ed060144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964f1060154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f74797065ed060144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f646573748d050154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d6974f905012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202050617261636861696e282e2e295d6020746f2073656e642066726f6d2070617261636861696e20746f2070617261636861696e2c206f7220605b50617261636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2070617261636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202070617261636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e506164645f617574686f72697a65645f616c69617308011c616c69617365728d010158426f783c56657273696f6e65644c6f636174696f6e3e00011c65787069726573f506012c4f7074696f6e3c7536343e000e2c5d01417574686f72697a6520616e6f746865722060616c696173657260206c6f636174696f6e20746f20616c69617320696e746f20746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e29015468652060616c696173657260206973206f6e6c7920617574686f72697a656420756e74696c207468652070726f766964656420606578706972796020626c6f636b206e756d6265722e49015468652063616c6c2063616e20616c736f206265207573656420666f7220612070726576696f75736c7920617574686f72697a656420616c69617320696e206f7264657220746f207570646174652069747358606578706972796020626c6f636b206e756d6265722e005101557375616c6c792075736566756c20746f20616c6c6f7720796f7572206c6f63616c206163636f756e7420746f20626520616c696173656420696e746f2066726f6d20612072656d6f7465206c6f636174696f6ef4616c736f20756e64657220796f757220636f6e74726f6c20286c696b6520796f7572206163636f756e74206f6e20616e6f7468657220636861696e292e0051015741524e494e473a206d616b652073757265207468652063616c6c657220606f726967696e602028796f752920747275737473207468652060616c696173657260206c6f636174696f6e20746f2061637420696e590174686569722f796f7572206e616d652e204f6e636520617574686f72697a6564207573696e6720746869732063616c6c2c207468652060616c6961736572602063616e20667265656c7920696d706572736f6e617465d4606f726967696e6020696e2058434d2070726f6772616d73206578656375746564206f6e20746865206c6f63616c20636861696e2e5c72656d6f76655f617574686f72697a65645f616c69617304011c616c69617365728d010158426f783c56657273696f6e65644c6f636174696f6e3e000f085d0152656d6f766520612070726576696f75736c7920617574686f72697a65642060616c6961736572602066726f6d20746865206c697374206f66206c6f636174696f6e7320746861742063616e20616c69617320696e746f90746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e7472656d6f76655f616c6c5f617574686f72697a65645f616c6961736573001008490152656d6f766520616c6c2070726576696f75736c7920617574686f72697a65642060616c6961736572607320746861742063616e20616c69617320696e746f20746865206c6f63616c20606f726967696e60446d616b696e6720746869732063616c6c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d05080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c08563304009105015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400fd05015076343a3a58636d3c52756e74696d6543616c6c3e00040008563504004506015076353a3a58636d3c52756e74696d6543616c6c3e0005000091050c0c78636d0876330c58636d041043616c6c00000400950501585665633c496e737472756374696f6e3c43616c6c3e3e0000950500000299050099050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404009d05012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404009d05012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404009d05012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b5050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572dd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574739d05012c4d756c746941737365747300012c62656e6566696369617279f001344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d05012c4d756c746941737365747300011064657374f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64e10501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ce505014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572fc010c7533320001406d61785f6d6573736167655f73697a65fc010c7533320001306d61785f6361706163697479fc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74fc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72fc010c75333200011873656e646572fc010c753332000124726563697069656e74fc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f40154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400e90501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473ed0501404d756c7469417373657446696c74657200012c62656e6566696369617279f001344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473ed0501404d756c7469417373657446696c74657200011064657374f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e000e003445786368616e676541737365740c011067697665ed0501404d756c7469417373657446696c74657200011077616e749d05012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473ed0501404d756c7469417373657446696c74657200011c72657365727665f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473ed0501404d756c7469417373657446696c74657200011064657374f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fe90501445175657279526573706f6e7365496e666f000118617373657473ed0501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573a50501284d756c746941737365740001307765696768745f6c696d6974f905012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204009105012458636d3c43616c6c3e0015002c536574417070656e64697804009105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574739d05012c4d756c74694173736574730001187469636b6574f001344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404009d05012c4d756c7469417373657473001c002c457870656374417373657404009d05012c4d756c7469417373657473001d00304578706563744f726967696e0400dd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400b90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400d50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fe90501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578fc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72fc010c75333200013c6d696e5f63726174655f6d696e6f72fc010c753332002200505265706f72745472616e736163745374617475730400e90501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400f801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b050101244e6574776f726b496400012c64657374696e6174696f6ef40154496e746572696f724d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e002600244c6f636b41737365740801146173736574a50501284d756c74694173736574000120756e6c6f636b6572f001344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574a50501284d756c74694173736574000118746172676574f001344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574a50501284d756c746941737365740001146f776e6572f001344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574a50501284d756c746941737365740001186c6f636b6572f001344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400f001344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974f905012c5765696768744c696d6974000130636865636b5f6f726967696edd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f00009d05100c78636d087633286d756c746961737365742c4d756c746941737365747300000400a105013c5665633c4d756c746941737365743e0000a105000002a50500a505100c78636d087633286d756c74696173736574284d756c74694173736574000008010869641901011c4173736574496400010c66756ea905012c46756e676962696c6974790000a905100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c6504000d010110753132380000002c4e6f6e46756e6769626c650400ad0501344173736574496e7374616e636500010000ad05100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804000d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400b105011c5b75383b20385d0003001c417272617931360400cc01205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000b105000003080000000800b5050c0c78636d08763320526573706f6e7365000118104e756c6c0000001841737365747304009d05012c4d756c74694173736574730001003c457865637574696f6e526573756c740400b90501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400c5050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400d50501384d617962654572726f72436f646500050000b90504184f7074696f6e04045401bd050108104e6f6e6500000010536f6d650400bd050000010000bd050000040810c10500c105100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000c5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c905045300000400d10501185665633c543e0000c9050c0c78636d0876332850616c6c6574496e666f0000180114696e646578fc010c7533320001106e616d65cd050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65cd050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72fc010c7533320001146d696e6f72fc010c7533320001147061746368fc010c7533320000cd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d105000002c90500d5050c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f720400d905018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f720400d905018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e00020000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000dd0504184f7074696f6e04045401f00108104e6f6e6500000010536f6d650400f00000010000e1050c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d00030000e5050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000e9050c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6ef001344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000ed05100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e69746504009d05012c4d756c74694173736574730000001057696c640400f105013857696c644d756c7469417373657400010000f105100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f6608010869641901011c4173736574496400010c66756ef505013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400fc010c75333200020030416c6c4f66436f756e7465640c010869641901011c4173736574496400010c66756ef505013c57696c6446756e676962696c697479000114636f756e74fc010c75333200030000f505100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000f9050c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d69746564040028011857656967687400010000fd050c2c73746167696e675f78636d0876340c58636d041043616c6c00000400010601585665633c496e737472756374696f6e3c43616c6c3e3e0000010600000205060005060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040009060118417373657473000000545265736572766541737365744465706f7369746564040009060118417373657473000100585265636569766554656c65706f727465644173736574040009060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73651d060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572310601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574730906011841737365747300012c62656e65666963696172791d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c011861737365747309060118417373657473000110646573741d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64e10501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6ce505014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572fc010c7533320001406d61785f6d6573736167655f73697a65fc010c7533320001306d61785f6361706163697479fc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74fc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72fc010c75333200011873656e646572fc010c753332000124726563697069656e74fc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040021010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400350601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574733906012c417373657446696c74657200012c62656e65666963696172791d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574733906012c417373657446696c746572000110646573741d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e000e003445786368616e676541737365740c0110676976653906012c417373657446696c74657200011077616e740906011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574733906012c417373657446696c74657200011c726573657276651d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574733906012c417373657446696c746572000110646573741d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f350601445175657279526573706f6e7365496e666f0001186173736574733906012c417373657446696c74657200120030427579457865637574696f6e080110666565731106011441737365740001307765696768745f6c696d6974f905012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400fd05012458636d3c43616c6c3e0015002c536574417070656e6469780400fd05012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473090601184173736574730001187469636b65741d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040009060118417373657473001c002c4578706563744173736574040009060118417373657473001d00304578706563744f726967696e0400310601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400b90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400d50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f350601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578fc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72fc010c75333200013c6d696e5f63726174655f6d696e6f72fc010c753332002200505265706f72745472616e736163745374617475730400350601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400290101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b310101244e6574776f726b496400012c64657374696e6174696f6e21010140496e746572696f724c6f636174696f6e00010c78636dfd05011c58636d3c28293e002600244c6f636b41737365740801146173736574110601144173736574000120756e6c6f636b65721d0101204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365741106011441737365740001187461726765741d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741106011441737365740001146f776e65721d0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741106011441737365740001186c6f636b65721d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04001d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974f905012c5765696768744c696d6974000130636865636b5f6f726967696e310601404f7074696f6e3c4c6f636174696f6e3e002f00000906102c73746167696e675f78636d08763414617373657418417373657473000004000d0601285665633c41737365743e00000d060000021106001106102c73746167696e675f78636d087634146173736574144173736574000008010869645101011c4173736574496400010c66756e1506012c46756e676962696c69747900001506102c73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c6504000d010110753132380000002c4e6f6e46756e6769626c650400190601344173736574496e7374616e6365000100001906102c73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804000d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400b105011c5b75383b20385d0003001c417272617931360400cc01205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d000500001d060c2c73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400090601184173736574730001003c457865637574696f6e526573756c740400b90501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040021060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400d50501384d617962654572726f72436f64650005000021060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540125060453000004002d0601185665633c543e000025060c2c73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e646578fc010c7533320001106e616d6529060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6529060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72fc010c7533320001146d696e6f72fc010c7533320001147061746368fc010c753332000029060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00002d06000002250600310604184f7074696f6e040454011d010108104e6f6e6500000010536f6d6504001d01000001000035060c2c73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e1d0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400003906102c73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400090601184173736574730000001057696c6404003d06012457696c644173736574000100003d06102c73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869645101011c4173736574496400010c66756e4106013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400fc010c75333200020030416c6c4f66436f756e7465640c010869645101011c4173736574496400010c66756e4106013c57696c6446756e676962696c697479000114636f756e74fc010c753332000300004106102c73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000045060c2c73746167696e675f78636d0876350c58636d041043616c6c00000400490601585665633c496e737472756374696f6e3c43616c6c3e3e000049060000024d06004d060c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d03457697468647261774173736574040051060118417373657473000000545265736572766541737365744465706f7369746564040051060118417373657473000100585265636569766554656c65706f727465644173736574040051060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736565060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572850601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574735106011841737365747300012c62656e6566696369617279550101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735106011841737365747300011064657374550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64e10501284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874890601384f7074696f6e3c5765696768743e00011063616c6ce505014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572fc010c7533320001406d61785f6d6573736167655f73697a65fc010c7533320001306d61785f6361706163697479fc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74fc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72fc010c75333200011873656e646572fc010c753332000124726563697069656e74fc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040059010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f7204008d0601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574739106012c417373657446696c74657200012c62656e6566696369617279550101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574739106012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e000e003445786368616e676541737365740c0110676976659106012c417373657446696c74657200011077616e745106011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574739106012c417373657446696c74657200011c72657365727665550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574739106012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f8d0601445175657279526573706f6e7365496e666f0001186173736574739106012c417373657446696c74657200120030427579457865637574696f6e080110666565735906011441737365740001307765696768745f6c696d6974f905012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204004506012458636d3c43616c6c3e0015002c536574417070656e64697804004506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473510601184173736574730001187469636b6574550101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040051060118417373657473001c002c4578706563744173736574040051060118417373657473001d00304578706563744f726967696e0400850601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400690601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400d50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f8d0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578fc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72fc010c75333200013c6d696e5f63726174655f6d696e6f72fc010c753332002200505265706f72745472616e7361637453746174757304008d0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400610101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b690101244e6574776f726b496400012c64657374696e6174696f6e59010140496e746572696f724c6f636174696f6e00010c78636d4506011c58636d3c28293e002600244c6f636b41737365740801146173736574590601144173736574000120756e6c6f636b6572550101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574590601144173736574000118746172676574550101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365745906011441737365740001146f776e6572550101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365745906011441737365740001186c6f636b6572550101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400550101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974f905012c5765696768744c696d6974000130636865636b5f6f726967696e850601404f7074696f6e3c4c6f636174696f6e3e002f001c50617946656573040114617373657459060114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e550101204c6f636174696f6e00012c72656d6f74655f666565739d06016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473a50601e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636d4506011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696ead0601604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636d4506012458636d3c43616c6c3e0032002053657448696e747304011468696e7473b1060184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e003300005106102c73746167696e675f78636d0876351461737365741841737365747300000400550601285665633c41737365743e000055060000025906005906102c73746167696e675f78636d087635146173736574144173736574000008010869648901011c4173736574496400010c66756e5d06012c46756e676962696c69747900005d06102c73746167696e675f78636d0876351461737365742c46756e676962696c6974790001082046756e6769626c6504000d010110753132380000002c4e6f6e46756e6769626c650400610601344173736574496e7374616e6365000100006106102c73746167696e675f78636d087635146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e64657804000d0101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400b105011c5b75383b20385d0003001c417272617931360400cc01205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000065060c2c73746167696e675f78636d08763520526573706f6e7365000118104e756c6c000000184173736574730400510601184173736574730001003c457865637574696f6e526573756c740400690601504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040075060198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400d50501384d617962654572726f72436f646500050000690604184f7074696f6e040454016d060108104e6f6e6500000010536f6d6504006d0600000100006d0600000408107106007106100c78636d08763518747261697473144572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d69745265616368656404002801185765696768740025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d69740028000075060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017906045300000400810601185665633c543e000079060c2c73746167696e675f78636d0876352850616c6c6574496e666f0000180114696e646578fc010c7533320001106e616d657d060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d657d060180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f72fc010c7533320001146d696e6f72fc010c7533320001147061746368fc010c75333200007d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00008106000002790600850604184f7074696f6e0404540155010108104e6f6e6500000010536f6d65040055010000010000890604184f7074696f6e04045401280108104e6f6e6500000010536f6d6504002800000100008d060c2c73746167696e675f78636d087635445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e550101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400009106102c73746167696e675f78636d0876351461737365742c417373657446696c74657200010820446566696e6974650400510601184173736574730000001057696c6404009506012457696c644173736574000100009506102c73746167696e675f78636d0876351461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869648901011c4173736574496400010c66756e9906013c57696c6446756e676962696c69747900010028416c6c436f756e7465640400fc010c75333200020030416c6c4f66436f756e7465640c010869648901011c4173736574496400010c66756e9906013c57696c6446756e676962696c697479000114636f756e74fc010c753332000300009906102c73746167696e675f78636d0876351461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100009d0604184f7074696f6e04045401a1060108104e6f6e6500000010536f6d650400a1060000010000a106102c73746167696e675f78636d0876351461737365744c41737365745472616e7366657246696c74657200010c2054656c65706f727404009106012c417373657446696c74657200000038526573657276654465706f73697404009106012c417373657446696c7465720001003c52657365727665576974686472617704009106012c417373657446696c74657200020000a5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a106045300000400a90601185665633c543e0000a906000002a10600ad0604184f7074696f6e0404540159010108104e6f6e6500000010536f6d65040059010000010000b1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b506045300000400b90601185665633c543e0000b5060c2c73746167696e675f78636d0876351048696e74000104304173736574436c61696d65720401206c6f636174696f6e550101204c6f636174696f6e00000000b906000002b50600bd06080c78636d3c56657273696f6e656441737365747300010c08563304009d05013c76333a3a4d756c746941737365747300030008563404000906012876343a3a41737365747300040008563504005106012876353a3a41737365747300050000c106080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856330400c506015076333a3a58636d3c52756e74696d6543616c6c3e0003000856340400d506015076343a3a58636d3c52756e74696d6543616c6c3e0004000856350400e106015076353a3a58636d3c52756e74696d6543616c6c3e00050000c5060c0c78636d0876330c58636d041043616c6c00000400c90601585665633c496e737472756374696f6e3c43616c6c3e3e0000c906000002cd0600cd060c0c78636d0876332c496e737472756374696f6e041043616c6c0001c0345769746864726177417373657404009d05012c4d756c7469417373657473000000545265736572766541737365744465706f736974656404009d05012c4d756c7469417373657473000100585265636569766554656c65706f72746564417373657404009d05012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365b5050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572dd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e7366657241737365740801186173736574739d05012c4d756c746941737365747300012c62656e6566696369617279f001344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574739d05012c4d756c746941737365747300011064657374f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64e10501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cd106014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572fc010c7533320001406d61785f6d6573736167655f73697a65fc010c7533320001306d61785f6361706163697479fc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74fc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72fc010c75333200011873656e646572fc010c753332000124726563697069656e74fc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e0400f40154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400e90501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473ed0501404d756c7469417373657446696c74657200012c62656e6566696369617279f001344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473ed0501404d756c7469417373657446696c74657200011064657374f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e000e003445786368616e676541737365740c011067697665ed0501404d756c7469417373657446696c74657200011077616e749d05012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473ed0501404d756c7469417373657446696c74657200011c72657365727665f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473ed0501404d756c7469417373657446696c74657200011064657374f001344d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fe90501445175657279526573706f6e7365496e666f000118617373657473ed0501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573a50501284d756c746941737365740001307765696768745f6c696d6974f905012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400c506012458636d3c43616c6c3e0015002c536574417070656e6469780400c506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d41737365740801186173736574739d05012c4d756c74694173736574730001187469636b6574f001344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e417373657404009d05012c4d756c7469417373657473001c002c457870656374417373657404009d05012c4d756c7469417373657473001d00304578706563744f726967696e0400dd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400b90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400d50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fe90501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578fc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72fc010c75333200013c6d696e5f63726174655f6d696e6f72fc010c753332002200505265706f72745472616e736163745374617475730400e90501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400f801204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b050101244e6574776f726b496400012c64657374696e6174696f6ef40154496e746572696f724d756c74694c6f636174696f6e00010c78636d9105011c58636d3c28293e002600244c6f636b41737365740801146173736574a50501284d756c74694173736574000120756e6c6f636b6572f001344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574a50501284d756c74694173736574000118746172676574f001344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574a50501284d756c746941737365740001146f776e6572f001344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574a50501284d756c746941737365740001186c6f636b6572f001344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400f001344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974f905012c5765696768744c696d6974000130636865636b5f6f726967696edd0501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000d1060c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e0000d5060c2c73746167696e675f78636d0876340c58636d041043616c6c00000400d90601585665633c496e737472756374696f6e3c43616c6c3e3e0000d906000002dd0600dd060c2c73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040009060118417373657473000000545265736572766541737365744465706f7369746564040009060118417373657473000100585265636569766554656c65706f727465644173736574040009060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73651d060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572310601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574730906011841737365747300012c62656e65666963696172791d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c011861737365747309060118417373657473000110646573741d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64e10501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cd106014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572fc010c7533320001406d61785f6d6573736167655f73697a65fc010c7533320001306d61785f6361706163697479fc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74fc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72fc010c75333200011873656e646572fc010c753332000124726563697069656e74fc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040021010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400350601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574733906012c417373657446696c74657200012c62656e65666963696172791d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574733906012c417373657446696c746572000110646573741d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e000e003445786368616e676541737365740c0110676976653906012c417373657446696c74657200011077616e740906011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574733906012c417373657446696c74657200011c726573657276651d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574733906012c417373657446696c746572000110646573741d0101204c6f636174696f6e00010c78636dfd05011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f350601445175657279526573706f6e7365496e666f0001186173736574733906012c417373657446696c74657200120030427579457865637574696f6e080110666565731106011441737365740001307765696768745f6c696d6974f905012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400d506012458636d3c43616c6c3e0015002c536574417070656e6469780400d506012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473090601184173736574730001187469636b65741d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040009060118417373657473001c002c4578706563744173736574040009060118417373657473001d00304578706563744f726967696e0400310601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400b90501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400d50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f350601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578fc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72fc010c75333200013c6d696e5f63726174655f6d696e6f72fc010c753332002200505265706f72745472616e736163745374617475730400350601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400290101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b310101244e6574776f726b496400012c64657374696e6174696f6e21010140496e746572696f724c6f636174696f6e00010c78636dfd05011c58636d3c28293e002600244c6f636b41737365740801146173736574110601144173736574000120756e6c6f636b65721d0101204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365741106011441737365740001187461726765741d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365741106011441737365740001146f776e65721d0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365741106011441737365740001186c6f636b65721d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04001d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974f905012c5765696768744c696d6974000130636865636b5f6f726967696e310601404f7074696f6e3c4c6f636174696f6e3e002f0000e1060c2c73746167696e675f78636d0876350c58636d041043616c6c00000400e50601585665633c496e737472756374696f6e3c43616c6c3e3e0000e506000002e90600e9060c2c73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d03457697468647261774173736574040051060118417373657473000000545265736572766541737365744465706f7369746564040051060118417373657473000100585265636569766554656c65706f727465644173736574040051060118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736565060120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572850601404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574735106011841737365747300012c62656e6566696369617279550101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574735106011841737365747300011064657374550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64e10501284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874890601384f7074696f6e3c5765696768743e00011063616c6cd106014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e646572fc010c7533320001406d61785f6d6573736167655f73697a65fc010c7533320001306d61785f6361706163697479fc010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e74fc010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f72fc010c75333200011873656e646572fc010c753332000124726563697069656e74fc010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040059010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f7204008d0601445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574739106012c417373657446696c74657200012c62656e6566696369617279550101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574739106012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e000e003445786368616e676541737365740c0110676976659106012c417373657446696c74657200011077616e745106011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574739106012c417373657446696c74657200011c72657365727665550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574739106012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d4506011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f8d0601445175657279526573706f6e7365496e666f0001186173736574739106012c417373657446696c74657200120030427579457865637574696f6e080110666565735906011441737365740001307765696768745f6c696d6974f905012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400e106012458636d3c43616c6c3e0015002c536574417070656e6469780400e106012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473510601184173736574730001187469636b6574550101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040051060118417373657473001c002c4578706563744173736574040051060118417373657473001d00304578706563744f726967696e0400850601404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400690601504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400d50501384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f8d0601445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e646578fc010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f72fc010c75333200013c6d696e5f63726174655f6d696e6f72fc010c753332002200505265706f72745472616e7361637453746174757304008d0601445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400610101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b690101244e6574776f726b496400012c64657374696e6174696f6e59010140496e746572696f724c6f636174696f6e00010c78636d4506011c58636d3c28293e002600244c6f636b41737365740801146173736574590601144173736574000120756e6c6f636b6572550101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574590601144173736574000118746172676574550101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365745906011441737365740001146f776e6572550101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365745906011441737365740001186c6f636b6572550101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400550101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d6974f905012c5765696768744c696d6974000130636865636b5f6f726967696e850601404f7074696f6e3c4c6f636174696f6e3e002f001c50617946656573040114617373657459060114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e550101204c6f636174696f6e00012c72656d6f74655f666565739d06016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473a50601e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636d4506011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696ead0601604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636de106012458636d3c43616c6c3e0032002053657448696e747304011468696e7473b1060184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e00330000ed06105073746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f74655265736572766504008d01014456657273696f6e65644c6f636174696f6e00030000f106080c78636d4056657273696f6e65644173736574496400010c08563304001901012c76333a3a4173736574496400030008563404005101012c76343a3a4173736574496400040008563504008901012c76353a3a4173736574496400050000f50604184f7074696f6e04045401300108104e6f6e6500000010536f6d650400300000010000f9060c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696efd0601484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696efd0601484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd060c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e584167677265676174654d6573736167654f726967696e0001040c556d70040001070128556d70517565756549640000000001070c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e28556d705175657565496400010410506172610400b50201185061726149640000000005070c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e64ec0144426f783c543a3a41737365744b696e643e00011072617465090701244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e64ec0144426f783c543a3a41737365744b696e643e000110726174650907012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e64ec0144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e09070c3473705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800000d070c3070616c6c65745f62656566791870616c6c65741043616c6c04045400011c507265706f72745f646f75626c655f766f74696e6708014865717569766f636174696f6e5f70726f6f661107018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e747265706f72745f646f75626c655f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f661107018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e487265706f72745f666f726b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66310701ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600030c3d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e6c7265706f72745f666f726b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66310701ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f660004203d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e687265706f72745f6675747572655f626c6f636b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66410701e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f6600050c5d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e8c7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66410701e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f66e1010140543a3a4b65794f776e657250726f6f660006205d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1107084873705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d6265720110084964015d02245369676e617475726501150700080114666972737419070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e6419070188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e000015070c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400d102014065636473613a3a5369676e617475726500001907084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d6265720110084964015d02245369676e6174757265011507000c0128636f6d6d69746d656e741d070148436f6d6d69746d656e743c4e756d6265723e00010869645d02010849640001247369676e6174757265150701245369676e617475726500001d070c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61642107011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f725365744964000021070c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f616400000400250701785665633c2842656566795061796c6f616449642c205665633c75383e293e000025070000022907002907000004082d0738002d070000030200000008003107084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201d501084964015d0234416e63657374727950726f6f66013507000c0110766f7465190701b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6635070134416e63657374727950726f6f66000118686561646572d501011848656164657200003507084473705f6d6d725f7072696d69746976657334416e63657374727950726f6f66041048617368013400100128707265765f7065616b73c90101245665633c486173683e00013c707265765f6c6561665f636f756e7430010c7536340001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73390701405665633c287536342c2048617368293e000039070000023d07003d07000004083034004107084873705f636f6e73656e7375735f626565667958467574757265426c6f636b566f74696e6750726f6f6608184e756d6265720110084964015d0200040110766f746519070198566f74654d6573736167653c4e756d6265722c2049642c2049643a3a5369676e61747572653e000045070c4870616c6c65745f72635f6d69677261746f721870616c6c65741043616c6c04045400013c3c666f7263655f7365745f7374616765040114737461676549070160426f783c4d6967726174696f6e53746167654f663c543e3e0000106053657420746865206d6967726174696f6e2073746167652e000901546869732063616c6c20697320696e74656e64656420666f7220656d657267656e637920757365206f6e6c7920616e64206973206775617264656420627920746865605b60436f6e6669673a3a41646d696e4f726967696e605d2e487363686564756c655f6d6967726174696f6e1001147374617274bd02017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e00011c7761726d5f7570bd02017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000120636f6f6c5f6f6666bd02017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e000180756e736166655f69676e6f72655f7374616b696e675f6c6f636b5f636865636b200110626f6f6c000154c85363686564756c6520746865206d6967726174696f6e20746f207374617274206174206120676976656e206d6f6d656e742e003c23232320506172616d65746572733a61012d20607374617274603a2054686520626c6f636b206e756d62657220617420776869636820746865206d6967726174696f6e2077696c6c2073746172742e2060446973706174636854696d65602063616c63756c61746564ac2020617420746865206d6f6d656e74206f66207468652065787472696e73696320657865637574696f6e2e61012d20607761726d5f7570603a204475726174696f6e206f722074696d65706f696e7420746861742077696c6c206265207573656420746f207072657061726520666f7220746865206d6967726174696f6e2e2043616c6c73550120206172652066696c746572656420647572696e67207468697320706572696f642e20497420697320696e74656e64656420746f206769766520656e6f7567682074696d6520666f7220554d5020616e6420444d504d01202071756575657320746f20656d7074792e2060446973706174636854696d65602063616c63756c6174656420617420746865206d6f6d656e74206f6620746865207472616e736974696f6e20746f207468654020207761726d2d75702073746167652e61012d2060636f6f6c5f6f6666603a2054686520626c6f636b206e756d6265722061742077686963682074686520706f7374206d6967726174696f6e20636f6f6c2d6f666620706572696f642077696c6c20656e642e205468654901202060446973706174636854696d65602063616c63756c6174656420617420746865206d6f6d656e74206f6620746865207472616e736974696f6e20746f2074686520636f6f6c2d6f66662073746167652e51012d2060756e736166655f69676e6f72655f7374616b696e675f6c6f636b5f636865636b603a204f4e4c5920464f522054455354494e472e2049676e6f72652074686520636865636b207768657468657220746865cc20207363686564756c65642074696d6520706f696e742069732066617220656e6f75676820696e20746865206675747572652e0031014e6f74653a20496620746865207374616b696e6720656c656374696f6e20666f72206e6578742065726120697320616c726561647920636f6d706c6574652c20616e6420746865206e6578743d0176616c696461746f72207365742069732071756575656420696e206070616c6c65742d73657373696f6e602c2077652077616e7420746f2061766f6964207374617274696e672074686520646174614d016d6967726174696f6e206174207468697320706f696e742061732069742063616e206c65616420746f20736f6d65206d69737365642076616c696461746f7220726577617264732e20546f20616464726573734101746869732c2077652073746f70207374616b696e6720656c656374696f6e20617420746865207374617274206f66206d6967726174696f6e20616e64206d75737420776169742061746c656173742031f473657373696f6e202873657420766961207761726d5f757029206265666f7265207374617274696e67207468652064617461206d6967726174696f6e2e00090152656164205b604d6967726174696f6e53746167653a3a5363686564756c6564605d20646f63756d656e746174696f6e20666f72206d6f72652064657461696c732e5073746172745f646174615f6d6967726174696f6e000210645374617274207468652064617461206d6967726174696f6e2e004d0154686973206973207479706963616c6c792063616c6c6564206279207468652041737365742048756220746f20696e64696361746520697427732072656164696e65737320746f2072656365697665207468653c6d6967726174696f6e20646174612e58726563656976655f71756572795f726573706f6e736508012071756572795f696430011c51756572794964000120726573706f6e736565060120526573706f6e7365000304390152656365697665206120717565727920726573706f6e73652066726f6d207468652041737365742048756220666f7220612070726576696f75736c792073656e742078636d206d6573736167652e28726573656e645f78636d04012071756572795f696430010c753634000404d4526573656e6420612070726576696f75736c792073656e7420616e6420756e636f6e6669726d65642058434d206d6573736167652e687365745f756e70726f6365737365645f6d73675f62756666657204010c6e6577b8012c4f7074696f6e3c7533323e00050ca05365742074686520756e70726f636573736564206d657373616765206275666665722073697a652e00b0604e6f6e6560206d65616e7320746f207573652074686520636f6e66696775726174696f6e2076616c75652e647365745f61685f756d705f71756575655f7072696f7269747904010c6e6577f10701944168556d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e00060cb05365742074686520414820554d50207175657565207072696f7269747920636f6e66696775726174696f6e2e00a043616e206f6e6c792062652063616c6c656420627920746865206041646d696e4f726967696e602e2c7365745f6d616e6167657204010c6e6577310201504f7074696f6e3c543a3a4163636f756e7449643e0007106c53657420746865206d616e61676572206163636f756e742069642e004101546865206d616e6167657220686173207468652073696d696c617220746f205b60436f6e6669673a3a41646d696e4f726967696e605d2070726976696c65676573206578636570742074686174206974e863616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e4073656e645f78636d5f6d657373616765080110646573748d010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d6573736167658d050154426f783c56657273696f6e656458636d3c28293e3e00080c350158434d2073656e642063616c6c206964656e746963616c20746f20746865205b6070616c6c65745f78636d3a3a50616c6c65743a3a73656e64605d2063616c6c2062757420776974682074686551015b436f6e6669673a3a53656e6458636d5d20726f757465722077686963682077696c6c2062652061626c6520746f2073656e64206d6573736167657320746f207468652041737365742048756220647572696e6738746865206d6967726174696f6e2e4470726573657276655f6163636f756e74730401206163636f756e7473050201445665633c543a3a4163636f756e7449643e00090c150153657420746865206163636f756e747320746f20626520707265736572766564206f6e2052656c617920436861696e20647572696e6720746865206d6967726174696f6e2e00bc546865206163636f756e7473206d7573742068617665206e6f20636f6e73756d657273207265666572656e6365732e347365745f63616e63656c6c657204010c6e6577310201504f7074696f6e3c543a3a4163636f756e7449643e000a0c74536574207468652063616e63656c6c6572206163636f756e742069642e00c05468652063616e63656c6c65722063616e206f6e6c792073746f70207363686564756c6564206d6967726174696f6e2e3c70617573655f6d6967726174696f6e000b0450506175736520746865206d6967726174696f6e2e4063616e63656c5f6d6967726174696f6e000c0c5443616e63656c20746865206d6967726174696f6e2e0051014d6967726174696f6e2063616e206f6e6c792062652063616e63656c6c656420696620697420697320696e20746865205b604d6967726174696f6e53746167653a3a5363686564756c6564605d2073746174652e54766f74655f6d616e616765725f6d756c746973696708011c7061796c6f6164f507016c426f783c4d616e616765724d756c7469736967566f74653c543e3e00010c7369675905016873705f72756e74696d653a3a4d756c74695369676e6174757265000d24e8566f7465206f6e20626568616c66206f6620616e79206f6620746865206d656d6265727320696e20604d756c74697369674d656d62657273602e00e4556e7369676e65642065787472696e7369632c20726571756972696e672074686520607061796c6f61646020746f206265207369676e65642e00590155706f6e20656163682063616c6c2c2061206e657720656e747279206973206372656174656420696e20604d616e616765724d756c74697369677360206d61702074686520607061796c6f61642e63616c6c6020746f5501626520646973706174636865642e204f6e636520604d756c74697369675468726573686f6c646020697320726561636865642c2074686520656e74697265206d61702069732064656c657465642c20616e64207765686d6f7665206f6e20746f20746865206e65787420726f756e642e002d0154686520726f756e642073797374656d20656e73757265732074686174207369676e6174757265732066726f6d206f6c64657220726f756e642063616e6e6f74206265207265757365642e307365745f73657474696e677304012073657474696e6773f90701644f7074696f6e3c4d6967726174696f6e53657474696e67733e000e04050153657420746865206d6967726174696f6e2073657474696e67732e2043616e206f6e6c7920626520646f6e652062792061646d696e206f72206d616e616765722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4907084870616c6c65745f72635f6d69677261746f72384d6967726174696f6e537461676518244163636f756e74496401002c426c6f636b4e756d626572011034426167734c69737453636f726501302c566f74696e67436c617373019d012441737365744b696e6401ec505363686564756c6572426c6f636b4e756d6265720110012d011c50656e64696e670000003c4d6967726174696f6e506175736564000100245363686564756c6564040114737461727410012c426c6f636b4e756d6265720002003057616974696e67466f724168000300185761726d5570040118656e645f617410012c426c6f636b4e756d626572000400205374617274696e67000500805075726550726f787943616e646964617465734d6967726174696f6e496e6974000600544163636f756e74734d6967726174696f6e496e6974000700604163636f756e74734d6967726174696f6e4f6e676f696e670401206c6173745f6b6579310201444f7074696f6e3c4163636f756e7449643e000800544163636f756e74734d6967726174696f6e446f6e65000900544d756c74697369674d6967726174696f6e496e6974000a00604d756c74697369674d6967726174696f6e4f6e676f696e670401206c6173745f6b65794d0701704f7074696f6e3c284163636f756e7449642c5b75383b2033325d293e000b00544d756c74697369674d6967726174696f6e446f6e65000c004c436c61696d734d6967726174696f6e496e6974000d0058436c61696d734d6967726174696f6e4f6e676f696e6704012c63757272656e745f6b6579550701784f7074696f6e3c436c61696d7353746167653c4163636f756e7449643e3e000e004c436c61696d734d6967726174696f6e446f6e65000f004850726f78794d6967726174696f6e496e69740010005450726f78794d6967726174696f6e50726f786965730401206c6173745f6b6579310201444f7074696f6e3c4163636f756e7449643e0011006c50726f78794d6967726174696f6e416e6e6f756e63656d656e74730401206c6173745f6b6579310201444f7074696f6e3c4163636f756e7449643e0012004850726f78794d6967726174696f6e446f6e6500130054507265696d6167654d6967726174696f6e496e697400140078507265696d6167654d6967726174696f6e4368756e6b734f6e676f696e670401206c6173745f6b6579610701684f7074696f6e3c2828483235362c20753332292c20753332293e0015006c507265696d6167654d6967726174696f6e4368756e6b73446f6e6500160094507265696d6167654d6967726174696f6e526571756573745374617475734f6e676f696e670401206e6578745f6b6579c10201304f7074696f6e3c483235363e00170088507265696d6167654d6967726174696f6e52657175657374537461747573446f6e65001800a0507265696d6167654d6967726174696f6e4c656761637952657175657374537461747573496e6974001900ac507265696d6167654d6967726174696f6e4c6567616379526571756573745374617475734f6e676f696e670401206e6578745f6b6579c10201304f7074696f6e3c483235363e001a00a0507265696d6167654d6967726174696f6e4c656761637952657175657374537461747573446f6e65001b0054507265696d6167654d6967726174696f6e446f6e65001c00544e6f6d506f6f6c734d6967726174696f6e496e6974001d00604e6f6d506f6f6c734d6967726174696f6e4f6e676f696e670401206e6578745f6b65796d0701804f7074696f6e3c4e6f6d506f6f6c7353746167653c4163636f756e7449643e3e001e00544e6f6d506f6f6c734d6967726174696f6e446f6e65001f005056657374696e674d6967726174696f6e496e69740020005c56657374696e674d6967726174696f6e4f6e676f696e670401206e6578745f6b6579310201444f7074696f6e3c4163636f756e7449643e0021005056657374696e674d6967726174696f6e446f6e650022007444656c6567617465645374616b696e674d6967726174696f6e496e69740023008044656c6567617465645374616b696e674d6967726174696f6e4f6e676f696e670401206e6578745f6b6579750701a04f7074696f6e3c44656c6567617465645374616b696e6753746167653c4163636f756e7449643e3e0024007444656c6567617465645374616b696e674d6967726174696f6e446f6e6500250050496e64696365734d6967726174696f6e496e69740026005c496e64696365734d6967726174696f6e4f6e676f696e670401206e6578745f6b65797d0701284f7074696f6e3c28293e00270050496e64696365734d6967726174696f6e446f6e65002800585265666572656e64614d6967726174696f6e496e6974002900645265666572656e64614d6967726174696f6e4f6e676f696e670401206c6173745f6b6579810701584f7074696f6e3c5265666572656e646153746167653e002a00585265666572656e64614d6967726174696f6e446f6e65002b0054426167734c6973744d6967726174696f6e496e6974002c0060426167734c6973744d6967726174696f6e4f6e676f696e670401206e6578745f6b6579890701bc4f7074696f6e3c426167734c69737453746167653c4163636f756e7449642c20426167734c69737453636f72653e3e002d0054426167734c6973744d6967726174696f6e446f6e65002e00585363686564756c65724d6967726174696f6e496e6974002f00645363686564756c65724d6967726174696f6e4f6e676f696e670401206c6173745f6b6579910701dc4f7074696f6e3c7363686564756c65723a3a5363686564756c657253746167653c5363686564756c6572426c6f636b4e756d6265723e3e0030007c5363686564756c65724167656e64614d6967726174696f6e4f6e676f696e670401206c6173745f6b6579b801704f7074696f6e3c5363686564756c6572426c6f636b4e756d6265723e003100585363686564756c65724d6967726174696f6e446f6e6500320074436f6e76696374696f6e566f74696e674d6967726174696f6e496e697400330080436f6e76696374696f6e566f74696e674d6967726174696f6e4f6e676f696e670401206c6173745f6b657999070125014f7074696f6e3c636f6e76696374696f6e5f766f74696e673a3a436f6e76696374696f6e566f74696e6753746167653c4163636f756e7449642c20566f74696e67436c6173733e0a3e00340074436f6e76696374696f6e566f74696e674d6967726174696f6e446f6e6500350054426f756e746965734d6967726174696f6e496e697400360060426f756e746965734d6967726174696f6e4f6e676f696e670401206c6173745f6b6579a907017c4f7074696f6e3c626f756e746965733a3a426f756e7469657353746167653e00370054426f756e746965734d6967726174696f6e446f6e65003800684368696c64426f756e746965734d6967726174696f6e496e6974003900744368696c64426f756e746965734d6967726174696f6e4f6e676f696e670401206c6173745f6b6579b10701a84f7074696f6e3c6368696c645f626f756e746965733a3a4368696c64426f756e7469657353746167653e003a00684368696c64426f756e746965734d6967726174696f6e446f6e65003b00584173736574526174654d6967726174696f6e496e6974003c00644173736574526174654d6967726174696f6e4f6e676f696e670401206c6173745f6b6579b90701444f7074696f6e3c41737365744b696e643e003d00584173736574526174654d6967726174696f6e446f6e65003e005843726f77646c6f616e4d6967726174696f6e496e6974003f006443726f77646c6f616e4d6967726174696f6e4f6e676f696e670401206c6173745f6b6579bd0701844f7074696f6e3c63726f77646c6f616e3a3a43726f77646c6f616e53746167653e0040005843726f77646c6f616e4d6967726174696f6e446f6e650041005454726561737572794d6967726174696f6e496e69740042006054726561737572794d6967726174696f6e4f6e676f696e670401206c6173745f6b6579c907017c4f7074696f6e3c74726561737572793a3a547265617375727953746167653e0043005454726561737572794d6967726174696f6e446f6e65004400505374616b696e674d6967726174696f6e496e69740045005c5374616b696e674d6967726174696f6e4f6e676f696e670401206e6578745f6b6579d10701a04f7074696f6e3c7374616b696e673a3a5374616b696e6753746167653c4163636f756e7449643e3e004600505374616b696e674d6967726174696f6e446f6e650047001c436f6f6c4f6666040118656e645f617410012c426c6f636b4e756d626572004800545369676e616c4d6967726174696f6e46696e697368004900344d6967726174696f6e446f6e65004a00004d0704184f7074696f6e0404540151070108104e6f6e6500000010536f6d65040051070000010000510700000408000400550704184f7074696f6e0404540159070108104e6f6e6500000010536f6d6504005907000001000059070c4870616c6c65745f72635f6d69677261746f7218636c61696d732c436c61696d73537461676504244163636f756e744964010001183453746f7261676556616c75657300000018436c61696d7304005d07015c4f7074696f6e3c457468657265756d416464726573733e0001001c56657374696e6704005d07015c4f7074696f6e3c457468657265756d416464726573733e0002001c5369676e696e6704005d07015c4f7074696f6e3c457468657265756d416464726573733e00030024507265636c61696d730400310201444f7074696f6e3c4163636f756e7449643e0004002046696e6973686564000500005d0704184f7074696f6e04045401d5020108104e6f6e6500000010536f6d650400d5020000010000610704184f7074696f6e0404540165070108104e6f6e6500000010536f6d65040065070000010000650700000408690710006907000004083410006d0704184f7074696f6e0404540171070108104e6f6e6500000010536f6d650400710700000100007107104870616c6c65745f72635f6d69677261746f721c7374616b696e67246e6f6d5f706f6f6c73344e6f6d506f6f6c73537461676504244163636f756e744964010001243453746f7261676556616c7565730000002c506f6f6c4d656d626572730400310201444f7074696f6e3c4163636f756e7449643e0001002c426f6e646564506f6f6c730400b801384f7074696f6e3c506f6f6c49643e0002002c526577617264506f6f6c730400b801384f7074696f6e3c506f6f6c49643e0003003c537562506f6f6c7353746f726167650400b801384f7074696f6e3c506f6f6c49643e000400204d657461646174610400b801384f7074696f6e3c506f6f6c49643e0005004c52657665727365506f6f6c49644c6f6f6b75700400310201444f7074696f6e3c4163636f756e7449643e00060040436c61696d5065726d697373696f6e730400310201444f7074696f6e3c4163636f756e7449643e0007002046696e697368656400080000750704184f7074696f6e0404540179070108104e6f6e6500000010536f6d650400790700000100007907104870616c6c65745f72635f6d69677261746f721c7374616b696e674464656c6567617465645f7374616b696e675444656c6567617465645374616b696e67537461676504244163636f756e7449640100010c2844656c656761746f72730400310201444f7074696f6e3c4163636f756e7449643e000000184167656e74730400310201444f7074696f6e3c4163636f756e7449643e0001002046696e6973686564000200007d0704184f7074696f6e04045401900108104e6f6e6500000010536f6d650400900000010000810704184f7074696f6e0404540185070108104e6f6e6500000010536f6d6504008507000001000085070c4870616c6c65745f72635f6d69677261746f72247265666572656e6461385265666572656e6461537461676500010c3453746f7261676556616c756573000000204d657461646174610400b8012c4f7074696f6e3c7533323e000100385265666572656e64756d496e666f0400b8012c4f7074696f6e3c7533323e00020000890704184f7074696f6e040454018d070108104e6f6e6500000010536f6d6504008d0700000100008d07104870616c6c65745f72635f6d69677261746f721c7374616b696e6724626167735f6c69737434426167734c697374537461676508244163636f756e74496401001453636f72650130010c244c6973744e6f6465730400310201444f7074696f6e3c4163636f756e7449643e000000204c697374426167730400f50601344f7074696f6e3c53636f72653e0001002046696e697368656400020000910704184f7074696f6e0404540195070108104e6f6e6500000010536f6d6504009507000001000095070c4870616c6c65745f72635f6d69677261746f72247363686564756c6572385363686564756c65725374616765042c426c6f636b4e756d626572011001103c496e636f6d706c65746553696e63650000001c526574726965730400c10101804f7074696f6e3c5461736b416464726573733c426c6f636b4e756d6265723e3e000100184c6f6f6b757004008801404f7074696f6e3c5461736b4e616d653e0002002046696e697368656400030000990704184f7074696f6e040454019d070108104e6f6e6500000010536f6d6504009d0700000100009d070c4870616c6c65745f72635f6d69677261746f7244636f6e76696374696f6e5f766f74696e6754436f6e76696374696f6e566f74696e67537461676508244163636f756e744964010014436c617373019d01010c24566f74696e67466f720400a10701684f7074696f6e3c284163636f756e7449642c20436c617373293e00000034436c6173734c6f636b73466f720400310201444f7074696f6e3c4163636f756e7449643e0001002046696e697368656400020000a10704184f7074696f6e04045401a5070108104e6f6e6500000010536f6d650400a5070000010000a50700000408009d0100a90704184f7074696f6e04045401ad070108104e6f6e6500000010536f6d650400ad070000010000ad070c4870616c6c65745f72635f6d69677261746f7220626f756e7469657334426f756e7469657353746167650001142c426f756e7479436f756e740000003c426f756e7479417070726f76616c7300010048426f756e74794465736372697074696f6e730401206c6173745f6b6579b8014c4f7074696f6e3c426f756e7479496e6465783e00020020426f756e746965730401206c6173745f6b6579b8014c4f7074696f6e3c426f756e7479496e6465783e0003002046696e697368656400040000b10704184f7074696f6e04045401b5070108104e6f6e6500000010536f6d650400b5070000010000b5070c4870616c6c65745f72635f6d69677261746f72386368696c645f626f756e74696573484368696c64426f756e746965735374616765000120404368696c64426f756e7479436f756e740000004c506172656e744368696c64426f756e74696573040124706172656e745f6964b8014c4f7074696f6e3c426f756e7479496e6465783e00010060506172656e74546f74616c4368696c64426f756e74696573040124706172656e745f6964b8014c4f7074696f6e3c426f756e7479496e6465783e000200344368696c64426f756e7469657304010c696473c10101884f7074696f6e3c28426f756e7479496e6465782c20426f756e7479496e646578293e000300644368696c64426f756e74794465736372697074696f6e73563104010c696473c10101884f7074696f6e3c28426f756e7479496e6465782c20426f756e7479496e646578293e000400505630546f56314368696c64426f756e74794964730401206368696c645f6964b8014c4f7074696f6e3c426f756e7479496e6465783e0005004c4368696c6472656e43757261746f72466565730401206368696c645f6964b8014c4f7074696f6e3c426f756e7479496e6465783e0006002046696e697368656400070000b90704184f7074696f6e04045401ec0108104e6f6e6500000010536f6d650400ec0000010000bd0704184f7074696f6e04045401c1070108104e6f6e6500000010536f6d650400c1070000010000c1070c4870616c6c65745f72635f6d69677261746f722463726f77646c6f616e3843726f77646c6f616e5374616765000114145365747570000000304c65617365526573657276650401206c6173745f6b6579c50701384f7074696f6e3c5061726149643e0001005443726f77646c6f616e436f6e747269627574696f6e0401206c6173745f6b6579c50701384f7074696f6e3c5061726149643e0002004043726f77646c6f616e526573657276650003002046696e697368656400040000c50704184f7074696f6e04045401b5020108104e6f6e6500000010536f6d650400b5020000010000c90704184f7074696f6e04045401cd070108104e6f6e6500000010536f6d650400cd070000010000cd070c4870616c6c65745f72635f6d69677261746f7220747265617375727934547265617375727953746167650001203450726f706f73616c436f756e740000002450726f706f73616c730400b801544f7074696f6e3c50726f706f73616c496e6465783e00010024417070726f76616c73000200285370656e64436f756e74000300185370656e64730400b801484f7074696f6e3c5370656e64496e6465783e0004003c4c6173745370656e64506572696f640005001446756e64730006002046696e697368656400070000d10704184f7074696f6e04045401d5070108104e6f6e6500000010536f6d650400d5070000010000d507104870616c6c65745f72635f6d69677261746f721c7374616b696e67307374616b696e675f696d706c305374616b696e67537461676504244163636f756e744964010001581856616c75657300000034496e76756c6e657261626c657300010018426f6e6465640400310201444f7074696f6e3c4163636f756e7449643e000200184c65646765720400310201444f7074696f6e3c4163636f756e7449643e0003001450617965650400310201444f7074696f6e3c4163636f756e7449643e0004002856616c696461746f72730400310201444f7074696f6e3c4163636f756e7449643e000500284e6f6d696e61746f72730400310201444f7074696f6e3c4163636f756e7449643e000600385669727475616c5374616b6572730400310201444f7074696f6e3c4163636f756e7449643e0007004c457261735374616b6572734f766572766965770400d90701744f7074696f6e3c28457261496e6465782c204163636f756e744964293e00080040457261735374616b65727350616765640400e107018c4f7074696f6e3c28457261496e6465782c204163636f756e7449642c2050616765293e00090038436c61696d6564526577617264730400d90701744f7074696f6e3c28457261496e6465782c204163636f756e744964293e000a00484572617356616c696461746f7250726566730400d90701744f7074696f6e3c28457261496e6465782c204163636f756e744964293e000b004c4572617356616c696461746f725265776172640400b801404f7074696f6e3c457261496e6465783e000c004045726173526577617264506f696e74730400b801404f7074696f6e3c457261496e6465783e000d003845726173546f74616c5374616b650400b801404f7074696f6e3c457261496e6465783e000e0040556e6170706c696564536c61736865730400b801404f7074696f6e3c457261496e6465783e000f0028426f6e646564457261730010004c56616c696461746f72536c617368496e4572610400d90701744f7074696f6e3c28457261496e6465782c204163636f756e744964293e0011004c4e6f6d696e61746f72536c617368496e4572610400d90701744f7074696f6e3c28457261496e6465782c204163636f756e744964293e00120034536c617368696e675370616e730400310201444f7074696f6e3c4163636f756e7449643e001300245370616e536c6173680400e90701784f7074696f6e3c284163636f756e7449642c205370616e496e646578293e0014002046696e697368656400150000d90704184f7074696f6e04045401dd070108104e6f6e6500000010536f6d650400dd070000010000dd0700000408100000e10704184f7074696f6e04045401e5070108104e6f6e6500000010536f6d650400e5070000010000e5070000040c10001000e90704184f7074696f6e04045401ed070108104e6f6e6500000010536f6d650400ed070000010000ed0700000408001000f1070c4870616c6c65745f72635f6d69677261746f721474797065733451756575655072696f72697479042c426c6f636b4e756d6265720110010c18436f6e666967000000384f76657272696465436f6e666967080010012c426c6f636b4e756d626572000010012c426c6f636b4e756d6265720001002044697361626c656400020000f5070c4870616c6c65745f72635f6d69677261746f721870616c6c65744c4d616e616765724d756c7469736967566f746504045400000c010c77686f5105015c73705f72756e74696d653a3a4d756c74695369676e657200011063616c6ca90101683c5420617320436f6e6669673e3a3a52756e74696d6543616c6c000114726f756e6410010c7533320000f90704184f7074696f6e04045401fd070108104e6f6e6500000010536f6d650400fd070000010000fd07084870616c6c65745f72635f6d69677261746f72444d6967726174696f6e53657474696e677300000801586d61785f6163636f756e74735f7065725f626c6f636bb8012c4f7074696f6e3c7533323e00014c6d61785f6974656d735f7065725f626c6f636bb8012c4f7074696f6e3c7533323e000001080c2873705f72756e74696d65187472616974732c426c616b6554776f3235360000000005080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000009080c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f74657300000d080c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74110801684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657411080418526573756c7408045401150804450119080108084f6b04001508000000000c45727204001908000001000015080c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874890601384f7074696f6e3c5765696768743e000120706179735f6665656401105061797300001908082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01150800080124706f73745f696e666f15080110496e666f0001146572726f7268013444697370617463684572726f7200001d08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f61646472657373d502013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421080c3870616c6c65745f76657374696e671870616c6c6574144576656e7404045400010c3856657374696e674372656174656408011c6163636f756e74000130543a3a4163636f756e7449640001387363686564756c655f696e64657810010c75333200000490412076657374696e67207363686564756c6520686173206265656e20637265617465642e3856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000108510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640002049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657425080c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748c01384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657429080c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c748c01384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789d01010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789d01010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706501030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e642d08012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d08083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e74730001000031080c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748c01384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e740d03017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435080c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900013038426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e304465706f736974506f6b6564100124626f756e74795f696410012c426f756e7479496e64657800012070726f706f736572000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e000b04804120626f756e7479206465706f73697420686173206265656e20706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657439080c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d080c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d707574654108013c456c656374696f6e436f6d707574650001186f726967696e310201504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564200110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c59017468652073746f72656420736f6c7574696f6e20776173207375626d697474656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d707574654108013c456c656374696f6e436f6d7075746500011473636f7265ed030134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6d4508016050686173653c426c6f636b4e756d626572466f723c543e3e000108746f4508016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65744108089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e6379000400004508089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e656404004908012828626f6f6c2c20426e2900020024456d657267656e6379000300004908000004082010004d080c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657451080c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e7404045400015c1c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f737461746519040124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f7665640c011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400014072656c65617365645f62616c616e636518013042616c616e63654f663c543e0007149841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e4901416e792066756e6473207468617420617265207374696c6c2064656c6567617465642028692e652e2064616e676c696e672064656c65676174696f6e29206172652072656c656173656420616e642061726588726570726573656e746564206279206072656c65617365645f62616c616e6365602e30526f6c6573557064617465640c0110726f6f74310201504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572310201504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72310201504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e743104017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6eb4011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174653904019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e3d0401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e704d656d626572436c61696d5065726d697373696f6e557064617465640801186d656d626572000130543a3a4163636f756e7449640001287065726d697373696f6e2d04013c436c61696d5065726d697373696f6e001204c84120706f6f6c206d656d626572277320636c61696d207065726d697373696f6e20686173206265656e20757064617465642e3c4d657461646174615570646174656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001304784120706f6f6c2773206d657461646174612077617320757064617465642e48506f6f6c4e6f6d696e6174696f6e4d61646508011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e74496400140859014120706f6f6c2773206e6f6d696e6174696e67206163636f756e7420286f722074686520706f6f6c277320726f6f74206163636f756e742920686173206e6f6d696e6174656420612076616c696461746f7220736574586f6e20626568616c66206f662074686520706f6f6c2e50506f6f6c4e6f6d696e61746f724368696c6c656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001504b854686520706f6f6c206973206368696c6c656420692e652e206e6f206c6f6e676572206e6f6d696e6174696e672e4c476c6f62616c506172616d73557064617465641801346d696e5f6a6f696e5f626f6e6418013042616c616e63654f663c543e00013c6d696e5f6372656174655f626f6e6418013042616c616e63654f663c543e0001246d61785f706f6f6c73b8012c4f7074696f6e3c7533323e00012c6d61785f6d656d62657273b8012c4f7074696f6e3c7533323e0001506d61785f6d656d626572735f7065725f706f6f6cb8012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e5508013c4f7074696f6e3c50657262696c6c3e0016040101476c6f62616c20706172616d657465727320726567756c6174696e67206e6f6d696e6174696f6e20706f6f6c732068617665206265656e20757064617465642e04584576656e7473206f6620746869732070616c6c65742e550804184f7074696f6e04045401b40108104e6f6e6500000010536f6d650400b4000001000059080c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c748c01384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173190201345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d080c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144576656e740404540001102444656c6567617465640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000047c46756e64732064656c65676174656420627920612064656c656761746f722e2052656c65617365640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001047846756e64732072656c656173656420746f20612064656c656761746f722e1c536c61736865640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002047c46756e647320736c61736865642066726f6d20612064656c656761746f722e484d6967726174656444656c65676174696f6e0c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304c4556e636c61696d65642064656c65676174696f6e2066756e6473206d6967726174656420746f2064656c656761746f722e047c54686520604576656e746020656e756d206f6620746869732070616c6c657461080c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c6574144576656e740404540001105056616c696461746f725365745265636569766564100108696410010c75333200015c6e65775f76616c696461746f725f7365745f636f756e7410010c75333200012c7072756e655f75705f746fb801504f7074696f6e3c53657373696f6e496e6465783e0001206c6566746f766572200110626f6f6c0000049841206e65772076616c696461746f722073657420686173206265656e2072656365697665642e5c436f756c644e6f744d65726765416e6444726f70706564000110f4576520636f756c64206e6f74206d657267652c20616e64207468657265666f72652064726f707065642061206275666665726564206d6573736167652e0055014e6f746520746861742074686973206576656e74206973206d6f726520726573656d626c696e6720616e206572726f722c206275742077652075736520616e206576656e74206265636175736520696e2074686973d070616c6c6574207765206e65656420746f206d75746174652073746f726167652075706f6e20736f6d65206661696c757265732e54536574546f6f536d616c6c416e6444726f70706564000208cc5468652076616c696461746f72207365742072656365697665642069732077617920746f6f20736d616c6c2c20617320706572905b60436f6e6669673a3a4d696e696d756d56616c696461746f7253657453697a65605d2e28556e6578706563746564040065080138556e65787065637465644b696e640003085901536f6d657468696e67206f6363757272656420746861742073686f756c64206e657665722068617070656e20756e646572206e6f726d616c206f7065726174696f6e2e204c6f6767656420617320616e206576656e7470666f72206661696c2d73616665206f62736572766162696c6974792e047c54686520604576656e746020656e756d206f6620746869732070616c6c657465080c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c657438556e65787065637465644b696e6400011880526563656976656456616c696461746f725365745768696c655061737369766500000060556e65787065637465644d6f64655472616e736974696f6e0001005c53657373696f6e5265706f727453656e644661696c65640002005053657373696f6e5265706f727444726f70706564000300444f6666656e636553656e644661696c65640004005456616c696461746f72506f696e7444726f70706564000500006908106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144576656e740404540001103c43616e6469646174654261636b656410006d08016443616e646964617465526563656970743c543a3a486173683e0000dd0401204865616444617461000071080124436f7265496e64657800007508012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c7564656410006d08016443616e646964617465526563656970743c543a3a486173683e0000dd0401204865616444617461000071080124436f7265496e64657800007508012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c006d08016443616e646964617465526563656970743c543a3a486173683e0000dd0401204865616444617461000071080124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d60585570776172644d65737361676573526563656976656408011066726f6db5020118506172614964000114636f756e7410010c753332000304f8536f6d6520757077617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746d080c4c706f6c6b61646f745f7072696d697469766573207673746167696e674843616e64696461746552656365697074563204044801340008012864657363726970746f72b104016043616e64696461746544657363726970746f7256323c483e000140636f6d6d69746d656e74735f6861736834011048617368000071080c4c706f6c6b61646f745f7072696d69746976657308763824436f7265496e6465780000040010010c753332000075080c4c706f6c6b61646f745f7072696d6974697665730876382847726f7570496e6465780000040010010c75333200007908106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144576656e740404540001284843757272656e74436f6465557064617465640400b5020118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e7448656164557064617465640400b5020118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c65640400b5020118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f7465640400b5020118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e5175657565640800b5020118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f6964603c507666436865636b537461727465640800bd04014856616c69646174696f6e436f6465486173680000b5020118506172614964000508550154686520676976656e20706172612065697468657220696e69746961746564206f72207375627363726962656420746f20612050564620636865636b20666f722074686520676976656e2076616c69646174696f6e6c636f64652e2060636f64655f68617368602060706172615f69646040507666436865636b41636365707465640800bd04014856616c69646174696f6e436f6465486173680000b5020118506172614964000608110154686520676976656e2076616c69646174696f6e20636f6465207761732061636365707465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f69646040507666436865636b52656a65637465640800bd04014856616c69646174696f6e436f6465486173680000b5020118506172614964000708110154686520676976656e2076616c69646174696f6e20636f6465207761732072656a65637465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f6964605855706772616465436f6f6c646f776e52656d6f76656404011c706172615f6964b502011850617261496404c45468652070617261636861696e20666f722077686963682074686520636f6f6c646f776e20676f742072656d6f7665642e080484546865207570677261646520636f6f6c646f776e207761732072656d6f7665642e38436f6465417574686f72697a65640c011c706172615f6964b50201185061726149640410506172610124636f64655f68617368bd04014856616c69646174696f6e436f6465486173680454417574686f72697a656420636f646520686173682e01246578706972655f6174100144426c6f636b4e756d626572466f723c543e04e4426c6f636b20617420776869636820617574686f72697a6174696f6e206578706972657320616e642077696c6c2062652072656d6f7665642e0904bc41206e657720636f6465206861736820686173206265656e20617574686f72697a656420666f72206120506172612e047c54686520604576656e746020656e756d206f6620746869732070616c6c65747d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144576656e7404045400011c504f70656e4368616e6e656c52657175657374656410011873656e646572b5020118506172614964000124726563697069656e74b502011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000004704f70656e2048524d50206368616e6e656c207265717565737465642e4c4f70656e4368616e6e656c43616e63656c656408013062795f70617261636861696eb50201185061726149640001286368616e6e656c5f69641d05013448726d704368616e6e656c49640001042901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e4c4f70656e4368616e6e656c416363657074656408011873656e646572b5020118506172614964000124726563697069656e74b50201185061726149640002046c4f70656e2048524d50206368616e6e656c2061636365707465642e344368616e6e656c436c6f73656408013062795f70617261636861696eb50201185061726149640001286368616e6e656c5f69641d05013448726d704368616e6e656c49640003045048524d50206368616e6e656c20636c6f7365642e5848726d704368616e6e656c466f7263654f70656e656410011873656e646572b5020118506172614964000124726563697069656e74b502011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000404ac416e2048524d50206368616e6e656c20776173206f70656e65642076696120526f6f74206f726967696e2e5c48726d7053797374656d4368616e6e656c4f70656e656410011873656e646572b5020118506172614964000124726563697069656e74b502011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000504bc416e2048524d50206368616e6e656c20776173206f70656e6564207769746820612073797374656d20636861696e2e684f70656e4368616e6e656c4465706f736974735570646174656408011873656e646572b5020118506172614964000124726563697069656e74b5020118506172614964000604a0416e2048524d50206368616e6e656c2773206465706f73697473207765726520757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748108106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144576656e7404045400010c4044697370757465496e697469617465640800f104013443616e6469646174654861736800008508013c446973707574654c6f636174696f6e000004090141206469737075746520686173206265656e20696e697469617465642e205c5b63616e64696461746520686173682c2064697370757465206c6f636174696f6e5c5d4044697370757465436f6e636c756465640800f104013443616e6469646174654861736800008908013444697370757465526573756c74000108cc4120646973707574652068617320636f6e636c7564656420666f72206f7220616761696e737420612063616e6469646174652eb4605c5b706172612069642c2063616e64696461746520686173682c206469737075746520726573756c745c5d60185265766572740400100144426c6f636b4e756d626572466f723c543e000210fc4120646973707574652068617320636f6e636c7564656420776974682073757065726d616a6f7269747920616761696e737420612063616e6469646174652e0d01426c6f636b20617574686f72732073686f756c64206e6f206c6f6e676572206275696c64206f6e20746f70206f662074686973206865616420616e642073686f756c640101696e7374656164207265766572742074686520626c6f636b2061742074686520676976656e206865696768742e20546869732073686f756c6420626520746865fc6e756d626572206f6620746865206368696c64206f6620746865206c617374206b6e6f776e2076616c696420626c6f636b20696e2074686520636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657485080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733c446973707574654c6f636174696f6e000108144c6f63616c0000001852656d6f74650001000089080c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465733444697370757465526573756c740001081456616c69640000001c496e76616c6964000100008d08106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641870616c6c6574144576656e7404045400010c4c4f6e44656d616e644f72646572506c616365640c011c706172615f6964b502011850617261496400012873706f745f707269636518013042616c616e63654f663c543e0001286f7264657265645f6279000130543a3a4163636f756e7449640000040d01416e206f726465722077617320706c6163656420617420736f6d652073706f7420707269636520616d6f756e74206279206f726465726572206f7264657265645f62793053706f74507269636553657404012873706f745f707269636518013042616c616e63654f663c543e000104b85468652076616c7565206f66207468652073706f7420707269636520686173206c696b656c79206368616e6765643c4163636f756e74437265646974656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00020474416e206163636f756e742077617320676976656e20637265646974732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749108105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144576656e74040454000110285265676973746572656408011c706172615f6964b502011850617261496400011c6d616e61676572000130543a3a4163636f756e7449640000003044657265676973746572656404011c706172615f6964b502011850617261496400010020526573657276656408011c706172615f6964b502011850617261496400010c77686f000130543a3a4163636f756e7449640002001c5377617070656408011c706172615f6964b50201185061726149640001206f746865725f6964b5020118506172614964000300047c54686520604576656e746020656e756d206f6620746869732070616c6c65749508105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144576656e74040454000108384e65774c65617365506572696f640401306c656173655f706572696f641001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c656173656418011c706172615f6964b50201185061726149640001186c6561736572000130543a3a4163636f756e744964000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e00010c35014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612070617261636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749908105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c013461756374696f6e5f696e64657810013041756374696f6e496e6465780001306c656173655f706572696f641001404c65617365506572696f644f663c543e000118656e64696e67100144426c6f636b4e756d626572466f723c543e0000084901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f73656404013461756374696f6e5f696e64657810013041756374696f6e496e646578000104b8416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e2052657365727665640c0118626964646572000130543a3a4163636f756e74496400013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e505365636f6e642069732074686520746f74616c2e28556e7265736572766564080118626964646572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c011c706172615f6964b50201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0004085501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612070617261636861696e2e2054686520616d6f756e742069732068656c6420696eb87265736572766520627574206e6f2070617261636861696e20736c6f7420686173206265656e206c65617365642e2c4269644163636570746564140118626964646572000130543a3a4163636f756e74496400011c706172615f6964b5020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00012866697273745f736c6f741001404c65617365506572696f644f663c543e0001246c6173745f736c6f741001404c65617365506572696f644f663c543e000504c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722e3457696e6e696e674f666673657408013461756374696f6e5f696e64657810013041756374696f6e496e646578000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e00060859015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765106d61702e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d08105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144576656e740404540001281c4372656174656404011c706172615f6964b50201185061726149640000048c4372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e2c436f6e74726962757465640c010c77686f000130543a3a4163636f756e74496400012866756e645f696e646578b5020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00010470436f6e747269627574656420746f20612063726f77642073616c652e2057697468647265770c010c77686f000130543a3a4163636f756e74496400012866756e645f696e646578b5020118506172614964000118616d6f756e7418013042616c616e63654f663c543e0002049c57697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e445061727469616c6c79526566756e64656404011c706172615f6964b50201185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674b46f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e2c416c6c526566756e64656404011c706172615f6964b50201185061726149640004049c416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e24446973736f6c76656404011c706172615f6964b50201185061726149640005044846756e6420697320646973736f6c7665642e3c48616e646c65426964526573756c7408011c706172615f6964b5020118506172614964000118726573756c748c01384469737061746368526573756c74000604f454686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070616c6c65742e1845646974656404011c706172615f6964b5020118506172614964000704c454686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e2c4d656d6f557064617465640c010c77686f000130543a3a4163636f756e74496400011c706172615f6964b50201185061726149640001106d656d6f38011c5665633c75383e0008046041206d656d6f20686173206265656e20757064617465642e3c4164646564546f4e6577526169736504011c706172615f6964b5020118506172614964000904a0412070617261636861696e20686173206265656e206d6f76656420746f20604e6577526169736560047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a108106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c6574144576656e7404045400010850526576656e7565496e666f5265717565737465640401107768656e100144426c6f636b4e756d626572466f723c543e00000421015468652062726f6b657220636861696e206861732061736b656420666f7220726576656e756520696e666f726d6174696f6e20666f72206120737065636966696320626c6f636b2e30436f726541737369676e6564040110636f726571080124436f7265496e646578000104ec4120636f7265206861732072656365697665642061206e65772061737369676e6d656e742066726f6d207468652062726f6b657220636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a5080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465a90801404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f72ad0801204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742ea9080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f00010000ad080c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb1080c2870616c6c65745f78636d1870616c6c6574144576656e7404045400017424417474656d7074656404011c6f7574636f6d65b508015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696e550101204c6f636174696f6e00012c64657374696e6174696f6e550101204c6f636174696f6e00011c6d6573736167654506011c58636d3c28293e0001286d6573736167655f696404011c58636d4861736800010460416e2058434d206d657373616765207761732073656e742e2853656e644661696c65641001186f726967696e550101204c6f636174696f6e00012c64657374696e6174696f6e550101204c6f636174696f6e0001146572726f72bd08012453656e644572726f720001286d6573736167655f696404011c58636d4861736800020478416e2058434d206d657373616765206661696c656420746f2073656e642e3c50726f6365737358636d4572726f720c01186f726967696e550101204c6f636174696f6e0001146572726f727106012058636d4572726f720001286d6573736167655f696404011c58636d4861736800030484416e2058434d206d657373616765206661696c656420746f2070726f636573732e48556e6578706563746564526573706f6e73650801186f726967696e550101204c6f636174696f6e00012071756572795f696430011c5175657279496400040c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e736565060120526573706f6e73650005085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400070c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380008085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013070616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800090c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696e550101204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6e850601404f7074696f6e3c4c6f636174696f6e3e000a0c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696e550101204c6f636174696f6e00012071756572795f696430011c51756572794964000b1c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000c04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696e550101204c6f636174696f6e000118617373657473bd06013c56657273696f6e6564417373657473000d04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6e550101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374510601184173736574730001286d6573736167655f696404011c58636d48617368000e0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6e550101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000f08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6e550101204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f727106012058636d4572726f7200100859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6e8d01014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c5175657279496400110859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696e550101204c6f636174696f6e00012071756572795f696430011c5175657279496400121c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696e550101204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f71756572696572550101204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572850601404f7074696f6e3c4c6f636174696f6e3e00130c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6e550101204c6f636174696f6e000110636f7374510601184173736574730001286d6573736167655f696404011c58636d486173680014085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6e550101204c6f636174696f6e000110636f7374510601184173736574730001286d6573736167655f696404011c58636d486173680015043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6e550101204c6f636174696f6e000110636f7374510601184173736574730001286d6573736167655f696404011c58636d4861736800160825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e67550101204c6f636174696f6e0001106665657351060118417373657473001704310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696e550101204c6f636174696f6e000118617373657473bd06013c56657273696f6e6564417373657473001804c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00190484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e3c416c696173417574686f72697a65640c011c616c6961736572550101204c6f636174696f6e000118746172676574550101204c6f636174696f6e000118657870697279f506012c4f7074696f6e3c7536343e001a085d01416e2060616c696173657260206c6f636174696f6e2077617320617574686f72697a656420627920607461726765746020746f20616c6961732069742c20617574686f72697a6174696f6e2076616c696420756e74696c58606578706972796020626c6f636b206e756d6265722e64416c696173417574686f72697a6174696f6e52656d6f76656408011c616c6961736572550101204c6f636174696f6e000118746172676574550101204c6f636174696f6e001b04cc60746172676574602072656d6f76656420616c69617320617574686f72697a6174696f6e20666f722060616c6961736572602e70416c6961736573417574686f72697a6174696f6e7352656d6f766564040118746172676574550101204c6f636174696f6e001c04a860746172676574602072656d6f76656420616c6c20616c69617320617574686f72697a6174696f6e732e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b508102c73746167696e675f78636d087635187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f72b9080140496e737472756374696f6e4572726f72000100144572726f720400b9080140496e737472756374696f6e4572726f7200020000b908102c73746167696e675f78636d0876351874726169747340496e737472756374696f6e4572726f720000080114696e646578080140496e737472756374696f6e496e6465780001146572726f72710601144572726f720000bd08100c78636d087633187472616974732453656e644572726f7200011c344e6f744170706c696361626c65000000245472616e73706f727400010028556e726f757461626c650002005844657374696e6174696f6e556e737570706f7274656400030054457863656564734d61784d65737361676553697a650004003c4d697373696e67417267756d656e74000500104665657300060000c1080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696efd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f72c508014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696efd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696efd0601484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696efd0601484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c50810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d69745265616368656400050000c9080c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e64ec0130543a3a41737365744b696e6400011072617465090701244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e64ec0130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e64ec0130543a3a41737365744b696e6400010c6f6c640907012446697865645531323800010c6e657709070124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd080c4870616c6c65745f72635f6d69677261746f721870616c6c6574144576656e740404540001543c53746167655472616e736974696f6e08010c6f6c644907014c4d6967726174696f6e53746167654f663c543e0490546865206f6c64207374616765206265666f726520746865207472616e736974696f6e2e010c6e65774907014c4d6967726174696f6e53746167654f663c543e048c546865206e657720737461676520616674657220746865207472616e736974696f6e2e00048041207374616765207472616e736974696f6e20686173206f636375727265642e6041737365744875624d6967726174696f6e53746172746564000118490154686520417373657420487562204d6967726174696f6e207374617274656420616e642069732061637469766520756e74696c206041737365744875624d6967726174696f6e46696e69736865646020697320656d69747465642e00550154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a20496e697469616c697a696e672c202e2e207d6020627574206973206561736965722d01746f20756e6465727374616e642e205468652061637469766174696f6e20697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e6441737365744875624d6967726174696f6e46696e69736865640002148454686520417373657420487562204d6967726174696f6e2066696e69736865642e00590154686973206576656e74206973206571756976616c656e7420746f206053746167655472616e736974696f6e207b206e65773a204d6967726174696f6e446f6e652c202e2e207d6020627574206973206561736965722901746f20756e6465727374616e642e205468652066696e697368696e6720697320696d6d65646961746520616e64206166666563747320616c6c206576656e74732068617070656e696e672c616674657277617264732e545175657279526573706f6e7365526563656976656408012071756572795f696430010c75363404345468652071756572792049442e0120726573706f6e7365d50501384d617962654572726f72436f6465043454686520726573706f6e73652e03048c4120717565727920726573706f6e736520686173206265656e2072656365697665642e4058636d526573656e64417474656d707408012071756572795f696430010c75363404345468652071756572792049442e012873656e645f6572726f72d10801444f7074696f6e3c53656e644572726f723e0448546865206572726f72206d6573736167652e040478412058434d206d65737361676520686173206265656e20726573656e742e5c556e70726f6365737365644d736742756666657253657408010c6e657710010c7533320434546865206e65772073697a652e010c6f6c6410010c7533320434546865206f6c642073697a652e0504c454686520756e70726f636573736564206d657373616765206275666665722073697a6520686173206265656e207365742e544168556d7051756575655072696f726974795365740c012c7072696f726974697a6564200110626f6f6c0cec496e6469636174657320696620414820554d5020717565756520776173207375636365737366756c6c7920736574206173207072696f726974792e2d014966206066616c7365602c206974206d65616e7320776527726520696e2074686520726f756e642d726f62696e207068617365206f66206f7572207072696f72697479207061747465726e290128736565205b60436f6e6669673a3a4168556d7051756575655072696f726974795061747465726e605d292c207768657265206e6f2071756575652067657473207072696f726974792e012c6379636c655f626c6f636b100144426c6f636b4e756d626572466f723c543e04f043757272656e7420626c6f636b206e756d6265722077697468696e20746865207061747465726e206379636c6520283120746f20706572696f64292e01306379636c655f706572696f64100144426c6f636b4e756d626572466f723c543e04ac546f74616c206e756d626572206f6620626c6f636b7320696e20746865207061747465726e206379636c650604f0576865746865722074686520414820554d5020717565756520776173207072696f726974697a656420666f7220746865206e65787420626c6f636b2e6c4168556d7051756575655072696f72697479436f6e66696753657408010c6f6c64f10701944168556d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206f6c64207072696f72697479207061747465726e2e010c6e6577f10701944168556d7051756575655072696f726974793c426c6f636b4e756d626572466f723c543e3e0464546865206e6577207072696f72697479207061747465726e2e0704a454686520414820554d50207175657565207072696f7269747920636f6e66696720776173207365742e604d6967726174656442616c616e63655265636f72645365740801106b657074180128543a3a42616c616e63650001206d69677261746564180128543a3a42616c616e63650008048054686520746f74616c2069737375616e636520776173207265636f726465642e5c4d6967726174656442616c616e6365436f6e73756d65640801106b657074180128543a3a42616c616e63650001206d69677261746564180128543a3a42616c616e636500090484546865205243206b6570742062616c616e63652077617320636f6e73756d65642e284d616e6167657253657408010c6f6c64310201504f7074696f6e3c543a3a4163636f756e7449643e046c546865206f6c64206d616e61676572206163636f756e742069642e010c6e6577310201504f7074696f6e3c543a3a4163636f756e7449643e046c546865206e6577206d616e61676572206163636f756e742069642e0a047c546865206d616e61676572206163636f756e7420696420776173207365742e1c58636d53656e741001186f726967696e550101204c6f636174696f6e00012c64657374696e6174696f6e550101204c6f636174696f6e00011c6d6573736167654506011c58636d3c28293e0001286d6573736167655f696404011c58636d48617368000b0460416e2058434d206d657373616765207761732073656e742e585374616b696e67456c656374696f6e73506175736564000c0488546865207374616b696e6720656c656374696f6e732077657265207061757365642e444163636f756e74735072657365727665640401206163636f756e7473050201445665633c543a3a4163636f756e7449643e0490546865206163636f756e747320746861742077696c6c206265207072657365727665642e0d04d4546865206163636f756e747320746f20626520707265736572766564206f6e2052656c617920436861696e2077657265207365742e3043616e63656c6c657253657408010c6f6c64310201504f7074696f6e3c543a3a4163636f756e7449643e0474546865206f6c642063616e63656c6c6572206163636f756e742069642e010c6e6577310201504f7074696f6e3c543a3a4163636f756e7449643e0474546865206e65772063616e63656c6c6572206163636f756e742069642e0e04845468652063616e63656c6c6572206163636f756e7420696420776173207365742e3c4d6967726174696f6e50617573656404012c70617573655f73746167654907014c4d6967726174696f6e53746167654f663c543e04b054686520737461676520617420776869636820746865206d6967726174696f6e20776173207061757365642e0f0464546865206d6967726174696f6e20776173207061757365642e484d6967726174696f6e43616e63656c6c656400100470546865206d6967726174696f6e207761732063616e63656c6c65642e4c507572654163636f756e7473496e64657865640401446e756d5f707572655f6163636f756e747310010c7533320490546865206e756d626572206f6620696e64657865642070757265206163636f756e74732e11042901536f6d652070757265206163636f756e7473207765726520696e646578656420666f7220706f737369626c7920726563656976696e6720667265652060416e79602070726f786965732e644d616e616765724d756c74697369674469737061746368656404010c7265738c01384469737061746368526573756c74001204a8546865206d616e61676572206d756c7469736967206469737061746368656420736f6d657468696e672e504d616e616765724d756c7469736967566f746564040114766f74657310010c75333200130494546865206d616e61676572206d756c7469736967207265636569766564206120766f74652e504d6967726174696f6e53657474696e677353657408010c6f6c64f90701644f7074696f6e3c4d6967726174696f6e53657474696e67733e046c546865206f6c64206d6967726174696f6e2073657474696e67732e010c6e6577f90701644f7074696f6e3c4d6967726174696f6e53657474696e67733e046c546865206e6577206d6967726174696f6e2073657474696e67732e140480546865206d6967726174696f6e2073657474696e67732077657265207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d10804184f7074696f6e04045401bd080108104e6f6e6500000010536f6d650400bd080000010000d50808306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000d9080000028400dd0808306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6efc014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65e1080144436f773c277374617469632c207374723e0000e108040c436f7704045401e508000400e508000000e5080000050200e90808306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000ed080c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373f10801845065724469737061746368436c6173733c57656967687473506572436c6173733e0000f1080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401f508000c01186e6f726d616cf50801045400012c6f7065726174696f6e616cf5080104540001246d616e6461746f7279f5080104540000f5080c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963890601384f7074696f6e3c5765696768743e0001246d61785f746f74616c890601384f7074696f6e3c5765696768743e0001207265736572766564890601384f7074696f6e3c5765696768743e0000f9080c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178fd0801545065724469737061746368436c6173733c7533323e0000fd080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400000109082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c75363400000509082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65e1080144436f773c277374617469632c207374723e000124696d706c5f6e616d65e1080144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c753332000110617069730909011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e080108753800000909040c436f77040454010d090004000d090000000d09000002110900110900000408b105100015090c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c657419090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d09045300000400250901185665633c543e00001d0904184f7074696f6e0404540121090108104e6f6e6500000010536f6d650400210900000100002109084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c01a5012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01a502244163636f756e7449640100001401206d617962655f69648801304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ca501011043616c6c0001386d617962655f706572696f646963c10101944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696ea502013450616c6c6574734f726967696e000025090000021d09002909084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f6400002d090c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3109083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f73697409040150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974350901704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656eb8012c4f7074696f6e3c7533323e00010000350904184f7074696f6e0404540109040108104e6f6e6500000010536f6d650400090400000100003909083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b6574013d0901082c556e7265717565737465640801187469636b65744109014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b65744509016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656eb8012c4f7074696f6e3c7533323e000100003d0914346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000410900000408003d0900450904184f7074696f6e0404540141090108104e6f6e6500000010536f6d6504004109000001000049090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00004d090c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e51090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454015509045300000400590901185665633c543e0000550900000408d901300059090000025509005d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400610901185665633c543e000061090000020400650904184f7074696f6e0404540169090108104e6f6e6500000010536f6d6504006909000001000069090c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d61727904006d0901405072696d617279507265446967657374000100385365636f6e64617279506c61696e04007509015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400790901545365636f6e64617279565246507265446967657374000300006d090c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74dd010110536c6f740001347672665f7369676e6174757265710901305672665369676e617475726500007109101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f667d02012056726650726f6f66000075090c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74dd010110536c6f74000079090c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f74dd010110536c6f740001347672665f7369676e6174757265710901305672665369676e617475726500007d09084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e000008010463e9010128287536342c2075363429000134616c6c6f7765645f736c6f7473ed010130416c6c6f776564536c6f7473000081090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018509045300000400890901185665633c543e000085090000040830100089090000028509008d090c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e91090000040c0018200095090c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e99090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454019d09045300000400a50901185665633c543e00009d090c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964b10501384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e73a109011c526561736f6e730000a1090c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000a5090000029d0900a9090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ad09045300000400b10901185665633c543e0000ad090c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201b1051c42616c616e63650118000801086964b1050144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000b109000002ad0900b5090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b909045300000400d90901185665633c543e0000b90914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401bd091c42616c616e63650118000801086964bd0901084964000118616d6f756e7418011c42616c616e63650000bd090840706f6c6b61646f745f72756e74696d654452756e74696d65486f6c64526561736f6e00011820507265696d6167650400c109016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e000a001c5374616b696e670400c509016870616c6c65745f7374616b696e673a3a486f6c64526561736f6e0007001c53657373696f6e0400c909016870616c6c65745f73657373696f6e3a3a486f6c64526561736f6e0009004044656c6567617465645374616b696e670400cd09019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e002900485374617465547269654d6967726174696f6e0400d109019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e0062002458636d50616c6c65740400d509015870616c6c65745f78636d3a3a486f6c64526561736f6e00630000c1090c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d61676500000000c509103870616c6c65745f7374616b696e671870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e6700000000c9090c3870616c6c65745f73657373696f6e1870616c6c657428486f6c64526561736f6e000104104b65797300000000cd090c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c657428486f6c64526561736f6e000104445374616b696e6744656c65676174696f6e00000000d1090c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d69677261746500000000d5090c2870616c6c65745f78636d1870616c6c657428486f6c64526561736f6e00010438417574686f72697a65416c69617300000000d909000002b90900dd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e109045300000400ed0901185665633c543e0000e10914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401e5091c42616c616e63650118000801086964e50901084964000118616d6f756e7418011c42616c616e63650000e5090840706f6c6b61646f745f72756e74696d654c52756e74696d65467265657a65526561736f6e0001043c4e6f6d696e6174696f6e506f6f6c730400e909019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e00270000e9090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e636500000000ed09000002e10900f1090c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef509086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000f909083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616c0d01013042616c616e63654f663c543e0001186163746976650d01013042616c616e63654f663c543e000124756e6c6f636b696e673d0201f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f72657761726473fd090194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e0000fd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190201185665633c543e0000010a083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473050a01b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000050a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400050201185665633c543e0000090a083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274f506012c4f7074696f6e3c7536343e00000d0a082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616c0d01011c42616c616e636500010c6f776e0d01011c42616c616e63650001186f7468657273110a01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000110a000002150a00150a082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75650d01011c42616c616e63650000190a082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616c0d01011c42616c616e636500010c6f776e0d01011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e741001105061676500001d0a082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616c0d01011c42616c616e63650001186f7468657273110a01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000210a083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c250a018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e0000250a042042547265654d617008044b010004560110000400290a000000290a000002ed07002d0a000002310a00310a083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273050401645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f7274657273050201385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000350a00000408b41800390a0c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72190201345665633c457261496e6465783e00003d0a0c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e63650000410a103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000188344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001f04f4537461736820636f756c64206e6f7420626520726561706564206173206f746865722070616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d696772617465640020040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e285265737472696374656400210859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e450a0c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e64657201490a000801206f6666656e646572490a01204f6666656e6465720001247265706f7274657273050201345665633c5265706f727465723e0000490a00000408000d0a004d0a00000408cc3800510a000002550a00550a00000408004d0200590a0000025d0a005d0a0000040810610a00610a0c2873705f7374616b696e671c6f6666656e63653c4f6666656e6365536576657269747900000400b4011c50657262696c6c0000650a00000408690a3800690a0c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00006d0a0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e710a083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000750a083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573790a016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564b801244f7074696f6e3c4e3e0000790a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401e0045300000400dc01185665633c543e00007d0a0c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810a0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454015902045300000400850a01185665633c543e0000850a000002590200890a083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500008d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190201185665633c543e0000910a083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401ec30417373657442616c616e636501182c42656e6566696369617279018d012c426c6f636b4e756d6265720110245061796d656e74496401300018012861737365745f6b696e64ec012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e65666963696172798d01012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573950a015c5061796d656e7453746174653c5061796d656e7449643e0000950a083c70616c6c65745f7472656173757279305061796d656e745374617465040849640130010c1c50656e64696e6700000024417474656d7074656404010869643001084964000100184661696c656400020000990a0c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200009d0a08346672616d655f737570706f72742050616c6c6574496400000400b105011c5b75383b20385d0000a10a0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742ea50a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400a90a01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400c10a01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000a90a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573ad0a01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73b90a015044656c65676174696f6e733c42616c616e63653e0001147072696f72bd0a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000ad0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10a045300000400b50a01185665633c543e0000b10a0000040810950100b50a000002b10a00b90a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000bd0a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000c10a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e99020128436f6e76696374696f6e00012c64656c65676174696f6e73b90a015044656c65676174696f6e733c42616c616e63653e0001147072696f72bd0a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000c50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c90a045300000400cd0a01185665633c543e0000c90a000004089d011800cd0a000002c90a00d10a0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed50a0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b4964019d013452756e74696d654f726967696e01a502184d6f6d656e7401101043616c6c01a5011c42616c616e636501181454616c6c79010908244163636f756e74496401003c5363686564756c6541646472657373018401181c4f6e676f696e670400d90a018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e740000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e740000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e740000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e740000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0000e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000d90a0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b4964019d013452756e74696d654f726967696e01a502184d6f6d656e7401101043616c6c01a5011c42616c616e636501181454616c6c79010908244163636f756e74496401003c5363686564756c65416464726573730184002c0114747261636b9d01011c547261636b49640001186f726967696ea502013452756e74696d654f726967696e00012070726f706f73616ca501011043616c6c000124656e6163746d656e74bd020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974dd0a016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f736974e10a018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67e50a01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c790908011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726ded0a01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000dd0a0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000e10a04184f7074696f6e04045401dd0a0108104e6f6e6500000010536f6d650400dd0a0000010000e50a04184f7074696f6e04045401e90a0108104e6f6e6500000010536f6d650400e90a0000010000e90a0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e67b8014c4f7074696f6e3c426c6f636b4e756d6265723e0000ed0a04184f7074696f6e04045401f10a0108104e6f6e6500000010536f6d650400f10a0000010000f10a00000408108400f50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f90a045300000400fd0a01185665633c543e0000f90a00000408101800fd0a000002f90a00010b000002050b00050b000004089d01090b00090b0c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501e508002401106e616d65e50801104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c0d0b0114437572766500012c6d696e5f737570706f72740d0b0114437572766500000d0b0c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468b4011c50657262696c6c000114666c6f6f72b4011c50657262696c6c0001106365696cb4011c50657262696c6c000000445374657070656444656372656173696e67100114626567696eb4011c50657262696c6c00010c656e64b4011c50657262696c6c00011073746570b4011c50657262696c6c000118706572696f64b4011c50657262696c6c000100285265636970726f63616c0c0118666163746f72110b01204669786564493634000120785f6f6666736574110b01204669786564493634000120795f6f6666736574110b0120466978656449363400020000110b0c3473705f61726974686d657469632c66697865645f706f696e7420466978656449363400000400150b010c6936340000150b0000050c00190b0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0b0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210b105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d731870616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e250b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401ed02045300000400290b01185665633c543e0000290b000002ed02002d0b083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000310b0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e350b0c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e390b000004083d0b18003d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401410b045300000400450b01185665633c543e0000410b083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650101032c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970650103012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000450b000002410b00490b000004084d0b18004d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401510b045300000400550b01185665633c543e0000510b083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000550b000002510b00590b0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e5d0b083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e0d03015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73610b018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000610b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540100045300000400050201185665633c543e0000650b0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690b083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e63650001187374617475736d0b0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00006d0b083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d6265720110011c2050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720005004c417070726f7665645769746843757261746f7204011c63757261746f720001244163636f756e74496400060000710b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000750b0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e2c4e6f7450726f706f736572000b049c55736572206973206e6f74207468652070726f706f736572206f662074686520626f756e74792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e790b085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e63650001187374617475737d0b01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e00007d0b085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d62657200030000810b0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e850b089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0c244163636f756e74496400284d617857696e6e657273004c4d61784261636b65727350657257696e6e657200000c0120737570706f727473890b01ec426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572732c204d61784261636b65727350657257696e6e65723e00011473636f7265ed030134456c656374696f6e53636f726500011c636f6d707574654108013c456c656374696f6e436f6d707574650000890b087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f72743c426f756e646564537570706f7274730c244163636f756e744964010018424f75746572001842496e6e6572000004008d0b010901426f756e6465645665633c284163636f756e7449642c20426f756e646564537570706f72743c4163636f756e7449642c2042496e6e65723e292c20424f757465723e00008d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401910b0453000004009d0b01185665633c543e0000910b0000040800950b00950b087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f727438426f756e646564537570706f727408244163636f756e744964010014426f756e640000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273990b01bc426f756e6465645665633c284163636f756e7449642c20457874656e64656442616c616e6365292c20426f756e643e0000990b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400050401185665633c543e00009d0b000002910b00a10b089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e744964010024566f7465725479706501a50b00080118766f74657273a90b01385665633c566f746572547970653e00011c74617267657473050201385665633c4163636f756e7449643e0000a50b0000040c0030050a00a90b000002a50b00ad0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10b045300000400b50b01185665633c543e0000b10b0000040ced03101000b50b000002b10b00b90b0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e0121030010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6e1d030154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e63650000bd0b0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b85375626d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732ec10b0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576310201504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874310201504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000c50b0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164310201504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c310201504f7074696f6e3c543a3a4163636f756e7449643e0000c90b0000023000cd0b0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000108104c6973740400d10b01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e184c6f636b6564000104d8436f756c64206e6f74207570646174652061206e6f64652c2062656361757365207468652070616c6c6574206973206c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10b0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000114244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e64000300184c6f636b656400040000d50b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e74657209070140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173d90b01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000d90b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400dd0b013842547265654d61703c4b2c20563e0000dd0b042042547265654d617008044b011004560118000400fd0a000000e10b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6ee50b0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573ed0b015c506f6f6c526f6c65733c543a3a4163636f756e7449643e000114737461746519040124506f6f6c53746174650000e50b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e743104017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d61785508013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465e90b01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6db801644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6e3d0401bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000e90b04184f7074696f6e0404540139040108104e6f6e6500000010536f6d65040039040000010000ed0b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74310201444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72310201444f7074696f6e3c4163636f756e7449643e00011c626f756e636572310201444f7074696f6e3c4163636f756e7449643e0000f10b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e74657209070140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000f50b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261f90b0134556e626f6e64506f6f6c3c543e000120776974685f657261fd0b010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000f90b085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000fd0b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601f90b045300000400010c013842547265654d61703c4b2c20563e0000010c042042547265654d617008044b0110045601f90b000400050c000000050c000002090c00090c0000040810f90b000d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000110c0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019830506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400150c0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e2c536c617368546f6f4c6f77002104a854686520736c61736820616d6f756e7420697320746f6f206c6f7720746f206265206170706c6965642e3c416c72656164794d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002304150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002404f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e285265737472696374656400250851014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e20706f6f6c732e2054686973206d61792068617070656e20696620746865206163636f756e742069737c7374616b696e6720696e20616e6f746865722077617920616c72656164792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150c0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c69656400060000190c0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c737461736865731d0c01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564210c0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e00001d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010904045300000400050401185665633c543e0000210c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190201185665633c543e0000250c0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e290c0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732844656c65676174696f6e04045400000801146167656e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00002d0c0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732c4167656e744c656467657204045400001001147061796565000130543a3a4163636f756e74496400013c746f74616c5f64656c6567617465640d01013042616c616e63654f663c543e000154756e636c61696d65645f7769746864726177616c730d01013042616c616e63654f663c543e00013470656e64696e675f736c6173680d01013042616c616e63654f663c543e0000310c0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144572726f72040454000130284e6f74416c6c6f776564000004a8546865206163636f756e742063616e6e6f7420706572666f726d2074686973206f7065726174696f6e2e38416c72656164795374616b696e67000104b8416e206578697374696e67207374616b65722063616e6e6f7420706572666f726d207468697320616374696f6e2e60496e76616c696452657761726444657374696e6174696f6e000204d45265776172642044657374696e6174696f6e2063616e6e6f742062652073616d6520617320604167656e7460206163636f756e742e44496e76616c696444656c65676174696f6e0003148844656c65676174696f6e20636f6e646974696f6e7320617265206e6f74206d65742e004c506f737369626c6520697373756573206172656c31292043616e6e6f742064656c656761746520746f2073656c662ca432292043616e6e6f742064656c656761746520746f206d756c7469706c652064656c6567617465732e384e6f74456e6f75676846756e64730004040101546865206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20706572666f726d20746865206f7065726174696f6e2e204e6f744167656e74000504804e6f7420616e206578697374696e6720604167656e7460206163636f756e742e304e6f7444656c656761746f72000604604e6f7420612044656c656761746f72206163636f756e742e20426164537461746500070488536f6d6520636f7272757074696f6e20696e20696e7465726e616c2073746174652e38556e6170706c696564536c617368000804dc556e6170706c6965642070656e64696e6720736c61736820726573747269637473206f7065726174696f6e206f6e20604167656e74602e384e6f7468696e67546f536c617368000904ac604167656e746020686173206e6f2070656e64696e6720736c61736820746f206265206170706c6965642e3857697468647261774661696c6564000a04b04661696c656420746f20776974686472617720616d6f756e742066726f6d20436f7265205374616b696e672e304e6f74537570706f72746564000b049c4f7065726174696f6e206e6f7420737570706f7274656420627920746869732070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350c0000040810050200390c000004083d0c10003d0c087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e743453657373696f6e5265706f727404244163636f756e744964010000100124656e645f696e64657810013053657373696f6e496e64657800014076616c696461746f725f706f696e7473290a01545665633c284163636f756e7449642c20753332293e00015061637469766174696f6e5f74696d657374616d70410c01484f7074696f6e3c287536342c20753332293e0001206c6566746f766572200110626f6f6c0000410c04184f7074696f6e0404540185090108104e6f6e6500000010536f6d65040085090000010000450c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401490c045300000400510c01185665633c543e0000490c00000408104d0c004d0c087870616c6c65745f7374616b696e675f6173796e635f72635f636c69656e741c4f6666656e636504244163636f756e7449640100000c01206f6666656e6465720001244163636f756e7449640001247265706f7274657273050201385665633c4163636f756e7449643e000138736c6173685f6672616374696f6eb4011c50657262696c6c0000510c000002490c00550c0c7870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e741870616c6c6574144572726f720404540001041c426c6f636b65640000042501436f756c64206e6f742070726f6365737320696e636f6d696e67206d657373616765206265636175736520696e636f6d696e67206d657373616765732061726520626c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d6265720110008c01346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73590401484173796e634261636b696e67506172616d730001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c75333200019068726d705f6d61785f70617261636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f70617261636861696e5f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c75333200013c6578656375746f725f706172616d735d0401384578656375746f72506172616d73000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d6265720001386d61785f76616c696461746f7273b8012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001387076665f766f74696e675f74746c10013053657373696f6e496e6465780001806d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001546d696e696d756d5f6261636b696e675f766f74657310010c7533320001346e6f64655f6665617475726573950401304e6f64654665617475726573000158617070726f76616c5f766f74696e675f706172616d7371040150417070726f76616c566f74696e67506172616d730001407363686564756c65725f706172616d73750401705363686564756c6572506172616d733c426c6f636b4e756d6265723e00005d0c000002610c00610c0000040810590c00650c106c706f6c6b61646f745f72756e74696d655f70617261636861696e7334636f6e66696775726174696f6e1870616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e690c0000029d04006d0c000002510200710c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731873686172656468416c6c6f77656452656c6179506172656e7473547261636b657208104861736801342c426c6f636b4e756d626572011000080118627566666572750c017c56656344657175653c52656c6179506172656e74496e666f3c486173683e3e0001346c61746573745f6e756d62657210012c426c6f636b4e756d6265720000750c000002790c00790c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73187368617265643c52656c6179506172656e74496e666f0410486173680134000c013072656c61795f706172656e743401104861736800012873746174655f726f6f743401104861736800012c636c61696d5f71756575657d0c01bc42547265654d61703c49642c2042547265654d61703c75382c2042547265655365743c436f7265496e6465783e3e3e00007d0c042042547265654d617008044b01b502045601810c000400950c000000810c042042547265654d617008044b0108045601850c0004008d0c000000850c04204254726565536574040454017108000400890c000000890c0000027108008d0c000002910c00910c0000040808850c00950c000002990c00990c00000408b502810c009d0c000002a10c00a10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480134044e011000240110636f726571080124436f7265496e64657800011068617368f104013443616e6469646174654861736800012864657363726970746f72b104015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e7473c104015043616e646964617465436f6d6d69746d656e7473000148617661696c6162696c6974795f766f746573950401604269745665633c75382c204269744f726465724c7362303e00011c6261636b657273950401604269745665633c75382c204269744f726465724c7362303e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f75707508012847726f7570496e6465780000a50c106c706f6c6b61646f745f72756e74696d655f70617261636861696e7324696e636c7573696f6e1870616c6c6574144572726f720404540001446456616c696461746f72496e6465784f75744f66426f756e64730000047856616c696461746f7220696e646578206f7574206f6620626f756e64732e50556e7363686564756c656443616e646964617465000104ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e404865616444617461546f6f4c61726765000204a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500030464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000404604f757470757420636f646520697320746f6f206c6172676554446973616c6c6f77656452656c6179506172656e74000508ec5468652063616e64696461746527732072656c61792d706172656e7420776173206e6f7420616c6c6f7765642e204569746865722069742077617325016e6f7420726563656e7420656e6f756768206f72206974206469646e277420616476616e6365206261736564206f6e20746865206c6173742070617261636861696e20626c6f636b2e44496e76616c696441737369676e6d656e7400060815014661696c656420746f20636f6d707574652067726f757020696e64657820666f722074686520636f72653a206569746865722069742773206f7574206f6620626f756e6473e86f72207468652072656c617920706172656e7420646f65736e27742062656c6f6e6720746f207468652063757272656e742073657373696f6e2e44496e76616c696447726f7570496e6465780007049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e6700080490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000904e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e6856616c69646174696f6e44617461486173684d69736d61746368000a04c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67000b04d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d65737361676573000c041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e67000d0411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70000e04d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368000f04dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800100855015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c7470617261206865616420696e2074686520636f6d6d69746d656e74732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90c0c4c706f6c6b61646f745f7072696d697469766573207673746167696e674c536372617065644f6e436861696e566f7465730404480134000c011c73657373696f6e10013053657373696f6e496e6465780001806261636b696e675f76616c696461746f72735f7065725f63616e646964617465ad0c0125015665633c0a2843616e6469646174655265636569707456323c483e2c205665633c2856616c696461746f72496e6465782c2056616c69646974794174746573746174696f6e293e293e0001206469737075746573e90401604d756c74694469737075746553746174656d656e745365740000ad0c000002b10c00b10c000004086d08b50c00b50c000002b90c00b90c000004089d04e50400bd0c106c706f6c6b61646f745f72756e74696d655f70617261636861696e733870617261735f696e686572656e741870616c6c6574144572726f7204045400011064546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e8c496e686572656e744461746146696c7465726564447572696e67457865637574696f6e0002083101496e686572656e742064617461207761732066696c746572656420647572696e6720657865637574696f6e2e20546869732073686f756c642068617665206f6e6c79206265656e20646f6e6540647572696e67206372656174696f6e2e50556e7363686564756c656443616e64696461746500030474546f6f206d616e792063616e6469646174657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10c000002690c00c50c042042547265654d617008044b017108045601c90c000400d10c000000c90c000002cd0c00cd0c106c706f6c6b61646f745f72756e74696d655f70617261636861696e73247363686564756c657218636f6d6d6f6e2841737369676e6d656e7400010810506f6f6c08011c706172615f6964b5020118506172614964000128636f72655f696e64657871080124436f7265496e6465780000001042756c6b0400b502011850617261496400010000d10c000002d50c00d50c000004087108c90c00d90c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261735c507666436865636b416374697665566f74655374617465042c426c6f636b4e756d626572011000140130766f7465735f616363657074950401604269745665633c75382c204269744f726465724c7362303e000130766f7465735f72656a656374950401604269745665633c75382c204269744f726465724c7362303e00010c61676510013053657373696f6e496e646578000128637265617465645f617410012c426c6f636b4e756d626572000118636175736573dd0c017c5665633c507666436865636b43617573653c426c6f636b4e756d6265723e3e0000dd0c000002e10c00e10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334507666436865636b4361757365042c426c6f636b4e756d62657201100108284f6e626f617264696e670400b50201185061726149640000001c557067726164650c01086964b502011850617261496400012c696e636c756465645f617410012c426c6f636b4e756d626572000140757067726164655f7374726174656779e50c013c55706772616465537472617465677900010000e50c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c55706772616465537472617465677900010840536574476f41686561645369676e616c000000504170706c7941744578706563746564426c6f636b00010000e90c000002bd0400ed0c000002b50200f10c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002450617261636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6750617261636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6750617261636861696e00060000f50c00000408b5021000f90c0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573fd0c01605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564b801244f7074696f6e3c4e3e0000fd0c000002010d00010d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000050d000002f50c00090d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261736c417574686f72697a6564436f646548617368416e64457870697279040454011000080124636f64655f68617368bd04014856616c69646174696f6e436f6465486173680001246578706972655f61741001045400000d0d0c4c706f6c6b61646f745f7072696d6974697665730876383855706772616465476f41686561640001081441626f72740000001c476f416865616400010000110d0c4c706f6c6b61646f745f7072696d69746976657308763848557067726164655265737472696374696f6e0001041c50726573656e7400000000150d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f68656164dd040120486561644461746100013c76616c69646174696f6e5f636f6465d904013856616c69646174696f6e436f6465000124706172615f6b696e64200120506172614b696e640000190d106c706f6c6b61646f745f72756e74696d655f70617261636861696e731470617261731870616c6c6574144572726f72040454000140344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f7455706772616465000304d4506172612063616e6e6f7420626520757067726164656420746f2061206c6561736520686f6c64696e672070617261636861696e2e3c43616e6e6f74446f776e6772616465000404d0506172612063616e6e6f7420626520646f776e67726164656420746f20616e206f6e2d64656d616e642070617261636861696e2e58507666436865636b53746174656d656e745374616c65000504b05468652073746174656d656e7420666f7220505646207072652d636865636b696e67206973207374616c652e5c507666436865636b53746174656d656e74467574757265000604ec5468652073746174656d656e7420666f7220505646207072652d636865636b696e6720697320666f722061206675747572652073657373696f6e2e84507666436865636b56616c696461746f72496e6465784f75744f66426f756e6473000704a4436c61696d65642076616c696461746f7220696e646578206973206f7574206f6620626f756e64732e60507666436865636b496e76616c69645369676e6174757265000804c8546865207369676e617475726520666f722074686520505646207072652d636865636b696e6720697320696e76616c69642e48507666436865636b446f75626c65566f7465000904b054686520676976656e2076616c696461746f7220616c7265616479206861732063617374206120766f74652e58507666436865636b5375626a656374496e76616c6964000a04f454686520676976656e2050564620646f6573206e6f7420657869737420617420746865206d6f6d656e74206f662070726f63657373206120766f74652e4443616e6e6f7455706772616465436f6465000b04cc50617261636861696e2063616e6e6f742063757272656e746c79207363686564756c65206120636f646520757067726164652e2c496e76616c6964436f6465000c0474496e76616c69642076616c69646174696f6e20636f64652073697a652e444e6f7468696e67417574686f72697a6564000d04584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a6564000e0494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e48496e76616c6964426c6f636b4e756d626572000f0454496e76616c696420626c6f636b206e756d6265722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e1d0d000002210d00210d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f72736d0c01405665633c56616c696461746f7249643e0001187175657565646d0c01405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e6465780000250d000002290d00290d0860706f6c6b61646f745f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d65737361676500002d0d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564200110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000310d0000021d0500350d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164c10201304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000390d0000023d0d003d0d0860706f6c6b61646f745f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000410d000002450d00450d0000040810ed0c00490d106c706f6c6b61646f745f72756e74696d655f70617261636861696e731068726d701870616c6c6574144572726f72040454000150544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e3057726f6e675769746e6573730012048c5468652070726f7669646564207769746e65737320646174612069732077726f6e672e704368616e6e656c4372656174696f6e4e6f74417574686f72697a6564001304e8546865206368616e6e656c206265747765656e2074686573652074776f20636861696e732063616e6e6f7420626520617574686f72697a65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0d000002550200510d0c4c706f6c6b61646f745f7072696d6974697665730876382c53657373696f6e496e666f00003401606163746976655f76616c696461746f725f696e6469636573690c014c5665633c56616c696461746f72496e6465783e00012c72616e646f6d5f736565640401205b75383b2033325d000138646973707574655f706572696f6410013053657373696f6e496e64657800012876616c696461746f7273550d019c496e64657865645665633c56616c696461746f72496e6465782c2056616c696461746f7249643e000138646973636f766572795f6b657973850a01645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b6579734d0d01445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073590d01ac496e64657865645665633c47726f7570496e6465782c205665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000550d0c4c706f6c6b61646f745f7072696d69746976657308763828496e646578656456656308044b019d0404560151020004006d0c01185665633c563e0000590d0c4c706f6c6b61646f745f7072696d69746976657308763828496e646578656456656308044b017508045601690c000400c10c01185665633c563e00005d0d0000040810f10400610d0c4c706f6c6b61646f745f7072696d6974697665730876383044697370757465537461746504044e01100010013876616c696461746f72735f666f729504017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014876616c696461746f72735f616761696e73749504017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00011473746172741001044e000130636f6e636c756465645f6174b801244f7074696f6e3c4e3e0000650d04204254726565536574040454019d04000400690c000000690d106c706f6c6b61646f745f72756e74696d655f70617261636861696e732064697370757465731870616c6c6574144572726f72040454000124744475706c69636174654469737075746553746174656d656e7453657473000004a84475706c696361746520646973707574652073746174656d656e7420736574732070726f76696465642e5c416e6369656e744469737075746553746174656d656e740001048c416e6369656e7420646973707574652073746174656d656e742070726f76696465642e6456616c696461746f72496e6465784f75744f66426f756e6473000204e856616c696461746f7220696e646578206f6e2073746174656d656e74206973206f7574206f6620626f756e647320666f722073657373696f6e2e40496e76616c69645369676e61747572650003047c496e76616c6964207369676e6174757265206f6e2073746174656d656e742e484475706c696361746553746174656d656e74000404cc56616c696461746f7220766f7465207375626d6974746564206d6f7265207468616e206f6e636520746f20646973707574652e4853696e676c65536964656444697370757465000504c441206469737075746520776865726520746865726520617265206f6e6c7920766f746573206f6e206f6e6520736964652e3c4d616c6963696f75734261636b65720006049c41206469737075746520766f74652066726f6d2061206d616c6963696f7573206261636b65722e4c4d697373696e674261636b696e67566f746573000704e04e6f206261636b696e6720766f74657320776572652070726f766964657320616c6f6e6720646973707574652073746174656d656e74732e48556e636f6e6669726d656444697370757465000804b0556e636f6e6669726d656420646973707574652073746174656d656e7420736574732070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e6d0d0c4c706f6c6b61646f745f7072696d697469766573207673746167696e673850656e64696e67536c617368657300000801106b657973710d019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e6431050148446973707574654f6666656e63654b696e640000710d042042547265654d617008044b019d040456015102000400750d000000750d000002790d00790d000004089d045102007d0d146c706f6c6b61646f745f72756e74696d655f70617261636861696e7320646973707574657320736c617368696e671870616c6c6574144572726f7204045400011860496e76616c69644b65794f776e65727368697050726f6f660000048c546865206b6579206f776e6572736869702070726f6f6620697320696e76616c69642e4c496e76616c696453657373696f6e496e646578000104a05468652073657373696f6e20696e64657820697320746f6f206f6c64206f7220696e76616c69642e50496e76616c696443616e64696461746548617368000204785468652063616e646964617465206861736820697320696e76616c69642e54496e76616c696456616c696461746f72496e64657800030801015468657265206973206e6f2070656e64696e6720736c61736820666f722074686520676976656e2076616c696461746f7220696e64657820616e642074696d6514736c6f742e6056616c696461746f72496e64657849644d69736d61746368000404d05468652076616c696461746f7220696e64657820646f6573206e6f74206d61746368207468652076616c696461746f722069642e5c4475706c6963617465536c617368696e675265706f72740005040d0154686520676976656e20736c617368696e67207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810d106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e6414747970657344436f7265416666696e697479436f756e740000080128636f72655f696e64657871080124436f7265496e646578000114636f756e7410010c7533320000850d106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641474797065733c517565756553746174757354797065000010011c74726166666963090701244669786564553132380001286e6578745f696e646578890d01285175657565496e646578000138736d616c6c6573745f696e646578890d01285175657565496e64657800013466726565645f696e64696365738d0d017442696e617279486561703c526576657273655175657565496e6465783e0000890d106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e64147479706573285175657565496e6465780000040010010c75333200008d0d042842696e6172794865617004045401910d000400950d000000910d106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e6414747970657344526576657273655175657565496e6465780000040010010c7533320000950d000002910d00990d042842696e61727948656170040454019d0d000400a10d0000009d0d106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e6414747970657334456e7175657565644f72646572000008011c706172615f6964b502011850617261496400010c696478890d01285175657565496e6465780000a10d0000029d0d00a50d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400a90d01185665633c543e0000a90d0000021800ad0d106c706f6c6b61646f745f72756e74696d655f70617261636861696e73246f6e5f64656d616e641870616c6c6574144572726f7204045400010c24517565756546756c6c000004e4546865206f726465722071756575652069732066756c6c2c2060706c6163655f6f72646572602077696c6c206e6f7420636f6e74696e75652e7053706f7450726963654869676865725468616e4d6178416d6f756e740001084d015468652063757272656e742073706f7420707269636520697320686967686572207468616e20746865206d617820616d6f756e742073706563696669656420696e207468652060706c6163655f6f72646572606063616c6c2c206d616b696e6720697420696e76616c69642e4c496e73756666696369656e74437265646974730002041d01546865206163636f756e7420646f65736e2774206861766520656e6f756768206372656469747320746f207075726368617365206f6e2d64656d616e6420636f726574696d652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10d0000040810710800b50d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d65205363686564756c6504044e0110000c012c61737369676e6d656e74736105018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e74b801244f7074696f6e3c4e3e0001346e6578745f7363686564756c65b801244f7074696f6e3c4e3e0000b90d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d6538436f726544657363726970746f7204044e0110000801147175657565bd0d01684f7074696f6e3c517565756544657363726970746f723c4e3e3e00013063757272656e745f776f726bc50d01504f7074696f6e3c576f726b53746174653c4e3e3e0000bd0d04184f7074696f6e04045401c10d0108104e6f6e6500000010536f6d650400c10d0000010000c10d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653c517565756544657363726970746f7204044e01100008011466697273741001044e0001106c6173741001044e0000c50d04184f7074696f6e04045401c90d0108104e6f6e6500000010536f6d650400c90d0000010000c90d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d6524576f726b537461746504044e01100010012c61737369676e6d656e7473cd0d01985665633c28436f726541737369676e6d656e742c2041737369676e6d656e745374617465293e000120656e645f68696e74b801244f7074696f6e3c4e3e00010c706f739d01010c753136000110737465706d05013050617274734f6635373630300000cd0d000002d10d00d10d000004086905d50d00d50d0c6c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d653c41737369676e6d656e7453746174650000080114726174696f6d05013050617274734f66353736303000012472656d61696e696e676d05013050617274734f6635373630300000d90d106c706f6c6b61646f745f72756e74696d655f70617261636861696e734461737369676e65725f636f726574696d651870616c6c6574144572726f720404540001084041737369676e6d656e7473456d70747900000040446973616c6c6f776564496e73657274000108510161737369676e5f636f7265206973206f6e6c7920616c6c6f77656420746f20617070656e64206e65772061737369676e6d656e74732061742074686520656e64206f6620616c7265616479206578697374696e67786f6e6573206f722075706461746520746865206c61737420656e7472792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742edd0d0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564e10d01304f7074696f6e3c626f6f6c3e0000e10d04184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000e50d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261721870616c6c6574144572726f72040454000138344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7450617261636861696e0005046050617261206973206e6f7420612050617261636861696e2e344e6f7450617261746872656164000604bc50617261206973206e6f742061205061726174687265616420286f6e2d64656d616e642070617261636861696e292e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e67726164650008042d0143616e6e6f74207363686564756c6520646f776e6772616465206f66206c6561736520686f6c64696e672070617261636861696e20746f206f6e2d64656d616e642070617261636861696e3443616e6e6f7455706772616465000904250143616e6e6f74207363686564756c652075706772616465206f66206f6e2d64656d616e642070617261636861696e20746f206c6561736520686f6c64696e672070617261636861696e28506172614c6f636b6564000a08490150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652070617261636861696e206f722072656c617920636861696e2c676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e2c496e76616c6964436f6465000c047c5468652076616c69646174696f6e20636f646520697320696e76616c69642e2843616e6e6f7453776170000d08510143616e6e6f7420706572666f726d20612070617261636861696e20736c6f74202f206c6966656379636c6520737761702e20436865636b207468617420746865207374617465206f6620626f74682070617261738461726520636f727265637420666f7220746865207377617020746f20776f726b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee90d000002350900ed0d105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e14736c6f74731870616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652070617261636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10d0000040800b50200f50d00000324000000f90d00f90d04184f7074696f6e04045401fd0d0108104e6f6e6500000010536f6d650400fd0d0000010000fd0d0000040c00b5021800010e105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2061756374696f6e731870616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050e0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965724d05014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6e090e01744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f6400012866756e645f696e64657810012446756e64496e6465780000090e0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d626572000200000d0e105c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e1870616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7450617261636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612070617261636861696e2e2c4c65617365416374697665000d041501546869732070617261636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732070617261636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110855015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e741c706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e110e106c706f6c6b61646f745f72756e74696d655f70617261636861696e7320636f726574696d651870616c6c6574144572726f7204045400010c244e6f7442726f6b6572000004290154686520706172616964206d616b696e67207468652063616c6c206973206e6f742074686520636f726574696d652062726f6b65726167652073797374656d2070617261636861696e2e58526571756573746564467574757265526576656e7565000108450152657175657374656420726576656e756520696e666f726d6174696f6e20607768656e6020706172616d657465722077617320696e20746865206675747572652066726f6d207468652063757272656e7434626c6f636b206865696768742e4c41737365745472616e736665724661696c6564000204bc4661696c656420746f207472616e736665722061737365747320746f2074686520636f726574696d6520636861696e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e150e0c2870616c6c65745f78636d1870616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e6465728d01014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572190e01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f746966791d0e01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696e8d01014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365250e014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000190e04184f7074696f6e040454018d010108104e6f6e6500000010536f6d6504008d0100000100001d0e04184f7074696f6e04045401210e0108104e6f6e6500000010536f6d650400210e0000010000210e00000408080800250e080c78636d4456657273696f6e6564526573706f6e736500010c0856330400b505013076333a3a526573706f6e736500030008563404001d06013076343a3a526573706f6e736500040008563504006506013076353a3a526573706f6e736500050000290e00000408108d01002d0e0000040c30281000310e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401350e045300000400390e01185665633c543e0000350e000004088d011000390e000002350e003d0e0c2870616c6c65745f78636d1870616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400410e013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000410e04184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000450e0000040c1000f10600490e0c2870616c6c65745f78636d1870616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e7469666965720190304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e65728d01014456657273696f6e65644c6f636174696f6e0001186c6f636b65728d01014456657273696f6e65644c6f636174696f6e000124636f6e73756d6572734d0e01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e00004d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401510e045300000400550e01185665633c543e0000510e00000408901800550e000002510e00590e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d0e045300000400610e01185665633c543e00005d0e00000408188d0100610e0000025d0e00650e082870616c6c65745f78636d58417574686f72697a6564416c6961736573456e74727908185469636b657401690e0c4d4158016d0e00080120616c696173657273710e0178426f756e6465645665633c4f726967696e416c69617365722c204d41583e0001187469636b6574690e01185469636b65740000690e10346672616d655f737570706f7274187472616974731c73746f726167652044697361626c6564000000006d0e0c2870616c6c65745f78636d1870616c6c6574504d6178417574686f72697a6564416c696173657300000000710e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401750e045300000400790e01185665633c543e0000750e0c4078636d5f72756e74696d655f6170697348617574686f72697a65645f616c6961736573344f726967696e416c696173657200000801206c6f636174696f6e8d01014456657273696f6e65644c6f636174696f6e000118657870697279f506012c4f7074696f6e3c7536343e0000790e000002750e007d0e0c2870616c6c65745f78636d1870616c6c6574144572726f720404540001702c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e60546f6f4d616e79417574686f72697a6564416c6961736573001904b8546f6f206d616e79206c6f636174696f6e7320617574686f72697a656420746f20616c696173206f726967696e2e3445787069726573496e50617374001a048c45787069727920626c6f636b206e756d62657220697320696e2074686520706173742e34416c6961734e6f74466f756e64001b04d054686520616c69617320746f2072656d6f766520617574686f72697a6174696f6e20666f7220776173206e6f7420666f756e642e844c6f63616c457865637574696f6e496e636f6d706c657465576974684572726f72080114696e646578080140496e737472756374696f6e496e6465780001146572726f72810e0138457865637574696f6e4572726f72001c0835014c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652077697468207468652061637475616c2058434d206572726f7220616e642074686520696e646578206f662074686588696e737472756374696f6e20746861742063617573656420746865206572726f722e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e810e0c2870616c6c65745f78636d186572726f727338457865637574696f6e4572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d6974526561636865640025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d697400280000850e085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01fd0600180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273890e01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000890e04184f7074696f6e040454018d0e0108104e6f6e6500000010536f6d6504008d0e00000100008d0e085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e01fd060008011070726576fd0601344d6573736167654f726967696e0001106e657874fd0601344d6573736167654f726967696e0000910e00000408fd061000950e085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170990e019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000990e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00009d0e0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea10e0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015d02045300000400a90e01185665633c543e0000a90e0000025d0200ad0e0c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011c60496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c6964446f75626c65566f74696e6750726f6f6600010431014120646f75626c6520766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e58496e76616c6964466f726b566f74696e6750726f6f6600020429014120666f726b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e74496e76616c6964467574757265426c6f636b566f74696e6750726f6f660003044901412066757475726520626c6f636b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e7c496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e000404c05468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f6620697320696e76616c6964584475706c69636174654f6666656e63655265706f727400050415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0006048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb10e0c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e740000b50e0c4870616c6c65745f72635f6d69677261746f72206163636f756e7473304163636f756e745374617465041c42616c616e63650118010c1c4d69677261746500000020507265736572766500010010506172740c01106672656518011c42616c616e6365000120726573657276656418011c42616c616e6365000124636f6e73756d65727310010c75333200020000b90e0c4870616c6c65745f72635f6d69677261746f72206163636f756e7473404d6967726174656442616c616e636573041c42616c616e63650118000801106b65707418011c42616c616e63650001206d6967726174656418011c42616c616e63650000bd0e0c4870616c6c65745f72635f6d69677261746f721870616c6c6574144572726f7204045400014c2c556e726561636861626c650000002c4f75744f665765696768740001002058636d4572726f72000204844661696c656420746f2073656e642058434d206d65737361676520746f2041482e5c4661696c6564546f57697468647261774163636f756e74000304dc4661696c656420746f207769746864726177206163636f756e742066726f6d20524320666f72206d6967726174696f6e20746f2041482e3c50617374426c6f636b4e756d626572000404e4496e646963617465732074686174207468652073706563696669656420626c6f636b206e756d62657220697320696e2074686520706173742e38457261456e6473546f6f536f6f6e00050cf0496e646963617465732074686174207468657265206973206e6f7420656e6f7567682074696d6520666f72207374616b696e6720746f206c6f636b2e0025015363686564756c6520746865206d6967726174696f6e206174206c656173742074776f2073657373696f6e73206265666f7265207468652063757272656e742065726120656e64732e3c42616c616e63654f766572666c6f770006047042616c616e6365206163636f756e74696e67206f766572666c6f772e4042616c616e6365556e646572666c6f770007047442616c616e6365206163636f756e74696e6720756e646572666c6f772e50496e76616c69645175657279526573706f6e73650008047854686520717565727920726573706f6e736520697320696e76616c69642e3451756572794e6f74466f756e64000904705468652078636d20717565727920776173206e6f7420666f756e642e3058636d53656e644572726f72000a046c4661696c656420746f2073656e642058434d206d6573736167652e40556e726561636861626c655374616765000b04f0546865206d6967726174696f6e207374616765206973206e6f7420726561636861626c652066726f6d207468652063757272656e742073746167652e40496e76616c6964506172616d65746572000c0448496e76616c696420706172616d657465722e704168556d7051756575655072696f72697479416c7265616479536574000d04dc54686520414820554d50207175657565207072696f7269747920636f6e66696775726174696f6e20697320616c7265616479207365742e444163636f756e745265666572656e636564000e043d01546865206163636f756e74206973207265666572656e63656420627920736f6d65206f746865722070616c6c65742e204974206d69676874206861766520667265657a6573206f7220686f6c64732e3442616458636d56657273696f6e000f046c5468652058434d2076657273696f6e20697320696e76616c69642e34496e76616c69644f726967696e00100458546865206f726967696e20697320696e76616c69642e58496e76616c696453746167655472616e736974696f6e00110480546865207374616765207472616e736974696f6e20697320696e76616c69642e60556e7369676e656456616c69646174696f6e4661696c65640012046c556e7369676e65642076616c69646174696f6e206661696c65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec10e00000428c50ec90ecd0ed10ed50edd0ee10ee50ee90eed0e00c50e10306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000c90e10306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000cd0e10306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000d10e10306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000d50e10306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400d90e010c4572610000d90e102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000dd0e10306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e636504045400000400fc0120543a3a4e6f6e63650000e10e10306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000e50e086870616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e74040454000004000d01013042616c616e63654f663c543e0000e90e0c5c706f6c6b61646f745f72756e74696d655f636f6d6d6f6e18636c61696d734850726576616c69646174654174746573747304045400000000ed0e08746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465f10e01104d6f64650000f10e08746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000f50e0840706f6c6b61646f745f72756e74696d651c52756e74696d6500000000f90e0c3072656c61795f636f6d6d6f6e106170697334496e666c6174696f6e496e666f0000080124696e666c6174696f6efd0e015c73705f72756e74696d653a3a5065727175696e74696c6c0001246e6578745f6d696e74010f01f028706f6c6b61646f745f7072696d6974697665733a3a42616c616e63652c20706f6c6b61646f745f7072696d6974697665733a3a42616c616e6365290000fd0e0c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c7536340000010f00000408181800050f102873705f72756e74696d651c67656e6572696314626c6f636b14426c6f636b081848656164657201d5012445787472696e73696301090f00080118686561646572d501011848656164657200012865787472696e736963730d0f01385665633c45787472696e7369633e0000090f102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c4164647265737301f9011043616c6c01a901245369676e617475726501590514457874726101c10e000400380000000d0f000002090f00110f082873705f72756e74696d655845787472696e736963496e636c7573696f6e4d6f646500010834416c6c45787472696e73696373000000344f6e6c79496e686572656e747300010000150f081c73705f636f7265384f70617175654d657461646174610000040038011c5665633c75383e0000190f04184f7074696f6e04045401150f0108104e6f6e6500000010536f6d650400150f00000100001d0f0418526573756c74080454018c044501210f0108084f6b04008c000000000c4572720400210f0000010000210f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479605472616e73616374696f6e56616c69646974794572726f720001081c496e76616c69640400250f0148496e76616c69645472616e73616374696f6e0000001c556e6b6e6f776e0400290f0148556e6b6e6f776e5472616e73616374696f6e00010000250f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948496e76616c69645472616e73616374696f6e0001341043616c6c0000001c5061796d656e7400010018467574757265000200145374616c650003002042616450726f6f6600040044416e6369656e744269727468426c6f636b0005004445786861757374735265736f757263657300060018437573746f6d04000801087538000700304261644d616e6461746f72790008004c4d616e6461746f727956616c69646174696f6e000900244261645369676e6572000a0054496e64657465726d696e617465496d706c69636974000b0034556e6b6e6f776e4f726967696e000c0000290f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948556e6b6e6f776e5472616e73616374696f6e00010c3043616e6e6f744c6f6f6b75700000004c4e6f556e7369676e656456616c696461746f7200010018437573746f6d04000801087538000200002d0f083073705f696e686572656e747330496e686572656e7444617461000004011064617461310f019442547265654d61703c496e686572656e744964656e7469666965722c205665633c75383e3e0000310f042042547265654d617008044b01b10504560138000400350f000000350f000002390f00390f00000408b10538003d0f083073705f696e686572656e747350436865636b496e686572656e7473526573756c7400000c01106f6b6179200110626f6f6c00012c666174616c5f6572726f72200110626f6f6c0001186572726f72732d0f0130496e686572656e74446174610000410f00000408000000450f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479445472616e73616374696f6e536f7572636500010c1c496e426c6f636b000000144c6f63616c0001002045787465726e616c00020000490f0418526573756c74080454014d0f044501210f0108084f6b04004d0f000000000c4572720400210f00000100004d0f0c2873705f72756e74696d65507472616e73616374696f6e5f76616c69646974794056616c69645472616e73616374696f6e00001401207072696f7269747930014c5472616e73616374696f6e5072696f726974790001207265717569726573b901014c5665633c5472616e73616374696f6e5461673e00012070726f7669646573b901014c5665633c5472616e73616374696f6e5461673e0001246c6f6e6765766974793001505472616e73616374696f6e4c6f6e67657669747900012470726f706167617465200110626f6f6c0000510f00000408c10c550f00550f0c4c706f6c6b61646f745f7072696d6974697665730876384447726f7570526f746174696f6e496e666f04044e0110000c014c73657373696f6e5f73746172745f626c6f636b1001044e00016067726f75705f726f746174696f6e5f6672657175656e63791001044e00010c6e6f771001044e0000590f0000025d0f005d0f0c4c706f6c6b61646f745f7072696d697469766573207673746167696e6724436f726553746174650804480134044e0110010c204f636375706965640400610f01484f63637570696564436f72653c482c204e3e000000245363686564756c65640400690f01345363686564756c6564436f7265000100104672656500020000610f0c4c706f6c6b61646f745f7072696d697469766573207673746167696e67304f63637570696564436f72650804480134044e0110002001506e6578745f75705f6f6e5f617661696c61626c65650f01544f7074696f6e3c5363686564756c6564436f72653e0001386f636375706965645f73696e63651001044e00012c74696d655f6f75745f61741001044e00014c6e6578745f75705f6f6e5f74696d655f6f7574650f01544f7074696f6e3c5363686564756c6564436f72653e000130617661696c6162696c6974799504017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014467726f75705f726573706f6e7369626c657508012847726f7570496e64657800013863616e6469646174655f68617368f104013443616e6469646174654861736800015063616e6469646174655f64657363726970746f72b104016043616e64696461746544657363726970746f7256323c483e0000650f04184f7074696f6e04045401690f0108104e6f6e6500000010536f6d650400690f0000010000690f0c4c706f6c6b61646f745f7072696d697469766573087638345363686564756c6564436f7265000008011c706172615f6964b50201084964000120636f6c6c61746f726d0f01484f7074696f6e3c436f6c6c61746f7249643e00006d0f04184f7074696f6e04045401710f0108104e6f6e6500000010536f6d650400710f0000010000710f104c706f6c6b61646f745f7072696d69746976657308763830636f6c6c61746f725f617070185075626c69630000040004013c737232353531393a3a5075626c69630000750f0c4c706f6c6b61646f745f7072696d697469766573087638584f63637570696564436f7265417373756d7074696f6e00010c20496e636c756465640000002054696d65644f7574000100104672656500020000790f04184f7074696f6e040454017d0f0108104e6f6e6500000010536f6d6504007d0f00000100007d0f0c4c706f6c6b61646f745f7072696d6974697665730876385c50657273697374656456616c69646174696f6e446174610804480134044e01100010012c706172656e745f68656164dd040120486561644461746100014c72656c61795f706172656e745f6e756d6265721001044e00016472656c61795f706172656e745f73746f726167655f726f6f74340104480001306d61785f706f765f73697a6510010c7533320000810f04184f7074696f6e04045401850f0108104e6f6e6500000010536f6d650400850f0000010000850f000004087d0fbd0400890f04184f7074696f6e04045401ad040108104e6f6e6500000010536f6d650400ad0400000100008d0f000002910f00910f0c4c706f6c6b61646f745f7072696d697469766573207673746167696e673843616e6469646174654576656e740404480134010c3c43616e6469646174654261636b656410006d08015443616e6469646174655265636569707456323c483e0000dd0401204865616444617461000071080124436f7265496e64657800007508012847726f7570496e6465780000004443616e646964617465496e636c7564656410006d08015443616e6469646174655265636569707456323c483e0000dd0401204865616444617461000071080124436f7265496e64657800007508012847726f7570496e6465780001004443616e64696461746554696d65644f75740c006d08015443616e6469646174655265636569707456323c483e0000dd0401204865616444617461000071080124436f7265496e64657800020000950f042042547265654d617008044b01b502045601390d000400990f000000990f0000029d0f009d0f00000408b502390d00a10f04184f7074696f6e04045401a90c0108104e6f6e6500000010536f6d650400a90c0000010000a50f04184f7074696f6e04045401510d0108104e6f6e6500000010536f6d650400510d0000010000a90f04184f7074696f6e04045401bd040108104e6f6e6500000010536f6d650400bd040000010000ad0f000002b10f00b10f0000040c10f104610d00b50f04184f7074696f6e040454015d040108104e6f6e6500000010536f6d6504005d040000010000b90f000002bd0f00bd0f0000040c10f104c10f00c10f104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e673850656e64696e67536c617368657300000801106b657973710d019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e64c50f014c536c617368696e674f6666656e63654b696e640000c50f104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e674c536c617368696e674f6666656e63654b696e6400010828466f72496e76616c696400000030416761696e737456616c696400010000c90f04184f7074696f6e04045401cd0f0108104e6f6e6500000010536f6d650400cd0f0000010000cd0f104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e675c4f70617175654b65794f776e65727368697050726f6f660000040038011c5665633c75383e0000d10f104c706f6c6b61646f745f7072696d69746976657308763820736c617368696e67304469737075746550726f6f66000010012474696d655f736c6f742d050140446973707574657354696d65536c6f740001106b696e64c50f014c536c617368696e674f6666656e63654b696e6400013c76616c696461746f725f696e6465789d04013856616c696461746f72496e64657800013076616c696461746f725f69645102012c56616c696461746f7249640000d50f04184f7074696f6e04045401d90f0108104e6f6e6500000010536f6d650400d90f0000010000d90f104c706f6c6b61646f745f7072696d697469766573207673746167696e67346173796e635f6261636b696e67304261636b696e6753746174650804480134044e01100008012c636f6e73747261696e7473dd0f019063726174653a3a6173796e635f6261636b696e673a3a436f6e73747261696e74733c4e3e00015070656e64696e675f617661696c6162696c697479fd0f019c5665633c43616e64696461746550656e64696e67417661696c6162696c6974793c482c204e3e3e0000dd0f104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e672c436f6e73747261696e747304044e01100038015c6d696e5f72656c61795f706172656e745f6e756d6265721001044e0001306d61785f706f765f73697a6510010c7533320001346d61785f636f64655f73697a6510010c753332000134756d705f72656d61696e696e6710010c75333200014c756d705f72656d61696e696e675f627974657310010c7533320001646d61785f756d705f6e756d5f7065725f63616e64696461746510010c753332000158646d705f72656d61696e696e675f6d65737361676573190201185665633c4e3e00013068726d705f696e626f756e64e10f0164496e626f756e6448726d704c696d69746174696f6e733c4e3e00014468726d705f6368616e6e656c735f6f7574e50f01a45665633c2849642c204f7574626f756e6448726d704368616e6e656c4c696d69746174696f6e73293e0001686d61785f68726d705f6e756d5f7065725f63616e64696461746510010c75333200013c72657175697265645f706172656e74dd040120486561644461746100015076616c69646174696f6e5f636f64655f68617368bd04014856616c69646174696f6e436f64654861736800014c757067726164655f7265737472696374696f6ef10f01684f7074696f6e3c557067726164655265737472696374696f6e3e0001586675747572655f76616c69646174696f6e5f636f6465f50f017c4f7074696f6e3c284e2c2056616c69646174696f6e436f646548617368293e0000e10f104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e6758496e626f756e6448726d704c696d69746174696f6e7304044e01100004014076616c69645f77617465726d61726b73190201185665633c4e3e0000e50f000002e90f00e90f00000408b502ed0f00ed0f104c706f6c6b61646f745f7072696d697469766573087638346173796e635f6261636b696e67784f7574626f756e6448726d704368616e6e656c4c696d69746174696f6e73000008013c62797465735f72656d61696e696e6710010c7533320001486d657373616765735f72656d61696e696e6710010c7533320000f10f04184f7074696f6e04045401110d0108104e6f6e6500000010536f6d650400110d0000010000f50f04184f7074696f6e04045401f90f0108104e6f6e6500000010536f6d650400f90f0000010000f90f0000040810bd0400fd0f0000020110000110104c706f6c6b61646f745f7072696d697469766573207673746167696e67346173796e635f6261636b696e677043616e64696461746550656e64696e67417661696c6162696c6974790804480134044e01100014013863616e6469646174655f68617368f104013443616e6469646174654861736800012864657363726970746f72b104016043616e64696461746544657363726970746f7256323c483e00012c636f6d6d69746d656e7473c104015043616e646964617465436f6d6d69746d656e747300014c72656c61795f706172656e745f6e756d6265721001044e0001306d61785f706f765f73697a6510010c75333200000510042042547265654d617008044b017108045601ed0c000400091000000009100000020d10000d10000004087108ed0c001110000002ad0400151004184f7074696f6e0404540119100108104e6f6e6500000010536f6d650400191000000100001910104c706f6c6b61646f745f7072696d697469766573207673746167696e67346173796e635f6261636b696e672c436f6e73747261696e747304044e0110003c015c6d696e5f72656c61795f706172656e745f6e756d6265721001044e0001306d61785f706f765f73697a6510010c7533320001346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c753332000134756d705f72656d61696e696e6710010c75333200014c756d705f72656d61696e696e675f627974657310010c7533320001646d61785f756d705f6e756d5f7065725f63616e64696461746510010c753332000158646d705f72656d61696e696e675f6d65737361676573190201185665633c4e3e00013068726d705f696e626f756e64e10f0164496e626f756e6448726d704c696d69746174696f6e733c4e3e00014468726d705f6368616e6e656c735f6f7574e50f01a45665633c2849642c204f7574626f756e6448726d704368616e6e656c4c696d69746174696f6e73293e0001686d61785f68726d705f6e756d5f7065725f63616e64696461746510010c75333200013c72657175697265645f706172656e74dd040120486561644461746100015076616c69646174696f6e5f636f64655f68617368bd04014856616c69646174696f6e436f64654861736800014c757067726164655f7265737472696374696f6ef10f01684f7074696f6e3c557067726164655265737472696374696f6e3e0001586675747572655f76616c69646174696f6e5f636f6465f50f017c4f7074696f6e3c284e2c2056616c69646174696f6e436f646548617368293e00001d1004184f7074696f6e0404540121100108104e6f6e6500000010536f6d650400211000000100002110084873705f636f6e73656e7375735f62656566793056616c696461746f72536574042c417574686f726974794964015d020008012876616c696461746f7273a90e01405665633c417574686f7269747949643e000108696430013856616c696461746f72536574496400002510082873705f72756e74696d652c4f706171756556616c75650000040038011c5665633c75383e00002910084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201d501084964015d0234416e63657374727950726f6f66012510000c0110766f7465190701b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6625100134416e63657374727950726f6f66000118686561646572d501011848656164657200002d1004184f7074696f6e0404540125100108104e6f6e6500000010536f6d6504002510000001000031100418526573756c74080454013404450135100108084f6b040034000000000c4572720400351000000100003510084473705f6d6d725f7072696d697469766573144572726f7200012840496e76616c69644e756d657269634f7000000010507573680001001c476574526f6f7400020018436f6d6d69740003003447656e657261746550726f6f6600040018566572696679000500304c6561664e6f74466f756e640006004450616c6c65744e6f74496e636c7564656400070040496e76616c69644c656166496e64657800080054496e76616c6964426573744b6e6f776e426c6f636b0009000039100418526573756c74080454013004450135100108084f6b040030000000000c4572720400351000000100003d100418526573756c7408045401411004450135100108084f6b04004110000000000c45727204003510000001000041100000040845104d100045100000024910004910084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e00004d10084473705f6d6d725f7072696d697469766573244c65616650726f6f660410486173680134000c01306c6561665f696e6469636573c90b01385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73c90101245665633c486173683e000051100418526573756c74080454019004450135100108084f6b040090000000000c4572720400351000000100005510084473705f636f6e73656e7375735f626162654442616265436f6e66696775726174696f6e0000180134736c6f745f6475726174696f6e30010c75363400013065706f63685f6c656e67746830010c75363400010463e9010128287536342c207536342900012c617574686f7269746965735909019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000134616c6c6f7765645f736c6f7473ed010130416c6c6f776564536c6f747300005910084473705f636f6e73656e7375735f626162651445706f6368000018012c65706f63685f696e64657830010c75363400012873746172745f736c6f74dd010110536c6f740001206475726174696f6e30010c75363400012c617574686f7269746965735909019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000118636f6e6669677d0901584261626545706f6368436f6e66696775726174696f6e00005d1004184f7074696f6e0404540161100108104e6f6e6500000010536f6d650400611000000100006110084473705f636f6e73656e7375735f626162655c4f70617175654b65794f776e65727368697050726f6f660000040038011c5665633c75383e0000651004184f7074696f6e0404540169100108104e6f6e6500000010536f6d6504006910000001000069100000026d10006d100000040838690a0071100c346672616d655f737570706f727438766965775f66756e6374696f6e73385669657746756e6374696f6e49640000080118707265666978cc01205b75383b2031365d000118737566666978cc01205b75383b2031365d000075100418526573756c74080454013804450179100108084f6b040038000000000c45727204007910000001000079100c346672616d655f737570706f727438766965775f66756e6374696f6e73645669657746756e6374696f6e44697370617463684572726f7200010c384e6f74496d706c656d656e746564000000204e6f74466f756e640400711001385669657746756e6374696f6e496400010014436f646563000200007d100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065734c52756e74696d654469737061746368496e666f081c42616c616e63650118185765696768740128000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c61737300012c7061727469616c5f66656518011c42616c616e6365000081100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065732846656544657461696c73041c42616c616e6365011800080134696e636c7573696f6e5f666565851001744f7074696f6e3c496e636c7573696f6e4665653c42616c616e63653e3e00010c74697018011c42616c616e63650000851004184f7074696f6e0404540189100108104e6f6e6500000010536f6d6504008910000001000089100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e7414747970657330496e636c7573696f6e466565041c42616c616e63650118000c0120626173655f66656518011c42616c616e636500011c6c656e5f66656518011c42616c616e636500014c61646a75737465645f7765696768745f66656518011c42616c616e636500008d100418526573756c7408045401911004450195100108084f6b04009110000000000c4572720400951000000100009110000002f1060095100c4078636d5f72756e74696d655f617069731066656573144572726f7200011834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c65640001004c5765696768744e6f74436f6d70757461626c650002004c556e68616e646c656458636d56657273696f6e0003003441737365744e6f74466f756e6400040028556e726f757461626c650005000099100418526573756c74080454012804450195100108084f6b040028000000000c4572720400951000000100009d100418526573756c74080454011804450195100108084f6b040018000000000c457272040095100000010000a1100418526573756c7408045401bd0604450195100108084f6b0400bd06000000000c457272040095100000010000a5100418526573756c7408045401a910044501c1100108084f6b0400a910000000000c4572720400c1100000010000a9100c4078636d5f72756e74696d655f617069731c6472795f72756e4443616c6c44727952756e4566666563747304144576656e74015400100140657865637574696f6e5f726573756c74110801684469737061746368526573756c7457697468506f7374496e666f000138656d69747465645f6576656e7473ad1001285665633c4576656e743e0001246c6f63616c5f78636db11001604f7074696f6e3c56657273696f6e656458636d3c28293e3e000138666f727761726465645f78636d73b51001bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e0000ad100000025400b11004184f7074696f6e040454018d050108104e6f6e6500000010536f6d6504008d050000010000b510000002b91000b910000004088d01bd1000bd100000028d0500c1100c4078636d5f72756e74696d655f617069731c6472795f72756e144572726f7200010834556e696d706c656d656e7465640000006456657273696f6e6564436f6e76657273696f6e4661696c656400010000c5100418526573756c7408045401c910044501c1100108084f6b0400c910000000000c4572720400c1100000010000c9100c4078636d5f72756e74696d655f617069731c6472795f72756e4058636d44727952756e4566666563747304144576656e740154000c0140657865637574696f6e5f726573756c74b508011c4f7574636f6d65000138656d69747465645f6576656e7473ad1001285665633c4576656e743e000138666f727761726465645f78636d73b51001bc5665633c2856657273696f6e65644c6f636174696f6e2c205665633c56657273696f6e656458636d3c28293e3e293e0000cd100418526573756c740804540100044501d1100108084f6b040000000000000c4572720400d1100000010000d1100c4078636d5f72756e74696d655f617069732c636f6e76657273696f6e73144572726f720001082c556e737570706f727465640000006456657273696f6e6564436f6e76657273696f6e4661696c656400010000d5100418526573756c740804540190044501e5080108084f6b040090000000000c4572720400e5080000010000d91004184f7074696f6e04045401e5080108104e6f6e6500000010536f6d650400e5080000010000dd10000002e50800e1100840706f6c6b61646f745f72756e74696d653052756e74696d654572726f720001b81853797374656d0400150901706672616d655f73797374656d3a3a4572726f723c52756e74696d653e000000245363686564756c657204002d09018070616c6c65745f7363686564756c65723a3a4572726f723c52756e74696d653e00010020507265696d61676504004d09017c70616c6c65745f707265696d6167653a3a4572726f723c52756e74696d653e000a00104261626504008d09016c70616c6c65745f626162653a3a4572726f723c52756e74696d653e0002001c496e646963657304009509017870616c6c65745f696e64696365733a3a4572726f723c52756e74696d653e0004002042616c616e6365730400f109017c70616c6c65745f62616c616e6365733a3a4572726f723c52756e74696d653e0005001c5374616b696e670400410a017870616c6c65745f7374616b696e673a3a4572726f723c52756e74696d653e0007001c53657373696f6e04006d0a017870616c6c65745f73657373696f6e3a3a4572726f723c52756e74696d653e0009001c4772616e64706104007d0a017870616c6c65745f6772616e6470613a3a4572726f723c52756e74696d653e000b002054726561737572790400a10a017c70616c6c65745f74726561737572793a3a4572726f723c52756e74696d653e00130040436f6e76696374696f6e566f74696e670400d10a01a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4572726f723c52756e74696d653e001400245265666572656e64610400190b018070616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d653e0015002457686974656c69737404001d0b018070616c6c65745f77686974656c6973743a3a4572726f723c52756e74696d653e00170018436c61696d730400210b0158636c61696d733a3a4572726f723c52756e74696d653e0018001c56657374696e670400310b017870616c6c65745f76657374696e673a3a4572726f723c52756e74696d653e0019001c5574696c6974790400350b017870616c6c65745f7574696c6974793a3a4572726f723c52756e74696d653e001a001450726f78790400590b017070616c6c65745f70726f78793a3a4572726f723c52756e74696d653e001d00204d756c74697369670400650b017c70616c6c65745f6d756c74697369673a3a4572726f723c52756e74696d653e001e0020426f756e746965730400750b017c70616c6c65745f626f756e746965733a3a4572726f723c52756e74696d653e002200344368696c64426f756e746965730400810b019470616c6c65745f6368696c645f626f756e746965733a3a4572726f723c52756e74696d653e00260068456c656374696f6e50726f76696465724d756c746950686173650400bd0b01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4572726f723c52756e74696d653e00240024566f7465724c6973740400cd0b01f470616c6c65745f626167735f6c6973743a3a4572726f723c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e0025003c4e6f6d696e6174696f6e506f6f6c730400110c019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4572726f723c52756e74696d653e0027002c46617374556e7374616b650400250c018c70616c6c65745f666173745f756e7374616b653a3a4572726f723c52756e74696d653e0028004044656c6567617465645374616b696e670400310c01a070616c6c65745f64656c6567617465645f7374616b696e673a3a4572726f723c52756e74696d653e0029003c5374616b696e674168436c69656e740400550c01b870616c6c65745f7374616b696e675f6173796e635f61685f636c69656e743a3a4572726f723c52756e74696d653e002a0034436f6e66696775726174696f6e0400650c01a070617261636861696e735f636f6e66696775726174696f6e3a3a4572726f723c52756e74696d653e0033003450617261496e636c7573696f6e0400a50c019070617261636861696e735f696e636c7573696f6e3a3a4572726f723c52756e74696d653e0035003050617261496e686572656e740400bd0c01a470617261636861696e735f70617261735f696e686572656e743a3a4572726f723c52756e74696d653e0036001450617261730400190d018070617261636861696e735f70617261733a3a4572726f723c52756e74696d653e0038001048726d700400490d017c70617261636861696e735f68726d703a3a4572726f723c52756e74696d653e003c0034506172617344697370757465730400690d018c70617261636861696e735f64697370757465733a3a4572726f723c52756e74696d653e003e00345061726173536c617368696e6704007d0d018c70617261636861696e735f736c617368696e673a3a4572726f723c52756e74696d653e003f00204f6e44656d616e640400ad0d019070617261636861696e735f6f6e5f64656d616e643a3a4572726f723c52756e74696d653e00400068436f726574696d6541737369676e6d656e7450726f76696465720400d90d01b070617261636861696e735f61737369676e65725f636f726574696d653a3a4572726f723c52756e74696d653e004100245265676973747261720400e50d017c70617261735f7265676973747261723a3a4572726f723c52756e74696d653e00460014536c6f74730400ed0d0154736c6f74733a3a4572726f723c52756e74696d653e0047002041756374696f6e730400010e016061756374696f6e733a3a4572726f723c52756e74696d653e0048002443726f77646c6f616e04000d0e016463726f77646c6f616e3a3a4572726f723c52756e74696d653e00490020436f726574696d650400110e0160636f726574696d653a3a4572726f723c52756e74696d653e004a00485374617465547269654d6967726174696f6e0400ad0801ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4572726f723c52756e74696d653e0062002458636d50616c6c657404007d0e016870616c6c65745f78636d3a3a4572726f723c52756e74696d653e006300304d657373616765517565756504009d0e019070616c6c65745f6d6573736167655f71756575653a3a4572726f723c52756e74696d653e006400244173736574526174650400a10e018470616c6c65745f61737365745f726174653a3a4572726f723c52756e74696d653e0065001442656566790400ad0e017070616c6c65745f62656566793a3a4572726f723c52756e74696d653e00c8002852634d69677261746f720400bd0e018870616c6c65745f72635f6d69677261746f723a3a4572726f723c52756e74696d653e00ff0000f41853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730101040234d9080400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000dd0804000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e50686173650000d508040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a6564557067726164650000e908040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01ad0101581830426c6f636b57656967687473ed08010207b0bde93603000b00204aa9d10113ffffffffffffffff222d0d1e00010bb8845c8f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf010000222d0d1e00010bb80caff9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040222d0d1e0000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e677468f9083000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e20446257656967687401094038ca38010000000098aaf904000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6e05092d0520706f6c6b61646f743c7061726974792d706f6c6b61646f740000000080841e000000000060c51ff1fa3f5d0cca01000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a0600000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0d00000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c01000000fbc577b9d747efd6010000001a000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e28535335385072656669789d0108000014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e0115090000245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e184167656e6461010104051019090400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c5265747269657300010402842909040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b7570000104050484040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01bd01018008344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e012d09010020507265696d6167650120507265696d6167650c24537461747573466f72000104063431090400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f72000104063439090400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f72000104066907490904000001c501019400014d090a001042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f726974696573010051090400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100dd0120000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100dd0120000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e67650000e50104000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100510904000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e01010405105d0904000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000650904000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e65737301008804001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f63685374617274010084200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e66696700007d0904000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e66696700007d090400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100810904002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01cd0100103445706f63684475726174696f6e302060090000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d653020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e018d0902002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e01f1010004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0003001c496e6469636573011c496e646963657304204163636f756e7473000104021091090400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e01f5010198041c4465706f736974184000e8764817000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01950904002042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b7301010402009909040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602052657365727665730101040200a90904000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6014486f6c64730101040200b5090400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a65730101040200dd090400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e010102019c10484578697374656e7469616c4465706f736974184000e40b5402000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60284d6178467265657a657310100800000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e01f1090500485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100090740000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e0100f5090400000001a804604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00200028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e0000000006001c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100050204000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100b410000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c65646765720001040200f9090400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e1450617965650001040500b004000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500bc0800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500010a04004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b657273000104050090040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e244163746976654572610000090a040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b6572730101080505dd070d0a0c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f766572766965770001080505dd07190a040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c69707065640101080505dd070d0a0c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c050505e5071d0a040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d6564526577617264730101080505dd071902040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f7250726566730101080505dd07bc0800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510210a14000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100c404000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000150204000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e0100b410000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010405102d0a040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100d90804001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e4572610001080505dd07350a040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e4572610001080505dd0718040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e730001040500390a0400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c61736801010405ed073d0a800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e384368696c6c5468726573686f6c640000150204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e010d0201ac1c30486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010000200002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e3c4d617856616c696461746f725365741010b004000004150120546865206162736f6c757465206d6178696d756d206f662077696e6e65722076616c696461746f727320746869732070616c6c65742073686f756c642072657475726e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e01410a0700204f6666656e63657301204f6666656e636573081c5265706f7274730001040534450a040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e64657801010805054d0ac9010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001c80000080028486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051069070400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e6765000084040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c617374290001d0000021001c53657373696f6e011c53657373696f6e1c2856616c696461746f7273010005020400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100510a0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100590a0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b65797300010405004d020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e657200010405650a00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01490201d404284b65794465706f73697418400000000000000000000000000000000004a42054686520616d6f756e7420746f2062652068656c64207768656e2073657474696e67206b6579732e016d0a09001c4772616e647061011c4772616e6470611c1453746174650100710a04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000750a040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c65640000840400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100790a04000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01650201d80c384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e017d0a0b0048417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100810a0400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100810a04000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000d00205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001040510890a040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c7301008d0a040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e64730001040510910a040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e3c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e01910201e8182c5370656e64506572696f64101000460500048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e990a10102700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c657449649d0a2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f64101080c613000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e2c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e01a10a130040436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505a507a50ad800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f720101040500c50a04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e01950201910108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010c0890100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01d10a1400245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f720001040210d50a040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b5175657565010104059d01f50a0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e74010104059d0110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01a10201a10114445375626d697373696f6e4465706f736974184000e40b5402000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b73010b151a40000064726f6f74000000000000000000000000000000000000000000010000000080c6a47e8d03000000000000000000b00400000027060040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000000407a10f35a000000000000000000002c01000000270600640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a0000000080f420e6b500000000000000000000b00400000027060040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000000a0724e180900000000000000000000b004000000270600c0890100403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000000407a10f35a00000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000000406352bfc601000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c800000000e40b540200000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f7469707065720000000000000000000000000000006400000000e8764817000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000000010a5d4e800000000000000000000006009000000270600807000004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e64657200000000000000000000003200000000204aa9d10100000000000000000000600900000027060000e1000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e64657200000000000000000000000000003200000000409452a303000000000000000000006009000000270600c0890100403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e01190b15001c4f726967696e73000000000016002457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c00010405349004000001c502010d0800011d0b170018436c61696d730118436c61696d731418436c61696d7300010406d5021804000014546f74616c0100184000000000000000000000000000000000001c56657374696e6700010406d502dd02040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e6700010406d502e502040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d730001040600d5020400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e01c902011d08041850726566697838888450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a0001210b18001c56657374696e67011c56657374696e67081c56657374696e670001040200250b040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e01002d0b04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e01e90201210808444d696e5665737465645472616e73666572184000e40b5402000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001310b19001c5574696c6974790001f102012508044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01350b1a001450726f7879011450726f7879081c50726f786965730101040500390b4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500490b44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01f902012908184050726f78794465706f7369744261736518400084b2952e000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f7218408066ab1300000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f7369744261736518400084b2952e000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184000cd562700000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01590b1d00204d756c746973696701204d756c746973696704244d756c746973696773000108050251075d0b040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e0105030131080c2c4465706f736974426173651840008c61c52e000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184000d012130000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01650b1e0020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e20426f756e746965730001040510690b0400047820426f756e7469657320746861742068617665206265656e206d6164652e48426f756e74794465736372697074696f6e730001040510710b0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e3c426f756e7479417070726f76616c7301008d0a040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e0111030135082444426f756e74794465706f73697442617365184000e40b5402000000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e60426f756e74794465706f7369745061796f757444656c6179101000000000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e48426f756e7479557064617465506572696f6410100004170318f4205468652074696d65206c696d697420666f7220612063757261746f7220746f20616374206265666f7265206120626f756e747920657870697265732e0055012054686520706572696f64207468617420737461727473207768656e20612063757261746f7220697320617070726f7665642c20647572696e672077686963682074686579206d7573742065786563757465206f725501207570646174652074686520626f756e7479207669612060657874656e645f626f756e74795f657870697279602e204966206d69737365642c2074686520626f756e747920657870697265732c20616e642074686555012063757261746f72206d617920626520736c61736865642e2049662060426c6f636b4e756d626572466f723a3a4d4158602c20626f756e7469657320737461792061637469766520696e646566696e6974656c792cb82072656d6f76696e6720746865206e65656420666f722060657874656e645f626f756e74795f657870697279602e6043757261746f724465706f7369744d756c7469706c696572990a1020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e4443757261746f724465706f7369744d61783502440100204aa9d10100000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e4443757261746f724465706f7369744d696e3502440100e87648170000000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e48426f756e747956616c75654d696e696d756d184000e876481700000000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e48446174614465706f73697450657242797465184000e1f5050000000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e4c4d6178696d756d526561736f6e4c656e6774681010004000000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c756501750b2200344368696c64426f756e7469657301344368696c64426f756e746965731c404368696c64426f756e7479436f756e740100101000000000086d0120444550524543415445443a205265706c6163656420776974682060506172656e74546f74616c4368696c64426f756e74696573602073746f72616765206974656d206b656570696e672064656469636174656420636f756e7473550120666f72206561636820706172656e7420626f756e74792e204e756d626572206f6620746f74616c206368696c6420626f756e746965732e2057696c6c2062652072656d6f76656420696e204d617920323032352e4c506172656e744368696c64426f756e74696573010104051010100000000008cc204e756d626572206f6620616374697665206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e60506172656e74546f74616c4368696c64426f756e746965730101040510101000000000044101204e756d626572206f6620746f74616c206368696c6420626f756e746965732070657220706172656e7420626f756e74792c20696e636c7564696e6720636f6d706c6574656420626f756e746965732e344368696c64426f756e74696573000108050584790b04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e644368696c64426f756e74794465736372697074696f6e735631000108050584710b04000c290120546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e20496e6465786564206279206028706172656e745f69642c206368696c645f696429602e006d012054686973206974656d207265706c616365732074686520604368696c64426f756e74794465736372697074696f6e73602073746f72616765206974656d2066726f6d207468652056302073746f726167652076657273696f6e2e505630546f56314368696c64426f756e74794964730001040510840400145d0120546865206d617070696e67206f6620746865206368696c6420626f756e7479206964732066726f6d2073746f726167652076657273696f6e206056306020746f20746865206e657720605631602076657273696f6e2e006d0120546865206056306020696473206261736564206f6e20746f74616c206368696c6420626f756e747920636f756e74205b604368696c64426f756e7479436f756e74605d602e2054686520605631602076657273696f6e206964734101206261736564206f6e20746865206368696c6420626f756e747920636f756e742070657220706172656e7420626f756e7479205b60506172656e74546f74616c4368696c64426f756e74696573605d2e650120546865206974656d20696e74656e64656420736f6c656c7920666f7220636c69656e7420636f6e76656e69656e636520616e64206e6f74207573656420696e207468652070616c6c6574277320636f7265206c6f6769632e4c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e01150301390808644d61784163746976654368696c64426f756e7479436f756e74101064000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e5c4368696c64426f756e747956616c75654d696e696d756d184000e40b540200000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e01810b260068456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e3043757272656e745068617365010045080400043c2043757272656e742070686173652e38517565756564536f6c7574696f6e0000850b04000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e20536e617073686f740000a10b0400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e40536e617073686f744d657461646174610000f1030400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e5c5369676e65645375626d697373696f6e496e64696365730100ad0b0400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e505369676e65645375626d697373696f6e734d61700001040510b90b04001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e544d696e696d756d556e7472757374656453636f72650000ed030400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e011903013d083c544265747465725369676e65645468726573686f6c64b41000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e384f6666636861696e52657065617410101200000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e3c4d696e657254785072696f72697479302065666666666666e604250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d7068617365505369676e65644d61785375626d697373696f6e731010100000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e3c5369676e65644d617857656967687428400b08c77258550113a3703d0ad7a370bd1494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e405369676e65644d6178526566756e647310100400000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e405369676e656452657761726442617365184000e40b54020000000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e445369676e65644465706f736974427974651840787d010000000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e4c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e284d617857696e6e6572731010b00400000cd4204d6178696d756d206e756d626572206f662077696e6e657273207468617420616e20656c656374696f6e20737570706f7274732e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e4c4d61784261636b65727350657257696e6e65721010e45700000c3101204d6178696d756d206e756d626572206f6620766f7465727320746861742063616e20737570706f727420612077696e6e657220696e20616e20656c656374696f6e20736f6c7574696f6e2e00e82054686973206973206e656564656420746f20656e7375726520656c656374696f6e20636f6d7075746174696f6e20697320626f756e6465642e384d696e65724d61784c656e67746810100000360000384d696e65724d617857656967687428400b08c77258550113a3703d0ad7a370bd00544d696e65724d6178566f746573506572566f746572101010000000003c4d696e65724d617857696e6e6572731010b00400000001bd0b240024566f7465724c6973740124566f7465724c69737414244c6973744e6f6465730001040500c10b04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530c50b04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e504e6578744e6f64654175746f5265626167676564000000040008050120506f696e74657220746861742072656d656d6265727320746865206e657874206e6f646520746861742077696c6c206265206175746f2d72656261676765642e0101205768656e20604e6f6e65602c20746865206e657874207363616e2077696c6c2073746172742066726f6d20746865206c697374206865616420616761696e2e104c6f636b00009004001084204c6f636b20616c6c207570646174657320746f20746869732070616c6c65742e00390120496620616e79206e6f646573206e65656473207570646174696e672c2072656d6f76616c206f72206164646974696f6e2064756520746f20612074656d706f72617279206c6f636b2c2074686574205b6043616c6c3a3a7265626167605d2063616e20626520757365642e010d04014d0808344261675468726573686f6c6473c90b0919210300e40b5402000000f39e809702000000a8b197e20200000094492e3603000000279c3a930300000003bccefa0300000042c01b6e040000001b4775ee04000000385e557d0500000046dc601c0600000089386ccd06000000b6ee809207000000fe7ee36d08000000e81b1a6209000000b019f4710a000000103592a00b000000cfc96ff10c00000041146d680e000000e79bda0910000000cee885da1100000028a9c7df13000000bb70931f160000008e4089a018000000810a096a1b000000366a48841e0000005bd36af821000000807c9cd025000000c95530182a000000bd63c1db2e00000071e0572934000000689092103a000000edc4d4a240000000699379f3470000008fd80c18500000004baf8a28590000006a16a63f630000000995177b6e00000078c5f4fb7a00000062c811e78800000051bf6d6598000000048eaba4a9000000544698d7bc00000091cac036d2000000175f1801ea000000bd15b27c0401000043358ff721010000b8fc84c84201000099673c506701000007e44efa8f010000b341833ebd010000027f2ea2ef0100009883bcb927020000164d652a66020000b49513acab0200002d8e820bf9020000a1e6982c4f030000a616080daf030000cc9d37c719040000a0d584959004000042e7e0d514050000028cd70da80500000f750aef4b060000ea8d2e5c02070000c3cb996ecd070000b1e5717caf080000aa2b8e1fab090000b5c1203dc30a000026d03d0efb0b000070c75929560d0000ebadda8cd80e0000f797dbaa86100000cff04476651200001f2660717a14000009a611becb1600001dfbe82f60190000943a3c603f1c00008afe89c4711f0000ced963c70023000003a92ae4f6260000fe72eec55f2b000036c9cc6948300000dae33245bf350000062a7470d43b00007c9732d69942000084a32468234a0000571ad45987520000e7f10262de5b00000db8760344660000ae0401ded67100007d9eb308b97e00001e044a76108d00003a1df064079d0000e04fafdaccae00005679f02f95c2000095c3aaa99ad80000967c05251ef10000177a66d6670c010028cb1f1ec82a0100fa282f75984c0100d57dc8743c7201007dc4b3fb229c0100365cde74c7ca01009eb8e142b3fe01000c31ae547f3802005fe101e8d57802006373da7e74c0020051d1a60d2e100300c7e9a468ed68030061c091f7b7cb0300bf27a1b7b03904007b1499941bb404008523ed22613c050069a5d4c512d40500ec8c934def7c0600f5aa901be83807008cbe5ddb260a080002978ce113f30800fae314435df60900ddf12dbafe160b002ebadc6f4a580c000c5518c4f2bd0d00f0bb5431154c0f00498e866b46071100b2c153de9ff41200278a2fb2ce191500b2399f84247d1700e199e704aa251a00ba13f5ab331b1d00264785cc7866200088bf803f2d1124001c9823f81d262800ccc422d450b12c00f088820528c03100367c6d7e896137006e9329d30aa63d008cbc6c1322a044000070f32a5c644c00b43b84699909550080b4abe450a95e00a0cda979db5f69004cc27f4cc74c7500d0ac0eba34938200483e0ccf3d5a910068c68e7469cda100281e6fa52b1db40098a92326747fc800f09a74634d30df0080cdfc4b8d72f8009014602d9a901401f0b413d945dd330120973596c1b4560150dcfbaead7d7d01e01198b947aaa80130c7ee16bbb9d801206e488697390e02a0fa4b1d72c74902c0117170b5128c02808a1643a6ded502c0f823b1a204280380af5970a2768303c06f2d87ff41e90340937fac8f925a040091097117b6d804400fdf5b212065050049c149446e0106008ebca6e56caf0600595686851c71078068aa34a4b7480880a1e29e52b9380900bdabe880e4430a002a72b4204c6d0b80f1c013335cb80c00a03ccbdce3280e80b8629a9e20c30f00de5693d2ca8b11005d7f4c93238813001a87df3504be1500a7ce4b84ef3318000110fbea24f11a00802ae5d1b5fd1d0022a134609d62210044216bf0da2925000261f1828f5e29006620cf851e0d2e008410195252433300a0c18fca8410390026ad1493cc853f00d0cd24662fb646009ce19a1cdab64e0058ccc20c5f9f5700200a7578fb89610030bbbbd6e4936c0060cba7dc9edd7800b83bc0425b8b8600b886236164c59500f8f15fdc93b8a600206a91c0d696b900d8efe28fc097ce0068299bf52ef9e5ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e504d61784175746f5265626167506572426c6f636b101000000000103501204d6178696d756d206e756d626572206f66206163636f756e74732074686174206d61792062652072652d626167676564206175746f6d61746963616c6c7920696e20606f6e5f69646c65602e00510120412076616c7565206f662060306020286f627461696e656420627920636f6e6669677572696e67206074797065204d61784175746f5265626167506572426c6f636b203d2028293b60292064697361626c6573342074686520666561747572652e01cd0b25003c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e2c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e4c476c6f62616c4d6178436f6d6d697373696f6e0000b404000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e2c506f6f6c4d656d626572730001040500d50b04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e54436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c426f6e646564506f6f6c730001040510e10b040004682053746f7261676520666f7220626f6e64656420706f6f6c732e54436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61702c526577617264506f6f6c730001040510f10b04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e54436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61703c537562506f6f6c7353746f726167650001040510f50b04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e64436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204d6574616461746101010405100d0c0400045c204d6574616461746120666f722074686520706f6f6c2e48436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e4c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e74436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617040436c61696d5065726d697373696f6e7301010405002d040402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e0111040151080c2050616c6c657449649d0a2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e304d6178556e626f6e64696e67101020000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e01110c27002c46617374556e7374616b65012c46617374556e7374616b651010486561640000190c04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e014504015908041c4465706f736974184000e40b54020000000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e01250c28004044656c6567617465645374616b696e67014044656c6567617465645374616b696e67102844656c656761746f72730001040500290c040010a4204d6170206f662044656c656761746f727320746f207468656972206044656c65676174696f6e602e00610120496d706c656d656e746174696f6e206e6f74653a20576520617265206e6f74207573696e67206120646f75626c65206d61702077697468206064656c656761746f726020616e6420606167656e7460206163636f756e746101206173206b6579732073696e63652077652077616e7420746f2072657374726963742064656c656761746f727320746f2064656c6567617465206f6e6c7920746f206f6e65206163636f756e7420617420612074696d652e50436f756e746572466f7244656c656761746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170184167656e747300010405002d0c04000488204d6170206f6620604167656e746020746f20746865697220604c6564676572602e40436f756e746572466f724167656e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000015d08082050616c6c657449649d0a2070792f646c73746b049020496e6a6563746564206964656e74696669657220666f72207468652070616c6c65742e4c536c6173685265776172644672616374696f6eb41080969800045101204672616374696f6e206f662074686520736c617368207468617420697320726577617264656420746f207468652063616c6c6572206f662070656e64696e6720736c61736820746f20746865206167656e742e01310c29003c5374616b696e674168436c69656e74013c5374616b696e674168436c69656e74243056616c696461746f725365740000350c04000cf820546865207175657565642076616c696461746f72207365747320666f72206120676976656e20706c616e6e696e672073657373696f6e20696e6465782e00ac20546869732069732072656365697665642076696120612063616c6c2066726f6d2041737365744875622e70496e636f6d706c65746556616c696461746f725365745265706f727400004d040400049020416e20696e636f6d706c6574652076616c696461746f7220736574207265706f72742e3c56616c696461746f72506f696e74730101040500101000000000109420416c6c206f662074686520706f696e7473206f66207468652076616c696461746f72732e006101205468697320697320706f70756c6174656420647572696e6720612073657373696f6e2c20616e6420697320666c757368656420616e642073656e74206f76657220766961205b6053656e64546f4173736574487562605d5420617420656163682073657373696f6e20656e642e104d6f646501005104040010d020496e64696361746573207468652063757272656e74206f7065726174696e67206d6f6465206f66207468652070616c6c65742e00710120546869732076616c75652064657465726d696e657320686f77207468652070616c6c6574206265686176657320696e20726573706f6e736520746f20696e636f6d696e6720616e64206f7574676f696e67206d657373616765732c690120706172746963756c61726c7920776865746865722069742073686f756c642065786563757465206c6f676963206469726563746c792c2064656665722069742c206f722064656c656761746520697420656e746972656c792e704e65787453657373696f6e4368616e67657356616c696461746f7273000010040020690120412073746f726167652076616c7565207468617420697320736574207768656e206120606e65775f73657373696f6e602067697665732061206e65772076616c696461746f722073657420746f207468652073657373696f6ea42070616c6c65742c20616e6420697320636c6561726564206f6e20746865206e6578742063616c6c2e006d012054686520696e6e65722075333220697320746865206964206f66207468652073616964206163746976617465642076616c696461746f72207365742e205768696c65206e6f742072656c6576616e7420686572652c20676f6f64fc20746f206b6e6f7720746869732069732074686520706c616e6e696e672065726120696e646578206f66207374616b696e672d6173796e63206f6e2041482e005901204f6e636520636c65617265642c207765206b6e6f7720612076616c696461746f722073657420686173206265656e206163746976617465642c20616e64207468657265666f72652077652063616e2073656e642061442074696d657374616d7020746f2041482e5456616c696461746f725365744170706c69656441740000100400102501205468652073657373696f6e20696e64657820617420776869636820746865206c617465737420656c65637465642076616c696461746f722073657420776173206170706c6965642e0075012054686973206973207573656420746f2064657465726d696e6520696620616e206f6666656e63652c20676976656e20612073657373696f6e20696e6465782c20697320696e207468652063757272656e74206163746976652065726120206f72206e6f742e544f7574676f696e6753657373696f6e5265706f72740000390c040010dc20412073657373696f6e207265706f72742074686174206973206f7574676f696e672c20616e642073686f756c642062652073656e742e00750120546869732077696c6c20626520617474656d7074656420746f2062652073656e742c20706f737369626c79206f6e20657665727920606f6e5f696e697469616c697a65602063616c6c2c20756e74696c2069742069732073656e742cf4206f7220746865207365636f6e642076616c75652072656163686573207a65726f2c20617420776869636820706f696e742077652064726f702069742e604f6666656e636553656e6451756575654f6666656e6365730101040510450c040004310120496e7465726e616c2073746f72616765206974656d206f66205b604f6666656e636553656e645175657565605d2e2053686f756c64206e6f742062652075736564206d616e75616c6c792e584f6666656e636553656e645175657565437572736f72010010100000000004310120496e7465726e616c2073746f72616765206974656d206f66205b604f6666656e636553656e645175657565605d2e2053686f756c64206e6f742062652075736564206d616e75616c6c792e0149040161080001550c2a004050617261636861696e734f726967696e000000000032107901205468657265206973206e6f2077617920746f20726567697374657220616e206f726967696e207479706520696e2060636f6e7374727563745f72756e74696d656020776974686f757420612070616c6c657420746865206f726967696e302062656c6f6e677320746f2e0075012054686973206d6f64756c652066756c66696c6c73206f6e6c79207468652073696e676c6520707572706f7365206f6620686f7573696e672074686520604f726967696e6020696e2060636f6e7374727563745f72756e74696d65602e34436f6e66696775726174696f6e0134436f6e66696775726174696f6e0c30416374697665436f6e6669670100590c410300003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c901809698000000000000000000000000000500000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3850656e64696e67436f6e6669677301005d0c04001c7c2050656e64696e6720636f6e66696775726174696f6e206368616e6765732e00590120546869732069732061206c697374206f6620636f6e66696775726174696f6e206368616e6765732c2065616368207769746820612073657373696f6e20696e6465782061742077686963682069742073686f756c6430206265206170706c6965642e00610120546865206c69737420697320736f7274656420617363656e64696e672062792073657373696f6e20696e6465782e20416c736f2c2074686973206c6973742063616e206f6e6c7920636f6e7461696e206174206d6f7374fc2032206974656d733a20666f7220746865206e6578742073657373696f6e20616e6420666f722074686520607363686564756c65645f73657373696f6e602e58427970617373436f6e73697374656e6379436865636b01002004000861012049662074686973206973207365742c207468656e2074686520636f6e66696775726174696f6e20736574746572732077696c6c206279706173732074686520636f6e73697374656e637920636865636b732e2054686973b4206973206d65616e7420746f2062652075736564206f6e6c7920617320746865206c617374207265736f72742e015504000001650c33002c5061726173536861726564012c5061726173536861726564104c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e64696365730100690c040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b65797301006d0c0400085501205468652070617261636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e1d0120636f6e73656e7375732e20546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e4c416c6c6f77656452656c6179506172656e74730100710c140000000000046c20416c6c20616c6c6f7765642072656c61792d706172656e74732e01790400000034003450617261496e636c7573696f6e013450617261496e636c7573696f6e0408563100010405b5029d0c04001461012043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e205468657920666f726d206120636861696e207374617274696e672066726f6d20746865206c61746573746c20696e636c756465642068656164206f662074686520706172612e610120557365206120646966666572656e742070726566697820706f73742d6d6967726174696f6e20746f2076312c2073696e636520746865207630206050656e64696e67417661696c6162696c697479602073746f72616765710120776f756c64206f74686572776973652068617665207468652065786163742073616d652070726566697820776869636820636f756c6420636175736520756e646566696e6564206265686176696f7572207768656e20646f696e673c20746865206d6967726174696f6e2e017d040169080001a50c35003050617261496e686572656e74013050617261496e686572656e740820496e636c75646564000090040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e304f6e436861696e566f7465730000a90c04000445012053637261706564206f6e20636861696e206461746120666f722065787472616374696e67207265736f6c7665642064697370757465732061732077656c6c206173206261636b696e6720766f7465732e018104000001bd0c360034506172615363686564756c65720134506172615363686564756c65720c3c56616c696461746f7247726f7570730100c10c04001c6d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f74207468656d012062726f6164657220736574206f6620506f6c6b61646f742076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722070617261636861696e7320647572696e673820746869732073657373696f6e2e00490120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662070617261636861696e7320616e6420706172617468726561646901206d756c7469706c65786572732e20526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a20736166655020757070657220626f756e642061742031306b2e4453657373696f6e5374617274426c6f636b01001010000000001c69012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e733c2068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662070617261636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e28436c61696d51756575650100c50c0400085901204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20546865206056656344657175656020726570726573656e7473207468652061737369676e6d656e747320746f20626560207363686564756c6564206f6e207468617420636f72652e000000003700145061726173011450617261735840507666416374697665566f74654d617000010405bd04d90c040010b420416c6c2063757272656e746c792061637469766520505646207072652d636865636b696e6720766f7465732e002c20496e76617269616e743a7501202d20546865726520617265206e6f20505646207072652d636865636b696e6720766f74657320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e44507666416374697665566f74654c6973740100e90c040004350120546865206c697374206f6620616c6c2063757272656e746c79206163746976652050564620766f7465732e20417578696c6961727920746f2060507666416374697665566f74654d6170602e2850617261636861696e730100ed0c040010690120416c6c206c6561736520686f6c64696e672070617261636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e204f6e2064656d616e642070617261636861696e7320617265206e6f742820696e636c756465642e00e820436f6e7369646572207573696e6720746865205b6050617261636861696e734361636865605d2074797065206f66206d6f64696679696e672e38506172614c6966656379636c657300010405b502f10c040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e14486561647300010405b502dd04040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e444d6f7374526563656e74436f6e7465787400010405b5021004000429012054686520636f6e74657874202872656c61792d636861696e20626c6f636b206e756d62657229206f6620746865206d6f737420726563656e742070617261636861696e20686561642e3c43757272656e74436f64654861736800010405b502bd0404000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654861736800010405f50cbd0404001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405b502f90c0800000c4901205061737420636f6465206f662070617261636861696e732e205468652070617261636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b020746f206b65657020697420617661696c61626c6520666f7220617070726f76616c20636865636b6572732e3c50617374436f64655072756e696e670100050d04001869012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f6465690120776173207265706c616365642e204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465643d01206865696768742061742077686963682074686520636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e6d01205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f646d01207374617274696e672066726f6d207468652074696d65206174207768696368207468652070617261636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f6465557067726164657300010405b502100400103d012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f7220612070617261636861696e2e00650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e50467574757265436f6465557067726164657341740100050d040020ac20546865206c697374206f66207570636f6d696e672066757475726520636f64652075706772616465732e006d012045616368206974656d20697320612070616972206f66207468652070617261636861696e20616e642074686520657870656374656420626c6f636b2061742077686963682074686520757067726164652073686f756c642062655101206170706c6965642e2054686520757067726164652077696c6c206265206170706c6965642061742074686520676976656e2072656c617920636861696e20626c6f636b2e20496e20636f6e747261737420746f7501205b60467574757265436f64655570677261646573605d207468697320636f646520757067726164652077696c6c206265206170706c696564207265676172646c657373207468652070617261636861696e206d616b696e6720616e79442070726f6772657373206f72206e6f742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e38467574757265436f64654861736800010405b502bd0404000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e48417574686f72697a6564436f64654861736800010405b502090d0400046d012054686520636f6465206861736820617574686f72697a6174696f6e7320666f72206120706172612077686963682077696c6c2065787069726520606578706972655f6174602060426c6f636b4e756d626572466f723c543e602e5055706772616465476f41686561645369676e616c00010405b5020d0d040028750120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612070617261636861696e206120676f2d6168656164207769746820696e2074686520757067726164652c2070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e550120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e6775012070617261636861696e2063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652070617261636861696e277320626c6f636b20697320696e636c756465642c20746865702076616c7565206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e60557067726164655265737472696374696f6e5369676e616c00010405b502110d040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732070617261636861696e2e0059012054686973206d617920626520612062656361757365207468652070617261636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792070617261636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662070617261636861696e732e4055706772616465436f6f6c646f776e730100050d04000c510120546865206c697374206f662070617261636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e6755706772616465730100050d0400189020546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e0071012045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b206974402069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e7351756575650101040510ed0c04000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e6573697300010405b502150d040010a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e006501204e4f5445207468617420616674657220505646207072652d636865636b696e6720697320656e61626c65642074686520706172612067656e65736973206172672077696c6c2068617665206974277320636f646520736574610120746f20656d7074792e20496e73746561642c2074686520636f64652077696c6c20626520736176656420696e746f207468652073746f726167652072696768742061776179207669612060436f6465427948617368602e38436f64654279486173685265667301010406bd0410100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f646542794861736800010406bd04d904040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e010d050179080440556e7369676e65645072696f726974793020ffffffffffffffff0001190d38002c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a656400009004002021012057686574686572207468652070617261636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e00710120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e657501206f66207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c659020666f72207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e67657301001d0d04001c682042756666657265642073657373696f6e206368616e6765732e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e01150500000039000c446d70010c446d700c54446f776e776172644d65737361676551756575657301010405b502250d040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d6573736167655175657565486561647301010405b502348000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e4444656c6976657279466565466163746f7201010405b502090740000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e000000003a001048726d70011048726d70305c48726d704f70656e4368616e6e656c5265717565737473000104051d052d0d040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c6973740100310d0400006c48726d704f70656e4368616e6e656c52657175657374436f756e7401010405b5021010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e590120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732074686174206861730501206028582c205f296020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e7401010405b5021010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c5265717565737473000104051d059004001c7101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e2101206368616e67652e205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c6973740100310d0400003848726d7057617465726d61726b7300010405b50210040010b8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a5501202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612c20202073657373696f6e2e3048726d704368616e6e656c73000104051d05350d04000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e64657801010405b502ed0c040034710120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f7369746520736964652e1420492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a5101202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028492c205029602e4d01202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e64657801010405b502ed0c0400004c48726d704368616e6e656c436f6e74656e7473010104051d05390d040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c4469676573747301010405b502410d0400186901204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a20576861742070617261732073656e742061206d657373616765206174e42074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e20496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e6d01202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468655420202073616d6520626c6f636b206e756d6265722e011905017d080001490d3c003c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f145041737369676e6d656e744b657973556e7361666501004d0d04000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610510d04000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e2c4163636f756e744b657973000104061005020400047101205468652076616c696461746f72206163636f756e74206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2070617261636861696e20636f6e73656e7375732e5453657373696f6e4578656375746f72506172616d7300010406105d04040004c4204578656375746f7220706172616d657465722073657420666f72206120676976656e2073657373696f6e20696e646578000000003d00345061726173446973707574657301345061726173446973707574657314444c6173745072756e656453657373696f6e000010040008010120546865206c617374207072756e65642073657373696f6e2c20696620616e792e20416c6c20646174612073746f7265642062792074686973206d6f64756c6554207265666572656e6365732073657373696f6e732e20446973707574657300010805025d0d610d040004050120416c6c206f6e676f696e67206f7220636f6e636c7564656420646973707574657320666f7220746865206c617374207365766572616c2073657373696f6e732e444261636b6572734f6e446973707574657300010805025d0d650d0400089c204261636b696e6720766f7465732073746f72656420666f72206561636820646973707574652e8c20546869732073746f72616765206973207573656420666f7220736c617368696e672e20496e636c7564656400010805025d0d10040008450120416c6c20696e636c7564656420626c6f636b73206f6e2074686520636861696e2c2061732077656c6c2061732074686520626c6f636b206e756d62657220696e207468697320636861696e207468617459012073686f756c64206265207265766572746564206261636b20746f206966207468652063616e64696461746520697320646973707574656420616e642064657465726d696e656420746f20626520696e76616c69642e1846726f7a656e0100b8040010110120576865746865722074686520636861696e2069732066726f7a656e2e2053746172747320617320604e6f6e65602e205768656e20746869732069732060536f6d65602c35012074686520636861696e2077696c6c206e6f742061636365707420616e79206e65772070617261636861696e20626c6f636b7320666f72206261636b696e67206f7220696e636c7573696f6e2c090120616e64206974732076616c756520696e6469636174657320746865206c6173742076616c696420626c6f636b206e756d62657220696e2074686520636861696e2ef82049742063616e206f6e6c7920626520736574206261636b20746f20604e6f6e656020627920676f7665726e616e636520696e74657276656e74696f6e2e0121050181080001690d3e00345061726173536c617368696e6701345061726173536c617368696e670840556e6170706c696564536c617368657300010805025d0d6d0d040004902056616c696461746f72732070656e64696e67206469737075746520736c61736865732e4856616c696461746f72536574436f756e747300010405101004000484206056616c696461746f72536574436f756e7460207065722073657373696f6e2e0125050000017d0d3f00204f6e44656d616e6401204f6e44656d616e641838506172614964416666696e69747900010405b502810d04000c7101204d617073206120605061726149646020746f2060436f7265496e6465786020616e64206b6565707320747261636b206f6620686f77206d616e792061737369676e6d656e747320746865207363686564756c65722068617320696e5d012069742773206c6f6f6b61686561642e204b656570696e6720747261636b206f66207468697320616666696e6974792070726576656e747320706172616c6c656c20657865637574696f6e206f66207468652073616d659c206050617261496460206f6e2074776f206f72206d6f72652060436f7265496e6465786065732e2c51756575655374617475730100850d64000064a7b3b6e00d000000000000000000000000000000000004dc204f766572616c6c20737461747573206f662071756575652028626f74682066726565202b20616666696e69747920656e7472696573292c46726565456e74726965730100990d0400046101205072696f7269747920717565756520666f7220616c6c206f726465727320776869636820646f6e27742079657420286f72206e6f7420616e79206d6f726529206861766520616e7920636f726520616666696e6974792e3c416666696e697479456e7472696573010104057108990d040004490120517565756520656e74726965732074686174206172652063757272656e746c7920626f756e6420746f206120706172746963756c617220636f72652064756520746f20636f726520616666696e6974792e1c526576656e75650100a50d040004fc204b6565707320747261636b206f6620616363756d756c6174656420726576656e75652066726f6d206f6e2064656d616e64206f726465722073616c65732e1c43726564697473010104020018400000000000000000000000000000000004b8204b6565707320747261636b206f662063726564697473206f776e65642062792065616368206163636f756e742e013505018d080c4c5472616666696344656661756c7456616c7565090740000064a7b3b6e00d000000000000000004cc205468652064656661756c742076616c756520666f72207468652073706f742074726166666963206d756c7469706c6965722e504d6178486973746f726963616c526576656e75651010a000000008d420546865206d6178696d756d206e756d626572206f6620626c6f636b7320736f6d6520686973746f726963616c20726576656e75656020696e666f726d6174696f6e2073746f72656420666f722e2050616c6c657449649d0a2070792f6f6e646d6404b4204964656e74696669657220666f722074686520696e7465726e616c20726576656e75652062616c616e63652e01ad0d400068436f726574696d6541737369676e6d656e7450726f76696465720168436f726574696d6541737369676e6d656e7450726f76696465720834436f72655363686564756c657300010404b10db50d0400106c205363686564756c65642061737369676e6d656e7420736574732e006d012041737369676e6d656e7473206173206f662074686520676976656e20626c6f636b206e756d6265722e20546865792077696c6c20676f20696e746f207374617465206f6e63652074686520626c6f636b206e756d626572206973d020726561636865642028616e64207265706c6163652077686174657665722077617320696e207468657265206265666f7265292e3c436f726544657363726970746f7273010104047108b90d08000010a02041737369676e6d656e7473207768696368206172652063757272656e746c79206163746976652e00690120546865792077696c6c206265207069636b65642066726f6d206050656e64696e6741737369676e6d656e747360206f6e636520776520726561636820746865207363686564756c656420626c6f636b206e756d62657220696e58206050656e64696e6741737369676e6d656e7473602e00000001d90d41002452656769737472617201245265676973747261720c2c50656e64696e675377617000010405b502b502040004642050656e64696e672073776170206f7065726174696f6e732e14506172617300010405b502dd0d040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0071012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d61795501206f6e6c7920646f20736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e657874467265655061726149640100b5021000000000046020546865206e65787420667265652060506172614964602e013905019108082c506172614465706f73697418400010a5d4e8000000000000000000000008d420546865206465706f73697420746f206265207061696420746f2072756e2061206f6e2d64656d616e642070617261636861696e2e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f7369745065724279746518408096980000000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01e50d460014536c6f74730114536c6f747304184c656173657301010405b502e90d040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642070617261636861696e2e006101205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f66207468652901207365636f6e642076616c756573206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652070617261636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572b42065786973746564292061732066617220617320746869732070616c6c657420697320636f6e6365726e65642e00510120496620612070617261636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e013d05019508082c4c65617365506572696f6410100075120004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f6666736574101000100e0004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01ed0d47002041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f000084040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405f10d18040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510f50d04000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e0141050199081030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001010e48002443726f77646c6f616e012443726f77646c6f616e101446756e647300010405b502050e0400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e657752616973650100ed0c0400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787446756e64496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c652066756e6420696e646578014905019d080c2050616c6c657449649d0a2070792f6366756e64080d01206050616c6c657449646020666f72207468652063726f77646c6f616e2070616c6c65742e20416e20617070726f7072696174652076616c756520636f756c6420626564206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184000743ba40b000000000000000000000008610120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c792062657c206174206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e010d0e490020436f726574696d6500015d0501a108082042726f6b657249641010ed03000004882054686520506172614964206f662074686520636f726574696d6520636861696e2e4442726f6b6572506f744c6f636174696f6e59018c0101006d6f646c70792f62726f6b65000000000000000000000000000000000000000004842054686520636f726574696d6520636861696e20706f74206c6f636174696f6e2e01110e4a00485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f6365737301007d053800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e284175746f4c696d6974730100750504000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000790504000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e01710501a50804244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e01ad0862002458636d50616c6c6574012458636d50616c6c65743c305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230150e0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502290e10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502290e30040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502290e2d0e04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100310e04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e00003d0e0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202450e490e040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200590e040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d000045060400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e005901204f6e6c792072656c6576616e7420696620746869732070616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e44417574686f72697a6564416c6961736573000104028d01650e04000c6501204d6170206f6620617574686f72697a656420616c696173657273206f66206c6f63616c206f726967696e732e2045616368206c6f63616c206c6f636174696f6e2063616e20617574686f72697a652061206c697374206f665901206f74686572206c6f636174696f6e7320746f20616c69617320696e746f2069742e204561636820616c6961736572206973206f6e6c792076616c696420756e74696c2069747320696e6e65722060657870697279603820626c6f636b206e756d6265722e01890501b1081044556e6976657273616c4c6f636174696f6e59010c0109020484205468697320636861696e277320556e6976657273616c204c6f636174696f6e2e504164766572746973656458636d56657273696f6e10100500000008250120546865206c617465737420737570706f727465642076657273696f6e2074686174207765206164766572746973652e2047656e6572616c6c79206a7573742073657420697420746f84206070616c6c65745f78636d3a3a43757272656e7458636d56657273696f6e602e284d61784c6f636b65727310100800000004190120546865206d6178696d756d206e756d626572206f66206c6f63616c2058434d206c6f636b73207468617420612073696e676c65206163636f756e74206d617920686176652e584d617852656d6f74654c6f636b436f6e73756d65727310100000000004fc20546865206d6178696d756d206e756d626572206f6620636f6e73756d65727320612073696e676c652072656d6f7465206c6f636b206d617920686176652e017d0e6300304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f7201010405fd06850e74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c53657276696365486561640000fd06040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e1450616765730001080505910e950e0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01f90601c10810204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010080000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874890640010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874890640010700a0db215d133333333333333333145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e019d0e64002441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e617469766500010402ec090704000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e64296001050701c9080001a10e650014426565667901144265656679142c417574686f7269746965730100a50e04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100a50e040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b0100b804000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e010d07000c384d6178417574686f7269746965731010a086010004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100002000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01ad0ec8000c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000c9003042656566794d6d724c656166013042656566794d6d724c65616608404265656679417574686f7269746965730100b10eb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f7269746965730100b10eb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e00000000ca002852634d69677261746f72012852634d69677261746f72544052634d6967726174696f6e53746167650100490704000484205468652052656c617920436861696e206d6967726174696f6e2073746174652e2852634163636f756e74730001040500b50e04000871012048656c7065722073746f72616765206974656d20746f206f627461696e20616e642073746f726520746865206b6e6f776e206163636f756e747320746861742073686f756c64206265206b657074207061727469616c6c79206f72582066756c6c79206f6e2052656c617920436861696e2e50436f756e746572466f7252634163636f756e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704452634d6967726174656442616c616e63650100b90e800000000000000000000000000000000000000000000000000000000000000000044d012048656c7065722073746f72616765206974656d20746f2073746f72652074686520746f74616c2062616c616e636520746861742073686f756c64206265206b657074206f6e2052656c617920436861696e2e6052634d6967726174656442616c616e6365417263686976650100b90e8000000000000000000000000000000000000000000000000000000000000000001861012048656c7065722073746f72616765206974656d20746f2073746f72652074686520746f74616c2062616c616e636520746861742073686f756c64206265206b657074206f6e2052656c617920436861696e206166746572510120697420697320636f6e73756d65642066726f6d20746865206052634d6967726174656442616c616e6365602073746f72616765206974656d20616e642073656e7420746f20746865204173736574204875622e0055012054686973206c657420757320746f2074616b65207468652076616c75652066726f6d20746865206052634d6967726174656442616c616e6365602073746f72616765206974656d20616e64206b656570207468656d0120605369676e616c4d6967726174696f6e46696e6973686020737461676520746f206265206964656d706f74656e74207768696c652070726573657276696e672074686573652076616c75657320666f7220746573747320616e644c206c6174657220646973636f7665726965732e4850656e64696e6758636d4d65737361676573000104053d07450604001468205468652070656e64696e672058434d206d657373616765732e004d0120436f6e7461696e732064617461206d6573736167657320746861742068617665206265656e2073656e7420746f207468652041737365742048756220627574206e6f742079657420636f6e6669726d65642e004d0120556e636f6e6669726d6564206d657373616765732063616e20626520726573656e742062792063616c6c696e6720746865205b6050616c6c65743a3a726573656e645f78636d605d2066756e6374696f6e2e70436f756e746572466f7250656e64696e6758636d4d65737361676573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61706c5075726550726f787943616e646964617465734d6967726174656400010405002004000c3901204163636f756e7473207468617420757365207468652070726f78792070616c6c657420746f2064656c6567617465207065726d697373696f6e7320616e642068617665206e6f206e6f6e63652e006d0120426f6f6c65616e2076616c7565206973207768657468657220746865792068617665206265656e206d6967726174656420746f20746865204173736574204875622e204e656564656420666f72206964656d706f74656e63792e4450656e64696e6758636d5175657269657300010405303404001c4d01205468652070656e64696e672058434d20726573706f6e7365207175657269657320616e642074686569722058434d2068617368207265666572656e63696e6720746865206d65737361676520696e2074686580205b6050656e64696e6758636d4d65737361676573605d2073746f726167652e006101205468652060517565727949646020697320746865206964656e7469666965722066726f6d20746865205b6070616c6c65745f78636d605d2071756572792068616e646c65722072656769737472792e205468652058434d09012070616c6c65742077696c6c206e6f746966792061626f75742074686520737461747573206f6620746865206d6573736167652062792063616c6c696e67207468651d01205b6050616c6c65743a3a726563656976655f71756572795f726573706f6e7365605d2066756e6374696f6e2077697468207468652060517565727949646020616e64207468652820726573706f6e73652e50556e70726f6365737365644d73674275666665720000100400044101204d616e75616c206f7665727269646520666f7220607479706520556e70726f6365737365644d73674275666665723a204765743c7533323e602e204c6f6f6b20746865726520666f7220646f63732e604168556d7051756575655072696f72697479436f6e6669670100f107040018e820546865207072696f72697479206f66207468652041737365742048756220554d5020717565756520647572696e67206d6967726174696f6e2e00750120436f6e74726f6c7320686f77207468652041737365742048756220554d502028557077617264204d6573736167652050617373696e67292071756575652069732070726f6365737365642072656c617469766520746f206f7468657259012071756575657320647572696e6720746865206d6967726174696f6e2070726f636573732e20546869732068656c707320656e737572652074696d656c792070726f63657373696e67206f66206d6967726174696f6e6901206d657373616765732e205468652064656661756c74207072696f72697479207061747465726e20697320646566696e656420696e207468652070616c6c657420636f6e66696775726174696f6e2c206275742063616e206265b0206f76657272696464656e20627920612073746f726167652076616c7565206f66207468697320747970652e1c4d616e616765720000000400109420416e206f7074696f6e616c206163636f756e74206964206f662061206d616e616765722e0045012054686973206163636f756e74206964206861732073696d696c61722070726976696c6567657320746f205b60436f6e6669673a3a41646d696e4f726967696e605d206578636570742074686174206974ec2063616e206e6f742073657420746865206d616e61676572206163636f756e742069642076696120607365745f6d616e61676572602063616c6c2e2443616e63656c6c657200000004000c9c20416e206f7074696f6e616c206163636f756e74206964206f6620612063616e63656c6c65722e00cc2054686973206163636f756e742069642063616e206f6e6c792073746f70207363686564756c6564206d6967726174696f6e2e4c4d6967726174696f6e5374617274426c6f636b0000100400105d012054686520626c6f636b206e756d62657220617420776869636820746865206d6967726174696f6e20626567616e20616e64207468652070616c6c657427732065787472696e736963732077657265206c6f636b65642e00150120546869732076616c756520697320736574207768656e20656e746572696e6720746865206057616974696e67466f724168602073746167652c20692e652e2c207768656ec4206052634d6967726174696f6e53746167653a3a69735f6f6e676f696e67282960206265636f6d6573206074727565602e444d6967726174696f6e456e64426c6f636b0000100400100d0120426c6f636b206e756d626572207768656e206d6967726174696f6e2066696e697368656420616e642065787472696e73696373207765726520756e6c6f636b65642e00fc205468697320697320736574207768656e20656e746572696e672074686520604d6967726174696f6e446f6e65602073746167652068656e6365207768656ec8206052634d6967726174696f6e53746167653a3a69735f66696e6973686564282960206265636f6d6573206074727565602e305761726d5570506572696f640000bd02040010c820546865206475726174696f6e206f662074686520707265206d6967726174696f6e207761726d2d757020706572696f642e006501205468697320697320746865206475726174696f6e206f6620746865207761726d2d757020706572696f64206265666f7265207468652064617461206d6967726174696f6e207374617274732e20447572696e672074686973710120706572696f642c20746865206d6967726174696f6e2077696c6c20626520696e206f6e676f696e6720737461746520616e642074686520636f6e6365726e65642065787472696e736963732077696c6c206265206c6f636b65642e34436f6f6c4f6666506572696f640000bd02040014d020546865206475726174696f6e206f662074686520706f7374206d6967726174696f6e20636f6f6c2d6f666620706572696f642e006501205468697320697320746865206475726174696f6e206f662074686520636f6f6c2d6f666620706572696f64206166746572207468652064617461206d6967726174696f6e2069732066696e69736865642e20447572696e677101207468697320706572696f642c20746865206d6967726174696f6e2077696c6c206265207374696c6c20696e206f6e676f696e6720737461746520616e642074686520636f6e6365726e65642065787472696e736963732077696c6c2c206265206c6f636b65642e2053657474696e67730000fd070400046020546865206d6967726174696f6e2073657474696e67732e404d616e616765724d756c74697369677301010405a9010502040004fc20546865206d756c7469736967204163636f756e74494473207468617420766f74657320746f206578656375746520612073706563696669632063616c6c2e504d616e616765724d756c7469736967526f756e6401001010000000000ca8205468652063757272656e7420726f756e64206f6620746865206d756c746973696720766f74696e672e00b020566f74657320617265206f6e6c792076616c696420666f72207468652063757272656e7420726f756e642e684d616e61676572566f746573496e43757272656e74526f756e6401010402001010000000000cdc20486f77206f6674656e2065616368207061727469636970616e7420766f74656420696e207468652063757272656e7420726f756e642e00a82057696c6c20626520636c65617265642061742074686520656e64206f66206561636820726f756e642e01450701cd080001bd0eff0004f901a9015905c10e2848436865636b4e6f6e5a65726f53656e646572c50e9040436865636b5370656356657273696f6ec90e1038436865636b547856657273696f6ecd0e1030436865636b47656e65736973d10e3438436865636b4d6f7274616c697479d50e3428436865636b4e6f6e6365dd0e902c436865636b576569676874e10e90604368617267655472616e73616374696f6e5061796d656e74e50e904850726576616c696461746541747465737473e90e9044436865636b4d6574616461746148617368ed0e88f50e6024496e666c6174696f6e04986578706572696d656e74616c5f696e666c6174696f6e5f70726564696374696f6e5f696e666f00f90e10d82052657475726e207468652063757272656e7420657374696d61746573206f662074686520696e666c6174696f6e20616d6f756e742e0051012054686973206973206d61726b6564206173206578706572696d656e74616c20696e206c69676874206f66205246432338392e204e6f6e657468656c6573732c2069747320757361676520697320686967686c792501207265636f6d6d656e646564206f76657220747279696e6720746f20726561642d73746f726167652c206f722072652d63726561746520746865206f6e636861696e206c6f6769632e0010436f72650c1c76657273696f6e00050904902052657475726e73207468652076657273696f6e206f66207468652072756e74696d652e34657865637574655f626c6f636b0414626c6f636b050f90046420457865637574652074686520676976656e20626c6f636b2e40696e697469616c697a655f626c6f636b0418686561646572d501110f04410120496e697469616c697a65206120626c6f636b20776974682074686520676976656e2068656164657220616e642072657475726e207468652072756e74696d6520657865637574697665206d6f64652e042101205468652060436f7265602072756e74696d65206170692074686174206576657279205375627374726174652072756e74696d65206e6565647320746f20696d706c656d656e742e204d657461646174610c206d6574616461746100150f048c2052657475726e7320746865206d65746164617461206f6620612072756e74696d652e4c6d657461646174615f61745f76657273696f6e041c76657273696f6e10190f10a42052657475726e7320746865206d65746164617461206174206120676976656e2076657273696f6e2e0005012049662074686520676976656e206076657273696f6e602069736e277420737570706f727465642c20746869732077696c6c2072657475726e20604e6f6e65602e750120557365205b6053656c663a3a6d657461646174615f76657273696f6e73605d20746f2066696e64206f75742061626f757420737570706f72746564206d657461646174612076657273696f6e206f66207468652072756e74696d652e446d657461646174615f76657273696f6e730019020ca42052657475726e732074686520737570706f72746564206d657461646174612076657273696f6e732e00c020546869732063616e206265207573656420746f2063616c6c20606d657461646174615f61745f76657273696f6e602e0401012054686520604d65746164617461602061706920747261697420746861742072657475726e73206d6574616461746120666f72207468652072756e74696d652e30426c6f636b4275696c646572103c6170706c795f65787472696e736963042465787472696e736963090f1d0f106c204170706c792074686520676976656e2065787472696e7369632e0039012052657475726e7320616e20696e636c7573696f6e206f7574636f6d652077686963682073706563696669657320696620746869732065787472696e73696320697320696e636c7564656420696e4c207468697320626c6f636b206f72206e6f742e3866696e616c697a655f626c6f636b00d50104682046696e697368207468652063757272656e7420626c6f636b2e4c696e686572656e745f65787472696e736963730420696e686572656e742d0f0d0f043d012047656e657261746520696e686572656e742065787472696e736963732e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e3c636865636b5f696e686572656e74730814626c6f636b050f10646174612d0f3d0f04550120436865636b20746861742074686520696e686572656e7473206172652076616c69642e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e047101205468652060426c6f636b4275696c646572602061706920747261697420746861742070726f7669646573207468652072657175697265642066756e6374696f6e616c69747920666f72206275696c64696e67206120626c6f636b2e484e6f6d696e6174696f6e506f6f6c73417069283c70656e64696e675f72657761726473040c77686f00180435012052657475726e73207468652070656e64696e67207265776172647320666f7220746865206d656d626572207468617420746865204163636f756e7449642077617320676976656e20666f722e44706f696e74735f746f5f62616c616e6365081c706f6f6c5f69641018706f696e7473181804f42052657475726e7320746865206571756976616c656e742062616c616e6365206f662060706f696e74736020666f72206120676976656e20706f6f6c2e4462616c616e63655f746f5f706f696e7473081c706f6f6c5f696410246e65775f66756e6473181804fc2052657475726e7320746865206571756976616c656e7420706f696e7473206f6620606e65775f66756e64736020666f72206120676976656e20706f6f6c2e48706f6f6c5f70656e64696e675f736c617368041c706f6f6c5f6964101804b02052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c2e506d656d6265725f70656e64696e675f736c61736804186d656d626572001810cc2052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c206d656d6265722e004d012049662070656e64696e6720736c617368206f6620746865206d656d626572206578636565647320604578697374656e7469616c4465706f736974602c2069742063616e206265207265706f72746564206f6e1c20636861696e2e74706f6f6c5f6e656564735f64656c65676174655f6d6967726174696f6e041c706f6f6c5f6964102020e42052657475726e7320747275652069662074686520706f6f6c20776974682060706f6f6c5f696460206e65656473206d6967726174696f6e2e00490120546869732063616e2068617070656e207768656e20746865206070616c6c65742d6e6f6d696e6174696f6e2d706f6f6c73602068617320737769746368656420746f207573696e672073747261746567794101205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b6529206275742074686520706f6f6ce8207374696c6c206861732066756e647320746861742077657265207374616b6564207573696e6720746865206f6c6465722073747261746567791901205b5472616e736665725374616b655d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a5472616e736665725374616b65292e205573658901205b606d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65295420746f206d6967726174652074686520706f6f6c2e7c6d656d6265725f6e656564735f64656c65676174655f6d6967726174696f6e04186d656d62657200201c29012052657475726e732074727565206966207468652064656c6567617465642066756e6473206f662074686520706f6f6c20606d656d62657260206e65656473206d6967726174696f6e2e00d8204f6e6365206120706f6f6c20686173207375636365737366756c6c79206d6967726174656420746f207468652073747261746567795501205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b65292c207468652066756e6473206f66207468651901206d656d6265722063616e206265206d696772617465642066726f6d20706f6f6c206163636f756e7420746f20746865206d656d6265722773206163636f756e742e205573652901205b606d6967726174655f64656c65676174696f6e605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f64656c65676174696f6e29a420746f206d696772617465207468652066756e6473206f662074686520706f6f6c206d656d6265722e506d656d6265725f746f74616c5f62616c616e6365040c77686f00180465012052657475726e732074686520746f74616c20636f6e747269627574696f6e206f66206120706f6f6c206d656d62657220696e636c7564696e6720616e792062616c616e6365207468617420697320756e626f6e64696e672e30706f6f6c5f62616c616e6365041c706f6f6c5f69641018049c20546f74616c2062616c616e636520636f6e747269627574656420746f2074686520706f6f6c2e34706f6f6c5f6163636f756e7473041c706f6f6c5f696410410f042d012052657475726e732074686520626f6e646564206163636f756e7420616e6420726577617264206163636f756e74206173736f63696174656420776974682074686520706f6f6c5f69642e04f82052756e74696d652061706920666f7220616363657373696e6720696e666f726d6174696f6e2061626f7574206e6f6d696e6174696f6e20706f6f6c732e285374616b696e674170690c446e6f6d696e6174696f6e735f71756f7461041c62616c616e636518100411012052657475726e7320746865206e6f6d696e6174696f6e732071756f746120666f722061206e6f6d696e61746f722077697468206120676976656e2062616c616e63652e5c657261735f7374616b6572735f706167655f636f756e74080c657261101c6163636f756e7400100439012052657475726e7320746865207061676520636f756e74206f66206578706f737572657320666f7220612076616c696461746f7220606163636f756e746020696e206120676976656e206572612e3c70656e64696e675f72657761726473080c657261101c6163636f756e740020043d012052657475726e7320747275652069662076616c696461746f7220606163636f756e74602068617320706167657320746f20626520636c61696d656420666f722074686520676976656e206572612e00585461676765645472616e73616374696f6e5175657565045076616c69646174655f7472616e73616374696f6e0c18736f75726365450f087478090f28626c6f636b5f6861736834490f24682056616c696461746520746865207472616e73616374696f6e2e0065012054686973206d6574686f6420697320696e766f6b656420627920746865207472616e73616374696f6e20706f6f6c20746f206c6561726e2064657461696c732061626f757420676976656e207472616e73616374696f6e2e45012054686520696d706c656d656e746174696f6e2073686f756c64206d616b65207375726520746f207665726966792074686520636f72726563746e657373206f6620746865207472616e73616374696f6e4d0120616761696e73742063757272656e742073746174652e2054686520676976656e2060626c6f636b5f686173686020636f72726573706f6e647320746f207468652068617368206f662074686520626c6f636b7c207468617420697320757365642061732063757272656e742073746174652e004501204e6f7465207468617420746869732063616c6c206d617920626520706572666f726d65642062792074686520706f6f6c206d756c7469706c652074696d657320616e64207472616e73616374696f6e73a4206d6967687420626520766572696669656420696e20616e7920706f737369626c65206f726465722e044d012054686520605461676765645472616e73616374696f6e5175657565602061706920747261697420666f7220696e746572666572696e67207769746820746865207472616e73616374696f6e2071756575652e444f6666636861696e576f726b6572417069043c6f6666636861696e5f776f726b65720418686561646572d5019004c82053746172747320746865206f66662d636861696e207461736b20666f7220676976656e20626c6f636b206865616465722e046420546865206f6666636861696e20776f726b6572206170692e3450617261636861696e486f7374882876616c696461746f7273006d0c047020476574207468652063757272656e742076616c696461746f72732e4076616c696461746f725f67726f75707300510f0c65012052657475726e73207468652076616c696461746f722067726f75707320616e6420726f746174696f6e20696e666f206c6f63616c697a6564206261736564206f6e20746865206879706f746865746963616c206368696c64610120206f66206120626c6f636b2077686f736520737461746520207468697320697320696e766f6b6564206f6e2e204e6f7465207468617420606e6f776020696e20746865206047726f7570526f746174696f6e496e666f60d02073686f756c642062652074686520737563636573736f72206f6620746865206e756d626572206f662074686520626c6f636b2e48617661696c6162696c6974795f636f72657300590f083501205969656c647320696e666f726d6174696f6e206f6e20616c6c20617661696c6162696c69747920636f7265732061732072656c6576616e7420746f20746865206368696c6420626c6f636b2e3d0120436f72657320617265206569746865722066726565206f72206f636375706965642e204672656520636f7265732063616e20686176652070617261732061737369676e656420746f207468656d2e647065727369737465645f76616c69646174696f6e5f64617461081c706172615f6964b50228617373756d7074696f6e750f790f146901205969656c647320746865207065727369737465642076616c69646174696f6e206461746120666f722074686520676976656e20605061726149646020616c6f6e67207769746820616e20617373756d7074696f6e2074686174d82073686f756c6420626520757365642069662074686520706172612063757272656e746c79206f63637570696573206120636f72652e0045012052657475726e7320604e6f6e656020696620656974686572207468652070617261206973206e6f742072656769737465726564206f722074686520617373756d7074696f6e20697320604672656564609820616e6420746865207061726120616c7265616479206f63637570696573206120636f72652e5c617373756d65645f76616c69646174696f6e5f64617461081c706172615f6964b5029c65787065637465645f7065727369737465645f76616c69646174696f6e5f646174615f6861736834810f0c69012052657475726e7320746865207065727369737465642076616c69646174696f6e206461746120666f722074686520676976656e20605061726149646020616c6f6e6720776974682074686520636f72726573706f6e64696e6775012076616c69646174696f6e20636f646520686173682e20496e7374656164206f6620616363657074696e6720617373756d7074696f6e2061626f75742074686520706172612c206d617463686573207468652076616c69646174696f6e29012064617461206861736820616761696e737420616e206578706563746564206f6e6520616e64207969656c647320604e6f6e65602069662074686579277265206e6f7420657175616c2e60636865636b5f76616c69646174696f6e5f6f757470757473081c706172615f6964b5021c6f757470757473c1042004150120436865636b732069662074686520676976656e2076616c69646174696f6e206f75747075747320706173732074686520616363657074616e63652063726974657269612e5c73657373696f6e5f696e6465785f666f725f6368696c6400100cf02052657475726e73207468652073657373696f6e20696e6465782065787065637465642061742061206368696c64206f662074686520626c6f636b2e00d020546869732063616e206265207573656420746f20696e7374616e7469617465206120605369676e696e67436f6e74657874602e3c76616c69646174696f6e5f636f6465081c706172615f6964b50228617373756d7074696f6e750fd504105501204665746368207468652076616c69646174696f6e20636f64652075736564206279206120706172612c206d616b696e672074686520676976656e20604f63637570696564436f7265417373756d7074696f6e602e0045012052657475726e7320604e6f6e656020696620656974686572207468652070617261206973206e6f742072656769737465726564206f722074686520617373756d7074696f6e20697320604672656564609820616e6420746865207061726120616c7265616479206f63637570696573206120636f72652e7863616e6469646174655f70656e64696e675f617661696c6162696c697479041c706172615f6964b502890f085d0120476574207468652072656365697074206f6620612063616e6469646174652070656e64696e6720617661696c6162696c6974792e20546869732072657475726e732060536f6d656020666f7220616e7920706172617325012061737369676e656420746f206f6363757069656420636f72657320696e2060617661696c6162696c6974795f636f7265736020616e6420604e6f6e6560206f74686572776973652e4063616e6469646174655f6576656e7473008d0f042d0120476574206120766563746f72206f66206576656e747320636f6e6365726e696e672063616e646964617465732074686174206f636375727265642077697468696e206120626c6f636b2e30646d715f636f6e74656e74730424726563697069656e74b502250d043d012047657420616c6c207468652070656e64696e6720696e626f756e64206d6573736167657320696e2074686520646f776e77617264206d65737361676520717565756520666f72206120706172612e78696e626f756e645f68726d705f6368616e6e656c735f636f6e74656e74730424726563697069656e74b502950f086501204765742074686520636f6e74656e7473206f6620616c6c206368616e6e656c732061646472657373656420746f2074686520676976656e20726563697069656e742e204368616e6e656c7320746861742068617665206e6f90206d6573736167657320696e207468656d2061726520616c736f20696e636c756465642e5c76616c69646174696f6e5f636f64655f62795f68617368041068617368bd04d504049c20476574207468652076616c69646174696f6e20636f64652066726f6d2069747320686173682e386f6e5f636861696e5f766f74657300a10f0431012053637261706520646973707574652072656c6576616e742066726f6d206f6e2d636861696e2c206261636b696e6720766f74657320616e64207265736f6c7665642064697370757465732e3073657373696f6e5f696e666f0414696e64657810a50f0cdc20476574207468652073657373696f6e20696e666f20666f722074686520676976656e2073657373696f6e2c2069662073746f7265642e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e687375626d69745f7076665f636865636b5f73746174656d656e74081073746d741105247369676e6174757265a104900c0101205375626d697473206120505646207072652d636865636b696e672073746174656d656e7420696e746f20746865207472616e73616374696f6e20706f6f6c2e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e54707666735f726571756972655f707265636865636b00e90c0c5d012052657475726e7320636f646520686173686573206f66205056467320746861742072657175697265207072652d636865636b696e672062792076616c696461746f727320696e2074686520616374697665207365742e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e5076616c69646174696f6e5f636f64655f68617368081c706172615f6964b50228617373756d7074696f6e750fa90f0c8501204665746368207468652068617368206f66207468652076616c69646174696f6e20636f64652075736564206279206120706172612c206d616b696e672074686520676976656e20604f63637570696564436f7265417373756d7074696f6e602e001901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20322e20646973707574657300ad0f04782052657475726e7320616c6c206f6e636861696e2064697370757465732e5c73657373696f6e5f6578656375746f725f706172616d73043473657373696f6e5f696e64657810b50f04b82052657475726e7320657865637574696f6e20706172616d657465727320666f72207468652073657373696f6e2e44756e6170706c6965645f736c617368657300b90f0859012052657475726e732061206c697374206f662076616c696461746f72732074686174206c6f7374206120706173742073657373696f6e206469737075746520616e64206e65656420746f20626520736c61736865642e1901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20352e4c6b65795f6f776e6572736869705f70726f6f66043076616c696461746f725f69645102c90f08cc2052657475726e732061206d65726b6c652070726f6f66206f6620612076616c696461746f722073657373696f6e206b65792e1901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20352e687375626d69745f7265706f72745f646973707574655f6c6f73740834646973707574655f70726f6f66d10f4c6b65795f6f776e6572736869705f70726f6f66cd0f7d070c2901205375626d697420616e20756e7369676e65642065787472696e73696320746f20736c6173682076616c696461746f72732077686f206c6f7374206120646973707574652061626f75747c20612063616e646964617465206f66206120706173742073657373696f6e2e1901204e4f54453a20546869732066756e6374696f6e206973206f6e6c7920617661696c61626c652073696e63652070617261636861696e20686f73742076657273696f6e20352e546d696e696d756d5f6261636b696e675f766f7465730010080d012047657420746865206d696e696d756d206e756d626572206f66206261636b696e6720766f74657320666f7220612070617261636861696e2063616e6469646174652ef4205468697320697320612073746167696e67206d6574686f642120446f206e6f7420757365206f6e2070726f64756374696f6e2072756e74696d65732148706172615f6261636b696e675f737461746504805f5f72756e74696d655f6170695f67656e6572617465645f6e616d655f305f5fb502d50f04e42052657475726e7320746865207374617465206f662070617261636861696e206261636b696e6720666f72206120676976656e20706172612e506173796e635f6261636b696e675f706172616d730059040461012052657475726e732063616e646964617465277320616363657074616e6365206c696d69746174696f6e7320666f72206173796e6368726f6e6f7573206261636b696e6720666f7220612072656c617920706172656e742e4c64697361626c65645f76616c696461746f727300690c04f82052657475726e732061206c697374206f6620616c6c2064697361626c65642076616c696461746f72732061742074686520676976656e20626c6f636b2e346e6f64655f6665617475726573009504084c20476574206e6f64652066656174757265732ef4205468697320697320612073746167696e67206d6574686f642120446f206e6f7420757365206f6e2070726f64756374696f6e2072756e74696d65732158617070726f76616c5f766f74696e675f706172616d7300710404a420417070726f76616c20766f74696e6720636f6e66696775726174696f6e20706172616d65746572732c636c61696d5f7175657565000510043020436c61696d2071756575657c63616e646964617465735f70656e64696e675f617661696c6162696c697479041c706172615f6964b5021110046020456c6173746963207363616c696e6720737570706f72746876616c69646174696f6e5f636f64655f626f6d625f6c696d6974001004b420526574726965766520746865206d6178696d756d20756e636f6d7072657373656420636f64652073697a652e4c6261636b696e675f636f6e73747261696e7473041c706172615f6964b50215100831012052657475726e732074686520636f6e73747261696e7473206f6e2074686520616374696f6e7320746861742063616e2062652074616b656e2062792061206e65772070617261636861696e1c20626c6f636b2e507363686564756c696e675f6c6f6f6b61686561640010048820526574726965766520746865207363686564756c696e67206c6f6f6b616865616404dc205468652041504920666f72207175657279696e6720746865207374617465206f662070617261636861696e73206f6e2d636861696e2e2042656566794170691c3462656566795f67656e6573697300b80405012052657475726e2074686520626c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465643476616c696461746f725f736574001d1004b82052657475726e207468652063757272656e74206163746976652042454546592076616c696461746f7220736574b87375626d69745f7265706f72745f646f75626c655f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6611073c6b65795f6f776e65725f70726f6f6625107d07204501205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120646f75626c6520766f74696e672065717569766f636174696f6e2e205468652063616c6c6572fc206d7573742070726f766964652074686520646f75626c6520766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742eb07375626d69745f7265706f72745f666f726b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6629103c6b65795f6f776e65725f70726f6f6625107d07203d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120666f726b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65724101206d7573742070726f766964652074686520666f726b20766f74696e672070726f6f66202874686520616e6365737472792070726f6f662073686f756c64206265206f627461696e6564207573696e673d01206067656e65726174655f616e6365737472795f70726f6f66602920616e642061206b6579206f776e6572736869702070726f6f66202873686f756c64206265206f627461696e6564207573696e674101206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c794d0120626520616363657074656420666f72206c6f63616c20617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f6429012072657475726e7320604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742ed07375626d69745f7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6641073c6b65795f6f776e65725f70726f6f6625107d07205d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420612066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65721501206d7573742070726f76696465207468652066757475726520626c6f636b20766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66ec202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e1501205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f69645d022d102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e5c67656e65726174655f616e6365737472795f70726f6f660844707265765f626c6f636b5f6e756d626572105c626573745f6b6e6f776e5f626c6f636b5f6e756d626572b82d100845012047656e65726174657320612070726f6f662074686174207468652060707265765f626c6f636b5f6e756d626572602069732070617274206f66207468652063616e6f6e6963616c20636861696e2061746c2060626573745f6b6e6f776e5f626c6f636b5f6e756d626572602e048020415049206e656365737361727920666f7220424545465920766f746572732e184d6d7241706914206d6d725f726f6f74003110048c2052657475726e20746865206f6e2d636861696e204d4d5220726f6f7420686173682e386d6d725f6c6561665f636f756e7400391004b82052657475726e20746865206e756d626572206f66204d4d5220626c6f636b7320696e2074686520636861696e2e3867656e65726174655f70726f6f660834626c6f636b5f6e756d6265727319025c626573745f6b6e6f776e5f626c6f636b5f6e756d626572b83d100869012047656e6572617465204d4d522070726f6f6620666f72206120736572696573206f6620626c6f636b206e756d626572732e2049662060626573745f6b6e6f776e5f626c6f636b5f6e756d626572203d20536f6d65286e29602c45012075736520686973746f726963616c204d4d5220737461746520617420676976656e20626c6f636b2068656967687420606e602e20456c73652c207573652063757272656e74204d4d522073746174652e307665726966795f70726f6f6608186c656176657345101470726f6f664d10511014f420566572696679204d4d522070726f6f6620616761696e7374206f6e2d636861696e204d4d5220666f722061206261746368206f66206c65617665732e007101204e6f746520746869732066756e6374696f6e2077696c6c20757365206f6e2d636861696e204d4d5220726f6f74206861736820616e6420636865636b206966207468652070726f6f66206d6174636865732074686520686173682e6d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d587665726966795f70726f6f665f73746174656c6573730c10726f6f7434186c656176657345101470726f6f664d1051101c010120566572696679204d4d522070726f6f6620616761696e737420676976656e20726f6f74206861736820666f722061206261746368206f66206c65617665732e00fc204e6f746520746869732066756e6374696f6e20646f6573206e6f74207265717569726520616e79206f6e2d636861696e2073746f72616765202d20746865bc2070726f6f6620697320766572696669656420616761696e737420676976656e204d4d5220726f6f7420686173682e006d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d04842041504920746f20696e7465726163742077697468204d4d522070616c6c65742e2c42656566794d6d72417069084c617574686f726974795f7365745f70726f6f6600b10e04dc2052657475726e207468652063757272656e746c792061637469766520424545465920617574686f72697479207365742070726f6f662e606e6578745f617574686f726974795f7365745f70726f6f6600b10e04c82052657475726e20746865206e6578742f71756575656420424545465920617574686f72697479207365742070726f6f662e0490204150492075736566756c20666f72204245454659206c6967687420636c69656e74732e284772616e647061417069104c6772616e6470615f617574686f72697469657300dc183d0120476574207468652063757272656e74204752414e44504120617574686f72697469657320616e6420776569676874732e20546869732073686f756c64206e6f74206368616e6765206578636570741d0120666f72207768656e206368616e67657320617265207363686564756c656420616e642074686520636f72726573706f6e64696e672064656c617920686173207061737365642e003501205768656e2063616c6c656420617420626c6f636b20422c2069742077696c6c2072657475726e2074686520736574206f6620617574686f72697469657320746861742073686f756c642062653d01207573656420746f2066696e616c697a652064657363656e64616e7473206f66207468697320626c6f636b2028422b312c20422b322c202e2e2e292e2054686520626c6f636b204220697473656c66c02069732066696e616c697a65642062792074686520617574686f7269746965732066726f6d20626c6f636b20422d312eb47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6669023c6b65795f6f776e65725f70726f6f6625107d07201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f6964e42d102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74fc20696d706c656d656e746174696f6e732069676e6f7265207468697320706172616d6574657220616e6420696e73746561642072656c79206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e3863757272656e745f7365745f696400300498204765742063757272656e74204752414e44504120617574686f72697479207365742069642e240101204150497320666f7220696e746567726174696e6720746865204752414e4450412066696e616c6974792067616467657420696e746f2072756e74696d65732ec020546869732073686f756c6420626520696d706c656d656e746564206f6e207468652072756e74696d6520736964652e0015012054686973206973207072696d6172696c79207573656420666f72206e65676f74696174696e6720617574686f726974792d736574206368616e67657320666f72207468650d01206761646765742e204752414e44504120757365732061207369676e616c696e67206d6f64656c206f66206368616e67696e6720617574686f7269747920736574733a3101206368616e6765732073686f756c64206265207369676e616c6564207769746820612064656c6179206f66204e20626c6f636b732c20616e64207468656e206175746f6d61746963616c6c79e4206170706c69656420696e207468652072756e74696d652061667465722074686f7365204e20626c6f636b732068617665207061737365642e00fc2054686520636f6e73656e7375732070726f746f636f6c2077696c6c20636f6f7264696e617465207468652068616e646f66662065787465726e616c6c792e1c426162654170691834636f6e66696775726174696f6e005510048c2052657475726e2074686520636f6e66696775726174696f6e20666f7220424142452e4c63757272656e745f65706f63685f737461727400dd0104c42052657475726e732074686520736c6f7420746861742073746172746564207468652063757272656e742065706f63682e3463757272656e745f65706f636800591004c42052657475726e7320696e666f726d6174696f6e20726567617264696e67207468652063757272656e742065706f63682e286e6578745f65706f63680059100801012052657475726e7320696e666f726d6174696f6e20726567617264696e6720746865206e6578742065706f6368202877686963682077617320616c72656164795c2070726576696f75736c7920616e6e6f756e636564292e7067656e65726174655f6b65795f6f776e6572736869705f70726f6f660810736c6f74dd0130617574686f726974795f6964d9015d102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e207468650d012063757272656e742065706f63682e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e0901204e4f54453a206576656e2074686f75676820746865204150492074616b657320612060736c6f746020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e74206174f0207768696368207468652065706f636820666f722074686520676976656e20736c6f74206973206c697665206f6e2d636861696e2e20467574757265090120696d706c656d656e746174696f6e732077696c6c20696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696ed020776f726b65722c206e6f7420726571756972696e67206f6c6465722073746174657320746f20626520617661696c61626c652eb47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f66d1013c6b65795f6f776e65725f70726f6f6661107d07201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e04b820415049206e656365737361727920666f7220626c6f636b20617574686f7273686970207769746820424142452e54417574686f72697479446973636f76657279417069042c617574686f72697469657300850a04190120526574726965766520617574686f72697479206964656e74696669657273206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e10742054686520617574686f7269747920646973636f76657279206170692e0051012054686973206170692069732075736564206279207468652060636c69656e742f617574686f726974792d646973636f7665727960206d6f64756c6520746f207265747269657665206964656e746966696572739c206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e2c53657373696f6e4b657973085467656e65726174655f73657373696f6e5f6b657973041073656564410e381c15012047656e6572617465206120736574206f662073657373696f6e206b6579732077697468206f7074696f6e616c6c79207573696e672074686520676976656e20736565642e090120546865206b6579732073686f756c642062652073746f7265642077697468696e20746865206b657973746f7265206578706f736564207669612072756e74696d653c2065787465726e616c69746965732e00b0205468652073656564206e6565647320746f20626520612076616c69642060757466386020737472696e672e00d02052657475726e732074686520636f6e636174656e61746564205343414c4520656e636f646564207075626c6963206b6579732e4c6465636f64655f73657373696f6e5f6b657973041c656e636f6465643865100c98204465636f64652074686520676976656e207075626c69632073657373696f6e206b6579732e00dc2052657475726e7320746865206c697374206f66207075626c696320726177207075626c6963206b657973202b206b657920747970652e04682053657373696f6e206b6579732072756e74696d65206170692e4c52756e74696d655669657746756e6374696f6e0454657865637574655f766965775f66756e6374696f6e082071756572795f6964711014696e707574387510047c2045786563757465206120766965772066756e6374696f6e2071756572792e04a42052756e74696d652041504920666f7220657865637574696e6720766965772066756e6374696f6e733c4163636f756e744e6f6e636541706904346163636f756e745f6e6f6e6365041c6163636f756e74001004c0204765742063757272656e74206163636f756e74206e6f6e6365206f6620676976656e20604163636f756e744964602e0480205468652041504920746f207175657279206163636f756e74206e6f6e63652e545472616e73616374696f6e5061796d656e74417069102871756572795f696e666f080c757874090f0c6c656e107d10004471756572795f6665655f64657461696c73080c757874090f0c6c656e108110004c71756572795f7765696768745f746f5f66656504187765696768742818004c71756572795f6c656e6774685f746f5f66656504186c656e67746810180000645472616e73616374696f6e5061796d656e7443616c6c417069103c71756572795f63616c6c5f696e666f081063616c6ca9010c6c656e107d1004490120517565727920696e666f726d6174696f6e206f66206120646973706174636820636c6173732c207765696768742c20616e6420666565206f66206120676976656e20656e636f646564206043616c6c602e5871756572795f63616c6c5f6665655f64657461696c73081063616c6ca9010c6c656e10811004b4205175657279206665652064657461696c73206f66206120676976656e20656e636f646564206043616c6c602e4c71756572795f7765696768745f746f5f6665650418776569676874281804010120517565727920746865206f7574707574206f66207468652063757272656e742060576569676874546f4665656020676976656e20736f6d6520696e7075742e4c71756572795f6c656e6774685f746f5f66656504186c656e677468101804010120517565727920746865206f7574707574206f66207468652063757272656e7420604c656e677468546f4665656020676976656e20736f6d6520696e7075742e003458636d5061796d656e74417069107c71756572795f61636365707461626c655f7061796d656e745f617373657473042c78636d5f76657273696f6e108d1014b42052657475726e732061206c697374206f662061636365707461626c65207061796d656e74206173736574732e0030202320417267756d656e74730068202a206078636d5f76657273696f6e603a2056657273696f6e2e4071756572795f78636d5f776569676874041c6d6573736167658d05991014a82052657475726e73206120776569676874206e656564656420746f206578656375746520612058434d2e0030202320417267756d656e74730074202a20606d657373616765603a206056657273696f6e656458636d602e6471756572795f7765696768745f746f5f61737365745f666565081877656967687428146173736574f1069d1018e820436f6e766572747320612077656967687420696e746f20612066656520666f722074686520737065636966696564206041737365744964602e0030202320417267756d656e74730088202a2060776569676874603a20636f6e7665727469626c652060576569676874602e7c202a20606173736574603a206056657273696f6e656441737365744964602e4c71756572795f64656c69766572795f66656573082c64657374696e6174696f6e8d011c6d6573736167658d05a110201d01204765742064656c6976657279206665657320666f722073656e64696e67206120737065636966696320606d6573736167656020746f2061206064657374696e6174696f6e602ef420546865736520616c7761797320636f6d6520696e20612073706563696669632061737365742c20646566696e65642062792074686520636861696e2e0030202320417267756d656e74738101202a20606d657373616765603a20546865206d6573736167652074686174276c6c2062652073656e742c206e65636573736172792062656361757365206d6f73742064656c6976657279206665657320617265206261736564206f6e207468655c20202073697a65206f6620746865206d6573736167652e6101202a206064657374696e6174696f6e603a205468652064657374696e6174696f6e20746f2073656e6420746865206d65737361676520746f2e20446966666572656e742064657374696e6174696f6e73206d617920757365c0202020646966666572656e742073656e6465727320746861742063686172676520646966666572656e7420666565732e2c702041207472616974206f662058434d207061796d656e74204150492e00a8204150492070726f76696465732066756e6374696f6e616c69747920666f72206f627461696e696e673a00c4202a207468652077656967687420726571756972656420746f206578656375746520616e2058434d206d6573736167652c0501202a2061206c697374206f662061636365707461626c65206041737365744964607320666f72206d65737361676520657865637574696f6e207061796d656e742c0101202a2074686520636f7374206f66207468652077656967687420696e20746865207370656369666965642061636365707461626c65206041737365744964602ea0202a20746865206665657320666f7220616e2058434d206d6573736167652064656c69766572792e00f020546f2064657465726d696e652074686520657865637574696f6e20776569676874206f66207468652063616c6c7320726571756972656420666f727501205b6078636d3a3a6c61746573743a3a496e737472756374696f6e3a3a5472616e73616374605d20696e737472756374696f6e2c20605472616e73616374696f6e5061796d656e7443616c6c417069602063616e20626520757365642e2444727952756e41706908306472795f72756e5f63616c6c0c186f726967696ea5021063616c6ca9014c726573756c745f78636d735f76657273696f6e10a5100444204472792072756e2063616c6c2056322e2c6472795f72756e5f78636d083c6f726967696e5f6c6f636174696f6e8d010c78636dc106c5100450204472792072756e2058434d2070726f6772616d24b1012041504920666f72206472792d72756e6e696e672065787472696e7369637320616e642058434d2070726f6772616d7320746f20676574207468652070726f6772616d732074686174206e65656420746f2062652070617373656420746f207468652066656573204150492e00810120416c6c2063616c6c732072657475726e206120766563746f72206f66207475706c657320286c6f636174696f6e2c2078636d292077686572652065616368202278636d2220697320657865637574656420696e20226c6f636174696f6e222ee42049662074686572652773206c6f63616c20657865637574696f6e2c20746865206c6f636174696f6e2077696c6c206265202248657265222e1d01205468697320766563746f722063616e206265207573656420746f2063616c63756c61746520626f746820657865637574696f6e20616e642064656c697665727920666565732e0099012043616c6c73206f722058434d73206d69676874206661696c207768656e2065786563757465642c207468697320646f65736e2774206d65616e2074686520726573756c74206f662074686573652063616c6c732077696c6c20626520616e2060457272602e650120496e2074686f73652063617365732c207468657265206d69676874207374696c6c20626520612076616c696420726573756c742c20776974682074686520657865637574696f6e206572726f7220696e736964652069742e650120546865206f6e6c7920726561736f6e73207768792074686573652063616c6c73206d696768742072657475726e20616e206572726f7220617265206c697374656420696e20746865205b604572726f72605d20656e756d2e504c6f636174696f6e546f4163636f756e744170690440636f6e766572745f6c6f636174696f6e04206c6f636174696f6e8d01cd10049020436f6e766572747320604c6f636174696f6e6020746f20604163636f756e744964602e040d012041504920666f722075736566756c20636f6e76657273696f6e73206265747765656e2058434d20604c6f636174696f6e6020616e6420604163636f756e744964602e3847656e657369734275696c6465720c2c6275696c645f737461746504106a736f6e38d510286501204275696c64206052756e74696d6547656e65736973436f6e666967602066726f6d2061204a534f4e20626c6f62206e6f74207573696e6720616e792064656661756c747320616e642073746f726520697420696e20746865242073746f726167652e00290120496e207468652063617365206f662061204652414d452d62617365642072756e74696d652c20746869732066756e6374696f6e20646573657269616c697a6573207468652066756c6c5501206052756e74696d6547656e65736973436f6e666967602066726f6d2074686520676976656e204a534f4e20626c6f6220616e64207075747320697420696e746f207468652073746f726167652e2049662074686555012070726f7669646564204a534f4e20626c6f6220697320696e636f7272656374206f7220696e636f6d706c657465206f722074686520646573657269616c697a6174696f6e206661696c732c20616e206572726f72342069732072657475726e65642e005d0120506c65617365206e6f746520746861742070726f7669646564204a534f4e20626c6f62206d75737420636f6e7461696e20616c6c206052756e74696d6547656e65736973436f6e66696760206669656c64732c206e6f5c2064656661756c74732077696c6c20626520757365642e286765745f70726573657404086964d910410e3861012052657475726e732061204a534f4e20626c6f6220726570726573656e746174696f6e206f6620746865206275696c742d696e206052756e74696d6547656e65736973436f6e66696760206964656e7469666965642062791820606964602e005501204966206069646020697320604e6f6e6560207468652066756e6374696f6e2073686f756c642072657475726e204a534f4e20626c6f6220726570726573656e746174696f6e206f66207468652064656661756c744901206052756e74696d6547656e65736973436f6e6669676020737472756374206f66207468652072756e74696d652e20496d706c656d656e746174696f6e206d7573742070726f766964652064656661756c7460206052756e74696d6547656e65736973436f6e666967602e002101204f74686572776973652066756e6374696f6e2072657475726e732061204a534f4e20726570726573656e746174696f6e206f6620746865206275696c742d696e2c206e616d65645101206052756e74696d6547656e65736973436f6e6669676020707265736574206964656e74696669656420627920606964602c206f7220604e6f6e656020696620737563682070726573657420646f6573206e6f7461012065786973742e2052657475726e656420605665633c75383e6020636f6e7461696e73206279746573206f66204a534f4e20626c6f62202870617463682920776869636820636f6d7072697365732061206c697374206f664d012028706f74656e7469616c6c79206e657374656429206b65792d76616c756520706169727320746861742061726520696e74656e64656420666f7220637573746f6d697a696e67207468652064656661756c7465012072756e74696d652067656e6573697320636f6e6669672e20546865207061746368207368616c6c206265206d657267656420287266633733383629207769746820746865204a534f4e20726570726573656e746174696f6e6101206f66207468652064656661756c74206052756e74696d6547656e65736973436f6e6669676020746f20637265617465206120636f6d70726568656e736976652067656e6573697320636f6e66696720746861742063616e84206265207573656420696e20606275696c645f737461746560206d6574686f642e307072657365745f6e616d657300dd101051012052657475726e732061206c697374206f66206964656e7469666965727320666f7220617661696c61626c65206275696c74696e206052756e74696d6547656e65736973436f6e6669676020707265736574732e0061012054686520707265736574732066726f6d20746865206c6973742063616e20626520717565726965642077697468205b6047656e657369734275696c6465723a3a6765745f707265736574605d206d6574686f642e2049660101206e6f206e616d65642070726573657473206172652070726f7669646564206279207468652072756e74696d6520746865206c69737420697320656d7074792e04f02041504920746f20696e7465726163742077697468206052756e74696d6547656e65736973436f6e6669676020666f72207468652072756e74696d65a90154e11000'; diff --git a/packages/types-support/src/metadata/v15/pezkuwi-json.json b/packages/types-support/src/metadata/v15/pezkuwi-json.json new file mode 100644 index 0000000..594ccd5 --- /dev/null +++ b/packages/types-support/src/metadata/v15/pezkuwi-json.json @@ -0,0 +1,9541 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v15": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ] + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 566 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 567 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ] + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ] + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ] + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 565 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ] + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 570 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ] + }, + { + "name": "ExtrinsicWeightReclaimed", + "modifier": "Default", + "type": { + "plain": 10 + }, + "fallback": "0x0000", + "docs": [ + " The weight reclaimed for the extrinsic.", + "", + " This information is available until the end of the extrinsic execution.", + " More precisely this information is removed in `note_applied_extrinsic`.", + "", + " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate", + " reduction." + ] + } + ] + }, + "calls": { + "type": 107 + }, + "events": { + "type": 22 + }, + "constants": [ + { + "name": "BlockWeights", + "type": 571, + "value": "0x07b0bde93603000b00204aa9d10113ffffffffffffffff222d0d1e00010bb8845c8f580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf010000222d0d1e00010bb80caff9cc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040222d0d1e00000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ] + }, + { + "name": "BlockLength", + "type": 574, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ] + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ] + }, + { + "name": "DbWeight", + "type": 576, + "value": "0x38ca38010000000098aaf90400000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ] + }, + { + "name": "Version", + "type": 577, + "value": "0x20706f6c6b61646f743c7061726974792d706f6c6b61646f740000000080841e000000000060c51ff1fa3f5d0cca01000000df6acb689907609b0500000037e397fc7c91f5e40200000040fe3ad401f8959a0600000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000d2bc9897eed08f1503000000f78b278be53f454c02000000af2c0297a23e6d3d0d00000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000002a5e924655399e6001000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000ccd9de6396c899ca01000000bc9d89904f5b923f0100000037c8bb1350a9a2a804000000f3ff14d5ab527059030000006ff52ee858e6c5bd0100000091b1c8b16328eb92020000009ffb505aa738d69c01000000fbc577b9d747efd6010000001a00000001", + "docs": [ + " Get the chain's in-code version." + ] + }, + { + "name": "SS58Prefix", + "type": 103, + "value": "0x0000", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ] + } + ], + "errors": { + "type": 581 + }, + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number at which the agenda began incomplete execution." + ] + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 582 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ] + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 33, + "value": 586 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ] + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ] + } + ] + }, + "calls": { + "type": 111 + }, + "events": { + "type": 32 + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ] + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ] + } + ], + "errors": { + "type": 587 + }, + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 588 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 590 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ] + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 474, + "value": 594 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 113 + }, + "events": { + "type": 37 + }, + "constants": [], + "errors": { + "type": 595 + }, + "index": 10, + "docs": [] + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 596 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 119 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 119 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 121 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 596 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 599 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 601 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 34 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ] + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 33 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ] + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ] + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 607 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ] + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 607 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ] + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 608 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ] + } + ] + }, + "calls": { + "type": 115 + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 12, + "value": "0x6009000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ] + }, + { + "name": "ExpectedBlockTime", + "type": 12, + "value": "0x7017000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max number of authorities allowed" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + } + ], + "errors": { + "type": 611 + }, + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ] + } + ] + }, + "calls": { + "type": 124 + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0xb80b000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ] + } + ], + "errors": null, + "index": 3, + "docs": [] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 612 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ] + } + ] + }, + "calls": { + "type": 125 + }, + "events": { + "type": 38 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ] + } + ], + "errors": { + "type": 613 + }, + "index": 4, + "docs": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ] + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 614 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 618 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 621 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ] + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 631 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ] + } + ] + }, + "calls": { + "type": 128 + }, + "events": { + "type": 39 + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ] + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ] + } + ], + "errors": { + "type": 636 + }, + "index": 5, + "docs": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 450 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 637 + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": null, + "events": { + "type": 42 + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ] + } + ], + "errors": null, + "index": 32, + "docs": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 6, + "docs": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 129 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ] + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ] + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ] + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 45 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 638 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ] + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 44 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 47 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 640 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 36 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ] + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ] + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ] + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 642 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ] + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ] + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 643 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 646 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ] + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 643 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ] + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 505, + "value": 647 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 134 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 47 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ] + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ] + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 648 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ] + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ] + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 133 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 45 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 651 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 566 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 653 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 503, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 654 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 507, + "value": 655 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ] + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 133 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ] + } + ] + }, + "calls": { + "type": 131 + }, + "events": { + "type": 43 + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ] + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0x1c000000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0x1b000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ] + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ] + }, + { + "name": "MaxValidatorSet", + "type": 4, + "value": "0xb0040000", + "docs": [ + " The absolute maximum of winner validators this pallet should return." + ] + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ] + } + ], + "errors": { + "type": 656 + }, + "index": 7, + "docs": [] + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 657 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 659, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + } + ] + }, + "calls": null, + "events": { + "type": 50 + }, + "constants": [], + "errors": null, + "index": 8, + "docs": [] + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 474 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ] + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 33 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ] + } + ] + }, + "calls": null, + "events": { + "type": 52 + }, + "constants": [], + "errors": null, + "index": 33, + "docs": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 129 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 660 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 662 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 147 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 665, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ] + } + ] + }, + "calls": { + "type": 146 + }, + "events": { + "type": 53 + }, + "constants": [ + { + "name": "KeyDeposit", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " The amount to be held when setting keys." + ] + } + ], + "errors": { + "type": 667 + }, + "index": 9, + "docs": [] + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 668 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 669 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 33 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 670 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ] + } + ] + }, + "calls": { + "type": 153 + }, + "events": { + "type": 54 + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " Max Authorities in use" + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xa800000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 671 + }, + "index": 11, + "docs": [] + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 672 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ] + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 672 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 13, + "docs": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 674 + } + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposals that have been made." + ] + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 675 + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposal indices that have been approved but not yet awarded." + ] + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ] + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 676 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ] + }, + { + "name": "LastSpendPeriod", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The blocknumber for the last triggered spend period." + ] + } + ] + }, + "calls": { + "type": 164 + }, + "events": { + "type": 58 + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x00460500", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": 678, + "value": "0x10270000", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + }, + { + "name": "PalletId", + "type": 679, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ] + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ] + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x80c61300", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ] + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ] + } + ], + "errors": { + "type": 680 + }, + "index": 19, + "docs": [] + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 489, + "value": 681 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ] + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 689 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ] + } + ] + }, + "calls": { + "type": 165 + }, + "events": { + "type": 100 + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ] + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0xc0890100", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ] + } + ], + "errors": { + "type": 692 + }, + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 693 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 103, + "value": 701 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ] + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 103, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ] + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ] + } + ] + }, + "calls": { + "type": 168 + }, + "events": { + "type": 104 + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ] + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ] + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ] + }, + { + "name": "Tracks", + "type": 704, + "value": "0x40000064726f6f74000000000000000000000000000000000000000000010000000080c6a47e8d03000000000000000000b00400000027060040380000403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000000407a10f35a000000000000000000002c01000000270600640000006400000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f01000000003962790200000000020064776973685f666f725f6368616e6765000000000000000000000a0000000080f420e6b500000000000000000000b00400000027060040380000640000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0a00647374616b696e675f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000000a0724e180900000000000000000000b004000000270600c0890100403800000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a00000000203d88792d00000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a00000000203d88792d00000000000000000000b00400000027060008070000640000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000000407a10f35a00000000000000000000b0040000c0890100080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000000406352bfc601000000000000000000b004000000270600080700006400000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c800000000e40b540200000000000000000000000a000000c0890100640000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f7469707065720000000000000000000000000000006400000000e8764817000000000000000000000064000000c0890100580200006400000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000000010a5d4e800000000000000000000006009000000270600807000004038000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e64657200000000000000000000003200000000204aa9d10100000000000000000000600900000027060000e1000040380000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e64657200000000000000000000000000003200000000409452a303000000000000000000006009000000270600c0890100403800000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ] + } + ], + "errors": { + "type": 710 + }, + "index": 21, + "docs": [] + }, + { + "name": "Origins", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 22, + "docs": [] + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 36 + } + }, + "fallback": "0x00", + "docs": [] + } + ] + }, + "calls": { + "type": 177 + }, + "events": { + "type": 515 + }, + "constants": [], + "errors": { + "type": 711 + }, + "index": 23, + "docs": [] + }, + { + "name": "Claims", + "storage": { + "prefix": "Claims", + "items": [ + { + "name": "Claims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 181, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 181, + "value": 183 + } + }, + "fallback": "0x00", + "docs": [ + " Vesting schedule for a claim.", + " First balance is the total amount that should be held for vesting.", + " Second balance is how much should be unlocked per block.", + " The block number is when the vesting should start." + ] + }, + { + "name": "Signing", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 181, + "value": 185 + } + }, + "fallback": "0x00", + "docs": [ + " The statement kind that must be signed, if any." + ] + }, + { + "name": "Preclaims", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 0, + "value": 181 + } + }, + "fallback": "0x00", + "docs": [ + " Pre-claimed Ethereum accounts, by the Account ID that they are claimed to." + ] + } + ] + }, + "calls": { + "type": 178 + }, + "events": { + "type": 519 + }, + "constants": [ + { + "name": "Prefix", + "type": 14, + "value": "0x8450617920444f547320746f2074686520506f6c6b61646f74206163636f756e743a", + "docs": [] + } + ], + "errors": { + "type": 712 + }, + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 713 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 715 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ] + } + ] + }, + "calls": { + "type": 186 + }, + "events": { + "type": 520 + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ] + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [] + } + ], + "errors": { + "type": 716 + }, + "index": 25, + "docs": [] + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 188 + }, + "events": { + "type": 521 + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ] + } + ], + "errors": { + "type": 717 + }, + "index": 26, + "docs": [] + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 718 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ] + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 722 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ] + } + ] + }, + "calls": { + "type": 190 + }, + "events": { + "type": 522 + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0x0084b2952e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ] + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0x8066ab13000000000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ] + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ] + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ] + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x0084b2952e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ] + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x00cd5627000000000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ] + } + ], + "errors": { + "type": 726 + }, + "index": 29, + "docs": [] + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 468, + "value": 727 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ] + } + ] + }, + "calls": { + "type": 193 + }, + "events": { + "type": 524 + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0x008c61c52e0000000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ] + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x00d01213000000000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ] + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ] + } + ], + "errors": { + "type": 729 + }, + "index": 30, + "docs": [] + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ] + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 730 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ] + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 732 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ] + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 675 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ] + } + ] + }, + "calls": { + "type": 196 + }, + "events": { + "type": 525 + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ] + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x00000000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ] + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00041703", + "docs": [ + " The time limit for a curator to act before a bounty expires.", + "", + " The period that starts when a curator is approved, during which they must execute or", + " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the", + " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,", + " removing the need for `extend_bounty_expiry`." + ] + }, + { + "name": "CuratorDepositMultiplier", + "type": 678, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ] + }, + { + "name": "CuratorDepositMax", + "type": 141, + "value": "0x0100204aa9d10100000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "CuratorDepositMin", + "type": 141, + "value": "0x0100e87648170000000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Minimum value for a bounty." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x00e1f505000000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ] + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x00400000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ] + } + ], + "errors": { + "type": 733 + }, + "index": 34, + "docs": [] + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts", + " for each parent bounty. Number of total child bounties. Will be removed in May 2025." + ] + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of active child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ] + }, + { + "name": "ParentTotalChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties per parent bounty, including completed bounties." + ] + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 33, + "value": 734 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ] + }, + { + "name": "ChildBountyDescriptionsV1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 33, + "value": 732 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty. Indexed by `(parent_id, child_id)`.", + "", + " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version." + ] + }, + { + "name": "V0ToV1ChildBountyIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 33 + } + }, + "fallback": "0x00", + "docs": [ + " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.", + "", + " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids", + " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].", + " The item intended solely for client convenience and not used in the pallet's core logic." + ] + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ] + } + ] + }, + "calls": { + "type": 197 + }, + "events": { + "type": 526 + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ] + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ] + } + ], + "errors": { + "type": 736 + }, + "index": 38, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ] + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 529 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ] + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 737 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ] + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 744 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 252 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ] + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ] + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 747 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ] + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 750 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ] + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 251 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ] + } + ] + }, + "calls": { + "type": 198 + }, + "events": { + "type": 527 + }, + "constants": [ + { + "name": "BetterSignedThreshold", + "type": 45, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ] + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x12000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ] + }, + { + "name": "MinerTxPriority", + "type": 12, + "value": "0x65666666666666e6", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ] + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ] + }, + { + "name": "SignedMaxWeight", + "type": 10, + "value": "0x0b08c77258550113a3703d0ad7a370bd", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ] + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x04000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ] + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Base reward for a signed solution" + ] + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x787d0100000000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ] + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ] + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xb0040000", + "docs": [ + " Maximum number of winners that an election supports.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ] + }, + { + "name": "MaxBackersPerWinner", + "type": 4, + "value": "0xe4570000", + "docs": [ + " Maximum number of voters that can support a winner in an election solution.", + "", + " This is needed to ensure election computation is bounded." + ] + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [] + }, + { + "name": "MinerMaxWeight", + "type": 10, + "value": "0x0b08c77258550113a3703d0ad7a370bd", + "docs": [] + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [] + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xb0040000", + "docs": [] + } + ], + "errors": { + "type": 751 + }, + "index": 36, + "docs": [] + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 752 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ] + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 753 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ] + }, + { + "name": "NextNodeAutoRebagged", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Pointer that remembers the next node that will be auto-rebagged.", + " When `None`, the next scan will start from the list head again." + ] + }, + { + "name": "Lock", + "modifier": "Optional", + "type": { + "plain": 36 + }, + "fallback": "0x00", + "docs": [ + " Lock all updates to this pallet.", + "", + " If any nodes needs updating, removal or addition due to a temporary lock, the", + " [`Call::rebag`] can be used." + ] + } + ] + }, + "calls": { + "type": 259 + }, + "events": { + "type": 531 + }, + "constants": [ + { + "name": "BagThresholds", + "type": 754, + "value": "0x210300e40b5402000000f39e809702000000a8b197e20200000094492e3603000000279c3a930300000003bccefa0300000042c01b6e040000001b4775ee04000000385e557d0500000046dc601c0600000089386ccd06000000b6ee809207000000fe7ee36d08000000e81b1a6209000000b019f4710a000000103592a00b000000cfc96ff10c00000041146d680e000000e79bda0910000000cee885da1100000028a9c7df13000000bb70931f160000008e4089a018000000810a096a1b000000366a48841e0000005bd36af821000000807c9cd025000000c95530182a000000bd63c1db2e00000071e0572934000000689092103a000000edc4d4a240000000699379f3470000008fd80c18500000004baf8a28590000006a16a63f630000000995177b6e00000078c5f4fb7a00000062c811e78800000051bf6d6598000000048eaba4a9000000544698d7bc00000091cac036d2000000175f1801ea000000bd15b27c0401000043358ff721010000b8fc84c84201000099673c506701000007e44efa8f010000b341833ebd010000027f2ea2ef0100009883bcb927020000164d652a66020000b49513acab0200002d8e820bf9020000a1e6982c4f030000a616080daf030000cc9d37c719040000a0d584959004000042e7e0d514050000028cd70da80500000f750aef4b060000ea8d2e5c02070000c3cb996ecd070000b1e5717caf080000aa2b8e1fab090000b5c1203dc30a000026d03d0efb0b000070c75929560d0000ebadda8cd80e0000f797dbaa86100000cff04476651200001f2660717a14000009a611becb1600001dfbe82f60190000943a3c603f1c00008afe89c4711f0000ced963c70023000003a92ae4f6260000fe72eec55f2b000036c9cc6948300000dae33245bf350000062a7470d43b00007c9732d69942000084a32468234a0000571ad45987520000e7f10262de5b00000db8760344660000ae0401ded67100007d9eb308b97e00001e044a76108d00003a1df064079d0000e04fafdaccae00005679f02f95c2000095c3aaa99ad80000967c05251ef10000177a66d6670c010028cb1f1ec82a0100fa282f75984c0100d57dc8743c7201007dc4b3fb229c0100365cde74c7ca01009eb8e142b3fe01000c31ae547f3802005fe101e8d57802006373da7e74c0020051d1a60d2e100300c7e9a468ed68030061c091f7b7cb0300bf27a1b7b03904007b1499941bb404008523ed22613c050069a5d4c512d40500ec8c934def7c0600f5aa901be83807008cbe5ddb260a080002978ce113f30800fae314435df60900ddf12dbafe160b002ebadc6f4a580c000c5518c4f2bd0d00f0bb5431154c0f00498e866b46071100b2c153de9ff41200278a2fb2ce191500b2399f84247d1700e199e704aa251a00ba13f5ab331b1d00264785cc7866200088bf803f2d1124001c9823f81d262800ccc422d450b12c00f088820528c03100367c6d7e896137006e9329d30aa63d008cbc6c1322a044000070f32a5c644c00b43b84699909550080b4abe450a95e00a0cda979db5f69004cc27f4cc74c7500d0ac0eba34938200483e0ccf3d5a910068c68e7469cda100281e6fa52b1db40098a92326747fc800f09a74634d30df0080cdfc4b8d72f8009014602d9a901401f0b413d945dd330120973596c1b4560150dcfbaead7d7d01e01198b947aaa80130c7ee16bbb9d801206e488697390e02a0fa4b1d72c74902c0117170b5128c02808a1643a6ded502c0f823b1a204280380af5970a2768303c06f2d87ff41e90340937fac8f925a040091097117b6d804400fdf5b212065050049c149446e0106008ebca6e56caf0600595686851c71078068aa34a4b7480880a1e29e52b9380900bdabe880e4430a002a72b4204c6d0b80f1c013335cb80c00a03ccbdce3280e80b8629a9e20c30f00de5693d2ca8b11005d7f4c93238813001a87df3504be1500a7ce4b84ef3318000110fbea24f11a00802ae5d1b5fd1d0022a134609d62210044216bf0da2925000261f1828f5e29006620cf851e0d2e008410195252433300a0c18fca8410390026ad1493cc853f00d0cd24662fb646009ce19a1cdab64e0058ccc20c5f9f5700200a7578fb89610030bbbbd6e4936c0060cba7dc9edd7800b83bc0425b8b8600b886236164c59500f8f15fdc93b8a600206a91c0d696b900d8efe28fc097ce0068299bf52ef9e5ffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ] + }, + { + "name": "MaxAutoRebagPerBlock", + "type": 4, + "value": "0x00000000", + "docs": [ + " Maximum number of accounts that may be re-bagged automatically in `on_idle`.", + "", + " A value of `0` (obtained by configuring `type MaxAutoRebagPerBlock = ();`) disables", + " the feature." + ] + } + ], + "errors": { + "type": 755 + }, + "index": 37, + "docs": [] + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ] + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ] + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ] + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ] + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ] + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ] + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 45 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ] + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 757 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ] + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 760 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ] + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 764 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 765 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ] + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 771 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ] + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ] + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ] + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 267 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ] + } + ] + }, + "calls": { + "type": 260 + }, + "events": { + "type": 532 + }, + "constants": [ + { + "name": "PalletId", + "type": 679, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ] + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ] + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ] + } + ], + "errors": { + "type": 772 + }, + "index": 39, + "docs": [] + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 774 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ] + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ] + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ] + } + ] + }, + "calls": { + "type": 273 + }, + "events": { + "type": 534 + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ] + } + ], + "errors": { + "type": 777 + }, + "index": 40, + "docs": [] + }, + { + "name": "DelegatedStaking", + "storage": { + "prefix": "DelegatedStaking", + "items": [ + { + "name": "Delegators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 778 + } + }, + "fallback": "0x00", + "docs": [ + " Map of Delegators to their `Delegation`.", + "", + " Implementation note: We are not using a double map with `delegator` and `agent` account", + " as keys since we want to restrict delegators to delegate only to one account at a time." + ] + }, + { + "name": "CounterForDelegators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "Agents", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 779 + } + }, + "fallback": "0x00", + "docs": [ + " Map of `Agent` to their `Ledger`." + ] + }, + { + "name": "CounterForAgents", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + } + ] + }, + "calls": null, + "events": { + "type": 535 + }, + "constants": [ + { + "name": "PalletId", + "type": 679, + "value": "0x70792f646c73746b", + "docs": [ + " Injected identifier for the pallet." + ] + }, + { + "name": "SlashRewardFraction", + "type": 45, + "value": "0x80969800", + "docs": [ + " Fraction of the slash that is rewarded to the caller of pending slash to the agent." + ] + } + ], + "errors": { + "type": 780 + }, + "index": 41, + "docs": [] + }, + { + "name": "StakingAhClient", + "storage": { + "prefix": "StakingAhClient", + "items": [ + { + "name": "ValidatorSet", + "modifier": "Optional", + "type": { + "plain": 781 + }, + "fallback": "0x00", + "docs": [ + " The queued validator sets for a given planning session index.", + "", + " This is received via a call from AssetHub." + ] + }, + { + "name": "IncompleteValidatorSetReport", + "modifier": "Optional", + "type": { + "plain": 275 + }, + "fallback": "0x00", + "docs": [ + " An incomplete validator set report." + ] + }, + { + "name": "ValidatorPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " All of the points of the validators.", + "", + " This is populated during a session, and is flushed and sent over via [`SendToAssetHub`]", + " at each session end." + ] + }, + { + "name": "Mode", + "modifier": "Default", + "type": { + "plain": 276 + }, + "fallback": "0x00", + "docs": [ + " Indicates the current operating mode of the pallet.", + "", + " This value determines how the pallet behaves in response to incoming and outgoing messages,", + " particularly whether it should execute logic directly, defer it, or delegate it entirely." + ] + }, + { + "name": "NextSessionChangesValidators", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " A storage value that is set when a `new_session` gives a new validator set to the session", + " pallet, and is cleared on the next call.", + "", + " The inner u32 is the id of the said activated validator set. While not relevant here, good", + " to know this is the planning era index of staking-async on AH.", + "", + " Once cleared, we know a validator set has been activated, and therefore we can send a", + " timestamp to AH." + ] + }, + { + "name": "ValidatorSetAppliedAt", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The session index at which the latest elected validator set was applied.", + "", + " This is used to determine if an offence, given a session index, is in the current active era", + " or not." + ] + }, + { + "name": "OutgoingSessionReport", + "modifier": "Optional", + "type": { + "plain": 782 + }, + "fallback": "0x00", + "docs": [ + " A session report that is outgoing, and should be sent.", + "", + " This will be attempted to be sent, possibly on every `on_initialize` call, until it is sent,", + " or the second value reaches zero, at which point we drop it." + ] + }, + { + "name": "OffenceSendQueueOffences", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 785 + } + }, + "fallback": "0x00", + "docs": [ + " Internal storage item of [`OffenceSendQueue`]. Should not be used manually." + ] + }, + { + "name": "OffenceSendQueueCursor", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Internal storage item of [`OffenceSendQueue`]. Should not be used manually." + ] + } + ] + }, + "calls": { + "type": 274 + }, + "events": { + "type": 536 + }, + "constants": [], + "errors": { + "type": 789 + }, + "index": 42, + "docs": [] + }, + { + "name": "TeyrchainsOrigin", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 50, + "docs": [ + " There is no way to register an origin type in `construct_runtime` without a pallet the origin", + " belongs to.", + "", + " This module fulfills only the single purpose of housing the `Origin` in `construct_runtime`." + ] + }, + { + "name": "Configuration", + "storage": { + "prefix": "Configuration", + "items": [ + { + "name": "ActiveConfig", + "modifier": "Default", + "type": { + "plain": 790 + }, + "fallback": "0x00003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c9018096980000000000000000000000000005000000", + "docs": [ + " The active configuration for the current session." + ] + }, + { + "name": "PendingConfigs", + "modifier": "Default", + "type": { + "plain": 791 + }, + "fallback": "0x00", + "docs": [ + " Pending configuration changes.", + "", + " This is a list of configuration changes, each with a session index at which it should", + " be applied.", + "", + " The list is sorted ascending by session index. Also, this list can only contain at most", + " 2 items: for the next session and for the `scheduled_session`." + ] + }, + { + "name": "BypassConsistencyCheck", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " If this is set, then the configuration setters will bypass the consistency checks. This", + " is meant to be used only as the last resort." + ] + } + ] + }, + "calls": { + "type": 277 + }, + "events": null, + "constants": [], + "errors": { + "type": 793 + }, + "index": 51, + "docs": [] + }, + { + "name": "ParasShared", + "storage": { + "prefix": "ParasShared", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current session index." + ] + }, + { + "name": "ActiveValidatorIndices", + "modifier": "Default", + "type": { + "plain": 794 + }, + "fallback": "0x00", + "docs": [ + " All the validators actively participating in teyrchain consensus.", + " Indices are into the broader validator set." + ] + }, + { + "name": "ActiveValidatorKeys", + "modifier": "Default", + "type": { + "plain": 795 + }, + "fallback": "0x00", + "docs": [ + " The teyrchain attestation keys of the validators actively participating in teyrchain", + " consensus. This should be the same length as `ActiveValidatorIndices`." + ] + }, + { + "name": "AllowedRelayParents", + "modifier": "Default", + "type": { + "plain": 796 + }, + "fallback": "0x0000000000", + "docs": [ + " All allowed relay-parents." + ] + } + ] + }, + "calls": { + "type": 286 + }, + "events": null, + "constants": [], + "errors": null, + "index": 52, + "docs": [] + }, + { + "name": "ParaInclusion", + "storage": { + "prefix": "ParaInclusion", + "items": [ + { + "name": "V1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 807 + } + }, + "fallback": "0x00", + "docs": [ + " Candidates pending availability by `ParaId`. They form a chain starting from the latest", + " included head of the para.", + " Use a different prefix post-migration to v1, since the v0 `PendingAvailability` storage", + " would otherwise have the exact same prefix which could cause undefined behaviour when doing", + " the migration." + ] + } + ] + }, + "calls": { + "type": 287 + }, + "events": { + "type": 538 + }, + "constants": [], + "errors": { + "type": 809 + }, + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "storage": { + "prefix": "ParaInherent", + "items": [ + { + "name": "Included", + "modifier": "Optional", + "type": { + "plain": 36 + }, + "fallback": "0x00", + "docs": [ + " Whether the paras inherent was included within this block.", + "", + " The `Option<()>` is effectively a `bool`, but it never hits storage in the `None` variant", + " due to the guarantees of FRAME's storage APIs.", + "", + " If this is `None` at the end of the block, we panic and render the block invalid." + ] + }, + { + "name": "OnChainVotes", + "modifier": "Optional", + "type": { + "plain": 810 + }, + "fallback": "0x00", + "docs": [ + " Scraped on chain data for extracting resolved disputes as well as backing votes." + ] + } + ] + }, + "calls": { + "type": 288 + }, + "events": null, + "constants": [], + "errors": { + "type": 815 + }, + "index": 54, + "docs": [] + }, + { + "name": "ParaScheduler", + "storage": { + "prefix": "ParaScheduler", + "items": [ + { + "name": "ValidatorGroups", + "modifier": "Default", + "type": { + "plain": 816 + }, + "fallback": "0x00", + "docs": [ + " All the validator groups. One for each core. Indices are into `ActiveValidators` - not the", + " broader set of Pezkuwi validators, but instead just the subset used for teyrchains during", + " this session.", + "", + " Bound: The number of cores is the sum of the numbers of teyrchains and parathread", + " multiplexers. Reasonably, 100-1000. The dominant factor is the number of validators: safe", + " upper bound at 10k." + ] + }, + { + "name": "SessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number where the session start occurred. Used to track how many group rotations", + " have occurred.", + "", + " Note that in the context of teyrchains modules the session change is signaled during", + " the block and enacted at the end of the block (at the finalization stage, to be exact).", + " Thus for all intents and purposes the effect of the session change is observed at the", + " block following the session change, block number of which we save in this storage value." + ] + }, + { + "name": "ClaimQueue", + "modifier": "Default", + "type": { + "plain": 817 + }, + "fallback": "0x00", + "docs": [ + " One entry for each availability core. The `VecDeque` represents the assignments to be", + " scheduled on that core." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 55, + "docs": [] + }, + { + "name": "Paras", + "storage": { + "prefix": "Paras", + "items": [ + { + "name": "PvfActiveVoteMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 303, + "value": 822 + } + }, + "fallback": "0x00", + "docs": [ + " All currently active PVF pre-checking votes.", + "", + " Invariant:", + " - There are no PVF pre-checking votes that exists in list but not in the set and vice versa." + ] + }, + { + "name": "PvfActiveVoteList", + "modifier": "Default", + "type": { + "plain": 826 + }, + "fallback": "0x00", + "docs": [ + " The list of all currently active PVF votes. Auxiliary to `PvfActiveVoteMap`." + ] + }, + { + "name": "Teyrchains", + "modifier": "Default", + "type": { + "plain": 827 + }, + "fallback": "0x00", + "docs": [ + " All lease holding teyrchains. Ordered ascending by `ParaId`. On demand teyrchains are not", + " included.", + "", + " Consider using the [`TeyrchainsCache`] type of modifying." + ] + }, + { + "name": "ParaLifecycles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 828 + } + }, + "fallback": "0x00", + "docs": [ + " The current lifecycle of a all known Para IDs." + ] + }, + { + "name": "Heads", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 311 + } + }, + "fallback": "0x00", + "docs": [ + " The head-data of every registered para." + ] + }, + { + "name": "MostRecentContext", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The context (relay-chain block number) of the most recent teyrchain head." + ] + }, + { + "name": "CurrentCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 303 + } + }, + "fallback": "0x00", + "docs": [ + " The validation code hash of every live para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 829, + "value": 303 + } + }, + "fallback": "0x00", + "docs": [ + " Actual past code hash, indicated by the para id as well as the block number at which it", + " became outdated.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "PastCodeMeta", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 830 + } + }, + "fallback": "0x0000", + "docs": [ + " Past code of teyrchains. The teyrchains themselves may not be registered anymore,", + " but we also keep their code on-chain for the same amount of time as outdated code", + " to keep it available for approval checkers." + ] + }, + { + "name": "PastCodePruning", + "modifier": "Default", + "type": { + "plain": 833 + }, + "fallback": "0x00", + "docs": [ + " Which paras have past code that needs pruning and the relay-chain block at which the code", + " was replaced. Note that this is the actual height of the included block, not the expected", + " height at which the code upgrade would be applied, although they may be equal.", + " This is to ensure the entire acceptance period is covered, not an offset acceptance period", + " starting from the time at which the teyrchain perceives a code upgrade as having occurred.", + " Multiple entries for a single para are permitted. Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeUpgrades", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The block number at which the planned code change is expected for a teyrchain.", + "", + " The change will be applied after the first parablock for this ID included which executes", + " in the context of a relay chain block with a number >= `expected_at`." + ] + }, + { + "name": "FutureCodeUpgradesAt", + "modifier": "Default", + "type": { + "plain": 833 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming future code upgrades.", + "", + " Each item is a pair of the teyrchain and the expected block at which the upgrade should be", + " applied. The upgrade will be applied at the given relay chain block. In contrast to", + " [`FutureCodeUpgrades`] this code upgrade will be applied regardless the teyrchain making any", + " progress or not.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "FutureCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 303 + } + }, + "fallback": "0x00", + "docs": [ + " The actual future code hash of a para.", + "", + " Corresponding code can be retrieved with [`CodeByHash`]." + ] + }, + { + "name": "AuthorizedCodeHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 834 + } + }, + "fallback": "0x00", + "docs": [ + " The code hash authorizations for a para which will expire `expire_at` `BlockNumberFor`." + ] + }, + { + "name": "UpgradeGoAheadSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 835 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate to a teyrchain a go-ahead with in the upgrade", + " procedure.", + "", + " This value is absent when there are no upgrades scheduled or during the time the relay chain", + " performs the checks. It is set at the first relay-chain block when the corresponding", + " teyrchain can switch its upgrade function. As soon as the teyrchain's block is included, the", + " value gets reset to `None`.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeRestrictionSignal", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 836 + } + }, + "fallback": "0x00", + "docs": [ + " This is used by the relay-chain to communicate that there are restrictions for performing", + " an upgrade for this teyrchain.", + "", + " This may be a because the teyrchain waits for the upgrade cooldown to expire. Another", + " potential use case is when we want to perform some maintenance (such as storage migration)", + " we could restrict upgrades to make the process simpler.", + "", + " NOTE that this field is used by teyrchains via merkle storage proofs, therefore changing", + " the format will require migration of teyrchains." + ] + }, + { + "name": "UpgradeCooldowns", + "modifier": "Default", + "type": { + "plain": 833 + }, + "fallback": "0x00", + "docs": [ + " The list of teyrchains that are awaiting for their upgrade restriction to cooldown.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "UpcomingUpgrades", + "modifier": "Default", + "type": { + "plain": 833 + }, + "fallback": "0x00", + "docs": [ + " The list of upcoming code upgrades.", + "", + " Each item is a pair of which para performs a code upgrade and at which relay-chain block it", + " is expected at.", + "", + " Ordered ascending by block number." + ] + }, + { + "name": "ActionsQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 827 + } + }, + "fallback": "0x00", + "docs": [ + " The actions to perform during the start of a specific session index." + ] + }, + { + "name": "UpcomingParasGenesis", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 837 + } + }, + "fallback": "0x00", + "docs": [ + " Upcoming paras instantiation arguments.", + "", + " NOTE that after PVF pre-checking is enabled the para genesis arg will have it's code set", + " to empty. Instead, the code will be saved into the storage right away via `CodeByHash`." + ] + }, + { + "name": "CodeByHashRefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 303, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of reference on the validation code in [`CodeByHash`] storage." + ] + }, + { + "name": "CodeByHash", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 303, + "value": 310 + } + }, + "fallback": "0x00", + "docs": [ + " Validation code stored by its hash.", + "", + " This storage is consistent with [`FutureCodeHash`], [`CurrentCodeHash`] and", + " [`PastCodeHash`]." + ] + } + ] + }, + "calls": { + "type": 323 + }, + "events": { + "type": 542 + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 12, + "value": "0xffffffffffffffff", + "docs": [] + } + ], + "errors": { + "type": 838 + }, + "index": 56, + "docs": [] + }, + { + "name": "Initializer", + "storage": { + "prefix": "Initializer", + "items": [ + { + "name": "HasInitialized", + "modifier": "Optional", + "type": { + "plain": 36 + }, + "fallback": "0x00", + "docs": [ + " Whether the teyrchains modules have been initialized within this block.", + "", + " Semantically a `bool`, but this guarantees it should never hit the trie,", + " as this is cleared in `on_finalize` and Frame optimizes `None` values to be empty values.", + "", + " As a `bool`, `set(false)` and `remove()` both lead to the next `get()` being false, but one", + " of them writes to the trie and one does not. This confusion makes `Option<()>` more suitable", + " for the semantics of this variable." + ] + }, + { + "name": "BufferedSessionChanges", + "modifier": "Default", + "type": { + "plain": 839 + }, + "fallback": "0x00", + "docs": [ + " Buffered session changes.", + "", + " Typically this will be empty or one element long. Apart from that this item never hits", + " the storage.", + "", + " However this is a `Vec` regardless to handle various edge cases that may occur at runtime", + " upgrade boundaries or if governance intervenes." + ] + } + ] + }, + "calls": { + "type": 325 + }, + "events": null, + "constants": [], + "errors": null, + "index": 57, + "docs": [] + }, + { + "name": "Dmp", + "storage": { + "prefix": "Dmp", + "items": [ + { + "name": "DownwardMessageQueues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 841 + } + }, + "fallback": "0x00", + "docs": [ + " The downward messages addressed for a certain para." + ] + }, + { + "name": "DownwardMessageQueueHeads", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " A mapping that stores the downward message queue MQC head for each para.", + "", + " Each link in this chain has a form:", + " `(prev_head, B, H(M))`, where", + " - `prev_head`: is the previous head hash or zero if none.", + " - `B`: is the relay-chain block number in which a message was appended.", + " - `H(M)`: is the hash of the message being appended." + ] + }, + { + "name": "DeliveryFeeFactor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 450 + } + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The factor to multiply the base delivery fee by." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 58, + "docs": [] + }, + { + "name": "Hrmp", + "storage": { + "prefix": "Hrmp", + "items": [ + { + "name": "HrmpOpenChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 327, + "value": 843 + } + }, + "fallback": "0x00", + "docs": [ + " The set of pending HRMP open channel requests.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpOpenChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 844 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpOpenChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests are initiated by a given sender para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items that has", + " `(X, _)` as the number of `HrmpOpenChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpAcceptedChannelRequestCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " This mapping tracks how many open channel requests were accepted by a given recipient para.", + " Invariant: `HrmpOpenChannelRequests` should contain the same number of items `(_, X)` with", + " `confirmed` set to true, as the number of `HrmpAcceptedChannelRequestCount` for `X`." + ] + }, + { + "name": "HrmpCloseChannelRequests", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 327, + "value": 36 + } + }, + "fallback": "0x00", + "docs": [ + " A set of pending HRMP close channel requests that are going to be closed during the session", + " change. Used for checking if a given channel is registered for closure.", + "", + " The set is accompanied by a list for iteration.", + "", + " Invariant:", + " - There are no channels that exists in list but not in the set and vice versa." + ] + }, + { + "name": "HrmpCloseChannelRequestsList", + "modifier": "Default", + "type": { + "plain": 844 + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpWatermarks", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The HRMP watermark associated with each para.", + " Invariant:", + " - each para `P` used here as a key should satisfy `Paras::is_valid_para(P)` within a", + " session." + ] + }, + { + "name": "HrmpChannels", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 327, + "value": 845 + } + }, + "fallback": "0x00", + "docs": [ + " HRMP channel data associated with each para.", + " Invariant:", + " - each participant in the channel should satisfy `Paras::is_valid_para(P)` within a session." + ] + }, + { + "name": "HrmpIngressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 827 + } + }, + "fallback": "0x00", + "docs": [ + " Ingress/egress indexes allow to find all the senders and receivers given the opposite side.", + " I.e.", + "", + " (a) ingress index allows to find all the senders for a given recipient.", + " (b) egress index allows to find all the recipients for a given sender.", + "", + " Invariants:", + " - for each ingress index entry for `P` each item `I` in the index should present in", + " `HrmpChannels` as `(I, P)`.", + " - for each egress index entry for `P` each item `E` in the index should present in", + " `HrmpChannels` as `(P, E)`.", + " - there should be no other dangling channels in `HrmpChannels`.", + " - the vectors are sorted." + ] + }, + { + "name": "HrmpEgressChannelsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 827 + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "HrmpChannelContents", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 327, + "value": 846 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for the messages for each channel.", + " Invariant: cannot be non-empty if the corresponding channel in `HrmpChannels` is `None`." + ] + }, + { + "name": "HrmpChannelDigests", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 848 + } + }, + "fallback": "0x00", + "docs": [ + " Maintains a mapping that can be used to answer the question: What paras sent a message at", + " the given block number for a given receiver. Invariants:", + " - The inner `Vec` is never empty.", + " - The inner `Vec` cannot store two same `ParaId`.", + " - The outer vector is sorted ascending by block number and cannot store two items with the", + " same block number." + ] + } + ] + }, + "calls": { + "type": 326 + }, + "events": { + "type": 543 + }, + "constants": [], + "errors": { + "type": 850 + }, + "index": 60, + "docs": [] + }, + { + "name": "ParaSessionInfo", + "storage": { + "prefix": "ParaSessionInfo", + "items": [ + { + "name": "AssignmentKeysUnsafe", + "modifier": "Default", + "type": { + "plain": 851 + }, + "fallback": "0x00", + "docs": [ + " Assignment keys for the current session.", + " Note that this API is private due to it being prone to 'off-by-one' at session boundaries.", + " When in doubt, use `Sessions` API instead." + ] + }, + { + "name": "EarliestStoredSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The earliest session for which previous session info is stored." + ] + }, + { + "name": "Sessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 852 + } + }, + "fallback": "0x00", + "docs": [ + " Session information in a rolling window.", + " Should have an entry in range `EarliestStoredSession..=CurrentSessionIndex`.", + " Does not have any entries before the session index in the first session change notification." + ] + }, + { + "name": "AccountKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 129 + } + }, + "fallback": "0x00", + "docs": [ + " The validator account keys of the validators actively participating in teyrchain consensus." + ] + }, + { + "name": "SessionExecutorParams", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 279 + } + }, + "fallback": "0x00", + "docs": [ + " Executor parameter set for a given session index" + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 61, + "docs": [] + }, + { + "name": "ParasDisputes", + "storage": { + "prefix": "ParasDisputes", + "items": [ + { + "name": "LastPrunedSession", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The last pruned session, if any. All data stored by this module", + " references sessions." + ] + }, + { + "name": "Disputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 855, + "value": 856 + } + }, + "fallback": "0x00", + "docs": [ + " All ongoing or concluded disputes for the last several sessions." + ] + }, + { + "name": "BackersOnDisputes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 855, + "value": 857 + } + }, + "fallback": "0x00", + "docs": [ + " Backing votes stored for each dispute.", + " This storage is used for slashing." + ] + }, + { + "name": "Included", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 855, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " All included blocks on the chain, as well as the block number in this chain that", + " should be reverted back to if the candidate is disputed and determined to be invalid." + ] + }, + { + "name": "Frozen", + "modifier": "Default", + "type": { + "plain": 46 + }, + "fallback": "0x00", + "docs": [ + " Whether the chain is frozen. Starts as `None`. When this is `Some`,", + " the chain will not accept any new teyrchain blocks for backing or inclusion,", + " and its value indicates the last valid block number in the chain.", + " It can only be set back to `None` by governance intervention." + ] + } + ] + }, + "calls": { + "type": 328 + }, + "events": { + "type": 544 + }, + "constants": [], + "errors": { + "type": 858 + }, + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "storage": { + "prefix": "ParasSlashing", + "items": [ + { + "name": "UnappliedSlashes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 855, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " Validators pending dispute slashes." + ] + }, + { + "name": "ValidatorSetCounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " `ValidatorSetCount` per session." + ] + } + ] + }, + "calls": { + "type": 329 + }, + "events": null, + "constants": [], + "errors": { + "type": 863 + }, + "index": 63, + "docs": [] + }, + { + "name": "OnDemand", + "storage": { + "prefix": "OnDemand", + "items": [ + { + "name": "ParaIdAffinity", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 864 + } + }, + "fallback": "0x00", + "docs": [ + " Maps a `ParaId` to `CoreIndex` and keeps track of how many assignments the scheduler has in", + " it's lookahead. Keeping track of this affinity prevents parallel execution of the same", + " `ParaId` on two or more `CoreIndex`es." + ] + }, + { + "name": "QueueStatus", + "modifier": "Default", + "type": { + "plain": 865 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000000000000000000000", + "docs": [ + " Overall status of queue (both free + affinity entries)" + ] + }, + { + "name": "FreeEntries", + "modifier": "Default", + "type": { + "plain": 870 + }, + "fallback": "0x00", + "docs": [ + " Priority queue for all orders which don't yet (or not any more) have any core affinity." + ] + }, + { + "name": "AffinityEntries", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 540, + "value": 870 + } + }, + "fallback": "0x00", + "docs": [ + " Queue entries that are currently bound to a particular core due to core affinity." + ] + }, + { + "name": "Revenue", + "modifier": "Default", + "type": { + "plain": 873 + }, + "fallback": "0x00", + "docs": [ + " Keeps track of accumulated revenue from on demand order sales." + ] + }, + { + "name": "Credits", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Keeps track of credits owned by each account." + ] + } + ] + }, + "calls": { + "type": 333 + }, + "events": { + "type": 547 + }, + "constants": [ + { + "name": "TrafficDefaultValue", + "type": 450, + "value": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The default value for the spot traffic multiplier." + ] + }, + { + "name": "MaxHistoricalRevenue", + "type": 4, + "value": "0xa0000000", + "docs": [ + " The maximum number of blocks some historical revenue", + " information stored for." + ] + }, + { + "name": "PalletId", + "type": 679, + "value": "0x70792f6f6e646d64", + "docs": [ + " Identifier for the internal revenue balance." + ] + } + ], + "errors": { + "type": 875 + }, + "index": 64, + "docs": [] + }, + { + "name": "CoretimeAssignmentProvider", + "storage": { + "prefix": "CoretimeAssignmentProvider", + "items": [ + { + "name": "CoreSchedules", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox256" + ], + "key": 876, + "value": 877 + } + }, + "fallback": "0x00", + "docs": [ + " Scheduled assignment sets.", + "", + " Assignments as of the given block number. They will go into state once the block number is", + " reached (and replace whatever was in there before)." + ] + }, + { + "name": "CoreDescriptors", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox256" + ], + "key": 540, + "value": 878 + } + }, + "fallback": "0x0000", + "docs": [ + " Assignments which are currently active.", + "", + " They will be picked from `PendingAssignments` once we reach the scheduled block number in", + " `PendingAssignments`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": { + "type": 886 + }, + "index": 65, + "docs": [] + }, + { + "name": "Registrar", + "storage": { + "prefix": "Registrar", + "items": [ + { + "name": "PendingSwap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 173 + } + }, + "fallback": "0x00", + "docs": [ + " Pending swap operations." + ] + }, + { + "name": "Paras", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 887 + } + }, + "fallback": "0x00", + "docs": [ + " Amount held on deposit for each para and the original depositor.", + "", + " The given account ID is responsible for registering the code and initial head data, but may", + " only do so if it isn't yet registered. (After that, it's up to governance to do so.)" + ] + }, + { + "name": "NextFreeParaId", + "modifier": "Default", + "type": { + "plain": 173 + }, + "fallback": "0x00000000", + "docs": [ + " The next free `ParaId`." + ] + } + ] + }, + "calls": { + "type": 334 + }, + "events": { + "type": 548 + }, + "constants": [ + { + "name": "ParaDeposit", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The deposit to be paid to run a on-demand teyrchain.", + " This should include the cost for storing the genesis head and validation code." + ] + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x80969800000000000000000000000000", + "docs": [ + " The deposit to be paid per byte stored on chain." + ] + } + ], + "errors": { + "type": 889 + }, + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "storage": { + "prefix": "Slots", + "items": [ + { + "name": "Leases", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 890 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts held on deposit for each (possibly future) leased teyrchain.", + "", + " The actual amount locked on its behalf by any account at any time is the maximum of the", + " second values of the items in this list whose first value is the account.", + "", + " The first item in the list is the amount locked for the current Lease Period. Following", + " items are for the subsequent lease periods.", + "", + " The default value (an empty list) implies that the teyrchain no longer exists (or never", + " existed) as far as this pallet is concerned.", + "", + " If a teyrchain doesn't exist *yet* but is scheduled to exist in the future, then it", + " will be left-padded with one or more `None`s to denote the fact that nothing is held on", + " deposit for the non-existent chain currently, but is held at some point in the future.", + "", + " It is illegal for a `None` value to trail in the list." + ] + } + ] + }, + "calls": { + "type": 335 + }, + "events": { + "type": 549 + }, + "constants": [ + { + "name": "LeasePeriod", + "type": 4, + "value": "0x00751200", + "docs": [ + " The number of blocks over which a single period lasts." + ] + }, + { + "name": "LeaseOffset", + "type": 4, + "value": "0x00100e00", + "docs": [ + " The number of blocks to offset each lease period by." + ] + } + ], + "errors": { + "type": 891 + }, + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "storage": { + "prefix": "Auctions", + "items": [ + { + "name": "AuctionCounter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of auctions started so far." + ] + }, + { + "name": "AuctionInfo", + "modifier": "Optional", + "type": { + "plain": 33 + }, + "fallback": "0x00", + "docs": [ + " Information relating to the current auction, if there is one.", + "", + " The first item in the tuple is the lease period index that the first of the four", + " contiguous lease periods on auction is for. The second is the block number when the", + " auction will \"begin to end\", i.e. the first block of the Ending Period of the auction." + ] + }, + { + "name": "ReservedAmounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 892, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Amounts currently reserved in the accounts of the bidders currently winning", + " (sub-)ranges." + ] + }, + { + "name": "Winning", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 893 + } + }, + "fallback": "0x00", + "docs": [ + " The winning bids for each of the 10 ranges at each sample in the final Ending Period of", + " the current auction. The map's key is the 0-based index into the Sample Size. The", + " first sample of the ending period is 0; the last is `Sample Size - 1`." + ] + } + ] + }, + "calls": { + "type": 336 + }, + "events": { + "type": 550 + }, + "constants": [ + { + "name": "EndingPeriod", + "type": 4, + "value": "0x40190100", + "docs": [ + " The number of blocks over which an auction may be retroactively ended." + ] + }, + { + "name": "SampleLength", + "type": 4, + "value": "0x14000000", + "docs": [ + " The length of each sample to take during the ending period.", + "", + " `EndingPeriod` / `SampleLength` = Total # of Samples" + ] + }, + { + "name": "SlotRangeCount", + "type": 4, + "value": "0x24000000", + "docs": [] + }, + { + "name": "LeasePeriodsPerSlot", + "type": 4, + "value": "0x08000000", + "docs": [] + } + ], + "errors": { + "type": 896 + }, + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "storage": { + "prefix": "Crowdloan", + "items": [ + { + "name": "Funds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 173, + "value": 897 + } + }, + "fallback": "0x00", + "docs": [ + " Info on all of the funds." + ] + }, + { + "name": "NewRaise", + "modifier": "Default", + "type": { + "plain": 827 + }, + "fallback": "0x00", + "docs": [ + " The funds that have had additional contributions during the last block. This is used", + " in order to determine which funds should submit new or updated bids." + ] + }, + { + "name": "EndingsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of auctions that have entered into their ending period so far." + ] + }, + { + "name": "NextFundIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Tracker for the next available fund index" + ] + } + ] + }, + "calls": { + "type": 338 + }, + "events": { + "type": 551 + }, + "constants": [ + { + "name": "PalletId", + "type": 679, + "value": "0x70792f6366756e64", + "docs": [ + " `PalletId` for the crowdloan pallet. An appropriate value could be", + " `PalletId(*b\"py/cfund\")`" + ] + }, + { + "name": "MinContribution", + "type": 6, + "value": "0x00743ba40b0000000000000000000000", + "docs": [ + " The minimum amount that may be contributed into a crowdloan. Should almost certainly be", + " at least `ExistentialDeposit`." + ] + }, + { + "name": "RemoveKeysLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of storage keys to remove per extrinsic call." + ] + } + ], + "errors": { + "type": 899 + }, + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "storage": null, + "calls": { + "type": 343 + }, + "events": { + "type": 552 + }, + "constants": [ + { + "name": "BrokerId", + "type": 4, + "value": "0xed030000", + "docs": [ + " The ParaId of the coretime chain." + ] + }, + { + "name": "BrokerPotLocation", + "type": 86, + "value": "0x0101006d6f646c70792f62726f6b650000000000000000000000000000000000000000", + "docs": [ + " The coretime chain pot location." + ] + } + ], + "errors": { + "type": 900 + }, + "index": 74, + "docs": [] + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 351 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ] + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 349 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ] + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 350 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ] + } + ] + }, + "calls": { + "type": 348 + }, + "events": { + "type": 553 + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ] + } + ], + "errors": { + "type": 555 + }, + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "storage": { + "prefix": "XcmPallet", + "items": [ + { + "name": "QueryCounter", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The latest available query index." + ] + }, + { + "name": "Queries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 12, + "value": 901 + } + }, + "fallback": "0x00", + "docs": [ + " The ongoing queries." + ] + }, + { + "name": "AssetTraps", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The existing asset traps.", + "", + " Key is the blake2 256 hash of (origin, versioned `Assets`) pair. Value is the number of", + " times this pair has been trapped (usually just 1 if it exists at all)." + ] + }, + { + "name": "SafeXcmVersion", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Default version to encode XCM when latest version of destination is unknown. If `None`,", + " then the destinations whose XCM version is unknown are considered unreachable." + ] + }, + { + "name": "SupportedVersion", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 906, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The Latest versions that we know various locations support." + ] + }, + { + "name": "VersionNotifiers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 906, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " All locations that we have requested version notifications from." + ] + }, + { + "name": "VersionNotifyTargets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 906, + "value": 907 + } + }, + "fallback": "0x00", + "docs": [ + " The target locations that are subscribed to our version changes, as well as the most recent", + " of our versions we informed them of." + ] + }, + { + "name": "VersionDiscoveryQueue", + "modifier": "Default", + "type": { + "plain": 908 + }, + "fallback": "0x00", + "docs": [ + " Destinations whose latest XCM version we would like to know. Duplicates not allowed, and", + " the `u32` counter is the number of times that a send to the destination has been attempted,", + " which is used as a prioritization." + ] + }, + { + "name": "CurrentMigration", + "modifier": "Optional", + "type": { + "plain": 911 + }, + "fallback": "0x00", + "docs": [ + " The current migration's stage, if any." + ] + }, + { + "name": "RemoteLockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 913, + "value": 914 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on a remote chain." + ] + }, + { + "name": "LockedFungibles", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 918 + } + }, + "fallback": "0x00", + "docs": [ + " Fungible assets which we know are locked on this chain." + ] + }, + { + "name": "XcmExecutionSuspended", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Global suspension state of the XCM executor." + ] + }, + { + "name": "ShouldRecordXcm", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether or not incoming XCMs (both executed locally and received) should be recorded.", + " Only one XCM program will be recorded at a time.", + " This is meant to be used in runtime APIs, and it's advised it stays false", + " for all other use cases, so as to not degrade regular performance.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "RecordedXcm", + "modifier": "Optional", + "type": { + "plain": 401 + }, + "fallback": "0x00", + "docs": [ + " If [`ShouldRecordXcm`] is set to true, then the last XCM program executed locally", + " will be stored here.", + " Runtime APIs can fetch the XCM that was executed by accessing this value.", + "", + " Only relevant if this pallet is being used as the [`xcm_executor::traits::RecordXcm`]", + " implementation in the XCM executor configuration." + ] + }, + { + "name": "AuthorizedAliases", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 99, + "value": 921 + } + }, + "fallback": "0x00", + "docs": [ + " Map of authorized aliasers of local origins. Each local location can authorize a list of", + " other locations to alias into it. Each aliaser is only valid until its inner `expiry`", + " block number." + ] + } + ] + }, + "calls": { + "type": 354 + }, + "events": { + "type": 556 + }, + "constants": [ + { + "name": "UniversalLocation", + "type": 86, + "value": "0x010902", + "docs": [ + " This chain's Universal Location." + ] + }, + { + "name": "AdvertisedXcmVersion", + "type": 4, + "value": "0x05000000", + "docs": [ + " The latest supported version that we advertise. Generally just set it to", + " `pallet_xcm::CurrentXcmVersion`." + ] + }, + { + "name": "MaxLockers", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of local XCM locks that a single account may have." + ] + }, + { + "name": "MaxRemoteLockConsumers", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of consumers a single remote lock may have." + ] + } + ], + "errors": { + "type": 927 + }, + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 447, + "value": 929 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ] + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 447 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ] + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 932, + "value": 933 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ] + } + ] + }, + "calls": { + "type": 446 + }, + "events": { + "type": 560 + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ] + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ] + }, + { + "name": "ServiceWeight", + "type": 418, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ] + }, + { + "name": "IdleMaxServiceWeight", + "type": 418, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ] + } + ], + "errors": { + "type": 935 + }, + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 59, + "value": 450 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ] + } + ] + }, + "calls": { + "type": 449 + }, + "events": { + "type": 562 + }, + "constants": [], + "errors": { + "type": 936 + }, + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 937 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ] + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ] + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 937 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ] + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 46 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ] + } + ] + }, + "calls": { + "type": 451 + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xa0860100", + "docs": [ + " The maximum number of authorities that can be added." + ] + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of nominators for each validator." + ] + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xa800000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ] + } + ], + "errors": { + "type": 939 + }, + "index": 200, + "docs": [] + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ] + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ] + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 201, + "docs": [] + }, + { + "name": "BeefyMmrLeaf", + "storage": { + "prefix": "BeefyMmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 940 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ] + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 940 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ] + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "index": 202, + "docs": [] + }, + { + "name": "RcMigrator", + "storage": { + "prefix": "RcMigrator", + "items": [ + { + "name": "RcMigrationStage", + "modifier": "Default", + "type": { + "plain": 466 + }, + "fallback": "0x00", + "docs": [ + " The Relay Chain migration state." + ] + }, + { + "name": "RcAccounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 941 + } + }, + "fallback": "0x00", + "docs": [ + " Helper storage item to obtain and store the known accounts that should be kept partially or", + " fully on Relay Chain." + ] + }, + { + "name": "CounterForRcAccounts", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "RcMigratedBalance", + "modifier": "Default", + "type": { + "plain": 942 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Helper storage item to store the total balance that should be kept on Relay Chain." + ] + }, + { + "name": "RcMigratedBalanceArchive", + "modifier": "Default", + "type": { + "plain": 942 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Helper storage item to store the total balance that should be kept on Relay Chain after", + " it is consumed from the `RcMigratedBalance` storage item and sent to the Asset Hub.", + "", + " This let us to take the value from the `RcMigratedBalance` storage item and keep the", + " `SignalMigrationFinish` stage to be idempotent while preserving these values for tests and", + " later discoveries." + ] + }, + { + "name": "PendingXcmMessages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 463, + "value": 401 + } + }, + "fallback": "0x00", + "docs": [ + " The pending XCM messages.", + "", + " Contains data messages that have been sent to the Asset Hub but not yet confirmed.", + "", + " Unconfirmed messages can be resent by calling the [`Pallet::resend_xcm`] function." + ] + }, + { + "name": "CounterForPendingXcmMessages", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ] + }, + { + "name": "PureProxyCandidatesMigrated", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " Accounts that use the proxy pallet to delegate permissions and have no nonce.", + "", + " Boolean value is whether they have been migrated to the Asset Hub. Needed for idempotency." + ] + }, + { + "name": "PendingXcmQueries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The pending XCM response queries and their XCM hash referencing the message in the", + " [`PendingXcmMessages`] storage.", + "", + " The `QueryId` is the identifier from the [`pallet_xcm`] query handler registry. The XCM", + " pallet will notify about the status of the message by calling the", + " [`Pallet::receive_query_response`] function with the `QueryId` and the", + " response." + ] + }, + { + "name": "UnprocessedMsgBuffer", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Manual override for `type UnprocessedMsgBuffer: Get`. Look there for docs." + ] + }, + { + "name": "AhUmpQueuePriorityConfig", + "modifier": "Default", + "type": { + "plain": 508 + }, + "fallback": "0x00", + "docs": [ + " The priority of the Asset Hub UMP queue during migration.", + "", + " Controls how the Asset Hub UMP (Upward Message Passing) queue is processed relative to other", + " queues during the migration process. This helps ensure timely processing of migration", + " messages. The default priority pattern is defined in the pallet configuration, but can be", + " overridden by a storage value of this type." + ] + }, + { + "name": "Manager", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " An optional account id of a manager.", + "", + " This account id has similar privileges to [`Config::AdminOrigin`] except that it", + " can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "Canceller", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " An optional account id of a canceller.", + "", + " This account id can only stop scheduled migration." + ] + }, + { + "name": "MigrationStartBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The block number at which the migration began and the pallet's extrinsics were locked.", + "", + " This value is set when entering the `WaitingForAh` stage, i.e., when", + " `RcMigrationStage::is_ongoing()` becomes `true`." + ] + }, + { + "name": "MigrationEndBlock", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number when migration finished and extrinsics were unlocked.", + "", + " This is set when entering the `MigrationDone` stage hence when", + " `RcMigrationStage::is_finished()` becomes `true`." + ] + }, + { + "name": "WarmUpPeriod", + "modifier": "Optional", + "type": { + "plain": 175 + }, + "fallback": "0x00", + "docs": [ + " The duration of the pre migration warm-up period.", + "", + " This is the duration of the warm-up period before the data migration starts. During this", + " period, the migration will be in ongoing state and the concerned extrinsics will be locked." + ] + }, + { + "name": "CoolOffPeriod", + "modifier": "Optional", + "type": { + "plain": 175 + }, + "fallback": "0x00", + "docs": [ + " The duration of the post migration cool-off period.", + "", + " This is the duration of the cool-off period after the data migration is finished. During", + " this period, the migration will be still in ongoing state and the concerned extrinsics will", + " be locked." + ] + }, + { + "name": "Settings", + "modifier": "Optional", + "type": { + "plain": 511 + }, + "fallback": "0x00", + "docs": [ + " The migration settings." + ] + }, + { + "name": "ManagerMultisigs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 106, + "value": 129 + } + }, + "fallback": "0x00", + "docs": [ + " The multisig AccountIDs that votes to execute a specific call." + ] + }, + { + "name": "ManagerMultisigRound", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current round of the multisig voting.", + "", + " Votes are only valid for the current round." + ] + }, + { + "name": "ManagerVotesInCurrentRound", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " How often each participant voted in the current round.", + "", + " Will be cleared at the end of each round." + ] + } + ] + }, + "calls": { + "type": 465 + }, + "events": { + "type": 563 + }, + "constants": [], + "errors": { + "type": 943 + }, + "index": 255, + "docs": [] + } + ], + "extrinsic": { + "version": 4, + "addressType": 126, + "callType": 106, + "signatureType": 342, + "extraType": 944, + "signedExtensions": [ + { + "identifier": "CheckNonZeroSender", + "type": 945, + "additionalSigned": 36 + }, + { + "identifier": "CheckSpecVersion", + "type": 946, + "additionalSigned": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 947, + "additionalSigned": 4 + }, + { + "identifier": "CheckGenesis", + "type": 948, + "additionalSigned": 13 + }, + { + "identifier": "CheckMortality", + "type": 949, + "additionalSigned": 13 + }, + { + "identifier": "CheckNonce", + "type": 951, + "additionalSigned": 36 + }, + { + "identifier": "CheckWeight", + "type": 952, + "additionalSigned": 36 + }, + { + "identifier": "ChargeTransactionPayment", + "type": 953, + "additionalSigned": 36 + }, + { + "identifier": "PrevalidateAttests", + "type": 954, + "additionalSigned": 36 + }, + { + "identifier": "CheckMetadataHash", + "type": 955, + "additionalSigned": 34 + } + ] + }, + "type": 957, + "apis": [ + { + "name": "Inflation", + "methods": [ + { + "name": "experimental_inflation_prediction_info", + "inputs": [], + "output": 958, + "docs": [ + " Return the current estimates of the inflation amount.", + "", + " This is marked as experimental in light of RFC#89. Nonetheless, its usage is highly", + " recommended over trying to read-storage, or re-create the onchain logic." + ] + } + ], + "docs": [] + }, + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 577, + "docs": [ + " Returns the version of the runtime." + ] + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "type": 961 + } + ], + "output": 36, + "docs": [ + " Execute the given block." + ] + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "type": 117 + } + ], + "output": 964, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ] + } + ], + "docs": [ + " The `Core` runtime api that every Bizinikiwi runtime needs to implement." + ] + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 965, + "docs": [ + " Returns the metadata of a runtime." + ] + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "type": 4 + } + ], + "output": 966, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ] + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 134, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ] + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ] + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "type": 962 + } + ], + "output": 967, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ] + }, + { + "name": "finalize_block", + "inputs": [], + "output": 117, + "docs": [ + " Finish the current block." + ] + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "type": 971 + } + ], + "output": 963, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ] + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "type": 961 + }, + { + "name": "data", + "type": 971 + } + ], + "output": 975, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ] + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ] + }, + { + "name": "NominationPoolsApi", + "methods": [ + { + "name": "pending_rewards", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending rewards for the member that the AccountId was given for." + ] + }, + { + "name": "points_to_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "points", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent balance of `points` for a given pool." + ] + }, + { + "name": "balance_to_points", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "new_funds", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent points of `new_funds` for a given pool." + ] + }, + { + "name": "pool_pending_slash", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool." + ] + }, + { + "name": "member_pending_slash", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool member.", + "", + " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on", + " chain." + ] + }, + { + "name": "pool_needs_delegate_migration", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 8, + "docs": [ + " Returns true if the pool with `pool_id` needs migration.", + "", + " This can happen when the `pallet-nomination-pools` has switched to using strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool", + " still has funds that were staked using the older strategy", + " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use", + " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)", + " to migrate the pool." + ] + }, + { + "name": "member_needs_delegate_migration", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if the delegated funds of the pool `member` needs migration.", + "", + " Once a pool has successfully migrated to the strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the", + " member can be migrated from pool account to the member's account. Use", + " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)", + " to migrate the funds of the pool member." + ] + }, + { + "name": "member_total_balance", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the total contribution of a pool member including any balance that is unbonding." + ] + }, + { + "name": "pool_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Total balance contributed to the pool." + ] + }, + { + "name": "pool_accounts", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 976, + "docs": [ + " Returns the bonded account and reward account associated with the pool_id." + ] + } + ], + "docs": [ + " Runtime api for accessing information about nomination pools." + ] + }, + { + "name": "StakingApi", + "methods": [ + { + "name": "nominations_quota", + "inputs": [ + { + "name": "balance", + "type": 6 + } + ], + "output": 4, + "docs": [ + " Returns the nominations quota for a nominator with a given balance." + ] + }, + { + "name": "eras_stakers_page_count", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Returns the page count of exposures for a validator `account` in a given era." + ] + }, + { + "name": "pending_rewards", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if validator `account` has pages to be claimed for the given era." + ] + } + ], + "docs": [] + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "type": 977 + }, + { + "name": "tx", + "type": 962 + }, + { + "name": "block_hash", + "type": 13 + } + ], + "output": 978, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ] + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ] + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "type": 117 + } + ], + "output": 36, + "docs": [ + " Starts the off-chain task for given block header." + ] + } + ], + "docs": [ + " The offchain worker api." + ] + }, + { + "name": "TeyrchainHost", + "methods": [ + { + "name": "validators", + "inputs": [], + "output": 795, + "docs": [ + " Get the current validators." + ] + }, + { + "name": "validator_groups", + "inputs": [], + "output": 980, + "docs": [ + " Returns the validator groups and rotation info localized based on the hypothetical child", + " of a block whose state this is invoked on. Note that `now` in the `GroupRotationInfo`", + " should be the successor of the number of the block." + ] + }, + { + "name": "availability_cores", + "inputs": [], + "output": 982, + "docs": [ + " Yields information on all availability cores as relevant to the child block.", + " Cores are either free or occupied. Free cores can have paras assigned to them." + ] + }, + { + "name": "persisted_validation_data", + "inputs": [ + { + "name": "para_id", + "type": 173 + }, + { + "name": "assumption", + "type": 989 + } + ], + "output": 990, + "docs": [ + " Yields the persisted validation data for the given `ParaId` along with an assumption that", + " should be used if the para currently occupies a core.", + "", + " Returns `None` if either the para is not registered or the assumption is `Freed`", + " and the para already occupies a core." + ] + }, + { + "name": "assumed_validation_data", + "inputs": [ + { + "name": "para_id", + "type": 173 + }, + { + "name": "expected_persisted_validation_data_hash", + "type": 13 + } + ], + "output": 992, + "docs": [ + " Returns the persisted validation data for the given `ParaId` along with the corresponding", + " validation code hash. Instead of accepting assumption about the para, matches the validation", + " data hash against an expected one and yields `None` if they're not equal." + ] + }, + { + "name": "check_validation_outputs", + "inputs": [ + { + "name": "para_id", + "type": 173 + }, + { + "name": "outputs", + "type": 304 + } + ], + "output": 8, + "docs": [ + " Checks if the given validation outputs pass the acceptance criteria." + ] + }, + { + "name": "session_index_for_child", + "inputs": [], + "output": 4, + "docs": [ + " Returns the session index expected at a child of the block.", + "", + " This can be used to instantiate a `SigningContext`." + ] + }, + { + "name": "validation_code", + "inputs": [ + { + "name": "para_id", + "type": 173 + }, + { + "name": "assumption", + "type": 989 + } + ], + "output": 309, + "docs": [ + " Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.", + "", + " Returns `None` if either the para is not registered or the assumption is `Freed`", + " and the para already occupies a core." + ] + }, + { + "name": "candidate_pending_availability", + "inputs": [ + { + "name": "para_id", + "type": 173 + } + ], + "output": 994, + "docs": [ + " Get the receipt of a candidate pending availability. This returns `Some` for any paras", + " assigned to occupied cores in `availability_cores` and `None` otherwise." + ] + }, + { + "name": "candidate_events", + "inputs": [], + "output": 995, + "docs": [ + " Get a vector of events concerning candidates that occurred within a block." + ] + }, + { + "name": "dmq_contents", + "inputs": [ + { + "name": "recipient", + "type": 173 + } + ], + "output": 841, + "docs": [ + " Get all the pending inbound messages in the downward message queue for a para." + ] + }, + { + "name": "inbound_hrmp_channels_contents", + "inputs": [ + { + "name": "recipient", + "type": 173 + } + ], + "output": 997, + "docs": [ + " Get the contents of all channels addressed to the given recipient. Channels that have no", + " messages in them are also included." + ] + }, + { + "name": "validation_code_by_hash", + "inputs": [ + { + "name": "hash", + "type": 303 + } + ], + "output": 309, + "docs": [ + " Get the validation code from its hash." + ] + }, + { + "name": "on_chain_votes", + "inputs": [], + "output": 1000, + "docs": [ + " Scrape dispute relevant from on-chain, backing votes and resolved disputes." + ] + }, + { + "name": "session_info", + "inputs": [ + { + "name": "index", + "type": 4 + } + ], + "output": 1001, + "docs": [ + " Get the session info for the given session, if stored.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "submit_pvf_check_statement", + "inputs": [ + { + "name": "stmt", + "type": 324 + }, + { + "name": "signature", + "type": 296 + } + ], + "output": 36, + "docs": [ + " Submits a PVF pre-checking statement into the transaction pool.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "pvfs_require_precheck", + "inputs": [], + "output": 826, + "docs": [ + " Returns code hashes of PVFs that require pre-checking by validators in the active set.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "validation_code_hash", + "inputs": [ + { + "name": "para_id", + "type": 173 + }, + { + "name": "assumption", + "type": 989 + } + ], + "output": 1002, + "docs": [ + " Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.", + "", + " NOTE: This function is only available since teyrchain host version 2." + ] + }, + { + "name": "disputes", + "inputs": [], + "output": 1003, + "docs": [ + " Returns all onchain disputes." + ] + }, + { + "name": "session_executor_params", + "inputs": [ + { + "name": "session_index", + "type": 4 + } + ], + "output": 1005, + "docs": [ + " Returns execution parameters for the session." + ] + }, + { + "name": "unapplied_slashes", + "inputs": [], + "output": 1006, + "docs": [ + " Returns a list of validators that lost a past session dispute and need to be slashed.", + " NOTE: This function is only available since teyrchain host version 5." + ] + }, + { + "name": "key_ownership_proof", + "inputs": [ + { + "name": "validator_id", + "type": 148 + } + ], + "output": 1010, + "docs": [ + " Returns a merkle proof of a validator session key.", + " NOTE: This function is only available since teyrchain host version 5." + ] + }, + { + "name": "submit_report_dispute_lost", + "inputs": [ + { + "name": "dispute_proof", + "type": 1012 + }, + { + "name": "key_ownership_proof", + "type": 1011 + } + ], + "output": 479, + "docs": [ + " Submit an unsigned extrinsic to slash validators who lost a dispute about", + " a candidate of a past session.", + " NOTE: This function is only available since teyrchain host version 5." + ] + }, + { + "name": "minimum_backing_votes", + "inputs": [], + "output": 4, + "docs": [ + " Get the minimum number of backing votes for a teyrchain candidate.", + " This is a staging method! Do not use on production runtimes!" + ] + }, + { + "name": "para_backing_state", + "inputs": [ + { + "name": "__runtime_api_generated_name_0__", + "type": 173 + } + ], + "output": 1013, + "docs": [ + " Returns the state of teyrchain backing for a given para." + ] + }, + { + "name": "async_backing_params", + "inputs": [], + "output": 278, + "docs": [ + " Returns candidate's acceptance limitations for asynchronous backing for a relay parent." + ] + }, + { + "name": "disabled_validators", + "inputs": [], + "output": 794, + "docs": [ + " Returns a list of all disabled validators at the given block." + ] + }, + { + "name": "node_features", + "inputs": [], + "output": 293, + "docs": [ + " Get node features.", + " This is a staging method! Do not use on production runtimes!" + ] + }, + { + "name": "approval_voting_params", + "inputs": [], + "output": 284, + "docs": [ + " Approval voting configuration parameters" + ] + }, + { + "name": "claim_queue", + "inputs": [], + "output": 1025, + "docs": [ + " Claim queue" + ] + }, + { + "name": "candidates_pending_availability", + "inputs": [ + { + "name": "para_id", + "type": 173 + } + ], + "output": 1028, + "docs": [ + " Elastic scaling support" + ] + }, + { + "name": "validation_code_bomb_limit", + "inputs": [], + "output": 4, + "docs": [ + " Retrieve the maximum uncompressed code size." + ] + }, + { + "name": "backing_constraints", + "inputs": [ + { + "name": "para_id", + "type": 173 + } + ], + "output": 1029, + "docs": [ + " Returns the constraints on the actions that can be taken by a new teyrchain", + " block." + ] + }, + { + "name": "scheduling_lookahead", + "inputs": [], + "output": 4, + "docs": [ + " Retrieve the scheduling lookahead" + ] + } + ], + "docs": [ + " The API for querying the state of teyrchains on-chain." + ] + }, + { + "name": "BeefyApi", + "methods": [ + { + "name": "beefy_genesis", + "inputs": [], + "output": 46, + "docs": [ + " Return the block number where BEEFY consensus is enabled/started" + ] + }, + { + "name": "validator_set", + "inputs": [], + "output": 1031, + "docs": [ + " Return the current active BEEFY validator set" + ] + }, + { + "name": "submit_report_double_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 452 + }, + { + "name": "key_owner_proof", + "type": 1033 + } + ], + "output": 479, + "docs": [ + " Submits an unsigned extrinsic to report a double voting equivocation. The caller", + " must provide the double voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "submit_report_fork_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 1034 + }, + { + "name": "key_owner_proof", + "type": 1033 + } + ], + "output": 479, + "docs": [ + " Submits an unsigned extrinsic to report a fork voting equivocation. The caller", + " must provide the fork voting proof (the ancestry proof should be obtained using", + " `generate_ancestry_proof`) and a key ownership proof (should be obtained using", + " `generate_key_ownership_proof`). The extrinsic will be unsigned and should only", + " be accepted for local authorship (not to be broadcast to the network). This method", + " returns `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "submit_report_future_block_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 464 + }, + { + "name": "key_owner_proof", + "type": 1033 + } + ], + "output": 479, + "docs": [ + " Submits an unsigned extrinsic to report a future block voting equivocation. The caller", + " must provide the future block voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`).", + " The extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 151 + } + ], + "output": 1035, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ] + }, + { + "name": "generate_ancestry_proof", + "inputs": [ + { + "name": "prev_block_number", + "type": 4 + }, + { + "name": "best_known_block_number", + "type": 46 + } + ], + "output": 1035, + "docs": [ + " Generates a proof that the `prev_block_number` is part of the canonical chain at", + " `best_known_block_number`." + ] + } + ], + "docs": [ + " API necessary for BEEFY voters." + ] + }, + { + "name": "MmrApi", + "methods": [ + { + "name": "mmr_root", + "inputs": [], + "output": 1036, + "docs": [ + " Return the on-chain MMR root hash." + ] + }, + { + "name": "mmr_leaf_count", + "inputs": [], + "output": 1038, + "docs": [ + " Return the number of MMR blocks in the chain." + ] + }, + { + "name": "generate_proof", + "inputs": [ + { + "name": "block_numbers", + "type": 134 + }, + { + "name": "best_known_block_number", + "type": 46 + } + ], + "output": 1039, + "docs": [ + " Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,", + " use historical MMR state at given block height `n`. Else, use current MMR state." + ] + }, + { + "name": "verify_proof", + "inputs": [ + { + "name": "leaves", + "type": 1041 + }, + { + "name": "proof", + "type": 1043 + } + ], + "output": 1044, + "docs": [ + " Verify MMR proof against on-chain MMR for a batch of leaves.", + "", + " Note this function will use on-chain MMR root hash and check if the proof matches the hash.", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ] + }, + { + "name": "verify_proof_stateless", + "inputs": [ + { + "name": "root", + "type": 13 + }, + { + "name": "leaves", + "type": 1041 + }, + { + "name": "proof", + "type": 1043 + } + ], + "output": 1044, + "docs": [ + " Verify MMR proof against given root hash for a batch of leaves.", + "", + " Note this function does not require any on-chain storage - the", + " proof is verified against given MMR root hash.", + "", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ] + } + ], + "docs": [ + " API to interact with MMR pallet." + ] + }, + { + "name": "BeefyMmrApi", + "methods": [ + { + "name": "authority_set_proof", + "inputs": [], + "output": 940, + "docs": [ + " Return the currently active BEEFY authority set proof." + ] + }, + { + "name": "next_authority_set_proof", + "inputs": [], + "output": 940, + "docs": [ + " Return the next/queued BEEFY authority set proof." + ] + } + ], + "docs": [ + " API useful for BEEFY light clients." + ] + }, + { + "name": "GrandpaApi", + "methods": [ + { + "name": "grandpa_authorities", + "inputs": [], + "output": 55, + "docs": [ + " Get the current GRANDPA authorities and weights. This should not change except", + " for when changes are scheduled and the corresponding delay has passed.", + "", + " When called at block B, it will return the set of authorities that should be", + " used to finalize descendants of this block (B+1, B+2, ...). The block B itself", + " is finalized by the authorities from block B-1." + ] + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 154 + }, + { + "name": "key_owner_proof", + "type": 1033 + } + ], + "output": 479, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 57 + } + ], + "output": 1035, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignore this parameter and instead rely on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ] + }, + { + "name": "current_set_id", + "inputs": [], + "output": 12, + "docs": [ + " Get current GRANDPA authority set id." + ] + } + ], + "docs": [ + " APIs for integrating the GRANDPA finality gadget into runtimes.", + " This should be implemented on the runtime side.", + "", + " This is primarily used for negotiating authority-set changes for the", + " gadget. GRANDPA uses a signaling model of changing authority sets:", + " changes should be signaled with a delay of N blocks, and then automatically", + " applied in the runtime after those N blocks have passed.", + "", + " The consensus protocol will coordinate the handoff externally." + ] + }, + { + "name": "BabeApi", + "methods": [ + { + "name": "configuration", + "inputs": [], + "output": 1045, + "docs": [ + " Return the configuration for BABE." + ] + }, + { + "name": "current_epoch_start", + "inputs": [], + "output": 119, + "docs": [ + " Returns the slot that started the current epoch." + ] + }, + { + "name": "current_epoch", + "inputs": [], + "output": 1046, + "docs": [ + " Returns information regarding the current epoch." + ] + }, + { + "name": "next_epoch", + "inputs": [], + "output": 1046, + "docs": [ + " Returns information regarding the next epoch (which was already", + " previously announced)." + ] + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "slot", + "type": 119 + }, + { + "name": "authority_id", + "type": 118 + } + ], + "output": 1047, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " current epoch. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `slot` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the epoch for the given slot is live on-chain. Future", + " implementations will instead use indexed data through an offchain", + " worker, not requiring older states to be available." + ] + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 116 + }, + { + "name": "key_owner_proof", + "type": 1048 + } + ], + "output": 479, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ] + } + ], + "docs": [ + " API necessary for block authorship with BABE." + ] + }, + { + "name": "AuthorityDiscoveryApi", + "methods": [ + { + "name": "authorities", + "inputs": [], + "output": 673, + "docs": [ + " Retrieve authority identifiers of the current and next authority set." + ] + } + ], + "docs": [ + " The authority discovery api.", + "", + " This api is used by the `client/authority-discovery` module to retrieve identifiers", + " of the current and next authority set." + ] + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "type": 912 + } + ], + "output": 14, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ] + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "type": 14 + } + ], + "output": 1049, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ] + } + ], + "docs": [ + " Session keys runtime api." + ] + }, + { + "name": "RuntimeViewFunction", + "methods": [ + { + "name": "execute_view_function", + "inputs": [ + { + "name": "query_id", + "type": 1052 + }, + { + "name": "input", + "type": 14 + } + ], + "output": 1053, + "docs": [ + " Execute a view function query." + ] + } + ], + "docs": [ + " Runtime API for executing view functions" + ] + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ] + } + ], + "docs": [ + " The API to query account nonce." + ] + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "type": 962 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1055, + "docs": [] + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "type": 962 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1056, + "docs": [] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [] + } + ], + "docs": [] + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "type": 106 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1055, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ] + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "type": 106 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1056, + "docs": [ + " Query fee details of a given encoded `Call`." + ] + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ] + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ] + } + ], + "docs": [] + }, + { + "name": "XcmPaymentApi", + "methods": [ + { + "name": "query_acceptable_payment_assets", + "inputs": [ + { + "name": "xcm_version", + "type": 4 + } + ], + "output": 1059, + "docs": [ + " Returns a list of acceptable payment assets.", + "", + " # Arguments", + "", + " * `xcm_version`: Version." + ] + }, + { + "name": "query_xcm_weight", + "inputs": [ + { + "name": "message", + "type": 355 + } + ], + "output": 1062, + "docs": [ + " Returns a weight needed to execute a XCM.", + "", + " # Arguments", + "", + " * `message`: `VersionedXcm`." + ] + }, + { + "name": "query_weight_to_asset_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + }, + { + "name": "asset", + "type": 444 + } + ], + "output": 1063, + "docs": [ + " Converts a weight into a fee for the specified `AssetId`.", + "", + " # Arguments", + "", + " * `weight`: convertible `Weight`.", + " * `asset`: `VersionedAssetId`." + ] + }, + { + "name": "query_delivery_fees", + "inputs": [ + { + "name": "destination", + "type": 99 + }, + { + "name": "message", + "type": 355 + } + ], + "output": 1064, + "docs": [ + " Get delivery fees for sending a specific `message` to a `destination`.", + " These always come in a specific asset, defined by the chain.", + "", + " # Arguments", + " * `message`: The message that'll be sent, necessary because most delivery fees are based on the", + " size of the message.", + " * `destination`: The destination to send the message to. Different destinations may use", + " different senders that charge different fees." + ] + } + ], + "docs": [ + " A trait of XCM payment API.", + "", + " API provides functionality for obtaining:", + "", + " * the weight required to execute an XCM message,", + " * a list of acceptable `AssetId`s for message execution payment,", + " * the cost of the weight in the specified acceptable `AssetId`.", + " * the fees for an XCM message delivery.", + "", + " To determine the execution weight of the calls required for", + " [`xcm::latest::Instruction::Transact`] instruction, `TransactionPaymentCallApi` can be used." + ] + }, + { + "name": "DryRunApi", + "methods": [ + { + "name": "dry_run_call", + "inputs": [ + { + "name": "origin", + "type": 169 + }, + { + "name": "call", + "type": 106 + }, + { + "name": "result_xcms_version", + "type": 4 + } + ], + "output": 1065, + "docs": [ + " Dry run call V2." + ] + }, + { + "name": "dry_run_xcm", + "inputs": [ + { + "name": "origin_location", + "type": 99 + }, + { + "name": "xcm", + "type": 432 + } + ], + "output": 1073, + "docs": [ + " Dry run XCM program" + ] + } + ], + "docs": [ + " API for dry-running extrinsics and XCM programs to get the programs that need to be passed to the fees API.", + "", + " All calls return a vector of tuples (location, xcm) where each \"xcm\" is executed in \"location\".", + " If there's local execution, the location will be \"Here\".", + " This vector can be used to calculate both execution and delivery fees.", + "", + " Calls or XCMs might fail when executed, this doesn't mean the result of these calls will be an `Err`.", + " In those cases, there might still be a valid result, with the execution error inside it.", + " The only reasons why these calls might return an error are listed in the [`Error`] enum." + ] + }, + { + "name": "LocationToAccountApi", + "methods": [ + { + "name": "convert_location", + "inputs": [ + { + "name": "location", + "type": 99 + } + ], + "output": 1075, + "docs": [ + " Converts `Location` to `AccountId`." + ] + } + ], + "docs": [ + " API for useful conversions between XCM `Location` and `AccountId`." + ] + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "type": 14 + } + ], + "output": 1077, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full", + " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the", + " provided JSON blob is incorrect or incomplete or the deserialization fails, an error", + " is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ] + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "type": 1078 + } + ], + "output": 912, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function should return JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ] + }, + { + "name": "preset_names", + "inputs": [], + "output": 1079, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ] + } + ], + "docs": [ + " API to interact with `RuntimeGenesisConfig` for the runtime" + ] + } + ], + "outerEnums": { + "callType": 106, + "eventType": 21, + "errorType": 1080 + }, + "custom": { + "map": {} + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/pezkuwi-rpc.ts b/packages/types-support/src/metadata/v15/pezkuwi-rpc.ts new file mode 100644 index 0000000..6347d5c --- /dev/null +++ b/packages/types-support/src/metadata/v15/pezkuwi-rpc.ts @@ -0,0 +1,138 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "methods": [ + "account_nextIndex", + "archive_v1_body", + "archive_v1_call", + "archive_v1_finalizedHeight", + "archive_v1_genesisHash", + "archive_v1_hashByHeight", + "archive_v1_header", + "archive_v1_stopStorage", + "archive_v1_storage", + "archive_v1_storageDiff", + "archive_v1_storageDiff_stopStorageDiff", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v15/pezkuwi-types.json b/packages/types-support/src/metadata/v15/pezkuwi-types.json new file mode 100644 index 0000000..cc888bb --- /dev/null +++ b/packages/types-support/src/metadata/v15/pezkuwi-types.json @@ -0,0 +1,67809 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 565, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 32, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 37, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 38, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 39, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 42, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 43, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 50, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Historical", + "fields": [ + { + "name": null, + "type": 52, + "typeName": "session_historical::Event", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 53, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 58, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 100, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 104, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 515, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 519, + "typeName": "claims::Event", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 520, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 521, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 522, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 524, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 525, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 526, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 527, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 531, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 532, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 534, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 535, + "typeName": "pallet_delegated_staking::Event", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "StakingAhClient", + "fields": [ + { + "name": null, + "type": 536, + "typeName": "pallet_staking_async_ah_client::Event", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 538, + "typeName": "teyrchains_inclusion::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 542, + "typeName": "teyrchains_paras::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 543, + "typeName": "teyrchains_hrmp::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "teyrchains_disputes::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "OnDemand", + "fields": [ + { + "name": null, + "type": 547, + "typeName": "teyrchains_on_demand::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 548, + "typeName": "paras_registrar::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 549, + "typeName": "slots::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 550, + "typeName": "auctions::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 551, + "typeName": "crowdloan::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 552, + "typeName": "coretime::Event", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 553, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 556, + "typeName": "pallet_xcm::Event", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 560, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 562, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "RcMigrator", + "fields": [ + { + "name": null, + "type": 563, + "typeName": "pallet_rc_migrator::Event", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + }, + { + "name": "RejectedInvalidAuthorizedUpgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An invalid authorized upgrade was rejected while trying to apply it." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "DispatchEventInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Trie", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "TrieError", + "docs": [] + } + ], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "proving_trie", + "TrieError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidStateRoot", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "IncompleteDatabase", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ValueAtIncompleteKey", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DecoderError", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DuplicateKey", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExtraneousNode", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ExtraneousValue", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "ExtraneousHashReference", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidChildReference", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ValueMismatch", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IncompleteProof", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "RootMismatch", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DecodeError", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + }, + { + "name": "AgendaIncomplete", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Agenda is incomplete from `when`." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 33, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 34, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 36, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 36, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 37, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A deposit to reserve an index has been poked/reconsidered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 40, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 41, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 22, + "docs": [ + "An unexpected/defensive event was triggered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 40, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_balances", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceUpdated", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FailedToMutateAccount", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 42, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 43, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 44, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "next", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 47, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 49, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + }, + { + "name": "CurrencyMigrated", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "force_withdraw", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Staking balance migrated from locks to holds, with any balance that could not be held", + "is force withdrawn." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 44, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 48, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 48, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 45 + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 51, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 14, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 51, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [ + "pallet_session", + "historical", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RootStored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The merkle root of the validators of the said session were stored" + ] + }, + { + "name": "RootsPruned", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The merkle roots of up to this session index were pruned" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + }, + { + "name": "NewQueued", + "fields": [], + "index": 1, + "docs": [ + "The `NewSession` event in the current block also implies a new validator set to be", + "queued." + ] + }, + { + "name": "ValidatorDisabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Validator has been disabled." + ] + }, + { + "name": "ValidatorReenabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Validator has been re-enabled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 55, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 55, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 56 + } + }, + "docs": [] + } + }, + { + "id": 56, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 57, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 59, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 12, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 59, + "type": { + "path": [ + "pezkuwi_runtime_common", + "impls", + "VersionedLocatableAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": "location", + "type": 60, + "typeName": "xcm::v3::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 70, + "typeName": "xcm::v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": "location", + "type": 71, + "typeName": "xcm::v4::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 84, + "typeName": "xcm::v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": "location", + "type": 85, + "typeName": "xcm::v5::Location", + "docs": [] + }, + { + "name": "asset_id", + "type": 98, + "typeName": "xcm::v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "staging_xcm", + "v3", + "multilocation", + "MultiLocation" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 61, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 61, + "type": { + "path": [ + "xcm", + "v3", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + }, + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 62, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 64, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 64, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 64, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 66, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 68, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 69, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 63, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 65 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 65, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 66, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 67, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Moniker", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Executive", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Technical", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Legislative", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Judicial", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Defense", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Administration", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Treasury", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [ + "xcm", + "v3", + "junction", + "BodyPart" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Voice", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Members", + "fields": [ + { + "name": "count", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Fraction", + "fields": [ + { + "name": "nom", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AtLeastProportion", + "fields": [ + { + "name": "nom", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "MoreThanProportion", + "fields": [ + { + "name": "nom", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "denom", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Concrete", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Abstract", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 71, + "type": { + "path": [ + "staging_xcm", + "v4", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 72, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 72, + "type": { + "path": [ + "staging_xcm", + "v4", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 73, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 78, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 79, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 80, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 82, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 74, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 75, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 75, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 75, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 66, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 68, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 69, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 76 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 76, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "staging_xcm", + "v4", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Pezkuwichain", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Wococo", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 77, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 78, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 82, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 74 + } + }, + "docs": [] + } + }, + { + "id": 84, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 71, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 85, + "type": { + "path": [ + "staging_xcm", + "v5", + "location", + "Location" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "parents", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "interior", + "type": 86, + "typeName": "Junctions", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [ + "staging_xcm", + "v5", + "junctions", + "Junctions" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Here", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "X1", + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Arc<[Junction; 1]>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "X2", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "Arc<[Junction; 2]>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "X3", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "Arc<[Junction; 3]>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "X4", + "fields": [ + { + "name": null, + "type": 93, + "typeName": "Arc<[Junction; 4]>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "X5", + "fields": [ + { + "name": null, + "type": 94, + "typeName": "Arc<[Junction; 5]>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "X6", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "Arc<[Junction; 6]>", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "X7", + "fields": [ + { + "name": null, + "type": 96, + "typeName": "Arc<[Junction; 7]>", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "X8", + "fields": [ + { + "name": null, + "type": 97, + "typeName": "Arc<[Junction; 8]>", + "docs": [] + } + ], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 87, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "Junction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AccountId32", + "fields": [ + { + "name": "network", + "type": 89, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AccountIndex64", + "fields": [ + { + "name": "network", + "type": 89, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AccountKey20", + "fields": [ + { + "name": "network", + "type": 89, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 66, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletInstance", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "GeneralIndex", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "GeneralKey", + "fields": [ + { + "name": "length", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "data", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "OnlyChild", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "Plurality", + "fields": [ + { + "name": "id", + "type": 68, + "typeName": "BodyId", + "docs": [] + }, + { + "name": "part", + "type": 69, + "typeName": "BodyPart", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "GlobalConsensus", + "fields": [ + { + "name": null, + "type": 90, + "typeName": "NetworkId", + "docs": [] + } + ], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 89, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 90 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 90, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 90, + "type": { + "path": [ + "staging_xcm", + "v5", + "junction", + "NetworkId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ByGenesis", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByFork", + "fields": [ + { + "name": "block_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Pezkuwi", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Zagros", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Ethereum", + "fields": [ + { + "name": "chain_id", + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BitcoinCore", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BitcoinCash", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "PezkuwiBulletin", + "fields": [], + "index": 10, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 92, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 93, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 96, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 88 + } + }, + "docs": [] + } + }, + { + "id": 98, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Location", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 99, + "type": { + "path": [ + "xcm", + "VersionedLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "v3::MultiLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "v4::Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "v5::Location", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 101, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account has voted" + ] + }, + { + "name": "VoteRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 101, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A vote has been removed" + ] + }, + { + "name": "VoteUnlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "class", + "type": 103, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The lockup period of a conviction vote expired, and the funds have been unlocked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 102, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 102, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 103, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 103, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 105, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 103, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 105, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 514, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 514, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 514, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 514, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 514, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 514, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 105, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 106 + }, + { + "name": "H", + "type": 512 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 513, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 106, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 107, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 111, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 113, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 115, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 125, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 128, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 131, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 146, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 153, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 165, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 168, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 177, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 178, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 186, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 188, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 190, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 193, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 196, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 197, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 198, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 259, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 260, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 273, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "StakingAhClient", + "fields": [ + { + "name": null, + "type": 274, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Configuration", + "fields": [ + { + "name": null, + "type": 277, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "ParasShared", + "fields": [ + { + "name": null, + "type": 286, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 287, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "fields": [ + { + "name": null, + "type": 288, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 323, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Initializer", + "fields": [ + { + "name": null, + "type": 325, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 326, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 328, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "fields": [ + { + "name": null, + "type": 329, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "OnDemand", + "fields": [ + { + "name": null, + "type": 333, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 334, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 335, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 336, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 338, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 343, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 348, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 354, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 446, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 449, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 451, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "RcMigrator", + "fields": [ + { + "name": null, + "type": 465, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 107, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 108, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 110, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 108, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 109 + } + }, + "docs": [] + } + }, + { + "id": 109, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 111, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 112, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 112, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 112, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 112, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 33, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 112, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 33 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 33, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 113, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 114, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 116, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 116, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 121, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 116, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 117 + }, + { + "name": "Id", + "type": 118 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 118, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 119, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 117, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 117, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 117, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 63, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 110, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 122, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 123, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 125, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Poke the deposit reserved for an index.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "The transaction fees is waived if the deposit is changed after poking/reconsideration.", + "", + "- `index`: the index whose deposit is to be poked/reconsidered.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 126, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 36 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 127, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 36 + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 67, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 67, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 67, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 129, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 67, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 130, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 67, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 67, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 129, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 44, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "[`asset::existential_deposit`], then it is increased to the full amount.", + "", + "The stash may be chilled if the ledger total amount falls to 0 after unbonding.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do whatever", + "it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans` indicates the number of metadata slashing spans to clear when", + "this call results in a complete removal of all the data related to the stash account.", + "In this case, the `num_slashing_spans` must be larger or equal to the number of", + "slashing spans associated with the stash account in the [`SlashingSpans`] storage type,", + "otherwise the call will fail. The call weight is directly proportional to", + "`num_slashing_spans`.", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 47, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 132, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 44, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 133, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 129, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 134, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill.", + "They **must** be sorted in ascending order, *and* unique." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 132, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 135, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 135, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 136, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 136, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 137, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 138, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 137, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 139, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 141, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 142, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + }, + { + "name": "migrate_currency", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Removes the legacy Staking locks if they exist.", + "", + "This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a", + "hold on it if needed. If all stake cannot be held, the best effort is made to hold as", + "much as possible. The remaining stake is forced withdrawn from the ledger.", + "", + "The fee is waived if the migration is successful." + ] + }, + { + "name": "manual_slash", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 33, + "docs": [ + "This function allows governance to manually slash a validator and is a", + "**fallback mechanism**.", + "", + "The dispatch origin must be `T::AdminOrigin`.", + "", + "## Parameters", + "- `validator_stash` - The stash account of the validator to slash.", + "- `era` - The era in which the validator was in the active set.", + "- `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill.", + "", + "## Behavior", + "", + "The slash will be applied using the standard slashing mechanics, respecting the", + "configured `SlashDeferDuration`.", + "", + "This means:", + "- If the validator was already slashed by a higher percentage for the same era, this", + " slash will have no additional effect.", + "- If the validator was previously slashed by a lower percentage, only the difference", + " will be applied.", + "- The slash will be deferred by `SlashDeferDuration` eras before being enacted." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 132, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 126 + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 134, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 135, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 136, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 133 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 133, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 138, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 45 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 139, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 129, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 140, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 143 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 143, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 143, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 144 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 145, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 67, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 63, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 145, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 144 + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 147, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 147, + "type": { + "path": [ + "pezkuwi_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 57, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 118, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_validator", + "type": 148, + "typeName": "::Public", + "docs": [] + }, + { + "name": "para_assignment", + "type": 149, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 150, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 151, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "validator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "assignment_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 152, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 154, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 154, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 154, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 155, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 161, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 57 + }, + { + "name": "V", + "type": 157 + }, + { + "name": "S", + "type": 158 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 57, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 160, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 160, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 159, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 158 + ] + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 57 + }, + { + "name": "V", + "type": 162 + }, + { + "name": "S", + "type": 158 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 57, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 163, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 163, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 163, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 162, + 158 + ] + }, + "docs": [] + } + }, + { + "id": 164, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 63, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 67, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 46, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 165, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 63, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 101, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 103, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 166, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 103, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 103, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 167, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 103, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 166, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 103 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 103, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 168, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 169, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 105, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 175, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 103, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 176, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 169, + "type": { + "path": [ + "pezkuwi_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 171, + "typeName": "pallet_custom_origins::Origin", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "TeyrchainsOrigin", + "fields": [ + { + "name": null, + "type": 172, + "typeName": "teyrchains_origin::Origin", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 174, + "typeName": "pallet_xcm::Origin", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 170, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Authorized", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 171, + "type": { + "path": [ + "pezkuwi_runtime", + "governance", + "origins", + "pallet_custom_origins", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingAdmin", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Treasurer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "FellowshipAdmin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "GeneralAdmin", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AuctionAdmin", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LeaseAdmin", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ReferendumCanceller", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ReferendumKiller", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "SmallTipper", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "BigTipper", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "SmallSpender", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MediumSpender", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "BigSpender", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "WhitelistedCaller", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "WishForChange", + "fields": [], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "origin", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teyrchain", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "Id" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Origin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Xcm", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Response", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 178, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 179, + "typeName": "EcdsaSignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make a claim to collect your DOTs.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to claim is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)", + "", + "and `address` matches the `dest` account.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "mint_claim", + "fields": [ + { + "name": "who", + "type": 181, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vesting_schedule", + "type": 182, + "typeName": "Option<(BalanceOf, BalanceOf, BlockNumberFor)>", + "docs": [] + }, + { + "name": "statement", + "type": 184, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Mint a new claim to collect DOTs.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "Parameters:", + "- `who`: The Ethereum address allowed to collect this claim.", + "- `value`: The number of DOTs that will be claimed.", + "- `vesting_schedule`: An optional vesting schedule for these DOTs.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "We assume worst case that both vesting and statement is being inserted.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "claim_attest", + "fields": [ + { + "name": "dest", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_signature", + "type": 179, + "typeName": "EcdsaSignature", + "docs": [] + }, + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Make a claim to collect your DOTs by signing a statement.", + "", + "The dispatch origin for this call must be _None_.", + "", + "Unsigned Validation:", + "A call to `claim_attest` is deemed valid if the signature provided matches", + "the expected signed message of:", + "", + "> Ethereum Signed Message:", + "> (configured prefix string)(address)(statement)", + "", + "and `address` matches the `dest` account; the `statement` must match that which is", + "expected according to your purchase arrangement.", + "", + "Parameters:", + "- `dest`: The destination account to payout the claim.", + "- `ethereum_signature`: The signature of an ethereum signed message matching the format", + " described above.", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to validate unsigned `claim_attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "attest", + "fields": [ + { + "name": "statement", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Attest to a statement, needed to finalize the claims process.", + "", + "WARNING: Insecure unless your chain includes `PrevalidateAttests` as a", + "`TransactionExtension`.", + "", + "Unsigned Validation:", + "A call to attest is deemed valid if the sender has a `Preclaim` registered", + "and provides a `statement` which is expected for the account.", + "", + "Parameters:", + "- `statement`: The identity of the statement which is being attested to in the", + " signature.", + "", + "", + "The weight of this call is invariant over the input parameters.", + "Weight includes logic to do pre-validation on `attest` call.", + "", + "Total Complexity: O(1)", + "" + ] + }, + { + "name": "move_claim", + "fields": [ + { + "name": "old", + "type": 181, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "new", + "type": 181, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "maybe_preclaim", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 179, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EcdsaSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 180, + "typeName": "[u8; 65]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "EthereumAddress" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 66, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 183 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 183, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 184, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 185 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 185, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "StatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Regular", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Saft", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 187, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 187, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 126, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 187, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 189, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 189, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 169, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 189, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + }, + { + "name": "if_else", + "fields": [ + { + "name": "main", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "fallback", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Dispatch a fallback call in the event the main call fails to execute.", + "May be called from any origin except `None`.", + "", + "This function first attempts to dispatch the `main` call.", + "If the `main` call fails, the `fallback` is attemted.", + "if the fallback is successfully dispatched, the weights of both calls", + "are accumulated and an event containing the main call error is deposited.", + "", + "In the event of a fallback failure the whole call fails", + "with the weights returned.", + "", + "- `main`: The main call to be dispatched. This is the primary action to execute.", + "- `fallback`: The fallback call to be dispatched in case the `main` call fails.", + "", + "## Dispatch Logic", + "- If the origin is `root`, both the main and fallback calls are executed without", + " applying any origin filters.", + "- If the origin is not `root`, the origin filter is applied to both the `main` and", + " `fallback` calls.", + "", + "## Use Case", + "- Some use cases might involve submitting a `batch` type call in either main, fallback", + " or both." + ] + }, + { + "name": "dispatch_as_fallible", + "fields": [ + { + "name": "as_origin", + "type": 169, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 189, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 106 + } + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 191, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `create_pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 103, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 63, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`create_pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `create_pure` to create this account.", + "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `create_pure`.", + "- `height`: The height of the chain when the call to `create_pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `create_pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `create_pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 191, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 10, + "docs": [ + "Poke / Adjust deposits made for proxies and announcements based on current values.", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 191, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 192 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 192, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [ + "pezkuwi_runtime_constants", + "proxy", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "CancelProxy", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Auction", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "ParaRegistration", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 194, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "threshold", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Poke the deposit reserved for an existing multisig operation.", + "", + "The dispatch origin for this call must be _Signed_ and must be the original depositor of", + "the multisig operation.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "- `threshold`: The total number of approvals needed for this multisig.", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + " multisig.", + "- `call_hash`: The hash of the call this deposit is reserved for.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 194, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 195 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 195, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "approve_bounty_with_curator", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Approve bountry and propose a curator simultaneously.", + "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "- `bounty_id`: Bounty ID to approve.", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Poke the deposit reserved for creating a bounty proposal.", + "", + "This can be used by accounts to update their reserved amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `bounty_id`: The bounty id for which to adjust the deposit.", + "", + "If the deposit is updated, the difference will be reserved/unreserved from the", + "proposer's account.", + "", + "The transaction is made free if the deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if the deposit is updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 197, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 63, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 198, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 199, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 252, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 253, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 254, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 199, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 199, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 200 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 200, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 251, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 200, + "type": { + "path": [ + "pezkuwi_runtime", + "NposCompactSolution16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 201, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 204, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 209, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 212, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 215, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 218, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 221, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 224, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 227, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 230, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 233, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 236, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 239, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 242, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 245, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 248, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 201, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 202 + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 103 + } + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 205 + } + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 206, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 203, + 207 + ] + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 208 + } + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 103, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 210 + } + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 211, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 213 + } + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 214, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 216 + } + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 217, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 219 + } + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 220, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 222 + } + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 223, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 225 + } + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 226, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 228 + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 229, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 229, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 231 + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 232, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 234 + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 235, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 237 + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 238, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 240 + } + }, + "docs": [] + } + }, + { + "id": 240, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 241, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 242, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 243 + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 244, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 246 + } + }, + "docs": [] + } + }, + { + "id": 246, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 247, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 248, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 249 + } + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 63, + 250, + 203 + ] + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 251, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 63, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 253, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 251 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 251, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 255 + } + }, + "docs": [] + } + }, + { + "id": 255, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 256 + ] + }, + "docs": [] + } + }, + { + "id": 256, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 257, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 258 + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 260, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is delegated (or transferred based on", + "[`adapter::StakeStrategyType`]) from the member to the pool account and immediately", + "increases the pool's bond.", + "", + "The method of transferring the amount to the pool account is determined by", + "[`adapter::StakeStrategyType`]. If the pool is configured to use", + "[`adapter::StakeStrategyType::Delegate`], the funds remain in the account of", + "the `origin`, while the pool gains the right to use these funds for staking.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 261, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 129, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to", + "have at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 262, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 263, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 263, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 264, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 264, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 264, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 265, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 266, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 266, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 266, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller is the pool's nominator or root." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 261, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 267, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 268, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 270, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The `root` role of the pool is _always_ allowed to claim the pool's commission.", + "", + "If the pool has set `CommissionClaimPermission::Permissionless`, then any account can", + "trigger the process of claiming the pool's commission.", + "", + "If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only", + "accounts", + "* `acc`, and", + "* the pool's root account", + "", + "may call this extrinsic on behalf of the pool.", + "", + "Pending commissions are paid out and added to the total claimed commission.", + "The total pending commission is reset to zero." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 271, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "The pending slash amount of the member must be equal or more than `ExistentialDeposit`.", + "This call can be dispatched permissionlessly (i.e. by any account). If the execution", + "is successful, fee is refunded and caller may be rewarded with a part of the slash", + "based on the [`crate::pallet::Config::StakeAdapter`] configuration." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 126, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 261, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 45 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 45, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 267, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 268, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 269 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 269, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 269, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 45, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 270, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 272 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 272, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 272, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 273, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed", + "by a call to `rebond` in the staking system.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`].", + "", + "## Details", + "", + "Can set the number of eras to check per block, and potentially other admin work.", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 274, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "validator_set", + "fields": [ + { + "name": "report", + "type": 275, + "typeName": "rc_client::ValidatorSetReport", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "set_mode", + "fields": [ + { + "name": "mode", + "type": 276, + "typeName": "OperatingMode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allows governance to force set the operating mode of the pallet." + ] + }, + { + "name": "force_on_migration_end", + "fields": [], + "index": 2, + "docs": [ + "manually do what this pallet was meant to do at the end of the migration." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 275, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "ValidatorSetReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "new_validator_set", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "prune_up_to", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 276, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "OperatingMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Passive", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Buffered", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_validation_upgrade_cooldown", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the validation upgrade cooldown." + ] + }, + { + "name": "set_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the validation upgrade delay." + ] + }, + { + "name": "set_code_retention_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the acceptance period for an included candidate." + ] + }, + { + "name": "set_max_code_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the max validation code size for incoming upgrades." + ] + }, + { + "name": "set_max_pov_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the max POV block size for incoming upgrades." + ] + }, + { + "name": "set_max_head_data_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the max head data size for paras." + ] + }, + { + "name": "set_coretime_cores", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the number of coretime execution cores.", + "", + "NOTE: that this configuration is managed by the coretime chain. Only manually change", + "this, if you really know what you are doing!" + ] + }, + { + "name": "set_group_rotation_frequency", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the teyrchain validator-group rotation frequency" + ] + }, + { + "name": "set_paras_availability_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the availability period for paras." + ] + }, + { + "name": "set_scheduling_lookahead", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Set the scheduling lookahead, in expected number of blocks at peak throughput." + ] + }, + { + "name": "set_max_validators_per_core", + "fields": [ + { + "name": "new", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Set the maximum number of validators to assign to any core." + ] + }, + { + "name": "set_max_validators", + "fields": [ + { + "name": "new", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Set the maximum number of validators to use in teyrchain consensus." + ] + }, + { + "name": "set_dispute_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the dispute period, in number of sessions to keep for disputes." + ] + }, + { + "name": "set_dispute_post_conclusion_acceptance_period", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Set the dispute post conclusion acceptance period." + ] + }, + { + "name": "set_no_show_slots", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the no show slots, in number of number of consensus slots.", + "Must be at least 1." + ] + }, + { + "name": "set_n_delay_tranches", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the total number of delay tranches." + ] + }, + { + "name": "set_zeroth_delay_tranche_width", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the zeroth delay tranche width." + ] + }, + { + "name": "set_needed_approvals", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Set the number of validators needed to approve a block." + ] + }, + { + "name": "set_relay_vrf_modulo_samples", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set the number of samples to do of the `RelayVRFModulo` approval assignment criterion." + ] + }, + { + "name": "set_max_upward_queue_count", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Sets the maximum items that can present in a upward dispatch queue at once." + ] + }, + { + "name": "set_max_upward_queue_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Sets the maximum total size of items that can present in a upward dispatch queue at", + "once." + ] + }, + { + "name": "set_max_downward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Set the critical downward message size." + ] + }, + { + "name": "set_max_upward_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Sets the maximum size of an upward message that can be sent by a candidate." + ] + }, + { + "name": "set_max_upward_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the maximum number of messages that a candidate can contain." + ] + }, + { + "name": "set_hrmp_open_request_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Sets the number of sessions after which an HRMP open channel request expires." + ] + }, + { + "name": "set_hrmp_sender_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Sets the amount of funds that the sender should provide for opening an HRMP channel." + ] + }, + { + "name": "set_hrmp_recipient_deposit", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Sets the amount of funds that the recipient should provide for accepting opening an HRMP", + "channel." + ] + }, + { + "name": "set_hrmp_channel_max_capacity", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Sets the maximum number of messages allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_channel_max_total_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Sets the maximum total size of messages in bytes allowed in an HRMP channel at once." + ] + }, + { + "name": "set_hrmp_max_teyrchain_inbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Sets the maximum number of inbound HRMP channels a teyrchain is allowed to accept." + ] + }, + { + "name": "set_hrmp_channel_max_message_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Sets the maximum size of a message that could ever be put into an HRMP channel." + ] + }, + { + "name": "set_hrmp_max_teyrchain_outbound_channels", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Sets the maximum number of outbound HRMP channels a teyrchain is allowed to open." + ] + }, + { + "name": "set_hrmp_max_message_num_per_candidate", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 39, + "docs": [ + "Sets the maximum number of outbound HRMP messages can be sent by a candidate." + ] + }, + { + "name": "set_pvf_voting_ttl", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 42, + "docs": [ + "Set the number of session changes after which a PVF pre-checking voting is rejected." + ] + }, + { + "name": "set_minimum_validation_upgrade_delay", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 43, + "docs": [ + "Sets the minimum delay between announcing the upgrade block for a teyrchain until the", + "upgrade taking place.", + "", + "See the field documentation for information and constraints for the new value." + ] + }, + { + "name": "set_bypass_consistency_check", + "fields": [ + { + "name": "new", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 44, + "docs": [ + "Setting this to true will disable consistency checks for the configuration setters.", + "Use with caution." + ] + }, + { + "name": "set_async_backing_params", + "fields": [ + { + "name": "new", + "type": 278, + "typeName": "AsyncBackingParams", + "docs": [] + } + ], + "index": 45, + "docs": [ + "Set the asynchronous backing parameters." + ] + }, + { + "name": "set_executor_params", + "fields": [ + { + "name": "new", + "type": 279, + "typeName": "ExecutorParams", + "docs": [] + } + ], + "index": 46, + "docs": [ + "Set PVF executor parameters." + ] + }, + { + "name": "set_on_demand_base_fee", + "fields": [ + { + "name": "new", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 47, + "docs": [ + "Set the on demand (parathreads) base fee." + ] + }, + { + "name": "set_on_demand_fee_variability", + "fields": [ + { + "name": "new", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 48, + "docs": [ + "Set the on demand (parathreads) fee variability." + ] + }, + { + "name": "set_on_demand_queue_max_size", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 49, + "docs": [ + "Set the on demand (parathreads) queue max size." + ] + }, + { + "name": "set_on_demand_target_queue_utilization", + "fields": [ + { + "name": "new", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 50, + "docs": [ + "Set the on demand (parathreads) fee variability." + ] + }, + { + "name": "set_minimum_backing_votes", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 52, + "docs": [ + "Set the minimum backing votes threshold." + ] + }, + { + "name": "set_node_feature", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "value", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 53, + "docs": [ + "Set/Unset a node feature." + ] + }, + { + "name": "set_approval_voting_params", + "fields": [ + { + "name": "new", + "type": 284, + "typeName": "ApprovalVotingParams", + "docs": [] + } + ], + "index": 54, + "docs": [ + "Set approval-voting-params." + ] + }, + { + "name": "set_scheduler_params", + "fields": [ + { + "name": "new", + "type": 285, + "typeName": "SchedulerParams>", + "docs": [] + } + ], + "index": 55, + "docs": [ + "Set scheduler-params." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 278, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "AsyncBackingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_candidate_depth", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "allowed_ancestry_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "executor_params", + "ExecutorParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 280, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 281 + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "executor_params", + "ExecutorParam" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MaxMemoryPages", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "StackLogicalMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "StackNativeMax", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PrecheckingMaxMemory", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PvfPrepTimeout", + "fields": [ + { + "name": null, + "type": 282, + "typeName": "PvfPrepKind", + "docs": [] + }, + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "PvfExecTimeout", + "fields": [ + { + "name": null, + "type": 283, + "typeName": "PvfExecKind", + "docs": [] + }, + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "WasmExtBulkMemory", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PvfPrepKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Precheck", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Prepare", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PvfExecKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Backing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approval", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ApprovalVotingParams" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_approval_coalesce_count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "SchedulerParams" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "group_rotation_frequency", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "paras_availability_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "max_validators_per_core", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "lookahead", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_availability_timeouts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_queue_max_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "on_demand_target_queue_utilization", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_fee_variability", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "on_demand_base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "ttl", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 287, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 288, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [ + { + "name": "data", + "type": 289, + "typeName": "TeyrchainsInherentData>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Enter the paras inherent. This will process bitfields and backed candidates." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 289, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "InherentData" + ], + "params": [ + { + "name": "HDR", + "type": 117 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bitfields", + "type": 290, + "typeName": "UncheckedSignedAvailabilityBitfields", + "docs": [] + }, + { + "name": "backed_candidates", + "type": 297, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "disputes", + "type": 314, + "typeName": "MultiDisputeStatementSet", + "docs": [] + }, + { + "name": "parent_header", + "type": 117, + "typeName": "HDR", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 291 + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "signed", + "UncheckedSigned" + ], + "params": [ + { + "name": "Payload", + "type": 292 + }, + { + "name": "RealPayload", + "type": 292 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 292, + "typeName": "Payload", + "docs": [] + }, + { + "name": "validator_index", + "type": 295, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "signature", + "type": 296, + "typeName": "ValidatorSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "AvailabilityBitfield" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 293, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "bitSequence": { + "bitStoreType": 2, + "bitOrderType": 294 + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [ + "bitvec", + "order", + "Lsb0" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ValidatorIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "validator_app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 159, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 298 + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "BackedCandidate" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "candidate", + "type": 299, + "typeName": "CommittedCandidateReceiptV2", + "docs": [] + }, + { + "name": "validity_votes", + "type": 312, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_indices", + "type": 293, + "typeName": "BitVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CommittedCandidateReceiptV2" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 300, + "typeName": "CandidateDescriptorV2", + "docs": [] + }, + { + "name": "commitments", + "type": 304, + "typeName": "CandidateCommitments", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CandidateDescriptorV2" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "relay_parent", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "version", + "type": 301, + "typeName": "InternalVersion", + "docs": [] + }, + { + "name": "core_index", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "reserved1", + "type": 302, + "typeName": "[u8; 25]", + "docs": [] + }, + { + "name": "persisted_validation_data_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "pov_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "erasure_root", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "reserved2", + "type": 159, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "para_head", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "InternalVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 25, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCodeHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "CandidateCommitments" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upward_messages", + "type": 305, + "typeName": "UpwardMessages", + "docs": [] + }, + { + "name": "horizontal_messages", + "type": 306, + "typeName": "HorizontalMessages", + "docs": [] + }, + { + "name": "new_validation_code", + "type": 309, + "typeName": "Option", + "docs": [] + }, + { + "name": "head_data", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "processed_downward_messages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_watermark", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 110, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 307 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 308, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [ + "pezkuwi_core_primitives", + "OutboundHrmpMessage" + ], + "params": [ + { + "name": "Id", + "type": 173 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "recipient", + "type": 173, + "typeName": "Id", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 307 + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 310 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 310, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "ValidationCode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HeadData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 313 + } + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ValidityAttestation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Implicit", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Explicit", + "fields": [ + { + "name": null, + "type": 296, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 315 + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "DisputeStatementSet" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "candidate_hash", + "type": 316, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "statements", + "type": 317, + "typeName": "Vec<(DisputeStatement, ValidatorIndex, ValidatorSignature)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [ + "pezkuwi_core_primitives", + "CandidateHash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 317, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 318 + } + }, + "docs": [] + } + }, + { + "id": 318, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 319, + 295, + 296 + ] + }, + "docs": [] + } + }, + { + "id": 319, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "DisputeStatement" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [ + { + "name": null, + "type": 320, + "typeName": "ValidDisputeStatementKind", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 322, + "typeName": "InvalidDisputeStatementKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 320, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ValidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BackingSeconded", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BackingValid", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ApprovalChecking", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ApprovalCheckingMultipleCandidates", + "fields": [ + { + "name": null, + "type": 321, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 321, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 316 + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "InvalidDisputeStatementKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Explicit", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 323, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_current_code", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the storage for the teyrchain validation code immediately." + ] + }, + { + "name": "force_set_current_head", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the storage for the current teyrchain head data immediately." + ] + }, + { + "name": "force_schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule an upgrade as if it was scheduled in the given relay parent block." + ] + }, + { + "name": "force_note_new_head", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Note a new block head for para within the context of the current block." + ] + }, + { + "name": "force_queue_action", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Put a teyrchain directly into the next session's action queue.", + "We can't queue it any sooner than this without going into the", + "initializer..." + ] + }, + { + "name": "add_trusted_validation_code", + "fields": [ + { + "name": "validation_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Adds the validation code to the storage.", + "", + "The code will not be added if it is already present. Additionally, if PVF pre-checking", + "is running for that code, it will be instantly accepted.", + "", + "Otherwise, the code will be added into the storage. Note that the code will be added", + "into storage with reference count 0. This is to account the fact that there are no users", + "for this code yet. The caller will have to make sure that this code eventually gets", + "used by some teyrchain or removed from the storage to avoid storage leaks. For the", + "latter prefer to use the `poke_unused_validation_code` dispatchable to raw storage", + "manipulation.", + "", + "This function is mainly meant to be used for upgrading teyrchains that do not follow", + "the go-ahead signal while the PVF pre-checking feature is enabled." + ] + }, + { + "name": "poke_unused_validation_code", + "fields": [ + { + "name": "validation_code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Remove the validation code from the storage iff the reference count is 0.", + "", + "This is better than removing the storage directly, because it will not remove the code", + "that was suddenly got used by some teyrchain while this dispatchable was pending", + "dispatching." + ] + }, + { + "name": "include_pvf_check_statement", + "fields": [ + { + "name": "stmt", + "type": 324, + "typeName": "PvfCheckStatement", + "docs": [] + }, + { + "name": "signature", + "type": 296, + "typeName": "ValidatorSignature", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Includes a statement for a PVF pre-checking vote. Potentially, finalizes the vote and", + "enacts the results if that was the last vote before achieving the supermajority." + ] + }, + { + "name": "force_set_most_recent_context", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "context", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the storage for the current teyrchain head data immediately." + ] + }, + { + "name": "remove_upgrade_cooldown", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Remove an upgrade cooldown for a teyrchain.", + "", + "The cost for removing the cooldown earlier depends on the time left for the cooldown", + "multiplied by [`Config::CooldownRemovalMultiplier`]. The paid tokens are burned." + ] + }, + { + "name": "authorize_force_set_current_code_hash", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "valid_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Sets the storage for the authorized current code hash of the teyrchain.", + "If not applied, it will be removed at the `System::block_number() + valid_period` block.", + "", + "This can be useful, when triggering `Paras::force_set_current_code(para, code)`", + "from a different chain than the one where the `Paras` pallet is deployed.", + "", + "The main purpose is to avoid transferring the entire `code` Wasm blob between chains.", + "Instead, we authorize `code_hash` with `root`, which can later be applied by", + "`Paras::apply_authorized_force_set_current_code(para, code)` by anyone.", + "", + "Authorizations are stored in an **overwriting manner**." + ] + }, + { + "name": "apply_authorized_force_set_current_code", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Applies the already authorized current code for the teyrchain,", + "triggering the same functionality as `force_set_current_code`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 324, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PvfCheckStatement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "accept", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "subject", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_index", + "type": 295, + "typeName": "ValidatorIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 325, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_approve", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a signal to the consensus engine to forcibly act as though all teyrchain", + "blocks in all relay chain blocks up to and including the given number in the current", + "chain are valid and should be finalized." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 326, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "hrmp_init_open_channel", + "fields": [ + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initiate opening a channel from a teyrchain to a given recipient with given channel", + "parameters.", + "", + "- `proposed_max_capacity` - specifies how many messages can be in the channel at once.", + "- `proposed_max_message_size` - specifies the maximum size of the messages.", + "", + "These numbers are a subject to the relay-chain configuration limits.", + "", + "The channel can be opened only after the recipient confirms it and only on a session", + "change." + ] + }, + { + "name": "hrmp_accept_open_channel", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Accept a pending open channel request from the given sender.", + "", + "The channel will be opened only on the next session boundary." + ] + }, + { + "name": "hrmp_close_channel", + "fields": [ + { + "name": "channel_id", + "type": 327, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Initiate unilateral closing of a channel. The origin must be either the sender or the", + "recipient in the channel being closed.", + "", + "The closure can only happen on a session change." + ] + }, + { + "name": "force_clean_hrmp", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "num_inbound", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_outbound", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "This extrinsic triggers the cleanup of all the HRMP storage items that a para may have.", + "Normally this happens once per session, but this allows you to trigger the cleanup", + "immediately for a specific teyrchain.", + "", + "Number of inbound and outbound channels for `para` must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "force_process_hrmp_open", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force process HRMP open channel requests.", + "", + "If there are pending HRMP open channel requests, you can use this function to process", + "all of those requests immediately.", + "", + "Total number of opening channels must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "force_process_hrmp_close", + "fields": [ + { + "name": "channels", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force process HRMP close channel requests.", + "", + "If there are pending HRMP close channel requests, you can use this function to process", + "all of those requests immediately.", + "", + "Total number of closing channels must be provided as witness data.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "hrmp_cancel_open_request", + "fields": [ + { + "name": "channel_id", + "type": 327, + "typeName": "HrmpChannelId", + "docs": [] + }, + { + "name": "open_requests", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "This cancels a pending open channel request. It can be canceled by either of the sender", + "or the recipient for that request. The origin must be either of those.", + "", + "The cancellation happens immediately. It is not possible to cancel the request if it is", + "already accepted.", + "", + "Total number of open requests (i.e. `HrmpOpenChannelRequestsList`) must be provided as", + "witness data." + ] + }, + { + "name": "force_open_hrmp_channel", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Open a channel from a `sender` to a `recipient` `ParaId`. Although opened by governance,", + "the `max_capacity` and `max_message_size` are still subject to the Relay Chain's", + "configured limits.", + "", + "Expected use is when one (and only one) of the `ParaId`s involved in the channel is", + "governed by the system, e.g. a system teyrchain.", + "", + "Origin must be the `ChannelManager`." + ] + }, + { + "name": "establish_system_channel", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Establish an HRMP channel between two system chains. If the channel does not already", + "exist, the transaction fees will be refunded to the caller. The system does not take", + "deposits for channels between system chains, and automatically sets the message number", + "and size limits to the maximum allowed by the network's configuration.", + "", + "Arguments:", + "", + "- `sender`: A system chain, `ParaId`.", + "- `recipient`: A system chain, `ParaId`.", + "", + "Any signed origin can call this function, but _both_ inputs MUST be system chains. If", + "the channel does not exist yet, there is no fee." + ] + }, + { + "name": "poke_channel_deposits", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Update the deposits held for an HRMP channel to the latest `Configuration`. Channels", + "with system chains do not require a deposit.", + "", + "Arguments:", + "", + "- `sender`: A chain, `ParaId`.", + "- `recipient`: A chain, `ParaId`.", + "", + "Any signed origin can call this function." + ] + }, + { + "name": "establish_channel_with_system", + "fields": [ + { + "name": "target_system_chain", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Establish a bidirectional HRMP channel between a teyrchain and a system chain.", + "", + "Arguments:", + "", + "- `target_system_chain`: A system chain, `ParaId`.", + "", + "The origin needs to be the teyrchain origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 327, + "type": { + "path": [ + "pezkuwi_teyrchain_primitives", + "primitives", + "HrmpChannelId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "Id", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "Id", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 328, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_unfreeze", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 329, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_dispute_lost_unsigned", + "fields": [ + { + "name": "dispute_proof", + "type": 330, + "typeName": "Box", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 330, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "DisputeProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "time_slot", + "type": 331, + "typeName": "DisputesTimeSlot", + "docs": [] + }, + { + "name": "kind", + "type": 332, + "typeName": "DisputeOffenceKind", + "docs": [] + }, + { + "name": "validator_index", + "type": 295, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "validator_id", + "type": 148, + "typeName": "ValidatorId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 331, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "DisputesTimeSlot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "candidate_hash", + "type": 316, + "typeName": "CandidateHash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 332, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "DisputeOffenceKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ForInvalidBacked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AgainstValid", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForInvalidApproved", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 333, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_order_allow_death", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a single on demand core order.", + "Will use the spot price for the current block and will reap the account if needed.", + "", + "Parameters:", + "- `origin`: The sender of the call, funds will be withdrawn from this account.", + "- `max_amount`: The maximum balance to withdraw from the origin to place an order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientBalance`: from the Currency implementation", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + }, + { + "name": "place_order_keep_alive", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Same as the [`place_order_allow_death`](Self::place_order_allow_death) call , but with a", + "check that placing the order will not reap the account.", + "", + "Parameters:", + "- `origin`: The sender of the call, funds will be withdrawn from this account.", + "- `max_amount`: The maximum balance to withdraw from the origin to place an order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientBalance`: from the Currency implementation", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + }, + { + "name": "place_order_with_credits", + "fields": [ + { + "name": "max_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a single on demand core order with credits.", + "Will charge the owner's on-demand credit account the spot price for the current block.", + "", + "Parameters:", + "- `origin`: The sender of the call, on-demand credits will be withdrawn from this", + " account.", + "- `max_amount`: The maximum number of credits to spend from the origin to place an", + " order.", + "- `para_id`: A `ParaId` the origin wants to provide blockspace for.", + "", + "Errors:", + "- `InsufficientCredits`", + "- `QueueFull`", + "- `SpotPriceHigherThanMaxAmount`", + "", + "Events:", + "- `OnDemandOrderPlaced`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 334, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register head data and validation code for a reserved Para Id.", + "", + "## Arguments", + "- `origin`: Must be called by a `Signed` origin.", + "- `id`: The para ID. Must be owned/managed by the `origin` signing account.", + "- `genesis_head`: The genesis head data of the teyrchain/thread.", + "- `validation_code`: The initial validation code of the teyrchain/thread.", + "", + "## Deposits/Fees", + "The account with the originating signature must reserve a deposit.", + "", + "The deposit is required to cover the costs associated with storing the genesis head", + "data and the validation code.", + "This accounts for the potential to store validation code of a size up to the", + "`max_code_size`, as defined in the configuration pallet", + "", + "Anything already reserved previously for this para ID is accounted for.", + "", + "## Events", + "The `Registered` event is emitted in case of success." + ] + }, + { + "name": "force_register", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "genesis_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Force the registration of a Para Id on the relay chain.", + "", + "This function must be called by a Root origin.", + "", + "The deposit taken can be specified for this registration. Any `ParaId`", + "can be registered, including sub-1000 IDs which are System Teyrchains." + ] + }, + { + "name": "deregister", + "fields": [ + { + "name": "id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Deregister a Para Id, freeing all data and returning any deposit.", + "", + "The caller must be Root, the `para` owner, or the `para` itself. The para must be an", + "on-demand teyrchain." + ] + }, + { + "name": "swap", + "fields": [ + { + "name": "id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap a lease holding teyrchain with another teyrchain, either on-demand or lease", + "holding.", + "", + "The origin must be Root, the `para` owner, or the `para` itself.", + "", + "The swap will happen only if there is already an opposite swap pending. If there is not,", + "the swap will be stored in the pending swaps map, ready for a later confirmatory swap.", + "", + "The `ParaId`s remain mapped to the same head data and code so external code can rely on", + "`ParaId` to be a long-term identifier of a notional \"teyrchain\". However, their", + "scheduling info (i.e. whether they're an on-demand teyrchain or lease holding", + "teyrchain), auction information and the auction deposit are switched." + ] + }, + { + "name": "remove_lock", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a manager lock from a para. This will allow the manager of a", + "previously locked para to deregister or swap a para without using governance.", + "", + "Can only be called by the Root origin or the teyrchain." + ] + }, + { + "name": "reserve", + "fields": [], + "index": 5, + "docs": [ + "Reserve a Para Id on the relay chain.", + "", + "This function will reserve a new Para Id to be owned/managed by the origin account.", + "The origin account is able to register head data and validation code using `register` to", + "create an on-demand teyrchain. Using the Slots pallet, an on-demand teyrchain can then", + "be upgraded to a lease holding teyrchain.", + "", + "## Arguments", + "- `origin`: Must be called by a `Signed` origin. Becomes the manager/owner of the new", + " para ID.", + "", + "## Deposits/Fees", + "The origin must reserve a deposit of `ParaDeposit` for the registration.", + "", + "## Events", + "The `Reserved` event is emitted in case of success, which provides the ID reserved for", + "use." + ] + }, + { + "name": "add_lock", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Add a manager lock from a para. This will prevent the manager of a", + "para to deregister or swap a para.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + }, + { + "name": "schedule_code_upgrade", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Schedule a teyrchain upgrade.", + "", + "This will kick off a check of `new_code` by all validators. After the majority of the", + "validators have reported on the validity of the code, the code will either be enacted", + "or the upgrade will be rejected. If the code will be enacted, the current code of the", + "teyrchain will be overwritten directly. This means that any PoV will be checked by this", + "new code. The teyrchain itself will not be informed explicitly that the validation code", + "has changed.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + }, + { + "name": "set_current_head", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "new_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the teyrchain's current head.", + "", + "Can be called by Root, the teyrchain, or the teyrchain manager if the teyrchain is", + "unlocked." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 335, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_lease", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Just a connect into the `lease_out` call, in case Root wants to force some lease to", + "happen independently of any other on-chain mechanism to use it.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`." + ] + }, + { + "name": "clear_all_leases", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear all leases for a Para Id, refunding any deposits back to the original owners.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`." + ] + }, + { + "name": "trigger_onboard", + "fields": [ + { + "name": "para", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Try to onboard a teyrchain that has a lease for the current lease period.", + "", + "This function can be useful if there was some state issue with a para that should", + "have onboarded, but was unable to. As long as they have a lease period, we can", + "let them onboard from here.", + "", + "Origin must be signed, but can be called by anyone." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 336, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "new_auction", + "fields": [ + { + "name": "duration", + "type": 63, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "lease_period_index", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new auction.", + "", + "This can only happen when there isn't already an auction in progress and may only be", + "called by the root origin. Accepts the `duration` of this auction and the", + "`lease_period_index` of the initial lease period of the four that are to be auctioned." + ] + }, + { + "name": "bid", + "fields": [ + { + "name": "para", + "type": 337, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "auction_index", + "type": 63, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "first_slot", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "amount", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Make a new bid from an account (including a teyrchain account) for deploying a new", + "teyrchain.", + "", + "Multiple simultaneous bids from the same bidder are allowed only as long as all active", + "bids overlap each other (i.e. are mutually exclusive). Bids cannot be redacted.", + "", + "- `sub` is the sub-bidder ID, allowing for multiple competing bids to be made by (and", + "funded by) the same account.", + "- `auction_index` is the index of the auction to bid on. Should just be the present", + "value of `AuctionCounter`.", + "- `first_slot` is the first lease period index of the range to bid on. This is the", + "absolute lease period index value, not an auction-specific offset.", + "- `last_slot` is the last lease period index of the range to bid on. This is the", + "absolute lease period index value, not an auction-specific offset.", + "- `amount` is the amount to bid to be held as deposit for the teyrchain should the", + "bid win. This amount is held throughout the range." + ] + }, + { + "name": "cancel_auction", + "fields": [], + "index": 2, + "docs": [ + "Cancel an in-progress auction.", + "", + "Can only be called by Root origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 337, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 173 + } + }, + "docs": [] + } + }, + { + "id": 338, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 63, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 339, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign for a teyrchain slot with the given lease period", + "range.", + "", + "This applies a lock to your teyrchain configuration, ensuring that it cannot be changed", + "by the teyrchain manager." + ] + }, + { + "name": "contribute", + "fields": [ + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "value", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "signature", + "type": 341, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contribute to a crowd sale. This will transfer some balance over to fund a teyrchain", + "slot. It will be withdrawable when the crowdloan has ended and the funds are unused." + ] + }, + { + "name": "withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdraw full balance of a specific contributor.", + "", + "Origin must be signed, but can come from anyone.", + "", + "The fund must be either in, or ready for, retirement. For a fund to be *in* retirement,", + "then the retirement flag must be set. For a fund to be ready for retirement, then:", + "- it must not already be in retirement;", + "- the amount of raised funds must be bigger than the _free_ balance of the account;", + "- and either:", + " - the block number must be at least `end`; or", + " - the current lease period must be greater than the fund's `last_period`.", + "", + "In this case, the fund's retirement flag is set and its `end` is reset to the current", + "block number.", + "", + "- `who`: The account whose contribution should be withdrawn.", + "- `index`: The teyrchain to whose crowdloan the contribution was made." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Automatically refund contributors of an ended crowdloan.", + "Due to weight restrictions, this function may need to be called multiple", + "times to fully refund all users. We will refund `RemoveKeysLimit` users at a time.", + "", + "Origin must be signed, but can come from anyone." + ] + }, + { + "name": "dissolve", + "fields": [ + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a fund after the retirement period has ended and all funds have been returned." + ] + }, + { + "name": "edit", + "fields": [ + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "cap", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_period", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_period", + "type": 63, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "end", + "type": 63, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "verifier", + "type": 339, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Edit the configuration for an in-progress crowdloan.", + "", + "Can only be called by Root origin." + ] + }, + { + "name": "add_memo", + "fields": [ + { + "name": "index", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Add an optional memo to an existing crowdloan contribution.", + "", + "Origin must be Signed, and the user must have contributed to the crowdloan." + ] + }, + { + "name": "poke", + "fields": [ + { + "name": "index", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Poke the fund into `NewRaise`", + "", + "Origin must be Signed, and the fund has non-zero raise." + ] + }, + { + "name": "contribute_all", + "fields": [ + { + "name": "index", + "type": 337, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "signature", + "type": 341, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Contribute your entire balance to a crowd sale. This will transfer the entire balance of", + "a user over to fund a teyrchain slot. It will be withdrawable when the crowdloan has", + "ended and the funds are unused." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 339, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 340 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 340, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "sp_runtime", + "MultiSigner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "ecdsa::Public", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 342 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 342, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 159, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 159, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 180, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "request_core_count", + "fields": [ + { + "name": "count", + "type": 103, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Request the configuration to be updated with the specified number of cores. Warning:", + "Since this only schedules a configuration update, it takes two sessions to come into", + "effect.", + "", + "- `origin`: Root or the Coretime Chain", + "- `count`: total number of cores" + ] + }, + { + "name": "request_revenue_at", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request to claim the instantaneous coretime sales revenue starting from the block it was", + "last claimed until and up to the block specified. The claimed amount value is sent back", + "to the Coretime chain in a `notify_revenue` message. At the same time, the amount is", + "teleported to the Coretime chain." + ] + }, + { + "name": "credit_account", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "assign_core", + "fields": [ + { + "name": "core", + "type": 103, + "typeName": "BrokerCoreIndex", + "docs": [] + }, + { + "name": "begin", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "assignment", + "type": 344, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 46, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Receive instructions from the `ExternalBrokerOrigin`, detailing how a specific core is", + "to be used.", + "", + "Parameters:", + "-`origin`: The `ExternalBrokerOrigin`, assumed to be the coretime chain.", + "-`core`: The core that should be scheduled.", + "-`begin`: The starting blockheight of the instruction.", + "-`assignment`: How the blockspace should be utilised.", + "-`end_hint`: An optional hint as to when this particular set of instructions will end." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 344, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 345 + } + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 346, + 347 + ] + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "pallet_broker", + "coretime_interface", + "CoreAssignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Idle", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Pool", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Task", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "PartsOf57600" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 103, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 349, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 350, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 351, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 110, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 110, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 350, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 352, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 352, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a teyrchain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 349, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 350 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 350, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 351, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 352, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 352, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 352, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 353, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 354, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "send", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 355, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "teleport_assets", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "**This function is deprecated: Use `limited_teleport_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "**This function is deprecated: Use `limited_reserve_transfer_assets` instead.**", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`. The weight limit for fees is not provided and thus is unlimited,", + "with all fees taken as needed from the asset.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees." + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "message", + "type": 432, + "typeName": "Box::RuntimeCall>>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Execute an XCM message from a local, signed, origin.", + "", + "An event is deposited indicating whether `msg` could be executed completely or only", + "partially.", + "", + "No more than `max_weight` will be used in its attempted execution. If this is less than", + "the maximum amount of weight that the message could take to be executed, then no", + "execution attempt will be made." + ] + }, + { + "name": "force_xcm_version", + "fields": [ + { + "name": "location", + "type": 85, + "typeName": "Box", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Extoll that a particular destination can be communicated with through a particular", + "version of XCM.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The destination that is being described.", + "- `xcm_version`: The latest version of XCM that `location` supports." + ] + }, + { + "name": "force_default_xcm_version", + "fields": [ + { + "name": "maybe_xcm_version", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a safe XCM version (the version that XCM should be encoded with if the most recent", + "version a destination can accept is unknown).", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `maybe_xcm_version`: The default XCM encoding version, or `None` to disable." + ] + }, + { + "name": "force_subscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 99, + "typeName": "Box", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Ask a location to notify us regarding their XCM version and any changes to it.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we should subscribe for XCM version notifications." + ] + }, + { + "name": "force_unsubscribe_version_notify", + "fields": [ + { + "name": "location", + "type": 99, + "typeName": "Box", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Require that a particular destination should no longer notify us regarding any XCM", + "version changes.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `location`: The location to which we are currently subscribed for XCM version", + " notifications which we no longer desire." + ] + }, + { + "name": "limited_reserve_transfer_assets", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve.", + "", + "`assets` must have same reserve location and may not be teleportable to `dest`.", + " - `assets` have local reserve: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `assets` have destination reserve: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `assets` have remote reserve: burn local assets, forward XCM to reserve chain to move", + " reserves from this chain's SA to `dest` chain's SA, and forward another XCM to `dest`", + " to mint and deposit reserve-based assets to `beneficiary`.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "limited_teleport_assets", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Teleport some assets from the local chain to some destination chain.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item`, up to enough to pay for `weight_limit` of weight. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` chain.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "force_suspension", + "fields": [ + { + "name": "suspended", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set or unset the global suspension state of the XCM executor.", + "", + "- `origin`: Must be an origin specified by AdminOrigin.", + "- `suspended`: `true` to suspend, `false` to resume." + ] + }, + { + "name": "transfer_assets", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "fee_asset_item", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Transfer some assets from the local chain to the destination chain through their local,", + "destination or remote reserve, or through teleports.", + "", + "Fee payment on the destination side is made from the asset in the `assets` vector of", + "index `fee_asset_item` (hence referred to as `fees`), up to enough to pay for", + "`weight_limit` of weight. If more weight is needed than `weight_limit`, then the", + "operation will fail and the sent assets may be at risk.", + "", + "`assets` (excluding `fees`) must have same reserve location or otherwise be teleportable", + "to `dest`, no limitations imposed on `fees`.", + " - for local reserve: transfer assets to sovereign account of destination chain and", + " forward a notification XCM to `dest` to mint and deposit reserve-based assets to", + " `beneficiary`.", + " - for destination reserve: burn local assets and forward a notification to `dest` chain", + " to withdraw the reserve assets from this chain's sovereign account and deposit them", + " to `beneficiary`.", + " - for remote reserve: burn local assets, forward XCM to reserve chain to move reserves", + " from this chain's SA to `dest` chain's SA, and forward another XCM to `dest` to mint", + " and deposit reserve-based assets to `beneficiary`.", + " - for teleports: burn local assets and forward XCM to `dest` chain to mint/teleport", + " assets and deposit them to `beneficiary`.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `X2(Parent,", + " Teyrchain(..))` to send from teyrchain to teyrchain, or `X1(Teyrchain(..))` to send", + " from relay to teyrchain.", + "- `beneficiary`: A beneficiary location for the assets in the context of `dest`. Will", + " generally be an `AccountId32` value.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `fee_asset_item`: The index into `assets` of the item which should be used to pay", + " fees.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "claim_assets", + "fields": [ + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Box", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claims assets trapped on this pallet because of leftover assets during XCM execution.", + "", + "- `origin`: Anyone can call this extrinsic.", + "- `assets`: The exact assets that were trapped. Use the version to specify what version", + "was the latest when they were trapped.", + "- `beneficiary`: The location/account where the claimed assets will be deposited." + ] + }, + { + "name": "transfer_assets_using_type_and_then", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "Box", + "docs": [] + }, + { + "name": "assets_transfer_type", + "type": 443, + "typeName": "Box", + "docs": [] + }, + { + "name": "remote_fees_id", + "type": 444, + "typeName": "Box", + "docs": [] + }, + { + "name": "fees_transfer_type", + "type": 443, + "typeName": "Box", + "docs": [] + }, + { + "name": "custom_xcm_on_dest", + "type": 355, + "typeName": "Box>", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Transfer assets from the local chain to the destination chain using explicit transfer", + "types for assets and fees.", + "", + "`assets` must have same reserve location or may be teleportable to `dest`. Caller must", + "provide the `assets_transfer_type` to be used for `assets`:", + " - `TransferType::LocalReserve`: transfer assets to sovereign account of destination", + " chain and forward a notification XCM to `dest` to mint and deposit reserve-based", + " assets to `beneficiary`.", + " - `TransferType::DestinationReserve`: burn local assets and forward a notification to", + " `dest` chain to withdraw the reserve assets from this chain's sovereign account and", + " deposit them to `beneficiary`.", + " - `TransferType::RemoteReserve(reserve)`: burn local assets, forward XCM to `reserve`", + " chain to move reserves from this chain's SA to `dest` chain's SA, and forward another", + " XCM to `dest` to mint and deposit reserve-based assets to `beneficiary`. Typically", + " the remote `reserve` is Asset Hub.", + " - `TransferType::Teleport`: burn local assets and forward XCM to `dest` chain to", + " mint/teleport assets and deposit them to `beneficiary`.", + "", + "On the destination chain, as well as any intermediary hops, `BuyExecution` is used to", + "buy execution using transferred `assets` identified by `remote_fees_id`.", + "Make sure enough of the specified `remote_fees_id` asset is included in the given list", + "of `assets`. `remote_fees_id` should be enough to pay for `weight_limit`. If more weight", + "is needed than `weight_limit`, then the operation will fail and the sent assets may be", + "at risk.", + "", + "`remote_fees_id` may use different transfer type than rest of `assets` and can be", + "specified through `fees_transfer_type`.", + "", + "The caller needs to specify what should happen to the transferred assets once they reach", + "the `dest` chain. This is done through the `custom_xcm_on_dest` parameter, which", + "contains the instructions to execute on `dest` as a final step.", + " This is usually as simple as:", + " `Xcm(vec![DepositAsset { assets: Wild(AllCounted(assets.len())), beneficiary }])`,", + " but could be something more exotic like sending the `assets` even further.", + "", + "- `origin`: Must be capable of withdrawing the `assets` and executing XCM.", + "- `dest`: Destination context for the assets. Will typically be `[Parent,", + " Teyrchain(..)]` to send from teyrchain to teyrchain, or `[Teyrchain(..)]` to send from", + " relay to teyrchain, or `(parents: 2, (GlobalConsensus(..), ..))` to send from", + " teyrchain across a bridge to another ecosystem destination.", + "- `assets`: The assets to be withdrawn. This should include the assets used to pay the", + " fee on the `dest` (and possibly reserve) chains.", + "- `assets_transfer_type`: The XCM `TransferType` used to transfer the `assets`.", + "- `remote_fees_id`: One of the included `assets` to be used to pay fees.", + "- `fees_transfer_type`: The XCM `TransferType` used to transfer the `fees` assets.", + "- `custom_xcm_on_dest`: The XCM to be executed on `dest` chain as the last step of the", + " transfer, which also determines what happens to the assets on the destination chain.", + "- `weight_limit`: The remote-side weight limit, if any, for the XCM fee purchase." + ] + }, + { + "name": "add_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "expires", + "type": 445, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Authorize another `aliaser` location to alias into the local `origin` making this call.", + "The `aliaser` is only authorized until the provided `expiry` block number.", + "The call can also be used for a previously authorized alias in order to update its", + "`expiry` block number.", + "", + "Usually useful to allow your local account to be aliased into from a remote location", + "also under your control (like your account on another chain).", + "", + "WARNING: make sure the caller `origin` (you) trusts the `aliaser` location to act in", + "their/your name. Once authorized using this call, the `aliaser` can freely impersonate", + "`origin` in XCM programs executed on the local chain." + ] + }, + { + "name": "remove_authorized_alias", + "fields": [ + { + "name": "aliaser", + "type": 99, + "typeName": "Box", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a previously authorized `aliaser` from the list of locations that can alias into", + "the local `origin` making this call." + ] + }, + { + "name": "remove_all_authorized_aliases", + "fields": [], + "index": 16, + "docs": [ + "Remove all previously authorized `aliaser`s that can alias into the local `origin`", + "making this call." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 355, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 356, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 356, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 357, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 358 + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 365, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 375, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 376, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 377, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 356, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 356, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 65, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 61, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 375, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 360, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 361 + } + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAsset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 70, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 362, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 363, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 364, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "xcm", + "v3", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 369, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 367 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 367, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 368 + ] + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 369, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 370 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 372, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [ + "xcm", + "v3", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 371, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 371, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 63, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 372, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 370 + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [ + "xcm", + "v3", + "MaybeErrorCode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Success", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 374, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "TruncatedError", + "fields": [ + { + "name": null, + "type": 374, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 374, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 375, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 60 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 60, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 376, + "type": { + "path": [ + "xcm", + "v3", + "OriginKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SovereignAccount", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Superuser", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Xcm", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 378, + "type": { + "path": [ + "xcm", + "v3", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "MultiAssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 380, + "typeName": "WildMultiAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 380, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildMultiAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 70, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 381, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 70, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 381, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "xcm", + "v3", + "multiasset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 382, + "type": { + "path": [ + "xcm", + "v3", + "WeightLimit" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unlimited", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Limited", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 383, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 384, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 384, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 385 + } + }, + "docs": [] + } + }, + { + "id": 385, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 391, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 396, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 376, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 377, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 74, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 76, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 72, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 396, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 387, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 388 + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 84, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 389, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 364, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 391, + "type": { + "path": [ + "staging_xcm", + "v4", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 392, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 392, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 393 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 395, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 393, + "type": { + "path": [ + "staging_xcm", + "v4", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 394, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 394, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 63, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 394, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 395, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 393 + } + }, + "docs": [] + } + }, + { + "id": 396, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 71 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 71, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [ + "staging_xcm", + "v4", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 399, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 84, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 400, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 84, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 400, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 400, + "type": { + "path": [ + "staging_xcm", + "v4", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 401, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 402, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 402, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 403 + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 409, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 376, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 418, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 377, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 90, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 86, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 423, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 425, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 427, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 428, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Assets" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 405, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 406 + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Asset" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 98, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 407, + "typeName": "Fungibility", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "Fungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [ + { + "name": null, + "type": 408, + "typeName": "AssetInstance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetInstance" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Undefined", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 67, + "typeName": "u128", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Array4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Array8", + "fields": [ + { + "name": null, + "type": 364, + "typeName": "[u8; 8]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Array16", + "fields": [ + { + "name": null, + "type": 51, + "typeName": "[u8; 16]", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Array32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [ + "staging_xcm", + "v5", + "Response" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Null", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ExecutionResult", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Version", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "super::Version", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "PalletsInfo", + "fields": [ + { + "name": null, + "type": 413, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "DispatchResult", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 411 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 411, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 411, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 412 + ] + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "xcm", + "v5", + "traits", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 414 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 416, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "staging_xcm", + "v5", + "PalletInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 415, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "module_name", + "type": 415, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "minor", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "patch", + "type": 63, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 414 + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 85 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 85, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [ + "staging_xcm", + "v5", + "QueryResponseInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Definite", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wild", + "fields": [ + { + "name": null, + "type": 421, + "typeName": "WildAsset", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildAsset" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "All", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AllOf", + "fields": [ + { + "name": "id", + "type": 98, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 422, + "typeName": "WildFungibility", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AllCounted", + "fields": [ + { + "name": null, + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "AllOfCounted", + "fields": [ + { + "name": "id", + "type": 98, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fun", + "type": 422, + "typeName": "WildFungibility", + "docs": [] + }, + { + "name": "count", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "WildFungibility" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fungible", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonFungible", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 424 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 424, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 424, + "type": { + "path": [ + "staging_xcm", + "v5", + "asset", + "AssetTransferFilter" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveDeposit", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReserveWithdraw", + "fields": [ + { + "name": null, + "type": 420, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 425, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 424 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 426, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 426, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 424 + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 86 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 86, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 428, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 429 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 430, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 429, + "type": { + "path": [ + "staging_xcm", + "v5", + "Hint" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AssetClaimer", + "fields": [ + { + "name": "location", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 430, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 429 + } + }, + "docs": [] + } + }, + { + "id": 431, + "type": { + "path": [ + "xcm", + "VersionedAssets" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "v3::MultiAssets", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "v4::Assets", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "v5::Assets", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [ + "xcm", + "VersionedXcm" + ], + "params": [ + { + "name": "RuntimeCall", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "v3::Xcm", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 437, + "typeName": "v4::Xcm", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "v5::Xcm", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 433, + "type": { + "path": [ + "xcm", + "v3", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 434, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 434, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 435 + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "xcm", + "v3", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 365, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 375, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "dest", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 376, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 436, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "InteriorMultiLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 379, + "typeName": "MultiAssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 359, + "typeName": "MultiAssets", + "docs": [] + }, + { + "name": "ticket", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 359, + "typeName": "MultiAssets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 378, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 65, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 61, + "typeName": "InteriorMultiLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 356, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "unlocker", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "target", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "owner", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 361, + "typeName": "MultiAsset", + "docs": [] + }, + { + "name": "locker", + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "MultiLocation", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 375, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "xcm", + "double_encoded", + "DoubleEncoded" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "encoded", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "staging_xcm", + "v4", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 438, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 439 + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [ + "staging_xcm", + "v4", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 391, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 396, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 376, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "require_weight_at_most", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "call", + "type": 436, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 72, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 71, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 398, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 437, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 437, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 386, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 386, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 396, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 366, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 397, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 74, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 76, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 72, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 383, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 388, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 396, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [ + "staging_xcm", + "v5", + "Xcm" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 441, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 442 + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "staging_xcm", + "v5", + "Instruction" + ], + "params": [ + { + "name": "Call", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "WithdrawAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ReserveAssetDeposited", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReceiveTeleportedAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "QueryResponse", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 409, + "typeName": "Response", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "querier", + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TransferAsset", + "fields": [ + { + "name": "assets", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "beneficiary", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "TransferReserveAsset", + "fields": [ + { + "name": "assets", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "dest", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Transact", + "fields": [ + { + "name": "origin_kind", + "type": 376, + "typeName": "OriginKind", + "docs": [] + }, + { + "name": "fallback_max_weight", + "type": 418, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 436, + "typeName": "DoubleEncoded", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "HrmpNewChannelOpenRequest", + "fields": [ + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "HrmpChannelAccepted", + "fields": [ + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "HrmpChannelClosing", + "fields": [ + { + "name": "initiator", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "sender", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "recipient", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClearOrigin", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "DescendOrigin", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "InteriorLocation", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ReportError", + "fields": [ + { + "name": null, + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "DepositAsset", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "DepositReserveAsset", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ExchangeAsset", + "fields": [ + { + "name": "give", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "want", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "maximal", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "InitiateReserveWithdraw", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "reserve", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "InitiateTeleport", + "fields": [ + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + }, + { + "name": "dest", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ReportHolding", + "fields": [ + { + "name": "response_info", + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + }, + { + "name": "assets", + "type": 420, + "typeName": "AssetFilter", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "BuyExecution", + "fields": [ + { + "name": "fees", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "RefundSurplus", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "SetErrorHandler", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "SetAppendix", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ClearError", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "ClaimAsset", + "fields": [ + { + "name": "assets", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "ticket", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Trap", + "fields": [ + { + "name": null, + "type": 11, + "typeName": "u64", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "SubscribeVersion", + "fields": [ + { + "name": "query_id", + "type": 11, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "max_response_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "UnsubscribeVersion", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "BurnAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "ExpectAsset", + "fields": [ + { + "name": null, + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "ExpectOrigin", + "fields": [ + { + "name": null, + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "ExpectError", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "Option<(u32, Error)>", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "ExpectTransactStatus", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "QueryPallet", + "fields": [ + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "response_info", + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "ExpectPallet", + "fields": [ + { + "name": "index", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "module_name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "crate_major", + "type": 63, + "typeName": "u32", + "docs": [] + }, + { + "name": "min_crate_minor", + "type": 63, + "typeName": "u32", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ReportTransactStatus", + "fields": [ + { + "name": null, + "type": 419, + "typeName": "QueryResponseInfo", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "ClearTransactStatus", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "UniversalOrigin", + "fields": [ + { + "name": null, + "type": 88, + "typeName": "Junction", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "ExportMessage", + "fields": [ + { + "name": "network", + "type": 90, + "typeName": "NetworkId", + "docs": [] + }, + { + "name": "destination", + "type": 86, + "typeName": "InteriorLocation", + "docs": [] + }, + { + "name": "xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "LockAsset", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "unlocker", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "UnlockAsset", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "target", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "NoteUnlockable", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "owner", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "RequestUnlock", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + }, + { + "name": "locker", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "SetFeesMode", + "fields": [ + { + "name": "jit_withdraw", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "SetTopic", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "ClearTopic", + "fields": [], + "index": 45, + "docs": [] + }, + { + "name": "AliasOrigin", + "fields": [ + { + "name": null, + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "UnpaidExecution", + "fields": [ + { + "name": "weight_limit", + "type": 382, + "typeName": "WeightLimit", + "docs": [] + }, + { + "name": "check_origin", + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "PayFees", + "fields": [ + { + "name": "asset", + "type": 406, + "typeName": "Asset", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "InitiateTransfer", + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "remote_fees", + "type": 423, + "typeName": "Option", + "docs": [] + }, + { + "name": "preserve_origin", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "assets", + "type": 425, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "remote_xcm", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "ExecuteWithOrigin", + "fields": [ + { + "name": "descendant_origin", + "type": 427, + "typeName": "Option", + "docs": [] + }, + { + "name": "xcm", + "type": 440, + "typeName": "Xcm", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "SetHints", + "fields": [ + { + "name": "hints", + "type": 428, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 51, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 443, + "type": { + "path": [ + "staging_xcm_executor", + "traits", + "asset_transfer", + "TransferType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Teleport", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LocalReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DestinationReserve", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "RemoteReserve", + "fields": [ + { + "name": null, + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "xcm", + "VersionedAssetId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "v3::AssetId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "v4::AssetId", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 98, + "typeName": "v5::AssetId", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 447, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 447, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 447, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "AggregateMessageOrigin" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ump", + "fields": [ + { + "name": null, + "type": 448, + "typeName": "UmpQueueId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "UmpQueueId" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Para", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 450, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 450, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 450, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_double_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 452, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_double_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 452, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the", + "future.", + "", + "Note: `delay_in_blocks` has to be at least 1." + ] + }, + { + "name": "report_fork_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 460, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_fork_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 460, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "report_future_block_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 464, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_future_block_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 464, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 120, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 452, + "type": { + "path": [ + "sp_consensus_beefy", + "DoubleVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 151 + }, + { + "name": "Signature", + "type": 453 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 454, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 454, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 453, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 180, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 151 + }, + { + "name": "Signature", + "type": 453 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 455, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 151, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 453, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 456, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 457, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 458 + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 459, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 459, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 117 + }, + { + "name": "Id", + "type": 151 + }, + { + "name": "AncestryProof", + "type": 461 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 454, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 461, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 117, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [ + "sp_mmr_primitives", + "AncestryProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev_peaks", + "type": 114, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prev_leaf_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 462, + "typeName": "Vec<(u64, Hash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 463 + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [ + "sp_consensus_beefy", + "FutureBlockVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 151 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 454, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_stage", + "fields": [ + { + "name": "stage", + "type": 466, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the migration stage.", + "", + "This call is intended for emergency use only and is guarded by the", + "[`Config::AdminOrigin`]." + ] + }, + { + "name": "schedule_migration", + "fields": [ + { + "name": "start", + "type": 175, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "warm_up", + "type": 175, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "cool_off", + "type": 175, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "unsafe_ignore_staking_lock_check", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Schedule the migration to start at a given moment.", + "", + "### Parameters:", + "- `start`: The block number at which the migration will start. `DispatchTime` calculated", + " at the moment of the extrinsic execution.", + "- `warm_up`: Duration or timepoint that will be used to prepare for the migration. Calls", + " are filtered during this period. It is intended to give enough time for UMP and DMP", + " queues to empty. `DispatchTime` calculated at the moment of the transition to the", + " warm-up stage.", + "- `cool_off`: The block number at which the post migration cool-off period will end. The", + " `DispatchTime` calculated at the moment of the transition to the cool-off stage.", + "- `unsafe_ignore_staking_lock_check`: ONLY FOR TESTING. Ignore the check whether the", + " scheduled time point is far enough in the future.", + "", + "Note: If the staking election for next era is already complete, and the next", + "validator set is queued in `pallet-session`, we want to avoid starting the data", + "migration at this point as it can lead to some missed validator rewards. To address", + "this, we stop staking election at the start of migration and must wait atleast 1", + "session (set via warm_up) before starting the data migration.", + "", + "Read [`MigrationStage::Scheduled`] documentation for more details." + ] + }, + { + "name": "start_data_migration", + "fields": [], + "index": 2, + "docs": [ + "Start the data migration.", + "", + "This is typically called by the Asset Hub to indicate it's readiness to receive the", + "migration data." + ] + }, + { + "name": "receive_query_response", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 409, + "typeName": "Response", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Receive a query response from the Asset Hub for a previously sent xcm message." + ] + }, + { + "name": "resend_xcm", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Resend a previously sent and unconfirmed XCM message." + ] + }, + { + "name": "set_unprocessed_msg_buffer", + "fields": [ + { + "name": "new", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the unprocessed message buffer size.", + "", + "`None` means to use the configuration value." + ] + }, + { + "name": "set_ah_ump_queue_priority", + "fields": [ + { + "name": "new", + "type": 508, + "typeName": "AhUmpQueuePriority>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the AH UMP queue priority configuration.", + "", + "Can only be called by the `AdminOrigin`." + ] + }, + { + "name": "set_manager", + "fields": [ + { + "name": "new", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set the manager account id.", + "", + "The manager has the similar to [`Config::AdminOrigin`] privileges except that it", + "can not set the manager account id via `set_manager` call." + ] + }, + { + "name": "send_xcm_message", + "fields": [ + { + "name": "dest", + "type": 99, + "typeName": "Box", + "docs": [] + }, + { + "name": "message", + "type": 355, + "typeName": "Box>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "XCM send call identical to the [`pallet_xcm::Pallet::send`] call but with the", + "[Config::SendXcm] router which will be able to send messages to the Asset Hub during", + "the migration." + ] + }, + { + "name": "preserve_accounts", + "fields": [ + { + "name": "accounts", + "type": 129, + "typeName": "Vec", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the accounts to be preserved on Relay Chain during the migration.", + "", + "The accounts must have no consumers references." + ] + }, + { + "name": "set_canceller", + "fields": [ + { + "name": "new", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set the canceller account id.", + "", + "The canceller can only stop scheduled migration." + ] + }, + { + "name": "pause_migration", + "fields": [], + "index": 11, + "docs": [ + "Pause the migration." + ] + }, + { + "name": "cancel_migration", + "fields": [], + "index": 12, + "docs": [ + "Cancel the migration.", + "", + "Migration can only be cancelled if it is in the [`MigrationStage::Scheduled`] state." + ] + }, + { + "name": "vote_manager_multisig", + "fields": [ + { + "name": "payload", + "type": 509, + "typeName": "Box>", + "docs": [] + }, + { + "name": "sig", + "type": 342, + "typeName": "sp_runtime::MultiSignature", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Vote on behalf of any of the members in `MultisigMembers`.", + "", + "Unsigned extrinsic, requiring the `payload` to be signed.", + "", + "Upon each call, a new entry is created in `ManagerMultisigs` map the `payload.call` to", + "be dispatched. Once `MultisigThreshold` is reached, the entire map is deleted, and we", + "move on to the next round.", + "", + "The round system ensures that signatures from older round cannot be reused." + ] + }, + { + "name": "set_settings", + "fields": [ + { + "name": "settings", + "type": 510, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the migration settings. Can only be done by admin or manager." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 466, + "type": { + "path": [ + "pallet_rc_migrator", + "MigrationStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "BagsListScore", + "type": 12 + }, + { + "name": "VotingClass", + "type": 103 + }, + { + "name": "AssetKind", + "type": 59 + }, + { + "name": "SchedulerBlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrationPaused", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Scheduled", + "fields": [ + { + "name": "start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "WaitingForAh", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "WarmUp", + "fields": [ + { + "name": "end_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Starting", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "PureProxyCandidatesMigrationInit", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "AccountsMigrationInit", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AccountsMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "AccountsMigrationDone", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "MultisigMigrationInit", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "MultisigMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 467, + "typeName": "Option<(AccountId,[u8; 32])>", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "MultisigMigrationDone", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "ClaimsMigrationInit", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "ClaimsMigrationOngoing", + "fields": [ + { + "name": "current_key", + "type": 469, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "ClaimsMigrationDone", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "ProxyMigrationInit", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "ProxyMigrationProxies", + "fields": [ + { + "name": "last_key", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "ProxyMigrationAnnouncements", + "fields": [ + { + "name": "last_key", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "ProxyMigrationDone", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "PreimageMigrationInit", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "PreimageMigrationChunksOngoing", + "fields": [ + { + "name": "last_key", + "type": 472, + "typeName": "Option<((H256, u32), u32)>", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "PreimageMigrationChunksDone", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PreimageMigrationRequestStatusOngoing", + "fields": [ + { + "name": "next_key", + "type": 176, + "typeName": "Option", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "PreimageMigrationRequestStatusDone", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "PreimageMigrationLegacyRequestStatusInit", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "PreimageMigrationLegacyRequestStatusOngoing", + "fields": [ + { + "name": "next_key", + "type": 176, + "typeName": "Option", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "PreimageMigrationLegacyRequestStatusDone", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "PreimageMigrationDone", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NomPoolsMigrationInit", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "NomPoolsMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 475, + "typeName": "Option>", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "NomPoolsMigrationDone", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "VestingMigrationInit", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "VestingMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "VestingMigrationDone", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "DelegatedStakingMigrationInit", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "DelegatedStakingMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 477, + "typeName": "Option>", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "DelegatedStakingMigrationDone", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "IndicesMigrationInit", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "IndicesMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 479, + "typeName": "Option<()>", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "IndicesMigrationDone", + "fields": [], + "index": 40, + "docs": [] + }, + { + "name": "ReferendaMigrationInit", + "fields": [], + "index": 41, + "docs": [] + }, + { + "name": "ReferendaMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 480, + "typeName": "Option", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "ReferendaMigrationDone", + "fields": [], + "index": 43, + "docs": [] + }, + { + "name": "BagsListMigrationInit", + "fields": [], + "index": 44, + "docs": [] + }, + { + "name": "BagsListMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 482, + "typeName": "Option>", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "BagsListMigrationDone", + "fields": [], + "index": 46, + "docs": [] + }, + { + "name": "SchedulerMigrationInit", + "fields": [], + "index": 47, + "docs": [] + }, + { + "name": "SchedulerMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 484, + "typeName": "Option>", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "SchedulerAgendaMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "SchedulerMigrationDone", + "fields": [], + "index": 50, + "docs": [] + }, + { + "name": "ConvictionVotingMigrationInit", + "fields": [], + "index": 51, + "docs": [] + }, + { + "name": "ConvictionVotingMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 486, + "typeName": "Option\n>", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "ConvictionVotingMigrationDone", + "fields": [], + "index": 53, + "docs": [] + }, + { + "name": "BountiesMigrationInit", + "fields": [], + "index": 54, + "docs": [] + }, + { + "name": "BountiesMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 490, + "typeName": "Option", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "BountiesMigrationDone", + "fields": [], + "index": 56, + "docs": [] + }, + { + "name": "ChildBountiesMigrationInit", + "fields": [], + "index": 57, + "docs": [] + }, + { + "name": "ChildBountiesMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 492, + "typeName": "Option", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "ChildBountiesMigrationDone", + "fields": [], + "index": 59, + "docs": [] + }, + { + "name": "AssetRateMigrationInit", + "fields": [], + "index": 60, + "docs": [] + }, + { + "name": "AssetRateMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 494, + "typeName": "Option", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "AssetRateMigrationDone", + "fields": [], + "index": 62, + "docs": [] + }, + { + "name": "CrowdloanMigrationInit", + "fields": [], + "index": 63, + "docs": [] + }, + { + "name": "CrowdloanMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 495, + "typeName": "Option", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "CrowdloanMigrationDone", + "fields": [], + "index": 65, + "docs": [] + }, + { + "name": "TreasuryMigrationInit", + "fields": [], + "index": 66, + "docs": [] + }, + { + "name": "TreasuryMigrationOngoing", + "fields": [ + { + "name": "last_key", + "type": 498, + "typeName": "Option", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "TreasuryMigrationDone", + "fields": [], + "index": 68, + "docs": [] + }, + { + "name": "StakingMigrationInit", + "fields": [], + "index": 69, + "docs": [] + }, + { + "name": "StakingMigrationOngoing", + "fields": [ + { + "name": "next_key", + "type": 500, + "typeName": "Option>", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "StakingMigrationDone", + "fields": [], + "index": 71, + "docs": [] + }, + { + "name": "CoolOff", + "fields": [ + { + "name": "end_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "SignalMigrationFinish", + "fields": [], + "index": 73, + "docs": [] + }, + { + "name": "MigrationDone", + "fields": [], + "index": 74, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 468 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 468, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 469, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 470 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 470, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [ + "pallet_rc_migrator", + "claims", + "ClaimsStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 471, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 471, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Signing", + "fields": [ + { + "name": null, + "type": 471, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Preclaims", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 471, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 181 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 181, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 473 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 473, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 474, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 476 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 476, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "nom_pools", + "NomPoolsStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolMembers", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "BondedPools", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "RewardPools", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "SubPoolsStorage", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Metadata", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ReversePoolIdLookup", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ClaimPermissions", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 478 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 478, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "delegated_staking", + "DelegatedStakingStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegators", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Agents", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 479, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 36 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 36, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 480, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 481 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 481, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_rc_migrator", + "referenda", + "ReferendaStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StorageValues", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Metadata", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ReferendumInfo", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 482, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 483 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 483, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 483, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "bags_list", + "BagsListStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Score", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ListNodes", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ListBags", + "fields": [ + { + "name": null, + "type": 445, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 485 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 485, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [ + "pallet_rc_migrator", + "scheduler", + "SchedulerStage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncompleteSince", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Retries", + "fields": [ + { + "name": null, + "type": 112, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": null, + "type": 34, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 487 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 487, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [ + "pallet_rc_migrator", + "conviction_voting", + "ConvictionVotingStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Class", + "type": 103 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VotingFor", + "fields": [ + { + "name": null, + "type": 488, + "typeName": "Option<(AccountId, Class)>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ClassLocksFor", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 488, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 489 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 489, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 489, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 103 + ] + }, + "docs": [] + } + }, + { + "id": 490, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 491 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 491, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 491, + "type": { + "path": [ + "pallet_rc_migrator", + "bounties", + "BountiesStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BountyCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "BountyApprovals", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BountyDescriptions", + "fields": [ + { + "name": "last_key", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": "last_key", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 492, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 493 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 493, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [ + "pallet_rc_migrator", + "child_bounties", + "ChildBountiesStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ChildBountyCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ParentChildBounties", + "fields": [ + { + "name": "parent_id", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "ParentTotalChildBounties", + "fields": [ + { + "name": "parent_id", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": "ids", + "type": 112, + "typeName": "Option<(BountyIndex, BountyIndex)>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ChildBountyDescriptionsV1", + "fields": [ + { + "name": "ids", + "type": 112, + "typeName": "Option<(BountyIndex, BountyIndex)>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V0ToV1ChildBountyIds", + "fields": [ + { + "name": "child_id", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ChildrenCuratorFees", + "fields": [ + { + "name": "child_id", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 59 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 59, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 495, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 496 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 496, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [ + "pallet_rc_migrator", + "crowdloan", + "CrowdloanStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Setup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LeaseReserve", + "fields": [ + { + "name": "last_key", + "type": 497, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "CrowdloanContribution", + "fields": [ + { + "name": "last_key", + "type": 497, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "CrowdloanReserve", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 173 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 173, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 499 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 499, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_rc_migrator", + "treasury", + "TreasuryStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalCount", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Proposals", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SpendCount", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Spends", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "LastSpendPeriod", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Funds", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 7, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 500, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 501 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 501, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 501, + "type": { + "path": [ + "pallet_rc_migrator", + "staking", + "staking_impl", + "StakingStage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Values", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Invulnerables", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Bonded", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Ledger", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Payee", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Validators", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Nominators", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "VirtualStakers", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "ErasStakersOverview", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "ErasStakersPaged", + "fields": [ + { + "name": null, + "type": 504, + "typeName": "Option<(EraIndex, AccountId, Page)>", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ClaimedRewards", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "ErasValidatorPrefs", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "ErasValidatorReward", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "ErasRewardPoints", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "ErasTotalStake", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "UnappliedSlashes", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "BondedEras", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "ValidatorSlashInEra", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "NominatorSlashInEra", + "fields": [ + { + "name": null, + "type": 502, + "typeName": "Option<(EraIndex, AccountId)>", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "SlashingSpans", + "fields": [ + { + "name": null, + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "SpanSlash", + "fields": [ + { + "name": null, + "type": 506, + "typeName": "Option<(AccountId, SpanIndex)>", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Finished", + "fields": [], + "index": 21, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 502, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 503 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 503, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 505 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 505, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 506, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 507 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 507, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 507, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 508, + "type": { + "path": [ + "pallet_rc_migrator", + "types", + "QueuePriority" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Config", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OverrideConfig", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Disabled", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 509, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "ManagerMultisigVote" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 340, + "typeName": "sp_runtime::MultiSigner", + "docs": [] + }, + { + "name": "call", + "type": 106, + "typeName": "::RuntimeCall", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 511 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 511, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 511, + "type": { + "path": [ + "pallet_rc_migrator", + "MigrationSettings" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_accounts_per_block", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_items_per_block", + "type": 46, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 512, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 513, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 515, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 516, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 516, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 517 + }, + { + "name": "E", + "type": 518 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 517, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 518, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 418, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 518, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 517 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 517, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Claimed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ethereum_address", + "type": 181, + "typeName": "EthereumAddress", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Someone claimed some DOTs." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 520, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A vesting schedule has been created." + ] + }, + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 521, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + }, + { + "name": "IfElseMainSuccess", + "fields": [], + "index": 6, + "docs": [ + "Main call was dispatched." + ] + }, + { + "name": "IfElseFallbackCalled", + "fields": [ + { + "name": "main_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The fallback call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 522, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 103, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "PureKilled", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "spawner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 103, + "typeName": "u16", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A pure proxy was killed by its spawner." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proxy was removed." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 523, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit stored for proxies or announcements was poked / updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 523, + "type": { + "path": [ + "pallet_proxy", + "DepositKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Proxies", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Announcements", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 195, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The deposit for a multisig operation has been updated/poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 525, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "proposer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A bounty deposit has been poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 526, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 527, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 528, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submitted in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 528, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 251, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 529, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 529, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 528, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 530, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 8, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 532, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 262, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "released_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked).", + "Any funds that are still delegated (i.e. dangling delegation) are released and are", + "represented by `released_balance`." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 140, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 268, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 270, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 271, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + }, + { + "name": "MemberClaimPermissionUpdated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "permission", + "type": 267, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A pool member's claim permission has been updated." + ] + }, + { + "name": "MetadataUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A pool's metadata was updated." + ] + }, + { + "name": "PoolNominationMade", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A pool's nominating account (or the pool's root account) has nominated a validator set", + "on behalf of the pool." + ] + }, + { + "name": "PoolNominatorChilled", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The pool is chilled i.e. no longer nominating." + ] + }, + { + "name": "GlobalParamsUpdated", + "fields": [ + { + "name": "min_join_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "max_pools", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 533, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Global parameters regulating nomination pools have been updated." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 533, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 45 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 45, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 134, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 535, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Funds delegated by a delegator." + ] + }, + { + "name": "Released", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Funds released to a delegator." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds slashed from a delegator." + ] + }, + { + "name": "MigratedDelegation", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unclaimed delegation funds migrated to delegator." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 536, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidatorSetReceived", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "new_validator_set_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "prune_up_to", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new validator set has been received." + ] + }, + { + "name": "CouldNotMergeAndDropped", + "fields": [], + "index": 1, + "docs": [ + "We could not merge, and therefore dropped a buffered message.", + "", + "Note that this event is more resembling an error, but we use an event because in this", + "pallet we need to mutate storage upon some failures." + ] + }, + { + "name": "SetTooSmallAndDropped", + "fields": [], + "index": 2, + "docs": [ + "The validator set received is way too small, as per", + "[`Config::MinimumValidatorSetSize`]." + ] + }, + { + "name": "Unexpected", + "fields": [ + { + "name": null, + "type": 537, + "typeName": "UnexpectedKind", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Something occurred that should never happen under normal operation. Logged as an event", + "for fail-safe observability." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 537, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "UnexpectedKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ReceivedValidatorSetWhilePassive", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "UnexpectedModeTransition", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SessionReportSendFailed", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SessionReportDropped", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "OffenceSendFailed", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "ValidatorPointDropped", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 538, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CandidateBacked", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 540, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 541, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A candidate was backed. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateIncluded", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 540, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 541, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A candidate was included. `[candidate, head_data]`" + ] + }, + { + "name": "CandidateTimedOut", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "CandidateReceipt", + "docs": [] + }, + { + "name": null, + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 540, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A candidate timed out. `[candidate, head_data]`" + ] + }, + { + "name": "UpwardMessagesReceived", + "fields": [ + { + "name": "from", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some upward messages have been received and will be processed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 539, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CandidateReceiptV2" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "descriptor", + "type": 300, + "typeName": "CandidateDescriptorV2", + "docs": [] + }, + { + "name": "commitments_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "CoreIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "GroupIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CurrentCodeUpdated", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Current code has been updated for a Para. `para_id`" + ] + }, + { + "name": "CurrentHeadUpdated", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Current head has been updated for a Para. `para_id`" + ] + }, + { + "name": "CodeUpgradeScheduled", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A code upgrade has been scheduled for a Para. `para_id`" + ] + }, + { + "name": "NewHeadNoted", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new head has been noted for a Para. `para_id`" + ] + }, + { + "name": "ActionQueued", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A para has been queued to execute pending actions. `para_id`" + ] + }, + { + "name": "PvfCheckStarted", + "fields": [ + { + "name": null, + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The given para either initiated or subscribed to a PVF check for the given validation", + "code. `code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckAccepted", + "fields": [ + { + "name": null, + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given validation code was accepted by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + }, + { + "name": "PvfCheckRejected", + "fields": [ + { + "name": null, + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given validation code was rejected by the PVF pre-checking vote.", + "`code_hash` `para_id`" + ] + }, + { + "name": "UpgradeCooldownRemoved", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [ + "The teyrchain for which the cooldown got removed." + ] + } + ], + "index": 8, + "docs": [ + "The upgrade cooldown was removed." + ] + }, + { + "name": "CodeAuthorized", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [ + "Para" + ] + }, + { + "name": "code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [ + "Authorized code hash." + ] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Block at which authorization expires and will be removed." + ] + } + ], + "index": 9, + "docs": [ + "A new code hash has been authorized for a Para." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 543, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenChannelRequested", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Open HRMP channel requested." + ] + }, + { + "name": "OpenChannelCanceled", + "fields": [ + { + "name": "by_teyrchain", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 327, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An HRMP channel request sent by the receiver was canceled by either party." + ] + }, + { + "name": "OpenChannelAccepted", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Open HRMP channel accepted." + ] + }, + { + "name": "ChannelClosed", + "fields": [ + { + "name": "by_teyrchain", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "channel_id", + "type": 327, + "typeName": "HrmpChannelId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "HRMP channel closed." + ] + }, + { + "name": "HrmpChannelForceOpened", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An HRMP channel was opened via Root origin." + ] + }, + { + "name": "HrmpSystemChannelOpened", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "proposed_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposed_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An HRMP channel was opened with a system chain." + ] + }, + { + "name": "OpenChannelDepositsUpdated", + "fields": [ + { + "name": "sender", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "recipient", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An HRMP channel's deposits were updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 544, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DisputeInitiated", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 545, + "typeName": "DisputeLocation", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispute has been initiated. \\[candidate hash, dispute location\\]" + ] + }, + { + "name": "DisputeConcluded", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": null, + "type": 546, + "typeName": "DisputeResult", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A dispute has concluded for or against a candidate.", + "`\\[para id, candidate hash, dispute result\\]`" + ] + }, + { + "name": "Revert", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A dispute has concluded with supermajority against a candidate.", + "Block authors should no longer build on top of this head and should", + "instead revert the block at the given height. This should be the", + "number of the child of the last known valid block in the chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 545, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeLocation" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Local", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Remote", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 546, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "DisputeResult" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Valid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Invalid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 547, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OnDemandOrderPlaced", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "spot_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "ordered_by", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An order was placed at some spot price amount by orderer ordered_by" + ] + }, + { + "name": "SpotPriceSet", + "fields": [ + { + "name": "spot_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The value of the spot price has likely changed" + ] + }, + { + "name": "AccountCredited", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account was given credits." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 548, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Registered", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "manager", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Deregistered", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "other_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 549, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewLeasePeriod", + "fields": [ + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new `[lease_period]` is beginning." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "period_begin", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "period_count", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A para has won the right to a continuous set of lease periods as a teyrchain.", + "First balance is any extra amount reserved on top of the para's existing deposit.", + "Second balance is the total amount reserved." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 550, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionStarted", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "lease_period", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "ending", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An auction started. Provides its index and the block number where it will begin to", + "close and the first lease period of the quadruplet that is auctioned." + ] + }, + { + "name": "AuctionClosed", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An auction ended. All funds become unreserved." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "extra_reserved", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds were reserved for a winning bid. First balance is the extra amount reserved.", + "Second is the total." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Funds were unreserved since bidder is no longer active. `[bidder, amount]`" + ] + }, + { + "name": "ReserveConfiscated", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "leaser", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone attempted to lease the same slot twice for a teyrchain. The amount is held in", + "reserve but no teyrchain slot has been leased." + ] + }, + { + "name": "BidAccepted", + "fields": [ + { + "name": "bidder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "first_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + }, + { + "name": "last_slot", + "type": 4, + "typeName": "LeasePeriodOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new bid has been accepted as the current winner." + ] + }, + { + "name": "WinningOffset", + "fields": [ + { + "name": "auction_index", + "type": 4, + "typeName": "AuctionIndex", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The winning offset was chosen for an auction. This will map into the `Winning` storage", + "map." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 551, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new crowdloaning campaign." + ] + }, + { + "name": "Contributed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Contributed to a crowd sale." + ] + }, + { + "name": "Withdrew", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fund_index", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Withdrew full balance of a contributor." + ] + }, + { + "name": "PartiallyRefunded", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The loans in a fund have been partially dissolved, i.e. there are some left", + "over child keys that still need to be killed." + ] + }, + { + "name": "AllRefunded", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "All loans in a fund have been refunded." + ] + }, + { + "name": "Dissolved", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Fund is dissolved." + ] + }, + { + "name": "HandleBidResult", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "result", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The result of trying to submit a new bid to the Slots pallet." + ] + }, + { + "name": "Edited", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The configuration to a crowdloan has been edited." + ] + }, + { + "name": "MemoUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "memo", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A memo has been updated." + ] + }, + { + "name": "AddedToNewRaise", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A teyrchain has been moved to `NewRaise`" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 552, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RevenueInfoRequested", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The broker chain has asked for revenue information for a specific block." + ] + }, + { + "name": "CoreAssigned", + "fields": [ + { + "name": "core", + "type": 540, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A core has received a new assignment from the broker chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 553, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 554, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 555, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 554, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 556, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Attempted", + "fields": [ + { + "name": "outcome", + "type": 557, + "typeName": "xcm::latest::Outcome", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Execution of an XCM message was attempted." + ] + }, + { + "name": "Sent", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "SendFailed", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 559, + "typeName": "SendError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An XCM message failed to send." + ] + }, + { + "name": "ProcessXcmError", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "error", + "type": 412, + "typeName": "XcmError", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An XCM message failed to process." + ] + }, + { + "name": "UnexpectedResponse", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Query response received which does not match a registered query. This may be because a", + "matching query was never registered, it may be because it is a duplicate response, or", + "because the query timed out." + ] + }, + { + "name": "ResponseReady", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "response", + "type": 409, + "typeName": "Response", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Query response has been received and is ready for taking with `take_response`. There is", + "no registered notification call." + ] + }, + { + "name": "Notified", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Query response has been received and query is removed. The registered notification has", + "been dispatched and executed successfully." + ] + }, + { + "name": "NotifyOverweight", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "actual_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_budgeted_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Query response has been received and query is removed. The registered notification", + "could not be dispatched because the dispatch weight is greater than the maximum weight", + "originally budgeted by this runtime for the query result." + ] + }, + { + "name": "NotifyDispatchError", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Query response has been received and query is removed. There was a general error with", + "dispatching the notification call." + ] + }, + { + "name": "NotifyDecodeFailed", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "pallet_index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "call_index", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Query response has been received and query is removed. The dispatch was unable to be", + "decoded into a `Call`; this might be due to dispatch function having a signature which", + "is not `(origin, QueryId, Response)`." + ] + }, + { + "name": "InvalidResponder", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_location", + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Expected query response has been received but the origin location of the response does", + "not match that expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "InvalidResponderVersion", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Expected query response has been received but the expected origin location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "ResponseTaken", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Received query response has been read and removed." + ] + }, + { + "name": "AssetsTrapped", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some assets have been placed in an asset trap." + ] + }, + { + "name": "VersionChangeNotified", + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "result", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + }, + { + "name": "cost", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An XCM version change notification message has been attempted to be sent.", + "", + "The cost of sending it (borne by the chain) is included." + ] + }, + { + "name": "SupportedVersionChanged", + "fields": [ + { + "name": "location", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 15, + "docs": [ + "The supported version of a location has been changed. This might be through an", + "automatic notification or a manual intervention." + ] + }, + { + "name": "NotifyTargetSendFail", + "fields": [ + { + "name": "location", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "error", + "type": 412, + "typeName": "XcmError", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "sending the notification to it." + ] + }, + { + "name": "NotifyTargetMigrationFail", + "fields": [ + { + "name": "location", + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A given location which had a version change subscription was dropped owing to an error", + "migrating the location to our new XCM format." + ] + }, + { + "name": "InvalidQuerierVersion", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Expected query response has been received but the expected querier location placed in", + "storage by this runtime previously cannot be decoded. The query remains registered.", + "", + "This is unexpected (since a location placed in storage in a previously executing", + "runtime should be readable prior to query timeout) and dangerous since the possibly", + "valid response will be dropped. Manual governance intervention is probably going to be", + "needed." + ] + }, + { + "name": "InvalidQuerier", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "query_id", + "type": 12, + "typeName": "QueryId", + "docs": [] + }, + { + "name": "expected_querier", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "maybe_actual_querier", + "type": 417, + "typeName": "Option", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Expected query response has been received but the querier location of the response does", + "not match the expected. The query remains registered for a later, valid, response to", + "be received and acted upon." + ] + }, + { + "name": "VersionNotifyStarted", + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A remote has requested XCM version change notification from us and we have honored it.", + "A version information message is sent to them and its cost is included." + ] + }, + { + "name": "VersionNotifyRequested", + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 21, + "docs": [ + "We have requested that a remote chain send us XCM version change notifications." + ] + }, + { + "name": "VersionNotifyUnrequested", + "fields": [ + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "cost", + "type": 404, + "typeName": "Assets", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 22, + "docs": [ + "We have requested that a remote chain stops sending us XCM version change", + "notifications." + ] + }, + { + "name": "FeesPaid", + "fields": [ + { + "name": "paying", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "fees", + "type": 404, + "typeName": "Assets", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Fees were paid from a location for an operation (often for using `SendXcm`)." + ] + }, + { + "name": "AssetsClaimed", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H256", + "docs": [] + }, + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "assets", + "type": 431, + "typeName": "VersionedAssets", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets have been claimed from an asset trap" + ] + }, + { + "name": "VersionMigrationFinished", + "fields": [ + { + "name": "version", + "type": 4, + "typeName": "XcmVersion", + "docs": [] + } + ], + "index": 25, + "docs": [ + "A XCM version migration finished." + ] + }, + { + "name": "AliasAuthorized", + "fields": [ + { + "name": "aliaser", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "expiry", + "type": 445, + "typeName": "Option", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An `aliaser` location was authorized by `target` to alias it, authorization valid until", + "`expiry` block number." + ] + }, + { + "name": "AliasAuthorizationRemoved", + "fields": [ + { + "name": "aliaser", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "target", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 27, + "docs": [ + "`target` removed alias authorization for `aliaser`." + ] + }, + { + "name": "AliasesAuthorizationsRemoved", + "fields": [ + { + "name": "target", + "type": 85, + "typeName": "Location", + "docs": [] + } + ], + "index": 28, + "docs": [ + "`target` removed all alias authorizations." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 557, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "Outcome" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Complete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Incomplete", + "fields": [ + { + "name": "used", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "error", + "type": 558, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Error", + "fields": [ + { + "name": null, + "type": 558, + "typeName": "InstructionError", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "staging_xcm", + "v5", + "traits", + "InstructionError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 412, + "typeName": "Error", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "xcm", + "v3", + "traits", + "SendError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotApplicable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "MissingArgument", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Fees", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 447, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 561, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 447, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 447, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 447, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 561, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 450, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 450, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 450, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 563, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "StageTransition", + "fields": [ + { + "name": "old", + "type": 466, + "typeName": "MigrationStageOf", + "docs": [ + "The old stage before the transition." + ] + }, + { + "name": "new", + "type": 466, + "typeName": "MigrationStageOf", + "docs": [ + "The new stage after the transition." + ] + } + ], + "index": 0, + "docs": [ + "A stage transition has occurred." + ] + }, + { + "name": "AssetHubMigrationStarted", + "fields": [], + "index": 1, + "docs": [ + "The Asset Hub Migration started and is active until `AssetHubMigrationFinished` is", + "emitted.", + "", + "This event is equivalent to `StageTransition { new: Initializing, .. }` but is easier", + "to understand. The activation is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "AssetHubMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The Asset Hub Migration finished.", + "", + "This event is equivalent to `StageTransition { new: MigrationDone, .. }` but is easier", + "to understand. The finishing is immediate and affects all events happening", + "afterwards." + ] + }, + { + "name": "QueryResponseReceived", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "u64", + "docs": [ + "The query ID." + ] + }, + { + "name": "response", + "type": 373, + "typeName": "MaybeErrorCode", + "docs": [ + "The response." + ] + } + ], + "index": 3, + "docs": [ + "A query response has been received." + ] + }, + { + "name": "XcmResendAttempt", + "fields": [ + { + "name": "query_id", + "type": 12, + "typeName": "u64", + "docs": [ + "The query ID." + ] + }, + { + "name": "send_error", + "type": 564, + "typeName": "Option", + "docs": [ + "The error message." + ] + } + ], + "index": 4, + "docs": [ + "A XCM message has been resent." + ] + }, + { + "name": "UnprocessedMsgBufferSet", + "fields": [ + { + "name": "new", + "type": 4, + "typeName": "u32", + "docs": [ + "The new size." + ] + }, + { + "name": "old", + "type": 4, + "typeName": "u32", + "docs": [ + "The old size." + ] + } + ], + "index": 5, + "docs": [ + "The unprocessed message buffer size has been set." + ] + }, + { + "name": "AhUmpQueuePrioritySet", + "fields": [ + { + "name": "prioritized", + "type": 8, + "typeName": "bool", + "docs": [ + "Indicates if AH UMP queue was successfully set as priority.", + "If `false`, it means we're in the round-robin phase of our priority pattern", + "(see [`Config::AhUmpQueuePriorityPattern`]), where no queue gets priority." + ] + }, + { + "name": "cycle_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Current block number within the pattern cycle (1 to period)." + ] + }, + { + "name": "cycle_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "Total number of blocks in the pattern cycle" + ] + } + ], + "index": 6, + "docs": [ + "Whether the AH UMP queue was prioritized for the next block." + ] + }, + { + "name": "AhUmpQueuePriorityConfigSet", + "fields": [ + { + "name": "old", + "type": 508, + "typeName": "AhUmpQueuePriority>", + "docs": [ + "The old priority pattern." + ] + }, + { + "name": "new", + "type": 508, + "typeName": "AhUmpQueuePriority>", + "docs": [ + "The new priority pattern." + ] + } + ], + "index": 7, + "docs": [ + "The AH UMP queue priority config was set." + ] + }, + { + "name": "MigratedBalanceRecordSet", + "fields": [ + { + "name": "kept", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "migrated", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The total issuance was recorded." + ] + }, + { + "name": "MigratedBalanceConsumed", + "fields": [ + { + "name": "kept", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "migrated", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The RC kept balance was consumed." + ] + }, + { + "name": "ManagerSet", + "fields": [ + { + "name": "old", + "type": 140, + "typeName": "Option", + "docs": [ + "The old manager account id." + ] + }, + { + "name": "new", + "type": 140, + "typeName": "Option", + "docs": [ + "The new manager account id." + ] + } + ], + "index": 10, + "docs": [ + "The manager account id was set." + ] + }, + { + "name": "XcmSent", + "fields": [ + { + "name": "origin", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "destination", + "type": 85, + "typeName": "Location", + "docs": [] + }, + { + "name": "message", + "type": 401, + "typeName": "Xcm<()>", + "docs": [] + }, + { + "name": "message_id", + "type": 1, + "typeName": "XcmHash", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An XCM message was sent." + ] + }, + { + "name": "StakingElectionsPaused", + "fields": [], + "index": 12, + "docs": [ + "The staking elections were paused." + ] + }, + { + "name": "AccountsPreserved", + "fields": [ + { + "name": "accounts", + "type": 129, + "typeName": "Vec", + "docs": [ + "The accounts that will be preserved." + ] + } + ], + "index": 13, + "docs": [ + "The accounts to be preserved on Relay Chain were set." + ] + }, + { + "name": "CancellerSet", + "fields": [ + { + "name": "old", + "type": 140, + "typeName": "Option", + "docs": [ + "The old canceller account id." + ] + }, + { + "name": "new", + "type": 140, + "typeName": "Option", + "docs": [ + "The new canceller account id." + ] + } + ], + "index": 14, + "docs": [ + "The canceller account id was set." + ] + }, + { + "name": "MigrationPaused", + "fields": [ + { + "name": "pause_stage", + "type": 466, + "typeName": "MigrationStageOf", + "docs": [ + "The stage at which the migration was paused." + ] + } + ], + "index": 15, + "docs": [ + "The migration was paused." + ] + }, + { + "name": "MigrationCancelled", + "fields": [], + "index": 16, + "docs": [ + "The migration was cancelled." + ] + }, + { + "name": "PureAccountsIndexed", + "fields": [ + { + "name": "num_pure_accounts", + "type": 4, + "typeName": "u32", + "docs": [ + "The number of indexed pure accounts." + ] + } + ], + "index": 17, + "docs": [ + "Some pure accounts were indexed for possibly receiving free `Any` proxies." + ] + }, + { + "name": "ManagerMultisigDispatched", + "fields": [ + { + "name": "res", + "type": 35, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 18, + "docs": [ + "The manager multisig dispatched something." + ] + }, + { + "name": "ManagerMultisigVoted", + "fields": [ + { + "name": "votes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "The manager multisig received a vote." + ] + }, + { + "name": "MigrationSettingsSet", + "fields": [ + { + "name": "old", + "type": 510, + "typeName": "Option", + "docs": [ + "The old migration settings." + ] + }, + { + "name": "new", + "type": 510, + "typeName": "Option", + "docs": [ + "The new migration settings." + ] + } + ], + "index": 20, + "docs": [ + "The migration settings were set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 564, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 559 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 559, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 33 + } + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 63, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 568, + "typeName": "Cow<'static, str>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 568, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 569 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 569, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 569, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 572, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 573 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 573, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 573, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 573, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 418, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 418, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 418, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 575, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 568, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "impl_name", + "type": 568, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 578, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "system_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 579 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 579, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 579, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 580 + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 364, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 582, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 583 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 585, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 584 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 584, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 584, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 105 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 169 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 34, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 105, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 112, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 169, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 583 + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 588, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 258, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 589, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 258 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 258, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 591 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 592, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 593, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 46, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 591 + ] + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 592 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 592, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 595, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 596, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 597 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 598, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 597, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 118, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 597 + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 600, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 602 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 602, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 603, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 605, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 606, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 119, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 604, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 159, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 119, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 119, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 604, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 122, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 123, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 609 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 610, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 609 + } + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 612, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 614, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 615 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 617, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 364, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 616, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 615 + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 619 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 620, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 364 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 364, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 619 + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 622 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 630, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 623 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 623, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 624, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 625, + "typeName": "pallet_staking::HoldReason", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 626, + "typeName": "pallet_session::HoldReason", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 627, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 628, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 629, + "typeName": "pallet_xcm::HoldReason", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [ + "pallet_session", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Keys", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingDelegation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AuthorizeAlias", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 622 + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 632 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 635, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 633 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 633, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 634, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 39, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 632 + } + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 637, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 143, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 639, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 134, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 641, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 129, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 445, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 67, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 67, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 644, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 645 + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 67, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 646, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 67, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 67, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 67, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 644, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 649, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 650, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 507 + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 652 + } + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 257, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 45, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 134, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 28, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 29, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 30, + "docs": [ + "Operation not allowed for virtual stakers." + ] + }, + { + "name": "CannotReapStash", + "fields": [], + "index": 31, + "docs": [ + "Stash could not be reaped as other pallet might depend on it." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 32, + "docs": [ + "The stake of this account is already migrated to `Fungible` holds." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 33, + "docs": [ + "Account is restricted from participation in staking. This may happen if the account is", + "staking in another way already, such as via pool." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 657, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 658 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 658, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 129, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 643 + ] + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 51, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 661 + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 147 + ] + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 663 + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 664 + ] + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceSeverity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 666, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 668, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 669, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 670, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 46, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 56 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 55, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 672, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 150 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 673, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 150 + } + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 134, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 676, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 59 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 99 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 59, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 99, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 677, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 364, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 682, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 688, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 683, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 686, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 687, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 684 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 685, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 101 + ] + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 684 + } + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 166, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 686, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 687, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 690 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 691, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 103, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 690 + } + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 693, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 103 + }, + { + "name": "RuntimeOrigin", + "type": 169 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 105 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 514 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 33 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 694, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 696, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 694, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 103 + }, + { + "name": "RuntimeOrigin", + "type": 169 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 105 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 514 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 33 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 103, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 169, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 105, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 175, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 695, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 696, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 697, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 514, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 699, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 695 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 695, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 698 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 698, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 698, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 46, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 700 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 700, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 700, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 33 + ] + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 702 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 703, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 702 + } + }, + "docs": [] + } + }, + { + "id": 704, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 705 + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 103, + 706 + ] + }, + "docs": [] + } + }, + { + "id": 706, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 569 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 569, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 707, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 707, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 45, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 708, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 708, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 708, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 709, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 710, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 711, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 712, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEthereumSignature", + "fields": [], + "index": 0, + "docs": [ + "Invalid Ethereum signature." + ] + }, + { + "name": "SignerHasNoClaim", + "fields": [], + "index": 1, + "docs": [ + "Ethereum address has no claim." + ] + }, + { + "name": "SenderHasNoClaim", + "fields": [], + "index": 2, + "docs": [ + "Account ID sending transaction has no claim." + ] + }, + { + "name": "PotUnderflow", + "fields": [], + "index": 3, + "docs": [ + "There's not enough in the pot to pay out some unvested amount. Generally implies a", + "logic error." + ] + }, + { + "name": "InvalidStatement", + "fields": [], + "index": 4, + "docs": [ + "A needed statement was not included." + ] + }, + { + "name": "VestedBalanceExists", + "fields": [], + "index": 5, + "docs": [ + "The account already has a vested balance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 713, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 187 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 714, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 187 + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 716, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 717, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 718, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 719, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 720 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 721, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 192 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 192, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 720 + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 723, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 724 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 725, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 724 + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 195, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 728, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 129, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found in storage." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it or update", + "its deposits." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 730, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 731, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ApprovedWithCurator", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + }, + { + "name": "NotProposer", + "fields": [], + "index": 11, + "docs": [ + "User is not the proposer of the bounty." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 734, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 735, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + }, + { + "name": "MaxBackersPerWinner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 738, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 251, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 528, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 738, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupports" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BOuter", + "type": null + }, + { + "name": "BInner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 739, + "typeName": "BoundedVec<(AccountId, BoundedSupport), BOuter>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 739, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 740 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 743, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 741 + ] + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Bound", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 742, + "typeName": "BoundedVec<(AccountId, ExtendedBalance), Bound>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 742, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 258 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 257, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 740 + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "VoterType", + "type": 745 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 746, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 129, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 641 + ] + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 745 + } + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 748 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 749, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 251, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 748 + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 200 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 199, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Submission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 752, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 140, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 756, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 1, + "docs": [ + "Could not update a node, because the pallet is locked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 756, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 450, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 758, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 759, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 703, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 761, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 763, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 262, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 268, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 533, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 762, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 46, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 271, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 270 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 270, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 140, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 140, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 764, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 450, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 766, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 767, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 766 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 768, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 766 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 769, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 770 + } + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 766 + ] + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 773, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "SlashTooLow", + "fields": [], + "index": 33, + "docs": [ + "The slash amount is too low to be applied." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 35, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 36, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 37, + "docs": [ + "Account is restricted from participation in pools. This may happen if the account is", + "staking in another way already." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 773, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 775, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 776, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 258 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 257, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 134, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 778, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "Delegation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "AgentLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total_delegated", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pending_slash", + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "The account cannot perform this operation." + ] + }, + { + "name": "AlreadyStaking", + "fields": [], + "index": 1, + "docs": [ + "An existing staker cannot perform this action." + ] + }, + { + "name": "InvalidRewardDestination", + "fields": [], + "index": 2, + "docs": [ + "Reward Destination cannot be same as `Agent` account." + ] + }, + { + "name": "InvalidDelegation", + "fields": [], + "index": 3, + "docs": [ + "Delegation conditions are not met.", + "", + "Possible issues are", + "1) Cannot delegate to self,", + "2) Cannot delegate to multiple delegates." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 4, + "docs": [ + "The account does not have enough funds to perform the operation." + ] + }, + { + "name": "NotAgent", + "fields": [], + "index": 5, + "docs": [ + "Not an existing `Agent` account." + ] + }, + { + "name": "NotDelegator", + "fields": [], + "index": 6, + "docs": [ + "Not a Delegator account." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 7, + "docs": [ + "Some corruption in internal state." + ] + }, + { + "name": "UnappliedSlash", + "fields": [], + "index": 8, + "docs": [ + "Unapplied pending slash restricts operation on `Agent`." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 9, + "docs": [ + "`Agent` has no pending slash to be applied." + ] + }, + { + "name": "WithdrawFailed", + "fields": [], + "index": 10, + "docs": [ + "Failed to withdraw amount from Core Staking." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 11, + "docs": [ + "Operation not supported by this pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 781, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 129 + ] + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 783, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 783, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "SessionReport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validator_points", + "type": 650, + "typeName": "Vec<(AccountId, u32)>", + "docs": [] + }, + { + "name": "activation_timestamp", + "type": 784, + "typeName": "Option<(u64, u32)>", + "docs": [] + }, + { + "name": "leftover", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 609 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 609, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 786 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 788, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 787 + ] + }, + "docs": [] + } + }, + { + "id": 787, + "type": { + "path": [ + "pallet_staking_async_rc_client", + "Offence" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "reporters", + "type": 129, + "typeName": "Vec", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 45, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 786 + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pallet_staking_async_ah_client", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Blocked", + "fields": [], + "index": 0, + "docs": [ + "Could not process incoming message because incoming messages are blocked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 790, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "HostConfiguration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_queue_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_upward_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_message_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validation_upgrade_cooldown", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "async_backing_params", + "type": 278, + "typeName": "AsyncBackingParams", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_downward_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_outbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "hrmp_channel_max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_max_teyrchain_inbound_channels", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "hrmp_channel_max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "executor_params", + "type": 279, + "typeName": "ExecutorParams", + "docs": [] + }, + { + "name": "code_retention_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "max_validators", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "dispute_post_conclusion_acceptance_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "pvf_voting_ttl", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "minimum_validation_upgrade_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "minimum_backing_votes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "node_features", + "type": 293, + "typeName": "NodeFeatures", + "docs": [] + }, + { + "name": "approval_voting_params", + "type": 284, + "typeName": "ApprovalVotingParams", + "docs": [] + }, + { + "name": "scheduler_params", + "type": 285, + "typeName": "SchedulerParams", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 791, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 792 + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 790 + ] + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "configuration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNewValue", + "fields": [], + "index": 0, + "docs": [ + "The new value for a configuration parameter is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 794, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 295 + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 148 + } + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "AllowedRelayParentsTracker" + ], + "params": [ + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "buffer", + "type": 797, + "typeName": "VecDeque>", + "docs": [] + }, + { + "name": "latest_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 797, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 798 + } + }, + "docs": [] + } + }, + { + "id": 798, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "shared", + "RelayParentInfo" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "relay_parent", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "claim_queue", + "type": 799, + "typeName": "BTreeMap>>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 173 + }, + { + "name": "V", + "type": 800 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 805, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 2 + }, + { + "name": "V", + "type": 801 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 803, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 540 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 802, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 540 + } + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 804 + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 801 + ] + }, + "docs": [] + } + }, + { + "id": 805, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 806 + } + }, + "docs": [] + } + }, + { + "id": 806, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 173, + 800 + ] + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 808 + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "CandidatePendingAvailability" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 540, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "hash", + "type": 316, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "descriptor", + "type": 300, + "typeName": "CandidateDescriptor", + "docs": [] + }, + { + "name": "commitments", + "type": 304, + "typeName": "CandidateCommitments", + "docs": [] + }, + { + "name": "availability_votes", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "backers", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backed_in_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "backing_group", + "type": 541, + "typeName": "GroupIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "inclusion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 0, + "docs": [ + "Validator index out of bounds." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 1, + "docs": [ + "Candidate submitted but para not scheduled." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 2, + "docs": [ + "Head data exceeds the configured maximum." + ] + }, + { + "name": "PrematureCodeUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Code upgrade prematurely." + ] + }, + { + "name": "NewCodeTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Output code is too large" + ] + }, + { + "name": "DisallowedRelayParent", + "fields": [], + "index": 5, + "docs": [ + "The candidate's relay-parent was not allowed. Either it was", + "not recent enough or it didn't advance based on the last teyrchain block." + ] + }, + { + "name": "InvalidAssignment", + "fields": [], + "index": 6, + "docs": [ + "Failed to compute group index for the core: either it's out of bounds", + "or the relay parent doesn't belong to the current session." + ] + }, + { + "name": "InvalidGroupIndex", + "fields": [], + "index": 7, + "docs": [ + "Invalid group index in core assignment." + ] + }, + { + "name": "InsufficientBacking", + "fields": [], + "index": 8, + "docs": [ + "Insufficient (non-majority) backing." + ] + }, + { + "name": "InvalidBacking", + "fields": [], + "index": 9, + "docs": [ + "Invalid (bad signature, unknown validator, etc.) backing." + ] + }, + { + "name": "ValidationDataHashMismatch", + "fields": [], + "index": 10, + "docs": [ + "The validation data hash does not match expected." + ] + }, + { + "name": "IncorrectDownwardMessageHandling", + "fields": [], + "index": 11, + "docs": [ + "The downward message queue is not processed correctly." + ] + }, + { + "name": "InvalidUpwardMessages", + "fields": [], + "index": 12, + "docs": [ + "At least one upward message sent does not pass the acceptance criteria." + ] + }, + { + "name": "HrmpWatermarkMishandling", + "fields": [], + "index": 13, + "docs": [ + "The candidate didn't follow the rules of HRMP watermark advancement." + ] + }, + { + "name": "InvalidOutboundHrmp", + "fields": [], + "index": 14, + "docs": [ + "The HRMP messages sent by the candidate is not valid." + ] + }, + { + "name": "InvalidValidationCodeHash", + "fields": [], + "index": 15, + "docs": [ + "The validation code hash of the candidate is not valid." + ] + }, + { + "name": "ParaHeadMismatch", + "fields": [], + "index": 16, + "docs": [ + "The `para_head` hash in the candidate descriptor doesn't match the hash of the actual", + "para head in the commitments." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 810, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "ScrapedOnChainVotes" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "backing_validators_per_candidate", + "type": 811, + "typeName": "Vec<\n(CandidateReceiptV2, Vec<(ValidatorIndex, ValidityAttestation)>)>", + "docs": [] + }, + { + "name": "disputes", + "type": 314, + "typeName": "MultiDisputeStatementSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 812 + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 539, + 813 + ] + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 814 + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 295, + 313 + ] + }, + "docs": [] + } + }, + { + "id": 815, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras_inherent", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyInclusionInherents", + "fields": [], + "index": 0, + "docs": [ + "Inclusion inherent called more than once per block." + ] + }, + { + "name": "InvalidParentHeader", + "fields": [], + "index": 1, + "docs": [ + "The hash of the submitted parent header doesn't correspond to the saved block hash of", + "the parent." + ] + }, + { + "name": "InherentDataFilteredDuringExecution", + "fields": [], + "index": 2, + "docs": [ + "Inherent data was filtered during execution. This should have only been done", + "during creation." + ] + }, + { + "name": "UnscheduledCandidate", + "fields": [], + "index": 3, + "docs": [ + "Too many candidates supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 816, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 794 + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 540 + }, + { + "name": "V", + "type": 818 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 820, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 818, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 819 + } + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "scheduler", + "common", + "Assignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Pool", + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "core_index", + "type": 540, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Bulk", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 820, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 821 + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 540, + 818 + ] + }, + "docs": [] + } + }, + { + "id": 822, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckActiveVoteState" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes_accept", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "votes_reject", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "created_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "causes", + "type": 823, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 824 + } + }, + "docs": [] + } + }, + { + "id": 824, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "PvfCheckCause" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [ + { + "name": null, + "type": 173, + "typeName": "ParaId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Upgrade", + "fields": [ + { + "name": "id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "included_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "upgrade_strategy", + "type": 825, + "typeName": "UpgradeStrategy", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "UpgradeStrategy" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SetGoAheadSignal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ApplyAtExpectedBlock", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 303 + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 173 + } + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaLifecycle" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Onboarding", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Parathread", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Teyrchain", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UpgradingParathread", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DowngradingTeyrchain", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "OffboardingParathread", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "OffboardingTeyrchain", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 173, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaPastCodeMeta" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "upgrade_times", + "type": 831, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "last_pruned", + "type": 46, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 832 + } + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ReplacementTimes" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "expected_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "activated_at", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 829 + } + }, + "docs": [] + } + }, + { + "id": 834, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "AuthorizedCodeHashAndExpiry" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 835, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeGoAhead" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Abort", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "GoAhead", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "UpgradeRestriction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Present", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "ParaGenesisArgs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "genesis_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code", + "type": 310, + "typeName": "ValidationCode", + "docs": [] + }, + { + "name": "para_kind", + "type": 8, + "typeName": "ParaKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 838, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "paras", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "Para is not registered in our system." + ] + }, + { + "name": "CannotOnboard", + "fields": [], + "index": 1, + "docs": [ + "Para cannot be onboarded because it is already tracked by our system." + ] + }, + { + "name": "CannotOffboard", + "fields": [], + "index": 2, + "docs": [ + "Para cannot be offboarded at this time." + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 3, + "docs": [ + "Para cannot be upgraded to a lease holding teyrchain." + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 4, + "docs": [ + "Para cannot be downgraded to an on-demand teyrchain." + ] + }, + { + "name": "PvfCheckStatementStale", + "fields": [], + "index": 5, + "docs": [ + "The statement for PVF pre-checking is stale." + ] + }, + { + "name": "PvfCheckStatementFuture", + "fields": [], + "index": 6, + "docs": [ + "The statement for PVF pre-checking is for a future session." + ] + }, + { + "name": "PvfCheckValidatorIndexOutOfBounds", + "fields": [], + "index": 7, + "docs": [ + "Claimed validator index is out of bounds." + ] + }, + { + "name": "PvfCheckInvalidSignature", + "fields": [], + "index": 8, + "docs": [ + "The signature for the PVF pre-checking is invalid." + ] + }, + { + "name": "PvfCheckDoubleVote", + "fields": [], + "index": 9, + "docs": [ + "The given validator already has cast a vote." + ] + }, + { + "name": "PvfCheckSubjectInvalid", + "fields": [], + "index": 10, + "docs": [ + "The given PVF does not exist at the moment of process a vote." + ] + }, + { + "name": "CannotUpgradeCode", + "fields": [], + "index": 11, + "docs": [ + "Teyrchain cannot currently schedule a code upgrade." + ] + }, + { + "name": "InvalidCode", + "fields": [], + "index": 12, + "docs": [ + "Invalid validation code size." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 13, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 14, + "docs": [ + "The submitted code is not authorized." + ] + }, + { + "name": "InvalidBlockNumber", + "fields": [], + "index": 15, + "docs": [ + "Invalid block number." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 839, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 840 + } + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "initializer", + "BufferedSessionChange" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 795, + "typeName": "Vec", + "docs": [] + }, + { + "name": "queued", + "type": 795, + "typeName": "Vec", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 842 + } + }, + "docs": [] + } + }, + { + "id": 842, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundDownwardMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "msg", + "type": 14, + "typeName": "DownwardMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpOpenChannelRequest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "confirmed", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "_age", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 844, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 327 + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "HrmpChannel" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_capacity", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_message_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "msg_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "mqc_head", + "type": 176, + "typeName": "Option", + "docs": [] + }, + { + "name": "sender_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "recipient_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 847 + } + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [ + "pezkuwi_core_primitives", + "InboundHrmpMessage" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sent_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "alloc::vec::Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 849 + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 827 + ] + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "hrmp", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "OpenHrmpChannelToSelf", + "fields": [], + "index": 0, + "docs": [ + "The sender tried to open a channel to themselves." + ] + }, + { + "name": "OpenHrmpChannelInvalidRecipient", + "fields": [], + "index": 1, + "docs": [ + "The recipient is not a valid para." + ] + }, + { + "name": "OpenHrmpChannelZeroCapacity", + "fields": [], + "index": 2, + "docs": [ + "The requested capacity is zero." + ] + }, + { + "name": "OpenHrmpChannelCapacityExceedsLimit", + "fields": [], + "index": 3, + "docs": [ + "The requested capacity exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelZeroMessageSize", + "fields": [], + "index": 4, + "docs": [ + "The requested maximum message size is 0." + ] + }, + { + "name": "OpenHrmpChannelMessageSizeExceedsLimit", + "fields": [], + "index": 5, + "docs": [ + "The open request requested the message size that exceeds the global limit." + ] + }, + { + "name": "OpenHrmpChannelAlreadyExists", + "fields": [], + "index": 6, + "docs": [ + "The channel already exists" + ] + }, + { + "name": "OpenHrmpChannelAlreadyRequested", + "fields": [], + "index": 7, + "docs": [ + "There is already a request to open the same channel." + ] + }, + { + "name": "OpenHrmpChannelLimitExceeded", + "fields": [], + "index": 8, + "docs": [ + "The sender already has the maximum number of allowed outbound channels." + ] + }, + { + "name": "AcceptHrmpChannelDoesntExist", + "fields": [], + "index": 9, + "docs": [ + "The channel from the sender to the origin doesn't exist." + ] + }, + { + "name": "AcceptHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 10, + "docs": [ + "The channel is already confirmed." + ] + }, + { + "name": "AcceptHrmpChannelLimitExceeded", + "fields": [], + "index": 11, + "docs": [ + "The recipient already has the maximum number of allowed inbound channels." + ] + }, + { + "name": "CloseHrmpChannelUnauthorized", + "fields": [], + "index": 12, + "docs": [ + "The origin tries to close a channel where it is neither the sender nor the recipient." + ] + }, + { + "name": "CloseHrmpChannelDoesntExist", + "fields": [], + "index": 13, + "docs": [ + "The channel to be closed doesn't exist." + ] + }, + { + "name": "CloseHrmpChannelAlreadyUnderway", + "fields": [], + "index": 14, + "docs": [ + "The channel close request is already requested." + ] + }, + { + "name": "CancelHrmpOpenChannelUnauthorized", + "fields": [], + "index": 15, + "docs": [ + "Canceling is requested by neither the sender nor recipient of the open channel request." + ] + }, + { + "name": "OpenHrmpChannelDoesntExist", + "fields": [], + "index": 16, + "docs": [ + "The open request doesn't exist." + ] + }, + { + "name": "OpenHrmpChannelAlreadyConfirmed", + "fields": [], + "index": 17, + "docs": [ + "Cannot cancel an HRMP open channel request because it is already confirmed." + ] + }, + { + "name": "WrongWitness", + "fields": [], + "index": 18, + "docs": [ + "The provided witness data is wrong." + ] + }, + { + "name": "ChannelCreationNotAuthorized", + "fields": [], + "index": 19, + "docs": [ + "The channel between these two chains cannot be authorized." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 851, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 149 + } + }, + "docs": [] + } + }, + { + "id": 852, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "SessionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "active_validator_indices", + "type": 794, + "typeName": "Vec", + "docs": [] + }, + { + "name": "random_seed", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "dispute_period", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "validators", + "type": 853, + "typeName": "IndexedVec", + "docs": [] + }, + { + "name": "discovery_keys", + "type": 673, + "typeName": "Vec", + "docs": [] + }, + { + "name": "assignment_keys", + "type": 851, + "typeName": "Vec", + "docs": [] + }, + { + "name": "validator_groups", + "type": 854, + "typeName": "IndexedVec>", + "docs": [] + }, + { + "name": "n_cores", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "zeroth_delay_tranche_width", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "relay_vrf_modulo_samples", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "n_delay_tranches", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "no_show_slots", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "needed_approvals", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 295 + }, + { + "name": "V", + "type": 148 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 795, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "IndexedVec" + ], + "params": [ + { + "name": "K", + "type": 541 + }, + { + "name": "V", + "type": 794 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 816, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 316 + ] + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "DisputeState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators_for", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "validators_against", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "concluded_at", + "type": 46, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 295 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 794, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DuplicateDisputeStatementSets", + "fields": [], + "index": 0, + "docs": [ + "Duplicate dispute statement sets provided." + ] + }, + { + "name": "AncientDisputeStatement", + "fields": [], + "index": 1, + "docs": [ + "Ancient dispute statement provided." + ] + }, + { + "name": "ValidatorIndexOutOfBounds", + "fields": [], + "index": 2, + "docs": [ + "Validator index on statement is out of bounds for session." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 3, + "docs": [ + "Invalid signature on statement." + ] + }, + { + "name": "DuplicateStatement", + "fields": [], + "index": 4, + "docs": [ + "Validator vote submitted more than once to dispute." + ] + }, + { + "name": "SingleSidedDispute", + "fields": [], + "index": 5, + "docs": [ + "A dispute where there are only votes on one side." + ] + }, + { + "name": "MaliciousBacker", + "fields": [], + "index": 6, + "docs": [ + "A dispute vote from a malicious backer." + ] + }, + { + "name": "MissingBackingVotes", + "fields": [], + "index": 7, + "docs": [ + "No backing votes were provides along dispute statements." + ] + }, + { + "name": "UnconfirmedDispute", + "fields": [], + "index": 8, + "docs": [ + "Unconfirmed dispute statement sets provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 859, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "PendingSlashes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "keys", + "type": 860, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "kind", + "type": 332, + "typeName": "DisputeOffenceKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 295 + }, + { + "name": "V", + "type": 148 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 861, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 861, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 862 + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 295, + 148 + ] + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "disputes", + "slashing", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "The key ownership proof is invalid." + ] + }, + { + "name": "InvalidSessionIndex", + "fields": [], + "index": 1, + "docs": [ + "The session index is too old or invalid." + ] + }, + { + "name": "InvalidCandidateHash", + "fields": [], + "index": 2, + "docs": [ + "The candidate hash is invalid." + ] + }, + { + "name": "InvalidValidatorIndex", + "fields": [], + "index": 3, + "docs": [ + "There is no pending slash for the given validator index and time", + "slot." + ] + }, + { + "name": "ValidatorIndexIdMismatch", + "fields": [], + "index": 4, + "docs": [ + "The validator index does not match the validator id." + ] + }, + { + "name": "DuplicateSlashingReport", + "fields": [], + "index": 5, + "docs": [ + "The given slashing report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 864, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "CoreAffinityCount" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core_index", + "type": 540, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "QueueStatusType" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "traffic", + "type": 450, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "next_index", + "type": 866, + "typeName": "QueueIndex", + "docs": [] + }, + { + "name": "smallest_index", + "type": 866, + "typeName": "QueueIndex", + "docs": [] + }, + { + "name": "freed_indices", + "type": 867, + "typeName": "BinaryHeap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "QueueIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 867, + "type": { + "path": [ + "BinaryHeap" + ], + "params": [ + { + "name": "T", + "type": 868 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 869, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "ReverseQueueIndex" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 868 + } + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "BinaryHeap" + ], + "params": [ + { + "name": "T", + "type": 871 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 872, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "types", + "EnqueuedOrder" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "ParaId", + "docs": [] + }, + { + "name": "idx", + "type": 866, + "typeName": "QueueIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 872, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 871 + } + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 874, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 874, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "on_demand", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "QueueFull", + "fields": [], + "index": 0, + "docs": [ + "The order queue is full, `place_order` will not continue." + ] + }, + { + "name": "SpotPriceHigherThanMaxAmount", + "fields": [], + "index": 1, + "docs": [ + "The current spot price is higher than the max amount specified in the `place_order`", + "call, making it invalid." + ] + }, + { + "name": "InsufficientCredits", + "fields": [], + "index": 2, + "docs": [ + "The account doesn't have enough credits to purchase on-demand coretime." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 876, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 540 + ] + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "Schedule" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignments", + "type": 344, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "next_schedule", + "type": 46, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "CoreDescriptor" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "queue", + "type": 879, + "typeName": "Option>", + "docs": [] + }, + { + "name": "current_work", + "type": 881, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 879, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 880 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 880, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "QueueDescriptor" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 882 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 882, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 882, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "WorkState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "assignments", + "type": 883, + "typeName": "Vec<(CoreAssignment, AssignmentState)>", + "docs": [] + }, + { + "name": "end_hint", + "type": 46, + "typeName": "Option", + "docs": [] + }, + { + "name": "pos", + "type": 103, + "typeName": "u16", + "docs": [] + }, + { + "name": "step", + "type": 347, + "typeName": "PartsOf57600", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 883, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 884 + } + }, + "docs": [] + } + }, + { + "id": 884, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 346, + 885 + ] + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "AssignmentState" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ratio", + "type": 347, + "typeName": "PartsOf57600", + "docs": [] + }, + { + "name": "remaining", + "type": 347, + "typeName": "PartsOf57600", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "assigner_coretime", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssignmentsEmpty", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "DisallowedInsert", + "fields": [], + "index": 1, + "docs": [ + "assign_core is only allowed to append new assignments at the end of already existing", + "ones or update the last entry." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 887, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "ParaInfo" + ], + "params": [ + { + "name": "Account", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "manager", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "locked", + "type": 888, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 888, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 8 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 8, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [ + "pezkuwi_runtime_common", + "paras_registrar", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotRegistered", + "fields": [], + "index": 0, + "docs": [ + "The ID is not registered." + ] + }, + { + "name": "AlreadyRegistered", + "fields": [], + "index": 1, + "docs": [ + "The ID is already registered." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 2, + "docs": [ + "The caller is not the owner of this Id." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 3, + "docs": [ + "Invalid para code size." + ] + }, + { + "name": "HeadDataTooLarge", + "fields": [], + "index": 4, + "docs": [ + "Invalid para head data size." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 5, + "docs": [ + "Para is not a Teyrchain." + ] + }, + { + "name": "NotParathread", + "fields": [], + "index": 6, + "docs": [ + "Para is not a Parathread (on-demand teyrchain)." + ] + }, + { + "name": "CannotDeregister", + "fields": [], + "index": 7, + "docs": [ + "Cannot deregister para" + ] + }, + { + "name": "CannotDowngrade", + "fields": [], + "index": 8, + "docs": [ + "Cannot schedule downgrade of lease holding teyrchain to on-demand teyrchain" + ] + }, + { + "name": "CannotUpgrade", + "fields": [], + "index": 9, + "docs": [ + "Cannot schedule upgrade of on-demand teyrchain to lease holding teyrchain" + ] + }, + { + "name": "ParaLocked", + "fields": [], + "index": 10, + "docs": [ + "Para is locked from manipulation by the manager. Must use teyrchain or relay chain", + "governance." + ] + }, + { + "name": "NotReserved", + "fields": [], + "index": 11, + "docs": [ + "The ID given for registration has not been reserved." + ] + }, + { + "name": "InvalidCode", + "fields": [], + "index": 12, + "docs": [ + "The validation code is invalid." + ] + }, + { + "name": "CannotSwap", + "fields": [], + "index": 13, + "docs": [ + "Cannot perform a teyrchain slot / lifecycle swap. Check that the state of both paras", + "are correct for the swap to work." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 890, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 589 + } + }, + "docs": [] + } + }, + { + "id": 891, + "type": { + "path": [ + "pezkuwi_runtime_common", + "slots", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParaNotOnboarding", + "fields": [], + "index": 0, + "docs": [ + "The teyrchain ID is not onboarding." + ] + }, + { + "name": "LeaseError", + "fields": [], + "index": 1, + "docs": [ + "There was an error with the lease." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 892, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 173 + ] + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 36, + "type": 894 + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 895 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 895, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 895, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 173, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [ + "pezkuwi_runtime_common", + "auctions", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AuctionInProgress", + "fields": [], + "index": 0, + "docs": [ + "This auction is already in progress." + ] + }, + { + "name": "LeasePeriodInPast", + "fields": [], + "index": 1, + "docs": [ + "The lease period is in the past." + ] + }, + { + "name": "ParaNotRegistered", + "fields": [], + "index": 2, + "docs": [ + "Para is not registered" + ] + }, + { + "name": "NotCurrentAuction", + "fields": [], + "index": 3, + "docs": [ + "Not a current auction." + ] + }, + { + "name": "NotAuction", + "fields": [], + "index": 4, + "docs": [ + "Not an auction." + ] + }, + { + "name": "AuctionEnded", + "fields": [], + "index": 5, + "docs": [ + "Auction has already ended." + ] + }, + { + "name": "AlreadyLeasedOut", + "fields": [], + "index": 6, + "docs": [ + "The para is already leased out for part of this range." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 897, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "FundInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "LeasePeriod", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "verifier", + "type": 339, + "typeName": "Option", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raised", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "cap", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "last_contribution", + "type": 898, + "typeName": "LastContribution", + "docs": [] + }, + { + "name": "first_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "LeasePeriod", + "docs": [] + }, + { + "name": "fund_index", + "type": 4, + "typeName": "FundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "LastContribution" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Never", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PreEnding", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ending", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 899, + "type": { + "path": [ + "pezkuwi_runtime_common", + "crowdloan", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FirstPeriodInPast", + "fields": [], + "index": 0, + "docs": [ + "The current lease period is more than the first lease period." + ] + }, + { + "name": "FirstPeriodTooFarInFuture", + "fields": [], + "index": 1, + "docs": [ + "The first lease period needs to at least be less than 3 `max_value`." + ] + }, + { + "name": "LastPeriodBeforeFirstPeriod", + "fields": [], + "index": 2, + "docs": [ + "Last lease period must be greater than first lease period." + ] + }, + { + "name": "LastPeriodTooFarInFuture", + "fields": [], + "index": 3, + "docs": [ + "The last lease period cannot be more than 3 periods after the first period." + ] + }, + { + "name": "CannotEndInPast", + "fields": [], + "index": 4, + "docs": [ + "The campaign ends before the current block number. The end must be in the future." + ] + }, + { + "name": "EndTooFarInFuture", + "fields": [], + "index": 5, + "docs": [ + "The end date for this crowdloan is not sensible." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 6, + "docs": [ + "There was an overflow." + ] + }, + { + "name": "ContributionTooSmall", + "fields": [], + "index": 7, + "docs": [ + "The contribution was below the minimum, `MinContribution`." + ] + }, + { + "name": "InvalidParaId", + "fields": [], + "index": 8, + "docs": [ + "Invalid fund index." + ] + }, + { + "name": "CapExceeded", + "fields": [], + "index": 9, + "docs": [ + "Contributions exceed maximum amount." + ] + }, + { + "name": "ContributionPeriodOver", + "fields": [], + "index": 10, + "docs": [ + "The contribution period has already ended." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 11, + "docs": [ + "The origin of this call is invalid." + ] + }, + { + "name": "NotTeyrchain", + "fields": [], + "index": 12, + "docs": [ + "This crowdloan does not correspond to a teyrchain." + ] + }, + { + "name": "LeaseActive", + "fields": [], + "index": 13, + "docs": [ + "This teyrchain lease is still active and retirement cannot yet begin." + ] + }, + { + "name": "BidOrLeaseActive", + "fields": [], + "index": 14, + "docs": [ + "This teyrchain's bid or lease is still active and withdraw cannot yet begin." + ] + }, + { + "name": "FundNotEnded", + "fields": [], + "index": 15, + "docs": [ + "The crowdloan has not yet ended." + ] + }, + { + "name": "NoContributions", + "fields": [], + "index": 16, + "docs": [ + "There are no contributions stored in this crowdloan." + ] + }, + { + "name": "NotReadyToDissolve", + "fields": [], + "index": 17, + "docs": [ + "The crowdloan is not ready to dissolve. Potentially still has a slot or in retirement", + "period." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 18, + "docs": [ + "Invalid signature." + ] + }, + { + "name": "MemoTooLarge", + "fields": [], + "index": 19, + "docs": [ + "The provided memo is too large." + ] + }, + { + "name": "AlreadyInNewRaise", + "fields": [], + "index": 20, + "docs": [ + "The fund is already in `NewRaise`" + ] + }, + { + "name": "VrfDelayInProgress", + "fields": [], + "index": 21, + "docs": [ + "No contributions allowed during the VRF delay" + ] + }, + { + "name": "NoLeasePeriod", + "fields": [], + "index": 22, + "docs": [ + "A lease period has not started yet, due to an offset in the starting block." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 900, + "type": { + "path": [ + "pezkuwi_runtime_teyrchains", + "coretime", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotBroker", + "fields": [], + "index": 0, + "docs": [ + "The paraid making the call is not the coretime brokerage system teyrchain." + ] + }, + { + "name": "RequestedFutureRevenue", + "fields": [], + "index": 1, + "docs": [ + "Requested revenue information `when` parameter was in the future from the current", + "block height." + ] + }, + { + "name": "AssetTransferFailed", + "fields": [], + "index": 2, + "docs": [ + "Failed to transfer assets to the coretime chain" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 901, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "QueryStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [ + { + "name": "responder", + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "maybe_match_querier", + "type": 902, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_notify", + "type": 903, + "typeName": "Option<(u8, u8)>", + "docs": [] + }, + { + "name": "timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "VersionNotifier", + "fields": [ + { + "name": "origin", + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ready", + "fields": [ + { + "name": "response", + "type": 905, + "typeName": "VersionedResponse", + "docs": [] + }, + { + "name": "at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 902, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 99 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 99, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 904 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 904, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 904, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [ + "xcm", + "VersionedResponse" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V3", + "fields": [ + { + "name": null, + "type": 365, + "typeName": "v3::Response", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "V4", + "fields": [ + { + "name": null, + "type": 391, + "typeName": "v4::Response", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "V5", + "fields": [ + { + "name": null, + "type": 409, + "typeName": "v5::Response", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 99 + ] + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 10, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 909 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 910, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 99, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 909 + } + }, + "docs": [] + } + }, + { + "id": 911, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "VersionMigrationStage" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "MigrateSupportedVersion", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "MigrateVersionNotifiers", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotifyCurrentTargets", + "fields": [ + { + "name": null, + "type": 912, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "MigrateAndNotifyOldTargets", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 912, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 444 + ] + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "RemoteLockedFungibleRecord" + ], + "params": [ + { + "name": "ConsumerIdentifier", + "type": 36 + }, + { + "name": "MaxConsumers", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "u128", + "docs": [] + }, + { + "name": "owner", + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "locker", + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "consumers", + "type": 915, + "typeName": "BoundedVec<(ConsumerIdentifier, u128), MaxConsumers>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 915, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 916 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 917, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 36, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 917, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 916 + } + }, + "docs": [] + } + }, + { + "id": 918, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 919 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 920, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 99 + ] + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 919 + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [ + "pallet_xcm", + "AuthorizedAliasesEntry" + ], + "params": [ + { + "name": "Ticket", + "type": 922 + }, + { + "name": "MAX", + "type": 923 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "aliasers", + "type": 924, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "ticket", + "type": 922, + "typeName": "Ticket", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [ + "frame_support", + "traits", + "storage", + "Disabled" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "MaxAuthorizedAliases" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 925 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 926, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [ + "xcm_runtime_apis", + "authorized_aliases", + "OriginAliaser" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "location", + "type": 99, + "typeName": "VersionedLocation", + "docs": [] + }, + { + "name": "expiry", + "type": 445, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 925 + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [ + "pallet_xcm", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [ + "The desired destination was unreachable, generally because there is a no way of routing", + "to it." + ] + }, + { + "name": "SendFailure", + "fields": [], + "index": 1, + "docs": [ + "There was some other issue (i.e. not to do with routing) in sending the message.", + "Perhaps a lack of space for buffering the message." + ] + }, + { + "name": "Filtered", + "fields": [], + "index": 2, + "docs": [ + "The message execution fails the filter." + ] + }, + { + "name": "UnweighableMessage", + "fields": [], + "index": 3, + "docs": [ + "The message's weight could not be determined." + ] + }, + { + "name": "DestinationNotInvertible", + "fields": [], + "index": 4, + "docs": [ + "The destination `Location` provided cannot be inverted." + ] + }, + { + "name": "Empty", + "fields": [], + "index": 5, + "docs": [ + "The assets to be sent are empty." + ] + }, + { + "name": "CannotReanchor", + "fields": [], + "index": 6, + "docs": [ + "Could not re-anchor the assets to declare the fees for the destination chain." + ] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 7, + "docs": [ + "Too many assets have been attempted for transfer." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 8, + "docs": [ + "Origin is invalid for sending." + ] + }, + { + "name": "BadVersion", + "fields": [], + "index": 9, + "docs": [ + "The version of the `Versioned` value used is not able to be interpreted." + ] + }, + { + "name": "BadLocation", + "fields": [], + "index": 10, + "docs": [ + "The given location could not be used (e.g. because it cannot be expressed in the", + "desired version of XCM)." + ] + }, + { + "name": "NoSubscription", + "fields": [], + "index": 11, + "docs": [ + "The referenced subscription could not be found." + ] + }, + { + "name": "AlreadySubscribed", + "fields": [], + "index": 12, + "docs": [ + "The location is invalid since it already has a subscription from us." + ] + }, + { + "name": "CannotCheckOutTeleport", + "fields": [], + "index": 13, + "docs": [ + "Could not check-out the assets for teleportation to the destination chain." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 14, + "docs": [ + "The owner does not own (all) of the asset that they wish to do the operation on." + ] + }, + { + "name": "TooManyLocks", + "fields": [], + "index": 15, + "docs": [ + "The asset owner has too many locks on the asset." + ] + }, + { + "name": "AccountNotSovereign", + "fields": [], + "index": 16, + "docs": [ + "The given account is not an identifiable sovereign account for any location." + ] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 17, + "docs": [ + "The operation required fees to be paid which the initiator could not meet." + ] + }, + { + "name": "LockNotFound", + "fields": [], + "index": 18, + "docs": [ + "A remote lock with the corresponding data could not be found." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 19, + "docs": [ + "The unlock operation cannot succeed because there are still consumers of the lock." + ] + }, + { + "name": "InvalidAssetUnknownReserve", + "fields": [], + "index": 21, + "docs": [ + "Invalid asset, reserve chain could not be determined for it." + ] + }, + { + "name": "InvalidAssetUnsupportedReserve", + "fields": [], + "index": 22, + "docs": [ + "Invalid asset, do not support remote asset reserves with different fees reserves." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 23, + "docs": [ + "Too many assets with different reserve locations have been attempted for transfer." + ] + }, + { + "name": "LocalExecutionIncomplete", + "fields": [], + "index": 24, + "docs": [ + "Local XCM execution incomplete." + ] + }, + { + "name": "TooManyAuthorizedAliases", + "fields": [], + "index": 25, + "docs": [ + "Too many locations authorized to alias origin." + ] + }, + { + "name": "ExpiresInPast", + "fields": [], + "index": 26, + "docs": [ + "Expiry block number is in the past." + ] + }, + { + "name": "AliasNotFound", + "fields": [], + "index": 27, + "docs": [ + "The alias to remove authorization for was not found." + ] + }, + { + "name": "LocalExecutionIncompleteWithError", + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "InstructionIndex", + "docs": [] + }, + { + "name": "error", + "type": 928, + "typeName": "ExecutionError", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Local XCM execution incomplete with the actual XCM error and the index of the", + "instruction that caused the error." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 928, + "type": { + "path": [ + "pallet_xcm", + "errors", + "ExecutionError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Overflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Unimplemented", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UntrustedReserveLocation", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UntrustedTeleportLocation", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "LocationFull", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LocationNotInvertible", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "InvalidLocation", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "FailedToTransactAsset", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "NotWithdrawable", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "LocationCannotHold", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "ExceedsMaxMessageSize", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DestinationUnsupported", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Transport", + "fields": [], + "index": 14, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 15, + "docs": [] + }, + { + "name": "UnknownClaim", + "fields": [], + "index": 16, + "docs": [] + }, + { + "name": "FailedToDecode", + "fields": [], + "index": 17, + "docs": [] + }, + { + "name": "MaxWeightInvalid", + "fields": [], + "index": 18, + "docs": [] + }, + { + "name": "NotHoldingFees", + "fields": [], + "index": 19, + "docs": [] + }, + { + "name": "TooExpensive", + "fields": [], + "index": 20, + "docs": [] + }, + { + "name": "Trap", + "fields": [], + "index": 21, + "docs": [] + }, + { + "name": "ExpectationFalse", + "fields": [], + "index": 22, + "docs": [] + }, + { + "name": "PalletNotFound", + "fields": [], + "index": 23, + "docs": [] + }, + { + "name": "NameMismatch", + "fields": [], + "index": 24, + "docs": [] + }, + { + "name": "VersionIncompatible", + "fields": [], + "index": 25, + "docs": [] + }, + { + "name": "HoldingWouldOverflow", + "fields": [], + "index": 26, + "docs": [] + }, + { + "name": "ExportError", + "fields": [], + "index": 27, + "docs": [] + }, + { + "name": "ReanchorFailed", + "fields": [], + "index": 28, + "docs": [] + }, + { + "name": "NoDeal", + "fields": [], + "index": 29, + "docs": [] + }, + { + "name": "FeesNotMet", + "fields": [], + "index": 30, + "docs": [] + }, + { + "name": "LockError", + "fields": [], + "index": 31, + "docs": [] + }, + { + "name": "NoPermission", + "fields": [], + "index": 32, + "docs": [] + }, + { + "name": "Unanchored", + "fields": [], + "index": 33, + "docs": [] + }, + { + "name": "NotDepositable", + "fields": [], + "index": 34, + "docs": [] + }, + { + "name": "TooManyAssets", + "fields": [], + "index": 35, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 36, + "docs": [] + }, + { + "name": "WeightLimitReached", + "fields": [], + "index": 37, + "docs": [] + }, + { + "name": "Barrier", + "fields": [], + "index": 38, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 39, + "docs": [] + }, + { + "name": "ExceedsStackLimit", + "fields": [], + "index": 40, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 447 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 930, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 930, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 931 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 931, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 931, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 447 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 447, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 447, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 932, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 447, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 933, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 934, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 934, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 935, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 936, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 937, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 151 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 938, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 151 + } + }, + "docs": [] + } + }, + { + "id": 939, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidDoubleVotingProof", + "fields": [], + "index": 1, + "docs": [ + "A double voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidForkVotingProof", + "fields": [], + "index": 2, + "docs": [ + "A fork voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidFutureBlockVotingProof", + "fields": [], + "index": 3, + "docs": [ + "A future block voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProofSession", + "fields": [], + "index": 4, + "docs": [ + "The session of the equivocation proof is invalid" + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 5, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 6, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 940, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 13, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 941, + "type": { + "path": [ + "pallet_rc_migrator", + "accounts", + "AccountState" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Preserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Part", + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "pallet_rc_migrator", + "accounts", + "MigratedBalances" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "kept", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "migrated", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 943, + "type": { + "path": [ + "pallet_rc_migrator", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unreachable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OutOfWeight", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "XcmError", + "fields": [], + "index": 2, + "docs": [ + "Failed to send XCM message to AH." + ] + }, + { + "name": "FailedToWithdrawAccount", + "fields": [], + "index": 3, + "docs": [ + "Failed to withdraw account from RC for migration to AH." + ] + }, + { + "name": "PastBlockNumber", + "fields": [], + "index": 4, + "docs": [ + "Indicates that the specified block number is in the past." + ] + }, + { + "name": "EraEndsTooSoon", + "fields": [], + "index": 5, + "docs": [ + "Indicates that there is not enough time for staking to lock.", + "", + "Schedule the migration at least two sessions before the current era ends." + ] + }, + { + "name": "BalanceOverflow", + "fields": [], + "index": 6, + "docs": [ + "Balance accounting overflow." + ] + }, + { + "name": "BalanceUnderflow", + "fields": [], + "index": 7, + "docs": [ + "Balance accounting underflow." + ] + }, + { + "name": "InvalidQueryResponse", + "fields": [], + "index": 8, + "docs": [ + "The query response is invalid." + ] + }, + { + "name": "QueryNotFound", + "fields": [], + "index": 9, + "docs": [ + "The xcm query was not found." + ] + }, + { + "name": "XcmSendError", + "fields": [], + "index": 10, + "docs": [ + "Failed to send XCM message." + ] + }, + { + "name": "UnreachableStage", + "fields": [], + "index": 11, + "docs": [ + "The migration stage is not reachable from the current stage." + ] + }, + { + "name": "InvalidParameter", + "fields": [], + "index": 12, + "docs": [ + "Invalid parameter." + ] + }, + { + "name": "AhUmpQueuePriorityAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The AH UMP queue priority configuration is already set." + ] + }, + { + "name": "AccountReferenced", + "fields": [], + "index": 14, + "docs": [ + "The account is referenced by some other pallet. It might have freezes or holds." + ] + }, + { + "name": "BadXcmVersion", + "fields": [], + "index": 15, + "docs": [ + "The XCM version is invalid." + ] + }, + { + "name": "InvalidOrigin", + "fields": [], + "index": 16, + "docs": [ + "The origin is invalid." + ] + }, + { + "name": "InvalidStageTransition", + "fields": [], + "index": 17, + "docs": [ + "The stage transition is invalid." + ] + }, + { + "name": "UnsignedValidationFailed", + "fields": [], + "index": 18, + "docs": [ + "Unsigned validation failed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 944, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 945, + 946, + 947, + 948, + 949, + 951, + 952, + 953, + 954, + 955 + ] + }, + "docs": [] + } + }, + { + "id": 945, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 946, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 947, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 948, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 949, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 950, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 950, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 951, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 63, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 952, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 953, + "type": { + "path": [ + "pallet_transaction_payment", + "ChargeTransactionPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 67, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 954, + "type": { + "path": [ + "pezkuwi_runtime_common", + "claims", + "PrevalidateAttests" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 955, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 956, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 956, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 957, + "type": { + "path": [ + "pezkuwi_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 958, + "type": { + "path": [ + "relay_common", + "apis", + "InflationInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "inflation", + "type": 959, + "typeName": "sp_runtime::Perquintill", + "docs": [] + }, + { + "name": "next_mint", + "type": 960, + "typeName": "(pezkuwi_primitives::Balance, pezkuwi_primitives::Balance)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 959, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 960, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 961, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 117 + }, + { + "name": "Extrinsic", + "type": 962 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 117, + "typeName": "Header", + "docs": [] + }, + { + "name": "extrinsics", + "type": 963, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 962, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 126 + }, + { + "name": "Call", + "type": 106 + }, + { + "name": "Signature", + "type": 342 + }, + { + "name": "Extra", + "type": 944 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 963, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 962 + } + }, + "docs": [] + } + }, + { + "id": 964, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyInherents", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 965, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 966, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 965 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 965, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 967, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 35 + }, + { + "name": "E", + "type": 968 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 35, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 968, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 968, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 969, + "typeName": "InvalidTransaction", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Unknown", + "fields": [ + { + "name": null, + "type": 970, + "typeName": "UnknownTransaction", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 969, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Payment", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Future", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Stale", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BadProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExhaustsResources", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BadMandatory", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "MandatoryValidation", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "BadSigner", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IndeterminateImplicit", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 12, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 970, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoUnsignedValidator", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 971, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 972, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 972, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 364 + }, + { + "name": "V", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 973, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 973, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 974 + } + }, + "docs": [] + } + }, + { + "id": 974, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 364, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 975, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "errors", + "type": 971, + "typeName": "InherentData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 976, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 977, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "External", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 978, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 979 + }, + { + "name": "E", + "type": 968 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 979, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 968, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 979, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority", + "docs": [] + }, + { + "name": "requires", + "type": 110, + "typeName": "Vec", + "docs": [] + }, + { + "name": "provides", + "type": 110, + "typeName": "Vec", + "docs": [] + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity", + "docs": [] + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 980, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 816, + 981 + ] + }, + "docs": [] + } + }, + { + "id": 981, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "GroupRotationInfo" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "session_start_block", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "group_rotation_frequency", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "now", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 982, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 983 + } + }, + "docs": [] + } + }, + { + "id": 983, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CoreState" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Occupied", + "fields": [ + { + "name": null, + "type": 984, + "typeName": "OccupiedCore", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduled", + "fields": [ + { + "name": null, + "type": 986, + "typeName": "ScheduledCore", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Free", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 984, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "OccupiedCore" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "next_up_on_available", + "type": 985, + "typeName": "Option", + "docs": [] + }, + { + "name": "occupied_since", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "time_out_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_up_on_time_out", + "type": 985, + "typeName": "Option", + "docs": [] + }, + { + "name": "availability", + "type": 293, + "typeName": "BitVec", + "docs": [] + }, + { + "name": "group_responsible", + "type": 541, + "typeName": "GroupIndex", + "docs": [] + }, + { + "name": "candidate_hash", + "type": 316, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "candidate_descriptor", + "type": 300, + "typeName": "CandidateDescriptorV2", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 985, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 986 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 986, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 986, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "ScheduledCore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "para_id", + "type": 173, + "typeName": "Id", + "docs": [] + }, + { + "name": "collator", + "type": 987, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 987, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 988 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 988, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 988, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "collator_app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 989, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "OccupiedCoreAssumption" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Included", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Free", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 990, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 991 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 991, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 991, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "PersistedValidationData" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_head", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "relay_parent_storage_root", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 992, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 993 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 993, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 993, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 991, + 303 + ] + }, + "docs": [] + } + }, + { + "id": 994, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 299 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 299, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 995, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 996 + } + }, + "docs": [] + } + }, + { + "id": 996, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "CandidateEvent" + ], + "params": [ + { + "name": "H", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CandidateBacked", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "CandidateReceiptV2", + "docs": [] + }, + { + "name": null, + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 540, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 541, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "CandidateIncluded", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "CandidateReceiptV2", + "docs": [] + }, + { + "name": null, + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 540, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": null, + "type": 541, + "typeName": "GroupIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "CandidateTimedOut", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "CandidateReceiptV2", + "docs": [] + }, + { + "name": null, + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": null, + "type": 540, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 997, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 173 + }, + { + "name": "V", + "type": 846 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 998, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 998, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 999 + } + }, + "docs": [] + } + }, + { + "id": 999, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 173, + 846 + ] + }, + "docs": [] + } + }, + { + "id": 1000, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 810 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 810, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1001, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 852 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 852, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1002, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 303 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 303, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1003, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1004 + } + }, + "docs": [] + } + }, + { + "id": 1004, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 316, + 856 + ] + }, + "docs": [] + } + }, + { + "id": 1005, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 279 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 279, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1006, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1007 + } + }, + "docs": [] + } + }, + { + "id": 1007, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 316, + 1008 + ] + }, + "docs": [] + } + }, + { + "id": 1008, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "PendingSlashes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "keys", + "type": 860, + "typeName": "BTreeMap", + "docs": [] + }, + { + "name": "kind", + "type": 1009, + "typeName": "SlashingOffenceKind", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1009, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "SlashingOffenceKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ForInvalid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AgainstValid", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1010, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1011 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1011, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1011, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "OpaqueKeyOwnershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1012, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "slashing", + "DisputeProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "time_slot", + "type": 331, + "typeName": "DisputesTimeSlot", + "docs": [] + }, + { + "name": "kind", + "type": 1009, + "typeName": "SlashingOffenceKind", + "docs": [] + }, + { + "name": "validator_index", + "type": 295, + "typeName": "ValidatorIndex", + "docs": [] + }, + { + "name": "validator_id", + "type": 148, + "typeName": "ValidatorId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1013, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1014 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1014, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1014, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "async_backing", + "BackingState" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "constraints", + "type": 1015, + "typeName": "crate::async_backing::Constraints", + "docs": [] + }, + { + "name": "pending_availability", + "type": 1023, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1015, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "Constraints" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "min_relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_ump_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "dmp_remaining_messages", + "type": 134, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hrmp_inbound", + "type": 1016, + "typeName": "InboundHrmpLimitations", + "docs": [] + }, + { + "name": "hrmp_channels_out", + "type": 1017, + "typeName": "Vec<(Id, OutboundHrmpChannelLimitations)>", + "docs": [] + }, + { + "name": "max_hrmp_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "required_parent", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "upgrade_restriction", + "type": 1020, + "typeName": "Option", + "docs": [] + }, + { + "name": "future_validation_code", + "type": 1021, + "typeName": "Option<(N, ValidationCodeHash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1016, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "InboundHrmpLimitations" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "valid_watermarks", + "type": 134, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1017, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1018 + } + }, + "docs": [] + } + }, + { + "id": 1018, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 173, + 1019 + ] + }, + "docs": [] + } + }, + { + "id": 1019, + "type": { + "path": [ + "pezkuwi_primitives", + "v8", + "async_backing", + "OutboundHrmpChannelLimitations" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bytes_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "messages_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1020, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 836 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 836, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1021, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1022 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1022, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1022, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 303 + ] + }, + "docs": [] + } + }, + { + "id": 1023, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1024 + } + }, + "docs": [] + } + }, + { + "id": 1024, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "async_backing", + "CandidatePendingAvailability" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "candidate_hash", + "type": 316, + "typeName": "CandidateHash", + "docs": [] + }, + { + "name": "descriptor", + "type": 300, + "typeName": "CandidateDescriptorV2", + "docs": [] + }, + { + "name": "commitments", + "type": 304, + "typeName": "CandidateCommitments", + "docs": [] + }, + { + "name": "relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1025, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 540 + }, + { + "name": "V", + "type": 827 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1026, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1026, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1027 + } + }, + "docs": [] + } + }, + { + "id": 1027, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 540, + 827 + ] + }, + "docs": [] + } + }, + { + "id": 1028, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 299 + } + }, + "docs": [] + } + }, + { + "id": 1029, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1030 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1030, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1030, + "type": { + "path": [ + "pezkuwi_primitives", + "vstaging", + "async_backing", + "Constraints" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "min_relay_parent_number", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "max_pov_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_code_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_head_data_size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ump_remaining_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_ump_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "dmp_remaining_messages", + "type": 134, + "typeName": "Vec", + "docs": [] + }, + { + "name": "hrmp_inbound", + "type": 1016, + "typeName": "InboundHrmpLimitations", + "docs": [] + }, + { + "name": "hrmp_channels_out", + "type": 1017, + "typeName": "Vec<(Id, OutboundHrmpChannelLimitations)>", + "docs": [] + }, + { + "name": "max_hrmp_num_per_candidate", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "required_parent", + "type": 311, + "typeName": "HeadData", + "docs": [] + }, + { + "name": "validation_code_hash", + "type": 303, + "typeName": "ValidationCodeHash", + "docs": [] + }, + { + "name": "upgrade_restriction", + "type": 1020, + "typeName": "Option", + "docs": [] + }, + { + "name": "future_validation_code", + "type": 1021, + "typeName": "Option<(N, ValidationCodeHash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1031, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1032 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1032, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1032, + "type": { + "path": [ + "sp_consensus_beefy", + "ValidatorSet" + ], + "params": [ + { + "name": "AuthorityId", + "type": 151 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 938, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1033, + "type": { + "path": [ + "sp_runtime", + "OpaqueValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1034, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 117 + }, + { + "name": "Id", + "type": 151 + }, + { + "name": "AncestryProof", + "type": 1033 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 454, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 1033, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 117, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1035, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1033 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1033, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1036, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 1037 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1037, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1037, + "type": { + "path": [ + "sp_mmr_primitives", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNumericOp", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Push", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "GetRoot", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Commit", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "GenerateProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Verify", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "LeafNotFound", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "PalletNotIncluded", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "InvalidLeafIndex", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidBestKnownBlock", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1038, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 12 + }, + { + "name": "E", + "type": 1037 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1037, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1039, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1040 + }, + { + "name": "E", + "type": 1037 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1040, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1037, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1040, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1041, + 1043 + ] + }, + "docs": [] + } + }, + { + "id": 1041, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1042 + } + }, + "docs": [] + } + }, + { + "id": 1042, + "type": { + "path": [ + "sp_mmr_primitives", + "EncodableOpaqueLeaf" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1043, + "type": { + "path": [ + "sp_mmr_primitives", + "LeafProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "leaf_indices", + "type": 754, + "typeName": "Vec", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1044, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 1037 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 36, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1037, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1045, + "type": { + "path": [ + "sp_consensus_babe", + "BabeConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "slot_duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "epoch_length", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "c", + "type": 122, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "authorities", + "type": 598, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 123, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1046, + "type": { + "path": [ + "sp_consensus_babe", + "Epoch" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "epoch_index", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "start_slot", + "type": 119, + "typeName": "Slot", + "docs": [] + }, + { + "name": "duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "authorities", + "type": 598, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "config", + "type": 607, + "typeName": "BabeEpochConfiguration", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1047, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1048 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1048, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1048, + "type": { + "path": [ + "sp_consensus_babe", + "OpaqueKeyOwnershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1049, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1050 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1050, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1050, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1051 + } + }, + "docs": [] + } + }, + { + "id": 1051, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 666 + ] + }, + "docs": [] + } + }, + { + "id": 1052, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "prefix", + "type": 51, + "typeName": "[u8; 16]", + "docs": [] + }, + { + "name": "suffix", + "type": 51, + "typeName": "[u8; 16]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1053, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "E", + "type": 1054 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1054, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1054, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionDispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotImplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotFound", + "fields": [ + { + "name": null, + "type": 1052, + "typeName": "ViewFunctionId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Codec", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1055, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1056, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 1057, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1057, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1058 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1058, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1058, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1059, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1060 + }, + { + "name": "E", + "type": 1061 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1060, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1061, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1060, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 444 + } + }, + "docs": [] + } + }, + { + "id": 1061, + "type": { + "path": [ + "xcm_runtime_apis", + "fees", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "WeightNotComputable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnhandledXcmVersion", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "AssetNotFound", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Unroutable", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1062, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 10 + }, + { + "name": "E", + "type": 1061 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1061, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1063, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "E", + "type": 1061 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1061, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1064, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 431 + }, + { + "name": "E", + "type": 1061 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 431, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1061, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1065, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1066 + }, + { + "name": "E", + "type": 1072 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1066, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1072, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1066, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "CallDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 516, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1067, + "typeName": "Vec", + "docs": [] + }, + { + "name": "local_xcm", + "type": 1068, + "typeName": "Option>", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1069, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1067, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 21 + } + }, + "docs": [] + } + }, + { + "id": 1068, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 355 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 355, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1069, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1070 + } + }, + "docs": [] + } + }, + { + "id": 1070, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 99, + 1071 + ] + }, + "docs": [] + } + }, + { + "id": 1071, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 355 + } + }, + "docs": [] + } + }, + { + "id": 1072, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unimplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1073, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1074 + }, + { + "name": "E", + "type": 1072 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1074, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1072, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1074, + "type": { + "path": [ + "xcm_runtime_apis", + "dry_run", + "XcmDryRunEffects" + ], + "params": [ + { + "name": "Event", + "type": 21 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "execution_result", + "type": 557, + "typeName": "Outcome", + "docs": [] + }, + { + "name": "emitted_events", + "type": 1067, + "typeName": "Vec", + "docs": [] + }, + { + "name": "forwarded_xcms", + "type": 1069, + "typeName": "Vec<(VersionedLocation, Vec>)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1075, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "E", + "type": 1076 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1076, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1076, + "type": { + "path": [ + "xcm_runtime_apis", + "conversions", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Unsupported", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "VersionedConversionFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1077, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 36 + }, + { + "name": "E", + "type": 569 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 36, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 569, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1078, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 569 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 569, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1079, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 569 + } + }, + "docs": [] + } + }, + { + "id": 1080, + "type": { + "path": [ + "pezkuwi_runtime", + "RuntimeError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 581, + "typeName": "frame_system::Error", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 587, + "typeName": "pallet_scheduler::Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 595, + "typeName": "pallet_preimage::Error", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 611, + "typeName": "pallet_babe::Error", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 613, + "typeName": "pallet_indices::Error", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 636, + "typeName": "pallet_balances::Error", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 656, + "typeName": "pallet_staking::Error", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 667, + "typeName": "pallet_session::Error", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 671, + "typeName": "pallet_grandpa::Error", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 680, + "typeName": "pallet_treasury::Error", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 692, + "typeName": "pallet_conviction_voting::Error", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 710, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 711, + "typeName": "pallet_whitelist::Error", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Claims", + "fields": [ + { + "name": null, + "type": 712, + "typeName": "claims::Error", + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 716, + "typeName": "pallet_vesting::Error", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 717, + "typeName": "pallet_utility::Error", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 726, + "typeName": "pallet_proxy::Error", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 729, + "typeName": "pallet_multisig::Error", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 733, + "typeName": "pallet_bounties::Error", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 736, + "typeName": "pallet_child_bounties::Error", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 751, + "typeName": "pallet_election_provider_multi_phase::Error", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 755, + "typeName": "pallet_bags_list::Error", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 772, + "typeName": "pallet_nomination_pools::Error", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 777, + "typeName": "pallet_fast_unstake::Error", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 780, + "typeName": "pallet_delegated_staking::Error", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "StakingAhClient", + "fields": [ + { + "name": null, + "type": 789, + "typeName": "pallet_staking_async_ah_client::Error", + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Configuration", + "fields": [ + { + "name": null, + "type": 793, + "typeName": "teyrchains_configuration::Error", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "ParaInclusion", + "fields": [ + { + "name": null, + "type": 809, + "typeName": "teyrchains_inclusion::Error", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ParaInherent", + "fields": [ + { + "name": null, + "type": 815, + "typeName": "teyrchains_paras_inherent::Error", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Paras", + "fields": [ + { + "name": null, + "type": 838, + "typeName": "teyrchains_paras::Error", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Hrmp", + "fields": [ + { + "name": null, + "type": 850, + "typeName": "teyrchains_hrmp::Error", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "ParasDisputes", + "fields": [ + { + "name": null, + "type": 858, + "typeName": "teyrchains_disputes::Error", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "ParasSlashing", + "fields": [ + { + "name": null, + "type": 863, + "typeName": "teyrchains_slashing::Error", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "OnDemand", + "fields": [ + { + "name": null, + "type": 875, + "typeName": "teyrchains_on_demand::Error", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "CoretimeAssignmentProvider", + "fields": [ + { + "name": null, + "type": 886, + "typeName": "teyrchains_assigner_coretime::Error", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Registrar", + "fields": [ + { + "name": null, + "type": 889, + "typeName": "paras_registrar::Error", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Slots", + "fields": [ + { + "name": null, + "type": 891, + "typeName": "slots::Error", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Auctions", + "fields": [ + { + "name": null, + "type": 896, + "typeName": "auctions::Error", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Crowdloan", + "fields": [ + { + "name": null, + "type": 899, + "typeName": "crowdloan::Error", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Coretime", + "fields": [ + { + "name": null, + "type": 900, + "typeName": "coretime::Error", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 555, + "typeName": "pallet_state_trie_migration::Error", + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "XcmPallet", + "fields": [ + { + "name": null, + "type": 927, + "typeName": "pallet_xcm::Error", + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 935, + "typeName": "pallet_message_queue::Error", + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 936, + "typeName": "pallet_asset_rate::Error", + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 939, + "typeName": "pallet_beefy::Error", + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "RcMigrator", + "fields": [ + { + "name": null, + "type": 943, + "typeName": "pallet_rc_migrator::Error", + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v15/pezkuwi-ver.ts b/packages/types-support/src/metadata/v15/pezkuwi-ver.ts new file mode 100644 index 0000000..903a26b --- /dev/null +++ b/packages/types-support/src/metadata/v15/pezkuwi-ver.ts @@ -0,0 +1,115 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "specName": "pezkuwi", + "implName": "parity-pezkuwi", + "authoringVersion": 0, + "specVersion": 2000000, + "implVersion": 0, + "apis": [ + [ + "0xc51ff1fa3f5d0cca", + 1 + ], + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xaf2c0297a23e6d3d", + 13 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x2a5e924655399e60", + 1 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0xccd9de6396c899ca", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x6ff52ee858e6c5bd", + 1 + ], + [ + "0x91b1c8b16328eb92", + 2 + ], + [ + "0x9ffb505aa738d69c", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ] + ], + "transactionVersion": 26, + "systemVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v16/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v16/bizinikiwi-hex.ts new file mode 100644 index 0000000..1883308 --- /dev/null +++ b/packages/types-support/src/metadata/v16/bizinikiwi-hex.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default '0x015aae2a006d65746110c511000c1c73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c08306672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c3c70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c3c70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c2873705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c102873705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044102873705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c00000250005008306672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c01147068617365a108011450686173650001146576656e7454010445000118746f70696373210501185665633c543e000054084c6b69746368656e73696e6b5f72756e74696d653052756e74696d654576656e74000125011853797374656d04005801706672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c5574696c697479040080015470616c6c65745f7574696c6974793a3a4576656e740001001c496e646963657304008c017870616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0005002042616c616e636573040090017c70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e7404009801a870616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e000700604173736574436f6e76657273696f6e54785061796d656e7404009c01c870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e743a3a4576656e743c52756e74696d653e00090068456c656374696f6e50726f76696465724d756c746950686173650400a401d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4576656e743c52756e74696d653e000a001c5374616b696e670400bc017870616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e000b001c53657373696f6e0400d8017870616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e000c002444656d6f63726163790400dc018070616c6c65745f64656d6f63726163793a3a4576656e743c52756e74696d653e000d001c436f756e63696c0400f001fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400f401fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024456c656374696f6e730400f801a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4576656e743c52756e74696d653e0010004c546563686e6963616c4d656d626572736869700400050101fc70616c6c65745f6d656d626572736869703a3a4576656e743c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e0011001c4772616e64706104000901015470616c6c65745f6772616e6470613a3a4576656e7400120020547265617375727904001901017c70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e0013002441737365745261746504001d01018470616c6c65745f61737365745f726174653a3a4576656e743c52756e74696d653e00140024436f6e74726163747304002501018070616c6c65745f636f6e7472616374733a3a4576656e743c52756e74696d653e001500105375646f04003101016c70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00160020496d4f6e6c696e6504003501018070616c6c65745f696d5f6f6e6c696e653a3a4576656e743c52756e74696d653e001700204f6666656e63657304004501015870616c6c65745f6f6666656e6365733a3a4576656e7400190028486973746f726963616c04004d0101a470616c6c65745f73657373696f6e5f686973746f726963616c3a3a4576656e743c52756e74696d653e001a00204964656e7469747904005101017c70616c6c65745f6964656e746974793a3a4576656e743c52756e74696d653e001c001c536f636965747904005901017870616c6c65745f736f63696574793a3a4576656e743c52756e74696d653e001d00205265636f7665727904006501017c70616c6c65745f7265636f766572793a3a4576656e743c52756e74696d653e001e001c56657374696e6704006d01017870616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001f00245363686564756c657204007101018070616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e0020001c476c7574746f6e04007d01015470616c6c65745f676c7574746f6e3a3a4576656e7400210020507265696d61676504008501017c70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e0022001450726f787904008901017070616c6c65745f70726f78793a3a4576656e743c52756e74696d653e002300204d756c746973696704009901017c70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e00240020426f756e746965730400a101017c70616c6c65745f626f756e746965733a3a4576656e743c52756e74696d653e00250010546970730400a501016c70616c6c65745f746970733a3a4576656e743c52756e74696d653e002600184173736574730400a90101dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e00270028506f6f6c4173736574730400ad0101dc70616c6c65745f6173736574733a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e0028001c4c6f74746572790400b101017870616c6c65745f6c6f74746572793a3a4576656e743c52756e74696d653e002c000c4e69730400b901016870616c6c65745f6e69733a3a4576656e743c52756e74696d653e002d001c556e69717565730400c101017870616c6c65745f756e69717565733a3a4576656e743c52756e74696d653e002e00104e6674730400d101016c70616c6c65745f6e6674733a3a4576656e743c52756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400ed0101b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4576656e743c52756e74696d653e0030001853616c6172790400f101017470616c6c65745f73616c6172793a3a4576656e743c52756e74696d653e00310038436f726546656c6c6f77736869700400f501019870616c6c65745f636f72655f66656c6c6f77736869703a3a4576656e743c52756e74696d653e003200485472616e73616374696f6e53746f726167650400150201a870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a4576656e743c52756e74696d653e00330024566f7465724c6973740400190201f470616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e003400485374617465547269654d6967726174696f6e04001d0201ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e003500344368696c64426f756e7469657304002902019470616c6c65745f6368696c645f626f756e746965733a3a4576656e743c52756e74696d653e003600245265666572656e646104002d02018070616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0037001852656d61726b0400c907017470616c6c65745f72656d61726b3a3a4576656e743c52756e74696d653e0038002c526f6f7454657374696e670400cd07018c70616c6c65745f726f6f745f74657374696e673a3a4576656e743c52756e74696d653e00390040436f6e76696374696f6e566f74696e670400d10701a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e003a002457686974656c6973740400d507018070616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400e90701fc70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020416c6c69616e63650400ed07017c70616c6c65745f616c6c69616e63653a3a4576656e743c52756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400f107019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4576656e743c52756e74696d653e003e002c52616e6b6564506f6c6c730400f90701f470616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e003f004052616e6b6564436f6c6c6563746976650400010801a070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4576656e743c52756e74696d653e0040003c4173736574436f6e76657273696f6e04000908019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4576656e743c52756e74696d653e0041002c46617374556e7374616b6504001d08018c70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e004200304d657373616765517565756504002108019070616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e0043000c506f760400290801b46672616d655f62656e63686d61726b696e675f70616c6c65745f706f763a3a4576656e743c52756e74696d653e0044001c5478506175736504002d08017c70616c6c65745f74785f70617573653a3a4576656e743c52756e74696d653e00450020536166654d6f646504003108018070616c6c65745f736166655f6d6f64653a3a4576656e743c52756e74696d653e0046002453746174656d656e7404003908018070616c6c65745f73746174656d656e743a3a4576656e743c52756e74696d653e004700504d756c7469426c6f636b4d6967726174696f6e7304004d08018470616c6c65745f6d6967726174696f6e733a3a4576656e743c52756e74696d653e0048001842726f6b657204005108017470616c6c65745f62726f6b65723a3a4576656e743c52756e74696d653e00490028506172616d657465727304006508018470616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e004c0048536b69704665656c6573735061796d656e740400850801ac70616c6c65745f736b69705f6665656c6573735f7061796d656e743a3a4576656e743c52756e74696d653e004d00604173736574436f6e76657273696f6e4d6967726174696f6e0400890801ac70616c6c65745f61737365745f636f6e76657273696f6e5f6f70733a3a4576656e743c52756e74696d653e004f001852657669766504008d08017470616c6c65745f7265766976653a3a4576656e743c52756e74696d653e0050004044656c6567617465645374616b696e670400910801a070616c6c65745f64656c6567617465645f7374616b696e673a3a4576656e743c52756e74696d653e0052003041737365745265776172647304009508019070616c6c65745f61737365745f726577617264733a3a4576656e743c52756e74696d653e00530034417373657473467265657a657204009908011d0170616c6c65745f6173736574735f667265657a65723a3a4576656e743c52756e74696d652c2070616c6c65745f6173736574735f667265657a65723a3a496e7374616e6365313e005400184d657461547804009d08017870616c6c65745f6d6574615f74783a3a4576656e743c52756e74696d653e00590000580c306672616d655f73797374656d1870616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e04704576656e7420666f72207468652053797374656d2070616c6c65742e5c08306672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c346672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c346672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068082873705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c082873705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070082873705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074083473705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078082873705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c2873705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c3870616c6c65745f7574696c6974791870616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c748401384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574840418526573756c740804540188044501680108084f6b040088000000000c45727204006800000100008800000400008c0c3870616c6c65745f696e64696365731870616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574900c3c70616c6c65745f62616c616e6365731870616c6c6574144576656e740804540004490001581c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475739401185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000b049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000d04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e744964000e0460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e6365000f042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650010042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500110460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500120468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001504ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749414346672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e6365537461747573000108104672656500000020526573657276656400010000980c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741870616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749c0c8870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e741870616c6c6574144576656e7404045400010838417373657454784665655061696410010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e00012061737365745f6964a00128543a3a41737365744964000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652cb8686173206265656e2070616964206279206077686f6020696e20616e206173736574206061737365745f6964602e444173736574526566756e644661696c65640401486e61746976655f616d6f756e745f6b65707418013042616c616e63654f663c543e000104f4412073776170206f662074686520726566756e6420696e206e61746976652063757272656e6379206261636b20746f206173736574206661696c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a018346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6520756e696f6e5f6f66384e61746976654f72576974684964041c4173736574496401100108184e617469766500000018576974684964040010011c4173736574496400010000a40c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144576656e7404045400011838536f6c7574696f6e53746f7265640c011c636f6d70757465a8013c456c656374696f6e436f6d707574650001186f726967696eac01504f7074696f6e3c543a3a4163636f756e7449643e000130707265765f656a6563746564200110626f6f6c00001cb44120736f6c7574696f6e207761732073746f72656420776974682074686520676976656e20636f6d707574652e00510154686520606f726967696e6020696e6469636174657320746865206f726967696e206f662074686520736f6c7574696f6e2e20496620606f726967696e602069732060536f6d65284163636f756e74496429602c59017468652073746f72656420736f6c7574696f6e20776173207375626d697474656420696e20746865207369676e65642070686173652062792061206d696e657220776974682074686520604163636f756e744964602e25014f74686572776973652c2074686520736f6c7574696f6e207761732073746f7265642065697468657220647572696e672074686520756e7369676e6564207068617365206f722062794d0160543a3a466f7263654f726967696e602e205468652060626f6f6c6020697320607472756560207768656e20612070726576696f757320736f6c7574696f6e2077617320656a656374656420746f206d616b6548726f6f6d20666f722074686973206f6e652e44456c656374696f6e46696e616c697a656408011c636f6d70757465a8013c456c656374696f6e436f6d7075746500011473636f7265b00134456c656374696f6e53636f7265000104190154686520656c656374696f6e20686173206265656e2066696e616c697a65642c20776974682074686520676976656e20636f6d7075746174696f6e20616e642073636f72652e38456c656374696f6e4661696c656400020c4c416e20656c656374696f6e206661696c65642e0001014e6f74206d7563682063616e20626520736169642061626f757420776869636820636f6d7075746573206661696c656420696e207468652070726f636573732e20526577617264656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0003042501416e206163636f756e7420686173206265656e20726577617264656420666f72207468656972207369676e6564207375626d697373696f6e206265696e672066696e616c697a65642e1c536c617368656408011c6163636f756e740001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400011476616c756518013042616c616e63654f663c543e0004042101416e206163636f756e7420686173206265656e20736c617368656420666f72207375626d697474696e6720616e20696e76616c6964207369676e6564207375626d697373696f6e2e4450686173655472616e736974696f6e65640c011066726f6db4016050686173653c426c6f636b4e756d626572466f723c543e3e000108746fb4016050686173653c426c6f636b4e756d626572466f723c543e3e000114726f756e6410010c753332000504b85468657265207761732061207068617365207472616e736974696f6e20696e206120676976656e20726f756e642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a8089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653c456c656374696f6e436f6d707574650001141c4f6e436861696e000000185369676e656400010020556e7369676e65640002002046616c6c6261636b00030024456d657267656e637900040000ac04184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000b0084473705f6e706f735f656c656374696f6e7334456c656374696f6e53636f726500000c01346d696e696d616c5f7374616b6518013c457874656e64656442616c616e636500012473756d5f7374616b6518013c457874656e64656442616c616e636500014473756d5f7374616b655f7371756172656418013c457874656e64656442616c616e63650000b4089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651450686173650408426e011001100c4f6666000000185369676e656400010020556e7369676e65640400b8012828626f6f6c2c20426e2900020024456d657267656e637900030000b800000408201000bc103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144576656e7404045400014c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6ec4011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874c801304f7074696f6e3c506167653e000c045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673cc013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465d4011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00120855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c0083870616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000c40c3473705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000c804184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000cc083870616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6ed0011c50657262696c6c00011c626c6f636b6564200110626f6f6c0000d0000006c400d4083870616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000d80c3870616c6c65745f73657373696f6e1870616c6c6574144576656e74040454000110284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e244e6577517565756564000108490154686520604e657753657373696f6e60206576656e7420696e207468652063757272656e7420626c6f636b20616c736f20696d706c6965732061206e65772076616c696461746f722073657420746f2062651c7175657565642e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640003047856616c696461746f7220686173206265656e2072652d656e61626c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574dc0c4070616c6c65745f64656d6f63726163791870616c6c6574144576656e740404540001442050726f706f73656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000004bc41206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c656408013870726f706f73616c5f696e64657810012450726f70496e64657800011c6465706f73697418013042616c616e63654f663c543e000104d841207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400020494416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c537461727465640801247265665f696e64657810013c5265666572656e64756d496e6465780001247468726573686f6c64e00134566f74655468726573686f6c640003045c41207265666572656e64756d2068617320626567756e2e185061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000404ac412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f745061737365640401247265665f696e64657810013c5265666572656e64756d496e646578000504ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c65640401247265665f696e64657810013c5265666572656e64756d496e6465780006048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e2444656c65676174656408010c77686f000130543a3a4163636f756e744964000118746172676574000130543a3a4163636f756e744964000704dc416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404011c6163636f756e74000130543a3a4163636f756e744964000804e4416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c010c77686f000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114756e74696c100144426c6f636b4e756d626572466f723c543e00090494416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e2c426c61636b6c697374656404013470726f706f73616c5f6861736834011c543a3a48617368000a04c4412070726f706f73616c5f6861736820686173206265656e20626c61636b6c6973746564207065726d616e656e746c792e14566f7465640c0114766f746572000130543a3a4163636f756e7449640001247265665f696e64657810013c5265666572656e64756d496e646578000110766f7465e401644163636f756e74566f74653c42616c616e63654f663c543e3e000b0490416e206163636f756e742068617320766f74656420696e2061207265666572656e64756d205365636f6e6465640801207365636f6e646572000130543a3a4163636f756e74496400012870726f705f696e64657810012450726f70496e646578000c0488416e206163636f756e7420686173207365636f6e64656420612070726f706f73616c4050726f706f73616c43616e63656c656404012870726f705f696e64657810012450726f70496e646578000d0460412070726f706f73616c20676f742063616e63656c65642e2c4d657461646174615365740801146f776e6572ec01344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e0e04d44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c65617265640801146f776e6572ec01344d657461646174614f776e6572043c4d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04e44d6574616461746120666f7220612070726f706f73616c206f722061207265666572656e64756d20686173206265656e20636c65617265642e4c4d657461646174615472616e736665727265640c0128707265765f6f776e6572ec01344d657461646174614f776e6572046050726576696f7573206d65746164617461206f776e65722e01146f776e6572ec01344d657461646174614f776e6572044c4e6577206d65746164617461206f776e65722e01106861736834011c543a3a486173680438507265696d61676520686173682e1004ac4d6574616461746120686173206265656e207472616e7366657272656420746f206e6577206f776e65722e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574e00c4070616c6c65745f64656d6f637261637938766f74655f7468726573686f6c6434566f74655468726573686f6c6400010c5053757065724d616a6f72697479417070726f76650000005053757065724d616a6f72697479416761696e73740001003853696d706c654d616a6f7269747900020000e40c4070616c6c65745f64656d6f637261637910766f74652c4163636f756e74566f7465041c42616c616e636501180108205374616e64617264080110766f7465e80110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e636500010000e80c4070616c6c65745f64656d6f637261637910766f746510566f74650000040008000000ec0c4070616c6c65745f64656d6f6372616379147479706573344d657461646174614f776e657200010c2045787465726e616c0000002050726f706f73616c040010012450726f70496e646578000100285265666572656e64756d040010013c5265666572656e64756d496e64657800020000f00c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f40c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f80c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144576656e7404045400011c1c4e65775465726d04012c6e65775f6d656d62657273fc01ec5665633c283c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e7449642c2042616c616e63654f663c543e293e000014450141206e6577207465726d2077697468206e65775f6d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e64696461746573206578697374656420746f2072756e450174686520656c656374696f6e2c206e6f74207468617420656e6f7567682068617665206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e65644501666f72207468697320707572706f73652e204120604e65775465726d285c5b5c5d296020696e64696361746573207468617420736f6d652063616e6469646174657320676f7420746865697220626f6e645501736c617368656420616e64206e6f6e65207765726520656c65637465642c207768696c73742060456d7074795465726d60206d65616e732074686174206e6f2063616e64696461746573206578697374656420746f2c626567696e20776974682e24456d7074795465726d00010831014e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e205468697320697320646966666572656e742066726f6dc8604e65775465726d285c5b5c5d29602e2053656520746865206465736372697074696f6e206f6620604e65775465726d602e34456c656374696f6e4572726f72000204e4496e7465726e616c206572726f722068617070656e6564207768696c6520747279696e6720746f20706572666f726d20656c656374696f6e2e304d656d6265724b69636b65640401186d656d6265720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000308410141206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f723060456d7074795465726d602e2452656e6f756e63656404012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e74496400040498536f6d656f6e65206861732072656e6f756e6365642074686569722063616e6469646163792e4043616e646964617465536c617368656408012463616e6469646174650001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0005103901412063616e6469646174652077617320736c617368656420627920616d6f756e742064756520746f206661696c696e6720746f206f627461696e20612073656174206173206d656d626572206f722872756e6e65722d75702e00e44e6f74652074686174206f6c64206d656d6265727320616e642072756e6e6572732d75702061726520616c736f2063616e646964617465732e4453656174486f6c646572536c617368656408012c736561745f686f6c6465720001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000604350141207365617420686f6c6465722077617320736c617368656420627920616d6f756e74206279206265696e6720666f72636566756c6c792072656d6f7665642066726f6d20746865207365742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fc00000201010001010000040800180005010c4470616c6c65745f6d656d626572736869701870616c6c6574144576656e740804540004490001182c4d656d6265724164646564000004e054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f766564000104e854686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d6265727353776170706564000204d854776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740003041501546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000404844f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d790005046c5068616e746f6d206d656d6265722c206e6576657220757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657409010c3870616c6c65745f6772616e6470611870616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f7365740d010134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d010000021101001101000004081501300015010c5073705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c6963000019010c3c70616c6c65745f74726561737572791870616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604cc54686520696e6163746976652066756e6473206f66207468652070616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e64a00130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279000138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69648801643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69648801643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d010c4470616c6c65745f61737365745f726174651870616c6c6574144576656e7404045400010c404173736574526174654372656174656408012861737365745f6b696e64a00130543a3a41737365744b696e6400011072617465210101244669786564553132380000004041737365745261746552656d6f76656404012861737365745f6b696e64a00130543a3a41737365744b696e6400010040417373657452617465557064617465640c012861737365745f6b696e64a00130543a3a41737365744b696e6400010c6f6c642101012446697865645531323800010c6e657721010124466978656455313238000200047c54686520604576656e746020656e756d206f6620746869732070616c6c657421010c3473705f61726974686d657469632c66697865645f706f696e74244669786564553132380000040018011075313238000025010c4070616c6c65745f636f6e7472616374731870616c6c6574144576656e7404045400012830496e7374616e7469617465640801206465706c6f796572000130543a3a4163636f756e744964000120636f6e7472616374000130543a3a4163636f756e744964000004d8436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e285465726d696e61746564080120636f6e7472616374000130543a3a4163636f756e744964048454686520636f6e7472616374207468617420776173207465726d696e617465642e012c62656e6566696369617279000130543a3a4163636f756e74496404e4546865206163636f756e7420746861742072656365697665642074686520636f6e7472616374732072656d61696e696e672062616c616e6365011868436f6e747261637420686173206265656e2072656d6f7665642e001823204e6f7465003d01546865206f6e6c792077617920666f72206120636f6e747261637420746f2062652072656d6f76656420616e6420656d697474696e672074686973206576656e742069732062792063616c6c696e6744607365616c5f7465726d696e617465602e28436f646553746f7265640c0124636f64655f6861736834011c543a3a486173680001306465706f7369745f68656c6418013042616c616e63654f663c543e00012075706c6f61646572000130543a3a4163636f756e744964000204b4436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c436f6e7472616374456d6974746564080120636f6e7472616374000130543a3a4163636f756e744964049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746138011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e03049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e2c436f646552656d6f7665640c0124636f64655f6861736834011c543a3a486173680001406465706f7369745f72656c656173656418013042616c616e63654f663c543e00011c72656d6f766572000130543a3a4163636f756e744964000404ac4120636f6465207769746820746865207370656369666965642068617368207761732072656d6f7665642e4c436f6e7472616374436f6465557064617465640c0120636f6e7472616374000130543a3a4163636f756e744964048c54686520636f6e7472616374207468617420686173206265656e20757064617465642e01346e65775f636f64655f6861736834011c543a3a4861736804b04e657720636f646520686173682074686174207761732073657420666f722074686520636f6e74726163742e01346f6c645f636f64655f6861736834011c543a3a48617368048c50726576696f757320636f64652068617368206f662074686520636f6e74726163742e0504784120636f6e7472616374277320636f64652077617320757064617465642e1843616c6c656408011863616c6c6572290101244f726967696e3c543e04745468652063616c6c6572206f66207468652060636f6e7472616374602e0120636f6e7472616374000130543a3a4163636f756e744964047454686520636f6e74726163742074686174207761732063616c6c65642e061c11014120636f6e7472616374207761732063616c6c656420656974686572206279206120706c61696e206163636f756e74206f7220616e6f7468657220636f6e74726163742e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e3844656c656761746543616c6c6564080120636f6e7472616374000130543a3a4163636f756e74496408210154686520636f6e7472616374207468617420706572666f726d6564207468652064656c65676174652063616c6c20616e642068656e636520696e2077686f736520636f6e74657874707468652060636f64655f68617368602069732065786563757465642e0124636f64655f6861736834012c436f6465486173683c543e049c54686520636f646520686173682074686174207761732064656c65676174652063616c6c65642e071c9c4120636f6e74726163742064656c65676174652063616c6c6564206120636f646520686173682e001823204e6f7465003101506c65617365206b65657020696e206d696e642074686174206c696b6520616c6c206576656e74732074686973206973206f6e6c7920656d697474656420666f72207375636365737366756c290163616c6c732e20546869732069732062656361757365206f6e206661696c75726520616c6c2073746f72616765206368616e67657320696e636c7564696e67206576656e74732061726530726f6c6c6564206261636b2e8053746f726167654465706f7369745472616e73666572726564416e6448656c640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000804f4536f6d652066756e64732068617665206265656e207472616e7366657272656420616e642068656c642061732073746f72616765206465706f7369742e9053746f726167654465706f7369745472616e73666572726564416e6452656c65617365640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000904f8536f6d652073746f72616765206465706f7369742066756e64732068617665206265656e207472616e7366657272656420616e642072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742901084070616c6c65745f636f6e747261637473184f726967696e040454012d01010810526f6f74000000185369676e65640400000130543a3a4163636f756e744964000100002d01084c6b69746368656e73696e6b5f72756e74696d651c52756e74696d650000000031010c2c70616c6c65745f7375646f1870616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c748401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64ac01504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c748401384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304c841205b7375646f5f61735d2850616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435010c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144576656e7404045400010c444865617274626561745265636569766564040130617574686f726974795f696439010138543a3a417574686f726974794964000004c041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964602e1c416c6c476f6f64000104d041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504011c6f66666c696e653d01016c5665633c4964656e74696669636174696f6e5475706c653c543e3e000204290141742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e047c54686520604576656e746020656e756d206f6620746869732070616c6c65743901104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139185075626c69630000040004013c737232353531393a3a5075626c696300003d0100000241010041010000040800880045010c3c70616c6c65745f6f6666656e6365731870616c6c6574144576656e740001041c4f6666656e63650801106b696e64490101104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652e49010000031000000008004d01103870616c6c65745f73657373696f6e28686973746f726963616c1870616c6c6574144576656e7404045400010828526f6f7453746f726564040114696e64657810013053657373696f6e496e6465780000040501546865206d65726b6c6520726f6f74206f66207468652076616c696461746f7273206f662074686520736169642073657373696f6e20776572652073746f7265642c526f6f74735072756e656404011475705f746f10013053657373696f6e496e646578000104e0546865206d65726b6c6520726f6f7473206f6620757020746f20746869732073657373696f6e20696e6465782077657265207072756e6564047c54686520604576656e746020656e756d206f6620746869732070616c6c657451010c3c70616c6c65745f6964656e746974791870616c6c6574144576656e740404540001582c4964656e7469747953657404010c77686f000130543a3a4163636f756e744964000004ec41206e616d652077617320736574206f72207265736574202877686963682077696c6c2072656d6f766520616c6c206a756467656d656e7473292e3c4964656e74697479436c656172656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000104cc41206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e384964656e746974794b696c6c656408010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000204c441206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e484a756467656d656e7452657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780003049c41206a756467656d656e74207761732061736b65642066726f6d2061207265676973747261722e504a756467656d656e74556e72657175657374656408010c77686f000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780004048841206a756467656d656e74207265717565737420776173207265747261637465642e384a756467656d656e74476976656e080118746172676574000130543a3a4163636f756e74496400013c7265676973747261725f696e646578100138526567697374726172496e6465780005049441206a756467656d656e742077617320676976656e2062792061207265676973747261722e38526567697374726172416464656404013c7265676973747261725f696e646578100138526567697374726172496e646578000604584120726567697374726172207761732061646465642e405375624964656e7469747941646465640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000704f441207375622d6964656e746974792077617320616464656420746f20616e206964656e7469747920616e6420746865206465706f73697420706169642e405375624964656e7469746965735365740c01106d61696e000130543a3a4163636f756e7449640001386e756d6265725f6f665f7375627310010c75333200012c6e65775f6465706f73697418013042616c616e63654f663c543e000804bc416e206163636f756e742773207375622d6964656e7469746965732077657265207365742028696e2062756c6b292e485375624964656e7469747952656e616d656408010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400090421014120676976656e207375622d6163636f756e742773206173736f636961746564206e616d6520776173206368616e676564206279206974732073757065722d6964656e746974792e485375624964656e7469747952656d6f7665640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000a04090141207375622d6964656e74697479207761732072656d6f7665642066726f6d20616e206964656e7469747920616e6420746865206465706f7369742066726565642e485375624964656e746974795265766f6b65640c010c737562000130543a3a4163636f756e7449640001106d61696e000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e000b08190141207375622d6964656e746974792077617320636c65617265642c20616e642074686520676976656e206465706f7369742072657061747269617465642066726f6d20746865c86d61696e206964656e74697479206163636f756e7420746f20746865207375622d6964656e74697479206163636f756e742e38417574686f726974794164646564040124617574686f72697479000130543a3a4163636f756e744964000c047c4120757365726e616d6520617574686f72697479207761732061646465642e40417574686f7269747952656d6f766564040124617574686f72697479000130543a3a4163636f756e744964000d04844120757365726e616d6520617574686f72697479207761732072656d6f7665642e2c557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d655501012c557365726e616d653c543e000e04744120757365726e616d65207761732073657420666f72206077686f602e38557365726e616d655175657565640c010c77686f000130543a3a4163636f756e744964000120757365726e616d655501012c557365726e616d653c543e00012865787069726174696f6e100144426c6f636b4e756d626572466f723c543e000f0419014120757365726e616d6520776173207175657565642c20627574206077686f60206d75737420616363657074206974207072696f7220746f206065787069726174696f6e602e48507265617070726f76616c4578706972656404011477686f7365000130543a3a4163636f756e7449640010043901412071756575656420757365726e616d6520706173736564206974732065787069726174696f6e20776974686f7574206265696e6720636c61696d656420616e64207761732072656d6f7665642e485072696d617279557365726e616d6553657408010c77686f000130543a3a4163636f756e744964000120757365726e616d655501012c557365726e616d653c543e00110401014120757365726e616d6520776173207365742061732061207072696d61727920616e642063616e206265206c6f6f6b65642075702066726f6d206077686f602e5c44616e676c696e67557365726e616d6552656d6f76656408010c77686f000130543a3a4163636f756e744964000120757365726e616d655501012c557365726e616d653c543e0012085d01412064616e676c696e6720757365726e616d652028617320696e2c206120757365726e616d6520636f72726573706f6e64696e6720746f20616e206163636f756e742074686174206861732072656d6f766564206974736c6964656e746974792920686173206265656e2072656d6f7665642e3c557365726e616d65556e626f756e64040120757365726e616d655501012c557365726e616d653c543e001304704120757365726e616d6520686173206265656e20756e626f756e642e3c557365726e616d6552656d6f766564040120757365726e616d655501012c557365726e616d653c543e001404704120757365726e616d6520686173206265656e2072656d6f7665642e38557365726e616d654b696c6c6564040120757365726e616d655501012c557365726e616d653c543e0015046c4120757365726e616d6520686173206265656e206b696c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657455010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000059010c3870616c6c65745f736f63696574791870616c6c6574144576656e740804540004490001481c466f756e64656404011c666f756e646572000130543a3a4163636f756e744964000004b454686520736f636965747920697320666f756e6465642062792074686520676976656e206964656e746974792e0c42696408013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e0001085d0141206d656d6265727368697020626964206a7573742068617070656e65642e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64207468656972206f6666657238697320746865207365636f6e642e14566f7563680c013063616e6469646174655f6964000130543a3a4163636f756e7449640001146f6666657218013c42616c616e63654f663c542c20493e000120766f756368696e67000130543a3a4163636f756e7449640002085d0141206d656d6265727368697020626964206a7573742068617070656e656420627920766f756368696e672e2054686520676976656e206163636f756e74206973207468652063616e646964617465277320494420616e64ec7468656972206f6666657220697320746865207365636f6e642e2054686520766f756368696e67207061727479206973207468652074686972642e244175746f556e62696404012463616e646964617465000130543a3a4163636f756e7449640003040501412063616e646964617465207761732064726f70706564202864756520746f20616e20657863657373206f66206269647320696e207468652073797374656d292e14556e62696404012463616e646964617465000130543a3a4163636f756e744964000404ac412063616e646964617465207761732064726f70706564202862792074686569722072657175657374292e1c556e766f75636804012463616e646964617465000130543a3a4163636f756e744964000504f4412063616e646964617465207761732064726f70706564202862792072657175657374206f662077686f20766f756368656420666f72207468656d292e20496e64756374656408011c7072696d617279000130543a3a4163636f756e74496400012863616e646964617465735d0101445665633c543a3a4163636f756e7449643e0006085501412067726f7570206f662063616e646964617465732068617665206265656e20696e6475637465642e205468652062617463682773207072696d617279206973207468652066697273742076616c75652c2074686570626174636820696e2066756c6c20697320746865207365636f6e642e6053757370656e6465644d656d6265724a756467656d656e7408010c77686f000130543a3a4163636f756e7449640001186a7564676564200110626f6f6c0007048c412073757370656e646564206d656d62657220686173206265656e206a75646765642e4843616e64696461746553757370656e64656404012463616e646964617465000130543a3a4163636f756e74496400080478412063616e64696461746520686173206265656e2073757370656e6465643c4d656d62657253757370656e6465640401186d656d626572000130543a3a4163636f756e7449640009046c41206d656d62657220686173206265656e2073757370656e646564284368616c6c656e6765640401186d656d626572000130543a3a4163636f756e744964000a047041206d656d62657220686173206265656e206368616c6c656e67656410566f74650c012463616e646964617465000130543a3a4163636f756e744964000114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000b04584120766f746520686173206265656e20706c6163656430446566656e646572566f7465080114766f746572000130543a3a4163636f756e744964000110766f7465200110626f6f6c000c04b44120766f746520686173206265656e20706c6163656420666f72206120646566656e64696e67206d656d626572244e6577506172616d73040118706172616d736101015047726f7570506172616d73466f723c542c20493e000d04cc41206e657720736574206f66205c5b706172616d735c5d20686173206265656e2073657420666f72207468652067726f75702e24556e666f756e64656404011c666f756e646572000130543a3a4163636f756e744964000e0454536f636965747920697320756e666f756e6465642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e000f04cc536f6d652066756e64732077657265206465706f736974656420696e746f2074686520736f6369657479206163636f756e742e20456c6576617465640801186d656d626572000130543a3a4163636f756e74496400011072616e6b10011052616e6b0010049841205c5b6d656d6265725c5d20676f7420656c65766174656420746f205c5b72616e6b5c5d2e304465706f736974506f6b65640c010c77686f000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e0011047c41206465706f7369742077617320706f6b6564202f2061646a75737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745d0100000200006101083870616c6c65745f736f63696574792c47726f7570506172616d73041c42616c616e636501180010012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418011c42616c616e6365000065010c3c70616c6c65745f7265636f766572791870616c6c6574144576656e7404045400011c3c5265636f766572794372656174656404011c6163636f756e74000130543a3a4163636f756e744964000004c841207265636f766572792070726f6365737320686173206265656e2073657420757020666f7220616e206163636f756e742e445265636f76657279496e697469617465640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e744964000104290141207265636f766572792070726f6365737320686173206265656e20696e6974696174656420666f72206c6f7374206163636f756e742062792072657363756572206163636f756e742e3c5265636f76657279566f75636865640c01306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400011873656e646572000130543a3a4163636f756e744964000204590141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20766f756368656420666f722062792073656e6465722e385265636f76657279436c6f7365640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e7449640003041d0141207265636f766572792070726f6365737320666f72206c6f7374206163636f756e742062792072657363756572206163636f756e7420686173206265656e20636c6f7365642e404163636f756e745265636f76657265640801306c6f73745f6163636f756e74000130543a3a4163636f756e74496400013c726573637565725f6163636f756e74000130543a3a4163636f756e74496400040401014c6f7374206163636f756e7420686173206265656e207375636365737366756c6c79207265636f76657265642062792072657363756572206163636f756e742e3c5265636f7665727952656d6f7665640401306c6f73745f6163636f756e74000130543a3a4163636f756e744964000504cc41207265636f766572792070726f6365737320686173206265656e2072656d6f76656420666f7220616e206163636f756e742e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e64690101384465706f7369744b696e643c543e00012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e0006046c41206465706f73697420686173206265656e20757064617465642e04304576656e747320747970652e6901083c70616c6c65745f7265636f766572792c4465706f7369744b696e64040454012d010108385265636f76657279436f6e666967000000444163746976655265636f76657279466f7204000001983c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a4163636f756e744964000100006d010c3870616c6c65745f76657374696e671870616c6c6574144576656e7404045400010c3856657374696e674372656174656408011c6163636f756e74000130543a3a4163636f756e7449640001387363686564756c655f696e64657810010c75333200000490412076657374696e67207363686564756c6520686173206265656e20637265617465642e3856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000108510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640002049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657471010c4070616c6c65745f7363686564756c65721870616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e000118726573756c748401384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964790101404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652e750100000408101000790104184f7074696f6e04045401040108104e6f6e6500000010536f6d6504000400000100007d010c3870616c6c65745f676c7574746f6e1870616c6c6574144576656e740001104450616c6c6574496e697469616c697a65640401187265696e6974200110626f6f6c04ac57686574686572207468652070616c6c657420686173206265656e2072652d696e697469616c697a65642e0004905468652070616c6c657420686173206265656e2028726529696e697469616c697a65642e4c436f6d7075746174696f6e4c696d697453657404011c636f6d70757465810101204669786564553634045854686520636f6d7075746174696f6e206c696d69742e01049c54686520636f6d7075746174696f6e206c696d697420686173206265656e20757064617465642e3c53746f726167654c696d697453657404011c73746f7261676581010120466978656455363404485468652073746f72616765206c696d69742e02048c5468652073746f72616765206c696d697420686173206265656e20757064617465642e4c426c6f636b4c656e6774684c696d6974536574040130626c6f636b5f6c656e677468810101204669786564553634045c54686520626c6f636b206c656e677468206c696d69742e0304a054686520626c6f636b206c656e677468206c696d697420686173206265656e20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657481010c3473705f61726974686d657469632c66697865645f706f696e742046697865645536340000040030010c753634000085010c3c70616c6c65745f707265696d6167651870616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657489010c3070616c6c65745f70726f78791870616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c748401384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656410011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f747970658d010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789101010c753136000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f747970658d010130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e6465789101010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970658d010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f747970658d010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e649501012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d01084c6b69746368656e73696e6b5f72756e74696d652450726f7879547970650001100c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002001c5374616b696e6700030000910100000504009501083070616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e74730001000099010c3c70616c6c65745f6d756c74697369671870616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c748401384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d01083c70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c7533320000a1010c3c70616c6c65745f626f756e746965731870616c6c6574144576656e7408045400044900013038426f756e747950726f706f736564040114696e64657810012c426f756e7479496e646578000004504e657720626f756e74792070726f706f73616c2e38426f756e747952656a6563746564080114696e64657810012c426f756e7479496e646578000110626f6e6418013c42616c616e63654f663c542c20493e000104cc4120626f756e74792070726f706f73616c207761732072656a65637465643b2066756e6473207765726520736c61736865642e48426f756e7479426563616d65416374697665040114696e64657810012c426f756e7479496e646578000204b84120626f756e74792070726f706f73616c2069732066756e64656420616e6420626563616d65206163746976652e34426f756e747941776172646564080114696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000304944120626f756e7479206973206177617264656420746f20612062656e65666963696172792e34426f756e7479436c61696d65640c0114696e64657810012c426f756e7479496e6465780001187061796f757418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640004048c4120626f756e747920697320636c61696d65642062792062656e65666963696172792e38426f756e747943616e63656c6564040114696e64657810012c426f756e7479496e646578000504584120626f756e74792069732063616e63656c6c65642e38426f756e7479457874656e646564040114696e64657810012c426f756e7479496e646578000604704120626f756e74792065787069727920697320657874656e6465642e38426f756e7479417070726f766564040114696e64657810012c426f756e7479496e646578000704544120626f756e747920697320617070726f7665642e3c43757261746f7250726f706f736564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000804744120626f756e74792063757261746f722069732070726f706f7365642e4443757261746f72556e61737369676e6564040124626f756e74795f696410012c426f756e7479496e6465780009047c4120626f756e74792063757261746f7220697320756e61737369676e65642e3c43757261746f724163636570746564080124626f756e74795f696410012c426f756e7479496e64657800011c63757261746f72000130543a3a4163636f756e744964000a04744120626f756e74792063757261746f722069732061636365707465642e304465706f736974506f6b6564100124626f756e74795f696410012c426f756e7479496e64657800012070726f706f736572000130543a3a4163636f756e74496400012c6f6c645f6465706f73697418013c42616c616e63654f663c542c20493e00012c6e65775f6465706f73697418013c42616c616e63654f663c542c20493e000b04804120626f756e7479206465706f73697420686173206265656e20706f6b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a5010c2c70616c6c65745f746970731870616c6c6574144576656e74080454000449000114184e65775469700401207469705f6861736834011c543a3a486173680000049441206e6577207469702073756767657374696f6e20686173206265656e206f70656e65642e28546970436c6f73696e670401207469705f6861736834011c543a3a48617368000104d841207469702073756767657374696f6e206861732072656163686564207468726573686f6c6420616e6420697320636c6f73696e672e24546970436c6f7365640c01207469705f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e7449640001187061796f757418013c42616c616e63654f663c542c20493e0002048441207469702073756767657374696f6e20686173206265656e20636c6f7365642e305469705265747261637465640401207469705f6861736834011c543a3a486173680003049041207469702073756767657374696f6e20686173206265656e207265747261637465642e28546970536c61736865640c01207469705f6861736834011c543a3a4861736800011866696e646572000130543a3a4163636f756e74496400011c6465706f73697418013c42616c616e63654f663c542c20493e0004048841207469702073756767657374696f6e20686173206265656e20736c61736865642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a9010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ad010c3470616c6c65745f6173736574731870616c6c6574144576656e740804540004490001681c437265617465640c012061737365745f6964100128543a3a4173736574496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e74496400000474536f6d6520617373657420636c6173732077617320637265617465642e184973737565640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500010460536f6d65206173736574732077657265206973737565642e2c5472616e7366657272656410012061737365745f6964100128543a3a4173736574496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500020474536f6d65206173736574732077657265207472616e736665727265642e184275726e65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400011c62616c616e6365180128543a3a42616c616e63650003046c536f6d652061737365747320776572652064657374726f7965642e2c5465616d4368616e67656410012061737365745f6964100128543a3a41737365744964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e74496400040470546865206d616e6167656d656e74207465616d206368616e6765642e304f776e65724368616e67656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400050448546865206f776e6572206368616e6765642e1846726f7a656e08012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400060478536f6d65206163636f756e74206077686f60207761732066726f7a656e2e1854686177656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e74496400070478536f6d65206163636f756e74206077686f6020776173207468617765642e2c417373657446726f7a656e04012061737365745f6964100128543a3a4173736574496400080484536f6d65206173736574206061737365745f696460207761732066726f7a656e2e2c417373657454686177656404012061737365745f6964100128543a3a4173736574496400090484536f6d65206173736574206061737365745f69646020776173207468617765642e444163636f756e747344657374726f7965640c012061737365745f6964100128543a3a417373657449640001486163636f756e74735f64657374726f79656410010c7533320001486163636f756e74735f72656d61696e696e6710010c753332000a04a04163636f756e747320776572652064657374726f79656420666f7220676976656e2061737365742e48417070726f76616c7344657374726f7965640c012061737365745f6964100128543a3a4173736574496400014c617070726f76616c735f64657374726f79656410010c75333200014c617070726f76616c735f72656d61696e696e6710010c753332000b04a4417070726f76616c7320776572652064657374726f79656420666f7220676976656e2061737365742e484465737472756374696f6e5374617274656404012061737365745f6964100128543a3a41737365744964000c04d0416e20617373657420636c61737320697320696e207468652070726f63657373206f66206265696e672064657374726f7965642e2444657374726f79656404012061737365745f6964100128543a3a41737365744964000d0474416e20617373657420636c617373207761732064657374726f7965642e30466f7263654372656174656408012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e744964000e048c536f6d6520617373657420636c6173732077617320666f7263652d637265617465642e2c4d6574616461746153657414012061737365745f6964100128543a3a417373657449640001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c000f049c4e6577206d6574616461746120686173206265656e2073657420666f7220616e2061737365742e3c4d65746164617461436c656172656404012061737365745f6964100128543a3a417373657449640010049c4d6574616461746120686173206265656e20636c656172656420666f7220616e2061737365742e40417070726f7665645472616e7366657210012061737365745f6964100128543a3a41737365744964000118736f75726365000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650011043101284164646974696f6e616c292066756e64732068617665206265656e20617070726f76656420666f72207472616e7366657220746f20612064657374696e6174696f6e206163636f756e742e44417070726f76616c43616e63656c6c65640c012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964001204f0416e20617070726f76616c20666f72206163636f756e74206064656c656761746560207761732063616e63656c6c656420627920606f776e6572602e4c5472616e73666572726564417070726f76656414012061737365745f6964100128543a3a417373657449640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e74496400012c64657374696e6174696f6e000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650013083101416e2060616d6f756e746020776173207472616e7366657272656420696e2069747320656e7469726574792066726f6d20606f776e65726020746f206064657374696e6174696f6e602062796074686520617070726f766564206064656c6567617465602e4841737365745374617475734368616e67656404012061737365745f6964100128543a3a41737365744964001404f8416e2061737365742068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e5841737365744d696e42616c616e63654368616e67656408012061737365745f6964100128543a3a4173736574496400013c6e65775f6d696e5f62616c616e6365180128543a3a42616c616e63650015040101546865206d696e5f62616c616e6365206f6620616e20617373657420686173206265656e207570646174656420627920746865206173736574206f776e65722e1c546f75636865640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640001246465706f7369746f72000130543a3a4163636f756e744964001604fc536f6d65206163636f756e74206077686f6020776173206372656174656420776974682061206465706f7369742066726f6d20606465706f7369746f72602e1c426c6f636b656408012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e7449640017047c536f6d65206163636f756e74206077686f602077617320626c6f636b65642e244465706f73697465640c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001804dc536f6d65206173736574732077657265206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e2457697468647261776e0c012061737365745f6964100128543a3a4173736574496400010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650019042101536f6d652061737365747320776572652077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b1010c3870616c6c65745f6c6f74746572791870616c6c6574144576656e74040454000110384c6f7474657279537461727465640000046c41206c6f747465727920686173206265656e2073746172746564213043616c6c73557064617465640001048441206e657720736574206f662063616c6c732068617665206265656e20736574211857696e6e657208011877696e6e6572000130543a3a4163636f756e74496400013c6c6f74746572795f62616c616e636518013042616c616e63654f663c543e00020464412077696e6e657220686173206265656e2063686f73656e21305469636b6574426f7567687408010c77686f000130543a3a4163636f756e74496400012863616c6c5f696e646578b501012443616c6c496e6465780003046441207469636b657420686173206265656e20626f7567687421047c54686520604576656e746020656e756d206f6620746869732070616c6c6574b50100000408080800b9010c2870616c6c65745f6e69731870616c6c6574144576656e7404045400011c24426964506c616365640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200000478412062696420776173207375636365737366756c6c7920706c616365642e304269645265747261637465640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c753332000104dc412062696420776173207375636365737366756c6c792072656d6f76656420286265666f7265206265696e67206163636570746564292e2842696444726f707065640c010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001206475726174696f6e10010c75333200020455014120626964207761732064726f707065642066726f6d20612071756575652062656361757365206f6620616e6f746865722c206d6f7265207375627374616e7469616c2c20626964207761732070726573656e742e18497373756564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e0118657870697279100144426c6f636b4e756d626572466f723c543e04d054686520626c6f636b206e756d626572206174207768696368207468652072656365697074206d6179206265207468617765642e010c77686f000130543a3a4163636f756e7449640464546865206f776e6572206f662074686520726563656970742e012870726f706f7274696f6ebd01012c5065727175696e74696c6c0431015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520776869636820746865207265636569707420726570726573656e74732e0118616d6f756e7418013042616c616e63654f663c543e04d854686520616d6f756e74206f662066756e6473207768696368207765726520646562697465642066726f6d20746865206f776e65722e030405014120626964207761732061636365707465642e205468652062616c616e6365206d6179206e6f742062652072656c656173656420756e74696c206578706972792e18546861776564140114696e64657810013052656365697074496e6465780470546865206964656e74697479206f662074686520726563656970742e010c77686f000130543a3a4163636f756e7449640428546865206f776e65722e012870726f706f7274696f6ebd01012c5065727175696e74696c6c0439015468652070726f706f7274696f6e206f66207468652065666665637469766520746f74616c2069737375616e636520627920776869636820746865206f776e65722077617320646562697465642e0118616d6f756e7418013042616c616e63654f663c543e04ac54686520616d6f756e7420627920776869636820746865206f776e6572207761732063726564697465642e011c64726f70706564200110626f6f6c048c496620607472756560207468656e20746865207265636569707420697320646f6e652e0404c0416e207265636569707420686173206265656e20286174206c65617374207061727469616c6c7929207468617765642e1846756e64656404011c6465666963697418013042616c616e63654f663c543e000504b4416e206175746f6d617469632066756e64696e67206f6620746865206465666963697420776173206d6164652e2c5472616e736665727265640c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000114696e64657810013052656365697074496e6465780006046841207265636569707420776173207472616e736665727265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574bd010c3473705f61726974686d65746963287065725f7468696e67732c5065727175696e74696c6c0000040030010c7536340000c1010c3870616c6c65745f756e69717565731870616c6c6574144576656e7408045400044900016c1c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e1846726f7a656e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640006045c536f6d6520606974656d60207761732066726f7a656e2e18546861776564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640007045c536f6d6520606974656d6020776173207468617765642e40436f6c6c656374696f6e46726f7a656e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400080474536f6d652060636f6c6c656374696f6e60207761732066726f7a656e2e40436f6c6c656374696f6e546861776564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173207468617765642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572000130543a3a4163636f756e74496400011461646d696e000130543a3a4163636f756e74496400011c667265657a6572000130543a3a4163636f756e744964000b0470546865206d616e6167656d656e74207465616d206368616e6765642e40417070726f7665645472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e444974656d5374617475734368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000e041101412060636f6c6c656374696f6e602068617320686164206974732061747472696275746573206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c000f04b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001004b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e2c4d65746164617461536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c001104984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e3c4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001204984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c90101385665633c543a3a4974656d49643e001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e30417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e00140405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c65617265640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0015040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001604c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001704a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572ac01504f7074696f6e3c543a3a4163636f756e7449643e0018048c546865207072696365207761732073657420666f722074686520696e7374616e63652e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019049c54686520707269636520666f722074686520696e7374616e6365207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001a044c416e206974656d2077617320626f756768742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574c5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000c9010000021000cd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d1010c2c70616c6c65745f6e6674731870616c6c6574144576656e740804540004490001981c437265617465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c63726561746f72000130543a3a4163636f756e7449640001146f776e6572000130543a3a4163636f756e7449640000046c412060636f6c6c656374696f6e602077617320637265617465642e30466f72636543726561746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572000130543a3a4163636f756e74496400010484412060636f6c6c656374696f6e602077617320666f7263652d637265617465642e2444657374726f796564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400020474412060636f6c6c656374696f6e60207761732064657374726f7965642e184973737565640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400030454416e20606974656d6020776173206973737565642e2c5472616e73666572726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e74496400040468416e20606974656d6020776173207472616e736665727265642e184275726e65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400050460416e20606974656d60207761732064657374726f7965642e484974656d5472616e736665724c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400060488416e20606974656d6020626563616d65206e6f6e2d7472616e7366657261626c652e504974656d5472616e73666572556e6c6f636b6564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400070478416e20606974656d6020626563616d65207472616e7366657261626c652e504974656d50726f706572746965734c6f636b6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c000804a8606974656d60206d65746164617461206f7220617474726962757465732077657265206c6f636b65642e40436f6c6c656374696f6e4c6f636b6564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400090474536f6d652060636f6c6c656374696f6e6020776173206c6f636b65642e304f776e65724368616e676564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000a0448546865206f776e6572206368616e6765642e2c5465616d4368616e676564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572ac01504f7074696f6e3c543a3a4163636f756e7449643e00011461646d696eac01504f7074696f6e3c543a3a4163636f756e7449643e00011c667265657a6572ac01504f7074696f6e3c543a3a4163636f756e7449643e000b0470546865206d616e6167656d656e74207465616d206368616e6765642e405472616e73666572417070726f766564140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000120646561646c696e65c801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000c083101416e20606974656d60206f6620612060636f6c6c656374696f6e6020686173206265656e20617070726f7665642062792074686520606f776e65726020666f72207472616e736665722062793461206064656c6567617465602e44417070726f76616c43616e63656c6c6564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e74496400012064656c6567617465000130543a3a4163636f756e744964000d081901416e20617070726f76616c20666f722061206064656c656761746560206163636f756e7420746f207472616e736665722074686520606974656d60206f6620616e206974656da860636f6c6c656374696f6e60207761732063616e63656c6c65642062792069747320606f776e6572602e54416c6c417070726f76616c7343616e63656c6c65640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572000130543a3a4163636f756e744964000e049c416c6c20617070726f76616c73206f6620616e206974656d20676f742063616e63656c6c65642e5c436f6c6c656374696f6e436f6e6669674368616e676564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000f040101412060636f6c6c656374696f6e6020686173206861642069747320636f6e666967206368616e676564206279207468652060466f72636560206f726967696e2e54436f6c6c656374696f6e4d65746164617461536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001004b44e6577206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e602e64436f6c6c656374696f6e4d65746164617461436c6561726564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001104b44d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e602e3c4974656d4d657461646174615365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001204984e6577206d6574616461746120686173206265656e2073657420666f7220616e206974656d2e4c4974656d4d65746164617461436c6561726564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001304984d6574616461746120686173206265656e20636c656172656420666f7220616e206974656d2e2c52656465706f7369746564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001407375636365737366756c5f6974656d73c90101385665633c543a3a4974656d49643e0014042101546865206465706f73697420666f72206120736574206f6620606974656d60732077697468696e20612060636f6c6c656374696f6e6020686173206265656e20757064617465642e30417474726962757465536574140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00150405014e657720617474726962757465206d6574616461746120686173206265656e2073657420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e40417474726962757465436c6561726564100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e0016040501417474726962757465206d6574616461746120686173206265656e20636c656172656420666f7220612060636f6c6c656374696f6e60206f7220606974656d602e6c4974656d41747472696275746573417070726f76616c41646465640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001704cc41206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732061646465642e744974656d41747472696275746573417070726f76616c52656d6f7665640c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465000130543a3a4163636f756e744964001804d441206e657720617070726f76616c20746f206d6f64696679206974656d2061747472696275746573207761732072656d6f7665642e684f776e657273686970416363657074616e63654368616e67656408010c77686f000130543a3a4163636f756e7449640001406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001904c04f776e65727368697020616363657074616e636520686173206368616e67656420666f7220616e206163636f756e742e58436f6c6c656374696f6e4d6178537570706c79536574080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001a04a44d617820737570706c7920686173206265656e2073657420666f72206120636f6c6c656374696f6e2e74436f6c6c656374696f6e4d696e7453657474696e677355706461746564040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b04ac4d696e742073657474696e677320666f72206120636f6c6c656374696f6e20686164206368616e6765642e6c4e657874436f6c6c656374696f6e4964496e6372656d656e74656404011c6e6578745f6964c8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c0401014576656e74206765747320656d6974746564207768656e2074686520604e657874436f6c6c656374696f6e496460206765747320696e6372656d656e7465642e304974656d5072696365536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00014477686974656c69737465645f6275796572ac01504f7074696f6e3c543a3a4163636f756e7449643e001d047c546865207072696365207761732073657420666f7220746865206974656d2e404974656d507269636552656d6f766564080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001e048c54686520707269636520666f7220746865206974656d207761732072656d6f7665642e284974656d426f75676874140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000114707269636518013c4974656d50726963653c542c20493e00011873656c6c6572000130543a3a4163636f756e7449640001146275796572000130543a3a4163636f756e744964001f044c416e206974656d2077617320626f756768742e1c54697053656e74140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011873656e646572000130543a3a4163636f756e7449640001207265636569766572000130543a3a4163636f756e744964000118616d6f756e741801584465706f73697442616c616e63654f663c542c20493e0020043c4120746970207761732073656e742e2c53776170437265617465641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001147072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00210488416e20606974656d60207377617020696e74656e742077617320637265617465642e345377617043616e63656c6c65641801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130646573697265645f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001147072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e0022045c5468652073776170207761732063616e63656c6c65642e2c53776170436c61696d656420013c73656e745f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e745f6974656d100124543a3a4974656d496400013c73656e745f6974656d5f6f776e6572000130543a3a4163636f756e74496400014c72656365697665645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400013472656365697665645f6974656d100124543a3a4974656d496400014c72656365697665645f6974656d5f6f776e6572000130543a3a4163636f756e7449640001147072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e000120646561646c696e65100150426c6f636b4e756d626572466f723c542c20493e00230468546865207377617020686173206265656e20636c61696d65642e585072655369676e6564417474726962757465735365740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e002404fc4e657720617474726962757465732068617665206265656e2073657420666f7220616e20606974656d60206f66207468652060636f6c6c656374696f6e602e4850616c6c6574417474726962757465536574100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656dc801444f7074696f6e3c543a3a4974656d49643e000124617474726962757465e901018450616c6c6574417474726962757465733c543a3a436f6c6c656374696f6e49643e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e0025084d0141206e65772061747472696275746520696e20746865206050616c6c657460206e616d657370616365207761732073657420666f72207468652060636f6c6c656374696f6e60206f7220616e20606974656d606477697468696e20746861742060636f6c6c656374696f6e602e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d9010c2c70616c6c65745f6e667473147479706573484174747269627574654e616d65737061636504244163636f756e744964010001101850616c6c65740000003c436f6c6c656374696f6e4f776e6572000100244974656d4f776e65720002001c4163636f756e7404000001244163636f756e74496400030000dd0104184f7074696f6e04045401e1010108104e6f6e6500000010536f6d650400e1010000010000e1010c2c70616c6c65745f6e66747314747970657348507269636557697468446972656374696f6e0418416d6f756e74011800080118616d6f756e74180118416d6f756e74000124646972656374696f6ee50101385072696365446972656374696f6e0000e5010c2c70616c6c65745f6e667473147479706573385072696365446972656374696f6e0001081053656e640000001c5265636569766500010000e9010c2c70616c6c65745f6e6674731474797065734050616c6c6574417474726962757465730430436f6c6c656374696f6e4964011001082c55736564546f436c61696d0400100130436f6c6c656374696f6e4964000000405472616e7366657244697361626c656400010000ed010c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144576656e74040454000108444e66744672616374696f6e616c697a65641401386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001246672616374696f6e73180144417373657442616c616e63654f663c543e0001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e7449640000049c416e204e465420776173207375636365737366756c6c79206672616374696f6e616c697a65642e284e6674556e69666965641001386e66745f636f6c6c656374696f6e100148543a3a4e6674436f6c6c656374696f6e496400010c6e6674100120543a3a4e667449640001146173736574100130417373657449644f663c543e00012c62656e6566696369617279000130543a3a4163636f756e74496400010498416e204e465420776173207375636365737366756c6c792072657475726e6564206261636b2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1010c3470616c6c65745f73616c6172791870616c6c6574144576656e7408045400044900011420496e64756374656404010c77686f000130543a3a4163636f756e7449640000049841206d656d62657220697320696e64756374656420696e746f2074686520706179726f6c6c2e285265676973746572656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e0001048441206d656d626572207265676973746572656420666f722061207061796f75742e105061696410010c77686f000130543a3a4163636f756e74496400012c62656e6566696369617279000130543a3a4163636f756e744964000118616d6f756e7418013c42616c616e63654f663c542c20493e00010869648801643c543a3a5061796d6173746572206173205061793e3a3a49640002044c41207061796d656e742068617070656e65642e304379636c6553746172746564040114696e64657810013c4379636c65496e6465784f663c543e00030458546865206e657874206379636c6520626567696e732e1c5377617070656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e7449640004047c41206d656d6265722073776170706564207468656972206163636f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f5010c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c6574144576656e7408045400044900012c34506172616d734368616e676564040118706172616d73f9010138506172616d734f663c542c20493e0000049c506172616d657465727320666f72207468652070616c6c65742068617665206368616e6765642e344163746976654368616e67656408010c77686f000130543a3a4163636f756e74496400012469735f616374697665200110626f6f6c000104884d656d62657220616374697669747920666c616720686173206265656e207365742e20496e64756374656404010c77686f000130543a3a4163636f756e744964000204b84d656d6265722068617320626567756e206265696e6720747261636b656420696e20746869732070616c6c65742e284f6666626f617264656404010c77686f000130543a3a4163636f756e7449640003084d014d656d62657220686173206265656e2072656d6f7665642066726f6d206265696e6720747261636b656420696e20746869732070616c6c65742028692e652e20626563617573652072616e6b206973206e6f77187a65726f292e2050726f6d6f74656408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9101013052616e6b4f663c542c20493e000404ac4d656d62657220686173206265656e2070726f6d6f74656420746f2074686520676976656e2072616e6b2e1c44656d6f74656408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9101013052616e6b4f663c542c20493e000504d44d656d62657220686173206265656e2064656d6f74656420746f2074686520676976656e20286e6f6e2d7a65726f292072616e6b2e1850726f76656e08010c77686f000130543a3a4163636f756e74496400011c61745f72616e6b9101013052616e6b4f663c542c20493e0006041d014d656d62657220686173206265656e2070726f76656e2061742074686569722063757272656e742072616e6b2c20706f7374706f6e696e67206175746f2d64656d6f74696f6e2e2452657175657374656408010c77686f000130543a3a4163636f756e7449640001107769736809020110576973680007040d014d656d62657220686173207374617465642065766964656e6365206f66207468656972206566666f727473207468656972207265717565737420666f722072616e6b2e3845766964656e63654a756467656414010c77686f000130543a3a4163636f756e7449640454546865206d656d6265722f63616e6469646174652e011077697368090201105769736804e45468652064657369726564206f7574636f6d6520666f72207768696368207468652065766964656e6365207761732070726573656e7465642e012065766964656e63650d02013845766964656e63653c542c20493e04605468652065766964656e6365206f66206566666f7274732e01206f6c645f72616e6b9101010c753136048c546865206f6c642072616e6b2c207072696f7220746f2074686973206368616e67652e01206e65775f72616e6b1102012c4f7074696f6e3c7531363e04fc4e65772072616e6b2e20496620604e6f6e6560207468656e2063616e646964617465207265636f7264207761732072656d6f76656420656e746972656c792e08085d01536f6d65207375626d69747465642065766964656e636520776173206a756467656420616e642072656d6f7665642e205468657265206d6179206f72206d6179206e6f742068617665206265656e2061206368616e6765d0746f207468652072616e6b2c2062757420696e20616e7920636173652c20606c6173745f70726f6f66602069732072657365742e20496d706f7274656408010c77686f000130543a3a4163636f756e74496400011072616e6b9101013052616e6b4f663c542c20493e000904ec5072652d72616e6b6564206163636f756e7420686173206265656e20696e6475637465642061742074686569722063757272656e742072616e6b2e1c5377617070656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000a048c41206d656d6265722068616420697473204163636f756e74496420737761707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f901085870616c6c65745f636f72655f66656c6c6f777368697028506172616d73547970650c1c42616c616e636501182c426c6f636b4e756d62657201101452616e6b7300001401346163746976655f73616c617279fd010168426f756e6465645665633c42616c616e63652c2052616e6b733e000138706173736976655f73616c617279fd010168426f756e6465645665633c42616c616e63652c2052616e6b733e00013c64656d6f74696f6e5f706572696f6405020178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001506d696e5f70726f6d6f74696f6e5f706572696f6405020178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001406f6666626f6172645f74696d656f757410012c426c6f636b4e756d6265720000fd010c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400010201185665633c543e00000102000002180005020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e00000902085870616c6c65745f636f72655f66656c6c6f7773686970105769736800010824526574656e74696f6e0000002450726f6d6f74696f6e000100000d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000110204184f7074696f6e0404540191010108104e6f6e6500000010536f6d6504009101000001000015020c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144576656e7404045400010c1853746f726564040114696e64657810010c7533320000048853746f726564206461746120756e6465722073706563696669656420696e6465782e1c52656e65776564040114696e64657810010c7533320001048c52656e65776564206461746120756e6465722073706563696669656420696e6465782e3050726f6f66436865636b65640002049c53746f726167652070726f6f6620776173207375636365737366756c6c7920636865636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657419020c4070616c6c65745f626167735f6c6973741870616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e047c54686520604576656e746020656e756d206f6620746869732070616c6c65741d020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465210201404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f72250201204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e0470496e6e6572206576656e7473206f6620746869732070616c6c65742e21020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f0001000025020c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e29020c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144576656e74040454000110144164646564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780000046041206368696c642d626f756e74792069732061646465642e1c417761726465640c0114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e64657800012c62656e6566696369617279000130543a3a4163636f756e744964000104ac41206368696c642d626f756e7479206973206177617264656420746f20612062656e65666963696172792e1c436c61696d6564100114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780001187061796f757418013042616c616e63654f663c543e00012c62656e6566696369617279000130543a3a4163636f756e744964000204a441206368696c642d626f756e747920697320636c61696d65642062792062656e65666963696172792e2043616e63656c6564080114696e64657810012c426f756e7479496e64657800012c6368696c645f696e64657810012c426f756e7479496e6465780003047041206368696c642d626f756e74792069732063616e63656c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d020c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9101013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9101013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79c5070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79c5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79c5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79c5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79c5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79c5070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574310210346672616d655f737570706f72741874726169747324707265696d616765731c426f756e646564080454013502044801c107010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e650400c5010134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c753332000200003502084c6b69746368656e73696e6b5f72756e74696d652c52756e74696d6543616c6c000115011853797374656d0400390201ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e0000001c5574696c6974790400490201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e00010010426162650400650201a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0002002454696d657374616d7004008d0201b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0003001c496e64696365730400910201b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0005002042616c616e63657304009d0201b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00060068456c656374696f6e50726f76696465724d756c746950686173650400a90201fd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e50726f76696465724d756c746950686173652c2052756e74696d653e000a001c5374616b696e670400910301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e000b001c53657373696f6e0400c50301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e000c002444656d6f63726163790400dd0301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c44656d6f63726163792c2052756e74696d653e000d001c436f756e63696c0400e90301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e000e0048546563686e6963616c436f6d6d69747465650400ed0301dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c436f6d6d69747465652c2052756e74696d653e000f0024456c656374696f6e730400f10301b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c456c656374696f6e732c2052756e74696d653e0010004c546563686e6963616c4d656d626572736869700400f90301e10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546563686e6963616c4d656d626572736869702c2052756e74696d653e0011001c4772616e6470610400fd0301b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e0012002054726561737572790400290401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e0013002441737365745261746504002d0401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526174652c2052756e74696d653e00140024436f6e7472616374730400310401b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e7472616374732c2052756e74696d653e001500105375646f04003d0401a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00160020496d4f6e6c696e650400410401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c496d4f6e6c696e652c2052756e74696d653e001700204964656e7469747904004d0401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4964656e746974792c2052756e74696d653e001c001c536f63696574790400f50401b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536f63696574792c2052756e74696d653e001d00205265636f766572790400f90401b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265636f766572792c2052756e74696d653e001e001c56657374696e670400010501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001f00245363686564756c65720400090501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e0020001c476c7574746f6e0400110501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c476c7574746f6e2c2052756e74696d653e00210020507265696d61676504001d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e0022001450726f78790400250501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e002300204d756c746973696704002d0501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e00240020426f756e746965730400350501b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c426f756e746965732c2052756e74696d653e00250010546970730400390501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c546970732c2052756e74696d653e0026001841737365747304003d0501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574732c2052756e74696d653e00270028506f6f6c4173736574730400410501bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f6f6c4173736574732c2052756e74696d653e0028001442656566790400450501a90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e0029001c4c6f74746572790400790501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4c6f74746572792c2052756e74696d653e002c000c4e697304007d0501a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e69732c2052756e74696d653e002d001c556e69717565730400850501b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c556e69717565732c2052756e74696d653e002e00104e66747304008d0501a50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6674732c2052756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400d50501e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e66744672616374696f6e616c697a6174696f6e2c2052756e74696d653e0030001853616c6172790400d90501ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c53616c6172792c2052756e74696d653e00310038436f726546656c6c6f77736869700400dd0501cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f726546656c6c6f77736869702c2052756e74696d653e003200485472616e73616374696f6e53746f726167650400f50501dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5472616e73616374696f6e53746f726167652c2052756e74696d653e00330024566f7465724c6973740400fd0501b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c566f7465724c6973742c2052756e74696d653e003400485374617465547269654d6967726174696f6e0400010601dd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e003500344368696c64426f756e746965730400190601c90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4368696c64426f756e746965732c2052756e74696d653e003600245265666572656e646104001d0601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0037001852656d61726b0400250601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52656d61726b2c2052756e74696d653e0038002c526f6f7454657374696e670400290601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c526f6f7454657374696e672c2052756e74696d653e00390040436f6e76696374696f6e566f74696e6704002d0601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e003a002457686974656c69737404003d0601b90173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400410601cd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416c6c69616e63654d6f74696f6e2c2052756e74696d653e003c0020416c6c69616e63650400450601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c416c6c69616e63652c2052756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400690601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4e6f6d696e6174696f6e506f6f6c732c2052756e74696d653e003e002c52616e6b6564506f6c6c7304009d0601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e6b6564506f6c6c732c2052756e74696d653e003f004052616e6b6564436f6c6c6563746976650400a10601d50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c52616e6b6564436f6c6c6563746976652c2052756e74696d653e0040003c4173736574436f6e76657273696f6e0400a50601d10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e2c2052756e74696d653e0041002c46617374556e7374616b650400ad0601c10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e004200304d65737361676551756575650400b10601c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e0043000c506f760400b50601a10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506f762c2052756e74696d653e0044001c547850617573650400b90601b10173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c547850617573652c2052756e74696d653e00450020536166654d6f64650400c10601b50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c536166654d6f64652c2052756e74696d653e004600504d756c7469426c6f636b4d6967726174696f6e730400c50601e50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b4d6967726174696f6e732c2052756e74696d653e0048001842726f6b65720400e90601ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c42726f6b65722c2052756e74696d653e004900184d69786e65740400110701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d69786e65742c2052756e74696d653e004b0028506172616d65746572730400290701bd0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e004c00604173736574436f6e76657273696f6e4d6967726174696f6e0400790701f50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574436f6e76657273696f6e4d6967726174696f6e2c2052756e74696d653e004f001852657669766504007d0701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c5265766976652c2052756e74696d653e005000304173736574526577617264730400850701c50173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4173736574526577617264732c2052756e74696d653e005300184d65746154780400890701ad0173656c663a3a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a64697370617463680a3a3a43616c6c61626c6543616c6c466f723c4d65746154782c2052756e74696d653e0059000039020c306672616d655f73797374656d1870616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d733d0201345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973450201205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900011c7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0039012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f66207375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d020000024102004102000004083838004502000002380049020c3870616c6c65745f7574696c6974791870616c6c65741043616c6c04045400012014626174636804011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e6465789101010c75313600011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f31607c696e20746865204d756c74697369672070616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696e51020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973ec696e636c7564657320627970617373696e6720606672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696e3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636b3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696e51020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005101416c6d6f7374207468652073616d65206173205b6050616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4d020000023502005102084c6b69746368656e73696e6b5f72756e74696d65304f726967696e43616c6c65720001101873797374656d0400550201746672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400590201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d697474656504005d0201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0038416c6c69616e63654d6f74696f6e0400610201010170616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c000055020c346672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a6564000300005902084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200005d02084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d000200006102084470616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d0002000065020c2c70616c6c65745f626162651870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f6669020190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f6669020190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e666967810201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6902084873705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f660818486561646572016d02084964017502001001206f6666656e646572750201084964000110736c6f7479020110536c6f7400013066697273745f6865616465726d0201184865616465720001347365636f6e645f6865616465726d02011848656164657200006d02102873705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572710201184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c011844696765737400007102000006100075020c4473705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c696300007902084873705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400007d02082873705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573450201305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e74000081020c4473705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046385020128287536342c2075363429000134616c6c6f7765645f736c6f747389020130416c6c6f776564536c6f7473000100008502000004083030008902084473705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f7473000200008d020c4070616c6c65745f74696d657374616d701870616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91020c3870616c6c65745f696e64696365731870616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e95020c2873705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e6465780110011408496404000001244163636f756e74496400000014496e6465780400710201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400990201205b75383b2032305d0004000099020000031400000008009d020c3c70616c6c65745f62616c616e6365731870616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565a1020128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565a1020128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565a1020128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00f05b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f5d0101445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f66726565a1020128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6ea502014c41646a7573746d656e74446972656374696f6e00011464656c7461a1020128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c7565a1020128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea1020000061800a5020c3c70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e63726561736500000020446563726561736500010000a9020c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c65741043616c6c0404540001143c7375626d69745f756e7369676e65640801307261775f736f6c7574696f6ead0201b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e00011c7769746e6573737d030158536f6c7574696f6e4f72536e617073686f7453697a65000038a45375626d6974206120736f6c7574696f6e20666f722074686520756e7369676e65642070686173652e00c8546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f6e6f6e655f5f2e003d0154686973207375626d697373696f6e20697320636865636b6564206f6e2074686520666c792e204d6f72656f7665722c207468697320756e7369676e656420736f6c7574696f6e206973206f6e6c79550176616c696461746564207768656e207375626d697474656420746f2074686520706f6f6c2066726f6d20746865202a2a6c6f63616c2a2a206e6f64652e204566666563746976656c792c2074686973206d65616e735d0174686174206f6e6c79206163746976652076616c696461746f72732063616e207375626d69742074686973207472616e73616374696f6e207768656e20617574686f72696e67206120626c6f636b202873696d696c617240746f20616e20696e686572656e74292e005901546f2070726576656e7420616e7920696e636f727265637420736f6c7574696f6e2028616e642074687573207761737465642074696d652f776569676874292c2074686973207472616e73616374696f6e2077696c6c4d0170616e69632069662074686520736f6c7574696f6e207375626d6974746564206279207468652076616c696461746f7220697320696e76616c696420696e20616e79207761792c206566666563746976656c799c70757474696e6720746865697220617574686f72696e6720726577617264206174207269736b2e00e04e6f206465706f736974206f7220726577617264206973206173736f63696174656420776974682074686973207375626d697373696f6e2e6c7365745f6d696e696d756d5f756e747275737465645f73636f72650401406d617962655f6e6578745f73636f7265810301544f7074696f6e3c456c656374696f6e53636f72653e000114b05365742061206e65772076616c756520666f7220604d696e696d756d556e7472757374656453636f7265602e00d84469737061746368206f726967696e206d75737420626520616c69676e656420776974682060543a3a466f7263654f726967696e602e00f05468697320636865636b2063616e206265207475726e6564206f66662062792073657474696e67207468652076616c756520746f20604e6f6e65602e747365745f656d657267656e63795f656c656374696f6e5f726573756c74040120737570706f72747385030158537570706f7274733c543a3a4163636f756e7449643e0002205901536574206120736f6c7574696f6e20696e207468652071756575652c20746f2062652068616e646564206f757420746f2074686520636c69656e74206f6620746869732070616c6c657420696e20746865206e6578748863616c6c20746f2060456c656374696f6e50726f76696465723a3a656c656374602e004501546869732063616e206f6e6c79206265207365742062792060543a3a466f7263654f726967696e602c20616e64206f6e6c79207768656e207468652070686173652069732060456d657267656e6379602e00610154686520736f6c7574696f6e206973206e6f7420636865636b656420666f7220616e7920666561736962696c69747920616e6420697320617373756d656420746f206265207472757374776f727468792c20617320616e795101666561736962696c69747920636865636b20697473656c662063616e20696e207072696e6369706c652063617573652074686520656c656374696f6e2070726f6365737320746f206661696c202864756520746f686d656d6f72792f77656967687420636f6e73747261696e73292e187375626d69740401307261775f736f6c7574696f6ead0201b0426f783c526177536f6c7574696f6e3c536f6c7574696f6e4f663c543a3a4d696e6572436f6e6669673e3e3e0003249c5375626d6974206120736f6c7574696f6e20666f7220746865207369676e65642070686173652e00d0546865206469737061746368206f726967696e20666f20746869732063616c6c206d757374206265205f5f7369676e65645f5f2e005d0154686520736f6c7574696f6e20697320706f74656e7469616c6c79207175657565642c206261736564206f6e2074686520636c61696d65642073636f726520616e642070726f6365737365642061742074686520656e64506f6620746865207369676e65642070686173652e005d0141206465706f73697420697320726573657276656420616e64207265636f7264656420666f722074686520736f6c7574696f6e2e204261736564206f6e20746865206f7574636f6d652c2074686520736f6c7574696f6e15016d696768742062652072657761726465642c20736c61736865642c206f722067657420616c6c206f7220612070617274206f6620746865206465706f736974206261636b2e4c676f7665726e616e63655f66616c6c6261636b00041080547269676765722074686520676f7665726e616e63652066616c6c6261636b2e004901546869732063616e206f6e6c792062652063616c6c6564207768656e205b6050686173653a3a456d657267656e6379605d20697320656e61626c65642c20617320616e20616c7465726e617469766520746fc063616c6c696e67205b6043616c6c3a3a7365745f656d657267656e63795f656c656374696f6e5f726573756c74605d2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ead02089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173652c526177536f6c7574696f6e04045301b102000c0120736f6c7574696f6eb10201045300011473636f7265b00134456c656374696f6e53636f7265000114726f756e6410010c7533320000b102084c6b69746368656e73696e6b5f72756e74696d65384e706f73536f6c7574696f6e31360000400118766f74657331b50200000118766f74657332c10200000118766f74657333d50200000118766f74657334e10200000118766f74657335ed0200000118766f74657336f90200000118766f74657337050300000118766f74657338110300000118766f746573391d030000011c766f746573313029030000011c766f746573313135030000011c766f746573313241030000011c766f74657331334d030000011c766f746573313459030000011c766f746573313565030000011c766f74657331367103000000b502000002b90200b902000004087102bd0200bd02000006910100c102000002c50200c5020000040c7102c902bd0200c90200000408bd02cd0200cd02000006d10200d1020c3473705f61726974686d65746963287065725f7468696e677318506572553136000004009101010c7531360000d502000002d90200d9020000040c7102dd02bd0200dd0200000302000000c90200e102000002e50200e5020000040c7102e902bd0200e90200000303000000c90200ed02000002f10200f1020000040c7102f502bd0200f50200000304000000c90200f902000002fd0200fd020000040c71020103bd0200010300000305000000c90200050300000209030009030000040c71020d03bd02000d0300000306000000c90200110300000215030015030000040c71021903bd0200190300000307000000c902001d0300000221030021030000040c71022503bd0200250300000308000000c9020029030000022d03002d030000040c71023103bd0200310300000309000000c90200350300000239030039030000040c71023d03bd02003d030000030a000000c90200410300000245030045030000040c71024903bd020049030000030b000000c902004d0300000251030051030000040c71025503bd020055030000030c000000c9020059030000025d03005d030000040c71026103bd020061030000030d000000c90200650300000269030069030000040c71026d03bd02006d030000030e000000c90200710300000275030075030000040c71027903bd020079030000030f000000c902007d03089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736558536f6c7574696f6e4f72536e617073686f7453697a650000080118766f746572737102010c75333200011c746172676574737102010c7533320000810304184f7074696f6e04045401b00108104e6f6e6500000010536f6d650400b000000100008503000002890300890300000408008d03008d03084473705f6e706f735f656c656374696f6e731c537570706f727404244163636f756e744964010000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273fc01845665633c284163636f756e7449642c20457874656e64656442616c616e6365293e00009103103870616c6c65745f7374616b696e671870616c6c65741870616c6c65741043616c6c04045400018010626f6e6408011476616c7565a102013042616c616e63654f663c543e0001147061796565c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616ca102013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c7565a102013042616c616e63654f663c543e00025451015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e003d01546865207374617368206d6179206265206368696c6c656420696620746865206c656467657220746f74616c20616d6f756e742066616c6c7320746f203020616674657220756e626f6e64696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673cc013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473950301645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f70617965650401147061796565c0017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e65777102010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c7102010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f729903011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65735d0101445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573c90101205665633c7533323e0011189443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2ee454686579202a2a6d7573742a2a20626520736f7274656420696e20617363656e64696e67206f726465722c202a616e642a20756e697175652e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c7565a102013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686f950301645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e649d030158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e649d030158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e74a1030134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e74a1030134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c64a5030144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6ea9030144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f72657761726473a5030144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577c4011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c657273ad0301f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572ac01504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616cb10301504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e67b5030115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cbc52656d6f76657320746865206c6567616379205374616b696e67206c6f636b7320696620746865792065786973742e005101546869732072656d6f76657320746865206c6567616379206c6f636b206f6e20746865207374616b652077697468205b60436f6e6669673a3a4f6c6443757272656e6379605d20616e64206372656174657320615501686f6c64206f6e206974206966206e65656465642e20496620616c6c207374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c6420617329016d75636820617320706f737369626c652e205468652072656d61696e696e67207374616b6520697320666f726365642077697468647261776e2066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e306d616e75616c5f736c6173680c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e646578000138736c6173685f6672616374696f6ec4011c50657262696c6c0021541901546869732066756e6374696f6e20616c6c6f777320676f7665726e616e636520746f206d616e75616c6c7920736c61736820612076616c696461746f7220616e6420697320615c2a2a66616c6c6261636b206d656368616e69736d2a2a2e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e0034232320506172616d657465727309012d206076616c696461746f725f737461736860202d20546865207374617368206163636f756e74206f66207468652076616c696461746f7220746f20736c6173682efc2d206065726160202d205468652065726120696e207768696368207468652076616c696461746f722077617320696e2074686520616374697665207365742e49012d2060736c6173685f6672616374696f6e60202d205468652070657263656e74616765206f6620746865207374616b6520746f20736c6173682c2065787072657373656420617320612050657262696c6c2e002c2323204265686176696f72003d0154686520736c6173682077696c6c206265206170706c696564207573696e6720746865207374616e6461726420736c617368696e67206d656368616e6963732c2072657370656374696e672074686580636f6e666967757265642060536c61736844656665724475726174696f6e602e002c54686973206d65616e733a51012d204966207468652076616c696461746f722077617320616c726561647920736c61736865642062792061206869676865722070657263656e7461676520666f72207468652073616d65206572612c20746869739c2020736c6173682077696c6c2068617665206e6f206164646974696f6e616c206566666563742e51012d204966207468652076616c696461746f72207761732070726576696f75736c7920736c61736865642062792061206c6f7765722070657263656e746167652c206f6e6c792074686520646966666572656e636548202077696c6c206265206170706c6965642e3d012d2054686520736c6173682077696c6c2062652064656665727265642062792060536c61736844656665724475726174696f6e602065726173206265666f7265206265696e6720656e61637465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e950300000295020099030c3473705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800009d03103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f766500020000a103103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f766500020000a503103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f70040454019903010c104e6f6f700000000c536574040099030104540001001852656d6f766500020000a903103870616c6c65745f7374616b696e671870616c6c65741870616c6c657420436f6e6669674f7004045401c4010c104e6f6f700000000c5365740400c40104540001001852656d6f766500020000ad030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000b10304184f7074696f6e04045401180108104e6f6e6500000010536f6d650400180000010000b50304184f7074696f6e04045401b9030108104e6f6e6500000010536f6d650400b9030000010000b9030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd03045300000400c10301185665633c543e0000bd03083870616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c7565a102011c42616c616e636500010c65726171020120457261496e6465780000c103000002bd0300c5030c3870616c6c65745f73657373696f6e1870616c6c65741043616c6c040454000108207365745f6b6579730801106b657973c903011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec903084c6b69746368656e73696e6b5f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061150101d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265750201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000124696d5f6f6e6c696e65390101d43c496d4f6e6c696e65206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279cd0301fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001186d69786e6574d10301cc3c4d69786e6574206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001146265656679d50301c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630000cd030c5873705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c69630000d103102473705f6d69786e65741474797065730c617070185075626c69630000040004013c737232353531393a3a5075626c69630000d5030c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c696300000400d903013465636473613a3a5075626c69630000d903000003210000000800dd030c4070616c6c65745f64656d6f63726163791870616c6c65741043616c6c04045400014c1c70726f706f736508012070726f706f73616c31020140426f756e64656443616c6c4f663c543e00011476616c7565a102013042616c616e63654f663c543e0000249c50726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e001501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737480686176652066756e647320746f20636f76657220746865206465706f7369742e00d42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20707265696d6167652e15012d206076616c7565603a2054686520616d6f756e74206f66206465706f73697420286d757374206265206174206c6561737420604d696e696d756d4465706f73697460292e0044456d697473206050726f706f736564602e187365636f6e6404012070726f706f73616c7102012450726f70496e646578000118b45369676e616c732061677265656d656e742077697468206120706172746963756c61722070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e64657211016d75737420686176652066756e647320746f20636f76657220746865206465706f7369742c20657175616c20746f20746865206f726967696e616c206465706f7369742e00c82d206070726f706f73616c603a2054686520696e646578206f66207468652070726f706f73616c20746f207365636f6e642e10766f74650801247265665f696e6465787102013c5265666572656e64756d496e646578000110766f7465e401644163636f756e74566f74653c42616c616e63654f663c543e3e00021c3101566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00dc2d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e40656d657267656e63795f63616e63656c0401247265665f696e64657810013c5265666572656e64756d496e6465780003204d015363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d652c7265666572656e64756d2e00f8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c6c6174696f6e4f726967696e602e00d02d607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e003c5765696768743a20604f283129602e4065787465726e616c5f70726f706f736504012070726f706f73616c31020140426f756e64656443616c6c4f663c543e0004182d015363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c2c7265666572656e64756d2e00e8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206045787465726e616c4f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e6465787465726e616c5f70726f706f73655f6d616a6f7269747904012070726f706f73616c31020140426f756e64656443616c6c4f663c543e00052c55015363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c655c616e2065787465726e616c207265666572656e64756d2e00ec546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c4d616a6f726974794f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f283129606065787465726e616c5f70726f706f73655f64656661756c7404012070726f706f73616c31020140426f756e64656443616c6c4f663c543e00062c45015363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f807363686564756c6520616e2065787465726e616c207265666572656e64756d2e00e8546865206469737061746368206f6620746869732063616c6c206d757374206265206045787465726e616c44656661756c744f726967696e602e00d42d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c2e004901556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c6163652061987072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e00385765696768743a20604f2831296028666173745f747261636b0c013470726f706f73616c5f6861736834011c543a3a48617368000134766f74696e675f706572696f64100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e0007404d015363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c65646101696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65e8627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00d0546865206469737061746368206f6620746869732063616c6c206d757374206265206046617374547261636b4f726967696e602e00f42d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e5d012d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f88094d75737420626520616c776179732067726561746572207468616e207a65726f2e350109466f72206046617374547261636b4f726967696e60206d75737420626520657175616c206f722067726561746572207468616e206046617374547261636b566f74696e67506572696f64602e51012d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265b82020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e0040456d697473206053746172746564602e00385765696768743a20604f28312960347665746f5f65787465726e616c04013470726f706f73616c5f6861736834011c543a3a48617368000824b85665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e00d8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520605665746f4f726967696e602e002d012d206070726f706f73616c5f68617368603a2054686520707265696d6167652068617368206f66207468652070726f706f73616c20746f207665746f20616e6420626c61636b6c6973742e003c456d69747320605665746f6564602e00fc5765696768743a20604f2856202b206c6f6728562929602077686572652056206973206e756d626572206f6620606578697374696e67207665746f657273604463616e63656c5f7265666572656e64756d0401247265665f696e6465787102013c5265666572656e64756d496e64657800091c5052656d6f76652061207265666572656e64756d2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e00d42d20607265665f696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2063616e63656c2e004423205765696768743a20604f283129602e2064656c65676174650c0108746f950201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ee1030128436f6e76696374696f6e00011c62616c616e636518013042616c616e63654f663c543e000a50390144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e742e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72590120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f7665642f636f6e736f6c69646174656494202020207468726f7567682060726561705f766f746560206f722060756e766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e28756e64656c6567617465000b30cc556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e742e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f64dc6f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e20776173206973737565642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e0050456d6974732060556e64656c656761746564602e003d015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f66207265666572656e64756d732074686520766f7465722064656c65676174696e6720746f20686173c82020766f746564206f6e2e205765696768742069732063686172676564206173206966206d6178696d756d20766f7465732e58636c6561725f7075626c69635f70726f706f73616c73000c1470436c6561727320616c6c207075626c69632070726f706f73616c732e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f526f6f745f2e003c5765696768743a20604f283129602e18756e6c6f636b040118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000d1ca0556e6c6f636b20746f6b656e732074686174206861766520616e2065787069726564206c6f636b2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00b82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465040114696e64657810013c5265666572656e64756d496e646578000e6c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e000c49663a882d20746865207265666572656e64756d207761732063616e63656c6c65642c206f727c2d20746865207265666572656e64756d206973206f6e676f696e672c206f72902d20746865207265666572656e64756d2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e00a849662c20686f77657665722c20746865207265666572656e64756d2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465887265676973746572656420666f72207265666572656e64756d2060696e646578602e00f42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f7465080118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c5265666572656e64756d496e646578000f3c7c52656d6f7665206120766f746520666f722061207265666572656e64756d2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c5501656974686572206265636175736520746865207265666572656e64756d207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f737420746865207265666572656e64756d206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e004d012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f725420207265666572656e64756d2060696e646578602ef42d2060696e646578603a2054686520696e646578206f66207265666572656e64756d206f662074686520766f746520746f2062652072656d6f7665642e0055015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f66207265666572656e646120746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e24626c61636b6c69737408013470726f706f73616c5f6861736834011c543a3a4861736800013c6d617962655f7265665f696e646578c8015c4f7074696f6e3c5265666572656e64756d496e6465783e00103c45015065726d616e656e746c7920706c61636520612070726f706f73616c20696e746f2074686520626c61636b6c6973742e20546869732070726576656e74732069742066726f6d2065766572206265696e673c70726f706f73656420616761696e2e00510149662063616c6c6564206f6e206120717565756564207075626c6963206f722065787465726e616c2070726f706f73616c2c207468656e20746869732077696c6c20726573756c7420696e206974206265696e67510172656d6f7665642e2049662074686520607265665f696e6465786020737570706c69656420697320616e20616374697665207265666572656e64756d2077697468207468652070726f706f73616c20686173682c687468656e2069742077696c6c2062652063616e63656c6c65642e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c206d7573742062652060426c61636b6c6973744f726967696e602e00f82d206070726f706f73616c5f68617368603a205468652070726f706f73616c206861736820746f20626c61636b6c697374207065726d616e656e746c792e45012d20607265665f696e646578603a20416e206f6e676f696e67207265666572656e64756d2077686f73652068617368206973206070726f706f73616c5f68617368602c2077686963682077696c6c2062652863616e63656c6c65642e0041015765696768743a20604f28702960202874686f756768206173207468697320697320616e20686967682d70726976696c6567652064697370617463682c20776520617373756d65206974206861732061502020726561736f6e61626c652076616c7565292e3c63616e63656c5f70726f706f73616c04012870726f705f696e6465787102012450726f70496e64657800111c4852656d6f766520612070726f706f73616c2e000101546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206043616e63656c50726f706f73616c4f726967696e602e00d02d206070726f705f696e646578603a2054686520696e646578206f66207468652070726f706f73616c20746f2063616e63656c2e00e45765696768743a20604f28702960207768657265206070203d205075626c696350726f70733a3a3c543e3a3a6465636f64655f6c656e282960307365745f6d657461646174610801146f776e6572ec01344d657461646174614f776e65720001286d617962655f68617368e503013c4f7074696f6e3c543a3a486173683e00123cd8536574206f7220636c6561722061206d65746164617461206f6620612070726f706f73616c206f722061207265666572656e64756d2e002c506172616d65746572733acc2d20606f726967696e603a204d75737420636f72726573706f6e6420746f2074686520604d657461646174614f776e6572602e3d01202020202d206045787465726e616c4f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053757065724d616a6f72697479417070726f766560402020202020207468726573686f6c642e5901202020202d206045787465726e616c44656661756c744f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053757065724d616a6f72697479416761696e737460402020202020207468726573686f6c642e4501202020202d206045787465726e616c4d616a6f726974794f726967696e6020666f7220616e2065787465726e616c2070726f706f73616c207769746820746865206053696d706c654d616a6f7269747960402020202020207468726573686f6c642ec8202020202d20605369676e65646020627920612063726561746f7220666f722061207075626c69632070726f706f73616c2ef4202020202d20605369676e65646020746f20636c6561722061206d6574616461746120666f7220612066696e6973686564207265666572656e64756d2ee4202020202d2060526f6f746020746f207365742061206d6574616461746120666f7220616e206f6e676f696e67207265666572656e64756d2eb42d20606f776e6572603a20616e206964656e746966696572206f662061206d65746164617461206f776e65722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee1030c4070616c6c65745f64656d6f637261637928636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000e50304184f7074696f6e04045401340108104e6f6e6500000010536f6d650400340000010000e9030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d626572735d0101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c647102012c4d656d626572436f756e7400012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647102010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed030c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d626572735d0101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c647102012c4d656d626572436f756e7400012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647102010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef1030c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c65741043616c6c04045400011810766f7465080114766f7465735d0101445665633c543a3a4163636f756e7449643e00011476616c7565a102013042616c616e63654f663c543e00004c5901566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e20546869732063616e2062652063616c6c656420746fe07365742074686520696e697469616c20766f7465732c206f722075706461746520616c7265616479206578697374696e6720766f7465732e005d0155706f6e20696e697469616c20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e642061206465706f73697420616d6f756e742069734d0172657365727665642e20546865206465706f736974206973206261736564206f6e20746865206e756d626572206f6620766f74657320616e642063616e2062652075706461746564206f7665722074696d652e004c5468652060766f746573602073686f756c643a4420202d206e6f7420626520656d7074792e550120202d206265206c657373207468616e20746865206e756d626572206f6620706f737369626c652063616e646964617465732e204e6f7465207468617420616c6c2063757272656e74206d656d6265727320616e6411012020202072756e6e6572732d75702061726520616c736f206175746f6d61746963616c6c792063616e6469646174657320666f7220746865206e65787420726f756e642e0049014966206076616c756560206973206d6f7265207468616e206077686f60277320667265652062616c616e63652c207468656e20746865206d6178696d756d206f66207468652074776f20697320757365642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e6700550149742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f202a2a4e4f542a2a20706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865a86c6f636b20616e64206b65657020736f6d6520666f722066757274686572206f7065726174696f6e732e3072656d6f76655f766f7465720001146c52656d6f766520606f726967696e60206173206120766f7465722e00b8546869732072656d6f76657320746865206c6f636b20616e642072657475726e7320746865206465706f7369742e00fc546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e656420616e64206265206120766f7465722e407375626d69745f63616e64696461637904013c63616e6469646174655f636f756e747102010c75333200023c11015375626d6974206f6e6573656c6620666f722063616e6469646163792e204120666978656420616d6f756e74206f66206465706f736974206973207265636f726465642e005d01416c6c2063616e64696461746573206172652077697065642061742074686520656e64206f6620746865207465726d2e205468657920656974686572206265636f6d652061206d656d6265722f72756e6e65722d75702ccc6f72206c65617665207468652073797374656d207768696c65207468656972206465706f73697420697320736c61736865642e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642e002c232323205761726e696e67005d014576656e20696620612063616e64696461746520656e6473207570206265696e672061206d656d6265722c2074686579206d7573742063616c6c205b6043616c6c3a3a72656e6f756e63655f63616e646964616379605d5901746f20676574207468656972206465706f736974206261636b2e204c6f73696e67207468652073706f7420696e20616e20656c656374696f6e2077696c6c20616c77617973206c65616420746f206120736c6173682e000901546865206e756d626572206f662063757272656e742063616e64696461746573206d7573742062652070726f7669646564206173207769746e65737320646174612e34232320436f6d706c6578697479a44f2843202b206c6f672843292920776865726520432069732063616e6469646174655f636f756e742e4872656e6f756e63655f63616e64696461637904012872656e6f756e63696e67f503012852656e6f756e63696e670003504d0152656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c3c6f7574636f6d65732065786973743a0049012d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c20746865206465706f736974206973f02020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e61012d20606f726967696e6020697320612063757272656e742072756e6e65722d75702e20496e207468697320636173652c20746865206465706f73697420697320756e72657365727665642c2072657475726e656420616e648c20206f726967696e2069732072656d6f76656420617320612072756e6e65722d75702e55012d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c20746865206465706f73697420697320756e726573657276656420616e64206f726967696e2069735501202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e6101202053696d696c617220746f205b6072656d6f76655f6d656d626572605d2853656c663a3a72656d6f76655f6d656d626572292c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865795901202061726520696d6d6564696174656c7920757365642e20496620746865207072696d652069732072656e6f756e63696e672c207468656e206e6f207072696d652077696c6c20657869737420756e74696c207468653420206e65787420726f756e642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642c20616e642068617665206f6e65206f66207468652061626f766520726f6c65732ee05468652074797065206f662072656e6f756e63696e67206d7573742062652070726f7669646564206173207769746e65737320646174612e0034232320436f6d706c6578697479dc20202d2052656e6f756e63696e673a3a43616e64696461746528636f756e74293a204f28636f756e74202b206c6f6728636f756e7429297020202d2052656e6f756e63696e673a3a4d656d6265723a204f2831297820202d2052656e6f756e63696e673a3a52756e6e657255703a204f2831293472656d6f76655f6d656d6265720c010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000128736c6173685f626f6e64200110626f6f6c000138726572756e5f656c656374696f6e200110626f6f6c000440590152656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f667c746865206f7574676f696e67206d656d62657220697320736c61736865642e005501496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c616365732074686555016f7574676f696e67206d656d6265722e204f74686572776973652c2069662060726572756e5f656c656374696f6e60206973206074727565602c2061206e65772070687261676d656e20656c656374696f6e2069737c737461727465642c20656c73652c206e6f7468696e672068617070656e732e00590149662060736c6173685f626f6e64602069732073657420746f20747275652c2074686520626f6e64206f6620746865206d656d626572206265696e672072656d6f76656420697320736c61736865642e20456c73652c3c69742069732072657475726e65642e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0041014e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e0034232320436f6d706c657869747905012d20436865636b2064657461696c73206f662072656d6f76655f616e645f7265706c6163655f6d656d626572282920616e6420646f5f70687261676d656e28292e50636c65616e5f646566756e63745f766f746572730801286e756d5f766f7465727310010c75333200012c6e756d5f646566756e637410010c7533320005244501436c65616e20616c6c20766f746572732077686f2061726520646566756e63742028692e652e207468657920646f206e6f7420736572766520616e7920707572706f736520617420616c6c292e20546865ac6465706f736974206f66207468652072656d6f76656420766f74657273206172652072657475726e65642e0001015468697320697320616e20726f6f742066756e6374696f6e20746f2062652075736564206f6e6c7920666f7220636c65616e696e67207468652073746174652e00b8546865206469737061746368206f726967696e206f6620746869732063616c6c206d75737420626520726f6f742e0034232320436f6d706c65786974798c2d20436865636b2069735f646566756e63745f766f74657228292064657461696c732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef503086470616c6c65745f656c656374696f6e735f70687261676d656e2852656e6f756e63696e6700010c184d656d6265720000002052756e6e657255700001002443616e64696461746504007102010c75333200020000f9030c4470616c6c65745f6d656d626572736869701870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00000c784164642061206d656d626572206077686f6020746f20746865207365742e009c4d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a4164644f726967696e602e3472656d6f76655f6d656d62657204010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00010c8c52656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656d6f76654f726967696e602e2c737761705f6d656d62657208011872656d6f7665950201504163636f756e7449644c6f6f6b75704f663c543e00010c616464950201504163636f756e7449644c6f6f6b75704f663c543e000214bc53776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00a04d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a537761704f726967696e602e000d015072696d65206d656d62657273686970206973202a6e6f742a207061737365642066726f6d206072656d6f76656020746f2060616464602c20696620657874616e742e3472657365745f6d656d6265727304011c6d656d626572735d0101445665633c543a3a4163636f756e7449643e00031055014368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e64687061737320606d656d6265727360207072652d736f727465642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52657365744f726967696e602e286368616e67655f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e000414d453776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f04d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e001d015072696d65206d656d62657273686970206973207061737365642066726f6d20746865206f726967696e206163636f756e7420746f20606e6577602c20696620657874616e742e247365745f7072696d6504010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00050cbc53657420746865207072696d65206d656d6265722e204d75737420626520612063757272656e74206d656d6265722e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e2c636c6561725f7072696d6500060c9452656d6f766520746865207072696d65206d656d626572206966206974206578697374732e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5072696d654f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd030c3870616c6c65745f6772616e6470611870616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66010401c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66010401c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0104085073705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e0504014845717569766f636174696f6e3c482c204e3e00000504085073705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400090401890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d697404001d0401910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e000100000904084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c0849640115010456010d04045301110400100130726f756e645f6e756d62657230010c7536340001206964656e7469747915010108496400011466697273741904011828562c2053290001187365636f6e641904011828562c20532900000d04084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e000011040c5073705f636f6e73656e7375735f6772616e6470610c617070245369676e61747572650000040015040148656432353531393a3a5369676e6174757265000015040000034000000008001904000004080d041104001d04084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c0849640115010456012104045301110400100130726f756e645f6e756d62657230010c7536340001206964656e7469747915010108496400011466697273742504011828562c2053290001187365636f6e642504011828562c20532900002104084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000250400000408210411040029040c3c70616c6c65745f74726561737572791870616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e74a102013c42616c616e63654f663c542c20493e00012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69647102013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e000118616d6f756e74a1020150417373657442616c616e63654f663c542c20493e00012c62656e656669636961727995020178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6dc801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d040c4470616c6c65745f61737365745f726174651870616c6c65741043616c6c04045400010c1863726561746508012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e00011072617465210101244669786564553132380000100d01496e697469616c697a65206120636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291875706461746508012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e000110726174652101012446697865645531323800011005015570646174652074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f2831291872656d6f766504012861737365745f6b696e64a00144426f783c543a3a41737365744b696e643e000210250152656d6f766520616e206578697374696e6720636f6e76657273696f6e207261746520746f206e61746976652062616c616e636520666f722074686520676976656e2061737365742e0034232320436f6d706c6578697479182d204f283129040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31040c4070616c6c65745f636f6e7472616374731870616c6c65741043616c6c0404540001283c63616c6c5f6f6c645f77656967687414011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746138011c5665633c75383e0000041501446570726563617465642076657273696f6e206966205b6053656c663a3a63616c6c605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e80696e7374616e74696174655f776974685f636f64655f6f6c645f77656967687418011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0001045901446570726563617465642076657273696f6e206966205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e58696e7374616e74696174655f6f6c645f77656967687418011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d69742c01244f6c6457656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736834012c436f6465486173683c543e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0002043101446570726563617465642076657273696f6e206966205b6053656c663a3a696e7374616e7469617465605d20666f722075736520696e20616e20696e2d73746f72616765206043616c6c602e2c75706c6f61645f636f64650c0110636f646538011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e00012c64657465726d696e69736d3904012c44657465726d696e69736d000360ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665ac646570656e6473206f6e207468652073697a65206f662074686520737570706c6965642060636f6465602e00310149662074686520636f646520616c72656164792065786973747320696e2073746f726167652069742077696c6c207374696c6c2072657475726e20604f6b6020616e642075706772616465739474686520696e2073746f726167652076657273696f6e20746f207468652063757272656e74d05b60496e737472756374696f6e576569676874733a3a76657273696f6e605d28496e737472756374696f6e57656967687473292e0055012d206064657465726d696e69736d603a20496620746869732069732073657420746f20616e79206f746865722076616c756520627574205b6044657465726d696e69736d3a3a456e666f72636564605d207468656e5d012020746865206f6e6c792077617920746f20757365207468697320636f646520697320746f2064656c65676174652063616c6c20696e746f2069742066726f6d20616e206f6666636861696e20657865637574696f6e2ebc202053657420746f205b6044657465726d696e69736d3a3a456e666f72636564605d20696620696e20646f7562742e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e005101557365205b6044657465726d696e69736d3a3a52656c61786564605d206578636c75736976656c7920666f72206e6f6e2d64657465726d696e697374696320636f64652e204966207468652075706c6f616465644901636f64652069732064657465726d696e69737469632c2073706563696679696e67205b6044657465726d696e69736d3a3a52656c61786564605d2077696c6c20626520646973726567617264656420616e646c726573756c7420696e206869676865722067617320636f7374732e2c72656d6f76655f636f6465040124636f64655f6861736834012c436f6465486173683c543e000410350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e207365745f636f646508011064657374950201504163636f756e7449644c6f6f6b75704f663c543e000124636f64655f6861736834012c436f6465486173683c543e000528090150726976696c656765642066756e6374696f6e2074686174206368616e6765732074686520636f6465206f6620616e206578697374696e6720636f6e74726163742e004501546869732074616b65732063617265206f66207570646174696e6720726566636f756e747320616e6420616c6c206f74686572206e6563657373617279206f7065726174696f6e732e2052657475726e73e8616e206572726f7220696620656974686572207468652060636f64655f6861736860206f722060646573746020646f206e6f742065786973742e001823204e6f74650031015468697320646f6573202a2a6e6f742a2a206368616e6765207468652061646472657373206f662074686520636f6e747261637420696e207175657374696f6e2e2054686973206d65616e733d01746861742074686520636f6e74726163742061646472657373206973206e6f206c6f6e67657220646572697665642066726f6d2069747320636f646520686173682061667465722063616c6c696e67487468697320646973706174636861626c652e1063616c6c14011064657374950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e0001106461746138011c5665633c75383e00064005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e54696e7374616e74696174655f776974685f636f646518011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e0007643101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e31012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e20536565205b6050616c6c65743a3a636f6e74726163745f61646472657373605d2e0094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0039012d2054686520737570706c6965642060636f646560206973206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c696e7374616e746961746518011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974350401c44f7074696f6e3c3c42616c616e63654f663c543e20617320636f6465633a3a486173436f6d706163743e3a3a547970653e000124636f64655f6861736834012c436f6465486173683c543e0001106461746138011c5665633c75383e00011073616c7438011c5665633c75383e000814fc496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654901636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e617279446d75737420626520737570706c6965642e1c6d6967726174650401307765696768745f6c696d697428011857656967687400091059015768656e2061206d6967726174696f6e20697320696e2070726f67726573732c207468697320646973706174636861626c652063616e206265207573656420746f2072756e206d6967726174696f6e2073746570732e610143616c6c73207468617420636f6e7472696275746520746f20616476616e63696e6720746865206d6967726174696f6e20686176652074686569722066656573207761697665642c20617320697427732068656c7066756c4501666f722074686520636861696e2e204e6f74652074686174207768696c6520746865206d6967726174696f6e20697320696e2070726f67726573732c207468652070616c6c65742077696c6c20616c736fd06c657665726167652074686520606f6e5f69646c656020686f6f6b7320746f2072756e206d6967726174696f6e2073746570732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e350404184f7074696f6e04045401a1020108104e6f6e6500000010536f6d650400a102000001000039040c4070616c6c65745f636f6e747261637473107761736d2c44657465726d696e69736d00010820456e666f726365640000001c52656c61786564000100003d040c2c70616c6c65745f7375646f1870616c6c65741043616c6c040454000114107375646f04011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41040c4070616c6c65745f696d5f6f6e6c696e651870616c6c65741043616c6c04045400010424686561727462656174080124686561727462656174450401704865617274626561743c426c6f636b4e756d626572466f723c543e3e0001247369676e6174757265490401bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500000c38232320436f6d706c65786974793afc2d20604f284b2960207768657265204b206973206c656e677468206f6620604b6579736020286865617274626561742e76616c696461746f72735f6c656e298820202d20604f284b29603a206465636f64696e67206f66206c656e67746820604b60040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4504084070616c6c65745f696d5f6f6e6c696e6524486561727462656174042c426c6f636b4e756d626572011000100130626c6f636b5f6e756d62657210012c426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e64657810012441757468496e64657800013876616c696461746f72735f6c656e10010c75333200004904104070616c6c65745f696d5f6f6e6c696e651c737232353531392c6170705f73723235353139245369676e61747572650000040015040148737232353531393a3a5369676e617475726500004d040c3c70616c6c65745f6964656e746974791870616c6c65741043616c6c040454000160346164645f72656769737472617204011c6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e00001c7841646420612072656769737472617220746f207468652073797374656d2e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060543a3a5265676973747261724f726967696e602e00a82d20606163636f756e74603a20746865206163636f756e74206f6620746865207265676973747261722e0094456d6974732060526567697374726172416464656460206966207375636365737366756c2e307365745f6964656e74697479040110696e666f5104016c426f783c543a3a4964656e74697479496e666f726d6174696f6e3e000128290153657420616e206163636f756e742773206964656e7469747920696e666f726d6174696f6e20616e6420726573657276652074686520617070726f707269617465206465706f7369742e005501496620746865206163636f756e7420616c726561647920686173206964656e7469747920696e666f726d6174696f6e2c20746865206465706f7369742069732074616b656e2061732070617274207061796d656e7450666f7220746865206e6577206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e008c2d2060696e666f603a20546865206964656e7469747920696e666f726d6174696f6e2e0088456d69747320604964656e7469747953657460206966207375636365737366756c2e207365745f7375627304011073756273dd0401645665633c28543a3a4163636f756e7449642c2044617461293e0002248c53657420746865207375622d6163636f756e7473206f66207468652073656e6465722e0055015061796d656e743a20416e79206167677265676174652062616c616e63652072657365727665642062792070726576696f757320607365745f73756273602063616c6c732077696c6c2062652072657475726e65642d01616e6420616e20616d6f756e7420605375624163636f756e744465706f736974602077696c6c20626520726573657276656420666f722065616368206974656d20696e206073756273602e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e00b02d206073756273603a20546865206964656e74697479277320286e657729207375622d6163636f756e74732e38636c6561725f6964656e746974790003203901436c65617220616e206163636f756e742773206964656e7469747920696e666f20616e6420616c6c207375622d6163636f756e747320616e642072657475726e20616c6c206465706f736974732e00ec5061796d656e743a20416c6c2072657365727665642062616c616e636573206f6e20746865206163636f756e74206172652072657475726e65642e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520612072656769737465726564246964656e746974792e0098456d69747320604964656e74697479436c656172656460206966207375636365737366756c2e44726571756573745f6a756467656d656e740801247265675f696e64657871020138526567697374726172496e64657800011c6d61785f666565a102013042616c616e63654f663c543e00044094526571756573742061206a756467656d656e742066726f6d2061207265676973747261722e0055015061796d656e743a204174206d6f737420606d61785f666565602077696c6c20626520726573657276656420666f72207061796d656e7420746f2074686520726567697374726172206966206a756467656d656e7418676976656e2e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e001d012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973207265717565737465642e55012d20606d61785f666565603a20546865206d6178696d756d206665652074686174206d617920626520706169642e20546869732073686f756c64206a757374206265206175746f2d706f70756c617465642061733a00306060606e6f636f6d70696c65c8526567697374726172733a3a3c543e3a3a67657428292e676574287265675f696e646578292e756e7772617028292e6665650c60606000a4456d69747320604a756467656d656e7452657175657374656460206966207375636365737366756c2e3863616e63656c5f726571756573740401247265675f696e646578100138526567697374726172496e6465780005286843616e63656c20612070726576696f757320726571756573742e00f85061796d656e743a20412070726576696f75736c79207265736572766564206465706f7369742069732072657475726e6564206f6e20737563636573732e003501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206861766520615072656769737465726564206964656e746974792e0045012d20607265675f696e646578603a2054686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206e6f206c6f6e676572207265717565737465642e00ac456d69747320604a756467656d656e74556e72657175657374656460206966207375636365737366756c2e1c7365745f666565080114696e64657871020138526567697374726172496e64657800010c666565a102013042616c616e63654f663c543e00061c1901536574207468652066656520726571756972656420666f722061206a756467656d656e7420746f206265207265717565737465642066726f6d2061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e542d2060666565603a20746865206e6577206665652e387365745f6163636f756e745f6964080114696e64657871020138526567697374726172496e64657800010c6e6577950201504163636f756e7449644c6f6f6b75704f663c543e00071cbc4368616e676520746865206163636f756e74206173736f63696174656420776974682061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e702d20606e6577603a20746865206e6577206163636f756e742049442e287365745f6669656c6473080114696e64657871020138526567697374726172496e6465780001186669656c6473300129013c543a3a4964656e74697479496e666f726d6174696f6e206173204964656e74697479496e666f726d6174696f6e50726f76696465723e3a3a0a4669656c64734964656e74696669657200081ca853657420746865206669656c6420696e666f726d6174696f6e20666f722061207265676973747261722e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74a06f6620746865207265676973747261722077686f736520696e6465782069732060696e646578602e00f42d2060696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f73652066656520697320746f206265207365742e0d012d20606669656c6473603a20746865206669656c64732074686174207468652072656769737472617220636f6e6365726e73207468656d73656c76657320776974682e4470726f766964655f6a756467656d656e741001247265675f696e64657871020138526567697374726172496e646578000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e0001246a756467656d656e74e504015c4a756467656d656e743c42616c616e63654f663c543e3e0001206964656e7469747934011c543a3a4861736800093cb850726f766964652061206a756467656d656e7420666f7220616e206163636f756e742773206964656e746974792e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420626520746865206163636f756e74b06f6620746865207265676973747261722077686f736520696e64657820697320607265675f696e646578602e0021012d20607265675f696e646578603a2074686520696e646578206f6620746865207265676973747261722077686f7365206a756467656d656e74206973206265696e67206d6164652e55012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e49012d20606a756467656d656e74603a20746865206a756467656d656e74206f662074686520726567697374726172206f6620696e64657820607265675f696e646578602061626f75742060746172676574602e5d012d20606964656e74697479603a205468652068617368206f6620746865205b604964656e74697479496e666f726d6174696f6e50726f7669646572605d20666f72207468617420746865206a756467656d656e742069732c202070726f76696465642e00b04e6f74653a204a756467656d656e747320646f206e6f74206170706c7920746f206120757365726e616d652e0094456d69747320604a756467656d656e74476976656e60206966207375636365737366756c2e346b696c6c5f6964656e74697479040118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000a30410152656d6f766520616e206163636f756e742773206964656e7469747920616e64207375622d6163636f756e7420696e666f726d6174696f6e20616e6420736c61736820746865206465706f736974732e0061015061796d656e743a2052657365727665642062616c616e6365732066726f6d20607365745f737562736020616e6420607365745f6964656e74697479602061726520736c617368656420616e642068616e646c6564206279450160536c617368602e20566572696669636174696f6e2072657175657374206465706f7369747320617265206e6f742072657475726e65643b20746865792073686f756c642062652063616e63656c6c6564806d616e75616c6c79207573696e67206063616e63656c5f72657175657374602e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e0055012d2060746172676574603a20746865206163636f756e742077686f7365206964656e7469747920746865206a756467656d656e742069732075706f6e2e2054686973206d75737420626520616e206163636f756e747420207769746820612072656769737465726564206964656e746974792e0094456d69747320604964656e746974794b696c6c656460206966207375636365737366756c2e1c6164645f73756208010c737562950201504163636f756e7449644c6f6f6b75704f663c543e000110646174615d04011044617461000b1cac4164642074686520676976656e206163636f756e7420746f207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656e616d655f73756208010c737562950201504163636f756e7449644c6f6f6b75704f663c543e000110646174615d04011044617461000c10cc416c74657220746865206173736f636961746564206e616d65206f662074686520676976656e207375622d6163636f756e742e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e2872656d6f76655f73756204010c737562950201504163636f756e7449644c6f6f6b75704f663c543e000d1cc052656d6f76652074686520676976656e206163636f756e742066726f6d207468652073656e646572277320737562732e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c20626520726570617472696174656438746f207468652073656e6465722e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652061207265676973746572656458737562206964656e74697479206f662060737562602e20717569745f737562000e288c52656d6f7665207468652073656e6465722061732061207375622d6163636f756e742e005d015061796d656e743a2042616c616e636520726573657276656420627920612070726576696f757320607365745f73756273602063616c6c20666f72206f6e65207375622077696c6c206265207265706174726961746564b4746f207468652073656e64657220282a6e6f742a20746865206f726967696e616c206465706f7369746f72292e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d7573742068617665206120726567697374657265643c73757065722d6964656e746974792e0045014e4f54453a20546869732073686f756c64206e6f74206e6f726d616c6c7920626520757365642c206275742069732070726f766964656420696e207468652063617365207468617420746865206e6f6e2d1101636f6e74726f6c6c6572206f6620616e206163636f756e74206973206d616c6963696f75736c7920726567697374657265642061732061207375622d6163636f756e742e586164645f757365726e616d655f617574686f726974790c0124617574686f72697479950201504163636f756e7449644c6f6f6b75704f663c543e00011873756666697838011c5665633c75383e000128616c6c6f636174696f6e10010c753332000f14550141646420616e20604163636f756e744964602077697468207065726d697373696f6e20746f206772616e7420757365726e616d65732077697468206120676976656e20607375666669786020617070656e6465642e00450154686520617574686f726974792063616e206772616e7420757020746f2060616c6c6f636174696f6e6020757365726e616d65732e20546f20746f702075702074686520616c6c6f636174696f6e206f7249016368616e676520746865206163636f756e74207573656420746f206772616e7420757365726e616d65732c20746869732063616c6c2063616e20626520757365642077697468207468652075706461746564cc706172616d657465727320746f206f766572777269746520746865206578697374696e6720636f6e66696775726174696f6e2e6472656d6f76655f757365726e616d655f617574686f7269747908011873756666697838011c5665633c75383e000124617574686f72697479950201504163636f756e7449644c6f6f6b75704f663c543e001004c452656d6f76652060617574686f72697479602066726f6d2074686520757365726e616d6520617574686f7269746965732e407365745f757365726e616d655f666f7210010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000120757365726e616d6538011c5665633c75383e0001247369676e6174757265e90401704f7074696f6e3c543a3a4f6666636861696e5369676e61747572653e0001387573655f616c6c6f636174696f6e200110626f6f6c0011340d015365742074686520757365726e616d6520666f72206077686f602e204d7573742062652063616c6c6564206279206120757365726e616d6520617574686f726974792e005901496620607573655f616c6c6f636174696f6e60206973207365742c2074686520617574686f72697479206d7573742068617665206120757365726e616d6520616c6c6f636174696f6e20617661696c61626c6520746f45017370656e642e204f74686572776973652c2074686520617574686f726974792077696c6c206e65656420746f207075742075702061206465706f73697420666f72207265676973746572696e672074686524757365726e616d652e00b055736572732063616e20656974686572207072652d7369676e20746865697220757365726e616d6573206f7248616363657074207468656d206c617465722e003c557365726e616d6573206d7573743ad820202d204f6e6c7920636f6e7461696e206c6f776572636173652041534349492063686172616374657273206f72206469676974732e350120202d205768656e20636f6d62696e656420776974682074686520737566666978206f66207468652069737375696e6720617574686f72697479206265205f6c657373207468616e5f207468656020202020604d6178557365726e616d654c656e677468602e3c6163636570745f757365726e616d65040120757365726e616d655501012c557365726e616d653c543e0012084d01416363657074206120676976656e20757365726e616d65207468617420616e2060617574686f7269747960206772616e7465642e205468652063616c6c206d75737420696e636c756465207468652066756c6c88757365726e616d652c20617320696e2060757365726e616d652e737566666978602e5c72656d6f76655f657870697265645f617070726f76616c040120757365726e616d655501012c557365726e616d653c543e00130c610152656d6f766520616e206578706972656420757365726e616d6520617070726f76616c2e2054686520757365726e616d652077617320617070726f76656420627920616e20617574686f7269747920627574206e657665725501616363657074656420627920746865207573657220616e64206d757374206e6f77206265206265796f6e64206974732065787069726174696f6e2e205468652063616c6c206d75737420696e636c756465207468659c66756c6c20757365726e616d652c20617320696e2060757365726e616d652e737566666978602e507365745f7072696d6172795f757365726e616d65040120757365726e616d655501012c557365726e616d653c543e0014043101536574206120676976656e20757365726e616d6520617320746865207072696d6172792e2054686520757365726e616d652073686f756c6420696e636c75646520746865207375666669782e3c756e62696e645f757365726e616d65040120757365726e616d655501012c557365726e616d653c543e00150c59015374617274207468652070726f63657373206f662072656d6f76696e67206120757365726e616d6520627920706c6163696e6720697420696e2074686520756e62696e64696e6720757365726e616d6573206d61702e21014f6e63652074686520677261636520706572696f6420686173207061737365642c2074686520757365726e616d652063616e2062652064656c657465642062792063616c6c696e67c05b72656d6f76655f757365726e616d655d2863726174653a3a43616c6c3a3a72656d6f76655f757365726e616d65292e3c72656d6f76655f757365726e616d65040120757365726e616d655501012c557365726e616d653c543e00160861015065726d616e656e746c792064656c657465206120757365726e616d6520776869636820686173206265656e20756e62696e64696e6720666f72206c6f6e676572207468616e2074686520677261636520706572696f642e490143616c6c657220697320726566756e64656420746865206665652069662074686520757365726e616d65206578706972656420616e64207468652072656d6f76616c20776173207375636365737366756c2e346b696c6c5f757365726e616d65040120757365726e616d655501012c557365726e616d653c543e0017085d0143616c6c2077697468205b466f7263654f726967696e5d2863726174653a3a436f6e6669673a3a466f7263654f726967696e292070726976696c656765732077686963682064656c65746573206120757365726e616d65ac616e6420736c617368657320616e79206465706f736974206173736f63696174656420776974682069742e04704964656e746974792070616c6c6574206465636c61726174696f6e2e51040c3c70616c6c65745f6964656e74697479186c6567616379304964656e74697479496e666f04284669656c644c696d697400002401286164646974696f6e616c55040190426f756e6465645665633c28446174612c2044617461292c204669656c644c696d69743e00011c646973706c61795d040110446174610001146c6567616c5d0401104461746100010c7765625d0401104461746100011072696f745d04011044617461000114656d61696c5d0401104461746100013c7067705f66696e6765727072696e74d90401404f7074696f6e3c5b75383b2032305d3e000114696d6167655d0401104461746100011c747769747465725d04011044617461000055040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015904045300000400d50401185665633c543e00005904000004085d045d04005d040c3c70616c6c65745f6964656e746974791474797065731044617461000198104e6f6e65000000105261773004006104000001001052617731040065040000020010526177320400690400000300105261773304006d0400000400105261773404004800000500105261773504007104000006001052617736040075040000070010526177370400790400000800105261773804007d040000090010526177390400810400000a001452617731300400850400000b001452617731310400890400000c0014526177313204008d0400000d001452617731330400910400000e001452617731340400950400000f001452617731350400990400001000145261773136040049010000110014526177313704009d04000012001452617731380400a104000013001452617731390400a5040000140014526177323004009902000015001452617732310400a904000016001452617732320400ad04000017001452617732330400b104000018001452617732340400b504000019001452617732350400b90400001a001452617732360400bd0400001b001452617732370400c10400001c001452617732380400c50400001d001452617732390400c90400001e001452617733300400cd0400001f001452617733310400d10400002000145261773332040004000021002c426c616b6554776f323536040004000022001853686132353604000400002300244b656363616b323536040004000024002c536861546872656532353604000400002500006104000003000000000800650400000301000000080069040000030200000008006d040000030300000008007104000003050000000800750400000306000000080079040000030700000008007d04000003080000000800810400000309000000080085040000030a000000080089040000030b00000008008d040000030c000000080091040000030d000000080095040000030e000000080099040000030f00000008009d04000003110000000800a104000003120000000800a504000003130000000800a904000003150000000800ad04000003160000000800b104000003170000000800b504000003180000000800b904000003190000000800bd040000031a0000000800c1040000031b0000000800c5040000031c0000000800c9040000031d0000000800cd040000031e0000000800d1040000031f0000000800d504000002590400d90404184f7074696f6e0404540199020108104e6f6e6500000010536f6d65040099020000010000dd04000002e10400e10400000408005d0400e5040c3c70616c6c65745f6964656e74697479147479706573244a756467656d656e74041c42616c616e63650118011c1c556e6b6e6f776e0000001c46656550616964040018011c42616c616e636500010028526561736f6e61626c65000200244b6e6f776e476f6f64000300244f75744f6644617465000400284c6f775175616c697479000500244572726f6e656f757300060000e90404184f7074696f6e04045401ed040108104e6f6e6500000010536f6d650400ed040000010000ed04082873705f72756e74696d65384d756c74695369676e617475726500010c1c45643235353139040015040148656432353531393a3a5369676e61747572650000001c53723235353139040015040148737232353531393a3a5369676e61747572650001001445636473610400f104014065636473613a3a5369676e617475726500020000f104000003410000000800f5040c3870616c6c65745f736f63696574791870616c6c65741043616c6c0804540004490001540c62696404011476616c756518013c42616c616e63654f663c542c20493e000024dc412075736572206f757473696465206f662074686520736f63696574792063616e206d616b6520612062696420666f7220656e7472792e0061015061796d656e743a205468652067726f757027732043616e646964617465204465706f7369742077696c6c20626520726573657276656420666f72206d616b696e672061206269642e2049742069732072657475726e6564ec7768656e2074686520626964206265636f6d65732061206d656d6265722c206f7220696620746865206269642063616c6c732060756e626964602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d206076616c7565603a2041206f6e652074696d65207061796d656e74207468652062696420776f756c64206c696b6520746f2072656365697665207768656e206a6f696e696e672074686520736f63696574792e14756e62696400011cd441206269646465722063616e2072656d6f76652074686569722062696420666f7220656e74727920696e746f20736f63696574792efc427920646f696e6720736f2c20746865792077696c6c20686176652074686569722063616e646964617465206465706f7369742072657475726e6564206f7280746865792077696c6c20756e766f75636820746865697220766f75636865722e00f85061796d656e743a2054686520626964206465706f73697420697320756e7265736572766564206966207468652075736572206d6164652061206269642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206269646465722e14766f7563680c010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756518013c42616c616e63654f663c542c20493e00010c74697018013c42616c616e63654f663c542c20493e000244410141732061206d656d6265722c20766f75636820666f7220736f6d656f6e6520746f206a6f696e20736f636965747920627920706c6163696e67206120626964206f6e20746865697220626568616c662e0051015468657265206973206e6f206465706f73697420726571756972656420746f20766f75636820666f722061206e6577206269642c206275742061206d656d6265722063616e206f6e6c7920766f75636820666f7259016f6e652062696420617420612074696d652e2049662074686520626964206265636f6d657320612073757370656e6465642063616e64696461746520616e6420756c74696d6174656c792072656a65637465642062793d017468652073757370656e73696f6e206a756467656d656e74206f726967696e2c20746865206d656d6265722077696c6c2062652062616e6e65642066726f6d20766f756368696e6720616761696e2e0055014173206120766f756368696e67206d656d6265722c20796f752063616e20636c61696d206120746970206966207468652063616e6469646174652069732061636365707465642e2054686973207469702077696c6c4d0162652070616964206173206120706f7274696f6e206f66207468652072657761726420746865206d656d6265722077696c6c207265636569766520666f72206a6f696e696e672074686520736f63696574792e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733ac82d206077686f603a2054686520757365722077686f20796f7520776f756c64206c696b6520746f20766f75636820666f722e4d012d206076616c7565603a2054686520746f74616c2072657761726420746f2062652070616964206265747765656e20796f7520616e64207468652063616e6469646174652069662074686579206265636f6d656061206d656d62657220696e2074686520736f63696574792e45012d2060746970603a20596f757220637574206f662074686520746f74616c206076616c756560207061796f7574207768656e207468652063616e64696461746520697320696e64756374656420696e746f110174686520736f63696574792e2054697073206c6172676572207468616e206076616c7565602077696c6c206265207361747572617465642075706f6e207061796f75742e1c756e766f75636800031c29014173206120766f756368696e67206d656d6265722c20756e766f7563682061206269642e2054686973206f6e6c7920776f726b73207768696c6520766f75636865642075736572206973906f6e6c792061206269646465722028616e64206e6f7420612063616e646964617465292e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206120766f756368696e67206d656d6265722e002c506172616d65746572733a29012d2060706f73603a20506f736974696f6e20696e207468652060426964736020766563746f72206f6620746865206269642077686f2073686f756c6420626520756e766f75636865642e10766f746508012463616e646964617465950201504163636f756e7449644c6f6f6b75704f663c543e00011c617070726f7665200110626f6f6c0004208441732061206d656d6265722c20766f7465206f6e20612063616e6469646174652e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733a09012d206063616e646964617465603a205468652063616e646964617465207468617420746865206d656d62657220776f756c64206c696b6520746f20626964206f6e2e45012d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c6420626520617070726f766564202860747275656029206f7254202072656a656374656420286066616c736560292e34646566656e6465725f766f746504011c617070726f7665200110626f6f6c00051c8841732061206d656d6265722c20766f7465206f6e2074686520646566656e6465722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722e002c506172616d65746572733af02d2060617070726f7665603a204120626f6f6c65616e2077686963682073617973206966207468652063616e6469646174652073686f756c64206265a0617070726f766564202860747275656029206f722072656a656374656420286066616c736560292e187061796f757400062841015472616e7366657220746865206669727374206d617475726564207061796f757420666f72207468652073656e64657220616e642072656d6f76652069742066726f6d20746865207265636f7264732e0041014e4f54453a20546869732065787472696e736963206e6565647320746f2062652063616c6c6564206d756c7469706c652074696d657320746f20636c61696d206d756c7469706c65206d617475726564207061796f7574732e001d015061796d656e743a20546865206d656d6265722077696c6c20726563656976652061207061796d656e7420657175616c20746f207468656972206669727374206d617475726564747061796f757420746f20746865697220667265652062616c616e63652e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642061206d656d6265722077697468487061796f7574732072656d61696e696e672e2c77616976655f7265706179040118616d6f756e7418013c42616c616e63654f663c542c20493e0007084d01526570617920746865207061796d656e742070726576696f75736c7920676976656e20746f20746865206d656d626572207769746820746865207369676e6564206f726967696e2c2072656d6f766520616e79e470656e64696e67207061796d656e74732c20616e6420656c6576617465207468656d2066726f6d2072616e6b203020746f2072616e6b20312e34666f756e645f736f636965747918011c666f756e646572950201504163636f756e7449644c6f6f6b75704f663c543e00012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e00011472756c657338011c5665633c75383e00084448466f756e642074686520736f63696574792e00ec5468697320697320646f6e65206173206120646973637265746520616374696f6e20696e206f7264657220746f20616c6c6f7720666f7220746865150170616c6c657420746f20626520696e636c7564656420696e746f20612072756e6e696e6720636861696e20616e642063616e206f6e6c7920626520646f6e65206f6e63652e001901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652066726f6d20746865205f466f756e6465725365744f726967696e5f2e002c506172616d65746572733a15012d2060666f756e64657260202d20546865206669727374206d656d62657220616e642068656164206f6620746865206e65776c7920666f756e64656420736f63696574792e11012d20606d61785f6d656d6265727360202d2054686520696e697469616c206d6178206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702ef02d206072756c657360202d205468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e0040436f6d706c65786974793a204f28312920646973736f6c7665000914b0446973736f6c76652074686520736f636965747920616e642072656d6f766520616c6c206d656d626572732e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642c20616e6420746865207369676e696e67206163636f756e74206d75737420626520626f746855017468652060466f756e6465726020616e6420746865206048656164602e205468697320696d706c6965732074686174206974206d6179206f6e6c7920626520646f6e65207768656e207468657265206973206f6e651c6d656d6265722e586a756467655f73757370656e6465645f6d656d62657208010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011c666f7267697665200110626f6f6c000a382901416c6c6f772073757370656e73696f6e206a756467656d656e74206f726967696e20746f206d616b65206a756467656d656e74206f6e20612073757370656e646564206d656d6265722e005501496620612073757370656e646564206d656d62657220697320666f72676976656e2c2077652073696d706c7920616464207468656d206261636b2061732061206d656d6265722c206e6f7420616666656374696e67c8616e79206f6620746865206578697374696e672073746f72616765206974656d7320666f722074686174206d656d6265722e004501496620612073757370656e646564206d656d6265722069732072656a65637465642c2072656d6f766520616c6c206173736f6369617465642073746f72616765206974656d732c20696e636c7564696e67fc7468656972207061796f7574732c20616e642072656d6f766520616e7920766f7563686564206269647320746865792063757272656e746c7920686176652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642066726f6d2074686520466f756e6465722e002c506172616d65746572733ab02d206077686f60202d205468652073757370656e646564206d656d62657220746f206265206a75646765642e55012d2060666f726769766560202d204120626f6f6c65616e20726570726573656e74696e672077686574686572207468652073757370656e73696f6e206a756467656d656e74206f726967696e20666f726769766573cc20202860747275656029206f722072656a6563747320286066616c7365602920612073757370656e646564206d656d6265722e387365745f706172616d657465727310012c6d61785f6d656d6265727310010c7533320001286d61785f696e74616b6510010c75333200012c6d61785f737472696b657310010c75333200014463616e6469646174655f6465706f73697418013c42616c616e63654f663c542c20493e000b3061014368616e676520746865206d6178696d756d206e756d626572206f66206d656d6265727320696e20736f636965747920616e6420746865206d6178696d756d206e756d626572206f66206e65772063616e6469646174657368696e20612073696e676c6520696e74616b6520706572696f642e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642062792074686520466f756e6465722e002c506172616d65746572733a55012d20606d61785f6d656d6265727360202d20546865206d6178696d756d206e756d626572206f66206d656d6265727320666f722074686520736f63696574792e2054686973206d757374206265206e6f206c6573739420207468616e207468652063757272656e74206e756d626572206f66206d656d626572732e11012d20606d61785f696e74616b6560202d20546865206d6178696d756d206e756d626572206f662063616e646964617465732070657220696e74616b6520706572696f642e49012d20606d61785f737472696b6573603a20546865206d6178696d756d206e756d626572206f6620737472696b65732061206d656d626572206d617920676574206265666f72652074686579206265636f6d65d8202073757370656e64656420616e64206d6179206f6e6c79206265207265696e7374617465642062792074686520666f756e6465722e59012d206063616e6469646174655f6465706f736974603a20546865206465706f73697420726571756972656420746f206d616b6520612062696420666f72206d656d62657273686970206f66207468652067726f75702e3870756e6973685f736b6570746963000c08550150756e6973682074686520736b65707469632077697468206120737472696b65206966207468657920646964206e6f7420766f7465206f6e20612063616e6469646174652e2043616c6c61626c65206279207468652863616e6469646174652e40636c61696d5f6d656d62657273686970000d080d015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865f87468652063616e6469646174652c20616e64206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642e44626573746f775f6d656d6265727368697004012463616e646964617465000130543a3a4163636f756e744964000e0c61015472616e73666f726d20616e20617070726f7665642063616e64696461746520696e746f2061206d656d6265722e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e206f66207468655901466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e64656420616e64206f6e6c79207768656e207468652063616e646964617465206973206e6f7444636c6561726c792072656a65637465642e386b69636b5f63616e64696461746504012463616e646964617465000130543a3a4163636f756e744964000f145d0152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c7920627920746865205369676e6564206f726967696e55016f662074686520466f756e6465722c206f6e6c792061667465722074686520706572696f6420666f7220766f74696e672068617320656e6465642c20616e64206f6e6c79207768656e207468657920646f206e6f745868617665206120636c65617220617070726f76616c2e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e4072657369676e5f63616e64696461637900100c510152656d6f7665207468652063616e6469646174652773206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c65206f6e6c79206279207468652063616e6469646174652e00b8416e7920626964206465706f736974206973206c6f737420616e6420766f75636865722069732062616e6e65642e3864726f705f63616e64696461746504012463616e646964617465000130543a3a4163636f756e7449640011142d0152656d6f76652061206063616e646964617465602773206661696c6564206170706c69636174696f6e2066726f6d2074686520736f63696574792e2043616c6c61626c6520627920616e7919017369676e6564206f726967696e20627574206f6e6c792061742074686520656e64206f66207468652073756273657175656e7420726f756e6420616e64206f6e6c7920666f72c0612063616e6469646174652077697468206d6f72652072656a656374696f6e73207468616e20617070726f76616c732e00c854686520626964206465706f736974206973206c6f737420616e642074686520766f75636865722069732062616e6e65642e44636c65616e75705f63616e64696461637908012463616e646964617465000130543a3a4163636f756e74496400010c6d617810010c75333200120ce452656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520676976656e206063616e646964617465602e0059014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c79206166746572207468652063616e64696461746527732063616e64696461637920697320656e6465642e44636c65616e75705f6368616c6c656e676508013c6368616c6c656e67655f726f756e64100128526f756e64496e64657800010c6d617810010c75333200130c3d0152656d6f766520757020746f20606d617860207374616c6520766f74657320666f722074686520646566656e64657220696e2074686520676976656e20606368616c6c656e67655f726f756e64602e0041014d61792062652063616c6c656420627920616e79205369676e6564206f726967696e2c20627574206f6e6c7920616674657220746865206368616c6c656e676520726f756e6420697320656e6465642e30706f6b655f6465706f73697400141c9c506f6b6520746865206465706f736974207265736572766564207768656e2062696464696e672e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206269646465722e005501546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef9040c3c70616c6c65745f7265636f766572791870616c6c65741043616c6c0404540001283061735f7265636f766572656408011c6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000020a053656e6420612063616c6c207468726f7567682061207265636f7665726564206163636f756e742e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a21012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f752077616e7420746f206d616b6520612063616c6c206f6e2d626568616c662d6f662efc2d206063616c6c603a205468652063616c6c20796f752077616e7420746f206d616b65207769746820746865207265636f7665726564206163636f756e742e347365745f7265636f76657265640801106c6f7374950201504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572950201504163636f756e7449644c6f6f6b75704f663c543e0001200d01416c6c6f7720524f4f5420746f2062797061737320746865207265636f766572792070726f6365737320616e642073657420612072657363756572206163636f756e7470666f722061206c6f7374206163636f756e74206469726563746c792e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f524f4f545f2e002c506172616d65746572733ab42d20606c6f7374603a2054686520226c6f7374206163636f756e742220746f206265207265636f76657265642e19012d206072657363756572603a20546865202272657363756572206163636f756e74222077686963682063616e2063616c6c20617320746865206c6f7374206163636f756e742e3c6372656174655f7265636f766572790c011c667269656e64735d0101445665633c543a3a4163636f756e7449643e0001247468726573686f6c649101010c75313600013064656c61795f706572696f64100170426c6f636b4e756d62657246726f6d50726f76696465724f663c543e00024059014372656174652061207265636f7665727920636f6e66696775726174696f6e20666f7220796f7572206163636f756e742e2054686973206d616b657320796f7572206163636f756e74207265636f76657261626c652e002d015061796d656e743a2060436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e64732062616c616e6365450177696c6c20626520726573657276656420666f722073746f72696e6720746865207265636f7665727920636f6e66696775726174696f6e2e2054686973206465706f7369742069732072657475726e6564b8696e2066756c6c207768656e2074686520757365722063616c6c73206072656d6f76655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a49012d2060667269656e6473603a2041206c697374206f6620667269656e647320796f7520747275737420746f20766f75636820666f72207265636f7665727920617474656d7074732e2053686f756c64206265a820206f72646572656420616e6420636f6e7461696e206e6f206475706c69636174652076616c7565732e59012d20607468726573686f6c64603a20546865206e756d626572206f6620667269656e64732074686174206d75737420766f75636820666f722061207265636f7665727920617474656d7074206265666f726520746865550120206163636f756e742063616e206265207265636f76657265642e2053686f756c64206265206c657373207468616e206f7220657175616c20746f20746865206c656e677468206f6620746865206c697374206f66282020667269656e64732e4d012d206064656c61795f706572696f64603a20546865206e756d626572206f6620626c6f636b732061667465722061207265636f7665727920617474656d707420697320696e697469616c697a65642074686174d020206e6565647320746f2070617373206265666f726520746865206163636f756e742063616e206265207265636f76657265642e44696e6974696174655f7265636f7665727904011c6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e00032ce8496e697469617465207468652070726f6365737320666f72207265636f766572696e672061207265636f76657261626c65206163636f756e742e0019015061796d656e743a20605265636f766572794465706f736974602062616c616e63652077696c6c20626520726573657276656420666f7220696e6974696174696e672074686521017265636f766572792070726f636573732e2054686973206465706f7369742077696c6c20616c7761797320626520726570617472696174656420746f20746865206163636f756e74b4747279696e6720746f206265207265636f76657265642e205365652060636c6f73655f7265636f76657279602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a41012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e2054686973206163636f756e74206e6565647320746f206265cc20207265636f76657261626c652028692e652e20686176652061207265636f7665727920636f6e66696775726174696f6e292e38766f7563685f7265636f766572790801106c6f7374950201504163636f756e7449644c6f6f6b75704f663c543e00011c72657363756572950201504163636f756e7449644c6f6f6b75704f663c543e0004302501416c6c6f7720612022667269656e6422206f662061207265636f76657261626c65206163636f756e7420746f20766f75636820666f7220616e20616374697665207265636f766572796470726f6365737320666f722074686174206163636f756e742e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520612022667269656e642270666f7220746865207265636f76657261626c65206163636f756e742e002c506172616d65746572733ad02d20606c6f7374603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f207265636f7665722e59012d206072657363756572603a20546865206163636f756e7420747279696e6720746f2072657363756520746865206c6f7374206163636f756e74207468617420796f752077616e7420746f20766f75636820666f722e00210154686520636f6d62696e6174696f6e206f662074686573652074776f20706172616d6574657273206d75737420706f696e7420746f20616e20616374697665207265636f766572792070726f636573732e38636c61696d5f7265636f7665727904011c6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e000524f0416c6c6f772061207375636365737366756c207265736375657220746f20636c61696d207468656972207265636f7665726564206163636f756e742e002901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d757374206265206120227265736375657222190177686f20686173207375636365737366756c6c7920636f6d706c6574656420746865206163636f756e74207265636f766572792070726f636573733a20636f6c6c65637465642d01607468726573686f6c6460206f72206d6f726520766f75636865732c20776169746564206064656c61795f706572696f646020626c6f636b732073696e636520696e6974696174696f6e2e002c506172616d65746572733a5d012d20606163636f756e74603a20546865206c6f7374206163636f756e74207468617420796f752077616e7420746f20636c61696d20686173206265656e207375636365737366756c6c79207265636f7665726564206279182020796f752e38636c6f73655f7265636f7665727904011c72657363756572950201504163636f756e7449644c6f6f6b75704f663c543e00062c110141732074686520636f6e74726f6c6c6572206f662061207265636f76657261626c65206163636f756e742c20636c6f736520616e20616374697665207265636f766572796470726f6365737320666f7220796f7572206163636f756e742e001d015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e2c20746865207265636f76657261626c65206163636f756e742077696c6c2072656365697665f4746865207265636f76657279206465706f73697420605265636f766572794465706f7369746020706c616365642062792074686520726573637565722e000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061ec7265636f76657261626c65206163636f756e74207769746820616e20616374697665207265636f766572792070726f6365737320666f722069742e002c506172616d65746572733a0d012d206072657363756572603a20546865206163636f756e7420747279696e6720746f207265736375652074686973207265636f76657261626c65206163636f756e742e3c72656d6f76655f7265636f7665727900072c590152656d6f766520746865207265636f766572792070726f6365737320666f7220796f7572206163636f756e742e205265636f7665726564206163636f756e747320617265207374696c6c2061636365737369626c652e0011014e4f54453a205468652075736572206d757374206d616b65207375726520746f2063616c6c2060636c6f73655f7265636f7665727960206f6e20616c6c2061637469766505017265636f7665727920617474656d707473206265666f72652063616c6c696e6720746869732066756e6374696f6e20656c73652069742077696c6c206661696c2e0021015061796d656e743a2042792063616c6c696e6720746869732066756e6374696f6e20746865207265636f76657261626c65206163636f756e742077696c6c20756e72657365727665947468656972207265636f7665727920636f6e66696775726174696f6e206465706f7369742ef02860436f6e6669674465706f7369744261736560202b2060467269656e644465706f736974466163746f7260202a20235f6f665f667269656e647329000101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d7573742062652061e07265636f76657261626c65206163636f756e742028692e652e206861732061207265636f7665727920636f6e66696775726174696f6e292e4063616e63656c5f7265636f766572656404011c6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e00081cdc43616e63656c20746865206162696c69747920746f20757365206061735f7265636f76657265646020666f7220606163636f756e74602e001101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207265676973746572656420746fe462652061626c6520746f206d616b652063616c6c73206f6e20626568616c66206f6620746865207265636f7665726564206163636f756e742e002c506172616d65746572733a15012d20606163636f756e74603a20546865207265636f7665726564206163636f756e7420796f75206172652061626c6520746f2063616c6c206f6e2d626568616c662d6f662e30706f6b655f6465706f7369740401346d617962655f6163636f756e74fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00095c1501506f6b65206465706f7369747320666f72207265636f7665727920636f6e66696775726174696f6e7320616e64202f206f7220616374697665207265636f7665726965732e000d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a55012d20606d617962655f6163636f756e74603a204f7074696f6e616c207265636f76657261626c65206163636f756e7420666f7220776869636820796f75206861766520616e20616374697665207265636f76657279dc616e642077616e7420746f2061646a75737420746865206465706f73697420666f722074686520616374697665207265636f766572792e005501546869732066756e6374696f6e20636865636b7320626f7468207265636f7665727920636f6e66696775726174696f6e206465706f73697420616e6420616374697665207265636f76657279206465706f73697473386f66207468652063616c6c65723a51012d204966207468652063616c6c65722068617320637265617465642061207265636f7665727920636f6e66696775726174696f6e2c20636865636b7320616e642061646a7573747320697473206465706f73697441012d204966207468652063616c6c65722068617320696e6974696174656420616e7920616374697665207265636f7665726965732c20616e642070726f766964657320746865206163636f756e7420696ec8606d617962655f6163636f756e74602c20636865636b7320616e642061646a757374732074686f7365206465706f73697473005d01496620616e79206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468652063616c6c65722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620616e79206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620616e79206465706f73697420697320757064617465642e29014d756c7469706c65206576656e7473206d617920626520656d697474656420696e206361736520626f7468207479706573206f66206465706f736974732061726520757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732efd0404184f7074696f6e0404540195020108104e6f6e6500000010536f6d6504009502000001000001050c3870616c6c65745f76657374696e671870616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c646c6f636b656420756e64657220746869732070616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65050501b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65050501b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765749502018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e05050c3870616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000009050c4070616c6c65745f7363686564756c65721870616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469630d0501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469630d0501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469630d0501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f6469630d0501ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b750101785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e0d0504184f7074696f6e0404540175010108104e6f6e6500000010536f6d6504007501000001000011050c3870616c6c65745f676c7574746f6e1870616c6c65741043616c6c04045400011444696e697469616c697a655f70616c6c65740801246e65775f636f756e7410010c7533320001347769746e6573735f636f756e74c8012c4f7074696f6e3c7533323e0000183d01496e697469616c697a65207468652070616c6c65742e2053686f756c642062652063616c6c6564206f6e63652c206966206e6f2067656e65736973207374617465207761732070726f76696465642e0051016063757272656e745f636f756e7460206973207468652063757272656e74206e756d626572206f6620656c656d656e747320696e2060547261736844617461602e20546869732063616e2062652073657420746fb0604e6f6e6560207768656e207468652070616c6c657420697320666972737420696e697469616c697a65642e0049014f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e204120676f6f642064656661756c7420666f7220606e65775f636f756e74602069732060355f303030602e2c7365745f636f6d7075746504011c636f6d7075746581010120466978656455363400010c410153657420686f77206d756368206f66207468652072656d61696e696e6720607265665f74696d6560207765696768742073686f756c6420626520636f6e73756d656420627920606f6e5f69646c65602e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e2c7365745f73746f7261676504011c73746f7261676581010120466978656455363400021c490153657420686f77206d756368206f66207468652072656d61696e696e67206070726f6f665f73697a6560207765696768742073686f756c6420626520636f6e73756d656420627920606f6e5f69646c65602e00490160312e3060206d65616e73207468617420616c6c2072656d61696e696e67206070726f6f665f73697a65602077696c6c20626520636f6e73756d65642e2054686520506f562062656e63686d61726b696e676101726573756c74732074686174206172652075736564206865726520617265206c696b656c7920616e206f7665722d657374696d6174696f6e2e203130302520696e74656e64656420636f6e73756d7074696f6e2077696c6ce47468657265666f7265207472616e736c61746520746f206c657373207468616e20313030252061637475616c20636f6e73756d7074696f6e2e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e14626c6f617404011c67617262616765150501545665633c5b75383b2056414c55455f53495a455d3e0003040501496e6372656173652074686520626c6f636b2073697a6520627920696e636c7564696e67207468652073706563696669656420676172626167652062797465732e407365745f626c6f636b5f6c656e677468040130626c6f636b5f6c656e677468810101204669786564553634000418410153657420686f77206d756368206f662074686520626c6f636b206c656e6774682073686f756c642062652066696c6c656420776974682074726173682064617461206f6e206561636820626c6f636b2e00550160312e3060206d65616e73207468617420616c6c20626c6f636b2073686f756c642062652066696c6c65642e2049662073657420746f2060312e30602c2073746f726167652070726f6f662073697a652077696c6c4820626520636c6f736520746f207a65726f2e009c4f6e6c792063616c6c61626c6520627920526f6f74206f72206041646d696e4f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e150500000219050019050000030004000008001d050c3c70616c6c65745f707265696d6167651870616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f75706461746564040118686173686573210501305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2105000002340025050c3070616c6c65745f70726f78791870616c6c65741043616c6c04045400012c1470726f78790c01107265616c950201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065290501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970658d010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970658d010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0041015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e74732063726561746564206279206070757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f747970658d010130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e6465789101010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f747970658d010130543a3a50726f787954797065000114696e6465789101010c75313600011868656967687471020144426c6f636b4e756d626572466f723c543e0001246578745f696e6465787102010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746f94607075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0039012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c65642060707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602eec2d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f206070757265602e29012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20607075726560207761732070726f6365737365642e35012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20607075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265dc6163636f756e742077686f7365206070757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c950201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c950201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e0001107265616c950201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065290501504f7074696f6e3c543a3a50726f7879547970653e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e290504184f7074696f6e040454018d010108104e6f6e6500000010536f6d6504008d0100000100002d050c3c70616c6c65745f6d756c74697369671870616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965735d0101445665633c543a3a4163636f756e7449643e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c649101010c7531360001446f746865725f7369676e61746f726965735d0101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74310501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c649101010c7531360001446f746865725f7369676e61746f726965735d0101445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74310501904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c649101010c7531360001446f746865725f7369676e61746f726965735d0101445665633c543a3a4163636f756e7449643e00012474696d65706f696e749d01017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c649101010c7531360001446f746865725f7369676e61746f726965735d0101445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e310504184f7074696f6e040454019d010108104e6f6e6500000010536f6d6504009d01000001000035050c3c70616c6c65745f626f756e746965731870616c6c65741043616c6c08045400044900012c3870726f706f73655f626f756e747908011476616c7565a102013c42616c616e63654f663c542c20493e00012c6465736372697074696f6e38011c5665633c75383e0000305450726f706f73652061206e657720626f756e74792e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173510160446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e2049742077696c6c20626520756e72657365727665642075706f6e20617070726f76616c2c646f7220736c6173686564207768656e2072656a65637465642e00f82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e25012d206076616c7565603a2054686520746f74616c207061796d656e7420616d6f756e74206f66207468697320626f756e74792c2063757261746f722066656520696e636c756465642ec02d20606465736372697074696f6e603a20546865206465736372697074696f6e206f66207468697320626f756e74792e38617070726f76655f626f756e7479040124626f756e74795f69647102012c426f756e7479496e64657800011c5d01417070726f7665206120626f756e74792070726f706f73616c2e2041742061206c617465722074696d652c2074686520626f756e74792077696c6c2062652066756e64656420616e64206265636f6d6520616374697665a8616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e3c70726f706f73655f63757261746f720c0124626f756e74795f69647102012c426f756e7479496e64657800011c63757261746f72950201504163636f756e7449644c6f6f6b75704f663c543e00010c666565a102013c42616c616e63654f663c542c20493e0002189450726f706f736520612063757261746f7220746f20612066756e64656420626f756e74792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e0034232320436f6d706c65786974791c2d204f2831292e40756e61737369676e5f63757261746f72040124626f756e74795f69647102012c426f756e7479496e6465780003447c556e61737369676e2063757261746f722066726f6d206120626f756e74792e001d01546869732066756e6374696f6e2063616e206f6e6c792062652063616c6c656420627920746865206052656a6563744f726967696e602061207369676e6564206f726967696e2e003d01496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e602c20776520617373756d652074686174207468652063757261746f7220697331016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c2077652077696c6c20736c617368207468652063757261746f72207768656e20706f737369626c652e006101496620746865206f726967696e206973207468652063757261746f722c2077652074616b6520746869732061732061207369676e20746865792061726520756e61626c6520746f20646f207468656972206a6f6220616e645d01746865792077696c6c696e676c7920676976652075702e20576520636f756c6420736c617368207468656d2c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f207265636f76657220746865697235016465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966206974206973206162757365642e29005d0146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e6520696620616e64206f6e6c79206966207468652063757261746f722069732022696e616374697665222e205468697320616c6c6f77736101616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f7574207468617420612063757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e64390177652073686f756c64207069636b2061206e65772063757261746f722e20496e20746869732063617365207468652063757261746f722073686f756c6420616c736f20626520736c61736865642e0034232320436f6d706c65786974791c2d204f2831292e386163636570745f63757261746f72040124626f756e74795f69647102012c426f756e7479496e64657800041c94416363657074207468652063757261746f7220726f6c6520666f72206120626f756e74792e290141206465706f7369742077696c6c2062652072657365727665642066726f6d2063757261746f7220616e6420726566756e642075706f6e207375636365737366756c207061796f75742e00904d6179206f6e6c792062652063616c6c65642066726f6d207468652063757261746f722e0034232320436f6d706c65786974791c2d204f2831292e3061776172645f626f756e7479080124626f756e74795f69647102012c426f756e7479496e64657800012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e0005285901417761726420626f756e747920746f20612062656e6566696369617279206163636f756e742e205468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647338616674657220612064656c61792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f2061776172642e19012d206062656e6566696369617279603a205468652062656e6566696369617279206163636f756e742077686f6d2077696c6c207265636569766520746865207061796f75742e0034232320436f6d706c65786974791c2d204f2831292e30636c61696d5f626f756e7479040124626f756e74795f69647102012c426f756e7479496e646578000620ec436c61696d20746865207061796f75742066726f6d20616e206177617264656420626f756e7479206166746572207061796f75742064656c61792e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652062656e6566696369617279206f66207468697320626f756e74792e00882d2060626f756e74795f6964603a20426f756e747920494420746f20636c61696d2e0034232320436f6d706c65786974791c2d204f2831292e30636c6f73655f626f756e7479040124626f756e74795f69647102012c426f756e7479496e646578000724390143616e63656c20612070726f706f736564206f722061637469766520626f756e74792e20416c6c207468652066756e64732077696c6c2062652073656e7420746f20747265617375727920616e64cc7468652063757261746f72206465706f7369742077696c6c20626520756e726573657276656420696620706f737369626c652e00c84f6e6c792060543a3a52656a6563744f726967696e602069732061626c6520746f2063616e63656c206120626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f2063616e63656c2e0034232320436f6d706c65786974791c2d204f2831292e50657874656e645f626f756e74795f657870697279080124626f756e74795f69647102012c426f756e7479496e64657800011872656d61726b38011c5665633c75383e000824ac457874656e6420746865206578706972792074696d65206f6620616e2061637469766520626f756e74792e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f66207468697320626f756e74792e008c2d2060626f756e74795f6964603a20426f756e747920494420746f20657874656e642e8c2d206072656d61726b603a206164646974696f6e616c20696e666f726d6174696f6e2e0034232320436f6d706c65786974791c2d204f2831292e6c617070726f76655f626f756e74795f776974685f63757261746f720c0124626f756e74795f69647102012c426f756e7479496e64657800011c63757261746f72950201504163636f756e7449644c6f6f6b75704f663c543e00010c666565a102013c42616c616e63654f663c542c20493e00092cd4417070726f766520626f756e74727920616e642070726f706f736520612063757261746f722073696d756c74616e656f75736c792e5501546869732063616c6c20697320612073686f727463757420746f2063616c6c696e672060617070726f76655f626f756e74796020616e64206070726f706f73655f63757261746f72602073657061726174656c792e00a44d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a5370656e644f726967696e602e00902d2060626f756e74795f6964603a20426f756e747920494420746f20617070726f76652ef82d206063757261746f72603a205468652063757261746f72206163636f756e742077686f6d2077696c6c206d616e616765207468697320626f756e74792e642d2060666565603a205468652063757261746f72206665652e0034232320436f6d706c65786974791c2d204f2831292e30706f6b655f6465706f736974040124626f756e74795f69647102012c426f756e7479496e646578000a3ce4506f6b6520746865206465706f73697420726573657276656420666f72206372656174696e67206120626f756e74792070726f706f73616c2e00f4546869732063616e2062652075736564206279206163636f756e747320746f2075706461746520746865697220726573657276656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d2060626f756e74795f6964603a2054686520626f756e747920696420666f7220776869636820746f2061646a75737420746865206465706f7369742e003901496620746865206465706f73697420697320757064617465642c2074686520646966666572656e63652077696c6c2062652072657365727665642f756e72657365727665642066726f6d207468654c70726f706f7365722773206163636f756e742e002901546865207472616e73616374696f6e206973206d616465206672656520696620746865206465706f736974206973207570646174656420616e642070616964206f74686572776973652e00bc456d69747320604465706f736974506f6b65646020696620746865206465706f73697420697320757064617465642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e39050c2c70616c6c65745f746970731870616c6c65741043616c6c080454000449000118387265706f72745f617765736f6d65080118726561736f6e38011c5665633c75383e00010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00004059015265706f727420736f6d657468696e672060726561736f6e60207468617420646573657276657320612074697020616e6420636c61696d20616e79206576656e7475616c207468652066696e6465722773206665652e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051015061796d656e743a20605469705265706f72744465706f73697442617365602077696c6c2062652072657365727665642066726f6d20746865206f726967696e206163636f756e742c2061732077656c6c206173bc60446174614465706f736974506572427974656020666f722065616368206279746520696e2060726561736f6e602e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e0074456d69747320604e657754697060206966207375636365737366756c2e0034232320436f6d706c6578697479982d20604f2852296020776865726520605260206c656e677468206f662060726561736f6e602e9020202d20656e636f64696e6720616e642068617368696e67206f662027726561736f6e272c726574726163745f7469700401106861736834011c543a3a486173680001405101526574726163742061207072696f72207469702d7265706f72742066726f6d20607265706f72745f617765736f6d65602c20616e642063616e63656c207468652070726f63657373206f662074697070696e672e00dc4966207375636365737366756c2c20746865206f726967696e616c206465706f7369742077696c6c20626520756e72657365727665642e004d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642074686520746970206964656e7469666965642062792060686173686041016d7573742068617665206265656e207265706f7274656420627920746865207369676e696e67206163636f756e74207468726f75676820607265706f72745f617765736f6d65602028616e64206e6f744c7468726f75676820607469705f6e657760292e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e008c456d697473206054697052657472616374656460206966207375636365737366756c2e0034232320436f6d706c6578697479202d20604f28312960d820202d20446570656e6473206f6e20746865206c656e677468206f662060543a3a48617368602077686963682069732066697865642e1c7469705f6e65770c0118726561736f6e38011c5665633c75383e00010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001247469705f76616c7565a102013c42616c616e63654f663c542c20493e00024cf04769766520612074697020666f7220736f6d657468696e67206e65773b206e6f2066696e6465722773206665652077696c6c2062652074616b656e2e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e005d012d2060726561736f6e603a2054686520726561736f6e20666f722c206f7220746865207468696e6720746861742064657365727665732c20746865207469703b2067656e6572616c6c7920746869732077696c6c20626558202061205554462d382d656e636f6465642055524c2ee82d206077686f603a20546865206163636f756e742077686963682073686f756c6420626520637265646974656420666f7220746865207469702e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e0074456d69747320604e657754697060206966207375636365737366756c2e0034232320436f6d706c657869747921012d20604f2852202b2054296020776865726520605260206c656e677468206f662060726561736f6e602c2060546020697320746865206e756d626572206f6620746970706572732e5d0120202d20604f285429603a206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792d012020202060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f66442020202060543a3a54697070657273602ee020202d20604f285229603a2068617368696e6720616e6420656e636f64696e67206f6620726561736f6e206f66206c656e677468206052600c7469700801106861736834011c543a3a486173680001247469705f76616c7565a102013c42616c616e63654f663c542c20493e000354b04465636c6172652061207469702076616c756520666f7220616e20616c72656164792d6f70656e207469702e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062652061706d656d626572206f662074686520605469707065727360207365742e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f66207468652068617368206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e65666963696172793420206163636f756e742049442e4d012d20607469705f76616c7565603a2054686520616d6f756e74206f66207469702074686174207468652073656e64657220776f756c64206c696b6520746f20676976652e20546865206d656469616e20746970d4202076616c7565206f662061637469766520746970706572732077696c6c20626520676976656e20746f20746865206077686f602e006101456d6974732060546970436c6f73696e676020696620746865207468726573686f6c64206f66207469707065727320686173206265656e207265616368656420616e642074686520636f756e74646f776e20706572696f643068617320737461727465642e0034232320436f6d706c657869747961012d20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468206054602c20696e736572745901202074697020616e6420636865636b20636c6f73696e672c20605460206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e010120205468652061637475616c20636f737420646570656e6473206f6e2074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e005d01202041637475616c6c792077656967687420636f756c64206265206c6f77657220617320697420646570656e6473206f6e20686f77206d616e7920746970732061726520696e20604f70656e5469706020627574206974d02020697320776569676874656420617320696620616c6d6f73742066756c6c20692e65206f66206c656e6774682060542d31602e24636c6f73655f7469700401106861736834011c543a3a486173680004345c436c6f736520616e64207061796f75742061207469702e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00150154686520746970206964656e74696669656420627920606861736860206d75737420686176652066696e69736865642069747320636f756e74646f776e20706572696f642e0061012d206068617368603a20546865206964656e74697479206f6620746865206f70656e2074697020666f722077686963682061207469702076616c7565206973206465636c617265642e205468697320697320666f726d65645d0120206173207468652068617368206f6620746865207475706c65206f6620746865206f726967696e616c207469702060726561736f6e6020616e64207468652062656e6566696369617279206163636f756e742049442e0034232320436f6d706c65786974795d012d203a20604f285429602077686572652060546020697320746865206e756d626572206f6620746970706572732e206465636f64696e6720605469707065726020766563206f66206c656e677468206054602e20605460590120206973206368617267656420617320757070657220626f756e6420676976656e2062792060436f6e7461696e734c656e677468426f756e64602e205468652061637475616c20636f737420646570656e6473206f6e94202074686520696d706c656d656e746174696f6e206f662060543a3a54697070657273602e24736c6173685f7469700401106861736834011c543a3a486173680005289452656d6f766520616e6420736c61736820616e20616c72656164792d6f70656e207469702e00a84d6179206f6e6c792062652063616c6c65642066726f6d2060543a3a52656a6563744f726967696e602e00f44173206120726573756c742c207468652066696e64657220697320736c617368656420616e6420746865206465706f7369747320617265206c6f73742e0084456d6974732060546970536c617368656460206966207375636365737366756c2e0034232320436f6d706c65786974791c2d204f2831292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e3d050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869647102014c543a3a41737365744964506172616d6574657200011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e6365a1020128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869647102014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869647102014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869647102014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869647102014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869647102014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869647102014c543a3a41737365744964506172616d65746572000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869647102014c543a3a41737365744964506172616d65746572000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869647102014c543a3a41737365744964506172616d65746572000118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869647102014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869647102014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869647102014c543a3a41737365744964506172616d65746572000118697373756572950201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572950201504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869647102014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869647102014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869647102014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869647102014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000118697373756572950201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572950201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365a1020128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869647102014c543a3a41737365744964506172616d6574657200012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869647102014c543a3a41737365744964506172616d6574657200012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869647102014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869647102014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869647102014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869647102014c543a3a41737365744964506172616d6574657200011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41050c3470616c6c65745f6173736574731870616c6c65741043616c6c080454000449000184186372656174650c010869647102014c543a3a41737365744964506172616d6574657200011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365180128543a3a42616c616e636500004ce849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d2061207075626c6963206f726967696e2e00250154686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00bc46756e6473206f662073656e64657220617265207265736572766564206279206041737365744465706f736974602e002c506172616d65746572733a59012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d206061646d696e603a205468652061646d696e206f66207468697320636c617373206f66206173736574732e205468652061646d696e2069732074686520696e697469616c2061646472657373206f6620656163689c6d656d626572206f662074686520617373657420636c61737327732061646d696e207465616d2e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f63726561746510010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00013469735f73756666696369656e74200110626f6f6c00012c6d696e5f62616c616e6365a1020128543a3a42616c616e636500014cf849737375652061206e657720636c617373206f662066756e6769626c65206173736574732066726f6d20612070726976696c65676564206f726967696e2e00b454686973206e657720617373657420636c61737320686173206e6f2061737365747320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0059012d20606964603a20546865206964656e746966696572206f6620746865206e65772061737365742e2054686973206d757374206e6f742062652063757272656e746c7920696e2075736520746f206964656e746966793101616e206578697374696e672061737365742e204966205b604e65787441737365744964605d206973207365742c207468656e2074686973206d75737420626520657175616c20746f2069742e59012d20606f776e6572603a20546865206f776e6572206f66207468697320636c617373206f66206173736574732e20546865206f776e6572206861732066756c6c20737570657275736572207065726d697373696f6e7325016f76657220746869732061737365742c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129603473746172745f64657374726f7904010869647102014c543a3a41737365744964506172616d65746572000230dc5374617274207468652070726f63657373206f662064657374726f79696e6720612066756e6769626c6520617373657420636c6173732e0059016073746172745f64657374726f79602069732074686520666972737420696e206120736572696573206f662065787472696e7369637320746861742073686f756c642062652063616c6c65642c20746f20616c6c6f77786465737472756374696f6e206f6620616e20617373657420636c6173732e005101546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020627920746865206173736574277320606f776e6572602e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966b8616e206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e4064657374726f795f6163636f756e747304010869647102014c543a3a41737365744964506172616d65746572000330cc44657374726f7920616c6c206163636f756e7473206173736f6369617465642077697468206120676976656e2061737365742e005d016064657374726f795f6163636f756e7473602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79310164657374726f7920616c6c206163636f756e74732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d697460206163636f756e747320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d4456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f7965644163636f756e747360206576656e742e4464657374726f795f617070726f76616c7304010869647102014c543a3a41737365744964506172616d65746572000430610144657374726f7920616c6c20617070726f76616c73206173736f6369617465642077697468206120676976656e20617373657420757020746f20746865206d61782028543a3a52656d6f76654974656d734c696d6974292e0061016064657374726f795f617070726f76616c73602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e642074686584617373657420697320696e2061206044657374726f79696e67602073746174652e005d0144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c652074696d657320746f2066756c6c79390164657374726f7920616c6c20617070726f76616c732e2049742077696c6c2064657374726f79206052656d6f76654974656d734c696d69746020617070726f76616c7320617420612074696d652e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00d8456163682063616c6c20656d6974732074686520604576656e743a3a44657374726f796564417070726f76616c7360206576656e742e3866696e6973685f64657374726f7904010869647102014c543a3a41737365744964506172616d65746572000528c4436f6d706c6574652064657374726f79696e6720617373657420616e6420756e726573657276652063757272656e63792e0055016066696e6973685f64657374726f79602073686f756c64206f6e6c792062652063616c6c6564206166746572206073746172745f64657374726f796020686173206265656e2063616c6c65642c20616e64207468655901617373657420697320696e2061206044657374726f79696e67602073746174652e20416c6c206163636f756e7473206f7220617070726f76616c732073686f756c642062652064657374726f796564206265666f72651468616e642e004d012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652064657374726f7965642e2054686973206d757374206964656e7469667920616e206578697374696e6720202061737365742e00e045616368207375636365737366756c2063616c6c20656d6974732074686520604576656e743a3a44657374726f79656460206576656e742e106d696e740c010869647102014c543a3a41737365744964506172616d6574657200012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e6365000630884d696e7420617373657473206f66206120706172746963756c617220636c6173732e003901546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f662074686520617373657420606964602e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206d696e7465642e0d012d206062656e6566696369617279603a20546865206163636f756e7420746f206265206372656469746564207769746820746865206d696e746564206173736574732ec42d2060616d6f756e74603a2054686520616d6f756e74206f662074686520617373657420746f206265206d696e7465642e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296055014d6f6465733a205072652d6578697374696e672062616c616e6365206f66206062656e6566696369617279603b204163636f756e74207072652d6578697374656e6365206f66206062656e6566696369617279602e106275726e0c010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e636500073c4501526564756365207468652062616c616e6365206f66206077686f60206279206173206d75636820617320706f737369626c6520757020746f2060616d6f756e746020617373657473206f6620606964602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204d616e61676572206f662074686520617373657420606964602e00d04261696c73207769746820604e6f4163636f756e746020696620746865206077686f6020697320616c726561647920646561642e00fc2d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74206275726e65642ea02d206077686f603a20546865206163636f756e7420746f20626520646562697465642066726f6d2e29012d2060616d6f756e74603a20546865206d6178696d756d20616d6f756e74206279207768696368206077686f6027732062616c616e63652073686f756c6420626520726564756365642e005101456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e20496620746869732074616b6573207468652062616c616e636520746f2062656c6f772074686539016d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74206275726e656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296009014d6f6465733a20506f73742d6578697374656e6365206f66206077686f603b20507265202620706f7374205a6f6d6269652d737461747573206f66206077686f602e207472616e736665720c010869647102014c543a3a41737365744964506172616d65746572000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e6365000848d04d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e4c7472616e736665725f6b6565705f616c6976650c010869647102014c543a3a41737365744964506172616d65746572000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e636500094859014d6f766520736f6d65206173736574732066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722c206b656570696e67207468652073656e646572206163636f756e7420616c6976652e00584f726967696e206d757374206265205369676e65642e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e9c2d2060746172676574603a20546865206163636f756e7420746f2062652063726564697465642e51012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652073656e64657227732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e646101607461726765746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e5d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652073656e6465722062616c616e63652061626f7665207a65726f206275742062656c6f77bc746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f662060746172676574603b20506f73742d6578697374656e6365206f662073656e6465723b204163636f756e74207072652d6578697374656e6365206f662460746172676574602e38666f7263655f7472616e7366657210010869647102014c543a3a41737365744964506172616d65746572000118736f75726365950201504163636f756e7449644c6f6f6b75704f663c543e00011064657374950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e6365000a4cb44d6f766520736f6d65206173736574732066726f6d206f6e65206163636f756e7420746f20616e6f746865722e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e0011012d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206861766520736f6d6520616d6f756e74207472616e736665727265642e982d2060736f75726365603a20546865206163636f756e7420746f20626520646562697465642e942d206064657374603a20546865206163636f756e7420746f2062652063726564697465642e59012d2060616d6f756e74603a2054686520616d6f756e74206279207768696368207468652060736f757263656027732062616c616e6365206f66206173736574732073686f756c64206265207265647563656420616e64590160646573746027732062616c616e636520696e637265617365642e2054686520616d6f756e742061637475616c6c79207472616e73666572726564206d617920626520736c696768746c79206772656174657220696e4d017468652063617365207468617420746865207472616e7366657220776f756c64206f74686572776973652074616b65207468652060736f75726365602062616c616e63652061626f7665207a65726f20627574d462656c6f7720746865206d696e696d756d2062616c616e63652e204d7573742062652067726561746572207468616e207a65726f2e006101456d69747320605472616e73666572726564602077697468207468652061637475616c20616d6f756e74207472616e736665727265642e20496620746869732074616b65732074686520736f757263652062616c616e63655d01746f2062656c6f7720746865206d696e696d756d20666f72207468652061737365742c207468656e2074686520616d6f756e74207472616e7366657272656420697320696e6372656173656420746f2074616b6520697420746f207a65726f2e00385765696768743a20604f2831296051014d6f6465733a205072652d6578697374656e6365206f66206064657374603b20506f73742d6578697374656e6365206f662060736f75726365603b204163636f756e74207072652d6578697374656e6365206f661c6064657374602e18667265657a6508010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000b305501446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e20617373657420606964602066726f6d20616e206163636f756e74206077686f602e206077686f604d016d75737420616c726561647920657869737420617320616e20656e74727920696e20604163636f756e746073206f66207468652061737365742e20496620796f752077616e7420746f20667265657a6520616ef46163636f756e74207468617420646f6573206e6f74206861766520616e20656e7472792c207573652060746f7563685f6f74686572602066697273742e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e882d206077686f603a20546865206163636f756e7420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f28312960107468617708010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000c28e8416c6c6f7720756e70726976696c65676564207472616e736665727320746f20616e642066726f6d20616e206163636f756e7420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e902d206077686f603a20546865206163636f756e7420746f20626520756e66726f7a656e2e003c456d6974732060546861776564602e00385765696768743a20604f2831296030667265657a655f617373657404010869647102014c543a3a41737365744964506172616d65746572000d24f0446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f722074686520617373657420636c6173732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f2831296028746861775f617373657404010869647102014c543a3a41737365744964506172616d65746572000e24c4416c6c6f7720756e70726976696c65676564207472616e736665727320666f722074686520617373657420616761696e2e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e65727368697008010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000f28744368616e676520746865204f776e6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d10010869647102014c543a3a41737365744964506172616d65746572000118697373756572950201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572950201504163636f756e7449644c6f6f6b75704f663c543e001030c44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f6620616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00c42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f2062652066726f7a656e2ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f28312960307365745f6d6574616461746110010869647102014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c7308010875380011407853657420746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00d846756e6473206f662073656e64657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a5101604d657461646174614465706f73697442617365202b204d657461646174614465706f73697450657242797465202a20286e616d652e6c656e202b2073796d626f6c2e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d6574616461746104010869647102014c543a3a41737365744964506172616d6574657200122c80436c65617220746865206d6574616461746120666f7220616e2061737365742e002d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f662074686520617373657420606964602e00a4416e79206465706f73697420697320667265656420666f7220746865206173736574206f776e65722e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f7365745f6d6574616461746114010869647102014c543a3a41737365744964506172616d657465720001106e616d6538011c5665633c75383e00011873796d626f6c38011c5665633c75383e000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c001338b8466f72636520746865206d6574616461746120666f7220616e20617373657420746f20736f6d652076616c75652e006c4f726967696e206d75737420626520466f7263654f726967696e2e0068416e79206465706f736974206973206c65667420616c6f6e652e00b82d20606964603a20546865206964656e746966696572206f662074686520617373657420746f207570646174652e4d012d20606e616d65603a20546865207573657220667269656e646c79206e616d65206f6620746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e4d012d206073796d626f6c603a205468652065786368616e67652073796d626f6c20666f7220746869732061737365742e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e2d012d2060646563696d616c73603a20546865206e756d626572206f6620646563696d616c732074686973206173736574207573657320746f20726570726573656e74206f6e6520756e69742e0050456d69747320604d65746164617461536574602e0051015765696768743a20604f284e202b20532960207768657265204e20616e6420532061726520746865206c656e677468206f6620746865206e616d6520616e642073796d626f6c20726573706563746976656c792e50666f7263655f636c6561725f6d6574616461746104010869647102014c543a3a41737365744964506172616d6574657200142c80436c65617220746865206d6574616461746120666f7220616e2061737365742e006c4f726967696e206d75737420626520466f7263654f726967696e2e0060416e79206465706f7369742069732072657475726e65642e00b42d20606964603a20546865206964656e746966696572206f662074686520617373657420746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f2831296048666f7263655f61737365745f73746174757320010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000118697373756572950201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572950201504163636f756e7449644c6f6f6b75704f663c543e00012c6d696e5f62616c616e6365a1020128543a3a42616c616e636500013469735f73756666696369656e74200110626f6f6c00012469735f66726f7a656e200110626f6f6c00155898416c746572207468652061747472696275746573206f66206120676976656e2061737365742e00744f726967696e206d7573742062652060466f7263654f726967696e602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e9c2d20606f776e6572603a20546865206e6577204f776e6572206f6620746869732061737365742ea42d2060697373756572603a20546865206e657720497373756572206f6620746869732061737365742e9c2d206061646d696e603a20546865206e65772041646d696e206f6620746869732061737365742eac2d2060667265657a6572603a20546865206e657720467265657a6572206f6620746869732061737365742e4d012d20606d696e5f62616c616e6365603a20546865206d696e696d756d2062616c616e6365206f662074686973206e6577206173736574207468617420616e792073696e676c65206163636f756e74206d7573743d01686176652e20496620616e206163636f756e7427732062616c616e636520697320726564756365642062656c6f7720746869732c207468656e20697420636f6c6c617073657320746f207a65726f2e51012d206069735f73756666696369656e74603a20576865746865722061206e6f6e2d7a65726f2062616c616e6365206f662074686973206173736574206973206465706f736974206f662073756666696369656e744d0176616c756520746f206163636f756e7420666f722074686520737461746520626c6f6174206173736f6369617465642077697468206974732062616c616e63652073746f726167652e2049662073657420746f55016074727565602c207468656e206e6f6e2d7a65726f2062616c616e636573206d61792062652073746f72656420776974686f757420612060636f6e73756d657260207265666572656e63652028616e6420746875734d01616e20454420696e207468652042616c616e6365732070616c6c6574206f7220776861746576657220656c7365206973207573656420746f20636f6e74726f6c20757365722d6163636f756e742073746174652067726f777468292e3d012d206069735f66726f7a656e603a2057686574686572207468697320617373657420636c6173732069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e8456d697473206041737365745374617475734368616e67656460207769746820746865206964656e74697479206f66207468652061737365742e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c010869647102014c543a3a41737365744964506172616d6574657200012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e63650016502d01417070726f766520616e20616d6f756e74206f6620617373657420666f72207472616e7366657220627920612064656c6567617465642074686972642d7061727479206163636f756e742e00584f726967696e206d757374206265205369676e65642e004d01456e737572657320746861742060417070726f76616c4465706f7369746020776f727468206f66206043757272656e6379602069732072657365727665642066726f6d207369676e696e67206163636f756e745501666f722074686520707572706f7365206f6620686f6c64696e672074686520617070726f76616c2e20496620736f6d65206e6f6e2d7a65726f20616d6f756e74206f662061737365747320697320616c72656164794901617070726f7665642066726f6d207369676e696e67206163636f756e7420746f206064656c6567617465602c207468656e20697420697320746f70706564207570206f7220756e726573657276656420746f546d656574207468652072696768742076616c75652e0045014e4f54453a20546865207369676e696e67206163636f756e7420646f6573206e6f74206e65656420746f206f776e2060616d6f756e7460206f66206173736574732061742074686520706f696e74206f66446d616b696e6720746869732063616c6c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e0d012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e736665722061737365742e49012d2060616d6f756e74603a2054686520616d6f756e74206f662061737365742074686174206d6179206265207472616e73666572726564206279206064656c6567617465602e204966207468657265206973e0616c726561647920616e20617070726f76616c20696e20706c6163652c207468656e207468697320616374732061646469746976656c792e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c08010869647102014c543a3a41737365744964506172616d6574657200012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e001734490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e003d014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c616365206265747765656e207369676e657220616e642c6064656c6567617465602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296054666f7263655f63616e63656c5f617070726f76616c0c010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e001834490143616e63656c20616c6c206f6620736f6d6520617373657420617070726f76656420666f722064656c656761746564207472616e7366657220627920612074686972642d7061727479206163636f756e742e0049014f726967696e206d7573742062652065697468657220466f7263654f726967696e206f72205369676e6564206f726967696e207769746820746865207369676e6572206265696e67207468652041646d696e686163636f756e74206f662074686520617373657420606964602e004901556e726573657276657320616e79206465706f7369742070726576696f75736c792072657365727665642062792060617070726f76655f7472616e736665726020666f722074686520617070726f76616c2e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e05012d206064656c6567617465603a20546865206163636f756e742064656c656761746564207065726d697373696f6e20746f207472616e736665722061737365742e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960447472616e736665725f617070726f76656410010869647102014c543a3a41737365744964506172616d657465720001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00012c64657374696e6174696f6e950201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74a1020128543a3a42616c616e63650019484d015472616e7366657220736f6d652061737365742062616c616e63652066726f6d20612070726576696f75736c792064656c656761746564206163636f756e7420746f20736f6d652074686972642d7061727479206163636f756e742e0049014f726967696e206d757374206265205369676e656420616e64207468657265206d75737420626520616e20617070726f76616c20696e20706c6163652062792074686520606f776e65726020746f207468651c7369676e65722e00590149662074686520656e7469726520616d6f756e7420617070726f76656420666f72207472616e73666572206973207472616e736665727265642c207468656e20616e79206465706f7369742070726576696f75736c79b472657365727665642062792060617070726f76655f7472616e736665726020697320756e72657365727665642e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742e61012d20606f776e6572603a20546865206163636f756e742077686963682070726576696f75736c7920617070726f76656420666f722061207472616e73666572206f66206174206c656173742060616d6f756e746020616e64bc66726f6d207768696368207468652061737365742062616c616e63652077696c6c2062652077697468647261776e2e61012d206064657374696e6174696f6e603a20546865206163636f756e7420746f207768696368207468652061737365742062616c616e6365206f662060616d6f756e74602077696c6c206265207472616e736665727265642eb42d2060616d6f756e74603a2054686520616d6f756e74206f662061737365747320746f207472616e736665722e009c456d69747320605472616e73666572726564417070726f76656460206f6e20737563636573732e00385765696768743a20604f2831296014746f75636804010869647102014c543a3a41737365744964506172616d65746572001a24c043726561746520616e206173736574206163636f756e7420666f72206e6f6e2d70726f7669646572206173736574732e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e005d012d20606f726967696e603a204d757374206265205369676e65643b20746865207369676e6572206163636f756e74206d75737420686176652073756666696369656e742066756e647320666f722061206465706f736974382020746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e18726566756e6408010869647102014c543a3a41737365744964506172616d65746572000128616c6c6f775f6275726e200110626f6f6c001b34590152657475726e20746865206465706f7369742028696620616e7929206f6620616e206173736574206163636f756e74206f72206120636f6e73756d6572207265666572656e63652028696620616e7929206f6620616e206163636f756e742e0068546865206f726967696e206d757374206265205369676e65642e003d012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f72207768696368207468652063616c6c657220776f756c64206c696b6520746865206465706f7369742c2020726566756e6465642e5d012d2060616c6c6f775f6275726e603a20496620607472756560207468656e20617373657473206d61792062652064657374726f79656420696e206f7264657220746f20636f6d706c6574652074686520726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e3c7365745f6d696e5f62616c616e636508010869647102014c543a3a41737365744964506172616d6574657200012c6d696e5f62616c616e6365180128543a3a42616c616e6365001c30945365747320746865206d696e696d756d2062616c616e6365206f6620616e2061737365742e0021014f6e6c7920776f726b73206966207468657265206172656e277420616e79206163636f756e747320746861742061726520686f6c64696e6720746865206173736574206f72206966e0746865206e65772076616c7565206f6620606d696e5f62616c616e636560206973206c657373207468616e20746865206f6c64206f6e652e00fc4f726967696e206d757374206265205369676e656420616e64207468652073656e6465722068617320746f20626520746865204f776e6572206f66207468652c617373657420606964602e00902d20606964603a20546865206964656e746966696572206f66207468652061737365742ec02d20606d696e5f62616c616e6365603a20546865206e65772076616c7565206f6620606d696e5f62616c616e6365602e00d4456d697473206041737365744d696e42616c616e63654368616e67656460206576656e74207768656e207375636365737366756c2e2c746f7563685f6f7468657208010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e001d288843726561746520616e206173736574206163636f756e7420666f72206077686f602e00c041206465706f7369742077696c6c2062652074616b656e2066726f6d20746865207369676e6572206163636f756e742e0061012d20606f726967696e603a204d757374206265205369676e65642062792060467265657a657260206f72206041646d696e60206f662074686520617373657420606964603b20746865207369676e6572206163636f756e74dc20206d75737420686176652073756666696369656e742066756e647320666f722061206465706f73697420746f2062652074616b656e2e09012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420746f20626520637265617465642e8c2d206077686f603a20546865206163636f756e7420746f20626520637265617465642e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e30726566756e645f6f7468657208010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e001e345d0152657475726e20746865206465706f7369742028696620616e7929206f66206120746172676574206173736574206163636f756e742e2055736566756c20696620796f752061726520746865206465706f7369746f722e005d01546865206f726967696e206d757374206265205369676e656420616e642065697468657220746865206163636f756e74206f776e65722c206465706f7369746f722c206f72206173736574206041646d696e602e20496e61016f7264657220746f206275726e2061206e6f6e2d7a65726f2062616c616e6365206f66207468652061737365742c207468652063616c6c6572206d75737420626520746865206163636f756e7420616e642073686f756c64347573652060726566756e64602e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742e7c2d206077686f603a20546865206163636f756e7420746f20726566756e642e00490149742077696c6c206661696c207769746820656974686572205b604572726f723a3a436f6e7461696e73486f6c6473605d206f72205b604572726f723a3a436f6e7461696e73467265657a6573605d206966d4746865206173736574206163636f756e7420636f6e7461696e7320686f6c6473206f7220667265657a657320696e20706c6163652e009c456d6974732060526566756e64656460206576656e74207768656e207375636365737366756c2e14626c6f636b08010869647102014c543a3a41737365744964506172616d6574657200010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e001f285901446973616c6c6f77206675727468657220756e70726976696c65676564207472616e7366657273206f6620616e206173736574206069646020746f20616e642066726f6d20616e206163636f756e74206077686f602e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f662074686520617373657420606964602e00b82d20606964603a20546865206964656e746966696572206f6620746865206163636f756e7427732061737365742e942d206077686f603a20546865206163636f756e7420746f20626520756e626c6f636b65642e0040456d6974732060426c6f636b6564602e00385765696768743a20604f28312960307472616e736665725f616c6c0c010869647102014c543a3a41737365744964506172616d6574657200011064657374950201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c0020401d015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206173736574206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861743d01616e792068656c642c2066726f7a656e2c206f72206d696e696d756d2062616c616e636520287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e0019012d20606964603a20546865206964656e746966696572206f662074686520617373657420666f7220746865206163636f756e7420686f6c64696e672061206465706f7369742ea02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206173736574206163636f756e74206861732c2063617573696e67207468652073656e646572206173736574206163636f756e7420746f206265206b696c6c6564450120202866616c7365292c206f72207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206d696e696d756d2062616c616e63652c2077686963682077696c6ce8202067756172616e74656520746f206b656570207468652073656e646572206173736574206163636f756e7420616c697665202874727565292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45050c3070616c6c65745f62656566791870616c6c65741043616c6c04045400011c507265706f72745f646f75626c655f766f74696e6708014865717569766f636174696f6e5f70726f6f664905018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e747265706f72745f646f75626c655f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f664905018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e487265706f72745f666f726b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66650501ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600030c3d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e6c7265706f72745f666f726b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66650501ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f660004203d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e687265706f72745f6675747572655f626c6f636b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66750501e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f6600050c5d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e8c7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66750501e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f667d020140543a3a4b65794f776e657250726f6f660006205d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e4905084873705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d626572011008496401d503245369676e6174757265014d0500080114666972737451050188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e6451050188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e00004d050c4873705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e617475726500000400f104014065636473613a3a5369676e617475726500005105084873705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d626572011008496401d503245369676e6174757265014d05000c0128636f6d6d69746d656e7455050148436f6d6d69746d656e743c4e756d6265723e0001086964d503010849640001247369676e61747572654d0501245369676e6174757265000055050c4873705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61645905011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f725365744964000059050c4873705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f6164000004005d0501785665633c2842656566795061796c6f616449642c205665633c75383e293e00005d05000002610500610500000408690438006505084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c18486561646572016d0208496401d50334416e63657374727950726f6f66016905000c0110766f7465510501b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6669050134416e63657374727950726f6f660001186865616465726d02011848656164657200006905084473705f6d6d725f7072696d69746976657334416e63657374727950726f6f66041048617368013400100128707265765f7065616b73210501245665633c486173683e00013c707265765f6c6561665f636f756e7430010c7536340001286c6561665f636f756e743001244e6f6465496e6465780001146974656d736d0501405665633c287536342c2048617368293e00006d050000027105007105000004083034007505084873705f636f6e73656e7375735f626565667958467574757265426c6f636b566f74696e6750726f6f6608184e756d626572011008496401d50300040110766f746551050198566f74654d6573736167653c4e756d6265722c2049642c2049643a3a5369676e61747572653e000079050c3870616c6c65745f6c6f74746572791870616c6c65741043616c6c040454000110286275795f7469636b657404011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00002c884275792061207469636b657420746f20656e74657220746865206c6f74746572792e000101546869732065787472696e7369632061637473206173206120706173737468726f7567682066756e6374696f6e20666f72206063616c6c602e20496e20616c6c0901736974756174696f6e73207768657265206063616c6c6020616c6f6e6520776f756c6420737563636565642c20746869732065787472696e7369632073686f756c6420737563636565642e000d014966206063616c6c60206973207375636365737366756c2c207468656e2077652077696c6c20617474656d707420746f2070757263686173652061207469636b65742c11017768696368206d6179206661696c2073696c656e746c792e20546f206465746563742073756363657373206f662061207469636b65742070757263686173652c20796f75ac73686f756c64206c697374656e20666f722074686520605469636b6574426f7567687460206576656e742e00c4546869732065787472696e736963206d7573742062652063616c6c65642062792061207369676e6564206f726967696e2e247365745f63616c6c7304011463616c6c734d02017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00011811015365742063616c6c7320696e2073746f726167652077686963682063616e206265207573656420746f2070757263686173652061206c6f7474657279207469636b65742e001d01546869732066756e6374696f6e206f6e6c79206d61747465727320696620796f752075736520746865206056616c696461746543616c6c6020696d706c656d656e746174696f6e250170726f766964656420627920746869732070616c6c65742c20776869636820757365732073746f7261676520746f2064657465726d696e65207468652076616c69642063616c6c732e00d0546869732065787472696e736963206d7573742062652063616c6c656420627920746865204d616e61676572206f726967696e2e3473746172745f6c6f7474657279100114707269636518013042616c616e63654f663c543e0001186c656e677468100144426c6f636b4e756d626572466f723c543e00011464656c6179100144426c6f636b4e756d626572466f723c543e000118726570656174200110626f6f6c000228c453746172742061206c6f7474657279207573696e67207468652070726f766964656420636f6e66696775726174696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e002c506172616d65746572733a009c2a20607072696365603a2054686520636f7374206f6620612073696e676c65207469636b65742e39012a20606c656e677468603a20486f77206c6f6e6720746865206c6f74746572792073686f756c642072756e20666f72207374617274696e67206174207468652063757272656e7420626c6f636b2e45012a206064656c6179603a20486f77206c6f6e6720616674657220746865206c6f747465727920656e642077652073686f756c642077616974206265666f7265207069636b696e6720612077696e6e65722ee02a2060726570656174603a20496620746865206c6f74746572792073686f756c6420726570656174207768656e20636f6d706c657465642e2c73746f705f726570656174000310fc49662061206c6f747465727920697320726570656174696e672c20796f752063616e20757365207468697320746f2073746f7020746865207265706561742ebc546865206c6f74746572792077696c6c20636f6e74696e756520746f2072756e20746f20636f6d706c6574696f6e2e00d4546869732065787472696e736963206d7573742062652063616c6c65642062792074686520604d616e616765724f726967696e602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e7d050c2870616c6c65745f6e69731870616c6c65741043616c6c04045400011c24706c6163655f626964080118616d6f756e74a102013042616c616e63654f663c543e0001206475726174696f6e10010c75333200002c30506c6163652061206269642e003d014f726967696e206d757374206265205369676e65642c20616e64206163636f756e74206d7573742068617665206174206c656173742060616d6f756e746020696e20667265652062616c616e63652e0031012d2060616d6f756e74603a2054686520616d6f756e74206f6620746865206269643b2074686573652066756e64732077696c6c2062652072657365727665642c20616e642069662f7768656ecc2020636f6e736f6c6964617465642c2072656d6f7665642e204d757374206265206174206c6561737420604d696e426964602e49012d20606475726174696f6e603a20546865206e756d626572206f6620706572696f6473206265666f726520776869636820746865206e65776c7920636f6e736f6c69646174656420626964206d6179206265fc20207468617765642e204d7573742062652067726561746572207468616e203120616e64206e6f206d6f7265207468616e20605175657565436f756e74602e0034436f6d706c657869746965733aac2d20605175657565735b6475726174696f6e5d2e6c656e28296020286a7573742074616b65206d6178292e2c726574726163745f626964080118616d6f756e74a102013042616c616e63654f663c543e0001206475726174696f6e10010c75333200011c805265747261637420612070726576696f75736c7920706c61636564206269642e005d014f726967696e206d757374206265205369676e65642c20616e6420746865206163636f756e742073686f756c6420686176652070726576696f75736c79206973737565642061207374696c6c2d616374697665206269646c6f662060616d6f756e746020666f7220606475726174696f6e602e00ac2d2060616d6f756e74603a2054686520616d6f756e74206f66207468652070726576696f7573206269642ebc2d20606475726174696f6e603a20546865206475726174696f6e206f66207468652070726576696f7573206269642e3066756e645f6465666963697400020cf0456e7375726520776520686176652073756666696369656e742066756e64696e6720666f7220616c6c20706f74656e7469616c207061796f7574732e00b42d20606f726967696e603a204d757374206265206163636570746564206279206046756e644f726967696e602e30746861775f70726976617465080114696e6465787102013052656365697074496e6465780001406d617962655f70726f706f7274696f6e8105014c4f7074696f6e3c5065727175696e74696c6c3e0003205d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0059012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f662074686520726563656970742060696e646578602061738c202077656c6c20617320616e792066756e6769626c6520636f756e746572706172742e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e5d012d2060706f7274696f6e603a2049662060536f6d65602c207468656e206f6e6c792074686520676976656e20706f7274696f6e206f662074686520726563656970742073686f756c64206265207468617765642e2049668c2020604e6f6e65602c207468656e20616c6c206f662069742073686f756c642062652e34746861775f636f6d6d756e616c040114696e6465787102013052656365697074496e6465780004185d01526564756365206f722072656d6f766520616e206f75747374616e64696e6720726563656970742c20706c6163696e6720746865206163636f7264696e672070726f706f7274696f6e206f662066756e647320696e746f64746865206163636f756e74206f6620746865206f776e65722e0061012d20606f726967696e603a204d757374206265205369676e656420616e6420746865206163636f756e74206d75737420626520746865206f776e6572206f66207468652066756e6769626c6520636f756e74657270617274582020666f7220726563656970742060696e646578602e902d2060696e646578603a2054686520696e646578206f662074686520726563656970742e24636f6d6d756e696679040114696e6465787102013052656365697074496e6465780005043d014d616b6520612070726976617465207265636569707420636f6d6d756e616c20616e64206372656174652066756e6769626c6520636f756e746572706172747320666f7220697473206f776e65722e24707269766174697a65040114696e6465787102013052656365697074496e64657800060439014d616b65206120636f6d6d756e616c2072656365697074207072697661746520616e64206275726e2066756e6769626c6520636f756e74657270617274732066726f6d20697473206f776e65722e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e810504184f7074696f6e04045401bd010108104e6f6e6500000010536f6d650400bd01000001000085050c3870616c6c65745f756e69717565731870616c6c65741043616c6c08045400044900016818637265617465080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e000040090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e006101546865206f726967696e206d75737420636f6e666f726d20746f2074686520636f6e6669677572656420604372656174654f726967696e6020616e6420686176652073756666696369656e742066756e647320667265652e00ac604974656d4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a61012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e657720636f6c6c656374696f6e2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c000144190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0049012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206e6577206974656d2e2054686973206d757374206e6f742062652063757272656e746c7920696e207573652e39012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c207375706572757365723420207065726d697373696f6e7321016f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e6790607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e6573738905013844657374726f795769746e65737300023c9c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00645765696768743a20604f286e202b206d29602077686572653a542d20606e203d207769746e6573732e6974656d7360782d20606d203d207769746e6573732e6974656d5f6d657461646174617360682d206061203d207769746e6573732e6174747269627574657360106d696e740c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e00032ca04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e004101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d7573742062652074686520497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ec82d20606974656d603a20546865206974656d2076616c7565206f6620746865206974656d20746f206265206d696e7465642ed82d206062656e6566696369617279603a2054686520696e697469616c206f776e6572206f6620746865206d696e746564206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012c636865636b5f6f776e6572fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00043c5844657374726f7920612073696e676c65206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265206275726e65642e51012d2060636865636b5f6f776e6572603a2049662060536f6d6560207468656e20746865206f7065726174696f6e2077696c6c206661696c2077697468206057726f6e674f776e65726020756e6c657373207468657820206974656d206973206f776e656420627920746869732076616c75652e00b4456d69747320604275726e6564602077697468207468652061637475616c20616d6f756e74206275726e65642e00385765696768743a20604f283129607c4d6f6465733a2060636865636b5f6f776e65722e69735f736f6d652829602e207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374950201504163636f756e7449644c6f6f6b75704f663c543e000544c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00b454686973207265736574732074686520617070726f766564206163636f756e74206f6620746865206974656d2e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a802d207468652041646d696e206f66207468652060636f6c6c656374696f6e603b682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642ec42d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c90101385665633c543a3a4974656d49643e0006449852656576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f6620746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e2829296018667265657a65080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000728c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652066726f7a656e2eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f2062652066726f7a656e2e003c456d697473206046726f7a656e602e00385765696768743a20604f283129601074686177080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207468617765642eb02d20606974656d603a20546865206974656d206f6620746865206974656d20746f206265207468617765642e003c456d6974732060546861776564602e00385765696768743a20604f2831296044667265657a655f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000924fc446973616c6c6f77206675727468657220756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f2062652066726f7a656e2e0064456d6974732060436f6c6c656374696f6e46726f7a656e602e00385765696768743a20604f283129603c746861775f636f6c6c656374696f6e040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000a24dc52652d616c6c6f7720756e70726976696c65676564207472616e736665727320666f7220612077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265207468617765642e0064456d6974732060436f6c6c656374696f6e546861776564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572950201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572950201504163636f756e7449644c6f6f6b75704f663c543e000c30d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e000d381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e004d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265f865697468657220746865206f776e6572206f662074686520606974656d60206f72207468652061646d696e206f662074686520636f6c6c656374696f6e2e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e15012d20606974656d603a20546865206974656d206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e001901496d706f7274616e74204e4f54453a205468652060617070726f76656460206163636f756e7420676574732072657365742061667465722065616368207472616e736665722e0090456d6974732060417070726f7665645472616e7366657260206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001506d617962655f636865636b5f64656c6567617465fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000e40110143616e63656c20746865207072696f7220617070726f76616c20666f7220746865207472616e73666572206f6620616e206974656d20627920612064656c65676174652e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3bfc2d20605369676e656460207769746820746865207369676e6572206265696e67207468652041646d696e206f66207468652060636f6c6c656374696f6e603be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e0d012d20606974656d603a20546865206974656d206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e51012d20606d617962655f636865636b5f64656c6567617465603a2049662060536f6d65602077696c6c20656e7375726520746861742074686520676976656e206163636f756e7420697320746865206f6e6520746fb020207768696368207065726d697373696f6e206f66207472616e736665722069732064656c6567617465642e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296044666f7263655f6974656d5f7374617475731c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000118697373756572950201504163636f756e7449644c6f6f6b75704f663c543e00011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e00011c667265657a6572950201504163636f756e7449644c6f6f6b75704f663c543e000130667265655f686f6c64696e67200110626f6f6c00012469735f66726f7a656e200110626f6f6c000f4094416c746572207468652061747472696275746573206f66206120676976656e206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00ac2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2e982d20606f776e6572603a20546865206e6577204f776e6572206f662074686973206974656d2ea02d2060697373756572603a20546865206e657720497373756572206f662074686973206974656d2e982d206061646d696e603a20546865206e65772041646d696e206f662074686973206974656d2ea82d2060667265657a6572603a20546865206e657720467265657a6572206f662074686973206974656d2e51012d2060667265655f686f6c64696e67603a20576865746865722061206465706f7369742069732074616b656e20666f7220686f6c64696e6720616e206974656d206f66207468697320636f6c6c656374696f6e2e39012d206069735f66726f7a656e603a2057686574686572207468697320636f6c6c656374696f6e2069732066726f7a656e2065786365707420666f72207065726d697373696f6e65642f61646d696e34696e737472756374696f6e732e00e0456d69747320604974656d5374617475734368616e67656460207769746820746865206964656e74697479206f6620746865206974656d2e00385765696768743a20604f28312960347365745f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565cd010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001044a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2901604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f6174747269627574650c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e00010c6b65795501016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e001138b0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f28312960307365745f6d65746164617461100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0012447453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0050456d69747320604d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640013347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0060456d69747320604d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461c5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0014408853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e35012d206069735f66726f7a656e603a205768657468657220746865206d657461646174612073686f756c642062652066726f7a656e20616761696e73742066757274686572206368616e6765732e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400153090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001628110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c75333200172ce053657420746865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00e44e6f74653a20546869732066756e6374696f6e2063616e206f6e6c792073756363656564206f6e63652070657220636f6c6c656374696f6e2e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d20616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365b103015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00182c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520617373657420606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e001924a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e89050c3870616c6c65745f756e69717565731474797065733844657374726f795769746e65737300000c01146974656d737102010c7533320001386974656d5f6d65746164617461737102010c753332000128617474726962757465737102010c75333200008d050c2c70616c6c65745f6e6674731870616c6c65741043616c6c08045400044900019c1863726561746508011461646d696e950201504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696791050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00003c090149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d2061207075626c6963206f726967696e2e001d0154686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c7920616e6420697473206f776e657220697320746865206f726967696e2e002501546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420686176652073756666696369656e742066756e647320667265652e00c460436f6c6c656374696f6e4465706f736974602066756e6473206f662073656e646572206172652072657365727665642e002c506172616d65746572733a45012d206061646d696e603a205468652061646d696e206f66207468697320636f6c6c656374696f6e2e205468652061646d696e2069732074686520696e697469616c2061646472657373206f662065616368986d656d626572206f662074686520636f6c6c656374696f6e27732061646d696e207465616d2e0098456d69747320604372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296030666f7263655f6372656174650801146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000118636f6e66696791050164436f6c6c656374696f6e436f6e666967466f723c542c20493e00013c190149737375652061206e657720636f6c6c656374696f6e206f66206e6f6e2d66756e6769626c65206974656d732066726f6d20612070726976696c65676564206f726967696e2e00ac54686973206e657720636f6c6c656374696f6e20686173206e6f206974656d7320696e697469616c6c792e00a4546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e602e009c556e6c696b652060637265617465602c206e6f2066756e6473206172652072657365727665642e0039012d20606f776e6572603a20546865206f776e6572206f66207468697320636f6c6c656374696f6e206f66206974656d732e20546865206f776e6572206861732066756c6c20737570657275736572590120207065726d697373696f6e73206f7665722074686973206974656d2c20627574206d6179206c61746572206368616e676520616e6420636f6e66696775726520746865207065726d697373696f6e73207573696e67982020607472616e736665725f6f776e6572736869706020616e6420607365745f7465616d602e00ac456d6974732060466f7263654372656174656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f283129601c64657374726f79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011c7769746e657373ad05013844657374726f795769746e6573730002449c44657374726f79206120636f6c6c656374696f6e206f662066756e6769626c65206974656d732e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d75737420626520746865686f776e6572206f66207468652060636f6c6c656374696f6e602e00dc4e4f54453a2054686520636f6c6c656374696f6e206d75737420686176652030206974656d7320746f2062652064657374726f7965642e0005012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f2062652064657374726f7965642e31012d20607769746e657373603a20496e666f726d6174696f6e206f6e20746865206974656d73206d696e74656420696e2074686520636f6c6c656374696f6e2e2054686973206d75737420626520636f72726563742e00a0456d697473206044657374726f79656460206576656e74207768656e207375636365737366756c2e00745765696768743a20604f286d202b2063202b206129602077686572653a782d20606d203d207769746e6573732e6974656d5f6d657461646174617360702d206063203d207769746e6573732e6974656d5f636f6e6669677360682d206061203d207769746e6573732e6174747269627574657360106d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f950201504163636f756e7449644c6f6f6b75704f663c543e0001307769746e6573735f64617461b10501d84f7074696f6e3c4d696e745769746e6573733c543a3a4974656d49642c204465706f73697442616c616e63654f663c542c20493e3e3e000340a04d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2e005101546865206f726967696e206d757374206265205369676e656420616e64207468652073656e646572206d75737420636f6d706c7920776974682074686520606d696e745f73657474696e6773602072756c65732e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642e45012d20607769746e6573735f64617461603a205768656e20746865206d696e7420747970652069732060486f6c6465724f6628636f6c6c656374696f6e5f696429602c207468656e20746865206f776e6564590120206974656d5f69642066726f6d207468617420636f6c6c656374696f6e206e6565647320746f2062652070726f76696465642077697468696e20746865207769746e6573732064617461206f626a6563742e20496661012020746865206d696e74207072696365206973207365742c207468656e2069742073686f756c64206265206164646974696f6e616c6c7920636f6e6669726d656420696e2074686520607769746e6573735f64617461602e0051014e6f74653a20746865206465706f7369742077696c6c2062652074616b656e2066726f6d2074686520606f726967696e6020616e64206e6f742074686520606f776e657260206f662074686520606974656d602e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f2831296028666f7263655f6d696e74100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011c6d696e745f746f950201504163636f756e7449644c6f6f6b75704f663c543e00012c6974656d5f636f6e666967b90501284974656d436f6e66696700043405014d696e7420616e206974656d206f66206120706172746963756c617220636f6c6c656374696f6e2066726f6d20612070726976696c65676564206f726967696e2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d75737420626520605369676e65646020616e64207468652073656e646572206d757374206265207468656c497373756572206f66207468652060636f6c6c656374696f6e602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206d696e7465642ea02d20606974656d603a20416e206964656e746966696572206f6620746865206e6577206974656d2ee02d20606d696e745f746f603a204163636f756e7420696e746f20776869636820746865206974656d2077696c6c206265206d696e7465642ea82d20606974656d5f636f6e666967603a204120636f6e666967206f6620746865206e6577206974656d2e0094456d697473206049737375656460206576656e74207768656e207375636365737366756c2e00385765696768743a20604f28312960106275726e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400052c5844657374726f7920612073696e676c65206974656d2e005d01546865206f726967696e206d75737420636f6e666f726d20746f2060466f7263654f726967696e60206f72206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d7573746c626520746865206f776e6572206f662074686520606974656d602e00e02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206275726e65642e802d20606974656d603a20546865206974656d20746f206265206275726e65642e003c456d69747320604275726e6564602e00385765696768743a20604f28312960207472616e736665720c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064657374950201504163636f756e7449644c6f6f6b75704f663c543e000638c04d6f766520616e206974656d2066726f6d207468652073656e646572206163636f756e7420746f20616e6f746865722e00f44f726967696e206d757374206265205369676e656420616e6420746865207369676e696e67206163636f756e74206d757374206265206569746865723a682d20746865204f776e6572206f662074686520606974656d603b35012d2074686520617070726f7665642064656c656761746520666f722074686520606974656d602028696e207468697320636173652c2074686520617070726f76616c206973207265736574292e0028417267756d656e74733af42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265207472616e736665727265642e942d20606974656d603a20546865206974656d20746f206265207472616e736665727265642edc2d206064657374603a20546865206163636f756e7420746f2072656365697665206f776e657273686970206f6620746865206974656d2e0050456d69747320605472616e73666572726564602e00385765696768743a20604f283129602472656465706f736974080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146974656d73c90101385665633c543a3a4974656d49643e0007449c52652d6576616c7561746520746865206465706f73697473206f6e20736f6d65206974656d732e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f82d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d7320746f2062652072656576616c75617465642e29012d20606974656d73603a20546865206974656d73206f662074686520636f6c6c656374696f6e2077686f7365206465706f736974732077696c6c2062652072656576616c75617465642e002d014e4f54453a205468697320657869737473206173206120626573742d6566666f72742066756e6374696f6e2e20416e79206974656d732077686963682061726520756e6b6e6f776e206f723901696e207468652063617365207468617420746865206f776e6572206163636f756e7420646f6573206e6f7420686176652072657365727661626c652066756e647320746f2070617920666f7220614d016465706f73697420696e637265617365206172652069676e6f7265642e2047656e6572616c6c7920746865206f776e65722069736e277420676f696e6720746f2063616c6c2074686973206f6e206974656d73550177686f7365206578697374696e67206465706f736974206973206c657373207468616e2074686520726566726573686564206465706f73697420617320697420776f756c64206f6e6c7920636f7374207468656d2c78736f2069742773206f66206c6974746c6520636f6e73657175656e63652e00590149742077696c6c207374696c6c2072657475726e20616e206572726f7220696e20746865206361736520746861742074686520636f6c6c656374696f6e20697320756e6b6e6f776e206f7220746865207369676e6572706973206e6f74207065726d697474656420746f2063616c6c2069742e00605765696768743a20604f286974656d732e6c656e28292960486c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000828c8446973616c6c6f77206675727468657220756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642eb82d20606974656d603a20546865206974656d20746f206265636f6d65206e6f6e2d7472616e7366657261626c652e006c456d69747320604974656d5472616e736665724c6f636b6564602e00385765696768743a20604f2831296050756e6c6f636b5f6974656d5f7472616e73666572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964000928a852652d616c6c6f7720756e70726976696c65676564207472616e73666572206f6620616e206974656d2e003d014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c642062652074686520467265657a6572206f66207468652060636f6c6c656374696f6e602e00e42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f206265206368616e6765642ea82d20606974656d603a20546865206974656d20746f206265636f6d65207472616e7366657261626c652e0074456d69747320604974656d5472616e73666572556e6c6f636b6564602e00385765696768743a20604f283129603c6c6f636b5f636f6c6c656374696f6e080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346c6f636b5f73657474696e677395050148436f6c6c656374696f6e53657474696e6773000a30d8446973616c6c6f7773207370656369666965642073657474696e677320666f72207468652077686f6c6520636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00b02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e20746f206265206c6f636b65642eb42d20606c6f636b5f73657474696e6773603a205468652073657474696e677320746f206265206c6f636b65642e001d014e6f74653a206974277320706f737369626c6520746f206f6e6c79206c6f636b2873657429207468652073657474696e672c20627574206e6f7420746f20756e7365742069742e0064456d6974732060436f6c6c656374696f6e4c6f636b6564602e00385765696768743a20604f28312960487472616e736665725f6f776e657273686970080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001246e65775f6f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000b2c844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e0035014f726967696e206d757374206265205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468652060636f6c6c656374696f6e602e00f42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365206f776e65722073686f756c64206265206368616e6765642e09012d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e2054686579206d75737420686176652063616c6c656449012020607365745f6163636570745f6f776e6572736869706020776974682060636f6c6c656374696f6e6020696e206f7264657220666f722074686973206f7065726174696f6e20746f20737563636565642e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f28312960207365745f7465616d100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118697373756572fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011461646d696efd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e00011c667265657a6572fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e000c40d44368616e676520746865204973737565722c2041646d696e20616e6420467265657a6572206f66206120636f6c6c656374696f6e2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468653460636f6c6c656374696f6e602e0051014e6f74653a2062792073657474696e672074686520726f6c6520746f20604e6f6e6560206f6e6c79207468652060466f7263654f726967696e602077696c6c2062652061626c6520746f206368616e676520697464616674657220746f2060536f6d65286163636f756e7429602e00f02d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2077686f7365207465616d2073686f756c64206265206368616e6765642eb82d2060697373756572603a20546865206e657720497373756572206f66207468697320636f6c6c656374696f6e2eb02d206061646d696e603a20546865206e65772041646d696e206f66207468697320636f6c6c656374696f6e2ec02d2060667265657a6572603a20546865206e657720467265657a6572206f66207468697320636f6c6c656374696f6e2e0050456d69747320605465616d4368616e676564602e00385765696768743a20604f2831296058666f7263655f636f6c6c656374696f6e5f6f776e6572080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001146f776e6572950201504163636f756e7449644c6f6f6b75704f663c543e000d28844368616e676520746865204f776e6572206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb02d20606f776e6572603a20546865206e6577204f776e6572206f66207468697320636f6c6c656374696f6e2e0054456d69747320604f776e65724368616e676564602e00385765696768743a20604f283129605c666f7263655f636f6c6c656374696f6e5f636f6e666967080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000118636f6e66696791050164436f6c6c656374696f6e436f6e666967466f723c542c20493e000e28884368616e67652074686520636f6e666967206f66206120636f6c6c656374696f6e2e00744f726967696e206d7573742062652060466f7263654f726967696e602e00c42d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2eb82d2060636f6e666967603a20546865206e657720636f6e666967206f66207468697320636f6c6c656374696f6e2e0080456d6974732060436f6c6c656374696f6e436f6e6669674368616e676564602e00385765696768743a20604f2831296040617070726f76655f7472616e73666572100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e0001386d617962655f646561646c696e65c801704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000f381501417070726f766520616e206974656d20746f206265207472616e7366657272656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66207468651c606974656d602e0045012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722ee42d20606974656d603a20546865206974656d20746f20626520617070726f76656420666f722064656c656761746564207472616e736665722e19012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f207472616e7366657220746865206974656d2e49012d20606d617962655f646561646c696e65603a204f7074696f6e616c20646561646c696e6520666f722074686520617070726f76616c2e205370656369666965642062792070726f766964696e6720746865d8096e756d626572206f6620626c6f636b732061667465722077686963682074686520617070726f76616c2077696c6c206578706972650090456d69747320605472616e73666572417070726f76656460206f6e20737563636573732e00385765696768743a20604f283129603c63616e63656c5f617070726f76616c0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e001038e443616e63656c206f6e65206f6620746865207472616e7366657220617070726f76616c7320666f722061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a3d012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e25012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c2077696c6c2062652063616e63656c6c65642e01012d206064656c6567617465603a20546865206163636f756e74207468617420697320676f696e6720746f206c6f6f736520746865697220617070726f76616c2e0094456d6974732060417070726f76616c43616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f2831296070636c6561725f616c6c5f7472616e736665725f617070726f76616c73080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d4964001134b043616e63656c20616c6c2074686520617070726f76616c73206f662061207370656369666963206974656d2e00584f726967696e206d757374206265206569746865723a542d207468652060466f72636560206f726967696e3be42d20605369676e656460207769746820746865207369676e6572206265696e6720746865204f776e6572206f662074686520606974656d603b0028417267756d656e74733a39012d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e21012d20606974656d603a20546865206974656d206f662074686520636f6c6c656374696f6e206f662077686f736520617070726f76616c732077696c6c20626520636c65617265642e00a4456d6974732060416c6c417070726f76616c7343616e63656c6c656460206f6e20737563636573732e00385765696768743a20604f28312960506c6f636b5f6974656d5f70726f70657274696573100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001346c6f636b5f6d65746164617461200110626f6f6c00013c6c6f636b5f61747472696275746573200110626f6f6c001244e8446973616c6c6f7773206368616e67696e6720746865206d65746164617461206f722061747472696275746573206f6620746865206974656d2e0041014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e506f66207468652060636f6c6c656374696f6e602e00b42d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e2069662074686520606974656d602e7c2d20606974656d603a20416e206974656d20746f206265206c6f636b65642e0d012d20606c6f636b5f6d65746164617461603a20537065636966696573207768657468657220746865206d657461646174612073686f756c64206265206c6f636b65642e61012d20606c6f636b5f61747472696275746573603a20537065636966696573207768657468657220746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d6573706163654c202073686f756c64206265206c6f636b65642e005d014e6f74653a20606c6f636b5f6174747269627574657360206166666563747320746865206174747269627574657320696e207468652060436f6c6c656374696f6e4f776e657260206e616d657370616365206f6e6c792e45015768656e20746865206d65746164617461206f72206174747269627574657320617265206c6f636b65642c20697420776f6e277420626520706f737369626c652074686520756e6c6f636b207468656d2e0074456d69747320604974656d50726f706572746965734c6f636b6564602e00385765696768743a20604f28312960347365745f617474726962757465140128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001358a853657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e0001014f726967696e206d757374206265205369676e656420616e64206d75737420636f6e666f726d20746f20746865206e616d6573706163652072756c657365743a3d012d2060436f6c6c656374696f6e4f776e657260206e616d65737061636520636f756c64206265206d6f646966696564206279207468652060636f6c6c656374696f6e602041646d696e206f6e6c793b59012d20604974656d4f776e657260206e616d65737061636520636f756c64206265206d6f6469666965642062792074686520606d617962655f6974656d60206f776e6572206f6e6c792e20606d617962655f6974656d6074202073686f756c642062652073657420696e207468617420636173653b55012d20604163636f756e74284163636f756e7449642960206e616d65737061636520636f756c64206265206d6f646966696564206f6e6c79207768656e2074686520606f726967696e602077617320676976656e20615820207065726d697373696f6e20746f20646f20736f3b00f05468652066756e6473206f6620606f726967696e6020617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613a2d01604174747269627574654465706f73697442617365202b204465706f73697450657242797465202a20286b65792e6c656e202b2076616c75652e6c656e29602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129604c666f7263655f7365745f6174747269627574651801187365745f6173ac01504f7074696f6e3c543a3a4163636f756e7449643e000128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00011476616c7565d5010174426f756e6465645665633c75382c20543a3a56616c75654c696d69743e001444c0466f7263652d73657420616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e00744f726967696e206d7573742062652060466f7263654f726967696e602e0039014966207468652061747472696275746520616c72656164792065786973747320616e64206974207761732073657420627920616e6f74686572206163636f756e742c20746865206465706f7369749c77696c6c2062652072657475726e656420746f207468652070726576696f7573206f776e65722e00bc2d20607365745f6173603a20416e206f7074696f6e616c206f776e6572206f6620746865206174747269627574652e39012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742e05012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652ecc2d206076616c7565603a205468652076616c756520746f20776869636820746f2073657420746865206174747269627574652e0054456d6974732060417474726962757465536574602e00385765696768743a20604f283129603c636c6561725f617474726962757465100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d617962655f6974656dc801444f7074696f6e3c543a3a4974656d49643e0001246e616d657370616365d90101804174747269627574654e616d6573706163653c543a3a4163636f756e7449643e00010c6b6579cd01016c426f756e6465645665633c75382c20543a3a4b65794c696d69743e00153cb0436c65617220616e2061747472696275746520666f72206120636f6c6c656374696f6e206f72206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f6620746865286174747269627574652e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722e0d012d20606d617962655f6974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e942d20606e616d657370616365603a204174747269627574652773206e616d6573706163652e882d20606b6579603a20546865206b6579206f6620746865206174747269627574652e0064456d6974732060417474726962757465436c6561726564602e00385765696768743a20604f283129605c617070726f76655f6974656d5f617474726962757465730c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e0016242d01417070726f7665206974656d2773206174747269627574657320746f206265206368616e67656420627920612064656c6567617465642074686972642d7061727479206163636f756e742e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00a42d2060636f6c6c656374696f6e603a204120636f6c6c656374696f6e206f6620746865206974656d2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732e49012d206064656c6567617465603a20546865206163636f756e7420746f2064656c6567617465207065726d697373696f6e20746f206368616e67652061747472696275746573206f6620746865206974656d2e00bc456d69747320604974656d41747472696275746573417070726f76616c416464656460206f6e20737563636573732e7c63616e63656c5f6974656d5f617474726962757465735f617070726f76616c100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400012064656c6567617465950201504163636f756e7449644c6f6f6b75704f663c543e00011c7769746e657373bd05017c43616e63656c41747472696275746573417070726f76616c5769746e657373001728110143616e63656c207468652070726576696f75736c792070726f766964656420617070726f76616c20746f206368616e6765206974656d277320617474726962757465732e1101416c6c207468652070726576696f75736c7920736574206174747269627574657320627920746865206064656c6567617465602077696c6c2062652072656d6f7665642e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00f42d2060636f6c6c656374696f6e603a20436f6c6c656374696f6e207468617420746865206974656d20697320636f6e7461696e65642077697468696e2ea42d20606974656d603a20546865206974656d207468617420686f6c647320617474726962757465732ee02d206064656c6567617465603a205468652070726576696f75736c7920617070726f766564206163636f756e7420746f2072656d6f76652e00c4456d69747320604974656d41747472696275746573417070726f76616c52656d6f76656460206f6e20737563636573732e307365745f6d657461646174610c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e0018407453657420746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e005101496620746865206f726967696e206973205369676e65642c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0039012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f207365742eec2d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207365742e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0060456d69747320604974656d4d65746164617461536574602e00385765696768743a20604f2831296038636c6561725f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640019347c436c65617220746865206d6574616461746120666f7220616e206974656d2e005d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f72205369676e656420616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66207468653460636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0041012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206974656d2773206d6574616461746120746f20636c6561722ef42d20606974656d603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f20636c6561722e0070456d69747320604974656d4d65746164617461436c6561726564602e00385765696768743a20604f283129605c7365745f636f6c6c656374696f6e5f6d65746164617461080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400011064617461d5010178426f756e6465645665633c75382c20543a3a537472696e674c696d69743e001a3c8853657420746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e005901496620746865206f726967696e20697320605369676e6564602c207468656e2066756e6473206f66207369676e657220617265207265736572766564206163636f7264696e6720746f2074686520666f726d756c613af4604d657461646174614465706f73697442617365202b204465706f73697450657242797465202a20646174612e6c656e602074616b696e6720696e746f8c6163636f756e7420616e7920616c72656164792072657365727665642066756e64732e0011012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f6620746865206974656d2077686f7365206d6574616461746120746f207570646174652e4d012d206064617461603a205468652067656e6572616c20696e666f726d6174696f6e206f662074686973206974656d2e204c696d6974656420696e206c656e6774682062792060537472696e674c696d6974602e0078456d6974732060436f6c6c656374696f6e4d65746164617461536574602e00385765696768743a20604f2831296064636c6561725f636f6c6c656374696f6e5f6d65746164617461040128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964001b3090436c65617220746865206d6574616461746120666f72206120636f6c6c656374696f6e2e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c64206265207468652041646d696e206f66447468652060636f6c6c656374696f6e602e00c0416e79206465706f73697420697320667265656420666f722074686520636f6c6c656374696f6e2773206f776e65722e0025012d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206d6574616461746120746f20636c6561722e0088456d6974732060436f6c6c656374696f6e4d65746164617461436c6561726564602e00385765696768743a20604f28312960507365745f6163636570745f6f776e6572736869700401406d617962655f636f6c6c656374696f6ec8015c4f7074696f6e3c543a3a436f6c6c656374696f6e49643e001c28110153657420286f72207265736574292074686520616363657074616e6365206f66206f776e65727368697020666f72206120706172746963756c6172206163636f756e742e0061014f726967696e206d75737420626520605369676e65646020616e6420696620606d617962655f636f6c6c656374696f6e602069732060536f6d65602c207468656e20746865207369676e6572206d757374206861766520614c70726f7669646572207265666572656e63652e0051012d20606d617962655f636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e2077686f7365206f776e65727368697020746865207369676e65722069736101202077696c6c696e6720746f206163636570742c206f7220696620604e6f6e65602c20616e20696e6469636174696f6e207468617420746865207369676e65722069732077696c6c696e6720746f20616363657074206e6f5c20206f776e657273686970207472616e73666572616c2e008c456d69747320604f776e657273686970416363657074616e63654368616e676564602e647365745f636f6c6c656374696f6e5f6d61785f737570706c79080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001286d61785f737570706c7910010c753332001d24e053657420746865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e0055014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c6420626520746865204f776e6572206f66447468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652e11012d20606d61785f737570706c79603a20546865206d6178696d756d206e756d626572206f66206974656d73206120636f6c6c656374696f6e20636f756c6420686176652e00d4456d6974732060436f6c6c656374696f6e4d6178537570706c7953657460206576656e74207768656e207375636365737366756c2e507570646174655f6d696e745f73657474696e6773080128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001346d696e745f73657474696e67739d050115014d696e7453657474696e67733c42616c616e63654f663c542c20493e2c20426c6f636b4e756d626572466f723c542c20493e2c20543a3a0a436f6c6c656374696f6e49643e001e2454557064617465206d696e742073657474696e67732e004d014f726967696e206d757374206265206569746865722060466f7263654f726967696e60206f7220605369676e65646020616e64207468652073656e6465722073686f756c642062652074686520497373756572506f66207468652060636f6c6c656374696f6e602e00ec2d2060636f6c6c656374696f6e603a20546865206964656e746966696572206f662074686520636f6c6c656374696f6e20746f206368616e67652ea42d20606d696e745f73657474696e6773603a20546865206e6577206d696e742073657474696e67732e00f0456d6974732060436f6c6c656374696f6e4d696e7453657474696e67735570646174656460206576656e74207768656e207375636365737366756c2e247365745f7072696365100128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001147072696365b103015c4f7074696f6e3c4974656d50726963653c542c20493e3e00014477686974656c69737465645f6275796572fd0401704f7074696f6e3c4163636f756e7449644c6f6f6b75704f663c543e3e001f2c9453657420286f72207265736574292074686520707269636520666f7220616e206974656d2e00e84f726967696e206d757374206265205369676e656420616e64206d75737420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea02d20606974656d603a20546865206974656d20746f207365742074686520707269636520666f722e0d012d20607072696365603a2054686520707269636520666f7220746865206974656d2e205061737320604e6f6e65602c20746f207265736574207468652070726963652ef42d20606275796572603a205265737472696374732074686520627579206f7065726174696f6e20746f2061207370656369666963206163636f756e742e00ec456d69747320604974656d507269636553657460206f6e207375636365737320696620746865207072696365206973206e6f7420604e6f6e65602eec456d69747320604974656d507269636552656d6f76656460206f6e20737563636573732069662074686520707269636520697320604e6f6e65602e206275795f6974656d0c0128636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001106974656d100124543a3a4974656d49640001246269645f707269636518013c4974656d50726963653c542c20493e002024a8416c6c6f777320746f2062757920616e206974656d206966206974277320757020666f722073616c652e00f84f726967696e206d757374206265205369676e656420616e64206d757374206e6f7420626520746865206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2eac2d20606974656d603a20546865206974656d207468652073656e6465722077616e747320746f206275792ed82d20606269645f7072696365603a20546865207072696365207468652073656e6465722069732077696c6c696e6720746f207061792e0078456d69747320604974656d426f7567687460206f6e20737563636573732e207061795f7469707304011074697073c105019c426f756e6465645665633c4974656d5469704f663c542c20493e2c20543a3a4d6178546970733e00211c5c416c6c6f777320746f207061792074686520746970732e00584f726967696e206d757374206265205369676e65642e00542d206074697073603a20546970732061727261792e0098456d697473206054697053656e7460206f6e20657665727920746970207472616e736665722e2c6372656174655f737761701801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d4964000148646573697265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001486d617962655f646573697265645f6974656dc801444f7074696f6e3c543a3a4974656d49643e00012c6d617962655f7072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e0001206475726174696f6e100150426c6f636b4e756d626572466f723c542c20493e002240510152656769737465722061206e65772061746f6d696320737761702c206465636c6172696e6720616e20696e74656e74696f6e20746f2073656e6420616e20606974656d6020696e2065786368616e676520666f72fc60646573697265645f6974656d602066726f6d206f726967696e20746f20746172676574206f6e207468652063757272656e7420626c6f636b636861696e2e4d01546865207461726765742063616e206578656375746520746865207377617020647572696e67207468652073706563696669656420606475726174696f6e60206f6620626c6f636b732028696620736574292ef04164646974696f6e616c6c792c2074686520707269636520636f756c642062652073657420666f7220746865206465736972656420606974656d602e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652eec2d2060646573697265645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f66207468652064657369726564206974656d2ef42d2060646573697265645f6974656d603a205468652064657369726564206974656d20616e206f776e65722077616e747320746f20726563656976652e61012d20606d617962655f7072696365603a2054686520707269636520616e206f776e65722069732077696c6c696e6720746f20706179206f72207265636569766520666f7220746865206465736972656420606974656d602e49012d20606475726174696f6e603a204120646561646c696e6520666f722074686520737761702e205370656369666965642062792070726f766964696e6720746865206e756d626572206f6620626c6f636b73880961667465722077686963682074686520737761702077696c6c206578706972652e007c456d6974732060537761704372656174656460206f6e20737563636573732e2c63616e63656c5f737761700801486f6666657265645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e49640001306f6666657265645f6974656d100124543a3a4974656d49640023245843616e63656c20616e2061746f6d696320737761702e00584f726967696e206d757374206265205369676e65642e15014f726967696e206d75737420626520616e206f776e6572206f662074686520606974656d602069662074686520646561646c696e65206861736e277420657870697265642e00ac2d2060636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d2ea82d20606974656d603a20546865206974656d20616e206f776e65722077616e747320746f20676976652e0084456d69747320605377617043616e63656c6c656460206f6e20737563636573732e28636c61696d5f7377617014013c73656e645f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e496400012473656e645f6974656d100124543a3a4974656d4964000148726563656976655f636f6c6c656374696f6e10013c543a3a436f6c6c656374696f6e4964000130726563656976655f6974656d100124543a3a4974656d49640001347769746e6573735f7072696365dd0101ac4f7074696f6e3c507269636557697468446972656374696f6e3c4974656d50726963653c542c20493e3e3e00243054436c61696d20616e2061746f6d696320737761702e390154686973206d6574686f6420657865637574657320612070656e64696e6720737761702c2074686174207761732063726561746564206279206120636f756e74657270617274206265666f72652e00e44f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f662074686520606974656d602e00ec2d206073656e645f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652073656e742e8c2d206073656e645f6974656d603a20546865206974656d20746f2062652073656e742e09012d2060726563656976655f636f6c6c656374696f6e603a2054686520636f6c6c656374696f6e206f6620746865206974656d20746f2062652072656365697665642ea82d2060726563656976655f6974656d603a20546865206974656d20746f2062652072656365697665642ee42d20607769746e6573735f7072696365603a20412070726963652074686174207761732070726576696f75736c7920616772656564206f6e2e007c456d697473206053776170436c61696d656460206f6e20737563636573732e3c6d696e745f7072655f7369676e65640c01246d696e745f64617461cd050168426f783c5072655369676e65644d696e744f663c542c20493e3e0001247369676e6174757265ed040150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e744964002534c84d696e7420616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00584f726967696e206d757374206265205369676e65642e005d012d20606d696e745f64617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2c51012020697473206d657461646174612c20617474726962757465732c2077686f2063616e206d696e742069742028604e6f6e656020666f7220616e796f6e652920616e6420756e74696c207768617420626c6f636b2420206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e39012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e20497373756572206f662074686520636f6c6c656374696f6e2e0068456d697473206049737375656460206f6e20737563636573732ed4456d69747320604174747269627574655365746020696620746865206174747269627574657320776572652070726f76696465642ed8456d69747320604974656d4d657461646174615365746020696620746865206d6574616461746120776173206e6f7420656d7074792e647365745f617474726962757465735f7072655f7369676e65640c011064617461d105016c5072655369676e6564417474726962757465734f663c542c20493e0001247369676e6174757265ed040150543a3a4f6666636861696e5369676e61747572650001187369676e6572000130543a3a4163636f756e7449640026340101536574206174747269627574657320666f7220616e206974656d2062792070726f766964696e6720746865207072652d7369676e656420617070726f76616c2e00f84f726967696e206d757374206265205369676e656420616e64206d75737420626520616e206f776e6572206f66207468652060646174612e6974656d602e0049012d206064617461603a20546865207072652d7369676e656420617070726f76616c207468617420636f6e7369737473206f662074686520696e666f726d6174696f6e2061626f757420746865206974656d2ccc20206174747269627574657320746f2075706461746520616e6420756e74696c207768617420626c6f636b206e756d6265722ec82d20607369676e6174757265603a20546865207369676e6174757265206f662074686520606461746160206f626a6563742e51012d20607369676e6572603a2054686520606461746160206f626a6563742773207369676e65722e2053686f756c6420626520616e2041646d696e206f662074686520636f6c6c656374696f6e20666f722074686578202060436f6c6c656374696f6e4f776e657260206e616d6573706163652e00c4456d69747320604174747269627574655365746020666f7220656163682070726f7669646564206174747269627574652e1901456d69747320604974656d41747472696275746573417070726f76616c4164646564602069662074686520617070726f76616c207761736e277420736574206265666f72652ea8456d69747320605072655369676e65644174747269627574657353657460206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e91050c2c70616c6c65745f6e66747314747970657340436f6c6c656374696f6e436f6e6669670c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110000c012073657474696e677395050148436f6c6c656374696f6e53657474696e67730001286d61785f737570706c79c8012c4f7074696f6e3c7533323e0001346d696e745f73657474696e67739d0501b84d696e7453657474696e67733c50726963652c20426c6f636b4e756d6265722c20436f6c6c656374696f6e49643e000095050c2c70616c6c65745f6e66747314747970657320426974466c616773040454019905000400300144436f6c6c656374696f6e53657474696e67000099050c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e53657474696e67000114445472616e7366657261626c654974656d7300010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040044556e6c6f636b65644d6178537570706c790008003c4465706f7369745265717569726564001000009d050c2c70616c6c65745f6e667473147479706573304d696e7453657474696e67730c14507269636501182c426c6f636b4e756d626572011030436f6c6c656374696f6e49640110001401246d696e745f74797065a10501584d696e74547970653c436f6c6c656374696f6e49643e0001147072696365b10301344f7074696f6e3c50726963653e00012c73746172745f626c6f636bc8014c4f7074696f6e3c426c6f636b4e756d6265723e000124656e645f626c6f636bc8014c4f7074696f6e3c426c6f636b4e756d6265723e00015464656661756c745f6974656d5f73657474696e6773a50501304974656d53657474696e67730000a1050c2c70616c6c65745f6e667473147479706573204d696e74547970650430436f6c6c656374696f6e49640110010c18497373756572000000185075626c696300010020486f6c6465724f660400100130436f6c6c656374696f6e496400020000a5050c2c70616c6c65745f6e66747314747970657320426974466c61677304045401a90500040030012c4974656d53657474696e670000a9050c2c70616c6c65745f6e6674731474797065732c4974656d53657474696e6700010c305472616e7366657261626c6500010040556e6c6f636b65644d6574616461746100020048556e6c6f636b65644174747269627574657300040000ad050c2c70616c6c65745f6e6674731474797065733844657374726f795769746e65737300000c01386974656d5f6d65746164617461737102010c7533320001306974656d5f636f6e666967737102010c753332000128617474726962757465737102010c7533320000b10504184f7074696f6e04045401b5050108104e6f6e6500000010536f6d650400b5050000010000b5050c2c70616c6c65745f6e6674731474797065732c4d696e745769746e65737308184974656d496401101c42616c616e63650118000801286f776e65645f6974656dc801384f7074696f6e3c4974656d49643e0001286d696e745f7072696365b103013c4f7074696f6e3c42616c616e63653e0000b9050c2c70616c6c65745f6e667473147479706573284974656d436f6e666967000004012073657474696e6773a50501304974656d53657474696e67730000bd050c2c70616c6c65745f6e6674731474797065737c43616e63656c41747472696275746573417070726f76616c5769746e65737300000401486163636f756e745f6174747269627574657310010c7533320000c1050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c505045300000400c90501185665633c543e0000c5050c2c70616c6c65745f6e6674731474797065731c4974656d5469701030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010018416d6f756e74011800100128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d496400012072656365697665720001244163636f756e744964000118616d6f756e74180118416d6f756e740000c905000002c50500cd050c2c70616c6c65745f6e667473147479706573345072655369676e65644d696e741430436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e6501101c42616c616e63650118001c0128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733d02015c5665633c285665633c75383e2c205665633c75383e293e0001206d6574616461746138011c5665633c75383e0001306f6e6c795f6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000120646561646c696e65100120446561646c696e650001286d696e745f7072696365b103013c4f7074696f6e3c42616c616e63653e0000d1050c2c70616c6c65745f6e6674731474797065734c5072655369676e6564417474726962757465731030436f6c6c656374696f6e49640110184974656d49640110244163636f756e744964010020446561646c696e65011000140128636f6c6c656374696f6e100130436f6c6c656374696f6e49640001106974656d1001184974656d4964000128617474726962757465733d02015c5665633c285665633c75383e2c205665633c75383e293e0001246e616d657370616365d90101744174747269627574654e616d6573706163653c4163636f756e7449643e000120646561646c696e65100120446561646c696e650000d5050c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c65741043616c6c040454000108346672616374696f6e616c697a651401446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e0001246672616374696f6e73180144417373657442616c616e63654f663c543e000044ac4c6f636b20746865204e465420616e64206d696e742061206e65772066756e6769626c652061737365742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e0101546865206f726967696e206d75737420626520746865206f776e6572206f6620746865204e465420746865792061726520747279696e6720746f206c6f636b2e009c604465706f736974602066756e6473206f662073656e646572206172652072657365727665642e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602ee42d206061737365745f6964603a20546865204944206f6620746865206e65772061737365742e204974206d757374206e6f742065786973742eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602e1d012d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c207265636569766520746865206e65776c7920637265617465642061737365742e0d012d20606672616374696f6e73603a2054686520746f74616c2069737375616e6365206f6620746865206e65776c79206372656174656420617373657420636c6173732e00c0456d69747320604e66744672616374696f6e616c697a656460206576656e74207768656e207375636365737366756c2e14756e6966791001446e66745f636f6c6c656374696f6e5f6964100148543a3a4e6674436f6c6c656374696f6e49640001186e66745f6964100120543a3a4e6674496400012061737365745f6964100130417373657449644f663c543e00012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e00014045014275726e2074686520746f74616c2069737375616e6365206f66207468652066756e6769626c6520617373657420616e642072657475726e2028756e6c6f636b2920746865206c6f636b6564204e46542e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205369676e65642e00d0604465706f736974602066756e64732077696c6c2062652072657475726e656420746f206061737365745f63726561746f72602e0025012d20606e66745f636f6c6c656374696f6e5f6964603a20546865204944207573656420746f206964656e746966792074686520636f6c6c656374696f6e206f6620746865204e46542eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e21012d20606e66745f6964603a20546865204944207573656420746f206964656e7469667920746865204e46542077697468696e2074686520676976656e20636f6c6c656374696f6e2eb0497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f6e667473602e29012d206061737365745f6964603a20546865204944206f6620746865206173736574206265696e672072657475726e656420616e642064657374726f7965642e204d757374206d61746368fc746865206f726967696e616c204944206f662074686520637265617465642061737365742c20636f72726573706f6e64696e6720746f20746865204e46542eb8497320757365642077697468696e2074686520636f6e74657874206f66206070616c6c65745f617373657473602efc2d206062656e6566696369617279603a20546865206163636f756e7420746861742077696c6c20726563656976652074686520756e6966696564204e46542e00a4456d69747320604e6674556e696669656460206576656e74207768656e207375636365737366756c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ed9050c3470616c6c65745f73616c6172791870616c6c65741043616c6c08045400044900011c10696e697400000c74537461727420746865206669727374207061796f7574206379636c652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e1062756d7000010c51014d6f766520746f206e657874207061796f7574206379636c652c20617373756d696e672074686174207468652070726573656e7420626c6f636b206973206e6f772077697468696e2074686174206379636c652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e18696e6475637400020498496e64756374206f6e6573656c6620696e746f20746865207061796f75742073797374656d2e20726567697374657200031858526567697374657220666f722061207061796f75742e00450157696c6c206f6e6c7920776f726b2069662077652061726520696e207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c6520737461727465642e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602e187061796f757400041844526571756573742061207061796f75742e00510157696c6c206f6e6c7920776f726b20696620776520617265206166746572207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c65c87374617274656420627574206279206e6f206d6f7265207468616e20605061796f7574506572696f646020626c6f636b732e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602e307061796f75745f6f7468657204012c62656e6566696369617279000130543a3a4163636f756e74496400051ca0526571756573742061207061796f757420746f2061207365636f6e64617279206163636f756e742e00510157696c6c206f6e6c7920776f726b20696620776520617265206166746572207468652066697273742060526567697374726174696f6e506572696f646020626c6f636b732073696e636520746865206379636c65c87374617274656420627574206279206e6f206d6f7265207468616e20605061796f7574506572696f646020626c6f636b732e002d012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602ec02d206062656e6566696369617279603a20546865206163636f756e7420746f2072656365697665207061796d656e742e34636865636b5f7061796d656e7400061c5d015570646174652061207061796d656e742773207374617475733b206966206974206661696c65642c20616c7465722074686520737461746520736f20746865207061796d656e742063616e20626520726574726965642e00490154686973206d7573742062652063616c6c65642077697468696e207468652073616d65206379636c6520617320746865206661696c6564207061796d656e742e2049742077696c6c206661696c207769746878604576656e743a3a4e6f7443757272656e7460206f74686572776973652e0049012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742077686963682069732061206d656d626572206f6620604d656d62657273602077686f2068617380202072656365697665642061207061796d656e742074686973206379636c652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732edd050c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c65741043616c6c0804540004490001301062756d7004010c77686f000130543a3a4163636f756e74496400001c6c42756d7020746865207374617465206f662061206d656d6265722e001d01546869732077696c6c2064656d6f74652061206d656d6265722077686f736520606c6173745f70726f6f6660206973206e6f77206265796f6e642074686569722072616e6b2773486064656d6f74696f6e5f706572696f64602e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742edc2d206077686f603a2041206d656d626572206163636f756e742077686f736520737461746520697320746f20626520757064617465642e287365745f706172616d73040118706172616d73f901014c426f783c506172616d734f663c542c20493e3e0001104c5365742074686520706172616d65746572732e00f02d20606f726967696e603a20416e206f726967696e20636f6d706c79696e6720776974682060506172616d734f726967696e60206f7220726f6f742eb82d2060706172616d73603a20546865206e657720706172616d657465727320666f72207468652070616c6c65742e287365745f61637469766504012469735f616374697665200110626f6f6c0002109853657420776865746865722061206d656d62657220697320616374697665206f72206e6f742e00d02d20606f726967696e603a204120605369676e656460206f726967696e206f662061206d656d6265722773206163636f756e742ebc2d206069735f616374697665603a206074727565602069666620746865206d656d626572206973206163746976652e1c617070726f766508010c77686f000130543a3a4163636f756e74496400011c61745f72616e6b9101013052616e6b4f663c542c20493e000324ac417070726f76652061206d656d62657220746f20636f6e74696e75652061742074686569722072616e6b2e005d01546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b2c20746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2e0021016077686f60206d75737420616c726561647920626520747261636b656420627920746869732070616c6c657420666f72207468697320746f206861766520616e206566666563742e00f82d20606f726967696e603a20416e206f726967696e207768696368207361746973666965732060417070726f76654f726967696e60206f7220726f6f742ea82d206077686f603a2041206d656d6265722028692e652e206f66206e6f6e2d7a65726f2072616e6b292e802d206061745f72616e6b603a205468652072616e6b206f66206d656d6265722e18696e6475637404010c77686f000130543a3a4163636f756e744964000410cc496e74726f647563652061206e657720616e6420756e72616e6b65642063616e646964617465202872616e6b207a65726f292e00f42d20606f726967696e603a20416e206f726967696e207768696368207361746973666965732060496e647563744f726967696e60206f7220726f6f742e31012d206077686f603a20546865206163636f756e74204944206f66207468652063616e64696461746520746f20626520696e64756374656420616e64206265636f6d652061206d656d6265722e1c70726f6d6f746508010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9101013052616e6b4f663c542c20493e000518cc496e6372656d656e74207468652072616e6b206f6620612072616e6b656420616e6420747261636b6564206163636f756e742e0041012d20606f726967696e603a20416e206f726967696e20776869636820736174697366696573206050726f6d6f74654f726967696e60207769746820612060537563636573736020726573756c74206f6670202060746f5f72616e6b60206f72206d6f7265206f7220726f6f742e09012d206077686f603a20546865206163636f756e74204944206f6620746865206d656d62657220746f2062652070726f6d6f74656420746f2060746f5f72616e6b602ed42d2060746f5f72616e6b603a204f6e65206d6f7265207468616e207468652063757272656e742072616e6b206f66206077686f602e3070726f6d6f74655f6661737408010c77686f000130543a3a4163636f756e74496400011c746f5f72616e6b9101013052616e6b4f663c542c20493e000a141501466173742070726f6d6f74696f6e732063616e20736b69702072616e6b7320616e642069676e6f72652074686520606d696e5f70726f6d6f74696f6e5f706572696f64602e005901546869732069732075736566756c20666f72206f75742d6f662d62616e642070726f6d6f74696f6e732c2068656e63652069742068617320697473206f776e20604661737450726f6d6f74654f726967696e6020746f590162652028706f737369626c7929206d6f7265207265737472696374697665207468616e206050726f6d6f74654f726967696e602e204e6f7465207468617420746865206d656d626572206d75737420616c726561647930626520696e6475637465642e206f6666626f61726404010c77686f000130543a3a4163636f756e744964000614390153746f7020747261636b696e672061207072696f72206d656d6265722077686f206973206e6f77206e6f7420612072616e6b6564206d656d626572206f662074686520636f6c6c6563746976652e00b02d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e206163636f756e742e55012d206077686f603a20546865204944206f6620616e206163636f756e742077686963682077617320747261636b656420696e20746869732070616c6c657420627574207768696368206973206e6f77206e6f74206188202072616e6b6564206d656d626572206f662074686520636f6c6c6563746976652e3c7375626d69745f65766964656e636508011077697368090201105769736800012065766964656e63650d02013845766964656e63653c542c20493e000728a450726f766964652065766964656e6365207468617420612072616e6b2069732064657365727665642e005d01546869732069732066726565206173206c6f6e67206173206e6f2065766964656e636520666f722074686520666f727468636f6d696e67206a756467656d656e7420697320616c7265616479207375626d69747465642e390145766964656e636520697320636c656172656420616674657220616e206f7574636f6d6520286569746865722064656d6f74696f6e2c2070726f6d6f74696f6e206f6620617070726f76616c292e0001012d20606f726967696e603a204120605369676e656460206f726967696e206f6620616e20696e64756374656420616e642072616e6b6564206163636f756e742ea82d206077697368603a205468652073746174656420646573697265206f6620746865206d656d6265722e51012d206065766964656e6365603a20412064756d70206f662065766964656e636520746f20626520636f6e736964657265642e20546869732073686f756c642067656e6572616c6c79206265206569746865722061450120204d61726b646f776e2d656e636f64656420646f63756d656e74206f72206120736572696573206f662033322d62797465206861736865732077686963682063616e20626520666f756e64206f6e2061ec2020646563656e7472616c6973656420636f6e74656e742d62617365642d696e646578696e672073797374656d207375636820617320495046532e18696d706f727400081c2901496e74726f6475636520616e20616c72656164792d72616e6b656420696e646976696475616c206f662074686520636f6c6c65637469766520696e746f20746869732070616c6c65742e0035015468652072616e6b206d6179207374696c6c206265207a65726f2e20546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b20616e644501606c6173745f70726f6d6f74696f6e602077696c6c2062652073657420746f207a65726f2c20746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2062757474616c6c6f77696e6720696d6d6564696174652070726f6d6f74696f6e2e0009012d20606f726967696e603a2041207369676e6564206f726967696e206f6620612072616e6b65642c20627574206e6f7420747261636b65642c206163636f756e742e34696d706f72745f6d656d62657204010c77686f000130543a3a4163636f756e744964000b282901496e74726f6475636520616e20616c72656164792d72616e6b656420696e646976696475616c206f662074686520636f6c6c65637469766520696e746f20746869732070616c6c65742e0061015468652072616e6b206d6179207374696c6c206265207a65726f2e2043616e2062652063616c6c656420627920616e796f6e65206f6e20616e7920636f6c6c656374697665206d656d626572202d20696e636c7564696e672c7468652073656e6465722e005d01546869732072657365747320606c6173745f70726f6f666020746f207468652063757272656e7420626c6f636b20616e6420606c6173745f70726f6d6f74696f6e602077696c6c2062652073657420746f207a65726f2c2501746865726562792064656c6179696e6720616e79206175746f6d617469632064656d6f74696f6e2062757420616c6c6f77696e6720696d6d6564696174652070726f6d6f74696f6e2e0009012d20606f726967696e603a2041207369676e6564206f726967696e206f6620612072616e6b65642c20627574206e6f7420747261636b65642c206163636f756e742e01012d206077686f603a20546865206163636f756e74204944206f662074686520636f6c6c656374697665206d656d62657220746f20626520696e6475637465642e487365745f7061727469616c5f706172616d730401387061727469616c5f706172616d73e1050168426f783c5061727469616c506172616d734f663c542c20493e3e00091c745365742074686520706172616d6574657273207061727469616c6c792e00f02d20606f726967696e603a20416e206f726967696e20636f6d706c79696e6720776974682060506172616d734f726967696e60206f7220726f6f742ed82d20607061727469616c5f706172616d73603a20546865206e657720706172616d657465727320666f72207468652070616c6c65742e00f8546869732075706461746520636f6e6669672077697468206d756c7469706c6520617267756d656e747320776974686f7574206475706c69636174696e67d8746865206669656c6473207468617420646f6573206e6f74206e65656420746f20757064617465202873657420746f204e6f6e65292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ee105085870616c6c65745f636f72655f66656c6c6f777368697028506172616d73547970650c1c42616c616e636501b1032c426c6f636b4e756d62657201c81452616e6b7300001401346163746976655f73616c617279e5050168426f756e6465645665633c42616c616e63652c2052616e6b733e000138706173736976655f73616c617279e5050168426f756e6465645665633c42616c616e63652c2052616e6b733e00013c64656d6f74696f6e5f706572696f64ed050178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001506d696e5f70726f6d6f74696f6e5f706572696f64ed050178426f756e6465645665633c426c6f636b4e756d6265722c2052616e6b733e0001406f6666626f6172645f74696d656f7574c8012c426c6f636b4e756d6265720000e5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b103045300000400e90501185665633c543e0000e905000002b10300ed050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c8045300000400f10501185665633c543e0000f105000002c800f5050c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c65741043616c6c04045400010c1473746f72650401106461746138011c5665633c75383e0000142101496e64657820616e642073746f72652064617461206f666620636861696e2e204d696e696d756d20646174612073697a6520697320312062797465732c206d6178696d756d2069736101604d61785472616e73616374696f6e53697a65602e20446174612077696c6c2062652072656d6f766564206166746572206053544f524147455f504552494f446020626c6f636b732c20756e6c657373206072656e6577602869732063616c6c65642e34232320436f6d706c65786974791d012d204f286e2a6c6f67286e2929206f6620646174612073697a652c20617320616c6c20646174612069732070757368656420746f20616e20696e2d6d656d6f727920747269652e1472656e6577080114626c6f636b100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001182d0152656e65772070726576696f75736c792073746f72656420646174612e20506172616d6574657273206172652074686520626c6f636b206e756d626572207468617420636f6e7461696e73250170726576696f7573206073746f726560206f72206072656e6577602063616c6c20616e64207472616e73616374696f6e20696e6465782077697468696e207468617420626c6f636b2e01015472616e73616374696f6e20696e64657820697320656d697474656420696e20746865206053746f72656460206f72206052656e6577656460206576656e742e744170706c6965732073616d652066656573206173206073746f7265602e34232320436f6d706c65786974791c2d204f2831292e2c636865636b5f70726f6f6604011470726f6f66f905015c5472616e73616374696f6e53746f7261676550726f6f660002181901436865636b2073746f726167652070726f6f6620666f7220626c6f636b206e756d6265722060626c6f636b5f6e756d6265722829202d2053746f72616765506572696f64602e01014966207375636820626c6f636b20646f6573206e6f74206578697374207468652070726f6f6620697320657870656374656420746f20626520604e6f6e65602e34232320436f6d706c657869747941012d204c696e65617220772e722e7420746865206e756d626572206f6620696e6465786564207472616e73616374696f6e7320696e207468652070726f76656420626c6f636b20666f722072616e646f6d28202070726f62696e672e9c546865726527732061204442207265616420666f722065616368207472616e73616374696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ef905087073705f7472616e73616374696f6e5f73746f726167655f70726f6f665c5472616e73616374696f6e53746f7261676550726f6f6600000801146368756e6b38011c5665633c75383e00011470726f6f66450201305665633c5665633c75383e3e0000fd050c4070616c6c65745f626167735f6c6973741870616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564950201504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572950201504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572950201504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572950201504163636f756e7449644c6f6f6b75704f663c543e00020c110153616d65206173205b6050616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e01060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e6669670506015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974730906013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b0d0601404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973450201305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b657973450201305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974730906013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f701106013450726f67726573734f663c543e00013870726f67726573735f6368696c641106013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612070617261636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e050604184f7074696f6e0404540109060108104e6f6e6500000010536f6d6504000906000001000009060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c75333200000d060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f701106013450726f67726573734f663c543e00013870726f67726573735f6368696c641106013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c753332000011060c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b6579040015060164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c6574650002000015060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000019060c5470616c6c65745f6368696c645f626f756e746965731870616c6c65741043616c6c04045400011c406164645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800011476616c7565a102013042616c616e63654f663c543e00012c6465736372697074696f6e38011c5665633c75383e00004c5c4164642061206e6577206368696c642d626f756e74792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f6620706172656e74dc626f756e747920616e642074686520706172656e7420626f756e7479206d75737420626520696e2022616374697665222073746174652e0005014368696c642d626f756e74792067657473206164646564207375636365737366756c6c7920262066756e642067657473207472616e736665727265642066726f6d0901706172656e7420626f756e747920746f206368696c642d626f756e7479206163636f756e742c20696620706172656e7420626f756e74792068617320656e6f7567686c66756e64732c20656c7365207468652063616c6c206661696c732e000d01557070657220626f756e6420746f206d6178696d756d206e756d626572206f662061637469766520206368696c6420626f756e7469657320746861742063616e206265a8616464656420617265206d616e61676564207669612072756e74696d6520747261697420636f6e666967985b60436f6e6669673a3a4d61784163746976654368696c64426f756e7479436f756e74605d2e0001014966207468652063616c6c20697320737563636573732c2074686520737461747573206f66206368696c642d626f756e7479206973207570646174656420746f20224164646564222e004d012d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e747920666f72207768696368206368696c642d626f756e7479206973206265696e672061646465642eb02d206076616c7565603a2056616c756520666f7220657865637574696e67207468652070726f706f73616c2edc2d20606465736372697074696f6e603a2054657874206465736372697074696f6e20666f7220746865206368696c642d626f756e74792e3c70726f706f73655f63757261746f72100140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647102012c426f756e7479496e64657800011c63757261746f72950201504163636f756e7449644c6f6f6b75704f663c543e00010c666565a102013042616c616e63654f663c543e00013ca050726f706f73652063757261746f7220666f722066756e646564206368696c642d626f756e74792e000d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652063757261746f72206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e20224164646564222073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6405017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202243757261746f7250726f706f73656422206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792eb42d206063757261746f72603a2041646472657373206f66206368696c642d626f756e74792063757261746f722eec2d2060666565603a207061796d656e742066656520746f206368696c642d626f756e74792063757261746f7220666f7220657865637574696f6e2e386163636570745f63757261746f72080140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647102012c426f756e7479496e64657800024cb4416363657074207468652063757261746f7220726f6c6520666f7220746865206368696c642d626f756e74792e00f4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265207468652063757261746f72206f662074686973346368696c642d626f756e74792e00ec41206465706f7369742077696c6c2062652072657365727665642066726f6d207468652063757261746f7220616e6420726566756e642075706f6e887375636365737366756c207061796f7574206f722063616e63656c6c6174696f6e2e00f846656520666f722063757261746f722069732064656475637465642066726f6d2063757261746f7220666565206f6620706172656e7420626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e000d014368696c642d626f756e7479206d75737420626520696e202243757261746f7250726f706f736564222073746174652c20666f722070726f63657373696e6720746865090163616c6c2e20416e64207374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202241637469766522206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e40756e61737369676e5f63757261746f72080140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647102012c426f756e7479496e64657800038894556e61737369676e2063757261746f722066726f6d2061206368696c642d626f756e74792e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c2063616e20626520656974686572206052656a6563744f726967696e602c206f72dc7468652063757261746f72206f662074686520706172656e7420626f756e74792c206f7220616e79207369676e6564206f726967696e2e00f8466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e20616e6420746865206368696c642d626f756e7479010163757261746f722c20706172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f7220746869732063616c6c20746f0901776f726b2e20576520616c6c6f77206368696c642d626f756e74792063757261746f7220616e6420543a3a52656a6563744f726967696e20746f2065786563757465c8746869732063616c6c20697272657370656374697665206f662074686520706172656e7420626f756e74792073746174652e00dc496620746869732066756e6374696f6e2069732063616c6c656420627920746865206052656a6563744f726967696e60206f72207468650501706172656e7420626f756e74792063757261746f722c20776520617373756d65207468617420746865206368696c642d626f756e74792063757261746f722069730d016d616c6963696f7573206f7220696e6163746976652e204173206120726573756c742c206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e000501496620746865206f726967696e20697320746865206368696c642d626f756e74792063757261746f722c2077652074616b6520746869732061732061207369676e09017468617420746865792061726520756e61626c6520746f20646f207468656972206a6f622c20616e64206172652077696c6c696e676c7920676976696e672075702e0901576520636f756c6420736c61736820746865206465706f7369742c2062757420666f72206e6f7720776520616c6c6f77207468656d20746f20756e7265736572766511017468656972206465706f73697420616e64206578697420776974686f75742069737375652e20285765206d61792077616e7420746f206368616e67652074686973206966386974206973206162757365642e2900050146696e616c6c792c20746865206f726967696e2063616e20626520616e796f6e652069666620746865206368696c642d626f756e74792063757261746f72206973090122696e616374697665222e204578706972792075706461746520647565206f6620706172656e7420626f756e7479206973207573656420746f20657374696d6174659c696e616374697665207374617465206f66206368696c642d626f756e74792063757261746f722e000d015468697320616c6c6f777320616e796f6e6520696e2074686520636f6d6d756e69747920746f2063616c6c206f757420746861742061206368696c642d626f756e7479090163757261746f72206973206e6f7420646f696e67207468656972206475652064696c6967656e63652c20616e642077652073686f756c64207069636b2061206e6577f86f6e652e20496e2074686973206361736520746865206368696c642d626f756e74792063757261746f72206465706f73697420697320736c61736865642e0001015374617465206f66206368696c642d626f756e7479206973206d6f76656420746f204164646564207374617465206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e4861776172645f6368696c645f626f756e74790c0140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647102012c426f756e7479496e64657800012c62656e6566696369617279950201504163636f756e7449644c6f6f6b75704f663c543e000444904177617264206368696c642d626f756e747920746f20612062656e65666963696172792e00f85468652062656e65666963696172792077696c6c2062652061626c6520746f20636c61696d207468652066756e647320616674657220612064656c61792e00fc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652074686520706172656e742063757261746f72206f727463757261746f72206f662074686973206368696c642d626f756e74792e001101506172656e7420626f756e7479206d75737420626520696e206163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f14776f726b2e0009014368696c642d626f756e7479206d75737420626520696e206163746976652073746174652c20666f722070726f63657373696e67207468652063616c6c2e20416e6411017374617465206f66206368696c642d626f756e7479206973206d6f76656420746f202250656e64696e675061796f757422206f6e207375636365737366756c2063616c6c2c636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e942d206062656e6566696369617279603a2042656e6566696369617279206163636f756e742e48636c61696d5f6368696c645f626f756e7479080140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647102012c426f756e7479496e6465780005400501436c61696d20746865207061796f75742066726f6d20616e2061776172646564206368696c642d626f756e7479206166746572207061796f75742064656c61792e00ec546865206469737061746368206f726967696e20666f7220746869732063616c6c206d617920626520616e79207369676e6564206f726967696e2e00050143616c6c20776f726b7320696e646570656e64656e74206f6620706172656e7420626f756e74792073746174652c204e6f206e65656420666f7220706172656e7474626f756e747920746f20626520696e206163746976652073746174652e0011015468652042656e65666963696172792069732070616964206f757420776974682061677265656420626f756e74792076616c75652e2043757261746f7220666565206973947061696420262063757261746f72206465706f73697420697320756e72657365727665642e0005014368696c642d626f756e7479206d75737420626520696e202250656e64696e675061796f7574222073746174652c20666f722070726f63657373696e6720746865fc63616c6c2e20416e6420696e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e6c7375636365737366756c2063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e48636c6f73655f6368696c645f626f756e7479080140706172656e745f626f756e74795f69647102012c426f756e7479496e64657800013c6368696c645f626f756e74795f69647102012c426f756e7479496e646578000658110143616e63656c20612070726f706f736564206f7220616374697665206368696c642d626f756e74792e204368696c642d626f756e7479206163636f756e742066756e64730901617265207472616e7366657272656420746f20706172656e7420626f756e7479206163636f756e742e20546865206368696c642d626f756e74792063757261746f72986465706f736974206d617920626520756e726573657276656420696620706f737369626c652e000901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652065697468657220706172656e742063757261746f72206f724860543a3a52656a6563744f726967696e602e00f0496620746865207374617465206f66206368696c642d626f756e74792069732060416374697665602c2063757261746f72206465706f7369742069732c756e72657365727665642e00f4496620746865207374617465206f66206368696c642d626f756e7479206973206050656e64696e675061796f7574602c2063616c6c206661696c7320267872657475726e73206050656e64696e675061796f757460206572726f722e000d01466f7220746865206f726967696e206f74686572207468616e20543a3a52656a6563744f726967696e2c20706172656e7420626f756e7479206d75737420626520696ef06163746976652073746174652c20666f722074686973206368696c642d626f756e74792063616c6c20746f20776f726b2e20466f72206f726967696e90543a3a52656a6563744f726967696e20657865637574696f6e20697320666f726365642e000101496e7374616e6365206f66206368696c642d626f756e74792069732072656d6f7665642066726f6d20746865207374617465206f6e207375636365737366756c4063616c6c20636f6d706c6574696f6e2e00b42d2060706172656e745f626f756e74795f6964603a20496e646578206f6620706172656e7420626f756e74792eac2d20606368696c645f626f756e74795f6964603a20496e646578206f66206368696c6420626f756e74792e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1d060c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e5102015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e7421060188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b9101013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368e503013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e210610346672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d6265720001000025060c3470616c6c65745f72656d61726b1870616c6c65741043616c6c0404540001041473746f726504011872656d61726b38011c5665633c75383e0000047c496e64657820616e642073746f72652064617461206f666620636861696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e29060c4c70616c6c65745f726f6f745f74657374696e671870616c6c65741043616c6c0404540001082866696c6c5f626c6f636b040114726174696fc4011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e44747269676765725f646566656e73697665000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d060c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e64657871020144506f6c6c496e6465784f663c542c20493e000110766f7465310601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c61737391010134436c6173734f663c542c20493e000108746f950201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6e39060128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c61737391010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c61737391010134436c6173734f663c542c20493e000118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373110201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574950201504163636f756e7449644c6f6f6b75704f663c543e000114636c61737391010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e31060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f746535060110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e63650002000035060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f7465000004000800000039060c6070616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b65643678000600003d060c4070616c6c65745f77686974656c6973741870616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e41060c4470616c6c65745f636f6c6c6563746976651870616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d626572735d0101445665633c543a3a4163636f756e7449643e0001147072696d65ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a005901546865206070616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070616c6c6574207468726f75676820746865b8696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c647102012c4d656d626572436f756e7400012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647102010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e45060c3c70616c6c65745f616c6c69616e63651870616c6c65741043616c6c0804540004490001441c70726f706f73650c01247468726573686f6c647102010c75333200012070726f706f73616c3502017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e647102010c75333200000c884164642061206e65772070726f706f73616c20746f20626520766f746564206f6e2e006c4d7573742062652063616c6c656420627920612046656c6c6f772e10766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c00010cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e006c4d7573742062652063616c6c656420627920612046656c6c6f772e30696e69745f6d656d6265727308011c66656c6c6f77735d0101445665633c543a3a4163636f756e7449643e000118616c6c6965735d0101445665633c543a3a4163636f756e7449643e000314d0496e697469616c697a652074686520416c6c69616e63652c206f6e626f6172642066656c6c6f777320616e6420616c6c6965732e00310154686520416c6c69616e6365206d75737420626520656d7074792c20616e64207468652063616c6c206d7573742070726f7669646520736f6d6520666f756e64696e67206d656d626572732e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e1c64697362616e6404011c7769746e6573734906013844697362616e645769746e65737300040c1d0144697362616e642074686520416c6c69616e63652c2072656d6f766520616c6c20616374697665206d656d6265727320616e6420756e72657365727665206465706f736974732e00645769746e6573732064617461206d757374206265207365742e207365745f72756c6504011072756c654d06010c436964000504a05365742061206e657720495046532043494420746f2074686520616c6c69616e63652072756c652e20616e6e6f756e6365040130616e6e6f756e63656d656e744d06010c436964000604f44d616b6520616e20616e6e6f756e63656d656e74206f662061206e65772049504653204349442061626f757420616c6c69616e6365206973737565732e4c72656d6f76655f616e6e6f756e63656d656e74040130616e6e6f756e63656d656e744d06010c4369640007045c52656d6f766520616e20616e6e6f756e63656d656e742e346a6f696e5f616c6c69616e6365000804e85375626d6974206f6e6573656c6620666f722063616e6469646163792e2041206669786564206465706f7369742069732072657365727665642e346e6f6d696e6174655f616c6c7904010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0009084901412046656c6c6f772063616e206e6f6d696e61746520736f6d656f6e6520746f206a6f696e2074686520616c6c69616e636520617320616e20416c6c792e205468657265206973206e6f206465706f7369749c72657175697265642066726f6d20746865206e6f6d696e61746f72206f72206e6f6d696e65652e30656c65766174655f616c6c79040110616c6c79950201504163636f756e7449644c6f6f6b75704f663c543e000a0468456c657661746520616e20416c6c7920746f2046656c6c6f772e58676976655f7265746972656d656e745f6e6f74696365000b085d0141732061206d656d6265722c20676976652061207265746972656d656e74206e6f7469636520616e642073746172742061207265746972656d656e7420706572696f6420726571756972656420746f207061737320696e406f7264657220746f207265746972652e18726574697265000c10010141732061206d656d6265722c207265746972652066726f6d2074686520416c6c69616e636520616e6420756e7265736572766520746865206465706f7369742e002d01546869732063616e206f6e6c7920626520646f6e65206f6e636520796f7520686176652063616c6c65642060676976655f7265746972656d656e745f6e6f746963656020616e642074686578605265746972656d656e74506572696f646020686173207061737365642e2c6b69636b5f6d656d62657204010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000d04d84b69636b2061206d656d6265722066726f6d2074686520416c6c69616e636520616e6420736c61736820697473206465706f7369742e586164645f756e7363727570756c6f75735f6974656d730401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000e04ec416464206163636f756e7473206f7220776562736974657320746f20746865206c697374206f6620756e7363727570756c6f7573206974656d732e6472656d6f76655f756e7363727570756c6f75735f6974656d730401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000f049c4465656d20736f6d65206974656d73206e6f206c6f6e67657220756e7363727570756c6f75732e14636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465787102013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e647102010c75333200100c5101436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f7665642c206f722077686f736520766f74696e6720706572696f642068617320656e6465642e006c4d7573742062652063616c6c656420627920612046656c6c6f772e5861626469636174655f66656c6c6f775f73746174757300110c59014162646963617465206f6e65277320706f736974696f6e206173206120766f74696e67206d656d62657220616e64206a75737420626520616e20416c6c792e204d617920626520757365642062792046656c6c6f7773450177686f20646f206e6f742077616e7420746f206c656176652074686520416c6c69616e63652062757420646f206e6f7420686176652074686520636170616369747920746f207061727469636970617465706f7065726174696f6e616c6c7920666f7220736f6d652074696d652e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e49060c3c70616c6c65745f616c6c69616e63651474797065733844697362616e645769746e657373000008013866656c6c6f775f6d656d626572737102010c753332000130616c6c795f6d656d626572737102010c75333200004d060c3c70616c6c65745f616c6c69616e63651474797065730c43696400000c011c76657273696f6e5106011c56657273696f6e000114636f64656330010c75363400011068617368550601244d756c746968617368000051060c3c70616c6c65745f616c6c69616e63651474797065731c56657273696f6e0001080856300000000856310001000055060c3c70616c6c65745f616c6c69616e6365147479706573244d756c7469686173680000080110636f646530010c75363400011864696765737459060170426f756e6465645665633c75382c20436f6e73745533323c36383e3e000059060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00005d060000026106006106083c70616c6c65745f616c6c69616e636540556e7363727570756c6f75734974656d08244163636f756e74496401000c55726c0165060108244163636f756e74496404000001244163636f756e7449640000001c5765627369746504006506010c55726c0001000065060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000069060c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c65741043616c6c040454000168106a6f696e080118616d6f756e74a102013042616c616e63654f663c543e00011c706f6f6c5f6964100118506f6f6c496400004045015374616b652066756e64732077697468206120706f6f6c2e2054686520616d6f756e7420746f20626f6e642069732064656c65676174656420286f72207472616e73666572726564206261736564206f6e4d015b60616461707465723a3a5374616b65537472617465677954797065605d292066726f6d20746865206d656d62657220746f2074686520706f6f6c206163636f756e7420616e6420696d6d6564696174656c7968696e637265617365732074686520706f6f6c277320626f6e642e002901546865206d6574686f64206f66207472616e7366657272696e672074686520616d6f756e7420746f2074686520706f6f6c206163636f756e742069732064657465726d696e656420627901015b60616461707465723a3a5374616b65537472617465677954797065605d2e2049662074686520706f6f6c20697320636f6e6669677572656420746f2075736531015b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2c207468652066756e64732072656d61696e20696e20746865206163636f756e74206f66310174686520606f726967696e602c207768696c652074686520706f6f6c206761696e732074686520726967687420746f207573652074686573652066756e647320666f72207374616b696e672e001823204e6f746500cc2a20416e206163636f756e742063616e206f6e6c792062652061206d656d626572206f6620612073696e676c6520706f6f6c2ed82a20416e206163636f756e742063616e6e6f74206a6f696e207468652073616d6520706f6f6c206d756c7469706c652074696d65732e41012a20546869732063616c6c2077696c6c202a6e6f742a206475737420746865206d656d626572206163636f756e742c20736f20746865206d656d626572206d7573742068617665206174206c65617374c82020606578697374656e7469616c206465706f736974202b20616d6f756e746020696e207468656972206163636f756e742ed02a204f6e6c79206120706f6f6c2077697468205b60506f6f6c53746174653a3a4f70656e605d2063616e206265206a6f696e656428626f6e645f657874726104011465787472616d06015c426f6e6445787472613c42616c616e63654f663c543e3e00011c4501426f6e642060657874726160206d6f72652066756e64732066726f6d20606f726967696e6020696e746f2074686520706f6f6c20746f207768696368207468657920616c72656164792062656c6f6e672e0049014164646974696f6e616c2066756e64732063616e20636f6d652066726f6d206569746865722074686520667265652062616c616e6365206f6620746865206163636f756e742c206f662066726f6d207468659c616363756d756c6174656420726577617264732c20736565205b60426f6e644578747261605d2e003d01426f6e64696e672065787472612066756e647320696d706c69657320616e206175746f6d61746963207061796f7574206f6620616c6c2070656e64696e6720726577617264732061732077656c6c2e09015365652060626f6e645f65787472615f6f746865726020746f20626f6e642070656e64696e672072657761726473206f6620606f7468657260206d656d626572732e30636c61696d5f7061796f757400022055014120626f6e646564206d656d6265722063616e20757365207468697320746f20636c61696d207468656972207061796f7574206261736564206f6e20746865207265776172647320746861742074686520706f6f6c610168617320616363756d756c617465642073696e6365207468656972206c61737420636c61696d6564207061796f757420284f522073696e6365206a6f696e696e6720696620746869732069732074686569722066697273743d0174696d6520636c61696d696e672072657761726473292e20546865207061796f75742077696c6c206265207472616e7366657272656420746f20746865206d656d6265722773206163636f756e742e004901546865206d656d6265722077696c6c206561726e20726577617264732070726f2072617461206261736564206f6e20746865206d656d62657273207374616b65207673207468652073756d206f6620746865d06d656d6265727320696e2074686520706f6f6c73207374616b652e205265776172647320646f206e6f742022657870697265222e0041015365652060636c61696d5f7061796f75745f6f746865726020746f20636c61696d2072657761726473206f6e20626568616c66206f6620736f6d6520606f746865726020706f6f6c206d656d6265722e18756e626f6e640801386d656d6265725f6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e000140756e626f6e64696e675f706f696e7473a102013042616c616e63654f663c543e00037c4501556e626f6e6420757020746f2060756e626f6e64696e675f706f696e747360206f662074686520606d656d6265725f6163636f756e746027732066756e64732066726f6d2074686520706f6f6c2e2049744501696d706c696369746c7920636f6c6c65637473207468652072657761726473206f6e65206c6173742074696d652c2073696e6365206e6f7420646f696e6720736f20776f756c64206d65616e20736f6d656c7265776172647320776f756c6420626520666f726665697465642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463682e005d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e205468697320697320726566657265656420746f30202061732061206b69636b2ef42a2054686520706f6f6c2069732064657374726f79696e6720616e6420746865206d656d626572206973206e6f7420746865206465706f7369746f722e55012a2054686520706f6f6c2069732064657374726f79696e672c20746865206d656d62657220697320746865206465706f7369746f7220616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001101232320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463682028692e652e207468652063616c6c657220697320616c736f2074686548606d656d6265725f6163636f756e7460293a00882a205468652063616c6c6572206973206e6f7420746865206465706f7369746f722e55012a205468652063616c6c657220697320746865206465706f7369746f722c2074686520706f6f6c2069732064657374726f79696e6720616e64206e6f206f74686572206d656d626572732061726520696e207468651c2020706f6f6c2e001823204e6f7465001d0149662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f20756e626f6e6420776974682074686520706f6f6c206163636f756e742c51015b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d2063616e2062652063616c6c656420746f2074727920616e64206d696e696d697a6520756e6c6f636b696e67206368756e6b732e5901546865205b605374616b696e67496e746572666163653a3a756e626f6e64605d2077696c6c20696d706c696369746c792063616c6c205b6043616c6c3a3a706f6f6c5f77697468647261775f756e626f6e646564605d5501746f2074727920746f2066726565206368756e6b73206966206e6563657373617279202869652e20696620756e626f756e64207761732063616c6c656420616e64206e6f20756e6c6f636b696e67206368756e6b73610161726520617661696c61626c65292e20486f77657665722c206974206d6179206e6f7420626520706f737369626c6520746f2072656c65617365207468652063757272656e7420756e6c6f636b696e67206368756e6b732c5d01696e20776869636820636173652c2074686520726573756c74206f6620746869732063616c6c2077696c6c206c696b656c792062652074686520604e6f4d6f72654368756e6b7360206572726f722066726f6d207468653c7374616b696e672073797374656d2e58706f6f6c5f77697468647261775f756e626f6e64656408011c706f6f6c5f6964100118506f6f6c49640001486e756d5f736c617368696e675f7370616e7310010c753332000418550143616c6c206077697468647261775f756e626f6e6465646020666f722074686520706f6f6c73206163636f756e742e20546869732063616c6c2063616e206265206d61646520627920616e79206163636f756e742e004101546869732069732075736566756c2069662074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b7320746f2063616c6c2060756e626f6e64602c20616e6420736f6d65610163616e20626520636c6561726564206279207769746864726177696e672e20496e2074686520636173652074686572652061726520746f6f206d616e7920756e6c6f636b696e67206368756e6b732c2074686520757365725101776f756c642070726f6261626c792073656520616e206572726f72206c696b6520604e6f4d6f72654368756e6b736020656d69747465642066726f6d20746865207374616b696e672073797374656d207768656e5c7468657920617474656d707420746f20756e626f6e642e4477697468647261775f756e626f6e6465640801386d656d6265725f6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e0001486e756d5f736c617368696e675f7370616e7310010c7533320005585501576974686472617720756e626f6e6465642066756e64732066726f6d20606d656d6265725f6163636f756e74602e204966206e6f20626f6e6465642066756e64732063616e20626520756e626f6e6465642c20616e486572726f722069732072657475726e65642e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00a82320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463680009012a2054686520706f6f6c20697320696e2064657374726f79206d6f646520616e642074686520746172676574206973206e6f7420746865206465706f7369746f722e31012a205468652074617267657420697320746865206465706f7369746f7220616e6420746865792061726520746865206f6e6c79206d656d62657220696e207468652073756220706f6f6c732e0d012a2054686520706f6f6c20697320626c6f636b656420616e64207468652063616c6c6572206973206569746865722074686520726f6f74206f7220626f756e6365722e00982320436f6e646974696f6e7320666f72207065726d697373696f6e656420646973706174636800e82a205468652063616c6c6572206973207468652074617267657420616e64207468657920617265206e6f7420746865206465706f7369746f722e001823204e6f746500f42d204966207468652074617267657420697320746865206465706f7369746f722c2074686520706f6f6c2077696c6c2062652064657374726f7965642e61012d2049662074686520706f6f6c2068617320616e792070656e64696e6720736c6173682c20776520616c736f2074727920746f20736c61736820746865206d656d626572206265666f7265206c657474696e67207468656d5d0177697468647261772e20546869732063616c63756c6174696f6e206164647320736f6d6520776569676874206f7665726865616420616e64206973206f6e6c7920646566656e736976652e20496e207265616c6974792c5501706f6f6c20736c6173686573206d7573742068617665206265656e20616c7265616479206170706c69656420766961207065726d697373696f6e6c657373205b6043616c6c3a3a6170706c795f736c617368605d2e18637265617465100118616d6f756e74a102013042616c616e63654f663c543e000110726f6f74950201504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72950201504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572950201504163636f756e7449644c6f6f6b75704f663c543e000644744372656174652061206e65772064656c65676174696f6e20706f6f6c2e002c2320417267756d656e74730055012a2060616d6f756e7460202d2054686520616d6f756e74206f662066756e647320746f2064656c656761746520746f2074686520706f6f6c2e205468697320616c736f2061637473206f66206120736f7274206f664d0120206465706f7369742073696e63652074686520706f6f6c732063726561746f722063616e6e6f742066756c6c7920756e626f6e642066756e647320756e74696c2074686520706f6f6c206973206265696e6730202064657374726f7965642e51012a2060696e64657860202d204120646973616d626967756174696f6e20696e64657820666f72206372656174696e6720746865206163636f756e742e204c696b656c79206f6e6c792075736566756c207768656ec020206372656174696e67206d756c7469706c6520706f6f6c7320696e207468652073616d652065787472696e7369632ed42a2060726f6f7460202d20546865206163636f756e7420746f20736574206173205b60506f6f6c526f6c65733a3a726f6f74605d2e0d012a20606e6f6d696e61746f7260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a6e6f6d696e61746f72605d2efc2a2060626f756e63657260202d20546865206163636f756e7420746f2073657420617320746865205b60506f6f6c526f6c65733a3a626f756e636572605d2e001823204e6f7465006101496e206164646974696f6e20746f2060616d6f756e74602c207468652063616c6c65722077696c6c207472616e7366657220746865206578697374656e7469616c206465706f7369743b20736f207468652063616c6c65720d016e656564732061742068617665206174206c656173742060616d6f756e74202b206578697374656e7469616c5f6465706f73697460207472616e7366657261626c652e4c6372656174655f776974685f706f6f6c5f6964140118616d6f756e74a102013042616c616e63654f663c543e000110726f6f74950201504163636f756e7449644c6f6f6b75704f663c543e0001246e6f6d696e61746f72950201504163636f756e7449644c6f6f6b75704f663c543e00011c626f756e636572950201504163636f756e7449644c6f6f6b75704f663c543e00011c706f6f6c5f6964100118506f6f6c4964000718ec4372656174652061206e65772064656c65676174696f6e20706f6f6c207769746820612070726576696f75736c79207573656420706f6f6c206964002c2320417267756d656e7473009873616d6520617320606372656174656020776974682074686520696e636c7573696f6e206f66782a2060706f6f6c5f696460202d2060412076616c696420506f6f6c49642e206e6f6d696e61746508011c706f6f6c5f6964100118506f6f6c496400012876616c696461746f72735d0101445665633c543a3a4163636f756e7449643e0008307c4e6f6d696e617465206f6e20626568616c66206f662074686520706f6f6c2e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6c28726f6f7420726f6c652e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e001823204e6f7465005901496e206164646974696f6e20746f20612060726f6f7460206f7220606e6f6d696e61746f726020726f6c65206f6620606f726967696e602c2074686520706f6f6c2773206465706f7369746f72206e6565647320746f0d0168617665206174206c6561737420606465706f7369746f725f6d696e5f626f6e646020696e2074686520706f6f6c20746f207374617274206e6f6d696e6174696e672e247365745f737461746508011c706f6f6c5f6964100118506f6f6c4964000114737461746571060124506f6f6c5374617465000928745365742061206e657720737461746520666f722074686520706f6f6c2e0055014966206120706f6f6c20697320616c726561647920696e20746865206044657374726f79696e67602073746174652c207468656e20756e646572206e6f20636f6e646974696f6e2063616e20697473207374617465346368616e676520616761696e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206569746865723a00dc312e207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686520706f6f6c2c5d01322e2069662074686520706f6f6c20636f6e646974696f6e7320746f206265206f70656e20617265204e4f54206d6574202861732064657363726962656420627920606f6b5f746f5f62655f6f70656e60292c20616e6439012020207468656e20746865207374617465206f662074686520706f6f6c2063616e206265207065726d697373696f6e6c6573736c79206368616e67656420746f206044657374726f79696e67602e307365745f6d6574616461746108011c706f6f6c5f6964100118506f6f6c49640001206d6574616461746138011c5665633c75383e000a10805365742061206e6577206d6574616461746120666f722074686520706f6f6c2e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265207369676e65642062792074686520626f756e6365722c206f722074686520726f6f7420726f6c65206f662074686514706f6f6c2e2c7365745f636f6e666967731801346d696e5f6a6f696e5f626f6e6475060158436f6e6669674f703c42616c616e63654f663c543e3e00013c6d696e5f6372656174655f626f6e6475060158436f6e6669674f703c42616c616e63654f663c543e3e0001246d61785f706f6f6c7379060134436f6e6669674f703c7533323e00012c6d61785f6d656d6265727379060134436f6e6669674f703c7533323e0001506d61785f6d656d626572735f7065725f706f6f6c79060134436f6e6669674f703c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6e7d060144436f6e6669674f703c50657262696c6c3e000b2c410155706461746520636f6e66696775726174696f6e7320666f7220746865206e6f6d696e6174696f6e20706f6f6c732e20546865206f726967696e20666f7220746869732063616c6c206d757374206265605b60436f6e6669673a3a41646d696e4f726967696e605d2e002c2320417267756d656e747300a02a20606d696e5f6a6f696e5f626f6e6460202d20536574205b604d696e4a6f696e426f6e64605d2eb02a20606d696e5f6372656174655f626f6e6460202d20536574205b604d696e437265617465426f6e64605d2e842a20606d61785f706f6f6c7360202d20536574205b604d6178506f6f6c73605d2ea42a20606d61785f6d656d6265727360202d20536574205b604d6178506f6f6c4d656d62657273605d2ee42a20606d61785f6d656d626572735f7065725f706f6f6c60202d20536574205b604d6178506f6f6c4d656d62657273506572506f6f6c605d2ee02a2060676c6f62616c5f6d61785f636f6d6d697373696f6e60202d20536574205b60476c6f62616c4d6178436f6d6d697373696f6e605d2e307570646174655f726f6c657310011c706f6f6c5f6964100118506f6f6c49640001206e65775f726f6f7481060158436f6e6669674f703c543a3a4163636f756e7449643e0001346e65775f6e6f6d696e61746f7281060158436f6e6669674f703c543a3a4163636f756e7449643e00012c6e65775f626f756e63657281060158436f6e6669674f703c543a3a4163636f756e7449643e000c1c745570646174652074686520726f6c6573206f662074686520706f6f6c2e003d0154686520726f6f7420697320746865206f6e6c7920656e7469747920746861742063616e206368616e676520616e79206f662074686520726f6c65732c20696e636c7564696e6720697473656c662cb86578636c7564696e6720746865206465706f7369746f722c2077686f2063616e206e65766572206368616e67652e005101497420656d69747320616e206576656e742c206e6f74696679696e6720554973206f662074686520726f6c65206368616e67652e2054686973206576656e742069732071756974652072656c6576616e7420746f1d016d6f737420706f6f6c206d656d6265727320616e6420746865792073686f756c6420626520696e666f726d6564206f66206368616e67657320746f20706f6f6c20726f6c65732e146368696c6c04011c706f6f6c5f6964100118506f6f6c4964000d44704368696c6c206f6e20626568616c66206f662074686520706f6f6c2e004101546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e206265207369676e65642062792074686520706f6f6c206e6f6d696e61746f72206f722074686520706f6f6ca0726f6f7420726f6c652c2073616d65206173205b6050616c6c65743a3a6e6f6d696e617465605d2e00450154686973206469726563746c7920666f727761726473207468652063616c6c20746f20616e20696d706c656d656e746174696f6e206f6620605374616b696e67496e74657266616365602028652e672e2c45016070616c6c65742d7374616b696e676029207468726f756768205b60436f6e6669673a3a5374616b6541646170746572605d2c206f6e20626568616c66206f662074686520626f6e64656420706f6f6c2e004d01556e646572206365727461696e20636f6e646974696f6e732c20746869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79246163636f756e74292e00ac2320436f6e646974696f6e7320666f722061207065726d697373696f6e6c6573732064697370617463683a55012a205768656e20706f6f6c206465706f7369746f7220686173206c657373207468616e20604d696e4e6f6d696e61746f72426f6e6460207374616b65642c206f746865727769736520706f6f6c206d656d626572735c202061726520756e61626c6520746f20756e626f6e642e009c2320436f6e646974696f6e7320666f72207065726d697373696f6e65642064697370617463683ab42a205468652063616c6c65722069732074686520706f6f6c2773206e6f6d696e61746f72206f7220726f6f742e40626f6e645f65787472615f6f746865720801186d656d626572950201504163636f756e7449644c6f6f6b75704f663c543e00011465787472616d06015c426f6e6445787472613c42616c616e63654f663c543e3e000e245501606f726967696e6020626f6e64732066756e64732066726f6d206065787472616020666f7220736f6d6520706f6f6c206d656d62657220606d656d6265726020696e746f207468656972207265737065637469766518706f6f6c732e004901606f726967696e602063616e20626f6e642065787472612066756e64732066726f6d20667265652062616c616e6365206f722070656e64696e672072657761726473207768656e20606f726967696e203d3d1c6f74686572602e004501496e207468652063617365206f6620606f726967696e20213d206f74686572602c20606f726967696e602063616e206f6e6c7920626f6e642065787472612070656e64696e672072657761726473206f661501606f7468657260206d656d6265727320617373756d696e67207365745f636c61696d5f7065726d697373696f6e20666f722074686520676976656e206d656d626572206973c0605065726d697373696f6e6c657373436f6d706f756e6460206f7220605065726d697373696f6e6c657373416c6c602e507365745f636c61696d5f7065726d697373696f6e0401287065726d697373696f6e8506013c436c61696d5065726d697373696f6e000f1c4901416c6c6f7773206120706f6f6c206d656d62657220746f20736574206120636c61696d207065726d697373696f6e20746f20616c6c6f77206f7220646973616c6c6f77207065726d697373696f6e6c65737360626f6e64696e6720616e64207769746864726177696e672e002c2320417267756d656e747300782a20606f726967696e60202d204d656d626572206f66206120706f6f6c2eb82a20607065726d697373696f6e60202d20546865207065726d697373696f6e20746f206265206170706c6965642e48636c61696d5f7061796f75745f6f746865720401146f74686572000130543a3a4163636f756e7449640010100101606f726967696e602063616e20636c61696d207061796f757473206f6e20736f6d6520706f6f6c206d656d62657220606f7468657260277320626568616c662e005501506f6f6c206d656d62657220606f7468657260206d7573742068617665206120605065726d697373696f6e6c657373576974686472617760206f7220605065726d697373696f6e6c657373416c6c6020636c61696da87065726d697373696f6e20666f7220746869732063616c6c20746f206265207375636365737366756c2e387365745f636f6d6d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001386e65775f636f6d6d697373696f6e8906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e001114745365742074686520636f6d6d697373696f6e206f66206120706f6f6c2e5501426f7468206120636f6d6d697373696f6e2070657263656e7461676520616e64206120636f6d6d697373696f6e207061796565206d7573742062652070726f766964656420696e20746865206063757272656e74605d017475706c652e2057686572652061206063757272656e7460206f6620604e6f6e65602069732070726f76696465642c20616e792063757272656e7420636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e004d012d204966206120604e6f6e656020697320737570706c69656420746f20606e65775f636f6d6d697373696f6e602c206578697374696e6720636f6d6d697373696f6e2077696c6c2062652072656d6f7665642e487365745f636f6d6d697373696f6e5f6d617808011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ec4011c50657262696c6c0012149453657420746865206d6178696d756d20636f6d6d697373696f6e206f66206120706f6f6c2e0039012d20496e697469616c206d61782063616e2062652073657420746f20616e79206050657262696c6c602c20616e64206f6e6c7920736d616c6c65722076616c75657320746865726561667465722e35012d2043757272656e7420636f6d6d697373696f6e2077696c6c206265206c6f776572656420696e20746865206576656e7420697420697320686967686572207468616e2061206e6577206d6178342020636f6d6d697373696f6e2e687365745f636f6d6d697373696f6e5f6368616e67655f7261746508011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174659106019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e001310a85365742074686520636f6d6d697373696f6e206368616e6765207261746520666f72206120706f6f6c2e003d01496e697469616c206368616e67652072617465206973206e6f7420626f756e6465642c20776865726561732073756273657175656e7420757064617465732063616e206f6e6c79206265206d6f7265747265737472696374697665207468616e207468652063757272656e742e40636c61696d5f636f6d6d697373696f6e04011c706f6f6c5f6964100118506f6f6c496400144064436c61696d2070656e64696e6720636f6d6d697373696f6e2e003d015468652060726f6f746020726f6c65206f662074686520706f6f6c206973205f616c776179735f20616c6c6f77656420746f20636c61696d2074686520706f6f6c277320636f6d6d697373696f6e2e00550149662074686520706f6f6c20686173207365742060436f6d6d697373696f6e436c61696d5065726d697373696f6e3a3a5065726d697373696f6e6c657373602c207468656e20616e79206163636f756e742063616ed874726967676572207468652070726f63657373206f6620636c61696d696e672074686520706f6f6c277320636f6d6d697373696f6e2e00410149662074686520706f6f6c2068617320736574206974732060436f6d6d697373696f6e436c61696d5065726d697373696f6e6020746f20604163636f756e742861636329602c207468656e206f6e6c79206163636f756e7473302a2060616363602c20616e64642a2074686520706f6f6c277320726f6f74206163636f756e7400b86d61792063616c6c20746869732065787472696e736963206f6e20626568616c66206f662074686520706f6f6c2e002d0150656e64696e6720636f6d6d697373696f6e73206172652070616964206f757420616e6420616464656420746f2074686520746f74616c20636c61696d656420636f6d6d697373696f6e2eb854686520746f74616c2070656e64696e6720636f6d6d697373696f6e20697320726573657420746f207a65726f2e4c61646a7573745f706f6f6c5f6465706f73697404011c706f6f6c5f6964100118506f6f6c496400151cec546f70207570207468652064656669636974206f7220776974686472617720746865206578636573732045442066726f6d2074686520706f6f6c2e0051015768656e206120706f6f6c20697320637265617465642c2074686520706f6f6c206465706f7369746f72207472616e736665727320454420746f2074686520726577617264206163636f756e74206f66207468655501706f6f6c2e204544206973207375626a65637420746f206368616e676520616e64206f7665722074696d652c20746865206465706f73697420696e2074686520726577617264206163636f756e74206d61792062655101696e73756666696369656e7420746f20636f766572207468652045442064656669636974206f662074686520706f6f6c206f7220766963652d76657273612077686572652074686572652069732065786365737331016465706f73697420746f2074686520706f6f6c2e20546869732063616c6c20616c6c6f777320616e796f6e6520746f2061646a75737420746865204544206465706f736974206f6620746865f4706f6f6c2062792065697468657220746f7070696e67207570207468652064656669636974206f7220636c61696d696e6720746865206578636573732e7c7365745f636f6d6d697373696f6e5f636c61696d5f7065726d697373696f6e08011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e950601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e001610cc536574206f722072656d6f7665206120706f6f6c277320636f6d6d697373696f6e20636c61696d207065726d697373696f6e2e00610144657465726d696e65732077686f2063616e20636c61696d2074686520706f6f6c27732070656e64696e6720636f6d6d697373696f6e2e204f6e6c79207468652060526f6f746020726f6c65206f662074686520706f6f6cc869732061626c6520746f20636f6e66696775726520636f6d6d697373696f6e20636c61696d207065726d697373696f6e732e2c6170706c795f736c6173680401386d656d6265725f6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e001724884170706c7920612070656e64696e6720736c617368206f6e2061206d656d6265722e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e005d015468652070656e64696e6720736c61736820616d6f756e74206f6620746865206d656d626572206d75737420626520657175616c206f72206d6f7265207468616e20604578697374656e7469616c4465706f736974602e5101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792028692e652e20627920616e79206163636f756e74292e2049662074686520657865637574696f6e49016973207375636365737366756c2c2066656520697320726566756e64656420616e642063616c6c6572206d6179206265207265776172646564207769746820612070617274206f662074686520736c6173680d016261736564206f6e20746865205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d20636f6e66696775726174696f6e2e486d6967726174655f64656c65676174696f6e0401386d656d6265725f6163636f756e74950201504163636f756e7449644c6f6f6b75704f663c543e0018241d014d696772617465732064656c6567617465642066756e64732066726f6d2074686520706f6f6c206163636f756e7420746f2074686520606d656d6265725f6163636f756e74602e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e002901546869732069732061207065726d697373696f6e2d6c6573732063616c6c20616e6420726566756e647320616e792066656520696620636c61696d206973207375636365737366756c2e005d0149662074686520706f6f6c20686173206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746865207374616b656420746f6b656e73206f6620706f6f6c206d656d62657273290163616e206265206d6f76656420616e642068656c6420696e207468656972206f776e206163636f756e742e20536565205b60616461707465723a3a44656c65676174655374616b65605d786d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b6504011c706f6f6c5f6964100118506f6f6c4964001924f44d69677261746520706f6f6c2066726f6d205b60616461707465723a3a5374616b655374726174656779547970653a3a5472616e73666572605d20746fa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e0025014661696c7320756e6c657373205b6063726174653a3a70616c6c65743a3a436f6e6669673a3a5374616b6541646170746572605d206973206f6620737472617465677920747970653aa45b60616461707465723a3a5374616b655374726174656779547970653a3a44656c6567617465605d2e004101546869732063616c6c2063616e2062652064697370617463686564207065726d697373696f6e6c6573736c792c20616e6420726566756e647320616e7920666565206966207375636365737366756c2e00490149662074686520706f6f6c2068617320616c7265616479206d6967726174656420746f2064656c65676174696f6e206261736564207374616b696e672c20746869732063616c6c2077696c6c206661696c2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e6d06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324426f6e644578747261041c42616c616e6365011801082c4672656542616c616e6365040018011c42616c616e63650000001c52657761726473000100007106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c537461746500010c104f70656e0000001c426c6f636b65640001002844657374726f79696e67000200007506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200007906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007d06085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f7004045401c4010c104e6f6f700000000c5365740400c40104540001001852656d6f7665000200008106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320436f6e6669674f700404540100010c104e6f6f700000000c5365740400000104540001001852656d6f7665000200008506085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c436c61696d5065726d697373696f6e000110305065726d697373696f6e6564000000585065726d697373696f6e6c657373436f6d706f756e64000100585065726d697373696f6e6c6573735769746864726177000200445065726d697373696f6e6c657373416c6c00030000890604184f7074696f6e040454018d060108104e6f6e6500000010536f6d6504008d0600000100008d0600000408c400009106085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7350436f6d6d697373696f6e4368616e676552617465042c426c6f636b4e756d6265720110000801306d61785f696e637265617365c4011c50657262696c6c0001246d696e5f64656c617910012c426c6f636b4e756d6265720000950604184f7074696f6e0404540199060108104e6f6e6500000010536f6d650400990600000100009906085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7364436f6d6d697373696f6e436c61696d5065726d697373696f6e04244163636f756e74496401000108385065726d697373696f6e6c6573730000001c4163636f756e7404000001244163636f756e744964000100009d060c4070616c6c65745f7265666572656e64611870616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696e5102015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e7421060188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636b9101013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368e503013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea1060c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c65741043616c6c08045400044900011c286164645f6d656d62657204010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0000185c496e74726f647563652061206e6577206d656d6265722e00902d20606f726967696e603a204d7573742062652074686520604164644f726967696e602ee82d206077686f603a204163636f756e74206f66206e6f6e2d6d656d6265722077686963682077696c6c206265636f6d652061206d656d6265722e00385765696768743a20604f283129603870726f6d6f74655f6d656d62657204010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e000118c0496e6372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e00a02d20606f726967696e603a204d75737420626520746865206050726f6d6f74654f726967696e602e902d206077686f603a204163636f756e74206f66206578697374696e67206d656d6265722e00385765696768743a20604f283129603464656d6f74655f6d656d62657204010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00021c5d0144656372656d656e74207468652072616e6b206f6620616e206578697374696e67206d656d626572206279206f6e652e20496620746865206d656d62657220697320616c72656164792061742072616e6b207a65726f2c7c7468656e2074686579206172652072656d6f76656420656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206044656d6f74654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2e0009015765696768743a20604f283129602c206c65737320696620746865206d656d626572277320696e646578206973206869676865737420696e206974732072616e6b2e3472656d6f76655f6d656d62657208010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e0001206d696e5f72616e6b9101011052616e6b00031c6c52656d6f766520746865206d656d62657220656e746972656c792e009c2d20606f726967696e603a204d75737420626520746865206052656d6f76654f726967696e602ef82d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f2ec02d20606d696e5f72616e6b603a205468652072616e6b206f6620746865206d656d626572206f7220677265617465722e00585765696768743a20604f286d696e5f72616e6b29602e10766f7465080110706f6c6c100144506f6c6c496e6465784f663c542c20493e00010c617965200110626f6f6c00042cf041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e00c42d20606f726967696e603a204d75737420626520605369676e6564602062792061206d656d626572206163636f756e742eac2d2060706f6c6c603a20496e646578206f66206120706f6c6c207768696368206973206f6e676f696e672e29012d2060617965603a206074727565602069662074686520766f746520697320746f20617070726f7665207468652070726f706f73616c2c206066616c736560206f74686572776973652e0045015472616e73616374696f6e2066656573206172652062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e0035015765696768743a20604f283129602c206c65737320696620746865726520776173206e6f2070726576696f757320766f7465206f6e2074686520706f6c6c20627920746865206d656d6265722e30636c65616e75705f706f6c6c080128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e00010c6d617810010c753332000528d452656d6f766520766f7465732066726f6d2074686520676976656e20706f6c6c2e204974206d757374206861766520656e6465642e00b02d20606f726967696e603a204d75737420626520605369676e65646020627920616e79206163636f756e742e49012d2060706f6c6c5f696e646578603a20496e646578206f66206120706f6c6c20776869636820697320636f6d706c6574656420616e6420666f7220776869636820766f74657320636f6e74696e756520746f20202065786973742efc2d20606d6178603a204d6178696d756d206e756d626572206f6620766f7465206974656d732066726f6d2072656d6f766520696e20746869732063616c6c2e00ec5472616e73616374696f6e2066656573206172652077616976656420696620746865206f7065726174696f6e206973207375636365737366756c2e00150157656967687420604f286d6178296020286c65737320696620746865726520617265206665776572206974656d7320746f2072656d6f7665207468616e20606d617860292e3c65786368616e67655f6d656d62657208010c77686f950201504163636f756e7449644c6f6f6b75704f663c543e00011c6e65775f77686f950201504163636f756e7449644c6f6f6b75704f663c543e000614050145786368616e6765732061206d656d62657220776974682061206e6577206163636f756e7420616e64207468652073616d65206578697374696e672072616e6b2e00a42d20606f726967696e603a204d75737420626520746865206045786368616e67654f726967696e602e39012d206077686f603a204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2062652065786368616e6765642e59012d20606e65775f77686f603a204e6577204163636f756e74206f66206578697374696e67206d656d626572206f662072616e6b2067726561746572207468616e207a65726f20746f2065786368616e67656420746f2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ea5060c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c65741043616c6c0404540001182c6372656174655f706f6f6c080118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e00001019014372656174657320616e20656d707479206c697175696469747920706f6f6c20616e6420616e206173736f636961746564206e657720606c705f746f6b656e60206173736574010128746865206964206f662077686963682069732072657475726e656420696e2074686520604576656e743a3a506f6f6c4372656174656460206576656e74292e0011014f6e6365206120706f6f6c20697320637265617465642c20736f6d656f6e65206d6179205b6050616c6c65743a3a6164645f6c6971756964697479605d20746f2069742e346164645f6c69717569646974791c0118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e00013c616d6f756e74315f64657369726564180128543a3a42616c616e636500013c616d6f756e74325f64657369726564180128543a3a42616c616e636500012c616d6f756e74315f6d696e180128543a3a42616c616e636500012c616d6f756e74325f6d696e180128543a3a42616c616e636500011c6d696e745f746f000130543a3a4163636f756e744964000138e450726f76696465206c697175696469747920696e746f2074686520706f6f6c206f6620606173736574316020616e642060617373657432602e0d014e4f54453a20616e206f7074696d616c20616d6f756e74206f662061737365743120616e64206173736574322077696c6c2062652063616c63756c6174656420616e6421016d6967687420626520646966666572656e74207468616e207468652070726f76696465642060616d6f756e74315f64657369726564602f60616d6f756e74325f6465736972656460fc7468757320796f752073686f756c642070726f7669646520746865206d696e20616d6f756e7420796f7527726520686170707920746f2070726f766964652ec8506172616d732060616d6f756e74315f6d696e602f60616d6f756e74325f6d696e6020726570726573656e7420746861742e4901606d696e745f746f602077696c6c2062652073656e7420746865206c697175696469747920746f6b656e73207468617420726570726573656e742074686973207368617265206f662074686520706f6f6c2e005d014e4f54453a207768656e20656e636f756e746572696e6720616e20696e636f72726563742065786368616e6765207261746520616e64206e6f6e2d776974686472617761626c6520706f6f6c206c69717569646974792cdc626174636820616e2061746f6d69632063616c6c2077697468205b6050616c6c65743a3a6164645f6c6971756964697479605d20616e6451015b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d206f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d250163616c6c7320746f2072656e64657220746865206c697175696469747920776974686472617761626c6520616e642072656374696679207468652065786368616e676520726174652e00d84f6e6365206c69717569646974792069732061646465642c20736f6d656f6e65206d6179207375636365737366756c6c792063616c6ca45b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e4072656d6f76655f6c6971756964697479180118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e0001346c705f746f6b656e5f6275726e180128543a3a42616c616e636500014c616d6f756e74315f6d696e5f72656365697665180128543a3a42616c616e636500014c616d6f756e74325f6d696e5f72656365697665180128543a3a42616c616e636500012c77697468647261775f746f000130543a3a4163636f756e74496400020c4d01416c6c6f777320796f7520746f2072656d6f7665206c69717569646974792062792070726f766964696e672074686520606c705f746f6b656e5f6275726e6020746f6b656e7320746861742077696c6c20626551016275726e656420696e207468652070726f636573732e205769746820746865207573616765206f662060616d6f756e74315f6d696e5f72656365697665602f60616d6f756e74325f6d696e5f726563656976656035016974277320706f737369626c6520746f20636f6e74726f6c20746865206d696e20616d6f756e74206f662072657475726e656420746f6b656e7320796f7527726520686170707920776974682e70737761705f65786163745f746f6b656e735f666f725f746f6b656e7314011070617468a90601585665633c426f783c543a3a41737365744b696e643e3e000124616d6f756e745f696e180128543a3a42616c616e6365000138616d6f756e745f6f75745f6d696e180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c000318c0537761702074686520657861637420616d6f756e74206f6620606173736574316020696e746f2060617373657432602e2d0160616d6f756e745f6f75745f6d696e6020706172616d20616c6c6f777320796f7520746f207370656369667920746865206d696e20616d6f756e74206f662074686520606173736574326060796f7527726520686170707920746f20726563656976652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e70737761705f746f6b656e735f666f725f65786163745f746f6b656e7314011070617468a90601585665633c426f783c543a3a41737365744b696e643e3e000128616d6f756e745f6f7574180128543a3a42616c616e6365000134616d6f756e745f696e5f6d6178180128543a3a42616c616e636500011c73656e645f746f000130543a3a4163636f756e7449640001286b6565705f616c697665200110626f6f6c00041801015377617020616e7920616d6f756e74206f6620606173736574316020746f206765742074686520657861637420616d6f756e74206f662060617373657432602e190160616d6f756e745f696e5f6d61786020706172616d20616c6c6f777320746f207370656369667920746865206d617820616d6f756e74206f662074686520606173736574316060796f7527726520686170707920746f2070726f766964652e0059015b604173736574436f6e76657273696f6e4170693a3a71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e73605d2072756e74696d652063616c6c2063616e2062652063616c6c656430666f7220612071756f74652e14746f756368080118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e00052c4d01546f75636820616e206578697374696e6720706f6f6c20746f2066756c66696c6c2070726572657175697369746573206265666f72652070726f766964696e67206c69717569646974792c20737563682061734901656e737572696e6720746861742074686520706f6f6c2773206163636f756e74732061726520696e20706c6163652e204974206973207479706963616c6c792075736566756c207768656e206120706f6f6c550163726561746f722072656d6f7665732074686520706f6f6c2773206163636f756e747320616e6420646f6573206e6f742070726f766964652061206c69717569646974792e205468697320616374696f6e206d61795501696e766f6c766520686f6c64696e67206173736574732066726f6d207468652063616c6c65722061732061206465706f73697420666f72206372656174696e672074686520706f6f6c2773206163636f756e74732e0068546865206f726967696e206d757374206265205369676e65642e0029012d2060617373657431603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e29012d2060617373657432603a20546865206173736574204944206f6620616e206578697374696e6720706f6f6c20776974682061207061697220286173736574312c20617373657432292e0098456d6974732060546f756368656460206576656e74207768656e207375636365737366756c2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732ea906000002a000ad060c4c70616c6c65745f666173745f756e7374616b651870616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66590163616c6c696e67205b6050616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c7920626520666f6c6c6f776564b0627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e64657800023494436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb1060c5070616c6c65745f6d6573736167655f71756575651870616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e1001484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e1001484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb5060c746672616d655f62656e63686d61726b696e675f70616c6c65745f706f761870616c6c65741043616c6c04045400010828656d69745f6576656e74000000106e6f6f70000100040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eb9060c3c70616c6c65745f74785f70617573651870616c6c65741043616c6c04045400010814706175736504012466756c6c5f6e616d65bd06015052756e74696d6543616c6c4e616d654f663c543e00001034506175736520612063616c6c2e00b843616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a50617573654f726967696e605d2ec0456d69747320616e205b604576656e743a3a43616c6c506175736564605d206576656e74206f6e20737563636573732e1c756e70617573650401146964656e74bd06015052756e74696d6543616c6c4e616d654f663c543e00011040556e2d706175736520612063616c6c2e00c043616e206f6e6c792062652063616c6c6564206279205b60436f6e6669673a3a556e70617573654f726967696e605d2ec8456d69747320616e205b604576656e743a3a43616c6c556e706175736564605d206576656e74206f6e20737563636573732e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ebd0600000408d501d50100c1060c4070616c6c65745f736166655f6d6f64651870616c6c65741043616c6c04045400012014656e7465720000181901456e74657220736166652d6d6f6465207065726d697373696f6e6c6573736c7920666f72205b60436f6e6669673a3a456e7465724475726174696f6e605d20626c6f636b732e0009015265736572766573205b60436f6e6669673a3a456e7465724465706f736974416d6f756e74605d2066726f6d207468652063616c6c65722773206163636f756e742eb4456d69747320616e205b604576656e743a3a456e7465726564605d206576656e74206f6e20737563636573732e0d014572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320616c726561647920656e74657265642e15014572726f72732077697468205b604572726f723a3a4e6f74436f6e66696775726564605d20696620746865206465706f73697420616d6f756e7420697320604e6f6e65602e2c666f7263655f656e7465720001181901456e74657220736166652d6d6f646520627920666f72636520666f722061207065722d6f726967696e20636f6e66696775726564206e756d626572206f6620626c6f636b732e00b4456d69747320616e205b604576656e743a3a456e7465726564605d206576656e74206f6e20737563636573732e0d014572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320616c726561647920656e74657265642e00f843616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f726365456e7465724f726967696e605d206f726967696e2e18657874656e6400022c3101457874656e642074686520736166652d6d6f6465207065726d697373696f6e6c6573736c7920666f72205b60436f6e6669673a3a457874656e644475726174696f6e605d20626c6f636b732e00e85468697320616363756d756c61746573206f6e20746f70206f66207468652063757272656e742072656d61696e696e67206475726174696f6e2e0d015265736572766573205b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d2066726f6d207468652063616c6c65722773206163636f756e742eb8456d69747320616e205b604576656e743a3a457874656e646564605d206576656e74206f6e20737563636573732ee84572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320656e74657265642e15014572726f72732077697468205b604572726f723a3a4e6f74436f6e66696775726564605d20696620746865206465706f73697420616d6f756e7420697320604e6f6e65602e00450154686973206d61792062652063616c6c656420627920616e79207369676e6564206f726967696e2077697468205b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d2066726565350163757272656e637920746f20726573657276652e20546869732063616c6c2063616e2062652064697361626c656420666f7220616c6c206f726967696e7320627920636f6e6669677572696e67a85b60436f6e6669673a3a457874656e644465706f736974416d6f756e74605d20746f20604e6f6e65602e30666f7263655f657874656e640003182d01457874656e642074686520736166652d6d6f646520627920666f72636520666f722061207065722d6f726967696e20636f6e66696775726564206e756d626572206f6620626c6f636b732e00b8456d69747320616e205b604576656e743a3a457874656e646564605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320696e6163746976652e00fc43616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f726365457874656e644f726967696e605d206f726967696e2e28666f7263655f65786974000424604578697420736166652d6d6f646520627920666f7263652e001d01456d69747320616e205b604576656e743a3a457869746564605d2077697468205b6045786974526561736f6e3a3a466f726365605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a457869746564605d2069662074686520736166652d6d6f646520697320696e6163746976652e0055014e6f74653a2060736166652d6d6f6465602077696c6c206265206175746f6d61746963616c6c79206465616374697661746564206279205b6050616c6c65743a3a6f6e5f696e697469616c697a65605d20686f6f6b250161667465722074686520626c6f636b206865696768742069732067726561746572207468616e20746865205b60456e7465726564556e74696c605d2073746f72616765206974656d2e5501456d69747320616e205b604576656e743a3a457869746564605d2077697468205b6045786974526561736f6e3a3a54696d656f7574605d206576656e74207768656e20646561637469766174656420696e2074686514686f6f6b2e4c666f7263655f736c6173685f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e0005243101536c6173682061206465706f73697420666f7220616e206163636f756e74207468617420656e7465726564206f7220657874656e64656420736166652d6d6f6465206174206120676976656e44686973746f726963616c20626c6f636b2e00cc546869732063616e206f6e6c792062652063616c6c6564207768696c6520736166652d6d6f646520697320656e74657265642e00cc456d6974732061205b604576656e743a3a4465706f736974536c6173686564605d206576656e74206f6e20737563636573732edc4572726f72732077697468205b604572726f723a3a456e7465726564605d20696620736166652d6d6f646520697320656e74657265642e00010143616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f7263654465706f7369744f726967696e605d206f726967696e2e3c72656c656173655f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e00063035015065726d697373696f6e6c6573736c792072656c656173652061206465706f73697420666f7220616e206163636f756e74207468617420656e746572656420736166652d6d6f646520617420615c676976656e20686973746f726963616c20626c6f636b2e0049015468652063616c6c2063616e20626520636f6d706c6574656c792064697361626c65642062792073657474696e67205b60436f6e6669673a3a52656c6561736544656c6179605d20746f20604e6f6e65602ef8546869732063616e6e6f742062652063616c6c6564207768696c6520736166652d6d6f646520697320656e746572656420616e64206e6f7420756e74696c21015b60436f6e6669673a3a52656c6561736544656c6179605d20626c6f636b732068617665207061737365642073696e636520736166652d6d6f64652077617320656e74657265642e00d0456d6974732061205b604576656e743a3a4465706f73697452656c6561736564605d206576656e74206f6e20737563636573732eec4572726f72732077697468205b604572726f723a3a456e7465726564605d2069662074686520736166652d6d6f646520697320656e74657265642e49014572726f72732077697468205b604572726f723a3a43616e6e6f7452656c65617365596574605d206966205b60436f6e6669673a3a52656c6561736544656c6179605d20626c6f636b2068617665206e6f7461017061737365642073696e636520736166652d6d6f64652077617320656e74657265642e204572726f72732077697468205b604572726f723a3a4e6f4465706f736974605d2069662074686520706179656520686173206e6fa472657365727665642063757272656e63792061742074686520626c6f636b207370656369666965642e54666f7263655f72656c656173655f6465706f73697408011c6163636f756e74000130543a3a4163636f756e744964000114626c6f636b100144426c6f636b4e756d626572466f723c543e00072c2d01466f72636520746f2072656c656173652061206465706f73697420666f7220616e206163636f756e74207468617420656e746572656420736166652d6d6f6465206174206120676976656e44686973746f726963616c20626c6f636b2e00d0546869732063616e2062652063616c6c6564207768696c6520736166652d6d6f6465206973207374696c6c20656e74657265642e00d0456d6974732061205b604576656e743a3a4465706f73697452656c6561736564605d206576656e74206f6e20737563636573732edc4572726f72732077697468205b604572726f723a3a456e7465726564605d20696620736166652d6d6f646520697320656e74657265642e35014572726f72732077697468205b604572726f723a3a4e6f4465706f736974605d2069662074686520706179656520686173206e6f2072657365727665642063757272656e6379206174207468654073706563696669656420626c6f636b2e00010143616e206f6e6c792062652063616c6c656420627920746865205b60436f6e6669673a3a466f7263654465706f7369744f726967696e605d206f726967696e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec5060c4470616c6c65745f6d6967726174696f6e731870616c6c65741043616c6c04045400011040666f7263655f7365745f637572736f72040118637572736f72c906014c4f7074696f6e3c437572736f724f663c543e3e0000145d01416c6c6f777320726f6f7420746f20736574206120637572736f7220746f20666f72636566756c6c792073746172742c2073746f70206f7220666f727761726420746865206d6967726174696f6e2070726f636573732e00490153686f756c64206e6f726d616c6c79206e6f74206265206e656564656420616e64206973206f6e6c7920696e20706c61636520617320656d657267656e6379206d6561737572652e204e6f74652074686174050172657374617274696e6720746865206d6967726174696f6e2070726f6365737320696e2074686973206d616e6e65722077696c6c206e6f742063616c6c207468652d015b604d6967726174696f6e53746174757348616e646c65723a3a73746172746564605d20686f6f6b206f7220656d697420616e2060557067726164655374617274656460206576656e742e5c666f7263655f7365745f6163746976655f637572736f720c0114696e64657810010c753332000130696e6e65725f637572736f72d90601584f7074696f6e3c526177437572736f724f663c543e3e000128737461727465645f6174c801644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0001185901416c6c6f777320726f6f7420746f2073657420616e2061637469766520637572736f7220746f20666f72636566756c6c792073746172742f666f727761726420746865206d6967726174696f6e2070726f636573732e0045015468697320697320616e20656467652d636173652076657273696f6e206f66205b6053656c663a3a666f7263655f7365745f637572736f72605d207468617420616c6c6f777320746f2073657420746865610160737461727465645f6174602076616c756520746f20746865206e65787420626c6f636b206e756d6265722e204f7468657277697365207468697320776f756c64206e6f7420626520706f737369626c652c2073696e6365450160666f7263655f7365745f637572736f72602074616b657320616e206162736f6c75746520626c6f636b206e756d6265722e2053657474696e672060737461727465645f61746020746f20604e6f6e65600101696e646963617465732074686174207468652063757272656e7420626c6f636b206e756d62657220706c7573206f6e652073686f756c6420626520757365642e48666f7263655f6f6e626f6172645f6d626d73000210a0466f7263657320746865206f6e626f617264696e67206f6620746865206d6967726174696f6e732e005d01546869732070726f636573732068617070656e73206175746f6d61746963616c6c79206f6e20612072756e74696d6520757067726164652e20497420697320696e20706c61636520617320616e20656d657267656e6379fc6d6561737572656d656e742e2054686520637572736f72206e6565647320746f20626520604e6f6e656020666f72207468697320746f20737563636565642e38636c6561725f686973746f72696304012073656c6563746f72dd0601a0486973746f726963436c65616e757053656c6563746f723c4964656e7469666965724f663c543e3e00031468436c65617273207468652060486973746f72696360207365742e000d01606d61705f637572736f7260206d7573742062652073657420746f20746865206c6173742076616c75652074686174207761732072657475726e6564206279207468655d0160486973746f726963436c656172656460206576656e742e205468652066697273742074696d6520604e6f6e65602063616e20626520757365642e20606c696d697460206d7573742062652063686f73656e20696e2061a877617920746861742077696c6c20726573756c7420696e20612073656e7369626c65207765696768742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732ec90604184f7074696f6e04045401cd060108104e6f6e6500000010536f6d650400cd060000010000cd06084470616c6c65745f6d6967726174696f6e733c4d6967726174696f6e437572736f720818437572736f7201d1062c426c6f636b4e756d62657201100108184163746976650400d5060184416374697665437572736f723c437572736f722c20426c6f636b4e756d6265723e00000014537475636b00010000d1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d506084470616c6c65745f6d6967726174696f6e7330416374697665437572736f720818437572736f7201d1062c426c6f636b4e756d6265720110000c0114696e64657810010c753332000130696e6e65725f637572736f72d90601384f7074696f6e3c437572736f723e000128737461727465645f617410012c426c6f636b4e756d6265720000d90604184f7074696f6e04045401d1060108104e6f6e6500000010536f6d650400d1060000010000dd06084470616c6c65745f6d6967726174696f6e735c486973746f726963436c65616e757053656c6563746f720408496401d50101082053706563696669630400e106011c5665633c49643e0000002057696c64636172640801146c696d6974c8012c4f7074696f6e3c7533323e00013c70726576696f75735f637572736f72e506013c4f7074696f6e3c5665633c75383e3e00010000e106000002d50100e50604184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000e9060c3470616c6c65745f62726f6b65721870616c6c65741043616c6c04045400016c24636f6e666967757265040118636f6e666967ed060144436f6e6669675265636f72644f663c543e00001054436f6e666967757265207468652070616c6c65742e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602eb82d2060636f6e666967603a2054686520636f6e66696775726174696f6e20666f7220746869732070616c6c65742e1c72657365727665040120776f726b6c6f6164f10601205363686564756c6500011c7852657365727665206120636f726520666f72206120776f726b6c6f61642e00490154686520776f726b6c6f61642077696c6c20626520676976656e2061207265736572766174696f6e2c206275742074776f2073616c6520706572696f6420626f756e646172696573206d7573742070617373946265666f72652074686520636f72652069732061637475616c6c792061737369676e65642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e21012d2060776f726b6c6f6164603a2054686520776f726b6c6f61642077686963682073686f756c64206265207065726d616e656e746c7920706c61636564206f6e206120636f72652e24756e726573657276650401286974656d5f696e64657810010c75333200021c9043616e63656c2061207265736572766174696f6e20666f72206120776f726b6c6f61642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e61012d20606974656d5f696e646578603a2054686520696e646578206f6620746865207265736572766174696f6e2e20557375616c6c7920746869732077696c6c20616c736f2062652074686520696e646578206f66207468654d012020636f7265206f6e20776869636820746865207265736572766174696f6e20686173206265656e207363686564756c65642e20486f77657665722c20697420697320706f737369626c652074686174206966490120206f7468657220636f72657320617265207265736572766564206f7220756e726573657276656420696e207468652073616d652073616c6520726f746174696f6e2074686174207468657920776f6e277461012020636f72726573706f6e642c20736f20697427732062657474657220746f206c6f6f6b2075702074686520636f72652070726f7065726c7920696e2074686520605265736572766174696f6e73602073746f726167652e247365745f6c656173650801107461736b1001185461736b4964000114756e74696c10012454696d65736c696365000324fc52657365727665206120636f726520666f7220612073696e676c65207461736b20776f726b6c6f616420666f722061206c696d6974656420706572696f642e005d01496e2074686520696e7465726c75646520616e642073616c6520706572696f642077686572652042756c6b20436f726574696d6520697320736f6c6420666f722074686520706572696f6420696d6d6564696174656c79d461667465722060756e74696c602c207468656e207468652073616d6520776f726b6c6f6164206d61792062652072656e657765642e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602ee02d20607461736b603a2054686520776f726b6c6f61642077686963682073686f756c6420626520706c61636564206f6e206120636f72652e61012d2060756e74696c603a205468652074696d65736c696365206e6f77206561726c696572207468616e20776869636820607461736b602073686f756c6420626520706c61636564206173206120776f726b6c6f6164206f6e2420206120636f72652e2c73746172745f73616c6573080124656e645f707269636518013042616c616e63654f663c543e00012c65787472615f636f72657391010124436f7265496e6465780004249c426567696e207468652042756c6b20436f726574696d652073616c657320726f746174696f6e2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e51012d2060656e645f7072696365603a2054686520707269636520616674657220746865206c656164696e20706572696f64206f662042756c6b20436f726574696d6520696e207468652066697273742073616c652e4d012d206065787472615f636f726573603a204e756d626572206f6620657874726120636f72657320746861742073686f756c6420626520726571756573746564206f6e20746f70206f662074686520636f726573ac2020726571756972656420666f7220605265736572766174696f6e736020616e6420604c6561736573602e005d01546869732077696c6c2063616c6c205b6053656c663a3a726571756573745f636f72655f636f756e74605d20696e7465726e616c6c7920746f207365742074686520636f727265637420636f726520636f756e74206f6e407468652072656c617920636861696e2e20707572636861736504012c70726963655f6c696d697418013042616c616e63654f663c543e000514ac50757263686173652042756c6b20436f726574696d6520696e20746865206f6e676f696e672053616c652e005d012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2077697468206174206c6561737420656e6f7567682066756e647320746f20706179207468652063757272656e742070726963654c20206f662042756c6b20436f726574696d652ef42d206070726963655f6c696d6974603a20416e20616d6f756e74206e6f206d6f7265207468616e2077686963682073686f756c6420626520706169642e1472656e6577040110636f726591010124436f7265496e646578000614190152656e65772042756c6b20436f726574696d6520696e20746865206f6e676f696e672053616c65206f7220697473207072696f7220496e7465726c75646520506572696f642e005d012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2077697468206174206c6561737420656e6f7567682066756e647320746f20706179207468652072656e6577616c2070726963653820206f662074686520636f72652eac2d2060636f7265603a2054686520636f72652077686963682073686f756c642062652072656e657765642e207472616e73666572080124726567696f6e5f696405070120526567696f6e49640001246e65775f6f776e6572000130543a3a4163636f756e744964000714bc5472616e7366657220612042756c6b20436f726574696d6520526567696f6e20746f2061206e6577206f776e65722e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602ee02d2060726567696f6e5f6964603a2054686520526567696f6e2077686f7365206f776e6572736869702073686f756c64206368616e67652eb02d20606e65775f6f776e6572603a20546865206e6577206f776e657220666f722074686520526567696f6e2e24706172746974696f6e080124726567696f6e5f696405070120526567696f6e49640001147069766f7410012454696d65736c6963650008185d0153706c697420612042756c6b20436f726574696d6520526567696f6e20696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e73206174206120706172746963756c61722074696d6520696e746f2c74686520726567696f6e2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602e5d012d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c6420626520706172746974696f6e656420696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e732e25012d20607069766f74603a20546865206f666673657420696e2074696d6520696e746f2074686520526567696f6e20617420776869636820746f206d616b65207468652073706c69742e24696e7465726c616365080124726567696f6e5f696405070120526567696f6e49640001147069766f74f9060120436f72654d61736b0009204d0153706c697420612042756c6b20436f726574696d6520526567696f6e20696e746f2074776f2077686f6c6c792d6f7665726c617070696e6720526567696f6e73207769746820636f6d706c656d656e746172793101696e7465726c616365206d61736b7320776869636820746f676574686572206d616b6520757020746865206f726967696e616c20526567696f6e277320696e7465726c616365206d61736b2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602e49012d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c64206265636f6d652074776f20696e7465726c6163656420526567696f6e73206f6620696e636f6d706c657465342020726567756c61726974792e55012d20607069766f74603a2054686520696e7465726c616365206d61736b206f66206f6e65206f66207468652074776f206e657720726567696f6e732028746865206f7468657220697320697473207061727469616c382020636f6d706c656d656e74292e1861737369676e0c0124726567696f6e5f696405070120526567696f6e49640001107461736b1001185461736b496400012066696e616c6974790907012046696e616c697479000a20a041737369676e20612042756c6b20436f726574696d6520526567696f6e20746f2061207461736b2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602efc2d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c642062652061737369676e656420746f20746865207461736b2e742d20607461736b603a20546865207461736b20746f2061737369676e2e55012d206066696e616c697479603a20496e6469636174696f6e206f66207768657468657220746869732061737369676e6d656e742069732066696e616c2028696e2077686963682063617365206974206d617920626549012020656c696769626c6520666f722072656e6577616c29206f722070726f766973696f6e616c2028696e2077686963682063617365206974206d6179206265206d616e6970756c6174656420616e642f6f7274726561737369676e65642061742061206c61746572207374616765292e10706f6f6c0c0124726567696f6e5f696405070120526567696f6e49640001147061796565000130543a3a4163636f756e74496400012066696e616c6974790907012046696e616c697479000b180901506c61636520612042756c6b20436f726574696d6520526567696f6e20696e746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0055012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e206f6620746865206163636f756e74207768696368206f776e732074686520526567696f6e2060726567696f6e5f6964602efc2d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682073686f756c642062652061737369676e656420746f2074686520506f6f6c2e55012d20607061796565603a20546865206163636f756e742077686963682069732061626c6520746f20636f6c6c65637420616e7920726576656e75652064756520666f7220746865207573616765206f6620746869732c2020436f726574696d652e34636c61696d5f726576656e7565080124726567696f6e5f696405070120526567696f6e49640001386d61785f74696d65736c6963657310012454696d65736c696365000c202501436c61696d2074686520726576656e7565206f7765642066726f6d20696e636c7573696f6e20696e2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e00902d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2ee42d2060726567696f6e5f6964603a2054686520526567696f6e207768696368207761732061737369676e656420746f2074686520506f6f6c2e51012d20606d61785f74696d65736c69636573603a20546865206d6178696d756d206e756d626572206f662074696d65736c696365732077686963682073686f756c642062652070726f6365737365642e2054686973590120206d7573742062652067726561746572207468616e20302e2054686973206d6179206166666563742074686520776569676874206f66207468652063616c6c206275742073686f756c6420626520696465616c6c79590120206d616465206571756976616c656e7420746f20746865206c656e677468206f662074686520526567696f6e2060726567696f6e5f6964602e204966206c6573732c206675727468657220646973706174636865734101202077696c6c2062652072657175697265642077697468207468652073616d652060726567696f6e5f69646020746f20636c61696d20726576656e756520666f72207468652072656d61696e6465722e3c70757263686173655f637265646974080118616d6f756e7418013042616c616e63654f663c543e00012c62656e656669636961727900014c52656c61794163636f756e7449644f663c543e000d18ec50757263686173652063726564697420666f722075736520696e2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0009012d20606f726967696e603a204d7573742062652061205369676e6564206f726967696e2061626c6520746f20706179206174206c656173742060616d6f756e74602eb42d2060616d6f756e74603a2054686520616d6f756e74206f662063726564697420746f2070757263686173652e51012d206062656e6566696369617279603a20546865206163636f756e74206f6e207468652052656c61792d636861696e20776869636820636f6e74726f6c732074686520637265646974202867656e6572616c6c79a82020746869732077696c6c2062652074686520636f6c6c61746f72277320686f742077616c6c6574292e2c64726f705f726567696f6e040124726567696f6e5f696405070120526567696f6e4964000e109844726f7020616e206578706972656420526567696f6e2066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2eb02d2060726567696f6e5f6964603a2054686520526567696f6e2077686963682068617320657870697265642e4464726f705f636f6e747269627574696f6e040124726567696f6e5f696405070120526567696f6e4964000f10190144726f7020616e206578706972656420496e7374616e74616e656f757320506f6f6c20436f6e747269627574696f6e207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e39012d2060726567696f6e5f6964603a2054686520526567696f6e206964656e74696679696e672074686520506f6f6c20436f6e747269627574696f6e2077686963682068617320657870697265642e3064726f705f686973746f72790401107768656e10012454696d65736c696365001010050144726f7020616e206578706972656420496e7374616e74616e656f757320506f6f6c20486973746f7279207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e15012d2060726567696f6e5f6964603a205468652074696d65206f662074686520506f6f6c20486973746f7279207265636f72642077686963682068617320657870697265642e3064726f705f72656e6577616c080110636f726591010124436f7265496e6465780001107768656e10012454696d65736c696365001114d844726f7020616e206578706972656420416c6c6f7765642052656e6577616c207265636f72642066726f6d2074686520636861696e2e00982d20606f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2edc2d2060636f7265603a2054686520636f726520746f2077686963682074686520657870697265642072656e6577616c207265666572732e4d012d20607768656e603a205468652074696d65736c69636520746f2077686963682074686520657870697265642072656e6577616c207265666572732e2054686973206d7573742068617665207061737365642e48726571756573745f636f72655f636f756e74040128636f72655f636f756e7491010124436f7265496e6465780012101901526571756573742061206368616e676520746f20746865206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e6720776f726b2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e05012d2060636f72655f636f756e74603a205468652064657369726564206e756d626572206f6620636f72657320746f206265206d61646520617661696c61626c652e446e6f746966795f636f72655f636f756e74040128636f72655f636f756e7491010124436f7265496e646578001300386e6f746966795f726576656e756504011c726576656e75650d0701684f6e44656d616e64526576656e75655265636f72644f663c543e00140044656e61626c655f6175746f5f72656e65770c0110636f726591010124436f7265496e6465780001107461736b1001185461736b4964000144776f726b6c6f61645f656e645f68696e74c801444f7074696f6e3c54696d65736c6963653e00152c9045787472696e73696320666f7220656e61626c696e67206175746f2072656e6577616c2e00450143616c6c61626c652062792074686520736f7665726569676e206163636f756e74206f6620746865207461736b206f6e207468652073706563696669656420636f72652e2054686973206163636f756e74250177696c6c206265206368617267656420617420746865207374617274206f662065766572792062756c6b20706572696f6420666f722072656e6577696e6720636f72652074696d652e00d42d20606f726967696e603a204d7573742062652074686520736f7665726569676e206163636f756e74206f6620746865207461736b25012d2060636f7265603a2054686520636f726520746f20776869636820746865207461736b20746f2062652072656e657765642069732063757272656e746c792061737369676e65642ef02d20607461736b603a20546865207461736b20666f722077686963682077652077616e7420746f20656e61626c65206175746f2072656e6577616c2e5d012d2060776f726b6c6f61645f656e645f68696e74603a2073686f756c642062652075736564207768656e20656e61626c696e67206175746f2d72656e6577616c20666f72206120636f72652074686174206973206e6f745d0120206578706972696e6720696e20746865207570636f6d696e672062756c6b20706572696f642028652e672e2c2064756520746f20686f6c64696e672061206c65617365292073696e636520697420776f756c6420626531012020696e656666696369656e7420746f206c6f6f6b207570207768656e2074686520636f7265206578706972657320746f207363686564756c6520746865206e6578742072656e6577616c2e4864697361626c655f6175746f5f72656e6577080110636f726591010124436f7265496e6465780001107461736b1001185461736b496400161c9445787472696e73696320666f722064697361626c696e67206175746f2072656e6577616c2e00110143616c6c61626c652062792074686520736f7665726569676e206163636f756e74206f6620746865207461736b206f6e207468652073706563696669656420636f72652e00d82d20606f726967696e603a204d7573742062652074686520736f7665726569676e206163636f756e74206f6620746865207461736b2ef42d2060636f7265603a2054686520636f726520666f722077686963682077652077616e7420746f2064697361626c65206175746f2072656e6577616c2ef42d20607461736b603a20546865207461736b20666f722077686963682077652077616e7420746f2064697361626c65206175746f2072656e6577616c2e34666f7263655f72657365727665080120776f726b6c6f6164f10601205363686564756c65000110636f726591010124436f7265496e646578001730a852657365727665206120636f726520666f72206120776f726b6c6f616420696d6d6564696174656c792e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602e41012d2060776f726b6c6f6164603a2054686520776f726b6c6f61642077686963682073686f756c64206265207065726d616e656e746c7920706c61636564206f6e206120636f7265207374617274696e67382020696d6d6564696174656c792e55012d2060636f7265603a2054686520636f726520746f207768696368207468652061737369676e6d656e742073686f756c64206265206d61646520756e74696c20746865207265736572766174696f6e2074616b6573510120206566666563742e204974206973206c65667420746f207468652063616c6c657220746f20656974686572206164642074686973206e657720636f7265206f7220726561737369676e20616e79206f746865727820207461736b7320746f2074686973206578697374696e6720636f72652e005d01546869732072657365727665732074686520776f726b6c6f616420616e64207468656e20696e6a656374732074686520776f726b6c6f616420696e746f2074686520576f726b706c616e20666f7220746865206e657874610174776f2073616c6520706572696f64732e2054686973206f76657277726974657320616e79206578697374696e672061737369676e6d656e747320666f72207468697320636f726520617420746865207374617274206f6654746865206e6578742073616c6520706572696f642e3072656d6f76655f6c656173650401107461736b1001185461736b49640018103c52656d6f76652061206c656173652e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602eec2d20607461736b603a20546865207461736b206964206f6620746865206c656173652077686963682073686f756c642062652072656d6f7665642e4472656d6f76655f61737369676e6d656e74040124726567696f6e5f696405070120526567696f6e4964001a109c52656d6f766520616e2061737369676e6d656e742066726f6d2074686520576f726b706c616e2e00bc2d20606f726967696e603a204d75737420626520526f6f74206f722070617373206041646d696e4f726967696e602ee82d2060726567696f6e5f6964603a2054686520526567696f6e20746f2062652072656d6f7665642066726f6d2074686520776f726b706c616e2e2c737761705f6c656173657308010869641001185461736b49640001146f746865721001185461736b4964006300040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732eed060c3470616c6c65745f62726f6b657214747970657330436f6e6669675265636f7264044052656c6179426c6f636b4e756d626572011000200138616476616e63655f6e6f7469636510014052656c6179426c6f636b4e756d626572000140696e7465726c7564655f6c656e67746810014052656c6179426c6f636b4e756d6265720001346c656164696e5f6c656e67746810014052656c6179426c6f636b4e756d626572000134726567696f6e5f6c656e67746810012454696d65736c696365000154696465616c5f62756c6b5f70726f706f7274696f6ec4011c50657262696c6c00014c6c696d69745f636f7265735f6f666665726564110201444f7074696f6e3c436f7265496e6465783e00013072656e6577616c5f62756d70c4011c50657262696c6c000150636f6e747269627574696f6e5f74696d656f757410012454696d65736c6963650000f1060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f506045300000400010701185665633c543e0000f5060c3470616c6c65745f62726f6b6572147479706573305363686564756c654974656d00000801106d61736bf9060120436f72654d61736b00012861737369676e6d656e74fd060138436f726541737369676e6d656e740000f9060c3470616c6c65745f62726f6b657224636f72655f6d61736b20436f72654d61736b00000400850401205b75383b2031305d0000fd060c3470616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b4964000200000107000002f5060005070c3470616c6c65745f62726f6b657214747970657320526567696f6e496400000c0114626567696e10012454696d65736c696365000110636f726591010124436f7265496e6465780001106d61736bf9060120436f72654d61736b000009070c3470616c6c65745f62726f6b65721474797065732046696e616c6974790001082c50726f766973696f6e616c0000001446696e616c000100000d070c3470616c6c65745f62726f6b6572147479706573544f6e44656d616e64526576656e75655265636f7264084052656c6179426c6f636b4e756d62657201103052656c617942616c616e6365011800080114756e74696c10014052656c6179426c6f636b4e756d626572000118616d6f756e7418013052656c617942616c616e6365000011070c3470616c6c65745f6d69786e65741870616c6c65741043616c6c040454000104207265676973746572080130726567697374726174696f6e15070148526567697374726174696f6e466f723c543e0001247369676e617475726525070148417574686f726974795369676e6174757265000004b452656769737465722061206d69786e6f646520666f722074686520666f6c6c6f77696e672073657373696f6e2e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e1507083470616c6c65745f6d69786e657430526567697374726174696f6e082c426c6f636b4e756d626572011038426f756e6465644d69786e6f646501190700100130626c6f636b5f6e756d62657210012c426c6f636b4e756d62657200013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c617574686f726974795f696e646578100138417574686f72697479496e64657800011c6d69786e6f646519070138426f756e6465644d69786e6f646500001907083470616c6c65745f6d69786e657438426f756e6465644d69786e6f6465044445787465726e616c416464726573736573011d07000c01246b785f7075626c69630401204b785075626c696300011c706565725f696404011850656572496400014865787465726e616c5f6164647265737365731d07014445787465726e616c41646472657373657300001d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c501045300000400210701185665633c543e00002107000002c501002507102473705f6d69786e65741474797065730c617070245369676e61747572650000040015040148737232353531393a3a5369676e6174757265000029070c4470616c6c65745f706172616d65746572731870616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c75652d070150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e2d07084c6b69746368656e73696e6b5f72756e74696d654452756e74696d65506172616d65746572730001081c53746f7261676504003107018c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d6574657273000000245265666572656e646104003d07019464796e616d69635f706172616d733a3a7265666572656e64613a3a506172616d6574657273000100003107104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f7261676528506172616d65746572730001082c426173654465706f73697408003507012c426173654465706f7369740000b103013c4f7074696f6e3c42616c616e63653e0000002c427974654465706f73697408003907012c427974654465706f7369740000b103013c4f7074696f6e3c42616c616e63653e000100003507104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167652c426173654465706f736974000000003907104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167652c427974654465706f736974000000003d07104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e646128506172616d657465727300010818547261636b73080041070118547261636b7300004507015d014f7074696f6e3c426f756e6465645665633c70616c6c65745f7265666572656e64613a3a547261636b3c7531362c2042616c616e63652c20426c6f636b4e756d6265723e0a2c20436f6e73745533323c3130303e2c3e3e0000001c4f726967696e7308006507011c4f726967696e730000690701d84f7074696f6e3c426f756e6465645665633c284f726967696e43616c6c65722c20753136292c20436f6e73745533323c3130303e3e3e000100004107104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e646118547261636b7300000000450704184f7074696f6e0404540149070108104e6f6e6500000010536f6d6504004907000001000049070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d07045300000400610701185665633c543e00004d070c4070616c6c65745f7265666572656e646114747970657314547261636b0c0849640191011c42616c616e63650118184d6f6d656e740110000801086964910101084964000110696e666f51070174547261636b496e666f3c42616c616e63652c204d6f6d656e742c204e3e000051070c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501b904002401106e616d65b90401104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c55070114437572766500012c6d696e5f737570706f7274550701144375727665000055070c4070616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468c4011c50657262696c6c000114666c6f6f72c4011c50657262696c6c0001106365696cc4011c50657262696c6c000000445374657070656444656372656173696e67100114626567696ec4011c50657262696c6c00010c656e64c4011c50657262696c6c00011073746570c4011c50657262696c6c000118706572696f64c4011c50657262696c6c000100285265636970726f63616c0c0118666163746f72590701204669786564493634000120785f6f6666736574590701204669786564493634000120795f6f66667365745907012046697865644936340002000059070c3473705f61726974686d657469632c66697865645f706f696e74204669786564493634000004005d07010c69363400005d070000050c0061070000024d07006507104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e64611c4f726967696e7300000000690704184f7074696f6e040454016d070108104e6f6e6500000010536f6d6504006d0700000100006d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017107045300000400750701185665633c543e00007107000004085102910100750700000271070079070c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c65741043616c6c040454000104586d6967726174655f746f5f6e65775f6163636f756e74080118617373657431a00144426f783c543a3a41737365744b696e643e000118617373657432a00144426f783c543a3a41737365744b696e643e0000105d014d6967726174657320616e206578697374696e6720706f6f6c20746f2061206e6577206163636f756e742049442064657269766174696f6e206d6574686f6420666f72206120676976656e20617373657420706169722e3101496620746865206d6967726174696f6e206973207375636365737366756c2c207472616e73616374696f6e20666565732061726520726566756e64656420746f207468652063616c6c65722e003c4d757374206265207369676e65642e047050616c6c657427732063616c6c61626c652066756e6374696f6e732e7d070c3470616c6c65745f7265766976651870616c6c65741043616c6c040454000128306574685f7472616e7361637404011c7061796c6f616438011c5665633c75383e00003c2d0141207261772045564d207472616e73616374696f6e2c207479706963616c6c79206469737061746368656420627920616e20457468657265756d204a534f4e2d525043207365727665722e00302320506172616d657465727300ec2a20607061796c6f6164603a2054686520656e636f646564205b6063726174653a3a65766d3a3a5472616e73616374696f6e5369676e6564605d2e01012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f7263656420647572696e6720636f6e747261637420657865637574696f6e2e51012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d2062616c616e636520746861742063616e206265206368617267656420746f207468652063616c6c657220666f7240202073746f726167652075736167652e001823204e6f7465005101546869732063616c6c2063616e6e6f742062652064697370617463686564206469726563746c793b20617474656d7074696e6720746f20646f20736f2077696c6c20726573756c7420696e2061206661696c656451017472616e73616374696f6e2e204974207365727665732061732061207772617070657220666f7220616e20457468657265756d207472616e73616374696f6e2e205768656e207375626d69747465642c20746865590172756e74696d6520636f6e766572747320697420696e746f2061205b6073705f72756e74696d653a3a67656e657269633a3a436865636b656445787472696e736963605d206279207265636f766572696e6720746865987369676e657220616e642076616c69646174696e6720746865207472616e73616374696f6e2e1063616c6c14011064657374810701104831363000011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974a102013042616c616e63654f663c543e0001106461746138011c5665633c75383e00014005014d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e00302320506172616d657465727300a82a206064657374603a2041646472657373206f662074686520636f6e747261637420746f2063616c6c2efc2a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f206064657374602e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642066726f6d20746865a4202063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ec42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e74726163742e0025012a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265ac657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e15012a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e45012a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c11016120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e746961746518011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974a102013042616c616e63654f663c543e000124636f64655f6861736834013473705f636f72653a3a483235360001106461746138011c5665633c75383e00011073616c74790101404f7074696f6e3c5b75383b2033325d3e000214fc496e7374616e746961746573206120636f6e74726163742066726f6d20612070726576696f75736c79206465706c6f796564207761736d2062696e6172792e003501546869732066756e6374696f6e206973206964656e746963616c20746f205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2062757420776974686f7574207468654901636f6465206465706c6f796d656e7420737465702e20496e73746561642c207468652060636f64655f6861736860206f6620616e206f6e2d636861696e206465706c6f796564207761736d2062696e617279446d75737420626520737570706c6965642e54696e7374616e74696174655f776974685f636f646518011476616c7565a102013042616c616e63654f663c543e0001246761735f6c696d697428011857656967687400015473746f726167655f6465706f7369745f6c696d6974a102013042616c616e63654f663c543e000110636f646538011c5665633c75383e0001106461746138011c5665633c75383e00011073616c74790101404f7074696f6e3c5b75383b2033325d3e00036c3101496e7374616e7469617465732061206e657720636f6e74726163742066726f6d2074686520737570706c6965642060636f646560206f7074696f6e616c6c79207472616e7366657272696e6734736f6d652062616c616e63652e0021015468697320646973706174636861626c6520686173207468652073616d65206566666563742061732063616c6c696e67205b6053656c663a3a75706c6f61645f636f6465605d202b3d015b6053656c663a3a696e7374616e7469617465605d2e2042756e646c696e67207468656d20746f6765746865722070726f766964657320656666696369656e6379206761696e732e20506c65617365d8616c736f20636865636b2074686520646f63756d656e746174696f6e206f66205b6053656c663a3a75706c6f61645f636f6465605d2e00302320506172616d6574657273004d012a206076616c7565603a205468652062616c616e636520746f207472616e736665722066726f6d2074686520606f726967696e6020746f20746865206e65776c79206372656174656420636f6e74726163742e15012a20606761735f6c696d6974603a2054686520676173206c696d697420656e666f72636564207768656e20657865637574696e672074686520636f6e7374727563746f722e55012a206073746f726167655f6465706f7369745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662062616c616e636520746861742063616e20626520636861726765642f7265736572766564c8202066726f6d207468652063616c6c657220746f2070617920666f72207468652073746f7261676520636f6e73756d65642ecc2a2060636f6465603a2054686520636f6e747261637420636f646520746f206465706c6f7920696e207261772062797465732ef42a206064617461603a2054686520696e707574206461746120746f207061737320746f2074686520636f6e747261637420636f6e7374727563746f722e3d012a206073616c74603a205573656420666f722074686520616464726573732064657269766174696f6e2e2049662060536f6d656020697320737570706c696564207468656e20604352454154453260d40973656d616e746963732061726520757365642e20496620604e6f6e6560207468656e20604352415445316020697320757365642e000094496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a0039012d2054686520737570706c6965642060636f646560206973206465706c6f7965642c20616e6420612060636f64655f6861736860206973206372656174656420666f72207468617420636f64652e59012d204966207468652060636f64655f686173686020616c726561647920657869737473206f6e2074686520636861696e2074686520756e6465726c79696e672060636f6465602077696c6c206265207368617265642e49012d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e6465722c20636f64655f6861736820616e64207468652073616c742e01012d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732ec02d20546865206076616c756560206973207472616e7366657272656420746f20746865206e6577206163636f756e742e41012d2054686520606465706c6f79602066756e6374696f6e20697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e2c75706c6f61645f636f6465080110636f646538011c5665633c75383e00015473746f726167655f6465706f7369745f6c696d6974a102013042616c616e63654f663c543e000430ec55706c6f6164206e65772060636f64656020776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00210149662074686520636f646520646f6573206e6f7420616c72656164792065786973742061206465706f7369742069732072657365727665642066726f6d207468652063616c6c65724501616e6420756e7265736572766564206f6e6c79207768656e205b6053656c663a3a72656d6f76655f636f6465605d2069732063616c6c65642e205468652073697a65206f66207468652072657365727665ac646570656e6473206f6e207468652073697a65206f662074686520737570706c6965642060636f6465602e001823204e6f7465005901416e796f6e652063616e20696e7374616e7469617465206120636f6e74726163742066726f6d20616e792075706c6f6164656420636f646520616e6420746875732070726576656e74206974732072656d6f76616c2e4101546f2061766f6964207468697320736974756174696f6e206120636f6e7374727563746f7220636f756c6420656d706c6f792061636365737320636f6e74726f6c20736f20746861742069742063616e39016f6e6c7920626520696e7374616e746961746564206279207065726d697373696f6e656420656e7469746965732e205468652073616d652069732074727565207768656e2075706c6f6164696e67a07468726f756768205b6053656c663a3a696e7374616e74696174655f776974685f636f6465605d2e2c72656d6f76655f636f6465040124636f64655f6861736834013473705f636f72653a3a48323536000510350152656d6f76652074686520636f64652073746f72656420756e6465722060636f64655f686173686020616e6420726566756e6420746865206465706f73697420746f20697473206f776e65722e0045014120636f64652063616e206f6e6c792062652072656d6f76656420627920697473206f726967696e616c2075706c6f616465722028697473206f776e65722920616e64206f6e6c79206966206974206973646e6f74207573656420627920616e7920636f6e74726163742e207365745f636f6465080110646573748107011048313630000124636f64655f6861736834013473705f636f72653a3a48323536000628090150726976696c656765642066756e6374696f6e2074686174206368616e6765732074686520636f6465206f6620616e206578697374696e6720636f6e74726163742e004501546869732074616b65732063617265206f66207570646174696e6720726566636f756e747320616e6420616c6c206f74686572206e6563657373617279206f7065726174696f6e732e2052657475726e73e8616e206572726f7220696620656974686572207468652060636f64655f6861736860206f722060646573746020646f206e6f742065786973742e001823204e6f74650031015468697320646f6573202a2a6e6f742a2a206368616e6765207468652061646472657373206f662074686520636f6e747261637420696e207175657374696f6e2e2054686973206d65616e733d01746861742074686520636f6e74726163742061646472657373206973206e6f206c6f6e67657220646572697665642066726f6d2069747320636f646520686173682061667465722063616c6c696e67487468697320646973706174636861626c652e2c6d61705f6163636f756e7400071041015265676973746572207468652063616c6c657273206163636f756e7420696420736f20746861742069742063616e206265207573656420696e20636f6e747261637420696e746572616374696f6e732e005d01546869732077696c6c206572726f7220696620746865206f726967696e20697320616c7265616479206d6170706564206f72206973206120657468206e61746976652060416464726573733230602e2049742077696c6c1d0174616b652061206465706f73697420746861742063616e2062652072656c65617365642062792063616c6c696e67205b6053656c663a3a756e6d61705f6163636f756e74605d2e34756e6d61705f6163636f756e74000810fc556e7265676973746572207468652063616c6c657273206163636f756e7420696420696e206f7264657220746f206672656520746865206465706f7369742e0041015468657265206973206e6f20726561736f6e20746f20657665722063616c6c20746869732066756e6374696f6e206f74686572207468616e2066726565696e6720757020746865206465706f7369742ef854686973206973206f6e6c792075736566756c207768656e20746865206163636f756e742073686f756c64206e6f206c6f6e67657220626520757365642e7064697370617463685f61735f66616c6c6261636b5f6163636f756e7404011063616c6c3502017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0009141d01446973706174636820616e206063616c6c60207769746820746865206f726967696e2073657420746f207468652063616c6c6572732066616c6c6261636b20616464726573732e006101457665727920604163636f756e7449643332602063616e20636f6e74726f6c2069747320636f72726573706f6e64696e672066616c6c6261636b206163636f756e742e205468652066616c6c6261636b206163636f756e74410169732074686520604163636f756e744964323060207769746820746865206c6173742031322062797465732073657420746f206030784545602e205468697320697320657373656e7469616c6c79206155017265636f766572792066756e6374696f6e20696e206361736520616e20604163636f756e74496432306020776173207573656420776974686f7574206372656174696e672061206d617070696e672066697273742e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8107083c7072696d69746976655f7479706573104831363000000400990201205b75383b2032305d000085070c5070616c6c65745f61737365745f726577617264731870616c6c65741043616c6c0404540001242c6372656174655f706f6f6c14013c7374616b65645f61737365745f6964a0013c426f783c543a3a417373657449643e00013c7265776172645f61737365745f6964a0013c426f783c543a3a417373657449643e0001547265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e63650001186578706972792106017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e00011461646d696eac01504f7074696f6e3c543a3a4163636f756e7449643e000030644372656174652061206e65772072657761726420706f6f6c2e002c506172616d65746572733abc2d20606f726967696e603a206d7573742062652060436f6e6669673a3a437265617465506f6f6c4f726967696e603be02d20607374616b65645f61737365745f6964603a2074686520617373657420746f206265207374616b656420696e2074686520706f6f6c3bf02d20607265776172645f61737365745f6964603a2074686520617373657420746f20626520646973747269627574656420617320726577617264733b35012d20607265776172645f726174655f7065725f626c6f636b603a2074686520616d6f756e74206f662072657761726420746f6b656e732064697374726962757465642070657220626c6f636b3b51012d2060657870697279603a2074686520626c6f636b206e756d6265722061742077686963682074686520706f6f6c2077696c6c20636561736520746f20616363756d756c61746520726577617264732e20546865090120205b60446973706174636854696d653a3a4166746572605d2076617269616e74206576616c75617465642061742074686520657865637574696f6e2074696d652e5d012d206061646d696e603a20746865206163636f756e7420616c6c6f77656420746f20657874656e642074686520706f6f6c2065787069726174696f6e2c20696e637265617365207468652072657761726473207261746555012020616e6420726563656976652074686520756e7574696c697a65642072657761726420746f6b656e73206261636b2061667465722074686520706f6f6c20636f6d706c6574696f6e2e20496620604e6f6e65602c8020207468652063616c6c65722069732073657420617320616e2061646d696e2e147374616b6508011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e74180128543a3a42616c616e636500010c885374616b65206164646974696f6e616c20746f6b656e7320696e206120706f6f6c2e00a04120667265657a6520697320706c61636564206f6e20746865207374616b656420746f6b656e732e1c756e7374616b650c011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e74180128543a3a42616c616e63650001187374616b6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0002246c556e7374616b6520746f6b656e732066726f6d206120706f6f6c2e00a052656d6f7665732074686520667265657a65206f6e20746865207374616b656420746f6b656e732e002c506172616d65746572733a4d012d206f726967696e3a206d7573742062652074686520607374616b6572602069662074686520706f6f6c206973207374696c6c206163746976652e204f74686572776973652c20616e79206163636f756e742e902d20706f6f6c5f69643a2074686520706f6f6c20746f20756e7374616b652066726f6d2ea82d20616d6f756e743a2074686520616d6f756e74206f6620746f6b656e7320746f20756e7374616b652e15012d207374616b65723a20746865206163636f756e7420746f20756e7374616b652066726f6d2e20496620604e6f6e65602c207468652063616c6c657220697320757365642e3c686172766573745f7265776172647308011c706f6f6c5f6964100118506f6f6c49640001187374616b6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0003187c4861727665737420756e636c61696d656420706f6f6c20726577617264732e002c506172616d65746572733a4d012d206f726967696e3a206d7573742062652074686520607374616b6572602069662074686520706f6f6c206973207374696c6c206163746976652e204f74686572776973652c20616e79206163636f756e742e902d20706f6f6c5f69643a2074686520706f6f6c20746f20686172766573742066726f6d2e49012d207374616b65723a20746865206163636f756e7420666f7220776869636820746f206861727665737420726577617264732e20496620604e6f6e65602c207468652063616c6c657220697320757365642e787365745f706f6f6c5f7265776172645f726174655f7065725f626c6f636b08011c706f6f6c5f6964100118506f6f6c49640001646e65775f7265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e6365000414684d6f64696679206120706f6f6c2072657761726420726174652e00c043757272656e746c79207468652072657761726420726174652063616e206f6e6c7920626520696e637265617365642e00bc4f6e6c792074686520706f6f6c2061646d696e206d617920706572666f726d2074686973206f7065726174696f6e2e387365745f706f6f6c5f61646d696e08011c706f6f6c5f6964100118506f6f6c49640001246e65775f61646d696e000130543a3a4163636f756e74496400050c504d6f64696679206120706f6f6c2061646d696e2e00bc4f6e6c792074686520706f6f6c2061646d696e206d617920706572666f726d2074686973206f7065726174696f6e2e547365745f706f6f6c5f6578706972795f626c6f636b08011c706f6f6c5f6964100118506f6f6c49640001286e65775f6578706972792106017c446973706174636854696d653c426c6f636b4e756d626572466f723c543e3e00061480536574207768656e2074686520706f6f6c2073686f756c64206578706972652e00c043757272656e746c79207468652065787069727920626c6f636b2063616e206f6e6c7920626520657874656e6465642e00bc4f6e6c792074686520706f6f6c2061646d696e206d617920706572666f726d2074686973206f7065726174696f6e2e546465706f7369745f7265776172645f746f6b656e7308011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e74180128543a3a42616c616e6365000714e0436f6e76656e69656e6365206d6574686f6420746f206465706f7369742072657761726420746f6b656e7320696e746f206120706f6f6c2e00490154686973206d6574686f64206973206e6f74207374726963746c79206e65636573736172792028746f6b656e7320636f756c64206265207472616e73666572726564206469726563746c7920746f207468653901706f6f6c20706f742061646472657373292c206275742069732070726f766964656420666f7220636f6e76656e69656e636520736f206d616e75616c2064657269766174696f6e206f66207468656c6163636f756e74206964206973206e6f742072657175697265642e30636c65616e75705f706f6f6c04011c706f6f6c5f6964100118506f6f6c49640008183c436c65616e7570206120706f6f6c2e00784f726967696e206d7573742062652074686520706f6f6c2061646d696e2e005101436c65616e75702073746f726167652c2072656c6561736520616e79206173736f6369617465642073746f7261676520636f737420616e642072657475726e207468652072656d61696e696e672072657761726450746f6b656e7320746f207468652061646d696e2e047050616c6c657427732063616c6c61626c652066756e6374696f6e732e89070c3870616c6c65745f6d6574615f74781870616c6c65741043616c6c04045400010420646973706174636804011c6d6574615f74788d070144426f783c4d6574615478466f723c543e3e000010884469737061746368206120676976656e206d657461207472616e73616374696f6e2e009c2d20605f6f726967696e603a2043616e20626520616e79206b696e64206f66206f726967696e2e09012d20606d6574615f7478603a204d657461205472616e73616374696f6e20776974682061207461726765742063616c6c20746f20626520646973706174636865642e040d01436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070616c6c6574206861732e8d07083870616c6c65745f6d6574615f7478184d6574615478081043616c6c01350224457874656e73696f6e019107000c011063616c6c3502011043616c6c000144657874656e73696f6e5f76657273696f6e080140457874656e73696f6e56657273696f6e000124657874656e73696f6e91070124457874656e73696f6e0000910700000424950799079d07a107a507a907ad07b507b9070095070c5c70616c6c65745f7665726966795f7369676e617475726524657874656e73696f6e3c5665726966795369676e6174757265040454000108185369676e65640801247369676e6174757265ed040130543a3a5369676e617475726500011c6163636f756e74000130543a3a4163636f756e7449640000002044697361626c65640001000099070c3870616c6c65745f6d6574615f747824657874656e73696f6e304d65746154784d61726b6572040454000000009d0710306672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000a10710306672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000a50710306672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000a90710306672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000ad0710306672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400b107010c4572610000b107102873705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000b50710306672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040071020120543a3a4e6f6e63650000b90708746672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465bd0701104d6f64650000bd0708746672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000c1070c2873705f72756e74696d65187472616974732c426c616b6554776f32353600000000c5070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f7465730000c9070c3470616c6c65745f72656d61726b1870616c6c6574144576656e740404540001041853746f72656408011873656e646572000130543a3a4163636f756e744964000130636f6e74656e745f6861736834013473705f636f72653a3a483235360000045853746f7265642064617461206f666620636861696e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574cd070c4c70616c6c65745f726f6f745f74657374696e671870616c6c6574144576656e7404045400010444446566656e736976655465737443616c6c00000401014576656e742064697370617463686564207768656e2074686520747269676765725f646566656e736976652065787472696e7369632069732063616c6c65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d1070c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144576656e740804540004490001142444656c6567617465640800000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640400000130543a3a4163636f756e744964000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f74656408010c77686f000130543a3a4163636f756e744964000110766f7465310601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f76656408010c77686f000130543a3a4163636f756e744964000110766f7465310601704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c61737391010134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d5070c4070616c6c65745f77686974656c6973741870616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74d90701684469737061746368526573756c7457697468506f7374496e666f000200047c54686520604576656e746020656e756d206f6620746869732070616c6c6574d9070418526573756c7408045401dd07044501e5070108084f6b0400dd07000000000c4572720400e5070000010000dd070c346672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874e10701384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000e10704184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000e507082873705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01dd0700080124706f73745f696e666fdd070110496e666f0001146572726f7268013444697370617463684572726f720000e9070c4470616c6c65745f636f6c6c6563746976651870616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c748401384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574ed070c3c70616c6c65745f616c6c69616e63651870616c6c6574144576656e74080454000449000134284e657752756c6553657404011072756c654d06010c4369640000046041206e65772072756c6520686173206265656e207365742e24416e6e6f756e636564040130616e6e6f756e63656d656e744d06010c4369640001049441206e657720616e6e6f756e63656d656e7420686173206265656e2070726f706f7365642e4c416e6e6f756e63656d656e7452656d6f766564040130616e6e6f756e63656d656e744d06010c436964000204a8416e206f6e2d636861696e20616e6e6f756e63656d656e7420686173206265656e2072656d6f7665642e484d656d62657273496e697469616c697a656408011c66656c6c6f77735d0101445665633c543a3a4163636f756e7449643e000118616c6c6965735d0101445665633c543a3a4163636f756e7449643e0003040101536f6d65206163636f756e74732068617665206265656e20696e697469616c697a6564206173206d656d62657273202866656c6c6f77732f616c6c696573292e344e6577416c6c794a6f696e65640c0110616c6c79000130543a3a4163636f756e7449640001246e6f6d696e61746f72ac01504f7074696f6e3c543a3a4163636f756e7449643e0001207265736572766564b103015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000404f8416e206163636f756e7420686173206265656e20616464656420617320616e20416c6c7920616e6420726573657276656420697473206465706f7369742e30416c6c79456c657661746564040110616c6c79000130543a3a4163636f756e74496400050490416e20616c6c7920686173206265656e20656c65766174656420746f2046656c6c6f772e744d656d6265725265746972656d656e74506572696f64537461727465640401186d656d626572000130543a3a4163636f756e744964000604110141206d656d6265722067617665207265746972656d656e74206e6f7469636520616e64207468656972207265746972656d656e7420706572696f6420737461727465642e344d656d626572526574697265640801186d656d626572000130543a3a4163636f756e744964000128756e7265736572766564b103015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000704c441206d656d626572206861732072657469726564207769746820697473206465706f73697420756e72657365727665642e304d656d6265724b69636b65640801186d656d626572000130543a3a4163636f756e74496400011c736c6173686564b103015c4f7074696f6e3c42616c616e63654f663c542c20493e3e000804d841206d656d62657220686173206265656e206b69636b6564206f7574207769746820697473206465706f73697420736c61736865642e54556e7363727570756c6f75734974656d41646465640401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e00090425014163636f756e7473206f722077656273697465732068617665206265656e20616464656420696e746f20746865206c697374206f6620756e7363727570756c6f7573206974656d732e5c556e7363727570756c6f75734974656d52656d6f7665640401146974656d735d0601745665633c556e7363727570756c6f75734974656d4f663c542c20493e3e000a042d014163636f756e7473206f722077656273697465732068617665206265656e2072656d6f7665642066726f6d20746865206c697374206f6620756e7363727570756c6f7573206974656d732e44416c6c69616e636544697362616e6465640c013866656c6c6f775f6d656d6265727310010c753332000130616c6c795f6d656d6265727310010c753332000128756e726573657276656410010c753332000b043101416c6c69616e63652064697362616e6465642e20496e636c75646573206e756d6265722064656c65746564206d656d6265727320616e6420756e7265736572766564206465706f736974732e3c46656c6c6f7741626469636174656404011866656c6c6f77000130543a3a4163636f756e744964000c04f4412046656c6c6f772061626469636174656420746865697220766f74696e67207269676874732e205468657920617265206e6f7720616e20416c6c792e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574f1070c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144576656e7404045400015c1c437265617465640801246465706f7369746f72000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000004604120706f6f6c20686173206265656e20637265617465642e18426f6e6465641001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c4964000118626f6e64656418013042616c616e63654f663c543e0001186a6f696e6564200110626f6f6c0001049441206d656d6265722068617320626563616d6520626f6e64656420696e206120706f6f6c2e1c506169644f75740c01186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c49640001187061796f757418013042616c616e63654f663c543e0002048c41207061796f757420686173206265656e206d61646520746f2061206d656d6265722e20556e626f6e6465641401186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e00010c657261100120457261496e64657800032c9841206d656d6265722068617320756e626f6e6465642066726f6d20746865697220706f6f6c2e0039012d206062616c616e6365602069732074686520636f72726573706f6e64696e672062616c616e6365206f6620746865206e756d626572206f6620706f696e7473207468617420686173206265656e5501202072657175657374656420746f20626520756e626f6e646564202874686520617267756d656e74206f66207468652060756e626f6e6460207472616e73616374696f6e292066726f6d2074686520626f6e6465641c2020706f6f6c2e45012d2060706f696e74736020697320746865206e756d626572206f6620706f696e747320746861742061726520697373756564206173206120726573756c74206f66206062616c616e636560206265696e67c0646973736f6c76656420696e746f2074686520636f72726573706f6e64696e6720756e626f6e64696e6720706f6f6c2ee42d206065726160206973207468652065726120696e207768696368207468652062616c616e63652077696c6c20626520756e626f6e6465642e5501496e2074686520616273656e6365206f6620736c617368696e672c2074686573652076616c7565732077696c6c206d617463682e20496e207468652070726573656e6365206f6620736c617368696e672c207468654d016e756d626572206f6620706f696e74732074686174206172652069737375656420696e2074686520756e626f6e64696e6720706f6f6c2077696c6c206265206c657373207468616e2074686520616d6f756e746472657175657374656420746f20626520756e626f6e6465642e2457697468647261776e1001186d656d626572000130543a3a4163636f756e74496400011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e000118706f696e747318013042616c616e63654f663c543e0004189c41206d656d626572206861732077697468647261776e2066726f6d20746865697220706f6f6c2e00210154686520676976656e206e756d626572206f662060706f696e7473602068617665206265656e20646973736f6c76656420696e2072657475726e206f66206062616c616e6365602e00590153696d696c617220746f2060556e626f6e64656460206576656e742c20696e2074686520616273656e6365206f6620736c617368696e672c2074686520726174696f206f6620706f696e7420746f2062616c616e63652877696c6c20626520312e2444657374726f79656404011c706f6f6c5f6964100118506f6f6c4964000504684120706f6f6c20686173206265656e2064657374726f7965642e3053746174654368616e67656408011c706f6f6c5f6964100118506f6f6c49640001246e65775f737461746571060124506f6f6c53746174650006047c546865207374617465206f66206120706f6f6c20686173206368616e676564344d656d62657252656d6f7665640c011c706f6f6c5f6964100118506f6f6c49640001186d656d626572000130543a3a4163636f756e74496400014072656c65617365645f62616c616e636518013042616c616e63654f663c543e0007149841206d656d62657220686173206265656e2072656d6f7665642066726f6d206120706f6f6c2e0051015468652072656d6f76616c2063616e20626520766f6c756e74617279202877697468647261776e20616c6c20756e626f6e6465642066756e647329206f7220696e766f6c756e7461727920286b69636b6564292e4901416e792066756e6473207468617420617265207374696c6c2064656c6567617465642028692e652e2064616e676c696e672064656c65676174696f6e29206172652072656c656173656420616e642061726588726570726573656e746564206279206072656c65617365645f62616c616e6365602e30526f6c6573557064617465640c0110726f6f74ac01504f7074696f6e3c543a3a4163636f756e7449643e00011c626f756e636572ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246e6f6d696e61746f72ac01504f7074696f6e3c543a3a4163636f756e7449643e000808550154686520726f6c6573206f66206120706f6f6c2068617665206265656e207570646174656420746f2074686520676976656e206e657720726f6c65732e204e6f7465207468617420746865206465706f7369746f724463616e206e65766572206368616e67652e2c506f6f6c536c617368656408011c706f6f6c5f6964100118506f6f6c496400011c62616c616e636518013042616c616e63654f663c543e0009040d01546865206163746976652062616c616e6365206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e50556e626f6e64696e67506f6f6c536c61736865640c011c706f6f6c5f6964100118506f6f6c496400010c657261100120457261496e64657800011c62616c616e636518013042616c616e63654f663c543e000a04250154686520756e626f6e6420706f6f6c206174206065726160206f6620706f6f6c2060706f6f6c5f69646020686173206265656e20736c617368656420746f206062616c616e6365602e54506f6f6c436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c496400011c63757272656e748906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e000b04b44120706f6f6c277320636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e60506f6f6c4d6178436f6d6d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001386d61785f636f6d6d697373696f6ec4011c50657262696c6c000c04d44120706f6f6c2773206d6178696d756d20636f6d6d697373696f6e2073657474696e6720686173206265656e206368616e6765642e7c506f6f6c436f6d6d697373696f6e4368616e6765526174655570646174656408011c706f6f6c5f6964100118506f6f6c496400012c6368616e67655f726174659106019c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e000d04cc4120706f6f6c277320636f6d6d697373696f6e20606368616e67655f726174656020686173206265656e206368616e6765642e90506f6f6c436f6d6d697373696f6e436c61696d5065726d697373696f6e5570646174656408011c706f6f6c5f6964100118506f6f6c49640001287065726d697373696f6e950601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e000e04c8506f6f6c20636f6d6d697373696f6e20636c61696d207065726d697373696f6e20686173206265656e20757064617465642e54506f6f6c436f6d6d697373696f6e436c61696d656408011c706f6f6c5f6964100118506f6f6c4964000128636f6d6d697373696f6e18013042616c616e63654f663c543e000f0484506f6f6c20636f6d6d697373696f6e20686173206265656e20636c61696d65642e644d696e42616c616e63654465666963697441646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001004c8546f70706564207570206465666963697420696e2066726f7a656e204544206f66207468652072657761726420706f6f6c2e604d696e42616c616e636545786365737341646a757374656408011c706f6f6c5f6964100118506f6f6c4964000118616d6f756e7418013042616c616e63654f663c543e001104bc436c61696d6564206578636573732066726f7a656e204544206f66206166207468652072657761726420706f6f6c2e704d656d626572436c61696d5065726d697373696f6e557064617465640801186d656d626572000130543a3a4163636f756e7449640001287065726d697373696f6e8506013c436c61696d5065726d697373696f6e001204c84120706f6f6c206d656d626572277320636c61696d207065726d697373696f6e20686173206265656e20757064617465642e3c4d657461646174615570646174656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001304784120706f6f6c2773206d657461646174612077617320757064617465642e48506f6f6c4e6f6d696e6174696f6e4d61646508011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e74496400140859014120706f6f6c2773206e6f6d696e6174696e67206163636f756e7420286f722074686520706f6f6c277320726f6f74206163636f756e742920686173206e6f6d696e6174656420612076616c696461746f7220736574586f6e20626568616c66206f662074686520706f6f6c2e50506f6f6c4e6f6d696e61746f724368696c6c656408011c706f6f6c5f6964100118506f6f6c496400011863616c6c6572000130543a3a4163636f756e744964001504b854686520706f6f6c206973206368696c6c656420692e652e206e6f206c6f6e676572206e6f6d696e6174696e672e4c476c6f62616c506172616d73557064617465641801346d696e5f6a6f696e5f626f6e6418013042616c616e63654f663c543e00013c6d696e5f6372656174655f626f6e6418013042616c616e63654f663c543e0001246d61785f706f6f6c73c8012c4f7074696f6e3c7533323e00012c6d61785f6d656d62657273c8012c4f7074696f6e3c7533323e0001506d61785f6d656d626572735f7065725f706f6f6cc8012c4f7074696f6e3c7533323e000154676c6f62616c5f6d61785f636f6d6d697373696f6ef507013c4f7074696f6e3c50657262696c6c3e0016040101476c6f62616c20706172616d657465727320726567756c6174696e67206e6f6d696e6174696f6e20706f6f6c732068617665206265656e20757064617465642e04584576656e7473206f6620746869732070616c6c65742ef50704184f7074696f6e04045401c40108104e6f6e6500000010536f6d650400c40000010000f9070c4070616c6c65745f7265666572656e64611870616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9101013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636b9101013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616c3102014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79fd070120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79fd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79fd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79fd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79fd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79fd070120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574fd07086070616c6c65745f72616e6b65645f636f6c6c6563746976651454616c6c790c045400044900044d00000c0124626172655f6179657310012c4d656d626572496e64657800011061796573100114566f7465730001106e617973100114566f746573000001080c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144576656e740804540004490001142c4d656d626572416464656404010c77686f000130543a3a4163636f756e7449640000047841206d656d626572206077686f6020686173206265656e2061646465642e2c52616e6b4368616e67656408010c77686f000130543a3a4163636f756e74496400011072616e6b9101011052616e6b000104f4546865206d656d626572206077686f6073652072616e6b20686173206265656e206368616e67656420746f2074686520676976656e206072616e6b602e344d656d62657252656d6f76656408010c77686f000130543a3a4163636f756e74496400011072616e6b9101011052616e6b0002041901546865206d656d626572206077686f60206f6620676976656e206072616e6b6020686173206265656e2072656d6f7665642066726f6d2074686520636f6c6c6563746976652e14566f74656410010c77686f000130543a3a4163636f756e744964000110706f6c6c100144506f6c6c496e6465784f663c542c20493e000110766f746505080128566f74655265636f726400011474616c6c79fd07013454616c6c794f663c542c20493e0003085501546865206d656d626572206077686f602068617320766f74656420666f72207468652060706f6c6c6020776974682074686520676976656e2060766f746560206c656164696e6720746f20616e2075706461746564206074616c6c79602e3c4d656d62657245786368616e67656408010c77686f000130543a3a4163636f756e74496400011c6e65775f77686f000130543a3a4163636f756e744964000404f0546865206d656d626572206077686f602068616420746865697220604163636f756e74496460206368616e67656420746f20606e65775f77686f602e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740508086070616c6c65745f72616e6b65645f636f6c6c65637469766528566f74655265636f72640001080c4179650400100114566f7465730000000c4e61790400100114566f7465730001000009080c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144576656e740404540001182c506f6f6c4372656174656410011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f69640d080124543a3a506f6f6c496408490154686520706f6f6c206964206173736f63696174656420776974682074686520706f6f6c2e204e6f7465207468617420746865206f72646572206f662074686520617373657473206d6179206e6f74206265f47468652073616d6520617320746865206f726465722073706563696669656420696e207468652063726561746520706f6f6c2065787472696e7369632e0130706f6f6c5f6163636f756e74000130543a3a4163636f756e744964046c546865206163636f756e74204944206f662074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964084101546865206964206f6620746865206c697175696469747920746f6b656e7320746861742077696c6c206265206d696e746564207768656e206173736574732061726520616464656420746f207468697314706f6f6c2e00041d0141207375636365737366756c2063616c6c206f66207468652060437265617465506f6f6c602065787472696e7369632077696c6c206372656174652074686973206576656e742e384c697175696469747941646465641c010c77686f000130543a3a4163636f756e74496404b8546865206163636f756e74207468617420746865206c6971756964697479207761732074616b656e2066726f6d2e011c6d696e745f746f000130543a3a4163636f756e74496404d4546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206d696e74656420746f2e011c706f6f6c5f69640d080124543a3a506f6f6c496404e054686520706f6f6c206964206f662074686520706f6f6c207468617420746865206c69717569646974792077617320616464656420746f2e0140616d6f756e74315f70726f7669646564180128543a3a42616c616e636504e454686520616d6f756e74206f662074686520666972737420617373657420746861742077617320616464656420746f2074686520706f6f6c2e0140616d6f756e74325f70726f7669646564180128543a3a42616c616e636504e854686520616d6f756e74206f6620746865207365636f6e6420617373657420746861742077617320616464656420746f2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206d696e7465642e013c6c705f746f6b656e5f6d696e746564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206d696e746564206f6620746861742069642e0104250141207375636365737366756c2063616c6c206f662074686520604164644c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e404c697175696469747952656d6f76656420010c77686f000130543a3a4163636f756e74496404dc546865206163636f756e74207468617420746865206c697175696469747920746f6b656e732077657265206275726e65642066726f6d2e012c77697468647261775f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e011c706f6f6c5f69640d080124543a3a506f6f6c496404c054686520706f6f6c206964207468617420746865206c6971756964697479207761732072656d6f7665642066726f6d2e011c616d6f756e7431180128543a3a42616c616e636504f454686520616d6f756e74206f66207468652066697273742061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e011c616d6f756e7432180128543a3a42616c616e636504f854686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656d6f7665642066726f6d2074686520706f6f6c2e01206c705f746f6b656e100138543a3a506f6f6c41737365744964049c546865206964206f6620746865206c7020746f6b656e207468617420776173206275726e65642e013c6c705f746f6b656e5f6275726e6564180128543a3a42616c616e636504d054686520616d6f756e74206f66206c7020746f6b656e7320746861742077657265206275726e6564206f6620746861742069642e01387769746864726177616c5f6665651108011c5065726d696c6c04744c6971756964697479207769746864726177616c20666565202825292e0204310141207375636365737366756c2063616c6c206f6620746865206052656d6f76654c6971756964697479602065787472696e7369632077696c6c206372656174652074686973206576656e742e3053776170457865637574656414010c77686f000130543a3a4163636f756e74496404b45768696368206163636f756e74207761732074686520696e7374696761746f72206f662074686520737761702e011c73656e645f746f000130543a3a4163636f756e74496404c0546865206163636f756e74207468617420746865206173736574732077657265207472616e7366657272656420746f2e0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174681508013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f757429030835014173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e20426f74682060537761704578616374546f6b656e466f72546f6b656e60d8616e64206053776170546f6b656e466f724578616374546f6b656e602077696c6c2067656e65726174652074686973206576656e742e485377617043726564697445786563757465640c0124616d6f756e745f696e180128543a3a42616c616e636504bc54686520616d6f756e74206f662074686520666972737420617373657420746861742077617320737761707065642e0128616d6f756e745f6f7574180128543a3a42616c616e636504c454686520616d6f756e74206f6620746865207365636f6e642061737365742074686174207761732072656365697665642e0110706174681508013842616c616e6365506174683c543e08fc54686520726f757465206f6620617373657420494473207769746820616d6f756e747320746861742074686520737761702077656e74207468726f7567682eec452e672e2028412c20616d6f756e745f696e29202d3e2028446f742c20616d6f756e745f6f757429202d3e2028422c20616d6f756e745f6f7574290404bc4173736574732068617665206265656e20636f6e7665727465642066726f6d206f6e6520746f20616e6f746865722e1c546f756368656408011c706f6f6c5f69640d080124543a3a506f6f6c4964044c546865204944206f662074686520706f6f6c2e010c77686f000130543a3a4163636f756e7449640484546865206163636f756e7420696e6974696174696e672074686520746f7563682e05040d01506f6f6c20686173206265656e20746f756368656420696e206f7264657220746f2066756c66696c6c206f7065726174696f6e616c20726571756972656d656e74732e047c54686520604576656e746020656e756d206f6620746869732070616c6c65740d0800000408a0a00011080c3473705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200001508000002190800190800000408a018001d080c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c748401384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173c90101345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e047c54686520604576656e746020656e756d206f6620746869732070616c6c657421080c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f722508014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7935017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e1001484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e1001484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574250810346672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d6974526561636865640005000029080c746672616d655f62656e63686d61726b696e675f70616c6c65745f706f761870616c6c6574144576656e7404045400010424546573744576656e74000000047c54686520604576656e746020656e756d206f6620746869732070616c6c65742d080c3c70616c6c65745f74785f70617573651870616c6c6574144576656e740404540001082843616c6c50617573656404012466756c6c5f6e616d65bd06015052756e74696d6543616c6c4e616d654f663c543e000004b8546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f77207061757365642e3043616c6c556e70617573656404012466756c6c5f6e616d65bd06015052756e74696d6543616c6c4e616d654f663c543e000104c0546869732070616c6c65742c206f7220612073706563696669632063616c6c206973206e6f7720756e7061757365642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657431080c4070616c6c65745f736166655f6d6f64651870616c6c6574144576656e740404540001201c456e7465726564040114756e74696c100144426c6f636b4e756d626572466f723c543e000004dc54686520736166652d6d6f64652077617320656e746572656420756e74696c20696e636c75736976656c79207468697320626c6f636b2e20457874656e646564040114756e74696c100144426c6f636b4e756d626572466f723c543e000104e054686520736166652d6d6f64652077617320657874656e64656420756e74696c20696e636c75736976656c79207468697320626c6f636b2e18457869746564040118726561736f6e3508012845786974526561736f6e000204ac4578697465642074686520736166652d6d6f646520666f72206120737065636966696320726561736f6e2e344465706f736974506c6163656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0003042501416e206163636f756e742072657365727665642066756e647320666f722065697468657220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e3c4465706f73697452656c656173656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000404d0416e206163636f756e7420686164206120726573657276652072656c65617365642074686174207761732072657365727665642e384465706f736974536c617368656408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000504c4416e206163636f756e7420686164207265736572766520736c61736865642074686174207761732072657365727665642e3443616e6e6f744465706f73697400060cf4436f756c64206e6f7420686f6c642066756e647320666f7220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e00c054686973206572726f7220636f6d65732066726f6d2074686520756e6465726c79696e67206043757272656e6379602e3443616e6e6f7452656c6561736500070c0101436f756c64206e6f742072656c656173652066756e647320666f7220656e746572696e67206f7220657874656e64696e672074686520736166652d6d6f64652e00c054686973206572726f7220636f6d65732066726f6d2074686520756e6465726c79696e67206043757272656e6379602e047c54686520604576656e746020656e756d206f6620746869732070616c6c657435080c4070616c6c65745f736166655f6d6f64651870616c6c65742845786974526561736f6e0001081c54696d656f757400000014466f7263650001000039080c4070616c6c65745f73746174656d656e741870616c6c6574144576656e74040454000104304e657753746174656d656e7408011c6163636f756e74000130543a3a4163636f756e74496400012473746174656d656e743d08012453746174656d656e740000047041206e65772073746174656d656e74206973207375626d6974746564047c54686520604576656e746020656e756d206f6620746869732070616c6c65743d08084873705f73746174656d656e745f73746f72652453746174656d656e7400001c011470726f6f66410801344f7074696f6e3c50726f6f663e00013864656372797074696f6e5f6b6579790101544f7074696f6e3c44656372797074696f6e4b65793e00011c6368616e6e656c7901013c4f7074696f6e3c4368616e6e656c3e0001207072696f72697479c8012c4f7074696f6e3c7533323e0001286e756d5f746f706963730801087538000118746f706963734908014c5b546f7069633b204d41585f544f504943535d00011064617461e506013c4f7074696f6e3c5665633c75383e3e0000410804184f7074696f6e0404540145080108104e6f6e6500000010536f6d650400450800000100004508084873705f73746174656d656e745f73746f72651450726f6f660001101c537232353531390801247369676e6174757265150401205b75383b2036345d0001187369676e65720401205b75383b2033325d0000001c456432353531390801247369676e6174757265150401205b75383b2036345d0001187369676e65720401205b75383b2033325d00010038536563703235366b3145636473610801247369676e6174757265f10401205b75383b2036355d0001187369676e6572d90301205b75383b2033335d0002001c4f6e436861696e0c010c77686f0401244163636f756e744964000128626c6f636b5f68617368040124426c6f636b4861736800012c6576656e745f696e64657830010c7536340003000049080000030400000004004d080c4470616c6c65745f6d6967726174696f6e731870616c6c6574144576656e740404540001203855706772616465537461727465640401286d6967726174696f6e7310010c75333210d0546865206e756d626572206f66206d6967726174696f6e7320746861742074686973207570677261646520636f6e7461696e732e004101546869732063616e206265207573656420746f2064657369676e20612070726f677265737320696e64696361746f7220696e20636f6d62696e6174696f6e207769746820636f756e74696e6720746865cc604d6967726174696f6e436f6d706c657465646020616e6420604d6967726174696f6e536b697070656460206576656e74732e000c68412052756e74696d65207570677261646520737461727465642e00f849747320656e6420697320696e64696361746564206279206055706772616465436f6d706c6574656460206f722060557067726164654661696c6564602e4055706772616465436f6d706c6574656400010c985468652063757272656e742072756e74696d65207570677261646520636f6d706c657465642e001d015468697320696d706c696573207468617420616c6c206f6620697473206d6967726174696f6e7320636f6d706c65746564207375636365737366756c6c792061732077656c6c2e34557067726164654661696c656400020c5c52756e74696d652075706772616465206661696c65642e00e85468697320697320766572792062616420616e642077696c6c207265717569726520676f7665726e616e636520696e74657276656e74696f6e2e404d6967726174696f6e536b6970706564040114696e64657810010c75333204290154686520696e646578206f662074686520736b6970706564206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0304090141206d6967726174696f6e2077617320736b69707065642073696e63652069742077617320616c726561647920657865637574656420696e2074686520706173742e444d6967726174696f6e416476616e636564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e04045c41206d6967726174696f6e2070726f677265737365642e484d6967726174696f6e436f6d706c65746564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e05045841204d6967726174696f6e20636f6d706c657465642e3c4d6967726174696f6e4661696c6564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e060c4c41204d6967726174696f6e206661696c65642e004d015468697320696d706c6965732074686174207468652077686f6c652075706772616465206661696c656420616e6420676f7665726e616e636520696e74657276656e74696f6e2069732072657175697265642e3c486973746f726963436c656172656404012c6e6578745f637572736f72e506013c4f7074696f6e3c5665633c75383e3e04e853686f756c642062652070617373656420746f2060636c6561725f686973746f7269636020696e206120737563636573736976652063616c6c2e0704c854686520736574206f6620686973746f726963616c206d6967726174696f6e7320686173206265656e20636c65617265642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657451080c3470616c6c65745f62726f6b65721870616c6c6574144576656e740404540001882450757263686173656410010c77686f000130543a3a4163636f756e7449640478546865206964656e74697479206f6620746865207075726368617365722e0124726567696f6e5f696405070120526567696f6e4964046c546865206964656e74697479206f662074686520526567696f6e2e0114707269636518013042616c616e63654f663c543e047c546865207072696365207061696420666f72207468697320526567696f6e2e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e0004b44120526567696f6e206f662042756c6b20436f726574696d6520686173206265656e207075726368617365642e2452656e657761626c65100110636f726591010124436f7265496e646578049c54686520636f72652077686f736520776f726b6c6f61642063616e2062652072656e657765642e0114707269636518013042616c616e63654f663c543e04bc5468652070726963652061742077686963682074686520776f726b6c6f61642063616e2062652072656e657765642e0114626567696e10012454696d65736c6963650c49015468652074696d652061742077686963682074686520776f726b6c6f616420776f756c64207265636f6d6d656e6365206f6620746869732072656e6577616c2e205468652063616c6c20746f2072656e6577450163616e6e6f742068617070656e206265666f72652074686520626567696e6e696e67206f662074686520696e7465726c756465207072696f7220746f207468652073616c6520666f7220726567696f6e7364776869636820626567696e20617420746869732074696d652e0120776f726b6c6f6164f10601205363686564756c6504a45468652061637475616c20776f726b6c6f61642077686963682063616e2062652072656e657765642e0104b054686520776f726b6c6f6164206f66206120636f726520686173206265636f6d652072656e657761626c652e1c52656e657765641c010c77686f000130543a3a4163636f756e7449640470546865206964656e74697479206f66207468652072656e657765722e0114707269636518013042616c616e63654f663c543e0480546865207072696365207061696420666f7220746869732072656e6577616c2e01206f6c645f636f726591010124436f7265496e646578041d0154686520696e646578206f662074686520636f7265206f6e207768696368207468652060776f726b6c6f616460207761732070726576696f75736c79207363686564756c65642e0110636f726591010124436f7265496e64657804250154686520696e646578206f662074686520636f7265206f6e207768696368207468652072656e657765642060776f726b6c6f61646020686173206265656e207363686564756c65642e0114626567696e10012454696d65736c69636504e85468652074696d65206174207768696368207468652060776f726b6c6f6164602077696c6c20626567696e206f6e207468652060636f7265602e01206475726174696f6e10012454696d65736c696365041901546865206e756d626572206f662074696d65736c6963657320666f7220776869636820746869732060776f726b6c6f616460206973206e65776c79207363686564756c65642e0120776f726b6c6f6164f10601205363686564756c65047c54686520776f726b6c6f6164207768696368207761732072656e657765642e0204704120776f726b6c6f616420686173206265656e2072656e657765642e2c5472616e73666572726564100124726567696f6e5f696405070120526567696f6e4964049854686520526567696f6e20776869636820686173206265656e207472616e736665727265642e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e01246f6c645f6f776e6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0470546865206f6c64206f776e6572206f662074686520526567696f6e2e01146f776e6572ac01504f7074696f6e3c543a3a4163636f756e7449643e0470546865206e6577206f776e6572206f662074686520526567696f6e2e0304ac4f776e657273686970206f66206120526567696f6e20686173206265656e207472616e736665727265642e2c506172746974696f6e65640801346f6c645f726567696f6e5f696405070120526567696f6e4964046c54686520526567696f6e207768696368207761732073706c69742e01386e65775f726567696f6e5f6964735508015028526567696f6e49642c20526567696f6e4964290494546865206e657720526567696f6e7320696e746f20776869636820697420626563616d652e0404e44120526567696f6e20686173206265656e2073706c697420696e746f2074776f206e6f6e2d6f7665726c617070696e6720526567696f6e732e28496e7465726c616365640801346f6c645f726567696f6e5f696405070120526567696f6e4964048054686520526567696f6e2077686963682077617320696e7465726c616365642e01386e65775f726567696f6e5f6964735508015028526567696f6e49642c20526567696f6e4964290494546865206e657720526567696f6e7320696e746f20776869636820697420626563616d652e05044d014120526567696f6e20686173206265656e20636f6e76657274656420696e746f2074776f206f7665726c617070696e6720526567696f6e732065616368206f66206c657373657220726567756c61726974792e2041737369676e65640c0124726567696f6e5f696405070120526567696f6e4964047854686520526567696f6e207768696368207761732061737369676e65642e01206475726174696f6e10012454696d65736c696365047c546865206475726174696f6e206f66207468652061737369676e6d656e742e01107461736b1001185461736b496404a8546865207461736b20746f2077686963682074686520526567696f6e207761732061737369676e65642e0604c04120526567696f6e20686173206265656e2061737369676e656420746f206120706172746963756c6172207461736b2e4441737369676e6d656e7452656d6f766564040124726567696f6e5f696405070120526567696f6e496404bc54686520526567696f6e207768696368207761732072656d6f7665642066726f6d2074686520776f726b706c616e2e0704c4416e2061737369676e6d656e7420686173206265656e2072656d6f7665642066726f6d2074686520776f726b706c616e2e18506f6f6c6564080124726567696f6e5f696405070120526567696f6e496404f854686520526567696f6e2077686963682077617320616464656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e0804ec4120526567696f6e20686173206265656e20616464656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e48436f7265436f756e74526571756573746564040128636f72655f636f756e7491010124436f7265496e6465780478546865206e756d626572206f6620636f726573207265717565737465642e0904a441206e6577206e756d626572206f6620636f72657320686173206265656e207265717565737465642e40436f7265436f756e744368616e676564040128636f72655f636f756e7491010124436f7265496e64657804c4546865206e6577206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e672e0a04e4546865206e756d626572206f6620636f72657320617661696c61626c6520666f72207363686564756c696e6720686173206368616e6765642e3c5265736572766174696f6e4d616465080114696e64657810010c753332047454686520696e646578206f6620746865207265736572766174696f6e2e0120776f726b6c6f6164f10601205363686564756c65048054686520776f726b6c6f6164206f6620746865207265736572766174696f6e2e0b04a854686572652069732061206e6577207265736572766174696f6e20666f72206120776f726b6c6f61642e505265736572766174696f6e43616e63656c6c6564080114696e64657810010c75333204c454686520696e646578206f6620746865207265736572766174696f6e207768696368207761732063616e63656c6c65642e0120776f726b6c6f6164f10601205363686564756c6504b854686520776f726b6c6f6164206f6620746865206e6f772063616e63656c6c6564207265736572766174696f6e2e0c04c041207265736572766174696f6e20666f72206120776f726b6c6f616420686173206265656e2063616e63656c6c65642e3c53616c65496e697469616c697a656420012873616c655f737461727410015452656c6179426c6f636b4e756d6265724f663c543e04e05468652072656c617920626c6f636b206e756d626572206174207768696368207468652073616c652077696c6c2f6469642073746172742e01346c656164696e5f6c656e67746810015452656c6179426c6f636b4e756d6265724f663c543e082501546865206c656e67746820696e2072656c617920636861696e20626c6f636b73206f6620746865204c656164696e20506572696f6420287768657265207468652070726963652069733064656372656173696e67292e012c73746172745f707269636518013042616c616e63654f663c543e040501546865207072696365206f662042756c6b20436f726574696d652061742074686520626567696e6e696e67206f6620746865204c656164696e20506572696f642e0124656e645f707269636518013042616c616e63654f663c543e04cc546865207072696365206f662042756c6b20436f726574696d6520616674657220746865204c656164696e20506572696f642e0130726567696f6e5f626567696e10012454696d65736c6963650415015468652066697273742074696d65736c696365206f662074686520526567696f6e7320776869636820617265206265696e6720736f6c6420696e20746869732073616c652e0128726567696f6e5f656e6410012454696d65736c6963650839015468652074696d65736c696365206f6e2077686963682074686520526567696f6e7320776869636820617265206265696e6720736f6c6420696e207468652073616c65207465726d696e6174652ef828692e652e204f6e6520616674657220746865206c6173742074696d65736c6963652077686963682074686520526567696f6e7320636f6e74726f6c2e290140696465616c5f636f7265735f736f6c6491010124436f7265496e64657804b4546865206e756d626572206f6620636f7265732077652077616e7420746f2073656c6c2c20696465616c6c792e0134636f7265735f6f66666572656491010124436f7265496e64657804d44e756d626572206f6620636f726573207768696368206172652f68617665206265656e206f66666572656420666f722073616c652e0d048041206e65772073616c6520686173206265656e20696e697469616c697a65642e184c65617365640801107461736b1001185461736b496404a8546865207461736b20746f207768696368206120636f72652077696c6c2062652061737369676e65642e0114756e74696c10012454696d65736c6963650c19015468652074696d65736c69636520636f6e7461696e656420696e207468652073616c6520706572696f642061667465722077686963682074686973206c656173652077696c6c390173656c662d7465726d696e6174652028616e64207468657265666f726520746865206561726c696573742074696d65736c69636520617420776869636820746865206c65617365206d6179206e6f386c6f6e676572206170706c79292e0e047441206e6577206c6561736520686173206265656e20637265617465642e304c6561736552656d6f7665640401107461736b1001185461736b49640498546865207461736b20746f207768696368206120636f7265207761732061737369676e65642e0f046441206c6561736520686173206265656e2072656d6f7665642e2c4c65617365456e64696e670801107461736b1001185461736b49640498546865207461736b20746f207768696368206120636f7265207761732061737369676e65642e01107768656e10012454696d65736c69636504f05468652074696d65736c69636520617420776869636820746865207461736b2077696c6c206e6f206c6f6e676572206265207363686564756c65642e10046041206c656173652069732061626f757420746f20656e642e3053616c657353746172746564080114707269636518013042616c616e63654f663c543e04c0546865206e6f6d696e616c207072696365206f6620616e20526567696f6e206f662042756c6b20436f726574696d652e0128636f72655f636f756e7491010124436f7265496e646578041501546865206d6178696d756d206e756d626572206f6620636f72657320776869636820746869732070616c6c65742077696c6c20617474656d707420746f2061737369676e2e1104f85468652073616c6520726f746174696f6e20686173206265656e207374617274656420616e642061206e65772073616c6520697320696d6d696e656e742e44526576656e7565436c61696d426567756e080118726567696f6e05070120526567696f6e4964047454686520726567696f6e20746f20626520636c61696d656420666f722e01386d61785f74696d65736c6963657310012454696d65736c696365041901546865206d6178696d756d206e756d626572206f662074696d65736c696365732077686963682073686f756c6420626520736561726368656420666f7220636c61696d65642e12049854686520616374206f6620636c61696d696e6720726576656e75652068617320626567756e2e40526576656e7565436c61696d4974656d0801107768656e10012454696d65736c69636504b45468652074696d65736c6963652077686f736520636c61696d206973206265696e672070726f6365737365642e0118616d6f756e7418013042616c616e63654f663c543e04bc54686520616d6f756e742077686963682077617320636c61696d656420617420746869732074696d65736c6963652e1304b04120706172746963756c61722074696d65736c696365206861732061206e6f6e2d7a65726f20636c61696d2e40526576656e7565436c61696d506169640c010c77686f000130543a3a4163636f756e74496404a8546865206163636f756e7420746f2077686f6d20726576656e756520686173206265656e20706169642e0118616d6f756e7418013042616c616e63654f663c543e04b454686520746f74616c20616d6f756e74206f6620726576656e756520636c61696d656420616e6420706169642e01106e657874590801404f7074696f6e3c526567696f6e49643e044901546865206e65787420726567696f6e2077686963682073686f756c6420626520636c61696d656420666f722074686520636f6e74696e756174696f6e206f66207468697320636f6e747269627574696f6e2e1404d84120726576656e756520636c61696d206861732028706f737369626c79206f6e6c7920696e207061727429206265656e20706169642e3c4372656469745075726368617365640c010c77686f000130543a3a4163636f756e744964049c546865206163636f756e742077686963682070757263686173656420746865206372656469742e012c62656e656669636961727900014c52656c61794163636f756e7449644f663c543e04e45468652052656c61792d636861696e206163636f756e7420746f20776869636820746865206372656469742077696c6c206265206d6164652e0118616d6f756e7418013042616c616e63654f663c543e047c54686520616d6f756e74206f6620637265646974207075726368617365642e1504ec536f6d6520496e7374616e74616e656f757320436f726574696d6520506f6f6c2063726564697420686173206265656e207075726368617365642e34526567696f6e44726f70706564080124726567696f6e5f696405070120526567696f6e4964048854686520526567696f6e207768696368206e6f206c6f6e676572206578697374732e01206475726174696f6e10012454696d65736c696365046c546865206475726174696f6e206f662074686520526567696f6e2e1604cc4120526567696f6e20686173206265656e2064726f707065642064756520746f206265696e67206f7574206f6620646174652e4c436f6e747269627574696f6e44726f70706564040124726567696f6e5f696405070120526567696f6e496404c854686520526567696f6e2077686f736520636f6e747269627574696f6e206973206e6f206c6f6e676572206578697374732e17043501536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c20636f6e747269627574696f6e207265636f726420686173206265656e2064726f707065642e48486973746f7279496e697469616c697a65640c01107768656e10012454696d65736c69636504c45468652074696d65736c6963652077686f736520686973746f727920686173206265656e20696e697469616c697a65642e0144707269766174655f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7404410154686520616d6f756e74206f6620707269766174656c7920636f6e747269627574656420436f726574696d6520746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e014073797374656d5f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7408310154686520616d6f756e74206f6620436f726574696d6520636f6e747269627574656420746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2062792074686540506f6c6b61646f742053797374656d2e18043101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e20696e697469616c697a65642e38486973746f727944726f707065640801107768656e10012454696d65736c69636504cc5468652074696d65736c6963652077686f736520686973746f7279206973206e6f206c6f6e67657220617661696c61626c652e011c726576656e756518013042616c616e63654f663c543e04ac54686520616d6f756e74206f6620726576656e7565207468652073797374656d206861732074616b656e2e19042101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2064726f707065642e38486973746f727949676e6f7265640801107768656e10012454696d65736c69636504ac5468652074696d65736c6963652077686f736520686973746f7279206973207761732069676e6f7265642e011c726576656e756518013042616c616e63654f663c543e04a054686520616d6f756e74206f6620726576656e7565207768696368207761732069676e6f7265642e1a084d01536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2069676e6f726564206265636175736520746865f874696d65736c6963652077617320616c7265616479206b6e6f776e2e20476f7665726e616e6365206d6179206e65656420746f20696e74657276656e652e2c436c61696d7352656164790c01107768656e10012454696d65736c69636504a45468652074696d65736c6963652077686f736520686973746f727920697320617661696c61626c652e013473797374656d5f7061796f757418013042616c616e63654f663c543e04f054686520616d6f756e74206f6620726576656e75652074686520506f6c6b61646f742053797374656d2068617320616c72656164792074616b656e2e0138707269766174655f7061796f757418013042616c616e63654f663c543e04d054686520746f74616c20616d6f756e74206f6620726576656e75652072656d61696e696e6720746f20626520636c61696d65642e1b042d01536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c20526576656e756520697320726561647920666f72207061796f757420636c61696d732e30436f726541737369676e65640c0110636f726591010124436f7265496e64657804b854686520696e646578206f662074686520436f726520776869636820686173206265656e2061737369676e65642e01107768656e10015452656c6179426c6f636b4e756d6265724f663c543e0409015468652052656c61792d636861696e20626c6f636b20617420776869636820746869732061737369676e6d656e742073686f756c642074616b65206566666563742e012861737369676e6d656e745d08018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e049054686520776f726b6c6f616420746f20626520646f6e65206f6e2074686520436f72652e1c0445014120436f726520686173206265656e2061737369676e656420746f206f6e65206f72206d6f7265207461736b7320616e642f6f722074686520506f6f6c206f6e207468652052656c61792d636861696e2e5c506f74656e7469616c52656e6577616c44726f707065640801107768656e10012454696d65736c69636504cc5468652074696d65736c6963652077686f73652072656e6577616c206973206e6f206c6f6e67657220617661696c61626c652e0110636f726591010124436f7265496e64657804210154686520636f72652077686f736520776f726b6c6f6164206973206e6f206c6f6e67657220617661696c61626c6520746f2062652072656e6577656420666f7220607768656e602e1d042101536f6d6520686973746f726963616c20496e7374616e74616e656f757320436f726520506f6f6c207061796d656e74207265636f726420686173206265656e2064726f707065642e484175746f52656e6577616c456e61626c6564080110636f726591010124436f7265496e64657804ac54686520636f726520666f72207768696368207468652072656e6577616c2077617320656e61626c65642e01107461736b1001185461736b496404ac546865207461736b20666f72207768696368207468652072656e6577616c2077617320656e61626c65642e1e004c4175746f52656e6577616c44697361626c6564080110636f726591010124436f7265496e64657804b054686520636f726520666f72207768696368207468652072656e6577616c207761732064697361626c65642e01107461736b1001185461736b496404b0546865207461736b20666f72207768696368207468652072656e6577616c207761732064697361626c65642e1f00444175746f52656e6577616c4661696c6564080110636f726591010124436f7265496e646578049854686520636f726520666f72207768696368207468652072656e6577616c206661696c65642e01147061796572ac01504f7074696f6e3c543a3a4163636f756e7449643e0cc8546865206163636f756e742077686963682077617320737570706f73656420746f2070617920666f722072656e6577616c2e003501496620604e6f6e656020697420696e646963617465732074686174207765206661696c656420746f206765742074686520736f7665726569676e206163636f756e74206f662061207461736b2e20084d014661696c656420746f206175746f2d72656e6577206120636f72652c206c696b656c792064756520746f20746865207061796572206163636f756e74206e6f74206265696e672073756666696369656e746c791c66756e6465642e5c4175746f52656e6577616c4c696d697452656163686564002110f0546865206175746f2d72656e6577616c206c696d697420686173206265656e20726561636865642075706f6e2072656e6577696e6720636f7265732e005901546869732073686f756c64206e657665722068617070656e2c20676976656e207468617420656e61626c655f6175746f5f72656e657720636865636b7320666f722074686973206265666f726520656e61626c696e67346175746f2d72656e6577616c2e047c54686520604576656e746020656e756d206f6620746869732070616c6c65745508000004080507050700590804184f7074696f6e0404540105070108104e6f6e6500000010536f6d650400050700000100005d08000002610800610800000408fd0691010065080c4470616c6c65745f706172616d65746572731870616c6c6574144576656e740404540001041c557064617465640c010c6b6579690801c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565750801ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565750801ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e047c54686520604576656e746020656e756d206f6620746869732070616c6c65746908084c6b69746368656e73696e6b5f72756e74696d655052756e74696d65506172616d65746572734b65790001081c53746f7261676504006d0801d9013c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72743a3a0a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000000245265666572656e64610400710801e1013c64796e616d69635f706172616d733a3a7265666572656e64613a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72740a3a3a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b6579000100006d08104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f7261676534506172616d65746572734b65790001082c426173654465706f73697404003507012c426173654465706f7369740000002c427974654465706f73697404003907012c427974654465706f736974000100007108104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e646134506172616d65746572734b657900010818547261636b73040041070118547261636b730000001c4f726967696e7304006507011c4f726967696e7300010000750804184f7074696f6e0404540179080108104e6f6e6500000010536f6d650400790800000100007908084c6b69746368656e73696e6b5f72756e74696d655852756e74696d65506172616d657465727356616c75650001081c53746f7261676504007d0801e1013c64796e616d69635f706172616d733a3a73746f726167653a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72743a3a0a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000000245265666572656e64610400810801e9013c64796e616d69635f706172616d733a3a7265666572656e64613a3a506172616d657465727320617320706f6c6b61646f745f73646b3a3a6672616d655f737570706f72740a3a3a7472616974733a3a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c7565000100007d08104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d731c73746f726167653c506172616d657465727356616c75650001082c426173654465706f736974040018011c42616c616e63650000002c427974654465706f736974040018011c42616c616e6365000100008108104c6b69746368656e73696e6b5f72756e74696d653864796e616d69635f706172616d73247265666572656e64613c506172616d657465727356616c756500010818547261636b7304004907013901426f756e6465645665633c70616c6c65745f7265666572656e64613a3a547261636b3c7531362c2042616c616e63652c20426c6f636b4e756d6265723e2c0a436f6e73745533323c3130303e2c3e0000001c4f726967696e7304006d0701b8426f756e6465645665633c284f726967696e43616c6c65722c20753136292c20436f6e73745533323c3130303e3e0001000085080c6c70616c6c65745f736b69705f6665656c6573735f7061796d656e741870616c6c6574144576656e7404045400010428466565536b69707065640401186f726967696e510201c03c543a3a52756e74696d654f726967696e206173204f726967696e54726169743e3a3a50616c6c6574734f726967696e0000047841207472616e73616374696f6e206665652077617320736b69707065642e047c54686520604576656e746020656e756d206f6620746869732070616c6c657489080c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c6574144576656e74040454000104504d69677261746564546f4e65774163636f756e740c011c706f6f6c5f69640d080124543a3a506f6f6c49640428506f6f6c27732049442e01347072696f725f6163636f756e74000130543a3a4163636f756e7449640460506f6f6c2773207072696f72206163636f756e742049442e012c6e65775f6163636f756e74000130543a3a4163636f756e7449640458506f6f6c2773206e6577206163636f756e742049442e0004f8496e646963617465732074686174206120706f6f6c20686173206265656e206d6967726174656420746f20746865206e6577206163636f756e742049442e047c54686520604576656e746020656e756d206f6620746869732070616c6c65748d080c3470616c6c65745f7265766976651870616c6c6574144576656e740404540001043c436f6e7472616374456d69747465640c0120636f6e74726163748107011048313630049054686520636f6e7472616374207468617420656d697474656420746865206576656e742e01106461746138011c5665633c75383e0835014461746120737570706c6965642062792074686520636f6e74726163742e204d657461646174612067656e65726174656420647572696e6720636f6e747261637420636f6d70696c6174696f6e5c6973206e656564656420746f206465636f64652069742e0118746f70696373210501245665633c483235363e08a441206c697374206f6620746f70696373207573656420746f20696e64657820746865206576656e742eec4e756d626572206f6620746f7069637320697320636170706564206279205b606c696d6974733a3a4e554d5f4556454e545f544f50494353605d2e00049c4120637573746f6d206576656e7420656d69747465642062792074686520636f6e74726163742e047c54686520604576656e746020656e756d206f6620746869732070616c6c657491080c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144576656e740404540001102444656c6567617465640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000047c46756e64732064656c65676174656420627920612064656c656761746f722e2052656c65617365640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0001047846756e64732072656c656173656420746f20612064656c656761746f722e1c536c61736865640c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002047c46756e647320736c61736865642066726f6d20612064656c656761746f722e484d6967726174656444656c65676174696f6e0c01146167656e74000130543a3a4163636f756e74496400012464656c656761746f72000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304c4556e636c61696d65642064656c65676174696f6e2066756e6473206d6967726174656420746f2064656c656761746f722e047c54686520604576656e746020656e756d206f6620746869732070616c6c657495080c5070616c6c65745f61737365745f726577617264731870616c6c6574144576656e74040454000120185374616b65640c01187374616b6572000130543a3a4163636f756e744964047c546865206163636f756e742074686174207374616b6564206173736574732e011c706f6f6c5f6964100118506f6f6c4964042454686520706f6f6c2e0118616d6f756e74180128543a3a42616c616e63650460546865207374616b656420617373657420616d6f756e742e0004a0416e206163636f756e74207374616b656420736f6d6520746f6b656e7320696e206120706f6f6c2e20556e7374616b656410011863616c6c6572000130543a3a4163636f756e7449640490546865206163636f756e742074686174207369676e6564207472616e73616374696f6e2e01187374616b6572000130543a3a4163636f756e7449640484546865206163636f756e74207468617420756e7374616b6564206173736574732e011c706f6f6c5f6964100118506f6f6c4964042454686520706f6f6c2e0118616d6f756e74180128543a3a42616c616e6365046854686520756e7374616b656420617373657420616d6f756e742e0104b0416e206163636f756e7420756e7374616b656420736f6d6520746f6b656e732066726f6d206120706f6f6c2e405265776172647348617276657374656410011863616c6c6572000130543a3a4163636f756e7449640490546865206163636f756e742074686174207369676e6564207472616e73616374696f6e2e01187374616b6572000130543a3a4163636f756e744964049c546865207374616b65722077686f7320726577617264732077657265206861727665737465642e011c706f6f6c5f6964100118506f6f6c4964042454686520706f6f6c2e0118616d6f756e74180128543a3a42616c616e6365047c54686520616d6f756e74206f662068617276657374656420746f6b656e732e020488416e206163636f756e742068617276657374656420736f6d6520726577617264732e2c506f6f6c437265617465641c011c63726561746f72000130543a3a4163636f756e7449640488546865206163636f756e74207468617420637265617465642074686520706f6f6c2e011c706f6f6c5f6964100118506f6f6c4964047c54686520756e6971756520494420666f7220746865206e657720706f6f6c2e013c7374616b65645f61737365745f6964a00128543a3a417373657449640448546865207374616b696e672061737365742e013c7265776172645f61737365745f6964a00128543a3a417373657449640444546865207265776172642061737365742e01547265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e6365048854686520696e697469616c2072657761726420726174652070657220626c6f636b2e01306578706972795f626c6f636b100144426c6f636b4e756d626572466f723c543e04d054686520626c6f636b2074686520706f6f6c2077696c6c20636561736520746f20616363756d756c61746520726577617264732e011461646d696e000130543a3a4163636f756e744964049c546865206163636f756e7420616c6c6f77656420746f206d6f646966792074686520706f6f6c2e03047841206e65772072657761726420706f6f6c2077617320637265617465642e58506f6f6c526577617264526174654d6f64696669656408011c706f6f6c5f6964100118506f6f6c49640448546865206d6f64696669656420706f6f6c2e01646e65775f7265776172645f726174655f7065725f626c6f636b180128543a3a42616c616e63650478546865206e65772072657761726420726174652070657220626c6f636b2e0404b44120706f6f6c20726577617264207261746520776173206d6f646966696564206279207468652061646d696e2e44506f6f6c41646d696e4d6f64696669656408011c706f6f6c5f6964100118506f6f6c49640448546865206d6f64696669656420706f6f6c2e01246e65775f61646d696e000130543a3a4163636f756e7449640438546865206e65772061646d696e2e0504684120706f6f6c2061646d696e20776173206d6f6469666965642e5c506f6f6c457870697279426c6f636b4d6f64696669656408011c706f6f6c5f6964100118506f6f6c49640448546865206d6f64696669656420706f6f6c2e01406e65775f6578706972795f626c6f636b100144426c6f636b4e756d626572466f723c543e0454546865206e65772065787069727920626c6f636b2e0604b84120706f6f6c2065787069727920626c6f636b20776173206d6f646966696564206279207468652061646d696e2e34506f6f6c436c65616e6564557004011c706f6f6c5f6964100118506f6f6c4964044454686520636c656172656420706f6f6c2e0704d44120706f6f6c20696e666f726d6174696f6e2077617320636c6561726564206166746572206974277320636f6d706c6574696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c657499080c5470616c6c65745f6173736574735f667265657a65721870616c6c6574144576656e740804540004490001081846726f7a656e0c010c77686f000130543a3a4163636f756e74496400012061737365745f6964100128543a3a41737365744964000118616d6f756e74180128543a3a42616c616e6365000000185468617765640c010c77686f000130543a3a4163636f756e74496400012061737365745f6964100128543a3a41737365744964000118616d6f756e74180128543a3a42616c616e6365000100047c54686520604576656e746020656e756d206f6620746869732070616c6c65749d080c3870616c6c65745f6d6574615f74781870616c6c6574144576656e740404540001042844697370617463686564040118726573756c74d90701684469737061746368526573756c7457697468506f7374496e666f0000109c41206d657461207472616e73616374696f6e20686173206265656e20646973706174636865642e003501436f6e7461696e732074686520646973706174636820726573756c74206f6620746865206d657461207472616e73616374696f6e20616c6f6e67207769746820706f73742d646973706174636830696e666f726d6174696f6e2e047c54686520604576656e746020656e756d206f6620746869732070616c6c6574a10808306672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e00020000a508000002750100a90808306672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e7102014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d65ad080144436f773c277374617469632c207374723e0000ad08040c436f7704045401b108000400b108000000b1080000050200b50808306672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c0000b9080c306672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c617373bd0801845065724469737061746368436c6173733c57656967687473506572436c6173733e0000bd080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c61737304045401c108000c01186e6f726d616cc10801045400012c6f7065726174696f6e616cc1080104540001246d616e6461746f7279c1080104540000c1080c306672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963e10701384f7074696f6e3c5765696768743e0001246d61785f746f74616ce10701384f7074696f6e3c5765696768743e0001207265736572766564e10701384f7074696f6e3c5765696768743e0000c5080c306672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178c90801545065724469737061746368436c6173733c7533323e0000c9080c346672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f7279100104540000cd08082873705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000d108082873705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d65ad080144436f773c277374617469632c207374723e000124696d706c5f6e616d65ad080144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973d508011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000d508040c436f7704045401d908000400d908000000d908000002dd0800dd08000004087d041000e1080c306672616d655f73797374656d1870616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e046c4572726f7220666f72207468652053797374656d2070616c6c6574e508102873705f72756e74696d651c67656e6572696314626c6f636b14426c6f636b0818486561646572016d022445787472696e73696301e908000801186865616465726d02011848656164657200012865787472696e73696373050901385665633c45787472696e7369633e0000e908102873705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730195021043616c6c013502245369676e617475726501ed0414457874726101ed0800040038000000ed080000042cf1089d07a107a507a907ad07b507f508f908b907010900f10810306672616d655f73797374656d28657874656e73696f6e7338617574686f72697a655f63616c6c34417574686f72697a6543616c6c04045400000000f50810306672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000f908088870616c6c65745f61737365745f636f6e76657273696f6e5f74785f7061796d656e7450436861726765417373657454785061796d656e74040454000008010c746970a102013042616c616e63654f663c543e00012061737365745f6964fd0801484f7074696f6e3c543a3a417373657449643e0000fd0804184f7074696f6e04045401a00108104e6f6e6500000010536f6d650400a00000010000010910306672616d655f73797374656d28657874656e73696f6e73387765696768745f7265636c61696d345765696768745265636c61696d040454000000000509000002e9080009090c3870616c6c65745f7574696c6974791870616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454011109045300000400150901185665633c543e000011090000040875023000150900000211090019090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401040453000004001d0901185665633c543e00001d090000020400210904184f7074696f6e0404540125090108104e6f6e6500000010536f6d6504002509000001000025090c4473705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400290901405072696d617279507265446967657374000100385365636f6e64617279506c61696e04003109015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400350901545365636f6e646172795652465072654469676573740003000029090c4473705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7479020110536c6f740001347672665f7369676e61747572652d0901305672665369676e617475726500002d09101c73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f661504012056726650726f6f66000031090c4473705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7479020110536c6f74000035090c4473705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7479020110536c6f740001347672665f7369676e61747572652d0901305672665369676e617475726500003909084473705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046385020128287536342c2075363429000134616c6c6f7765645f736c6f747389020130416c6c6f776564536c6f747300003d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014109045300000400450901185665633c543e0000410900000408301000450900000241090049090c2c70616c6c65745f626162651870616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d090000040c0018200051090c3870616c6c65745f696e64696365731870616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e55090c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454015909045300000400610901185665633c543e000059090c3c70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c010869647d0401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e735d09011c526561736f6e7300005d090c3c70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c00020000610900000259090065090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540169090453000004006d0901185665633c543e000069090c3c70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e746966696572017d041c42616c616e636501180008010869647d040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e636500006d0900000269090071090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017509045300000400b50901185665633c543e0000750914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e74080849640179091c42616c616e63650118000801086964790901084964000118616d6f756e7418011c42616c616e636500007909084c6b69746368656e73696e6b5f72756e74696d654452756e74696d65486f6c64526561736f6e0001381c5374616b696e6704007d09016870616c6c65745f7374616b696e673a3a486f6c64526561736f6e000b001c436f756e63696c0400810901ec70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400850901ec70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024436f6e74726163747304008909017070616c6c65745f636f6e7472616374733a3a486f6c64526561736f6e00150020507265696d61676504008d09016c70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0022000c4e697304009109015870616c6c65745f6e69733a3a486f6c64526561736f6e002d00504e66744672616374696f6e616c697a6174696f6e0400950901a070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a486f6c64526561736f6e003000485472616e73616374696f6e53746f7261676504009909019870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a486f6c64526561736f6e003300485374617465547269654d6967726174696f6e04009d09019c70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e00350038416c6c69616e63654d6f74696f6e0400a10901ec70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020536166654d6f64650400a509017070616c6c65745f736166655f6d6f64653a3a486f6c64526561736f6e004600185265766976650400a909016470616c6c65745f7265766976653a3a486f6c64526561736f6e0050004044656c6567617465645374616b696e670400ad09019070616c6c65745f64656c6567617465645f7374616b696e673a3a486f6c64526561736f6e005200304173736574526577617264730400b109018070616c6c65745f61737365745f726577617264733a3a486f6c64526561736f6e005300007d09103870616c6c65745f7374616b696e671870616c6c65741870616c6c657428486f6c64526561736f6e0001041c5374616b696e670000000081090c4470616c6c65745f636f6c6c6563746976651870616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e0000000085090c4470616c6c65745f636f6c6c6563746976651870616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e0000000089090c4070616c6c65745f636f6e7472616374731870616c6c657428486f6c64526561736f6e00010860436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f73697452657365727665000100008d090c3c70616c6c65745f707265696d6167651870616c6c657428486f6c64526561736f6e00010420507265696d6167650000000091090c2870616c6c65745f6e69731870616c6c657428486f6c64526561736f6e000104284e6674526563656970740000000095090c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c657428486f6c64526561736f6e000104384672616374696f6e616c697a65640000000099090c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c657428486f6c64526561736f6e0001043853746f72616765466565486f6c64000000009d090c6c70616c6c65745f73746174655f747269655f6d6967726174696f6e1870616c6c657428486f6c64526561736f6e0001043c536c617368466f724d69677261746500000000a1090c4470616c6c65745f636f6c6c6563746976651870616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e00000000a5090c4070616c6c65745f736166655f6d6f64651870616c6c657428486f6c64526561736f6e00010434456e7465724f72457874656e6400000000a9090c3470616c6c65745f7265766976651870616c6c657428486f6c64526561736f6e00010c60436f646555706c6f61644465706f736974526573657276650000005453746f726167654465706f7369745265736572766500010038416464726573734d617070696e6700020000ad090c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c657428486f6c64526561736f6e000104445374616b696e6744656c65676174696f6e00000000b1090c5070616c6c65745f61737365745f726577617264731870616c6c657428486f6c64526561736f6e00010430506f6f6c4372656174696f6e00000000b509000002750900b9090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401bd09045300000400cd0901185665633c543e0000bd0914346672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e740808496401c1091c42616c616e63650118000801086964c10901084964000118616d6f756e7418011c42616c616e63650000c109084c6b69746368656e73696e6b5f72756e74696d654c52756e74696d65467265657a65526561736f6e0001083c4e6f6d696e6174696f6e506f6f6c730400c509019470616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a467265657a65526561736f6e003e00304173736574526577617264730400c909018870616c6c65745f61737365745f726577617264733a3a467265657a65526561736f6e00530000c5090c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657430467265657a65526561736f6e00010438506f6f6c4d696e42616c616e636500000000c9090c5070616c6c65745f61737365745f726577617264731870616c6c657430467265657a65526561736f6e000104185374616b656400000000cd09000002bd0900d1090c3c70616c6c65745f62616c616e6365731870616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed509086870616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e7400000008563200010000d909089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365345265616479536f6c7574696f6e0c244163636f756e74496400284d617857696e6e657273004c4d61784261636b65727350657257696e6e657200000c0120737570706f727473dd0901ec426f756e646564537570706f7274733c4163636f756e7449642c204d617857696e6e6572732c204d61784261636b65727350657257696e6e65723e00011473636f7265b00134456c656374696f6e53636f726500011c636f6d70757465a8013c456c656374696f6e436f6d707574650000dd09087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f72743c426f756e646564537570706f7274730c244163636f756e744964010018424f75746572001842496e6e657200000400e109010901426f756e6465645665633c284163636f756e7449642c20426f756e646564537570706f72743c4163636f756e7449642c2042496e6e65723e292c20424f757465723e0000e1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e509045300000400f10901185665633c543e0000e5090000040800e90900e909087c6672616d655f656c656374696f6e5f70726f76696465725f737570706f727438426f756e646564537570706f727408244163636f756e744964010014426f756e640000080114746f74616c18013c457874656e64656442616c616e6365000118766f74657273ed0901bc426f756e6465645665633c284163636f756e7449642c20457874656e64656442616c616e6365292c20426f756e643e0000ed090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010101045300000400fc01185665633c543e0000f109000002e50900f509089070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f706861736534526f756e64536e617073686f7408244163636f756e744964010024566f7465725479706501f90900080118766f74657273010a01385665633c566f746572547970653e00011c746172676574735d0101385665633c4163636f756e7449643e0000f9090000040c0030fd0900fd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000010a000002f90900050a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401090a0453000004000d0a01185665633c543e0000090a0000040cb01010000d0a000002090a00110a0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f7068617365187369676e6564405369676e65645375626d697373696f6e0c244163636f756e74496401001c42616c616e6365011820536f6c7574696f6e01b1020010010c77686f0001244163636f756e74496400011c6465706f73697418011c42616c616e63650001307261775f736f6c7574696f6ead020154526177536f6c7574696f6e3c536f6c7574696f6e3e00012063616c6c5f66656518011c42616c616e63650000150a0c9070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173651870616c6c6574144572726f7204045400013c6850726544697370617463684561726c795375626d697373696f6e000004645375626d697373696f6e2077617320746f6f206561726c792e6c507265446973706174636857726f6e6757696e6e6572436f756e740001048857726f6e67206e756d626572206f662077696e6e6572732070726573656e7465642e6450726544697370617463685765616b5375626d697373696f6e000204905375626d697373696f6e2077617320746f6f207765616b2c2073636f72652d776973652e3c5369676e6564517565756546756c6c0003044901546865207175657565207761732066756c6c2c20616e642074686520736f6c7574696f6e20776173206e6f7420626574746572207468616e20616e79206f6620746865206578697374696e67206f6e65732e585369676e656443616e6e6f745061794465706f73697400040494546865206f726967696e206661696c656420746f2070617920746865206465706f7369742e505369676e6564496e76616c69645769746e657373000504a05769746e657373206461746120746f20646973706174636861626c6520697320696e76616c69642e4c5369676e6564546f6f4d756368576569676874000604b8546865207369676e6564207375626d697373696f6e20636f6e73756d657320746f6f206d756368207765696768743c4f637743616c6c57726f6e67457261000704984f4357207375626d697474656420736f6c7574696f6e20666f722077726f6e6720726f756e645c4d697373696e67536e617073686f744d65746164617461000804a8536e617073686f74206d657461646174612073686f756c6420657869737420627574206469646e27742e58496e76616c69645375626d697373696f6e496e646578000904d06053656c663a3a696e736572745f7375626d697373696f6e602072657475726e656420616e20696e76616c696420696e6465782e3843616c6c4e6f74416c6c6f776564000a04985468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742e3846616c6c6261636b4661696c6564000b044c5468652066616c6c6261636b206661696c65642c426f756e644e6f744d6574000c0448536f6d6520626f756e64206e6f74206d657438546f6f4d616e7957696e6e657273000d049c5375626d697474656420736f6c7574696f6e2068617320746f6f206d616e792077696e6e657273645072654469737061746368446966666572656e74526f756e64000e04b85375626d697373696f6e2077617320707265706172656420666f72206120646966666572656e7420726f756e642e040d014572726f72206f66207468652070616c6c657420746861742063616e2062652072657475726e656420696e20726573706f6e736520746f20646973706174636865732e190a083870616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616ca102013042616c616e63654f663c543e000118616374697665a102013042616c616e63654f663c543e000124756e6c6f636b696e67b90301f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f726577617264731d0a0194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e00001d0a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e0000210a083870616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473fd0901b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c0000250a083870616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e6465780001147374617274290a012c4f7074696f6e3c7536343e0000290a04184f7074696f6e04045401300108104e6f6e6500000010536f6d6504003000000100002d0a00000408100000310a082873705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616ca102011c42616c616e636500010c6f776ea102011c42616c616e63650001186f7468657273350a01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000350a000002390a00390a082873705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c7565a102011c42616c616e636500003d0a082873705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616ca102011c42616c616e636500010c6f776ea102011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000410a0000040c10001000450a082873705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616ca102011c42616c616e63650001186f7468657273350a01ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000490a083870616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616c4d0a018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e00004d0a042042547265654d617008044b010004560110000400510a000000510a000002550a00550a00000408001000590a0000025d0a005d0a083870616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273fc01645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572735d0101385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000610a00000408c41800650a0c3870616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72c90101345665633c457261496e6465783e0000690a0c3870616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e636500006d0a103870616c6c65745f7374616b696e671870616c6c65741870616c6c6574144572726f72040454000188344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001f04f4537461736820636f756c64206e6f7420626520726561706564206173206f746865722070616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d696772617465640020040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e285265737472696374656400210859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e710a000002750a00750a0000040800c90300790a0000027d0a007d0a0000040810810a00810a0c2873705f7374616b696e671c6f6666656e63653c4f6666656e6365536576657269747900000400c4011c50657262696c6c0000850a00000408890a3800890a0c1c73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d00008d0a0c3870616c6c65745f73657373696f6e1870616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04744572726f7220666f72207468652073657373696f6e2070616c6c65742e910a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401950a045300000400990a01185665633c543e0000950a0000040c1031020000990a000002950a009d0a00000408a10a1800a10a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000a50a0c4070616c6c65745f64656d6f6372616379147479706573385265666572656e64756d496e666f0c2c426c6f636b4e756d62657201102050726f706f73616c0131021c42616c616e6365011801081c4f6e676f696e670400a90a01c05265666572656e64756d5374617475733c426c6f636b4e756d6265722c2050726f706f73616c2c2042616c616e63653e0000002046696e6973686564080120617070726f766564200110626f6f6c00010c656e6410012c426c6f636b4e756d62657200010000a90a0c4070616c6c65745f64656d6f6372616379147479706573405265666572656e64756d5374617475730c2c426c6f636b4e756d62657201102050726f706f73616c0131021c42616c616e636501180014010c656e6410012c426c6f636b4e756d62657200012070726f706f73616c3102012050726f706f73616c0001247468726573686f6c64e00134566f74655468726573686f6c6400011464656c617910012c426c6f636b4e756d62657200011474616c6c79ad0a013854616c6c793c42616c616e63653e0000ad0a0c4070616c6c65745f64656d6f63726163791474797065731454616c6c79041c42616c616e63650118000c01106179657318011c42616c616e63650001106e61797318011c42616c616e636500011c7475726e6f757418011c42616c616e63650000b10a0c4070616c6c65745f64656d6f637261637910766f746518566f74696e67101c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d6265720110204d6178566f746573000108184469726563740c0114766f746573b50a01f4426f756e6465645665633c285265666572656e64756d496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73c10a015044656c65676174696f6e733c42616c616e63653e0001147072696f72c50a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000002844656c65676174696e6714011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ee1030128436f6e76696374696f6e00012c64656c65676174696f6e73c10a015044656c65676174696f6e733c42616c616e63653e0001147072696f72c50a017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00010000b50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b90a045300000400bd0a01185665633c543e0000b90a0000040810e400bd0a000002b90a00c10a0c4070616c6c65745f64656d6f63726163791474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000c50a0c4070616c6c65745f64656d6f637261637910766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000c90a000004083102e000cd0a0000040810a10a00d10a0c4070616c6c65745f64656d6f63726163791870616c6c6574144572726f720404540001602056616c75654c6f770000043456616c756520746f6f206c6f773c50726f706f73616c4d697373696e670001045c50726f706f73616c20646f6573206e6f742065786973743c416c726561647943616e63656c65640002049443616e6e6f742063616e63656c207468652073616d652070726f706f73616c207477696365444475706c696361746550726f706f73616c0003045450726f706f73616c20616c7265616479206d6164654c50726f706f73616c426c61636b6c69737465640004046850726f706f73616c207374696c6c20626c61636b6c6973746564444e6f7453696d706c654d616a6f72697479000504a84e6578742065787465726e616c2070726f706f73616c206e6f742073696d706c65206d616a6f726974792c496e76616c69644861736800060430496e76616c69642068617368284e6f50726f706f73616c000704504e6f2065787465726e616c2070726f706f73616c34416c72656164795665746f6564000804984964656e74697479206d6179206e6f74207665746f20612070726f706f73616c207477696365445265666572656e64756d496e76616c696400090484566f746520676976656e20666f7220696e76616c6964207265666572656e64756d2c4e6f6e6557616974696e67000a04504e6f2070726f706f73616c732077616974696e67204e6f74566f746572000b04c454686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e20746865207265666572656e64756d2e304e6f5065726d697373696f6e000c04c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e44416c726561647944656c65676174696e67000d0488546865206163636f756e7420697320616c72656164792064656c65676174696e672e44496e73756666696369656e7446756e6473000e04fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000f04a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e28566f74657345786973740010085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ce87468657365206172652072656d6f7665642c20656974686572207468726f7567682060756e766f746560206f722060726561705f766f7465602e44496e7374616e744e6f74416c6c6f776564001104d854686520696e7374616e74207265666572656e64756d206f726967696e2069732063757272656e746c7920646973616c6c6f7765642e204e6f6e73656e73650012049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c57726f6e675570706572426f756e6400130450496e76616c696420757070657220626f756e642e3c4d6178566f74657352656163686564001404804d6178696d756d206e756d626572206f6620766f74657320726561636865642e1c546f6f4d616e79001504804d6178696d756d206e756d626572206f66206974656d7320726561636865642e3c566f74696e67506572696f644c6f7700160454566f74696e6720706572696f6420746f6f206c6f7740507265696d6167654e6f7445786973740017047054686520707265696d61676520646f6573206e6f742065786973742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed50a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400210501185665633c543e0000d90a0000040800dd0a00dd0a14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000e10a084470616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965735d0101385665633c4163636f756e7449643e0001106e6179735d0101385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d6265720000e50a0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee90a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400210501185665633c543e0000ed0a0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10a000002f50a00f50a086470616c6c65745f656c656374696f6e735f70687261676d656e2853656174486f6c64657208244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000f90a086470616c6c65745f656c656374696f6e735f70687261676d656e14566f74657208244163636f756e74496401001c42616c616e63650118000c0114766f7465735d0101385665633c4163636f756e7449643e0001147374616b6518011c42616c616e636500011c6465706f73697418011c42616c616e63650000fd0a0c6470616c6c65745f656c656374696f6e735f70687261676d656e1870616c6c6574144572726f7204045400014430556e61626c65546f566f7465000004c043616e6e6f7420766f7465207768656e206e6f2063616e64696461746573206f72206d656d626572732065786973742e1c4e6f566f746573000104944d75737420766f746520666f72206174206c65617374206f6e652063616e6469646174652e30546f6f4d616e79566f7465730002048443616e6e6f7420766f7465206d6f7265207468616e2063616e646964617465732e504d6178696d756d566f74657345786365656465640003049843616e6e6f7420766f7465206d6f7265207468616e206d6178696d756d20616c6c6f7765642e284c6f7742616c616e6365000404c443616e6e6f7420766f74652077697468207374616b65206c657373207468616e206d696e696d756d2062616c616e63652e3c556e61626c65546f506179426f6e6400050478566f7465722063616e206e6f742070617920766f74696e6720626f6e642e2c4d7573744265566f746572000604404d757374206265206120766f7465722e4c4475706c69636174656443616e646964617465000704804475706c6963617465642063616e646964617465207375626d697373696f6e2e44546f6f4d616e7943616e6469646174657300080498546f6f206d616e792063616e646964617465732068617665206265656e20637265617465642e304d656d6265725375626d6974000904884d656d6265722063616e6e6f742072652d7375626d69742063616e6469646163792e3852756e6e657255705375626d6974000a048852756e6e65722063616e6e6f742072652d7375626d69742063616e6469646163792e68496e73756666696369656e7443616e64696461746546756e6473000b049443616e64696461746520646f6573206e6f74206861766520656e6f7567682066756e64732e244e6f744d656d626572000c04344e6f742061206d656d6265722e48496e76616c69645769746e65737344617461000d04e05468652070726f766964656420636f756e74206f66206e756d626572206f662063616e6469646174657320697320696e636f72726563742e40496e76616c6964566f7465436f756e74000e04cc5468652070726f766964656420636f756e74206f66206e756d626572206f6620766f74657320697320696e636f72726563742e44496e76616c696452656e6f756e63696e67000f04fc5468652072656e6f756e63696e67206f726967696e2070726573656e74656420612077726f6e67206052656e6f756e63696e676020706172616d657465722e48496e76616c69645265706c6163656d656e74001004fc50726564696374696f6e20726567617264696e67207265706c6163656d656e74206166746572206d656d6265722072656d6f76616c2069732077726f6e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e010b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000050b0c4470616c6c65745f6d656d626572736869701870616c6c6574144572726f7208045400044900010c34416c72656164794d656d62657200000444416c72656164792061206d656d6265722e244e6f744d656d626572000104344e6f742061206d656d6265722e38546f6f4d616e794d656d6265727300020444546f6f206d616e79206d656d626572732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090b083870616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e000300000d0b083870616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573110b016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564c801244f7074696f6e3c4e3e0000110b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e6465645665630804540111010453000004000d0101185665633c543e0000150b0c3870616c6c65745f6772616e6470611870616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190b083c70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e636500001d0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e0000210b083c70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401a030417373657442616c616e636501182c42656e656669636961727901002c426c6f636b4e756d6265720110245061796d656e74496401880018012861737365745f6b696e64a0012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e656669636961727900012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d626572000118737461747573250b015c5061796d656e7453746174653c5061796d656e7449643e0000250b083c70616c6c65745f7472656173757279305061796d656e745374617465040849640188010c1c50656e64696e6700000024417474656d7074656404010869648801084964000100184661696c656400020000290b08346672616d655f737570706f72742050616c6c65744964000004007d04011c5b75383b20385d00002d0b0c3c70616c6c65745f74726561737572791870616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04784572726f7220666f72207468652074726561737572792070616c6c65742e310b0c4470616c6c65745f61737365745f726174651870616c6c6574144572726f7204045400010c40556e6b6e6f776e41737365744b696e640000047854686520676976656e20617373657420494420697320756e6b6e6f776e2e34416c7265616479457869737473000104510154686520676976656e20617373657420494420616c72656164792068617320616e2061737369676e656420636f6e76657273696f6e207261746520616e642063616e6e6f742062652072652d637265617465642e204f766572666c6f77000204cc4f766572666c6f77206f637572726564207768656e2063616c63756c6174696e672074686520696e766572736520726174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e350b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000390b0c4070616c6c65745f636f6e747261637473107761736d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f736974a102013042616c616e63654f663c543e000120726566636f756e742c010c75363400012c64657465726d696e69736d3904012c44657465726d696e69736d000120636f64655f6c656e10010c75333200003d0b0c4070616c6c65745f636f6e7472616374731c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f6964c5010118547269654964000124636f64655f6861736834012c436f6465486173683c543e00013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e00015464656c65676174655f646570656e64656e63696573410b011d01426f756e64656442547265654d61703c436f6465486173683c543e2c2042616c616e63654f663c543e2c20543a3a0a4d617844656c6567617465446570656e64656e636965733e0000410b0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b013404560118045300000400450b013842547265654d61703c4b2c20563e0000450b042042547265654d617008044b013404560118000400490b000000490b0000024d0b004d0b00000408341800510b0c4070616c6c65745f636f6e7472616374731c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c7533320000550b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000590b0c4070616c6c65745f636f6e747261637473207363686564756c65205363686564756c6504045400000801186c696d6974735d0b01184c696d69747300014c696e737472756374696f6e5f77656967687473610b0154496e737472756374696f6e576569676874733c543e00005d0b0c4070616c6c65745f636f6e747261637473207363686564756c65184c696d69747300001c01306576656e745f746f7069637310010c7533320001306d656d6f72795f706167657310010c75333200012c7375626a6563745f6c656e10010c75333200012c7061796c6f61645f6c656e10010c75333200013872756e74696d655f6d656d6f727910010c75333200016076616c696461746f725f72756e74696d655f6d656d6f727910010c7533320001386576656e745f7265665f74696d6530010c7536340000610b0c4070616c6c65745f636f6e747261637473207363686564756c6548496e737472756374696f6e5765696768747304045400000401106261736510010c7533320000650b084070616c6c65745f636f6e7472616374732c456e7669726f6e6d656e7404045400001801286163636f756e745f6964690b017c456e7669726f6e6d656e74547970653c4163636f756e7449644f663c543e3e00011c62616c616e63656d0b0174456e7669726f6e6d656e74547970653c42616c616e63654f663c543e3e00011068617368710b01c8456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a486173683e000118686173686572750b01d4456e7669726f6e6d656e74547970653c3c54206173206672616d655f73797374656d3a3a436f6e6669673e3a3a48617368696e673e00012474696d657374616d70790b0170456e7669726f6e6d656e74547970653c4d6f6d656e744f663c543e3e000130626c6f636b5f6e756d6265727d0b0188456e7669726f6e6d656e74547970653c426c6f636b4e756d626572466f723c543e3e0000690b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401000000006d0b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540118000000710b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540134000000750b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401c107000000790b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e745479706504045401300000007d0b084070616c6c65745f636f6e7472616374733c456e7669726f6e6d656e74547970650404540110000000810b084070616c6c65745f636f6e7472616374732841706956657273696f6e000004009101010c7531360000850b0c4070616c6c65745f636f6e7472616374731870616c6c6574144572726f720404540001943c496e76616c69645363686564756c650000041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730001043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000204b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e504f7574707574427566666572546f6f536d616c6c0003040101546865206f75747075742062756666657220737570706c69656420746f206120636f6e7472616374204150492063616c6c2077617320746f6f20736d616c6c2e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f6465546f6f4c617267650007083d0154686520636f646520737570706c69656420746f2060696e7374616e74696174655f776974685f636f646560206578636565647320746865206c696d69742073706563696669656420696e207468654463757272656e74207363686564756c652e30436f64654e6f74466f756e64000804c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000904d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e6473000a0425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000b042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000c0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000d04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000e0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000f044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e5052616e646f6d5375626a656374546f6f4c6f6e67001004d8546865207375626a6563742070617373656420746f20607365616c5f72616e646f6d60206578636565647320746865206c696d69742e34546f6f4d616e79546f706963730011041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e404e6f436861696e457874656e73696f6e00120c450154686520636861696e20646f6573206e6f742070726f76696465206120636861696e20657874656e73696f6e2e2043616c6c696e672074686520636861696e20657874656e73696f6e20726573756c74734d01696e2074686973206572726f722e204e6f74652074686174207468697320757375616c6c79202073686f756c646e27742068617070656e206173206465706c6f79696e67207375636820636f6e7472616374733069732072656a65637465642e3c58434d4465636f64654661696c6564001304844661696c656420746f206465636f6465207468652058434d2070726f6772616d2e444475706c6963617465436f6e7472616374001404c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200150cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640016100d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e5d01546865206f6e6c79206f74686572206361757365206973207468617420612063616c6c2066726f6d206120636f6e747261637420696e746f207468652072756e74696d6520747269656420746f2063616c6c206261636b4901696e746f206070616c6c65742d636f6e747261637473602e205468697320776f756c64206d616b65207468652077686f6c652070616c6c6574207265656e7472616e7420776974682072656761726420746fbc636f6e747261637420636f646520657865637574696f6e207768696368206973206e6f7420737570706f727465642e4453746174654368616e676544656e6965640017044d014120636f6e747261637420617474656d7074656420746f20696e766f6b652061207374617465206d6f64696679696e6720415049207768696c65206265696e6720696e20726561642d6f6e6c79206d6f64652e7053746f726167654465706f7369744e6f74456e6f75676846756e647300180421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640019040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e557365001a044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001b10250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001c20f854686520636f6e7472616374277320636f64652077617320666f756e6420746f20626520696e76616c696420647572696e672076616c69646174696f6e2e004d01546865206d6f7374206c696b656c79206361757365206f662074686973206973207468617420616e20415049207761732075736564207768696368206973206e6f7420737570706f727465642062792074686551016e6f64652e20546869732068617070656e7320696620616e206f6c646572206e6f6465206973207573656420776974682061206e65772076657273696f6e206f6620696e6b212e20547279207570646174696e67a8796f7572206e6f646520746f20746865206e657765737420617661696c61626c652076657273696f6e2e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c6564a8627920737570706c79696e6720602d6c72756e74696d653a3a636f6e7472616374733d6465627567602e3c496e64657465726d696e6973746963001d042901416e20696e64657465726d696e697374696320636f646520776173207573656420696e206120636f6e746578742077686572652074686973206973206e6f74207065726d69747465642e4c4d6967726174696f6e496e50726f6772657373001e042501412070656e64696e67206d6967726174696f6e206e6565647320746f20636f6d706c657465206265666f7265207468652065787472696e7369632063616e2062652063616c6c65642e504e6f4d6967726174696f6e506572666f726d6564001f040d014d6967726174652064697370617463682063616c6c2077617320617474656d7074656420627574206e6f206d6967726174696f6e2077617320706572666f726d65642e784d617844656c6567617465446570656e64656e6369657352656163686564002004150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64002104150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002204f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002304290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e544f75744f665472616e7369656e7453746f72616765002404ac43616e206e6f7420616464206d6f7265206461746120746f207472616e7369656e742073746f726167652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e890b0c2c70616c6c65745f7375646f1870616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04684572726f7220666f7220746865205375646f2070616c6c65742e8d0b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454013901045300000400910b01185665633c543e0000910b000002390100950b0c4070616c6c65745f696d5f6f6e6c696e651870616c6c6574144572726f7204045400010828496e76616c69644b6579000004604e6f6e206578697374656e74207075626c6963206b65792e4c4475706c696361746564486561727462656174000104544475706c696361746564206865617274626561742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990b0c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401cd030453000004009d0b01185665633c543e00009d0b000002cd0300a10b0c2873705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e646572014101000801206f6666656e646572410101204f6666656e6465720001247265706f72746572735d0101345665633c5265706f727465723e0000a50b0000040849013800a90b00000408341000ad0b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400210501185665633c543e0000b10b0c3c70616c6c65745f6964656e7469747914747970657330526567697374726174696f6e0c1c42616c616e63650118344d61784a756467656d656e747300304964656e74697479496e666f015104000c01286a756467656d656e7473b50b01fc426f756e6465645665633c28526567697374726172496e6465782c204a756467656d656e743c42616c616e63653e292c204d61784a756467656d656e74733e00011c6465706f73697418011c42616c616e6365000110696e666f510401304964656e74697479496e666f0000b50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b90b045300000400bd0b01185665633c543e0000b90b0000040810e50400bd0b000002b90b00c10b0000040818c50b00c50b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000c90b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401cd0b045300000400d50b01185665633c543e0000cd0b04184f7074696f6e04045401d10b0108104e6f6e6500000010536f6d650400d10b0000010000d10b0c3c70616c6c65745f6964656e7469747914747970657334526567697374726172496e666f0c1c42616c616e63650118244163636f756e74496401001c49644669656c640130000c011c6163636f756e740001244163636f756e74496400010c66656518011c42616c616e63650001186669656c647330011c49644669656c640000d50b000002cd0b00d90b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000dd0b0c3c70616c6c65745f6964656e746974791474797065734c417574686f7269747950726f70657274696573041c4163636f756e740100000801286163636f756e745f696400011c4163636f756e74000128616c6c6f636174696f6e100128416c6c6f636174696f6e0000e10b0c3c70616c6c65745f6964656e746974791474797065734c557365726e616d65496e666f726d6174696f6e081c4163636f756e7401001c42616c616e63650118000801146f776e657200011c4163636f756e7400012070726f7669646572e50b014450726f76696465723c42616c616e63653e0000e50b0c3c70616c6c65745f6964656e746974791474797065732050726f7669646572041c42616c616e63650118010c28416c6c6f636174696f6e00000040417574686f726974794465706f736974040018011c42616c616e63650001001853797374656d00020000e90b0000040c0010e50b00ed0b0c3c70616c6c65745f6964656e746974791870616c6c6574144572726f7204045400017848546f6f4d616e795375624163636f756e74730000045c546f6f206d616e7920737562732d6163636f756e74732e204e6f74466f756e64000104504163636f756e742069736e277420666f756e642e204e6f744e616d6564000204504163636f756e742069736e2774206e616d65642e28456d707479496e64657800030430456d70747920696e6465782e284665654368616e6765640004043c466565206973206368616e6765642e284e6f4964656e74697479000504484e6f206964656e7469747920666f756e642e3c537469636b794a756467656d656e7400060444537469636b79206a756467656d656e742e384a756467656d656e74476976656e000704404a756467656d656e7420676976656e2e40496e76616c69644a756467656d656e7400080448496e76616c6964206a756467656d656e742e30496e76616c6964496e6465780009045454686520696e64657820697320696e76616c69642e34496e76616c6964546172676574000a04585468652074617267657420697320696e76616c69642e44546f6f4d616e7952656769737472617273000b04e84d6178696d756d20616d6f756e74206f66207265676973747261727320726561636865642e2043616e6e6f742061646420616e79206d6f72652e38416c7265616479436c61696d6564000c04704163636f756e7420494420697320616c7265616479206e616d65642e184e6f74537562000d047053656e646572206973206e6f742061207375622d6163636f756e742e204e6f744f776e6564000e04885375622d6163636f756e742069736e2774206f776e65642062792073656e6465722e744a756467656d656e74466f72446966666572656e744964656e74697479000f04d05468652070726f7669646564206a756467656d656e742077617320666f72206120646966666572656e74206964656e746974792e584a756467656d656e745061796d656e744661696c6564001004f84572726f722074686174206f6363757273207768656e20746865726520697320616e20697373756520706179696e6720666f72206a756467656d656e742e34496e76616c6964537566666978001104805468652070726f76696465642073756666697820697320746f6f206c6f6e672e504e6f74557365726e616d65417574686f72697479001204e05468652073656e64657220646f6573206e6f742068617665207065726d697373696f6e20746f206973737565206120757365726e616d652e304e6f416c6c6f636174696f6e001304c454686520617574686f726974792063616e6e6f7420616c6c6f6361746520616e79206d6f726520757365726e616d65732e40496e76616c69645369676e6174757265001404a8546865207369676e6174757265206f6e206120757365726e616d6520776173206e6f742076616c69642e4452657175697265735369676e6174757265001504090153657474696e67207468697320757365726e616d652072657175697265732061207369676e61747572652c20627574206e6f6e65207761732070726f76696465642e3c496e76616c6964557365726e616d65001604b054686520757365726e616d6520646f6573206e6f74206d6565742074686520726571756972656d656e74732e34557365726e616d6554616b656e0017047854686520757365726e616d6520697320616c72656164792074616b656e2e284e6f557365726e616d65001804985468652072657175657374656420757365726e616d6520646f6573206e6f742065786973742e284e6f74457870697265640019042d0154686520757365726e616d652063616e6e6f7420626520666f72636566756c6c792072656d6f76656420626563617573652069742063616e207374696c6c2062652061636365707465642e20546f6f4561726c79001a04190154686520757365726e616d652063616e6e6f742062652072656d6f76656420626563617573652069742773207374696c6c20696e2074686520677261636520706572696f642e304e6f74556e62696e64696e67001b04ec54686520757365726e616d652063616e6e6f742062652072656d6f7665642062656361757365206974206973206e6f7420756e62696e64696e672e40416c7265616479556e62696e64696e67001c04fc54686520757365726e616d652063616e6e6f7420626520756e626f756e64206265636175736520697420697320616c726561647920756e62696e64696e672e58496e73756666696369656e7450726976696c65676573001d08450154686520616374696f6e2063616e6e6f7420626520706572666f726d65642062656361757365206f6620696e73756666696369656e742070726976696c656765732028652e672e20617574686f72697479d0747279696e6720746f20756e62696e64206120757365726e616d652070726f7669646564206279207468652073797374656d292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10b083870616c6c65745f736f6369657479304d656d6265725265636f7264000010011072616e6b10011052616e6b00011c737472696b657310012c537472696b65436f756e74000120766f756368696e67f50b01584f7074696f6e3c566f756368696e675374617475733e000114696e64657810010c7533320000f50b04184f7074696f6e04045401f90b0108104e6f6e6500000010536f6d650400f90b0000010000f90b083870616c6c65745f736f636965747938566f756368696e6753746174757300010820566f756368696e670000001842616e6e656400010000fd0b083870616c6c65745f736f6369657479305061796f75745265636f7264081c42616c616e63650118285061796f75747356656301010c000801107061696418011c42616c616e636500011c7061796f757473010c01285061796f7574735665630000010c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401050c045300000400090c01185665633c543e0000050c00000408101800090c000002050c000d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401110c045300000400190c01185665633c543e0000110c083870616c6c65745f736f63696574790c42696408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e7449640001106b696e64150c016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00011476616c756518011c42616c616e63650000150c083870616c6c65745f736f63696574791c4269644b696e6408244163636f756e74496401001c42616c616e6365011801081c4465706f736974040018011c42616c616e636500000014566f75636808000001244163636f756e744964000018011c42616c616e636500010000190c000002110c001d0c083870616c6c65745f736f63696574792443616e64696461637908244163636f756e74496401001c42616c616e6365011800140114726f756e64100128526f756e64496e6465780001106b696e64150c016c4269644b696e643c4163636f756e7449642c2042616c616e63653e00010c62696418011c42616c616e636500011474616c6c79210c011454616c6c79000138736b65707469635f73747275636b200110626f6f6c0000210c083870616c6c65745f736f63696574791454616c6c790000080124617070726f76616c73100124566f7465436f756e7400012872656a656374696f6e73100124566f7465436f756e740000250c00000408000000290c083870616c6c65745f736f636965747910566f7465000008011c617070726f7665200110626f6f6c00011877656967687410010c75333200002d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000310c083870616c6c65745f736f636965747930496e74616b655265636f726408244163636f756e74496401001c42616c616e63650118000c010c77686f0001244163636f756e74496400010c62696418011c42616c616e6365000114726f756e64100128526f756e64496e6465780000350c0000040c0000210c00390c0c3870616c6c65745f736f63696574791870616c6c6574144572726f72080454000449000184244e6f744d656d6265720000045455736572206973206e6f742061206d656d6265722e34416c72656164794d656d626572000104645573657220697320616c72656164792061206d656d6265722e2453757370656e64656400020448557365722069732073757370656e6465642e304e6f7453757370656e6465640003045855736572206973206e6f742073757370656e6465642e204e6f5061796f7574000404484e6f7468696e6720746f207061796f75742e38416c7265616479466f756e64656400050460536f636965747920616c726561647920666f756e6465642e3c496e73756666696369656e74506f74000604984e6f7420656e6f75676820696e20706f7420746f206163636570742063616e6469646174652e3c416c7265616479566f756368696e67000704e44d656d62657220697320616c726561647920766f756368696e67206f722062616e6e65642066726f6d20766f756368696e6720616761696e2e4c4e6f74566f756368696e674f6e4269646465720008045c4d656d626572206973206e6f7420766f756368696e672e10486561640009049043616e6e6f742072656d6f7665207468652068656164206f662074686520636861696e2e1c466f756e646572000a046843616e6e6f742072656d6f76652074686520666f756e6465722e28416c7265616479426964000b0470557365722068617320616c7265616479206d6164652061206269642e40416c726561647943616e646964617465000c04705573657220697320616c726561647920612063616e6469646174652e304e6f7443616e646964617465000d046055736572206973206e6f7420612063616e6469646174652e284d61784d656d62657273000e0480546f6f206d616e79206d656d6265727320696e2074686520736f63696574792e284e6f74466f756e646572000f04785468652063616c6c6572206973206e6f742074686520666f756e6465722e1c4e6f74486561640010046c5468652063616c6c6572206973206e6f742074686520686561642e2c4e6f74417070726f7665640011042d01546865206d656d626572736869702063616e6e6f7420626520636c61696d6564206173207468652063616e64696461746520776173206e6f7420636c6561726c7920617070726f7665642e2c4e6f7452656a656374656400120425015468652063616e6469646174652063616e6e6f74206265206b69636b6564206173207468652063616e64696461746520776173206e6f7420636c6561726c792072656a65637465642e20417070726f76656400130419015468652063616e6469646163792063616e6e6f742062652064726f70706564206173207468652063616e6469646174652077617320636c6561726c7920617070726f7665642e2052656a65637465640014041d015468652063616e6469646163792063616e6e6f7420626520626573746f776564206173207468652063616e6469646174652077617320636c6561726c792072656a65637465642e28496e50726f677265737300150415015468652063616e6469646163792063616e6e6f7420626520636f6e636c756465642061732074686520766f74696e67206973207374696c6c20696e2070726f67726573732e20546f6f4561726c7900160441015468652063616e6469646163792063616e6e6f74206265207072756e656420756e74696c20612066756c6c206164646974696f6e616c20696e74616b6520706572696f6420686173207061737365642e14566f7465640017046854686520736b657074696320616c726561647920766f7465642e1c45787069726564001804f054686520736b6570746963206e656564206e6f7420766f7465206f6e2063616e646964617465732066726f6d206578706972656420726f756e64732e244e6f744269646465720019045455736572206973206e6f742061206269646465722e284e6f446566656e646572001a047c5468657265206973206e6f20646566656e6465722063757272656e746c792e204e6f7447726f7570001b045047726f757020646f65736e27742065786973742e3c416c7265616479456c657661746564001c04b0546865206d656d62657220697320616c726561647920656c65766174656420746f20746869732072616e6b2e3c416c726561647950756e6973686564001d04dc54686520736b65707469632068617320616c7265616479206265656e2070756e697368656420666f722074686973206f6666656e63652e44496e73756666696369656e7446756e6473001e04c046756e64732061726520696e73756666696369656e7420746f20706179206f666620736f63696574792064656274732e1c4e6f566f746573001f04d05468652063616e6469646174652f646566656e64657220686173206e6f207374616c6520766f74657320746f2072656d6f76652e244e6f4465706f736974002004a85468657265206973206e6f206465706f736974206173736f63696174656420776974682061206269642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e3d0c083c70616c6c65745f7265636f76657279385265636f76657279436f6e6669670c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301410c0010013064656c61795f706572696f6410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473410c011c467269656e64730001247468726573686f6c649101010c7531360000410c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000450c083c70616c6c65745f7265636f76657279384163746976655265636f766572790c2c426c6f636b4e756d62657201101c42616c616e636501181c467269656e647301410c000c011c6372656174656410012c426c6f636b4e756d62657200011c6465706f73697418011c42616c616e636500011c667269656e6473410c011c467269656e64730000490c0c3c70616c6c65745f7265636f766572791870616c6c6574144572726f72040454000140284e6f74416c6c6f776564000004f055736572206973206e6f7420616c6c6f77656420746f206d616b6520612063616c6c206f6e20626568616c66206f662074686973206163636f756e74345a65726f5468726573686f6c640001048c5468726573686f6c64206d7573742062652067726561746572207468616e207a65726f404e6f74456e6f756768467269656e6473000204d0467269656e6473206c697374206d7573742062652067726561746572207468616e207a65726f20616e64207468726573686f6c64284d6178467269656e6473000304a8467269656e6473206c697374206d757374206265206c657373207468616e206d617820667269656e6473244e6f74536f72746564000404c8467269656e6473206c697374206d75737420626520736f7274656420616e642066726565206f66206475706c696361746573384e6f745265636f76657261626c650005049c54686973206163636f756e74206973206e6f742073657420757020666f72207265636f7665727948416c72656164795265636f76657261626c65000604ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f7665727938416c726561647953746172746564000704dc41207265636f766572792070726f636573732068617320616c7265616479207374617274656420666f722074686973206163636f756e74284e6f7453746172746564000804cc41207265636f766572792070726f6365737320686173206e6f74207374617274656420666f7220746869732072657363756572244e6f74467269656e64000904a854686973206163636f756e74206973206e6f74206120667269656e642077686f2063616e20766f7563682c44656c6179506572696f64000a04190154686520667269656e64206d757374207761697420756e74696c207468652064656c617920706572696f6420746f20766f75636820666f722074686973207265636f7665727938416c7265616479566f7563686564000b04bc5468697320757365722068617320616c726561647920766f756368656420666f722074686973207265636f76657279245468726573686f6c64000c04e8546865207468726573686f6c6420666f72207265636f766572696e672074686973206163636f756e7420686173206e6f74206265656e206d65742c5374696c6c416374697665000d04fc546865726520617265207374696c6c20616374697665207265636f7665727920617474656d7074732074686174206e65656420746f20626520636c6f73656430416c726561647950726f7879000e04ac54686973206163636f756e7420697320616c72656164792073657420757020666f72207265636f76657279204261645374617465000f0478536f6d6520696e7465726e616c2073746174652069732062726f6b656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010505045300000400510c01185665633c543e0000510c000002050500550c083870616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000590c0c3870616c6c65745f76657374696e671870616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04744572726f7220666f72207468652076657374696e672070616c6c65742e5d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401610c045300000400690c01185665633c543e0000610c04184f7074696f6e04045401650c0108104e6f6e6500000010536f6d650400650c0000010000650c084070616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c0131022c426c6f636b4e756d62657201103450616c6c6574734f726967696e015102244163636f756e7449640100001401206d617962655f6964790101304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6c3102011043616c6c0001386d617962655f706572696f6469630d0501944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696e5102013450616c6c6574734f726967696e0000690c000002610c006d0c084070616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000710c0c4070616c6c65745f7363686564756c65721870616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750c0c3870616c6c65745f676c7574746f6e1870616c6c6574144572726f7204045400010848416c7265616479496e697469616c697a656400000c8c5468652070616c6c65742077617320616c726561647920696e697469616c697a65642e00cc53657420607769746e6573735f636f756e746020746f2060536f6d656020746f206279706173732074686973206572726f722e2c496e73616e654c696d6974000104c8546865206c696d697420776173206f766572205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e790c083c70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f73697401010150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f7369747d0c01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656ec8012c4f7074696f6e3c7533323e000100007d0c04184f7074696f6e0404540101010108104e6f6e6500000010536f6d65040001010000010000810c083c70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401850c01082c556e7265717565737465640801187469636b6574890c014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b65748d0c016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656ec8012c4f7074696f6e3c7533323e00010000850c14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000890c0000040800850c008d0c04184f7074696f6e04045401890c0108104e6f6e6500000010536f6d650400890c0000010000910c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000950c0c3c70616c6c65745f707265696d6167651870616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990c000004089d0c18009d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a10c045300000400a50c01185665633c543e0000a10c083070616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f787954797065018d012c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970658d01012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000a50c000002a10c00a90c00000408ad0c1800ad0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b10c045300000400b50c01185665633c543e0000b10c083070616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000b50c000002b10c00b90c0c3070616c6c65745f70726f78791870616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ebd0c00000408000400c10c083c70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e9d01015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73a10a018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000c50c0c3c70616c6c65745f6d756c74697369671870616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90c083c70616c6c65745f626f756e7469657318426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201100018012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000110626f6e6418011c42616c616e6365000118737461747573cd0c0190426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000cd0c083c70616c6c65745f626f756e7469657330426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d6265720110011c2050726f706f73656400000020417070726f7665640001001846756e6465640002003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640003001841637469766508011c63757261746f720001244163636f756e7449640001287570646174655f64756510012c426c6f636b4e756d6265720004003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d6265720005004c417070726f7665645769746843757261746f7204011c63757261746f720001244163636f756e74496400060000d10c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000d50c0c3c70616c6c65745f626f756e746965731870616c6c6574144572726f7208045400044900013070496e73756666696369656e7450726f706f7365727342616c616e63650000047850726f706f73657227732062616c616e636520697320746f6f206c6f772e30496e76616c6964496e646578000104904e6f2070726f706f73616c206f7220626f756e7479206174207468617420696e6465782e30526561736f6e546f6f4269670002048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e40556e65787065637465645374617475730003048054686520626f756e74792073746174757320697320756e65787065637465642e385265717569726543757261746f720004045c5265717569726520626f756e74792063757261746f722e30496e76616c696456616c756500050454496e76616c696420626f756e74792076616c75652e28496e76616c69644665650006044c496e76616c696420626f756e7479206665652e3450656e64696e675061796f75740007086c4120626f756e7479207061796f75742069732070656e64696e672ef8546f2063616e63656c2074686520626f756e74792c20796f75206d75737420756e61737369676e20616e6420736c617368207468652063757261746f722e245072656d6174757265000804450154686520626f756e746965732063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e504861734163746976654368696c64426f756e7479000904050154686520626f756e74792063616e6e6f7420626520636c6f73656420626563617573652069742068617320616374697665206368696c6420626f756e746965732e34546f6f4d616e79517565756564000a0498546f6f206d616e7920617070726f76616c732061726520616c7265616479207175657565642e2c4e6f7450726f706f736572000b049c55736572206973206e6f74207468652070726f706f736572206f662074686520626f756e74792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed90c082c70616c6c65745f746970731c4f70656e54697010244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011010486173680134001c0118726561736f6e3401104861736800010c77686f0001244163636f756e74496400011866696e6465720001244163636f756e74496400011c6465706f73697418011c42616c616e6365000118636c6f736573c8014c4f7074696f6e3c426c6f636b4e756d6265723e00011074697073fc01645665633c284163636f756e7449642c2042616c616e6365293e00012c66696e646572735f666565200110626f6f6c0000dd0c0c2c70616c6c65745f746970731870616c6c6574144572726f7208045400044900011c30526561736f6e546f6f4269670000048454686520726561736f6e20676976656e206973206a75737420746f6f206269672e30416c72656164794b6e6f776e00010488546865207469702077617320616c726561647920666f756e642f737461727465642e28556e6b6e6f776e5469700002046054686520746970206861736820697320756e6b6e6f776e2e504d6178546970416d6f756e7445786365656465640003047c5468652074697020676976656e2077617320746f6f2067656e65726f75732e244e6f7446696e6465720004041d01546865206163636f756e7420617474656d7074696e6720746f20726574726163742074686520746970206973206e6f74207468652066696e646572206f6620746865207469702e245374696c6c4f70656e0005042901546865207469702063616e6e6f7420626520636c61696d65642f636c6f736564206265636175736520746865726520617265206e6f7420656e6f7567682074697070657273207965742e245072656d61747572650006043101546865207469702063616e6e6f7420626520636c61696d65642f636c6f73656420626563617573652069742773207374696c6c20696e2074686520636f756e74646f776e20706572696f642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10c0c3470616c6c65745f61737365747314747970657330417373657444657461696c730c1c42616c616e63650118244163636f756e7449640100384465706f73697442616c616e63650118003001146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000118737570706c7918011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e636500012c6d696e5f62616c616e636518011c42616c616e636500013469735f73756666696369656e74200110626f6f6c0001206163636f756e747310010c75333200012c73756666696369656e747310010c753332000124617070726f76616c7310010c753332000118737461747573e50c012c41737365745374617475730000e50c0c3470616c6c65745f6173736574731474797065732c417373657453746174757300010c104c6976650000001846726f7a656e0001002844657374726f79696e6700020000e90c0c3470616c6c65745f6173736574731474797065733041737365744163636f756e74101c42616c616e63650118384465706f73697442616c616e636501181445787472610188244163636f756e74496401000010011c62616c616e636518011c42616c616e6365000118737461747573ed0c01344163636f756e74537461747573000118726561736f6ef10c01a84578697374656e6365526561736f6e3c4465706f73697442616c616e63652c204163636f756e7449643e000114657874726188011445787472610000ed0c0c3470616c6c65745f617373657473147479706573344163636f756e7453746174757300010c184c69717569640000001846726f7a656e0001001c426c6f636b656400020000f10c0c3470616c6c65745f6173736574731474797065733c4578697374656e6365526561736f6e081c42616c616e63650118244163636f756e7449640100011420436f6e73756d65720000002853756666696369656e740001002c4465706f73697448656c64040018011c42616c616e63650002003c4465706f736974526566756e6465640003002c4465706f73697446726f6d08000001244163636f756e744964000018011c42616c616e636500040000f50c0000040c10000000f90c0c3470616c6c65745f61737365747314747970657320417070726f76616c081c42616c616e63650118384465706f73697442616c616e6365011800080118616d6f756e7418011c42616c616e636500011c6465706f7369741801384465706f73697442616c616e63650000fd0c0c3470616c6c65745f6173736574731474797065733441737365744d6574616461746108384465706f73697442616c616e6365011834426f756e646564537472696e6701010d0014011c6465706f7369741801384465706f73697442616c616e63650001106e616d65010d0134426f756e646564537472696e6700011873796d626f6c010d0134426f756e646564537472696e67000120646563696d616c73080108753800012469735f66726f7a656e200110626f6f6c0000010d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000050d0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e090d0c3470616c6c65745f6173736574731870616c6c6574144572726f7208045400044900015c2842616c616e63654c6f7700000415014163636f756e742062616c616e6365206d7573742062652067726561746572207468616e206f7220657175616c20746f20746865207472616e7366657220616d6f756e742e244e6f4163636f756e7400010490546865206163636f756e7420746f20616c74657220646f6573206e6f742065786973742e304e6f5065726d697373696f6e000204e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e1c556e6b6e6f776e0003047854686520676976656e20617373657420494420697320756e6b6e6f776e2e1846726f7a656e00040474546865206f726967696e206163636f756e742069732066726f7a656e2e14496e5573650005047854686520617373657420494420697320616c72656164792074616b656e2e284261645769746e6573730006046c496e76616c6964207769746e657373206461746120676976656e2e384d696e42616c616e63655a65726f0007048c4d696e696d756d2062616c616e63652073686f756c64206265206e6f6e2d7a65726f2e4c556e617661696c61626c65436f6e73756d657200080c5901556e61626c6520746f20696e6372656d656e742074686520636f6e73756d6572207265666572656e636520636f756e74657273206f6e20746865206163636f756e742e20456974686572206e6f2070726f76696465724d017265666572656e63652065786973747320746f20616c6c6f772061206e6f6e2d7a65726f2062616c616e6365206f662061206e6f6e2d73656c662d73756666696369656e742061737365742c206f72206f6e65f06665776572207468656e20746865206d6178696d756d206e756d626572206f6620636f6e73756d65727320686173206265656e20726561636865642e2c4261644d657461646174610009045c496e76616c6964206d6574616461746120676976656e2e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e20576f756c64446965000b04350154686520736f75726365206163636f756e7420776f756c64206e6f74207375727669766520746865207472616e7366657220616e64206974206e6565647320746f207374617920616c6976652e34416c7265616479457869737473000c04845468652061737365742d6163636f756e7420616c7265616479206578697374732e244e6f4465706f736974000d04d45468652061737365742d6163636f756e7420646f65736e2774206861766520616e206173736f636961746564206465706f7369742e24576f756c644275726e000e04c4546865206f7065726174696f6e20776f756c6420726573756c7420696e2066756e6473206265696e67206275726e65642e244c6976654173736574000f0859015468652061737365742069732061206c69766520617373657420616e64206973206163746976656c79206265696e6720757365642e20557375616c6c7920656d697420666f72206f7065726174696f6e7320737563681d016173206073746172745f64657374726f796020776869636820726571756972652074686520617373657420746f20626520696e20612064657374726f79696e672073746174652e3041737365744e6f744c697665001004c8546865206173736574206973206e6f74206c6976652c20616e64206c696b656c79206265696e672064657374726f7965642e3c496e636f7272656374537461747573001104b054686520617373657420737461747573206973206e6f7420746865206578706563746564207374617475732e244e6f7446726f7a656e001204d85468652061737365742073686f756c642062652066726f7a656e206265666f72652074686520676976656e206f7065726174696f6e2e3843616c6c6261636b4661696c65640013048443616c6c6261636b20616374696f6e20726573756c74656420696e206572726f722842616441737365744964001404c8546865206173736574204944206d75737420626520657175616c20746f20746865205b604e65787441737365744964605d2e3c436f6e7461696e73467265657a65730015044d015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20667265657a65732e34436f6e7461696e73486f6c647300160445015468652061737365742063616e6e6f742062652064657374726f796564206265636175736520736f6d65206163636f756e747320666f72207468697320617373657420636f6e7461696e20686f6c64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d503045300000400110d01185665633c543e0000110d000002d50300150d0c3070616c6c65745f62656566791870616c6c6574144572726f7204045400011c60496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c6964446f75626c65566f74696e6750726f6f6600010431014120646f75626c6520766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e58496e76616c6964466f726b566f74696e6750726f6f6600020429014120666f726b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e74496e76616c6964467574757265426c6f636b566f74696e6750726f6f660003044901412066757475726520626c6f636b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e7c496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e000404c05468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f6620697320696e76616c6964584475706c69636174654f6666656e63655265706f727400050415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0006048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190d0c4873705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e7400001d0d083870616c6c65745f6c6f7474657279344c6f7474657279436f6e666967082c426c6f636b4e756d62657201101c42616c616e6365011800140114707269636518011c42616c616e6365000114737461727410012c426c6f636b4e756d6265720001186c656e67746810012c426c6f636b4e756d62657200011464656c617910012c426c6f636b4e756d626572000118726570656174200110626f6f6c0000210d0000040810250d00250d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401b501045300000400290d01185665633c543e0000290d000002b501002d0d0c3870616c6c65745f6c6f74746572791870616c6c6574144572726f7204045400011c344e6f74436f6e666967757265640000048841206c6f747465727920686173206e6f74206265656e20636f6e666967757265642e28496e50726f67726573730001048441206c6f747465727920697320616c726561647920696e2070726f67726573732e30416c7265616479456e6465640002047041206c6f74746572792068617320616c726561647920656e6465642e2c496e76616c696443616c6c000304a85468652063616c6c206973206e6f742076616c696420666f7220616e206f70656e206c6f74746572792e50416c726561647950617274696369706174696e67000404f0596f752061726520616c72656164792070617274696369706174696e6720696e20746865206c6f7474657279207769746820746869732063616c6c2e30546f6f4d616e7943616c6c7300050490546f6f206d616e792063616c6c7320666f7220612073696e676c65206c6f74746572792e38456e636f64696e674661696c6564000604584661696c656420746f20656e636f64652063616c6c73048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401050c045300000400090c01185665633c543e0000350d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401390d0453000004003d0d01185665633c543e0000390d0c2870616c6c65745f6e69731870616c6c65740c426964081c42616c616e63650118244163636f756e744964010000080118616d6f756e7418011c42616c616e636500010c77686f0001244163636f756e74496400003d0d000002390d00410d0c2870616c6c65745f6e69731870616c6c65743453756d6d6172795265636f7264082c426c6f636b4e756d62657201101c42616c616e636501180014013c70726f706f7274696f6e5f6f776564bd01012c5065727175696e74696c6c000114696e64657810013052656365697074496e646578000118746861776564bd01012c5065727175696e74696c6c00012c6c6173745f706572696f6410012c426c6f636b4e756d62657200014072656365697074735f6f6e5f686f6c6418011c42616c616e63650000450d0c2870616c6c65745f6e69731870616c6c657434526563656970745265636f72640c244163636f756e74496401002c426c6f636b4e756d62657201101c42616c616e63650118000c012870726f706f7274696f6ebd01012c5065727175696e74696c6c0001146f776e65727d0c01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e00011865787069727910012c426c6f636b4e756d6265720000490d00000408bd0110004d0d0c2870616c6c65745f6e69731870616c6c6574144572726f7204045400013c404475726174696f6e546f6f536d616c6c000004a4546865206475726174696f6e206f662074686520626964206973206c657373207468616e206f6e652e384475726174696f6e546f6f426967000104f4546865206475726174696f6e20697320746865206269642069732067726561746572207468616e20746865206e756d626572206f66207175657565732e38416d6f756e74546f6f536d616c6c000204dc54686520616d6f756e74206f662074686520626964206973206c657373207468616e20746865206d696e696d756d20616c6c6f7765642e24426964546f6f4c6f77000308410154686520717565756520666f7220746865206269642773206475726174696f6e2069732066756c6c20616e642074686520616d6f756e742062696420697320746f6f206c6f7720746f2067657420696e887468726f756768207265706c6163696e6720616e206578697374696e67206269642e38556e6b6e6f776e52656365697074000404645265636569707420696e64657820697320756e6b6e6f776e2e204e6f744f776e6572000504744e6f7420746865206f776e6572206f662074686520726563656970742e284e6f744578706972656400060470426f6e64206e6f74207965742061742065787069727920646174652e28556e6b6e6f776e426964000704a854686520676976656e2062696420666f722072657472616374696f6e206973206e6f7420666f756e642e34506f7274696f6e546f6f426967000804e054686520706f7274696f6e20737570706c696564206973206265796f6e64207468652076616c7565206f662074686520726563656970742e20556e66756e646564000904944e6f7420656e6f7567682066756e6473206172652068656c6420746f20706179206f75742e34416c726561647946756e646564000a04b054686572652061726520656e6f7567682066756e647320666f7220776861742069732072657175697265642e245468726f74746c6564000b04cc5468652074686177207468726f74746c6520686173206265656e207265616368656420666f72207468697320706572696f642e244d616b657344757374000c041501546865206f7065726174696f6e20776f756c6420726573756c7420696e2061207265636569707420776f72746820616e20696e7369676e69666963616e742076616c75652e3c416c7265616479436f6d6d756e616c000d0480546865207265636569707420697320616c726561647920636f6d6d756e616c2e38416c726561647950726976617465000e047c546865207265636569707420697320616c726561647920707269766174652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e510d0c3870616c6c65745f756e697175657314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118002801146f776e65720001244163636f756e7449640001186973737565720001244163636f756e74496400011461646d696e0001244163636f756e74496400011c667265657a65720001244163636f756e744964000134746f74616c5f6465706f7369741801384465706f73697442616c616e6365000130667265655f686f6c64696e67200110626f6f6c0001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001286174747269627574657310010c75333200012469735f66726f7a656e200110626f6f6c0000550d0000040c00101000590d0c3870616c6c65745f756e69717565731474797065732c4974656d44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001001146f776e65720001244163636f756e744964000120617070726f766564ac01444f7074696f6e3c4163636f756e7449643e00012469735f66726f7a656e200110626f6f6c00011c6465706f7369741801384465706f73697442616c616e636500005d0d0c3870616c6c65745f756e697175657314747970657348436f6c6c656374696f6e4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461c501016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000610d0c3870616c6c65745f756e6971756573147479706573304974656d4d6574616461746108384465706f73697442616c616e636501182c537472696e674c696d697400000c011c6465706f7369741801384465706f73697442616c616e636500011064617461c501016c426f756e6465645665633c75382c20537472696e674c696d69743e00012469735f66726f7a656e200110626f6f6c0000650d0000040c10c8550100690d00000408cd0118006d0d0000040818ac00710d0c3870616c6c65745f756e69717565731870616c6c6574144572726f72080454000449000158304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e2857726f6e674f776e6572000304e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730004046c496e76616c6964207769746e657373206461746120676976656e2e14496e55736500050474546865206974656d20494420697320616c72656164792074616b656e2e1846726f7a656e00060484546865206974656d206f7220636f6c6c656374696f6e2069732066726f7a656e2e3457726f6e6744656c6567617465000704f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284e6f44656c6567617465000804785468657265206973206e6f2064656c656761746520617070726f7665642e28556e617070726f766564000904c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000a042501546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e657273686970206f662074686520636f6c6c656374696f6e2069732061636365707461626c652e184c6f636b6564000b044c546865206974656d206973206c6f636b65642e404d6178537570706c7952656163686564000c046c416c6c206974656d732068617665206265656e206d696e7465642e4c4d6178537570706c79416c7265616479536574000d0490546865206d617820737570706c792068617320616c7265616479206265656e207365742e444d6178537570706c79546f6f536d616c6c000e0441015468652070726f7669646564206d617820737570706c79206973206c65737320746f2074686520616d6f756e74206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d000f047454686520676976656e206974656d20494420697320756e6b6e6f776e2e284e6f74466f7253616c65001004544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001104705468652070726f76696465642062696420697320746f6f206c6f772e284e6f4d65746164617461001204544e6f206d6574616461746120697320666f756e642e3457726f6e674d65746164617461001304a057726f6e67206d65746164617461206b65792f76616c756520627974657320737570706c6965642e444174747269627574654e6f74466f756e6400140468416e20617474726962757465206973206e6f7420666f756e642e3857726f6e67417474726962757465001504a457726f6e6720617474726962757465206b65792f76616c756520627974657320737570706c6965642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e750d0c2c70616c6c65745f6e66747314747970657344436f6c6c656374696f6e44657461696c7308244163636f756e7449640100384465706f73697442616c616e63650118001801146f776e65720001244163636f756e7449640001346f776e65725f6465706f7369741801384465706f73697442616c616e63650001146974656d7310010c7533320001386974656d5f6d657461646174617310010c7533320001306974656d5f636f6e6669677310010c7533320001286174747269627574657310010c7533320000790d0c2c70616c6c65745f6e66747314747970657320426974466c616773040454017d0d000400080138436f6c6c656374696f6e526f6c6500007d0d0c2c70616c6c65745f6e66747314747970657338436f6c6c656374696f6e526f6c6500010c184973737565720001001c467265657a65720002001441646d696e00040000810d0c2c70616c6c65745f6e6674731474797065732c4974656d44657461696c730c244163636f756e74496401001c4465706f73697401850d24417070726f76616c7301890d000c01146f776e65720001244163636f756e744964000124617070726f76616c73890d0124417070726f76616c7300011c6465706f736974850d011c4465706f7369740000850d0c2c70616c6c65745f6e6674731474797065732c4974656d4465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e740001244163636f756e744964000118616d6f756e741801384465706f73697442616c616e63650000890d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0100045601c80453000004008d0d013842547265654d61703c4b2c20563e00008d0d042042547265654d617008044b0100045601c8000400910d000000910d000002950d00950d0000040800c800990d0c2c70616c6c65745f6e66747314747970657348436f6c6c656374696f6e4d65746164617461081c4465706f73697401182c537472696e674c696d6974000008011c6465706f73697418011c4465706f73697400011064617461d501016c426f756e6465645665633c75382c20537472696e674c696d69743e00009d0d0c2c70616c6c65745f6e667473147479706573304974656d4d65746164617461081c4465706f73697401a10d2c537472696e674c696d6974000008011c6465706f736974a10d011c4465706f73697400011064617461d501016c426f756e6465645665633c75382c20537472696e674c696d69743e0000a10d0c2c70616c6c65745f6e6674731474797065734c4974656d4d657461646174614465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000a50d0000041010c8d901cd0100a90d00000408d501ad0d00ad0d0c2c70616c6c65745f6e667473147479706573404174747269627574654465706f73697408384465706f73697442616c616e63650118244163636f756e74496401000008011c6163636f756e74ac01444f7074696f6e3c4163636f756e7449643e000118616d6f756e741801384465706f73697442616c616e63650000b10d0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f7365743c426f756e64656442547265655365740804540100045300000400b50d012c42547265655365743c543e0000b50d0420425472656553657404045401000004005d01000000b90d0c2c70616c6c65745f6e6674731474797065732c50656e64696e67537761701030436f6c6c656374696f6e49640110184974656d49640110584974656d507269636557697468446972656374696f6e01e10120446561646c696e65011000100148646573697265645f636f6c6c656374696f6e100130436f6c6c656374696f6e4964000130646573697265645f6974656dc801384f7074696f6e3c4974656d49643e0001147072696365dd0101784f7074696f6e3c4974656d507269636557697468446972656374696f6e3e000120646561646c696e65100120446561646c696e650000bd0d0c2c70616c6c65745f6e66747314747970657320426974466c61677304045401c10d00040030013450616c6c6574466561747572650000c10d0c2c70616c6c65745f6e6674731474797065733450616c6c6574466561747572650001101c54726164696e67000100284174747269627574657300020024417070726f76616c7300040014537761707300080000c50d0c2c70616c6c65745f6e6674731870616c6c6574144572726f720804540004490001b4304e6f5065726d697373696f6e000004e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e44556e6b6e6f776e436f6c6c656374696f6e0001047454686520676976656e206974656d20494420697320756e6b6e6f776e2e34416c7265616479457869737473000204b8546865206974656d2049442068617320616c7265616479206265656e207573656420666f7220616e206974656d2e3c417070726f76616c45787069726564000304390154686520617070726f76616c20686164206120646561646c696e65207468617420657870697265642c20736f2074686520617070726f76616c2069736e27742076616c696420616e796d6f72652e2857726f6e674f776e6572000404e8546865206f776e6572207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e284261645769746e6573730005041501546865207769746e657373206461746120676976656e20646f6573206e6f74206d61746368207468652063757272656e74207374617465206f662074686520636861696e2e44436f6c6c656374696f6e4964496e5573650006047c436f6c6c656374696f6e20494420697320616c72656164792074616b656e2e504974656d734e6f6e5472616e7366657261626c65000704c84974656d732077697468696e207468617420636f6c6c656374696f6e20617265206e6f6e2d7472616e7366657261626c652e2c4e6f7444656c65676174650008049c5468652070726f7669646564206163636f756e74206973206e6f7420612064656c65676174652e3457726f6e6744656c6567617465000904f45468652064656c6567617465207475726e6564206f757420746f20626520646966666572656e7420746f2077686174207761732065787065637465642e28556e617070726f766564000a04c44e6f20617070726f76616c20657869737473207468617420776f756c6420616c6c6f7720746865207472616e736665722e28556e6163636570746564000b041901546865206e616d6564206f776e657220686173206e6f74207369676e6564206f776e65727368697020616363657074616e6365206f662074686520636f6c6c656374696f6e2e284974656d4c6f636b6564000c0498546865206974656d206973206c6f636b656420286e6f6e2d7472616e7366657261626c65292e504c6f636b65644974656d41747472696275746573000d04744974656d2773206174747269627574657320617265206c6f636b65642e684c6f636b6564436f6c6c656374696f6e41747472696275746573000e048c436f6c6c656374696f6e2773206174747269627574657320617265206c6f636b65642e484c6f636b65644974656d4d65746164617461000f04684974656d2773206d65746164617461206973206c6f636b65642e604c6f636b6564436f6c6c656374696f6e4d6574616461746100100480436f6c6c656374696f6e2773206d65746164617461206973206c6f636b65642e404d6178537570706c79526561636865640011046c416c6c206974656d732068617665206265656e206d696e7465642e3c4d6178537570706c794c6f636b6564001204b8546865206d617820737570706c79206973206c6f636b656420616e642063616e2774206265206368616e6765642e444d6178537570706c79546f6f536d616c6c00130449015468652070726f7669646564206d617820737570706c79206973206c657373207468616e20746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e20616c7265616479206861732e2c556e6b6e6f776e4974656d0014047454686520676976656e206974656d20494420697320756e6b6e6f776e2e2c556e6b6e6f776e537761700015044c5377617020646f65736e27742065786973742e404d657461646174614e6f74466f756e640016048c54686520676976656e206974656d20686173206e6f206d65746164617461207365742e444174747269627574654e6f74466f756e64001704985468652070726f7669646564206174747269627574652063616e277420626520666f756e642e284e6f74466f7253616c65001804544974656d206973206e6f7420666f722073616c652e24426964546f6f4c6f77001904705468652070726f76696465642062696420697320746f6f206c6f772e5052656163686564417070726f76616c4c696d6974001a04a0546865206974656d2068617320726561636865642069747320617070726f76616c206c696d69742e3c446561646c696e6545787069726564001b048454686520646561646c696e652068617320616c726561647920657870697265642e3457726f6e674475726174696f6e001c043101546865206475726174696f6e2070726f76696465642073686f756c64206265206c657373207468616e206f7220657175616c20746f20604d6178446561646c696e654475726174696f6e602e384d6574686f6444697361626c6564001d04a8546865206d6574686f642069732064697361626c65642062792073797374656d2073657474696e67732e3057726f6e6753657474696e67001e04885468652070726f76696465642073657474696e672063616e2774206265207365742e58496e636f6e73697374656e744974656d436f6e666967001f0415014974656d277320636f6e66696720616c72656164792065786973747320616e642073686f756c6420626520657175616c20746f207468652070726f7669646564206f6e652e204e6f436f6e666967002004c8436f6e66696720666f72206120636f6c6c656374696f6e206f7220616e206974656d2063616e277420626520666f756e642e3c526f6c65734e6f74436c656172656400210470536f6d6520726f6c65732077657265206e6f7420636c65617265642e384d696e744e6f7453746172746564002204644d696e7420686173206e6f742073746172746564207965742e244d696e74456e6465640023045c4d696e742068617320616c726561647920656e6465642e38416c7265616479436c61696d6564002404c05468652070726f7669646564204974656d2077617320616c7265616479207573656420666f7220636c61696d696e672e34496e636f7272656374446174610025047c5468652070726f7669646564206461746120697320696e636f72726563742e2c57726f6e674f726967696e002604ac5468652065787472696e736963207761732073656e74206279207468652077726f6e67206f726967696e2e3857726f6e675369676e6174757265002704905468652070726f7669646564207369676e617475726520697320696e636f72726563742e44496e636f72726563744d65746164617461002804a05468652070726f7669646564206d65746164617461206d6967687420626520746f6f206c6f6e672e644d6178417474726962757465734c696d6974526561636865640029049c43616e277420736574206d6f7265206174747269627574657320706572206f6e652063616c6c2e3857726f6e674e616d657370616365002a04d05468652070726f7669646564206e616d6573706163652069736e277420737570706f7274656420696e20746869732063616c6c2e48436f6c6c656374696f6e4e6f74456d707479002b048c43616e27742064656c657465206e6f6e2d656d70747920636f6c6c656374696f6e732e3c5769746e6573735265717569726564002c0490546865207769746e65737320646174612073686f756c642062652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec90d0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1474797065731c44657461696c73101c417373657449640110244672616374696f6e7301181c4465706f7369740118244163636f756e744964010000100114617373657410011c417373657449640001246672616374696f6e731801244672616374696f6e7300011c6465706f73697418011c4465706f73697400013461737365745f63726561746f720001244163636f756e7449640000cd0d0c7070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e1870616c6c6574144572726f7204045400011040496e636f727265637441737365744964000004ac417373657420494420646f6573206e6f7420636f72726573706f6e6420746f206c6f636b6564204e46542e304e6f5065726d697373696f6e000104e8546865207369676e696e67206163636f756e7420686173206e6f207065726d697373696f6e20746f20646f20746865206f7065726174696f6e2e2c4e66744e6f74466f756e64000204484e465420646f65736e27742065786973742e504e66744e6f744672616374696f6e616c697a6564000304904e465420686173206e6f7420796574206265656e206672616374696f6e616c697365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10d083470616c6c65745f73616c61727928537461747573547970650c284379636c65496e64657801102c426c6f636b4e756d62657201101c42616c616e636501180014012c6379636c655f696e6465781001284379636c65496e64657800012c6379636c655f737461727410012c426c6f636b4e756d62657200011862756467657418011c42616c616e636500014c746f74616c5f726567697374726174696f6e7318011c42616c616e636500015c746f74616c5f756e726567697374657265645f7061696418011c42616c616e63650000d50d083470616c6c65745f73616c61727938436c61696d616e745374617475730c284379636c65496e64657801101c42616c616e6365011808496401880008012c6c6173745f6163746976651001284379636c65496e646578000118737461747573d90d015c436c61696d53746174653c42616c616e63652c2049643e0000d90d083470616c6c65745f73616c61727928436c61696d5374617465081c42616c616e636501180849640188010c1c4e6f7468696e670000002852656769737465726564040018011c42616c616e636500010024417474656d707465640c012872656769737465726564b103013c4f7074696f6e3c42616c616e63653e00010869648801084964000118616d6f756e7418011c42616c616e636500020000dd0d0c3470616c6c65745f73616c6172791870616c6c6574144572726f7208045400044900013838416c726561647953746172746564000004ac5468652073616c6172792073797374656d2068617320616c7265616479206265656e20737461727465642e244e6f744d656d6265720001048c546865206163636f756e74206973206e6f7420612072616e6b6564206d656d6265722e3c416c7265616479496e64756374656400020480546865206163636f756e7420697320616c726561647920696e6475637465642e2c4e6f74496e6475637465640003001c4e6f436c61696d000404bc546865206d656d62657220646f6573206e6f74206861766520612063757272656e742076616c696420636c61696d2e24436c61696d5a65726f0005046c546865206d656d626572277320636c61696d206973207a65726f2e1c546f6f4c617465000604b043757272656e74206379636c65277320726567697374726174696f6e20706572696f64206973206f7665722e20546f6f4561726c79000704c043757272656e74206379636c652773207061796d656e7420706572696f64206973206e6f742079657420626567756e2e184e6f74596574000804584379636c65206973206e6f7420796574206f7665722e284e6f74537461727465640009049c546865207061796f7574206379636c65732068617665206e6f742079657420737461727465642e2042616e6b72757074000a049c5468657265206973206e6f20627564676574206c65667420666f7220746865207061796f75742e205061794572726f72000b04cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e30496e636f6e636c7573697665000c04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e284e6f7443757272656e74000d04d8546865206379636c65206973206166746572207468617420696e20776869636820746865207061796d656e7420776173206d6164652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee10d085870616c6c65745f636f72655f66656c6c6f7773686970304d656d626572537461747573042c426c6f636b4e756d6265720110000c012469735f616374697665200110626f6f6c0001386c6173745f70726f6d6f74696f6e10012c426c6f636b4e756d6265720001286c6173745f70726f6f6610012c426c6f636b4e756d6265720000e50d0000040809020d0200e90d0c5870616c6c65745f636f72655f66656c6c6f77736869701870616c6c6574144572726f7208045400044900012420556e72616e6b6564000004644d656d62657227732072616e6b20697320746f6f206c6f772e1852616e6b6564000104684d656d62657227732072616e6b206973206e6f74207a65726f2e38556e657870656374656452616e6b00020855014d656d62657227732072616e6b206973206e6f74206173206578706563746564202d2067656e6572616c6c79206d65616e732074686174207468652072616e6b2070726f766964656420746f207468652063616c6cb0646f6573206e6f74206167726565207769746820746865207374617465206f66207468652073797374656d2e2c496e76616c696452616e6b000304550154686520676976656e2072616e6b20697320696e76616c6964202d20746869732067656e6572616c6c79206d65616e732069742773206e6f74206265747765656e203120616e64206052414e4b5f434f554e54602e304e6f5065726d697373696f6e0004040101546865206f726967696e20646f6573206e6f74206861766520656e6f756768207065726d697373696f6e20746f20646f2074686973206f7065726174696f6e2e304e6f7468696e67446f696e67000504d04e6f20776f726b206e6565647320746f20626520646f6e652061742070726573656e7420666f722074686973206d656d6265722e3c416c7265616479496e64756374656400060841015468652063616e6469646174652068617320616c7265616479206265656e20696e6475637465642e20546869732073686f756c64206e657665722068617070656e2073696e636520697420776f756c6405017265717569726520612063616e646964617465202872616e6b20302920746f20616c726561647920626520747261636b656420696e207468652070616c6c65742e284e6f74547261636b656400070439015468652063616e64696461746520686173206e6f74206265656e20696e6475637465642c20736f2063616e6e6f74206265206f6666626f61726465642066726f6d20746869732070616c6c65742e1c546f6f536f6f6e000804f84f7065726174696f6e2063616e6e6f7420626520646f6e65207965742073696e6365206e6f7420656e6f7567682074696d6520686173207061737365642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed0d0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f10d045300000400f50d01185665633c543e0000f10d086870616c6c65745f7472616e73616374696f6e5f73746f726167653c5472616e73616374696f6e496e666f00001001286368756e6b5f726f6f743401743c426c616b6554776f32353620617320486173683e3a3a4f7574707574000130636f6e74656e745f686173683401743c426c616b6554776f32353620617320486173683e3a3a4f757470757400011073697a6510010c753332000130626c6f636b5f6368756e6b7310010c7533320000f50d000002f10d00f90d0c6870616c6c65745f7472616e73616374696f6e5f73746f726167651870616c6c6574144572726f72040454000130344e6f74436f6e6669677572656400000458496e76616c696420636f6e66696775726174696f6e2e3c52656e657765644e6f74466f756e640001047c52656e657765642065787472696e736963206973206e6f7420666f756e642e40456d7074795472616e73616374696f6e00020494417474656d7074696e6720746f2073746f726520656d707479207472616e73616374696f6e3c556e657870656374656450726f6f660003049450726f6f6620776173206e6f7420657870656374656420696e207468697320626c6f636b2e30496e76616c696450726f6f660004046850726f6f66206661696c656420766572696669636174696f6e2e304d697373696e6750726f6f66000504584d697373696e672073746f726167652070726f6f662e404d697373696e67537461746544617461000604d4556e61626c6520746f207665726966792070726f6f6620626563617573652073746174652064617461206973206d697373696e672e2c446f75626c65436865636b00070480446f75626c652070726f6f6620636865636b20696e2074686520626c6f636b2e3c50726f6f664e6f74436865636b6564000804ac53746f726167652070726f6f6620776173206e6f7420636865636b656420696e2074686520626c6f636b2e4c5472616e73616374696f6e546f6f4c61726765000904645472616e73616374696f6e20697320746f6f206c617267652e4c546f6f4d616e795472616e73616374696f6e73000a048c546f6f206d616e79207472616e73616374696f6e7320696e2074686520626c6f636b2e28426164436f6e74657874000b04d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742efd0d0c4070616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576ac01504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874ac01504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000010e0c4070616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164ac01504f7074696f6e3c543a3a4163636f756e7449643e0001107461696cac01504f7074696f6e3c543a3a4163636f756e7449643e0000050e0000023000090e0c4070616c6c65745f626167735f6c6973741870616c6c6574144572726f72080454000449000108104c69737404000d0e01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e184c6f636b6564000104d8436f756c64206e6f74207570646174652061206e6f64652c2062656361757365207468652070616c6c6574206973206c6f636b65642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e0d0e0c4070616c6c65745f626167735f6c697374106c697374244c6973744572726f72000114244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e64000300184c6f636b656400040000110e00000408290a290a00150e085470616c6c65745f6368696c645f626f756e746965732c4368696c64426f756e74790c244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d626572011000140134706172656e745f626f756e747910012c426f756e7479496e64657800011476616c756518011c42616c616e636500010c66656518011c42616c616e636500013c63757261746f725f6465706f73697418011c42616c616e6365000118737461747573190e01a44368696c64426f756e74795374617475733c4163636f756e7449642c20426c6f636b4e756d6265723e0000190e085470616c6c65745f6368696c645f626f756e74696573444368696c64426f756e747953746174757308244163636f756e74496401002c426c6f636b4e756d626572011001101441646465640000003c43757261746f7250726f706f73656404011c63757261746f720001244163636f756e7449640001001841637469766504011c63757261746f720001244163636f756e7449640002003450656e64696e675061796f75740c011c63757261746f720001244163636f756e74496400012c62656e65666963696172790001244163636f756e744964000124756e6c6f636b5f617410012c426c6f636b4e756d626572000300001d0e0c5470616c6c65745f6368696c645f626f756e746965731870616c6c6574144572726f7204045400010c54506172656e74426f756e74794e6f74416374697665000004a454686520706172656e7420626f756e7479206973206e6f7420696e206163746976652073746174652e64496e73756666696369656e74426f756e747942616c616e6365000104e454686520626f756e74792062616c616e6365206973206e6f7420656e6f75676820746f20616464206e6577206368696c642d626f756e74792e50546f6f4d616e794368696c64426f756e746965730002040d014e756d626572206f66206368696c6420626f756e746965732065786365656473206c696d697420604d61784163746976654368696c64426f756e7479436f756e74602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210e0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640191013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c7901c507244163636f756e74496401003c5363686564756c654164647265737301750101181c4f6e676f696e670400250e018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000250e0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640191013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c7901c507244163636f756e74496401003c5363686564756c6541646472657373017501002c0114747261636b9101011c547261636b49640001186f726967696e5102013452756e74696d654f726967696e00012070726f706f73616c3102011043616c6c000124656e6163746d656e7421060150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974290e016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369742d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67310e01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79c507011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d390e01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000290e0c4070616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e636500002d0e04184f7074696f6e04045401290e0108104e6f6e6500000010536f6d650400290e0000010000310e04184f7074696f6e04045401350e0108104e6f6e6500000010536f6d650400350e0000010000350e0c4070616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e67c8014c4f7074696f6e3c426c6f636b4e756d6265723e0000390e04184f7074696f6e040454013d0e0108104e6f6e6500000010536f6d6504003d0e00000100003d0e0000040810750100410e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401050c045300000400090c01185665633c543e0000450e000002490e00490e0000040891014d0e004d0e0c4070616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d6501b108002401106e616d65b10801104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c55070114437572766500012c6d696e5f737570706f72745507011443757276650000510e0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550e0c3470616c6c65745f72656d61726b1870616c6c6574144572726f7204045400010814456d7074790000047c417474656d7074696e6720746f2073746f726520656d70747920646174612e28426164436f6e74657874000104d4417474656d7074656420746f2063616c6c206073746f726560206f757473696465206f6620626c6f636b20657865637574696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e590e00000408009101005d0e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400610e01c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400790e01ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e00010000610e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573650e01dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e73710e015044656c65676174696f6e733c42616c616e63653e0001147072696f72750e017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e0000650e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401690e0453000004006d0e01185665633c543e0000690e00000408103106006d0e000002690e00710e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e63650000750e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e63650000790e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6e39060128436f6e76696374696f6e00012c64656c65676174696f6e73710e015044656c65676174696f6e733c42616c616e63653e0001147072696f72750e017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00007d0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401810e045300000400850e01185665633c543e0000810e0000040891011800850e000002810e00890e0c6070616c6c65745f636f6e76696374696f6e5f766f74696e671870616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e8d0e0c4070616c6c65745f77686974656c6973741870616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e910e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540134045300000400210501185665633c543e0000950e0c4470616c6c65745f636f6c6c6563746976651870616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e990e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d060453000004009d0e01185665633c543e00009d0e0000024d0600a10e083c70616c6c65745f616c6c69616e6365284d656d626572526f6c6500010c1846656c6c6f7700000010416c6c79000100205265746972696e6700020000a50e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004005d0101185665633c543e0000a90e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454016506045300000400ad0e01185665633c543e0000ad0e000002650600b10e0c3c70616c6c65745f616c6c69616e63651870616c6c6574144572726f7208045400044900016064416c6c69616e63654e6f74596574496e697469616c697a6564000004350154686520416c6c69616e636520686173206e6f74206265656e20696e697469616c697a6564207965742c207468657265666f7265206163636f756e74732063616e6e6f74206a6f696e2069742e68416c6c69616e6365416c7265616479496e697469616c697a6564000104250154686520416c6c69616e636520686173206265656e20696e697469616c697a65642c207468657265666f72652063616e6e6f7420626520696e697469616c697a656420616761696e2e34416c72656164794d656d626572000204704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000304604163636f756e74206973206e6f742061206d656d6265722e1c4e6f74416c6c790004045c4163636f756e74206973206e6f7420616e20616c6c792e384e6f566f74696e67526967687473000504904163636f756e7420646f6573206e6f74206861766520766f74696e67207269676874732e3c416c7265616479456c657661746564000604bc4163636f756e7420697320616c726561647920616e20656c657661746564202866656c6c6f7729206d656d6265722e4c416c7265616479556e7363727570756c6f75730007049c4974656d20697320616c7265616479206c697374656420617320756e7363727570756c6f75732e3c4163636f756e744e6f6e477261746100080855014163636f756e7420686173206265656e206465656d656420756e7363727570756c6f75732062792074686520416c6c69616e636520616e64206973206e6f742077656c636f6d6520746f206a6f696e206f72206265286e6f6d696e617465642e5c4e6f744c69737465644173556e7363727570756c6f7573000904984974656d20686173206e6f74206265656e206465656d656420756e7363727570756c6f75732e60546f6f4d616e79556e7363727570756c6f75734974656d73000a040101546865206e756d626572206f6620756e7363727570756c6f7573206974656d73206578636565647320604d6178556e7363727570756c6f75734974656d73602e44546f6f4c6f6e675765627369746555726c000b04d04c656e677468206f6620776562736974652055524c206578636565647320604d61785765627369746555726c4c656e677468602e44496e73756666696369656e7446756e6473000c04c442616c616e636520697320696e73756666696369656e7420666f7220746865207265717569726564206465706f7369742e74576974686f757452657175697265644964656e746974794669656c6473000d041501546865206163636f756e742773206964656e7469747920646f6573206e6f74206861766520646973706c6179206669656c6420616e642077656273697465206669656c642e70576974686f7574476f6f644964656e746974794a756467656d656e74000e04b4546865206163636f756e742773206964656e7469747920686173206e6f20676f6f64206a756467656d656e742e4c4d697373696e6750726f706f73616c48617368000f047c5468652070726f706f73616c2068617368206973206e6f7420666f756e642e4c4d697373696e67416e6e6f756e63656d656e740010047854686520616e6e6f756e63656d656e74206973206e6f7420666f756e642e38546f6f4d616e794d656d62657273001104b04e756d626572206f66206d656d62657273206578636565647320604d61784d656d62657273436f756e74602e50546f6f4d616e79416e6e6f756e63656d656e7473001204e04e756d626572206f6620616e6e6f756e63656d656e7473206578636565647320604d6178416e6e6f756e63656d656e7473436f756e74602e284261645769746e6573730013046c496e76616c6964207769746e657373206461746120676976656e2e3c416c72656164795265746972696e67001404984163636f756e7420616c72656164792067617665207265746972656d656e74206e6f74696365605265746972656d656e744e6f746963654e6f74476976656e001504f04163636f756e7420646964206e6f7420676976652061207265746972656d656e74206e6f7469636520726571756972656420746f207265746972652e645265746972656d656e74506572696f644e6f74506173736564001604845265746972656d656e7420706572696f6420686173206e6f74207061737365642e3846656c6c6f77734d697373696e67001704d046656c6c6f7773206d7573742062652070726f766964656420746f20696e697469616c697a652074686520416c6c69616e63652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eb50e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328506f6f6c4d656d626572040454000010011c706f6f6c5f6964100118506f6f6c4964000118706f696e747318013042616c616e63654f663c543e0001706c6173745f7265636f726465645f7265776172645f636f756e74657221010140543a3a526577617264436f756e746572000138756e626f6e64696e675f65726173b90e01e0426f756e64656442547265654d61703c457261496e6465782c2042616c616e63654f663c543e2c20543a3a4d6178556e626f6e64696e673e0000b90e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b011004560118045300000400bd0e013842547265654d61703c4b2c20563e0000bd0e042042547265654d617008044b011004560118000400090c000000c10e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733c426f6e646564506f6f6c496e6e65720404540000140128636f6d6d697373696f6ec50e0134436f6d6d697373696f6e3c543e0001386d656d6265725f636f756e74657210010c753332000118706f696e747318013042616c616e63654f663c543e000114726f6c6573cd0e015c506f6f6c526f6c65733c543a3a4163636f756e7449643e000114737461746571060124506f6f6c53746174650000c50e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328436f6d6d697373696f6e040454000014011c63757272656e748906017c4f7074696f6e3c2850657262696c6c2c20543a3a4163636f756e744964293e00010c6d6178f507013c4f7074696f6e3c50657262696c6c3e00012c6368616e67655f72617465c90e01bc4f7074696f6e3c436f6d6d697373696f6e4368616e6765526174653c426c6f636b4e756d626572466f723c543e3e3e0001347468726f74746c655f66726f6dc801644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e000140636c61696d5f7065726d697373696f6e950601bc4f7074696f6e3c436f6d6d697373696f6e436c61696d5065726d697373696f6e3c543a3a4163636f756e7449643e3e0000c90e04184f7074696f6e0404540191060108104e6f6e6500000010536f6d65040091060000010000cd0e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7324506f6f6c526f6c657304244163636f756e7449640100001001246465706f7369746f720001244163636f756e744964000110726f6f74ac01444f7074696f6e3c4163636f756e7449643e0001246e6f6d696e61746f72ac01444f7074696f6e3c4163636f756e7449643e00011c626f756e636572ac01444f7074696f6e3c4163636f756e7449643e0000d10e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328526577617264506f6f6c04045400001401706c6173745f7265636f726465645f7265776172645f636f756e74657221010140543a3a526577617264436f756e74657200016c6c6173745f7265636f726465645f746f74616c5f7061796f75747318013042616c616e63654f663c543e000154746f74616c5f726577617264735f636c61696d656418013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f70656e64696e6718013042616c616e63654f663c543e000160746f74616c5f636f6d6d697373696f6e5f636c61696d656418013042616c616e63654f663c543e0000d50e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7320537562506f6f6c7304045400000801186e6f5f657261d90e0134556e626f6e64506f6f6c3c543e000120776974685f657261dd0e010101426f756e64656442547265654d61703c457261496e6465782c20556e626f6e64506f6f6c3c543e2c20546f74616c556e626f6e64696e67506f6f6c733c543e3e0000d90e085c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c7328556e626f6e64506f6f6c0404540000080118706f696e747318013042616c616e63654f663c543e00011c62616c616e636518013042616c616e63654f663c543e0000dd0e0c4c626f756e6465645f636f6c6c656374696f6e7344626f756e6465645f62747265655f6d61703c426f756e64656442547265654d61700c044b0110045601d90e045300000400e10e013842547265654d61703c4b2c20563e0000e10e042042547265654d617008044b0110045601d90e000400e50e000000e50e000002e90e00e90e0000040810d90e00ed0e0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c6574144572726f7204045400019830506f6f6c4e6f74466f756e6400000488412028626f6e6465642920706f6f6c20696420646f6573206e6f742065786973742e48506f6f6c4d656d6265724e6f74466f756e640001046c416e206163636f756e74206973206e6f742061206d656d6265722e48526577617264506f6f6c4e6f74466f756e640002042101412072657761726420706f6f6c20646f6573206e6f742065786973742e20496e20616c6c206361736573207468697320697320612073797374656d206c6f676963206572726f722e40537562506f6f6c734e6f74466f756e6400030468412073756220706f6f6c20646f6573206e6f742065786973742e644163636f756e7442656c6f6e6773546f4f74686572506f6f6c0004084d01416e206163636f756e7420697320616c72656164792064656c65676174696e6720696e20616e6f7468657220706f6f6c2e20416e206163636f756e74206d6179206f6e6c792062656c6f6e6720746f206f6e653c706f6f6c20617420612074696d652e3846756c6c79556e626f6e64696e670005083d01546865206d656d6265722069732066756c6c7920756e626f6e6465642028616e6420746875732063616e6e6f74206163636573732074686520626f6e64656420616e642072657761726420706f6f6ca8616e796d6f726520746f2c20666f72206578616d706c652c20636f6c6c6563742072657761726473292e444d6178556e626f6e64696e674c696d69740006040901546865206d656d6265722063616e6e6f7420756e626f6e642066757274686572206368756e6b732064756520746f207265616368696e6720746865206c696d69742e4443616e6e6f745769746864726177416e790007044d014e6f6e65206f66207468652066756e64732063616e2062652077697468647261776e2079657420626563617573652074686520626f6e64696e67206475726174696f6e20686173206e6f74207061737365642e444d696e696d756d426f6e644e6f744d6574000814290154686520616d6f756e7420646f6573206e6f74206d65657420746865206d696e696d756d20626f6e6420746f20656974686572206a6f696e206f7220637265617465206120706f6f6c2e005501546865206465706f7369746f722063616e206e6576657220756e626f6e6420746f20612076616c7565206c657373207468616e206050616c6c65743a3a6465706f7369746f725f6d696e5f626f6e64602e205468655d0163616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e204d656d626572732063616e206e6576657220756e626f6e6420746f20616876616c75652062656c6f7720604d696e4a6f696e426f6e64602e304f766572666c6f775269736b0009042101546865207472616e73616374696f6e20636f756c64206e6f742062652065786563757465642064756520746f206f766572666c6f77207269736b20666f722074686520706f6f6c2e344e6f7444657374726f79696e67000a085d014120706f6f6c206d75737420626520696e205b60506f6f6c53746174653a3a44657374726f79696e67605d20696e206f7264657220666f7220746865206465706f7369746f7220746f20756e626f6e64206f7220666f72b86f74686572206d656d6265727320746f206265207065726d697373696f6e6c6573736c7920756e626f6e6465642e304e6f744e6f6d696e61746f72000b04f45468652063616c6c657220646f6573206e6f742068617665206e6f6d696e6174696e67207065726d697373696f6e7320666f722074686520706f6f6c2e544e6f744b69636b65724f7244657374726f79696e67000c043d01456974686572206129207468652063616c6c65722063616e6e6f74206d616b6520612076616c6964206b69636b206f722062292074686520706f6f6c206973206e6f742064657374726f79696e672e1c4e6f744f70656e000d047054686520706f6f6c206973206e6f74206f70656e20746f206a6f696e204d6178506f6f6c73000e04845468652073797374656d206973206d61786564206f7574206f6e20706f6f6c732e384d6178506f6f6c4d656d62657273000f049c546f6f206d616e79206d656d6265727320696e2074686520706f6f6c206f722073797374656d2e4443616e4e6f744368616e676553746174650010048854686520706f6f6c732073746174652063616e6e6f74206265206368616e6765642e54446f65734e6f74486176655065726d697373696f6e001104b85468652063616c6c657220646f6573206e6f742068617665206164657175617465207065726d697373696f6e732e544d65746164617461457863656564734d61784c656e001204ac4d657461646174612065786365656473205b60436f6e6669673a3a4d61784d657461646174614c656e605d24446566656e736976650400f10e0138446566656e736976654572726f720013083101536f6d65206572726f72206f6363757272656420746861742073686f756c64206e657665722068617070656e2e20546869732073686f756c64206265207265706f7274656420746f20746865306d61696e7461696e6572732e9c5061727469616c556e626f6e644e6f74416c6c6f7765645065726d697373696f6e6c6573736c79001404bc5061727469616c20756e626f6e64696e67206e6f7720616c6c6f776564207065726d697373696f6e6c6573736c792e5c4d6178436f6d6d697373696f6e526573747269637465640015041d0154686520706f6f6c2773206d617820636f6d6d697373696f6e2063616e6e6f742062652073657420686967686572207468616e20746865206578697374696e672076616c75652e60436f6d6d697373696f6e457863656564734d6178696d756d001604ec54686520737570706c69656420636f6d6d697373696f6e206578636565647320746865206d617820616c6c6f77656420636f6d6d697373696f6e2e78436f6d6d697373696f6e45786365656473476c6f62616c4d6178696d756d001704e854686520737570706c69656420636f6d6d697373696f6e206578636565647320676c6f62616c206d6178696d756d20636f6d6d697373696f6e2e64436f6d6d697373696f6e4368616e67655468726f74746c656400180409014e6f7420656e6f75676820626c6f636b732068617665207375727061737365642073696e636520746865206c61737420636f6d6d697373696f6e207570646174652e78436f6d6d697373696f6e4368616e6765526174654e6f74416c6c6f7765640019040101546865207375626d6974746564206368616e67657320746f20636f6d6d697373696f6e206368616e6765207261746520617265206e6f7420616c6c6f7765642e4c4e6f50656e64696e67436f6d6d697373696f6e001a04a05468657265206973206e6f2070656e64696e6720636f6d6d697373696f6e20746f20636c61696d2e584e6f436f6d6d697373696f6e43757272656e74536574001b048c4e6f20636f6d6d697373696f6e2063757272656e7420686173206265656e207365742e2c506f6f6c4964496e557365001c0464506f6f6c2069642063757272656e746c7920696e207573652e34496e76616c6964506f6f6c4964001d049c506f6f6c2069642070726f7669646564206973206e6f7420636f72726563742f757361626c652e4c426f6e64457874726152657374726963746564001e04fc426f6e64696e67206578747261206973207265737472696374656420746f207468652065786163742070656e64696e672072657761726420616d6f756e742e3c4e6f7468696e67546f41646a757374001f04b04e6f20696d62616c616e636520696e20746865204544206465706f73697420666f722074686520706f6f6c2e384e6f7468696e67546f536c617368002004cc4e6f20736c6173682070656e64696e6720746861742063616e206265206170706c69656420746f20746865206d656d6265722e2c536c617368546f6f4c6f77002104a854686520736c61736820616d6f756e7420697320746f6f206c6f7720746f206265206170706c6965642e3c416c72656164794d69677261746564002204150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e2068617320616c7265616479206d6967726174656420746f2064656c6567617465207374616b652e2c4e6f744d69677261746564002304150154686520706f6f6c206f72206d656d6265722064656c65676174696f6e20686173206e6f74206d696772617465642079657420746f2064656c6567617465207374616b652e304e6f74537570706f72746564002404f0546869732063616c6c206973206e6f7420616c6c6f77656420696e207468652063757272656e74207374617465206f66207468652070616c6c65742e285265737472696374656400250851014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e20706f6f6c732e2054686973206d61792068617070656e20696620746865206163636f756e742069737c7374616b696e6720696e20616e6f746865722077617920616c72656164792e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ef10e0c5c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c731870616c6c657438446566656e736976654572726f7200011c684e6f74456e6f7567685370616365496e556e626f6e64506f6f6c00000030506f6f6c4e6f74466f756e6400010048526577617264506f6f6c4e6f74466f756e6400020040537562506f6f6c734e6f74466f756e6400030070426f6e64656453746173684b696c6c65645072656d61747572656c790004005444656c65676174696f6e556e737570706f727465640005003c536c6173684e6f744170706c69656400060000f50e0c4070616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b49640191013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c7901fd07244163636f756e74496401003c5363686564756c654164647265737301750101181c4f6e676f696e670400f90e018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00002d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e7400050000f90e0c4070616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b49640191013452756e74696d654f726967696e015102184d6f6d656e7401101043616c6c0131021c42616c616e636501181454616c6c7901fd07244163636f756e74496401003c5363686564756c6541646472657373017501002c0114747261636b9101011c547261636b49640001186f726967696e5102013452756e74696d654f726967696e00012070726f706f73616c3102011043616c6c000124656e6163746d656e7421060150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f736974290e016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369742d0e018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e67310e01784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79fd07011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d390e01844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e0000fd0e0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454017501045300000400a50801185665633c543e0000010f0c4070616c6c65745f7265666572656e64611870616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e050f086070616c6c65745f72616e6b65645f636f6c6c656374697665304d656d6265725265636f7264000004011072616e6b9101011052616e6b0000090f00000408910100000d0f0000040891011000110f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000150f0c6070616c6c65745f72616e6b65645f636f6c6c6563746976651870616c6c6574144572726f7208045400044900012c34416c72656164794d656d626572000004704163636f756e7420697320616c72656164792061206d656d6265722e244e6f744d656d626572000104604163636f756e74206973206e6f742061206d656d6265722e284e6f74506f6c6c696e67000204b854686520676976656e20706f6c6c20696e64657820697320756e6b6e6f776e206f722068617320636c6f7365642e1c4f6e676f696e670003048054686520676976656e20706f6c6c206973207374696c6c206f6e676f696e672e344e6f6e6552656d61696e696e67000404ac546865726520617265206e6f2066757274686572207265636f72647320746f2062652072656d6f7665642e28436f7272757074696f6e00050468556e6578706563746564206572726f7220696e2073746174652e2852616e6b546f6f4c6f7700060494546865206d656d62657227732072616e6b20697320746f6f206c6f7720746f20766f74652e38496e76616c69645769746e6573730007049854686520696e666f726d6174696f6e2070726f766964656420697320696e636f72726563742e304e6f5065726d697373696f6e000804f8546865206f726967696e206973206e6f742073756666696369656e746c792070726976696c6567656420746f20646f20746865206f7065726174696f6e2e2853616d654d656d626572000904e0546865206e6577206d656d62657220746f2065786368616e6765206973207468652073616d6520617320746865206f6c64206d656d62657238546f6f4d616e794d656d62657273000a04cc546865206d6178206d656d62657220636f756e7420666f72207468652072616e6b20686173206265656e20726561636865642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e190f0c5c70616c6c65745f61737365745f636f6e76657273696f6e14747970657320506f6f6c496e666f042c506f6f6c417373657449640110000401206c705f746f6b656e10012c506f6f6c4173736574496400001d0f0c5c70616c6c65745f61737365745f636f6e76657273696f6e1870616c6c6574144572726f7204045400015c40496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e28506f6f6c45786973747300010450506f6f6c20616c7265616479206578697374732e4857726f6e6744657369726564416d6f756e74000204744465736972656420616d6f756e742063616e2774206265207a65726f2e60416d6f756e744f6e654c6573735468616e4d696e696d616c000308490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e60416d6f756e7454776f4c6573735468616e4d696e696d616c000408490150726f766964656420616d6f756e742073686f756c642062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e68526573657276654c6566744c6573735468616e4d696e696d616c0005084d0152657365727665206e6565647320746f20616c776179732062652067726561746572207468616e206f7220657175616c20746f20746865206578697374656e7469616c206465706f7369742f617373657427733c6d696e696d616c20616d6f756e742e40416d6f756e744f7574546f6f48696768000604c84465736972656420616d6f756e742063616e277420626520657175616c20746f2074686520706f6f6c20726573657276652e30506f6f6c4e6f74466f756e640007045c54686520706f6f6c20646f65736e27742065786973742e204f766572666c6f7700080454416e206f766572666c6f772068617070656e65642e8041737365744f6e654465706f7369744469644e6f744d6565744d696e696d756d0009042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e80417373657454776f4465706f7369744469644e6f744d6565744d696e696d756d000a042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e8c41737365744f6e655769746864726177616c4469644e6f744d6565744d696e696d756d000b042901546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f722074686520666972737420746f6b656e20696e207468652070616972207761736e2774206d65742e8c417373657454776f5769746864726177616c4469644e6f744d6565744d696e696d756d000c042d01546865206d696e696d616c20616d6f756e7420726571756972656d656e7420666f7220746865207365636f6e6420746f6b656e20696e207468652070616972207761736e2774206d65742e704f7074696d616c416d6f756e744c6573735468616e44657369726564000d04bc4f7074696d616c2063616c63756c6174656420616d6f756e74206973206c657373207468616e20646573697265642e6c496e73756666696369656e744c69717569646974794d696e746564000e0478496e73756666696369656e74206c6971756964697479206d696e7465642e345a65726f4c6971756964697479000f0488526571756573746564206c69717569646974792063616e2774206265207a65726f2e285a65726f416d6f756e7400100454416d6f756e742063616e2774206265207a65726f2e8c50726f76696465644d696e696d756d4e6f7453756666696369656e74466f7253776170001104ec43616c63756c6174656420616d6f756e74206f7574206973206c657373207468616e2070726f7669646564206d696e696d756d20616d6f756e742e8c50726f76696465644d6178696d756d4e6f7453756666696369656e74466f7253776170001204cc50726f7669646564206d6178696d756d20616d6f756e74206973206e6f742073756666696369656e7420666f7220737761702e2c496e76616c696450617468001304d45468652070726f76696465642070617468206d75737420636f6e7369737473206f66203220617373657473206174206c656173742e344e6f6e556e6971756550617468001404c45468652070726f76696465642070617468206d75737420636f6e7369737473206f6620756e69717565206173736574732e50496e636f7272656374506f6f6c41737365744964001504ec497420776173206e6f7420706f737369626c6520746f20676574206f7220696e6372656d656e7420746865204964206f662074686520706f6f6c2e3042656c6f774d696e696d756d001604f05468652064657374696e6174696f6e206163636f756e742063616e6e6f7420657869737420776974682074686520737761707065642066756e64732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e210f0c4c70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c73746173686573250f01d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564290f0190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e0000250f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454010101045300000400fc01185665633c543e0000290f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400c90101185665633c543e00002d0f0c4c70616c6c65745f666173745f756e7374616b651870616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f7765640005041d015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070616c6c6574206973206e6f74206163746976652e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e310f085070616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e011000180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273350f01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000350f04184f7074696f6e04045401390f0108104e6f6e6500000010536f6d650400390f0000010000390f085070616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e011000080110707265761001344d6573736167654f726967696e0001106e6578741001344d6573736167654f726967696e00003d0f085070616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170410f019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000410f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000450f0c5070616c6c65745f6d6573736167655f71756575651870616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e490f0c3c70616c6c65745f74785f70617573651870616c6c6574144572726f720404540001102049735061757365640000044c5468652063616c6c206973207061757365642e284973556e706175736564000104545468652063616c6c20697320756e7061757365642e28556e7061757361626c65000204b45468652063616c6c2069732077686974656c697374656420616e642063616e6e6f74206265207061757365642e204e6f74466f756e64000300048054686520604572726f726020656e756d206f6620746869732070616c6c65742e4d0f0c4070616c6c65745f736166655f6d6f64651870616c6c6574144572726f7204045400011c1c456e7465726564000004b054686520736166652d6d6f64652069732028616c7265616479206f72207374696c6c2920656e74657265642e18457869746564000104ac54686520736166652d6d6f64652069732028616c7265616479206f72207374696c6c29206578697465642e344e6f74436f6e666967757265640002040901546869732066756e6374696f6e616c697479206f66207468652070616c6c65742069732064697361626c65642062792074686520636f6e66696775726174696f6e2e244e6f4465706f736974000304745468657265206973206e6f2062616c616e63652072657365727665642e40416c72656164794465706f73697465640004045d01546865206163636f756e7420616c7265616479206861732061206465706f73697420726573657276656420616e642063616e207468657265666f7265206e6f7420656e746572206f7220657874656e6420616761696e2e4043616e6e6f7452656c656173655965740005049054686973206465706f7369742063616e6e6f742062652072656c6561736564207965742e3443757272656e63794572726f72000604a0416e206572726f722066726f6d2074686520756e6465726c79696e67206043757272656e6379602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e510f0c4470616c6c65745f6d6967726174696f6e731870616c6c6574144572726f720404540001041c4f6e676f696e67000004e8546865206f7065726174696f6e2063616e6e6f7420636f6d706c6574652073696e636520736f6d65204d424d7320617265206f6e676f696e672e048054686520604572726f726020656e756d206f6620746869732070616c6c65742e550f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f106045300000400590f01185665633c543e0000590f000002f106005d0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401610f045300000400650f01185665633c543e0000610f0c3470616c6c65745f62726f6b65721474797065733c4c656173655265636f72644974656d0000080114756e74696c10012454696d65736c6963650001107461736b1001185461736b49640000650f000002610f00690f0c3470616c6c65745f62726f6b6572147479706573305374617475735265636f72640000140128636f72655f636f756e7491010124436f7265496e646578000144707269766174655f706f6f6c5f73697a65100140436f72654d61736b426974436f756e7400014073797374656d5f706f6f6c5f73697a65100140436f72654d61736b426974436f756e740001606c6173745f636f6d6d69747465645f74696d65736c69636510012454696d65736c6963650001386c6173745f74696d65736c69636510012454696d65736c69636500006d0f0c3470616c6c65745f62726f6b65721474797065733853616c65496e666f5265636f7264081c42616c616e636501184052656c6179426c6f636b4e756d62657201100028012873616c655f737461727410014052656c6179426c6f636b4e756d6265720001346c656164696e5f6c656e67746810014052656c6179426c6f636b4e756d626572000124656e645f707269636518011c42616c616e6365000130726567696f6e5f626567696e10012454696d65736c696365000128726567696f6e5f656e6410012454696d65736c696365000140696465616c5f636f7265735f736f6c6491010124436f7265496e646578000134636f7265735f6f66666572656491010124436f7265496e64657800012866697273745f636f726591010124436f7265496e64657800013473656c6c6f75745f7072696365b103013c4f7074696f6e3c42616c616e63653e000128636f7265735f736f6c6491010124436f7265496e6465780000710f0c3470616c6c65745f62726f6b657214747970657348506f74656e7469616c52656e6577616c49640000080110636f726591010124436f7265496e6465780001107768656e10012454696d65736c6963650000750f0c3470616c6c65745f62726f6b657214747970657358506f74656e7469616c52656e6577616c5265636f7264041c42616c616e6365011800080114707269636518011c42616c616e6365000128636f6d706c6574696f6e790f0140436f6d706c6574696f6e5374617475730000790f0c3470616c6c65745f62726f6b657214747970657340436f6d706c6574696f6e5374617475730001081c5061727469616c0400f9060120436f72654d61736b00000020436f6d706c6574650400f10601205363686564756c65000100007d0f0c3470616c6c65745f62726f6b657214747970657330526567696f6e5265636f726408244163636f756e74496401001c42616c616e63650118000c010c656e6410012454696d65736c6963650001146f776e6572ac01444f7074696f6e3c4163636f756e7449643e00011070616964b103013c4f7074696f6e3c42616c616e63653e0000810f0000040810910100850f0c3470616c6c65745f62726f6b657214747970657348436f6e747269627574696f6e5265636f726404244163636f756e7449640100000801186c656e67746810012454696d65736c69636500011470617965650001244163636f756e7449640000890f0c3470616c6c65745f62726f6b657214747970657330506f6f6c496f5265636f7264000008011c707269766174658d0f01585369676e6564436f72654d61736b426974436f756e7400011873797374656d8d0f01585369676e6564436f72654d61736b426974436f756e7400008d0f0000050b00910f0c3470616c6c65745f62726f6b657214747970657358496e737461506f6f6c486973746f72795265636f7264041c42616c616e63650118000c0154707269766174655f636f6e747269627574696f6e73100140436f72654d61736b426974436f756e7400015073797374656d5f636f6e747269627574696f6e73100140436f72654d61736b426974436f756e740001306d617962655f7061796f7574b103013c4f7074696f6e3c42616c616e63653e0000950f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401990f0453000004009d0f01185665633c543e0000990f0c3470616c6c65745f62726f6b6572147479706573444175746f52656e6577616c5265636f726400000c0110636f726591010124436f7265496e6465780001107461736b1001185461736b49640001306e6578745f72656e6577616c10012454696d65736c69636500009d0f000002990f00a10f0c3470616c6c65745f62726f6b65721870616c6c6574144572726f7204045400019434556e6b6e6f776e526567696f6e0000049c54686520676976656e20726567696f6e206964656e74697479206973206e6f74206b6e6f776e2e204e6f744f776e6572000104a8546865206f776e6572206f662074686520726567696f6e206973206e6f7420746865206f726967696e2e305069766f74546f6f4c6174650002040d01546865207069766f7420706f696e74206f662074686520706172746974696f6e206174206f722061667465722074686520656e64206f662074686520726567696f6e2e345069766f74546f6f4561726c790003040101546865207069766f7420706f696e74206f662074686520706172746974696f6e2061742074686520626567696e6e696e67206f662074686520726567696f6e2e344578746572696f725069766f740004045d01546865207069766f74206d61736b20666f722074686520696e7465726c6163696e67206973206e6f7420636f6e7461696e65642077697468696e2074686520726567696f6e277320696e7465726c616365206d61736b2e24566f69645069766f740005042501546865207069766f74206d61736b20666f722074686520696e7465726c6163696e6720697320766f69642028616e64207468657265666f726520756e7363686564756c61626c65292e34436f6d706c6574655069766f740006044d01546865207069766f74206d61736b20666f722074686520696e7465726c6163696e6720697320636f6d706c6574652028616e64207468657265666f7265206e6f7420612073747269637420737562736574292e3c436f7272757074576f726b706c616e000704450154686520776f726b706c616e206f66207468652070616c6c6574277320737461746520697320696e76616c69642e205468697320696e64696361746573206120737461746520636f7272757074696f6e2e1c4e6f53616c6573000804945468657265206973206e6f2073616c652068617070656e696e672063757272656e746c792e284f76657270726963656400090470546865207072696365206c696d69742069732065786365656465642e2c556e617661696c61626c65000a0474546865726520617265206e6f20636f72657320617661696c61626c652e1c536f6c644f7574000b04805468652073616c65206c696d697420686173206265656e20726561636865642e2457726f6e6754696d65000c085d015468652072656e6577616c206f7065726174696f6e206973206e6f742076616c6964206174207468652063757272656e742074696d6520286974206d6179206265636f6d652076616c696420696e20746865206e6578741873616c65292e284e6f74416c6c6f776564000d0464496e76616c696420617474656d707420746f2072656e65772e34556e696e697469616c697a6564000e04a4546869732070616c6c657420686173206e6f7420796574206265656e20696e697469616c697a65642e20546f6f4561726c79000f0409015468652070757263686173652063616e6e6f742068617070656e20796574206173207468652073616c6520706572696f642069732079657420746f20626567696e2e2c4e6f7468696e67546f446f001004705468657265206973206e6f20776f726b20746f20626520646f6e652e4c546f6f4d616e795265736572766174696f6e73001104f0546865206d6178696d756d20616d6f756e74206f66207265736572766174696f6e732068617320616c7265616479206265656e20726561636865642e34546f6f4d616e794c6561736573001204d8546865206d6178696d756d20616d6f756e74206f66206c65617365732068617320616c7265616479206265656e20726561636865642e344c656173654e6f74466f756e6400130464546865206c6561736520646f6573206e6f742065786973742e38556e6b6e6f776e526576656e75650014085d0154686520726576656e756520666f722074686520496e7374616e74616e656f757320436f72652053616c6573206f66207468697320706572696f64206973206e6f74202879657429206b6e6f776e20616e6420746875737874686973206f7065726174696f6e2063616e6e6f742070726f636565642e4c556e6b6e6f776e436f6e747269627574696f6e0015041901546865206964656e74696669656420636f6e747269627574696f6e20746f2074686520496e7374616e74616e656f757320436f726520506f6f6c20697320756e6b6e6f776e2e50496e636f6d706c65746541737369676e6d656e740016084d0154686520776f726b6c6f61642061737369676e656420666f722072656e6577616c20697320696e636f6d706c6574652e205468697320697320756e657870656374656420616e6420696e646963617465732061306c6f676963206572726f722e285374696c6c56616c6964001704d0416e206974656d2063616e6e6f742062652064726f707065642062656361757365206974206973207374696c6c2076616c69642e244e6f486973746f72790018048054686520686973746f7279206974656d20646f6573206e6f742065786973742e48556e6b6e6f776e5265736572766174696f6e001904a44e6f207265736572766174696f6e206f662074686520676976656e20696e646578206578697374732e38556e6b6e6f776e52656e6577616c001a048c5468652072656e6577616c207265636f72642063616e6e6f7420626520666f756e642e38416c726561647945787069726564001b04a4546865206c65617365206578706972792074696d652068617320616c7265616479207061737365642e34496e76616c6964436f6e666967001c04f454686520636f6e66696775726174696f6e20636f756c64206e6f74206265206170706c696564206265636175736520697420697320696e76616c69642e444e6f436c61696d54696d65736c69636573001d04d454686520726576656e7565206d75737420626520636c61696d656420666f722031206f72206d6f72652074696d65736c696365732e304e6f5065726d697373696f6e001e0425015468652063616c6c657220646f65736e2774206861766520746865207065726d697373696f6e20746f20656e61626c65206f722064697361626c65206175746f2d72656e6577616c2e4c546f6f4d616e794175746f52656e6577616c73001f049c5765207265616368656420746865206c696d697420666f72206175746f2d72656e6577616c732e484e6f6e5461736b4175746f52656e6577616c002004f04f6e6c7920636f726573207768696368206172652061737369676e656420746f2061207461736b2063616e206265206175746f2d72656e657765642e60536f7665726569676e4163636f756e744e6f74466f756e64002104b84661696c656420746f206765742074686520736f7665726569676e206163636f756e74206f662061207461736b2e544175746f52656e6577616c4e6f74456e61626c65640022042501417474656d7074656420746f2064697361626c65206175746f2d72656e6577616c20666f72206120636f72652074686174206469646e2774206861766520697420656e61626c65642e4841737369676e6d656e744e6f74466f756e64002304ec417474656d7074656420746f20666f7263652072656d6f766520616e2061737369676e6d656e74207468617420646f65736e27742065786973742e584372656469745075726368617365546f6f536d616c6c00240859014e656564656420746f2070726576656e74207370616d2061747461636b732e54686520616d6f756e74206f66206372656469747320746865207573657220617474656d7074656420746f2070757263686173652069738462656c6f772060543a3a4d696e696d756d4372656469745075726368617365602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea50f0c5070616c6c65745f6578616d706c655f7461736b731870616c6c6574144572726f72040454000104204e6f74466f756e6400000488546865207265666572656e636564207461736b20776173206e6f7420666f756e642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ea90f0c6c70616c6c65745f61737365745f636f6e76657273696f6e5f6f70731870616c6c6574144572726f7204045400011040496e76616c6964417373657450616972000004b850726f76696465642061737365742070616972206973206e6f7420737570706f7274656420666f7220706f6f6c2e30506f6f6c4e6f74466f756e640001045c54686520706f6f6c20646f65736e27742065786973742e2c5a65726f42616c616e636500020478506f6f6c27732062616c616e63652063616e6e6f74206265207a65726f2e3c5061727469616c5472616e736665720003043901496e646963617465732061207061727469616c207472616e73666572206f662062616c616e636520746f20746865206e6577206163636f756e7420647572696e672061206d6967726174696f6e2e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ead0f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000b10f0c3470616c6c65745f726576697665107761736d20436f6465496e666f04045400001401146f776e65720001384163636f756e7449644f663c543e00011c6465706f736974a102013042616c616e63654f663c543e000120726566636f756e742c010c753634000120636f64655f6c656e10010c7533320001446265686176696f75725f76657273696f6e10010c7533320000b50f0c3470616c6c65745f7265766976651c73746f7261676530436f6e7472616374496e666f040454000020011c747269655f6964c5010118547269654964000124636f64655f6861736834013473705f636f72653a3a4832353600013473746f726167655f627974657310010c75333200013473746f726167655f6974656d7310010c75333200015073746f726167655f627974655f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f6974656d5f6465706f73697418013042616c616e63654f663c543e00015073746f726167655f626173655f6465706f73697418013042616c616e63654f663c543e000148696d6d757461626c655f646174615f6c656e10010c7533320000b90f0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000bd0f0c3470616c6c65745f7265766976651c73746f726167655044656c6574696f6e51756575654d616e616765720404540000080138696e736572745f636f756e74657210010c75333200013864656c6574655f636f756e74657210010c7533320000c10f0c3470616c6c65745f7265766976651870616c6c6574144572726f720404540001b43c496e76616c69645363686564756c650001041901496e76616c6964207363686564756c6520737570706c6965642c20652e672e2077697468207a65726f20776569676874206f662061206261736963206f7065726174696f6e2e40496e76616c696443616c6c466c6167730002043501496e76616c696420636f6d62696e6174696f6e206f6620666c61677320737570706c69656420746f20607365616c5f63616c6c60206f7220607365616c5f64656c65676174655f63616c6c602e204f75744f66476173000304b854686520657865637574656420636f6e7472616374206578686175737465642069747320676173206c696d69742e385472616e736665724661696c65640004083501506572666f726d696e672074686520726571756573746564207472616e73666572206661696c65642e2050726f6261626c7920626563617573652074686572652069736e277420656e6f75676894667265652062616c616e636520696e207468652073656e6465722773206163636f756e742e4c4d617843616c6c4465707468526561636865640005082101506572666f726d696e6720612063616c6c207761732064656e6965642062656361757365207468652063616c6c696e67206465707468207265616368656420746865206c696d6974946f6620776861742069732073706563696669656420696e20746865207363686564756c652e40436f6e74726163744e6f74466f756e64000604bc4e6f20636f6e74726163742077617320666f756e64206174207468652073706563696669656420616464726573732e30436f64654e6f74466f756e64000704c44e6f20636f646520636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e40436f6465496e666f4e6f74466f756e64000804d84e6f20636f646520696e666f20636f756c6420626520666f756e642061742074686520737570706c69656420636f646520686173682e2c4f75744f66426f756e647300090425014120627566666572206f757473696465206f662073616e64626f78206d656d6f7279207761732070617373656420746f206120636f6e7472616374204150492066756e6374696f6e2e384465636f64696e674661696c6564000a042901496e7075742070617373656420746f206120636f6e7472616374204150492066756e6374696f6e206661696c656420746f206465636f646520617320657870656374656420747970652e3c436f6e747261637454726170706564000b0488436f6e7472616374207472617070656420647572696e6720657865637574696f6e2e3456616c7565546f6f4c61726765000c04cc5468652073697a6520646566696e656420696e2060543a3a4d617856616c756553697a6560207761732065786365656465642e605465726d696e617465645768696c655265656e7472616e74000d0819015465726d696e6174696f6e206f66206120636f6e7472616374206973206e6f7420616c6c6f776564207768696c652074686520636f6e747261637420697320616c7265616479e06f6e207468652063616c6c20737461636b2e2043616e2062652074726967676572656420627920607365616c5f7465726d696e617465602e38496e707574466f72776172646564000e044101607365616c5f63616c6c6020666f72776172646564207468697320636f6e74726163747320696e7075742e204974207468657265666f7265206973206e6f206c6f6e67657220617661696c61626c652e34546f6f4d616e79546f70696373000f041d0154686520616d6f756e74206f6620746f706963732070617373656420746f20607365616c5f6465706f7369745f6576656e747360206578636565647320746865206c696d69742e444475706c6963617465436f6e7472616374001204c84120636f6e74726163742077697468207468652073616d65204163636f756e74496420616c7265616479206578697374732e5c5465726d696e61746564496e436f6e7374727563746f7200130cb84120636f6e74726163742073656c66206465737472756374656420696e2069747320636f6e7374727563746f722e00d0546869732063616e2062652074726967676572656420627920612063616c6c20746f20607365616c5f7465726d696e617465602e405265656e7472616e636544656e6965640014040d01412063616c6c20747269656420746f20696e766f6b65206120636f6e7472616374207468617420697320666c6167676564206173206e6f6e2d7265656e7472616e742e3c5265656e746572656450616c6c65740015042d014120636f6e74726163742063616c6c656420696e746f207468652072756e74696d65207768696368207468656e2063616c6c6564206261636b20696e746f20746869732070616c6c65742e4453746174654368616e676544656e6965640016044d014120636f6e747261637420617474656d7074656420746f20696e766f6b652061207374617465206d6f64696679696e6720415049207768696c65206265696e6720696e20726561642d6f6e6c79206d6f64652e7053746f726167654465706f7369744e6f74456e6f75676846756e647300170421014f726967696e20646f65736e2774206861766520656e6f7567682062616c616e636520746f20706179207468652072657175697265642073746f72616765206465706f736974732e7053746f726167654465706f7369744c696d69744578686175737465640018040d014d6f72652073746f72616765207761732063726561746564207468616e20616c6c6f776564206279207468652073746f72616765206465706f736974206c696d69742e24436f6465496e5573650019044901436f64652072656d6f76616c207761732064656e69656420626563617573652074686520636f6465206973207374696c6c20696e20757365206279206174206c65617374206f6e6520636f6e74726163742e40436f6e74726163745265766572746564001a10250154686520636f6e74726163742072616e20746f20636f6d706c6574696f6e20627574206465636964656420746f20726576657274206974732073746f72616765206368616e6765732e4901506c65617365206e6f746520746861742074686973206572726f72206973206f6e6c792072657475726e65642066726f6d2065787472696e736963732e205768656e2063616c6c6564206469726563746c795d016f72207669612052504320616e20604f6b602077696c6c2062652072657475726e65642e20496e20746869732063617365207468652063616c6c6572206e6565647320746f20696e73706563742074686520666c616773c4746f2064657465726d696e652077686574686572206120726576657273696f6e206861732074616b656e20706c6163652e30436f646552656a6563746564001b10190154686520636f6e7472616374206661696c656420746f20636f6d70696c65206f72206973206d697373696e672074686520636f727265637420656e74727920706f696e74732e00510141206d6f72652064657461696c6564206572726f722063616e20626520666f756e64206f6e20746865206e6f646520636f6e736f6c65206966206465627567206d657373616765732061726520656e61626c65649c627920737570706c79696e6720602d6c72756e74696d653a3a7265766976653d6465627567602e30426c6f62546f6f4c61726765001c040d0154686520636f646520626c6f6220737570706c696564206973206c6172676572207468616e205b606c696d6974733a3a636f64653a3a424c4f425f4259544553605d2e505374617469634d656d6f7279546f6f4c61726765001d08f454686520737461746963206d656d6f727920636f6e73756d7074696f6e206f662074686520626c6f622077696c6c206265206c6172676572207468616e985b606c696d6974733a3a636f64653a3a5354415449435f4d454d4f52595f4259544553605d2e484261736963426c6f636b546f6f4c61726765001e04fc5468652070726f6772616d20636f6e7461696e73206120626173696320626c6f636b2074686174206973206c6172676572207468616e20616c6c6f7765642e48496e76616c6964496e737472756374696f6e001f04b05468652070726f6772616d20636f6e7461696e7320616e20696e76616c696420696e737472756374696f6e2e784d617844656c6567617465446570656e64656e6369657352656163686564002004150154686520636f6e747261637420686173207265616368656420697473206d6178696d756d206e756d626572206f662064656c656761746520646570656e64656e636965732e6844656c6567617465446570656e64656e63794e6f74466f756e64002104150154686520646570656e64656e637920776173206e6f7420666f756e6420696e2074686520636f6e747261637427732064656c656761746520646570656e64656e636965732e7c44656c6567617465446570656e64656e6379416c7265616479457869737473002204f854686520636f6e747261637420616c726561647920646570656e6473206f6e2074686520676976656e2064656c656761746520646570656e64656e63792e8443616e6e6f7441646453656c66417344656c6567617465446570656e64656e6379002304290143616e206e6f742061646420612064656c656761746520646570656e64656e637920746f2074686520636f64652068617368206f662074686520636f6e747261637420697473656c662e544f75744f665472616e7369656e7453746f72616765002404ac43616e206e6f7420616464206d6f7265206461746120746f207472616e7369656e742073746f726167652e38496e76616c696453797363616c6c002504550154686520636f6e747261637420747269656420746f2063616c6c20612073797363616c6c20776869636820646f6573206e6f7420657869737420286174206974732063757272656e7420617069206c6576656c292e4c496e76616c696453746f72616765466c6167730026040501496e76616c69642073746f7261676520666c61677320776572652070617373656420746f206f6e65206f66207468652073746f726167652073797363616c6c732e3c457865637574696f6e4661696c65640027042901506f6c6b61564d206661696c656420647572696e6720636f646520657865637574696f6e2e2050726f6261626c792064756520746f2061206d616c666f726d65642070726f6772616d2e5c42616c616e6365436f6e76657273696f6e4661696c6564002804984661696c656420746f20636f6e766572742061205532353620746f20612042616c616e63652e50446563696d616c507265636973696f6e4c6f7373002904d44661696c656420746f20636f6e7665727420616e2045564d2062616c616e636520746f2061206e61746976652062616c616e63652e58496e76616c6964496d6d757461626c65416363657373002a083101496d6d757461626c6520646174612063616e206f6e6c792062652073657420647572696e67206465706c6f797320616e64206f6e6c79206265207265616420647572696e672063616c6c732e35014164646974696f6e616c6c792c206974206973206f6e6c792076616c696420746f20736574207468652064617461206f6e636520616e64206974206d757374206e6f7420626520656d7074792e3c4163636f756e74556e6d6170706564002b0c5101416e20604163636f756e744944333260206163636f756e7420747269656420746f20696e7465726163742077697468207468652070616c6c657420776974686f757420686176696e672061206d617070696e672e00290143616c6c205b6050616c6c65743a3a6d61705f6163636f756e74605d20696e206f7264657220746f206372656174652061206d617070696e6720666f7220746865206163636f756e742e504163636f756e74416c72656164794d6170706564002c04bc547269656420746f206d617020616e206163636f756e74207468617420697320616c7265616479206d61707065642e64496e76616c696447656e657269635472616e73616374696f6e002d04d8546865207472616e73616374696f6e207573656420746f206472792d72756e206120636f6e747261637420697320696e76616c69642e5c526566636f756e744f7665724f72556e646572666c6f77002e04c854686520726566636f756e74206f66206120636f646520656974686572206f766572206f7220756e646572666c6f7765642e70556e737570706f72746564507265636f6d70696c6541646472657373002f0478556e737570706f7274656420707265636f6d70696c652061646472657373048054686520604572726f726020656e756d206f6620746869732070616c6c65742ec50f0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732844656c65676174696f6e04045400000801146167656e74000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0000c90f0c6070616c6c65745f64656c6567617465645f7374616b696e671474797065732c4167656e744c656467657204045400001001147061796565000130543a3a4163636f756e74496400013c746f74616c5f64656c656761746564a102013042616c616e63654f663c543e000154756e636c61696d65645f7769746864726177616c73a102013042616c616e63654f663c543e00013470656e64696e675f736c617368a102013042616c616e63654f663c543e0000cd0f0c6070616c6c65745f64656c6567617465645f7374616b696e671870616c6c6574144572726f72040454000130284e6f74416c6c6f776564000004a8546865206163636f756e742063616e6e6f7420706572666f726d2074686973206f7065726174696f6e2e38416c72656164795374616b696e67000104b8416e206578697374696e67207374616b65722063616e6e6f7420706572666f726d207468697320616374696f6e2e60496e76616c696452657761726444657374696e6174696f6e000204d45265776172642044657374696e6174696f6e2063616e6e6f742062652073616d6520617320604167656e7460206163636f756e742e44496e76616c696444656c65676174696f6e0003148844656c65676174696f6e20636f6e646974696f6e7320617265206e6f74206d65742e004c506f737369626c6520697373756573206172656c31292043616e6e6f742064656c656761746520746f2073656c662ca432292043616e6e6f742064656c656761746520746f206d756c7469706c652064656c6567617465732e384e6f74456e6f75676846756e64730004040101546865206163636f756e7420646f6573206e6f74206861766520656e6f7567682066756e647320746f20706572666f726d20746865206f7065726174696f6e2e204e6f744167656e74000504804e6f7420616e206578697374696e6720604167656e7460206163636f756e742e304e6f7444656c656761746f72000604604e6f7420612044656c656761746f72206163636f756e742e20426164537461746500070488536f6d6520636f7272757074696f6e20696e20696e7465726e616c2073746174652e38556e6170706c696564536c617368000804dc556e6170706c6965642070656e64696e6720736c61736820726573747269637473206f7065726174696f6e206f6e20604167656e74602e384e6f7468696e67546f536c617368000904ac604167656e746020686173206e6f2070656e64696e6720736c61736820746f206265206170706c6965642e3857697468647261774661696c6564000a04b04661696c656420746f20776974686472617720616d6f756e742066726f6d20436f7265205374616b696e672e304e6f74537570706f72746564000b049c4f7065726174696f6e206e6f7420737570706f7274656420627920746869732070616c6c65742e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ed10f085070616c6c65745f61737365745f7265776172647338506f6f6c5374616b6572496e666f041c42616c616e63650118000c0118616d6f756e7418011c42616c616e636500011c7265776172647318011c42616c616e63650001547265776172645f7065725f746f6b656e5f7061696418011c42616c616e63650000d50f085070616c6c65745f61737365745f7265776172647320506f6f6c496e666f10244163636f756e74496401001c4173736574496401a01c42616c616e636501182c426c6f636b4e756d62657201100024013c7374616b65645f61737365745f6964a0011c4173736574496400013c7265776172645f61737365745f6964a0011c417373657449640001547265776172645f726174655f7065725f626c6f636b18011c42616c616e63650001306578706972795f626c6f636b10012c426c6f636b4e756d62657200011461646d696e0001244163636f756e74496400014c746f74616c5f746f6b656e735f7374616b656418011c42616c616e636500015c7265776172645f7065725f746f6b656e5f73746f72656418011c42616c616e63650001446c6173745f7570646174655f626c6f636b10012c426c6f636b4e756d62657200011c6163636f756e740001244163636f756e7449640000d90f0000040800dd0f00dd0f14346672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e63650000e10f0c5070616c6c65745f61737365745f726577617264731870616c6c6574144572726f720404540001283c4e6f74456e6f756768546f6b656e730000040101546865207374616b657220646f6573206e6f74206861766520656e6f75676820746f6b656e7320746f20706572666f726d20746865206f7065726174696f6e2e3c4e6f6e4578697374656e74506f6f6c000104c8416e206f7065726174696f6e2077617320617474656d70746564206f6e2061206e6f6e2d6578697374656e7420706f6f6c2e444e6f6e4578697374656e745374616b6572000204d4416e206f7065726174696f6e2077617320617474656d7074656420666f722061206e6f6e2d6578697374656e74207374616b65722e404e6f6e4578697374656e744173736574000304d4416e206f7065726174696f6e2077617320617474656d7074656420776974682061206e6f6e2d6578697374656e742061737365742e68426c6f636b4e756d626572436f6e76657273696f6e4572726f72000404b454686572652077617320616e206572726f7220636f6e76657274696e67206120626c6f636b206e756d6265722e70457870697279426c6f636b4d7573744265496e5468654675747572650005049c5468652065787069727920626c6f636b206d75737420626520696e20746865206675747572652e44496e73756666696369656e7446756e6473000604a0496e73756666696369656e742066756e647320746f206372656174652074686520667265657a652e24457870697279437574000704985468652065787069727920626c6f636b2063616e206265206f6e6c7920657874656e6465642e3452657761726452617465437574000804c05468652072657761726420726174652070657220626c6f636b2063616e206265206f6e6c7920696e637265617365642e304e6f6e456d707479506f6f6c000904b054686520706f6f6c207374696c6c20686173207374616b656420746f6b656e73206f7220726577617264732e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee50f0c5470616c6c65745f6173736574735f667265657a65721870616c6c6574144572726f7208045400044900010438546f6f4d616e79467265657a6573000004e84e756d626572206f6620667265657a6573206f6e20616e206163636f756e7420776f756c642065786365656420604d6178467265657a6573602e048054686520604572726f726020656e756d206f6620746869732070616c6c65742ee90f0c3870616c6c65745f6d6574615f74781870616c6c6574144572726f720404540001182042616450726f6f660000047c496e76616c69642070726f6f662028652e672e207369676e6174757265292e18467574757265000104f0546865206d657461207472616e73616374696f6e206973206e6f74207965742076616c69642028652e672e206e6f6e636520746f6f2068696768292e145374616c65000204d8546865206d657461207472616e73616374696f6e206973206f757464617465642028652e672e206e6f6e636520746f6f206c6f77292e44416e6369656e744269727468426c6f636b000304bc546865206d657461207472616e73616374696f6e73277320626972746820626c6f636b20697320616e6369656e742e34556e6b6e6f776e4f726967696e000404dc546865207472616e73616374696f6e20657874656e73696f6e20646964206e6f7420617574686f72697a6520616e79206f726967696e2e1c496e76616c696400050480546865206d657461207472616e73616374696f6e20697320696e76616c69642e048054686520604572726f726020656e756d206f6620746869732070616c6c65742eed0f082873705f72756e74696d655845787472696e736963496e636c7573696f6e4d6f646500010834416c6c45787472696e73696373000000344f6e6c79496e686572656e747300010000f10f081c73705f636f7265384f70617175654d657461646174610000040038011c5665633c75383e0000f50f04184f7074696f6e04045401f10f0108104e6f6e6500000010536f6d650400f10f0000010000f90f0c346672616d655f737570706f727438766965775f66756e6374696f6e73385669657746756e6374696f6e49640000080118707265666978490101205b75383b2031365d000118737566666978490101205b75383b2031365d0000fd0f0418526573756c74080454013804450101100108084f6b040038000000000c45727204000110000001000001100c346672616d655f737570706f727438766965775f66756e6374696f6e73645669657746756e6374696f6e44697370617463684572726f7200010c384e6f74496d706c656d656e746564000000204e6f74466f756e640400f90f01385669657746756e6374696f6e496400010014436f6465630002000005100418526573756c74080454018404450109100108084f6b040084000000000c45727204000910000001000009100c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479605472616e73616374696f6e56616c69646974794572726f720001081c496e76616c696404000d100148496e76616c69645472616e73616374696f6e0000001c556e6b6e6f776e040011100148556e6b6e6f776e5472616e73616374696f6e000100000d100c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948496e76616c69645472616e73616374696f6e0001341043616c6c0000001c5061796d656e7400010018467574757265000200145374616c650003002042616450726f6f6600040044416e6369656e744269727468426c6f636b0005004445786861757374735265736f757263657300060018437573746f6d04000801087538000700304261644d616e6461746f72790008004c4d616e6461746f727956616c69646174696f6e000900244261645369676e6572000a0054496e64657465726d696e617465496d706c69636974000b0034556e6b6e6f776e4f726967696e000c000011100c2873705f72756e74696d65507472616e73616374696f6e5f76616c696469747948556e6b6e6f776e5472616e73616374696f6e00010c3043616e6e6f744c6f6f6b75700000004c4e6f556e7369676e656456616c696461746f7200010018437573746f6d04000801087538000200001510083073705f696e686572656e747330496e686572656e74446174610000040110646174611910019442547265654d61703c496e686572656e744964656e7469666965722c205665633c75383e3e00001910042042547265654d617008044b017d04045601380004001d100000001d100000022110002110000004087d0438002510083073705f696e686572656e747350436865636b496e686572656e7473526573756c7400000c01106f6b6179200110626f6f6c00012c666174616c5f6572726f72200110626f6f6c0001186572726f727315100130496e686572656e7444617461000029100c2873705f72756e74696d65507472616e73616374696f6e5f76616c6964697479445472616e73616374696f6e536f7572636500010c1c496e426c6f636b000000144c6f63616c0001002045787465726e616c000200002d100418526573756c7408045401311004450109100108084f6b04003110000000000c45727204000910000001000031100c2873705f72756e74696d65507472616e73616374696f6e5f76616c69646974794056616c69645472616e73616374696f6e00001401207072696f7269747930014c5472616e73616374696f6e5072696f7269747900012072657175697265734502014c5665633c5472616e73616374696f6e5461673e00012070726f76696465734502014c5665633c5472616e73616374696f6e5461673e0001246c6f6e6765766974793001505472616e73616374696f6e4c6f6e67657669747900012470726f706167617465200110626f6f6c000035100c4873705f73746174656d656e745f73746f72652c72756e74696d655f6170693c53746174656d656e74536f7572636500010c14436861696e0000001c4e6574776f726b000100144c6f63616c0002000039100418526573756c74080454013d1004450141100108084f6b04003d10000000000c4572720400411000000100003d100c4873705f73746174656d656e745f73746f72652c72756e74696d655f6170693856616c696453746174656d656e7400000801246d61785f636f756e7410010c7533320001206d61785f73697a6510010c753332000041100c4873705f73746174656d656e745f73746f72652c72756e74696d655f61706940496e76616c696453746174656d656e7400010c2042616450726f6f660000001c4e6f50726f6f6600010034496e7465726e616c4572726f72000200004510082873705f72756e74696d652c4f706171756556616c75650000040038011c5665633c75383e0000491004184f7074696f6e04045401880108104e6f6e6500000010536f6d6504008800000100004d1004184f7074696f6e0404540145100108104e6f6e6500000010536f6d650400451000000100005110084473705f636f6e73656e7375735f626162654442616265436f6e66696775726174696f6e0000180134736c6f745f6475726174696f6e30010c75363400013065706f63685f6c656e67746830010c7536340001046385020128287536342c207536342900012c617574686f7269746965731509019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000134616c6c6f7765645f736c6f747389020130416c6c6f776564536c6f747300005510084473705f636f6e73656e7375735f626162651445706f6368000018012c65706f63685f696e64657830010c75363400012873746172745f736c6f7479020110536c6f740001206475726174696f6e30010c75363400012c617574686f7269746965731509019c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e00012872616e646f6d6e65737304012852616e646f6d6e657373000118636f6e666967390901584261626545706f6368436f6e66696775726174696f6e0000591004184f7074696f6e040454015d100108104e6f6e6500000010536f6d6504005d1000000100005d10084473705f636f6e73656e7375735f626162655c4f70617175654b65794f776e65727368697050726f6f660000040038011c5665633c75383e000061100c4070616c6c65745f636f6e747261637473287072696d69746976657338436f6e7472616374526573756c740c04520165101c42616c616e636501182c4576656e745265636f72640150001801306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369747110015c53746f726167654465706f7369743c42616c616e63653e00013464656275675f6d65737361676538011c5665633c75383e000118726573756c7465100104520001186576656e7473751001604f7074696f6e3c5665633c4576656e745265636f72643e3e000065100418526573756c74080454016910044501680108084f6b04006910000000000c457272040068000001000069100c4070616c6c65745f636f6e747261637473287072696d6974697665733c4578656352657475726e56616c75650000080114666c6167736d10012c52657475726e466c6167730001106461746138011c5665633c75383e00006d100c5470616c6c65745f636f6e7472616374735f7561706914666c6167732c52657475726e466c61677300000401106269747310010c753332000071100c4070616c6c65745f636f6e747261637473287072696d6974697665733853746f726167654465706f736974041c42616c616e63650118010818526566756e64040018011c42616c616e636500000018436861726765040018011c42616c616e636500010000751004184f7074696f6e0404540179100108104e6f6e6500000010536f6d65040079100000010000791000000250007d100c4070616c6c65745f636f6e747261637473287072696d69746976657310436f6465041048617368013401081855706c6f6164040038011c5665633c75383e000000204578697374696e670400340110486173680001000081100c4070616c6c65745f636f6e747261637473287072696d69746976657338436f6e7472616374526573756c740c04520185101c42616c616e636501182c4576656e745265636f72640150001801306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369747110015c53746f726167654465706f7369743c42616c616e63653e00013464656275675f6d65737361676538011c5665633c75383e000118726573756c7485100104520001186576656e7473751001604f7074696f6e3c5665633c4576656e745265636f72643e3e000085100418526573756c74080454018910044501680108084f6b04008910000000000c457272040068000001000089100c4070616c6c65745f636f6e747261637473287072696d69746976657358496e7374616e746961746552657475726e56616c756504244163636f756e744964010000080118726573756c746910013c4578656352657475726e56616c75650001286163636f756e745f69640001244163636f756e74496400008d100418526573756c74080454019110044501680108084f6b04009110000000000c457272040068000001000091100c4070616c6c65745f636f6e747261637473287072696d69746976657354436f646555706c6f616452657475726e56616c75650820436f64654861736801341c42616c616e6365011800080124636f64655f68617368340120436f64654861736800011c6465706f73697418011c42616c616e6365000095100418526573756c7408045401e50604450199100108084f6b0400e506000000000c45727204009910000001000099100c4070616c6c65745f636f6e747261637473287072696d6974697665734c436f6e74726163744163636573734572726f7200010c2c446f65736e744578697374000000444b65794465636f64696e674661696c65640001004c4d6967726174696f6e496e50726f6772657373000200009d100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065734c52756e74696d654469737061746368496e666f081c42616c616e63650118185765696768740128000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c61737300012c7061727469616c5f66656518011c42616c616e63650000a1100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e741474797065732846656544657461696c73041c42616c616e6365011800080134696e636c7573696f6e5f666565a51001744f7074696f6e3c496e636c7573696f6e4665653c42616c616e63653e3e00010c74697018011c42616c616e63650000a51004184f7074696f6e04045401a9100108104e6f6e6500000010536f6d650400a9100000010000a9100c6870616c6c65745f7472616e73616374696f6e5f7061796d656e7414747970657330496e636c7573696f6e466565041c42616c616e63650118000c0120626173655f66656518011c42616c616e636500011c6c656e5f66656518011c42616c616e636500014c61646a75737465645f7765696768745f66656518011c42616c616e63650000ad1004184f7074696f6e04045401b1100108104e6f6e6500000010536f6d650400b1100000010000b11000000408181800b51004184f7074696f6e04045401b9100108104e6f6e6500000010536f6d650400b9100000010000b910084873705f636f6e73656e7375735f62656566793056616c696461746f72536574042c417574686f72697479496401d5030008012876616c696461746f7273110d01405665633c417574686f7269747949643e000108696430013856616c696461746f7253657449640000bd10084873705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c18486561646572016d0208496401d50334416e63657374727950726f6f66014510000c0110766f7465510501b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6645100134416e63657374727950726f6f660001186865616465726d0201184865616465720000c1100418526573756c740804540134044501c5100108084f6b040034000000000c4572720400c5100000010000c510084473705f6d6d725f7072696d697469766573144572726f7200012840496e76616c69644e756d657269634f7000000010507573680001001c476574526f6f7400020018436f6d6d69740003003447656e657261746550726f6f6600040018566572696679000500304c6561664e6f74466f756e640006004450616c6c65744e6f74496e636c7564656400070040496e76616c69644c656166496e64657800080054496e76616c6964426573744b6e6f776e426c6f636b00090000c9100418526573756c740804540130044501c5100108084f6b040030000000000c4572720400c5100000010000cd100418526573756c7408045401d110044501c5100108084f6b0400d110000000000c4572720400c5100000010000d11000000408d510dd1000d510000002d91000d910084473705f6d6d725f7072696d6974697665734c456e636f6461626c654f70617175654c6561660000040038011c5665633c75383e0000dd10084473705f6d6d725f7072696d697469766573244c65616650726f6f660410486173680134000c01306c6561665f696e6469636573050e01385665633c4c656166496e6465783e0001286c6561665f636f756e743001244e6f6465496e6465780001146974656d73210501245665633c486173683e0000e1100418526573756c740804540188044501c5100108084f6b040088000000000c4572720400c5100000010000e5100c2473705f6d69786e65741474797065733453657373696f6e537461747573000008013463757272656e745f696e64657810013053657373696f6e496e6465780001147068617365e910013053657373696f6e50686173650000e9100c2473705f6d69786e65741474797065733053657373696f6e506861736500011038436f766572546f43757272656e74000000445265717565737473546f43757272656e740001002c436f766572546f5072657600020048446973636f6e6e65637446726f6d5072657600030000ed100418526573756c7408045401f110044501f9100108084f6b0400f110000000000c4572720400f9100000010000f110000002f51000f5100c2473705f6d69786e65741474797065731c4d69786e6f646500000c01246b785f7075626c69630401204b785075626c696300011c706565725f696404011850656572496400014865787465726e616c5f616464726573736573450201305665633c5665633c75383e3e0000f9100c2473705f6d69786e65741474797065732c4d69786e6f64657345727200010464496e73756666696369656e74526567697374726174696f6e7308010c6e756d10010c75333200010c6d696e10010c75333200000000fd1004184f7074696f6e0404540101110108104e6f6e6500000010536f6d65040001110000010000011100000205110005110000040838890a0009110418526573756c740804540188044501b1080108084f6b040088000000000c4572720400b10800000100000d1104184f7074696f6e04045401b1080108104e6f6e6500000010536f6d650400b10800000100001111000002b108001511083c7072696d69746976655f7479706573105532353600000400191101205b7536343b20345d000019110000030400000030001d110c3470616c6c65745f726576697665287072696d69746976657338436f6e7472616374526573756c740804520121111c42616c616e63650118001001306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369742911015c53746f726167654465706f7369743c42616c616e63653e000118726573756c742d110160526573756c743c522c2044697370617463684572726f723e000021110c3470616c6c65745f726576697665287072696d6974697665733c4578656352657475726e56616c75650000080114666c6167732511012c52657475726e466c6167730001106461746138011c5665633c75383e000025110c4870616c6c65745f7265766976655f7561706914666c6167732c52657475726e466c61677300000401106269747310010c753332000029110c3470616c6c65745f726576697665287072696d6974697665733853746f726167654465706f736974041c42616c616e63650118010818526566756e64040018011c42616c616e636500000018436861726765040018011c42616c616e6365000100002d110418526573756c74080454012111044501680108084f6b04002111000000000c457272040068000001000031110c3470616c6c65745f726576697665287072696d69746976657310436f64650001081855706c6f6164040038011c5665633c75383e000000204578697374696e67040034013473705f636f72653a3a483235360001000035110c3470616c6c65745f726576697665287072696d69746976657338436f6e7472616374526573756c740804520139111c42616c616e63650118001001306761735f636f6e73756d65642801185765696768740001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f7369742911015c53746f726167654465706f7369743c42616c616e63653e000118726573756c743d110160526573756c743c522c2044697370617463684572726f723e000039110c3470616c6c65745f726576697665287072696d69746976657358496e7374616e746961746552657475726e56616c75650000080118726573756c742111013c4578656352657475726e56616c756500011061646472810701104831363000003d110418526573756c74080454013911044501680108084f6b04003911000000000c45727204006800000100004111143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e4847656e657269635472616e73616374696f6e00003c012c6163636573735f6c697374451101484f7074696f6e3c4163636573734c6973743e000154626c6f625f76657273696f6e65645f686173686573210501245665633c483235363e000114626c6f6273511101285665633c42797465733e000120636861696e5f6964591101304f7074696f6e3c553235363e00011066726f6d5d11013c4f7074696f6e3c416464726573733e00010c676173591101304f7074696f6e3c553235363e0001246761735f7072696365591101304f7074696f6e3c553235363e000114696e7075746111012c496e7075744f72446174610001506d61785f6665655f7065725f626c6f625f676173591101304f7074696f6e3c553235363e00013c6d61785f6665655f7065725f676173591101304f7074696f6e3c553235363e0001606d61785f7072696f726974795f6665655f7065725f676173591101304f7074696f6e3c553235363e0001146e6f6e6365591101304f7074696f6e3c553235363e000108746f5d11013c4f7074696f6e3c416464726573733e000118722374797065691101304f7074696f6e3c427974653e00011476616c7565591101304f7074696f6e3c553235363e0000451104184f7074696f6e0404540149110108104e6f6e6500000010536f6d6504004911000001000049110000024d11004d11143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e3c4163636573734c697374456e747279000008011c616464726573738107011c4164647265737300013073746f726167655f6b657973210501245665633c483235363e000051110000025511005511143470616c6c65745f7265766976650c65766d0c61706910627974651442797465730000040038011c5665633c75383e0000591104184f7074696f6e0404540115110108104e6f6e6500000010536f6d650400151100000100005d1104184f7074696f6e0404540181070108104e6f6e6500000010536f6d650400810700000100006111143470616c6c65745f7265766976650c65766d0c617069347270635f74797065735f67656e2c496e7075744f72446174610000080114696e707574651101344f7074696f6e3c42797465733e00011064617461651101344f7074696f6e3c42797465733e0000651104184f7074696f6e0404540155110108104e6f6e6500000010536f6d65040055110000010000691104184f7074696f6e040454016d110108104e6f6e6500000010536f6d6504006d1100000100006d11143470616c6c65745f7265766976650c65766d0c61706910627974651042797465000004000801087538000071110418526573756c7408045401751104450179110108084f6b04007511000000000c45727204007911000001000075110c3470616c6c65745f726576697665287072696d6974697665733c4574685472616e73616374496e666f041c42616c616e63650118001001306761735f726571756972656428011857656967687400013c73746f726167655f6465706f73697418011c42616c616e636500011c6574685f67617315110110553235360001106461746138011c5665633c75383e000079110c3470616c6c65745f726576697665287072696d697469766573404574685472616e736163744572726f720001081044617461040038011c5665633c75383e0000001c4d6573736167650400b1080118537472696e67000100007d110418526573756c74080454018111044501680108084f6b04008111000000000c457272040068000001000081110c3470616c6c65745f726576697665287072696d69746976657354436f646555706c6f616452657475726e56616c7565041c42616c616e6365011800080124636f64655f6861736834013473705f636f72653a3a4832353600011c6465706f73697418011c42616c616e6365000085110418526573756c7408045401e50604450189110108084f6b0400e506000000000c45727204008911000001000089110c3470616c6c65745f726576697665287072696d6974697665734c436f6e74726163744163636573734572726f720001082c446f65736e744578697374000000444b65794465636f64696e674661696c6564000100008d11143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f747970657328547261636572547970650001042843616c6c5472616365720400911101604f7074696f6e3c43616c6c547261636572436f6e6669673e00000000911104184f7074696f6e0404540195110108104e6f6e6500000010536f6d650400951100000100009511143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065734043616c6c547261636572436f6e6669670000080124776974685f6c6f6773200110626f6f6c0001346f6e6c795f746f705f63616c6c200110626f6f6c000099110000029d11009d110000040810a11100a111143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065731454726163650001041043616c6c0400a511012443616c6c547261636500000000a511143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065732443616c6c5472616365040c4761730115110030011066726f6d810701104831363000010c6761731511010c4761730001206761735f757365641511010c476173000108746f8107011048313630000114696e7075745511011442797465730001186f75747075745511011442797465730001146572726f720d1101384f7074696f6e3c537472696e673e0001347265766572745f726561736f6e0d1101384f7074696f6e3c537472696e673e00011463616c6c73a911014c5665633c43616c6c54726163653c4761733e3e0001106c6f6773ad1101305665633c43616c6c4c6f673e00011476616c7565591101304f7074696f6e3c553235363e00012463616c6c5f74797065b511012043616c6c547970650000a911000002a51100ad11000002b11100b111143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065731c43616c6c4c6f67000010011c616464726573738107011048313630000118746f70696373210501245665633c483235363e00011064617461551101144279746573000120706f736974696f6e10010c7533320000b511143470616c6c65745f7265766976650c65766d0c6170693c64656275675f7270635f74797065732043616c6c5479706500010c1043616c6c0000002853746174696343616c6c0001003044656c656761746543616c6c00020000b91104184f7074696f6e04045401a1110108104e6f6e6500000010536f6d650400a1110000010000bd110418526573756c7408045401a11104450179110108084f6b0400a111000000000c457272040079110000010000c111084c6b69746368656e73696e6b5f72756e74696d653052756e74696d654572726f7200010d011853797374656d0400e10801706672616d655f73797374656d3a3a4572726f723c52756e74696d653e0000001c5574696c69747904000909017870616c6c65745f7574696c6974793a3a4572726f723c52756e74696d653e000100104261626504004909016c70616c6c65745f626162653a3a4572726f723c52756e74696d653e0002001c496e646963657304005109017870616c6c65745f696e64696365733a3a4572726f723c52756e74696d653e0005002042616c616e6365730400d109017c70616c6c65745f62616c616e6365733a3a4572726f723c52756e74696d653e00060068456c656374696f6e50726f76696465724d756c746950686173650400150a01d070616c6c65745f656c656374696f6e5f70726f76696465725f6d756c74695f70686173653a3a4572726f723c52756e74696d653e000a001c5374616b696e6704006d0a017870616c6c65745f7374616b696e673a3a4572726f723c52756e74696d653e000b001c53657373696f6e04008d0a017870616c6c65745f73657373696f6e3a3a4572726f723c52756e74696d653e000c002444656d6f63726163790400d10a018070616c6c65745f64656d6f63726163793a3a4572726f723c52756e74696d653e000d001c436f756e63696c0400e50a01fc70616c6c65745f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e000e0048546563686e6963616c436f6d6d69747465650400ed0a01fc70616c6c65745f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365323e000f0024456c656374696f6e730400fd0a01a470616c6c65745f656c656374696f6e735f70687261676d656e3a3a4572726f723c52756e74696d653e0010004c546563686e6963616c4d656d626572736869700400050b01fc70616c6c65745f6d656d626572736869703a3a4572726f723c52756e74696d652c2070616c6c65745f6d656d626572736869703a3a496e7374616e6365313e0011001c4772616e6470610400150b017870616c6c65745f6772616e6470613a3a4572726f723c52756e74696d653e00120020547265617375727904002d0b017c70616c6c65745f74726561737572793a3a4572726f723c52756e74696d653e001300244173736574526174650400310b018470616c6c65745f61737365745f726174653a3a4572726f723c52756e74696d653e00140024436f6e7472616374730400850b018070616c6c65745f636f6e7472616374733a3a4572726f723c52756e74696d653e001500105375646f0400890b016c70616c6c65745f7375646f3a3a4572726f723c52756e74696d653e00160020496d4f6e6c696e650400950b018070616c6c65745f696d5f6f6e6c696e653a3a4572726f723c52756e74696d653e001700204964656e746974790400ed0b017c70616c6c65745f6964656e746974793a3a4572726f723c52756e74696d653e001c001c536f63696574790400390c017870616c6c65745f736f63696574793a3a4572726f723c52756e74696d653e001d00205265636f766572790400490c017c70616c6c65745f7265636f766572793a3a4572726f723c52756e74696d653e001e001c56657374696e670400590c017870616c6c65745f76657374696e673a3a4572726f723c52756e74696d653e001f00245363686564756c65720400710c018070616c6c65745f7363686564756c65723a3a4572726f723c52756e74696d653e0020001c476c7574746f6e0400750c017870616c6c65745f676c7574746f6e3a3a4572726f723c52756e74696d653e00210020507265696d6167650400950c017c70616c6c65745f707265696d6167653a3a4572726f723c52756e74696d653e0022001450726f78790400b90c017070616c6c65745f70726f78793a3a4572726f723c52756e74696d653e002300204d756c74697369670400c50c017c70616c6c65745f6d756c74697369673a3a4572726f723c52756e74696d653e00240020426f756e746965730400d50c017c70616c6c65745f626f756e746965733a3a4572726f723c52756e74696d653e00250010546970730400dd0c016c70616c6c65745f746970733a3a4572726f723c52756e74696d653e002600184173736574730400050d01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365313e00270028506f6f6c4173736574730400090d01dc70616c6c65745f6173736574733a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574733a3a496e7374616e6365323e0028001442656566790400150d017070616c6c65745f62656566793a3a4572726f723c52756e74696d653e0029001c4c6f747465727904002d0d017870616c6c65745f6c6f74746572793a3a4572726f723c52756e74696d653e002c000c4e697304004d0d016870616c6c65745f6e69733a3a4572726f723c52756e74696d653e002d001c556e69717565730400710d017870616c6c65745f756e69717565733a3a4572726f723c52756e74696d653e002e00104e6674730400c50d016c70616c6c65745f6e6674733a3a4572726f723c52756e74696d653e002f00504e66744672616374696f6e616c697a6174696f6e0400cd0d01b070616c6c65745f6e66745f6672616374696f6e616c697a6174696f6e3a3a4572726f723c52756e74696d653e0030001853616c6172790400dd0d017470616c6c65745f73616c6172793a3a4572726f723c52756e74696d653e00310038436f726546656c6c6f77736869700400e90d019870616c6c65745f636f72655f66656c6c6f77736869703a3a4572726f723c52756e74696d653e003200485472616e73616374696f6e53746f726167650400f90d01a870616c6c65745f7472616e73616374696f6e5f73746f726167653a3a4572726f723c52756e74696d653e00330024566f7465724c6973740400090e01f470616c6c65745f626167735f6c6973743a3a4572726f723c52756e74696d652c2070616c6c65745f626167735f6c6973743a3a496e7374616e6365313e003400485374617465547269654d6967726174696f6e0400250201ac70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4572726f723c52756e74696d653e003500344368696c64426f756e7469657304001d0e019470616c6c65745f6368696c645f626f756e746965733a3a4572726f723c52756e74696d653e003600245265666572656e64610400510e018070616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d653e0037001852656d61726b0400550e017470616c6c65745f72656d61726b3a3a4572726f723c52756e74696d653e00380040436f6e76696374696f6e566f74696e670400890e01a070616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4572726f723c52756e74696d653e003a002457686974656c69737404008d0e018070616c6c65745f77686974656c6973743a3a4572726f723c52756e74696d653e003b0038416c6c69616e63654d6f74696f6e0400950e01fc70616c6c65745f636f6c6c6563746976653a3a4572726f723c52756e74696d652c2070616c6c65745f636f6c6c6563746976653a3a496e7374616e6365333e003c0020416c6c69616e63650400b10e017c70616c6c65745f616c6c69616e63653a3a4572726f723c52756e74696d653e003d003c4e6f6d696e6174696f6e506f6f6c730400ed0e019c70616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a4572726f723c52756e74696d653e003e002c52616e6b6564506f6c6c730400010f01f470616c6c65745f7265666572656e64613a3a4572726f723c52756e74696d652c2070616c6c65745f7265666572656e64613a3a496e7374616e6365323e003f004052616e6b6564436f6c6c6563746976650400150f01a070616c6c65745f72616e6b65645f636f6c6c6563746976653a3a4572726f723c52756e74696d653e0040003c4173736574436f6e76657273696f6e04001d0f019c70616c6c65745f61737365745f636f6e76657273696f6e3a3a4572726f723c52756e74696d653e0041002c46617374556e7374616b6504002d0f018c70616c6c65745f666173745f756e7374616b653a3a4572726f723c52756e74696d653e004200304d65737361676551756575650400450f019070616c6c65745f6d6573736167655f71756575653a3a4572726f723c52756e74696d653e0043001c547850617573650400490f017c70616c6c65745f74785f70617573653a3a4572726f723c52756e74696d653e00450020536166654d6f646504004d0f018070616c6c65745f736166655f6d6f64653a3a4572726f723c52756e74696d653e004600504d756c7469426c6f636b4d6967726174696f6e730400510f018470616c6c65745f6d6967726174696f6e733a3a4572726f723c52756e74696d653e0048001842726f6b65720400a10f017470616c6c65745f62726f6b65723a3a4572726f723c52756e74696d653e004900305461736b734578616d706c650400a50f019070616c6c65745f6578616d706c655f7461736b733a3a4572726f723c52756e74696d653e004a00604173736574436f6e76657273696f6e4d6967726174696f6e0400a90f01ac70616c6c65745f61737365745f636f6e76657273696f6e5f6f70733a3a4572726f723c52756e74696d653e004f00185265766976650400c10f017470616c6c65745f7265766976653a3a4572726f723c52756e74696d653e0050004044656c6567617465645374616b696e670400cd0f01a070616c6c65745f64656c6567617465645f7374616b696e673a3a4572726f723c52756e74696d653e005200304173736574526577617264730400e10f019070616c6c65745f61737365745f726577617264733a3a4572726f723c52756e74696d653e00530034417373657473467265657a65720400e50f011d0170616c6c65745f6173736574735f667265657a65723a3a4572726f723c52756e74696d652c2070616c6c65745f6173736574735f667265657a65723a3a496e7374616e6365313e005400184d65746154780400e90f017870616c6c65745f6d6574615f74783a3a4572726f723c52756e74696d653e0059000055011853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e003845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e0040496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e002c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e0040416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e0024426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e003445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e00184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e0028506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e001844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e00184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e00284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e002c4576656e74546f706963730101040234a5080400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e00484c61737452756e74696d65557067726164650000a90804000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e00545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e00605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e0038457865637574696f6e50686173650000a108040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e0044417574686f72697a6564557067726164650000b508040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e006045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e00013902000158001830426c6f636b57656967687473b908f901c2a0e766000b00204aa9d10113ffffffffffffffff2261c91900010bb86f97a72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100002261c91900010bb8f7e911a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000402261c9190000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e002c426c6f636b4c656e677468c5083000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e0038426c6f636b48617368436f756e74101060090000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e00204462576569676874cd084040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e001c56657273696f6ed1087905106e6f6465387375627374726174652d6e6f64650a0000000c0100000000000068df6acb689907609b0500000037e397fc7c91f5e402000000ccd9de6396c899ca0100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000be9fb0c91a8046cf01000000f78b278be53f454c02000000ed99c5acb25eedf50300000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f010000008453b50b222939770100000068b66ba122c93fa70200000037c8bb1350a9a2a8040000008a8047a53a8277ec01000000f3ff14d5ab52705903000000899a250cbe84f2500100000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000006fd7c327202e4a8d01000000ab3c0572291feb8b0100000065f855d6e093c2f101000000fbc577b9d747efd6010000008c403e5c4a9fd4420100000002000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e0028535335385072656669789101082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e0001e108001c2c52756e74696d6543616c6c3502048c205468652061676772656761746564206052756e74696d6543616c6c6020747970652e144e6f6e63651004490120546869732073746f72657320746865206e756d626572206f662070726576696f7573207472616e73616374696f6e73206173736f636961746564207769746820612073656e646572206163636f756e742e104861736834049820546865206f7574707574206f6620746865206048617368696e67602066756e6374696f6e2e1c48617368696e67c107042101205468652068617368696e672073797374656d2028616c676f726974686d29206265696e67207573656420696e207468652072756e74696d652028652e672e20426c616b6532292e244163636f756e7449640004c8205468652075736572206163636f756e74206964656e746966696572207479706520666f72207468652072756e74696d652e14426c6f636be5080861012054686520426c6f636b20747970652075736564206279207468652072756e74696d652e205468697320697320757365642062792060636f6e7374727563745f72756e74696d656020746f20726574726965766520746865cc2065787472696e73696373206f72206f7468657220626c6f636b2073706563696669632064617461206173206e65656465642e2c4163636f756e744461746114086101204461746120746f206265206173736f636961746564207769746820616e206163636f756e7420286f74686572207468616e206e6f6e63652f7472616e73616374696f6e20636f756e7465722c2077686963682074686973642070616c6c657420646f6573207265676172646c657373292e000000001c5574696c6974790001490200018000044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e0001090900082c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e3450616c6c6574734f726967696e510204f0205468652063616c6c6572206f726967696e2c206f76657261726368696e672074797065206f6620616c6c2070616c6c657473206f726967696e732e000100001042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e002c417574686f72697469657301000d090400046c2043757272656e742065706f636820617574686f7269746965732e002c47656e65736973536c6f740100790220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e002c43757272656e74536c6f740100790220000000000000000004542043757272656e7420736c6f74206e756d6265722e002852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e006050656e64696e6745706f6368436f6e6669674368616e67650000810204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e00384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e003c4e657874417574686f72697469657301000d0904000460204e6578742065706f636820617574686f7269746965732e00305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e0044556e646572436f6e737472756374696f6e0101040510190904000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e002c496e697469616c697a65640000210904000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e004c417574686f7256726652616e646f6d6e6573730100790104001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e002845706f6368537461727401007501200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e00204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e002c45706f6368436f6e6669670000390904000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e003c4e65787445706f6368436f6e666967000039090400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e0034536b697070656445706f63687301003d0904002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e000165020000103445706f63684475726174696f6e3020c8000000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e00444578706563746564426c6f636b54696d653020b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e00384d6178417574686f7269746965731010e80300000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f77656400344d61784e6f6d696e61746f727310104000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e000149090004344b65794f776e657250726f6f667d020c1901205468652070726f6f66206f66206b6579206f776e6572736869702c207573656420666f722076616c69646174696e672065717569766f636174696f6e207265706f7274732e1101205468652070726f6f66206d75737420696e636c756465207468652073657373696f6e20696e64657820616e642076616c696461746f7220636f756e74206f6620746865b02073657373696f6e206174207768696368207468652065717569766f636174696f6e206f636375727265642e000200002454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e0024446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e00018d02000004344d696e696d756d506572696f643020dc05000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f61012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070616c6c65742069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e000004184d6f6d656e743004982054797065207573656420666f722065787072657373696e6720612074696d657374616d702e0003000028417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e000000000000000400001c496e6469636573011c496e646963657304204163636f756e747300010402104d090400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e0001910200018c00041c4465706f736974184000407a10f35a0000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e000151090004304163636f756e74496e646578100855012054797065207573656420666f722073746f72696e6720616e206163636f756e74277320696e6465783b20696d706c69657320746865206d6178696d756d206e756d626572206f66206163636f756e747320746865442073797374656d2063616e20686f6c642e000500002042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e0040496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e001c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080600901205468652042616c616e6365732070616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b19022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c206672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000150120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65b02020696d706c2070616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d102060606000510120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070616c6c65742073746f7265736d0120606672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e207468652901206042616c616e636573602070616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4101204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070616c6c6574206973207573656420746f2073746f72652062616c616e6365732e00144c6f636b7301010402005509040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60002052657365727665730101040200650904000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f600014486f6c6473010104020071090400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e001c467265657a65730101040200b9090400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e00019d020001900010484578697374656e7469616c4465706f736974184000407a10f35a0000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f72610120746869732070616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f5320766563746f722e590120496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f2067657420756e65787065637465648c206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e652100204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00ad0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f60002c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6000284d6178467265657a657310100200000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e0001d10900104452756e74696d65486f6c64526561736f6e7909047420546865206f76657261726368696e6720686f6c6420726561736f6e2e1c42616c616e636518046c205468652062616c616e6365206f6620616e206163636f756e742e44526573657276654964656e7469666965727d040c6820546865204944207479706520666f722072657365727665732e00b10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f70756c6c2f31323935312f6040467265657a654964656e746966696572c109046420546865204944207479706520666f7220667265657a65732e00060000485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e7408444e6578744665654d756c7469706c6965720100210140000064a7b3b6e00d000000000000000000003853746f7261676556657273696f6e0100d509040000000001980004604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e00000000070000604173736574436f6e76657273696f6e54785061796d656e740000019c000000000009000068456c656374696f6e50726f76696465724d756c746950686173650168456c656374696f6e50726f76696465724d756c746950686173652814526f756e64010010100100000018ac20496e7465726e616c20636f756e74657220666f7220746865206e756d626572206f6620726f756e64732e00550120546869732069732075736566756c20666f722064652d6475706c69636174696f6e206f66207472616e73616374696f6e73207375626d697474656420746f2074686520706f6f6c2c20616e642067656e6572616c6c20646961676e6f7374696373206f66207468652070616c6c65742e004d012054686973206973206d6572656c7920696e6372656d656e746564206f6e6365207065722065766572792074696d65207468617420616e20757073747265616d2060656c656374602069732063616c6c65642e003043757272656e7450686173650100b40400043c2043757272656e742070686173652e0038517565756564536f6c7574696f6e0000d90904000c3d012043757272656e74206265737420736f6c7574696f6e2c207369676e6564206f7220756e7369676e65642c2071756575656420746f2062652072657475726e65642075706f6e2060656c656374602e006020416c7761797320736f727465642062792073636f72652e0020536e617073686f740000f5090400107020536e617073686f742064617461206f662074686520726f756e642e005d01205468697320697320637265617465642061742074686520626567696e6e696e67206f6620746865207369676e656420706861736520616e6420636c65617265642075706f6e2063616c6c696e672060656c656374602e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e00384465736972656454617267657473000010040010cc2044657369726564206e756d626572206f66207461726765747320746f20656c65637420666f72207468697320726f756e642e00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e0040536e617073686f744d6574616461746100007d030400109820546865206d65746164617461206f6620746865205b60526f756e64536e617073686f74605d00a8204f6e6c7920657869737473207768656e205b60536e617073686f74605d2069732070726573656e742e2901204e6f74653a20546869732073746f726167652074797065206d757374206f6e6c79206265206d757461746564207468726f756768205b60536e617073686f7457726170706572605d2e00645369676e65645375626d697373696f6e4e657874496e646578010010100000000024010120546865206e65787420696e64657820746f2062652061737369676e656420746f20616e20696e636f6d696e67207369676e6564207375626d697373696f6e2e007501204576657279206163636570746564207375626d697373696f6e2069732061737369676e6564206120756e6971756520696e6465783b207468617420696e64657820697320626f756e6420746f207468617420706172746963756c61726501207375626d697373696f6e20666f7220746865206475726174696f6e206f662074686520656c656374696f6e2e204f6e20656c656374696f6e2066696e616c697a6174696f6e2c20746865206e65787420696e6465782069733020726573657420746f20302e0069012057652063616e2774206a7573742075736520605369676e65645375626d697373696f6e496e64696365732e6c656e2829602c206265636175736520746861742773206120626f756e646564207365743b20706173742069747359012063617061636974792c2069742077696c6c2073696d706c792073617475726174652e2057652063616e2774206a7573742069746572617465206f76657220605369676e65645375626d697373696f6e734d6170602cf4206265636175736520697465726174696f6e20697320736c6f772e20496e73746561642c2077652073746f7265207468652076616c756520686572652e005c5369676e65645375626d697373696f6e496e64696365730100050a0400186d01204120736f727465642c20626f756e64656420766563746f72206f6620602873636f72652c20626c6f636b5f6e756d6265722c20696e64657829602c20776865726520656163682060696e6465786020706f696e747320746f2061782076616c756520696e20605369676e65645375626d697373696f6e73602e007101205765206e65766572206e65656420746f2070726f63657373206d6f7265207468616e20612073696e676c65207369676e6564207375626d697373696f6e20617420612074696d652e205369676e6564207375626d697373696f6e7375012063616e206265207175697465206c617267652c20736f2077652772652077696c6c696e6720746f207061792074686520636f7374206f66206d756c7469706c6520646174616261736520616363657373657320746f206163636573732101207468656d206f6e6520617420612074696d6520696e7374656164206f662072656164696e6720616e64206465636f64696e6720616c6c206f66207468656d206174206f6e63652e00505369676e65645375626d697373696f6e734d61700001040510110a04001c7420556e636865636b65642c207369676e656420736f6c7574696f6e732e00690120546f676574686572207769746820605375626d697373696f6e496e6469636573602c20746869732073746f726573206120626f756e64656420736574206f6620605369676e65645375626d697373696f6e7360207768696c65ec20616c6c6f77696e6720757320746f206b656570206f6e6c7920612073696e676c65206f6e6520696e206d656d6f727920617420612074696d652e0069012054776f78206e6f74653a20746865206b6579206f6620746865206d617020697320616e206175746f2d696e6372656d656e74696e6720696e6465782077686963682075736572732063616e6e6f7420696e7370656374206f72f4206166666563743b2077652073686f756c646e2774206e65656420612063727970746f67726170686963616c6c7920736563757265206861736865722e00544d696e696d756d556e7472757374656453636f72650000b00400105d0120546865206d696e696d756d2073636f7265207468617420656163682027756e747275737465642720736f6c7574696f6e206d7573742061747461696e20696e206f7264657220746f20626520636f6e7369646572656428206665617369626c652e00b82043616e206265207365742076696120607365745f6d696e696d756d5f756e747275737465645f73636f7265602e0001a9020001a4003c544265747465725369676e65645468726573686f6c64c41000000000084d0120546865206d696e696d756d20616d6f756e74206f6620696d70726f76656d656e7420746f2074686520736f6c7574696f6e2073636f7265207468617420646566696e6573206120736f6c7574696f6e2061737820226265747465722220696e20746865205369676e65642070686173652e00384f6666636861696e52657065617410100500000010b42054686520726570656174207468726573686f6c64206f6620746865206f6666636861696e20776f726b65722e00610120466f72206578616d706c652c20696620697420697320352c2074686174206d65616e732074686174206174206c65617374203520626c6f636b732077696c6c20656c61707365206265747765656e20617474656d7074738420746f207375626d69742074686520776f726b6572277320736f6c7574696f6e2e003c4d696e657254785072696f726974793020feffffffffffff7f04250120546865207072696f72697479206f662074686520756e7369676e6564207472616e73616374696f6e207375626d697474656420696e2074686520756e7369676e65642d706861736500505369676e65644d61785375626d697373696f6e7310100a0000001ce4204d6178696d756d206e756d626572206f66207369676e6564207375626d697373696f6e7320746861742063616e206265207175657565642e005501204974206973206265737420746f2061766f69642061646a757374696e67207468697320647572696e6720616e20656c656374696f6e2c20617320697420696d706163747320646f776e73747265616d2064617461650120737472756374757265732e20496e20706172746963756c61722c20605369676e65645375626d697373696f6e496e64696365733c543e6020697320626f756e646564206f6e20746869732076616c75652e20496620796f75f42075706461746520746869732076616c756520647572696e6720616e20656c656374696f6e2c20796f75205f6d7573745f20656e7375726520746861744d0120605369676e65645375626d697373696f6e496e64696365732e6c656e282960206973206c657373207468616e206f7220657175616c20746f20746865206e65772076616c75652e204f74686572776973652cf020617474656d70747320746f207375626d6974206e657720736f6c7574696f6e73206d617920636175736520612072756e74696d652070616e69632e003c5369676e65644d617857656967687428400b8887dd8d2e011366666666666666a61494204d6178696d756d20776569676874206f662061207369676e656420736f6c7574696f6e2e005d01204966205b60436f6e6669673a3a4d696e6572436f6e666967605d206973206265696e6720696d706c656d656e74656420746f207375626d6974207369676e656420736f6c7574696f6e7320286f757473696465206f663d0120746869732070616c6c6574292c207468656e205b604d696e6572436f6e6669673a3a736f6c7574696f6e5f776569676874605d206973207573656420746f20636f6d7061726520616761696e73743020746869732076616c75652e00405369676e65644d6178526566756e647310100300000004190120546865206d6178696d756d20616d6f756e74206f6620756e636865636b656420736f6c7574696f6e7320746f20726566756e64207468652063616c6c2066656520666f722e00405369676e656452657761726442617365184000407a10f35a00000000000000000000048820426173652072657761726420666f722061207369676e656420736f6c7574696f6e00445369676e65644465706f7369744279746518400010a5d4e8000000000000000000000004a0205065722d62797465206465706f73697420666f722061207369676e656420736f6c7574696f6e2e004c5369676e65644465706f73697457656967687418400000000000000000000000000000000004a8205065722d776569676874206465706f73697420666f722061207369676e656420736f6c7574696f6e2e00284d617857696e6e6572731010e80300000cd4204d6178696d756d206e756d626572206f662077696e6e657273207468617420616e20656c656374696f6e20737570706f7274732e005101204e6f74653a2054686973206d75737420616c776179732062652067726561746572206f7220657175616c20746f2060543a3a4461746150726f76696465723a3a646573697265645f746172676574732829602e004c4d61784261636b65727350657257696e6e65721010409c00000c3101204d6178696d756d206e756d626572206f6620766f7465727320746861742063616e20737570706f727420612077696e6e657220696e20616e20656c656374696f6e20736f6c7574696f6e2e00e82054686973206973206e656564656420746f20656e7375726520656c656374696f6e20636f6d7075746174696f6e20697320626f756e6465642e00384d696e65724d61784c656e6774681010000036000000384d696e65724d617857656967687428400b8887dd8d2e011366666666666666a60000544d696e65724d6178566f746573506572566f74657210101000000000003c4d696e65724d617857696e6e6572731010e8030000000001150a0000000a00001c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e00544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e0034496e76756c6e657261626c657301005d0104000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e0018426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e00404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e00404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e00484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e00344d696e436f6d6d697373696f6e0100c410000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e00184c65646765720001040200190a0400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e001450617965650001040500c004000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e002856616c696461746f72730101040500cc0800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e0050436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e00284e6f6d696e61746f72730001040500210a04004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e0050436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000385669727475616c5374616b657273000104050088040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e00750120546869732070616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e20546865796d012061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d7574617465207468656972206c65646765727101206469726563746c792076696120746869732070616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c65747320616e64206163636573736564290120766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e0060436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e002843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e006501205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e00244163746976654572610000250a040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e005445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e002c457261735374616b65727301010805052d0a310a0c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e004c457261735374616b6572734f7665727669657700010805052d0a3d0a040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e0048457261735374616b657273436c697070656401010805052d0a310a0c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e0040457261735374616b657273506167656400010c050505410a450a040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0038436c61696d65645265776172647301010805052d0ac901040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e00484572617356616c696461746f72507265667301010805052d0acc0800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e004c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e004045726173526577617264506f696e74730101040510490a14000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e003845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e0020466f7263654572610100d404000454204d6f6465206f662065726120666f7263696e672e00404d61785374616b6564526577617264730000990304000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e004c536c6173685265776172644672616374696f6e0100c410000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e004c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e0040556e6170706c696564536c61736865730101040510590a040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e0028426f6e646564457261730100a50804001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d60004c56616c696461746f72536c617368496e45726100010805052d0a610a040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e004c4e6f6d696e61746f72536c617368496e45726100010805052d0a18040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e0034536c617368696e675370616e730001040500650a0400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e00245370616e536c61736801010405550a690a800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e005443757272656e74506c616e6e656453657373696f6e01001010000000000ce820546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070616c6c65742e0071012054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746f205b6070616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e00384368696c6c5468726573686f6c640000990304000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e000191030001bc001c30486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001101204966206d6967726174696e6720616e206578697374696e672070616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e003853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e003c426f6e64696e674475726174696f6e1010a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e0048536c61736844656665724475726174696f6e1010a8000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e004c4d61784578706f737572655061676553697a651010000100002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e003c4d617856616c696461746f725365741010e803000004150120546865206162736f6c757465206d6178696d756d206f662077696e6e65722076616c696461746f727320746869732070616c6c65742073686f756c642072657475726e2e00484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e00016d0a00043c43757272656e637942616c616e636518085101204a75737420746865206043757272656e63793a3a42616c616e63656020747970653b20776520686176652074686973206974656d20746f20616c6c6f7720757320746f20636f6e73747261696e20697420746f34206046726f6d3c7536343e602e000b00001c53657373696f6e011c53657373696f6e1c2856616c696461746f727301005d010400047c205468652063757272656e7420736574206f662076616c696461746f72732e003043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e00345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e00285175657565644b6579730100710a0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e004844697361626c656456616c696461746f72730100790a0400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e00204e6578744b6579730001040500c9030400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00204b65794f776e657200010405850a00040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e0001c5030001d80000018d0a00082c56616c696461746f724964000474204120737461626c6520494420666f7220612076616c696461746f722e104b657973c903042820546865206b6579732e000c00002444656d6f6372616379012444656d6f6372616379303c5075626c696350726f70436f756e74010010100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e002c5075626c696350726f70730100910a040004050120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c2e00244465706f7369744f6600010405109d0a04000c842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e00d82054574f582d4e4f54453a20536166652c20617320696e6372656173696e6720696e7465676572206b6579732061726520736166652e003c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e00344c6f77657374556e62616b6564010010100000000008250120546865206c6f77657374207265666572656e64756d20696e64657820726570726573656e74696e6720616e20756e62616b6564207265666572656e64756d2e20457175616c20746fdc20605265666572656e64756d436f756e74602069662074686572652069736e2774206120756e62616b6564207265666572656e64756d2e00405265666572656e64756d496e666f4f660001040510a50a04000cb420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0009012054574f582d4e4f54453a205341464520617320696e646578657320617265206e6f7420756e64657220616e2061747461636b6572e280997320636f6e74726f6c2e0020566f74696e674f660101040500b10ad8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000105d0120416c6c20766f74657320666f72206120706172746963756c617220766f7465722e2057652073746f7265207468652062616c616e636520666f7220746865206e756d626572206f6620766f74657320746861742077655d012068617665207265636f726465642e20546865207365636f6e64206974656d2069732074686520746f74616c20616d6f756e74206f662064656c65676174696f6e732c20746861742077696c6c2062652061646465642e00e82054574f582d4e4f54453a205341464520617320604163636f756e7449646073206172652063727970746f2068617368657320616e797761792e00544c6173745461626c656457617345787465726e616c0100200400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e00304e65787445787465726e616c0000c90a040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e0024426c61636b6c6973740001040634cd0a04000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e003443616e63656c6c6174696f6e730101040634200400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e00284d657461646174614f6600010402ec34040018ec2047656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720616e792070726f706f73616c206f72207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e0001dd030001dc00303c456e6163746d656e74506572696f641010002f0d0014e82054686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174510120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e207468652063617365b4207768657265207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e00304c61756e6368506572696f641010004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e0030566f74696e67506572696f641010004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e0044566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e00384d696e696d756d4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e0038496e7374616e74416c6c6f7765642004010c550120496e64696361746f7220666f72207768657468657220616e20656d657267656e6379206f726967696e206973206576656e20616c6c6f77656420746f2068617070656e2e20536f6d6520636861696e73206d617961012077616e7420746f207365742074686973207065726d616e656e746c7920746f206066616c7365602c206f7468657273206d61792077616e7420746f20636f6e646974696f6e206974206f6e207468696e67732073756368a020617320616e207570677261646520686176696e672068617070656e656420726563656e746c792e005446617374547261636b566f74696e67506572696f6410108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f72206120666173742d747261636b207265666572656e64756d2e0034436f6f6c6f6666506572696f641010004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e00204d6178566f74657310106400000010b020546865206d6178696d756d206e756d626572206f6620766f74657320666f7220616e206163636f756e742e00d420416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206269672076616c75652063616e1501206c65616420746f2065787472696e7369632077697468207665727920626967207765696768743a20736565206064656c65676174656020666f7220696e7374616e63652e00304d617850726f706f73616c73101064000000040d0120546865206d6178696d756d206e756d626572206f66207075626c69632070726f706f73616c7320746861742063616e20657869737420617420616e792074696d652e002c4d61784465706f73697473101064000000041d0120546865206d6178696d756d206e756d626572206f66206465706f736974732061207075626c69632070726f706f73616c206d6179206861766520617420616e792074696d652e00384d6178426c61636b6c697374656410106400000004d820546865206d6178696d756d206e756d626572206f66206974656d732077686963682063616e20626520626c61636b6c69737465642e0001d10a0000000d00001c436f756e63696c011c436f756e63696c1c2450726f706f73616c730100d50a040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e002850726f706f73616c4f6600010406343502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e0018436f73744f660001040634d90a040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e0018566f74696e670001040634e10a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e003450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e001c4d656d6265727301005d010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e00145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e0001e9030001f00004444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e0001e50a00042050726f706f73616c35020480205468652072756e74696d652063616c6c20646973706174636820747970652e000e000048546563686e6963616c436f6d6d69747465650148546563686e6963616c436f6d6d69747465651c2450726f706f73616c730100e90a040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e002850726f706f73616c4f6600010406343502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e0018436f73744f6600010406344101040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e0018566f74696e670001040634e10a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e003450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e001c4d656d6265727301005d010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e00145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e0001ed030001f40004444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e0001ed0a00042050726f706f73616c35020480205468652072756e74696d652063616c6c20646973706174636820747970652e000f000024456c656374696f6e730124456c656374696f6e73141c4d656d626572730100f10a04000c74205468652063757272656e7420656c6563746564206d656d626572732e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e002452756e6e65727355700100f10a04001084205468652063757272656e742072657365727665642072756e6e6572732d75702e00590120496e76617269616e743a20416c7761797320736f72746564206261736564206f6e2072616e6b2028776f72736520746f2062657374292e2055706f6e2072656d6f76616c206f662061206d656d6265722c20746865bc206c6173742028692e652e205f626573745f292072756e6e65722d75702077696c6c206265207265706c616365642e002843616e646964617465730100fc0400185901205468652070726573656e742063616e646964617465206c6973742e20412063757272656e74206d656d626572206f722072756e6e65722d75702063616e206e6576657220656e746572207468697320766563746f72d020616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e007c205365636f6e6420656c656d656e7420697320746865206465706f7369742e00b820496e76617269616e743a20416c7761797320736f72746564206261736564206f6e206163636f756e742069642e0038456c656374696f6e526f756e647301001010000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e0018566f74696e670101040500f90a840000000000000000000000000000000000000000000000000000000000000000000cb820566f74657320616e64206c6f636b6564207374616b65206f66206120706172746963756c617220766f7465722e00c42054574f582d4e4f54453a205341464520617320604163636f756e7449646020697320612063727970746f20686173682e0001f1030001f800282050616c6c657449647d0420706872656c65637404d0204964656e74696669657220666f722074686520656c656374696f6e732d70687261676d656e2070616c6c65742773206c6f636b003443616e646964616379426f6e6418400080c6a47e8d0300000000000000000004050120486f77206d7563682073686f756c64206265206c6f636b656420757020696e206f7264657220746f207375626d6974206f6e6527732063616e6469646163792e0038566f74696e67426f6e6442617365184000f0436de36a0100000000000000000010942042617365206465706f736974206173736f636961746564207769746820766f74696e672e00550120546869732073686f756c642062652073656e7369626c79206869676820746f2065636f6e6f6d6963616c6c7920656e73757265207468652070616c6c65742063616e6e6f742062652061747461636b656420627994206372656174696e67206120676967616e746963206e756d626572206f6620766f7465732e0040566f74696e67426f6e64466163746f7218400000cc7b9fae000000000000000000000411012054686520616d6f756e74206f6620626f6e642074686174206e65656420746f206265206c6f636b656420666f72206561636820766f746520283332206279746573292e0038446573697265644d656d6265727310100d0000000470204e756d626572206f66206d656d6265727320746f20656c6563742e00404465736972656452756e6e65727355701010070000000478204e756d626572206f662072756e6e6572735f757020746f206b6565702e00305465726d4475726174696f6e1010801303000c510120486f77206c6f6e6720656163682073656174206973206b6570742e205468697320646566696e657320746865206e65787420626c6f636b206e756d62657220617420776869636820616e20656c656374696f6e5d0120726f756e642077696c6c2068617070656e2e2049662073657420746f207a65726f2c206e6f20656c656374696f6e732061726520657665722074726967676572656420616e6420746865206d6f64756c652077696c6c5020626520696e2070617373697665206d6f64652e00344d617843616e6469646174657310108000000018e420546865206d6178696d756d206e756d626572206f662063616e6469646174657320696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e003101205768656e2074686973206c696d69742069732072656163686564206e6f206d6f72652063616e646964617465732061726520616363657074656420696e2074686520656c656374696f6e2e00244d6178566f7465727310100001000018f820546865206d6178696d756d206e756d626572206f6620766f7465727320746f20616c6c6f7720696e20612070687261676d656e20656c656374696f6e2e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e00d8205768656e20746865206c696d6974206973207265616368656420746865206e657720766f74657273206172652069676e6f7265642e00404d6178566f746573506572566f7465721010100000001090204d6178696d756d206e756d62657273206f6620766f7465732070657220766f7465722e005d01205761726e696e673a205468697320696d7061637473207468652073697a65206f662074686520656c656374696f6e2077686963682069732072756e206f6e636861696e2e2043686f736520776973656c792c20616e64010120636f6e736964657220686f772069742077696c6c20696d706163742060543a3a576569676874496e666f3a3a656c656374696f6e5f70687261676d656e602e0001fd0a0000001000004c546563686e6963616c4d656d62657273686970014c546563686e6963616c4d656d62657273686970081c4d656d626572730100010b040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e00145072696d65000000040004a4205468652063757272656e74207072696d65206d656d6265722c206966206f6e65206578697374732e0001f90300010501000001050b0000001100001c4772616e647061011c4772616e6470611c1453746174650100090b04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e003450656e64696e674368616e676500000d0b040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e00284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e001c5374616c6c6564000075010400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e003043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e0030536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e002c417574686f7269746965730100110b04000484205468652063757272656e74206c697374206f6620617574686f7269746965732e0001fd0300010901000c384d6178417574686f7269746965731010e8030000045c204d617820417574686f72697469657320696e2075736500344d61784e6f6d696e61746f727310104000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e00584d6178536574496453657373696f6e456e74726965733020c00f00000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e0001150b0004344b65794f776e657250726f6f667d020c1501205468652070726f6f66206f66206b6579206f776e6572736869702c207573656420666f722076616c69646174696e672065717569766f636174696f6e207265706f727473fc205468652070726f6f6620696e636c756465207468652073657373696f6e20696e64657820616e642076616c696461746f7220636f756e74206f6620746865b02073657373696f6e206174207768696368207468652065717569766f636174696f6e206f636375727265642e00120000205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e002450726f706f73616c730001040510190b040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e002c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e0024417070726f76616c7301001d0b040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e00285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e00185370656e64730001040510210b040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e003c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e00012904080302950154686520607370656e645f6c6f63616c602063616c6c2077696c6c2062652072656d6f766564206279204d617920323032352e204d69677261746520746f20746865206e657720666c6f7720616e64207573652074686520607370656e64602063616c6c2e000402b501546865206072656d6f76655f617070726f76616c602063616c6c2077696c6c2062652072656d6f766564206279204d617920323032352e204974206173736f636961746564207769746820746865206465707265636174656420607370656e645f6c6f63616c602063616c6c2e0001190100182c5370656e64506572696f64101080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e00104275726e11081020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e002050616c6c65744964290b2070792f74727372790419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e00304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e690120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f706f6c6b61646f742d73646b2f70756c6c2f353936313e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e004d01204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050616c6c657420657874656e73696f6e20696620656e61626c65642e00305061796f7574506572696f641010002f0d000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e002c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004a0204765747320746869732070616c6c65742773206465726976656420706f74206163636f756e742e00012d0b00082441737365744b696e64a0042d01205479706520706172616d6574657220726570726573656e74696e6720746865206173736574206b696e647320746f206265207370656e742066726f6d207468652074726561737572792e2c42656e656669636961727900045d01205479706520706172616d65746572207573656420746f206964656e74696679207468652062656e6566696369617269657320656c696769626c6520746f2072656365697665207472656173757279207370656e64732e001300002441737365745261746501244173736574526174650458436f6e76657273696f6e52617465546f4e617469766500010402a0210104000c1d01204d61707320616e20617373657420746f2069747320666978656420706f696e7420726570726573656e746174696f6e20696e20746865206e61746976652062616c616e63652e004d0120452e672e20606e61746976655f616d6f756e74203d2061737365745f616d6f756e74202a20436f6e76657273696f6e52617465546f4e61746976653a3a3c543e3a3a6765742861737365745f6b696e64296000012d0400011d01000001310b00042441737365744b696e64a004450120546865207479706520666f72206173736574206b696e647320666f722077686963682074686520636f6e76657273696f6e207261746520746f206e61746976652062616c616e6365206973207365742e0014000024436f6e7472616374730124436f6e7472616374731c305072697374696e65436f64650001040634350b040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e0028436f6465496e666f4f660001040634390b040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e00144e6f6e6365010030200000000000000000581d0120546869732069732061202a2a6d6f6e6f746f6e69632a2a20636f756e74657220696e6372656d656e746564206f6e20636f6e747261637420696e7374616e74696174696f6e2e0005012054686973206973207573656420696e206f7264657220746f2067656e657261746520756e6971756520747269652069647320666f7220636f6e7472616374732e2901205468652074726965206964206f662061206e657720636f6e74726163742069732063616c63756c617465642066726f6d2068617368286163636f756e745f69642c206e6f6e6365292e350120546865206e6f6e63652069732072657175697265642062656361757365206f74686572776973652074686520666f6c6c6f77696e672073657175656e636520776f756c64206c65616420746f84206120706f737369626c6520636f6c6c6973696f6e206f662073746f726167653a006820312e204372656174652061206e657720636f6e74726163742e6c20322e205465726d696e6174652074686520636f6e74726163742efc20332e20496d6d6564696174656c792072656372656174652074686520636f6e74726163742077697468207468652073616d65206163636f756e745f69642e00450120546869732069732062616420626563617573652074686520636f6e74656e7473206f6620612074726965206172652064656c65746564206c617a696c7920616e64207468657265206d6967687420626559012073746f72616765206f6620746865206f6c6420696e7374616e74696174696f6e207374696c6c20696e206974207768656e20746865206e657720636f6e747261637420697320637265617465642e20506c656173655901206e6f746520746861742077652063616e2774207265706c6163652074686520636f756e7465722062792074686520626c6f636b206e756d6265722062656361757365207468652073657175656e63652061626f766551012063616e2068617070656e20696e207468652073616d6520626c6f636b2e20576520616c736f2063616e2774206b65657020746865206163636f756e7420636f756e74657220696e206d656d6f7279206f6e6c79490120626563617573652073746f7261676520697320746865206f6e6c792077617920746f20636f6d6d756e6963617465206163726f737320646966666572656e742065787472696e7369637320696e20746865302073616d6520626c6f636b2e001c2023204e6f7465003d0120446f206e6f742075736520697420746f2064657465726d696e6520746865206e756d626572206f6620636f6e7472616374732e20497420776f6e27742062652064656372656d656e74656420696664206120636f6e74726163742069732064657374726f7965642e0038436f6e7472616374496e666f4f6600010405003d0b04000ca82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e003444656c6574696f6e51756575650001040510c501040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e005044656c6574696f6e5175657565436f756e7465720100510b200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e004c4d6967726174696f6e496e50726f67726573730000550b04000861012041206d6967726174696f6e2063616e207370616e206163726f7373206d756c7469706c6520626c6f636b732e20546869732073746f7261676520646566696e6573206120637572736f7220746f20747261636b207468654d012070726f6772657373206f6620746865206d6967726174696f6e2c20656e61626c696e6720757320746f20726573756d652066726f6d20746865206c61737420636f6d706c6574656420706f736974696f6e2e000131040c0002f4314420776569676874206973207573656420696e20746869732065787472696e7369632c20706c65617365206d69677261746520746f206063616c6c600001023901314420776569676874206973207573656420696e20746869732065787472696e7369632c20706c65617365206d69677261746520746f2060696e7374616e74696174655f776974685f636f6465600002021101314420776569676874206973207573656420696e20746869732065787472696e7369632c20706c65617365206d69677261746520746f2060696e7374616e746961746560000125010034205363686564756c65590b9004000000100000002000000000400000000000080000002060ea000000000000eb040000046820436f7374207363686564756c6520616e64206c696d6974732e00384465706f7369745065724279746518400060defb7405000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e004c44656661756c744465706f7369744c696d697418400000c0afbc4f865700000000000000000445012046616c6c6261636b2076616c756520746f206c696d6974207468652073746f72616765206465706f7369742069662069742773206e6f74206265696e6720736574206279207468652063616c6c65722e00384465706f7369745065724974656d184000f0ab75a40d000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465002901204368616e67696e6720746869732076616c756520666f7220616e206578697374696e6720636861696e206d69676874206e65656420612073746f72616765206d6967726174696f6e2e0070436f6465486173684c6f636b75704465706f73697450657263656e74c41000a3e111104501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e610120496e7374616e74696174696e67206120636f6e74726163742c206f722063616c6c696e67205b60636861696e5f657874656e73696f6e3a3a4578743a3a6c6f636b5f64656c65676174655f646570656e64656e6379605d49012070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e7420616275736520746865736520616374696f6e7320617265c42070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e00284d6178436f64654c656e101000ec010014c020546865206d6178696d756d206c656e677468206f66206120636f6e747261637420636f646520696e2062797465732e005901205468652076616c75652073686f756c642062652063686f73656e206361726566756c6c792074616b696e6720696e746f20746865206163636f756e7420746865206f766572616c6c206d656d6f7279206c696d6974f020796f75722072756e74696d65206861732c2061732077656c6c20617320746865205b6d6178696d756d20616c6c6f7765642063616c6c737461636b5d012064657074685d28236173736f636961746564747970652e43616c6c537461636b292e204c6f6f6b20696e746f207468652060696e746567726974795f7465737428296020666f7220736f6d6520696e7369676874732e00404d617853746f726167654b65794c656e10108000000004e020546865206d6178696d756d20616c6c6f7761626c65206c656e67746820696e20627974657320666f722073746f72616765206b6579732e005c4d61785472616e7369656e7453746f7261676553697a6510100000100008d020546865206d6178696d756d2073697a65206f6620746865207472616e7369656e742073746f7261676520696e2062797465732e3101205468697320696e636c75646573206b6579732c2076616c7565732c20616e642070726576696f757320656e7472696573207573656420666f722073746f7261676520726f6c6c6261636b2e005c4d617844656c6567617465446570656e64656e6369657310102000000008290120546865206d6178696d756d206e756d626572206f662064656c65676174655f646570656e64656e636965732074686174206120636f6e74726163742063616e206c6f636b2077697468d0205b60636861696e5f657874656e73696f6e3a3a4578743a3a6c6f636b5f64656c65676174655f646570656e64656e6379605d2e005c556e73616665556e737461626c65496e74657266616365200400241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e00444d617844656275674275666665724c656e10100000200004c420546865206d6178696d756d206c656e677468206f66207468652064656275672062756666657220696e2062797465732e002c456e7669726f6e6d656e74650b00102501205479706520746861742062756e646c657320746f67657468657220616c6c207468652072756e74696d6520636f6e666967757261626c6520696e746572666163652074797065732e0035012054686973206973206e6f742061207265616c20636f6e6669672e205765206a757374206d656e74696f6e207468652074797065206865726520617320636f6e7374616e7420736f2074686174f0206974732074797065206170706561727320696e20746865206d657461646174612e204f6e6c792076616c69642076616c756520697320602829602e002841706956657273696f6e810b0804000c0901205468652076657273696f6e206f662074686520486f7374466e204150497320746861742061726520617661696c61626c6520696e207468652072756e74696d652e0068204f6e6c792076616c69642076616c756520697320602829602e0001850b000000150000105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e00013d0400013101000001890b00042c52756e74696d6543616c6c350204482041207375646f2d61626c652063616c6c2e0016000020496d4f6e6c696e650120496d4f6e6c696e651038486561727462656174416674657201001010000000002c1d012054686520626c6f636b206e756d6265722061667465722077686963682069742773206f6b20746f2073656e64206865617274626561747320696e207468652063757272656e74242073657373696f6e2e0025012041742074686520626567696e6e696e67206f6620656163682073657373696f6e20776520736574207468697320746f20612076616c756520746861742073686f756c642066616c6c350120726f7567686c7920696e20746865206d6964646c65206f66207468652073657373696f6e206475726174696f6e2e20546865206964656120697320746f206669727374207761697420666f721901207468652076616c696461746f727320746f2070726f64756365206120626c6f636b20696e207468652063757272656e742073657373696f6e2c20736f207468617420746865a820686561727462656174206c61746572206f6e2077696c6c206e6f74206265206e65636573736172792e00390120546869732076616c75652077696c6c206f6e6c79206265207573656420617320612066616c6c6261636b206966207765206661696c20746f2067657420612070726f7065722073657373696f6e2d012070726f677265737320657374696d6174652066726f6d20604e65787453657373696f6e526f746174696f6e602c2061732074686f736520657374696d617465732073686f756c642062650101206d6f7265206163637572617465207468656e207468652076616c75652077652063616c63756c61746520666f7220604865617274626561744166746572602e00104b65797301008d0b040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e00485265636569766564486561727462656174730001080505750120040004350120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206053657373696f6e496e6465786020616e64206041757468496e646578602e0038417574686f726564426c6f636b7301010805052d0a10100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206056616c696461746f7249643c543e6020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0001410400013501000440556e7369676e65645072696f726974793020ffffffffffffffff10f0204120636f6e66696775726174696f6e20666f722062617365207072696f72697479206f6620756e7369676e6564207472616e73616374696f6e732e0015012054686973206973206578706f73656420736f20746861742069742063616e2062652074756e656420666f7220706172746963756c61722072756e74696d652c207768656eb4206d756c7469706c652070616c6c6574732073656e6420756e7369676e6564207472616e73616374696f6e732e0001950b00042c417574686f7269747949643901049820546865206964656e746966696572207479706520666f7220616e20617574686f726974792e0017000048417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100990b0400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e00204e6578744b6579730100990b04000480204b657973206f6620746865206e65787420617574686f72697479207365742e00000000000000180000204f6666656e63657301204f6666656e636573081c5265706f7274730001040534a10b040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e0058436f6e63757272656e745265706f727473496e6465780101080505a50b21050400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0000014501000000044c4964656e74696669636174696f6e5475706c65410104982046756c6c206964656e74696669636174696f6e206f66207468652076616c696461746f722e0019000028486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e730001040510a90b0400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e002c53746f72656452616e676500007501040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c617374290000014d01000000044846756c6c4964656e74696669636174696f6e8804982046756c6c206964656e74696669636174696f6e206f66207468652076616c696461746f722e001a00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100ad0b04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e000000000000001b0000204964656e7469747901204964656e7469747924284964656e746974794f660001040500b10b040010690120496e666f726d6174696f6e20746861742069732070657274696e656e7420746f206964656e746966792074686520656e7469747920626568696e6420616e206163636f756e742e204669727374206974656d20697320746865e020726567697374726174696f6e2c207365636f6e6420697320746865206163636f756e742773207072696d61727920757365726e616d652e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e0028557365726e616d654f6600010405005501040004bc204964656e74696669657320746865207072696d61727920757365726e616d65206f6620616e206163636f756e742e001c53757065724f660001040200e1040400086101205468652073757065722d6964656e74697479206f6620616e20616c7465726e6174697665202273756222206964656e7469747920746f676574686572207769746820697473206e616d652c2077697468696e2074686174510120636f6e746578742e20496620746865206163636f756e74206973206e6f7420736f6d65206f74686572206163636f756e742773207375622d6964656e746974792c207468656e206a75737420604e6f6e65602e0018537562734f660101040500c10b44000000000000000000000000000000000014b820416c7465726e6174697665202273756222206964656e746974696573206f662074686973206163636f756e742e001d0120546865206669727374206974656d20697320746865206465706f7369742c20746865207365636f6e64206973206120766563746f72206f6620746865206163636f756e74732e00c02054574f582d4e4f54453a204f4b20e2809520604163636f756e7449646020697320612073656375726520686173682e0028526567697374726172730100c90b0400104d012054686520736574206f6620726567697374726172732e204e6f7420657870656374656420746f206765742076657279206269672061732063616e206f6e6c79206265206164646564207468726f7567682061a8207370656369616c206f726967696e20286c696b656c79206120636f756e63696c206d6f74696f6e292e0029012054686520696e64657820696e746f20746869732063616e206265206361737420746f2060526567697374726172496e6465786020746f2067657420612076616c69642076616c75652e002c417574686f726974794f6600010405d90bdd0b040004f42041206d6170206f6620746865206163636f756e74732077686f2061726520617574686f72697a656420746f206772616e7420757365726e616d65732e0038557365726e616d65496e666f4f66000104025501e10b04001875012052657665727365206c6f6f6b75702066726f6d2060757365726e616d656020746f2074686520604163636f756e74496460207468617420686173207265676973746572656420697420616e64207468652070726f7669646572206f666d012074686520757365726e616d652e2054686520606f776e6572602076616c75652073686f756c642062652061206b657920696e207468652060557365726e616d654f6660206d61702c20627574206974206d6179206e6f74206966f02074686520757365722068617320636c656172656420746865697220757365726e616d65206f7220697420686173206265656e2072656d6f7665642e006901204d756c7469706c6520757365726e616d6573206d6179206d617020746f207468652073616d6520604163636f756e744964602c206275742060557365726e616d654f66602077696c6c206f6e6c79206d617020746f206f6e6548207072696d61727920757365726e616d652e004050656e64696e67557365726e616d6573000104025501e90b0400186d0120557365726e616d6573207468617420616e20617574686f7269747920686173206772616e7465642c20627574207468617420746865206163636f756e7420636f6e74726f6c6c657220686173206e6f7420636f6e6669726d65647101207468617420746865792077616e742069742e2055736564207072696d6172696c7920696e2063617365732077686572652074686520604163636f756e744964602063616e6e6f742070726f766964652061207369676e61747572655d012062656361757365207468657920617265206120707572652070726f78792c206d756c74697369672c206574632e20496e206f7264657220746f20636f6e6669726d2069742c20746865792073686f756c642063616c6cb0205b6163636570745f757365726e616d655d286043616c6c3a3a6163636570745f757365726e616d6560292e001d01204669727374207475706c65206974656d20697320746865206163636f756e7420616e64207365636f6e642069732074686520616363657074616e636520646561646c696e652e0048556e62696e64696e67557365726e616d6573000104025501100400105d0120557365726e616d657320666f722077686963682074686520617574686f726974792074686174206772616e746564207468656d206861732073746172746564207468652072656d6f76616c2070726f63657373206279710120756e62696e64696e67207468656d2e204561636820756e62696e64696e6720757365726e616d65206d61707320746f2069747320677261636520706572696f64206578706972792c20776869636820697320746865206669727374dc20626c6f636b20696e2077686963682074686520757365726e616d6520636f756c642062652064656c65746564207468726f7567682061c4205b72656d6f76655f757365726e616d655d286043616c6c3a3a72656d6f76655f757365726e616d6560292063616c6c2e00014d040001510100283042617369634465706f73697418400050702f696a0000000000000000000004d82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564206964656e746974792e002c427974654465706f73697418400060defb740500000000000000000000041d012054686520616d6f756e742068656c64206f6e206465706f7369742070657220656e636f646564206279746520666f7220612072656769737465726564206964656e746974792e003c557365726e616d654465706f73697418400000cc7b9fae000000000000000000000855012054686520616d6f756e742068656c64206f6e206465706f73697420706572207265676973746572656420757365726e616d652e20546869732076616c75652073686f756c64206368616e6765206f6e6c7920696ef42072756e74696d6520757067726164657320776974682070726f706572206d6967726174696f6e206f66206578697374696e67206465706f736974732e00445375624163636f756e744465706f73697418400080f420e6b5000000000000000000000c65012054686520616d6f756e742068656c64206f6e206465706f73697420666f7220612072656769737465726564207375626163636f756e742e20546869732073686f756c64206163636f756e7420666f7220746865206661637465012074686174206f6e652073746f72616765206974656d27732076616c75652077696c6c20696e637265617365206279207468652073697a65206f6620616e206163636f756e742049442c20616e642074686572652077696c6c350120626520616e6f746865722074726965206974656d2077686f73652076616c7565206973207468652073697a65206f6620616e206163636f756e7420494420706c75732033322062797465732e00384d61785375624163636f756e7473101064000000040d0120546865206d6178696d756d206e756d626572206f66207375622d6163636f756e747320616c6c6f77656420706572206964656e746966696564206163636f756e742e00344d617852656769737472617273101014000000084d01204d6178696d756d206e756d626572206f66207265676973747261727320616c6c6f77656420696e207468652073797374656d2e204e656564656420746f20626f756e642074686520636f6d706c65786974797c206f662c20652e672e2c207570646174696e67206a756467656d656e74732e006450656e64696e67557365726e616d6545787069726174696f6e10108013030004150120546865206e756d626572206f6620626c6f636b732077697468696e207768696368206120757365726e616d65206772616e74206d7573742062652061636365707465642e004c557365726e616d654772616365506572696f641010002f0d0008590120546865206e756d626572206f6620626c6f636b732074686174206d757374207061737320746f20656e61626c6520746865207065726d616e656e742064656c6574696f6e206f66206120757365726e616d652062796820697473207265737065637469766520617574686f726974792e003c4d61785375666669784c656e677468101007000000048020546865206d6178696d756d206c656e677468206f662061207375666669782e00444d6178557365726e616d654c656e67746810102000000004610120546865206d6178696d756d206c656e677468206f66206120757365726e616d652c20696e636c7564696e67206974732073756666697820616e6420616e792073797374656d2d61646465642064656c696d69746572732e0001ed0b0004444f6666636861696e5369676e6174757265ed040ce0205369676e6174757265207479706520666f72207072652d617574686f72697a696e6720757365726e616d6573206f66662d636861696e2e0011012043616e20766572696679207768657468657220616e206053656c663a3a5369676e696e675075626c69634b65796020637265617465642061207369676e61747572652e001c00001c536f6369657479011c536f63696574795028506172616d657465727300006101040004dc20546865206d6178206e756d626572206f66206d656d6265727320666f722074686520736f6369657479206174206f6e652074696d652e000c506f74010018400000000000000000000000000000000004410120416d6f756e74206f66206f7572206163636f756e742062616c616e63652074686174206973207370656369666963616c6c7920666f7220746865206e65787420726f756e642773206269642873292e001c466f756e6465720000000400044820546865206669727374206d656d6265722e001048656164000000040004410120546865206d6f7374207072696d6172792066726f6d20746865206d6f737420726563656e746c7920617070726f7665642072616e6b2030206d656d6265727320696e2074686520736f63696574792e001452756c6573000034040008510120412068617368206f66207468652072756c6573206f66207468697320736f636965747920636f6e6365726e696e67206d656d626572736869702e2043616e206f6e6c7920626520736574206f6e636520616e6454206f6e6c792062792074686520666f756e6465722e001c4d656d626572730001040500f10b0400042101205468652063757272656e74206d656d6265727320616e642074686569722072616e6b2e20446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e001c5061796f7574730101040500fd0b44000000000000000000000000000000000004dc20496e666f726d6174696f6e20726567617264696e672072616e6b2d30207061796f7574732c207061737420616e64206675747572652e002c4d656d626572436f756e74010010100000000004490120546865206e756d626572206f66206974656d7320696e20604d656d62657273602063757272656e746c792e2028446f65736e277420696e636c756465206053757370656e6465644d656d62657273602e2900344d656d6265724279496e6465780001040510000400085d01205468652063757272656e74206974656d7320696e20604d656d6265727360206b6579656420627920746865697220756e6971756520696e6465782e204b657973206172652064656e73656c7920706f70756c61746564cc2060302e2e4d656d626572436f756e74602028646f6573206e6f7420696e636c75646520604d656d626572436f756e7460292e004053757370656e6465644d656d626572730001040500f10b04000401012054686520736574206f662073757370656e646564206d656d626572732c2077697468207468656972206f6c64206d656d62657273686970207265636f72642e0028526f756e64436f756e74010010100000000004a020546865206e756d626572206f6620726f756e64732077686963682068617665207061737365642e00104269647301000d0c040004e8205468652063757272656e7420626964732c2073746f726564206f726465726564206279207468652076616c7565206f6620746865206269642e002843616e6469646174657300010402001d0c040000001c536b657074696300000004000454205468652063757272656e7420736b65707469632e0014566f7465730001080505250c290c040004d020446f75626c65206d61702066726f6d2043616e646964617465202d3e20566f746572202d3e20284d617962652920566f74652e003c566f7465436c656172437572736f7200010405002d0c040004f420436c6561722d637572736f7220666f7220566f74652c206d61702066726f6d2043616e646964617465202d3e20284d617962652920437572736f722e00204e657874486561640000310c04000c75012041742074686520656e64206f662074686520636c61696d20706572696f642c207468697320636f6e7461696e7320746865206d6f737420726563656e746c7920617070726f766564206d656d626572732028616c6f6e67207769746865012074686569722062696420616e6420726f756e64204944292077686f2069732066726f6d20746865206d6f737420726563656e7420726f756e64207769746820746865206c6f77657374206269642e20546865792077696c6c5c206265636f6d6520746865206e6577206048656164602e004c4368616c6c656e6765526f756e64436f756e74010010100000000004590120546865206e756d626572206f66206368616c6c656e676520726f756e64732074686572652068617665206265656e2e205573656420746f206964656e74696679207374616c6520446566656e646572566f7465732e0024446566656e64696e670000350c04000459012054686520646566656e64696e67206d656d6265722063757272656e746c79206265696e67206368616c6c656e6765642c20616c6f6e67207769746820612072756e6e696e672074616c6c79206f6620766f7465732e0034446566656e646572566f74657300010805052d0a290c040004c820566f74657320666f722074686520646566656e6465722c206b65796564206279206368616c6c656e676520726f756e642e0001f5040001590100242050616c6c65744964290b2070792f736f63696504682054686520736f6369657469657327732070616c6c657420696400304772616365537472696b657310100a00000004090120546865206d6178696d756d206e756d626572206f6620737472696b6573206265666f72652061206d656d62657220676574732066756e647320736c61736865642e002c506572696f645370656e6418400000c52ebca2b1000000000000000000042d012054686520616d6f756e74206f6620696e63656e7469766520706169642077697468696e206561636820706572696f642e20446f65736e277420696e636c75646520566f7465725469702e0030566f74696e67506572696f64101000770100083d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732073686f756c6420626520766f746564206f6e2e20546f67657468657220776974684d012060436c61696d506572696f64602c20746869732073756d7320746f20746865206e756d626572206f6620626c6f636b73206265747765656e2063616e64696461746520696e74616b6520706572696f64732e002c436c61696d506572696f64101000770100084d0120546865206e756d626572206f6620626c6f636b73206f6e207768696368206e65772063616e646964617465732063616e20636c61696d207468656972206d656d6265727368697020616e642062652074686530206e616d656420686561642e003c4d61784c6f636b4475726174696f6e1010009cda0104a420546865206d6178696d756d206475726174696f6e206f6620746865207061796f7574206c6f636b2e003c4368616c6c656e6765506572696f6410108013030004d020546865206e756d626572206f6620626c6f636b73206265747765656e206d656d62657273686970206368616c6c656e6765732e00284d61785061796f75747310100a000000040d0120546865206d6178696d756d206e756d626572206f66207061796f7574732061206d656d626572206d617920686176652077616974696e6720756e636c61696d65642e001c4d61784269647310100a000000049020546865206d6178696d756d206e756d626572206f662062696473206174206f6e63652e0001390c0000001d0000205265636f7665727901205265636f766572790c2c5265636f76657261626c6500010405003d0c04000409012054686520736574206f66207265636f76657261626c65206163636f756e747320616e64207468656972207265636f7665727920636f6e66696775726174696f6e2e00404163746976655265636f7665726965730001080505250c450c0400106820416374697665207265636f7665727920617474656d7074732e001501204669727374206163636f756e7420697320746865206163636f756e7420746f206265207265636f76657265642c20616e6420746865207365636f6e64206163636f756e74ac20697320746865207573657220747279696e6720746f207265636f76657220746865206163636f756e742e001450726f787900010402000004000c9020546865206c697374206f6620616c6c6f7765642070726f7879206163636f756e74732e00f8204d61702066726f6d2074686520757365722077686f2063616e2061636365737320697420746f20746865207265636f7665726564206163636f756e742e0001f90400016501001044436f6e6669674465706f73697442617365184000406352bfc60100000000000000000010550120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061207265636f7665727920636f6e66696775726174696f6e2e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a65206973a8206032202b2073697a656f6628426c6f636b4e756d6265722c2042616c616e636529602062797465732e004c467269656e644465706f736974466163746f72184000203d88792d00000000000000000000142d012054686520616d6f756e74206f662063757272656e6379206e656564656420706572206164646974696f6e616c2075736572207768656e206372656174696e672061207265636f766572793c20636f6e66696775726174696f6e2e004d0120546869732069732068656c6420666f7220616464696e67206073697a656f66284163636f756e7449642960206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167651c2076616c75652e00284d6178467269656e6473101009000000180d0120546865206d6178696d756d20616d6f756e74206f6620667269656e647320616c6c6f77656420696e2061207265636f7665727920636f6e66696775726174696f6e2e000d01204e4f54453a20546865207468726573686f6c642070726f6772616d6d656420696e20746869732050616c6c65742075736573207531362c20736f20697420646f65730901206e6f74207265616c6c79206d616b652073656e736520746f20686176652061206c696d697420686572652067726561746572207468616e207531363a3a4d41582e15012042757420616c736f2c20746861742069732061206c6f74206d6f7265207468616e20796f752073686f756c642070726f6261626c792073657420746869732076616c75653420746f20616e797761792e2e2e003c5265636f766572794465706f736974184000406352bfc6010000000000000000001c1d0120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72207374617274696e672061207265636f766572792e0035012054686973206973207072696d6172696c792068656c6420666f7220646574657272696e67206d616c6963696f7573207265636f7665727920617474656d7074732c20616e642073686f756c642901206861766520612076616c7565206c6172676520656e6f7567682074686174206120626164206163746f7220776f756c642063686f6f7365206e6f7420746f20706c61636520746869732901206465706f7369742e20497420616c736f206163747320746f2066756e64206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069734101206073697a656f6628426c6f636b4e756d6265722c2042616c616e6365202b2054202a204163636f756e74496429602062797465732e2057686572652054206973206120636f6e666967757261626c652c207468726573686f6c642e0001490c00042c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e001e00001c56657374696e67011c56657374696e67081c56657374696e6700010402004d0c040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e003853746f7261676556657273696f6e0100550c04000c7c2053746f726167652076657273696f6e206f66207468652070616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e0001010500016d010008444d696e5665737465645472616e7366657218400000c16ff2862300000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e004c4d617856657374696e675363686564756c657310101c000000000001590c0000001f0000245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e00184167656e646101010405105d0c0400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e001c526574726965730001040275016d0c040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e00184c6f6f6b757000010405047501040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e00010905000171010008344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e00504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e0001710c00042c52756e74696d6543616c6c350204682054686520616767726567617465642063616c6c20747970652e002000001c476c7574746f6e011c476c7574746f6e141c436f6d7075746501008101200000000000000000102101205468652070726f706f7274696f6e206f66207468652072656d61696e696e6720607265665f74696d656020746f20636f6e73756d6520647572696e6720606f6e5f69646c65602e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e001c53746f7261676501008101200000000000000000102901205468652070726f706f7274696f6e206f66207468652072656d61696e696e67206070726f6f665f73697a656020746f20636f6e73756d6520647572696e6720606f6e5f69646c65602e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e00184c656e6774680100810120000000000000000010fc205468652070726f706f7274696f6e206f66207468652060626c6f636b206c656e6774686020746f20636f6e73756d65206f6e206561636820626c6f636b2e006d012060312e3060206973206d617070656420746f206031303025602e204d757374206265206174206d6f7374205b6063726174653a3a5245534f555243455f484152445f4c494d4954605d2e2053657474696e67207468697320746f88206f7665722060312e306020636f756c64207374616c6c2074686520636861696e2e002454726173684461746100010405101905040020a42053746f72616765206d6170207573656420666f722077617374696e672070726f6f662073697a652e00690120497420636f6e7461696e73206e6f206d65616e696e6766756c2064617461202d2068656e636520746865206e616d6520225472617368222e20546865206d6178696d616c206e756d626572206f6620656e747269657320697375012073657420746f2036356b2c207768696368206973206a7573742062656c6f7720746865206e657874206a756d702061742031365e342e205468697320697320696d706f7274616e7420746f20726564756365207468652070726f6f6669012073697a652062656e63686d61726b696e67206f766572657374696d6174652e2054686520617373756d7074696f6e2068657265206973207468617420776520776f6e27742068617665206d6f7265207468616e2036356b202a710120314b6942203d2036354d6942206f662070726f6f662073697a652077617374696e6720696e2070726163746963652e20486f77657665722c2074686973206c696d6974206973206e6f7420656e666f726365642c20736f2074686569012070616c6c657420776f756c6420616c736f20776f726b206f7574206f662074686520626f782077697468206d6f726520656e74726965732c20627574206974732062656e63686d61726b65642070726f6f6620776569676874bc20776f756c6420706f737369626c7920626520756e646572657374696d6174656420696e207468617420636173652e0038547261736844617461436f756e74010010100000000004b8205468652063757272656e74206e756d626572206f6620656e747269657320696e2060547261736844617461602e0001110500017d01000001750c00000021000020507265696d6167650120507265696d6167650c24537461747573466f720001040634790c0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e024052657175657374537461747573466f72004052657175657374537461747573466f720001040634810c0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e002c507265696d616765466f7200010406a90b910c04000000011d0500018501000001950c0000002200001450726f7879011450726f7879081c50726f786965730101040500990c4400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e0034416e6e6f756e63656d656e74730101040500a90c44000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e000125050001890100184050726f78794465706f73697442617365184000f09e544c390000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e004850726f78794465706f736974466163746f7218400060aa7714b40000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e00284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e00284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e005c416e6e6f756e63656d656e744465706f73697442617365184000f09e544c390000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e0064416e6e6f756e63656d656e744465706f736974466163746f72184000c054ef28680100000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e0001b90c00082c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e2450726f7879547970658d011055012041206b696e64206f662070726f78793b207370656369666965642077697468207468652070726f787920616e642070617373656420696e20746f207468652060497350726f787961626c65602066696c7465722e51012054686520696e7374616e63652066696c7465722064657465726d696e65732077686574686572206120676976656e2063616c6c206d61792062652070726f7869656420756e646572207468697320747970652e004d0120494d504f5254414e543a206044656661756c7460206d7573742062652070726f766964656420616e64204d5553542042452074686520746865202a6d6f7374207065726d6973736976652a2076616c75652e081809d78346727a0ef58c0fa03bafa323cbc51488d92a1aa7137b03bfb50efc1744636865636b5f7065726d697373696f6e73081063616c6c35022870726f78795f747970658d012004f420436865636b2069662061206052756e74696d6543616c6c6020697320616c6c6f77656420666f72206120676976656e206050726f787954797065602e001809d78346727a0ef58c0fa03bafa3231714b0607d62af0a3b3b0ad2c5d55c582c69735f73757065727365740820746f5f636865636b8d011c616761696e73748d012004f420436865636b206966206f6e65206050726f78795479706560206973206120737562736574206f6620616e6f74686572206050726f787954797065602e00230000204d756c746973696701204d756c746973696704244d756c7469736967730001080502bd0cc10c040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e00012d0500019901000c2c4465706f73697442617365184000f01c0adbed0100000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e00344465706f736974466163746f7218400000cc7b9fae000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e00384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e0001c50c00042c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e0024000020426f756e746965730120426f756e74696573102c426f756e7479436f756e74010010100000000004c0204e756d626572206f6620626f756e74792070726f706f73616c7320746861742068617665206265656e206d6164652e0020426f756e746965730001040510c90c0400047820426f756e7469657320746861742068617665206265656e206d6164652e0048426f756e74794465736372697074696f6e730001040510d10c0400048020546865206465736372697074696f6e206f66206561636820626f756e74792e003c426f756e7479417070726f76616c7301001d0b040004ec20426f756e747920696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f74207965742066756e6465642e000135050001a101002444426f756e74794465706f73697442617365184000407a10f35a0000000000000000000004e82054686520616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120626f756e74792070726f706f73616c2e0060426f756e74794465706f7369745061796f757444656c6179101080700000045901205468652064656c617920706572696f6420666f72207768696368206120626f756e74792062656e6566696369617279206e65656420746f2077616974206265666f726520636c61696d20746865207061796f75742e0048426f756e7479557064617465506572696f6410100027060018f4205468652074696d65206c696d697420666f7220612063757261746f7220746f20616374206265666f7265206120626f756e747920657870697265732e0055012054686520706572696f64207468617420737461727473207768656e20612063757261746f7220697320617070726f7665642c20647572696e672077686963682074686579206d7573742065786563757465206f725501207570646174652074686520626f756e7479207669612060657874656e645f626f756e74795f657870697279602e204966206d69737365642c2074686520626f756e747920657870697265732c20616e642074686555012063757261746f72206d617920626520736c61736865642e2049662060426c6f636b4e756d626572466f723a3a4d4158602c20626f756e7469657320737461792061637469766520696e646566696e6974656c792cb82072656d6f76696e6720746865206e65656420666f722060657874656e645f626f756e74795f657870697279602e006043757261746f724465706f7369744d756c7469706c69657211081020a10700101901205468652063757261746f72206465706f7369742069732063616c63756c6174656420617320612070657263656e74616765206f66207468652063757261746f72206665652e0039012054686973206465706f73697420686173206f7074696f6e616c20757070657220616e64206c6f77657220626f756e64732077697468206043757261746f724465706f7369744d61786020616e6454206043757261746f724465706f7369744d696e602e004443757261746f724465706f7369744d6178b10344010000c16ff28623000000000000000000044901204d6178696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e004443757261746f724465706f7369744d696eb103440100407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e0048426f756e747956616c75654d696e696d756d184000406352bfc6010000000000000000000470204d696e696d756d2076616c756520666f72206120626f756e74792e0048446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e004c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c75650001d50c00000025000010546970730110546970730810546970730001040534d90c04000c650120546970734d6170207468617420617265206e6f742079657420636f6d706c657465642e204b65796564206279207468652068617368206f66206028726561736f6e2c2077686f29602066726f6d207468652076616c75652e3d012054686973206861732074686520696e73656375726520656e756d657261626c6520686173682066756e6374696f6e2073696e636520746865206b657920697473656c6620697320616c7265616479802067756172616e7465656420746f20626520612073656375726520686173682e001c526561736f6e7300010406343804000849012053696d706c6520707265696d616765206c6f6f6b75702066726f6d2074686520726561736f6e2773206861736820746f20746865206f726967696e616c20646174612e20416761696e2c2068617320616e610120696e73656375726520656e756d657261626c6520686173682073696e636520746865206b65792069732067756172616e7465656420746f2062652074686520726573756c74206f6620612073656375726520686173682e000139050001a50100184c4d6178696d756d526561736f6e4c656e67746810102c0100000c88204d6178696d756d2061636365707461626c6520726561736f6e206c656e6774682e0065012042656e63686d61726b7320646570656e64206f6e20746869732076616c75652c206265207375726520746f2075706461746520776569676874732066696c65207768656e206368616e67696e6720746869732076616c75650048446174614465706f7369745065724279746518400010a5d4e800000000000000000000000461012054686520616d6f756e742068656c64206f6e206465706f7369742070657220627974652077697468696e2074686520746970207265706f727420726561736f6e206f7220626f756e7479206465736372697074696f6e2e0030546970436f756e74646f776e1010807000000445012054686520706572696f6420666f722077686963682061207469702072656d61696e73206f70656e20616674657220697320686173206163686965766564207468726573686f6c6420746970706572732e003454697046696e6465727346656599030414043501205468652070657263656e74206f66207468652066696e616c2074697020776869636820676f657320746f20746865206f726967696e616c207265706f72746572206f6620746865207469702e00505469705265706f72744465706f73697442617365184000407a10f35a0000000000000000000004f820546865206e6f6e2d7a65726f20616d6f756e742068656c64206f6e206465706f73697420666f7220706c6163696e67206120746970207265706f72742e00304d6178546970416d6f756e7418400000c52ebca2b1000000000000000000049420546865206d6178696d756d20616d6f756e7420666f7220612073696e676c65207469702e0001dd0c000000260000184173736574730118417373657473141441737365740001040210e10c040004542044657461696c73206f6620616e2061737365742e001c4163636f756e7400010802022d0ae90c040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e0024417070726f76616c7300010c020202f50cf90c04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e00204d657461646174610101040210fd0c5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e002c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e00013d050001a901001c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e003041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e004c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e004c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e00584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e003c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e002c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e0001050d00101c42616c616e636518049c2054686520756e69747320696e207768696368207765207265636f72642062616c616e6365732e1c4173736574496410048c204964656e74696669657220666f722074686520636c617373206f662061737365742e4041737365744964506172616d6574657271021c590120577261707065722061726f756e64206053656c663a3a417373657449646020746f2075736520696e20646973706174636861626c652063616c6c207369676e6174757265732e20416c6c6f777320746865207573655101206f6620636f6d7061637420656e636f64696e6720696e20696e7374616e636573206f66207468652070616c6c65742c2077686963682077696c6c2070726576656e7420627265616b696e67206368616e676573050120726573756c74696e672066726f6d207468652072656d6f76616c206f662060486173436f6d70616374602066726f6d206053656c663a3a41737365744964602e0059012054686973207479706520696e636c7564657320746865206046726f6d3c53656c663a3a417373657449643e6020626f756e642c2073696e63652074696768746c7920636f75706c65642070616c6c657473206d617945012077616e7420746f20636f6e7665727420616e2060417373657449646020696e746f206120706172616d6574657220666f722063616c6c696e6720646973706174636861626c652066756e6374696f6e7328206469726563746c792e1445787472618804f8204164646974696f6e616c206461746120746f2062652073746f726564207769746820616e206163636f756e7427732061737365742062616c616e63652e0027000028506f6f6c4173736574730128506f6f6c417373657473141441737365740001040210e10c040004542044657461696c73206f6620616e2061737365742e001c4163636f756e7400010802022d0ae90c040004e42054686520686f6c64696e6773206f662061207370656369666963206163636f756e7420666f7220612073706563696669632061737365742e0024417070726f76616c7300010c020202f50cf90c04000c590120417070726f7665642062616c616e6365207472616e73666572732e2046697273742062616c616e63652069732074686520616d6f756e7420617070726f76656420666f72207472616e736665722e205365636f6e64e82069732074686520616d6f756e74206f662060543a3a43757272656e63796020726573657276656420666f722073746f72696e6720746869732e4901204669727374206b6579206973207468652061737365742049442c207365636f6e64206b657920697320746865206f776e657220616e64207468697264206b6579206973207468652064656c65676174652e00204d657461646174610101040210fd0c5000000000000000000000000000000000000000000458204d65746164617461206f6620616e2061737365742e002c4e657874417373657449640000100400246d012054686520617373657420494420656e666f7263656420666f7220746865206e657874206173736574206372656174696f6e2c20696620616e792070726573656e742e204f74686572776973652c20746869732073746f7261676550206974656d20686173206e6f206566666563742e00650120546869732063616e2062652075736566756c20666f722073657474696e6720757020636f6e73747261696e747320666f7220494473206f6620746865206e6577206173736574732e20466f72206578616d706c652c20627969012070726f766964696e6720616e20696e697469616c205b604e65787441737365744964605d20616e64207573696e6720746865205b6063726174653a3a4175746f496e6341737365744964605d2063616c6c6261636b2c20616ee8206175746f2d696e6372656d656e74206d6f64656c2063616e206265206170706c69656420746f20616c6c206e6577206173736574204944732e0021012054686520696e697469616c206e6578742061737365742049442063616e20626520736574207573696e6720746865205b6047656e65736973436f6e666967605d206f72207468652101205b5365744e657874417373657449645d28606d6967726174696f6e3a3a6e6578745f61737365745f69643a3a5365744e657874417373657449646029206d6967726174696f6e2e000141050001ad01001c4052656d6f76654974656d734c696d69741010e80300000c5101204d6178206e756d626572206f66206974656d7320746f2064657374726f7920706572206064657374726f795f6163636f756e74736020616e64206064657374726f795f617070726f76616c73602063616c6c2e003901204d75737420626520636f6e6669677572656420746f20726573756c7420696e2061207765696768742074686174206d616b657320656163682063616c6c2066697420696e206120626c6f636b2e003041737365744465706f73697418400000c16ff2862300000000000000000004f82054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e2061737365742e004c41737365744163636f756e744465706f736974184000407a10f35a000000000000000000000845012054686520616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f722061206e6f6e2d70726f7669646572206173736574206163636f756e7420746f20626530206d61696e7461696e65642e004c4d657461646174614465706f7369744261736518400080c6a47e8d030000000000000000000451012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f75722061737365742e00584d657461646174614465706f73697450657242797465184000407a10f35a0000000000000000000008550120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f6620627974657320796f752073746f726520696e20796f757228206d657461646174612e003c417070726f76616c4465706f736974184000407a10f35a000000000000000000000421012054686520616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e206372656174696e672061206e657720617070726f76616c2e002c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e0001090d00101c42616c616e636518049c2054686520756e69747320696e207768696368207765207265636f72642062616c616e6365732e1c4173736574496410048c204964656e74696669657220666f722074686520636c617373206f662061737365742e4041737365744964506172616d6574657271021c590120577261707065722061726f756e64206053656c663a3a417373657449646020746f2075736520696e20646973706174636861626c652063616c6c207369676e6174757265732e20416c6c6f777320746865207573655101206f6620636f6d7061637420656e636f64696e6720696e20696e7374616e636573206f66207468652070616c6c65742c2077686963682077696c6c2070726576656e7420627265616b696e67206368616e676573050120726573756c74696e672066726f6d207468652072656d6f76616c206f662060486173436f6d70616374602066726f6d206053656c663a3a41737365744964602e0059012054686973207479706520696e636c7564657320746865206046726f6d3c53656c663a3a417373657449643e6020626f756e642c2073696e63652074696768746c7920636f75706c65642070616c6c657473206d617945012077616e7420746f20636f6e7665727420616e2060417373657449646020696e746f206120706172616d6574657220666f722063616c6c696e6720646973706174636861626c652066756e6374696f6e7328206469726563746c792e1445787472618804f8204164646974696f6e616c206461746120746f2062652073746f726564207769746820616e206163636f756e7427732061737365742062616c616e63652e0028000014426565667901144265656679142c417574686f72697469657301000d0d04000470205468652063757272656e7420617574686f72697469657320736574003856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f7220736574206964003c4e657874417574686f72697469657301000d0d040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e0030536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e003047656e65736973426c6f636b0100c804000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e0001450500000c384d6178417574686f7269746965731010e803000004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e00344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e00584d6178536574496453657373696f6e456e74726965733020c00f00000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e0001150d00081c42656566794964d503046820417574686f72697479206964656e7469666965722074797065344b65794f776e657250726f6f667d020c1501205468652070726f6f66206f66206b6579206f776e6572736869702c207573656420666f722076616c69646174696e672065717569766f636174696f6e207265706f7274731101205468652070726f6f66206d75737420696e636c756465207468652073657373696f6e20696e64657820616e642076616c696461746f7220636f756e74206f6620746865b02073657373696f6e206174207768696368207468652065717569766f636174696f6e206f636375727265642e002900000c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e00384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e00144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e000000000000002a00001c4d6d724c656166011c4d6d724c65616608404265656679417574686f7269746965730100190db0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e005042656566794e657874417574686f7269746965730100190db000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e000000000000002b00001c4c6f7474657279011c4c6f747465727918304c6f7474657279496e646578010010100000000000001c4c6f747465727900001d0d040004ac2054686520636f6e66696775726174696f6e20666f72207468652063757272656e74206c6f74746572792e00305061727469636970616e74730101040500210d1400000000000419012055736572732077686f2068617665207075726368617365642061207469636b65742e20284c6f747465727920496e6465782c205469636b657473205075726368617365642900305469636b657473436f756e740100101000000000047820546f74616c206e756d626572206f66207469636b65747320736f6c642e001c5469636b657473000104051000040010542045616368207469636b65742773206f776e65722e006101204d6179206861766520726573696475616c2073746f726167652066726f6d2070726576696f7573206c6f747465726965732e2055736520605469636b657473436f756e746020746f20736565207768696368206f6e657390206172652061637475616c6c792076616c6964207469636b6574206d617070696e67732e002c43616c6c496e64696365730100250d0400083901205468652063616c6c732073746f72656420696e20746869732070616c6c657420746f206265207573656420696e20616e20616374697665206c6f747465727920696620636f6e666967757265646c2062792060436f6e6669673a3a56616c696461746543616c6c602e000179050001b101000c2050616c6c65744964290b2070792f6c6f74746f046020546865204c6f747465727927732070616c6c657420696400204d617843616c6c7310100a00000004dc20546865206d6178206e756d626572206f662063616c6c7320617661696c61626c6520696e20612073696e676c65206c6f74746572792e00444d617847656e657261746552616e646f6d10100a0000000c4901204e756d626572206f662074696d652077652073686f756c642074727920746f2067656e657261746520612072616e646f6d206e756d626572207468617420686173206e6f206d6f64756c6f20626961732e5d0120546865206c61726765722074686973206e756d6265722c20746865206d6f726520706f74656e7469616c20636f6d7075746174696f6e206973207573656420666f72207069636b696e67207468652077696e6e65722c01012062757420616c736f20746865206d6f7265206c696b656c792074686174207468652063686f73656e2077696e6e657220697320646f6e6520666169726c792e00012d0d00042c52756e74696d6543616c6c35020454204120646973706174636861626c652063616c6c2e002c00000c4e6973010c4e6973102c5175657565546f74616c730100310dc95db1040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001461012054686520746f74616c73206f66206974656d7320616e642062616c616e6365732077697468696e20656163682071756575652e2053617665732061206c6f74206f662073746f7261676520726561647320696e20746865802063617365206f66207370617273656c79207061636b6564207175657565732e006d012054686520766563746f7220697320696e6465786564206279206475726174696f6e20696e2060506572696f6460732c206f6666736574206279206f6e652c20736f20696e666f726d6174696f6e206f6e20746865207175657565d42077686f7365206475726174696f6e206973206f6e652060506572696f646020776f756c642062652073746f72616765206030602e00185175657565730101040210350d040004e02054686520717565756573206f6620626964732e20496e6465786564206279206475726174696f6e2028696e2060506572696f646073292e001c53756d6d6172790100410da00000000000000000000000000000000000000000000000000000000000000000000000000000000004b02053756d6d61727920696e666f726d6174696f6e206f766572207468652067656e6572616c2073746174652e002052656365697074730001040210450d0400044101205468652063757272656e746c79206f75747374616e64696e672072656365697074732c20696e6465786564206163636f7264696e6720746f20746865206f72646572206f66206372656174696f6e2e00017d050001b90100282050616c6c65744964290b2070792f6e697320200419012054686520747265617375727927732070616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e00285175657565436f756e7410102c010000085d01204e756d626572206f66206475726174696f6e2071756575657320696e20746f74616c2e2054686973207365747320746865206d6178696d756d206475726174696f6e20737570706f727465642c2077686963682069738c20746869732076616c7565206d756c7469706c6965642062792060506572696f64602e002c4d617851756575654c656e1010e80300000cf0204d6178696d756d206e756d626572206f66206974656d732074686174206d617920626520696e2065616368206475726174696f6e2071756575652e0068204d757374206265206c6172676572207468616e207a65726f2e00304669666f51756575654c656e1010f40100000c090120506f7274696f6e206f662074686520717565756520776869636820697320667265652066726f6d206f72646572696e6720616e64206a7573742061204649464f2e009c204d757374206265206e6f2067726561746572207468616e20604d617851756575654c656e602e002842617365506572696f641010002f0d0008410120546865206261736520706572696f6420666f7220746865206475726174696f6e207175657565732e20546869732069732074686520636f6d6d6f6e206d756c7469706c65206163726f737320616c6ccc20737570706f7274656420667265657a696e67206475726174696f6e7320746861742063616e206265206269642075706f6e2e00184d696e42696418400000c16ff2862300000000000000000018210120546865206d696e696d756d20616d6f756e74206f662066756e64732074686174206d617920626520706c6163656420696e2061206269642e204e6f746520746861742074686973610120646f6573206e6f742061637475616c6c79206c696d69742074686520616d6f756e74207768696368206d617920626520726570726573656e74656420696e206120726563656970742073696e63652062696473206d61796c2062652073706c6974207570206279207468652073797374656d2e0065012049742073686f756c64206265206174206c656173742062696720656e6f75676820746f20656e737572652074686174207468657265206973206e6f20706f737369626c652073746f72616765207370616d2061747461636b64206f722071756575652d66696c6c696e672061747461636b2e00284d696e52656365697074bd01200000c16ff286230008550120546865206d696e696d756d20616d6f756e74206f662066756e6473207768696368206d617920696e74656e74696f6e616c6c79206265206c6566742072656d61696e696e6720756e64657220612073696e676c652420726563656970742e0030496e74616b65506572696f6410100a000000105d0120546865206e756d626572206f6620626c6f636b73206265747765656e20636f6e736563757469766520617474656d70747320746f2064657175657565206269647320616e64206372656174652072656365697074732e005d012041206c61726765722076616c756520726573756c747320696e2066657765722073746f726167652068697473206561636820626c6f636b2c20627574206120736c6f77657220706572696f6420746f2067657420746f3020746865207461726765742e003c4d6178496e74616b65576569676874283c0700d0ed902e1399999999999999190c550120546865206d6178696d756d20616d6f756e74206f66206269647320746861742063616e20636f6e736f6c69646174656420696e746f20726563656970747320696e20612073696e676c6520696e74616b652e20415d01206c61726765722076616c75652068657265206d65616e73206c657373206f662074686520626c6f636b20617661696c61626c6520666f72207472616e73616374696f6e732073686f756c6420746865726520626520613820676c7574206f6620626964732e0030546861775468726f74746c65490d300000d9e9ac2d78030500000004490120546865206d6178696d756d2070726f706f7274696f6e207768696368206d61792062652074686177656420616e642074686520706572696f64206f7665722077686963682069742069732072657365742e00014d0d0000002d00001c556e6971756573011c556e69717565732814436c6173730001040210510d040004642044657461696c73206f66206120636f6c6c656374696f6e2e004c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e001c4163636f756e7400010c020202550d88040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e0030436c6173734163636f756e740001080202550a8804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e0014417373657400010802027501590d040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e003c436c6173734d657461646174614f6600010402105d0d04000468204d65746164617461206f66206120636f6c6c656374696f6e2e0048496e7374616e63654d657461646174614f6600010802027501610d04000454204d65746164617461206f6620616e206974656d2e002441747472696275746500010c020202650d690d040004702041747472696275746573206f66206120636f6c6c656374696f6e2e002c4974656d50726963654f66000108020275016d0d04000470205072696365206f6620616e20617373657420696e7374616e63652e004c436f6c6c656374696f6e4d6178537570706c79000104021010040004f0204b6565707320747261636b206f6620746865206e756d626572206f66206974656d73206120636f6c6c656374696f6e206d6967687420686176652e000185050001c101002044436f6c6c656374696f6e4465706f73697418400000c16ff286230000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e002c4974656d4465706f736974184000407a10f35a0000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e004c4d657461646174614465706f7369744261736518400080c6a47e8d03000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e00504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e00384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e002c537472696e674c696d697410108000000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e00204b65794c696d697410102000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e002856616c75654c696d697410104000000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e0001710d000830436f6c6c656374696f6e496410049c204964656e74696669657220666f722074686520636f6c6c656374696f6e206f66206974656d2e184974656d49641004f4205468652074797065207573656420746f206964656e74696679206120756e69717565206974656d2077697468696e206120636f6c6c656374696f6e2e002e0000104e66747301104e6674733c28436f6c6c656374696f6e0001040210750d040004642044657461696c73206f66206120636f6c6c656374696f6e2e004c4f776e657273686970416363657074616e636500010402001004000429012054686520636f6c6c656374696f6e2c20696620616e792c206f6620776869636820616e206163636f756e742069732077696c6c696e6720746f2074616b65206f776e6572736869702e001c4163636f756e7400010c020202550d88040008590120546865206974656d732068656c6420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f2074686174206974656d73206f776e656420627920612073696e676c656c206163636f756e742063616e20626520656e756d6572617465642e0044436f6c6c656374696f6e4163636f756e740001080202550a8804000869012054686520636f6c6c656374696f6e73206f776e656420627920616e7920676976656e206163636f756e743b20736574206f757420746869732077617920736f207468617420636f6c6c656374696f6e73206f776e65642062799020612073696e676c65206163636f756e742063616e20626520656e756d6572617465642e0040436f6c6c656374696f6e526f6c654f6600010802022d0a790d040008d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732ea02053746f72657320636f6c6c656374696f6e20726f6c657320617320706572206163636f756e742e00104974656d00010802027501810d040004d020546865206974656d7320696e206578697374656e636520616e64207468656972206f776e6572736869702064657461696c732e0050436f6c6c656374696f6e4d657461646174614f660001040210990d04000468204d65746164617461206f66206120636f6c6c656374696f6e2e00384974656d4d657461646174614f66000108020275019d0d04000454204d65746164617461206f6620616e206974656d2e002441747472696275746500011002020202a50da90d040004702041747472696275746573206f66206120636f6c6c656374696f6e2e002c4974656d50726963654f66000108020275016d0d040004502041207072696365206f6620616e206974656d2e00644974656d41747472696275746573417070726f76616c734f6601010802027501b10d04000468204974656d2061747472696275746520617070726f76616c732e00404e657874436f6c6c656374696f6e496400001004000831012053746f726573207468652060436f6c6c656374696f6e496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e65787420636f6c6c656374696f6e2ef02054686973206765747320696e6372656d656e746564207768656e657665722061206e657720636f6c6c656374696f6e20697320637265617465642e003450656e64696e67537761704f6600010802027501b90d0400047c2048616e646c657320616c6c207468652070656e64696e672073776170732e0048436f6c6c656374696f6e436f6e6669674f66000104021091050400046020436f6e666967206f66206120636f6c6c656374696f6e2e00304974656d436f6e6669674f6600010802027501b9050400044c20436f6e666967206f6620616e206974656d2e00018d050001d101003844436f6c6c656374696f6e4465706f73697418400000c16ff286230000000000000000000401012054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220636f6c6c656374696f6e2e002c4974656d4465706f736974184000407a10f35a0000000000000000000004f42054686520626173696320616d6f756e74206f662066756e64732074686174206d75737420626520726573657276656420666f7220616e206974656d2e004c4d657461646174614465706f7369744261736518400080c6a47e8d03000000000000000000044d012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e67206d6574616461746120746f20796f7572206974656d2e00504174747269627574654465706f7369744261736518400080c6a47e8d030000000000000000000455012054686520626173696320616d6f756e74206f662066756e64732074686174206d757374206265207265736572766564207768656e20616464696e6720616e2061747472696275746520746f20616e206974656d2e00384465706f73697450657242797465184000407a10f35a0000000000000000000008590120546865206164646974696f6e616c2066756e64732074686174206d75737420626520726573657276656420666f7220746865206e756d626572206f662062797465732073746f726520696e206d657461646174612cc02065697468657220226e6f726d616c22206d65746164617461206f7220617474726962757465206d657461646174612e002c537472696e674c696d697410100001000004b020546865206d6178696d756d206c656e677468206f6620646174612073746f726564206f6e2d636861696e2e00204b65794c696d697410104000000004a020546865206d6178696d756d206c656e677468206f6620616e20617474726962757465206b65792e002856616c75654c696d697410100001000004a820546865206d6178696d756d206c656e677468206f6620616e206174747269627574652076616c75652e0038417070726f76616c734c696d697410101400000004a820546865206d6178696d756d20617070726f76616c7320616e206974656d20636f756c6420686176652e00704974656d41747472696275746573417070726f76616c734c696d697410101400000004d420546865206d6178696d756d206174747269627574657320617070726f76616c7320616e206974656d20636f756c6420686176652e001c4d61785469707310100a00000004a820546865206d6178206e756d626572206f6620746970732061207573657220636f756c642073656e642e004c4d6178446561646c696e654475726174696f6e101000349e0004a820546865206d6178206475726174696f6e20696e20626c6f636b7320666f7220646561646c696e65732e00504d61784174747269627574657350657243616c6c10100a00000004e020546865206d6178206e756d626572206f6620617474726962757465732061207573657220636f756c6420736574207065722063616c6c2e00204665617475726573bd0d20000000000000000004902044697361626c657320736f6d65206f662070616c6c657427732066656174757265732e0001c50d000c30436f6c6c656374696f6e496410249c204964656e74696669657220666f722074686520636f6c6c656374696f6e206f66206974656d2e004901205341464554593a205468652066756e6374696f6e7320696e207468652060496e6372656d656e7461626c6560207472616974206172652066616c6c69626c652e204966207468652066756e6374696f6e734101206f662074686520696d706c656d656e746174696f6e20626f74682072657475726e20604e6f6e65602c20746865206175746f6d6174696320436f6c6c656374696f6e49642067656e65726174696f6e29012073686f756c64206e6f7420626520757365642e20536f2074686520606372656174656020616e642060666f7263655f637265617465602065787472696e7369637320616e64207468654d0120606372656174655f636f6c6c656374696f6e602066756e6374696f6e2077696c6c2072657475726e20616e2060556e6b6e6f776e436f6c6c656374696f6e60204572726f722e20496e73746561642075736541012074686520606372656174655f636f6c6c656374696f6e5f776974685f6964602066756e6374696f6e2e20486f77657665722c206966207468652060496e6372656d656e7461626c6560207472616974490120696d706c656d656e746174696f6e2068617320616e20696e6372656d656e74616c206f726465722c2074686520606372656174655f636f6c6c656374696f6e5f776974685f6964602066756e6374696f6efc2073686f756c64206e6f7420626520757365642061732069742063616e20636c61696d20612076616c756520696e207468652049442073657175656e63652e184974656d49641004f4205468652074797065207573656420746f206964656e74696679206120756e69717565206974656d2077697468696e206120636f6c6c656374696f6e2e444f6666636861696e5369676e6174757265ed040c68204f66662d436861696e207369676e617475726520747970652e0009012043616e20766572696679207768657468657220616e206053656c663a3a4f6666636861696e5075626c69636020637265617465642061207369676e61747572652e002f0000504e66744672616374696f6e616c697a6174696f6e01504e66744672616374696f6e616c697a6174696f6e04284e6674546f4173736574000104027501c90d0400041501204b6565707320747261636b206f662074686520636f72726573706f6e64696e67204e46542049442c20617373657420494420616e6420616d6f756e74206d696e7465642e0001d5050001ed0100141c4465706f73697418400000c16ff2862300000000000000000008650120546865206465706f7369742070616964206279207468652075736572206c6f636b696e6720616e204e46542e20546865206465706f7369742069732072657475726e656420746f20746865206f726967696e616c204e4654e4206f776e6572207768656e2074686520617373657420697320756e696669656420616e6420746865204e465420697320756e6c6f636b65642e002050616c6c65744964290b206672616374696f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e00384e6577417373657453796d626f6c010d141046524143048820546865206e65776c79206372656174656420617373657427732073796d626f6c2e00304e657741737365744e616d65010d141046726163048020546865206e65776c7920637265617465642061737365742773206e616d652e002c537472696e674c696d697410103200000004e020546865206d6178696d756d206c656e677468206f662061206e616d65206f722073796d626f6c2073746f726564206f6e2d636861696e2e0001cd0d00083c4e6674436f6c6c656374696f6e4964100498204964656e74696669657220666f722074686520636f6c6c656374696f6e206f66204e46542e144e667449641004d8205468652074797065207573656420746f206964656e7469667920616e204e46542077697468696e206120636f6c6c656374696f6e2e003000001853616c617279011853616c61727908185374617475730000d10d0400048820546865206f766572616c6c20737461747573206f66207468652073797374656d2e0020436c61696d616e740001040500d50d040004682054686520737461747573206f66206120636c61696d616e742e0001d9050001f101000c48526567697374726174696f6e506572696f641010c800000014510120546865206e756d626572206f6620626c6f636b732077697468696e2061206379636c65207768696368206163636f756e7473206861766520746f20726567697374657220746865697220696e74656e7420746f1c20636c61696d2e00350120546865206e756d626572206f6620626c6f636b73206265747765656e2073657175656e7469616c207061796f7574206379636c6573206973207468652073756d206f66207468697320616e644020605061796f7574506572696f64602e00305061796f7574506572696f641010c800000010350120546865206e756d626572206f6620626c6f636b732077697468696e2061206379636c65207768696368206163636f756e7473206861766520746f20636c61696d20746865207061796f75742e00350120546865206e756d626572206f6620626c6f636b73206265747765656e2073657175656e7469616c207061796f7574206379636c6573206973207468652073756d206f66207468697320616e64582060526567697374726174696f6e506572696f64602e00184275646765741840000064a7b3b6e00d00000000000000000c702054686520746f74616c2062756467657420706572206379636c652e0001012054686973206d6179206368616e6765206f7665722074686520636f75727365206f662061206379636c6520776974686f757420616e792070726f626c656d2e0001dd0d00000031000038436f726546656c6c6f77736869700138436f726546656c6c6f77736869700c18506172616d730100f901200000000000000000048820546865206f766572616c6c20737461747573206f66207468652073797374656d2e00184d656d6265720001040500e10d040004682054686520737461747573206f66206120636c61696d616e742e00384d656d62657245766964656e63650001040500e50d040004310120536f6d652065766964656e636520746f6765746865722077697468207468652064657369726564206f7574636f6d6520666f72207768696368206974207761732070726573656e7465642e0001dd050408026c5573652060696d706f72745f6d656d6265726020696e73746561640001f50100083045766964656e636553697a6510100040000004fc20546865206d6178696d756d2073697a6520696e206279746573207375626d69747465642065766964656e636520697320616c6c6f77656420746f2062652e001c4d617852616e6b91010809000cd420526570726573656e747320746865206869676865737420706f737369626c652072616e6b20696e20746869732070616c6c65742e00490120496e6372656173696e6720746869732076616c756520697320737570706f727465642c206275742064656372656173696e67206974206d6179206c65616420746f20612062726f6b656e2073746174652e0001e90d000000320000485472616e73616374696f6e53746f7261676501485472616e73616374696f6e53746f726167651c305472616e73616374696f6e730001040210ed0d040004d020436f6c6c656374696f6e206f66207472616e73616374696f6e206d6574616461746120627920626c6f636b206e756d6265722e00284368756e6b436f756e740101040210101000000000049420436f756e7420696e6465786564206368756e6b7320666f72206561636820626c6f636b2e001c42797465466565000018040004582053746f72616765206665652070657220627974652e0020456e747279466565000018040004742053746f726167652066656520706572207472616e73616374696f6e2e003453746f72616765506572696f640100101000000000086d012053746f7261676520706572696f6420666f72206461746120696e20626c6f636b732e2053686f756c64206d61746368206073705f73746f726167655f70726f6f663a3a44454641554c545f53544f524147455f504552494f44605420666f7220626c6f636b20617574686f72696e672e0044426c6f636b5472616e73616374696f6e730100ed0d040000003050726f6f66436865636b65640100200400049420576173207468652070726f6f6620636865636b656420696e207468697320626c6f636b3f0001f50500011502000001f90d00042c52756e74696d6543616c6c35020454204120646973706174636861626c652063616c6c2e0033000024566f7465724c6973740124566f7465724c69737410244c6973744e6f6465730001040500fd0d04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e004c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000204c697374426167730001040530010e04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e00104c6f636b00008804001084204c6f636b20616c6c207570646174657320746f20746869732070616c6c65742e00390120496620616e79206e6f646573206e65656473207570646174696e672c2072656d6f76616c206f72206164646974696f6e2064756520746f20612074656d706f72617279206c6f636b2c2074686574205b6043616c6c3a3a7265626167605d2063616e20626520757365642e0001fd05000119020004344261675468726573686f6c6473050e0919210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffffacd020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e005901205468652068656c7065727320696e2074686520602f7574696c732f6672616d652f67656e65726174652d6261677360206d6f64756c652063616e2073696d706c69667920746869732063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e0001090e00041453636f726530040901205468652074797065207573656420746f20646963746174652061206e6f646520706f736974696f6e2072656c617469766520746f206f74686572206e6f6465732e0474dd702da46f77d7acf77f5a48d4af7d1246509d21cdb126e8bac56813c4a29e1873636f726573040c77686f00110e1cb020476574207468652063757272656e74206073636f726560206f66206120676976656e206163636f756e742e0061012052657475726e7320602863757272656e742c207265616c5f73636f726529602c2074686520666f726d6572206265696e67207468652063757272656e742073636f7265207468617420746869732070616c6c65742069735901206177617265206f662c207768696368206d6179206f72206d6179206e6f7420626520757020746f20646174652c20616e6420746865206c6174746572206265696e6720746865207265616c2073636f72652c206173302070726f7669646564206279001d01204966207468652074776f206469666665722c206974206d65616e732074686973206e6f646520697320656c696769626c6520666f72205b6043616c6c3a3a7265626167605d2e00340000485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f6365737301000d063800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665d420666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070616c6c65742e00284175746f4c696d6974730100050604000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e00605369676e65644d6967726174696f6e4d61784c696d6974730000090604000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e0001010600011d020004244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e59012041205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757201012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f706172697479746563682f7375627374726174652f6973737565732f31313634323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653ad0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465c8202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465e0202d205b606672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e00012502000000350000344368696c64426f756e7469657301344368696c64426f756e746965731c404368696c64426f756e7479436f756e740100101000000000086d0120444550524543415445443a205265706c6163656420776974682060506172656e74546f74616c4368696c64426f756e74696573602073746f72616765206974656d206b656570696e672064656469636174656420636f756e7473550120666f72206561636820706172656e7420626f756e74792e204e756d626572206f6620746f74616c206368696c6420626f756e746965732e2057696c6c2062652072656d6f76656420696e204d617920323032352e004c506172656e744368696c64426f756e74696573010104051010100000000008cc204e756d626572206f6620616374697665206368696c6420626f756e746965732070657220706172656e7420626f756e74792ee0204d6170206f6620706172656e7420626f756e747920696e64657820746f206e756d626572206f66206368696c6420626f756e746965732e0060506172656e74546f74616c4368696c64426f756e746965730101040510101000000000044101204e756d626572206f6620746f74616c206368696c6420626f756e746965732070657220706172656e7420626f756e74792c20696e636c7564696e6720636f6d706c6574656420626f756e746965732e00344368696c64426f756e7469657300010805057501150e04000494204368696c6420626f756e7469657320746861742068617665206265656e2061646465642e00644368696c64426f756e74794465736372697074696f6e73563100010805057501d10c04000c290120546865206465736372697074696f6e206f662065616368206368696c642d626f756e74792e20496e6465786564206279206028706172656e745f69642c206368696c645f696429602e006d012054686973206974656d207265706c616365732074686520604368696c64426f756e74794465736372697074696f6e73602073746f72616765206974656d2066726f6d207468652056302073746f726167652076657273696f6e2e00505630546f56314368696c64426f756e7479496473000104051075010400145d0120546865206d617070696e67206f6620746865206368696c6420626f756e7479206964732066726f6d2073746f726167652076657273696f6e206056306020746f20746865206e657720605631602076657273696f6e2e006d0120546865206056306020696473206261736564206f6e20746f74616c206368696c6420626f756e747920636f756e74205b604368696c64426f756e7479436f756e74605d602e2054686520605631602076657273696f6e206964734101206261736564206f6e20746865206368696c6420626f756e747920636f756e742070657220706172656e7420626f756e7479205b60506172656e74546f74616c4368696c64426f756e74696573605d2e650120546865206974656d20696e74656e64656420736f6c656c7920666f7220636c69656e7420636f6e76656e69656e636520616e64206e6f74207573656420696e207468652070616c6c6574277320636f7265206c6f6769632e004c4368696c6472656e43757261746f72466565730101040510184000000000000000000000000000000000040101205468652063756d756c6174697665206368696c642d626f756e74792063757261746f722066656520666f72206561636820706172656e7420626f756e74792e00011906000129020008644d61784163746976654368696c64426f756e7479436f756e74101005000000041d01204d6178696d756d206e756d626572206f66206368696c6420626f756e7469657320746861742063616e20626520616464656420746f206120706172656e7420626f756e74792e005c4368696c64426f756e747956616c75654d696e696d756d184000407a10f35a000000000000000000000488204d696e696d756d2076616c756520666f722061206368696c642d626f756e74792e00011d0e000000360000245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e00445265666572656e64756d496e666f466f720001040210210e040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0028547261636b5175657565010104059101410e0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e00344465636964696e67436f756e7401010405910110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e00284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e00011d0600012d020014445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e00244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e0044556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e0034416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e0018547261636b73450e6d0104000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e0001510e000c2c52756e74696d6543616c6c35020014566f7465731804cc2054686520636f756e74696e67207479706520666f7220766f7465732e20557375616c6c79206a7573742062616c616e63652e1454616c6c79c507044c205468652074616c6c79696e6720747970652e003700001852656d61726b000125060001c907000001550e0000003800002c526f6f7454657374696e67000129060001cd07000000000039000040436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f720101080505590e5d0ed800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e0034436c6173734c6f636b73466f7201010405007d0e04000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d206f662c2074686973206c6973742e00012d060001d1070008204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e0044566f74654c6f636b696e67506572696f641010002f0d00109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e0001890e0000003a00002457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c00010405348804000000013d060001d5070000018d0e00042c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e003b000038416c6c69616e63654d6f74696f6e0138416c6c69616e63654d6f74696f6e1c2450726f706f73616c730100910e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e002850726f706f73616c4f6600010406343502040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e0018436f73744f6600010406344101040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e0018566f74696e670001040634e10a040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e003450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e001c4d656d6265727301005d010400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e00145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e000141060001e9070004444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e0001950e00042050726f706f73616c35020480205468652072756e74696d652063616c6c20646973706174636820747970652e003c000020416c6c69616e63650120416c6c69616e63651c1052756c6500004d060400088c20546865204950465320434944206f662074686520616c6c69616e63652072756c652ed82046656c6c6f77732063616e2070726f706f73652061206e65772072756c65207769746820612073757065722d6d616a6f726974792e0034416e6e6f756e63656d656e74730100990e040004b0205468652063757272656e7420495046532043494473206f6620616e7920616e6e6f756e63656d656e74732e00244465706f7369744f66000104020018040004a4204d617073206d656d6265727320746f2074686569722063616e646964616379206465706f7369742e001c4d656d6265727301010405a10ea50e040004a8204d617073206d656d626572207479706520746f206d656d62657273206f66206561636820747970652e003c5265746972696e674d656d626572730001040200100400086d01204120736574206f66206d656d626572732077686f20676176652061207265746972656d656e74206e6f746963652e20546865792063616e207265746972652061667465722074686520656e64206f66207265746972656d656e74a020706572696f642073746f72656420617320612066757475726520626c6f636b206e756d6265722e0050556e7363727570756c6f75734163636f756e74730100a10a0400086501205468652063757272656e74206c697374206f66206163636f756e7473206465656d656420756e7363727570756c6f75732e205468657365206163636f756e7473206e6f6e2067726174612063616e6e6f74207375626d69742c2063616e6469646163792e0050556e7363727570756c6f757357656273697465730100a90e040004c8205468652063757272656e74206c697374206f66207765627369746573206465656d656420756e7363727570756c6f75732e000145060001ed070014504d6178556e7363727570756c6f75734974656d7310106400000004190120546865206d6178696d756d206e756d626572206f662074686520756e7363727570756c6f7573206974656d7320737570706f72746564206279207468652070616c6c65742e004c4d61785765627369746555726c4c656e6774681010ff000000049420546865206d6178696d756d206c656e677468206f66206120776562736974652055524c2e002c416c6c794465706f73697418400080c6a47e8d0300000000000000000004bc20546865206465706f73697420726571756972656420666f72207375626d697474696e672063616e6469646163792e00544d6178416e6e6f756e63656d656e7473436f756e74101064000000049420546865206d6178696d756d206e756d626572206f6620616e6e6f756e63656d656e74732e003c4d61784d656d62657273436f756e7410106400000004bc20546865206d6178696d756d206e756d626572206f66206d656d6265727320706572206d656d62657220726f6c652e0001b10e00042050726f706f73616c35020480205468652072756e74696d652063616c6c20646973706174636820747970652e003d00003c4e6f6d696e6174696f6e506f6f6c73013c4e6f6d696e6174696f6e506f6f6c735440546f74616c56616c75654c6f636b65640100184000000000000000000000000000000000148c205468652073756d206f662066756e6473206163726f737320616c6c20706f6f6c732e0071012054686973206d69676874206265206c6f77657220627574206e6576657220686967686572207468616e207468652073756d206f662060746f74616c5f62616c616e636560206f6620616c6c205b60506f6f6c4d656d62657273605d590120626563617573652063616c6c696e672060706f6f6c5f77697468647261775f756e626f6e64656460206d696768742064656372656173652074686520746f74616c207374616b65206f662074686520706f6f6c277329012060626f6e6465645f6163636f756e746020776974686f75742061646a757374696e67207468652070616c6c65742d696e7465726e616c2060556e626f6e64696e67506f6f6c6027732e002c4d696e4a6f696e426f6e640100184000000000000000000000000000000000049c204d696e696d756d20616d6f756e7420746f20626f6e6420746f206a6f696e206120706f6f6c2e00344d696e437265617465426f6e6401001840000000000000000000000000000000001ca0204d696e696d756d20626f6e6420726571756972656420746f20637265617465206120706f6f6c2e00650120546869732069732074686520616d6f756e74207468617420746865206465706f7369746f72206d7573742070757420617320746865697220696e697469616c207374616b6520696e2074686520706f6f6c2c20617320616e8820696e6469636174696f6e206f662022736b696e20696e207468652067616d65222e0069012054686973206973207468652076616c756520746861742077696c6c20616c7761797320657869737420696e20746865207374616b696e67206c6564676572206f662074686520706f6f6c20626f6e646564206163636f756e7480207768696c6520616c6c206f74686572206163636f756e7473206c656176652e00204d6178506f6f6c730000100400086901204d6178696d756d206e756d626572206f66206e6f6d696e6174696f6e20706f6f6c7320746861742063616e2065786973742e20496620604e6f6e65602c207468656e20616e20756e626f756e646564206e756d626572206f664420706f6f6c732063616e2065786973742e00384d6178506f6f6c4d656d626572730000100400084901204d6178696d756d206e756d626572206f66206d656d6265727320746861742063616e20657869737420696e207468652073797374656d2e20496620604e6f6e65602c207468656e2074686520636f756e74b8206d656d6265727320617265206e6f7420626f756e64206f6e20612073797374656d20776964652062617369732e00544d6178506f6f6c4d656d62657273506572506f6f6c0000100400084101204d6178696d756d206e756d626572206f66206d656d626572732074686174206d61792062656c6f6e6720746f20706f6f6c2e20496620604e6f6e65602c207468656e2074686520636f756e74206f66a8206d656d62657273206973206e6f7420626f756e64206f6e20612070657220706f6f6c2062617369732e004c476c6f62616c4d6178436f6d6d697373696f6e0000c404000c690120546865206d6178696d756d20636f6d6d697373696f6e20746861742063616e2062652063686172676564206279206120706f6f6c2e2055736564206f6e20636f6d6d697373696f6e207061796f75747320746f20626f756e64250120706f6f6c20636f6d6d697373696f6e73207468617420617265203e2060476c6f62616c4d6178436f6d6d697373696f6e602c206e65636573736172792069662061206675747572650d012060476c6f62616c4d6178436f6d6d697373696f6e60206973206c6f776572207468616e20736f6d652063757272656e7420706f6f6c20636f6d6d697373696f6e732e002c506f6f6c4d656d626572730001040500b50e04000c4020416374697665206d656d626572732e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e0054436f756e746572466f72506f6f6c4d656d62657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170002c426f6e646564506f6f6c730001040510c10e040004682053746f7261676520666f7220626f6e64656420706f6f6c732e0054436f756e746572466f72426f6e646564506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170002c526577617264506f6f6c730001040510d10e04000875012052657761726420706f6f6c732e2054686973206973207768657265207468657265207265776172647320666f72206561636820706f6f6c20616363756d756c6174652e205768656e2061206d656d62657273207061796f7574206973590120636c61696d65642c207468652062616c616e636520636f6d6573206f7574206f66207468652072657761726420706f6f6c2e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e0054436f756e746572466f72526577617264506f6f6c73010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170003c537562506f6f6c7353746f726167650001040510d50e04000819012047726f757073206f6620756e626f6e64696e6720706f6f6c732e20456163682067726f7570206f6620756e626f6e64696e6720706f6f6c732062656c6f6e677320746f2061290120626f6e64656420706f6f6c2c2068656e636520746865206e616d65207375622d706f6f6c732e204b657965642062792074686520626f6e64656420706f6f6c73206163636f756e742e0064436f756e746572466f72537562506f6f6c7353746f72616765010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000204d657461646174610101040510d5010400045c204d6574616461746120666f722074686520706f6f6c2e0048436f756e746572466f724d65746164617461010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000284c617374506f6f6c4964010010100000000004d0204576657220696e6372656173696e67206e756d626572206f6620616c6c20706f6f6c73206372656174656420736f206661722e004c52657665727365506f6f6c49644c6f6f6b7570000104050010040010dc20412072657665727365206c6f6f6b75702066726f6d2074686520706f6f6c2773206163636f756e7420696420746f206974732069642e0075012054686973206973206f6e6c79207573656420666f7220736c617368696e6720616e64206f6e206175746f6d61746963207769746864726177207570646174652e20496e20616c6c206f7468657220696e7374616e6365732c20746865250120706f6f6c20696420697320757365642c20616e6420746865206163636f756e7473206172652064657465726d696e6973746963616c6c7920646572697665642066726f6d2069742e0074436f756e746572466f7252657665727365506f6f6c49644c6f6f6b7570010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61700040436c61696d5065726d697373696f6e73010104050085060402040101204d61702066726f6d206120706f6f6c206d656d626572206163636f756e7420746f207468656972206f7074656420636c61696d207065726d697373696f6e2e000169060001f107000c2050616c6c65744964290b2070792f6e6f706c73048420546865206e6f6d696e6174696f6e20706f6f6c27732070616c6c65742069642e00484d6178506f696e7473546f42616c616e636508040a301d0120546865206d6178696d756d20706f6f6c20706f696e74732d746f2d62616c616e636520726174696f207468617420616e20606f70656e6020706f6f6c2063616e20686176652e005501205468697320697320696d706f7274616e7420696e20746865206576656e7420736c617368696e672074616b657320706c61636520616e642074686520706f6f6c277320706f696e74732d746f2d62616c616e63657c20726174696f206265636f6d65732064697370726f706f7274696f6e616c2e006501204d6f72656f7665722c20746869732072656c6174657320746f207468652060526577617264436f756e7465726020747970652061732077656c6c2c206173207468652061726974686d65746963206f7065726174696f6e7355012061726520612066756e6374696f6e206f66206e756d626572206f6620706f696e74732c20616e642062792073657474696e6720746869732076616c756520746f20652e672e2031302c20796f7520656e73757265650120746861742074686520746f74616c206e756d626572206f6620706f696e747320696e207468652073797374656d20617265206174206d6f73742031302074696d65732074686520746f74616c5f69737375616e6365206f669c2074686520636861696e2c20696e20746865206162736f6c75746520776f72736520636173652e00490120466f7220612076616c7565206f662031302c20746865207468726573686f6c6420776f756c64206265206120706f6f6c20706f696e74732d746f2d62616c616e636520726174696f206f662031303a312e310120537563682061207363656e6172696f20776f756c6420616c736f20626520746865206571756976616c656e74206f662074686520706f6f6c206265696e672039302520736c61736865642e00304d6178556e626f6e64696e67101008000000043d0120546865206d6178696d756d206e756d626572206f662073696d756c74616e656f757320756e626f6e64696e67206368756e6b7320746861742063616e20657869737420706572206d656d6265722e0001ed0e000434526577617264436f756e746572210130a82054686520747970652074686174206973207573656420666f722072657761726420636f756e7465722e003501205468652061726974686d65746963206f66207468652072657761726420636f756e746572206d69676874207361747572617465206261736564206f6e207468652073697a65206f66207468656501206043757272656e63793a3a42616c616e6365602e20496620746869732068617070656e732c206f7065726174696f6e73206661696c732e204e6f6e657468656c6573732c207468697320747970652073686f756c6420626565012063686f73656e207375636820746861742074686973206661696c75726520616c6d6f7374206e657665722068617070656e732c2061732069662069742068617070656e732c2074686520706f6f6c206261736963616c6c796501206e6565647320746f206265206469736d616e746c656420286f7220616c6c20706f6f6c73206d6967726174656420746f2061206c61726765722060526577617264436f756e7465726020747970652c2077686963682069733c2061205049544120746f20646f292e006101205365652074686520696e6c696e6520636f646520646f6373206f6620604d656d6265723a3a70656e64696e675f726577617264736020616e642060526577617264506f6f6c3a3a7570646174655f7265636f7264656460650120666f72206578616d706c6520616e616c797369732e2041205b6073705f72756e74696d653a3a466978656455313238605d2073686f756c642062652066696e6520666f7220636861696e7320776974682062616c616e636551012074797065732073696d696c617220746f2074686174206f6620506f6c6b61646f7420616e64204b7573616d612c20696e2074686520616273656e6365206f662073657665726520736c617368696e6720286f723d012070726576656e74656420766961206120726561736f6e61626c6520604d6178506f696e7473546f42616c616e636560292c20666f72206d616e79206d616e7920796561727320746f20636f6d652e003e00002c52616e6b6564506f6c6c73012c52616e6b6564506f6c6c73143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e00445265666572656e64756d496e666f466f720001040210f50e040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e0028547261636b5175657565010104059101fd0e0400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e00344465636964696e67436f756e7401010405910110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e00284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e00019d060001f9070014445375626d697373696f6e4465706f73697418400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e00244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e0044556e6465636964696e6754696d656f75741010004e0c0008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e0034416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e0018547261636b73450e6d0104000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e0001010f000c2c52756e74696d6543616c6c35020014566f7465731004cc2054686520636f756e74696e67207479706520666f7220766f7465732e20557375616c6c79206a7573742062616c616e63652e1454616c6c79fd07044c205468652074616c6c79696e6720747970652e003f00004052616e6b6564436f6c6c656374697665014052616e6b6564436f6c6c656374697665182c4d656d626572436f756e7401010405910110100000000008690120546865206e756d626572206f66206d656d6265727320696e2074686520636f6c6c6563746976652077686f2068617665206174206c65617374207468652072616e6b206163636f7264696e6720746f2074686520696e64657830206f6620746865207665632e001c4d656d626572730001040500050f0400049c205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e00244964546f496e6465780001080505090f1004000461012054686520696e646578206f6620656163682072616e6b732773206d656d62657220696e746f207468652067726f7570206f66206d656d626572732077686f2068617665206174206c6561737420746861742072616e6b2e0024496e646578546f496400010805050d0f000400085d0120546865206d656d6265727320696e2074686520636f6c6c65637469766520627920696e6465782e20416c6c20696e646963657320696e207468652072616e67652060302e2e4d656d626572436f756e74602077696c6c65012072657475726e2060536f6d65602c20686f77657665722061206d656d626572277320696e646578206973206e6f742067756172616e7465656420746f2072656d61696e20756e6368616e676564206f7665722074696d652e0018566f74696e6700010802052d0a0508040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e0034566f74696e67436c65616e75700001040210110f0400000001a10600010108000001150f0000004000003c4173736574436f6e76657273696f6e013c4173736574436f6e76657273696f6e0814506f6f6c73000104020d08190f0400086901204d61702066726f6d2060506f6f6c417373657449646020746f2060506f6f6c496e666f602e20546869732065737461626c69736865732077686574686572206120706f6f6c20686173206265656e206f6666696369616c6c793d01206372656174656420726174686572207468616e2070656f706c652073656e64696e6720746f6b656e73206469726563746c7920746f206120706f6f6c2773207075626c6963206163636f756e742e003c4e657874506f6f6c4173736574496400001004000825012053746f726573207468652060506f6f6c4173736574496460207468617420697320676f696e6720746f206265207573656420666f7220746865206e657874206c7020746f6b656e2ee42054686973206765747320696e6372656d656e746564207768656e657665722061206e6577206c7020706f6f6c20697320637265617465642e0001a50600010908001c144c504665651010030000000451012041202520746865206c69717569646974792070726f7669646572732077696c6c2074616b65206f6620657665727920737761702e20526570726573656e7473203130746873206f6620612070657263656e742e0030506f6f6c5365747570466565184000407a10f35a0000000000000000000004882041206f6e652d74696d652066656520746f2073657475702074686520706f6f6c2e0044506f6f6c53657475704665654173736574a0040004390120417373657420636c6173732066726f6d205b60436f6e6669673a3a417373657473605d207573656420746f2070617920746865205b60436f6e6669673a3a506f6f6c5365747570466565605d2e00584c69717569646974795769746864726177616c46656511081000000000048420412066656520746f20776974686472617720746865206c69717569646974792e00404d696e744d696e4c6971756964697479184064000000000000000000000000000000043d0120546865206d696e696d756d204c5020746f6b656e20616d6f756e74207468617420636f756c64206265206d696e7465642e20416d656c696f726174657320726f756e64696e67206572726f72732e00444d617853776170506174684c656e677468101004000000048820546865206d6178206e756d626572206f6620686f707320696e206120737761702e002050616c6c65744964290b2070792f6173636f6e04f4205468652070616c6c657427732069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e00011d0f00082441737365744b696e64a0085d012054797065206f6620617373657420636c6173732c20736f75726365642066726f6d205b60436f6e6669673a3a417373657473605d2c207574696c697a656420746f206f66666572206c697175696469747920746f20611820706f6f6c2e18506f6f6c49640d08046c204c697175696469747920706f6f6c206964656e7469666965722e004100002c46617374556e7374616b65012c46617374556e7374616b651010486561640000210f04000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e0014517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e003c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170004c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0035012049662073657420746f20302c20746869732070616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e006501204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e0001ad0600011d0800041c4465706f736974184000407a10f35a00000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e00012d0f000000420000304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f720101040510310f74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e002c5365727669636548656164000010040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e00145061676573000108050575013d0f0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e0001b106000121080010204865617053697a65101000000100143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e00204d61785374616c651010800000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e003453657276696365576569676874e10740010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e005049646c654d617853657276696365576569676874e1070400145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722070617261636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e0001450f00041053697a6510045420506167652f686561702073697a6520747970652e004300000c506f76010c506f76301456616c7565000010040000001856616c7565320000100400000038556e626f756e64656456616c75650000380400047420412076616c756520776974686f75742061204d454c20626f756e642e0030426f756e64656456616c7565000055010400049420412076616c756520776974682061204d454c20626f756e64206f6620333220627974652e00284c6172676556616c75650000910c0400043020344d69422076616c75652e002c4c6172676556616c7565320000910c04000000144d6170314d000104011010040004902041206d617020776974682061206d6178696d756d206f6620314d20656e74726965732e00184d617031364d000104011010040004942041206d617020776974682061206d6178696d756d206f662031364d20656e74726965732e002c446f75626c654d6170314d00010801017501100400000030556e626f756e6465644d61700001040110c9010400000034556e626f756e6465644d6170320001040110c9010400000040556e626f756e6465644d617054776f780001040510c9010400000001b5060001290800000000004400001c54785061757365011c54785061757365042c50617573656443616c6c7300010402bd0688040004b42054686520736574206f662063616c6c73207468617420617265206578706c696369746c79207061757365642e0001b90600012d080004284d61784e616d654c656e1010000100000c2501204d6178696d756d206c656e67746820666f722070616c6c6574206e616d6520616e642063616c6c206e616d65205343414c4520656e636f64656420737472696e67206e616d65732e00a820544f4f204c4f4e47204e414d45532057494c4c2042452054524541544544204153205041555345442e0001490f00042c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e0045000020536166654d6f64650120536166654d6f64650830456e7465726564556e74696c000010040014290120436f6e7461696e7320746865206c61737420626c6f636b206e756d62657220746861742074686520736166652d6d6f64652077696c6c2072656d61696e20656e746572656420696e2e00a4202053657420746f20604e6f6e6560207768656e20736166652d6d6f6465206973206578697465642e00510120536166652d6d6f6465206973206175746f6d61746963616c6c7920657869746564207768656e207468652063757272656e7420626c6f636b206e756d626572206578636565647320746869732076616c75652e00204465706f736974730001080505550a18040010350120486f6c64732074686520726573657276652074686174207761732074616b656e2066726f6d20616e206163636f756e74206174206120737065636966696320626c6f636b206e756d6265722e00750120546869732068656c707320676f7665726e616e636520746f206861766520616e206f76657276696577206f66206f75747374616e64696e67206465706f7369747320746861742073686f756c642062652072657475726e6564206f722420736c61736865642e0001c10600013108001434456e7465724475726174696f6e1010c012000004210120466f7220686f77206d616e7920626c6f636b732074686520736166652d6d6f64652077696c6c20626520656e7465726564206279205b6050616c6c65743a3a656e746572605d2e0038457874656e644475726174696f6e1010600900000c4d0120466f7220686f77206d616e7920626c6f636b732074686520736166652d6d6f64652063616e20626520657874656e6465642062792065616368205b6050616c6c65743a3a657874656e64605d2063616c6c2e004d01205468697320646f6573206e6f7420696d706f736520612068617264206c696d69742061732074686520736166652d6d6f64652063616e20626520657874656e646564206d756c7469706c652074696d65732e0048456e7465724465706f736974416d6f756e74b1034401000020c65abc8ed70a000000000000000c05012054686520616d6f756e7420746861742077696c6c2062652072657365727665642075706f6e2063616c6c696e67205b6050616c6c65743a3a656e746572605d2e00410120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c7920656e61626c696e672074686520736166652d6d6f646520616e6420697320612073616e652064656661756c742e004c457874656e644465706f736974416d6f756e74b1034401000010632d5ec76b05000000000000000c09012054686520616d6f756e7420746861742077696c6c2062652072657365727665642075706f6e2063616c6c696e67205b6050616c6c65743a3a657874656e64605d2e00450120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c7920657874656e64696e672074686520736166652d6d6f646520616e6420697320612073616e652064656661756c742e003052656c6561736544656c6179c8140100e1000020490120546865206d696e696d616c206475726174696f6e2061206465706f7369742077696c6c2072656d61696e20726573657276656420616674657220736166652d6d6f646520697320656e7465726564206f72490120657874656e6465642c20756e6c657373205b6050616c6c65743a3a666f7263655f72656c656173655f6465706f736974605d206973207375636365737366756c6c792063616c6c656420736f6f6e65722e005901204576657279206465706f736974206973207469656420746f20612073706563696669632061637469766174696f6e206f7220657874656e73696f6e2c20746875732065616368206465706f7369742063616e206265e82072656c656173656420696e646570656e64656e746c79206166746572207468652064656c617920666f7220697420686173207061737365642e00450120604e6f6e656020646973616c6c6f7773207065726d697373696f6e6c6573736c792072656c656173696e672074686520736166652d6d6f6465206465706f7369747320616e6420697320612073616e65242064656661756c742e00014d0f0000004600002453746174656d656e74000001390800183453746174656d656e74436f7374184000407a10f35a000000000000000000000494204d696e2062616c616e636520666f72207072696f726974792073746174656d656e74732e002042797465436f7374184000e8764817000000000000000000000004c420436f7374206f6620646174612062797465207573656420666f72207072696f726974792063616c63756c6174696f6e2e00504d696e416c6c6f77656453746174656d656e747310100400000004c8204d696e696d756d206e756d626572206f662073746174656d656e747320616c6c6f77656420706572206163636f756e742e00504d6178416c6c6f77656453746174656d656e747310100a00000004c8204d6178696d756d206e756d626572206f662073746174656d656e747320616c6c6f77656420706572206163636f756e742e003c4d696e416c6c6f776564427974657310100004000004a0204d696e696d756d206461746120627974657320616c6c6f77656420706572206163636f756e742e003c4d6178416c6c6f776564427974657310100010000004a0204d6178696d756d206461746120627974657320616c6c6f77656420706572206163636f756e742e00000000470000504d756c7469426c6f636b4d6967726174696f6e7301504d756c7469426c6f636b4d6967726174696f6e730818437572736f720000cd0604000cd8205468652063757272656e746c7920616374697665206d6967726174696f6e20746f2072756e20616e642069747320637572736f722e00bc20604e6f6e656020696e646963617465732074686174206e6f206d6967726174696f6e2069732072756e6e696e672e0020486973746f72696300010405d50188040010b420536574206f6620616c6c207375636365737366756c6c79206578656375746564206d6967726174696f6e732e0071012054686973206973207573656420617320626c61636b6c6973742c20746f206e6f742072652d65786563757465206d6967726174696f6e7320746861742068617665206e6f74206265656e2072656d6f7665642066726f6d20746865310120636f646562617365207965742e20476f7665726e616e63652063616e20726567756c61726c7920636c6561722074686973206f7574207669612060636c6561725f686973746f726963602e0001c50600014d08000830437572736f724d61784c656e10100000010010a420546865206d6178696d616c206c656e677468206f6620616e20656e636f64656420637572736f722e006501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c20657665722068617665206120637572736f722077697468204d454c09012061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e00404964656e7469666965724d61784c656e10100001000010b420546865206d6178696d616c206c656e677468206f6620616e20656e636f646564206964656e7469666965722e005501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c2065766572206861766520616e206964656e7469666965722d012077697468204d454c2061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e0001510f0000004800001842726f6b6572011842726f6b65723c34436f6e66696775726174696f6e0000ed06040004a8205468652063757272656e7420636f6e66696775726174696f6e206f6620746869732070616c6c65742e00305265736572766174696f6e730100550f04000465012054686520506f6c6b61646f7420436f7265207265736572766174696f6e73202867656e6572616c6c79207461736b6564207769746820746865206d61696e74656e616e6365206f662053797374656d20436861696e73292e00184c656173657301005d0f040004842054686520506f6c6b61646f7420436f7265206c6567616379206c65617365732e00185374617475730000690f040004fc205468652063757272656e7420737461747573206f66206d697363656c6c616e656f75732073756273797374656d73206f6620746869732070616c6c65742e002053616c65496e666f00006d0f0400041901205468652064657461696c73206f66207468652063757272656e742073616c652c20696e636c7564696e67206974732070726f7065727469657320616e64207374617475732e0044506f74656e7469616c52656e6577616c7300010405710f750f04000c7c205265636f726473206f6620706f74656e7469616c2072656e6577616c732e0055012052656e6577616c732077696c6c206f6e6c792061637475616c6c7920626520616c6c6f7765642069662060436f6d706c6574696f6e537461747573602069732061637475616c6c792060436f6d706c657465602e001c526567696f6e730001040205077d0f040004f0205468652063757272656e742028756e61737369676e6564206f722070726f766973696f6e616c6c79206173736967656e642920526567696f6e732e0020576f726b706c616e00010405810ff10604000431012054686520776f726b20776520706c616e206f6e20686176696e67206561636820636f726520646f206174206120706172746963756c61722074696d6520696e20746865206675747572652e0020576f726b6c6f6164010104059101f1060400045d01205468652063757272656e7420776f726b6c6f6164206f66206561636820636f72652e205468697320676574732075706461746564207769746820776f726b706c616e2061732074696d65736c6963657320706173732e0054496e737461506f6f6c436f6e747269627574696f6e000104020507850f0400041101205265636f7264206f6620612073696e676c6520636f6e747269627574696f6e20746f2074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e002c496e737461506f6f6c496f0101040210890f200000000000000000042101205265636f7264206f6620436f726574696d6520656e746572696e67206f72206c656176696e672074686520496e7374616e74616e656f757320436f726574696d6520506f6f6c2e0040496e737461506f6f6c486973746f72790001040210910f0400046d0120546f74616c20496e737461506f6f6c207265776172647320666f7220656163682054696d65736c69636520616e6420746865206e756d626572206f6620636f726520706172747320776869636820636f6e74726962757465642e0038436f7265436f756e74496e626f7800009101040004c420526563656976656420636f726520636f756e74206368616e67652066726f6d207468652072656c617920636861696e2e00304175746f52656e6577616c730100950f04000ce0204b656570696e6720747261636b206f6620636f7265732077686963682068617665206175746f2d72656e6577616c20656e61626c65642e00550120536f727465642062792060436f7265496e6465786020746f206d616b65207468652072656d6f76616c206f6620636f7265732066726f6d206175746f2d72656e6577616c206d6f726520656666696369656e742e0030526576656e7565496e626f7800000d07040004b020526563656976656420726576656e756520696e666f2066726f6d207468652072656c617920636861696e2e0001e9060001510800182050616c6c65744964290b2070792f62726f6b6504d4204964656e7469666965722066726f6d2077686963682074686520696e7465726e616c20506f742069732067656e6572617465642e003c54696d65736c696365506572696f6410100200000004b0204e756d626572206f662052656c61792d636861696e20626c6f636b73207065722074696d65736c6963652e00384d61784c6561736564436f7265731010050000000484204d6178696d756d206e756d626572206f66206c6567616379206c65617365732e00404d61785265736572766564436f7265731010050000000480204d6178696d756d206e756d626572206f662073797374656d20636f7265732e003c4d61784175746f52656e6577616c7310100a00000004610120476976656e20746861742077652061726520706572666f726d696e6720616c6c206175746f2d72656e6577616c7320696e20612073696e676c6520626c6f636b2c2069742068617320746f206265206c696d697465642e00544d696e696d756d4372656469745075726368617365184000e876481700000000000000000000000cd02054686520736d616c6c65737420616d6f756e74206f662063726564697473206120757365722063616e2070757263686173652e0080204e656564656420746f2070726576656e74207370616d2061747461636b732e0001a10f000000490000305461736b734578616d706c6501305461736b734578616d706c650814546f74616c01007501200000000000000000045020536f6d652072756e6e696e6720746f74616c2e001c4e756d6265727300010405101004000490204e756d6265727320746f20626520616464656420696e746f2074686520746f74616c2e0000000001a50f0000004a0000184d69786e657401184d69786e6574104c43757272656e7453657373696f6e496e646578010010100000000008690120496e646578206f66207468652063757272656e742073657373696f6e2e2054686973206d6179206265206f66667365742072656c617469766520746f207468652073657373696f6e20696e64657820747261636b6564206279f4206567206070616c6c65745f73657373696f6e603b206d69786e65742073657373696f6e20696e64696365732061726520696e646570656e64656e742e006043757272656e7453657373696f6e5374617274426c6f636b010010100000000004b020426c6f636b20696e207768696368207468652063757272656e742073657373696f6e20737461727465642e00404e657874417574686f726974794964730001040610d1030400049420417574686f72697479206c69737420666f7220746865206e6578742073657373696f6e2e00204d69786e6f6465730001080606750119070400186501204d69786e6f646520736574732062792073657373696f6e20696e6465782e204f6e6c7920746865206d69786e6f6465207365747320666f72207468652070726576696f75732c2063757272656e742c20616e64206e657874b42073657373696f6e7320617265206b6570743b206f6c646572207365747320617265206469736361726465642e004d0120546865206d69786e6f64657320696e20656163682073657420617265206b6579656420627920617574686f7269747920696e64657820736f2077652063616e20656173696c7920636865636b20696620616e550120617574686f726974792068617320726567697374657265642061206d69786e6f64652e2054686520617574686f7269747920696e64696365732073686f756c64206f6e6c79206265207573656420647572696e67310120726567697374726174696f6e3b2074686520617574686f7269747920696e646963657320666f722074686520766572792066697273742073657373696f6e20617265206d6164652075702e00011107000028384d6178417574686f7269746965731010e803000004bc20546865206d6178696d756d206e756d626572206f6620617574686f726974696573207065722073657373696f6e2e00584d617845787465726e616c4164647265737353697a6510108000000004ec20546865206d6178696d756d2073697a65206f66206f6e65206f662061206d69786e6f646527732065787465726e616c206164647265737365732e00784d617845787465726e616c4164647265737365735065724d69786e6f646510101000000004e020546865206d6178696d756d206e756d626572206f662065787465726e616c2061646472657373657320666f722061206d69786e6f64652e005c4e756d436f766572546f43757272656e74426c6f636b73101003000000042501204c656e677468206f6620746865206669727374207068617365206f6620656163682073657373696f6e202860436f766572546f43757272656e7460292c20696e20626c6f636b732e00684e756d5265717565737473546f43757272656e74426c6f636b73101003000000043501204c656e677468206f6620746865207365636f6e64207068617365206f6620656163682073657373696f6e2028605265717565737473546f43757272656e7460292c20696e20626c6f636b732e00504e756d436f766572546f50726576426c6f636b73101003000000041901204c656e677468206f6620746865207468697264207068617365206f6620656163682073657373696f6e202860436f766572546f5072657660292c20696e20626c6f636b732e006c4e756d52656769737465725374617274536c61636b426c6f636b731010030000000c210120546865206e756d626572206f662022736c61636b2220626c6f636b7320617420746865207374617274206f6620656163682073657373696f6e2c20647572696e672077686963684501205b606d617962655f7265676973746572605d2850616c6c65743a3a6d617962655f7265676973746572292077696c6c206e6f7420617474656d707420746f20706f737420726567697374726174696f6e38207472616e73616374696f6e732e00644e756d5265676973746572456e64536c61636b426c6f636b7310100300000010e420546865206e756d626572206f662022736c61636b2220626c6f636b732061742074686520656e64206f6620656163682073657373696f6e2e4901205b606d617962655f7265676973746572605d2850616c6c65743a3a6d617962655f7265676973746572292077696c6c2074727920746f207265676973746572206265666f7265207468697320736c61636b450120706572696f642c20627574206d617920706f737420726567697374726174696f6e207472616e73616374696f6e7320647572696e672074686520736c61636b20706572696f642061732061206c61737420207265736f72742e0050526567697374726174696f6e5072696f726974793020feffffffffffffff04f4205072696f72697479206f6620756e7369676e6564207472616e73616374696f6e73207573656420746f207265676973746572206d69786e6f6465732e002c4d696e4d69786e6f646573101007000000086101204d696e696d756d206e756d626572206f66206d69786e6f6465732e20496620746865726520617265206665776572207468616e2074686973206d616e79206d69786e6f646573207265676973746572656420666f722061ec2073657373696f6e2c20746865206d69786e65742077696c6c206e6f742062652061637469766520647572696e67207468652073657373696f6e2e000000004b000028506172616d65746572730128506172616d65746572730428506172616d657465727300010402690879080400044c2053746f72656420706172616d65746572732e000129070001650800000000004c000048536b69704665656c6573735061796d656e74000001850800000000004d00004450616c6c65744578616d706c654d626d73014450616c6c65744578616d706c654d626d7304144d794d6170000104021030040004f020446566696e6520612073746f72616765206974656d20746f20696c6c75737472617465206d756c74692d626c6f636b206d6967726174696f6e732e000000000000004e0000604173736574436f6e76657273696f6e4d6967726174696f6e0001790700018908000001a90f0000004f00001852657669766501185265766976651c305072697374696e65436f64650001040634ad0f040004cc2041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f64652e0028436f6465496e666f4f660001040634b10f040004e02041206d617070696e672066726f6d206120636f6e7472616374277320636f6465206861736820746f2069747320636f646520696e666f2e0038436f6e7472616374496e666f4f66000104068107b50f040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e003c496d6d757461626c65446174614f66000104068107b90f040004d02054686520696d6d757461626c652064617461206173736f6369617465642077697468206120676976656e206163636f756e742e003444656c6574696f6e51756575650001040510c501040010c8204576696374656420636f6e7472616374732074686174206177616974206368696c6420747269652064656c6574696f6e2e004901204368696c6420747269652064656c6574696f6e2069732061206865617679206f7065726174696f6e20646570656e64696e67206f6e2074686520616d6f756e74206f662073746f72616765206974656d7341012073746f72656420696e207361696420747269652e205468657265666f72652074686973206f7065726174696f6e20697320706572666f726d6564206c617a696c7920696e20606f6e5f69646c65602e005044656c6574696f6e5175657565436f756e7465720100bd0f200000000000000000084d0120412070616972206f66206d6f6e6f746f6e696320636f756e74657273207573656420746f20747261636b20746865206c617465737420636f6e7472616374206d61726b656420666f722064656c6574696f6ea820616e6420746865206c61746573742064656c6574656420636f6e747261637420696e2071756575652e003c4f726967696e616c4163636f756e7400010406810700040018d8204d6170206120457468657265756d206164647265737320746f20697473206f726967696e616c20604163636f756e7449643332602e004501205768656e206465726976696e672061206048313630602066726f6d20616e20604163636f756e74496433326020776520757365206120686173682066756e6374696f6e2e20496e206f7264657220746f3101207265636f6e73747275637420746865206f726967696e616c206163636f756e74207765206e65656420746f2073746f7265207468652072657665727365206d617070696e6720686572652e190120526567697374657220796f757220604163636f756e744964333260207573696e67205b6050616c6c65743a3a6d61705f6163636f756e74605d20696e206f7264657220746f6420757365206974207769746820746869732070616c6c65742e00017d0700018d080018384465706f7369745065724279746518400060defb7405000000000000000000001411012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682062797465206f662073746f726167652e001c2023204e6f7465003501204974206973207361666520746f206368616e676520746869732076616c7565206f6e2061206c69766520636861696e20617320616c6c20726566756e6473206172652070726f20726174612e00384465706f7369745065724974656d184000f0ab75a40d000000000000000000001405012054686520616d6f756e74206f662062616c616e636520612063616c6c65722068617320746f2070617920666f7220656163682073746f72616765206974656d2e001c2023204e6f7465003501204974206973207361666520746f206368616e676520746869732076616c7565206f6e2061206c69766520636861696e20617320616c6c20726566756e6473206172652070726f20726174612e0070436f6465486173684c6f636b75704465706f73697450657263656e74c41000a3e1110c4501205468652070657263656e74616765206f66207468652073746f72616765206465706f73697420746861742073686f756c642062652068656c6420666f72207573696e67206120636f646520686173682e510120496e7374616e74696174696e67206120636f6e74726163742c2070726f74656374732074686520636f64652066726f6d206265696e672072656d6f7665642e20496e206f7264657220746f2070726576656e74250120616275736520746865736520616374696f6e73206172652070726f746563746564207769746820612070657263656e74616765206f662074686520636f6465206465706f7369742e005c556e73616665556e737461626c65496e74657266616365200400241101204d616b6520636f6e74726163742063616c6c61626c652066756e6374696f6e73206d61726b65642061732060235b756e737461626c655d6020617661696c61626c652e003d0120436f6e7472616374732074686174207573652060235b756e737461626c655d602066756e6374696f6e7320776f6e27742062652061626c6520746f2062652075706c6f6164656420756e6c657373450120746869732069732073657420746f206074727565602e2054686973206973206f6e6c79206d65616e7420666f7220746573746e65747320616e6420646576206e6f64657320696e206f7264657220746f78206578706572696d656e742077697468206e65772066656174757265732e00282023205761726e696e6700c020446f202a2a6e6f742a2a2073657420746f20607472756560206f6e2070726f64756374696f6e7320636861696e732e001c436861696e49643020441b0f190000000010010120546865205b4549502d3135355d2868747470733a2f2f656970732e657468657265756d2e6f72672f454950532f6569702d3135352920636861696e2049442e0005012054686973206973206120756e69717565206964656e7469666965722061737369676e656420746f206561636820626c6f636b636861696e206e6574776f726b2c6c2070726576656e74696e67207265706c61792061747461636b732e00404e6174697665546f457468526174696f101040420f000451012054686520726174696f206265747765656e2074686520646563696d616c20726570726573656e746174696f6e206f6620746865206e617469766520746f6b656e20616e64207468652045544820746f6b656e2e0001c10f00042c52756e74696d6543616c6c3502046c20546865206f76657261726368696e672063616c6c20747970652e005000003c5665726966795369676e6174757265000000000004245369676e6174757265ed0404f4205369676e6174757265207479706520746861742074686520657874656e73696f6e206f6620746869732070616c6c65742063616e207665726966792e005100004044656c6567617465645374616b696e67014044656c6567617465645374616b696e67102844656c656761746f72730001040500c50f040010a4204d6170206f662044656c656761746f727320746f207468656972206044656c65676174696f6e602e00610120496d706c656d656e746174696f6e206e6f74653a20576520617265206e6f74207573696e67206120646f75626c65206d61702077697468206064656c656761746f726020616e6420606167656e7460206163636f756e746101206173206b6579732073696e63652077652077616e7420746f2072657374726963742064656c656761746f727320746f2064656c6567617465206f6e6c7920746f206f6e65206163636f756e7420617420612074696d652e0050436f756e746572466f7244656c656761746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617000184167656e74730001040500c90f04000488204d6170206f6620604167656e746020746f20746865697220604c6564676572602e0040436f756e746572466f724167656e7473010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170000001910800082050616c6c65744964290b2070792f646c73746b049020496e6a6563746564206964656e74696669657220666f72207468652070616c6c65742e004c536c6173685265776172644672616374696f6ec41080969800045101204672616374696f6e206f662074686520736c617368207468617420697320726577617264656420746f207468652063616c6c6572206f662070656e64696e6720736c61736820746f20746865206167656e742e0001cd0f000000520000304173736574526577617264730130417373657452657761726473102c506f6f6c5374616b65727300010802022d0ad10f0400045c205374617465206f6620706f6f6c207374616b6572732e0014506f6f6c730001040210d50f040004b820537461746520616e6420636f6e66696775726174696f6e206f662065616368207374616b696e6720706f6f6c2e0020506f6f6c436f73740001040210d90f04001069012054686520636f7374206173736f63696174656420776974682073746f72696e6720706f6f6c20696e666f726d6174696f6e206f6e2d636861696e2077686963682077617320696e6375727265642062792074686520706f6f6c242063726561746f722e001d01205468697320636f7374206d6179206265205b604e6f6e65605d2c2061732064657465726d696e6564206279205b60436f6e6669673a3a436f6e73696465726174696f6e605d2e00284e657874506f6f6c496401001010000000000cc02053746f72657320746865205b60506f6f6c4964605d20746f2075736520666f7220746865206e65787420706f6f6c2e00a020496e6372656d656e746564207768656e2061206e657720706f6f6c20697320637265617465642e000185070001950800042050616c6c65744964290b2070792f73746b72640c1901205468652070616c6c6574277320756e69717565206964656e7469666965722c207573656420746f206465726976652074686520706f6f6c2773206163636f756e742049442e003d0120546865206163636f756e742049442069732064657269766564206f6e636520647572696e6720706f6f6c206372656174696f6e20616e642073746f72656420696e207468652073746f726167652e0001e10f00081c41737365744964a0048c204964656e74696669657220666f7220656163682074797065206f662061737365742e1c42616c616e63651804ac20546865207479706520696e207768696368207468652061737365747320617265206d656173757265642e0053000034417373657473467265657a65720134417373657473467265657a6572081c467265657a657301010802022d0ab90904000415012041206d617020746861742073746f72657320667265657a6573206170706c696564206f6e20616e206163636f756e7420666f72206120676976656e20417373657449642e003846726f7a656e42616c616e63657300010802022d0a1804000465012041206d617020746861742073746f726573207468652063757272656e7420746f74616c2066726f7a656e2062616c616e636520666f72206576657279206163636f756e74206f6e206120676976656e20417373657449642e0000019908000001e50f00044c52756e74696d65467265657a65526561736f6ec109047c20546865206f76657261726368696e6720667265657a6520726561736f6e2e00540000184d65746154780001890700019d08000001e90f00000059000008040595023502ed0404002c0004080c1014181c2024282c34417574686f72697a6543616c6cf1088848436865636b4e6f6e5a65726f53656e6465729d078840436865636b5370656356657273696f6ea1071038436865636b547856657273696f6ea5071030436865636b47656e65736973a9073438436865636b4d6f7274616c697479ad073428436865636b4e6f6e6365b507882c436865636b576569676874f5088850436861726765417373657454785061796d656e74f9088844436865636b4d6574616461746148617368b9077901345765696768745265636c61696d0109886810436f72650c1c76657273696f6e00d10804902052657475726e73207468652076657273696f6e206f66207468652072756e74696d652e0034657865637574655f626c6f636b0414626c6f636be50888046420457865637574652074686520676976656e20626c6f636b2e0040696e697469616c697a655f626c6f636b04186865616465726d02ed0f04410120496e697469616c697a65206120626c6f636b20776974682074686520676976656e2068656164657220616e642072657475726e207468652072756e74696d6520657865637574697665206d6f64652e00042101205468652060436f7265602072756e74696d65206170692074686174206576657279205375627374726174652072756e74696d65206e6565647320746f20696d706c656d656e742e1400204d657461646174610c206d6574616461746100f10f048c2052657475726e7320746865206d65746164617461206f6620612072756e74696d652e004c6d657461646174615f61745f76657273696f6e041c76657273696f6e10f50f10a42052657475726e7320746865206d65746164617461206174206120676976656e2076657273696f6e2e0005012049662074686520676976656e206076657273696f6e602069736e277420737570706f727465642c20746869732077696c6c2072657475726e20604e6f6e65602e750120557365205b6053656c663a3a6d657461646174615f76657273696f6e73605d20746f2066696e64206f75742061626f757420737570706f72746564206d657461646174612076657273696f6e206f66207468652072756e74696d652e00446d657461646174615f76657273696f6e7300c9010ca42052657475726e732074686520737570706f72746564206d657461646174612076657273696f6e732e00c020546869732063616e206265207573656420746f2063616c6c20606d657461646174615f61745f76657273696f6e602e000401012054686520604d65746164617461602061706920747261697420746861742072657475726e73206d6574616461746120666f72207468652072756e74696d652e08004c52756e74696d655669657746756e6374696f6e0454657865637574655f766965775f66756e6374696f6e082071756572795f6964f90f14696e70757438fd0f047c2045786563757465206120766965772066756e6374696f6e2071756572792e0004a42052756e74696d652041504920666f7220657865637574696e6720766965772066756e6374696f6e73040030426c6f636b4275696c646572103c6170706c795f65787472696e736963042465787472696e736963e9080510106c204170706c792074686520676976656e2065787472696e7369632e0039012052657475726e7320616e20696e636c7573696f6e206f7574636f6d652077686963682073706563696669657320696620746869732065787472696e73696320697320696e636c7564656420696e4c207468697320626c6f636b206f72206e6f742e003866696e616c697a655f626c6f636b006d0204682046696e697368207468652063757272656e7420626c6f636b2e004c696e686572656e745f65787472696e736963730420696e686572656e7415100509043d012047656e657261746520696e686572656e742065787472696e736963732e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e003c636865636b5f696e686572656e74730814626c6f636be50810646174611510251004550120436865636b20746861742074686520696e686572656e7473206172652076616c69642e2054686520696e686572656e7420646174612077696c6c20766172792066726f6d20636861696e20746f20636861696e2e00047101205468652060426c6f636b4275696c646572602061706920747261697420746861742070726f7669646573207468652072657175697265642066756e6374696f6e616c69747920666f72206275696c64696e67206120626c6f636b2e1800585461676765645472616e73616374696f6e5175657565045076616c69646174655f7472616e73616374696f6e0c18736f757263652910087478e90828626c6f636b5f68617368342d1024682056616c696461746520746865207472616e73616374696f6e2e0065012054686973206d6574686f6420697320696e766f6b656420627920746865207472616e73616374696f6e20706f6f6c20746f206c6561726e2064657461696c732061626f757420676976656e207472616e73616374696f6e2e45012054686520696d706c656d656e746174696f6e2073686f756c64206d616b65207375726520746f207665726966792074686520636f72726563746e657373206f6620746865207472616e73616374696f6e4d0120616761696e73742063757272656e742073746174652e2054686520676976656e2060626c6f636b5f686173686020636f72726573706f6e647320746f207468652068617368206f662074686520626c6f636b7c207468617420697320757365642061732063757272656e742073746174652e004501204e6f7465207468617420746869732063616c6c206d617920626520706572666f726d65642062792074686520706f6f6c206d756c7469706c652074696d657320616e64207472616e73616374696f6e73a4206d6967687420626520766572696669656420696e20616e7920706f737369626c65206f726465722e00044d012054686520605461676765645472616e73616374696f6e5175657565602061706920747261697420666f7220696e746572666572696e67207769746820746865207472616e73616374696f6e2071756575652e0c004456616c696461746553746174656d656e74044876616c69646174655f73746174656d656e740818736f7572636535102473746174656d656e743d08391004602056616c6964617465207468652073746174656d656e742e0004b02052756e74696d652041504920747261697420666f722073746174656d656e742076616c69646174696f6e2e0400444f6666636861696e576f726b6572417069043c6f6666636861696e5f776f726b657204186865616465726d028804c82053746172747320746865206f66662d636861696e207461736b20666f7220676976656e20626c6f636b206865616465722e00046420546865206f6666636861696e20776f726b6572206170692e0800284772616e647061417069104c6772616e6470615f617574686f726974696573000d01183d0120476574207468652063757272656e74204752414e44504120617574686f72697469657320616e6420776569676874732e20546869732073686f756c64206e6f74206368616e6765206578636570741d0120666f72207768656e206368616e67657320617265207363686564756c656420616e642074686520636f72726573706f6e64696e672064656c617920686173207061737365642e003501205768656e2063616c6c656420617420626c6f636b20422c2069742077696c6c2072657475726e2074686520736574206f6620617574686f72697469657320746861742073686f756c642062653d01207573656420746f2066696e616c697a652064657363656e64616e7473206f66207468697320626c6f636b2028422b312c20422b322c202e2e2e292e2054686520626c6f636b204220697473656c66c02069732066696e616c697a65642062792074686520617574686f7269746965732066726f6d20626c6f636b20422d312e00b47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6601043c6b65795f6f776e65725f70726f6f6645104910201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e007067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f696415014d102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74fc20696d706c656d656e746174696f6e732069676e6f7265207468697320706172616d6574657220616e6420696e73746561642072656c79206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e003863757272656e745f7365745f696400300498204765742063757272656e74204752414e44504120617574686f72697479207365742069642e00240101204150497320666f7220696e746567726174696e6720746865204752414e4450412066696e616c6974792067616467657420696e746f2072756e74696d65732ec020546869732073686f756c6420626520696d706c656d656e746564206f6e207468652072756e74696d6520736964652e0015012054686973206973207072696d6172696c79207573656420666f72206e65676f74696174696e6720617574686f726974792d736574206368616e67657320666f72207468650d01206761646765742e204752414e44504120757365732061207369676e616c696e67206d6f64656c206f66206368616e67696e6720617574686f7269747920736574733a3101206368616e6765732073686f756c64206265207369676e616c6564207769746820612064656c6179206f66204e20626c6f636b732c20616e64207468656e206175746f6d61746963616c6c79e4206170706c69656420696e207468652072756e74696d652061667465722074686f7365204e20626c6f636b732068617665207061737365642e00fc2054686520636f6e73656e7375732070726f746f636f6c2077696c6c20636f6f7264696e617465207468652068616e646f66662065787465726e616c6c792e0c00484e6f6d696e6174696f6e506f6f6c73417069283c70656e64696e675f72657761726473040c77686f00180435012052657475726e73207468652070656e64696e67207265776172647320666f7220746865206d656d626572207468617420746865204163636f756e7449642077617320676976656e20666f722e0044706f696e74735f746f5f62616c616e6365081c706f6f6c5f69641018706f696e7473181804f42052657475726e7320746865206571756976616c656e742062616c616e6365206f662060706f696e74736020666f72206120676976656e20706f6f6c2e004462616c616e63655f746f5f706f696e7473081c706f6f6c5f696410246e65775f66756e6473181804fc2052657475726e7320746865206571756976616c656e7420706f696e7473206f6620606e65775f66756e64736020666f72206120676976656e20706f6f6c2e0048706f6f6c5f70656e64696e675f736c617368041c706f6f6c5f6964101804b02052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c2e00506d656d6265725f70656e64696e675f736c61736804186d656d626572001810cc2052657475726e73207468652070656e64696e6720736c61736820666f72206120676976656e20706f6f6c206d656d6265722e004d012049662070656e64696e6720736c617368206f6620746865206d656d626572206578636565647320604578697374656e7469616c4465706f736974602c2069742063616e206265207265706f72746564206f6e1c20636861696e2e0074706f6f6c5f6e656564735f64656c65676174655f6d6967726174696f6e041c706f6f6c5f6964102020e42052657475726e7320747275652069662074686520706f6f6c20776974682060706f6f6c5f696460206e65656473206d6967726174696f6e2e00490120546869732063616e2068617070656e207768656e20746865206070616c6c65742d6e6f6d696e6174696f6e2d706f6f6c73602068617320737769746368656420746f207573696e672073747261746567794101205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b6529206275742074686520706f6f6ce8207374696c6c206861732066756e647320746861742077657265207374616b6564207573696e6720746865206f6c6465722073747261746567791901205b5472616e736665725374616b655d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a5472616e736665725374616b65292e205573658901205b606d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f706f6f6c5f746f5f64656c65676174655f7374616b65295420746f206d6967726174652074686520706f6f6c2e007c6d656d6265725f6e656564735f64656c65676174655f6d6967726174696f6e04186d656d62657200201c29012052657475726e732074727565206966207468652064656c6567617465642066756e6473206f662074686520706f6f6c20606d656d62657260206e65656473206d6967726174696f6e2e00d8204f6e6365206120706f6f6c20686173207375636365737366756c6c79206d6967726174656420746f207468652073747261746567795501205b6044656c65676174655374616b65605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a616461707465723a3a44656c65676174655374616b65292c207468652066756e6473206f66207468651901206d656d6265722063616e206265206d696772617465642066726f6d20706f6f6c206163636f756e7420746f20746865206d656d6265722773206163636f756e742e205573652901205b606d6967726174655f64656c65676174696f6e605d2870616c6c65745f6e6f6d696e6174696f6e5f706f6f6c733a3a43616c6c3a3a6d6967726174655f64656c65676174696f6e29a420746f206d696772617465207468652066756e6473206f662074686520706f6f6c206d656d6265722e00506d656d6265725f746f74616c5f62616c616e6365040c77686f00180465012052657475726e732074686520746f74616c20636f6e747269627574696f6e206f66206120706f6f6c206d656d62657220696e636c7564696e6720616e792062616c616e6365207468617420697320756e626f6e64696e672e0030706f6f6c5f62616c616e6365041c706f6f6c5f69641018049c20546f74616c2062616c616e636520636f6e747269627574656420746f2074686520706f6f6c2e0034706f6f6c5f6163636f756e7473041c706f6f6c5f696410250c042d012052657475726e732074686520626f6e646564206163636f756e7420616e6420726577617264206163636f756e74206173736f63696174656420776974682074686520706f6f6c5f69642e0004f82052756e74696d652061706920666f7220616363657373696e6720696e666f726d6174696f6e2061626f7574206e6f6d696e6174696f6e20706f6f6c732e0400285374616b696e674170690c446e6f6d696e6174696f6e735f71756f7461041c62616c616e636518100411012052657475726e7320746865206e6f6d696e6174696f6e732071756f746120666f722061206e6f6d696e61746f722077697468206120676976656e2062616c616e63652e005c657261735f7374616b6572735f706167655f636f756e74080c657261101c6163636f756e7400100439012052657475726e7320746865207061676520636f756e74206f66206578706f737572657320666f7220612076616c696461746f7220606163636f756e746020696e206120676976656e206572612e003c70656e64696e675f72657761726473080c657261101c6163636f756e740020043d012052657475726e7320747275652069662076616c696461746f7220606163636f756e74602068617320706167657320746f20626520636c61696d656420666f722074686520676976656e206572612e000004001c426162654170691834636f6e66696775726174696f6e005110048c2052657475726e2074686520636f6e66696775726174696f6e20666f7220424142452e004c63757272656e745f65706f63685f737461727400790204c42052657475726e732074686520736c6f7420746861742073746172746564207468652063757272656e742065706f63682e003463757272656e745f65706f636800551004c42052657475726e7320696e666f726d6174696f6e20726567617264696e67207468652063757272656e742065706f63682e00286e6578745f65706f63680055100801012052657475726e7320696e666f726d6174696f6e20726567617264696e6720746865206e6578742065706f6368202877686963682077617320616c72656164795c2070726576696f75736c7920616e6e6f756e636564292e007067656e65726174655f6b65795f6f776e6572736869705f70726f6f660810736c6f74790230617574686f726974795f6964750259102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e207468650d012063757272656e742065706f63682e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e0901204e4f54453a206576656e2074686f75676820746865204150492074616b657320612060736c6f746020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e74206174f0207768696368207468652065706f636820666f722074686520676976656e20736c6f74206973206c697665206f6e2d636861696e2e20467574757265090120696d706c656d656e746174696f6e732077696c6c20696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696ed020776f726b65722c206e6f7420726571756972696e67206f6c6465722073746174657320746f20626520617661696c61626c652e00b47375626d69745f7265706f72745f65717569766f636174696f6e5f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6669023c6b65795f6f776e65725f70726f6f665d104910201101205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420616e2065717569766f636174696f6e2e205468652063616c6c6572f8206d7573742070726f76696465207468652065717569766f636174696f6e2070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e0004b820415049206e656365737361727920666f7220626c6f636b20617574686f7273686970207769746820424142452e080054417574686f72697479446973636f76657279417069042c617574686f726974696573009d0b04190120526574726965766520617574686f72697479206964656e74696669657273206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e0010742054686520617574686f7269747920646973636f76657279206170692e0051012054686973206170692069732075736564206279207468652060636c69656e742f617574686f726974792d646973636f7665727960206d6f64756c6520746f207265747269657665206964656e746966696572739c206f66207468652063757272656e7420616e64206e65787420617574686f72697479207365742e04003c4163636f756e744e6f6e636541706904346163636f756e745f6e6f6e6365041c6163636f756e74001004c0204765742063757272656e74206163636f756e74206e6f6e6365206f6620676976656e20604163636f756e744964602e000480205468652041504920746f207175657279206163636f756e74206e6f6e63652e04002441737365747341706904406163636f756e745f62616c616e636573041c6163636f756e7400090c0449012052657475726e7320746865206c697374206f66206041737365744964607320616e6420636f72726573706f6e64696e672062616c616e6365207468617420616e20604163636f756e74496460206861732e0000040030436f6e747261637473417069101063616c6c18186f726967696e001064657374001476616c756518246761735f6c696d6974e1075473746f726167655f6465706f7369745f6c696d6974b10328696e7075745f646174613861100cf420506572666f726d20612063616c6c2066726f6d206120737065636966696564206163636f756e7420746f206120676976656e20636f6e74726163742e008820536565205b6063726174653a3a50616c6c65743a3a626172655f63616c6c605d2e002c696e7374616e74696174651c186f726967696e001476616c756518246761735f6c696d6974e1075473746f726167655f6465706f7369745f6c696d6974b10310636f64657d101064617461381073616c743881100c7020496e7374616e74696174652061206e657720636f6e74726163742e00a42053656520605b63726174653a3a50616c6c65743a3a626172655f696e7374616e74696174655d602e002c75706c6f61645f636f646510186f726967696e0010636f6465385473746f726167655f6465706f7369745f6c696d6974b1032c64657465726d696e69736d39048d100ce82055706c6f6164206e657720636f646520776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00a420536565205b6063726174653a3a50616c6c65743a3a626172655f75706c6f61645f636f6465605d2e002c6765745f73746f72616765081c61646472657373000c6b657938951014bc205175657279206120676976656e2073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e0004bc2054686520415049207573656420746f206472792d72756e20636f6e747261637420696e746572616374696f6e732e0800545472616e73616374696f6e5061796d656e74417069102871756572795f696e666f080c757874e9080c6c656e109d1000004471756572795f6665655f64657461696c73080c757874e9080c6c656e10a11000004c71756572795f7765696768745f746f5f6665650418776569676874281800004c71756572795f6c656e6774685f746f5f66656504186c656e67746810180000001000484173736574436f6e76657273696f6e4170690c8c71756f74655f70726963655f746f6b656e735f666f725f65786163745f746f6b656e731018617373657431a018617373657432a018616d6f756e74182c696e636c7564655f66656520b10310fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f746f6b656e735f666f725f65786163745f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eac20285573652060616d6f756e745f696e5f6d61786020746f20636f6e74726f6c20736c6970706167652e29008c71756f74655f70726963655f65786163745f746f6b656e735f666f725f746f6b656e731018617373657431a018617373657432a018616d6f756e74182c696e636c7564655f66656520b10310fc2050726f766964657320612071756f746520666f72205b6050616c6c65743a3a737761705f65786163745f746f6b656e735f666f725f746f6b656e73605d2e003901204e6f7465207468617420746865207072696365206d61792068617665206368616e676564206279207468652074696d6520746865207472616e73616374696f6e2069732065786563757465642eb020285573652060616d6f756e745f6f75745f6d696e6020746f20636f6e74726f6c20736c6970706167652e2900306765745f72657365727665730818617373657431a018617373657432a0ad100405012052657475726e73207468652073697a65206f6620746865206c697175696469747920706f6f6c20666f722074686520676976656e20617373657420706169722e0008210120546869732072756e74696d652061706920616c6c6f77732070656f706c6520746f207175657279207468652073697a65206f6620746865206c697175696469747920706f6f6c737020616e642071756f74652070726963657320666f722073776170732e0400645472616e73616374696f6e5061796d656e7443616c6c417069103c71756572795f63616c6c5f696e666f081063616c6c35020c6c656e109d1004490120517565727920696e666f726d6174696f6e206f66206120646973706174636820636c6173732c207765696768742c20616e6420666565206f66206120676976656e20656e636f646564206043616c6c602e005871756572795f63616c6c5f6665655f64657461696c73081063616c6c35020c6c656e10a11004b4205175657279206665652064657461696c73206f66206120676976656e20656e636f646564206043616c6c602e004c71756572795f7765696768745f746f5f6665650418776569676874281804010120517565727920746865206f7574707574206f66207468652063757272656e742060576569676874546f4665656020676976656e20736f6d6520696e7075742e004c71756572795f6c656e6774685f746f5f66656504186c656e677468101804010120517565727920746865206f7574707574206f66207468652063757272656e7420604c656e677468546f4665656020676976656e20736f6d6520696e7075742e00000c001c4e66747341706918146f776e65720828636f6c6c656374696f6e10106974656d10ac000040636f6c6c656374696f6e5f6f776e65720428636f6c6c656374696f6e10ac0000246174747269627574650c28636f6c6c656374696f6e10106974656d100c6b657938e506000040637573746f6d5f617474726962757465101c6163636f756e740028636f6c6c656374696f6e10106974656d100c6b657938e50600004073797374656d5f6174747269627574650c28636f6c6c656374696f6e10106974656dc80c6b657938e506000050636f6c6c656374696f6e5f6174747269627574650828636f6c6c656374696f6e100c6b657938e50600000004002042656566794170691c3462656566795f67656e6573697300c80405012052657475726e2074686520626c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f73746172746564003476616c696461746f725f73657400b51004b82052657475726e207468652063757272656e74206163746976652042454546592076616c696461746f722073657400b87375626d69745f7265706f72745f646f75626c655f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6649053c6b65795f6f776e65725f70726f6f6645104910204501205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120646f75626c6520766f74696e672065717569766f636174696f6e2e205468652063616c6c6572fc206d7573742070726f766964652074686520646f75626c6520766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66fc202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e2054686505012065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e00b07375626d69745f7265706f72745f666f726b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f66bd103c6b65795f6f776e65725f70726f6f6645104910203d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f7274206120666f726b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65724101206d7573742070726f766964652074686520666f726b20766f74696e672070726f6f66202874686520616e6365737472792070726f6f662073686f756c64206265206f627461696e6564207573696e673d01206067656e65726174655f616e6365737472795f70726f6f66602920616e642061206b6579206f776e6572736869702070726f6f66202873686f756c64206265206f627461696e6564207573696e674101206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c794d0120626520616363657074656420666f72206c6f63616c20617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f6429012072657475726e7320604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e00d07375626d69745f7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e65645f65787472696e736963084865717569766f636174696f6e5f70726f6f6675053c6b65795f6f776e65725f70726f6f6645104910205d01205375626d69747320616e20756e7369676e65642065787472696e73696320746f207265706f727420612066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e205468652063616c6c65721501206d7573742070726f76696465207468652066757475726520626c6f636b20766f74696e672070726f6f6620616e642061206b6579206f776e6572736869702070726f6f66ec202873686f756c64206265206f627461696e6564207573696e67206067656e65726174655f6b65795f6f776e6572736869705f70726f6f6660292e1501205468652065787472696e7369632077696c6c20626520756e7369676e656420616e642073686f756c64206f6e6c7920626520616363657074656420666f72206c6f63616c150120617574686f727368697020286e6f7420746f2062652062726f61646361737420746f20746865206e6574776f726b292e2054686973206d6574686f642072657475726e73090120604e6f6e6560207768656e206372656174696f6e206f66207468652065787472696e736963206661696c732c20652e672e2069662065717569766f636174696f6e0501207265706f7274696e672069732064697361626c656420666f722074686520676976656e2072756e74696d652028692e652e2074686973206d6574686f6420697305012068617264636f64656420746f2072657475726e20604e6f6e6560292e204f6e6c792075736566756c20696e20616e206f6666636861696e20636f6e746578742e007067656e65726174655f6b65795f6f776e6572736869705f70726f6f6608187365745f69643030617574686f726974795f6964d5034d102c09012047656e65726174657320612070726f6f66206f66206b6579206f776e65727368697020666f722074686520676976656e20617574686f7269747920696e20746865fc20676976656e207365742e20416e206578616d706c65207573616765206f662074686973206d6f64756c6520697320636f75706c656420776974682074686505012073657373696f6e20686973746f726963616c206d6f64756c6520746f2070726f76652074686174206120676976656e20617574686f72697479206b65792069730d01207469656420746f206120676976656e207374616b696e67206964656e7469747920647572696e6720612073706563696669632073657373696f6e2e2050726f6f66731101206f66206b6579206f776e65727368697020617265206e656365737361727920666f72207375626d697474696e672065717569766f636174696f6e207265706f7274732e1101204e4f54453a206576656e2074686f75676820746865204150492074616b6573206120607365745f69646020617320706172616d65746572207468652063757272656e74090120696d706c656d656e746174696f6e732069676e6f726573207468697320706172616d6574657220616e6420696e73746561642072656c696573206f6e20746869730d01206d6574686f64206265696e672063616c6c65642061742074686520636f727265637420626c6f636b206865696768742c20692e652e20616e7920706f696e7420617415012077686963682074686520676976656e20736574206964206973206c697665206f6e2d636861696e2e2046757475726520696d706c656d656e746174696f6e732077696c6c0d0120696e73746561642075736520696e64657865642064617461207468726f75676820616e206f6666636861696e20776f726b65722c206e6f7420726571756972696e6778206f6c6465722073746174657320746f20626520617661696c61626c652e005c67656e65726174655f616e6365737472795f70726f6f660844707265765f626c6f636b5f6e756d626572105c626573745f6b6e6f776e5f626c6f636b5f6e756d626572c84d100845012047656e65726174657320612070726f6f662074686174207468652060707265765f626c6f636b5f6e756d626572602069732070617274206f66207468652063616e6f6e6963616c20636861696e2061746c2060626573745f6b6e6f776e5f626c6f636b5f6e756d626572602e00048020415049206e656365737361727920666f7220424545465920766f746572732e1400184d6d7241706914206d6d725f726f6f7400c110048c2052657475726e20746865206f6e2d636861696e204d4d5220726f6f7420686173682e00386d6d725f6c6561665f636f756e7400c91004b82052657475726e20746865206e756d626572206f66204d4d5220626c6f636b7320696e2074686520636861696e2e003867656e65726174655f70726f6f660834626c6f636b5f6e756d62657273c9015c626573745f6b6e6f776e5f626c6f636b5f6e756d626572c8cd100869012047656e6572617465204d4d522070726f6f6620666f72206120736572696573206f6620626c6f636b206e756d626572732e2049662060626573745f6b6e6f776e5f626c6f636b5f6e756d626572203d20536f6d65286e29602c45012075736520686973746f726963616c204d4d5220737461746520617420676976656e20626c6f636b2068656967687420606e602e20456c73652c207573652063757272656e74204d4d522073746174652e00307665726966795f70726f6f6608186c6561766573d5101470726f6f66dd10e11014f420566572696679204d4d522070726f6f6620616761696e7374206f6e2d636861696e204d4d5220666f722061206261746368206f66206c65617665732e007101204e6f746520746869732066756e6374696f6e2077696c6c20757365206f6e2d636861696e204d4d5220726f6f74206861736820616e6420636865636b206966207468652070726f6f66206d6174636865732074686520686173682e6d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d00587665726966795f70726f6f665f73746174656c6573730c10726f6f7434186c6561766573d5101470726f6f66dd10e1101c010120566572696679204d4d522070726f6f6620616761696e737420676976656e20726f6f74206861736820666f722061206261746368206f66206c65617665732e00fc204e6f746520746869732066756e6374696f6e20646f6573206e6f74207265717569726520616e79206f6e2d636861696e2073746f72616765202d20746865bc2070726f6f6620697320766572696669656420616761696e737420676976656e204d4d5220726f6f7420686173682e006d01204e6f74652c20746865206c65617665732073686f756c6420626520736f727465642073756368207468617420636f72726573706f6e64696e67206c656176657320616e64206c65616620696e646963657320686176652074686595012073616d6520706f736974696f6e20696e20626f74682074686520606c65617665736020766563746f7220616e642074686520606c6561665f696e64696365736020766563746f7220636f6e7461696e656420696e20746865205b4c65616650726f6f665d0004842041504920746f20696e7465726163742077697468204d4d522070616c6c65742e0800244d69786e6574417069103873657373696f6e5f73746174757300e51004c0204765742074686520696e64657820616e64207068617365206f66207468652063757272656e742073657373696f6e2e0034707265765f6d69786e6f64657300ed1004b82047657420746865206d69786e6f64652073657420666f72207468652070726576696f75732073657373696f6e2e004063757272656e745f6d69786e6f64657300ed1004b42047657420746865206d69786e6f64652073657420666f72207468652063757272656e742073657373696f6e2e00386d617962655f7265676973746572083473657373696f6e5f696e646578101c6d69786e6f6465f510203cc02054727920746f2072656769737465722061206d69786e6f646520666f7220746865206e6578742073657373696f6e2e005901204966206120726567697374726174696f6e2065787472696e736963206973207375626d69747465642c206074727565602069732072657475726e65642e205468652063616c6c65722073686f756c642061766f69644d012063616c6c696e6720606d617962655f72656769737465726020616761696e20666f7220612066657720626c6f636b732c20746f206769766520746865207375626d69747465642065787472696e736963206160206368616e636520746f2067657420696e636c756465642e0059012057697468207468652061626f766520657863657074696f6e2c20606d617962655f7265676973746572602069732064657369676e656420746f2062652063616c6c656420657665727920626c6f636b2e204d6f7374c8206f66207468652074696d652069742077696c6c206e6f7420646f20616e797468696e672c20666f72206578616d706c653a001d01202d204966206974206973206e6f7420616e20617070726f7072696174652074696d6520746f207375626d6974206120726567697374726174696f6e2065787472696e7369632e2d01202d20496620746865206c6f63616c206e6f64652068617320616c726561647920726567697374657265642061206d69786e6f646520666f7220746865206e6578742073657373696f6e2e4501202d20496620746865206c6f63616c206e6f6465206973206e6f74207065726d697474656420746f2072656769737465722061206d69786e6f646520666f7220746865206e6578742073657373696f6e2e005d01206073657373696f6e5f696e646578602073686f756c64206d61746368206073657373696f6e5f73746174757328292e63757272656e745f696e646578603b20696620697420646f6573206e6f742c206066616c736560642069732072657475726e656420696d6d6564696174656c792e00044d012041504920746f20717565727920746865206d69786e65742073657373696f6e2073746174757320616e64206d69786e6f646520736574732c20616e6420746f207265676973746572206d69786e6f6465732e04002c53657373696f6e4b657973085467656e65726174655f73657373696f6e5f6b657973041073656564e506381c15012047656e6572617465206120736574206f662073657373696f6e206b6579732077697468206f7074696f6e616c6c79207573696e672074686520676976656e20736565642e090120546865206b6579732073686f756c642062652073746f7265642077697468696e20746865206b657973746f7265206578706f736564207669612072756e74696d653c2065787465726e616c69746965732e00b0205468652073656564206e6565647320746f20626520612076616c69642060757466386020737472696e672e00d02052657475726e732074686520636f6e636174656e61746564205343414c4520656e636f646564207075626c6963206b6579732e004c6465636f64655f73657373696f6e5f6b657973041c656e636f64656438fd100c98204465636f64652074686520676976656e207075626c69632073657373696f6e206b6579732e00dc2052657475726e7320746865206c697374206f66207075626c696320726177207075626c6963206b657973202b206b657920747970652e0004682053657373696f6e206b6579732072756e74696d65206170692e0400304173736574526577617264730448706f6f6c5f6372656174696f6e5f636f737400180c84204765742074686520636f7374206f66206372656174696e67206120706f6f6c2e00d0205468697320697320657370656369616c6c792075736566756c207768656e2074686520636f73742069732064796e616d69632e0004b8205468652072756e74696d652041504920666f722074686520617373657420726577617264732070616c6c65742e04003847656e657369734275696c6465720c2c6275696c645f737461746504106a736f6e380911286501204275696c64206052756e74696d6547656e65736973436f6e666967602066726f6d2061204a534f4e20626c6f62206e6f74207573696e6720616e792064656661756c747320616e642073746f726520697420696e20746865242073746f726167652e00290120496e207468652063617365206f662061204652414d452d62617365642072756e74696d652c20746869732066756e6374696f6e20646573657269616c697a6573207468652066756c6c5501206052756e74696d6547656e65736973436f6e666967602066726f6d2074686520676976656e204a534f4e20626c6f6220616e64207075747320697420696e746f207468652073746f726167652e2049662074686555012070726f7669646564204a534f4e20626c6f6220697320696e636f7272656374206f7220696e636f6d706c657465206f722074686520646573657269616c697a6174696f6e206661696c732c20616e206572726f72342069732072657475726e65642e005d0120506c65617365206e6f746520746861742070726f7669646564204a534f4e20626c6f62206d75737420636f6e7461696e20616c6c206052756e74696d6547656e65736973436f6e66696760206669656c64732c206e6f5c2064656661756c74732077696c6c20626520757365642e00286765745f707265736574040869640d11e5063861012052657475726e732061204a534f4e20626c6f6220726570726573656e746174696f6e206f6620746865206275696c742d696e206052756e74696d6547656e65736973436f6e66696760206964656e7469666965642062791820606964602e005501204966206069646020697320604e6f6e6560207468652066756e6374696f6e2073686f756c642072657475726e204a534f4e20626c6f6220726570726573656e746174696f6e206f66207468652064656661756c744901206052756e74696d6547656e65736973436f6e6669676020737472756374206f66207468652072756e74696d652e20496d706c656d656e746174696f6e206d7573742070726f766964652064656661756c7460206052756e74696d6547656e65736973436f6e666967602e002101204f74686572776973652066756e6374696f6e2072657475726e732061204a534f4e20726570726573656e746174696f6e206f6620746865206275696c742d696e2c206e616d65645101206052756e74696d6547656e65736973436f6e6669676020707265736574206964656e74696669656420627920606964602c206f7220604e6f6e656020696620737563682070726573657420646f6573206e6f7461012065786973742e2052657475726e656420605665633c75383e6020636f6e7461696e73206279746573206f66204a534f4e20626c6f62202870617463682920776869636820636f6d7072697365732061206c697374206f664d012028706f74656e7469616c6c79206e657374656429206b65792d76616c756520706169727320746861742061726520696e74656e64656420666f7220637573746f6d697a696e67207468652064656661756c7465012072756e74696d652067656e6573697320636f6e6669672e20546865207061746368207368616c6c206265206d657267656420287266633733383629207769746820746865204a534f4e20726570726573656e746174696f6e6101206f66207468652064656661756c74206052756e74696d6547656e65736973436f6e6669676020746f20637265617465206120636f6d70726568656e736976652067656e6573697320636f6e66696720746861742063616e84206265207573656420696e20606275696c645f737461746560206d6574686f642e00307072657365745f6e616d65730011111051012052657475726e732061206c697374206f66206964656e7469666965727320666f7220617661696c61626c65206275696c74696e206052756e74696d6547656e65736973436f6e6669676020707265736574732e0061012054686520707265736574732066726f6d20746865206c6973742063616e20626520717565726965642077697468205b6047656e657369734275696c6465723a3a6765745f707265736574605d206d6574686f642e2049660101206e6f206e616d65642070726573657473206172652070726f7669646564206279207468652072756e74696d6520746865206c69737420697320656d7074792e0004f02041504920746f20696e7465726163742077697468206052756e74696d6547656e65736973436f6e6669676020666f72207468652072756e74696d65040024526576697665417069343c626c6f636b5f6761735f6c696d697400151104742052657475726e732074686520626c6f636b20676173206c696d69742e001c62616c616e6365041c61646472657373810715110431012052657475726e732074686520667265652062616c616e6365206f662074686520676976656e20605b483136305d6020616464726573732c207573696e672045564d20646563696d616c732e00246761735f7072696365001511045c2052657475726e7320746865206761732070726963652e00146e6f6e6365041c6164647265737381071004c42052657475726e7320746865206e6f6e6365206f662074686520676976656e20605b483136305d6020616464726573732e001063616c6c18186f726967696e00106465737481071476616c756518246761735f6c696d6974e1075473746f726167655f6465706f7369745f6c696d6974b10328696e7075745f64617461381d110cf420506572666f726d20612063616c6c2066726f6d206120737065636966696564206163636f756e7420746f206120676976656e20636f6e74726163742e008820536565205b6063726174653a3a50616c6c65743a3a626172655f63616c6c605d2e002c696e7374616e74696174651c186f726967696e001476616c756518246761735f6c696d6974e1075473746f726167655f6465706f7369745f6c696d6974b10310636f646531111064617461381073616c74790135110c7020496e7374616e74696174652061206e657720636f6e74726163742e00a42053656520605b63726174653a3a50616c6c65743a3a626172655f696e7374616e74696174655d602e00306574685f7472616e7361637404087478411171110c6820506572666f726d20616e20457468657265756d2063616c6c2e00b020536565205b6063726174653a3a50616c6c65743a3a6472795f72756e5f6574685f7472616e73616374605d002c75706c6f61645f636f64650c186f726967696e0010636f6465385473746f726167655f6465706f7369745f6c696d6974b1037d110ce82055706c6f6164206e657720636f646520776974686f757420696e7374616e74696174696e67206120636f6e74726163742066726f6d2069742e00a420536565205b6063726174653a3a50616c6c65743a3a626172655f75706c6f61645f636f6465605d2e002c6765745f73746f72616765081c6164647265737381070c6b657904851114bc205175657279206120676976656e2073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e004c6765745f73746f726167655f7661725f6b6579081c6164647265737381070c6b657938851114f8205175657279206120676976656e207661726961626c652d73697a65642073746f72616765206b657920696e206120676976656e20636f6e74726163742e004d012052657475726e7320604f6b28536f6d65285665633c75383e292960206966207468652073746f726167652076616c75652065786973747320756e6465722074686520676976656e206b657920696e20746865610120737065636966696564206163636f756e7420616e6420604f6b284e6f6e65296020696620697420646f65736e27742e20496620746865206163636f756e7420737065636966696564206279207468652061646472657373090120646f65736e27742065786973742c206f7220646f65736e27742068617665206120636f6e7472616374207468656e2060457272602069732072657475726e65642e002c74726163655f626c6f636b0814626c6f636be50818636f6e6669678d119911180501205472616365732074686520657865637574696f6e206f6620616e20656e7469726520626c6f636b20616e642072657475726e732063616c6c207472616365732e004101205468697320697320696e74656e64656420746f2062652063616c6c6564207468726f756768206073746174655f63616c6c6020746f207265706c61792074686520626c6f636b2066726f6d207468653820706172656e7420626c6f636b2e00c820536565206574682d727063206064656275675f7472616365426c6f636b42794e756d6265726020666f722075736167652e002074726163655f74780c14626c6f636be5082074785f696e6465781018636f6e6669678d11b91118fc205472616365732074686520657865637574696f6e206f662061207370656369666963207472616e73616374696f6e2077697468696e206120626c6f636b2e004101205468697320697320696e74656e64656420746f2062652063616c6c6564207468726f756768206073746174655f63616c6c6020746f207265706c61792074686520626c6f636b2066726f6d207468658c20706172656e74206861736820757020746f20746865207472616e73616374696f6e2e00c020536565206574682d727063206064656275675f74726163655472616e73616374696f6e6020666f722075736167652e002874726163655f63616c6c08087478411118636f6e6669678d11bd110cc0204472792072756e20616e642072657475726e20746865207472616365206f662074686520676976656e2063616c6c2e00a420536565206574682d727063206064656275675f747261636543616c6c6020666f722075736167652e0004bc2054686520415049207573656420746f206472792d72756e20636f6e747261637420696e746572616374696f6e732e0400350254c11100'; diff --git a/packages/types-support/src/metadata/v16/bizinikiwi-json.json b/packages/types-support/src/metadata/v16/bizinikiwi-json.json new file mode 100644 index 0000000..b50f236 --- /dev/null +++ b/packages/types-support/src/metadata/v16/bizinikiwi-json.json @@ -0,0 +1,16727 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v16": { + "pallets": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 3 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The full account information for a particular account ID." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InherentsApplied", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether all inherents have been applied." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BlockWeight", + "modifier": "Default", + "type": { + "plain": 9 + }, + "fallback": "0x000000000000", + "docs": [ + " The current weight for the block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": 15 + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": 19 + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block.", + "", + " NOTE: The item is unbound and should therefore never be read on chain.", + " It could otherwise inflate the PoV size of a block.", + "", + " Events have a large in-memory size. Box the events to not go out-of-memory", + " just in case someone still reads them from within the runtime." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 13, + "value": 553 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(BlockNumberFor, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LastRuntimeUpgrade", + "modifier": "Optional", + "type": { + "plain": 554 + }, + "fallback": "0x00", + "docs": [ + " Stores the `spec_version` and `spec_name` of when the last runtime upgrade happened." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UpgradedToU32RefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that `type RefCount` is `u32`. False (default) if not." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UpgradedToTripleRefCount", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if we have upgraded so that AccountInfo contains three types of `RefCount`. False", + " (default) if not." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExecutionPhase", + "modifier": "Optional", + "type": { + "plain": 552 + }, + "fallback": "0x00", + "docs": [ + " The execution phase of the block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AuthorizedUpgrade", + "modifier": "Optional", + "type": { + "plain": 557 + }, + "fallback": "0x00", + "docs": [ + " `Some` if a code upgrade has been authorized." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExtrinsicWeightReclaimed", + "modifier": "Default", + "type": { + "plain": 10 + }, + "fallback": "0x0000", + "docs": [ + " The weight reclaimed for the extrinsic.", + "", + " This information is available until the end of the extrinsic execution.", + " More precisely this information is removed in `note_applied_extrinsic`.", + "", + " Logic doing some post dispatch weight reduction must update this storage to avoid duplicate", + " reduction." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 142, + "deprecationInfo": {} + }, + "events": { + "type": 22, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "BlockWeights", + "type": 558, + "value": "0xc2a0e766000b00204aa9d10113ffffffffffffffff2261c91900010bb86f97a72e011366666666666666a6010b0098f73e5d0113ffffffffffffffbf0100002261c91900010bb8f7e911a3011366666666666666e6010b00204aa9d10113ffffffffffffffff01070088526a741300000000000000402261c91900000000", + "docs": [ + " Block & extrinsics weights: base values and limits." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BlockLength", + "type": 561, + "value": "0x00003c000000500000005000", + "docs": [ + " The maximum length of a block (in bytes)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BlockHashCount", + "type": 4, + "value": "0x60090000", + "docs": [ + " Maximum number of block number to block hash mappings to keep (oldest pruned first)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DbWeight", + "type": 563, + "value": "0x40787d010000000000e1f50500000000", + "docs": [ + " The weight of runtime database operations the runtime can invoke." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Version", + "type": 564, + "value": "0x106e6f6465387375627374726174652d6e6f64650a0000000c0100000000000068df6acb689907609b0500000037e397fc7c91f5e402000000ccd9de6396c899ca0100000040fe3ad401f8959a06000000d2bc9897eed08f1503000000be9fb0c91a8046cf01000000f78b278be53f454c02000000ed99c5acb25eedf50300000017a6bc0d0062aeb30100000018ef58a3b67ba77001000000cbca25e39f14238702000000687ad44ad37f03c201000000bc9d89904f5b923f010000008453b50b222939770100000068b66ba122c93fa70200000037c8bb1350a9a2a8040000008a8047a53a8277ec01000000f3ff14d5ab52705903000000899a250cbe84f2500100000049eaaf1b548a0cb00500000091d5df18b0d2cf58020000006fd7c327202e4a8d01000000ab3c0572291feb8b0100000065f855d6e093c2f101000000fbc577b9d747efd6010000008c403e5c4a9fd442010000000200000001", + "docs": [ + " Get the chain's in-code version." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SS58Prefix", + "type": 100, + "value": "0x2a00", + "docs": [ + " The designated SS58 prefix of this chain.", + "", + " This replaces the \"ss58Format\" property declared in the chain spec. Reason is", + " that the runtime should know about the prefix in order to make use of it as", + " an identifier of the chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 568, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The aggregated `RuntimeCall` type." + ] + }, + { + "name": "Nonce", + "type": 4, + "docs": [ + " This stores the number of previous transactions associated with a sender account." + ] + }, + { + "name": "Hash", + "type": 13, + "docs": [ + " The output of the `Hashing` function." + ] + }, + { + "name": "Hashing", + "type": 496, + "docs": [ + " The hashing system (algorithm) being used in the runtime (e.g. Blake2)." + ] + }, + { + "name": "AccountId", + "type": 0, + "docs": [ + " The user account identifier type for the runtime." + ] + }, + { + "name": "Block", + "type": 569, + "docs": [ + " The Block type used by the runtime. This is used by `construct_runtime` to retrieve the", + " extrinsics or other block specific data as needed." + ] + }, + { + "name": "AccountData", + "type": 5, + "docs": [ + " Data to be associated with an account (other than nonce/transaction counter, which this", + " pallet does regardless)." + ] + } + ], + "viewFunctions": [], + "index": 0, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Utility", + "storage": null, + "calls": { + "type": 146, + "deprecationInfo": {} + }, + "events": { + "type": 32, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "batched_calls_limit", + "type": 4, + "value": "0xaa2a0000", + "docs": [ + " The limit on the number of batched calls." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 578, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + }, + { + "name": "PalletsOrigin", + "type": 148, + "docs": [ + " The caller origin, overarching type of all pallets origins." + ] + } + ], + "viewFunctions": [], + "index": 1, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 579 + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": 158 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": 158 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PendingEpochConfigChange", + "modifier": "Optional", + "type": { + "plain": 160 + }, + "fallback": "0x00", + "docs": [ + " Pending epoch configuration change that will be applied when the next epoch is enacted." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": 1 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 579 + }, + "fallback": "0x00", + "docs": [ + " Next epoch authorities." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a trade-off between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 582 + } + }, + "fallback": "0x00", + "docs": [ + " TWOX-NOTE: `SegmentIndex` is an increasing integer, so this is okay." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": 584 + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AuthorVrfRandomness", + "modifier": "Default", + "type": { + "plain": 94 + }, + "fallback": "0x00", + "docs": [ + " This field should always be populated during block processing unless", + " secondary plain slots are enabled (which don't contain a VRF output).", + "", + " It is set in `on_finalize`, before it will contain the value from the last block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "EpochStart", + "modifier": "Default", + "type": { + "plain": 93 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The block numbers when the last and current epoch have started, respectively `N-1` and", + " `N`.", + " NOTE: We track this is in order to annotate the block number when a given pool of", + " entropy was fixed (i.e. it was known to chain observers). Since epochs are defined in", + " slots, which may be skipped, the block numbers may not line up with the slot numbers." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Lateness", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " How late the current block is compared to its parent.", + "", + " This entry is populated as part of block execution and is cleaned up", + " on block finalization. Querying this storage entry outside of block", + " execution context should always yield zero." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "EpochConfig", + "modifier": "Optional", + "type": { + "plain": 590 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current epoch. Should never be `None` as it is initialized in", + " genesis." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextEpochConfig", + "modifier": "Optional", + "type": { + "plain": 590 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the next epoch, `None` if the config will not change", + " (you can fallback to `EpochConfig` instead in that case)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SkippedEpochs", + "modifier": "Default", + "type": { + "plain": 591 + }, + "fallback": "0x00", + "docs": [ + " A list of the last 100 skipped epochs and the corresponding session index", + " when the epoch was skipped.", + "", + " This is only used for validating equivocation proofs. An equivocation proof", + " must contains a key-ownership proof for a given session, therefore we need a", + " way to tie together sessions and epoch indices, i.e. we need to validate that", + " a validator was the owner of a given key on a given session, and what the", + " active epoch index was during that session." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 153, + "deprecationInfo": {} + }, + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": 12, + "value": "0xc800000000000000", + "docs": [ + " The amount of time, in slots, that each epoch should last.", + " NOTE: Currently it is not possible to change the epoch duration after", + " the chain has started. Attempting to do so will brick block production." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExpectedBlockTime", + "type": 12, + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of authorities allowed" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of nominators for each validator." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 594, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "KeyOwnerProof", + "type": 159, + "docs": [ + " The proof of key ownership, used for validating equivocation reports.", + " The proof must include the session index and validator count of the", + " session at which the equivocation occurred." + ] + } + ], + "viewFunctions": [], + "index": 2, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current time for the current block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Whether the timestamp has been updated in this block.", + "", + " This value is updated to `true` upon successful submission of a timestamp by a node.", + " It is then checked at the end of each block execution in the `on_finalize` hook." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 163, + "deprecationInfo": {} + }, + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": 12, + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks.", + "", + " Be aware that this is different to the *expected* period that the block production", + " apparatus provides. Your chosen consensus system will generally work with this to", + " determine a sensible block time. For example, in the Aura pallet it will be double this", + " period on default settings." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": null, + "associatedTypes": [ + { + "name": "Moment", + "type": 12, + "docs": [ + " Type used for expressing a timestamp." + ] + } + ], + "viewFunctions": [], + "index": 3, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 4, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "Accounts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 595 + } + }, + "fallback": "0x00", + "docs": [ + " The lookup from index to account." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 164, + "deprecationInfo": {} + }, + "events": { + "type": 35, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The deposit needed for reserving an index." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 596, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "AccountIndex", + "type": 4, + "docs": [ + " Type used for storing an account's index; implies the maximum number of accounts the", + " system can hold." + ] + } + ], + "viewFunctions": [], + "index": 5, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InactiveIssuance", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units of outstanding deactivated balance in the system." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Account", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 5 + } + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080", + "docs": [ + " The Balances pallet example of storing the balance of an account.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = StorageMapShim, frame_system::Provider, AccountId, Self::AccountData>", + " }", + " ```", + "", + " You can also store the balance of an account in the `System` pallet.", + "", + " # Example", + "", + " ```nocompile", + " impl pallet_balances::Config for Runtime {", + " type AccountStore = System", + " }", + " ```", + "", + " But this comes with tradeoffs, storing account balances in the system pallet stores", + " `frame_system` data alongside the account data contrary to storing account balances in the", + " `Balances` pallet, which uses a `StorageMap` to store balances data only.", + " NOTE: This is only used in the case that this pallet is used to store balances." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 597 + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances.", + " NOTE: Should only be accessed when setting, changing and freeing a lock.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Reserves", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 601 + } + }, + "fallback": "0x00", + "docs": [ + " Named reserves on some account balances.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Holds", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 604 + } + }, + "fallback": "0x00", + "docs": [ + " Holds on account balances." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 622 + } + }, + "fallback": "0x00", + "docs": [ + " Freeze locks on account balances." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 167, + "deprecationInfo": {} + }, + "events": { + "type": 36, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "ExistentialDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO!", + "", + " If you *really* need it to be zero, you can enable the feature `insecure_zero_ed` for", + " this pallet. However, you do so at your own risk: this will open up a major DoS vector.", + " In case you have multiple sources of provider references, you may also get unexpected", + " behaviour if you set this to zero.", + "", + " Bottom line: Do yourself a favour and make it at least one!" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxLocks", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of locks that should exist on an account.", + " Not strictly enforced, but used for weight estimation.", + "", + " Use of locks is deprecated in favour of freezes. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxReserves", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of named reserves that can exist on an account.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxFreezes", + "type": 4, + "value": "0x02000000", + "docs": [ + " The maximum number of individual freeze locks that can exist on an account at any time." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 628, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeHoldReason", + "type": 606, + "docs": [ + " The overarching hold reason." + ] + }, + { + "name": "Balance", + "type": 6, + "docs": [ + " The balance of an account." + ] + }, + { + "name": "ReserveIdentifier", + "type": 287, + "docs": [ + " The ID type for reserves.", + "", + " Use of reserves is deprecated in favour of holds. See `https://github.com/pezkuwichain/bizinikiwi/pull/12951/`" + ] + }, + { + "name": "FreezeIdentifier", + "type": 624, + "docs": [ + " The ID type for freezes." + ] + } + ], + "viewFunctions": [], + "index": 6, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "TransactionPayment", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": 72 + }, + "fallback": "0x000064a7b3b6e00d0000000000000000", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 629 + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": { + "type": 38, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "OperationalFeeMultiplier", + "type": 2, + "value": "0x05", + "docs": [ + " A fee multiplier for `Operational` extrinsics to compute \"virtual tip\" to boost their", + " `priority`", + "", + " This value is multiplied by the `final_fee` to obtain a \"virtual tip\" that is later", + " added to a tip component in regular `priority` calculations.", + " It means that a `Normal` transaction can front-run a similarly-sized `Operational`", + " extrinsic (with no tip), by including a tip value greater than the virtual tip.", + "", + " ```rust,ignore", + " // For `Normal`", + " let priority = priority_calc(tip);", + "", + " // For `Operational`", + " let virtual_tip = (inclusion_fee + tip) * OperationalFeeMultiplier;", + " let priority = priority_calc(tip + virtual_tip);", + " ```", + "", + " Note that since we use `final_fee` the multiplier applies also to the regular `tip`", + " sent with the transaction. So, not only does the transaction get a priority bump based", + " on the `inclusion_fee`, but we also amplify the impact of tips applied to `Operational`", + " transactions." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 7, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetConversionTxPayment", + "storage": null, + "calls": null, + "events": { + "type": 39, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 9, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ElectionProviderMultiPhase", + "storage": { + "prefix": "ElectionProviderMultiPhase", + "items": [ + { + "name": "Round", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x01000000", + "docs": [ + " Internal counter for the number of rounds.", + "", + " This is useful for de-duplication of transactions submitted to the pool, and general", + " diagnostics of the pallet.", + "", + " This is merely incremented once per every time that an upstream `elect` is called." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentPhase", + "modifier": "Default", + "type": { + "plain": 45 + }, + "fallback": "0x00", + "docs": [ + " Current phase." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "QueuedSolution", + "modifier": "Optional", + "type": { + "plain": 630 + }, + "fallback": "0x00", + "docs": [ + " Current best solution, signed or unsigned, queued to be returned upon `elect`.", + "", + " Always sorted by score." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Snapshot", + "modifier": "Optional", + "type": { + "plain": 637 + }, + "fallback": "0x00", + "docs": [ + " Snapshot data of the round.", + "", + " This is created at the beginning of the signed phase and cleared upon calling `elect`.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DesiredTargets", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Desired number of targets to elect for this round.", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SnapshotMetadata", + "modifier": "Optional", + "type": { + "plain": 223 + }, + "fallback": "0x00", + "docs": [ + " The metadata of the [`RoundSnapshot`]", + "", + " Only exists when [`Snapshot`] is present.", + " Note: This storage type must only be mutated through [`SnapshotWrapper`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedSubmissionNextIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next index to be assigned to an incoming signed submission.", + "", + " Every accepted submission is assigned a unique index; that index is bound to that particular", + " submission for the duration of the election. On election finalization, the next index is", + " reset to 0.", + "", + " We can't just use `SignedSubmissionIndices.len()`, because that's a bounded set; past its", + " capacity, it will simply saturate. We can't just iterate over `SignedSubmissionsMap`,", + " because iteration is slow. Instead, we store the value here." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedSubmissionIndices", + "modifier": "Default", + "type": { + "plain": 641 + }, + "fallback": "0x00", + "docs": [ + " A sorted, bounded vector of `(score, block_number, index)`, where each `index` points to a", + " value in `SignedSubmissions`.", + "", + " We never need to process more than a single signed submission at a time. Signed submissions", + " can be quite large, so we're willing to pay the cost of multiple database accesses to access", + " them one at a time instead of reading and decoding all of them at once." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedSubmissionsMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 644 + } + }, + "fallback": "0x00", + "docs": [ + " Unchecked, signed solutions.", + "", + " Together with `SubmissionIndices`, this stores a bounded set of `SignedSubmissions` while", + " allowing us to keep only a single one in memory at a time.", + "", + " Twox note: the key of the map is an auto-incrementing index which users cannot inspect or", + " affect; we shouldn't need a cryptographically secure hasher." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinimumUntrustedScore", + "modifier": "Optional", + "type": { + "plain": 44 + }, + "fallback": "0x00", + "docs": [ + " The minimum score that each 'untrusted' solution must attain in order to be considered", + " feasible.", + "", + " Can be set via `set_minimum_untrusted_score`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 170, + "deprecationInfo": {} + }, + "events": { + "type": 41, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "BetterSignedThreshold", + "type": 49, + "value": "0x00000000", + "docs": [ + " The minimum amount of improvement to the solution score that defines a solution as", + " \"better\" in the Signed phase." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "OffchainRepeat", + "type": 4, + "value": "0x05000000", + "docs": [ + " The repeat threshold of the offchain worker.", + "", + " For example, if it is 5, that means that at least 5 blocks will elapse between attempts", + " to submit the worker's solution." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinerTxPriority", + "type": 12, + "value": "0xfeffffffffffff7f", + "docs": [ + " The priority of the unsigned transaction submitted in the unsigned-phase" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedMaxSubmissions", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Maximum number of signed submissions that can be queued.", + "", + " It is best to avoid adjusting this during an election, as it impacts downstream data", + " structures. In particular, `SignedSubmissionIndices` is bounded on this value. If you", + " update this value during an election, you _must_ ensure that", + " `SignedSubmissionIndices.len()` is less than or equal to the new value. Otherwise,", + " attempts to submit new solutions may cause a runtime panic." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedMaxWeight", + "type": 10, + "value": "0x0b8887dd8d2e011366666666666666a6", + "docs": [ + " Maximum weight of a signed solution.", + "", + " If [`Config::MinerConfig`] is being implemented to submit signed solutions (outside of", + " this pallet), then [`MinerConfig::solution_weight`] is used to compare against", + " this value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedMaxRefunds", + "type": 4, + "value": "0x03000000", + "docs": [ + " The maximum amount of unchecked solutions to refund the call fee for." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedRewardBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Base reward for a signed solution" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedDepositByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " Per-byte deposit for a signed solution." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedDepositWeight", + "type": 6, + "value": "0x00000000000000000000000000000000", + "docs": [ + " Per-weight deposit for a signed solution." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxWinners", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of winners that an election supports.", + "", + " Note: This must always be greater or equal to `T::DataProvider::desired_targets()`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxBackersPerWinner", + "type": 4, + "value": "0x409c0000", + "docs": [ + " Maximum number of voters that can support a winner in an election solution.", + "", + " This is needed to ensure election computation is bounded." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinerMaxLength", + "type": 4, + "value": "0x00003600", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinerMaxWeight", + "type": 10, + "value": "0x0b8887dd8d2e011366666666666666a6", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinerMaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinerMaxWinners", + "type": 4, + "value": "0xe8030000", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 645, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 10, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of active validators." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinNominatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a nominator." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinValidatorBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active bond to become and maintain the role of a validator." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinimumActiveStake", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The minimum active nominator stake of the last successful election." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinCommission", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00000000", + "docs": [ + " The minimum amount of commission that validators can set.", + "", + " If set to `0`, no limit exists." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 646 + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking.", + "", + " Note: All the reads and mutations to this storage *MUST* be done through the methods exposed", + " by [`StakingLedger`] to ensure data and lock consistency." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Payee", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 48 + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 51 + } + }, + "fallback": "0x0000", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForValidators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxValidatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum validator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 648 + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to their nomination preferences, namely the validators that", + " they wish to support.", + "", + " Note that the keys of this storage map might become non-decodable in case the", + " account's [`NominationsQuota::MaxNominations`] configuration is decreased.", + " In this rare case, these nominators", + " are still existent in storage, their key is correct and retrievable (i.e. `contains_key`", + " indicates that they exist), but their value cannot be decoded. Therefore, the non-decodable", + " nominators will effectively not-exist, until they re-submit their preferences such that it", + " is within the bounds of the newly set `Config::MaxNominations`.", + "", + " This implies that `::iter_keys().count()` and `::iter().count()` might return different", + " values for this map. Moreover, the main `::count()` is aligned with the former, namely the", + " number of keys that exist.", + "", + " Lastly, if any of the nominators become non-decodable, they can be chilled immediately via", + " [`Call::chill_other`] dispatchable by anyone.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForNominators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VirtualStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " Stakers whose funds are managed by other pallets.", + "", + " This pallet does not apply any locks on them, therefore they are only virtually bonded. They", + " are expected to be keyless accounts and hence should not be allowed to mutate their ledger", + " directly via this pallet. Instead, these accounts are managed by other pallets and accessed", + " via low level apis. We keep track of them to do minimal integrity checks." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForVirtualStakers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxNominatorsCount", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The maximum nominator count before we stop allowing new validators to join.", + "", + " When this value is not set, no limits are enforced." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentEra", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The current era index.", + "", + " This is the latest planned era, depending on how the Session pallet queues the validator", + " set, it might be active or not." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ActiveEra", + "modifier": "Optional", + "type": { + "plain": 649 + }, + "fallback": "0x00", + "docs": [ + " The active era information, it holds index and start.", + "", + " The active era is the era being currently rewarded. Validator set of this era must be", + " equal to [`SessionInterface::validators`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasStartSessionIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The session index at which the era start for the last [`Config::HistoryDepth`] eras.", + "", + " Note: This tracks the starting session (i.e. session index when era start being active)", + " for the eras in `[CurrentEra - HISTORY_DEPTH, CurrentEra]`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasStakers", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 652 + } + }, + "fallback": "0x000000", + "docs": [ + " Exposure of validator at era.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasStakersOverview", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 655 + } + }, + "fallback": "0x00", + "docs": [ + " Summary of validator exposure at a given era.", + "", + " This contains the total stake in support of the validator and their own stake. In addition,", + " it can also be used to get the number of nominators backing this validator and the number of", + " exposure pages they are divided into. The page count is useful to determine the number of", + " pages of rewards that needs to be claimed.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + " Should only be accessed through `EraInfo`.", + "", + " Is it removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty overview is returned." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasStakersClipped", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 652 + } + }, + "fallback": "0x000000", + "docs": [ + " Clipped Exposure of validator at era.", + "", + " Note: This is deprecated, should be used as read-only and will be removed in the future.", + " New `Exposure`s are stored in a paged manner in `ErasStakersPaged` instead.", + "", + " This is similar to [`ErasStakers`] but number of nominators exposed is reduced to the", + " `T::MaxExposurePageSize` biggest stakers.", + " (Note: the field `total` and `own` of the exposure remains unchanged).", + " This is used to limit the i/o cost for the nominator payout.", + "", + " This is keyed fist by the era index to allow bulk deletion and then the stash account.", + "", + " It is removed after [`Config::HistoryDepth`] eras.", + " If stakers hasn't been set or has been removed then empty exposure is returned.", + "", + " Note: Deprecated since v14. Use `EraInfo` instead to work with exposures." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasStakersPaged", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat", + "Twox64Concat" + ], + "key": 656, + "value": 657 + } + }, + "fallback": "0x00", + "docs": [ + " Paginated exposure of a validator at given era.", + "", + " This is keyed first by the era index to allow bulk deletion, then stash account and finally", + " the page. Should only be accessed through `EraInfo`.", + "", + " This is cleared after [`Config::HistoryDepth`] eras." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ClaimedRewards", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [ + " History of claimed paged rewards by era and validator.", + "", + " This is keyed by era and validator stash which maps to the set of page indexes which have", + " been claimed.", + "", + " It is removed after [`Config::HistoryDepth`] eras." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasValidatorPrefs", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 51 + } + }, + "fallback": "0x0000", + "docs": [ + " Similar to `ErasStakers`, this holds the preferences of validators.", + "", + " This is keyed first by the era index to allow bulk deletion and then the stash account.", + "", + " Is it removed after [`Config::HistoryDepth`] eras." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasValidatorReward", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The total validator era payout for the last [`Config::HistoryDepth`] eras.", + "", + " Eras that haven't finished yet or has been removed doesn't have reward." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasRewardPoints", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 658 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the last [`Config::HistoryDepth`] eras.", + " If reward hasn't been set or has been removed then 0 reward is returned." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasTotalStake", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total amount staked for the last [`Config::HistoryDepth`] eras.", + " If total hasn't been set or has been removed then 0 stake is returned." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": 53 + }, + "fallback": "0x00", + "docs": [ + " Mode of era forcing." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxStakedRewards", + "modifier": "Optional", + "type": { + "plain": 230 + }, + "fallback": "0x00", + "docs": [ + " Maximum staked rewards, i.e. the percentage of the era inflation that", + " is used for stake rewards.", + " See [Era payout](./index.html#era-payout)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": 49 + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 662 + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": 553 + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era.", + "", + " Must contains information for eras for the range:", + " `[active_era - bounding_duration; active_era]`" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 664 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 665 + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 661, + "value": 666 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentPlannedSession", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The last planned session scheduled by the session pallet.", + "", + " This is basically in sync with the call to [`pallet_session::SessionManager::new_session`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChillThreshold", + "modifier": "Optional", + "type": { + "plain": 230 + }, + "fallback": "0x00", + "docs": [ + " The threshold for when users can start calling `chill_other` for other validators /", + " nominators. The threshold is compared to the actual number of validators / nominators", + " (`CountFor*`) in the system compared to the configured max (`Max*Count`)." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 228, + "deprecationInfo": {} + }, + "events": { + "type": 47, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "HistoryDepth", + "type": 4, + "value": "0x54000000", + "docs": [ + " Number of eras to keep in history.", + "", + " Following information is kept for eras in `[current_era -", + " HistoryDepth, current_era]`: `ErasStakers`, `ErasStakersClipped`,", + " `ErasValidatorPrefs`, `ErasValidatorReward`, `ErasRewardPoints`,", + " `ErasTotalStake`, `ErasStartSessionIndex`, `ClaimedRewards`, `ErasStakersPaged`,", + " `ErasStakersOverview`.", + "", + " Must be more than the number of eras delayed by session.", + " I.e. active era must always be in history. I.e. `active_era >", + " current_era - history_depth` must be guaranteed.", + "", + " If migrating an existing pallet from storage value to config value,", + " this should be set to same value or greater as in storage.", + "", + " Note: `HistoryDepth` is used as the upper bound for the `BoundedVec`", + " item `StakingLedger.legacy_claimed_rewards`. Setting this value lower than", + " the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a migration.", + " The test `reducing_history_depth_abrupt` shows this effect." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SessionsPerEra", + "type": 4, + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BondingDuration", + "type": 4, + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SlashDeferDuration", + "type": 4, + "value": "0xa8000000", + "docs": [ + " Number of eras that slashes are deferred by, after computation.", + "", + " This should be less than the bonding duration. Set to 0 if slashes", + " should be applied immediately, without opportunity for intervention." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxExposurePageSize", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum size of each `T::ExposurePage`.", + "", + " An `ExposurePage` is weakly bounded to a maximum of `MaxExposurePageSize`", + " nominators.", + "", + " For older non-paged exposure, a reward payout was restricted to the top", + " `MaxExposurePageSize` nominators. This is to limit the i/o cost for the", + " nominator payout.", + "", + " Note: `MaxExposurePageSize` is used to bound `ClaimedRewards` and is unsafe to reduce", + " without handling it in a migration." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxValidatorSet", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The absolute maximum of winner validators this pallet should return." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxUnlockingChunks", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of `unlocking` chunks a [`StakingLedger`] can", + " have. Effectively determines how many unique eras a staker may be", + " unbonding in.", + "", + " Note: `MaxUnlockingChunks` is used as the upper bound for the", + " `BoundedVec` item `StakingLedger.unlocking`. Setting this value", + " lower than the existing value can lead to inconsistencies in the", + " `StakingLedger` and will need to be handled properly in a runtime", + " migration. The test `reducing_max_unlocking_chunks_abrupt` shows", + " this effect." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 667, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "CurrencyBalance", + "type": 6, + "docs": [ + " Just the `Currency::Balance` type; we have this item to allow us to constrain it to", + " `From`." + ] + } + ], + "viewFunctions": [], + "index": 11, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": 668 + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": 670 + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The vec is always kept sorted so that we can find whether a given validator is", + " disabled using binary search. It gets cleared when `on_session_ending` returns", + " a new set of identities." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 242 + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 673, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The key is the `KeyTypeId` + the encoded key." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 241, + "deprecationInfo": {} + }, + "events": { + "type": 54, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 675, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "ValidatorId", + "type": 0, + "docs": [ + " A stable ID for a validator." + ] + }, + { + "name": "Keys", + "type": 242, + "docs": [ + " The keys." + ] + } + ], + "viewFunctions": [], + "index": 12, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": 676 + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 679 + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit.", + "", + " TWOX-NOTE: Safe, as increasing integer keys are safe." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LowestUnbaked", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The lowest referendum index representing an unbaked referendum. Equal to", + " `ReferendumCount` if there isn't a unbaked referendum." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 681 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum.", + "", + " TWOX-NOTE: SAFE as indexes are not under an attacker’s control." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VotingOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 684 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All votes for a particular voter. We store the balance for the number of votes that we", + " have recorded. The second item is the total amount of delegations, that will be added.", + "", + " TWOX-NOTE: SAFE as `AccountId`s are crypto hashes anyway." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": 690 + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 691 + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 59, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " General information concerning any proposal or referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 247, + "deprecationInfo": {} + }, + "events": { + "type": 55, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "EnactmentPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case", + " where they are on the losing side of a vote." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LaunchPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinimumDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InstantAllowed", + "type": 8, + "value": "0x01", + "docs": [ + " Indicator for whether an emergency origin is even allowed to happen. Some chains may", + " want to set this permanently to `false`, others may want to condition it on things such", + " as an upgrade having happened recently." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "FastTrackVotingPeriod", + "type": 4, + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for a fast-track referendum." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CooloffPeriod", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxVotes", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of votes for an account.", + "", + " Also used to compute weight, an overly big value can", + " lead to extrinsic with very big weight: see `delegate` for instance." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxProposals", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of public proposals that can exist at any time." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxDeposits", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of deposits a public proposal may have at any time." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxBlacklisted", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of items which can be blacklisted." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 692, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 13, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Council", + "storage": { + "prefix": "Council", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 693 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 141 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CostOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 694 + } + }, + "fallback": "0x00", + "docs": [ + " Consideration cost created for publishing and storing a proposal.", + "", + " Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if", + " the proposal count at the time of creation was below threshold N)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 696 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 250, + "deprecationInfo": {} + }, + "events": { + "type": 60, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 697, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Proposal", + "type": 141, + "docs": [ + " The runtime call dispatch type." + ] + } + ], + "viewFunctions": [], + "index": 14, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "TechnicalCommittee", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 698 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 141 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CostOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 80 + } + }, + "fallback": "0x00", + "docs": [ + " Consideration cost created for publishing and storing a proposal.", + "", + " Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if", + " the proposal count at the time of creation was below threshold N)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 696 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 251, + "deprecationInfo": {} + }, + "events": { + "type": 61, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 699, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Proposal", + "type": 141, + "docs": [ + " The runtime call dispatch type." + ] + } + ], + "viewFunctions": [], + "index": 15, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Elections", + "storage": { + "prefix": "Elections", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 700 + }, + "fallback": "0x00", + "docs": [ + " The current elected members.", + "", + " Invariant: Always sorted based on account id." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": 700 + }, + "fallback": "0x00", + "docs": [ + " The current reserved runners-up.", + "", + " Invariant: Always sorted based on rank (worse to best). Upon removal of a member, the", + " last (i.e. _best_) runner-up will be replaced." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": 63 + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. A current member or runner-up can never enter this vector", + " and is always implicitly assumed to be a candidate.", + "", + " Second element is the deposit.", + "", + " Invariant: Always sorted based on account id." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Voting", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 702 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Votes and locked stake of a particular voter.", + "", + " TWOX-NOTE: SAFE as `AccountId` is a crypto hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 252, + "deprecationInfo": {} + }, + "events": { + "type": 62, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 287, + "value": "0x706872656c656374", + "docs": [ + " Identifier for the elections-phragmen pallet's lock" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CandidacyBond", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " How much should be locked up in order to submit one's candidacy." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VotingBondBase", + "type": 6, + "value": "0x00f0436de36a01000000000000000000", + "docs": [ + " Base deposit associated with voting.", + "", + " This should be sensibly high to economically ensure the pallet cannot be attacked by", + " creating a gigantic number of votes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VotingBondFactor", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of bond that need to be locked for each vote (32 bytes)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DesiredMembers", + "type": 4, + "value": "0x0d000000", + "docs": [ + " Number of members to elect." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DesiredRunnersUp", + "type": 4, + "value": "0x07000000", + "docs": [ + " Number of runners_up to keep." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TermDuration", + "type": 4, + "value": "0x80130300", + "docs": [ + " How long each seat is kept. This defines the next block number at which an election", + " round will happen. If set to zero, no elections are ever triggered and the module will", + " be in passive mode." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxCandidates", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum number of candidates in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When this limit is reached no more candidates are accepted in the election." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxVoters", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum number of voters to allow in a phragmen election.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`.", + "", + " When the limit is reached the new voters are ignored." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxVotesPerVoter", + "type": 4, + "value": "0x10000000", + "docs": [ + " Maximum numbers of votes per voter.", + "", + " Warning: This impacts the size of the election which is run onchain. Chose wisely, and", + " consider how it will impact `T::WeightInfo::election_phragmen`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 703, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 16, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "TechnicalMembership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 704 + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current prime member, if one exists." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 254, + "deprecationInfo": {} + }, + "events": { + "type": 65, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 705, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 17, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Grandpa", + "storage": { + "prefix": "Grandpa", + "items": [ + { + "name": "State", + "modifier": "Default", + "type": { + "plain": 706 + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": 707 + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": 93 + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and GRANDPA set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `SetId` is not under user control." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 708 + }, + "fallback": "0x00", + "docs": [ + " The current list of authorities." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 255, + "deprecationInfo": {} + }, + "events": { + "type": 66, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max Authorities in use" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum number of nominators for each validator." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xc00f000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 709, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "KeyOwnerProof", + "type": 159, + "docs": [ + " The proof of key ownership, used for validating equivocation reports", + " The proof include the session index and validator count of the", + " session at which the equivocation occurred." + ] + } + ], + "viewFunctions": [], + "index": 18, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Number of proposals that have been made." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 710 + } + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposals that have been made." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Deactivated", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount which has been reported as inactive to Currency." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": 711 + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " Proposal indices that have been approved but not yet awarded." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SpendCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The count of spends that have been made." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Spends", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 712 + } + }, + "fallback": "0x00", + "docs": [ + " Spends that have been approved and being processed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LastSpendPeriod", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The blocknumber for the last triggered spend period." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 266, + "deprecationInfo": { + "3": { + "deprecated": { + "note": "The `spend_local` call will be removed by May 2025. Migrate to the new flow and use the `spend` call.", + "since": null + } + }, + "4": { + "deprecated": { + "note": "The `remove_approval` call will be removed by May 2025. It associated with the deprecated `spend_local` call.", + "since": null + } + } + } + }, + "events": { + "type": 70, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "SpendPeriod", + "type": 4, + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Burn", + "type": 516, + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PalletId", + "type": 714, + "value": "0x70792f7472737279", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxApprovals", + "type": 4, + "value": "0x64000000", + "docs": [ + " DEPRECATED: associated with `spend_local` call and will be removed in May 2025.", + " Refer to for migration to `spend`.", + "", + " The maximum number of approvals that can wait in the spending queue.", + "", + " NOTE: This parameter is also used within the Bounties Pallet extension if enabled." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The period during which an approved treasury spend has to be claimed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "pot_account", + "type": 0, + "value": "0x6d6f646c70792f74727372790000000000000000000000000000000000000000", + "docs": [ + " Gets this pallet's derived pot account." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 715, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "AssetKind", + "type": 40, + "docs": [ + " Type parameter representing the asset kinds to be spent from the treasury." + ] + }, + { + "name": "Beneficiary", + "type": 0, + "docs": [ + " Type parameter used to identify the beneficiaries eligible to receive treasury spends." + ] + } + ], + "viewFunctions": [], + "index": 19, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetRate", + "storage": { + "prefix": "AssetRate", + "items": [ + { + "name": "ConversionRateToNative", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 40, + "value": 72 + } + }, + "fallback": "0x00", + "docs": [ + " Maps an asset to its fixed point representation in the native balance.", + "", + " E.g. `native_amount = asset_amount * ConversionRateToNative::::get(asset_kind)`" + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 267, + "deprecationInfo": {} + }, + "events": { + "type": 71, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 716, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "AssetKind", + "type": 40, + "docs": [ + " The type for asset kinds for which the conversion rate to native balance is set." + ] + } + ], + "viewFunctions": [], + "index": 20, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contracts", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 717 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CodeInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 718 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code info." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Nonce", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " This is a **monotonic** counter incremented on contract instantiation.", + "", + " This is used in order to generate unique trie ids for contracts.", + " The trie id of a new contract is calculated from hash(account_id, nonce).", + " The nonce is required because otherwise the following sequence would lead to", + " a possible collision of storage:", + "", + " 1. Create a new contract.", + " 2. Terminate the contract.", + " 3. Immediately recreate the contract with the same account_id.", + "", + " This is bad because the contents of a trie are deleted lazily and there might be", + " storage of the old instantiation still in it when the new contract is created. Please", + " note that we can't replace the counter by the block number because the sequence above", + " can happen in the same block. We also can't keep the account counter in memory only", + " because storage is the only way to communicate across different extrinsics in the", + " same block.", + "", + " # Note", + "", + " Do not use it to determine the number of contracts. It won't be decremented if", + " a contract is destroyed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 719 + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DeletionQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 113 + } + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_idle`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DeletionQueueCounter", + "modifier": "Default", + "type": { + "plain": 724 + }, + "fallback": "0x0000000000000000", + "docs": [ + " A pair of monotonic counters used to track the latest contract marked for deletion", + " and the latest deleted contract in queue." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MigrationInProgress", + "modifier": "Optional", + "type": { + "plain": 725 + }, + "fallback": "0x00", + "docs": [ + " A migration can span across multiple blocks. This storage defines a cursor to track the", + " progress of the migration, enabling us to resume from the last completed position." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 268, + "deprecationInfo": { + "0": { + "deprecated": { + "note": "1D weight is used in this extrinsic, please migrate to `call`", + "since": null + } + }, + "1": { + "deprecated": { + "note": "1D weight is used in this extrinsic, please migrate to `instantiate_with_code`", + "since": null + } + }, + "2": { + "deprecated": { + "note": "1D weight is used in this extrinsic, please migrate to `instantiate`", + "since": null + } + } + } + }, + "events": { + "type": 73, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "Schedule", + "type": 726, + "value": "0x04000000100000002000000000400000000000080000002060ea000000000000eb040000", + "docs": [ + " Cost schedule and limits." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DefaultDepositLimit", + "type": 6, + "value": "0x0000c0afbc4f86570000000000000000", + "docs": [ + " Fallback value to limit the storage deposit if it's not being set by the caller." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositPerItem", + "type": 6, + "value": "0x00f0ab75a40d00000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " Changing this value for an existing chain might need a storage migration." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CodeHashLockupDepositPercent", + "type": 49, + "value": "0x00a3e111", + "docs": [ + " The percentage of the storage deposit that should be held for using a code hash.", + " Instantiating a contract, or calling [`chain_extension::Ext::lock_delegate_dependency`]", + " protects the code from being removed. In order to prevent abuse these actions are", + " protected with a percentage of the code deposit." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxCodeLen", + "type": 4, + "value": "0x00ec0100", + "docs": [ + " The maximum length of a contract code in bytes.", + "", + " The value should be chosen carefully taking into the account the overall memory limit", + " your runtime has, as well as the [maximum allowed callstack", + " depth](#associatedtype.CallStack). Look into the `integrity_test()` for some insights." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxStorageKeyLen", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum allowable length in bytes for storage keys." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxTransientStorageSize", + "type": 4, + "value": "0x00001000", + "docs": [ + " The maximum size of the transient storage in bytes.", + " This includes keys, values, and previous entries used for storage rollback." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxDelegateDependencies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum number of delegate_dependencies that a contract can lock with", + " [`chain_extension::Ext::lock_delegate_dependency`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnsafeUnstableInterface", + "type": 8, + "value": "0x00", + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxDebugBufferLen", + "type": 4, + "value": "0x00002000", + "docs": [ + " The maximum length of the debug buffer in bytes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Environment", + "type": 729, + "value": "0x", + "docs": [ + " Type that bundles together all the runtime configurable interface types.", + "", + " This is not a real config. We just mention the type here as constant so that", + " its type appears in the metadata. Only valid value is `()`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ApiVersion", + "type": 736, + "value": "0x0400", + "docs": [ + " The version of the HostFn APIs that are available in the runtime.", + "", + " Only valid value is `()`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 737, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 21, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The `AccountId` of the sudo key." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 271, + "deprecationInfo": {} + }, + "events": { + "type": 76, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 738, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " A sudo-able call." + ] + } + ], + "viewFunctions": [], + "index": 22, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "HeartbeatAfter", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The block number after which it's ok to send heartbeats in the current", + " session.", + "", + " At the beginning of each session we set this to a value that should fall", + " roughly in the middle of the session duration. The idea is to first wait for", + " the validators to produce a block in the current session, so that the", + " heartbeat later on will not be necessary.", + "", + " This value will only be used as a fallback if we fail to get a proper session", + " progress estimate from `NextSessionRotation`, as those estimates should be", + " more accurate then the value we calculate for `HeartbeatAfter`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 739 + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 93, + "value": 8 + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `SessionIndex` and `AuthIndex`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `ValidatorId` to the", + " number of blocks authored by the given authority." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 272, + "deprecationInfo": {} + }, + "events": { + "type": 77, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "UnsignedPriority", + "type": 12, + "value": "0xffffffffffffffff", + "docs": [ + " A configuration for base priority of unsigned transactions.", + "", + " This is exposed so that it can be tuned for particular runtime, when", + " multiple pallets send unsigned transactions." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 741, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "AuthorityId", + "type": 78, + "docs": [ + " The identifier type for an authority." + ] + } + ], + "viewFunctions": [], + "index": 23, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AuthorityDiscovery", + "storage": { + "prefix": "AuthorityDiscovery", + "items": [ + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": 742 + }, + "fallback": "0x00", + "docs": [ + " Keys of the current authority set." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextKeys", + "modifier": "Default", + "type": { + "plain": 742 + }, + "fallback": "0x00", + "docs": [ + " Keys of the next authority set." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 24, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 744 + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 745, + "value": 328 + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": { + "type": 81, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [ + { + "name": "IdentificationTuple", + "type": 80, + "docs": [ + " Full identification of the validator." + ] + } + ], + "viewFunctions": [], + "index": 25, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Historical", + "storage": { + "prefix": "Historical", + "items": [ + { + "name": "HistoricalSessions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 746 + } + }, + "fallback": "0x00", + "docs": [ + " Mapping from historical session indices to session-data root hash and validator count." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StoredRange", + "modifier": "Optional", + "type": { + "plain": 93 + }, + "fallback": "0x00", + "docs": [ + " The range of historical sessions we store. [first, last)" + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": { + "type": 83, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [ + { + "name": "FullIdentification", + "type": 34, + "docs": [ + " Full identification of the validator." + ] + } + ], + "viewFunctions": [], + "index": 26, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": 747 + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 27, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Identity", + "storage": { + "prefix": "Identity", + "items": [ + { + "name": "IdentityOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 748 + } + }, + "fallback": "0x00", + "docs": [ + " Information that is pertinent to identify the entity behind an account. First item is the", + " registration, second is the account's primary username.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UsernameOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 85 + } + }, + "fallback": "0x00", + "docs": [ + " Identifies the primary username of an account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SuperOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 312 + } + }, + "fallback": "0x00", + "docs": [ + " The super-identity of an alternative \"sub\" identity together with its name, within that", + " context. If the account is not some other account's sub-identity, then just `None`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SubsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 752 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Alternative \"sub\" identities of this account.", + "", + " The first item is the deposit, the second is a vector of the accounts.", + "", + " TWOX-NOTE: OK ― `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Registrars", + "modifier": "Default", + "type": { + "plain": 754 + }, + "fallback": "0x00", + "docs": [ + " The set of registrars. Not expected to get very big as can only be added through a", + " special origin (likely a council motion).", + "", + " The index into this can be cast to `RegistrarIndex` to get a valid value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AuthorityOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 758, + "value": 759 + } + }, + "fallback": "0x00", + "docs": [ + " A map of the accounts who are authorized to grant usernames." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UsernameInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 85, + "value": 760 + } + }, + "fallback": "0x00", + "docs": [ + " Reverse lookup from `username` to the `AccountId` that has registered it and the provider of", + " the username. The `owner` value should be a key in the `UsernameOf` map, but it may not if", + " the user has cleared their username or it has been removed.", + "", + " Multiple usernames may map to the same `AccountId`, but `UsernameOf` will only map to one", + " primary username." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PendingUsernames", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 85, + "value": 762 + } + }, + "fallback": "0x00", + "docs": [ + " Usernames that an authority has granted, but that the account controller has not confirmed", + " that they want it. Used primarily in cases where the `AccountId` cannot provide a signature", + " because they are a pure proxy, multisig, etc. In order to confirm it, they should call", + " [accept_username](`Call::accept_username`).", + "", + " First tuple item is the account and second is the acceptance deadline." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnbindingUsernames", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 85, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Usernames for which the authority that granted them has started the removal process by", + " unbinding them. Each unbinding username maps to its grace period expiry, which is the first", + " block in which the username could be deleted through a", + " [remove_username](`Call::remove_username`) call." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 275, + "deprecationInfo": {} + }, + "events": { + "type": 84, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "BasicDeposit", + "type": 6, + "value": "0x0050702f696a00000000000000000000", + "docs": [ + " The amount held on deposit for a registered identity." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ByteDeposit", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount held on deposit per encoded byte for a registered identity." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UsernameDeposit", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount held on deposit per registered username. This value should change only in", + " runtime upgrades with proper migration of existing deposits." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SubAccountDeposit", + "type": 6, + "value": "0x0080f420e6b500000000000000000000", + "docs": [ + " The amount held on deposit for a registered subaccount. This should account for the fact", + " that one storage item's value will increase by the size of an account ID, and there will", + " be another trie item whose value is the size of an account ID plus 32 bytes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxSubAccounts", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of sub-accounts allowed per identified account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxRegistrars", + "type": 4, + "value": "0x14000000", + "docs": [ + " Maximum number of registrars allowed in the system. Needed to bound the complexity", + " of, e.g., updating judgements." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PendingUsernameExpiration", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks within which a username grant must be accepted." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UsernameGracePeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The number of blocks that must pass to enable the permanent deletion of a username by", + " its respective authority." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxSuffixLength", + "type": 4, + "value": "0x07000000", + "docs": [ + " The maximum length of a suffix." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxUsernameLength", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of a username, including its suffix and any system-added delimiters." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 763, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "OffchainSignature", + "type": 315, + "docs": [ + " Signature type for pre-authorizing usernames off-chain.", + "", + " Can verify whether an `Self::SigningPublicKey` created a signature." + ] + } + ], + "viewFunctions": [], + "index": 28, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Society", + "storage": { + "prefix": "Society", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "plain": 88 + }, + "fallback": "0x00", + "docs": [ + " The max number of members for the society at one time." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Pot", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Amount of our account balance that is specifically for the next round's bid(s)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Founder", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The first member." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The most primary from the most recently approved rank 0 members in the society." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Rules", + "modifier": "Optional", + "type": { + "plain": 13 + }, + "fallback": "0x00", + "docs": [ + " A hash of the rules of this society concerning membership. Can only be set once and", + " only by the founder." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 764 + } + }, + "fallback": "0x00", + "docs": [ + " The current members and their rank. Doesn't include `SuspendedMembers`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Payouts", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 767 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " Information regarding rank-0 payouts, past and future." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of items in `Members` currently. (Doesn't include `SuspendedMembers`.)" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MemberByIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The current items in `Members` keyed by their unique index. Keys are densely populated", + " `0..MemberCount` (does not include `MemberCount`)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SuspendedMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 764 + } + }, + "fallback": "0x00", + "docs": [ + " The set of suspended members, with their old membership record." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of rounds which have passed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Bids", + "modifier": "Default", + "type": { + "plain": 771 + }, + "fallback": "0x00", + "docs": [ + " The current bids, stored ordered by the value of the bid." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Candidates", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 775 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Skeptic", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The current skeptic." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Votes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 777, + "value": 778 + } + }, + "fallback": "0x00", + "docs": [ + " Double map from Candidate -> Voter -> (Maybe) Vote." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VoteClearCursor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 779 + } + }, + "fallback": "0x00", + "docs": [ + " Clear-cursor for Vote, map from Candidate -> (Maybe) Cursor." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextHead", + "modifier": "Optional", + "type": { + "plain": 780 + }, + "fallback": "0x00", + "docs": [ + " At the end of the claim period, this contains the most recently approved members (along with", + " their bid and round ID) who is from the most recent round with the lowest bid. They will", + " become the new `Head`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChallengeRoundCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The number of challenge rounds there have been. Used to identify stale DefenderVotes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Defending", + "modifier": "Optional", + "type": { + "plain": 781 + }, + "fallback": "0x00", + "docs": [ + " The defending member currently being challenged, along with a running tally of votes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DefenderVotes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 651, + "value": 778 + } + }, + "fallback": "0x00", + "docs": [ + " Votes for the defender, keyed by challenge round." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 317, + "deprecationInfo": {} + }, + "events": { + "type": 86, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f736f636965", + "docs": [ + " The societies's pallet id" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "GraceStrikes", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of strikes before a member gets funds slashed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PeriodSpend", + "type": 6, + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The amount of incentive paid within each period. Doesn't include VoterTip." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VotingPeriod", + "type": 4, + "value": "0x00770100", + "docs": [ + " The number of blocks on which new candidates should be voted on. Together with", + " `ClaimPeriod`, this sums to the number of blocks between candidate intake periods." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ClaimPeriod", + "type": 4, + "value": "0x00770100", + "docs": [ + " The number of blocks on which new candidates can claim their membership and be the", + " named head." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxLockDuration", + "type": 4, + "value": "0x009cda01", + "docs": [ + " The maximum duration of the payout lock." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChallengePeriod", + "type": 4, + "value": "0x80130300", + "docs": [ + " The number of blocks between membership challenges." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxPayouts", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of payouts a member may have waiting unclaimed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxBids", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The maximum number of bids at once." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 782, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 29, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Recovery", + "storage": { + "prefix": "Recovery", + "items": [ + { + "name": "Recoverable", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 783 + } + }, + "fallback": "0x00", + "docs": [ + " The set of recoverable accounts and their recovery configuration." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ActiveRecoveries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 777, + "value": 785 + } + }, + "fallback": "0x00", + "docs": [ + " Active recovery attempts.", + "", + " First account is the account to be recovered, and the second account", + " is the user trying to recover the account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The list of allowed proxy accounts.", + "", + " Map from the user who can access it to the recovered account." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 318, + "deprecationInfo": {} + }, + "events": { + "type": 89, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "ConfigDepositBase", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a recovery configuration.", + "", + " This is held for an additional storage item whose value size is", + " `2 + sizeof(BlockNumber, Balance)` bytes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "FriendDepositFactor", + "type": 6, + "value": "0x00203d88792d00000000000000000000", + "docs": [ + " The amount of currency needed per additional user when creating a recovery", + " configuration.", + "", + " This is held for adding `sizeof(AccountId)` bytes more into a pre-existing storage", + " value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxFriends", + "type": 4, + "value": "0x09000000", + "docs": [ + " The maximum amount of friends allowed in a recovery configuration.", + "", + " NOTE: The threshold programmed in this Pallet uses u16, so it does", + " not really make sense to have a limit here greater than u16::MAX.", + " But also, that is a lot more than you should probably set this value", + " to anyway..." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RecoveryDeposit", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for starting a recovery.", + "", + " This is primarily held for deterring malicious recovery attempts, and should", + " have a value large enough that a bad actor would choose not to place this", + " deposit. It also acts to fund additional storage item whose value size is", + " `sizeof(BlockNumber, Balance + T * AccountId)` bytes. Where T is a configurable", + " threshold." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 786, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + } + ], + "viewFunctions": [], + "index": 30, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Vesting", + "storage": { + "prefix": "Vesting", + "items": [ + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 787 + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": 789 + }, + "fallback": "0x00", + "docs": [ + " Storage version of the pallet.", + "", + " New networks start with latest version, as determined by the genesis build." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 320, + "deprecationInfo": {} + }, + "events": { + "type": 91, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MinVestedTransfer", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount transferred to call `vested_transfer`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxVestingSchedules", + "type": 4, + "value": "0x1c000000", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 790, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 31, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Scheduler", + "storage": { + "prefix": "Scheduler", + "items": [ + { + "name": "IncompleteSince", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Block number at which the agenda began incomplete execution." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Agenda", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 791 + } + }, + "fallback": "0x00", + "docs": [ + " Items to be executed, indexed by the block number that they should be executed on." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Retries", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 93, + "value": 795 + } + }, + "fallback": "0x00", + "docs": [ + " Retry configurations for items to be executed, indexed by task address." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Lookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 1, + "value": 93 + } + }, + "fallback": "0x00", + "docs": [ + " Lookup from a name to the block number and index of the task.", + "", + " For v3 -> v4 the previously unbounded identities are Blake2-256 hashed to form the v4", + " identities." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 322, + "deprecationInfo": {} + }, + "events": { + "type": 92, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaximumWeight", + "type": 10, + "value": "0x0b00806e87740113cccccccccccccccc", + "docs": [ + " The maximum weight that may be scheduled per block for any dispatchables." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxScheduledPerBlock", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum number of scheduled calls in the queue for a single block.", + "", + " NOTE:", + " + Dependent pallets' benchmarks might require a higher limit for the setting. Set a", + " higher limit under `runtime-benchmarks` feature." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 796, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The aggregated call type." + ] + } + ], + "viewFunctions": [], + "index": 32, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Glutton", + "storage": { + "prefix": "Glutton", + "items": [ + { + "name": "Compute", + "modifier": "Default", + "type": { + "plain": 96 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the remaining `ref_time` to consume during `on_idle`.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Storage", + "modifier": "Default", + "type": { + "plain": 96 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the remaining `proof_size` to consume during `on_idle`.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Length", + "modifier": "Default", + "type": { + "plain": 96 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The proportion of the `block length` to consume on each block.", + "", + " `1.0` is mapped to `100%`. Must be at most [`crate::RESOURCE_HARD_LIMIT`]. Setting this to", + " over `1.0` could stall the chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TrashData", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 326 + } + }, + "fallback": "0x00", + "docs": [ + " Storage map used for wasting proof size.", + "", + " It contains no meaningful data - hence the name \"Trash\". The maximal number of entries is", + " set to 65k, which is just below the next jump at 16^4. This is important to reduce the proof", + " size benchmarking overestimate. The assumption here is that we won't have more than 65k *", + " 1KiB = 65MiB of proof size wasting in practice. However, this limit is not enforced, so the", + " pallet would also work out of the box with more entries, but its benchmarked proof weight", + " would possibly be underestimated in that case." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TrashDataCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The current number of entries in `TrashData`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 324, + "deprecationInfo": {} + }, + "events": { + "type": 95, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 797, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 33, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Preimage", + "storage": { + "prefix": "Preimage", + "items": [ + { + "name": "StatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 798 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ], + "deprecationInfo": { + "deprecated": { + "note": "RequestStatusFor", + "since": null + } + } + }, + { + "name": "RequestStatusFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 800 + } + }, + "fallback": "0x00", + "docs": [ + " The request status of a given hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PreimageFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 746, + "value": 804 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 327, + "deprecationInfo": {} + }, + "events": { + "type": 97, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 805, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 34, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Proxy", + "storage": { + "prefix": "Proxy", + "items": [ + { + "name": "Proxies", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 806 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The set of account proxies. Maps the account which has delegated to the accounts", + " which are being delegated to, together with the amount held on deposit." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 810 + } + }, + "fallback": "0x0000000000000000000000000000000000", + "docs": [ + " The announcements made by the proxy (key)." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 329, + "deprecationInfo": {} + }, + "events": { + "type": 98, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "ProxyDepositBase", + "type": 6, + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a proxy.", + "", + " This is held for an additional storage item whose value size is", + " `sizeof(Balance)` bytes and whose key size is `sizeof(AccountId)` bytes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProxyDepositFactor", + "type": 6, + "value": "0x0060aa7714b400000000000000000000", + "docs": [ + " The amount of currency needed per proxy added.", + "", + " This is held for adding 32 bytes plus an instance of `ProxyType` more into a", + " pre-existing storage value. Thus, when configuring `ProxyDepositFactor` one should take", + " into account `32 + proxy_type.encode().len()` bytes of data." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxProxies", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of proxies allowed for a single account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxPending", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum amount of time-delayed announcements that are allowed to be pending." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AnnouncementDepositBase", + "type": 6, + "value": "0x00f09e544c3900000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating an announcement.", + "", + " This is held when a new storage item holding a `Balance` is created (typically 16", + " bytes)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AnnouncementDepositFactor", + "type": 6, + "value": "0x00c054ef286801000000000000000000", + "docs": [ + " The amount of currency needed per announcement made.", + "", + " This is held for adding an `AccountId`, `Hash` and `BlockNumber` (typically 68 bytes)", + " into a pre-existing storage value." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 814, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + }, + { + "name": "ProxyType", + "type": 99, + "docs": [ + " A kind of proxy; specified with the proxy and passed in to the `IsProxyable` filter.", + " The instance filter determines whether a given call may be proxied under this type.", + "", + " IMPORTANT: `Default` must be provided and MUST BE the the *most permissive* value." + ] + } + ], + "viewFunctions": [ + { + "id": "0x1809d78346727a0ef58c0fa03bafa323cbc51488d92a1aa7137b03bfb50efc17", + "name": "check_permissions", + "inputs": [ + { + "name": "call", + "type": 141 + }, + { + "name": "proxy_type", + "type": 99 + } + ], + "output": 8, + "docs": [ + " Check if a `RuntimeCall` is allowed for a given `ProxyType`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "id": "0x1809d78346727a0ef58c0fa03bafa3231714b0607d62af0a3b3b0ad2c5d55c58", + "name": "is_superset", + "inputs": [ + { + "name": "to_check", + "type": 99 + }, + { + "name": "against", + "type": 99 + } + ], + "output": 8, + "docs": [ + " Check if one `ProxyType` is a subset of another `ProxyType`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "index": 35, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Multisig", + "storage": { + "prefix": "Multisig", + "items": [ + { + "name": "Multisigs", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Blake2_128Concat" + ], + "key": 815, + "value": 816 + } + }, + "fallback": "0x00", + "docs": [ + " The set of open multisig operations." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 331, + "deprecationInfo": {} + }, + "events": { + "type": 102, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "DepositBase", + "type": 6, + "value": "0x00f01c0adbed01000000000000000000", + "docs": [ + " The base amount of currency needed to reserve for creating a multisig execution or to", + " store a dispatch call for later.", + "", + " This is held for an additional storage item whose value size is", + " `4 + sizeof((BlockNumber, Balance, AccountId))` bytes and whose key size is", + " `32 + sizeof(AccountId)` bytes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositFactor", + "type": 6, + "value": "0x0000cc7b9fae00000000000000000000", + "docs": [ + " The amount of currency needed per unit threshold when creating a multisig execution.", + "", + " This is held for adding 32 bytes more into a pre-existing storage value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxSignatories", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum amount of signatories allowed in the multisig." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 817, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + } + ], + "viewFunctions": [], + "index": 36, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Bounties", + "storage": { + "prefix": "Bounties", + "items": [ + { + "name": "BountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of bounty proposals that have been made." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Bounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 818 + } + }, + "fallback": "0x00", + "docs": [ + " Bounties that have been made." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BountyDescriptions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each bounty." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BountyApprovals", + "modifier": "Default", + "type": { + "plain": 711 + }, + "fallback": "0x00", + "docs": [ + " Bounty indices that have been approved but not yet funded." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 333, + "deprecationInfo": {} + }, + "events": { + "type": 104, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "BountyDepositBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount held on deposit for placing a bounty proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BountyDepositPayoutDelay", + "type": 4, + "value": "0x80700000", + "docs": [ + " The delay period for which a bounty beneficiary need to wait before claim the payout." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BountyUpdatePeriod", + "type": 4, + "value": "0x00270600", + "docs": [ + " The time limit for a curator to act before a bounty expires.", + "", + " The period that starts when a curator is approved, during which they must execute or", + " update the bounty via `extend_bounty_expiry`. If missed, the bounty expires, and the", + " curator may be slashed. If `BlockNumberFor::MAX`, bounties stay active indefinitely,", + " removing the need for `extend_bounty_expiry`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CuratorDepositMultiplier", + "type": 516, + "value": "0x20a10700", + "docs": [ + " The curator deposit is calculated as a percentage of the curator fee.", + "", + " This deposit has optional upper and lower bounds with `CuratorDepositMax` and", + " `CuratorDepositMin`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CuratorDepositMax", + "type": 236, + "value": "0x010000c16ff28623000000000000000000", + "docs": [ + " Maximum amount of funds that should be placed in a deposit for making a proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CuratorDepositMin", + "type": 236, + "value": "0x0100407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BountyValueMinimum", + "type": 6, + "value": "0x00406352bfc601000000000000000000", + "docs": [ + " Minimum value for a bounty." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 821, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 37, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Tips", + "storage": { + "prefix": "Tips", + "items": [ + { + "name": "Tips", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 822 + } + }, + "fallback": "0x00", + "docs": [ + " TipsMap that are not yet completed. Keyed by the hash of `(reason, who)` from the value.", + " This has the insecure enumerable hash function since the key itself is already", + " guaranteed to be a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Reasons", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 14 + } + }, + "fallback": "0x00", + "docs": [ + " Simple preimage lookup from the reason's hash to the original data. Again, has an", + " insecure enumerable hash since the key is guaranteed to be the result of a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 334, + "deprecationInfo": {} + }, + "events": { + "type": 105, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaximumReasonLength", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Maximum acceptable reason length.", + "", + " Benchmarks depend on this value, be sure to update weights file when changing this value" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DataDepositPerByte", + "type": 6, + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount held on deposit per byte within the tip report reason or bounty description." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TipCountdown", + "type": 4, + "value": "0x80700000", + "docs": [ + " The period for which a tip remains open after is has achieved threshold tippers." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TipFindersFee", + "type": 230, + "value": "0x14", + "docs": [ + " The percent of the final tip which goes to the original reporter of the tip." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TipReportDepositBase", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The non-zero amount held on deposit for placing a tip report." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxTipAmount", + "type": 6, + "value": "0x0000c52ebca2b1000000000000000000", + "docs": [ + " The maximum amount for a single tip." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 823, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 38, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Assets", + "storage": { + "prefix": "Assets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 824 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 651, + "value": 826 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 829, + "value": 830 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 831 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 335, + "deprecationInfo": {} + }, + "events": { + "type": 106, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 833, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Balance", + "type": 6, + "docs": [ + " The units in which we record balances." + ] + }, + { + "name": "AssetId", + "type": 4, + "docs": [ + " Identifier for the class of asset." + ] + }, + { + "name": "AssetIdParameter", + "type": 156, + "docs": [ + " Wrapper around `Self::AssetId` to use in dispatchable call signatures. Allows the use", + " of compact encoding in instances of the pallet, which will prevent breaking changes", + " resulting from the removal of `HasCompact` from `Self::AssetId`.", + "", + " This type includes the `From` bound, since tightly coupled pallets may", + " want to convert an `AssetId` into a parameter for calling dispatchable functions", + " directly." + ] + }, + { + "name": "Extra", + "type": 34, + "docs": [ + " Additional data to be stored with an account's asset balance." + ] + } + ], + "viewFunctions": [], + "index": 39, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PoolAssets", + "storage": { + "prefix": "PoolAssets", + "items": [ + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 824 + } + }, + "fallback": "0x00", + "docs": [ + " Details of an asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 651, + "value": 826 + } + }, + "fallback": "0x00", + "docs": [ + " The holdings of a specific account for a specific asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Approvals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 829, + "value": 830 + } + }, + "fallback": "0x00", + "docs": [ + " Approved balance transfers. First balance is the amount approved for transfer. Second", + " is the amount of `T::Currency` reserved for storing this.", + " First key is the asset ID, second key is the owner and third key is the delegate." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 831 + } + }, + "fallback": "0x0000000000000000000000000000000000000000", + "docs": [ + " Metadata of an asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The asset ID enforced for the next asset creation, if any present. Otherwise, this storage", + " item has no effect.", + "", + " This can be useful for setting up constraints for IDs of the new assets. For example, by", + " providing an initial [`NextAssetId`] and using the [`crate::AutoIncAssetId`] callback, an", + " auto-increment model can be applied to all new asset IDs.", + "", + " The initial next asset ID can be set using the [`GenesisConfig`] or the", + " [SetNextAssetId](`migration::next_asset_id::SetNextAssetId`) migration." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 336, + "deprecationInfo": {} + }, + "events": { + "type": 107, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "RemoveItemsLimit", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Max number of items to destroy per `destroy_accounts` and `destroy_approvals` call.", + "", + " Must be configured to result in a weight that makes each call fit in a block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetAccountDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved for a non-provider asset account to be", + " maintained." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your asset." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataDepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes you store in your", + " metadata." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ApprovalDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The amount of funds that must be reserved when creating a new approval." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 834, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Balance", + "type": 6, + "docs": [ + " The units in which we record balances." + ] + }, + { + "name": "AssetId", + "type": 4, + "docs": [ + " Identifier for the class of asset." + ] + }, + { + "name": "AssetIdParameter", + "type": 156, + "docs": [ + " Wrapper around `Self::AssetId` to use in dispatchable call signatures. Allows the use", + " of compact encoding in instances of the pallet, which will prevent breaking changes", + " resulting from the removal of `HasCompact` from `Self::AssetId`.", + "", + " This type includes the `From` bound, since tightly coupled pallets may", + " want to convert an `AssetId` into a parameter for calling dispatchable functions", + " directly." + ] + }, + { + "name": "Extra", + "type": 34, + "docs": [ + " Additional data to be stored with an account's asset balance." + ] + } + ], + "viewFunctions": [], + "index": 40, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Beefy", + "storage": { + "prefix": "Beefy", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": 835 + }, + "fallback": "0x00", + "docs": [ + " The current authorities set" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ValidatorSetId", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The current validator set id" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextAuthorities", + "modifier": "Default", + "type": { + "plain": 835 + }, + "fallback": "0x00", + "docs": [ + " Authorities set scheduled to be used with the next session" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from BEEFY set ID to the index of the *most recent* session for which its", + " members were responsible.", + "", + " This is only used for validating equivocation proofs. An equivocation proof must", + " contains a key-ownership proof for a given session, therefore we need a way to tie", + " together sessions and BEEFY set ids, i.e. we need to validate that a validator", + " was the owner of a given key on a given session, and what the active set ID was", + " during that session.", + "", + " TWOX-NOTE: `ValidatorSetId` is not under user control." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "GenesisBlock", + "modifier": "Default", + "type": { + "plain": 50 + }, + "fallback": "0x00", + "docs": [ + " Block number where BEEFY consensus is enabled/started.", + " By changing this (through privileged `set_new_genesis()`), BEEFY consensus is effectively", + " restarted from the newly set block number." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 337, + "deprecationInfo": {} + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The maximum number of authorities that can be added." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxNominators", + "type": 4, + "value": "0x00000000", + "docs": [ + " The maximum number of nominators for each validator." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxSetIdSessionEntries", + "type": 12, + "value": "0xc00f000000000000", + "docs": [ + " The maximum number of entries to keep in the set id to session index mapping.", + "", + " Since the `SetIdSession` map is only used for validating equivocations this", + " value should relate to the bonding duration of whatever staking system is", + " being used (if any). If equivocation handling is not enabled then this value", + " can be zero." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 837, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "BeefyId", + "type": 245, + "docs": [ + " Authority identifier type" + ] + }, + { + "name": "KeyOwnerProof", + "type": 159, + "docs": [ + " The proof of key ownership, used for validating equivocation reports", + " The proof must include the session index and validator count of the", + " session at which the equivocation occurred." + ] + } + ], + "viewFunctions": [], + "index": 41, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Mmr", + "storage": { + "prefix": "Mmr", + "items": [ + { + "name": "RootHash", + "modifier": "Default", + "type": { + "plain": 13 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Latest MMR Root hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NumberOfLeaves", + "modifier": "Default", + "type": { + "plain": 12 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current size of the MMR (number of leaves)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Nodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 12, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " Hashes of the nodes in the MMR.", + "", + " Note this collection only contains MMR peaks, the inner nodes (and leaves)", + " are pruned and only stored in the Offchain DB." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 42, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MmrLeaf", + "storage": { + "prefix": "MmrLeaf", + "items": [ + { + "name": "BeefyAuthorities", + "modifier": "Default", + "type": { + "plain": 838 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of current BEEFY authority set." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BeefyNextAuthorities", + "modifier": "Default", + "type": { + "plain": 838 + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Details of next BEEFY authority set.", + "", + " This storage entry is used as cache for calls to `update_beefy_next_authority_set`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 43, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Lottery", + "storage": { + "prefix": "Lottery", + "items": [ + { + "name": "LotteryIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Lottery", + "modifier": "Optional", + "type": { + "plain": 839 + }, + "fallback": "0x00", + "docs": [ + " The configuration for the current lottery." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Participants", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 840 + } + }, + "fallback": "0x0000000000", + "docs": [ + " Users who have purchased a ticket. (Lottery Index, Tickets Purchased)" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TicketsCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Total number of tickets sold." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Tickets", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Each ticket's owner.", + "", + " May have residual storage from previous lotteries. Use `TicketsCount` to see which ones", + " are actually valid ticket mappings." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CallIndices", + "modifier": "Default", + "type": { + "plain": 841 + }, + "fallback": "0x00", + "docs": [ + " The calls stored in this pallet to be used in an active lottery if configured", + " by `Config::ValidateCall`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 350, + "deprecationInfo": {} + }, + "events": { + "type": 108, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f6c6f74746f", + "docs": [ + " The Lottery's pallet id" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxCalls", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of calls available in a single lottery." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxGenerateRandom", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Number of time we should try to generate a random number that has no modulo bias.", + " The larger this number, the more potential computation is used for picking the winner,", + " but also the more likely that the chosen winner is done fairly." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 843, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " A dispatchable call." + ] + } + ], + "viewFunctions": [], + "index": 44, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Nis", + "storage": { + "prefix": "Nis", + "items": [ + { + "name": "QueueTotals", + "modifier": "Default", + "type": { + "plain": 844 + }, + "fallback": "0xb104000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The totals of items and balances within each queue. Saves a lot of storage reads in the", + " case of sparsely packed queues.", + "", + " The vector is indexed by duration in `Period`s, offset by one, so information on the queue", + " whose duration is one `Period` would be storage `0`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Queues", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 845 + } + }, + "fallback": "0x00", + "docs": [ + " The queues of bids. Indexed by duration (in `Period`s)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Summary", + "modifier": "Default", + "type": { + "plain": 848 + }, + "fallback": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Summary information over the general state." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Receipts", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 849 + } + }, + "fallback": "0x00", + "docs": [ + " The currently outstanding receipts, indexed according to the order of creation." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 351, + "deprecationInfo": {} + }, + "events": { + "type": 110, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f6e69732020", + "docs": [ + " The treasury's pallet id, used for deriving its sovereign account ID." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "QueueCount", + "type": 4, + "value": "0x2c010000", + "docs": [ + " Number of duration queues in total. This sets the maximum duration supported, which is", + " this value multiplied by `Period`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxQueueLen", + "type": 4, + "value": "0xe8030000", + "docs": [ + " Maximum number of items that may be in each duration queue.", + "", + " Must be larger than zero." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "FifoQueueLen", + "type": 4, + "value": "0xf4010000", + "docs": [ + " Portion of the queue which is free from ordering and just a FIFO.", + "", + " Must be no greater than `MaxQueueLen`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BasePeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The base period for the duration queues. This is the common multiple across all", + " supported freezing durations that can be bid upon." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinBid", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount of funds that may be placed in a bid. Note that this", + " does not actually limit the amount which may be represented in a receipt since bids may", + " be split up by the system.", + "", + " It should be at least big enough to ensure that there is no possible storage spam attack", + " or queue-filling attack." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinReceipt", + "type": 111, + "value": "0x0000c16ff2862300", + "docs": [ + " The minimum amount of funds which may intentionally be left remaining under a single", + " receipt." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "IntakePeriod", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The number of blocks between consecutive attempts to dequeue bids and create receipts.", + "", + " A larger value results in fewer storage hits each block, but a slower period to get to", + " the target." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxIntakeWeight", + "type": 10, + "value": "0x0700d0ed902e139999999999999919", + "docs": [ + " The maximum amount of bids that can consolidated into receipts in a single intake. A", + " larger value here means less of the block available for transactions should there be a", + " glut of bids." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ThawThrottle", + "type": 850, + "value": "0x0000d9e9ac2d780305000000", + "docs": [ + " The maximum proportion which may be thawed and the period over which it is reset." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 851, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 45, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Uniques", + "storage": { + "prefix": "Uniques", + "items": [ + { + "name": "Class", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 852 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 853, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ClassAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 661, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Asset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 854 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ClassMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 855 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InstanceMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 856 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 857, + "value": 858 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " Price of an asset instance." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CollectionMaxSupply", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the number of items a collection might have." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 353, + "deprecationInfo": {} + }, + "events": { + "type": 112, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum length of data stored on-chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x20000000", + "docs": [ + " The maximum length of an attribute key." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute value." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 860, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "CollectionId", + "type": 4, + "docs": [ + " Identifier for the collection of item." + ] + }, + { + "name": "ItemId", + "type": 4, + "docs": [ + " The type used to identify a unique item within a collection." + ] + } + ], + "viewFunctions": [], + "index": 46, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Nfts", + "storage": { + "prefix": "Nfts", + "items": [ + { + "name": "Collection", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 861 + } + }, + "fallback": "0x00", + "docs": [ + " Details of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "OwnershipAcceptance", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The collection, if any, of which an account is willing to take ownership." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Account", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 853, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The items held by any given account; set out this way so that items owned by a single", + " account can be enumerated." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CollectionAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 661, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The collections owned by any given account; set out this way so that collections owned by", + " a single account can be enumerated." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CollectionRoleOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 651, + "value": 862 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details.", + " Stores collection roles as per account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Item", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 864 + } + }, + "fallback": "0x00", + "docs": [ + " The items in existence and their ownership details." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CollectionMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 870 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemMetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 871 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata of an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Attribute", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 873, + "value": 874 + } + }, + "fallback": "0x00", + "docs": [ + " Attributes of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemPriceOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 859 + } + }, + "fallback": "0x00", + "docs": [ + " A price of an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemAttributesApprovalsOf", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 876 + } + }, + "fallback": "0x00", + "docs": [ + " Item attribute approvals." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextCollectionId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `CollectionId` that is going to be used for the next collection.", + " This gets incremented whenever a new collection is created." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PendingSwapOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 878 + } + }, + "fallback": "0x00", + "docs": [ + " Handles all the pending swaps." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CollectionConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 356 + } + }, + "fallback": "0x00", + "docs": [ + " Config of a collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemConfigOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 93, + "value": 366 + } + }, + "fallback": "0x00", + "docs": [ + " Config of an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 355, + "deprecationInfo": {} + }, + "events": { + "type": 116, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "CollectionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for collection." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemDeposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved for an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding metadata to your item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AttributeDepositBase", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The basic amount of funds that must be reserved when adding an attribute to an item." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositPerByte", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The additional funds that must be reserved for the number of bytes store in metadata,", + " either \"normal\" metadata or attribute metadata." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of data stored on-chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "KeyLimit", + "type": 4, + "value": "0x40000000", + "docs": [ + " The maximum length of an attribute key." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ValueLimit", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximum length of an attribute value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum approvals an item could have." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ItemAttributesApprovalsLimit", + "type": 4, + "value": "0x14000000", + "docs": [ + " The maximum attributes approvals an item could have." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxTips", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of tips a user could send." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxDeadlineDuration", + "type": 4, + "value": "0x00349e00", + "docs": [ + " The max duration in blocks for deadlines." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxAttributesPerCall", + "type": 4, + "value": "0x0a000000", + "docs": [ + " The max number of attributes a user could set per call." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Features", + "type": 879, + "value": "0x0000000000000000", + "docs": [ + " Disables some of pallet's features." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 881, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "CollectionId", + "type": 4, + "docs": [ + " Identifier for the collection of item.", + "", + " SAFETY: The functions in the `Incrementable` trait are fallible. If the functions", + " of the implementation both return `None`, the automatic CollectionId generation", + " should not be used. So the `create` and `force_create` extrinsics and the", + " `create_collection` function will return an `UnknownCollection` Error. Instead use", + " the `create_collection_with_id` function. However, if the `Incrementable` trait", + " implementation has an incremental order, the `create_collection_with_id` function", + " should not be used as it can claim a value in the ID sequence." + ] + }, + { + "name": "ItemId", + "type": 4, + "docs": [ + " The type used to identify a unique item within a collection." + ] + }, + { + "name": "OffchainSignature", + "type": 315, + "docs": [ + " Off-Chain signature type.", + "", + " Can verify whether an `Self::OffchainPublic` created a signature." + ] + } + ], + "viewFunctions": [], + "index": 47, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NftFractionalization", + "storage": { + "prefix": "NftFractionalization", + "items": [ + { + "name": "NftToAsset", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 93, + "value": 882 + } + }, + "fallback": "0x00", + "docs": [ + " Keeps track of the corresponding NFT ID, asset ID and amount minted." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 373, + "deprecationInfo": {} + }, + "events": { + "type": 123, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The deposit paid by the user locking an NFT. The deposit is returned to the original NFT", + " owner when the asset is unified and the NFT is unlocked." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PalletId", + "type": 714, + "value": "0x6672616374696f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NewAssetSymbol", + "type": 832, + "value": "0x1046524143", + "docs": [ + " The newly created asset's symbol." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NewAssetName", + "type": 832, + "value": "0x1046726163", + "docs": [ + " The newly created asset's name." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StringLimit", + "type": 4, + "value": "0x32000000", + "docs": [ + " The maximum length of a name or symbol stored on-chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 883, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "NftCollectionId", + "type": 4, + "docs": [ + " Identifier for the collection of NFT." + ] + }, + { + "name": "NftId", + "type": 4, + "docs": [ + " The type used to identify an NFT within a collection." + ] + } + ], + "viewFunctions": [], + "index": 48, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Salary", + "storage": { + "prefix": "Salary", + "items": [ + { + "name": "Status", + "modifier": "Optional", + "type": { + "plain": 884 + }, + "fallback": "0x00", + "docs": [ + " The overall status of the system." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Claimant", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 885 + } + }, + "fallback": "0x00", + "docs": [ + " The status of a claimant." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 374, + "deprecationInfo": {} + }, + "events": { + "type": 124, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "RegistrationPeriod", + "type": 4, + "value": "0xc8000000", + "docs": [ + " The number of blocks within a cycle which accounts have to register their intent to", + " claim.", + "", + " The number of blocks between sequential payout cycles is the sum of this and", + " `PayoutPeriod`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PayoutPeriod", + "type": 4, + "value": "0xc8000000", + "docs": [ + " The number of blocks within a cycle which accounts have to claim the payout.", + "", + " The number of blocks between sequential payout cycles is the sum of this and", + " `RegistrationPeriod`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Budget", + "type": 6, + "value": "0x000064a7b3b6e00d0000000000000000", + "docs": [ + " The total budget per cycle.", + "", + " This may change over the course of a cycle without any problem." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 887, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 49, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CoreFellowship", + "storage": { + "prefix": "CoreFellowship", + "items": [ + { + "name": "Params", + "modifier": "Default", + "type": { + "plain": 126 + }, + "fallback": "0x0000000000000000", + "docs": [ + " The overall status of the system." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Member", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 888 + } + }, + "fallback": "0x00", + "docs": [ + " The status of a claimant." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MemberEvidence", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 889 + } + }, + "fallback": "0x00", + "docs": [ + " Some evidence together with the desired outcome for which it was presented." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 375, + "deprecationInfo": { + "8": { + "deprecated": { + "note": "Use `import_member` instead", + "since": null + } + } + } + }, + "events": { + "type": 125, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "EvidenceSize", + "type": 4, + "value": "0x00400000", + "docs": [ + " The maximum size in bytes submitted evidence is allowed to be." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxRank", + "type": 100, + "value": "0x0900", + "docs": [ + " Represents the highest possible rank in this pallet.", + "", + " Increasing this value is supported, but decreasing it may lead to a broken state." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 890, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 50, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TransactionStorage", + "storage": { + "prefix": "TransactionStorage", + "items": [ + { + "name": "Transactions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 891 + } + }, + "fallback": "0x00", + "docs": [ + " Collection of transaction metadata by block number." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChunkCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Count indexed chunks for each block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ByteFee", + "modifier": "Optional", + "type": { + "plain": 6 + }, + "fallback": "0x00", + "docs": [ + " Storage fee per byte." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "EntryFee", + "modifier": "Optional", + "type": { + "plain": 6 + }, + "fallback": "0x00", + "docs": [ + " Storage fee per transaction." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StoragePeriod", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Storage period for data in blocks. Should match `sp_storage_proof::DEFAULT_STORAGE_PERIOD`", + " for block authoring." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BlockTransactions", + "modifier": "Default", + "type": { + "plain": 891 + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProofChecked", + "modifier": "Default", + "type": { + "plain": 8 + }, + "fallback": "0x00", + "docs": [ + " Was the proof checked in this block?" + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 381, + "deprecationInfo": {} + }, + "events": { + "type": 133, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 894, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " A dispatchable call." + ] + } + ], + "viewFunctions": [], + "index": 51, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VoterList", + "storage": { + "prefix": "VoterList", + "items": [ + { + "name": "ListNodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 895 + } + }, + "fallback": "0x00", + "docs": [ + " A single node, within some bag.", + "", + " Nodes store links forward and back within their respective bags." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForListNodes", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ListBags", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 12, + "value": 896 + } + }, + "fallback": "0x00", + "docs": [ + " A bag stored in storage.", + "", + " Stores a `Bag` struct, which stores head and tail pointers to itself." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Lock", + "modifier": "Optional", + "type": { + "plain": 34 + }, + "fallback": "0x00", + "docs": [ + " Lock all updates to this pallet.", + "", + " If any nodes needs updating, removal or addition due to a temporary lock, the", + " [`Call::rebag`] can be used." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 383, + "deprecationInfo": {} + }, + "events": { + "type": 134, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "BagThresholds", + "type": 897, + "value": "0x210300407a10f35a00006a70ccd4a96000009ef3397fbc660000a907ccd5306d00003d9a67fb0c740000a9bfa275577b0000a6fdf73217830000034f5d91538b0000132445651494000078081001629d00000302f63c45a70000392e6f7fc7b10000f59c23c6f2bc00004ae76aafd1c80000598a64846fd50000129fb243d8e200003f22e1ac18f1000033a4844c3e000100e2e51b895710010076a2c0b0732101006789b407a3330100793ed8d7f646010078131b81815b01000c1cf38a567101004437eeb68a8801009eb56d1434a10100335e9f156abb010067c3c7a545d701003218f340e1f40100de0b230d59140200699c11f5ca350200ad50a2c4565902009ae41c471e7f0200d0244e6745a70200f984ad51f2d10200ace7a7984dff0200a118325b822f0300ffa4c76dbe620300580bfd8532990300a9afce6812d30300109ad81b95100400d9caa519f551040038df488970970400bee1727949e10400cc73401fc62f0500b304f91831830500828bffb4d9db05001235383d143a0600a5b42a473a9e060036662d09ab080700f73aeab4cb790700b87e93d707f20700ffec23c0d1710800b84b0beca2f90800c9dcae7afc89090091752ba867230a0064f1cd4f76c60a003609be76c3730b0078655fdff32b0c00a407f5a5b6ef0c0052f61be7c5bf0d00da71bb70e79c0e000de9127eed870f001477987fb7811000ebee65ef328b11001269fe325ca5120033f8428b3fd113008ba57a13fa0f15001b2b60d0ba6216000d1d37d0c3ca17006c64fa5c6b4919002622c7411de01a00045bb9245c901c00233d83f6c25b1e00c8771c79064420003013fddef64a2200aa8b6e848172240082c096c4b2bc260016a3faebb72b29008296524ae1c12b00a636a865a4812e00d0e2d4509e6d31009c0a9a2796883400e4faafb27fd53700e6e64d367e573b000e4bd66de7113f0088b17db746084300b07def72603e470034de249635b84b00d48bd57b077a5000d0bd20ef5b885500b8f0467801e85a0010f88aee139e60003892925301b066009c95e4fc8e236d00b4126d10dffe730028b43e5976487b00a08a1c7a42078300b09ab083a0428b002846b2f463029400c861a42ade4e9d0050d23d4ae630a700805101a7e1b1b10038e501b2ccdbbc002016527844b9c800388924ba9055d50070ca35a4aebce200805fb1355cfbf0008035685d241f0001a0c3dcd96b361001d07862e87e50210160e852d09f7d330190662c5816cf460110274c3340575b01804be277a22971013082b92dfc5a880180d276075a01a101b0f511592b34bb014031745f580cd701802f6cee59a4f40140ff799b521814026075607d2986350260fde999a60d590200e5e71c91d07e02c0df2575cff2a602a07fd975899ad102a067009d4cf0fe0220dc29a1321f2f0320ff526b0a5562038088caa383c29803e05683fb5c9bd203401dd75d9516100400317e39a06e5104c0b071129de1960480b48c9192b1e00480e8124aad242f05c007ca7082858205007c13c45623db0540836fe869523906c0700f81466c9d0640f09c5017d00707c0e624b301e37807c0332ac78510f10780074ca1e4ca700800d5a9eb8c8bf80800a849588ed3880900804254142c220a80a25170e826c50a00e8d5fafc5e720b801df64e00792a0c80d4fe64f923ee0c006dd038ee19be0d001e90a494209b0e0010bf570e0a860f00da6a9db0b57f1000bf64afd810891100bb5b60cd17a31200f963f3aed6ce1300d5f004766a0d1500e099770202601600103d663bdfc71700de3e2d4158461900ecdbadb2d8dc1a0045c70007e38c1c00b8bde0fc11581e00ba5c2a211a402000407de46dcb462200dea55b03136e2400aaf1f3fcfcb7260014226f63b62629006492803e8fbc2b008486a6c7fc7b2e002cf05fc09b673100da63f7ed32823400f0b13fbdb5ce3700f291c41047503b00422a1a3c3c0a3f002c24212f20004300ac9342d4b6354700cc6ed7a400af4b00c4d022773e70500020017d89f57d5500f86387cef3dc5a008c4c7f7e54926000206207f284a36600cc1e05cb49166d00b42a7a70c4f07300d43a90e278397b0038f461ec53f78200a07264b9b1318b0048c9b3d464f09300007fe998bd3b9d0010058f17921ca70000dfaf7f469cb100e80c880bd6c4bc0058bdcb7ddca0c80038d18d37a03bd50030d55bf01ca1e200704ac01a0fdef0ffffffffffffffff", + "docs": [ + " The list of thresholds separating the various bags.", + "", + " Ids are separated into unsorted bags according to their score. This specifies the", + " thresholds separating the bags. An id's bag is the largest bag for which the id's score", + " is less than or equal to its upper threshold.", + "", + " When ids are iterated, higher bags are iterated completely before lower bags. This means", + " that iteration is _semi-sorted_: ids of higher score tend to come before ids of lower", + " score, but peer ids within a particular bag are sorted in insertion order.", + "", + " # Expressing the constant", + "", + " This constant must be sorted in strictly increasing order. Duplicate items are not", + " permitted.", + "", + " There is an implied upper limit of `Score::MAX`; that value does not need to be", + " specified within the bag. For any two threshold lists, if one ends with", + " `Score::MAX`, the other one does not, and they are otherwise equal, the two", + " lists will behave identically.", + "", + " # Calculation", + "", + " It is recommended to generate the set of thresholds in a geometric series, such that", + " there exists some constant ratio such that `threshold[k + 1] == (threshold[k] *", + " constant_ratio).max(threshold[k] + 1)` for all `k`.", + "", + " The helpers in the `/utils/frame/generate-bags` module can simplify this calculation.", + "", + " # Examples", + "", + " - If `BagThresholds::get().is_empty()`, then all ids are put into the same bag, and", + " iteration is strictly in insertion order.", + " - If `BagThresholds::get().len() == 64`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is equal to 2.", + " - If `BagThresholds::get().len() == 200`, and the thresholds are determined according to", + " the procedure given above, then the constant ratio is approximately equal to 1.248.", + " - If the threshold list begins `[1, 2, 3, ...]`, then an id with score 0 or 1 will fall", + " into bag 0, an id with score 2 will fall into bag 1, etc.", + "", + " # Migration", + "", + " In the event that this list ever changes, a copy of the old bags list must be retained.", + " With that `List::migrate` can be called, which will perform the appropriate migration." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 898, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Score", + "type": 12, + "docs": [ + " The type used to dictate a node position relative to other nodes." + ] + } + ], + "viewFunctions": [ + { + "id": "0x74dd702da46f77d7acf77f5a48d4af7d1246509d21cdb126e8bac56813c4a29e", + "name": "scores", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 900, + "docs": [ + " Get the current `score` of a given account.", + "", + " Returns `(current, real_score)`, the former being the current score that this pallet is", + " aware of, which may or may not be up to date, and the latter being the real score, as", + " provided by", + "", + " If the two differ, it means this node is eligible for [`Call::rebag`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "index": 52, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StateTrieMigration", + "storage": { + "prefix": "StateTrieMigration", + "items": [ + { + "name": "MigrationProcess", + "modifier": "Default", + "type": { + "plain": 387 + }, + "fallback": "0x0000000000000000000000000000", + "docs": [ + " Migration progress.", + "", + " This stores the snapshot of the last migrated keys. It can be set into motion and move", + " forward by any of the means provided by this pallet." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AutoLimits", + "modifier": "Default", + "type": { + "plain": 385 + }, + "fallback": "0x00", + "docs": [ + " The limits that are imposed on automatic migrations.", + "", + " If set to None, then no automatic migration happens." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SignedMigrationMaxLimits", + "modifier": "Optional", + "type": { + "plain": 386 + }, + "fallback": "0x00", + "docs": [ + " The maximum limits that the signed migration could use.", + "", + " If not set, no signed submission is allowed." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 384, + "deprecationInfo": {} + }, + "events": { + "type": 135, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxKeyLen", + "type": 4, + "value": "0x00020000", + "docs": [ + " Maximal number of bytes that a key can have.", + "", + " FRAME itself does not limit the key length.", + " The concrete value must therefore depend on your storage usage.", + " A [`frame_support::storage::StorageNMap`] for example can have an arbitrary number of", + " keys which are then hashed and concatenated, resulting in arbitrarily long keys.", + "", + " Use the *state migration RPC* to retrieve the length of the longest key in your", + " storage: ", + "", + " The migration will halt with a `Halted` event if this value is too small.", + " Since there is no real penalty from over-estimating, it is advised to use a large", + " value. The default is 512 byte.", + "", + " Some key lengths for reference:", + " - [`frame_support::storage::StorageValue`]: 32 byte", + " - [`frame_support::storage::StorageMap`]: 64 byte", + " - [`frame_support::storage::StorageDoubleMap`]: 96 byte", + "", + " For more info see", + " " + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 137, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 53, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChildBounties", + "storage": { + "prefix": "ChildBounties", + "items": [ + { + "name": "ChildBountyCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " DEPRECATED: Replaced with `ParentTotalChildBounties` storage item keeping dedicated counts", + " for each parent bounty. Number of total child bounties. Will be removed in May 2025." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ParentChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of active child bounties per parent bounty.", + " Map of parent bounty index to number of child bounties." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ParentTotalChildBounties", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " Number of total child bounties per parent bounty, including completed bounties." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChildBounties", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 93, + "value": 901 + } + }, + "fallback": "0x00", + "docs": [ + " Child bounties that have been added." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChildBountyDescriptionsV1", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 93, + "value": 820 + } + }, + "fallback": "0x00", + "docs": [ + " The description of each child-bounty. Indexed by `(parent_id, child_id)`.", + "", + " This item replaces the `ChildBountyDescriptions` storage item from the V0 storage version." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "V0ToV1ChildBountyIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 93 + } + }, + "fallback": "0x00", + "docs": [ + " The mapping of the child bounty ids from storage version `V0` to the new `V1` version.", + "", + " The `V0` ids based on total child bounty count [`ChildBountyCount`]`. The `V1` version ids", + " based on the child bounty count per parent bounty [`ParentTotalChildBounties`].", + " The item intended solely for client convenience and not used in the pallet's core logic." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChildrenCuratorFees", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 6 + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The cumulative child-bounty curator fee for each parent bounty." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 390, + "deprecationInfo": {} + }, + "events": { + "type": 138, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxActiveChildBountyCount", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of child bounties that can be added to a parent bounty." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChildBountyValueMinimum", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum value for a child-bounty." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 903, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 54, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Referenda", + "storage": { + "prefix": "Referenda", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 904 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 912 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 391, + "deprecationInfo": {} + }, + "events": { + "type": 139, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Tracks", + "type": 913, + "value": "0x04000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 916, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [] + }, + { + "name": "Votes", + "type": 6, + "docs": [ + " The counting type for votes. Usually just balance." + ] + }, + { + "name": "Tally", + "type": 497, + "docs": [ + " The tallying type." + ] + } + ], + "viewFunctions": [], + "index": 55, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Remark", + "storage": null, + "calls": { + "type": 393, + "deprecationInfo": {} + }, + "events": { + "type": 498, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 917, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 56, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RootTesting", + "storage": null, + "calls": { + "type": 394, + "deprecationInfo": {} + }, + "events": { + "type": 499, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 57, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ConvictionVoting", + "storage": { + "prefix": "ConvictionVoting", + "items": [ + { + "name": "VotingFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 918, + "value": 919 + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " All voting for a particular voter in a particular voting class. We store the balance for the", + " number of votes that we have recorded." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ClassLocksFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 927 + } + }, + "fallback": "0x00", + "docs": [ + " The voting classes which have a non-zero lock requirement and the lock amounts which they", + " require. The actual amount locked on behalf of this pallet should always be the maximum of", + " this list." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 395, + "deprecationInfo": {} + }, + "events": { + "type": 500, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxVotes", + "type": 4, + "value": "0x00020000", + "docs": [ + " The maximum number of concurrent votes an account may have.", + "", + " Also used to compute weight, an overly large value can lead to extrinsics with large", + " weight estimation: see `delegate` for instance." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VoteLockingPeriod", + "type": 4, + "value": "0x002f0d00", + "docs": [ + " The minimum period of vote locking.", + "", + " It should be no shorter than enactment period to ensure that in the case of an approval,", + " those successful voters are locked into the consequences that their votes entail." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 930, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 58, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Whitelist", + "storage": { + "prefix": "Whitelist", + "items": [ + { + "name": "WhitelistedCall", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 13, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 399, + "deprecationInfo": {} + }, + "events": { + "type": 501, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 931, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + } + ], + "viewFunctions": [], + "index": 59, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AllianceMotion", + "storage": { + "prefix": "AllianceMotion", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": 932 + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 141 + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CostOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 80 + } + }, + "fallback": "0x00", + "docs": [ + " Consideration cost created for publishing and storing a proposal.", + "", + " Determined by [Config::Consideration] and may be not present for certain proposals (e.g. if", + " the proposal count at the time of creation was below threshold N)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 696 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": 87 + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Prime", + "modifier": "Optional", + "type": { + "plain": 0 + }, + "fallback": "0x00", + "docs": [ + " The prime member that helps determine the default vote behavior in case of abstentions." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 400, + "deprecationInfo": {} + }, + "events": { + "type": 506, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxProposalWeight", + "type": 10, + "value": "0x070010a5d4e813ffffffffffffff7f", + "docs": [ + " The maximum weight of a dispatch call that can be proposed and executed." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 933, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Proposal", + "type": 141, + "docs": [ + " The runtime call dispatch type." + ] + } + ], + "viewFunctions": [], + "index": 60, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Alliance", + "storage": { + "prefix": "Alliance", + "items": [ + { + "name": "Rule", + "modifier": "Optional", + "type": { + "plain": 403 + }, + "fallback": "0x00", + "docs": [ + " The IPFS CID of the alliance rule.", + " Fellows can propose a new rule with a super-majority." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Announcements", + "modifier": "Default", + "type": { + "plain": 934 + }, + "fallback": "0x00", + "docs": [ + " The current IPFS CIDs of any announcements." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Maps members to their candidacy deposit." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 936, + "value": 937 + } + }, + "fallback": "0x00", + "docs": [ + " Maps member type to members of each type." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RetiringMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A set of members who gave a retirement notice. They can retire after the end of retirement", + " period stored as a future block number." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnscrupulousAccounts", + "modifier": "Default", + "type": { + "plain": 680 + }, + "fallback": "0x00", + "docs": [ + " The current list of accounts deemed unscrupulous. These accounts non grata cannot submit", + " candidacy." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnscrupulousWebsites", + "modifier": "Default", + "type": { + "plain": 938 + }, + "fallback": "0x00", + "docs": [ + " The current list of websites deemed unscrupulous." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 401, + "deprecationInfo": {} + }, + "events": { + "type": 507, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxUnscrupulousItems", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of the unscrupulous items supported by the pallet." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxWebsiteUrlLength", + "type": 4, + "value": "0xff000000", + "docs": [ + " The maximum length of a website URL." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AllyDeposit", + "type": 6, + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [ + " The deposit required for submitting candidacy." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxAnnouncementsCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of announcements." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxMembersCount", + "type": 4, + "value": "0x64000000", + "docs": [ + " The maximum number of members per member role." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 940, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Proposal", + "type": 141, + "docs": [ + " The runtime call dispatch type." + ] + } + ], + "viewFunctions": [], + "index": 61, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NominationPools", + "storage": { + "prefix": "NominationPools", + "items": [ + { + "name": "TotalValueLocked", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The sum of funds across all pools.", + "", + " This might be lower but never higher than the sum of `total_balance` of all [`PoolMembers`]", + " because calling `pool_withdraw_unbonded` might decrease the total stake of the pool's", + " `bonded_account` without adjusting the pallet-internal `UnbondingPool`'s." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinJoinBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum amount to bond to join a pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinCreateBond", + "modifier": "Default", + "type": { + "plain": 6 + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Minimum bond required to create a pool.", + "", + " This is the amount that the depositor must put as their initial stake in the pool, as an", + " indication of \"skin in the game\".", + "", + " This is the value that will always exist in the staking ledger of the pool bonded account", + " while all other accounts leave." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxPools", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of nomination pools that can exist. If `None`, then an unbounded number of", + " pools can exist." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxPoolMembers", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that can exist in the system. If `None`, then the count", + " members are not bound on a system wide basis." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxPoolMembersPerPool", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Maximum number of members that may belong to pool. If `None`, then the count of", + " members is not bound on a per pool basis." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "GlobalMaxCommission", + "modifier": "Optional", + "type": { + "plain": 49 + }, + "fallback": "0x00", + "docs": [ + " The maximum commission that can be charged by a pool. Used on commission payouts to bound", + " pool commissions that are > `GlobalMaxCommission`, necessary if a future", + " `GlobalMaxCommission` is lower than some current pool commissions." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PoolMembers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 941 + } + }, + "fallback": "0x00", + "docs": [ + " Active members.", + "", + " TWOX-NOTE: SAFE since `AccountId` is a secure hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForPoolMembers", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BondedPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 944 + } + }, + "fallback": "0x00", + "docs": [ + " Storage for bonded pools." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForBondedPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RewardPools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 948 + } + }, + "fallback": "0x00", + "docs": [ + " Reward pools. This is where there rewards for each pool accumulate. When a members payout is", + " claimed, the balance comes out of the reward pool. Keyed by the bonded pools account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForRewardPools", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SubPoolsStorage", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 949 + } + }, + "fallback": "0x00", + "docs": [ + " Groups of unbonding pools. Each group of unbonding pools belongs to a", + " bonded pool, hence the name sub-pools. Keyed by the bonded pools account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForSubPoolsStorage", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Metadata", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 117 + } + }, + "fallback": "0x00", + "docs": [ + " Metadata for the pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForMetadata", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LastPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Ever increasing number of all pools created so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReversePoolIdLookup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A reverse lookup from the pool's account id to its id.", + "", + " This is only used for slashing and on automatic withdraw update. In all other instances, the", + " pool id is used, and the accounts are deterministically derived from it." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForReversePoolIdLookup", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ClaimPermissions", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 417 + } + }, + "fallback": "0x02", + "docs": [ + " Map from a pool member account to their opted claim permission." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 410, + "deprecationInfo": {} + }, + "events": { + "type": 508, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f6e6f706c73", + "docs": [ + " The nomination pool's pallet id." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxPointsToBalance", + "type": 2, + "value": "0x0a", + "docs": [ + " The maximum pool points-to-balance ratio that an `open` pool can have.", + "", + " This is important in the event slashing takes place and the pool's points-to-balance", + " ratio becomes disproportional.", + "", + " Moreover, this relates to the `RewardCounter` type as well, as the arithmetic operations", + " are a function of number of points, and by setting this value to e.g. 10, you ensure", + " that the total number of points in the system are at most 10 times the total_issuance of", + " the chain, in the absolute worse case.", + "", + " For a value of 10, the threshold would be a pool points-to-balance ratio of 10:1.", + " Such a scenario would also be the equivalent of the pool being 90% slashed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxUnbonding", + "type": 4, + "value": "0x08000000", + "docs": [ + " The maximum number of simultaneous unbonding chunks that can exist per member." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 955, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RewardCounter", + "type": 72, + "docs": [ + " The type that is used for reward counter.", + "", + " The arithmetic of the reward counter might saturate based on the size of the", + " `Currency::Balance`. If this happens, operations fails. Nonetheless, this type should be", + " chosen such that this failure almost never happens, as if it happens, the pool basically", + " needs to be dismantled (or all pools migrated to a larger `RewardCounter` type, which is", + " a PITA to do).", + "", + " See the inline code docs of `Member::pending_rewards` and `RewardPool::update_recorded`", + " for example analysis. A [`sp_runtime::FixedU128`] should be fine for chains with balance", + " types similar to that of Pezkuwi and Zagros, in the absence of severe slashing (or", + " prevented via a reasonable `MaxPointsToBalance`), for many many years to come." + ] + } + ], + "viewFunctions": [], + "index": 62, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RankedPolls", + "storage": { + "prefix": "RankedPolls", + "items": [ + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReferendumInfoFor", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 957 + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TrackQueue", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 959 + } + }, + "fallback": "0x00", + "docs": [ + " The sorted list of referenda ready to be decided but not yet being decided, ordered by", + " conviction-weighted approvals.", + "", + " This should be empty if `DecidingCount` is less than `TrackInfo::max_deciding`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DecidingCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of referenda being decided currently." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetadataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 13 + } + }, + "fallback": "0x00", + "docs": [ + " The metadata is a general information concerning the referendum.", + " The `Hash` refers to the preimage of the `Preimages` provider which can be a JSON", + " dump or IPFS hash of a JSON file.", + "", + " Consider a garbage collection for a metadata of finished referendums to `unrequest` (remove)", + " large preimages." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 423, + "deprecationInfo": {} + }, + "events": { + "type": 510, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "SubmissionDeposit", + "type": 6, + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxQueued", + "type": 4, + "value": "0x64000000", + "docs": [ + " Maximum size of the referendum queue for a single track." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UndecidingTimeout", + "type": 4, + "value": "0x004e0c00", + "docs": [ + " The number of blocks after submission that a referendum must begin being decided by.", + " Once this passes, then anyone may cancel the referendum." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AlarmInterval", + "type": 4, + "value": "0x01000000", + "docs": [ + " Quantization level for the referendum wakeup scheduler. A higher number will result in", + " fewer storage reads/writes needed for smaller voters, but also result in delays to the", + " automatic referendum status changes. Explicit servicing instructions are unaffected." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Tracks", + "type": 913, + "value": "0x04000064726f6f74000000000000000000000000000000000000000000010000000a000000000000000000000000000000040000000400000002000000040000000000ca9a3b0065cd1d00ca9a3b0000ca9a3b0000000000ca9a3b", + "docs": [ + " A list of tracks.", + "", + " Note: if the tracks are dynamic, the value in the static metadata might be inaccurate." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 960, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [] + }, + { + "name": "Votes", + "type": 4, + "docs": [ + " The counting type for votes. Usually just balance." + ] + }, + { + "name": "Tally", + "type": 511, + "docs": [ + " The tallying type." + ] + } + ], + "viewFunctions": [], + "index": 63, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RankedCollective", + "storage": { + "prefix": "RankedCollective", + "items": [ + { + "name": "MemberCount", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 4 + } + }, + "fallback": "0x00000000", + "docs": [ + " The number of members in the collective who have at least the rank according to the index", + " of the vec." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Members", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 961 + } + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "IdToIndex", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 962, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " The index of each ranks's member into the group of members who have at least that rank." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "IndexToId", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 963, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " The members in the collective by index. All indices in the range `0..MemberCount` will", + " return `Some`, however a member's index is not guaranteed to remain unchanged over time." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Twox64Concat" + ], + "key": 651, + "value": 513 + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VotingCleanup", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 964 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 424, + "deprecationInfo": {} + }, + "events": { + "type": 512, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 965, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 64, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetConversion", + "storage": { + "prefix": "AssetConversion", + "items": [ + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 515, + "value": 966 + } + }, + "fallback": "0x00", + "docs": [ + " Map from `PoolAssetId` to `PoolInfo`. This establishes whether a pool has been officially", + " created rather than people sending tokens directly to a pool's public account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextPoolAssetId", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Stores the `PoolAssetId` that is going to be used for the next lp token.", + " This gets incremented whenever a new lp pool is created." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 425, + "deprecationInfo": {} + }, + "events": { + "type": 514, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "LPFee", + "type": 4, + "value": "0x03000000", + "docs": [ + " A % the liquidity providers will take of every swap. Represents 10ths of a percent." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PoolSetupFee", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " A one-time fee to setup the pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PoolSetupFeeAsset", + "type": 40, + "value": "0x00", + "docs": [ + " Asset class from [`Config::Assets`] used to pay the [`Config::PoolSetupFee`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LiquidityWithdrawalFee", + "type": 516, + "value": "0x00000000", + "docs": [ + " A fee to withdraw the liquidity." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MintMinLiquidity", + "type": 6, + "value": "0x64000000000000000000000000000000", + "docs": [ + " The minimum LP token amount that could be minted. Ameliorates rounding errors." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxSwapPathLength", + "type": 4, + "value": "0x04000000", + "docs": [ + " The max number of hops in a swap." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PalletId", + "type": 714, + "value": "0x70792f6173636f6e", + "docs": [ + " The pallet's id, used for deriving its sovereign account ID." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 967, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "AssetKind", + "type": 40, + "docs": [ + " Type of asset class, sourced from [`Config::Assets`], utilized to offer liquidity to a", + " pool." + ] + }, + { + "name": "PoolId", + "type": 515, + "docs": [ + " Liquidity pool identifier." + ] + } + ], + "viewFunctions": [], + "index": 65, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "FastUnstake", + "storage": { + "prefix": "FastUnstake", + "items": [ + { + "name": "Head", + "modifier": "Optional", + "type": { + "plain": 968 + }, + "fallback": "0x00", + "docs": [ + " The current \"head of the queue\" being unstaked.", + "", + " The head in itself can be a batch of up to [`Config::BatchSize`] stakers." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Queue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " The map of all accounts wishing to be unstaked.", + "", + " Keeps track of `AccountId` wishing to unstake and it's corresponding deposit." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForQueue", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ErasToCheckPerBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Number of eras to check per block.", + "", + " If set to 0, this pallet does absolutely nothing. Cannot be set to more than", + " [`Config::MaxErasToCheckPerBlock`].", + "", + " Based on the amount of weight available at [`Pallet::on_idle`], up to this many eras are", + " checked. The checking is represented by updating [`UnstakeRequest::checked`], which is", + " stored in [`Head`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 427, + "deprecationInfo": {} + }, + "events": { + "type": 519, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "Deposit", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Deposit to take for unstaking, to make sure we're able to slash the it in order to cover", + " the costs of resources on unsuccessful unstake." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 971, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 66, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MessageQueue", + "storage": { + "prefix": "MessageQueue", + "items": [ + { + "name": "BookStateFor", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 972 + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The index of the first and last (non-empty) pages." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ServiceHead", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " The origin at which we should begin servicing." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Pages", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 93, + "value": 975 + } + }, + "fallback": "0x00", + "docs": [ + " The map of page indices to pages." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 428, + "deprecationInfo": {} + }, + "events": { + "type": 520, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "HeapSize", + "type": 4, + "value": "0x00000100", + "docs": [ + " The size of the page; this implies the maximum message size which can be sent.", + "", + " A good value depends on the expected message sizes, their weights, the weight that is", + " available for processing them and the maximal needed message size. The maximal message", + " size is slightly lower than this as defined by [`MaxMessageLenOf`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxStale", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum number of stale pages (i.e. of overweight messages) allowed before culling", + " can happen. Once there are more stale pages than this, then historical pages may be", + " dropped, even if they contain unprocessed overweight messages." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ServiceWeight", + "type": 504, + "value": "0x010700a0db215d133333333333333333", + "docs": [ + " The amount of weight (if any) which should be provided to the message queue for", + " servicing enqueued items `on_initialize`.", + "", + " This may be legitimately `None` in the case that you will call", + " `ServiceQueues::service_queues` manually or set [`Self::IdleMaxServiceWeight`] to have", + " it run in `on_idle`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "IdleMaxServiceWeight", + "type": 504, + "value": "0x00", + "docs": [ + " The maximum amount of weight (if any) to be used from remaining weight `on_idle` which", + " should be provided to the message queue for servicing enqueued items `on_idle`.", + " Useful for teyrchains to process messages at the same block they are received.", + "", + " If `None`, it will not call `ServiceQueues::service_queues` in `on_idle`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 977, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "Size", + "type": 4, + "docs": [ + " Page/heap size type." + ] + } + ], + "viewFunctions": [], + "index": 67, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Pov", + "storage": { + "prefix": "Pov", + "items": [ + { + "name": "Value", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Value2", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnboundedValue", + "modifier": "Optional", + "type": { + "plain": 14 + }, + "fallback": "0x00", + "docs": [ + " A value without a MEL bound." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BoundedValue", + "modifier": "Optional", + "type": { + "plain": 85 + }, + "fallback": "0x00", + "docs": [ + " A value with a MEL bound of 32 byte." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LargeValue", + "modifier": "Optional", + "type": { + "plain": 804 + }, + "fallback": "0x00", + "docs": [ + " 4MiB value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "LargeValue2", + "modifier": "Optional", + "type": { + "plain": 804 + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Map1M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A map with a maximum of 1M entries." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Map16M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " A map with a maximum of 16M entries." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DoubleMap1M", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256", + "Blake2_256" + ], + "key": 93, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnboundedMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnboundedMap2", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_256" + ], + "key": 4, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnboundedMapTwox", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 114 + } + }, + "fallback": "0x00", + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 429, + "deprecationInfo": {} + }, + "events": { + "type": 522, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 68, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TxPause", + "storage": { + "prefix": "TxPause", + "items": [ + { + "name": "PausedCalls", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 431, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " The set of calls that are explicitly paused." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 430, + "deprecationInfo": {} + }, + "events": { + "type": 523, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "MaxNameLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " Maximum length for pallet name and call name SCALE encoded string names.", + "", + " TOO LONG NAMES WILL BE TREATED AS PAUSED." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 978, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + } + ], + "viewFunctions": [], + "index": 69, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SafeMode", + "storage": { + "prefix": "SafeMode", + "items": [ + { + "name": "EnteredUntil", + "modifier": "Optional", + "type": { + "plain": 4 + }, + "fallback": "0x00", + "docs": [ + " Contains the last block number that the safe-mode will remain entered in.", + "", + " Set to `None` when safe-mode is exited.", + "", + " Safe-mode is automatically exited when the current block number exceeds this value." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Deposits", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat", + "Twox64Concat" + ], + "key": 661, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " Holds the reserve that was taken from an account at a specific block number.", + "", + " This helps governance to have an overview of outstanding deposits that should be returned or", + " slashed." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 432, + "deprecationInfo": {} + }, + "events": { + "type": 524, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "EnterDuration", + "type": 4, + "value": "0xc0120000", + "docs": [ + " For how many blocks the safe-mode will be entered by [`Pallet::enter`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExtendDuration", + "type": 4, + "value": "0x60090000", + "docs": [ + " For how many blocks the safe-mode can be extended by each [`Pallet::extend`] call.", + "", + " This does not impose a hard limit as the safe-mode can be extended multiple times." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "EnterDepositAmount", + "type": 236, + "value": "0x01000020c65abc8ed70a00000000000000", + "docs": [ + " The amount that will be reserved upon calling [`Pallet::enter`].", + "", + " `None` disallows permissionlessly enabling the safe-mode and is a sane default." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ExtendDepositAmount", + "type": 236, + "value": "0x01000010632d5ec76b0500000000000000", + "docs": [ + " The amount that will be reserved upon calling [`Pallet::extend`].", + "", + " `None` disallows permissionlessly extending the safe-mode and is a sane default." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReleaseDelay", + "type": 50, + "value": "0x0100e10000", + "docs": [ + " The minimal duration a deposit will remain reserved after safe-mode is entered or", + " extended, unless [`Pallet::force_release_deposit`] is successfully called sooner.", + "", + " Every deposit is tied to a specific activation or extension, thus each deposit can be", + " released independently after the delay for it has passed.", + "", + " `None` disallows permissionlessly releasing the safe-mode deposits and is a sane", + " default." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 979, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 70, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Statement", + "storage": null, + "calls": null, + "events": { + "type": 526, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "StatementCost", + "type": 6, + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Min balance for priority statements." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ByteCost", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " Cost of data byte used for priority calculation." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinAllowedStatements", + "type": 4, + "value": "0x04000000", + "docs": [ + " Minimum number of statements allowed per account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxAllowedStatements", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Maximum number of statements allowed per account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinAllowedBytes", + "type": 4, + "value": "0x00040000", + "docs": [ + " Minimum data bytes allowed per account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxAllowedBytes", + "type": 4, + "value": "0x00100000", + "docs": [ + " Maximum data bytes allowed per account." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 71, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MultiBlockMigrations", + "storage": { + "prefix": "MultiBlockMigrations", + "items": [ + { + "name": "Cursor", + "modifier": "Optional", + "type": { + "plain": 435 + }, + "fallback": "0x00", + "docs": [ + " The currently active migration to run and its cursor.", + "", + " `None` indicates that no migration is running." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Historic", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 117, + "value": 34 + } + }, + "fallback": "0x00", + "docs": [ + " Set of all successfully executed migrations.", + "", + " This is used as blacklist, to not re-execute migrations that have not been removed from the", + " codebase yet. Governance can regularly clear this out via `clear_historic`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 433, + "deprecationInfo": {} + }, + "events": { + "type": 531, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "CursorMaxLen", + "type": 4, + "value": "0x00000100", + "docs": [ + " The maximal length of an encoded cursor.", + "", + " A good default needs to selected such that no migration will ever have a cursor with MEL", + " above this limit. This is statically checked in `integrity_test`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "IdentifierMaxLen", + "type": 4, + "value": "0x00010000", + "docs": [ + " The maximal length of an encoded identifier.", + "", + " A good default needs to selected such that no migration will ever have an identifier", + " with MEL above this limit. This is statically checked in `integrity_test`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 980, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 72, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Broker", + "storage": { + "prefix": "Broker", + "items": [ + { + "name": "Configuration", + "modifier": "Optional", + "type": { + "plain": 443 + }, + "fallback": "0x00", + "docs": [ + " The current configuration of this pallet." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Reservations", + "modifier": "Default", + "type": { + "plain": 981 + }, + "fallback": "0x00", + "docs": [ + " The Pezkuwi Core reservations (generally tasked with the maintenance of System Chains)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Leases", + "modifier": "Default", + "type": { + "plain": 983 + }, + "fallback": "0x00", + "docs": [ + " The Pezkuwi Core legacy leases." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Status", + "modifier": "Optional", + "type": { + "plain": 986 + }, + "fallback": "0x00", + "docs": [ + " The current status of miscellaneous subsystems of this pallet." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SaleInfo", + "modifier": "Optional", + "type": { + "plain": 987 + }, + "fallback": "0x00", + "docs": [ + " The details of the current sale, including its properties and status." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PotentialRenewals", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 988, + "value": 989 + } + }, + "fallback": "0x00", + "docs": [ + " Records of potential renewals.", + "", + " Renewals will only actually be allowed if `CompletionStatus` is actually `Complete`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Regions", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 449, + "value": 991 + } + }, + "fallback": "0x00", + "docs": [ + " The current (unassigned or provisionally assigend) Regions." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Workplan", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 992, + "value": 444 + } + }, + "fallback": "0x00", + "docs": [ + " The work we plan on having each core do at a particular time in the future." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Workload", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 100, + "value": 444 + } + }, + "fallback": "0x00", + "docs": [ + " The current workload of each core. This gets updated with workplan as timeslices pass." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InstaPoolContribution", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 449, + "value": 993 + } + }, + "fallback": "0x00", + "docs": [ + " Record of a single contribution to the Instantaneous Coretime Pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InstaPoolIo", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 994 + } + }, + "fallback": "0x0000000000000000", + "docs": [ + " Record of Coretime entering or leaving the Instantaneous Coretime Pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "InstaPoolHistory", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 996 + } + }, + "fallback": "0x00", + "docs": [ + " Total InstaPool rewards for each Timeslice and the number of core parts which contributed." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CoreCountInbox", + "modifier": "Optional", + "type": { + "plain": 100 + }, + "fallback": "0x00", + "docs": [ + " Received core count change from the relay chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AutoRenewals", + "modifier": "Default", + "type": { + "plain": 997 + }, + "fallback": "0x00", + "docs": [ + " Keeping track of cores which have auto-renewal enabled.", + "", + " Sorted by `CoreIndex` to make the removal of cores from auto-renewal more efficient." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RevenueInbox", + "modifier": "Optional", + "type": { + "plain": 451 + }, + "fallback": "0x00", + "docs": [ + " Received revenue info from the relay chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 442, + "deprecationInfo": {} + }, + "events": { + "type": 532, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f62726f6b65", + "docs": [ + " Identifier from which the internal Pot is generated." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TimeslicePeriod", + "type": 4, + "value": "0x02000000", + "docs": [ + " Number of Relay-chain blocks per timeslice." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxLeasedCores", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of legacy leases." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxReservedCores", + "type": 4, + "value": "0x05000000", + "docs": [ + " Maximum number of system cores." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxAutoRenewals", + "type": 4, + "value": "0x0a000000", + "docs": [ + " Given that we are performing all auto-renewals in a single block, it has to be limited." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinimumCreditPurchase", + "type": 6, + "value": "0x00e87648170000000000000000000000", + "docs": [ + " The smallest amount of credits a user can purchase.", + "", + " Needed to prevent spam attacks." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 1000, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 73, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TasksExample", + "storage": { + "prefix": "TasksExample", + "items": [ + { + "name": "Total", + "modifier": "Default", + "type": { + "plain": 93 + }, + "fallback": "0x0000000000000000", + "docs": [ + " Some running total." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Numbers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 4 + } + }, + "fallback": "0x00", + "docs": [ + " Numbers to be added into the total." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": { + "type": 1001, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 74, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Mixnet", + "storage": { + "prefix": "Mixnet", + "items": [ + { + "name": "CurrentSessionIndex", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Index of the current session. This may be offset relative to the session index tracked by", + " eg `pallet_session`; mixnet session indices are independent." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CurrentSessionStartBlock", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Block in which the current session started." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextAuthorityIds", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 4, + "value": 244 + } + }, + "fallback": "0x00", + "docs": [ + " Authority list for the next session." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Mixnodes", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity", + "Identity" + ], + "key": 93, + "value": 454 + } + }, + "fallback": "0x00", + "docs": [ + " Mixnode sets by session index. Only the mixnode sets for the previous, current, and next", + " sessions are kept; older sets are discarded.", + "", + " The mixnodes in each set are keyed by authority index so we can easily check if an", + " authority has registered a mixnode. The authority indices should only be used during", + " registration; the authority indices for the very first session are made up." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 452, + "deprecationInfo": {} + }, + "events": null, + "constants": [ + { + "name": "MaxAuthorities", + "type": 4, + "value": "0xe8030000", + "docs": [ + " The maximum number of authorities per session." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxExternalAddressSize", + "type": 4, + "value": "0x80000000", + "docs": [ + " The maximum size of one of a mixnode's external addresses." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MaxExternalAddressesPerMixnode", + "type": 4, + "value": "0x10000000", + "docs": [ + " The maximum number of external addresses for a mixnode." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NumCoverToCurrentBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the first phase of each session (`CoverToCurrent`), in blocks." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NumRequestsToCurrentBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the second phase of each session (`RequestsToCurrent`), in blocks." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NumCoverToPrevBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " Length of the third phase of each session (`CoverToPrev`), in blocks." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NumRegisterStartSlackBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " The number of \"slack\" blocks at the start of each session, during which", + " [`maybe_register`](Pallet::maybe_register) will not attempt to post registration", + " transactions." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NumRegisterEndSlackBlocks", + "type": 4, + "value": "0x03000000", + "docs": [ + " The number of \"slack\" blocks at the end of each session.", + " [`maybe_register`](Pallet::maybe_register) will try to register before this slack", + " period, but may post registration transactions during the slack period as a last", + " resort." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RegistrationPriority", + "type": 12, + "value": "0xfeffffffffffffff", + "docs": [ + " Priority of unsigned transactions used to register mixnodes." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MinMixnodes", + "type": 4, + "value": "0x07000000", + "docs": [ + " Minimum number of mixnodes. If there are fewer than this many mixnodes registered for a", + " session, the mixnet will not be active during the session." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 75, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Parameters", + "storage": { + "prefix": "Parameters", + "items": [ + { + "name": "Parameters", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 538, + "value": 542 + } + }, + "fallback": "0x00", + "docs": [ + " Stored parameters." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 458, + "deprecationInfo": {} + }, + "events": { + "type": 537, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 76, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SkipFeelessPayment", + "storage": null, + "calls": null, + "events": { + "type": 545, + "deprecationInfo": {} + }, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 77, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PalletExampleMbms", + "storage": { + "prefix": "PalletExampleMbms", + "items": [ + { + "name": "MyMap", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 12 + } + }, + "fallback": "0x00", + "docs": [ + " Define a storage item to illustrate multi-block migrations." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [], + "viewFunctions": [], + "index": 78, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetConversionMigration", + "storage": null, + "calls": { + "type": 478, + "deprecationInfo": {} + }, + "events": { + "type": 546, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 1002, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 79, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Revive", + "storage": { + "prefix": "Revive", + "items": [ + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 1003 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CodeInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 13, + "value": 1004 + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from a contract's code hash to its code info." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 480, + "value": 1005 + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ImmutableDataOf", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 480, + "value": 1006 + } + }, + "fallback": "0x00", + "docs": [ + " The immutable data associated with a given account." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DeletionQueue", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 4, + "value": 113 + } + }, + "fallback": "0x00", + "docs": [ + " Evicted contracts that await child trie deletion.", + "", + " Child trie deletion is a heavy operation depending on the amount of storage items", + " stored in said trie. Therefore this operation is performed lazily in `on_idle`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DeletionQueueCounter", + "modifier": "Default", + "type": { + "plain": 1007 + }, + "fallback": "0x0000000000000000", + "docs": [ + " A pair of monotonic counters used to track the latest contract marked for deletion", + " and the latest deleted contract in queue." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "OriginalAccount", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Identity" + ], + "key": 480, + "value": 0 + } + }, + "fallback": "0x00", + "docs": [ + " Map a Ethereum address to its original `AccountId32`.", + "", + " When deriving a `H160` from an `AccountId32` we use a hash function. In order to", + " reconstruct the original account we need to store the reverse mapping here.", + " Register your `AccountId32` using [`Pallet::map_account`] in order to", + " use it with this pallet." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 479, + "deprecationInfo": {} + }, + "events": { + "type": 547, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "DepositPerByte", + "type": 6, + "value": "0x0060defb740500000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each byte of storage.", + "", + " # Note", + "", + " It is safe to change this value on a live chain as all refunds are pro rata." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DepositPerItem", + "type": 6, + "value": "0x00f0ab75a40d00000000000000000000", + "docs": [ + " The amount of balance a caller has to pay for each storage item.", + "", + " # Note", + "", + " It is safe to change this value on a live chain as all refunds are pro rata." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CodeHashLockupDepositPercent", + "type": 49, + "value": "0x00a3e111", + "docs": [ + " The percentage of the storage deposit that should be held for using a code hash.", + " Instantiating a contract, protects the code from being removed. In order to prevent", + " abuse these actions are protected with a percentage of the code deposit." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "UnsafeUnstableInterface", + "type": 8, + "value": "0x00", + "docs": [ + " Make contract callable functions marked as `#[unstable]` available.", + "", + " Contracts that use `#[unstable]` functions won't be able to be uploaded unless", + " this is set to `true`. This is only meant for testnets and dev nodes in order to", + " experiment with new features.", + "", + " # Warning", + "", + " Do **not** set to `true` on productions chains." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ChainId", + "type": 12, + "value": "0x441b0f1900000000", + "docs": [ + " The [EIP-155](https://eips.ethereum.org/EIPS/eip-155) chain ID.", + "", + " This is a unique identifier assigned to each blockchain network,", + " preventing replay attacks." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NativeToEthRatio", + "type": 4, + "value": "0x40420f00", + "docs": [ + " The ratio between the decimal representation of the native token and the ETH token." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 1008, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeCall", + "type": 141, + "docs": [ + " The overarching call type." + ] + } + ], + "viewFunctions": [], + "index": 80, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "VerifySignature", + "storage": null, + "calls": null, + "events": null, + "constants": [], + "errors": null, + "associatedTypes": [ + { + "name": "Signature", + "type": 315, + "docs": [ + " Signature type that the extension of this pallet can verify." + ] + } + ], + "viewFunctions": [], + "index": 81, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "DelegatedStaking", + "storage": { + "prefix": "DelegatedStaking", + "items": [ + { + "name": "Delegators", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1009 + } + }, + "fallback": "0x00", + "docs": [ + " Map of Delegators to their `Delegation`.", + "", + " Implementation note: We are not using a double map with `delegator` and `agent` account", + " as keys since we want to restrict delegators to delegate only to one account at a time." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForDelegators", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Agents", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Twox64Concat" + ], + "key": 0, + "value": 1010 + } + }, + "fallback": "0x00", + "docs": [ + " Map of `Agent` to their `Ledger`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "CounterForAgents", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + "Counter for the related counted storage map" + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": { + "type": 548, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f646c73746b", + "docs": [ + " Injected identifier for the pallet." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SlashRewardFraction", + "type": 49, + "value": "0x80969800", + "docs": [ + " Fraction of the slash that is rewarded to the caller of pending slash to the agent." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 1011, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 82, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetRewards", + "storage": { + "prefix": "AssetRewards", + "items": [ + { + "name": "PoolStakers", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 651, + "value": 1012 + } + }, + "fallback": "0x00", + "docs": [ + " State of pool stakers." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Pools", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 1013 + } + }, + "fallback": "0x00", + "docs": [ + " State and configuration of each staking pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "PoolCost", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat" + ], + "key": 4, + "value": 1014 + } + }, + "fallback": "0x00", + "docs": [ + " The cost associated with storing pool information on-chain which was incurred by the pool", + " creator.", + "", + " This cost may be [`None`], as determined by [`Config::Consideration`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NextPoolId", + "modifier": "Default", + "type": { + "plain": 4 + }, + "fallback": "0x00000000", + "docs": [ + " Stores the [`PoolId`] to use for the next pool.", + "", + " Incremented when a new pool is created." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": { + "type": 481, + "deprecationInfo": {} + }, + "events": { + "type": 549, + "deprecationInfo": {} + }, + "constants": [ + { + "name": "PalletId", + "type": 714, + "value": "0x70792f73746b7264", + "docs": [ + " The pallet's unique identifier, used to derive the pool's account ID.", + "", + " The account ID is derived once during pool creation and stored in the storage." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "errors": { + "type": 1016, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "AssetId", + "type": 40, + "docs": [ + " Identifier for each type of asset." + ] + }, + { + "name": "Balance", + "type": 6, + "docs": [ + " The type in which the assets are measured." + ] + } + ], + "viewFunctions": [], + "index": 83, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetsFreezer", + "storage": { + "prefix": "AssetsFreezer", + "items": [ + { + "name": "Freezes", + "modifier": "Default", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 651, + "value": 622 + } + }, + "fallback": "0x00", + "docs": [ + " A map that stores freezes applied on an account for a given AssetId." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "FrozenBalances", + "modifier": "Optional", + "type": { + "map": { + "hashers": [ + "Blake2_128Concat", + "Blake2_128Concat" + ], + "key": 651, + "value": 6 + } + }, + "fallback": "0x00", + "docs": [ + " A map that stores the current total frozen balance for every account on a given AssetId." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ] + }, + "calls": null, + "events": { + "type": 550, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 1017, + "deprecationInfo": {} + }, + "associatedTypes": [ + { + "name": "RuntimeFreezeReason", + "type": 624, + "docs": [ + " The overarching freeze reason." + ] + } + ], + "viewFunctions": [], + "index": 84, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MetaTx", + "storage": null, + "calls": { + "type": 482, + "deprecationInfo": {} + }, + "events": { + "type": 551, + "deprecationInfo": {} + }, + "constants": [], + "errors": { + "type": 1018, + "deprecationInfo": {} + }, + "associatedTypes": [], + "viewFunctions": [], + "index": 89, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "extrinsic": { + "versions": "0x0405", + "addressType": 165, + "callType": 141, + "signatureType": 315, + "transactionExtensionsByVersion": { + "0": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10 + ] + }, + "transactionExtensions": [ + { + "identifier": "AuthorizeCall", + "type": 572, + "implicit": 34 + }, + { + "identifier": "CheckNonZeroSender", + "type": 487, + "implicit": 34 + }, + { + "identifier": "CheckSpecVersion", + "type": 488, + "implicit": 4 + }, + { + "identifier": "CheckTxVersion", + "type": 489, + "implicit": 4 + }, + { + "identifier": "CheckGenesis", + "type": 490, + "implicit": 13 + }, + { + "identifier": "CheckMortality", + "type": 491, + "implicit": 13 + }, + { + "identifier": "CheckNonce", + "type": 493, + "implicit": 34 + }, + { + "identifier": "CheckWeight", + "type": 573, + "implicit": 34 + }, + { + "identifier": "ChargeAssetTxPayment", + "type": 574, + "implicit": 34 + }, + { + "identifier": "CheckMetadataHash", + "type": 494, + "implicit": 94 + }, + { + "identifier": "WeightReclaim", + "type": 576, + "implicit": 34 + } + ] + }, + "apis": [ + { + "name": "Core", + "methods": [ + { + "name": "version", + "inputs": [], + "output": 564, + "docs": [ + " Returns the version of the runtime." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "execute_block", + "inputs": [ + { + "name": "block", + "type": 569 + } + ], + "output": 34, + "docs": [ + " Execute the given block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "initialize_block", + "inputs": [ + { + "name": "header", + "type": 155 + } + ], + "output": 1019, + "docs": [ + " Initialize a block with the given header and return the runtime executive mode." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The `Core` runtime api that every Bizinikiwi runtime needs to implement." + ], + "version": 5, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "Metadata", + "methods": [ + { + "name": "metadata", + "inputs": [], + "output": 1020, + "docs": [ + " Returns the metadata of a runtime." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "metadata_at_version", + "inputs": [ + { + "name": "version", + "type": 4 + } + ], + "output": 1021, + "docs": [ + " Returns the metadata at a given version.", + "", + " If the given `version` isn't supported, this will return `None`.", + " Use [`Self::metadata_versions`] to find out about supported metadata version of the runtime." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "metadata_versions", + "inputs": [], + "output": 114, + "docs": [ + " Returns the supported metadata versions.", + "", + " This can be used to call `metadata_at_version`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The `Metadata` api trait that returns metadata for the runtime." + ], + "version": 2, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "RuntimeViewFunction", + "methods": [ + { + "name": "execute_view_function", + "inputs": [ + { + "name": "query_id", + "type": 1022 + }, + { + "name": "input", + "type": 14 + } + ], + "output": 1023, + "docs": [ + " Execute a view function query." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " Runtime API for executing view functions" + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BlockBuilder", + "methods": [ + { + "name": "apply_extrinsic", + "inputs": [ + { + "name": "extrinsic", + "type": 570 + } + ], + "output": 1025, + "docs": [ + " Apply the given extrinsic.", + "", + " Returns an inclusion outcome which specifies if this extrinsic is included in", + " this block or not." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "finalize_block", + "inputs": [], + "output": 155, + "docs": [ + " Finish the current block." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "inherent_extrinsics", + "inputs": [ + { + "name": "inherent", + "type": 1029 + } + ], + "output": 577, + "docs": [ + " Generate inherent extrinsics. The inherent data will vary from chain to chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "check_inherents", + "inputs": [ + { + "name": "block", + "type": 569 + }, + { + "name": "data", + "type": 1029 + } + ], + "output": 1033, + "docs": [ + " Check that the inherents are valid. The inherent data will vary from chain to chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The `BlockBuilder` api trait that provides the required functionality for building a block." + ], + "version": 6, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TaggedTransactionQueue", + "methods": [ + { + "name": "validate_transaction", + "inputs": [ + { + "name": "source", + "type": 1034 + }, + { + "name": "tx", + "type": 570 + }, + { + "name": "block_hash", + "type": 13 + } + ], + "output": 1035, + "docs": [ + " Validate the transaction.", + "", + " This method is invoked by the transaction pool to learn details about given transaction.", + " The implementation should make sure to verify the correctness of the transaction", + " against current state. The given `block_hash` corresponds to the hash of the block", + " that is used as current state.", + "", + " Note that this call may be performed by the pool multiple times and transactions", + " might be verified in any possible order." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The `TaggedTransactionQueue` api trait for interfering with the transaction queue." + ], + "version": 3, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ValidateStatement", + "methods": [ + { + "name": "validate_statement", + "inputs": [ + { + "name": "source", + "type": 1037 + }, + { + "name": "statement", + "type": 527 + } + ], + "output": 1038, + "docs": [ + " Validate the statement." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " Runtime API trait for statement validation." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "OffchainWorkerApi", + "methods": [ + { + "name": "offchain_worker", + "inputs": [ + { + "name": "header", + "type": 155 + } + ], + "output": 34, + "docs": [ + " Starts the off-chain task for given block header." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The offchain worker api." + ], + "version": 2, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "GrandpaApi", + "methods": [ + { + "name": "grandpa_authorities", + "inputs": [], + "output": 67, + "docs": [ + " Get the current GRANDPA authorities and weights. This should not change except", + " for when changes are scheduled and the corresponding delay has passed.", + "", + " When called at block B, it will return the set of authorities that should be", + " used to finalize descendants of this block (B+1, B+2, ...). The block B itself", + " is finalized by the authorities from block B-1." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 256 + }, + { + "name": "key_owner_proof", + "type": 1041 + } + ], + "output": 1042, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 69 + } + ], + "output": 1043, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignore this parameter and instead rely on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "current_set_id", + "inputs": [], + "output": 12, + "docs": [ + " Get current GRANDPA authority set id." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " APIs for integrating the GRANDPA finality gadget into runtimes.", + " This should be implemented on the runtime side.", + "", + " This is primarily used for negotiating authority-set changes for the", + " gadget. GRANDPA uses a signaling model of changing authority sets:", + " changes should be signaled with a delay of N blocks, and then automatically", + " applied in the runtime after those N blocks have passed.", + "", + " The consensus protocol will coordinate the handoff externally." + ], + "version": 3, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NominationPoolsApi", + "methods": [ + { + "name": "pending_rewards", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending rewards for the member that the AccountId was given for." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "points_to_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "points", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent balance of `points` for a given pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "balance_to_points", + "inputs": [ + { + "name": "pool_id", + "type": 4 + }, + { + "name": "new_funds", + "type": 6 + } + ], + "output": 6, + "docs": [ + " Returns the equivalent points of `new_funds` for a given pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "pool_pending_slash", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "member_pending_slash", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the pending slash for a given pool member.", + "", + " If pending slash of the member exceeds `ExistentialDeposit`, it can be reported on", + " chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "pool_needs_delegate_migration", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 8, + "docs": [ + " Returns true if the pool with `pool_id` needs migration.", + "", + " This can happen when the `pallet-nomination-pools` has switched to using strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake) but the pool", + " still has funds that were staked using the older strategy", + " [TransferStake](pallet_nomination_pools::adapter::TransferStake). Use", + " [`migrate_pool_to_delegate_stake`](pallet_nomination_pools::Call::migrate_pool_to_delegate_stake)", + " to migrate the pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "member_needs_delegate_migration", + "inputs": [ + { + "name": "member", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if the delegated funds of the pool `member` needs migration.", + "", + " Once a pool has successfully migrated to the strategy", + " [`DelegateStake`](pallet_nomination_pools::adapter::DelegateStake), the funds of the", + " member can be migrated from pool account to the member's account. Use", + " [`migrate_delegation`](pallet_nomination_pools::Call::migrate_delegation)", + " to migrate the funds of the pool member." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "member_total_balance", + "inputs": [ + { + "name": "who", + "type": 0 + } + ], + "output": 6, + "docs": [ + " Returns the total contribution of a pool member including any balance that is unbonding." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "pool_balance", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Total balance contributed to the pool." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "pool_accounts", + "inputs": [ + { + "name": "pool_id", + "type": 4 + } + ], + "output": 777, + "docs": [ + " Returns the bonded account and reward account associated with the pool_id." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " Runtime api for accessing information about nomination pools." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "StakingApi", + "methods": [ + { + "name": "nominations_quota", + "inputs": [ + { + "name": "balance", + "type": 6 + } + ], + "output": 4, + "docs": [ + " Returns the nominations quota for a nominator with a given balance." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "eras_stakers_page_count", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Returns the page count of exposures for a validator `account` in a given era." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "pending_rewards", + "inputs": [ + { + "name": "era", + "type": 4 + }, + { + "name": "account", + "type": 0 + } + ], + "output": 8, + "docs": [ + " Returns true if validator `account` has pages to be claimed for the given era." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BabeApi", + "methods": [ + { + "name": "configuration", + "inputs": [], + "output": 1044, + "docs": [ + " Return the configuration for BABE." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "current_epoch_start", + "inputs": [], + "output": 158, + "docs": [ + " Returns the slot that started the current epoch." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "current_epoch", + "inputs": [], + "output": 1045, + "docs": [ + " Returns information regarding the current epoch." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "next_epoch", + "inputs": [], + "output": 1045, + "docs": [ + " Returns information regarding the next epoch (which was already", + " previously announced)." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "slot", + "type": 158 + }, + { + "name": "authority_id", + "type": 157 + } + ], + "output": 1046, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " current epoch. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `slot` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the epoch for the given slot is live on-chain. Future", + " implementations will instead use indexed data through an offchain", + " worker, not requiring older states to be available." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "submit_report_equivocation_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 154 + }, + { + "name": "key_owner_proof", + "type": 1047 + } + ], + "output": 1042, + "docs": [ + " Submits an unsigned extrinsic to report an equivocation. The caller", + " must provide the equivocation proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " API necessary for block authorship with BABE." + ], + "version": 2, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AuthorityDiscoveryApi", + "methods": [ + { + "name": "authorities", + "inputs": [], + "output": 743, + "docs": [ + " Retrieve authority identifiers of the current and next authority set." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The authority discovery api.", + "", + " This api is used by the `client/authority-discovery` module to retrieve identifiers", + " of the current and next authority set." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AccountNonceApi", + "methods": [ + { + "name": "account_nonce", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 4, + "docs": [ + " Get current account nonce of given `AccountId`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The API to query account nonce." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetsApi", + "methods": [ + { + "name": "account_balances", + "inputs": [ + { + "name": "account", + "type": 0 + } + ], + "output": 770, + "docs": [ + " Returns the list of `AssetId`s and corresponding balance that an `AccountId` has." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ContractsApi", + "methods": [ + { + "name": "call", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "dest", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 504 + }, + { + "name": "storage_deposit_limit", + "type": 236 + }, + { + "name": "input_data", + "type": 14 + } + ], + "output": 1048, + "docs": [ + " Perform a call from a specified account to a given contract.", + "", + " See [`crate::Pallet::bare_call`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "instantiate", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 504 + }, + { + "name": "storage_deposit_limit", + "type": 236 + }, + { + "name": "code", + "type": 1055 + }, + { + "name": "data", + "type": 14 + }, + { + "name": "salt", + "type": 14 + } + ], + "output": 1056, + "docs": [ + " Instantiate a new contract.", + "", + " See `[crate::Pallet::bare_instantiate]`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "upload_code", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "code", + "type": 14 + }, + { + "name": "storage_deposit_limit", + "type": 236 + }, + { + "name": "determinism", + "type": 270 + } + ], + "output": 1059, + "docs": [ + " Upload new code without instantiating a contract from it.", + "", + " See [`crate::Pallet::bare_upload_code`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "get_storage", + "inputs": [ + { + "name": "address", + "type": 0 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 1061, + "docs": [ + " Query a given storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The API used to dry-run contract interactions." + ], + "version": 2, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TransactionPaymentApi", + "methods": [ + { + "name": "query_info", + "inputs": [ + { + "name": "uxt", + "type": 570 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1063, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "query_fee_details", + "inputs": [ + { + "name": "uxt", + "type": 570 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1064, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [], + "version": 4, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetConversionApi", + "methods": [ + { + "name": "quote_price_tokens_for_exact_tokens", + "inputs": [ + { + "name": "asset1", + "type": 40 + }, + { + "name": "asset2", + "type": 40 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 236, + "docs": [ + " Provides a quote for [`Pallet::swap_tokens_for_exact_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_in_max` to control slippage.)" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "quote_price_exact_tokens_for_tokens", + "inputs": [ + { + "name": "asset1", + "type": 40 + }, + { + "name": "asset2", + "type": 40 + }, + { + "name": "amount", + "type": 6 + }, + { + "name": "include_fee", + "type": 8 + } + ], + "output": 236, + "docs": [ + " Provides a quote for [`Pallet::swap_exact_tokens_for_tokens`].", + "", + " Note that the price may have changed by the time the transaction is executed.", + " (Use `amount_out_min` to control slippage.)" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "get_reserves", + "inputs": [ + { + "name": "asset1", + "type": 40 + }, + { + "name": "asset2", + "type": 40 + } + ], + "output": 1067, + "docs": [ + " Returns the size of the liquidity pool for the given asset pair." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " This runtime api allows people to query the size of the liquidity pools", + " and quote prices for swaps." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "TransactionPaymentCallApi", + "methods": [ + { + "name": "query_call_info", + "inputs": [ + { + "name": "call", + "type": 141 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1063, + "docs": [ + " Query information of a dispatch class, weight, and fee of a given encoded `Call`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "query_call_fee_details", + "inputs": [ + { + "name": "call", + "type": 141 + }, + { + "name": "len", + "type": 4 + } + ], + "output": 1064, + "docs": [ + " Query fee details of a given encoded `Call`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "query_weight_to_fee", + "inputs": [ + { + "name": "weight", + "type": 10 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `WeightToFee` given some input." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "query_length_to_fee", + "inputs": [ + { + "name": "length", + "type": 4 + } + ], + "output": 6, + "docs": [ + " Query the output of the current `LengthToFee` given some input." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [], + "version": 3, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "NftsApi", + "methods": [ + { + "name": "owner", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 4 + } + ], + "output": 43, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "collection_owner", + "inputs": [ + { + "name": "collection", + "type": 4 + } + ], + "output": 43, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "attribute", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 4 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 441, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "custom_attribute", + "inputs": [ + { + "name": "account", + "type": 0 + }, + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 4 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 441, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "system_attribute", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "item", + "type": 50 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 441, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "collection_attribute", + "inputs": [ + { + "name": "collection", + "type": 4 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 441, + "docs": [], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "BeefyApi", + "methods": [ + { + "name": "beefy_genesis", + "inputs": [], + "output": 50, + "docs": [ + " Return the block number where BEEFY consensus is enabled/started" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "validator_set", + "inputs": [], + "output": 1069, + "docs": [ + " Return the current active BEEFY validator set" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "submit_report_double_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 338 + }, + { + "name": "key_owner_proof", + "type": 1041 + } + ], + "output": 1042, + "docs": [ + " Submits an unsigned extrinsic to report a double voting equivocation. The caller", + " must provide the double voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`). The", + " extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "submit_report_fork_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 1071 + }, + { + "name": "key_owner_proof", + "type": 1041 + } + ], + "output": 1042, + "docs": [ + " Submits an unsigned extrinsic to report a fork voting equivocation. The caller", + " must provide the fork voting proof (the ancestry proof should be obtained using", + " `generate_ancestry_proof`) and a key ownership proof (should be obtained using", + " `generate_key_ownership_proof`). The extrinsic will be unsigned and should only", + " be accepted for local authorship (not to be broadcast to the network). This method", + " returns `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "submit_report_future_block_voting_unsigned_extrinsic", + "inputs": [ + { + "name": "equivocation_proof", + "type": 349 + }, + { + "name": "key_owner_proof", + "type": 1041 + } + ], + "output": 1042, + "docs": [ + " Submits an unsigned extrinsic to report a future block voting equivocation. The caller", + " must provide the future block voting proof and a key ownership proof", + " (should be obtained using `generate_key_ownership_proof`).", + " The extrinsic will be unsigned and should only be accepted for local", + " authorship (not to be broadcast to the network). This method returns", + " `None` when creation of the extrinsic fails, e.g. if equivocation", + " reporting is disabled for the given runtime (i.e. this method is", + " hardcoded to return `None`). Only useful in an offchain context." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "generate_key_ownership_proof", + "inputs": [ + { + "name": "set_id", + "type": 12 + }, + { + "name": "authority_id", + "type": 245 + } + ], + "output": 1043, + "docs": [ + " Generates a proof of key ownership for the given authority in the", + " given set. An example usage of this module is coupled with the", + " session historical module to prove that a given authority key is", + " tied to a given staking identity during a specific session. Proofs", + " of key ownership are necessary for submitting equivocation reports.", + " NOTE: even though the API takes a `set_id` as parameter the current", + " implementations ignores this parameter and instead relies on this", + " method being called at the correct block height, i.e. any point at", + " which the given set id is live on-chain. Future implementations will", + " instead use indexed data through an offchain worker, not requiring", + " older states to be available." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "generate_ancestry_proof", + "inputs": [ + { + "name": "prev_block_number", + "type": 4 + }, + { + "name": "best_known_block_number", + "type": 50 + } + ], + "output": 1043, + "docs": [ + " Generates a proof that the `prev_block_number` is part of the canonical chain at", + " `best_known_block_number`." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " API necessary for BEEFY voters." + ], + "version": 5, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MmrApi", + "methods": [ + { + "name": "mmr_root", + "inputs": [], + "output": 1072, + "docs": [ + " Return the on-chain MMR root hash." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "mmr_leaf_count", + "inputs": [], + "output": 1074, + "docs": [ + " Return the number of MMR blocks in the chain." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "generate_proof", + "inputs": [ + { + "name": "block_numbers", + "type": 114 + }, + { + "name": "best_known_block_number", + "type": 50 + } + ], + "output": 1075, + "docs": [ + " Generate MMR proof for a series of block numbers. If `best_known_block_number = Some(n)`,", + " use historical MMR state at given block height `n`. Else, use current MMR state." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "verify_proof", + "inputs": [ + { + "name": "leaves", + "type": 1077 + }, + { + "name": "proof", + "type": 1079 + } + ], + "output": 1080, + "docs": [ + " Verify MMR proof against on-chain MMR for a batch of leaves.", + "", + " Note this function will use on-chain MMR root hash and check if the proof matches the hash.", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "verify_proof_stateless", + "inputs": [ + { + "name": "root", + "type": 13 + }, + { + "name": "leaves", + "type": 1077 + }, + { + "name": "proof", + "type": 1079 + } + ], + "output": 1080, + "docs": [ + " Verify MMR proof against given root hash for a batch of leaves.", + "", + " Note this function does not require any on-chain storage - the", + " proof is verified against given MMR root hash.", + "", + " Note, the leaves should be sorted such that corresponding leaves and leaf indices have the", + " same position in both the `leaves` vector and the `leaf_indices` vector contained in the [LeafProof]" + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " API to interact with MMR pallet." + ], + "version": 2, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "MixnetApi", + "methods": [ + { + "name": "session_status", + "inputs": [], + "output": 1081, + "docs": [ + " Get the index and phase of the current session." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "prev_mixnodes", + "inputs": [], + "output": 1083, + "docs": [ + " Get the mixnode set for the previous session." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "current_mixnodes", + "inputs": [], + "output": 1083, + "docs": [ + " Get the mixnode set for the current session." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "maybe_register", + "inputs": [ + { + "name": "session_index", + "type": 4 + }, + { + "name": "mixnode", + "type": 1085 + } + ], + "output": 8, + "docs": [ + " Try to register a mixnode for the next session.", + "", + " If a registration extrinsic is submitted, `true` is returned. The caller should avoid", + " calling `maybe_register` again for a few blocks, to give the submitted extrinsic a", + " chance to get included.", + "", + " With the above exception, `maybe_register` is designed to be called every block. Most", + " of the time it will not do anything, for example:", + "", + " - If it is not an appropriate time to submit a registration extrinsic.", + " - If the local node has already registered a mixnode for the next session.", + " - If the local node is not permitted to register a mixnode for the next session.", + "", + " `session_index` should match `session_status().current_index`; if it does not, `false`", + " is returned immediately." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " API to query the mixnet session status and mixnode sets, and to register mixnodes." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "SessionKeys", + "methods": [ + { + "name": "generate_session_keys", + "inputs": [ + { + "name": "seed", + "type": 441 + } + ], + "output": 14, + "docs": [ + " Generate a set of session keys with optionally using the given seed.", + " The keys should be stored within the keystore exposed via runtime", + " externalities.", + "", + " The seed needs to be a valid `utf8` string.", + "", + " Returns the concatenated SCALE encoded public keys." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "decode_session_keys", + "inputs": [ + { + "name": "encoded", + "type": 14 + } + ], + "output": 1087, + "docs": [ + " Decode the given public session keys.", + "", + " Returns the list of public raw public keys + key type." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " Session keys runtime api." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "AssetRewards", + "methods": [ + { + "name": "pool_creation_cost", + "inputs": [], + "output": 6, + "docs": [ + " Get the cost of creating a pool.", + "", + " This is especially useful when the cost is dynamic." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The runtime API for the asset rewards pallet." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "GenesisBuilder", + "methods": [ + { + "name": "build_state", + "inputs": [ + { + "name": "json", + "type": 14 + } + ], + "output": 1090, + "docs": [ + " Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the", + " storage.", + "", + " In the case of a FRAME-based runtime, this function deserializes the full", + " `RuntimeGenesisConfig` from the given JSON blob and puts it into the storage. If the", + " provided JSON blob is incorrect or incomplete or the deserialization fails, an error", + " is returned.", + "", + " Please note that provided JSON blob must contain all `RuntimeGenesisConfig` fields, no", + " defaults will be used." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "get_preset", + "inputs": [ + { + "name": "id", + "type": 1091 + } + ], + "output": 441, + "docs": [ + " Returns a JSON blob representation of the built-in `RuntimeGenesisConfig` identified by", + " `id`.", + "", + " If `id` is `None` the function should return JSON blob representation of the default", + " `RuntimeGenesisConfig` struct of the runtime. Implementation must provide default", + " `RuntimeGenesisConfig`.", + "", + " Otherwise function returns a JSON representation of the built-in, named", + " `RuntimeGenesisConfig` preset identified by `id`, or `None` if such preset does not", + " exist. Returned `Vec` contains bytes of JSON blob (patch) which comprises a list of", + " (potentially nested) key-value pairs that are intended for customizing the default", + " runtime genesis config. The patch shall be merged (rfc7386) with the JSON representation", + " of the default `RuntimeGenesisConfig` to create a comprehensive genesis config that can", + " be used in `build_state` method." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "preset_names", + "inputs": [], + "output": 1092, + "docs": [ + " Returns a list of identifiers for available builtin `RuntimeGenesisConfig` presets.", + "", + " The presets from the list can be queried with [`GenesisBuilder::get_preset`] method. If", + " no named presets are provided by the runtime the list is empty." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " API to interact with `RuntimeGenesisConfig` for the runtime" + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "ReviveApi", + "methods": [ + { + "name": "block_gas_limit", + "inputs": [], + "output": 1093, + "docs": [ + " Returns the block gas limit." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "balance", + "inputs": [ + { + "name": "address", + "type": 480 + } + ], + "output": 1093, + "docs": [ + " Returns the free balance of the given `[H160]` address, using EVM decimals." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "gas_price", + "inputs": [], + "output": 1093, + "docs": [ + " Returns the gas price." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "nonce", + "inputs": [ + { + "name": "address", + "type": 480 + } + ], + "output": 4, + "docs": [ + " Returns the nonce of the given `[H160]` address." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "call", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "dest", + "type": 480 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 504 + }, + { + "name": "storage_deposit_limit", + "type": 236 + }, + { + "name": "input_data", + "type": 14 + } + ], + "output": 1095, + "docs": [ + " Perform a call from a specified account to a given contract.", + "", + " See [`crate::Pallet::bare_call`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "instantiate", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "value", + "type": 6 + }, + { + "name": "gas_limit", + "type": 504 + }, + { + "name": "storage_deposit_limit", + "type": 236 + }, + { + "name": "code", + "type": 1100 + }, + { + "name": "data", + "type": 14 + }, + { + "name": "salt", + "type": 94 + } + ], + "output": 1101, + "docs": [ + " Instantiate a new contract.", + "", + " See `[crate::Pallet::bare_instantiate]`." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "eth_transact", + "inputs": [ + { + "name": "tx", + "type": 1104 + } + ], + "output": 1116, + "docs": [ + " Perform an Ethereum call.", + "", + " See [`crate::Pallet::dry_run_eth_transact`]" + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "upload_code", + "inputs": [ + { + "name": "origin", + "type": 0 + }, + { + "name": "code", + "type": 14 + }, + { + "name": "storage_deposit_limit", + "type": 236 + } + ], + "output": 1119, + "docs": [ + " Upload new code without instantiating a contract from it.", + "", + " See [`crate::Pallet::bare_upload_code`]." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "get_storage", + "inputs": [ + { + "name": "address", + "type": 480 + }, + { + "name": "key", + "type": 1 + } + ], + "output": 1121, + "docs": [ + " Query a given storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "get_storage_var_key", + "inputs": [ + { + "name": "address", + "type": 480 + }, + { + "name": "key", + "type": 14 + } + ], + "output": 1121, + "docs": [ + " Query a given variable-sized storage key in a given contract.", + "", + " Returns `Ok(Some(Vec))` if the storage value exists under the given key in the", + " specified account and `Ok(None)` if it doesn't. If the account specified by the address", + " doesn't exist, or doesn't have a contract then `Err` is returned." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "trace_block", + "inputs": [ + { + "name": "block", + "type": 569 + }, + { + "name": "config", + "type": 1123 + } + ], + "output": 1126, + "docs": [ + " Traces the execution of an entire block and returns call traces.", + "", + " This is intended to be called through `state_call` to replay the block from the", + " parent block.", + "", + " See eth-rpc `debug_traceBlockByNumber` for usage." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "trace_tx", + "inputs": [ + { + "name": "block", + "type": 569 + }, + { + "name": "tx_index", + "type": 4 + }, + { + "name": "config", + "type": 1123 + } + ], + "output": 1134, + "docs": [ + " Traces the execution of a specific transaction within a block.", + "", + " This is intended to be called through `state_call` to replay the block from the", + " parent hash up to the transaction.", + "", + " See eth-rpc `debug_traceTransaction` for usage." + ], + "deprecationInfo": { + "notDeprecated": null + } + }, + { + "name": "trace_call", + "inputs": [ + { + "name": "tx", + "type": 1104 + }, + { + "name": "config", + "type": 1123 + } + ], + "output": 1135, + "docs": [ + " Dry run and return the trace of the given call.", + "", + " See eth-rpc `debug_traceCall` for usage." + ], + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "docs": [ + " The API used to dry-run contract interactions." + ], + "version": 1, + "deprecationInfo": { + "notDeprecated": null + } + } + ], + "outerEnums": { + "callType": 141, + "eventType": 21, + "errorType": 1136 + }, + "custom": { + "map": {} + } + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/metadata/v16/bizinikiwi-rpc.ts b/packages/types-support/src/metadata/v16/bizinikiwi-rpc.ts new file mode 100644 index 0000000..70def2b --- /dev/null +++ b/packages/types-support/src/metadata/v16/bizinikiwi-rpc.ts @@ -0,0 +1,138 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "methods": [ + "account_nextIndex", + "author_hasKey", + "author_hasSessionKeys", + "author_insertKey", + "author_pendingExtrinsics", + "author_removeExtrinsic", + "author_rotateKeys", + "author_submitAndWatchExtrinsic", + "author_submitExtrinsic", + "author_unwatchExtrinsic", + "babe_epochAuthorship", + "beefy_getFinalizedHead", + "beefy_subscribeJustifications", + "beefy_unsubscribeJustifications", + "chainHead_v1_body", + "chainHead_v1_call", + "chainHead_v1_continue", + "chainHead_v1_follow", + "chainHead_v1_header", + "chainHead_v1_stopOperation", + "chainHead_v1_storage", + "chainHead_v1_unfollow", + "chainHead_v1_unpin", + "chainSpec_v1_chainName", + "chainSpec_v1_genesisHash", + "chainSpec_v1_properties", + "chain_getBlock", + "chain_getBlockHash", + "chain_getFinalisedHead", + "chain_getFinalizedHead", + "chain_getHead", + "chain_getHeader", + "chain_getRuntimeVersion", + "chain_subscribeAllHeads", + "chain_subscribeFinalisedHeads", + "chain_subscribeFinalizedHeads", + "chain_subscribeNewHead", + "chain_subscribeNewHeads", + "chain_subscribeRuntimeVersion", + "chain_unsubscribeAllHeads", + "chain_unsubscribeFinalisedHeads", + "chain_unsubscribeFinalizedHeads", + "chain_unsubscribeNewHead", + "chain_unsubscribeNewHeads", + "chain_unsubscribeRuntimeVersion", + "childstate_getKeys", + "childstate_getKeysPaged", + "childstate_getKeysPagedAt", + "childstate_getStorage", + "childstate_getStorageEntries", + "childstate_getStorageHash", + "childstate_getStorageSize", + "dev_getBlockStats", + "grandpa_proveFinality", + "grandpa_roundState", + "grandpa_subscribeJustifications", + "grandpa_unsubscribeJustifications", + "mmr_generateProof", + "mmr_root", + "mmr_verifyProof", + "mmr_verifyProofStateless", + "offchain_localStorageClear", + "offchain_localStorageGet", + "offchain_localStorageSet", + "payment_queryFeeDetails", + "payment_queryInfo", + "rpc_methods", + "state_call", + "state_callAt", + "state_getChildReadProof", + "state_getKeys", + "state_getKeysPaged", + "state_getKeysPagedAt", + "state_getMetadata", + "state_getPairs", + "state_getReadProof", + "state_getRuntimeVersion", + "state_getStorage", + "state_getStorageAt", + "state_getStorageHash", + "state_getStorageHashAt", + "state_getStorageSize", + "state_getStorageSizeAt", + "state_queryStorage", + "state_queryStorageAt", + "state_subscribeRuntimeVersion", + "state_subscribeStorage", + "state_traceBlock", + "state_trieMigrationStatus", + "state_unsubscribeRuntimeVersion", + "state_unsubscribeStorage", + "statement_broadcasts", + "statement_broadcastsStatement", + "statement_dump", + "statement_posted", + "statement_postedClear", + "statement_postedClearStatement", + "statement_postedStatement", + "statement_remove", + "statement_submit", + "subscribe_newHead", + "sync_state_genSyncSpec", + "system_accountNextIndex", + "system_addLogFilter", + "system_addReservedPeer", + "system_chain", + "system_chainType", + "system_dryRun", + "system_dryRunAt", + "system_health", + "system_localListenAddresses", + "system_localPeerId", + "system_name", + "system_nodeRoles", + "system_peers", + "system_properties", + "system_removeReservedPeer", + "system_reservedPeers", + "system_resetLogFilter", + "system_syncState", + "system_unstable_networkState", + "system_version", + "transactionWatch_v1_submitAndWatch", + "transactionWatch_v1_unwatch", + "transaction_v1_broadcast", + "transaction_v1_stop", + "unsubscribe_newHead" + ] +}; diff --git a/packages/types-support/src/metadata/v16/bizinikiwi-types.json b/packages/types-support/src/metadata/v16/bizinikiwi-types.json new file mode 100644 index 0000000..5d13b68 --- /dev/null +++ b/packages/types-support/src/metadata/v16/bizinikiwi-types.json @@ -0,0 +1,81856 @@ +[ + { + "id": 0, + "type": { + "path": [ + "sp_core", + "crypto", + "AccountId32" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 32, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 2, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U8" + }, + "docs": [] + } + }, + { + "id": 3, + "type": { + "path": [ + "frame_system", + "AccountInfo" + ], + "params": [ + { + "name": "Nonce", + "type": 4 + }, + { + "name": "AccountData", + "type": 5 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "nonce", + "type": 4, + "typeName": "Nonce", + "docs": [] + }, + { + "name": "consumers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "providers", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "RefCount", + "docs": [] + }, + { + "name": "data", + "type": 5, + "typeName": "AccountData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 4, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U32" + }, + "docs": [] + } + }, + { + "id": 5, + "type": { + "path": [ + "pallet_balances", + "types", + "AccountData" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "free", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reserved", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "frozen", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "flags", + "type": 7, + "typeName": "ExtraFlags", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 6, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U128" + }, + "docs": [] + } + }, + { + "id": 7, + "type": { + "path": [ + "pallet_balances", + "types", + "ExtraFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 8, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Bool" + }, + "docs": [] + } + }, + { + "id": 9, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 10, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 10, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 10, + "type": { + "path": [ + "sp_weights", + "weight_v2", + "Weight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "ref_time", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "proof_size", + "type": 11, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 11, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 12, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U64" + }, + "docs": [] + } + }, + { + "id": 13, + "type": { + "path": [ + "primitive_types", + "H256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 14, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 15, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "Digest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "logs", + "type": 16, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 16, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 17 + } + }, + "docs": [] + } + }, + { + "id": 17, + "type": { + "path": [ + "sp_runtime", + "generic", + "digest", + "DigestItem" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PreRuntime", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Consensus", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Seal", + "fields": [ + { + "name": null, + "type": 18, + "typeName": "ConsensusEngineId", + "docs": [] + }, + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Other", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "RuntimeEnvironmentUpdated", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 18, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 19, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 20, + "type": { + "path": [ + "frame_system", + "EventRecord" + ], + "params": [ + { + "name": "E", + "type": 21 + }, + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "phase", + "type": 552, + "typeName": "Phase", + "docs": [] + }, + { + "name": "event", + "type": 21, + "typeName": "E", + "docs": [] + }, + { + "name": "topics", + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 21, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeEvent" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 22, + "typeName": "frame_system::Event", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 32, + "typeName": "pallet_utility::Event", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 35, + "typeName": "pallet_indices::Event", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 36, + "typeName": "pallet_balances::Event", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "TransactionPayment", + "fields": [ + { + "name": null, + "type": 38, + "typeName": "pallet_transaction_payment::Event", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "AssetConversionTxPayment", + "fields": [ + { + "name": null, + "type": 39, + "typeName": "pallet_asset_conversion_tx_payment::Event", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 41, + "typeName": "pallet_election_provider_multi_phase::Event", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 47, + "typeName": "pallet_staking::Event", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 54, + "typeName": "pallet_session::Event", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 55, + "typeName": "pallet_democracy::Event", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 60, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 61, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 62, + "typeName": "pallet_elections_phragmen::Event", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 65, + "typeName": "pallet_membership::Event", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 66, + "typeName": "pallet_grandpa::Event", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 70, + "typeName": "pallet_treasury::Event", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 71, + "typeName": "pallet_asset_rate::Event", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 73, + "typeName": "pallet_contracts::Event", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 76, + "typeName": "pallet_sudo::Event", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 77, + "typeName": "pallet_im_online::Event", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Offences", + "fields": [ + { + "name": null, + "type": 81, + "typeName": "pallet_offences::Event", + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Historical", + "fields": [ + { + "name": null, + "type": 83, + "typeName": "pallet_session_historical::Event", + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 84, + "typeName": "pallet_identity::Event", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 86, + "typeName": "pallet_society::Event", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 89, + "typeName": "pallet_recovery::Event", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 91, + "typeName": "pallet_vesting::Event", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 92, + "typeName": "pallet_scheduler::Event", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 95, + "typeName": "pallet_glutton::Event", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 97, + "typeName": "pallet_preimage::Event", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 98, + "typeName": "pallet_proxy::Event", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 102, + "typeName": "pallet_multisig::Event", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 104, + "typeName": "pallet_bounties::Event", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 105, + "typeName": "pallet_tips::Event", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 106, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 107, + "typeName": "pallet_assets::Event", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 108, + "typeName": "pallet_lottery::Event", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 110, + "typeName": "pallet_nis::Event", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 112, + "typeName": "pallet_uniques::Event", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 116, + "typeName": "pallet_nfts::Event", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 123, + "typeName": "pallet_nft_fractionalization::Event", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 124, + "typeName": "pallet_salary::Event", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 125, + "typeName": "pallet_core_fellowship::Event", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 133, + "typeName": "pallet_transaction_storage::Event", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 134, + "typeName": "pallet_bags_list::Event", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 135, + "typeName": "pallet_state_trie_migration::Event", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 138, + "typeName": "pallet_child_bounties::Event", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 139, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 498, + "typeName": "pallet_remark::Event", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "fields": [ + { + "name": null, + "type": 499, + "typeName": "pallet_root_testing::Event", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 500, + "typeName": "pallet_conviction_voting::Event", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 501, + "typeName": "pallet_whitelist::Event", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 506, + "typeName": "pallet_collective::Event", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 507, + "typeName": "pallet_alliance::Event", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 508, + "typeName": "pallet_nomination_pools::Event", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 510, + "typeName": "pallet_referenda::Event", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 512, + "typeName": "pallet_ranked_collective::Event", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 514, + "typeName": "pallet_asset_conversion::Event", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 519, + "typeName": "pallet_fast_unstake::Event", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 520, + "typeName": "pallet_message_queue::Event", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "fields": [ + { + "name": null, + "type": 522, + "typeName": "frame_benchmarking_pallet_pov::Event", + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 523, + "typeName": "pallet_tx_pause::Event", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 524, + "typeName": "pallet_safe_mode::Event", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Statement", + "fields": [ + { + "name": null, + "type": 526, + "typeName": "pallet_statement::Event", + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 531, + "typeName": "pallet_migrations::Event", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 532, + "typeName": "pallet_broker::Event", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 537, + "typeName": "pallet_parameters::Event", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "SkipFeelessPayment", + "fields": [ + { + "name": null, + "type": 545, + "typeName": "pallet_skip_feeless_payment::Event", + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 546, + "typeName": "pallet_asset_conversion_ops::Event", + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 547, + "typeName": "pallet_revive::Event", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 548, + "typeName": "pallet_delegated_staking::Event", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 549, + "typeName": "pallet_asset_rewards::Event", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "AssetsFreezer", + "fields": [ + { + "name": null, + "type": 550, + "typeName": "pallet_assets_freezer::Event", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MetaTx", + "fields": [ + { + "name": null, + "type": 551, + "typeName": "pallet_meta_tx::Event", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 22, + "type": { + "path": [ + "frame_system", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ExtrinsicSuccess", + "fields": [ + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "fields": [ + { + "name": "dispatch_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + }, + { + "name": "dispatch_info", + "type": 23, + "typeName": "DispatchEventInfo", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An extrinsic failed." + ] + }, + { + "name": "CodeUpdated", + "fields": [], + "index": 2, + "docs": [ + "`:code` was updated." + ] + }, + { + "name": "NewAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A new account was created." + ] + }, + { + "name": "KilledAccount", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account was reaped." + ] + }, + { + "name": "Remarked", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "On on-chain remark happened." + ] + }, + { + "name": "UpgradeAuthorized", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An upgrade was authorized." + ] + }, + { + "name": "RejectedInvalidAuthorizedUpgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An invalid authorized upgrade was rejected while trying to apply it." + ] + } + ] + } + }, + "docs": [ + "Event for the System pallet." + ] + } + }, + { + "id": 23, + "type": { + "path": [ + "frame_system", + "DispatchEventInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 24, + "type": { + "path": [ + "frame_support", + "dispatch", + "DispatchClass" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Normal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Operational", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Mandatory", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 25, + "type": { + "path": [ + "frame_support", + "dispatch", + "Pays" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Yes", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "No", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 26, + "type": { + "path": [ + "sp_runtime", + "DispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Other", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CannotLookup", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BadOrigin", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Module", + "fields": [ + { + "name": null, + "type": 27, + "typeName": "ModuleError", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "ConsumerRemaining", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "NoProviders", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "TooManyConsumers", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Token", + "fields": [ + { + "name": null, + "type": 28, + "typeName": "TokenError", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Arithmetic", + "fields": [ + { + "name": null, + "type": 29, + "typeName": "ArithmeticError", + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Transactional", + "fields": [ + { + "name": null, + "type": 30, + "typeName": "TransactionalError", + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Exhausted", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "Corruption", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "Unavailable", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "RootNotAllowed", + "fields": [], + "index": 13, + "docs": [] + }, + { + "name": "Trie", + "fields": [ + { + "name": null, + "type": 31, + "typeName": "TrieError", + "docs": [] + } + ], + "index": 14, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 27, + "type": { + "path": [ + "sp_runtime", + "ModuleError" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "error", + "type": 18, + "typeName": "[u8; MAX_MODULE_ERROR_ENCODED_SIZE]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 28, + "type": { + "path": [ + "sp_runtime", + "TokenError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "FundsUnavailable", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyProvider", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CannotCreate", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "UnknownAsset", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "CannotCreateHold", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "NotExpendable", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 29, + "type": { + "path": [ + "sp_arithmetic", + "ArithmeticError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Underflow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Overflow", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DivisionByZero", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 30, + "type": { + "path": [ + "sp_runtime", + "TransactionalError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LimitReached", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoLayer", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 31, + "type": { + "path": [ + "sp_runtime", + "proving_trie", + "TrieError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidStateRoot", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "IncompleteDatabase", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ValueAtIncompleteKey", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DecoderError", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DuplicateKey", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExtraneousNode", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "ExtraneousValue", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "ExtraneousHashReference", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidChildReference", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "ValueMismatch", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IncompleteProof", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "RootMismatch", + "fields": [], + "index": 12, + "docs": [] + }, + { + "name": "DecodeError", + "fields": [], + "index": 13, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 32, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BatchInterrupted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Batch of dispatches did not complete fully. Index of first failing dispatch given, as", + "well as the error." + ] + }, + { + "name": "BatchCompleted", + "fields": [], + "index": 1, + "docs": [ + "Batch of dispatches completed fully with no error." + ] + }, + { + "name": "BatchCompletedWithErrors", + "fields": [], + "index": 2, + "docs": [ + "Batch of dispatches completed but has errors." + ] + }, + { + "name": "ItemCompleted", + "fields": [], + "index": 3, + "docs": [ + "A single item within a Batch of dispatches has completed with no error." + ] + }, + { + "name": "ItemFailed", + "fields": [ + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A single item within a Batch of dispatches has completed with error." + ] + }, + { + "name": "DispatchedAs", + "fields": [ + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A call was dispatched." + ] + }, + { + "name": "IfElseMainSuccess", + "fields": [], + "index": 6, + "docs": [ + "Main call was dispatched." + ] + }, + { + "name": "IfElseFallbackCalled", + "fields": [ + { + "name": "main_error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The fallback call was dispatched." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 33, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 34, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [] + }, + "docs": [] + } + }, + { + "id": 35, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IndexAssigned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A account index was assigned." + ] + }, + { + "name": "IndexFreed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A account index has been freed up (unassigned)." + ] + }, + { + "name": "IndexFrozen", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A account index has been frozen to its current account ID." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A deposit to reserve an index has been poked/reconsidered." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 36, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Endowed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account was created with some free balance." + ] + }, + { + "name": "DustLost", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An account was removed whose balance was non-zero but below ExistentialDeposit,", + "resulting in an outright loss." + ] + }, + { + "name": "Transfer", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Transfer succeeded." + ] + }, + { + "name": "BalanceSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "free", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A balance was set by root." + ] + }, + { + "name": "Reserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some balance was reserved (moved from free to reserved)." + ] + }, + { + "name": "Unreserved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Some balance was unreserved (moved from reserved to free)." + ] + }, + { + "name": "ReserveRepatriated", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "destination_status", + "type": 37, + "typeName": "Status", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some balance was moved from the reserve of the first account to the second account.", + "Final argument indicates the destination balance type." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some amount was deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdraw", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some amount was withdrawn from the account (e.g. for transaction fees)." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some amount was removed from the account (e.g. for misbehavior)." + ] + }, + { + "name": "Minted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Some amount was minted into an account." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Some amount was burned from an account." + ] + }, + { + "name": "Suspended", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Some amount was suspended from an account (it can be restored later)." + ] + }, + { + "name": "Restored", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Some amount was restored into an account." + ] + }, + { + "name": "Upgraded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "An account was upgraded." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Total issuance was increased by `amount`, creating a credit to be balanced." + ] + }, + { + "name": "Rescinded", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Total issuance was decreased by `amount`, creating a debt to be balanced." + ] + }, + { + "name": "Locked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Some balance was locked." + ] + }, + { + "name": "Unlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Some balance was unlocked." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some balance was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Some balance was thawed." + ] + }, + { + "name": "TotalIssuanceForced", + "fields": [ + { + "name": "old", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "new", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The `TotalIssuance` was forcefully changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 37, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "BalanceStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Free", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Reserved", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 38, + "type": { + "path": [ + "pallet_transaction_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TransactionFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 39, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetTxFeePaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "actual_fee", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 40, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee `actual_fee`, of which `tip` was added to the minimum inclusion fee,", + "has been paid by `who` in an asset `asset_id`." + ] + }, + { + "name": "AssetRefundFailed", + "fields": [ + { + "name": "native_amount_kept", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A swap of the refund in native currency back to asset failed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 40, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "union_of", + "NativeOrWithId" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Native", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "WithId", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "AssetId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 41, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "SolutionStored", + "fields": [ + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "origin", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "prev_ejected", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A solution was stored with the given compute.", + "", + "The `origin` indicates the origin of the solution. If `origin` is `Some(AccountId)`,", + "the stored solution was submitted in the signed phase by a miner with the `AccountId`.", + "Otherwise, the solution was stored either during the unsigned phase or by", + "`T::ForceOrigin`. The `bool` is `true` when a previous solution was ejected to make", + "room for this one." + ] + }, + { + "name": "ElectionFinalized", + "fields": [ + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The election has been finalized, with the given computation and score." + ] + }, + { + "name": "ElectionFailed", + "fields": [], + "index": 2, + "docs": [ + "An election failed.", + "", + "Not much can be said about which computes failed in the process." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account has been rewarded for their signed submission being finalized." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been slashed for submitting an invalid signed submission." + ] + }, + { + "name": "PhaseTransitioned", + "fields": [ + { + "name": "from", + "type": 45, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "to", + "type": 45, + "typeName": "Phase>", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "There was a phase transition in a given round." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 42, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ElectionCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "OnChain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Fallback", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 43, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 0, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 44, + "type": { + "path": [ + "sp_npos_elections", + "ElectionScore" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "minimal_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "sum_stake_squared", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 45, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "Phase" + ], + "params": [ + { + "name": "Bn", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Off", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsigned", + "fields": [ + { + "name": null, + "type": 46, + "typeName": "(bool, Bn)", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Emergency", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 46, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 8, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 47, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "EraPaid", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remainder", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The era payout has been set; the first balance is the validator-payout; the second is", + "the remainder from the maximum amount of reward." + ] + }, + { + "name": "Rewarded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "dest", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The nominator has been rewarded by this amount to this destination." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A staker (validator or nominator) has been slashed by the given amount." + ] + }, + { + "name": "SlashReported", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "fraction", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "slash_era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A slash for the given validator, for the given percentage of their stake, at the given", + "era as been reported." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An old slashing report from a prior era was discarded because it could", + "not be processed." + ] + }, + { + "name": "StakersElected", + "fields": [], + "index": 5, + "docs": [ + "A new set of stakers was elected." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An account has bonded this amount. \\[stash, amount\\]", + "", + "NOTE: This event is only emitted when funds are bonded via a dispatchable. Notably,", + "it will not be emitted for staking rewards when they are added to stake." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has unbonded this amount." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has called `withdraw_unbonded` and removed unbonding chunks worth `Balance`", + "from the unlocking queue." + ] + }, + { + "name": "Kicked", + "fields": [ + { + "name": "nominator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A nominator has been kicked from a validator." + ] + }, + { + "name": "StakingElectionFailed", + "fields": [], + "index": 10, + "docs": [ + "The election failed. No new era is planned." + ] + }, + { + "name": "Chilled", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has stopped participating as either a validator or nominator." + ] + }, + { + "name": "PayoutStarted", + "fields": [ + { + "name": "era_index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + }, + { + "name": "next", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Page of stakers rewards are getting paid. `next` is `None` if all pages are claimed." + ] + }, + { + "name": "ValidatorPrefsSet", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prefs", + "type": 51, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A validator has set their preferences." + ] + }, + { + "name": "SnapshotVotersSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Voters size limit reached." + ] + }, + { + "name": "SnapshotTargetsSizeExceeded", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Targets size limit reached." + ] + }, + { + "name": "ForceEra", + "fields": [ + { + "name": "mode", + "type": 53, + "typeName": "Forcing", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A new force era mode was set." + ] + }, + { + "name": "ControllerBatchDeprecated", + "fields": [ + { + "name": "failures", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Report of a controller batch deprecation." + ] + }, + { + "name": "CurrencyMigrated", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "force_withdraw", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Staking balance migrated from locks to holds, with any balance that could not be held", + "is force withdrawn." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 48, + "type": { + "path": [ + "pallet_staking", + "RewardDestination" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Stash", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Controller", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 49, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perbill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 50, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 4, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 51, + "type": { + "path": [ + "pallet_staking", + "ValidatorPrefs" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 52, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "blocked", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 52, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 49 + } + }, + "docs": [] + } + }, + { + "id": 53, + "type": { + "path": [ + "pallet_staking", + "Forcing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotForcing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ForceNew", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ForceNone", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "ForceAlways", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 54, + "type": { + "path": [ + "pallet_session", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewSession", + "fields": [ + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New session has happened. Note that the argument is the session index, not the", + "block number as the type might suggest." + ] + }, + { + "name": "NewQueued", + "fields": [], + "index": 1, + "docs": [ + "The `NewSession` event in the current block also implies a new validator set to be", + "queued." + ] + }, + { + "name": "ValidatorDisabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Validator has been disabled." + ] + }, + { + "name": "ValidatorReenabled", + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "T::ValidatorId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Validator has been re-enabled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 55, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "fields": [], + "index": 2, + "docs": [ + "An external proposal has been tabled." + ] + }, + { + "name": "Started", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "threshold", + "type": 56, + "typeName": "VoteThreshold", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A referendum has begun." + ] + }, + { + "name": "Passed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Delegated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "An external proposal has been vetoed." + ] + }, + { + "name": "Blacklisted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A proposal_hash has been blacklisted permanently." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "vote", + "type": 57, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "An account has voted in a referendum" + ] + }, + { + "name": "Seconded", + "fields": [ + { + "name": "seconder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An account has seconded a proposal" + ] + }, + { + "name": "ProposalCanceled", + "fields": [ + { + "name": "prop_index", + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A proposal got canceled." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a proposal or a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "Metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a proposal or a referendum has been cleared." + ] + }, + { + "name": "MetadataTransferred", + "fields": [ + { + "name": "prev_owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "Previous metadata owner." + ] + }, + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [ + "New metadata owner." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 16, + "docs": [ + "Metadata has been transferred to new owner." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 56, + "type": { + "path": [ + "pallet_democracy", + "vote_threshold", + "VoteThreshold" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SuperMajorityApprove", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "SuperMajorityAgainst", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "SimpleMajority", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 57, + "type": { + "path": [ + "pallet_democracy", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 58, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 58, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 59, + "type": { + "path": [ + "pallet_democracy", + "types", + "MetadataOwner" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "External", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Proposal", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Referendum", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 60, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A proposal was killed." + ] + }, + { + "name": "ProposalCostBurned", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some cost for storing a proposal was burned." + ] + }, + { + "name": "ProposalCostReleased", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some cost for storing a proposal was released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 61, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A proposal was killed." + ] + }, + { + "name": "ProposalCostBurned", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some cost for storing a proposal was burned." + ] + }, + { + "name": "ProposalCostReleased", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some cost for storing a proposal was released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 62, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTerm", + "fields": [ + { + "name": "new_members", + "type": 63, + "typeName": "Vec<(::AccountId, BalanceOf)>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new term with new_members. This indicates that enough candidates existed to run", + "the election, not that enough have been elected. The inner value must be examined", + "for this purpose. A `NewTerm(\\[\\])` indicates that some candidates got their bond", + "slashed and none were elected, whilst `EmptyTerm` means that no candidates existed to", + "begin with." + ] + }, + { + "name": "EmptyTerm", + "fields": [], + "index": 1, + "docs": [ + "No (or not enough) candidates existed for this round. This is different from", + "`NewTerm(\\[\\])`. See the description of `NewTerm`." + ] + }, + { + "name": "ElectionError", + "fields": [], + "index": 2, + "docs": [ + "Internal error happened while trying to perform election." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has been removed. This should always be followed by either `NewTerm` or", + "`EmptyTerm`." + ] + }, + { + "name": "Renounced", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Someone has renounced their candidacy." + ] + }, + { + "name": "CandidateSlashed", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was slashed by amount due to failing to obtain a seat as member or", + "runner-up.", + "", + "Note that old members and runners-up are also candidates." + ] + }, + { + "name": "SeatHolderSlashed", + "fields": [ + { + "name": "seat_holder", + "type": 0, + "typeName": "::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A seat holder was slashed by amount by being forcefully removed from the set." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 63, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 64 + } + }, + "docs": [] + } + }, + { + "id": 64, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 65, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [], + "index": 0, + "docs": [ + "The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "fields": [], + "index": 1, + "docs": [ + "The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "fields": [], + "index": 2, + "docs": [ + "Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "fields": [], + "index": 3, + "docs": [ + "The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "fields": [], + "index": 4, + "docs": [ + "One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "fields": [], + "index": 5, + "docs": [ + "Phantom member, never used." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 66, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NewAuthorities", + "fields": [ + { + "name": "authority_set", + "type": 67, + "typeName": "AuthorityList", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New authority set has been applied." + ] + }, + { + "name": "Paused", + "fields": [], + "index": 1, + "docs": [ + "Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "fields": [], + "index": 2, + "docs": [ + "Current authority set has been resumed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 67, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 68 + } + }, + "docs": [] + } + }, + { + "id": 68, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 69, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 69, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "ed25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 70, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Spending", + "fields": [ + { + "name": "budget_remaining", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "award", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "fields": [ + { + "name": "burnt_funds", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "fields": [ + { + "name": "rollover_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Some funds have been deposited." + ] + }, + { + "name": "SpendApproved", + "fields": [ + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A new spend proposal has been approved." + ] + }, + { + "name": "UpdatedInactive", + "fields": [ + { + "name": "reactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "deactivated", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The inactive funds of the pallet have been updated." + ] + }, + { + "name": "AssetSpendApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A new asset spend proposal has been approved." + ] + }, + { + "name": "AssetSpendVoided", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An approved spend was voided." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 34, + "typeName": "::Id", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A payment happened." + ] + }, + { + "name": "PaymentFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + }, + { + "name": "payment_id", + "type": 34, + "typeName": "::Id", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A payment failed and can be retried." + ] + }, + { + "name": "SpendProcessed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A spend was processed and removed from the storage. It might have been successfully", + "paid or it may have expired." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 71, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AssetRateCreated", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "rate", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "AssetRateRemoved", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "AssetRateUpdated", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "T::AssetKind", + "docs": [] + }, + { + "name": "old", + "type": 72, + "typeName": "FixedU128", + "docs": [] + }, + { + "name": "new", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 72, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU128" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "u128", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 73, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Instantiated", + "fields": [ + { + "name": "deployer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Contract deployed by address at the specified address." + ] + }, + { + "name": "Terminated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was terminated." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that received the contracts remaining balance" + ] + } + ], + "index": 1, + "docs": [ + "Contract has been removed.", + "", + "# Note", + "", + "The only way for a contract to be removed and emitting this event is by calling", + "`seal_terminate`." + ] + }, + { + "name": "CodeStored", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "deposit_held", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "uploader", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Code with the specified hash has been stored." + ] + }, + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + } + ], + "index": 3, + "docs": [ + "A custom event emitted by the contract." + ] + }, + { + "name": "CodeRemoved", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "deposit_released", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "remover", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A code with the specified hash was removed." + ] + }, + { + "name": "ContractCodeUpdated", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that has been updated." + ] + }, + { + "name": "new_code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "New code hash that was set for the contract." + ] + }, + { + "name": "old_code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Previous code hash of the contract." + ] + } + ], + "index": 5, + "docs": [ + "A contract's code was updated." + ] + }, + { + "name": "Called", + "fields": [ + { + "name": "caller", + "type": 74, + "typeName": "Origin", + "docs": [ + "The caller of the `contract`." + ] + }, + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that was called." + ] + } + ], + "index": 6, + "docs": [ + "A contract was called either by a plain account or another contract.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "DelegateCalled", + "fields": [ + { + "name": "contract", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The contract that performed the delegate call and hence in whose context", + "the `code_hash` is executed." + ] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [ + "The code hash that was delegate called." + ] + } + ], + "index": 7, + "docs": [ + "A contract delegate called a code hash.", + "", + "# Note", + "", + "Please keep in mind that like all events this is only emitted for successful", + "calls. This is because on failure all storage changes including events are", + "rolled back." + ] + }, + { + "name": "StorageDepositTransferredAndHeld", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some funds have been transferred and held as storage deposit." + ] + }, + { + "name": "StorageDepositTransferredAndReleased", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some storage deposit funds have been transferred and released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 74, + "type": { + "path": [ + "pallet_contracts", + "Origin" + ], + "params": [ + { + "name": "T", + "type": 75 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 75, + "type": { + "path": [ + "kitchensink_runtime", + "Runtime" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 76, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Sudid", + "fields": [ + { + "name": "sudo_result", + "type": 33, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 0, + "docs": [ + "A sudo call just took place." + ] + }, + { + "name": "KeyChanged", + "fields": [ + { + "name": "old", + "type": 43, + "typeName": "Option", + "docs": [ + "The old sudo key (if one was previously set)." + ] + }, + { + "name": "new", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new sudo key (if one was set)." + ] + } + ], + "index": 1, + "docs": [ + "The sudo key has been updated." + ] + }, + { + "name": "KeyRemoved", + "fields": [], + "index": 2, + "docs": [ + "The key was permanently removed." + ] + }, + { + "name": "SudoAsDone", + "fields": [ + { + "name": "sudo_result", + "type": 33, + "typeName": "DispatchResult", + "docs": [ + "The result of the call made by the sudo user." + ] + } + ], + "index": 3, + "docs": [ + "A [sudo_as](Pallet::sudo_as) call just took place." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 77, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "HeartbeatReceived", + "fields": [ + { + "name": "authority_id", + "type": 78, + "typeName": "T::AuthorityId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new heartbeat was received from `AuthorityId`." + ] + }, + { + "name": "AllGood", + "fields": [], + "index": 1, + "docs": [ + "At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "fields": [ + { + "name": "offline", + "type": 79, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "At the end of the session, at least one validator was found to be offline." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 78, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 79, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 80 + } + }, + "docs": [] + } + }, + { + "id": 80, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 34 + ] + }, + "docs": [] + } + }, + { + "id": 81, + "type": { + "path": [ + "pallet_offences", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Offence", + "fields": [ + { + "name": "kind", + "type": 82, + "typeName": "Kind", + "docs": [] + }, + { + "name": "timeslot", + "type": 14, + "typeName": "OpaqueTimeSlot", + "docs": [] + } + ], + "index": 0, + "docs": [ + "There is an offence reported of the given `kind` happened at the `session_index` and", + "(kind-specific) time slot. This event is not deposited for duplicate slashes.", + "\\[kind, timeslot\\]." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 82, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 16, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 83, + "type": { + "path": [ + "pallet_session", + "historical", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RootStored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The merkle root of the validators of the said session were stored" + ] + }, + { + "name": "RootsPruned", + "fields": [ + { + "name": "up_to", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The merkle roots of up to this session index were pruned" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 84, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IdentitySet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A name was set or reset (which will remove all judgements)." + ] + }, + { + "name": "IdentityCleared", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A name was cleared, and the given balance returned." + ] + }, + { + "name": "IdentityKilled", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A name was removed and the given balance slashed." + ] + }, + { + "name": "JudgementRequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A judgement was asked from a registrar." + ] + }, + { + "name": "JudgementUnrequested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A judgement request was retracted." + ] + }, + { + "name": "JudgementGiven", + "fields": [ + { + "name": "target", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A judgement was given by a registrar." + ] + }, + { + "name": "RegistrarAdded", + "fields": [ + { + "name": "registrar_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A registrar was added." + ] + }, + { + "name": "SubIdentityAdded", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A sub-identity was added to an identity and the deposit paid." + ] + }, + { + "name": "SubIdentitiesSet", + "fields": [ + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "number_of_subs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "An account's sub-identities were set (in bulk)." + ] + }, + { + "name": "SubIdentityRenamed", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A given sub-account's associated name was changed by its super-identity." + ] + }, + { + "name": "SubIdentityRemoved", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A sub-identity was removed from an identity and the deposit freed." + ] + }, + { + "name": "SubIdentityRevoked", + "fields": [ + { + "name": "sub", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "main", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A sub-identity was cleared, and the given deposit repatriated from the", + "main identity account to the sub-identity account." + ] + }, + { + "name": "AuthorityAdded", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A username authority was added." + ] + }, + { + "name": "AuthorityRemoved", + "fields": [ + { + "name": "authority", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A username authority was removed." + ] + }, + { + "name": "UsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A username was set for `who`." + ] + }, + { + "name": "UsernameQueued", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + }, + { + "name": "expiration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A username was queued, but `who` must accept it prior to `expiration`." + ] + }, + { + "name": "PreapprovalExpired", + "fields": [ + { + "name": "whose", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A queued username passed its expiration without being claimed and was removed." + ] + }, + { + "name": "PrimaryUsernameSet", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A username was set as a primary and can be looked up from `who`." + ] + }, + { + "name": "DanglingUsernameRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A dangling username (as in, a username corresponding to an account that has removed its", + "identity) has been removed." + ] + }, + { + "name": "UsernameUnbound", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A username has been unbound." + ] + }, + { + "name": "UsernameRemoved", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A username has been removed." + ] + }, + { + "name": "UsernameKilled", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 21, + "docs": [ + "A username has been killed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 85, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 86, + "type": { + "path": [ + "pallet_society", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Founded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The society is founded by the given identity." + ] + }, + { + "name": "Bid", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A membership bid just happened. The given account is the candidate's ID and their offer", + "is the second." + ] + }, + { + "name": "Vouch", + "fields": [ + { + "name": "candidate_id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "offer", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "vouching", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A membership bid just happened by vouching. The given account is the candidate's ID and", + "their offer is the second. The vouching party is the third." + ] + }, + { + "name": "AutoUnbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A candidate was dropped (due to an excess of bids in the system)." + ] + }, + { + "name": "Unbid", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A candidate was dropped (by their request)." + ] + }, + { + "name": "Unvouch", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A candidate was dropped (by request of who vouched for them)." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "primary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "candidates", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A group of candidates have been inducted. The batch's primary is the first value, the", + "batch in full is the second." + ] + }, + { + "name": "SuspendedMemberJudgement", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "judged", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A suspended member has been judged." + ] + }, + { + "name": "CandidateSuspended", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A candidate has been suspended" + ] + }, + { + "name": "MemberSuspended", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A member has been suspended" + ] + }, + { + "name": "Challenged", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member has been challenged" + ] + }, + { + "name": "Vote", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A vote has been placed" + ] + }, + { + "name": "DefenderVote", + "fields": [ + { + "name": "voter", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A vote has been placed for a defending member" + ] + }, + { + "name": "NewParams", + "fields": [ + { + "name": "params", + "type": 88, + "typeName": "GroupParamsFor", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A new set of \\[params\\] has been set for the group." + ] + }, + { + "name": "Unfounded", + "fields": [ + { + "name": "founder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Society is unfounded." + ] + }, + { + "name": "Deposit", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Some funds were deposited into the society account." + ] + }, + { + "name": "Elevated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + } + ], + "index": 16, + "docs": [ + "A \\[member\\] got elevated to \\[rank\\]." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "A deposit was poked / adjusted." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 87, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 0 + } + }, + "docs": [] + } + }, + { + "id": 88, + "type": { + "path": [ + "pallet_society", + "GroupParams" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 89, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A recovery process has been set up for an account." + ] + }, + { + "name": "RecoveryInitiated", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A recovery process has been initiated for lost account by rescuer account." + ] + }, + { + "name": "RecoveryVouched", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A recovery process for lost account by rescuer account has been vouched for by sender." + ] + }, + { + "name": "RecoveryClosed", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A recovery process for lost account by rescuer account has been closed." + ] + }, + { + "name": "AccountRecovered", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rescuer_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Lost account has been successfully recovered by rescuer account." + ] + }, + { + "name": "RecoveryRemoved", + "fields": [ + { + "name": "lost_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A recovery process has been removed for an account." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 90, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit has been updated." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 90, + "type": { + "path": [ + "pallet_recovery", + "DepositKind" + ], + "params": [ + { + "name": "T", + "type": 75 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RecoveryConfig", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "ActiveRecoveryFor", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 91, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingCreated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A vesting schedule has been created." + ] + }, + { + "name": "VestingUpdated", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unvested", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The amount vested has been updated. This could indicate a change in funds available.", + "The balance given is the amount which is left unvested (and thus locked)." + ] + }, + { + "name": "VestingCompleted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An \\[account\\] has become fully vested." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 92, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Scheduled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Scheduled some task." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Canceled some task." + ] + }, + { + "name": "Dispatched", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Dispatched some task." + ] + }, + { + "name": "RetrySet", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set a retry configuration for some task." + ] + }, + { + "name": "RetryCancelled", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel a retry configuration for some task." + ] + }, + { + "name": "CallUnavailable", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The call for the provided hash was not found so the task has been aborted." + ] + }, + { + "name": "PeriodicFailed", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The given task was unable to be renewed since the agenda is full at that block." + ] + }, + { + "name": "RetryFailed", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + } + ], + "index": 7, + "docs": [ + "The given task was unable to be retried since the agenda is full at that block or there", + "was not enough weight to reschedule it." + ] + }, + { + "name": "PermanentlyOverweight", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "id", + "type": 94, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The given task can never be executed since it is overweight." + ] + }, + { + "name": "AgendaIncomplete", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Agenda is incomplete from `when`." + ] + } + ] + } + }, + "docs": [ + "Events type." + ] + } + }, + { + "id": 93, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 94, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 95, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Event" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PalletInitialized", + "fields": [ + { + "name": "reinit", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the pallet has been re-initialized." + ] + } + ], + "index": 0, + "docs": [ + "The pallet has been (re)initialized." + ] + }, + { + "name": "ComputationLimitSet", + "fields": [ + { + "name": "compute", + "type": 96, + "typeName": "FixedU64", + "docs": [ + "The computation limit." + ] + } + ], + "index": 1, + "docs": [ + "The computation limit has been updated." + ] + }, + { + "name": "StorageLimitSet", + "fields": [ + { + "name": "storage", + "type": 96, + "typeName": "FixedU64", + "docs": [ + "The storage limit." + ] + } + ], + "index": 2, + "docs": [ + "The storage limit has been updated." + ] + }, + { + "name": "BlockLengthLimitSet", + "fields": [ + { + "name": "block_length", + "type": 96, + "typeName": "FixedU64", + "docs": [ + "The block length limit." + ] + } + ], + "index": 3, + "docs": [ + "The block length limit has been updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 96, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedU64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 97, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noted", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A preimage has been noted." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A preimage has been requested." + ] + }, + { + "name": "Cleared", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A preimage has ben cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 98, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProxyExecuted", + "fields": [ + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A proxy was executed correctly, with the given." + ] + }, + { + "name": "PureCreated", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 100, + "typeName": "u16", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A pure account has been created by new proxy with given", + "disambiguation index and proxy type." + ] + }, + { + "name": "PureKilled", + "fields": [ + { + "name": "pure", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "spawner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "disambiguation_index", + "type": 100, + "typeName": "u16", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A pure proxy was killed by its spawner." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An announcement was placed to make a call in the future." + ] + }, + { + "name": "ProxyAdded", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A proxy was added." + ] + }, + { + "name": "ProxyRemoved", + "fields": [ + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegatee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A proxy was removed." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 101, + "typeName": "DepositKind", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A deposit stored for proxies or announcements was poked / updated." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 99, + "type": { + "path": [ + "kitchensink_runtime", + "ProxyType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Any", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NonTransfer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Governance", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Staking", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 100, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "U16" + }, + "docs": [] + } + }, + { + "id": 101, + "type": { + "path": [ + "pallet_proxy", + "DepositKind" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Proxies", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Announcements", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 102, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewMultisig", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new multisig operation has begun." + ] + }, + { + "name": "MultisigApproval", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A multisig operation has been approved by someone." + ] + }, + { + "name": "MultisigExecuted", + "fields": [ + { + "name": "approving", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A multisig operation has been executed." + ] + }, + { + "name": "MultisigCancelled", + "fields": [ + { + "name": "cancelling", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "multisig", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A multisig operation has been cancelled." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "CallHash", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The deposit for a multisig operation has been updated/poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 103, + "type": { + "path": [ + "pallet_multisig", + "Timepoint" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 104, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BountyProposed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "New bounty proposal." + ] + }, + { + "name": "BountyRejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bounty proposal was rejected; funds were slashed." + ] + }, + { + "name": "BountyBecameActive", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bounty proposal is funded and became active." + ] + }, + { + "name": "BountyAwarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A bounty is awarded to a beneficiary." + ] + }, + { + "name": "BountyClaimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A bounty is claimed by beneficiary." + ] + }, + { + "name": "BountyCanceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A bounty is cancelled." + ] + }, + { + "name": "BountyExtended", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A bounty expiry is extended." + ] + }, + { + "name": "BountyApproved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A bounty is approved." + ] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A bounty curator is proposed." + ] + }, + { + "name": "CuratorUnassigned", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A bounty curator is unassigned." + ] + }, + { + "name": "CuratorAccepted", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A bounty curator is accepted." + ] + }, + { + "name": "DepositPoked", + "fields": [ + { + "name": "bounty_id", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "proposer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "old_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "new_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A bounty deposit has been poked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 105, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewTip", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new tip suggestion has been opened." + ] + }, + { + "name": "TipClosing", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A tip suggestion has reached threshold and is closing." + ] + }, + { + "name": "TipClosed", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A tip suggestion has been closed." + ] + }, + { + "name": "TipRetracted", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A tip suggestion has been retracted." + ] + }, + { + "name": "TipSlashed", + "fields": [ + { + "name": "tip_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "finder", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A tip suggestion has been slashed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 106, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 107, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Some asset class was created." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some assets were issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Some assets were transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some assets were destroyed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The management team changed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "The owner changed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some account `who` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some account `who` was thawed." + ] + }, + { + "name": "AssetFrozen", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some asset `asset_id` was frozen." + ] + }, + { + "name": "AssetThawed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some asset `asset_id` was thawed." + ] + }, + { + "name": "AccountsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "accounts_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "accounts_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts were destroyed for given asset." + ] + }, + { + "name": "ApprovalsDestroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "approvals_destroyed", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals_remaining", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Approvals were destroyed for given asset." + ] + }, + { + "name": "DestructionStarted", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An asset class is in the process of being destroyed." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An asset class was destroyed." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Some asset class was force-created." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for an asset." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for an asset." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "source", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 17, + "docs": [ + "(Additional) funds have been approved for transfer to a destination account." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "An approval for account `delegate` was cancelled by `owner`." + ] + }, + { + "name": "TransferredApproved", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "destination", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 19, + "docs": [ + "An `amount` was transferred in its entirety from `owner` to `destination` by", + "the approved `delegate`." + ] + }, + { + "name": "AssetStatusChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "An asset has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "AssetMinBalanceChanged", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "new_min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The min_balance of an asset has been updated by the asset owner." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Some account `who` was created with a deposit from `depositor`." + ] + }, + { + "name": "Blocked", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Some account `who` was blocked." + ] + }, + { + "name": "Deposited", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Some assets were deposited (e.g. for transaction fees)." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Some assets were withdrawn from the account (e.g. for transaction fees)." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 108, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "LotteryStarted", + "fields": [], + "index": 0, + "docs": [ + "A lottery has been started!" + ] + }, + { + "name": "CallsUpdated", + "fields": [], + "index": 1, + "docs": [ + "A new set of calls have been set!" + ] + }, + { + "name": "Winner", + "fields": [ + { + "name": "winner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "lottery_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A winner has been chosen!" + ] + }, + { + "name": "TicketBought", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "call_index", + "type": 109, + "typeName": "CallIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A ticket has been bought!" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 109, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 2, + 2 + ] + }, + "docs": [] + } + }, + { + "id": 110, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BidPlaced", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A bid was successfully placed." + ] + }, + { + "name": "BidRetracted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A bid was successfully removed (before being accepted)." + ] + }, + { + "name": "BidDropped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A bid was dropped from a queue because of another, more substantial, bid was present." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The block number at which the receipt may be thawed." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner of the receipt." + ] + }, + { + "name": "proportion", + "type": 111, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance which the receipt represents." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of funds which were debited from the owner." + ] + } + ], + "index": 3, + "docs": [ + "A bid was accepted. The balance may not be released until expiry." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [ + "The identity of the receipt." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The owner." + ] + }, + { + "name": "proportion", + "type": 111, + "typeName": "Perquintill", + "docs": [ + "The proportion of the effective total issuance by which the owner was debited." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount by which the owner was credited." + ] + }, + { + "name": "dropped", + "type": 8, + "typeName": "bool", + "docs": [ + "If `true` then the receipt is done." + ] + } + ], + "index": 4, + "docs": [ + "An receipt has been (at least partially) thawed." + ] + }, + { + "name": "Funded", + "fields": [ + { + "name": "deficit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An automatic funding of the deficit was made." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A receipt was transferred." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 111, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Perquintill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 112, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "Frozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Some `item` was frozen." + ] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Some `item` was thawed." + ] + }, + { + "name": "CollectionFrozen", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some `collection` was frozen." + ] + }, + { + "name": "CollectionThawed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was thawed." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "ApprovedTransfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "ItemStatusChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "A `collection` has had its attributes changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 85, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 85, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 24, + "docs": [ + "The price was set for the instance." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "The price for the instance was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "An item was bought." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 113, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 114, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 115, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 116, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A `collection` was created." + ] + }, + { + "name": "ForceCreated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A `collection` was force-created." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A `collection` was destroyed." + ] + }, + { + "name": "Issued", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An `item` was issued." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "from", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An `item` was transferred." + ] + }, + { + "name": "Burned", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An `item` was destroyed." + ] + }, + { + "name": "ItemTransferLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "An `item` became non-transferable." + ] + }, + { + "name": "ItemTransferUnlocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "An `item` became transferable." + ] + }, + { + "name": "ItemPropertiesLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 8, + "docs": [ + "`item` metadata or attributes were locked." + ] + }, + { + "name": "CollectionLocked", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some `collection` was locked." + ] + }, + { + "name": "OwnerChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The owner changed." + ] + }, + { + "name": "TeamChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "admin", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "freezer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 11, + "docs": [ + "The management team changed." + ] + }, + { + "name": "TransferApproved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "deadline", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "An `item` of a `collection` has been approved by the `owner` for transfer by", + "a `delegate`." + ] + }, + { + "name": "ApprovalCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "An approval for a `delegate` account to transfer the `item` of an item", + "`collection` was cancelled by its `owner`." + ] + }, + { + "name": "AllApprovalsCancelled", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "All approvals of an item got cancelled." + ] + }, + { + "name": "CollectionConfigChanged", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "A `collection` has had its config changed by the `Force` origin." + ] + }, + { + "name": "CollectionMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "New metadata has been set for a `collection`." + ] + }, + { + "name": "CollectionMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Metadata has been cleared for a `collection`." + ] + }, + { + "name": "ItemMetadataSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 18, + "docs": [ + "New metadata has been set for an item." + ] + }, + { + "name": "ItemMetadataCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Metadata has been cleared for an item." + ] + }, + { + "name": "Redeposited", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "successful_items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "The deposit for a set of `item`s within a `collection` has been updated." + ] + }, + { + "name": "AttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 21, + "docs": [ + "New attribute metadata has been set for a `collection` or `item`." + ] + }, + { + "name": "AttributeCleared", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Attribute metadata has been cleared for a `collection` or `item`." + ] + }, + { + "name": "ItemAttributesApprovalAdded", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "A new approval to modify item attributes was added." + ] + }, + { + "name": "ItemAttributesApprovalRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "A new approval to modify item attributes was removed." + ] + }, + { + "name": "OwnershipAcceptanceChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Ownership acceptance has changed for an account." + ] + }, + { + "name": "CollectionMaxSupplySet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Max supply has been set for a collection." + ] + }, + { + "name": "CollectionMintSettingsUpdated", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Mint settings for a collection had changed." + ] + }, + { + "name": "NextCollectionIdIncremented", + "fields": [ + { + "name": "next_id", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Event gets emitted when the `NextCollectionId` gets incremented." + ] + }, + { + "name": "ItemPriceSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 29, + "docs": [ + "The price was set for the item." + ] + }, + { + "name": "ItemPriceRemoved", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "The price for the item was removed." + ] + }, + { + "name": "ItemBought", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + }, + { + "name": "seller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "buyer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 31, + "docs": [ + "An item was bought." + ] + }, + { + "name": "TipSent", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalanceOf", + "docs": [] + } + ], + "index": 32, + "docs": [ + "A tip was sent." + ] + }, + { + "name": "SwapCreated", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 33, + "docs": [ + "An `item` swap intent was created." + ] + }, + { + "name": "SwapCancelled", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "The swap was cancelled." + ] + }, + { + "name": "SwapClaimed", + "fields": [ + { + "name": "sent_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "sent_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "sent_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "received_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "received_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "received_item_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 35, + "docs": [ + "The swap has been claimed." + ] + }, + { + "name": "PreSignedAttributesSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + } + ], + "index": 36, + "docs": [ + "New attributes have been set for an `item` of the `collection`." + ] + }, + { + "name": "PalletAttributeSet", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "attribute", + "type": 122, + "typeName": "PalletAttributes", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 37, + "docs": [ + "A new attribute in the `Pallet` namespace was set for the `collection` or an `item`", + "within that `collection`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 117, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 118, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeNamespace" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pallet", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CollectionOwner", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "ItemOwner", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 119, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 120 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 120, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 120, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceWithDirection" + ], + "params": [ + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + }, + { + "name": "direction", + "type": 121, + "typeName": "PriceDirection", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 121, + "type": { + "path": [ + "pallet_nfts", + "types", + "PriceDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Send", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Receive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 122, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UsedToClaim", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "TransferDisabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 123, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NftFractionalized", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An NFT was successfully fractionalized." + ] + }, + { + "name": "NftUnified", + "fields": [ + { + "name": "nft_collection", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An NFT was successfully returned back." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 124, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Inducted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member is inducted into the payroll." + ] + }, + { + "name": "Registered", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member registered for a payout." + ] + }, + { + "name": "Paid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "::Id", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payment happened." + ] + }, + { + "name": "CycleStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "CycleIndexOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The next cycle begins." + ] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member swapped their account." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 125, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParamsChanged", + "fields": [ + { + "name": "params", + "type": 126, + "typeName": "ParamsOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Parameters for the pallet have changed." + ] + }, + { + "name": "ActiveChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Member activity flag has been set." + ] + }, + { + "name": "Inducted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Member has begun being tracked in this pallet." + ] + }, + { + "name": "Offboarded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Member has been removed from being tracked in this pallet (i.e. because rank is now", + "zero)." + ] + }, + { + "name": "Promoted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Member has been promoted to the given rank." + ] + }, + { + "name": "Demoted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Member has been demoted to the given (non-zero) rank." + ] + }, + { + "name": "Proven", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "at_rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Member has been proven at their current rank, postponing auto-demotion." + ] + }, + { + "name": "Requested", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "wish", + "type": 130, + "typeName": "Wish", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Member has stated evidence of their efforts their request for rank." + ] + }, + { + "name": "EvidenceJudged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The member/candidate." + ] + }, + { + "name": "wish", + "type": 130, + "typeName": "Wish", + "docs": [ + "The desired outcome for which the evidence was presented." + ] + }, + { + "name": "evidence", + "type": 131, + "typeName": "Evidence", + "docs": [ + "The evidence of efforts." + ] + }, + { + "name": "old_rank", + "type": 100, + "typeName": "u16", + "docs": [ + "The old rank, prior to this change." + ] + }, + { + "name": "new_rank", + "type": 132, + "typeName": "Option", + "docs": [ + "New rank. If `None` then candidate record was removed entirely." + ] + } + ], + "index": 8, + "docs": [ + "Some submitted evidence was judged and removed. There may or may not have been a change", + "to the rank, but in any case, `last_proof` is reset." + ] + }, + { + "name": "Imported", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Pre-ranked account has been inducted at their current rank." + ] + }, + { + "name": "Swapped", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "A member had its AccountId swapped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 126, + "type": { + "path": [ + "pallet_core_fellowship", + "ParamsType" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Ranks", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "active_salary", + "type": 127, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "passive_salary", + "type": 127, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "demotion_period", + "type": 129, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "min_promotion_period", + "type": 129, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "offboard_timeout", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 127, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 128, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 128, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 129, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 130, + "type": { + "path": [ + "pallet_core_fellowship", + "Wish" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Retention", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Promotion", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 131, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 132, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 100 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 100, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 133, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stored data under specified index." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Renewed data under specified index." + ] + }, + { + "name": "ProofChecked", + "fields": [], + "index": 2, + "docs": [ + "Storage proof was successfully checked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 134, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Rebagged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "from", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "to", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Moved an account from one bag to another." + ] + }, + { + "name": "ScoreUpdated", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Updated the score of some account to the given amount." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 135, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Migrated", + "fields": [ + { + "name": "top", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "compute", + "type": 136, + "typeName": "MigrationCompute", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Given number of `(top, child)` keys were migrated respectively, with the given", + "`compute`." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Some account got slashed by the given amount." + ] + }, + { + "name": "AutoMigrationFinished", + "fields": [], + "index": 2, + "docs": [ + "The auto migration task finished." + ] + }, + { + "name": "Halted", + "fields": [ + { + "name": "error", + "type": 137, + "typeName": "Error", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migration got halted due to an error or miss-configuration." + ] + } + ] + } + }, + "docs": [ + "Inner events of this pallet." + ] + } + }, + { + "id": 136, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationCompute" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Auto", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 137, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MaxSignedLimits", + "fields": [], + "index": 0, + "docs": [ + "Max signed limits not respected." + ] + }, + { + "name": "KeyTooLong", + "fields": [], + "index": 1, + "docs": [ + "A key was longer than the configured maximum.", + "", + "This means that the migration halted at the current [`Progress`] and", + "can be resumed with a larger [`crate::Config::MaxKeyLen`] value.", + "Retrying with the same [`crate::Config::MaxKeyLen`] value will not work.", + "The value should only be increased to avoid a storage migration for the currently", + "stored [`crate::Progress::LastKey`]." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 2, + "docs": [ + "submitter does not have enough funds." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 3, + "docs": [ + "Bad witness data provided." + ] + }, + { + "name": "SignedMigrationNotAllowed", + "fields": [], + "index": 4, + "docs": [ + "Signed migration is not allowed because the maximum limit is not set yet." + ] + }, + { + "name": "BadChildRoot", + "fields": [], + "index": 5, + "docs": [ + "Bad child root provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 138, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A child-bounty is added." + ] + }, + { + "name": "Awarded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A child-bounty is awarded to a beneficiary." + ] + }, + { + "name": "Claimed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A child-bounty is claimed by beneficiary." + ] + }, + { + "name": "Canceled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_index", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A child-bounty is cancelled." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 139, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 497, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 497, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 497, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 497, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 497, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 497, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 140, + "type": { + "path": [ + "frame_support", + "traits", + "preimages", + "Bounded" + ], + "params": [ + { + "name": "T", + "type": 141 + }, + { + "name": "H", + "type": 496 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Legacy", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Inline", + "fields": [ + { + "name": null, + "type": 113, + "typeName": "BoundedInline", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Lookup", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "H::Output", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 141, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeCall" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 142, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 146, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 153, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Timestamp", + "fields": [ + { + "name": null, + "type": 163, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 164, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 167, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 170, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 228, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 241, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 247, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 250, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 251, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 252, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 254, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 255, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 266, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 267, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 268, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 271, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 272, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 275, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 317, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 318, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 320, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 322, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 324, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 327, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 329, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 331, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 333, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 334, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 335, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 336, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 337, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 350, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 351, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 353, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 355, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 373, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 374, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 375, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 381, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 383, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 384, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 390, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 391, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 393, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "RootTesting", + "fields": [ + { + "name": null, + "type": 394, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 395, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 399, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 400, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 401, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 410, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 423, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 424, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 425, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 427, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 428, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Pov", + "fields": [ + { + "name": null, + "type": 429, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 430, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 432, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 433, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 442, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mixnet", + "fields": [ + { + "name": null, + "type": 452, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Parameters", + "fields": [ + { + "name": null, + "type": 458, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 478, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 479, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 481, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "MetaTx", + "fields": [ + { + "name": null, + "type": 482, + "typeName": "self::sp_api_hidden_includes_construct_runtime::hidden_include::dispatch\n::CallableCallFor", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 142, + "type": { + "path": [ + "frame_system", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "remark", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Make some on-chain remark.", + "", + "Can be executed by every `origin`." + ] + }, + { + "name": "set_heap_pages", + "fields": [ + { + "name": "pages", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the new runtime code." + ] + }, + { + "name": "set_code_without_checks", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Set the new runtime code without doing any checks of the given `code`.", + "", + "Note that runtime upgrades will not run if this is called with a not-increasing spec", + "version!" + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "items", + "type": 143, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set some items of storage." + ] + }, + { + "name": "kill_storage", + "fields": [ + { + "name": "keys", + "type": 145, + "typeName": "Vec", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "fields": [ + { + "name": "prefix", + "type": 14, + "typeName": "Key", + "docs": [] + }, + { + "name": "subkeys", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Kill all storage items with a key that starts with the given prefix.", + "", + "**NOTE:** We rely on the Root origin to provide us the number of subkeys under", + "the prefix we are removing to accurately calculate the weight of this function." + ] + }, + { + "name": "remark_with_event", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Make some on-chain remark and emit event." + ] + }, + { + "name": "authorize_upgrade", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "This call requires Root origin." + ] + }, + { + "name": "authorize_upgrade_without_checks", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied", + "later.", + "", + "WARNING: This authorizes an upgrade that will take place without any safety checks, for", + "example that the spec name remains the same and that the version number increases. Not", + "recommended for normal use. Use `authorize_upgrade` instead.", + "", + "This call requires Root origin." + ] + }, + { + "name": "apply_authorized_upgrade", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Provide the preimage (runtime binary) `code` for an upgrade that has been authorized.", + "", + "If the authorization required a version check, this call will ensure the spec name", + "remains unchanged and that the spec version has increased.", + "", + "Depending on the runtime's `OnSetCode` configuration, this function may directly apply", + "the new `code` in the same block or attempt to schedule the upgrade.", + "", + "All origins are allowed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 143, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 144 + } + }, + "docs": [] + } + }, + { + "id": 144, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 145, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 14 + } + }, + "docs": [] + } + }, + { + "id": 146, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "batch", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a batch of dispatch calls.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched.", + "", + "This will return `Ok` in all circumstances. To determine the success of the batch, an", + "event is deposited. If a call failed and the batch was interrupted, then the", + "`BatchInterrupted` event is deposited, along with the number of successful calls made", + "and the error of the failed call. If all were successful, then the `BatchCompleted`", + "event is deposited." + ] + }, + { + "name": "as_derivative", + "fields": [ + { + "name": "index", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Send a call through an indexed pseudonym of the sender.", + "", + "Filter from origin are passed along. The call will be dispatched with an origin which", + "use the same filter as the origin of this call.", + "", + "NOTE: If you need to ensure that any account-based filtering is not honored (i.e.", + "because you expect `proxy` to have been used prior in the call stack and you do not want", + "the call restrictions to apply to any sub-accounts), then use `as_multi_threshold_1`", + "in the Multisig pallet instead.", + "", + "NOTE: Prior to version *12, this was called `as_limited_sub`.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "batch_all", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Send a batch of dispatch calls and atomically execute them.", + "The whole transaction will rollback and fail if any of the calls failed.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatched without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "dispatch_as", + "fields": [ + { + "name": "as_origin", + "type": 148, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "force_batch", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Send a batch of dispatch calls.", + "Unlike `batch`, it allows errors and won't interrupt.", + "", + "May be called from any origin except `None`.", + "", + "- `calls`: The calls to be dispatched from the same origin. The number of call must not", + " exceed the constant: `batched_calls_limit` (available in constant metadata).", + "", + "If origin is root then the calls are dispatch without checking origin filter. (This", + "includes bypassing `frame_system::Config::BaseCallFilter`).", + "", + "## Complexity", + "- O(C) where C is the number of calls to be batched." + ] + }, + { + "name": "with_weight", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Dispatch a function call with a specified weight.", + "", + "This function does not check the weight of the call, and instead allows the", + "Root origin to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Root_." + ] + }, + { + "name": "if_else", + "fields": [ + { + "name": "main", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "fallback", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Dispatch a fallback call in the event the main call fails to execute.", + "May be called from any origin except `None`.", + "", + "This function first attempts to dispatch the `main` call.", + "If the `main` call fails, the `fallback` is attemted.", + "if the fallback is successfully dispatched, the weights of both calls", + "are accumulated and an event containing the main call error is deposited.", + "", + "In the event of a fallback failure the whole call fails", + "with the weights returned.", + "", + "- `main`: The main call to be dispatched. This is the primary action to execute.", + "- `fallback`: The fallback call to be dispatched in case the `main` call fails.", + "", + "## Dispatch Logic", + "- If the origin is `root`, both the main and fallback calls are executed without", + " applying any origin filters.", + "- If the origin is not `root`, the origin filter is applied to both the `main` and", + " `fallback` calls.", + "", + "## Use Case", + "- Some use cases might involve submitting a `batch` type call in either main, fallback", + " or both." + ] + }, + { + "name": "dispatch_as_fallible", + "fields": [ + { + "name": "as_origin", + "type": 148, + "typeName": "Box", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Dispatches a function call with a provided origin.", + "", + "Almost the same as [`Pallet::dispatch_as`] but forwards any error of the inner call.", + "", + "The dispatch origin for this call must be _Root_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 147, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 141 + } + }, + "docs": [] + } + }, + { + "id": 148, + "type": { + "path": [ + "kitchensink_runtime", + "OriginCaller" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "system", + "fields": [ + { + "name": null, + "type": 149, + "typeName": "frame_system::Origin", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 150, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 151, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 152, + "typeName": "pallet_collective::Origin", + "docs": [] + } + ], + "index": 60, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 149, + "type": { + "path": [ + "frame_support", + "dispatch", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Root", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Signed", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "None", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Authorized", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 150, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 151, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 152, + "type": { + "path": [ + "pallet_collective", + "RawOrigin" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Members", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": null, + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Member", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "_Phantom", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 153, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 154, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 154, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report authority equivocation/misbehavior. This method will verify", + "the equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence will", + "be reported.", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "plan_config_change", + "fields": [ + { + "name": "config", + "type": 160, + "typeName": "NextConfigDescriptor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Plan an epoch config change. The epoch config change is recorded and will be enacted on", + "the next call to `enact_epoch_change`. The config will be activated one epoch after.", + "Multiple calls to this method will replace any existing planned config change that had", + "not been enacted yet." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 154, + "type": { + "path": [ + "sp_consensus_slots", + "EquivocationProof" + ], + "params": [ + { + "name": "Header", + "type": 155 + }, + { + "name": "Id", + "type": 157 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 157, + "typeName": "Id", + "docs": [] + }, + { + "name": "slot", + "type": 158, + "typeName": "Slot", + "docs": [] + }, + { + "name": "first_header", + "type": 155, + "typeName": "Header", + "docs": [] + }, + { + "name": "second_header", + "type": 155, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 155, + "type": { + "path": [ + "sp_runtime", + "generic", + "header", + "Header" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Hash", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_hash", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "number", + "type": 156, + "typeName": "Number", + "docs": [] + }, + { + "name": "state_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "extrinsics_root", + "type": 13, + "typeName": "Hash::Output", + "docs": [] + }, + { + "name": "digest", + "type": 15, + "typeName": "Digest", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 156, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 4 + } + }, + "docs": [] + } + }, + { + "id": 157, + "type": { + "path": [ + "sp_consensus_babe", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 158, + "type": { + "path": [ + "sp_consensus_slots", + "Slot" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 159, + "type": { + "path": [ + "sp_session", + "MembershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "session", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "trie_nodes", + "type": 145, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "validator_count", + "type": 4, + "typeName": "ValidatorCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 160, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "NextConfigDescriptor" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1", + "fields": [ + { + "name": "c", + "type": 161, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 162, + "typeName": "AllowedSlots", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 161, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 162, + "type": { + "path": [ + "sp_consensus_babe", + "AllowedSlots" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PrimarySlots", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryPlainSlots", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PrimaryAndSecondaryVRFSlots", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 163, + "type": { + "path": [ + "pallet_timestamp", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set", + "fields": [ + { + "name": "now", + "type": 11, + "typeName": "T::Moment", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the current time.", + "", + "This call should be invoked exactly once per block. It will panic at the finalization", + "phase, if this call hasn't been invoked by that time.", + "", + "The timestamp should be greater than the previous one by the amount specified by", + "[`Config::MinimumPeriod`].", + "", + "The dispatch origin for this call must be _None_.", + "", + "This dispatch class is _Mandatory_ to ensure it gets executed in the block. Be aware", + "that changing the complexity of this call could result exhausting the resources in a", + "block to execute any other calls.", + "", + "## Complexity", + "- `O(1)` (Note that implementations of `OnTimestampSet` must also be `O(1)`)", + "- 1 storage read and 1 storage mutation (codec `O(1)` because of `DidUpdate::take` in", + " `on_finalize`)", + "- 1 event handler `on_timestamp_set`. Must be `O(1)`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 164, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "claim", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Assign an previously unassigned index.", + "", + "Payment: `Deposit` is reserved from the sender account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be claimed. This must not be in use.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "new", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Assign an index already owned by the sender to another account. The balance reservation", + "is effectively transferred to the new account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `index`: the index to be re-assigned. This must be owned by the sender.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "free", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Free up an index owned by the sender.", + "", + "Payment: Any previous deposit placed for the index is unreserved in the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must own the index.", + "", + "- `index`: the index to be freed. This must be owned by the sender.", + "", + "Emits `IndexFreed` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "new", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + }, + { + "name": "freeze", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force an index to an account. This doesn't require a deposit. If the index is already", + "held, then any deposit is reimbursed to its current owner.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `index`: the index to be (re-)assigned.", + "- `new`: the new owner of the index. This function is a no-op if it is equal to sender.", + "- `freeze`: if set to `true`, will freeze the index so it cannot be transferred.", + "", + "Emits `IndexAssigned` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Freeze an index so it will always point to the sender account. This consumes the", + "deposit.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "- `index`: the index to be frozen in place.", + "", + "Emits `IndexFrozen` if successful.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "T::AccountIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Poke the deposit reserved for an index.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must have a", + "non-frozen account `index`.", + "", + "The transaction fees is waived if the deposit is changed after poking/reconsideration.", + "", + "- `index`: the index whose deposit is to be poked/reconsidered.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 165, + "type": { + "path": [ + "sp_runtime", + "multiaddress", + "MultiAddress" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AccountIndex", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Id", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Index", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "AccountIndex", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Address32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Address20", + "fields": [ + { + "name": null, + "type": 166, + "typeName": "[u8; 20]", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 166, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 20, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 167, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "transfer_allow_death", + "fields": [ + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Transfer some liquid free balance to another account.", + "", + "`transfer_allow_death` will set the `FreeBalance` of the sender and receiver.", + "If the sender's account is below the existential deposit as a result", + "of the transfer, the account will be reaped.", + "", + "The dispatch origin for this call must be `Signed` by the transactor." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "source", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exactly as `transfer_allow_death`, except the origin must be root and the source account", + "may be specified." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Same as the [`transfer_allow_death`] call, but with a check that the transfer will not", + "kill the origin account.", + "", + "99% of the time you want [`transfer_allow_death`] instead.", + "", + "[`transfer_allow_death`]: struct.Pallet.html#method.transfer" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Transfer the entire transferable balance from the caller account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any locked, reserved, or existential deposits (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the account has, causing the sender account to be killed (false), or", + " transfer everything except at least the existential deposit, which will guarantee to", + " keep the sender account alive (true)." + ] + }, + { + "name": "force_unreserve", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Unreserve some balance from a user by force.", + "", + "Can only be called by ROOT." + ] + }, + { + "name": "upgrade_accounts", + "fields": [ + { + "name": "who", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Upgrade a specified account.", + "", + "- `origin`: Must be `Signed`.", + "- `who`: The account to be upgraded.", + "", + "This will waive the transaction fee if at least all but 10% of the accounts needed to", + "be upgraded. (We let some not have to be upgraded just in order to allow for the", + "possibility of churn)." + ] + }, + { + "name": "force_set_balance", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_free", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the regular balance of a given account.", + "", + "The dispatch origin for this call is `root`." + ] + }, + { + "name": "force_adjust_total_issuance", + "fields": [ + { + "name": "direction", + "type": 169, + "typeName": "AdjustmentDirection", + "docs": [] + }, + { + "name": "delta", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Adjust the total issuance in a saturating way.", + "", + "Can only be called by root and always needs a positive `delta`.", + "", + "# Example" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Burn the specified liquid free balance from the origin account.", + "", + "If the origin's account ends up below the existential deposit as a result", + "of the burn and `keep_alive` is false, the account will be reaped.", + "", + "Unlike sending funds to a _burn_ address, which merely makes the funds inaccessible,", + "this `burn` operation will reduce total issuance by the amount _burned_." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 168, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 6 + } + }, + "docs": [] + } + }, + { + "id": 169, + "type": { + "path": [ + "pallet_balances", + "types", + "AdjustmentDirection" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Increase", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Decrease", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 170, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit_unsigned", + "fields": [ + { + "name": "raw_solution", + "type": 171, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "witness", + "type": 223, + "typeName": "SolutionOrSnapshotSize", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Submit a solution for the unsigned phase.", + "", + "The dispatch origin fo this call must be __none__.", + "", + "This submission is checked on the fly. Moreover, this unsigned solution is only", + "validated when submitted to the pool from the **local** node. Effectively, this means", + "that only active validators can submit this transaction when authoring a block (similar", + "to an inherent).", + "", + "To prevent any incorrect solution (and thus wasted time/weight), this transaction will", + "panic if the solution submitted by the validator is invalid in any way, effectively", + "putting their authoring reward at risk.", + "", + "No deposit or reward is associated with this submission." + ] + }, + { + "name": "set_minimum_untrusted_score", + "fields": [ + { + "name": "maybe_next_score", + "type": 224, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set a new value for `MinimumUntrustedScore`.", + "", + "Dispatch origin must be aligned with `T::ForceOrigin`.", + "", + "This check can be turned off by setting the value to `None`." + ] + }, + { + "name": "set_emergency_election_result", + "fields": [ + { + "name": "supports", + "type": 225, + "typeName": "Supports", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set a solution in the queue, to be handed out to the client of this pallet in the next", + "call to `ElectionProvider::elect`.", + "", + "This can only be set by `T::ForceOrigin`, and only when the phase is `Emergency`.", + "", + "The solution is not checked for any feasibility and is assumed to be trustworthy, as any", + "feasibility check itself can in principle cause the election process to fail (due to", + "memory/weight constrains)." + ] + }, + { + "name": "submit", + "fields": [ + { + "name": "raw_solution", + "type": 171, + "typeName": "Box>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Submit a solution for the signed phase.", + "", + "The dispatch origin fo this call must be __signed__.", + "", + "The solution is potentially queued, based on the claimed score and processed at the end", + "of the signed phase.", + "", + "A deposit is reserved and recorded for the solution. Based on the outcome, the solution", + "might be rewarded, slashed, or get all or a part of the deposit back." + ] + }, + { + "name": "governance_fallback", + "fields": [], + "index": 4, + "docs": [ + "Trigger the governance fallback.", + "", + "This can only be called when [`Phase::Emergency`] is enabled, as an alternative to", + "calling [`Call::set_emergency_election_result`]." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 171, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RawSolution" + ], + "params": [ + { + "name": "S", + "type": 172 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "solution", + "type": 172, + "typeName": "S", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 172, + "type": { + "path": [ + "kitchensink_runtime", + "NposSolution16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "votes1", + "type": 173, + "typeName": null, + "docs": [] + }, + { + "name": "votes2", + "type": 176, + "typeName": null, + "docs": [] + }, + { + "name": "votes3", + "type": 181, + "typeName": null, + "docs": [] + }, + { + "name": "votes4", + "type": 184, + "typeName": null, + "docs": [] + }, + { + "name": "votes5", + "type": 187, + "typeName": null, + "docs": [] + }, + { + "name": "votes6", + "type": 190, + "typeName": null, + "docs": [] + }, + { + "name": "votes7", + "type": 193, + "typeName": null, + "docs": [] + }, + { + "name": "votes8", + "type": 196, + "typeName": null, + "docs": [] + }, + { + "name": "votes9", + "type": 199, + "typeName": null, + "docs": [] + }, + { + "name": "votes10", + "type": 202, + "typeName": null, + "docs": [] + }, + { + "name": "votes11", + "type": 205, + "typeName": null, + "docs": [] + }, + { + "name": "votes12", + "type": 208, + "typeName": null, + "docs": [] + }, + { + "name": "votes13", + "type": 211, + "typeName": null, + "docs": [] + }, + { + "name": "votes14", + "type": 214, + "typeName": null, + "docs": [] + }, + { + "name": "votes15", + "type": 217, + "typeName": null, + "docs": [] + }, + { + "name": "votes16", + "type": 220, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 173, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 174 + } + }, + "docs": [] + } + }, + { + "id": 174, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 175, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 100 + } + }, + "docs": [] + } + }, + { + "id": 176, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 177 + } + }, + "docs": [] + } + }, + { + "id": 177, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 178, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 178, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 175, + 179 + ] + }, + "docs": [] + } + }, + { + "id": 179, + "type": { + "path": [], + "params": [], + "def": { + "compact": { + "type": 180 + } + }, + "docs": [] + } + }, + { + "id": 180, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "PerU16" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 100, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 181, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 182 + } + }, + "docs": [] + } + }, + { + "id": 182, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 183, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 183, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 184, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 185 + } + }, + "docs": [] + } + }, + { + "id": 185, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 186, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 186, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 187, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 188 + } + }, + "docs": [] + } + }, + { + "id": 188, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 189, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 189, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 190, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 191 + } + }, + "docs": [] + } + }, + { + "id": 191, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 192, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 192, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 193, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 194 + } + }, + "docs": [] + } + }, + { + "id": 194, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 195, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 195, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 196, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 197 + } + }, + "docs": [] + } + }, + { + "id": 197, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 198, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 198, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 199, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 200 + } + }, + "docs": [] + } + }, + { + "id": 200, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 201, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 201, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 202, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 203 + } + }, + "docs": [] + } + }, + { + "id": 203, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 204, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 204, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 205, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 206 + } + }, + "docs": [] + } + }, + { + "id": 206, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 207, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 207, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 208, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 209 + } + }, + "docs": [] + } + }, + { + "id": 209, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 210, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 210, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 211, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 212 + } + }, + "docs": [] + } + }, + { + "id": 212, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 213, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 213, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 214, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 215 + } + }, + "docs": [] + } + }, + { + "id": 215, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 216, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 216, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 217, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 218 + } + }, + "docs": [] + } + }, + { + "id": 218, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 219, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 219, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 220, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 221 + } + }, + "docs": [] + } + }, + { + "id": 221, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 156, + 222, + 175 + ] + }, + "docs": [] + } + }, + { + "id": 222, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 178 + } + }, + "docs": [] + } + }, + { + "id": 223, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "SolutionOrSnapshotSize" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "targets", + "type": 156, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 224, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 44 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 44, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 225, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 226 + } + }, + "docs": [] + } + }, + { + "id": 226, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 227 + ] + }, + "docs": [] + } + }, + { + "id": 227, + "type": { + "path": [ + "sp_npos_elections", + "Support" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 63, + "typeName": "Vec<(AccountId, ExtendedBalance)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 228, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bond", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "payee", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Take the origin account as a stash and lock up `value` of its balance. `controller` will", + "be the account that controls it.", + "", + "`value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + "The dispatch origin for this call must be _Signed_ by the stash account.", + "", + "Emits `Bonded`.", + "## Complexity", + "- Independent of the arguments. Moderate complexity.", + "- O(1).", + "- Three extra DB entries.", + "", + "NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned", + "unless the `origin` falls below _existential deposit_ (or equal to 0) and gets removed", + "as dust." + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "max_additional", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add some extra amount that have appeared in the stash `free_balance` into the balance up", + "for staking.", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "Use this if there are additional funds in your stash account that you wish to bond.", + "Unlike [`bond`](Self::bond) or [`unbond`](Self::unbond) this function does not impose", + "any limitation on the amount that can be added.", + "", + "Emits `Bonded`.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- O(1)." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + "period ends. If this leaves an amount actively bonded less than", + "[`asset::existential_deposit`], then it is increased to the full amount.", + "", + "The stash may be chilled if the ledger total amount falls to 0 after unbonding.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + "the funds out of management ready for transfer.", + "", + "No more than a limited number of unlocking chunks (see `MaxUnlockingChunks`)", + "can co-exists at the same time. If there are no unlocking chunks slots available", + "[`Call::withdraw_unbonded`] is called to remove some of the chunks (if possible).", + "", + "If a user encounters the `InsufficientBond` error when calling this extrinsic,", + "they should call `chill` first in order to free up their bonded funds.", + "", + "Emits `Unbonded`.", + "", + "See also [`Call::withdraw_unbonded`]." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + "This essentially frees up that balance to be used by the stash account to do whatever", + "it wants.", + "", + "The dispatch origin for this call must be _Signed_ by the controller.", + "", + "Emits `Withdrawn`.", + "", + "See also [`Call::unbond`].", + "", + "## Parameters", + "", + "- `num_slashing_spans` indicates the number of metadata slashing spans to clear when", + "this call results in a complete removal of all the data related to the stash account.", + "In this case, the `num_slashing_spans` must be larger or equal to the number of", + "slashing spans associated with the stash account in the [`SlashingSpans`] storage type,", + "otherwise the call will fail. The call weight is directly proportional to", + "`num_slashing_spans`.", + "", + "## Complexity", + "O(S) where S is the number of slashing spans to remove", + "NOTE: Weight annotation is the kill scenario, we refund otherwise." + ] + }, + { + "name": "validate", + "fields": [ + { + "name": "prefs", + "type": 51, + "typeName": "ValidatorPrefs", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Declare the desire to validate for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "targets", + "type": 229, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Declare the desire to nominate `targets` for the origin controller.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- The transaction's complexity is proportional to the size of `targets` (N)", + "which is capped at CompactAssignments::LIMIT (T::MaxNominations).", + "- Both the reads and writes follow a similar pattern." + ] + }, + { + "name": "chill", + "fields": [], + "index": 6, + "docs": [ + "Declare no desire to either validate or nominate.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- Independent of the arguments. Insignificant complexity.", + "- Contains one read.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_payee", + "fields": [ + { + "name": "payee", + "type": 48, + "typeName": "RewardDestination", + "docs": [] + } + ], + "index": 7, + "docs": [ + "(Re-)set the payment target for a controller.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "## Complexity", + "- O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key.", + "---------" + ] + }, + { + "name": "set_controller", + "fields": [], + "index": 8, + "docs": [ + "(Re-)sets the controller of a stash to the stash itself. This function previously", + "accepted a `controller` argument to set the controller to an account other than the", + "stash itself. This functionality has now been removed, now only setting the controller", + "to the stash, if it is not already.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + "## Complexity", + "O(1)", + "- Independent of the arguments. Insignificant complexity.", + "- Contains a limited number of reads.", + "- Writes are limited to the `origin` account key." + ] + }, + { + "name": "set_validator_count", + "fields": [ + { + "name": "new", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Sets the ideal number of validators.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "O(1)" + ] + }, + { + "name": "increase_validator_count", + "fields": [ + { + "name": "additional", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Increments the ideal number of validators up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "scale_validator_count", + "fields": [ + { + "name": "factor", + "type": 230, + "typeName": "Percent", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Scale up the ideal number of validators by a factor up to maximum of", + "`ElectionProviderBase::MaxWinners`.", + "", + "The dispatch origin must be Root.", + "", + "## Complexity", + "Same as [`Self::set_validator_count`]." + ] + }, + { + "name": "force_no_eras", + "fields": [], + "index": 12, + "docs": [ + "Force there to be no new eras indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "Thus the election process may be ongoing when this is called. In this case the", + "election will continue until the next era is triggered.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "force_new_era", + "fields": [], + "index": 13, + "docs": [ + "Force there to be a new era at the end of the next session. After this, it will be", + "reset to normal (non-forced) behaviour.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result.", + "", + "## Complexity", + "- No arguments.", + "- Weight: O(1)" + ] + }, + { + "name": "set_invulnerables", + "fields": [ + { + "name": "invulnerables", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Set the validators who cannot be slashed (if any).", + "", + "The dispatch origin must be Root." + ] + }, + { + "name": "force_unstake", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Force a current staker to become completely unstaked, immediately.", + "", + "The dispatch origin must be Root.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "force_new_era_always", + "fields": [], + "index": 16, + "docs": [ + "Force there to be a new era at the end of sessions indefinitely.", + "", + "The dispatch origin must be Root.", + "", + "# Warning", + "", + "The election process starts multiple blocks before the end of the era.", + "If this is called just before a new era is triggered, the election process may not", + "have enough blocks to get a result." + ] + }, + { + "name": "cancel_deferred_slash", + "fields": [ + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_indices", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel enactment of a deferred slash.", + "", + "Can be called by the `T::AdminOrigin`.", + "", + "Parameters: era and indices of the slashes for that era to kill.", + "They **must** be sorted in ascending order, *and* unique." + ] + }, + { + "name": "payout_stakers", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Pay out next page of the stakers behind a validator for the given era.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "The reward payout could be paged in case there are too many nominators backing the", + "`validator_stash`. This call will payout unpaid pages in an ascending order. To claim a", + "specific page, use `payout_stakers_by_page`.`", + "", + "If all pages are claimed, it returns an error `InvalidPage`." + ] + }, + { + "name": "rebond", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Rebond a portion of the stash scheduled to be unlocked.", + "", + "The dispatch origin must be signed by the controller.", + "", + "## Complexity", + "- Time complexity: O(L), where L is unlocking chunks", + "- Bounded by `MaxUnlockingChunks`." + ] + }, + { + "name": "reap_stash", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Remove all data structures concerning a staker/stash once it is at a state where it can", + "be considered `dust` in the staking system. The requirements are:", + "", + "1. the `total_balance` of the stash is below existential deposit.", + "2. or, the `ledger.total` of the stash is below existential deposit.", + "3. or, existential deposit is zero and either `total_balance` or `ledger.total` is zero.", + "", + "The former can happen in cases like a slash; the latter when a fully unbonded account", + "is still receiving staking rewards in `RewardDestination::Staked`.", + "", + "It can be called by anyone, as long as `stash` meets the above requirements.", + "", + "Refunds the transaction fees upon successful execution.", + "", + "## Parameters", + "", + "- `num_slashing_spans`: Refer to comments on [`Call::withdraw_unbonded`] for more", + "details." + ] + }, + { + "name": "kick", + "fields": [ + { + "name": "who", + "type": 229, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Remove the given nominations from the calling validator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + "- `who`: A list of nominator stash accounts who are nominating this validator which", + " should no longer be nominating this validator.", + "", + "Note: Making this call only makes sense if you first set the validator preferences to", + "block any further nominations." + ] + }, + { + "name": "set_staking_configs", + "fields": [ + { + "name": "min_nominator_bond", + "type": 231, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_validator_bond", + "type": 231, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_nominator_count", + "type": 232, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_validator_count", + "type": 232, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "chill_threshold", + "type": 233, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "min_commission", + "type": 234, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_staked_rewards", + "type": 233, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Update the various staking configurations .", + "", + "* `min_nominator_bond`: The minimum active bond needed to be a nominator.", + "* `min_validator_bond`: The minimum active bond needed to be a validator.", + "* `max_nominator_count`: The max number of users who can be a nominator at once. When", + " set to `None`, no limit is enforced.", + "* `max_validator_count`: The max number of users who can be a validator at once. When", + " set to `None`, no limit is enforced.", + "* `chill_threshold`: The ratio of `max_nominator_count` or `max_validator_count` which", + " should be filled in order for the `chill_other` transaction to work.", + "* `min_commission`: The minimum amount of commission that each validators must maintain.", + " This is checked only upon calling `validate`. Existing validators are not affected.", + "", + "RuntimeOrigin must be Root to call this function.", + "", + "NOTE: Existing nominators and validators will not be affected by this update.", + "to kick people under the new limits, `chill_other` should be called." + ] + }, + { + "name": "chill_other", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Declare a `controller` to stop participating as either a validator or nominator.", + "", + "Effects will be felt at the beginning of the next era.", + "", + "The dispatch origin for this call must be _Signed_, but can be called by anyone.", + "", + "If the caller is the same as the controller being targeted, then no further checks are", + "enforced, and this function behaves just like `chill`.", + "", + "If the caller is different than the controller being targeted, the following conditions", + "must be met:", + "", + "* `controller` must belong to a nominator who has become non-decodable,", + "", + "Or:", + "", + "* A `ChillThreshold` must be set and checked which defines how close to the max", + " nominators or validators we must reach before users can start chilling one-another.", + "* A `MaxNominatorCount` and `MaxValidatorCount` must be set which is used to determine", + " how close we are to the threshold.", + "* A `MinNominatorBond` and `MinValidatorBond` must be set and checked, which determines", + " if this is a person that should be chilled because they have not met the threshold", + " bond required.", + "", + "This can be helpful if bond requirements are updated, and we need to remove old users", + "who do not satisfy these requirements." + ] + }, + { + "name": "force_apply_min_commission", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Force a validator to have at least the minimum commission. This will not affect a", + "validator who already has a commission greater than or equal to the minimum. Any account", + "can call this." + ] + }, + { + "name": "set_min_commission", + "fields": [ + { + "name": "new", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Sets the minimum amount of commission that each validators must maintain.", + "", + "This call has lower privilege requirements than `set_staking_config` and can be called", + "by the `T::AdminOrigin`. Root can always call this." + ] + }, + { + "name": "payout_stakers_by_page", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "Page", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Pay out a page of the stakers behind a validator for the given era and page.", + "", + "- `validator_stash` is the stash account of the validator.", + "- `era` may be any era between `[current_era - history_depth; current_era]`.", + "- `page` is the page index of nominators to pay out with value between 0 and", + " `num_nominators / T::MaxExposurePageSize`.", + "", + "The origin of this call must be _Signed_. Any account can call this function, even if", + "it is not one of the stakers.", + "", + "If a validator has more than [`Config::MaxExposurePageSize`] nominators backing", + "them, then the list of nominators is paged, with each page being capped at", + "[`Config::MaxExposurePageSize`.] If a validator has more than one page of nominators,", + "the call needs to be made for each page separately in order for all the nominators", + "backing a validator to receive the reward. The nominators are not sorted across pages", + "and so it should not be assumed the highest staker would be on the topmost page and vice", + "versa. If rewards are not claimed in [`Config::HistoryDepth`] eras, they are lost." + ] + }, + { + "name": "update_payee", + "fields": [ + { + "name": "controller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Migrates an account's `RewardDestination::Controller` to", + "`RewardDestination::Account(controller)`.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "This will waive the transaction fee if the `payee` is successfully migrated." + ] + }, + { + "name": "deprecate_controller_batch", + "fields": [ + { + "name": "controllers", + "type": 235, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Updates a batch of controller accounts to their corresponding stash account if they are", + "not the same. Ignores any controller accounts that do not exist, and does not operate if", + "the stash and controller are already the same.", + "", + "Effects will be felt instantly (as soon as this function is completed successfully).", + "", + "The dispatch origin must be `T::AdminOrigin`." + ] + }, + { + "name": "restore_ledger", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "maybe_controller", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_total", + "type": 236, + "typeName": "Option>", + "docs": [] + }, + { + "name": "maybe_unlocking", + "type": 237, + "typeName": "Option>, T::\nMaxUnlockingChunks>>", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Restores the state of a ledger which is in an inconsistent state.", + "", + "The requirements to restore a ledger are the following:", + "* The stash is bonded; or", + "* The stash is not bonded but it has a staking lock left behind; or", + "* If the stash has an associated ledger and its state is inconsistent; or", + "* If the ledger is not corrupted *but* its staking lock is out of sync.", + "", + "The `maybe_*` input parameters will overwrite the corresponding data and metadata of the", + "ledger associated with the stash. If the input parameters are not set, the ledger will", + "be reset values from on-chain state." + ] + }, + { + "name": "migrate_currency", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Removes the legacy Staking locks if they exist.", + "", + "This removes the legacy lock on the stake with [`Config::OldCurrency`] and creates a", + "hold on it if needed. If all stake cannot be held, the best effort is made to hold as", + "much as possible. The remaining stake is forced withdrawn from the ledger.", + "", + "The fee is waived if the migration is successful." + ] + }, + { + "name": "manual_slash", + "fields": [ + { + "name": "validator_stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "slash_fraction", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 33, + "docs": [ + "This function allows governance to manually slash a validator and is a", + "**fallback mechanism**.", + "", + "The dispatch origin must be `T::AdminOrigin`.", + "", + "## Parameters", + "- `validator_stash` - The stash account of the validator to slash.", + "- `era` - The era in which the validator was in the active set.", + "- `slash_fraction` - The percentage of the stake to slash, expressed as a Perbill.", + "", + "## Behavior", + "", + "The slash will be applied using the standard slashing mechanics, respecting the", + "configured `SlashDeferDuration`.", + "", + "This means:", + "- If the validator was already slashed by a higher percentage for the same era, this", + " slash will have no additional effect.", + "- If the validator was previously slashed by a lower percentage, only the difference", + " will be applied.", + "- The slash will be deferred by `SlashDeferDuration` eras before being enacted." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 229, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 165 + } + }, + "docs": [] + } + }, + { + "id": 230, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Percent" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 231, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 232, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 233, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 230 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 230, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 234, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 235, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 236, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 6, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 237, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 238 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 238, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 238, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 239 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 240, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 239, + "type": { + "path": [ + "pallet_staking", + "UnlockChunk" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "Balance", + "docs": [] + }, + { + "name": "era", + "type": 156, + "typeName": "EraIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 240, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 239 + } + }, + "docs": [] + } + }, + { + "id": 241, + "type": { + "path": [ + "pallet_session", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_keys", + "fields": [ + { + "name": "keys", + "type": 242, + "typeName": "T::Keys", + "docs": [] + }, + { + "name": "proof", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Sets the session key(s) of the function caller to `keys`.", + "Allows an account to set its session key prior to becoming a validator.", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be signed.", + "", + "## Complexity", + "- `O(1)`. Actual cost depends on the number of length of `T::Keys::key_ids()` which is", + " fixed." + ] + }, + { + "name": "purge_keys", + "fields": [], + "index": 1, + "docs": [ + "Removes any session key(s) of the function caller.", + "", + "This doesn't take effect until the next session.", + "", + "The dispatch origin of this function must be Signed and the account must be either be", + "convertible to a validator ID using the chain's typical addressing system (this usually", + "means being a controller account) or directly convertible into a validator ID (which", + "usually means being a stash account).", + "", + "## Complexity", + "- `O(1)` in number of key types. Actual cost depends on the number of length of", + " `T::Keys::key_ids()` which is fixed." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 242, + "type": { + "path": [ + "kitchensink_runtime", + "SessionKeys" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "grandpa", + "type": 69, + "typeName": "::Public", + "docs": [] + }, + { + "name": "babe", + "type": 157, + "typeName": "::Public", + "docs": [] + }, + { + "name": "im_online", + "type": 78, + "typeName": "::Public", + "docs": [] + }, + { + "name": "authority_discovery", + "type": 243, + "typeName": "::Public", + "docs": [] + }, + { + "name": "mixnet", + "type": 244, + "typeName": "::Public", + "docs": [] + }, + { + "name": "beefy", + "type": 245, + "typeName": "::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 243, + "type": { + "path": [ + "sp_authority_discovery", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 244, + "type": { + "path": [ + "sp_mixnet", + "types", + "app", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1, + "typeName": "sr25519::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 245, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Public" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 246, + "typeName": "ecdsa::Public", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 246, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 33, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 247, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a sensitive action to be taken.", + "", + "The dispatch origin of this call must be _Signed_ and the sender must", + "have funds to cover the deposit.", + "", + "- `proposal_hash`: The hash of the proposal preimage.", + "- `value`: The amount of deposit (must be at least `MinimumDeposit`).", + "", + "Emits `Proposed`." + ] + }, + { + "name": "second", + "fields": [ + { + "name": "proposal", + "type": 156, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Signals agreement with a particular proposal.", + "", + "The dispatch origin of this call must be _Signed_ and the sender", + "must have funds to cover the deposit, equal to the original deposit.", + "", + "- `proposal`: The index of the proposal to second." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "ref_index", + "type": 156, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "vote", + "type": 57, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `ref_index`: The index of the referendum to vote for.", + "- `vote`: The vote configuration." + ] + }, + { + "name": "emergency_cancel", + "fields": [ + { + "name": "ref_index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + "referendum.", + "", + "The dispatch origin of this call must be `CancellationOrigin`.", + "", + "-`ref_index`: The index of the referendum to cancel.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "external_propose", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Schedule a referendum to be tabled once it is legal to schedule an external", + "referendum.", + "", + "The dispatch origin of this call must be `ExternalOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal." + ] + }, + { + "name": "external_propose_majority", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + "an external referendum.", + "", + "The dispatch of this call must be `ExternalMajorityOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "external_propose_default", + "fields": [ + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + "schedule an external referendum.", + "", + "The dispatch of this call must be `ExternalDefaultOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal.", + "", + "Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + "pre-scheduled `external_propose` call.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "fast_track", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voting_period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Schedule the currently externally-proposed majority-carries referendum to be tabled", + "immediately. If there is no externally-proposed referendum currently, or if there is one", + "but it is not a majority-carries referendum then it fails.", + "", + "The dispatch of this call must be `FastTrackOrigin`.", + "", + "- `proposal_hash`: The hash of the current external proposal.", + "- `voting_period`: The period that is allowed for voting on this proposal. Increased to", + "\tMust be always greater than zero.", + "\tFor `FastTrackOrigin` must be equal or greater than `FastTrackVotingPeriod`.", + "- `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount.", + "", + "Emits `Started`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "veto_external", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Veto and blacklist the external proposal hash.", + "", + "The dispatch origin of this call must be `VetoOrigin`.", + "", + "- `proposal_hash`: The preimage hash of the proposal to veto and blacklist.", + "", + "Emits `Vetoed`.", + "", + "Weight: `O(V + log(V))` where V is number of `existing vetoers`" + ] + }, + { + "name": "cancel_referendum", + "fields": [ + { + "name": "ref_index", + "type": 156, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Remove a referendum.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "- `ref_index`: The index of the referendum to cancel.", + "", + "# Weight: `O(1)`." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "to", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 248, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed/consolidated", + " through `reap_vote` or `unvote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "undelegate", + "fields": [], + "index": 11, + "docs": [ + "Undelegate the voting power of the sending account.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of referendums the voter delegating to has", + " voted on. Weight is charged as if maximum votes." + ] + }, + { + "name": "clear_public_proposals", + "fields": [], + "index": 12, + "docs": [ + "Clears all public proposals.", + "", + "The dispatch origin of this call must be _Root_.", + "", + "Weight: `O(1)`." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Unlock tokens that have an expired lock.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Remove a vote for a referendum.", + "", + "If:", + "- the referendum was cancelled, or", + "- the referendum is ongoing, or", + "- the referendum has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the referendum has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for referendum `index`.", + "", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove a vote for a referendum.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the referendum was cancelled, because the voter lost the referendum or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for", + " referendum `index`.", + "- `index`: The index of referendum of the vote to be removed.", + "", + "Weight: `O(R + log R)` where R is the number of referenda that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "blacklist", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "maybe_ref_index", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Permanently place a proposal into the blacklist. This prevents it from ever being", + "proposed again.", + "", + "If called on a queued public or external proposal, then this will result in it being", + "removed. If the `ref_index` supplied is an active referendum with the proposal hash,", + "then it will be cancelled.", + "", + "The dispatch origin of this call must be `BlacklistOrigin`.", + "", + "- `proposal_hash`: The proposal hash to blacklist permanently.", + "- `ref_index`: An ongoing referendum whose hash is `proposal_hash`, which will be", + "cancelled.", + "", + "Weight: `O(p)` (though as this is an high-privilege dispatch, we assume it has a", + " reasonable value)." + ] + }, + { + "name": "cancel_proposal", + "fields": [ + { + "name": "prop_index", + "type": 156, + "typeName": "PropIndex", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a proposal.", + "", + "The dispatch origin of this call must be `CancelProposalOrigin`.", + "", + "- `prop_index`: The index of the proposal to cancel.", + "", + "Weight: `O(p)` where `p = PublicProps::::decode_len()`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "owner", + "type": 59, + "typeName": "MetadataOwner", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 249, + "typeName": "Option", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set or clear a metadata of a proposal or a referendum.", + "", + "Parameters:", + "- `origin`: Must correspond to the `MetadataOwner`.", + " - `ExternalOrigin` for an external proposal with the `SuperMajorityApprove`", + " threshold.", + " - `ExternalDefaultOrigin` for an external proposal with the `SuperMajorityAgainst`", + " threshold.", + " - `ExternalMajorityOrigin` for an external proposal with the `SimpleMajority`", + " threshold.", + " - `Signed` by a creator for a public proposal.", + " - `Signed` to clear a metadata for a finished referendum.", + " - `Root` to set a metadata for an ongoing referendum.", + "- `owner`: an identifier of a metadata owner.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 248, + "type": { + "path": [ + "pallet_democracy", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 249, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 250, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 156, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disapprove the proposal and burn the cost held for storing this proposal.", + "", + "Parameters:", + "- `origin`: must be the `KillOrigin`.", + "- `proposal_hash`: The hash of the proposal that should be killed.", + "", + "Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal." + ] + }, + { + "name": "release_proposal_cost", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Release the cost held for storing a proposal once the given proposal is completed.", + "", + "If there is no associated cost for the given proposal, this call will have no effect.", + "", + "Parameters:", + "- `origin`: must be `Signed` or `Root`.", + "- `proposal_hash`: The hash of the proposal.", + "", + "Emits `ProposalCostReleased` if any cost held for a given proposal." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 251, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 156, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disapprove the proposal and burn the cost held for storing this proposal.", + "", + "Parameters:", + "- `origin`: must be the `KillOrigin`.", + "- `proposal_hash`: The hash of the proposal that should be killed.", + "", + "Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal." + ] + }, + { + "name": "release_proposal_cost", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Release the cost held for storing a proposal once the given proposal is completed.", + "", + "If there is no associated cost for the given proposal, this call will have no effect.", + "", + "Parameters:", + "- `origin`: must be `Signed` or `Root`.", + "- `proposal_hash`: The hash of the proposal.", + "", + "Emits `ProposalCostReleased` if any cost held for a given proposal." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 252, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "votes", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote for a set of candidates for the upcoming round of election. This can be called to", + "set the initial votes, or update already existing votes.", + "", + "Upon initial voting, `value` units of `who`'s balance is locked and a deposit amount is", + "reserved. The deposit is based on the number of votes and can be updated over time.", + "", + "The `votes` should:", + " - not be empty.", + " - be less than the number of possible candidates. Note that all current members and", + " runners-up are also automatically candidates for the next round.", + "", + "If `value` is more than `who`'s free balance, then the maximum of the two is used.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "It is the responsibility of the caller to **NOT** place all of their balance into the", + "lock and keep some for further operations." + ] + }, + { + "name": "remove_voter", + "fields": [], + "index": 1, + "docs": [ + "Remove `origin` as a voter.", + "", + "This removes the lock and returns the deposit.", + "", + "The dispatch origin of this call must be signed and be a voter." + ] + }, + { + "name": "submit_candidacy", + "fields": [ + { + "name": "candidate_count", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Submit oneself for candidacy. A fixed amount of deposit is recorded.", + "", + "All candidates are wiped at the end of the term. They either become a member/runner-up,", + "or leave the system while their deposit is slashed.", + "", + "The dispatch origin of this call must be signed.", + "", + "### Warning", + "", + "Even if a candidate ends up being a member, they must call [`Call::renounce_candidacy`]", + "to get their deposit back. Losing the spot in an election will always lead to a slash.", + "", + "The number of current candidates must be provided as witness data.", + "## Complexity", + "O(C + log(C)) where C is candidate_count." + ] + }, + { + "name": "renounce_candidacy", + "fields": [ + { + "name": "renouncing", + "type": 253, + "typeName": "Renouncing", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Renounce one's intention to be a candidate for the next election round. 3 potential", + "outcomes exist:", + "", + "- `origin` is a candidate and not elected in any set. In this case, the deposit is", + " unreserved, returned and origin is removed as a candidate.", + "- `origin` is a current runner-up. In this case, the deposit is unreserved, returned and", + " origin is removed as a runner-up.", + "- `origin` is a current member. In this case, the deposit is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_member`](Self::remove_member), if replacement runners exists, they", + " are immediately used. If the prime is renouncing, then no prime will exist until the", + " next round.", + "", + "The dispatch origin of this call must be signed, and have one of the above roles.", + "The type of renouncing must be provided as witness data.", + "", + "## Complexity", + " - Renouncing::Candidate(count): O(count + log(count))", + " - Renouncing::Member: O(1)", + " - Renouncing::RunnerUp: O(1)" + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "slash_bond", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "rerun_election", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a particular member from the set. This is effective immediately and the bond of", + "the outgoing member is slashed.", + "", + "If a runner-up is available, then the best runner-up will be removed and replaces the", + "outgoing member. Otherwise, if `rerun_election` is `true`, a new phragmen election is", + "started, else, nothing happens.", + "", + "If `slash_bond` is set to true, the bond of the member being removed is slashed. Else,", + "it is returned.", + "", + "The dispatch origin of this call must be root.", + "", + "Note that this does not affect the designated block number of the next election.", + "", + "## Complexity", + "- Check details of remove_and_replace_member() and do_phragmen()." + ] + }, + { + "name": "clean_defunct_voters", + "fields": [ + { + "name": "num_voters", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "num_defunct", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Clean all voters who are defunct (i.e. they do not serve any purpose at all). The", + "deposit of the removed voters are returned.", + "", + "This is an root function to be used only for cleaning the state.", + "", + "The dispatch origin of this call must be root.", + "", + "## Complexity", + "- Check is_defunct_voter() details." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 253, + "type": { + "path": [ + "pallet_elections_phragmen", + "Renouncing" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Member", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "RunnerUp", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Candidate", + "fields": [ + { + "name": null, + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 254, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a member `who` to the set.", + "", + "May only be called from `T::AddOrigin`." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Remove a member `who` from the set.", + "", + "May only be called from `T::RemoveOrigin`." + ] + }, + { + "name": "swap_member", + "fields": [ + { + "name": "remove", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "add", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Swap out one member `remove` for another `add`.", + "", + "May only be called from `T::SwapOrigin`.", + "", + "Prime membership is *not* passed from `remove` to `add`, if extant." + ] + }, + { + "name": "reset_members", + "fields": [ + { + "name": "members", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Change the membership to a new set, disregarding the existing membership. Be nice and", + "pass `members` pre-sorted.", + "", + "May only be called from `T::ResetOrigin`." + ] + }, + { + "name": "change_key", + "fields": [ + { + "name": "new", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap out the sending member for some other key `new`.", + "", + "May only be called from `Signed` origin of a current member.", + "", + "Prime membership is passed from the origin account to `new`, if extant." + ] + }, + { + "name": "set_prime", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set the prime member. Must be a current member.", + "", + "May only be called from `T::PrimeOrigin`." + ] + }, + { + "name": "clear_prime", + "fields": [], + "index": 6, + "docs": [ + "Remove the prime member if it exists.", + "", + "May only be called from `T::PrimeOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 255, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_equivocation", + "fields": [ + { + "name": "equivocation_proof", + "type": 256, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_equivocation_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 256, + "typeName": "Box>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "note_stalled", + "fields": [ + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "best_finalized_block_number", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Note that the current authority set of the GRANDPA finality gadget has stalled.", + "", + "This will trigger a forced authority set change at the beginning of the next session, to", + "be enacted `delay` blocks after that. The `delay` should be high enough to safely assume", + "that the block signalling the forced change will not be re-orged e.g. 1000 blocks.", + "The block production rate (which may be slowed down because of finality lagging) should", + "be taken into account when choosing the `delay`. The GRANDPA voters based on the new", + "authority will start voting on top of `best_finalized_block_number` for new finalized", + "blocks. `best_finalized_block_number` should be the highest of the latest finalized", + "block of all validators of the new authority set.", + "", + "Only callable by root." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 256, + "type": { + "path": [ + "sp_consensus_grandpa", + "EquivocationProof" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "set_id", + "type": 12, + "typeName": "SetId", + "docs": [] + }, + { + "name": "equivocation", + "type": 257, + "typeName": "Equivocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 257, + "type": { + "path": [ + "sp_consensus_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Prevote", + "fields": [ + { + "name": null, + "type": 258, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Precommit", + "fields": [ + { + "name": null, + "type": 263, + "typeName": "finality_grandpa::Equivocation, AuthoritySignature,>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 258, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 69 + }, + { + "name": "V", + "type": 259 + }, + { + "name": "S", + "type": 260 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 69, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 262, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 262, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 259, + "type": { + "path": [ + "finality_grandpa", + "Prevote" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 260, + "type": { + "path": [ + "sp_consensus_grandpa", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 261, + "typeName": "ed25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 261, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 64, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 262, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 259, + 260 + ] + }, + "docs": [] + } + }, + { + "id": 263, + "type": { + "path": [ + "finality_grandpa", + "Equivocation" + ], + "params": [ + { + "name": "Id", + "type": 69 + }, + { + "name": "V", + "type": 264 + }, + { + "name": "S", + "type": 260 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round_number", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "identity", + "type": 69, + "typeName": "Id", + "docs": [] + }, + { + "name": "first", + "type": 265, + "typeName": "(V, S)", + "docs": [] + }, + { + "name": "second", + "type": 265, + "typeName": "(V, S)", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 264, + "type": { + "path": [ + "finality_grandpa", + "Precommit" + ], + "params": [ + { + "name": "H", + "type": 13 + }, + { + "name": "N", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "target_hash", + "type": 13, + "typeName": "H", + "docs": [] + }, + { + "name": "target_number", + "type": 4, + "typeName": "N", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 265, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 264, + 260 + ] + }, + "docs": [] + } + }, + { + "id": 266, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "spend_local", + "fields": [ + { + "name": "amount", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least `amount`.", + "", + "### Details", + "NOTE: For record-keeping purposes, the proposer is deemed to be equivalent to the", + "beneficiary.", + "", + "### Parameters", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The destination account for the transfer.", + "", + "## Events", + "", + "Emits [`Event::SpendApproved`] if successful." + ] + }, + { + "name": "remove_approval", + "fields": [ + { + "name": "proposal_id", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Force a previously approved proposal to be removed from the approval queue.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "The original deposit will no longer be returned.", + "", + "### Parameters", + "- `proposal_id`: The index of a proposal", + "", + "### Complexity", + "- O(A) where `A` is the number of approvals", + "", + "### Errors", + "- [`Error::ProposalNotApproved`]: The `proposal_id` supplied was not found in the", + " approval queue, i.e., the proposal has not been approved. This could also mean the", + " proposal does not exist altogether, thus there is no way it would have been approved", + " in the first place." + ] + }, + { + "name": "spend", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "AssetBalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "Box>", + "docs": [] + }, + { + "name": "valid_from", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Propose and approve a spend of treasury funds.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::SpendOrigin`] with the `Success` value being at least", + "`amount` of `asset_kind` in the native asset. The amount of `asset_kind` is converted", + "for assertion using the [`Config::BalanceConverter`].", + "", + "## Details", + "", + "Create an approved spend for transferring a specific `amount` of `asset_kind` to a", + "designated beneficiary. The spend must be claimed using the `payout` dispatchable within", + "the [`Config::PayoutPeriod`].", + "", + "### Parameters", + "- `asset_kind`: An indicator of the specific asset class to be spent.", + "- `amount`: The amount to be transferred from the treasury to the `beneficiary`.", + "- `beneficiary`: The beneficiary of the spend.", + "- `valid_from`: The block number from which the spend can be claimed. It can refer to", + " the past if the resulting spend has not yet expired according to the", + " [`Config::PayoutPeriod`]. If `None`, the spend can be claimed immediately after", + " approval.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendApproved`] if successful." + ] + }, + { + "name": "payout", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim a spend.", + "", + "## Dispatch Origin", + "", + "Must be signed", + "", + "## Details", + "", + "Spends must be claimed within some temporal bounds. A spend may be claimed within one", + "[`Config::PayoutPeriod`] from the `valid_from` block.", + "In case of a payout failure, the spend status must be updated with the `check_status`", + "dispatchable before retrying with the current function.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::Paid`] if successful." + ] + }, + { + "name": "check_status", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Check the status of the spend and remove it from the storage if processed.", + "", + "## Dispatch Origin", + "", + "Must be signed.", + "", + "## Details", + "", + "The status check is a prerequisite for retrying a failed payout.", + "If a spend has either succeeded or expired, it is removed from the storage by this", + "function. In such instances, transaction fees are refunded.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::PaymentFailed`] if the spend payout has failed.", + "Emits [`Event::SpendProcessed`] if the spend payout has succeed." + ] + }, + { + "name": "void_spend", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "SpendIndex", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Void previously approved spend.", + "", + "## Dispatch Origin", + "", + "Must be [`Config::RejectOrigin`].", + "", + "## Details", + "", + "A spend void is only possible if the payout has not been attempted yet.", + "", + "### Parameters", + "- `index`: The spend index.", + "", + "## Events", + "", + "Emits [`Event::AssetSpendVoided`] if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 267, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize a conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "update", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "rate", + "type": 72, + "typeName": "FixedU128", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Update the conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + }, + { + "name": "remove", + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Remove an existing conversion rate to native balance for the given asset.", + "", + "## Complexity", + "- O(1)" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 268, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "call_old_weight", + "fields": [ + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Deprecated version if [`Self::call`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_with_code_old_weight", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Deprecated version if [`Self::instantiate_with_code`] for use in an in-storage `Call`." + ] + }, + { + "name": "instantiate_old_weight", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 11, + "typeName": "OldWeight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Deprecated version if [`Self::instantiate`] for use in an in-storage `Call`." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "determinism", + "type": 270, + "typeName": "Determinism", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the size of the supplied `code`.", + "", + "If the code already exists in storage it will still return `Ok` and upgrades", + "the in storage version to the current", + "[`InstructionWeights::version`](InstructionWeights).", + "", + "- `determinism`: If this is set to any other value but [`Determinism::Enforced`] then", + " the only way to use this code is to delegate call into it from an offchain execution.", + " Set to [`Determinism::Enforced`] if in doubt.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`].", + "", + "Use [`Determinism::Relaxed`] exclusively for non-deterministic code. If the uploaded", + "code is deterministic, specifying [`Determinism::Relaxed`] will be disregarded and", + "result in higher gas costs." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. See [`Pallet::contract_address`].", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is deployed, and a `code_hash` is created for that code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 269, + "typeName": "Option< as codec::HasCompact>::Type>", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + }, + { + "name": "migrate", + "fields": [ + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 9, + "docs": [ + "When a migration is in progress, this dispatchable can be used to run migration steps.", + "Calls that contribute to advancing the migration have their fees waived, as it's helpful", + "for the chain. Note that while the migration is in progress, the pallet will also", + "leverage the `on_idle` hooks to run migration steps." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 269, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 168 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 168, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 270, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "Determinism" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Enforced", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Relaxed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 271, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "sudo", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin." + ] + }, + { + "name": "sudo_unchecked_weight", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Root` origin.", + "This function does not check the weight of the call, and instead allows the", + "Sudo user to specify the weight of the call.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "set_key", + "fields": [ + { + "name": "new", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo", + "key." + ] + }, + { + "name": "sudo_as", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Authenticates the sudo key and dispatches a function call with `Signed` origin from", + "a given account.", + "", + "The dispatch origin for this call must be _Signed_." + ] + }, + { + "name": "remove_key", + "fields": [], + "index": 4, + "docs": [ + "Permanently removes the sudo key.", + "", + "**This cannot be un-done.**" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 272, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "heartbeat", + "fields": [ + { + "name": "heartbeat", + "type": 273, + "typeName": "Heartbeat>", + "docs": [] + }, + { + "name": "signature", + "type": 274, + "typeName": "::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "## Complexity:", + "- `O(K)` where K is length of `Keys` (heartbeat.validators_len)", + " - `O(K)`: decoding of length `K`" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 273, + "type": { + "path": [ + "pallet_im_online", + "Heartbeat" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthIndex", + "docs": [] + }, + { + "name": "validators_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 274, + "type": { + "path": [ + "pallet_im_online", + "sr25519", + "app_sr25519", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 261, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 275, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_registrar", + "fields": [ + { + "name": "account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a registrar to the system.", + "", + "The dispatch origin for this call must be `T::RegistrarOrigin`.", + "", + "- `account`: the account of the registrar.", + "", + "Emits `RegistrarAdded` if successful." + ] + }, + { + "name": "set_identity", + "fields": [ + { + "name": "info", + "type": 276, + "typeName": "Box", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set an account's identity information and reserve the appropriate deposit.", + "", + "If the account already has identity information, the deposit is taken as part payment", + "for the new deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `info`: The identity information.", + "", + "Emits `IdentitySet` if successful." + ] + }, + { + "name": "set_subs", + "fields": [ + { + "name": "subs", + "type": 311, + "typeName": "Vec<(T::AccountId, Data)>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set the sub-accounts of the sender.", + "", + "Payment: Any aggregate balance reserved by previous `set_subs` calls will be returned", + "and an amount `SubAccountDeposit` will be reserved for each item in `subs`.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "- `subs`: The identity's (new) sub-accounts." + ] + }, + { + "name": "clear_identity", + "fields": [], + "index": 3, + "docs": [ + "Clear an account's identity info and all sub-accounts and return all deposits.", + "", + "Payment: All reserved balances on the account are returned.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "identity.", + "", + "Emits `IdentityCleared` if successful." + ] + }, + { + "name": "request_judgement", + "fields": [ + { + "name": "reg_index", + "type": 156, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "max_fee", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Request a judgement from a registrar.", + "", + "Payment: At most `max_fee` will be reserved for payment to the registrar if judgement", + "given.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is requested.", + "- `max_fee`: The maximum fee that may be paid. This should just be auto-populated as:", + "", + "```nocompile", + "Registrars::::get().get(reg_index).unwrap().fee", + "```", + "", + "Emits `JudgementRequested` if successful." + ] + }, + { + "name": "cancel_request", + "fields": [ + { + "name": "reg_index", + "type": 4, + "typeName": "RegistrarIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Cancel a previous request.", + "", + "Payment: A previously reserved deposit is returned on success.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a", + "registered identity.", + "", + "- `reg_index`: The index of the registrar whose judgement is no longer requested.", + "", + "Emits `JudgementUnrequested` if successful." + ] + }, + { + "name": "set_fee", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fee", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set the fee required for a judgement to be requested from a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fee`: the new fee." + ] + }, + { + "name": "set_account_id", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "new", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Change the account associated with a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `new`: the new account ID." + ] + }, + { + "name": "set_fields", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "fields", + "type": 12, + "typeName": "::\nFieldsIdentifier", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set the field information for a registrar.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `index`.", + "", + "- `index`: the index of the registrar whose fee is to be set.", + "- `fields`: the fields that the registrar concerns themselves with." + ] + }, + { + "name": "provide_judgement", + "fields": [ + { + "name": "reg_index", + "type": 156, + "typeName": "RegistrarIndex", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "judgement", + "type": 313, + "typeName": "Judgement>", + "docs": [] + }, + { + "name": "identity", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Provide a judgement for an account's identity.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must be the account", + "of the registrar whose index is `reg_index`.", + "", + "- `reg_index`: the index of the registrar whose judgement is being made.", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "- `judgement`: the judgement of the registrar of index `reg_index` about `target`.", + "- `identity`: The hash of the [`IdentityInformationProvider`] for that the judgement is", + " provided.", + "", + "Note: Judgements do not apply to a username.", + "", + "Emits `JudgementGiven` if successful." + ] + }, + { + "name": "kill_identity", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Remove an account's identity and sub-account information and slash the deposits.", + "", + "Payment: Reserved balances from `set_subs` and `set_identity` are slashed and handled by", + "`Slash`. Verification request deposits are not returned; they should be cancelled", + "manually using `cancel_request`.", + "", + "The dispatch origin for this call must match `T::ForceOrigin`.", + "", + "- `target`: the account whose identity the judgement is upon. This must be an account", + " with a registered identity.", + "", + "Emits `IdentityKilled` if successful." + ] + }, + { + "name": "add_sub", + "fields": [ + { + "name": "sub", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 279, + "typeName": "Data", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Add the given account to the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "rename_sub", + "fields": [ + { + "name": "sub", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "data", + "type": 279, + "typeName": "Data", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Alter the associated name of the given sub-account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "remove_sub", + "fields": [ + { + "name": "sub", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Remove the given account from the sender's subs.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "sub identity of `sub`." + ] + }, + { + "name": "quit_sub", + "fields": [], + "index": 14, + "docs": [ + "Remove the sender as a sub-account.", + "", + "Payment: Balance reserved by a previous `set_subs` call for one sub will be repatriated", + "to the sender (*not* the original depositor).", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have a registered", + "super-identity.", + "", + "NOTE: This should not normally be used, but is provided in the case that the non-", + "controller of an account is maliciously registered as a sub-account." + ] + }, + { + "name": "add_username_authority", + "fields": [ + { + "name": "authority", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "suffix", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Add an `AccountId` with permission to grant usernames with a given `suffix` appended.", + "", + "The authority can grant up to `allocation` usernames. To top up the allocation or", + "change the account used to grant usernames, this call can be used with the updated", + "parameters to overwrite the existing configuration." + ] + }, + { + "name": "remove_username_authority", + "fields": [ + { + "name": "suffix", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "authority", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Remove `authority` from the username authorities." + ] + }, + { + "name": "set_username_for", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "username", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "signature", + "type": 314, + "typeName": "Option", + "docs": [] + }, + { + "name": "use_allocation", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the username for `who`. Must be called by a username authority.", + "", + "If `use_allocation` is set, the authority must have a username allocation available to", + "spend. Otherwise, the authority will need to put up a deposit for registering the", + "username.", + "", + "Users can either pre-sign their usernames or", + "accept them later.", + "", + "Usernames must:", + " - Only contain lowercase ASCII characters or digits.", + " - When combined with the suffix of the issuing authority be _less than_ the", + " `MaxUsernameLength`." + ] + }, + { + "name": "accept_username", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Accept a given username that an `authority` granted. The call must include the full", + "username, as in `username.suffix`." + ] + }, + { + "name": "remove_expired_approval", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove an expired username approval. The username was approved by an authority but never", + "accepted by the user and must now be beyond its expiration. The call must include the", + "full username, as in `username.suffix`." + ] + }, + { + "name": "set_primary_username", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set a given username as the primary. The username should include the suffix." + ] + }, + { + "name": "unbind_username", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Start the process of removing a username by placing it in the unbinding usernames map.", + "Once the grace period has passed, the username can be deleted by calling", + "[remove_username](crate::Call::remove_username)." + ] + }, + { + "name": "remove_username", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Permanently delete a username which has been unbinding for longer than the grace period.", + "Caller is refunded the fee if the username expired and the removal was successful." + ] + }, + { + "name": "kill_username", + "fields": [ + { + "name": "username", + "type": 85, + "typeName": "Username", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Call with [ForceOrigin](crate::Config::ForceOrigin) privileges which deletes a username", + "and slashes any deposit associated with it." + ] + } + ] + } + }, + "docs": [ + "Identity pallet declaration." + ] + } + }, + { + "id": 276, + "type": { + "path": [ + "pallet_identity", + "legacy", + "IdentityInfo" + ], + "params": [ + { + "name": "FieldLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "additional", + "type": 277, + "typeName": "BoundedVec<(Data, Data), FieldLimit>", + "docs": [] + }, + { + "name": "display", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "legal", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "web", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "riot", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "email", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "pgp_fingerprint", + "type": 310, + "typeName": "Option<[u8; 20]>", + "docs": [] + }, + { + "name": "image", + "type": 279, + "typeName": "Data", + "docs": [] + }, + { + "name": "twitter", + "type": 279, + "typeName": "Data", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 277, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 278 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 309, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 278, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 279, + 279 + ] + }, + "docs": [] + } + }, + { + "id": 279, + "type": { + "path": [ + "pallet_identity", + "types", + "Data" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Raw0", + "fields": [ + { + "name": null, + "type": 280, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Raw1", + "fields": [ + { + "name": null, + "type": 281, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Raw2", + "fields": [ + { + "name": null, + "type": 282, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Raw3", + "fields": [ + { + "name": null, + "type": 283, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Raw4", + "fields": [ + { + "name": null, + "type": 18, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Raw5", + "fields": [ + { + "name": null, + "type": 284, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Raw6", + "fields": [ + { + "name": null, + "type": 285, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Raw7", + "fields": [ + { + "name": null, + "type": 286, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Raw8", + "fields": [ + { + "name": null, + "type": 287, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Raw9", + "fields": [ + { + "name": null, + "type": 288, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Raw10", + "fields": [ + { + "name": null, + "type": 289, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Raw11", + "fields": [ + { + "name": null, + "type": 290, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Raw12", + "fields": [ + { + "name": null, + "type": 291, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Raw13", + "fields": [ + { + "name": null, + "type": 292, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Raw14", + "fields": [ + { + "name": null, + "type": 293, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Raw15", + "fields": [ + { + "name": null, + "type": 294, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Raw16", + "fields": [ + { + "name": null, + "type": 82, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Raw17", + "fields": [ + { + "name": null, + "type": 295, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Raw18", + "fields": [ + { + "name": null, + "type": 296, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Raw19", + "fields": [ + { + "name": null, + "type": 297, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Raw20", + "fields": [ + { + "name": null, + "type": 166, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Raw21", + "fields": [ + { + "name": null, + "type": 298, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Raw22", + "fields": [ + { + "name": null, + "type": 299, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Raw23", + "fields": [ + { + "name": null, + "type": 300, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Raw24", + "fields": [ + { + "name": null, + "type": 301, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Raw25", + "fields": [ + { + "name": null, + "type": 302, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Raw26", + "fields": [ + { + "name": null, + "type": 303, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Raw27", + "fields": [ + { + "name": null, + "type": 304, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Raw28", + "fields": [ + { + "name": null, + "type": 305, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Raw29", + "fields": [ + { + "name": null, + "type": 306, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Raw30", + "fields": [ + { + "name": null, + "type": 307, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Raw31", + "fields": [ + { + "name": null, + "type": 308, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Raw32", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "BlakeTwo256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Sha256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Keccak256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "ShaThree256", + "fields": [ + { + "name": null, + "type": 1, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 280, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 0, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 281, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 282, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 2, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 283, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 3, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 284, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 5, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 285, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 6, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 286, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 7, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 287, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 8, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 288, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 9, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 289, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 10, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 290, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 11, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 291, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 12, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 292, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 13, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 293, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 14, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 294, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 15, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 295, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 17, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 296, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 18, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 297, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 19, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 298, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 21, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 299, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 22, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 300, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 23, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 301, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 24, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 302, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 25, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 303, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 26, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 304, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 27, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 305, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 28, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 306, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 29, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 307, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 30, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 308, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 31, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 309, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 278 + } + }, + "docs": [] + } + }, + { + "id": 310, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 166 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 166, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 311, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 312 + } + }, + "docs": [] + } + }, + { + "id": 312, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 279 + ] + }, + "docs": [] + } + }, + { + "id": 313, + "type": { + "path": [ + "pallet_identity", + "types", + "Judgement" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unknown", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "FeePaid", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reasonable", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "KnownGood", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "OutOfDate", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "LowQuality", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Erroneous", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 314, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 315 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 315, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 315, + "type": { + "path": [ + "sp_runtime", + "MultiSignature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Ed25519", + "fields": [ + { + "name": null, + "type": 261, + "typeName": "ed25519::Signature", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Sr25519", + "fields": [ + { + "name": null, + "type": 261, + "typeName": "sr25519::Signature", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Ecdsa", + "fields": [ + { + "name": null, + "type": 316, + "typeName": "ecdsa::Signature", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 316, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 65, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 317, + "type": { + "path": [ + "pallet_society", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bid", + "fields": [ + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A user outside of the society can make a bid for entry.", + "", + "Payment: The group's Candidate Deposit will be reserved for making a bid. It is returned", + "when the bid becomes a member, or if the bid calls `unbid`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `value`: A one time payment the bid would like to receive when joining the society." + ] + }, + { + "name": "unbid", + "fields": [], + "index": 1, + "docs": [ + "A bidder can remove their bid for entry into society.", + "By doing so, they will have their candidate deposit returned or", + "they will unvouch their voucher.", + "", + "Payment: The bid deposit is unreserved if the user made a bid.", + "", + "The dispatch origin for this call must be _Signed_ and a bidder." + ] + }, + { + "name": "vouch", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "As a member, vouch for someone to join society by placing a bid on their behalf.", + "", + "There is no deposit required to vouch for a new bid, but a member can only vouch for", + "one bid at a time. If the bid becomes a suspended candidate and ultimately rejected by", + "the suspension judgement origin, the member will be banned from vouching again.", + "", + "As a vouching member, you can claim a tip if the candidate is accepted. This tip will", + "be paid as a portion of the reward the member will receive for joining the society.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `who`: The user who you would like to vouch for.", + "- `value`: The total reward to be paid between you and the candidate if they become", + "a member in the society.", + "- `tip`: Your cut of the total `value` payout when the candidate is inducted into", + "the society. Tips larger than `value` will be saturated upon payout." + ] + }, + { + "name": "unvouch", + "fields": [], + "index": 3, + "docs": [ + "As a vouching member, unvouch a bid. This only works while vouched user is", + "only a bidder (and not a candidate).", + "", + "The dispatch origin for this call must be _Signed_ and a vouching member.", + "", + "Parameters:", + "- `pos`: Position in the `Bids` vector of the bid who should be unvouched." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "candidate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "As a member, vote on a candidate.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `candidate`: The candidate that the member would like to bid on.", + "- `approve`: A boolean which says if the candidate should be approved (`true`) or", + " rejected (`false`)." + ] + }, + { + "name": "defender_vote", + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 5, + "docs": [ + "As a member, vote on the defender.", + "", + "The dispatch origin for this call must be _Signed_ and a member.", + "", + "Parameters:", + "- `approve`: A boolean which says if the candidate should be", + "approved (`true`) or rejected (`false`)." + ] + }, + { + "name": "payout", + "fields": [], + "index": 6, + "docs": [ + "Transfer the first matured payout for the sender and remove it from the records.", + "", + "NOTE: This extrinsic needs to be called multiple times to claim multiple matured", + "payouts.", + "", + "Payment: The member will receive a payment equal to their first matured", + "payout to their free balance.", + "", + "The dispatch origin for this call must be _Signed_ and a member with", + "payouts remaining." + ] + }, + { + "name": "waive_repay", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Repay the payment previously given to the member with the signed origin, remove any", + "pending payments, and elevate them from rank 0 to rank 1." + ] + }, + { + "name": "found_society", + "fields": [ + { + "name": "founder", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "rules", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Found the society.", + "", + "This is done as a discrete action in order to allow for the", + "pallet to be included into a running chain and can only be done once.", + "", + "The dispatch origin for this call must be from the _FounderSetOrigin_.", + "", + "Parameters:", + "- `founder` - The first member and head of the newly founded society.", + "- `max_members` - The initial max number of members for the society.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group.", + "- `rules` - The rules of this society concerning membership.", + "", + "Complexity: O(1)" + ] + }, + { + "name": "dissolve", + "fields": [], + "index": 9, + "docs": [ + "Dissolve the society and remove all members.", + "", + "The dispatch origin for this call must be Signed, and the signing account must be both", + "the `Founder` and the `Head`. This implies that it may only be done when there is one", + "member." + ] + }, + { + "name": "judge_suspended_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "forgive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Allow suspension judgement origin to make judgement on a suspended member.", + "", + "If a suspended member is forgiven, we simply add them back as a member, not affecting", + "any of the existing storage items for that member.", + "", + "If a suspended member is rejected, remove all associated storage items, including", + "their payouts, and remove any vouched bids they currently have.", + "", + "The dispatch origin for this call must be Signed from the Founder.", + "", + "Parameters:", + "- `who` - The suspended member to be judged.", + "- `forgive` - A boolean representing whether the suspension judgement origin forgives", + " (`true`) or rejects (`false`) a suspended member." + ] + }, + { + "name": "set_parameters", + "fields": [ + { + "name": "max_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_intake", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_strikes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "candidate_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the maximum number of members in society and the maximum number of new candidates", + "in a single intake period.", + "", + "The dispatch origin for this call must be Signed by the Founder.", + "", + "Parameters:", + "- `max_members` - The maximum number of members for the society. This must be no less", + " than the current number of members.", + "- `max_intake` - The maximum number of candidates per intake period.", + "- `max_strikes`: The maximum number of strikes a member may get before they become", + " suspended and may only be reinstated by the founder.", + "- `candidate_deposit`: The deposit required to make a bid for membership of the group." + ] + }, + { + "name": "punish_skeptic", + "fields": [], + "index": 12, + "docs": [ + "Punish the skeptic with a strike if they did not vote on a candidate. Callable by the", + "candidate." + ] + }, + { + "name": "claim_membership", + "fields": [], + "index": 13, + "docs": [ + "Transform an approved candidate into a member. Callable only by the", + "the candidate, and only after the period for voting has ended." + ] + }, + { + "name": "bestow_membership", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Transform an approved candidate into a member. Callable only by the Signed origin of the", + "Founder, only after the period for voting has ended and only when the candidate is not", + "clearly rejected." + ] + }, + { + "name": "kick_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Remove the candidate's application from the society. Callable only by the Signed origin", + "of the Founder, only after the period for voting has ended, and only when they do not", + "have a clear approval.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "resign_candidacy", + "fields": [], + "index": 16, + "docs": [ + "Remove the candidate's application from the society. Callable only by the candidate.", + "", + "Any bid deposit is lost and voucher is banned." + ] + }, + { + "name": "drop_candidate", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Remove a `candidate`'s failed application from the society. Callable by any", + "signed origin but only at the end of the subsequent round and only for", + "a candidate with more rejections than approvals.", + "", + "The bid deposit is lost and the voucher is banned." + ] + }, + { + "name": "cleanup_candidacy", + "fields": [ + { + "name": "candidate", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Remove up to `max` stale votes for the given `candidate`.", + "", + "May be called by any Signed origin, but only after the candidate's candidacy is ended." + ] + }, + { + "name": "cleanup_challenge", + "fields": [ + { + "name": "challenge_round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Remove up to `max` stale votes for the defender in the given `challenge_round`.", + "", + "May be called by any Signed origin, but only after the challenge round is ended." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 20, + "docs": [ + "Poke the deposit reserved when bidding.", + "", + "The dispatch origin for this call must be _Signed_ and must be the bidder.", + "", + "The transaction fee is waived if the deposit is changed after poking/reconsideration.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 318, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_recovered", + "fields": [ + { + "name": "account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Send a call through a recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you want to make a call on-behalf-of.", + "- `call`: The call you want to make with the recovered account." + ] + }, + { + "name": "set_recovered", + "fields": [ + { + "name": "lost", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allow ROOT to bypass the recovery process and set a rescuer account", + "for a lost account directly.", + "", + "The dispatch origin for this call must be _ROOT_.", + "", + "Parameters:", + "- `lost`: The \"lost account\" to be recovered.", + "- `rescuer`: The \"rescuer account\" which can call as the lost account." + ] + }, + { + "name": "create_recovery", + "fields": [ + { + "name": "friends", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumberFromProviderOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a recovery configuration for your account. This makes your account recoverable.", + "", + "Payment: `ConfigDepositBase` + `FriendDepositFactor` * #_of_friends balance", + "will be reserved for storing the recovery configuration. This deposit is returned", + "in full when the user calls `remove_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `friends`: A list of friends you trust to vouch for recovery attempts. Should be", + " ordered and contain no duplicate values.", + "- `threshold`: The number of friends that must vouch for a recovery attempt before the", + " account can be recovered. Should be less than or equal to the length of the list of", + " friends.", + "- `delay_period`: The number of blocks after a recovery attempt is initialized that", + " needs to pass before the account can be recovered." + ] + }, + { + "name": "initiate_recovery", + "fields": [ + { + "name": "account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initiate the process for recovering a recoverable account.", + "", + "Payment: `RecoveryDeposit` balance will be reserved for initiating the", + "recovery process. This deposit will always be repatriated to the account", + "trying to be recovered. See `close_recovery`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `account`: The lost account that you want to recover. This account needs to be", + " recoverable (i.e. have a recovery configuration)." + ] + }, + { + "name": "vouch_recovery", + "fields": [ + { + "name": "lost", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "rescuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Allow a \"friend\" of a recoverable account to vouch for an active recovery", + "process for that account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"friend\"", + "for the recoverable account.", + "", + "Parameters:", + "- `lost`: The lost account that you want to recover.", + "- `rescuer`: The account trying to rescue the lost account that you want to vouch for.", + "", + "The combination of these two parameters must point to an active recovery", + "process." + ] + }, + { + "name": "claim_recovery", + "fields": [ + { + "name": "account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Allow a successful rescuer to claim their recovered account.", + "", + "The dispatch origin for this call must be _Signed_ and must be a \"rescuer\"", + "who has successfully completed the account recovery process: collected", + "`threshold` or more vouches, waited `delay_period` blocks since initiation.", + "", + "Parameters:", + "- `account`: The lost account that you want to claim has been successfully recovered by", + " you." + ] + }, + { + "name": "close_recovery", + "fields": [ + { + "name": "rescuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "As the controller of a recoverable account, close an active recovery", + "process for your account.", + "", + "Payment: By calling this function, the recoverable account will receive", + "the recovery deposit `RecoveryDeposit` placed by the rescuer.", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account with an active recovery process for it.", + "", + "Parameters:", + "- `rescuer`: The account trying to rescue this recoverable account." + ] + }, + { + "name": "remove_recovery", + "fields": [], + "index": 7, + "docs": [ + "Remove the recovery process for your account. Recovered accounts are still accessible.", + "", + "NOTE: The user must make sure to call `close_recovery` on all active", + "recovery attempts before calling this function else it will fail.", + "", + "Payment: By calling this function the recoverable account will unreserve", + "their recovery configuration deposit.", + "(`ConfigDepositBase` + `FriendDepositFactor` * #_of_friends)", + "", + "The dispatch origin for this call must be _Signed_ and must be a", + "recoverable account (i.e. has a recovery configuration)." + ] + }, + { + "name": "cancel_recovered", + "fields": [ + { + "name": "account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cancel the ability to use `as_recovered` for `account`.", + "", + "The dispatch origin for this call must be _Signed_ and registered to", + "be able to make calls on behalf of the recovered account.", + "", + "Parameters:", + "- `account`: The recovered account you are able to call on-behalf-of." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "maybe_account", + "type": 319, + "typeName": "Option>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Poke deposits for recovery configurations and / or active recoveries.", + "", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `maybe_account`: Optional recoverable account for which you have an active recovery", + "and want to adjust the deposit for the active recovery.", + "", + "This function checks both recovery configuration deposit and active recovery deposits", + "of the caller:", + "- If the caller has created a recovery configuration, checks and adjusts its deposit", + "- If the caller has initiated any active recoveries, and provides the account in", + "`maybe_account`, checks and adjusts those deposits", + "", + "If any deposit is updated, the difference will be reserved/unreserved from the caller's", + "account.", + "", + "The transaction is made free if any deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if any deposit is updated.", + "Multiple events may be emitted in case both types of deposits are updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 319, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 165 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 165, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 320, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vest", + "fields": [], + "index": 0, + "docs": [ + "Unlock any vested funds of the sender account.", + "", + "The dispatch origin for this call must be _Signed_ and the sender must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vest_other", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Unlock any vested funds of a `target` account.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account whose vested funds should be unlocked. Must have funds still", + "locked under this pallet.", + "", + "Emits either `VestingCompleted` or `VestingUpdated`.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "vested_transfer", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 321, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Create a vested transfer.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `target`: The account receiving the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "force_vested_transfer", + "fields": [ + { + "name": "source", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "schedule", + "type": 321, + "typeName": "VestingInfo, BlockNumberFor>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Force a vested transfer.", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `source`: The account whose funds should be transferred.", + "- `target`: The account that should be transferred the vested funds.", + "- `schedule`: The vesting schedule attached to the transfer.", + "", + "Emits `VestingCreated`.", + "", + "NOTE: This will unlock all schedules through the current block.", + "", + "## Complexity", + "- `O(1)`." + ] + }, + { + "name": "merge_schedules", + "fields": [ + { + "name": "schedule1_index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "schedule2_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Merge two vesting schedules together, creating a new vesting schedule that unlocks over", + "the highest possible start and end blocks. If both schedules have already started the", + "current block will be used as the schedule start; with the caveat that if one schedule", + "is finished by the current block, the other will be treated as the new merged schedule,", + "unmodified.", + "", + "NOTE: If `schedule1_index == schedule2_index` this is a no-op.", + "NOTE: This will unlock all schedules through the current block prior to merging.", + "NOTE: If both schedules have ended by the current block, no new schedule will be created", + "and both will be removed.", + "", + "Merged schedule attributes:", + "- `starting_block`: `MAX(schedule1.starting_block, scheduled2.starting_block,", + " current_block)`.", + "- `ending_block`: `MAX(schedule1.ending_block, schedule2.ending_block)`.", + "- `locked`: `schedule1.locked_at(current_block) + schedule2.locked_at(current_block)`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `schedule1_index`: index of the first schedule to merge.", + "- `schedule2_index`: index of the second schedule to merge." + ] + }, + { + "name": "force_remove_vesting_schedule", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "::Source", + "docs": [] + }, + { + "name": "schedule_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Force remove a vesting schedule", + "", + "The dispatch origin for this call must be _Root_.", + "", + "- `target`: An account that has a vesting schedule", + "- `schedule_index`: The vesting schedule index that should be removed" + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 321, + "type": { + "path": [ + "pallet_vesting", + "vesting_info", + "VestingInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "locked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "starting_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 322, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "schedule", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 323, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Anonymously schedule a task." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Cancel an anonymously scheduled task." + ] + }, + { + "name": "schedule_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 323, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Schedule a named task." + ] + }, + { + "name": "cancel_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a named scheduled task." + ] + }, + { + "name": "schedule_after", + "fields": [ + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 323, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Anonymously schedule a task after a delay." + ] + }, + { + "name": "schedule_named_after", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "after", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 323, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Schedule a named task after a delay." + ] + }, + { + "name": "set_retry", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set a retry configuration for a task so that, in case its scheduled run fails, it will", + "be retried after `period` blocks, for a total amount of `retries` retries or until it", + "succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "set_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + }, + { + "name": "retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Set a retry configuration for a named task so that, in case its scheduled run fails, it", + "will be retried after `period` blocks, for a total amount of `retries` retries or until", + "it succeeds.", + "", + "Tasks which need to be scheduled for a retry are still subject to weight metering and", + "agenda space, same as a regular task. If a periodic task fails, it will be scheduled", + "normally while the task is retrying.", + "", + "Tasks scheduled as a result of a retry for a periodic task are unnamed, non-periodic", + "clones of the original task. Their retry configuration will be derived from the", + "original task's configuration, but will have a lower value for `remaining` than the", + "original `total_retries`." + ] + }, + { + "name": "cancel_retry", + "fields": [ + { + "name": "task", + "type": 93, + "typeName": "TaskAddress>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Removes the retry configuration of a task." + ] + }, + { + "name": "cancel_retry_named", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "TaskName", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Cancel the retry configuration of a named task." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 323, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 93 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 93, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 324, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "initialize_pallet", + "fields": [ + { + "name": "new_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_count", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Initialize the pallet. Should be called once, if no genesis state was provided.", + "", + "`current_count` is the current number of elements in `TrashData`. This can be set to", + "`None` when the pallet is first initialized.", + "", + "Only callable by Root or `AdminOrigin`. A good default for `new_count` is `5_000`." + ] + }, + { + "name": "set_compute", + "fields": [ + { + "name": "compute", + "type": 96, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set how much of the remaining `ref_time` weight should be consumed by `on_idle`.", + "", + "Only callable by Root or `AdminOrigin`." + ] + }, + { + "name": "set_storage", + "fields": [ + { + "name": "storage", + "type": 96, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set how much of the remaining `proof_size` weight should be consumed by `on_idle`.", + "", + "`1.0` means that all remaining `proof_size` will be consumed. The PoV benchmarking", + "results that are used here are likely an over-estimation. 100% intended consumption will", + "therefore translate to less than 100% actual consumption.", + "", + "Only callable by Root or `AdminOrigin`." + ] + }, + { + "name": "bloat", + "fields": [ + { + "name": "garbage", + "type": 325, + "typeName": "Vec<[u8; VALUE_SIZE]>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Increase the block size by including the specified garbage bytes." + ] + }, + { + "name": "set_block_length", + "fields": [ + { + "name": "block_length", + "type": 96, + "typeName": "FixedU64", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set how much of the block length should be filled with trash data on each block.", + "", + "`1.0` means that all block should be filled. If set to `1.0`, storage proof size will", + " be close to zero.", + "", + "Only callable by Root or `AdminOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 325, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 326 + } + }, + "docs": [] + } + }, + { + "id": 326, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 1024, + "type": 2 + } + }, + "docs": [] + } + }, + { + "id": 327, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "note_preimage", + "fields": [ + { + "name": "bytes", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a preimage on-chain.", + "", + "If the preimage was previously requested, no fees or deposits are taken for providing", + "the preimage. Otherwise, a deposit is taken proportional to the size of the preimage." + ] + }, + { + "name": "unnote_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Clear an unrequested preimage from the runtime storage.", + "", + "If `len` is provided, then it will be a much cheaper operation.", + "", + "- `hash`: The hash of the preimage to be removed from the store.", + "- `len`: The length of the preimage of `hash`." + ] + }, + { + "name": "request_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Request a preimage be uploaded to the chain without paying any fees or deposits.", + "", + "If the preimage requests has already been provided on-chain, we unreserve any deposit", + "a user may have paid, and take the control of the preimage out of their hands." + ] + }, + { + "name": "unrequest_preimage", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clear a previously made request for a preimage.", + "", + "NOTE: THIS MUST NOT BE CALLED ON `hash` MORE TIMES THAN `request_preimage`." + ] + }, + { + "name": "ensure_updated", + "fields": [ + { + "name": "hashes", + "type": 328, + "typeName": "Vec", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Ensure that the bulk of pre-images is upgraded.", + "", + "The caller pays no fee if at least 90% of pre-images were successfully updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 328, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 13 + } + }, + "docs": [] + } + }, + { + "id": 329, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "proxy", + "fields": [ + { + "name": "real", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 330, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorised for through", + "`add_proxy`.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "add_proxy", + "fields": [ + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register a proxy account for the sender that is able to make calls on its behalf.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to make a proxy.", + "- `proxy_type`: The permissions allowed for this proxy account.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero." + ] + }, + { + "name": "remove_proxy", + "fields": [ + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unregister a proxy account for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `proxy`: The account that the `caller` would like to remove as a proxy.", + "- `proxy_type`: The permissions currently enabled for the removed proxy account." + ] + }, + { + "name": "remove_proxies", + "fields": [], + "index": 3, + "docs": [ + "Unregister all proxy accounts for the sender.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "WARNING: This may be called on accounts created by `pure`, however if done, then", + "the unreserved fees will be inaccessible. **All access to this account will be lost.**" + ] + }, + { + "name": "create_pure", + "fields": [ + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 100, + "typeName": "u16", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Spawn a fresh new account that is guaranteed to be otherwise inaccessible, and", + "initialize it with a proxy of `proxy_type` for `origin` sender.", + "", + "Requires a `Signed` origin.", + "", + "- `proxy_type`: The type of the proxy that the sender will be registered as over the", + "new account. This will almost always be the most permissive `ProxyType` possible to", + "allow for maximum flexibility.", + "- `index`: A disambiguation index, in case this is called multiple times in the same", + "transaction (e.g. with `utility::batch`). Unless you're using `batch` you probably just", + "want to use `0`.", + "- `delay`: The announcement period required of the initial proxy. Will generally be", + "zero.", + "", + "Fails with `Duplicate` if this has already been called in this transaction, from the", + "same sender, with the same parameters.", + "", + "Fails if there are insufficient funds to pay for deposit." + ] + }, + { + "name": "kill_pure", + "fields": [ + { + "name": "spawner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "T::ProxyType", + "docs": [] + }, + { + "name": "index", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "height", + "type": 156, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "ext_index", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Removes a previously spawned pure proxy.", + "", + "WARNING: **All access to this account will be lost.** Any funds held in it will be", + "inaccessible.", + "", + "Requires a `Signed` origin, and the sender account must have been created by a call to", + "`pure` with corresponding parameters.", + "", + "- `spawner`: The account that originally called `pure` to create this account.", + "- `index`: The disambiguation index originally passed to `create_pure`. Probably `0`.", + "- `proxy_type`: The proxy type originally passed to `pure`.", + "- `height`: The height of the chain when the call to `pure` was processed.", + "- `ext_index`: The extrinsic index in which the call to `pure` was processed.", + "", + "Fails with `NoPermission` in case the caller is not a previously created pure", + "account whose `pure` call has corresponding parameters." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "real", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Publish the hash of a proxy-call that will be made in the future.", + "", + "This must be called some number of blocks before the corresponding `proxy` is attempted", + "if the delay associated with the proxy relationship is greater than zero.", + "", + "No more than `MaxPending` announcements may be made at any one time.", + "", + "This will take a deposit of `AnnouncementDepositFactor` as well as", + "`AnnouncementDepositBase` if there are no other pending announcements.", + "", + "The dispatch origin for this call must be _Signed_ and a proxy of `real`.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "real", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove a given announcement.", + "", + "May be called by a proxy account to remove a call they previously announced and return", + "the deposit.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `call_hash`: The hash of the call to be made by the `real` account." + ] + }, + { + "name": "reject_announcement", + "fields": [ + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "CallHashOf", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Remove the given announcement of a delegate.", + "", + "May be called by a target (proxied) account to remove a call that one of their delegates", + "(`delegate`) has announced they want to execute. The deposit is returned.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `delegate`: The account that previously announced the call.", + "- `call_hash`: The hash of the call to be made." + ] + }, + { + "name": "proxy_announced", + "fields": [ + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "real", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "force_proxy_type", + "type": 330, + "typeName": "Option", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch the given `call` from an account that the sender is authorized for through", + "`add_proxy`.", + "", + "Removes any corresponding announcement(s).", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `real`: The account that the proxy will make a call on behalf of.", + "- `force_proxy_type`: Specify the exact proxy type to be used and checked for this call.", + "- `call`: The call to be made by the `real` account." + ] + }, + { + "name": "poke_deposit", + "fields": [], + "index": 10, + "docs": [ + "Poke / Adjust deposits made for proxies and announcements based on current values.", + "This can be used by accounts to possibly lower their locked amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 330, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 99 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 99, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 331, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "as_multi_threshold_1", + "fields": [ + { + "name": "other_signatories", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Immediately dispatch a multi-signature call using a single approval from the caller.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + "multi-signature, but do not participate in the approval process.", + "- `call`: The call to be executed.", + "", + "Result is equivalent to the dispatched result.", + "", + "## Complexity", + "O(Z + C) where Z is the length of the call and C its execution weight." + ] + }, + { + "name": "as_multi", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 332, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "If there are enough, then dispatch the call.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call`: The call to be executed.", + "", + "NOTE: Unless this is the final approval, you will generally want to use", + "`approve_as_multi` instead, since it only requires a hash of the call.", + "", + "Result is equivalent to the dispatched result if `threshold` is exactly `1`. Otherwise", + "on success, result is `Ok` and the result from the interior call, if it was executed,", + "may be found in the deposited `MultisigExecuted` event.", + "", + "## Complexity", + "- `O(S + Z + Call)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One call encode & hash, both of complexity `O(Z)` where `Z` is tx-len.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- The weight of the `call`.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "approve_as_multi", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "maybe_timepoint", + "type": 332, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + }, + { + "name": "max_weight", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Register approval for a dispatch to be made from a deterministic composite account if", + "approved by a total of `threshold - 1` of `other_signatories`.", + "", + "Payment: `DepositBase` will be reserved if this is the first approval, plus", + "`threshold` times `DepositFactor`. It is returned once this dispatch happens or", + "is cancelled.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `maybe_timepoint`: If this is the first approval, then this must be `None`. If it is", + "not the first approval, then it must be `Some`, with the timepoint (block number and", + "transaction index) of the first approval transaction.", + "- `call_hash`: The hash of the call to be executed.", + "", + "NOTE: If this is the final approval, you will want to use `as_multi` instead.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- Up to one binary search and insert (`O(logS + S)`).", + "- I/O: 1 read `O(S)`, up to 1 mutate `O(S)`. Up to one remove.", + "- One event.", + "- Storage: inserts one item, value size bounded by `MaxSignatories`, with a deposit", + " taken for its lifetime of `DepositBase + threshold * DepositFactor`." + ] + }, + { + "name": "cancel_as_multi", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "timepoint", + "type": 103, + "typeName": "Timepoint>", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel a pre-existing, on-going multisig transaction. Any deposit reserved previously", + "for this operation will be unreserved on success.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "- `threshold`: The total number of approvals for this dispatch before it is executed.", + "- `other_signatories`: The accounts (other than the sender) who can approve this", + "dispatch. May not be empty.", + "- `timepoint`: The timepoint (block number and transaction index) of the first approval", + "transaction for this dispatch.", + "- `call_hash`: The hash of the call to be executed.", + "", + "## Complexity", + "- `O(S)`.", + "- Up to one balance-reserve or unreserve operation.", + "- One passthrough operation, one insert, both `O(S)` where `S` is the number of", + " signatories. `S` is capped by `MaxSignatories`, with weight being proportional.", + "- One encode & hash, both of complexity `O(S)`.", + "- One event.", + "- I/O: 1 read `O(S)`, one remove.", + "- Storage: removes one item." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + }, + { + "name": "other_signatories", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "call_hash", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Poke the deposit reserved for an existing multisig operation.", + "", + "The dispatch origin for this call must be _Signed_ and must be the original depositor of", + "the multisig operation.", + "", + "The transaction fee is waived if the deposit amount has changed.", + "", + "- `threshold`: The total number of approvals needed for this multisig.", + "- `other_signatories`: The accounts (other than the sender) who are part of the", + " multisig.", + "- `call_hash`: The hash of the call this deposit is reserved for.", + "", + "Emits `DepositPoked` if successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 332, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 103 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 103, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 333, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose_bounty", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a new bounty.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`. It will be unreserved upon approval,", + "or slashed when rejected.", + "", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "- `value`: The total payment amount of this bounty, curator fee included.", + "- `description`: The description of this bounty." + ] + }, + { + "name": "approve_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Approve a bounty proposal. At a later time, the bounty will be funded and become active", + "and the original deposit will be returned.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Propose a curator to a funded bounty.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a bounty.", + "", + "This function can only be called by the `RejectOrigin` a signed origin.", + "", + "If this function is called by the `RejectOrigin`, we assume that the curator is", + "malicious or inactive. As a result, we will slash the curator when possible.", + "", + "If the origin is the curator, we take this as a sign they are unable to do their job and", + "they willingly give up. We could slash them, but for now we allow them to recover their", + "deposit and exit without issue. (We may want to change this if it is abused.)", + "", + "Finally, the origin can be anyone if and only if the curator is \"inactive\". This allows", + "anyone in the community to call out that a curator is not doing their due diligence, and", + "we should pick a new curator. In this case the curator should also be slashed.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Accept the curator role for a bounty.", + "A deposit will be reserved from curator and refund upon successful payout.", + "", + "May only be called from the curator.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "award_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Award bounty to a beneficiary account. The beneficiary will be able to claim the funds", + "after a delay.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to award.", + "- `beneficiary`: The beneficiary account whom will receive the payout.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "claim_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Claim the payout from an awarded bounty after payout delay.", + "", + "The dispatch origin for this call must be the beneficiary of this bounty.", + "", + "- `bounty_id`: Bounty ID to claim.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "close_bounty", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Cancel a proposed or active bounty. All the funds will be sent to treasury and", + "the curator deposit will be unreserved if possible.", + "", + "Only `T::RejectOrigin` is able to cancel a bounty.", + "", + "- `bounty_id`: Bounty ID to cancel.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "extend_bounty_expiry", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Extend the expiry time of an active bounty.", + "", + "The dispatch origin for this call must be the curator of this bounty.", + "", + "- `bounty_id`: Bounty ID to extend.", + "- `remark`: additional information.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "approve_bounty_with_curator", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Approve bountry and propose a curator simultaneously.", + "This call is a shortcut to calling `approve_bounty` and `propose_curator` separately.", + "", + "May only be called from `T::SpendOrigin`.", + "", + "- `bounty_id`: Bounty ID to approve.", + "- `curator`: The curator account whom will manage this bounty.", + "- `fee`: The curator fee.", + "", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "poke_deposit", + "fields": [ + { + "name": "bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Poke the deposit reserved for creating a bounty proposal.", + "", + "This can be used by accounts to update their reserved amount.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Parameters:", + "- `bounty_id`: The bounty id for which to adjust the deposit.", + "", + "If the deposit is updated, the difference will be reserved/unreserved from the", + "proposer's account.", + "", + "The transaction is made free if the deposit is updated and paid otherwise.", + "", + "Emits `DepositPoked` if the deposit is updated." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 334, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_awesome", + "fields": [ + { + "name": "reason", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report something `reason` that deserves a tip and claim any eventual the finder's fee.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "Payment: `TipReportDepositBase` will be reserved from the origin account, as well as", + "`DataDepositPerByte` for each byte in `reason`.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R)` where `R` length of `reason`.", + " - encoding and hashing of 'reason'" + ] + }, + { + "name": "retract_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a prior tip-report from `report_awesome`, and cancel the process of tipping.", + "", + "If successful, the original deposit will be unreserved.", + "", + "The dispatch origin for this call must be _Signed_ and the tip identified by `hash`", + "must have been reported by the signing account through `report_awesome` (and not", + "through `tip_new`).", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "Emits `TipRetracted` if successful.", + "", + "## Complexity", + "- `O(1)`", + " - Depends on the length of `T::Hash` which is fixed." + ] + }, + { + "name": "tip_new", + "fields": [ + { + "name": "reason", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "tip_value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Give a tip for something new; no finder's fee will be taken.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `reason`: The reason for, or the thing that deserves, the tip; generally this will be", + " a UTF-8-encoded URL.", + "- `who`: The account which should be credited for the tip.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `NewTip` if successful.", + "", + "## Complexity", + "- `O(R + T)` where `R` length of `reason`, `T` is the number of tippers.", + " - `O(T)`: decoding `Tipper` vec of length `T`. `T` is charged as upper bound given by", + " `ContainsLengthBound`. The actual cost depends on the implementation of", + " `T::Tippers`.", + " - `O(R)`: hashing and encoding of reason of length `R`" + ] + }, + { + "name": "tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "tip_value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Declare a tip value for an already-open tip.", + "", + "The dispatch origin for this call must be _Signed_ and the signing account must be a", + "member of the `Tippers` set.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the hash of the original tip `reason` and the beneficiary", + " account ID.", + "- `tip_value`: The amount of tip that the sender would like to give. The median tip", + " value of active tippers will be given to the `who`.", + "", + "Emits `TipClosing` if the threshold of tippers has been reached and the countdown period", + "has started.", + "", + "## Complexity", + "- `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`, insert", + " tip and check closing, `T` is charged as upper bound given by `ContainsLengthBound`.", + " The actual cost depends on the implementation of `T::Tippers`.", + "", + " Actually weight could be lower as it depends on how many tips are in `OpenTip` but it", + " is weighted as if almost full i.e of length `T-1`." + ] + }, + { + "name": "close_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Close and payout a tip.", + "", + "The dispatch origin for this call must be _Signed_.", + "", + "The tip identified by `hash` must have finished its countdown period.", + "", + "- `hash`: The identity of the open tip for which a tip value is declared. This is formed", + " as the hash of the tuple of the original tip `reason` and the beneficiary account ID.", + "", + "## Complexity", + "- : `O(T)` where `T` is the number of tippers. decoding `Tipper` vec of length `T`. `T`", + " is charged as upper bound given by `ContainsLengthBound`. The actual cost depends on", + " the implementation of `T::Tippers`." + ] + }, + { + "name": "slash_tip", + "fields": [ + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove and slash an already-open tip.", + "", + "May only be called from `T::RejectOrigin`.", + "", + "As a result, the finder is slashed and the deposits are lost.", + "", + "Emits `TipSlashed` if successful.", + "", + "## Complexity", + "- O(1)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 335, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 168, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 336, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new class of fungible assets from a public origin.", + "", + "This new asset class has no assets initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "Funds of sender are reserved by `AssetDeposit`.", + "", + "Parameters:", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `admin`: The admin of this class of assets. The admin is the initial address of each", + "member of the asset class's admin team.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "min_balance", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new class of fungible assets from a privileged origin.", + "", + "This new asset class has no assets initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `id`: The identifier of the new asset. This must not be currently in use to identify", + "an existing asset. If [`NextAssetId`] is set, then this must be equal to it.", + "- `owner`: The owner of this class of assets. The owner has full superuser permissions", + "over this asset, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "start_destroy", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start the process of destroying a fungible asset class.", + "", + "`start_destroy` is the first in a series of extrinsics that should be called, to allow", + "destruction of an asset class.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` by the asset's `owner`.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "an account contains holds or freezes in place." + ] + }, + { + "name": "destroy_accounts", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Destroy all accounts associated with a given asset.", + "", + "`destroy_accounts` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all accounts. It will destroy `RemoveItemsLimit` accounts at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedAccounts` event." + ] + }, + { + "name": "destroy_approvals", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy all approvals associated with a given asset up to the max (T::RemoveItemsLimit).", + "", + "`destroy_approvals` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state.", + "", + "Due to weight restrictions, this function may need to be called multiple times to fully", + "destroy all approvals. It will destroy `RemoveItemsLimit` approvals at a time.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each call emits the `Event::DestroyedApprovals` event." + ] + }, + { + "name": "finish_destroy", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Complete destroying asset and unreserve currency.", + "", + "`finish_destroy` should only be called after `start_destroy` has been called, and the", + "asset is in a `Destroying` state. All accounts or approvals should be destroyed before", + "hand.", + "", + "- `id`: The identifier of the asset to be destroyed. This must identify an existing", + " asset.", + "", + "Each successful call emits the `Event::Destroyed` event." + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Mint assets of a particular class.", + "", + "The origin must be Signed and the sender must be the Issuer of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount minted.", + "- `beneficiary`: The account to be credited with the minted assets.", + "- `amount`: The amount of the asset to be minted.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`", + "Modes: Pre-existing balance of `beneficiary`; Account pre-existence of `beneficiary`." + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Reduce the balance of `who` by as much as possible up to `amount` assets of `id`.", + "", + "Origin must be Signed and the sender should be the Manager of the asset `id`.", + "", + "Bails with `NoAccount` if the `who` is already dead.", + "", + "- `id`: The identifier of the asset to have some amount burned.", + "- `who`: The account to be debited from.", + "- `amount`: The maximum amount by which `who`'s balance should be reduced.", + "", + "Emits `Burned` with the actual amount burned. If this takes the balance to below the", + "minimum for the asset, then the amount burned is increased to take it to zero.", + "", + "Weight: `O(1)`", + "Modes: Post-existence of `who`; Pre & post Zombie-status of `who`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Move some assets from the sender account to another.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "transfer_keep_alive", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Move some assets from the sender account to another, keeping the sender account alive.", + "", + "Origin must be Signed.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `target`: The account to be credited.", + "- `amount`: The amount by which the sender's balance of assets should be reduced and", + "`target`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the sender balance above zero but below", + "the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `target`; Post-existence of sender; Account pre-existence of", + "`target`." + ] + }, + { + "name": "force_transfer", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "source", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Move some assets from one account to another.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to have some amount transferred.", + "- `source`: The account to be debited.", + "- `dest`: The account to be credited.", + "- `amount`: The amount by which the `source`'s balance of assets should be reduced and", + "`dest`'s balance increased. The amount actually transferred may be slightly greater in", + "the case that the transfer would otherwise take the `source` balance above zero but", + "below the minimum balance. Must be greater than zero.", + "", + "Emits `Transferred` with the actual amount transferred. If this takes the source balance", + "to below the minimum for the asset, then the amount transferred is increased to take it", + "to zero.", + "", + "Weight: `O(1)`", + "Modes: Pre-existence of `dest`; Post-existence of `source`; Account pre-existence of", + "`dest`." + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` from an account `who`. `who`", + "must already exist as an entry in `Account`s of the asset. If you want to freeze an", + "account that does not have an entry, use `touch_other` first.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Allow unprivileged transfers to and from an account again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `who`: The account to be unfrozen.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_asset", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Disallow further unprivileged transfers for the asset class.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_asset", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Allow unprivileged transfers for the asset again.", + "", + "Origin must be Signed and the sender should be the Admin of the asset `id`.", + "", + "- `id`: The identifier of the asset to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Change the Owner of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "issuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Change the Issuer, Admin and Freezer of an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "- `id`: The identifier of the asset to be frozen.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Funds of sender are reserved according to the formula:", + "`MetadataDepositBase + MetadataDepositPerByte * (name.len + symbol.len)` taking into", + "account any already reserved funds.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be Signed and the sender should be the Owner of the asset `id`.", + "", + "Any deposit is freed for the asset owner.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "name", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "symbol", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Force the metadata for an asset to some value.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is left alone.", + "", + "- `id`: The identifier of the asset to update.", + "- `name`: The user friendly name of this asset. Limited in length by `StringLimit`.", + "- `symbol`: The exchange symbol for this asset. Limited in length by `StringLimit`.", + "- `decimals`: The number of decimals this asset uses to represent one unit.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(N + S)` where N and S are the length of the name and symbol respectively." + ] + }, + { + "name": "force_clear_metadata", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Clear the metadata for an asset.", + "", + "Origin must be ForceOrigin.", + "", + "Any deposit is returned.", + "", + "- `id`: The identifier of the asset to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_asset_status", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_balance", + "type": 168, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Alter the attributes of a given asset.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The new Owner of this asset.", + "- `issuer`: The new Issuer of this asset.", + "- `admin`: The new Admin of this asset.", + "- `freezer`: The new Freezer of this asset.", + "- `min_balance`: The minimum balance of this new asset that any single account must", + "have. If an account's balance is reduced below this, then it collapses to zero.", + "- `is_sufficient`: Whether a non-zero balance of this asset is deposit of sufficient", + "value to account for the state bloat associated with its balance storage. If set to", + "`true`, then non-zero balances may be stored without a `consumer` reference (and thus", + "an ED in the Balances pallet or whatever else is used to control user-account state", + "growth).", + "- `is_frozen`: Whether this asset class is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `AssetStatusChanged` with the identity of the asset.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve an amount of asset for transfer by a delegated third-party account.", + "", + "Origin must be Signed.", + "", + "Ensures that `ApprovalDeposit` worth of `Currency` is reserved from signing account", + "for the purpose of holding the approval. If some non-zero amount of assets is already", + "approved from signing account to `delegate`, then it is topped up or unreserved to", + "meet the right value.", + "", + "NOTE: The signing account does not need to own `amount` of assets at the point of", + "making this call.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account to delegate permission to transfer asset.", + "- `amount`: The amount of asset that may be transferred by `delegate`. If there is", + "already an approval in place, then this acts additively.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be Signed and there must be an approval in place between signer and", + "`delegate`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_cancel_approval", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Cancel all of some asset approved for delegated transfer by a third-party account.", + "", + "Origin must be either ForceOrigin or Signed origin with the signer being the Admin", + "account of the asset `id`.", + "", + "Unreserves any deposit previously reserved by `approve_transfer` for the approval.", + "", + "- `id`: The identifier of the asset.", + "- `delegate`: The account delegated permission to transfer asset.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_approved", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "destination", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "amount", + "type": 168, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Transfer some asset balance from a previously delegated account to some third-party", + "account.", + "", + "Origin must be Signed and there must be an approval in place by the `owner` to the", + "signer.", + "", + "If the entire amount approved for transfer is transferred, then any deposit previously", + "reserved by `approve_transfer` is unreserved.", + "", + "- `id`: The identifier of the asset.", + "- `owner`: The account which previously approved for a transfer of at least `amount` and", + "from which the asset balance will be withdrawn.", + "- `destination`: The account to which the asset balance of `amount` will be transferred.", + "- `amount`: The amount of assets to transfer.", + "", + "Emits `TransferredApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Create an asset account for non-provider assets.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed; the signer account must have sufficient funds for a deposit", + " to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "allow_burn", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Return the deposit (if any) of an asset account or a consumer reference (if any) of an", + "account.", + "", + "The origin must be Signed.", + "", + "- `id`: The identifier of the asset for which the caller would like the deposit", + " refunded.", + "- `allow_burn`: If `true` then assets may be destroyed in order to complete the refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "set_min_balance", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Sets the minimum balance of an asset.", + "", + "Only works if there aren't any accounts that are holding the asset or if", + "the new value of `min_balance` is less than the old one.", + "", + "Origin must be Signed and the sender has to be the Owner of the", + "asset `id`.", + "", + "- `id`: The identifier of the asset.", + "- `min_balance`: The new value of `min_balance`.", + "", + "Emits `AssetMinBalanceChanged` event when successful." + ] + }, + { + "name": "touch_other", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Create an asset account for `who`.", + "", + "A deposit will be taken from the signer account.", + "", + "- `origin`: Must be Signed by `Freezer` or `Admin` of the asset `id`; the signer account", + " must have sufficient funds for a deposit to be taken.", + "- `id`: The identifier of the asset for the account to be created.", + "- `who`: The account to be created.", + "", + "Emits `Touched` event when successful." + ] + }, + { + "name": "refund_other", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Return the deposit (if any) of a target asset account. Useful if you are the depositor.", + "", + "The origin must be Signed and either the account owner, depositor, or asset `Admin`. In", + "order to burn a non-zero balance of the asset, the caller must be the account and should", + "use `refund`.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `who`: The account to refund.", + "", + "It will fail with either [`Error::ContainsHolds`] or [`Error::ContainsFreezes`] if", + "the asset account contains holds or freezes in place.", + "", + "Emits `Refunded` event when successful." + ] + }, + { + "name": "block", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Disallow further unprivileged transfers of an asset `id` to and from an account `who`.", + "", + "Origin must be Signed and the sender should be the Freezer of the asset `id`.", + "", + "- `id`: The identifier of the account's asset.", + "- `who`: The account to be unblocked.", + "", + "Emits `Blocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_all", + "fields": [ + { + "name": "id", + "type": 156, + "typeName": "T::AssetIdParameter", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Transfer the entire transferable balance from the caller asset account.", + "", + "NOTE: This function only attempts to transfer _transferable_ balances. This means that", + "any held, frozen, or minimum balance (when `keep_alive` is `true`), will not be", + "transferred by this function. To ensure that this function results in a killed account,", + "you might need to prepare the account by removing any reference counters, storage", + "deposits, etc...", + "", + "The dispatch origin of this call must be Signed.", + "", + "- `id`: The identifier of the asset for the account holding a deposit.", + "- `dest`: The recipient of the transfer.", + "- `keep_alive`: A boolean to determine if the `transfer_all` operation should send all", + " of the funds the asset account has, causing the sender asset account to be killed", + " (false), or transfer everything except at least the minimum balance, which will", + " guarantee to keep the sender asset account alive (true)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 337, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "report_double_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 338, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported." + ] + }, + { + "name": "report_double_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 338, + "typeName": "Box, T::BeefyId,::Signature,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Report voter equivocation/misbehavior. This method will verify the", + "equivocation proof and validate the given key ownership proof", + "against the extracted offender. If both are valid, the offence", + "will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "set_new_genesis", + "fields": [ + { + "name": "delay_in_blocks", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Reset BEEFY consensus by setting a new BEEFY genesis at `delay_in_blocks` blocks in the", + "future.", + "", + "Note: `delay_in_blocks` has to be at least 1." + ] + }, + { + "name": "report_fork_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 345, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_fork_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 345, + "typeName": "Box, T::BeefyId,>>::Proof,>,>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Report fork voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + }, + { + "name": "report_future_block_voting", + "fields": [ + { + "name": "equivocation_proof", + "type": 349, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported." + ] + }, + { + "name": "report_future_block_voting_unsigned", + "fields": [ + { + "name": "equivocation_proof", + "type": 349, + "typeName": "Box, T::BeefyId>>", + "docs": [] + }, + { + "name": "key_owner_proof", + "type": 159, + "typeName": "T::KeyOwnerProof", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Report future block voting equivocation. This method will verify the equivocation proof", + "and validate the given key ownership proof against the extracted offender.", + "If both are valid, the offence will be reported.", + "", + "This extrinsic must be called unsigned and it is expected that only", + "block authors will call it (validated in `ValidateUnsigned`), as such", + "if the block author is defined it will be defined as the equivocation", + "reporter." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 338, + "type": { + "path": [ + "sp_consensus_beefy", + "DoubleVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "Signature", + "type": 339 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "first", + "type": 340, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "second", + "type": 340, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 339, + "type": { + "path": [ + "sp_consensus_beefy", + "ecdsa_crypto", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 316, + "typeName": "ecdsa::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 340, + "type": { + "path": [ + "sp_consensus_beefy", + "VoteMessage" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "Signature", + "type": 339 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commitment", + "type": 341, + "typeName": "Commitment", + "docs": [] + }, + { + "name": "id", + "type": 245, + "typeName": "Id", + "docs": [] + }, + { + "name": "signature", + "type": 339, + "typeName": "Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 341, + "type": { + "path": [ + "sp_consensus_beefy", + "commitment", + "Commitment" + ], + "params": [ + { + "name": "TBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payload", + "type": 342, + "typeName": "Payload", + "docs": [] + }, + { + "name": "block_number", + "type": 4, + "typeName": "TBlockNumber", + "docs": [] + }, + { + "name": "validator_set_id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 342, + "type": { + "path": [ + "sp_consensus_beefy", + "payload", + "Payload" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 343, + "typeName": "Vec<(BeefyPayloadId, Vec)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 343, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 344 + } + }, + "docs": [] + } + }, + { + "id": 344, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 282, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 345, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 155 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "AncestryProof", + "type": 346 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 340, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 346, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 155, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 346, + "type": { + "path": [ + "sp_mmr_primitives", + "AncestryProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev_peaks", + "type": 328, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prev_leaf_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 347, + "typeName": "Vec<(u64, Hash)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 347, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 348 + } + }, + "docs": [] + } + }, + { + "id": 348, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 13 + ] + }, + "docs": [] + } + }, + { + "id": 349, + "type": { + "path": [ + "sp_consensus_beefy", + "FutureBlockVotingProof" + ], + "params": [ + { + "name": "Number", + "type": 4 + }, + { + "name": "Id", + "type": 245 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 340, + "typeName": "VoteMessage", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 350, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "buy_ticket", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Buy a ticket to enter the lottery.", + "", + "This extrinsic acts as a passthrough function for `call`. In all", + "situations where `call` alone would succeed, this extrinsic should", + "succeed.", + "", + "If `call` is successful, then we will attempt to purchase a ticket,", + "which may fail silently. To detect success of a ticket purchase, you", + "should listen for the `TicketBought` event.", + "", + "This extrinsic must be called by a signed origin." + ] + }, + { + "name": "set_calls", + "fields": [ + { + "name": "calls", + "type": 147, + "typeName": "Vec<::RuntimeCall>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set calls in storage which can be used to purchase a lottery ticket.", + "", + "This function only matters if you use the `ValidateCall` implementation", + "provided by this pallet, which uses storage to determine the valid calls.", + "", + "This extrinsic must be called by the Manager origin." + ] + }, + { + "name": "start_lottery", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "repeat", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Start a lottery using the provided configuration.", + "", + "This extrinsic must be called by the `ManagerOrigin`.", + "", + "Parameters:", + "", + "* `price`: The cost of a single ticket.", + "* `length`: How long the lottery should run for starting at the current block.", + "* `delay`: How long after the lottery end we should wait before picking a winner.", + "* `repeat`: If the lottery should repeat when completed." + ] + }, + { + "name": "stop_repeat", + "fields": [], + "index": 3, + "docs": [ + "If a lottery is repeating, you can use this to stop the repeat.", + "The lottery will continue to run to completion.", + "", + "This extrinsic must be called by the `ManagerOrigin`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 351, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "place_bid", + "fields": [ + { + "name": "amount", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Place a bid.", + "", + "Origin must be Signed, and account must have at least `amount` in free balance.", + "", + "- `amount`: The amount of the bid; these funds will be reserved, and if/when", + " consolidated, removed. Must be at least `MinBid`.", + "- `duration`: The number of periods before which the newly consolidated bid may be", + " thawed. Must be greater than 1 and no more than `QueueCount`.", + "", + "Complexities:", + "- `Queues[duration].len()` (just take max)." + ] + }, + { + "name": "retract_bid", + "fields": [ + { + "name": "amount", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Retract a previously placed bid.", + "", + "Origin must be Signed, and the account should have previously issued a still-active bid", + "of `amount` for `duration`.", + "", + "- `amount`: The amount of the previous bid.", + "- `duration`: The duration of the previous bid." + ] + }, + { + "name": "fund_deficit", + "fields": [], + "index": 2, + "docs": [ + "Ensure we have sufficient funding for all potential payouts.", + "", + "- `origin`: Must be accepted by `FundOrigin`." + ] + }, + { + "name": "thaw_private", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "maybe_proportion", + "type": 352, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the receipt `index` as", + " well as any fungible counterpart.", + "- `index`: The index of the receipt.", + "- `portion`: If `Some`, then only the given portion of the receipt should be thawed. If", + " `None`, then all of it should be." + ] + }, + { + "name": "thaw_communal", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Reduce or remove an outstanding receipt, placing the according proportion of funds into", + "the account of the owner.", + "", + "- `origin`: Must be Signed and the account must be the owner of the fungible counterpart", + " for receipt `index`.", + "- `index`: The index of the receipt." + ] + }, + { + "name": "communify", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Make a private receipt communal and create fungible counterparts for its owner." + ] + }, + { + "name": "privatize", + "fields": [ + { + "name": "index", + "type": 156, + "typeName": "ReceiptIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make a communal receipt private and burn fungible counterparts from its owner." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 352, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 111 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 111, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 353, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must conform to the configured `CreateOrigin` and have sufficient funds free.", + "", + "`ItemDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `collection`: The identifier of the new collection. This must not be currently in use.", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `collection`: The identifier of the new item. This must not be currently in use.", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions", + "over this item, but may later change and configure the permissions using", + "`transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 354, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(n + m)` where:", + "- `n = witness.items`", + "- `m = witness.item_metadatas`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must be the Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: The item value of the item to be minted.", + "- `beneficiary`: The initial owner of the minted item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "check_owner", + "type": 319, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Destroy a single item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item of the item to be burned.", + "- `check_owner`: If `Some` then the operation will fail with `WrongOwner` unless the", + " item is owned by this value.", + "", + "Emits `Burned` with the actual amount burned.", + "", + "Weight: `O(1)`", + "Modes: `check_owner.is_some()`." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Move an item from the sender account to another.", + "", + "This resets the approved account of the item.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Admin of the `collection`;", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item of the item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Reevaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown of the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "freeze", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be frozen.", + "- `item`: The item of the item to be frozen.", + "", + "Emits `Frozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be thawed.", + "- `item`: The item of the item to be thawed.", + "", + "Emits `Thawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "freeze_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Disallow further unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection to be frozen.", + "", + "Emits `CollectionFrozen`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "thaw_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Re-allow unprivileged transfers for a whole collection.", + "", + "Origin must be Signed and the sender should be the Admin of the `collection`.", + "", + "- `collection`: The collection to be thawed.", + "", + "Emits `CollectionThawed`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be", + "either the owner of the `item` or the admin of the collection.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item of the item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "", + "Important NOTE: The `approved` account gets reset after each transfer.", + "", + "Emits `ApprovedTransfer` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "maybe_check_delegate", + "type": 319, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Cancel the prior approval for the transfer of an item by a delegate.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Admin of the `collection`;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the item of whose approval will be cancelled.", + "- `maybe_check_delegate`: If `Some` will ensure that the given account is the one to", + " which permission of transfer is delegated.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_item_status", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "issuer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "freezer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Alter the attributes of a given item.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the item.", + "- `owner`: The new Owner of this item.", + "- `issuer`: The new Issuer of this item.", + "- `admin`: The new Admin of this item.", + "- `freezer`: The new Freezer of this item.", + "- `free_holding`: Whether a deposit is taken for holding an item of this collection.", + "- `is_frozen`: Whether this collection is frozen except for permissioned/admin", + "instructions.", + "", + "Emits `ItemStatusChanged` with the identity of the item.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 85, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "key", + "type": 85, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `MetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `MetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "- `is_frozen`: Whether the metadata should be frozen against further changes.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Set the maximum amount of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "Note: This function can only succeed once per collection.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum amount of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 236, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 319, + "typeName": "Option>", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the asset `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 354, + "type": { + "path": [ + "pallet_uniques", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "items", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 156, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 355, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create", + "fields": [ + { + "name": "admin", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 356, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Issue a new collection of non-fungible items from a public origin.", + "", + "This new collection has no items initially and its owner is the origin.", + "", + "The origin must be Signed and the sender must have sufficient funds free.", + "", + "`CollectionDeposit` funds of sender are reserved.", + "", + "Parameters:", + "- `admin`: The admin of this collection. The admin is the initial address of each", + "member of the collection's admin team.", + "", + "Emits `Created` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_create", + "fields": [ + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "config", + "type": 356, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Issue a new collection of non-fungible items from a privileged origin.", + "", + "This new collection has no items initially.", + "", + "The origin must conform to `ForceOrigin`.", + "", + "Unlike `create`, no funds are reserved.", + "", + "- `owner`: The owner of this collection of items. The owner has full superuser", + " permissions over this item, but may later change and configure the permissions using", + " `transfer_ownership` and `set_team`.", + "", + "Emits `ForceCreated` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "destroy", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "witness", + "type": 363, + "typeName": "DestroyWitness", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Destroy a collection of fungible items.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "owner of the `collection`.", + "", + "NOTE: The collection must have 0 items to be destroyed.", + "", + "- `collection`: The identifier of the collection to be destroyed.", + "- `witness`: Information on the items minted in the collection. This must be", + "correct.", + "", + "Emits `Destroyed` event when successful.", + "", + "Weight: `O(m + c + a)` where:", + "- `m = witness.item_metadatas`", + "- `c = witness.item_configs`", + "- `a = witness.attributes`" + ] + }, + { + "name": "mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness_data", + "type": 364, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Mint an item of a particular collection.", + "", + "The origin must be Signed and the sender must comply with the `mint_settings` rules.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `witness_data`: When the mint type is `HolderOf(collection_id)`, then the owned", + " item_id from that collection needs to be provided within the witness data object. If", + " the mint price is set, then it should be additionally confirmed in the `witness_data`.", + "", + "Note: the deposit will be taken from the `origin` and not the `owner` of the `item`.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_mint", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "mint_to", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "item_config", + "type": 366, + "typeName": "ItemConfig", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Mint an item of a particular collection from a privileged origin.", + "", + "The origin must conform to `ForceOrigin` or must be `Signed` and the sender must be the", + "Issuer of the `collection`.", + "", + "- `collection`: The collection of the item to be minted.", + "- `item`: An identifier of the new item.", + "- `mint_to`: Account into which the item will be minted.", + "- `item_config`: A config of the new item.", + "", + "Emits `Issued` event when successful.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "burn", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Destroy a single item.", + "", + "The origin must conform to `ForceOrigin` or must be Signed and the signing account must", + "be the owner of the `item`.", + "", + "- `collection`: The collection of the item to be burned.", + "- `item`: The item to be burned.", + "", + "Emits `Burned`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "dest", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Move an item from the sender account to another.", + "", + "Origin must be Signed and the signing account must be either:", + "- the Owner of the `item`;", + "- the approved delegate for the `item` (in this case, the approval is reset).", + "", + "Arguments:", + "- `collection`: The collection of the item to be transferred.", + "- `item`: The item to be transferred.", + "- `dest`: The account to receive ownership of the item.", + "", + "Emits `Transferred`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "redeposit", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "items", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Re-evaluate the deposits on some items.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection of the items to be reevaluated.", + "- `items`: The items of the collection whose deposits will be reevaluated.", + "", + "NOTE: This exists as a best-effort function. Any items which are unknown or", + "in the case that the owner account does not have reservable funds to pay for a", + "deposit increase are ignored. Generally the owner isn't going to call this on items", + "whose existing deposit is less than the refreshed deposit as it would only cost them,", + "so it's of little consequence.", + "", + "It will still return an error in the case that the collection is unknown or the signer", + "is not permitted to call it.", + "", + "Weight: `O(items.len())`" + ] + }, + { + "name": "lock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Disallow further unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become non-transferable.", + "", + "Emits `ItemTransferLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "unlock_item_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Re-allow unprivileged transfer of an item.", + "", + "Origin must be Signed and the sender should be the Freezer of the `collection`.", + "", + "- `collection`: The collection of the item to be changed.", + "- `item`: The item to become transferable.", + "", + "Emits `ItemTransferUnlocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_collection", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "lock_settings", + "type": 357, + "typeName": "CollectionSettings", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Disallows specified settings for the whole collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection to be locked.", + "- `lock_settings`: The settings to be locked.", + "", + "Note: it's possible to only lock(set) the setting, but not to unset it.", + "", + "Emits `CollectionLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "transfer_ownership", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be Signed and the sender should be the Owner of the `collection`.", + "", + "- `collection`: The collection whose owner should be changed.", + "- `owner`: The new Owner of this collection. They must have called", + " `set_accept_ownership` with `collection` in order for this operation to succeed.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_team", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "issuer", + "type": 319, + "typeName": "Option>", + "docs": [] + }, + { + "name": "admin", + "type": 319, + "typeName": "Option>", + "docs": [] + }, + { + "name": "freezer", + "type": 319, + "typeName": "Option>", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Change the Issuer, Admin and Freezer of a collection.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`collection`.", + "", + "Note: by setting the role to `None` only the `ForceOrigin` will be able to change it", + "after to `Some(account)`.", + "", + "- `collection`: The collection whose team should be changed.", + "- `issuer`: The new Issuer of this collection.", + "- `admin`: The new Admin of this collection.", + "- `freezer`: The new Freezer of this collection.", + "", + "Emits `TeamChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_owner", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "owner", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Change the Owner of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `owner`: The new Owner of this collection.", + "", + "Emits `OwnerChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_collection_config", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "config", + "type": 356, + "typeName": "CollectionConfigFor", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Change the config of a collection.", + "", + "Origin must be `ForceOrigin`.", + "", + "- `collection`: The identifier of the collection.", + "- `config`: The new config of this collection.", + "", + "Emits `CollectionConfigChanged`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_transfer", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "maybe_deadline", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Approve an item to be transferred by a delegated third-party account.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "`item`.", + "", + "- `collection`: The collection of the item to be approved for delegated transfer.", + "- `item`: The item to be approved for delegated transfer.", + "- `delegate`: The account to delegate permission to transfer the item.", + "- `maybe_deadline`: Optional deadline for the approval. Specified by providing the", + "\tnumber of blocks after which the approval will expire", + "", + "Emits `TransferApproved` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "cancel_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Cancel one of the transfer approvals for a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approval will be cancelled.", + "- `item`: The item of the collection of whose approval will be cancelled.", + "- `delegate`: The account that is going to loose their approval.", + "", + "Emits `ApprovalCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_all_transfer_approvals", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Cancel all the approvals of a specific item.", + "", + "Origin must be either:", + "- the `Force` origin;", + "- `Signed` with the signer being the Owner of the `item`;", + "", + "Arguments:", + "- `collection`: The collection of the item of whose approvals will be cleared.", + "- `item`: The item of the collection of whose approvals will be cleared.", + "", + "Emits `AllApprovalsCancelled` on success.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "lock_item_properties", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "lock_metadata", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "lock_attributes", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Disallows changing the metadata or attributes of the item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin", + "of the `collection`.", + "", + "- `collection`: The collection if the `item`.", + "- `item`: An item to be locked.", + "- `lock_metadata`: Specifies whether the metadata should be locked.", + "- `lock_attributes`: Specifies whether the attributes in the `CollectionOwner` namespace", + " should be locked.", + "", + "Note: `lock_attributes` affects the attributes in the `CollectionOwner` namespace only.", + "When the metadata or attributes are locked, it won't be possible the unlock them.", + "", + "Emits `ItemPropertiesLocked`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set an attribute for a collection or item.", + "", + "Origin must be Signed and must conform to the namespace ruleset:", + "- `CollectionOwner` namespace could be modified by the `collection` Admin only;", + "- `ItemOwner` namespace could be modified by the `maybe_item` owner only. `maybe_item`", + " should be set in that case;", + "- `Account(AccountId)` namespace could be modified only when the `origin` was given a", + " permission to do so;", + "", + "The funds of `origin` are reserved according to the formula:", + "`AttributeDepositBase + DepositPerByte * (key.len + value.len)` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "force_set_attribute", + "fields": [ + { + "name": "set_as", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "value", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Force-set an attribute for a collection or item.", + "", + "Origin must be `ForceOrigin`.", + "", + "If the attribute already exists and it was set by another account, the deposit", + "will be returned to the previous owner.", + "", + "- `set_as`: An optional owner of the attribute.", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `maybe_item`: The identifier of the item whose metadata to set.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "- `value`: The value to which to set the attribute.", + "", + "Emits `AttributeSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_attribute", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "key", + "type": 115, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Clear an attribute for a collection or item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Owner of the", + "attribute.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `maybe_item`: The identifier of the item whose metadata to clear.", + "- `namespace`: Attribute's namespace.", + "- `key`: The key of the attribute.", + "", + "Emits `AttributeCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "approve_item_attributes", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Approve item's attributes to be changed by a delegated third-party account.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: A collection of the item.", + "- `item`: The item that holds attributes.", + "- `delegate`: The account to delegate permission to change attributes of the item.", + "", + "Emits `ItemAttributesApprovalAdded` on success." + ] + }, + { + "name": "cancel_item_attributes_approval", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "delegate", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "witness", + "type": 367, + "typeName": "CancelAttributesApprovalWitness", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Cancel the previously provided approval to change item's attributes.", + "All the previously set attributes by the `delegate` will be removed.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: Collection that the item is contained within.", + "- `item`: The item that holds attributes.", + "- `delegate`: The previously approved account to remove.", + "", + "Emits `ItemAttributesApprovalRemoved` on success." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Set the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "If the origin is Signed, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the collection whose item's metadata to set.", + "- `item`: The identifier of the item whose metadata to set.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `ItemMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Clear the metadata for an item.", + "", + "Origin must be either `ForceOrigin` or Signed and the sender should be the Admin of the", + "`collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose item's metadata to clear.", + "- `item`: The identifier of the item whose metadata to clear.", + "", + "Emits `ItemMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Set the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "If the origin is `Signed`, then funds of signer are reserved according to the formula:", + "`MetadataDepositBase + DepositPerByte * data.len` taking into", + "account any already reserved funds.", + "", + "- `collection`: The identifier of the item whose metadata to update.", + "- `data`: The general information of this item. Limited in length by `StringLimit`.", + "", + "Emits `CollectionMetadataSet`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "clear_collection_metadata", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + } + ], + "index": 27, + "docs": [ + "Clear the metadata for a collection.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Admin of", + "the `collection`.", + "", + "Any deposit is freed for the collection's owner.", + "", + "- `collection`: The identifier of the collection whose metadata to clear.", + "", + "Emits `CollectionMetadataCleared`.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "set_accept_ownership", + "fields": [ + { + "name": "maybe_collection", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 28, + "docs": [ + "Set (or reset) the acceptance of ownership for a particular account.", + "", + "Origin must be `Signed` and if `maybe_collection` is `Some`, then the signer must have a", + "provider reference.", + "", + "- `maybe_collection`: The identifier of the collection whose ownership the signer is", + " willing to accept, or if `None`, an indication that the signer is willing to accept no", + " ownership transferal.", + "", + "Emits `OwnershipAcceptanceChanged`." + ] + }, + { + "name": "set_collection_max_supply", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "max_supply", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 29, + "docs": [ + "Set the maximum number of items a collection could have.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Owner of", + "the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `max_supply`: The maximum number of items a collection could have.", + "", + "Emits `CollectionMaxSupplySet` event when successful." + ] + }, + { + "name": "update_mint_settings", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "mint_settings", + "type": 359, + "typeName": "MintSettings, BlockNumberFor, T::\nCollectionId>", + "docs": [] + } + ], + "index": 30, + "docs": [ + "Update mint settings.", + "", + "Origin must be either `ForceOrigin` or `Signed` and the sender should be the Issuer", + "of the `collection`.", + "", + "- `collection`: The identifier of the collection to change.", + "- `mint_settings`: The new mint settings.", + "", + "Emits `CollectionMintSettingsUpdated` event when successful." + ] + }, + { + "name": "set_price", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "price", + "type": 236, + "typeName": "Option>", + "docs": [] + }, + { + "name": "whitelisted_buyer", + "type": 319, + "typeName": "Option>", + "docs": [] + } + ], + "index": 31, + "docs": [ + "Set (or reset) the price for an item.", + "", + "Origin must be Signed and must be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item to set the price for.", + "- `price`: The price for the item. Pass `None`, to reset the price.", + "- `buyer`: Restricts the buy operation to a specific account.", + "", + "Emits `ItemPriceSet` on success if the price is not `None`.", + "Emits `ItemPriceRemoved` on success if the price is `None`." + ] + }, + { + "name": "buy_item", + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "bid_price", + "type": 6, + "typeName": "ItemPrice", + "docs": [] + } + ], + "index": 32, + "docs": [ + "Allows to buy an item if it's up for sale.", + "", + "Origin must be Signed and must not be the owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item the sender wants to buy.", + "- `bid_price`: The price the sender is willing to pay.", + "", + "Emits `ItemBought` on success." + ] + }, + { + "name": "pay_tips", + "fields": [ + { + "name": "tips", + "type": 368, + "typeName": "BoundedVec, T::MaxTips>", + "docs": [] + } + ], + "index": 33, + "docs": [ + "Allows to pay the tips.", + "", + "Origin must be Signed.", + "", + "- `tips`: Tips array.", + "", + "Emits `TipSent` on every tip transfer." + ] + }, + { + "name": "create_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "desired_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "maybe_desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "maybe_price", + "type": 119, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "duration", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 34, + "docs": [ + "Register a new atomic swap, declaring an intention to send an `item` in exchange for", + "`desired_item` from origin to target on the current blockchain.", + "The target can execute the swap during the specified `duration` of blocks (if set).", + "Additionally, the price could be set for the desired `item`.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "- `desired_collection`: The collection of the desired item.", + "- `desired_item`: The desired item an owner wants to receive.", + "- `maybe_price`: The price an owner is willing to pay or receive for the desired `item`.", + "- `duration`: A deadline for the swap. Specified by providing the number of blocks", + "\tafter which the swap will expire.", + "", + "Emits `SwapCreated` on success." + ] + }, + { + "name": "cancel_swap", + "fields": [ + { + "name": "offered_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "offered_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + } + ], + "index": 35, + "docs": [ + "Cancel an atomic swap.", + "", + "Origin must be Signed.", + "Origin must be an owner of the `item` if the deadline hasn't expired.", + "", + "- `collection`: The collection of the item.", + "- `item`: The item an owner wants to give.", + "", + "Emits `SwapCancelled` on success." + ] + }, + { + "name": "claim_swap", + "fields": [ + { + "name": "send_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "send_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "receive_collection", + "type": 4, + "typeName": "T::CollectionId", + "docs": [] + }, + { + "name": "receive_item", + "type": 4, + "typeName": "T::ItemId", + "docs": [] + }, + { + "name": "witness_price", + "type": 119, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 36, + "docs": [ + "Claim an atomic swap.", + "This method executes a pending swap, that was created by a counterpart before.", + "", + "Origin must be Signed and must be an owner of the `item`.", + "", + "- `send_collection`: The collection of the item to be sent.", + "- `send_item`: The item to be sent.", + "- `receive_collection`: The collection of the item to be received.", + "- `receive_item`: The item to be received.", + "- `witness_price`: A price that was previously agreed on.", + "", + "Emits `SwapClaimed` on success." + ] + }, + { + "name": "mint_pre_signed", + "fields": [ + { + "name": "mint_data", + "type": 371, + "typeName": "Box>", + "docs": [] + }, + { + "name": "signature", + "type": 315, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 37, + "docs": [ + "Mint an item by providing the pre-signed approval.", + "", + "Origin must be Signed.", + "", + "- `mint_data`: The pre-signed approval that consists of the information about the item,", + " its metadata, attributes, who can mint it (`None` for anyone) and until what block", + " number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Issuer of the collection.", + "", + "Emits `Issued` on success.", + "Emits `AttributeSet` if the attributes were provided.", + "Emits `ItemMetadataSet` if the metadata was not empty." + ] + }, + { + "name": "set_attributes_pre_signed", + "fields": [ + { + "name": "data", + "type": 372, + "typeName": "PreSignedAttributesOf", + "docs": [] + }, + { + "name": "signature", + "type": 315, + "typeName": "T::OffchainSignature", + "docs": [] + }, + { + "name": "signer", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 38, + "docs": [ + "Set attributes for an item by providing the pre-signed approval.", + "", + "Origin must be Signed and must be an owner of the `data.item`.", + "", + "- `data`: The pre-signed approval that consists of the information about the item,", + " attributes to update and until what block number.", + "- `signature`: The signature of the `data` object.", + "- `signer`: The `data` object's signer. Should be an Admin of the collection for the", + " `CollectionOwner` namespace.", + "", + "Emits `AttributeSet` for each provided attribute.", + "Emits `ItemAttributesApprovalAdded` if the approval wasn't set before.", + "Emits `PreSignedAttributesSet` on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 356, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionConfig" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 357, + "typeName": "CollectionSettings", + "docs": [] + }, + { + "name": "max_supply", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_settings", + "type": 359, + "typeName": "MintSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 357, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 358 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "CollectionSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 358, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "TransferableItems", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "UnlockedMaxSupply", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "DepositRequired", + "fields": [], + "index": 16, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 359, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintSettings" + ], + "params": [ + { + "name": "Price", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mint_type", + "type": 360, + "typeName": "MintType", + "docs": [] + }, + { + "name": "price", + "type": 236, + "typeName": "Option", + "docs": [] + }, + { + "name": "start_block", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "end_block", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "default_item_settings", + "type": 361, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 360, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintType" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Public", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "HolderOf", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "CollectionId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 361, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 362 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "ItemSetting", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 362, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemSetting" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Transferable", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "UnlockedMetadata", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "UnlockedAttributes", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 363, + "type": { + "path": [ + "pallet_nfts", + "types", + "DestroyWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "item_metadatas", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 156, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 364, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 365 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 365, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 365, + "type": { + "path": [ + "pallet_nfts", + "types", + "MintWitness" + ], + "params": [ + { + "name": "ItemId", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owned_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "mint_price", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 366, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "settings", + "type": 361, + "typeName": "ItemSettings", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 367, + "type": { + "path": [ + "pallet_nfts", + "types", + "CancelAttributesApprovalWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "account_attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 368, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 369 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 370, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 369, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemTip" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Amount", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "receiver", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Amount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 370, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 369 + } + }, + "docs": [] + } + }, + { + "id": 371, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedMint" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 143, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "only_account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + }, + { + "name": "mint_price", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 372, + "type": { + "path": [ + "pallet_nfts", + "types", + "PreSignedAttributes" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "ItemId", + "docs": [] + }, + { + "name": "attributes", + "type": 143, + "typeName": "Vec<(Vec, Vec)>", + "docs": [] + }, + { + "name": "namespace", + "type": 118, + "typeName": "AttributeNamespace", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 373, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fractionalize", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "AssetBalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Lock the NFT and mint a new fungible asset.", + "", + "The dispatch origin for this call must be Signed.", + "The origin must be the owner of the NFT they are trying to lock.", + "", + "`Deposit` funds of sender are reserved.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the new asset. It must not exist.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the newly created asset.", + "- `fractions`: The total issuance of the newly created asset class.", + "", + "Emits `NftFractionalized` event when successful." + ] + }, + { + "name": "unify", + "fields": [ + { + "name": "nft_collection_id", + "type": 4, + "typeName": "T::NftCollectionId", + "docs": [] + }, + { + "name": "nft_id", + "type": 4, + "typeName": "T::NftId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "AssetIdOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Burn the total issuance of the fungible asset and return (unlock) the locked NFT.", + "", + "The dispatch origin for this call must be Signed.", + "", + "`Deposit` funds will be returned to `asset_creator`.", + "", + "- `nft_collection_id`: The ID used to identify the collection of the NFT.", + "Is used within the context of `pallet_nfts`.", + "- `nft_id`: The ID used to identify the NFT within the given collection.", + "Is used within the context of `pallet_nfts`.", + "- `asset_id`: The ID of the asset being returned and destroyed. Must match", + "the original ID of the created asset, corresponding to the NFT.", + "Is used within the context of `pallet_assets`.", + "- `beneficiary`: The account that will receive the unified NFT.", + "", + "Emits `NftUnified` event when successful." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 374, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "init", + "fields": [], + "index": 0, + "docs": [ + "Start the first payout cycle.", + "", + "- `origin`: A `Signed` origin of an account." + ] + }, + { + "name": "bump", + "fields": [], + "index": 1, + "docs": [ + "Move to next payout cycle, assuming that the present block is now within that cycle.", + "", + "- `origin`: A `Signed` origin of an account." + ] + }, + { + "name": "induct", + "fields": [], + "index": 2, + "docs": [ + "Induct oneself into the payout system." + ] + }, + { + "name": "register", + "fields": [], + "index": 3, + "docs": [ + "Register for a payout.", + "", + "Will only work if we are in the first `RegistrationPeriod` blocks since the cycle", + "started.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`." + ] + }, + { + "name": "payout", + "fields": [], + "index": 4, + "docs": [ + "Request a payout.", + "", + "Will only work if we are after the first `RegistrationPeriod` blocks since the cycle", + "started but by no more than `PayoutPeriod` blocks.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`." + ] + }, + { + "name": "payout_other", + "fields": [ + { + "name": "beneficiary", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Request a payout to a secondary account.", + "", + "Will only work if we are after the first `RegistrationPeriod` blocks since the cycle", + "started but by no more than `PayoutPeriod` blocks.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members`.", + "- `beneficiary`: The account to receive payment." + ] + }, + { + "name": "check_payment", + "fields": [], + "index": 6, + "docs": [ + "Update a payment's status; if it failed, alter the state so the payment can be retried.", + "", + "This must be called within the same cycle as the failed payment. It will fail with", + "`Event::NotCurrent` otherwise.", + "", + "- `origin`: A `Signed` origin of an account which is a member of `Members` who has", + " received a payment this cycle." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 375, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "bump", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Bump the state of a member.", + "", + "This will demote a member whose `last_proof` is now beyond their rank's", + "`demotion_period`.", + "", + "- `origin`: A `Signed` origin of an account.", + "- `who`: A member account whose state is to be updated." + ] + }, + { + "name": "set_params", + "fields": [ + { + "name": "params", + "type": 126, + "typeName": "Box>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Set the parameters.", + "", + "- `origin`: An origin complying with `ParamsOrigin` or root.", + "- `params`: The new parameters for the pallet." + ] + }, + { + "name": "set_active", + "fields": [ + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Set whether a member is active or not.", + "", + "- `origin`: A `Signed` origin of a member's account.", + "- `is_active`: `true` iff the member is active." + ] + }, + { + "name": "approve", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "at_rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Approve a member to continue at their rank.", + "", + "This resets `last_proof` to the current block, thereby delaying any automatic demotion.", + "", + "`who` must already be tracked by this pallet for this to have an effect.", + "", + "- `origin`: An origin which satisfies `ApproveOrigin` or root.", + "- `who`: A member (i.e. of non-zero rank).", + "- `at_rank`: The rank of member." + ] + }, + { + "name": "induct", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Introduce a new and unranked candidate (rank zero).", + "", + "- `origin`: An origin which satisfies `InductOrigin` or root.", + "- `who`: The account ID of the candidate to be inducted and become a member." + ] + }, + { + "name": "promote", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Increment the rank of a ranked and tracked account.", + "", + "- `origin`: An origin which satisfies `PromoteOrigin` with a `Success` result of", + " `to_rank` or more or root.", + "- `who`: The account ID of the member to be promoted to `to_rank`.", + "- `to_rank`: One more than the current rank of `who`." + ] + }, + { + "name": "promote_fast", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "to_rank", + "type": 100, + "typeName": "RankOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Fast promotions can skip ranks and ignore the `min_promotion_period`.", + "", + "This is useful for out-of-band promotions, hence it has its own `FastPromoteOrigin` to", + "be (possibly) more restrictive than `PromoteOrigin`. Note that the member must already", + "be inducted." + ] + }, + { + "name": "offboard", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Stop tracking a prior member who is now not a ranked member of the collective.", + "", + "- `origin`: A `Signed` origin of an account.", + "- `who`: The ID of an account which was tracked in this pallet but which is now not a", + " ranked member of the collective." + ] + }, + { + "name": "submit_evidence", + "fields": [ + { + "name": "wish", + "type": 130, + "typeName": "Wish", + "docs": [] + }, + { + "name": "evidence", + "type": 131, + "typeName": "Evidence", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Provide evidence that a rank is deserved.", + "", + "This is free as long as no evidence for the forthcoming judgement is already submitted.", + "Evidence is cleared after an outcome (either demotion, promotion of approval).", + "", + "- `origin`: A `Signed` origin of an inducted and ranked account.", + "- `wish`: The stated desire of the member.", + "- `evidence`: A dump of evidence to be considered. This should generally be either a", + " Markdown-encoded document or a series of 32-byte hashes which can be found on a", + " decentralised content-based-indexing system such as IPFS." + ] + }, + { + "name": "import", + "fields": [], + "index": 8, + "docs": [ + "Introduce an already-ranked individual of the collective into this pallet.", + "", + "The rank may still be zero. This resets `last_proof` to the current block and", + "`last_promotion` will be set to zero, thereby delaying any automatic demotion but", + "allowing immediate promotion.", + "", + "- `origin`: A signed origin of a ranked, but not tracked, account." + ] + }, + { + "name": "import_member", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Introduce an already-ranked individual of the collective into this pallet.", + "", + "The rank may still be zero. Can be called by anyone on any collective member - including", + "the sender.", + "", + "This resets `last_proof` to the current block and `last_promotion` will be set to zero,", + "thereby delaying any automatic demotion but allowing immediate promotion.", + "", + "- `origin`: A signed origin of a ranked, but not tracked, account.", + "- `who`: The account ID of the collective member to be inducted." + ] + }, + { + "name": "set_partial_params", + "fields": [ + { + "name": "partial_params", + "type": 376, + "typeName": "Box>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set the parameters partially.", + "", + "- `origin`: An origin complying with `ParamsOrigin` or root.", + "- `partial_params`: The new parameters for the pallet.", + "", + "This update config with multiple arguments without duplicating", + "the fields that does not need to update (set to None)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 376, + "type": { + "path": [ + "pallet_core_fellowship", + "ParamsType" + ], + "params": [ + { + "name": "Balance", + "type": 236 + }, + { + "name": "BlockNumber", + "type": 50 + }, + { + "name": "Ranks", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "active_salary", + "type": 377, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "passive_salary", + "type": 377, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "demotion_period", + "type": 379, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "min_promotion_period", + "type": 379, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "offboard_timeout", + "type": 50, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 377, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 236 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 378, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 378, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 236 + } + }, + "docs": [] + } + }, + { + "id": 379, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 50 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 380, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 380, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 50 + } + }, + "docs": [] + } + }, + { + "id": 381, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Index and store data off chain. Minimum data size is 1 bytes, maximum is", + "`MaxTransactionSize`. Data will be removed after `STORAGE_PERIOD` blocks, unless `renew`", + "is called.", + "## Complexity", + "- O(n*log(n)) of data size, as all data is pushed to an in-memory trie." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Renew previously stored data. Parameters are the block number that contains", + "previous `store` or `renew` call and transaction index within that block.", + "Transaction index is emitted in the `Stored` or `Renewed` event.", + "Applies same fees as `store`.", + "## Complexity", + "- O(1)." + ] + }, + { + "name": "check_proof", + "fields": [ + { + "name": "proof", + "type": 382, + "typeName": "TransactionStorageProof", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Check storage proof for block number `block_number() - StoragePeriod`.", + "If such block does not exist the proof is expected to be `None`.", + "## Complexity", + "- Linear w.r.t the number of indexed transactions in the proved block for random", + " probing.", + "There's a DB read for each transaction." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 382, + "type": { + "path": [ + "sp_transaction_storage_proof", + "TransactionStorageProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "chunk", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "proof", + "type": 145, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 383, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "rebag", + "fields": [ + { + "name": "dislocated", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Declare that some `dislocated` account has, through rewards or penalties, sufficiently", + "changed its score that it should properly fall into a different bag than its current", + "one.", + "", + "Anyone can call this function about any potentially dislocated account.", + "", + "Will always update the stored score of `dislocated` to the correct score, based on", + "`ScoreProvider`.", + "", + "If `dislocated` does not exists, it returns an error." + ] + }, + { + "name": "put_in_front_of", + "fields": [ + { + "name": "lighter", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Move the caller's Id directly in front of `lighter`.", + "", + "The dispatch origin for this call must be _Signed_ and can only be called by the Id of", + "the account going in front of `lighter`. Fee is payed by the origin under all", + "circumstances.", + "", + "Only works if:", + "", + "- both nodes are within the same bag,", + "- and `origin` has a greater `Score` than `lighter`." + ] + }, + { + "name": "put_in_front_of_other", + "fields": [ + { + "name": "heavier", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "lighter", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Same as [`Pallet::put_in_front_of`], but it can be called by anyone.", + "", + "Fee is paid by the origin under all circumstances." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 384, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "control_auto_migration", + "fields": [ + { + "name": "maybe_config", + "type": 385, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Control the automatic migration.", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`]." + ] + }, + { + "name": "continue_migrate", + "fields": [ + { + "name": "limits", + "type": 386, + "typeName": "MigrationLimits", + "docs": [] + }, + { + "name": "real_size_upper", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "witness_task", + "type": 387, + "typeName": "MigrationTask", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Continue the migration for the given `limits`.", + "", + "The dispatch origin of this call can be any signed account.", + "", + "This transaction has NO MONETARY INCENTIVES. calling it will not reward anyone. Albeit,", + "Upon successful execution, the transaction fee is returned.", + "", + "The (potentially over-estimated) of the byte length of all the data read must be", + "provided for up-front fee-payment and weighing. In essence, the caller is guaranteeing", + "that executing the current `MigrationTask` with the given `limits` will not exceed", + "`real_size_upper` bytes of read data.", + "", + "The `witness_task` is merely a helper to prevent the caller from being slashed or", + "generally trigger a migration that they do not intend. This parameter is just a message", + "from caller, saying that they believed `witness_task` was the last state of the", + "migration, and they only wish for their transaction to do anything, if this assumption", + "holds. In case `witness_task` does not match, the transaction fails.", + "", + "Based on the documentation of [`MigrationTask::migrate_until_exhaustion`], the", + "recommended way of doing this is to pass a `limit` that only bounds `count`, as the", + "`size` limit can always be overwritten." + ] + }, + { + "name": "migrate_custom_top", + "fields": [ + { + "name": "keys", + "type": 145, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "witness_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Migrate the list of top keys by iterating each of them one by one.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "migrate_custom_child", + "fields": [ + { + "name": "root", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "child_keys", + "type": 145, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "total_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Migrate the list of child keys by iterating each of them one by one.", + "", + "All of the given child keys must be present under one `child_root`.", + "", + "This does not affect the global migration process tracker ([`MigrationProcess`]), and", + "should only be used in case any keys are leftover due to a bug." + ] + }, + { + "name": "set_signed_max_limits", + "fields": [ + { + "name": "limits", + "type": 386, + "typeName": "MigrationLimits", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Set the maximum limit of the signed migration." + ] + }, + { + "name": "force_set_progress", + "fields": [ + { + "name": "progress_top", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Forcefully set the progress the running migration.", + "", + "This is only useful in one case: the next key to migrate is too big to be migrated with", + "a signed account, in a teyrchain context, and we simply want to skip it. A reasonable", + "example of this would be `:code:`, which is both very expensive to migrate, and commonly", + "used, so probably it is already migrated.", + "", + "In case you mess things up, you can also, in principle, use this to reset the migration", + "process." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 385, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 386 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 386, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 386, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationLimits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 387, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "MigrationTask" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "progress_top", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "progress_child", + "type": 388, + "typeName": "ProgressOf", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "top_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "child_items", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 388, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "Progress" + ], + "params": [ + { + "name": "MaxKeyLen", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ToStart", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "LastKey", + "fields": [ + { + "name": null, + "type": 389, + "typeName": "BoundedVec", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Complete", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 389, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 390, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "description", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new child-bounty.", + "", + "The dispatch origin for this call must be the curator of parent", + "bounty and the parent bounty must be in \"active\" state.", + "", + "Child-bounty gets added successfully & fund gets transferred from", + "parent bounty to child-bounty account, if parent bounty has enough", + "funds, else the call fails.", + "", + "Upper bound to maximum number of active child bounties that can be", + "added are managed via runtime trait config", + "[`Config::MaxActiveChildBountyCount`].", + "", + "If the call is success, the status of child-bounty is updated to", + "\"Added\".", + "", + "- `parent_bounty_id`: Index of parent bounty for which child-bounty is being added.", + "- `value`: Value for executing the proposal.", + "- `description`: Text description for the child-bounty." + ] + }, + { + "name": "propose_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "curator", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "fee", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Propose curator for funded child-bounty.", + "", + "The dispatch origin for this call must be curator of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"Added\" state, for processing the call. And", + "state of child-bounty is moved to \"CuratorProposed\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `curator`: Address of child-bounty curator.", + "- `fee`: payment fee to child-bounty curator for execution." + ] + }, + { + "name": "accept_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Accept the curator role for the child-bounty.", + "", + "The dispatch origin for this call must be the curator of this", + "child-bounty.", + "", + "A deposit will be reserved from the curator and refund upon", + "successful payout or cancellation.", + "", + "Fee for curator is deducted from curator fee of parent bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in \"CuratorProposed\" state, for processing the", + "call. And state of child-bounty is moved to \"Active\" on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "unassign_curator", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unassign curator from a child-bounty.", + "", + "The dispatch origin for this call can be either `RejectOrigin`, or", + "the curator of the parent bounty, or any signed origin.", + "", + "For the origin other than T::RejectOrigin and the child-bounty", + "curator, parent bounty must be in active state, for this call to", + "work. We allow child-bounty curator and T::RejectOrigin to execute", + "this call irrespective of the parent bounty state.", + "", + "If this function is called by the `RejectOrigin` or the", + "parent bounty curator, we assume that the child-bounty curator is", + "malicious or inactive. As a result, child-bounty curator deposit is", + "slashed.", + "", + "If the origin is the child-bounty curator, we take this as a sign", + "that they are unable to do their job, and are willingly giving up.", + "We could slash the deposit, but for now we allow them to unreserve", + "their deposit and exit without issue. (We may want to change this if", + "it is abused.)", + "", + "Finally, the origin can be anyone iff the child-bounty curator is", + "\"inactive\". Expiry update due of parent bounty is used to estimate", + "inactive state of child-bounty curator.", + "", + "This allows anyone in the community to call out that a child-bounty", + "curator is not doing their due diligence, and we should pick a new", + "one. In this case the child-bounty curator deposit is slashed.", + "", + "State of child-bounty is moved to Added state on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "award_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "beneficiary", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Award child-bounty to a beneficiary.", + "", + "The beneficiary will be able to claim the funds after a delay.", + "", + "The dispatch origin for this call must be the parent curator or", + "curator of this child-bounty.", + "", + "Parent bounty must be in active state, for this child-bounty call to", + "work.", + "", + "Child-bounty must be in active state, for processing the call. And", + "state of child-bounty is moved to \"PendingPayout\" on successful call", + "completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty.", + "- `beneficiary`: Beneficiary account." + ] + }, + { + "name": "claim_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Claim the payout from an awarded child-bounty after payout delay.", + "", + "The dispatch origin for this call may be any signed origin.", + "", + "Call works independent of parent bounty state, No need for parent", + "bounty to be in active state.", + "", + "The Beneficiary is paid out with agreed bounty value. Curator fee is", + "paid & curator deposit is unreserved.", + "", + "Child-bounty must be in \"PendingPayout\" state, for processing the", + "call. And instance of child-bounty is removed from the state on", + "successful call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + }, + { + "name": "close_child_bounty", + "fields": [ + { + "name": "parent_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "child_bounty_id", + "type": 156, + "typeName": "BountyIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Cancel a proposed or active child-bounty. Child-bounty account funds", + "are transferred to parent bounty account. The child-bounty curator", + "deposit may be unreserved if possible.", + "", + "The dispatch origin for this call must be either parent curator or", + "`T::RejectOrigin`.", + "", + "If the state of child-bounty is `Active`, curator deposit is", + "unreserved.", + "", + "If the state of child-bounty is `PendingPayout`, call fails &", + "returns `PendingPayout` error.", + "", + "For the origin other than T::RejectOrigin, parent bounty must be in", + "active state, for this child-bounty call to work. For origin", + "T::RejectOrigin execution is forced.", + "", + "Instance of child-bounty is removed from the state on successful", + "call completion.", + "", + "- `parent_bounty_id`: Index of parent bounty.", + "- `child_bounty_id`: Index of child bounty." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 391, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 148, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 392, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 249, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 392, + "type": { + "path": [ + "frame_support", + "traits", + "schedule", + "DispatchTime" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "At", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "After", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 393, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "store", + "fields": [ + { + "name": "remark", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Index and store data off chain." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 394, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "fill_block", + "fields": [ + { + "name": "ratio", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A dispatch that will fill the block weight up to the given ratio." + ] + }, + { + "name": "trigger_defensive", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 395, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "vote", + "fields": [ + { + "name": "poll_index", + "type": 156, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 396, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Vote in a poll. If `vote.is_aye()`, the vote is to enact the proposal;", + "otherwise it is a vote to keep the status quo.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `poll_index`: The index of the poll to vote for.", + "- `vote`: The vote configuration.", + "", + "Weight: `O(R)` where R is the number of polls the voter has voted on." + ] + }, + { + "name": "delegate", + "fields": [ + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "to", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "conviction", + "type": 398, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Delegate the voting power (with some given conviction) of the sending account for a", + "particular class of polls.", + "", + "The balance delegated is locked for as long as it's delegated, and thereafter for the", + "time appropriate for the conviction's lock period.", + "", + "The dispatch origin of this call must be _Signed_, and the signing account must either:", + " - be delegating already; or", + " - have no voting activity (if there is, then it will need to be removed through", + " `remove_vote`).", + "", + "- `to`: The account whose voting the `target` account's voting power will follow.", + "- `class`: The class of polls to delegate. To delegate multiple classes, multiple calls", + " to this function are required.", + "- `conviction`: The conviction that will be attached to the delegated votes. When the", + " account is undelegated, the funds will be locked for the corresponding period.", + "- `balance`: The amount of the account's balance to be used in delegating. This must not", + " be more than the account's current balance.", + "", + "Emits `Delegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "undelegate", + "fields": [ + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Undelegate the voting power of the sending account for a particular class of polls.", + "", + "Tokens may be unlocked following once an amount of time consistent with the lock period", + "of the conviction with which the delegation was issued has passed.", + "", + "The dispatch origin of this call must be _Signed_ and the signing account must be", + "currently delegating.", + "", + "- `class`: The class of polls to remove the delegation from.", + "", + "Emits `Undelegated`.", + "", + "Weight: `O(R)` where R is the number of polls the voter delegating to has", + " voted on. Weight is initially charged as if maximum votes, but is refunded later." + ] + }, + { + "name": "unlock", + "fields": [ + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the lock caused by prior voting/delegating which has expired within a particular", + "class.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `class`: The class of polls to unlock.", + "- `target`: The account to remove the lock on.", + "", + "Weight: `O(R)` with R number of vote of target." + ] + }, + { + "name": "remove_vote", + "fields": [ + { + "name": "class", + "type": 132, + "typeName": "Option>", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Remove a vote for a poll.", + "", + "If:", + "- the poll was cancelled, or", + "- the poll is ongoing, or", + "- the poll has ended such that", + " - the vote of the account was in opposition to the result; or", + " - there was no conviction to the account's vote; or", + " - the account made a split vote", + "...then the vote is removed cleanly and a following call to `unlock` may result in more", + "funds being available.", + "", + "If, however, the poll has ended and:", + "- it finished corresponding to the vote of the account, and", + "- the account made a standard vote with conviction, and", + "- the lock period of the conviction is not over", + "...then the lock will be aggregated into the overall account's lock, which may involve", + "*overlocking* (where the two locks are combined into a single lock that is the maximum", + "of both the amount locked and the time is it locked for).", + "", + "The dispatch origin of this call must be _Signed_, and the signer must have a vote", + "registered for poll `index`.", + "", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: Optional parameter, if given it indicates the class of the poll. For polls", + " which have finished or are cancelled, this must be `Some`.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + }, + { + "name": "remove_other_vote", + "fields": [ + { + "name": "target", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove a vote for a poll.", + "", + "If the `target` is equal to the signer, then this function is exactly equivalent to", + "`remove_vote`. If not equal to the signer, then the vote must have expired,", + "either because the poll was cancelled, because the voter lost the poll or", + "because the conviction period is over.", + "", + "The dispatch origin of this call must be _Signed_.", + "", + "- `target`: The account of the vote to be removed; this account must have voted for poll", + " `index`.", + "- `index`: The index of poll of the vote to be removed.", + "- `class`: The class of the poll.", + "", + "Weight: `O(R + log R)` where R is the number of polls that `target` has voted on.", + " Weight is calculated for the maximum number of vote." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 396, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "AccountVote" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Standard", + "fields": [ + { + "name": "vote", + "type": 397, + "typeName": "Vote", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Split", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SplitAbstain", + "fields": [ + { + "name": "aye", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nay", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "abstain", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 397, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 398, + "type": { + "path": [ + "pallet_conviction_voting", + "conviction", + "Conviction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Locked1x", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Locked2x", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Locked3x", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked4x", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Locked5x", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "Locked6x", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 399, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "whitelist_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "remove_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "call_encoded_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "call_weight_witness", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "dispatch_whitelisted_call_with_preimage", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 400, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_members", + "fields": [ + { + "name": "new_members", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "prime", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "old_count", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the collective's membership.", + "", + "- `new_members`: The new member list. Be nice to the chain and provide it sorted.", + "- `prime`: The prime member whose vote sets the default.", + "- `old_count`: The upper bound for the previous number of members in storage. Used for", + " weight estimation.", + "", + "The dispatch of this call must be `SetMembersOrigin`.", + "", + "NOTE: Does not enforce the expected `MaxMembers` limit on the amount of members, but", + " the weight estimations rely on it to estimate dispatchable weight.", + "", + "# WARNING:", + "", + "The `pallet-collective` can also be managed by logic outside of the pallet through the", + "implementation of the trait [`ChangeMembers`].", + "Any call to `set_members` must be careful that the member set doesn't get out of sync", + "with other logic managing the member set.", + "", + "## Complexity:", + "- `O(MP + N)` where:", + " - `M` old-members-count (code- and governance-bounded)", + " - `N` new-members-count (code- and governance-bounded)", + " - `P` proposals-count (code-bounded)" + ] + }, + { + "name": "execute", + "fields": [ + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Dispatch a proposal from a member using the `Member` origin.", + "", + "Origin must be a member of the collective.", + "", + "## Complexity:", + "- `O(B + M + P)` where:", + "- `B` is `proposal` size in bytes (length-fee-bounded)", + "- `M` members-count (code-bounded)", + "- `P` complexity of dispatching `proposal`" + ] + }, + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 156, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Add a new proposal to either be voted on or executed directly.", + "", + "Requires the sender to be member.", + "", + "`threshold` determines whether `proposal` is executed directly (`threshold < 2`)", + "or put up for voting.", + "", + "## Complexity", + "- `O(B + M + P1)` or `O(B + M + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - branching is influenced by `threshold` where:", + " - `P1` is proposal execution complexity (`threshold < 2`)", + " - `P2` is proposals-count (code-bounded) (`threshold >= 2`)" + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Requires the sender to be a member.", + "", + "Transaction fees will be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "## Complexity", + "- `O(M)` where `M` is members-count (code- and governance-bounded)" + ] + }, + { + "name": "disapprove_proposal", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Disapprove a proposal, close, and remove it from the system, regardless of its current", + "state.", + "", + "Must be called by the Root origin.", + "", + "Parameters:", + "* `proposal_hash`: The hash of the proposal that should be disapproved.", + "", + "## Complexity", + "O(P) where P is the number of max proposals" + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Close a vote that is either approved, disapproved or whose voting period has ended.", + "", + "May be called by any signed account in order to finish voting and close the proposal.", + "", + "If called before the end of the voting period it will only close the vote if it is", + "has enough votes to be approved or disapproved.", + "", + "If called after the end of the voting period abstentions are counted as rejections", + "unless there is a prime member set and the prime member cast an approval.", + "", + "If the close operation completes successfully with disapproval, the transaction fee will", + "be waived. Otherwise execution of the approved operation will be charged to the caller.", + "", + "+ `proposal_weight_bound`: The maximum amount of weight consumed by executing the closed", + "proposal.", + "+ `length_bound`: The upper bound for the length of the proposal in storage. Checked via", + "`storage::read` so it is `size_of::() == 4` larger than the pure length.", + "", + "## Complexity", + "- `O(B + M + P1 + P2)` where:", + " - `B` is `proposal` size in bytes (length-fee-bounded)", + " - `M` is members-count (code- and governance-bounded)", + " - `P1` is the complexity of `proposal` preimage.", + " - `P2` is proposal-count (code-bounded)" + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Disapprove the proposal and burn the cost held for storing this proposal.", + "", + "Parameters:", + "- `origin`: must be the `KillOrigin`.", + "- `proposal_hash`: The hash of the proposal that should be killed.", + "", + "Emits `Killed` and `ProposalCostBurned` if any cost was held for a given proposal." + ] + }, + { + "name": "release_proposal_cost", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Release the cost held for storing a proposal once the given proposal is completed.", + "", + "If there is no associated cost for the given proposal, this call will have no effect.", + "", + "Parameters:", + "- `origin`: must be `Signed` or `Root`.", + "- `proposal_hash`: The hash of the proposal.", + "", + "Emits `ProposalCostReleased` if any cost held for a given proposal." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 401, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "propose", + "fields": [ + { + "name": "threshold", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "proposal", + "type": 141, + "typeName": "Box<>::Proposal>", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Add a new proposal to be voted on.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "proposal", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "init_members", + "fields": [ + { + "name": "fellows", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allies", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Initialize the Alliance, onboard fellows and allies.", + "", + "The Alliance must be empty, and the call must provide some founding members.", + "", + "Must be called by the Root origin." + ] + }, + { + "name": "disband", + "fields": [ + { + "name": "witness", + "type": 402, + "typeName": "DisbandWitness", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Disband the Alliance, remove all active members and unreserve deposits.", + "", + "Witness data must be set." + ] + }, + { + "name": "set_rule", + "fields": [ + { + "name": "rule", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Set a new IPFS CID to the alliance rule." + ] + }, + { + "name": "announce", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Make an announcement of a new IPFS CID about alliance issues." + ] + }, + { + "name": "remove_announcement", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Remove an announcement." + ] + }, + { + "name": "join_alliance", + "fields": [], + "index": 8, + "docs": [ + "Submit oneself for candidacy. A fixed deposit is reserved." + ] + }, + { + "name": "nominate_ally", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "A Fellow can nominate someone to join the alliance as an Ally. There is no deposit", + "required from the nominator or nominee." + ] + }, + { + "name": "elevate_ally", + "fields": [ + { + "name": "ally", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Elevate an Ally to Fellow." + ] + }, + { + "name": "give_retirement_notice", + "fields": [], + "index": 11, + "docs": [ + "As a member, give a retirement notice and start a retirement period required to pass in", + "order to retire." + ] + }, + { + "name": "retire", + "fields": [], + "index": 12, + "docs": [ + "As a member, retire from the Alliance and unreserve the deposit.", + "", + "This can only be done once you have called `give_retirement_notice` and the", + "`RetirementPeriod` has passed." + ] + }, + { + "name": "kick_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Kick a member from the Alliance and slash its deposit." + ] + }, + { + "name": "add_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Add accounts or websites to the list of unscrupulous items." + ] + }, + { + "name": "remove_unscrupulous_items", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Deem some items no longer unscrupulous." + ] + }, + { + "name": "close", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "index", + "type": 156, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_weight_bound", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "length_bound", + "type": 156, + "typeName": "u32", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Close a vote that is either approved, disapproved, or whose voting period has ended.", + "", + "Must be called by a Fellow." + ] + }, + { + "name": "abdicate_fellow_status", + "fields": [], + "index": 17, + "docs": [ + "Abdicate one's position as a voting member and just be an Ally. May be used by Fellows", + "who do not want to leave the Alliance but do not have the capacity to participate", + "operationally for some time." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 402, + "type": { + "path": [ + "pallet_alliance", + "types", + "DisbandWitness" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "fellow_members", + "type": 156, + "typeName": "u32", + "docs": [] + }, + { + "name": "ally_members", + "type": 156, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 403, + "type": { + "path": [ + "pallet_alliance", + "types", + "Cid" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "version", + "type": 404, + "typeName": "Version", + "docs": [] + }, + { + "name": "codec", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "hash", + "type": 405, + "typeName": "Multihash", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 404, + "type": { + "path": [ + "pallet_alliance", + "types", + "Version" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 405, + "type": { + "path": [ + "pallet_alliance", + "types", + "Multihash" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "code", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "digest", + "type": 406, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 406, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 407, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 408 + } + }, + "docs": [] + } + }, + { + "id": 408, + "type": { + "path": [ + "pallet_alliance", + "UnscrupulousItem" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Url", + "type": 409 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AccountId", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Website", + "fields": [ + { + "name": null, + "type": 409, + "typeName": "Url", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 409, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 410, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "join", + "fields": [ + { + "name": "amount", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stake funds with a pool. The amount to bond is delegated (or transferred based on", + "[`adapter::StakeStrategyType`]) from the member to the pool account and immediately", + "increases the pool's bond.", + "", + "The method of transferring the amount to the pool account is determined by", + "[`adapter::StakeStrategyType`]. If the pool is configured to use", + "[`adapter::StakeStrategyType::Delegate`], the funds remain in the account of", + "the `origin`, while the pool gains the right to use these funds for staking.", + "", + "# Note", + "", + "* An account can only be a member of a single pool.", + "* An account cannot join the same pool multiple times.", + "* This call will *not* dust the member account, so the member must have at least", + " `existential deposit + amount` in their account.", + "* Only a pool with [`PoolState::Open`] can be joined" + ] + }, + { + "name": "bond_extra", + "fields": [ + { + "name": "extra", + "type": 411, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Bond `extra` more funds from `origin` into the pool to which they already belong.", + "", + "Additional funds can come from either the free balance of the account, of from the", + "accumulated rewards, see [`BondExtra`].", + "", + "Bonding extra funds implies an automatic payout of all pending rewards as well.", + "See `bond_extra_other` to bond pending rewards of `other` members." + ] + }, + { + "name": "claim_payout", + "fields": [], + "index": 2, + "docs": [ + "A bonded member can use this to claim their payout based on the rewards that the pool", + "has accumulated since their last claimed payout (OR since joining if this is their first", + "time claiming rewards). The payout will be transferred to the member's account.", + "", + "The member will earn rewards pro rata based on the members stake vs the sum of the", + "members in the pools stake. Rewards do not \"expire\".", + "", + "See `claim_payout_other` to claim rewards on behalf of some `other` pool member." + ] + }, + { + "name": "unbond", + "fields": [ + { + "name": "member_account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "unbonding_points", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unbond up to `unbonding_points` of the `member_account`'s funds from the pool. It", + "implicitly collects the rewards one last time, since not doing so would mean some", + "rewards would be forfeited.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch.", + "", + "* The pool is blocked and the caller is either the root or bouncer. This is refereed to", + " as a kick.", + "* The pool is destroying and the member is not the depositor.", + "* The pool is destroying, the member is the depositor and no other members are in the", + " pool.", + "", + "## Conditions for permissioned dispatch (i.e. the caller is also the", + "`member_account`):", + "", + "* The caller is not the depositor.", + "* The caller is the depositor, the pool is destroying and no other members are in the", + " pool.", + "", + "# Note", + "", + "If there are too many unlocking chunks to unbond with the pool account,", + "[`Call::pool_withdraw_unbonded`] can be called to try and minimize unlocking chunks.", + "The [`StakingInterface::unbond`] will implicitly call [`Call::pool_withdraw_unbonded`]", + "to try to free chunks if necessary (ie. if unbound was called and no unlocking chunks", + "are available). However, it may not be possible to release the current unlocking chunks,", + "in which case, the result of this call will likely be the `NoMoreChunks` error from the", + "staking system." + ] + }, + { + "name": "pool_withdraw_unbonded", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Call `withdraw_unbonded` for the pools account. This call can be made by any account.", + "", + "This is useful if there are too many unlocking chunks to call `unbond`, and some", + "can be cleared by withdrawing. In the case there are too many unlocking chunks, the user", + "would probably see an error like `NoMoreChunks` emitted from the staking system when", + "they attempt to unbond." + ] + }, + { + "name": "withdraw_unbonded", + "fields": [ + { + "name": "member_account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "num_slashing_spans", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Withdraw unbonded funds from `member_account`. If no bonded funds can be unbonded, an", + "error is returned.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch", + "", + "* The pool is in destroy mode and the target is not the depositor.", + "* The target is the depositor and they are the only member in the sub pools.", + "* The pool is blocked and the caller is either the root or bouncer.", + "", + "# Conditions for permissioned dispatch", + "", + "* The caller is the target and they are not the depositor.", + "", + "# Note", + "", + "- If the target is the depositor, the pool will be destroyed.", + "- If the pool has any pending slash, we also try to slash the member before letting them", + "withdraw. This calculation adds some weight overhead and is only defensive. In reality,", + "pool slashes must have been already applied via permissionless [`Call::apply_slash`]." + ] + }, + { + "name": "create", + "fields": [ + { + "name": "amount", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Create a new delegation pool.", + "", + "# Arguments", + "", + "* `amount` - The amount of funds to delegate to the pool. This also acts of a sort of", + " deposit since the pools creator cannot fully unbond funds until the pool is being", + " destroyed.", + "* `index` - A disambiguation index for creating the account. Likely only useful when", + " creating multiple pools in the same extrinsic.", + "* `root` - The account to set as [`PoolRoles::root`].", + "* `nominator` - The account to set as the [`PoolRoles::nominator`].", + "* `bouncer` - The account to set as the [`PoolRoles::bouncer`].", + "", + "# Note", + "", + "In addition to `amount`, the caller will transfer the existential deposit; so the caller", + "needs at have at least `amount + existential_deposit` transferable." + ] + }, + { + "name": "create_with_pool_id", + "fields": [ + { + "name": "amount", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "root", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "nominator", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "bouncer", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Create a new delegation pool with a previously used pool id", + "", + "# Arguments", + "", + "same as `create` with the inclusion of", + "* `pool_id` - `A valid PoolId." + ] + }, + { + "name": "nominate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "validators", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Nominate on behalf of the pool.", + "", + "The dispatch origin of this call must be signed by the pool nominator or the pool", + "root role.", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "# Note", + "", + "In addition to a `root` or `nominator` role of `origin`, the pool's depositor needs to", + "have at least `depositor_min_bond` in the pool to start nominating." + ] + }, + { + "name": "set_state", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "state", + "type": 412, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Set a new state for the pool.", + "", + "If a pool is already in the `Destroying` state, then under no condition can its state", + "change again.", + "", + "The dispatch origin of this call must be either:", + "", + "1. signed by the bouncer, or the root role of the pool,", + "2. if the pool conditions to be open are NOT met (as described by `ok_to_be_open`), and", + " then the state of the pool can be permissionlessly changed to `Destroying`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "metadata", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Set a new metadata for the pool.", + "", + "The dispatch origin of this call must be signed by the bouncer, or the root role of the", + "pool." + ] + }, + { + "name": "set_configs", + "fields": [ + { + "name": "min_join_bond", + "type": 413, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 413, + "typeName": "ConfigOp>", + "docs": [] + }, + { + "name": "max_pools", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 414, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 415, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Update configurations for the nomination pools. The origin for this call must be", + "[`Config::AdminOrigin`].", + "", + "# Arguments", + "", + "* `min_join_bond` - Set [`MinJoinBond`].", + "* `min_create_bond` - Set [`MinCreateBond`].", + "* `max_pools` - Set [`MaxPools`].", + "* `max_members` - Set [`MaxPoolMembers`].", + "* `max_members_per_pool` - Set [`MaxPoolMembersPerPool`].", + "* `global_max_commission` - Set [`GlobalMaxCommission`]." + ] + }, + { + "name": "update_roles", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_root", + "type": 416, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_nominator", + "type": 416, + "typeName": "ConfigOp", + "docs": [] + }, + { + "name": "new_bouncer", + "type": 416, + "typeName": "ConfigOp", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Update the roles of the pool.", + "", + "The root is the only entity that can change any of the roles, including itself,", + "excluding the depositor, who can never change.", + "", + "It emits an event, notifying UIs of the role change. This event is quite relevant to", + "most pool members and they should be informed of changes to pool roles." + ] + }, + { + "name": "chill", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Chill on behalf of the pool.", + "", + "The dispatch origin of this call can be signed by the pool nominator or the pool", + "root role, same as [`Pallet::nominate`].", + "", + "This directly forwards the call to an implementation of `StakingInterface` (e.g.,", + "`pallet-staking`) through [`Config::StakeAdapter`], on behalf of the bonded pool.", + "", + "Under certain conditions, this call can be dispatched permissionlessly (i.e. by any", + "account).", + "", + "# Conditions for a permissionless dispatch:", + "* When pool depositor has less than `MinNominatorBond` staked, otherwise pool members", + " are unable to unbond.", + "", + "# Conditions for permissioned dispatch:", + "* The caller is the pool's nominator or root." + ] + }, + { + "name": "bond_extra_other", + "fields": [ + { + "name": "member", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "extra", + "type": 411, + "typeName": "BondExtra>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "`origin` bonds funds from `extra` for some pool member `member` into their respective", + "pools.", + "", + "`origin` can bond extra funds from free balance or pending rewards when `origin ==", + "other`.", + "", + "In the case of `origin != other`, `origin` can only bond extra pending rewards of", + "`other` members assuming set_claim_permission for the given member is", + "`PermissionlessCompound` or `PermissionlessAll`." + ] + }, + { + "name": "set_claim_permission", + "fields": [ + { + "name": "permission", + "type": 417, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Allows a pool member to set a claim permission to allow or disallow permissionless", + "bonding and withdrawing.", + "", + "# Arguments", + "", + "* `origin` - Member of a pool.", + "* `permission` - The permission to be applied." + ] + }, + { + "name": "claim_payout_other", + "fields": [ + { + "name": "other", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 16, + "docs": [ + "`origin` can claim payouts on some pool member `other`'s behalf.", + "", + "Pool member `other` must have a `PermissionlessWithdraw` or `PermissionlessAll` claim", + "permission for this call to be successful." + ] + }, + { + "name": "set_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_commission", + "type": 418, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Set the commission of a pool.", + "Both a commission percentage and a commission payee must be provided in the `current`", + "tuple. Where a `current` of `None` is provided, any current commission will be removed.", + "", + "- If a `None` is supplied to `new_commission`, existing commission will be removed." + ] + }, + { + "name": "set_commission_max", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Set the maximum commission of a pool.", + "", + "- Initial max can be set to any `Perbill`, and only smaller values thereafter.", + "- Current commission will be lowered in the event it is higher than a new max", + " commission." + ] + }, + { + "name": "set_commission_change_rate", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 420, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Set the commission change rate for a pool.", + "", + "Initial change rate is not bounded, whereas subsequent updates can only be more", + "restrictive than the current." + ] + }, + { + "name": "claim_commission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "Claim pending commission.", + "", + "The `root` role of the pool is _always_ allowed to claim the pool's commission.", + "", + "If the pool has set `CommissionClaimPermission::Permissionless`, then any account can", + "trigger the process of claiming the pool's commission.", + "", + "If the pool has set its `CommissionClaimPermission` to `Account(acc)`, then only", + "accounts", + "* `acc`, and", + "* the pool's root account", + "", + "may call this extrinsic on behalf of the pool.", + "", + "Pending commissions are paid out and added to the total claimed commission.", + "The total pending commission is reset to zero." + ] + }, + { + "name": "adjust_pool_deposit", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Top up the deficit or withdraw the excess ED from the pool.", + "", + "When a pool is created, the pool depositor transfers ED to the reward account of the", + "pool. ED is subject to change and over time, the deposit in the reward account may be", + "insufficient to cover the ED deficit of the pool or vice-versa where there is excess", + "deposit to the pool. This call allows anyone to adjust the ED deposit of the", + "pool by either topping up the deficit or claiming the excess." + ] + }, + { + "name": "set_commission_claim_permission", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 421, + "typeName": "Option>", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Set or remove a pool's commission claim permission.", + "", + "Determines who can claim the pool's pending commission. Only the `Root` role of the pool", + "is able to configure commission claim permissions." + ] + }, + { + "name": "apply_slash", + "fields": [ + { + "name": "member_account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Apply a pending slash on a member.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "The pending slash amount of the member must be equal or more than `ExistentialDeposit`.", + "This call can be dispatched permissionlessly (i.e. by any account). If the execution", + "is successful, fee is refunded and caller may be rewarded with a part of the slash", + "based on the [`crate::pallet::Config::StakeAdapter`] configuration." + ] + }, + { + "name": "migrate_delegation", + "fields": [ + { + "name": "member_account", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Migrates delegated funds from the pool account to the `member_account`.", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This is a permission-less call and refunds any fee if claim is successful.", + "", + "If the pool has migrated to delegation based staking, the staked tokens of pool members", + "can be moved and held in their own account. See [`adapter::DelegateStake`]" + ] + }, + { + "name": "migrate_pool_to_delegate_stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 25, + "docs": [ + "Migrate pool from [`adapter::StakeStrategyType::Transfer`] to", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "Fails unless [`crate::pallet::Config::StakeAdapter`] is of strategy type:", + "[`adapter::StakeStrategyType::Delegate`].", + "", + "This call can be dispatched permissionlessly, and refunds any fee if successful.", + "", + "If the pool has already migrated to delegation based staking, this call will fail." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 411, + "type": { + "path": [ + "pallet_nomination_pools", + "BondExtra" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FreeBalance", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Rewards", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 412, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolState" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Open", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 413, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 414, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 415, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 49, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 416, + "type": { + "path": [ + "pallet_nomination_pools", + "ConfigOp" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Noop", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Set", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Remove", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 417, + "type": { + "path": [ + "pallet_nomination_pools", + "ClaimPermission" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Permissioned", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PermissionlessCompound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "PermissionlessWithdraw", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PermissionlessAll", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 418, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 419 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 419, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 419, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 49, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 420, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionChangeRate" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "max_increase", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "min_delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 421, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 422 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 422, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 422, + "type": { + "path": [ + "pallet_nomination_pools", + "CommissionClaimPermission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Permissionless", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Account", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 423, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "submit", + "fields": [ + { + "name": "proposal_origin", + "type": 148, + "typeName": "Box>", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [] + }, + { + "name": "enactment_moment", + "type": 392, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Propose a referendum on a privileged action.", + "", + "- `origin`: must be `SubmitOrigin` and the account must have `SubmissionDeposit` funds", + " available.", + "- `proposal_origin`: The origin from which the proposal should be executed.", + "- `proposal`: The proposal.", + "- `enactment_moment`: The moment that the proposal should be enacted.", + "", + "Emits `Submitted`." + ] + }, + { + "name": "place_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Post the Decision Deposit for a referendum.", + "", + "- `origin`: must be `Signed` and the account must have funds available for the", + " referendum's track's Decision Deposit.", + "- `index`: The index of the submitted referendum whose Decision Deposit is yet to be", + " posted.", + "", + "Emits `DecisionDepositPlaced`." + ] + }, + { + "name": "refund_decision_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Refund the Decision Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Decision Deposit has not yet been", + " refunded.", + "", + "Emits `DecisionDepositRefunded`." + ] + }, + { + "name": "cancel", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Cancel an ongoing referendum.", + "", + "- `origin`: must be the `CancelOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Cancelled`." + ] + }, + { + "name": "kill", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Cancel an ongoing referendum and slash the deposits.", + "", + "- `origin`: must be the `KillOrigin`.", + "- `index`: The index of the referendum to be cancelled.", + "", + "Emits `Killed` and `DepositSlashed`." + ] + }, + { + "name": "nudge_referendum", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Advance a referendum onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `index`: the referendum to be advanced." + ] + }, + { + "name": "one_fewer_deciding", + "fields": [ + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Advance a track onto its next logical state. Only used internally.", + "", + "- `origin`: must be `Root`.", + "- `track`: the track to be advanced.", + "", + "Action item for when there is now one fewer referendum in the deciding phase and the", + "`DecidingCount` is not yet updated. This means that we should either:", + "- begin deciding another referendum (and leave `DecidingCount` alone); or", + "- decrement `DecidingCount`." + ] + }, + { + "name": "refund_submission_deposit", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Refund the Submission Deposit for a closed referendum back to the depositor.", + "", + "- `origin`: must be `Signed` or `Root`.", + "- `index`: The index of a closed referendum whose Submission Deposit has not yet been", + " refunded.", + "", + "Emits `SubmissionDepositRefunded`." + ] + }, + { + "name": "set_metadata", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [] + }, + { + "name": "maybe_hash", + "type": 249, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Set or clear metadata of a referendum.", + "", + "Parameters:", + "- `origin`: Must be `Signed` by a creator of a referendum or by anyone to clear a", + " metadata of a finished referendum.", + "- `index`: The index of a referendum to set or clear metadata for.", + "- `maybe_hash`: The hash of an on-chain stored preimage. `None` to clear a metadata." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 424, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "add_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Introduce a new member.", + "", + "- `origin`: Must be the `AddOrigin`.", + "- `who`: Account of non-member which will become a member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "promote_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Increment the rank of an existing member by one.", + "", + "- `origin`: Must be the `PromoteOrigin`.", + "- `who`: Account of existing member.", + "", + "Weight: `O(1)`" + ] + }, + { + "name": "demote_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Decrement the rank of an existing member by one. If the member is already at rank zero,", + "then they are removed entirely.", + "", + "- `origin`: Must be the `DemoteOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "", + "Weight: `O(1)`, less if the member's index is highest in its rank." + ] + }, + { + "name": "remove_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "min_rank", + "type": 100, + "typeName": "Rank", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Remove the member entirely.", + "", + "- `origin`: Must be the `RemoveOrigin`.", + "- `who`: Account of existing member of rank greater than zero.", + "- `min_rank`: The rank of the member or greater.", + "", + "Weight: `O(min_rank)`." + ] + }, + { + "name": "vote", + "fields": [ + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "aye", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Add an aye or nay vote for the sender to the given proposal.", + "", + "- `origin`: Must be `Signed` by a member account.", + "- `poll`: Index of a poll which is ongoing.", + "- `aye`: `true` if the vote is to approve the proposal, `false` otherwise.", + "", + "Transaction fees are be waived if the member is voting on any particular proposal", + "for the first time and the call is successful. Subsequent vote changes will charge a", + "fee.", + "", + "Weight: `O(1)`, less if there was no previous vote on the poll by the member." + ] + }, + { + "name": "cleanup_poll", + "fields": [ + { + "name": "poll_index", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "max", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove votes from the given poll. It must have ended.", + "", + "- `origin`: Must be `Signed` by any account.", + "- `poll_index`: Index of a poll which is completed and for which votes continue to", + " exist.", + "- `max`: Maximum number of vote items from remove in this call.", + "", + "Transaction fees are waived if the operation is successful.", + "", + "Weight `O(max)` (less if there are fewer items to remove than `max`)." + ] + }, + { + "name": "exchange_member", + "fields": [ + { + "name": "who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + }, + { + "name": "new_who", + "type": 165, + "typeName": "AccountIdLookupOf", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Exchanges a member with a new account and the same existing rank.", + "", + "- `origin`: Must be the `ExchangeOrigin`.", + "- `who`: Account of existing member of rank greater than zero to be exchanged.", + "- `new_who`: New Account of existing member of rank greater than zero to exchanged to." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 425, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Creates an empty liquidity pool and an associated new `lp_token` asset", + "(the id of which is returned in the `Event::PoolCreated` event).", + "", + "Once a pool is created, someone may [`Pallet::add_liquidity`] to it." + ] + }, + { + "name": "add_liquidity", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "amount1_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_desired", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Provide liquidity into the pool of `asset1` and `asset2`.", + "NOTE: an optimal amount of asset1 and asset2 will be calculated and", + "might be different than the provided `amount1_desired`/`amount2_desired`", + "thus you should provide the min amount you're happy to provide.", + "Params `amount1_min`/`amount2_min` represent that.", + "`mint_to` will be sent the liquidity tokens that represent this share of the pool.", + "", + "NOTE: when encountering an incorrect exchange rate and non-withdrawable pool liquidity,", + "batch an atomic call with [`Pallet::add_liquidity`] and", + "[`Pallet::swap_exact_tokens_for_tokens`] or [`Pallet::swap_tokens_for_exact_tokens`]", + "calls to render the liquidity withdrawable and rectify the exchange rate.", + "", + "Once liquidity is added, someone may successfully call", + "[`Pallet::swap_exact_tokens_for_tokens`]." + ] + }, + { + "name": "remove_liquidity", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "lp_token_burn", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount1_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount2_min_receive", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Allows you to remove liquidity by providing the `lp_token_burn` tokens that will be", + "burned in the process. With the usage of `amount1_min_receive`/`amount2_min_receive`", + "it's possible to control the min amount of returned tokens you're happy with." + ] + }, + { + "name": "swap_exact_tokens_for_tokens", + "fields": [ + { + "name": "path", + "type": 426, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_out_min", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Swap the exact amount of `asset1` into `asset2`.", + "`amount_out_min` param allows you to specify the min amount of the `asset2`", + "you're happy to receive.", + "", + "[`AssetConversionApi::quote_price_exact_tokens_for_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "swap_tokens_for_exact_tokens", + "fields": [ + { + "name": "path", + "type": 426, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "amount_in_max", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "keep_alive", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Swap any amount of `asset1` to get the exact amount of `asset2`.", + "`amount_in_max` param allows to specify the max amount of the `asset1`", + "you're happy to provide.", + "", + "[`AssetConversionApi::quote_price_tokens_for_exact_tokens`] runtime call can be called", + "for a quote." + ] + }, + { + "name": "touch", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Touch an existing pool to fulfill prerequisites before providing liquidity, such as", + "ensuring that the pool's accounts are in place. It is typically useful when a pool", + "creator removes the pool's accounts and does not provide a liquidity. This action may", + "involve holding assets from the caller as a deposit for creating the pool's accounts.", + "", + "The origin must be Signed.", + "", + "- `asset1`: The asset ID of an existing pool with a pair (asset1, asset2).", + "- `asset2`: The asset ID of an existing pool with a pair (asset1, asset2).", + "", + "Emits `Touched` event when successful." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 426, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 40 + } + }, + "docs": [] + } + }, + { + "id": 427, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register_fast_unstake", + "fields": [], + "index": 0, + "docs": [ + "Register oneself for fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "The stash associated with the origin must have no ongoing unlocking chunks. If", + "successful, this will fully unbond and chill the stash. Then, it will enqueue the stash", + "to be checked in further blocks.", + "", + "If by the time this is called, the stash is actually eligible for fast-unstake, then", + "they are guaranteed to remain eligible, because the call will chill them as well.", + "", + "If the check works, the entire staking data is removed, i.e. the stash is fully", + "unstaked.", + "", + "If the check fails, the stash remains chilled and waiting for being unbonded as in with", + "the normal staking system, but they lose part of their unbonding chunks due to consuming", + "the chain's resources.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "deregister", + "fields": [], + "index": 1, + "docs": [ + "Deregister oneself from the fast-unstake.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be *signed* by whoever is permitted to call", + "unbond funds by the staking system. See [`Config::Staking`].", + "", + "## Details", + "", + "This is useful if one is registered, they are still waiting, and they change their mind.", + "", + "Note that the associated stash is still fully unbonded and chilled as a consequence of", + "calling [`Pallet::register_fast_unstake`]. Therefore, this should probably be followed", + "by a call to `rebond` in the staking system.", + "", + "## Events", + "", + "Some events from the staking and currency system might be emitted." + ] + }, + { + "name": "control", + "fields": [ + { + "name": "eras_to_check", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Control the operation of this pallet.", + "", + "## Dispatch Origin", + "", + "The dispatch origin of this call must be [`Config::ControlOrigin`].", + "", + "## Details", + "", + "Can set the number of eras to check per block, and potentially other admin work.", + "", + "## Events", + "", + "No events are emitted from this dispatch." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 428, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "reap_page", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Remove a page which has no more messages remaining to be processed or is stale." + ] + }, + { + "name": "execute_overweight", + "fields": [ + { + "name": "message_origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [] + }, + { + "name": "page", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "T::Size", + "docs": [] + }, + { + "name": "weight_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Execute an overweight message.", + "", + "Temporary processing errors will be propagated whereas permanent errors are treated", + "as success condition.", + "", + "- `origin`: Must be `Signed`.", + "- `message_origin`: The origin from which the message to be executed arrived.", + "- `page`: The page in the queue in which the message to be executed is sitting.", + "- `index`: The index into the queue of the message to be executed.", + "- `weight_limit`: The maximum amount of weight allowed to be consumed in the execution", + " of the message.", + "", + "Benchmark complexity considerations: O(index + weight_limit)." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 429, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "emit_event", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "noop", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 430, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "pause", + "fields": [ + { + "name": "full_name", + "type": 431, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Pause a call.", + "", + "Can only be called by [`Config::PauseOrigin`].", + "Emits an [`Event::CallPaused`] event on success." + ] + }, + { + "name": "unpause", + "fields": [ + { + "name": "ident", + "type": 431, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Un-pause a call.", + "", + "Can only be called by [`Config::UnpauseOrigin`].", + "Emits an [`Event::CallUnpaused`] event on success." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 431, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 117, + 117 + ] + }, + "docs": [] + } + }, + { + "id": 432, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "enter", + "fields": [], + "index": 0, + "docs": [ + "Enter safe-mode permissionlessly for [`Config::EnterDuration`] blocks.", + "", + "Reserves [`Config::EnterDepositAmount`] from the caller's account.", + "Emits an [`Event::Entered`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is already entered.", + "Errors with [`Error::NotConfigured`] if the deposit amount is `None`." + ] + }, + { + "name": "force_enter", + "fields": [], + "index": 1, + "docs": [ + "Enter safe-mode by force for a per-origin configured number of blocks.", + "", + "Emits an [`Event::Entered`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is already entered.", + "", + "Can only be called by the [`Config::ForceEnterOrigin`] origin." + ] + }, + { + "name": "extend", + "fields": [], + "index": 2, + "docs": [ + "Extend the safe-mode permissionlessly for [`Config::ExtendDuration`] blocks.", + "", + "This accumulates on top of the current remaining duration.", + "Reserves [`Config::ExtendDepositAmount`] from the caller's account.", + "Emits an [`Event::Extended`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is entered.", + "Errors with [`Error::NotConfigured`] if the deposit amount is `None`.", + "", + "This may be called by any signed origin with [`Config::ExtendDepositAmount`] free", + "currency to reserve. This call can be disabled for all origins by configuring", + "[`Config::ExtendDepositAmount`] to `None`." + ] + }, + { + "name": "force_extend", + "fields": [], + "index": 3, + "docs": [ + "Extend the safe-mode by force for a per-origin configured number of blocks.", + "", + "Emits an [`Event::Extended`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is inactive.", + "", + "Can only be called by the [`Config::ForceExtendOrigin`] origin." + ] + }, + { + "name": "force_exit", + "fields": [], + "index": 4, + "docs": [ + "Exit safe-mode by force.", + "", + "Emits an [`Event::Exited`] with [`ExitReason::Force`] event on success.", + "Errors with [`Error::Exited`] if the safe-mode is inactive.", + "", + "Note: `safe-mode` will be automatically deactivated by [`Pallet::on_initialize`] hook", + "after the block height is greater than the [`EnteredUntil`] storage item.", + "Emits an [`Event::Exited`] with [`ExitReason::Timeout`] event when deactivated in the", + "hook." + ] + }, + { + "name": "force_slash_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Slash a deposit for an account that entered or extended safe-mode at a given", + "historical block.", + "", + "This can only be called while safe-mode is entered.", + "", + "Emits a [`Event::DepositSlashed`] event on success.", + "Errors with [`Error::Entered`] if safe-mode is entered.", + "", + "Can only be called by the [`Config::ForceDepositOrigin`] origin." + ] + }, + { + "name": "release_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Permissionlessly release a deposit for an account that entered safe-mode at a", + "given historical block.", + "", + "The call can be completely disabled by setting [`Config::ReleaseDelay`] to `None`.", + "This cannot be called while safe-mode is entered and not until", + "[`Config::ReleaseDelay`] blocks have passed since safe-mode was entered.", + "", + "Emits a [`Event::DepositReleased`] event on success.", + "Errors with [`Error::Entered`] if the safe-mode is entered.", + "Errors with [`Error::CannotReleaseYet`] if [`Config::ReleaseDelay`] block have not", + "passed since safe-mode was entered. Errors with [`Error::NoDeposit`] if the payee has no", + "reserved currency at the block specified." + ] + }, + { + "name": "force_release_deposit", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Force to release a deposit for an account that entered safe-mode at a given", + "historical block.", + "", + "This can be called while safe-mode is still entered.", + "", + "Emits a [`Event::DepositReleased`] event on success.", + "Errors with [`Error::Entered`] if safe-mode is entered.", + "Errors with [`Error::NoDeposit`] if the payee has no reserved currency at the", + "specified block.", + "", + "Can only be called by the [`Config::ForceDepositOrigin`] origin." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 433, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "force_set_cursor", + "fields": [ + { + "name": "cursor", + "type": 434, + "typeName": "Option>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Allows root to set a cursor to forcefully start, stop or forward the migration process.", + "", + "Should normally not be needed and is only in place as emergency measure. Note that", + "restarting the migration process in this manner will not call the", + "[`MigrationStatusHandler::started`] hook or emit an `UpgradeStarted` event." + ] + }, + { + "name": "force_set_active_cursor", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 438, + "typeName": "Option>", + "docs": [] + }, + { + "name": "started_at", + "type": 50, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Allows root to set an active cursor to forcefully start/forward the migration process.", + "", + "This is an edge-case version of [`Self::force_set_cursor`] that allows to set the", + "`started_at` value to the next block number. Otherwise this would not be possible, since", + "`force_set_cursor` takes an absolute block number. Setting `started_at` to `None`", + "indicates that the current block number plus one should be used." + ] + }, + { + "name": "force_onboard_mbms", + "fields": [], + "index": 2, + "docs": [ + "Forces the onboarding of the migrations.", + "", + "This process happens automatically on a runtime upgrade. It is in place as an emergency", + "measurement. The cursor needs to be `None` for this to succeed." + ] + }, + { + "name": "clear_historic", + "fields": [ + { + "name": "selector", + "type": 439, + "typeName": "HistoricCleanupSelector>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Clears the `Historic` set.", + "", + "`map_cursor` must be set to the last value that was returned by the", + "`HistoricCleared` event. The first time `None` can be used. `limit` must be chosen in a", + "way that will result in a sensible weight." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 434, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 435 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 435, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 435, + "type": { + "path": [ + "pallet_migrations", + "MigrationCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 436 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Active", + "fields": [ + { + "name": null, + "type": 437, + "typeName": "ActiveCursor", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Stuck", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 436, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 437, + "type": { + "path": [ + "pallet_migrations", + "ActiveCursor" + ], + "params": [ + { + "name": "Cursor", + "type": 436 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "inner_cursor", + "type": 438, + "typeName": "Option", + "docs": [] + }, + { + "name": "started_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 438, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 436 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 436, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 439, + "type": { + "path": [ + "pallet_migrations", + "HistoricCleanupSelector" + ], + "params": [ + { + "name": "Id", + "type": 117 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Specific", + "fields": [ + { + "name": null, + "type": 440, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Wildcard", + "fields": [ + { + "name": "limit", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "previous_cursor", + "type": 441, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 440, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 117 + } + }, + "docs": [] + } + }, + { + "id": 441, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 14 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 442, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "configure", + "fields": [ + { + "name": "config", + "type": 443, + "typeName": "ConfigRecordOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Configure the pallet.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `config`: The configuration for this pallet." + ] + }, + { + "name": "reserve", + "fields": [ + { + "name": "workload", + "type": 444, + "typeName": "Schedule", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Reserve a core for a workload.", + "", + "The workload will be given a reservation, but two sale period boundaries must pass", + "before the core is actually assigned.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `workload`: The workload which should be permanently placed on a core." + ] + }, + { + "name": "unreserve", + "fields": [ + { + "name": "item_index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Cancel a reservation for a workload.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `item_index`: The index of the reservation. Usually this will also be the index of the", + " core on which the reservation has been scheduled. However, it is possible that if", + " other cores are reserved or unreserved in the same sale rotation that they won't", + " correspond, so it's better to look up the core properly in the `Reservations` storage." + ] + }, + { + "name": "set_lease", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Reserve a core for a single task workload for a limited period.", + "", + "In the interlude and sale period where Bulk Coretime is sold for the period immediately", + "after `until`, then the same workload may be renewed.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `task`: The workload which should be placed on a core.", + "- `until`: The timeslice now earlier than which `task` should be placed as a workload on", + " a core." + ] + }, + { + "name": "start_sales", + "fields": [ + { + "name": "end_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "extra_cores", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Begin the Bulk Coretime sales rotation.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `end_price`: The price after the leadin period of Bulk Coretime in the first sale.", + "- `extra_cores`: Number of extra cores that should be requested on top of the cores", + " required for `Reservations` and `Leases`.", + "", + "This will call [`Self::request_core_count`] internally to set the correct core count on", + "the relay chain." + ] + }, + { + "name": "purchase", + "fields": [ + { + "name": "price_limit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Purchase Bulk Coretime in the ongoing Sale.", + "", + "- `origin`: Must be a Signed origin with at least enough funds to pay the current price", + " of Bulk Coretime.", + "- `price_limit`: An amount no more than which should be paid." + ] + }, + { + "name": "renew", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Renew Bulk Coretime in the ongoing Sale or its prior Interlude Period.", + "", + "- `origin`: Must be a Signed origin with at least enough funds to pay the renewal price", + " of the core.", + "- `core`: The core which should be renewed." + ] + }, + { + "name": "transfer", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "new_owner", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Transfer a Bulk Coretime Region to a new owner.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region whose ownership should change.", + "- `new_owner`: The new owner for the Region." + ] + }, + { + "name": "partition", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "pivot", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Split a Bulk Coretime Region into two non-overlapping Regions at a particular time into", + "the region.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be partitioned into two non-overlapping Regions.", + "- `pivot`: The offset in time into the Region at which to make the split." + ] + }, + { + "name": "interlace", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "pivot", + "type": 446, + "typeName": "CoreMask", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Split a Bulk Coretime Region into two wholly-overlapping Regions with complementary", + "interlace masks which together make up the original Region's interlace mask.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should become two interlaced Regions of incomplete", + " regularity.", + "- `pivot`: The interlace mask of one of the two new regions (the other is its partial", + " complement)." + ] + }, + { + "name": "assign", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "finality", + "type": 450, + "typeName": "Finality", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Assign a Bulk Coretime Region to a task.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be assigned to the task.", + "- `task`: The task to assign.", + "- `finality`: Indication of whether this assignment is final (in which case it may be", + " eligible for renewal) or provisional (in which case it may be manipulated and/or", + "reassigned at a later stage)." + ] + }, + { + "name": "pool", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "finality", + "type": 450, + "typeName": "Finality", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Place a Bulk Coretime Region into the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin of the account which owns the Region `region_id`.", + "- `region_id`: The Region which should be assigned to the Pool.", + "- `payee`: The account which is able to collect any revenue due for the usage of this", + " Coretime." + ] + }, + { + "name": "claim_revenue", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + }, + { + "name": "max_timeslices", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 12, + "docs": [ + "Claim the revenue owed from inclusion in the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin.", + "- `region_id`: The Region which was assigned to the Pool.", + "- `max_timeslices`: The maximum number of timeslices which should be processed. This", + " must be greater than 0. This may affect the weight of the call but should be ideally", + " made equivalent to the length of the Region `region_id`. If less, further dispatches", + " will be required with the same `region_id` to claim revenue for the remainder." + ] + }, + { + "name": "purchase_credit", + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "RelayAccountIdOf", + "docs": [] + } + ], + "index": 13, + "docs": [ + "Purchase credit for use in the Instantaneous Coretime Pool.", + "", + "- `origin`: Must be a Signed origin able to pay at least `amount`.", + "- `amount`: The amount of credit to purchase.", + "- `beneficiary`: The account on the Relay-chain which controls the credit (generally", + " this will be the collator's hot wallet)." + ] + }, + { + "name": "drop_region", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Drop an expired Region from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The Region which has expired." + ] + }, + { + "name": "drop_contribution", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Drop an expired Instantaneous Pool Contribution record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The Region identifying the Pool Contribution which has expired." + ] + }, + { + "name": "drop_history", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Drop an expired Instantaneous Pool History record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `region_id`: The time of the Pool History record which has expired." + ] + }, + { + "name": "drop_renewal", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Drop an expired Allowed Renewal record from the chain.", + "", + "- `origin`: Can be any kind of origin.", + "- `core`: The core to which the expired renewal refers.", + "- `when`: The timeslice to which the expired renewal refers. This must have passed." + ] + }, + { + "name": "request_core_count", + "fields": [ + { + "name": "core_count", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 18, + "docs": [ + "Request a change to the number of cores available for scheduling work.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `core_count`: The desired number of cores to be made available." + ] + }, + { + "name": "notify_core_count", + "fields": [ + { + "name": "core_count", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "notify_revenue", + "fields": [ + { + "name": "revenue", + "type": 451, + "typeName": "OnDemandRevenueRecordOf", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "enable_auto_renew", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "workload_end_hint", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 21, + "docs": [ + "Extrinsic for enabling auto renewal.", + "", + "Callable by the sovereign account of the task on the specified core. This account", + "will be charged at the start of every bulk period for renewing core time.", + "", + "- `origin`: Must be the sovereign account of the task", + "- `core`: The core to which the task to be renewed is currently assigned.", + "- `task`: The task for which we want to enable auto renewal.", + "- `workload_end_hint`: should be used when enabling auto-renewal for a core that is not", + " expiring in the upcoming bulk period (e.g., due to holding a lease) since it would be", + " inefficient to look up when the core expires to schedule the next renewal." + ] + }, + { + "name": "disable_auto_renew", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Extrinsic for disabling auto renewal.", + "", + "Callable by the sovereign account of the task on the specified core.", + "", + "- `origin`: Must be the sovereign account of the task.", + "- `core`: The core for which we want to disable auto renewal.", + "- `task`: The task for which we want to disable auto renewal." + ] + }, + { + "name": "force_reserve", + "fields": [ + { + "name": "workload", + "type": 444, + "typeName": "Schedule", + "docs": [] + }, + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + } + ], + "index": 23, + "docs": [ + "Reserve a core for a workload immediately.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `workload`: The workload which should be permanently placed on a core starting", + " immediately.", + "- `core`: The core to which the assignment should be made until the reservation takes", + " effect. It is left to the caller to either add this new core or reassign any other", + " tasks to this existing core.", + "", + "This reserves the workload and then injects the workload into the Workplan for the next", + "two sale periods. This overwrites any existing assignments for this core at the start of", + "the next sale period." + ] + }, + { + "name": "remove_lease", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 24, + "docs": [ + "Remove a lease.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `task`: The task id of the lease which should be removed." + ] + }, + { + "name": "remove_assignment", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [] + } + ], + "index": 26, + "docs": [ + "Remove an assignment from the Workplan.", + "", + "- `origin`: Must be Root or pass `AdminOrigin`.", + "- `region_id`: The Region to be removed from the workplan." + ] + }, + { + "name": "swap_leases", + "fields": [ + { + "name": "id", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "other", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 99, + "docs": [] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 443, + "type": { + "path": [ + "pallet_broker", + "types", + "ConfigRecord" + ], + "params": [ + { + "name": "RelayBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "advance_notice", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "interlude_length", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "region_length", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "ideal_bulk_proportion", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "limit_cores_offered", + "type": 132, + "typeName": "Option", + "docs": [] + }, + { + "name": "renewal_bump", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "contribution_timeout", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 444, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 445 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 448, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 445, + "type": { + "path": [ + "pallet_broker", + "types", + "ScheduleItem" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "mask", + "type": 446, + "typeName": "CoreMask", + "docs": [] + }, + { + "name": "assignment", + "type": 447, + "typeName": "CoreAssignment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 446, + "type": { + "path": [ + "pallet_broker", + "core_mask", + "CoreMask" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 289, + "typeName": "[u8; 10]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 447, + "type": { + "path": [ + "pallet_broker", + "coretime_interface", + "CoreAssignment" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Idle", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Pool", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Task", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 448, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 445 + } + }, + "docs": [] + } + }, + { + "id": 449, + "type": { + "path": [ + "pallet_broker", + "types", + "RegionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "mask", + "type": 446, + "typeName": "CoreMask", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 450, + "type": { + "path": [ + "pallet_broker", + "types", + "Finality" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Provisional", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Final", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 451, + "type": { + "path": [ + "pallet_broker", + "types", + "OnDemandRevenueRecord" + ], + "params": [ + { + "name": "RelayBlockNumber", + "type": 4 + }, + { + "name": "RelayBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "RelayBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 452, + "type": { + "path": [ + "pallet_mixnet", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "register", + "fields": [ + { + "name": "registration", + "type": 453, + "typeName": "RegistrationFor", + "docs": [] + }, + { + "name": "signature", + "type": 457, + "typeName": "AuthoritySignature", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Register a mixnode for the following session." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 453, + "type": { + "path": [ + "pallet_mixnet", + "Registration" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "BoundedMixnode", + "type": 454 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "block_number", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "session_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "authority_index", + "type": 4, + "typeName": "AuthorityIndex", + "docs": [] + }, + { + "name": "mixnode", + "type": 454, + "typeName": "BoundedMixnode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 454, + "type": { + "path": [ + "pallet_mixnet", + "BoundedMixnode" + ], + "params": [ + { + "name": "ExternalAddresses", + "type": 455 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "kx_public", + "type": 1, + "typeName": "KxPublic", + "docs": [] + }, + { + "name": "peer_id", + "type": 1, + "typeName": "PeerId", + "docs": [] + }, + { + "name": "external_addresses", + "type": 455, + "typeName": "ExternalAddresses", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 455, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 113 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 456, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 456, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 113 + } + }, + "docs": [] + } + }, + { + "id": 457, + "type": { + "path": [ + "sp_mixnet", + "types", + "app", + "Signature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 261, + "typeName": "sr25519::Signature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 458, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "set_parameter", + "fields": [ + { + "name": "key_value", + "type": 459, + "typeName": "T::RuntimeParameters", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Set the value of a parameter.", + "", + "The dispatch origin of this call must be `AdminOrigin` for the given `key`. Values be", + "deleted by setting them to `None`." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 459, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 460, + "typeName": "dynamic_params::storage::Parameters", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 463, + "typeName": "dynamic_params::referenda::Parameters", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 460, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 461, + "typeName": "BaseDeposit", + "docs": [] + }, + { + "name": null, + "type": 236, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "ByteDeposit", + "docs": [] + }, + { + "name": null, + "type": 236, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 461, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "BaseDeposit" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 462, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ByteDeposit" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 463, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "Parameters" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Tracks", + "fields": [ + { + "name": null, + "type": 464, + "typeName": "Tracks", + "docs": [] + }, + { + "name": null, + "type": 465, + "typeName": "Option\n, ConstU32<100>,>>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 473, + "typeName": "Origins", + "docs": [] + }, + { + "name": null, + "type": 474, + "typeName": "Option>>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 464, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "Tracks" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 465, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 466 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 466, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 466, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 467 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 472, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 467, + "type": { + "path": [ + "pallet_referenda", + "types", + "Track" + ], + "params": [ + { + "name": "Id", + "type": 100 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 100, + "typeName": "Id", + "docs": [] + }, + { + "name": "info", + "type": 468, + "typeName": "TrackInfo", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 468, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 302 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 302, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 469, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 469, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 469, + "type": { + "path": [ + "pallet_referenda", + "types", + "Curve" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "LinearDecreasing", + "fields": [ + { + "name": "length", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "floor", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "ceil", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "SteppedDecreasing", + "fields": [ + { + "name": "begin", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "end", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "step", + "type": 49, + "typeName": "Perbill", + "docs": [] + }, + { + "name": "period", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Reciprocal", + "fields": [ + { + "name": "factor", + "type": 470, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "x_offset", + "type": 470, + "typeName": "FixedI64", + "docs": [] + }, + { + "name": "y_offset", + "type": 470, + "typeName": "FixedI64", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 470, + "type": { + "path": [ + "sp_arithmetic", + "fixed_point", + "FixedI64" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 471, + "typeName": "i64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 471, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I64" + }, + "docs": [] + } + }, + { + "id": 472, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 467 + } + }, + "docs": [] + } + }, + { + "id": 473, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "Origins" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 474, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 475 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 475, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 475, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 476 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 477, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 476, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 148, + 100 + ] + }, + "docs": [] + } + }, + { + "id": 477, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 476 + } + }, + "docs": [] + } + }, + { + "id": 478, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "migrate_to_new_account", + "fields": [ + { + "name": "asset1", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "asset2", + "type": 40, + "typeName": "Box", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Migrates an existing pool to a new account ID derivation method for a given asset pair.", + "If the migration is successful, transaction fees are refunded to the caller.", + "", + "Must be signed." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 479, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "eth_transact", + "fields": [ + { + "name": "payload", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A raw EVM transaction, typically dispatched by an Ethereum JSON-RPC server.", + "", + "# Parameters", + "", + "* `payload`: The encoded [`crate::evm::TransactionSigned`].", + "* `gas_limit`: The gas limit enforced during contract execution.", + "* `storage_deposit_limit`: The maximum balance that can be charged to the caller for", + " storage usage.", + "", + "# Note", + "", + "This call cannot be dispatched directly; attempting to do so will result in a failed", + "transaction. It serves as a wrapper for an Ethereum transaction. When submitted, the", + "runtime converts it into a [`sp_runtime::generic::CheckedExtrinsic`] by recovering the", + "signer and validating the transaction." + ] + }, + { + "name": "call", + "fields": [ + { + "name": "dest", + "type": 480, + "typeName": "H160", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Makes a call to an account, optionally transferring some balance.", + "", + "# Parameters", + "", + "* `dest`: Address of the contract to call.", + "* `value`: The balance to transfer from the `origin` to `dest`.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged from the", + " caller to pay for the storage consumed.", + "* `data`: The input data to pass to the contract.", + "", + "* If the account is a smart-contract account, the associated code will be", + "executed and any value will be transferred.", + "* If the account is a regular account, any value will be transferred.", + "* If no account exists and the call value is not less than `existential_deposit`,", + "a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 94, + "typeName": "Option<[u8; 32]>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Instantiates a contract from a previously deployed wasm binary.", + "", + "This function is identical to [`Self::instantiate_with_code`] but without the", + "code deployment step. Instead, the `code_hash` of an on-chain deployed wasm binary", + "must be supplied." + ] + }, + { + "name": "instantiate_with_code", + "fields": [ + { + "name": "value", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "gas_limit", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "salt", + "type": 94, + "typeName": "Option<[u8; 32]>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Instantiates a new contract from the supplied `code` optionally transferring", + "some balance.", + "", + "This dispatchable has the same effect as calling [`Self::upload_code`] +", + "[`Self::instantiate`]. Bundling them together provides efficiency gains. Please", + "also check the documentation of [`Self::upload_code`].", + "", + "# Parameters", + "", + "* `value`: The balance to transfer from the `origin` to the newly created contract.", + "* `gas_limit`: The gas limit enforced when executing the constructor.", + "* `storage_deposit_limit`: The maximum amount of balance that can be charged/reserved", + " from the caller to pay for the storage consumed.", + "* `code`: The contract code to deploy in raw bytes.", + "* `data`: The input data to pass to the contract constructor.", + "* `salt`: Used for the address derivation. If `Some` is supplied then `CREATE2`", + "\tsemantics are used. If `None` then `CRATE1` is used.", + "", + "", + "Instantiation is executed as follows:", + "", + "- The supplied `code` is deployed, and a `code_hash` is created for that code.", + "- If the `code_hash` already exists on the chain the underlying `code` will be shared.", + "- The destination address is computed based on the sender, code_hash and the salt.", + "- The smart-contract account is created at the computed address.", + "- The `value` is transferred to the new account.", + "- The `deploy` function is executed in the context of the newly-created account." + ] + }, + { + "name": "upload_code", + "fields": [ + { + "name": "code", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "storage_deposit_limit", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Upload new `code` without instantiating a contract from it.", + "", + "If the code does not already exist a deposit is reserved from the caller", + "and unreserved only when [`Self::remove_code`] is called. The size of the reserve", + "depends on the size of the supplied `code`.", + "", + "# Note", + "", + "Anyone can instantiate a contract from any uploaded code and thus prevent its removal.", + "To avoid this situation a constructor could employ access control so that it can", + "only be instantiated by permissioned entities. The same is true when uploading", + "through [`Self::instantiate_with_code`]." + ] + }, + { + "name": "remove_code", + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Remove the code stored under `code_hash` and refund the deposit to its owner.", + "", + "A code can only be removed by its original uploader (its owner) and only if it is", + "not used by any contract." + ] + }, + { + "name": "set_code", + "fields": [ + { + "name": "dest", + "type": 480, + "typeName": "H160", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Privileged function that changes the code of an existing contract.", + "", + "This takes care of updating refcounts and all other necessary operations. Returns", + "an error if either the `code_hash` or `dest` do not exist.", + "", + "# Note", + "", + "This does **not** change the address of the contract in question. This means", + "that the contract address is no longer derived from its code hash after calling", + "this dispatchable." + ] + }, + { + "name": "map_account", + "fields": [], + "index": 7, + "docs": [ + "Register the callers account id so that it can be used in contract interactions.", + "", + "This will error if the origin is already mapped or is a eth native `Address20`. It will", + "take a deposit that can be released by calling [`Self::unmap_account`]." + ] + }, + { + "name": "unmap_account", + "fields": [], + "index": 8, + "docs": [ + "Unregister the callers account id in order to free the deposit.", + "", + "There is no reason to ever call this function other than freeing up the deposit.", + "This is only useful when the account should no longer be used." + ] + }, + { + "name": "dispatch_as_fallback_account", + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Box<::RuntimeCall>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Dispatch an `call` with the origin set to the callers fallback address.", + "", + "Every `AccountId32` can control its corresponding fallback account. The fallback account", + "is the `AccountId20` with the last 12 bytes set to `0xEE`. This is essentially a", + "recovery function in case an `AccountId20` was used without creating a mapping first." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 480, + "type": { + "path": [ + "primitive_types", + "H160" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 166, + "typeName": "[u8; 20]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 481, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "create_pool", + "fields": [ + { + "name": "staked_asset_id", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "reward_asset_id", + "type": 40, + "typeName": "Box", + "docs": [] + }, + { + "name": "reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "expiry", + "type": 392, + "typeName": "DispatchTime>", + "docs": [] + }, + { + "name": "admin", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Create a new reward pool.", + "", + "Parameters:", + "- `origin`: must be `Config::CreatePoolOrigin`;", + "- `staked_asset_id`: the asset to be staked in the pool;", + "- `reward_asset_id`: the asset to be distributed as rewards;", + "- `reward_rate_per_block`: the amount of reward tokens distributed per block;", + "- `expiry`: the block number at which the pool will cease to accumulate rewards. The", + " [`DispatchTime::After`] variant evaluated at the execution time.", + "- `admin`: the account allowed to extend the pool expiration, increase the rewards rate", + " and receive the unutilized reward tokens back after the pool completion. If `None`,", + " the caller is set as an admin." + ] + }, + { + "name": "stake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Stake additional tokens in a pool.", + "", + "A freeze is placed on the staked tokens." + ] + }, + { + "name": "unstake", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + }, + { + "name": "staker", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Unstake tokens from a pool.", + "", + "Removes the freeze on the staked tokens.", + "", + "Parameters:", + "- origin: must be the `staker` if the pool is still active. Otherwise, any account.", + "- pool_id: the pool to unstake from.", + "- amount: the amount of tokens to unstake.", + "- staker: the account to unstake from. If `None`, the caller is used." + ] + }, + { + "name": "harvest_rewards", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "staker", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Harvest unclaimed pool rewards.", + "", + "Parameters:", + "- origin: must be the `staker` if the pool is still active. Otherwise, any account.", + "- pool_id: the pool to harvest from.", + "- staker: the account for which to harvest rewards. If `None`, the caller is used." + ] + }, + { + "name": "set_pool_reward_rate_per_block", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 4, + "docs": [ + "Modify a pool reward rate.", + "", + "Currently the reward rate can only be increased.", + "", + "Only the pool admin may perform this operation." + ] + }, + { + "name": "set_pool_admin", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "Modify a pool admin.", + "", + "Only the pool admin may perform this operation." + ] + }, + { + "name": "set_pool_expiry_block", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_expiry", + "type": 392, + "typeName": "DispatchTime>", + "docs": [] + } + ], + "index": 6, + "docs": [ + "Set when the pool should expire.", + "", + "Currently the expiry block can only be extended.", + "", + "Only the pool admin may perform this operation." + ] + }, + { + "name": "deposit_reward_tokens", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 7, + "docs": [ + "Convenience method to deposit reward tokens into a pool.", + "", + "This method is not strictly necessary (tokens could be transferred directly to the", + "pool pot address), but is provided for convenience so manual derivation of the", + "account id is not required." + ] + }, + { + "name": "cleanup_pool", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Cleanup a pool.", + "", + "Origin must be the pool admin.", + "", + "Cleanup storage, release any associated storage cost and return the remaining reward", + "tokens to the admin." + ] + } + ] + } + }, + "docs": [ + "Pallet's callable functions." + ] + } + }, + { + "id": 482, + "type": { + "path": [ + "pallet_meta_tx", + "pallet", + "Call" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "dispatch", + "fields": [ + { + "name": "meta_tx", + "type": 483, + "typeName": "Box>", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Dispatch a given meta transaction.", + "", + "- `_origin`: Can be any kind of origin.", + "- `meta_tx`: Meta Transaction with a target call to be dispatched." + ] + } + ] + } + }, + "docs": [ + "Contains a variant per dispatchable extrinsic that this pallet has." + ] + } + }, + { + "id": 483, + "type": { + "path": [ + "pallet_meta_tx", + "MetaTx" + ], + "params": [ + { + "name": "Call", + "type": 141 + }, + { + "name": "Extension", + "type": 484 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "call", + "type": 141, + "typeName": "Call", + "docs": [] + }, + { + "name": "extension_version", + "type": 2, + "typeName": "ExtensionVersion", + "docs": [] + }, + { + "name": "extension", + "type": 484, + "typeName": "Extension", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 484, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 485, + 486, + 487, + 488, + 489, + 490, + 491, + 493, + 494 + ] + }, + "docs": [] + } + }, + { + "id": 485, + "type": { + "path": [ + "pallet_verify_signature", + "extension", + "VerifySignature" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Signed", + "fields": [ + { + "name": "signature", + "type": 315, + "typeName": "T::Signature", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Disabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 486, + "type": { + "path": [ + "pallet_meta_tx", + "extension", + "MetaTxMarker" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 487, + "type": { + "path": [ + "frame_system", + "extensions", + "check_non_zero_sender", + "CheckNonZeroSender" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 488, + "type": { + "path": [ + "frame_system", + "extensions", + "check_spec_version", + "CheckSpecVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 489, + "type": { + "path": [ + "frame_system", + "extensions", + "check_tx_version", + "CheckTxVersion" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 490, + "type": { + "path": [ + "frame_system", + "extensions", + "check_genesis", + "CheckGenesis" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 491, + "type": { + "path": [ + "frame_system", + "extensions", + "check_mortality", + "CheckMortality" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 492, + "typeName": "Era", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 492, + "type": { + "path": [ + "sp_runtime", + "generic", + "era", + "Era" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Immortal", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Mortal1", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Mortal2", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Mortal3", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Mortal4", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Mortal5", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Mortal6", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Mortal7", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "Mortal8", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 8, + "docs": [] + }, + { + "name": "Mortal9", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 9, + "docs": [] + }, + { + "name": "Mortal10", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Mortal11", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Mortal12", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Mortal13", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Mortal14", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "Mortal15", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Mortal16", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "Mortal17", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Mortal18", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Mortal19", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "Mortal20", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Mortal21", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Mortal22", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "Mortal23", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Mortal24", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 24, + "docs": [] + }, + { + "name": "Mortal25", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 25, + "docs": [] + }, + { + "name": "Mortal26", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 26, + "docs": [] + }, + { + "name": "Mortal27", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 27, + "docs": [] + }, + { + "name": "Mortal28", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Mortal29", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Mortal30", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Mortal31", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Mortal32", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Mortal33", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Mortal34", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Mortal35", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Mortal36", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Mortal37", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Mortal38", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Mortal39", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "Mortal40", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Mortal41", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Mortal42", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 42, + "docs": [] + }, + { + "name": "Mortal43", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 43, + "docs": [] + }, + { + "name": "Mortal44", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Mortal45", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Mortal46", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Mortal47", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "Mortal48", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Mortal49", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "Mortal50", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "Mortal51", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "Mortal52", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "Mortal53", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "Mortal54", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Mortal55", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Mortal56", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "Mortal57", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 57, + "docs": [] + }, + { + "name": "Mortal58", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Mortal59", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "Mortal60", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Mortal61", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "Mortal62", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "Mortal63", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "Mortal64", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "Mortal65", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "Mortal66", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "Mortal67", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "Mortal68", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 68, + "docs": [] + }, + { + "name": "Mortal69", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "Mortal70", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Mortal71", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 71, + "docs": [] + }, + { + "name": "Mortal72", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Mortal73", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "Mortal74", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "Mortal75", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 75, + "docs": [] + }, + { + "name": "Mortal76", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 76, + "docs": [] + }, + { + "name": "Mortal77", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 77, + "docs": [] + }, + { + "name": "Mortal78", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 78, + "docs": [] + }, + { + "name": "Mortal79", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Mortal80", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "Mortal81", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 81, + "docs": [] + }, + { + "name": "Mortal82", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "Mortal83", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "Mortal84", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "Mortal85", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 85, + "docs": [] + }, + { + "name": "Mortal86", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 86, + "docs": [] + }, + { + "name": "Mortal87", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 87, + "docs": [] + }, + { + "name": "Mortal88", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 88, + "docs": [] + }, + { + "name": "Mortal89", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 89, + "docs": [] + }, + { + "name": "Mortal90", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 90, + "docs": [] + }, + { + "name": "Mortal91", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 91, + "docs": [] + }, + { + "name": "Mortal92", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 92, + "docs": [] + }, + { + "name": "Mortal93", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 93, + "docs": [] + }, + { + "name": "Mortal94", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 94, + "docs": [] + }, + { + "name": "Mortal95", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 95, + "docs": [] + }, + { + "name": "Mortal96", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 96, + "docs": [] + }, + { + "name": "Mortal97", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 97, + "docs": [] + }, + { + "name": "Mortal98", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 98, + "docs": [] + }, + { + "name": "Mortal99", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 99, + "docs": [] + }, + { + "name": "Mortal100", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 100, + "docs": [] + }, + { + "name": "Mortal101", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 101, + "docs": [] + }, + { + "name": "Mortal102", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 102, + "docs": [] + }, + { + "name": "Mortal103", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 103, + "docs": [] + }, + { + "name": "Mortal104", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 104, + "docs": [] + }, + { + "name": "Mortal105", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 105, + "docs": [] + }, + { + "name": "Mortal106", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 106, + "docs": [] + }, + { + "name": "Mortal107", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 107, + "docs": [] + }, + { + "name": "Mortal108", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 108, + "docs": [] + }, + { + "name": "Mortal109", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 109, + "docs": [] + }, + { + "name": "Mortal110", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 110, + "docs": [] + }, + { + "name": "Mortal111", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 111, + "docs": [] + }, + { + "name": "Mortal112", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 112, + "docs": [] + }, + { + "name": "Mortal113", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 113, + "docs": [] + }, + { + "name": "Mortal114", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 114, + "docs": [] + }, + { + "name": "Mortal115", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 115, + "docs": [] + }, + { + "name": "Mortal116", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 116, + "docs": [] + }, + { + "name": "Mortal117", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 117, + "docs": [] + }, + { + "name": "Mortal118", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 118, + "docs": [] + }, + { + "name": "Mortal119", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 119, + "docs": [] + }, + { + "name": "Mortal120", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 120, + "docs": [] + }, + { + "name": "Mortal121", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 121, + "docs": [] + }, + { + "name": "Mortal122", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 122, + "docs": [] + }, + { + "name": "Mortal123", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 123, + "docs": [] + }, + { + "name": "Mortal124", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 124, + "docs": [] + }, + { + "name": "Mortal125", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 125, + "docs": [] + }, + { + "name": "Mortal126", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 126, + "docs": [] + }, + { + "name": "Mortal127", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 127, + "docs": [] + }, + { + "name": "Mortal128", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 128, + "docs": [] + }, + { + "name": "Mortal129", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 129, + "docs": [] + }, + { + "name": "Mortal130", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 130, + "docs": [] + }, + { + "name": "Mortal131", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 131, + "docs": [] + }, + { + "name": "Mortal132", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 132, + "docs": [] + }, + { + "name": "Mortal133", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 133, + "docs": [] + }, + { + "name": "Mortal134", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 134, + "docs": [] + }, + { + "name": "Mortal135", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 135, + "docs": [] + }, + { + "name": "Mortal136", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 136, + "docs": [] + }, + { + "name": "Mortal137", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 137, + "docs": [] + }, + { + "name": "Mortal138", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 138, + "docs": [] + }, + { + "name": "Mortal139", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 139, + "docs": [] + }, + { + "name": "Mortal140", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 140, + "docs": [] + }, + { + "name": "Mortal141", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 141, + "docs": [] + }, + { + "name": "Mortal142", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 142, + "docs": [] + }, + { + "name": "Mortal143", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 143, + "docs": [] + }, + { + "name": "Mortal144", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 144, + "docs": [] + }, + { + "name": "Mortal145", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 145, + "docs": [] + }, + { + "name": "Mortal146", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 146, + "docs": [] + }, + { + "name": "Mortal147", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 147, + "docs": [] + }, + { + "name": "Mortal148", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 148, + "docs": [] + }, + { + "name": "Mortal149", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 149, + "docs": [] + }, + { + "name": "Mortal150", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 150, + "docs": [] + }, + { + "name": "Mortal151", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 151, + "docs": [] + }, + { + "name": "Mortal152", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 152, + "docs": [] + }, + { + "name": "Mortal153", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 153, + "docs": [] + }, + { + "name": "Mortal154", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 154, + "docs": [] + }, + { + "name": "Mortal155", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 155, + "docs": [] + }, + { + "name": "Mortal156", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 156, + "docs": [] + }, + { + "name": "Mortal157", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 157, + "docs": [] + }, + { + "name": "Mortal158", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 158, + "docs": [] + }, + { + "name": "Mortal159", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 159, + "docs": [] + }, + { + "name": "Mortal160", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 160, + "docs": [] + }, + { + "name": "Mortal161", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 161, + "docs": [] + }, + { + "name": "Mortal162", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 162, + "docs": [] + }, + { + "name": "Mortal163", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 163, + "docs": [] + }, + { + "name": "Mortal164", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 164, + "docs": [] + }, + { + "name": "Mortal165", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 165, + "docs": [] + }, + { + "name": "Mortal166", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 166, + "docs": [] + }, + { + "name": "Mortal167", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 167, + "docs": [] + }, + { + "name": "Mortal168", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 168, + "docs": [] + }, + { + "name": "Mortal169", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 169, + "docs": [] + }, + { + "name": "Mortal170", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 170, + "docs": [] + }, + { + "name": "Mortal171", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 171, + "docs": [] + }, + { + "name": "Mortal172", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 172, + "docs": [] + }, + { + "name": "Mortal173", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 173, + "docs": [] + }, + { + "name": "Mortal174", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 174, + "docs": [] + }, + { + "name": "Mortal175", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 175, + "docs": [] + }, + { + "name": "Mortal176", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 176, + "docs": [] + }, + { + "name": "Mortal177", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 177, + "docs": [] + }, + { + "name": "Mortal178", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 178, + "docs": [] + }, + { + "name": "Mortal179", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 179, + "docs": [] + }, + { + "name": "Mortal180", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 180, + "docs": [] + }, + { + "name": "Mortal181", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 181, + "docs": [] + }, + { + "name": "Mortal182", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 182, + "docs": [] + }, + { + "name": "Mortal183", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 183, + "docs": [] + }, + { + "name": "Mortal184", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 184, + "docs": [] + }, + { + "name": "Mortal185", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 185, + "docs": [] + }, + { + "name": "Mortal186", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 186, + "docs": [] + }, + { + "name": "Mortal187", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 187, + "docs": [] + }, + { + "name": "Mortal188", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 188, + "docs": [] + }, + { + "name": "Mortal189", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 189, + "docs": [] + }, + { + "name": "Mortal190", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 190, + "docs": [] + }, + { + "name": "Mortal191", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 191, + "docs": [] + }, + { + "name": "Mortal192", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 192, + "docs": [] + }, + { + "name": "Mortal193", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 193, + "docs": [] + }, + { + "name": "Mortal194", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 194, + "docs": [] + }, + { + "name": "Mortal195", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 195, + "docs": [] + }, + { + "name": "Mortal196", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 196, + "docs": [] + }, + { + "name": "Mortal197", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 197, + "docs": [] + }, + { + "name": "Mortal198", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 198, + "docs": [] + }, + { + "name": "Mortal199", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 199, + "docs": [] + }, + { + "name": "Mortal200", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 200, + "docs": [] + }, + { + "name": "Mortal201", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 201, + "docs": [] + }, + { + "name": "Mortal202", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 202, + "docs": [] + }, + { + "name": "Mortal203", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 203, + "docs": [] + }, + { + "name": "Mortal204", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 204, + "docs": [] + }, + { + "name": "Mortal205", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 205, + "docs": [] + }, + { + "name": "Mortal206", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 206, + "docs": [] + }, + { + "name": "Mortal207", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 207, + "docs": [] + }, + { + "name": "Mortal208", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 208, + "docs": [] + }, + { + "name": "Mortal209", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 209, + "docs": [] + }, + { + "name": "Mortal210", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 210, + "docs": [] + }, + { + "name": "Mortal211", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 211, + "docs": [] + }, + { + "name": "Mortal212", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 212, + "docs": [] + }, + { + "name": "Mortal213", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 213, + "docs": [] + }, + { + "name": "Mortal214", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 214, + "docs": [] + }, + { + "name": "Mortal215", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 215, + "docs": [] + }, + { + "name": "Mortal216", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 216, + "docs": [] + }, + { + "name": "Mortal217", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 217, + "docs": [] + }, + { + "name": "Mortal218", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 218, + "docs": [] + }, + { + "name": "Mortal219", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 219, + "docs": [] + }, + { + "name": "Mortal220", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 220, + "docs": [] + }, + { + "name": "Mortal221", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 221, + "docs": [] + }, + { + "name": "Mortal222", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 222, + "docs": [] + }, + { + "name": "Mortal223", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 223, + "docs": [] + }, + { + "name": "Mortal224", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 224, + "docs": [] + }, + { + "name": "Mortal225", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 225, + "docs": [] + }, + { + "name": "Mortal226", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 226, + "docs": [] + }, + { + "name": "Mortal227", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 227, + "docs": [] + }, + { + "name": "Mortal228", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 228, + "docs": [] + }, + { + "name": "Mortal229", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 229, + "docs": [] + }, + { + "name": "Mortal230", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 230, + "docs": [] + }, + { + "name": "Mortal231", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 231, + "docs": [] + }, + { + "name": "Mortal232", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 232, + "docs": [] + }, + { + "name": "Mortal233", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 233, + "docs": [] + }, + { + "name": "Mortal234", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 234, + "docs": [] + }, + { + "name": "Mortal235", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 235, + "docs": [] + }, + { + "name": "Mortal236", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 236, + "docs": [] + }, + { + "name": "Mortal237", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 237, + "docs": [] + }, + { + "name": "Mortal238", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 238, + "docs": [] + }, + { + "name": "Mortal239", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 239, + "docs": [] + }, + { + "name": "Mortal240", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 240, + "docs": [] + }, + { + "name": "Mortal241", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 241, + "docs": [] + }, + { + "name": "Mortal242", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 242, + "docs": [] + }, + { + "name": "Mortal243", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 243, + "docs": [] + }, + { + "name": "Mortal244", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 244, + "docs": [] + }, + { + "name": "Mortal245", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 245, + "docs": [] + }, + { + "name": "Mortal246", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 246, + "docs": [] + }, + { + "name": "Mortal247", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 247, + "docs": [] + }, + { + "name": "Mortal248", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 248, + "docs": [] + }, + { + "name": "Mortal249", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 249, + "docs": [] + }, + { + "name": "Mortal250", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 250, + "docs": [] + }, + { + "name": "Mortal251", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 251, + "docs": [] + }, + { + "name": "Mortal252", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 252, + "docs": [] + }, + { + "name": "Mortal253", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 253, + "docs": [] + }, + { + "name": "Mortal254", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 254, + "docs": [] + }, + { + "name": "Mortal255", + "fields": [ + { + "name": null, + "type": 2, + "typeName": null, + "docs": [] + } + ], + "index": 255, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 493, + "type": { + "path": [ + "frame_system", + "extensions", + "check_nonce", + "CheckNonce" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 156, + "typeName": "T::Nonce", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 494, + "type": { + "path": [ + "frame_metadata_hash_extension", + "CheckMetadataHash" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "mode", + "type": 495, + "typeName": "Mode", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 495, + "type": { + "path": [ + "frame_metadata_hash_extension", + "Mode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Disabled", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Enabled", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 496, + "type": { + "path": [ + "sp_runtime", + "traits", + "BlakeTwo256" + ], + "params": [], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 497, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Tally" + ], + "params": [ + { + "name": "Votes", + "type": 6 + }, + { + "name": "Total", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Votes", + "docs": [] + }, + { + "name": "support", + "type": 6, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 498, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Stored", + "fields": [ + { + "name": "sender", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "content_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Stored data off chain." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 499, + "type": { + "path": [ + "pallet_root_testing", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DefensiveTestCall", + "fields": [], + "index": 0, + "docs": [ + "Event dispatched when the trigger_defensive extrinsic is called." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 500, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "An account has delegated their vote to another account. \\[who, target\\]" + ] + }, + { + "name": "Undelegated", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [ + "An \\[account\\] has cancelled a previous delegation operation." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 396, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An account has voted" + ] + }, + { + "name": "VoteRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "vote", + "type": 396, + "typeName": "AccountVote>", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A vote has been removed" + ] + }, + { + "name": "VoteUnlocked", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "class", + "type": 100, + "typeName": "ClassOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The lockup period of a conviction vote expired, and the funds have been unlocked." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 501, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallWhitelisted", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "WhitelistedCallRemoved", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "WhitelistedCallDispatched", + "fields": [ + { + "name": "call_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 502, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 502, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 503 + }, + { + "name": "E", + "type": 505 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 503, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 505, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 503, + "type": { + "path": [ + "frame_support", + "dispatch", + "PostDispatchInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "actual_weight", + "type": 504, + "typeName": "Option", + "docs": [] + }, + { + "name": "pays_fee", + "type": 25, + "typeName": "Pays", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 504, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 10 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 10, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 505, + "type": { + "path": [ + "sp_runtime", + "DispatchErrorWithPostInfo" + ], + "params": [ + { + "name": "Info", + "type": 503 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "post_info", + "type": 503, + "typeName": "Info", + "docs": [] + }, + { + "name": "error", + "type": 26, + "typeName": "DispatchError", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 506, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A motion (given hash) has been proposed (by given account) with a threshold (given", + "`MemberCount`)." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "voted", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A motion (given hash) has been voted on by given account, leaving", + "a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A motion was executed; result will be `Ok` if it returned without error." + ] + }, + { + "name": "MemberExecuted", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A single member did some action; result will be `Ok` if it returned without error." + ] + }, + { + "name": "Closed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "yes", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "no", + "type": 4, + "typeName": "MemberCount", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A proposal was closed because its threshold was reached or after its duration was up." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A proposal was killed." + ] + }, + { + "name": "ProposalCostBurned", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 8, + "docs": [ + "Some cost for storing a proposal was burned." + ] + }, + { + "name": "ProposalCostReleased", + "fields": [ + { + "name": "proposal_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Some cost for storing a proposal was released." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 507, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewRuleSet", + "fields": [ + { + "name": "rule", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new rule has been set." + ] + }, + { + "name": "Announced", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A new announcement has been proposed." + ] + }, + { + "name": "AnnouncementRemoved", + "fields": [ + { + "name": "announcement", + "type": 403, + "typeName": "Cid", + "docs": [] + } + ], + "index": 2, + "docs": [ + "An on-chain announcement has been removed." + ] + }, + { + "name": "MembersInitialized", + "fields": [ + { + "name": "fellows", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "allies", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Some accounts have been initialized as members (fellows/allies)." + ] + }, + { + "name": "NewAllyJoined", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 236, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account has been added as an Ally and reserved its deposit." + ] + }, + { + "name": "AllyElevated", + "fields": [ + { + "name": "ally", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An ally has been elevated to Fellow." + ] + }, + { + "name": "MemberRetirementPeriodStarted", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [ + "A member gave retirement notice and their retirement period started." + ] + }, + { + "name": "MemberRetired", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "unreserved", + "type": 236, + "typeName": "Option>", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has retired with its deposit unreserved." + ] + }, + { + "name": "MemberKicked", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "slashed", + "type": 236, + "typeName": "Option>", + "docs": [] + } + ], + "index": 8, + "docs": [ + "A member has been kicked out with its deposit slashed." + ] + }, + { + "name": "UnscrupulousItemAdded", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 9, + "docs": [ + "Accounts or websites have been added into the list of unscrupulous items." + ] + }, + { + "name": "UnscrupulousItemRemoved", + "fields": [ + { + "name": "items", + "type": 407, + "typeName": "Vec>", + "docs": [] + } + ], + "index": 10, + "docs": [ + "Accounts or websites have been removed from the list of unscrupulous items." + ] + }, + { + "name": "AllianceDisbanded", + "fields": [ + { + "name": "fellow_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "ally_members", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "unreserved", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 11, + "docs": [ + "Alliance disbanded. Includes number deleted members and unreserved deposits." + ] + }, + { + "name": "FellowAbdicated", + "fields": [ + { + "name": "fellow", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A Fellow abdicated their voting rights. They are now an Ally." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 508, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Created", + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A pool has been created." + ] + }, + { + "name": "Bonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "bonded", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "joined", + "type": 8, + "typeName": "bool", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A member has became bonded in a pool." + ] + }, + { + "name": "PaidOut", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A payout has been made to a member." + ] + }, + { + "name": "Unbonded", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A member has unbonded from their pool.", + "", + "- `balance` is the corresponding balance of the number of points that has been", + " requested to be unbonded (the argument of the `unbond` transaction) from the bonded", + " pool.", + "- `points` is the number of points that are issued as a result of `balance` being", + "dissolved into the corresponding unbonding pool.", + "- `era` is the era in which the balance will be unbonded.", + "In the absence of slashing, these values will match. In the presence of slashing, the", + "number of points that are issued in the unbonding pool will be less than the amount", + "requested to be unbonded." + ] + }, + { + "name": "Withdrawn", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "A member has withdrawn from their pool.", + "", + "The given number of `points` have been dissolved in return of `balance`.", + "", + "Similar to `Unbonded` event, in the absence of slashing, the ratio of point to balance", + "will be 1." + ] + }, + { + "name": "Destroyed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + } + ], + "index": 5, + "docs": [ + "A pool has been destroyed." + ] + }, + { + "name": "StateChanged", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "new_state", + "type": 412, + "typeName": "PoolState", + "docs": [] + } + ], + "index": 6, + "docs": [ + "The state of a pool has changed" + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "released_balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 7, + "docs": [ + "A member has been removed from a pool.", + "", + "The removal can be voluntary (withdrawn all unbonded funds) or involuntary (kicked).", + "Any funds that are still delegated (i.e. dangling delegation) are released and are", + "represented by `released_balance`." + ] + }, + { + "name": "RolesUpdated", + "fields": [ + { + "name": "root", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + } + ], + "index": 8, + "docs": [ + "The roles of a pool have been updated to the given new roles. Note that the depositor", + "can never change." + ] + }, + { + "name": "PoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 9, + "docs": [ + "The active balance of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "UnbondingPoolSlashed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "era", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 10, + "docs": [ + "The unbond pool at `era` of pool `pool_id` has been slashed to `balance`." + ] + }, + { + "name": "PoolCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "current", + "type": 418, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + } + ], + "index": 11, + "docs": [ + "A pool's commission setting has been changed." + ] + }, + { + "name": "PoolMaxCommissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "max_commission", + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ], + "index": 12, + "docs": [ + "A pool's maximum commission setting has been changed." + ] + }, + { + "name": "PoolCommissionChangeRateUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "change_rate", + "type": 420, + "typeName": "CommissionChangeRate>", + "docs": [] + } + ], + "index": 13, + "docs": [ + "A pool's commission `change_rate` has been changed." + ] + }, + { + "name": "PoolCommissionClaimPermissionUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "permission", + "type": 421, + "typeName": "Option>", + "docs": [] + } + ], + "index": 14, + "docs": [ + "Pool commission claim permission has been updated." + ] + }, + { + "name": "PoolCommissionClaimed", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "commission", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 15, + "docs": [ + "Pool commission has been claimed." + ] + }, + { + "name": "MinBalanceDeficitAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 16, + "docs": [ + "Topped up deficit in frozen ED of the reward pool." + ] + }, + { + "name": "MinBalanceExcessAdjusted", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 17, + "docs": [ + "Claimed excess frozen ED of af the reward pool." + ] + }, + { + "name": "MemberClaimPermissionUpdated", + "fields": [ + { + "name": "member", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "permission", + "type": 417, + "typeName": "ClaimPermission", + "docs": [] + } + ], + "index": 18, + "docs": [ + "A pool member's claim permission has been updated." + ] + }, + { + "name": "MetadataUpdated", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 19, + "docs": [ + "A pool's metadata was updated." + ] + }, + { + "name": "PoolNominationMade", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 20, + "docs": [ + "A pool's nominating account (or the pool's root account) has nominated a validator set", + "on behalf of the pool." + ] + }, + { + "name": "PoolNominatorChilled", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 21, + "docs": [ + "The pool is chilled i.e. no longer nominating." + ] + }, + { + "name": "GlobalParamsUpdated", + "fields": [ + { + "name": "min_join_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "min_create_bond", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "max_pools", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_members_per_pool", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "global_max_commission", + "type": 509, + "typeName": "Option", + "docs": [] + } + ], + "index": 22, + "docs": [ + "Global parameters regulating nomination pools have been updated." + ] + } + ] + } + }, + "docs": [ + "Events of this pallet." + ] + } + }, + { + "id": 509, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 49 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 49, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 510, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Submitted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + } + ], + "index": 0, + "docs": [ + "A referendum has been submitted." + ] + }, + { + "name": "DecisionDepositPlaced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 1, + "docs": [ + "The decision deposit has been placed." + ] + }, + { + "name": "DecisionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 2, + "docs": [ + "The decision deposit has been refunded." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 3, + "docs": [ + "A deposit has been slashed." + ] + }, + { + "name": "DecisionStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "track", + "type": 100, + "typeName": "TrackIdOf", + "docs": [ + "The track (and by extension proposal dispatch origin) of this referendum." + ] + }, + { + "name": "proposal", + "type": 140, + "typeName": "BoundedCallOf", + "docs": [ + "The proposal for the referendum." + ] + }, + { + "name": "tally", + "type": 511, + "typeName": "T::Tally", + "docs": [ + "The current tally of votes in this referendum." + ] + } + ], + "index": 4, + "docs": [ + "A referendum has moved into the deciding phase." + ] + }, + { + "name": "ConfirmStarted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ConfirmAborted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "Confirmed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 511, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 7, + "docs": [ + "A referendum has ended its confirmation phase and is ready for approval." + ] + }, + { + "name": "Approved", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + } + ], + "index": 8, + "docs": [ + "A referendum has been approved and its proposal has been scheduled." + ] + }, + { + "name": "Rejected", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 511, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 9, + "docs": [ + "A proposal has been rejected by referendum." + ] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 511, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 10, + "docs": [ + "A referendum has been timed out without being decided." + ] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 511, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 11, + "docs": [ + "A referendum has been cancelled." + ] + }, + { + "name": "Killed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "tally", + "type": 511, + "typeName": "T::Tally", + "docs": [ + "The final tally of votes in this referendum." + ] + } + ], + "index": 12, + "docs": [ + "A referendum has been killed." + ] + }, + { + "name": "SubmissionDepositRefunded", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account who placed the deposit." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount placed by the account." + ] + } + ], + "index": 13, + "docs": [ + "The submission deposit has been refunded." + ] + }, + { + "name": "MetadataSet", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 14, + "docs": [ + "Metadata for a referendum has been set." + ] + }, + { + "name": "MetadataCleared", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ReferendumIndex", + "docs": [ + "Index of the referendum." + ] + }, + { + "name": "hash", + "type": 13, + "typeName": "T::Hash", + "docs": [ + "Preimage hash." + ] + } + ], + "index": 15, + "docs": [ + "Metadata for a referendum has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 511, + "type": { + "path": [ + "pallet_ranked_collective", + "Tally" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + }, + { + "name": "M", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "bare_ayes", + "type": 4, + "typeName": "MemberIndex", + "docs": [] + }, + { + "name": "ayes", + "type": 4, + "typeName": "Votes", + "docs": [] + }, + { + "name": "nays", + "type": 4, + "typeName": "Votes", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 512, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MemberAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A member `who` has been added." + ] + }, + { + "name": "RankChanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 100, + "typeName": "Rank", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The member `who`se rank has been changed to the given `rank`." + ] + }, + { + "name": "MemberRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "rank", + "type": 100, + "typeName": "Rank", + "docs": [] + } + ], + "index": 2, + "docs": [ + "The member `who` of given `rank` has been removed from the collective." + ] + }, + { + "name": "Voted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "poll", + "type": 4, + "typeName": "PollIndexOf", + "docs": [] + }, + { + "name": "vote", + "type": 513, + "typeName": "VoteRecord", + "docs": [] + }, + { + "name": "tally", + "type": 511, + "typeName": "TallyOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "The member `who` has voted for the `poll` with the given `vote` leading to an updated", + "`tally`." + ] + }, + { + "name": "MemberExchanged", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "new_who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + } + ], + "index": 4, + "docs": [ + "The member `who` had their `AccountId` changed to `new_who`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 513, + "type": { + "path": [ + "pallet_ranked_collective", + "VoteRecord" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Aye", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Nay", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Votes", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 514, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 515, + "typeName": "T::PoolId", + "docs": [ + "The pool id associated with the pool. Note that the order of the assets may not be", + "the same as the order specified in the create pool extrinsic." + ] + }, + { + "name": "pool_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account ID of the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the liquidity tokens that will be minted when assets are added to this", + "pool." + ] + } + ], + "index": 0, + "docs": [ + "A successful call of the `CreatePool` extrinsic will create this event." + ] + }, + { + "name": "LiquidityAdded", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity was taken from." + ] + }, + { + "name": "mint_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were minted to." + ] + }, + { + "name": "pool_id", + "type": 515, + "typeName": "T::PoolId", + "docs": [ + "The pool id of the pool that the liquidity was added to." + ] + }, + { + "name": "amount1_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was added to the pool." + ] + }, + { + "name": "amount2_provided", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was added to the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was minted." + ] + }, + { + "name": "lp_token_minted", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were minted of that id." + ] + } + ], + "index": 1, + "docs": [ + "A successful call of the `AddLiquidity` extrinsic will create this event." + ] + }, + { + "name": "LiquidityRemoved", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the liquidity tokens were burned from." + ] + }, + { + "name": "withdraw_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "pool_id", + "type": 515, + "typeName": "T::PoolId", + "docs": [ + "The pool id that the liquidity was removed from." + ] + }, + { + "name": "amount1", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was removed from the pool." + ] + }, + { + "name": "amount2", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was removed from the pool." + ] + }, + { + "name": "lp_token", + "type": 4, + "typeName": "T::PoolAssetId", + "docs": [ + "The id of the lp token that was burned." + ] + }, + { + "name": "lp_token_burned", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of lp tokens that were burned of that id." + ] + }, + { + "name": "withdrawal_fee", + "type": 516, + "typeName": "Permill", + "docs": [ + "Liquidity withdrawal fee (%)." + ] + } + ], + "index": 2, + "docs": [ + "A successful call of the `RemoveLiquidity` extrinsic will create this event." + ] + }, + { + "name": "SwapExecuted", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Which account was the instigator of the swap." + ] + }, + { + "name": "send_to", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that the assets were transferred to." + ] + }, + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 517, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 3, + "docs": [ + "Assets have been converted from one to another. Both `SwapExactTokenForToken`", + "and `SwapTokenForExactToken` will generate this event." + ] + }, + { + "name": "SwapCreditExecuted", + "fields": [ + { + "name": "amount_in", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the first asset that was swapped." + ] + }, + { + "name": "amount_out", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of the second asset that was received." + ] + }, + { + "name": "path", + "type": 517, + "typeName": "BalancePath", + "docs": [ + "The route of asset IDs with amounts that the swap went through.", + "E.g. (A, amount_in) -> (Dot, amount_out) -> (B, amount_out)" + ] + } + ], + "index": 4, + "docs": [ + "Assets have been converted from one to another." + ] + }, + { + "name": "Touched", + "fields": [ + { + "name": "pool_id", + "type": 515, + "typeName": "T::PoolId", + "docs": [ + "The ID of the pool." + ] + }, + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account initiating the touch." + ] + } + ], + "index": 5, + "docs": [ + "Pool has been touched in order to fulfill operational requirements." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 515, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 40, + 40 + ] + }, + "docs": [] + } + }, + { + "id": 516, + "type": { + "path": [ + "sp_arithmetic", + "per_things", + "Permill" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 517, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 518 + } + }, + "docs": [] + } + }, + { + "id": 518, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 40, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 519, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unstaked", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "result", + "type": 33, + "typeName": "DispatchResult", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A staker was unstaked." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "A staker was slashed for requesting fast-unstake whilst being exposed." + ] + }, + { + "name": "BatchChecked", + "fields": [ + { + "name": "eras", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ], + "index": 2, + "docs": [ + "A batch was partially checked for the given eras, but the process did not finish." + ] + }, + { + "name": "BatchFinished", + "fields": [ + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 3, + "docs": [ + "A batch of a given size was terminated.", + "", + "This is always follows by a number of `Unstaked` or `Slashed` events, marking the end", + "of the batch. A new batch will be created upon next block." + ] + }, + { + "name": "InternalError", + "fields": [], + "index": 4, + "docs": [ + "An internal error happened. Operations will be paused now." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 520, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProcessingFailed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "error", + "type": 521, + "typeName": "ProcessMessageError", + "docs": [ + "The error that occurred.", + "", + "This error is pretty opaque. More fine-grained errors need to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 0, + "docs": [ + "Message discarded due to an error in the `MessageProcessor` (usually a format error)." + ] + }, + { + "name": "Processed", + "fields": [ + { + "name": "id", + "type": 13, + "typeName": "H256", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "weight_used", + "type": 10, + "typeName": "Weight", + "docs": [ + "How much weight was used to process the message." + ] + }, + { + "name": "success", + "type": 8, + "typeName": "bool", + "docs": [ + "Whether the message was processed.", + "", + "Note that this does not mean that the underlying `MessageProcessor` was internally", + "successful. It *solely* means that the MQ pallet will treat this as a success", + "condition and discard the message. Any internal error needs to be emitted as events", + "by the `MessageProcessor`." + ] + } + ], + "index": 1, + "docs": [ + "Message is processed." + ] + }, + { + "name": "OverweightEnqueued", + "fields": [ + { + "name": "id", + "type": 1, + "typeName": "[u8; 32]", + "docs": [ + "The `blake2_256` hash of the message." + ] + }, + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the message." + ] + }, + { + "name": "page_index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The page of the message." + ] + }, + { + "name": "message_index", + "type": 4, + "typeName": "T::Size", + "docs": [ + "The index of the message within the page." + ] + } + ], + "index": 2, + "docs": [ + "Message placed in overweight queue." + ] + }, + { + "name": "PageReaped", + "fields": [ + { + "name": "origin", + "type": 4, + "typeName": "MessageOriginOf", + "docs": [ + "The queue of the page." + ] + }, + { + "name": "index", + "type": 4, + "typeName": "PageIndex", + "docs": [ + "The index of the page." + ] + } + ], + "index": 3, + "docs": [ + "This page was reaped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 521, + "type": { + "path": [ + "frame_support", + "traits", + "messages", + "ProcessMessageError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadFormat", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Corrupt", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Unsupported", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Overweight", + "fields": [ + { + "name": null, + "type": 10, + "typeName": "Weight", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Yield", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "StackLimitReached", + "fields": [], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 522, + "type": { + "path": [ + "frame_benchmarking_pallet_pov", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TestEvent", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 523, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "CallPaused", + "fields": [ + { + "name": "full_name", + "type": 431, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "This pallet, or a specific call is now paused." + ] + }, + { + "name": "CallUnpaused", + "fields": [ + { + "name": "full_name", + "type": 431, + "typeName": "RuntimeCallNameOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "This pallet, or a specific call is now unpaused." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 524, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Entered", + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 0, + "docs": [ + "The safe-mode was entered until inclusively this block." + ] + }, + { + "name": "Extended", + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [] + } + ], + "index": 1, + "docs": [ + "The safe-mode was extended until inclusively this block." + ] + }, + { + "name": "Exited", + "fields": [ + { + "name": "reason", + "type": 525, + "typeName": "ExitReason", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Exited the safe-mode for a specific reason." + ] + }, + { + "name": "DepositPlaced", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "An account reserved funds for either entering or extending the safe-mode." + ] + }, + { + "name": "DepositReleased", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 4, + "docs": [ + "An account had a reserve released that was reserved." + ] + }, + { + "name": "DepositSlashed", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 5, + "docs": [ + "An account had reserve slashed that was reserved." + ] + }, + { + "name": "CannotDeposit", + "fields": [], + "index": 6, + "docs": [ + "Could not hold funds for entering or extending the safe-mode.", + "", + "This error comes from the underlying `Currency`." + ] + }, + { + "name": "CannotRelease", + "fields": [], + "index": 7, + "docs": [ + "Could not release funds for entering or extending the safe-mode.", + "", + "This error comes from the underlying `Currency`." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 525, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "ExitReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Timeout", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Force", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 526, + "type": { + "path": [ + "pallet_statement", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NewStatement", + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "statement", + "type": 527, + "typeName": "Statement", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A new statement is submitted" + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 527, + "type": { + "path": [ + "sp_statement_store", + "Statement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "proof", + "type": 528, + "typeName": "Option", + "docs": [] + }, + { + "name": "decryption_key", + "type": 94, + "typeName": "Option", + "docs": [] + }, + { + "name": "channel", + "type": 94, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "num_topics", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "topics", + "type": 530, + "typeName": "[Topic; MAX_TOPICS]", + "docs": [] + }, + { + "name": "data", + "type": 441, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 528, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 529 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 529, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 529, + "type": { + "path": [ + "sp_statement_store", + "Proof" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Sr25519", + "fields": [ + { + "name": "signature", + "type": 261, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "signer", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Ed25519", + "fields": [ + { + "name": "signature", + "type": 261, + "typeName": "[u8; 64]", + "docs": [] + }, + { + "name": "signer", + "type": 1, + "typeName": "[u8; 32]", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Secp256k1Ecdsa", + "fields": [ + { + "name": "signature", + "type": 316, + "typeName": "[u8; 65]", + "docs": [] + }, + { + "name": "signer", + "type": 246, + "typeName": "[u8; 33]", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "OnChain", + "fields": [ + { + "name": "who", + "type": 1, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "block_hash", + "type": 1, + "typeName": "BlockHash", + "docs": [] + }, + { + "name": "event_index", + "type": 12, + "typeName": "u64", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 530, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 531, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UpgradeStarted", + "fields": [ + { + "name": "migrations", + "type": 4, + "typeName": "u32", + "docs": [ + "The number of migrations that this upgrade contains.", + "", + "This can be used to design a progress indicator in combination with counting the", + "`MigrationCompleted` and `MigrationSkipped` events." + ] + } + ], + "index": 0, + "docs": [ + "A Runtime upgrade started.", + "", + "Its end is indicated by `UpgradeCompleted` or `UpgradeFailed`." + ] + }, + { + "name": "UpgradeCompleted", + "fields": [], + "index": 1, + "docs": [ + "The current runtime upgrade completed.", + "", + "This implies that all of its migrations completed successfully as well." + ] + }, + { + "name": "UpgradeFailed", + "fields": [], + "index": 2, + "docs": [ + "Runtime upgrade failed.", + "", + "This is very bad and will require governance intervention." + ] + }, + { + "name": "MigrationSkipped", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the skipped migration within the [`Config::Migrations`] list." + ] + } + ], + "index": 3, + "docs": [ + "A migration was skipped since it was already executed in the past." + ] + }, + { + "name": "MigrationAdvanced", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 4, + "docs": [ + "A migration progressed." + ] + }, + { + "name": "MigrationCompleted", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 5, + "docs": [ + "A Migration completed." + ] + }, + { + "name": "MigrationFailed", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the migration within the [`Config::Migrations`] list." + ] + }, + { + "name": "took", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The number of blocks that this migration took so far." + ] + } + ], + "index": 6, + "docs": [ + "A Migration failed.", + "", + "This implies that the whole upgrade failed and governance intervention is required." + ] + }, + { + "name": "HistoricCleared", + "fields": [ + { + "name": "next_cursor", + "type": 441, + "typeName": "Option>", + "docs": [ + "Should be passed to `clear_historic` in a successive call." + ] + } + ], + "index": 7, + "docs": [ + "The set of historical migrations has been cleared." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 532, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Purchased", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The identity of the purchaser." + ] + }, + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The identity of the Region." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price paid for this Region." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 0, + "docs": [ + "A Region of Bulk Coretime has been purchased." + ] + }, + { + "name": "Renewable", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The core whose workload can be renewed." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price at which the workload can be renewed." + ] + }, + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The time at which the workload would recommence of this renewal. The call to renew", + "cannot happen before the beginning of the interlude prior to the sale for regions", + "which begin at this time." + ] + }, + { + "name": "workload", + "type": 444, + "typeName": "Schedule", + "docs": [ + "The actual workload which can be renewed." + ] + } + ], + "index": 1, + "docs": [ + "The workload of a core has become renewable." + ] + }, + { + "name": "Renewed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The identity of the renewer." + ] + }, + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price paid for this renewal." + ] + }, + { + "name": "old_core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The index of the core on which the `workload` was previously scheduled." + ] + }, + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The index of the core on which the renewed `workload` has been scheduled." + ] + }, + { + "name": "begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The time at which the `workload` will begin on the `core`." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The number of timeslices for which this `workload` is newly scheduled." + ] + }, + { + "name": "workload", + "type": 444, + "typeName": "Schedule", + "docs": [ + "The workload which was renewed." + ] + } + ], + "index": 2, + "docs": [ + "A workload has been renewed." + ] + }, + { + "name": "Transferred", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which has been transferred." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + }, + { + "name": "old_owner", + "type": 43, + "typeName": "Option", + "docs": [ + "The old owner of the Region." + ] + }, + { + "name": "owner", + "type": 43, + "typeName": "Option", + "docs": [ + "The new owner of the Region." + ] + } + ], + "index": 3, + "docs": [ + "Ownership of a Region has been transferred." + ] + }, + { + "name": "Partitioned", + "fields": [ + { + "name": "old_region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which was split." + ] + }, + { + "name": "new_region_ids", + "type": 533, + "typeName": "(RegionId, RegionId)", + "docs": [ + "The new Regions into which it became." + ] + } + ], + "index": 4, + "docs": [ + "A Region has been split into two non-overlapping Regions." + ] + }, + { + "name": "Interlaced", + "fields": [ + { + "name": "old_region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which was interlaced." + ] + }, + { + "name": "new_region_ids", + "type": 533, + "typeName": "(RegionId, RegionId)", + "docs": [ + "The new Regions into which it became." + ] + } + ], + "index": 5, + "docs": [ + "A Region has been converted into two overlapping Regions each of lesser regularity." + ] + }, + { + "name": "Assigned", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which was assigned." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the assignment." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which the Region was assigned." + ] + } + ], + "index": 6, + "docs": [ + "A Region has been assigned to a particular task." + ] + }, + { + "name": "AssignmentRemoved", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which was removed from the workplan." + ] + } + ], + "index": 7, + "docs": [ + "An assignment has been removed from the workplan." + ] + }, + { + "name": "Pooled", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which was added to the Instantaneous Coretime Pool." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 8, + "docs": [ + "A Region has been added to the Instantaneous Coretime Pool." + ] + }, + { + "name": "CoreCountRequested", + "fields": [ + { + "name": "core_count", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The number of cores requested." + ] + } + ], + "index": 9, + "docs": [ + "A new number of cores has been requested." + ] + }, + { + "name": "CoreCountChanged", + "fields": [ + { + "name": "core_count", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The new number of cores available for scheduling." + ] + } + ], + "index": 10, + "docs": [ + "The number of cores available for scheduling has changed." + ] + }, + { + "name": "ReservationMade", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the reservation." + ] + }, + { + "name": "workload", + "type": 444, + "typeName": "Schedule", + "docs": [ + "The workload of the reservation." + ] + } + ], + "index": 11, + "docs": [ + "There is a new reservation for a workload." + ] + }, + { + "name": "ReservationCancelled", + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [ + "The index of the reservation which was cancelled." + ] + }, + { + "name": "workload", + "type": 444, + "typeName": "Schedule", + "docs": [ + "The workload of the now cancelled reservation." + ] + } + ], + "index": 12, + "docs": [ + "A reservation for a workload has been cancelled." + ] + }, + { + "name": "SaleInitialized", + "fields": [ + { + "name": "sale_start", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The relay block number at which the sale will/did start." + ] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The length in relay chain blocks of the Leadin Period (where the price is", + "decreasing)." + ] + }, + { + "name": "start_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price of Bulk Coretime at the beginning of the Leadin Period." + ] + }, + { + "name": "end_price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The price of Bulk Coretime after the Leadin Period." + ] + }, + { + "name": "region_begin", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The first timeslice of the Regions which are being sold in this sale." + ] + }, + { + "name": "region_end", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice on which the Regions which are being sold in the sale terminate.", + "(i.e. One after the last timeslice which the Regions control.)" + ] + }, + { + "name": "ideal_cores_sold", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The number of cores we want to sell, ideally." + ] + }, + { + "name": "cores_offered", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "Number of cores which are/have been offered for sale." + ] + } + ], + "index": 13, + "docs": [ + "A new sale has been initialized." + ] + }, + { + "name": "Leased", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core will be assigned." + ] + }, + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice contained in the sale period after which this lease will", + "self-terminate (and therefore the earliest timeslice at which the lease may no", + "longer apply)." + ] + } + ], + "index": 14, + "docs": [ + "A new lease has been created." + ] + }, + { + "name": "LeaseRemoved", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core was assigned." + ] + } + ], + "index": 15, + "docs": [ + "A lease has been removed." + ] + }, + { + "name": "LeaseEnding", + "fields": [ + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task to which a core was assigned." + ] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice at which the task will no longer be scheduled." + ] + } + ], + "index": 16, + "docs": [ + "A lease is about to end." + ] + }, + { + "name": "SalesStarted", + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The nominal price of an Region of Bulk Coretime." + ] + }, + { + "name": "core_count", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The maximum number of cores which this pallet will attempt to assign." + ] + } + ], + "index": 17, + "docs": [ + "The sale rotation has been started and a new sale is imminent." + ] + }, + { + "name": "RevenueClaimBegun", + "fields": [ + { + "name": "region", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The region to be claimed for." + ] + }, + { + "name": "max_timeslices", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The maximum number of timeslices which should be searched for claimed." + ] + } + ], + "index": 18, + "docs": [ + "The act of claiming revenue has begun." + ] + }, + { + "name": "RevenueClaimItem", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose claim is being processed." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount which was claimed at this timeslice." + ] + } + ], + "index": 19, + "docs": [ + "A particular timeslice has a non-zero claim." + ] + }, + { + "name": "RevenueClaimPaid", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account to whom revenue has been paid." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The total amount of revenue claimed and paid." + ] + }, + { + "name": "next", + "type": 534, + "typeName": "Option", + "docs": [ + "The next region which should be claimed for the continuation of this contribution." + ] + } + ], + "index": 20, + "docs": [ + "A revenue claim has (possibly only in part) been paid." + ] + }, + { + "name": "CreditPurchased", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account which purchased the credit." + ] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "RelayAccountIdOf", + "docs": [ + "The Relay-chain account to which the credit will be made." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of credit purchased." + ] + } + ], + "index": 21, + "docs": [ + "Some Instantaneous Coretime Pool credit has been purchased." + ] + }, + { + "name": "RegionDropped", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region which no longer exists." + ] + }, + { + "name": "duration", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The duration of the Region." + ] + } + ], + "index": 22, + "docs": [ + "A Region has been dropped due to being out of date." + ] + }, + { + "name": "ContributionDropped", + "fields": [ + { + "name": "region_id", + "type": 449, + "typeName": "RegionId", + "docs": [ + "The Region whose contribution is no longer exists." + ] + } + ], + "index": 23, + "docs": [ + "Some historical Instantaneous Core Pool contribution record has been dropped." + ] + }, + { + "name": "HistoryInitialized", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history has been initialized." + ] + }, + { + "name": "private_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [ + "The amount of privately contributed Coretime to the Instantaneous Coretime Pool." + ] + }, + { + "name": "system_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [ + "The amount of Coretime contributed to the Instantaneous Coretime Pool by the", + "Pezkuwi System." + ] + } + ], + "index": 24, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been initialized." + ] + }, + { + "name": "HistoryDropped", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is no longer available." + ] + }, + { + "name": "revenue", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue the system has taken." + ] + } + ], + "index": 25, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been dropped." + ] + }, + { + "name": "HistoryIgnored", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is was ignored." + ] + }, + { + "name": "revenue", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue which was ignored." + ] + } + ], + "index": 26, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been ignored because the", + "timeslice was already known. Governance may need to intervene." + ] + }, + { + "name": "ClaimsReady", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose history is available." + ] + }, + { + "name": "system_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The amount of revenue the Pezkuwi System has already taken." + ] + }, + { + "name": "private_payout", + "type": 6, + "typeName": "BalanceOf", + "docs": [ + "The total amount of revenue remaining to be claimed." + ] + } + ], + "index": 27, + "docs": [ + "Some historical Instantaneous Core Pool Revenue is ready for payout claims." + ] + }, + { + "name": "CoreAssigned", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The index of the Core which has been assigned." + ] + }, + { + "name": "when", + "type": 4, + "typeName": "RelayBlockNumberOf", + "docs": [ + "The Relay-chain block at which this assignment should take effect." + ] + }, + { + "name": "assignment", + "type": 535, + "typeName": "Vec<(CoreAssignment, PartsOf57600)>", + "docs": [ + "The workload to be done on the Core." + ] + } + ], + "index": 28, + "docs": [ + "A Core has been assigned to one or more tasks and/or the Pool on the Relay-chain." + ] + }, + { + "name": "PotentialRenewalDropped", + "fields": [ + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [ + "The timeslice whose renewal is no longer available." + ] + }, + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The core whose workload is no longer available to be renewed for `when`." + ] + } + ], + "index": 29, + "docs": [ + "Some historical Instantaneous Core Pool payment record has been dropped." + ] + }, + { + "name": "AutoRenewalEnabled", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The core for which the renewal was enabled." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task for which the renewal was enabled." + ] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "AutoRenewalDisabled", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The core for which the renewal was disabled." + ] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [ + "The task for which the renewal was disabled." + ] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "AutoRenewalFailed", + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [ + "The core for which the renewal failed." + ] + }, + { + "name": "payer", + "type": 43, + "typeName": "Option", + "docs": [ + "The account which was supposed to pay for renewal.", + "", + "If `None` it indicates that we failed to get the sovereign account of a task." + ] + } + ], + "index": 32, + "docs": [ + "Failed to auto-renew a core, likely due to the payer account not being sufficiently", + "funded." + ] + }, + { + "name": "AutoRenewalLimitReached", + "fields": [], + "index": 33, + "docs": [ + "The auto-renewal limit has been reached upon renewing cores.", + "", + "This should never happen, given that enable_auto_renew checks for this before enabling", + "auto-renewal." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 533, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 449, + 449 + ] + }, + "docs": [] + } + }, + { + "id": 534, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 449 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 449, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 535, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 536 + } + }, + "docs": [] + } + }, + { + "id": 536, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 447, + 100 + ] + }, + "docs": [] + } + }, + { + "id": 537, + "type": { + "path": [ + "pallet_parameters", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Updated", + "fields": [ + { + "name": "key", + "type": 538, + "typeName": "::Key", + "docs": [ + "The key that was updated." + ] + }, + { + "name": "old_value", + "type": 541, + "typeName": "Option<::Value>", + "docs": [ + "The old value before this call." + ] + }, + { + "name": "new_value", + "type": 541, + "typeName": "Option<::Value>", + "docs": [ + "The new value after this call." + ] + } + ], + "index": 0, + "docs": [ + "A Parameter was set.", + "", + "Is also emitted when the value was not changed." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 538, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 539, + "typeName": "::Key", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 540, + "typeName": "::Key", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 539, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 461, + "typeName": "BaseDeposit", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 462, + "typeName": "ByteDeposit", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 540, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "ParametersKey" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Tracks", + "fields": [ + { + "name": null, + "type": 464, + "typeName": "Tracks", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 473, + "typeName": "Origins", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 541, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 542 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 542, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 542, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Storage", + "fields": [ + { + "name": null, + "type": 543, + "typeName": "::Value", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 544, + "typeName": "::Value", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 543, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "storage", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BaseDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "ByteDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 544, + "type": { + "path": [ + "kitchensink_runtime", + "dynamic_params", + "referenda", + "ParametersValue" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Tracks", + "fields": [ + { + "name": null, + "type": 466, + "typeName": "BoundedVec,\nConstU32<100>,>", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Origins", + "fields": [ + { + "name": null, + "type": 475, + "typeName": "BoundedVec<(OriginCaller, u16), ConstU32<100>>", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 545, + "type": { + "path": [ + "pallet_skip_feeless_payment", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FeeSkipped", + "fields": [ + { + "name": "origin", + "type": 148, + "typeName": "::PalletsOrigin", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A transaction fee was skipped." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 546, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MigratedToNewAccount", + "fields": [ + { + "name": "pool_id", + "type": 515, + "typeName": "T::PoolId", + "docs": [ + "Pool's ID." + ] + }, + { + "name": "prior_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Pool's prior account ID." + ] + }, + { + "name": "new_account", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "Pool's new account ID." + ] + } + ], + "index": 0, + "docs": [ + "Indicates that a pool has been migrated to the new account ID." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 547, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ContractEmitted", + "fields": [ + { + "name": "contract", + "type": 480, + "typeName": "H160", + "docs": [ + "The contract that emitted the event." + ] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [ + "Data supplied by the contract. Metadata generated during contract compilation", + "is needed to decode it." + ] + }, + { + "name": "topics", + "type": 328, + "typeName": "Vec", + "docs": [ + "A list of topics used to index the event.", + "Number of topics is capped by [`limits::NUM_EVENT_TOPICS`]." + ] + } + ], + "index": 0, + "docs": [ + "A custom event emitted by the contract." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 548, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Delegated", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 0, + "docs": [ + "Funds delegated by a delegator." + ] + }, + { + "name": "Released", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 1, + "docs": [ + "Funds released to a delegator." + ] + }, + { + "name": "Slashed", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 2, + "docs": [ + "Funds slashed from a delegator." + ] + }, + { + "name": "MigratedDelegation", + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "delegator", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ], + "index": 3, + "docs": [ + "Unclaimed delegation funds migrated to delegator." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 549, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [ + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that staked assets." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The pool." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The staked asset amount." + ] + } + ], + "index": 0, + "docs": [ + "An account staked some tokens in a pool." + ] + }, + { + "name": "Unstaked", + "fields": [ + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that signed transaction." + ] + }, + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that unstaked assets." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The pool." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The unstaked asset amount." + ] + } + ], + "index": 1, + "docs": [ + "An account unstaked some tokens from a pool." + ] + }, + { + "name": "RewardsHarvested", + "fields": [ + { + "name": "caller", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that signed transaction." + ] + }, + { + "name": "staker", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The staker whos rewards were harvested." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The pool." + ] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The amount of harvested tokens." + ] + } + ], + "index": 2, + "docs": [ + "An account harvested some rewards." + ] + }, + { + "name": "PoolCreated", + "fields": [ + { + "name": "creator", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account that created the pool." + ] + }, + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The unique ID for the new pool." + ] + }, + { + "name": "staked_asset_id", + "type": 40, + "typeName": "T::AssetId", + "docs": [ + "The staking asset." + ] + }, + { + "name": "reward_asset_id", + "type": 40, + "typeName": "T::AssetId", + "docs": [ + "The reward asset." + ] + }, + { + "name": "reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The initial reward rate per block." + ] + }, + { + "name": "expiry_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The block the pool will cease to accumulate rewards." + ] + }, + { + "name": "admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The account allowed to modify the pool." + ] + } + ], + "index": 3, + "docs": [ + "A new reward pool was created." + ] + }, + { + "name": "PoolRewardRateModified", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The modified pool." + ] + }, + { + "name": "new_reward_rate_per_block", + "type": 6, + "typeName": "T::Balance", + "docs": [ + "The new reward rate per block." + ] + } + ], + "index": 4, + "docs": [ + "A pool reward rate was modified by the admin." + ] + }, + { + "name": "PoolAdminModified", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The modified pool." + ] + }, + { + "name": "new_admin", + "type": 0, + "typeName": "T::AccountId", + "docs": [ + "The new admin." + ] + } + ], + "index": 5, + "docs": [ + "A pool admin was modified." + ] + }, + { + "name": "PoolExpiryBlockModified", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The modified pool." + ] + }, + { + "name": "new_expiry_block", + "type": 4, + "typeName": "BlockNumberFor", + "docs": [ + "The new expiry block." + ] + } + ], + "index": 6, + "docs": [ + "A pool expiry block was modified by the admin." + ] + }, + { + "name": "PoolCleanedUp", + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [ + "The cleared pool." + ] + } + ], + "index": 7, + "docs": [ + "A pool information was cleared after it's completion." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 550, + "type": { + "path": [ + "pallet_assets_freezer", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Frozen", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Thawed", + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "asset_id", + "type": 4, + "typeName": "T::AssetId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "T::Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 551, + "type": { + "path": [ + "pallet_meta_tx", + "pallet", + "Event" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Dispatched", + "fields": [ + { + "name": "result", + "type": 502, + "typeName": "DispatchResultWithPostInfo", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A meta transaction has been dispatched.", + "", + "Contains the dispatch result of the meta transaction along with post-dispatch", + "information." + ] + } + ] + } + }, + "docs": [ + "The `Event` enum of this pallet" + ] + } + }, + { + "id": 552, + "type": { + "path": [ + "frame_system", + "Phase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "ApplyExtrinsic", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finalization", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Initialization", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 553, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 93 + } + }, + "docs": [] + } + }, + { + "id": 554, + "type": { + "path": [ + "frame_system", + "LastRuntimeUpgradeInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_version", + "type": 156, + "typeName": "codec::Compact", + "docs": [] + }, + { + "name": "spec_name", + "type": 555, + "typeName": "Cow<'static, str>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 555, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 556 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 556, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 556, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "Str" + }, + "docs": [] + } + }, + { + "id": 557, + "type": { + "path": [ + "frame_system", + "CodeUpgradeAuthorization" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "T::Hash", + "docs": [] + }, + { + "name": "check_version", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 558, + "type": { + "path": [ + "frame_system", + "limits", + "BlockWeights" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_block", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "per_class", + "type": 559, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 559, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 560 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 560, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 560, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 560, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 560, + "type": { + "path": [ + "frame_system", + "limits", + "WeightsPerClass" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "base_extrinsic", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "max_extrinsic", + "type": 504, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_total", + "type": 504, + "typeName": "Option", + "docs": [] + }, + { + "name": "reserved", + "type": 504, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 561, + "type": { + "path": [ + "frame_system", + "limits", + "BlockLength" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max", + "type": 562, + "typeName": "PerDispatchClass", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 562, + "type": { + "path": [ + "frame_support", + "dispatch", + "PerDispatchClass" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "normal", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "operational", + "type": 4, + "typeName": "T", + "docs": [] + }, + { + "name": "mandatory", + "type": 4, + "typeName": "T", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 563, + "type": { + "path": [ + "sp_weights", + "RuntimeDbWeight" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "read", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "write", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 564, + "type": { + "path": [ + "sp_version", + "RuntimeVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "spec_name", + "type": 555, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "impl_name", + "type": 555, + "typeName": "Cow<'static, str>", + "docs": [] + }, + { + "name": "authoring_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "spec_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "impl_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "apis", + "type": 565, + "typeName": "ApisVec", + "docs": [] + }, + { + "name": "transaction_version", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "system_version", + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 565, + "type": { + "path": [ + "Cow" + ], + "params": [ + { + "name": "T", + "type": 566 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 566, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 566, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 567 + } + }, + "docs": [] + } + }, + { + "id": 567, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 287, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 568, + "type": { + "path": [ + "frame_system", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSpecName", + "fields": [], + "index": 0, + "docs": [ + "The name of specification does not match between the current runtime", + "and the new runtime." + ] + }, + { + "name": "SpecVersionNeedsToIncrease", + "fields": [], + "index": 1, + "docs": [ + "The specification version is not allowed to decrease between the current runtime", + "and the new runtime." + ] + }, + { + "name": "FailedToExtractRuntimeVersion", + "fields": [], + "index": 2, + "docs": [ + "Failed to extract the runtime version from the new runtime.", + "", + "Either calling `Core_version` or decoding `RuntimeVersion` failed." + ] + }, + { + "name": "NonDefaultComposite", + "fields": [], + "index": 3, + "docs": [ + "Suicide called when the account has non-default composite data." + ] + }, + { + "name": "NonZeroRefCount", + "fields": [], + "index": 4, + "docs": [ + "There is a non-zero reference count preventing the account from being purged." + ] + }, + { + "name": "CallFiltered", + "fields": [], + "index": 5, + "docs": [ + "The origin filter prevent the call to be dispatched." + ] + }, + { + "name": "MultiBlockMigrationsOngoing", + "fields": [], + "index": 6, + "docs": [ + "A multi-block migration is ongoing and prevents the current code from being replaced." + ] + }, + { + "name": "NothingAuthorized", + "fields": [], + "index": 7, + "docs": [ + "No upgrade authorized." + ] + }, + { + "name": "Unauthorized", + "fields": [], + "index": 8, + "docs": [ + "The submitted code is not authorized." + ] + } + ] + } + }, + "docs": [ + "Error for the System pallet" + ] + } + }, + { + "id": 569, + "type": { + "path": [ + "sp_runtime", + "generic", + "block", + "Block" + ], + "params": [ + { + "name": "Header", + "type": 155 + }, + { + "name": "Extrinsic", + "type": 570 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "header", + "type": 155, + "typeName": "Header", + "docs": [] + }, + { + "name": "extrinsics", + "type": 577, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 570, + "type": { + "path": [ + "sp_runtime", + "generic", + "unchecked_extrinsic", + "UncheckedExtrinsic" + ], + "params": [ + { + "name": "Address", + "type": 165 + }, + { + "name": "Call", + "type": 141 + }, + { + "name": "Signature", + "type": 315 + }, + { + "name": "Extra", + "type": 571 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 571, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 572, + 487, + 488, + 489, + 490, + 491, + 493, + 573, + 574, + 494, + 576 + ] + }, + "docs": [] + } + }, + { + "id": 572, + "type": { + "path": [ + "frame_system", + "extensions", + "authorize_call", + "AuthorizeCall" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 573, + "type": { + "path": [ + "frame_system", + "extensions", + "check_weight", + "CheckWeight" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 574, + "type": { + "path": [ + "pallet_asset_conversion_tx_payment", + "ChargeAssetTxPayment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "tip", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "asset_id", + "type": 575, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 575, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 40 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 40, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 576, + "type": { + "path": [ + "frame_system", + "extensions", + "weight_reclaim", + "WeightReclaim" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 577, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 570 + } + }, + "docs": [] + } + }, + { + "id": 578, + "type": { + "path": [ + "pallet_utility", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyCalls", + "fields": [], + "index": 0, + "docs": [ + "Too many calls batched." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 579, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 580 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 581, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 580, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 157, + 12 + ] + }, + "docs": [] + } + }, + { + "id": 581, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 580 + } + }, + "docs": [] + } + }, + { + "id": 582, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 1 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 583, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 583, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1 + } + }, + "docs": [] + } + }, + { + "id": 584, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 585 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 585, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 585, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PreDigest" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Primary", + "fields": [ + { + "name": null, + "type": 586, + "typeName": "PrimaryPreDigest", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "SecondaryPlain", + "fields": [ + { + "name": null, + "type": 588, + "typeName": "SecondaryPlainPreDigest", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "SecondaryVRF", + "fields": [ + { + "name": null, + "type": 589, + "typeName": "SecondaryVRFPreDigest", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 586, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "PrimaryPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 158, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 587, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 587, + "type": { + "path": [ + "sp_core", + "sr25519", + "vrf", + "VrfSignature" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "pre_output", + "type": 1, + "typeName": "VrfPreOutput", + "docs": [] + }, + { + "name": "proof", + "type": 261, + "typeName": "VrfProof", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 588, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryPlainPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 158, + "typeName": "Slot", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 589, + "type": { + "path": [ + "sp_consensus_babe", + "digests", + "SecondaryVRFPreDigest" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "authority_index", + "type": 4, + "typeName": "super::AuthorityIndex", + "docs": [] + }, + { + "name": "slot", + "type": 158, + "typeName": "Slot", + "docs": [] + }, + { + "name": "vrf_signature", + "type": 587, + "typeName": "VrfSignature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 590, + "type": { + "path": [ + "sp_consensus_babe", + "BabeEpochConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "c", + "type": 161, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 162, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 591, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 592 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 593, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 592, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 12, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 593, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 592 + } + }, + "docs": [] + } + }, + { + "id": 594, + "type": { + "path": [ + "pallet_babe", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 0, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 1, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 2, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 3, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 595, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 6, + 8 + ] + }, + "docs": [] + } + }, + { + "id": 596, + "type": { + "path": [ + "pallet_indices", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAssigned", + "fields": [], + "index": 0, + "docs": [ + "The index was not already assigned." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The index is assigned to another account." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 2, + "docs": [ + "The index was not available." + ] + }, + { + "name": "NotTransfer", + "fields": [], + "index": 3, + "docs": [ + "The source and destination accounts are identical." + ] + }, + { + "name": "Permanent", + "fields": [], + "index": 4, + "docs": [ + "The index is permanent and may not be freed/changed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 597, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 598 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 600, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 598, + "type": { + "path": [ + "pallet_balances", + "types", + "BalanceLock" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 287, + "typeName": "LockIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reasons", + "type": 599, + "typeName": "Reasons", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 599, + "type": { + "path": [ + "pallet_balances", + "types", + "Reasons" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fee", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Misc", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "All", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 600, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 598 + } + }, + "docs": [] + } + }, + { + "id": 601, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 602 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 603, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 602, + "type": { + "path": [ + "pallet_balances", + "types", + "ReserveData" + ], + "params": [ + { + "name": "ReserveIdentifier", + "type": 287 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 287, + "typeName": "ReserveIdentifier", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 603, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 602 + } + }, + "docs": [] + } + }, + { + "id": 604, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 605 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 621, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 605, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 606 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 606, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 606, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeHoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 607, + "typeName": "pallet_staking::HoldReason", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 608, + "typeName": "pallet_collective::HoldReason", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 609, + "typeName": "pallet_collective::HoldReason", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 610, + "typeName": "pallet_contracts::HoldReason", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 611, + "typeName": "pallet_preimage::HoldReason", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 612, + "typeName": "pallet_nis::HoldReason", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 613, + "typeName": "pallet_nft_fractionalization::HoldReason", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 614, + "typeName": "pallet_transaction_storage::HoldReason", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 615, + "typeName": "pallet_state_trie_migration::HoldReason", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 616, + "typeName": "pallet_collective::HoldReason", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 617, + "typeName": "pallet_safe_mode::HoldReason", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 618, + "typeName": "pallet_revive::HoldReason", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 619, + "typeName": "pallet_delegated_staking::HoldReason", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 620, + "typeName": "pallet_asset_rewards::HoldReason", + "docs": [] + } + ], + "index": 83, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 607, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staking", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 608, + "type": { + "path": [ + "pallet_collective", + "pallet", + "HoldReason" + ], + "params": [ + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 609, + "type": { + "path": [ + "pallet_collective", + "pallet", + "HoldReason" + ], + "params": [ + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 610, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CodeUploadDepositReserve", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StorageDepositReserve", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 611, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Preimage", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 612, + "type": { + "path": [ + "pallet_nis", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NftReceipt", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 613, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fractionalized", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 614, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StorageFeeHold", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 615, + "type": { + "path": [ + "pallet_state_trie_migration", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "SlashForMigrate", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 616, + "type": { + "path": [ + "pallet_collective", + "pallet", + "HoldReason" + ], + "params": [ + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ProposalSubmission", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 617, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "EnterOrExtend", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 618, + "type": { + "path": [ + "pallet_revive", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CodeUploadDepositReserve", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StorageDepositReserve", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "AddressMapping", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 619, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "StakingDelegation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 620, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "HoldReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolCreation", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 621, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 605 + } + }, + "docs": [] + } + }, + { + "id": 622, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 623 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 627, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 623, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "misc", + "IdAmount" + ], + "params": [ + { + "name": "Id", + "type": 624 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 624, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 624, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeFreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 625, + "typeName": "pallet_nomination_pools::FreezeReason", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 626, + "typeName": "pallet_asset_rewards::FreezeReason", + "docs": [] + } + ], + "index": 83, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 625, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "PoolMinBalance", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 626, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "FreezeReason" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Staked", + "fields": [], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 627, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 623 + } + }, + "docs": [] + } + }, + { + "id": 628, + "type": { + "path": [ + "pallet_balances", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "VestingBalance", + "fields": [], + "index": 0, + "docs": [ + "Vesting balance too high to send value." + ] + }, + { + "name": "LiquidityRestrictions", + "fields": [], + "index": 1, + "docs": [ + "Account liquidity restrictions prevent withdrawal." + ] + }, + { + "name": "InsufficientBalance", + "fields": [], + "index": 2, + "docs": [ + "Balance too low to send value." + ] + }, + { + "name": "ExistentialDeposit", + "fields": [], + "index": 3, + "docs": [ + "Value too low to create account due to existential deposit." + ] + }, + { + "name": "Expendability", + "fields": [], + "index": 4, + "docs": [ + "Transfer/payment would kill account." + ] + }, + { + "name": "ExistingVestingSchedule", + "fields": [], + "index": 5, + "docs": [ + "A vesting schedule already exists for this account." + ] + }, + { + "name": "DeadAccount", + "fields": [], + "index": 6, + "docs": [ + "Beneficiary account must pre-exist." + ] + }, + { + "name": "TooManyReserves", + "fields": [], + "index": 7, + "docs": [ + "Number of named reserves exceed `MaxReserves`." + ] + }, + { + "name": "TooManyHolds", + "fields": [], + "index": 8, + "docs": [ + "Number of holds exceed `VariantCountOf`." + ] + }, + { + "name": "TooManyFreezes", + "fields": [], + "index": 9, + "docs": [ + "Number of freezes exceed `MaxFreezes`." + ] + }, + { + "name": "IssuanceDeactivated", + "fields": [], + "index": 10, + "docs": [ + "The issuance cannot be modified since it is already deactivated." + ] + }, + { + "name": "DeltaZero", + "fields": [], + "index": 11, + "docs": [ + "The delta cannot be zero." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 629, + "type": { + "path": [ + "pallet_transaction_payment", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V1Ancient", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V2", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 630, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "ReadySolution" + ], + "params": [ + { + "name": "AccountId", + "type": null + }, + { + "name": "MaxWinners", + "type": null + }, + { + "name": "MaxBackersPerWinner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "supports", + "type": 631, + "typeName": "BoundedSupports", + "docs": [] + }, + { + "name": "score", + "type": 44, + "typeName": "ElectionScore", + "docs": [] + }, + { + "name": "compute", + "type": 42, + "typeName": "ElectionCompute", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 631, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupports" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BOuter", + "type": null + }, + { + "name": "BInner", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 632, + "typeName": "BoundedVec<(AccountId, BoundedSupport), BOuter>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 632, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 633 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 636, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 633, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 634 + ] + }, + "docs": [] + } + }, + { + "id": 634, + "type": { + "path": [ + "frame_election_provider_support", + "BoundedSupport" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Bound", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 6, + "typeName": "ExtendedBalance", + "docs": [] + }, + { + "name": "voters", + "type": 635, + "typeName": "BoundedVec<(AccountId, ExtendedBalance), Bound>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 635, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 64 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 63, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 636, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 633 + } + }, + "docs": [] + } + }, + { + "id": 637, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "RoundSnapshot" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "VoterType", + "type": 638 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "voters", + "type": 640, + "typeName": "Vec", + "docs": [] + }, + { + "name": "targets", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 638, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 12, + 639 + ] + }, + "docs": [] + } + }, + { + "id": 639, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 640, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 638 + } + }, + "docs": [] + } + }, + { + "id": 641, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 642 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 643, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 642, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 44, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 643, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 642 + } + }, + "docs": [] + } + }, + { + "id": 644, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "signed", + "SignedSubmission" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Solution", + "type": 172 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "raw_solution", + "type": 171, + "typeName": "RawSolution", + "docs": [] + }, + { + "name": "call_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 645, + "type": { + "path": [ + "pallet_election_provider_multi_phase", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PreDispatchEarlySubmission", + "fields": [], + "index": 0, + "docs": [ + "Submission was too early." + ] + }, + { + "name": "PreDispatchWrongWinnerCount", + "fields": [], + "index": 1, + "docs": [ + "Wrong number of winners presented." + ] + }, + { + "name": "PreDispatchWeakSubmission", + "fields": [], + "index": 2, + "docs": [ + "Submission was too weak, score-wise." + ] + }, + { + "name": "SignedQueueFull", + "fields": [], + "index": 3, + "docs": [ + "The queue was full, and the solution was not better than any of the existing ones." + ] + }, + { + "name": "SignedCannotPayDeposit", + "fields": [], + "index": 4, + "docs": [ + "The origin failed to pay the deposit." + ] + }, + { + "name": "SignedInvalidWitness", + "fields": [], + "index": 5, + "docs": [ + "Witness data to dispatchable is invalid." + ] + }, + { + "name": "SignedTooMuchWeight", + "fields": [], + "index": 6, + "docs": [ + "The signed submission consumes too much weight" + ] + }, + { + "name": "OcwCallWrongEra", + "fields": [], + "index": 7, + "docs": [ + "OCW submitted solution for wrong round" + ] + }, + { + "name": "MissingSnapshotMetadata", + "fields": [], + "index": 8, + "docs": [ + "Snapshot metadata should exist but didn't." + ] + }, + { + "name": "InvalidSubmissionIndex", + "fields": [], + "index": 9, + "docs": [ + "`Self::insert_submission` returned an invalid index." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 10, + "docs": [ + "The call is not allowed at this point." + ] + }, + { + "name": "FallbackFailed", + "fields": [], + "index": 11, + "docs": [ + "The fallback failed" + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 12, + "docs": [ + "Some bound not met" + ] + }, + { + "name": "TooManyWinners", + "fields": [], + "index": 13, + "docs": [ + "Submitted solution has too many winners" + ] + }, + { + "name": "PreDispatchDifferentRound", + "fields": [], + "index": 14, + "docs": [ + "Submission was prepared for a different round." + ] + } + ] + } + }, + "docs": [ + "Error of the pallet that can be returned in response to dispatches." + ] + } + }, + { + "id": 646, + "type": { + "path": [ + "pallet_staking", + "StakingLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stash", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "active", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unlocking", + "type": 238, + "typeName": "BoundedVec>, T::MaxUnlockingChunks>", + "docs": [] + }, + { + "name": "legacy_claimed_rewards", + "type": 647, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 647, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 648, + "type": { + "path": [ + "pallet_staking", + "Nominations" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "targets", + "type": 639, + "typeName": "BoundedVec>", + "docs": [] + }, + { + "name": "submitted_in", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "suppressed", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 649, + "type": { + "path": [ + "pallet_staking", + "ActiveEraInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "start", + "type": 650, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 650, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 651, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 652, + "type": { + "path": [ + "sp_staking", + "Exposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 168, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 168, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 653, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 653, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 654 + } + }, + "docs": [] + } + }, + { + "id": 654, + "type": { + "path": [ + "sp_staking", + "IndividualExposure" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 168, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 655, + "type": { + "path": [ + "sp_staking", + "PagedExposureMetadata" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 168, + "typeName": "Balance", + "docs": [] + }, + { + "name": "own", + "type": 168, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nominator_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "page_count", + "type": 4, + "typeName": "Page", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 656, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 657, + "type": { + "path": [ + "sp_staking", + "ExposurePage" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "page_total", + "type": 168, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 653, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 658, + "type": { + "path": [ + "pallet_staking", + "EraRewardPoints" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total", + "type": 4, + "typeName": "RewardPoint", + "docs": [] + }, + { + "name": "individual", + "type": 659, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 659, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 660, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 660, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 661 + } + }, + "docs": [] + } + }, + { + "id": 661, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 662, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 663 + } + }, + "docs": [] + } + }, + { + "id": 663, + "type": { + "path": [ + "pallet_staking", + "UnappliedSlash" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "own", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "others", + "type": 63, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "reporters", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "payout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 664, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 49, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 665, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SlashingSpans" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "span_index", + "type": 4, + "typeName": "SpanIndex", + "docs": [] + }, + { + "name": "last_start", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "last_nonzero_slash", + "type": 4, + "typeName": "EraIndex", + "docs": [] + }, + { + "name": "prior", + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 666, + "type": { + "path": [ + "pallet_staking", + "slashing", + "SpanRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "slashed", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "paid_out", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 667, + "type": { + "path": [ + "pallet_staking", + "pallet", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "Not a controller account." + ] + }, + { + "name": "NotStash", + "fields": [], + "index": 1, + "docs": [ + "Not a stash account." + ] + }, + { + "name": "AlreadyBonded", + "fields": [], + "index": 2, + "docs": [ + "Stash is already bonded." + ] + }, + { + "name": "AlreadyPaired", + "fields": [], + "index": 3, + "docs": [ + "Controller is already paired." + ] + }, + { + "name": "EmptyTargets", + "fields": [], + "index": 4, + "docs": [ + "Targets cannot be empty." + ] + }, + { + "name": "DuplicateIndex", + "fields": [], + "index": 5, + "docs": [ + "Duplicate index." + ] + }, + { + "name": "InvalidSlashIndex", + "fields": [], + "index": 6, + "docs": [ + "Slash record index out of bounds." + ] + }, + { + "name": "InsufficientBond", + "fields": [], + "index": 7, + "docs": [ + "Cannot have a validator or nominator role, with value less than the minimum defined by", + "governance (see `MinValidatorBond` and `MinNominatorBond`). If unbonding is the", + "intention, `chill` first to remove one's role as validator/nominator." + ] + }, + { + "name": "NoMoreChunks", + "fields": [], + "index": 8, + "docs": [ + "Can not schedule more unlock chunks." + ] + }, + { + "name": "NoUnlockChunk", + "fields": [], + "index": 9, + "docs": [ + "Can not rebond without unlocking chunks." + ] + }, + { + "name": "FundedTarget", + "fields": [], + "index": 10, + "docs": [ + "Attempting to target a stash that still has funds." + ] + }, + { + "name": "InvalidEraToReward", + "fields": [], + "index": 11, + "docs": [ + "Invalid era to reward." + ] + }, + { + "name": "InvalidNumberOfNominations", + "fields": [], + "index": 12, + "docs": [ + "Invalid number of nominations." + ] + }, + { + "name": "NotSortedAndUnique", + "fields": [], + "index": 13, + "docs": [ + "Items are not sorted and unique." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 14, + "docs": [ + "Rewards for this era have already been claimed for this validator." + ] + }, + { + "name": "InvalidPage", + "fields": [], + "index": 15, + "docs": [ + "No nominators exist on this page." + ] + }, + { + "name": "IncorrectHistoryDepth", + "fields": [], + "index": 16, + "docs": [ + "Incorrect previous history depth input provided." + ] + }, + { + "name": "IncorrectSlashingSpans", + "fields": [], + "index": 17, + "docs": [ + "Incorrect number of slashing spans provided." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 18, + "docs": [ + "Internal state has become somehow corrupted and the operation cannot continue." + ] + }, + { + "name": "TooManyTargets", + "fields": [], + "index": 19, + "docs": [ + "Too many nomination targets supplied." + ] + }, + { + "name": "BadTarget", + "fields": [], + "index": 20, + "docs": [ + "A nomination target was supplied that was blocked or otherwise not a validator." + ] + }, + { + "name": "CannotChillOther", + "fields": [], + "index": 21, + "docs": [ + "The user has enough bond and thus cannot be chilled forcefully by an external person." + ] + }, + { + "name": "TooManyNominators", + "fields": [], + "index": 22, + "docs": [ + "There are too many nominators in the system. Governance needs to adjust the staking", + "settings to keep things safe for the runtime." + ] + }, + { + "name": "TooManyValidators", + "fields": [], + "index": 23, + "docs": [ + "There are too many validator candidates in the system. Governance needs to adjust the", + "staking settings to keep things safe for the runtime." + ] + }, + { + "name": "CommissionTooLow", + "fields": [], + "index": 24, + "docs": [ + "Commission is too low. Must be at least `MinCommission`." + ] + }, + { + "name": "BoundNotMet", + "fields": [], + "index": 25, + "docs": [ + "Some bound is not met." + ] + }, + { + "name": "ControllerDeprecated", + "fields": [], + "index": 26, + "docs": [ + "Used when attempting to use deprecated controller account logic." + ] + }, + { + "name": "CannotRestoreLedger", + "fields": [], + "index": 27, + "docs": [ + "Cannot reset a ledger." + ] + }, + { + "name": "RewardDestinationRestricted", + "fields": [], + "index": 28, + "docs": [ + "Provided reward destination is not allowed." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 29, + "docs": [ + "Not enough funds available to withdraw." + ] + }, + { + "name": "VirtualStakerNotAllowed", + "fields": [], + "index": 30, + "docs": [ + "Operation not allowed for virtual stakers." + ] + }, + { + "name": "CannotReapStash", + "fields": [], + "index": 31, + "docs": [ + "Stash could not be reaped as other pallet might depend on it." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 32, + "docs": [ + "The stake of this account is already migrated to `Fungible` holds." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 33, + "docs": [ + "Account is restricted from participation in staking. This may happen if the account is", + "staking in another way already, such as via pool." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 668, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 669 + } + }, + "docs": [] + } + }, + { + "id": 669, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 242 + ] + }, + "docs": [] + } + }, + { + "id": 670, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 671 + } + }, + "docs": [] + } + }, + { + "id": 671, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 672 + ] + }, + "docs": [] + } + }, + { + "id": 672, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceSeverity" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 49, + "typeName": "Perbill", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 673, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 674, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 674, + "type": { + "path": [ + "sp_core", + "crypto", + "KeyTypeId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 18, + "typeName": "[u8; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 675, + "type": { + "path": [ + "pallet_session", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid ownership proof." + ] + }, + { + "name": "NoAssociatedValidatorId", + "fields": [], + "index": 1, + "docs": [ + "No associated validator ID for account." + ] + }, + { + "name": "DuplicatedKey", + "fields": [], + "index": 2, + "docs": [ + "Registered duplicate key." + ] + }, + { + "name": "NoKeys", + "fields": [], + "index": 3, + "docs": [ + "No keys are associated with this account." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 4, + "docs": [ + "Key setting account is not live, so it's impossible to associate keys." + ] + } + ] + } + }, + "docs": [ + "Error for the session pallet." + ] + } + }, + { + "id": 676, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 677 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 678, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 677, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 140, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 678, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 677 + } + }, + "docs": [] + } + }, + { + "id": 679, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 680, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 680, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 681, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 682, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Finished", + "fields": [ + { + "name": "approved", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 682, + "type": { + "path": [ + "pallet_democracy", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Proposal", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "Proposal", + "docs": [] + }, + { + "name": "threshold", + "type": 56, + "typeName": "VoteThreshold", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "tally", + "type": 683, + "typeName": "Tally", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 683, + "type": { + "path": [ + "pallet_democracy", + "types", + "Tally" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "ayes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "nays", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "turnout", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 684, + "type": { + "path": [ + "pallet_democracy", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Direct", + "fields": [ + { + "name": "votes", + "type": 685, + "typeName": "BoundedVec<(ReferendumIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 688, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 689, + "typeName": "PriorLock", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 248, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 688, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 689, + "typeName": "PriorLock", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 685, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 686 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 687, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 686, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 57 + ] + }, + "docs": [] + } + }, + { + "id": 687, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 686 + } + }, + "docs": [] + } + }, + { + "id": 688, + "type": { + "path": [ + "pallet_democracy", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 689, + "type": { + "path": [ + "pallet_democracy", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 690, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 140, + 56 + ] + }, + "docs": [] + } + }, + { + "id": 691, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 680 + ] + }, + "docs": [] + } + }, + { + "id": 692, + "type": { + "path": [ + "pallet_democracy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ValueLow", + "fields": [], + "index": 0, + "docs": [ + "Value too low" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 1, + "docs": [ + "Proposal does not exist" + ] + }, + { + "name": "AlreadyCanceled", + "fields": [], + "index": 2, + "docs": [ + "Cannot cancel the same proposal twice" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 3, + "docs": [ + "Proposal already made" + ] + }, + { + "name": "ProposalBlacklisted", + "fields": [], + "index": 4, + "docs": [ + "Proposal still blacklisted" + ] + }, + { + "name": "NotSimpleMajority", + "fields": [], + "index": 5, + "docs": [ + "Next external proposal not simple majority" + ] + }, + { + "name": "InvalidHash", + "fields": [], + "index": 6, + "docs": [ + "Invalid hash" + ] + }, + { + "name": "NoProposal", + "fields": [], + "index": 7, + "docs": [ + "No external proposal" + ] + }, + { + "name": "AlreadyVetoed", + "fields": [], + "index": 8, + "docs": [ + "Identity may not veto a proposal twice" + ] + }, + { + "name": "ReferendumInvalid", + "fields": [], + "index": 9, + "docs": [ + "Vote given for invalid referendum" + ] + }, + { + "name": "NoneWaiting", + "fields": [], + "index": 10, + "docs": [ + "No proposals waiting" + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 11, + "docs": [ + "The given account did not vote on the referendum." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 12, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 13, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 14, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 15, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "VotesExist", + "fields": [], + "index": 16, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed, either through `unvote` or `reap_vote`." + ] + }, + { + "name": "InstantNotAllowed", + "fields": [], + "index": 17, + "docs": [ + "The instant referendum origin is currently disallowed." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 18, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "WrongUpperBound", + "fields": [], + "index": 19, + "docs": [ + "Invalid upper bound." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 20, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 21, + "docs": [ + "Maximum number of items reached." + ] + }, + { + "name": "VotingPeriodLow", + "fields": [], + "index": 22, + "docs": [ + "Voting period too low" + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 23, + "docs": [ + "The preimage does not exist." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 693, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 694, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 695 + ] + }, + "docs": [] + } + }, + { + "id": 695, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 696, + "type": { + "path": [ + "pallet_collective", + "Votes" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "index", + "type": 4, + "typeName": "ProposalIndex", + "docs": [] + }, + { + "name": "threshold", + "type": 4, + "typeName": "MemberCount", + "docs": [] + }, + { + "name": "ayes", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "nays", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 697, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + }, + { + "name": "ProposalActive", + "fields": [], + "index": 11, + "docs": [ + "Proposal is still active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 698, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 699, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + }, + { + "name": "ProposalActive", + "fields": [], + "index": 11, + "docs": [ + "Proposal is still active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 700, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 701 + } + }, + "docs": [] + } + }, + { + "id": 701, + "type": { + "path": [ + "pallet_elections_phragmen", + "SeatHolder" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 702, + "type": { + "path": [ + "pallet_elections_phragmen", + "Voter" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 87, + "typeName": "Vec", + "docs": [] + }, + { + "name": "stake", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 703, + "type": { + "path": [ + "pallet_elections_phragmen", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnableToVote", + "fields": [], + "index": 0, + "docs": [ + "Cannot vote when no candidates or members exist." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 1, + "docs": [ + "Must vote for at least one candidate." + ] + }, + { + "name": "TooManyVotes", + "fields": [], + "index": 2, + "docs": [ + "Cannot vote more than candidates." + ] + }, + { + "name": "MaximumVotesExceeded", + "fields": [], + "index": 3, + "docs": [ + "Cannot vote more than maximum allowed." + ] + }, + { + "name": "LowBalance", + "fields": [], + "index": 4, + "docs": [ + "Cannot vote with stake less than minimum balance." + ] + }, + { + "name": "UnableToPayBond", + "fields": [], + "index": 5, + "docs": [ + "Voter can not pay voting bond." + ] + }, + { + "name": "MustBeVoter", + "fields": [], + "index": 6, + "docs": [ + "Must be a voter." + ] + }, + { + "name": "DuplicatedCandidate", + "fields": [], + "index": 7, + "docs": [ + "Duplicated candidate submission." + ] + }, + { + "name": "TooManyCandidates", + "fields": [], + "index": 8, + "docs": [ + "Too many candidates have been created." + ] + }, + { + "name": "MemberSubmit", + "fields": [], + "index": 9, + "docs": [ + "Member cannot re-submit candidacy." + ] + }, + { + "name": "RunnerUpSubmit", + "fields": [], + "index": 10, + "docs": [ + "Runner cannot re-submit candidacy." + ] + }, + { + "name": "InsufficientCandidateFunds", + "fields": [], + "index": 11, + "docs": [ + "Candidate does not have enough funds." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 12, + "docs": [ + "Not a member." + ] + }, + { + "name": "InvalidWitnessData", + "fields": [], + "index": 13, + "docs": [ + "The provided count of number of candidates is incorrect." + ] + }, + { + "name": "InvalidVoteCount", + "fields": [], + "index": 14, + "docs": [ + "The provided count of number of votes is incorrect." + ] + }, + { + "name": "InvalidRenouncing", + "fields": [], + "index": 15, + "docs": [ + "The renouncing origin presented a wrong `Renouncing` parameter." + ] + }, + { + "name": "InvalidReplacement", + "fields": [], + "index": 16, + "docs": [ + "Prediction regarding replacement after member removal is wrong." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 704, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 705, + "type": { + "path": [ + "pallet_membership", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Not a member." + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 2, + "docs": [ + "Too many members." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 706, + "type": { + "path": [ + "pallet_grandpa", + "StoredState" + ], + "params": [ + { + "name": "N", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PendingPause", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Paused", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "PendingResume", + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 707, + "type": { + "path": [ + "pallet_grandpa", + "StoredPendingChange" + ], + "params": [ + { + "name": "N", + "type": 4 + }, + { + "name": "Limit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "scheduled_at", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "N", + "docs": [] + }, + { + "name": "next_authorities", + "type": 708, + "typeName": "BoundedAuthorityList", + "docs": [] + }, + { + "name": "forced", + "type": 50, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 708, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 68 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 67, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 709, + "type": { + "path": [ + "pallet_grandpa", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PauseFailed", + "fields": [], + "index": 0, + "docs": [ + "Attempt to signal GRANDPA pause when the authority set isn't live", + "(either paused or already pending pause)." + ] + }, + { + "name": "ResumeFailed", + "fields": [], + "index": 1, + "docs": [ + "Attempt to signal GRANDPA resume when the authority set isn't paused", + "(either live or already pending resume)." + ] + }, + { + "name": "ChangePending", + "fields": [], + "index": 2, + "docs": [ + "Attempt to signal GRANDPA change with one already pending." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 3, + "docs": [ + "Cannot signal forced change so soon after last." + ] + }, + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 4, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProof", + "fields": [], + "index": 5, + "docs": [ + "An equivocation proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 6, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 710, + "type": { + "path": [ + "pallet_treasury", + "Proposal" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 711, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 712, + "type": { + "path": [ + "pallet_treasury", + "SpendStatus" + ], + "params": [ + { + "name": "AssetKind", + "type": 40 + }, + { + "name": "AssetBalance", + "type": 6 + }, + { + "name": "Beneficiary", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PaymentId", + "type": 34 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset_kind", + "type": 40, + "typeName": "AssetKind", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "AssetBalance", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "Beneficiary", + "docs": [] + }, + { + "name": "valid_from", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "expire_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "status", + "type": 713, + "typeName": "PaymentState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 713, + "type": { + "path": [ + "pallet_treasury", + "PaymentState" + ], + "params": [ + { + "name": "Id", + "type": 34 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Pending", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "id", + "type": 34, + "typeName": "Id", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Failed", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 714, + "type": { + "path": [ + "frame_support", + "PalletId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 287, + "typeName": "[u8; 8]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 715, + "type": { + "path": [ + "pallet_treasury", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidIndex", + "fields": [], + "index": 0, + "docs": [ + "No proposal, bounty or spend at that index." + ] + }, + { + "name": "TooManyApprovals", + "fields": [], + "index": 1, + "docs": [ + "Too many approvals in the queue." + ] + }, + { + "name": "InsufficientPermission", + "fields": [], + "index": 2, + "docs": [ + "The spend origin is valid but the amount it is allowed to spend is lower than the", + "amount to be spent." + ] + }, + { + "name": "ProposalNotApproved", + "fields": [], + "index": 3, + "docs": [ + "Proposal has not been approved." + ] + }, + { + "name": "FailedToConvertBalance", + "fields": [], + "index": 4, + "docs": [ + "The balance of the asset kind is not convertible to the balance of the native asset." + ] + }, + { + "name": "SpendExpired", + "fields": [], + "index": 5, + "docs": [ + "The spend has expired and cannot be claimed." + ] + }, + { + "name": "EarlyPayout", + "fields": [], + "index": 6, + "docs": [ + "The spend is not yet eligible for payout." + ] + }, + { + "name": "AlreadyAttempted", + "fields": [], + "index": 7, + "docs": [ + "The payment has already been attempted." + ] + }, + { + "name": "PayoutError", + "fields": [], + "index": 8, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "NotAttempted", + "fields": [], + "index": 9, + "docs": [ + "The payout was not yet attempted/claimed." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 10, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + } + ] + } + }, + "docs": [ + "Error for the treasury pallet." + ] + } + }, + { + "id": 716, + "type": { + "path": [ + "pallet_asset_rate", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownAssetKind", + "fields": [], + "index": 0, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 1, + "docs": [ + "The given asset ID already has an assigned conversion rate and cannot be re-created." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 2, + "docs": [ + "Overflow ocurred when calculating the inverse rate." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 717, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 718, + "type": { + "path": [ + "pallet_contracts", + "wasm", + "CodeInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf", + "docs": [] + }, + { + "name": "deposit", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "refcount", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "determinism", + "type": 270, + "typeName": "Determinism", + "docs": [] + }, + { + "name": "code_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 719, + "type": { + "path": [ + "pallet_contracts", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 113, + "typeName": "TrieId", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "delegate_dependencies", + "type": 720, + "typeName": "BoundedBTreeMap, BalanceOf, T::\nMaxDelegateDependencies>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 720, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 13 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 721, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 721, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 13 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 722, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 722, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 723 + } + }, + "docs": [] + } + }, + { + "id": 723, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 724, + "type": { + "path": [ + "pallet_contracts", + "storage", + "DeletionQueueManager" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "insert_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "delete_counter", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 725, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 726, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Schedule" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "limits", + "type": 727, + "typeName": "Limits", + "docs": [] + }, + { + "name": "instruction_weights", + "type": 728, + "typeName": "InstructionWeights", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 727, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "Limits" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "event_topics", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "memory_pages", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "subject_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "payload_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "runtime_memory", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "validator_runtime_memory", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "event_ref_time", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 728, + "type": { + "path": [ + "pallet_contracts", + "schedule", + "InstructionWeights" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 729, + "type": { + "path": [ + "pallet_contracts", + "Environment" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_id", + "type": 730, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "balance", + "type": 731, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "hash", + "type": 732, + "typeName": "EnvironmentType<::Hash>", + "docs": [] + }, + { + "name": "hasher", + "type": 733, + "typeName": "EnvironmentType<::Hashing>", + "docs": [] + }, + { + "name": "timestamp", + "type": 734, + "typeName": "EnvironmentType>", + "docs": [] + }, + { + "name": "block_number", + "type": 735, + "typeName": "EnvironmentType>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 730, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 731, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 732, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 733, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 496 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 734, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 735, + "type": { + "path": [ + "pallet_contracts", + "EnvironmentType" + ], + "params": [ + { + "name": "T", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [] + } + }, + "docs": [] + } + }, + { + "id": 736, + "type": { + "path": [ + "pallet_contracts", + "ApiVersion" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 100, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 737, + "type": { + "path": [ + "pallet_contracts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSchedule", + "fields": [], + "index": 0, + "docs": [ + "Invalid schedule supplied, e.g. with zero weight of a basic operation." + ] + }, + { + "name": "InvalidCallFlags", + "fields": [], + "index": 1, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "fields": [], + "index": 2, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "OutputBufferTooSmall", + "fields": [], + "index": 3, + "docs": [ + "The output buffer supplied to a contract API call was too small." + ] + }, + { + "name": "TransferFailed", + "fields": [], + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "fields": [], + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "fields": [], + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeTooLarge", + "fields": [], + "index": 7, + "docs": [ + "The code supplied to `instantiate_with_code` exceeds the limit specified in the", + "current schedule." + ] + }, + { + "name": "CodeNotFound", + "fields": [], + "index": 8, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "CodeInfoNotFound", + "fields": [], + "index": 9, + "docs": [ + "No code info could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "fields": [], + "index": 10, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "fields": [], + "index": 11, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "fields": [], + "index": 12, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "fields": [], + "index": 13, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "fields": [], + "index": 14, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "fields": [], + "index": 15, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "RandomSubjectTooLong", + "fields": [], + "index": 16, + "docs": [ + "The subject passed to `seal_random` exceeds the limit." + ] + }, + { + "name": "TooManyTopics", + "fields": [], + "index": 17, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "NoChainExtension", + "fields": [], + "index": 18, + "docs": [ + "The chain does not provide a chain extension. Calling the chain extension results", + "in this error. Note that this usually shouldn't happen as deploying such contracts", + "is rejected." + ] + }, + { + "name": "XCMDecodeFailed", + "fields": [], + "index": 19, + "docs": [ + "Failed to decode the XCM program." + ] + }, + { + "name": "DuplicateContract", + "fields": [], + "index": 20, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "fields": [], + "index": 21, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "fields": [], + "index": 22, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant.", + "The only other cause is that a call from a contract into the runtime tried to call back", + "into `pallet-contracts`. This would make the whole pallet reentrant with regard to", + "contract code execution which is not supported." + ] + }, + { + "name": "StateChangeDenied", + "fields": [], + "index": 23, + "docs": [ + "A contract attempted to invoke a state modifying API while being in read-only mode." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "fields": [], + "index": 24, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "fields": [], + "index": 25, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "fields": [], + "index": 26, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "fields": [], + "index": 27, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "fields": [], + "index": 28, + "docs": [ + "The contract's code was found to be invalid during validation.", + "", + "The most likely cause of this is that an API was used which is not supported by the", + "node. This happens if an older node is used with a new version of ink!. Try updating", + "your node to the newest available version.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::contracts=debug`." + ] + }, + { + "name": "Indeterministic", + "fields": [], + "index": 29, + "docs": [ + "An indeterministic code was used in a context where this is not permitted." + ] + }, + { + "name": "MigrationInProgress", + "fields": [], + "index": 30, + "docs": [ + "A pending migration needs to complete before the extrinsic can be called." + ] + }, + { + "name": "NoMigrationPerformed", + "fields": [], + "index": 31, + "docs": [ + "Migrate dispatch call was attempted but no migration was performed." + ] + }, + { + "name": "MaxDelegateDependenciesReached", + "fields": [], + "index": 32, + "docs": [ + "The contract has reached its maximum number of delegate dependencies." + ] + }, + { + "name": "DelegateDependencyNotFound", + "fields": [], + "index": 33, + "docs": [ + "The dependency was not found in the contract's delegate dependencies." + ] + }, + { + "name": "DelegateDependencyAlreadyExists", + "fields": [], + "index": 34, + "docs": [ + "The contract already depends on the given delegate dependency." + ] + }, + { + "name": "CannotAddSelfAsDelegateDependency", + "fields": [], + "index": 35, + "docs": [ + "Can not add a delegate dependency to the code hash of the contract itself." + ] + }, + { + "name": "OutOfTransientStorage", + "fields": [], + "index": 36, + "docs": [ + "Can not add more data to transient storage." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 738, + "type": { + "path": [ + "pallet_sudo", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "RequireSudo", + "fields": [], + "index": 0, + "docs": [ + "Sender must be the Sudo account." + ] + } + ] + } + }, + "docs": [ + "Error for the Sudo pallet." + ] + } + }, + { + "id": 739, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 78 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 740, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 740, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 78 + } + }, + "docs": [] + } + }, + { + "id": 741, + "type": { + "path": [ + "pallet_im_online", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKey", + "fields": [], + "index": 0, + "docs": [ + "Non existent public key." + ] + }, + { + "name": "DuplicatedHeartbeat", + "fields": [], + "index": 1, + "docs": [ + "Duplicated heartbeat." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 742, + "type": { + "path": [ + "bounded_collections", + "weak_bounded_vec", + "WeakBoundedVec" + ], + "params": [ + { + "name": "T", + "type": 243 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 743, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 743, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 243 + } + }, + "docs": [] + } + }, + { + "id": 744, + "type": { + "path": [ + "sp_staking", + "offence", + "OffenceDetails" + ], + "params": [ + { + "name": "Reporter", + "type": 0 + }, + { + "name": "Offender", + "type": 80 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "offender", + "type": 80, + "typeName": "Offender", + "docs": [] + }, + { + "name": "reporters", + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 745, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 82, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 746, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 13, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 747, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 748, + "type": { + "path": [ + "pallet_identity", + "types", + "Registration" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "MaxJudgements", + "type": null + }, + { + "name": "IdentityInfo", + "type": 276 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "judgements", + "type": 749, + "typeName": "BoundedVec<(RegistrarIndex, Judgement), MaxJudgements>", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "info", + "type": 276, + "typeName": "IdentityInfo", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 749, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 750 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 751, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 750, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 313 + ] + }, + "docs": [] + } + }, + { + "id": 751, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 750 + } + }, + "docs": [] + } + }, + { + "id": 752, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 753 + ] + }, + "docs": [] + } + }, + { + "id": 753, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 754, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 755 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 757, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 755, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 756 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 756, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 756, + "type": { + "path": [ + "pallet_identity", + "types", + "RegistrarInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "IdField", + "type": 12 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fields", + "type": 12, + "typeName": "IdField", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 757, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 755 + } + }, + "docs": [] + } + }, + { + "id": 758, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 759, + "type": { + "path": [ + "pallet_identity", + "types", + "AuthorityProperties" + ], + "params": [ + { + "name": "Account", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account_id", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "allocation", + "type": 4, + "typeName": "Allocation", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 760, + "type": { + "path": [ + "pallet_identity", + "types", + "UsernameInformation" + ], + "params": [ + { + "name": "Account", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "Account", + "docs": [] + }, + { + "name": "provider", + "type": 761, + "typeName": "Provider", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 761, + "type": { + "path": [ + "pallet_identity", + "types", + "Provider" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Allocation", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "AuthorityDeposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "System", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 762, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 761 + ] + }, + "docs": [] + } + }, + { + "id": 763, + "type": { + "path": [ + "pallet_identity", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManySubAccounts", + "fields": [], + "index": 0, + "docs": [ + "Too many subs-accounts." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Account isn't found." + ] + }, + { + "name": "NotNamed", + "fields": [], + "index": 2, + "docs": [ + "Account isn't named." + ] + }, + { + "name": "EmptyIndex", + "fields": [], + "index": 3, + "docs": [ + "Empty index." + ] + }, + { + "name": "FeeChanged", + "fields": [], + "index": 4, + "docs": [ + "Fee is changed." + ] + }, + { + "name": "NoIdentity", + "fields": [], + "index": 5, + "docs": [ + "No identity found." + ] + }, + { + "name": "StickyJudgement", + "fields": [], + "index": 6, + "docs": [ + "Sticky judgement." + ] + }, + { + "name": "JudgementGiven", + "fields": [], + "index": 7, + "docs": [ + "Judgement given." + ] + }, + { + "name": "InvalidJudgement", + "fields": [], + "index": 8, + "docs": [ + "Invalid judgement." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 9, + "docs": [ + "The index is invalid." + ] + }, + { + "name": "InvalidTarget", + "fields": [], + "index": 10, + "docs": [ + "The target is invalid." + ] + }, + { + "name": "TooManyRegistrars", + "fields": [], + "index": 11, + "docs": [ + "Maximum amount of registrars reached. Cannot add any more." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 12, + "docs": [ + "Account ID is already named." + ] + }, + { + "name": "NotSub", + "fields": [], + "index": 13, + "docs": [ + "Sender is not a sub-account." + ] + }, + { + "name": "NotOwned", + "fields": [], + "index": 14, + "docs": [ + "Sub-account isn't owned by sender." + ] + }, + { + "name": "JudgementForDifferentIdentity", + "fields": [], + "index": 15, + "docs": [ + "The provided judgement was for a different identity." + ] + }, + { + "name": "JudgementPaymentFailed", + "fields": [], + "index": 16, + "docs": [ + "Error that occurs when there is an issue paying for judgement." + ] + }, + { + "name": "InvalidSuffix", + "fields": [], + "index": 17, + "docs": [ + "The provided suffix is too long." + ] + }, + { + "name": "NotUsernameAuthority", + "fields": [], + "index": 18, + "docs": [ + "The sender does not have permission to issue a username." + ] + }, + { + "name": "NoAllocation", + "fields": [], + "index": 19, + "docs": [ + "The authority cannot allocate any more usernames." + ] + }, + { + "name": "InvalidSignature", + "fields": [], + "index": 20, + "docs": [ + "The signature on a username was not valid." + ] + }, + { + "name": "RequiresSignature", + "fields": [], + "index": 21, + "docs": [ + "Setting this username requires a signature, but none was provided." + ] + }, + { + "name": "InvalidUsername", + "fields": [], + "index": 22, + "docs": [ + "The username does not meet the requirements." + ] + }, + { + "name": "UsernameTaken", + "fields": [], + "index": 23, + "docs": [ + "The username is already taken." + ] + }, + { + "name": "NoUsername", + "fields": [], + "index": 24, + "docs": [ + "The requested username does not exist." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 25, + "docs": [ + "The username cannot be forcefully removed because it can still be accepted." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 26, + "docs": [ + "The username cannot be removed because it's still in the grace period." + ] + }, + { + "name": "NotUnbinding", + "fields": [], + "index": 27, + "docs": [ + "The username cannot be removed because it is not unbinding." + ] + }, + { + "name": "AlreadyUnbinding", + "fields": [], + "index": 28, + "docs": [ + "The username cannot be unbound because it is already unbinding." + ] + }, + { + "name": "InsufficientPrivileges", + "fields": [], + "index": 29, + "docs": [ + "The action cannot be performed because of insufficient privileges (e.g. authority", + "trying to unbind a username provided by the system)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 764, + "type": { + "path": [ + "pallet_society", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 4, + "typeName": "Rank", + "docs": [] + }, + { + "name": "strikes", + "type": 4, + "typeName": "StrikeCount", + "docs": [] + }, + { + "name": "vouching", + "type": 765, + "typeName": "Option", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 765, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 766 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 766, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 766, + "type": { + "path": [ + "pallet_society", + "VouchingStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Vouching", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Banned", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 767, + "type": { + "path": [ + "pallet_society", + "PayoutRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "PayoutsVec", + "type": 768 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "paid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "payouts", + "type": 768, + "typeName": "PayoutsVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 768, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 769 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 770, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 769, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 770, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 769 + } + }, + "docs": [] + } + }, + { + "id": 771, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 772 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 774, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 772, + "type": { + "path": [ + "pallet_society", + "Bid" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "kind", + "type": 773, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 773, + "type": { + "path": [ + "pallet_society", + "BidKind" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Deposit", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Vouch", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 774, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 772 + } + }, + "docs": [] + } + }, + { + "id": 775, + "type": { + "path": [ + "pallet_society", + "Candidacy" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + }, + { + "name": "kind", + "type": 773, + "typeName": "BidKind", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "tally", + "type": 776, + "typeName": "Tally", + "docs": [] + }, + { + "name": "skeptic_struck", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 776, + "type": { + "path": [ + "pallet_society", + "Tally" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approvals", + "type": 4, + "typeName": "VoteCount", + "docs": [] + }, + { + "name": "rejections", + "type": 4, + "typeName": "VoteCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 777, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 778, + "type": { + "path": [ + "pallet_society", + "Vote" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "approve", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "weight", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 779, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 780, + "type": { + "path": [ + "pallet_society", + "IntakeRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "bid", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "round", + "type": 4, + "typeName": "RoundIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 781, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 0, + 776 + ] + }, + "docs": [] + } + }, + { + "id": 782, + "type": { + "path": [ + "pallet_society", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "User is not a member." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 1, + "docs": [ + "User is already a member." + ] + }, + { + "name": "Suspended", + "fields": [], + "index": 2, + "docs": [ + "User is suspended." + ] + }, + { + "name": "NotSuspended", + "fields": [], + "index": 3, + "docs": [ + "User is not suspended." + ] + }, + { + "name": "NoPayout", + "fields": [], + "index": 4, + "docs": [ + "Nothing to payout." + ] + }, + { + "name": "AlreadyFounded", + "fields": [], + "index": 5, + "docs": [ + "Society already founded." + ] + }, + { + "name": "InsufficientPot", + "fields": [], + "index": 6, + "docs": [ + "Not enough in pot to accept candidate." + ] + }, + { + "name": "AlreadyVouching", + "fields": [], + "index": 7, + "docs": [ + "Member is already vouching or banned from vouching again." + ] + }, + { + "name": "NotVouchingOnBidder", + "fields": [], + "index": 8, + "docs": [ + "Member is not vouching." + ] + }, + { + "name": "Head", + "fields": [], + "index": 9, + "docs": [ + "Cannot remove the head of the chain." + ] + }, + { + "name": "Founder", + "fields": [], + "index": 10, + "docs": [ + "Cannot remove the founder." + ] + }, + { + "name": "AlreadyBid", + "fields": [], + "index": 11, + "docs": [ + "User has already made a bid." + ] + }, + { + "name": "AlreadyCandidate", + "fields": [], + "index": 12, + "docs": [ + "User is already a candidate." + ] + }, + { + "name": "NotCandidate", + "fields": [], + "index": 13, + "docs": [ + "User is not a candidate." + ] + }, + { + "name": "MaxMembers", + "fields": [], + "index": 14, + "docs": [ + "Too many members in the society." + ] + }, + { + "name": "NotFounder", + "fields": [], + "index": 15, + "docs": [ + "The caller is not the founder." + ] + }, + { + "name": "NotHead", + "fields": [], + "index": 16, + "docs": [ + "The caller is not the head." + ] + }, + { + "name": "NotApproved", + "fields": [], + "index": 17, + "docs": [ + "The membership cannot be claimed as the candidate was not clearly approved." + ] + }, + { + "name": "NotRejected", + "fields": [], + "index": 18, + "docs": [ + "The candidate cannot be kicked as the candidate was not clearly rejected." + ] + }, + { + "name": "Approved", + "fields": [], + "index": 19, + "docs": [ + "The candidacy cannot be dropped as the candidate was clearly approved." + ] + }, + { + "name": "Rejected", + "fields": [], + "index": 20, + "docs": [ + "The candidacy cannot be bestowed as the candidate was clearly rejected." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 21, + "docs": [ + "The candidacy cannot be concluded as the voting is still in progress." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 22, + "docs": [ + "The candidacy cannot be pruned until a full additional intake period has passed." + ] + }, + { + "name": "Voted", + "fields": [], + "index": 23, + "docs": [ + "The skeptic already voted." + ] + }, + { + "name": "Expired", + "fields": [], + "index": 24, + "docs": [ + "The skeptic need not vote on candidates from expired rounds." + ] + }, + { + "name": "NotBidder", + "fields": [], + "index": 25, + "docs": [ + "User is not a bidder." + ] + }, + { + "name": "NoDefender", + "fields": [], + "index": 26, + "docs": [ + "There is no defender currently." + ] + }, + { + "name": "NotGroup", + "fields": [], + "index": 27, + "docs": [ + "Group doesn't exist." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 28, + "docs": [ + "The member is already elevated to this rank." + ] + }, + { + "name": "AlreadyPunished", + "fields": [], + "index": 29, + "docs": [ + "The skeptic has already been punished for this offence." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 30, + "docs": [ + "Funds are insufficient to pay off society debts." + ] + }, + { + "name": "NoVotes", + "fields": [], + "index": 31, + "docs": [ + "The candidate/defender has no stale votes to remove." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 32, + "docs": [ + "There is no deposit associated with a bid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 783, + "type": { + "path": [ + "pallet_recovery", + "RecoveryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 784 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delay_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 784, + "typeName": "Friends", + "docs": [] + }, + { + "name": "threshold", + "type": 100, + "typeName": "u16", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 784, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 785, + "type": { + "path": [ + "pallet_recovery", + "ActiveRecovery" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Friends", + "type": 784 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "created", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "friends", + "type": 784, + "typeName": "Friends", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 786, + "type": { + "path": [ + "pallet_recovery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "User is not allowed to make a call on behalf of this account" + ] + }, + { + "name": "ZeroThreshold", + "fields": [], + "index": 1, + "docs": [ + "Threshold must be greater than zero" + ] + }, + { + "name": "NotEnoughFriends", + "fields": [], + "index": 2, + "docs": [ + "Friends list must be greater than zero and threshold" + ] + }, + { + "name": "MaxFriends", + "fields": [], + "index": 3, + "docs": [ + "Friends list must be less than max friends" + ] + }, + { + "name": "NotSorted", + "fields": [], + "index": 4, + "docs": [ + "Friends list must be sorted and free of duplicates" + ] + }, + { + "name": "NotRecoverable", + "fields": [], + "index": 5, + "docs": [ + "This account is not set up for recovery" + ] + }, + { + "name": "AlreadyRecoverable", + "fields": [], + "index": 6, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "AlreadyStarted", + "fields": [], + "index": 7, + "docs": [ + "A recovery process has already started for this account" + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 8, + "docs": [ + "A recovery process has not started for this rescuer" + ] + }, + { + "name": "NotFriend", + "fields": [], + "index": 9, + "docs": [ + "This account is not a friend who can vouch" + ] + }, + { + "name": "DelayPeriod", + "fields": [], + "index": 10, + "docs": [ + "The friend must wait until the delay period to vouch for this recovery" + ] + }, + { + "name": "AlreadyVouched", + "fields": [], + "index": 11, + "docs": [ + "This user has already vouched for this recovery" + ] + }, + { + "name": "Threshold", + "fields": [], + "index": 12, + "docs": [ + "The threshold for recovering this account has not been met" + ] + }, + { + "name": "StillActive", + "fields": [], + "index": 13, + "docs": [ + "There are still active recovery attempts that need to be closed" + ] + }, + { + "name": "AlreadyProxy", + "fields": [], + "index": 14, + "docs": [ + "This account is already set up for recovery" + ] + }, + { + "name": "BadState", + "fields": [], + "index": 15, + "docs": [ + "Some internal state is broken." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 787, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 321 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 788, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 788, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 321 + } + }, + "docs": [] + } + }, + { + "id": 789, + "type": { + "path": [ + "pallet_vesting", + "Releases" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "V0", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "V1", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 790, + "type": { + "path": [ + "pallet_vesting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotVesting", + "fields": [], + "index": 0, + "docs": [ + "The account given is not vesting." + ] + }, + { + "name": "AtMaxVestingSchedules", + "fields": [], + "index": 1, + "docs": [ + "The account already has `MaxVestingSchedules` count of schedules and thus", + "cannot add another one. Consider merging existing schedules in order to add another." + ] + }, + { + "name": "AmountLow", + "fields": [], + "index": 2, + "docs": [ + "Amount being transferred is too low to create a vesting schedule." + ] + }, + { + "name": "ScheduleIndexOutOfBounds", + "fields": [], + "index": 3, + "docs": [ + "An index was out of bounds of the vesting schedules." + ] + }, + { + "name": "InvalidScheduleParams", + "fields": [], + "index": 4, + "docs": [ + "Failed to create a new schedule because some parameter was invalid." + ] + } + ] + } + }, + "docs": [ + "Error for the vesting pallet." + ] + } + }, + { + "id": 791, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 792 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 794, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 792, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 793 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 793, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 793, + "type": { + "path": [ + "pallet_scheduler", + "Scheduled" + ], + "params": [ + { + "name": "Name", + "type": 1 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PalletsOrigin", + "type": 148 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "maybe_id", + "type": 94, + "typeName": "Option", + "docs": [] + }, + { + "name": "priority", + "type": 2, + "typeName": "schedule::Priority", + "docs": [] + }, + { + "name": "call", + "type": 140, + "typeName": "Call", + "docs": [] + }, + { + "name": "maybe_periodic", + "type": 323, + "typeName": "Option>", + "docs": [] + }, + { + "name": "origin", + "type": 148, + "typeName": "PalletsOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 794, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 792 + } + }, + "docs": [] + } + }, + { + "id": 795, + "type": { + "path": [ + "pallet_scheduler", + "RetryConfig" + ], + "params": [ + { + "name": "Period", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "total_retries", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "remaining", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "period", + "type": 4, + "typeName": "Period", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 796, + "type": { + "path": [ + "pallet_scheduler", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "FailedToSchedule", + "fields": [], + "index": 0, + "docs": [ + "Failed to schedule a call" + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Cannot find the scheduled call." + ] + }, + { + "name": "TargetBlockNumberInPast", + "fields": [], + "index": 2, + "docs": [ + "Given target block number is in the past." + ] + }, + { + "name": "RescheduleNoChange", + "fields": [], + "index": 3, + "docs": [ + "Reschedule failed because it does not change scheduled time." + ] + }, + { + "name": "Named", + "fields": [], + "index": 4, + "docs": [ + "Attempt to use a non-named function on a named task." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 797, + "type": { + "path": [ + "pallet_glutton", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyInitialized", + "fields": [], + "index": 0, + "docs": [ + "The pallet was already initialized.", + "", + "Set `witness_count` to `Some` to bypass this error." + ] + }, + { + "name": "InsaneLimit", + "fields": [], + "index": 1, + "docs": [ + "The limit was over [`crate::RESOURCE_HARD_LIMIT`]." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 798, + "type": { + "path": [ + "pallet_preimage", + "OldRequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "deposit", + "type": 64, + "typeName": "(AccountId, Balance)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "deposit", + "type": 799, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "len", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 799, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 64 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 64, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 800, + "type": { + "path": [ + "pallet_preimage", + "RequestStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Ticket", + "type": 801 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unrequested", + "fields": [ + { + "name": "ticket", + "type": 802, + "typeName": "(AccountId, Ticket)", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Requested", + "fields": [ + { + "name": "maybe_ticket", + "type": 803, + "typeName": "Option<(AccountId, Ticket)>", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "maybe_len", + "type": 50, + "typeName": "Option", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 801, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 802, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 801 + ] + }, + "docs": [] + } + }, + { + "id": 803, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 802 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 802, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 804, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 805, + "type": { + "path": [ + "pallet_preimage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooBig", + "fields": [], + "index": 0, + "docs": [ + "Preimage is too large to store on-chain." + ] + }, + { + "name": "AlreadyNoted", + "fields": [], + "index": 1, + "docs": [ + "Preimage has already been noted on-chain." + ] + }, + { + "name": "NotAuthorized", + "fields": [], + "index": 2, + "docs": [ + "The user is not authorized to perform this action." + ] + }, + { + "name": "NotNoted", + "fields": [], + "index": 3, + "docs": [ + "The preimage cannot be removed since it has not yet been noted." + ] + }, + { + "name": "Requested", + "fields": [], + "index": 4, + "docs": [ + "A preimage may not be removed when there are outstanding requests." + ] + }, + { + "name": "NotRequested", + "fields": [], + "index": 5, + "docs": [ + "The preimage request cannot be removed since no outstanding requests exist." + ] + }, + { + "name": "TooMany", + "fields": [], + "index": 6, + "docs": [ + "More than `MAX_HASH_UPGRADE_BULK_COUNT` hashes were requested to be upgraded at once." + ] + }, + { + "name": "TooFew", + "fields": [], + "index": 7, + "docs": [ + "Too few hashes were requested to be upgraded (i.e. zero)." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 806, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 807, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 807, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 808 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 809, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 808, + "type": { + "path": [ + "pallet_proxy", + "ProxyDefinition" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ProxyType", + "type": 99 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "delegate", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "proxy_type", + "type": 99, + "typeName": "ProxyType", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 809, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 808 + } + }, + "docs": [] + } + }, + { + "id": 810, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 811, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 811, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 812 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 813, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 812, + "type": { + "path": [ + "pallet_proxy", + "Announcement" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Hash", + "type": 13 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "real", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "call_hash", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "height", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 813, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 812 + } + }, + "docs": [] + } + }, + { + "id": 814, + "type": { + "path": [ + "pallet_proxy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooMany", + "fields": [], + "index": 0, + "docs": [ + "There are too many proxies registered or too many announcements pending." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 1, + "docs": [ + "Proxy registration not found." + ] + }, + { + "name": "NotProxy", + "fields": [], + "index": 2, + "docs": [ + "Sender is not a proxy of the account to be proxied." + ] + }, + { + "name": "Unproxyable", + "fields": [], + "index": 3, + "docs": [ + "A call which is incompatible with the proxy type's filter was attempted." + ] + }, + { + "name": "Duplicate", + "fields": [], + "index": 4, + "docs": [ + "Account is already a proxy." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 5, + "docs": [ + "Call may not be made by proxy because it may escalate its privileges." + ] + }, + { + "name": "Unannounced", + "fields": [], + "index": 6, + "docs": [ + "Announcement, if made at all, was made too recently." + ] + }, + { + "name": "NoSelfProxy", + "fields": [], + "index": 7, + "docs": [ + "Cannot add self as proxy." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 815, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1 + ] + }, + "docs": [] + } + }, + { + "id": 816, + "type": { + "path": [ + "pallet_multisig", + "Multisig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "MaxApprovals", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "when", + "type": 103, + "typeName": "Timepoint", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 680, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 817, + "type": { + "path": [ + "pallet_multisig", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "MinimumThreshold", + "fields": [], + "index": 0, + "docs": [ + "Threshold must be 2 or greater." + ] + }, + { + "name": "AlreadyApproved", + "fields": [], + "index": 1, + "docs": [ + "Call is already approved by this signatory." + ] + }, + { + "name": "NoApprovalsNeeded", + "fields": [], + "index": 2, + "docs": [ + "Call doesn't need any (more) approvals." + ] + }, + { + "name": "TooFewSignatories", + "fields": [], + "index": 3, + "docs": [ + "There are too few signatories in the list." + ] + }, + { + "name": "TooManySignatories", + "fields": [], + "index": 4, + "docs": [ + "There are too many signatories in the list." + ] + }, + { + "name": "SignatoriesOutOfOrder", + "fields": [], + "index": 5, + "docs": [ + "The signatories were provided out of order; they should be ordered." + ] + }, + { + "name": "SenderInSignatories", + "fields": [], + "index": 6, + "docs": [ + "The sender was contained in the other signatories; it shouldn't be." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 7, + "docs": [ + "Multisig operation not found in storage." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 8, + "docs": [ + "Only the account that originally created the multisig is able to cancel it or update", + "its deposits." + ] + }, + { + "name": "NoTimepoint", + "fields": [], + "index": 9, + "docs": [ + "No timepoint was given, yet the multisig operation is already underway." + ] + }, + { + "name": "WrongTimepoint", + "fields": [], + "index": 10, + "docs": [ + "A different timepoint was given to the multisig operation that is underway." + ] + }, + { + "name": "UnexpectedTimepoint", + "fields": [], + "index": 11, + "docs": [ + "A timepoint was given, yet no multisig operation is underway." + ] + }, + { + "name": "MaxWeightTooLow", + "fields": [], + "index": 12, + "docs": [ + "The maximum weight information provided was too low." + ] + }, + { + "name": "AlreadyStored", + "fields": [], + "index": 13, + "docs": [ + "The data to be stored is already stored." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 818, + "type": { + "path": [ + "pallet_bounties", + "Bounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proposer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "bond", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 819, + "typeName": "BountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 819, + "type": { + "path": [ + "pallet_bounties", + "BountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Proposed", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Funded", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "update_due", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "ApprovedWithCurator", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 820, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 821, + "type": { + "path": [ + "pallet_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientProposersBalance", + "fields": [], + "index": 0, + "docs": [ + "Proposer's balance is too low." + ] + }, + { + "name": "InvalidIndex", + "fields": [], + "index": 1, + "docs": [ + "No proposal or bounty at that index." + ] + }, + { + "name": "ReasonTooBig", + "fields": [], + "index": 2, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "UnexpectedStatus", + "fields": [], + "index": 3, + "docs": [ + "The bounty status is unexpected." + ] + }, + { + "name": "RequireCurator", + "fields": [], + "index": 4, + "docs": [ + "Require bounty curator." + ] + }, + { + "name": "InvalidValue", + "fields": [], + "index": 5, + "docs": [ + "Invalid bounty value." + ] + }, + { + "name": "InvalidFee", + "fields": [], + "index": 6, + "docs": [ + "Invalid bounty fee." + ] + }, + { + "name": "PendingPayout", + "fields": [], + "index": 7, + "docs": [ + "A bounty payout is pending.", + "To cancel the bounty, you must unassign and slash the curator." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 8, + "docs": [ + "The bounties cannot be claimed/closed because it's still in the countdown period." + ] + }, + { + "name": "HasActiveChildBounty", + "fields": [], + "index": 9, + "docs": [ + "The bounty cannot be closed because it has active child bounties." + ] + }, + { + "name": "TooManyQueued", + "fields": [], + "index": 10, + "docs": [ + "Too many approvals are already queued." + ] + }, + { + "name": "NotProposer", + "fields": [], + "index": 11, + "docs": [ + "User is not the proposer of the bounty." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 822, + "type": { + "path": [ + "pallet_tips", + "OpenTip" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "reason", + "type": 13, + "typeName": "Hash", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "finder", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "closes", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "tips", + "type": 63, + "typeName": "Vec<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "finders_fee", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 823, + "type": { + "path": [ + "pallet_tips", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ReasonTooBig", + "fields": [], + "index": 0, + "docs": [ + "The reason given is just too big." + ] + }, + { + "name": "AlreadyKnown", + "fields": [], + "index": 1, + "docs": [ + "The tip was already found/started." + ] + }, + { + "name": "UnknownTip", + "fields": [], + "index": 2, + "docs": [ + "The tip hash is unknown." + ] + }, + { + "name": "MaxTipAmountExceeded", + "fields": [], + "index": 3, + "docs": [ + "The tip given was too generous." + ] + }, + { + "name": "NotFinder", + "fields": [], + "index": 4, + "docs": [ + "The account attempting to retract the tip is not the finder of the tip." + ] + }, + { + "name": "StillOpen", + "fields": [], + "index": 5, + "docs": [ + "The tip cannot be claimed/closed because there are not enough tippers yet." + ] + }, + { + "name": "Premature", + "fields": [], + "index": 6, + "docs": [ + "The tip cannot be claimed/closed because it's still in the countdown period." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 824, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "supply", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "min_balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "is_sufficient", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "accounts", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "sufficients", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "approvals", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "status", + "type": 825, + "typeName": "AssetStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 825, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Live", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Destroying", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 826, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetAccount" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "Extra", + "type": 34 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 827, + "typeName": "AccountStatus", + "docs": [] + }, + { + "name": "reason", + "type": 828, + "typeName": "ExistenceReason", + "docs": [] + }, + { + "name": "extra", + "type": 34, + "typeName": "Extra", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 827, + "type": { + "path": [ + "pallet_assets", + "types", + "AccountStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Liquid", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Frozen", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Blocked", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 828, + "type": { + "path": [ + "pallet_assets", + "types", + "ExistenceReason" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Consumer", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Sufficient", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DepositHeld", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "DepositRefunded", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "DepositFrom", + "fields": [ + { + "name": null, + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 829, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 0, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 830, + "type": { + "path": [ + "pallet_assets", + "types", + "Approval" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 831, + "type": { + "path": [ + "pallet_assets", + "types", + "AssetMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "BoundedString", + "type": 832 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "name", + "type": 832, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "symbol", + "type": 832, + "typeName": "BoundedString", + "docs": [] + }, + { + "name": "decimals", + "type": 2, + "typeName": "u8", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 832, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 833, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 834, + "type": { + "path": [ + "pallet_assets", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BalanceLow", + "fields": [], + "index": 0, + "docs": [ + "Account balance must be greater than or equal to the transfer amount." + ] + }, + { + "name": "NoAccount", + "fields": [], + "index": 1, + "docs": [ + "The account to alter does not exist." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "Unknown", + "fields": [], + "index": 3, + "docs": [ + "The given asset ID is unknown." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 4, + "docs": [ + "The origin account is frozen." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The asset ID is already taken." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 6, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "MinBalanceZero", + "fields": [], + "index": 7, + "docs": [ + "Minimum balance should be non-zero." + ] + }, + { + "name": "UnavailableConsumer", + "fields": [], + "index": 8, + "docs": [ + "Unable to increment the consumer reference counters on the account. Either no provider", + "reference exists to allow a non-zero balance of a non-self-sufficient asset, or one", + "fewer then the maximum number of consumers has been reached." + ] + }, + { + "name": "BadMetadata", + "fields": [], + "index": 9, + "docs": [ + "Invalid metadata given." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "WouldDie", + "fields": [], + "index": 11, + "docs": [ + "The source account would not survive the transfer and it needs to stay alive." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 12, + "docs": [ + "The asset-account already exists." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 13, + "docs": [ + "The asset-account doesn't have an associated deposit." + ] + }, + { + "name": "WouldBurn", + "fields": [], + "index": 14, + "docs": [ + "The operation would result in funds being burned." + ] + }, + { + "name": "LiveAsset", + "fields": [], + "index": 15, + "docs": [ + "The asset is a live asset and is actively being used. Usually emit for operations such", + "as `start_destroy` which require the asset to be in a destroying state." + ] + }, + { + "name": "AssetNotLive", + "fields": [], + "index": 16, + "docs": [ + "The asset is not live, and likely being destroyed." + ] + }, + { + "name": "IncorrectStatus", + "fields": [], + "index": 17, + "docs": [ + "The asset status is not the expected status." + ] + }, + { + "name": "NotFrozen", + "fields": [], + "index": 18, + "docs": [ + "The asset should be frozen before the given operation." + ] + }, + { + "name": "CallbackFailed", + "fields": [], + "index": 19, + "docs": [ + "Callback action resulted in error" + ] + }, + { + "name": "BadAssetId", + "fields": [], + "index": 20, + "docs": [ + "The asset ID must be equal to the [`NextAssetId`]." + ] + }, + { + "name": "ContainsFreezes", + "fields": [], + "index": 21, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain freezes." + ] + }, + { + "name": "ContainsHolds", + "fields": [], + "index": 22, + "docs": [ + "The asset cannot be destroyed because some accounts for this asset contain holds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 835, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 245 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 836, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 836, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 245 + } + }, + "docs": [] + } + }, + { + "id": 837, + "type": { + "path": [ + "pallet_beefy", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidKeyOwnershipProof", + "fields": [], + "index": 0, + "docs": [ + "A key ownership proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidDoubleVotingProof", + "fields": [], + "index": 1, + "docs": [ + "A double voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidForkVotingProof", + "fields": [], + "index": 2, + "docs": [ + "A fork voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidFutureBlockVotingProof", + "fields": [], + "index": 3, + "docs": [ + "A future block voting proof provided as part of an equivocation report is invalid." + ] + }, + { + "name": "InvalidEquivocationProofSession", + "fields": [], + "index": 4, + "docs": [ + "The session of the equivocation proof is invalid" + ] + }, + { + "name": "DuplicateOffenceReport", + "fields": [], + "index": 5, + "docs": [ + "A given equivocation report is valid but already previously reported." + ] + }, + { + "name": "InvalidConfiguration", + "fields": [], + "index": 6, + "docs": [ + "Submitted configuration is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 838, + "type": { + "path": [ + "sp_consensus_beefy", + "mmr", + "BeefyAuthoritySet" + ], + "params": [ + { + "name": "AuthoritySetCommitment", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 12, + "typeName": "crate::ValidatorSetId", + "docs": [] + }, + { + "name": "len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "keyset_commitment", + "type": 13, + "typeName": "AuthoritySetCommitment", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 839, + "type": { + "path": [ + "pallet_lottery", + "LotteryConfig" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "length", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "delay", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "repeat", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 840, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 841 + ] + }, + "docs": [] + } + }, + { + "id": 841, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 109 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 842, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 842, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 109 + } + }, + "docs": [] + } + }, + { + "id": 843, + "type": { + "path": [ + "pallet_lottery", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "fields": [], + "index": 0, + "docs": [ + "A lottery has not been configured." + ] + }, + { + "name": "InProgress", + "fields": [], + "index": 1, + "docs": [ + "A lottery is already in progress." + ] + }, + { + "name": "AlreadyEnded", + "fields": [], + "index": 2, + "docs": [ + "A lottery has already ended." + ] + }, + { + "name": "InvalidCall", + "fields": [], + "index": 3, + "docs": [ + "The call is not valid for an open lottery." + ] + }, + { + "name": "AlreadyParticipating", + "fields": [], + "index": 4, + "docs": [ + "You are already participating in the lottery with this call." + ] + }, + { + "name": "TooManyCalls", + "fields": [], + "index": 5, + "docs": [ + "Too many calls for a single lottery." + ] + }, + { + "name": "EncodingFailed", + "fields": [], + "index": 6, + "docs": [ + "Failed to encode calls" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 844, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 769 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 770, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 845, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 846 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 847, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 846, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Bid" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 847, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 846 + } + }, + "docs": [] + } + }, + { + "id": 848, + "type": { + "path": [ + "pallet_nis", + "pallet", + "SummaryRecord" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion_owed", + "type": 111, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "index", + "type": 4, + "typeName": "ReceiptIndex", + "docs": [] + }, + { + "name": "thawed", + "type": 111, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "last_period", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "receipts_on_hold", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 849, + "type": { + "path": [ + "pallet_nis", + "pallet", + "ReceiptRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "proportion", + "type": 111, + "typeName": "Perquintill", + "docs": [] + }, + { + "name": "owner", + "type": 799, + "typeName": "Option<(AccountId, Balance)>", + "docs": [] + }, + { + "name": "expiry", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 850, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 111, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 851, + "type": { + "path": [ + "pallet_nis", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "DurationTooSmall", + "fields": [], + "index": 0, + "docs": [ + "The duration of the bid is less than one." + ] + }, + { + "name": "DurationTooBig", + "fields": [], + "index": 1, + "docs": [ + "The duration is the bid is greater than the number of queues." + ] + }, + { + "name": "AmountTooSmall", + "fields": [], + "index": 2, + "docs": [ + "The amount of the bid is less than the minimum allowed." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 3, + "docs": [ + "The queue for the bid's duration is full and the amount bid is too low to get in", + "through replacing an existing bid." + ] + }, + { + "name": "UnknownReceipt", + "fields": [], + "index": 4, + "docs": [ + "Receipt index is unknown." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 5, + "docs": [ + "Not the owner of the receipt." + ] + }, + { + "name": "NotExpired", + "fields": [], + "index": 6, + "docs": [ + "Bond not yet at expiry date." + ] + }, + { + "name": "UnknownBid", + "fields": [], + "index": 7, + "docs": [ + "The given bid for retraction is not found." + ] + }, + { + "name": "PortionTooBig", + "fields": [], + "index": 8, + "docs": [ + "The portion supplied is beyond the value of the receipt." + ] + }, + { + "name": "Unfunded", + "fields": [], + "index": 9, + "docs": [ + "Not enough funds are held to pay out." + ] + }, + { + "name": "AlreadyFunded", + "fields": [], + "index": 10, + "docs": [ + "There are enough funds for what is required." + ] + }, + { + "name": "Throttled", + "fields": [], + "index": 11, + "docs": [ + "The thaw throttle has been reached for this period." + ] + }, + { + "name": "MakesDust", + "fields": [], + "index": 12, + "docs": [ + "The operation would result in a receipt worth an insignificant value." + ] + }, + { + "name": "AlreadyCommunal", + "fields": [], + "index": 13, + "docs": [ + "The receipt is already communal." + ] + }, + { + "name": "AlreadyPrivate", + "fields": [], + "index": 14, + "docs": [ + "The receipt is already private." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 852, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "issuer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "freezer", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "free_holding", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 853, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 4, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 854, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approved", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 855, + "type": { + "path": [ + "pallet_uniques", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 856, + "type": { + "path": [ + "pallet_uniques", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "data", + "type": 113, + "typeName": "BoundedVec", + "docs": [] + }, + { + "name": "is_frozen", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 857, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 50, + 85 + ] + }, + "docs": [] + } + }, + { + "id": 858, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 115, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 859, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 43 + ] + }, + "docs": [] + } + }, + { + "id": 860, + "type": { + "path": [ + "pallet_uniques", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 3, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 4, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "InUse", + "fields": [], + "index": 5, + "docs": [ + "The item ID is already taken." + ] + }, + { + "name": "Frozen", + "fields": [], + "index": 6, + "docs": [ + "The item or collection is frozen." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 7, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "NoDelegate", + "fields": [], + "index": 8, + "docs": [ + "There is no delegate approved." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 9, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 10, + "docs": [ + "The named owner has not signed ownership of the collection is acceptable." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 11, + "docs": [ + "The item is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 12, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyAlreadySet", + "fields": [], + "index": 13, + "docs": [ + "The max supply has already been set." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 14, + "docs": [ + "The provided max supply is less to the amount of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 15, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 16, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 17, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "NoMetadata", + "fields": [], + "index": 18, + "docs": [ + "No metadata is found." + ] + }, + { + "name": "WrongMetadata", + "fields": [], + "index": 19, + "docs": [ + "Wrong metadata key/value bytes supplied." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 20, + "docs": [ + "An attribute is not found." + ] + }, + { + "name": "WrongAttribute", + "fields": [], + "index": 21, + "docs": [ + "Wrong attribute key/value bytes supplied." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 861, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "DepositBalance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "owner_deposit", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + }, + { + "name": "items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_metadatas", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "item_configs", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "attributes", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 862, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 863 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "CollectionRole", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 863, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Issuer", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Freezer", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Admin", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 864, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDetails" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Deposit", + "type": 865 + }, + { + "name": "Approvals", + "type": 866 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "approvals", + "type": 866, + "typeName": "Approvals", + "docs": [] + }, + { + "name": "deposit", + "type": 865, + "typeName": "Deposit", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 865, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 866, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 50 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 867, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 867, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 0 + }, + { + "name": "V", + "type": 50 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 868, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 868, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 869 + } + }, + "docs": [] + } + }, + { + "id": 869, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 50 + ] + }, + "docs": [] + } + }, + { + "id": 870, + "type": { + "path": [ + "pallet_nfts", + "types", + "CollectionMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 6 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 871, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadata" + ], + "params": [ + { + "name": "Deposit", + "type": 872 + }, + { + "name": "StringLimit", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "deposit", + "type": 872, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "data", + "type": 117, + "typeName": "BoundedVec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 872, + "type": { + "path": [ + "pallet_nfts", + "types", + "ItemMetadataDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 873, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 50, + 118, + 115 + ] + }, + "docs": [] + } + }, + { + "id": 874, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 117, + 875 + ] + }, + "docs": [] + } + }, + { + "id": 875, + "type": { + "path": [ + "pallet_nfts", + "types", + "AttributeDeposit" + ], + "params": [ + { + "name": "DepositBalance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "account", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "DepositBalance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 876, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_set", + "BoundedBTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 877, + "typeName": "BTreeSet", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 877, + "type": { + "path": [ + "BTreeSet" + ], + "params": [ + { + "name": "T", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 878, + "type": { + "path": [ + "pallet_nfts", + "types", + "PendingSwap" + ], + "params": [ + { + "name": "CollectionId", + "type": 4 + }, + { + "name": "ItemId", + "type": 4 + }, + { + "name": "ItemPriceWithDirection", + "type": 120 + }, + { + "name": "Deadline", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "desired_collection", + "type": 4, + "typeName": "CollectionId", + "docs": [] + }, + { + "name": "desired_item", + "type": 50, + "typeName": "Option", + "docs": [] + }, + { + "name": "price", + "type": 119, + "typeName": "Option", + "docs": [] + }, + { + "name": "deadline", + "type": 4, + "typeName": "Deadline", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 879, + "type": { + "path": [ + "pallet_nfts", + "types", + "BitFlags" + ], + "params": [ + { + "name": "T", + "type": 880 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 12, + "typeName": "PalletFeature", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 880, + "type": { + "path": [ + "pallet_nfts", + "types", + "PalletFeature" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Trading", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Attributes", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Approvals", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Swaps", + "fields": [], + "index": 8, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 881, + "type": { + "path": [ + "pallet_nfts", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NoPermission", + "fields": [], + "index": 0, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "UnknownCollection", + "fields": [], + "index": 1, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "AlreadyExists", + "fields": [], + "index": 2, + "docs": [ + "The item ID has already been used for an item." + ] + }, + { + "name": "ApprovalExpired", + "fields": [], + "index": 3, + "docs": [ + "The approval had a deadline that expired, so the approval isn't valid anymore." + ] + }, + { + "name": "WrongOwner", + "fields": [], + "index": 4, + "docs": [ + "The owner turned out to be different to what was expected." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 5, + "docs": [ + "The witness data given does not match the current state of the chain." + ] + }, + { + "name": "CollectionIdInUse", + "fields": [], + "index": 6, + "docs": [ + "Collection ID is already taken." + ] + }, + { + "name": "ItemsNonTransferable", + "fields": [], + "index": 7, + "docs": [ + "Items within that collection are non-transferable." + ] + }, + { + "name": "NotDelegate", + "fields": [], + "index": 8, + "docs": [ + "The provided account is not a delegate." + ] + }, + { + "name": "WrongDelegate", + "fields": [], + "index": 9, + "docs": [ + "The delegate turned out to be different to what was expected." + ] + }, + { + "name": "Unapproved", + "fields": [], + "index": 10, + "docs": [ + "No approval exists that would allow the transfer." + ] + }, + { + "name": "Unaccepted", + "fields": [], + "index": 11, + "docs": [ + "The named owner has not signed ownership acceptance of the collection." + ] + }, + { + "name": "ItemLocked", + "fields": [], + "index": 12, + "docs": [ + "The item is locked (non-transferable)." + ] + }, + { + "name": "LockedItemAttributes", + "fields": [], + "index": 13, + "docs": [ + "Item's attributes are locked." + ] + }, + { + "name": "LockedCollectionAttributes", + "fields": [], + "index": 14, + "docs": [ + "Collection's attributes are locked." + ] + }, + { + "name": "LockedItemMetadata", + "fields": [], + "index": 15, + "docs": [ + "Item's metadata is locked." + ] + }, + { + "name": "LockedCollectionMetadata", + "fields": [], + "index": 16, + "docs": [ + "Collection's metadata is locked." + ] + }, + { + "name": "MaxSupplyReached", + "fields": [], + "index": 17, + "docs": [ + "All items have been minted." + ] + }, + { + "name": "MaxSupplyLocked", + "fields": [], + "index": 18, + "docs": [ + "The max supply is locked and can't be changed." + ] + }, + { + "name": "MaxSupplyTooSmall", + "fields": [], + "index": 19, + "docs": [ + "The provided max supply is less than the number of items a collection already has." + ] + }, + { + "name": "UnknownItem", + "fields": [], + "index": 20, + "docs": [ + "The given item ID is unknown." + ] + }, + { + "name": "UnknownSwap", + "fields": [], + "index": 21, + "docs": [ + "Swap doesn't exist." + ] + }, + { + "name": "MetadataNotFound", + "fields": [], + "index": 22, + "docs": [ + "The given item has no metadata set." + ] + }, + { + "name": "AttributeNotFound", + "fields": [], + "index": 23, + "docs": [ + "The provided attribute can't be found." + ] + }, + { + "name": "NotForSale", + "fields": [], + "index": 24, + "docs": [ + "Item is not for sale." + ] + }, + { + "name": "BidTooLow", + "fields": [], + "index": 25, + "docs": [ + "The provided bid is too low." + ] + }, + { + "name": "ReachedApprovalLimit", + "fields": [], + "index": 26, + "docs": [ + "The item has reached its approval limit." + ] + }, + { + "name": "DeadlineExpired", + "fields": [], + "index": 27, + "docs": [ + "The deadline has already expired." + ] + }, + { + "name": "WrongDuration", + "fields": [], + "index": 28, + "docs": [ + "The duration provided should be less than or equal to `MaxDeadlineDuration`." + ] + }, + { + "name": "MethodDisabled", + "fields": [], + "index": 29, + "docs": [ + "The method is disabled by system settings." + ] + }, + { + "name": "WrongSetting", + "fields": [], + "index": 30, + "docs": [ + "The provided setting can't be set." + ] + }, + { + "name": "InconsistentItemConfig", + "fields": [], + "index": 31, + "docs": [ + "Item's config already exists and should be equal to the provided one." + ] + }, + { + "name": "NoConfig", + "fields": [], + "index": 32, + "docs": [ + "Config for a collection or an item can't be found." + ] + }, + { + "name": "RolesNotCleared", + "fields": [], + "index": 33, + "docs": [ + "Some roles were not cleared." + ] + }, + { + "name": "MintNotStarted", + "fields": [], + "index": 34, + "docs": [ + "Mint has not started yet." + ] + }, + { + "name": "MintEnded", + "fields": [], + "index": 35, + "docs": [ + "Mint has already ended." + ] + }, + { + "name": "AlreadyClaimed", + "fields": [], + "index": 36, + "docs": [ + "The provided Item was already used for claiming." + ] + }, + { + "name": "IncorrectData", + "fields": [], + "index": 37, + "docs": [ + "The provided data is incorrect." + ] + }, + { + "name": "WrongOrigin", + "fields": [], + "index": 38, + "docs": [ + "The extrinsic was sent by the wrong origin." + ] + }, + { + "name": "WrongSignature", + "fields": [], + "index": 39, + "docs": [ + "The provided signature is incorrect." + ] + }, + { + "name": "IncorrectMetadata", + "fields": [], + "index": 40, + "docs": [ + "The provided metadata might be too long." + ] + }, + { + "name": "MaxAttributesLimitReached", + "fields": [], + "index": 41, + "docs": [ + "Can't set more attributes per one call." + ] + }, + { + "name": "WrongNamespace", + "fields": [], + "index": 42, + "docs": [ + "The provided namespace isn't supported in this call." + ] + }, + { + "name": "CollectionNotEmpty", + "fields": [], + "index": 43, + "docs": [ + "Can't delete non-empty collections." + ] + }, + { + "name": "WitnessRequired", + "fields": [], + "index": 44, + "docs": [ + "The witness data should be provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 882, + "type": { + "path": [ + "pallet_nft_fractionalization", + "types", + "Details" + ], + "params": [ + { + "name": "AssetId", + "type": 4 + }, + { + "name": "Fractions", + "type": 6 + }, + { + "name": "Deposit", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "asset", + "type": 4, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "fractions", + "type": 6, + "typeName": "Fractions", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "asset_creator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 883, + "type": { + "path": [ + "pallet_nft_fractionalization", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IncorrectAssetId", + "fields": [], + "index": 0, + "docs": [ + "Asset ID does not correspond to locked NFT." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 1, + "docs": [ + "The signing account has no permission to do the operation." + ] + }, + { + "name": "NftNotFound", + "fields": [], + "index": 2, + "docs": [ + "NFT doesn't exist." + ] + }, + { + "name": "NftNotFractionalized", + "fields": [], + "index": 3, + "docs": [ + "NFT has not yet been fractionalised." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 884, + "type": { + "path": [ + "pallet_salary", + "StatusType" + ], + "params": [ + { + "name": "CycleIndex", + "type": 4 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "cycle_index", + "type": 4, + "typeName": "CycleIndex", + "docs": [] + }, + { + "name": "cycle_start", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "budget", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_registrations", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "total_unregistered_paid", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 885, + "type": { + "path": [ + "pallet_salary", + "ClaimantStatus" + ], + "params": [ + { + "name": "CycleIndex", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Id", + "type": 34 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_active", + "type": 4, + "typeName": "CycleIndex", + "docs": [] + }, + { + "name": "status", + "type": 886, + "typeName": "ClaimState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 886, + "type": { + "path": [ + "pallet_salary", + "ClaimState" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Id", + "type": 34 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Nothing", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Registered", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Attempted", + "fields": [ + { + "name": "registered", + "type": 236, + "typeName": "Option", + "docs": [] + }, + { + "name": "id", + "type": 34, + "typeName": "Id", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 887, + "type": { + "path": [ + "pallet_salary", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyStarted", + "fields": [], + "index": 0, + "docs": [ + "The salary system has already been started." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "The account is not a ranked member." + ] + }, + { + "name": "AlreadyInducted", + "fields": [], + "index": 2, + "docs": [ + "The account is already inducted." + ] + }, + { + "name": "NotInducted", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "NoClaim", + "fields": [], + "index": 4, + "docs": [ + "The member does not have a current valid claim." + ] + }, + { + "name": "ClaimZero", + "fields": [], + "index": 5, + "docs": [ + "The member's claim is zero." + ] + }, + { + "name": "TooLate", + "fields": [], + "index": 6, + "docs": [ + "Current cycle's registration period is over." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 7, + "docs": [ + "Current cycle's payment period is not yet begun." + ] + }, + { + "name": "NotYet", + "fields": [], + "index": 8, + "docs": [ + "Cycle is not yet over." + ] + }, + { + "name": "NotStarted", + "fields": [], + "index": 9, + "docs": [ + "The payout cycles have not yet started." + ] + }, + { + "name": "Bankrupt", + "fields": [], + "index": 10, + "docs": [ + "There is no budget left for the payout." + ] + }, + { + "name": "PayError", + "fields": [], + "index": 11, + "docs": [ + "There was some issue with the mechanism of payment." + ] + }, + { + "name": "Inconclusive", + "fields": [], + "index": 12, + "docs": [ + "The payment has neither failed nor succeeded yet." + ] + }, + { + "name": "NotCurrent", + "fields": [], + "index": 13, + "docs": [ + "The cycle is after that in which the payment was made." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 888, + "type": { + "path": [ + "pallet_core_fellowship", + "MemberStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "is_active", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "last_promotion", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "last_proof", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 889, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 130, + 131 + ] + }, + "docs": [] + } + }, + { + "id": 890, + "type": { + "path": [ + "pallet_core_fellowship", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Unranked", + "fields": [], + "index": 0, + "docs": [ + "Member's rank is too low." + ] + }, + { + "name": "Ranked", + "fields": [], + "index": 1, + "docs": [ + "Member's rank is not zero." + ] + }, + { + "name": "UnexpectedRank", + "fields": [], + "index": 2, + "docs": [ + "Member's rank is not as expected - generally means that the rank provided to the call", + "does not agree with the state of the system." + ] + }, + { + "name": "InvalidRank", + "fields": [], + "index": 3, + "docs": [ + "The given rank is invalid - this generally means it's not between 1 and `RANK_COUNT`." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 4, + "docs": [ + "The origin does not have enough permission to do this operation." + ] + }, + { + "name": "NothingDoing", + "fields": [], + "index": 5, + "docs": [ + "No work needs to be done at present for this member." + ] + }, + { + "name": "AlreadyInducted", + "fields": [], + "index": 6, + "docs": [ + "The candidate has already been inducted. This should never happen since it would", + "require a candidate (rank 0) to already be tracked in the pallet." + ] + }, + { + "name": "NotTracked", + "fields": [], + "index": 7, + "docs": [ + "The candidate has not been inducted, so cannot be offboarded from this pallet." + ] + }, + { + "name": "TooSoon", + "fields": [], + "index": 8, + "docs": [ + "Operation cannot be done yet since not enough time has passed." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 891, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 892 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 893, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 892, + "type": { + "path": [ + "pallet_transaction_storage", + "TransactionInfo" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "chunk_root", + "type": 13, + "typeName": "::Output", + "docs": [] + }, + { + "name": "content_hash", + "type": 13, + "typeName": "::Output", + "docs": [] + }, + { + "name": "size", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "block_chunks", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 893, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 892 + } + }, + "docs": [] + } + }, + { + "id": 894, + "type": { + "path": [ + "pallet_transaction_storage", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotConfigured", + "fields": [], + "index": 0, + "docs": [ + "Invalid configuration." + ] + }, + { + "name": "RenewedNotFound", + "fields": [], + "index": 1, + "docs": [ + "Renewed extrinsic is not found." + ] + }, + { + "name": "EmptyTransaction", + "fields": [], + "index": 2, + "docs": [ + "Attempting to store empty transaction" + ] + }, + { + "name": "UnexpectedProof", + "fields": [], + "index": 3, + "docs": [ + "Proof was not expected in this block." + ] + }, + { + "name": "InvalidProof", + "fields": [], + "index": 4, + "docs": [ + "Proof failed verification." + ] + }, + { + "name": "MissingProof", + "fields": [], + "index": 5, + "docs": [ + "Missing storage proof." + ] + }, + { + "name": "MissingStateData", + "fields": [], + "index": 6, + "docs": [ + "Unable to verify proof because state data is missing." + ] + }, + { + "name": "DoubleCheck", + "fields": [], + "index": 7, + "docs": [ + "Double proof check in the block." + ] + }, + { + "name": "ProofNotChecked", + "fields": [], + "index": 8, + "docs": [ + "Storage proof was not checked in the block." + ] + }, + { + "name": "TransactionTooLarge", + "fields": [], + "index": 9, + "docs": [ + "Transaction is too large." + ] + }, + { + "name": "TooManyTransactions", + "fields": [], + "index": 10, + "docs": [ + "Too many transactions in the block." + ] + }, + { + "name": "BadContext", + "fields": [], + "index": 11, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 895, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Node" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "id", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "prev", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "next", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bag_upper", + "type": 12, + "typeName": "T::Score", + "docs": [] + }, + { + "name": "score", + "type": 12, + "typeName": "T::Score", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 896, + "type": { + "path": [ + "pallet_bags_list", + "list", + "Bag" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "head", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "tail", + "type": 43, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 897, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 898, + "type": { + "path": [ + "pallet_bags_list", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "List", + "fields": [ + { + "name": null, + "type": 899, + "typeName": "ListError", + "docs": [] + } + ], + "index": 0, + "docs": [ + "A error in the list interface implementation." + ] + }, + { + "name": "Locked", + "fields": [], + "index": 1, + "docs": [ + "Could not update a node, because the pallet is locked." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 899, + "type": { + "path": [ + "pallet_bags_list", + "list", + "ListError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Duplicate", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotHeavier", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "NotInSameBag", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "NodeNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "Locked", + "fields": [], + "index": 4, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 900, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 650, + 650 + ] + }, + "docs": [] + } + }, + { + "id": 901, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBounty" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "parent_bounty", + "type": 4, + "typeName": "BountyIndex", + "docs": [] + }, + { + "name": "value", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "curator_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "status", + "type": 902, + "typeName": "ChildBountyStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 902, + "type": { + "path": [ + "pallet_child_bounties", + "ChildBountyStatus" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Added", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "CuratorProposed", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Active", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "PendingPayout", + "fields": [ + { + "name": "curator", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "beneficiary", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "unlock_at", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + } + ], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 903, + "type": { + "path": [ + "pallet_child_bounties", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "ParentBountyNotActive", + "fields": [], + "index": 0, + "docs": [ + "The parent bounty is not in active state." + ] + }, + { + "name": "InsufficientBountyBalance", + "fields": [], + "index": 1, + "docs": [ + "The bounty balance is not enough to add new child-bounty." + ] + }, + { + "name": "TooManyChildBounties", + "fields": [], + "index": 2, + "docs": [ + "Number of child bounties exceeds limit `MaxActiveChildBountyCount`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 904, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 100 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 497 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 93 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 905, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 905, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 100 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 497 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 93 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 100, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 148, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 392, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 906, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 908, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 497, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 910, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 906, + "type": { + "path": [ + "pallet_referenda", + "types", + "Deposit" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "who", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 907, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 906 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 906, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 908, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 909 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 909, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 909, + "type": { + "path": [ + "pallet_referenda", + "types", + "DecidingStatus" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "since", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "confirming", + "type": 50, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 910, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 911 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 911, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 911, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 93 + ] + }, + "docs": [] + } + }, + { + "id": 912, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 769 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 770, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 913, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 914 + } + }, + "docs": [] + } + }, + { + "id": 914, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 100, + 915 + ] + }, + "docs": [] + } + }, + { + "id": 915, + "type": { + "path": [ + "pallet_referenda", + "types", + "TrackDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Name", + "type": 556 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "name", + "type": 556, + "typeName": "Name", + "docs": [] + }, + { + "name": "max_deciding", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "prepare_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "decision_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "confirm_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_enactment_period", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "min_approval", + "type": 469, + "typeName": "Curve", + "docs": [] + }, + { + "name": "min_support", + "type": 469, + "typeName": "Curve", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 916, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 917, + "type": { + "path": [ + "pallet_remark", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Empty", + "fields": [], + "index": 0, + "docs": [ + "Attempting to store empty data." + ] + }, + { + "name": "BadContext", + "fields": [], + "index": 1, + "docs": [ + "Attempted to call `store` outside of block execution." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 918, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 100 + ] + }, + "docs": [] + } + }, + { + "id": 919, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Voting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Casting", + "fields": [ + { + "name": null, + "type": 920, + "typeName": "Casting", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Delegating", + "fields": [ + { + "name": null, + "type": 926, + "typeName": "Delegating", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 920, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Casting" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "PollIndex", + "type": 4 + }, + { + "name": "MaxVotes", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 921, + "typeName": "BoundedVec<(PollIndex, AccountVote), MaxVotes>", + "docs": [] + }, + { + "name": "delegations", + "type": 924, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 925, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 921, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 922 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 923, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 922, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 396 + ] + }, + "docs": [] + } + }, + { + "id": 923, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 922 + } + }, + "docs": [] + } + }, + { + "id": 924, + "type": { + "path": [ + "pallet_conviction_voting", + "types", + "Delegations" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "votes", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "capital", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 925, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "PriorLock" + ], + "params": [ + { + "name": "BlockNumber", + "type": 4 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 926, + "type": { + "path": [ + "pallet_conviction_voting", + "vote", + "Delegating" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "balance", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "target", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "conviction", + "type": 398, + "typeName": "Conviction", + "docs": [] + }, + { + "name": "delegations", + "type": 924, + "typeName": "Delegations", + "docs": [] + }, + { + "name": "prior", + "type": 925, + "typeName": "PriorLock", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 927, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 928 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 929, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 928, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 100, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 929, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 928 + } + }, + "docs": [] + } + }, + { + "id": 930, + "type": { + "path": [ + "pallet_conviction_voting", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Poll is not ongoing." + ] + }, + { + "name": "NotVoter", + "fields": [], + "index": 1, + "docs": [ + "The given account did not vote on the poll." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 2, + "docs": [ + "The actor has no permission to conduct the action." + ] + }, + { + "name": "NoPermissionYet", + "fields": [], + "index": 3, + "docs": [ + "The actor has no permission to conduct the action right now but will do in the future." + ] + }, + { + "name": "AlreadyDelegating", + "fields": [], + "index": 4, + "docs": [ + "The account is already delegating." + ] + }, + { + "name": "AlreadyVoting", + "fields": [], + "index": 5, + "docs": [ + "The account currently has votes attached to it and the operation cannot succeed until", + "these are removed through `remove_vote`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Too high a balance was provided that the account cannot afford." + ] + }, + { + "name": "NotDelegating", + "fields": [], + "index": 7, + "docs": [ + "The account is not currently delegating." + ] + }, + { + "name": "Nonsense", + "fields": [], + "index": 8, + "docs": [ + "Delegation to oneself makes no sense." + ] + }, + { + "name": "MaxVotesReached", + "fields": [], + "index": 9, + "docs": [ + "Maximum number of votes reached." + ] + }, + { + "name": "ClassNeeded", + "fields": [], + "index": 10, + "docs": [ + "The class must be supplied since it is not easily determinable from the state." + ] + }, + { + "name": "BadClass", + "fields": [], + "index": 11, + "docs": [ + "The class ID supplied is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 931, + "type": { + "path": [ + "pallet_whitelist", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnavailablePreImage", + "fields": [], + "index": 0, + "docs": [ + "The preimage of the call hash could not be loaded." + ] + }, + { + "name": "UndecodableCall", + "fields": [], + "index": 1, + "docs": [ + "The call could not be decoded." + ] + }, + { + "name": "InvalidCallWeightWitness", + "fields": [], + "index": 2, + "docs": [ + "The weight of the decoded call was higher than the witness." + ] + }, + { + "name": "CallIsNotWhitelisted", + "fields": [], + "index": 3, + "docs": [ + "The call was not whitelisted." + ] + }, + { + "name": "CallAlreadyWhitelisted", + "fields": [], + "index": 4, + "docs": [ + "The call was already whitelisted; No-Op." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 932, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 933, + "type": { + "path": [ + "pallet_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotMember", + "fields": [], + "index": 0, + "docs": [ + "Account is not a member" + ] + }, + { + "name": "DuplicateProposal", + "fields": [], + "index": 1, + "docs": [ + "Duplicate proposals not allowed" + ] + }, + { + "name": "ProposalMissing", + "fields": [], + "index": 2, + "docs": [ + "Proposal must exist" + ] + }, + { + "name": "WrongIndex", + "fields": [], + "index": 3, + "docs": [ + "Mismatched index" + ] + }, + { + "name": "DuplicateVote", + "fields": [], + "index": 4, + "docs": [ + "Duplicate vote ignored" + ] + }, + { + "name": "AlreadyInitialized", + "fields": [], + "index": 5, + "docs": [ + "Members are already initialized!" + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 6, + "docs": [ + "The close call was made too early, before the end of the voting." + ] + }, + { + "name": "TooManyProposals", + "fields": [], + "index": 7, + "docs": [ + "There can only be a maximum of `MaxProposals` active proposals." + ] + }, + { + "name": "WrongProposalWeight", + "fields": [], + "index": 8, + "docs": [ + "The given weight bound for the proposal was too low." + ] + }, + { + "name": "WrongProposalLength", + "fields": [], + "index": 9, + "docs": [ + "The given length bound for the proposal was too low." + ] + }, + { + "name": "PrimeAccountNotMember", + "fields": [], + "index": 10, + "docs": [ + "Prime account is not a member" + ] + }, + { + "name": "ProposalActive", + "fields": [], + "index": 11, + "docs": [ + "Proposal is still active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 934, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 403 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 935, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 935, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 403 + } + }, + "docs": [] + } + }, + { + "id": 936, + "type": { + "path": [ + "pallet_alliance", + "MemberRole" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Fellow", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Ally", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Retiring", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 937, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 0 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 87, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 938, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 409 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 939, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 939, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 409 + } + }, + "docs": [] + } + }, + { + "id": 940, + "type": { + "path": [ + "pallet_alliance", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AllianceNotYetInitialized", + "fields": [], + "index": 0, + "docs": [ + "The Alliance has not been initialized yet, therefore accounts cannot join it." + ] + }, + { + "name": "AllianceAlreadyInitialized", + "fields": [], + "index": 1, + "docs": [ + "The Alliance has been initialized, therefore cannot be initialized again." + ] + }, + { + "name": "AlreadyMember", + "fields": [], + "index": 2, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 3, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotAlly", + "fields": [], + "index": 4, + "docs": [ + "Account is not an ally." + ] + }, + { + "name": "NoVotingRights", + "fields": [], + "index": 5, + "docs": [ + "Account does not have voting rights." + ] + }, + { + "name": "AlreadyElevated", + "fields": [], + "index": 6, + "docs": [ + "Account is already an elevated (fellow) member." + ] + }, + { + "name": "AlreadyUnscrupulous", + "fields": [], + "index": 7, + "docs": [ + "Item is already listed as unscrupulous." + ] + }, + { + "name": "AccountNonGrata", + "fields": [], + "index": 8, + "docs": [ + "Account has been deemed unscrupulous by the Alliance and is not welcome to join or be", + "nominated." + ] + }, + { + "name": "NotListedAsUnscrupulous", + "fields": [], + "index": 9, + "docs": [ + "Item has not been deemed unscrupulous." + ] + }, + { + "name": "TooManyUnscrupulousItems", + "fields": [], + "index": 10, + "docs": [ + "The number of unscrupulous items exceeds `MaxUnscrupulousItems`." + ] + }, + { + "name": "TooLongWebsiteUrl", + "fields": [], + "index": 11, + "docs": [ + "Length of website URL exceeds `MaxWebsiteUrlLength`." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 12, + "docs": [ + "Balance is insufficient for the required deposit." + ] + }, + { + "name": "WithoutRequiredIdentityFields", + "fields": [], + "index": 13, + "docs": [ + "The account's identity does not have display field and website field." + ] + }, + { + "name": "WithoutGoodIdentityJudgement", + "fields": [], + "index": 14, + "docs": [ + "The account's identity has no good judgement." + ] + }, + { + "name": "MissingProposalHash", + "fields": [], + "index": 15, + "docs": [ + "The proposal hash is not found." + ] + }, + { + "name": "MissingAnnouncement", + "fields": [], + "index": 16, + "docs": [ + "The announcement is not found." + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 17, + "docs": [ + "Number of members exceeds `MaxMembersCount`." + ] + }, + { + "name": "TooManyAnnouncements", + "fields": [], + "index": 18, + "docs": [ + "Number of announcements exceeds `MaxAnnouncementsCount`." + ] + }, + { + "name": "BadWitness", + "fields": [], + "index": 19, + "docs": [ + "Invalid witness data given." + ] + }, + { + "name": "AlreadyRetiring", + "fields": [], + "index": 20, + "docs": [ + "Account already gave retirement notice" + ] + }, + { + "name": "RetirementNoticeNotGiven", + "fields": [], + "index": 21, + "docs": [ + "Account did not give a retirement notice required to retire." + ] + }, + { + "name": "RetirementPeriodNotPassed", + "fields": [], + "index": 22, + "docs": [ + "Retirement period has not passed." + ] + }, + { + "name": "FellowsMissing", + "fields": [], + "index": 23, + "docs": [ + "Fellows must be provided to initialize the Alliance." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 941, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolMember" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "pool_id", + "type": 4, + "typeName": "PoolId", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "last_recorded_reward_counter", + "type": 72, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "unbonding_eras", + "type": 942, + "typeName": "BoundedBTreeMap, T::MaxUnbonding>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 942, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 943, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 943, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 770, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 944, + "type": { + "path": [ + "pallet_nomination_pools", + "BondedPoolInner" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "commission", + "type": 945, + "typeName": "Commission", + "docs": [] + }, + { + "name": "member_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "roles", + "type": 947, + "typeName": "PoolRoles", + "docs": [] + }, + { + "name": "state", + "type": 412, + "typeName": "PoolState", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 945, + "type": { + "path": [ + "pallet_nomination_pools", + "Commission" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "current", + "type": 418, + "typeName": "Option<(Perbill, T::AccountId)>", + "docs": [] + }, + { + "name": "max", + "type": 509, + "typeName": "Option", + "docs": [] + }, + { + "name": "change_rate", + "type": 946, + "typeName": "Option>>", + "docs": [] + }, + { + "name": "throttle_from", + "type": 50, + "typeName": "Option>", + "docs": [] + }, + { + "name": "claim_permission", + "type": 421, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 946, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 420 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 420, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 947, + "type": { + "path": [ + "pallet_nomination_pools", + "PoolRoles" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "depositor", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "root", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "nominator", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "bouncer", + "type": 43, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 948, + "type": { + "path": [ + "pallet_nomination_pools", + "RewardPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "last_recorded_reward_counter", + "type": 72, + "typeName": "T::RewardCounter", + "docs": [] + }, + { + "name": "last_recorded_total_payouts", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_rewards_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_pending", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "total_commission_claimed", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 949, + "type": { + "path": [ + "pallet_nomination_pools", + "SubPools" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "no_era", + "type": 950, + "typeName": "UnbondPool", + "docs": [] + }, + { + "name": "with_era", + "type": 951, + "typeName": "BoundedBTreeMap, TotalUnbondingPools>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 950, + "type": { + "path": [ + "pallet_nomination_pools", + "UnbondPool" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "points", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "balance", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 951, + "type": { + "path": [ + "bounded_collections", + "bounded_btree_map", + "BoundedBTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 950 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 952, + "typeName": "BTreeMap", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 952, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 4 + }, + { + "name": "V", + "type": 950 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 953, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 953, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 954 + } + }, + "docs": [] + } + }, + { + "id": 954, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 950 + ] + }, + "docs": [] + } + }, + { + "id": 955, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "PoolNotFound", + "fields": [], + "index": 0, + "docs": [ + "A (bonded) pool id does not exist." + ] + }, + { + "name": "PoolMemberNotFound", + "fields": [], + "index": 1, + "docs": [ + "An account is not a member." + ] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [ + "A reward pool does not exist. In all cases this is a system logic error." + ] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [ + "A sub pool does not exist." + ] + }, + { + "name": "AccountBelongsToOtherPool", + "fields": [], + "index": 4, + "docs": [ + "An account is already delegating in another pool. An account may only belong to one", + "pool at a time." + ] + }, + { + "name": "FullyUnbonding", + "fields": [], + "index": 5, + "docs": [ + "The member is fully unbonded (and thus cannot access the bonded and reward pool", + "anymore to, for example, collect rewards)." + ] + }, + { + "name": "MaxUnbondingLimit", + "fields": [], + "index": 6, + "docs": [ + "The member cannot unbond further chunks due to reaching the limit." + ] + }, + { + "name": "CannotWithdrawAny", + "fields": [], + "index": 7, + "docs": [ + "None of the funds can be withdrawn yet because the bonding duration has not passed." + ] + }, + { + "name": "MinimumBondNotMet", + "fields": [], + "index": 8, + "docs": [ + "The amount does not meet the minimum bond to either join or create a pool.", + "", + "The depositor can never unbond to a value less than `Pallet::depositor_min_bond`. The", + "caller does not have nominating permissions for the pool. Members can never unbond to a", + "value below `MinJoinBond`." + ] + }, + { + "name": "OverflowRisk", + "fields": [], + "index": 9, + "docs": [ + "The transaction could not be executed due to overflow risk for the pool." + ] + }, + { + "name": "NotDestroying", + "fields": [], + "index": 10, + "docs": [ + "A pool must be in [`PoolState::Destroying`] in order for the depositor to unbond or for", + "other members to be permissionlessly unbonded." + ] + }, + { + "name": "NotNominator", + "fields": [], + "index": 11, + "docs": [ + "The caller does not have nominating permissions for the pool." + ] + }, + { + "name": "NotKickerOrDestroying", + "fields": [], + "index": 12, + "docs": [ + "Either a) the caller cannot make a valid kick or b) the pool is not destroying." + ] + }, + { + "name": "NotOpen", + "fields": [], + "index": 13, + "docs": [ + "The pool is not open to join" + ] + }, + { + "name": "MaxPools", + "fields": [], + "index": 14, + "docs": [ + "The system is maxed out on pools." + ] + }, + { + "name": "MaxPoolMembers", + "fields": [], + "index": 15, + "docs": [ + "Too many members in the pool or system." + ] + }, + { + "name": "CanNotChangeState", + "fields": [], + "index": 16, + "docs": [ + "The pools state cannot be changed." + ] + }, + { + "name": "DoesNotHavePermission", + "fields": [], + "index": 17, + "docs": [ + "The caller does not have adequate permissions." + ] + }, + { + "name": "MetadataExceedsMaxLen", + "fields": [], + "index": 18, + "docs": [ + "Metadata exceeds [`Config::MaxMetadataLen`]" + ] + }, + { + "name": "Defensive", + "fields": [ + { + "name": null, + "type": 956, + "typeName": "DefensiveError", + "docs": [] + } + ], + "index": 19, + "docs": [ + "Some error occurred that should never happen. This should be reported to the", + "maintainers." + ] + }, + { + "name": "PartialUnbondNotAllowedPermissionlessly", + "fields": [], + "index": 20, + "docs": [ + "Partial unbonding now allowed permissionlessly." + ] + }, + { + "name": "MaxCommissionRestricted", + "fields": [], + "index": 21, + "docs": [ + "The pool's max commission cannot be set higher than the existing value." + ] + }, + { + "name": "CommissionExceedsMaximum", + "fields": [], + "index": 22, + "docs": [ + "The supplied commission exceeds the max allowed commission." + ] + }, + { + "name": "CommissionExceedsGlobalMaximum", + "fields": [], + "index": 23, + "docs": [ + "The supplied commission exceeds global maximum commission." + ] + }, + { + "name": "CommissionChangeThrottled", + "fields": [], + "index": 24, + "docs": [ + "Not enough blocks have surpassed since the last commission update." + ] + }, + { + "name": "CommissionChangeRateNotAllowed", + "fields": [], + "index": 25, + "docs": [ + "The submitted changes to commission change rate are not allowed." + ] + }, + { + "name": "NoPendingCommission", + "fields": [], + "index": 26, + "docs": [ + "There is no pending commission to claim." + ] + }, + { + "name": "NoCommissionCurrentSet", + "fields": [], + "index": 27, + "docs": [ + "No commission current has been set." + ] + }, + { + "name": "PoolIdInUse", + "fields": [], + "index": 28, + "docs": [ + "Pool id currently in use." + ] + }, + { + "name": "InvalidPoolId", + "fields": [], + "index": 29, + "docs": [ + "Pool id provided is not correct/usable." + ] + }, + { + "name": "BondExtraRestricted", + "fields": [], + "index": 30, + "docs": [ + "Bonding extra is restricted to the exact pending reward amount." + ] + }, + { + "name": "NothingToAdjust", + "fields": [], + "index": 31, + "docs": [ + "No imbalance in the ED deposit for the pool." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 32, + "docs": [ + "No slash pending that can be applied to the member." + ] + }, + { + "name": "SlashTooLow", + "fields": [], + "index": 33, + "docs": [ + "The slash amount is too low to be applied." + ] + }, + { + "name": "AlreadyMigrated", + "fields": [], + "index": 34, + "docs": [ + "The pool or member delegation has already migrated to delegate stake." + ] + }, + { + "name": "NotMigrated", + "fields": [], + "index": 35, + "docs": [ + "The pool or member delegation has not migrated yet to delegate stake." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 36, + "docs": [ + "This call is not allowed in the current state of the pallet." + ] + }, + { + "name": "Restricted", + "fields": [], + "index": 37, + "docs": [ + "Account is restricted from participation in pools. This may happen if the account is", + "staking in another way already." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 956, + "type": { + "path": [ + "pallet_nomination_pools", + "pallet", + "DefensiveError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughSpaceInUnbondPool", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "RewardPoolNotFound", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "SubPoolsNotFound", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BondedStashKilledPrematurely", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "DelegationUnsupported", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "SlashNotApplied", + "fields": [], + "index": 6, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 957, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumInfo" + ], + "params": [ + { + "name": "TrackId", + "type": 100 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 511 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 93 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [ + { + "name": null, + "type": 958, + "typeName": "ReferendumStatus", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Approved", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Rejected", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Cancelled", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 3, + "docs": [] + }, + { + "name": "TimedOut", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": null, + "type": 907, + "typeName": "Option>", + "docs": [] + } + ], + "index": 4, + "docs": [] + }, + { + "name": "Killed", + "fields": [ + { + "name": null, + "type": 4, + "typeName": "Moment", + "docs": [] + } + ], + "index": 5, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 958, + "type": { + "path": [ + "pallet_referenda", + "types", + "ReferendumStatus" + ], + "params": [ + { + "name": "TrackId", + "type": 100 + }, + { + "name": "RuntimeOrigin", + "type": 148 + }, + { + "name": "Moment", + "type": 4 + }, + { + "name": "Call", + "type": 140 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "Tally", + "type": 511 + }, + { + "name": "AccountId", + "type": 0 + }, + { + "name": "ScheduleAddress", + "type": 93 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "track", + "type": 100, + "typeName": "TrackId", + "docs": [] + }, + { + "name": "origin", + "type": 148, + "typeName": "RuntimeOrigin", + "docs": [] + }, + { + "name": "proposal", + "type": 140, + "typeName": "Call", + "docs": [] + }, + { + "name": "enactment", + "type": 392, + "typeName": "DispatchTime", + "docs": [] + }, + { + "name": "submitted", + "type": 4, + "typeName": "Moment", + "docs": [] + }, + { + "name": "submission_deposit", + "type": 906, + "typeName": "Deposit", + "docs": [] + }, + { + "name": "decision_deposit", + "type": 907, + "typeName": "Option>", + "docs": [] + }, + { + "name": "deciding", + "type": 908, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tally", + "type": 511, + "typeName": "Tally", + "docs": [] + }, + { + "name": "in_queue", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "alarm", + "type": 910, + "typeName": "Option<(Moment, ScheduleAddress)>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 959, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 93 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 553, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 960, + "type": { + "path": [ + "pallet_referenda", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotOngoing", + "fields": [], + "index": 0, + "docs": [ + "Referendum is not ongoing." + ] + }, + { + "name": "HasDeposit", + "fields": [], + "index": 1, + "docs": [ + "Referendum's decision deposit is already paid." + ] + }, + { + "name": "BadTrack", + "fields": [], + "index": 2, + "docs": [ + "The track identifier given was invalid." + ] + }, + { + "name": "Full", + "fields": [], + "index": 3, + "docs": [ + "There are already a full complement of referenda in progress for this track." + ] + }, + { + "name": "QueueEmpty", + "fields": [], + "index": 4, + "docs": [ + "The queue of the track is empty." + ] + }, + { + "name": "BadReferendum", + "fields": [], + "index": 5, + "docs": [ + "The referendum index provided is invalid in this context." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 6, + "docs": [ + "There was nothing to do in the advancement." + ] + }, + { + "name": "NoTrack", + "fields": [], + "index": 7, + "docs": [ + "No track exists for the proposal origin." + ] + }, + { + "name": "Unfinished", + "fields": [], + "index": 8, + "docs": [ + "Any deposit cannot be refunded until after the decision is over." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 9, + "docs": [ + "The deposit refunder is not the depositor." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 10, + "docs": [ + "The deposit cannot be refunded since none was made." + ] + }, + { + "name": "BadStatus", + "fields": [], + "index": 11, + "docs": [ + "The referendum status is invalid for this operation." + ] + }, + { + "name": "PreimageNotExist", + "fields": [], + "index": 12, + "docs": [ + "The preimage does not exist." + ] + }, + { + "name": "PreimageStoredWithDifferentLength", + "fields": [], + "index": 13, + "docs": [ + "The preimage is stored with a different length than the one provided." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 961, + "type": { + "path": [ + "pallet_ranked_collective", + "MemberRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "rank", + "type": 100, + "typeName": "Rank", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 962, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 100, + 0 + ] + }, + "docs": [] + } + }, + { + "id": 963, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 100, + 4 + ] + }, + "docs": [] + } + }, + { + "id": 964, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 965, + "type": { + "path": [ + "pallet_ranked_collective", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "AlreadyMember", + "fields": [], + "index": 0, + "docs": [ + "Account is already a member." + ] + }, + { + "name": "NotMember", + "fields": [], + "index": 1, + "docs": [ + "Account is not a member." + ] + }, + { + "name": "NotPolling", + "fields": [], + "index": 2, + "docs": [ + "The given poll index is unknown or has closed." + ] + }, + { + "name": "Ongoing", + "fields": [], + "index": 3, + "docs": [ + "The given poll is still ongoing." + ] + }, + { + "name": "NoneRemaining", + "fields": [], + "index": 4, + "docs": [ + "There are no further records to be removed." + ] + }, + { + "name": "Corruption", + "fields": [], + "index": 5, + "docs": [ + "Unexpected error in state." + ] + }, + { + "name": "RankTooLow", + "fields": [], + "index": 6, + "docs": [ + "The member's rank is too low to vote." + ] + }, + { + "name": "InvalidWitness", + "fields": [], + "index": 7, + "docs": [ + "The information provided is incorrect." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 8, + "docs": [ + "The origin is not sufficiently privileged to do the operation." + ] + }, + { + "name": "SameMember", + "fields": [], + "index": 9, + "docs": [ + "The new member to exchange is the same as the old member" + ] + }, + { + "name": "TooManyMembers", + "fields": [], + "index": 10, + "docs": [ + "The max member count for the rank has been reached." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 966, + "type": { + "path": [ + "pallet_asset_conversion", + "types", + "PoolInfo" + ], + "params": [ + { + "name": "PoolAssetId", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "lp_token", + "type": 4, + "typeName": "PoolAssetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 967, + "type": { + "path": [ + "pallet_asset_conversion", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolExists", + "fields": [], + "index": 1, + "docs": [ + "Pool already exists." + ] + }, + { + "name": "WrongDesiredAmount", + "fields": [], + "index": 2, + "docs": [ + "Desired amount can't be zero." + ] + }, + { + "name": "AmountOneLessThanMinimal", + "fields": [], + "index": 3, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountTwoLessThanMinimal", + "fields": [], + "index": 4, + "docs": [ + "Provided amount should be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "ReserveLeftLessThanMinimal", + "fields": [], + "index": 5, + "docs": [ + "Reserve needs to always be greater than or equal to the existential deposit/asset's", + "minimal amount." + ] + }, + { + "name": "AmountOutTooHigh", + "fields": [], + "index": 6, + "docs": [ + "Desired amount can't be equal to the pool reserve." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 7, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "Overflow", + "fields": [], + "index": 8, + "docs": [ + "An overflow happened." + ] + }, + { + "name": "AssetOneDepositDidNotMeetMinimum", + "fields": [], + "index": 9, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoDepositDidNotMeetMinimum", + "fields": [], + "index": 10, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "AssetOneWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 11, + "docs": [ + "The minimal amount requirement for the first token in the pair wasn't met." + ] + }, + { + "name": "AssetTwoWithdrawalDidNotMeetMinimum", + "fields": [], + "index": 12, + "docs": [ + "The minimal amount requirement for the second token in the pair wasn't met." + ] + }, + { + "name": "OptimalAmountLessThanDesired", + "fields": [], + "index": 13, + "docs": [ + "Optimal calculated amount is less than desired." + ] + }, + { + "name": "InsufficientLiquidityMinted", + "fields": [], + "index": 14, + "docs": [ + "Insufficient liquidity minted." + ] + }, + { + "name": "ZeroLiquidity", + "fields": [], + "index": 15, + "docs": [ + "Requested liquidity can't be zero." + ] + }, + { + "name": "ZeroAmount", + "fields": [], + "index": 16, + "docs": [ + "Amount can't be zero." + ] + }, + { + "name": "ProvidedMinimumNotSufficientForSwap", + "fields": [], + "index": 17, + "docs": [ + "Calculated amount out is less than provided minimum amount." + ] + }, + { + "name": "ProvidedMaximumNotSufficientForSwap", + "fields": [], + "index": 18, + "docs": [ + "Provided maximum amount is not sufficient for swap." + ] + }, + { + "name": "InvalidPath", + "fields": [], + "index": 19, + "docs": [ + "The provided path must consists of 2 assets at least." + ] + }, + { + "name": "NonUniquePath", + "fields": [], + "index": 20, + "docs": [ + "The provided path must consists of unique assets." + ] + }, + { + "name": "IncorrectPoolAssetId", + "fields": [], + "index": 21, + "docs": [ + "It was not possible to get or increment the Id of the pool." + ] + }, + { + "name": "BelowMinimum", + "fields": [], + "index": 22, + "docs": [ + "The destination account cannot exist with the swapped funds." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 968, + "type": { + "path": [ + "pallet_fast_unstake", + "types", + "UnstakeRequest" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "stashes", + "type": 969, + "typeName": "BoundedVec<(T::AccountId, BalanceOf), T::BatchSize>", + "docs": [] + }, + { + "name": "checked", + "type": 970, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 969, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 64 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 63, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 970, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 4 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 114, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 971, + "type": { + "path": [ + "pallet_fast_unstake", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotController", + "fields": [], + "index": 0, + "docs": [ + "The provided Controller account was not found.", + "", + "This means that the given account is not bonded." + ] + }, + { + "name": "AlreadyQueued", + "fields": [], + "index": 1, + "docs": [ + "The bonded account has already been queued." + ] + }, + { + "name": "NotFullyBonded", + "fields": [], + "index": 2, + "docs": [ + "The bonded account has active unlocking chunks." + ] + }, + { + "name": "NotQueued", + "fields": [], + "index": 3, + "docs": [ + "The provided un-staker is not in the `Queue`." + ] + }, + { + "name": "AlreadyHead", + "fields": [], + "index": 4, + "docs": [ + "The provided un-staker is already in Head, and cannot deregister." + ] + }, + { + "name": "CallNotAllowed", + "fields": [], + "index": 5, + "docs": [ + "The call is not allowed at this point because the pallet is not active." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 972, + "type": { + "path": [ + "pallet_message_queue", + "BookState" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "begin", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "end", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "count", + "type": 4, + "typeName": "PageIndex", + "docs": [] + }, + { + "name": "ready_neighbours", + "type": 973, + "typeName": "Option>", + "docs": [] + }, + { + "name": "message_count", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "size", + "type": 12, + "typeName": "u64", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 973, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 974 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 974, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 974, + "type": { + "path": [ + "pallet_message_queue", + "Neighbours" + ], + "params": [ + { + "name": "MessageOrigin", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "prev", + "type": 4, + "typeName": "MessageOrigin", + "docs": [] + }, + { + "name": "next", + "type": 4, + "typeName": "MessageOrigin", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 975, + "type": { + "path": [ + "pallet_message_queue", + "Page" + ], + "params": [ + { + "name": "Size", + "type": 4 + }, + { + "name": "HeapSize", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "remaining", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "remaining_size", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first_index", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "first", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "last", + "type": 4, + "typeName": "Size", + "docs": [] + }, + { + "name": "heap", + "type": 976, + "typeName": "BoundedVec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 976, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 977, + "type": { + "path": [ + "pallet_message_queue", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotReapable", + "fields": [], + "index": 0, + "docs": [ + "Page is not reapable because it has items remaining to be processed and is not old", + "enough." + ] + }, + { + "name": "NoPage", + "fields": [], + "index": 1, + "docs": [ + "Page to be reaped does not exist." + ] + }, + { + "name": "NoMessage", + "fields": [], + "index": 2, + "docs": [ + "The referenced message could not be found." + ] + }, + { + "name": "AlreadyProcessed", + "fields": [], + "index": 3, + "docs": [ + "The message was already processed and cannot be processed again." + ] + }, + { + "name": "Queued", + "fields": [], + "index": 4, + "docs": [ + "The message is queued for future execution." + ] + }, + { + "name": "InsufficientWeight", + "fields": [], + "index": 5, + "docs": [ + "There is temporarily not enough weight to continue servicing messages." + ] + }, + { + "name": "TemporarilyUnprocessable", + "fields": [], + "index": 6, + "docs": [ + "This message is temporarily unprocessable.", + "", + "Such errors are expected, but not guaranteed, to resolve themselves eventually through", + "retrying." + ] + }, + { + "name": "QueuePaused", + "fields": [], + "index": 7, + "docs": [ + "The queue is paused and no message can be executed from it.", + "", + "This can change at any time and may resolve in the future by re-trying." + ] + }, + { + "name": "RecursiveDisallowed", + "fields": [], + "index": 8, + "docs": [ + "Another call is in progress and needs to finish before this call can happen." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 978, + "type": { + "path": [ + "pallet_tx_pause", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "IsPaused", + "fields": [], + "index": 0, + "docs": [ + "The call is paused." + ] + }, + { + "name": "IsUnpaused", + "fields": [], + "index": 1, + "docs": [ + "The call is unpaused." + ] + }, + { + "name": "Unpausable", + "fields": [], + "index": 2, + "docs": [ + "The call is whitelisted and cannot be paused." + ] + }, + { + "name": "NotFound", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 979, + "type": { + "path": [ + "pallet_safe_mode", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Entered", + "fields": [], + "index": 0, + "docs": [ + "The safe-mode is (already or still) entered." + ] + }, + { + "name": "Exited", + "fields": [], + "index": 1, + "docs": [ + "The safe-mode is (already or still) exited." + ] + }, + { + "name": "NotConfigured", + "fields": [], + "index": 2, + "docs": [ + "This functionality of the pallet is disabled by the configuration." + ] + }, + { + "name": "NoDeposit", + "fields": [], + "index": 3, + "docs": [ + "There is no balance reserved." + ] + }, + { + "name": "AlreadyDeposited", + "fields": [], + "index": 4, + "docs": [ + "The account already has a deposit reserved and can therefore not enter or extend again." + ] + }, + { + "name": "CannotReleaseYet", + "fields": [], + "index": 5, + "docs": [ + "This deposit cannot be released yet." + ] + }, + { + "name": "CurrencyError", + "fields": [], + "index": 6, + "docs": [ + "An error from the underlying `Currency`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 980, + "type": { + "path": [ + "pallet_migrations", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ongoing", + "fields": [], + "index": 0, + "docs": [ + "The operation cannot complete since some MBMs are ongoing." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 981, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 444 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 982, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 982, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 444 + } + }, + "docs": [] + } + }, + { + "id": 983, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 984 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 985, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 984, + "type": { + "path": [ + "pallet_broker", + "types", + "LeaseRecordItem" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "until", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 985, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 984 + } + }, + "docs": [] + } + }, + { + "id": 986, + "type": { + "path": [ + "pallet_broker", + "types", + "StatusRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core_count", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "private_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "system_pool_size", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "last_committed_timeslice", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "last_timeslice", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 987, + "type": { + "path": [ + "pallet_broker", + "types", + "SaleInfoRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "RelayBlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "sale_start", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "leadin_length", + "type": 4, + "typeName": "RelayBlockNumber", + "docs": [] + }, + { + "name": "end_price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "region_begin", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "region_end", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "ideal_cores_sold", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "cores_offered", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "first_core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "sellout_price", + "type": 236, + "typeName": "Option", + "docs": [] + }, + { + "name": "cores_sold", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 988, + "type": { + "path": [ + "pallet_broker", + "types", + "PotentialRenewalId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "when", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 989, + "type": { + "path": [ + "pallet_broker", + "types", + "PotentialRenewalRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "price", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "completion", + "type": 990, + "typeName": "CompletionStatus", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 990, + "type": { + "path": [ + "pallet_broker", + "types", + "CompletionStatus" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Partial", + "fields": [ + { + "name": null, + "type": 446, + "typeName": "CoreMask", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Complete", + "fields": [ + { + "name": null, + "type": 444, + "typeName": "Schedule", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 991, + "type": { + "path": [ + "pallet_broker", + "types", + "RegionRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "end", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "owner", + "type": 43, + "typeName": "Option", + "docs": [] + }, + { + "name": "paid", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 992, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 100 + ] + }, + "docs": [] + } + }, + { + "id": 993, + "type": { + "path": [ + "pallet_broker", + "types", + "ContributionRecord" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "length", + "type": 4, + "typeName": "Timeslice", + "docs": [] + }, + { + "name": "payee", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 994, + "type": { + "path": [ + "pallet_broker", + "types", + "PoolIoRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "private", + "type": 995, + "typeName": "SignedCoreMaskBitCount", + "docs": [] + }, + { + "name": "system", + "type": 995, + "typeName": "SignedCoreMaskBitCount", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 995, + "type": { + "path": [], + "params": [], + "def": { + "primitive": "I32" + }, + "docs": [] + } + }, + { + "id": 996, + "type": { + "path": [ + "pallet_broker", + "types", + "InstaPoolHistoryRecord" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "private_contributions", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "system_contributions", + "type": 4, + "typeName": "CoreMaskBitCount", + "docs": [] + }, + { + "name": "maybe_payout", + "type": 236, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 997, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 998 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 999, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 998, + "type": { + "path": [ + "pallet_broker", + "types", + "AutoRenewalRecord" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "core", + "type": 100, + "typeName": "CoreIndex", + "docs": [] + }, + { + "name": "task", + "type": 4, + "typeName": "TaskId", + "docs": [] + }, + { + "name": "next_renewal", + "type": 4, + "typeName": "Timeslice", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 999, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 998 + } + }, + "docs": [] + } + }, + { + "id": 1000, + "type": { + "path": [ + "pallet_broker", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "UnknownRegion", + "fields": [], + "index": 0, + "docs": [ + "The given region identity is not known." + ] + }, + { + "name": "NotOwner", + "fields": [], + "index": 1, + "docs": [ + "The owner of the region is not the origin." + ] + }, + { + "name": "PivotTooLate", + "fields": [], + "index": 2, + "docs": [ + "The pivot point of the partition at or after the end of the region." + ] + }, + { + "name": "PivotTooEarly", + "fields": [], + "index": 3, + "docs": [ + "The pivot point of the partition at the beginning of the region." + ] + }, + { + "name": "ExteriorPivot", + "fields": [], + "index": 4, + "docs": [ + "The pivot mask for the interlacing is not contained within the region's interlace mask." + ] + }, + { + "name": "VoidPivot", + "fields": [], + "index": 5, + "docs": [ + "The pivot mask for the interlacing is void (and therefore unschedulable)." + ] + }, + { + "name": "CompletePivot", + "fields": [], + "index": 6, + "docs": [ + "The pivot mask for the interlacing is complete (and therefore not a strict subset)." + ] + }, + { + "name": "CorruptWorkplan", + "fields": [], + "index": 7, + "docs": [ + "The workplan of the pallet's state is invalid. This indicates a state corruption." + ] + }, + { + "name": "NoSales", + "fields": [], + "index": 8, + "docs": [ + "There is no sale happening currently." + ] + }, + { + "name": "Overpriced", + "fields": [], + "index": 9, + "docs": [ + "The price limit is exceeded." + ] + }, + { + "name": "Unavailable", + "fields": [], + "index": 10, + "docs": [ + "There are no cores available." + ] + }, + { + "name": "SoldOut", + "fields": [], + "index": 11, + "docs": [ + "The sale limit has been reached." + ] + }, + { + "name": "WrongTime", + "fields": [], + "index": 12, + "docs": [ + "The renewal operation is not valid at the current time (it may become valid in the next", + "sale)." + ] + }, + { + "name": "NotAllowed", + "fields": [], + "index": 13, + "docs": [ + "Invalid attempt to renew." + ] + }, + { + "name": "Uninitialized", + "fields": [], + "index": 14, + "docs": [ + "This pallet has not yet been initialized." + ] + }, + { + "name": "TooEarly", + "fields": [], + "index": 15, + "docs": [ + "The purchase cannot happen yet as the sale period is yet to begin." + ] + }, + { + "name": "NothingToDo", + "fields": [], + "index": 16, + "docs": [ + "There is no work to be done." + ] + }, + { + "name": "TooManyReservations", + "fields": [], + "index": 17, + "docs": [ + "The maximum amount of reservations has already been reached." + ] + }, + { + "name": "TooManyLeases", + "fields": [], + "index": 18, + "docs": [ + "The maximum amount of leases has already been reached." + ] + }, + { + "name": "LeaseNotFound", + "fields": [], + "index": 19, + "docs": [ + "The lease does not exist." + ] + }, + { + "name": "UnknownRevenue", + "fields": [], + "index": 20, + "docs": [ + "The revenue for the Instantaneous Core Sales of this period is not (yet) known and thus", + "this operation cannot proceed." + ] + }, + { + "name": "UnknownContribution", + "fields": [], + "index": 21, + "docs": [ + "The identified contribution to the Instantaneous Core Pool is unknown." + ] + }, + { + "name": "IncompleteAssignment", + "fields": [], + "index": 22, + "docs": [ + "The workload assigned for renewal is incomplete. This is unexpected and indicates a", + "logic error." + ] + }, + { + "name": "StillValid", + "fields": [], + "index": 23, + "docs": [ + "An item cannot be dropped because it is still valid." + ] + }, + { + "name": "NoHistory", + "fields": [], + "index": 24, + "docs": [ + "The history item does not exist." + ] + }, + { + "name": "UnknownReservation", + "fields": [], + "index": 25, + "docs": [ + "No reservation of the given index exists." + ] + }, + { + "name": "UnknownRenewal", + "fields": [], + "index": 26, + "docs": [ + "The renewal record cannot be found." + ] + }, + { + "name": "AlreadyExpired", + "fields": [], + "index": 27, + "docs": [ + "The lease expiry time has already passed." + ] + }, + { + "name": "InvalidConfig", + "fields": [], + "index": 28, + "docs": [ + "The configuration could not be applied because it is invalid." + ] + }, + { + "name": "NoClaimTimeslices", + "fields": [], + "index": 29, + "docs": [ + "The revenue must be claimed for 1 or more timeslices." + ] + }, + { + "name": "NoPermission", + "fields": [], + "index": 30, + "docs": [ + "The caller doesn't have the permission to enable or disable auto-renewal." + ] + }, + { + "name": "TooManyAutoRenewals", + "fields": [], + "index": 31, + "docs": [ + "We reached the limit for auto-renewals." + ] + }, + { + "name": "NonTaskAutoRenewal", + "fields": [], + "index": 32, + "docs": [ + "Only cores which are assigned to a task can be auto-renewed." + ] + }, + { + "name": "SovereignAccountNotFound", + "fields": [], + "index": 33, + "docs": [ + "Failed to get the sovereign account of a task." + ] + }, + { + "name": "AutoRenewalNotEnabled", + "fields": [], + "index": 34, + "docs": [ + "Attempted to disable auto-renewal for a core that didn't have it enabled." + ] + }, + { + "name": "AssignmentNotFound", + "fields": [], + "index": 35, + "docs": [ + "Attempted to force remove an assignment that doesn't exist." + ] + }, + { + "name": "CreditPurchaseTooSmall", + "fields": [], + "index": 36, + "docs": [ + "Needed to prevent spam attacks.The amount of credits the user attempted to purchase is", + "below `T::MinimumCreditPurchase`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1001, + "type": { + "path": [ + "pallet_example_tasks", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotFound", + "fields": [], + "index": 0, + "docs": [ + "The referenced task was not found." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1002, + "type": { + "path": [ + "pallet_asset_conversion_ops", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidAssetPair", + "fields": [], + "index": 0, + "docs": [ + "Provided asset pair is not supported for pool." + ] + }, + { + "name": "PoolNotFound", + "fields": [], + "index": 1, + "docs": [ + "The pool doesn't exist." + ] + }, + { + "name": "ZeroBalance", + "fields": [], + "index": 2, + "docs": [ + "Pool's balance cannot be zero." + ] + }, + { + "name": "PartialTransfer", + "fields": [], + "index": 3, + "docs": [ + "Indicates a partial transfer of balance to the new account during a migration." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1003, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1004, + "type": { + "path": [ + "pallet_revive", + "wasm", + "CodeInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "owner", + "type": 0, + "typeName": "AccountIdOf", + "docs": [] + }, + { + "name": "deposit", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "refcount", + "type": 11, + "typeName": "u64", + "docs": [] + }, + { + "name": "code_len", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "behaviour_version", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1005, + "type": { + "path": [ + "pallet_revive", + "storage", + "ContractInfo" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "trie_id", + "type": 113, + "typeName": "TrieId", + "docs": [] + }, + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "storage_bytes", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_items", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "storage_byte_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_item_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "storage_base_deposit", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "immutable_data_len", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1006, + "type": { + "path": [ + "bounded_collections", + "bounded_vec", + "BoundedVec" + ], + "params": [ + { + "name": "T", + "type": 2 + }, + { + "name": "S", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1007, + "type": { + "path": [ + "pallet_revive", + "storage", + "DeletionQueueManager" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "insert_counter", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "delete_counter", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1008, + "type": { + "path": [ + "pallet_revive", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidSchedule", + "fields": [], + "index": 1, + "docs": [ + "Invalid schedule supplied, e.g. with zero weight of a basic operation." + ] + }, + { + "name": "InvalidCallFlags", + "fields": [], + "index": 2, + "docs": [ + "Invalid combination of flags supplied to `seal_call` or `seal_delegate_call`." + ] + }, + { + "name": "OutOfGas", + "fields": [], + "index": 3, + "docs": [ + "The executed contract exhausted its gas limit." + ] + }, + { + "name": "TransferFailed", + "fields": [], + "index": 4, + "docs": [ + "Performing the requested transfer failed. Probably because there isn't enough", + "free balance in the sender's account." + ] + }, + { + "name": "MaxCallDepthReached", + "fields": [], + "index": 5, + "docs": [ + "Performing a call was denied because the calling depth reached the limit", + "of what is specified in the schedule." + ] + }, + { + "name": "ContractNotFound", + "fields": [], + "index": 6, + "docs": [ + "No contract was found at the specified address." + ] + }, + { + "name": "CodeNotFound", + "fields": [], + "index": 7, + "docs": [ + "No code could be found at the supplied code hash." + ] + }, + { + "name": "CodeInfoNotFound", + "fields": [], + "index": 8, + "docs": [ + "No code info could be found at the supplied code hash." + ] + }, + { + "name": "OutOfBounds", + "fields": [], + "index": 9, + "docs": [ + "A buffer outside of sandbox memory was passed to a contract API function." + ] + }, + { + "name": "DecodingFailed", + "fields": [], + "index": 10, + "docs": [ + "Input passed to a contract API function failed to decode as expected type." + ] + }, + { + "name": "ContractTrapped", + "fields": [], + "index": 11, + "docs": [ + "Contract trapped during execution." + ] + }, + { + "name": "ValueTooLarge", + "fields": [], + "index": 12, + "docs": [ + "The size defined in `T::MaxValueSize` was exceeded." + ] + }, + { + "name": "TerminatedWhileReentrant", + "fields": [], + "index": 13, + "docs": [ + "Termination of a contract is not allowed while the contract is already", + "on the call stack. Can be triggered by `seal_terminate`." + ] + }, + { + "name": "InputForwarded", + "fields": [], + "index": 14, + "docs": [ + "`seal_call` forwarded this contracts input. It therefore is no longer available." + ] + }, + { + "name": "TooManyTopics", + "fields": [], + "index": 15, + "docs": [ + "The amount of topics passed to `seal_deposit_events` exceeds the limit." + ] + }, + { + "name": "DuplicateContract", + "fields": [], + "index": 18, + "docs": [ + "A contract with the same AccountId already exists." + ] + }, + { + "name": "TerminatedInConstructor", + "fields": [], + "index": 19, + "docs": [ + "A contract self destructed in its constructor.", + "", + "This can be triggered by a call to `seal_terminate`." + ] + }, + { + "name": "ReentranceDenied", + "fields": [], + "index": 20, + "docs": [ + "A call tried to invoke a contract that is flagged as non-reentrant." + ] + }, + { + "name": "ReenteredPallet", + "fields": [], + "index": 21, + "docs": [ + "A contract called into the runtime which then called back into this pallet." + ] + }, + { + "name": "StateChangeDenied", + "fields": [], + "index": 22, + "docs": [ + "A contract attempted to invoke a state modifying API while being in read-only mode." + ] + }, + { + "name": "StorageDepositNotEnoughFunds", + "fields": [], + "index": 23, + "docs": [ + "Origin doesn't have enough balance to pay the required storage deposits." + ] + }, + { + "name": "StorageDepositLimitExhausted", + "fields": [], + "index": 24, + "docs": [ + "More storage was created than allowed by the storage deposit limit." + ] + }, + { + "name": "CodeInUse", + "fields": [], + "index": 25, + "docs": [ + "Code removal was denied because the code is still in use by at least one contract." + ] + }, + { + "name": "ContractReverted", + "fields": [], + "index": 26, + "docs": [ + "The contract ran to completion but decided to revert its storage changes.", + "Please note that this error is only returned from extrinsics. When called directly", + "or via RPC an `Ok` will be returned. In this case the caller needs to inspect the flags", + "to determine whether a reversion has taken place." + ] + }, + { + "name": "CodeRejected", + "fields": [], + "index": 27, + "docs": [ + "The contract failed to compile or is missing the correct entry points.", + "", + "A more detailed error can be found on the node console if debug messages are enabled", + "by supplying `-lruntime::revive=debug`." + ] + }, + { + "name": "BlobTooLarge", + "fields": [], + "index": 28, + "docs": [ + "The code blob supplied is larger than [`limits::code::BLOB_BYTES`]." + ] + }, + { + "name": "StaticMemoryTooLarge", + "fields": [], + "index": 29, + "docs": [ + "The static memory consumption of the blob will be larger than", + "[`limits::code::STATIC_MEMORY_BYTES`]." + ] + }, + { + "name": "BasicBlockTooLarge", + "fields": [], + "index": 30, + "docs": [ + "The program contains a basic block that is larger than allowed." + ] + }, + { + "name": "InvalidInstruction", + "fields": [], + "index": 31, + "docs": [ + "The program contains an invalid instruction." + ] + }, + { + "name": "MaxDelegateDependenciesReached", + "fields": [], + "index": 32, + "docs": [ + "The contract has reached its maximum number of delegate dependencies." + ] + }, + { + "name": "DelegateDependencyNotFound", + "fields": [], + "index": 33, + "docs": [ + "The dependency was not found in the contract's delegate dependencies." + ] + }, + { + "name": "DelegateDependencyAlreadyExists", + "fields": [], + "index": 34, + "docs": [ + "The contract already depends on the given delegate dependency." + ] + }, + { + "name": "CannotAddSelfAsDelegateDependency", + "fields": [], + "index": 35, + "docs": [ + "Can not add a delegate dependency to the code hash of the contract itself." + ] + }, + { + "name": "OutOfTransientStorage", + "fields": [], + "index": 36, + "docs": [ + "Can not add more data to transient storage." + ] + }, + { + "name": "InvalidSyscall", + "fields": [], + "index": 37, + "docs": [ + "The contract tried to call a syscall which does not exist (at its current api level)." + ] + }, + { + "name": "InvalidStorageFlags", + "fields": [], + "index": 38, + "docs": [ + "Invalid storage flags were passed to one of the storage syscalls." + ] + }, + { + "name": "ExecutionFailed", + "fields": [], + "index": 39, + "docs": [ + "PolkaVM failed during code execution. Probably due to a malformed program." + ] + }, + { + "name": "BalanceConversionFailed", + "fields": [], + "index": 40, + "docs": [ + "Failed to convert a U256 to a Balance." + ] + }, + { + "name": "DecimalPrecisionLoss", + "fields": [], + "index": 41, + "docs": [ + "Failed to convert an EVM balance to a native balance." + ] + }, + { + "name": "InvalidImmutableAccess", + "fields": [], + "index": 42, + "docs": [ + "Immutable data can only be set during deploys and only be read during calls.", + "Additionally, it is only valid to set the data once and it must not be empty." + ] + }, + { + "name": "AccountUnmapped", + "fields": [], + "index": 43, + "docs": [ + "An `AccountID32` account tried to interact with the pallet without having a mapping.", + "", + "Call [`Pallet::map_account`] in order to create a mapping for the account." + ] + }, + { + "name": "AccountAlreadyMapped", + "fields": [], + "index": 44, + "docs": [ + "Tried to map an account that is already mapped." + ] + }, + { + "name": "InvalidGenericTransaction", + "fields": [], + "index": 45, + "docs": [ + "The transaction used to dry-run a contract is invalid." + ] + }, + { + "name": "RefcountOverOrUnderflow", + "fields": [], + "index": 46, + "docs": [ + "The refcount of a code either over or underflowed." + ] + }, + { + "name": "UnsupportedPrecompileAddress", + "fields": [], + "index": 47, + "docs": [ + "Unsupported precompile address" + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1009, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "Delegation" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "agent", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "amount", + "type": 6, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1010, + "type": { + "path": [ + "pallet_delegated_staking", + "types", + "AgentLedger" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "payee", + "type": 0, + "typeName": "T::AccountId", + "docs": [] + }, + { + "name": "total_delegated", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "unclaimed_withdrawals", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + }, + { + "name": "pending_slash", + "type": 168, + "typeName": "BalanceOf", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1011, + "type": { + "path": [ + "pallet_delegated_staking", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotAllowed", + "fields": [], + "index": 0, + "docs": [ + "The account cannot perform this operation." + ] + }, + { + "name": "AlreadyStaking", + "fields": [], + "index": 1, + "docs": [ + "An existing staker cannot perform this action." + ] + }, + { + "name": "InvalidRewardDestination", + "fields": [], + "index": 2, + "docs": [ + "Reward Destination cannot be same as `Agent` account." + ] + }, + { + "name": "InvalidDelegation", + "fields": [], + "index": 3, + "docs": [ + "Delegation conditions are not met.", + "", + "Possible issues are", + "1) Cannot delegate to self,", + "2) Cannot delegate to multiple delegates." + ] + }, + { + "name": "NotEnoughFunds", + "fields": [], + "index": 4, + "docs": [ + "The account does not have enough funds to perform the operation." + ] + }, + { + "name": "NotAgent", + "fields": [], + "index": 5, + "docs": [ + "Not an existing `Agent` account." + ] + }, + { + "name": "NotDelegator", + "fields": [], + "index": 6, + "docs": [ + "Not a Delegator account." + ] + }, + { + "name": "BadState", + "fields": [], + "index": 7, + "docs": [ + "Some corruption in internal state." + ] + }, + { + "name": "UnappliedSlash", + "fields": [], + "index": 8, + "docs": [ + "Unapplied pending slash restricts operation on `Agent`." + ] + }, + { + "name": "NothingToSlash", + "fields": [], + "index": 9, + "docs": [ + "`Agent` has no pending slash to be applied." + ] + }, + { + "name": "WithdrawFailed", + "fields": [], + "index": 10, + "docs": [ + "Failed to withdraw amount from Core Staking." + ] + }, + { + "name": "NotSupported", + "fields": [], + "index": 11, + "docs": [ + "Operation not supported by this pallet." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1012, + "type": { + "path": [ + "pallet_asset_rewards", + "PoolStakerInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "amount", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "rewards", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reward_per_token_paid", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1013, + "type": { + "path": [ + "pallet_asset_rewards", + "PoolInfo" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + }, + { + "name": "AssetId", + "type": 40 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "BlockNumber", + "type": 4 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "staked_asset_id", + "type": 40, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "reward_asset_id", + "type": 40, + "typeName": "AssetId", + "docs": [] + }, + { + "name": "reward_rate_per_block", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "expiry_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "admin", + "type": 0, + "typeName": "AccountId", + "docs": [] + }, + { + "name": "total_tokens_staked", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "reward_per_token_stored", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "last_update_block", + "type": 4, + "typeName": "BlockNumber", + "docs": [] + }, + { + "name": "account", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1014, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 0, + 1015 + ] + }, + "docs": [] + } + }, + { + "id": 1015, + "type": { + "path": [ + "frame_support", + "traits", + "tokens", + "fungible", + "HoldConsideration" + ], + "params": [ + { + "name": "A", + "type": null + }, + { + "name": "F", + "type": null + }, + { + "name": "R", + "type": null + }, + { + "name": "D", + "type": null + }, + { + "name": "Fp", + "type": null + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 6, + "typeName": "F::Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1016, + "type": { + "path": [ + "pallet_asset_rewards", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "NotEnoughTokens", + "fields": [], + "index": 0, + "docs": [ + "The staker does not have enough tokens to perform the operation." + ] + }, + { + "name": "NonExistentPool", + "fields": [], + "index": 1, + "docs": [ + "An operation was attempted on a non-existent pool." + ] + }, + { + "name": "NonExistentStaker", + "fields": [], + "index": 2, + "docs": [ + "An operation was attempted for a non-existent staker." + ] + }, + { + "name": "NonExistentAsset", + "fields": [], + "index": 3, + "docs": [ + "An operation was attempted with a non-existent asset." + ] + }, + { + "name": "BlockNumberConversionError", + "fields": [], + "index": 4, + "docs": [ + "There was an error converting a block number." + ] + }, + { + "name": "ExpiryBlockMustBeInTheFuture", + "fields": [], + "index": 5, + "docs": [ + "The expiry block must be in the future." + ] + }, + { + "name": "InsufficientFunds", + "fields": [], + "index": 6, + "docs": [ + "Insufficient funds to create the freeze." + ] + }, + { + "name": "ExpiryCut", + "fields": [], + "index": 7, + "docs": [ + "The expiry block can be only extended." + ] + }, + { + "name": "RewardRateCut", + "fields": [], + "index": 8, + "docs": [ + "The reward rate per block can be only increased." + ] + }, + { + "name": "NonEmptyPool", + "fields": [], + "index": 9, + "docs": [ + "The pool still has staked tokens or rewards." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1017, + "type": { + "path": [ + "pallet_assets_freezer", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + }, + { + "name": "I", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "TooManyFreezes", + "fields": [], + "index": 0, + "docs": [ + "Number of freezes on an account would exceed `MaxFreezes`." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1018, + "type": { + "path": [ + "pallet_meta_tx", + "pallet", + "Error" + ], + "params": [ + { + "name": "T", + "type": null + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "BadProof", + "fields": [], + "index": 0, + "docs": [ + "Invalid proof (e.g. signature)." + ] + }, + { + "name": "Future", + "fields": [], + "index": 1, + "docs": [ + "The meta transaction is not yet valid (e.g. nonce too high)." + ] + }, + { + "name": "Stale", + "fields": [], + "index": 2, + "docs": [ + "The meta transaction is outdated (e.g. nonce too low)." + ] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 3, + "docs": [ + "The meta transactions's birth block is ancient." + ] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 4, + "docs": [ + "The transaction extension did not authorize any origin." + ] + }, + { + "name": "Invalid", + "fields": [], + "index": 5, + "docs": [ + "The meta transaction is invalid." + ] + } + ] + } + }, + "docs": [ + "The `Error` enum of this pallet." + ] + } + }, + { + "id": 1019, + "type": { + "path": [ + "sp_runtime", + "ExtrinsicInclusionMode" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "AllExtrinsics", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "OnlyInherents", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1020, + "type": { + "path": [ + "sp_core", + "OpaqueMetadata" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1021, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1020 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1020, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1022, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionId" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "prefix", + "type": 82, + "typeName": "[u8; 16]", + "docs": [] + }, + { + "name": "suffix", + "type": 82, + "typeName": "[u8; 16]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1023, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 14 + }, + { + "name": "E", + "type": 1024 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 14, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1024, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1024, + "type": { + "path": [ + "frame_support", + "view_functions", + "ViewFunctionDispatchError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "NotImplemented", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NotFound", + "fields": [ + { + "name": null, + "type": 1022, + "typeName": "ViewFunctionId", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Codec", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1025, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 33 + }, + { + "name": "E", + "type": 1026 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 33, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1026, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1026, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionValidityError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Invalid", + "fields": [ + { + "name": null, + "type": 1027, + "typeName": "InvalidTransaction", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Unknown", + "fields": [ + { + "name": null, + "type": 1028, + "typeName": "UnknownTransaction", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1027, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "InvalidTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Payment", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Future", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Stale", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "BadProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "AncientBirthBlock", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "ExhaustsResources", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 7, + "docs": [] + }, + { + "name": "BadMandatory", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "MandatoryValidation", + "fields": [], + "index": 9, + "docs": [] + }, + { + "name": "BadSigner", + "fields": [], + "index": 10, + "docs": [] + }, + { + "name": "IndeterminateImplicit", + "fields": [], + "index": 11, + "docs": [] + }, + { + "name": "UnknownOrigin", + "fields": [], + "index": 12, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1028, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "UnknownTransaction" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CannotLookup", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoUnsignedValidator", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Custom", + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1029, + "type": { + "path": [ + "sp_inherents", + "InherentData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "data", + "type": 1030, + "typeName": "BTreeMap>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1030, + "type": { + "path": [ + "BTreeMap" + ], + "params": [ + { + "name": "K", + "type": 287 + }, + { + "name": "V", + "type": 14 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1031, + "typeName": null, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1031, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1032 + } + }, + "docs": [] + } + }, + { + "id": 1032, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 287, + 14 + ] + }, + "docs": [] + } + }, + { + "id": 1033, + "type": { + "path": [ + "sp_inherents", + "CheckInherentsResult" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "okay", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "fatal_error", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "errors", + "type": 1029, + "typeName": "InherentData", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1034, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "TransactionSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InBlock", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "External", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1035, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1036 + }, + { + "name": "E", + "type": 1026 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1036, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1026, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1036, + "type": { + "path": [ + "sp_runtime", + "transaction_validity", + "ValidTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "priority", + "type": 12, + "typeName": "TransactionPriority", + "docs": [] + }, + { + "name": "requires", + "type": 145, + "typeName": "Vec", + "docs": [] + }, + { + "name": "provides", + "type": 145, + "typeName": "Vec", + "docs": [] + }, + { + "name": "longevity", + "type": 12, + "typeName": "TransactionLongevity", + "docs": [] + }, + { + "name": "propagate", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1037, + "type": { + "path": [ + "sp_statement_store", + "runtime_api", + "StatementSource" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Chain", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Network", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "Local", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1038, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1039 + }, + { + "name": "E", + "type": 1040 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1039, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1040, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1039, + "type": { + "path": [ + "sp_statement_store", + "runtime_api", + "ValidStatement" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "max_count", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "max_size", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1040, + "type": { + "path": [ + "sp_statement_store", + "runtime_api", + "InvalidStatement" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "BadProof", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "NoProof", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "InternalError", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1041, + "type": { + "path": [ + "sp_runtime", + "OpaqueValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1042, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 34 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1043, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1041 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1041, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1044, + "type": { + "path": [ + "sp_consensus_babe", + "BabeConfiguration" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "slot_duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "epoch_length", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "c", + "type": 161, + "typeName": "(u64, u64)", + "docs": [] + }, + { + "name": "authorities", + "type": 581, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "allowed_slots", + "type": 162, + "typeName": "AllowedSlots", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1045, + "type": { + "path": [ + "sp_consensus_babe", + "Epoch" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "epoch_index", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "start_slot", + "type": 158, + "typeName": "Slot", + "docs": [] + }, + { + "name": "duration", + "type": 12, + "typeName": "u64", + "docs": [] + }, + { + "name": "authorities", + "type": 581, + "typeName": "Vec<(AuthorityId, BabeAuthorityWeight)>", + "docs": [] + }, + { + "name": "randomness", + "type": 1, + "typeName": "Randomness", + "docs": [] + }, + { + "name": "config", + "type": 590, + "typeName": "BabeEpochConfiguration", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1046, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1047 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1047, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1047, + "type": { + "path": [ + "sp_consensus_babe", + "OpaqueKeyOwnershipProof" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1048, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1049 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "EventRecord", + "type": 20 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1052, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "debug_message", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "result", + "type": 1049, + "typeName": "R", + "docs": [] + }, + { + "name": "events", + "type": 1053, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1049, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1050 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1050, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1050, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ExecReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "flags", + "type": 1051, + "typeName": "ReturnFlags", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1051, + "type": { + "path": [ + "pallet_contracts_uapi", + "flags", + "ReturnFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bits", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1052, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "StorageDeposit" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Refund", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Charge", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1053, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1054 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1054, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1054, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 20 + } + }, + "docs": [] + } + }, + { + "id": 1055, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "Code" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Upload", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Existing", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "Hash", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1056, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1057 + }, + { + "name": "Balance", + "type": 6 + }, + { + "name": "EventRecord", + "type": 20 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1052, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "debug_message", + "type": 14, + "typeName": "Vec", + "docs": [] + }, + { + "name": "result", + "type": 1057, + "typeName": "R", + "docs": [] + }, + { + "name": "events", + "type": 1053, + "typeName": "Option>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1057, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1058 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1058, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1058, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "InstantiateReturnValue" + ], + "params": [ + { + "name": "AccountId", + "type": 0 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "result", + "type": 1050, + "typeName": "ExecReturnValue", + "docs": [] + }, + { + "name": "account_id", + "type": 0, + "typeName": "AccountId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1059, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1060 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1060, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1060, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "CodeUploadReturnValue" + ], + "params": [ + { + "name": "CodeHash", + "type": 13 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "CodeHash", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1061, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 441 + }, + { + "name": "E", + "type": 1062 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 441, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1062, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1062, + "type": { + "path": [ + "pallet_contracts", + "primitives", + "ContractAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "DoesntExist", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "KeyDecodingFailed", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "MigrationInProgress", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1063, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "RuntimeDispatchInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + }, + { + "name": "Weight", + "type": 10 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "weight", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "class", + "type": 24, + "typeName": "DispatchClass", + "docs": [] + }, + { + "name": "partial_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1064, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "FeeDetails" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "inclusion_fee", + "type": 1065, + "typeName": "Option>", + "docs": [] + }, + { + "name": "tip", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1065, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1066 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1066, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1066, + "type": { + "path": [ + "pallet_transaction_payment", + "types", + "InclusionFee" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "base_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "len_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "adjusted_weight_fee", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1067, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1068 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1068, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1068, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 6, + 6 + ] + }, + "docs": [] + } + }, + { + "id": 1069, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1070 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1070, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1070, + "type": { + "path": [ + "sp_consensus_beefy", + "ValidatorSet" + ], + "params": [ + { + "name": "AuthorityId", + "type": 245 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "validators", + "type": 836, + "typeName": "Vec", + "docs": [] + }, + { + "name": "id", + "type": 12, + "typeName": "ValidatorSetId", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1071, + "type": { + "path": [ + "sp_consensus_beefy", + "ForkVotingProof" + ], + "params": [ + { + "name": "Header", + "type": 155 + }, + { + "name": "Id", + "type": 245 + }, + { + "name": "AncestryProof", + "type": 1041 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "vote", + "type": 340, + "typeName": "VoteMessage", + "docs": [] + }, + { + "name": "ancestry_proof", + "type": 1041, + "typeName": "AncestryProof", + "docs": [] + }, + { + "name": "header", + "type": 155, + "typeName": "Header", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1072, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 13 + }, + { + "name": "E", + "type": 1073 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 13, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1073, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1073, + "type": { + "path": [ + "sp_mmr_primitives", + "Error" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InvalidNumericOp", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Push", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "GetRoot", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "Commit", + "fields": [], + "index": 3, + "docs": [] + }, + { + "name": "GenerateProof", + "fields": [], + "index": 4, + "docs": [] + }, + { + "name": "Verify", + "fields": [], + "index": 5, + "docs": [] + }, + { + "name": "LeafNotFound", + "fields": [], + "index": 6, + "docs": [] + }, + { + "name": "PalletNotIncluded", + "fields": [], + "index": 7, + "docs": [] + }, + { + "name": "InvalidLeafIndex", + "fields": [], + "index": 8, + "docs": [] + }, + { + "name": "InvalidBestKnownBlock", + "fields": [], + "index": 9, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1074, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 12 + }, + { + "name": "E", + "type": 1073 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 12, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1073, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1075, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1076 + }, + { + "name": "E", + "type": 1073 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1076, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1073, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1076, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 1077, + 1079 + ] + }, + "docs": [] + } + }, + { + "id": 1077, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1078 + } + }, + "docs": [] + } + }, + { + "id": 1078, + "type": { + "path": [ + "sp_mmr_primitives", + "EncodableOpaqueLeaf" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1079, + "type": { + "path": [ + "sp_mmr_primitives", + "LeafProof" + ], + "params": [ + { + "name": "Hash", + "type": 13 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "leaf_indices", + "type": 897, + "typeName": "Vec", + "docs": [] + }, + { + "name": "leaf_count", + "type": 12, + "typeName": "NodeIndex", + "docs": [] + }, + { + "name": "items", + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1080, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 1073 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1073, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1081, + "type": { + "path": [ + "sp_mixnet", + "types", + "SessionStatus" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "current_index", + "type": 4, + "typeName": "SessionIndex", + "docs": [] + }, + { + "name": "phase", + "type": 1082, + "typeName": "SessionPhase", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1082, + "type": { + "path": [ + "sp_mixnet", + "types", + "SessionPhase" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CoverToCurrent", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "RequestsToCurrent", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "CoverToPrev", + "fields": [], + "index": 2, + "docs": [] + }, + { + "name": "DisconnectFromPrev", + "fields": [], + "index": 3, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1083, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1084 + }, + { + "name": "E", + "type": 1086 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1084, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1086, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1084, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1085 + } + }, + "docs": [] + } + }, + { + "id": 1085, + "type": { + "path": [ + "sp_mixnet", + "types", + "Mixnode" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "kx_public", + "type": 1, + "typeName": "KxPublic", + "docs": [] + }, + { + "name": "peer_id", + "type": 1, + "typeName": "PeerId", + "docs": [] + }, + { + "name": "external_addresses", + "type": 145, + "typeName": "Vec>", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1086, + "type": { + "path": [ + "sp_mixnet", + "types", + "MixnodesErr" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "InsufficientRegistrations", + "fields": [ + { + "name": "num", + "type": 4, + "typeName": "u32", + "docs": [] + }, + { + "name": "min", + "type": 4, + "typeName": "u32", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1087, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1088 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1088, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1088, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1089 + } + }, + "docs": [] + } + }, + { + "id": 1089, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 14, + 674 + ] + }, + "docs": [] + } + }, + { + "id": 1090, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 34 + }, + { + "name": "E", + "type": 556 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 34, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 556, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1091, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 556 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 556, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1092, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 556 + } + }, + "docs": [] + } + }, + { + "id": 1093, + "type": { + "path": [ + "primitive_types", + "U256" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 1094, + "typeName": "[u64; 4]", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1094, + "type": { + "path": [], + "params": [], + "def": { + "array": { + "len": 4, + "type": 12 + } + }, + "docs": [] + } + }, + { + "id": 1095, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1096 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1098, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "result", + "type": 1099, + "typeName": "Result", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1096, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ExecReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "flags", + "type": 1097, + "typeName": "ReturnFlags", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1097, + "type": { + "path": [ + "pallet_revive_uapi", + "flags", + "ReturnFlags" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "bits", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1098, + "type": { + "path": [ + "pallet_revive", + "primitives", + "StorageDeposit" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Refund", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Charge", + "fields": [ + { + "name": null, + "type": 6, + "typeName": "Balance", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1099, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1096 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1096, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1100, + "type": { + "path": [ + "pallet_revive", + "primitives", + "Code" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Upload", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Existing", + "fields": [ + { + "name": null, + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1101, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractResult" + ], + "params": [ + { + "name": "R", + "type": 1102 + }, + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_consumed", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 1098, + "typeName": "StorageDeposit", + "docs": [] + }, + { + "name": "result", + "type": 1103, + "typeName": "Result", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1102, + "type": { + "path": [ + "pallet_revive", + "primitives", + "InstantiateReturnValue" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "result", + "type": 1096, + "typeName": "ExecReturnValue", + "docs": [] + }, + { + "name": "addr", + "type": 480, + "typeName": "H160", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1103, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1102 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1102, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1104, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "GenericTransaction" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "access_list", + "type": 1105, + "typeName": "Option", + "docs": [] + }, + { + "name": "blob_versioned_hashes", + "type": 328, + "typeName": "Vec", + "docs": [] + }, + { + "name": "blobs", + "type": 1108, + "typeName": "Vec", + "docs": [] + }, + { + "name": "chain_id", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "from", + "type": 1111, + "typeName": "Option
", + "docs": [] + }, + { + "name": "gas", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "gas_price", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "input", + "type": 1112, + "typeName": "InputOrData", + "docs": [] + }, + { + "name": "max_fee_per_blob_gas", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_fee_per_gas", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "max_priority_fee_per_gas", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "nonce", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "to", + "type": 1111, + "typeName": "Option
", + "docs": [] + }, + { + "name": "r#type", + "type": 1114, + "typeName": "Option", + "docs": [] + }, + { + "name": "value", + "type": 1110, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1105, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1106 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1106, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1106, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1107 + } + }, + "docs": [] + } + }, + { + "id": 1107, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "AccessListEntry" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 480, + "typeName": "Address", + "docs": [] + }, + { + "name": "storage_keys", + "type": 328, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1108, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1109 + } + }, + "docs": [] + } + }, + { + "id": 1109, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "byte", + "Bytes" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1110, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1093 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1093, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1111, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 480 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 480, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1112, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "rpc_types_gen", + "InputOrData" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "input", + "type": 1113, + "typeName": "Option", + "docs": [] + }, + { + "name": "data", + "type": 1113, + "typeName": "Option", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1113, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1109 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1109, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1114, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1115 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1115, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1115, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "byte", + "Byte" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": null, + "type": 2, + "typeName": "u8", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1116, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1117 + }, + { + "name": "E", + "type": 1118 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1117, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1118, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1117, + "type": { + "path": [ + "pallet_revive", + "primitives", + "EthTransactInfo" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "gas_required", + "type": 10, + "typeName": "Weight", + "docs": [] + }, + { + "name": "storage_deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + }, + { + "name": "eth_gas", + "type": 1093, + "typeName": "U256", + "docs": [] + }, + { + "name": "data", + "type": 14, + "typeName": "Vec", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1118, + "type": { + "path": [ + "pallet_revive", + "primitives", + "EthTransactError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Data", + "fields": [ + { + "name": null, + "type": 14, + "typeName": "Vec", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Message", + "fields": [ + { + "name": null, + "type": 556, + "typeName": "String", + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1119, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1120 + }, + { + "name": "E", + "type": 26 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1120, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 26, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1120, + "type": { + "path": [ + "pallet_revive", + "primitives", + "CodeUploadReturnValue" + ], + "params": [ + { + "name": "Balance", + "type": 6 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "code_hash", + "type": 13, + "typeName": "sp_core::H256", + "docs": [] + }, + { + "name": "deposit", + "type": 6, + "typeName": "Balance", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1121, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 441 + }, + { + "name": "E", + "type": 1122 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 441, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1122, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1122, + "type": { + "path": [ + "pallet_revive", + "primitives", + "ContractAccessError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "DoesntExist", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "KeyDecodingFailed", + "fields": [], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1123, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "TracerType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "CallTracer", + "fields": [ + { + "name": null, + "type": 1124, + "typeName": "Option", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1124, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1125 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1125, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1125, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallTracerConfig" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "with_logs", + "type": 8, + "typeName": "bool", + "docs": [] + }, + { + "name": "only_top_call", + "type": 8, + "typeName": "bool", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1126, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1127 + } + }, + "docs": [] + } + }, + { + "id": 1127, + "type": { + "path": [], + "params": [], + "def": { + "tuple": [ + 4, + 1128 + ] + }, + "docs": [] + } + }, + { + "id": 1128, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "Trace" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [ + { + "name": null, + "type": 1129, + "typeName": "CallTrace", + "docs": [] + } + ], + "index": 0, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1129, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallTrace" + ], + "params": [ + { + "name": "Gas", + "type": 1093 + } + ], + "def": { + "composite": { + "fields": [ + { + "name": "from", + "type": 480, + "typeName": "H160", + "docs": [] + }, + { + "name": "gas", + "type": 1093, + "typeName": "Gas", + "docs": [] + }, + { + "name": "gas_used", + "type": 1093, + "typeName": "Gas", + "docs": [] + }, + { + "name": "to", + "type": 480, + "typeName": "H160", + "docs": [] + }, + { + "name": "input", + "type": 1109, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "output", + "type": 1109, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "error", + "type": 1091, + "typeName": "Option", + "docs": [] + }, + { + "name": "revert_reason", + "type": 1091, + "typeName": "Option", + "docs": [] + }, + { + "name": "calls", + "type": 1130, + "typeName": "Vec>", + "docs": [] + }, + { + "name": "logs", + "type": 1131, + "typeName": "Vec", + "docs": [] + }, + { + "name": "value", + "type": 1110, + "typeName": "Option", + "docs": [] + }, + { + "name": "call_type", + "type": 1133, + "typeName": "CallType", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1130, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1129 + } + }, + "docs": [] + } + }, + { + "id": 1131, + "type": { + "path": [], + "params": [], + "def": { + "sequence": { + "type": 1132 + } + }, + "docs": [] + } + }, + { + "id": 1132, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallLog" + ], + "params": [], + "def": { + "composite": { + "fields": [ + { + "name": "address", + "type": 480, + "typeName": "H160", + "docs": [] + }, + { + "name": "topics", + "type": 328, + "typeName": "Vec", + "docs": [] + }, + { + "name": "data", + "type": 1109, + "typeName": "Bytes", + "docs": [] + }, + { + "name": "position", + "type": 4, + "typeName": "u32", + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1133, + "type": { + "path": [ + "pallet_revive", + "evm", + "api", + "debug_rpc_types", + "CallType" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "Call", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "StaticCall", + "fields": [], + "index": 1, + "docs": [] + }, + { + "name": "DelegateCall", + "fields": [], + "index": 2, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1134, + "type": { + "path": [ + "Option" + ], + "params": [ + { + "name": "T", + "type": 1128 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "None", + "fields": [], + "index": 0, + "docs": [] + }, + { + "name": "Some", + "fields": [ + { + "name": null, + "type": 1128, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1135, + "type": { + "path": [ + "Result" + ], + "params": [ + { + "name": "T", + "type": 1128 + }, + { + "name": "E", + "type": 1118 + } + ], + "def": { + "variant": { + "variants": [ + { + "name": "Ok", + "fields": [ + { + "name": null, + "type": 1128, + "typeName": null, + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Err", + "fields": [ + { + "name": null, + "type": 1118, + "typeName": null, + "docs": [] + } + ], + "index": 1, + "docs": [] + } + ] + } + }, + "docs": [] + } + }, + { + "id": 1136, + "type": { + "path": [ + "kitchensink_runtime", + "RuntimeError" + ], + "params": [], + "def": { + "variant": { + "variants": [ + { + "name": "System", + "fields": [ + { + "name": null, + "type": 568, + "typeName": "frame_system::Error", + "docs": [] + } + ], + "index": 0, + "docs": [] + }, + { + "name": "Utility", + "fields": [ + { + "name": null, + "type": 578, + "typeName": "pallet_utility::Error", + "docs": [] + } + ], + "index": 1, + "docs": [] + }, + { + "name": "Babe", + "fields": [ + { + "name": null, + "type": 594, + "typeName": "pallet_babe::Error", + "docs": [] + } + ], + "index": 2, + "docs": [] + }, + { + "name": "Indices", + "fields": [ + { + "name": null, + "type": 596, + "typeName": "pallet_indices::Error", + "docs": [] + } + ], + "index": 5, + "docs": [] + }, + { + "name": "Balances", + "fields": [ + { + "name": null, + "type": 628, + "typeName": "pallet_balances::Error", + "docs": [] + } + ], + "index": 6, + "docs": [] + }, + { + "name": "ElectionProviderMultiPhase", + "fields": [ + { + "name": null, + "type": 645, + "typeName": "pallet_election_provider_multi_phase::Error", + "docs": [] + } + ], + "index": 10, + "docs": [] + }, + { + "name": "Staking", + "fields": [ + { + "name": null, + "type": 667, + "typeName": "pallet_staking::Error", + "docs": [] + } + ], + "index": 11, + "docs": [] + }, + { + "name": "Session", + "fields": [ + { + "name": null, + "type": 675, + "typeName": "pallet_session::Error", + "docs": [] + } + ], + "index": 12, + "docs": [] + }, + { + "name": "Democracy", + "fields": [ + { + "name": null, + "type": 692, + "typeName": "pallet_democracy::Error", + "docs": [] + } + ], + "index": 13, + "docs": [] + }, + { + "name": "Council", + "fields": [ + { + "name": null, + "type": 697, + "typeName": "pallet_collective::Error", + "docs": [] + } + ], + "index": 14, + "docs": [] + }, + { + "name": "TechnicalCommittee", + "fields": [ + { + "name": null, + "type": 699, + "typeName": "pallet_collective::Error", + "docs": [] + } + ], + "index": 15, + "docs": [] + }, + { + "name": "Elections", + "fields": [ + { + "name": null, + "type": 703, + "typeName": "pallet_elections_phragmen::Error", + "docs": [] + } + ], + "index": 16, + "docs": [] + }, + { + "name": "TechnicalMembership", + "fields": [ + { + "name": null, + "type": 705, + "typeName": "pallet_membership::Error", + "docs": [] + } + ], + "index": 17, + "docs": [] + }, + { + "name": "Grandpa", + "fields": [ + { + "name": null, + "type": 709, + "typeName": "pallet_grandpa::Error", + "docs": [] + } + ], + "index": 18, + "docs": [] + }, + { + "name": "Treasury", + "fields": [ + { + "name": null, + "type": 715, + "typeName": "pallet_treasury::Error", + "docs": [] + } + ], + "index": 19, + "docs": [] + }, + { + "name": "AssetRate", + "fields": [ + { + "name": null, + "type": 716, + "typeName": "pallet_asset_rate::Error", + "docs": [] + } + ], + "index": 20, + "docs": [] + }, + { + "name": "Contracts", + "fields": [ + { + "name": null, + "type": 737, + "typeName": "pallet_contracts::Error", + "docs": [] + } + ], + "index": 21, + "docs": [] + }, + { + "name": "Sudo", + "fields": [ + { + "name": null, + "type": 738, + "typeName": "pallet_sudo::Error", + "docs": [] + } + ], + "index": 22, + "docs": [] + }, + { + "name": "ImOnline", + "fields": [ + { + "name": null, + "type": 741, + "typeName": "pallet_im_online::Error", + "docs": [] + } + ], + "index": 23, + "docs": [] + }, + { + "name": "Identity", + "fields": [ + { + "name": null, + "type": 763, + "typeName": "pallet_identity::Error", + "docs": [] + } + ], + "index": 28, + "docs": [] + }, + { + "name": "Society", + "fields": [ + { + "name": null, + "type": 782, + "typeName": "pallet_society::Error", + "docs": [] + } + ], + "index": 29, + "docs": [] + }, + { + "name": "Recovery", + "fields": [ + { + "name": null, + "type": 786, + "typeName": "pallet_recovery::Error", + "docs": [] + } + ], + "index": 30, + "docs": [] + }, + { + "name": "Vesting", + "fields": [ + { + "name": null, + "type": 790, + "typeName": "pallet_vesting::Error", + "docs": [] + } + ], + "index": 31, + "docs": [] + }, + { + "name": "Scheduler", + "fields": [ + { + "name": null, + "type": 796, + "typeName": "pallet_scheduler::Error", + "docs": [] + } + ], + "index": 32, + "docs": [] + }, + { + "name": "Glutton", + "fields": [ + { + "name": null, + "type": 797, + "typeName": "pallet_glutton::Error", + "docs": [] + } + ], + "index": 33, + "docs": [] + }, + { + "name": "Preimage", + "fields": [ + { + "name": null, + "type": 805, + "typeName": "pallet_preimage::Error", + "docs": [] + } + ], + "index": 34, + "docs": [] + }, + { + "name": "Proxy", + "fields": [ + { + "name": null, + "type": 814, + "typeName": "pallet_proxy::Error", + "docs": [] + } + ], + "index": 35, + "docs": [] + }, + { + "name": "Multisig", + "fields": [ + { + "name": null, + "type": 817, + "typeName": "pallet_multisig::Error", + "docs": [] + } + ], + "index": 36, + "docs": [] + }, + { + "name": "Bounties", + "fields": [ + { + "name": null, + "type": 821, + "typeName": "pallet_bounties::Error", + "docs": [] + } + ], + "index": 37, + "docs": [] + }, + { + "name": "Tips", + "fields": [ + { + "name": null, + "type": 823, + "typeName": "pallet_tips::Error", + "docs": [] + } + ], + "index": 38, + "docs": [] + }, + { + "name": "Assets", + "fields": [ + { + "name": null, + "type": 833, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 39, + "docs": [] + }, + { + "name": "PoolAssets", + "fields": [ + { + "name": null, + "type": 834, + "typeName": "pallet_assets::Error", + "docs": [] + } + ], + "index": 40, + "docs": [] + }, + { + "name": "Beefy", + "fields": [ + { + "name": null, + "type": 837, + "typeName": "pallet_beefy::Error", + "docs": [] + } + ], + "index": 41, + "docs": [] + }, + { + "name": "Lottery", + "fields": [ + { + "name": null, + "type": 843, + "typeName": "pallet_lottery::Error", + "docs": [] + } + ], + "index": 44, + "docs": [] + }, + { + "name": "Nis", + "fields": [ + { + "name": null, + "type": 851, + "typeName": "pallet_nis::Error", + "docs": [] + } + ], + "index": 45, + "docs": [] + }, + { + "name": "Uniques", + "fields": [ + { + "name": null, + "type": 860, + "typeName": "pallet_uniques::Error", + "docs": [] + } + ], + "index": 46, + "docs": [] + }, + { + "name": "Nfts", + "fields": [ + { + "name": null, + "type": 881, + "typeName": "pallet_nfts::Error", + "docs": [] + } + ], + "index": 47, + "docs": [] + }, + { + "name": "NftFractionalization", + "fields": [ + { + "name": null, + "type": 883, + "typeName": "pallet_nft_fractionalization::Error", + "docs": [] + } + ], + "index": 48, + "docs": [] + }, + { + "name": "Salary", + "fields": [ + { + "name": null, + "type": 887, + "typeName": "pallet_salary::Error", + "docs": [] + } + ], + "index": 49, + "docs": [] + }, + { + "name": "CoreFellowship", + "fields": [ + { + "name": null, + "type": 890, + "typeName": "pallet_core_fellowship::Error", + "docs": [] + } + ], + "index": 50, + "docs": [] + }, + { + "name": "TransactionStorage", + "fields": [ + { + "name": null, + "type": 894, + "typeName": "pallet_transaction_storage::Error", + "docs": [] + } + ], + "index": 51, + "docs": [] + }, + { + "name": "VoterList", + "fields": [ + { + "name": null, + "type": 898, + "typeName": "pallet_bags_list::Error", + "docs": [] + } + ], + "index": 52, + "docs": [] + }, + { + "name": "StateTrieMigration", + "fields": [ + { + "name": null, + "type": 137, + "typeName": "pallet_state_trie_migration::Error", + "docs": [] + } + ], + "index": 53, + "docs": [] + }, + { + "name": "ChildBounties", + "fields": [ + { + "name": null, + "type": 903, + "typeName": "pallet_child_bounties::Error", + "docs": [] + } + ], + "index": 54, + "docs": [] + }, + { + "name": "Referenda", + "fields": [ + { + "name": null, + "type": 916, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 55, + "docs": [] + }, + { + "name": "Remark", + "fields": [ + { + "name": null, + "type": 917, + "typeName": "pallet_remark::Error", + "docs": [] + } + ], + "index": 56, + "docs": [] + }, + { + "name": "ConvictionVoting", + "fields": [ + { + "name": null, + "type": 930, + "typeName": "pallet_conviction_voting::Error", + "docs": [] + } + ], + "index": 58, + "docs": [] + }, + { + "name": "Whitelist", + "fields": [ + { + "name": null, + "type": 931, + "typeName": "pallet_whitelist::Error", + "docs": [] + } + ], + "index": 59, + "docs": [] + }, + { + "name": "AllianceMotion", + "fields": [ + { + "name": null, + "type": 933, + "typeName": "pallet_collective::Error", + "docs": [] + } + ], + "index": 60, + "docs": [] + }, + { + "name": "Alliance", + "fields": [ + { + "name": null, + "type": 940, + "typeName": "pallet_alliance::Error", + "docs": [] + } + ], + "index": 61, + "docs": [] + }, + { + "name": "NominationPools", + "fields": [ + { + "name": null, + "type": 955, + "typeName": "pallet_nomination_pools::Error", + "docs": [] + } + ], + "index": 62, + "docs": [] + }, + { + "name": "RankedPolls", + "fields": [ + { + "name": null, + "type": 960, + "typeName": "pallet_referenda::Error", + "docs": [] + } + ], + "index": 63, + "docs": [] + }, + { + "name": "RankedCollective", + "fields": [ + { + "name": null, + "type": 965, + "typeName": "pallet_ranked_collective::Error", + "docs": [] + } + ], + "index": 64, + "docs": [] + }, + { + "name": "AssetConversion", + "fields": [ + { + "name": null, + "type": 967, + "typeName": "pallet_asset_conversion::Error", + "docs": [] + } + ], + "index": 65, + "docs": [] + }, + { + "name": "FastUnstake", + "fields": [ + { + "name": null, + "type": 971, + "typeName": "pallet_fast_unstake::Error", + "docs": [] + } + ], + "index": 66, + "docs": [] + }, + { + "name": "MessageQueue", + "fields": [ + { + "name": null, + "type": 977, + "typeName": "pallet_message_queue::Error", + "docs": [] + } + ], + "index": 67, + "docs": [] + }, + { + "name": "TxPause", + "fields": [ + { + "name": null, + "type": 978, + "typeName": "pallet_tx_pause::Error", + "docs": [] + } + ], + "index": 69, + "docs": [] + }, + { + "name": "SafeMode", + "fields": [ + { + "name": null, + "type": 979, + "typeName": "pallet_safe_mode::Error", + "docs": [] + } + ], + "index": 70, + "docs": [] + }, + { + "name": "MultiBlockMigrations", + "fields": [ + { + "name": null, + "type": 980, + "typeName": "pallet_migrations::Error", + "docs": [] + } + ], + "index": 72, + "docs": [] + }, + { + "name": "Broker", + "fields": [ + { + "name": null, + "type": 1000, + "typeName": "pallet_broker::Error", + "docs": [] + } + ], + "index": 73, + "docs": [] + }, + { + "name": "TasksExample", + "fields": [ + { + "name": null, + "type": 1001, + "typeName": "pallet_example_tasks::Error", + "docs": [] + } + ], + "index": 74, + "docs": [] + }, + { + "name": "AssetConversionMigration", + "fields": [ + { + "name": null, + "type": 1002, + "typeName": "pallet_asset_conversion_ops::Error", + "docs": [] + } + ], + "index": 79, + "docs": [] + }, + { + "name": "Revive", + "fields": [ + { + "name": null, + "type": 1008, + "typeName": "pallet_revive::Error", + "docs": [] + } + ], + "index": 80, + "docs": [] + }, + { + "name": "DelegatedStaking", + "fields": [ + { + "name": null, + "type": 1011, + "typeName": "pallet_delegated_staking::Error", + "docs": [] + } + ], + "index": 82, + "docs": [] + }, + { + "name": "AssetRewards", + "fields": [ + { + "name": null, + "type": 1016, + "typeName": "pallet_asset_rewards::Error", + "docs": [] + } + ], + "index": 83, + "docs": [] + }, + { + "name": "AssetsFreezer", + "fields": [ + { + "name": null, + "type": 1017, + "typeName": "pallet_assets_freezer::Error", + "docs": [] + } + ], + "index": 84, + "docs": [] + }, + { + "name": "MetaTx", + "fields": [ + { + "name": null, + "type": 1018, + "typeName": "pallet_meta_tx::Error", + "docs": [] + } + ], + "index": 89, + "docs": [] + } + ] + } + }, + "docs": [] + } + } +] \ No newline at end of file diff --git a/packages/types-support/src/metadata/v16/bizinikiwi-ver.ts b/packages/types-support/src/metadata/v16/bizinikiwi-ver.ts new file mode 100644 index 0000000..8356512 --- /dev/null +++ b/packages/types-support/src/metadata/v16/bizinikiwi-ver.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable */ + +// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev + +export default { + "specName": "node", + "implName": "bizinikiwi-node", + "authoringVersion": 10, + "specVersion": 268, + "implVersion": 0, + "apis": [ + [ + "0xdf6acb689907609b", + 5 + ], + [ + "0x37e397fc7c91f5e4", + 2 + ], + [ + "0xccd9de6396c899ca", + 1 + ], + [ + "0x40fe3ad401f8959a", + 6 + ], + [ + "0xd2bc9897eed08f15", + 3 + ], + [ + "0xbe9fb0c91a8046cf", + 1 + ], + [ + "0xf78b278be53f454c", + 2 + ], + [ + "0xed99c5acb25eedf5", + 3 + ], + [ + "0x17a6bc0d0062aeb3", + 1 + ], + [ + "0x18ef58a3b67ba770", + 1 + ], + [ + "0xcbca25e39f142387", + 2 + ], + [ + "0x687ad44ad37f03c2", + 1 + ], + [ + "0xbc9d89904f5b923f", + 1 + ], + [ + "0x8453b50b22293977", + 1 + ], + [ + "0x68b66ba122c93fa7", + 2 + ], + [ + "0x37c8bb1350a9a2a8", + 4 + ], + [ + "0x8a8047a53a8277ec", + 1 + ], + [ + "0xf3ff14d5ab527059", + 3 + ], + [ + "0x899a250cbe84f250", + 1 + ], + [ + "0x49eaaf1b548a0cb0", + 5 + ], + [ + "0x91d5df18b0d2cf58", + 2 + ], + [ + "0x6fd7c327202e4a8d", + 1 + ], + [ + "0xab3c0572291feb8b", + 1 + ], + [ + "0x65f855d6e093c2f1", + 1 + ], + [ + "0xfbc577b9d747efd6", + 1 + ], + [ + "0x8c403e5c4a9fd442", + 1 + ] + ], + "transactionVersion": 2, + "systemVersion": 1, + "stateVersion": 1 +}; diff --git a/packages/types-support/src/metadata/v9/bizinikiwi-hex.ts b/packages/types-support/src/metadata/v9/bizinikiwi-hex.ts new file mode 100644 index 0000000..ceaba37 --- /dev/null +++ b/packages/types-support/src/metadata/v9/bizinikiwi-hex.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export default '0x6d65746109641853797374656d011853797374656d34304163636f756e744e6f6e636501010130543a3a4163636f756e74496420543a3a496e646578001000000000047c2045787472696e73696373206e6f6e636520666f72206163636f756e74732e3845787472696e736963436f756e7400000c753332040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e4c416c6c45787472696e73696373576569676874000018576569676874040004150120546f74616c2077656967687420666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e40416c6c45787472696e736963734c656e00000c753332040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b4861736801010138543a3a426c6f636b4e756d6265721c543a3a48617368008000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101010c7533321c5665633c75383e000400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d626572010038543a3a426c6f636b4e756d6265721000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801001c543a3a4861736880000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e3845787472696e73696373526f6f7401001c543a3a486173688000000000000000000000000000000000000000000000000000000000000000000415012045787472696e7369637320726f6f74206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e1844696765737401002c4469676573744f663c543e040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301008c5665633c4576656e745265636f72643c543a3a4576656e742c20543a3a486173683e3e040004a0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e284576656e74436f756e740100284576656e74496e646578100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f706963730102010828291c543a3a48617368845665633c28543a3a426c6f636b4e756d6265722c204576656e74496e646578293e010400342501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e002d0120546865206669727374206b657920736572766573206e6f20707572706f73652e2054686973206669656c64206973206465636c6172656420617320646f75626c655f6d6170206a757374a820666f7220636f6e76656e69656e6365206f66207573696e67206072656d6f76655f707265666978602e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e004d01205468652076616c756520686173207468652074797065206028543a3a426c6f636b4e756d6265722c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e011c2866696c6c5f626c6f636b0004210120412062696720646973706174636820746861742077696c6c20646973616c6c6f7720616e79206f74686572207472616e73616374696f6e20746f20626520696e636c756465642e1872656d61726b041c5f72656d61726b1c5665633c75383e046c204d616b6520736f6d65206f6e2d636861696e2072656d61726b2e387365745f686561705f7061676573041470616765730c75363404fc2053657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040c6e65771c5665633c75383e04482053657420746865206e657720636f64652e2c7365745f73746f7261676504146974656d73345665633c4b657956616c75653e046c2053657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f7261676504106b657973205665633c4b65793e0478204b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697804187072656669780c4b6579041501204b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e01084045787472696e7369635375636365737304304469737061746368496e666f049420416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c6564083444697370617463684572726f72304469737061746368496e666f045420416e2065787472696e736963206661696c65642e000c4c526571756972655369676e65644f726967696e004452657175697265526f6f744f726967696e003c526571756972654e6f4f726967696e001c5574696c697479000104146261746368041463616c6c735c5665633c3c542061732054726169743e3a3a43616c6c3e04b02053656e642061206261746368206f662064697370617463682063616c6c7320286f6e6c7920726f6f74292e0104344261746368457865637574656404785665633c526573756c743c28292c2044697370617463684572726f723e3e0000001042616265011042616265242845706f6368496e64657801000c75363420000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f72697469657301009c5665633c28417574686f7269747949642c2042616265417574686f72697479576569676874293e0400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f7401000c75363420000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f7401000c75363420000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e6573730100205b75383b2033325d80000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e384e65787452616e646f6d6e6573730100205b75383b2033325d800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e305365676d656e74496e64657801000c7533321000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f4205765206d616b6520612074726164656f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101010c753332345665633c5b75383b2033325d3e000400002c496e697469616c697a65640000204d6179626556726604000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e010000083445706f63684475726174696f6e0c75363420c800000000000000080d0120546865206e756d626572206f66202a2a736c6f74732a2a207468617420616e2065706f63682074616b65732e20576520636f75706c652073657373696f6e7320746ffc2065706f6368732c20692e652e2077652073746172742061206e65772073657373696f6e206f6e636520746865206e65772065706f636820626567696e732e444578706563746564426c6f636b54696d6524543a3a4d6f6d656e7420b80b00000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e002454696d657374616d70012454696d657374616d70080c4e6f77010024543a3a4d6f6d656e7420000000000000000004902043757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010010626f6f6c040004b420446964207468652074696d657374616d7020676574207570646174656420696e207468697320626c6f636b3f01040c736574040c6e6f7748436f6d706163743c543a3a4d6f6d656e743e245820536574207468652063757272656e742074696d652e00590120546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed82070686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e004501205468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e74207370656369666965642062794420604d696e696d756d506572696f64602e00d820546865206469737061746368206f726967696e20666f7220746869732063616c6c206d7573742062652060496e686572656e74602e0004344d696e696d756d506572696f6424543a3a4d6f6d656e7420dc0500000000000010690120546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e204265776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f64690120746861742074686520626c6f636b2070726f64756374696f6e206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c79650120776f726b2077697468207468697320746f2064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20652e672e20466f7220417572612c2069742077696c6c20626520646f75626c6520746869737020706572696f64206f6e2064656661756c742073657474696e67732e0028417574686f72736869700128417574686f72736869700c18556e636c65730100e85665633c556e636c65456e7472794974656d3c543a3a426c6f636b4e756d6265722c20543a3a486173682c20543a3a4163636f756e7449643e3e0400041c20556e636c657318417574686f72000030543a3a4163636f756e7449640400046420417574686f72206f662063757272656e7420626c6f636b2e30446964536574556e636c6573010010626f6f6c040004bc205768657468657220756e636c6573207765726520616c72656164792073657420696e207468697320626c6f636b2e0104287365745f756e636c657304286e65775f756e636c6573385665633c543a3a4865616465723e04642050726f76696465206120736574206f6620756e636c65732e0000001c496e6469636573011c496e6469636573082c4e657874456e756d53657401003c543a3a4163636f756e74496e6465781000000000047c20546865206e657874206672656520656e756d65726174696f6e207365742e1c456e756d5365740101013c543a3a4163636f756e74496e646578445665633c543a3a4163636f756e7449643e00040004582054686520656e756d65726174696f6e20736574732e010001043c4e65774163636f756e74496e64657808244163636f756e744964304163636f756e74496e64657810882041206e6577206163636f756e7420696e646578207761732061737369676e65642e0005012054686973206576656e74206973206e6f7420747269676765726564207768656e20616e206578697374696e6720696e64657820697320726561737369676e65646020746f20616e6f7468657220604163636f756e744964602e00002042616c616e636573012042616c616e6365731434546f74616c49737375616e6365010028543a3a42616c616e6365400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e1c56657374696e6700010130543a3a4163636f756e744964ac56657374696e675363686564756c653c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e00040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e2c4672656542616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c9c20546865202766726565272062616c616e6365206f66206120676976656e206163636f756e742e004101205468697320697320746865206f6e6c792062616c616e63652074686174206d61747465727320696e207465726d73206f66206d6f7374206f7065726174696f6e73206f6e20746f6b656e732e204974750120616c6f6e65206973207573656420746f2064657465726d696e65207468652062616c616e6365207768656e20696e2074686520636f6e747261637420657865637574696f6e20656e7669726f6e6d656e742e205768656e207468697355012062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e20746865202763757272656e74206163636f756e74272069733d012064656c657465643a207370656369666963616c6c7920604672656542616c616e6365602e20467572746865722c2074686520604f6e4672656542616c616e63655a65726f602063616c6c6261636b450120697320696e766f6b65642c20676976696e672061206368616e636520746f2065787465726e616c206d6f64756c657320746f20636c65616e2075702064617461206173736f636961746564207769746854207468652064656c65746564206163636f756e742e005d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c657465642069662060526573657276656442616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473150120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e3c526573657276656442616c616e636501010130543a3a4163636f756e74496428543a3a42616c616e63650040000000000000000000000000000000002c75012054686520616d6f756e74206f66207468652062616c616e6365206f66206120676976656e206163636f756e7420746861742069732065787465726e616c6c792072657365727665643b20746869732063616e207374696c6c206765749c20736c61736865642c20627574206765747320736c6173686564206c617374206f6620616c6c2e006d0120546869732062616c616e63652069732061202772657365727665272062616c616e63652074686174206f746865722073756273797374656d732075736520696e206f7264657220746f2073657420617369646520746f6b656e732501207468617420617265207374696c6c20276f776e65642720627920746865206163636f756e7420686f6c6465722c20627574207768696368206172652073757370656e6461626c652e007501205768656e20746869732062616c616e63652066616c6c732062656c6f77207468652076616c7565206f6620604578697374656e7469616c4465706f736974602c207468656e2074686973202772657365727665206163636f756e7427b42069732064656c657465643a207370656369666963616c6c792c2060526573657276656442616c616e6365602e004d01206073797374656d3a3a4163636f756e744e6f6e63656020697320616c736f2064656c6574656420696620604672656542616c616e63656020697320616c736f207a65726f2028697420616c736f2067657473190120636f6c6c617073656420746f207a65726f2069662069742065766572206265636f6d6573206c657373207468616e20604578697374656e7469616c4465706f736974602e29144c6f636b7301010130543a3a4163636f756e744964b05665633c42616c616e63654c6f636b3c543a3a42616c616e63652c20543a3a426c6f636b4e756d6265723e3e00040004b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e0110207472616e736665720810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e64d8205472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e00090120607472616e73666572602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e21012049742077696c6c2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d2062792074686520605472616e73666572466565602e1501204966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b4206f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e00190120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e002c2023203c7765696768743e3101202d20446570656e64656e74206f6e20617267756d656e747320627574206e6f7420637269746963616c2c20676976656e2070726f70657220696d706c656d656e746174696f6e7320666f72cc202020696e70757420636f6e6669672074797065732e205365652072656c617465642066756e6374696f6e732062656c6f772e6901202d20497420636f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e642077726974657320696e7465726e616c6c7920616e64206e6f20636f6d706c657820636f6d7075746174696f6e2e004c2052656c617465642066756e6374696f6e733a0051012020202d2060656e737572655f63616e5f77697468647261776020697320616c776179732063616c6c656420696e7465726e616c6c792062757420686173206120626f756e64656420636f6d706c65786974792e2d012020202d205472616e7366657272696e672062616c616e63657320746f206163636f756e7473207468617420646964206e6f74206578697374206265666f72652077696c6c206361757365d420202020202060543a3a4f6e4e65774163636f756e743a3a6f6e5f6e65775f6163636f756e746020746f2062652063616c6c65642edc2020202d2052656d6f76696e6720656e6f7567682066756e64732066726f6d20616e206163636f756e742077696c6c20747269676765725901202020202060543a3a4475737452656d6f76616c3a3a6f6e5f756e62616c616e6365646020616e642060543a3a4f6e4672656542616c616e63655a65726f3a3a6f6e5f667265655f62616c616e63655f7a65726f602e49012020202d20607472616e736665725f6b6565705f616c6976656020776f726b73207468652073616d652077617920617320607472616e73666572602c206275742068617320616e206164646974696f6e616cf82020202020636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c20746865206f726967696e206163636f756e742e00302023203c2f7765696768743e2c7365745f62616c616e63650c0c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365206e65775f667265654c436f6d706163743c543a3a42616c616e63653e306e65775f72657365727665644c436f6d706163743c543a3a42616c616e63653e349420536574207468652062616c616e636573206f66206120676976656e206163636f756e742e00210120546869732077696c6c20616c74657220604672656542616c616e63656020616e642060526573657276656442616c616e63656020696e2073746f726167652e2069742077696c6c090120616c736f2064656372656173652074686520746f74616c2069737375616e6365206f66207468652073797374656d202860546f74616c49737375616e636560292e190120496620746865206e65772066726565206f722072657365727665642062616c616e63652069732062656c6f7720746865206578697374656e7469616c206465706f7369742ce82069742077696c6c20726573657420746865206163636f756e74206e6f6e636520286073797374656d3a3a4163636f756e744e6f6e636560292e00b420546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e002c2023203c7765696768743e80202d20496e646570656e64656e74206f662074686520617267756d656e74732ec4202d20436f6e7461696e732061206c696d69746564206e756d626572206f6620726561647320616e64207772697465732e302023203c2f7765696768743e38666f7263655f7472616e736665720c18736f757263658c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636510646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e0851012045786163746c7920617320607472616e73666572602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74206d61792062652c207370656369666965642e4c7472616e736665725f6b6565705f616c6976650810646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c75654c436f6d706163743c543a3a42616c616e63653e1851012053616d6520617320746865205b607472616e73666572605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74206b696c6c2074686540206f726967696e206163636f756e742e00bc20393925206f66207468652074696d6520796f752077616e74205b607472616e73666572605d20696e73746561642e00c4205b607472616e73666572605d3a207374727563742e4d6f64756c652e68746d6c236d6574686f642e7472616e73666572010c284e65774163636f756e7408244163636f756e7449641c42616c616e6365046c2041206e6577206163636f756e742077617320637265617465642e345265617065644163636f756e7404244163636f756e744964045c20416e206163636f756e7420776173207265617065642e205472616e7366657210244163636f756e744964244163636f756e7449641c42616c616e63651c42616c616e636504b0205472616e7366657220737563636565646564202866726f6d2c20746f2c2076616c75652c2066656573292e0c484578697374656e7469616c4465706f73697428543a3a42616c616e63654000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e2c5472616e7366657246656528543a3a42616c616e6365400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e46656528543a3a42616c616e6365400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e00485472616e73616374696f6e5061796d656e74012042616c616e63657304444e6578744665654d756c7469706c6965720100284d756c7469706c69657220000000000000000000000008485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e001c5374616b696e67011c5374616b696e67683856616c696461746f72436f756e7401000c753332100000000004a82054686520696465616c206e756d626572206f66207374616b696e67207061727469636970616e74732e544d696e696d756d56616c696461746f72436f756e7401000c7533321004000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c65730100445665633c543a3a4163636f756e7449643e04000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010130543a3a4163636f756e74496430543a3a4163636f756e744964000400040101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e184c656467657200010130543a3a4163636f756e744964a45374616b696e674c65646765723c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400044501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e14506179656501010130543a3a4163636f756e7449644452657761726444657374696e6174696f6e00040004e42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e2856616c696461746f727301010130543a3a4163636f756e7449643856616c696461746f72507265667301040004450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e284e6f6d696e61746f727300010130543a3a4163636f756e744964644e6f6d696e6174696f6e733c543a3a4163636f756e7449643e01040010650120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f2074686520736574206f66207374617368206b657973206f6620616c6c2076616c696461746f727320746f206e6f6d696e6174652e003501204e4f54453a206973207072697661746520736f20746861742077652063616e20656e73757265207570677261646564206265666f726520616c6c207479706963616c2061636365737365732ed8204469726563742073746f7261676520415049732063616e207374696c6c2062797061737320746869732070726f74656374696f6e2e1c5374616b65727301010130543a3a4163636f756e744964904578706f737572653c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000c000000104d01204e6f6d696e61746f727320666f72206120706172746963756c6172206163636f756e74207468617420697320696e20616374696f6e207269676874206e6f772e20596f752063616e277420697465726174651901207468726f7567682076616c696461746f727320686572652c2062757420796f752063616e2066696e64207468656d20696e207468652053657373696f6e206d6f64756c652e00902054686973206973206b6579656420627920746865207374617368206163636f756e742e3843757272656e74456c65637465640100445665633c543a3a4163636f756e7449643e040004fc205468652063757272656e746c7920656c65637465642076616c696461746f7220736574206b65796564206279207374617368206163636f756e742049442e2843757272656e74457261010020457261496e6465781000000000045c205468652063757272656e742065726120696e6465782e3c43757272656e74457261537461727401002c4d6f6d656e744f663c543e200000000000000000047820546865207374617274206f66207468652063757272656e74206572612e6c43757272656e74457261537461727453657373696f6e496e64657801003053657373696f6e496e646578100000000004d0205468652073657373696f6e20696e646578206174207768696368207468652063757272656e742065726120737461727465642e5843757272656e74457261506f696e74734561726e6564010024457261506f696e7473140000000000040d01205265776172647320666f72207468652063757272656e74206572612e205573696e6720696e6469636573206f662063757272656e7420656c6563746564207365742e24536c6f745374616b6501003042616c616e63654f663c543e40000000000000000000000000000000000c31012054686520616d6f756e74206f662062616c616e6365206163746976656c79206174207374616b6520666f7220656163682076616c696461746f7220736c6f742c2063757272656e746c792e00c02054686973206973207573656420746f20646572697665207265776172647320616e642070756e6973686d656e74732e20466f72636545726101001c466f7263696e670400041d01205472756520696620746865206e6578742073657373696f6e206368616e67652077696c6c2062652061206e657720657261207265676172646c657373206f6620696e6465782e4c536c6173685265776172644672616374696f6e01001c50657262696c6c10000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401003042616c616e63654f663c543e40000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c617368657301010120457261496e646578bc5665633c556e6170706c696564536c6173683c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e3e00040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100745665633c28457261496e6465782c2053657373696f6e496e646578293e04000425012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e4c56616c696461746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449645c2850657262696c6c2c2042616c616e63654f663c543e2902040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100020120457261496e64657830543a3a4163636f756e7449643042616c616e63654f663c543e02040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e7300010130543a3a4163636f756e7449645c736c617368696e673a3a536c617368696e675370616e73000400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c6173680101018c28543a3a4163636f756e7449642c20736c617368696e673a3a5370616e496e6465782988736c617368696e673a3a5370616e5265636f72643c42616c616e63654f663c543e3e00800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e584561726c69657374556e6170706c696564536c617368000020457261496e646578040004fc20546865206561726c696573742065726120666f72207768696368207765206861766520612070656e64696e672c20756e6170706c69656420736c6173682e3853746f7261676556657273696f6e01000c75333210000000000490205468652076657273696f6e206f662073746f7261676520666f7220757067726164652e014010626f6e640c28636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e1470617965654452657761726444657374696e6174696f6e3c65012054616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c8420626520746865206163636f756e74207468617420636f6e74726f6c732069742e003101206076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e00250120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e002c2023203c7765696768743ed4202d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e20202d204f2831292e68202d20546872656520657874726120444220656e74726965732e006d01204e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e656420756e6c65737325012074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20616e6420676574732072656d6f76656420617320647573742e302023203c2f7765696768743e28626f6e645f657874726104386d61785f6164646974696f6e616c54436f6d706163743c42616c616e63654f663c543e3e3865012041646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e63652075703420666f72207374616b696e672e00510120557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e650120556e6c696b65205b60626f6e64605d206f72205b60756e626f6e64605d20746869732066756e6374696f6e20646f6573206e6f7420696d706f736520616e79206c696d69746174696f6e206f6e2074686520616d6f756e744c20746861742063616e2062652061646465642e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e18756e626f6e64041476616c756554436f6d706163743c42616c616e63654f663c543e3e5c5501205363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64010120706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e250120543a3a43757272656e63793a3a6d696e696d756d5f62616c616e636528292c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e004901204f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665c0207468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e003d01204e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d41585f554e4c4f434b494e475f4348554e4b5360293d012063616e20636f2d657869737473206174207468652073616d652074696d652e20496e207468617420636173652c205b6043616c6c3a3a77697468647261775f756e626f6e646564605d206e656564fc20746f2062652063616c6c656420666972737420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e00982053656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e002c2023203c7765696768743e4101202d20496e646570656e64656e74206f662074686520617267756d656e74732e204c696d697465642062757420706f74656e7469616c6c79206578706c6f697461626c6520636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732e6501202d20456163682063616c6c20287265717569726573207468652072656d61696e646572206f662074686520626f6e6465642062616c616e636520746f2062652061626f766520606d696e696d756d5f62616c616e63656029710120202077696c6c2063617573652061206e657720656e74727920746f20626520696e73657274656420696e746f206120766563746f722028604c65646765722e756e6c6f636b696e676029206b65707420696e2073746f726167652ea501202020546865206f6e6c792077617920746f20636c65616e207468652061666f72656d656e74696f6e65642073746f72616765206974656d20697320616c736f20757365722d636f6e74726f6c6c656420766961206077697468647261775f756e626f6e646564602e40202d204f6e6520444220656e7472792e28203c2f7765696768743e4477697468647261775f756e626f6e64656400402d012052656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e003501205468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f4c2077686174657665722069742077616e74732e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e006c2053656520616c736f205b6043616c6c3a3a756e626f6e64605d2e002c2023203c7765696768743e5501202d20436f756c6420626520646570656e64656e74206f6e2074686520606f726967696e6020617267756d656e7420616e6420686f77206d7563682060756e6c6f636b696e6760206368756e6b732065786973742e45012020497420696d706c6965732060636f6e736f6c69646174655f756e6c6f636b656460207768696368206c6f6f7073206f76657220604c65646765722e756e6c6f636b696e67602c207768696368206973f42020696e6469726563746c7920757365722d636f6e74726f6c6c65642e20536565205b60756e626f6e64605d20666f72206d6f72652064657461696c2e7901202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732c20796574207468652073697a65206f6620776869636820636f756c64206265206c61726765206261736564206f6e20606c6564676572602ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e2076616c6964617465041470726566733856616c696461746f7250726566732ce8204465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e206e6f6d696e617465041c74617267657473a05665633c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263653e2c1101204465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743e2501202d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f66206074617267657473602c982077686963682069732063617070656420617420604d41585f4e4f4d494e4154494f4e53602ed8202d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e302023203c2f7765696768743e146368696c6c002cc8204465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e54202d20436f6e7461696e73206f6e6520726561642ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e247365745f7061796565041470617965654452657761726444657374696e6174696f6e2cb8202852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e387365745f636f6e74726f6c6c65720428636f6e74726f6c6c65728c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652c90202852652d297365742074686520636f6e74726f6c6c6572206f6620612073746173682e00dc20456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e00550120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e002c2023203c7765696768743ee8202d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e98202d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec8202d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e302023203c2f7765696768743e4c7365745f76616c696461746f725f636f756e74040c6e657730436f6d706163743c7533323e04802054686520696465616c206e756d626572206f662076616c696461746f72732e34666f7263655f6e6f5f657261730014b020466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e34666f7263655f6e65775f65726100184d0120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c206265a020726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e002c2023203c7765696768743e40202d204e6f20617267756d656e74732e302023203c2f7765696768743e447365745f696e76756c6e657261626c6573042876616c696461746f7273445665633c543a3a4163636f756e7449643e04cc20536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e34666f7263655f756e7374616b650414737461736830543a3a4163636f756e744964040d0120466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e50666f7263655f6e65775f6572615f616c776179730014050120466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e002c2023203c7765696768743e50202d204f6e652073746f72616765207772697465302023203c2f7765696768743e5463616e63656c5f64656665727265645f736c617368080c65726120457261496e64657834736c6173685f696e6469636573205665633c7533323e1c45012043616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e2043616e2062652063616c6c6564206279206569746865722074686520726f6f74206f726967696e206f7270207468652060543a3a536c61736843616e63656c4f726967696e602e05012070617373696e67207468652065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2e002c2023203c7765696768743e54202d204f6e652073746f726167652077726974652e302023203c2f7765696768743e010c18526577617264081c42616c616e63651c42616c616e636508510120416c6c2076616c696461746f72732068617665206265656e207265776172646564206279207468652066697273742062616c616e63653b20746865207365636f6e64206973207468652072656d61696e6465728c2066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e14536c61736808244163636f756e7449641c42616c616e6365042501204f6e652076616c696461746f722028616e6420697473206e6f6d696e61746f72732920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e684f6c64536c617368696e675265706f7274446973636172646564043053657373696f6e496e646578081d0120416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c6448206e6f742062652070726f6365737365642e083853657373696f6e735065724572613053657373696f6e496e64657810060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e20457261496e64657810a002000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e001c53657373696f6e011c53657373696f6e1c2856616c696461746f727301004c5665633c543a3a56616c696461746f7249643e0400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e64657801003053657373696f6e496e646578100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010010626f6f6c040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b6579730100785665633c28543a3a56616c696461746f7249642c20543a3a4b657973293e0400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f72730100205665633c7533323e04000c8020496e6469636573206f662064697361626c65642076616c696461746f72732e003501205468652073657420697320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e732061206e657720736574206f66206964656e7469746965732e204e6578744b6579730002041c5665633c75383e38543a3a56616c696461746f7249641c543a3a4b657973010400109c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e204b65794f776e65720002041c5665633c75383e50284b65795479706549642c205665633c75383e2938543a3a56616c696461746f72496401040010250120546865206f776e6572206f662061206b65792e20546865207365636f6e64206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e00590120546865206669727374206b657920697320616c77617973206044454455505f4b45595f5052454649586020746f206861766520616c6c20746865206461746120696e207468652073616d65206272616e6368206f6661012074686520747269652e20486176696e6720616c6c206461746120696e207468652073616d65206272616e63682073686f756c642070726576656e7420736c6f77696e6720646f776e206f7468657220717565726965732e0104207365745f6b65797308106b6579731c543a3a4b6579731470726f6f661c5665633c75383e28e42053657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b6579602e210120416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec4205468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d420546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e002c2023203c7765696768743e88202d204f286c6f67206e2920696e206e756d626572206f66206163636f756e74732e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e0104284e657753657373696f6e043053657373696f6e496e646578085501204e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f742074686520626c6f636b88206e756d626572206173207468652074797065206d6967687420737567676573742e044044454455505f4b45595f50524546495814265b75385d38343a73657373696f6e3a6b6579730865012055736564206173206669727374206b657920666f7220604e6578744b6579736020616e6420604b65794f776e65726020746f2070757420616c6c20746865206461746120696e746f207468652073616d65206272616e636834206f662074686520747269652e002444656d6f6372616379012444656d6f6372616379403c5075626c696350726f70436f756e7401002450726f70496e646578100000000004f420546865206e756d626572206f6620287075626c6963292070726f706f73616c7320746861742068617665206265656e206d61646520736f206661722e2c5075626c696350726f707301009c5665633c2850726f70496e6465782c20543a3a486173682c20543a3a4163636f756e744964293e040004210120546865207075626c69632070726f706f73616c732e20556e736f727465642e20546865207365636f6e64206974656d206973207468652070726f706f73616c277320686173682e24507265696d616765730001011c543a3a48617368d4285665633c75383e2c20543a3a4163636f756e7449642c2042616c616e63654f663c543e2c20543a3a426c6f636b4e756d62657229000400086101204d6170206f662068617368657320746f207468652070726f706f73616c20707265696d6167652c20616c6f6e6720776974682077686f207265676973746572656420697420616e64207468656972206465706f7369742ee42054686520626c6f636b206e756d6265722069732074686520626c6f636b20617420776869636820697420776173206465706f73697465642e244465706f7369744f660001012450726f70496e646578842842616c616e63654f663c543e2c205665633c543a3a4163636f756e7449643e2900040004842054686f73652077686f2068617665206c6f636b65642061206465706f7369742e3c5265666572656e64756d436f756e7401003c5265666572656e64756d496e646578100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e244e65787454616c6c7901003c5265666572656e64756d496e646578100000000004c820546865206e657874207265666572656e64756d20696e64657820746861742073686f756c642062652074616c6c6965642e405265666572656e64756d496e666f4f660001013c5265666572656e64756d496e646578a4285265666572656e64756d496e666f3c543a3a426c6f636b4e756d6265722c20543a3a486173683e2900040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e344469737061746368517565756501010438543a3a426c6f636b4e756d6265729c5665633c4f7074696f6e3c28543a3a486173682c205265666572656e64756d496e646578293e3e00040004c0205175657565206f66207375636365737366756c207265666572656e646120746f20626520646973706174636865642e24566f74657273466f720101013c5265666572656e64756d496e646578445665633c543a3a4163636f756e7449643e00040004a4204765742074686520766f7465727320666f72207468652063757272656e742070726f706f73616c2e18566f74654f660101017c285265666572656e64756d496e6465782c20543a3a4163636f756e7449642910566f7465000400106101204765742074686520766f746520696e206120676976656e207265666572656e64756d206f66206120706172746963756c617220766f7465722e2054686520726573756c74206973206d65616e696e6766756c206f6e6c794d012069662060766f746572735f666f726020696e636c756465732074686520766f746572207768656e2063616c6c6564207769746820746865207265666572656e64756d2028796f75276c6c20676574207468655d012064656661756c742060566f7465602076616c7565206f7468657277697365292e20496620796f7520646f6e27742077616e7420746f20636865636b2060766f746572735f666f72602c207468656e20796f752063616ef420616c736f20636865636b20666f722073696d706c65206578697374656e636520776974682060566f74654f663a3a657869737473602066697273742e1450726f787900010130543a3a4163636f756e74496430543a3a4163636f756e7449640004000831012057686f2069732061626c6520746f20766f746520666f722077686f6d2e2056616c7565206973207468652066756e642d686f6c64696e67206163636f756e742c206b6579206973207468658820766f74652d7472616e73616374696f6e2d73656e64696e67206163636f756e742e2c44656c65676174696f6e7301010130543a3a4163636f756e7449646828543a3a4163636f756e7449642c20436f6e76696374696f6e2901840000000000000000000000000000000000000000000000000000000000000000000441012047657420746865206163636f756e742028616e64206c6f636b20706572696f64732920746f20776869636820616e6f74686572206163636f756e742069732064656c65676174696e6720766f74652e544c6173745461626c656457617345787465726e616c010010626f6f6c0400085901205472756520696620746865206c617374207265666572656e64756d207461626c656420776173207375626d69747465642065787465726e616c6c792e2046616c7365206966206974207761732061207075626c6963282070726f706f73616c2e304e65787445787465726e616c00006028543a3a486173682c20566f74655468726573686f6c6429040010590120546865207265666572656e64756d20746f206265207461626c6564207768656e6576657220697420776f756c642062652076616c696420746f207461626c6520616e2065787465726e616c2070726f706f73616c2e550120546869732068617070656e73207768656e2061207265666572656e64756d206e6565647320746f206265207461626c656420616e64206f6e65206f662074776f20636f6e646974696f6e7320617265206d65743aa4202d20604c6173745461626c656457617345787465726e616c60206973206066616c7365603b206f7268202d20605075626c696350726f70736020697320656d7074792e24426c61636b6c6973740001011c543a3a486173688c28543a3a426c6f636b4e756d6265722c205665633c543a3a4163636f756e7449643e290004000851012041207265636f7264206f662077686f207665746f656420776861742e204d6170732070726f706f73616c206861736820746f206120706f737369626c65206578697374656e7420626c6f636b206e756d626572e82028756e74696c207768656e206974206d6179206e6f742062652072657375626d69747465642920616e642077686f207665746f65642069742e3443616e63656c6c6174696f6e730101011c543a3a4861736810626f6f6c000400042901205265636f7264206f6620616c6c2070726f706f73616c7320746861742068617665206265656e207375626a65637420746f20656d657267656e63792063616e63656c6c6174696f6e2e01541c70726f706f7365083470726f706f73616c5f686173681c543a3a486173681476616c756554436f6d706163743c42616c616e63654f663c543e3e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e80202d2054776f204442206368616e6765732c206f6e6520444220656e7472792e302023203c2f7765696768743e187365636f6e64042070726f706f73616c48436f6d706163743c50726f70496e6465783e18a02050726f706f736520612073656e73697469766520616374696f6e20746f2062652074616b656e2e002c2023203c7765696768743e20202d204f2831292e40202d204f6e6520444220656e7472792e302023203c2f7765696768743e10766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c350120566f746520696e2061207265666572656e64756d2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bbc206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e2870726f78795f766f746508247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e10766f746510566f74651c510120566f746520696e2061207265666572656e64756d206f6e20626568616c66206f6620612073746173682e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374f8207468652070726f706f73616c3b20206f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e002c2023203c7765696768743e20202d204f2831292e7c202d204f6e65204442206368616e67652c206f6e6520444220656e7472792e302023203c2f7765696768743e40656d657267656e63795f63616e63656c04247265665f696e6465783c5265666572656e64756d496e646578085101205363686564756c6520616e20656d657267656e63792063616e63656c6c6174696f6e206f662061207265666572656e64756d2e2043616e6e6f742068617070656e20747769636520746f207468652073616d6530207265666572656e64756d2e4065787465726e616c5f70726f706f7365043470726f706f73616c5f686173681c543a3a48617368083101205363686564756c652061207265666572656e64756d20746f206265207461626c6564206f6e6365206974206973206c6567616c20746f207363686564756c6520616e2065787465726e616c30207265666572656e64756d2e6465787465726e616c5f70726f706f73655f6d616a6f72697479043470726f706f73616c5f686173681c543a3a48617368145901205363686564756c652061206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f207363686564756c656020616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e6065787465726e616c5f70726f706f73655f64656661756c74043470726f706f73616c5f686173681c543a3a48617368144901205363686564756c652061206e656761746976652d7475726e6f75742d62696173207265666572656e64756d20746f206265207461626c6564206e657874206f6e6365206974206973206c6567616c20746f84207363686564756c6520616e2065787465726e616c207265666572656e64756d2e004d0120556e6c696b65206065787465726e616c5f70726f706f7365602c20626c61636b6c697374696e6720686173206e6f20656666656374206f6e207468697320616e64206974206d6179207265706c61636520619c207072652d7363686564756c6564206065787465726e616c5f70726f706f7365602063616c6c2e28666173745f747261636b0c3470726f706f73616c5f686173681c543a3a4861736834766f74696e675f706572696f6438543a3a426c6f636b4e756d6265721464656c617938543a3a426c6f636b4e756d626572245101205363686564756c65207468652063757272656e746c792065787465726e616c6c792d70726f706f736564206d616a6f726974792d63617272696573207265666572656e64756d20746f206265207461626c6564650120696d6d6564696174656c792e204966207468657265206973206e6f2065787465726e616c6c792d70726f706f736564207265666572656e64756d2063757272656e746c792c206f72206966207468657265206973206f6e65ec20627574206974206973206e6f742061206d616a6f726974792d63617272696573207265666572656e64756d207468656e206974206661696c732e00f8202d206070726f706f73616c5f68617368603a205468652068617368206f66207468652063757272656e742065787465726e616c2070726f706f73616c2e6101202d2060766f74696e675f706572696f64603a2054686520706572696f64207468617420697320616c6c6f77656420666f7220766f74696e67206f6e20746869732070726f706f73616c2e20496e6372656173656420746f9820202060456d657267656e6379566f74696e67506572696f646020696620746f6f206c6f772e5501202d206064656c6179603a20546865206e756d626572206f6620626c6f636b20616674657220766f74696e672068617320656e64656420696e20617070726f76616c20616e6420746869732073686f756c64206265bc202020656e61637465642e205468697320646f65736e277420686176652061206d696e696d756d20616d6f756e742e347665746f5f65787465726e616c043470726f706f73616c5f686173681c543a3a4861736804bc205665746f20616e6420626c61636b6c697374207468652065787465726e616c2070726f706f73616c20686173682e4463616e63656c5f7265666572656e64756d04247265665f696e64657860436f6d706163743c5265666572656e64756d496e6465783e04542052656d6f76652061207265666572656e64756d2e3463616e63656c5f7175657565640c107768656e5c436f6d706163743c543a3a426c6f636b4e756d6265723e14776869636830436f6d706163743c7533323e107768617460436f6d706163743c5265666572656e64756d496e6465783e04a02043616e63656c20612070726f706f73616c2071756575656420666f7220656e6163746d656e742e247365745f70726f7879041470726f787930543a3a4163636f756e7449641498205370656369667920612070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3072657369676e5f70726f787900149820436c656172207468652070726f78792e2043616c6c6564206279207468652070726f78792e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e3072656d6f76655f70726f7879041470726f787930543a3a4163636f756e744964149820436c656172207468652070726f78792e2043616c6c6564206279207468652073746173682e002c2023203c7765696768743e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e2064656c65676174650808746f30543a3a4163636f756e74496428636f6e76696374696f6e28436f6e76696374696f6e143c2044656c656761746520766f74652e002c2023203c7765696768743e58202d204f6e6520657874726120444220656e7472792e302023203c2f7765696768743e28756e64656c656761746500144420556e64656c656761746520766f74652e002c2023203c7765696768743e20202d204f2831292e302023203c2f7765696768743e58636c6561725f7075626c69635f70726f706f73616c7300040101205665746f20616e6420626c61636b6c697374207468652070726f706f73616c20686173682e204d7573742062652066726f6d20526f6f74206f726967696e2e346e6f74655f707265696d6167650440656e636f6465645f70726f706f73616c1c5665633c75383e0861012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e205468697320646f65736e27742072657175697265207468652070726f706f73616c20746f206265250120696e207468652064697370617463682071756575652062757420646f657320726571756972652061206465706f7369742c2072657475726e6564206f6e636520656e61637465642e586e6f74655f696d6d696e656e745f707265696d6167650c40656e636f6465645f70726f706f73616c1c5665633c75383e107768656e38543a3a426c6f636b4e756d6265721477686963680c7533320845012052656769737465722074686520707265696d61676520666f7220616e207570636f6d696e672070726f706f73616c2e2054686973207265717569726573207468652070726f706f73616c20746f206265b420696e207468652064697370617463682071756575652e204e6f206465706f736974206973206e65656465642e34726561705f707265696d616765043470726f706f73616c5f686173681c543a3a4861736804f42052656d6f766520616e20657870697265642070726f706f73616c20707265696d61676520616e6420636f6c6c65637420746865206465706f7369742e01402050726f706f736564082450726f70496e6465781c42616c616e636504c02041206d6f74696f6e20686173206265656e2070726f706f7365642062792061207075626c6963206163636f756e742e185461626c65640c2450726f70496e6465781c42616c616e6365385665633c4163636f756e7449643e04dc2041207075626c69632070726f706f73616c20686173206265656e207461626c656420666f72207265666572656e64756d20766f74652e3845787465726e616c5461626c656400049820416e2065787465726e616c2070726f706f73616c20686173206265656e207461626c65642e1c53746172746564083c5265666572656e64756d496e64657834566f74655468726573686f6c6404602041207265666572656e64756d2068617320626567756e2e18506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e20617070726f766564206279207265666572656e64756d2e244e6f74506173736564043c5265666572656e64756d496e64657804b020412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2443616e63656c6c6564043c5265666572656e64756d496e64657804842041207265666572656e64756d20686173206265656e2063616e63656c6c65642e204578656375746564083c5265666572656e64756d496e64657810626f6f6c047420412070726f706f73616c20686173206265656e20656e61637465642e2444656c65676174656408244163636f756e744964244163636f756e74496404e020416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e2c556e64656c65676174656404244163636f756e74496404e820416e206163636f756e74206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e185665746f65640c244163636f756e74496410486173682c426c6f636b4e756d626572049820416e2065787465726e616c2070726f706f73616c20686173206265656e207665746f65642e34507265696d6167654e6f7465640c1048617368244163636f756e7449641c42616c616e636504e020412070726f706f73616c277320707265696d61676520776173206e6f7465642c20616e6420746865206465706f7369742074616b656e2e30507265696d616765557365640c1048617368244163636f756e7449641c42616c616e636504150120412070726f706f73616c20707265696d616765207761732072656d6f76656420616e6420757365642028746865206465706f736974207761732072657475726e6564292e3c507265696d616765496e76616c69640810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d6167652077617320696e76616c69642e3c507265696d6167654d697373696e670810486173683c5265666572656e64756d496e646578040d0120412070726f706f73616c20636f756c64206e6f7420626520657865637574656420626563617573652069747320707265696d61676520776173206d697373696e672e38507265696d616765526561706564101048617368244163636f756e7449641c42616c616e6365244163636f756e744964045d012041207265676973746572656420707265696d616765207761732072656d6f76656420616e6420746865206465706f73697420636f6c6c6563746564206279207468652072656170657220286c617374206974656d292e1c3c456e6163746d656e74506572696f6438543a3a426c6f636b4e756d62657210002f0d0014710120546865206d696e696d756d20706572696f64206f66206c6f636b696e6720616e642074686520706572696f64206265747765656e20612070726f706f73616c206265696e6720617070726f76656420616e6420656e61637465642e0031012049742073686f756c642067656e6572616c6c792062652061206c6974746c65206d6f7265207468616e2074686520756e7374616b6520706572696f6420746f20656e737572652074686174690120766f74696e67207374616b657273206861766520616e206f70706f7274756e69747920746f2072656d6f7665207468656d73656c7665732066726f6d207468652073797374656d20696e2074686520636173652077686572659c207468657920617265206f6e20746865206c6f73696e672073696465206f66206120766f74652e304c61756e6368506572696f6438543a3a426c6f636b4e756d62657210004e0c0004e420486f77206f6674656e2028696e20626c6f636b7329206e6577207075626c6963207265666572656e646120617265206c61756e636865642e30566f74696e67506572696f6438543a3a426c6f636b4e756d62657210004e0c0004b820486f77206f6674656e2028696e20626c6f636b732920746f20636865636b20666f72206e657720766f7465732e384d696e696d756d4465706f7369743042616c616e63654f663c543e400000c16ff2862300000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e54456d657267656e6379566f74696e67506572696f6438543a3a426c6f636b4e756d626572108051010004ec204d696e696d756d20766f74696e6720706572696f6420616c6c6f77656420666f7220616e20656d657267656e6379207265666572656e64756d2e34436f6f6c6f6666506572696f6438543a3a426c6f636b4e756d62657210004e0c0004610120506572696f6420696e20626c6f636b7320776865726520616e2065787465726e616c2070726f706f73616c206d6179206e6f742062652072652d7375626d6974746564206166746572206265696e67207665746f65642e4c507265696d616765427974654465706f7369743042616c616e63654f663c543e400010a5d4e800000000000000000000000429012054686520616d6f756e74206f662062616c616e63652074686174206d757374206265206465706f7369746564207065722062797465206f6620707265696d6167652073746f7265642e001c436f756e63696c014c496e7374616e636531436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e000048546563686e6963616c436f6d6d6974746565014c496e7374616e636532436f6c6c656374697665142450726f706f73616c730100305665633c543a3a486173683e040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001011c543a3a48617368643c542061732054726169743c493e3e3a3a50726f706f73616c00040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18566f74696e670001011c543a3a486173684c566f7465733c543a3a4163636f756e7449643e00040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e7401000c753332100000000004482050726f706f73616c7320736f206661722e1c4d656d626572730100445665633c543a3a4163636f756e7449643e0400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e01102c7365745f6d656d62657273042c6e65775f6d656d62657273445665633c543a3a4163636f756e7449643e105101205365742074686520636f6c6c6563746976652773206d656d62657273686970206d616e75616c6c7920746f20606e65775f6d656d62657273602e204265206e69636520746f2074686520636861696e20616e645c2070726f76696465206974207072652d736f727465642e005820526571756972657320726f6f74206f726967696e2e1c65786563757465042070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e0cf420446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00ac204f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e1c70726f706f736508247468726573686f6c6450436f6d706163743c4d656d626572436f756e743e2070726f706f73616c78426f783c3c542061732054726169743c493e3e3a3a50726f706f73616c3e102c2023203c7765696768743e90202d20426f756e6465642073746f7261676520726561647320616e64207772697465732eb8202d20417267756d656e7420607468726573686f6c6460206861732062656172696e67206f6e207765696768742e302023203c2f7765696768743e10766f74650c2070726f706f73616c1c543a3a4861736814696e64657858436f6d706163743c50726f706f73616c496e6465783e1c617070726f766510626f6f6c102c2023203c7765696768743e8c202d20426f756e6465642073746f72616765207265616420616e64207772697465732e5501202d2057696c6c20626520736c696768746c792068656176696572206966207468652070726f706f73616c20697320617070726f766564202f20646973617070726f7665642061667465722074686520766f74652e302023203c2f7765696768743e01182050726f706f73656410244163636f756e7449643450726f706f73616c496e64657810486173682c4d656d626572436f756e74084d012041206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e4020604d656d626572436f756e7460292e14566f74656414244163636f756e744964104861736810626f6f6c2c4d656d626572436f756e742c4d656d626572436f756e740809012041206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e67190120612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404104861736804c42041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404104861736804d42041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408104861736810626f6f6c0405012041206d6f74696f6e207761732065786563757465643b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408104861736810626f6f6c042d0120412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b2060626f6f6c6020697320747275652069662072657475726e656420776974686f7574206572726f722e000024456c656374696f6e73014050687261676d656e456c656374696f6e181c4d656d626572730100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e040004f0205468652063757272656e7420656c6563746564206d656d626572736869702e20536f72746564206261736564206f6e206163636f756e742069642e2452756e6e65727355700100845665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e293e0400044901205468652063757272656e742072756e6e6572735f75702e20536f72746564206261736564206f6e206c6f7720746f2068696768206d657269742028776f72736520746f20626573742072756e6e6572292e38456c656374696f6e526f756e647301000c75333210000000000441012054686520746f74616c206e756d626572206f6620766f746520726f756e6473207468617420686176652068617070656e65642c206578636c7564696e6720746865207570636f6d696e67206f6e652e1c566f7465734f6601010130543a3a4163636f756e744964445665633c543a3a4163636f756e7449643e01040004010120566f746573206f66206120706172746963756c617220766f7465722c20776974682074686520726f756e6420696e646578206f662074686520766f7465732e1c5374616b654f6601010130543a3a4163636f756e7449643042616c616e63654f663c543e0040000000000000000000000000000000000464204c6f636b6564207374616b65206f66206120766f7465722e2843616e646964617465730100445665633c543a3a4163636f756e7449643e0400086501205468652070726573656e742063616e646964617465206c6973742e20536f72746564206261736564206f6e206163636f756e742069642e20412063757272656e74206d656d6265722063616e206e6576657220656e7465720101207468697320766563746f7220616e6420697320616c7761797320696d706c696369746c7920617373756d656420746f20626520612063616e6469646174652e011810766f74650814766f746573445665633c543a3a4163636f756e7449643e1476616c756554436f6d706163743c42616c616e63654f663c543e3e3c050120566f746520666f72206120736574206f662063616e6469646174657320666f7220746865207570636f6d696e6720726f756e64206f6620656c656374696f6e2e0050205468652060766f746573602073686f756c643a482020202d206e6f7420626520656d7074792eac2020202d206265206c657373207468616e20746865206e756d626572206f662063616e646964617465732e005d012055706f6e20766f74696e672c206076616c75656020756e697473206f66206077686f6027732062616c616e6365206973206c6f636b656420616e64206120626f6e6420616d6f756e742069732072657365727665642e5d012049742069732074686520726573706f6e736962696c697479206f66207468652063616c6c657220746f206e6f7420706c61636520616c6c206f662074686569722062616c616e636520696e746f20746865206c6f636ba020616e64206b65657020736f6d6520666f722066757274686572207472616e73616374696f6e732e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f283129c8205772697465733a204f28562920676976656e2060566020766f7465732e205620697320626f756e6465642062792031362e302023203c2f7765696768743e3072656d6f76655f766f746572001c21012052656d6f766520606f726967696e60206173206120766f7465722e20546869732072656d6f76657320746865206c6f636b20616e642072657475726e732074686520626f6e642e002c2023203c7765696768743e2c2023232323205374617465302052656164733a204f28312934205772697465733a204f283129302023203c2f7765696768743e507265706f72745f646566756e63745f766f74657204187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d01205265706f727420607461726765746020666f72206265696e6720616e20646566756e637420766f7465722e20496e2063617365206f6620612076616c6964207265706f72742c20746865207265706f727465722069735d012072657761726465642062792074686520626f6e6420616d6f756e74206f662060746172676574602e204f74686572776973652c20746865207265706f7274657220697473656c662069732072656d6f76656420616e645c20746865697220626f6e6420697320736c61736865642e0088204120646566756e637420766f74657220697320646566696e656420746f2062653a4d012020202d206120766f7465722077686f73652063757272656e74207375626d697474656420766f7465732061726520616c6c20696e76616c69642e20692e652e20616c6c206f66207468656d20617265206e6fb420202020206c6f6e67657220612063616e646964617465206e6f7220616e20616374697665206d656d6265722e002c2023203c7765696768743e2c202323232320537461746515012052656164733a204f284e4c6f674d2920676976656e204d2063757272656e742063616e6469646174657320616e64204e20766f74657320666f722060746172676574602e34205772697465733a204f283129302023203c2f7765696768743e407375626d69745f63616e646964616379003478205375626d6974206f6e6573656c6620666f722063616e6469646163792e006420412063616e6469646174652077696c6c206569746865723aec2020202d204c6f73652061742074686520656e64206f6620746865207465726d20616e6420666f7266656974207468656972206465706f7369742e2d012020202d2057696e20616e64206265636f6d652061206d656d6265722e204d656d626572732077696c6c206576656e7475616c6c7920676574207468656972207374617368206261636b2e55012020202d204265636f6d6520612072756e6e65722d75702e2052756e6e6572732d75707320617265207265736572766564206d656d6265727320696e2063617365206f6e65206765747320666f72636566756c6c7934202020202072656d6f7665642e002c2023203c7765696768743e2c20232323232053746174658c2052656164733a204f284c6f674e2920476976656e204e2063616e646964617465732e34205772697465733a204f283129302023203c2f7765696768743e4872656e6f756e63655f63616e646964616379002451012052656e6f756e6365206f6e65277320696e74656e74696f6e20746f20626520612063616e64696461746520666f7220746865206e65787420656c656374696f6e20726f756e642e203320706f74656e7469616c40206f7574636f6d65732065786973743a4101202d20606f726967696e6020697320612063616e64696461746520616e64206e6f7420656c656374656420696e20616e79207365742e20496e207468697320636173652c2074686520626f6e64206973f4202020756e72657365727665642c2072657475726e656420616e64206f726967696e2069732072656d6f76656420617320612063616e6469646174652e5901202d20606f726967696e6020697320612063757272656e742072756e6e65722075702e20496e207468697320636173652c2074686520626f6e6420697320756e72657365727665642c2072657475726e656420616e64842020206f726967696e2069732072656d6f76656420617320612072756e6e65722e4d01202d20606f726967696e6020697320612063757272656e74206d656d6265722e20496e207468697320636173652c2074686520626f6e6420697320756e726573657276656420616e64206f726967696e206973590120202072656d6f7665642061732061206d656d6265722c20636f6e73657175656e746c79206e6f74206265696e6720612063616e64696461746520666f7220746865206e65787420726f756e6420616e796d6f72652e650120202053696d696c617220746f205b6072656d6f76655f766f746572605d2c206966207265706c6163656d656e742072756e6e657273206578697374732c20746865792061726520696d6d6564696174656c7920757365642e3472656d6f76655f6d656d626572040c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365345d012052656d6f7665206120706172746963756c6172206d656d6265722066726f6d20746865207365742e20546869732069732065666665637469766520696d6d6564696174656c7920616e642074686520626f6e64206f668020746865206f7574676f696e67206d656d62657220697320736c61736865642e00590120496620612072756e6e65722d757020697320617661696c61626c652c207468656e2074686520626573742072756e6e65722d75702077696c6c2062652072656d6f76656420616e64207265706c6163657320746865f4206f7574676f696e67206d656d6265722e204f74686572776973652c2061206e65772070687261676d656e20726f756e6420697320737461727465642e004501204e6f74652074686174207468697320646f6573206e6f7420616666656374207468652064657369676e6174656420626c6f636b206e756d626572206f6620746865206e65787420656c656374696f6e2e002c2023203c7765696768743e2c2023232323205374617465582052656164733a204f28646f5f70687261676d656e295c205772697465733a204f28646f5f70687261676d656e29302023203c2f7765696768743e01141c4e65775465726d04645665633c284163636f756e7449642c2042616c616e6365293e0855012041206e6577207465726d2077697468206e6577206d656d626572732e205468697320696e64696361746573207468617420656e6f7567682063616e6469646174657320657869737465642c206e6f742074686174450120656e6f756768206861766520686173206265656e20656c65637465642e2054686520696e6e65722076616c7565206d757374206265206578616d696e656420666f72207468697320707572706f73652e24456d7074795465726d0004d8204e6f20286f72206e6f7420656e6f756768292063616e64696461746573206578697374656420666f72207468697320726f756e642e304d656d6265724b69636b656404244163636f756e7449640845012041206d656d62657220686173206265656e2072656d6f7665642e20546869732073686f756c6420616c7761797320626520666f6c6c6f7765642062792065697468657220604e65775465726d60206f74342060456d7074795465726d602e3c4d656d62657252656e6f756e63656404244163636f756e74496404a02041206d656d626572206861732072656e6f756e6365642074686569722063616e6469646163792e34566f7465725265706f727465640c244163636f756e744964244163636f756e74496410626f6f6c086101204120766f7465722028666972737420656c656d656e742920776173207265706f72746564202862797420746865207365636f6e6420656c656d656e742920776974682074686520746865207265706f7274206265696e678c207375636365737366756c206f72206e6f742028746869726420656c656d656e74292e143443616e646964616379426f6e643042616c616e63654f663c543e400080c6a47e8d030000000000000000000028566f74696e67426f6e643042616c616e63654f663c543e4000407a10f35a000000000000000000000038446573697265644d656d626572730c753332100d00000000404465736972656452756e6e65727355700c753332100700000000305465726d4475726174696f6e38543a3a426c6f636b4e756d626572108013030000004c546563686e6963616c4d656d62657273686970014c496e7374616e6365314d656d62657273686970041c4d656d626572730100445665633c543a3a4163636f756e7449643e040004c8205468652063757272656e74206d656d626572736869702c2073746f72656420617320616e206f726465726564205665632e0114286164645f6d656d626572040c77686f30543a3a4163636f756e7449640c7c204164642061206d656d626572206077686f6020746f20746865207365742e00b4204d6179206f6e6c792062652063616c6c65642066726f6d20604164644f726967696e60206f7220726f6f742e3472656d6f76655f6d656d626572040c77686f30543a3a4163636f756e7449640c902052656d6f76652061206d656d626572206077686f602066726f6d20746865207365742e00c0204d6179206f6e6c792062652063616c6c65642066726f6d206052656d6f76654f726967696e60206f7220726f6f742e2c737761705f6d656d626572081872656d6f766530543a3a4163636f756e7449640c61646430543a3a4163636f756e7449640cc02053776170206f7574206f6e65206d656d626572206072656d6f76656020666f7220616e6f746865722060616464602e00b8204d6179206f6e6c792062652063616c6c65642066726f6d2060537761704f726967696e60206f7220726f6f742e3472657365745f6d656d62657273041c6d656d62657273445665633c543a3a4163636f756e7449643e105901204368616e676520746865206d656d6265727368697020746f2061206e6577207365742c20646973726567617264696e6720746865206578697374696e67206d656d626572736869702e204265206e69636520616e646c207061737320606d656d6265727360207072652d736f727465642e00bc204d6179206f6e6c792062652063616c6c65642066726f6d206052657365744f726967696e60206f7220726f6f742e286368616e67655f6b6579040c6e657730543a3a4163636f756e7449640cd82053776170206f7574207468652073656e64696e67206d656d62657220666f7220736f6d65206f74686572206b657920606e6577602e00f4204d6179206f6e6c792062652063616c6c65642066726f6d20605369676e656460206f726967696e206f6620612063757272656e74206d656d6265722e01182c4d656d62657241646465640004e42054686520676976656e206d656d626572207761732061646465643b2073656520746865207472616e73616374696f6e20666f722077686f2e344d656d62657252656d6f7665640004ec2054686520676976656e206d656d626572207761732072656d6f7665643b2073656520746865207472616e73616374696f6e20666f722077686f2e384d656d62657273537761707065640004dc2054776f206d656d62657273207765726520737761707065643b2073656520746865207472616e73616374696f6e20666f722077686f2e304d656d6265727352657365740004190120546865206d656d62657273686970207761732072657365743b2073656520746865207472616e73616374696f6e20666f722077686f20746865206e6577207365742069732e284b65794368616e676564000488204f6e65206f6620746865206d656d6265727327206b657973206368616e6765642e1444756d6d7904b4727374643a3a6d61726b65723a3a5068616e746f6d446174613c284163636f756e7449642c204576656e74293e0470205068616e746f6d206d656d6265722c206e6576657220757365642e00003c46696e616c697479547261636b65720001042866696e616c5f68696e74041068696e745c436f6d706163743c543a3a426c6f636b4e756d6265723e08f42048696e7420746861742074686520617574686f72206f66207468697320626c6f636b207468696e6b732074686520626573742066696e616c697a65646c20626c6f636b2069732074686520676976656e206e756d6265722e00082857696e646f7753697a6538543a3a426c6f636b4e756d626572106500000004190120546865206e756d626572206f6620726563656e742073616d706c657320746f206b6565702066726f6d207468697320636861696e2e2044656661756c74206973203130312e345265706f72744c6174656e637938543a3a426c6f636b4e756d62657210e8030000041d01205468652064656c617920616674657220776869636820706f696e74207468696e6773206265636f6d6520737573706963696f75732e2044656661756c7420697320313030302e001c4772616e647061013c4772616e64706146696e616c6974791c2c417574686f726974696573010034417574686f726974794c6973740400102c20444550524543415445440061012054686973207573656420746f2073746f7265207468652063757272656e7420617574686f72697479207365742c20776869636820686173206265656e206d6967726174656420746f207468652077656c6c2d6b6e6f776e94204752414e4450415f415554484f52495445535f4b455920756e686173686564206b65792e14537461746501006c53746f72656453746174653c543a3a426c6f636b4e756d6265723e04000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e676500008c53746f72656450656e64696e674368616e67653c543a3a426c6f636b4e756d6265723e040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000038543a3a426c6f636b4e756d626572040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400008028543a3a426c6f636b4e756d6265722c20543a3a426c6f636b4e756d626572290400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e7453657449640100145365744964200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e0001011453657449643053657373696f6e496e64657800040004c1012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f7220776869636820697473206d656d62657273207765726520726573706f6e7369626c652e0104487265706f72745f6d69736265686176696f72041c5f7265706f72741c5665633c75383e0464205265706f727420736f6d65206d69736265686176696f722e010c384e6577417574686f7269746965730434417574686f726974794c6973740490204e657720617574686f726974792073657420686173206265656e206170706c6965642e1850617573656400049c2043757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640004a02043757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e0000205472656173757279012054726561737572790c3450726f706f73616c436f756e7401003450726f706f73616c496e646578100000000004a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c730001013450726f706f73616c496e6465789050726f706f73616c3c543a3a4163636f756e7449642c2042616c616e63654f663c543e3e000400047c2050726f706f73616c7320746861742068617665206265656e206d6164652e24417070726f76616c730100485665633c50726f706f73616c496e6465783e040004f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e010c3470726f706f73655f7370656e64081476616c756554436f6d706163743c42616c616e63654f663c543e3e2c62656e65666963696172798c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365242d012050757420666f727761726420612073756767657374696f6e20666f72207370656e64696e672e2041206465706f7369742070726f706f7274696f6e616c20746f207468652076616c7565350120697320726573657276656420616e6420736c6173686564206966207468652070726f706f73616c2069732072656a65637465642e2049742069732072657475726e6564206f6e636520746865542070726f706f73616c20697320617761726465642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e94202d204f6e65204442206368616e67652c206f6e6520657874726120444220656e7472792e302023203c2f7765696768743e3c72656a6563745f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e1cfc2052656a65637420612070726f706f736564207370656e642e20546865206f726967696e616c206465706f7369742077696c6c20626520736c61736865642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e40202d204f6e6520444220636c6561722e302023203c2f7765696768743e40617070726f76655f70726f706f73616c042c70726f706f73616c5f696458436f6d706163743c50726f706f73616c496e6465783e205d0120417070726f766520612070726f706f73616c2e2041742061206c617465722074696d652c207468652070726f706f73616c2077696c6c20626520616c6c6f636174656420746f207468652062656e6566696369617279ac20616e6420746865206f726967696e616c206465706f7369742077696c6c2062652072657475726e65642e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e01182050726f706f736564043450726f706f73616c496e6465780438204e65772070726f706f73616c2e205370656e64696e67041c42616c616e636504e8205765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c3450726f706f73616c496e6465781c42616c616e6365244163636f756e744964048020536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e74041c42616c616e6365048c20536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572041c42616c616e6365043101205370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f736974041c42616c616e6365048020536f6d652066756e64732068617665206265656e206465706f73697465642e103050726f706f73616c426f6e641c5065726d696c6c1050c30000085501204672616374696f6e206f6620612070726f706f73616c27732076616c756520746861742073686f756c6420626520626f6e64656420696e206f7264657220746f20706c616365207468652070726f706f73616c2e110120416e2061636365707465642070726f706f73616c2067657473207468657365206261636b2e20412072656a65637465642070726f706f73616c20646f6573206e6f742e4c50726f706f73616c426f6e644d696e696d756d3042616c616e63654f663c543e4000407a10f35a00000000000000000000044901204d696e696d756d20616d6f756e74206f662066756e647320746861742073686f756c6420626520706c6163656420696e2061206465706f73697420666f72206d616b696e6720612070726f706f73616c2e2c5370656e64506572696f6438543a3a426c6f636b4e756d6265721080700000048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1c5065726d696c6c1020a107000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e0024436f6e7472616374730120436f6e74726163741c204761735370656e7401000c476173200000000000000000048020476173207370656e7420736f2066617220696e207468697320626c6f636b2e3c43757272656e745363686564756c650100205363686564756c65c5010000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af000000000000000100000000000000010000000000000004000000000001001000000000400000002000000004942043757272656e7420636f7374207363686564756c6520666f7220636f6e7472616374732e305072697374696e65436f64650001012c436f6465486173683c543e1c5665633c75383e0004000465012041206d617070696e672066726f6d20616e206f726967696e616c20636f6465206861736820746f20746865206f726967696e616c20636f64652c20756e746f756368656420627920696e737472756d656e746174696f6e2e2c436f646553746f726167650001012c436f6465486173683c543e587761736d3a3a5072656661625761736d4d6f64756c650004000465012041206d617070696e67206265747765656e20616e206f726967696e616c20636f6465206861736820616e6420696e737472756d656e746564207761736d20636f64652c20726561647920666f7220657865637574696f6e2e384163636f756e74436f756e74657201000c753634200000000000000000045420546865207375627472696520636f756e7465722e38436f6e7472616374496e666f4f6600010130543a3a4163636f756e7449643c436f6e7472616374496e666f3c543e00040004a82054686520636f6465206173736f6369617465642077697468206120676976656e206163636f756e742e20476173507269636501003042616c616e63654f663c543e4001000000000000000000000000000000047820546865207072696365206f66206f6e6520756e6974206f66206761732e01143c7570646174655f7363686564756c6504207363686564756c65205363686564756c650cb4205570646174657320746865207363686564756c6520666f72206d65746572696e6720636f6e7472616374732e000d0120546865207363686564756c65206d7573742068617665206120677265617465722076657273696f6e207468616e207468652073746f726564207363686564756c652e207075745f636f646508246761735f6c696d697430436f6d706163743c4761733e10636f64651c5665633c75383e085d012053746f7265732074686520676976656e2062696e617279205761736d20636f646520696e746f2074686520636861696e27732073746f7261676520616e642072657475726e73206974732060636f646568617368602ed420596f752063616e20696e7374616e746961746520636f6e747261637473206f6e6c7920776974682073746f72656420636f64652e1063616c6c1010646573748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263651476616c756554436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e10646174611c5665633c75383e1c0901204d616b657320612063616c6c20746f20616e206163636f756e742c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e002901202a20496620746865206163636f756e74206973206120736d6172742d636f6e7472616374206163636f756e742c20746865206173736f63696174656420636f64652077696c6c206265b020657865637574656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e1901202a20496620746865206163636f756e74206973206120726567756c6172206163636f756e742c20616e792076616c75652077696c6c206265207472616e736665727265642e4901202a204966206e6f206163636f756e742065786973747320616e64207468652063616c6c2076616c7565206973206e6f74206c657373207468616e20606578697374656e7469616c5f6465706f736974602c1501206120726567756c6172206163636f756e742077696c6c206265206372656174656420616e6420616e792076616c75652077696c6c206265207472616e736665727265642e2c696e7374616e74696174651024656e646f776d656e7454436f6d706163743c42616c616e63654f663c543e3e246761735f6c696d697430436f6d706163743c4761733e24636f64655f686173682c436f6465486173683c543e10646174611c5665633c75383e28bd0120496e7374616e7469617465732061206e657720636f6e74726163742066726f6d207468652060636f646568617368602067656e65726174656420627920607075745f636f6465602c206f7074696f6e616c6c79207472616e7366657272696e6720736f6d652062616c616e63652e009820496e7374616e74696174696f6e20697320657865637574656420617320666f6c6c6f77733a004101202d205468652064657374696e6174696f6e206164647265737320697320636f6d7075746564206261736564206f6e207468652073656e64657220616e642068617368206f662074686520636f64652e0501202d2054686520736d6172742d636f6e7472616374206163636f756e7420697320637265617465642061742074686520636f6d707574656420616464726573732e6d01202d20546865206063746f725f636f64656020697320657865637574656420696e2074686520636f6e74657874206f6620746865206e65776c792d63726561746564206163636f756e742e204275666665722072657475726e65645d0120202061667465722074686520657865637574696f6e206973207361766564206173207468652060636f646560206f6620746865206163636f756e742e205468617420636f64652077696c6c20626520696e766f6b6564a820202075706f6e20616e792063616c6c2072656365697665642062792074686973206163636f756e742e7c202d2054686520636f6e747261637420697320696e697469616c697a65642e3c636c61696d5f73757263686172676508106465737430543a3a4163636f756e744964286175785f73656e646572504f7074696f6e3c543a3a4163636f756e7449643e14710120416c6c6f777320626c6f636b2070726f64756365727320746f20636c61696d206120736d616c6c2072657761726420666f72206576696374696e67206120636f6e74726163742e204966206120626c6f636b2070726f64756365721501206661696c7320746f20646f20736f2c206120726567756c61722075736572732077696c6c20626520616c6c6f77656420746f20636c61696d20746865207265776172642e00390120496620636f6e7472616374206973206e6f742065766963746564206173206120726573756c74206f6620746869732063616c6c2c206e6f20616374696f6e73206172652074616b656e20616e64ac207468652073656e646572206973206e6f7420656c696769626c6520666f7220746865207265776172642e0118205472616e736665720c244163636f756e744964244163636f756e7449641c42616c616e6365046901205472616e736665722068617070656e6564206066726f6d6020746f2060746f60207769746820676976656e206076616c7565602061732070617274206f662061206063616c6c60206f722060696e7374616e7469617465602e30496e7374616e74696174656408244163636f756e744964244163636f756e74496404dc20436f6e7472616374206465706c6f7965642062792061646472657373206174207468652073706563696669656420616464726573732e28436f646553746f72656404104861736804b820436f646520776974682074686520737065636966696564206861736820686173206265656e2073746f7265642e3c5363686564756c6555706461746564040c75333204c020547269676765726564207768656e207468652063757272656e74207363686564756c6520697320757064617465642e284469737061746368656408244163636f756e74496410626f6f6c08390120412063616c6c2077617320646973706174636865642066726f6d2074686520676976656e206163636f756e742e2054686520626f6f6c207369676e616c7320776865746865722069742077617374207375636365737366756c20657865637574696f6e206f72206e6f742e20436f6e747261637408244163636f756e7449641c5665633c75383e048c20416e206576656e742066726f6d20636f6e7472616374206f66206163636f756e742e404c5369676e6564436c61696d48616e646963617038543a3a426c6f636b4e756d626572100200000010e0204e756d626572206f6620626c6f636b2064656c617920616e2065787472696e73696320636c61696d20737572636861726765206861732e000d01205768656e20636c61696d207375726368617267652069732063616c6c656420627920616e2065787472696e736963207468652072656e7420697320636865636b65646820666f722063757272656e745f626c6f636b202d2064656c617940546f6d6273746f6e654465706f7369743042616c616e63654f663c543e4000407a10f35a0000000000000000000004d420546865206d696e696d756d20616d6f756e7420726571756972656420746f2067656e6572617465206120746f6d6273746f6e652e4453746f7261676553697a654f66667365740c75333210080000000851012053697a65206f66206120636f6e7472616374206174207468652074696d65206f6620696e7374616e746961696f6e2e205468697320697320612073696d706c652077617920746f20656e737572652074686174a420656d70747920636f6e747261637473206576656e7475616c6c7920676574732064656c657465642e2c52656e74427974654665653042616c616e63654f663c543e4000407a10f35a00000000000000000000043501205072696365206f6620612062797465206f662073746f7261676520706572206f6e6520626c6f636b20696e74657276616c2e2053686f756c642062652067726561746572207468616e20302e4452656e744465706f7369744f66667365743042616c616e63654f663c543e4000008a5d7845630100000000000000001c05012054686520616d6f756e74206f662066756e6473206120636f6e74726163742073686f756c64206465706f73697420696e206f7264657220746f206f6666736574582074686520636f7374206f66206f6e6520627974652e006901204c6574277320737570706f736520746865206465706f73697420697320312c303030204255202862616c616e636520756e697473292f6279746520616e64207468652072656e7420697320312042552f627974652f6461792c5901207468656e206120636f6e7472616374207769746820312c3030302c3030302042552074686174207573657320312c303030206279746573206f662073746f7261676520776f756c6420706179206e6f2072656e742e4d0120427574206966207468652062616c616e6365207265647563656420746f203530302c30303020425520616e64207468652073746f7261676520737461796564207468652073616d6520617420312c3030302c78207468656e20697420776f756c6420706179203530302042552f6461792e3c5375726368617267655265776172643042616c616e63654f663c543e400080a1a76b4a3500000000000000000008e4205265776172642074686174206973207265636569766564206279207468652070617274792077686f736520746f75636820686173206c65646820746f2072656d6f76616c206f66206120636f6e74726163742e2c5472616e736665724665653042616c616e63654f663c543e400010a5d4e800000000000000000000000494205468652066656520726571756972656420746f206d616b652061207472616e736665722e2c4372656174696f6e4665653042616c616e63654f663c543e400010a5d4e80000000000000000000000049c205468652066656520726571756972656420746f2063726561746520616e206163636f756e742e485472616e73616374696f6e426173654665653042616c616e63654f663c543e400010a5d4e8000000000000000000000004dc205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b2074686520626173652e485472616e73616374696f6e427974654665653042616c616e63654f663c543e4000e40b54020000000000000000000000040d01205468652066656520746f206265207061696420666f72206d616b696e672061207472616e73616374696f6e3b20746865207065722d6279746520706f7274696f6e2e2c436f6e74726163744665653042616c616e63654f663c543e400010a5d4e80000000000000000000000084101205468652066656520726571756972656420746f20696e7374616e7469617465206120636f6e747261637420696e7374616e63652e204120726561736f6e61626c652064656661756c742076616c75651c2069732032312e2c43616c6c426173654665650c47617320e803000000000000081d0120546865206261736520666565206368617267656420666f722063616c6c696e6720696e746f206120636f6e74726163742e204120726561736f6e61626c652064656661756c74382076616c7565206973203133352e48496e7374616e7469617465426173654665650c47617320e80300000000000008390120546865206261736520666565206368617267656420666f7220696e7374616e74696174696e67206120636f6e74726163742e204120726561736f6e61626c652064656661756c742076616c756520206973203137352e204d617844657074680c753332102000000008310120546865206d6178696d756d206e657374696e67206c6576656c206f6620612063616c6c2f696e7374616e746961746520737461636b2e204120726561736f6e61626c652064656661756c74382076616c7565206973203130302e304d617856616c756553697a650c753332100040000004390120546865206d6178696d756d2073697a65206f6620612073746f726167652076616c756520696e2062797465732e204120726561736f6e61626c652064656661756c74206973203136204b69422e34426c6f636b4761734c696d69740c47617320809698000000000008250120546865206d6178696d756d20616d6f756e74206f6620676173207468617420636f756c6420626520657870656e6465642070657220626c6f636b2e204120726561736f6e61626c65742064656661756c742076616c75652069732031305f3030305f3030302e00105375646f01105375646f040c4b6579010030543a3a4163636f756e74496480000000000000000000000000000000000000000000000000000000000000000004842054686520604163636f756e74496460206f6620746865207375646f206b65792e010c107375646f042070726f706f73616c40426f783c543a3a50726f706f73616c3e2839012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e1c7365745f6b6579040c6e65778c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652475012041757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f206b65792e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e44202d204f6e65204442206368616e67652e302023203c2f7765696768743e1c7375646f5f6173080c77686f8c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263652070726f706f73616c40426f783c543a3a50726f706f73616c3e2c51012041757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d44206120676976656e206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204c696d697465642073746f726167652072656164732e60202d204f6e6520444220777269746520286576656e74292ed4202d20556e6b6e6f776e20776569676874206f662064657269766174697665206070726f706f73616c6020657865637574696f6e2e302023203c2f7765696768743e010c1453756469640410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e284b65794368616e67656404244163636f756e74496404f020546865207375646f6572206a757374207377697463686564206964656e746974793b20746865206f6c64206b657920697320737570706c6965642e285375646f4173446f6e650410626f6f6c04602041207375646f206a75737420746f6f6b20706c6163652e000020496d4f6e6c696e650120496d4f6e6c696e651020476f737369704174010038543a3a426c6f636b4e756d626572100000000004a02054686520626c6f636b206e756d626572207768656e2077652073686f756c6420676f737369702e104b65797301004c5665633c543a3a417574686f7269747949643e040004d0205468652063757272656e7420736574206f66206b6579732074686174206d61792069737375652061206865617274626561742e485265636569766564486561727462656174730002013053657373696f6e496e6465782441757468496e6465781c5665633c75383e01040008e420466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f66206041757468496e646578608c20746f20606f6666636861696e3a3a4f70617175654e6574776f726b5374617465602e38417574686f726564426c6f636b730102013053657373696f6e496e64657838543a3a56616c696461746f7249640c75333201100000000008150120466f7220656163682073657373696f6e20696e6465782c207765206b6565702061206d617070696e67206f662060543a3a56616c696461746f7249646020746f20746865c8206e756d626572206f6620626c6f636b7320617574686f7265642062792074686520676976656e20617574686f726974792e0104246865617274626561740824686561727462656174644865617274626561743c543a3a426c6f636b4e756d6265723e285f7369676e6174757265bc3c543a3a417574686f7269747949642061732052756e74696d654170705075626c69633e3a3a5369676e617475726500010c444865617274626561745265636569766564042c417574686f72697479496404c02041206e657720686561727462656174207761732072656365697665642066726f6d2060417574686f726974794964601c416c6c476f6f640004d42041742074686520656e64206f66207468652073657373696f6e2c206e6f206f6666656e63652077617320636f6d6d69747465642e2c536f6d654f66666c696e6504605665633c4964656e74696669636174696f6e5475706c653e0431012041742074686520656e64206f66207468652073657373696f6e2c206174206c65617374206f6e63652076616c696461746f722077617320666f756e6420746f206265206f66666c696e652e000048417574686f72697479446973636f76657279000100000000204f6666656e63657301204f6666656e6365730c1c5265706f727473000101345265706f727449644f663c543ed04f6666656e636544657461696c733c543a3a4163636f756e7449642c20543a3a4964656e74696669636174696f6e5475706c653e00040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010201104b696e64384f706171756554696d65536c6f74485665633c5265706f727449644f663c543e3e010400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e485265706f72747342794b696e64496e646578010101104b696e641c5665633c75383e00040018110120456e756d65726174657320616c6c207265706f727473206f662061206b696e6420616c6f6e672077697468207468652074696d6520746865792068617070656e65642e00bc20416c6c207265706f7274732061726520736f72746564206279207468652074696d65206f66206f6666656e63652e004901204e6f74652074686174207468652061637475616c2074797065206f662074686973206d617070696e6720697320605665633c75383e602c207468697320697320626563617573652076616c756573206f66690120646966666572656e7420747970657320617265206e6f7420737570706f7274656420617420746865206d6f6d656e7420736f2077652061726520646f696e6720746865206d616e75616c2073657269616c697a6174696f6e2e010001041c4f6666656e636508104b696e64384f706171756554696d65536c6f7408550120546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e64390120286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e00006052616e646f6d6e657373436f6c6c656374697665466c6970016052616e646f6d6e657373436f6c6c656374697665466c6970043852616e646f6d4d6174657269616c0100305665633c543a3a486173683e04000c610120536572696573206f6620626c6f636b20686561646572732066726f6d20746865206c61737420383120626c6f636b73207468617420616374732061732072616e646f6d2073656564206d6174657269616c2e2054686973610120697320617272616e67656420617320612072696e672062756666657220776974682060626c6f636b5f6e756d626572202520383160206265696e672074686520696e64657820696e746f20746865206056656360206f664420746865206f6c6465737420686173682e0100000000144e69636b7301105375646f04184e616d654f6600010130543a3a4163636f756e7449645c285665633c75383e2c2042616c616e63654f663c543e29000400047020546865206c6f6f6b7570207461626c6520666f72206e616d65732e0110207365745f6e616d6504106e616d651c5665633c75383e405d012053657420616e206163636f756e742773206e616d652e20546865206e616d652073686f756c642062652061205554462d382d656e636f64656420737472696e6720627920636f6e76656e74696f6e2c2074686f7567684c20776520646f6e277420636865636b2069742e00610120546865206e616d65206d6179206e6f74206265206d6f7265207468616e2060543a3a4d61784c656e677468602062797465732c206e6f72206c657373207468616e2060543a3a4d696e4c656e677468602062797465732e005d0120496620746865206163636f756e7420646f65736e277420616c726561647920686176652061206e616d652c207468656e206120666565206f6620605265736572766174696f6e466565602069732072657365727665644020696e20746865206163636f756e742e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28636c6561725f6e616d650028510120436c65617220616e206163636f756e742773206e616d6520616e642072657475726e20746865206465706f7369742e204661696c7320696620746865206163636f756e7420776173206e6f74206e616d65642e00d020546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c2023203c7765696768743e20202d204f2831292e64202d204f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e246b696c6c5f6e616d6504187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f7572636534e42052656d6f766520616e206163636f756e742773206e616d6520616e642074616b6520636861726765206f6620746865206465706f7369742e004901204661696c73206966206077686f6020686173206e6f74206265656e206e616d65642e20546865206465706f736974206973206465616c742077697468207468726f7567682060543a3a536c6173686564604c20696d62616c616e63652068616e646c65722e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292edc202d204f6e6520756e62616c616e6365642068616e646c6572202870726f6261626c7920612062616c616e6365207472616e736665722968202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e28666f7263655f6e616d6508187461726765748c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f75726365106e616d651c5665633c75383e30c82053657420612074686972642d7061727479206163636f756e742773206e616d652077697468206e6f206465706f7369742e00a0204e6f206c656e67746820636865636b696e6720697320646f6e65206f6e20746865206e616d652e00310120546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f206f72206d617463682060543a3a466f7263654f726967696e602e002c2023203c7765696768743e20202d204f2831292e84202d204174206d6f7374206f6e652062616c616e6365206f7065726174696f6e2e68202d204f6e652073746f7261676520726561642f77726974652e34202d204f6e65206576656e742e302023203c2f7765696768743e01141c4e616d6553657404244163636f756e74496404402041206e616d6520776173207365742e284e616d65466f7263656404244163636f756e74496404642041206e616d652077617320666f726369626c79207365742e2c4e616d654368616e67656404244163636f756e74496404502041206e616d6520776173206368616e6765642e2c4e616d65436c656172656408244163636f756e7449641c42616c616e636504d02041206e616d652077617320636c65617265642c20616e642074686520676976656e2062616c616e63652072657475726e65642e284e616d654b696c6c656408244163636f756e7449641c42616c616e636504c82041206e616d65207761732072656d6f76656420616e642074686520676976656e2062616c616e636520736c61736865642e0c385265736572766174696f6e4665653042616c616e63654f663c543e4000407a10f35a000000000000000000000444205265736572766174696f6e206665652e244d696e4c656e6774680c7533321003000000048820546865206d696e696d756d206c656e6774682061206e616d65206d61792062652e244d61784c656e6774680c7533321010000000048820546865206d6178696d756d206c656e6774682061206e616d65206d61792062652e00'; diff --git a/packages/types-support/src/metadata/v9/bizinikiwi-json.json b/packages/types-support/src/metadata/v9/bizinikiwi-json.json new file mode 100644 index 0000000..efebc24 --- /dev/null +++ b/packages/types-support/src/metadata/v9/bizinikiwi-json.json @@ -0,0 +1,4896 @@ +{ + "magicNumber": 1635018093, + "metadata": { + "v9": { + "modules": [ + { + "name": "System", + "storage": { + "prefix": "System", + "items": [ + { + "name": "AccountNonce", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Index", + "linked": false + } + }, + "fallback": "0x00000000", + "docs": [ + " Extrinsics nonce for accounts." + ] + }, + { + "name": "ExtrinsicCount", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total extrinsics count for the current block." + ] + }, + { + "name": "AllExtrinsicsWeight", + "modifier": "Optional", + "type": { + "plain": "Weight" + }, + "fallback": "0x00", + "docs": [ + " Total weight for all extrinsics put together, for the current block." + ] + }, + { + "name": "AllExtrinsicsLen", + "modifier": "Optional", + "type": { + "plain": "u32" + }, + "fallback": "0x00", + "docs": [ + " Total length (in bytes) for all extrinsics put together, for the current block." + ] + }, + { + "name": "BlockHash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "BlockNumber", + "value": "Hash", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Map of block numbers to block hashes." + ] + }, + { + "name": "ExtrinsicData", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "u32", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Extrinsics data for the current block (maps an extrinsic's index to its data)." + ] + }, + { + "name": "Number", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The current block number being processed. Set by `execute_block`." + ] + }, + { + "name": "ParentHash", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Hash of the previous block." + ] + }, + { + "name": "ExtrinsicsRoot", + "modifier": "Default", + "type": { + "plain": "Hash" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Extrinsics root of the current block, also part of the block header." + ] + }, + { + "name": "Digest", + "modifier": "Default", + "type": { + "plain": "DigestOf" + }, + "fallback": "0x00", + "docs": [ + " Digest of the current block, also part of the block header." + ] + }, + { + "name": "Events", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Events deposited for the current block." + ] + }, + { + "name": "EventCount", + "modifier": "Default", + "type": { + "plain": "EventIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of events in the `Events` list." + ] + }, + { + "name": "EventTopics", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "()", + "key2": "Hash", + "value": "Vec<(BlockNumber,EventIndex)>", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " Mapping between a topic (represented by T::Hash) and a vector of indexes", + " of events in the `>` list.", + "", + " The first key serves no purpose. This field is declared as double_map just", + " for convenience of using `remove_prefix`.", + "", + " All topic vectors have deterministic storage locations depending on the topic. This", + " allows light-clients to leverage the changes trie storage tracking mechanism and", + " in case of changes fetch the list of events of interest.", + "", + " The value has the type `(T::BlockNumber, EventIndex)` because if we used only just", + " the `EventIndex` then in case if the topic has the same contents on the next block", + " no notification will be triggered thus the event might be lost." + ] + } + ] + }, + "calls": [ + { + "name": "fill_block", + "args": [], + "docs": [ + " A big dispatch that will disallow any other transaction to be included." + ] + }, + { + "name": "remark", + "args": [ + { + "name": "_remark", + "type": "Bytes" + } + ], + "docs": [ + " Make some on-chain remark." + ] + }, + { + "name": "set_heap_pages", + "args": [ + { + "name": "pages", + "type": "u64" + } + ], + "docs": [ + " Set the number of pages in the WebAssembly environment's heap." + ] + }, + { + "name": "set_code", + "args": [ + { + "name": "new", + "type": "Bytes" + } + ], + "docs": [ + " Set the new code." + ] + }, + { + "name": "set_storage", + "args": [ + { + "name": "items", + "type": "Vec" + } + ], + "docs": [ + " Set some items of storage." + ] + }, + { + "name": "kill_storage", + "args": [ + { + "name": "keys", + "type": "Vec" + } + ], + "docs": [ + " Kill some items from storage." + ] + }, + { + "name": "kill_prefix", + "args": [ + { + "name": "prefix", + "type": "Key" + } + ], + "docs": [ + " Kill all storage items with a key that starts with the given prefix." + ] + } + ], + "events": [ + { + "name": "ExtrinsicSuccess", + "args": [ + "DispatchInfo" + ], + "docs": [ + " An extrinsic completed successfully." + ] + }, + { + "name": "ExtrinsicFailed", + "args": [ + "DispatchError", + "DispatchInfo" + ], + "docs": [ + " An extrinsic failed." + ] + } + ], + "constants": [], + "errors": [ + { + "name": "RequireSignedOrigin", + "docs": [] + }, + { + "name": "RequireRootOrigin", + "docs": [] + }, + { + "name": "RequireNoOrigin", + "docs": [] + } + ] + }, + { + "name": "Utility", + "storage": null, + "calls": [ + { + "name": "batch", + "args": [ + { + "name": "calls", + "type": "Vec" + } + ], + "docs": [ + " Send a batch of dispatch calls (only root)." + ] + } + ], + "events": [ + { + "name": "BatchExecuted", + "args": [ + "Vec>" + ], + "docs": [] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Babe", + "storage": { + "prefix": "Babe", + "items": [ + { + "name": "EpochIndex", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current epoch index." + ] + }, + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "Vec<(AuthorityId,BabeAuthorityWeight)>" + }, + "fallback": "0x00", + "docs": [ + " Current epoch authorities." + ] + }, + { + "name": "GenesisSlot", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The slot at which the first epoch actually started. This is 0", + " until the first block of the chain." + ] + }, + { + "name": "CurrentSlot", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current slot number." + ] + }, + { + "name": "Randomness", + "modifier": "Default", + "type": { + "plain": "[u8;32]" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The epoch randomness for the *current* epoch.", + "", + " # Security", + "", + " This MUST NOT be used for gambling, as it can be influenced by a", + " malicious validator in the short term. It MAY be used in many", + " cryptographic protocols, however, so long as one remembers that this", + " (like everything else on-chain) it is public. For example, it can be", + " used where a number is needed that cannot have been chosen by an", + " adversary, for purposes such as public-coin zero-knowledge proofs." + ] + }, + { + "name": "NextRandomness", + "modifier": "Default", + "type": { + "plain": "[u8;32]" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Next epoch randomness." + ] + }, + { + "name": "SegmentIndex", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Randomness under construction.", + "", + " We make a tradeoff between storage accesses and list length.", + " We store the under-construction randomness in segments of up to", + " `UNDER_CONSTRUCTION_SEGMENT_LENGTH`.", + "", + " Once a segment reaches this length, we begin the next one.", + " We reset all segments and return to `0` at the beginning of every", + " epoch." + ] + }, + { + "name": "UnderConstruction", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "u32", + "value": "Vec<[u8;32]>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [] + }, + { + "name": "Initialized", + "modifier": "Optional", + "type": { + "plain": "MaybeVrf" + }, + "fallback": "0x00", + "docs": [ + " Temporary value (cleared at block finalization) which is `Some`", + " if per-block initialization has already been called for current block." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [ + { + "name": "EpochDuration", + "type": "u64", + "value": "0xc800000000000000", + "docs": [ + " The number of **slots** that an epoch takes. We couple sessions to", + " epochs, i.e. we start a new session once the new epoch begins." + ] + }, + { + "name": "ExpectedBlockTime", + "type": "Moment", + "value": "0xb80b000000000000", + "docs": [ + " The expected average block time at which BABE should be creating", + " blocks. Since BABE is probabilistic it is not trivial to figure out", + " what the expected average block time should be based on the slot", + " duration and the security parameter `c` (where `1 - c` represents", + " the probability of a slot being empty)." + ] + } + ], + "errors": [] + }, + { + "name": "Timestamp", + "storage": { + "prefix": "Timestamp", + "items": [ + { + "name": "Now", + "modifier": "Default", + "type": { + "plain": "Moment" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Current time for the current block." + ] + }, + { + "name": "DidUpdate", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Did the timestamp get updated in this block?" + ] + } + ] + }, + "calls": [ + { + "name": "set", + "args": [ + { + "name": "now", + "type": "Compact" + } + ], + "docs": [ + " Set the current time.", + "", + " This call should be invoked exactly once per block. It will panic at the finalization", + " phase, if this call hasn't been invoked by that time.", + "", + " The timestamp should be greater than the previous one by the amount specified by", + " `MinimumPeriod`.", + "", + " The dispatch origin for this call must be `Inherent`." + ] + } + ], + "events": null, + "constants": [ + { + "name": "MinimumPeriod", + "type": "Moment", + "value": "0xdc05000000000000", + "docs": [ + " The minimum period between blocks. Beware that this is different to the *expected* period", + " that the block production apparatus provides. Your chosen consensus system will generally", + " work with this to determine a sensible block time. e.g. For Aura, it will be double this", + " period on default settings." + ] + } + ], + "errors": [] + }, + { + "name": "Authorship", + "storage": { + "prefix": "Authorship", + "items": [ + { + "name": "Uncles", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Uncles" + ] + }, + { + "name": "Author", + "modifier": "Optional", + "type": { + "plain": "AccountId" + }, + "fallback": "0x00", + "docs": [ + " Author of current block." + ] + }, + { + "name": "DidSetUncles", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " Whether uncles were already set in this block." + ] + } + ] + }, + "calls": [ + { + "name": "set_uncles", + "args": [ + { + "name": "new_uncles", + "type": "Vec
" + } + ], + "docs": [ + " Provide a set of uncles." + ] + } + ], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Indices", + "storage": { + "prefix": "Indices", + "items": [ + { + "name": "NextEnumSet", + "modifier": "Default", + "type": { + "plain": "AccountIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free enumeration set." + ] + }, + { + "name": "EnumSet", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The enumeration sets." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "NewAccountIndex", + "args": [ + "AccountId", + "AccountIndex" + ], + "docs": [ + " A new account index was assigned.", + "", + " This event is not triggered when an existing index is reassigned", + " to another `AccountId`." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Balances", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "TotalIssuance", + "modifier": "Default", + "type": { + "plain": "Balance" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The total units issued in the system." + ] + }, + { + "name": "Vesting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "VestingSchedule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information regarding the vesting of a given account." + ] + }, + { + "name": "FreeBalance", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Balance", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The 'free' balance of a given account.", + "", + " This is the only balance that matters in terms of most operations on tokens. It", + " alone is used to determine the balance when in the contract execution environment. When this", + " balance falls below the value of `ExistentialDeposit`, then the 'current account' is", + " deleted: specifically `FreeBalance`. Further, the `OnFreeBalanceZero` callback", + " is invoked, giving a chance to external modules to clean up data associated with", + " the deleted account.", + "", + " `system::AccountNonce` is also deleted if `ReservedBalance` is also zero (it also gets", + " collapsed to zero if it ever becomes less than `ExistentialDeposit`." + ] + }, + { + "name": "ReservedBalance", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Balance", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of the balance of a given account that is externally reserved; this can still get", + " slashed, but gets slashed last of all.", + "", + " This balance is a 'reserve' balance that other subsystems use in order to set aside tokens", + " that are still 'owned' by the account holder, but which are suspendable.", + "", + " When this balance falls below the value of `ExistentialDeposit`, then this 'reserve account'", + " is deleted: specifically, `ReservedBalance`.", + "", + " `system::AccountNonce` is also deleted if `FreeBalance` is also zero (it also gets", + " collapsed to zero if it ever becomes less than `ExistentialDeposit`.)" + ] + }, + { + "name": "Locks", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Any liquidity locks on some account balances." + ] + } + ] + }, + "calls": [ + { + "name": "transfer", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Transfer some liquid free balance to another account.", + "", + " `transfer` will set the `FreeBalance` of the sender and receiver.", + " It will decrease the total issuance of the system by the `TransferFee`.", + " If the sender's account is below the existential deposit as a result", + " of the transfer, the account will be reaped.", + "", + " The dispatch origin for this call must be `Signed` by the transactor.", + "", + " # ", + " - Dependent on arguments but not critical, given proper implementations for", + " input config types. See related functions below.", + " - It contains a limited number of reads and writes internally and no complex computation.", + "", + " Related functions:", + "", + " - `ensure_can_withdraw` is always called internally but has a bounded complexity.", + " - Transferring balances to accounts that did not exist before will cause", + " `T::OnNewAccount::on_new_account` to be called.", + " - Removing enough funds from an account will trigger", + " `T::DustRemoval::on_unbalanced` and `T::OnFreeBalanceZero::on_free_balance_zero`.", + " - `transfer_keep_alive` works the same way as `transfer`, but has an additional", + " check that the transfer will not kill the origin account.", + "", + " # " + ] + }, + { + "name": "set_balance", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "new_free", + "type": "Compact" + }, + { + "name": "new_reserved", + "type": "Compact" + } + ], + "docs": [ + " Set the balances of a given account.", + "", + " This will alter `FreeBalance` and `ReservedBalance` in storage. it will", + " also decrease the total issuance of the system (`TotalIssuance`).", + " If the new free or reserved balance is below the existential deposit,", + " it will reset the account nonce (`system::AccountNonce`).", + "", + " The dispatch origin for this call is `root`.", + "", + " # ", + " - Independent of the arguments.", + " - Contains a limited number of reads and writes.", + " # " + ] + }, + { + "name": "force_transfer", + "args": [ + { + "name": "source", + "type": "LookupSource" + }, + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Exactly as `transfer`, except the origin must be root and the source account may be", + " specified." + ] + }, + { + "name": "transfer_keep_alive", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Same as the [`transfer`] call, but with a check that the transfer will not kill the", + " origin account.", + "", + " 99% of the time you want [`transfer`] instead.", + "", + " [`transfer`]: struct.Module.html#method.transfer" + ] + } + ], + "events": [ + { + "name": "NewAccount", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A new account was created." + ] + }, + { + "name": "ReapedAccount", + "args": [ + "AccountId" + ], + "docs": [ + " An account was reaped." + ] + }, + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance", + "Balance" + ], + "docs": [ + " Transfer succeeded (from, to, value, fees)." + ] + } + ], + "constants": [ + { + "name": "ExistentialDeposit", + "type": "Balance", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to keep an account open." + ] + }, + { + "name": "TransferFee", + "type": "Balance", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to make a transfer." + ] + }, + { + "name": "CreationFee", + "type": "Balance", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to create an account." + ] + } + ], + "errors": [] + }, + { + "name": "TransactionPayment", + "storage": { + "prefix": "Balances", + "items": [ + { + "name": "NextFeeMultiplier", + "modifier": "Default", + "type": { + "plain": "Multiplier" + }, + "fallback": "0x0000000000000000", + "docs": [] + } + ] + }, + "calls": null, + "events": null, + "constants": [ + { + "name": "TransactionBaseFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the base." + ] + }, + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + } + ], + "errors": [] + }, + { + "name": "Staking", + "storage": { + "prefix": "Staking", + "items": [ + { + "name": "ValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The ideal number of staking participants." + ] + }, + { + "name": "MinimumValidatorCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x04000000", + "docs": [ + " Minimum number of staking participants before emergency conditions are imposed." + ] + }, + { + "name": "Invulnerables", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Any validators that may never be slashed or forcibly kicked. It's a Vec since they're", + " easy to initialize and the performance hit is minimal (we expect no more than four", + " invulnerables) and restricted to testnets." + ] + }, + { + "name": "Bonded", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all locked \"stash\" accounts to the controller account." + ] + }, + { + "name": "Ledger", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "StakingLedger", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map from all (unlocked) \"controller\" accounts to the info regarding the staking." + ] + }, + { + "name": "Payee", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "RewardDestination", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Where the reward payment should be made. Keyed by stash." + ] + }, + { + "name": "Validators", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "ValidatorPrefs", + "linked": true + } + }, + "fallback": "0x00", + "docs": [ + " The map from (wannabe) validator stash key to the preferences of that validator." + ] + }, + { + "name": "Nominators", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Nominations", + "linked": true + } + }, + "fallback": "0x00", + "docs": [ + " The map from nominator stash key to the set of stash keys of all validators to nominate.", + "", + " NOTE: is private so that we can ensure upgraded before all typical accesses.", + " Direct storage APIs can still bypass this protection." + ] + }, + { + "name": "Stakers", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Exposure", + "linked": false + } + }, + "fallback": "0x000000", + "docs": [ + " Nominators for a particular account that is in action right now. You can't iterate", + " through validators here, but you can find them in the Session module.", + "", + " This is keyed by the stash account." + ] + }, + { + "name": "CurrentElected", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The currently elected validator set keyed by stash account ID." + ] + }, + { + "name": "CurrentEra", + "modifier": "Default", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The current era index." + ] + }, + { + "name": "CurrentEraStart", + "modifier": "Default", + "type": { + "plain": "MomentOf" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The start of the current era." + ] + }, + { + "name": "CurrentEraStartSessionIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The session index at which the current era started." + ] + }, + { + "name": "CurrentEraPointsEarned", + "modifier": "Default", + "type": { + "plain": "EraPoints" + }, + "fallback": "0x0000000000", + "docs": [ + " Rewards for the current era. Using indices of current elected set." + ] + }, + { + "name": "SlotStake", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of balance actively at stake for each validator slot, currently.", + "", + " This is used to derive rewards and punishments." + ] + }, + { + "name": "ForceEra", + "modifier": "Default", + "type": { + "plain": "Forcing" + }, + "fallback": "0x00", + "docs": [ + " True if the next session change will be a new era regardless of index." + ] + }, + { + "name": "SlashRewardFraction", + "modifier": "Default", + "type": { + "plain": "Perbill" + }, + "fallback": "0x00000000", + "docs": [ + " The percentage of the slash that is distributed to reporters.", + "", + " The rest of the slashed value is handled by the `Slash`." + ] + }, + { + "name": "CanceledSlashPayout", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " The amount of currency given to reporters of a slash event which was", + " canceled by extraordinary circumstances (e.g. governance)." + ] + }, + { + "name": "UnappliedSlashes", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "EraIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " All unapplied slashes that are queued for later." + ] + }, + { + "name": "BondedEras", + "modifier": "Default", + "type": { + "plain": "Vec<(EraIndex,SessionIndex)>" + }, + "fallback": "0x00", + "docs": [ + " A mapping from still-bonded eras to the first session index of that era." + ] + }, + { + "name": "ValidatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "EraIndex", + "key2": "AccountId", + "value": "(Perbill,BalanceOf)", + "key2Hasher": "Twox128" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on validators, mapped by era to the highest slash proportion", + " and slash value of the era." + ] + }, + { + "name": "NominatorSlashInEra", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "EraIndex", + "key2": "AccountId", + "value": "BalanceOf", + "key2Hasher": "Twox128" + } + }, + "fallback": "0x00", + "docs": [ + " All slashing events on nominators, mapped by era to the highest slash value of the era." + ] + }, + { + "name": "SlashingSpans", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "SlashingSpans", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Slashing spans for stash accounts." + ] + }, + { + "name": "SpanSlash", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "(AccountId,SpanIndex)", + "value": "SpanRecord", + "linked": false + } + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Records information about the maximum slash of a stash within a slashing span,", + " as well as how much reward has been paid out." + ] + }, + { + "name": "EarliestUnappliedSlash", + "modifier": "Optional", + "type": { + "plain": "EraIndex" + }, + "fallback": "0x00", + "docs": [ + " The earliest era for which we have a pending, unapplied slash." + ] + }, + { + "name": "StorageVersion", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The version of storage for upgrade." + ] + } + ] + }, + "calls": [ + { + "name": "bond", + "args": [ + { + "name": "controller", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " Take the origin account as a stash and lock up `value` of its balance. `controller` will", + " be the account that controls it.", + "", + " `value` must be more than the `minimum_balance` specified by `T::Currency`.", + "", + " The dispatch origin for this call must be _Signed_ by the stash account.", + "", + " # ", + " - Independent of the arguments. Moderate complexity.", + " - O(1).", + " - Three extra DB entries.", + "", + " NOTE: Two of the storage writes (`Self::bonded`, `Self::payee`) are _never_ cleaned unless", + " the `origin` falls below _existential deposit_ and gets removed as dust.", + " # " + ] + }, + { + "name": "bond_extra", + "args": [ + { + "name": "max_additional", + "type": "Compact" + } + ], + "docs": [ + " Add some extra amount that have appeared in the stash `free_balance` into the balance up", + " for staking.", + "", + " Use this if there are additional funds in your stash account that you wish to bond.", + " Unlike [`bond`] or [`unbond`] this function does not impose any limitation on the amount", + " that can be added.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - O(1).", + " - One DB entry.", + " # " + ] + }, + { + "name": "unbond", + "args": [ + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Schedule a portion of the stash to be unlocked ready for transfer out after the bond", + " period ends. If this leaves an amount actively bonded less than", + " T::Currency::minimum_balance(), then it is increased to the full amount.", + "", + " Once the unlock period is done, you can call `withdraw_unbonded` to actually move", + " the funds out of management ready for transfer.", + "", + " No more than a limited number of unlocking chunks (see `MAX_UNLOCKING_CHUNKS`)", + " can co-exists at the same time. In that case, [`Call::withdraw_unbonded`] need", + " to be called first to remove some of the chunks (if possible).", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " See also [`Call::withdraw_unbonded`].", + "", + " # ", + " - Independent of the arguments. Limited but potentially exploitable complexity.", + " - Contains a limited number of reads.", + " - Each call (requires the remainder of the bonded balance to be above `minimum_balance`)", + " will cause a new entry to be inserted into a vector (`Ledger.unlocking`) kept in storage.", + " The only way to clean the aforementioned storage item is also user-controlled via `withdraw_unbonded`.", + " - One DB entry.", + " " + ] + }, + { + "name": "withdraw_unbonded", + "args": [], + "docs": [ + " Remove any unlocked chunks from the `unlocking` queue from our management.", + "", + " This essentially frees up that balance to be used by the stash account to do", + " whatever it wants.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " See also [`Call::unbond`].", + "", + " # ", + " - Could be dependent on the `origin` argument and how much `unlocking` chunks exist.", + " It implies `consolidate_unlocked` which loops over `Ledger.unlocking`, which is", + " indirectly user-controlled. See [`unbond`] for more detail.", + " - Contains a limited number of reads, yet the size of which could be large based on `ledger`.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "validate", + "args": [ + { + "name": "prefs", + "type": "ValidatorPrefs" + } + ], + "docs": [ + " Declare the desire to validate for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "nominate", + "args": [ + { + "name": "targets", + "type": "Vec" + } + ], + "docs": [ + " Declare the desire to nominate `targets` for the origin controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - The transaction's complexity is proportional to the size of `targets`,", + " which is capped at `MAX_NOMINATIONS`.", + " - Both the reads and writes follow a similar pattern.", + " # " + ] + }, + { + "name": "chill", + "args": [], + "docs": [ + " Declare no desire to either validate or nominate.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains one read.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_payee", + "args": [ + { + "name": "payee", + "type": "RewardDestination" + } + ], + "docs": [ + " (Re-)set the payment target for a controller.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the controller, not the stash.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_controller", + "args": [ + { + "name": "controller", + "type": "LookupSource" + } + ], + "docs": [ + " (Re-)set the controller of a stash.", + "", + " Effects will be felt at the beginning of the next era.", + "", + " The dispatch origin for this call must be _Signed_ by the stash, not the controller.", + "", + " # ", + " - Independent of the arguments. Insignificant complexity.", + " - Contains a limited number of reads.", + " - Writes are limited to the `origin` account key.", + " # " + ] + }, + { + "name": "set_validator_count", + "args": [ + { + "name": "new", + "type": "Compact" + } + ], + "docs": [ + " The ideal number of validators." + ] + }, + { + "name": "force_no_eras", + "args": [], + "docs": [ + " Force there to be no new eras indefinitely.", + "", + " # ", + " - No arguments.", + " # " + ] + }, + { + "name": "force_new_era", + "args": [], + "docs": [ + " Force there to be a new era at the end of the next session. After this, it will be", + " reset to normal (non-forced) behaviour.", + "", + " # ", + " - No arguments.", + " # " + ] + }, + { + "name": "set_invulnerables", + "args": [ + { + "name": "validators", + "type": "Vec" + } + ], + "docs": [ + " Set the validators who cannot be slashed (if any)." + ] + }, + { + "name": "force_unstake", + "args": [ + { + "name": "stash", + "type": "AccountId" + } + ], + "docs": [ + " Force a current staker to become completely unstaked, immediately." + ] + }, + { + "name": "force_new_era_always", + "args": [], + "docs": [ + " Force there to be a new era at the end of sessions indefinitely.", + "", + " # ", + " - One storage write", + " # " + ] + }, + { + "name": "cancel_deferred_slash", + "args": [ + { + "name": "era", + "type": "EraIndex" + }, + { + "name": "slash_indices", + "type": "Vec" + } + ], + "docs": [ + " Cancel enactment of a deferred slash. Can be called by either the root origin or", + " the `T::SlashCancelOrigin`.", + " passing the era and indices of the slashes for that era to kill.", + "", + " # ", + " - One storage write.", + " # " + ] + } + ], + "events": [ + { + "name": "Reward", + "args": [ + "Balance", + "Balance" + ], + "docs": [ + " All validators have been rewarded by the first balance; the second is the remainder", + " from the maximum amount of reward." + ] + }, + { + "name": "Slash", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " One validator (and its nominators) has been slashed by the given amount." + ] + }, + { + "name": "OldSlashingReportDiscarded", + "args": [ + "SessionIndex" + ], + "docs": [ + " An old slashing report from a prior era was discarded because it could", + " not be processed." + ] + } + ], + "constants": [ + { + "name": "SessionsPerEra", + "type": "SessionIndex", + "value": "0x06000000", + "docs": [ + " Number of sessions per era." + ] + }, + { + "name": "BondingDuration", + "type": "EraIndex", + "value": "0xa0020000", + "docs": [ + " Number of eras that staked funds must remain bonded for." + ] + } + ], + "errors": [] + }, + { + "name": "Session", + "storage": { + "prefix": "Session", + "items": [ + { + "name": "Validators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of validators." + ] + }, + { + "name": "CurrentIndex", + "modifier": "Default", + "type": { + "plain": "SessionIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Current index of the session." + ] + }, + { + "name": "QueuedChanged", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the underlying economic identities or weighting behind the validators", + " has changed in the queued validator set." + ] + }, + { + "name": "QueuedKeys", + "modifier": "Default", + "type": { + "plain": "Vec<(ValidatorId,Keys)>" + }, + "fallback": "0x00", + "docs": [ + " The queued keys for the next session. When the next session begins, these keys", + " will be used to determine the validator's session keys." + ] + }, + { + "name": "DisabledValidators", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Indices of disabled validators.", + "", + " The set is cleared when `on_session_ending` returns a new set of identities." + ] + }, + { + "name": "NextKeys", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Bytes", + "key2": "ValidatorId", + "value": "Keys", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " The next session keys for a validator.", + "", + " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", + " the trie. Having all data in the same branch should prevent slowing down other queries." + ] + }, + { + "name": "KeyOwner", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Twox64Concat", + "key1": "Bytes", + "key2": "(KeyTypeId,Bytes)", + "value": "ValidatorId", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " The owner of a key. The second key is the `KeyTypeId` + the encoded key.", + "", + " The first key is always `DEDUP_KEY_PREFIX` to have all the data in the same branch of", + " the trie. Having all data in the same branch should prevent slowing down other queries." + ] + } + ] + }, + "calls": [ + { + "name": "set_keys", + "args": [ + { + "name": "keys", + "type": "Keys" + }, + { + "name": "proof", + "type": "Bytes" + } + ], + "docs": [ + " Sets the session key(s) of the function caller to `key`.", + " Allows an account to set its session key prior to becoming a validator.", + " This doesn't take effect until the next session.", + "", + " The dispatch origin of this function must be signed.", + "", + " # ", + " - O(log n) in number of accounts.", + " - One extra DB entry.", + " # " + ] + } + ], + "events": [ + { + "name": "NewSession", + "args": [ + "SessionIndex" + ], + "docs": [ + " New session has happened. Note that the argument is the session index, not the block", + " number as the type might suggest." + ] + } + ], + "constants": [ + { + "name": "DEDUP_KEY_PREFIX", + "type": "Bytes", + "value": "0x343a73657373696f6e3a6b657973", + "docs": [ + " Used as first key for `NextKeys` and `KeyOwner` to put all the data into the same branch", + " of the trie." + ] + } + ], + "errors": [] + }, + { + "name": "Democracy", + "storage": { + "prefix": "Democracy", + "items": [ + { + "name": "PublicPropCount", + "modifier": "Default", + "type": { + "plain": "PropIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The number of (public) proposals that have been made so far." + ] + }, + { + "name": "PublicProps", + "modifier": "Default", + "type": { + "plain": "Vec<(PropIndex,Hash,AccountId)>" + }, + "fallback": "0x00", + "docs": [ + " The public proposals. Unsorted. The second item is the proposal's hash." + ] + }, + { + "name": "Preimages", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "(Bytes,AccountId,BalanceOf,BlockNumber)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Map of hashes to the proposal preimage, along with who registered it and their deposit.", + " The block number is the block at which it was deposited." + ] + }, + { + "name": "DepositOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "PropIndex", + "value": "(BalanceOf,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Those who have locked a deposit." + ] + }, + { + "name": "ReferendumCount", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next free referendum index, aka the number of referenda started so far." + ] + }, + { + "name": "NextTally", + "modifier": "Default", + "type": { + "plain": "ReferendumIndex" + }, + "fallback": "0x00000000", + "docs": [ + " The next referendum index that should be tallied." + ] + }, + { + "name": "ReferendumInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ReferendumIndex", + "value": "ReferendumInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Information concerning any given referendum." + ] + }, + { + "name": "DispatchQueue", + "modifier": "Default", + "type": { + "map": { + "hasher": "Twox64Concat", + "key": "BlockNumber", + "value": "Vec>", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Queue of successful referenda to be dispatched." + ] + }, + { + "name": "VotersFor", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ReferendumIndex", + "value": "Vec", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Get the voters for the current proposal." + ] + }, + { + "name": "VoteOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "(ReferendumIndex,AccountId)", + "value": "Vote", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Get the vote in a given referendum of a particular voter. The result is meaningful only", + " if `voters_for` includes the voter when called with the referendum (you'll get the", + " default `Vote` value otherwise). If you don't want to check `voters_for`, then you can", + " also check for simple existence with `VoteOf::exists` first." + ] + }, + { + "name": "Proxy", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "AccountId", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Who is able to vote for whom. Value is the fund-holding account, key is the", + " vote-transaction-sending account." + ] + }, + { + "name": "Delegations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "(AccountId,Conviction)", + "linked": true + } + }, + "fallback": "0x000000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " Get the account (and lock periods) to which another account is delegating vote." + ] + }, + { + "name": "LastTabledWasExternal", + "modifier": "Default", + "type": { + "plain": "bool" + }, + "fallback": "0x00", + "docs": [ + " True if the last referendum tabled was submitted externally. False if it was a public", + " proposal." + ] + }, + { + "name": "NextExternal", + "modifier": "Optional", + "type": { + "plain": "(Hash,VoteThreshold)" + }, + "fallback": "0x00", + "docs": [ + " The referendum to be tabled whenever it would be valid to table an external proposal.", + " This happens when a referendum needs to be tabled and one of two conditions are met:", + " - `LastTabledWasExternal` is `false`; or", + " - `PublicProps` is empty." + ] + }, + { + "name": "Blacklist", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "(BlockNumber,Vec)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A record of who vetoed what. Maps proposal hash to a possible existent block number", + " (until when it may not be resubmitted) and who vetoed it." + ] + }, + { + "name": "Cancellations", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "bool", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Record of all proposals that have been subject to emergency cancellation." + ] + } + ] + }, + "calls": [ + { + "name": "propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " # ", + " - O(1).", + " - Two DB changes, one DB entry.", + " # " + ] + }, + { + "name": "second", + "args": [ + { + "name": "proposal", + "type": "Compact" + } + ], + "docs": [ + " Propose a sensitive action to be taken.", + "", + " # ", + " - O(1).", + " - One DB entry.", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "Vote" + } + ], + "docs": [ + " Vote in a referendum. If `vote.is_aye()`, the vote is to enact the proposal;", + " otherwise it is a vote to keep the status quo.", + "", + " # ", + " - O(1).", + " - One DB change, one DB entry.", + " # " + ] + }, + { + "name": "proxy_vote", + "args": [ + { + "name": "ref_index", + "type": "Compact" + }, + { + "name": "vote", + "type": "Vote" + } + ], + "docs": [ + " Vote in a referendum on behalf of a stash. If `vote.is_aye()`, the vote is to enact", + " the proposal; otherwise it is a vote to keep the status quo.", + "", + " # ", + " - O(1).", + " - One DB change, one DB entry.", + " # " + ] + }, + { + "name": "emergency_cancel", + "args": [ + { + "name": "ref_index", + "type": "ReferendumIndex" + } + ], + "docs": [ + " Schedule an emergency cancellation of a referendum. Cannot happen twice to the same", + " referendum." + ] + }, + { + "name": "external_propose", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a referendum to be tabled once it is legal to schedule an external", + " referendum." + ] + }, + { + "name": "external_propose_majority", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a majority-carries referendum to be tabled next once it is legal to schedule", + " an external referendum.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call." + ] + }, + { + "name": "external_propose_default", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Schedule a negative-turnout-bias referendum to be tabled next once it is legal to", + " schedule an external referendum.", + "", + " Unlike `external_propose`, blacklisting has no effect on this and it may replace a", + " pre-scheduled `external_propose` call." + ] + }, + { + "name": "fast_track", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + }, + { + "name": "voting_period", + "type": "BlockNumber" + }, + { + "name": "delay", + "type": "BlockNumber" + } + ], + "docs": [ + " Schedule the currently externally-proposed majority-carries referendum to be tabled", + " immediately. If there is no externally-proposed referendum currently, or if there is one", + " but it is not a majority-carries referendum then it fails.", + "", + " - `proposal_hash`: The hash of the current external proposal.", + " - `voting_period`: The period that is allowed for voting on this proposal. Increased to", + " `EmergencyVotingPeriod` if too low.", + " - `delay`: The number of block after voting has ended in approval and this should be", + " enacted. This doesn't have a minimum amount." + ] + }, + { + "name": "veto_external", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Veto and blacklist the external proposal hash." + ] + }, + { + "name": "cancel_referendum", + "args": [ + { + "name": "ref_index", + "type": "Compact" + } + ], + "docs": [ + " Remove a referendum." + ] + }, + { + "name": "cancel_queued", + "args": [ + { + "name": "when", + "type": "Compact" + }, + { + "name": "which", + "type": "Compact" + }, + { + "name": "what", + "type": "Compact" + } + ], + "docs": [ + " Cancel a proposal queued for enactment." + ] + }, + { + "name": "set_proxy", + "args": [ + { + "name": "proxy", + "type": "AccountId" + } + ], + "docs": [ + " Specify a proxy. Called by the stash.", + "", + " # ", + " - One extra DB entry.", + " # " + ] + }, + { + "name": "resign_proxy", + "args": [], + "docs": [ + " Clear the proxy. Called by the proxy.", + "", + " # ", + " - One DB clear.", + " # " + ] + }, + { + "name": "remove_proxy", + "args": [ + { + "name": "proxy", + "type": "AccountId" + } + ], + "docs": [ + " Clear the proxy. Called by the stash.", + "", + " # ", + " - One DB clear.", + " # " + ] + }, + { + "name": "delegate", + "args": [ + { + "name": "to", + "type": "AccountId" + }, + { + "name": "conviction", + "type": "Conviction" + } + ], + "docs": [ + " Delegate vote.", + "", + " # ", + " - One extra DB entry.", + " # " + ] + }, + { + "name": "undelegate", + "args": [], + "docs": [ + " Undelegate vote.", + "", + " # ", + " - O(1).", + " # " + ] + }, + { + "name": "clear_public_proposals", + "args": [], + "docs": [ + " Veto and blacklist the proposal hash. Must be from Root origin." + ] + }, + { + "name": "note_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This doesn't require the proposal to be", + " in the dispatch queue but does require a deposit, returned once enacted." + ] + }, + { + "name": "note_imminent_preimage", + "args": [ + { + "name": "encoded_proposal", + "type": "Bytes" + }, + { + "name": "when", + "type": "BlockNumber" + }, + { + "name": "which", + "type": "u32" + } + ], + "docs": [ + " Register the preimage for an upcoming proposal. This requires the proposal to be", + " in the dispatch queue. No deposit is needed." + ] + }, + { + "name": "reap_preimage", + "args": [ + { + "name": "proposal_hash", + "type": "Hash" + } + ], + "docs": [ + " Remove an expired proposal preimage and collect the deposit." + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "PropIndex", + "Balance" + ], + "docs": [ + " A motion has been proposed by a public account." + ] + }, + { + "name": "Tabled", + "args": [ + "PropIndex", + "Balance", + "Vec" + ], + "docs": [ + " A public proposal has been tabled for referendum vote." + ] + }, + { + "name": "ExternalTabled", + "args": [], + "docs": [ + " An external proposal has been tabled." + ] + }, + { + "name": "Started", + "args": [ + "ReferendumIndex", + "VoteThreshold" + ], + "docs": [ + " A referendum has begun." + ] + }, + { + "name": "Passed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been approved by referendum." + ] + }, + { + "name": "NotPassed", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A proposal has been rejected by referendum." + ] + }, + { + "name": "Cancelled", + "args": [ + "ReferendumIndex" + ], + "docs": [ + " A referendum has been cancelled." + ] + }, + { + "name": "Executed", + "args": [ + "ReferendumIndex", + "bool" + ], + "docs": [ + " A proposal has been enacted." + ] + }, + { + "name": "Delegated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " An account has delegated their vote to another account." + ] + }, + { + "name": "Undelegated", + "args": [ + "AccountId" + ], + "docs": [ + " An account has cancelled a previous delegation operation." + ] + }, + { + "name": "Vetoed", + "args": [ + "AccountId", + "Hash", + "BlockNumber" + ], + "docs": [ + " An external proposal has been vetoed." + ] + }, + { + "name": "PreimageNoted", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal's preimage was noted, and the deposit taken." + ] + }, + { + "name": "PreimageUsed", + "args": [ + "Hash", + "AccountId", + "Balance" + ], + "docs": [ + " A proposal preimage was removed and used (the deposit was returned)." + ] + }, + { + "name": "PreimageInvalid", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was invalid." + ] + }, + { + "name": "PreimageMissing", + "args": [ + "Hash", + "ReferendumIndex" + ], + "docs": [ + " A proposal could not be executed because its preimage was missing." + ] + }, + { + "name": "PreimageReaped", + "args": [ + "Hash", + "AccountId", + "Balance", + "AccountId" + ], + "docs": [ + " A registered preimage was removed and the deposit collected by the reaper (last item)." + ] + } + ], + "constants": [ + { + "name": "EnactmentPeriod", + "type": "BlockNumber", + "value": "0x002f0d00", + "docs": [ + " The minimum period of locking and the period between a proposal being approved and enacted.", + "", + " It should generally be a little more than the unstake period to ensure that", + " voting stakers have an opportunity to remove themselves from the system in the case where", + " they are on the losing side of a vote." + ] + }, + { + "name": "LaunchPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) new public referenda are launched." + ] + }, + { + "name": "VotingPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " How often (in blocks) to check for new votes." + ] + }, + { + "name": "MinimumDeposit", + "type": "BalanceOf", + "value": "0x0000c16ff28623000000000000000000", + "docs": [ + " The minimum amount to be used as a deposit for a public referendum proposal." + ] + }, + { + "name": "EmergencyVotingPeriod", + "type": "BlockNumber", + "value": "0x80510100", + "docs": [ + " Minimum voting period allowed for an emergency referendum." + ] + }, + { + "name": "CooloffPeriod", + "type": "BlockNumber", + "value": "0x004e0c00", + "docs": [ + " Period in blocks where an external proposal may not be re-submitted after being vetoed." + ] + }, + { + "name": "PreimageByteDeposit", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The amount of balance that must be deposited per byte of preimage stored." + ] + } + ], + "errors": [] + }, + { + "name": "Council", + "storage": { + "prefix": "Instance1Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + } + ], + "docs": [ + " Set the collective's membership manually to `new_members`. Be nice to the chain and", + " provide it pre-sorted.", + "", + " Requires root origin." + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective." + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " # ", + " - Bounded storage reads and writes.", + " - Argument `threshold` has bearing on weight.", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " # ", + " - Bounded storage read and writes.", + " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`)." + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A motion was executed; `bool` is true if returned without error." + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A single member did some action; `bool` is true if returned without error." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "TechnicalCommittee", + "storage": { + "prefix": "Instance2Collective", + "items": [ + { + "name": "Proposals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The hashes of the active proposals." + ] + }, + { + "name": "ProposalOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Proposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Actual proposal for a given hash, if it's current." + ] + }, + { + "name": "Voting", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Hash", + "value": "Votes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Votes on a given proposal, if it is ongoing." + ] + }, + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " Proposals so far." + ] + }, + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current members of the collective. This is stored sorted (just by value)." + ] + } + ] + }, + "calls": [ + { + "name": "set_members", + "args": [ + { + "name": "new_members", + "type": "Vec" + } + ], + "docs": [ + " Set the collective's membership manually to `new_members`. Be nice to the chain and", + " provide it pre-sorted.", + "", + " Requires root origin." + ] + }, + { + "name": "execute", + "args": [ + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Dispatch a proposal from a member using the `Member` origin.", + "", + " Origin must be a member of the collective." + ] + }, + { + "name": "propose", + "args": [ + { + "name": "threshold", + "type": "Compact" + }, + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " # ", + " - Bounded storage reads and writes.", + " - Argument `threshold` has bearing on weight.", + " # " + ] + }, + { + "name": "vote", + "args": [ + { + "name": "proposal", + "type": "Hash" + }, + { + "name": "index", + "type": "Compact" + }, + { + "name": "approve", + "type": "bool" + } + ], + "docs": [ + " # ", + " - Bounded storage read and writes.", + " - Will be slightly heavier if the proposal is approved / disapproved after the vote.", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "AccountId", + "ProposalIndex", + "Hash", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been proposed (by given account) with a threshold (given", + " `MemberCount`)." + ] + }, + { + "name": "Voted", + "args": [ + "AccountId", + "Hash", + "bool", + "MemberCount", + "MemberCount" + ], + "docs": [ + " A motion (given hash) has been voted on by given account, leaving", + " a tally (yes votes and no votes given respectively as `MemberCount`)." + ] + }, + { + "name": "Approved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was approved by the required threshold." + ] + }, + { + "name": "Disapproved", + "args": [ + "Hash" + ], + "docs": [ + " A motion was not approved by the required threshold." + ] + }, + { + "name": "Executed", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A motion was executed; `bool` is true if returned without error." + ] + }, + { + "name": "MemberExecuted", + "args": [ + "Hash", + "bool" + ], + "docs": [ + " A single member did some action; `bool` is true if returned without error." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Elections", + "storage": { + "prefix": "PhragmenElection", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The current elected membership. Sorted based on account id." + ] + }, + { + "name": "RunnersUp", + "modifier": "Default", + "type": { + "plain": "Vec<(AccountId,BalanceOf)>" + }, + "fallback": "0x00", + "docs": [ + " The current runners_up. Sorted based on low to high merit (worse to best runner)." + ] + }, + { + "name": "ElectionRounds", + "modifier": "Default", + "type": { + "plain": "u32" + }, + "fallback": "0x00000000", + "docs": [ + " The total number of vote rounds that have happened, excluding the upcoming one." + ] + }, + { + "name": "VotesOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "Vec", + "linked": true + } + }, + "fallback": "0x00", + "docs": [ + " Votes of a particular voter, with the round index of the votes." + ] + }, + { + "name": "StakeOf", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "BalanceOf", + "linked": false + } + }, + "fallback": "0x00000000000000000000000000000000", + "docs": [ + " Locked stake of a voter." + ] + }, + { + "name": "Candidates", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The present candidate list. Sorted based on account id. A current member can never enter", + " this vector and is always implicitly assumed to be a candidate." + ] + } + ] + }, + "calls": [ + { + "name": "vote", + "args": [ + { + "name": "votes", + "type": "Vec" + }, + { + "name": "value", + "type": "Compact" + } + ], + "docs": [ + " Vote for a set of candidates for the upcoming round of election.", + "", + " The `votes` should:", + " - not be empty.", + " - be less than the number of candidates.", + "", + " Upon voting, `value` units of `who`'s balance is locked and a bond amount is reserved.", + " It is the responsibility of the caller to not place all of their balance into the lock", + " and keep some for further transactions.", + "", + " # ", + " #### State", + " Reads: O(1)", + " Writes: O(V) given `V` votes. V is bounded by 16.", + " # " + ] + }, + { + "name": "remove_voter", + "args": [], + "docs": [ + " Remove `origin` as a voter. This removes the lock and returns the bond.", + "", + " # ", + " #### State", + " Reads: O(1)", + " Writes: O(1)", + " # " + ] + }, + { + "name": "report_defunct_voter", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Report `target` for being an defunct voter. In case of a valid report, the reporter is", + " rewarded by the bond amount of `target`. Otherwise, the reporter itself is removed and", + " their bond is slashed.", + "", + " A defunct voter is defined to be:", + " - a voter whose current submitted votes are all invalid. i.e. all of them are no", + " longer a candidate nor an active member.", + "", + " # ", + " #### State", + " Reads: O(NLogM) given M current candidates and N votes for `target`.", + " Writes: O(1)", + " # " + ] + }, + { + "name": "submit_candidacy", + "args": [], + "docs": [ + " Submit oneself for candidacy.", + "", + " A candidate will either:", + " - Lose at the end of the term and forfeit their deposit.", + " - Win and become a member. Members will eventually get their stash back.", + " - Become a runner-up. Runners-ups are reserved members in case one gets forcefully", + " removed.", + "", + " # ", + " #### State", + " Reads: O(LogN) Given N candidates.", + " Writes: O(1)", + " # " + ] + }, + { + "name": "renounce_candidacy", + "args": [], + "docs": [ + " Renounce one's intention to be a candidate for the next election round. 3 potential", + " outcomes exist:", + " - `origin` is a candidate and not elected in any set. In this case, the bond is", + " unreserved, returned and origin is removed as a candidate.", + " - `origin` is a current runner up. In this case, the bond is unreserved, returned and", + " origin is removed as a runner.", + " - `origin` is a current member. In this case, the bond is unreserved and origin is", + " removed as a member, consequently not being a candidate for the next round anymore.", + " Similar to [`remove_voter`], if replacement runners exists, they are immediately used." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "LookupSource" + } + ], + "docs": [ + " Remove a particular member from the set. This is effective immediately and the bond of", + " the outgoing member is slashed.", + "", + " If a runner-up is available, then the best runner-up will be removed and replaces the", + " outgoing member. Otherwise, a new phragmen round is started.", + "", + " Note that this does not affect the designated block number of the next election.", + "", + " # ", + " #### State", + " Reads: O(do_phragmen)", + " Writes: O(do_phragmen)", + " # " + ] + } + ], + "events": [ + { + "name": "NewTerm", + "args": [ + "Vec<(AccountId,Balance)>" + ], + "docs": [ + " A new term with new members. This indicates that enough candidates existed, not that", + " enough have has been elected. The inner value must be examined for this purpose." + ] + }, + { + "name": "EmptyTerm", + "args": [], + "docs": [ + " No (or not enough) candidates existed for this round." + ] + }, + { + "name": "MemberKicked", + "args": [ + "AccountId" + ], + "docs": [ + " A member has been removed. This should always be followed by either `NewTerm` ot", + " `EmptyTerm`." + ] + }, + { + "name": "MemberRenounced", + "args": [ + "AccountId" + ], + "docs": [ + " A member has renounced their candidacy." + ] + }, + { + "name": "VoterReported", + "args": [ + "AccountId", + "AccountId", + "bool" + ], + "docs": [ + " A voter (first element) was reported (byt the second element) with the the report being", + " successful or not (third element)." + ] + } + ], + "constants": [ + { + "name": "CandidacyBond", + "type": "BalanceOf", + "value": "0x0080c6a47e8d03000000000000000000", + "docs": [] + }, + { + "name": "VotingBond", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [] + }, + { + "name": "DesiredMembers", + "type": "u32", + "value": "0x0d000000", + "docs": [] + }, + { + "name": "DesiredRunnersUp", + "type": "u32", + "value": "0x07000000", + "docs": [] + }, + { + "name": "TermDuration", + "type": "BlockNumber", + "value": "0x80130300", + "docs": [] + } + ], + "errors": [] + }, + { + "name": "TechnicalMembership", + "storage": { + "prefix": "Instance1Membership", + "items": [ + { + "name": "Members", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current membership, stored as an ordered Vec." + ] + } + ] + }, + "calls": [ + { + "name": "add_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Add a member `who` to the set.", + "", + " May only be called from `AddOrigin` or root." + ] + }, + { + "name": "remove_member", + "args": [ + { + "name": "who", + "type": "AccountId" + } + ], + "docs": [ + " Remove a member `who` from the set.", + "", + " May only be called from `RemoveOrigin` or root." + ] + }, + { + "name": "swap_member", + "args": [ + { + "name": "remove", + "type": "AccountId" + }, + { + "name": "add", + "type": "AccountId" + } + ], + "docs": [ + " Swap out one member `remove` for another `add`.", + "", + " May only be called from `SwapOrigin` or root." + ] + }, + { + "name": "reset_members", + "args": [ + { + "name": "members", + "type": "Vec" + } + ], + "docs": [ + " Change the membership to a new set, disregarding the existing membership. Be nice and", + " pass `members` pre-sorted.", + "", + " May only be called from `ResetOrigin` or root." + ] + }, + { + "name": "change_key", + "args": [ + { + "name": "new", + "type": "AccountId" + } + ], + "docs": [ + " Swap out the sending member for some other key `new`.", + "", + " May only be called from `Signed` origin of a current member." + ] + } + ], + "events": [ + { + "name": "MemberAdded", + "args": [], + "docs": [ + " The given member was added; see the transaction for who." + ] + }, + { + "name": "MemberRemoved", + "args": [], + "docs": [ + " The given member was removed; see the transaction for who." + ] + }, + { + "name": "MembersSwapped", + "args": [], + "docs": [ + " Two members were swapped; see the transaction for who." + ] + }, + { + "name": "MembersReset", + "args": [], + "docs": [ + " The membership was reset; see the transaction for who the new set is." + ] + }, + { + "name": "KeyChanged", + "args": [], + "docs": [ + " One of the members' keys changed." + ] + }, + { + "name": "Dummy", + "args": [ + "PhantomData" + ], + "docs": [ + " Phantom member, never used." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "FinalityTracker", + "storage": null, + "calls": [ + { + "name": "final_hint", + "args": [ + { + "name": "hint", + "type": "Compact" + } + ], + "docs": [ + " Hint that the author of this block thinks the best finalized", + " block is the given number." + ] + } + ], + "events": null, + "constants": [ + { + "name": "WindowSize", + "type": "BlockNumber", + "value": "0x65000000", + "docs": [ + " The number of recent samples to keep from this chain. Default is 101." + ] + }, + { + "name": "ReportLatency", + "type": "BlockNumber", + "value": "0xe8030000", + "docs": [ + " The delay after which point things become suspicious. Default is 1000." + ] + } + ], + "errors": [] + }, + { + "name": "Grandpa", + "storage": { + "prefix": "GrandpaFinality", + "items": [ + { + "name": "Authorities", + "modifier": "Default", + "type": { + "plain": "AuthorityList" + }, + "fallback": "0x00", + "docs": [ + " DEPRECATED", + "", + " This used to store the current authority set, which has been migrated to the well-known", + " GRANDPA_AUTHORITES_KEY unhashed key." + ] + }, + { + "name": "State", + "modifier": "Default", + "type": { + "plain": "StoredState" + }, + "fallback": "0x00", + "docs": [ + " State of the current authority set." + ] + }, + { + "name": "PendingChange", + "modifier": "Optional", + "type": { + "plain": "StoredPendingChange" + }, + "fallback": "0x00", + "docs": [ + " Pending change: (signaled at, scheduled change)." + ] + }, + { + "name": "NextForced", + "modifier": "Optional", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00", + "docs": [ + " next block number where we can force a change." + ] + }, + { + "name": "Stalled", + "modifier": "Optional", + "type": { + "plain": "(BlockNumber,BlockNumber)" + }, + "fallback": "0x00", + "docs": [ + " `true` if we are currently stalled." + ] + }, + { + "name": "CurrentSetId", + "modifier": "Default", + "type": { + "plain": "SetId" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The number of changes (both in terms of keys and underlying economic responsibilities)", + " in the \"set\" of Grandpa validators from genesis." + ] + }, + { + "name": "SetIdSession", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "SetId", + "value": "SessionIndex", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from grandpa set ID to the index of the *most recent* session for which its members were responsible." + ] + } + ] + }, + "calls": [ + { + "name": "report_misbehavior", + "args": [ + { + "name": "_report", + "type": "Bytes" + } + ], + "docs": [ + " Report some misbehavior." + ] + } + ], + "events": [ + { + "name": "NewAuthorities", + "args": [ + "AuthorityList" + ], + "docs": [ + " New authority set has been applied." + ] + }, + { + "name": "Paused", + "args": [], + "docs": [ + " Current authority set has been paused." + ] + }, + { + "name": "Resumed", + "args": [], + "docs": [ + " Current authority set has been resumed." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "Treasury", + "storage": { + "prefix": "Treasury", + "items": [ + { + "name": "ProposalCount", + "modifier": "Default", + "type": { + "plain": "ProposalIndex" + }, + "fallback": "0x00000000", + "docs": [ + " Number of proposals that have been made." + ] + }, + { + "name": "Proposals", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ProposalIndex", + "value": "TreasuryProposal", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Proposals that have been made." + ] + }, + { + "name": "Approvals", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Proposal indices that have been approved but not yet awarded." + ] + } + ] + }, + "calls": [ + { + "name": "propose_spend", + "args": [ + { + "name": "value", + "type": "Compact" + }, + { + "name": "beneficiary", + "type": "LookupSource" + } + ], + "docs": [ + " Put forward a suggestion for spending. A deposit proportional to the value", + " is reserved and slashed if the proposal is rejected. It is returned once the", + " proposal is awarded.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change, one extra DB entry.", + " # " + ] + }, + { + "name": "reject_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Reject a proposed spend. The original deposit will be slashed.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB clear.", + " # " + ] + }, + { + "name": "approve_proposal", + "args": [ + { + "name": "proposal_id", + "type": "Compact" + } + ], + "docs": [ + " Approve a proposal. At a later time, the proposal will be allocated to the beneficiary", + " and the original deposit will be returned.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + } + ], + "events": [ + { + "name": "Proposed", + "args": [ + "ProposalIndex" + ], + "docs": [ + " New proposal." + ] + }, + { + "name": "Spending", + "args": [ + "Balance" + ], + "docs": [ + " We have ended a spend period and will now allocate funds." + ] + }, + { + "name": "Awarded", + "args": [ + "ProposalIndex", + "Balance", + "AccountId" + ], + "docs": [ + " Some funds have been allocated." + ] + }, + { + "name": "Burnt", + "args": [ + "Balance" + ], + "docs": [ + " Some of our funds have been burnt." + ] + }, + { + "name": "Rollover", + "args": [ + "Balance" + ], + "docs": [ + " Spending has finished; this is the amount that rolls over until next spend." + ] + }, + { + "name": "Deposit", + "args": [ + "Balance" + ], + "docs": [ + " Some funds have been deposited." + ] + } + ], + "constants": [ + { + "name": "ProposalBond", + "type": "Permill", + "value": "0x50c30000", + "docs": [ + " Fraction of a proposal's value that should be bonded in order to place the proposal.", + " An accepted proposal gets these back. A rejected proposal does not." + ] + }, + { + "name": "ProposalBondMinimum", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Minimum amount of funds that should be placed in a deposit for making a proposal." + ] + }, + { + "name": "SpendPeriod", + "type": "BlockNumber", + "value": "0x80700000", + "docs": [ + " Period between successive spends." + ] + }, + { + "name": "Burn", + "type": "Permill", + "value": "0x20a10700", + "docs": [ + " Percentage of spare funds (if any) that are burnt per spend period." + ] + } + ], + "errors": [] + }, + { + "name": "Contracts", + "storage": { + "prefix": "Contract", + "items": [ + { + "name": "GasSpent", + "modifier": "Default", + "type": { + "plain": "Gas" + }, + "fallback": "0x0000000000000000", + "docs": [ + " Gas spent so far in this block." + ] + }, + { + "name": "CurrentSchedule", + "modifier": "Default", + "type": { + "plain": "Schedule" + }, + "fallback": "0x0000000001000000000000000100000000000000010000000000000001000000000000000100000000000000010000000000000001000000000000008700000000000000af0000000000000001000000000000000100000000000000040000000000010010000000004000000020000000", + "docs": [ + " Current cost schedule for contracts." + ] + }, + { + "name": "PristineCode", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "CodeHash", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping from an original code hash to the original code, untouched by instrumentation." + ] + }, + { + "name": "CodeStorage", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "CodeHash", + "value": "PrefabWasmModule", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " A mapping between an original code hash and instrumented wasm code, ready for execution." + ] + }, + { + "name": "AccountCounter", + "modifier": "Default", + "type": { + "plain": "u64" + }, + "fallback": "0x0000000000000000", + "docs": [ + " The subtrie counter." + ] + }, + { + "name": "ContractInfoOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "ContractInfo", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The code associated with a given account." + ] + }, + { + "name": "GasPrice", + "modifier": "Default", + "type": { + "plain": "BalanceOf" + }, + "fallback": "0x01000000000000000000000000000000", + "docs": [ + " The price of one unit of gas." + ] + } + ] + }, + "calls": [ + { + "name": "update_schedule", + "args": [ + { + "name": "schedule", + "type": "Schedule" + } + ], + "docs": [ + " Updates the schedule for metering contracts.", + "", + " The schedule must have a greater version than the stored schedule." + ] + }, + { + "name": "put_code", + "args": [ + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code", + "type": "Bytes" + } + ], + "docs": [ + " Stores the given binary Wasm code into the chain's storage and returns its `codehash`.", + " You can instantiate contracts only with stored code." + ] + }, + { + "name": "call", + "args": [ + { + "name": "dest", + "type": "LookupSource" + }, + { + "name": "value", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Makes a call to an account, optionally transferring some balance.", + "", + " * If the account is a smart-contract account, the associated code will be", + " executed and any value will be transferred.", + " * If the account is a regular account, any value will be transferred.", + " * If no account exists and the call value is not less than `existential_deposit`,", + " a regular account will be created and any value will be transferred." + ] + }, + { + "name": "instantiate", + "args": [ + { + "name": "endowment", + "type": "Compact" + }, + { + "name": "gas_limit", + "type": "Compact" + }, + { + "name": "code_hash", + "type": "CodeHash" + }, + { + "name": "data", + "type": "Bytes" + } + ], + "docs": [ + " Instantiates a new contract from the `codehash` generated by `put_code`, optionally transferring some balance.", + "", + " Instantiation is executed as follows:", + "", + " - The destination address is computed based on the sender and hash of the code.", + " - The smart-contract account is created at the computed address.", + " - The `ctor_code` is executed in the context of the newly-created account. Buffer returned", + " after the execution is saved as the `code` of the account. That code will be invoked", + " upon any call received by this account.", + " - The contract is initialized." + ] + }, + { + "name": "claim_surcharge", + "args": [ + { + "name": "dest", + "type": "AccountId" + }, + { + "name": "aux_sender", + "type": "Option" + } + ], + "docs": [ + " Allows block producers to claim a small reward for evicting a contract. If a block producer", + " fails to do so, a regular users will be allowed to claim the reward.", + "", + " If contract is not evicted as a result of this call, no actions are taken and", + " the sender is not eligible for the reward." + ] + } + ], + "events": [ + { + "name": "Transfer", + "args": [ + "AccountId", + "AccountId", + "Balance" + ], + "docs": [ + " Transfer happened `from` to `to` with given `value` as part of a `call` or `instantiate`." + ] + }, + { + "name": "Instantiated", + "args": [ + "AccountId", + "AccountId" + ], + "docs": [ + " Contract deployed by address at the specified address." + ] + }, + { + "name": "CodeStored", + "args": [ + "Hash" + ], + "docs": [ + " Code with the specified hash has been stored." + ] + }, + { + "name": "ScheduleUpdated", + "args": [ + "u32" + ], + "docs": [ + " Triggered when the current schedule is updated." + ] + }, + { + "name": "Dispatched", + "args": [ + "AccountId", + "bool" + ], + "docs": [ + " A call was dispatched from the given account. The bool signals whether it was", + " successful execution or not." + ] + }, + { + "name": "Contract", + "args": [ + "AccountId", + "Bytes" + ], + "docs": [ + " An event from contract of account." + ] + } + ], + "constants": [ + { + "name": "SignedClaimHandicap", + "type": "BlockNumber", + "value": "0x02000000", + "docs": [ + " Number of block delay an extrinsic claim surcharge has.", + "", + " When claim surcharge is called by an extrinsic the rent is checked", + " for current_block - delay" + ] + }, + { + "name": "TombstoneDeposit", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " The minimum amount required to generate a tombstone." + ] + }, + { + "name": "StorageSizeOffset", + "type": "u32", + "value": "0x08000000", + "docs": [ + " Size of a contract at the time of instantiaion. This is a simple way to ensure that", + " empty contracts eventually gets deleted." + ] + }, + { + "name": "RentByteFee", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Price of a byte of storage per one block interval. Should be greater than 0." + ] + }, + { + "name": "RentDepositOffset", + "type": "BalanceOf", + "value": "0x00008a5d784563010000000000000000", + "docs": [ + " The amount of funds a contract should deposit in order to offset", + " the cost of one byte.", + "", + " Let's suppose the deposit is 1,000 BU (balance units)/byte and the rent is 1 BU/byte/day,", + " then a contract with 1,000,000 BU that uses 1,000 bytes of storage would pay no rent.", + " But if the balance reduced to 500,000 BU and the storage stayed the same at 1,000,", + " then it would pay 500 BU/day." + ] + }, + { + "name": "SurchargeReward", + "type": "BalanceOf", + "value": "0x0080a1a76b4a35000000000000000000", + "docs": [ + " Reward that is received by the party whose touch has led", + " to removal of a contract." + ] + }, + { + "name": "TransferFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to make a transfer." + ] + }, + { + "name": "CreationFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to create an account." + ] + }, + { + "name": "TransactionBaseFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the base." + ] + }, + { + "name": "TransactionByteFee", + "type": "BalanceOf", + "value": "0x00e40b54020000000000000000000000", + "docs": [ + " The fee to be paid for making a transaction; the per-byte portion." + ] + }, + { + "name": "ContractFee", + "type": "BalanceOf", + "value": "0x0010a5d4e80000000000000000000000", + "docs": [ + " The fee required to instantiate a contract instance. A reasonable default value", + " is 21." + ] + }, + { + "name": "CallBaseFee", + "type": "Gas", + "value": "0xe803000000000000", + "docs": [ + " The base fee charged for calling into a contract. A reasonable default", + " value is 135." + ] + }, + { + "name": "InstantiateBaseFee", + "type": "Gas", + "value": "0xe803000000000000", + "docs": [ + " The base fee charged for instantiating a contract. A reasonable default value", + " is 175." + ] + }, + { + "name": "MaxDepth", + "type": "u32", + "value": "0x20000000", + "docs": [ + " The maximum nesting level of a call/instantiate stack. A reasonable default", + " value is 100." + ] + }, + { + "name": "MaxValueSize", + "type": "u32", + "value": "0x00400000", + "docs": [ + " The maximum size of a storage value in bytes. A reasonable default is 16 KiB." + ] + }, + { + "name": "BlockGasLimit", + "type": "Gas", + "value": "0x8096980000000000", + "docs": [ + " The maximum amount of gas that could be expended per block. A reasonable", + " default value is 10_000_000." + ] + } + ], + "errors": [] + }, + { + "name": "Sudo", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "Key", + "modifier": "Default", + "type": { + "plain": "AccountId" + }, + "fallback": "0x0000000000000000000000000000000000000000000000000000000000000000", + "docs": [ + " The `AccountId` of the sudo key." + ] + } + ] + }, + "calls": [ + { + "name": "sudo", + "args": [ + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Root` origin.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Unknown weight of derivative `proposal` execution.", + " # " + ] + }, + { + "name": "set_key", + "args": [ + { + "name": "new", + "type": "LookupSource" + } + ], + "docs": [ + " Authenticates the current sudo key and sets the given AccountId (`new`) as the new sudo key.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB change.", + " # " + ] + }, + { + "name": "sudo_as", + "args": [ + { + "name": "who", + "type": "LookupSource" + }, + { + "name": "proposal", + "type": "Proposal" + } + ], + "docs": [ + " Authenticates the sudo key and dispatches a function call with `Signed` origin from", + " a given account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - Limited storage reads.", + " - One DB write (event).", + " - Unknown weight of derivative `proposal` execution.", + " # " + ] + } + ], + "events": [ + { + "name": "Sudid", + "args": [ + "bool" + ], + "docs": [ + " A sudo just took place." + ] + }, + { + "name": "KeyChanged", + "args": [ + "AccountId" + ], + "docs": [ + " The sudoer just switched identity; the old key is supplied." + ] + }, + { + "name": "SudoAsDone", + "args": [ + "bool" + ], + "docs": [ + " A sudo just took place." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "ImOnline", + "storage": { + "prefix": "ImOnline", + "items": [ + { + "name": "GossipAt", + "modifier": "Default", + "type": { + "plain": "BlockNumber" + }, + "fallback": "0x00000000", + "docs": [ + " The block number when we should gossip." + ] + }, + { + "name": "Keys", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " The current set of keys that may issue a heartbeat." + ] + }, + { + "name": "ReceivedHeartbeats", + "modifier": "Optional", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "SessionIndex", + "key2": "AuthIndex", + "value": "Bytes", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " For each session index, we keep a mapping of `AuthIndex`", + " to `offchain::OpaqueNetworkState`." + ] + }, + { + "name": "AuthoredBlocks", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "SessionIndex", + "key2": "ValidatorId", + "value": "u32", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00000000", + "docs": [ + " For each session index, we keep a mapping of `T::ValidatorId` to the", + " number of blocks authored by the given authority." + ] + } + ] + }, + "calls": [ + { + "name": "heartbeat", + "args": [ + { + "name": "heartbeat", + "type": "Heartbeat" + }, + { + "name": "_signature", + "type": "Signature" + } + ], + "docs": [] + } + ], + "events": [ + { + "name": "HeartbeatReceived", + "args": [ + "AuthorityId" + ], + "docs": [ + " A new heartbeat was received from `AuthorityId`" + ] + }, + { + "name": "AllGood", + "args": [], + "docs": [ + " At the end of the session, no offence was committed." + ] + }, + { + "name": "SomeOffline", + "args": [ + "Vec" + ], + "docs": [ + " At the end of the session, at least once validator was found to be offline." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "AuthorityDiscovery", + "storage": null, + "calls": [], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Offences", + "storage": { + "prefix": "Offences", + "items": [ + { + "name": "Reports", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "ReportIdOf", + "value": "OffenceDetails", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The primary structure that holds all offence records keyed by report identifiers." + ] + }, + { + "name": "ConcurrentReportsIndex", + "modifier": "Default", + "type": { + "doubleMap": { + "hasher": "Blake2_256", + "key1": "Kind", + "key2": "OpaqueTimeSlot", + "value": "Vec", + "key2Hasher": "Blake2_256" + } + }, + "fallback": "0x00", + "docs": [ + " A vector of reports of the same kind that happened at the same time slot." + ] + }, + { + "name": "ReportsByKindIndex", + "modifier": "Default", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "Kind", + "value": "Bytes", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " Enumerates all reports of a kind along with the time they happened.", + "", + " All reports are sorted by the time of offence.", + "", + " Note that the actual type of this mapping is `Vec`, this is because values of", + " different types are not supported at the moment so we are doing the manual serialization." + ] + } + ] + }, + "calls": [], + "events": [ + { + "name": "Offence", + "args": [ + "Kind", + "OpaqueTimeSlot" + ], + "docs": [ + " There is an offence reported of the given `kind` happened at the `session_index` and", + " (kind-specific) time slot. This event is not deposited for duplicate slashes." + ] + } + ], + "constants": [], + "errors": [] + }, + { + "name": "RandomnessCollectiveFlip", + "storage": { + "prefix": "RandomnessCollectiveFlip", + "items": [ + { + "name": "RandomMaterial", + "modifier": "Default", + "type": { + "plain": "Vec" + }, + "fallback": "0x00", + "docs": [ + " Series of block headers from the last 81 blocks that acts as random seed material. This", + " is arranged as a ring buffer with `block_number % 81` being the index into the `Vec` of", + " the oldest hash." + ] + } + ] + }, + "calls": [], + "events": null, + "constants": [], + "errors": [] + }, + { + "name": "Nicks", + "storage": { + "prefix": "Sudo", + "items": [ + { + "name": "NameOf", + "modifier": "Optional", + "type": { + "map": { + "hasher": "Blake2_256", + "key": "AccountId", + "value": "(Bytes,BalanceOf)", + "linked": false + } + }, + "fallback": "0x00", + "docs": [ + " The lookup table for names." + ] + } + ] + }, + "calls": [ + { + "name": "set_name", + "args": [ + { + "name": "name", + "type": "Bytes" + } + ], + "docs": [ + " Set an account's name. The name should be a UTF-8-encoded string by convention, though", + " we don't check it.", + "", + " The name may not be more than `T::MaxLength` bytes, nor less than `T::MinLength` bytes.", + "", + " If the account doesn't already have a name, then a fee of `ReservationFee` is reserved", + " in the account.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - At most one balance operation.", + " - One storage read/write.", + " - One event.", + " # " + ] + }, + { + "name": "clear_name", + "args": [], + "docs": [ + " Clear an account's name and return the deposit. Fails if the account was not named.", + "", + " The dispatch origin for this call must be _Signed_.", + "", + " # ", + " - O(1).", + " - One balance operation.", + " - One storage read/write.", + " - One event.", + " # " + ] + }, + { + "name": "kill_name", + "args": [ + { + "name": "target", + "type": "LookupSource" + } + ], + "docs": [ + " Remove an account's name and take charge of the deposit.", + "", + " Fails if `who` has not been named. The deposit is dealt with through `T::Slashed`", + " imbalance handler.", + "", + " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", + "", + " # ", + " - O(1).", + " - One unbalanced handler (probably a balance transfer)", + " - One storage read/write.", + " - One event.", + " # " + ] + }, + { + "name": "force_name", + "args": [ + { + "name": "target", + "type": "LookupSource" + }, + { + "name": "name", + "type": "Bytes" + } + ], + "docs": [ + " Set a third-party account's name with no deposit.", + "", + " No length checking is done on the name.", + "", + " The dispatch origin for this call must be _Root_ or match `T::ForceOrigin`.", + "", + " # ", + " - O(1).", + " - At most one balance operation.", + " - One storage read/write.", + " - One event.", + " # " + ] + } + ], + "events": [ + { + "name": "NameSet", + "args": [ + "AccountId" + ], + "docs": [ + " A name was set." + ] + }, + { + "name": "NameForced", + "args": [ + "AccountId" + ], + "docs": [ + " A name was forcibly set." + ] + }, + { + "name": "NameChanged", + "args": [ + "AccountId" + ], + "docs": [ + " A name was changed." + ] + }, + { + "name": "NameCleared", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was cleared, and the given balance returned." + ] + }, + { + "name": "NameKilled", + "args": [ + "AccountId", + "Balance" + ], + "docs": [ + " A name was removed and the given balance slashed." + ] + } + ], + "constants": [ + { + "name": "ReservationFee", + "type": "BalanceOf", + "value": "0x00407a10f35a00000000000000000000", + "docs": [ + " Reservation fee." + ] + }, + { + "name": "MinLength", + "type": "u32", + "value": "0x03000000", + "docs": [ + " The minimum length a name may be." + ] + }, + { + "name": "MaxLength", + "type": "u32", + "value": "0x10000000", + "docs": [ + " The maximum length a name may be." + ] + } + ], + "errors": [] + } + ] + } + } +} \ No newline at end of file diff --git a/packages/types-support/src/packageDetect.ts b/packages/types-support/src/packageDetect.ts new file mode 100644 index 0000000..495a001 --- /dev/null +++ b/packages/types-support/src/packageDetect.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2026 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, []); diff --git a/packages/types-support/src/packageInfo.ts b/packages/types-support/src/packageInfo.ts new file mode 100644 index 0000000..7b66502 --- /dev/null +++ b/packages/types-support/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/types-support authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/types-support', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/types-support/tsconfig.build.json b/packages/types-support/tsconfig.build.json new file mode 100644 index 0000000..9755e4a --- /dev/null +++ b/packages/types-support/tsconfig.build.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "resolveJsonModule": true + }, + "include": [ + "src/**/*.json", + "src/**/*.ts" + ], + "exclude": [ + "**/mod.ts" + ], + "references": [] +} diff --git a/packages/types/README.md b/packages/types/README.md new file mode 100644 index 0000000..7702c3e --- /dev/null +++ b/packages/types/README.md @@ -0,0 +1,3 @@ +# @pezkuwi/types + +Implementation of the types and their (de-)serialisation via SCALE codec. On the Rust side, the codec types and primitive types are implemented via the [parity-codec](https://github.com/pezkuwichain/parity-codec). diff --git a/packages/types/package.json b/packages/types/package.json new file mode 100644 index 0000000..0517a22 --- /dev/null +++ b/packages/types/package.json @@ -0,0 +1,37 @@ +{ + "author": "Jaco Greeff ", + "bugs": "https://github.com/pezkuwichain/pezkuwi-api/issues", + "description": "Implementation of the Parity codec", + "engines": { + "node": ">=18" + }, + "homepage": "https://github.com/pezkuwichain/pezkuwi-api/tree/master/packages/types#readme", + "license": "Apache-2.0", + "name": "@pezkuwi/types", + "repository": { + "directory": "packages/types", + "type": "git", + "url": "https://github.com/pezkuwichain/pezkuwi-api.git" + }, + "sideEffects": [ + "./packageDetect.js", + "./packageDetect.cjs" + ], + "type": "module", + "version": "16.5.6", + "main": "index.js", + "dependencies": { + "@pezkuwi/keyring": "^14.0.1", + "@pezkuwi/types-augment": "16.5.4", + "@pezkuwi/types-codec": "16.5.4", + "@pezkuwi/types-create": "16.5.4", + "@pezkuwi/util": "^14.0.1", + "@pezkuwi/util-crypto": "^14.0.1", + "rxjs": "^7.8.1", + "tslib": "^2.8.1" + }, + "devDependencies": { + "@pezkuwi/keyring": "^14.0.1", + "@pezkuwi/types-support": "16.5.4" + } +} diff --git a/packages/types/src/bundle.ts b/packages/types/src/bundle.ts new file mode 100644 index 0000000..9de1ce2 --- /dev/null +++ b/packages/types/src/bundle.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import * as typeDefinitions from './interfaces/definitions.js'; +import rpcDefinitions from './interfaces/jsonrpc.js'; + +// all external +export { TypeDefInfo } from '@pezkuwi/types-create'; + +// all named +export { convertSiV0toV1 } from './metadata/PortableRegistry/index.js'; +export { packageInfo } from './packageInfo.js'; +export { unwrapStorageType } from './util/index.js'; + +// all starred +export * from './codec/index.js'; +export * from './create/index.js'; +export * from './index.types.js'; +export * from './metadata/index.js'; + +// local +export { rpcDefinitions, typeDefinitions }; diff --git a/packages/types/src/checkTypes.manual.ts b/packages/types/src/checkTypes.manual.ts new file mode 100644 index 0000000..2e6bef5 --- /dev/null +++ b/packages/types/src/checkTypes.manual.ts @@ -0,0 +1,101 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import '@pezkuwi/types-augment'; + +import type { Bytes, Compact, Option, u32 } from '@pezkuwi/types-codec'; +import type { IOption, ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, BlockAttestations, SessionKeys7 } from './interfaces/index.js'; + +import { assert } from '@pezkuwi/util'; + +import { TypeRegistry } from './create/index.js'; + +const registry = new TypeRegistry(); + +// something that uses overrides +const oo0 = registry.createType('Something' as 'u32'); +const oo1 = registry.createType('u32'); +const oo2 = registry.createType('u32'); +const oo3 = registry.createType('Something'); +const oo4 = registry.createType('Option'); +const oo5 = registry.createType>('u32'); +const oo6 = registry.createType>>('u32'); +const oo7 = registry.createType('u64'); +const oo8 = registry.createType>('(u32)'); + +assert(oo0.divn(123) && [...oo1.values()] && oo2[6].isAscii && oo3.divn(3) && oo4.isAscii && oo5.unwrap().divn(1) && oo6.unwrap().unwrap().divn(1) && oo7.isAscii && oo8[1].toNumber(), 'All ok'); + +// There are in the interface registry +const aa0 = registry.createType(' AccountId'); +const aa1 = registry.createType('BlockAttestations'); +const aa2 = registry.createType('ExtrinsicEra'); +const aa3 = registry.createType('VestingInfo'); +const aa4 = registry.createType('(Vec, CompactAssignmentsTo257, PhragmenScore, EraIndex)'); + +assert(aa0.isAscii && aa1.receipt && aa2.isMortalEra && aa3.toHuman() && aa4[3].toNumber(), 'All ok'); + +// Should be Codec, we don't know this one +const bb = registry.createType('Something'); + +assert(bb.toHuman(), 'All ok'); + +// Should be Vec>> +const ee = registry.createType('Vec>>'); +// Option +const vb = registry.createType('Option< Vec< u8 > >'); +// nested vecs +const vv = registry.createType('Vec< Vec< Vec< Vec> > >'); +// vec with tuple +const vt = registry.createType('Vec<(u8, u16)>'); +// nested stuff from all-over +const vn = registry.createType('Vec<(u32, (u32, u64), Vec, Vec, Vec<(u32, u64)>, [u8;32], [u128;32])>'); +// nested fixed +const nf = registry.createType('[[[u8;32];5];3]'); +// with linkage +const tl = registry.createType('(ValidatorPrefsWithCommission, Linkage)'); + +assert(ee[0].unwrap().unwrap().divn(123) && vb.unwrap().bitLength() && vv.toHuman() && vn[0][3][0].bitLength() && vt.toHuman() && nf.toHuman() && tl[1].next, 'All ok'); + +// tuple & struct +const vs = registry.createType('(u8, {"a":"u32","b":"(u32,u64)"},(u8,u16),{"foo":"Bar"},u16)'); +// set +const st = registry.createType('{"_set": { "A": 1, "B": 2, "C": 4 } }'); +// enum +const en = registry.createType('{"_enum": { "A": 1, "B": 2, "C": 4 } }'); + +assert(vs.toHuman() && st.strings && en.index, 'All ok'); + +// Should end up as Raw +const gg = registry.createType('[ u8 ;678]'); + +assert(gg.subarray(1), 'All ok'); + +// Should end up as VecFixed +const hh = registry.createType('[u128; 32]'); +// maps and sets +const ms = registry.createType('(BTreeSet, BTreeMap, HashMap)'); + +assert(hh[0].bitLength() && ms[0].strings && ms[1].values() && ms[2].keys, 'All ok'); + +// tuple! ITuple<[u32, Compact, u128, Codec]> +const tt1 = registry.createType('(u32, Compact, u128 , Something)'); +// unwraps into a u32 +const tt2 = registry.createType('(((u32)))'); +// TEST: Adding a single param makes this go over the recursion limit in 4.4.4 +// lots and lots of params (indicates recursion limit) +const tt4 = registry.createType('(u8,u16,u32,u64,u128,u256,u8,u16,u32,u64,u128,u256,u8,u16,u32,u64,u128,u256,u8)'); +// empty +const tt5 = registry.createType('()'); +// nested tuples +const tt6 = registry.createType('(u8, (u16, (u32, u64, u128)), (u64, u128))'); +// more nested tuples +const tt7 = registry.createType('(((u8, u16, u32), (u32, u16, u8)), u128, u256)'); +// nested tuples with a wrapper +const tt8 = registry.createType('(u8, Vec<(u16, u32)>, Option<(u128, u128)>)'); +// same example as above +const tt9 = registry.createType('(u32, (u32, u64), Vec, Vec<(u32, u64)>, [u8;32], [u128;32])'); +// tuple with nested fixed +const tta = registry.createType('([u8;32], [u16;5])'); + +assert(tt1[2].bitLength() && tt2.bitLength() && tt4[3].bitLength() && tt5.isEmpty && tt6[1].toHuman() && tt7.toHuman() && tt8.toHuman() && tt9.toHuman() && tta[1][1].bitLength(), 'All ok'); diff --git a/packages/types/src/codec/index.ts b/packages/types/src/codec/index.ts new file mode 100644 index 0000000..c6732ff --- /dev/null +++ b/packages/types/src/codec/index.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// NOTE We are not exporting everything here. These _should_ be enough to use the +// actual interfaces from a "create-a-working-coder" perspective. If not, we should +// expand with slight care (for instance, Length is really only used internally to +// others, so there _should_ not be need for direct use) + +export { BTreeMap, BTreeSet, CodecMap, CodecSet, Compact, DoNotConstruct, Enum, HashMap, Int, Json, Linkage, Map, Option, Range, RangeInclusive, Raw, Result, Set, Struct, Tuple, U8aFixed, UInt, Vec, VecFixed, WrapperKeepOpaque, WrapperOpaque } from '@pezkuwi/types-codec'; diff --git a/packages/types/src/codec/types.ts b/packages/types/src/codec/types.ts new file mode 100644 index 0000000..db29939 --- /dev/null +++ b/packages/types/src/codec/types.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export type { U8aBitLength, UIntBitLength } from '@pezkuwi/types-codec/types'; diff --git a/packages/types/src/create/createClass.spec.ts b/packages/types/src/create/createClass.spec.ts new file mode 100644 index 0000000..fa48208 --- /dev/null +++ b/packages/types/src/create/createClass.spec.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeDefInfo } from '@pezkuwi/types-create'; + +import { createClass, getTypeClass, TypeRegistry } from './index.js'; + +describe('createClass', (): void => { + const registry = new TypeRegistry(); + + it('should memoize from strings', (): void => { + const a = createClass(registry, 'BabeWeight'); + const b = createClass(registry, 'BabeWeight'); + + expect(a).toBe(b); + }); + + it('should return equivalents for Bytes & Vec', (): void => { + const A = createClass(registry, 'Vec'); + const B = createClass(registry, 'Bytes'); + + expect(new A(registry) instanceof B).toBe(true); + }); +}); + +describe('getTypeClass', (): void => { + const registry = new TypeRegistry(); + + it('warns on invalid types', (): void => { + const spy = jest.spyOn(console, 'warn'); + const typeDef = { info: TypeDefInfo.Plain, type: 'ABC' }; + + try { + getTypeClass(registry, typeDef); + } catch { + // ignore + } + + expect(spy).toHaveBeenCalledWith( + expect.anything(), + expect.anything(), + 'Unable to resolve type ABC, it will fail on construction' + ); + }); +}); diff --git a/packages/types/src/create/createClass.ts b/packages/types/src/create/createClass.ts new file mode 100644 index 0000000..9a91bef --- /dev/null +++ b/packages/types/src/create/createClass.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, CodecClass, Registry } from '@pezkuwi/types-codec/types'; +import type { DetectCodec } from '../types/index.js'; + +import { createClassUnsafe } from '@pezkuwi/types-create'; + +export function createClass (registry: Registry, type: K): CodecClass> { + return createClassUnsafe(registry, type); +} diff --git a/packages/types/src/create/createType.spec.ts b/packages/types/src/create/createType.spec.ts new file mode 100644 index 0000000..76b2b5e --- /dev/null +++ b/packages/types/src/create/createType.spec.ts @@ -0,0 +1,252 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { CodecSet } from '@pezkuwi/types-codec'; + +import { Int } from '@pezkuwi/types-codec'; + +import { createClass, TypeRegistry } from './index.js'; + +describe('createType', (): void => { + const registry = new TypeRegistry(); + + it('allows creation of a H256 (with proper toRawType)', (): void => { + expect( + registry.createType('H256').toRawType() + ).toEqual('H256'); + expect( + registry.createType('Hash').toRawType() + ).toEqual('H256'); + }); + + it('allows creation of a Fixed64 (with proper toRawType & instance)', (): void => { + const f64 = registry.createType('Fixed64'); + + expect(f64.toRawType()).toEqual('Fixed64'); + expect(f64.bitLength()).toEqual(64); + expect(f64.isUnsigned).toBe(false); + expect(f64 instanceof Int).toBe(true); + }); + + it('allows creation of a Struct', (): void => { + const raw = '{"balance":"Balance","index":"u32"}'; + const struct = registry.createTypeUnsafe(raw, [{ + balance: 1234, + index: '0x10' + }]); + + expect(struct.toJSON()).toEqual({ + balance: 1234, // '0x000000000000000000000000000004d2', + index: 16 + }); + expect(struct.toRawType()).toEqual(raw); + }); + + it('allows creation of a BTreeMap', (): void => { + expect( + registry.createTypeUnsafe('BTreeMap', ['0x041c62617a7a696e6745000000']).toString() + ).toEqual('{"bazzing":69}'); + }); + + it('allows creation of a BTreeSet', (): void => { + expect( + registry.createTypeUnsafe('BTreeSet', ['0x1002000000180000001e00000050000000']).toString() + ).toEqual('[2,24,30,80]'); + }); + + it('allows creation of a Enum (simple)', (): void => { + expect( + registry.createTypeUnsafe('{"_enum": ["A", "B", "C"]}', [1]).toJSON() + ).toEqual('B'); + }); + + it('allows creation of a Enum (with types)', (): void => { + expect( + registry.createTypeUnsafe('{"_enum": {"A": null, "B": "u32", "C": null} }', [1]).toJSON() + ).toEqual({ b: 0 }); + }); + + it('allows creation of a Enum (with indexes)', (): void => { + expect( + registry.createTypeUnsafe('{"_enum": {"A": 42, "B": 69, "C": 255} }', [69]).toJSON() + ).toEqual('B'); + }); + + it('allows creation of a Result', (): void => { + expect( + registry.createTypeUnsafe('Result', ['0x011064656667']).toJSON() + ).toEqual({ err: 'defg' }); + }); + + it('allows creation of a Set', (): void => { + expect( + registry.createTypeUnsafe('{"_set": { "A": 1, "B": 2, "C": 4, "D": 8, "E": 16, "G": 32, "H": 64, "I": 128 } }', [1 + 4 + 16 + 64]).strings + ).toEqual(['A', 'C', 'E', 'H']); + }); + + it('allows creation of a Tuple', (): void => { + expect( + registry.createTypeUnsafe('(Balance,u32)', [[1234, 5678]]).toJSON() + ).toEqual([ + 1234, // '0x000000000000000000000000000004d2', + 5678 + ]); + }); + + it('allows creation for a UInt', (): void => { + expect( + registry.createType('UInt<2048>').toRawType() + ).toEqual('u2048'); + }); + + it('fails creation for a UInt where bitLength is not power of 8', (): void => { + expect( + () => registry.createType('UInt<20>').toRawType() + ).toThrow(/UInt<20>: Only support for UInt, where length <= 8192 and a power of 8/); + }); + + it('fails on creation of DoNotConstruct', (): void => { + const Clazz = createClass(registry, 'DoNotConstruct'); + + expect( + () => new Clazz(registry) + ).toThrow(/Cannot construct unknown type UnknownSomething/); + }); + + it('allows creation of a [u8; 8]', (): void => { + expect( + registry.createTypeUnsafe('[u8; 8]', [[0x12, 0x00, 0x23, 0x00, 0x45, 0x00, 0x67, 0x00]]).toHex() + ).toEqual('0x1200230045006700'); + }); + + it('allows creation of a [u16; 4]', (): void => { + expect( + registry.createTypeUnsafe('[u16; 4]', [[0x1200, 0x2300, 0x4500, 0x6700]]).toU8a() + ).toEqual(new Uint8Array([0x00, 0x12, 0x00, 0x23, 0x00, 0x45, 0x00, 0x67])); + }); + + describe('isPedantic', (): void => { + it('correctly decodes Bytes', (): void => { + expect( + registry.createTypeUnsafe('Bytes', ['0x12345678'], { isPedantic: true }).toHex() + ).toEqual('0x12345678'); + }); + + it('correctly decodes Bytes (prefixed)', (): void => { + expect( + registry.createTypeUnsafe('Bytes', [new Uint8Array([4 << 2, 0x12, 0x34, 0x56, 0x78])], { isPedantic: true }).toHex() + ).toEqual('0x12345678'); + }); + + it('correctly decodes Text', (): void => { + expect( + registry.createTypeUnsafe('Text', ['0x70726f7669646572'], { isPedantic: true }).toString() + ).toEqual('provider'); + }); + + it('correctly decodes Type', (): void => { + expect( + registry.createTypeUnsafe('Type', ['0x5665633c75383e'], { isPedantic: true }).toString() + ).toEqual('Bytes'); // Vec -> Bytes + }); + + it('correctly decodes [u16; 4]', (): void => { + expect( + registry.createTypeUnsafe('[u16; 4]', ['0x0012002300450067'], { isPedantic: true }).toHex() + ).toEqual('0x0012002300450067'); + }); + }); + + describe('instanceof', (): void => { + it('instanceof should work (primitive type)', (): void => { + const value = registry.createType('Balance', 1234); + + expect(value instanceof registry.createClass('Balance')).toBe(true); + }); + + it('instanceof should work (srml type)', (): void => { + const value = registry.createType('Gas', 1234); + const Gas = registry.createClass('Gas'); + + expect(value instanceof Gas).toBe(true); + }); + + it('instanceof should work (complex type)', (): void => { + registry.register({ + TestComplex: { + balance: 'Balance', + // eslint-disable-next-line sort-keys + accountId: 'AccountId', + log: '(u64, u32)', + // eslint-disable-next-line sort-keys + fromSrml: 'Gas' + } + }); + + const value = registry.createType('TestComplex', { + accountId: '0x1234567812345678123456781234567812345678123456781234567812345678', + balance: 123, + fromSrml: 0, + log: [456, 789] + }); + + expect(value instanceof createClass(registry, 'TestComplex')).toBe(true); + }); + + it('allows for re-registration of a type', (): void => { + const balDef = registry.createType('Balance'); + + expect(balDef instanceof registry.createClass('Balance')).toBe(true); + expect(balDef.bitLength()).toEqual(128); + + registry.register({ Balance: 'u32' }); + + const balu32 = registry.createType('Balance'); + + expect(balu32 instanceof registry.createClass('Balance')).toBe(true); + expect(balu32.bitLength()).toEqual(32); + }); + + it('allows for re-registration of a type (derived types)', (): void => { + registry.clearCache(); + registry.register({ + Balance: 'u128', + TestComplex: { + balance: 'Balance', + // eslint-disable-next-line sort-keys + accountId: 'AccountId', + log: '(u64, u32)', + // eslint-disable-next-line sort-keys + fromSrml: 'Gas' + } + }); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const cmpDef: any = registry.createType('TestComplex'); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call + expect(cmpDef.balance.bitLength()).toEqual(128); + + registry.clearCache(); + registry.register({ + Balance: 'u32', + TestComplex: { + balance: 'Balance', + // eslint-disable-next-line sort-keys + accountId: 'AccountId', + log: '(u64, u32)', + // eslint-disable-next-line sort-keys + fromSrml: 'Gas' + } + }); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + const cmpu32: any = registry.createType('TestComplex'); + + // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-call + expect(cmpu32.balance.bitLength()).toEqual(32); + }); + }); +}); diff --git a/packages/types/src/create/createType.ts b/packages/types/src/create/createType.ts new file mode 100644 index 0000000..88c5c02 --- /dev/null +++ b/packages/types/src/create/createType.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec, Registry } from '@pezkuwi/types-codec/types'; +import type { DetectCodec } from '../types/index.js'; + +import { createTypeUnsafe } from '@pezkuwi/types-create'; + +/** + * Create an instance of a `type` with a given `params`. + * @param type - A recognizable string representing the type to create an + * instance from + * @param params - The value to instantiate the type with + */ +export function createType (registry: Registry, type: K, ...params: unknown[]): DetectCodec { + return createTypeUnsafe(registry, type, params); +} diff --git a/packages/types/src/create/index.ts b/packages/types/src/create/index.ts new file mode 100644 index 0000000..c68fa32 --- /dev/null +++ b/packages/types/src/create/index.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all external +export * from '@pezkuwi/types-create/exports'; + +// all local +export * from './createClass.js'; +export * from './createType.js'; +export * from './lazy.js'; +export * from './registry.js'; diff --git a/packages/types/src/create/lazy.ts b/packages/types/src/create/lazy.ts new file mode 100644 index 0000000..1293d72 --- /dev/null +++ b/packages/types/src/create/lazy.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SiLookupTypeId, SiVariant } from '../interfaces/index.js'; +import type { PortableRegistry } from '../metadata/index.js'; + +import { lazyMethod } from '@pezkuwi/util'; + +interface TypeHolder { + type: SiLookupTypeId +} + +export function lazyVariants (lookup: PortableRegistry, { type }: TypeHolder, getName: (v: SiVariant) => string, creator: (v: SiVariant) => T): Record { + const result: Record = {}; + const variants = lookup.getSiType(type).def.asVariant.variants; + + for (let i = 0, count = variants.length; i < count; i++) { + lazyMethod(result, variants[i], creator, getName, i); + } + + return result; +} diff --git a/packages/types/src/create/registry.spec.ts b/packages/types/src/create/registry.spec.ts new file mode 100644 index 0000000..688f68b --- /dev/null +++ b/packages/types/src/create/registry.spec.ts @@ -0,0 +1,186 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import type { Codec, CodecClass } from '@pezkuwi/types-codec/types'; + +import { DoNotConstruct, Struct, Text, U32 } from '@pezkuwi/types-codec'; +import { isChildClass, u8aToU8a } from '@pezkuwi/util'; +import { keccakAsU8a } from '@pezkuwi/util-crypto'; + +import { TypeRegistry } from './index.js'; + +describe('TypeRegistry', (): void => { + const registry = new TypeRegistry(); + + it('handles non exist type', (): void => { + expect(registry.get('non-exist')).not.toBeDefined(); + }); + + it('throws on non-existent via getOrThrow', (): void => { + expect( + (): CodecClass => registry.getOrThrow('non-exist') + ).toThrow('type non-exist not found'); + }); + + it('handles non exist type as Unknown (via getOrUnknown)', (): void => { + const Type = registry.getOrUnknown('non-exist'); + + expect(Type).toBeDefined(); + // eslint-disable-next-line no-prototype-builtins + expect(isChildClass(DoNotConstruct, Type)).toBe(true); + }); + + it('can register single type', (): void => { + registry.register(Text); + expect(registry.get('Text')).toBe(Text); + }); + + it('can register type with a different name', (): void => { + registry.register('TextRenamed', Text); + expect(isChildClass(Text, registry.get('TextRenamed'))).toBe(true); + }); + + describe('object registration', (): void => { + it('can register multiple types', (): void => { + registry.register({ + Text, + U32Renamed: U32 + }); + expect(isChildClass(Text, registry.get('Text'))).toBe(true); + expect(isChildClass(U32, registry.get('U32Renamed'))).toBe(true); + }); + + it('can register recursive types', (): void => { + registry.register({ + Recursive: { + next: 'Option' + } + }); + + expect(registry.hasDef('Recursive')).toBe(true); + expect(registry.hasClass('Recursive')).toBe(false); + + const Recursive = registry.getOrThrow('Recursive'); + + expect(registry.hasClass('Recursive')).toBe(true); + + const last = new Recursive(registry, { next: null }); + const first = new Recursive(registry, { next: last }); + + expect((first as any).next.isSome).toBe(true); + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + expect((first as any).next.unwrap().next.isSome).toBe(false); + }); + + it('can register non-embedded recursive types', (): void => { + registry.register({ + Operation: { + data: 'OperationData' + }, + OperationData: { + ops: 'Vec' + }, + Rule: { + data: 'RuleData' + }, + RuleData: { + ops: 'Vec' + } + }); + + expect(registry.hasDef('Rule')).toBe(true); + expect(registry.hasClass('Rule')).toBe(false); + + const Rule = registry.getOrThrow('Rule'); + + expect(registry.hasClass('Rule')).toBe(true); + + const instance = new Rule(registry); + + expect(instance.toRawType()).toEqual('{"data":"RuleData"}'); + }); + + it('can register cross-referencing types', (): void => { + registry.register({ + A: { + next: 'B' + }, + B: { + _enum: { + End: null, + Other: 'A' + } + } + }); + + const A = registry.getOrThrow('A'); + const B = registry.getOrThrow('B'); + + expect(registry.hasClass('Recursive')).toBe(true); + + const last = new B(registry, { End: null }); + const first = new B(registry, { Other: new A(registry, { next: last }) }); + + expect((first as any).isOther).toBe(true); + }); + + it('can create types from string', (): void => { + registry.register({ + U32Renamed: 'u32' + }); + + const Type = registry.getOrThrow('U32Renamed'); + + expect(new Type(registry) instanceof U32).toBe(true); + }); + + it('can create structs via definition', (): void => { + registry.register({ + SomeStruct: { + bar: 'Text', + foo: 'u32' + } + }); + + const SomeStruct = registry.getOrThrow('SomeStruct'); + const struct: any = new SomeStruct(registry, { + bar: 'testing', + foo: 42 + }); + + expect(struct instanceof Struct).toBe(true); + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + expect(struct.foo.toNumber()).toEqual(42); + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + expect(struct.bar.toString()).toEqual('testing'); + }); + }); + + it('hashes via blake2 by default', (): void => { + expect( + registry.hash(u8aToU8a('abc')).toU8a() + ).toEqual( + new Uint8Array([189, 221, 129, 60, 99, 66, 57, 114, 49, 113, 239, 63, 238, 152, 87, 155, 148, 150, 78, 59, 177, 203, 62, 66, 114, 98, 200, 192, 104, 213, 35, 25]) + ); + }); + + it('hashes via override hasher', (): void => { + registry.setHasher(keccakAsU8a); + + expect( + registry.hash(u8aToU8a('test value')).toHex() + ).toEqual('0x2d07364b5c231c56ce63d49430e085ea3033c750688ba532b24029124c26ca5e'); + + registry.setHasher(); + + expect( + registry.hash(u8aToU8a('abc')).toU8a() + ).toEqual( + new Uint8Array([189, 221, 129, 60, 99, 66, 57, 114, 49, 113, 239, 63, 238, 152, 87, 155, 148, 150, 78, 59, 177, 203, 62, 66, 114, 98, 200, 192, 104, 213, 35, 25]) + ); + }); +}); diff --git a/packages/types/src/create/registry.ts b/packages/types/src/create/registry.ts new file mode 100644 index 0000000..ea3956b --- /dev/null +++ b/packages/types/src/create/registry.ts @@ -0,0 +1,639 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyString, Codec, CodecClass, IU8a, LookupString } from '@pezkuwi/types-codec/types'; +import type { CreateOptions, TypeDef } from '@pezkuwi/types-create/types'; +import type { ExtDef } from '../extrinsic/signedExtensions/types.js'; +import type { ChainProperties, DispatchErrorModule, DispatchErrorModuleU8, DispatchErrorModuleU8a, EventMetadataLatest, Hash, MetadataLatest, SiField, SiLookupTypeId, SiVariant, WeightV1, WeightV2 } from '../interfaces/types.js'; +import type { CallFunction, CodecHasher, Definitions, DetectCodec, RegisteredTypes, Registry, RegistryError, RegistryTypes } from '../types/index.js'; + +import { DoNotConstruct, Json, Raw } from '@pezkuwi/types-codec'; +import { constructTypeClass, createClassUnsafe, createTypeUnsafe } from '@pezkuwi/types-create'; +import { assertReturn, formatBalance, isBn, isFunction, isNumber, isString, isU8a, lazyMethod, logger, objectSpread, stringCamelCase, stringify } from '@pezkuwi/util'; +import { blake2AsU8a } from '@pezkuwi/util-crypto'; + +import { expandExtensionTypes, fallbackExtensions, findUnknownExtensions } from '../extrinsic/signedExtensions/index.js'; +import { GenericEventData } from '../generic/Event.js'; +import * as baseTypes from '../index.types.js'; +import * as definitions from '../interfaces/definitions.js'; +import { createCallFunction } from '../metadata/decorate/extrinsics/index.js'; +import { decorateConstants, filterCallsSome, filterEventsSome } from '../metadata/decorate/index.js'; +import { Metadata } from '../metadata/Metadata.js'; +import { PortableRegistry } from '../metadata/PortableRegistry/index.js'; +import { lazyVariants } from './lazy.js'; + +const DEFAULT_FIRST_CALL_IDX = new Uint8Array(2); + +const l = logger('registry'); + +function sortDecimalStrings (a: string, b: string): number { + return parseInt(a, 10) - parseInt(b, 10); +} + +function valueToString (v: { toString: () => string }): string { + return v.toString(); +} + +function getFieldArgs (lookup: PortableRegistry, fields: SiField[]): string[] { + const count = fields.length; + const args = new Array(count); + + for (let i = 0; i < count; i++) { + args[i] = lookup.getTypeDef(fields[i].type).type; + } + + return args; +} + +function clearRecord (record: Record): void { + const keys = Object.keys(record); + + for (let i = 0, count = keys.length; i < count; i++) { + delete record[keys[i]]; + } +} + +function getVariantStringIdx ({ index }: SiVariant): string { + return index.toString(); +} + +// create error mapping from metadata +function injectErrors (_: TypeRegistry, { lookup, pallets }: MetadataLatest, version: number, result: Record>): void { + clearRecord(result); + + for (let i = 0, count = pallets.length; i < count; i++) { + const { errors, index, name } = pallets[i]; + + if (errors.isSome) { + const sectionName = stringCamelCase(name); + + lazyMethod(result, version >= 12 ? index.toNumber() : i, () => + lazyVariants(lookup, errors.unwrap(), getVariantStringIdx, ({ docs, fields, index, name }: SiVariant): RegistryError => ({ + args: getFieldArgs(lookup, fields), + docs: docs.map(valueToString), + fields, + index: index.toNumber(), + method: name.toString(), + name: name.toString(), + section: sectionName + })) + ); + } + } +} + +// create event classes from metadata +function injectEvents (registry: TypeRegistry, { lookup, pallets }: MetadataLatest, version: number, result: Record>>): void { + const filtered = pallets.filter(filterEventsSome); + + clearRecord(result); + + for (let i = 0, count = filtered.length; i < count; i++) { + const { events, index, name } = filtered[i]; + + lazyMethod(result, version >= 12 ? index.toNumber() : i, () => + lazyVariants(lookup, events.unwrap(), getVariantStringIdx, (variant: SiVariant): CodecClass => { + const meta = registry.createType('EventMetadataLatest', objectSpread({}, variant, { args: getFieldArgs(lookup, variant.fields) })); + + return class extends GenericEventData { + constructor (registry: Registry, value: Uint8Array) { + super(registry, value, meta, stringCamelCase(name), variant.name.toString()); + } + }; + }) + ); + } +} + +// create extrinsic mapping from metadata +function injectExtrinsics (registry: TypeRegistry, { lookup, pallets }: MetadataLatest, version: number, result: Record>, mapping: Record): void { + const filtered = pallets.filter(filterCallsSome); + + clearRecord(result); + clearRecord(mapping); + + for (let i = 0, count = filtered.length; i < count; i++) { + const { calls, index, name } = filtered[i]; + const sectionIndex = version >= 12 ? index.toNumber() : i; + const sectionName = stringCamelCase(name); + const allCalls = calls.unwrap(); + + lazyMethod(result, sectionIndex, () => + lazyVariants(lookup, allCalls, getVariantStringIdx, (variant: SiVariant) => + createCallFunction(registry, lookup, variant, sectionName, sectionIndex) + ) + ); + + const { path } = registry.lookup.getSiType(allCalls.type); + + // frame_system::pallet::Call / pallet_balances::pallet::Call / pezkuwi_runtime_teyrchains::configuration::pallet::Call / + const palletIdx = path.findIndex((v) => v.eq('pallet')); + + if (palletIdx !== -1) { + const name = stringCamelCase( + path + .slice(0, palletIdx) + .map((p, i) => + i === 0 + // frame_system || pallet_balances + ? p.replace(/^(frame|pallet)_/, '') + : p + ) + .join(' ') + ); + + if (!mapping[name]) { + mapping[name] = [sectionName]; + } else { + mapping[name].push(sectionName); + } + } + } +} + +// extract additional properties from the metadata +function extractProperties (registry: TypeRegistry, metadata: Metadata): ChainProperties | undefined { + const original = registry.getChainProperties(); + const constants = decorateConstants(registry, metadata.asLatest, metadata.version); + const ss58Format = constants['system'] && (constants['system']['sS58Prefix'] || constants['system']['ss58Prefix']); + + if (!ss58Format) { + return original; + } + + const { isEthereum, tokenDecimals, tokenSymbol } = original || {}; + + return registry.createTypeUnsafe('ChainProperties', [{ isEthereum, ss58Format, tokenDecimals, tokenSymbol }]); +} + +export class TypeRegistry implements Registry { + #chainProperties?: ChainProperties; + #classes = new Map(); + #definitions = new Map(); + #firstCallIndex: Uint8Array | null = null; + #hasher: (data: Uint8Array) => Uint8Array = blake2AsU8a; + #knownTypes: RegisteredTypes = {}; + #lookup?: PortableRegistry; + #metadata?: MetadataLatest; + #metadataVersion = 0; + #signedExtensions: string[] = fallbackExtensions; + #unknownTypes = new Map(); + #userExtensions?: ExtDef | undefined; + + readonly #knownDefaults: Map; + readonly #knownDefaultsEntries: [string, CodecClass][]; + readonly #knownDefinitions: Record; + readonly #metadataCalls: Record> = {}; + readonly #metadataErrors: Record> = {}; + readonly #metadataEvents: Record>> = {}; + readonly #moduleMap: Record = {}; + + public createdAtHash?: Hash; + + constructor (createdAtHash?: Hash | Uint8Array | string) { + this.#knownDefaults = new Map(Object.entries({ Json, Metadata, PortableRegistry, Raw, ...baseTypes })); + this.#knownDefaultsEntries = Array.from(this.#knownDefaults.entries()); + this.#knownDefinitions = definitions; + + const allKnown = Object.values(this.#knownDefinitions); + + for (let i = 0, count = allKnown.length; i < count; i++) { + this.register(allKnown[i].types as unknown as RegistryTypes); + } + + if (createdAtHash) { + this.createdAtHash = this.createType('BlockHash', createdAtHash); + } + } + + public get chainDecimals (): number[] { + if (this.#chainProperties?.tokenDecimals.isSome) { + const allDecimals = this.#chainProperties.tokenDecimals.unwrap(); + + if (allDecimals.length) { + return allDecimals.map((b) => b.toNumber()); + } + } + + return [12]; + } + + public get chainIsEthereum (): boolean { + return this.#chainProperties?.isEthereum.isTrue || false; + } + + public get chainSS58 (): number | undefined { + return this.#chainProperties?.ss58Format.isSome + ? this.#chainProperties.ss58Format.unwrap().toNumber() + : undefined; + } + + public get chainTokens (): string[] { + if (this.#chainProperties?.tokenSymbol.isSome) { + const allTokens = this.#chainProperties.tokenSymbol.unwrap(); + + if (allTokens.length) { + return allTokens.map(valueToString); + } + } + + return [formatBalance.getDefaults().unit]; + } + + public get firstCallIndex (): Uint8Array { + return this.#firstCallIndex || DEFAULT_FIRST_CALL_IDX; + } + + /** + * @description Returns true if the type is in a Compat format + */ + public isLookupType (value: string): value is LookupString { + return /Lookup\d+$/.test(value); + } + + /** + * @description Creates a lookup string from the supplied id + */ + public createLookupType (lookupId: SiLookupTypeId | number): LookupString { + return `Lookup${typeof lookupId === 'number' ? lookupId : lookupId.toNumber()}`; + } + + public get knownTypes (): RegisteredTypes { + return this.#knownTypes; + } + + public get lookup (): PortableRegistry { + return assertReturn(this.#lookup, 'PortableRegistry has not been set on this registry'); + } + + public get metadata (): MetadataLatest { + return assertReturn(this.#metadata, 'Metadata has not been set on this registry'); + } + + public get unknownTypes (): string[] { + return [...this.#unknownTypes.keys()]; + } + + public get signedExtensions (): string[] { + return this.#signedExtensions; + } + + public clearCache (): void { + this.#classes = new Map(); + } + + /** + * @describe Creates an instance of the class + */ + public createClass (type: K): CodecClass> { + return createClassUnsafe>(this, type); + } + + /** + * @describe Creates an instance of the class + */ + public createClassUnsafe (type: K): CodecClass { + return createClassUnsafe(this, type); + } + + /** + * @description Creates an instance of a type as registered + */ + public createType (type: K, ...params: unknown[]): DetectCodec { + return createTypeUnsafe(this, type, params); + } + + /** + * @description Creates an instance of a type as registered + */ + public createTypeUnsafe (type: K, params: unknown[], options?: CreateOptions): T { + return createTypeUnsafe(this, type, params, options); + } + + // find a specific call + public findMetaCall (callIndex: Uint8Array): CallFunction { + const [section, method] = [callIndex[0], callIndex[1]]; + + return assertReturn( + this.#metadataCalls[`${section}`] && this.#metadataCalls[`${section}`][`${method}`], + () => `findMetaCall: Unable to find Call with index [${section}, ${method}]/[${callIndex.toString()}]` + ); + } + + // finds an error + public findMetaError (errorIndex: Uint8Array | DispatchErrorModule | DispatchErrorModuleU8 | DispatchErrorModuleU8a): RegistryError { + const [section, method] = isU8a(errorIndex) + ? [errorIndex[0], errorIndex[1]] + : [ + errorIndex.index.toNumber(), + isU8a(errorIndex.error) + ? errorIndex.error[0] + : errorIndex.error.toNumber() + ]; + + return assertReturn( + this.#metadataErrors[`${section}`] && this.#metadataErrors[`${section}`][`${method}`], + () => `findMetaError: Unable to find Error with index [${section}, ${method}]/[${errorIndex.toString()}]` + ); + } + + public findMetaEvent (eventIndex: Uint8Array): CodecClass { + const [section, method] = [eventIndex[0], eventIndex[1]]; + + return assertReturn( + this.#metadataEvents[`${section}`] && this.#metadataEvents[`${section}`][`${method}`], + () => `findMetaEvent: Unable to find Event with index [${section}, ${method}]/[${eventIndex.toString()}]` + ); + } + + public get (name: K, withUnknown?: boolean, knownTypeDef?: TypeDef): CodecClass | undefined { + return this.getUnsafe(name, withUnknown, knownTypeDef); + } + + public getUnsafe (name: K, withUnknown?: boolean, knownTypeDef?: TypeDef): CodecClass | undefined { + let Type = this.#classes.get(name) || this.#knownDefaults.get(name); + + // we have not already created the type, attempt it + if (!Type) { + const definition = this.#definitions.get(name); + let BaseType: CodecClass | undefined; + + // we have a definition, so create the class now (lazily) + if (definition) { + BaseType = createClassUnsafe(this, definition); + } else if (knownTypeDef) { + BaseType = constructTypeClass(this, knownTypeDef); + } else if (withUnknown) { + l.warn(`Unable to resolve type ${name}, it will fail on construction`); + + this.#unknownTypes.set(name, true); + + BaseType = DoNotConstruct.with(name); + } + + if (BaseType) { + // NOTE If we didn't extend here, we would have strange artifacts. An example is + // Balance, with this, new Balance() instanceof u128 is true, but Balance !== u128 + // Additionally, we now pass through the registry, which is a link to ourselves + Type = class extends BaseType {}; + + this.#classes.set(name, Type); + + // In the case of lookups, we also want to store the actual class against + // the lookup name, instad of having to traverse again + if (knownTypeDef && isNumber(knownTypeDef.lookupIndex)) { + this.#classes.set(this.createLookupType(knownTypeDef.lookupIndex), Type); + } + } + } + + return Type as unknown as CodecClass; + } + + public getChainProperties (): ChainProperties | undefined { + return this.#chainProperties; + } + + public getClassName (Type: CodecClass): string | undefined { + // we cannot rely on export order (anymore, since babel/core 7.15.8), so in the case of + // items such as u32 & U32, we get the lowercase versions here... not quite as optimal + // (previously this used to be a simple find & return) + const names: string[] = []; + + for (const [name, Clazz] of this.#knownDefaultsEntries) { + if (Type === Clazz) { + names.push(name); + } + } + + for (const [name, Clazz] of this.#classes.entries()) { + if (Type === Clazz) { + names.push(name); + } + } + + return names.length + // both sort and reverse are done in-place + // ['U32', 'u32'] -> ['u32', 'U32'] + ? names.sort().reverse()[0] + : undefined; + } + + public getDefinition (typeName: string): string | undefined { + return this.#definitions.get(typeName); + } + + public getModuleInstances (specName: AnyString, moduleName: string): string[] | undefined { + return this.#knownTypes?.typesBundle?.spec?.[specName.toString()]?.instances?.[moduleName] || this.#moduleMap[moduleName]; + } + + public getOrThrow > (name: K): CodecClass { + const Clazz = this.get(name); + + if (!Clazz) { + throw new Error(`type ${name} not found`); + } + + return Clazz as unknown as CodecClass; + } + + public getOrUnknown > (name: K): CodecClass { + return this.get(name, true) as unknown as CodecClass; + } + + // Only used in extrinsic version 5 + public getTransactionExtensionVersion (): number { + return 0; + } + + public getSignedExtensionExtra (): Record { + return expandExtensionTypes(this.#signedExtensions, 'payload', this.#userExtensions); + } + + public getSignedExtensionTypes (): Record { + return expandExtensionTypes(this.#signedExtensions, 'extrinsic', this.#userExtensions); + } + + public hasClass (name: string): boolean { + return this.#classes.has(name) || !!this.#knownDefaults.has(name); + } + + public hasDef (name: string): boolean { + return this.#definitions.has(name); + } + + public hasType (name: string): boolean { + return !this.#unknownTypes.get(name) && (this.hasClass(name) || this.hasDef(name)); + } + + public hash (data: Uint8Array): IU8a { + return this.createType('CodecHash', this.#hasher(data)); + } + + public register (type: CodecClass | RegistryTypes): void; + + // eslint-disable-next-line no-dupe-class-members + public register (name: string, type: CodecClass): void; + + // eslint-disable-next-line no-dupe-class-members + public register (arg1: string | CodecClass | RegistryTypes, arg2?: CodecClass): void { + // NOTE Constructors appear as functions here + if (isFunction(arg1)) { + this.#classes.set(arg1.name, arg1); + } else if (isString(arg1)) { + if (!isFunction(arg2)) { + throw new Error(`Expected class definition passed to '${arg1}' registration`); + } else if (arg1 === arg2.toString()) { + throw new Error(`Unable to register circular ${arg1} === ${arg1}`); + } + + this.#classes.set(arg1, arg2); + } else { + this.#registerObject(arg1); + } + } + + #registerObject = (obj: RegistryTypes): void => { + const entries = Object.entries(obj); + + for (let e = 0, count = entries.length; e < count; e++) { + const [name, type] = entries[e]; + + if (isFunction(type)) { + // This _looks_ a bit funny, but `typeof Clazz === 'function' + this.#classes.set(name, type); + } else { + const def = isString(type) + ? type + : stringify(type); + + if (name === def) { + throw new Error(`Unable to register circular ${name} === ${def}`); + } + + // we already have this type, remove the classes registered for it + if (this.#classes.has(name)) { + this.#classes.delete(name); + } + + this.#definitions.set(name, def); + } + } + }; + + // sets the chain properties + public setChainProperties (properties?: ChainProperties): void { + if (properties) { + this.#chainProperties = properties; + } + } + + setHasher (hasher?: CodecHasher | null): void { + this.#hasher = hasher || blake2AsU8a; + } + + setKnownTypes (knownTypes: RegisteredTypes): void { + this.#knownTypes = knownTypes; + } + + setLookup (lookup: PortableRegistry): void { + this.#lookup = lookup; + + // register all applicable types found + lookup.register(); + } + + // register alias types alongside the portable/lookup setup + // (we don't combine this into setLookup since that would/could + // affect stand-along lookups, such as ABIs which don't have + // actual on-chain metadata) + #registerLookup = (lookup: PortableRegistry): void => { + // attach the lookup before we register any types + this.setLookup(lookup); + + // we detect based on runtime configuration + let Weight: string | null = null; + + if (this.hasType('PezspWeightsWeightV2Weight')) { + // detection for WeightV2 type based on latest naming + const weightv2 = this.createType('PezspWeightsWeightV2Weight'); + + Weight = weightv2.refTime && weightv2.proofSize + // with both refTime & proofSize we use as-is (WeightV2) + ? 'PezspWeightsWeightV2Weight' + // fallback to WeightV1 (WeightV1.5 is a struct, single field) + : 'WeightV1'; + } else if (!isBn(this.createType('Weight'))) { + // where we have an already-supplied BN override, we don't clobber + // it with our detected value (This protects against pre-defines + // where Weight may be aliassed to WeightV0, e.g. in early Zagros chains) + Weight = 'WeightV1'; + } + + if (Weight) { + // we have detected a version, adjust the definition + this.register({ Weight }); + } + }; + + // sets the metadata + public setMetadata (metadata: Metadata, signedExtensions?: string[], userExtensions?: ExtDef, noInitWarn?: boolean): void { + this.#metadata = metadata.asLatest; + this.#metadataVersion = metadata.version; + this.#firstCallIndex = null; + + // attach the lookup at this point and register relevant types (before injecting) + this.#registerLookup(this.#metadata.lookup); + + injectExtrinsics(this, this.#metadata, this.#metadataVersion, this.#metadataCalls, this.#moduleMap); + injectErrors(this, this.#metadata, this.#metadataVersion, this.#metadataErrors); + injectEvents(this, this.#metadata, this.#metadataVersion, this.#metadataEvents); + + // set the default call index (the lowest section, the lowest method) + // in most chains this should be 0,0 + const [defSection] = Object + .keys(this.#metadataCalls) + .sort(sortDecimalStrings); + + if (defSection) { + const [defMethod] = Object + .keys(this.#metadataCalls[defSection]) + .sort(sortDecimalStrings); + + if (defMethod) { + this.#firstCallIndex = new Uint8Array([parseInt(defSection, 10), parseInt(defMethod, 10)]); + } + } + + // setup the available extensions + this.setSignedExtensions( + signedExtensions || ( + this.#metadata.extrinsic.versions.length > 0 && this.#metadata.extrinsic.versions.every((value) => value > 0) + // FIXME Use the extension and their injected types + ? this.#metadata.extrinsic.transactionExtensions.map(({ identifier }) => identifier.toString()) + : fallbackExtensions + ), + userExtensions, + noInitWarn + ); + + // setup the chain properties with format overrides + this.setChainProperties( + extractProperties(this, metadata) + ); + } + + // sets the available signed extensions + setSignedExtensions (signedExtensions: string[] = fallbackExtensions, userExtensions?: ExtDef, noInitWarn?: boolean): void { + this.#signedExtensions = signedExtensions; + this.#userExtensions = userExtensions; + + if (!noInitWarn) { + const unknown = findUnknownExtensions(this.#signedExtensions, this.#userExtensions); + + if (unknown.length) { + l.warn(`Unknown signed extensions ${unknown.join(', ')} found, treating them as no-effect`); + } + } + } +} diff --git a/packages/types/src/create/types.ts b/packages/types/src/create/types.ts new file mode 100644 index 0000000..89740e1 --- /dev/null +++ b/packages/types/src/create/types.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all types +export type { CodecCreateOptions as CreateOptions } from '@pezkuwi/types-codec/types'; +export type { TypeDef } from '@pezkuwi/types-create/types'; + +// all enums +export { TypeDefInfo } from '@pezkuwi/types-create'; diff --git a/packages/types/src/ethereum/AccountId.spec.ts b/packages/types/src/ethereum/AccountId.spec.ts new file mode 100644 index 0000000..8885e3a --- /dev/null +++ b/packages/types/src/ethereum/AccountId.spec.ts @@ -0,0 +1,86 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import type { GenericEthereumAccountId as AccountId } from './AccountId.js'; + +import { Raw } from '@pezkuwi/types-codec'; + +import { TypeRegistry } from '../create/index.js'; + +describe('EthereumAccountId', (): void => { + const registry = new TypeRegistry(); + + describe('defaults', (): void => { + const id = registry.createType('EthereumAccountId'); + + it('has a 20-byte length', (): void => { + expect(id).toHaveLength(20); + }); + + it('is empty by default', (): void => { + expect(id.isEmpty).toBe(true); + }); + + it('equals the empty address', (): void => { + expect(id.eq('0x0000000000000000000000000000000000000000')).toBe(true); + }); + }); + + describe('decoding', (): void => { + const testDecode = (type: string, input: Uint8Array | string | AccountId, expected: string): void => + it(`can decode from ${type}`, (): void => { + const a = registry.createType('EthereumAccountId', input); + + expect(a.toString()).toBe(expected); + }); + + testDecode( + 'AccountId', + registry.createType('EthereumAccountId', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'), + '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887' + ); + testDecode('hex', '0x4119b2e6c3cb618f4f0B93ac77f9Beec7ff02887', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'); + testDecode( + 'Raw', + new Raw(registry, [ + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2 + ]), + '0x0102030405060708010201020304050607080102' + ); + testDecode( + 'Uint8Array', + Uint8Array.from([ + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2 + ]), + '0x0102030405060708010201020304050607080102' + ); + }); + + describe('encoding', (): void => { + const testEncode = (to: 'toHex' | 'toJSON' | 'toString' | 'toU8a', expected: Uint8Array | string, input = '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'): void => + it(`can encode ${to}`, (): void => { + const a = registry.createType('EthereumAccountId', input); + + expect(a[to]()).toEqual(expected); + }); + + testEncode('toHex', '0x4119b2e6c3cb618f4f0b93ac77f9beec7ff02887'); + testEncode('toJSON', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'); + testEncode('toString', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'); + testEncode('toString', '0x0000000000000000000000000000000000000000', '0x0000000000000000000000000000000000000000'); + testEncode('toU8a', Uint8Array.from([ + 0x41, 0x19, 0xb2, 0xe6, 0xc3, 0xcb, 0x61, 0x8f, 0x4f, 0x0b, + 0x93, 0xac, 0x77, 0xf9, 0xbe, 0xec, 0x7f, 0xf0, 0x28, 0x87 + ])); + + it('decodes to a non-empty value', (): void => { + expect(registry.createType('EthereumAccountId', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887').isEmpty).toBe(false); + }); + }); +}); diff --git a/packages/types/src/ethereum/AccountId.ts b/packages/types/src/ethereum/AccountId.ts new file mode 100644 index 0000000..750fa9a --- /dev/null +++ b/packages/types/src/ethereum/AccountId.ts @@ -0,0 +1,76 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyString, AnyU8a, Registry } from '@pezkuwi/types-codec/types'; + +import { U8aFixed } from '@pezkuwi/types-codec'; +import { hexToU8a, isHex, isString, isU8a, u8aToU8a } from '@pezkuwi/util'; +import { ethereumEncode, isEthereumAddress } from '@pezkuwi/util-crypto'; + +/** @internal */ +function decodeAccountId (value: AnyU8a | AnyString): AnyU8a { + if (isU8a(value) || Array.isArray(value)) { + return u8aToU8a(value); + } else if (isHex(value) || isEthereumAddress(value.toString())) { + return hexToU8a(value.toString()); + } else if (isString(value)) { + return u8aToU8a(value); + } + + return value; +} + +/** + * @name GenericEthereumAccountId + * @description + * A wrapper around an Ethereum-compatible AccountId. Since we are dealing with + * underlying addresses (20 bytes in length), we extend from U8aFixed which is + * just a Uint8Array wrapper with a fixed length. + */ +export class GenericEthereumAccountId extends U8aFixed { + constructor (registry: Registry, value: AnyU8a = new Uint8Array()) { + super(registry, decodeAccountId(value), 160); + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public override eq (other?: unknown): boolean { + return !!other && super.eq(decodeAccountId(other as AnyU8a)); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (): string { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): string { + return this.toString(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public override toPrimitive (): string { + return this.toJSON(); + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return ethereumEncode(this); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'AccountId'; + } +} diff --git a/packages/types/src/ethereum/LookupSource.spec.ts b/packages/types/src/ethereum/LookupSource.spec.ts new file mode 100644 index 0000000..b2daf29 --- /dev/null +++ b/packages/types/src/ethereum/LookupSource.spec.ts @@ -0,0 +1,107 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { GenericAccountIndex as AccountIndex } from '../generic/index.js'; +import type { GenericEthereumAccountId as AccountId, GenericEthereumLookupSource as Address } from './index.js'; + +import { TypeRegistry } from '../create/index.js'; + +describe('EthereumLookupSource', (): void => { + const registry = new TypeRegistry(); + + const testDecode = (type: string, input: Address | AccountId | AccountIndex | number[] | Uint8Array, expected: string): void => + it(`can decode from ${type}`, (): void => { + const a = registry.createType('EthereumLookupSource', input); + + expect(a.toString()).toBe(expected); + }); + + describe('decoding', (): void => { + testDecode( + 'Address', + registry.createType('EthereumLookupSource', '0x00a329c0648769a73afac7f9381e08fb43dbea72'), + '0x00a329c0648769A73afAc7F9381E08FB43dBEA72' + ); + testDecode( + 'AccountId', + registry.createType('EthereumAccountId', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'), + '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887' + ); + testDecode( + 'AccountIndex (mixed prefixes)', + registry.createType('EthereumLookupSource', '118r'), + // NOTE Expected address here is encoded with prefix 42, input above with 1 + '25GUyv' + ); + testDecode( + 'AccountIndex (hex)', + registry.createType('AccountIndex', '0x0100'), + '25GUyv' + ); + testDecode( + 'Uint8Array (with prefix 255)', + Uint8Array.from([ + 255, + 0x41, 0x19, 0xb2, 0xe6, 0xc3, 0xcb, 0x61, 0x8f, 0x4f, 0x0b, + 0x93, 0xac, 0x77, 0xf9, 0xbe, 0xec, 0x7f, 0xf0, 0x28, 0x87 + ]), + '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887' + ); + testDecode( + 'Uint8Array (with prefix 1 byte)', + Uint8Array.from([1]), + 'F7NZ' + ); + testDecode( + 'Uint8Array (with prefix 2 bytes)', + Uint8Array.from([0xfc, 0, 1]), + '25GUyv' + ); + testDecode( + 'Uint8Array (with prefix 4 bytes)', + Uint8Array.from([0xfd, 17, 18, 19, 20]), + 'Mwz15xP2' + ); + }); + + describe('encoding', (): void => { + const testEncode = (to: 'toHex' | 'toString' | 'toU8a', expected: string | Uint8Array): void => + it(`can encode ${to}`, (): void => { + const a = registry.createType('EthereumLookupSource', '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'); + + expect(a[to]()).toEqual(expected); + }); + + testEncode( + 'toHex', + '0xff4119b2e6c3cb618f4f0b93ac77f9beec7ff02887' + ); + testEncode( + 'toString', + '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887' + ); + testEncode( + 'toU8a', + Uint8Array.from([ + 255, + 0x41, 0x19, 0xb2, 0xe6, 0xc3, 0xcb, 0x61, 0x8f, 0x4f, 0x0b, + 0x93, 0xac, 0x77, 0xf9, 0xbe, 0xec, 0x7f, 0xf0, 0x28, 0x87 + ]) + ); + }); + + describe('utility', (): void => { + it('equals on AccountId', (): void => { + const addr = '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'; + + expect(registry.createType('EthereumLookupSource', addr).eq(addr)).toBe(true); + }); + + it('equals on AccountIndex', (): void => { + // see the test below - these are equivalent (with different prefix encoding) + expect(registry.createType('EthereumLookupSource', '118r').eq('25GUyv')).toBe(true); + }); + }); +}); diff --git a/packages/types/src/ethereum/LookupSource.ts b/packages/types/src/ethereum/LookupSource.ts new file mode 100644 index 0000000..e66cf29 --- /dev/null +++ b/packages/types/src/ethereum/LookupSource.ts @@ -0,0 +1,122 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; + +import { AbstractBase } from '@pezkuwi/types-codec'; +import { isBigInt, isBn, isHex, isNumber, isU8a, u8aConcat, u8aToBn, u8aToHex, u8aToU8a } from '@pezkuwi/util'; +import { decodeAddress } from '@pezkuwi/util-crypto'; + +import { GenericAccountIndex } from '../generic/AccountIndex.js'; +import { GenericEthereumAccountId } from './AccountId.js'; + +// eslint-disable-next-line no-use-before-define +type AnyAddress = bigint | BN | GenericEthereumLookupSource | GenericEthereumAccountId | GenericAccountIndex | number[] | Uint8Array | number | string; + +export const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]); + +/** @internal */ +function decodeString (registry: Registry, value: string): GenericEthereumAccountId | GenericAccountIndex { + const decoded = decodeAddress(value); + + return decoded.length === 20 + ? registry.createTypeUnsafe('EthereumAccountId', [decoded]) + : registry.createTypeUnsafe('AccountIndex', [u8aToBn(decoded)]); +} + +/** @internal */ +function decodeU8a (registry: Registry, value: Uint8Array): GenericEthereumAccountId | GenericAccountIndex { + // This allows us to instantiate an address with a raw publicKey. Do this first before + // we checking the first byte, otherwise we may split an already-existent valid address + if (value.length === 20) { + return registry.createTypeUnsafe('EthereumAccountId', [value]); + } else if (value[0] === 0xff) { + return registry.createTypeUnsafe('EthereumAccountId', [value.subarray(1)]); + } + + const [offset, length] = GenericAccountIndex.readLength(value); + + return registry.createTypeUnsafe('AccountIndex', [u8aToBn(value.subarray(offset, offset + length))]); +} + +function decodeAddressOrIndex (registry: Registry, value: AnyAddress): GenericEthereumAccountId | GenericAccountIndex { + return value instanceof GenericEthereumLookupSource + ? value.inner + : value instanceof GenericEthereumAccountId || value instanceof GenericAccountIndex + ? value + : isU8a(value) || Array.isArray(value) || isHex(value) + ? decodeU8a(registry, u8aToU8a(value)) + : isBn(value) || isNumber(value) || isBigInt(value) + ? registry.createTypeUnsafe('AccountIndex', [value]) + : decodeString(registry, value); +} + +/** + * @name GenericEthereumLookupSource + * @description + * A wrapper around an EthereumAccountId and/or AccountIndex that is encoded with a prefix. + * Since we are dealing with underlying publicKeys (or shorter encoded addresses), + * we extend from Base with an AccountId/AccountIndex wrapper. Basically the Address + * is encoded as `[ , ...publicKey/...bytes ]` as per spec + */ +export class GenericEthereumLookupSource extends AbstractBase { + constructor (registry: Registry, value: AnyAddress = new Uint8Array()) { + super(registry, decodeAddressOrIndex(registry, value)); + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + const rawLength = this._rawLength; + + return rawLength + ( + // for 1 byte AccountIndexes, we are not adding a specific prefix + rawLength > 1 + ? 1 + : 0 + ); + } + + /** + * @description The length of the raw value, either AccountIndex or AccountId + */ + protected get _rawLength (): number { + return this.inner instanceof GenericAccountIndex + ? GenericAccountIndex.calcLength(this.inner) + : this.inner.encodedLength; + } + + /** + * @description Returns a hex string representation of the value + */ + public override toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Address'; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + const encoded = this.inner.toU8a().subarray(0, this._rawLength); + + return isBare + ? encoded + : u8aConcat( + this.inner instanceof GenericAccountIndex + ? GenericAccountIndex.writeLength(encoded) + : ACCOUNT_ID_PREFIX, + encoded + ); + } +} diff --git a/packages/types/src/ethereum/index.ts b/packages/types/src/ethereum/index.ts new file mode 100644 index 0000000..610fbe7 --- /dev/null +++ b/packages/types/src/ethereum/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { GenericEthereumAccountId } from './AccountId.js'; +export { GenericEthereumLookupSource } from './LookupSource.js'; diff --git a/packages/types/src/extrinsic/Extrinsic.spec.ts b/packages/types/src/extrinsic/Extrinsic.spec.ts new file mode 100644 index 0000000..393de1f --- /dev/null +++ b/packages/types/src/extrinsic/Extrinsic.spec.ts @@ -0,0 +1,111 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../create/index.js'; +import { Metadata } from '../metadata/index.js'; +import { fallbackExtensions } from './signedExtensions/index.js'; +import { GenericExtrinsic as Extrinsic } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +describe('Extrinsic', (): void => { + describe('V4', (): void => { + it('decodes an actual transaction', (): void => { + registry.setSignedExtensions(fallbackExtensions); + + const extrinsic = new Extrinsic( + registry, + '0x' + + '5d02' + // length + '84' + // V4, signing bit set + '00' + // MultiAddress, AccountId of sender follows + 'fcc4910cb536b4333db4bccb40e2cf6427b4766518e754b91e70c97e4a87dbb3' + // sender + '00' + // multisig, type ed25519 + 'd99ffe3e610ad234e1414bda5831395a6df9098bf80b01561ce89a5065ae89d5' + // sig first 32 + 'c10e1619c6c99131b0bea4fb73ef04d07c07770e2ae9df5c325c331769ccb300' + // sig last 32 + 'a90b' + // mortal era + '1101' + // nonce, compact 68 + '0700ac23fc06' + // tip, 0.03 KSM + '0600' + // balances.transferAllowDeath (on Zagros this was 0400, changed here to match metadata) + '00' + // MultiAddress, AccountId of recipient follows + '495e1e506f266418af07fa0c5c108dd436f2faa59fe7d9e54403779f5bbd7718' + // recipient + '0bc01eb1fc185f' // value, 104.560 KSM + ); + + expect(extrinsic.era.toHuman()).toEqual({ MortalEra: { period: '1,024', phase: '186' } }); + expect(extrinsic.nonce.toNumber()).toEqual(68); + expect(extrinsic.tip.toHuman()).toEqual('30.0000 mUnit'); + expect(extrinsic.callIndex).toEqual(new Uint8Array([6, 0])); + expect(extrinsic.args[0].toHex()).toEqual('0x00495e1e506f266418af07fa0c5c108dd436f2faa59fe7d9e54403779f5bbd7718'); + expect(extrinsic.args[1].toHuman()).toEqual('104,560,923,320,000'); // ('104.5609 Unit'); + expect(extrinsic.toPrimitive()).toEqual({ method: { args: { dest: { id: '5DiuK2zR4asj2CEh77SKtUgTswTLkD8eiAKrByg5G3wL5w9b' }, value: 104560923320000 }, callIndex: '0x0600' }, signature: { era: { mortalEra: [1024, 186] }, nonce: 68, signature: { ed25519: '0xd99ffe3e610ad234e1414bda5831395a6df9098bf80b01561ce89a5065ae89d5c10e1619c6c99131b0bea4fb73ef04d07c07770e2ae9df5c325c331769ccb300' }, signer: { id: '5Hn8KKEp8qruCGWaN9MEsjTs4FXB4wv9xn7g1RWkNeKKNXCr' }, tip: 30000000000 } }); + }); + }); + + describe('V5', () => { + // Ensure it does not have its registry modified by the fallback extensions. + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, rpcMetadata); + + registry.setMetadata(metadata); + + describe('SignedExtrinsic', () => { + it('Should error with a signed extrinsic, when the version is passed in', () => { + expect(() => new Extrinsic( + registry, + '0x51028500d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d011e0b7d9438899333c50121f8e10144952d51c3bb8d0ea11dd1f24940d8ff615ad351d95ed9f41f078748ed7cf182864a20b38eebfaef6629433365eb90c0148c007502000000000603008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480b00a0724e1809', + { version: 5 } + )).toThrow('Signed Extrinsics are currently only available for ExtrinsicV4'); + }); + + it('Should error when the version and preamble is not passed in, and its a signed extrinsic', () => { + expect(() => new Extrinsic( + registry, + '0x51028500d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d011e0b7d9438899333c50121f8e10144952d51c3bb8d0ea11dd1f24940d8ff615ad351d95ed9f41f078748ed7cf182864a20b38eebfaef6629433365eb90c0148c007502000000000603008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480b00a0724e1809' + )).toThrow('Signed Extrinsics are currently only available for ExtrinsicV4'); + }); + }); + + describe('GeneralExtrinsic', () => { + it('Should work when the version and preamble is passed in', () => { + const extrinsic = new Extrinsic( + registry, + '0xc44500650000000000060000d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0700e40b5402', + { preamble: 'general', version: 5 } + ); + + expect(extrinsic.version).toEqual(69); + // expect(extrinsic.transactionExtensionVersion.toNumber()).toEqual(0); + expect(extrinsic.method.toHuman()).toEqual({ args: { dest: { Id: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY' }, value: '10,000,000,000' }, method: 'transferAllowDeath', section: 'balances' }); + expect(extrinsic.era.toHuman()).toEqual({ MortalEra: { period: '64', phase: '6' } }); + expect(extrinsic.tip.toNumber()).toEqual(0); + expect(extrinsic.mode.toNumber()).toEqual(0); + expect(extrinsic.assetId.toHuman()).toEqual(null); + expect(extrinsic.nonce.toNumber()).toEqual(0); + }); + + it('Should work when there is no version and preamble is passed in', () => { + const extrinsic = new Extrinsic( + registry, + '0xc44500650000000000060000d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0700e40b5402' + ); + + expect(extrinsic.version).toEqual(69); + // expect(extrinsic.transactionExtensionVersion.toNumber()).toEqual(0); + expect(extrinsic.method.toHuman()).toEqual({ args: { dest: { Id: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY' }, value: '10,000,000,000' }, method: 'transferAllowDeath', section: 'balances' }); + expect(extrinsic.era.toHuman()).toEqual({ MortalEra: { period: '64', phase: '6' } }); + expect(extrinsic.tip.toNumber()).toEqual(0); + expect(extrinsic.mode.toNumber()).toEqual(0); + expect(extrinsic.assetId.toHuman()).toEqual(null); + expect(extrinsic.nonce.toNumber()).toEqual(0); + }); + }); + }); +}); diff --git a/packages/types/src/extrinsic/Extrinsic.ts b/packages/types/src/extrinsic/Extrinsic.ts new file mode 100644 index 0000000..0908c44 --- /dev/null +++ b/packages/types/src/extrinsic/Extrinsic.ts @@ -0,0 +1,461 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, AnyTuple, AnyU8a, ArgsDef, IMethod, Inspect, IOption } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { GeneralExtrinsic } from '../index.types.js'; +import type { EcdsaSignature, Ed25519Signature, ExtrinsicSignatureV5, ExtrinsicUnknown, ExtrinsicV5, Sr25519Signature } from '../interfaces/extrinsics/index.js'; +import type { FunctionMetadataLatest } from '../interfaces/metadata/index.js'; +import type { Address, Call, CodecHash, Hash } from '../interfaces/runtime/index.js'; +import type { MultiLocation } from '../interfaces/types.js'; +import type { CallBase, ExtrinsicPayloadValue, ICompact, IExtrinsic, IKeyringPair, INumber, Registry, SignatureOptions } from '../types/index.js'; +import type { GenericExtrinsicEra } from './ExtrinsicEra.js'; +import type { Preamble } from './types.js'; +import type { ExtrinsicValueV5 } from './v5/Extrinsic.js'; + +import { AbstractBase } from '@pezkuwi/types-codec'; +import { compactAddLength, compactFromU8a, compactToU8a, isHex, isU8a, objectProperty, objectSpread, u8aConcat, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { BARE_EXTRINSIC, BIT_SIGNED, BIT_UNSIGNED, DEFAULT_PREAMBLE, GENERAL_EXTRINSIC, LATEST_EXTRINSIC_VERSION, LOWEST_SUPPORTED_EXTRINSIC_FORMAT_VERSION, TYPE_MASK, VERSION_MASK } from './constants.js'; + +interface CreateOptions { + version?: number; + preamble?: Preamble; +} + +// NOTE The following 2 types, as well as the VERSION structure and the latest export +// is to be changed with the addition of a new extrinsic version + +type ExtrinsicVx = ExtrinsicV5 | GeneralExtrinsic; +type ExtrinsicValue = ExtrinsicValueV5; + +const VERSIONS = [ + 'ExtrinsicUnknown', // v0 is unknown + 'ExtrinsicUnknown', + 'ExtrinsicUnknown', + 'ExtrinsicUnknown', + 'ExtrinsicV4', + 'ExtrinsicV5' +]; + +const PREAMBLE = { + bare: 'ExtrinsicV5', + general: 'GeneralExtrinsic' +}; + +const PreambleMask = { + bare: BARE_EXTRINSIC, + general: GENERAL_EXTRINSIC +}; + +const preambleUnMask: Record = { + 0: 'bare', + // eslint-disable-next-line sort-keys + 64: 'general' +}; + +export { LATEST_EXTRINSIC_VERSION }; + +/** @internal */ +function newFromValue (registry: Registry, value: any, version: number, preamble: Preamble): ExtrinsicVx | ExtrinsicUnknown { + if (value instanceof GenericExtrinsic) { + return value.unwrap(); + } + + const isSigned = (version & BIT_SIGNED) === BIT_SIGNED; + const type = (version & VERSION_MASK) === 5 ? PREAMBLE[preamble] : VERSIONS[version & VERSION_MASK] || VERSIONS[0]; + + // we cast here since the VERSION definition is incredibly broad - we don't have a + // slice for "only add extrinsic types", and more string definitions become unwieldy + return registry.createTypeUnsafe(type, [value, { isSigned, version }]); +} + +/** @internal */ +function decodeExtrinsic (registry: Registry, value?: GenericExtrinsic | ExtrinsicValue | AnyU8a | Call, version: number = LOWEST_SUPPORTED_EXTRINSIC_FORMAT_VERSION, preamble: Preamble = DEFAULT_PREAMBLE): ExtrinsicVx | ExtrinsicUnknown { + if (isU8a(value) || Array.isArray(value) || isHex(value)) { + return decodeU8a(registry, u8aToU8a(value), version, preamble); + } else if (value instanceof registry.createClassUnsafe('Call')) { + return newFromValue(registry, { method: value }, version, preamble); + } + + return newFromValue(registry, value, version, preamble); +} + +/** @internal */ +function decodeU8a (registry: Registry, value: Uint8Array, version: number, preamble: Preamble): ExtrinsicVx | ExtrinsicUnknown { + if (!value.length) { + return newFromValue(registry, new Uint8Array(), version, preamble); + } + + const [offset, length] = compactFromU8a(value); + const total = offset + length.toNumber(); + + if (total > value.length) { + throw new Error(`Extrinsic: length less than remainder, expected at least ${total}, found ${value.length}`); + } + + const data = value.subarray(offset, total); + const unmaskedPreamble = data[0] & TYPE_MASK; + + if (preambleUnMask[`${unmaskedPreamble}`] === 'general') { + // NOTE: GeneralExtrinsic needs to have the full data to validate the preamble and version + return newFromValue(registry, value, data[0], preambleUnMask[`${unmaskedPreamble}`] || preamble); + } else { + return newFromValue(registry, data.subarray(1), data[0], preambleUnMask[`${unmaskedPreamble}`] || preamble); + } +} + +abstract class ExtrinsicBase extends AbstractBase { + readonly #preamble: Preamble; + + constructor (registry: Registry, value: ExtrinsicVx | ExtrinsicUnknown, initialU8aLength?: number, preamble?: Preamble) { + super(registry, value, initialU8aLength); + + const signKeys = Object.keys(registry.getSignedExtensionTypes()); + + if (this.version === 5 && preamble !== 'general') { + const getter = (key: string) => (this.inner.signature as unknown as ExtrinsicSignatureV5)[key as 'signer']; + + // This is on the abstract class, ensuring that hasOwnProperty operates + // correctly, i.e. it needs to be on the base class exposing it + for (let i = 0, count = signKeys.length; i < count; i++) { + objectProperty(this, signKeys[i], getter); + } + } + + const unmaskedPreamble = this.type & TYPE_MASK; + + this.#preamble = preamble || preambleUnMask[`${unmaskedPreamble}`]; + } + + public isGeneral () { + return this.#preamble === 'general'; + } + + /** + * @description The arguments passed to for the call, exposes args so it is compatible with [[Call]] + */ + public get args (): A { + return this.method.args; + } + + /** + * @description The argument definitions, compatible with [[Call]] + */ + public get argsDef (): ArgsDef { + return this.method.argsDef; + } + + /** + * @description The actual `[sectionIndex, methodIndex]` as used in the Call + */ + public get callIndex (): Uint8Array { + return this.method.callIndex; + } + + /** + * @description The actual data for the Call + */ + public get data (): Uint8Array { + return this.method.data; + } + + /** + * @description The era for this extrinsic + */ + public get era (): GenericExtrinsicEra { + return this.isGeneral() + ? (this.inner as unknown as GeneralExtrinsic).era + : (this.inner.signature as unknown as ExtrinsicSignatureV5).era; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description `true` id the extrinsic is signed + */ + public get isSigned (): boolean { + return this.isGeneral() + ? false + : (this.inner.signature as unknown as ExtrinsicSignatureV5).isSigned; + } + + /** + * @description The length of the actual data, excluding prefix + */ + public get length (): number { + return this.toU8a(true).length; + } + + /** + * @description The [[FunctionMetadataLatest]] that describes the extrinsic + */ + public get meta (): FunctionMetadataLatest { + return this.method.meta; + } + + /** + * @description The [[Call]] this extrinsic wraps + */ + public get method (): CallBase { + return this.inner.method as unknown as CallBase; + } + + /** + * @description The nonce for this extrinsic + */ + public get nonce (): ICompact { + return this.isGeneral() + ? (this.inner as unknown as GeneralExtrinsic).nonce + : (this.inner.signature as unknown as ExtrinsicSignatureV5).nonce; + } + + /** + * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]] + */ + public get signature (): EcdsaSignature | Ed25519Signature | Sr25519Signature { + if (this.isGeneral()) { + throw new Error('Extrinsic: GeneralExtrinsic does not have signature implemented'); + } + + return (this.inner.signature as unknown as ExtrinsicSignatureV5).signature; + } + + /** + * @description The [[Address]] that signed + */ + public get signer (): Address { + if (this.isGeneral()) { + throw new Error('Extrinsic: GeneralExtrinsic does not have signer implemented'); + } + + return (this.inner.signature as unknown as ExtrinsicSignatureV5).signer; + } + + /** + * @description Forwards compat + */ + public get tip (): ICompact { + return this.isGeneral() + ? (this.inner as unknown as GeneralExtrinsic).tip + : (this.inner.signature as unknown as ExtrinsicSignatureV5).tip; + } + + /** + * @description Forward compat + */ + public get assetId (): IOption { + return this.isGeneral() + ? (this.inner as unknown as GeneralExtrinsic).assetId + : (this.inner.signature as unknown as ExtrinsicSignatureV5).assetId; + } + + /** + * @description Forward compat + */ + public get metadataHash (): IOption { + return this.isGeneral() + ? (this.inner as unknown as GeneralExtrinsic).metadataHash + : (this.inner.signature as unknown as ExtrinsicSignatureV5).metadataHash; + } + + /** + * @description Forward compat + */ + public get mode (): INumber { + return this.isGeneral() + ? (this.inner as unknown as GeneralExtrinsic).mode + : (this.inner.signature as unknown as ExtrinsicSignatureV5).mode; + } + + /** + * @description Returns the raw transaction version (not flagged with signing information) + */ + public get type (): number { + return this.inner.version; + } + + public override get inner (): ExtrinsicVx { + return this.unwrap(); + } + + /** + * @description Returns the encoded version flag + */ + public get version (): number { + if (this.type <= LOWEST_SUPPORTED_EXTRINSIC_FORMAT_VERSION) { + return this.type | (this.isSigned ? BIT_SIGNED : BIT_UNSIGNED); + } else { + if (this.isSigned) { + throw new Error('Signed Extrinsics are currently only available for ExtrinsicV4'); + } + + return this.type | (this.isGeneral() ? PreambleMask.general : PreambleMask.bare); + } + } + + /** + * @description Checks if the source matches this in type + */ + public is (other: IMethod): other is IMethod { + return this.method.is(other); + } + + public override unwrap (): ExtrinsicVx { + return super.unwrap() as ExtrinsicVx; + } +} + +/** + * @name GenericExtrinsic + * @description + * Representation of an Extrinsic in the system. It contains the actual call, + * (optional) signature and encodes with an actual length prefix + * + * {@link https://github.com/pezkuwichain/wiki/blob/master/Extrinsic.md#the-extrinsic-format-for-node}. + * + * Can be: + * - signed, to create a transaction + * - left as is, to create an inherent + */ +export class GenericExtrinsic extends ExtrinsicBase implements IExtrinsic { + #hashCache?: CodecHash | undefined; + + static LATEST_EXTRINSIC_VERSION = LATEST_EXTRINSIC_VERSION; + + constructor (registry: Registry, value?: GenericExtrinsic | ExtrinsicValue | AnyU8a | Call, { preamble, version }: CreateOptions = {}) { + const versionsLength = registry.metadata.extrinsic.versions.length; + + // TODO: Once ExtrinsicV5 is fully supported update this to use the highest supported verion which is the last item of the array + const supportedVersion = versionsLength ? registry.metadata.extrinsic.versions[0] : undefined; + + super(registry, decodeExtrinsic(registry, value, version || supportedVersion, preamble), undefined, preamble); + } + + /** + * @description returns a hash of the contents + */ + public override get hash (): CodecHash { + if (!this.#hashCache) { + this.#hashCache = super.hash; + } + + return this.#hashCache; + } + + /** + * @description Injects an already-generated signature into the extrinsic + */ + public addSignature (signer: Address | Uint8Array | string, signature: Uint8Array | HexString, payload: ExtrinsicPayloadValue | Uint8Array | HexString): GenericExtrinsic { + this.inner.addSignature(signer, signature, payload); + this.#hashCache = undefined; + + return this; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + override inspect (): Inspect { + const encoded = u8aConcat(...this.toU8aInner()); + + return { + inner: this.isSigned + ? this.inner.inspect().inner + : this.inner.method.inspect().inner, + outer: [compactToU8a(encoded.length), new Uint8Array([this.version])] + }; + } + + /** + * @description Sign the extrinsic with a specific keypair + */ + public sign (account: IKeyringPair, options: SignatureOptions): GenericExtrinsic { + this.inner.sign(account, options); + this.#hashCache = undefined; + + return this; + } + + /** + * @describe Adds a fake signature to the extrinsic + */ + public signFake (signer: Address | Uint8Array | string, options: SignatureOptions): GenericExtrinsic { + this.inner.signFake(signer, options); + this.#hashCache = undefined; + + return this; + } + + /** + * @description Returns a hex string representation of the value + */ + public override toHex (isBare?: boolean): HexString { + return u8aToHex(this.toU8a(isBare)); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExpanded?: boolean, disableAscii?: boolean): AnyJson { + return objectSpread>( + {}, + { + isSigned: this.isSigned, + method: this.method.toHuman(isExpanded, disableAscii) + }, + this.isSigned + ? { + assetId: this.assetId ? this.assetId.toHuman(isExpanded, disableAscii) : null, + era: this.era.toHuman(isExpanded, disableAscii), + metadataHash: this.metadataHash ? this.metadataHash.toHex() : null, + mode: this.mode ? this.mode.toHuman() : null, + nonce: this.nonce.toHuman(isExpanded, disableAscii), + signature: this.signature.toHex(), + signer: this.signer.toHuman(isExpanded, disableAscii), + tip: this.tip.toHuman(isExpanded, disableAscii) + } + : null + ); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): string { + return this.toHex(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Extrinsic'; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value is not length-prefixed + */ + public override toU8a (isBare?: boolean): Uint8Array { + const encoded = u8aConcat(...this.toU8aInner()); + + return isBare + ? encoded + : compactAddLength(encoded); + } + + public toU8aInner (): Uint8Array[] { + // we do not apply bare to the internal values, rather this only determines out length addition, + // where we strip all lengths this creates an extrinsic that cannot be decoded + return [ + new Uint8Array([this.version]), + this.inner.toU8a() + ]; + } +} diff --git a/packages/types/src/extrinsic/ExtrinsicEra.spec.ts b/packages/types/src/extrinsic/ExtrinsicEra.spec.ts new file mode 100644 index 0000000..2961945 --- /dev/null +++ b/packages/types/src/extrinsic/ExtrinsicEra.spec.ts @@ -0,0 +1,87 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; +import { GenericExtrinsicEra as ExtrinsicEra } from './index.js'; + +describe('ExtrinsicEra', (): void => { + const registry = new TypeRegistry(); + + it('decodes an Extrinsic Era with immortal', (): void => { + const extrinsicEra = new ExtrinsicEra(registry, new Uint8Array([0])); + + expect(extrinsicEra.asImmortalEra).toBeDefined(); + expect(extrinsicEra.toJSON()).toEqual({ immortalEra: '0x00' }); + }); + + it('decodes an Extrinsic Era from u8 as mortal', (): void => { + const extrinsicEra = new ExtrinsicEra(registry, new Uint8Array([78, 156])); + + expect(extrinsicEra.asMortalEra.period.toNumber()).toEqual(32768); + expect(extrinsicEra.asMortalEra.phase.toNumber()).toEqual(20000); + }); + + it('decoded from an existing ExtrinsicEra', (): void => { + const extrinsicEra = new ExtrinsicEra(registry, new ExtrinsicEra(registry, new Uint8Array([78, 156]))); + + expect(extrinsicEra.asMortalEra.period.toNumber()).toEqual(32768); + expect(extrinsicEra.asMortalEra.phase.toNumber()).toEqual(20000); + }); + + it('encode an Extrinsic Era from Object with blocknumber & period as mortal instance', (): void => { + const extrinsicEra = new ExtrinsicEra(registry, { current: 1400, period: 200 }); + + expect(extrinsicEra.asMortalEra.period.toNumber()).toEqual(256); + expect(extrinsicEra.asMortalEra.phase.toNumber()).toEqual(120); + }); + + it('serializes and de-serializes from JSON', (): void => { + const extrinsicEra = new ExtrinsicEra(registry, new Uint8Array([78, 156])); + const u8a = extrinsicEra.toU8a(); + const json = extrinsicEra.toJSON(); + + expect(u8a).toEqual(new Uint8Array([78, 156])); + expect(json).toEqual({ mortalEra: '0x4e9c' }); + expect(new ExtrinsicEra(registry, json).toU8a()).toEqual(u8a); + }); + + it('creates from an actual valid era', (): void => { + const currBlock = 2251519; + const mortalEra = new ExtrinsicEra(registry, '0xc503').asMortalEra; + + expect(mortalEra.period.toNumber()).toEqual(64); + expect(mortalEra.phase.toNumber()).toEqual(60); + expect(mortalEra.birth(currBlock)).toEqual(2251516); + expect(mortalEra.death(currBlock)).toEqual(2251580); + }); + + it('creates for an actual era (2)', (): void => { + const mortalEra = new ExtrinsicEra(registry, '0x8502').asMortalEra; + + expect(mortalEra.period.toNumber()).toEqual(64); + expect(mortalEra.phase.toNumber()).toEqual(40); + }); + + it('creates form an actual era (3)', (): void => { + const mortalEra = new ExtrinsicEra(registry, '0x6502').asMortalEra; + + expect(mortalEra.period.toNumber()).toEqual(64); + expect(mortalEra.phase.toNumber()).toEqual(38); + }); + + it('creates from an actual era, 100 block hash count', (): void => { + const mortalEra = new ExtrinsicEra(registry, '0xd607').asMortalEra; + + expect(mortalEra.period.toNumber()).toEqual(128); + expect(mortalEra.phase.toNumber()).toEqual(125); + }); + + it('creates from a actual 2400 block hash count', (): void => { + const mortalEra = new ExtrinsicEra(registry, '0x9be3').asMortalEra; + + expect(mortalEra.period.toNumber()).toEqual(4096); + expect(mortalEra.phase.toNumber()).toEqual(3641); + }); +}); diff --git a/packages/types/src/extrinsic/ExtrinsicEra.ts b/packages/types/src/extrinsic/ExtrinsicEra.ts new file mode 100644 index 0000000..f10a1e0 --- /dev/null +++ b/packages/types/src/extrinsic/ExtrinsicEra.ts @@ -0,0 +1,299 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyU8a, Registry } from '@pezkuwi/types-codec/types'; +import type { BN } from '@pezkuwi/util'; +import type { IExtrinsicEra, INumber } from '../types/index.js'; + +import { Enum, Raw, Tuple, U64 } from '@pezkuwi/types-codec'; +import { bnToBn, formatNumber, hexToU8a, isHex, isObject, isU8a, u8aToBn, u8aToU8a } from '@pezkuwi/util'; + +import { IMMORTAL_ERA } from './constants.js'; + +type MortalEraValue = [INumber, INumber]; + +interface MortalMethod { + current: number; + period: number; +} + +interface MortalEnumDef { + MortalEra: string; +} + +interface ImmortalEnumDef { + ImmortalEra: string; +} + +function getTrailingZeros (period: number): number { + const binary = period.toString(2); + let index = 0; + + while (binary[binary.length - 1 - index] === '0') { + index++; + } + + return index; +} + +/** @internal */ +function decodeMortalEra (registry: Registry, value?: MortalMethod | Uint8Array | number[] | string): MortalEraValue { + if (isU8a(value) || isHex(value) || Array.isArray(value)) { + return decodeMortalU8a(registry, u8aToU8a(value)); + } else if (!value) { + return [new U64(registry), new U64(registry)]; + } else if (isObject(value)) { + return decodeMortalObject(registry, value); + } + + throw new Error('Invalid data passed to Mortal era'); +} + +/** @internal */ +function decodeMortalObject (registry: Registry, value: MortalMethod): MortalEraValue { + const { current, period } = value; + let calPeriod = Math.pow(2, Math.ceil(Math.log2(period))); + + calPeriod = Math.min(Math.max(calPeriod, 4), 1 << 16); + + const phase = current % calPeriod; + const quantizeFactor = Math.max(calPeriod >> 12, 1); + const quantizedPhase = phase / quantizeFactor * quantizeFactor; + + return [new U64(registry, calPeriod), new U64(registry, quantizedPhase)]; +} + +/** @internal */ +function decodeMortalU8a (registry: Registry, value: Uint8Array): MortalEraValue { + if (value.length === 0) { + return [new U64(registry), new U64(registry)]; + } + + const first = u8aToBn(value.subarray(0, 1)).toNumber(); + const second = u8aToBn(value.subarray(1, 2)).toNumber(); + const encoded: number = first + (second << 8); + const period = 2 << (encoded % (1 << 4)); + const quantizeFactor = Math.max(period >> 12, 1); + const phase = (encoded >> 4) * quantizeFactor; + + if (period < 4 || phase >= period) { + throw new Error('Invalid data passed to Mortal era'); + } + + return [new U64(registry, period), new U64(registry, phase)]; +} + +/** @internal */ +// eslint-disable-next-line @typescript-eslint/ban-types +function decodeExtrinsicEra (value: IExtrinsicEra | MortalMethod | MortalEnumDef | ImmortalEnumDef | Uint8Array | string = new Uint8Array()): Uint8Array | Object | undefined { + if (isU8a(value)) { + return (!value.length || value[0] === 0) + ? new Uint8Array([0]) + : new Uint8Array([1, value[0], value[1]]); + } else if (!value) { + return new Uint8Array([0]); + } else if (value instanceof GenericExtrinsicEra) { + return decodeExtrinsicEra(value.toU8a()); + } else if (isHex(value)) { + return decodeExtrinsicEra(hexToU8a(value)); + } else if (isObject(value)) { + const entries = Object.entries(value as MortalEnumDef).map(([k, v]): [string, any] => [k.toLowerCase(), v]); + const mortal = entries.find(([k]) => k.toLowerCase() === 'mortalera'); + const immortal = entries.find(([k]) => k.toLowerCase() === 'immortalera'); + + // this is to de-serialize from JSON + return mortal + ? { MortalEra: mortal[1] as string } + : immortal + ? { ImmortalEra: immortal[1] as string } + : { MortalEra: value }; + } + + throw new Error('Invalid data passed to Era'); +} + +/** + * @name ImmortalEra + * @description + * The ImmortalEra for an extrinsic + */ +export class ImmortalEra extends Raw { + constructor (registry: Registry, _value?: AnyU8a) { + // For immortals, we always provide the known value (i.e. treated as a + // constant no matter how it is constructed - it is a fixed structure) + super(registry, IMMORTAL_ERA); + } +} + +/** + * @name MortalEra + * @description + * The MortalEra for an extrinsic, indicating period and phase + */ +export class MortalEra extends Tuple { + constructor (registry: Registry, value?: MortalMethod | Uint8Array | number[] | string) { + super(registry, { + period: U64, + phase: U64 + }, decodeMortalEra(registry, value)); + } + + /** + * @description Encoded length for mortals occupy 2 bytes, different from the actual Tuple since it is encoded. This is a shortcut fro `toU8a().length` + */ + public override get encodedLength (): number { + return 2 | 0; + } + + /** + * @description The period of this Mortal wraps as a [[U64]] + */ + public get period (): INumber { + return this[0] as INumber; + } + + /** + * @description The phase of this Mortal wraps as a [[U64]] + */ + public get phase (): INumber { + return this[1] as INumber; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (): any { + return { + period: formatNumber(this.period), + phase: formatNumber(this.phase) + }; + } + + /** + * @description Returns a JSON representation of the actual value + */ + public override toJSON (): any { + return this.toHex(); + } + + /** + * @description Encodes the value as a Uint8Array as per the parity-codec specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + * Period and phase are encoded: + * - The period of validity from the block hash found in the signing material. + * - The phase in the period that this transaction's lifetime begins (and, importantly, + * implies which block hash is included in the signature material). If the `period` is + * greater than 1 << 12, then it will be a factor of the times greater than 1<<12 that + * `period` is. + */ + public override toU8a (_isBare?: boolean): Uint8Array { + const period = this.period.toNumber(); + const encoded = Math.min( + 15, + Math.max(1, getTrailingZeros(period) - 1) + ) + ( + ( + this.phase.toNumber() / Math.max(period >> 12, 1) + ) << 4 + ); + + return new Uint8Array([ + encoded & 0xff, + encoded >> 8 + ]); + } + + /** + * @description Get the block number of the start of the era whose properties this object describes that `current` belongs to. + */ + public birth (current: BN | bigint | number | string): number { + const phase = this.phase.toNumber(); + const period = this.period.toNumber(); + + // FIXME No toNumber() here + return ( + ~~( + ( + Math.max(bnToBn(current).toNumber(), phase) - phase + ) / period + ) * period + ) + phase; + } + + /** + * @description Get the block number of the first block at which the era has ended. + */ + public death (current: BN | bigint | number | string): number { + // FIXME No toNumber() here + return this.birth(current) + this.period.toNumber(); + } +} + +/** + * @name GenericExtrinsicEra + * @description + * The era for an extrinsic, indicating either a mortal or immortal extrinsic + */ +export class GenericExtrinsicEra extends Enum implements IExtrinsicEra { + constructor (registry: Registry, value?: unknown) { + super(registry, { + ImmortalEra, + MortalEra + }, decodeExtrinsicEra(value as string)); + } + + /** + * @description Override the encoded length method + */ + public override get encodedLength (): number { + return this.isImmortalEra + ? this.asImmortalEra.encodedLength + : this.asMortalEra.encodedLength; + } + + /** + * @description Returns the item as a [[ImmortalEra]] + */ + public get asImmortalEra (): ImmortalEra { + if (!this.isImmortalEra) { + throw new Error(`Cannot convert '${this.type}' via asImmortalEra`); + } + + return this.inner as ImmortalEra; + } + + /** + * @description Returns the item as a [[MortalEra]] + */ + public get asMortalEra (): MortalEra { + if (!this.isMortalEra) { + throw new Error(`Cannot convert '${this.type}' via asMortalEra`); + } + + return this.inner as MortalEra; + } + + /** + * @description `true` if Immortal + */ + public get isImmortalEra (): boolean { + return this.index === 0; + } + + /** + * @description `true` if Mortal + */ + public get isMortalEra (): boolean { + return this.index > 0; + } + + /** + * @description Encodes the value as a Uint8Array as per the parity-codec specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + return this.isMortalEra + ? this.asMortalEra.toU8a(isBare) + : this.asImmortalEra.toU8a(isBare); + } +} diff --git a/packages/types/src/extrinsic/ExtrinsicPayload.spec.ts b/packages/types/src/extrinsic/ExtrinsicPayload.spec.ts new file mode 100644 index 0000000..a9388f4 --- /dev/null +++ b/packages/types/src/extrinsic/ExtrinsicPayload.spec.ts @@ -0,0 +1,116 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { u8aToHex } from '@pezkuwi/util'; + +import { TypeRegistry } from '../create/index.js'; +import { fallbackExtensions } from './signedExtensions/index.js'; +import { GenericExtrinsicPayload as ExtrinsicPayload } from './index.js'; + +describe('ExtrinsicPayload', (): void => { + const registry = new TypeRegistry(); + const TEST = { + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + era: '0x0703', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + method: '0x0600ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c', + nonce: '0x00001234', + specVersion: 123, + tip: '0x00000000000000000000000000005678' + }; + + const TEST_WITH_ASSET = { + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + assetId: '0x010002043205011f' as `0x${string}`, + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + era: '0x0703', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + method: '0x0600ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c', + nonce: '0x00001234', + specVersion: 123, + tip: '0x00000000000000000000000000005678' + }; + + it('creates and can re-create from itself (U8a)', (): void => { + const a = new ExtrinsicPayload(registry, TEST, { version: 4 }); + const b = new ExtrinsicPayload(registry, a.toU8a(), { version: 4 }); + + expect(a.inspect()).toEqual(b.inspect()); + expect(a.toJSON()).toEqual(b.toJSON()); + }); + + it('creates and can re-create from itself (hex)', (): void => { + const a = new ExtrinsicPayload(registry, TEST, { version: 4 }); + const b = new ExtrinsicPayload(registry, a.toHex(), { version: 4 }); + + expect(a.inspect()).toEqual(b.inspect()); + expect(a.toJSON()).toEqual(b.toJSON()); + }); + + it('handles assetId correctly', () => { + const reg = new TypeRegistry(); + + reg.setSignedExtensions(fallbackExtensions.concat(['ChargeAssetTxPayment'])); + const ext = new ExtrinsicPayload(reg, TEST_WITH_ASSET, { version: 4 }); + // remove option byte + const ext2 = new ExtrinsicPayload(reg, { ...TEST_WITH_ASSET, assetId: `0x${TEST_WITH_ASSET.assetId.slice(4)}` }, { version: 4 }); + + expect(ext.assetId.toJSON()).toEqual({ + interior: { + x2: [ + { + palletInstance: 50 + }, + { + generalIndex: 1984 + } + ] + }, + parents: 0 + }); + expect(ext.assetId.toJSON()).toEqual(ext2.assetId.toJSON()); + }); + + it('handles toU8a(true) correctly', (): void => { + expect( + u8aToHex( + new ExtrinsicPayload(registry, TEST, { version: 4 }).toU8a(true) + ) + ).toEqual( + // no method length prefix + '0x0600ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c0703d148e25901007b000000dcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025bde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7' + ); + }); + + it('handles toU8a(false) correctly', (): void => { + expect( + u8aToHex( + new ExtrinsicPayload(registry, TEST, { version: 4 }).toU8a() + ) + ).toEqual( + // with method length prefix + '0x940600ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c0703d148e25901007b000000dcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025bde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7' + ); + }); + + it('has a sane inspect of an empty value', (): void => { + const reg = new TypeRegistry(); + + reg.setSignedExtensions(fallbackExtensions.concat(['ChargeAssetTxPayment'])); + expect(new ExtrinsicPayload(reg, undefined).inspect()).toEqual({ + inner: [ + { name: 'method', outer: [new Uint8Array()] }, + { inner: undefined, name: 'era', outer: [new Uint8Array([0]), new Uint8Array([0])] }, + { name: 'nonce', outer: [new Uint8Array([0])] }, + { name: 'tip', outer: [new Uint8Array([0])] }, + { name: 'assetId', outer: [new Uint8Array([0])] }, + { name: 'specVersion', outer: [new Uint8Array([0, 0, 0, 0])] }, + { name: 'genesisHash', outer: [new Uint8Array(32)] }, + { name: 'blockHash', outer: [new Uint8Array(32)] } + ] + }); + }); +}); diff --git a/packages/types/src/extrinsic/ExtrinsicPayload.ts b/packages/types/src/extrinsic/ExtrinsicPayload.ts new file mode 100644 index 0000000..bd036a7 --- /dev/null +++ b/packages/types/src/extrinsic/ExtrinsicPayload.ts @@ -0,0 +1,223 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes } from '@pezkuwi/types-codec'; +import type { AnyJson, BareOpts, Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { BlockHash } from '../interfaces/chain/index.js'; +import type { ExtrinsicPayloadV5 } from '../interfaces/extrinsics/index.js'; +import type { Hash, MultiLocation } from '../interfaces/types.js'; +import type { ExtrinsicPayloadValue, ICompact, IKeyringPair, INumber, IOption } from '../types/index.js'; +import type { GenericExtrinsicEra } from './ExtrinsicEra.js'; +import type { Preamble } from './types.js'; + +import { AbstractBase } from '@pezkuwi/types-codec'; +import { hexToU8a, isHex, u8aToHex } from '@pezkuwi/util'; + +import { DEFAULT_PREAMBLE, LATEST_EXTRINSIC_VERSION } from './constants.js'; + +interface ExtrinsicPayloadOptions { + version?: number; + preamble?: Preamble; +} + +// all our known types that can be returned +type ExtrinsicPayloadVx = ExtrinsicPayloadV5; + +const VERSIONS = [ + 'ExtrinsicPayloadUnknown', // v0 is unknown + 'ExtrinsicPayloadUnknown', + 'ExtrinsicPayloadUnknown', + 'ExtrinsicPayloadUnknown', + 'ExtrinsicPayloadV4', + 'ExtrinsicPayloadV5' +]; + +const PREAMBLES = { + bare: 'ExtrinsicPayloadV5', + // Not supported yet + general: 'ExtrinsicPayloadV5' +}; + +/** + * HACK: In order to change the assetId from `number | object` to HexString (While maintaining the true type ie Option), + * to allow for easier generalization of the SignerPayloadJSON interface the below check is necessary. The ExtrinsicPayloadV4 class does not like + * a value passed in as an Option, and can't decode it properly. Therefore, we ensure to convert the following below, and then pass the option as a unwrapped + * JSON value. + * + * ref: https://github.com/pezkuwichain/pezkuwi-api/pull/5968 + * ref: https://github.com/pezkuwichain/pezkuwi-api/pull/5967 + */ +export function decodeAssetId (registry: Registry, payload?: ExtrinsicPayloadValue | Uint8Array | HexString) { + const maybeAsset = (payload as ExtrinsicPayloadValue)?.assetId; + + if (maybeAsset && isHex(maybeAsset)) { + const assetId = registry.createType('TAssetConversion', hexToU8a(maybeAsset)); + + // we only want to adjust the payload if the hex passed has the option + if (maybeAsset === '0x00' || maybeAsset === '0x01' + assetId.toHex().slice(2)) { + return { + ...(payload as ExtrinsicPayloadValue), + assetId: assetId.toJSON() + }; + } + } + + return payload; +} + +/** @internal */ +function decodeExtrinsicPayload (registry: Registry, value?: GenericExtrinsicPayload | ExtrinsicPayloadValue | Uint8Array | string, version = LATEST_EXTRINSIC_VERSION, preamble: Preamble = DEFAULT_PREAMBLE): ExtrinsicPayloadVx { + if (value instanceof GenericExtrinsicPayload) { + return value.unwrap(); + } + + const extVersion = version === 5 ? PREAMBLES[preamble] : VERSIONS[version] || VERSIONS[0]; + const payload = decodeAssetId(registry, value as ExtrinsicPayloadValue); + + return registry.createTypeUnsafe(extVersion, [payload, { version }]); +} + +/** + * @name GenericExtrinsicPayload + * @description + * A signing payload for an [[Extrinsic]]. For the final encoding, it is variable length based + * on the contents included + */ +export class GenericExtrinsicPayload extends AbstractBase { + constructor (registry: Registry, value?: Partial | Uint8Array | string, { preamble, version }: ExtrinsicPayloadOptions = {}) { + super(registry, decodeExtrinsicPayload(registry, value as ExtrinsicPayloadValue, version, preamble)); + } + + /** + * @description The block [[BlockHash]] the signature applies to (mortal/immortal) + */ + public get blockHash (): BlockHash { + return this.inner.blockHash; + } + + /** + * @description The [[ExtrinsicEra]] + */ + public get era (): GenericExtrinsicEra { + return this.inner.era; + } + + /** + * @description The genesis block [[BlockHash]] the signature applies to + */ + public get genesisHash (): BlockHash { + // NOTE only v3+ + return this.inner.genesisHash || this.registry.createTypeUnsafe('Hash', []); + } + + /** + * @description The [[Bytes]] contained in the payload + */ + public get method (): Bytes { + return this.inner.method; + } + + /** + * @description The [[Index]] + */ + public get nonce (): ICompact { + return this.inner.nonce; + } + + /** + * @description The specVersion as a [[u32]] for this payload + */ + public get specVersion (): INumber { + // NOTE only v3+ + return this.inner.specVersion || this.registry.createTypeUnsafe('u32', []); + } + + /** + * @description The [[Balance]] + */ + public get tip (): ICompact { + // NOTE from v2+ + return this.inner.tip || this.registry.createTypeUnsafe('Compact', []); + } + + /** + * @description The transaction version as a [[u32]] for this payload + */ + public get transactionVersion (): INumber { + // NOTE only v4+ + return this.inner.transactionVersion || this.registry.createTypeUnsafe('u32', []); + } + + /** + * @description The (optional) asset id as a [[u32]] or [[MultiLocation]] for this payload + */ + public get assetId (): IOption { + return this.inner.assetId; + } + + /** + * @description The (optional) [[Hash]] of the genesis metadata for this payload + */ + public get metadataHash (): IOption { + return this.inner.metadataHash; + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public override eq (other?: unknown): boolean { + return this.inner.eq(other); + } + + /** + * @description Sign the payload with the keypair + */ + public sign (signerPair: IKeyringPair): { signature: HexString } { + const signature = this.inner.sign(signerPair); + + // This is extensible, so we could quite readily extend to send back extra + // information, such as for instance the payload, i.e. `payload: this.toHex()` + // For the case here we sign via the extrinsic, we ignore the return, so generally + // this is applicable for external signing + return { + signature: u8aToHex(signature) + }; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.inner.toHuman(isExtended, disableAscii); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): any { + return this.toHex(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public toRawType (): string { + return 'ExtrinsicPayload'; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return this.toHex(); + } + + /** + * @description Returns a serialized u8a form + */ + public override toU8a (isBare?: BareOpts): Uint8Array { + // call our parent, with only the method stripped + return super.toU8a(isBare ? { method: true } : false); + } +} diff --git a/packages/types/src/extrinsic/ExtrinsicPayloadUnknown.ts b/packages/types/src/extrinsic/ExtrinsicPayloadUnknown.ts new file mode 100644 index 0000000..24fd648 --- /dev/null +++ b/packages/types/src/extrinsic/ExtrinsicPayloadUnknown.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { ExtrinsicPayloadOptions } from './types.js'; + +import { Struct } from '@pezkuwi/types-codec'; + +/** + * @name GenericExtrinsicPayloadUnknown + * @description + * A default handler for payloads where the version is not known (default throw) + */ +export class GenericExtrinsicPayloadUnknown extends Struct { + constructor (registry: Registry, _value?: unknown, { version = 0 }: Partial = {}) { + super(registry, {}); + + throw new Error(`Unsupported extrinsic payload version ${version}`); + } +} diff --git a/packages/types/src/extrinsic/ExtrinsicUnknown.ts b/packages/types/src/extrinsic/ExtrinsicUnknown.ts new file mode 100644 index 0000000..8c68499 --- /dev/null +++ b/packages/types/src/extrinsic/ExtrinsicUnknown.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { ExtrinsicOptions } from './types.js'; + +import { Struct } from '@pezkuwi/types-codec'; + +import { UNMASK_VERSION } from './constants.js'; + +/** + * @name GenericExtrinsicUnknown + * @description + * A default handler for extrinsics where the version is not known (default throw) + */ +export class GenericExtrinsicUnknown extends Struct { + constructor (registry: Registry, _value?: unknown, { isSigned = false, version = 0 }: Partial = {}) { + super(registry, {}); + + throw new Error(`Unsupported ${isSigned ? '' : 'un'}signed extrinsic version ${version & UNMASK_VERSION}`); + } +} diff --git a/packages/types/src/extrinsic/SignerPayload.spec.ts b/packages/types/src/extrinsic/SignerPayload.spec.ts new file mode 100644 index 0000000..05d6e7e --- /dev/null +++ b/packages/types/src/extrinsic/SignerPayload.spec.ts @@ -0,0 +1,189 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { u8aToHex } from '@pezkuwi/util'; + +import { TypeRegistry } from '../create/index.js'; +import { Metadata } from '../metadata/index.js'; +import { GenericSignerPayload as SignerPayload } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +describe('SignerPayload', (): void => { + const TEST = { + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + // eslint-disable-next-line sort-keys + assetId: '0x0002043205ed01', + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + blockNumber: '0x00231d30', + era: '0x0703', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + metadataHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + method: '0x060000d7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c', + mode: 1, + nonce: '0x00001234', + signedExtensions: ['CheckNonce', 'CheckWeight'], + specVersion: '0x00000006', + tip: '0x00000000000000000000000000005678', + transactionVersion: '0x00000007', + version: 4, + withSignedTransaction: false + }; + + const TEST_WITH_ASSETID_HEX = { + ...TEST, + assetId: '0x010002043205ed01' + }; + + it('creates a valid JSON output', (): void => { + expect( + new SignerPayload(registry, { + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + // eslint-disable-next-line sort-keys + assetId: { parents: 0, interior: { x2: [{ palletInstance: 50 }, { generalIndex: 123 }] } }, + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + blockNumber: '0x231d30', + era: registry.createType('ExtrinsicEra', { current: 2301232, period: 200 }), + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + metadataHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + method: registry.createType('Call', '0x060000d7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c'), + mode: 1, + nonce: 0x1234, + signedExtensions: ['CheckNonce'], + tip: 0x5678, + version: 4, + withSignedTransaction: true + }).toPayload() + ).toEqual({ + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + // eslint-disable-next-line sort-keys + assetId: '0x010002043205ed01', + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + blockNumber: '0x00231d30', + era: '0x0703', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + metadataHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + method: '0x060000d7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c', + mode: 1, + nonce: '0x00001234', + signedExtensions: ['CheckNonce'], + specVersion: '0x00000000', + tip: '0x00000000000000000000000000005678', + transactionVersion: '0x00000000', + version: 4, + withSignedTransaction: true + }); + }); + + it('handles Option correctly', (): void => { + const test = new SignerPayload(registry, { + // eslint-disable-next-line sort-keys + assetId: { parents: 0, interior: { x2: [{ palletInstance: 50 }, { generalIndex: 123 }] } } + }); + + expect( + [...test.keys()].includes('assetId') + ).toEqual(true); + + expect( + test.toPayload().assetId + // eslint-disable-next-line sort-keys + ).toEqual('0x010002043205ed01'); + + expect( + new SignerPayload(registry, { assetId: 0 }).toPayload().assetId + // eslint-disable-next-line sort-keys + ).toEqual('0x010000'); + }); + + it('re-constructs from JSON', (): void => { + expect( + new SignerPayload(registry, { + ...TEST, + runtimeVersion: { specVersion: 0x06, transactionVersion: 0x07 } + }).toPayload() + ).toEqual(TEST_WITH_ASSETID_HEX); + }); + + it('re-constructs from itself', (): void => { + expect( + new SignerPayload( + registry, + new SignerPayload(registry, { + ...TEST, + runtimeVersion: { specVersion: 0x06, transactionVersion: 0x07 } + }) + ).toPayload() + ).toEqual(TEST_WITH_ASSETID_HEX); + }); + + it('can be used as a feed to ExtrinsicPayload', (): void => { + const signer = new SignerPayload(registry, { + ...TEST + }).toPayload(); + const payload = registry.createType('ExtrinsicPayload', signer, { version: signer.version }); + + expect(payload.era.toHex()).toEqual(TEST.era); + expect(payload.method.toHex()).toEqual(TEST.method); + expect(payload.blockHash.toHex()).toEqual(TEST.blockHash); + expect(payload.nonce.eq(TEST.nonce)).toBe(true); + expect(payload.tip.eq(TEST.tip)).toBe(true); + expect(u8aToHex(payload.assetId?.toU8a())) + .toEqual(u8aToHex(registry.createType('Option', { + // eslint-disable-next-line sort-keys + parents: 0, interior: { X2: [{ palletInstance: 50 }, { generalIndex: 123 }] } + }).toU8a())); + }); + + const TEST_WITHOUT_CHECK = { + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + blockNumber: '0x00231d30', + era: '0x0703', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + method: '0x060000d7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c', + nonce: '0x00001234', + signedExtensions: [], + specVersion: '0x00000006', + tip: '0x00000000000000000000000000005678', + transactionVersion: '0x00000007', + version: 4 + }; + + const PAYLOAD_WITHOUT_CHECK = { + address: '5DTestUPts3kjeXSTMyerHihn1uwMfLj8vU8sqF7qYrFabHE', + assetId: null, + blockHash: '0xde8f69eeb5e065e18c6950ff708d7e551f68dc9bf59a07c52367c0280f805ec7', + blockNumber: '0x00231d30', + era: '0x0703', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + metadataHash: null, + method: '0x060000d7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9e56c', + mode: 0, + nonce: '0x00001234', + signedExtensions: [], + specVersion: '0x00000006', + tip: '0x00000000000000000000000000005678', + transactionVersion: '0x00000007', + version: 4, + withSignedTransaction: false + }; + + it('can build SignerPayload without additional SignedExtensions', (): void => { + expect( + new SignerPayload( + registry, + { + ...TEST_WITHOUT_CHECK, + runtimeVersion: { specVersion: 0x06, transactionVersion: 0x07 } + } + ).toPayload() + ).toEqual(PAYLOAD_WITHOUT_CHECK); + }); +}); diff --git a/packages/types/src/extrinsic/SignerPayload.ts b/packages/types/src/extrinsic/SignerPayload.ts new file mode 100644 index 0000000..909e3c7 --- /dev/null +++ b/packages/types/src/extrinsic/SignerPayload.ts @@ -0,0 +1,198 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { bool, Text, Vec } from '@pezkuwi/types-codec'; +import type { AnyJson, Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { Address, BlockHash, Call, ExtrinsicEra, Hash, MultiLocation } from '../interfaces/index.js'; +import type { Codec, ICompact, INumber, IOption, IRuntimeVersion, ISignerPayload, SignerPayloadJSON, SignerPayloadRaw } from '../types/index.js'; + +import { Option, Struct } from '@pezkuwi/types-codec'; +import { objectProperty, objectSpread, u8aToHex } from '@pezkuwi/util'; + +export interface SignerPayloadType extends Codec { + address: Address; + assetId: IOption; + blockHash: Hash; + blockNumber: INumber; + era: ExtrinsicEra; + genesisHash: Hash; + metadataHash: IOption; + method: Call; + mode: INumber; + nonce: ICompact; + runtimeVersion: IRuntimeVersion; + signedExtensions: Vec; + tip: ICompact; + version: INumber; +} + +const knownTypes: Record = { + address: 'Address', + assetId: 'Option', + blockHash: 'Hash', + blockNumber: 'BlockNumber', + era: 'ExtrinsicEra', + genesisHash: 'Hash', + metadataHash: 'Option<[u8;32]>', + method: 'Call', + mode: 'u8', + nonce: 'Compact', + runtimeVersion: 'RuntimeVersion', + signedExtensions: 'Vec', + tip: 'Compact', + version: 'u8' +}; + +/** + * @name GenericSignerPayload + * @description + * A generic signer payload that can be used for serialization between API and signer + */ +export class GenericSignerPayload extends Struct implements ISignerPayload, SignerPayloadType { + readonly #extraTypes: Record; + + constructor (registry: Registry, value?: HexString | Record | Map | unknown[]) { + const extensionTypes = objectSpread>({}, registry.getSignedExtensionTypes(), registry.getSignedExtensionExtra()); + + super(registry, objectSpread>({}, extensionTypes, knownTypes, { withSignedTransaction: 'bool' }), value); + + this.#extraTypes = {}; + const getter = (key: string) => this.get(key); + + // add all extras that are not in the base types + for (const [key, type] of Object.entries(extensionTypes)) { + if (!knownTypes[key]) { + this.#extraTypes[key] = type; + } + + objectProperty(this, key, getter); + } + } + + get address (): Address { + return this.getT('address'); + } + + get blockHash (): BlockHash { + return this.getT('blockHash'); + } + + get blockNumber (): INumber { + return this.getT('blockNumber'); + } + + get era (): ExtrinsicEra { + return this.getT('era'); + } + + get genesisHash (): BlockHash { + return this.getT('genesisHash'); + } + + get method (): Call { + return this.getT('method'); + } + + get nonce (): ICompact { + return this.getT('nonce'); + } + + get runtimeVersion (): IRuntimeVersion { + return this.getT('runtimeVersion'); + } + + get signedExtensions (): Vec { + return this.getT('signedExtensions'); + } + + get tip (): ICompact { + return this.getT('tip'); + } + + get assetId (): IOption { + return this.getT('assetId'); + } + + get version (): INumber { + return this.getT('version'); + } + + get mode (): INumber { + return this.getT('mode'); + } + + get metadataHash (): IOption { + return this.getT('metadataHash'); + } + + get withSignedTransaction (): boolean { + const val: bool = this.getT('withSignedTransaction'); + + return val.isTrue; + } + + /** + * @description Creates an representation of the structure as an ISignerPayload JSON + */ + public toPayload (): SignerPayloadJSON { + const result: Record = {}; + const keys = Object.keys(this.#extraTypes); + + // add any explicit overrides we may have + for (let i = 0, count = keys.length; i < count; i++) { + const key = keys[i]; + const value = this.getT(key); + + // Don't include Option.isNone + if (!(value instanceof Option) || value.isSome) { + // NOTE In the spread below we convert (mostly) to Hex to align + // with the typings. In the case of "unknown" fields, we use the + // primitive toJSON conversion (which is serializable). Technically + // we can include isNone in here as well ("null" is allowed), however + // for empty fields we just skip it completely (historical compat) + result[key] = value.toJSON(); + } + } + + return objectSpread(result, { + // the known defaults as managed explicitly and has different + // formatting in cases, e.g. we mostly expose a hex format here + address: this.address.toString(), + assetId: this.assetId && this.assetId.isSome ? this.assetId.toHex() : null, + blockHash: this.blockHash.toHex(), + blockNumber: this.blockNumber.toHex(), + era: this.era.toHex(), + genesisHash: this.genesisHash.toHex(), + metadataHash: this.metadataHash.isSome ? this.metadataHash.toHex() : null, + method: this.method.toHex(), + mode: this.mode.toNumber(), + nonce: this.nonce.toHex(), + signedExtensions: this.signedExtensions.map((e) => e.toString()), + specVersion: this.runtimeVersion.specVersion.toHex(), + tip: this.tip.toHex(), + transactionVersion: this.runtimeVersion.transactionVersion.toHex(), + version: this.version.toNumber(), + withSignedTransaction: this.withSignedTransaction + }); + } + + /** + * @description Creates a representation of the payload in raw Exrinsic form + */ + public toRaw (): SignerPayloadRaw { + const payload = this.toPayload(); + const data = u8aToHex( + this.registry + .createTypeUnsafe('ExtrinsicPayload', [payload, { version: payload.version }]) + // NOTE Explicitly pass the bare flag so the method is encoded un-prefixed (non-decodable, for signing only) + .toU8a({ method: true }) + ); + + return { + address: payload.address, + data, + type: 'payload' + }; + } +} diff --git a/packages/types/src/extrinsic/constants.ts b/packages/types/src/extrinsic/constants.ts new file mode 100644 index 0000000..28f8ee0 --- /dev/null +++ b/packages/types/src/extrinsic/constants.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export const BIT_SIGNED = 0b10000000; + +export const BIT_UNSIGNED = 0; + +export const EMPTY_U8A = new Uint8Array(); + +export const IMMORTAL_ERA = new Uint8Array([0]); + +export const UNMASK_VERSION = 0b01111111; + +export const DEFAULT_PREAMBLE = 'bare'; + +// Latest extrinsic version is v5, which has backwards compatibility for v4 signed extrinsics +// However is not fully supported so LATEST_EXTRINSIC_VERSION is configured as 4 in the meantime. +export const LATEST_EXTRINSIC_VERSION = 4; + +export const VERSION_MASK = 0b00111111; + +export const TYPE_MASK = 0b11000000; + +export const BARE_EXTRINSIC = 0b00000000; + +export const GENERAL_EXTRINSIC = 0b01000000; + +export const LOWEST_SUPPORTED_EXTRINSIC_FORMAT_VERSION = 4; diff --git a/packages/types/src/extrinsic/index.ts b/packages/types/src/extrinsic/index.ts new file mode 100644 index 0000000..dde5c1b --- /dev/null +++ b/packages/types/src/extrinsic/index.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { GenericExtrinsic } from './Extrinsic.js'; +export { GenericExtrinsicEra, ImmortalEra as GenericImmortalEra, MortalEra as GenericMortalEra } from './ExtrinsicEra.js'; +export { GenericExtrinsicPayload } from './ExtrinsicPayload.js'; +export { GenericExtrinsicPayloadUnknown } from './ExtrinsicPayloadUnknown.js'; +export { GenericExtrinsicUnknown } from './ExtrinsicUnknown.js'; +export { GenericSignerPayload } from './SignerPayload.js'; + +// all starred +export * from './v4/index.js'; +export * from './v5/index.js'; diff --git a/packages/types/src/extrinsic/signedExtensions/bizinikiwi.ts b/packages/types/src/extrinsic/signedExtensions/bizinikiwi.ts new file mode 100644 index 0000000..68cbf4f --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/bizinikiwi.ts @@ -0,0 +1,75 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtDef, ExtInfo } from './types.js'; + +import { emptyCheck } from './emptyCheck.js'; + +const CheckMetadataHash: ExtInfo = { + extrinsic: { + mode: 'u8' + }, + payload: { + metadataHash: 'Option<[u8;32]>' + } +}; + +const CheckMortality: ExtInfo = { + extrinsic: { + era: 'ExtrinsicEra' + }, + payload: { + blockHash: 'Hash' + } +}; + +const ChargeTransactionPayment: ExtInfo = { + extrinsic: { + tip: 'Compact' + }, + payload: {} +}; + +export const bizinikiwi: ExtDef = { + ChargeTransactionPayment, + CheckBlockGasLimit: emptyCheck, + CheckEra: CheckMortality, + CheckGenesis: { + extrinsic: {}, + payload: { + genesisHash: 'Hash' + } + }, + CheckMetadataHash, + CheckMortality, + CheckNonZeroSender: emptyCheck, + CheckNonce: { + extrinsic: { + nonce: 'Compact' + }, + payload: {} + }, + CheckSpecVersion: { + extrinsic: {}, + payload: { + specVersion: 'u32' + } + }, + CheckTxVersion: { + extrinsic: {}, + payload: { + transactionVersion: 'u32' + } + }, + CheckVersion: { + extrinsic: {}, + payload: { + specVersion: 'u32' + } + }, + CheckWeight: emptyCheck, + LockStakingStatus: emptyCheck, + SkipCheckIfFeeless: ChargeTransactionPayment, + ValidateEquivocationReport: emptyCheck, + WeightReclaim: emptyCheck +}; diff --git a/packages/types/src/extrinsic/signedExtensions/emptyCheck.ts b/packages/types/src/extrinsic/signedExtensions/emptyCheck.ts new file mode 100644 index 0000000..ba76fd9 --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/emptyCheck.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtInfo } from './types.js'; + +export const emptyCheck: ExtInfo = { + extrinsic: {}, + payload: {} +}; diff --git a/packages/types/src/extrinsic/signedExtensions/index.ts b/packages/types/src/extrinsic/signedExtensions/index.ts new file mode 100644 index 0000000..bda49a2 --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/index.ts @@ -0,0 +1,46 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtDef, ExtInfo, ExtTypes } from './types.js'; + +import { objectSpread } from '@pezkuwi/util'; + +import { bizinikiwi } from './bizinikiwi.js'; +import { pezkuwi } from './pezkuwi.js'; +import { shell } from './shell.js'; +import { statemint } from './statemint.js'; + +// A mapping of the known signed extensions to the extra fields that they +// contain. Unlike in the actual extensions, we define the extra fields not +// as a Tuple, but rather as a struct so they can be named. These will be +// expanded into the various fields when added to the payload (we only +// support V4 onwards with these, V3 and earlier are deemed fixed)) +export const allExtensions: ExtDef = objectSpread({}, bizinikiwi, pezkuwi, shell, statemint); + +// the v4 signed extensions prior to the point of exposing these to the +// metadata. This may not match 100% with the current defaults and are used +// when not specified in the metadata (which is for very old chains). The +// order is important here, as applied by default +export const fallbackExtensions = [ + 'CheckVersion', + 'CheckGenesis', + 'CheckEra', + 'CheckNonce', + 'CheckWeight', + 'ChargeTransactionPayment', + 'CheckBlockGasLimit' +]; + +export function findUnknownExtensions (extensions: string[], userExtensions: ExtDef = {}): string[] { + const names = [...Object.keys(allExtensions), ...Object.keys(userExtensions)]; + + return extensions.filter((k) => !names.includes(k)); +} + +export function expandExtensionTypes (extensions: string[], type: keyof ExtInfo, userExtensions: ExtDef = {}): ExtTypes { + return extensions + // Always allow user extensions first - these should provide overrides + .map((k) => userExtensions[k] || allExtensions[k]) + .filter((info): info is ExtInfo => !!info) + .reduce((result, info): ExtTypes => objectSpread(result, info[type]), {}); +} diff --git a/packages/types/src/extrinsic/signedExtensions/pezkuwi.ts b/packages/types/src/extrinsic/signedExtensions/pezkuwi.ts new file mode 100644 index 0000000..d6f8d10 --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/pezkuwi.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtDef } from './types.js'; + +import { emptyCheck } from './emptyCheck.js'; + +export const pezkuwi: ExtDef = { + LimitParathreadCommits: emptyCheck, + OnlyStakingAndClaims: emptyCheck, + PrevalidateAttests: emptyCheck, + RestrictFunctionality: emptyCheck, + TransactionCallFilter: emptyCheck, + ValidateDoubleVoteReports: emptyCheck +}; diff --git a/packages/types/src/extrinsic/signedExtensions/shell.ts b/packages/types/src/extrinsic/signedExtensions/shell.ts new file mode 100644 index 0000000..9d24fc8 --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/shell.ts @@ -0,0 +1,10 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtDef } from './types.js'; + +import { emptyCheck } from './emptyCheck.js'; + +export const shell: ExtDef = { + DisallowSigned: emptyCheck +}; diff --git a/packages/types/src/extrinsic/signedExtensions/statemint.ts b/packages/types/src/extrinsic/signedExtensions/statemint.ts new file mode 100644 index 0000000..ef60838 --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/statemint.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtDef } from './types.js'; + +export const statemint: ExtDef = { + ChargeAssetTxPayment: { + extrinsic: { + tip: 'Compact', + // eslint-disable-next-line sort-keys + assetId: 'TAssetConversion' + }, + payload: {} + } +}; diff --git a/packages/types/src/extrinsic/signedExtensions/types.ts b/packages/types/src/extrinsic/signedExtensions/types.ts new file mode 100644 index 0000000..df1f094 --- /dev/null +++ b/packages/types/src/extrinsic/signedExtensions/types.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export type ExtTypes = Record; + +export interface ExtInfo { + extrinsic: ExtTypes; + payload: ExtTypes; +} + +export type ExtDef = Record; diff --git a/packages/types/src/extrinsic/types.ts b/packages/types/src/extrinsic/types.ts new file mode 100644 index 0000000..4bd07fd --- /dev/null +++ b/packages/types/src/extrinsic/types.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyNumber } from '@pezkuwi/types-codec/types'; + +export interface ExtrinsicOptions { + isSigned: boolean; + version: number; +} + +export interface ExtrinsicPayloadOptions { + version: number; +} + +export interface ExtrinsicSignatureOptions { + isSigned?: boolean; +} + +export interface ExtrinsicExtraValue { + era?: Uint8Array; + nonce?: AnyNumber; + tip?: AnyNumber; +} + +export type Preamble = 'bare' | 'general'; diff --git a/packages/types/src/extrinsic/util.ts b/packages/types/src/extrinsic/util.ts new file mode 100644 index 0000000..36440b0 --- /dev/null +++ b/packages/types/src/extrinsic/util.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SignOptions } from '@pezkuwi/keyring/types'; +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { IKeyringPair } from '../types/index.js'; + +import { blake2AsU8a } from '@pezkuwi/util-crypto'; + +// a helper function for both types of payloads, Raw and metadata-known +export function sign (_registry: Registry, signerPair: IKeyringPair, u8a: Uint8Array, options?: SignOptions): Uint8Array { + const encoded = u8a.length > 256 + ? blake2AsU8a(u8a) + : u8a; + + return signerPair.sign(encoded, options); +} + +export function signGeneral (registry: Registry, u8a: Uint8Array): Uint8Array { + const encoded = registry.hash(u8a); + + return encoded; +} diff --git a/packages/types/src/extrinsic/v4/Extrinsic.spec.ts b/packages/types/src/extrinsic/v4/Extrinsic.spec.ts new file mode 100644 index 0000000..0b80ca0 --- /dev/null +++ b/packages/types/src/extrinsic/v4/Extrinsic.spec.ts @@ -0,0 +1,86 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { BN } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { decorateExtrinsics, Metadata } from '../../metadata/index.js'; +import { GenericExtrinsicV4 as Extrinsic } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); +const keyring = createTestPairs({ type: 'ed25519' }, false); + +registry.setMetadata(metadata); + +const tx = decorateExtrinsics(registry, metadata.asLatest, metadata.version); + +describe('ExtrinsicV4', (): void => { + it('constructs a sane Uint8Array (default)', (): void => { + const xt = new Extrinsic(registry); + + // expect(`${xt.method.section}${xt.method.method}`).toEqual('system.fillBlock'); + expect(`${xt.method.section}.${xt.method.method}`).toEqual('system.remark'); + + expect(xt.toU8a()).toEqual(new Uint8Array([ + 0, 0, // index + // 0, 0, 0, 0 // fillBlock, Perbill + 0 // remark, Vec + ])); + }); + + it('creates a unsigned extrinsic', (): void => { + expect( + new Extrinsic( + registry, + tx['balances']['transferAllowDeath'](keyring.bob.publicKey, 6969n) + ).toHex() + ).toEqual( + '0x' + + '0600' + // balance.transferAllowDeath + '00' + + 'd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9' + + 'e56c' + ); + }); + + it('creates a signed extrinsic', (): void => { + expect( + new Extrinsic( + registry, + tx['balances']['transferAllowDeath'](keyring.bob.publicKey, 6969n) + ).sign(keyring.alice, { + blockHash: '0xec7afaf1cca720ce88c1d1b689d81f0583cc15a97d621cf046dd9abf605ef22f', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + mode: 0, + nonce: 1, + runtimeVersion: { + apis: [], + authoringVersion: new BN(123), + implName: 'test', + implVersion: new BN(123), + specName: 'test', + specVersion: new BN(123), + transactionVersion: new BN(123) + }, + tip: 2 + }).toHex() + ).toEqual( + '0x' + + '00' + + 'd172a74cda4c865912c32ba0a80a57ae69abae410e5ccb59dee84e2f4432db4f' + + '00' + // ed25519 + 'bac8e442c7d6e6827fe3b72a2dee6bd036e059e1b0a2a5cfb00ec39184d60536' + + 'a4f3b5f3bfcd31e6e5b5cf6482914dc989fbe9483043a13c90376dfe28c5e00f' + + '0004080000' + // era. nonce, tip, mode + '0600' + + '00' + + 'd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9' + + 'e56c' + ); + }); +}); diff --git a/packages/types/src/extrinsic/v4/Extrinsic.ts b/packages/types/src/extrinsic/v4/Extrinsic.ts new file mode 100644 index 0000000..6c8cd0e --- /dev/null +++ b/packages/types/src/extrinsic/v4/Extrinsic.ts @@ -0,0 +1,108 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { ExtrinsicSignatureV4 } from '../../interfaces/extrinsics/index.js'; +import type { Address, Call } from '../../interfaces/runtime/index.js'; +import type { ExtrinsicPayloadValue, IExtrinsicImpl, IKeyringPair, Registry, SignatureOptions } from '../../types/index.js'; +import type { ExtrinsicOptions } from '../types.js'; + +import { Struct } from '@pezkuwi/types-codec'; +import { isU8a } from '@pezkuwi/util'; + +export const EXTRINSIC_VERSION = 4; + +export interface ExtrinsicValueV4 { + method?: Call; + signature?: ExtrinsicSignatureV4; +} + +/** + * @name GenericExtrinsicV4 + * @description + * The third generation of compact extrinsics + */ +export class GenericExtrinsicV4 extends Struct implements IExtrinsicImpl { + constructor (registry: Registry, value?: Uint8Array | ExtrinsicValueV4 | Call, { isSigned }: Partial = {}) { + super(registry, { + signature: 'ExtrinsicSignatureV4', + // eslint-disable-next-line sort-keys + method: 'Call' + }, GenericExtrinsicV4.decodeExtrinsic(registry, value, isSigned)); + } + + /** @internal */ + public static decodeExtrinsic (registry: Registry, value?: Call | Uint8Array | ExtrinsicValueV4, isSigned = false): ExtrinsicValueV4 { + if (value instanceof GenericExtrinsicV4) { + return value; + } else if (value instanceof registry.createClassUnsafe('Call')) { + return { method: value }; + } else if (isU8a(value)) { + // here we decode manually since we need to pull through the version information + const signature = registry.createTypeUnsafe('ExtrinsicSignatureV4', [value, { isSigned }]); + const method = registry.createTypeUnsafe('Call', [value.subarray(signature.encodedLength)]); + + return { + method, + signature + }; + } + + return value || {}; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description The [[Call]] this extrinsic wraps + */ + public get method (): Call { + return this.getT('method'); + } + + /** + * @description The [[ExtrinsicSignatureV4]] + */ + public get signature (): ExtrinsicSignatureV4 { + return this.getT('signature'); + } + + /** + * @description The version for the signature + */ + public get version (): number { + return EXTRINSIC_VERSION; + } + + /** + * @description Add an [[ExtrinsicSignatureV4]] to the extrinsic (already generated) + */ + public addSignature (signer: Address | Uint8Array | string, signature: Uint8Array | HexString, payload: ExtrinsicPayloadValue | Uint8Array | HexString): GenericExtrinsicV4 { + this.signature.addSignature(signer, signature, payload); + + return this; + } + + /** + * @description Sign the extrinsic with a specific keypair + */ + public sign (account: IKeyringPair, options: SignatureOptions): GenericExtrinsicV4 { + this.signature.sign(this.method, account, options); + + return this; + } + + /** + * @describe Adds a fake signature to the extrinsic + */ + public signFake (signer: Address | Uint8Array | string, options: SignatureOptions): GenericExtrinsicV4 { + this.signature.signFake(this.method, signer, options); + + return this; + } +} diff --git a/packages/types/src/extrinsic/v4/ExtrinsicPayload.spec.ts b/packages/types/src/extrinsic/v4/ExtrinsicPayload.spec.ts new file mode 100644 index 0000000..a5bbacc --- /dev/null +++ b/packages/types/src/extrinsic/v4/ExtrinsicPayload.spec.ts @@ -0,0 +1,74 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../../create/index.js'; +import { decorateExtrinsics, Metadata } from '../../metadata/index.js'; +import { fallbackExtensions } from '../signedExtensions/index.js'; +import { GenericExtrinsicPayloadV4 as ExtrinsicPayload } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +const tx = decorateExtrinsics(registry, metadata.asLatest, metadata.version); + +describe('ExtrinsicPayload', (): void => { + it('has a sane inspect', (): void => { + // we don't expect this to fail, however it is actually a good + // reference for the ordering in base Bizinikiwi + expect(new ExtrinsicPayload(registry, { method: tx['timestamp']['set'](0).toHex() } as never).inspect()).toEqual({ + inner: [ + { name: 'method', outer: [new Uint8Array([3, 0, 0])] }, + { inner: undefined, name: 'era', outer: [new Uint8Array([0]), new Uint8Array([0])] }, + { name: 'nonce', outer: [new Uint8Array([0])] }, + { name: 'tip', outer: [new Uint8Array([0])] }, + { name: 'assetId', outer: [new Uint8Array([0])] }, + { name: 'mode', outer: [new Uint8Array([0])] }, + { name: 'specVersion', outer: [new Uint8Array([0, 0, 0, 0])] }, + { name: 'transactionVersion', outer: [new Uint8Array([0, 0, 0, 0])] }, + { name: 'genesisHash', outer: [new Uint8Array(32)] }, + { name: 'blockHash', outer: [new Uint8Array(32)] }, + { name: 'metadataHash', outer: [new Uint8Array([0])] } + ] + }); + }); + + it('Correctly decodes assetId', () => { + const TEST_VALUE = { + address: 'J97drEQy6sYPXf2D1uj1hJfeHsxjvwr4tVGKs9o8VDSht8r', + assetId: '0x010002043205011f' as `0x${string}`, + blockHash: '0x28a464e6b40fccec3b9e7989db97d2627d3653c644a3c801f8239910eaaa58a8', + era: '0x4401', + genesisHash: '0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a', + method: '0x0a0300d27001b334c34489c67b81dfbbdc86eba5b433163bd08226d89b081914e9aa490284d717', + nonce: '0x0000000a', + specVersion: '0x000f4dfc', + tip: '0x00000000000000000000000000000000', + transactionVersion: '0x0000000f' + }; + + const reg = new TypeRegistry(); + + reg.setSignedExtensions(fallbackExtensions.concat(['ChargeAssetTxPayment'])); + const ext = new ExtrinsicPayload(reg, TEST_VALUE); + + expect(ext.assetId.toJSON()).toEqual({ + interior: { + x2: [ + { + palletInstance: 50 + }, + { + generalIndex: 1984 + } + ] + }, + parents: 0 + }); + }); +}); diff --git a/packages/types/src/extrinsic/v4/ExtrinsicPayload.ts b/packages/types/src/extrinsic/v4/ExtrinsicPayload.ts new file mode 100644 index 0000000..11d51c9 --- /dev/null +++ b/packages/types/src/extrinsic/v4/ExtrinsicPayload.ts @@ -0,0 +1,131 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SignOptions } from '@pezkuwi/keyring/types'; +import type { Hash, MultiLocation } from '@pezkuwi/types/interfaces'; +import type { Bytes } from '@pezkuwi/types-codec'; +import type { Inspect, Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { BlockHash } from '../../interfaces/chain/index.js'; +import type { ExtrinsicEra } from '../../interfaces/extrinsics/index.js'; +import type { ExtrinsicPayloadValue, ICompact, IKeyringPair, INumber, IOption } from '../../types/index.js'; + +import { Enum, Struct } from '@pezkuwi/types-codec'; +import { objectSpread } from '@pezkuwi/util'; + +import { decodeAssetId } from '../ExtrinsicPayload.js'; +import { sign } from '../util.js'; + +/** + * @name GenericExtrinsicPayloadV4 + * @description + * A signing payload for an [[Extrinsic]]. For the final encoding, it is + * variable length based on the contents included + */ +export class GenericExtrinsicPayloadV4 extends Struct { + #signOptions: SignOptions; + + constructor (registry: Registry, value?: ExtrinsicPayloadValue | Uint8Array | HexString) { + super(registry, objectSpread( + { method: 'Bytes' }, + registry.getSignedExtensionTypes(), + registry.getSignedExtensionExtra() + ), decodeAssetId(registry, value)); + + // Do detection for the type of extrinsic, in the case of MultiSignature + // this is an enum, in the case of AnySignature, this is a Hash only + // (which may be 64 or 65 bytes) + this.#signOptions = { + withType: registry.createTypeUnsafe('ExtrinsicSignature', []) instanceof Enum + }; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return super.inspect({ method: true }); + } + + /** + * @description The block [[BlockHash]] the signature applies to (mortal/immortal) + */ + public get blockHash (): BlockHash { + return this.getT('blockHash'); + } + + /** + * @description The [[ExtrinsicEra]] + */ + public get era (): ExtrinsicEra { + return this.getT('era'); + } + + /** + * @description The genesis [[BlockHash]] the signature applies to (mortal/immortal) + */ + public get genesisHash (): BlockHash { + return this.getT('genesisHash'); + } + + /** + * @description The [[Bytes]] contained in the payload + */ + public get method (): Bytes { + return this.getT('method'); + } + + /** + * @description The [[Index]] + */ + public get nonce (): ICompact { + return this.getT('nonce'); + } + + /** + * @description The specVersion for this signature + */ + public get specVersion (): INumber { + return this.getT('specVersion'); + } + + /** + * @description The tip [[Balance]] + */ + public get tip (): ICompact { + return this.getT('tip'); + } + + /** + * @description The transactionVersion for this signature + */ + public get transactionVersion (): INumber { + return this.getT('transactionVersion'); + } + + /** + * @description The (optional) asset id for this signature for chains that support transaction fees in assets + */ + public get assetId (): IOption { + return this.getT('assetId'); + } + + /** + * @description The (optional) asset id for this signature for chains that support transaction fees in assets + */ + public get metadataHash (): IOption { + return this.getT('metadataHash'); + } + + /** + * @description Sign the payload with the keypair + */ + public sign (signerPair: IKeyringPair): Uint8Array { + // NOTE The `toU8a({ method: true })` argument is absolutely critical, we + // don't want the method (Bytes) to have the length prefix included. This + // means that the data-as-signed is un-decodable, but is also doesn't need + // the extra information, only the pure data (and is not decoded) ... + // The same applies to V1..V3, if we have a V5, carry this comment + return sign(this.registry, signerPair, this.toU8a({ method: true }), this.#signOptions); + } +} diff --git a/packages/types/src/extrinsic/v4/ExtrinsicSignature.spec.ts b/packages/types/src/extrinsic/v4/ExtrinsicSignature.spec.ts new file mode 100644 index 0000000..c51f190 --- /dev/null +++ b/packages/types/src/extrinsic/v4/ExtrinsicSignature.spec.ts @@ -0,0 +1,160 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { BN_ZERO } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { Metadata } from '../../metadata/index.js'; +import { GenericExtrinsicSignatureV4 as ExtrinsicSignature } from './index.js'; + +const signOptions = { + blockHash: '0x1234567890123456789012345678901234567890123456789012345678901234', + genesisHash: '0x1234567890123456789012345678901234567890123456789012345678901234', + nonce: '0x69', + runtimeVersion: { + apis: [], + authoringVersion: BN_ZERO, + implName: String('test'), + implVersion: BN_ZERO, + specName: String('test'), + specVersion: BN_ZERO, + transactionVersion: BN_ZERO + } +}; + +describe('ExtrinsicSignatureV4', (): void => { + const pairs = createTestPairs({ type: 'ed25519' }); + + it('encodes to a sane Uint8Array (default)', (): void => { + const registry = new TypeRegistry(); + + const u8a = new Uint8Array([ + // signer as an AccountIndex + 0x01, 0x08, // 4 << 2 + // signature type + 0x01, + // signature + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + // extra stuff + 0x00, // immortal, + 0x04, // nonce, compact + 0x08 // tip, compact + ]); + + expect( + new ExtrinsicSignature(registry, u8a, { isSigned: true }).toU8a() + ).toEqual(u8a); + }); + + it('fake signs default', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + + expect( + new ExtrinsicSignature(registry).signFake( + registry.createType('Call'), + pairs.alice.publicKey, + signOptions + ).toHex() + ).toEqual( + '0x' + + '00' + // MultiAddress + 'd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + + '01' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '00a5010000' + + '00' // Mode + ); + }); + + it('fake signs default (AccountId address)', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + registry.register({ + Address: 'AccountId', + ExtrinsicSignature: 'AnySignature' + }); + + expect( + new ExtrinsicSignature(registry).signFake( + registry.createType('Call'), + pairs.alice.address, + signOptions + ).toHex() + ).toEqual( + '0x' + + // Address = AccountId, no prefix + 'd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + + // This is a prefix-less signature, anySignture as opposed to Multi above + '0101010101010101010101010101010101010101010101010101010101010101' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '00a5010000' + + '00' // mode + ); + }); + + it('fake signs with non-enum signature', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + registry.register({ + Address: 'AccountId', + ExtrinsicSignature: '[u8;65]' + }); + + expect( + new ExtrinsicSignature(registry).signFake( + registry.createType('Call'), + pairs.alice.address, + signOptions + ).toHex() + ).toEqual( + '0x' + + // Address = AccountId, no prefix + 'd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + + // 65 bytes here + '01' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '00a5010000' + + '00' // mode + ); + }); + + it('injects a signature', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + + expect( + new ExtrinsicSignature(registry).addSignature( + pairs.alice.publicKey, + new Uint8Array(65).fill(1), + new Uint8Array(0) + ).toHex() + ).toEqual( + '0x' + + '00' + // MultiAddress + 'd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + + '01' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '0101010101010101010101010101010101010101010101010101010101010101' + + '00000000' + + '00' // mode + ); + }); +}); diff --git a/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts b/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts new file mode 100644 index 0000000..e3902ac --- /dev/null +++ b/packages/types/src/extrinsic/v4/ExtrinsicSignature.ts @@ -0,0 +1,229 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { MultiLocation } from '@pezkuwi/types/interfaces'; +import type { HexString } from '@pezkuwi/util/types'; +import type { EcdsaSignature, Ed25519Signature, ExtrinsicEra, ExtrinsicSignature, Sr25519Signature } from '../../interfaces/extrinsics/index.js'; +import type { Address, Call, Hash } from '../../interfaces/runtime/index.js'; +import type { ExtrinsicPayloadValue, ICompact, IExtrinsicSignature, IKeyringPair, INumber, IOption, Registry, SignatureOptions } from '../../types/index.js'; +import type { ExtrinsicSignatureOptions } from '../types.js'; + +import { Struct } from '@pezkuwi/types-codec'; +import { isU8a, isUndefined, objectProperties, objectSpread, stringify, u8aToHex } from '@pezkuwi/util'; + +import { EMPTY_U8A, IMMORTAL_ERA } from '../constants.js'; +import { GenericExtrinsicPayloadV4 } from './ExtrinsicPayload.js'; + +// Ensure we have enough data for all types of signatures +const FAKE_SIGNATURE = new Uint8Array(256).fill(1); + +function toAddress (registry: Registry, address: Address | Uint8Array | string): Address { + return registry.createTypeUnsafe('Address', [isU8a(address) ? u8aToHex(address) : address]); +} + +/** + * @name GenericExtrinsicSignatureV4 + * @description + * A container for the [[Signature]] associated with a specific [[Extrinsic]] + */ +export class GenericExtrinsicSignatureV4 extends Struct implements IExtrinsicSignature { + #signKeys: string[]; + + constructor (registry: Registry, value?: GenericExtrinsicSignatureV4 | Uint8Array, { isSigned }: ExtrinsicSignatureOptions = {}) { + const signTypes = registry.getSignedExtensionTypes(); + + super( + registry, + objectSpread( + // eslint-disable-next-line sort-keys + { signer: 'Address', signature: 'ExtrinsicSignature' }, + signTypes + ), + GenericExtrinsicSignatureV4.decodeExtrinsicSignature(value, isSigned) + ); + + this.#signKeys = Object.keys(signTypes); + + objectProperties(this, this.#signKeys, (k) => this.get(k)); + } + + /** @internal */ + public static decodeExtrinsicSignature (value?: GenericExtrinsicSignatureV4 | Uint8Array, isSigned = false): GenericExtrinsicSignatureV4 | Uint8Array { + if (!value) { + return EMPTY_U8A; + } else if (value instanceof GenericExtrinsicSignatureV4) { + return value; + } + + return isSigned + ? value + : EMPTY_U8A; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.isSigned + ? super.encodedLength + : 0; + } + + /** + * @description `true` if the signature is valid + */ + public get isSigned (): boolean { + return !this.signature.isEmpty; + } + + /** + * @description The [[ExtrinsicEra]] (mortal or immortal) this signature applies to + */ + public get era (): ExtrinsicEra { + return this.getT('era'); + } + + /** + * @description The [[Index]] for the signature + */ + public get nonce (): ICompact { + return this.getT('nonce'); + } + + /** + * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]] + */ + public get signature (): EcdsaSignature | Ed25519Signature | Sr25519Signature { + // the second case here is when we don't have an enum signature, treat as raw + return (this.multiSignature.value || this.multiSignature) as Sr25519Signature; + } + + /** + * @description The raw [[ExtrinsicSignature]] + */ + public get multiSignature (): ExtrinsicSignature { + return this.getT('signature'); + } + + /** + * @description The [[Address]] that signed + */ + public get signer (): Address { + return this.getT('signer'); + } + + /** + * @description The [[Balance]] tip + */ + public get tip (): ICompact { + return this.getT('tip'); + } + + /** + * @description The [[u32]] or [[MultiLocation]] assetId + */ + public get assetId (): IOption { + return this.getT('assetId'); + } + + /** + * @description the [[u32]] mode + */ + public get mode (): INumber { + return this.getT('mode'); + } + + /** + * @description The [[Hash]] for the metadata + */ + public get metadataHash (): IOption { + return this.getT('metadataHash'); + } + + protected _injectSignature (signer: Address, signature: ExtrinsicSignature, payload: GenericExtrinsicPayloadV4): IExtrinsicSignature { + // use the fields exposed to guide the getters + for (let i = 0, count = this.#signKeys.length; i < count; i++) { + const k = this.#signKeys[i]; + const v = payload.get(k); + + if (!isUndefined(v)) { + this.set(k, v); + } + } + + // additional fields (exposed in struct itself) + this.set('signer', signer); + this.set('signature', signature); + + return this; + } + + /** + * @description Adds a raw signature + */ + public addSignature (signer: Address | Uint8Array | string, signature: Uint8Array | HexString, payload: ExtrinsicPayloadValue | Uint8Array | HexString): IExtrinsicSignature { + return this._injectSignature( + toAddress(this.registry, signer), + this.registry.createTypeUnsafe('ExtrinsicSignature', [signature]), + new GenericExtrinsicPayloadV4(this.registry, payload) + ); + } + + /** + * @description Creates a payload from the supplied options + */ + public createPayload (method: Call, options: SignatureOptions): GenericExtrinsicPayloadV4 { + const { era, runtimeVersion: { specVersion, transactionVersion } } = options; + + return new GenericExtrinsicPayloadV4(this.registry, objectSpread({}, options, { + era: era || IMMORTAL_ERA, + method: method.toHex(), + specVersion, + transactionVersion + })); + } + + /** + * @description Generate a payload and applies the signature from a keypair + */ + public sign (method: Call, account: IKeyringPair, options: SignatureOptions): IExtrinsicSignature { + if (!account?.addressRaw) { + throw new Error(`Expected a valid keypair for signing, found ${stringify(account)}`); + } + + const payload = this.createPayload(method, options); + + return this._injectSignature( + toAddress(this.registry, account.addressRaw), + this.registry.createTypeUnsafe('ExtrinsicSignature', [payload.sign(account)]), + payload + ); + } + + /** + * @description Generate a payload and applies a fake signature + */ + public signFake (method: Call, address: Address | Uint8Array | string, options: SignatureOptions): IExtrinsicSignature { + if (!address) { + throw new Error(`Expected a valid address for signing, found ${stringify(address)}`); + } + + const payload = this.createPayload(method, options); + + return this._injectSignature( + toAddress(this.registry, address), + this.registry.createTypeUnsafe('ExtrinsicSignature', [FAKE_SIGNATURE]), + payload + ); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + return this.isSigned + ? super.toU8a(isBare) + : EMPTY_U8A; + } +} diff --git a/packages/types/src/extrinsic/v4/index.ts b/packages/types/src/extrinsic/v4/index.ts new file mode 100644 index 0000000..fe9d589 --- /dev/null +++ b/packages/types/src/extrinsic/v4/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { GenericExtrinsicV4 } from './Extrinsic.js'; +export { GenericExtrinsicPayloadV4 } from './ExtrinsicPayload.js'; +export { GenericExtrinsicSignatureV4 } from './ExtrinsicSignature.js'; diff --git a/packages/types/src/extrinsic/v5/Extrinsic.spec.ts b/packages/types/src/extrinsic/v5/Extrinsic.spec.ts new file mode 100644 index 0000000..3949aef --- /dev/null +++ b/packages/types/src/extrinsic/v5/Extrinsic.spec.ts @@ -0,0 +1,74 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { BN } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { decorateExtrinsics, Metadata } from '../../metadata/index.js'; +import { GenericExtrinsicV5 as Extrinsic } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); +const keyring = createTestPairs({ type: 'ed25519' }, false); + +registry.setMetadata(metadata); + +const tx = decorateExtrinsics(registry, metadata.asLatest, metadata.version); + +describe('ExtrinsicV5', (): void => { + it('constructs a sane Uint8Array (default)', (): void => { + const xt = new Extrinsic(registry); + + // expect(`${xt.method.section}${xt.method.method}`).toEqual('system.fillBlock'); + expect(`${xt.method.section}.${xt.method.method}`).toEqual('system.remark'); + + expect(xt.toU8a()).toEqual(new Uint8Array([ + 0, 0, // index + // 0, 0, 0, 0 // fillBlock, Perbill + 0 // remark, Vec + ])); + }); + + it('creates a unsigned extrinsic', (): void => { + expect( + new Extrinsic( + registry, + tx['balances']['transferAllowDeath'](keyring.bob.publicKey, 6969n) + ).toHex() + ).toEqual( + '0x' + + '0600' + // balance.transferAllowDeath + '00' + + 'd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9' + + 'e56c' + ); + }); + + it('Errors when creating a signed Extrinsic', (): void => { + expect( + () => new Extrinsic( + registry, + tx['balances']['transferAllowDeath'](keyring.bob.publicKey, 6969n) + ).sign(keyring.alice, { + blockHash: '0xec7afaf1cca720ce88c1d1b689d81f0583cc15a97d621cf046dd9abf605ef22f', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + mode: 0, + nonce: 1, + runtimeVersion: { + apis: [], + authoringVersion: new BN(123), + implName: 'test', + implVersion: new BN(123), + specName: 'test', + specVersion: new BN(123), + transactionVersion: new BN(123) + }, + tip: 2 + }).toHex() + ).toThrow('Extrinsic: ExtrinsicV5 does not include signing support'); + }); +}); diff --git a/packages/types/src/extrinsic/v5/Extrinsic.ts b/packages/types/src/extrinsic/v5/Extrinsic.ts new file mode 100644 index 0000000..24dbc71 --- /dev/null +++ b/packages/types/src/extrinsic/v5/Extrinsic.ts @@ -0,0 +1,116 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; +import type { ExtrinsicSignatureV5 } from '../../interfaces/extrinsics/index.js'; +import type { Address, Call } from '../../interfaces/runtime/index.js'; +import type { ExtrinsicPayloadValue, IExtrinsicV5Impl, IKeyringPair, Registry, SignatureOptions } from '../../types/index.js'; +import type { ExtrinsicOptions, Preamble } from '../types.js'; + +import { Struct } from '@pezkuwi/types-codec'; +import { isU8a } from '@pezkuwi/util'; + +export const EXTRINSIC_VERSION = 5; + +export interface ExtrinsicValueV5 { + method?: Call; + signature?: ExtrinsicSignatureV5; +} + +/** + * @name GenericExtrinsicV5 + * @description + * The fourth generation of compact extrinsics + */ +export class GenericExtrinsicV5 extends Struct implements IExtrinsicV5Impl { + constructor (registry: Registry, value?: Uint8Array | ExtrinsicValueV5 | Call, { isSigned }: Partial = {}) { + super(registry, { + signature: 'ExtrinsicSignatureV5', + // eslint-disable-next-line sort-keys + method: 'Call' + }, GenericExtrinsicV5.decodeExtrinsic(registry, value, isSigned)); + } + + /** @internal */ + public static decodeExtrinsic (registry: Registry, value?: Call | Uint8Array | ExtrinsicValueV5, isSigned = false): ExtrinsicValueV5 { + if (value instanceof GenericExtrinsicV5) { + return value; + } else if (value instanceof registry.createClassUnsafe('Call')) { + return { method: value }; + } else if (isU8a(value)) { + // here we decode manually since we need to pull through the version information + const signature = registry.createTypeUnsafe('ExtrinsicSignatureV5', [value, { isSigned }]); + // We add 2 here since the length of the TransactionExtension Version needs to be accounted for + const method = registry.createTypeUnsafe('Call', [value.subarray(signature.encodedLength)]); + + return { + method, + signature + }; + } + + return value || {}; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description The [[Call]] this extrinsic wraps + */ + public get method (): Call { + return this.getT('method'); + } + + /** + * @description The [[ExtrinsicSignatureV5]] + */ + public get signature (): ExtrinsicSignatureV5 { + return this.getT('signature'); + } + + /** + * @description The version for the signature + */ + public get version (): number { + return EXTRINSIC_VERSION; + } + + /** + * @description The [[Preamble]] for the extrinsic + */ + public get preamble (): Preamble { + return this.getT('preamble'); + } + + /** + * @description Add an [[ExtrinsicSignatureV5]] to the extrinsic (already generated) + * + * [Disabled for ExtrinsicV5] + */ + public addSignature (_signer: Address | Uint8Array | string, _signature: Uint8Array | HexString, _payload: ExtrinsicPayloadValue | Uint8Array | HexString): GenericExtrinsicV5 { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } + + /** + * @description Sign the extrinsic with a specific keypair + * + * [Disabled for ExtrinsicV5] + */ + public sign (_account: IKeyringPair, _options: SignatureOptions): GenericExtrinsicV5 { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } + + /** + * @describe Adds a fake signature to the extrinsic + * + * [Disabled for ExtrinsicV5] + */ + public signFake (_signer: Address | Uint8Array | string, _options: SignatureOptions): GenericExtrinsicV5 { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } +} diff --git a/packages/types/src/extrinsic/v5/ExtrinsicPayload.spec.ts b/packages/types/src/extrinsic/v5/ExtrinsicPayload.spec.ts new file mode 100644 index 0000000..4651030 --- /dev/null +++ b/packages/types/src/extrinsic/v5/ExtrinsicPayload.spec.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../../create/index.js'; +import { decorateExtrinsics, Metadata } from '../../metadata/index.js'; +import { GenericExtrinsicPayloadV5 as ExtrinsicPayload } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +const tx = decorateExtrinsics(registry, metadata.asLatest, metadata.version); + +describe('ExtrinsicPayload', (): void => { + it('has a sane inspect', (): void => { + // we don't expect this to fail, however it is actually a good + // reference for the ordering in base Bizinikiwi + expect(new ExtrinsicPayload(registry, { method: tx['timestamp']['set'](0).toHex() } as never).inspect()).toEqual({ + inner: [ + { name: 'method', outer: [new Uint8Array([3, 0, 0])] }, + { inner: undefined, name: 'era', outer: [new Uint8Array([0]), new Uint8Array([0])] }, + { name: 'nonce', outer: [new Uint8Array([0])] }, + { name: 'tip', outer: [new Uint8Array([0])] }, + { name: 'assetId', outer: [new Uint8Array([0])] }, + { name: 'mode', outer: [new Uint8Array([0])] }, + { name: 'specVersion', outer: [new Uint8Array([0, 0, 0, 0])] }, + { name: 'transactionVersion', outer: [new Uint8Array([0, 0, 0, 0])] }, + { name: 'genesisHash', outer: [new Uint8Array(32)] }, + { name: 'blockHash', outer: [new Uint8Array(32)] }, + { name: 'metadataHash', outer: [new Uint8Array([0])] } + ] + }); + }); +}); diff --git a/packages/types/src/extrinsic/v5/ExtrinsicPayload.ts b/packages/types/src/extrinsic/v5/ExtrinsicPayload.ts new file mode 100644 index 0000000..36922ce --- /dev/null +++ b/packages/types/src/extrinsic/v5/ExtrinsicPayload.ts @@ -0,0 +1,115 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Hash, MultiLocation } from '@pezkuwi/types/interfaces'; +import type { Bytes } from '@pezkuwi/types-codec'; +import type { Inspect, Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { BlockHash } from '../../interfaces/chain/index.js'; +import type { ExtrinsicEra } from '../../interfaces/extrinsics/index.js'; +import type { ExtrinsicPayloadValue, ICompact, IKeyringPair, INumber, IOption } from '../../types/index.js'; + +import { Struct } from '@pezkuwi/types-codec'; +import { objectSpread } from '@pezkuwi/util'; + +/** + * @name GenericExtrinsicPayloadV5 + * @description + * A signing payload for an [[Extrinsic]]. For the final encoding, it is + * variable length based on the contents included + */ +export class GenericExtrinsicPayloadV5 extends Struct { + constructor (registry: Registry, value?: ExtrinsicPayloadValue | Uint8Array | HexString) { + super(registry, objectSpread( + { method: 'Bytes' }, + registry.getSignedExtensionTypes(), + registry.getSignedExtensionExtra() + ), value); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + public override inspect (): Inspect { + return super.inspect({ method: true }); + } + + /** + * @description The block [[BlockHash]] the signature applies to (mortal/immortal) + */ + public get blockHash (): BlockHash { + return this.getT('blockHash'); + } + + /** + * @description The [[ExtrinsicEra]] + */ + public get era (): ExtrinsicEra { + return this.getT('era'); + } + + /** + * @description The genesis [[BlockHash]] the signature applies to (mortal/immortal) + */ + public get genesisHash (): BlockHash { + return this.getT('genesisHash'); + } + + /** + * @description The [[Bytes]] contained in the payload + */ + public get method (): Bytes { + return this.getT('method'); + } + + /** + * @description The [[Index]] + */ + public get nonce (): ICompact { + return this.getT('nonce'); + } + + /** + * @description The specVersion for this signature + */ + public get specVersion (): INumber { + return this.getT('specVersion'); + } + + /** + * @description The tip [[Balance]] + */ + public get tip (): ICompact { + return this.getT('tip'); + } + + /** + * @description The transactionVersion for this signature + */ + public get transactionVersion (): INumber { + return this.getT('transactionVersion'); + } + + /** + * @description The (optional) asset id for this signature for chains that support transaction fees in assets + */ + public get assetId (): IOption { + return this.getT('assetId'); + } + + /** + * @description The (optional) metadataHash proof for the CheckMetadataHash TransactionExtension + */ + public get metadataHash (): IOption { + return this.getT('metadataHash'); + } + + /** + * @description Sign the payload with the keypair + * + * [Disabled for ExtrinsicV5] + */ + public sign (_signerPair: IKeyringPair): Uint8Array { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } +} diff --git a/packages/types/src/extrinsic/v5/ExtrinsicSignature.spec.ts b/packages/types/src/extrinsic/v5/ExtrinsicSignature.spec.ts new file mode 100644 index 0000000..c93603b --- /dev/null +++ b/packages/types/src/extrinsic/v5/ExtrinsicSignature.spec.ts @@ -0,0 +1,105 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { BN_ZERO } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { Metadata } from '../../metadata/index.js'; +import { GenericExtrinsicSignatureV5 as ExtrinsicSignature } from './index.js'; + +const signOptions = { + blockHash: '0x1234567890123456789012345678901234567890123456789012345678901234', + genesisHash: '0x1234567890123456789012345678901234567890123456789012345678901234', + nonce: '0x69', + runtimeVersion: { + apis: [], + authoringVersion: BN_ZERO, + implName: String('test'), + implVersion: BN_ZERO, + specName: String('test'), + specVersion: BN_ZERO, + transactionVersion: BN_ZERO + } +}; + +describe('ExtrinsicSignatureV4', (): void => { + const pairs = createTestPairs({ type: 'ed25519' }); + + it('encodes to a sane Uint8Array (default)', (): void => { + const registry = new TypeRegistry(); + + const u8a = new Uint8Array([ + // signer as an AccountIndex + 0x01, 0x08, // 4 << 2 + // signature type + 0x01, + // signature + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, + 0x00, // TransactionExtension version + // extra stuff + 0x00, // immortal, + 0x04, // nonce, compact + 0x08 // tip, compact + ]); + + expect( + new ExtrinsicSignature(registry, u8a, { isSigned: true }).toU8a() + ).toEqual(u8a); + }); + + it('fake signs default', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + + expect( + () => new ExtrinsicSignature(registry).signFake( + registry.createType('Call'), + pairs.alice.publicKey, + signOptions + ).toHex() + ).toThrow('Extrinsic: ExtrinsicV5 does not include signing support'); + }); + + it('Errors on fake sign', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + registry.register({ + Address: 'AccountId', + ExtrinsicSignature: 'AnySignature' + }); + + expect( + () => new ExtrinsicSignature(registry).signFake( + registry.createType('Call'), + pairs.alice.address, + signOptions + ).toHex() + ).toThrow('Extrinsic: ExtrinsicV5 does not include signing support'); + }); + + it('Errors on injecting a signature', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, metadataStatic); + + registry.setMetadata(metadata); + + expect( + () => new ExtrinsicSignature(registry).addSignature( + pairs.alice.publicKey, + new Uint8Array(65).fill(1), + new Uint8Array(0) + ).toHex() + ).toThrow('Extrinsic: ExtrinsicV5 does not include signing support'); + }); +}); diff --git a/packages/types/src/extrinsic/v5/ExtrinsicSignature.ts b/packages/types/src/extrinsic/v5/ExtrinsicSignature.ts new file mode 100644 index 0000000..fd958b2 --- /dev/null +++ b/packages/types/src/extrinsic/v5/ExtrinsicSignature.ts @@ -0,0 +1,200 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { MultiLocation } from '@pezkuwi/types/interfaces'; +import type { HexString } from '@pezkuwi/util/types'; +import type { EcdsaSignature, Ed25519Signature, ExtrinsicEra, ExtrinsicSignature, Sr25519Signature } from '../../interfaces/extrinsics/index.js'; +import type { Address, Call, Hash } from '../../interfaces/runtime/index.js'; +import type { ExtrinsicPayloadValue, ICompact, IExtrinsicSignature, IKeyringPair, INumber, IOption, Registry, SignatureOptions } from '../../types/index.js'; +import type { ExtrinsicSignatureOptions } from '../types.js'; + +import { Struct } from '@pezkuwi/types-codec'; +import { objectProperties, objectSpread } from '@pezkuwi/util'; + +import { EMPTY_U8A, IMMORTAL_ERA } from '../constants.js'; +import { GenericExtrinsicPayloadV5 } from './ExtrinsicPayload.js'; + +/** + * @name GenericExtrinsicSignatureV5 + * @description + * A container for the [[Signature]] associated with a specific [[Extrinsic]] + */ +export class GenericExtrinsicSignatureV5 extends Struct implements IExtrinsicSignature { + #signKeys: string[]; + + constructor (registry: Registry, value?: GenericExtrinsicSignatureV5 | Uint8Array, { isSigned }: ExtrinsicSignatureOptions = {}) { + const signTypes = registry.getSignedExtensionTypes(); + + super( + registry, + objectSpread( + // eslint-disable-next-line sort-keys + { signer: 'Address', signature: 'ExtrinsicSignature', transactionExtensionVersion: 'u8' }, + signTypes + ), + GenericExtrinsicSignatureV5.decodeExtrinsicSignature(value, isSigned) + ); + + this.#signKeys = Object.keys(signTypes); + + objectProperties(this, this.#signKeys, (k) => this.get(k)); + } + + /** @internal */ + public static decodeExtrinsicSignature (value?: GenericExtrinsicSignatureV5 | Uint8Array, isSigned = false): GenericExtrinsicSignatureV5 | Uint8Array { + if (!value) { + return EMPTY_U8A; + } else if (value instanceof GenericExtrinsicSignatureV5) { + return value; + } + + return isSigned + ? value + : EMPTY_U8A; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return this.isSigned + ? super.encodedLength + : 0; + } + + /** + * @description `true` if the signature is valid + */ + public get isSigned (): boolean { + return !this.signature.isEmpty; + } + + /** + * @description The [[ExtrinsicEra]] (mortal or immortal) this signature applies to + */ + public get era (): ExtrinsicEra { + return this.getT('era'); + } + + /** + * @description The [[Index]] for the signature + */ + public get nonce (): ICompact { + return this.getT('nonce'); + } + + /** + * @description The actual [[EcdsaSignature]], [[Ed25519Signature]] or [[Sr25519Signature]] + */ + public get signature (): EcdsaSignature | Ed25519Signature | Sr25519Signature { + // the second case here is when we don't have an enum signature, treat as raw + return (this.multiSignature.value || this.multiSignature) as Sr25519Signature; + } + + /** + * @description The raw [[ExtrinsicSignature]] + */ + public get multiSignature (): ExtrinsicSignature { + return this.getT('signature'); + } + + /** + * @description The [[Address]] that signed + */ + public get signer (): Address { + return this.getT('signer'); + } + + /** + * @description The [[Balance]] tip + */ + public get tip (): ICompact { + return this.getT('tip'); + } + + /** + * @description The [[u32]] or [[MultiLocation]] assetId + */ + public get assetId (): IOption { + return this.getT('assetId'); + } + + /** + * @description the [[u32]] mode + */ + public get mode (): INumber { + return this.getT('mode'); + } + + /** + * @description The (optional) [[Hash]] for the metadata proof + */ + public get metadataHash (): IOption { + return this.getT('metadataHash'); + } + + /** + * @description The [[u8]] for the TransactionExtension version + */ + public get transactionExtensionVersion (): INumber { + return this.getT('transactionExtensionVersion'); + } + + /** + * [Disabled for ExtrinsicV5] + */ + protected _injectSignature (_signer: Address, _signature: ExtrinsicSignature, _payload: GenericExtrinsicPayloadV5): IExtrinsicSignature { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } + + /** + * @description Adds a raw signature + * + * [Disabled for ExtrinsicV5] + */ + public addSignature (_signer: Address | Uint8Array | string, _signature: Uint8Array | HexString, _payload: ExtrinsicPayloadValue | Uint8Array | HexString): IExtrinsicSignature { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } + + /** + * @description Creates a payload from the supplied options + */ + public createPayload (method: Call, options: SignatureOptions): GenericExtrinsicPayloadV5 { + const { era, runtimeVersion: { specVersion, transactionVersion } } = options; + + return new GenericExtrinsicPayloadV5(this.registry, objectSpread({}, options, { + era: era || IMMORTAL_ERA, + method: method.toHex(), + specVersion, + transactionVersion + })); + } + + /** + * @description Generate a payload and applies the signature from a keypair + * + * [Disabled for ExtrinsicV5] + */ + public sign (_method: Call, _account: IKeyringPair, _options: SignatureOptions): IExtrinsicSignature { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } + + /** + * @description Generate a payload and applies a fake signature + * + * [Disabled for ExtrinsicV5] + */ + public signFake (_method: Call, _address: Address | Uint8Array | string, _options: SignatureOptions): IExtrinsicSignature { + throw new Error('Extrinsic: ExtrinsicV5 does not include signing support'); + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + return this.isSigned + ? super.toU8a(isBare) + : EMPTY_U8A; + } +} diff --git a/packages/types/src/extrinsic/v5/GeneralExtrinsic.spec.ts b/packages/types/src/extrinsic/v5/GeneralExtrinsic.spec.ts new file mode 100644 index 0000000..8f39fad --- /dev/null +++ b/packages/types/src/extrinsic/v5/GeneralExtrinsic.spec.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../../create/index.js'; +import { Metadata } from '../../metadata/index.js'; +import { GeneralExtrinsic } from './GeneralExtrinsic.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +describe('GeneralExt', (): void => { + const extrinsic = '0xc44500650000000000060000d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0700e40b5402'; + + it('Can decode a general extrinsic', (): void => { + const genExt = new GeneralExtrinsic(registry, extrinsic); + + expect(genExt.version).toEqual(5); + expect(genExt.transactionExtensionVersion.toNumber()).toEqual(0); + expect(genExt.method.toHuman()).toEqual({ args: { dest: { Id: '5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY' }, value: '10,000,000,000' }, method: 'transferAllowDeath', section: 'balances' }); + expect(genExt.era.toHuman()).toEqual({ MortalEra: { period: '64', phase: '6' } }); + expect(genExt.tip.toNumber()).toEqual(0); + expect(genExt.mode.toNumber()).toEqual(0); + expect(genExt.assetId.toHuman()).toEqual(null); + expect(genExt.nonce.toNumber()).toEqual(0); + }); + + it('Can encode a general extrinsic', (): void => { + const payload = { + era: '0x6500', + method: '0x060000d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d0700e40b5402', + nonce: '0x00000000', + tip: '0x00000000000000000000000000000000', + transactionVersion: '0x00000002' + }; + const genExt = new GeneralExtrinsic(registry, { + payload + }); + + expect(genExt.toHex()).toEqual(extrinsic); + }); +}); diff --git a/packages/types/src/extrinsic/v5/GeneralExtrinsic.ts b/packages/types/src/extrinsic/v5/GeneralExtrinsic.ts new file mode 100644 index 0000000..84af0b9 --- /dev/null +++ b/packages/types/src/extrinsic/v5/GeneralExtrinsic.ts @@ -0,0 +1,208 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Call, ExtrinsicEra, Hash, MultiLocation } from '@pezkuwi/types/interfaces'; +import type { AnyNumber, AnyU8a, ICompact, IExtrinsicEra, INumber, IOption, Registry } from '@pezkuwi/types/types'; +import type { AnyTuple, IMethod } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import { Struct } from '@pezkuwi/types-codec'; +import { compactAddLength, compactFromU8a, isHex, isObject, isU8a, objectSpread, u8aConcat, u8aToHex, u8aToU8a } from '@pezkuwi/util'; + +import { EMPTY_U8A, UNMASK_VERSION } from '../constants.js'; + +interface TransactionExtensionValues { + era: AnyU8a | IExtrinsicEra; + nonce: AnyNumber; + tip: AnyNumber; + transactionVersion: AnyNumber; + assetId?: HexString; + mode?: AnyNumber; + metadataHash?: AnyU8a; +} + +interface GeneralExtrinsicPayloadValues extends TransactionExtensionValues { + method: AnyU8a | IMethod; +} + +interface GeneralExtrinsicValue { + payload?: GeneralExtrinsicPayloadValues; + transactionExtensionVersion?: number; +} + +function decodeU8a (u8a: Uint8Array) { + if (!u8a.length) { + return new Uint8Array(); + } + + const [offset, length] = compactFromU8a(u8a); + const total = offset + length.toNumber(); + + if (total > u8a.length) { + throw new Error(`Extrinsic: length less than remainder, expected at least ${total}, found ${u8a.length}`); + } + + const data = u8a.subarray(offset, total); + + // 69 denotes 0b01000101 which is the version and preamble for this Extrinsic + if (data[0] !== 69) { + throw new Error(`Extrinsic: incorrect version for General Transactions, expected 5, found ${data[0] & UNMASK_VERSION}`); + } + + return data.subarray(1); +} + +export class GeneralExtrinsic extends Struct { + #version: number; + #preamble: number; + + constructor (registry: Registry, value?: GeneralExtrinsicValue | Uint8Array | HexString, opt?: { version: number }) { + const extTypes = registry.getSignedExtensionTypes(); + + super(registry, objectSpread( + { + transactionExtensionVersion: 'u8' + }, + extTypes, + { + method: 'Call' + } + ), GeneralExtrinsic.decodeExtrinsic(registry, value)); + + this.#version = opt?.version || 0b00000101; + this.#preamble = 0b01000000; + } + + public static decodeExtrinsic (registry: Registry, value?: GeneralExtrinsicValue | Uint8Array | HexString) { + if (!value) { + return EMPTY_U8A; + } else if (value instanceof GeneralExtrinsic) { + return value; + } else if (isU8a(value) || Array.isArray(value) || isHex(value)) { + return decodeU8a(u8aToU8a(value)); + } else if (isObject(value)) { + const { payload, transactionExtensionVersion } = value; + + return objectSpread(payload || {}, { + transactionExtensionVersion: transactionExtensionVersion || registry.getTransactionExtensionVersion() + }); + } + + return {}; + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + return super.encodedLength; + } + + /** + * @description The [[ExtrinsicEra]] + */ + public get era (): ExtrinsicEra { + return this.getT('era'); + } + + /** + * @description The [[Index]] + */ + public get nonce (): ICompact { + return this.getT('nonce'); + } + + /** + * @description The tip [[Balance]] + */ + public get tip (): ICompact { + return this.getT('tip'); + } + + /** + * @description The (optional) asset id for this signature for chains that support transaction fees in assets + */ + public get assetId (): IOption { + return this.getT('assetId'); + } + + /** + * @description The mode used for the CheckMetadataHash TransactionExtension + */ + public get mode (): INumber { + return this.getT('mode'); + } + + /** + * @description The (optional) [[Hash]] for the metadata proof + */ + public get metadataHash (): IOption { + return this.getT('metadataHash'); + } + + /** + * @description The version of the TransactionExtensions used in this extrinsic + */ + public get transactionExtensionVersion (): INumber { + return this.getT('transactionExtensionVersion'); + } + + /** + * @description The [[Call]] this extrinsic wraps + */ + public get method (): Call { + return this.getT('method'); + } + + /** + * @description The extrinsic's version + */ + public get version () { + return this.#version; + } + + /** + * @description The [[Preamble]] for the extrinsic + */ + public get preamble () { + return this.#preamble; + } + + public override toHex (isBare?: boolean): HexString { + return u8aToHex(this.toU8a(isBare)); + } + + public override toU8a (isBare?: boolean): Uint8Array { + return isBare + ? this.encode() + : compactAddLength(this.encode()); + } + + public override toRawType () { + return 'GeneralExt'; + } + + /** + * + * @description Returns an encoded GeneralExtrinsic + */ + public encode () { + return u8aConcat(new Uint8Array([this.version | this.preamble]), super.toU8a()); + } + + public signFake () { + throw new Error('Extrinsic: Type GeneralExtrinsic does not have signFake implemented'); + } + + public addSignature () { + throw new Error('Extrinsic: Type GeneralExtrinsic does not have addSignature implemented'); + } + + public sign () { + throw new Error('Extrinsic: Type GeneralExtrinsic does not have sign implemented'); + } + + public signature () { + throw new Error('Extrinsic: Type GeneralExtrinsic does not have the signature getter'); + } +} diff --git a/packages/types/src/extrinsic/v5/index.ts b/packages/types/src/extrinsic/v5/index.ts new file mode 100644 index 0000000..5a7ab21 --- /dev/null +++ b/packages/types/src/extrinsic/v5/index.ts @@ -0,0 +1,7 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { GenericExtrinsicV5 } from './Extrinsic.js'; +export { GenericExtrinsicPayloadV5 } from './ExtrinsicPayload.js'; +export { GenericExtrinsicSignatureV5 } from './ExtrinsicSignature.js'; +export { GeneralExtrinsic } from './GeneralExtrinsic.js'; diff --git a/packages/types/src/generic/AccountId.spec.ts b/packages/types/src/generic/AccountId.spec.ts new file mode 100644 index 0000000..60c4ff2 --- /dev/null +++ b/packages/types/src/generic/AccountId.spec.ts @@ -0,0 +1,179 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import { Raw } from '@pezkuwi/types-codec'; +import jsonVec from '@pezkuwi/types-support/json/AccountIdVec.001.json' assert { type: 'json' }; + +import { TypeRegistry } from '../create/index.js'; + +describe('AccountId', (): void => { + const registry = new TypeRegistry(); + + describe('defaults', (): void => { + const id = registry.createType('AccountId'); + + it('has a 32-byte length', (): void => { + expect(id).toHaveLength(32); + }); + + it('is empty by default', (): void => { + expect(id.isEmpty).toBe(true); + }); + + it('equals the empty address', (): void => { + expect(id.eq('5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM')).toBe(true); + }); + + it('allows decoding from null', (): void => { + expect( + registry + .createType('AccountId', null) + .eq('5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM') + ).toBe(true); + }); + }); + + describe('decoding', (): void => { + const testDecode = (type: string, input: Uint8Array | string, expected: string, createType = 'AccountId'): void => + it(`can decode from ${type}`, (): void => { + expect( + registry + .createType(createType, input) + .toString() + ).toBe(expected); + }); + + it('fails with non-32-byte lengths', (): void => { + expect( + () => registry.createType('AccountId', '0x1234') + ).toThrow(/Invalid AccountId provided, expected 32 bytes/); + }); + + it('correctly encodes for AccountId32', (): void => { + const s = '5CHCWUYMmDGeJjiuaQ1LnrsAWacDhiTAV6vCfytSxoqBdCCb'; + const h = '0x0987654309876543098765430987654309876543098765430987654309876543'; + const a = registry.createType('AccountId32', s); + + expect(a).toHaveLength(32); + expect(a.toHex()).toEqual(h); + expect(a.toString()).toEqual(s); + expect(registry.createType('AccountId32', h).toString()).toEqual(s); + }); + + it('correctly encodes for AccountId33', (): void => { + const s = 'KWnVo6ZQe9A3fHZy4QYWMR6QyZLT4hxUs37pX465bKhfsMobh'; + const h = '0x098765430987654309876543098765430987654309876543098765430987654309'; + const a = registry.createType('AccountId33', s); + + expect(a).toHaveLength(33); + expect(a.toHex()).toEqual(h); + expect(a.toString()).toEqual(s); + expect(registry.createType('AccountId33', h).toString()).toEqual(s); + }); + + testDecode( + 'AccountId', + registry.createType('AccountId', '0x0102030405060708010203040506070801020304050607080102030405060708'), + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testDecode( + 'AccountId33', + registry.createType('AccountId33', '0x098765430987654309876543098765430987654309876543098765430987654309'), + 'KWnVo6ZQe9A3fHZy4QYWMR6QyZLT4hxUs37pX465bKhfsMobh', + 'AccountId33' + ); + testDecode('hex', '0x0102030405060708010203040506070801020304050607080102030405060708', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + testDecode('string', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + testDecode( + 'Raw', + new Raw(registry, [ + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 + ]), + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testDecode( + 'Uint8Array', + Uint8Array.from([ + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 + ]), + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + }); + + describe('encoding', (): void => { + const testEncode = (to: 'toHex' | 'toJSON' | 'toString' | 'toU8a', expected: Uint8Array | string, input = '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'): void => + it(`can encode ${to}`, (): void => { + expect( + registry.createType('AccountId', input)[to]() + ).toEqual(expected); + }); + + testEncode('toHex', '0x0102030405060708010203040506070801020304050607080102030405060708'); + testEncode('toJSON', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + testEncode('toString', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + testEncode('toString', '5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM', '0x0000000000000000000000000000000000000000000000000000000000000000'); + testEncode('toU8a', Uint8Array.from([ + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 + ])); + + it('decodes to a non-empty value', (): void => { + expect( + registry + .createType('AccountId', 'FVU8T5yaAssHAUwo3PnKso7fqNthEqJZGCZgJZSR9cKjWAf') + .isEmpty + ).toBe(false); + }); + + it('encodes a 2-byte key correctly', (): void => { + const registry = new TypeRegistry(); + + registry.setChainProperties( + registry.createType('ChainProperties', { + ss58Format: 252 + }) + ); + + expect( + registry + .createType('AccountId', '0x5c64f1151f0ce4358c27238fb20c88e7c899825436f565410724c8c2c5add869') + .toString() + ).toEqual('xw5g1Eec8LT99pZLZMaTWwrwvNtfM6vrSuZeVbtEszCDUwByg'); + }); + }); + + describe('storage decoding', (): void => { + it('has the correct entries', (): void => { + const registry = new TypeRegistry(); + + registry.setChainProperties( + registry.createType('ChainProperties', { + ss58Format: 2 + }) + ); + + const data = registry.createType('StorageData', jsonVec.params.result.changes[0][1]); + + expect( + registry + .createType('Vec', data) + .map((accountId) => accountId.toString()) + ).toEqual([ + 'FXmrFbdg2VdG1NttGTx1S6Czbv2SQ7PaD2PfryGBWWgt52i', + 'ELSnAoxwXaRP5i4RPjs6m1K3AGVCfXpt8GjTcrgtxvrAuZv', + 'EaoT1Mn6H3N9Ui3WdiLGTdKgjGChbrpLfnNV5zSLJLhZvgj', + 'FVU8T5yaAssHAUwo3PnKso7fqNthEqJZGCZgJZSR9cKjWAf', + 'GCgYfZti2kHwWoixFJ9toWZPZrcesc8CZDAoBGhiUNKvTQM', + 'DMYFwYVNgLqpiD73eoLEMLnzszXyEnvhxL1bPGhSGXKV8kS', + 'CfdSPZKSb529oMZ9HeFw6p9fhiGS6i45FEgFaJazhmBzsxZ', + 'DNaSBo4xxQMjwbhAZwSzaK8taaBTKVXtnNygqYUpXS4FMwN' + ]); + }); + }); +}); diff --git a/packages/types/src/generic/AccountId.ts b/packages/types/src/generic/AccountId.ts new file mode 100644 index 0000000..898982f --- /dev/null +++ b/packages/types/src/generic/AccountId.ts @@ -0,0 +1,100 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyString, AnyU8a, Registry, U8aBitLength } from '@pezkuwi/types-codec/types'; + +import { U8aFixed } from '@pezkuwi/types-codec'; +import { hexToU8a, isHex, isString, isU8a, u8aToU8a } from '@pezkuwi/util'; +import { decodeAddress, encodeAddress } from '@pezkuwi/util-crypto'; + +/** @internal */ +function decodeAccountId (value?: AnyU8a | AnyString): Uint8Array { + if (isU8a(value) || Array.isArray(value)) { + return u8aToU8a(value); + } else if (!value) { + return new Uint8Array(); + } else if (isHex(value)) { + return hexToU8a(value); + } else if (isString(value)) { + return decodeAddress(value.toString()); + } + + throw new Error(`Unknown type passed to AccountId constructor, found typeof ${typeof value}`); +} + +class BaseAccountId extends U8aFixed { + constructor (registry: Registry, allowedBits = 256 | 264, value?: AnyU8a) { + const decoded = decodeAccountId(value); + const decodedBits = decoded.length * 8; + + // Part of stream containing >= 32 bytes or a all empty (defaults) + if (decodedBits < allowedBits && decoded.some((b) => b)) { + throw new Error(`Invalid AccountId provided, expected ${allowedBits >> 3} bytes, found ${decoded.length}`); + } + + super(registry, decoded, allowedBits as U8aBitLength); + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public override eq (other?: unknown): boolean { + return super.eq(decodeAccountId(other as AnyU8a)); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (): string { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): string { + return this.toString(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public override toPrimitive (): string { + return this.toJSON(); + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return encodeAddress(this, this.registry.chainSS58); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'AccountId'; + } +} + +/** + * @name GenericAccountId + * @description + * A wrapper around an AccountId/PublicKey representation. Since we are dealing with + * underlying PublicKeys (32 bytes in length), we extend from U8aFixed which is + * just a Uint8Array wrapper with a fixed length. + * If constructed with an empty value ([], "", undefined) it will result in + * the zero account 0x000...000. + */ +export class GenericAccountId extends BaseAccountId { + constructor (registry: Registry, value?: AnyU8a) { + super(registry, 256, value); + } +} + +export class GenericAccountId33 extends BaseAccountId { + constructor (registry: Registry, value?: AnyU8a) { + super(registry, 264, value); + } +} diff --git a/packages/types/src/generic/AccountIndex.spec.ts b/packages/types/src/generic/AccountIndex.spec.ts new file mode 100644 index 0000000..7fd524b --- /dev/null +++ b/packages/types/src/generic/AccountIndex.spec.ts @@ -0,0 +1,75 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* eslint-disable jest/expect-expect */ + +/// + +import { BN } from '@pezkuwi/util'; + +import { TypeRegistry } from '../create/index.js'; +import { GenericAccountIndex as AccountIndex } from './index.js'; + +describe('AccountIndex', (): void => { + const registry = new TypeRegistry(); + + it('creates a BN representation', (): void => { + expect( + registry.createType('AccountIndex', new Uint8Array([17, 18, 19, 20])).toNumber() + ).toEqual(336794129); + }); + + it('creates from BigInt', (): void => { + expect( + registry.createType('AccountIndex', 336794129n).toNumber() + ).toEqual(336794129); + }); + + it('creates a BN representation (from ss-58)', (): void => { + expect( + registry.createType('AccountIndex', 'Mwz15xP2').toNumber() + ).toEqual(336794129); + }); + + it('constructs 2-byte from number', (): void => { + expect( + registry.createType('AccountIndex', 256 * 1).toString() + ).toEqual('25GUyv'); + }); + + it('constructs from number', (): void => { + expect( + registry.createType('AccountIndex', new BN(336794129)).toString() + ).toEqual('Mwz15xP2'); + }); + + it('compares ss-58 values', (): void => { + expect(registry.createType('AccountIndex', 256 * 1).eq('25GUyv')).toBe(true); + }); + + it('compares numbers', (): void => { + expect(registry.createType('AccountIndex', '118r').eq(256 * 1)).toBe(true); + }); + + describe('calcLength', (): void => { + const testLength = (value: number, length: number): void => { + expect(AccountIndex.calcLength(value)).toEqual(length); + }; + + it('returns 1 for <= 0xef', (): void => { + testLength(0xef, 1); + }); + + it('returns 2 for > 0xef', (): void => { + testLength(0xf0, 2); + }); + + it('returns 4 bytes for 32-bit inputs', (): void => { + testLength(0xffeeddcc, 4); + }); + + it('returns 8 bytes for larger inputs', (): void => { + testLength(0x122334455, 8); + }); + }); +}); diff --git a/packages/types/src/generic/AccountIndex.ts b/packages/types/src/generic/AccountIndex.ts new file mode 100644 index 0000000..cc609e4 --- /dev/null +++ b/packages/types/src/generic/AccountIndex.ts @@ -0,0 +1,129 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyNumber, Registry } from '@pezkuwi/types-codec/types'; + +import { u32 } from '@pezkuwi/types-codec'; +import { BN, bnToBn, isBigInt, isBn, isHex, isNumber, isU8a } from '@pezkuwi/util'; +import { decodeAddress, encodeAddress } from '@pezkuwi/util-crypto'; + +const PREFIX_1BYTE = 0xef; +const PREFIX_2BYTE = 0xfc; +const PREFIX_4BYTE = 0xfd; +const PREFIX_8BYTE = 0xfe; +const MAX_1BYTE = new BN(PREFIX_1BYTE); +const MAX_2BYTE = new BN(1).shln(16); +const MAX_4BYTE = new BN(1).shln(32); + +/** @internal */ +function decodeAccountIndex (value: AnyNumber): BN | bigint | Uint8Array | number | string { + // eslint-disable-next-line @typescript-eslint/no-use-before-define + if (value instanceof GenericAccountIndex) { + // `value.toBn()` on AccountIndex returns a pure BN (i.e. not an + // AccountIndex), which has the initial `toString()` implementation. + return value.toBn(); + } else if (isBn(value) || isNumber(value) || isHex(value) || isU8a(value) || isBigInt(value)) { + return value; + } + + return decodeAccountIndex(decodeAddress(value)); +} + +/** + * @name GenericAccountIndex + * @description + * A wrapper around an AccountIndex, which is a shortened, variable-length encoding + * for an Account. We extends from [[U32]] to provide the number-like properties. + */ +export class GenericAccountIndex extends u32 { + constructor (registry: Registry, value: AnyNumber = new BN(0)) { + super(registry, decodeAccountIndex(value)); + } + + public static calcLength (_value: BN | number): number { + const value = bnToBn(_value); + + if (value.lte(MAX_1BYTE)) { + return 1; + } else if (value.lt(MAX_2BYTE)) { + return 2; + } else if (value.lt(MAX_4BYTE)) { + return 4; + } + + return 8; + } + + public static readLength (input: Uint8Array): [number, number] { + const first = input[0]; + + if (first === PREFIX_2BYTE) { + return [1, 2]; + } else if (first === PREFIX_4BYTE) { + return [1, 4]; + } else if (first === PREFIX_8BYTE) { + return [1, 8]; + } + + return [0, 1]; + } + + public static writeLength (input: Uint8Array): Uint8Array { + switch (input.length) { + case 2: return new Uint8Array([PREFIX_2BYTE]); + case 4: return new Uint8Array([PREFIX_4BYTE]); + case 8: return new Uint8Array([PREFIX_8BYTE]); + default: return new Uint8Array([]); + } + } + + /** + * @description Compares the value of the input to see if there is a match + */ + public override eq (other?: unknown): boolean { + // shortcut for BN or Number, don't create an object + if (isBn(other as string) || isNumber(other)) { + return super.eq(other); + } + + // convert and compare + return super.eq(this.registry.createTypeUnsafe('AccountIndex', [other])); + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (): string { + return this.toJSON(); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): string { + return this.toString(); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public override toPrimitive (): string { + return this.toJSON(); + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + const length = GenericAccountIndex.calcLength(this); + + return encodeAddress(this.toU8a().subarray(0, length), this.registry.chainSS58); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'AccountIndex'; + } +} diff --git a/packages/types/src/generic/Block.spec.ts b/packages/types/src/generic/Block.spec.ts new file mode 100644 index 0000000..d4e1675 --- /dev/null +++ b/packages/types/src/generic/Block.spec.ts @@ -0,0 +1,49 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable sort-keys */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import type { BlockValue } from './Block.js'; + +import block00300 from '@pezkuwi/types-support/json/SignedBlock.003.00.json' assert { type: 'json' }; +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { stringify } from '@pezkuwi/util'; + +import { TypeRegistry } from '../create/index.js'; +import { Metadata } from '../metadata/index.js'; +import { GenericBlock as Block } from './Block.js'; + +interface BlockJson { + result: { + block: BlockValue; + }; +} + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, metadataStatic); + +registry.setMetadata(metadata); + +describe('Block', (): void => { + it('has a valid toRawType', (): void => { + expect( + new Block(registry).toRawType() + ).toEqual( + // each of the containing structures have been stringified on their own + stringify({ + header: 'Header', + extrinsics: 'Vec' + }) + ); + }); + + it('re-encodes digest items correctly', (): void => { + const digest = new Block(registry, (block00300 as BlockJson).result.block).header.digest; + + expect(digest.logs[0].toHex()).toEqual((block00300 as BlockJson).result.block.header?.digest?.logs[0]); + expect(digest.logs[1].toHex()).toEqual((block00300 as BlockJson).result.block.header?.digest?.logs[1]); + }); +}); diff --git a/packages/types/src/generic/Block.ts b/packages/types/src/generic/Block.ts new file mode 100644 index 0000000..1a35460 --- /dev/null +++ b/packages/types/src/generic/Block.ts @@ -0,0 +1,65 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Vec } from '@pezkuwi/types-codec'; +import type { AnyNumber, AnyU8a, IU8a, Registry } from '@pezkuwi/types-codec/types'; +import type { GenericExtrinsic } from '../extrinsic/Extrinsic.js'; +import type { Digest, DigestItem, Header } from '../interfaces/runtime/index.js'; + +import { Struct } from '@pezkuwi/types-codec'; + +export interface HeaderValue { + digest?: Digest | { logs: DigestItem[] | string[] }; + extrinsicsRoot?: AnyU8a; + number?: AnyNumber; + parentHash?: AnyU8a; + stateRoot?: AnyU8a; +} + +export interface BlockValue { + extrinsics?: AnyU8a[]; + header?: HeaderValue; +} + +/** + * @name GenericBlock + * @description + * A block encoded with header and extrinsics + */ +export class GenericBlock extends Struct { + constructor (registry: Registry, value?: BlockValue | Uint8Array) { + super(registry, { + header: 'Header', + // eslint-disable-next-line sort-keys + extrinsics: 'Vec' + }, value); + } + + /** + * @description Encodes a content [[Hash]] for the block + */ + public get contentHash (): IU8a { + return this.registry.hash(this.toU8a()); + } + + /** + * @description The [[Extrinsic]] contained in the block + */ + public get extrinsics (): Vec { + return this.getT('extrinsics'); + } + + /** + * @description Block/header [[Hash]] + */ + public override get hash (): IU8a { + return this.header.hash; + } + + /** + * @description The [[Header]] of the block + */ + public get header (): Header { + return this.getT('header'); + } +} diff --git a/packages/types/src/generic/Call.spec.ts b/packages/types/src/generic/Call.spec.ts new file mode 100644 index 0000000..5c32f66 --- /dev/null +++ b/packages/types/src/generic/Call.spec.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../create/index.js'; +import { Metadata } from '../metadata/index.js'; +import { GenericCall as Call } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, metadataStatic); + +registry.setMetadata(metadata); + +describe('Call', (): void => { + // balances.forceSetBalance(0x, 0) + const FSBU8 = new Uint8Array([ + // index + 6, 8, + // id lookup + 0, + // public + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, + // value + 0 + ]); + + it('handles decoding correctly (bare)', (): void => { + expect( + new Call(registry, { + args: ['0x0000000000000000000000000000000000000000000000000000000000000000', 0], + callIndex: [6, 8] + }).toU8a() + ).toEqual(FSBU8); + }); + + it('handles creation from a hex value properly', (): void => { + expect( + new Call(registry, '0x0608000000000000000000000000000000000000000000000000000000000000000000').toU8a() + ).toEqual(FSBU8); + }); +}); diff --git a/packages/types/src/generic/Call.ts b/packages/types/src/generic/Call.ts new file mode 100644 index 0000000..7afbf3e --- /dev/null +++ b/packages/types/src/generic/Call.ts @@ -0,0 +1,244 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, AnyTuple, AnyU8a, ArgsDef, Codec, IMethod, Registry } from '@pezkuwi/types-codec/types'; +import type { FunctionMetadataLatest } from '../interfaces/metadata/index.js'; +import type { CallBase, CallFunction, InterfaceTypes } from '../types/index.js'; + +import { Struct, U8aFixed } from '@pezkuwi/types-codec'; +import { isHex, isObject, isU8a, objectSpread, u8aToU8a } from '@pezkuwi/util'; + +interface DecodeMethodInput { + args: unknown; + // eslint-disable-next-line no-use-before-define + callIndex: GenericCallIndex | Uint8Array; +} + +interface DecodedMethod extends DecodeMethodInput { + argsDef: ArgsDef; + meta: FunctionMetadataLatest; +} + +/** + * Get a mapping of `argument name -> argument type` for the function, from + * its metadata. + * + * @param meta - The function metadata used to get the definition. + * @internal + */ +function getArgsDef (registry: Registry, meta: FunctionMetadataLatest): ArgsDef { + return meta.fields.reduce((result, { name, type }, index): ArgsDef => { + result[name.unwrapOr(`param${index}`).toString()] = registry.createLookupType(type) as keyof InterfaceTypes; + + return result; + }, {} as ArgsDef); +} + +/** @internal */ +function decodeCallViaObject (registry: Registry, value: DecodedMethod, _meta?: FunctionMetadataLatest): DecodedMethod { + // we only pass args/methodsIndex out + const { args, callIndex } = value; + + // Get the correct lookupIndex + // eslint-disable-next-line @typescript-eslint/no-use-before-define + const lookupIndex = callIndex instanceof GenericCallIndex + ? callIndex.toU8a() + : callIndex; + + // Find metadata with callIndex + const meta = _meta || registry.findMetaCall(lookupIndex).meta; + + return { + args, + argsDef: getArgsDef(registry, meta), + callIndex, + meta + }; +} + +/** @internal */ +function decodeCallViaU8a (registry: Registry, value: Uint8Array, _meta?: FunctionMetadataLatest): DecodedMethod { + // We need 2 bytes for the callIndex + const callIndex = registry.firstCallIndex.slice(); + + callIndex.set(value.subarray(0, 2), 0); + + // Find metadata with callIndex + const meta = _meta || registry.findMetaCall(callIndex).meta; + + return { + args: value.subarray(2), + argsDef: getArgsDef(registry, meta), + callIndex, + meta + }; +} + +/** + * Decode input to pass into constructor. + * + * @param value - Value to decode, one of: + * - hex + * - Uint8Array + * - {@see DecodeMethodInput} + * @param _meta - Metadata to use, so that `injectMethods` lookup is not + * necessary. + * @internal + */ +function decodeCall (registry: Registry, value: unknown = new Uint8Array(), _meta?: FunctionMetadataLatest): DecodedMethod { + if (isU8a(value) || isHex(value)) { + return decodeCallViaU8a(registry, u8aToU8a(value), _meta); + } else if (isObject(value) && value.callIndex && value.args) { + return decodeCallViaObject(registry, value, _meta); + } + + throw new Error(`Call: Cannot decode value '${value as string}' of type ${typeof value}`); +} + +/** + * @name GenericCallIndex + * @description + * A wrapper around the `[sectionIndex, methodIndex]` value that uniquely identifies a method + */ +export class GenericCallIndex extends U8aFixed { + constructor (registry: Registry, value?: AnyU8a) { + super(registry, value, 16); + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public override toPrimitive (): string { + return this.toHex(); + } +} + +/** + * @name GenericCall + * @description + * Extrinsic function descriptor + */ +export class GenericCall extends Struct implements CallBase { + protected _meta: FunctionMetadataLatest; + + constructor (registry: Registry, value: unknown, meta?: FunctionMetadataLatest) { + const decoded = decodeCall(registry, value, meta); + + try { + super(registry, { + callIndex: GenericCallIndex, + // eslint-disable-next-line sort-keys + args: Struct.with(decoded.argsDef) + }, decoded); + } catch (error) { + let method = 'unknown.unknown'; + + try { + const c = registry.findMetaCall(decoded.callIndex); + + method = `${c.section}.${c.method}`; + } catch { + // ignore + } + + throw new Error(`Call: failed decoding ${method}:: ${(error as Error).message}`); + } + + this._meta = decoded.meta; + } + + /** + * @description The arguments for the function call + */ + public get args (): A { + return [...this.getT('args').values()] as A; + } + + /** + * @description The argument definitions + */ + public get argsDef (): ArgsDef { + return getArgsDef(this.registry, this.meta); + } + + /** + * @description The argument entries + */ + public get argsEntries (): [string, Codec][] { + return [...this.getT('args').entries()]; + } + + /** + * @description The encoded `[sectionIndex, methodIndex]` identifier + */ + public get callIndex (): Uint8Array { + return this.getT('callIndex').toU8a(); + } + + /** + * @description The encoded data + */ + public get data (): Uint8Array { + return this.getT('args').toU8a(); + } + + /** + * @description The [[FunctionMetadata]] + */ + public get meta (): FunctionMetadataLatest { + return this._meta; + } + + /** + * @description Returns the name of the method + */ + public get method (): string { + return this.registry.findMetaCall(this.callIndex).method; + } + + /** + * @description Returns the module containing the method + */ + public get section (): string { + return this.registry.findMetaCall(this.callIndex).section; + } + + /** + * @description Checks if the source matches this in type + */ + public is (other: IMethod): other is IMethod { + return other.callIndex[0] === this.callIndex[0] && other.callIndex[1] === this.callIndex[1]; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExpanded?: boolean, disableAscii?: boolean): Record { + let call: CallFunction | undefined; + + try { + call = this.registry.findMetaCall(this.callIndex); + } catch { + // swallow + } + + return objectSpread( + { + args: this.argsEntries.reduce>((args, [n, a]) => + objectSpread(args, { [n]: a.toHuman(isExpanded, disableAscii) }), {}), + method: call?.method, + section: call?.section + }, + isExpanded && call + ? { docs: call.meta.docs.map((d) => d.toString()) } + : null + ); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Call'; + } +} diff --git a/packages/types/src/generic/ChainProperties.spec.ts b/packages/types/src/generic/ChainProperties.spec.ts new file mode 100644 index 0000000..6ef8fd6 --- /dev/null +++ b/packages/types/src/generic/ChainProperties.spec.ts @@ -0,0 +1,95 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; + +describe('ChainProperties', (): void => { + const registry = new TypeRegistry(); + + it('decodes from a null value (setting defaults)', (): void => { + expect( + [...registry.createType('ChainProperties', null).keys()] + ).toEqual(['isEthereum', 'ss58Format', 'tokenDecimals', 'tokenSymbol']); + }); + + it('decodes from an actual JSON', (): void => { + const { isEthereum, ss58Format, tokenDecimals, tokenSymbol } = registry.createType('ChainProperties', JSON.parse('{"isEthereum":false,"ss58Format":2,"tokenDecimals":12,"tokenSymbol":"KSM"}')); + + expect(ss58Format.unwrap().eq(2)).toBe(true); + expect(tokenDecimals.unwrap().eq([12])).toBe(true); + expect(tokenSymbol.unwrap().eq(['KSM'])).toBe(true); + expect(isEthereum.isFalse).toBe(true); + }); + + it('decodes from an actual object (multiple tokens)', (): void => { + const { isEthereum, ss58Format, tokenDecimals, tokenSymbol } = registry.createType('ChainProperties', { + isEthereum: undefined, + ss58Format: undefined, + tokenDecimals: [10, 12], + tokenSymbol: ['pDOT', 'pKSM'] + }); + + expect(isEthereum.isFalse).toBe(true); + expect(ss58Format.isNone).toBe(true); + expect(tokenDecimals.unwrap().eq([10, 12])).toBe(true); + expect(tokenSymbol.unwrap().eq(['pDOT', 'pKSM'])).toBe(true); + }); + + it('decodes from an object, flagged for non-existent ss58Format', (): void => { + const { isEthereum, ss58Format, tokenDecimals, tokenSymbol } = registry.createType('ChainProperties', { tokenSymbol: 'DEV' }); + + expect(isEthereum.isFalse).toBe(true); + expect(ss58Format.isNone).toBe(true); + expect(tokenDecimals.isNone).toBe(true); + expect(tokenSymbol.isSome).toBe(true); + }); + + it('decodes from a ChainProperties object', (): void => { + const original = registry.createType('ChainProperties', { + isEthereum: true, + ss58Format: 2, + tokenDecimals: 15, + tokenSymbol: 'KSM' + }); + const { isEthereum, ss58Format, tokenDecimals, tokenSymbol } = registry.createType('ChainProperties', original); + + expect(isEthereum.isTrue).toBe(true); + expect(ss58Format.unwrap().eq(2)).toBe(true); + expect(tokenDecimals.unwrap().eq([15])).toBe(true); + expect(tokenSymbol.unwrap().eq(['KSM'])).toBe(true); + }); + + it('has a sane toHuman (single tokenDecimals)', (): void => { + expect( + registry.createType('ChainProperties', { + isEthereum: false, + ss58Format: 42, + tokenDecimals: registry.createType('u32', 9), + tokenSymbol: ['Unit', 'Aux1'] + }).toHuman() + ).toEqual({ + isEthereum: false, + ss58Format: '42', + tokenDecimals: ['9'], + tokenSymbol: ['Unit', 'Aux1'] + }); + }); + + it('has a sane toHuman (multiple tokenDecimals)', (): void => { + expect( + registry.createType('ChainProperties', { + isEthereum: false, + ss58Format: 2, + tokenDecimals: [registry.createType('u32', 12), 8], + tokenSymbol: ['KSM', 'BTC'] + }).toHuman() + ).toEqual({ + isEthereum: false, + ss58Format: '2', + tokenDecimals: ['12', '8'], + tokenSymbol: ['KSM', 'BTC'] + }); + }); +}); diff --git a/packages/types/src/generic/ChainProperties.ts b/packages/types/src/generic/ChainProperties.ts new file mode 100644 index 0000000..d69b5f3 --- /dev/null +++ b/packages/types/src/generic/ChainProperties.ts @@ -0,0 +1,93 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { bool as Bool, Option, Text, u32, Vec } from '@pezkuwi/types-codec'; +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { Codec } from '../types/index.js'; + +import { Json } from '@pezkuwi/types-codec'; +import { isFunction, isNull, isUndefined } from '@pezkuwi/util'; + +function createValue (registry: Registry, type: string, value: unknown, asArray = true): Option { + // We detect codec here as well - when found, generally this is constructed from itself + if (value && isFunction((value as Option).unwrapOrDefault)) { + return value as Option; + } + + return registry.createTypeUnsafe>( + type, + [ + asArray + ? isNull(value) || isUndefined(value) + ? null + : Array.isArray(value) + ? value + : [value] + : value + ] + ); +} + +function decodeValue (registry: Registry, key: string, value: unknown): unknown { + return key === 'ss58Format' + ? createValue(registry, 'Option', value, false) + : key === 'tokenDecimals' + ? createValue(registry, 'Option>' as 'Vec', value) + : key === 'tokenSymbol' + ? createValue(registry, 'Option>' as 'Vec', value) + : key === 'isEthereum' + ? createValue(registry, 'Bool', value, false) + : value; +} + +function decode (registry: Registry, value?: Map | Record | null): Record { + return ( + // allow decoding from a map as well (ourselves) + value && isFunction((value as Map).entries) + ? [...(value as Map).entries()] + : Object.entries(value || {}) + ).reduce((all: Record, [key, value]) => { + all[key] = decodeValue(registry, key, value); + + return all; + }, { + isEthereum: registry.createTypeUnsafe('Bool', []), + ss58Format: registry.createTypeUnsafe('Option', []), + tokenDecimals: registry.createTypeUnsafe('Option>', []), + tokenSymbol: registry.createTypeUnsafe('Option>', []) + }); +} + +export class GenericChainProperties extends Json { + constructor (registry: Registry, value?: Map | Record | null) { + super(registry, decode(registry, value)); + } + + /** + * @description The chain uses Ethereum addresses + */ + public get isEthereum (): Bool { + return this.getT('isEthereum'); + } + + /** + * @description The chain ss58Format + */ + public get ss58Format (): Option { + return this.getT('ss58Format'); + } + + /** + * @description The decimals for each of the tokens + */ + public get tokenDecimals (): Option> { + return this.getT('tokenDecimals'); + } + + /** + * @description The symbols for the tokens + */ + public get tokenSymbol (): Option> { + return this.getT('tokenSymbol'); + } +} diff --git a/packages/types/src/generic/ConsensusEngineId.spec.ts b/packages/types/src/generic/ConsensusEngineId.spec.ts new file mode 100644 index 0000000..e31b601 --- /dev/null +++ b/packages/types/src/generic/ConsensusEngineId.spec.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; +import { CID_AURA, CID_NMBS, GenericConsensusEngineId as ConsensusEngineId } from './ConsensusEngineId.js'; + +describe('ConsensusEngineId', (): void => { + const registry = new TypeRegistry(); + + it('creates a valid id for aura', (): void => { + expect(new ConsensusEngineId(registry, 'aura').toU8a()).toEqual(CID_AURA); + }); + + it('reverses an id to string for babe', (): void => { + expect(new ConsensusEngineId(registry, 'BABE').toString()).toEqual('BABE'); + }); + + it('creates a valid id for nimbus', (): void => { + expect(new ConsensusEngineId(registry, 'nmbs').toU8a()).toEqual(CID_NMBS); + }); +}); diff --git a/packages/types/src/generic/ConsensusEngineId.ts b/packages/types/src/generic/ConsensusEngineId.ts new file mode 100644 index 0000000..d5e47f6 --- /dev/null +++ b/packages/types/src/generic/ConsensusEngineId.ts @@ -0,0 +1,131 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes, u32 } from '@pezkuwi/types-codec'; +import type { AnyU8a, Registry } from '@pezkuwi/types-codec/types'; +import type { AccountId, RawAuraPreDigest, RawBabePreDigestCompat } from '../interfaces/index.js'; + +import { U8aFixed } from '@pezkuwi/types-codec'; +import { BN, bnToU8a, isNumber, stringToU8a, u8aToHex, u8aToString } from '@pezkuwi/util'; + +export const CID_AURA = /*#__PURE__*/ stringToU8a('aura'); +export const CID_BABE = /*#__PURE__*/ stringToU8a('BABE'); +export const CID_GRPA = /*#__PURE__*/ stringToU8a('FRNK'); +export const CID_POW = /*#__PURE__*/ stringToU8a('pow_'); +export const CID_NMBS = /*#__PURE__*/ stringToU8a('nmbs'); + +function getAuraAuthor (registry: Registry, bytes: Bytes, sessionValidators: AccountId[]): AccountId { + return sessionValidators[ + registry.createTypeUnsafe('RawAuraPreDigest', [bytes.toU8a(true)]) + .slotNumber + .mod(new BN(sessionValidators.length)) + .toNumber() + ]; +} + +function getBabeAuthor (registry: Registry, bytes: Bytes, sessionValidators: AccountId[]): AccountId { + const digest = registry.createTypeUnsafe('RawBabePreDigestCompat', [bytes.toU8a(true)]); + + return sessionValidators[ + (digest.value as u32).toNumber() + ]; +} + +function getBytesAsAuthor (registry: Registry, bytes: Bytes): AccountId { + return registry.createTypeUnsafe('AccountId', [bytes]); +} + +/** + * @name GenericConsensusEngineId + * @description + * A 4-byte identifier identifying the engine + */ +export class GenericConsensusEngineId extends U8aFixed { + constructor (registry: Registry, value?: AnyU8a) { + super( + registry, + isNumber(value) + ? bnToU8a(value, { isLe: false }) + : value, + 32 + ); + } + + /** + * @description `true` if the engine matches aura + */ + public get isAura (): boolean { + return this.eq(CID_AURA); + } + + /** + * @description `true` is the engine matches babe + */ + public get isBabe (): boolean { + return this.eq(CID_BABE); + } + + /** + * @description `true` is the engine matches grandpa + */ + public get isGrandpa (): boolean { + return this.eq(CID_GRPA); + } + + /** + * @description `true` is the engine matches pow + */ + public get isPow (): boolean { + return this.eq(CID_POW); + } + + /** + * @description `true` is the engine matches nimbus + */ + public get isNimbus (): boolean { + return this.eq(CID_NMBS); + } + + /** + * @description From the input bytes, decode into an author + */ + public extractAuthor (bytes: Bytes, sessionValidators: AccountId[]): AccountId | undefined { + if (sessionValidators?.length) { + if (this.isAura) { + return getAuraAuthor(this.registry, bytes, sessionValidators); + } else if (this.isBabe) { + return getBabeAuthor(this.registry, bytes, sessionValidators); + } + } + + // For pow & Nimbus, the bytes are the actual author + if (this.isPow || this.isNimbus) { + return getBytesAsAuthor(this.registry, bytes); + } + + return undefined; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (): string { + return this.toString(); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'ConsensusEngineId'; + } + + /** + * @description Override the default toString to return a 4-byte string + */ + public override toString (): string { + return this.isAscii + ? u8aToString(this) + : u8aToHex(this); + } +} diff --git a/packages/types/src/generic/Event.ts b/packages/types/src/generic/Event.ts new file mode 100644 index 0000000..938f377 --- /dev/null +++ b/packages/types/src/generic/Event.ts @@ -0,0 +1,200 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, Codec, CodecClass } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { EventMetadataLatest } from '../interfaces/metadata/index.js'; +import type { EventId } from '../interfaces/system/index.js'; +import type { IEvent, IEventData, InterfaceTypes, Registry } from '../types/index.js'; + +import { Null, Struct, Tuple } from '@pezkuwi/types-codec'; +import { objectProperties, objectSpread } from '@pezkuwi/util'; + +interface Decoded { + DataType: CodecClass | CodecClass; + value?: { + index: Uint8Array; + data: Uint8Array; + } +} + +/** @internal */ +function decodeEvent (registry: Registry, value?: Uint8Array): Decoded { + if (!value?.length) { + return { DataType: Null }; + } + + const index = value.subarray(0, 2); + + return { + DataType: registry.findMetaEvent(index), + value: { + data: value.subarray(2), + index + } + }; +} + +/** + * @name GenericEventData + * @description + * Wrapper for the actual data that forms part of an [[Event]] + */ +export class GenericEventData extends Tuple implements IEventData { + readonly #meta: EventMetadataLatest; + readonly #method: string; + readonly #names: string[] | null = null; + readonly #section: string; + readonly #typeDef: TypeDef[]; + + constructor (registry: Registry, value: Uint8Array, meta: EventMetadataLatest, section = '', method = '') { + const fields = meta?.fields || []; + + super(registry, fields.map(({ type }) => registry.createLookupType(type) as keyof InterfaceTypes), value); + + this.#meta = meta; + this.#method = method; + this.#section = section; + this.#typeDef = fields.map(({ type }) => registry.lookup.getTypeDef(type)); + + const names = fields + .map(({ name }) => registry.lookup.sanitizeField(name)[0]) + .filter((n): n is string => !!n); + + if (names.length === fields.length) { + this.#names = names; + + objectProperties(this, names, (_, i) => this[i]); + } + } + + /** + * @description The wrapped [[EventMetadata]] + */ + public get meta (): EventMetadataLatest { + return this.#meta; + } + + /** + * @description The method as a string + */ + public get method (): string { + return this.#method; + } + + /** + * @description The field names (as available) + */ + public get names (): string[] | null { + return this.#names; + } + + /** + * @description The section as a string + */ + public get section (): string { + return this.#section; + } + + /** + * @description The [[TypeDef]] for this event + */ + public get typeDef (): TypeDef[] { + return this.#typeDef; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExtended?: boolean, disableAscii?: boolean): AnyJson { + if (this.#names !== null) { + const json: Record = {}; + + for (let i = 0, count = this.#names.length; i < count; i++) { + json[this.#names[i]] = this[i].toHuman(isExtended, disableAscii); + } + + return json; + } + + return super.toHuman(isExtended); + } +} + +/** + * @name GenericEvent + * @description + * A representation of a system event. These are generated via the [[Metadata]] interfaces and + * specific to a specific Bizinikiwi runtime + */ +export class GenericEvent extends Struct implements IEvent { + // Currently we _only_ decode from Uint8Array, since we expect it to + // be used via EventRecord + constructor (registry: Registry, _value?: Uint8Array) { + const { DataType, value } = decodeEvent(registry, _value); + + super(registry, { + index: 'EventId', + // eslint-disable-next-line sort-keys + data: DataType + }, value); + } + + /** + * @description The wrapped [[EventData]] + */ + public get data (): IEvent['data'] { + return this.getT('data'); + } + + /** + * @description The [[EventId]], identifying the raw event + */ + public get index (): EventId { + return this.getT('index'); + } + + /** + * @description The [[EventMetadata]] with the documentation + */ + public get meta (): EventMetadataLatest { + return this.data.meta; + } + + /** + * @description The method string identifying the event + */ + public get method (): string { + return this.data.method; + } + + /** + * @description The section string identifying the event + */ + public get section (): string { + return this.data.section; + } + + /** + * @description The [[TypeDef]] for the event + */ + public get typeDef (): TypeDef[] { + return this.data.typeDef; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExpanded?: boolean, disableAscii?: boolean): Record { + return objectSpread( + { + method: this.method, + section: this.section + }, + isExpanded + ? { docs: this.meta.docs.map((d) => d.toString()) } + : null, + super.toHuman(isExpanded, disableAscii) + ); + } +} diff --git a/packages/types/src/generic/LookupSource.spec.ts b/packages/types/src/generic/LookupSource.spec.ts new file mode 100644 index 0000000..2c86bd8 --- /dev/null +++ b/packages/types/src/generic/LookupSource.spec.ts @@ -0,0 +1,123 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { GenericAccountId as AccountId, GenericAccountIndex as AccountIndex, GenericLookupSource as LookupSource } from './index.js'; + +import { TypeRegistry } from '../create/index.js'; + +describe('LookupSource', (): void => { + const registry = new TypeRegistry(); + + const testDecode = (type: string, input: LookupSource | AccountId | AccountIndex | number[] | Uint8Array, expected: string): void => + it(`can decode from ${type}`, (): void => { + const a = registry.createType('IndicesLookupSource', input); + + expect(a.toString()).toBe(expected); + }); + + describe('utility', (): void => { + it('equals on AccountId', (): void => { + const addr = '5DkQbYAExs3M2sZgT1Ec3mKfZnAQCL4Dt9beTCknkCUn5jzo'; + + expect(registry.createType('IndicesLookupSource', addr).eq(addr)).toBe(true); + }); + + it('equals on AccountIndex', (): void => { + // see the test below - these are equivalent (with different prefix encoding) + expect(registry.createType('IndicesLookupSource', '118r').eq('25GUyv')).toBe(true); + }); + }); + + describe('decoding', (): void => { + testDecode( + 'Address', + registry.createType('IndicesLookupSource', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'), + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testDecode( + 'AccountId', + registry.createType('AccountId', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'), + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testDecode( + 'AccountIndex (mixed prefixes)', + registry.createType('IndicesLookupSource', '118r'), + // NOTE Expected address here is encoded with prefix 42, input above with 1 + '25GUyv' + ); + testDecode( + 'AccountIndex (hex)', + registry.createType('AccountIndex', '0x0100'), + '25GUyv' + ); + testDecode( + 'Array', + [ + 255, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 + ], + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testDecode( + 'Uint8Array (with prefix 255)', + Uint8Array.from([ + 255, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 + ]), + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testDecode( + 'Uint8Array (with prefix 1 byte)', + Uint8Array.from([1]), + 'F7NZ' + ); + testDecode( + 'Uint8Array (with prefix 2 bytes)', + Uint8Array.from([0xfc, 0, 1]), + '25GUyv' + ); + testDecode( + 'Uint8Array (with prefix 4 bytes)', + Uint8Array.from([0xfd, 17, 18, 19, 20]), + 'Mwz15xP2' + ); + // FIXME The specification allows for 8 byte addresses, however since AccountIndex is u32 internally + // (and defined that way in the default Bizinikiwi),this does not actually work since it is 8 bytes, + // instead of 4 bytes max u32 length + // testDecode( + // 'Uint8Array (with prefix 8 bytes)', + // Uint8Array.from([0xfe, 17, 18, 19, 20, 21, 22, 23, 24]), + // '3N5RJXxM5fLd4h' + // ); + }); + + describe('encoding', (): void => { + const testEncode = (to: 'toHex' | 'toString' | 'toU8a', expected: string | Uint8Array): void => + it(`can encode ${to}`, (): void => { + const a = registry.createType('IndicesLookupSource', '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + + expect(a[to]()).toEqual(expected); + }); + + testEncode( + 'toHex', + '0xff0102030405060708010203040506070801020304050607080102030405060708' + ); + testEncode( + 'toString', + '5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF' + ); + testEncode( + 'toU8a', + Uint8Array.from([ + 255, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8, + 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 3, 4, 5, 6, 7, 8 + ]) + ); + }); +}); diff --git a/packages/types/src/generic/LookupSource.ts b/packages/types/src/generic/LookupSource.ts new file mode 100644 index 0000000..bd2e233 --- /dev/null +++ b/packages/types/src/generic/LookupSource.ts @@ -0,0 +1,141 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Inspect, Registry } from '@pezkuwi/types-codec/types'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; + +import { AbstractBase } from '@pezkuwi/types-codec'; +import { isBigInt, isBn, isHex, isNumber, isU8a, u8aConcat, u8aToBn, u8aToHex, u8aToU8a } from '@pezkuwi/util'; +import { decodeAddress } from '@pezkuwi/util-crypto'; + +import { GenericAccountId } from './AccountId.js'; +import { GenericAccountIndex } from './AccountIndex.js'; + +// eslint-disable-next-line no-use-before-define +type AnyAddress = bigint | BN | GenericLookupSource | GenericAccountId | GenericAccountIndex | number[] | Uint8Array | number | string; + +export const ACCOUNT_ID_PREFIX = new Uint8Array([0xff]); + +/** @internal */ +function decodeString (registry: Registry, value: string): GenericAccountId | GenericAccountIndex { + const decoded = decodeAddress(value); + + return decoded.length === 32 + ? registry.createTypeUnsafe('AccountId', [decoded]) + : registry.createTypeUnsafe('AccountIndex', [u8aToBn(decoded)]); +} + +/** @internal */ +function decodeU8a (registry: Registry, value: Uint8Array): GenericAccountId | GenericAccountIndex { + // This allows us to instantiate an address with a raw publicKey. Do this first before + // we checking the first byte, otherwise we may split an already-existent valid address + if (value.length === 32) { + return registry.createTypeUnsafe('AccountId', [value]); + } else if (value[0] === 0xff) { + return registry.createTypeUnsafe('AccountId', [value.subarray(1)]); + } + + const [offset, length] = GenericAccountIndex.readLength(value); + + return registry.createTypeUnsafe('AccountIndex', [u8aToBn(value.subarray(offset, offset + length))]); +} + +/** @internal */ +function decodeAddressOrIndex (registry: Registry, value: AnyAddress): GenericAccountId | GenericAccountIndex { + return value instanceof GenericLookupSource + ? value.inner + : value instanceof GenericAccountId || value instanceof GenericAccountIndex + ? value + : isBn(value) || isNumber(value) || isBigInt(value) + ? registry.createTypeUnsafe('AccountIndex', [value]) + : Array.isArray(value) || isHex(value) || isU8a(value) + ? decodeU8a(registry, u8aToU8a(value)) + : decodeString(registry, value); +} + +/** + * @name LookupSource + * @description + * A wrapper around an AccountId and/or AccountIndex that is encoded with a prefix. + * Since we are dealing with underlying publicKeys (or shorter encoded addresses), + * we extend from Base with an AccountId/AccountIndex wrapper. Basically the Address + * is encoded as `[ , ...publicKey/...bytes ]` as per spec + */ +export class GenericLookupSource extends AbstractBase { + constructor (registry: Registry, value: AnyAddress = new Uint8Array()) { + super(registry, decodeAddressOrIndex(registry, value)); + } + + /** + * @description The length of the value when encoded as a Uint8Array + */ + public override get encodedLength (): number { + const rawLength = this._rawLength; + + return rawLength + ( + // for 1 byte AccountIndexes, we are not adding a specific prefix + rawLength > 1 + ? 1 + : 0 + ); + } + + /** + * @description The length of the raw value, either AccountIndex or AccountId + */ + protected get _rawLength (): number { + return this.inner instanceof GenericAccountIndex + ? GenericAccountIndex.calcLength(this.inner) + : this.inner.encodedLength; + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + override inspect (): Inspect { + const value = this.inner.toU8a().subarray(0, this._rawLength); + + return { + outer: [ + new Uint8Array( + this.inner instanceof GenericAccountIndex + ? GenericAccountIndex.writeLength(value) + : ACCOUNT_ID_PREFIX + ), + value + ] + }; + } + + /** + * @description Returns a hex string representation of the value + */ + public override toHex (): HexString { + return u8aToHex(this.toU8a()); + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Address'; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + * @param isBare true when the value has none of the type-specific prefixes (internal) + */ + public override toU8a (isBare?: boolean): Uint8Array { + const encoded = this.inner.toU8a().subarray(0, this._rawLength); + + return isBare + ? encoded + : u8aConcat( + this.inner instanceof GenericAccountIndex + ? GenericAccountIndex.writeLength(encoded) + : ACCOUNT_ID_PREFIX, + encoded + ); + } +} diff --git a/packages/types/src/generic/MultiAddress.spec.ts b/packages/types/src/generic/MultiAddress.spec.ts new file mode 100644 index 0000000..6266201 --- /dev/null +++ b/packages/types/src/generic/MultiAddress.spec.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; + +describe('MultiAddress', (): void => { + const registry = new TypeRegistry(); + + it('decodes from an empty value', (): void => { + const a = registry.createType('MultiAddress'); + + expect(a.index).toEqual(0); + expect(a.toHex()).toEqual('0x000000000000000000000000000000000000000000000000000000000000000000'); + }); + + it('correctly decodes a stream with Address20', (): void => { + const a = registry.createType('MultiAddress', '0x0467f89207abe6e1b093befd84a48f03313765929207009e292608'); + + expect(a.index).toEqual(4); + expect(a.toString()).toEqual('0x67f89207abe6e1b093befd84a48f033137659292'); + }); + + it('correctly decodes an AccountId', (): void => { + const a = registry.createType('MultiAddress', '0x0102030405060708010203040506070801020304050607080102030405060708'); + + expect(a.index).toEqual(0); + expect(a.toString()).toEqual('5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF'); + }); + + it('correctly decodes an AccountIndex', (): void => { + const a = registry.createType('MultiAddress', '25GUyv'); + + expect(a.index).toEqual(1); + expect(a.toString()).toEqual('25GUyv'); + }); + + it('correctly decodes an AccountIndex (AccountIndex input)', (): void => { + const a = registry.createType('MultiAddress', registry.createType('AccountIndex', '25GUyv')); + + expect(a.index).toEqual(1); + expect(a.toString()).toEqual('25GUyv'); + }); + + it('correctly decodes an Address20', (): void => { + const a = registry.createType('MultiAddress', '0x67f89207abe6e1b093befd84a48f033137659292'); + + expect(a.index).toEqual(4); + expect(a.toString()).toEqual('0x67f89207abe6e1b093befd84a48f033137659292'); + }); +}); diff --git a/packages/types/src/generic/MultiAddress.ts b/packages/types/src/generic/MultiAddress.ts new file mode 100644 index 0000000..0ed91f2 --- /dev/null +++ b/packages/types/src/generic/MultiAddress.ts @@ -0,0 +1,73 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Inspect, Registry } from '@pezkuwi/types-codec/types'; + +import { Enum } from '@pezkuwi/types-codec'; +import { isBn, isNumber, isString, isU8a } from '@pezkuwi/util'; +import { decodeAddress } from '@pezkuwi/util-crypto'; + +import { GenericAccountId } from './AccountId.js'; +import { GenericAccountIndex } from './AccountIndex.js'; + +function decodeU8a (registry: Registry, u8a: Uint8Array): unknown { + if ([0, 32].includes(u8a.length)) { + return { Id: u8a }; + } else if (u8a.length === 20) { + return { Address20: u8a }; + } else if (u8a.length <= 8) { + return { Index: registry.createTypeUnsafe('AccountIndex', [u8a]).toNumber() }; + } + + return u8a; +} + +function decodeMultiAny (registry: Registry, value?: unknown): unknown { + if (value instanceof GenericAccountId) { + return { Id: value }; + } else if (isU8a(value)) { + // NOTE This is after the AccountId check (which is U8a) + return decodeU8a(registry, value); + } else if (value instanceof GenericMultiAddress) { + return value; + } else if (value instanceof GenericAccountIndex || isBn(value) || isNumber(value)) { + return { Index: isNumber(value) ? value : value.toNumber() }; + } else if (isString(value)) { + return decodeU8a(registry, decodeAddress(value.toString())); + } + + return value; +} + +export class GenericMultiAddress extends Enum { + constructor (registry: Registry, value?: unknown) { + super(registry, { + Id: 'AccountId', + Index: 'Compact', + Raw: 'Bytes', + // eslint-disable-next-line sort-keys + Address32: 'H256', + // eslint-disable-next-line sort-keys + Address20: 'H160' + }, decodeMultiAny(registry, value)); + } + + /** + * @description Returns a breakdown of the hex encoding for this Codec + */ + override inspect (): Inspect { + const { inner, outer = [] } = this.inner.inspect(); + + return { + inner, + outer: [new Uint8Array([this.index]), ...outer] + }; + } + + /** + * @description Returns the string representation of the value + */ + public override toString (): string { + return this.value.toString(); + } +} diff --git a/packages/types/src/generic/Vote.spec.ts b/packages/types/src/generic/Vote.spec.ts new file mode 100644 index 0000000..9577569 --- /dev/null +++ b/packages/types/src/generic/Vote.spec.ts @@ -0,0 +1,167 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; +import { GenericVote } from './index.js'; + +describe('GenericVote', (): void => { + const registry = new TypeRegistry(); + + describe('construction', (): void => { + it('constructs via boolean true', (): void => { + expect(new GenericVote(registry, true).toU8a()).toEqual(new Uint8Array([128])); + expect(new GenericVote(registry, true).isAye).toBe(true); + expect(new GenericVote(registry, true).isNay).toBe(false); + }); + + it('constructs via boolean false', (): void => { + expect(new GenericVote(registry, false).toU8a()).toEqual(new Uint8Array([0])); + expect(new GenericVote(registry, false).isNay).toBe(true); + expect(new GenericVote(registry, false).isAye).toBe(false); + }); + + it('constructs via undefined', (): void => { + expect(new GenericVote(registry).isNay).toBe(true); + }); + + it('has isYay for positive', (): void => { + // eslint-disable-next-line no-new-wrappers + expect(new GenericVote(registry, true).isAye).toBe(true); + }); + + it('has isNay for negative', (): void => { + // eslint-disable-next-line no-new-wrappers + expect(new GenericVote(registry, false).isNay).toBe(true); + }); + + it('is Aye for negative numbers', (): void => { + expect(new GenericVote(registry, -128).isAye).toBe(true); + }); + + it('is Nay for positive numbers', (): void => { + expect(new GenericVote(registry, 127).isNay).toBe(true); + }); + + it('is Nay for 0', (): void => { + expect(new GenericVote(registry, 0).isNay).toBe(true); + }); + + it('constructs via empty', (): void => { + expect(new GenericVote(registry).isNay).toBe(true); + }); + + it('constructs via Uint8Array (empty)', (): void => { + expect(new GenericVote(registry, new Uint8Array()).isNay).toBe(true); + }); + + it('constructs via Uint8Array (nay)', (): void => { + expect(new GenericVote(registry, new Uint8Array([1])).isNay).toBe(true); + }); + + it('constructs via Uint8Array (aye)', (): void => { + const test = new GenericVote(registry, new Uint8Array([0b10000010])); + + expect(test.isNay).toBe(false); + expect(test.conviction.toString()).toEqual('Locked2x'); + }); + }); + + describe('Vote with conviction', (): void => { + it('constructs Vote with raw boolean', (): void => { + const vote = new GenericVote(registry, { + aye: true, + conviction: 'Locked1x' + }); + + expect( + vote.toU8a() + ).toEqual(new Uint8Array([0b10000001])); + expect( + vote.toPrimitive() + ).toEqual({ + aye: true, + conviction: 'Locked1x' + }); + }); + + it('constructs with Vote aye is false, conviction is None', (): void => { + expect( + new GenericVote(registry, { + aye: false, + conviction: 'None' + }).toU8a() + ).toEqual(new Uint8Array([0b00000000])); + }); + + it('constructs with Vote aye is true, conviction is Locked4x', (): void => { + expect( + new GenericVote(registry, { + aye: true, + conviction: 'Locked4x' + }).toU8a() + ).toEqual(new Uint8Array([0b10000100])); + }); + }); + + describe('getters', (): void => { + it('Conviction getter works', (): void => { + expect( + new GenericVote(registry, { + aye: true, + conviction: 'Locked2x' + }).conviction.toString() + ).toEqual('Locked2x'); + }); + + it('Conviction getter works with raw boolean and string conviction', (): void => { + expect( + new GenericVote(registry, { + aye: true, + conviction: 'Locked2x' + }).conviction.toString() + ).toEqual('Locked2x'); + }); + + it('Conviction getter works with raw boolean and conviction index', (): void => { + expect( + new GenericVote(registry, { + aye: true, + conviction: 2 + }).conviction.toString() + ).toEqual('Locked2x'); + }); + + it('Conviction getter works with raw boolean and no conviction', (): void => { + const test = new GenericVote(registry, { aye: true }); + + expect(test.isAye).toEqual(true); + expect(test.conviction.toString()).toEqual('None'); + }); + + it('isAye getter works', (): void => { + expect( + new GenericVote(registry, { + aye: true, + conviction: 'None' + }).isAye) + .toEqual(true); + }); + + it('isNay getter works', (): void => { + expect( + new GenericVote(registry, { + aye: true, + conviction: 'None' + }).isNay) + .toEqual(false); + }); + }); + + describe('utils', (): void => { + it('has a sane toRawType', (): void => { + expect(new GenericVote(registry).toRawType()).toEqual('Vote'); + }); + }); +}); diff --git a/packages/types/src/generic/Vote.ts b/packages/types/src/generic/Vote.ts new file mode 100644 index 0000000..5c69585 --- /dev/null +++ b/packages/types/src/generic/Vote.ts @@ -0,0 +1,133 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, Registry } from '@pezkuwi/types-codec/types'; +import type { AllConvictions } from '../interfaces/democracy/definitions.js'; +import type { Conviction } from '../interfaces/democracy/index.js'; +import type { ArrayElementType } from '../types/index.js'; + +import { Bool, U8aFixed } from '@pezkuwi/types-codec'; +import { isBoolean, isNumber, isU8a, isUndefined } from '@pezkuwi/util'; + +interface VoteType { + aye: boolean; + conviction?: number | ArrayElementType; +} + +// eslint-disable-next-line @typescript-eslint/ban-types +type InputTypes = boolean | number | Boolean | Uint8Array | VoteType; + +// For votes, the topmost bit indicated aye/nay, the lower bits indicate the conviction +const AYE_BITS = 0b10000000; +const NAY_BITS = 0b00000000; +const CON_MASK = 0b01111111; +const DEF_CONV = 0b00000000; // the default conviction, None + +/** @internal */ +function decodeVoteBool (value: boolean): Uint8Array { + return value + ? new Uint8Array([AYE_BITS | DEF_CONV]) + : new Uint8Array([NAY_BITS]); +} + +/** @internal */ +function decodeVoteU8a (value: Uint8Array): Uint8Array { + return value.length + ? value.subarray(0, 1) + : new Uint8Array([NAY_BITS]); +} + +/** @internal */ +function decodeVoteType (registry: Registry, value: VoteType): Uint8Array { + return new Uint8Array([ + ( + new Bool(registry, value.aye).isTrue + ? AYE_BITS + : NAY_BITS + ) | + registry.createTypeUnsafe('Conviction', [value.conviction || DEF_CONV]).index + ]); +} + +/** @internal */ +function decodeVote (registry: Registry, value?: InputTypes): Uint8Array { + if (isU8a(value)) { + return decodeVoteU8a(value); + } else if (isUndefined(value) || value instanceof Boolean || isBoolean(value)) { + return decodeVoteBool(new Bool(registry, value).isTrue); + } else if (isNumber(value)) { + return decodeVoteBool(value < 0); + } + + return decodeVoteType(registry, value); +} + +/** + * @name GenericVote + * @description + * A number of lock periods, plus a vote, one way or the other. + */ +export class GenericVote extends U8aFixed { + #aye: boolean; + #conviction: Conviction; + + constructor (registry: Registry, value?: InputTypes) { + // decoded is just 1 byte + // Aye: Most Significant Bit + // Conviction: 0000 - 0101 + const decoded = decodeVote(registry, value); + + super(registry, decoded, 8); + + this.#aye = (decoded[0] & AYE_BITS) === AYE_BITS; + this.#conviction = this.registry.createTypeUnsafe('Conviction', [decoded[0] & CON_MASK]); + } + + /** + * @description returns a V2 conviction + */ + public get conviction (): Conviction { + return this.#conviction; + } + + /** + * @description true if the wrapped value is a positive vote + */ + public get isAye (): boolean { + return this.#aye; + } + + /** + * @description true if the wrapped value is a negative vote + */ + public get isNay (): boolean { + return !this.isAye; + } + + /** + * @description Converts the Object to to a human-friendly JSON, with additional fields, expansion and formatting of information + */ + public override toHuman (isExpanded?: boolean): AnyJson { + return { + conviction: this.conviction.toHuman(isExpanded), + vote: this.isAye ? 'Aye' : 'Nay' + }; + } + + /** + * @description Converts the value in a best-fit primitive form + */ + public override toPrimitive (): any { + return { + aye: this.isAye, + conviction: this.conviction.toPrimitive() + }; + } + + /** + * @description Returns the base runtime type name for this instance + */ + public override toRawType (): string { + return 'Vote'; + } +} diff --git a/packages/types/src/generic/index.ts b/packages/types/src/generic/index.ts new file mode 100644 index 0000000..b10bec0 --- /dev/null +++ b/packages/types/src/generic/index.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// all named +export { GenericAccountId, GenericAccountId as GenericAccountId32, GenericAccountId33 } from './AccountId.js'; +export { GenericAccountIndex } from './AccountIndex.js'; +export { GenericBlock } from './Block.js'; +export { GenericCall } from './Call.js'; +export { GenericChainProperties } from './ChainProperties.js'; +export { GenericConsensusEngineId } from './ConsensusEngineId.js'; +export { GenericEvent, GenericEventData } from './Event.js'; +export { GenericLookupSource } from './LookupSource.js'; +export { GenericMultiAddress as GenericAddress, GenericMultiAddress } from './MultiAddress.js'; +export { GenericVote } from './Vote.js'; + +// all starred +export * from '../ethereum/index.js'; diff --git a/packages/types/src/index.spec.ts b/packages/types/src/index.spec.ts new file mode 100644 index 0000000..fc7388a --- /dev/null +++ b/packages/types/src/index.spec.ts @@ -0,0 +1,78 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec } from './types/index.js'; + +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from './create/index.js'; +import * as definitions from './interfaces/definitions.js'; +import { Metadata } from './metadata/index.js'; +import * as exported from './index.types.js'; + +// NOTE This is not a shortcut to implementing types incorrectly. This is here +// specifically for the types that _should_ throw in the constrtuctor, i.e +// `usize` is not allowed (runtime incompat) and `origin` is not passed through +// to any calls. All other types _must_ pass and allow for empty defaults +const UNCONSTRUCTABLE = [ + 'ExtrinsicPayloadUnknown', 'GenericExtrinsicPayloadUnknown', + 'ExtrinsicUnknown', 'GenericExtrinsicUnknown', + 'DoNotConstruct', + 'MetadataAll', + 'Origin', + 'isize', + 'usize' +].map((v): string => v.toLowerCase()); + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, metadataStatic); + +registry.setMetadata(metadata); + +function testTypes (type: string, typeNames: string[]): void { + describe(`${type}`, (): void => { + describe(`${type}:: default creation`, (): void => { + typeNames.forEach((name): void => { + it(`creates an empty ${name}`, (): void => { + const constructFn = (): Codec => + registry.createType(name); + + if (UNCONSTRUCTABLE.includes(name.toLowerCase())) { + // eslint-disable-next-line jest/no-conditional-expect + expect(constructFn).toThrow(); + } else { + // eslint-disable-next-line jest/no-conditional-expect + expect(constructFn).not.toThrow(); + } + }); + }); + }); + + describe(`${type}:: default creation (empty bytes)`, (): void => { + typeNames.forEach((name): void => { + it(`creates an empty ${name} (from empty bytes)`, (): void => { + const constructFn = (): Codec => + registry.createType(name, registry.createType('Bytes')); + + if (UNCONSTRUCTABLE.includes(name.toLowerCase())) { + // eslint-disable-next-line jest/no-conditional-expect + expect(constructFn).toThrow(); + } else { + // eslint-disable-next-line jest/no-conditional-expect + expect(constructFn).not.toThrow(); + } + }); + }); + }); + }); +} + +describe('type creation', (): void => { + testTypes('exported', Object.keys(exported)); + + Object + .entries(definitions) + .forEach(([name, { types }]): void => + testTypes(`${name} (injected)`, Object.keys(types)) + ); +}); diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts new file mode 100644 index 0000000..a23fbc6 --- /dev/null +++ b/packages/types/src/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import './packageDetect.js'; + +export * from './bundle.js'; diff --git a/packages/types/src/index.types.ts b/packages/types/src/index.types.ts new file mode 100644 index 0000000..9d11f49 --- /dev/null +++ b/packages/types/src/index.types.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './extrinsic/index.js'; +export * from './generic/index.js'; +export * from './primitive/index.js'; diff --git a/packages/types/src/interfaces/alias.spec.ts b/packages/types/src/interfaces/alias.spec.ts new file mode 100644 index 0000000..d77d9bc --- /dev/null +++ b/packages/types/src/interfaces/alias.spec.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/registry.js'; +import { getAliasTypes } from './alias.js'; + +const registry = new TypeRegistry(); + +registry.setKnownTypes({ + typesAlias: { + identity: { + Id: 'IdentityId' + }, + testModule: { + Proposal: 'TestProposal' + }, + treasury: { + Proposal: 'TreasuryProposals2' + } + } +}); + +describe('getModuleTypes', (): void => { + it('collects the pre-defined types for contracts', (): void => { + expect(getAliasTypes(registry, 'contracts')).toEqual({ + StorageKey: 'ContractStorageKey' + }); + }); + + it('collects the user-defined types for testModule', (): void => { + expect(getAliasTypes(registry, 'testModule')).toEqual({ + Proposal: 'TestProposal' + }); + }); + + it('overrides pre-defined with user-defined for treasury', (): void => { + expect(getAliasTypes(registry, 'treasury')).toEqual({ + Proposal: 'TreasuryProposals2' + }); + }); + + it('merges pre-defined and user-defined for identity', (): void => { + expect(getAliasTypes(registry, 'identity')).toEqual({ + Id: 'IdentityId', + Judgement: 'IdentityJudgement' + }); + }); +}); diff --git a/packages/types/src/interfaces/alias.ts b/packages/types/src/interfaces/alias.ts new file mode 100644 index 0000000..daf4b8b --- /dev/null +++ b/packages/types/src/interfaces/alias.ts @@ -0,0 +1,116 @@ +// Copyright 2017-2025 @pezkuwi/types-known authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { OverrideModuleType, Registry } from '../types/index.js'; + +// type overrides for modules (where duplication between modules exist) +const typesAlias: Record = { + assets: { + Approval: 'AssetApproval', + ApprovalKey: 'AssetApprovalKey', + Balance: 'TAssetBalance', + DestroyWitness: 'AssetDestroyWitness' + }, + babe: { + EquivocationProof: 'BabeEquivocationProof' + }, + balances: { + Status: 'BalanceStatus' + }, + beefy: { + AuthorityId: 'BeefyId' + }, + contracts: { + StorageKey: 'ContractStorageKey' + }, + electionProviderMultiPhase: { + Phase: 'ElectionPhase' + }, + ethereum: { + Block: 'EthBlock', + Header: 'EthHeader', + Receipt: 'EthReceipt', + Transaction: 'EthTransaction', + TransactionStatus: 'EthTransactionStatus' + }, + evm: { + Account: 'EvmAccount', + Log: 'EvmLog', + Vicinity: 'EvmVicinity' + }, + grandpa: { + Equivocation: 'GrandpaEquivocation', + EquivocationProof: 'GrandpaEquivocationProof' + }, + identity: { + Judgement: 'IdentityJudgement' + }, + inclusion: { + ValidatorIndex: 'ParaValidatorIndex' + }, + paraDisputes: { + ValidatorIndex: 'ParaValidatorIndex' + }, + paraInclusion: { + ValidatorIndex: 'ParaValidatorIndex' + }, + paraScheduler: { + ValidatorIndex: 'ParaValidatorIndex' + }, + paraShared: { + ValidatorIndex: 'ParaValidatorIndex' + }, + teyrchains: { + Id: 'ParaId' + }, + parasDisputes: { + ValidatorIndex: 'ParaValidatorIndex' + }, + parasInclusion: { + ValidatorIndex: 'ParaValidatorIndex' + }, + parasScheduler: { + ValidatorIndex: 'ParaValidatorIndex' + }, + parasShared: { + ValidatorIndex: 'ParaValidatorIndex' + }, + proposeTeyrchain: { + Proposal: 'TeyrchainProposal' + }, + proxy: { + Announcement: 'ProxyAnnouncement' + }, + scheduler: { + ValidatorIndex: 'ParaValidatorIndex' + }, + shared: { + ValidatorIndex: 'ParaValidatorIndex' + }, + society: { + Judgement: 'SocietyJudgement', + Vote: 'SocietyVote' + }, + staking: { + Compact: 'CompactAssignments' + }, + treasury: { + Proposal: 'TreasuryProposal' + }, + xcm: { + AssetId: 'XcmAssetId' + }, + xcmPezpallet: { + AssetId: 'XcmAssetId' + } +}; + +/** + * @description Get types for specific modules (metadata override) + */ +export function getAliasTypes ({ knownTypes }: Registry, section: string): OverrideModuleType { + return { + ...(typesAlias[section] ?? {}), + ...(knownTypes.typesAlias?.[section] ?? {}) + }; +} diff --git a/packages/types/src/interfaces/assetConversion/definitions.ts b/packages/types/src/interfaces/assetConversion/definitions.ts new file mode 100644 index 0000000..8ae9412 --- /dev/null +++ b/packages/types/src/interfaces/assetConversion/definitions.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + TAssetConversion: 'Option' + } +} as Definitions; diff --git a/packages/types/src/interfaces/assetConversion/index.ts b/packages/types/src/interfaces/assetConversion/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/assetConversion/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/assetConversion/runtime.ts b/packages/types/src/interfaces/assetConversion/runtime.ts new file mode 100644 index 0000000..1d7e8e4 --- /dev/null +++ b/packages/types/src/interfaces/assetConversion/runtime.ts @@ -0,0 +1,72 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + AssetConversionApi: [ + { + methods: { + get_reserves: { + description: 'Get pool reserves', + params: [ + { + name: 'asset1', + type: 'StagingXcmV3MultiLocation' + }, + { + name: 'asset2', + type: 'StagingXcmV3MultiLocation' + } + ], + type: 'Option<(Balance,Balance)>' + }, + quote_price_exact_tokens_for_tokens: { + description: 'Quote price: exact tokens for tokens', + params: [ + { + name: 'asset1', + type: 'StagingXcmV3MultiLocation' + }, + { + name: 'asset2', + type: 'StagingXcmV3MultiLocation' + }, + { + name: 'amount', + type: 'u128' + }, + { + name: 'include_fee', + type: 'bool' + } + ], + type: 'Option<(Balance)>' + }, + quote_price_tokens_for_exact_tokens: { + description: 'Quote price: tokens for exact tokens', + params: [ + { + name: 'asset1', + type: 'StagingXcmV3MultiLocation' + }, + { + name: 'asset2', + type: 'StagingXcmV3MultiLocation' + }, + { + name: 'amount', + type: 'u128' + }, + { + name: 'include_fee', + type: 'bool' + } + ], + type: 'Option<(Balance)>' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/assetConversion/types.ts b/packages/types/src/interfaces/assetConversion/types.ts new file mode 100644 index 0000000..97c805a --- /dev/null +++ b/packages/types/src/interfaces/assetConversion/types.ts @@ -0,0 +1,10 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Option } from '@pezkuwi/types-codec'; +import type { MultiLocation } from '@pezkuwi/types/interfaces/xcm'; + +/** @name TAssetConversion */ +export interface TAssetConversion extends Option {} + +export type PHANTOM_ASSETCONVERSION = 'assetConversion'; diff --git a/packages/types/src/interfaces/assets/definitions.ts b/packages/types/src/interfaces/assets/definitions.ts new file mode 100644 index 0000000..711eb81 --- /dev/null +++ b/packages/types/src/interfaces/assets/definitions.ts @@ -0,0 +1,57 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + AssetApprovalKey: { + owner: 'AccountId', + delegate: 'AccountId' + }, + AssetApproval: { + amount: 'TAssetBalance', + deposit: 'TAssetDepositBalance' + }, + AssetBalance: { + balance: 'TAssetBalance', + isFrozen: 'bool', + isSufficient: 'bool' + }, + AssetDestroyWitness: { + accounts: 'Compact', + sufficients: 'Compact', + approvals: 'Compact' + }, + AssetDetails: { + owner: 'AccountId', + issuer: 'AccountId', + admin: 'AccountId', + freezer: 'AccountId', + supply: 'TAssetBalance', + deposit: 'TAssetDepositBalance', + minBalance: 'TAssetBalance', + isSufficient: 'bool', + accounts: 'u32', + sufficients: 'u32', + approvals: 'u32', + isFrozen: 'bool' + }, + AssetMetadata: { + deposit: 'TAssetDepositBalance', + name: 'Vec', + symbol: 'Vec', + decimals: 'u8', + isFrozen: 'bool' + }, + TAssetBalance: 'u64', + TAssetDepositBalance: 'BalanceOf' + } +} as Definitions; diff --git a/packages/types/src/interfaces/assets/index.ts b/packages/types/src/interfaces/assets/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/assets/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/assets/runtime.ts b/packages/types/src/interfaces/assets/runtime.ts new file mode 100644 index 0000000..59ec4c5 --- /dev/null +++ b/packages/types/src/interfaces/assets/runtime.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + AssetsApi: [ + { + methods: { + account_balances: { + description: 'Return the current set of authorities.', + params: [ + { + name: 'account', + type: 'AccountId' + } + ], + type: 'Vec<(u32, TAssetBalance)>' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/assets/types.ts b/packages/types/src/interfaces/assets/types.ts new file mode 100644 index 0000000..5ff67de --- /dev/null +++ b/packages/types/src/interfaces/assets/types.ts @@ -0,0 +1,64 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Compact, Struct, bool, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AccountId, BalanceOf } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AssetApproval */ +export interface AssetApproval extends Struct { + readonly amount: TAssetBalance; + readonly deposit: TAssetDepositBalance; +} + +/** @name AssetApprovalKey */ +export interface AssetApprovalKey extends Struct { + readonly owner: AccountId; + readonly delegate: AccountId; +} + +/** @name AssetBalance */ +export interface AssetBalance extends Struct { + readonly balance: TAssetBalance; + readonly isFrozen: bool; + readonly isSufficient: bool; +} + +/** @name AssetDestroyWitness */ +export interface AssetDestroyWitness extends Struct { + readonly accounts: Compact; + readonly sufficients: Compact; + readonly approvals: Compact; +} + +/** @name AssetDetails */ +export interface AssetDetails extends Struct { + readonly owner: AccountId; + readonly issuer: AccountId; + readonly admin: AccountId; + readonly freezer: AccountId; + readonly supply: TAssetBalance; + readonly deposit: TAssetDepositBalance; + readonly minBalance: TAssetBalance; + readonly isSufficient: bool; + readonly accounts: u32; + readonly sufficients: u32; + readonly approvals: u32; + readonly isFrozen: bool; +} + +/** @name AssetMetadata */ +export interface AssetMetadata extends Struct { + readonly deposit: TAssetDepositBalance; + readonly name: Bytes; + readonly symbol: Bytes; + readonly decimals: u8; + readonly isFrozen: bool; +} + +/** @name TAssetBalance */ +export interface TAssetBalance extends u64 {} + +/** @name TAssetDepositBalance */ +export interface TAssetDepositBalance extends BalanceOf {} + +export type PHANTOM_ASSETS = 'assets'; diff --git a/packages/types/src/interfaces/attestations/definitions.ts b/packages/types/src/interfaces/attestations/definitions.ts new file mode 100644 index 0000000..b311297 --- /dev/null +++ b/packages/types/src/interfaces/attestations/definitions.ts @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + BlockAttestations: { + receipt: 'CandidateReceipt', + valid: 'Vec', + invalid: 'Vec' + }, + IncludedBlocks: { + actualNumber: 'BlockNumber', + session: 'SessionIndex', + randomSeed: 'H256', + activeTeyrchains: 'Vec', + paraBlocks: 'Vec' + }, + MoreAttestations: {} + } +} as Definitions; diff --git a/packages/types/src/interfaces/attestations/index.ts b/packages/types/src/interfaces/attestations/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/attestations/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/attestations/types.ts b/packages/types/src/interfaces/attestations/types.ts new file mode 100644 index 0000000..67d7e03 --- /dev/null +++ b/packages/types/src/interfaces/attestations/types.ts @@ -0,0 +1,28 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, Vec } from '@pezkuwi/types-codec'; +import type { AccountId, BlockNumber, H256, Hash } from '@pezkuwi/types/interfaces/runtime'; +import type { SessionIndex } from '@pezkuwi/types/interfaces/session'; +import type { CandidateReceipt, ParaId } from '@pezkuwi/types/interfaces/teyrchains'; + +/** @name BlockAttestations */ +export interface BlockAttestations extends Struct { + readonly receipt: CandidateReceipt; + readonly valid: Vec; + readonly invalid: Vec; +} + +/** @name IncludedBlocks */ +export interface IncludedBlocks extends Struct { + readonly actualNumber: BlockNumber; + readonly session: SessionIndex; + readonly randomSeed: H256; + readonly activeTeyrchains: Vec; + readonly paraBlocks: Vec; +} + +/** @name MoreAttestations */ +export interface MoreAttestations extends Struct {} + +export type PHANTOM_ATTESTATIONS = 'attestations'; diff --git a/packages/types/src/interfaces/aura/definitions.ts b/packages/types/src/interfaces/aura/definitions.ts new file mode 100644 index 0000000..04cebb3 --- /dev/null +++ b/packages/types/src/interfaces/aura/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + RawAuraPreDigest: { + slotNumber: 'u64' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/aura/index.ts b/packages/types/src/interfaces/aura/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/aura/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/aura/runtime.ts b/packages/types/src/interfaces/aura/runtime.ts new file mode 100644 index 0000000..30ac67a --- /dev/null +++ b/packages/types/src/interfaces/aura/runtime.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + AuraApi: [ + { + methods: { + authorities: { + description: 'Return the current set of authorities.', + params: [], + type: 'Vec' + }, + slot_duration: { + description: 'Returns the slot duration for Aura.', + params: [], + type: 'SlotDuration' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/aura/types.ts b/packages/types/src/interfaces/aura/types.ts new file mode 100644 index 0000000..2a1872e --- /dev/null +++ b/packages/types/src/interfaces/aura/types.ts @@ -0,0 +1,11 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, u64 } from '@pezkuwi/types-codec'; + +/** @name RawAuraPreDigest */ +export interface RawAuraPreDigest extends Struct { + readonly slotNumber: u64; +} + +export type PHANTOM_AURA = 'aura'; diff --git a/packages/types/src/interfaces/author/ExtrinsicStatus.spec.ts b/packages/types/src/interfaces/author/ExtrinsicStatus.spec.ts new file mode 100644 index 0000000..17ec7b5 --- /dev/null +++ b/packages/types/src/interfaces/author/ExtrinsicStatus.spec.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import type { ExtrinsicStatus } from './types.js'; + +import rpc from '@pezkuwi/types-support/json/ExtrinsicStatus.001.json' assert { type: 'json' }; + +import { TypeRegistry } from '../../create/index.js'; + +describe('ExtrinsicStatus', (): void => { + const registry = new TypeRegistry(); + let status: ExtrinsicStatus; + + beforeEach((): void => { + status = registry.createType('ExtrinsicStatus', rpc.params.result); + }); + + it('has the correct type', (): void => { + expect( + status.type + ).toEqual('Finalized'); + }); + + it('has the correct hash', (): void => { + expect( + status.value.toString() + ).toEqual('0xc465b92a72b1d20918d64cd4effa70c2bb58b53a3f8c24c3ac8fd8f465f059b4'); + }); +}); diff --git a/packages/types/src/interfaces/author/definitions.ts b/packages/types/src/interfaces/author/definitions.ts new file mode 100644 index 0000000..0d7582d --- /dev/null +++ b/packages/types/src/interfaces/author/definitions.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + ExtrinsicOrHash: { + _enum: { + Hash: 'Hash', + Extrinsic: 'Bytes' + } + }, + ExtrinsicStatus: { + _enum: { + Future: 'Null', + Ready: 'Null', + Broadcast: 'Vec', + InBlock: 'Hash', + Retracted: 'Hash', + FinalityTimeout: 'Hash', + Finalized: 'Hash', + Usurped: 'Hash', + Dropped: 'Null', + Invalid: 'Null' + } + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/author/index.ts b/packages/types/src/interfaces/author/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/author/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/author/rpc.ts b/packages/types/src/interfaces/author/rpc.ts new file mode 100644 index 0000000..0ce089e --- /dev/null +++ b/packages/types/src/interfaces/author/rpc.ts @@ -0,0 +1,101 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + hasKey: { + description: 'Returns true if the keystore has private keys for the given public key and key type.', + isUnsafe: true, + params: [ + { + name: 'publicKey', + type: 'Bytes' + }, + { + name: 'keyType', + type: 'Text' + } + ], + type: 'bool' + }, + hasSessionKeys: { + description: 'Returns true if the keystore has private keys for the given session public keys.', + isUnsafe: true, + params: [ + { + name: 'sessionKeys', + type: 'Bytes' + } + ], + type: 'bool' + }, + insertKey: { + description: 'Insert a key into the keystore.', + isUnsafe: true, + params: [ + { + name: 'keyType', + type: 'Text' + }, + { + name: 'suri', + type: 'Text' + }, + { + name: 'publicKey', + type: 'Bytes' + } + ], + type: 'Bytes' + }, + pendingExtrinsics: { + description: 'Returns all pending extrinsics, potentially grouped by sender', + params: [], + type: 'Vec' + }, + removeExtrinsic: { + description: 'Remove given extrinsic from the pool and temporarily ban it to prevent reimporting', + isUnsafe: true, + params: [ + { + name: 'bytesOrHash', + type: 'Vec' + } + ], + type: 'Vec' + }, + rotateKeys: { + description: 'Generate new session keys and returns the corresponding public keys', + isUnsafe: true, + params: [], + type: 'Bytes' + }, + submitAndWatchExtrinsic: { + description: 'Submit and subscribe to watch an extrinsic until unsubscribed', + isSigned: true, + params: [ + { + name: 'extrinsic', + type: 'Extrinsic' + } + ], + pubsub: [ + 'extrinsicUpdate', + 'submitAndWatchExtrinsic', + 'unwatchExtrinsic' + ], + type: 'ExtrinsicStatus' + }, + submitExtrinsic: { + description: 'Submit a fully formatted extrinsic for block inclusion', + isSigned: true, + params: [ + { + name: 'extrinsic', + type: 'Extrinsic' + } + ], + type: 'Hash' + } +}; diff --git a/packages/types/src/interfaces/author/types.ts b/packages/types/src/interfaces/author/types.ts new file mode 100644 index 0000000..b1dbd2b --- /dev/null +++ b/packages/types/src/interfaces/author/types.ts @@ -0,0 +1,37 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Text, Vec } from '@pezkuwi/types-codec'; +import type { Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ExtrinsicOrHash */ +export interface ExtrinsicOrHash extends Enum { + readonly isHash: boolean; + readonly asHash: Hash; + readonly isExtrinsic: boolean; + readonly asExtrinsic: Bytes; + readonly type: 'Hash' | 'Extrinsic'; +} + +/** @name ExtrinsicStatus */ +export interface ExtrinsicStatus extends Enum { + readonly isFuture: boolean; + readonly isReady: boolean; + readonly isBroadcast: boolean; + readonly asBroadcast: Vec; + readonly isInBlock: boolean; + readonly asInBlock: Hash; + readonly isRetracted: boolean; + readonly asRetracted: Hash; + readonly isFinalityTimeout: boolean; + readonly asFinalityTimeout: Hash; + readonly isFinalized: boolean; + readonly asFinalized: Hash; + readonly isUsurped: boolean; + readonly asUsurped: Hash; + readonly isDropped: boolean; + readonly isInvalid: boolean; + readonly type: 'Future' | 'Ready' | 'Broadcast' | 'InBlock' | 'Retracted' | 'FinalityTimeout' | 'Finalized' | 'Usurped' | 'Dropped' | 'Invalid'; +} + +export type PHANTOM_AUTHOR = 'author'; diff --git a/packages/types/src/interfaces/authorship/definitions.ts b/packages/types/src/interfaces/authorship/definitions.ts new file mode 100644 index 0000000..7421718 --- /dev/null +++ b/packages/types/src/interfaces/authorship/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + UncleEntryItem: { + _enum: { + InclusionHeight: 'BlockNumber', + Uncle: '(Hash, Option)' + } + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/authorship/index.ts b/packages/types/src/interfaces/authorship/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/authorship/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/authorship/types.ts b/packages/types/src/interfaces/authorship/types.ts new file mode 100644 index 0000000..723030e --- /dev/null +++ b/packages/types/src/interfaces/authorship/types.ts @@ -0,0 +1,17 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Option } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, BlockNumber, Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name UncleEntryItem */ +export interface UncleEntryItem extends Enum { + readonly isInclusionHeight: boolean; + readonly asInclusionHeight: BlockNumber; + readonly isUncle: boolean; + readonly asUncle: ITuple<[Hash, Option]>; + readonly type: 'InclusionHeight' | 'Uncle'; +} + +export type PHANTOM_AUTHORSHIP = 'authorship'; diff --git a/packages/types/src/interfaces/babe/definitions.ts b/packages/types/src/interfaces/babe/definitions.ts new file mode 100644 index 0000000..1f7ae81 --- /dev/null +++ b/packages/types/src/interfaces/babe/definitions.ts @@ -0,0 +1,134 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + AllowedSlots: { + _enum: ['PrimarySlots', 'PrimaryAndSecondaryPlainSlots', 'PrimaryAndSecondaryVRFSlots'] + }, + BabeAuthorityWeight: 'u64', + BabeEpochConfiguration: { + c: '(u64, u64)', + allowedSlots: 'AllowedSlots' + }, + BabeBlockWeight: 'u32', + BabeEquivocationProof: { + offender: 'AuthorityId', + slotNumber: 'SlotNumber', + firstHeader: 'Header', + secondHeader: 'Header' + }, + BabeGenesisConfiguration: { + slotDuration: 'u64', + epochLength: 'u64', + c: '(u64, u64)', + genesisAuthorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>', + randomness: 'Randomness', + allowedSlots: 'AllowedSlots' + }, + BabeGenesisConfigurationV1: { + slotDuration: 'u64', + epochLength: 'u64', + c: '(u64, u64)', + genesisAuthorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>', + randomness: 'Randomness', + secondarySlots: 'bool' + }, + BabeWeight: 'u64', + MaybeRandomness: 'Option', + MaybeVrf: 'Option', + Epoch: { + epochIndex: 'u64', + startSlot: 'Slot', + duration: 'u64', + authorities: 'Vec<(AuthorityId, BabeAuthorityWeight)>', + randomness: 'Hash', // [u8; VRF_OUTPUT_LENGTH], + config: 'BabeEpochConfiguration' + }, + EpochAuthorship: { + primary: 'Vec', + secondary: 'Vec', + secondary_vrf: 'Vec' + }, + NextConfigDescriptor: { + _enum: { + V0: 'Null', + V1: 'NextConfigDescriptorV1' + } + }, + NextConfigDescriptorV1: { + c: '(u64, u64)', + allowedSlots: 'AllowedSlots' + }, + OpaqueKeyOwnershipProof: 'Bytes', + Randomness: 'Hash', // [u8; RANDOMNESS_LENGTH], + RawBabePreDigest: { + _enum: { + Phantom: 'Null', // index starts at 1... empty slot at 0 + Primary: 'RawBabePreDigestPrimary', + SecondaryPlain: 'RawBabePreDigestSecondaryPlain', + SecondaryVRF: 'RawBabePreDigestSecondaryVRF' + } + }, + RawBabePreDigestPrimary: { + authorityIndex: 'u32', // AuthorityIndex (also in aura) + slotNumber: 'SlotNumber', + vrfOutput: 'VrfOutput', + vrfProof: 'VrfProof' + }, + RawBabePreDigestSecondaryPlain: { + authorityIndex: 'u32', // AuthorityIndex (also in aura) + slotNumber: 'SlotNumber' + }, + RawBabePreDigestSecondaryVRF: { + authorityIndex: 'u32', + slotNumber: 'SlotNumber', + vrfOutput: 'VrfOutput', + vrfProof: 'VrfProof' + }, + RawBabePreDigestTo159: { + _enum: { + Primary: 'RawBabePreDigestPrimaryTo159', + Secondary: 'RawBabePreDigestSecondaryTo159' + } + }, + RawBabePreDigestPrimaryTo159: { + authorityIndex: 'u32', + slotNumber: 'SlotNumber', + weight: 'BabeBlockWeight', + vrfOutput: 'VrfOutput', + vrfProof: 'VrfProof' + }, + RawBabePreDigestSecondaryTo159: { + authorityIndex: 'u32', + slotNumber: 'SlotNumber', + weight: 'BabeBlockWeight' + }, + // a cross old/new compatible version of the digest, that is _only_ useful + // for partial parsing and extraction of the author. This assumes that all + // entries has the authorityIndex in the first position - and that it is all + // we are interested in + RawBabePreDigestCompat: { + _enum: { + Zero: 'u32', + One: 'u32', + Two: 'u32', + Three: 'u32' + } + }, + SlotNumber: 'u64', + VrfData: '[u8; 32]', + VrfOutput: '[u8; 32]', + VrfProof: '[u8; 64]' + } +} as Definitions; diff --git a/packages/types/src/interfaces/babe/index.ts b/packages/types/src/interfaces/babe/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/babe/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/babe/rpc.ts b/packages/types/src/interfaces/babe/rpc.ts new file mode 100644 index 0000000..c9b3e9d --- /dev/null +++ b/packages/types/src/interfaces/babe/rpc.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + epochAuthorship: { + description: 'Returns data about which slots (primary or secondary) can be claimed in the current epoch with the keys in the keystore', + isUnsafe: true, + params: [], + type: 'HashMap' + } +}; diff --git a/packages/types/src/interfaces/babe/runtime.ts b/packages/types/src/interfaces/babe/runtime.ts new file mode 100644 index 0000000..5c53a1f --- /dev/null +++ b/packages/types/src/interfaces/babe/runtime.ts @@ -0,0 +1,77 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionCall, DefinitionsCall } from '../../types/index.js'; + +const V1_V2_SHARED: Record = { + current_epoch: { + description: 'Returns information regarding the current epoch.', + params: [], + type: 'Epoch' + }, + current_epoch_start: { + description: 'Returns the slot that started the current epoch.', + params: [], + type: 'Slot' + }, + generate_key_ownership_proof: { + description: 'Generates a proof of key ownership for the given authority in the current epoch.', + params: [ + { + name: 'slot', + type: 'Slot' + }, + { + name: 'authorityId', + type: 'AuthorityId' + } + ], + type: 'Option' + }, + next_epoch: { + description: 'Returns information regarding the next epoch (which was already previously announced).', + params: [], + type: 'Epoch' + }, + submit_report_equivocation_unsigned_extrinsic: { + description: 'Submits an unsigned extrinsic to report an equivocation.', + params: [ + { + name: 'equivocationProof', + type: 'BabeEquivocationProof' + }, + { + name: 'keyOwnerProof', + type: 'OpaqueKeyOwnershipProof' + } + ], + type: 'Option' + } +}; + +export const runtime: DefinitionsCall = { + BabeApi: [ + { + methods: { + configuration: { + description: 'Return the genesis configuration for BABE. The configuration is only read on genesis.', + params: [], + type: 'BabeGenesisConfiguration' + }, + ...V1_V2_SHARED + }, + version: 2 + }, + { + methods: { + configuration: { + description: 'Return the configuration for BABE. Version 1.', + params: [], + type: 'BabeGenesisConfigurationV1' + }, + ...V1_V2_SHARED + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/babe/types.ts b/packages/types/src/interfaces/babe/types.ts new file mode 100644 index 0000000..cdc7225 --- /dev/null +++ b/packages/types/src/interfaces/babe/types.ts @@ -0,0 +1,187 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Option, Struct, U8aFixed, Vec, bool, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AuthorityId } from '@pezkuwi/types/interfaces/consensus'; +import type { Hash, Header, Slot } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AllowedSlots */ +export interface AllowedSlots extends Enum { + readonly isPrimarySlots: boolean; + readonly isPrimaryAndSecondaryPlainSlots: boolean; + readonly isPrimaryAndSecondaryVRFSlots: boolean; + readonly type: 'PrimarySlots' | 'PrimaryAndSecondaryPlainSlots' | 'PrimaryAndSecondaryVRFSlots'; +} + +/** @name BabeAuthorityWeight */ +export interface BabeAuthorityWeight extends u64 {} + +/** @name BabeBlockWeight */ +export interface BabeBlockWeight extends u32 {} + +/** @name BabeEpochConfiguration */ +export interface BabeEpochConfiguration extends Struct { + readonly c: ITuple<[u64, u64]>; + readonly allowedSlots: AllowedSlots; +} + +/** @name BabeEquivocationProof */ +export interface BabeEquivocationProof extends Struct { + readonly offender: AuthorityId; + readonly slotNumber: SlotNumber; + readonly firstHeader: Header; + readonly secondHeader: Header; +} + +/** @name BabeGenesisConfiguration */ +export interface BabeGenesisConfiguration extends Struct { + readonly slotDuration: u64; + readonly epochLength: u64; + readonly c: ITuple<[u64, u64]>; + readonly genesisAuthorities: Vec>; + readonly randomness: Randomness; + readonly allowedSlots: AllowedSlots; +} + +/** @name BabeGenesisConfigurationV1 */ +export interface BabeGenesisConfigurationV1 extends Struct { + readonly slotDuration: u64; + readonly epochLength: u64; + readonly c: ITuple<[u64, u64]>; + readonly genesisAuthorities: Vec>; + readonly randomness: Randomness; + readonly secondarySlots: bool; +} + +/** @name BabeWeight */ +export interface BabeWeight extends u64 {} + +/** @name Epoch */ +export interface Epoch extends Struct { + readonly epochIndex: u64; + readonly startSlot: Slot; + readonly duration: u64; + readonly authorities: Vec>; + readonly randomness: Hash; + readonly config: BabeEpochConfiguration; +} + +/** @name EpochAuthorship */ +export interface EpochAuthorship extends Struct { + readonly primary: Vec; + readonly secondary: Vec; + readonly secondary_vrf: Vec; +} + +/** @name MaybeRandomness */ +export interface MaybeRandomness extends Option {} + +/** @name MaybeVrf */ +export interface MaybeVrf extends Option {} + +/** @name NextConfigDescriptor */ +export interface NextConfigDescriptor extends Enum { + readonly isV0: boolean; + readonly isV1: boolean; + readonly asV1: NextConfigDescriptorV1; + readonly type: 'V0' | 'V1'; +} + +/** @name NextConfigDescriptorV1 */ +export interface NextConfigDescriptorV1 extends Struct { + readonly c: ITuple<[u64, u64]>; + readonly allowedSlots: AllowedSlots; +} + +/** @name OpaqueKeyOwnershipProof */ +export interface OpaqueKeyOwnershipProof extends Bytes {} + +/** @name Randomness */ +export interface Randomness extends Hash {} + +/** @name RawBabePreDigest */ +export interface RawBabePreDigest extends Enum { + readonly isPhantom: boolean; + readonly isPrimary: boolean; + readonly asPrimary: RawBabePreDigestPrimary; + readonly isSecondaryPlain: boolean; + readonly asSecondaryPlain: RawBabePreDigestSecondaryPlain; + readonly isSecondaryVRF: boolean; + readonly asSecondaryVRF: RawBabePreDigestSecondaryVRF; + readonly type: 'Phantom' | 'Primary' | 'SecondaryPlain' | 'SecondaryVRF'; +} + +/** @name RawBabePreDigestCompat */ +export interface RawBabePreDigestCompat extends Enum { + readonly isZero: boolean; + readonly asZero: u32; + readonly isOne: boolean; + readonly asOne: u32; + readonly isTwo: boolean; + readonly asTwo: u32; + readonly isThree: boolean; + readonly asThree: u32; + readonly type: 'Zero' | 'One' | 'Two' | 'Three'; +} + +/** @name RawBabePreDigestPrimary */ +export interface RawBabePreDigestPrimary extends Struct { + readonly authorityIndex: u32; + readonly slotNumber: SlotNumber; + readonly vrfOutput: VrfOutput; + readonly vrfProof: VrfProof; +} + +/** @name RawBabePreDigestPrimaryTo159 */ +export interface RawBabePreDigestPrimaryTo159 extends Struct { + readonly authorityIndex: u32; + readonly slotNumber: SlotNumber; + readonly weight: BabeBlockWeight; + readonly vrfOutput: VrfOutput; + readonly vrfProof: VrfProof; +} + +/** @name RawBabePreDigestSecondaryPlain */ +export interface RawBabePreDigestSecondaryPlain extends Struct { + readonly authorityIndex: u32; + readonly slotNumber: SlotNumber; +} + +/** @name RawBabePreDigestSecondaryTo159 */ +export interface RawBabePreDigestSecondaryTo159 extends Struct { + readonly authorityIndex: u32; + readonly slotNumber: SlotNumber; + readonly weight: BabeBlockWeight; +} + +/** @name RawBabePreDigestSecondaryVRF */ +export interface RawBabePreDigestSecondaryVRF extends Struct { + readonly authorityIndex: u32; + readonly slotNumber: SlotNumber; + readonly vrfOutput: VrfOutput; + readonly vrfProof: VrfProof; +} + +/** @name RawBabePreDigestTo159 */ +export interface RawBabePreDigestTo159 extends Enum { + readonly isPrimary: boolean; + readonly asPrimary: RawBabePreDigestPrimaryTo159; + readonly isSecondary: boolean; + readonly asSecondary: RawBabePreDigestSecondaryTo159; + readonly type: 'Primary' | 'Secondary'; +} + +/** @name SlotNumber */ +export interface SlotNumber extends u64 {} + +/** @name VrfData */ +export interface VrfData extends U8aFixed {} + +/** @name VrfOutput */ +export interface VrfOutput extends U8aFixed {} + +/** @name VrfProof */ +export interface VrfProof extends U8aFixed {} + +export type PHANTOM_BABE = 'babe'; diff --git a/packages/types/src/interfaces/balances/definitions.ts b/packages/types/src/interfaces/balances/definitions.ts new file mode 100644 index 0000000..970b7b6 --- /dev/null +++ b/packages/types/src/interfaces/balances/definitions.ts @@ -0,0 +1,55 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + AccountData: { + free: 'Balance', + reserved: 'Balance', + miscFrozen: 'Balance', + feeFrozen: 'Balance' + }, + BalanceLockTo212: { + id: 'LockIdentifier', + amount: 'Balance', + until: 'BlockNumber', + reasons: 'WithdrawReasons' + }, + BalanceLock: { + id: 'LockIdentifier', + amount: 'Balance', + reasons: 'Reasons' + }, + BalanceStatus: { + _enum: ['Free', 'Reserved'] + }, + Reasons: { + _enum: ['Fee', 'Misc', 'All'] + }, + ReserveData: { + id: 'ReserveIdentifier', + amount: 'Balance' + }, + ReserveIdentifier: '[u8; 8]', + VestingSchedule: { + offset: 'Balance', + perBlock: 'Balance', + startingBlock: 'BlockNumber' + }, + WithdrawReasons: { + _set: { + TransactionPayment: 0b0000_0001, + Transfer: 0b0000_0010, + Reserve: 0b0000_0100, + Fee: 0b0000_1000, + Tip: 0b0001_0000 + } + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/balances/index.ts b/packages/types/src/interfaces/balances/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/balances/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/balances/types.ts b/packages/types/src/interfaces/balances/types.ts new file mode 100644 index 0000000..629c204 --- /dev/null +++ b/packages/types/src/interfaces/balances/types.ts @@ -0,0 +1,70 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Set, Struct, U8aFixed } from '@pezkuwi/types-codec'; +import type { Balance, BlockNumber, LockIdentifier } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AccountData */ +export interface AccountData extends Struct { + readonly free: Balance; + readonly reserved: Balance; + readonly miscFrozen: Balance; + readonly feeFrozen: Balance; +} + +/** @name BalanceLock */ +export interface BalanceLock extends Struct { + readonly id: LockIdentifier; + readonly amount: Balance; + readonly reasons: Reasons; +} + +/** @name BalanceLockTo212 */ +export interface BalanceLockTo212 extends Struct { + readonly id: LockIdentifier; + readonly amount: Balance; + readonly until: BlockNumber; + readonly reasons: WithdrawReasons; +} + +/** @name BalanceStatus */ +export interface BalanceStatus extends Enum { + readonly isFree: boolean; + readonly isReserved: boolean; + readonly type: 'Free' | 'Reserved'; +} + +/** @name Reasons */ +export interface Reasons extends Enum { + readonly isFee: boolean; + readonly isMisc: boolean; + readonly isAll: boolean; + readonly type: 'Fee' | 'Misc' | 'All'; +} + +/** @name ReserveData */ +export interface ReserveData extends Struct { + readonly id: ReserveIdentifier; + readonly amount: Balance; +} + +/** @name ReserveIdentifier */ +export interface ReserveIdentifier extends U8aFixed {} + +/** @name VestingSchedule */ +export interface VestingSchedule extends Struct { + readonly offset: Balance; + readonly perBlock: Balance; + readonly startingBlock: BlockNumber; +} + +/** @name WithdrawReasons */ +export interface WithdrawReasons extends Set { + readonly isTransactionPayment: boolean; + readonly isTransfer: boolean; + readonly isReserve: boolean; + readonly isFee: boolean; + readonly isTip: boolean; +} + +export type PHANTOM_BALANCES = 'balances'; diff --git a/packages/types/src/interfaces/beefy/definitions.ts b/packages/types/src/interfaces/beefy/definitions.ts new file mode 100644 index 0000000..c43a120 --- /dev/null +++ b/packages/types/src/interfaces/beefy/definitions.ts @@ -0,0 +1,66 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + BeefyAuthoritySet: { + id: 'u64', + len: 'u32', + root: 'H256' + }, + BeefyCommitment: { + payload: 'BeefyPayload', + blockNumber: 'BlockNumber', + validatorSetId: 'ValidatorSetId' + }, + BeefyId: '[u8; 33]', + BeefyEquivocationProof: { + first: 'BeefyVoteMessage', + second: 'BeefyVoteMessage' + }, + BeefyCompactSignedCommitment: { + commitment: 'BeefyCommitment', + signaturesFrom: 'Vec', + validatorSetLen: 'u32', + signaturesCompact: 'Vec' + }, + BeefySignedCommitment: { + commitment: 'BeefyCommitment', + signatures: 'Vec>' + }, + BeefyVersionedFinalityProof: { + _enum: { + V0: 'Null', + V1: 'BeefyCompactSignedCommitment' + } + }, + BeefyNextAuthoritySet: { + id: 'u64', + len: 'u32', + root: 'H256' + }, + BeefyPayload: 'Vec<(BeefyPayloadId, Bytes)>', + BeefyPayloadId: '[u8;2]', + BeefyVoteMessage: { + commitment: 'BeefyCommitment', + id: 'AuthorityId', + signature: 'Signature' + }, + MmrRootHash: 'H256', + ValidatorSetId: 'u64', + ValidatorSet: { + validators: 'Vec', + id: 'ValidatorSetId' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/beefy/index.ts b/packages/types/src/interfaces/beefy/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/beefy/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/beefy/rpc.ts b/packages/types/src/interfaces/beefy/rpc.ts new file mode 100644 index 0000000..766cd7d --- /dev/null +++ b/packages/types/src/interfaces/beefy/rpc.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + getFinalizedHead: { + description: 'Returns hash of the latest BEEFY finalized block as seen by this client.', + params: [], + type: 'H256' + }, + subscribeJustifications: { + description: 'Returns the block most recently finalized by BEEFY, alongside its justification.', + params: [], + pubsub: [ + 'justifications', + 'subscribeJustifications', + 'unsubscribeJustifications' + ], + type: 'BeefyVersionedFinalityProof' + } +}; diff --git a/packages/types/src/interfaces/beefy/runtime.ts b/packages/types/src/interfaces/beefy/runtime.ts new file mode 100644 index 0000000..d57efa1 --- /dev/null +++ b/packages/types/src/interfaces/beefy/runtime.ts @@ -0,0 +1,107 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionCall, DefinitionsCall } from '../../types/index.js'; + +const BEEFY_V3: Record = { + beefy_genesis: { + description: 'Return the block number where BEEFY consensus is enabled/started', + params: [], + type: 'Option' + }, + generate_key_ownership_proof: { + description: 'Generates a proof of key ownership for the given authority in the given set.', + params: [ + { + name: 'setId', + type: 'ValidatorSetId' + }, + { + name: 'authorityId', + type: 'AuthorityId' + } + ], + type: 'Option' + }, + validator_set: { + description: 'Return the current active BEEFY validator set', + params: [], + type: 'Option' + } +}; + +const BEEFY_V1_V3: Record = { + ...BEEFY_V3, + submit_report_equivocation_unsigned_extrinsic: { + description: 'Submits an unsigned extrinsic to report an equivocation.', + params: [ + { + name: 'equivocationProof', + type: 'BeefyEquivocationProof' + }, + { + name: 'keyOwnerProof', + type: 'OpaqueKeyOwnershipProof' + } + ], + type: 'Option' + } +}; + +const BEEFY_V4: Record = { + ...BEEFY_V3, + submit_report_double_voting_unsigned_extrinsic: { + description: 'Submits an unsigned extrinsic to report a double voting equivocation.', + params: [ + { + name: 'equivocationProof', + type: 'PezspConsensusBeefyDoubleVotingProof' + }, + { + name: 'keyOwnerProof', + type: 'OpaqueKeyOwnershipProof' + } + ], + type: 'Option' + } +}; + +const BEEFY_MMR_V1: Record = { + authority_set_proof: { + description: 'Return the currently active BEEFY authority set proof.', + params: [], + type: 'BeefyAuthoritySet' + }, + next_authority_set_proof: { + description: 'Return the next/queued BEEFY authority set proof.', + params: [], + type: 'BeefyNextAuthoritySet' + } +}; + +export const runtime: DefinitionsCall = { + BeefyApi: [ + { + methods: BEEFY_V4, + version: 4 + }, + { + methods: BEEFY_V1_V3, + version: 3 + }, + { + methods: BEEFY_V1_V3, + version: 2 + }, + { + methods: BEEFY_V1_V3, + version: 1 + } + ], + BeefyMmrApi: [ + { + methods: BEEFY_MMR_V1, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/beefy/types.ts b/packages/types/src/interfaces/beefy/types.ts new file mode 100644 index 0000000..53988a3 --- /dev/null +++ b/packages/types/src/interfaces/beefy/types.ts @@ -0,0 +1,87 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Option, Struct, U8aFixed, Vec, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AuthorityId } from '@pezkuwi/types/interfaces/consensus'; +import type { EcdsaSignature, Signature } from '@pezkuwi/types/interfaces/extrinsics'; +import type { BlockNumber, H256 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name BeefyAuthoritySet */ +export interface BeefyAuthoritySet extends Struct { + readonly id: u64; + readonly len: u32; + readonly root: H256; +} + +/** @name BeefyCommitment */ +export interface BeefyCommitment extends Struct { + readonly payload: BeefyPayload; + readonly blockNumber: BlockNumber; + readonly validatorSetId: ValidatorSetId; +} + +/** @name BeefyCompactSignedCommitment */ +export interface BeefyCompactSignedCommitment extends Struct { + readonly commitment: BeefyCommitment; + readonly signaturesFrom: Bytes; + readonly validatorSetLen: u32; + readonly signaturesCompact: Vec; +} + +/** @name BeefyEquivocationProof */ +export interface BeefyEquivocationProof extends Struct { + readonly first: BeefyVoteMessage; + readonly second: BeefyVoteMessage; +} + +/** @name BeefyId */ +export interface BeefyId extends U8aFixed {} + +/** @name BeefyNextAuthoritySet */ +export interface BeefyNextAuthoritySet extends Struct { + readonly id: u64; + readonly len: u32; + readonly root: H256; +} + +/** @name BeefyPayload */ +export interface BeefyPayload extends Vec> {} + +/** @name BeefyPayloadId */ +export interface BeefyPayloadId extends U8aFixed {} + +/** @name BeefySignedCommitment */ +export interface BeefySignedCommitment extends Struct { + readonly commitment: BeefyCommitment; + readonly signatures: Vec>; +} + +/** @name BeefyVersionedFinalityProof */ +export interface BeefyVersionedFinalityProof extends Enum { + readonly isV0: boolean; + readonly isV1: boolean; + readonly asV1: BeefyCompactSignedCommitment; + readonly type: 'V0' | 'V1'; +} + +/** @name BeefyVoteMessage */ +export interface BeefyVoteMessage extends Struct { + readonly commitment: BeefyCommitment; + readonly id: AuthorityId; + readonly signature: Signature; +} + +/** @name MmrRootHash */ +export interface MmrRootHash extends H256 {} + +/** @name ValidatorSet */ +export interface ValidatorSet extends Struct { + readonly validators: Vec; + readonly id: ValidatorSetId; +} + +/** @name ValidatorSetId */ +export interface ValidatorSetId extends u64 {} + +export type PHANTOM_BEEFY = 'beefy'; diff --git a/packages/types/src/interfaces/benchmark/definitions.ts b/packages/types/src/interfaces/benchmark/definitions.ts new file mode 100644 index 0000000..d23fb64 --- /dev/null +++ b/packages/types/src/interfaces/benchmark/definitions.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + BenchmarkBatch: { + pallet: 'Text', + instance: 'Text', + benchmark: 'Text', + results: 'Vec' + }, + BenchmarkConfig: { + pallet: 'Bytes', + benchmark: 'Bytes', + selectedComponents: 'Vec<(BenchmarkParameter, u32)>', + verify: 'bool', + internalRepeats: 'u32' + }, + BenchmarkList: { + pallet: 'Bytes', + instance: 'Bytes', + benchmarks: 'Vec' + }, + BenchmarkMetadata: { + name: 'Bytes', + components: 'Vec<(BenchmarkParameter, u32, u32)>' + }, + BenchmarkParameter: { + _enum: ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'] + }, + BenchmarkResult: { + components: 'Vec<(BenchmarkParameter, u32)>', + extrinsicTime: 'u128', + storageRootTime: 'u128', + reads: 'u32', + repeatReads: 'u32', + writes: 'u32', + repeatWrites: 'u32', + proofSize: 'u32', + benchKeys: 'Vec<(Vec, u32, u32, bool)>' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/benchmark/index.ts b/packages/types/src/interfaces/benchmark/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/benchmark/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/benchmark/runtime.ts b/packages/types/src/interfaces/benchmark/runtime.ts new file mode 100644 index 0000000..2b20847 --- /dev/null +++ b/packages/types/src/interfaces/benchmark/runtime.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + Benchmark: [ + { + methods: { + benchmark_metadata: { + description: 'Get the benchmark metadata available for this runtime.', + params: [ + { + name: 'extra', + type: 'bool' + } + ], + type: '(Vec, Vec)' + }, + dispatch_benchmark: { + description: 'Dispatch the given benchmark.', + params: [ + { + name: 'config', + type: 'BenchmarkConfig' + } + ], + type: 'Result, Text>' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/benchmark/types.ts b/packages/types/src/interfaces/benchmark/types.ts new file mode 100644 index 0000000..bab6dcd --- /dev/null +++ b/packages/types/src/interfaces/benchmark/types.ts @@ -0,0 +1,81 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Struct, Text, Vec, bool, u128, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; + +/** @name BenchmarkBatch */ +export interface BenchmarkBatch extends Struct { + readonly pallet: Text; + readonly instance: Text; + readonly benchmark: Text; + readonly results: Vec; +} + +/** @name BenchmarkConfig */ +export interface BenchmarkConfig extends Struct { + readonly pallet: Bytes; + readonly benchmark: Bytes; + readonly selectedComponents: Vec>; + readonly verify: bool; + readonly internalRepeats: u32; +} + +/** @name BenchmarkList */ +export interface BenchmarkList extends Struct { + readonly pallet: Bytes; + readonly instance: Bytes; + readonly benchmarks: Vec; +} + +/** @name BenchmarkMetadata */ +export interface BenchmarkMetadata extends Struct { + readonly name: Bytes; + readonly components: Vec>; +} + +/** @name BenchmarkParameter */ +export interface BenchmarkParameter extends Enum { + readonly isA: boolean; + readonly isB: boolean; + readonly isC: boolean; + readonly isD: boolean; + readonly isE: boolean; + readonly isF: boolean; + readonly isG: boolean; + readonly isH: boolean; + readonly isI: boolean; + readonly isJ: boolean; + readonly isK: boolean; + readonly isL: boolean; + readonly isM: boolean; + readonly isN: boolean; + readonly isO: boolean; + readonly isP: boolean; + readonly isQ: boolean; + readonly isR: boolean; + readonly isS: boolean; + readonly isT: boolean; + readonly isU: boolean; + readonly isV: boolean; + readonly isW: boolean; + readonly isX: boolean; + readonly isY: boolean; + readonly isZ: boolean; + readonly type: 'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'G' | 'H' | 'I' | 'J' | 'K' | 'L' | 'M' | 'N' | 'O' | 'P' | 'Q' | 'R' | 'S' | 'T' | 'U' | 'V' | 'W' | 'X' | 'Y' | 'Z'; +} + +/** @name BenchmarkResult */ +export interface BenchmarkResult extends Struct { + readonly components: Vec>; + readonly extrinsicTime: u128; + readonly storageRootTime: u128; + readonly reads: u32; + readonly repeatReads: u32; + readonly writes: u32; + readonly repeatWrites: u32; + readonly proofSize: u32; + readonly benchKeys: Vec>; +} + +export type PHANTOM_BENCHMARK = 'benchmark'; diff --git a/packages/types/src/interfaces/blockbuilder/definitions.ts b/packages/types/src/interfaces/blockbuilder/definitions.ts new file mode 100644 index 0000000..3f28414 --- /dev/null +++ b/packages/types/src/interfaces/blockbuilder/definitions.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + CheckInherentsResult: { + okay: 'bool', + fatalError: 'bool', + errors: 'InherentData' + }, + InherentData: { + data: 'BTreeMap' + }, + InherentIdentifier: '[u8; 8]' + } +} as Definitions; diff --git a/packages/types/src/interfaces/blockbuilder/index.ts b/packages/types/src/interfaces/blockbuilder/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/blockbuilder/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/blockbuilder/runtime.ts b/packages/types/src/interfaces/blockbuilder/runtime.ts new file mode 100644 index 0000000..d4c7702 --- /dev/null +++ b/packages/types/src/interfaces/blockbuilder/runtime.ts @@ -0,0 +1,124 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall, DefinitionsCallEntry } from '../../types/index.js'; + +const BB_V2_TO_V4: DefinitionsCallEntry['methods'] = { + // this was removed after V4 + random_seed: { + description: 'Generate a random seed.', + params: [], + type: 'Hash' + } +}; + +const BB_V2_TO_V5: DefinitionsCallEntry['methods'] = { + apply_extrinsic: { + description: 'Apply the given extrinsic.', + params: [ + { + name: 'extrinsic', + type: 'Extrinsic' + } + ], + type: 'ApplyExtrinsicResultPre6' + } +}; + +const BB_V2_TO_V6: DefinitionsCallEntry['methods'] = { + check_inherents: { + description: 'Check that the inherents are valid.', + params: [ + { + name: 'block', + type: 'Block' + }, + { + name: 'data', + type: 'InherentData' + } + ], + type: 'CheckInherentsResult' + }, + inherent_extrinsics: { + description: 'Generate inherent extrinsics.', + params: [ + { + name: 'inherent', + type: 'InherentData' + } + ], + type: 'Vec' + } +}; + +const BB_V3_TO_V6: DefinitionsCallEntry['methods'] = { + // renamed in v3 from finalize_block + finalize_block: { + description: 'Finish the current block.', + params: [], + type: 'Header' + } +}; + +export const runtime: DefinitionsCall = { + BlockBuilder: [ + { + methods: { + apply_extrinsic: { + description: 'Apply the given extrinsic.', + params: [ + { + name: 'extrinsic', + type: 'Extrinsic' + } + ], + type: 'ApplyExtrinsicResult' + }, + ...BB_V2_TO_V6, + ...BB_V3_TO_V6 + }, + version: 6 + }, + { + methods: { + // apply_extrinsic result changed in 6 + ...BB_V2_TO_V5, + ...BB_V2_TO_V6, + ...BB_V3_TO_V6 + }, + version: 5 + }, + { + methods: { + // random_seed removed + ...BB_V2_TO_V4, + ...BB_V2_TO_V5, + ...BB_V2_TO_V6, + ...BB_V3_TO_V6 + }, + version: 4 + }, + { + methods: { + // finalize_block renamed + ...BB_V2_TO_V4, + ...BB_V2_TO_V6, + ...BB_V3_TO_V6 + }, + version: 3 + }, + { + methods: { + finalise_block: { + description: 'Finish the current block.', + params: [], + type: 'Header' + }, + ...BB_V2_TO_V4, + ...BB_V2_TO_V6 + }, + version: 2 + } + ] +}; diff --git a/packages/types/src/interfaces/blockbuilder/types.ts b/packages/types/src/interfaces/blockbuilder/types.ts new file mode 100644 index 0000000..3737389 --- /dev/null +++ b/packages/types/src/interfaces/blockbuilder/types.ts @@ -0,0 +1,21 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { BTreeMap, Bytes, Struct, U8aFixed, bool } from '@pezkuwi/types-codec'; + +/** @name CheckInherentsResult */ +export interface CheckInherentsResult extends Struct { + readonly okay: bool; + readonly fatalError: bool; + readonly errors: InherentData; +} + +/** @name InherentData */ +export interface InherentData extends Struct { + readonly data: BTreeMap; +} + +/** @name InherentIdentifier */ +export interface InherentIdentifier extends U8aFixed {} + +export type PHANTOM_BLOCKBUILDER = 'blockbuilder'; diff --git a/packages/types/src/interfaces/bridges/definitions.ts b/packages/types/src/interfaces/bridges/definitions.ts new file mode 100644 index 0000000..24ed977 --- /dev/null +++ b/packages/types/src/interfaces/bridges/definitions.ts @@ -0,0 +1,94 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + BridgedBlockHash: 'H256', + BridgedBlockNumber: 'BlockNumber', + BridgedHeader: 'Header', + BridgeMessageId: '(LaneId, MessageNonce)', + CallOrigin: { + _enum: { + SourceRoot: 'Null', + TargetAccount: '(AccountId, MultiSigner, MultiSignature)', + SourceAccount: 'AccountId' + } + }, + ChainId: '[u8; 4]', + DeliveredMessages: { + begin: 'MessageNonce', + end: 'MessageNonce', + // pub type DispatchResultsBitVec = BitVec; + dispatchResults: 'BitVec' + }, + DispatchFeePayment: { + _enum: ['AtSourceChain', 'AtTargetChain'] + }, + InboundLaneData: { + relayers: 'Vec', + lastConfirmedNonce: 'MessageNonce' + }, + InboundRelayer: 'AccountId', + InitializationData: { + header: 'Header', + authorityList: 'AuthorityList', + setId: 'SetId', + isHalted: 'bool' + }, + LaneId: '[u8; 4]', + MessageData: { + payload: 'Bytes', + fee: 'Balance' + }, + MessagesDeliveryProofOf: { + bridgedHeaderHash: 'BlockHash', + storageProof: 'Vec', + lane: 'LaneId' + }, + MessageKey: { + laneId: 'LaneId', + nonce: 'MessageNonce' + }, + MessageNonce: 'u64', + MessagesProofOf: { + bridgedHeaderHash: 'BridgedBlockHash', + storageProof: 'Vec', + lane: 'LaneId', + noncesStart: 'MessageNonce', + noncesEnd: 'MessageNonce' + }, + OperatingMode: { + _enum: ['Normal', 'RejectingOutboundMessages', 'Halted'] + }, + OutboundLaneData: { + oldestUnprunedNonce: 'MessageNonce', + latestReceivedNonce: 'MessageNonce', + latestGeneratedNonce: 'MessageNonce' + }, + OutboundMessageFee: 'Balance', + OutboundPayload: { + specVersion: 'u32', + weight: 'Weight', + origin: 'CallOrigin', + dispatchFeePayment: 'DispatchFeePayment', + call: 'Bytes' + }, + Parameter: 'Null', + RelayerId: 'AccountId', + UnrewardedRelayer: { + relayer: 'RelayerId', + messages: 'DeliveredMessages' + }, + UnrewardedRelayersState: { + unrewardedRelayer_Entries: 'MessageNonce', + messagesInOldestEntry: 'MessageNonce', + totalMessages: 'MessageNonce' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/bridges/index.ts b/packages/types/src/interfaces/bridges/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/bridges/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/bridges/types.ts b/packages/types/src/interfaces/bridges/types.ts new file mode 100644 index 0000000..9adb811 --- /dev/null +++ b/packages/types/src/interfaces/bridges/types.ts @@ -0,0 +1,147 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { BitVec, Bytes, Enum, Null, Struct, U8aFixed, Vec, bool, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { BlockHash } from '@pezkuwi/types/interfaces/chain'; +import type { MultiSignature } from '@pezkuwi/types/interfaces/extrinsics'; +import type { AuthorityList, SetId } from '@pezkuwi/types/interfaces/grandpa'; +import type { AccountId, Balance, BlockNumber, H256, Header, MultiSigner, Weight } from '@pezkuwi/types/interfaces/runtime'; + +/** @name BridgedBlockHash */ +export interface BridgedBlockHash extends H256 {} + +/** @name BridgedBlockNumber */ +export interface BridgedBlockNumber extends BlockNumber {} + +/** @name BridgedHeader */ +export interface BridgedHeader extends Header {} + +/** @name BridgeMessageId */ +export interface BridgeMessageId extends ITuple<[LaneId, MessageNonce]> {} + +/** @name CallOrigin */ +export interface CallOrigin extends Enum { + readonly isSourceRoot: boolean; + readonly isTargetAccount: boolean; + readonly asTargetAccount: ITuple<[AccountId, MultiSigner, MultiSignature]>; + readonly isSourceAccount: boolean; + readonly asSourceAccount: AccountId; + readonly type: 'SourceRoot' | 'TargetAccount' | 'SourceAccount'; +} + +/** @name ChainId */ +export interface ChainId extends U8aFixed {} + +/** @name DeliveredMessages */ +export interface DeliveredMessages extends Struct { + readonly begin: MessageNonce; + readonly end: MessageNonce; + readonly dispatchResults: BitVec; +} + +/** @name DispatchFeePayment */ +export interface DispatchFeePayment extends Enum { + readonly isAtSourceChain: boolean; + readonly isAtTargetChain: boolean; + readonly type: 'AtSourceChain' | 'AtTargetChain'; +} + +/** @name InboundLaneData */ +export interface InboundLaneData extends Struct { + readonly relayers: Vec; + readonly lastConfirmedNonce: MessageNonce; +} + +/** @name InboundRelayer */ +export interface InboundRelayer extends AccountId {} + +/** @name InitializationData */ +export interface InitializationData extends Struct { + readonly header: Header; + readonly authorityList: AuthorityList; + readonly setId: SetId; + readonly isHalted: bool; +} + +/** @name LaneId */ +export interface LaneId extends U8aFixed {} + +/** @name MessageData */ +export interface MessageData extends Struct { + readonly payload: Bytes; + readonly fee: Balance; +} + +/** @name MessageKey */ +export interface MessageKey extends Struct { + readonly laneId: LaneId; + readonly nonce: MessageNonce; +} + +/** @name MessageNonce */ +export interface MessageNonce extends u64 {} + +/** @name MessagesDeliveryProofOf */ +export interface MessagesDeliveryProofOf extends Struct { + readonly bridgedHeaderHash: BlockHash; + readonly storageProof: Vec; + readonly lane: LaneId; +} + +/** @name MessagesProofOf */ +export interface MessagesProofOf extends Struct { + readonly bridgedHeaderHash: BridgedBlockHash; + readonly storageProof: Vec; + readonly lane: LaneId; + readonly noncesStart: MessageNonce; + readonly noncesEnd: MessageNonce; +} + +/** @name OperatingMode */ +export interface OperatingMode extends Enum { + readonly isNormal: boolean; + readonly isRejectingOutboundMessages: boolean; + readonly isHalted: boolean; + readonly type: 'Normal' | 'RejectingOutboundMessages' | 'Halted'; +} + +/** @name OutboundLaneData */ +export interface OutboundLaneData extends Struct { + readonly oldestUnprunedNonce: MessageNonce; + readonly latestReceivedNonce: MessageNonce; + readonly latestGeneratedNonce: MessageNonce; +} + +/** @name OutboundMessageFee */ +export interface OutboundMessageFee extends Balance {} + +/** @name OutboundPayload */ +export interface OutboundPayload extends Struct { + readonly specVersion: u32; + readonly weight: Weight; + readonly origin: CallOrigin; + readonly dispatchFeePayment: DispatchFeePayment; + readonly call: Bytes; +} + +/** @name Parameter */ +export interface Parameter extends Null {} + +/** @name RelayerId */ +export interface RelayerId extends AccountId {} + +/** @name UnrewardedRelayer */ +export interface UnrewardedRelayer extends Struct { + readonly relayer: RelayerId; + readonly messages: DeliveredMessages; +} + +/** @name UnrewardedRelayersState */ +export interface UnrewardedRelayersState extends Struct { + readonly unrewardedRelayer_Entries: MessageNonce; + readonly messagesInOldestEntry: MessageNonce; + readonly totalMessages: MessageNonce; +} + +export type PHANTOM_BRIDGES = 'bridges'; diff --git a/packages/types/src/interfaces/chain/definitions.ts b/packages/types/src/interfaces/chain/definitions.ts new file mode 100644 index 0000000..0ae035d --- /dev/null +++ b/packages/types/src/interfaces/chain/definitions.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + BlockHash: 'Hash' + } +} as Definitions; diff --git a/packages/types/src/interfaces/chain/index.ts b/packages/types/src/interfaces/chain/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/chain/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/chain/rpc.ts b/packages/types/src/interfaces/chain/rpc.ts new file mode 100644 index 0000000..06056bb --- /dev/null +++ b/packages/types/src/interfaces/chain/rpc.ts @@ -0,0 +1,82 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + getBlock: { + description: 'Get header and body of a relay chain block', + params: [ + { + isHistoric: true, + isOptional: true, + name: 'hash', + type: 'BlockHash' + } + ], + type: 'SignedBlock' + }, + getBlockHash: { + description: 'Get the block hash for a specific block', + params: [ + { + isOptional: true, + name: 'blockNumber', + type: 'BlockNumber' + } + ], + type: 'BlockHash' + }, + getFinalizedHead: { + alias: ['chain_getFinalisedHead'], + description: 'Get hash of the last finalized block in the canon chain', + params: [], + type: 'BlockHash' + }, + getHeader: { + alias: ['chain_getHead'], + description: 'Retrieves the header for a specific block', + params: [ + { + isHistoric: true, + isOptional: true, + name: 'hash', + type: 'BlockHash' + } + ], + type: 'Header' + }, + subscribeAllHeads: { + description: 'Retrieves the newest header via subscription', + params: [], + pubsub: [ + 'allHead', + 'subscribeAllHeads', + 'unsubscribeAllHeads' + ], + type: 'Header' + }, + subscribeFinalizedHeads: { + alias: ['chain_subscribeFinalisedHeads', 'chain_unsubscribeFinalisedHeads'], + description: 'Retrieves the best finalized header via subscription', + params: [], + pubsub: [ + 'finalizedHead', + 'subscribeFinalizedHeads', + 'unsubscribeFinalizedHeads' + ], + type: 'Header' + }, + subscribeNewHeads: { + alias: ['chain_unsubscribeNewHeads', 'subscribe_newHead', 'unsubscribe_newHead'], + description: 'Retrieves the best header via subscription', + params: [], + // NOTE These still has the aliassed version, compatible with 1.x + pubsub: [ + 'newHead', + 'subscribeNewHead', + 'unsubscribeNewHead' + ], + type: 'Header' + } +}; diff --git a/packages/types/src/interfaces/chain/types.ts b/packages/types/src/interfaces/chain/types.ts new file mode 100644 index 0000000..ae4d18c --- /dev/null +++ b/packages/types/src/interfaces/chain/types.ts @@ -0,0 +1,9 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name BlockHash */ +export interface BlockHash extends Hash {} + +export type PHANTOM_CHAIN = 'chain'; diff --git a/packages/types/src/interfaces/childstate/definitions.ts b/packages/types/src/interfaces/childstate/definitions.ts new file mode 100644 index 0000000..6527669 --- /dev/null +++ b/packages/types/src/interfaces/childstate/definitions.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + // StorageKey extends Bytes + PrefixedStorageKey: 'StorageKey' + } +} as Definitions; diff --git a/packages/types/src/interfaces/childstate/index.ts b/packages/types/src/interfaces/childstate/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/childstate/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/childstate/rpc.ts b/packages/types/src/interfaces/childstate/rpc.ts new file mode 100644 index 0000000..0f47c16 --- /dev/null +++ b/packages/types/src/interfaces/childstate/rpc.ts @@ -0,0 +1,137 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + getKeys: { + description: 'Returns the keys with prefix from a child storage, leave empty to get all the keys', + params: [ + { + name: 'childKey', + type: 'PrefixedStorageKey' + }, + { + name: 'prefix', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Vec' + }, + getKeysPaged: { + alias: ['childstate_getKeysPagedAt'], + description: 'Returns the keys with prefix from a child storage with pagination support', + params: [ + { + name: 'childKey', + type: 'PrefixedStorageKey' + }, + { + name: 'prefix', + type: 'StorageKey' + }, + { + name: 'count', + type: 'u32' + }, + { + isOptional: true, + name: 'startKey', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Vec' + }, + getStorage: { + description: 'Returns a child storage entry at a specific block state', + params: [ + { + name: 'childKey', + type: 'PrefixedStorageKey' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Option' + }, + getStorageEntries: { + description: 'Returns child storage entries for multiple keys at a specific block state', + params: [ + { + name: 'childKey', + type: 'PrefixedStorageKey' + }, + { + name: 'keys', + type: 'Vec' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Vec>' + }, + getStorageHash: { + description: 'Returns the hash of a child storage entry at a block state', + params: [ + { + name: 'childKey', + type: 'PrefixedStorageKey' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Option' + }, + getStorageSize: { + description: 'Returns the size of a child storage entry at a block state', + params: [ + { + name: 'childKey', + type: 'PrefixedStorageKey' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Option' + } +}; diff --git a/packages/types/src/interfaces/childstate/types.ts b/packages/types/src/interfaces/childstate/types.ts new file mode 100644 index 0000000..770695b --- /dev/null +++ b/packages/types/src/interfaces/childstate/types.ts @@ -0,0 +1,9 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { StorageKey } from '@pezkuwi/types'; + +/** @name PrefixedStorageKey */ +export interface PrefixedStorageKey extends StorageKey {} + +export type PHANTOM_CHILDSTATE = 'childstate'; diff --git a/packages/types/src/interfaces/claims/definitions.ts b/packages/types/src/interfaces/claims/definitions.ts new file mode 100644 index 0000000..4f69ef2 --- /dev/null +++ b/packages/types/src/interfaces/claims/definitions.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + StatementKind: { + _enum: ['Regular', 'Saft'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/claims/index.ts b/packages/types/src/interfaces/claims/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/claims/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/claims/types.ts b/packages/types/src/interfaces/claims/types.ts new file mode 100644 index 0000000..efb7d50 --- /dev/null +++ b/packages/types/src/interfaces/claims/types.ts @@ -0,0 +1,13 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum } from '@pezkuwi/types-codec'; + +/** @name StatementKind */ +export interface StatementKind extends Enum { + readonly isRegular: boolean; + readonly isSaft: boolean; + readonly type: 'Regular' | 'Saft'; +} + +export type PHANTOM_CLAIMS = 'claims'; diff --git a/packages/types/src/interfaces/collective/definitions.ts b/packages/types/src/interfaces/collective/definitions.ts new file mode 100644 index 0000000..52d1db6 --- /dev/null +++ b/packages/types/src/interfaces/collective/definitions.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + CollectiveOrigin: { + _enum: { + Members: '(MemberCount, MemberCount)', + Member: 'AccountId' + } + }, + MemberCount: 'u32', + ProposalIndex: 'u32', + VotesTo230: { + index: 'ProposalIndex', + threshold: 'MemberCount', + ayes: 'Vec', + nays: 'Vec' + }, + Votes: { + index: 'ProposalIndex', + threshold: 'MemberCount', + ayes: 'Vec', + nays: 'Vec', + end: 'BlockNumber' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/collective/index.ts b/packages/types/src/interfaces/collective/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/collective/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/collective/types.ts b/packages/types/src/interfaces/collective/types.ts new file mode 100644 index 0000000..13cea08 --- /dev/null +++ b/packages/types/src/interfaces/collective/types.ts @@ -0,0 +1,40 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Struct, Vec, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, BlockNumber } from '@pezkuwi/types/interfaces/runtime'; + +/** @name CollectiveOrigin */ +export interface CollectiveOrigin extends Enum { + readonly isMembers: boolean; + readonly asMembers: ITuple<[MemberCount, MemberCount]>; + readonly isMember: boolean; + readonly asMember: AccountId; + readonly type: 'Members' | 'Member'; +} + +/** @name MemberCount */ +export interface MemberCount extends u32 {} + +/** @name ProposalIndex */ +export interface ProposalIndex extends u32 {} + +/** @name Votes */ +export interface Votes extends Struct { + readonly index: ProposalIndex; + readonly threshold: MemberCount; + readonly ayes: Vec; + readonly nays: Vec; + readonly end: BlockNumber; +} + +/** @name VotesTo230 */ +export interface VotesTo230 extends Struct { + readonly index: ProposalIndex; + readonly threshold: MemberCount; + readonly ayes: Vec; + readonly nays: Vec; +} + +export type PHANTOM_COLLECTIVE = 'collective'; diff --git a/packages/types/src/interfaces/consensus/definitions.ts b/packages/types/src/interfaces/consensus/definitions.ts new file mode 100644 index 0000000..15cea00 --- /dev/null +++ b/packages/types/src/interfaces/consensus/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + AuthorityId: 'AccountId', + RawVRFOutput: '[u8; 32]' + } +} as Definitions; diff --git a/packages/types/src/interfaces/consensus/index.ts b/packages/types/src/interfaces/consensus/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/consensus/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/consensus/types.ts b/packages/types/src/interfaces/consensus/types.ts new file mode 100644 index 0000000..f86b5e1 --- /dev/null +++ b/packages/types/src/interfaces/consensus/types.ts @@ -0,0 +1,13 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { U8aFixed } from '@pezkuwi/types-codec'; +import type { AccountId } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AuthorityId */ +export interface AuthorityId extends AccountId {} + +/** @name RawVRFOutput */ +export interface RawVRFOutput extends U8aFixed {} + +export type PHANTOM_CONSENSUS = 'consensus'; diff --git a/packages/types/src/interfaces/contracts/definitions.ts b/packages/types/src/interfaces/contracts/definitions.ts new file mode 100644 index 0000000..066515c --- /dev/null +++ b/packages/types/src/interfaces/contracts/definitions.ts @@ -0,0 +1,434 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + AliveContractInfo: { + trieId: 'TrieId', + storageSize: 'u32', + pairCount: 'u32', + codeHash: 'CodeHash', + rentAllowance: 'Balance', + rentPaid: 'Balance', + deductBlock: 'BlockNumber', + lastWrite: 'Option', + _reserved: 'Option' + }, + CodeHash: 'Hash', + CodeSource: { + _enum: { + Upload: 'Bytes', + Existing: 'Hash' + } + }, + CodeUploadRequest: { + origin: 'AccountId', + code: 'Bytes', + storageDepositLimit: 'Option' + }, + CodeUploadResult: 'Result', + CodeUploadResultValue: { + codeHash: 'CodeHash', + deposit: 'Balance' + }, + ContractCallRequest: { + origin: 'AccountId', + dest: 'AccountId', + value: 'Balance', + gasLimit: 'u64', + storageDepositLimit: 'Option', + inputData: 'Bytes' + }, + ContractExecResultSuccessTo255: { + status: 'u8', + data: 'Raw' + }, + ContractExecResultTo255: { + _enum: { + Success: 'ContractExecResultSuccessTo255', + Error: 'Null' + } + }, + ContractExecResultSuccessTo260: { + flags: 'ContractReturnFlags', + data: 'Bytes', + gasConsumed: 'u64' + }, + ContractExecResultTo260: { + _enum: { + Success: 'ContractExecResultSuccessTo260', + Error: 'Null' + } + }, + ContractExecResultOk: { + flags: 'ContractReturnFlags', + data: 'Bytes' + }, + ContractExecResultResult: 'Result', + ContractExecResultTo267: { + gasConsumed: 'u64', + debugMessage: 'Text', + result: 'ContractExecResultResult' + }, + ContractExecResult: { + gasConsumed: 'Weight', + gasRequired: 'Weight', + storageDeposit: 'StorageDeposit', + debugMessage: 'Text', + result: 'ContractExecResultResult' + }, + ContractExecResultU64: { + gasConsumed: 'u64', + gasRequired: 'u64', + storageDeposit: 'StorageDeposit', + debugMessage: 'Text', + result: 'ContractExecResultResult' + }, + ContractInfo: { + _enum: { + Alive: 'AliveContractInfo', + Tombstone: 'TombstoneContractInfo' + } + }, + ContractCallFlags: { + _set: { + _bitLength: 32, + ForwardInput: 0b0000_0001, + CloneInput: 0b0000_0010, + TailCall: 0b0000_0100, + AllowReentry: 0b0000_1000 + } + }, + ContractReturnFlags: { + _set: { + _bitLength: 32, + Revert: 0x0000_0001 + } + }, + ContractStorageKey: '[u8; 32]', + DeletedContract: { + pairCount: 'u32', + trieId: 'TrieId' + }, + ExecReturnValue: { + flags: 'ContractReturnFlags', + data: 'Bytes' + }, + Gas: 'u64', + HostFnWeightsTo264: { + caller: 'Weight', + address: 'Weight', + gasLeft: 'Weight', + balance: 'Weight', + valueTransferred: 'Weight', + minimumBalance: 'Weight', + tombstoneDeposit: 'Weight', + rentAllowance: 'Weight', + blockNumber: 'Weight', + now: 'Weight', + weightToFee: 'Weight', + gas: 'Weight', + input: 'Weight', + inputPerByte: 'Weight', + return: 'Weight', + returnPerByte: 'Weight', + terminate: 'Weight', + restoreTo: 'Weight', + restoreToPerDelta: 'Weight', + random: 'Weight', + depositEvent: 'Weight', + depositEventPerTopic: 'Weight', + depositEventPerByte: 'Weight', + setRentAllowance: 'Weight', + setStorage: 'Weight', + setStoragePerByte: 'Weight', + clearStorage: 'Weight', + getStorage: 'Weight', + getStoragePerByte: 'Weight', + transfer: 'Weight', + call: 'Weight', + callTransferSurcharge: 'Weight', + callPerInputByte: 'Weight', + callPerOutputByte: 'Weight', + instantiate: 'Weight', + instantiatePerInputByte: 'Weight', + instantiatePerOutputByte: 'Weight', + hashSha2256: 'Weight', + hashSha2256PerByte: 'Weight', + hashKeccak256: 'Weight', + hashKeccak256PerByte: 'Weight', + hashBlake2256: 'Weight', + hashBlake2256PerByte: 'Weight', + hashBlake2128: 'Weight', + hashBlake2128PerByte: 'Weight' + }, + HostFnWeights: { + caller: 'Weight', + address: 'Weight', + gasLeft: 'Weight', + balance: 'Weight', + valueTransferred: 'Weight', + minimumBalance: 'Weight', + tombstoneDeposit: 'Weight', + rentAllowance: 'Weight', + blockNumber: 'Weight', + now: 'Weight', + weightToFee: 'Weight', + gas: 'Weight', + input: 'Weight', + inputPerByte: 'Weight', + return: 'Weight', + returnPerByte: 'Weight', + terminate: 'Weight', + terminatePerCodeByte: 'Weight', + restoreTo: 'Weight', + restoreToPerCallerCodeByte: 'Weight', + restoreToPerTombstoneCodeByte: 'Weight', + restoreToPerDelta: 'Weight', + random: 'Weight', + depositEvent: 'Weight', + depositEventPerTopic: 'Weight', + depositEventPerByte: 'Weight', + setRentAllowance: 'Weight', + setStorage: 'Weight', + setStoragePerByte: 'Weight', + clearStorage: 'Weight', + getStorage: 'Weight', + getStoragePerByte: 'Weight', + transfer: 'Weight', + call: 'Weight', + callPerCodeByte: 'Weight', + callTransferSurcharge: 'Weight', + callPerInputByte: 'Weight', + callPerOutputByte: 'Weight', + instantiate: 'Weight', + instantiatePerCodeByte: 'Weight', + instantiatePerInputByte: 'Weight', + instantiatePerOutputByte: 'Weight', + instantiatePerSaltByte: 'Weight', + hashSha2256: 'Weight', + hashSha2256PerByte: 'Weight', + hashKeccak256: 'Weight', + hashKeccak256PerByte: 'Weight', + hashBlake2256: 'Weight', + hashBlake2256PerByte: 'Weight', + hashBlake2128: 'Weight', + hashBlake2128PerByte: 'Weight', + rentParams: 'Weight' + }, + InstantiateRequestV1: { + origin: 'AccountId', + value: 'Balance', + gasLimit: 'Gas', + code: 'Bytes', + data: 'Bytes', + salt: 'Bytes' + }, + InstantiateRequestV2: { + _fallback: 'InstantiateRequestV1', + origin: 'AccountId', + value: 'Balance', + gasLimit: 'Gas', + storageDepositLimit: 'Option', + code: 'Bytes', + data: 'Bytes', + salt: 'Bytes' + }, + InstantiateRequest: { + _fallback: 'InstantiateRequestV2', + origin: 'AccountId', + value: 'Balance', + gasLimit: 'Gas', + storageDepositLimit: 'Option', + code: 'CodeSource', + data: 'Bytes', + salt: 'Bytes' + }, + ContractInstantiateResultTo267: 'Result', + ContractInstantiateResultTo299: 'Result', + ContractInstantiateResult: { + gasConsumed: 'WeightV2', + gasRequired: 'WeightV2', + storageDeposit: 'StorageDeposit', + debugMessage: 'Text', + result: 'InstantiateReturnValue' + }, + ContractInstantiateResultU64: { + // only this one can fail, the current version (above) _should_ be correctly + // versioned now, aka no more deprecated RPCs involved, only runtime calls + _fallback: 'ContractInstantiateResultTo299', + gasConsumed: 'u64', + gasRequired: 'u64', + storageDeposit: 'StorageDeposit', + debugMessage: 'Text', + result: 'InstantiateReturnValue' + }, + InstantiateReturnValueTo267: { + result: 'ExecReturnValue', + accountId: 'AccountId', + rentProjection: 'Option' + }, + InstantiateReturnValueOk: { + result: 'ExecReturnValue', + accountId: 'AccountId' + }, + InstantiateReturnValue: 'Result', + InstructionWeights: { + i64const: 'u32', + i64load: 'u32', + i64store: 'u32', + select: 'u32', + rIf: 'u32', + br: 'u32', + brIf: 'u32', + brIable: 'u32', + brIablePerEntry: 'u32', + call: 'u32', + callIndirect: 'u32', + callIndirectPerParam: 'u32', + localGet: 'u32', + localSet: 'u32', + local_tee: 'u32', + globalGet: 'u32', + globalSet: 'u32', + memoryCurrent: 'u32', + memoryGrow: 'u32', + i64clz: 'u32', + i64ctz: 'u32', + i64popcnt: 'u32', + i64eqz: 'u32', + i64extendsi32: 'u32', + i64extendui32: 'u32', + i32wrapi64: 'u32', + i64eq: 'u32', + i64ne: 'u32', + i64lts: 'u32', + i64ltu: 'u32', + i64gts: 'u32', + i64gtu: 'u32', + i64les: 'u32', + i64leu: 'u32', + i64ges: 'u32', + i64geu: 'u32', + i64add: 'u32', + i64sub: 'u32', + i64mul: 'u32', + i64divs: 'u32', + i64divu: 'u32', + i64rems: 'u32', + i64remu: 'u32', + i64and: 'u32', + i64or: 'u32', + i64xor: 'u32', + i64shl: 'u32', + i64shrs: 'u32', + i64shru: 'u32', + i64rotl: 'u32', + i64rotr: 'u32' + }, + LimitsTo264: { + eventTopics: 'u32', + stackHeight: 'u32', + globals: 'u32', + parameters: 'u32', + memoryPages: 'u32', + tableSize: 'u32', + brTableSize: 'u32', + subjectLen: 'u32', + codeSize: 'u32' + }, + Limits: { + eventTopics: 'u32', + stackHeight: 'u32', + globals: 'u32', + parameters: 'u32', + memoryPages: 'u32', + tableSize: 'u32', + brTableSize: 'u32', + subjectLen: 'u32' + }, + PrefabWasmModule: { + scheduleVersion: 'Compact', + initial: 'Compact', + maximum: 'Compact', + refcount: 'Compact', + _reserved: 'Option', + code: 'Bytes', + originalCodeLen: 'u32' + }, + RentProjection: { + _enum: { + EvictionAt: 'BlockNumber', + NoEviction: 'Null' + } + }, + ScheduleTo212: { + version: 'u32', + putCodePerByteCost: 'Gas', + growMemCost: 'Gas', + regularOpCost: 'Gas', + returnDataPerByteCost: 'Gas', + eventDataPerByteCost: 'Gas', + eventPerTopicCost: 'Gas', + eventBaseCost: 'Gas', + sandboxDataReadCost: 'Gas', + sandboxDataWriteCost: 'Gas', + maxEventTopics: 'u32', + maxStackHeight: 'u32', + maxMemoryPages: 'u32', + enablePrintln: 'bool', + maxSubjectLen: 'u32' + }, + ScheduleTo258: { + version: 'u32', + putCodePerByteCost: 'Gas', + growMemCost: 'Gas', + regularOpCost: 'Gas', + returnDataPerByteCost: 'Gas', + eventDataPerByteCost: 'Gas', + eventPerTopicCost: 'Gas', + eventBaseCost: 'Gas', + sandboxDataReadCost: 'Gas', + sandboxDataWriteCost: 'Gas', + transferCost: 'Gas', + maxEventTopics: 'u32', + maxStackHeight: 'u32', + maxMemoryPages: 'u32', + enablePrintln: 'bool', + maxSubjectLen: 'u32' + }, + ScheduleTo264: { + version: 'u32', + enablePrintln: 'bool', + limits: 'LimitsTo264', + instructionWeights: 'InstructionWeights', + hostFnWeights: 'HostFnWeightsTo264' + }, + Schedule: { + version: 'u32', + enablePrintln: 'bool', + limits: 'Limits', + instructionWeights: 'InstructionWeights', + hostFnWeights: 'HostFnWeights' + }, + SeedOf: 'Hash', + StorageDeposit: { + _enum: { + Refund: 'Balance', + Charge: 'Balance' + } + }, + TombstoneContractInfo: 'Hash', + TrieId: 'Bytes' + } +} as Definitions; diff --git a/packages/types/src/interfaces/contracts/index.ts b/packages/types/src/interfaces/contracts/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/contracts/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/contracts/rpc.ts b/packages/types/src/interfaces/contracts/rpc.ts new file mode 100644 index 0000000..d146349 --- /dev/null +++ b/packages/types/src/interfaces/contracts/rpc.ts @@ -0,0 +1,99 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + call: { + deprecated: 'Use the runtime interface `api.call.contractsApi.call` instead', + description: 'Executes a call to a contract', + params: [ + { + name: 'callRequest', + type: 'ContractCallRequest' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'ContractExecResult' + }, + getStorage: { + deprecated: 'Use the runtime interface `api.call.contractsApi.getStorage` instead', + description: 'Returns the value under a specified storage key in a contract', + params: [ + { + name: 'address', + type: 'AccountId' + }, + { + name: 'key', + type: 'H256' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Option' + }, + instantiate: { + deprecated: 'Use the runtime interface `api.call.contractsApi.instantiate` instead', + description: 'Instantiate a new contract', + params: [ + { + name: 'request', + type: 'InstantiateRequestV1' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'ContractInstantiateResult' + }, + rentProjection: { + deprecated: 'Not available in newer versions of the contracts interfaces', + description: 'Returns the projected time a given contract will be able to sustain paying its rent', + params: [ + { + name: 'address', + type: 'AccountId' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Option' + }, + uploadCode: { + deprecated: 'Use the runtime interface `api.call.contractsApi.uploadCode` instead', + description: 'Upload new code without instantiating a contract from it', + // The RPC here is terribly misnamed - somebody forgot how the RPCs + // are actually done, ie. _ + endpoint: 'contracts_upload_code', + params: [ + { + name: 'uploadRequest', + type: 'CodeUploadRequest' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'CodeUploadResult' + } +}; diff --git a/packages/types/src/interfaces/contracts/runtime.ts b/packages/types/src/interfaces/contracts/runtime.ts new file mode 100644 index 0000000..5a4f6fd --- /dev/null +++ b/packages/types/src/interfaces/contracts/runtime.ts @@ -0,0 +1,184 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionCall, DefinitionsCall } from '../../types/index.js'; + +const SHARED_V1_V2: Record = { + get_storage: { + description: 'Query a given storage key in a given contract.', + params: [ + { + name: 'address', + type: 'AccountId' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Option' + }, + upload_code: { + description: 'Upload new code without instantiating a contract from it.', + params: [ + { + name: 'origin', + type: 'AccountId' + }, + { + name: 'code', + type: 'Bytes' + }, + { + name: 'storageDepositLimit', + type: 'Option' + } + ], + type: 'CodeUploadResult' + } +}; + +export const runtime: DefinitionsCall = { + ContractsApi: [ + { + methods: { + call: { + description: 'Perform a call from a specified account to a given contract.', + params: [ + { + name: 'origin', + type: 'AccountId' + }, + { + name: 'dest', + type: 'AccountId' + }, + { + name: 'value', + type: 'Balance' + }, + { + name: 'gasLimit', + type: 'Option' + }, + { + name: 'storageDepositLimit', + type: 'Option' + }, + { + name: 'inputData', + type: 'Vec' + } + ], + type: 'ContractExecResult' + }, + instantiate: { + description: 'Instantiate a new contract.', + params: [ + { + name: 'origin', + type: 'AccountId' + }, + { + name: 'value', + type: 'Balance' + }, + { + name: 'gasLimit', + type: 'Option' + }, + { + name: 'storageDepositLimit', + type: 'Option' + }, + { + name: 'code', + type: 'CodeSource' + }, + { + name: 'data', + type: 'Bytes' + }, + { + name: 'salt', + type: 'Bytes' + } + ], + type: 'ContractInstantiateResult' + }, + ...SHARED_V1_V2 + }, + version: 2 + }, + { + methods: { + call: { + description: 'Perform a call from a specified account to a given contract.', + params: [ + { + name: 'origin', + type: 'AccountId' + }, + { + name: 'dest', + type: 'AccountId' + }, + { + name: 'value', + type: 'Balance' + }, + { + name: 'gasLimit', + type: 'u64' + }, + { + name: 'storageDepositLimit', + type: 'Option' + }, + { + name: 'inputData', + type: 'Vec' + } + ], + type: 'ContractExecResultU64' + }, + instantiate: { + description: 'Instantiate a new contract.', + params: [ + { + name: 'origin', + type: 'AccountId' + }, + { + name: 'value', + type: 'Balance' + }, + { + name: 'gasLimit', + type: 'u64' + }, + { + name: 'storageDepositLimit', + type: 'Option' + }, + { + name: 'code', + type: 'CodeSource' + }, + { + name: 'data', + type: 'Bytes' + }, + { + name: 'salt', + type: 'Bytes' + } + ], + type: 'ContractInstantiateResultU64' + }, + ...SHARED_V1_V2 + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/contracts/types.ts b/packages/types/src/interfaces/contracts/types.ts new file mode 100644 index 0000000..23e4550 --- /dev/null +++ b/packages/types/src/interfaces/contracts/types.ts @@ -0,0 +1,536 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Compact, Enum, Null, Option, Raw, Result, Set, Struct, Text, U8aFixed, bool, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance, BlockNumber, Hash, Weight, WeightV2 } from '@pezkuwi/types/interfaces/runtime'; +import type { DispatchError } from '@pezkuwi/types/interfaces/system'; + +/** @name AliveContractInfo */ +export interface AliveContractInfo extends Struct { + readonly trieId: TrieId; + readonly storageSize: u32; + readonly pairCount: u32; + readonly codeHash: CodeHash; + readonly rentAllowance: Balance; + readonly rentPaid: Balance; + readonly deductBlock: BlockNumber; + readonly lastWrite: Option; + readonly _reserved: Option; +} + +/** @name CodeHash */ +export interface CodeHash extends Hash {} + +/** @name CodeSource */ +export interface CodeSource extends Enum { + readonly isUpload: boolean; + readonly asUpload: Bytes; + readonly isExisting: boolean; + readonly asExisting: Hash; + readonly type: 'Upload' | 'Existing'; +} + +/** @name CodeUploadRequest */ +export interface CodeUploadRequest extends Struct { + readonly origin: AccountId; + readonly code: Bytes; + readonly storageDepositLimit: Option; +} + +/** @name CodeUploadResult */ +export interface CodeUploadResult extends Result { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: CodeUploadResultValue; +} + +/** @name CodeUploadResultValue */ +export interface CodeUploadResultValue extends Struct { + readonly codeHash: CodeHash; + readonly deposit: Balance; +} + +/** @name ContractCallFlags */ +export interface ContractCallFlags extends Set { + readonly isForwardInput: boolean; + readonly isCloneInput: boolean; + readonly isTailCall: boolean; + readonly isAllowReentry: boolean; +} + +/** @name ContractCallRequest */ +export interface ContractCallRequest extends Struct { + readonly origin: AccountId; + readonly dest: AccountId; + readonly value: Balance; + readonly gasLimit: u64; + readonly storageDepositLimit: Option; + readonly inputData: Bytes; +} + +/** @name ContractExecResult */ +export interface ContractExecResult extends Struct { + readonly gasConsumed: Weight; + readonly gasRequired: Weight; + readonly storageDeposit: StorageDeposit; + readonly debugMessage: Text; + readonly result: ContractExecResultResult; +} + +/** @name ContractExecResultOk */ +export interface ContractExecResultOk extends Struct { + readonly flags: ContractReturnFlags; + readonly data: Bytes; +} + +/** @name ContractExecResultResult */ +export interface ContractExecResultResult extends Result { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: ContractExecResultOk; +} + +/** @name ContractExecResultSuccessTo255 */ +export interface ContractExecResultSuccessTo255 extends Struct { + readonly status: u8; + readonly data: Raw; +} + +/** @name ContractExecResultSuccessTo260 */ +export interface ContractExecResultSuccessTo260 extends Struct { + readonly flags: ContractReturnFlags; + readonly data: Bytes; + readonly gasConsumed: u64; +} + +/** @name ContractExecResultTo255 */ +export interface ContractExecResultTo255 extends Enum { + readonly isSuccess: boolean; + readonly asSuccess: ContractExecResultSuccessTo255; + readonly isError: boolean; + readonly type: 'Success' | 'Error'; +} + +/** @name ContractExecResultTo260 */ +export interface ContractExecResultTo260 extends Enum { + readonly isSuccess: boolean; + readonly asSuccess: ContractExecResultSuccessTo260; + readonly isError: boolean; + readonly type: 'Success' | 'Error'; +} + +/** @name ContractExecResultTo267 */ +export interface ContractExecResultTo267 extends Struct { + readonly gasConsumed: u64; + readonly debugMessage: Text; + readonly result: ContractExecResultResult; +} + +/** @name ContractExecResultU64 */ +export interface ContractExecResultU64 extends Struct { + readonly gasConsumed: u64; + readonly gasRequired: u64; + readonly storageDeposit: StorageDeposit; + readonly debugMessage: Text; + readonly result: ContractExecResultResult; +} + +/** @name ContractInfo */ +export interface ContractInfo extends Enum { + readonly isAlive: boolean; + readonly asAlive: AliveContractInfo; + readonly isTombstone: boolean; + readonly asTombstone: TombstoneContractInfo; + readonly type: 'Alive' | 'Tombstone'; +} + +/** @name ContractInstantiateResult */ +export interface ContractInstantiateResult extends Struct { + readonly gasConsumed: WeightV2; + readonly gasRequired: WeightV2; + readonly storageDeposit: StorageDeposit; + readonly debugMessage: Text; + readonly result: InstantiateReturnValue; +} + +/** @name ContractInstantiateResultTo267 */ +export interface ContractInstantiateResultTo267 extends Result { + readonly isErr: boolean; + readonly isOk: boolean; + readonly asOk: InstantiateReturnValueTo267; +} + +/** @name ContractInstantiateResultTo299 */ +export interface ContractInstantiateResultTo299 extends Result { + readonly isErr: boolean; + readonly isOk: boolean; + readonly asOk: InstantiateReturnValueOk; +} + +/** @name ContractInstantiateResultU64 */ +export interface ContractInstantiateResultU64 extends Struct { + readonly gasConsumed: u64; + readonly gasRequired: u64; + readonly storageDeposit: StorageDeposit; + readonly debugMessage: Text; + readonly result: InstantiateReturnValue; +} + +/** @name ContractReturnFlags */ +export interface ContractReturnFlags extends Set { + readonly isRevert: boolean; +} + +/** @name ContractStorageKey */ +export interface ContractStorageKey extends U8aFixed {} + +/** @name DeletedContract */ +export interface DeletedContract extends Struct { + readonly pairCount: u32; + readonly trieId: TrieId; +} + +/** @name ExecReturnValue */ +export interface ExecReturnValue extends Struct { + readonly flags: ContractReturnFlags; + readonly data: Bytes; +} + +/** @name Gas */ +export interface Gas extends u64 {} + +/** @name HostFnWeights */ +export interface HostFnWeights extends Struct { + readonly caller: Weight; + readonly address: Weight; + readonly gasLeft: Weight; + readonly balance: Weight; + readonly valueTransferred: Weight; + readonly minimumBalance: Weight; + readonly tombstoneDeposit: Weight; + readonly rentAllowance: Weight; + readonly blockNumber: Weight; + readonly now: Weight; + readonly weightToFee: Weight; + readonly gas: Weight; + readonly input: Weight; + readonly inputPerByte: Weight; + readonly return: Weight; + readonly returnPerByte: Weight; + readonly terminate: Weight; + readonly terminatePerCodeByte: Weight; + readonly restoreTo: Weight; + readonly restoreToPerCallerCodeByte: Weight; + readonly restoreToPerTombstoneCodeByte: Weight; + readonly restoreToPerDelta: Weight; + readonly random: Weight; + readonly depositEvent: Weight; + readonly depositEventPerTopic: Weight; + readonly depositEventPerByte: Weight; + readonly setRentAllowance: Weight; + readonly setStorage: Weight; + readonly setStoragePerByte: Weight; + readonly clearStorage: Weight; + readonly getStorage: Weight; + readonly getStoragePerByte: Weight; + readonly transfer: Weight; + readonly call: Weight; + readonly callPerCodeByte: Weight; + readonly callTransferSurcharge: Weight; + readonly callPerInputByte: Weight; + readonly callPerOutputByte: Weight; + readonly instantiate: Weight; + readonly instantiatePerCodeByte: Weight; + readonly instantiatePerInputByte: Weight; + readonly instantiatePerOutputByte: Weight; + readonly instantiatePerSaltByte: Weight; + readonly hashSha2256: Weight; + readonly hashSha2256PerByte: Weight; + readonly hashKeccak256: Weight; + readonly hashKeccak256PerByte: Weight; + readonly hashBlake2256: Weight; + readonly hashBlake2256PerByte: Weight; + readonly hashBlake2128: Weight; + readonly hashBlake2128PerByte: Weight; + readonly rentParams: Weight; +} + +/** @name HostFnWeightsTo264 */ +export interface HostFnWeightsTo264 extends Struct { + readonly caller: Weight; + readonly address: Weight; + readonly gasLeft: Weight; + readonly balance: Weight; + readonly valueTransferred: Weight; + readonly minimumBalance: Weight; + readonly tombstoneDeposit: Weight; + readonly rentAllowance: Weight; + readonly blockNumber: Weight; + readonly now: Weight; + readonly weightToFee: Weight; + readonly gas: Weight; + readonly input: Weight; + readonly inputPerByte: Weight; + readonly return: Weight; + readonly returnPerByte: Weight; + readonly terminate: Weight; + readonly restoreTo: Weight; + readonly restoreToPerDelta: Weight; + readonly random: Weight; + readonly depositEvent: Weight; + readonly depositEventPerTopic: Weight; + readonly depositEventPerByte: Weight; + readonly setRentAllowance: Weight; + readonly setStorage: Weight; + readonly setStoragePerByte: Weight; + readonly clearStorage: Weight; + readonly getStorage: Weight; + readonly getStoragePerByte: Weight; + readonly transfer: Weight; + readonly call: Weight; + readonly callTransferSurcharge: Weight; + readonly callPerInputByte: Weight; + readonly callPerOutputByte: Weight; + readonly instantiate: Weight; + readonly instantiatePerInputByte: Weight; + readonly instantiatePerOutputByte: Weight; + readonly hashSha2256: Weight; + readonly hashSha2256PerByte: Weight; + readonly hashKeccak256: Weight; + readonly hashKeccak256PerByte: Weight; + readonly hashBlake2256: Weight; + readonly hashBlake2256PerByte: Weight; + readonly hashBlake2128: Weight; + readonly hashBlake2128PerByte: Weight; +} + +/** @name InstantiateRequest */ +export interface InstantiateRequest extends Struct { + readonly origin: AccountId; + readonly value: Balance; + readonly gasLimit: Gas; + readonly storageDepositLimit: Option; + readonly code: CodeSource; + readonly data: Bytes; + readonly salt: Bytes; +} + +/** @name InstantiateRequestV1 */ +export interface InstantiateRequestV1 extends Struct { + readonly origin: AccountId; + readonly value: Balance; + readonly gasLimit: Gas; + readonly code: Bytes; + readonly data: Bytes; + readonly salt: Bytes; +} + +/** @name InstantiateRequestV2 */ +export interface InstantiateRequestV2 extends Struct { + readonly origin: AccountId; + readonly value: Balance; + readonly gasLimit: Gas; + readonly storageDepositLimit: Option; + readonly code: Bytes; + readonly data: Bytes; + readonly salt: Bytes; +} + +/** @name InstantiateReturnValue */ +export interface InstantiateReturnValue extends Result { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: InstantiateReturnValueOk; +} + +/** @name InstantiateReturnValueOk */ +export interface InstantiateReturnValueOk extends Struct { + readonly result: ExecReturnValue; + readonly accountId: AccountId; +} + +/** @name InstantiateReturnValueTo267 */ +export interface InstantiateReturnValueTo267 extends Struct { + readonly result: ExecReturnValue; + readonly accountId: AccountId; + readonly rentProjection: Option; +} + +/** @name InstructionWeights */ +export interface InstructionWeights extends Struct { + readonly i64const: u32; + readonly i64load: u32; + readonly i64store: u32; + readonly select: u32; + readonly rIf: u32; + readonly br: u32; + readonly brIf: u32; + readonly brIable: u32; + readonly brIablePerEntry: u32; + readonly call: u32; + readonly callIndirect: u32; + readonly callIndirectPerParam: u32; + readonly localGet: u32; + readonly localSet: u32; + readonly local_tee: u32; + readonly globalGet: u32; + readonly globalSet: u32; + readonly memoryCurrent: u32; + readonly memoryGrow: u32; + readonly i64clz: u32; + readonly i64ctz: u32; + readonly i64popcnt: u32; + readonly i64eqz: u32; + readonly i64extendsi32: u32; + readonly i64extendui32: u32; + readonly i32wrapi64: u32; + readonly i64eq: u32; + readonly i64ne: u32; + readonly i64lts: u32; + readonly i64ltu: u32; + readonly i64gts: u32; + readonly i64gtu: u32; + readonly i64les: u32; + readonly i64leu: u32; + readonly i64ges: u32; + readonly i64geu: u32; + readonly i64add: u32; + readonly i64sub: u32; + readonly i64mul: u32; + readonly i64divs: u32; + readonly i64divu: u32; + readonly i64rems: u32; + readonly i64remu: u32; + readonly i64and: u32; + readonly i64or: u32; + readonly i64xor: u32; + readonly i64shl: u32; + readonly i64shrs: u32; + readonly i64shru: u32; + readonly i64rotl: u32; + readonly i64rotr: u32; +} + +/** @name Limits */ +export interface Limits extends Struct { + readonly eventTopics: u32; + readonly stackHeight: u32; + readonly globals: u32; + readonly parameters: u32; + readonly memoryPages: u32; + readonly tableSize: u32; + readonly brTableSize: u32; + readonly subjectLen: u32; +} + +/** @name LimitsTo264 */ +export interface LimitsTo264 extends Struct { + readonly eventTopics: u32; + readonly stackHeight: u32; + readonly globals: u32; + readonly parameters: u32; + readonly memoryPages: u32; + readonly tableSize: u32; + readonly brTableSize: u32; + readonly subjectLen: u32; + readonly codeSize: u32; +} + +/** @name PrefabWasmModule */ +export interface PrefabWasmModule extends Struct { + readonly scheduleVersion: Compact; + readonly initial: Compact; + readonly maximum: Compact; + readonly refcount: Compact; + readonly _reserved: Option; + readonly code: Bytes; + readonly originalCodeLen: u32; +} + +/** @name RentProjection */ +export interface RentProjection extends Enum { + readonly isEvictionAt: boolean; + readonly asEvictionAt: BlockNumber; + readonly isNoEviction: boolean; + readonly type: 'EvictionAt' | 'NoEviction'; +} + +/** @name Schedule */ +export interface Schedule extends Struct { + readonly version: u32; + readonly enablePrintln: bool; + readonly limits: Limits; + readonly instructionWeights: InstructionWeights; + readonly hostFnWeights: HostFnWeights; +} + +/** @name ScheduleTo212 */ +export interface ScheduleTo212 extends Struct { + readonly version: u32; + readonly putCodePerByteCost: Gas; + readonly growMemCost: Gas; + readonly regularOpCost: Gas; + readonly returnDataPerByteCost: Gas; + readonly eventDataPerByteCost: Gas; + readonly eventPerTopicCost: Gas; + readonly eventBaseCost: Gas; + readonly sandboxDataReadCost: Gas; + readonly sandboxDataWriteCost: Gas; + readonly maxEventTopics: u32; + readonly maxStackHeight: u32; + readonly maxMemoryPages: u32; + readonly enablePrintln: bool; + readonly maxSubjectLen: u32; +} + +/** @name ScheduleTo258 */ +export interface ScheduleTo258 extends Struct { + readonly version: u32; + readonly putCodePerByteCost: Gas; + readonly growMemCost: Gas; + readonly regularOpCost: Gas; + readonly returnDataPerByteCost: Gas; + readonly eventDataPerByteCost: Gas; + readonly eventPerTopicCost: Gas; + readonly eventBaseCost: Gas; + readonly sandboxDataReadCost: Gas; + readonly sandboxDataWriteCost: Gas; + readonly transferCost: Gas; + readonly maxEventTopics: u32; + readonly maxStackHeight: u32; + readonly maxMemoryPages: u32; + readonly enablePrintln: bool; + readonly maxSubjectLen: u32; +} + +/** @name ScheduleTo264 */ +export interface ScheduleTo264 extends Struct { + readonly version: u32; + readonly enablePrintln: bool; + readonly limits: LimitsTo264; + readonly instructionWeights: InstructionWeights; + readonly hostFnWeights: HostFnWeightsTo264; +} + +/** @name SeedOf */ +export interface SeedOf extends Hash {} + +/** @name StorageDeposit */ +export interface StorageDeposit extends Enum { + readonly isRefund: boolean; + readonly asRefund: Balance; + readonly isCharge: boolean; + readonly asCharge: Balance; + readonly type: 'Refund' | 'Charge'; +} + +/** @name TombstoneContractInfo */ +export interface TombstoneContractInfo extends Hash {} + +/** @name TrieId */ +export interface TrieId extends Bytes {} + +export type PHANTOM_CONTRACTS = 'contracts'; diff --git a/packages/types/src/interfaces/contractsAbi/definitions.ts b/packages/types/src/interfaces/contractsAbi/definitions.ts new file mode 100644 index 0000000..65d1423 --- /dev/null +++ b/packages/types/src/interfaces/contractsAbi/definitions.ts @@ -0,0 +1,351 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions } from '../../types/index.js'; + +// order important in structs... :) +/* eslint-disable sort-keys */ + +const layout = { + ContractCryptoHasher: { + _enum: ['Blake2x256', 'Sha2x256', 'Keccak256'] + }, + ContractDiscriminant: 'u32', + ContractLayoutArray: { + offset: 'ContractLayoutKey', + len: 'u32', + cellsPerElem: 'u64', + layout: 'ContractStorageLayout' + }, + ContractLayoutCell: { + key: 'ContractLayoutKey', + ty: 'SiLookupTypeId' + }, + ContractLayoutEnum: { + dispatchKey: 'ContractLayoutKey', + variants: 'BTreeMap' + }, + ContractLayoutHash: { + offset: 'ContractLayoutKey', + strategy: 'ContractLayoutHashingStrategy', + layout: 'ContractStorageLayout' + }, + ContractLayoutHashingStrategy: { + hasher: 'ContractCryptoHasher', + postfix: 'Vec', + prefix: 'Vec' + }, + ContractLayoutKey: '[u8; 32]', + ContractLayoutStruct: { + fields: 'Vec' + }, + ContractLayoutStructField: { + layout: 'ContractStorageLayout', + name: 'Text' + }, + ContractStorageLayout: { + _enum: { + Cell: 'ContractLayoutCell', + Hash: 'ContractLayoutHash', + Array: 'ContractLayoutArray', + Struct: 'ContractLayoutStruct', + Enum: 'ContractLayoutEnum' + } + } +}; + +const spec = { + ContractConstructorSpecV0: { + name: 'Text', + selector: 'ContractSelector', + args: 'Vec', + docs: 'Vec' + }, + ContractConstructorSpecV1: { + name: 'Vec', + selector: 'ContractSelector', + args: 'Vec', + docs: 'Vec' + }, + ContractConstructorSpecV2: { + label: 'Text', + selector: 'ContractSelector', + args: 'Vec', + docs: 'Vec' + }, + ContractConstructorSpecV3: { + label: 'Text', + selector: 'ContractSelector', + payable: 'bool', + args: 'Vec', + docs: 'Vec' + }, + ContractConstructorSpecV4: { + label: 'Text', + selector: 'ContractSelector', + payable: 'bool', + args: 'Vec', + docs: 'Vec', + default: 'bool', + returnType: 'Option' + }, + ContractContractSpecV0: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec' + }, + ContractContractSpecV1: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec' + }, + ContractContractSpecV2: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec' + }, + ContractContractSpecV3: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec' + }, + ContractContractSpecV4: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec', + environment: 'ContractEnvironmentV4' + }, + ContractContractSpecV5: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec', + environment: 'ContractEnvironmentV4' + }, + ContractContractSpecV6: { + constructors: 'Vec', + messages: 'Vec', + events: 'Vec', + docs: 'Vec', + environment: 'ContractEnvironmentV4' + }, + + ContractDisplayName: 'SiPath', + ContractEventParamSpecV0: { + name: 'Text', + indexed: 'bool', + type: 'ContractTypeSpec', + docs: 'Vec' + }, + ContractEventParamSpecV2: { + label: 'Text', + indexed: 'bool', + type: 'ContractTypeSpec', + docs: 'Vec' + }, + ContractEventSpecV0: { + name: 'Text', + args: 'Vec', + docs: 'Vec' + }, + ContractEventSpecV1: { + name: 'Text', + args: 'Vec', + docs: 'Vec' + }, + ContractEventSpecV2: { + label: 'Text', + args: 'Vec', + docs: 'Vec' + }, + ContractEventSpecV3: { + label: 'Text', + args: 'Vec', + docs: 'Vec', + module_path: 'Text', + signature_topic: 'Option<[u8; 32]>' + }, + ContractMessageParamSpecV0: { + name: 'Text', + type: 'ContractTypeSpec' + }, + ContractMessageParamSpecV2: { + label: 'Text', + type: 'ContractTypeSpec' + }, + ContractMessageSpecV0: { + name: 'Text', + selector: 'ContractSelector', + mutates: 'bool', + payable: 'bool', + args: 'Vec', + returnType: 'Option', + docs: 'Vec' + }, + ContractMessageSpecV1: { + name: 'Vec', + selector: 'ContractSelector', + mutates: 'bool', + payable: 'bool', + args: 'Vec', + returnType: 'Option', + docs: 'Vec' + }, + ContractMessageSpecV2: { + label: 'Text', + selector: 'ContractSelector', + mutates: 'bool', + payable: 'bool', + args: 'Vec', + returnType: 'Option', + docs: 'Vec' + }, + ContractMessageSpecV3: { + label: 'Text', + selector: 'ContractSelector', + mutates: 'bool', + payable: 'bool', + args: 'Vec', + returnType: 'Option', + docs: 'Vec', + default: 'bool' + }, + ContractSelector: '[u8; 4]', + ContractTypeSpec: { + type: 'SiLookupTypeId', + displayName: 'ContractDisplayName' + } +}; + +const latest = { + ContractConstructorSpecLatest: 'ContractConstructorSpecV4', + ContractEventSpecLatest: 'ContractEventSpecV3', + ContractEventParamSpecLatest: 'ContractEventParamSpecV2', + ContractMessageParamSpecLatest: 'ContractMessageParamSpecV2', + ContractMessageSpecLatest: 'ContractMessageSpecV3', + ContractMetadataLatest: 'ContractMetadataV6' +}; + +export default { + rpc: {}, + types: { + ...layout, + ...spec, + ...latest, + ContractProjectInfo: { + source: 'ContractProjectSource', + contract: 'ContractProjectContract' + }, + ContractReviveProjectInfo: { + source: 'ContractReviveProjectSource', + contract: 'ContractProjectContract' + }, + ContractMetadataV0: { + metadataVersion: 'Text', + types: 'Vec', + spec: 'ContractContractSpecV0' + }, + ContractMetadataV1: { + types: 'Vec', + spec: 'ContractContractSpecV1' + }, + ContractMetadataV2: { + types: 'Vec', + spec: 'ContractContractSpecV2' + }, + ContractMetadataV3: { + types: 'Vec', + spec: 'ContractContractSpecV3' + }, + ContractMetadataV4: { + types: 'Vec', + spec: 'ContractContractSpecV4', + version: 'Text' + }, + ContractMetadataV5: { + types: 'Vec', + spec: 'ContractContractSpecV5', + version: 'u64' + }, + ContractMetadataV6: { + types: 'Vec', + spec: 'ContractContractSpecV6', + version: 'u64' + }, + ContractMetadata: { + _enum: { + V0: 'ContractMetadataV0', + V1: 'ContractMetadataV1', + V2: 'ContractMetadataV2', + V3: 'ContractMetadataV3', + V4: 'ContractMetadataV4', + V5: 'ContractMetadataV5', + V6: 'ContractMetadataV6' + } + }, + ContractProjectV0: { + metadataVersion: 'Text', + source: 'ContractProjectSource', + contract: 'ContractProjectContract', + types: 'Vec', + spec: 'ContractContractSpecV0' + }, + ContractProject: '(ContractProjectInfo, ContractMetadata)', + ContractProjectContract: { + _alias: { + docs: 'documentation' + }, + name: 'Text', + version: 'Text', + authors: 'Vec', + description: 'Option', + docs: 'Option', + repository: 'Option', + homepage: 'Option', + license: 'Option' + }, + ContractProjectSource: { + _alias: { + wasmHash: 'hash' + }, + wasmHash: '[u8; 32]', + language: 'Text', + compiler: 'Text', + wasm: 'Raw' + }, + ContractReviveProjectSource: { + _alias: { + wasmHash: 'hash', + wasm: 'contract_binary' + }, + wasmHash: '[u8; 32]', + language: 'Text', + compiler: 'Text', + wasm: 'Raw' + }, + ContractEnvironmentV4: { + _alias: { + hashType: 'hash' + }, + // NOTE These are not marked optional in the Rust code, however since we + // convert from older versions to newer, we may not have these fields. + // The Option<...> works since our inputs are always JSON, so it will + // be None when not specified. + // + // Additionally we don't mark the full structure as Option, rather we + // do it on a per-field basis since fields may be added as the versions + // progress. + accountId: 'Option', + balance: 'Option', + blockNumber: 'Option', + hashType: 'Option', + timestamp: 'Option', + maxEventTopics: 'Option' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/contractsAbi/index.ts b/packages/types/src/interfaces/contractsAbi/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/contractsAbi/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/contractsAbi/types.ts b/packages/types/src/interfaces/contractsAbi/types.ts new file mode 100644 index 0000000..6e28ea4 --- /dev/null +++ b/packages/types/src/interfaces/contractsAbi/types.ts @@ -0,0 +1,446 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { BTreeMap, Bytes, Enum, Option, Raw, Struct, Text, U8aFixed, Vec, bool, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { PortableType } from '@pezkuwi/types/interfaces/metadata'; +import type { Si0Type, SiLookupTypeId, SiPath } from '@pezkuwi/types/interfaces/scaleInfo'; + +/** @name ContractConstructorSpecLatest */ +export interface ContractConstructorSpecLatest extends ContractConstructorSpecV4 {} + +/** @name ContractConstructorSpecV0 */ +export interface ContractConstructorSpecV0 extends Struct { + readonly name: Text; + readonly selector: ContractSelector; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractConstructorSpecV1 */ +export interface ContractConstructorSpecV1 extends Struct { + readonly name: Vec; + readonly selector: ContractSelector; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractConstructorSpecV2 */ +export interface ContractConstructorSpecV2 extends Struct { + readonly label: Text; + readonly selector: ContractSelector; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractConstructorSpecV3 */ +export interface ContractConstructorSpecV3 extends Struct { + readonly label: Text; + readonly selector: ContractSelector; + readonly payable: bool; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractConstructorSpecV4 */ +export interface ContractConstructorSpecV4 extends Struct { + readonly label: Text; + readonly selector: ContractSelector; + readonly payable: bool; + readonly args: Vec; + readonly docs: Vec; + readonly default: bool; + readonly returnType: Option; +} + +/** @name ContractContractSpecV0 */ +export interface ContractContractSpecV0 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; +} + +/** @name ContractContractSpecV1 */ +export interface ContractContractSpecV1 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; +} + +/** @name ContractContractSpecV2 */ +export interface ContractContractSpecV2 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; +} + +/** @name ContractContractSpecV3 */ +export interface ContractContractSpecV3 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; +} + +/** @name ContractContractSpecV4 */ +export interface ContractContractSpecV4 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; + readonly environment: ContractEnvironmentV4; +} + +/** @name ContractContractSpecV5 */ +export interface ContractContractSpecV5 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; + readonly environment: ContractEnvironmentV4; +} + +/** @name ContractContractSpecV6 */ +export interface ContractContractSpecV6 extends Struct { + readonly constructors: Vec; + readonly messages: Vec; + readonly events: Vec; + readonly docs: Vec; + readonly environment: ContractEnvironmentV4; +} + +/** @name ContractCryptoHasher */ +export interface ContractCryptoHasher extends Enum { + readonly isBlake2x256: boolean; + readonly isSha2x256: boolean; + readonly isKeccak256: boolean; + readonly type: 'Blake2x256' | 'Sha2x256' | 'Keccak256'; +} + +/** @name ContractDiscriminant */ +export interface ContractDiscriminant extends u32 {} + +/** @name ContractDisplayName */ +export interface ContractDisplayName extends SiPath {} + +/** @name ContractEnvironmentV4 */ +export interface ContractEnvironmentV4 extends Struct { + readonly accountId: Option; + readonly balance: Option; + readonly blockNumber: Option; + readonly hashType: Option; + readonly timestamp: Option; + readonly maxEventTopics: Option; +} + +/** @name ContractEventParamSpecLatest */ +export interface ContractEventParamSpecLatest extends ContractEventParamSpecV2 {} + +/** @name ContractEventParamSpecV0 */ +export interface ContractEventParamSpecV0 extends Struct { + readonly name: Text; + readonly indexed: bool; + readonly type: ContractTypeSpec; + readonly docs: Vec; +} + +/** @name ContractEventParamSpecV2 */ +export interface ContractEventParamSpecV2 extends Struct { + readonly label: Text; + readonly indexed: bool; + readonly type: ContractTypeSpec; + readonly docs: Vec; +} + +/** @name ContractEventSpecLatest */ +export interface ContractEventSpecLatest extends ContractEventSpecV3 {} + +/** @name ContractEventSpecV0 */ +export interface ContractEventSpecV0 extends Struct { + readonly name: Text; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractEventSpecV1 */ +export interface ContractEventSpecV1 extends Struct { + readonly name: Text; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractEventSpecV2 */ +export interface ContractEventSpecV2 extends Struct { + readonly label: Text; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ContractEventSpecV3 */ +export interface ContractEventSpecV3 extends Struct { + readonly label: Text; + readonly args: Vec; + readonly docs: Vec; + readonly module_path: Text; + readonly signature_topic: Option; +} + +/** @name ContractLayoutArray */ +export interface ContractLayoutArray extends Struct { + readonly offset: ContractLayoutKey; + readonly len: u32; + readonly cellsPerElem: u64; + readonly layout: ContractStorageLayout; +} + +/** @name ContractLayoutCell */ +export interface ContractLayoutCell extends Struct { + readonly key: ContractLayoutKey; + readonly ty: SiLookupTypeId; +} + +/** @name ContractLayoutEnum */ +export interface ContractLayoutEnum extends Struct { + readonly dispatchKey: ContractLayoutKey; + readonly variants: BTreeMap; +} + +/** @name ContractLayoutHash */ +export interface ContractLayoutHash extends Struct { + readonly offset: ContractLayoutKey; + readonly strategy: ContractLayoutHashingStrategy; + readonly layout: ContractStorageLayout; +} + +/** @name ContractLayoutHashingStrategy */ +export interface ContractLayoutHashingStrategy extends Struct { + readonly hasher: ContractCryptoHasher; + readonly postfix: Bytes; + readonly prefix: Bytes; +} + +/** @name ContractLayoutKey */ +export interface ContractLayoutKey extends U8aFixed {} + +/** @name ContractLayoutStruct */ +export interface ContractLayoutStruct extends Struct { + readonly fields: Vec; +} + +/** @name ContractLayoutStructField */ +export interface ContractLayoutStructField extends Struct { + readonly layout: ContractStorageLayout; + readonly name: Text; +} + +/** @name ContractMessageParamSpecLatest */ +export interface ContractMessageParamSpecLatest extends ContractMessageParamSpecV2 {} + +/** @name ContractMessageParamSpecV0 */ +export interface ContractMessageParamSpecV0 extends Struct { + readonly name: Text; + readonly type: ContractTypeSpec; +} + +/** @name ContractMessageParamSpecV2 */ +export interface ContractMessageParamSpecV2 extends Struct { + readonly label: Text; + readonly type: ContractTypeSpec; +} + +/** @name ContractMessageSpecLatest */ +export interface ContractMessageSpecLatest extends ContractMessageSpecV3 {} + +/** @name ContractMessageSpecV0 */ +export interface ContractMessageSpecV0 extends Struct { + readonly name: Text; + readonly selector: ContractSelector; + readonly mutates: bool; + readonly payable: bool; + readonly args: Vec; + readonly returnType: Option; + readonly docs: Vec; +} + +/** @name ContractMessageSpecV1 */ +export interface ContractMessageSpecV1 extends Struct { + readonly name: Vec; + readonly selector: ContractSelector; + readonly mutates: bool; + readonly payable: bool; + readonly args: Vec; + readonly returnType: Option; + readonly docs: Vec; +} + +/** @name ContractMessageSpecV2 */ +export interface ContractMessageSpecV2 extends Struct { + readonly label: Text; + readonly selector: ContractSelector; + readonly mutates: bool; + readonly payable: bool; + readonly args: Vec; + readonly returnType: Option; + readonly docs: Vec; +} + +/** @name ContractMessageSpecV3 */ +export interface ContractMessageSpecV3 extends Struct { + readonly label: Text; + readonly selector: ContractSelector; + readonly mutates: bool; + readonly payable: bool; + readonly args: Vec; + readonly returnType: Option; + readonly docs: Vec; + readonly default: bool; +} + +/** @name ContractMetadata */ +export interface ContractMetadata extends Enum { + readonly isV0: boolean; + readonly asV0: ContractMetadataV0; + readonly isV1: boolean; + readonly asV1: ContractMetadataV1; + readonly isV2: boolean; + readonly asV2: ContractMetadataV2; + readonly isV3: boolean; + readonly asV3: ContractMetadataV3; + readonly isV4: boolean; + readonly asV4: ContractMetadataV4; + readonly isV5: boolean; + readonly asV5: ContractMetadataV5; + readonly isV6: boolean; + readonly asV6: ContractMetadataV6; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5' | 'V6'; +} + +/** @name ContractMetadataLatest */ +export interface ContractMetadataLatest extends ContractMetadataV6 {} + +/** @name ContractMetadataV0 */ +export interface ContractMetadataV0 extends Struct { + readonly metadataVersion: Text; + readonly types: Vec; + readonly spec: ContractContractSpecV0; +} + +/** @name ContractMetadataV1 */ +export interface ContractMetadataV1 extends Struct { + readonly types: Vec; + readonly spec: ContractContractSpecV1; +} + +/** @name ContractMetadataV2 */ +export interface ContractMetadataV2 extends Struct { + readonly types: Vec; + readonly spec: ContractContractSpecV2; +} + +/** @name ContractMetadataV3 */ +export interface ContractMetadataV3 extends Struct { + readonly types: Vec; + readonly spec: ContractContractSpecV3; +} + +/** @name ContractMetadataV4 */ +export interface ContractMetadataV4 extends Struct { + readonly types: Vec; + readonly spec: ContractContractSpecV4; + readonly version: Text; +} + +/** @name ContractMetadataV5 */ +export interface ContractMetadataV5 extends Struct { + readonly types: Vec; + readonly spec: ContractContractSpecV5; + readonly version: u64; +} + +/** @name ContractMetadataV6 */ +export interface ContractMetadataV6 extends Struct { + readonly types: Vec; + readonly spec: ContractContractSpecV6; + readonly version: u64; +} + +/** @name ContractProject */ +export interface ContractProject extends ITuple<[ContractProjectInfo, ContractMetadata]> {} + +/** @name ContractProjectContract */ +export interface ContractProjectContract extends Struct { + readonly name: Text; + readonly version: Text; + readonly authors: Vec; + readonly description: Option; + readonly docs: Option; + readonly repository: Option; + readonly homepage: Option; + readonly license: Option; +} + +/** @name ContractProjectInfo */ +export interface ContractProjectInfo extends Struct { + readonly source: ContractProjectSource; + readonly contract: ContractProjectContract; +} + +/** @name ContractProjectSource */ +export interface ContractProjectSource extends Struct { + readonly wasmHash: U8aFixed; + readonly language: Text; + readonly compiler: Text; + readonly wasm: Raw; +} + +/** @name ContractProjectV0 */ +export interface ContractProjectV0 extends Struct { + readonly metadataVersion: Text; + readonly source: ContractProjectSource; + readonly contract: ContractProjectContract; + readonly types: Vec; + readonly spec: ContractContractSpecV0; +} + +/** @name ContractReviveProjectInfo */ +export interface ContractReviveProjectInfo extends Struct { + readonly source: ContractReviveProjectSource; + readonly contract: ContractProjectContract; +} + +/** @name ContractReviveProjectSource */ +export interface ContractReviveProjectSource extends Struct { + readonly wasmHash: U8aFixed; + readonly language: Text; + readonly compiler: Text; + readonly wasm: Raw; +} + +/** @name ContractSelector */ +export interface ContractSelector extends U8aFixed {} + +/** @name ContractStorageLayout */ +export interface ContractStorageLayout extends Enum { + readonly isCell: boolean; + readonly asCell: ContractLayoutCell; + readonly isHash: boolean; + readonly asHash: ContractLayoutHash; + readonly isArray: boolean; + readonly asArray: ContractLayoutArray; + readonly isStruct: boolean; + readonly asStruct: ContractLayoutStruct; + readonly isEnum: boolean; + readonly asEnum: ContractLayoutEnum; + readonly type: 'Cell' | 'Hash' | 'Array' | 'Struct' | 'Enum'; +} + +/** @name ContractTypeSpec */ +export interface ContractTypeSpec extends Struct { + readonly type: SiLookupTypeId; + readonly displayName: ContractDisplayName; +} + +export type PHANTOM_CONTRACTSABI = 'contractsAbi'; diff --git a/packages/types/src/interfaces/crowdloan/definitions.ts b/packages/types/src/interfaces/crowdloan/definitions.ts new file mode 100644 index 0000000..0e77c80 --- /dev/null +++ b/packages/types/src/interfaces/crowdloan/definitions.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + FundIndex: 'u32', + LastContribution: { + _enum: { + Never: 'Null', + PreEnding: 'u32', + Ending: 'BlockNumber' + } + }, + FundInfo: { + depositor: 'AccountId', + verifier: 'Option', + deposit: 'Balance', + raised: 'Balance', + end: 'BlockNumber', + cap: 'Balance', + lastContribution: 'LastContribution', + firstPeriod: 'LeasePeriod', + lastPeriod: 'LeasePeriod', + trieIndex: 'TrieIndex' + }, + TrieIndex: 'u32' + } +} as Definitions; diff --git a/packages/types/src/interfaces/crowdloan/index.ts b/packages/types/src/interfaces/crowdloan/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/crowdloan/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/crowdloan/types.ts b/packages/types/src/interfaces/crowdloan/types.ts new file mode 100644 index 0000000..48fd131 --- /dev/null +++ b/packages/types/src/interfaces/crowdloan/types.ts @@ -0,0 +1,38 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Option, Struct, u32 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance, BlockNumber, MultiSigner } from '@pezkuwi/types/interfaces/runtime'; +import type { LeasePeriod } from '@pezkuwi/types/interfaces/teyrchains'; + +/** @name FundIndex */ +export interface FundIndex extends u32 {} + +/** @name FundInfo */ +export interface FundInfo extends Struct { + readonly depositor: AccountId; + readonly verifier: Option; + readonly deposit: Balance; + readonly raised: Balance; + readonly end: BlockNumber; + readonly cap: Balance; + readonly lastContribution: LastContribution; + readonly firstPeriod: LeasePeriod; + readonly lastPeriod: LeasePeriod; + readonly trieIndex: TrieIndex; +} + +/** @name LastContribution */ +export interface LastContribution extends Enum { + readonly isNever: boolean; + readonly isPreEnding: boolean; + readonly asPreEnding: u32; + readonly isEnding: boolean; + readonly asEnding: BlockNumber; + readonly type: 'Never' | 'PreEnding' | 'Ending'; +} + +/** @name TrieIndex */ +export interface TrieIndex extends u32 {} + +export type PHANTOM_CROWDLOAN = 'crowdloan'; diff --git a/packages/types/src/interfaces/definitions.spec.ts b/packages/types/src/interfaces/definitions.spec.ts new file mode 100644 index 0000000..ad160f9 --- /dev/null +++ b/packages/types/src/interfaces/definitions.spec.ts @@ -0,0 +1,159 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionCall, DefinitionRpc, DefinitionsCall, DefinitionsCallEntry, DefinitionsRpc, DefinitionsTypes, RegistryTypes } from '../types/index.js'; + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { getTypeDef, TypeRegistry } from '../create/index.js'; +import { Metadata } from '../metadata/index.js'; +import * as all from './definitions.js'; + +interface CheckDef { + rpc: DefinitionsRpc; + runtime: DefinitionsCall; + types: DefinitionsTypes; +} + +const registry = new TypeRegistry(); +const types = Object.values(all).reduce>((r, { types = {} }) => { + Object.entries(types).forEach(([k, v]) => { + r[k] = v; + }); + + return r; +}, {}); + +registry.register(types as RegistryTypes); +registry.setMetadata(new Metadata(registry, rpcMetadata)); + +function inspectType (type: string): void { + try { + // get the definition + const { sub } = getTypeDef(registry.createType(type).toRawType()); + + // inspect the subs + if (Array.isArray(sub)) { + for (let i = 0, count = sub.length; i < count; i++) { + inspectType(sub[i].type); + } + } else if (sub) { + inspectType(sub.type); + } + } catch (error) { + throw new Error(`${type}:: ${(error as Error).message}`); + } +} + +describe('type definitions', (): void => { + const allTypes = Object.entries(all).filter((v): v is [string, CheckDef] => + !!v[1].types && + Object.keys(v[1].types).length !== 0 && + v[0] === 'benchmark' + ); + + for (const [key, { types }] of allTypes) { + describe(`${key}`, (): void => { + const typesKeys = Object.keys(types).filter((type) => + // meant to fail + type !== 'ExtrinsicUnknown' && + type !== 'ExtrinsicPayloadUnknown' && + // injected at runtime + type !== 'Origin' && + // it will fail of MetadataV0 + type !== 'MetadataAll' + ); + + for (const type of typesKeys) { + it(`${type} is known`, (): void => { + expect(() => inspectType(type)).not.toThrow(); + }); + } + }); + } +}); + +describe('rpc definitions', (): void => { + const rpcs = Object.entries(all).filter((v): v is [string, CheckDef] => + !!v[1].rpc && + Object.keys(v[1].rpc).length !== 0 + ); + + for (const [section, { rpc }] of rpcs) { + describe(`${section}`, (): void => { + const methodsEntries = Object.entries(rpc); + + for (const [method, { params, type }] of methodsEntries) { + describe(`${method}`, (): void => { + // We cannot constuct V0, so just ignore + if (section !== 'state' || method !== 'getMetadata') { + it(`output ${type} is known`, (): void => { + expect(() => inspectType(type)).not.toThrow(); + }); + } + + if (params.length) { + describe('params', (): void => { + for (const { name, type } of params) { + it(`${name}: ${type} is known`, (): void => { + expect(() => inspectType(type)).not.toThrow(); + }); + } + }); + } + }); + } + }); + } +}); + +describe('runtime definitions', (): void => { + const runtimes = Object.entries(all).filter((v): v is [string, CheckDef] => + !!v[1].runtime && + Object.keys(v[1].runtime).length !== 0 + ); + + for (const [key, { runtime }] of runtimes) { + describe(`${key}`, (): void => { + const versionsEntries = Object.entries(runtime); + + for (const [key, versions] of versionsEntries) { + describe(`${key}`, (): void => { + for (const { methods, version } of versions) { + describe(`version ${version}`, (): void => { + const methodsEntries = Object.entries(methods); + const skipInspectTypes = ['StagingXcmV3MultiLocation', 'StagingXcmV4Location', 'Result, FungiblesAccessError>', 'Result', 'XcmVersionedLocation', 'XcmVersionedAssetId', 'XcmVersionedXcm', 'Result, XcmPaymentApiError>', 'VersionedMultiLocation', 'VersionedXcm', 'PostDispatchInfo', 'DispatchResultWithPostInfo', 'CallDryRunEffects', 'XcmDryRunEffects', 'XcmDryRunApiError', 'Result', 'Result']; + + for (const [key, { params, type }] of methodsEntries) { + describe(`${key}`, (): void => { + // Applied from runtime, used in Fungibles + const skipInspectType = skipInspectTypes.includes(type); + + if (!skipInspectType) { + it(`output ${type} is known`, (): void => { + expect(() => inspectType(type)).not.toThrow(); + }); + } + + if (params.length) { + describe('params', (): void => { + for (const { name, type } of params) { + if (skipInspectTypes.includes(type)) { + continue; + } + + it(`${name}: ${type} is known`, (): void => { + expect(() => inspectType(type)).not.toThrow(); + }); + } + }); + } + }); + } + }); + } + }); + } + }); + } +}); diff --git a/packages/types/src/interfaces/definitions.ts b/packages/types/src/interfaces/definitions.ts new file mode 100644 index 0000000..dcd4160 --- /dev/null +++ b/packages/types/src/interfaces/definitions.ts @@ -0,0 +1,92 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './essentials.js'; + +// bizinikiwi types +export { default as assetConversion } from './assetConversion/definitions.js'; +export { default as assets } from './assets/definitions.js'; +export { default as aura } from './aura/definitions.js'; +export { default as authorship } from './authorship/definitions.js'; +export { default as babe } from './babe/definitions.js'; +export { default as balances } from './balances/definitions.js'; +export { default as beefy } from './beefy/definitions.js'; +export { default as benchmark } from './benchmark/definitions.js'; +export { default as blockbuilder } from './blockbuilder/definitions.js'; +export { default as collective } from './collective/definitions.js'; +export { default as consensus } from './consensus/definitions.js'; +export { default as contracts } from './contracts/definitions.js'; +export { default as democracy } from './democracy/definitions.js'; +export { default as dev } from './dev/definitions.js'; +export { default as discovery } from './discovery/definitions.js'; +export { default as elections } from './elections/definitions.js'; +export { default as engine } from './engine/definitions.js'; +export { default as evm } from './evm/definitions.js'; +export { default as extrinsics } from './extrinsics/definitions.js'; +export { default as fungibles } from './fungibles/definitions.js'; +export { default as genericAsset } from './genericAsset/definitions.js'; +export { default as genesisBuilder } from './genesisBuilder/definitions.js'; +export { default as gilt } from './gilt/definitions.js'; +export { default as grandpa } from './grandpa/definitions.js'; +export { default as identity } from './identity/definitions.js'; +export { default as imOnline } from './imOnline/definitions.js'; +export { default as lottery } from './lottery/definitions.js'; +export { default as mixnet } from './mixnet/definitions.js'; +export { default as mmr } from './mmr/definitions.js'; +export { default as nfts } from './nfts/definitions.js'; +export { default as nompools } from './nompools/definitions.js'; +export { default as offences } from './offences/definitions.js'; +export { default as pow } from './pow/definitions.js'; +export { default as proxy } from './proxy/definitions.js'; +export { default as recovery } from './recovery/definitions.js'; +export { default as scheduler } from './scheduler/definitions.js'; +export { default as session } from './session/definitions.js'; +export { default as society } from './society/definitions.js'; +export { default as staking } from './staking/definitions.js'; +export { default as statement } from './statement/definitions.js'; +export { default as support } from './support/definitions.js'; +export { default as syncstate } from './syncstate/definitions.js'; +export { default as system } from './system/definitions.js'; +export { default as treasury } from './treasury/definitions.js'; +export { default as txpayment } from './txpayment/definitions.js'; +export { default as txqueue } from './txqueue/definitions.js'; +export { default as uniques } from './uniques/definitions.js'; +export { default as utility } from './utility/definitions.js'; +export { default as vesting } from './vesting/definitions.js'; + +// pezkuwi-specific types +export { default as attestations } from './attestations/definitions.js'; +export { default as bridges } from './bridges/definitions.js'; +export { default as claims } from './claims/definitions.js'; +export { default as crowdloan } from './crowdloan/definitions.js'; +export { default as finality } from './finality/definitions.js'; +export { default as pezcumulus } from './pezcumulus/definitions.js'; +export { default as poll } from './poll/definitions.js'; +export { default as purchase } from './purchase/definitions.js'; +export { default as teyrchains } from './teyrchains/definitions.js'; + +// XCM related types +export { default as dryRunApi } from './dryRunApi/definitions.js'; +export { default as xcm } from './xcm/definitions.js'; +export { default as xcmPaymentApi } from './xcmPaymentApi/definitions.js'; +export { default as xcmRuntimeApi } from './xcmRuntimeApi/definitions.js'; + +// other useful types +export { default as contractsAbi } from './contractsAbi/definitions.js'; +export { default as eth } from './eth/definitions.js'; + +// additional known/community definitions +export { default as nimbus } from './nimbus/definitions.js'; +export { default as ormlOracle } from './ormlOracle/definitions.js'; +export { default as ormlTokens } from './ormlTokens/definitions.js'; + +// pull in rpc last, assuming that is uses info from above +export { default as rpc } from './rpc/definitions.js'; + +// rpc-only definitions +export { default as author } from './author/definitions.js'; +export { default as chain } from './chain/definitions.js'; +export { default as childstate } from './childstate/definitions.js'; +export { default as offchain } from './offchain/definitions.js'; +export { default as payment } from './payment/definitions.js'; +export { default as state } from './state/definitions.js'; diff --git a/packages/types/src/interfaces/democracy/definitions.ts b/packages/types/src/interfaces/democracy/definitions.ts new file mode 100644 index 0000000..a03e8c5 --- /dev/null +++ b/packages/types/src/interfaces/democracy/definitions.ts @@ -0,0 +1,121 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export const AllConvictions = [ + // 0.1x votes, unlocked. + 'None', + // 1x votes, locked for an enactment period following a successful vote. + 'Locked1x', + // 2x votes, locked for 2x enactment periods following a successful vote. + 'Locked2x', + // 3x votes, locked for 4x... + 'Locked3x', + // 4x votes, locked for 8x... + 'Locked4x', + // 5x votes, locked for 16x... + 'Locked5x', + // 6x votes, locked for 32x... + 'Locked6x' +]; + +export default { + rpc: {}, + types: { + AccountVote: { + _enum: { + Standard: 'AccountVoteStandard', + Split: 'AccountVoteSplit' + } + }, + AccountVoteSplit: { + aye: 'Balance', + nay: 'Balance' + }, + AccountVoteStandard: { + vote: 'Vote', + balance: 'Balance' + }, + Conviction: { + _enum: AllConvictions + }, + Delegations: { + votes: 'Balance', + capital: 'Balance' + }, + PreimageStatus: { + _enum: { + Missing: 'BlockNumber', + Available: 'PreimageStatusAvailable' + } + }, + PreimageStatusAvailable: { + data: 'Bytes', + provider: 'AccountId', + deposit: 'Balance', + since: 'BlockNumber', + expiry: 'Option' + }, + PriorLock: '(BlockNumber, Balance)', + PropIndex: 'u32', + Proposal: 'Call', + ProxyState: { + _enum: { + Open: 'AccountId', + Active: 'AccountId' + } + }, + ReferendumIndex: 'u32', + ReferendumInfoTo239: { + end: 'BlockNumber', + proposalHash: 'Hash', + threshold: 'VoteThreshold', + delay: 'BlockNumber' + }, + ReferendumInfo: { + _enum: { + Ongoing: 'ReferendumStatus', + Finished: 'ReferendumInfoFinished' + } + }, + ReferendumInfoFinished: { + approved: 'bool', + end: 'BlockNumber' + }, + ReferendumStatus: { + end: 'BlockNumber', + proposalHash: 'Hash', + threshold: 'VoteThreshold', + delay: 'BlockNumber', + tally: 'Tally' + }, + Tally: { + ayes: 'Balance', + nays: 'Balance', + turnout: 'Balance' + }, + Voting: { + _enum: { + Direct: 'VotingDirect', + Delegating: 'VotingDelegating' + } + }, + VotingDirect: { + votes: 'Vec', + delegations: 'Delegations', + prior: 'PriorLock' + }, + VotingDirectVote: '(ReferendumIndex, AccountVote)', + VotingDelegating: { + balance: 'Balance', + target: 'AccountId', + conviction: 'Conviction', + delegations: 'Delegations', + prior: 'PriorLock' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/democracy/index.ts b/packages/types/src/interfaces/democracy/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/democracy/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/democracy/types.ts b/packages/types/src/interfaces/democracy/types.ts new file mode 100644 index 0000000..29594d4 --- /dev/null +++ b/packages/types/src/interfaces/democracy/types.ts @@ -0,0 +1,154 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Option, Struct, Vec, bool, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { Vote, VoteThreshold } from '@pezkuwi/types/interfaces/elections'; +import type { AccountId, Balance, BlockNumber, Call, Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AccountVote */ +export interface AccountVote extends Enum { + readonly isStandard: boolean; + readonly asStandard: AccountVoteStandard; + readonly isSplit: boolean; + readonly asSplit: AccountVoteSplit; + readonly type: 'Standard' | 'Split'; +} + +/** @name AccountVoteSplit */ +export interface AccountVoteSplit extends Struct { + readonly aye: Balance; + readonly nay: Balance; +} + +/** @name AccountVoteStandard */ +export interface AccountVoteStandard extends Struct { + readonly vote: Vote; + readonly balance: Balance; +} + +/** @name Conviction */ +export interface Conviction extends Enum { + readonly isNone: boolean; + readonly isLocked1x: boolean; + readonly isLocked2x: boolean; + readonly isLocked3x: boolean; + readonly isLocked4x: boolean; + readonly isLocked5x: boolean; + readonly isLocked6x: boolean; + readonly type: 'None' | 'Locked1x' | 'Locked2x' | 'Locked3x' | 'Locked4x' | 'Locked5x' | 'Locked6x'; +} + +/** @name Delegations */ +export interface Delegations extends Struct { + readonly votes: Balance; + readonly capital: Balance; +} + +/** @name PreimageStatus */ +export interface PreimageStatus extends Enum { + readonly isMissing: boolean; + readonly asMissing: BlockNumber; + readonly isAvailable: boolean; + readonly asAvailable: PreimageStatusAvailable; + readonly type: 'Missing' | 'Available'; +} + +/** @name PreimageStatusAvailable */ +export interface PreimageStatusAvailable extends Struct { + readonly data: Bytes; + readonly provider: AccountId; + readonly deposit: Balance; + readonly since: BlockNumber; + readonly expiry: Option; +} + +/** @name PriorLock */ +export interface PriorLock extends ITuple<[BlockNumber, Balance]> {} + +/** @name PropIndex */ +export interface PropIndex extends u32 {} + +/** @name Proposal */ +export interface Proposal extends Call {} + +/** @name ProxyState */ +export interface ProxyState extends Enum { + readonly isOpen: boolean; + readonly asOpen: AccountId; + readonly isActive: boolean; + readonly asActive: AccountId; + readonly type: 'Open' | 'Active'; +} + +/** @name ReferendumIndex */ +export interface ReferendumIndex extends u32 {} + +/** @name ReferendumInfo */ +export interface ReferendumInfo extends Enum { + readonly isOngoing: boolean; + readonly asOngoing: ReferendumStatus; + readonly isFinished: boolean; + readonly asFinished: ReferendumInfoFinished; + readonly type: 'Ongoing' | 'Finished'; +} + +/** @name ReferendumInfoFinished */ +export interface ReferendumInfoFinished extends Struct { + readonly approved: bool; + readonly end: BlockNumber; +} + +/** @name ReferendumInfoTo239 */ +export interface ReferendumInfoTo239 extends Struct { + readonly end: BlockNumber; + readonly proposalHash: Hash; + readonly threshold: VoteThreshold; + readonly delay: BlockNumber; +} + +/** @name ReferendumStatus */ +export interface ReferendumStatus extends Struct { + readonly end: BlockNumber; + readonly proposalHash: Hash; + readonly threshold: VoteThreshold; + readonly delay: BlockNumber; + readonly tally: Tally; +} + +/** @name Tally */ +export interface Tally extends Struct { + readonly ayes: Balance; + readonly nays: Balance; + readonly turnout: Balance; +} + +/** @name Voting */ +export interface Voting extends Enum { + readonly isDirect: boolean; + readonly asDirect: VotingDirect; + readonly isDelegating: boolean; + readonly asDelegating: VotingDelegating; + readonly type: 'Direct' | 'Delegating'; +} + +/** @name VotingDelegating */ +export interface VotingDelegating extends Struct { + readonly balance: Balance; + readonly target: AccountId; + readonly conviction: Conviction; + readonly delegations: Delegations; + readonly prior: PriorLock; +} + +/** @name VotingDirect */ +export interface VotingDirect extends Struct { + readonly votes: Vec; + readonly delegations: Delegations; + readonly prior: PriorLock; +} + +/** @name VotingDirectVote */ +export interface VotingDirectVote extends ITuple<[ReferendumIndex, AccountVote]> {} + +export type PHANTOM_DEMOCRACY = 'democracy'; diff --git a/packages/types/src/interfaces/dev/definitions.ts b/packages/types/src/interfaces/dev/definitions.ts new file mode 100644 index 0000000..7378add --- /dev/null +++ b/packages/types/src/interfaces/dev/definitions.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + BlockStats: { + witnessLen: 'u64', + witnessCompactLen: 'u64', + blockLen: 'u64', + blockNumExtrinsics: 'u64' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/dev/index.ts b/packages/types/src/interfaces/dev/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/dev/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/dev/rpc.ts b/packages/types/src/interfaces/dev/rpc.ts new file mode 100644 index 0000000..2b1ba20 --- /dev/null +++ b/packages/types/src/interfaces/dev/rpc.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + getBlockStats: { + description: 'Reexecute the specified `block_hash` and gather statistics while doing so', + isUnsafe: true, + params: [ + { + isHistoric: true, + name: 'at', + type: 'Hash' + } + ], + type: 'Option' + } +}; diff --git a/packages/types/src/interfaces/dev/types.ts b/packages/types/src/interfaces/dev/types.ts new file mode 100644 index 0000000..97b9f08 --- /dev/null +++ b/packages/types/src/interfaces/dev/types.ts @@ -0,0 +1,14 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, u64 } from '@pezkuwi/types-codec'; + +/** @name BlockStats */ +export interface BlockStats extends Struct { + readonly witnessLen: u64; + readonly witnessCompactLen: u64; + readonly blockLen: u64; + readonly blockNumExtrinsics: u64; +} + +export type PHANTOM_DEV = 'dev'; diff --git a/packages/types/src/interfaces/discovery/definitions.ts b/packages/types/src/interfaces/discovery/definitions.ts new file mode 100644 index 0000000..23a6a43 --- /dev/null +++ b/packages/types/src/interfaces/discovery/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/discovery/index.ts b/packages/types/src/interfaces/discovery/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/discovery/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/discovery/runtime.ts b/packages/types/src/interfaces/discovery/runtime.ts new file mode 100644 index 0000000..6215833 --- /dev/null +++ b/packages/types/src/interfaces/discovery/runtime.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + AuthorityDiscoveryApi: [ + { + methods: { + authorities: { + description: 'Retrieve authority identifiers of the current and next authority set.', + params: [], + type: 'Vec' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/discovery/types.ts b/packages/types/src/interfaces/discovery/types.ts new file mode 100644 index 0000000..1df057a --- /dev/null +++ b/packages/types/src/interfaces/discovery/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_DISCOVERY = 'discovery'; diff --git a/packages/types/src/interfaces/dryRunApi/definitions.ts b/packages/types/src/interfaces/dryRunApi/definitions.ts new file mode 100644 index 0000000..2ea72af --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/definitions.ts @@ -0,0 +1,38 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + PostDispatchInfo: { + actualWeight: 'Option', + paysFee: 'Pays' + }, + DispatchResultWithPostInfo: 'Result', + CallDryRunEffects: { + executionResult: 'DispatchResultWithPostInfo', + emittedEvents: 'Vec', + localXcm: 'Option', + forwardedXcms: 'Vec<(VersionedMultiLocation, Vec)>' + }, + XcmDryRunEffects: { + executionResult: 'OutcomeV4', + emittedEvents: 'Vec', + forwardedXcms: 'Vec<(VersionedMultiLocation, Vec)>' + }, + XcmDryRunApiError: { + _enum: [ + 'Unimplemented', + 'VersionedConversionFailed' + ] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/dryRunApi/index.ts b/packages/types/src/interfaces/dryRunApi/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/dryRunApi/runtime.ts b/packages/types/src/interfaces/dryRunApi/runtime.ts new file mode 100644 index 0000000..ae98e8b --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/runtime.ts @@ -0,0 +1,79 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + DryRunApi: [ + { + methods: { + dry_run_call: { + description: 'Dry run call', + params: [ + { + name: 'origin', + type: 'OriginCaller' + }, + { + name: 'call', + type: 'RuntimeCall' + } + ], + type: 'Result' + }, + dry_run_xcm: { + description: 'Dry run XCM program', + params: [ + { + name: 'originLocation', + type: 'VersionedMultiLocation' + }, + { + name: 'xcm', + type: 'VersionedXcm' + } + ], + type: 'Result' + } + }, + version: 1 + }, + { + methods: { + dry_run_call: { + description: 'Dry run call', + params: [ + { + name: 'origin', + type: 'OriginCaller' + }, + { + name: 'call', + type: 'RuntimeCall' + }, + { + name: 'resultXcmsVersion', + type: 'u32' + } + ], + type: 'Result' + }, + dry_run_xcm: { + description: 'Dry run XCM program', + params: [ + { + name: 'originLocation', + type: 'VersionedMultiLocation' + }, + { + name: 'xcm', + type: 'VersionedXcm' + } + ], + type: 'Result' + } + }, + version: 2 + } + ] +}; diff --git a/packages/types/src/interfaces/dryRunApi/types.ts b/packages/types/src/interfaces/dryRunApi/types.ts new file mode 100644 index 0000000..e3e8ec3 --- /dev/null +++ b/packages/types/src/interfaces/dryRunApi/types.ts @@ -0,0 +1,46 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Option, Result, Struct, Vec } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { Pays, Weight } from '@pezkuwi/types/interfaces/runtime'; +import type { DispatchError, Event } from '@pezkuwi/types/interfaces/system'; +import type { OutcomeV4, VersionedMultiLocation, VersionedXcm } from '@pezkuwi/types/interfaces/xcm'; + +/** @name CallDryRunEffects */ +export interface CallDryRunEffects extends Struct { + readonly executionResult: DispatchResultWithPostInfo; + readonly emittedEvents: Vec; + readonly localXcm: Option; + readonly forwardedXcms: Vec]>>; +} + +/** @name DispatchResultWithPostInfo */ +export interface DispatchResultWithPostInfo extends Result { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: PostDispatchInfo; +} + +/** @name PostDispatchInfo */ +export interface PostDispatchInfo extends Struct { + readonly actualWeight: Option; + readonly paysFee: Pays; +} + +/** @name XcmDryRunApiError */ +export interface XcmDryRunApiError extends Enum { + readonly isUnimplemented: boolean; + readonly isVersionedConversionFailed: boolean; + readonly type: 'Unimplemented' | 'VersionedConversionFailed'; +} + +/** @name XcmDryRunEffects */ +export interface XcmDryRunEffects extends Struct { + readonly executionResult: OutcomeV4; + readonly emittedEvents: Vec; + readonly forwardedXcms: Vec]>>; +} + +export type PHANTOM_DRYRUNAPI = 'dryRunApi'; diff --git a/packages/types/src/interfaces/elections/definitions.ts b/packages/types/src/interfaces/elections/definitions.ts new file mode 100644 index 0000000..2e898ac --- /dev/null +++ b/packages/types/src/interfaces/elections/definitions.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + ApprovalFlag: 'u32', + DefunctVoter: { + who: 'AccountId', + voteCount: 'Compact', + candidateCount: 'Compact' + }, + Renouncing: { + _enum: { + Member: 'Null', + RunnerUp: 'Null', + Candidate: 'Compact' + } + }, + SetIndex: 'u32', + Vote: 'GenericVote', + VoteIndex: 'u32', + VoterInfo: { + lastActive: 'VoteIndex', + lastWin: 'VoteIndex', + pot: 'Balance', + stake: 'Balance' + }, + VoteThreshold: { + _enum: [ + 'Super Majority Approve', + 'Super Majority Against', + 'Simple Majority' + ] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/elections/index.ts b/packages/types/src/interfaces/elections/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/elections/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/elections/types.ts b/packages/types/src/interfaces/elections/types.ts new file mode 100644 index 0000000..4a80f91 --- /dev/null +++ b/packages/types/src/interfaces/elections/types.ts @@ -0,0 +1,52 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { GenericVote } from '@pezkuwi/types'; +import type { Compact, Enum, Struct, u32 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ApprovalFlag */ +export interface ApprovalFlag extends u32 {} + +/** @name DefunctVoter */ +export interface DefunctVoter extends Struct { + readonly who: AccountId; + readonly voteCount: Compact; + readonly candidateCount: Compact; +} + +/** @name Renouncing */ +export interface Renouncing extends Enum { + readonly isMember: boolean; + readonly isRunnerUp: boolean; + readonly isCandidate: boolean; + readonly asCandidate: Compact; + readonly type: 'Member' | 'RunnerUp' | 'Candidate'; +} + +/** @name SetIndex */ +export interface SetIndex extends u32 {} + +/** @name Vote */ +export interface Vote extends GenericVote {} + +/** @name VoteIndex */ +export interface VoteIndex extends u32 {} + +/** @name VoterInfo */ +export interface VoterInfo extends Struct { + readonly lastActive: VoteIndex; + readonly lastWin: VoteIndex; + readonly pot: Balance; + readonly stake: Balance; +} + +/** @name VoteThreshold */ +export interface VoteThreshold extends Enum { + readonly isSuperMajorityApprove: boolean; + readonly isSuperMajorityAgainst: boolean; + readonly isSimpleMajority: boolean; + readonly type: 'SuperMajorityApprove' | 'SuperMajorityAgainst' | 'SimpleMajority'; +} + +export type PHANTOM_ELECTIONS = 'elections'; diff --git a/packages/types/src/interfaces/engine/definitions.ts b/packages/types/src/interfaces/engine/definitions.ts new file mode 100644 index 0000000..7efcaf8 --- /dev/null +++ b/packages/types/src/interfaces/engine/definitions.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + CreatedBlock: { + _alias: { + blockHash: 'hash' + }, + blockHash: 'BlockHash', + aux: 'ImportedAux' + }, + ImportedAux: { + headerOnly: 'bool', + clearJustificationRequests: 'bool', + needsJustification: 'bool', + badJustification: 'bool', + needsFinalityProof: 'bool', + isNewBest: 'bool' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/engine/index.ts b/packages/types/src/interfaces/engine/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/engine/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/engine/rpc.ts b/packages/types/src/interfaces/engine/rpc.ts new file mode 100644 index 0000000..82b8329 --- /dev/null +++ b/packages/types/src/interfaces/engine/rpc.ts @@ -0,0 +1,41 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + createBlock: { + description: 'Instructs the manual-seal authorship task to create a new block', + params: [ + { + name: 'createEmpty', + type: 'bool' + }, + { + name: 'finalize', + type: 'bool' + }, + { + isOptional: true, + name: 'parentHash', + type: 'BlockHash' + } + ], + type: 'CreatedBlock' + }, + finalizeBlock: { + description: 'Instructs the manual-seal authorship task to finalize a block', + params: [ + { + name: 'hash', + type: 'BlockHash' + }, + { + isOptional: true, + name: 'justification', + type: 'Justification' + } + ], + type: 'bool' + } +}; diff --git a/packages/types/src/interfaces/engine/types.ts b/packages/types/src/interfaces/engine/types.ts new file mode 100644 index 0000000..d6022d8 --- /dev/null +++ b/packages/types/src/interfaces/engine/types.ts @@ -0,0 +1,23 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, bool } from '@pezkuwi/types-codec'; +import type { BlockHash } from '@pezkuwi/types/interfaces/chain'; + +/** @name CreatedBlock */ +export interface CreatedBlock extends Struct { + readonly blockHash: BlockHash; + readonly aux: ImportedAux; +} + +/** @name ImportedAux */ +export interface ImportedAux extends Struct { + readonly headerOnly: bool; + readonly clearJustificationRequests: bool; + readonly needsJustification: bool; + readonly badJustification: bool; + readonly needsFinalityProof: bool; + readonly isNewBest: bool; +} + +export type PHANTOM_ENGINE = 'engine'; diff --git a/packages/types/src/interfaces/essentials.ts b/packages/types/src/interfaces/essentials.ts new file mode 100644 index 0000000..8308c48 --- /dev/null +++ b/packages/types/src/interfaces/essentials.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { default as metadata } from './metadata/definitions.js'; +export { default as runtime } from './runtime/definitions.js'; +export { default as scaleInfo } from './scaleInfo/definitions.js'; diff --git a/packages/types/src/interfaces/eth/definitions.ts b/packages/types/src/interfaces/eth/definitions.ts new file mode 100644 index 0000000..8b0ad8f --- /dev/null +++ b/packages/types/src/interfaces/eth/definitions.ts @@ -0,0 +1,411 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +// As per frontier + +import type { DefinitionsTypes } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +const V0: DefinitionsTypes = { + BlockV0: { + header: 'EthHeader', + transactions: 'Vec', + ommers: 'Vec' + }, + LegacyTransaction: { + nonce: 'U256', + gasPrice: 'U256', + gasLimit: 'U256', + action: 'EthTransactionAction', + value: 'U256', + input: 'Bytes', + signature: 'EthLegacyTransactionSignature' + }, + TransactionV0: 'LegacyTransaction' +}; + +const V1: DefinitionsTypes = { + BlockV1: { + header: 'EthHeader', + transactions: 'Vec', + ommers: 'Vec' + }, + EIP2930Transaction: { + chainId: 'u64', + nonce: 'U256', + gasPrice: 'U256', + gasLimit: 'U256', + action: 'EthTransactionAction', + value: 'U256', + input: 'Bytes', + accessList: 'EthAccessList', + signature: 'EthTransactionSignature' + }, + TransactionV1: { + _enum: { + Legacy: 'LegacyTransaction', + EIP2930: 'EIP2930Transaction' + } + } +}; + +const V2: DefinitionsTypes = { + BlockV2: { + header: 'EthHeader', + transactions: 'Vec', + ommers: 'Vec' + }, + EIP1559Transaction: { + chainId: 'u64', + nonce: 'U256', + maxPriorityFeePerGas: 'U256', + maxFeePerGas: 'U256', + gasLimit: 'U256', + action: 'EthTransactionAction', + value: 'U256', + input: 'Bytes', + accessList: 'EthAccessList', + signature: 'EthTransactionSignature' + }, + TransactionV2: { + _enum: { + Legacy: 'LegacyTransaction', + EIP2930: 'EIP2930Transaction', + EIP1559: 'EIP1559Transaction' + } + } +}; + +const V3: DefinitionsTypes = { + BlockV3: { + header: 'EthHeader', + transactions: 'Vec', + ommers: 'Vec' + }, + EIP7702Transaction: { + chainId: 'u64', + nonce: 'U256', + maxPriorityFeePerGas: 'U256', + maxFeePerGas: 'U256', + gasLimit: 'U256', + destination: 'EthTransactionAction', + value: 'U256', + data: 'Bytes', + accessList: 'EthAccessList', + authorizationList: 'EthAuthorizationList', + signature: 'EthTransactionSignature' + }, + TransactionV3: { + _enum: { + Legacy: 'LegacyTransaction', + EIP2930: 'EIP2930Transaction', + EIP1559: 'EIP1559Transaction', + EIP7702: 'EIP7702Transaction' + } + } +}; + +const types: DefinitionsTypes = { + ...V0, + ...V1, + ...V2, + ...V3, + EthereumAccountId: 'GenericEthereumAccountId', + EthereumAddress: 'GenericEthereumAccountId', + EthereumLookupSource: 'GenericEthereumLookupSource', + EthereumSignature: '[u8; 65]', + EthAccessListItem: { + address: 'EthAddress', + slots: 'Vec' + }, + EthAccessList: 'Vec', + EthAuthorizationList: 'Vec', + EthAuthorizationListItem: { + chainId: 'u64', + address: 'H160', + nonce: 'U256', + signature: 'EthAuthorizationSignature' + }, + EthAuthorizationSignature: { + oddYParity: 'bool', + r: 'H256', + s: 'H256' + }, + EthAccount: { + address: 'EthAddress', + balance: 'U256', + nonce: 'U256', + codeHash: 'H256', + storageHash: 'H256', + accountProof: 'Vec', + storageProof: 'Vec' + }, + EthAddress: 'H160', + EthBlock: { + header: 'EthHeader', + transactions: 'Vec', + ommers: 'Vec' + }, + EthHeader: { + parentHash: 'H256', + ommersHash: 'H256', + beneficiary: 'EthAddress', + stateRoot: 'H256', + transactionsRoot: 'H256', + receiptsRoot: 'H256', + logsBloom: 'EthBloom', + difficulty: 'U256', + number: 'U256', + gasLimit: 'U256', + gasUsed: 'U256', + timestamp: 'u64', + extraData: 'Bytes', + mixMash: 'H256', + nonce: 'H64' + }, + EthRichBlock: { + _alias: { + blockHash: 'hash', + blockSize: 'size' + }, + blockHash: 'Option', + parentHash: 'H256', + sha3Uncles: 'H256', + author: 'EthAddress', + miner: 'EthAddress', + stateRoot: 'H256', + transactionsRoot: 'H256', + receiptsRoot: 'H256', + number: 'Option', + gasUsed: 'U256', + gasLimit: 'U256', + extraData: 'Bytes', + logsBloom: 'EthBloom', + timestamp: 'U256', + difficulty: 'U256', + totalDifficulty: 'Option', + sealFields: 'Vec', + uncles: 'Vec', + transactions: 'Vec', + blockSize: 'Option' + }, + EthBloom: 'H2048', + EthCallRequest: { + from: 'Option', + to: 'Option', + gasPrice: 'Option', + gas: 'Option', + value: 'Option', + data: 'Option', + nonce: 'Option' + }, + EthFeeHistory: { + oldestBlock: 'U256', + baseFeePerGas: 'Vec', + gasUsedRatio: 'Vec', + reward: 'Option>>' + }, + EthFilter: { + fromBlock: 'Option', + toBlock: 'Option', + blockHash: 'Option', + address: 'Option', + topics: 'Option' + }, + EthFilterAddress: { + _enum: { + Single: 'EthAddress', + Multiple: 'Vec', + Null: 'Null' + } + }, + EthFilterChanges: { + _enum: { + Logs: 'Vec', + Hashes: 'Vec', + Empty: 'Null' + } + }, + EthFilterTopic: { + _enum: { + Single: 'EthFilterTopicInner', + Multiple: 'Vec', + Null: 'Null' + } + }, + EthFilterTopicEntry: 'Option', + EthFilterTopicInner: { + _enum: { + Single: 'EthFilterTopicEntry', + Multiple: 'Vec', + Null: 'Null' + } + }, + EthRichHeader: { + _alias: { + blockHash: 'hash', + blockSize: 'size' + }, + blockHash: 'Option', + parentHash: 'H256', + sha3Uncles: 'H256', + author: 'EthAddress', + miner: 'EthAddress', + stateRoot: 'H256', + transactionsRoot: 'H256', + receiptsRoot: 'H256', + number: 'Option', + gasUsed: 'U256', + gasLimit: 'U256', + extraData: 'Bytes', + logsBloom: 'EthBloom', + timestamp: 'U256', + difficulty: 'U256', + sealFields: 'Vec', + blockSize: 'Option' + }, + EthLog: { + address: 'EthAddress', + topics: 'Vec', + data: 'Bytes', + blockHash: 'Option', + blockNumber: 'Option', + transactionHash: 'Option', + transactionIndex: 'Option', + logIndex: 'Option', + transactionLogIndex: 'Option', + removed: 'bool' + }, + EthReceipt: { + transactionHash: 'Option', + transactionIndex: 'Option', + blockHash: 'Option', + from: 'Option', + to: 'Option', + blockNumber: 'Option', + cumulativeGasUsed: 'U256', + gasUsed: 'Option', + contractAddress: 'Option', + logs: 'Vec', + root: 'Option', + logsBloom: 'EthBloom', + statusCode: 'Option' + }, + // not convinced, however the original commit matches, so... (maybe V3 is incorrect?) + EthReceiptV0: 'EthReceipt', + EthReceiptV3: 'EthReceipt', + EthReceiptV4: 'EthReceipt', + EthStorageProof: { + key: 'U256', + value: 'U256', + proof: 'Vec' + }, + EthSubKind: { + _enum: ['newHeads', 'logs', 'newPendingTransactions', 'syncing'] + }, + EthSubParams: { + _enum: { + None: 'Null', + Logs: 'EthFilter' + } + }, + EthSubResult: { + _enum: { + Header: 'EthRichHeader', + Log: 'EthLog', + TransactionHash: 'H256', + SyncState: 'EthSyncStatus' + } + }, + EthSyncInfo: { + startingBlock: 'U256', + currentBlock: 'U256', + highestBlock: 'U256', + warpChunksAmount: 'Option', + warpChunksProcessed: 'Option' + }, + EthSyncStatus: { + _enum: { + Info: 'EthSyncInfo', + None: 'Null' + } + }, + EthTransaction: { + hash: 'H256', + nonce: 'U256', + blockHash: 'Option', + blockNumber: 'Option', + transactionIndex: 'Option', + from: 'H160', + to: 'Option', + value: 'U256', + gasPrice: 'Option', + maxFeePerGas: 'Option', + maxPriorityFeePerGas: 'Option', + gas: 'U256', + input: 'Bytes', + creates: 'Option', + raw: 'Bytes', + publicKey: 'Option', + chainId: 'Option', + standardV: 'U256', + v: 'U256', + r: 'U256', + s: 'U256', + accessList: 'Option>', + transactionType: 'Option' + }, + EthLegacyTransactionSignature: { + v: 'u64', + r: 'H256', + s: 'H256' + }, + EthTransactionSignature: { + oddYParity: 'bool', + r: 'H256', + s: 'H256' + }, + EthTransactionAction: { + _enum: { + Call: 'H160', + Create: 'Null' + } + }, + EthTransactionCondition: { + _enum: { + block: 'u64', + time: 'u64' + } + }, + EthTransactionRequest: { + from: 'Option', + to: 'Option', + gasPrice: 'Option', + gas: 'Option', + value: 'Option', + data: 'Option', + nonce: 'Option' + }, + EthTransactionStatus: { + transactionHash: 'H256', + transactionIndex: 'u32', + from: 'EthAddress', + to: 'Option', + contractAddress: 'Option', + logs: 'Vec', + logsBloom: 'EthBloom' + }, + EthWork: { + powHash: 'H256', + seedHash: 'H256', + target: 'H256', + number: 'Option' + } +}; + +export default { rpc, runtime, types }; diff --git a/packages/types/src/interfaces/eth/index.ts b/packages/types/src/interfaces/eth/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/eth/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/eth/rpc.ts b/packages/types/src/interfaces/eth/rpc.ts new file mode 100644 index 0000000..b31a243 --- /dev/null +++ b/packages/types/src/interfaces/eth/rpc.ts @@ -0,0 +1,508 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// As per frontier + +import type { DefinitionsRpc } from '../../types/index.js'; + +// We use aliasSection here to override since these are in another namespace +const netRpc: DefinitionsRpc = { + listening: { + aliasSection: 'net', + description: 'Returns true if client is actively listening for network connections. Otherwise false.', + params: [], + type: 'bool' + }, + peerCount: { + aliasSection: 'net', + description: 'Returns number of peers connected to node.', + params: [], + type: 'Text' + }, + version: { + aliasSection: 'net', + description: 'Returns protocol version.', + params: [], + type: 'Text' + } +}; +const web3Rpc: DefinitionsRpc = { + clientVersion: { + aliasSection: 'web3', + description: 'Returns current client version.', + params: [], + type: 'Text' + }, + sha3: { + aliasSection: 'web3', + description: 'Returns sha3 of the given data', + params: [{ name: 'data', type: 'Bytes' }], + type: 'H256' + } +}; + +export const rpc: DefinitionsRpc = { + ...netRpc, + ...web3Rpc, + accounts: { + description: 'Returns accounts list.', + params: [], + type: 'Vec' + }, + blockNumber: { + description: 'Returns the blockNumber', + params: [], + type: 'U256' + }, + call: { + description: 'Call contract, returning the output data.', + params: [ + { + name: 'request', + type: 'EthCallRequest' + }, + { + isHistoric: true, + isOptional: true, + name: 'number', + type: 'BlockNumber' + } + ], + type: 'Bytes' + }, + chainId: { + description: 'Returns the chain ID used for transaction signing at the current best block. None is returned if not available.', + params: [], + type: 'U64' + }, + coinbase: { + description: 'Returns block author.', + params: [], + type: 'H160' + }, + estimateGas: { + description: 'Estimate gas needed for execution of given contract.', + params: [ + { + name: 'request', + type: 'EthCallRequest' + }, + { + isHistoric: true, + isOptional: true, + name: 'number', + type: 'BlockNumber' + } + ], + type: 'U256' + }, + feeHistory: { + description: 'Returns fee history for given block count & reward percentiles', + params: [ + { + name: 'blockCount', + type: 'U256' + }, + { + name: 'newestBlock', + type: 'BlockNumber' + }, + { + name: 'rewardPercentiles', + type: 'Option>' + } + ], + type: 'EthFeeHistory' + }, + gasPrice: { + description: 'Returns current gas price.', + params: [], + type: 'U256' + }, + getBalance: { + description: 'Returns balance of the given account.', + params: [ + { + name: 'address', + type: 'H160' + }, + { + isHistoric: true, + isOptional: true, + name: 'number', + type: 'BlockNumber' + } + ], + type: 'U256' + }, + getBlockByHash: { + description: 'Returns block with given hash.', + params: [ + { + name: 'hash', + type: 'H256' + }, + { + name: 'full', + type: 'bool' + } + ], + type: 'Option' + }, + getBlockByNumber: { + description: 'Returns block with given number.', + params: [ + { + name: 'block', + type: 'BlockNumber' + }, + { name: 'full', type: 'bool' } + ], + type: 'Option' + }, + getBlockTransactionCountByHash: { + description: 'Returns the number of transactions in a block with given hash.', + params: [ + { + name: 'hash', + type: 'H256' + } + ], + type: 'U256' + }, + getBlockTransactionCountByNumber: { + description: 'Returns the number of transactions in a block with given block number.', + params: [ + { + name: 'block', + type: 'BlockNumber' + } + ], + type: 'U256' + }, + getCode: { + description: 'Returns the code at given address at given time (block number).', + params: [ + { + name: 'address', + type: 'H160' + }, + { + isHistoric: true, + isOptional: true, + name: 'number', + type: 'BlockNumber' + } + ], + type: 'Bytes' + }, + getFilterChanges: { + description: 'Returns filter changes since last poll.', + params: [ + { + name: 'index', + type: 'U256' + } + ], + type: 'EthFilterChanges' + }, + getFilterLogs: { + description: 'Returns all logs matching given filter (in a range \'from\' - \'to\').', + params: [ + { + name: 'index', + type: 'U256' + } + ], + type: 'Vec' + }, + getLogs: { + description: 'Returns logs matching given filter object.', + params: [ + { + name: 'filter', + type: 'EthFilter' + } + ], + type: 'Vec' + }, + getProof: { + description: 'Returns proof for account and storage.', + params: [ + { + name: 'address', + type: 'H160' + }, + { + name: 'storageKeys', + type: 'Vec' + }, + { + name: 'number', + type: 'BlockNumber' + } + ], + type: 'EthAccount' + }, + getStorageAt: { + description: 'Returns content of the storage at given address.', + params: [ + { + name: 'address', + type: 'H160' + }, + { + name: 'index', + type: 'U256' + }, + { + isHistoric: true, + isOptional: true, + name: 'number', + type: 'BlockNumber' + } + ], + type: 'H256' + }, + getTransactionByBlockHashAndIndex: { + description: 'Returns transaction at given block hash and index.', + params: [ + { + name: 'hash', + type: 'H256' + }, + { + name: 'index', + type: 'U256' + } + ], + type: 'EthTransaction' + }, + getTransactionByBlockNumberAndIndex: { + description: 'Returns transaction by given block number and index.', + params: [ + { + name: 'number', + type: 'BlockNumber' + }, + { + name: 'index', + type: 'U256' + } + ], + type: 'EthTransaction' + }, + getTransactionByHash: { + description: 'Get transaction by its hash.', + params: [ + { + name: 'hash', + type: 'H256' + } + ], + type: 'EthTransaction' + }, + getTransactionCount: { + description: 'Returns the number of transactions sent from given address at given time (block number).', + params: [ + { + name: 'address', + type: 'H160' + }, + { + isHistoric: true, + isOptional: true, + name: 'number', + type: 'BlockNumber' + } + ], + type: 'U256' + }, + getTransactionReceipt: { + description: 'Returns transaction receipt by transaction hash.', + params: [ + { + name: 'hash', + type: 'H256' + } + ], + type: 'EthReceipt' + }, + getUncleByBlockHashAndIndex: { + description: 'Returns an uncles at given block and index.', + params: [ + { + name: 'hash', + type: 'H256' + }, + { + name: 'index', + type: 'U256' + } + ], + type: 'EthRichBlock' + }, + getUncleByBlockNumberAndIndex: { + description: 'Returns an uncles at given block and index.', + params: [ + { + name: 'number', + type: 'BlockNumber' + }, + { + name: 'index', + type: 'U256' + } + ], + type: 'EthRichBlock' + }, + getUncleCountByBlockHash: { + description: 'Returns the number of uncles in a block with given hash.', + params: [ + { + name: 'hash', + type: 'H256' + } + ], + type: 'U256' + }, + getUncleCountByBlockNumber: { + description: 'Returns the number of uncles in a block with given block number.', + params: [ + { + name: 'number', + type: 'BlockNumber' + } + ], + type: 'U256' + }, + getWork: { + description: 'Returns the hash of the current block, the seedHash, and the boundary condition to be met.', + params: [], + type: 'EthWork' + }, + hashrate: { + description: 'Returns the number of hashes per second that the node is mining with.', + params: [], + type: 'U256' + }, + maxPriorityFeePerGas: { + description: 'Returns max priority fee per gas', + params: [], + type: 'U256' + }, + mining: { + description: 'Returns true if client is actively mining new blocks.', + params: [], + type: 'bool' + }, + newBlockFilter: { + description: 'Returns id of new block filter.', + params: [], + type: 'U256' + }, + newFilter: { + description: 'Returns id of new filter.', + params: [ + { + name: 'filter', + type: 'EthFilter' + } + ], + type: 'U256' + }, + newPendingTransactionFilter: { + description: 'Returns id of new block filter.', + params: [], + type: 'U256' + }, + protocolVersion: { + description: 'Returns protocol version encoded as a string (quotes are necessary).', + params: [], + type: 'u64' + }, + sendRawTransaction: { + description: 'Sends signed transaction, returning its hash.', + params: [ + { + name: 'bytes', + type: 'Bytes' + } + ], + type: 'H256' + }, + sendTransaction: { + description: 'Sends transaction; will block waiting for signer to return the transaction hash', + params: [ + { + name: 'tx', + type: 'EthTransactionRequest' + } + ], + type: 'H256' + }, + submitHashrate: { + description: 'Used for submitting mining hashrate.', + params: [ + { + name: 'index', + type: 'U256' + }, + { + name: 'hash', + type: 'H256' + } + ], + type: 'bool' + }, + submitWork: { + description: 'Used for submitting a proof-of-work solution.', + params: [ + { + name: 'nonce', + type: 'H64' + }, + { + name: 'headerHash', + type: 'H256' + }, + { + name: 'mixDigest', + type: 'H256' + } + ], + type: 'bool' + }, + subscribe: { + description: 'Subscribe to Eth subscription.', + params: [ + { name: 'kind', type: 'EthSubKind' }, + { + isOptional: true, + name: 'params', + type: 'EthSubParams' + } + ], + pubsub: [ + 'subscription', + 'subscribe', + 'unsubscribe' + ], + type: 'Null' + }, + syncing: { + description: 'Returns an object with data about the sync status or false.', + params: [], + type: 'EthSyncStatus' + }, + uninstallFilter: { + description: 'Uninstalls filter.', + params: [ + { + name: 'index', + type: 'U256' + } + ], + type: 'bool' + } +}; diff --git a/packages/types/src/interfaces/eth/runtime.ts b/packages/types/src/interfaces/eth/runtime.ts new file mode 100644 index 0000000..103f327 --- /dev/null +++ b/packages/types/src/interfaces/eth/runtime.ts @@ -0,0 +1,355 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall, DefinitionsCallEntry } from '../../types/index.js'; + +const ethMethodsV4: DefinitionsCallEntry['methods'] = { + account_basic: { + description: 'Returns pallet_evm::Accounts by address.', + params: [ + { + name: 'address', + type: 'H160' + } + ], + type: 'EvmAccount' + }, + account_code_at: { + description: 'For a given account address, returns pallet_evm::AccountCodes.', + params: [ + { + name: 'address', + type: 'H160' + } + ], + type: 'Bytes' + }, + author: { + description: 'Returns the converted FindAuthor::find_author authority id.', + params: [], + type: 'H160' + }, + call: { + description: 'Returns a frame_ethereum::call response. If `estimate` is true,', + params: [ + { + name: 'from', + type: 'H160' + }, + { + name: 'to', + type: 'H160' + }, + { + name: 'data', + type: 'Vec' + }, + { + name: 'value', + type: 'U256' + }, + { + name: 'gasLimit', + type: 'U256' + }, + { + name: 'maxFeePerGas', + type: 'Option' + }, + { + name: 'maxPriorityFeePerGas', + type: 'Option' + }, + { + name: 'nonce', + type: 'Option' + }, + { + name: 'estimate', + type: 'bool' + }, + { + name: 'accessList', + type: 'Option)>>' + } + ], + type: 'Result' + }, + chain_id: { + description: 'Returns runtime defined pallet_evm::ChainId.', + params: [], + type: 'u64' + }, + create: { + description: 'Returns a frame_ethereum::call response. If `estimate` is true,', + params: [ + { + name: 'from', + type: 'H160' + }, + { + name: 'data', + type: 'Vec' + }, + { + name: 'value', + type: 'U256' + }, + { + name: 'gasLimit', + type: 'U256' + }, + { + name: 'maxFeePerGas', + type: 'Option' + }, + { + name: 'maxPriorityFeePerGas', + type: 'Option' + }, + { + name: 'nonce', + type: 'Option' + }, + { + name: 'estimate', + type: 'bool' + }, + { + name: 'accessList', + type: 'Option)>>' + } + ], + type: 'Result' + }, + current_all: { + description: 'Return all the current data for a block in a single runtime call.', + params: [], + type: '(Option, Option>, Option>)' + }, + current_block: { + description: 'Return the current block.', + params: [], + type: 'BlockV2' + }, + current_receipts: { + description: 'Return the current receipt.', + params: [], + type: 'Option>' + }, + current_transaction_statuses: { + description: 'Return the current transaction status.', + params: [], + type: 'Option>' + }, + elasticity: { + description: 'Return the elasticity multiplier.', + params: [], + type: 'Option' + }, + extrinsic_filter: { + description: 'Receives a `Vec` and filters all the ethereum transactions.', + params: [ + { + name: 'xts', + type: 'Vec' + } + ], + type: 'Vec' + }, + gas_price: { + description: 'Returns FixedGasPrice::min_gas_price', + params: [], + type: 'u256' + }, + storage_at: { + description: 'For a given account address and index, returns pallet_evm::AccountStorages.', + params: [ + { + name: 'address', + type: 'H160' + }, + { + name: 'index', + type: 'u256' + } + ], + type: 'H256' + } +}; + +const ethMethodsV5: DefinitionsCallEntry['methods'] = { + call: { + description: 'Returns a frame_ethereum::call response. If `estimate` is true,', + params: [ + { + name: 'from', + type: 'H160' + }, + { + name: 'to', + type: 'H160' + }, + { + name: 'data', + type: 'Vec' + }, + { + name: 'value', + type: 'U256' + }, + { + name: 'gasLimit', + type: 'U256' + }, + { + name: 'maxFeePerGas', + type: 'Option' + }, + { + name: 'maxPriorityFeePerGas', + type: 'Option' + }, + { + name: 'nonce', + type: 'Option' + }, + { + name: 'estimate', + type: 'bool' + }, + { + name: 'accessList', + type: 'Option)>>' + } + ], + type: 'Result' + }, + create: { + description: 'Returns a frame_ethereum::call response. If `estimate` is true,', + params: [ + { + name: 'from', + type: 'H160' + }, + { + name: 'data', + type: 'Vec' + }, + { + name: 'value', + type: 'U256' + }, + { + name: 'gasLimit', + type: 'U256' + }, + { + name: 'maxFeePerGas', + type: 'Option' + }, + { + name: 'maxPriorityFeePerGas', + type: 'Option' + }, + { + name: 'nonce', + type: 'Option' + }, + { + name: 'estimate', + type: 'bool' + }, + { + name: 'accessList', + type: 'Option)>>' + } + ], + type: 'Result' + } +}; + +export const runtime: DefinitionsCall = { + ConvertTransactionRuntimeApi: [ + { + methods: { + convert_transaction: { + description: 'Converts an Ethereum-style transaction to Extrinsic', + params: [ + { + name: 'transaction', + type: 'TransactionV2' + } + ], + type: 'Extrinsic' + } + }, + version: 2 + }, + { + methods: { + convert_transaction: { + description: 'Converts an Ethereum-style transaction to Extrinsic', + params: [ + { + name: 'transaction', + type: 'TransactionV3' + } + ], + type: 'Extrinsic' + } + }, + version: 3 + } + ], + DebugRuntimeApi: [ + { + methods: { + trace_block: { + description: 'Trace all block extrinsics', + params: [ + { + name: 'extrinsics', + type: 'Vec' + }, + { + name: 'knownTransactions', + type: 'Vec' + } + ], + type: 'Result<(), DispatchError>' + }, + trace_transaction: { + description: 'Trace transaction extrinsics', + params: [ + { + name: 'extrinsics', + type: 'Vec' + }, + { + name: 'transaction', + type: 'EthTransaction' + } + ], + type: 'Result<(), DispatchError>' + } + }, + version: 4 + } + ], + EthereumRuntimeRPCApi: [ + { + methods: { + ...ethMethodsV4 + }, + version: 4 + }, + { + methods: { + ...ethMethodsV4, + ...ethMethodsV5 + }, + version: 5 + } + ] +}; diff --git a/packages/types/src/interfaces/eth/types.ts b/packages/types/src/interfaces/eth/types.ts new file mode 100644 index 0000000..73e9744 --- /dev/null +++ b/packages/types/src/interfaces/eth/types.ts @@ -0,0 +1,505 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { GenericEthereumAccountId, GenericEthereumLookupSource } from '@pezkuwi/types'; +import type { Bytes, Enum, Option, Struct, U256, U64, U8aFixed, Vec, bool, f64, u32, u64 } from '@pezkuwi/types-codec'; +import type { BlockNumber, H160, H2048, H256, H512, H64 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name BlockV0 */ +export interface BlockV0 extends Struct { + readonly header: EthHeader; + readonly transactions: Vec; + readonly ommers: Vec; +} + +/** @name BlockV1 */ +export interface BlockV1 extends Struct { + readonly header: EthHeader; + readonly transactions: Vec; + readonly ommers: Vec; +} + +/** @name BlockV2 */ +export interface BlockV2 extends Struct { + readonly header: EthHeader; + readonly transactions: Vec; + readonly ommers: Vec; +} + +/** @name BlockV3 */ +export interface BlockV3 extends Struct { + readonly header: EthHeader; + readonly transactions: Vec; + readonly ommers: Vec; +} + +/** @name EIP1559Transaction */ +export interface EIP1559Transaction extends Struct { + readonly chainId: u64; + readonly nonce: U256; + readonly maxPriorityFeePerGas: U256; + readonly maxFeePerGas: U256; + readonly gasLimit: U256; + readonly action: EthTransactionAction; + readonly value: U256; + readonly input: Bytes; + readonly accessList: EthAccessList; + readonly signature: EthTransactionSignature; +} + +/** @name EIP2930Transaction */ +export interface EIP2930Transaction extends Struct { + readonly chainId: u64; + readonly nonce: U256; + readonly gasPrice: U256; + readonly gasLimit: U256; + readonly action: EthTransactionAction; + readonly value: U256; + readonly input: Bytes; + readonly accessList: EthAccessList; + readonly signature: EthTransactionSignature; +} + +/** @name EIP7702Transaction */ +export interface EIP7702Transaction extends Struct { + readonly chainId: u64; + readonly nonce: U256; + readonly maxPriorityFeePerGas: U256; + readonly maxFeePerGas: U256; + readonly gasLimit: U256; + readonly destination: EthTransactionAction; + readonly value: U256; + readonly data: Bytes; + readonly accessList: EthAccessList; + readonly authorizationList: EthAuthorizationList; + readonly signature: EthTransactionSignature; +} + +/** @name EthAccessList */ +export interface EthAccessList extends Vec {} + +/** @name EthAccessListItem */ +export interface EthAccessListItem extends Struct { + readonly address: EthAddress; + readonly slots: Vec; +} + +/** @name EthAccount */ +export interface EthAccount extends Struct { + readonly address: EthAddress; + readonly balance: U256; + readonly nonce: U256; + readonly codeHash: H256; + readonly storageHash: H256; + readonly accountProof: Vec; + readonly storageProof: Vec; +} + +/** @name EthAddress */ +export interface EthAddress extends H160 {} + +/** @name EthAuthorizationList */ +export interface EthAuthorizationList extends Vec {} + +/** @name EthAuthorizationListItem */ +export interface EthAuthorizationListItem extends Struct { + readonly chainId: u64; + readonly address: H160; + readonly nonce: U256; + readonly signature: EthAuthorizationSignature; +} + +/** @name EthAuthorizationSignature */ +export interface EthAuthorizationSignature extends Struct { + readonly oddYParity: bool; + readonly r: H256; + readonly s: H256; +} + +/** @name EthBlock */ +export interface EthBlock extends Struct { + readonly header: EthHeader; + readonly transactions: Vec; + readonly ommers: Vec; +} + +/** @name EthBloom */ +export interface EthBloom extends H2048 {} + +/** @name EthCallRequest */ +export interface EthCallRequest extends Struct { + readonly from: Option; + readonly to: Option; + readonly gasPrice: Option; + readonly gas: Option; + readonly value: Option; + readonly data: Option; + readonly nonce: Option; +} + +/** @name EthereumAccountId */ +export interface EthereumAccountId extends GenericEthereumAccountId {} + +/** @name EthereumAddress */ +export interface EthereumAddress extends GenericEthereumAccountId {} + +/** @name EthereumLookupSource */ +export interface EthereumLookupSource extends GenericEthereumLookupSource {} + +/** @name EthereumSignature */ +export interface EthereumSignature extends U8aFixed {} + +/** @name EthFeeHistory */ +export interface EthFeeHistory extends Struct { + readonly oldestBlock: U256; + readonly baseFeePerGas: Vec; + readonly gasUsedRatio: Vec; + readonly reward: Option>>; +} + +/** @name EthFilter */ +export interface EthFilter extends Struct { + readonly fromBlock: Option; + readonly toBlock: Option; + readonly blockHash: Option; + readonly address: Option; + readonly topics: Option; +} + +/** @name EthFilterAddress */ +export interface EthFilterAddress extends Enum { + readonly isSingle: boolean; + readonly asSingle: EthAddress; + readonly isMultiple: boolean; + readonly asMultiple: Vec; + readonly isNull: boolean; + readonly type: 'Single' | 'Multiple' | 'Null'; +} + +/** @name EthFilterChanges */ +export interface EthFilterChanges extends Enum { + readonly isLogs: boolean; + readonly asLogs: Vec; + readonly isHashes: boolean; + readonly asHashes: Vec; + readonly isEmpty: boolean; + readonly type: 'Logs' | 'Hashes' | 'Empty'; +} + +/** @name EthFilterTopic */ +export interface EthFilterTopic extends Enum { + readonly isSingle: boolean; + readonly asSingle: EthFilterTopicInner; + readonly isMultiple: boolean; + readonly asMultiple: Vec; + readonly isNull: boolean; + readonly type: 'Single' | 'Multiple' | 'Null'; +} + +/** @name EthFilterTopicEntry */ +export interface EthFilterTopicEntry extends Option {} + +/** @name EthFilterTopicInner */ +export interface EthFilterTopicInner extends Enum { + readonly isSingle: boolean; + readonly asSingle: EthFilterTopicEntry; + readonly isMultiple: boolean; + readonly asMultiple: Vec; + readonly isNull: boolean; + readonly type: 'Single' | 'Multiple' | 'Null'; +} + +/** @name EthHeader */ +export interface EthHeader extends Struct { + readonly parentHash: H256; + readonly ommersHash: H256; + readonly beneficiary: EthAddress; + readonly stateRoot: H256; + readonly transactionsRoot: H256; + readonly receiptsRoot: H256; + readonly logsBloom: EthBloom; + readonly difficulty: U256; + readonly number: U256; + readonly gasLimit: U256; + readonly gasUsed: U256; + readonly timestamp: u64; + readonly extraData: Bytes; + readonly mixMash: H256; + readonly nonce: H64; +} + +/** @name EthLegacyTransactionSignature */ +export interface EthLegacyTransactionSignature extends Struct { + readonly v: u64; + readonly r: H256; + readonly s: H256; +} + +/** @name EthLog */ +export interface EthLog extends Struct { + readonly address: EthAddress; + readonly topics: Vec; + readonly data: Bytes; + readonly blockHash: Option; + readonly blockNumber: Option; + readonly transactionHash: Option; + readonly transactionIndex: Option; + readonly logIndex: Option; + readonly transactionLogIndex: Option; + readonly removed: bool; +} + +/** @name EthReceipt */ +export interface EthReceipt extends Struct { + readonly transactionHash: Option; + readonly transactionIndex: Option; + readonly blockHash: Option; + readonly from: Option; + readonly to: Option; + readonly blockNumber: Option; + readonly cumulativeGasUsed: U256; + readonly gasUsed: Option; + readonly contractAddress: Option; + readonly logs: Vec; + readonly root: Option; + readonly logsBloom: EthBloom; + readonly statusCode: Option; +} + +/** @name EthReceiptV0 */ +export interface EthReceiptV0 extends EthReceipt {} + +/** @name EthReceiptV3 */ +export interface EthReceiptV3 extends EthReceipt {} + +/** @name EthReceiptV4 */ +export interface EthReceiptV4 extends EthReceipt {} + +/** @name EthRichBlock */ +export interface EthRichBlock extends Struct { + readonly blockHash: Option; + readonly parentHash: H256; + readonly sha3Uncles: H256; + readonly author: EthAddress; + readonly miner: EthAddress; + readonly stateRoot: H256; + readonly transactionsRoot: H256; + readonly receiptsRoot: H256; + readonly number: Option; + readonly gasUsed: U256; + readonly gasLimit: U256; + readonly extraData: Bytes; + readonly logsBloom: EthBloom; + readonly timestamp: U256; + readonly difficulty: U256; + readonly totalDifficulty: Option; + readonly sealFields: Vec; + readonly uncles: Vec; + readonly transactions: Vec; + readonly blockSize: Option; +} + +/** @name EthRichHeader */ +export interface EthRichHeader extends Struct { + readonly blockHash: Option; + readonly parentHash: H256; + readonly sha3Uncles: H256; + readonly author: EthAddress; + readonly miner: EthAddress; + readonly stateRoot: H256; + readonly transactionsRoot: H256; + readonly receiptsRoot: H256; + readonly number: Option; + readonly gasUsed: U256; + readonly gasLimit: U256; + readonly extraData: Bytes; + readonly logsBloom: EthBloom; + readonly timestamp: U256; + readonly difficulty: U256; + readonly sealFields: Vec; + readonly blockSize: Option; +} + +/** @name EthStorageProof */ +export interface EthStorageProof extends Struct { + readonly key: U256; + readonly value: U256; + readonly proof: Vec; +} + +/** @name EthSubKind */ +export interface EthSubKind extends Enum { + readonly isNewHeads: boolean; + readonly isLogs: boolean; + readonly isNewPendingTransactions: boolean; + readonly isSyncing: boolean; + readonly type: 'NewHeads' | 'Logs' | 'NewPendingTransactions' | 'Syncing'; +} + +/** @name EthSubParams */ +export interface EthSubParams extends Enum { + readonly isNone: boolean; + readonly isLogs: boolean; + readonly asLogs: EthFilter; + readonly type: 'None' | 'Logs'; +} + +/** @name EthSubResult */ +export interface EthSubResult extends Enum { + readonly isHeader: boolean; + readonly asHeader: EthRichHeader; + readonly isLog: boolean; + readonly asLog: EthLog; + readonly isTransactionHash: boolean; + readonly asTransactionHash: H256; + readonly isSyncState: boolean; + readonly asSyncState: EthSyncStatus; + readonly type: 'Header' | 'Log' | 'TransactionHash' | 'SyncState'; +} + +/** @name EthSyncInfo */ +export interface EthSyncInfo extends Struct { + readonly startingBlock: U256; + readonly currentBlock: U256; + readonly highestBlock: U256; + readonly warpChunksAmount: Option; + readonly warpChunksProcessed: Option; +} + +/** @name EthSyncStatus */ +export interface EthSyncStatus extends Enum { + readonly isInfo: boolean; + readonly asInfo: EthSyncInfo; + readonly isNone: boolean; + readonly type: 'Info' | 'None'; +} + +/** @name EthTransaction */ +export interface EthTransaction extends Struct { + readonly hash: H256; + readonly nonce: U256; + readonly blockHash: Option; + readonly blockNumber: Option; + readonly transactionIndex: Option; + readonly from: H160; + readonly to: Option; + readonly value: U256; + readonly gasPrice: Option; + readonly maxFeePerGas: Option; + readonly maxPriorityFeePerGas: Option; + readonly gas: U256; + readonly input: Bytes; + readonly creates: Option; + readonly raw: Bytes; + readonly publicKey: Option; + readonly chainId: Option; + readonly standardV: U256; + readonly v: U256; + readonly r: U256; + readonly s: U256; + readonly accessList: Option>; + readonly transactionType: Option; +} + +/** @name EthTransactionAction */ +export interface EthTransactionAction extends Enum { + readonly isCall: boolean; + readonly asCall: H160; + readonly isCreate: boolean; + readonly type: 'Call' | 'Create'; +} + +/** @name EthTransactionCondition */ +export interface EthTransactionCondition extends Enum { + readonly isBlock: boolean; + readonly asBlock: u64; + readonly isTime: boolean; + readonly asTime: u64; + readonly type: 'Block' | 'Time'; +} + +/** @name EthTransactionRequest */ +export interface EthTransactionRequest extends Struct { + readonly from: Option; + readonly to: Option; + readonly gasPrice: Option; + readonly gas: Option; + readonly value: Option; + readonly data: Option; + readonly nonce: Option; +} + +/** @name EthTransactionSignature */ +export interface EthTransactionSignature extends Struct { + readonly oddYParity: bool; + readonly r: H256; + readonly s: H256; +} + +/** @name EthTransactionStatus */ +export interface EthTransactionStatus extends Struct { + readonly transactionHash: H256; + readonly transactionIndex: u32; + readonly from: EthAddress; + readonly to: Option; + readonly contractAddress: Option; + readonly logs: Vec; + readonly logsBloom: EthBloom; +} + +/** @name EthWork */ +export interface EthWork extends Struct { + readonly powHash: H256; + readonly seedHash: H256; + readonly target: H256; + readonly number: Option; +} + +/** @name LegacyTransaction */ +export interface LegacyTransaction extends Struct { + readonly nonce: U256; + readonly gasPrice: U256; + readonly gasLimit: U256; + readonly action: EthTransactionAction; + readonly value: U256; + readonly input: Bytes; + readonly signature: EthLegacyTransactionSignature; +} + +/** @name TransactionV0 */ +export interface TransactionV0 extends LegacyTransaction {} + +/** @name TransactionV1 */ +export interface TransactionV1 extends Enum { + readonly isLegacy: boolean; + readonly asLegacy: LegacyTransaction; + readonly isEip2930: boolean; + readonly asEip2930: EIP2930Transaction; + readonly type: 'Legacy' | 'Eip2930'; +} + +/** @name TransactionV2 */ +export interface TransactionV2 extends Enum { + readonly isLegacy: boolean; + readonly asLegacy: LegacyTransaction; + readonly isEip2930: boolean; + readonly asEip2930: EIP2930Transaction; + readonly isEip1559: boolean; + readonly asEip1559: EIP1559Transaction; + readonly type: 'Legacy' | 'Eip2930' | 'Eip1559'; +} + +/** @name TransactionV3 */ +export interface TransactionV3 extends Enum { + readonly isLegacy: boolean; + readonly asLegacy: LegacyTransaction; + readonly isEip2930: boolean; + readonly asEip2930: EIP2930Transaction; + readonly isEip1559: boolean; + readonly asEip1559: EIP1559Transaction; + readonly isEip7702: boolean; + readonly asEip7702: EIP7702Transaction; + readonly type: 'Legacy' | 'Eip2930' | 'Eip1559' | 'Eip7702'; +} + +export type PHANTOM_ETH = 'eth'; diff --git a/packages/types/src/interfaces/evm/definitions.ts b/packages/types/src/interfaces/evm/definitions.ts new file mode 100644 index 0000000..37590b6 --- /dev/null +++ b/packages/types/src/interfaces/evm/definitions.ts @@ -0,0 +1,99 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + EvmAccount: { + nonce: 'u256', + balance: 'u256' + }, + EvmCallInfo: { + exitReason: 'ExitReason', + value: 'Bytes', + usedGas: 'U256', + logs: 'Vec' + }, + EvmCreateInfo: { + exitReason: 'ExitReason', + value: 'H160', + usedGas: 'U256', + logs: 'Vec' + }, + EvmCallInfoV2: { + exitReason: 'ExitReason', + value: 'Bytes', + usedGas: 'U256', + weightInfo: 'Option', + logs: 'Vec' + }, + EvmCreateInfoV2: { + exitReason: 'ExitReason', + value: 'H160', + usedGas: 'U256', + weightInfo: 'Option', + logs: 'Vec' + }, + EvmLog: { + address: 'H160', + topics: 'Vec', + data: 'Bytes' + }, + EvmVicinity: { + gasPrice: 'u256', + origin: 'H160' + }, + EvmWeightInfo: { + refTimeLimit: 'Option', + proofSizeLimit: 'Option', + refTimeUsage: 'Option', + proofSizeUsage: 'Option' + + }, + ExitError: { + _enum: { + StackUnderflow: 'Null', + StackOverflow: 'Null', + InvalidJump: 'Null', + InvalidRange: 'Null', + DesignatedInvalid: 'Null', + CallTooDeep: 'Null', + CreateCollision: 'Null', + CreateContractLimit: 'Null', + OutOfOffset: 'Null', + OutOfGas: 'Null', + OutOfFund: 'Null', + PCUnderflow: 'Null', + CreateEmpty: 'Null', + Other: 'Text' + } + }, + ExitFatal: { + _enum: { + NotSupported: 'Null', + UnhandledInterrupt: 'Null', + CallErrorAsFatal: 'ExitError', + Other: 'Text' + } + }, + ExitReason: { + _enum: { + Succeed: 'ExitSucceed', + Error: 'ExitError', + Revert: 'ExitRevert', + Fatal: 'ExitFatal' + } + }, + ExitRevert: { + _enum: ['Reverted'] + }, + ExitSucceed: { + _enum: ['Stopped', 'Returned', 'Suicided'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/evm/index.ts b/packages/types/src/interfaces/evm/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/evm/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/evm/types.ts b/packages/types/src/interfaces/evm/types.ts new file mode 100644 index 0000000..5ff90ae --- /dev/null +++ b/packages/types/src/interfaces/evm/types.ts @@ -0,0 +1,126 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Option, Struct, Text, U256, Vec, u256, u64 } from '@pezkuwi/types-codec'; +import type { H160, H256 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name EvmAccount */ +export interface EvmAccount extends Struct { + readonly nonce: u256; + readonly balance: u256; +} + +/** @name EvmCallInfo */ +export interface EvmCallInfo extends Struct { + readonly exitReason: ExitReason; + readonly value: Bytes; + readonly usedGas: U256; + readonly logs: Vec; +} + +/** @name EvmCallInfoV2 */ +export interface EvmCallInfoV2 extends Struct { + readonly exitReason: ExitReason; + readonly value: Bytes; + readonly usedGas: U256; + readonly weightInfo: Option; + readonly logs: Vec; +} + +/** @name EvmCreateInfo */ +export interface EvmCreateInfo extends Struct { + readonly exitReason: ExitReason; + readonly value: H160; + readonly usedGas: U256; + readonly logs: Vec; +} + +/** @name EvmCreateInfoV2 */ +export interface EvmCreateInfoV2 extends Struct { + readonly exitReason: ExitReason; + readonly value: H160; + readonly usedGas: U256; + readonly weightInfo: Option; + readonly logs: Vec; +} + +/** @name EvmLog */ +export interface EvmLog extends Struct { + readonly address: H160; + readonly topics: Vec; + readonly data: Bytes; +} + +/** @name EvmVicinity */ +export interface EvmVicinity extends Struct { + readonly gasPrice: u256; + readonly origin: H160; +} + +/** @name EvmWeightInfo */ +export interface EvmWeightInfo extends Struct { + readonly refTimeLimit: Option; + readonly proofSizeLimit: Option; + readonly refTimeUsage: Option; + readonly proofSizeUsage: Option; +} + +/** @name ExitError */ +export interface ExitError extends Enum { + readonly isStackUnderflow: boolean; + readonly isStackOverflow: boolean; + readonly isInvalidJump: boolean; + readonly isInvalidRange: boolean; + readonly isDesignatedInvalid: boolean; + readonly isCallTooDeep: boolean; + readonly isCreateCollision: boolean; + readonly isCreateContractLimit: boolean; + readonly isOutOfOffset: boolean; + readonly isOutOfGas: boolean; + readonly isOutOfFund: boolean; + readonly isPcUnderflow: boolean; + readonly isCreateEmpty: boolean; + readonly isOther: boolean; + readonly asOther: Text; + readonly type: 'StackUnderflow' | 'StackOverflow' | 'InvalidJump' | 'InvalidRange' | 'DesignatedInvalid' | 'CallTooDeep' | 'CreateCollision' | 'CreateContractLimit' | 'OutOfOffset' | 'OutOfGas' | 'OutOfFund' | 'PcUnderflow' | 'CreateEmpty' | 'Other'; +} + +/** @name ExitFatal */ +export interface ExitFatal extends Enum { + readonly isNotSupported: boolean; + readonly isUnhandledInterrupt: boolean; + readonly isCallErrorAsFatal: boolean; + readonly asCallErrorAsFatal: ExitError; + readonly isOther: boolean; + readonly asOther: Text; + readonly type: 'NotSupported' | 'UnhandledInterrupt' | 'CallErrorAsFatal' | 'Other'; +} + +/** @name ExitReason */ +export interface ExitReason extends Enum { + readonly isSucceed: boolean; + readonly asSucceed: ExitSucceed; + readonly isError: boolean; + readonly asError: ExitError; + readonly isRevert: boolean; + readonly asRevert: ExitRevert; + readonly isFatal: boolean; + readonly asFatal: ExitFatal; + readonly type: 'Succeed' | 'Error' | 'Revert' | 'Fatal'; +} + +/** @name ExitRevert */ +export interface ExitRevert extends Enum { + readonly isReverted: boolean; + readonly type: 'Reverted'; +} + +/** @name ExitSucceed */ +export interface ExitSucceed extends Enum { + readonly isStopped: boolean; + readonly isReturned: boolean; + readonly isSuicided: boolean; + readonly type: 'Stopped' | 'Returned' | 'Suicided'; +} + +export type PHANTOM_EVM = 'evm'; diff --git a/packages/types/src/interfaces/extrinsics/EdcsaSignature.spec.ts b/packages/types/src/interfaces/extrinsics/EdcsaSignature.spec.ts new file mode 100644 index 0000000..6a03fee --- /dev/null +++ b/packages/types/src/interfaces/extrinsics/EdcsaSignature.spec.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { hexToU8a } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; + +const TESTS = [ + '0x55bd020bdbbdc02de34e915effc9b18a99002f4c29f64e22e8dcbb69e722ea6c28e1bb53b9484063fbbfd205e49dcc1f620929f520c9c4c3695150f05a28f52a01', + '0x98adffe14b1882ba5a861d6aaa10805d52aed56f480e1ece01505a77470f29f15cb4b0a1dc33177761de8270199282baf160f255e1ca0e4c8354b54b0059e40a1c' +]; + +describe('EdcsaSignature', (): void => { + const registry = new TypeRegistry(); + + it('constructs and has a valid representation (toHex)', (): void => { + expect( + registry.createType('EcdsaSignature', TESTS[0]).toHex() + ).toEqual(TESTS[0]); + }); + + it('constructs and has a valid representation (toJSON)', (): void => { + expect( + registry.createType('EcdsaSignature', TESTS[0]).toJSON() + ).toEqual(TESTS[0]); + }); + + it('constructs and has a valid representation (toU8a)', (): void => { + expect( + registry.createType('EcdsaSignature', TESTS[1]).toU8a() + ).toEqual(hexToU8a(TESTS[1])); + }); +}); diff --git a/packages/types/src/interfaces/extrinsics/definitions.ts b/packages/types/src/interfaces/extrinsics/definitions.ts new file mode 100644 index 0000000..47ef531 --- /dev/null +++ b/packages/types/src/interfaces/extrinsics/definitions.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Extrinsic: 'GenericExtrinsic', + ExtrinsicEra: 'GenericExtrinsicEra', + ExtrinsicPayload: 'GenericExtrinsicPayload', + ExtrinsicSignature: 'MultiSignature', + ExtrinsicV4: 'GenericExtrinsicV4', + ExtrinsicPayloadV4: 'GenericExtrinsicPayloadV4', + ExtrinsicSignatureV4: 'GenericExtrinsicSignatureV4', + ExtrinsicUnknown: 'GenericExtrinsicUnknown', + ExtrinsicPayloadUnknown: 'GenericExtrinsicPayloadUnknown', + ExtrinsicV5: 'GenericExtrinsicV5', + ExtrinsicPayloadV5: 'GenericExtrinsicPayloadV5', + ExtrinsicSignatureV5: 'GenericExtrinsicSignatureV5', + + // eras + Era: 'ExtrinsicEra', + ImmortalEra: 'GenericImmortalEra', + MortalEra: 'GenericMortalEra', + + // signatures & signer + AnySignature: 'H512', + MultiSignature: { + _enum: { + Ed25519: 'Ed25519Signature', + Sr25519: 'Sr25519Signature', + Ecdsa: 'EcdsaSignature' + } + }, + Signature: 'H512', + SignerPayload: 'GenericSignerPayload', + EcdsaSignature: '[u8; 65]', + Ed25519Signature: 'H512', + Sr25519Signature: 'H512' + } +} as Definitions; diff --git a/packages/types/src/interfaces/extrinsics/index.ts b/packages/types/src/interfaces/extrinsics/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/extrinsics/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/extrinsics/types.ts b/packages/types/src/interfaces/extrinsics/types.ts new file mode 100644 index 0000000..64e2ccc --- /dev/null +++ b/packages/types/src/interfaces/extrinsics/types.ts @@ -0,0 +1,82 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { GenericExtrinsic, GenericExtrinsicEra, GenericExtrinsicPayload, GenericExtrinsicPayloadUnknown, GenericExtrinsicPayloadV4, GenericExtrinsicPayloadV5, GenericExtrinsicSignatureV4, GenericExtrinsicSignatureV5, GenericExtrinsicUnknown, GenericExtrinsicV4, GenericExtrinsicV5, GenericImmortalEra, GenericMortalEra, GenericSignerPayload } from '@pezkuwi/types'; +import type { Enum, U8aFixed } from '@pezkuwi/types-codec'; +import type { H512 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AnySignature */ +export interface AnySignature extends H512 {} + +/** @name EcdsaSignature */ +export interface EcdsaSignature extends U8aFixed {} + +/** @name Ed25519Signature */ +export interface Ed25519Signature extends H512 {} + +/** @name Era */ +export interface Era extends ExtrinsicEra {} + +/** @name Extrinsic */ +export interface Extrinsic extends GenericExtrinsic {} + +/** @name ExtrinsicEra */ +export interface ExtrinsicEra extends GenericExtrinsicEra {} + +/** @name ExtrinsicPayload */ +export interface ExtrinsicPayload extends GenericExtrinsicPayload {} + +/** @name ExtrinsicPayloadUnknown */ +export interface ExtrinsicPayloadUnknown extends GenericExtrinsicPayloadUnknown {} + +/** @name ExtrinsicPayloadV4 */ +export interface ExtrinsicPayloadV4 extends GenericExtrinsicPayloadV4 {} + +/** @name ExtrinsicPayloadV5 */ +export interface ExtrinsicPayloadV5 extends GenericExtrinsicPayloadV5 {} + +/** @name ExtrinsicSignature */ +export interface ExtrinsicSignature extends MultiSignature {} + +/** @name ExtrinsicSignatureV4 */ +export interface ExtrinsicSignatureV4 extends GenericExtrinsicSignatureV4 {} + +/** @name ExtrinsicSignatureV5 */ +export interface ExtrinsicSignatureV5 extends GenericExtrinsicSignatureV5 {} + +/** @name ExtrinsicUnknown */ +export interface ExtrinsicUnknown extends GenericExtrinsicUnknown {} + +/** @name ExtrinsicV4 */ +export interface ExtrinsicV4 extends GenericExtrinsicV4 {} + +/** @name ExtrinsicV5 */ +export interface ExtrinsicV5 extends GenericExtrinsicV5 {} + +/** @name ImmortalEra */ +export interface ImmortalEra extends GenericImmortalEra {} + +/** @name MortalEra */ +export interface MortalEra extends GenericMortalEra {} + +/** @name MultiSignature */ +export interface MultiSignature extends Enum { + readonly isEd25519: boolean; + readonly asEd25519: Ed25519Signature; + readonly isSr25519: boolean; + readonly asSr25519: Sr25519Signature; + readonly isEcdsa: boolean; + readonly asEcdsa: EcdsaSignature; + readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; +} + +/** @name Signature */ +export interface Signature extends H512 {} + +/** @name SignerPayload */ +export interface SignerPayload extends GenericSignerPayload {} + +/** @name Sr25519Signature */ +export interface Sr25519Signature extends H512 {} + +export type PHANTOM_EXTRINSICS = 'extrinsics'; diff --git a/packages/types/src/interfaces/finality/definitions.ts b/packages/types/src/interfaces/finality/definitions.ts new file mode 100644 index 0000000..23a6a43 --- /dev/null +++ b/packages/types/src/interfaces/finality/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/finality/index.ts b/packages/types/src/interfaces/finality/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/finality/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/finality/runtime.ts b/packages/types/src/interfaces/finality/runtime.ts new file mode 100644 index 0000000..406cac5 --- /dev/null +++ b/packages/types/src/interfaces/finality/runtime.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +// implemented by chains bridging into the relay, not the relay itself +const finalityV1 = { + methods: { + best_finalized: { + description: 'Returns number and hash of the best finalized header known to the bridge module.', + params: [], + type: '(BlockNumber, Hash)' + } + }, + version: 1 +}; + +export const runtime: DefinitionsCall = { + DicleFinalityApi: [finalityV1], + ZagrosFinalityApi: [finalityV1], + PezkuwiFinalityApi: [finalityV1], + PezkuwichainFinalityApi: [finalityV1] +}; diff --git a/packages/types/src/interfaces/finality/types.ts b/packages/types/src/interfaces/finality/types.ts new file mode 100644 index 0000000..6fa2538 --- /dev/null +++ b/packages/types/src/interfaces/finality/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_FINALITY = 'finality'; diff --git a/packages/types/src/interfaces/fungibles/definitions.ts b/packages/types/src/interfaces/fungibles/definitions.ts new file mode 100644 index 0000000..53b6c3a --- /dev/null +++ b/packages/types/src/interfaces/fungibles/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + FungiblesAccessError: { + _enum: ['AssetIdConversionFailed', 'AmountToBalanceConversionFailed'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/fungibles/index.ts b/packages/types/src/interfaces/fungibles/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/fungibles/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/fungibles/runtime.ts b/packages/types/src/interfaces/fungibles/runtime.ts new file mode 100644 index 0000000..68803c0 --- /dev/null +++ b/packages/types/src/interfaces/fungibles/runtime.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + FungiblesApi: [ + { + methods: { + query_account_balances: { + description: 'Returns the list of all `MultiAsset` that an `AccountId` has', + params: [ + { + name: 'account', + type: 'AccountId' + } + ], + type: 'Result, FungiblesAccessError>' + } + }, + version: 1 + }, + { + methods: { + query_account_balances: { + description: 'Returns the list of all `MultiAsset` that an `AccountId` has', + params: [ + { + name: 'account', + type: 'AccountId' + } + ], + type: 'Result' + } + }, + version: 2 + } + ] +}; diff --git a/packages/types/src/interfaces/fungibles/types.ts b/packages/types/src/interfaces/fungibles/types.ts new file mode 100644 index 0000000..835a40a --- /dev/null +++ b/packages/types/src/interfaces/fungibles/types.ts @@ -0,0 +1,13 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum } from '@pezkuwi/types-codec'; + +/** @name FungiblesAccessError */ +export interface FungiblesAccessError extends Enum { + readonly isAssetIdConversionFailed: boolean; + readonly isAmountToBalanceConversionFailed: boolean; + readonly type: 'AssetIdConversionFailed' | 'AmountToBalanceConversionFailed'; +} + +export type PHANTOM_FUNGIBLES = 'fungibles'; diff --git a/packages/types/src/interfaces/genericAsset/definitions.ts b/packages/types/src/interfaces/genericAsset/definitions.ts new file mode 100644 index 0000000..325f756 --- /dev/null +++ b/packages/types/src/interfaces/genericAsset/definitions.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + AssetOptions: { + initalIssuance: 'Compact', + permissions: 'PermissionLatest' + }, + Owner: { + _enum: { + None: 'Null', + Address: 'AccountId' + } + }, + PermissionsV1: { + update: 'Owner', + mint: 'Owner', + burn: 'Owner' + }, + PermissionVersions: { + _enum: { + V1: 'PermissionsV1' + } + }, + PermissionLatest: 'PermissionsV1' + } +} as Definitions; diff --git a/packages/types/src/interfaces/genericAsset/index.ts b/packages/types/src/interfaces/genericAsset/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/genericAsset/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/genericAsset/types.ts b/packages/types/src/interfaces/genericAsset/types.ts new file mode 100644 index 0000000..9a0e389 --- /dev/null +++ b/packages/types/src/interfaces/genericAsset/types.ts @@ -0,0 +1,38 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Compact, Enum, Struct } from '@pezkuwi/types-codec'; +import type { AccountId, Balance } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AssetOptions */ +export interface AssetOptions extends Struct { + readonly initalIssuance: Compact; + readonly permissions: PermissionLatest; +} + +/** @name Owner */ +export interface Owner extends Enum { + readonly isNone: boolean; + readonly isAddress: boolean; + readonly asAddress: AccountId; + readonly type: 'None' | 'Address'; +} + +/** @name PermissionLatest */ +export interface PermissionLatest extends PermissionsV1 {} + +/** @name PermissionsV1 */ +export interface PermissionsV1 extends Struct { + readonly update: Owner; + readonly mint: Owner; + readonly burn: Owner; +} + +/** @name PermissionVersions */ +export interface PermissionVersions extends Enum { + readonly isV1: boolean; + readonly asV1: PermissionsV1; + readonly type: 'V1'; +} + +export type PHANTOM_GENERICASSET = 'genericAsset'; diff --git a/packages/types/src/interfaces/genesisBuilder/definitions.ts b/packages/types/src/interfaces/genesisBuilder/definitions.ts new file mode 100644 index 0000000..b4b6354 --- /dev/null +++ b/packages/types/src/interfaces/genesisBuilder/definitions.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + GenesisBuildErr: 'Text' + } +} as Definitions; diff --git a/packages/types/src/interfaces/genesisBuilder/index.ts b/packages/types/src/interfaces/genesisBuilder/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/genesisBuilder/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/genesisBuilder/runtime.ts b/packages/types/src/interfaces/genesisBuilder/runtime.ts new file mode 100644 index 0000000..ba4deba --- /dev/null +++ b/packages/types/src/interfaces/genesisBuilder/runtime.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + GenesisBuilder: [ + { + methods: { + build_config: { + description: 'Build `RuntimeGenesisConfig` from a JSON blob not using any defaults and store it in the storage.', + params: [ + { + name: 'json', + type: 'Vec' + } + ], + type: 'Result<(), GenesisBuildErr>' + }, + create_default_config: { + description: 'Creates the default `RuntimeGenesisConfig` and returns it as a JSON blob.', + params: [], + type: 'Vec' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/genesisBuilder/types.ts b/packages/types/src/interfaces/genesisBuilder/types.ts new file mode 100644 index 0000000..2ba254e --- /dev/null +++ b/packages/types/src/interfaces/genesisBuilder/types.ts @@ -0,0 +1,9 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Text } from '@pezkuwi/types-codec'; + +/** @name GenesisBuildErr */ +export interface GenesisBuildErr extends Text {} + +export type PHANTOM_GENESISBUILDER = 'genesisBuilder'; diff --git a/packages/types/src/interfaces/gilt/definitions.ts b/packages/types/src/interfaces/gilt/definitions.ts new file mode 100644 index 0000000..d0929c6 --- /dev/null +++ b/packages/types/src/interfaces/gilt/definitions.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + ActiveGilt: { + proportion: 'Perquintill', + amount: 'Balance', + who: 'AccountId', + expiry: 'BlockNumber' + }, + ActiveGiltsTotal: { + frozen: 'Balance', + proportion: 'Perquintill', + index: 'ActiveIndex', + target: 'Perquintill' + }, + ActiveIndex: 'u32', + GiltBid: { + amount: 'Balance', + who: 'AccountId' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/gilt/index.ts b/packages/types/src/interfaces/gilt/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/gilt/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/gilt/types.ts b/packages/types/src/interfaces/gilt/types.ts new file mode 100644 index 0000000..fcc0a98 --- /dev/null +++ b/packages/types/src/interfaces/gilt/types.ts @@ -0,0 +1,32 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, u32 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance, BlockNumber, Perquintill } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ActiveGilt */ +export interface ActiveGilt extends Struct { + readonly proportion: Perquintill; + readonly amount: Balance; + readonly who: AccountId; + readonly expiry: BlockNumber; +} + +/** @name ActiveGiltsTotal */ +export interface ActiveGiltsTotal extends Struct { + readonly frozen: Balance; + readonly proportion: Perquintill; + readonly index: ActiveIndex; + readonly target: Perquintill; +} + +/** @name ActiveIndex */ +export interface ActiveIndex extends u32 {} + +/** @name GiltBid */ +export interface GiltBid extends Struct { + readonly amount: Balance; + readonly who: AccountId; +} + +export type PHANTOM_GILT = 'gilt'; diff --git a/packages/types/src/interfaces/grandpa/ReportedRoundStates.spec.ts b/packages/types/src/interfaces/grandpa/ReportedRoundStates.spec.ts new file mode 100644 index 0000000..7797e68 --- /dev/null +++ b/packages/types/src/interfaces/grandpa/ReportedRoundStates.spec.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import json3 from '@pezkuwi/types-support/json/GrandpaRoundstate.001.json' assert { type: 'json' }; + +import { TypeRegistry } from '../../create/index.js'; + +describe('ReportedRoundStates', (): void => { + const registry = new TypeRegistry(); + + it('decodes from an actual message', (): void => { + const states = registry.createType('ReportedRoundStates', json3.result); + + expect(states.best.precommits.missing.size).toEqual(250); + }); +}); diff --git a/packages/types/src/interfaces/grandpa/definitions.ts b/packages/types/src/interfaces/grandpa/definitions.ts new file mode 100644 index 0000000..99ebc50 --- /dev/null +++ b/packages/types/src/interfaces/grandpa/definitions.ts @@ -0,0 +1,140 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + AuthorityIndex: 'u64', + AuthorityList: 'Vec', + AuthoritySet: { + currentAuthorities: 'AuthorityList', + setId: 'u64', + pendingStandardChanges: 'ForkTreePendingChange', + pendingForcedChanges: 'Vec', + authoritySetChanges: 'AuthoritySetChanges' + }, + ForkTreePendingChange: { + roots: 'Vec', + bestFinalizedNumber: 'Option' + }, + ForkTreePendingChangeNode: { + hash: 'BlockHash', + number: 'BlockNumber', + data: 'PendingChange', // actual data, here PendingChange + children: 'Vec' + }, + AuthoritySetChange: '(U64, BlockNumber)', + AuthoritySetChanges: 'Vec', + AuthorityWeight: 'u64', + DelayKind: { + _enum: { + Finalized: 'Null', + Best: 'DelayKindBest' + } + }, + DelayKindBest: { + medianLastFinalized: 'BlockNumber' + }, + EncodedFinalityProofs: 'Bytes', + GrandpaEquivocation: { + _enum: { + Prevote: 'GrandpaEquivocationValue', + Precommit: 'GrandpaEquivocationValue' + } + }, + GrandpaEquivocationProof: { + setId: 'SetId', + equivocation: 'GrandpaEquivocation' + }, + GrandpaEquivocationValue: { + roundNumber: 'u64', + identity: 'AuthorityId', + first: '(GrandpaPrevote, AuthoritySignature)', + second: '(GrandpaPrevote, AuthoritySignature)' + }, + GrandpaPrevote: { + targetHash: 'Hash', + targetNumber: 'BlockNumber' + }, + GrandpaCommit: { + targetHash: 'BlockHash', + targetNumber: 'BlockNumber', + precommits: 'Vec' + }, + GrandpaPrecommit: { + targetHash: 'BlockHash', + targetNumber: 'BlockNumber' + }, + GrandpaSignedPrecommit: { + precommit: 'GrandpaPrecommit', + signature: 'AuthoritySignature', + id: 'AuthorityId' + }, + GrandpaJustification: { + round: 'u64', + commit: 'GrandpaCommit', + votesAncestries: 'Vec
' + }, + JustificationNotification: 'Bytes', + KeyOwnerProof: 'MembershipProof', + NextAuthority: '(AuthorityId, AuthorityWeight)', + PendingChange: { + nextAuthorities: 'AuthorityList', + delay: 'BlockNumber', + canonHeight: 'BlockNumber', + canonHash: 'BlockHash', + delayKind: 'DelayKind' + }, + PendingPause: { + scheduledAt: 'BlockNumber', + delay: 'BlockNumber' + }, + PendingResume: { + scheduledAt: 'BlockNumber', + delay: 'BlockNumber' + }, + Precommits: { + currentWeight: 'u32', + missing: 'BTreeSet' + }, + Prevotes: { + currentWeight: 'u32', + missing: 'BTreeSet' + }, + ReportedRoundStates: { + setId: 'u32', + best: 'RoundState', + background: 'Vec' + }, + RoundState: { + round: 'u32', + totalWeight: 'u32', + thresholdWeight: 'u32', + prevotes: 'Prevotes', + precommits: 'Precommits' + }, + SetId: 'u64', + StoredPendingChange: { + scheduledAt: 'BlockNumber', + delay: 'BlockNumber', + nextAuthorities: 'AuthorityList' + }, + StoredState: { + _enum: { + Live: 'Null', + PendingPause: 'PendingPause', + Paused: 'Null', + PendingResume: 'PendingResume' + } + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/grandpa/index.ts b/packages/types/src/interfaces/grandpa/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/grandpa/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/grandpa/rpc.ts b/packages/types/src/interfaces/grandpa/rpc.ts new file mode 100644 index 0000000..17d60a7 --- /dev/null +++ b/packages/types/src/interfaces/grandpa/rpc.ts @@ -0,0 +1,32 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + proveFinality: { + description: 'Prove finality for the given block number, returning the Justification for the last block in the set.', + params: [ + { + name: 'blockNumber', + type: 'BlockNumber' + } + ], + type: 'Option' + }, + roundState: { + description: 'Returns the state of the current best round state as well as the ongoing background rounds', + params: [], + type: 'ReportedRoundStates' + }, + subscribeJustifications: { + description: 'Subscribes to grandpa justifications', + params: [], + pubsub: [ + 'justifications', + 'subscribeJustifications', + 'unsubscribeJustifications' + ], + type: 'JustificationNotification' + } +}; diff --git a/packages/types/src/interfaces/grandpa/runtime.ts b/packages/types/src/interfaces/grandpa/runtime.ts new file mode 100644 index 0000000..394272e --- /dev/null +++ b/packages/types/src/interfaces/grandpa/runtime.ts @@ -0,0 +1,60 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall, DefinitionsCallEntry } from '../../types/index.js'; + +const GRANDPA_V2_V3: DefinitionsCallEntry['methods'] = { + generate_key_ownership_proof: { + description: 'Generates a proof of key ownership for the given authority in the given set.', + params: [ + { + name: 'setId', + type: 'SetId' + }, + { + name: 'authorityId', + type: 'AuthorityId' + } + ], + type: 'Option' + }, + grandpa_authorities: { + description: 'Get the current GRANDPA authorities and weights. This should not change except for when changes are scheduled and the corresponding delay has passed.', + params: [], + type: 'AuthorityList' + }, + submit_report_equivocation_unsigned_extrinsic: { + description: 'Submits an unsigned extrinsic to report an equivocation.', + params: [ + { + name: 'equivocationProof', + type: 'GrandpaEquivocationProof' + }, + { + name: 'keyOwnerProof', + type: 'OpaqueKeyOwnershipProof' + } + ], + type: 'Option' + } +}; + +export const runtime: DefinitionsCall = { + GrandpaApi: [ + { + methods: { + current_set_id: { + description: 'Get current GRANDPA authority set id.', + params: [], + type: 'SetId' + }, + ...GRANDPA_V2_V3 + }, + version: 3 + }, + { + methods: GRANDPA_V2_V3, + version: 2 + } + ] +}; diff --git a/packages/types/src/interfaces/grandpa/types.ts b/packages/types/src/interfaces/grandpa/types.ts new file mode 100644 index 0000000..9b49d68 --- /dev/null +++ b/packages/types/src/interfaces/grandpa/types.ts @@ -0,0 +1,201 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { BTreeSet, Bytes, Enum, Option, Struct, U64, Vec, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { BlockHash } from '@pezkuwi/types/interfaces/chain'; +import type { AuthorityId } from '@pezkuwi/types/interfaces/consensus'; +import type { AuthoritySignature } from '@pezkuwi/types/interfaces/imOnline'; +import type { BlockNumber, Hash, Header } from '@pezkuwi/types/interfaces/runtime'; +import type { MembershipProof } from '@pezkuwi/types/interfaces/session'; + +/** @name AuthorityIndex */ +export interface AuthorityIndex extends u64 {} + +/** @name AuthorityList */ +export interface AuthorityList extends Vec {} + +/** @name AuthoritySet */ +export interface AuthoritySet extends Struct { + readonly currentAuthorities: AuthorityList; + readonly setId: u64; + readonly pendingStandardChanges: ForkTreePendingChange; + readonly pendingForcedChanges: Vec; + readonly authoritySetChanges: AuthoritySetChanges; +} + +/** @name AuthoritySetChange */ +export interface AuthoritySetChange extends ITuple<[U64, BlockNumber]> {} + +/** @name AuthoritySetChanges */ +export interface AuthoritySetChanges extends Vec {} + +/** @name AuthorityWeight */ +export interface AuthorityWeight extends u64 {} + +/** @name DelayKind */ +export interface DelayKind extends Enum { + readonly isFinalized: boolean; + readonly isBest: boolean; + readonly asBest: DelayKindBest; + readonly type: 'Finalized' | 'Best'; +} + +/** @name DelayKindBest */ +export interface DelayKindBest extends Struct { + readonly medianLastFinalized: BlockNumber; +} + +/** @name EncodedFinalityProofs */ +export interface EncodedFinalityProofs extends Bytes {} + +/** @name ForkTreePendingChange */ +export interface ForkTreePendingChange extends Struct { + readonly roots: Vec; + readonly bestFinalizedNumber: Option; +} + +/** @name ForkTreePendingChangeNode */ +export interface ForkTreePendingChangeNode extends Struct { + readonly hash: BlockHash; + readonly number: BlockNumber; + readonly data: PendingChange; + readonly children: Vec; +} + +/** @name GrandpaCommit */ +export interface GrandpaCommit extends Struct { + readonly targetHash: BlockHash; + readonly targetNumber: BlockNumber; + readonly precommits: Vec; +} + +/** @name GrandpaEquivocation */ +export interface GrandpaEquivocation extends Enum { + readonly isPrevote: boolean; + readonly asPrevote: GrandpaEquivocationValue; + readonly isPrecommit: boolean; + readonly asPrecommit: GrandpaEquivocationValue; + readonly type: 'Prevote' | 'Precommit'; +} + +/** @name GrandpaEquivocationProof */ +export interface GrandpaEquivocationProof extends Struct { + readonly setId: SetId; + readonly equivocation: GrandpaEquivocation; +} + +/** @name GrandpaEquivocationValue */ +export interface GrandpaEquivocationValue extends Struct { + readonly roundNumber: u64; + readonly identity: AuthorityId; + readonly first: ITuple<[GrandpaPrevote, AuthoritySignature]>; + readonly second: ITuple<[GrandpaPrevote, AuthoritySignature]>; +} + +/** @name GrandpaJustification */ +export interface GrandpaJustification extends Struct { + readonly round: u64; + readonly commit: GrandpaCommit; + readonly votesAncestries: Vec
; +} + +/** @name GrandpaPrecommit */ +export interface GrandpaPrecommit extends Struct { + readonly targetHash: BlockHash; + readonly targetNumber: BlockNumber; +} + +/** @name GrandpaPrevote */ +export interface GrandpaPrevote extends Struct { + readonly targetHash: Hash; + readonly targetNumber: BlockNumber; +} + +/** @name GrandpaSignedPrecommit */ +export interface GrandpaSignedPrecommit extends Struct { + readonly precommit: GrandpaPrecommit; + readonly signature: AuthoritySignature; + readonly id: AuthorityId; +} + +/** @name JustificationNotification */ +export interface JustificationNotification extends Bytes {} + +/** @name KeyOwnerProof */ +export interface KeyOwnerProof extends MembershipProof {} + +/** @name NextAuthority */ +export interface NextAuthority extends ITuple<[AuthorityId, AuthorityWeight]> {} + +/** @name PendingChange */ +export interface PendingChange extends Struct { + readonly nextAuthorities: AuthorityList; + readonly delay: BlockNumber; + readonly canonHeight: BlockNumber; + readonly canonHash: BlockHash; + readonly delayKind: DelayKind; +} + +/** @name PendingPause */ +export interface PendingPause extends Struct { + readonly scheduledAt: BlockNumber; + readonly delay: BlockNumber; +} + +/** @name PendingResume */ +export interface PendingResume extends Struct { + readonly scheduledAt: BlockNumber; + readonly delay: BlockNumber; +} + +/** @name Precommits */ +export interface Precommits extends Struct { + readonly currentWeight: u32; + readonly missing: BTreeSet; +} + +/** @name Prevotes */ +export interface Prevotes extends Struct { + readonly currentWeight: u32; + readonly missing: BTreeSet; +} + +/** @name ReportedRoundStates */ +export interface ReportedRoundStates extends Struct { + readonly setId: u32; + readonly best: RoundState; + readonly background: Vec; +} + +/** @name RoundState */ +export interface RoundState extends Struct { + readonly round: u32; + readonly totalWeight: u32; + readonly thresholdWeight: u32; + readonly prevotes: Prevotes; + readonly precommits: Precommits; +} + +/** @name SetId */ +export interface SetId extends u64 {} + +/** @name StoredPendingChange */ +export interface StoredPendingChange extends Struct { + readonly scheduledAt: BlockNumber; + readonly delay: BlockNumber; + readonly nextAuthorities: AuthorityList; +} + +/** @name StoredState */ +export interface StoredState extends Enum { + readonly isLive: boolean; + readonly isPendingPause: boolean; + readonly asPendingPause: PendingPause; + readonly isPaused: boolean; + readonly isPendingResume: boolean; + readonly asPendingResume: PendingResume; + readonly type: 'Live' | 'PendingPause' | 'Paused' | 'PendingResume'; +} + +export type PHANTOM_GRANDPA = 'grandpa'; diff --git a/packages/types/src/interfaces/identity/IdentityFields.spec.ts b/packages/types/src/interfaces/identity/IdentityFields.spec.ts new file mode 100644 index 0000000..cabfb63 --- /dev/null +++ b/packages/types/src/interfaces/identity/IdentityFields.spec.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +describe('IdentityFields', (): void => { + const registry = new TypeRegistry(); + + it('has a custom u64 (64-bit) encodedLength', (): void => { + expect( + registry.createType('IdentityFields').encodedLength + ).toEqual(8); + }); + + it('encodes a sample', (): void => { + expect( + registry.createType('IdentityFields', ['Display', 'Legal']).valueEncoded.eqn(1 + 2) + ).toBe(true); + }); + + it('encodes to a valid u8a value', (): void => { + expect( + registry.createType('IdentityFields', ['Display', 'Legal']).toU8a() + ).toEqual(new Uint8Array([3, 0, 0, 0, 0, 0, 0, 0])); + }); + + it('decodes from a u8a', (): void => { + expect( + registry.createType('IdentityFields', new Uint8Array([1 + 2 + 64, 0, 0, 0, 0, 0, 0, 0])).toHuman() + ).toEqual(['Display', 'Legal', 'Image']); + }); +}); diff --git a/packages/types/src/interfaces/identity/Registration.spec.ts b/packages/types/src/interfaces/identity/Registration.spec.ts new file mode 100644 index 0000000..fb20178 --- /dev/null +++ b/packages/types/src/interfaces/identity/Registration.spec.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createType, TypeRegistry } from '../../create/index.js'; + +const registry = new TypeRegistry(); + +describe('Registration', (): void => { + it('decodes a Registration', (): void => { + expect( + createType( + registry, 'Registration', '0x' + + '00' + // no judgements + '00a0724e180900000000000000000000' + // balance + '00' + // no length + '039911039922039944039955039933000003996600' + ).toJSON() + ).toEqual({ + deposit: 10000000000000, // '0x0000000000000000000009184e72a000', + info: { + additional: [], + display: { raw: '0x9911' }, + email: { raw: '0x9933' }, + image: { none: null }, + legal: { raw: '0x9922' }, + pgpFingerprint: null, + riot: { raw: '0x9955' }, + twitter: { raw: '0x9966' }, + web: { raw: '0x9944' } + }, + judgements: [] + }); + }); +}); diff --git a/packages/types/src/interfaces/identity/definitions.ts b/packages/types/src/interfaces/identity/definitions.ts new file mode 100644 index 0000000..6bd7041 --- /dev/null +++ b/packages/types/src/interfaces/identity/definitions.ts @@ -0,0 +1,79 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + IdentityFields: { + _set: { + _bitLength: 64, + // Mapped here to 32 bits, in Rust these are 64-bit values + Display: 0b00000000_00000000_00000000_0000_0001, + Legal: 0b00000000_00000000_00000000_0000_0010, + Web: 0b00000000_00000000_00000000_0000_0100, + Riot: 0b00000000_00000000_00000000_0000_1000, + Email: 0b00000000_00000000_00000000_0001_0000, + PgpFingerprint: 0b00000000_00000000_00000000_0010_0000, + Image: 0b00000000_00000000_00000000_0100_0000, + Twitter: 0b00000000_00000000_00000000_1000_0000 + } + }, + IdentityInfoAdditional: '(Data, Data)', + IdentityInfoTo198: { + additional: 'Vec', + display: 'Data', + legal: 'Data', + web: 'Data', + riot: 'Data', + email: 'Data', + pgpFingerprint: 'Option', + image: 'Data' + }, + IdentityInfo: { + _fallback: 'IdentityInfoTo198', + additional: 'Vec', + display: 'Data', + legal: 'Data', + web: 'Data', + riot: 'Data', + email: 'Data', + pgpFingerprint: 'Option', + image: 'Data', + twitter: 'Data' + }, + IdentityJudgement: { + _enum: { + Unknown: 'Null', + FeePaid: 'Balance', + Reasonable: 'Null', + KnownGood: 'Null', + OutOfDate: 'Null', + LowQuality: 'Null', + Erroneous: 'Null' + } + }, + RegistrationJudgement: '(RegistrarIndex, IdentityJudgement)', + RegistrationTo198: { + judgements: 'Vec', + deposit: 'Balance', + info: 'IdentityInfoTo198' + }, + Registration: { + _fallback: 'RegistrationTo198', + judgements: 'Vec', + deposit: 'Balance', + info: 'IdentityInfo' + }, + RegistrarIndex: 'u32', + RegistrarInfo: { + account: 'AccountId', + fee: 'Balance', + fields: 'IdentityFields' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/identity/index.ts b/packages/types/src/interfaces/identity/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/identity/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/identity/types.ts b/packages/types/src/interfaces/identity/types.ts new file mode 100644 index 0000000..5b54075 --- /dev/null +++ b/packages/types/src/interfaces/identity/types.ts @@ -0,0 +1,89 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Data } from '@pezkuwi/types'; +import type { Enum, Option, Set, Struct, Vec, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, Balance, H160 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name IdentityFields */ +export interface IdentityFields extends Set { + readonly isDisplay: boolean; + readonly isLegal: boolean; + readonly isWeb: boolean; + readonly isRiot: boolean; + readonly isEmail: boolean; + readonly isPgpFingerprint: boolean; + readonly isImage: boolean; + readonly isTwitter: boolean; +} + +/** @name IdentityInfo */ +export interface IdentityInfo extends Struct { + readonly additional: Vec; + readonly display: Data; + readonly legal: Data; + readonly web: Data; + readonly riot: Data; + readonly email: Data; + readonly pgpFingerprint: Option; + readonly image: Data; + readonly twitter: Data; +} + +/** @name IdentityInfoAdditional */ +export interface IdentityInfoAdditional extends ITuple<[Data, Data]> {} + +/** @name IdentityInfoTo198 */ +export interface IdentityInfoTo198 extends Struct { + readonly additional: Vec; + readonly display: Data; + readonly legal: Data; + readonly web: Data; + readonly riot: Data; + readonly email: Data; + readonly pgpFingerprint: Option; + readonly image: Data; +} + +/** @name IdentityJudgement */ +export interface IdentityJudgement extends Enum { + readonly isUnknown: boolean; + readonly isFeePaid: boolean; + readonly asFeePaid: Balance; + readonly isReasonable: boolean; + readonly isKnownGood: boolean; + readonly isOutOfDate: boolean; + readonly isLowQuality: boolean; + readonly isErroneous: boolean; + readonly type: 'Unknown' | 'FeePaid' | 'Reasonable' | 'KnownGood' | 'OutOfDate' | 'LowQuality' | 'Erroneous'; +} + +/** @name RegistrarIndex */ +export interface RegistrarIndex extends u32 {} + +/** @name RegistrarInfo */ +export interface RegistrarInfo extends Struct { + readonly account: AccountId; + readonly fee: Balance; + readonly fields: IdentityFields; +} + +/** @name Registration */ +export interface Registration extends Struct { + readonly judgements: Vec; + readonly deposit: Balance; + readonly info: IdentityInfo; +} + +/** @name RegistrationJudgement */ +export interface RegistrationJudgement extends ITuple<[RegistrarIndex, IdentityJudgement]> {} + +/** @name RegistrationTo198 */ +export interface RegistrationTo198 extends Struct { + readonly judgements: Vec; + readonly deposit: Balance; + readonly info: IdentityInfoTo198; +} + +export type PHANTOM_IDENTITY = 'identity'; diff --git a/packages/types/src/interfaces/imOnline/definitions.ts b/packages/types/src/interfaces/imOnline/definitions.ts new file mode 100644 index 0000000..696fd98 --- /dev/null +++ b/packages/types/src/interfaces/imOnline/definitions.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + AuthIndex: 'u32', + AuthoritySignature: 'Signature', + Heartbeat: { + blockNumber: 'BlockNumber', + networkState: 'OpaqueNetworkState', + sessionIndex: 'SessionIndex', + authorityIndex: 'AuthIndex', + validatorsLen: 'u32' + }, + HeartbeatTo244: { + blockNumber: 'BlockNumber', + networkState: 'OpaqueNetworkState', + sessionIndex: 'SessionIndex', + authorityIndex: 'AuthIndex' + }, + OpaqueMultiaddr: 'Opaque', + OpaquePeerId: 'Opaque', + OpaqueNetworkState: { + peerId: 'OpaquePeerId', + externalAddresses: 'Vec' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/imOnline/index.ts b/packages/types/src/interfaces/imOnline/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/imOnline/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/imOnline/types.ts b/packages/types/src/interfaces/imOnline/types.ts new file mode 100644 index 0000000..f1aa9eb --- /dev/null +++ b/packages/types/src/interfaces/imOnline/types.ts @@ -0,0 +1,44 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Struct, Vec, WrapperOpaque, u32 } from '@pezkuwi/types-codec'; +import type { Signature } from '@pezkuwi/types/interfaces/extrinsics'; +import type { BlockNumber } from '@pezkuwi/types/interfaces/runtime'; +import type { SessionIndex } from '@pezkuwi/types/interfaces/session'; + +/** @name AuthIndex */ +export interface AuthIndex extends u32 {} + +/** @name AuthoritySignature */ +export interface AuthoritySignature extends Signature {} + +/** @name Heartbeat */ +export interface Heartbeat extends Struct { + readonly blockNumber: BlockNumber; + readonly networkState: OpaqueNetworkState; + readonly sessionIndex: SessionIndex; + readonly authorityIndex: AuthIndex; + readonly validatorsLen: u32; +} + +/** @name HeartbeatTo244 */ +export interface HeartbeatTo244 extends Struct { + readonly blockNumber: BlockNumber; + readonly networkState: OpaqueNetworkState; + readonly sessionIndex: SessionIndex; + readonly authorityIndex: AuthIndex; +} + +/** @name OpaqueMultiaddr */ +export interface OpaqueMultiaddr extends WrapperOpaque {} + +/** @name OpaqueNetworkState */ +export interface OpaqueNetworkState extends Struct { + readonly peerId: OpaquePeerId; + readonly externalAddresses: Vec; +} + +/** @name OpaquePeerId */ +export interface OpaquePeerId extends WrapperOpaque {} + +export type PHANTOM_IMONLINE = 'imOnline'; diff --git a/packages/types/src/interfaces/index.ts b/packages/types/src/interfaces/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/jsonrpc.ts b/packages/types/src/interfaces/jsonrpc.ts new file mode 100644 index 0000000..f1a868b --- /dev/null +++ b/packages/types/src/interfaces/jsonrpc.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionRpcExt, DefinitionRpcSub } from '../types/index.js'; + +import { objectSpread } from '@pezkuwi/util'; + +import * as defs from './definitions.js'; + +const jsonrpc: Record> = {}; + +Object.keys(defs).forEach((s) => + Object.entries(defs[s as 'babe'].rpc || {}).forEach(([method, def]): void => { + // allow for section overrides + const section = def.aliasSection || s; + + if (!jsonrpc[section]) { + jsonrpc[section] = {}; + } + + jsonrpc[section][method] = objectSpread({}, def, { + isSubscription: !!(def as DefinitionRpcSub).pubsub, + jsonrpc: `${section}_${method}`, + method, + section + }); + }) +); + +export default jsonrpc; diff --git a/packages/types/src/interfaces/lottery/definitions.ts b/packages/types/src/interfaces/lottery/definitions.ts new file mode 100644 index 0000000..72f5dce --- /dev/null +++ b/packages/types/src/interfaces/lottery/definitions.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + CallIndex: '(u8, u8)', + LotteryConfig: { + price: 'Balance', + start: 'BlockNumber', + length: 'BlockNumber', + delay: 'BlockNumber', + repeat: 'bool' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/lottery/index.ts b/packages/types/src/interfaces/lottery/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/lottery/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/lottery/types.ts b/packages/types/src/interfaces/lottery/types.ts new file mode 100644 index 0000000..fc7cbd2 --- /dev/null +++ b/packages/types/src/interfaces/lottery/types.ts @@ -0,0 +1,20 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, bool, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { Balance, BlockNumber } from '@pezkuwi/types/interfaces/runtime'; + +/** @name CallIndex */ +export interface CallIndex extends ITuple<[u8, u8]> {} + +/** @name LotteryConfig */ +export interface LotteryConfig extends Struct { + readonly price: Balance; + readonly start: BlockNumber; + readonly length: BlockNumber; + readonly delay: BlockNumber; + readonly repeat: bool; +} + +export type PHANTOM_LOTTERY = 'lottery'; diff --git a/packages/types/src/interfaces/metadata/definitions.ts b/packages/types/src/interfaces/metadata/definitions.ts new file mode 100644 index 0000000..3efd6a0 --- /dev/null +++ b/packages/types/src/interfaces/metadata/definitions.ts @@ -0,0 +1,87 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { AllHashers } from './hashers.js'; +import { runtime } from './runtime.js'; +import { v9 } from './v9.js'; +import { v10 } from './v10.js'; +import { v11 } from './v11.js'; +import { v12 } from './v12.js'; +import { v13 } from './v13.js'; +import { v14 } from './v14.js'; +import { v15 } from './v15.js'; +import { v16 } from './v16.js'; + +export { AllHashers }; + +export default { + rpc: {}, + runtime, + types: { + // all known + ...v9, + ...v10, + ...v11, + ...v12, + ...v13, + ...v14, + ...v15, + ...v16, + + // latest mappings + // NOTE: For v15, we only added the runtime defintions, + // hence latest for most pointing to the previous V14 + ErrorMetadataLatest: 'ErrorMetadataV14', + EventMetadataLatest: 'EventMetadataV14', + ExtrinsicMetadataLatest: 'ExtrinsicMetadataV16', + FunctionArgumentMetadataLatest: 'FunctionArgumentMetadataV14', + FunctionMetadataLatest: 'FunctionMetadataV14', + MetadataLatest: 'MetadataV16', + PezpalletCallMetadataLatest: 'PezpalletCallMetadataV16', + PezpalletConstantMetadataLatest: 'PezpalletConstantMetadataV16', + PezpalletErrorMetadataLatest: 'PezpalletErrorMetadataV16', + PezpalletEventMetadataLatest: 'PezpalletEventMetadataV16', + PezpalletMetadataLatest: 'PezpalletMetadataV16', + PezpalletStorageMetadataLatest: 'PezpalletStorageMetadataV16', + PortableType: 'PortableTypeV14', + RuntimeApiMetadataLatest: 'RuntimeApiMetadataV16', + SignedExtensionMetadataLatest: 'SignedExtensionMetadataV14', + TransactionExtensionMetadataLatest: 'TransactionExtensionMetadataV16', + StorageEntryMetadataLatest: 'StorageEntryMetadataV16', + StorageEntryModifierLatest: 'StorageEntryModifierV14', + StorageEntryTypeLatest: 'StorageEntryTypeV14', + StorageHasher: 'StorageHasherV14', + + // additional types + OpaqueMetadata: 'Opaque', + + // the enum containing all the mappings + MetadataAll: { + _enum: { + V0: 'DoNotConstruct', + V1: 'DoNotConstruct', + V2: 'DoNotConstruct', + V3: 'DoNotConstruct', + V4: 'DoNotConstruct', + V5: 'DoNotConstruct', + V6: 'DoNotConstruct', + V7: 'DoNotConstruct', + V8: 'DoNotConstruct', + // First version on Zagros in V9, dropping will be problematic + V9: 'MetadataV9', + V10: 'MetadataV10', + V11: 'MetadataV11', + V12: 'MetadataV12', + V13: 'MetadataV13', + V14: 'MetadataV14', + V15: 'MetadataV15', + V16: 'MetadataV16' + } + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/metadata/hashers.ts b/packages/types/src/interfaces/metadata/hashers.ts new file mode 100644 index 0000000..a15a337 --- /dev/null +++ b/packages/types/src/interfaces/metadata/hashers.ts @@ -0,0 +1,16 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +export const AllHashers = { + Blake2_128: null, // eslint-disable-line camelcase + Blake2_256: null, // eslint-disable-line camelcase + Blake2_128Concat: null, // eslint-disable-line camelcase + Twox128: null, + Twox256: null, + Twox64Concat: null, + // new in v11 + Identity: null +} as const; diff --git a/packages/types/src/interfaces/metadata/index.ts b/packages/types/src/interfaces/metadata/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/metadata/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/metadata/runtime.ts b/packages/types/src/interfaces/metadata/runtime.ts new file mode 100644 index 0000000..0eeb7d2 --- /dev/null +++ b/packages/types/src/interfaces/metadata/runtime.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall, DefinitionsCallEntry } from '../../types/index.js'; + +const META_V1_TO_V2: DefinitionsCallEntry['methods'] = { + metadata: { + description: 'Returns the metadata of a runtime', + params: [], + type: 'OpaqueMetadata' + } +}; + +export const runtime: DefinitionsCall = { + Metadata: [ + { + methods: { + metadata_at_version: { + description: 'Returns the metadata at a given version.', + params: [ + { + name: 'version', + type: 'u32' + } + ], + type: 'Option' + }, + metadata_versions: { + description: 'Returns the supported metadata versions.', + params: [], + type: 'Vec' + }, + ...META_V1_TO_V2 + }, + version: 2 + }, + { + methods: { + ...META_V1_TO_V2 + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/metadata/types.ts b/packages/types/src/interfaces/metadata/types.ts new file mode 100644 index 0000000..775409f --- /dev/null +++ b/packages/types/src/interfaces/metadata/types.ts @@ -0,0 +1,849 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { PortableRegistry } from '@pezkuwi/types'; +import type { BTreeMap, Bytes, Compact, Enum, Option, Struct, Text, Type, U8aFixed, Vec, WrapperOpaque, bool, u32, u8 } from '@pezkuwi/types-codec'; +import type { Si1Field, Si1LookupTypeId, Si1Type, SiLookupTypeId } from '@pezkuwi/types/interfaces/scaleInfo'; + +/** @name CustomMetadata15 */ +export interface CustomMetadata15 extends Struct { + readonly map: BTreeMap; +} + +/** @name CustomValueMetadata15 */ +export interface CustomValueMetadata15 extends Struct { + readonly type: SiLookupTypeId; + readonly value: Bytes; +} + +/** @name EnumDeprecationInfoV16 */ +export interface EnumDeprecationInfoV16 extends BTreeMap {} + +/** @name ErrorMetadataLatest */ +export interface ErrorMetadataLatest extends ErrorMetadataV14 {} + +/** @name ErrorMetadataV10 */ +export interface ErrorMetadataV10 extends ErrorMetadataV9 {} + +/** @name ErrorMetadataV11 */ +export interface ErrorMetadataV11 extends ErrorMetadataV10 {} + +/** @name ErrorMetadataV12 */ +export interface ErrorMetadataV12 extends ErrorMetadataV11 {} + +/** @name ErrorMetadataV13 */ +export interface ErrorMetadataV13 extends ErrorMetadataV12 {} + +/** @name ErrorMetadataV14 */ +export interface ErrorMetadataV14 extends Struct { + readonly name: Text; + readonly fields: Vec; + readonly index: u8; + readonly docs: Vec; + readonly args: Vec; +} + +/** @name ErrorMetadataV9 */ +export interface ErrorMetadataV9 extends Struct { + readonly name: Text; + readonly docs: Vec; +} + +/** @name EventMetadataLatest */ +export interface EventMetadataLatest extends EventMetadataV14 {} + +/** @name EventMetadataV10 */ +export interface EventMetadataV10 extends EventMetadataV9 {} + +/** @name EventMetadataV11 */ +export interface EventMetadataV11 extends EventMetadataV10 {} + +/** @name EventMetadataV12 */ +export interface EventMetadataV12 extends EventMetadataV11 {} + +/** @name EventMetadataV13 */ +export interface EventMetadataV13 extends EventMetadataV12 {} + +/** @name EventMetadataV14 */ +export interface EventMetadataV14 extends Struct { + readonly name: Text; + readonly fields: Vec; + readonly index: u8; + readonly docs: Vec; + readonly args: Vec; +} + +/** @name EventMetadataV9 */ +export interface EventMetadataV9 extends Struct { + readonly name: Text; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ExtrinsicMetadataLatest */ +export interface ExtrinsicMetadataLatest extends ExtrinsicMetadataV16 {} + +/** @name ExtrinsicMetadataV11 */ +export interface ExtrinsicMetadataV11 extends Struct { + readonly version: u8; + readonly signedExtensions: Vec; +} + +/** @name ExtrinsicMetadataV12 */ +export interface ExtrinsicMetadataV12 extends ExtrinsicMetadataV11 {} + +/** @name ExtrinsicMetadataV13 */ +export interface ExtrinsicMetadataV13 extends ExtrinsicMetadataV12 {} + +/** @name ExtrinsicMetadataV14 */ +export interface ExtrinsicMetadataV14 extends Struct { + readonly type: SiLookupTypeId; + readonly version: u8; + readonly signedExtensions: Vec; +} + +/** @name ExtrinsicMetadataV15 */ +export interface ExtrinsicMetadataV15 extends Struct { + readonly version: u8; + readonly addressType: SiLookupTypeId; + readonly callType: SiLookupTypeId; + readonly signatureType: SiLookupTypeId; + readonly extraType: SiLookupTypeId; + readonly signedExtensions: Vec; +} + +/** @name ExtrinsicMetadataV16 */ +export interface ExtrinsicMetadataV16 extends Struct { + readonly versions: Bytes; + readonly addressType: SiLookupTypeId; + readonly callType: SiLookupTypeId; + readonly signatureType: SiLookupTypeId; + readonly transactionExtensionsByVersion: BTreeMap>>; + readonly transactionExtensions: Vec; +} + +/** @name FunctionArgumentMetadataLatest */ +export interface FunctionArgumentMetadataLatest extends FunctionArgumentMetadataV14 {} + +/** @name FunctionArgumentMetadataV10 */ +export interface FunctionArgumentMetadataV10 extends FunctionArgumentMetadataV9 {} + +/** @name FunctionArgumentMetadataV11 */ +export interface FunctionArgumentMetadataV11 extends FunctionArgumentMetadataV10 {} + +/** @name FunctionArgumentMetadataV12 */ +export interface FunctionArgumentMetadataV12 extends FunctionArgumentMetadataV11 {} + +/** @name FunctionArgumentMetadataV13 */ +export interface FunctionArgumentMetadataV13 extends FunctionArgumentMetadataV12 {} + +/** @name FunctionArgumentMetadataV14 */ +export interface FunctionArgumentMetadataV14 extends Struct { + readonly name: Text; + readonly type: Type; + readonly typeName: Option; +} + +/** @name FunctionArgumentMetadataV9 */ +export interface FunctionArgumentMetadataV9 extends Struct { + readonly name: Text; + readonly type: Type; +} + +/** @name FunctionMetadataLatest */ +export interface FunctionMetadataLatest extends FunctionMetadataV14 {} + +/** @name FunctionMetadataV10 */ +export interface FunctionMetadataV10 extends FunctionMetadataV9 {} + +/** @name FunctionMetadataV11 */ +export interface FunctionMetadataV11 extends FunctionMetadataV10 {} + +/** @name FunctionMetadataV12 */ +export interface FunctionMetadataV12 extends FunctionMetadataV11 {} + +/** @name FunctionMetadataV13 */ +export interface FunctionMetadataV13 extends FunctionMetadataV12 {} + +/** @name FunctionMetadataV14 */ +export interface FunctionMetadataV14 extends Struct { + readonly name: Text; + readonly fields: Vec; + readonly index: u8; + readonly docs: Vec; + readonly args: Vec; +} + +/** @name FunctionMetadataV9 */ +export interface FunctionMetadataV9 extends Struct { + readonly name: Text; + readonly args: Vec; + readonly docs: Vec; +} + +/** @name ItemDeprecationInfoV16 */ +export interface ItemDeprecationInfoV16 extends Enum { + readonly isNotDeprecated: boolean; + readonly isDeprecatedWithoutNote: boolean; + readonly isDeprecated: boolean; + readonly asDeprecated: { + readonly note: Text; + readonly since: Option; + } & Struct; + readonly type: 'NotDeprecated' | 'DeprecatedWithoutNote' | 'Deprecated'; +} + +/** @name MetadataAll */ +export interface MetadataAll extends Enum { + readonly isV9: boolean; + readonly asV9: MetadataV9; + readonly isV10: boolean; + readonly asV10: MetadataV10; + readonly isV11: boolean; + readonly asV11: MetadataV11; + readonly isV12: boolean; + readonly asV12: MetadataV12; + readonly isV13: boolean; + readonly asV13: MetadataV13; + readonly isV14: boolean; + readonly asV14: MetadataV14; + readonly isV15: boolean; + readonly asV15: MetadataV15; + readonly isV16: boolean; + readonly asV16: MetadataV16; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5' | 'V6' | 'V7' | 'V8' | 'V9' | 'V10' | 'V11' | 'V12' | 'V13' | 'V14' | 'V15' | 'V16'; +} + +/** @name MetadataLatest */ +export interface MetadataLatest extends MetadataV16 {} + +/** @name MetadataV10 */ +export interface MetadataV10 extends Struct { + readonly modules: Vec; +} + +/** @name MetadataV11 */ +export interface MetadataV11 extends Struct { + readonly modules: Vec; + readonly extrinsic: ExtrinsicMetadataV11; +} + +/** @name MetadataV12 */ +export interface MetadataV12 extends Struct { + readonly modules: Vec; + readonly extrinsic: ExtrinsicMetadataV12; +} + +/** @name MetadataV13 */ +export interface MetadataV13 extends Struct { + readonly modules: Vec; + readonly extrinsic: ExtrinsicMetadataV13; +} + +/** @name MetadataV14 */ +export interface MetadataV14 extends Struct { + readonly lookup: PortableRegistry; + readonly pallets: Vec; + readonly extrinsic: ExtrinsicMetadataV14; + readonly type: SiLookupTypeId; +} + +/** @name MetadataV15 */ +export interface MetadataV15 extends Struct { + readonly lookup: PortableRegistry; + readonly pallets: Vec; + readonly extrinsic: ExtrinsicMetadataV15; + readonly type: SiLookupTypeId; + readonly apis: Vec; + readonly outerEnums: OuterEnums15; + readonly custom: CustomMetadata15; +} + +/** @name MetadataV16 */ +export interface MetadataV16 extends Struct { + readonly lookup: PortableRegistry; + readonly pallets: Vec; + readonly extrinsic: ExtrinsicMetadataV16; + readonly apis: Vec; + readonly outerEnums: OuterEnums15; + readonly custom: CustomMetadata15; +} + +/** @name MetadataV9 */ +export interface MetadataV9 extends Struct { + readonly modules: Vec; +} + +/** @name ModuleConstantMetadataV10 */ +export interface ModuleConstantMetadataV10 extends ModuleConstantMetadataV9 {} + +/** @name ModuleConstantMetadataV11 */ +export interface ModuleConstantMetadataV11 extends ModuleConstantMetadataV10 {} + +/** @name ModuleConstantMetadataV12 */ +export interface ModuleConstantMetadataV12 extends ModuleConstantMetadataV11 {} + +/** @name ModuleConstantMetadataV13 */ +export interface ModuleConstantMetadataV13 extends ModuleConstantMetadataV12 {} + +/** @name ModuleConstantMetadataV9 */ +export interface ModuleConstantMetadataV9 extends Struct { + readonly name: Text; + readonly type: Type; + readonly value: Bytes; + readonly docs: Vec; +} + +/** @name ModuleMetadataV10 */ +export interface ModuleMetadataV10 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option>; + readonly events: Option>; + readonly constants: Vec; + readonly errors: Vec; +} + +/** @name ModuleMetadataV11 */ +export interface ModuleMetadataV11 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option>; + readonly events: Option>; + readonly constants: Vec; + readonly errors: Vec; +} + +/** @name ModuleMetadataV12 */ +export interface ModuleMetadataV12 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option>; + readonly events: Option>; + readonly constants: Vec; + readonly errors: Vec; + readonly index: u8; +} + +/** @name ModuleMetadataV13 */ +export interface ModuleMetadataV13 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option>; + readonly events: Option>; + readonly constants: Vec; + readonly errors: Vec; + readonly index: u8; +} + +/** @name ModuleMetadataV9 */ +export interface ModuleMetadataV9 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option>; + readonly events: Option>; + readonly constants: Vec; + readonly errors: Vec; +} + +/** @name OpaqueMetadata */ +export interface OpaqueMetadata extends WrapperOpaque {} + +/** @name OuterEnums15 */ +export interface OuterEnums15 extends Struct { + readonly callType: SiLookupTypeId; + readonly eventType: SiLookupTypeId; + readonly errorType: SiLookupTypeId; +} + +/** @name PezpalletAssociatedTypeMetadataV16 */ +export interface PezpalletAssociatedTypeMetadataV16 extends Struct { + readonly name: Text; + readonly type: SiLookupTypeId; + readonly docs: Vec; +} + +/** @name PezpalletCallMetadataLatest */ +export interface PezpalletCallMetadataLatest extends PezpalletCallMetadataV16 {} + +/** @name PezpalletCallMetadataV14 */ +export interface PezpalletCallMetadataV14 extends Struct { + readonly type: SiLookupTypeId; +} + +/** @name PezpalletCallMetadataV16 */ +export interface PezpalletCallMetadataV16 extends Struct { + readonly type: SiLookupTypeId; + readonly deprecationInfo: EnumDeprecationInfoV16; +} + +/** @name PezpalletConstantMetadataLatest */ +export interface PezpalletConstantMetadataLatest extends PezpalletConstantMetadataV16 {} + +/** @name PezpalletConstantMetadataV14 */ +export interface PezpalletConstantMetadataV14 extends Struct { + readonly name: Text; + readonly type: SiLookupTypeId; + readonly value: Bytes; + readonly docs: Vec; +} + +/** @name PezpalletConstantMetadataV16 */ +export interface PezpalletConstantMetadataV16 extends Struct { + readonly name: Text; + readonly type: SiLookupTypeId; + readonly value: Bytes; + readonly docs: Vec; + readonly deprecationInfo: ItemDeprecationInfoV16; +} + +/** @name PezpalletErrorMetadataLatest */ +export interface PezpalletErrorMetadataLatest extends PezpalletErrorMetadataV16 {} + +/** @name PezpalletErrorMetadataV14 */ +export interface PezpalletErrorMetadataV14 extends Struct { + readonly type: SiLookupTypeId; +} + +/** @name PezpalletErrorMetadataV16 */ +export interface PezpalletErrorMetadataV16 extends Struct { + readonly type: SiLookupTypeId; + readonly deprecationInfo: EnumDeprecationInfoV16; +} + +/** @name PezpalletEventMetadataLatest */ +export interface PezpalletEventMetadataLatest extends PezpalletEventMetadataV16 {} + +/** @name PezpalletEventMetadataV14 */ +export interface PezpalletEventMetadataV14 extends Struct { + readonly type: SiLookupTypeId; +} + +/** @name PezpalletEventMetadataV16 */ +export interface PezpalletEventMetadataV16 extends Struct { + readonly type: SiLookupTypeId; + readonly deprecationInfo: EnumDeprecationInfoV16; +} + +/** @name PezpalletMetadataLatest */ +export interface PezpalletMetadataLatest extends PezpalletMetadataV16 {} + +/** @name PezpalletMetadataV14 */ +export interface PezpalletMetadataV14 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option; + readonly events: Option; + readonly constants: Vec; + readonly errors: Option; + readonly index: u8; +} + +/** @name PezpalletMetadataV15 */ +export interface PezpalletMetadataV15 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option; + readonly events: Option; + readonly constants: Vec; + readonly errors: Option; + readonly index: u8; + readonly docs: Vec; +} + +/** @name PezpalletMetadataV16 */ +export interface PezpalletMetadataV16 extends Struct { + readonly name: Text; + readonly storage: Option; + readonly calls: Option; + readonly events: Option; + readonly constants: Vec; + readonly errors: Option; + readonly associatedTypes: Vec; + readonly viewFunctions: Vec; + readonly index: u8; + readonly docs: Vec; + readonly deprecationInfo: ItemDeprecationInfoV16; +} + +/** @name PezpalletStorageMetadataLatest */ +export interface PezpalletStorageMetadataLatest extends PezpalletStorageMetadataV16 {} + +/** @name PezpalletStorageMetadataV14 */ +export interface PezpalletStorageMetadataV14 extends Struct { + readonly prefix: Text; + readonly items: Vec; +} + +/** @name PezpalletStorageMetadataV16 */ +export interface PezpalletStorageMetadataV16 extends Struct { + readonly prefix: Text; + readonly items: Vec; +} + +/** @name PezpalletViewFunctionMetadataV16 */ +export interface PezpalletViewFunctionMetadataV16 extends Struct { + readonly id: U8aFixed; + readonly name: Text; + readonly inputs: Vec; + readonly output: SiLookupTypeId; + readonly docs: Vec; + readonly deprecationInfo: ItemDeprecationInfoV16; +} + +/** @name PortableType */ +export interface PortableType extends PortableTypeV14 {} + +/** @name PortableTypeV14 */ +export interface PortableTypeV14 extends Struct { + readonly id: Si1LookupTypeId; + readonly type: Si1Type; +} + +/** @name RuntimeApiMetadataLatest */ +export interface RuntimeApiMetadataLatest extends RuntimeApiMetadataV16 {} + +/** @name RuntimeApiMetadataV15 */ +export interface RuntimeApiMetadataV15 extends Struct { + readonly name: Text; + readonly methods: Vec; + readonly docs: Vec; +} + +/** @name RuntimeApiMetadataV16 */ +export interface RuntimeApiMetadataV16 extends Struct { + readonly name: Text; + readonly methods: Vec; + readonly docs: Vec; + readonly version: Compact; + readonly deprecationInfo: ItemDeprecationInfoV16; +} + +/** @name RuntimeApiMethodMetadataV15 */ +export interface RuntimeApiMethodMetadataV15 extends Struct { + readonly name: Text; + readonly inputs: Vec; + readonly output: SiLookupTypeId; + readonly docs: Vec; +} + +/** @name RuntimeApiMethodMetadataV16 */ +export interface RuntimeApiMethodMetadataV16 extends Struct { + readonly name: Text; + readonly inputs: Vec; + readonly output: SiLookupTypeId; + readonly docs: Vec; + readonly deprecationInfo: ItemDeprecationInfoV16; +} + +/** @name RuntimeApiMethodParamMetadataV15 */ +export interface RuntimeApiMethodParamMetadataV15 extends Struct { + readonly name: Text; + readonly type: SiLookupTypeId; +} + +/** @name SignedExtensionMetadataLatest */ +export interface SignedExtensionMetadataLatest extends SignedExtensionMetadataV14 {} + +/** @name SignedExtensionMetadataV14 */ +export interface SignedExtensionMetadataV14 extends Struct { + readonly identifier: Text; + readonly type: SiLookupTypeId; + readonly additionalSigned: SiLookupTypeId; +} + +/** @name StorageEntryMetadataLatest */ +export interface StorageEntryMetadataLatest extends StorageEntryMetadataV16 {} + +/** @name StorageEntryMetadataV10 */ +export interface StorageEntryMetadataV10 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV10; + readonly type: StorageEntryTypeV10; + readonly fallback: Bytes; + readonly docs: Vec; +} + +/** @name StorageEntryMetadataV11 */ +export interface StorageEntryMetadataV11 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV11; + readonly type: StorageEntryTypeV11; + readonly fallback: Bytes; + readonly docs: Vec; +} + +/** @name StorageEntryMetadataV12 */ +export interface StorageEntryMetadataV12 extends StorageEntryMetadataV11 {} + +/** @name StorageEntryMetadataV13 */ +export interface StorageEntryMetadataV13 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV13; + readonly type: StorageEntryTypeV13; + readonly fallback: Bytes; + readonly docs: Vec; +} + +/** @name StorageEntryMetadataV14 */ +export interface StorageEntryMetadataV14 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV14; + readonly type: StorageEntryTypeV14; + readonly fallback: Bytes; + readonly docs: Vec; +} + +/** @name StorageEntryMetadataV16 */ +export interface StorageEntryMetadataV16 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV14; + readonly type: StorageEntryTypeV14; + readonly fallback: Bytes; + readonly docs: Vec; + readonly deprecationInfo: ItemDeprecationInfoV16; +} + +/** @name StorageEntryMetadataV9 */ +export interface StorageEntryMetadataV9 extends Struct { + readonly name: Text; + readonly modifier: StorageEntryModifierV9; + readonly type: StorageEntryTypeV9; + readonly fallback: Bytes; + readonly docs: Vec; +} + +/** @name StorageEntryModifierLatest */ +export interface StorageEntryModifierLatest extends StorageEntryModifierV14 {} + +/** @name StorageEntryModifierV10 */ +export interface StorageEntryModifierV10 extends StorageEntryModifierV9 {} + +/** @name StorageEntryModifierV11 */ +export interface StorageEntryModifierV11 extends StorageEntryModifierV10 {} + +/** @name StorageEntryModifierV12 */ +export interface StorageEntryModifierV12 extends StorageEntryModifierV11 {} + +/** @name StorageEntryModifierV13 */ +export interface StorageEntryModifierV13 extends StorageEntryModifierV12 {} + +/** @name StorageEntryModifierV14 */ +export interface StorageEntryModifierV14 extends StorageEntryModifierV13 {} + +/** @name StorageEntryModifierV9 */ +export interface StorageEntryModifierV9 extends Enum { + readonly isOptional: boolean; + readonly isDefault: boolean; + readonly isRequired: boolean; + readonly type: 'Optional' | 'Default' | 'Required'; +} + +/** @name StorageEntryTypeLatest */ +export interface StorageEntryTypeLatest extends StorageEntryTypeV14 {} + +/** @name StorageEntryTypeV10 */ +export interface StorageEntryTypeV10 extends Enum { + readonly isPlain: boolean; + readonly asPlain: Type; + readonly isMap: boolean; + readonly asMap: { + readonly hasher: StorageHasherV10; + readonly key: Type; + readonly value: Type; + readonly linked: bool; + } & Struct; + readonly isDoubleMap: boolean; + readonly asDoubleMap: { + readonly hasher: StorageHasherV10; + readonly key1: Type; + readonly key2: Type; + readonly value: Type; + readonly key2Hasher: StorageHasherV10; + } & Struct; + readonly type: 'Plain' | 'Map' | 'DoubleMap'; +} + +/** @name StorageEntryTypeV11 */ +export interface StorageEntryTypeV11 extends Enum { + readonly isPlain: boolean; + readonly asPlain: Type; + readonly isMap: boolean; + readonly asMap: { + readonly hasher: StorageHasherV11; + readonly key: Type; + readonly value: Type; + readonly linked: bool; + } & Struct; + readonly isDoubleMap: boolean; + readonly asDoubleMap: { + readonly hasher: StorageHasherV11; + readonly key1: Type; + readonly key2: Type; + readonly value: Type; + readonly key2Hasher: StorageHasherV11; + } & Struct; + readonly type: 'Plain' | 'Map' | 'DoubleMap'; +} + +/** @name StorageEntryTypeV12 */ +export interface StorageEntryTypeV12 extends StorageEntryTypeV11 {} + +/** @name StorageEntryTypeV13 */ +export interface StorageEntryTypeV13 extends Enum { + readonly isPlain: boolean; + readonly asPlain: Type; + readonly isMap: boolean; + readonly asMap: { + readonly hasher: StorageHasherV13; + readonly key: Type; + readonly value: Type; + readonly linked: bool; + } & Struct; + readonly isDoubleMap: boolean; + readonly asDoubleMap: { + readonly hasher: StorageHasherV13; + readonly key1: Type; + readonly key2: Type; + readonly value: Type; + readonly key2Hasher: StorageHasherV13; + } & Struct; + readonly isNMap: boolean; + readonly asNMap: { + readonly keyVec: Vec; + readonly hashers: Vec; + readonly value: Type; + } & Struct; + readonly type: 'Plain' | 'Map' | 'DoubleMap' | 'NMap'; +} + +/** @name StorageEntryTypeV14 */ +export interface StorageEntryTypeV14 extends Enum { + readonly isPlain: boolean; + readonly asPlain: SiLookupTypeId; + readonly isMap: boolean; + readonly asMap: { + readonly hashers: Vec; + readonly key: SiLookupTypeId; + readonly value: SiLookupTypeId; + } & Struct; + readonly type: 'Plain' | 'Map'; +} + +/** @name StorageEntryTypeV9 */ +export interface StorageEntryTypeV9 extends Enum { + readonly isPlain: boolean; + readonly asPlain: Type; + readonly isMap: boolean; + readonly asMap: { + readonly hasher: StorageHasherV9; + readonly key: Type; + readonly value: Type; + readonly linked: bool; + } & Struct; + readonly isDoubleMap: boolean; + readonly asDoubleMap: { + readonly hasher: StorageHasherV9; + readonly key1: Type; + readonly key2: Type; + readonly value: Type; + readonly key2Hasher: StorageHasherV9; + } & Struct; + readonly type: 'Plain' | 'Map' | 'DoubleMap'; +} + +/** @name StorageHasher */ +export interface StorageHasher extends StorageHasherV14 {} + +/** @name StorageHasherV10 */ +export interface StorageHasherV10 extends Enum { + readonly isBlake2128: boolean; + readonly isBlake2256: boolean; + readonly isBlake2128Concat: boolean; + readonly isTwox128: boolean; + readonly isTwox256: boolean; + readonly isTwox64Concat: boolean; + readonly type: 'Blake2128' | 'Blake2256' | 'Blake2128Concat' | 'Twox128' | 'Twox256' | 'Twox64Concat'; +} + +/** @name StorageHasherV11 */ +export interface StorageHasherV11 extends Enum { + readonly isBlake2128: boolean; + readonly isBlake2256: boolean; + readonly isBlake2128Concat: boolean; + readonly isTwox128: boolean; + readonly isTwox256: boolean; + readonly isTwox64Concat: boolean; + readonly isIdentity: boolean; + readonly type: 'Blake2128' | 'Blake2256' | 'Blake2128Concat' | 'Twox128' | 'Twox256' | 'Twox64Concat' | 'Identity'; +} + +/** @name StorageHasherV12 */ +export interface StorageHasherV12 extends StorageHasherV11 {} + +/** @name StorageHasherV13 */ +export interface StorageHasherV13 extends StorageHasherV12 {} + +/** @name StorageHasherV14 */ +export interface StorageHasherV14 extends StorageHasherV13 {} + +/** @name StorageHasherV9 */ +export interface StorageHasherV9 extends Enum { + readonly isBlake2128: boolean; + readonly isBlake2256: boolean; + readonly isTwox128: boolean; + readonly isTwox256: boolean; + readonly isTwox64Concat: boolean; + readonly type: 'Blake2128' | 'Blake2256' | 'Twox128' | 'Twox256' | 'Twox64Concat'; +} + +/** @name StorageMetadataV10 */ +export interface StorageMetadataV10 extends Struct { + readonly prefix: Text; + readonly items: Vec; +} + +/** @name StorageMetadataV11 */ +export interface StorageMetadataV11 extends Struct { + readonly prefix: Text; + readonly items: Vec; +} + +/** @name StorageMetadataV12 */ +export interface StorageMetadataV12 extends StorageMetadataV11 {} + +/** @name StorageMetadataV13 */ +export interface StorageMetadataV13 extends Struct { + readonly prefix: Text; + readonly items: Vec; +} + +/** @name StorageMetadataV9 */ +export interface StorageMetadataV9 extends Struct { + readonly prefix: Text; + readonly items: Vec; +} + +/** @name TransactionExtensionMetadataLatest */ +export interface TransactionExtensionMetadataLatest extends TransactionExtensionMetadataV16 {} + +/** @name TransactionExtensionMetadataV16 */ +export interface TransactionExtensionMetadataV16 extends Struct { + readonly identifier: Text; + readonly type: SiLookupTypeId; + readonly implicit: SiLookupTypeId; +} + +/** @name VariantDeprecationInfoV16 */ +export interface VariantDeprecationInfoV16 extends Enum { + readonly isDummyVariant: boolean; + readonly isDeprecatedWithoutNote: boolean; + readonly isDeprecated: boolean; + readonly asDeprecated: { + readonly note: Text; + readonly since: Option; + } & Struct; + readonly type: 'DummyVariant' | 'DeprecatedWithoutNote' | 'Deprecated'; +} + +export type PHANTOM_METADATA = 'metadata'; diff --git a/packages/types/src/interfaces/metadata/v10.ts b/packages/types/src/interfaces/metadata/v10.ts new file mode 100644 index 0000000..a1d962d --- /dev/null +++ b/packages/types/src/interfaces/metadata/v10.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v10: DefinitionsTypes = { + // v10 + ErrorMetadataV10: 'ErrorMetadataV9', + EventMetadataV10: 'EventMetadataV9', + FunctionArgumentMetadataV10: 'FunctionArgumentMetadataV9', + FunctionMetadataV10: 'FunctionMetadataV9', + MetadataV10: { + modules: 'Vec' + }, + ModuleConstantMetadataV10: 'ModuleConstantMetadataV9', + ModuleMetadataV10: { + name: 'Text', + storage: 'Option', + calls: 'Option>', + events: 'Option>', + constants: 'Vec', + errors: 'Vec' + }, + StorageEntryModifierV10: 'StorageEntryModifierV9', + StorageEntryMetadataV10: { + name: 'Text', + modifier: 'StorageEntryModifierV10', + type: 'StorageEntryTypeV10', + fallback: 'Bytes', + docs: 'Vec' + }, + StorageEntryTypeV10: { + _enum: { + Plain: 'Type', + Map: { + hasher: 'StorageHasherV10', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV10', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV10' + } + } + }, + StorageMetadataV10: { + prefix: 'Text', + items: 'Vec' + }, + StorageHasherV10: { + _enum: { + Blake2_128: null, // eslint-disable-line camelcase + Blake2_256: null, // eslint-disable-line camelcase + Blake2_128Concat: null, // eslint-disable-line camelcase + Twox128: null, + Twox256: null, + Twox64Concat: null + } + } +}; diff --git a/packages/types/src/interfaces/metadata/v11.ts b/packages/types/src/interfaces/metadata/v11.ts new file mode 100644 index 0000000..1ad67ea --- /dev/null +++ b/packages/types/src/interfaces/metadata/v11.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +import { AllHashers } from './hashers.js'; + +export const v11: DefinitionsTypes = { + // v11 + ErrorMetadataV11: 'ErrorMetadataV10', + EventMetadataV11: 'EventMetadataV10', + ExtrinsicMetadataV11: { + version: 'u8', + signedExtensions: 'Vec' + }, + FunctionArgumentMetadataV11: 'FunctionArgumentMetadataV10', + FunctionMetadataV11: 'FunctionMetadataV10', + MetadataV11: { + modules: 'Vec', + extrinsic: 'ExtrinsicMetadataV11' + }, + ModuleConstantMetadataV11: 'ModuleConstantMetadataV10', + ModuleMetadataV11: { + name: 'Text', + storage: 'Option', + calls: 'Option>', + events: 'Option>', + constants: 'Vec', + errors: 'Vec' + }, + StorageEntryModifierV11: 'StorageEntryModifierV10', + StorageEntryMetadataV11: { + name: 'Text', + modifier: 'StorageEntryModifierV11', + type: 'StorageEntryTypeV11', + fallback: 'Bytes', + docs: 'Vec' + }, + StorageEntryTypeV11: { + _enum: { + Plain: 'Type', + Map: { + hasher: 'StorageHasherV11', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV11', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV11' + } + } + }, + StorageMetadataV11: { + prefix: 'Text', + items: 'Vec' + }, + StorageHasherV11: { + _enum: AllHashers + } +}; diff --git a/packages/types/src/interfaces/metadata/v12.ts b/packages/types/src/interfaces/metadata/v12.ts new file mode 100644 index 0000000..d0551c5 --- /dev/null +++ b/packages/types/src/interfaces/metadata/v12.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v12: DefinitionsTypes = { + // v12 + ErrorMetadataV12: 'ErrorMetadataV11', + EventMetadataV12: 'EventMetadataV11', + ExtrinsicMetadataV12: 'ExtrinsicMetadataV11', + FunctionArgumentMetadataV12: 'FunctionArgumentMetadataV11', + FunctionMetadataV12: 'FunctionMetadataV11', + MetadataV12: { + modules: 'Vec', + extrinsic: 'ExtrinsicMetadataV12' + }, + ModuleConstantMetadataV12: 'ModuleConstantMetadataV11', + ModuleMetadataV12: { + name: 'Text', + storage: 'Option', + calls: 'Option>', + events: 'Option>', + constants: 'Vec', + errors: 'Vec', + index: 'u8' + }, + StorageEntryModifierV12: 'StorageEntryModifierV11', + StorageEntryMetadataV12: 'StorageEntryMetadataV11', + StorageEntryTypeV12: 'StorageEntryTypeV11', + StorageMetadataV12: 'StorageMetadataV11', + StorageHasherV12: 'StorageHasherV11' +}; diff --git a/packages/types/src/interfaces/metadata/v13.ts b/packages/types/src/interfaces/metadata/v13.ts new file mode 100644 index 0000000..8dfe786 --- /dev/null +++ b/packages/types/src/interfaces/metadata/v13.ts @@ -0,0 +1,66 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v13: DefinitionsTypes = { + // v13 + ErrorMetadataV13: 'ErrorMetadataV12', + EventMetadataV13: 'EventMetadataV12', + ExtrinsicMetadataV13: 'ExtrinsicMetadataV12', + FunctionArgumentMetadataV13: 'FunctionArgumentMetadataV12', + FunctionMetadataV13: 'FunctionMetadataV12', + MetadataV13: { + modules: 'Vec', + extrinsic: 'ExtrinsicMetadataV13' + }, + ModuleConstantMetadataV13: 'ModuleConstantMetadataV12', + ModuleMetadataV13: { + name: 'Text', + storage: 'Option', + calls: 'Option>', + events: 'Option>', + constants: 'Vec', + errors: 'Vec', + index: 'u8' + }, + StorageEntryModifierV13: 'StorageEntryModifierV12', + StorageEntryMetadataV13: { + name: 'Text', + modifier: 'StorageEntryModifierV13', + type: 'StorageEntryTypeV13', + fallback: 'Bytes', + docs: 'Vec' + }, + StorageEntryTypeV13: { + _enum: { + Plain: 'Type', + Map: { + hasher: 'StorageHasherV13', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV13', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV13' + }, + NMap: { + keyVec: 'Vec', + hashers: 'Vec', + value: 'Type' + } + } + }, + StorageMetadataV13: { + prefix: 'Text', + items: 'Vec' + }, + StorageHasherV13: 'StorageHasherV12' +}; diff --git a/packages/types/src/interfaces/metadata/v14.ts b/packages/types/src/interfaces/metadata/v14.ts new file mode 100644 index 0000000..c1e1178 --- /dev/null +++ b/packages/types/src/interfaces/metadata/v14.ts @@ -0,0 +1,102 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +import { Si1Variant } from '../scaleInfo/v1.js'; + +export const v14: DefinitionsTypes = { + // registry + PortableTypeV14: { + id: 'Si1LookupTypeId', + type: 'Si1Type' + }, + + // compatibility with earlier layouts, i.e. don't break previous users + ErrorMetadataV14: { + ...Si1Variant, + args: 'Vec' + }, + EventMetadataV14: { + ...Si1Variant, + args: 'Vec' + }, + FunctionArgumentMetadataV14: { + name: 'Text', + type: 'Type', + typeName: 'Option' + }, + FunctionMetadataV14: { + ...Si1Variant, + args: 'Vec' + }, + + // V14 + ExtrinsicMetadataV14: { + type: 'SiLookupTypeId', + version: 'u8', + signedExtensions: 'Vec' + }, + MetadataV14: { + lookup: 'PortableRegistry', + pallets: 'Vec', + extrinsic: 'ExtrinsicMetadataV14', + type: 'SiLookupTypeId' + }, + PezpalletCallMetadataV14: { + type: 'SiLookupTypeId' + }, + PezpalletConstantMetadataV14: { + name: 'Text', + type: 'SiLookupTypeId', + value: 'Bytes', + docs: 'Vec' + }, + PezpalletErrorMetadataV14: { + type: 'SiLookupTypeId' + }, + PezpalletEventMetadataV14: { + type: 'SiLookupTypeId' + }, + PezpalletMetadataV14: { + name: 'Text', + storage: 'Option', + calls: 'Option', + events: 'Option', + constants: 'Vec', + errors: 'Option', + index: 'u8' + }, + PezpalletStorageMetadataV14: { + prefix: 'Text', + // NOTE: Renamed from entries + items: 'Vec' + }, + SignedExtensionMetadataV14: { + identifier: 'Text', + type: 'SiLookupTypeId', + additionalSigned: 'SiLookupTypeId' + }, + StorageEntryMetadataV14: { + name: 'Text', + modifier: 'StorageEntryModifierV14', + type: 'StorageEntryTypeV14', + fallback: 'Bytes', + docs: 'Vec' + }, + StorageEntryModifierV14: 'StorageEntryModifierV13', + StorageEntryTypeV14: { + _enum: { + Plain: 'SiLookupTypeId', + Map: { + hashers: 'Vec', + key: 'SiLookupTypeId', // NOTE: Renamed from "keys" + value: 'SiLookupTypeId' + } + } + }, + StorageHasherV14: 'StorageHasherV13' +}; diff --git a/packages/types/src/interfaces/metadata/v15.ts b/packages/types/src/interfaces/metadata/v15.ts new file mode 100644 index 0000000..ad5e848 --- /dev/null +++ b/packages/types/src/interfaces/metadata/v15.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v15: DefinitionsTypes = { + // new/adjusted in v15 + CustomMetadata15: { + map: 'BTreeMap' + }, + CustomValueMetadata15: { + type: 'SiLookupTypeId', + value: 'Bytes' + }, + ExtrinsicMetadataV15: { + version: 'u8', + addressType: 'SiLookupTypeId', + callType: 'SiLookupTypeId', + signatureType: 'SiLookupTypeId', + extraType: 'SiLookupTypeId', + signedExtensions: 'Vec' + }, + OuterEnums15: { + callType: 'SiLookupTypeId', + eventType: 'SiLookupTypeId', + errorType: 'SiLookupTypeId' + }, + PezpalletMetadataV15: { + name: 'Text', + storage: 'Option', + calls: 'Option', + events: 'Option', + constants: 'Vec', + errors: 'Option', + index: 'u8', + docs: 'Vec' + }, + RuntimeApiMetadataV15: { + name: 'Text', + methods: 'Vec', + docs: 'Vec' + }, + RuntimeApiMethodMetadataV15: { + name: 'Text', + inputs: 'Vec', + output: 'SiLookupTypeId', + docs: 'Vec' + }, + RuntimeApiMethodParamMetadataV15: { + name: 'Text', + type: 'SiLookupTypeId' + }, + + // actual v15 definition + MetadataV15: { + lookup: 'PortableRegistry', + pallets: 'Vec', + extrinsic: 'ExtrinsicMetadataV15', + type: 'SiLookupTypeId', + apis: 'Vec', + outerEnums: 'OuterEnums15', + custom: 'CustomMetadata15' + } +}; diff --git a/packages/types/src/interfaces/metadata/v16.ts b/packages/types/src/interfaces/metadata/v16.ts new file mode 100644 index 0000000..baf8c6c --- /dev/null +++ b/packages/types/src/interfaces/metadata/v16.ts @@ -0,0 +1,168 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v16: DefinitionsTypes = { + // actual v16 definition + MetadataV16: { + lookup: 'PortableRegistry', + pallets: 'Vec', + extrinsic: 'ExtrinsicMetadataV16', + apis: 'Vec', + outerEnums: 'OuterEnums15', + custom: 'CustomMetadata15' + }, + + // ---- Pezpallet definitions ---- + PezpalletMetadataV16: { + name: 'Text', + storage: 'Option', + calls: 'Option', + events: 'Option', + constants: 'Vec', + errors: 'Option', + associatedTypes: 'Vec', + viewFunctions: 'Vec', + index: 'u8', + docs: 'Vec', + // Deprecation info + deprecationInfo: 'ItemDeprecationInfoV16' + }, + PezpalletStorageMetadataV16: { + prefix: 'Text', + items: 'Vec' + }, + StorageEntryMetadataV16: { + name: 'Text', + modifier: 'StorageEntryModifierV14', + type: 'StorageEntryTypeV14', + fallback: 'Bytes', + docs: 'Vec', + deprecationInfo: 'ItemDeprecationInfoV16' + }, + ItemDeprecationInfoV16: { + _enum: { + // Item is not deprecated. + NotDeprecated: 'Null', + // Item is fully deprecated without a note. + DeprecatedWithoutNote: 'Null', + // Item is fully deprecated with a note and an optional `since` field. + Deprecated: { + // Note explaining the deprecation + note: 'Text', + // Optional value for noting the version when the deprecation occurred. + since: 'Option' + } + } + }, + PezpalletCallMetadataV16: { + type: 'SiLookupTypeId', + // Deprecation status of the pallet call + deprecationInfo: 'EnumDeprecationInfoV16' + }, + // Deprecation information for enums in which specific variants can be deprecated. + // If the map is empty, then nothing is deprecated. + EnumDeprecationInfoV16: 'BTreeMap', + VariantDeprecationInfoV16: { + _enum: { + // Dummy variant, just here to force DeprecatedWithoutNote + // to have index 1 and Deprecated to have index 2 + DummyVariant: 'Null', + // Variant is deprecated without a note. + DeprecatedWithoutNote: 'Null', + // Variant is deprecated with a note and an optional `since` field. + Deprecated: { + // Note explaining the deprecation + note: 'Text', + // Optional value for noting the version when the deprecation occurred. + since: 'Option' + } + + } + }, + PezpalletEventMetadataV16: { + type: 'SiLookupTypeId', + // Deprecation info + deprecationInfo: 'EnumDeprecationInfoV16' + }, + PezpalletConstantMetadataV16: { + name: 'Text', + type: 'SiLookupTypeId', + value: 'Bytes', + docs: 'Vec', + // Deprecation info + deprecationInfo: 'ItemDeprecationInfoV16' + }, + PezpalletErrorMetadataV16: { + type: 'SiLookupTypeId', + // Deprecation info + deprecationInfo: 'EnumDeprecationInfoV16' + }, + PezpalletAssociatedTypeMetadataV16: { + name: 'Text', + type: 'SiLookupTypeId', + docs: 'Vec' + }, + PezpalletViewFunctionMetadataV16: { + id: '[u8; 32]', + // Method name. + name: 'Text', + // Method par ameters. + inputs: 'Vec', + // Method output. + output: 'SiLookupTypeId', + // Method documentation. + docs: 'Vec', + // Deprecation info + deprecationInfo: 'ItemDeprecationInfoV16' + }, + + // ---- Extrinsic definitions ---- + ExtrinsicMetadataV16: { + // Extrinsic versions supported by the runtime. + versions: 'Vec', + // The type of the address that signs the extrinsic + addressType: 'SiLookupTypeId', + // The type of the outermost Call enum. + callType: 'SiLookupTypeId', + // The type of the extrinsic's signature. + signatureType: 'SiLookupTypeId', + // A mapping of supported transaction extrinsic versions to their respective transaction extension indexes. + // + // For each supported version number, list the indexes, in order, of the extensions used. + transactionExtensionsByVersion: 'BTreeMap>>', + // The transaction extensions in the order they appear in the extrinsic. + transactionExtensions: 'Vec' + }, + TransactionExtensionMetadataV16: { + // The unique transaction extension identifier, which may be different from the type name. + identifier: 'Text', + // The type of the transaction extension, with the data to be included in the extrinsic. + type: 'SiLookupTypeId', + // The type of the implicit data, with the data to be included in the signed payload. + implicit: 'SiLookupTypeId' + }, + + // ---- Runtime Api definitions ---- + RuntimeApiMetadataV16: { + name: 'Text', + methods: 'Vec', + docs: 'Vec', + // Runtime API version. + version: 'Compact', + // Deprecation info + deprecationInfo: 'ItemDeprecationInfoV16' + }, + RuntimeApiMethodMetadataV16: { + name: 'Text', + inputs: 'Vec', + output: 'SiLookupTypeId', + docs: 'Vec', + // Deprecation info + deprecationInfo: 'ItemDeprecationInfoV16' + } +}; diff --git a/packages/types/src/interfaces/metadata/v9.ts b/packages/types/src/interfaces/metadata/v9.ts new file mode 100644 index 0000000..b82e0d3 --- /dev/null +++ b/packages/types/src/interfaces/metadata/v9.ts @@ -0,0 +1,87 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v9: DefinitionsTypes = { + // v9 + ErrorMetadataV9: { + name: 'Text', + docs: 'Vec' + }, + EventMetadataV9: { + name: 'Text', + args: 'Vec', + docs: 'Vec' + }, + FunctionArgumentMetadataV9: { + name: 'Text', + type: 'Type' + }, + FunctionMetadataV9: { + name: 'Text', + args: 'Vec', + docs: 'Vec' + }, + MetadataV9: { + modules: 'Vec' + }, + ModuleConstantMetadataV9: { + name: 'Text', + type: 'Type', + value: 'Bytes', + docs: 'Vec' + }, + ModuleMetadataV9: { + name: 'Text', + storage: 'Option', + calls: 'Option>', + events: 'Option>', + constants: 'Vec', + errors: 'Vec' + }, + StorageEntryMetadataV9: { + name: 'Text', + modifier: 'StorageEntryModifierV9', + type: 'StorageEntryTypeV9', + fallback: 'Bytes', + docs: 'Vec' + }, + StorageEntryModifierV9: { + _enum: ['Optional', 'Default', 'Required'] + }, + StorageEntryTypeV9: { + _enum: { + Plain: 'Type', + Map: { + hasher: 'StorageHasherV9', + key: 'Type', + value: 'Type', + linked: 'bool' + }, + DoubleMap: { + hasher: 'StorageHasherV9', + key1: 'Type', + key2: 'Type', + value: 'Type', + key2Hasher: 'StorageHasherV9' + } + } + }, + StorageHasherV9: { + _enum: { + Blake2_128: null, // eslint-disable-line camelcase + Blake2_256: null, // eslint-disable-line camelcase + Twox128: null, + Twox256: null, + Twox64Concat: null + } + }, + StorageMetadataV9: { + prefix: 'Text', + items: 'Vec' + } +}; diff --git a/packages/types/src/interfaces/mixnet/definitions.ts b/packages/types/src/interfaces/mixnet/definitions.ts new file mode 100644 index 0000000..cb17382 --- /dev/null +++ b/packages/types/src/interfaces/mixnet/definitions.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + Mixnode: { + externalAddresses: 'Vec', + kxPublic: '[u8; 32]', + peerId: '[u8; 32]' + }, + MixnodesErr: { + _enum: { + InsufficientRegistrations: { + min: 'u32', + num: 'u32' + } + } + }, + SessionPhase: { + _enum: ['CoverToCurrent', 'RequestsToCurrent', 'CoverToPrev', 'DisconnectFromPrev'] + }, + SessionStatus: { + currentIndex: 'u32', + phase: 'SessionPhase' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/mixnet/index.ts b/packages/types/src/interfaces/mixnet/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/mixnet/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/mixnet/runtime.ts b/packages/types/src/interfaces/mixnet/runtime.ts new file mode 100644 index 0000000..b12c33d --- /dev/null +++ b/packages/types/src/interfaces/mixnet/runtime.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + MixnetApi: [ + { + methods: { + current_mixnodes: { + description: 'Get the index and phase of the current session.', + params: [], + type: 'Result' + }, + maybe_register: { + description: 'Try to register a mixnode for the next session.', + params: [ + { + name: 'session_index', + type: 'u32' + }, + { + name: 'mixnode', + type: 'Mixnode' + } + ], + type: 'bool' + }, + prev_mixnodes: { + description: 'Get the index and phase of the current session.', + params: [], + type: 'Result' + }, + session_status: { + description: 'Get the index and phase of the current session.', + params: [], + type: 'SessionStatus' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/mixnet/types.ts b/packages/types/src/interfaces/mixnet/types.ts new file mode 100644 index 0000000..aa719cc --- /dev/null +++ b/packages/types/src/interfaces/mixnet/types.ts @@ -0,0 +1,38 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Struct, U8aFixed, Vec, u32 } from '@pezkuwi/types-codec'; + +/** @name Mixnode */ +export interface Mixnode extends Struct { + readonly externalAddresses: Vec; + readonly kxPublic: U8aFixed; + readonly peerId: U8aFixed; +} + +/** @name MixnodesErr */ +export interface MixnodesErr extends Enum { + readonly isInsufficientRegistrations: boolean; + readonly asInsufficientRegistrations: { + readonly min: u32; + readonly num: u32; + } & Struct; + readonly type: 'InsufficientRegistrations'; +} + +/** @name SessionPhase */ +export interface SessionPhase extends Enum { + readonly isCoverToCurrent: boolean; + readonly isRequestsToCurrent: boolean; + readonly isCoverToPrev: boolean; + readonly isDisconnectFromPrev: boolean; + readonly type: 'CoverToCurrent' | 'RequestsToCurrent' | 'CoverToPrev' | 'DisconnectFromPrev'; +} + +/** @name SessionStatus */ +export interface SessionStatus extends Struct { + readonly currentIndex: u32; + readonly phase: SessionPhase; +} + +export type PHANTOM_MIXNET = 'mixnet'; diff --git a/packages/types/src/interfaces/mmr/definitions.ts b/packages/types/src/interfaces/mmr/definitions.ts new file mode 100644 index 0000000..69c40e1 --- /dev/null +++ b/packages/types/src/interfaces/mmr/definitions.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + MmrBatchProof: { + leafIndices: 'Vec', + leafCount: 'MmrNodeIndex', + items: 'Vec' + }, + MmrEncodableOpaqueLeaf: 'Bytes', + MmrError: { + _enum: ['InvalidNumericOp', 'Push', 'GetRoot', 'Commit', 'GenerateProof', 'Verify', 'LeafNotFound', ' PezpalletNotIncluded', 'InvalidLeafIndex', 'InvalidBestKnownBlock'] + }, + MmrHash: 'Hash', + MmrLeafBatchProof: { + blockHash: 'BlockHash', + leaves: 'Bytes', + proof: 'Bytes' + }, + MmrLeafIndex: 'u64', + MmrLeafProof: { + blockHash: 'BlockHash', + leaf: 'Bytes', + proof: 'Bytes' + }, + MmrNodeIndex: 'u64', + MmrProof: { + leafIndex: 'MmrLeafIndex', + leafCount: 'MmrNodeIndex', + items: 'Vec' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/mmr/index.ts b/packages/types/src/interfaces/mmr/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/mmr/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/mmr/rpc.ts b/packages/types/src/interfaces/mmr/rpc.ts new file mode 100644 index 0000000..0af4ffe --- /dev/null +++ b/packages/types/src/interfaces/mmr/rpc.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + generateProof: { + description: 'Generate MMR proof for the given block numbers.', + params: [ + { + name: 'blockNumbers', + type: 'Vec' + }, + { + isOptional: true, + name: 'bestKnownBlockNumber', + type: 'u64' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'MmrLeafBatchProof' + }, + + root: { + description: 'Get the MMR root hash for the current best block.', + params: [ + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'MmrHash' + }, + + verifyProof: { + description: 'Verify an MMR proof', + params: [ + { + name: 'proof', + type: 'MmrLeafBatchProof' + } + ], + type: 'bool' + }, + + verifyProofStateless: { + description: 'Verify an MMR proof statelessly given an mmr_root', + params: [ + { + name: 'root', + type: 'MmrHash' + }, + { + name: 'proof', + type: 'MmrLeafBatchProof' + } + ], + type: 'bool' + } +}; diff --git a/packages/types/src/interfaces/mmr/runtime.ts b/packages/types/src/interfaces/mmr/runtime.ts new file mode 100644 index 0000000..a71f14d --- /dev/null +++ b/packages/types/src/interfaces/mmr/runtime.ts @@ -0,0 +1,168 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionCall, DefinitionsCall } from '../../types/index.js'; + +const MMR_V2: Record = { + generate_proof: { + description: 'Generate MMR proof for the given block numbers.', + params: [ + { + name: 'blockNumbers', + type: 'Vec' + }, + { + name: 'bestKnownBlockNumber', + type: 'Option' + } + ], + type: 'Result<(Vec, MmrBatchProof), MmrError>' + }, + mmr_leaf_count: { + description: 'Return the number of MMR blocks in the chain.', + params: [], + type: 'Result' + }, + mmr_root: { + description: 'Return the on-chain MMR root hash.', + params: [], + type: 'Result' + }, + verify_proof: { + description: 'Verify MMR proof against on-chain MMR.', + params: [ + { + name: 'leaves', + type: 'Vec' + }, + { + name: 'proof', + type: 'MmrBatchProof' + } + ], + type: 'Result<(), MmrError>' + }, + verify_proof_stateless: { + description: 'Verify MMR proof against given root hash.', + params: [ + { + name: 'root', + type: 'Hash' + }, + { + name: 'leaves', + type: 'Vec' + }, + { + name: 'proof', + type: 'MmrBatchProof' + } + ], + type: 'Result<(), MmrError>' + } +}; + +const MMR_V1: Record = { + generate_batch_proof: { + description: 'Generate MMR proof for a series of leaves under given indices.', + params: [ + { + name: 'leafIndices', + type: 'Vec' + } + ], + type: 'Result<(Vec, MmrBatchProof), MmrError>' + }, + generate_proof: { + description: 'Generate MMR proof for a leaf under given index.', + params: [ + { + name: 'leafIndex', + type: 'MmrLeafIndex' + } + ], + type: 'Result<(MmrEncodableOpaqueLeaf, MmrProof), MmrError>' + }, + mmr_root: { + description: 'Return the on-chain MMR root hash.', + params: [], + type: 'Result' + }, + verify_batch_proof: { + description: 'Verify MMR proof against on-chain MMR for a batch of leaves.', + params: [ + { + name: 'leaves', + type: 'Vec' + }, + { + name: 'proof', + type: 'MmrBatchProof' + } + ], + type: 'Result<(), MmrError>' + }, + verify_batch_proof_stateless: { + description: 'Verify MMR proof against given root hash or a batch of leaves.', + params: [ + { + name: 'root', + type: 'Hash' + }, + { + name: 'leaves', + type: 'Vec' + }, + { + name: 'proof', + type: 'MmrBatchProof' + } + ], + type: 'Result<(), MmrError>' + }, + verify_proof: { + description: 'Verify MMR proof against on-chain MMR.', + params: [ + { + name: 'leaf', + type: 'MmrEncodableOpaqueLeaf' + }, + { + name: 'proof', + type: 'MmrProof' + } + ], + type: 'Result<(), MmrError>' + }, + verify_proof_stateless: { + description: 'Verify MMR proof against given root hash.', + params: [ + { + name: 'root', + type: 'Hash' + }, + { + name: 'leaf', + type: 'MmrEncodableOpaqueLeaf' + }, + { + name: 'proof', + type: 'MmrProof' + } + ], + type: 'Result<(), MmrError>' + } +}; + +export const runtime: DefinitionsCall = { + MmrApi: [ + { + methods: MMR_V2, + version: 2 + }, + { + methods: MMR_V1, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/mmr/types.ts b/packages/types/src/interfaces/mmr/types.ts new file mode 100644 index 0000000..7e057b4 --- /dev/null +++ b/packages/types/src/interfaces/mmr/types.ts @@ -0,0 +1,63 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Struct, Vec, u64 } from '@pezkuwi/types-codec'; +import type { BlockHash } from '@pezkuwi/types/interfaces/chain'; +import type { Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name MmrBatchProof */ +export interface MmrBatchProof extends Struct { + readonly leafIndices: Vec; + readonly leafCount: MmrNodeIndex; + readonly items: Vec; +} + +/** @name MmrEncodableOpaqueLeaf */ +export interface MmrEncodableOpaqueLeaf extends Bytes {} + +/** @name MmrError */ +export interface MmrError extends Enum { + readonly isInvalidNumericOp: boolean; + readonly isPush: boolean; + readonly isGetRoot: boolean; + readonly isCommit: boolean; + readonly isGenerateProof: boolean; + readonly isVerify: boolean; + readonly isLeafNotFound: boolean; + readonly isPezpalletNotIncluded: boolean; + readonly isInvalidLeafIndex: boolean; + readonly isInvalidBestKnownBlock: boolean; + readonly type: 'InvalidNumericOp' | 'Push' | 'GetRoot' | 'Commit' | 'GenerateProof' | 'Verify' | 'LeafNotFound' | 'PezpalletNotIncluded' | 'InvalidLeafIndex' | 'InvalidBestKnownBlock'; +} + +/** @name MmrHash */ +export interface MmrHash extends Hash {} + +/** @name MmrLeafBatchProof */ +export interface MmrLeafBatchProof extends Struct { + readonly blockHash: BlockHash; + readonly leaves: Bytes; + readonly proof: Bytes; +} + +/** @name MmrLeafIndex */ +export interface MmrLeafIndex extends u64 {} + +/** @name MmrLeafProof */ +export interface MmrLeafProof extends Struct { + readonly blockHash: BlockHash; + readonly leaf: Bytes; + readonly proof: Bytes; +} + +/** @name MmrNodeIndex */ +export interface MmrNodeIndex extends u64 {} + +/** @name MmrProof */ +export interface MmrProof extends Struct { + readonly leafIndex: MmrLeafIndex; + readonly leafCount: MmrNodeIndex; + readonly items: Vec; +} + +export type PHANTOM_MMR = 'mmr'; diff --git a/packages/types/src/interfaces/nfts/definitions.ts b/packages/types/src/interfaces/nfts/definitions.ts new file mode 100644 index 0000000..d5457d9 --- /dev/null +++ b/packages/types/src/interfaces/nfts/definitions.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + NftCollectionId: 'u32', + NftItemId: 'u32' + } +} as Definitions; diff --git a/packages/types/src/interfaces/nfts/index.ts b/packages/types/src/interfaces/nfts/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/nfts/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/nfts/runtime.ts b/packages/types/src/interfaces/nfts/runtime.ts new file mode 100644 index 0000000..64f4c5f --- /dev/null +++ b/packages/types/src/interfaces/nfts/runtime.ts @@ -0,0 +1,110 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + NftsApi: [ + { + methods: { + attribute: { + description: 'An attribute', + params: [ + { + name: 'collection', + type: 'NftCollectionId' + }, + { + name: 'item', + type: 'NftItemId' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Option' + }, + collection_attribute: { + description: 'A collection attribute', + params: [ + { + name: 'collection', + type: 'NftCollectionId' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Option' + }, + collection_owner: { + description: 'A collection owner', + params: [ + { + name: 'collection', + type: 'NftCollectionId' + } + ], + type: 'Option' + }, + custom_attribute: { + description: 'A custom attribute', + params: [ + { + name: 'account', + type: 'AccountId' + }, + { + name: 'collection', + type: 'NftCollectionId' + }, + { + name: 'item', + type: 'NftItemId' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Option' + }, + owner: { + description: 'Collection owner', + params: [ + { + name: 'collection', + type: 'NftCollectionId' + }, + { + name: 'item', + type: 'NftItemId' + } + ], + type: 'Option' + }, + system_attribute: { + description: 'System attribute', + params: [ + { + name: 'collection', + type: 'NftCollectionId' + }, + { + name: 'item', + type: 'NftItemId' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Option' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/nfts/types.ts b/packages/types/src/interfaces/nfts/types.ts new file mode 100644 index 0000000..72ccb4e --- /dev/null +++ b/packages/types/src/interfaces/nfts/types.ts @@ -0,0 +1,12 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { u32 } from '@pezkuwi/types-codec'; + +/** @name NftCollectionId */ +export interface NftCollectionId extends u32 {} + +/** @name NftItemId */ +export interface NftItemId extends u32 {} + +export type PHANTOM_NFTS = 'nfts'; diff --git a/packages/types/src/interfaces/nimbus/definitions.ts b/packages/types/src/interfaces/nimbus/definitions.ts new file mode 100644 index 0000000..23a6a43 --- /dev/null +++ b/packages/types/src/interfaces/nimbus/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/nimbus/index.ts b/packages/types/src/interfaces/nimbus/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/nimbus/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/nimbus/runtime.ts b/packages/types/src/interfaces/nimbus/runtime.ts new file mode 100644 index 0000000..f7984b4 --- /dev/null +++ b/packages/types/src/interfaces/nimbus/runtime.ts @@ -0,0 +1,77 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + // deprecated, the NimbusApi is current - this is for backwards compat + AuthorFilterAPI: [ + { + methods: { + can_author: { + description: 'The runtime api used to predict whether an author will be eligible in the given slot', + params: [ + { + name: 'author', + type: 'AccountId' + }, + { + name: 'relayParent', + type: 'u32' + }, + { + name: 'parentHeader', + type: 'Header' + } + ], + type: 'bool' + } + }, + version: 2 + }, + { + methods: { + can_author: { + description: 'The runtime api used to predict whether an author will be eligible in the given slot', + params: [ + { + name: 'author', + type: 'AccountId' + }, + { + name: 'relayParent', + type: 'u32' + } + ], + type: 'bool' + } + }, + version: 1 + } + ], + NimbusApi: [ + { + methods: { + can_author: { + description: 'The runtime api used to predict whether a Nimbus author will be eligible in the given slot', + params: [ + { + name: 'author', + type: 'AccountId' + }, + { + name: 'relayParent', + type: 'u32' + }, + { + name: 'parentHeader', + type: 'Header' + } + ], + type: 'bool' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/nimbus/types.ts b/packages/types/src/interfaces/nimbus/types.ts new file mode 100644 index 0000000..b7b11e2 --- /dev/null +++ b/packages/types/src/interfaces/nimbus/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_NIMBUS = 'nimbus'; diff --git a/packages/types/src/interfaces/nompools/definitions.ts b/packages/types/src/interfaces/nompools/definitions.ts new file mode 100644 index 0000000..fe496af --- /dev/null +++ b/packages/types/src/interfaces/nompools/definitions.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + NpApiError: { + _enum: ['MemberNotFound', 'OverflowInPendingRewards'] + }, + NpPoolId: 'u32' + } +} as Definitions; diff --git a/packages/types/src/interfaces/nompools/index.ts b/packages/types/src/interfaces/nompools/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/nompools/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/nompools/runtime.ts b/packages/types/src/interfaces/nompools/runtime.ts new file mode 100644 index 0000000..084a8e7 --- /dev/null +++ b/packages/types/src/interfaces/nompools/runtime.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + NominationPoolsApi: [ + { + methods: { + balance_to_points: { + description: 'Returns the equivalent points of `new_funds` for a given pool.', + params: [ + { + name: 'poolId', + type: 'NpPoolId' + }, + { + name: 'newFunds', + type: 'Balance' + } + ], + type: 'Balance' + }, + pending_rewards: { + description: 'Returns the pending rewards for the given member.', + params: [ + { + name: 'member', + type: 'AccountId' + } + ], + type: 'Balance' + }, + points_to_balance: { + description: 'Returns the equivalent balance of `points` for a given pool.', + params: [ + { + name: 'poolId', + type: 'NpPoolId' + }, + { + name: 'points', + type: 'Balance' + } + ], + type: 'Balance' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/nompools/types.ts b/packages/types/src/interfaces/nompools/types.ts new file mode 100644 index 0000000..cbd7ff3 --- /dev/null +++ b/packages/types/src/interfaces/nompools/types.ts @@ -0,0 +1,16 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, u32 } from '@pezkuwi/types-codec'; + +/** @name NpApiError */ +export interface NpApiError extends Enum { + readonly isMemberNotFound: boolean; + readonly isOverflowInPendingRewards: boolean; + readonly type: 'MemberNotFound' | 'OverflowInPendingRewards'; +} + +/** @name NpPoolId */ +export interface NpPoolId extends u32 {} + +export type PHANTOM_NOMPOOLS = 'nompools'; diff --git a/packages/types/src/interfaces/offchain/definitions.spec.ts b/packages/types/src/interfaces/offchain/definitions.spec.ts new file mode 100644 index 0000000..48bc2a8 --- /dev/null +++ b/packages/types/src/interfaces/offchain/definitions.spec.ts @@ -0,0 +1,21 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +describe('offchain definitions', (): void => { + const registry = new TypeRegistry(); + + describe('StorageKind', (): void => { + it('has the correct indexes', (): void => { + expect(registry.createType('StorageKind').index).toEqual(1); + expect(registry.createType('StorageKind', 'LOCAL').index).toEqual(2); + }); + + it('has a correct JSON for the type', (): void => { + expect(registry.createType('StorageKind').toJSON()).toEqual('PERSISTENT'); + }); + }); +}); diff --git a/packages/types/src/interfaces/offchain/definitions.ts b/packages/types/src/interfaces/offchain/definitions.ts new file mode 100644 index 0000000..07b0687 --- /dev/null +++ b/packages/types/src/interfaces/offchain/definitions.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + StorageKind: { + _enum: { + PERSISTENT: 1, + LOCAL: 2 + } + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/offchain/index.ts b/packages/types/src/interfaces/offchain/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/offchain/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/offchain/rpc.ts b/packages/types/src/interfaces/offchain/rpc.ts new file mode 100644 index 0000000..2e7fdeb --- /dev/null +++ b/packages/types/src/interfaces/offchain/rpc.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + localStorageClear: { + description: 'Clear offchain local storage under given key and prefix', + isUnsafe: true, + params: [ + { + name: 'kind', + type: 'StorageKind' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Null' + }, + localStorageGet: { + description: 'Get offchain local storage under given key and prefix', + isUnsafe: true, + params: [ + { + name: 'kind', + type: 'StorageKind' + }, + { + name: 'key', + type: 'Bytes' + } + ], + type: 'Option' + }, + localStorageSet: { + description: 'Set offchain local storage under given key and prefix', + isUnsafe: true, + params: [ + { + name: 'kind', + type: 'StorageKind' + }, + { + name: 'key', + type: 'Bytes' + }, + { + name: 'value', + type: 'Bytes' + } + ], + type: 'Null' + } +}; diff --git a/packages/types/src/interfaces/offchain/runtime.ts b/packages/types/src/interfaces/offchain/runtime.ts new file mode 100644 index 0000000..2d0556d --- /dev/null +++ b/packages/types/src/interfaces/offchain/runtime.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + OffchainWorkerApi: [ + { + methods: { + offchain_worker: { + description: 'Starts the off-chain task for given block header.', + params: [ + { + name: 'header', + type: 'Header' + } + ], + type: 'Null' + } + }, + version: 2 + }, + { + methods: { + offchain_worker: { + description: 'Starts the off-chain task for given block header.', + params: [ + { + name: 'number', + type: 'BlockNumber' + } + ], + type: 'Null' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/offchain/types.ts b/packages/types/src/interfaces/offchain/types.ts new file mode 100644 index 0000000..459cc5d --- /dev/null +++ b/packages/types/src/interfaces/offchain/types.ts @@ -0,0 +1,13 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum } from '@pezkuwi/types-codec'; + +/** @name StorageKind */ +export interface StorageKind extends Enum { + readonly isPersistent: boolean; + readonly isLocal: boolean; + readonly type: 'Persistent' | 'Local'; +} + +export type PHANTOM_OFFCHAIN = 'offchain'; diff --git a/packages/types/src/interfaces/offences/definitions.ts b/packages/types/src/interfaces/offences/definitions.ts new file mode 100644 index 0000000..57d061d --- /dev/null +++ b/packages/types/src/interfaces/offences/definitions.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + DeferredOffenceOf: '(Vec, Vec, SessionIndex)', + Kind: '[u8; 16]', + OffenceDetails: { + offender: 'Offender', + reporters: 'Vec' + }, + Offender: 'IdentificationTuple', + OpaqueTimeSlot: 'Bytes', + ReportIdOf: 'Hash', + Reporter: 'AccountId' + } +} as Definitions; diff --git a/packages/types/src/interfaces/offences/index.ts b/packages/types/src/interfaces/offences/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/offences/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/offences/types.ts b/packages/types/src/interfaces/offences/types.ts new file mode 100644 index 0000000..2c6a68f --- /dev/null +++ b/packages/types/src/interfaces/offences/types.ts @@ -0,0 +1,33 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Struct, U8aFixed, Vec } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, Hash, Perbill } from '@pezkuwi/types/interfaces/runtime'; +import type { IdentificationTuple, SessionIndex } from '@pezkuwi/types/interfaces/session'; + +/** @name DeferredOffenceOf */ +export interface DeferredOffenceOf extends ITuple<[Vec, Vec, SessionIndex]> {} + +/** @name Kind */ +export interface Kind extends U8aFixed {} + +/** @name OffenceDetails */ +export interface OffenceDetails extends Struct { + readonly offender: Offender; + readonly reporters: Vec; +} + +/** @name Offender */ +export interface Offender extends IdentificationTuple {} + +/** @name OpaqueTimeSlot */ +export interface OpaqueTimeSlot extends Bytes {} + +/** @name Reporter */ +export interface Reporter extends AccountId {} + +/** @name ReportIdOf */ +export interface ReportIdOf extends Hash {} + +export type PHANTOM_OFFENCES = 'offences'; diff --git a/packages/types/src/interfaces/ormlOracle/definitions.ts b/packages/types/src/interfaces/ormlOracle/definitions.ts new file mode 100644 index 0000000..23a6a43 --- /dev/null +++ b/packages/types/src/interfaces/ormlOracle/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/ormlOracle/index.ts b/packages/types/src/interfaces/ormlOracle/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/ormlOracle/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/ormlOracle/runtime.ts b/packages/types/src/interfaces/ormlOracle/runtime.ts new file mode 100644 index 0000000..a538376 --- /dev/null +++ b/packages/types/src/interfaces/ormlOracle/runtime.ts @@ -0,0 +1,48 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + // https://github.com/open-web3-stack/open-runtime-module-library/blob/b57f88b39cd547e2fb51727d8bb9bcc64fddf8b5/oracle/rpc/runtime-api/src/lib.rs#L12-L21 + OracleApi: [ + { + methods: { + get_all_values: { + description: 'Retrieves all values', + params: [ + { + name: 'providerId', + // This is a Codec type + type: 'Raw' + } + ], + // This won't actually work as expected - since we have + // no information about the actual Raw sizes, we cannot + // handle it in this format (it would need an override + // for the specific Codec). So return the Raw value. + // type: 'Vec<(Raw, Option)>' + type: 'Raw' + }, + get_value: { + description: 'Retrieves a single value', + params: [ + { + name: 'providerId', + // This is a Codec type + type: 'Raw' + }, + { + name: 'key', + // This is a Codec type + type: 'Raw' + } + ], + // This is an Option type + type: 'Option' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/ormlOracle/types.ts b/packages/types/src/interfaces/ormlOracle/types.ts new file mode 100644 index 0000000..a81f295 --- /dev/null +++ b/packages/types/src/interfaces/ormlOracle/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_ORMLORACLE = 'ormlOracle'; diff --git a/packages/types/src/interfaces/ormlTokens/definitions.ts b/packages/types/src/interfaces/ormlTokens/definitions.ts new file mode 100644 index 0000000..23a6a43 --- /dev/null +++ b/packages/types/src/interfaces/ormlTokens/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/ormlTokens/index.ts b/packages/types/src/interfaces/ormlTokens/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/ormlTokens/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/ormlTokens/runtime.ts b/packages/types/src/interfaces/ormlTokens/runtime.ts new file mode 100644 index 0000000..b7f27c8 --- /dev/null +++ b/packages/types/src/interfaces/ormlTokens/runtime.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + // https://github.com/open-web3-stack/open-runtime-module-library/blob/b57f88b39cd547e2fb51727d8bb9bcc64fddf8b5/tokens/rpc/runtime-api/src/lib.rs#L11-L18 + TokensApi: [ + { + methods: { + query_existential_deposit: { + description: 'Query the existential amount for a specific currency', + params: [ + { + name: 'currencyId', + // This is CurrencyId, as per the return value, we are unsure + // if this is specialized and/or global to the chain or not + type: 'Raw' + } + ], + // This is Balance - since we don't understand enough about the way + // in which this is used, we default to u128 here (it certainly could + // be a specialized type that doesn't map to the on-chain Balance) + type: 'u128' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/ormlTokens/types.ts b/packages/types/src/interfaces/ormlTokens/types.ts new file mode 100644 index 0000000..51387e5 --- /dev/null +++ b/packages/types/src/interfaces/ormlTokens/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_ORMLTOKENS = 'ormlTokens'; diff --git a/packages/types/src/interfaces/payment/definitions.ts b/packages/types/src/interfaces/payment/definitions.ts new file mode 100644 index 0000000..64d62dd --- /dev/null +++ b/packages/types/src/interfaces/payment/definitions.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + FeeDetails: { + inclusionFee: 'Option' + // skipped in serde + // tip: 'Balance' + }, + InclusionFee: { + baseFee: 'Balance', + lenFee: 'Balance', + adjustedWeightFee: 'Balance' + }, + RuntimeDispatchInfo: { + weight: 'Weight', + class: 'DispatchClass', + partialFee: 'Balance' + }, + RuntimeDispatchInfoV1: { + weight: 'WeightV1', + class: 'DispatchClass', + partialFee: 'Balance' + }, + RuntimeDispatchInfoV2: { + weight: 'WeightV2', + class: 'DispatchClass', + partialFee: 'Balance' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/payment/index.ts b/packages/types/src/interfaces/payment/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/payment/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/payment/rpc.ts b/packages/types/src/interfaces/payment/rpc.ts new file mode 100644 index 0000000..4b72d80 --- /dev/null +++ b/packages/types/src/interfaces/payment/rpc.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + queryFeeDetails: { + // NOTE: Not deprecated (yet) in Bizinikiwi, but it is the intent to do so + deprecated: 'Use `api.call.transactionPaymentApi.queryFeeDetails` instead', + description: 'Query the detailed fee of a given encoded extrinsic', + params: [ + { + name: 'extrinsic', + type: 'Bytes' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'FeeDetails' + }, + queryInfo: { + // NOTE: Not deprecated (yet) in Bizinikiwi, but it is the intent to do so + deprecated: 'Use `api.call.transactionPaymentApi.queryInfo` instead', + description: 'Retrieves the fee information for an encoded extrinsic', + params: [ + { + name: 'extrinsic', + type: 'Bytes' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + // NOTE: Stuck on V1 forever (at least for the time being) + type: 'RuntimeDispatchInfoV1' + } +}; diff --git a/packages/types/src/interfaces/payment/runtime.ts b/packages/types/src/interfaces/payment/runtime.ts new file mode 100644 index 0000000..dc1641b --- /dev/null +++ b/packages/types/src/interfaces/payment/runtime.ts @@ -0,0 +1,186 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionCall, DefinitionsCall } from '../../types/index.js'; + +const V1_TO_V4_SHARED_PAY: Record = { + query_fee_details: { + description: 'The transaction fee details', + params: [ + { + name: 'uxt', + type: 'Extrinsic' + }, + { + name: 'len', + type: 'u32' + } + ], + type: 'FeeDetails' + } +}; + +const V1_TO_V3_SHARED_CALL: Record = { + query_call_fee_details: { + description: 'The call fee details', + params: [ + { + name: 'call', + type: 'Call' + }, + { + name: 'len', + type: 'u32' + } + ], + type: 'FeeDetails' + } +}; + +const V2_TO_V4_SHARED_PAY: Record = { + query_info: { + description: 'The transaction info', + params: [ + { + name: 'uxt', + type: 'Extrinsic' + }, + { + name: 'len', + type: 'u32' + } + ], + type: 'RuntimeDispatchInfo' + } +}; + +const V2_V3_SHARED_CALL: Record = { + query_call_info: { + description: 'The call info', + params: [ + { + name: 'call', + type: 'Call' + }, + { + name: 'len', + type: 'u32' + } + ], + type: 'RuntimeDispatchInfo' + } +}; + +const V3_SHARED_PAY_CALL: Record = { + query_length_to_fee: { + description: 'Query the output of the current LengthToFee given some input', + params: [ + { + name: 'length', + type: 'u32' + } + ], + type: 'Balance' + }, + query_weight_to_fee: { + description: 'Query the output of the current WeightToFee given some input', + params: [ + { + name: 'weight', + type: 'Weight' + } + ], + type: 'Balance' + } +}; + +export const runtime: DefinitionsCall = { + TransactionPaymentApi: [ + { + // V4 is equivalent to V3 (V4 just dropped all V1 references) + methods: { + ...V3_SHARED_PAY_CALL, + ...V2_TO_V4_SHARED_PAY, + ...V1_TO_V4_SHARED_PAY + }, + version: 4 + }, + { + methods: { + ...V3_SHARED_PAY_CALL, + ...V2_TO_V4_SHARED_PAY, + ...V1_TO_V4_SHARED_PAY + }, + version: 3 + }, + { + methods: { + ...V2_TO_V4_SHARED_PAY, + ...V1_TO_V4_SHARED_PAY + }, + version: 2 + }, + { + methods: { + query_info: { + description: 'The transaction info', + params: [ + { + name: 'uxt', + type: 'Extrinsic' + }, + { + name: 'len', + type: 'u32' + } + ], + // NOTE: _Should_ be V1 (as per current Bizinikiwi), however the interface was + // changed mid-flight between versions. So we have some of each depending on + // runtime. (We do detect the weight type, so correct) + type: 'RuntimeDispatchInfo' + }, + ...V1_TO_V4_SHARED_PAY + }, + version: 1 + } + ], + TransactionPaymentCallApi: [ + { + methods: { + ...V3_SHARED_PAY_CALL, + ...V2_V3_SHARED_CALL, + ...V1_TO_V3_SHARED_CALL + }, + version: 3 + }, + { + methods: { + ...V2_V3_SHARED_CALL, + ...V1_TO_V3_SHARED_CALL + }, + version: 2 + }, + { + methods: { + CALL: { + description: 'The call info', + params: [ + { + name: 'call', + type: 'Call' + }, + { + name: 'len', + type: 'u32' + } + ], + // NOTE: As per the above comment, the below is correct according to Bizinikiwi, but + // _may_ yield fallback decoding on some versions of the runtime + type: 'RuntimeDispatchInfo' + }, + ...V1_TO_V3_SHARED_CALL + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/payment/types.ts b/packages/types/src/interfaces/payment/types.ts new file mode 100644 index 0000000..d83a66c --- /dev/null +++ b/packages/types/src/interfaces/payment/types.ts @@ -0,0 +1,41 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Option, Struct } from '@pezkuwi/types-codec'; +import type { Balance, Weight, WeightV1, WeightV2 } from '@pezkuwi/types/interfaces/runtime'; +import type { DispatchClass } from '@pezkuwi/types/interfaces/system'; + +/** @name FeeDetails */ +export interface FeeDetails extends Struct { + readonly inclusionFee: Option; +} + +/** @name InclusionFee */ +export interface InclusionFee extends Struct { + readonly baseFee: Balance; + readonly lenFee: Balance; + readonly adjustedWeightFee: Balance; +} + +/** @name RuntimeDispatchInfo */ +export interface RuntimeDispatchInfo extends Struct { + readonly weight: Weight; + readonly class: DispatchClass; + readonly partialFee: Balance; +} + +/** @name RuntimeDispatchInfoV1 */ +export interface RuntimeDispatchInfoV1 extends Struct { + readonly weight: WeightV1; + readonly class: DispatchClass; + readonly partialFee: Balance; +} + +/** @name RuntimeDispatchInfoV2 */ +export interface RuntimeDispatchInfoV2 extends Struct { + readonly weight: WeightV2; + readonly class: DispatchClass; + readonly partialFee: Balance; +} + +export type PHANTOM_PAYMENT = 'payment'; diff --git a/packages/types/src/interfaces/pezcumulus/definitions.ts b/packages/types/src/interfaces/pezcumulus/definitions.ts new file mode 100644 index 0000000..596d899 --- /dev/null +++ b/packages/types/src/interfaces/pezcumulus/definitions.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +const dmpQueue = { + CollationInfo: { + upwardMessages: 'Vec', + horizontalMessages: 'Vec', + newValidationCode: 'Option', + processedDownwardMessages: 'u32', + hrmpWatermark: 'RelayBlockNumber', + headData: 'HeadData' + }, + CollationInfoV1: { + upwardMessages: 'Vec', + horizontalMessages: 'Vec', + newValidationCode: 'Option', + processedDownwardMessages: 'u32', + hrmpWatermark: 'RelayBlockNumber' + }, + ConfigData: { + maxIndividual: 'Weight' + }, + MessageId: '[u8; 32]', + OverweightIndex: 'u64', + PageCounter: 'u32', + PageIndexData: { + beginUsed: 'PageCounter', + endUsed: 'PageCounter', + overweightCount: 'OverweightIndex' + } +}; + +export default { + rpc: {}, + runtime, + types: dmpQueue +} as Definitions; diff --git a/packages/types/src/interfaces/pezcumulus/index.ts b/packages/types/src/interfaces/pezcumulus/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/pezcumulus/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/pezcumulus/runtime.ts b/packages/types/src/interfaces/pezcumulus/runtime.ts new file mode 100644 index 0000000..885c1a1 --- /dev/null +++ b/packages/types/src/interfaces/pezcumulus/runtime.ts @@ -0,0 +1,55 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + AuraUnincludedSegmentApi: [ + { + methods: { + can_build_upon: { + description: 'Whether it is legal to extend the chain', + params: [ + { + name: 'includedHash', + type: 'BlockHash' + }, + { + name: 'slot', + type: 'Slot' + } + ], + type: 'bool' + } + }, + version: 1 + } + ], + CollectCollationInfo: [ + { + methods: { + collect_collation_info: { + description: 'Collect information about a collation.', + params: [ + { + name: 'header', + type: 'Header' + } + ], + type: 'CollationInfo' + } + }, + version: 2 + }, + { + methods: { + collect_collation_info: { + description: 'Collect information about a collation.', + params: [], + type: 'CollationInfoV1' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/pezcumulus/types.ts b/packages/types/src/interfaces/pezcumulus/types.ts new file mode 100644 index 0000000..4d6f045 --- /dev/null +++ b/packages/types/src/interfaces/pezcumulus/types.ts @@ -0,0 +1,48 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Option, Struct, U8aFixed, Vec, u32, u64 } from '@pezkuwi/types-codec'; +import type { Weight } from '@pezkuwi/types/interfaces/runtime'; +import type { HeadData, OutboundHrmpMessage, RelayBlockNumber, UpwardMessage, ValidationCode } from '@pezkuwi/types/interfaces/teyrchains'; + +/** @name CollationInfo */ +export interface CollationInfo extends Struct { + readonly upwardMessages: Vec; + readonly horizontalMessages: Vec; + readonly newValidationCode: Option; + readonly processedDownwardMessages: u32; + readonly hrmpWatermark: RelayBlockNumber; + readonly headData: HeadData; +} + +/** @name CollationInfoV1 */ +export interface CollationInfoV1 extends Struct { + readonly upwardMessages: Vec; + readonly horizontalMessages: Vec; + readonly newValidationCode: Option; + readonly processedDownwardMessages: u32; + readonly hrmpWatermark: RelayBlockNumber; +} + +/** @name ConfigData */ +export interface ConfigData extends Struct { + readonly maxIndividual: Weight; +} + +/** @name MessageId */ +export interface MessageId extends U8aFixed {} + +/** @name OverweightIndex */ +export interface OverweightIndex extends u64 {} + +/** @name PageCounter */ +export interface PageCounter extends u32 {} + +/** @name PageIndexData */ +export interface PageIndexData extends Struct { + readonly beginUsed: PageCounter; + readonly endUsed: PageCounter; + readonly overweightCount: OverweightIndex; +} + +export type PHANTOM_PEZCUMULUS = 'pezcumulus'; diff --git a/packages/types/src/interfaces/poll/definitions.ts b/packages/types/src/interfaces/poll/definitions.ts new file mode 100644 index 0000000..f893f6b --- /dev/null +++ b/packages/types/src/interfaces/poll/definitions.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Approvals: '[bool; 4]' + } +} as Definitions; diff --git a/packages/types/src/interfaces/poll/index.ts b/packages/types/src/interfaces/poll/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/poll/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/poll/types.ts b/packages/types/src/interfaces/poll/types.ts new file mode 100644 index 0000000..10825bb --- /dev/null +++ b/packages/types/src/interfaces/poll/types.ts @@ -0,0 +1,9 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Vec, bool } from '@pezkuwi/types-codec'; + +/** @name Approvals */ +export interface Approvals extends Vec {} + +export type PHANTOM_POLL = 'poll'; diff --git a/packages/types/src/interfaces/pow/definitions.ts b/packages/types/src/interfaces/pow/definitions.ts new file mode 100644 index 0000000..23a6a43 --- /dev/null +++ b/packages/types/src/interfaces/pow/definitions.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/pow/index.ts b/packages/types/src/interfaces/pow/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/pow/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/pow/runtime.ts b/packages/types/src/interfaces/pow/runtime.ts new file mode 100644 index 0000000..eef8dbf --- /dev/null +++ b/packages/types/src/interfaces/pow/runtime.ts @@ -0,0 +1,32 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + DifficultyApi: [ + { + methods: { + difficulty: { + description: 'Return the target difficulty of the next block.', + params: [], + // This is Difficulty in the original, however this is chain-specific + type: 'Raw' + } + }, + version: 1 + } + ], + TimestampApi: [ + { + methods: { + timestamp: { + description: 'API necessary for timestamp-based difficulty adjustment algorithms.', + params: [], + type: 'Moment' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/pow/types.ts b/packages/types/src/interfaces/pow/types.ts new file mode 100644 index 0000000..3de0277 --- /dev/null +++ b/packages/types/src/interfaces/pow/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_POW = 'pow'; diff --git a/packages/types/src/interfaces/proxy/definitions.ts b/packages/types/src/interfaces/proxy/definitions.ts new file mode 100644 index 0000000..56dd038 --- /dev/null +++ b/packages/types/src/interfaces/proxy/definitions.ts @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + ProxyDefinition: { + delegate: 'AccountId', + proxyType: 'ProxyType', + delay: 'BlockNumber' + }, + ProxyType: { + _enum: ['Any', 'NonTransfer', 'Governance', 'Staking'] + }, + ProxyAnnouncement: { + real: 'AccountId', + callHash: 'Hash', + height: 'BlockNumber' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/proxy/index.ts b/packages/types/src/interfaces/proxy/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/proxy/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/proxy/types.ts b/packages/types/src/interfaces/proxy/types.ts new file mode 100644 index 0000000..290751b --- /dev/null +++ b/packages/types/src/interfaces/proxy/types.ts @@ -0,0 +1,30 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Struct } from '@pezkuwi/types-codec'; +import type { AccountId, BlockNumber, Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ProxyAnnouncement */ +export interface ProxyAnnouncement extends Struct { + readonly real: AccountId; + readonly callHash: Hash; + readonly height: BlockNumber; +} + +/** @name ProxyDefinition */ +export interface ProxyDefinition extends Struct { + readonly delegate: AccountId; + readonly proxyType: ProxyType; + readonly delay: BlockNumber; +} + +/** @name ProxyType */ +export interface ProxyType extends Enum { + readonly isAny: boolean; + readonly isNonTransfer: boolean; + readonly isGovernance: boolean; + readonly isStaking: boolean; + readonly type: 'Any' | 'NonTransfer' | 'Governance' | 'Staking'; +} + +export type PHANTOM_PROXY = 'proxy'; diff --git a/packages/types/src/interfaces/purchase/definitions.ts b/packages/types/src/interfaces/purchase/definitions.ts new file mode 100644 index 0000000..61bc20f --- /dev/null +++ b/packages/types/src/interfaces/purchase/definitions.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + AccountStatus: { + validity: 'AccountValidity', + freeBalance: 'Balance', + lockedBalance: 'Balance', + signature: 'Vec', + vat: 'Permill' + }, + AccountValidity: { + _enum: ['Invalid', 'Initiated', 'Pending', 'ValidLow', 'ValidHigh', 'Completed'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/purchase/index.ts b/packages/types/src/interfaces/purchase/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/purchase/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/purchase/types.ts b/packages/types/src/interfaces/purchase/types.ts new file mode 100644 index 0000000..c286b3a --- /dev/null +++ b/packages/types/src/interfaces/purchase/types.ts @@ -0,0 +1,27 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Enum, Struct } from '@pezkuwi/types-codec'; +import type { Balance, Permill } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AccountStatus */ +export interface AccountStatus extends Struct { + readonly validity: AccountValidity; + readonly freeBalance: Balance; + readonly lockedBalance: Balance; + readonly signature: Bytes; + readonly vat: Permill; +} + +/** @name AccountValidity */ +export interface AccountValidity extends Enum { + readonly isInvalid: boolean; + readonly isInitiated: boolean; + readonly isPending: boolean; + readonly isValidLow: boolean; + readonly isValidHigh: boolean; + readonly isCompleted: boolean; + readonly type: 'Invalid' | 'Initiated' | 'Pending' | 'ValidLow' | 'ValidHigh' | 'Completed'; +} + +export type PHANTOM_PURCHASE = 'purchase'; diff --git a/packages/types/src/interfaces/recovery/definitions.ts b/packages/types/src/interfaces/recovery/definitions.ts new file mode 100644 index 0000000..eeb29d8 --- /dev/null +++ b/packages/types/src/interfaces/recovery/definitions.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + ActiveRecovery: { + created: 'BlockNumber', + deposit: 'Balance', + friends: 'Vec' + }, + RecoveryConfig: { + delayPeriod: 'BlockNumber', + deposit: 'Balance', + friends: 'Vec', + threshold: 'u16' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/recovery/index.ts b/packages/types/src/interfaces/recovery/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/recovery/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/recovery/types.ts b/packages/types/src/interfaces/recovery/types.ts new file mode 100644 index 0000000..c321467 --- /dev/null +++ b/packages/types/src/interfaces/recovery/types.ts @@ -0,0 +1,22 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, Vec, u16 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance, BlockNumber } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ActiveRecovery */ +export interface ActiveRecovery extends Struct { + readonly created: BlockNumber; + readonly deposit: Balance; + readonly friends: Vec; +} + +/** @name RecoveryConfig */ +export interface RecoveryConfig extends Struct { + readonly delayPeriod: BlockNumber; + readonly deposit: Balance; + readonly friends: Vec; + readonly threshold: u16; +} + +export type PHANTOM_RECOVERY = 'recovery'; diff --git a/packages/types/src/interfaces/rpc/definitions.ts b/packages/types/src/interfaces/rpc/definitions.ts new file mode 100644 index 0000000..f8752a8 --- /dev/null +++ b/packages/types/src/interfaces/rpc/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + RpcMethods: { + version: 'u32', + methods: 'Vec' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/rpc/index.ts b/packages/types/src/interfaces/rpc/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/rpc/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/rpc/rpc.ts b/packages/types/src/interfaces/rpc/rpc.ts new file mode 100644 index 0000000..44ed1d7 --- /dev/null +++ b/packages/types/src/interfaces/rpc/rpc.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + methods: { + description: 'Retrieves the list of RPC methods that are exposed by the node', + params: [], + type: 'RpcMethods' + } +}; diff --git a/packages/types/src/interfaces/rpc/types.ts b/packages/types/src/interfaces/rpc/types.ts new file mode 100644 index 0000000..0f556df --- /dev/null +++ b/packages/types/src/interfaces/rpc/types.ts @@ -0,0 +1,12 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, Text, Vec, u32 } from '@pezkuwi/types-codec'; + +/** @name RpcMethods */ +export interface RpcMethods extends Struct { + readonly version: u32; + readonly methods: Vec; +} + +export type PHANTOM_RPC = 'rpc'; diff --git a/packages/types/src/interfaces/runtime/Digest.spec.ts b/packages/types/src/interfaces/runtime/Digest.spec.ts new file mode 100644 index 0000000..d5b305a --- /dev/null +++ b/packages/types/src/interfaces/runtime/Digest.spec.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import json3 from '@pezkuwi/types-support/json/Header.003.json' assert { type: 'json' }; + +import { TypeRegistry } from '../../create/index.js'; + +describe('Digest', (): void => { + const registry = new TypeRegistry(); + + it('has the correct JSON representation', (): void => { + const digest = registry.createType('Digest', json3.result.digest); + + expect(digest.logs.map((l) => l.toHex())).toEqual(json3.result.digest.logs); + }); + + it('decodes logs with consensus', (): void => { + const digest = registry.createType('Digest', json3.result.digest); + + expect(digest.logs.length).toEqual(1); + + const log = digest.logs[0]; + + expect(log.type).toBe('Consensus'); + expect(log.value.toJSON()).toEqual([ + '0x61757261', + '0x69c97e0f00000000479c09f7ace12ed3e1af2dba6cca6831e257e80feef56c7474d6c69bae6f4e8a6e0045a87afe14296992c38b7d55abcbe617c441cd35e8667abbcb1678f31802' + ]); + }); +}); diff --git a/packages/types/src/interfaces/runtime/Header.spec.ts b/packages/types/src/interfaces/runtime/Header.spec.ts new file mode 100644 index 0000000..4fd2674 --- /dev/null +++ b/packages/types/src/interfaces/runtime/Header.spec.ts @@ -0,0 +1,64 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import json1 from '@pezkuwi/types-support/json/Header.001.json' assert { type: 'json' }; +import json2 from '@pezkuwi/types-support/json/Header.002.json' assert { type: 'json' }; +import json3 from '@pezkuwi/types-support/json/Header.003.json' assert { type: 'json' }; +import block00300 from '@pezkuwi/types-support/json/SignedBlock.003.00.json' assert { type: 'json' }; +import block00301 from '@pezkuwi/types-support/json/SignedBlock.003.01.json' assert { type: 'json' }; +import { BN } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; + +describe('Header', (): void => { + const registry = new TypeRegistry(); + + it('decodes an actual JSON response', (): void => { + const header = registry.createType('Header', json1.result); + + expect( + header.number.toNumber() + ).toEqual(0); + expect( + header.extrinsicsRoot.toString() + ).toEqual('0x45b0cfc220ceec5b7c1c62c4d4193d38e4eba48e8815729ce75f9c0ab0e4c1c0'); + expect( + header.parentHash.toString() + ).toEqual('0x0000000000000000000000000000000000000000000000000000000000000000'); + expect( + header.stateRoot.toString() + ).toEqual('0x294c3470ae3be7555240b9d034ec19c3715ba2c3f20b92441f8cea0cab66ab56'); + expect( + header.digest.logs.toString() + ).toEqual('[]'); + }); + + it('parses old-style JSON headers (deprecated)', (): void => { + const header = registry.createType('Header', json2.result); + + expect( + header.digest.logs + ).toHaveLength(1); + }); + + it('creates a valid hash (incl. digest & compact)', (): void => { + const header = registry.createType('Header', json3.result); + + expect( + header.hash.toHex() + ).toEqual('0x464692ad0e225a74274a7ef411e045f1fc7c2639b5f780c7c18f91f4100f5e54'); + expect( + header.number.eq(new BN(1650758)) + ).toBe(true); + }); + + it('calculates correct hash, matching with parentHash', (): void => { + const blockHash = registry.createType('Header', block00300.result.block.header).hash.toHex(); + + expect(blockHash).toEqual(block00301.result.block.header.parentHash); + }); +}); diff --git a/packages/types/src/interfaces/runtime/KeyValue.spec.ts b/packages/types/src/interfaces/runtime/KeyValue.spec.ts new file mode 100644 index 0000000..6816622 --- /dev/null +++ b/packages/types/src/interfaces/runtime/KeyValue.spec.ts @@ -0,0 +1,41 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +describe('KeyValue', (): void => { + const registry = new TypeRegistry(); + + it('decodes KeyValue from u8a', (): void => { + expect( + registry.createType('KeyValue', Uint8Array.from([ + 4 << 2, + 0x11, 0x22, 0x33, 0x44, + 9 << 2, + 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11 + ])).toJSON() + ).toEqual(['0x11223344', '0x998877665544332211']); + }); + + it('encodes KeyValue from JSON', (): void => { + expect( + registry.createType('KeyValue', ['0x11223344', '0x998877665544332211']).toU8a() + ).toEqual( + new Uint8Array([ + 4 << 2, + 0x11, 0x22, 0x33, 0x44, + 9 << 2, + 0x99, 0x88, 0x77, 0x66, 0x55, 0x44, 0x33, 0x22, 0x11 + ]) + ); + }); + + it('exposes the properties for key/value', (): void => { + const [key, value] = registry.createType('KeyValue', ['0x11223344', '0x998877665544332211']); + + expect(key.toHex()).toEqual('0x11223344'); + expect(value.toHex()).toEqual('0x998877665544332211'); + }); +}); diff --git a/packages/types/src/interfaces/runtime/definitions.ts b/packages/types/src/interfaces/runtime/definitions.ts new file mode 100644 index 0000000..c15fc2f --- /dev/null +++ b/packages/types/src/interfaces/runtime/definitions.ts @@ -0,0 +1,236 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +const numberTypes = { + Fixed64: 'Int<64, Fixed64>', + FixedI64: 'Int<64, FixedI64>', + FixedU64: 'UInt<64, FixedU64>', + Fixed128: 'Int<128, Fixed128>', + FixedI128: 'Int<128, FixedI128>', + FixedU128: 'UInt<128, FixedU128>', + I32F32: 'Int<64, I32F32>', + U32F32: 'UInt<64, U32F32>', + PerU16: 'UInt<16, PerU16>', + Perbill: 'UInt<32, Perbill>', + Percent: 'UInt<8, Percent>', + Permill: 'UInt<32, Permill>', + Perquintill: 'UInt<64, Perquintill>' +}; + +// Since we don't have insight into the origin specification, we can only define what we know about +// in a pure Bizinikiwi/Pezkuwi implementation, any other custom origins won't be handled at all +export const knownOrigins: Record = { + // + // (1) Defaults from Bizinikiwi + // + Council: 'CollectiveOrigin', + System: 'SystemOrigin', + TechnicalCommittee: 'CollectiveOrigin', + // + // (2) Defaults from Pezkuwi + // + Xcm: 'XcmOrigin', + XcmPezpallet: 'XcmOrigin', + // + // (3) Defaults from Acala + // + Authority: 'AuthorityOrigin', + GeneralCouncil: 'CollectiveOrigin' +}; + +export default { + rpc: {}, + runtime, + types: { + ...numberTypes, + AccountId: 'AccountId32', + AccountId20: 'GenericEthereumAccountId', + AccountId32: 'GenericAccountId32', + AccountId33: 'GenericAccountId33', + AccountIdOf: 'AccountId', + AccountIndex: 'GenericAccountIndex', + Address: 'MultiAddress', + AssetId: 'u32', + Balance: 'UInt<128, Balance>', + BalanceOf: 'Balance', + Block: 'GenericBlock', + BlockNumber: 'u32', + BlockNumberFor: 'BlockNumber', + BlockNumberOf: 'BlockNumber', + Call: 'GenericCall', + CallHash: 'Hash', + CallHashOf: 'CallHash', + ChangesTrieConfiguration: { + digestInterval: 'u32', + digestLevels: 'u32' + }, + ChangesTrieSignal: { + _enum: { + NewConfiguration: 'Option' + } + }, + ConsensusEngineId: 'GenericConsensusEngineId', + CodecHash: 'Hash', + CrateVersion: { + major: 'u16', + minor: 'u8', + patch: 'u8' + }, + Digest: { + logs: 'Vec' + }, + DigestItem: { + _enum: { + Other: 'Bytes', // 0 + AuthoritiesChange: 'Vec', // 1 + ChangesTrieRoot: 'Hash', // 2 + SealV0: 'SealV0', // 3 + Consensus: 'Consensus', // 4 + Seal: 'Seal', // 5 + PreRuntime: 'PreRuntime', // 6 + ChangesTrieSignal: 'ChangesTrieSignal', // 7 + RuntimeEnvironmentUpdated: 'Null' // 8 + } + }, + ExtrinsicsWeight: { + normal: 'Weight', + operational: 'Weight' + }, + H32: '[u8; 4; H32]', + H64: '[u8; 8; H64]', + H128: '[u8; 16; H128]', + H160: '[u8; 20; H160]', + H256: '[u8; 32; H256]', + H512: '[u8; 64; H512]', + H1024: '[u8; 128; H1024]', + H2048: '[u8; 256; H2048]', + Hash: 'H256', + Header: { + parentHash: 'Hash', + number: 'Compact', + stateRoot: 'Hash', + extrinsicsRoot: 'Hash', + digest: 'Digest' + }, + HeaderPartial: { + parentHash: 'Hash', + // since we only parse JSON with this, having non-compact works + number: 'BlockNumber' + }, + IndicesLookupSource: 'GenericLookupSource', + Index: 'u32', + Justification: '(ConsensusEngineId, EncodedJustification)', + EncodedJustification: 'Bytes', + Justifications: 'Vec', + KeyValue: '(StorageKey, StorageData)', + KeyTypeId: 'u32', + LockIdentifier: '[u8; 8]', + LookupSource: 'MultiAddress', + LookupTarget: 'AccountId', + ModuleId: 'LockIdentifier', + MultiAddress: 'GenericMultiAddress', + MultiSigner: { + _enum: { + Ed25519: '[u8; 32]', + Sr25519: '[u8; 32]', + Ecdsa: '[u8; 33]' + } + }, + Moment: 'UInt<64, Moment>', + OpaqueCall: 'Bytes', + Origin: 'DoNotConstruct', + OriginCaller: { + _enum: { + // this should be dynamically built from the actual modules, based on index + System: 'SystemOrigin' + } + }, + PezpalletId: 'LockIdentifier', + PezpalletsOrigin: 'OriginCaller', + PezpalletVersion: { + major: 'u16', + minor: 'u8', + patch: 'u8' + }, + Pays: { + _enum: ['Yes', 'No'] + }, + Phantom: 'Null', + PhantomData: 'Null', + Releases: { + _enum: ['V1', 'V2', 'V3', 'V4', 'V5', 'V6', 'V7', 'V8', 'V9', 'V10'] + }, + RuntimeCall: 'Call', + RuntimeEvent: 'Event', + RuntimeDbWeight: { + read: 'Weight', + write: 'Weight' + }, + SignedBlock: 'SignedBlockWithJustifications', + SignedBlockWithJustification: { + block: 'Block', + justification: 'Option' + }, + SignedBlockWithJustifications: { + block: 'Block', + justifications: 'Option' + }, + Slot: 'u64', + SlotDuration: 'u64', + StorageData: 'Bytes', + StorageInfo: { + palletName: 'Bytes', + storage_name: 'Bytes', + prefix: 'Bytes', + maxValues: 'Option', + maxSize: 'Option' + }, + StorageProof: { + trieNodes: 'Vec' + }, + TransactionPriority: 'u64', + TransactionLongevity: 'u64', + TransactionTag: 'Bytes', + TransactionInfo: { + _alias: { + dataSize: 'size' + }, + chunkRoot: 'H256', + contentHash: 'H256', + dataSize: 'u32', + blockChunks: 'u32' + }, + TransactionStorageProof: { + chunk: 'Vec', + proof: 'Vec>' + }, + ValidatorId: 'AccountId', + ValidatorIdOf: 'ValidatorId', + WeightV0: 'u32', + WeightV1: 'u64', + WeightV2: { + refTime: 'Compact', + proofSize: 'Compact' + }, + Weight: 'WeightV2', + WeightMultiplier: 'Fixed64', + + // digest + PreRuntime: '(ConsensusEngineId, Bytes)', + SealV0: '(u64, Signature)', + Seal: '(ConsensusEngineId, Bytes)', + Consensus: '(ConsensusEngineId, Bytes)', + + // Type when core initialize_block went from v4 to v5 + ExtrinsicInclusionMode: { + _enum: ['AllExtrinsics', 'OnlyInherents'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/runtime/index.ts b/packages/types/src/interfaces/runtime/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/runtime/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/runtime/runtime.ts b/packages/types/src/interfaces/runtime/runtime.ts new file mode 100644 index 0000000..8f9db8d --- /dev/null +++ b/packages/types/src/interfaces/runtime/runtime.ts @@ -0,0 +1,117 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall, DefinitionsCallEntry } from '../../types/index.js'; + +const CORE_V1_TO_V4: DefinitionsCallEntry['methods'] = { + execute_block: { + description: 'Execute the given block.', + params: [ + { + name: 'block', + type: 'Block' + } + ], + type: 'Null' + } +}; + +const CORE_V1_TO_V2: DefinitionsCallEntry['methods'] = { + version: { + description: 'Returns the version of the runtime.', + params: [], + type: 'RuntimeVersionPre3' + } +}; + +const CORE_V2_TO_V4: DefinitionsCallEntry['methods'] = { + initialize_block: { + description: 'Initialize a block with the given header.', + params: [ + { + name: 'header', + type: 'Header' + } + ], + type: 'Null' + } +}; + +const CORE_V4_VERSION: DefinitionsCallEntry['methods'] = { + version: { + description: 'Returns the version of the runtime.', + params: [], + type: 'RuntimeVersion' + } +}; + +const CORE_V4_TO_V5: DefinitionsCallEntry['methods'] = { + ...CORE_V1_TO_V4, + initialize_block: { + description: 'Initialize a block with the given header.', + params: [ + { + name: 'header', + type: 'Header' + } + ], + type: 'ExtrinsicInclusionMode' + } +}; + +export const runtime: DefinitionsCall = { + Core: [ + { + methods: { + ...CORE_V4_VERSION, + ...CORE_V4_TO_V5 + }, + version: 5 + }, + { + methods: { + ...CORE_V4_VERSION, + ...CORE_V1_TO_V4, + ...CORE_V2_TO_V4 + }, + version: 4 + }, + { + methods: { + version: { + description: 'Returns the version of the runtime.', + params: [], + type: 'RuntimeVersionPre4' + }, + ...CORE_V1_TO_V4, + ...CORE_V2_TO_V4 + }, + version: 3 + }, + { + methods: { + ...CORE_V1_TO_V2, + ...CORE_V1_TO_V4, + ...CORE_V2_TO_V4 + }, + version: 2 + }, + { + methods: { + initialise_block: { + description: 'Initialize a block with the given header.', + params: [ + { + name: 'header', + type: 'Header' + } + ], + type: 'Null' + }, + ...CORE_V1_TO_V2, + ...CORE_V1_TO_V4 + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/runtime/types.ts b/packages/types/src/interfaces/runtime/types.ts new file mode 100644 index 0000000..2296d8f --- /dev/null +++ b/packages/types/src/interfaces/runtime/types.ts @@ -0,0 +1,422 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { GenericAccountId32, GenericAccountId33, GenericAccountIndex, GenericBlock, GenericCall, GenericConsensusEngineId, GenericEthereumAccountId, GenericLookupSource, GenericMultiAddress, StorageKey } from '@pezkuwi/types'; +import type { Bytes, Compact, DoNotConstruct, Enum, Int, Null, Option, Struct, U8aFixed, UInt, Vec, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AuthorityId } from '@pezkuwi/types/interfaces/consensus'; +import type { Signature } from '@pezkuwi/types/interfaces/extrinsics'; +import type { Event, SystemOrigin } from '@pezkuwi/types/interfaces/system'; + +/** @name AccountId */ +export interface AccountId extends AccountId32 {} + +/** @name AccountId20 */ +export interface AccountId20 extends GenericEthereumAccountId {} + +/** @name AccountId32 */ +export interface AccountId32 extends GenericAccountId32 {} + +/** @name AccountId33 */ +export interface AccountId33 extends GenericAccountId33 {} + +/** @name AccountIdOf */ +export interface AccountIdOf extends AccountId {} + +/** @name AccountIndex */ +export interface AccountIndex extends GenericAccountIndex {} + +/** @name Address */ +export interface Address extends MultiAddress {} + +/** @name AssetId */ +export interface AssetId extends u32 {} + +/** @name Balance */ +export interface Balance extends UInt {} + +/** @name BalanceOf */ +export interface BalanceOf extends Balance {} + +/** @name Block */ +export interface Block extends GenericBlock {} + +/** @name BlockNumber */ +export interface BlockNumber extends u32 {} + +/** @name BlockNumberFor */ +export interface BlockNumberFor extends BlockNumber {} + +/** @name BlockNumberOf */ +export interface BlockNumberOf extends BlockNumber {} + +/** @name Call */ +export interface Call extends GenericCall {} + +/** @name CallHash */ +export interface CallHash extends Hash {} + +/** @name CallHashOf */ +export interface CallHashOf extends CallHash {} + +/** @name ChangesTrieConfiguration */ +export interface ChangesTrieConfiguration extends Struct { + readonly digestInterval: u32; + readonly digestLevels: u32; +} + +/** @name ChangesTrieSignal */ +export interface ChangesTrieSignal extends Enum { + readonly isNewConfiguration: boolean; + readonly asNewConfiguration: Option; + readonly type: 'NewConfiguration'; +} + +/** @name CodecHash */ +export interface CodecHash extends Hash {} + +/** @name Consensus */ +export interface Consensus extends ITuple<[ConsensusEngineId, Bytes]> {} + +/** @name ConsensusEngineId */ +export interface ConsensusEngineId extends GenericConsensusEngineId {} + +/** @name CrateVersion */ +export interface CrateVersion extends Struct { + readonly major: u16; + readonly minor: u8; + readonly patch: u8; +} + +/** @name Digest */ +export interface Digest extends Struct { + readonly logs: Vec; +} + +/** @name DigestItem */ +export interface DigestItem extends Enum { + readonly isOther: boolean; + readonly asOther: Bytes; + readonly isAuthoritiesChange: boolean; + readonly asAuthoritiesChange: Vec; + readonly isChangesTrieRoot: boolean; + readonly asChangesTrieRoot: Hash; + readonly isSealV0: boolean; + readonly asSealV0: SealV0; + readonly isConsensus: boolean; + readonly asConsensus: Consensus; + readonly isSeal: boolean; + readonly asSeal: Seal; + readonly isPreRuntime: boolean; + readonly asPreRuntime: PreRuntime; + readonly isChangesTrieSignal: boolean; + readonly asChangesTrieSignal: ChangesTrieSignal; + readonly isRuntimeEnvironmentUpdated: boolean; + readonly type: 'Other' | 'AuthoritiesChange' | 'ChangesTrieRoot' | 'SealV0' | 'Consensus' | 'Seal' | 'PreRuntime' | 'ChangesTrieSignal' | 'RuntimeEnvironmentUpdated'; +} + +/** @name EncodedJustification */ +export interface EncodedJustification extends Bytes {} + +/** @name ExtrinsicInclusionMode */ +export interface ExtrinsicInclusionMode extends Enum { + readonly isAllExtrinsics: boolean; + readonly isOnlyInherents: boolean; + readonly type: 'AllExtrinsics' | 'OnlyInherents'; +} + +/** @name ExtrinsicsWeight */ +export interface ExtrinsicsWeight extends Struct { + readonly normal: Weight; + readonly operational: Weight; +} + +/** @name Fixed128 */ +export interface Fixed128 extends Int {} + +/** @name Fixed64 */ +export interface Fixed64 extends Int {} + +/** @name FixedI128 */ +export interface FixedI128 extends Int {} + +/** @name FixedI64 */ +export interface FixedI64 extends Int {} + +/** @name FixedU128 */ +export interface FixedU128 extends UInt {} + +/** @name FixedU64 */ +export interface FixedU64 extends UInt {} + +/** @name H1024 */ +export interface H1024 extends U8aFixed {} + +/** @name H128 */ +export interface H128 extends U8aFixed {} + +/** @name H160 */ +export interface H160 extends U8aFixed {} + +/** @name H2048 */ +export interface H2048 extends U8aFixed {} + +/** @name H256 */ +export interface H256 extends U8aFixed {} + +/** @name H32 */ +export interface H32 extends U8aFixed {} + +/** @name H512 */ +export interface H512 extends U8aFixed {} + +/** @name H64 */ +export interface H64 extends U8aFixed {} + +/** @name Hash */ +export interface Hash extends H256 {} + +/** @name Header */ +export interface Header extends Struct { + readonly parentHash: Hash; + readonly number: Compact; + readonly stateRoot: Hash; + readonly extrinsicsRoot: Hash; + readonly digest: Digest; +} + +/** @name HeaderPartial */ +export interface HeaderPartial extends Struct { + readonly parentHash: Hash; + readonly number: BlockNumber; +} + +/** @name I32F32 */ +export interface I32F32 extends Int {} + +/** @name Index */ +export interface Index extends u32 {} + +/** @name IndicesLookupSource */ +export interface IndicesLookupSource extends GenericLookupSource {} + +/** @name Justification */ +export interface Justification extends ITuple<[ConsensusEngineId, EncodedJustification]> {} + +/** @name Justifications */ +export interface Justifications extends Vec {} + +/** @name KeyTypeId */ +export interface KeyTypeId extends u32 {} + +/** @name KeyValue */ +export interface KeyValue extends ITuple<[StorageKey, StorageData]> {} + +/** @name LockIdentifier */ +export interface LockIdentifier extends U8aFixed {} + +/** @name LookupSource */ +export interface LookupSource extends MultiAddress {} + +/** @name LookupTarget */ +export interface LookupTarget extends AccountId {} + +/** @name ModuleId */ +export interface ModuleId extends LockIdentifier {} + +/** @name Moment */ +export interface Moment extends UInt {} + +/** @name MultiAddress */ +export interface MultiAddress extends GenericMultiAddress {} + +/** @name MultiSigner */ +export interface MultiSigner extends Enum { + readonly isEd25519: boolean; + readonly asEd25519: U8aFixed; + readonly isSr25519: boolean; + readonly asSr25519: U8aFixed; + readonly isEcdsa: boolean; + readonly asEcdsa: U8aFixed; + readonly type: 'Ed25519' | 'Sr25519' | 'Ecdsa'; +} + +/** @name OpaqueCall */ +export interface OpaqueCall extends Bytes {} + +/** @name Origin */ +export interface Origin extends DoNotConstruct {} + +/** @name OriginCaller */ +export interface OriginCaller extends Enum { + readonly isSystem: boolean; + readonly asSystem: SystemOrigin; + readonly type: 'System'; +} + +/** @name Pays */ +export interface Pays extends Enum { + readonly isYes: boolean; + readonly isNo: boolean; + readonly type: 'Yes' | 'No'; +} + +/** @name Perbill */ +export interface Perbill extends UInt {} + +/** @name Percent */ +export interface Percent extends UInt {} + +/** @name Permill */ +export interface Permill extends UInt {} + +/** @name Perquintill */ +export interface Perquintill extends UInt {} + +/** @name PerU16 */ +export interface PerU16 extends UInt {} + +/** @name PezpalletId */ +export interface PezpalletId extends LockIdentifier {} + +/** @name PezpalletsOrigin */ +export interface PezpalletsOrigin extends OriginCaller {} + +/** @name PezpalletVersion */ +export interface PezpalletVersion extends Struct { + readonly major: u16; + readonly minor: u8; + readonly patch: u8; +} + +/** @name Phantom */ +export interface Phantom extends Null {} + +/** @name PhantomData */ +export interface PhantomData extends Null {} + +/** @name PreRuntime */ +export interface PreRuntime extends ITuple<[ConsensusEngineId, Bytes]> {} + +/** @name Releases */ +export interface Releases extends Enum { + readonly isV1: boolean; + readonly isV2: boolean; + readonly isV3: boolean; + readonly isV4: boolean; + readonly isV5: boolean; + readonly isV6: boolean; + readonly isV7: boolean; + readonly isV8: boolean; + readonly isV9: boolean; + readonly isV10: boolean; + readonly type: 'V1' | 'V2' | 'V3' | 'V4' | 'V5' | 'V6' | 'V7' | 'V8' | 'V9' | 'V10'; +} + +/** @name RuntimeCall */ +export interface RuntimeCall extends Call {} + +/** @name RuntimeDbWeight */ +export interface RuntimeDbWeight extends Struct { + readonly read: Weight; + readonly write: Weight; +} + +/** @name RuntimeEvent */ +export interface RuntimeEvent extends Event {} + +/** @name Seal */ +export interface Seal extends ITuple<[ConsensusEngineId, Bytes]> {} + +/** @name SealV0 */ +export interface SealV0 extends ITuple<[u64, Signature]> {} + +/** @name SignedBlock */ +export interface SignedBlock extends SignedBlockWithJustifications {} + +/** @name SignedBlockWithJustification */ +export interface SignedBlockWithJustification extends Struct { + readonly block: Block; + readonly justification: Option; +} + +/** @name SignedBlockWithJustifications */ +export interface SignedBlockWithJustifications extends Struct { + readonly block: Block; + readonly justifications: Option; +} + +/** @name Slot */ +export interface Slot extends u64 {} + +/** @name SlotDuration */ +export interface SlotDuration extends u64 {} + +/** @name StorageData */ +export interface StorageData extends Bytes {} + +/** @name StorageInfo */ +export interface StorageInfo extends Struct { + readonly palletName: Bytes; + readonly storage_name: Bytes; + readonly prefix: Bytes; + readonly maxValues: Option; + readonly maxSize: Option; +} + +/** @name StorageProof */ +export interface StorageProof extends Struct { + readonly trieNodes: Vec; +} + +/** @name TransactionInfo */ +export interface TransactionInfo extends Struct { + readonly chunkRoot: H256; + readonly contentHash: H256; + readonly dataSize: u32; + readonly blockChunks: u32; +} + +/** @name TransactionLongevity */ +export interface TransactionLongevity extends u64 {} + +/** @name TransactionPriority */ +export interface TransactionPriority extends u64 {} + +/** @name TransactionStorageProof */ +export interface TransactionStorageProof extends Struct { + readonly chunk: Bytes; + readonly proof: Vec; +} + +/** @name TransactionTag */ +export interface TransactionTag extends Bytes {} + +/** @name U32F32 */ +export interface U32F32 extends UInt {} + +/** @name ValidatorId */ +export interface ValidatorId extends AccountId {} + +/** @name ValidatorIdOf */ +export interface ValidatorIdOf extends ValidatorId {} + +/** @name Weight */ +export interface Weight extends WeightV2 {} + +/** @name WeightMultiplier */ +export interface WeightMultiplier extends Fixed64 {} + +/** @name WeightV0 */ +export interface WeightV0 extends u32 {} + +/** @name WeightV1 */ +export interface WeightV1 extends u64 {} + +/** @name WeightV2 */ +export interface WeightV2 extends Struct { + readonly refTime: Compact; + readonly proofSize: Compact; +} + +export type PHANTOM_RUNTIME = 'runtime'; diff --git a/packages/types/src/interfaces/scaleInfo/definitions.ts b/packages/types/src/interfaces/scaleInfo/definitions.ts new file mode 100644 index 0000000..7b59837 --- /dev/null +++ b/packages/types/src/interfaces/scaleInfo/definitions.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions } from '../../types/index.js'; + +import { v0 } from './v0.js'; +import { v1 } from './v1.js'; + +// order important in structs... :) +/* eslint-disable sort-keys */ + +export default { + rpc: {}, + types: { + ...v0, + ...v1, + // latest mappings + SiField: 'Si1Field', + SiLookupTypeId: 'Si1LookupTypeId', + SiPath: 'Si1Path', + SiType: 'Si1Type', + SiTypeDef: 'Si1TypeDef', + SiTypeDefArray: 'Si1TypeDefArray', + SiTypeDefBitSequence: 'Si1TypeDefBitSequence', + SiTypeDefCompact: 'Si1TypeDefCompact', + SiTypeDefComposite: 'Si1TypeDefComposite', + SiTypeDefPrimitive: 'Si1TypeDefPrimitive', + SiTypeDefSequence: 'Si1TypeDefSequence', + SiTypeDefTuple: 'Si1TypeDefTuple', + SiTypeParameter: 'Si1TypeParameter', + SiTypeDefVariant: 'Si1TypeDefVariant', + SiVariant: 'Si1Variant' + } +} as Definitions; diff --git a/packages/types/src/interfaces/scaleInfo/index.ts b/packages/types/src/interfaces/scaleInfo/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/scaleInfo/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/scaleInfo/types.ts b/packages/types/src/interfaces/scaleInfo/types.ts new file mode 100644 index 0000000..98218fe --- /dev/null +++ b/packages/types/src/interfaces/scaleInfo/types.ts @@ -0,0 +1,265 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Compact, Enum, Null, Option, Struct, Text, Type, Vec, u32, u64, u8 } from '@pezkuwi/types-codec'; + +/** @name Si0Field */ +export interface Si0Field extends Struct { + readonly name: Option; + readonly type: Si0LookupTypeId; + readonly typeName: Option; + readonly docs: Vec; +} + +/** @name Si0LookupTypeId */ +export interface Si0LookupTypeId extends u32 {} + +/** @name Si0Path */ +export interface Si0Path extends Vec {} + +/** @name Si0Type */ +export interface Si0Type extends Struct { + readonly path: Si0Path; + readonly params: Vec; + readonly def: Si0TypeDef; +} + +/** @name Si0TypeDef */ +export interface Si0TypeDef extends Enum { + readonly isComposite: boolean; + readonly asComposite: Si0TypeDefComposite; + readonly isVariant: boolean; + readonly asVariant: Si0TypeDefVariant; + readonly isSequence: boolean; + readonly asSequence: Si0TypeDefSequence; + readonly isArray: boolean; + readonly asArray: Si0TypeDefArray; + readonly isTuple: boolean; + readonly asTuple: Si0TypeDefTuple; + readonly isPrimitive: boolean; + readonly asPrimitive: Si0TypeDefPrimitive; + readonly isCompact: boolean; + readonly asCompact: Si0TypeDefCompact; + readonly isPhantom: boolean; + readonly asPhantom: Si0TypeDefPhantom; + readonly isBitSequence: boolean; + readonly asBitSequence: Si0TypeDefBitSequence; + readonly type: 'Composite' | 'Variant' | 'Sequence' | 'Array' | 'Tuple' | 'Primitive' | 'Compact' | 'Phantom' | 'BitSequence'; +} + +/** @name Si0TypeDefArray */ +export interface Si0TypeDefArray extends Struct { + readonly len: u32; + readonly type: Si0LookupTypeId; +} + +/** @name Si0TypeDefBitSequence */ +export interface Si0TypeDefBitSequence extends Struct { + readonly bitStoreType: Si0LookupTypeId; + readonly bitOrderType: Si0LookupTypeId; +} + +/** @name Si0TypeDefCompact */ +export interface Si0TypeDefCompact extends Struct { + readonly type: Si0LookupTypeId; +} + +/** @name Si0TypeDefComposite */ +export interface Si0TypeDefComposite extends Struct { + readonly fields: Vec; +} + +/** @name Si0TypeDefPhantom */ +export interface Si0TypeDefPhantom extends Null {} + +/** @name Si0TypeDefPrimitive */ +export interface Si0TypeDefPrimitive extends Enum { + readonly isBool: boolean; + readonly isChar: boolean; + readonly isStr: boolean; + readonly isU8: boolean; + readonly isU16: boolean; + readonly isU32: boolean; + readonly isU64: boolean; + readonly isU128: boolean; + readonly isU256: boolean; + readonly isI8: boolean; + readonly isI16: boolean; + readonly isI32: boolean; + readonly isI64: boolean; + readonly isI128: boolean; + readonly isI256: boolean; + readonly type: 'Bool' | 'Char' | 'Str' | 'U8' | 'U16' | 'U32' | 'U64' | 'U128' | 'U256' | 'I8' | 'I16' | 'I32' | 'I64' | 'I128' | 'I256'; +} + +/** @name Si0TypeDefSequence */ +export interface Si0TypeDefSequence extends Struct { + readonly type: Si0LookupTypeId; +} + +/** @name Si0TypeDefTuple */ +export interface Si0TypeDefTuple extends Vec {} + +/** @name Si0TypeDefVariant */ +export interface Si0TypeDefVariant extends Struct { + readonly variants: Vec; +} + +/** @name Si0TypeParameter */ +export interface Si0TypeParameter extends Struct { + readonly name: Text; + readonly type: Option; +} + +/** @name Si0Variant */ +export interface Si0Variant extends Struct { + readonly name: Text; + readonly fields: Vec; + readonly index: Option; + readonly discriminant: Option; + readonly docs: Vec; +} + +/** @name Si1Field */ +export interface Si1Field extends Struct { + readonly name: Option; + readonly type: Si1LookupTypeId; + readonly typeName: Option; + readonly docs: Vec; +} + +/** @name Si1LookupTypeId */ +export interface Si1LookupTypeId extends Compact {} + +/** @name Si1Path */ +export interface Si1Path extends Si0Path {} + +/** @name Si1Type */ +export interface Si1Type extends Struct { + readonly path: Si1Path; + readonly params: Vec; + readonly def: Si1TypeDef; + readonly docs: Vec; +} + +/** @name Si1TypeDef */ +export interface Si1TypeDef extends Enum { + readonly isComposite: boolean; + readonly asComposite: Si1TypeDefComposite; + readonly isVariant: boolean; + readonly asVariant: Si1TypeDefVariant; + readonly isSequence: boolean; + readonly asSequence: Si1TypeDefSequence; + readonly isArray: boolean; + readonly asArray: Si1TypeDefArray; + readonly isTuple: boolean; + readonly asTuple: Si1TypeDefTuple; + readonly isPrimitive: boolean; + readonly asPrimitive: Si1TypeDefPrimitive; + readonly isCompact: boolean; + readonly asCompact: Si1TypeDefCompact; + readonly isBitSequence: boolean; + readonly asBitSequence: Si1TypeDefBitSequence; + readonly isHistoricMetaCompat: boolean; + readonly asHistoricMetaCompat: Type; + readonly type: 'Composite' | 'Variant' | 'Sequence' | 'Array' | 'Tuple' | 'Primitive' | 'Compact' | 'BitSequence' | 'HistoricMetaCompat'; +} + +/** @name Si1TypeDefArray */ +export interface Si1TypeDefArray extends Struct { + readonly len: u32; + readonly type: Si1LookupTypeId; +} + +/** @name Si1TypeDefBitSequence */ +export interface Si1TypeDefBitSequence extends Struct { + readonly bitStoreType: Si1LookupTypeId; + readonly bitOrderType: Si1LookupTypeId; +} + +/** @name Si1TypeDefCompact */ +export interface Si1TypeDefCompact extends Struct { + readonly type: Si1LookupTypeId; +} + +/** @name Si1TypeDefComposite */ +export interface Si1TypeDefComposite extends Struct { + readonly fields: Vec; +} + +/** @name Si1TypeDefPrimitive */ +export interface Si1TypeDefPrimitive extends Si0TypeDefPrimitive {} + +/** @name Si1TypeDefSequence */ +export interface Si1TypeDefSequence extends Struct { + readonly type: Si1LookupTypeId; +} + +/** @name Si1TypeDefTuple */ +export interface Si1TypeDefTuple extends Vec {} + +/** @name Si1TypeDefVariant */ +export interface Si1TypeDefVariant extends Struct { + readonly variants: Vec; +} + +/** @name Si1TypeParameter */ +export interface Si1TypeParameter extends Struct { + readonly name: Text; + readonly type: Option; +} + +/** @name Si1Variant */ +export interface Si1Variant extends Struct { + readonly name: Text; + readonly fields: Vec; + readonly index: u8; + readonly docs: Vec; +} + +/** @name SiField */ +export interface SiField extends Si1Field {} + +/** @name SiLookupTypeId */ +export interface SiLookupTypeId extends Si1LookupTypeId {} + +/** @name SiPath */ +export interface SiPath extends Si1Path {} + +/** @name SiType */ +export interface SiType extends Si1Type {} + +/** @name SiTypeDef */ +export interface SiTypeDef extends Si1TypeDef {} + +/** @name SiTypeDefArray */ +export interface SiTypeDefArray extends Si1TypeDefArray {} + +/** @name SiTypeDefBitSequence */ +export interface SiTypeDefBitSequence extends Si1TypeDefBitSequence {} + +/** @name SiTypeDefCompact */ +export interface SiTypeDefCompact extends Si1TypeDefCompact {} + +/** @name SiTypeDefComposite */ +export interface SiTypeDefComposite extends Si1TypeDefComposite {} + +/** @name SiTypeDefPrimitive */ +export interface SiTypeDefPrimitive extends Si1TypeDefPrimitive {} + +/** @name SiTypeDefSequence */ +export interface SiTypeDefSequence extends Si1TypeDefSequence {} + +/** @name SiTypeDefTuple */ +export interface SiTypeDefTuple extends Si1TypeDefTuple {} + +/** @name SiTypeDefVariant */ +export interface SiTypeDefVariant extends Si1TypeDefVariant {} + +/** @name SiTypeParameter */ +export interface SiTypeParameter extends Si1TypeParameter {} + +/** @name SiVariant */ +export interface SiVariant extends Si1Variant {} + +export type PHANTOM_SCALEINFO = 'scaleInfo'; diff --git a/packages/types/src/interfaces/scaleInfo/v0.ts b/packages/types/src/interfaces/scaleInfo/v0.ts new file mode 100644 index 0000000..ee02b90 --- /dev/null +++ b/packages/types/src/interfaces/scaleInfo/v0.ts @@ -0,0 +1,72 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsTypes } from '../../types/index.js'; + +// order important in structs... :) +/* eslint-disable sort-keys */ + +export const v0: DefinitionsTypes = { + Si0Field: { + name: 'Option', + type: 'Si0LookupTypeId', + typeName: 'Option', + docs: 'Vec' + }, + Si0LookupTypeId: 'u32', + Si0Path: 'Vec', + Si0Type: { + path: 'Si0Path', + params: 'Vec', + def: 'Si0TypeDef' + }, + Si0TypeDef: { + _enum: { + Composite: 'Si0TypeDefComposite', + Variant: 'Si0TypeDefVariant', + Sequence: 'Si0TypeDefSequence', + Array: 'Si0TypeDefArray', + Tuple: 'Si0TypeDefTuple', + Primitive: 'Si0TypeDefPrimitive', + Compact: 'Si0TypeDefCompact', + Phantom: 'Si0TypeDefPhantom', + BitSequence: 'Si0TypeDefBitSequence' + } + }, + Si0TypeDefArray: { + len: 'u32', + type: 'Si0LookupTypeId' + }, + Si0TypeDefBitSequence: { + bitStoreType: 'Si0LookupTypeId', + bitOrderType: 'Si0LookupTypeId' + }, + Si0TypeDefCompact: { + type: 'Si0LookupTypeId' + }, + Si0TypeDefComposite: { + fields: 'Vec' + }, + Si0TypeDefPhantom: 'Null', + Si0TypeDefVariant: { + variants: 'Vec' + }, + Si0TypeDefPrimitive: { + _enum: ['Bool', 'Char', 'Str', 'U8', 'U16', 'U32', 'U64', 'U128', 'U256', 'I8', 'I16', 'I32', 'I64', 'I128', 'I256'] + }, + Si0TypeDefSequence: { + type: 'Si0LookupTypeId' + }, + Si0TypeDefTuple: 'Vec', + Si0TypeParameter: { + name: 'Text', + type: 'Option' + }, + Si0Variant: { + name: 'Text', + fields: 'Vec', + index: 'Option', + discriminant: 'Option', + docs: 'Vec' + } +}; diff --git a/packages/types/src/interfaces/scaleInfo/v1.ts b/packages/types/src/interfaces/scaleInfo/v1.ts new file mode 100644 index 0000000..90559d0 --- /dev/null +++ b/packages/types/src/interfaces/scaleInfo/v1.ts @@ -0,0 +1,73 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsTypes } from '../../types/index.js'; + +// order important in structs... :) +/* eslint-disable sort-keys */ + +export const Si1Variant = { + name: 'Text', + fields: 'Vec', + index: 'u8', + docs: 'Vec' +}; + +export const v1: DefinitionsTypes = { + Si1Field: { + name: 'Option', + type: 'Si1LookupTypeId', + typeName: 'Option', + docs: 'Vec' + }, + Si1LookupTypeId: 'Compact', + Si1Path: 'Si0Path', + Si1Type: { + path: 'Si1Path', + params: 'Vec', + def: 'Si1TypeDef', + docs: 'Vec' + }, + Si1TypeDef: { + _enum: { + Composite: 'Si1TypeDefComposite', + Variant: 'Si1TypeDefVariant', + Sequence: 'Si1TypeDefSequence', + Array: 'Si1TypeDefArray', + Tuple: 'Si1TypeDefTuple', + Primitive: 'Si1TypeDefPrimitive', + Compact: 'Si1TypeDefCompact', + BitSequence: 'Si1TypeDefBitSequence', + // NOTE: This is specific to the implementation for pre-v14 metadata + // compatibility (always keep this as the last entry in the enum) + HistoricMetaCompat: 'Type' + } + }, + Si1TypeDefArray: { + len: 'u32', + type: 'Si1LookupTypeId' + }, + Si1TypeDefBitSequence: { + bitStoreType: 'Si1LookupTypeId', + bitOrderType: 'Si1LookupTypeId' + }, + Si1TypeDefCompact: { + type: 'Si1LookupTypeId' + }, + Si1TypeDefComposite: { + fields: 'Vec' + }, + Si1TypeDefPrimitive: 'Si0TypeDefPrimitive', + Si1TypeDefSequence: { + type: 'Si1LookupTypeId' + }, + Si1TypeDefTuple: 'Vec', + Si1TypeParameter: { + name: 'Text', + type: 'Option' + }, + Si1TypeDefVariant: { + variants: 'Vec' + }, + Si1Variant +}; diff --git a/packages/types/src/interfaces/scheduler/definitions.ts b/packages/types/src/interfaces/scheduler/definitions.ts new file mode 100644 index 0000000..0e2dc97 --- /dev/null +++ b/packages/types/src/interfaces/scheduler/definitions.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Period: '(BlockNumber, u32)', + Priority: 'u8', + SchedulePeriod: 'Period', + SchedulePriority: 'Priority', + Scheduled: { + maybeId: 'Option', + priority: 'SchedulePriority', + call: 'Call', + maybePeriodic: 'Option', + origin: 'PezpalletsOrigin' + }, + ScheduledTo254: { + maybeId: 'Option', + priority: 'SchedulePriority', + call: 'Call', + maybePeriodic: 'Option' + }, + TaskAddress: '(BlockNumber, u32)' + } +} as Definitions; diff --git a/packages/types/src/interfaces/scheduler/index.ts b/packages/types/src/interfaces/scheduler/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/scheduler/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/scheduler/types.ts b/packages/types/src/interfaces/scheduler/types.ts new file mode 100644 index 0000000..8a37c1f --- /dev/null +++ b/packages/types/src/interfaces/scheduler/types.ts @@ -0,0 +1,40 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Option, Struct, u32, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { BlockNumber, Call, PezpalletsOrigin } from '@pezkuwi/types/interfaces/runtime'; + +/** @name Period */ +export interface Period extends ITuple<[BlockNumber, u32]> {} + +/** @name Priority */ +export interface Priority extends u8 {} + +/** @name Scheduled */ +export interface Scheduled extends Struct { + readonly maybeId: Option; + readonly priority: SchedulePriority; + readonly call: Call; + readonly maybePeriodic: Option; + readonly origin: PezpalletsOrigin; +} + +/** @name ScheduledTo254 */ +export interface ScheduledTo254 extends Struct { + readonly maybeId: Option; + readonly priority: SchedulePriority; + readonly call: Call; + readonly maybePeriodic: Option; +} + +/** @name SchedulePeriod */ +export interface SchedulePeriod extends Period {} + +/** @name SchedulePriority */ +export interface SchedulePriority extends Priority {} + +/** @name TaskAddress */ +export interface TaskAddress extends ITuple<[BlockNumber, u32]> {} + +export type PHANTOM_SCHEDULER = 'scheduler'; diff --git a/packages/types/src/interfaces/session/definitions.ts b/packages/types/src/interfaces/session/definitions.ts new file mode 100644 index 0000000..a9e224d --- /dev/null +++ b/packages/types/src/interfaces/session/definitions.ts @@ -0,0 +1,55 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +// The runtime definition of SessionKeys are passed as a Trait to session +// Defined in `node/runtime/src/lib.rs` as follow +// impl_opaque_keys! { +// pub struct SessionKeys { +// Here we revert to tuples to keep the interfaces "opaque", as per the use +const keyTypes = { + // key for beefy + BeefyKey: '[u8; 33]', + + // default to Bizinikiwi master defaults, 4 keys (pezkuwi master, 5 keys) + Keys: 'SessionKeys4', + + SessionKeys1: '(AccountId)', + SessionKeys2: '(AccountId, AccountId)', + SessionKeys3: '(AccountId, AccountId, AccountId)', + SessionKeys4: '(AccountId, AccountId, AccountId, AccountId)', + SessionKeys5: '(AccountId, AccountId, AccountId, AccountId, AccountId)', + SessionKeys6: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)', + SessionKeys6B: '(AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)', + SessionKeys7: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)', + SessionKeys7B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)', + SessionKeys8: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)', + SessionKeys8B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)', + SessionKeys9: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)', + SessionKeys9B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)', + SessionKeys10: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId)', + SessionKeys10B: '(AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey)' +}; + +export default { + rpc: {}, + runtime, + types: { + ...keyTypes, + FullIdentification: 'Exposure', + IdentificationTuple: '(ValidatorId, FullIdentification)', + MembershipProof: { + session: 'SessionIndex', + trieNodes: 'Vec', + validatorCount: 'ValidatorCount' + }, + SessionIndex: 'u32', + ValidatorCount: 'u32' + } +} as Definitions; diff --git a/packages/types/src/interfaces/session/index.ts b/packages/types/src/interfaces/session/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/session/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/session/runtime.ts b/packages/types/src/interfaces/session/runtime.ts new file mode 100644 index 0000000..fab73e2 --- /dev/null +++ b/packages/types/src/interfaces/session/runtime.ts @@ -0,0 +1,34 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + SessionKeys: [ + { + methods: { + decode_session_keys: { + description: 'Decode the given public session keys.', + params: [ + { + name: 'encoded', + type: 'Bytes' + } + ], + type: 'Option>' + }, + generate_session_keys: { + description: 'Generate a set of session keys with optionally using the given seed.', + params: [ + { + name: 'seed', + type: 'Option' + } + ], + type: 'Bytes' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/session/types.ts b/packages/types/src/interfaces/session/types.ts new file mode 100644 index 0000000..7a9041a --- /dev/null +++ b/packages/types/src/interfaces/session/types.ts @@ -0,0 +1,79 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Struct, U8aFixed, Vec, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, ValidatorId } from '@pezkuwi/types/interfaces/runtime'; +import type { Exposure } from '@pezkuwi/types/interfaces/staking'; + +/** @name BeefyKey */ +export interface BeefyKey extends U8aFixed {} + +/** @name FullIdentification */ +export interface FullIdentification extends Exposure {} + +/** @name IdentificationTuple */ +export interface IdentificationTuple extends ITuple<[ValidatorId, FullIdentification]> {} + +/** @name Keys */ +export interface Keys extends SessionKeys4 {} + +/** @name MembershipProof */ +export interface MembershipProof extends Struct { + readonly session: SessionIndex; + readonly trieNodes: Vec; + readonly validatorCount: ValidatorCount; +} + +/** @name SessionIndex */ +export interface SessionIndex extends u32 {} + +/** @name SessionKeys1 */ +export interface SessionKeys1 extends AccountId {} + +/** @name SessionKeys10 */ +export interface SessionKeys10 extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys10B */ +export interface SessionKeys10B extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey]> {} + +/** @name SessionKeys2 */ +export interface SessionKeys2 extends ITuple<[AccountId, AccountId]> {} + +/** @name SessionKeys3 */ +export interface SessionKeys3 extends ITuple<[AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys4 */ +export interface SessionKeys4 extends ITuple<[AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys5 */ +export interface SessionKeys5 extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys6 */ +export interface SessionKeys6 extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys6B */ +export interface SessionKeys6B extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey]> {} + +/** @name SessionKeys7 */ +export interface SessionKeys7 extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys7B */ +export interface SessionKeys7B extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey]> {} + +/** @name SessionKeys8 */ +export interface SessionKeys8 extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys8B */ +export interface SessionKeys8B extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey]> {} + +/** @name SessionKeys9 */ +export interface SessionKeys9 extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId]> {} + +/** @name SessionKeys9B */ +export interface SessionKeys9B extends ITuple<[AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, AccountId, BeefyKey]> {} + +/** @name ValidatorCount */ +export interface ValidatorCount extends u32 {} + +export type PHANTOM_SESSION = 'session'; diff --git a/packages/types/src/interfaces/society/definitions.ts b/packages/types/src/interfaces/society/definitions.ts new file mode 100644 index 0000000..ab9b2ce --- /dev/null +++ b/packages/types/src/interfaces/society/definitions.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Bid: { + who: 'AccountId', + kind: 'BidKind', + value: 'Balance' + }, + BidKind: { + _enum: { + Deposit: 'Balance', + Vouch: '(AccountId, Balance)' + } + }, + // a society-specific Judgement (not the same as identity Judgement) + SocietyJudgement: { + _enum: ['Rebid', 'Reject', 'Approve'] + }, + // a society-specific Vote + SocietyVote: { + _enum: ['Skeptic', 'Reject', 'Approve'] + }, + StrikeCount: 'u32', + VouchingStatus: { + _enum: ['Vouching', 'Banned'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/society/index.ts b/packages/types/src/interfaces/society/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/society/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/society/types.ts b/packages/types/src/interfaces/society/types.ts new file mode 100644 index 0000000..cb93c4a --- /dev/null +++ b/packages/types/src/interfaces/society/types.ts @@ -0,0 +1,50 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Struct, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, Balance } from '@pezkuwi/types/interfaces/runtime'; + +/** @name Bid */ +export interface Bid extends Struct { + readonly who: AccountId; + readonly kind: BidKind; + readonly value: Balance; +} + +/** @name BidKind */ +export interface BidKind extends Enum { + readonly isDeposit: boolean; + readonly asDeposit: Balance; + readonly isVouch: boolean; + readonly asVouch: ITuple<[AccountId, Balance]>; + readonly type: 'Deposit' | 'Vouch'; +} + +/** @name SocietyJudgement */ +export interface SocietyJudgement extends Enum { + readonly isRebid: boolean; + readonly isReject: boolean; + readonly isApprove: boolean; + readonly type: 'Rebid' | 'Reject' | 'Approve'; +} + +/** @name SocietyVote */ +export interface SocietyVote extends Enum { + readonly isSkeptic: boolean; + readonly isReject: boolean; + readonly isApprove: boolean; + readonly type: 'Skeptic' | 'Reject' | 'Approve'; +} + +/** @name StrikeCount */ +export interface StrikeCount extends u32 {} + +/** @name VouchingStatus */ +export interface VouchingStatus extends Enum { + readonly isVouching: boolean; + readonly isBanned: boolean; + readonly type: 'Vouching' | 'Banned'; +} + +export type PHANTOM_SOCIETY = 'society'; diff --git a/packages/types/src/interfaces/staking/CompactAssignments.spec.ts b/packages/types/src/interfaces/staking/CompactAssignments.spec.ts new file mode 100644 index 0000000..da8aad1 --- /dev/null +++ b/packages/types/src/interfaces/staking/CompactAssignments.spec.ts @@ -0,0 +1,207 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +const ACTUAL = '0x' + + // Vec + '85033b003f003e00ac00d300e000f0001600a000a300c000f200ab00a400fd00a200b2001300f500f40062007c004b00430007004000810012002f005000c200b90018006b000600b000560097004600d100be001e00060149006e00e20060006f004a0024007d009c008300c9008800030131000c004d00f6005b00e8001b00e100d7007100e9004e0079009f00bd009600e6009100dd00d600ae0025007300e500da00bb00f300e400f800c10028002c00a90047005900cb00fc00c4004c00680089002100ce00ee006c00670041003900d8005f000501950051009e00040075002b0027000a005e009d00c8001d00610098005300dc002200d400a1000d002d008400fe00c500630008007600d5003c008b00cd005a00c70026001a005200b1002900b60014008c005c004800d9009400d0005d002e009300cc003d003200b700ff006d003700660054003a00fa00d200ca00bc001c00af0011000e00580070008700720044008600de008a009b0078008e008d00b500a5006a00ed000500ea00bf00340030001900020182004f007e00f9007b001000360009010900380092002a004200570099000a010000a800fb00eb0002006900c600ad008f0033007a000401' + + // CompactAssignmentsTo257 + '0109cc0200000000ce0200000200d00200000400d10200000500d20200000600d30200000700d40200000800d50200000900d60200000a00d80200000c00d90200000d00da0200000e00dc0200001000dd0200001100de0200001200df0200001300e00200001400e20200001600e40200001800e50200001900e60200001a00e70200001b00e80200001c00e90200001d00ea0200001e00ed0200002100ee0200002200f00200002400f10200002500f20200002600f30200002700f40200002800f50200002900f60200002a00f70200002b00f80200002c00f90200002d00fa0200002e00fb0200002f00fc0200003000fd0200003100fe0200003200ff0200003300000300003400020300003600030300003700040300003800050300003900060300003a00070300003b00080300003c00090300003d000a0300003e000b0300003f000c03000040000d03000041000e03000042000f0300004300100300004400120300004600130300004700140300004800150300004900160300004a00170300004b00180300004c00190300004d001a0300004e001b0300004f001c03000050001d03000051001e03000052001f0300005300200300005400220300005600230300005700240300005800250300005900260300005a00270300005b00280300005c00290300005d002a0300005e002b0300005f002c03000060002d03000061002e03000062002f0300006300320300006600330300006700340300006800350300006900360300006a00370300006b00380300006c00390300006d003a0300006e003b0300006f003c03000070003d03000071003e03000072003f0300007300410300007500420300007600440300007800450300007900460300007a00470300007b00480300007c00490300007d004a0300007e004d03000081004e03000082004f0300008300500300008400520300008600530300008700540300008800550300008900560300008a00570300008b00580300008c00590300008d005a0300008e005b0300008f005d03000091005e03000092005f0300009300600300009400610300009500620300009600630300009700640300009800650300009900670300009b00680300009c00690300009d006a0300009e006b0300009f006c030000a0006d030000a1006e030000a2006f030000a30070030000a40071030000a50074030000a80075030000a90077030000ab0078030000ac0079030000ad007a030000ae007b030000af007c030000b0007d030000b1007e030000b20081030000b50082030000b60083030000b70085030000b90087030000bb0088030000bc0089030000bd008a030000be008b030000bf008c030000c0008d030000c1008e030000c20090030000c40091030000c50092030000c60093030000c70094030000c80095030000c90096030000ca0097030000cb0098030000cc0099030000cd009a030000ce009c030000d0009d030000d1009e030000d2009f030000d300a0030000d400a1030000d500a2030000d600a3030000d700a4030000d800a5030000d900a6030000da00a8030000dc00a9030000dd00aa030000de00ac030000e000ad030000e100ae030000e200b0030000e400b1030000e500b2030000e600b4030000e800b5030000e900b6030000ea00b7030000eb00b9030000ed00ba030000ee00bc030000f000be030000f200bf030000f300c0030000f400c1030000f500c2030000f600c4030000f800c5030000f900c6030000fa00c7030000fb00c8030000fc00c9030000fd00ca030000fe00cb030000ff00ce0300000201cf0300000301d00300000401d10300000501d20300000601d50300000901d60300000a0101000000e400020000005d0004000000730007000000dc00080000000a000a000000c9000c0000009d000d000000fe000e0000003e0010000000f60011000000d00012000000080013000000240014000000f400150000004a001600000005011900000012001c0000006c001d000000c8001e0000003e001f0000003b00210000009700220000005400240000009d002b00000056002c000000d0002e000000240032000000f200360000005f00370000003e003800000098003d000000f60041000000160043000000120047000000e2004800000096004b000000f0004c00000018004e0000006c004f000000240051000000140052000000400053000000ac0054000000f90055000000be00580000009d005a0000005d005b0000005c005d000000120060000000940061000000e20064000000fd0066000000240069000000bd006a000000a1006b00000054006d00000058006e0000003e0071000000dc0072000000b00074000000510075000000ae007a00000054007b000000d9007c000000be007d0000005a007e0000003e007f0000005f0080000000cd0081000000f60083000000c40084000000fd0085000000fc00880000006c008a00000024008c000000e0008e00000031008f000000ce0090000000ac009500000097009900000024009a00000037009b0000003400a20000006d00a50000006200a7000000fd00a8000000f600a90000005400aa0000001b00ab0000009700ad0000003e00ae0000009e00b00000009e00b10000008400b2000000c900b4000000bd00b60000002c00b7000000fc00c0000000c400c2000000d100c4000000ab00c5000000d000c70000009100c80000001200cb0000003100cd0000004000cf000000fd00d0000000f600d4000000b700d6000000b900d70000004e00d9000000c500dc0000001600e00000005900e30000004a00e4000000e500e70000002100e8000000be00e9000000c400ef0000009e00f00000000700f30000006d00f40000003b00f5000000c000f60000009700f7000000fc00fa000000c500fb000000f600fc0000006700000100004d0002010000f900030100001c000401000004000701000046000b0100009d000d010000d50010010000fd00110100006e00120100009e00130100001200170100000a001801000024001a010000f6001b01000056001d01000012001e0100002c001f0100001c002301000050002501000012002c010000f6002e01000006012f010000dc0031010000460034010000540035010000c0003801000058003a01000054003d010000be0040010000d00041010000440042010000960043010000240045010000e600470100003e004e010000ae004f010000c50050010000fc00510100004a0052010000390053010000760054010000c000550100004d0056010000c500570100002f0058010000780059010000d3005b01000097005f010000c500620100002400630100009d0064010000dd0065010000fd006601000026006701000016006a0100003e006b0100003e006c010000eb006f0100003e00700100006e00720100006c00750100006c007f010000b70080010000fe00820100005d00840100009e0087010000bb00890100006e008a010000cb008b0100009c008d010000e9008e0100003e008f010000be00940100002400950100003e009901000006009b0100009e009d0100009e009f0100002d00a0010000a100a40100006f00a70100000501a90100009500ac0100000501ad0100005900ae010000dc00b00100005400b30100003e00b70100006100b90100005900bb010000dc00bd010000d000be010000a200c00100009700c1010000e600c40100008c00c5010000dc00c7010000b600c90100006800cb0100003e00cd010000bd00cf010000b700d30100002400d50100003e00d80100002400d90100009c00da0100006e00dc010000f600e10100005d00e4010000e400e90100003b00ec0100006100ee010000b200ef0100009500f0010000d400f10100002600f20100001a00f30100001200f40100009400f60100009d00f70100009e00fc010000d000fe0100006e00010200006200020200002400050200006b0007020000d50008020000940010020000dd00110200009600120200001d00160200003e0019020000e2001a02000014001d02000012001f0200009e0020020000e20021020000e000230200006b002502000083002902000095002d02000012002e020000a1002f020000b70034020000970038020000c7003902000024003a020000f6003c020000f6003d020000b7003e020000b7003f020000840041020000c500420200001200430200000800450200005e00460200009e0047020000ed004b020000b2004c020000a2004f0200000a0050020000240055020000c50057020000540058020000240059020000c5005a02000005015b0200003c005e020000d8005f0200001400600200005f0061020000540062020000d900650200003e0066020000400067020000c7006902000098006e02000037006f020000bc00720200003e00740200004000750200009e0077020000120079020000da007b0200005f007c020000bd007d0200009c007e020000fd0081020000240082020000130084020000fc0087020000830088020000a100890200000501900200005900920200004000970200000800990200009e009b020000f6009c02000094009e02000024009f0200005900a20200000400a30200003b00a60200006c00a70200009d00a90200005000ab0200006e00af0200005400b30200002400b4020000f300b50200001200b60200008300b90200009700ba020000e800bb0200006c00c00200002400c10200006c00c50200001200c8020000e600c90200001100ca0200001600' + + // votes2 ... + 'ac390000006100b4a946003b000000cc009a950a0050000000480092783a0057000000ae00c68e510065000000ea00abfff9006f0000008b0026ac5e00730000009c008e5a260077000000c100a87f52007800000003015e5b070082000000600073d62c008700000075005299a000940000004700849bf2009f000000ed003a61de00bb000000620041ec9100d50000006800232ed500f9000000a50068bd3a00ff000000d60019adc500050100005e00d3d92f000c01000096001e329e000f010000ce0025811e002b0100006f007b703b00320100009d002d6bc0004a010000cb00a9a5c0005d0100000201c95ebc0069010000490054d39b0083010000bf0078f74d00970100004700001ca400a30100001100cb5b9400a50100009300a6c7fa00a6010000300076e33200c2010000c0008b863900d10100005f00efc6dd00e6010000b200f796ee00ed010000f6008b956e00fa0100002200f3d35e000d0200002c00b5712600150200004d001175d00030020000a100fa876d005d020000a000814b6b00640200008b00bd7ce5008502000076005d702c008f020000c900d1d32f00a5020000840049819100' + + // votes 3 + '3c3a000000b90062690301b9713b004d000000d100d4437d00ef9ad800ca000000fd003ebd4c006c100a00ea00000021009a58de00e3773a00ed0000008c0098bdc200861fc1000a0100005800b2197b00fb721900290100005b00a19ee900c13cdd009001000098005a4c28006d5e670091010000d300b642da002664d800b40100009400ec48b0001c2e1a00cc0100008700492fd4002d3d3700960200003200d5bef600412e4000be0200003c00066689005968d100c6020000f90058a36a00f20cbc00cb02000076006ec96e00472aa30034ac0000000000152502005ed6050034000900ec000000fc0081398300b14adc001a55a2001c0100006a001e4d7e00b33c4f006e3d82007701000031006a48be009d308c00bf3d040081010000ff009151af00925129009151b200a101000087007583760005135d00f6028e00a8010000fe000d209f00295c1800314c2700b801000062006725e4004c73c000c80c4d00d00100000d003e47bb003b444c00be4af2004e0200006e0077651200b9588300ff0cf8005c0200002200ec25f0006e4b4300e652c4008b020000e200832b6300869a5100c408b20093020000c500e1506200fc0f47004e5eb0001803000000c200ff32410040334e003c3353004033b100060000001d00463b43008b1e060155481300bd493b00140100001c002127d400dd4958009f1ab700cd2bfa003b010000b000812e1e008722710040480800962f95008c0100001100b5240201f31634007d3bb50002490500e0010000b6001d102b0096367c007b3ed700514c210018da0000009b00ea397300655744005b2e78005c2654003f0d5c00f80000006200ed26e000b5176b009e14e800a54ae600334f6000300100002500c42fa900c22fac00592c7900c02f88005e2f490048010000f300640cee00cb3b4a000c304b00bf36e1007e3ad3007c010000a300192e5600b42e8100b82e1b00cc2ef5004c2e490006020000dd0097200700a340ab00c46e1600d60c4600eb0af40004fe000000fd00d207f3001f383e00da242400f51dbd00a82b6c00dc36970004910200009500a40cb600ed302700a711d9001e4050000d48f000ba1f9800cd07be000000085900000066005b172f00f01d0e005b172d00dc0f70005a1772005a1786005a178a005a173d005a17ca0059172e003e010000c800020e0c003d223f00302306001d116800931e9600511a1400cc18a1006e0ac700231d05014b02f80000000000001beab9a3ce0000000000000000000000c9d6650d1fd62e310000000000000000c54b85db547a2f52a47bb9a03a091300d4020000'; + +describe('CompactAssignmentSiCompact', (): void => { + // generate_solution_type!(#[compact] pub struct InnerTestSolutionCompact::<_, _, _>(..)); + // let compact = InnerTestSolution { + // votes1: vec![(2, 20), (4, 40)], + // votes2: vec![ + // (1, (10, PerU16:: from_percent(80)), 11), + // (5, (50, PerU16:: from_percent(85)), 51), + // ], + // ..Default::default () + // }; + it('can be decoded correctly', (): void => { + const bytes = new Uint8Array([ + 8, + 2, + 0, + 0, + 0, + 20, + 0, + 4, + 0, + 0, + 0, + 40, + 0, + 8, + 1, + 0, + 0, + 0, + 10, + 0, + 204, + 204, + 11, + 0, + 5, + 0, + 0, + 0, + 50, + 0, + 152, + 217, + 51, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]); + + const registry = new TypeRegistry(); + const compact = registry.createType('CompactAssignmentsTo257', bytes); + + expect(compact.toJSON()).toEqual({ + votes1: [[2, [], 20], [4, [], 40]], // TODO: ideally we should not need these empty arrays here. + votes10: [], + votes11: [], + votes12: [], + votes13: [], + votes14: [], + votes15: [], + votes16: [], + votes2: [[1, [[10, 52428]], 11], [5, [[50, 55704]], 51]], // TODO: also the middle element here should not be 2d array. + votes3: [], + votes4: [], + votes5: [], + votes6: [], + votes7: [], + votes8: [], + votes9: [] + }); + }); +}); + +describe('CompactAssignmentSiNormal', (): void => { + // generate_solution_type!(pub struct InnerTestSolutionCompact::<_, _, _>(..)); + // let compact = InnerTestSolution { + // votes1: vec![(2, 20), (4, 40)], + // votes2: vec![ + // (1, (10, PerU16:: from_percent(80)), 11), + // (5, (50, PerU16:: from_percent(85)), 51), + // ], + // ..Default::default () + // }; + it('can be decoded correctly', (): void => { + const bytes = new Uint8Array([ + 8, + 8, + 80, + 16, + 160, + 8, + 4, + 40, + 50, + 51, + 3, + 0, + 44, + 20, + 200, + 98, + 102, + 3, + 0, + 204, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]); + + const registry = new TypeRegistry(); + const compact = registry.createType('CompactAssignmentsWith16', bytes); + + expect(compact.toJSON()).toEqual({ + votes1: [[2, 20], [4, 40]], + votes10: [], + votes11: [], + votes12: [], + votes13: [], + votes14: [], + votes15: [], + votes16: [], + votes2: [[1, [10, 52428], 11], [5, [50, 55704], 51]], + votes3: [], + votes4: [], + votes5: [], + votes6: [], + votes7: [], + votes8: [], + votes9: [] + }); + }); +}); + +describe('CompactAssignments', (): void => { + const registry = new TypeRegistry(); + const votes2 = [[1, [[2, 12345]], 3]]; + const test = registry.createType('CompactAssignmentsTo257', { + votes1: [[1, [], 3]], + votes2 + }); + + it('has a valid vote1 ([Type; ] equivalency)', (): void => { + expect(test.votes1.toHex()).toEqual( + registry.createType('Vec<(u32, u16)>', [ + [1, 3] + ]).toHex() + ); + }); + + it('hash valid vote2 (actual tuple values)', (): void => { + expect(test.votes2.toHex()).toEqual( + registry.createType('Vec<(u32, [(u16, u16); 1], u16)>', votes2).toHex() + ); + }); + + it('has a proper decoded toHuman() available', (): void => { + expect(test.votes2.toHuman()).toEqual([['1', [['2', '12,345']], '3']]); + }); + + it('decodes an actual solution from the chain', (): void => { + expect( + registry.createType('(Vec, CompactAssignmentsTo257, PhragmenScore, EraIndex)', ACTUAL).toHex() + ).toEqual(ACTUAL); + }); +}); diff --git a/packages/types/src/interfaces/staking/Exposure.spec.ts b/packages/types/src/interfaces/staking/Exposure.spec.ts new file mode 100644 index 0000000..42bb6c2 --- /dev/null +++ b/packages/types/src/interfaces/staking/Exposure.spec.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +describe('Exposure', (): void => { + const registry = new TypeRegistry(); + + it('properly decodes an Exposure', (): void => { + expect( + registry.createType('Exposure', '0x0fd2c5f6bc904d990f94373671da716d04fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e0f3e8ec04bb6db2b').toHuman() + ).toEqual({ + others: [{ + value: '12.3449 kUnit', + who: '5HpG9w8EBLe5XCrbczpwq5TSXvedjrBGCwqxK1iQ7qUsSWFc' + }], + own: '30.8059 kUnit', + total: '43.1509 kUnit' + }); + }); +}); diff --git a/packages/types/src/interfaces/staking/definitions.ts b/packages/types/src/interfaces/staking/definitions.ts new file mode 100644 index 0000000..23207d3 --- /dev/null +++ b/packages/types/src/interfaces/staking/definitions.ts @@ -0,0 +1,311 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +const deprecated = { + Points: 'u32', + EraPoints: { + total: 'Points', + individual: 'Vec' + } +}; + +const phragmen = { + CompactAssignments: 'CompactAssignmentsWith16', + CompactAssignmentsWith16: { + votes1: 'Vec<(NominatorIndexCompact, ValidatorIndexCompact)>', + votes2: 'Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>', + votes3: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>', + votes4: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>', + votes5: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>', + votes6: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>', + votes7: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>', + votes8: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>', + votes9: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>', + votes10: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>', + votes11: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>', + votes12: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>', + votes13: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>', + votes14: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>', + votes15: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>', + votes16: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>' + }, + CompactAssignmentsWith24: { + votes1: 'Vec<(NominatorIndexCompact, ValidatorIndexCompact)>', + votes2: 'Vec<(NominatorIndexCompact, CompactScoreCompact, ValidatorIndexCompact)>', + votes3: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 2], ValidatorIndexCompact)>', + votes4: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 3], ValidatorIndexCompact)>', + votes5: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 4], ValidatorIndexCompact)>', + votes6: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 5], ValidatorIndexCompact)>', + votes7: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 6], ValidatorIndexCompact)>', + votes8: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 7], ValidatorIndexCompact)>', + votes9: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 8], ValidatorIndexCompact)>', + votes10: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 9], ValidatorIndexCompact)>', + votes11: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 10], ValidatorIndexCompact)>', + votes12: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 11], ValidatorIndexCompact)>', + votes13: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 12], ValidatorIndexCompact)>', + votes14: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 13], ValidatorIndexCompact)>', + votes15: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 14], ValidatorIndexCompact)>', + votes16: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 15], ValidatorIndexCompact)>', + votes17: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 16], ValidatorIndexCompact)>', + votes18: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 17], ValidatorIndexCompact)>', + votes19: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 18], ValidatorIndexCompact)>', + votes20: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 19], ValidatorIndexCompact)>', + votes21: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 20], ValidatorIndexCompact)>', + votes22: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 21], ValidatorIndexCompact)>', + votes23: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 22], ValidatorIndexCompact)>', + votes24: 'Vec<(NominatorIndexCompact, [CompactScoreCompact; 23], ValidatorIndexCompact)>' + }, + CompactAssignmentsTo265: 'CompactAssignmentsWith16', + CompactAssignmentsTo257: { + votes1: 'Vec<(NominatorIndex, [CompactScore; 0], ValidatorIndex)>', + votes2: 'Vec<(NominatorIndex, [CompactScore; 1], ValidatorIndex)>', + votes3: 'Vec<(NominatorIndex, [CompactScore; 2], ValidatorIndex)>', + votes4: 'Vec<(NominatorIndex, [CompactScore; 3], ValidatorIndex)>', + votes5: 'Vec<(NominatorIndex, [CompactScore; 4], ValidatorIndex)>', + votes6: 'Vec<(NominatorIndex, [CompactScore; 5], ValidatorIndex)>', + votes7: 'Vec<(NominatorIndex, [CompactScore; 6], ValidatorIndex)>', + votes8: 'Vec<(NominatorIndex, [CompactScore; 7], ValidatorIndex)>', + votes9: 'Vec<(NominatorIndex, [CompactScore; 8], ValidatorIndex)>', + votes10: 'Vec<(NominatorIndex, [CompactScore; 9], ValidatorIndex)>', + votes11: 'Vec<(NominatorIndex, [CompactScore; 10], ValidatorIndex)>', + votes12: 'Vec<(NominatorIndex, [CompactScore; 11], ValidatorIndex)>', + votes13: 'Vec<(NominatorIndex, [CompactScore; 12], ValidatorIndex)>', + votes14: 'Vec<(NominatorIndex, [CompactScore; 13], ValidatorIndex)>', + votes15: 'Vec<(NominatorIndex, [CompactScore; 14], ValidatorIndex)>', + votes16: 'Vec<(NominatorIndex, [CompactScore; 15], ValidatorIndex)>' + }, + CompactScore: '(ValidatorIndex, OffchainAccuracy)', + CompactScoreCompact: '(ValidatorIndexCompact, OffchainAccuracyCompact)', + ElectionCompute: { + // in previous versions the last entry was "AuthorityId" + // (since no data attached, and it is via SCALE can rename) + _enum: ['OnChain', 'Signed', 'Unsigned'] + }, + ElectionPhase: { + _enum: { + Off: null, + Signed: null, + Unsigned: '(bool, BlockNumber)', + Emergency: null + } + }, + ElectionResult: { + compute: 'ElectionCompute', + slotStake: 'Balance', + electedStashes: 'Vec', + exposures: 'Vec<(AccountId, Exposure)>' + }, + ElectionResultToSpec10: { + electedStashes: 'Vec', + exposures: 'Vec<(AccountId, Exposure)>', + compute: 'ElectionCompute' + }, + ElectionScore: '[u128; 3]', + ElectionSize: { + validators: 'Compact', + nominators: 'Compact' + }, + ElectionStatus: { + _enum: { + Close: 'Null', + Open: 'BlockNumber' + } + }, + ExtendedBalance: 'u128', + RawSolution: 'RawSolutionWith16', + RawSolutionWith16: { + compact: 'CompactAssignmentsWith16', + score: 'ElectionScore', + round: 'u32' + }, + RawSolutionWith24: { + compact: 'CompactAssignmentsWith24', + score: 'ElectionScore', + round: 'u32' + }, + RawSolutionTo265: 'RawSolutionWith16', + ReadySolution: { + supports: 'SolutionSupports', + score: 'ElectionScore', + compute: 'ElectionCompute' + }, + RoundSnapshot: { + voters: 'Vec<(AccountId, VoteWeight, Vec)>', + targets: 'Vec' + }, + SeatHolder: { + who: 'AccountId', + stake: 'Balance', + deposit: 'Balance' + }, + SignedSubmission: { + _fallback: 'SignedSubmissionTo276', + who: 'AccountId', + deposit: 'Balance', + solution: 'RawSolution', + reward: 'Balance' + }, + SignedSubmissionTo276: { + who: 'AccountId', + deposit: 'Balance', + solution: 'RawSolution' + }, + SignedSubmissionOf: 'SignedSubmission', + SolutionOrSnapshotSize: { + voters: 'Compact', + targets: 'Compact' + }, + SolutionSupport: { + total: 'ExtendedBalance', + voters: 'Vec<(AccountId, ExtendedBalance)>' + }, + SolutionSupports: 'Vec<(AccountId, SolutionSupport)>', + Supports: 'SolutionSupports', + SubmissionIndicesOf: 'BTreeMap', + Voter: { + votes: 'Vec', + stake: 'Balance', + deposit: 'Balance' + }, + VoteWeight: 'u64' +}; + +export default { + rpc: {}, + runtime, + types: { + ...deprecated, + ...phragmen, + ActiveEraInfo: { + index: 'EraIndex', + start: 'Option' + }, + EraIndex: 'u32', + EraRewardPoints: { + total: 'RewardPoint', + individual: 'BTreeMap' + }, + EraRewards: { + total: 'u32', + rewards: 'Vec' + }, + Exposure: { + total: 'Compact', + own: 'Compact', + others: 'Vec' + }, + Forcing: { + _enum: [ + 'NotForcing', + 'ForceNew', + 'ForceNone', + 'ForceAlways' + ] + }, + IndividualExposure: { + who: 'AccountId', + value: 'Compact' + }, + KeyType: 'AccountId', + MomentOf: 'Moment', + Nominations: { + targets: 'Vec', + submittedIn: 'EraIndex', + suppressed: 'bool' + }, + NominatorIndex: 'u32', + NominatorIndexCompact: 'Compact', + OffchainAccuracy: 'PerU16', + OffchainAccuracyCompact: 'Compact', + PhragmenScore: '[u128; 3]', + Points: 'u32', + RewardDestination: { + _enum: { + Staked: 'Null', + Stash: 'Null', + Controller: 'Null', + Account: 'AccountId', + None: 'Null' + } + }, + RewardPoint: 'u32', + SlashJournalEntry: { + who: 'AccountId', + amount: 'Balance', + ownSlash: 'Balance' + }, + SlashingSpansTo204: { + spanIndex: 'SpanIndex', + lastStart: 'EraIndex', + prior: 'Vec' + }, + SlashingSpans: { + spanIndex: 'SpanIndex', + lastStart: 'EraIndex', + lastNonzeroSlash: 'EraIndex', + prior: 'Vec' + }, + SpanIndex: 'u32', + SpanRecord: { + slashed: 'Balance', + paidOut: 'Balance' + }, + StakingLedgerTo223: { + stash: 'AccountId', + total: 'Compact', + active: 'Compact', + unlocking: 'Vec' + }, + StakingLedgerTo240: { + _fallback: 'StakingLedgerTo223', + stash: 'AccountId', + total: 'Compact', + active: 'Compact', + unlocking: 'Vec', + lastReward: 'Option' + }, + StakingLedger: { + stash: 'AccountId', + total: 'Compact', + active: 'Compact', + unlocking: 'Vec', + claimedRewards: 'Vec' + }, + UnappliedSlashOther: '(AccountId, Balance)', + UnappliedSlash: { + validator: 'AccountId', + own: 'Balance', + others: 'Vec', + reporters: 'Vec', + payout: 'Balance' + }, + UnlockChunk: { + value: 'Compact', + era: 'Compact' + }, + ValidatorIndex: 'u16', + ValidatorIndexCompact: 'Compact', + ValidatorPrefs: 'ValidatorPrefsWithBlocked', + ValidatorPrefsWithCommission: { + commission: 'Compact' + }, + ValidatorPrefsWithBlocked: { + commission: 'Compact', + blocked: 'bool' + }, + ValidatorPrefsTo196: { + validatorPayment: 'Compact' + }, + ValidatorPrefsTo145: { + unstakeThreshold: 'Compact', + validatorPayment: 'Compact' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/staking/index.ts b/packages/types/src/interfaces/staking/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/staking/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/staking/runtime.ts b/packages/types/src/interfaces/staking/runtime.ts new file mode 100644 index 0000000..da5ec34 --- /dev/null +++ b/packages/types/src/interfaces/staking/runtime.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + StakingApi: [ + { + methods: { + nominations_quota: { + description: 'Returns the nominations quota for a nominator with a given balance.', + params: [ + { + name: 'balance', + type: 'Balance' + } + ], + type: 'u32' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/staking/types.ts b/packages/types/src/interfaces/staking/types.ts new file mode 100644 index 0000000..233f8d7 --- /dev/null +++ b/packages/types/src/interfaces/staking/types.ts @@ -0,0 +1,430 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { BTreeMap, Compact, Enum, Option, Struct, Vec, bool, u128, u16, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, Balance, BlockNumber, Moment, PerU16, Perbill } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ActiveEraInfo */ +export interface ActiveEraInfo extends Struct { + readonly index: EraIndex; + readonly start: Option; +} + +/** @name CompactAssignments */ +export interface CompactAssignments extends CompactAssignmentsWith16 {} + +/** @name CompactAssignmentsTo257 */ +export interface CompactAssignmentsTo257 extends Struct { + readonly votes1: Vec, ValidatorIndex]>>; + readonly votes2: Vec, ValidatorIndex]>>; + readonly votes3: Vec, ValidatorIndex]>>; + readonly votes4: Vec, ValidatorIndex]>>; + readonly votes5: Vec, ValidatorIndex]>>; + readonly votes6: Vec, ValidatorIndex]>>; + readonly votes7: Vec, ValidatorIndex]>>; + readonly votes8: Vec, ValidatorIndex]>>; + readonly votes9: Vec, ValidatorIndex]>>; + readonly votes10: Vec, ValidatorIndex]>>; + readonly votes11: Vec, ValidatorIndex]>>; + readonly votes12: Vec, ValidatorIndex]>>; + readonly votes13: Vec, ValidatorIndex]>>; + readonly votes14: Vec, ValidatorIndex]>>; + readonly votes15: Vec, ValidatorIndex]>>; + readonly votes16: Vec, ValidatorIndex]>>; +} + +/** @name CompactAssignmentsTo265 */ +export interface CompactAssignmentsTo265 extends CompactAssignmentsWith16 {} + +/** @name CompactAssignmentsWith16 */ +export interface CompactAssignmentsWith16 extends Struct { + readonly votes1: Vec>; + readonly votes2: Vec>; + readonly votes3: Vec, ValidatorIndexCompact]>>; + readonly votes4: Vec, ValidatorIndexCompact]>>; + readonly votes5: Vec, ValidatorIndexCompact]>>; + readonly votes6: Vec, ValidatorIndexCompact]>>; + readonly votes7: Vec, ValidatorIndexCompact]>>; + readonly votes8: Vec, ValidatorIndexCompact]>>; + readonly votes9: Vec, ValidatorIndexCompact]>>; + readonly votes10: Vec, ValidatorIndexCompact]>>; + readonly votes11: Vec, ValidatorIndexCompact]>>; + readonly votes12: Vec, ValidatorIndexCompact]>>; + readonly votes13: Vec, ValidatorIndexCompact]>>; + readonly votes14: Vec, ValidatorIndexCompact]>>; + readonly votes15: Vec, ValidatorIndexCompact]>>; + readonly votes16: Vec, ValidatorIndexCompact]>>; +} + +/** @name CompactAssignmentsWith24 */ +export interface CompactAssignmentsWith24 extends Struct { + readonly votes1: Vec>; + readonly votes2: Vec>; + readonly votes3: Vec, ValidatorIndexCompact]>>; + readonly votes4: Vec, ValidatorIndexCompact]>>; + readonly votes5: Vec, ValidatorIndexCompact]>>; + readonly votes6: Vec, ValidatorIndexCompact]>>; + readonly votes7: Vec, ValidatorIndexCompact]>>; + readonly votes8: Vec, ValidatorIndexCompact]>>; + readonly votes9: Vec, ValidatorIndexCompact]>>; + readonly votes10: Vec, ValidatorIndexCompact]>>; + readonly votes11: Vec, ValidatorIndexCompact]>>; + readonly votes12: Vec, ValidatorIndexCompact]>>; + readonly votes13: Vec, ValidatorIndexCompact]>>; + readonly votes14: Vec, ValidatorIndexCompact]>>; + readonly votes15: Vec, ValidatorIndexCompact]>>; + readonly votes16: Vec, ValidatorIndexCompact]>>; + readonly votes17: Vec, ValidatorIndexCompact]>>; + readonly votes18: Vec, ValidatorIndexCompact]>>; + readonly votes19: Vec, ValidatorIndexCompact]>>; + readonly votes20: Vec, ValidatorIndexCompact]>>; + readonly votes21: Vec, ValidatorIndexCompact]>>; + readonly votes22: Vec, ValidatorIndexCompact]>>; + readonly votes23: Vec, ValidatorIndexCompact]>>; + readonly votes24: Vec, ValidatorIndexCompact]>>; +} + +/** @name CompactScore */ +export interface CompactScore extends ITuple<[ValidatorIndex, OffchainAccuracy]> {} + +/** @name CompactScoreCompact */ +export interface CompactScoreCompact extends ITuple<[ValidatorIndexCompact, OffchainAccuracyCompact]> {} + +/** @name ElectionCompute */ +export interface ElectionCompute extends Enum { + readonly isOnChain: boolean; + readonly isSigned: boolean; + readonly isUnsigned: boolean; + readonly type: 'OnChain' | 'Signed' | 'Unsigned'; +} + +/** @name ElectionPhase */ +export interface ElectionPhase extends Enum { + readonly isOff: boolean; + readonly isSigned: boolean; + readonly isUnsigned: boolean; + readonly asUnsigned: ITuple<[bool, BlockNumber]>; + readonly isEmergency: boolean; + readonly type: 'Off' | 'Signed' | 'Unsigned' | 'Emergency'; +} + +/** @name ElectionResult */ +export interface ElectionResult extends Struct { + readonly compute: ElectionCompute; + readonly slotStake: Balance; + readonly electedStashes: Vec; + readonly exposures: Vec>; +} + +/** @name ElectionResultToSpec10 */ +export interface ElectionResultToSpec10 extends Struct { + readonly electedStashes: Vec; + readonly exposures: Vec>; + readonly compute: ElectionCompute; +} + +/** @name ElectionScore */ +export interface ElectionScore extends Vec {} + +/** @name ElectionSize */ +export interface ElectionSize extends Struct { + readonly validators: Compact; + readonly nominators: Compact; +} + +/** @name ElectionStatus */ +export interface ElectionStatus extends Enum { + readonly isClose: boolean; + readonly isOpen: boolean; + readonly asOpen: BlockNumber; + readonly type: 'Close' | 'Open'; +} + +/** @name EraIndex */ +export interface EraIndex extends u32 {} + +/** @name EraPoints */ +export interface EraPoints extends Struct { + readonly total: Points; + readonly individual: Vec; +} + +/** @name EraRewardPoints */ +export interface EraRewardPoints extends Struct { + readonly total: RewardPoint; + readonly individual: BTreeMap; +} + +/** @name EraRewards */ +export interface EraRewards extends Struct { + readonly total: u32; + readonly rewards: Vec; +} + +/** @name Exposure */ +export interface Exposure extends Struct { + readonly total: Compact; + readonly own: Compact; + readonly others: Vec; +} + +/** @name ExtendedBalance */ +export interface ExtendedBalance extends u128 {} + +/** @name Forcing */ +export interface Forcing extends Enum { + readonly isNotForcing: boolean; + readonly isForceNew: boolean; + readonly isForceNone: boolean; + readonly isForceAlways: boolean; + readonly type: 'NotForcing' | 'ForceNew' | 'ForceNone' | 'ForceAlways'; +} + +/** @name IndividualExposure */ +export interface IndividualExposure extends Struct { + readonly who: AccountId; + readonly value: Compact; +} + +/** @name KeyType */ +export interface KeyType extends AccountId {} + +/** @name MomentOf */ +export interface MomentOf extends Moment {} + +/** @name Nominations */ +export interface Nominations extends Struct { + readonly targets: Vec; + readonly submittedIn: EraIndex; + readonly suppressed: bool; +} + +/** @name NominatorIndex */ +export interface NominatorIndex extends u32 {} + +/** @name NominatorIndexCompact */ +export interface NominatorIndexCompact extends Compact {} + +/** @name OffchainAccuracy */ +export interface OffchainAccuracy extends PerU16 {} + +/** @name OffchainAccuracyCompact */ +export interface OffchainAccuracyCompact extends Compact {} + +/** @name PhragmenScore */ +export interface PhragmenScore extends Vec {} + +/** @name Points */ +export interface Points extends u32 {} + +/** @name RawSolution */ +export interface RawSolution extends RawSolutionWith16 {} + +/** @name RawSolutionTo265 */ +export interface RawSolutionTo265 extends RawSolutionWith16 {} + +/** @name RawSolutionWith16 */ +export interface RawSolutionWith16 extends Struct { + readonly compact: CompactAssignmentsWith16; + readonly score: ElectionScore; + readonly round: u32; +} + +/** @name RawSolutionWith24 */ +export interface RawSolutionWith24 extends Struct { + readonly compact: CompactAssignmentsWith24; + readonly score: ElectionScore; + readonly round: u32; +} + +/** @name ReadySolution */ +export interface ReadySolution extends Struct { + readonly supports: SolutionSupports; + readonly score: ElectionScore; + readonly compute: ElectionCompute; +} + +/** @name RewardDestination */ +export interface RewardDestination extends Enum { + readonly isStaked: boolean; + readonly isStash: boolean; + readonly isController: boolean; + readonly isAccount: boolean; + readonly asAccount: AccountId; + readonly isNone: boolean; + readonly type: 'Staked' | 'Stash' | 'Controller' | 'Account' | 'None'; +} + +/** @name RewardPoint */ +export interface RewardPoint extends u32 {} + +/** @name RoundSnapshot */ +export interface RoundSnapshot extends Struct { + readonly voters: Vec]>>; + readonly targets: Vec; +} + +/** @name SeatHolder */ +export interface SeatHolder extends Struct { + readonly who: AccountId; + readonly stake: Balance; + readonly deposit: Balance; +} + +/** @name SignedSubmission */ +export interface SignedSubmission extends Struct { + readonly who: AccountId; + readonly deposit: Balance; + readonly solution: RawSolution; + readonly reward: Balance; +} + +/** @name SignedSubmissionOf */ +export interface SignedSubmissionOf extends SignedSubmission {} + +/** @name SignedSubmissionTo276 */ +export interface SignedSubmissionTo276 extends Struct { + readonly who: AccountId; + readonly deposit: Balance; + readonly solution: RawSolution; +} + +/** @name SlashingSpans */ +export interface SlashingSpans extends Struct { + readonly spanIndex: SpanIndex; + readonly lastStart: EraIndex; + readonly lastNonzeroSlash: EraIndex; + readonly prior: Vec; +} + +/** @name SlashingSpansTo204 */ +export interface SlashingSpansTo204 extends Struct { + readonly spanIndex: SpanIndex; + readonly lastStart: EraIndex; + readonly prior: Vec; +} + +/** @name SlashJournalEntry */ +export interface SlashJournalEntry extends Struct { + readonly who: AccountId; + readonly amount: Balance; + readonly ownSlash: Balance; +} + +/** @name SolutionOrSnapshotSize */ +export interface SolutionOrSnapshotSize extends Struct { + readonly voters: Compact; + readonly targets: Compact; +} + +/** @name SolutionSupport */ +export interface SolutionSupport extends Struct { + readonly total: ExtendedBalance; + readonly voters: Vec>; +} + +/** @name SolutionSupports */ +export interface SolutionSupports extends Vec> {} + +/** @name SpanIndex */ +export interface SpanIndex extends u32 {} + +/** @name SpanRecord */ +export interface SpanRecord extends Struct { + readonly slashed: Balance; + readonly paidOut: Balance; +} + +/** @name StakingLedger */ +export interface StakingLedger extends Struct { + readonly stash: AccountId; + readonly total: Compact; + readonly active: Compact; + readonly unlocking: Vec; + readonly claimedRewards: Vec; +} + +/** @name StakingLedgerTo223 */ +export interface StakingLedgerTo223 extends Struct { + readonly stash: AccountId; + readonly total: Compact; + readonly active: Compact; + readonly unlocking: Vec; +} + +/** @name StakingLedgerTo240 */ +export interface StakingLedgerTo240 extends Struct { + readonly stash: AccountId; + readonly total: Compact; + readonly active: Compact; + readonly unlocking: Vec; + readonly lastReward: Option; +} + +/** @name SubmissionIndicesOf */ +export interface SubmissionIndicesOf extends BTreeMap {} + +/** @name Supports */ +export interface Supports extends SolutionSupports {} + +/** @name UnappliedSlash */ +export interface UnappliedSlash extends Struct { + readonly validator: AccountId; + readonly own: Balance; + readonly others: Vec; + readonly reporters: Vec; + readonly payout: Balance; +} + +/** @name UnappliedSlashOther */ +export interface UnappliedSlashOther extends ITuple<[AccountId, Balance]> {} + +/** @name UnlockChunk */ +export interface UnlockChunk extends Struct { + readonly value: Compact; + readonly era: Compact; +} + +/** @name ValidatorIndex */ +export interface ValidatorIndex extends u16 {} + +/** @name ValidatorIndexCompact */ +export interface ValidatorIndexCompact extends Compact {} + +/** @name ValidatorPrefs */ +export interface ValidatorPrefs extends ValidatorPrefsWithBlocked {} + +/** @name ValidatorPrefsTo145 */ +export interface ValidatorPrefsTo145 extends Struct { + readonly unstakeThreshold: Compact; + readonly validatorPayment: Compact; +} + +/** @name ValidatorPrefsTo196 */ +export interface ValidatorPrefsTo196 extends Struct { + readonly validatorPayment: Compact; +} + +/** @name ValidatorPrefsWithBlocked */ +export interface ValidatorPrefsWithBlocked extends Struct { + readonly commission: Compact; + readonly blocked: bool; +} + +/** @name ValidatorPrefsWithCommission */ +export interface ValidatorPrefsWithCommission extends Struct { + readonly commission: Compact; +} + +/** @name Voter */ +export interface Voter extends Struct { + readonly votes: Vec; + readonly stake: Balance; + readonly deposit: Balance; +} + +/** @name VoteWeight */ +export interface VoteWeight extends u64 {} + +export type PHANTOM_STAKING = 'staking'; diff --git a/packages/types/src/interfaces/state/KeyValueOption.spec.ts b/packages/types/src/interfaces/state/KeyValueOption.spec.ts new file mode 100644 index 0000000..45b3f51 --- /dev/null +++ b/packages/types/src/interfaces/state/KeyValueOption.spec.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +describe('KeyValueOption', (): void => { + const registry = new TypeRegistry(); + + it('exposes the properties for key/value', (): void => { + const [key, value] = registry.createType('KeyValueOption', [ + '0x11223344' + ]); + + expect(key.toHex()).toEqual('0x11223344'); + expect(value.isNone).toEqual(true); + }); +}); diff --git a/packages/types/src/interfaces/state/RuntimeVersion.spec.ts b/packages/types/src/interfaces/state/RuntimeVersion.spec.ts new file mode 100644 index 0000000..9d75563 --- /dev/null +++ b/packages/types/src/interfaces/state/RuntimeVersion.spec.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import type { RuntimeVersion } from './types.js'; + +import rpc from '@pezkuwi/types-support/json/RuntimeVersion.002.json' assert { type: 'json' }; + +import { TypeRegistry } from '../../create/index.js'; + +describe('RuntimeVersion', (): void => { + const registry = new TypeRegistry(); + let version: RuntimeVersion; + + beforeEach((): void => { + version = registry.createType('RuntimeVersion', rpc.result); + }); + + it('has the correct authoring', (): void => { + expect(version.authoringVersion.toNumber()).toEqual(10); + }); + + it('has the apis', (): void => { + const [apiId, apiVersion] = version.apis[0]; + + expect(apiId.toHex()).toEqual('0xdf6acb689907609b'); + expect(apiVersion.toNumber()).toEqual(2); + }); + + it('has the correct implementation', (): void => { + expect(version.implName.toString()).toEqual('bizinikiwi-node'); + expect(version.implVersion.toNumber()).toEqual(60); + }); + + it('has the correct spec', (): void => { + expect(version.specName.toString()).toEqual('node'); + expect(version.specVersion.toNumber()).toEqual(60); + }); +}); diff --git a/packages/types/src/interfaces/state/StorageChangeSet.spec.ts b/packages/types/src/interfaces/state/StorageChangeSet.spec.ts new file mode 100644 index 0000000..3d180a4 --- /dev/null +++ b/packages/types/src/interfaces/state/StorageChangeSet.spec.ts @@ -0,0 +1,49 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import { TypeRegistry } from '@pezkuwi/types/create'; +import json from '@pezkuwi/types-support/json/StorageChangeSet.001.json' assert { type: 'json' }; + +describe('StorageChangeSet', (): void => { + const registry = new TypeRegistry(); + + describe('construction', (): void => { + const set = registry.createType('StorageChangeSet', { + block: '0x1234000000000000000000000000000000000000000000000000000000000000', + changes: [ + ['0xab', '0xcd'] + ] + }); + + it('wraps blockHash', (): void => { + expect( + set.block.toHex() + ).toEqual('0x1234000000000000000000000000000000000000000000000000000000000000'); + }); + + it('wraps key/value', (): void => { + expect( + set.changes[0][1].toString() + ).toEqual('0xcd'); + }); + }); + + describe('json', (): void => { + const set = registry.createType('StorageChangeSet', json.params.result); + + it('has the correct hash', (): void => { + expect( + set.block.toHex() + ).toEqual('0x2ad8077937e9a5ceb2e0d57c95b95a6a9edcedc4fb1f14e3bc13245e223a569d'); + }); + + it('has the changes', (): void => { + expect(set.changes).toHaveLength(1); + expect(set.changes[0][0].toHex()).toEqual('0x54bdbdb5e438d574dd4da05ee6131cee'); + }); + }); +}); diff --git a/packages/types/src/interfaces/state/definitions.ts b/packages/types/src/interfaces/state/definitions.ts new file mode 100644 index 0000000..d81aa38 --- /dev/null +++ b/packages/types/src/interfaces/state/definitions.ts @@ -0,0 +1,95 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: { + ApiId: '[u8; 8]', + BlockTrace: { + blockHash: 'Text', + parentHash: 'Text', + tracingTargets: 'Text', + storageKeys: 'Text', + spans: 'Vec', + events: 'Vec' + }, + BlockTraceEvent: { + target: 'Text', + data: 'BlockTraceEventData', + parentId: 'Option' + }, + BlockTraceEventData: { + stringValues: 'HashMap' + }, + BlockTraceSpan: { + id: 'u64', + parentId: 'Option', + name: 'Text', + target: 'Text', + wasm: 'bool' + }, + KeyValueOption: '(StorageKey, Option)', + MigrationStatusResult: { + topRemainingToMigrate: 'u64', + childRemainingToMigrate: 'u64' + }, + ReadProof: { + at: 'Hash', + proof: 'Vec' + }, + RuntimeVersionApi: '(ApiId, u32)', + RuntimeVersion: { + specName: 'Text', + implName: 'Text', + authoringVersion: 'u32', + specVersion: 'u32', + implVersion: 'u32', + apis: 'Vec', + transactionVersion: 'u32', + stateVersion: 'u8' + }, + RuntimeVersionPre4: { + specName: 'Text', + implName: 'Text', + authoringVersion: 'u32', + specVersion: 'u32', + implVersion: 'u32', + apis: 'Vec', + transactionVersion: 'u32' + }, + RuntimeVersionPre3: { + specName: 'Text', + implName: 'Text', + authoringVersion: 'u32', + specVersion: 'u32', + implVersion: 'u32', + apis: 'Vec' + }, + RuntimeVersionPartial: { + specName: 'Text', + specVersion: 'u32', + apis: 'Vec' + }, + SpecVersion: 'u32', + StorageChangeSet: { + block: 'Hash', + changes: 'Vec' + }, + TraceBlockResponse: { + _enum: { + TraceError: 'TraceError', + BlockTrace: 'BlockTrace' + } + }, + TraceError: { + error: 'Text' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/state/index.ts b/packages/types/src/interfaces/state/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/state/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/state/rpc.ts b/packages/types/src/interfaces/state/rpc.ts new file mode 100644 index 0000000..64b6382 --- /dev/null +++ b/packages/types/src/interfaces/state/rpc.ts @@ -0,0 +1,416 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + call: { + alias: ['state_callAt'], + description: 'Perform a call to a builtin on the chain', + params: [ + { + name: 'method', + type: 'Text' + }, + { + name: 'data', + type: 'Bytes' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Bytes' + }, + getChildKeys: { + description: 'Retrieves the keys with prefix of a specific child storage', + params: [ + { + name: 'childStorageKey', + type: 'StorageKey' + }, + { + name: 'childDefinition', + type: 'StorageKey' + }, + { + name: 'childType', + type: 'u32' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Vec' + }, + getChildReadProof: { + description: 'Returns proof of storage for child key entries at a specific block state.', + params: [ + { + name: 'childStorageKey', + type: 'PrefixedStorageKey' + }, + { + name: 'keys', + type: 'Vec' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'ReadProof' + }, + getChildStorage: { + description: 'Retrieves the child storage for a key', + params: [ + { + name: 'childStorageKey', + type: 'StorageKey' + }, + { + name: 'childDefinition', + type: 'StorageKey' + }, + { + name: 'childType', + type: 'u32' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'StorageData' + }, + getChildStorageHash: { + description: 'Retrieves the child storage hash', + params: [ + { + name: 'childStorageKey', + type: 'StorageKey' + }, + { + name: 'childDefinition', + type: 'StorageKey' + }, + { + name: 'childType', + type: 'u32' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Hash' + }, + getChildStorageSize: { + description: 'Retrieves the child storage size', + params: [ + { + name: 'childStorageKey', + type: 'StorageKey' + }, + { + name: 'childDefinition', + type: 'StorageKey' + }, + { + name: 'childType', + type: 'u32' + }, + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'u64' + }, + getKeys: { + deprecated: 'Use `api.rpc.state.getKeysPaged` to retrieve keys', + description: 'Retrieves the keys with a certain prefix', + params: [ + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Vec' + }, + getKeysPaged: { + alias: ['state_getKeysPagedAt'], + description: 'Returns the keys with prefix with pagination support.', + params: [ + { + name: 'key', + type: 'StorageKey' + }, + { + name: 'count', + type: 'u32' + }, + { + isOptional: true, + name: 'startKey', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Vec' + }, + getMetadata: { + description: 'Returns the runtime metadata', + params: [ + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Metadata' + }, + getPairs: { + deprecated: 'Use `api.rpc.state.getKeysPaged` to retrieve keys', + description: 'Returns the keys with prefix, leave empty to get all the keys (deprecated: Use getKeysPaged)', + isUnsafe: true, + params: [ + { + name: 'prefix', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Vec' + }, + getReadProof: { + description: 'Returns proof of storage entries at a specific block state', + params: [ + { + name: 'keys', + type: 'Vec' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'ReadProof' + }, + getRuntimeVersion: { + alias: ['chain_getRuntimeVersion'], + description: 'Get the runtime version', + params: [ + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'RuntimeVersion' + }, + getStorage: { + alias: ['state_getStorageAt'], + description: 'Retrieves the storage for a key', + params: [ + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'StorageData' + }, + getStorageHash: { + alias: ['state_getStorageHashAt'], + description: 'Retrieves the storage hash', + params: [ + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Hash' + }, + getStorageSize: { + alias: ['state_getStorageSizeAt'], + description: 'Retrieves the storage size', + params: [ + { + name: 'key', + type: 'StorageKey' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'u64' + }, + queryStorage: { + description: 'Query historical storage entries (by key) starting from a start block', + isUnsafe: true, + params: [ + { + name: 'keys', + type: 'Vec' + }, + { + name: 'fromBlock', + type: 'Hash' + }, + { + isOptional: true, + name: 'toBlock', + type: 'BlockHash' + } + ], + type: 'Vec' + }, + queryStorageAt: { + description: 'Query storage entries (by key) starting at block hash given as the second parameter', + params: [ + { + name: 'keys', + type: 'Vec' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'Vec' + }, + subscribeRuntimeVersion: { + alias: ['chain_subscribeRuntimeVersion', 'chain_unsubscribeRuntimeVersion'], + description: 'Retrieves the runtime version via subscription', + params: [], + pubsub: [ + 'runtimeVersion', + 'subscribeRuntimeVersion', + 'unsubscribeRuntimeVersion' + ], + type: 'RuntimeVersion' + }, + subscribeStorage: { + description: 'Subscribes to storage changes for the provided keys', + // NOTE Just marking it here to follow the logic - this is unsafe when no + // keys are provided (i.e. subscribing to all), generally this is used + // extensively with normal subscriptions + // isUnsafe: true, + params: [ + { + isOptional: true, + name: 'keys', + type: 'Vec' + } + ], + pubsub: [ + 'storage', + 'subscribeStorage', + 'unsubscribeStorage' + ], + type: 'StorageChangeSet' + }, + traceBlock: { + description: 'Provides a way to trace the re-execution of a single block', + isUnsafe: true, + params: [ + { + name: 'block', + type: 'Hash' + }, + { + name: 'targets', + type: 'Option' + }, + { + name: 'storageKeys', + type: 'Option' + }, + { + name: 'methods', + type: 'Option' + } + ], + type: 'TraceBlockResponse' + }, + trieMigrationStatus: { + description: 'Check current migration state', + isUnsafe: true, + params: [ + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'MigrationStatusResult' + } +}; diff --git a/packages/types/src/interfaces/state/types.ts b/packages/types/src/interfaces/state/types.ts new file mode 100644 index 0000000..4371b22 --- /dev/null +++ b/packages/types/src/interfaces/state/types.ts @@ -0,0 +1,124 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { StorageKey } from '@pezkuwi/types'; +import type { Bytes, Enum, HashMap, Option, Struct, Text, U8aFixed, Vec, bool, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { Hash, StorageData } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ApiId */ +export interface ApiId extends U8aFixed {} + +/** @name BlockTrace */ +export interface BlockTrace extends Struct { + readonly blockHash: Text; + readonly parentHash: Text; + readonly tracingTargets: Text; + readonly storageKeys: Text; + readonly spans: Vec; + readonly events: Vec; +} + +/** @name BlockTraceEvent */ +export interface BlockTraceEvent extends Struct { + readonly target: Text; + readonly data: BlockTraceEventData; + readonly parentId: Option; +} + +/** @name BlockTraceEventData */ +export interface BlockTraceEventData extends Struct { + readonly stringValues: HashMap; +} + +/** @name BlockTraceSpan */ +export interface BlockTraceSpan extends Struct { + readonly id: u64; + readonly parentId: Option; + readonly name: Text; + readonly target: Text; + readonly wasm: bool; +} + +/** @name KeyValueOption */ +export interface KeyValueOption extends ITuple<[StorageKey, Option]> {} + +/** @name MigrationStatusResult */ +export interface MigrationStatusResult extends Struct { + readonly topRemainingToMigrate: u64; + readonly childRemainingToMigrate: u64; +} + +/** @name ReadProof */ +export interface ReadProof extends Struct { + readonly at: Hash; + readonly proof: Vec; +} + +/** @name RuntimeVersion */ +export interface RuntimeVersion extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec; + readonly transactionVersion: u32; + readonly stateVersion: u8; +} + +/** @name RuntimeVersionApi */ +export interface RuntimeVersionApi extends ITuple<[ApiId, u32]> {} + +/** @name RuntimeVersionPartial */ +export interface RuntimeVersionPartial extends Struct { + readonly specName: Text; + readonly specVersion: u32; + readonly apis: Vec; +} + +/** @name RuntimeVersionPre3 */ +export interface RuntimeVersionPre3 extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec; +} + +/** @name RuntimeVersionPre4 */ +export interface RuntimeVersionPre4 extends Struct { + readonly specName: Text; + readonly implName: Text; + readonly authoringVersion: u32; + readonly specVersion: u32; + readonly implVersion: u32; + readonly apis: Vec; + readonly transactionVersion: u32; +} + +/** @name SpecVersion */ +export interface SpecVersion extends u32 {} + +/** @name StorageChangeSet */ +export interface StorageChangeSet extends Struct { + readonly block: Hash; + readonly changes: Vec; +} + +/** @name TraceBlockResponse */ +export interface TraceBlockResponse extends Enum { + readonly isTraceError: boolean; + readonly asTraceError: TraceError; + readonly isBlockTrace: boolean; + readonly asBlockTrace: BlockTrace; + readonly type: 'TraceError' | 'BlockTrace'; +} + +/** @name TraceError */ +export interface TraceError extends Struct { + readonly error: Text; +} + +export type PHANTOM_STATE = 'state'; diff --git a/packages/types/src/interfaces/statement/definitions.ts b/packages/types/src/interfaces/statement/definitions.ts new file mode 100644 index 0000000..c3bd6ef --- /dev/null +++ b/packages/types/src/interfaces/statement/definitions.ts @@ -0,0 +1,26 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + StatementStoreStatementSource: { + _enum: ['Chain', 'Network', 'Local'] + }, + StatementStoreValidStatement: { + maxCount: 'u32', + maxSize: 'u32' + }, + StatementStoreInvalidStatement: { + _enum: ['BadProof', 'NoProof', 'InternalError'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/statement/index.ts b/packages/types/src/interfaces/statement/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/statement/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/statement/runtime.ts b/packages/types/src/interfaces/statement/runtime.ts new file mode 100644 index 0000000..ce873d3 --- /dev/null +++ b/packages/types/src/interfaces/statement/runtime.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + ValidateStatement: [ + { + methods: { + valdate_statement: { + description: 'Validate the statement.', + params: [ + { + name: 'source', + type: 'StatementStoreStatementSource' + }, + { + name: 'statement', + type: 'SpStatementStoreStatement' + } + ], + type: 'Result' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/statement/types.ts b/packages/types/src/interfaces/statement/types.ts new file mode 100644 index 0000000..62d2fd8 --- /dev/null +++ b/packages/types/src/interfaces/statement/types.ts @@ -0,0 +1,28 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Struct, u32 } from '@pezkuwi/types-codec'; + +/** @name StatementStoreInvalidStatement */ +export interface StatementStoreInvalidStatement extends Enum { + readonly isBadProof: boolean; + readonly isNoProof: boolean; + readonly isInternalError: boolean; + readonly type: 'BadProof' | 'NoProof' | 'InternalError'; +} + +/** @name StatementStoreStatementSource */ +export interface StatementStoreStatementSource extends Enum { + readonly isChain: boolean; + readonly isNetwork: boolean; + readonly isLocal: boolean; + readonly type: 'Chain' | 'Network' | 'Local'; +} + +/** @name StatementStoreValidStatement */ +export interface StatementStoreValidStatement extends Struct { + readonly maxCount: u32; + readonly maxSize: u32; +} + +export type PHANTOM_STATEMENT = 'statement'; diff --git a/packages/types/src/interfaces/support/definitions.ts b/packages/types/src/interfaces/support/definitions.ts new file mode 100644 index 0000000..fe55231 --- /dev/null +++ b/packages/types/src/interfaces/support/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + WeightToFeeCoefficient: { + coeffInteger: 'Balance', + coeffFrac: 'Perbill', + negative: 'bool', + degree: 'u8' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/support/index.ts b/packages/types/src/interfaces/support/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/support/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/support/types.ts b/packages/types/src/interfaces/support/types.ts new file mode 100644 index 0000000..8b8d066 --- /dev/null +++ b/packages/types/src/interfaces/support/types.ts @@ -0,0 +1,15 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, bool, u8 } from '@pezkuwi/types-codec'; +import type { Balance, Perbill } from '@pezkuwi/types/interfaces/runtime'; + +/** @name WeightToFeeCoefficient */ +export interface WeightToFeeCoefficient extends Struct { + readonly coeffInteger: Balance; + readonly coeffFrac: Perbill; + readonly negative: bool; + readonly degree: u8; +} + +export type PHANTOM_SUPPORT = 'support'; diff --git a/packages/types/src/interfaces/syncstate/definitions.ts b/packages/types/src/interfaces/syncstate/definitions.ts new file mode 100644 index 0000000..31b2eef --- /dev/null +++ b/packages/types/src/interfaces/syncstate/definitions.ts @@ -0,0 +1,14 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; + +export default { + rpc, + types: {} +} as Definitions; diff --git a/packages/types/src/interfaces/syncstate/index.ts b/packages/types/src/interfaces/syncstate/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/syncstate/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/syncstate/rpc.ts b/packages/types/src/interfaces/syncstate/rpc.ts new file mode 100644 index 0000000..303feb8 --- /dev/null +++ b/packages/types/src/interfaces/syncstate/rpc.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + genSyncSpec: { + description: 'Returns the json-serialized chainspec running the node, with a sync state.', + endpoint: 'sync_state_genSyncSpec', + params: [ + { + name: 'raw', + type: 'bool' + } + ], + type: 'Json' + } +}; diff --git a/packages/types/src/interfaces/syncstate/types.ts b/packages/types/src/interfaces/syncstate/types.ts new file mode 100644 index 0000000..a342397 --- /dev/null +++ b/packages/types/src/interfaces/syncstate/types.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export type PHANTOM_SYNCSTATE = 'syncstate'; diff --git a/packages/types/src/interfaces/system/EventRecord.spec.ts b/packages/types/src/interfaces/system/EventRecord.spec.ts new file mode 100644 index 0000000..7696279 --- /dev/null +++ b/packages/types/src/interfaces/system/EventRecord.spec.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* eslint-disable @typescript-eslint/no-unsafe-assignment */ +/* eslint-disable @typescript-eslint/no-unsafe-member-access */ + +import json1 from '@pezkuwi/types-support/json/EventRecord.001.json' assert { type: 'json' }; +import json3 from '@pezkuwi/types-support/json/EventRecord.003.json' assert { type: 'json' }; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../../create/index.js'; +import { Metadata } from '../../metadata/index.js'; + +describe('EventRecord', (): void => { + const registry = new TypeRegistry(); + + describe('EventRecord (current)', (): void => { + beforeEach((): void => { + const metadata = new Metadata(registry, rpcMetadata); + + registry.setMetadata(metadata); + }); + + it('decodes older EventRecord correctly', (): void => { + const records = registry.createType('Vec', json1.params.result.changes[0][1], true); + const er = records[0]; + + expect(er.phase.type).toEqual('ApplyExtrinsic'); + }); + + it('decodes EventRecord with topics correctly', (): void => { + const hex = json3.params.result.changes[0][1]; + const records = registry.createType('Vec', hex, true); + const er = records[0]; + + expect(er.phase.type).toEqual('ApplyExtrinsic'); + expect(records.toHex()).toEqual(hex); + }); + }); +}); diff --git a/packages/types/src/interfaces/system/definitions.ts b/packages/types/src/interfaces/system/definitions.ts new file mode 100644 index 0000000..905dcd4 --- /dev/null +++ b/packages/types/src/interfaces/system/definitions.ts @@ -0,0 +1,327 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { rpc } from './rpc.js'; +import { runtime } from './runtime.js'; + +export default { + rpc, + runtime, + types: { + AccountInfo: 'AccountInfoWithTripleRefCount', + AccountInfoWithRefCountU8: { + nonce: 'Index', + refcount: 'u8', + data: 'AccountData' + }, + AccountInfoWithRefCount: { + _fallback: 'AccountInfoWithRefCountU8', + nonce: 'Index', + refcount: 'RefCount', + data: 'AccountData' + }, + AccountInfoWithDualRefCount: { + _fallback: 'AccountInfoWithRefCount', + nonce: 'Index', + consumers: 'RefCount', + providers: 'RefCount', + data: 'AccountData' + }, + // original naming + AccountInfoWithProviders: 'AccountInfoWithDualRefCount', + AccountInfoWithTripleRefCount: { + _fallback: 'AccountInfoWithDualRefCount', + nonce: 'Index', + consumers: 'RefCount', + providers: 'RefCount', + sufficients: 'RefCount', + data: 'AccountData' + }, + ApplyExtrinsicResult: 'Result', + ApplyExtrinsicResultPre6: 'Result', + ArithmeticError: { + _enum: [ + 'Underflow', + 'Overflow', + 'DivisionByZero' + ] + }, + BlockLength: { + max: 'PerDispatchClassU32' + }, + BlockWeights: { + baseBlock: 'Weight', + maxBlock: 'Weight', + perClass: 'PerDispatchClassWeightsPerClass' + }, + ChainProperties: 'GenericChainProperties', + ChainType: { + _enum: { + Development: 'Null', + Local: 'Null', + Live: 'Null', + Custom: 'Text' + } + }, + ConsumedWeight: 'PerDispatchClassWeight', + DigestOf: 'Digest', + DispatchClass: { + _enum: ['Normal', 'Operational', 'Mandatory'] + }, + DispatchError: { + _enum: { + Other: 'Null', + CannotLookup: 'Null', + BadOrigin: 'Null', + Module: 'DispatchErrorModule', + ConsumerRemaining: 'Null', + NoProviders: 'Null', + TooManyConsumers: 'Null', + Token: 'TokenError', + Arithmetic: 'ArithmeticError', + Transactional: 'TransactionalError', + Exhausted: 'Null', + Corruption: 'Null', + Unavailable: 'Null' + } + }, + DispatchErrorPre6: { + _enum: { + Other: 'Null', + CannotLookup: 'Null', + BadOrigin: 'Null', + Module: 'DispatchErrorModulePre6', + ConsumerRemaining: 'Null', + NoProviders: 'Null', + TooManyConsumers: 'Null', + Token: 'TokenError', + Arithmetic: 'ArithmeticError', + Transactional: 'TransactionalError' + } + }, + DispatchErrorPre6First: { + // The enum was modified mid-flight, affecting asset chains - + // https://github.com/pezkuwichain/bizinikiwi/pull/10382/files#diff-e4e016b33a82268b6208dc974eea841bad47597865a749fee2f937eb6fdf67b4R498 + _enum: { + Other: 'Null', + CannotLookup: 'Null', + BadOrigin: 'Null', + Module: 'DispatchErrorModulePre6', + ConsumerRemaining: 'Null', + NoProviders: 'Null', + Token: 'TokenError', + Arithmetic: 'ArithmeticError', + Transactional: 'TransactionalError' + } + }, + DispatchErrorModuleU8: { + index: 'u8', + error: 'u8' + }, + DispatchErrorModuleU8a: { + index: 'u8', + error: '[u8; 4]' + }, + DispatchErrorModule: 'DispatchErrorModuleU8a', + DispatchErrorModulePre6: 'DispatchErrorModuleU8', + DispatchErrorTo198: { + module: 'Option', + error: 'u8' + }, + DispatchInfo: { + weight: 'Weight', + class: 'DispatchClass', + paysFee: 'Pays' + }, + DispatchInfoTo190: { + weight: 'Weight', + class: 'DispatchClass' + }, + DispatchInfoTo244: { + weight: 'Weight', + class: 'DispatchClass', + paysFee: 'bool' + }, + DispatchOutcome: 'Result<(), DispatchError>', + DispatchOutcomePre6: 'Result<(), DispatchErrorPre6>', + DispatchResult: 'Result<(), DispatchError>', + DispatchResultOf: 'DispatchResult', + DispatchResultTo198: 'Result<(), Text>', + Event: 'GenericEvent', + EventId: '[u8; 2]', + EventIndex: 'u32', + EventRecord: { + phase: 'Phase', + event: 'Event', + topics: 'Vec' + }, + Health: { + peers: 'u64', + isSyncing: 'bool', + shouldHavePeers: 'bool' + }, + InvalidTransaction: { + _enum: { + Call: 'Null', + Payment: 'Null', + Future: 'Null', + Stale: 'Null', + BadProof: 'Null', + AncientBirthBlock: 'Null', + ExhaustsResources: 'Null', + Custom: 'u8', + BadMandatory: 'Null', + MandatoryDispatch: 'Null', + BadSigner: 'Null' + } + }, + Key: 'Bytes', + LastRuntimeUpgradeInfo: { + specVersion: 'Compact', + specName: 'Text' + }, + NetworkState: { + peerId: 'Text', + listenedAddresses: 'Vec', + externalAddresses: 'Vec', + connectedPeers: 'HashMap', + notConnectedPeers: 'HashMap', + averageDownloadPerSec: 'u64', + averageUploadPerSec: 'u64', + peerset: 'NetworkStatePeerset' + }, + NetworkStatePeerset: { + messageQueue: 'u64', + nodes: 'HashMap' + }, + NetworkStatePeersetInfo: { + connected: 'bool', + reputation: 'i32' + }, + NodeRole: { + _enum: { + Full: 'Null', + LightClient: 'Null', + Authority: 'Null', + UnknownRole: 'u8' + } + }, + NotConnectedPeer: { + knownAddresses: 'Vec', + latestPingTime: 'Option', + versionString: 'Option' + }, + Peer: { + enabled: 'bool', + endpoint: 'PeerEndpoint', + knownAddresses: 'Vec', + latestPingTime: 'PeerPing', + open: 'bool', + versionString: 'Text' + }, + PeerEndpoint: { + listening: 'PeerEndpointAddr' + }, + PeerEndpointAddr: { + _alias: { + localAddr: 'local_addr', + sendBackAddr: 'send_back_addr' + }, + localAddr: 'Text', + sendBackAddr: 'Text' + }, + PeerPing: { + nanos: 'u64', + secs: 'u64' + }, + PeerInfo: { + peerId: 'Text', + roles: 'Text', + protocolVersion: 'u32', + bestHash: 'Hash', + bestNumber: 'BlockNumber' + }, + PerDispatchClassU32: { + normal: 'u32', + operational: 'u32', + mandatory: 'u32' + }, + PerDispatchClassWeight: { + normal: 'Weight', + operational: 'Weight', + mandatory: 'Weight' + }, + PerDispatchClassWeightsPerClass: { + normal: 'WeightPerClass', + operational: 'WeightPerClass', + mandatory: 'WeightPerClass' + }, + Phase: { + _enum: { + ApplyExtrinsic: 'u32', + Finalization: 'Null', + Initialization: 'Null' + } + }, + RawOrigin: { + _enum: { + Root: 'Null', + Signed: 'AccountId', + None: 'Null' + } + }, + RefCount: 'u32', + RefCountTo259: 'u8', + SyncState: { + startingBlock: 'BlockNumber', + currentBlock: 'BlockNumber', + highestBlock: 'Option' + }, + SystemOrigin: 'RawOrigin', + TokenError: { + _enum: [ + 'NoFunds', + 'WouldDie', + 'BelowMinimum', + 'CannotCreate', + 'UnknownAsset', + 'Frozen', + 'Unsupported', + // these are dropped, but still in older versions + // (if this adjusts, will need to take a re-look) + 'Underflow', + 'Overflow' + ] + }, + TransactionValidityError: { + _enum: { + Invalid: 'InvalidTransaction', + Unknown: 'UnknownTransaction' + } + }, + TransactionalError: { + _enum: [ + 'LimitReached', + 'NoLayer' + ] + }, + UnknownTransaction: { + _enum: { + CannotLookup: 'Null', + NoUnsignedValidator: 'Null', + Custom: 'u8' + } + }, + WeightPerClass: { + baseExtrinsic: 'Weight', + maxExtrinsic: 'Option', + maxTotal: 'Option', + reserved: 'Option' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/system/index.ts b/packages/types/src/interfaces/system/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/system/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/system/rpc.ts b/packages/types/src/interfaces/system/rpc.ts new file mode 100644 index 0000000..2da0e70 --- /dev/null +++ b/packages/types/src/interfaces/system/rpc.ts @@ -0,0 +1,144 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsRpc } from '../../types/index.js'; + +export const rpc: DefinitionsRpc = { + accountNextIndex: { + alias: ['account_nextIndex'], + description: 'Retrieves the next accountIndex as available on the node', + params: [ + { + name: 'accountId', + type: 'AccountId' + } + ], + type: 'Index' + }, + addLogFilter: { + description: 'Adds the supplied directives to the current log filter', + isUnsafe: true, + params: [ + { + name: 'directives', + type: 'Text' + } + ], + type: 'Null' + }, + addReservedPeer: { + description: 'Adds a reserved peer', + isUnsafe: true, + params: [ + { + name: 'peer', + type: 'Text' + } + ], + type: 'Text' + }, + chain: { + description: 'Retrieves the chain', + params: [], + type: 'Text' + }, + chainType: { + description: 'Retrieves the chain type', + params: [], + type: 'ChainType' + }, + dryRun: { + alias: ['system_dryRunAt'], + description: 'Dry run an extrinsic at a given block', + isUnsafe: true, + params: [ + { + name: 'extrinsic', + type: 'Bytes' + }, + { + isHistoric: true, + isOptional: true, + name: 'at', + type: 'BlockHash' + } + ], + type: 'ApplyExtrinsicResult' + }, + health: { + description: 'Return health status of the node', + noErrorLog: true, + params: [], + type: 'Health' + }, + localListenAddresses: { + description: 'The addresses include a trailing /p2p/ with the local PeerId, and are thus suitable to be passed to addReservedPeer or as a bootnode address for example', + params: [], + type: 'Vec' + }, + localPeerId: { + description: 'Returns the base58-encoded PeerId of the node', + params: [], + type: 'Text' + }, + name: { + description: 'Retrieves the node name', + params: [], + type: 'Text' + }, + networkState: { + alias: ['system_unstable_networkState'], + description: 'Returns current state of the network', + isUnsafe: true, + params: [], + type: 'NetworkState' + }, + nodeRoles: { + description: 'Returns the roles the node is running as', + params: [], + type: 'Vec' + }, + peers: { + description: 'Returns the currently connected peers', + isUnsafe: true, + params: [], + type: 'Vec' + }, + properties: { + description: 'Get a custom set of properties as a JSON object, defined in the chain spec', + params: [], + type: 'ChainProperties' + }, + removeReservedPeer: { + description: 'Remove a reserved peer', + isUnsafe: true, + params: [ + { + name: 'peerId', + type: 'Text' + } + ], + type: 'Text' + }, + reservedPeers: { + description: 'Returns the list of reserved peers', + params: [], + type: 'Vec' + }, + resetLogFilter: { + description: 'Resets the log filter to Bizinikiwi defaults', + isUnsafe: true, + params: [], + type: 'Null' + }, + syncState: { + description: 'Returns the state of the syncing of the node', + params: [], + type: 'SyncState' + }, + version: { + description: 'Retrieves the version of the node', + params: [], + type: 'Text' + } +}; diff --git a/packages/types/src/interfaces/system/runtime.ts b/packages/types/src/interfaces/system/runtime.ts new file mode 100644 index 0000000..703ce91 --- /dev/null +++ b/packages/types/src/interfaces/system/runtime.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + AccountNonceApi: [ + { + methods: { + account_nonce: { + description: 'The API to query account nonce (aka transaction index)', + params: [ + { + name: 'accountId', + type: 'AccountId' + } + ], + type: 'Index' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/system/types.ts b/packages/types/src/interfaces/system/types.ts new file mode 100644 index 0000000..c342e7b --- /dev/null +++ b/packages/types/src/interfaces/system/types.ts @@ -0,0 +1,476 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { GenericChainProperties, GenericEvent } from '@pezkuwi/types'; +import type { Bytes, Compact, Enum, HashMap, Option, Result, Struct, Text, U8aFixed, Vec, bool, i32, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountData } from '@pezkuwi/types/interfaces/balances'; +import type { AccountId, BlockNumber, Digest, Hash, Index, Pays, Weight } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AccountInfo */ +export interface AccountInfo extends AccountInfoWithTripleRefCount {} + +/** @name AccountInfoWithDualRefCount */ +export interface AccountInfoWithDualRefCount extends Struct { + readonly nonce: Index; + readonly consumers: RefCount; + readonly providers: RefCount; + readonly data: AccountData; +} + +/** @name AccountInfoWithProviders */ +export interface AccountInfoWithProviders extends AccountInfoWithDualRefCount {} + +/** @name AccountInfoWithRefCount */ +export interface AccountInfoWithRefCount extends Struct { + readonly nonce: Index; + readonly refcount: RefCount; + readonly data: AccountData; +} + +/** @name AccountInfoWithRefCountU8 */ +export interface AccountInfoWithRefCountU8 extends Struct { + readonly nonce: Index; + readonly refcount: u8; + readonly data: AccountData; +} + +/** @name AccountInfoWithTripleRefCount */ +export interface AccountInfoWithTripleRefCount extends Struct { + readonly nonce: Index; + readonly consumers: RefCount; + readonly providers: RefCount; + readonly sufficients: RefCount; + readonly data: AccountData; +} + +/** @name ApplyExtrinsicResult */ +export interface ApplyExtrinsicResult extends Result { + readonly isErr: boolean; + readonly asErr: TransactionValidityError; + readonly isOk: boolean; + readonly asOk: DispatchOutcome; +} + +/** @name ApplyExtrinsicResultPre6 */ +export interface ApplyExtrinsicResultPre6 extends Result { + readonly isErr: boolean; + readonly asErr: TransactionValidityError; + readonly isOk: boolean; + readonly asOk: DispatchOutcomePre6; +} + +/** @name ArithmeticError */ +export interface ArithmeticError extends Enum { + readonly isUnderflow: boolean; + readonly isOverflow: boolean; + readonly isDivisionByZero: boolean; + readonly type: 'Underflow' | 'Overflow' | 'DivisionByZero'; +} + +/** @name BlockLength */ +export interface BlockLength extends Struct { + readonly max: PerDispatchClassU32; +} + +/** @name BlockWeights */ +export interface BlockWeights extends Struct { + readonly baseBlock: Weight; + readonly maxBlock: Weight; + readonly perClass: PerDispatchClassWeightsPerClass; +} + +/** @name ChainProperties */ +export interface ChainProperties extends GenericChainProperties {} + +/** @name ChainType */ +export interface ChainType extends Enum { + readonly isDevelopment: boolean; + readonly isLocal: boolean; + readonly isLive: boolean; + readonly isCustom: boolean; + readonly asCustom: Text; + readonly type: 'Development' | 'Local' | 'Live' | 'Custom'; +} + +/** @name ConsumedWeight */ +export interface ConsumedWeight extends PerDispatchClassWeight {} + +/** @name DigestOf */ +export interface DigestOf extends Digest {} + +/** @name DispatchClass */ +export interface DispatchClass extends Enum { + readonly isNormal: boolean; + readonly isOperational: boolean; + readonly isMandatory: boolean; + readonly type: 'Normal' | 'Operational' | 'Mandatory'; +} + +/** @name DispatchError */ +export interface DispatchError extends Enum { + readonly isOther: boolean; + readonly isCannotLookup: boolean; + readonly isBadOrigin: boolean; + readonly isModule: boolean; + readonly asModule: DispatchErrorModule; + readonly isConsumerRemaining: boolean; + readonly isNoProviders: boolean; + readonly isTooManyConsumers: boolean; + readonly isToken: boolean; + readonly asToken: TokenError; + readonly isArithmetic: boolean; + readonly asArithmetic: ArithmeticError; + readonly isTransactional: boolean; + readonly asTransactional: TransactionalError; + readonly isExhausted: boolean; + readonly isCorruption: boolean; + readonly isUnavailable: boolean; + readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional' | 'Exhausted' | 'Corruption' | 'Unavailable'; +} + +/** @name DispatchErrorModule */ +export interface DispatchErrorModule extends DispatchErrorModuleU8a {} + +/** @name DispatchErrorModulePre6 */ +export interface DispatchErrorModulePre6 extends DispatchErrorModuleU8 {} + +/** @name DispatchErrorModuleU8 */ +export interface DispatchErrorModuleU8 extends Struct { + readonly index: u8; + readonly error: u8; +} + +/** @name DispatchErrorModuleU8a */ +export interface DispatchErrorModuleU8a extends Struct { + readonly index: u8; + readonly error: U8aFixed; +} + +/** @name DispatchErrorPre6 */ +export interface DispatchErrorPre6 extends Enum { + readonly isOther: boolean; + readonly isCannotLookup: boolean; + readonly isBadOrigin: boolean; + readonly isModule: boolean; + readonly asModule: DispatchErrorModulePre6; + readonly isConsumerRemaining: boolean; + readonly isNoProviders: boolean; + readonly isTooManyConsumers: boolean; + readonly isToken: boolean; + readonly asToken: TokenError; + readonly isArithmetic: boolean; + readonly asArithmetic: ArithmeticError; + readonly isTransactional: boolean; + readonly asTransactional: TransactionalError; + readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'TooManyConsumers' | 'Token' | 'Arithmetic' | 'Transactional'; +} + +/** @name DispatchErrorPre6First */ +export interface DispatchErrorPre6First extends Enum { + readonly isOther: boolean; + readonly isCannotLookup: boolean; + readonly isBadOrigin: boolean; + readonly isModule: boolean; + readonly asModule: DispatchErrorModulePre6; + readonly isConsumerRemaining: boolean; + readonly isNoProviders: boolean; + readonly isToken: boolean; + readonly asToken: TokenError; + readonly isArithmetic: boolean; + readonly asArithmetic: ArithmeticError; + readonly isTransactional: boolean; + readonly asTransactional: TransactionalError; + readonly type: 'Other' | 'CannotLookup' | 'BadOrigin' | 'Module' | 'ConsumerRemaining' | 'NoProviders' | 'Token' | 'Arithmetic' | 'Transactional'; +} + +/** @name DispatchErrorTo198 */ +export interface DispatchErrorTo198 extends Struct { + readonly module: Option; + readonly error: u8; +} + +/** @name DispatchInfo */ +export interface DispatchInfo extends Struct { + readonly weight: Weight; + readonly class: DispatchClass; + readonly paysFee: Pays; +} + +/** @name DispatchInfoTo190 */ +export interface DispatchInfoTo190 extends Struct { + readonly weight: Weight; + readonly class: DispatchClass; +} + +/** @name DispatchInfoTo244 */ +export interface DispatchInfoTo244 extends Struct { + readonly weight: Weight; + readonly class: DispatchClass; + readonly paysFee: bool; +} + +/** @name DispatchOutcome */ +export interface DispatchOutcome extends Result, DispatchError> { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: ITuple<[]>; +} + +/** @name DispatchOutcomePre6 */ +export interface DispatchOutcomePre6 extends Result, DispatchErrorPre6> { + readonly isErr: boolean; + readonly asErr: DispatchErrorPre6; + readonly isOk: boolean; + readonly asOk: ITuple<[]>; +} + +/** @name DispatchResult */ +export interface DispatchResult extends Result, DispatchError> { + readonly isErr: boolean; + readonly asErr: DispatchError; + readonly isOk: boolean; + readonly asOk: ITuple<[]>; +} + +/** @name DispatchResultOf */ +export interface DispatchResultOf extends DispatchResult {} + +/** @name DispatchResultTo198 */ +export interface DispatchResultTo198 extends Result, Text> { + readonly isErr: boolean; + readonly asErr: Text; + readonly isOk: boolean; + readonly asOk: ITuple<[]>; +} + +/** @name Event */ +export interface Event extends GenericEvent {} + +/** @name EventId */ +export interface EventId extends U8aFixed {} + +/** @name EventIndex */ +export interface EventIndex extends u32 {} + +/** @name EventRecord */ +export interface EventRecord extends Struct { + readonly phase: Phase; + readonly event: Event; + readonly topics: Vec; +} + +/** @name Health */ +export interface Health extends Struct { + readonly peers: u64; + readonly isSyncing: bool; + readonly shouldHavePeers: bool; +} + +/** @name InvalidTransaction */ +export interface InvalidTransaction extends Enum { + readonly isCall: boolean; + readonly isPayment: boolean; + readonly isFuture: boolean; + readonly isStale: boolean; + readonly isBadProof: boolean; + readonly isAncientBirthBlock: boolean; + readonly isExhaustsResources: boolean; + readonly isCustom: boolean; + readonly asCustom: u8; + readonly isBadMandatory: boolean; + readonly isMandatoryDispatch: boolean; + readonly isBadSigner: boolean; + readonly type: 'Call' | 'Payment' | 'Future' | 'Stale' | 'BadProof' | 'AncientBirthBlock' | 'ExhaustsResources' | 'Custom' | 'BadMandatory' | 'MandatoryDispatch' | 'BadSigner'; +} + +/** @name Key */ +export interface Key extends Bytes {} + +/** @name LastRuntimeUpgradeInfo */ +export interface LastRuntimeUpgradeInfo extends Struct { + readonly specVersion: Compact; + readonly specName: Text; +} + +/** @name NetworkState */ +export interface NetworkState extends Struct { + readonly peerId: Text; + readonly listenedAddresses: Vec; + readonly externalAddresses: Vec; + readonly connectedPeers: HashMap; + readonly notConnectedPeers: HashMap; + readonly averageDownloadPerSec: u64; + readonly averageUploadPerSec: u64; + readonly peerset: NetworkStatePeerset; +} + +/** @name NetworkStatePeerset */ +export interface NetworkStatePeerset extends Struct { + readonly messageQueue: u64; + readonly nodes: HashMap; +} + +/** @name NetworkStatePeersetInfo */ +export interface NetworkStatePeersetInfo extends Struct { + readonly connected: bool; + readonly reputation: i32; +} + +/** @name NodeRole */ +export interface NodeRole extends Enum { + readonly isFull: boolean; + readonly isLightClient: boolean; + readonly isAuthority: boolean; + readonly isUnknownRole: boolean; + readonly asUnknownRole: u8; + readonly type: 'Full' | 'LightClient' | 'Authority' | 'UnknownRole'; +} + +/** @name NotConnectedPeer */ +export interface NotConnectedPeer extends Struct { + readonly knownAddresses: Vec; + readonly latestPingTime: Option; + readonly versionString: Option; +} + +/** @name Peer */ +export interface Peer extends Struct { + readonly enabled: bool; + readonly endpoint: PeerEndpoint; + readonly knownAddresses: Vec; + readonly latestPingTime: PeerPing; + readonly open: bool; + readonly versionString: Text; +} + +/** @name PeerEndpoint */ +export interface PeerEndpoint extends Struct { + readonly listening: PeerEndpointAddr; +} + +/** @name PeerEndpointAddr */ +export interface PeerEndpointAddr extends Struct { + readonly localAddr: Text; + readonly sendBackAddr: Text; +} + +/** @name PeerInfo */ +export interface PeerInfo extends Struct { + readonly peerId: Text; + readonly roles: Text; + readonly protocolVersion: u32; + readonly bestHash: Hash; + readonly bestNumber: BlockNumber; +} + +/** @name PeerPing */ +export interface PeerPing extends Struct { + readonly nanos: u64; + readonly secs: u64; +} + +/** @name PerDispatchClassU32 */ +export interface PerDispatchClassU32 extends Struct { + readonly normal: u32; + readonly operational: u32; + readonly mandatory: u32; +} + +/** @name PerDispatchClassWeight */ +export interface PerDispatchClassWeight extends Struct { + readonly normal: Weight; + readonly operational: Weight; + readonly mandatory: Weight; +} + +/** @name PerDispatchClassWeightsPerClass */ +export interface PerDispatchClassWeightsPerClass extends Struct { + readonly normal: WeightPerClass; + readonly operational: WeightPerClass; + readonly mandatory: WeightPerClass; +} + +/** @name Phase */ +export interface Phase extends Enum { + readonly isApplyExtrinsic: boolean; + readonly asApplyExtrinsic: u32; + readonly isFinalization: boolean; + readonly isInitialization: boolean; + readonly type: 'ApplyExtrinsic' | 'Finalization' | 'Initialization'; +} + +/** @name RawOrigin */ +export interface RawOrigin extends Enum { + readonly isRoot: boolean; + readonly isSigned: boolean; + readonly asSigned: AccountId; + readonly isNone: boolean; + readonly type: 'Root' | 'Signed' | 'None'; +} + +/** @name RefCount */ +export interface RefCount extends u32 {} + +/** @name RefCountTo259 */ +export interface RefCountTo259 extends u8 {} + +/** @name SyncState */ +export interface SyncState extends Struct { + readonly startingBlock: BlockNumber; + readonly currentBlock: BlockNumber; + readonly highestBlock: Option; +} + +/** @name SystemOrigin */ +export interface SystemOrigin extends RawOrigin {} + +/** @name TokenError */ +export interface TokenError extends Enum { + readonly isNoFunds: boolean; + readonly isWouldDie: boolean; + readonly isBelowMinimum: boolean; + readonly isCannotCreate: boolean; + readonly isUnknownAsset: boolean; + readonly isFrozen: boolean; + readonly isUnsupported: boolean; + readonly isUnderflow: boolean; + readonly isOverflow: boolean; + readonly type: 'NoFunds' | 'WouldDie' | 'BelowMinimum' | 'CannotCreate' | 'UnknownAsset' | 'Frozen' | 'Unsupported' | 'Underflow' | 'Overflow'; +} + +/** @name TransactionalError */ +export interface TransactionalError extends Enum { + readonly isLimitReached: boolean; + readonly isNoLayer: boolean; + readonly type: 'LimitReached' | 'NoLayer'; +} + +/** @name TransactionValidityError */ +export interface TransactionValidityError extends Enum { + readonly isInvalid: boolean; + readonly asInvalid: InvalidTransaction; + readonly isUnknown: boolean; + readonly asUnknown: UnknownTransaction; + readonly type: 'Invalid' | 'Unknown'; +} + +/** @name UnknownTransaction */ +export interface UnknownTransaction extends Enum { + readonly isCannotLookup: boolean; + readonly isNoUnsignedValidator: boolean; + readonly isCustom: boolean; + readonly asCustom: u8; + readonly type: 'CannotLookup' | 'NoUnsignedValidator' | 'Custom'; +} + +/** @name WeightPerClass */ +export interface WeightPerClass extends Struct { + readonly baseExtrinsic: Weight; + readonly maxExtrinsic: Option; + readonly maxTotal: Option; + readonly reserved: Option; +} + +export type PHANTOM_SYSTEM = 'system'; diff --git a/packages/types/src/interfaces/teyrchains/SystemInherentData.spec.ts b/packages/types/src/interfaces/teyrchains/SystemInherentData.spec.ts new file mode 100644 index 0000000..e2d27cf --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/SystemInherentData.spec.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; + +const KILT = '0x8d01d51627af4cb8414b6ad454e7204424e7e8489738c5fabe20cee3256bd69b7534d12b2798b04e574d05fb8a4b163745b1e610fb75de59399271bd57e49738506a7a93ee0038dd6a1b3bfbb58f747a7b2052058620839a8e2d03f5a43b48ca6000c66a00299600004412f5d19eed1a0cbafadd3b050b6e87fbcdff0a4b2ab0dce498d2180f7d7fe40000000000000000000000000000000000000000000000000000000000000000000000200318f49e207f03cfdce586301014700e2c25930041585f078d434d6125b40443fe11fd292d13a410000008004c5f0ec2d17a76153ff51817f12d9cfc3c7f0400c106807ff6802ca40549562ffe6b52b99b82732a11693a9f94e719eb6091a28361553b7e1d6f8071c05107fa3ba69c860039b5eaf97de7405f1b96f158678ce0581618e4cb00ed8020617372d0786928a794bc2168d93a97c9934583395972b4d4ab49c99242035380947dbbbf1d13550ebd1c60bdad2e6e4905e72acf2135a3ecf9539b14ac336a1e8048b33fdf9c46b272d66e2467dba4fa4709dd3e560183d5ef462c8bdf09aa14e58083a5a2c804e9dbc8839a7d520a726c0518a82ff872d1ec2932c1142866c945648090bbb5b7644e54d533f3630580cb8074409ddcc510eab64ecc32216c912ac87a8071959a3ccb6903f9fb571c5eb87649e1a4d7fc095b7a9d88fd6941dadf0d251280ba7052563c97b91cccc3a3762e0a8d73a0fd2018bd63932fdf6e6dfb8e998705807970bd80ad702930fe83ab570956c242563c1ea2560e5bed94456168ded1ec2e801c3452fb59635b2a0def7e3a91cd071d57beb4d92294484ee948728d72a8a2ed80974da04ec2f2a432413995b1c30d9903e6c69b63d25ea3564c3fd604513c045480365249e4644cac1c396b92b70c2d8daa355a87236ca6ff3fdcf0e0039351fa911501802100803d7774397092a7bd12ebb498311ea37c46eeeec8460cbf88e03f55bfa109817f80f2ce141c02c934f343545350b70e54c8c2a0bb12f886462797399672b145ff0cad019e0da05ca59913bc38a8630590f2627c014180412934e1ef5da416397acfe5b81b2c604c81fd696fabcb082451b88dd46feafc585f078d434d6125b40443fe11fd292d13a410000008008077b468c9a59a67ed7ae15442240aba9ae23e7b632fe6e5bdb97b2b40b4aa10a135037f0006de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385a50200005000008000000800000000200000000400000500000005000000580200002c010000000020030004000000286bee0000000004000000040000000500000000000000000000000000000000000000000000000000000000000000000000000800000000200000040000000400000000040000b004000000000000000000001400000004000000040000000000000000000000000a000000000000000000000000000000000000009901801804800fcf38b60d2719964e4c4cc392848e51c8ce99e85efc57368586ed54938b6bf180aebb1dfa081e0f528a33c48cc0d64717ff2e6de6f73e001bc0c608d24f5b79b7809ee0a05d790e73768b384a037678e8cdc4fcfcb90ca782824c5119294de00fdb0000'; + +describe('SystemInherentData', (): void => { + const registry = new TypeRegistry(); + + registry.register({ BlockNumber: 'u64' }); + + it('can decode Kilt', (): void => { + const value = registry.createType('SystemInherentData', KILT); + + // console.log(JSON.stringify(value.toHuman(), null, 2)); + + expect(value.toHuman()).toMatchObject({ + validationData: { + maxPovSize: '0', + parentHead: '0xd51627af4cb8414b6ad454e7204424e7e8489738c5fabe20cee3256bd69b7534d12b2798b04e574d05fb8a4b163745b1e610fb75de59399271bd57e49738506a7a93ee0038dd6a1b3bfbb58f747a7b2052058620839a8e2d03f5a43b48ca6000c66a00', + relayParentNumber: '38,441', + relayParentStorageRoot: '0x4412f5d19eed1a0cbafadd3b050b6e87fbcdff0a4b2ab0dce498d2180f7d7fe4' + } + }); + }); +}); diff --git a/packages/types/src/interfaces/teyrchains/definitions.ts b/packages/types/src/interfaces/teyrchains/definitions.ts new file mode 100644 index 0000000..19b7e3d --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/definitions.ts @@ -0,0 +1,571 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import hrmpTypes from './hrmp.js'; +import { runtime } from './runtime.js'; +import slotTypes from './slots.js'; + +// proposeTeyrchain +const proposeTypes = { + TeyrchainProposal: { + proposer: 'AccountId', + genesisHead: 'HeadData', + validators: 'Vec', + name: 'Bytes', + balance: 'Balance' + }, + RegisteredTeyrchainInfo: { + validators: 'Vec', + proposer: 'AccountId' + } +}; + +const pezcumulusTypes = { + ServiceQuality: { + _enum: ['Ordered', 'Fast'] + } +}; + +const disputeTypes = { + DisputeLocation: { + _enum: ['Local', 'Remote'] + }, + DisputeResult: { + _enum: ['Valid', 'Invalid'] + }, + DisputeState: { + validatorsFor: 'BitVec', + validatorsAgainst: 'BitVec', + start: 'BlockNumber', + concludedAt: 'Option' + }, + DisputeStatement: { + _enum: { + Valid: 'ValidDisputeStatementKind', + Invalid: 'InvalidDisputeStatementKind' + } + }, + DisputeStatementSet: { + candidateHash: 'CandidateHash', + session: 'SessionIndex', + statements: 'Vec<(DisputeStatement, ParaValidatorIndex, ValidatorSignature)>' + }, + ExecutorParam: { + _enum: { + Phantom: 'Null', // index starts at 1... empty slot at 0 + MaxMemoryPages: 'u32', + StackLogicalMax: 'u32', + StackNativeMax: 'u32', + PrecheckingMaxMemory: 'u64', + PvfPrepTimeout: '(PvfPrepTimeoutKind, u64)', + PvfExecTimeout: '(PvfExecTimeoutKind, u64)' + } + }, + ExecutorParamsHash: 'Hash', + ExecutorParams: 'Vec', + ExplicitDisputeStatement: { + valid: 'bool', + candidateHash: 'CandidateHash', + session: 'SessionIndex' + }, + InvalidDisputeStatementKind: { + _enum: ['Explicit'] + }, + MultiDisputeStatementSet: 'Vec', + PvfExecTimeoutKind: { + _enum: ['Backing', 'Approval'] + }, + PvfPrepTimeoutKind: { + _enum: ['Precheck', 'Lenient'] + }, + ValidDisputeStatementKind: { + _enum: { + Explicit: 'Null', + BackingSeconded: 'Hash', + BackingValid: 'Hash', + ApprovalChecking: 'Null' + } + } +}; + +export default { + rpc: {}, + runtime, + types: { + ...pezcumulusTypes, + ...disputeTypes, + ...hrmpTypes, + ...proposeTypes, + ...slotTypes, + AbridgedCandidateReceipt: { + teyrchainIndex: 'ParaId', + relayParent: 'Hash', + headData: 'HeadData', + collator: 'CollatorId', + signature: 'CollatorSignature', + povBlockHash: 'Hash', + commitments: 'CandidateCommitments' + }, + AbridgedHostConfiguration: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + maxUpwardQueueCount: 'u32', + maxUpwardQueueSize: 'u32', + maxUpwardMessageSize: 'u32', + maxUpwardMessageNumPerCandidate: 'u32', + hrmpMaxMessageNumPerCandidate: 'u32', + validationUpgradeFrequency: 'BlockNumber', + validationUpgradeDelay: 'BlockNumber' + }, + AbridgedHrmpChannel: { + maxCapacity: 'u32', + maxTotalSize: 'u32', + maxMessageSize: 'u32', + msgCount: 'u32', + totalSize: 'u32', + mqcHead: 'Option' + }, + ApprovalVotingParams: { + maxApprovalCoalesceCount: 'u32' + }, + AssignmentId: 'AccountId', + AssignmentKind: { + _enum: { + Teyrchain: 'Null', + Parathread: '(CollatorId, u32)' + } + }, + AsyncBackingParams: { + maxCandidateDepth: 'u32', + allowedAncestryLen: 'u32' + }, + AttestedCandidate: { + candidate: 'AbridgedCandidateReceipt', + validityVotes: 'Vec', + validatorIndices: 'BitVec' + }, + AuthorityDiscoveryId: 'AccountId', + AvailabilityBitfield: 'BitVec', + AvailabilityBitfieldRecord: { + bitfield: 'AvailabilityBitfield', + submittedTt: 'BlockNumber' + }, + BackedCandidate: { + candidate: 'CommittedCandidateReceipt', + validityVotes: 'Vec', + validatorIndices: 'BitVec' + }, + BackingState: { + constraints: 'Constraints', + pendingAvailability: 'Vec' + }, + BufferedSessionChange: { + applyAt: 'BlockNumber', + validators: 'Vec', + queued: 'Vec', + sessionIndex: 'SessionIndex' + }, + CandidateCommitments: { + upwardMessages: 'Vec', + horizontalMessages: 'Vec', + newValidationCode: 'Option', + headData: 'HeadData', + processedDownwardMessages: 'u32', + hrmpWatermark: 'BlockNumber' + }, + CandidateDescriptor: { + paraId: 'ParaId', + relayParent: 'RelayChainHash', + collatorId: 'CollatorId', + persistedValidationDataHash: 'Hash', + povHash: 'Hash', + erasureRoot: 'Hash', + signature: 'CollatorSignature', + paraHead: 'Hash', + validationCodeHash: 'ValidationCodeHash' + }, + CandidateEvent: { + _enum: { + CandidateBacked: '(CandidateReceipt, HeadData, CoreIndex, GroupIndex)', + CandidateIncluded: '(CandidateReceipt, HeadData, CoreIndex, GroupIndex)', + CandidateTimedOut: '(CandidateReceipt, HeadData, CoreIndex)' + } + }, + CandidateHash: 'Hash', + CandidateInfo: { + who: 'AccountId', + deposit: 'Balance' + }, + CandidatePendingAvailability: { + core: 'CoreIndex', + hash: 'CandidateHash', + descriptor: 'CandidateDescriptor', + availabilityVotes: 'BitVec', + backers: 'BitVec', + relayParentNumber: 'BlockNumber', + backedInNumber: 'BlockNumber', + backingGroup: 'GroupIndex' + }, + CandidateReceipt: { + descriptor: 'CandidateDescriptor', + commitmentsHash: 'Hash' + }, + GlobalValidationData: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + blockNumber: 'BlockNumber' + }, + CollatorId: 'H256', + CollatorSignature: 'Signature', + CommittedCandidateReceipt: { + descriptor: 'CandidateDescriptor', + commitments: 'CandidateCommitments' + }, + Constraints: { + minRelayParentNumber: 'BlockNumber', + maxPovSize: 'u32', + maxCodeSize: 'u32', + umpRemaining: 'u32', + umpRemainingBytes: 'u32', + maxUmpNumPerCandidate: 'u32', + dmpRemainingMessages: 'Vec', + hrmpInbound: 'InboundHrmpLimitations', + hrmpChannelsOut: 'HashMap', + maxHrmpNumPerCandidate: 'u32', + requiredParent: 'HeadData', + validationCodeHash: 'ValidationCodeHash', + upgradeRestriction: 'Option', + futureValidationCode: 'Option<(BlockNumber, ValidationCodeHash)>' + }, + CoreAssignment: { + core: 'CoreIndex', + paraId: 'ParaId', + kind: 'AssignmentKind', + groupIdx: 'GroupIndex' + }, + CoreIndex: 'u32', + CoreOccupied: { + _enum: { + Parathread: 'ParathreadEntry', + Teyrchain: 'Null' + } + }, + CoreState: { + _enum: { + Occupied: 'OccupiedCore', + Scheduled: 'ScheduledCore', + Free: 'Null' + } + }, + DisputeProof: { + timeSlot: 'DisputesTimeSlot', + kind: 'SlashingOffenceKind', + validatorIndex: 'ValidatorIndex', + validatorId: 'ValidatorId' + }, + DisputesTimeSlot: { + sessionIndex: 'SessionIndex', + candidateHash: 'CandidateHash' + }, + DoubleVoteReport: { + identity: 'ValidatorId', + first: '(Statement, ValidatorSignature)', + second: '(Statement, ValidatorSignature)', + proof: 'MembershipProof', + signingContext: 'SigningContext' + }, + DownwardMessage: 'Bytes', + GroupIndex: 'u32', + GroupRotationInfo: { + sessionStartBlock: 'BlockNumber', + groupRotationFrequency: 'BlockNumber', + now: 'BlockNumber' + }, + GlobalValidationSchedule: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + blockNumber: 'BlockNumber' + }, + HeadData: 'Bytes', + HostConfiguration: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + maxUpwardQueueCount: 'u32', + maxUpwardQueueSize: 'u32', + maxUpwardMessageSize: 'u32', + maxUpwardMessageNumPerCandidate: 'u32', + hrmpMaxMessageNumPerCandidate: 'u32', + validationUpgradeFrequency: 'BlockNumber', + validationUpgradeDelay: 'BlockNumber', + maxPovSize: 'u32', + maxDownwardMessageSize: 'u32', + preferredDispatchableUpwardMessagesStepWeight: 'Weight', + hrmpMaxTeyrchainOutboundChannels: 'u32', + hrmpMaxParathreadOutboundChannels: 'u32', + hrmpOpenRequestTtl: 'u32', + hrmpSenderDeposit: 'Balance', + hrmpRecipientDeposit: 'Balance', + hrmpChannelMaxCapacity: 'u32', + hrmpChannelMaxTotalSize: 'u32', + hrmpMaxTeyrchainInboundChannels: 'u32', + hrmpMaxParathreadInboundChannels: 'u32', + hrmpChannelMaxMessageSize: 'u32', + codeRetentionPeriod: 'BlockNumber', + parathreadCores: 'u32', + parathreadRetries: 'u32', + groupRotationFrequency: 'BlockNumber', + chainAvailabilityPeriod: 'BlockNumber', + threadAvailabilityPeriod: 'BlockNumber', + schedulingLookahead: 'u32', + maxValidatorsPerCore: 'Option', + maxValidators: 'Option', + disputePeriod: 'SessionIndex', + disputePostConclusionAcceptancePeriod: 'BlockNumber', + disputeMaxSpamSlots: 'u32', + disputeConclusionByTimeOutPeriod: 'BlockNumber', + noShowSlots: 'u32', + nDelayTranches: 'u32', + zerothDelayTrancheWidth: 'u32', + neededApprovals: 'u32', + relayVrfModuloSamples: 'u32' + }, + InboundDownwardMessage: { + pubSentAt: 'BlockNumber', + pubMsg: 'DownwardMessage' + }, + InboundHrmpMessage: { + sentAt: 'BlockNumber', + data: 'Bytes' + }, + InboundHrmpLimitations: { + validWatermarks: 'Vec' + }, + InboundHrmpMessages: 'Vec', + LocalValidationData: { + parentHead: 'HeadData', + balance: 'Balance', + codeUpgradeAllowed: 'Option' + }, + MessageIngestionType: { + downwardMessages: 'Vec', + horizontalMessages: 'BTreeMap' + }, + MessageQueueChain: 'RelayChainHash', + NodeFeatures: 'BitVec', + OccupiedCore: { + nextUpOnAvailable: 'Option', + occupiedSince: 'BlockNumber', + timeOutAt: 'BlockNumber', + nextUpOnTimeOut: 'Option', + availability: 'BitVec', + groupResponsible: 'GroupIndex', + candidateHash: 'CandidateHash', + candidateDescriptor: 'CandidateDescriptor' + }, + OccupiedCoreAssumption: { + _enum: ['Included,', 'TimedOut', 'Free'] + }, + OutboundHrmpChannelLimitations: { + bytesRemaining: 'u32', + messagesRemaining: 'u32' + }, + OutboundHrmpMessage: { + recipient: 'u32', + data: 'Bytes' + }, + PendingSlashes: { + _alias: { + slashKeys: 'keys' + }, + slashKeys: 'BTreeMap', + kind: 'SlashingOffenceKind' + }, + TeyrchainDispatchOrigin: { + _enum: ['Signed', 'Teyrchain', 'Root'] + }, + TeyrchainInherentData: { + validationData: 'PersistedValidationData', + relayChainState: 'StorageProof', + downwardMessages: 'Vec', + horizontalMessages: 'BTreeMap' + }, + TeyrchainsInherentData: { + bitfields: 'SignedAvailabilityBitfields', + backedCandidates: 'Vec', + disputes: 'MultiDisputeStatementSet', + parentHeader: 'Header' + }, + ParaGenesisArgs: { + genesisHead: 'Bytes', + validationCode: 'Bytes', + teyrchain: 'bool' + }, + ParaId: 'u32', + ParaInfo: { + manager: 'AccountId', + deposit: 'Balance', + locked: 'bool' + }, + ParaLifecycle: { + _enum: ['Onboarding', 'Parathread', 'Teyrchain', 'UpgradingToTeyrchain', 'DowngradingToParathread', 'OutgoingParathread', 'OutgoingTeyrchain'] + }, + ParaPastCodeMeta: { + upgradeTimes: 'Vec', + lastPruned: 'Option' + }, + ParaScheduling: { + _enum: ['Always', 'Dynamic'] + }, + ParathreadClaim: '(ParaId, CollatorId)', + ParathreadClaimQueue: { + queue: 'Vec', + nextCoreOffset: 'u32' + }, + ParathreadEntry: { + claim: 'ParathreadClaim', + retries: 'u32' + }, + ParaValidatorIndex: 'u32', + PersistedValidationData: { + parentHead: 'HeadData', + relayParentNumber: 'RelayChainBlockNumber', + relayParentStorageRoot: 'Hash', + maxPovSize: 'u32' + }, + PvfCheckStatement: { + accept: 'bool', + subject: 'ValidationCodeHash', + sessionIndex: 'SessionIndex', + validatorIndex: 'ParaValidatorIndex' + }, + QueuedParathread: { + claim: 'ParathreadEntry', + coreOffset: 'u32' + }, + RelayBlockNumber: 'u32', + RelayChainBlockNumber: 'RelayBlockNumber', + RelayHash: 'Hash', + RelayChainHash: 'RelayHash', + Remark: '[u8; 32]', + ReplacementTimes: { + expectedAt: 'BlockNumber', + activatedAt: 'BlockNumber' + }, + Retriable: { + _enum: { + Never: 'Null', + WithRetries: 'u32' + } + }, + ScheduledCore: { + paraId: 'ParaId', + collator: 'Option' + }, + Scheduling: { + _enum: ['Always', 'Dynamic'] + }, + ScrapedOnChainVotes: { + session: 'SessionIndex', + backingValidatorsPerCandidate: 'Vec<(CandidateReceipt, Vec<(ParaValidatorIndex, ValidityAttestation)>)>', + disputes: 'MultiDisputeStatementSet' + }, + SessionInfo: { + activeValidatorIndices: 'Vec', + randomSeed: '[u8; 32]', + disputePeriod: 'SessionIndex', + validators: 'Vec', + discoveryKeys: 'Vec', + assignmentKeys: 'Vec', + validatorGroups: 'Vec>', + nCores: 'u32', + zerothDelayTrancheWidth: 'u32', + relayVrfModuloSamples: 'u32', + nDelayTranches: 'u32', + noShowSlots: 'u32', + neededApprovals: 'u32' + }, + OldV1SessionInfo: { + validators: 'Vec', + discoveryKeys: 'Vec', + assignmentKeys: 'Vec', + validatorGroups: 'Vec>', + nCores: 'u32', + zerothDelayTrancheWidth: 'u32', + relayVrfModuloSamples: 'u32', + nDelayTranches: 'u32', + noShowSlots: 'u32', + neededApprovals: 'u32' + }, + SessionInfoValidatorGroup: 'Vec', + SignedAvailabilityBitfield: { + payload: 'BitVec', + validatorIndex: 'ParaValidatorIndex', + signature: 'ValidatorSignature' + }, + SignedAvailabilityBitfields: 'Vec', + SigningContext: { + sessionIndex: 'SessionIndex', + parentHash: 'Hash' + }, + SlashingOffenceKind: { + _enum: ['ForInvalid', 'AgainstValid'] + }, + Statement: { + _enum: { + Never: 'Null', // starts at 1 + Candidate: 'Hash', + Valid: 'Hash', + Invalid: 'Hash' + } + }, + TransientValidationData: { + maxCodeSize: 'u32', + maxHeadDataSize: 'u32', + balance: 'Balance', + codeUpgradeAllowed: 'Option', + dmqLength: 'u32' + }, + UpgradeGoAhead: { + _enum: ['Abort', 'GoAhead'] + }, + UpgradeRestriction: { + _enum: ['Present'] + }, + UpwardMessage: 'Bytes', + ValidationFunctionParams: { + maxCodeSize: 'u32', + relayChainHeight: 'RelayChainBlockNumber', + codeUpgradeAllowed: 'Option' + }, + ValidationCode: 'Bytes', + ValidationCodeHash: 'Hash', + ValidationData: { + persisted: 'PersistedValidationData', + transient: 'TransientValidationData' + }, + ValidationDataType: { + validationData: 'ValidationData', + relayChainState: 'Vec' + }, + ValidatorSignature: 'Signature', + ValidityAttestation: { + _enum: { + Never: 'Null', // starts at 1 + Implicit: 'ValidatorSignature', + Explicit: 'ValidatorSignature' + } + }, + MessagingStateSnapshot: { + relayDispatchQueueSize: '(u32, u32)', + egressChannels: 'Vec' + }, + MessagingStateSnapshotEgressEntry: '(ParaId, AbridgedHrmpChannel)', + SystemInherentData: 'TeyrchainInherentData', + VecInboundHrmpMessage: 'Vec' + } +} as Definitions; diff --git a/packages/types/src/interfaces/teyrchains/hrmp.ts b/packages/types/src/interfaces/teyrchains/hrmp.ts new file mode 100644 index 0000000..3df59b8 --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/hrmp.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +export default { + HrmpChannel: { + maxCapacity: 'u32', + maxTotalSize: 'u32', + maxMessageSize: 'u32', + msgCount: 'u32', + totalSize: 'u32', + mqcHead: 'Option', + senderDeposit: 'Balance', + recipientDeposit: 'Balance' + }, + HrmpChannelId: { + sender: 'u32', + receiver: 'u32' + }, + HrmpOpenChannelRequest: { + confirmed: 'bool', + age: 'SessionIndex', + senderDeposit: 'Balance', + maxMessageSize: 'u32', + maxCapacity: 'u32', + maxTotalSize: 'u32' + } +}; diff --git a/packages/types/src/interfaces/teyrchains/index.ts b/packages/types/src/interfaces/teyrchains/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/teyrchains/runtime.ts b/packages/types/src/interfaces/teyrchains/runtime.ts new file mode 100644 index 0000000..4650cc0 --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/runtime.ts @@ -0,0 +1,426 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall, DefinitionsCallEntry } from '../../types/index.js'; + +const PH_V1_TO_V2: DefinitionsCallEntry['methods'] = { + assumed_validation_data: { + description: 'Returns the persisted validation data for the given `ParaId` along with the corresponding validation code hash.', + params: [ + { + name: 'paraId', + type: 'ParaId' + }, + { + name: 'hash', + type: 'Hash' + } + ], + type: 'Option<(PersistedValidationData, ValidationCodeHash)>' + }, + availability_cores: { + description: 'Yields information on all availability cores as relevant to the child block.', + params: [], + type: 'Vec' + }, + candidate_events: { + description: 'Get a vector of events concerning candidates that occurred within a block.', + params: [], + type: 'Vec' + }, + candidate_pending_availability: { + description: 'Get the receipt of a candidate pending availability.', + params: [ + { + name: 'paraId', + type: 'ParaId' + } + ], + type: 'Option' + }, + check_validation_outputs: { + description: 'Checks if the given validation outputs pass the acceptance criteria.', + params: [ + { + name: 'paraId', + type: 'ParaId' + }, + { + name: 'outputs', + type: 'CandidateCommitments' + } + ], + type: 'bool' + }, + dmq_contents: { + description: 'Get all the pending inbound messages in the downward message queue for a para.', + params: [ + { + name: 'paraId', + type: 'ParaId' + } + ], + type: 'Vec' + }, + inbound_hrmp_channels_contents: { + description: 'Get the contents of all channels addressed to the given recipient.', + params: [ + { + name: 'paraId', + type: 'ParaId' + } + ], + type: 'Vec' + }, + on_chain_votes: { + description: 'Scrape dispute relevant from on-chain, backing votes and resolved disputes.', + params: [], + type: 'Option' + }, + persisted_validation_data: { + description: 'Yields the persisted validation data for the given `ParaId` along with an assumption that should be used if the para currently occupies a core.', + params: [ + { + name: 'paraId', + type: 'ParaId' + }, + { + name: 'assumption', + type: 'OccupiedCoreAssumption' + } + ], + type: 'Option' + }, + session_index_for_child: { + description: 'Returns the session index expected at a child of the block.', + params: [], + type: 'SessionIndex' + }, + validation_code: { + description: 'Fetch the validation code used by a para, making the given `OccupiedCoreAssumption`.', + params: [ + { + name: 'paraId', + type: 'ParaId' + }, + { + name: 'assumption', + type: 'OccupiedCoreAssumption' + } + ], + type: 'Option' + }, + validation_code_by_hash: { + description: 'Get the validation code from its hash.', + params: [ + { + name: 'hash', + type: 'ValidationCodeHash' + } + ], + type: 'Option' + }, + validator_groups: { + description: 'Returns the validator groups and rotation info localized based on the hypothetical child of a block whose state this is invoked on', + params: [], + type: '(Vec>, GroupRotationInfo)' + }, + validators: { + description: 'Get the current validators.', + params: [], + type: 'Vec' + } +}; + +const PH_V2_TO_V3: DefinitionsCallEntry['methods'] = { + pvfs_require_precheck: { + description: 'Returns code hashes of PVFs that require pre-checking by validators in the active set.', + params: [], + type: 'Vec' + }, + session_info: { + description: 'Get the session info for the given session, if stored.', + params: [ + { + name: 'index', + type: 'SessionIndex' + } + ], + type: 'Option' + }, + submit_pvf_check_statement: { + description: 'Submits a PVF pre-checking statement into the transaction pool.', + params: [ + { + name: 'stmt', + type: 'PvfCheckStatement' + }, + { + name: 'signature', + type: 'ValidatorSignature' + } + ], + type: 'Null' + }, + validation_code_hash: { + description: 'Fetch the hash of the validation code used by a para, making the given `OccupiedCoreAssumption`.', + params: [ + { + name: 'paraId', + type: 'ParaId' + }, + { + name: 'assumption', + type: 'OccupiedCoreAssumption' + } + ], + type: 'Option' + } +}; + +const PH_V3: DefinitionsCallEntry['methods'] = { + disputes: { + description: 'Returns all onchain disputes.', + params: [], + type: 'Vec<(SessionIndex, CandidateHash, DisputeState)>' + } +}; + +const PH_V4: DefinitionsCallEntry['methods'] = { + session_executor_params: { + description: 'Returns execution parameters for the session.', + params: [ + { + name: 'sessionIndex', + type: 'SessionIndex' + } + ], + type: 'Option' + } +}; + +const PH_V5: DefinitionsCallEntry['methods'] = { + key_ownership_proof: { + description: 'Returns a merkle proof of a validator session key', + params: [ + { + name: 'validatorId', + type: 'ValidatorId' + } + ], + type: 'Option' + }, + submit_report_dispute_lost: { + description: 'Submit an unsigned extrinsic to slash validators who lost a dispute about a candidate of a past session', + params: [ + { + name: 'disputeProof', + type: 'DisputeProof' + }, + { + name: 'keyOwnershipProof', + type: 'OpaqueKeyOwnershipProof' + } + ], + type: 'Option' + }, + unapplied_slashes: { + description: 'Returns a list of validators that lost a past session dispute and need to be slashed', + params: [], + type: 'Vec<(SessionIndex, CandidateHash, PendingSlashes)>' + } +}; + +const PH_V6: DefinitionsCallEntry['methods'] = { + minimum_backing_votes: { + description: 'Get the minimum number of backing votes for a teyrchain candidate. This is a staging method! Do not use on production runtimes!', + params: [], + type: 'u32' + } +}; + +const PH_V7: DefinitionsCallEntry['methods'] = { + async_backing_params: { + description: 'Returns candidate\'s acceptance limitations for asynchronous backing for a relay parent', + params: [], + type: 'AsyncBackingParams' + }, + para_backing_state: { + description: 'Returns the state of teyrchain backing for a given para', + params: [ + { + name: 'paraId', + type: 'ParaId' + } + ], + type: 'Option' + } +}; + +const PH_V8: DefinitionsCallEntry['methods'] = { + disabled_validators: { + description: 'Returns a list of all disabled validators at the given block', + params: [], + type: 'ValidatorIndex' + } +}; + +const PH_V9: DefinitionsCallEntry['methods'] = { + node_features: { + description: 'Get node features. This is a staging method! Do not use on production runtimes!', + params: [], + type: 'NodeFeatures' + } +}; + +const PH_V10: DefinitionsCallEntry['methods'] = { + approval_voting_params: { + description: 'Approval voting configuration parameters', + params: [], + type: 'ApprovalVotingParams' + } +}; + +const PH_V11: DefinitionsCallEntry['methods'] = { + claim_queue: { + description: 'Claim queue', + params: [], + type: 'BTreeMap>' + } +}; + +export const runtime: DefinitionsCall = { + TeyrchainHost: [ + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5, + ...PH_V6, + ...PH_V7, + ...PH_V8, + ...PH_V9, + ...PH_V10, + ...PH_V11 + }, + version: 11 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5, + ...PH_V6, + ...PH_V7, + ...PH_V8, + ...PH_V9, + ...PH_V10 + }, + version: 10 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5, + ...PH_V6, + ...PH_V7, + ...PH_V8, + ...PH_V9 + }, + version: 9 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5, + ...PH_V6, + ...PH_V7, + ...PH_V8 + }, + version: 8 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5, + ...PH_V6, + ...PH_V7 + }, + version: 7 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5, + ...PH_V6 + }, + version: 6 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4, + ...PH_V5 + }, + version: 5 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3, + ...PH_V4 + }, + version: 4 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3, + ...PH_V3 + }, + version: 3 + }, + { + methods: { + ...PH_V1_TO_V2, + ...PH_V2_TO_V3 + }, + version: 2 + }, + { + methods: { + session_info: { + description: 'Get the session info for the given session, if stored.', + params: [ + { + name: 'index', + type: 'SessionIndex' + } + ], + type: 'Option' + }, + ...PH_V1_TO_V2 + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/teyrchains/slots.ts b/packages/types/src/interfaces/teyrchains/slots.ts new file mode 100644 index 0000000..b5c92d3 --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/slots.ts @@ -0,0 +1,59 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +const SlotRange10 = { + _enum: ['ZeroZero', 'ZeroOne', 'ZeroTwo', 'ZeroThree', 'OneOne', 'OneTwo', 'OneThree', 'TwoTwo', 'TwoThree', 'ThreeThree'] +}; + +const SlotRange = { + _enum: ['ZeroZero', 'ZeroOne', 'ZeroTwo', 'ZeroThree', 'ZeroFour', 'ZeroFive', 'ZeroSix', 'ZeroSeven', 'OneOne', 'OneTwo', 'OneThree', 'OneFour', 'OneFive', 'OneSix', 'OneSeven', 'TwoTwo', 'TwoThree', 'TwoFour', 'TwoFive', 'TwoSix', 'TwoSeven', 'ThreeThree', 'ThreeFour', 'ThreeFive', 'ThreeSix', 'ThreeSeven', 'FourFour', 'FourFive', 'FourSix', 'FourSeven', 'FiveFive', 'FiveSix', 'FiveSeven', 'SixSix', 'SixSeven', 'SevenSeven'] +}; + +const oldTypes = { + Bidder: { + _enum: { + New: 'NewBidder', + Existing: 'ParaId' + } + }, + IncomingTeyrchain: { + _enum: { + Unset: 'NewBidder', + Fixed: 'IncomingTeyrchainFixed', + Deploy: 'IncomingTeyrchainDeploy' + } + }, + IncomingTeyrchainDeploy: { + code: 'ValidationCode', + initialHeadData: 'HeadData' + }, + IncomingTeyrchainFixed: { + codeHash: 'Hash', + codeSize: 'u32', + initialHeadData: 'HeadData' + }, + NewBidder: { + who: 'AccountId', + sub: 'SubId' + }, + SubId: 'u32' +}; + +export default { + ...oldTypes, + AuctionIndex: 'u32', + LeasePeriod: 'BlockNumber', + LeasePeriodOf: 'BlockNumber', + SlotRange10, + SlotRange, + WinningData10: `[WinningDataEntry; ${SlotRange10._enum.length}]`, + WinningData: `[WinningDataEntry; ${SlotRange._enum.length}]`, + WinningDataEntry: 'Option<(AccountId, ParaId, BalanceOf)>', + WinnersData10: 'Vec', + WinnersData: 'Vec', + WinnersDataTuple10: '(AccountId, ParaId, BalanceOf, SlotRange10)', + WinnersDataTuple: '(AccountId, ParaId, BalanceOf, SlotRange)' +}; diff --git a/packages/types/src/interfaces/teyrchains/types.ts b/packages/types/src/interfaces/teyrchains/types.ts new file mode 100644 index 0000000..2e131a6 --- /dev/null +++ b/packages/types/src/interfaces/teyrchains/types.ts @@ -0,0 +1,984 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { BTreeMap, BitVec, Bytes, Enum, HashMap, Option, Struct, U8aFixed, Vec, bool, u32, u64 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { Signature } from '@pezkuwi/types/interfaces/extrinsics'; +import type { AccountId, Balance, BalanceOf, BlockNumber, H256, Hash, Header, StorageProof, ValidatorId, Weight } from '@pezkuwi/types/interfaces/runtime'; +import type { MembershipProof, SessionIndex } from '@pezkuwi/types/interfaces/session'; +import type { ValidatorIndex } from '@pezkuwi/types/interfaces/staking'; + +/** @name AbridgedCandidateReceipt */ +export interface AbridgedCandidateReceipt extends Struct { + readonly teyrchainIndex: ParaId; + readonly relayParent: Hash; + readonly headData: HeadData; + readonly collator: CollatorId; + readonly signature: CollatorSignature; + readonly povBlockHash: Hash; + readonly commitments: CandidateCommitments; +} + +/** @name AbridgedHostConfiguration */ +export interface AbridgedHostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeFrequency: BlockNumber; + readonly validationUpgradeDelay: BlockNumber; +} + +/** @name AbridgedHrmpChannel */ +export interface AbridgedHrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; +} + +/** @name ApprovalVotingParams */ +export interface ApprovalVotingParams extends Struct { + readonly maxApprovalCoalesceCount: u32; +} + +/** @name AssignmentId */ +export interface AssignmentId extends AccountId {} + +/** @name AssignmentKind */ +export interface AssignmentKind extends Enum { + readonly isTeyrchain: boolean; + readonly isParathread: boolean; + readonly asParathread: ITuple<[CollatorId, u32]>; + readonly type: 'Teyrchain' | 'Parathread'; +} + +/** @name AsyncBackingParams */ +export interface AsyncBackingParams extends Struct { + readonly maxCandidateDepth: u32; + readonly allowedAncestryLen: u32; +} + +/** @name AttestedCandidate */ +export interface AttestedCandidate extends Struct { + readonly candidate: AbridgedCandidateReceipt; + readonly validityVotes: Vec; + readonly validatorIndices: BitVec; +} + +/** @name AuctionIndex */ +export interface AuctionIndex extends u32 {} + +/** @name AuthorityDiscoveryId */ +export interface AuthorityDiscoveryId extends AccountId {} + +/** @name AvailabilityBitfield */ +export interface AvailabilityBitfield extends BitVec {} + +/** @name AvailabilityBitfieldRecord */ +export interface AvailabilityBitfieldRecord extends Struct { + readonly bitfield: AvailabilityBitfield; + readonly submittedTt: BlockNumber; +} + +/** @name BackedCandidate */ +export interface BackedCandidate extends Struct { + readonly candidate: CommittedCandidateReceipt; + readonly validityVotes: Vec; + readonly validatorIndices: BitVec; +} + +/** @name BackingState */ +export interface BackingState extends Struct { + readonly constraints: Constraints; + readonly pendingAvailability: Vec; +} + +/** @name Bidder */ +export interface Bidder extends Enum { + readonly isNew: boolean; + readonly asNew: NewBidder; + readonly isExisting: boolean; + readonly asExisting: ParaId; + readonly type: 'New' | 'Existing'; +} + +/** @name BufferedSessionChange */ +export interface BufferedSessionChange extends Struct { + readonly applyAt: BlockNumber; + readonly validators: Vec; + readonly queued: Vec; + readonly sessionIndex: SessionIndex; +} + +/** @name CandidateCommitments */ +export interface CandidateCommitments extends Struct { + readonly upwardMessages: Vec; + readonly horizontalMessages: Vec; + readonly newValidationCode: Option; + readonly headData: HeadData; + readonly processedDownwardMessages: u32; + readonly hrmpWatermark: BlockNumber; +} + +/** @name CandidateDescriptor */ +export interface CandidateDescriptor extends Struct { + readonly paraId: ParaId; + readonly relayParent: RelayChainHash; + readonly collatorId: CollatorId; + readonly persistedValidationDataHash: Hash; + readonly povHash: Hash; + readonly erasureRoot: Hash; + readonly signature: CollatorSignature; + readonly paraHead: Hash; + readonly validationCodeHash: ValidationCodeHash; +} + +/** @name CandidateEvent */ +export interface CandidateEvent extends Enum { + readonly isCandidateBacked: boolean; + readonly asCandidateBacked: ITuple<[CandidateReceipt, HeadData, CoreIndex, GroupIndex]>; + readonly isCandidateIncluded: boolean; + readonly asCandidateIncluded: ITuple<[CandidateReceipt, HeadData, CoreIndex, GroupIndex]>; + readonly isCandidateTimedOut: boolean; + readonly asCandidateTimedOut: ITuple<[CandidateReceipt, HeadData, CoreIndex]>; + readonly type: 'CandidateBacked' | 'CandidateIncluded' | 'CandidateTimedOut'; +} + +/** @name CandidateHash */ +export interface CandidateHash extends Hash {} + +/** @name CandidateInfo */ +export interface CandidateInfo extends Struct { + readonly who: AccountId; + readonly deposit: Balance; +} + +/** @name CandidatePendingAvailability */ +export interface CandidatePendingAvailability extends Struct { + readonly core: CoreIndex; + readonly hash: CandidateHash; + readonly descriptor: CandidateDescriptor; + readonly availabilityVotes: BitVec; + readonly backers: BitVec; + readonly relayParentNumber: BlockNumber; + readonly backedInNumber: BlockNumber; + readonly backingGroup: GroupIndex; +} + +/** @name CandidateReceipt */ +export interface CandidateReceipt extends Struct { + readonly descriptor: CandidateDescriptor; + readonly commitmentsHash: Hash; +} + +/** @name CollatorId */ +export interface CollatorId extends H256 {} + +/** @name CollatorSignature */ +export interface CollatorSignature extends Signature {} + +/** @name CommittedCandidateReceipt */ +export interface CommittedCandidateReceipt extends Struct { + readonly descriptor: CandidateDescriptor; + readonly commitments: CandidateCommitments; +} + +/** @name Constraints */ +export interface Constraints extends Struct { + readonly minRelayParentNumber: BlockNumber; + readonly maxPovSize: u32; + readonly maxCodeSize: u32; + readonly umpRemaining: u32; + readonly umpRemainingBytes: u32; + readonly maxUmpNumPerCandidate: u32; + readonly dmpRemainingMessages: Vec; + readonly hrmpInbound: InboundHrmpLimitations; + readonly hrmpChannelsOut: HashMap; + readonly maxHrmpNumPerCandidate: u32; + readonly requiredParent: HeadData; + readonly validationCodeHash: ValidationCodeHash; + readonly upgradeRestriction: Option; + readonly futureValidationCode: Option>; +} + +/** @name CoreAssignment */ +export interface CoreAssignment extends Struct { + readonly core: CoreIndex; + readonly paraId: ParaId; + readonly kind: AssignmentKind; + readonly groupIdx: GroupIndex; +} + +/** @name CoreIndex */ +export interface CoreIndex extends u32 {} + +/** @name CoreOccupied */ +export interface CoreOccupied extends Enum { + readonly isParathread: boolean; + readonly asParathread: ParathreadEntry; + readonly isTeyrchain: boolean; + readonly type: 'Parathread' | 'Teyrchain'; +} + +/** @name CoreState */ +export interface CoreState extends Enum { + readonly isOccupied: boolean; + readonly asOccupied: OccupiedCore; + readonly isScheduled: boolean; + readonly asScheduled: ScheduledCore; + readonly isFree: boolean; + readonly type: 'Occupied' | 'Scheduled' | 'Free'; +} + +/** @name DisputeLocation */ +export interface DisputeLocation extends Enum { + readonly isLocal: boolean; + readonly isRemote: boolean; + readonly type: 'Local' | 'Remote'; +} + +/** @name DisputeProof */ +export interface DisputeProof extends Struct { + readonly timeSlot: DisputesTimeSlot; + readonly kind: SlashingOffenceKind; + readonly validatorIndex: ValidatorIndex; + readonly validatorId: ValidatorId; +} + +/** @name DisputeResult */ +export interface DisputeResult extends Enum { + readonly isValid: boolean; + readonly isInvalid: boolean; + readonly type: 'Valid' | 'Invalid'; +} + +/** @name DisputeState */ +export interface DisputeState extends Struct { + readonly validatorsFor: BitVec; + readonly validatorsAgainst: BitVec; + readonly start: BlockNumber; + readonly concludedAt: Option; +} + +/** @name DisputeStatement */ +export interface DisputeStatement extends Enum { + readonly isValid: boolean; + readonly asValid: ValidDisputeStatementKind; + readonly isInvalid: boolean; + readonly asInvalid: InvalidDisputeStatementKind; + readonly type: 'Valid' | 'Invalid'; +} + +/** @name DisputeStatementSet */ +export interface DisputeStatementSet extends Struct { + readonly candidateHash: CandidateHash; + readonly session: SessionIndex; + readonly statements: Vec>; +} + +/** @name DisputesTimeSlot */ +export interface DisputesTimeSlot extends Struct { + readonly sessionIndex: SessionIndex; + readonly candidateHash: CandidateHash; +} + +/** @name DoubleVoteReport */ +export interface DoubleVoteReport extends Struct { + readonly identity: ValidatorId; + readonly first: ITuple<[Statement, ValidatorSignature]>; + readonly second: ITuple<[Statement, ValidatorSignature]>; + readonly proof: MembershipProof; + readonly signingContext: SigningContext; +} + +/** @name DownwardMessage */ +export interface DownwardMessage extends Bytes {} + +/** @name ExecutorParam */ +export interface ExecutorParam extends Enum { + readonly isPhantom: boolean; + readonly isMaxMemoryPages: boolean; + readonly asMaxMemoryPages: u32; + readonly isStackLogicalMax: boolean; + readonly asStackLogicalMax: u32; + readonly isStackNativeMax: boolean; + readonly asStackNativeMax: u32; + readonly isPrecheckingMaxMemory: boolean; + readonly asPrecheckingMaxMemory: u64; + readonly isPvfPrepTimeout: boolean; + readonly asPvfPrepTimeout: ITuple<[PvfPrepTimeoutKind, u64]>; + readonly isPvfExecTimeout: boolean; + readonly asPvfExecTimeout: ITuple<[PvfExecTimeoutKind, u64]>; + readonly type: 'Phantom' | 'MaxMemoryPages' | 'StackLogicalMax' | 'StackNativeMax' | 'PrecheckingMaxMemory' | 'PvfPrepTimeout' | 'PvfExecTimeout'; +} + +/** @name ExecutorParams */ +export interface ExecutorParams extends Vec {} + +/** @name ExecutorParamsHash */ +export interface ExecutorParamsHash extends Hash {} + +/** @name ExplicitDisputeStatement */ +export interface ExplicitDisputeStatement extends Struct { + readonly valid: bool; + readonly candidateHash: CandidateHash; + readonly session: SessionIndex; +} + +/** @name GlobalValidationData */ +export interface GlobalValidationData extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly blockNumber: BlockNumber; +} + +/** @name GlobalValidationSchedule */ +export interface GlobalValidationSchedule extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly blockNumber: BlockNumber; +} + +/** @name GroupIndex */ +export interface GroupIndex extends u32 {} + +/** @name GroupRotationInfo */ +export interface GroupRotationInfo extends Struct { + readonly sessionStartBlock: BlockNumber; + readonly groupRotationFrequency: BlockNumber; + readonly now: BlockNumber; +} + +/** @name HeadData */ +export interface HeadData extends Bytes {} + +/** @name HostConfiguration */ +export interface HostConfiguration extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly maxUpwardQueueCount: u32; + readonly maxUpwardQueueSize: u32; + readonly maxUpwardMessageSize: u32; + readonly maxUpwardMessageNumPerCandidate: u32; + readonly hrmpMaxMessageNumPerCandidate: u32; + readonly validationUpgradeFrequency: BlockNumber; + readonly validationUpgradeDelay: BlockNumber; + readonly maxPovSize: u32; + readonly maxDownwardMessageSize: u32; + readonly preferredDispatchableUpwardMessagesStepWeight: Weight; + readonly hrmpMaxTeyrchainOutboundChannels: u32; + readonly hrmpMaxParathreadOutboundChannels: u32; + readonly hrmpOpenRequestTtl: u32; + readonly hrmpSenderDeposit: Balance; + readonly hrmpRecipientDeposit: Balance; + readonly hrmpChannelMaxCapacity: u32; + readonly hrmpChannelMaxTotalSize: u32; + readonly hrmpMaxTeyrchainInboundChannels: u32; + readonly hrmpMaxParathreadInboundChannels: u32; + readonly hrmpChannelMaxMessageSize: u32; + readonly codeRetentionPeriod: BlockNumber; + readonly parathreadCores: u32; + readonly parathreadRetries: u32; + readonly groupRotationFrequency: BlockNumber; + readonly chainAvailabilityPeriod: BlockNumber; + readonly threadAvailabilityPeriod: BlockNumber; + readonly schedulingLookahead: u32; + readonly maxValidatorsPerCore: Option; + readonly maxValidators: Option; + readonly disputePeriod: SessionIndex; + readonly disputePostConclusionAcceptancePeriod: BlockNumber; + readonly disputeMaxSpamSlots: u32; + readonly disputeConclusionByTimeOutPeriod: BlockNumber; + readonly noShowSlots: u32; + readonly nDelayTranches: u32; + readonly zerothDelayTrancheWidth: u32; + readonly neededApprovals: u32; + readonly relayVrfModuloSamples: u32; +} + +/** @name HrmpChannel */ +export interface HrmpChannel extends Struct { + readonly maxCapacity: u32; + readonly maxTotalSize: u32; + readonly maxMessageSize: u32; + readonly msgCount: u32; + readonly totalSize: u32; + readonly mqcHead: Option; + readonly senderDeposit: Balance; + readonly recipientDeposit: Balance; +} + +/** @name HrmpChannelId */ +export interface HrmpChannelId extends Struct { + readonly sender: u32; + readonly receiver: u32; +} + +/** @name HrmpOpenChannelRequest */ +export interface HrmpOpenChannelRequest extends Struct { + readonly confirmed: bool; + readonly age: SessionIndex; + readonly senderDeposit: Balance; + readonly maxMessageSize: u32; + readonly maxCapacity: u32; + readonly maxTotalSize: u32; +} + +/** @name InboundDownwardMessage */ +export interface InboundDownwardMessage extends Struct { + readonly pubSentAt: BlockNumber; + readonly pubMsg: DownwardMessage; +} + +/** @name InboundHrmpLimitations */ +export interface InboundHrmpLimitations extends Struct { + readonly validWatermarks: Vec; +} + +/** @name InboundHrmpMessage */ +export interface InboundHrmpMessage extends Struct { + readonly sentAt: BlockNumber; + readonly data: Bytes; +} + +/** @name InboundHrmpMessages */ +export interface InboundHrmpMessages extends Vec {} + +/** @name IncomingTeyrchain */ +export interface IncomingTeyrchain extends Enum { + readonly isUnset: boolean; + readonly asUnset: NewBidder; + readonly isFixed: boolean; + readonly asFixed: IncomingTeyrchainFixed; + readonly isDeploy: boolean; + readonly asDeploy: IncomingTeyrchainDeploy; + readonly type: 'Unset' | 'Fixed' | 'Deploy'; +} + +/** @name IncomingTeyrchainDeploy */ +export interface IncomingTeyrchainDeploy extends Struct { + readonly code: ValidationCode; + readonly initialHeadData: HeadData; +} + +/** @name IncomingTeyrchainFixed */ +export interface IncomingTeyrchainFixed extends Struct { + readonly codeHash: Hash; + readonly codeSize: u32; + readonly initialHeadData: HeadData; +} + +/** @name InvalidDisputeStatementKind */ +export interface InvalidDisputeStatementKind extends Enum { + readonly isExplicit: boolean; + readonly type: 'Explicit'; +} + +/** @name LeasePeriod */ +export interface LeasePeriod extends BlockNumber {} + +/** @name LeasePeriodOf */ +export interface LeasePeriodOf extends BlockNumber {} + +/** @name LocalValidationData */ +export interface LocalValidationData extends Struct { + readonly parentHead: HeadData; + readonly balance: Balance; + readonly codeUpgradeAllowed: Option; +} + +/** @name MessageIngestionType */ +export interface MessageIngestionType extends Struct { + readonly downwardMessages: Vec; + readonly horizontalMessages: BTreeMap; +} + +/** @name MessageQueueChain */ +export interface MessageQueueChain extends RelayChainHash {} + +/** @name MessagingStateSnapshot */ +export interface MessagingStateSnapshot extends Struct { + readonly relayDispatchQueueSize: ITuple<[u32, u32]>; + readonly egressChannels: Vec; +} + +/** @name MessagingStateSnapshotEgressEntry */ +export interface MessagingStateSnapshotEgressEntry extends ITuple<[ParaId, AbridgedHrmpChannel]> {} + +/** @name MultiDisputeStatementSet */ +export interface MultiDisputeStatementSet extends Vec {} + +/** @name NewBidder */ +export interface NewBidder extends Struct { + readonly who: AccountId; + readonly sub: SubId; +} + +/** @name NodeFeatures */ +export interface NodeFeatures extends BitVec {} + +/** @name OccupiedCore */ +export interface OccupiedCore extends Struct { + readonly nextUpOnAvailable: Option; + readonly occupiedSince: BlockNumber; + readonly timeOutAt: BlockNumber; + readonly nextUpOnTimeOut: Option; + readonly availability: BitVec; + readonly groupResponsible: GroupIndex; + readonly candidateHash: CandidateHash; + readonly candidateDescriptor: CandidateDescriptor; +} + +/** @name OccupiedCoreAssumption */ +export interface OccupiedCoreAssumption extends Enum { + readonly isIncluded: boolean; + readonly isTimedOut: boolean; + readonly isFree: boolean; + readonly type: 'Included' | 'TimedOut' | 'Free'; +} + +/** @name OldV1SessionInfo */ +export interface OldV1SessionInfo extends Struct { + readonly validators: Vec; + readonly discoveryKeys: Vec; + readonly assignmentKeys: Vec; + readonly validatorGroups: Vec>; + readonly nCores: u32; + readonly zerothDelayTrancheWidth: u32; + readonly relayVrfModuloSamples: u32; + readonly nDelayTranches: u32; + readonly noShowSlots: u32; + readonly neededApprovals: u32; +} + +/** @name OutboundHrmpChannelLimitations */ +export interface OutboundHrmpChannelLimitations extends Struct { + readonly bytesRemaining: u32; + readonly messagesRemaining: u32; +} + +/** @name OutboundHrmpMessage */ +export interface OutboundHrmpMessage extends Struct { + readonly recipient: u32; + readonly data: Bytes; +} + +/** @name ParaGenesisArgs */ +export interface ParaGenesisArgs extends Struct { + readonly genesisHead: Bytes; + readonly validationCode: Bytes; + readonly teyrchain: bool; +} + +/** @name ParaId */ +export interface ParaId extends u32 {} + +/** @name ParaInfo */ +export interface ParaInfo extends Struct { + readonly manager: AccountId; + readonly deposit: Balance; + readonly locked: bool; +} + +/** @name ParaLifecycle */ +export interface ParaLifecycle extends Enum { + readonly isOnboarding: boolean; + readonly isParathread: boolean; + readonly isTeyrchain: boolean; + readonly isUpgradingToTeyrchain: boolean; + readonly isDowngradingToParathread: boolean; + readonly isOutgoingParathread: boolean; + readonly isOutgoingTeyrchain: boolean; + readonly type: 'Onboarding' | 'Parathread' | 'Teyrchain' | 'UpgradingToTeyrchain' | 'DowngradingToParathread' | 'OutgoingParathread' | 'OutgoingTeyrchain'; +} + +/** @name ParaPastCodeMeta */ +export interface ParaPastCodeMeta extends Struct { + readonly upgradeTimes: Vec; + readonly lastPruned: Option; +} + +/** @name ParaScheduling */ +export interface ParaScheduling extends Enum { + readonly isAlways: boolean; + readonly isDynamic: boolean; + readonly type: 'Always' | 'Dynamic'; +} + +/** @name ParathreadClaim */ +export interface ParathreadClaim extends ITuple<[ParaId, CollatorId]> {} + +/** @name ParathreadClaimQueue */ +export interface ParathreadClaimQueue extends Struct { + readonly queue: Vec; + readonly nextCoreOffset: u32; +} + +/** @name ParathreadEntry */ +export interface ParathreadEntry extends Struct { + readonly claim: ParathreadClaim; + readonly retries: u32; +} + +/** @name ParaValidatorIndex */ +export interface ParaValidatorIndex extends u32 {} + +/** @name PendingSlashes */ +export interface PendingSlashes extends Struct { + readonly slashKeys: BTreeMap; + readonly kind: SlashingOffenceKind; +} + +/** @name PersistedValidationData */ +export interface PersistedValidationData extends Struct { + readonly parentHead: HeadData; + readonly relayParentNumber: RelayChainBlockNumber; + readonly relayParentStorageRoot: Hash; + readonly maxPovSize: u32; +} + +/** @name PvfCheckStatement */ +export interface PvfCheckStatement extends Struct { + readonly accept: bool; + readonly subject: ValidationCodeHash; + readonly sessionIndex: SessionIndex; + readonly validatorIndex: ParaValidatorIndex; +} + +/** @name PvfExecTimeoutKind */ +export interface PvfExecTimeoutKind extends Enum { + readonly isBacking: boolean; + readonly isApproval: boolean; + readonly type: 'Backing' | 'Approval'; +} + +/** @name PvfPrepTimeoutKind */ +export interface PvfPrepTimeoutKind extends Enum { + readonly isPrecheck: boolean; + readonly isLenient: boolean; + readonly type: 'Precheck' | 'Lenient'; +} + +/** @name QueuedParathread */ +export interface QueuedParathread extends Struct { + readonly claim: ParathreadEntry; + readonly coreOffset: u32; +} + +/** @name RegisteredTeyrchainInfo */ +export interface RegisteredTeyrchainInfo extends Struct { + readonly validators: Vec; + readonly proposer: AccountId; +} + +/** @name RelayBlockNumber */ +export interface RelayBlockNumber extends u32 {} + +/** @name RelayChainBlockNumber */ +export interface RelayChainBlockNumber extends RelayBlockNumber {} + +/** @name RelayChainHash */ +export interface RelayChainHash extends RelayHash {} + +/** @name RelayHash */ +export interface RelayHash extends Hash {} + +/** @name Remark */ +export interface Remark extends U8aFixed {} + +/** @name ReplacementTimes */ +export interface ReplacementTimes extends Struct { + readonly expectedAt: BlockNumber; + readonly activatedAt: BlockNumber; +} + +/** @name Retriable */ +export interface Retriable extends Enum { + readonly isNever: boolean; + readonly isWithRetries: boolean; + readonly asWithRetries: u32; + readonly type: 'Never' | 'WithRetries'; +} + +/** @name ScheduledCore */ +export interface ScheduledCore extends Struct { + readonly paraId: ParaId; + readonly collator: Option; +} + +/** @name Scheduling */ +export interface Scheduling extends Enum { + readonly isAlways: boolean; + readonly isDynamic: boolean; + readonly type: 'Always' | 'Dynamic'; +} + +/** @name ScrapedOnChainVotes */ +export interface ScrapedOnChainVotes extends Struct { + readonly session: SessionIndex; + readonly backingValidatorsPerCandidate: Vec>]>>; + readonly disputes: MultiDisputeStatementSet; +} + +/** @name ServiceQuality */ +export interface ServiceQuality extends Enum { + readonly isOrdered: boolean; + readonly isFast: boolean; + readonly type: 'Ordered' | 'Fast'; +} + +/** @name SessionInfo */ +export interface SessionInfo extends Struct { + readonly activeValidatorIndices: Vec; + readonly randomSeed: U8aFixed; + readonly disputePeriod: SessionIndex; + readonly validators: Vec; + readonly discoveryKeys: Vec; + readonly assignmentKeys: Vec; + readonly validatorGroups: Vec>; + readonly nCores: u32; + readonly zerothDelayTrancheWidth: u32; + readonly relayVrfModuloSamples: u32; + readonly nDelayTranches: u32; + readonly noShowSlots: u32; + readonly neededApprovals: u32; +} + +/** @name SessionInfoValidatorGroup */ +export interface SessionInfoValidatorGroup extends Vec {} + +/** @name SignedAvailabilityBitfield */ +export interface SignedAvailabilityBitfield extends Struct { + readonly payload: BitVec; + readonly validatorIndex: ParaValidatorIndex; + readonly signature: ValidatorSignature; +} + +/** @name SignedAvailabilityBitfields */ +export interface SignedAvailabilityBitfields extends Vec {} + +/** @name SigningContext */ +export interface SigningContext extends Struct { + readonly sessionIndex: SessionIndex; + readonly parentHash: Hash; +} + +/** @name SlashingOffenceKind */ +export interface SlashingOffenceKind extends Enum { + readonly isForInvalid: boolean; + readonly isAgainstValid: boolean; + readonly type: 'ForInvalid' | 'AgainstValid'; +} + +/** @name SlotRange */ +export interface SlotRange extends Enum { + readonly isZeroZero: boolean; + readonly isZeroOne: boolean; + readonly isZeroTwo: boolean; + readonly isZeroThree: boolean; + readonly isZeroFour: boolean; + readonly isZeroFive: boolean; + readonly isZeroSix: boolean; + readonly isZeroSeven: boolean; + readonly isOneOne: boolean; + readonly isOneTwo: boolean; + readonly isOneThree: boolean; + readonly isOneFour: boolean; + readonly isOneFive: boolean; + readonly isOneSix: boolean; + readonly isOneSeven: boolean; + readonly isTwoTwo: boolean; + readonly isTwoThree: boolean; + readonly isTwoFour: boolean; + readonly isTwoFive: boolean; + readonly isTwoSix: boolean; + readonly isTwoSeven: boolean; + readonly isThreeThree: boolean; + readonly isThreeFour: boolean; + readonly isThreeFive: boolean; + readonly isThreeSix: boolean; + readonly isThreeSeven: boolean; + readonly isFourFour: boolean; + readonly isFourFive: boolean; + readonly isFourSix: boolean; + readonly isFourSeven: boolean; + readonly isFiveFive: boolean; + readonly isFiveSix: boolean; + readonly isFiveSeven: boolean; + readonly isSixSix: boolean; + readonly isSixSeven: boolean; + readonly isSevenSeven: boolean; + readonly type: 'ZeroZero' | 'ZeroOne' | 'ZeroTwo' | 'ZeroThree' | 'ZeroFour' | 'ZeroFive' | 'ZeroSix' | 'ZeroSeven' | 'OneOne' | 'OneTwo' | 'OneThree' | 'OneFour' | 'OneFive' | 'OneSix' | 'OneSeven' | 'TwoTwo' | 'TwoThree' | 'TwoFour' | 'TwoFive' | 'TwoSix' | 'TwoSeven' | 'ThreeThree' | 'ThreeFour' | 'ThreeFive' | 'ThreeSix' | 'ThreeSeven' | 'FourFour' | 'FourFive' | 'FourSix' | 'FourSeven' | 'FiveFive' | 'FiveSix' | 'FiveSeven' | 'SixSix' | 'SixSeven' | 'SevenSeven'; +} + +/** @name SlotRange10 */ +export interface SlotRange10 extends Enum { + readonly isZeroZero: boolean; + readonly isZeroOne: boolean; + readonly isZeroTwo: boolean; + readonly isZeroThree: boolean; + readonly isOneOne: boolean; + readonly isOneTwo: boolean; + readonly isOneThree: boolean; + readonly isTwoTwo: boolean; + readonly isTwoThree: boolean; + readonly isThreeThree: boolean; + readonly type: 'ZeroZero' | 'ZeroOne' | 'ZeroTwo' | 'ZeroThree' | 'OneOne' | 'OneTwo' | 'OneThree' | 'TwoTwo' | 'TwoThree' | 'ThreeThree'; +} + +/** @name Statement */ +export interface Statement extends Enum { + readonly isNever: boolean; + readonly isCandidate: boolean; + readonly asCandidate: Hash; + readonly isValid: boolean; + readonly asValid: Hash; + readonly isInvalid: boolean; + readonly asInvalid: Hash; + readonly type: 'Never' | 'Candidate' | 'Valid' | 'Invalid'; +} + +/** @name SubId */ +export interface SubId extends u32 {} + +/** @name SystemInherentData */ +export interface SystemInherentData extends TeyrchainInherentData {} + +/** @name TeyrchainDispatchOrigin */ +export interface TeyrchainDispatchOrigin extends Enum { + readonly isSigned: boolean; + readonly isTeyrchain: boolean; + readonly isRoot: boolean; + readonly type: 'Signed' | 'Teyrchain' | 'Root'; +} + +/** @name TeyrchainInherentData */ +export interface TeyrchainInherentData extends Struct { + readonly validationData: PersistedValidationData; + readonly relayChainState: StorageProof; + readonly downwardMessages: Vec; + readonly horizontalMessages: BTreeMap; +} + +/** @name TeyrchainProposal */ +export interface TeyrchainProposal extends Struct { + readonly proposer: AccountId; + readonly genesisHead: HeadData; + readonly validators: Vec; + readonly name: Bytes; + readonly balance: Balance; +} + +/** @name TeyrchainsInherentData */ +export interface TeyrchainsInherentData extends Struct { + readonly bitfields: SignedAvailabilityBitfields; + readonly backedCandidates: Vec; + readonly disputes: MultiDisputeStatementSet; + readonly parentHeader: Header; +} + +/** @name TransientValidationData */ +export interface TransientValidationData extends Struct { + readonly maxCodeSize: u32; + readonly maxHeadDataSize: u32; + readonly balance: Balance; + readonly codeUpgradeAllowed: Option; + readonly dmqLength: u32; +} + +/** @name UpgradeGoAhead */ +export interface UpgradeGoAhead extends Enum { + readonly isAbort: boolean; + readonly isGoAhead: boolean; + readonly type: 'Abort' | 'GoAhead'; +} + +/** @name UpgradeRestriction */ +export interface UpgradeRestriction extends Enum { + readonly isPresent: boolean; + readonly type: 'Present'; +} + +/** @name UpwardMessage */ +export interface UpwardMessage extends Bytes {} + +/** @name ValidationCode */ +export interface ValidationCode extends Bytes {} + +/** @name ValidationCodeHash */ +export interface ValidationCodeHash extends Hash {} + +/** @name ValidationData */ +export interface ValidationData extends Struct { + readonly persisted: PersistedValidationData; + readonly transient: TransientValidationData; +} + +/** @name ValidationDataType */ +export interface ValidationDataType extends Struct { + readonly validationData: ValidationData; + readonly relayChainState: Vec; +} + +/** @name ValidationFunctionParams */ +export interface ValidationFunctionParams extends Struct { + readonly maxCodeSize: u32; + readonly relayChainHeight: RelayChainBlockNumber; + readonly codeUpgradeAllowed: Option; +} + +/** @name ValidatorSignature */ +export interface ValidatorSignature extends Signature {} + +/** @name ValidDisputeStatementKind */ +export interface ValidDisputeStatementKind extends Enum { + readonly isExplicit: boolean; + readonly isBackingSeconded: boolean; + readonly asBackingSeconded: Hash; + readonly isBackingValid: boolean; + readonly asBackingValid: Hash; + readonly isApprovalChecking: boolean; + readonly type: 'Explicit' | 'BackingSeconded' | 'BackingValid' | 'ApprovalChecking'; +} + +/** @name ValidityAttestation */ +export interface ValidityAttestation extends Enum { + readonly isNever: boolean; + readonly isImplicit: boolean; + readonly asImplicit: ValidatorSignature; + readonly isExplicit: boolean; + readonly asExplicit: ValidatorSignature; + readonly type: 'Never' | 'Implicit' | 'Explicit'; +} + +/** @name VecInboundHrmpMessage */ +export interface VecInboundHrmpMessage extends Vec {} + +/** @name WinnersData */ +export interface WinnersData extends Vec {} + +/** @name WinnersData10 */ +export interface WinnersData10 extends Vec {} + +/** @name WinnersDataTuple */ +export interface WinnersDataTuple extends ITuple<[AccountId, ParaId, BalanceOf, SlotRange]> {} + +/** @name WinnersDataTuple10 */ +export interface WinnersDataTuple10 extends ITuple<[AccountId, ParaId, BalanceOf, SlotRange10]> {} + +/** @name WinningData */ +export interface WinningData extends Vec {} + +/** @name WinningData10 */ +export interface WinningData10 extends Vec {} + +/** @name WinningDataEntry */ +export interface WinningDataEntry extends Option> {} + +export type PHANTOM_TEYRCHAINS = 'teyrchains'; diff --git a/packages/types/src/interfaces/treasury/definitions.ts b/packages/types/src/interfaces/treasury/definitions.ts new file mode 100644 index 0000000..b7384ac --- /dev/null +++ b/packages/types/src/interfaces/treasury/definitions.ts @@ -0,0 +1,68 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Bounty: { + proposer: 'AccountId', + value: 'Balance', + fee: 'Balance', + curatorDeposit: 'Balance', + bond: 'Balance', + status: 'BountyStatus' + }, + BountyIndex: 'u32', + BountyStatus: { + _enum: { + Proposed: 'Null', + Approved: 'Null', + Funded: 'Null', + CuratorProposed: 'BountyStatusCuratorProposed', + Active: 'BountyStatusActive', + PendingPayout: 'BountyStatusPendingPayout' + } + }, + BountyStatusActive: { + curator: 'AccountId', + updateDue: 'BlockNumber' + }, + BountyStatusCuratorProposed: { + curator: 'AccountId' + }, + BountyStatusPendingPayout: { + curator: 'AccountId', + beneficiary: 'AccountId', + unlockAt: 'BlockNumber' + }, + OpenTip: { + reason: 'Hash', + who: 'AccountId', + finder: 'AccountId', + deposit: 'Balance', + closes: 'Option', + tips: 'Vec', + findersFee: 'bool' + }, + OpenTipTo225: { + reason: 'Hash', + who: 'AccountId', + finder: 'Option', + closes: 'Option', + tips: 'Vec' + }, + OpenTipFinderTo225: '(AccountId, Balance)', + OpenTipTip: '(AccountId, Balance)', + TreasuryProposal: { + proposer: 'AccountId', + value: 'Balance', + beneficiary: 'AccountId', + bond: 'Balance' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/treasury/index.ts b/packages/types/src/interfaces/treasury/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/treasury/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/treasury/types.ts b/packages/types/src/interfaces/treasury/types.ts new file mode 100644 index 0000000..bdba3f0 --- /dev/null +++ b/packages/types/src/interfaces/treasury/types.ts @@ -0,0 +1,87 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Option, Struct, Vec, bool, u32 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, Balance, BlockNumber, Hash } from '@pezkuwi/types/interfaces/runtime'; + +/** @name Bounty */ +export interface Bounty extends Struct { + readonly proposer: AccountId; + readonly value: Balance; + readonly fee: Balance; + readonly curatorDeposit: Balance; + readonly bond: Balance; + readonly status: BountyStatus; +} + +/** @name BountyIndex */ +export interface BountyIndex extends u32 {} + +/** @name BountyStatus */ +export interface BountyStatus extends Enum { + readonly isProposed: boolean; + readonly isApproved: boolean; + readonly isFunded: boolean; + readonly isCuratorProposed: boolean; + readonly asCuratorProposed: BountyStatusCuratorProposed; + readonly isActive: boolean; + readonly asActive: BountyStatusActive; + readonly isPendingPayout: boolean; + readonly asPendingPayout: BountyStatusPendingPayout; + readonly type: 'Proposed' | 'Approved' | 'Funded' | 'CuratorProposed' | 'Active' | 'PendingPayout'; +} + +/** @name BountyStatusActive */ +export interface BountyStatusActive extends Struct { + readonly curator: AccountId; + readonly updateDue: BlockNumber; +} + +/** @name BountyStatusCuratorProposed */ +export interface BountyStatusCuratorProposed extends Struct { + readonly curator: AccountId; +} + +/** @name BountyStatusPendingPayout */ +export interface BountyStatusPendingPayout extends Struct { + readonly curator: AccountId; + readonly beneficiary: AccountId; + readonly unlockAt: BlockNumber; +} + +/** @name OpenTip */ +export interface OpenTip extends Struct { + readonly reason: Hash; + readonly who: AccountId; + readonly finder: AccountId; + readonly deposit: Balance; + readonly closes: Option; + readonly tips: Vec; + readonly findersFee: bool; +} + +/** @name OpenTipFinderTo225 */ +export interface OpenTipFinderTo225 extends ITuple<[AccountId, Balance]> {} + +/** @name OpenTipTip */ +export interface OpenTipTip extends ITuple<[AccountId, Balance]> {} + +/** @name OpenTipTo225 */ +export interface OpenTipTo225 extends Struct { + readonly reason: Hash; + readonly who: AccountId; + readonly finder: Option; + readonly closes: Option; + readonly tips: Vec; +} + +/** @name TreasuryProposal */ +export interface TreasuryProposal extends Struct { + readonly proposer: AccountId; + readonly value: Balance; + readonly beneficiary: AccountId; + readonly bond: Balance; +} + +export type PHANTOM_TREASURY = 'treasury'; diff --git a/packages/types/src/interfaces/txpayment/definitions.ts b/packages/types/src/interfaces/txpayment/definitions.ts new file mode 100644 index 0000000..446fdd5 --- /dev/null +++ b/packages/types/src/interfaces/txpayment/definitions.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Multiplier: 'Fixed128' + } +} as Definitions; diff --git a/packages/types/src/interfaces/txpayment/index.ts b/packages/types/src/interfaces/txpayment/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/txpayment/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/txpayment/types.ts b/packages/types/src/interfaces/txpayment/types.ts new file mode 100644 index 0000000..ae7cd44 --- /dev/null +++ b/packages/types/src/interfaces/txpayment/types.ts @@ -0,0 +1,9 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Fixed128 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name Multiplier */ +export interface Multiplier extends Fixed128 {} + +export type PHANTOM_TXPAYMENT = 'txpayment'; diff --git a/packages/types/src/interfaces/txqueue/definitions.ts b/packages/types/src/interfaces/txqueue/definitions.ts new file mode 100644 index 0000000..fb3289f --- /dev/null +++ b/packages/types/src/interfaces/txqueue/definitions.ts @@ -0,0 +1,27 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + TransactionSource: { + _enum: ['InBlock', 'Local', 'External'] + }, + TransactionValidity: 'Result', + ValidTransaction: { + priority: 'TransactionPriority', + requires: 'Vec', + provides: 'Vec', + longevity: 'TransactionLongevity', + propagate: 'bool' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/txqueue/index.ts b/packages/types/src/interfaces/txqueue/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/txqueue/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/txqueue/runtime.ts b/packages/types/src/interfaces/txqueue/runtime.ts new file mode 100644 index 0000000..eb05d9f --- /dev/null +++ b/packages/types/src/interfaces/txqueue/runtime.ts @@ -0,0 +1,66 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + TaggedTransactionQueue: [ + { + methods: { + validate_transaction: { + description: 'Validate the transaction.', + params: [ + { + name: 'source', + type: 'TransactionSource' + }, + { + name: 'tx', + type: 'Extrinsic' + }, + { + name: 'blockHash', + type: 'BlockHash' + } + ], + type: 'TransactionValidity' + } + }, + version: 3 + }, + { + methods: { + validate_transaction: { + description: 'Validate the transaction.', + params: [ + { + name: 'source', + type: 'TransactionSource' + }, + { + name: 'tx', + type: 'Extrinsic' + } + ], + type: 'TransactionValidity' + } + }, + version: 2 + }, + { + methods: { + validate_transaction: { + description: 'Validate the transaction.', + params: [ + { + name: 'tx', + type: 'Extrinsic' + } + ], + type: 'TransactionValidity' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/txqueue/types.ts b/packages/types/src/interfaces/txqueue/types.ts new file mode 100644 index 0000000..6de1436 --- /dev/null +++ b/packages/types/src/interfaces/txqueue/types.ts @@ -0,0 +1,33 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum, Result, Struct, Vec, bool } from '@pezkuwi/types-codec'; +import type { TransactionLongevity, TransactionPriority, TransactionTag } from '@pezkuwi/types/interfaces/runtime'; +import type { TransactionValidityError } from '@pezkuwi/types/interfaces/system'; + +/** @name TransactionSource */ +export interface TransactionSource extends Enum { + readonly isInBlock: boolean; + readonly isLocal: boolean; + readonly isExternal: boolean; + readonly type: 'InBlock' | 'Local' | 'External'; +} + +/** @name TransactionValidity */ +export interface TransactionValidity extends Result { + readonly isErr: boolean; + readonly asErr: TransactionValidityError; + readonly isOk: boolean; + readonly asOk: ValidTransaction; +} + +/** @name ValidTransaction */ +export interface ValidTransaction extends Struct { + readonly priority: TransactionPriority; + readonly requires: Vec; + readonly provides: Vec; + readonly longevity: TransactionLongevity; + readonly propagate: bool; +} + +export type PHANTOM_TXQUEUE = 'txqueue'; diff --git a/packages/types/src/interfaces/types.ts b/packages/types/src/interfaces/types.ts new file mode 100644 index 0000000..6347686 --- /dev/null +++ b/packages/types/src/interfaces/types.ts @@ -0,0 +1,82 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './assetConversion/types.js'; +export * from './assets/types.js'; +export * from './attestations/types.js'; +export * from './aura/types.js'; +export * from './author/types.js'; +export * from './authorship/types.js'; +export * from './babe/types.js'; +export * from './balances/types.js'; +export * from './beefy/types.js'; +export * from './benchmark/types.js'; +export * from './blockbuilder/types.js'; +export * from './bridges/types.js'; +export * from './chain/types.js'; +export * from './childstate/types.js'; +export * from './claims/types.js'; +export * from './collective/types.js'; +export * from './consensus/types.js'; +export * from './contracts/types.js'; +export * from './contractsAbi/types.js'; +export * from './crowdloan/types.js'; +export * from './democracy/types.js'; +export * from './dev/types.js'; +export * from './discovery/types.js'; +export * from './dryRunApi/types.js'; +export * from './elections/types.js'; +export * from './engine/types.js'; +export * from './eth/types.js'; +export * from './evm/types.js'; +export * from './extrinsics/types.js'; +export * from './finality/types.js'; +export * from './fungibles/types.js'; +export * from './genericAsset/types.js'; +export * from './genesisBuilder/types.js'; +export * from './gilt/types.js'; +export * from './grandpa/types.js'; +export * from './identity/types.js'; +export * from './imOnline/types.js'; +export * from './lottery/types.js'; +export * from './metadata/types.js'; +export * from './mixnet/types.js'; +export * from './mmr/types.js'; +export * from './nfts/types.js'; +export * from './nimbus/types.js'; +export * from './nompools/types.js'; +export * from './offchain/types.js'; +export * from './offences/types.js'; +export * from './ormlOracle/types.js'; +export * from './ormlTokens/types.js'; +export * from './payment/types.js'; +export * from './pezcumulus/types.js'; +export * from './poll/types.js'; +export * from './pow/types.js'; +export * from './proxy/types.js'; +export * from './purchase/types.js'; +export * from './recovery/types.js'; +export * from './rpc/types.js'; +export * from './runtime/types.js'; +export * from './scaleInfo/types.js'; +export * from './scheduler/types.js'; +export * from './session/types.js'; +export * from './society/types.js'; +export * from './staking/types.js'; +export * from './state/types.js'; +export * from './statement/types.js'; +export * from './support/types.js'; +export * from './syncstate/types.js'; +export * from './system/types.js'; +export * from './teyrchains/types.js'; +export * from './treasury/types.js'; +export * from './txpayment/types.js'; +export * from './txqueue/types.js'; +export * from './uniques/types.js'; +export * from './utility/types.js'; +export * from './vesting/types.js'; +export * from './xcm/types.js'; +export * from './xcmPaymentApi/types.js'; +export * from './xcmRuntimeApi/types.js'; + +export type PHANTOM_GENERATED = 'generated'; diff --git a/packages/types/src/interfaces/uniques/definitions.ts b/packages/types/src/interfaces/uniques/definitions.ts new file mode 100644 index 0000000..dffedee --- /dev/null +++ b/packages/types/src/interfaces/uniques/definitions.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + ClassId: 'u32', + InstanceId: 'u32', + DepositBalance: 'Balance', + DepositBalanceOf: 'Balance', + ClassDetails: { + owner: 'AccountId', + issuer: 'AccountId', + admin: 'AccountId', + freezer: 'AccountId', + totalDeposit: 'DepositBalance', + freeHolding: 'bool', + instances: 'u32', + instanceMetadatas: 'u32', + attributes: 'u32', + isFrozen: 'bool' + }, + DestroyWitness: { + instances: 'Compact', + instanceMetadatas: 'Compact', + attributes: 'Compact' + }, + InstanceDetails: { + owner: 'AccountId', + approved: 'Option', + isFrozen: 'bool', + deposit: 'DepositBalance' + }, + ClassMetadata: { + deposit: 'DepositBalance', + data: 'Vec', + isFrozen: 'bool' + }, + InstanceMetadata: { + deposit: 'DepositBalance', + data: 'Vec', + isFrozen: 'bool' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/uniques/index.ts b/packages/types/src/interfaces/uniques/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/uniques/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/uniques/types.ts b/packages/types/src/interfaces/uniques/types.ts new file mode 100644 index 0000000..d32c303 --- /dev/null +++ b/packages/types/src/interfaces/uniques/types.ts @@ -0,0 +1,62 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Compact, Option, Struct, bool, u32 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance } from '@pezkuwi/types/interfaces/runtime'; + +/** @name ClassDetails */ +export interface ClassDetails extends Struct { + readonly owner: AccountId; + readonly issuer: AccountId; + readonly admin: AccountId; + readonly freezer: AccountId; + readonly totalDeposit: DepositBalance; + readonly freeHolding: bool; + readonly instances: u32; + readonly instanceMetadatas: u32; + readonly attributes: u32; + readonly isFrozen: bool; +} + +/** @name ClassId */ +export interface ClassId extends u32 {} + +/** @name ClassMetadata */ +export interface ClassMetadata extends Struct { + readonly deposit: DepositBalance; + readonly data: Bytes; + readonly isFrozen: bool; +} + +/** @name DepositBalance */ +export interface DepositBalance extends Balance {} + +/** @name DepositBalanceOf */ +export interface DepositBalanceOf extends Balance {} + +/** @name DestroyWitness */ +export interface DestroyWitness extends Struct { + readonly instances: Compact; + readonly instanceMetadatas: Compact; + readonly attributes: Compact; +} + +/** @name InstanceDetails */ +export interface InstanceDetails extends Struct { + readonly owner: AccountId; + readonly approved: Option; + readonly isFrozen: bool; + readonly deposit: DepositBalance; +} + +/** @name InstanceId */ +export interface InstanceId extends u32 {} + +/** @name InstanceMetadata */ +export interface InstanceMetadata extends Struct { + readonly deposit: DepositBalance; + readonly data: Bytes; + readonly isFrozen: bool; +} + +export type PHANTOM_UNIQUES = 'uniques'; diff --git a/packages/types/src/interfaces/utility/definitions.ts b/packages/types/src/interfaces/utility/definitions.ts new file mode 100644 index 0000000..3d0698f --- /dev/null +++ b/packages/types/src/interfaces/utility/definitions.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + Multisig: { + when: 'Timepoint', + deposit: 'Balance', + depositor: 'AccountId', + approvals: 'Vec' + }, + Timepoint: { + height: 'BlockNumber', + index: 'u32' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/utility/index.ts b/packages/types/src/interfaces/utility/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/utility/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/utility/types.ts b/packages/types/src/interfaces/utility/types.ts new file mode 100644 index 0000000..3ce841a --- /dev/null +++ b/packages/types/src/interfaces/utility/types.ts @@ -0,0 +1,21 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct, Vec, u32 } from '@pezkuwi/types-codec'; +import type { AccountId, Balance, BlockNumber } from '@pezkuwi/types/interfaces/runtime'; + +/** @name Multisig */ +export interface Multisig extends Struct { + readonly when: Timepoint; + readonly deposit: Balance; + readonly depositor: AccountId; + readonly approvals: Vec; +} + +/** @name Timepoint */ +export interface Timepoint extends Struct { + readonly height: BlockNumber; + readonly index: u32; +} + +export type PHANTOM_UTILITY = 'utility'; diff --git a/packages/types/src/interfaces/vesting/definitions.ts b/packages/types/src/interfaces/vesting/definitions.ts new file mode 100644 index 0000000..53a29ee --- /dev/null +++ b/packages/types/src/interfaces/vesting/definitions.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +export default { + rpc: {}, + types: { + VestingInfo: { + locked: 'Balance', + perBlock: 'Balance', + startingBlock: 'BlockNumber' + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/vesting/index.ts b/packages/types/src/interfaces/vesting/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/vesting/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/vesting/types.ts b/packages/types/src/interfaces/vesting/types.ts new file mode 100644 index 0000000..2de42a8 --- /dev/null +++ b/packages/types/src/interfaces/vesting/types.ts @@ -0,0 +1,14 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Struct } from '@pezkuwi/types-codec'; +import type { Balance, BlockNumber } from '@pezkuwi/types/interfaces/runtime'; + +/** @name VestingInfo */ +export interface VestingInfo extends Struct { + readonly locked: Balance; + readonly perBlock: Balance; + readonly startingBlock: BlockNumber; +} + +export type PHANTOM_VESTING = 'vesting'; diff --git a/packages/types/src/interfaces/xcm/definitions.ts b/packages/types/src/interfaces/xcm/definitions.ts new file mode 100644 index 0000000..4239a14 --- /dev/null +++ b/packages/types/src/interfaces/xcm/definitions.ts @@ -0,0 +1,189 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { mapXcmTypes } from '@pezkuwi/types-create'; + +import { v0 } from './v0.js'; +import { v1 } from './v1.js'; +import { v2 } from './v2.js'; +import { v3 } from './v3.js'; +import { v4 } from './v4.js'; +import { v5 } from './v5.js'; + +const XCM_LATEST = 'V5'; + +const xcm = { + XcmOrigin: { + _enum: { + Xcm: 'MultiLocation' + } + }, + XcmpMessageFormat: { + _enum: ['ConcatenatedVersionedXcm', 'ConcatenatedEncodedBlob', 'Signals'] + }, + XcmAssetId: { + _enum: { + Concrete: 'MultiLocation', + Abstract: 'Bytes' + } + }, + InboundStatus: { + _enum: ['Ok', 'Suspended'] + }, + OutboundStatus: { + _enum: ['Ok', 'Suspended'] + }, + MultiAssets: 'Vec' +}; + +const location = { + BodyId: { + _enum: { + Unit: 'Null', + Named: 'Vec', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null' + } + }, + BodyPart: { + _enum: { + Voice: 'Null', + Members: 'Compact', + Fraction: { + nom: 'Compact', + denom: 'Compact' + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact' + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + InteriorMultiLocation: 'Junctions', + NetworkId: { + _enum: { + Any: 'Null', + Named: 'Vec', + Pezkuwi: 'Null', + Zagros: 'Null' + } + } +}; + +export default { + rpc: {}, + types: { + ...location, + ...xcm, + ...v0, + ...v1, + ...v2, + ...v3, + ...v4, + ...v5, + ...mapXcmTypes(XCM_LATEST), + DoubleEncodedCall: { + encoded: 'Bytes' + }, + XcmOriginKind: { + _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm'] + }, + Outcome: { + _enum: { + Complete: 'Weight', + Incomplete: '(Weight, XcmErrorV0)', + Error: 'XcmErrorV0' + } + }, + QueryId: 'u64', + QueryStatus: { + _enum: { + Pending: { + responder: 'VersionedMultiLocation', + maybeNotify: 'Option<(u8, u8)>', + timeout: 'BlockNumber' + }, + Ready: { + response: 'VersionedResponse', + at: 'BlockNumber' + } + } + }, + QueueConfigData: { + suspendThreshold: 'u32', + dropThreshold: 'u32', + resumeThreshold: 'u32', + thresholdWeight: 'Weight', + weightRestrictDecay: 'Weight' + }, + VersionMigrationStage: { + _enum: { + MigrateSupportedVersion: 'Null', + MigrateVersionNotifiers: 'Null', + NotifyCurrentTargets: 'Option', + MigrateAndNotifyOldTargets: 'Null' + } + }, + VersionedMultiAsset: { + _enum: { + V0: 'MultiAssetV0', + V1: 'MultiAssetV1', + V2: 'MultiAssetV2', + V3: 'MultiAssetV3', + V4: 'MultiAssetV4', + V5: 'MultiAssetV5' + } + }, + VersionedMultiAssets: { + _enum: { + V0: 'Vec', + V1: 'MultiAssetsV1', + V2: 'MultiAssetsV2', + V3: 'MultiAssetsV3', + V4: 'MultiAssetsV4', + V5: 'MultiAssetsV5' + } + }, + VersionedMultiLocation: { + _enum: { + V0: 'MultiLocationV0', + V1: 'MultiLocationV1', + V2: 'MultiLocationV2', + V3: 'MultiLocationV3', + V4: 'MultiLocationV4', + v5: 'MultiLocationV5' + } + }, + VersionedResponse: { + V0: 'ResponseV0', + V1: 'ResponseV1', + V2: 'ResponseV2', + V3: 'ResponseV3', + V4: 'ResponseV4', + V5: 'ResponseV5' + }, + VersionedXcm: { + _enum: { + V0: 'XcmV0', + V1: 'XcmV1', + V2: 'XcmV2', + V3: 'XcmV3', + V4: 'XcmV4', + V5: 'XcmV5' + } + }, + XcmVersion: 'u32' + } +} as Definitions; diff --git a/packages/types/src/interfaces/xcm/index.ts b/packages/types/src/interfaces/xcm/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/xcm/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/xcm/types.ts b/packages/types/src/interfaces/xcm/types.ts new file mode 100644 index 0000000..f55ad26 --- /dev/null +++ b/packages/types/src/interfaces/xcm/types.ts @@ -0,0 +1,2548 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Bytes, Compact, Enum, Option, Struct, U8aFixed, Vec, bool, u128, u16, u32, u64, u8 } from '@pezkuwi/types-codec'; +import type { ITuple } from '@pezkuwi/types-codec/types'; +import type { AccountId, BlockNumber, Weight, WeightV2 } from '@pezkuwi/types/interfaces/runtime'; + +/** @name AssetIdV2 */ +export interface AssetIdV2 extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: MultiLocationV2; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: 'Concrete' | 'Abstract'; +} + +/** @name AssetIdV3 */ +export interface AssetIdV3 extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: MultiLocationV3; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: 'Concrete' | 'Abstract'; +} + +/** @name AssetIdV4 */ +export interface AssetIdV4 extends MultiLocationV4 {} + +/** @name AssetIdV5 */ +export interface AssetIdV5 extends MultiLocationV5 {} + +/** @name AssetInstance */ +export interface AssetInstance extends AssetInstanceV5 {} + +/** @name AssetInstanceV0 */ +export interface AssetInstanceV0 extends Enum { + readonly isUndefined: boolean; + readonly isIndex8: boolean; + readonly asIndex8: u8; + readonly isIndex16: boolean; + readonly asIndex16: Compact; + readonly isIndex32: boolean; + readonly asIndex32: Compact; + readonly isIndex64: boolean; + readonly asIndex64: Compact; + readonly isIndex128: boolean; + readonly asIndex128: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: 'Undefined' | 'Index8' | 'Index16' | 'Index32' | 'Index64' | 'Index128' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob'; +} + +/** @name AssetInstanceV1 */ +export interface AssetInstanceV1 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob'; +} + +/** @name AssetInstanceV2 */ +export interface AssetInstanceV2 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly isBlob: boolean; + readonly asBlob: Bytes; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32' | 'Blob'; +} + +/** @name AssetInstanceV3 */ +export interface AssetInstanceV3 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; +} + +/** @name AssetInstanceV4 */ +export interface AssetInstanceV4 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; +} + +/** @name AssetInstanceV5 */ +export interface AssetInstanceV5 extends Enum { + readonly isUndefined: boolean; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isArray4: boolean; + readonly asArray4: U8aFixed; + readonly isArray8: boolean; + readonly asArray8: U8aFixed; + readonly isArray16: boolean; + readonly asArray16: U8aFixed; + readonly isArray32: boolean; + readonly asArray32: U8aFixed; + readonly type: 'Undefined' | 'Index' | 'Array4' | 'Array8' | 'Array16' | 'Array32'; +} + +/** @name BodyId */ +export interface BodyId extends Enum { + readonly isUnit: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial'; +} + +/** @name BodyIdV2 */ +export interface BodyIdV2 extends Enum { + readonly isUnit: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: 'Unit' | 'Named' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; +} + +/** @name BodyIdV3 */ +export interface BodyIdV3 extends Enum { + readonly isUnit: boolean; + readonly isMoniker: boolean; + readonly asMoniker: U8aFixed; + readonly isIndex: boolean; + readonly asIndex: Compact; + readonly isExecutive: boolean; + readonly isTechnical: boolean; + readonly isLegislative: boolean; + readonly isJudicial: boolean; + readonly isDefense: boolean; + readonly isAdministration: boolean; + readonly isTreasury: boolean; + readonly type: 'Unit' | 'Moniker' | 'Index' | 'Executive' | 'Technical' | 'Legislative' | 'Judicial' | 'Defense' | 'Administration' | 'Treasury'; +} + +/** @name BodyPart */ +export interface BodyPart extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: Compact; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; +} + +/** @name BodyPartV2 */ +export interface BodyPartV2 extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; +} + +/** @name BodyPartV3 */ +export interface BodyPartV3 extends Enum { + readonly isVoice: boolean; + readonly isMembers: boolean; + readonly asMembers: { + readonly count: Compact; + } & Struct; + readonly isFraction: boolean; + readonly asFraction: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isAtLeastProportion: boolean; + readonly asAtLeastProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly isMoreThanProportion: boolean; + readonly asMoreThanProportion: { + readonly nom: Compact; + readonly denom: Compact; + } & Struct; + readonly type: 'Voice' | 'Members' | 'Fraction' | 'AtLeastProportion' | 'MoreThanProportion'; +} + +/** @name DoubleEncodedCall */ +export interface DoubleEncodedCall extends Struct { + readonly encoded: Bytes; +} + +/** @name Fungibility */ +export interface Fungibility extends FungibilityV5 {} + +/** @name FungibilityV0 */ +export interface FungibilityV0 extends FungibilityV1 {} + +/** @name FungibilityV1 */ +export interface FungibilityV1 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV1; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name FungibilityV2 */ +export interface FungibilityV2 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV2; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name FungibilityV3 */ +export interface FungibilityV3 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV3; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name FungibilityV4 */ +export interface FungibilityV4 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV4; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name FungibilityV5 */ +export interface FungibilityV5 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV5; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name HintV5 */ +export interface HintV5 extends Enum { + readonly isAssetClaimer: boolean; + readonly asAssetClaimer: { + readonly location: MultiLocationV5; + } & Struct; + readonly type: 'AssetClaimer'; +} + +/** @name InboundStatus */ +export interface InboundStatus extends Enum { + readonly isOk: boolean; + readonly isSuspended: boolean; + readonly type: 'Ok' | 'Suspended'; +} + +/** @name InstructionV2 */ +export interface InstructionV2 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: MultiAssetsV2; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: MultiAssetsV2; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: MultiAssetsV2; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV2; + readonly maxWeight: Compact; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV2; + readonly beneficiary: MultiLocationV2; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV2; + readonly dest: MultiLocationV2; + readonly xcm: XcmV2; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originType: XcmOriginKind; + readonly requireWeightAtMost: Compact; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: InteriorMultiLocationV2; + readonly isReportError: boolean; + readonly asReportError: { + readonly queryId: Compact; + readonly dest: MultiLocationV2; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV2; + readonly maxAssets: Compact; + readonly beneficiary: MultiLocationV2; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV2; + readonly maxAssets: Compact; + readonly dest: MultiLocationV2; + readonly xcm: XcmV2; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV2; + readonly receive: MultiAssetsV2; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV2; + readonly reserve: MultiLocationV2; + readonly xcm: XcmV2; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV2; + readonly dest: MultiLocationV2; + readonly xcm: XcmV2; + } & Struct; + readonly isQueryHolding: boolean; + readonly asQueryHolding: { + readonly queryId: Compact; + readonly dest: MultiLocationV2; + readonly assets: MultiAssetFilterV2; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV2; + readonly weightLimit: WeightLimitV2; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV2; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV2; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: MultiAssetsV2; + readonly ticket: MultiLocationV2; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: Compact; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion'; +} + +/** @name InstructionV3 */ +export interface InstructionV3 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: MultiAssetsV3; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: MultiAssetsV3; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: MultiAssetsV3; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV3; + readonly maxWeight: WeightV2; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV3; + readonly beneficiary: MultiLocationV3; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV3; + readonly dest: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: XcmOriginKind; + readonly requireWeightAtMost: WeightV2; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: JunctionsV3; + readonly isReportError: boolean; + readonly asReportError: QueryResponseInfoV3; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV3; + readonly beneficiary: MultiLocationV3; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV3; + readonly dest: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV3; + readonly want: MultiAssetsV3; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV3; + readonly reserve: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV3; + readonly dest: MultiLocationV3; + readonly xcm: XcmV3; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: QueryResponseInfoV3; + readonly assets: MultiAssetFilterV3; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV3; + readonly weightLimit: WeightLimitV3; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV3; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV3; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: MultiAssetsV3; + readonly ticket: MultiLocationV3; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: WeightV2; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: MultiAssetsV3; + readonly isExpectAsset: boolean; + readonly asExpectAsset: MultiAssetsV3; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: MaybeErrorCodeV3; + readonly isQueryPezpallet: boolean; + readonly asQueryPezpallet: { + readonly moduleName: Bytes; + readonly responseInfo: QueryResponseInfoV3; + } & Struct; + readonly isExpectPezpallet: boolean; + readonly asExpectPezpallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: QueryResponseInfoV3; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: JunctionV3; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: NetworkIdV3; + readonly destination: JunctionsV3; + readonly xcm: XcmV3; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: MultiAssetV3; + readonly unlocker: MultiLocationV3; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: MultiAssetV3; + readonly target: MultiLocationV3; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: MultiAssetV3; + readonly owner: MultiLocationV3; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: MultiAssetV3; + readonly locker: MultiLocationV3; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: MultiLocationV3; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: WeightLimitV3; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPezpallet' | 'ExpectPezpallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; +} + +/** @name InstructionV4 */ +export interface InstructionV4 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: MultiAssetsV4; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: MultiAssetsV4; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: MultiAssetsV4; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV4; + readonly maxWeight: WeightV2; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV4; + readonly beneficiary: MultiLocationV4; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV4; + readonly dest: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: OriginKindV4; + readonly requireWeightAtMost: WeightV2; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: JunctionsV4; + readonly isReportError: boolean; + readonly asReportError: QueryResponseInfoV4; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV4; + readonly beneficiary: MultiLocationV4; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV4; + readonly dest: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV4; + readonly want: MultiAssetsV4; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV4; + readonly reserve: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV4; + readonly dest: MultiLocationV4; + readonly xcm: XcmV4; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: QueryResponseInfoV4; + readonly assets: MultiAssetFilterV4; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV4; + readonly weightLimit: WeightLimitV3; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV4; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV4; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: MultiAssetsV4; + readonly ticket: MultiLocationV4; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: WeightV2; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: MultiAssetsV4; + readonly isExpectAsset: boolean; + readonly asExpectAsset: MultiAssetsV4; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: MaybeErrorCodeV3; + readonly isQueryPezpallet: boolean; + readonly asQueryPezpallet: { + readonly moduleName: Bytes; + readonly responseInfo: QueryResponseInfoV4; + } & Struct; + readonly isExpectPezpallet: boolean; + readonly asExpectPezpallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: QueryResponseInfoV4; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: JunctionV4; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: NetworkIdV4; + readonly destination: JunctionsV4; + readonly xcm: XcmV4; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: MultiAssetV4; + readonly unlocker: MultiLocationV4; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: MultiAssetV4; + readonly target: MultiLocationV4; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: MultiAssetV4; + readonly owner: MultiLocationV4; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: MultiAssetV4; + readonly locker: MultiLocationV4; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: MultiLocationV4; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: WeightLimitV3; + readonly checkOrigin: Option; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPezpallet' | 'ExpectPezpallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution'; +} + +/** @name InstructionV5 */ +export interface InstructionV5 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: MultiAssetsV5; + readonly isReserveAssetDeposited: boolean; + readonly asReserveAssetDeposited: MultiAssetsV5; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: MultiAssetsV5; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV5; + readonly maxWeight: WeightV2; + readonly querier: Option; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV5; + readonly beneficiary: MultiLocationV5; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV5; + readonly dest: MultiLocationV5; + readonly xcm: XcmV5; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originKind: OriginKindV4; + readonly requireWeightAtMost: WeightV2; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isClearOrigin: boolean; + readonly isDescendOrigin: boolean; + readonly asDescendOrigin: InteriorMultiLocationV5; + readonly isReportError: boolean; + readonly asReportError: QueryResponseInfoV4; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV5; + readonly beneficiary: MultiLocationV5; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV5; + readonly dest: MultiLocationV5; + readonly xcm: XcmV5; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV5; + readonly want: MultiAssetsV5; + readonly maximal: bool; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV5; + readonly reserve: MultiLocationV5; + readonly xcm: XcmV5; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV5; + readonly dest: MultiLocationV5; + readonly xcm: XcmV5; + } & Struct; + readonly isReportHolding: boolean; + readonly asReportHolding: { + readonly responseInfo: QueryResponseInfoV4; + readonly assets: MultiAssetFilterV5; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV4; + readonly weightLimit: WeightLimitV3; + } & Struct; + readonly isRefundSurplus: boolean; + readonly isSetErrorHandler: boolean; + readonly asSetErrorHandler: XcmV5; + readonly isSetAppendix: boolean; + readonly asSetAppendix: XcmV5; + readonly isClearError: boolean; + readonly isClaimAsset: boolean; + readonly asClaimAsset: { + readonly assets: MultiAssetsV5; + readonly ticket: MultiLocationV5; + } & Struct; + readonly isTrap: boolean; + readonly asTrap: Compact; + readonly isSubscribeVersion: boolean; + readonly asSubscribeVersion: { + readonly queryId: Compact; + readonly maxResponseWeight: WeightV2; + } & Struct; + readonly isUnsubscribeVersion: boolean; + readonly isBurnAsset: boolean; + readonly asBurnAsset: MultiAssetsV5; + readonly isExpectAsset: boolean; + readonly asExpectAsset: MultiAssetsV5; + readonly isExpectOrigin: boolean; + readonly asExpectOrigin: Option; + readonly isExpectError: boolean; + readonly asExpectError: Option>; + readonly isExpectTransactStatus: boolean; + readonly asExpectTransactStatus: MaybeErrorCodeV3; + readonly isQueryPezpallet: boolean; + readonly asQueryPezpallet: { + readonly moduleName: Bytes; + readonly responseInfo: QueryResponseInfoV4; + } & Struct; + readonly isExpectPezpallet: boolean; + readonly asExpectPezpallet: { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly crateMajor: Compact; + readonly minCrateMinor: Compact; + } & Struct; + readonly isReportTransactStatus: boolean; + readonly asReportTransactStatus: QueryResponseInfoV4; + readonly isClearTransactStatus: boolean; + readonly isUniversalOrigin: boolean; + readonly asUniversalOrigin: JunctionV5; + readonly isExportMessage: boolean; + readonly asExportMessage: { + readonly network: NetworkIdV5; + readonly destination: InteriorMultiLocationV5; + readonly xcm: XcmV5; + } & Struct; + readonly isLockAsset: boolean; + readonly asLockAsset: { + readonly asset: MultiAssetV5; + readonly unlocker: MultiLocationV5; + } & Struct; + readonly isUnlockAsset: boolean; + readonly asUnlockAsset: { + readonly asset: MultiAssetV5; + readonly target: MultiLocationV5; + } & Struct; + readonly isNoteUnlockable: boolean; + readonly asNoteUnlockable: { + readonly asset: MultiAssetV5; + readonly owner: MultiLocationV5; + } & Struct; + readonly isRequestUnlock: boolean; + readonly asRequestUnlock: { + readonly asset: MultiAssetV5; + readonly locker: MultiLocationV5; + } & Struct; + readonly isSetFeesMode: boolean; + readonly asSetFeesMode: { + readonly jitWithdraw: bool; + } & Struct; + readonly isSetTopic: boolean; + readonly asSetTopic: U8aFixed; + readonly isClearTopic: boolean; + readonly isAliasOrigin: boolean; + readonly asAliasOrigin: MultiLocationV5; + readonly isUnpaidExecution: boolean; + readonly asUnpaidExecution: { + readonly weightLimit: WeightLimitV3; + readonly checkOrigin: Option; + } & Struct; + readonly isPayFees: boolean; + readonly asPayFees: { + readonly asset: MultiAssetV5; + } & Struct; + readonly isInitiateTransfer: boolean; + readonly asInitiateTransfer: { + readonly destination: MultiLocationV5; + readonly remoteFees: Option; + readonly preserveOrigin: bool; + readonly assets: Vec; + readonly remoteXcm: XcmV5; + } & Struct; + readonly isExecuteWithOrigin: boolean; + readonly asExecuteWithOrigin: { + readonly descendant_origin: Option; + readonly xcm: XcmV5; + } & Struct; + readonly isSetHints: boolean; + readonly asSetHints: { + readonly hints: Vec; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposited' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'ClearOrigin' | 'DescendOrigin' | 'ReportError' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'ReportHolding' | 'BuyExecution' | 'RefundSurplus' | 'SetErrorHandler' | 'SetAppendix' | 'ClearError' | 'ClaimAsset' | 'Trap' | 'SubscribeVersion' | 'UnsubscribeVersion' | 'BurnAsset' | 'ExpectAsset' | 'ExpectOrigin' | 'ExpectError' | 'ExpectTransactStatus' | 'QueryPezpallet' | 'ExpectPezpallet' | 'ReportTransactStatus' | 'ClearTransactStatus' | 'UniversalOrigin' | 'ExportMessage' | 'LockAsset' | 'UnlockAsset' | 'NoteUnlockable' | 'RequestUnlock' | 'SetFeesMode' | 'SetTopic' | 'ClearTopic' | 'AliasOrigin' | 'UnpaidExecution' | 'PayFees' | 'InitiateTransfer' | 'ExecuteWithOrigin' | 'SetHints'; +} + +/** @name InteriorMultiLocation */ +export interface InteriorMultiLocation extends Junctions {} + +/** @name InteriorMultiLocationV2 */ +export interface InteriorMultiLocationV2 extends JunctionsV2 {} + +/** @name InteriorMultiLocationV3 */ +export interface InteriorMultiLocationV3 extends JunctionsV3 {} + +/** @name InteriorMultiLocationV5 */ +export interface InteriorMultiLocationV5 extends JunctionsV5 {} + +/** @name Junction */ +export interface Junction extends JunctionV5 {} + +/** @name Junctions */ +export interface Junctions extends JunctionsV5 {} + +/** @name JunctionsV1 */ +export interface JunctionsV1 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: JunctionV1; + readonly isX2: boolean; + readonly asX2: ITuple<[JunctionV1, JunctionV1]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV1, JunctionV1, JunctionV1]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV2 */ +export interface JunctionsV2 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: JunctionV2; + readonly isX2: boolean; + readonly asX2: ITuple<[JunctionV2, JunctionV2]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV2, JunctionV2, JunctionV2]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV3 */ +export interface JunctionsV3 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: JunctionV3; + readonly isX2: boolean; + readonly asX2: ITuple<[JunctionV3, JunctionV3]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV3, JunctionV3, JunctionV3]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV4 */ +export interface JunctionsV4 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: Vec; + readonly isX2: boolean; + readonly asX2: Vec; + readonly isX3: boolean; + readonly asX3: Vec; + readonly isX4: boolean; + readonly asX4: Vec; + readonly isX5: boolean; + readonly asX5: Vec; + readonly isX6: boolean; + readonly asX6: Vec; + readonly isX7: boolean; + readonly asX7: Vec; + readonly isX8: boolean; + readonly asX8: Vec; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionsV5 */ +export interface JunctionsV5 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: Vec; + readonly isX2: boolean; + readonly asX2: Vec; + readonly isX3: boolean; + readonly asX3: Vec; + readonly isX4: boolean; + readonly asX4: Vec; + readonly isX5: boolean; + readonly asX5: Vec; + readonly isX6: boolean; + readonly asX6: Vec; + readonly isX7: boolean; + readonly asX7: Vec; + readonly isX8: boolean; + readonly asX8: Vec; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name JunctionV0 */ +export interface JunctionV0 extends Enum { + readonly isParent: boolean; + readonly isTeyrchain: boolean; + readonly asTeyrchain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: NetworkId; + readonly id: AccountId; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: NetworkId; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: NetworkId; + readonly key: U8aFixed; + } & Struct; + readonly isPezpalletInstance: boolean; + readonly asPezpalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyId; + readonly part: BodyPart; + } & Struct; + readonly type: 'Parent' | 'Teyrchain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PezpalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality'; +} + +/** @name JunctionV1 */ +export interface JunctionV1 extends Enum { + readonly isTeyrchain: boolean; + readonly asTeyrchain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: NetworkId; + readonly id: AccountId; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: NetworkId; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: NetworkId; + readonly key: U8aFixed; + } & Struct; + readonly isPezpalletInstance: boolean; + readonly asPezpalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyId; + readonly part: BodyPart; + } & Struct; + readonly type: 'Teyrchain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PezpalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality'; +} + +/** @name JunctionV2 */ +export interface JunctionV2 extends Enum { + readonly isTeyrchain: boolean; + readonly asTeyrchain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: NetworkIdV2; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: NetworkIdV2; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: NetworkIdV2; + readonly key: U8aFixed; + } & Struct; + readonly isPezpalletInstance: boolean; + readonly asPezpalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: Bytes; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV2; + readonly part: BodyPartV2; + } & Struct; + readonly type: 'Teyrchain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PezpalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality'; +} + +/** @name JunctionV3 */ +export interface JunctionV3 extends Enum { + readonly isTeyrchain: boolean; + readonly asTeyrchain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPezpalletInstance: boolean; + readonly asPezpalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV3; + readonly part: BodyPartV3; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: NetworkIdV3; + readonly type: 'Teyrchain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PezpalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; +} + +/** @name JunctionV4 */ +export interface JunctionV4 extends Enum { + readonly isTeyrchain: boolean; + readonly asTeyrchain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPezpalletInstance: boolean; + readonly asPezpalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV3; + readonly part: BodyPartV3; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: NetworkIdV4; + readonly type: 'Teyrchain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PezpalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; +} + +/** @name JunctionV5 */ +export interface JunctionV5 extends Enum { + readonly isTeyrchain: boolean; + readonly asTeyrchain: Compact; + readonly isAccountId32: boolean; + readonly asAccountId32: { + readonly network: Option; + readonly id: U8aFixed; + } & Struct; + readonly isAccountIndex64: boolean; + readonly asAccountIndex64: { + readonly network: Option; + readonly index: Compact; + } & Struct; + readonly isAccountKey20: boolean; + readonly asAccountKey20: { + readonly network: Option; + readonly key: U8aFixed; + } & Struct; + readonly isPezpalletInstance: boolean; + readonly asPezpalletInstance: u8; + readonly isGeneralIndex: boolean; + readonly asGeneralIndex: Compact; + readonly isGeneralKey: boolean; + readonly asGeneralKey: { + readonly length: u8; + readonly data: U8aFixed; + } & Struct; + readonly isOnlyChild: boolean; + readonly isPlurality: boolean; + readonly asPlurality: { + readonly id: BodyIdV3; + readonly part: BodyPartV3; + } & Struct; + readonly isGlobalConsensus: boolean; + readonly asGlobalConsensus: NetworkIdV5; + readonly type: 'Teyrchain' | 'AccountId32' | 'AccountIndex64' | 'AccountKey20' | 'PezpalletInstance' | 'GeneralIndex' | 'GeneralKey' | 'OnlyChild' | 'Plurality' | 'GlobalConsensus'; +} + +/** @name MaxPezpalletNameLen */ +export interface MaxPezpalletNameLen extends u32 {} + +/** @name MaxPezpalletsInfo */ +export interface MaxPezpalletsInfo extends u32 {} + +/** @name MaybeErrorCodeV3 */ +export interface MaybeErrorCodeV3 extends Enum { + readonly isSuccess: boolean; + readonly isError: boolean; + readonly asError: Bytes; + readonly isTruncatedError: boolean; + readonly asTruncatedError: Bytes; + readonly type: 'Success' | 'Error' | 'TruncatedError'; +} + +/** @name MultiAsset */ +export interface MultiAsset extends MultiAssetV5 {} + +/** @name MultiAssetFilter */ +export interface MultiAssetFilter extends MultiAssetFilterV5 {} + +/** @name MultiAssetFilterV1 */ +export interface MultiAssetFilterV1 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV1; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV1; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssetFilterV2 */ +export interface MultiAssetFilterV2 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV2; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV2; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssetFilterV3 */ +export interface MultiAssetFilterV3 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV3; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV3; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssetFilterV4 */ +export interface MultiAssetFilterV4 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV4; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV4; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssetFilterV5 */ +export interface MultiAssetFilterV5 extends Enum { + readonly isDefinite: boolean; + readonly asDefinite: MultiAssetsV5; + readonly isWild: boolean; + readonly asWild: WildMultiAssetV5; + readonly type: 'Definite' | 'Wild'; +} + +/** @name MultiAssets */ +export interface MultiAssets extends Vec {} + +/** @name MultiAssetsV1 */ +export interface MultiAssetsV1 extends Vec {} + +/** @name MultiAssetsV2 */ +export interface MultiAssetsV2 extends Vec {} + +/** @name MultiAssetsV3 */ +export interface MultiAssetsV3 extends Vec {} + +/** @name MultiAssetsV4 */ +export interface MultiAssetsV4 extends Vec {} + +/** @name MultiAssetsV5 */ +export interface MultiAssetsV5 extends Vec {} + +/** @name MultiAssetTransferFilterV5 */ +export interface MultiAssetTransferFilterV5 extends Enum { + readonly isTeleport: boolean; + readonly asTeleport: MultiAssetFilterV5; + readonly isReserveDeposit: boolean; + readonly asReserveDeposit: MultiAssetFilterV5; + readonly isReserveWithdraw: boolean; + readonly asReserveWithdraw: MultiAssetFilterV5; + readonly type: 'Teleport' | 'ReserveDeposit' | 'ReserveWithdraw'; +} + +/** @name MultiAssetV0 */ +export interface MultiAssetV0 extends Enum { + readonly isNone: boolean; + readonly isAll: boolean; + readonly isAllFungible: boolean; + readonly isAllNonFungible: boolean; + readonly isAllAbstractFungible: boolean; + readonly asAllAbstractFungible: Bytes; + readonly isAllAbstractNonFungible: boolean; + readonly asAllAbstractNonFungible: Bytes; + readonly isAllConcreteFungible: boolean; + readonly asAllConcreteFungible: MultiLocationV0; + readonly isAllConcreteNonFungible: boolean; + readonly asAllConcreteNonFungible: MultiLocationV0; + readonly isAbstractFungible: boolean; + readonly asAbstractFungible: { + readonly id: Bytes; + readonly instance: Compact; + } & Struct; + readonly isAbstractNonFungible: boolean; + readonly asAbstractNonFungible: { + readonly class: Bytes; + readonly instance: AssetInstanceV0; + } & Struct; + readonly isConcreteFungible: boolean; + readonly asConcreteFungible: { + readonly id: MultiLocationV0; + readonly amount: Compact; + } & Struct; + readonly isConcreteNonFungible: boolean; + readonly asConcreteNonFungible: { + readonly class: MultiLocationV0; + readonly instance: AssetInstanceV0; + } & Struct; + readonly type: 'None' | 'All' | 'AllFungible' | 'AllNonFungible' | 'AllAbstractFungible' | 'AllAbstractNonFungible' | 'AllConcreteFungible' | 'AllConcreteNonFungible' | 'AbstractFungible' | 'AbstractNonFungible' | 'ConcreteFungible' | 'ConcreteNonFungible'; +} + +/** @name MultiAssetV1 */ +export interface MultiAssetV1 extends Struct { + readonly id: XcmAssetId; + readonly fungibility: FungibilityV1; +} + +/** @name MultiAssetV2 */ +export interface MultiAssetV2 extends Struct { + readonly id: AssetIdV2; + readonly fun: FungibilityV2; +} + +/** @name MultiAssetV3 */ +export interface MultiAssetV3 extends Struct { + readonly id: AssetIdV3; + readonly fun: FungibilityV3; +} + +/** @name MultiAssetV4 */ +export interface MultiAssetV4 extends Struct { + readonly id: AssetIdV4; + readonly fun: FungibilityV4; +} + +/** @name MultiAssetV5 */ +export interface MultiAssetV5 extends Struct { + readonly id: AssetIdV5; + readonly fun: FungibilityV5; +} + +/** @name MultiLocation */ +export interface MultiLocation extends MultiLocationV5 {} + +/** @name MultiLocationV0 */ +export interface MultiLocationV0 extends Enum { + readonly isHere: boolean; + readonly isX1: boolean; + readonly asX1: JunctionV0; + readonly isX2: boolean; + readonly asX2: ITuple<[JunctionV0, JunctionV0]>; + readonly isX3: boolean; + readonly asX3: ITuple<[JunctionV0, JunctionV0, JunctionV0]>; + readonly isX4: boolean; + readonly asX4: ITuple<[JunctionV0, JunctionV0, JunctionV0, JunctionV0]>; + readonly isX5: boolean; + readonly asX5: ITuple<[JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0]>; + readonly isX6: boolean; + readonly asX6: ITuple<[JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0]>; + readonly isX7: boolean; + readonly asX7: ITuple<[JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0]>; + readonly isX8: boolean; + readonly asX8: ITuple<[JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0]>; + readonly type: 'Here' | 'X1' | 'X2' | 'X3' | 'X4' | 'X5' | 'X6' | 'X7' | 'X8'; +} + +/** @name MultiLocationV1 */ +export interface MultiLocationV1 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV1; +} + +/** @name MultiLocationV2 */ +export interface MultiLocationV2 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV2; +} + +/** @name MultiLocationV3 */ +export interface MultiLocationV3 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV3; +} + +/** @name MultiLocationV4 */ +export interface MultiLocationV4 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV4; +} + +/** @name MultiLocationV5 */ +export interface MultiLocationV5 extends Struct { + readonly parents: u8; + readonly interior: JunctionsV5; +} + +/** @name NetworkId */ +export interface NetworkId extends Enum { + readonly isAny: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isPezkuwi: boolean; + readonly isZagros: boolean; + readonly type: 'Any' | 'Named' | 'Pezkuwi' | 'Zagros'; +} + +/** @name NetworkIdV2 */ +export interface NetworkIdV2 extends Enum { + readonly isAny: boolean; + readonly isNamed: boolean; + readonly asNamed: Bytes; + readonly isPezkuwi: boolean; + readonly isDicle: boolean; + readonly isZagros: boolean; + readonly type: 'Any' | 'Named' | 'Pezkuwi' | 'Dicle' | 'Zagros'; +} + +/** @name NetworkIdV3 */ +export interface NetworkIdV3 extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPezkuwi: boolean; + readonly isDicle: boolean; + readonly isZagros: boolean; + readonly isPezkuwichain: boolean; + readonly isWococo: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPezkuwiBulletin: boolean; + readonly type: 'ByGenesis' | 'ByFork' | 'Pezkuwi' | 'Dicle' | 'Zagros' | 'Pezkuwichain' | 'Wococo' | 'Ethereum' | 'BitcoinCore' | 'BitcoinCash' | 'PezkuwiBulletin'; +} + +/** @name NetworkIdV4 */ +export interface NetworkIdV4 extends NetworkIdV3 {} + +/** @name NetworkIdV5 */ +export interface NetworkIdV5 extends Enum { + readonly isByGenesis: boolean; + readonly asByGenesis: U8aFixed; + readonly isByFork: boolean; + readonly asByFork: { + readonly blockNumber: u64; + readonly blockHash: U8aFixed; + } & Struct; + readonly isPezkuwi: boolean; + readonly isDicle: boolean; + readonly isZagros: boolean; + readonly isEthereum: boolean; + readonly asEthereum: { + readonly chainId: Compact; + } & Struct; + readonly isBitcoinCore: boolean; + readonly isBitcoinCash: boolean; + readonly isPezkuwiBulletin: boolean; + readonly type: 'ByGenesis' | 'ByFork' | 'Pezkuwi' | 'Dicle' | 'Zagros' | 'Ethereum' | 'BitcoinCore' | 'BitcoinCash' | 'PezkuwiBulletin'; +} + +/** @name OriginKindV0 */ +export interface OriginKindV0 extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; +} + +/** @name OriginKindV1 */ +export interface OriginKindV1 extends OriginKindV0 {} + +/** @name OriginKindV2 */ +export interface OriginKindV2 extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; +} + +/** @name OriginKindV3 */ +export interface OriginKindV3 extends OriginKindV2 {} + +/** @name OriginKindV4 */ +export interface OriginKindV4 extends XcmOriginKind {} + +/** @name OutboundStatus */ +export interface OutboundStatus extends Enum { + readonly isOk: boolean; + readonly isSuspended: boolean; + readonly type: 'Ok' | 'Suspended'; +} + +/** @name Outcome */ +export interface Outcome extends Enum { + readonly isComplete: boolean; + readonly asComplete: Weight; + readonly isIncomplete: boolean; + readonly asIncomplete: ITuple<[Weight, XcmErrorV0]>; + readonly isError: boolean; + readonly asError: XcmErrorV0; + readonly type: 'Complete' | 'Incomplete' | 'Error'; +} + +/** @name OutcomeV4 */ +export interface OutcomeV4 extends Enum { + readonly isComplete: boolean; + readonly asComplete: { + readonly used: WeightV2; + } & Struct; + readonly isIncomplete: boolean; + readonly asIncomplete: { + readonly used: WeightV2; + readonly error: XcmErrorV3; + } & Struct; + readonly isError: boolean; + readonly asError: { + readonly error: XcmErrorV3; + } & Struct; + readonly type: 'Complete' | 'Incomplete' | 'Error'; +} + +/** @name PezpalletInfoV3 */ +export interface PezpalletInfoV3 extends Struct { + readonly index: Compact; + readonly name: Bytes; + readonly moduleName: Bytes; + readonly major: Compact; + readonly minor: Compact; + readonly patch: Compact; +} + +/** @name PezpalletInfoV4 */ +export interface PezpalletInfoV4 extends PezpalletInfoV3 {} + +/** @name PezpalletInfoV5 */ +export interface PezpalletInfoV5 extends PezpalletInfoV3 {} + +/** @name QueryId */ +export interface QueryId extends u64 {} + +/** @name QueryResponseInfoV3 */ +export interface QueryResponseInfoV3 extends Struct { + readonly destination: MultiLocationV3; + readonly queryId: Compact; + readonly maxWeight: WeightV2; +} + +/** @name QueryResponseInfoV4 */ +export interface QueryResponseInfoV4 extends Struct { + readonly destination: MultiLocationV4; + readonly queryId: Compact; + readonly maxWeight: WeightV2; +} + +/** @name QueryResponseInfoV5 */ +export interface QueryResponseInfoV5 extends Struct { + readonly destination: MultiLocationV5; + readonly queryId: Compact; + readonly maxWeight: WeightV2; +} + +/** @name QueryStatus */ +export interface QueryStatus extends Enum { + readonly isPending: boolean; + readonly asPending: { + readonly responder: VersionedMultiLocation; + readonly maybeNotify: Option>; + readonly timeout: BlockNumber; + } & Struct; + readonly isReady: boolean; + readonly asReady: { + readonly response: VersionedResponse; + readonly at: BlockNumber; + } & Struct; + readonly type: 'Pending' | 'Ready'; +} + +/** @name QueueConfigData */ +export interface QueueConfigData extends Struct { + readonly suspendThreshold: u32; + readonly dropThreshold: u32; + readonly resumeThreshold: u32; + readonly thresholdWeight: Weight; + readonly weightRestrictDecay: Weight; +} + +/** @name Response */ +export interface Response extends ResponseV5 {} + +/** @name ResponseV0 */ +export interface ResponseV0 extends Enum { + readonly isAssets: boolean; + readonly asAssets: Vec; + readonly type: 'Assets'; +} + +/** @name ResponseV1 */ +export interface ResponseV1 extends Enum { + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV1; + readonly type: 'Assets'; +} + +/** @name ResponseV2 */ +export interface ResponseV2 extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV2; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version'; +} + +/** @name ResponseV2Error */ +export interface ResponseV2Error extends ITuple<[u32, XcmErrorV2]> {} + +/** @name ResponseV3 */ +export interface ResponseV3 extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV3; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPezpalletsInfo: boolean; + readonly asPezpalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: MaybeErrorCodeV3; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PezpalletsInfo' | 'DispatchResult'; +} + +/** @name ResponseV3Error */ +export interface ResponseV3Error extends ITuple<[u32, XcmErrorV3]> {} + +/** @name ResponseV3Result */ +export interface ResponseV3Result extends Option> {} + +/** @name ResponseV4 */ +export interface ResponseV4 extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV4; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPezpalletsInfo: boolean; + readonly asPezpalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: MaybeErrorCodeV3; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PezpalletsInfo' | 'DispatchResult'; +} + +/** @name ResponseV5 */ +export interface ResponseV5 extends Enum { + readonly isNull: boolean; + readonly isAssets: boolean; + readonly asAssets: MultiAssetsV5; + readonly isExecutionResult: boolean; + readonly asExecutionResult: Option>; + readonly isVersion: boolean; + readonly asVersion: u32; + readonly isPezpalletsInfo: boolean; + readonly asPezpalletsInfo: Vec; + readonly isDispatchResult: boolean; + readonly asDispatchResult: MaybeErrorCodeV3; + readonly type: 'Null' | 'Assets' | 'ExecutionResult' | 'Version' | 'PezpalletsInfo' | 'DispatchResult'; +} + +/** @name UncheckedFungibilityV4 */ +export interface UncheckedFungibilityV4 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV4; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name UncheckedFungibilityV5 */ +export interface UncheckedFungibilityV5 extends Enum { + readonly isFungible: boolean; + readonly asFungible: Compact; + readonly isNonFungible: boolean; + readonly asNonFungible: AssetInstanceV5; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name VersionedMultiAsset */ +export interface VersionedMultiAsset extends Enum { + readonly isV0: boolean; + readonly asV0: MultiAssetV0; + readonly isV1: boolean; + readonly asV1: MultiAssetV1; + readonly isV2: boolean; + readonly asV2: MultiAssetV2; + readonly isV3: boolean; + readonly asV3: MultiAssetV3; + readonly isV4: boolean; + readonly asV4: MultiAssetV4; + readonly isV5: boolean; + readonly asV5: MultiAssetV5; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5'; +} + +/** @name VersionedMultiAssets */ +export interface VersionedMultiAssets extends Enum { + readonly isV0: boolean; + readonly asV0: Vec; + readonly isV1: boolean; + readonly asV1: MultiAssetsV1; + readonly isV2: boolean; + readonly asV2: MultiAssetsV2; + readonly isV3: boolean; + readonly asV3: MultiAssetsV3; + readonly isV4: boolean; + readonly asV4: MultiAssetsV4; + readonly isV5: boolean; + readonly asV5: MultiAssetsV5; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5'; +} + +/** @name VersionedMultiLocation */ +export interface VersionedMultiLocation extends Enum { + readonly isV0: boolean; + readonly asV0: MultiLocationV0; + readonly isV1: boolean; + readonly asV1: MultiLocationV1; + readonly isV2: boolean; + readonly asV2: MultiLocationV2; + readonly isV3: boolean; + readonly asV3: MultiLocationV3; + readonly isV4: boolean; + readonly asV4: MultiLocationV4; + readonly isV5: boolean; + readonly asV5: MultiLocationV5; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5'; +} + +/** @name VersionedResponse */ +export interface VersionedResponse extends Struct { + readonly V0: ResponseV0; + readonly V1: ResponseV1; + readonly V2: ResponseV2; + readonly V3: ResponseV3; + readonly V4: ResponseV4; + readonly V5: ResponseV5; +} + +/** @name VersionedXcm */ +export interface VersionedXcm extends Enum { + readonly isV0: boolean; + readonly asV0: XcmV0; + readonly isV1: boolean; + readonly asV1: XcmV1; + readonly isV2: boolean; + readonly asV2: XcmV2; + readonly isV3: boolean; + readonly asV3: XcmV3; + readonly isV4: boolean; + readonly asV4: XcmV4; + readonly isV5: boolean; + readonly asV5: XcmV5; + readonly type: 'V0' | 'V1' | 'V2' | 'V3' | 'V4' | 'V5'; +} + +/** @name VersionMigrationStage */ +export interface VersionMigrationStage extends Enum { + readonly isMigrateSupportedVersion: boolean; + readonly isMigrateVersionNotifiers: boolean; + readonly isNotifyCurrentTargets: boolean; + readonly asNotifyCurrentTargets: Option; + readonly isMigrateAndNotifyOldTargets: boolean; + readonly type: 'MigrateSupportedVersion' | 'MigrateVersionNotifiers' | 'NotifyCurrentTargets' | 'MigrateAndNotifyOldTargets'; +} + +/** @name VersionV3 */ +export interface VersionV3 extends u32 {} + +/** @name VersionV4 */ +export interface VersionV4 extends u32 {} + +/** @name WeightLimitV2 */ +export interface WeightLimitV2 extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: Compact; + readonly type: 'Unlimited' | 'Limited'; +} + +/** @name WeightLimitV3 */ +export interface WeightLimitV3 extends Enum { + readonly isUnlimited: boolean; + readonly isLimited: boolean; + readonly asLimited: WeightV2; + readonly type: 'Unlimited' | 'Limited'; +} + +/** @name WildFungibility */ +export interface WildFungibility extends WildFungibilityV5 {} + +/** @name WildFungibilityV0 */ +export interface WildFungibilityV0 extends WildFungibilityV1 {} + +/** @name WildFungibilityV1 */ +export interface WildFungibilityV1 extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name WildFungibilityV2 */ +export interface WildFungibilityV2 extends Enum { + readonly isFungible: boolean; + readonly isNonFungible: boolean; + readonly type: 'Fungible' | 'NonFungible'; +} + +/** @name WildFungibilityV3 */ +export interface WildFungibilityV3 extends WildFungibilityV2 {} + +/** @name WildFungibilityV4 */ +export interface WildFungibilityV4 extends WildFungibilityV2 {} + +/** @name WildFungibilityV5 */ +export interface WildFungibilityV5 extends WildFungibilityV2 {} + +/** @name WildMultiAsset */ +export interface WildMultiAsset extends WildMultiAssetV5 {} + +/** @name WildMultiAssetV1 */ +export interface WildMultiAssetV1 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: XcmAssetId; + readonly fungibility: WildFungibilityV1; + } & Struct; + readonly type: 'All' | 'AllOf'; +} + +/** @name WildMultiAssetV2 */ +export interface WildMultiAssetV2 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV2; + readonly fun: WildFungibilityV2; + } & Struct; + readonly type: 'All' | 'AllOf'; +} + +/** @name WildMultiAssetV3 */ +export interface WildMultiAssetV3 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV3; + readonly fun: WildFungibilityV2; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: AssetIdV3; + readonly fun: WildFungibilityV2; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; +} + +/** @name WildMultiAssetV4 */ +export interface WildMultiAssetV4 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV4; + readonly fun: WildFungibilityV4; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: AssetIdV4; + readonly fun: WildFungibilityV4; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; +} + +/** @name WildMultiAssetV5 */ +export interface WildMultiAssetV5 extends Enum { + readonly isAll: boolean; + readonly isAllOf: boolean; + readonly asAllOf: { + readonly id: AssetIdV5; + readonly fun: WildFungibilityV5; + } & Struct; + readonly isAllCounted: boolean; + readonly asAllCounted: Compact; + readonly isAllOfCounted: boolean; + readonly asAllOfCounted: { + readonly id: AssetIdV5; + readonly fun: WildFungibilityV5; + readonly count: Compact; + } & Struct; + readonly type: 'All' | 'AllOf' | 'AllCounted' | 'AllOfCounted'; +} + +/** @name Xcm */ +export interface Xcm extends XcmV5 {} + +/** @name XcmAssetId */ +export interface XcmAssetId extends Enum { + readonly isConcrete: boolean; + readonly asConcrete: MultiLocation; + readonly isAbstract: boolean; + readonly asAbstract: Bytes; + readonly type: 'Concrete' | 'Abstract'; +} + +/** @name XcmError */ +export interface XcmError extends XcmErrorV5 {} + +/** @name XcmErrorV0 */ +export interface XcmErrorV0 extends Enum { + readonly isUndefined: boolean; + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isUnhandledXcmMessage: boolean; + readonly isUnhandledEffect: boolean; + readonly isEscalationOfPrivilege: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isDestinationBufferOverflow: boolean; + readonly isSendFailed: boolean; + readonly isCannotReachDestination: boolean; + readonly asCannotReachDestination: ITuple<[MultiLocation, Xcm]>; + readonly isMultiLocationFull: boolean; + readonly isFailedToDecode: boolean; + readonly isBadOrigin: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: Weight; + readonly isWildcard: boolean; + readonly isTooMuchWeightRequired: boolean; + readonly isNotHoldingFees: boolean; + readonly isWeightNotComputable: boolean; + readonly isBarrier: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isTooExpensive: boolean; + readonly isAssetNotFound: boolean; + readonly isRecursionLimitReached: boolean; + readonly type: 'Undefined' | 'Overflow' | 'Unimplemented' | 'UnhandledXcmVersion' | 'UnhandledXcmMessage' | 'UnhandledEffect' | 'EscalationOfPrivilege' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'DestinationBufferOverflow' | 'SendFailed' | 'CannotReachDestination' | 'MultiLocationFull' | 'FailedToDecode' | 'BadOrigin' | 'ExceedsMaxMessageSize' | 'FailedToTransactAsset' | 'WeightLimitReached' | 'Wildcard' | 'TooMuchWeightRequired' | 'NotHoldingFees' | 'WeightNotComputable' | 'Barrier' | 'NotWithdrawable' | 'LocationCannotHold' | 'TooExpensive' | 'AssetNotFound' | 'RecursionLimitReached'; +} + +/** @name XcmErrorV1 */ +export interface XcmErrorV1 extends Enum { + readonly isUndefined: boolean; + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isUnhandledXcmMessage: boolean; + readonly isUnhandledEffect: boolean; + readonly isEscalationOfPrivilege: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isDestinationBufferOverflow: boolean; + readonly isSendFailed: boolean; + readonly isCannotReachDestination: boolean; + readonly asCannotReachDestination: ITuple<[MultiLocationV1, XcmV1]>; + readonly isMultiLocationFull: boolean; + readonly isFailedToDecode: boolean; + readonly isBadOrigin: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: Weight; + readonly isWildcard: boolean; + readonly isTooMuchWeightRequired: boolean; + readonly isNotHoldingFees: boolean; + readonly isWeightNotComputable: boolean; + readonly isBarrier: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isTooExpensive: boolean; + readonly isAssetNotFound: boolean; + readonly isDestinationUnsupported: boolean; + readonly isRecursionLimitReached: boolean; + readonly type: 'Undefined' | 'Overflow' | 'Unimplemented' | 'UnhandledXcmVersion' | 'UnhandledXcmMessage' | 'UnhandledEffect' | 'EscalationOfPrivilege' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'DestinationBufferOverflow' | 'SendFailed' | 'CannotReachDestination' | 'MultiLocationFull' | 'FailedToDecode' | 'BadOrigin' | 'ExceedsMaxMessageSize' | 'FailedToTransactAsset' | 'WeightLimitReached' | 'Wildcard' | 'TooMuchWeightRequired' | 'NotHoldingFees' | 'WeightNotComputable' | 'Barrier' | 'NotWithdrawable' | 'LocationCannotHold' | 'TooExpensive' | 'AssetNotFound' | 'DestinationUnsupported' | 'RecursionLimitReached'; +} + +/** @name XcmErrorV2 */ +export interface XcmErrorV2 extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isMultiLocationFull: boolean; + readonly isMultiLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: Weight; + readonly isBarrier: boolean; + readonly isWeightNotComputable: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'MultiLocationFull' | 'MultiLocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'WeightNotComputable'; +} + +/** @name XcmErrorV3 */ +export interface XcmErrorV3 extends Enum { + readonly isOverflow: boolean; + readonly isUnimplemented: boolean; + readonly isUntrustedReserveLocation: boolean; + readonly isUntrustedTeleportLocation: boolean; + readonly isLocationFull: boolean; + readonly isLocationNotInvertible: boolean; + readonly isBadOrigin: boolean; + readonly isInvalidLocation: boolean; + readonly isAssetNotFound: boolean; + readonly isFailedToTransactAsset: boolean; + readonly isNotWithdrawable: boolean; + readonly isLocationCannotHold: boolean; + readonly isExceedsMaxMessageSize: boolean; + readonly isDestinationUnsupported: boolean; + readonly isTransport: boolean; + readonly isUnroutable: boolean; + readonly isUnknownClaim: boolean; + readonly isFailedToDecode: boolean; + readonly isMaxWeightInvalid: boolean; + readonly isNotHoldingFees: boolean; + readonly isTooExpensive: boolean; + readonly isTrap: boolean; + readonly asTrap: u64; + readonly isExpectationFalse: boolean; + readonly isPezpalletNotFound: boolean; + readonly isNameMismatch: boolean; + readonly isVersionIncompatible: boolean; + readonly isHoldingWouldOverflow: boolean; + readonly isExportError: boolean; + readonly isReanchorFailed: boolean; + readonly isNoDeal: boolean; + readonly isFeesNotMet: boolean; + readonly isLockError: boolean; + readonly isNoPermission: boolean; + readonly isUnanchored: boolean; + readonly isNotDepositable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isWeightLimitReached: boolean; + readonly asWeightLimitReached: WeightV2; + readonly isBarrier: boolean; + readonly isExceedsStackLimit: boolean; + readonly type: 'Overflow' | 'Unimplemented' | 'UntrustedReserveLocation' | 'UntrustedTeleportLocation' | 'LocationFull' | 'LocationNotInvertible' | 'BadOrigin' | 'InvalidLocation' | 'AssetNotFound' | 'FailedToTransactAsset' | 'NotWithdrawable' | 'LocationCannotHold' | 'ExceedsMaxMessageSize' | 'DestinationUnsupported' | 'Transport' | 'Unroutable' | 'UnknownClaim' | 'FailedToDecode' | 'MaxWeightInvalid' | 'NotHoldingFees' | 'TooExpensive' | 'Trap' | 'ExpectationFalse' | 'PezpalletNotFound' | 'NameMismatch' | 'VersionIncompatible' | 'HoldingWouldOverflow' | 'ExportError' | 'ReanchorFailed' | 'NoDeal' | 'FeesNotMet' | 'LockError' | 'NoPermission' | 'Unanchored' | 'NotDepositable' | 'UnhandledXcmVersion' | 'WeightLimitReached' | 'Barrier' | 'ExceedsStackLimit'; +} + +/** @name XcmErrorV4 */ +export interface XcmErrorV4 extends XcmErrorV3 {} + +/** @name XcmErrorV5 */ +export interface XcmErrorV5 extends XcmErrorV3 {} + +/** @name XcmOrderV0 */ +export interface XcmOrderV0 extends Enum { + readonly isNull: boolean; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: Vec; + readonly dest: MultiLocationV0; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: Vec; + readonly dest: MultiLocationV0; + readonly effects: Vec; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: Vec; + readonly receive: Vec; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: Vec; + readonly reserve: MultiLocationV0; + readonly effects: Vec; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: Vec; + readonly dest: MultiLocationV0; + readonly effects: Vec; + } & Struct; + readonly isQueryHolding: boolean; + readonly asQueryHolding: { + readonly queryId: Compact; + readonly dest: MultiLocationV0; + readonly assets: Vec; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV0; + readonly weight: u64; + readonly debt: u64; + readonly haltOnError: bool; + readonly xcm: Vec; + } & Struct; + readonly type: 'Null' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution'; +} + +/** @name XcmOrderV1 */ +export interface XcmOrderV1 extends Enum { + readonly isNoop: boolean; + readonly isDepositAsset: boolean; + readonly asDepositAsset: { + readonly assets: MultiAssetFilterV1; + readonly maxAssets: u32; + readonly beneficiary: MultiLocationV1; + } & Struct; + readonly isDepositReserveAsset: boolean; + readonly asDepositReserveAsset: { + readonly assets: MultiAssetFilterV1; + readonly maxAssets: u32; + readonly dest: MultiLocationV1; + readonly effects: Vec; + } & Struct; + readonly isExchangeAsset: boolean; + readonly asExchangeAsset: { + readonly give: MultiAssetFilterV1; + readonly receive: MultiAssetsV1; + } & Struct; + readonly isInitiateReserveWithdraw: boolean; + readonly asInitiateReserveWithdraw: { + readonly assets: MultiAssetFilterV1; + readonly reserve: MultiLocationV1; + readonly effects: Vec; + } & Struct; + readonly isInitiateTeleport: boolean; + readonly asInitiateTeleport: { + readonly assets: MultiAssetFilterV1; + readonly dest: MultiLocationV1; + readonly effects: Vec; + } & Struct; + readonly isQueryHolding: boolean; + readonly asQueryHolding: { + readonly queryId: Compact; + readonly dest: MultiLocationV1; + readonly assets: MultiAssetFilterV1; + } & Struct; + readonly isBuyExecution: boolean; + readonly asBuyExecution: { + readonly fees: MultiAssetV1; + readonly weight: u64; + readonly debt: u64; + readonly haltOnError: bool; + readonly instructions: Vec; + } & Struct; + readonly type: 'Noop' | 'DepositAsset' | 'DepositReserveAsset' | 'ExchangeAsset' | 'InitiateReserveWithdraw' | 'InitiateTeleport' | 'QueryHolding' | 'BuyExecution'; +} + +/** @name XcmOrigin */ +export interface XcmOrigin extends Enum { + readonly isXcm: boolean; + readonly asXcm: MultiLocation; + readonly type: 'Xcm'; +} + +/** @name XcmOriginKind */ +export interface XcmOriginKind extends Enum { + readonly isNative: boolean; + readonly isSovereignAccount: boolean; + readonly isSuperuser: boolean; + readonly isXcm: boolean; + readonly type: 'Native' | 'SovereignAccount' | 'Superuser' | 'Xcm'; +} + +/** @name XcmpMessageFormat */ +export interface XcmpMessageFormat extends Enum { + readonly isConcatenatedVersionedXcm: boolean; + readonly isConcatenatedEncodedBlob: boolean; + readonly isSignals: boolean; + readonly type: 'ConcatenatedVersionedXcm' | 'ConcatenatedEncodedBlob' | 'Signals'; +} + +/** @name XcmV0 */ +export interface XcmV0 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: { + readonly assets: Vec; + readonly effects: Vec; + } & Struct; + readonly isReserveAssetDeposit: boolean; + readonly asReserveAssetDeposit: { + readonly assets: Vec; + readonly effects: Vec; + } & Struct; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: { + readonly assets: Vec; + readonly effects: Vec; + } & Struct; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV0; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: Vec; + readonly dest: MultiLocationV0; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: Vec; + readonly dest: MultiLocationV0; + readonly effects: Vec; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originType: XcmOriginKind; + readonly requireWeightAtMost: u64; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isRelayedFrom: boolean; + readonly asRelayedFrom: { + readonly who: MultiLocationV0; + readonly message: XcmV0; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom'; +} + +/** @name XcmV1 */ +export interface XcmV1 extends Enum { + readonly isWithdrawAsset: boolean; + readonly asWithdrawAsset: { + readonly assets: MultiAssetsV1; + readonly effects: Vec; + } & Struct; + readonly isReserveAssetDeposit: boolean; + readonly asReserveAssetDeposit: { + readonly assets: MultiAssetsV1; + readonly effects: Vec; + } & Struct; + readonly isReceiveTeleportedAsset: boolean; + readonly asReceiveTeleportedAsset: { + readonly assets: MultiAssetsV1; + readonly effects: Vec; + } & Struct; + readonly isQueryResponse: boolean; + readonly asQueryResponse: { + readonly queryId: Compact; + readonly response: ResponseV1; + } & Struct; + readonly isTransferAsset: boolean; + readonly asTransferAsset: { + readonly assets: MultiAssetsV1; + readonly dest: MultiLocationV1; + } & Struct; + readonly isTransferReserveAsset: boolean; + readonly asTransferReserveAsset: { + readonly assets: MultiAssetsV1; + readonly dest: MultiLocationV1; + readonly effects: Vec; + } & Struct; + readonly isTransact: boolean; + readonly asTransact: { + readonly originType: XcmOriginKind; + readonly requireWeightAtMost: u64; + readonly call: DoubleEncodedCall; + } & Struct; + readonly isHrmpNewChannelOpenRequest: boolean; + readonly asHrmpNewChannelOpenRequest: { + readonly sender: Compact; + readonly maxMessageSize: Compact; + readonly maxCapacity: Compact; + } & Struct; + readonly isHrmpChannelAccepted: boolean; + readonly asHrmpChannelAccepted: { + readonly recipient: Compact; + } & Struct; + readonly isHrmpChannelClosing: boolean; + readonly asHrmpChannelClosing: { + readonly initiator: Compact; + readonly sender: Compact; + readonly recipient: Compact; + } & Struct; + readonly isRelayedFrom: boolean; + readonly asRelayedFrom: { + readonly who: MultiLocationV1; + readonly message: XcmV1; + } & Struct; + readonly type: 'WithdrawAsset' | 'ReserveAssetDeposit' | 'ReceiveTeleportedAsset' | 'QueryResponse' | 'TransferAsset' | 'TransferReserveAsset' | 'Transact' | 'HrmpNewChannelOpenRequest' | 'HrmpChannelAccepted' | 'HrmpChannelClosing' | 'RelayedFrom'; +} + +/** @name XcmV2 */ +export interface XcmV2 extends Vec {} + +/** @name XcmV3 */ +export interface XcmV3 extends Vec {} + +/** @name XcmV4 */ +export interface XcmV4 extends Vec {} + +/** @name XcmV5 */ +export interface XcmV5 extends Vec {} + +/** @name XcmVersion */ +export interface XcmVersion extends u32 {} + +export type PHANTOM_XCM = 'xcm'; diff --git a/packages/types/src/interfaces/xcm/v0.ts b/packages/types/src/interfaces/xcm/v0.ts new file mode 100644 index 0000000..2ed7253 --- /dev/null +++ b/packages/types/src/interfaces/xcm/v0.ts @@ -0,0 +1,225 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v0: DefinitionsTypes = { + FungibilityV0: 'FungibilityV1', + WildFungibilityV0: 'WildFungibilityV1', + AssetInstanceV0: { + _enum: { + Undefined: 'Null', + Index8: 'u8', + Index16: 'Compact', + Index32: 'Compact', + Index64: 'Compact', + Index128: 'Compact', + Array4: '[u8; 4]', + Array8: '[u8; 8]', + Array16: '[u8; 16]', + Array32: '[u8; 32]', + Blob: 'Vec' + } + }, + JunctionV0: { + _enum: { + Parent: 'Null', + Teyrchain: 'Compact', + AccountId32: { + network: 'NetworkId', + id: 'AccountId' + }, + AccountIndex64: { + network: 'NetworkId', + index: 'Compact' + }, + AccountKey20: { + network: 'NetworkId', + key: '[u8; 20]' + }, + PezpalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: 'Vec', + OnlyChild: 'Null', + Plurality: { + id: 'BodyId', + part: 'BodyPart' + } + } + }, + MultiAssetV0: { + _enum: { + None: 'Null', + All: 'Null', + AllFungible: 'Null', + AllNonFungible: 'Null', + AllAbstractFungible: 'Vec', + AllAbstractNonFungible: 'Vec', + AllConcreteFungible: 'MultiLocationV0', + AllConcreteNonFungible: 'MultiLocationV0', + AbstractFungible: { + id: 'Vec', + instance: 'Compact' + }, + AbstractNonFungible: { + class: 'Vec', + instance: 'AssetInstanceV0' + }, + ConcreteFungible: { + id: 'MultiLocationV0', + amount: 'Compact' + }, + ConcreteNonFungible: { + class: 'MultiLocationV0', + instance: 'AssetInstanceV0' + } + } + }, + MultiLocationV0: { + _enum: { + Here: 'Null', + X1: 'JunctionV0', + X2: '(JunctionV0, JunctionV0)', + X3: '(JunctionV0, JunctionV0, JunctionV0)', + X4: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0)', + X5: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)', + X6: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)', + X7: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)', + X8: '(JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0, JunctionV0)' + } + }, + OriginKindV0: { + _enum: ['Native', 'SovereignAccount', 'Superuser', 'Xcm'] + }, + ResponseV0: { + _enum: { + Assets: 'Vec' + } + }, + XcmV0: { + _enum: { + WithdrawAsset: { + assets: 'Vec', + effects: 'Vec' + }, + ReserveAssetDeposit: { + assets: 'Vec', + effects: 'Vec' + }, + ReceiveTeleportedAsset: { + assets: 'Vec', + effects: 'Vec' + }, + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV0' + }, + TransferAsset: { + assets: 'Vec', + dest: 'MultiLocationV0' + }, + TransferReserveAsset: { + assets: 'Vec', + dest: 'MultiLocationV0', + effects: 'Vec' + }, + Transact: { + originType: 'XcmOriginKind', + requireWeightAtMost: 'u64', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + RelayedFrom: { + who: 'MultiLocationV0', + message: 'XcmV0' + } + } + }, + XcmErrorV0: { + _enum: { + Undefined: 'Null', + Overflow: 'Null', + Unimplemented: 'Null', + UnhandledXcmVersion: 'Null', + UnhandledXcmMessage: 'Null', + UnhandledEffect: 'Null', + EscalationOfPrivilege: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + DestinationBufferOverflow: 'Null', + SendFailed: 'Null', + CannotReachDestination: '(MultiLocation, Xcm)', + MultiLocationFull: 'Null', + FailedToDecode: 'Null', + BadOrigin: 'Null', + ExceedsMaxMessageSize: 'Null', + FailedToTransactAsset: 'Null', + WeightLimitReached: 'Weight', + Wildcard: 'Null', + TooMuchWeightRequired: 'Null', + NotHoldingFees: 'Null', + WeightNotComputable: 'Null', + Barrier: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + TooExpensive: 'Null', + AssetNotFound: 'Null', + RecursionLimitReached: 'Null' + } + }, + XcmOrderV0: { + _enum: { + Null: 'Null', + DepositAsset: { + assets: 'Vec', + dest: 'MultiLocationV0' + }, + DepositReserveAsset: { + assets: 'Vec', + dest: 'MultiLocationV0', + effects: 'Vec' + }, + ExchangeAsset: { + give: 'Vec', + receive: 'Vec' + }, + InitiateReserveWithdraw: { + assets: 'Vec', + reserve: 'MultiLocationV0', + effects: 'Vec' + }, + InitiateTeleport: { + assets: 'Vec', + dest: 'MultiLocationV0', + effects: 'Vec' + }, + QueryHolding: { + queryId: 'Compact', + dest: 'MultiLocationV0', + assets: 'Vec' + }, + BuyExecution: { + fees: 'MultiAssetV0', + weight: 'u64', + debt: 'u64', + haltOnError: 'bool', + xcm: 'Vec' + } + } + } +}; diff --git a/packages/types/src/interfaces/xcm/v1.ts b/packages/types/src/interfaces/xcm/v1.ts new file mode 100644 index 0000000..1afa8f1 --- /dev/null +++ b/packages/types/src/interfaces/xcm/v1.ts @@ -0,0 +1,224 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v1: DefinitionsTypes = { + AssetInstanceV1: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8; 4]', + Array8: '[u8; 8]', + Array16: '[u8; 16]', + Array32: '[u8; 32]', + Blob: 'Bytes' + } + }, + FungibilityV1: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV1' + } + }, + JunctionV1: { + _enum: { + Teyrchain: 'Compact', + AccountId32: { + network: 'NetworkId', + id: 'AccountId' + }, + AccountIndex64: { + network: 'NetworkId', + index: 'Compact' + }, + AccountKey20: { + network: 'NetworkId', + key: '[u8; 20]' + }, + PezpalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: 'Vec', + OnlyChild: 'Null', + Plurality: { + id: 'BodyId', + part: 'BodyPart' + } + } + }, + JunctionsV1: { + _enum: { + Here: 'Null', + X1: 'JunctionV1', + X2: '(JunctionV1, JunctionV1)', + X3: '(JunctionV1, JunctionV1, JunctionV1)', + X4: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1)', + X5: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)', + X6: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)', + X7: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)', + X8: '(JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1, JunctionV1)' + } + }, + MultiAssetsV1: 'Vec', + MultiAssetV1: { + id: 'XcmAssetId', + fungibility: 'FungibilityV1' + }, + MultiAssetFilterV1: { + _enum: { + Definite: 'MultiAssetsV1', + Wild: 'WildMultiAssetV1' + } + }, + MultiLocationV1: { + parents: 'u8', + interior: 'JunctionsV1' + }, + OriginKindV1: 'OriginKindV0', + ResponseV1: { + _enum: { + Assets: 'MultiAssetsV1' + } + }, + WildFungibilityV1: { + _enum: ['Fungible', 'NonFungible'] + }, + WildMultiAssetV1: { + _enum: { + All: 'Null', + AllOf: { + id: 'XcmAssetId', + fungibility: 'WildFungibilityV1' + } + } + }, + XcmV1: { + _enum: { + WithdrawAsset: { + assets: 'MultiAssetsV1', + effects: 'Vec' + }, + ReserveAssetDeposit: { + assets: 'MultiAssetsV1', + effects: 'Vec' + }, + ReceiveTeleportedAsset: { + assets: 'MultiAssetsV1', + effects: 'Vec' + }, + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV1' + }, + TransferAsset: { + assets: 'MultiAssetsV1', + dest: 'MultiLocationV1' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV1', + dest: 'MultiLocationV1', + effects: 'Vec' + }, + Transact: { + originType: 'XcmOriginKind', + requireWeightAtMost: 'u64', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + RelayedFrom: { + who: 'MultiLocationV1', + message: 'XcmV1' + } + } + }, + XcmErrorV1: { + _enum: { + Undefined: 'Null', + Overflow: 'Null', + Unimplemented: 'Null', + UnhandledXcmVersion: 'Null', + UnhandledXcmMessage: 'Null', + UnhandledEffect: 'Null', + EscalationOfPrivilege: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + DestinationBufferOverflow: 'Null', + SendFailed: 'Null', + CannotReachDestination: '(MultiLocationV1, XcmV1)', + MultiLocationFull: 'Null', + FailedToDecode: 'Null', + BadOrigin: 'Null', + ExceedsMaxMessageSize: 'Null', + FailedToTransactAsset: 'Null', + WeightLimitReached: 'Weight', + Wildcard: 'Null', + TooMuchWeightRequired: 'Null', + NotHoldingFees: 'Null', + WeightNotComputable: 'Null', + Barrier: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + TooExpensive: 'Null', + AssetNotFound: 'Null', + DestinationUnsupported: 'Null', + RecursionLimitReached: 'Null' + } + }, + XcmOrderV1: { + _enum: { + Noop: 'Null', + DepositAsset: { + assets: 'MultiAssetFilterV1', + maxAssets: 'u32', + beneficiary: 'MultiLocationV1' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV1', + maxAssets: 'u32', + dest: 'MultiLocationV1', + effects: 'Vec' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV1', + receive: 'MultiAssetsV1' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV1', + reserve: 'MultiLocationV1', + effects: 'Vec' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV1', + dest: 'MultiLocationV1', + effects: 'Vec' + }, + QueryHolding: { + queryId: 'Compact', + dest: 'MultiLocationV1', + assets: 'MultiAssetFilterV1' + }, + BuyExecution: { + fees: 'MultiAssetV1', + weight: 'u64', + debt: 'u64', + haltOnError: 'bool', + instructions: 'Vec' + } + } + } +}; diff --git a/packages/types/src/interfaces/xcm/v2.ts b/packages/types/src/interfaces/xcm/v2.ts new file mode 100644 index 0000000..33ad28f --- /dev/null +++ b/packages/types/src/interfaces/xcm/v2.ts @@ -0,0 +1,294 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v2: DefinitionsTypes = { + AssetIdV2: { + _enum: { + Concrete: 'MultiLocationV2', + Abstract: 'Bytes' + } + }, + AssetInstanceV2: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]', + Blob: 'Bytes' + } + }, + BodyIdV2: { + _enum: { + Unit: 'Null', + Named: 'Bytes', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null', + Defense: 'Null', + Administration: 'Null', + Treasury: 'Null' + } + }, + BodyPartV2: { + _enum: { + Voice: 'Null', + Members: { + count: 'Compact' + }, + Fraction: { + nom: 'Compact', + denom: 'Compact' + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact' + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + NetworkIdV2: { + _enum: { + Any: 'Null', + Named: 'Bytes', + Pezkuwi: 'Null', + Dicle: 'Null', + Zagros: 'Null' + } + }, + JunctionV2: { + _enum: { + Teyrchain: 'Compact', + AccountId32: { + network: 'NetworkIdV2', + id: '[u8; 32]' + }, + AccountIndex64: { + network: 'NetworkIdV2', + index: 'Compact' + }, + AccountKey20: { + network: 'NetworkIdV2', + key: '[u8; 20]' + }, + PezpalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: 'Bytes', + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV2', + part: 'BodyPartV2' + } + } + }, + JunctionsV2: { + _enum: { + Here: 'Null', + X1: 'JunctionV2', + X2: '(JunctionV2, JunctionV2)', + X3: '(JunctionV2, JunctionV2, JunctionV2)', + X4: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X5: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X6: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X7: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)', + X8: '(JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2, JunctionV2)' + } + }, + FungibilityV2: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV2' + } + }, + InteriorMultiLocationV2: 'JunctionsV2', + MultiAssetV2: { + id: 'AssetIdV2', + fun: 'FungibilityV2' + }, + MultiAssetsV2: 'Vec', + MultiAssetFilterV2: { + _enum: { + Definite: 'MultiAssetsV2', + Wild: 'WildMultiAssetV2' + } + }, + MultiLocationV2: { + parents: 'u8', + interior: 'JunctionsV2' + }, + OriginKindV2: { + _enum: { + Native: 'Null', + SovereignAccount: 'Null', + Superuser: 'Null', + Xcm: 'Null' + } + }, + WildFungibilityV2: { + _enum: { + Fungible: 'Null', + NonFungible: 'Null' + } + }, + ResponseV2: { + _enum: { + Null: 'Null', + Assets: 'MultiAssetsV2', + ExecutionResult: 'Option<(u32, XcmErrorV2)>', + Version: 'u32' + } + }, + ResponseV2Error: '(u32, XcmErrorV2)', + WeightLimitV2: { + _enum: { + Unlimited: 'Null', + Limited: 'Compact' + } + }, + InstructionV2: { + _enum: { + WithdrawAsset: 'MultiAssetsV2', + ReserveAssetDeposited: 'MultiAssetsV2', + ReceiveTeleportedAsset: 'MultiAssetsV2', + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV2', + maxWeight: 'Compact' + }, + TransferAsset: { + assets: 'MultiAssetsV2', + beneficiary: 'MultiLocationV2' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV2', + dest: 'MultiLocationV2', + xcm: 'XcmV2' + }, + Transact: { + originType: 'XcmOriginKind', + requireWeightAtMost: 'Compact', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + ClearOrigin: 'Null', + DescendOrigin: 'InteriorMultiLocationV2', + ReportError: { + queryId: 'Compact', + dest: 'MultiLocationV2', + maxResponseWeight: 'Compact' + }, + DepositAsset: { + assets: 'MultiAssetFilterV2', + maxAssets: 'Compact', + beneficiary: 'MultiLocationV2' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV2', + maxAssets: 'Compact', + dest: 'MultiLocationV2', + xcm: 'XcmV2' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV2', + receive: 'MultiAssetsV2' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV2', + reserve: 'MultiLocationV2', + xcm: 'XcmV2' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV2', + dest: 'MultiLocationV2', + xcm: 'XcmV2' + }, + QueryHolding: { + queryId: 'Compact', + dest: 'MultiLocationV2', + assets: 'MultiAssetFilterV2', + maxResponseWeight: 'Compact' + }, + BuyExecution: { + fees: 'MultiAssetV2', + weightLimit: 'WeightLimitV2' + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV2', + SetAppendix: 'XcmV2', + ClearError: 'Null', + ClaimAsset: { + assets: 'MultiAssetsV2', + ticket: 'MultiLocationV2' + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'Compact' + }, + UnsubscribeVersion: 'Null' + } + }, + WildMultiAssetV2: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV2', + fun: 'WildFungibilityV2' + } + } + }, + XcmV2: 'Vec', + XcmErrorV2: { + _enum: { + Overflow: 'Null', + Unimplemented: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + MultiLocationFull: 'Null', + MultiLocationNotInvertible: 'Null', + BadOrigin: 'Null', + InvalidLocation: 'Null', + AssetNotFound: 'Null', + FailedToTransactAsset: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + ExceedsMaxMessageSize: 'Null', + DestinationUnsupported: 'Null', + Transport: 'Null', + Unroutable: 'Null', + UnknownClaim: 'Null', + FailedToDecode: 'Null', + MaxWeightInvalid: 'Null', + NotHoldingFees: 'Null', + TooExpensive: 'Null', + Trap: 'u64', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'Weight', + Barrier: 'Null', + WeightNotComputable: 'Null' + } + } +}; diff --git a/packages/types/src/interfaces/xcm/v3.ts b/packages/types/src/interfaces/xcm/v3.ts new file mode 100644 index 0000000..377383d --- /dev/null +++ b/packages/types/src/interfaces/xcm/v3.ts @@ -0,0 +1,386 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v3: DefinitionsTypes = { + AssetIdV3: { + _enum: { + Concrete: 'MultiLocationV3', + Abstract: 'Bytes' + } + }, + BodyIdV3: { + _enum: { + Unit: 'Null', + Moniker: '[u8;4]', + Index: 'Compact', + Executive: 'Null', + Technical: 'Null', + Legislative: 'Null', + Judicial: 'Null', + Defense: 'Null', + Administration: 'Null', + Treasury: 'Null' + } + }, + BodyPartV3: { + _enum: { + Voice: 'Null', + Members: { + count: 'Compact' + }, + Fraction: { + nom: 'Compact', + denom: 'Compact' + }, + AtLeastProportion: { + nom: 'Compact', + denom: 'Compact' + }, + MoreThanProportion: { + nom: 'Compact', + denom: 'Compact' + } + } + }, + AssetInstanceV3: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + FungibilityV3: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV3' + } + }, + InteriorMultiLocationV3: 'JunctionsV3', + JunctionV3: { + _enum: { + Teyrchain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]' + }, + AccountIndex64: { + network: 'Option', + index: 'Compact' + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]' + }, + PezpalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]' + }, + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV3', + part: 'BodyPartV3' + }, + GlobalConsensus: 'NetworkIdV3' + } + }, + JunctionsV3: { + _enum: { + Here: 'Null', + X1: 'JunctionV3', + X2: '(JunctionV3, JunctionV3)', + X3: '(JunctionV3, JunctionV3, JunctionV3)', + X4: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X5: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X6: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X7: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)', + X8: '(JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3, JunctionV3)' + } + }, + MaybeErrorCodeV3: { + _enum: { + Success: 'Null', + Error: 'Bytes', + TruncatedError: 'Bytes' + } + }, + MaxPezpalletsInfo: 'u32', + MultiAssetV3: { + id: 'AssetIdV3', + fun: 'FungibilityV3' + }, + MultiAssetsV3: 'Vec', + MultiAssetFilterV3: { + _enum: { + Definite: 'MultiAssetsV3', + Wild: 'WildMultiAssetV3' + } + }, + MultiLocationV3: { + parents: 'u8', + interior: 'JunctionsV3' + }, + MaxPezpalletNameLen: 'u32', + NetworkIdV3: { + _enum: { + ByGenesis: '[u8;32]', + ByFork: { + blockNumber: 'u64', + blockHash: '[u8;32]' + }, + Pezkuwi: 'Null', + Dicle: 'Null', + Zagros: 'Null', + Pezkuwichain: 'Null', + Wococo: 'Null', + Ethereum: { + chainId: 'Compact' + }, + BitcoinCore: 'Null', + BitcoinCash: 'Null', + PezkuwiBulletin: 'Null' + } + + }, + OriginKindV3: 'OriginKindV2', + PezpalletInfoV3: { + index: 'Compact', + name: 'Bytes', + moduleName: 'Bytes', + major: 'Compact', + minor: 'Compact', + patch: 'Compact' + }, + WildFungibilityV3: 'WildFungibilityV2', + QueryResponseInfoV3: { + destination: 'MultiLocationV3', + queryId: 'Compact', + maxWeight: 'WeightV2' + }, + ResponseV3: { + _enum: { + Null: 'Null', + Assets: 'MultiAssetsV3', + ExecutionResult: 'Option<(u32,XcmErrorV3)>', + Version: 'u32', + PezpalletsInfo: 'Vec', + DispatchResult: 'MaybeErrorCodeV3' + } + }, + XcmErrorV3: { + _enum: { + Overflow: 'Null', + Unimplemented: 'Null', + UntrustedReserveLocation: 'Null', + UntrustedTeleportLocation: 'Null', + LocationFull: 'Null', + LocationNotInvertible: 'Null', + BadOrigin: 'Null', + InvalidLocation: 'Null', + AssetNotFound: 'Null', + FailedToTransactAsset: 'Null', + NotWithdrawable: 'Null', + LocationCannotHold: 'Null', + ExceedsMaxMessageSize: 'Null', + DestinationUnsupported: 'Null', + Transport: 'Null', + Unroutable: 'Null', + UnknownClaim: 'Null', + FailedToDecode: 'Null', + MaxWeightInvalid: 'Null', + NotHoldingFees: 'Null', + TooExpensive: 'Null', + Trap: 'u64', + ExpectationFalse: 'Null', + PezpalletNotFound: 'Null', + NameMismatch: 'Null', + VersionIncompatible: 'Null', + HoldingWouldOverflow: 'Null', + ExportError: 'Null', + ReanchorFailed: 'Null', + NoDeal: 'Null', + FeesNotMet: 'Null', + LockError: 'Null', + NoPermission: 'Null', + Unanchored: 'Null', + NotDepositable: 'Null', + UnhandledXcmVersion: 'Null', + WeightLimitReached: 'WeightV2', + Barrier: 'Null', + ExceedsStackLimit: 'Null' + } + }, + ResponseV3Error: '(u32, XcmErrorV3)', + ResponseV3Result: 'Option<(u32, ResponseV3Error)>', + WeightLimitV3: { + _enum: { + Unlimited: 'Null', + Limited: 'WeightV2' + } + }, + InstructionV3: { + _enum: { + WithdrawAsset: 'MultiAssetsV3', + ReserveAssetDeposited: 'MultiAssetsV3', + ReceiveTeleportedAsset: 'MultiAssetsV3', + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV3', + maxWeight: 'WeightV2', + querier: 'Option' + }, + TransferAsset: { + assets: 'MultiAssetsV3', + beneficiary: 'MultiLocationV3' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV3', + dest: 'MultiLocationV3', + xcm: 'XcmV3' + }, + Transact: { + originKind: 'XcmOriginKind', + requireWeightAtMost: 'WeightV2', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + ClearOrigin: 'Null', + DescendOrigin: 'JunctionsV3', + ReportError: 'QueryResponseInfoV3', + DepositAsset: { + assets: 'MultiAssetFilterV3', + beneficiary: 'MultiLocationV3' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV3', + dest: 'MultiLocationV3', + xcm: 'XcmV3' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV3', + want: 'MultiAssetsV3', + maximal: 'bool' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV3', + reserve: 'MultiLocationV3', + xcm: 'XcmV3' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV3', + dest: 'MultiLocationV3', + xcm: 'XcmV3' + }, + ReportHolding: { + responseInfo: 'QueryResponseInfoV3', + assets: 'MultiAssetFilterV3' + }, + BuyExecution: { + fees: 'MultiAssetV3', + weightLimit: 'WeightLimitV3' + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV3', + SetAppendix: 'XcmV3', + ClearError: 'Null', + ClaimAsset: { + assets: 'MultiAssetsV3', + ticket: 'MultiLocationV3' + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'WeightV2' + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'MultiAssetsV3', + ExpectAsset: 'MultiAssetsV3', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32, XcmErrorV3)>', + ExpectTransactStatus: 'MaybeErrorCodeV3', + QueryPezpallet: { + moduleName: 'Vec', + responseInfo: 'QueryResponseInfoV3' + }, + ExpectPezpallet: { + index: 'Compact', + name: 'Vec', + moduleName: 'Vec', + crateMajor: 'Compact', + minCrateMinor: 'Compact' + }, + ReportTransactStatus: 'QueryResponseInfoV3', + ClearTransactStatus: 'Null', + UniversalOrigin: 'JunctionV3', + ExportMessage: { + network: 'NetworkIdV3', + destination: 'JunctionsV3', + xcm: 'XcmV3' + }, + LockAsset: { + asset: 'MultiAssetV3', + unlocker: 'MultiLocationV3' + }, + UnlockAsset: { + asset: 'MultiAssetV3', + target: 'MultiLocationV3' + }, + NoteUnlockable: { + asset: 'MultiAssetV3', + owner: 'MultiLocationV3' + }, + RequestUnlock: { + asset: 'MultiAssetV3', + locker: 'MultiLocationV3' + }, + SetFeesMode: { + jitWithdraw: 'bool' + }, + SetTopic: '[u8; 32]', + ClearTopic: 'Null', + AliasOrigin: 'MultiLocationV3', + UnpaidExecution: { + weightLimit: 'WeightLimitV3', + checkOrigin: 'Option' + } + } + }, + WildMultiAssetV3: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV3', + fun: 'WildFungibilityV2' + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'AssetIdV3', + fun: 'WildFungibilityV2', + count: 'Compact' + } + } + }, + VersionV3: 'u32', + XcmV3: 'Vec' +}; diff --git a/packages/types/src/interfaces/xcm/v4.ts b/packages/types/src/interfaces/xcm/v4.ts new file mode 100644 index 0000000..9bcc754 --- /dev/null +++ b/packages/types/src/interfaces/xcm/v4.ts @@ -0,0 +1,281 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v4: DefinitionsTypes = { + AssetIdV4: 'MultiLocationV4', + AssetInstanceV4: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + FungibilityV4: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV4' + } + }, + UncheckedFungibilityV4: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV4' + } + }, + JunctionV4: { + _enum: { + Teyrchain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]' + }, + AccountIndex64: { + network: 'Option', + index: 'Compact' + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]' + }, + PezpalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]' + }, + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV3', + part: 'BodyPartV3' + }, + GlobalConsensus: 'NetworkIdV4' + } + }, + JunctionsV4: { + _enum: { + Here: 'Null', + X1: '[JunctionV4;1]', + X2: '[JunctionV4;2]', + X3: '[JunctionV4;3]', + X4: '[JunctionV4;4]', + X5: '[JunctionV4;5]', + X6: '[JunctionV4;6]', + X7: '[JunctionV4;7]', + X8: '[JunctionV4;8]' + } + }, + MaxPezpalletsInfo: 'u32', + NetworkIdV4: 'NetworkIdV3', + MultiAssetV4: { + id: 'AssetIdV4', + fun: 'FungibilityV4' + }, + MultiAssetsV4: 'Vec', + MultiAssetFilterV4: { + _enum: { + Definite: 'MultiAssetsV4', + Wild: 'WildMultiAssetV4' + } + }, + MultiLocationV4: { + parents: 'u8', + interior: 'JunctionsV4' + }, + OriginKindV4: 'XcmOriginKind', + PezpalletInfoV4: 'PezpalletInfoV3', + WildFungibilityV4: 'WildFungibilityV2', + QueryResponseInfoV4: { + destination: 'MultiLocationV4', + queryId: 'Compact', + maxWeight: 'WeightV2' + }, + ResponseV4: { + _enum: { + Null: 'Null', + Assets: 'MultiAssetsV4', + ExecutionResult: 'Option<(u32, XcmErrorV3)>', + Version: 'u32', + PezpalletsInfo: 'Vec', + DispatchResult: 'MaybeErrorCodeV3' + } + }, + InstructionV4: { + _enum: { + WithdrawAsset: 'MultiAssetsV4', + ReserveAssetDeposited: 'MultiAssetsV4', + ReceiveTeleportedAsset: 'MultiAssetsV4', + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV4', + maxWeight: 'WeightV2', + querier: 'Option' + }, + TransferAsset: { + assets: 'MultiAssetsV4', + beneficiary: 'MultiLocationV4' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV4', + dest: 'MultiLocationV4', + xcm: 'XcmV4' + }, + Transact: { + originKind: 'OriginKindV4', + requireWeightAtMost: 'WeightV2', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + ClearOrigin: 'Null', + DescendOrigin: 'JunctionsV4', + ReportError: 'QueryResponseInfoV4', + DepositAsset: { + assets: 'MultiAssetFilterV4', + beneficiary: 'MultiLocationV4' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV4', + dest: 'MultiLocationV4', + xcm: 'XcmV4' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV4', + want: 'MultiAssetsV4', + maximal: 'bool' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV4', + reserve: 'MultiLocationV4', + xcm: 'XcmV4' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV4', + dest: 'MultiLocationV4', + xcm: 'XcmV4' + }, + ReportHolding: { + responseInfo: 'QueryResponseInfoV4', + assets: 'MultiAssetFilterV4' + }, + BuyExecution: { + fees: 'MultiAssetV4', + weightLimit: 'WeightLimitV3' + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV4', + SetAppendix: 'XcmV4', + ClearError: 'Null', + ClaimAsset: { + assets: 'MultiAssetsV4', + ticket: 'MultiLocationV4' + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'WeightV2' + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'MultiAssetsV4', + ExpectAsset: 'MultiAssetsV4', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32, XcmErrorV3)>', + ExpectTransactStatus: 'MaybeErrorCodeV3', + QueryPezpallet: { + moduleName: 'Vec', + responseInfo: 'QueryResponseInfoV4' + }, + ExpectPezpallet: { + index: 'Compact', + name: 'Vec', + moduleName: 'Vec', + crateMajor: 'Compact', + minCrateMinor: 'Compact' + }, + ReportTransactStatus: 'QueryResponseInfoV4', + ClearTransactStatus: 'Null', + UniversalOrigin: 'JunctionV4', + ExportMessage: { + network: 'NetworkIdV4', + destination: 'JunctionsV4', + xcm: 'XcmV4' + }, + LockAsset: { + asset: 'MultiAssetV4', + unlocker: 'MultiLocationV4' + }, + UnlockAsset: { + asset: 'MultiAssetV4', + target: 'MultiLocationV4' + }, + NoteUnlockable: { + asset: 'MultiAssetV4', + owner: 'MultiLocationV4' + }, + RequestUnlock: { + asset: 'MultiAssetV4', + locker: 'MultiLocationV4' + }, + SetFeesMode: { + jitWithdraw: 'bool' + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'MultiLocationV4', + UnpaidExecution: { + weightLimit: 'WeightLimitV3', + checkOrigin: 'Option' + } + } + }, + OutcomeV4: { + _enum: { + Complete: { + used: 'WeightV2' + }, + Incomplete: { + used: 'WeightV2', + error: 'XcmErrorV3' + }, + Error: { + error: 'XcmErrorV3' + } + } + }, + WildMultiAssetV4: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV4', + fun: 'WildFungibilityV4' + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'AssetIdV4', + fun: 'WildFungibilityV4', + count: 'Compact' + } + } + }, + VersionV4: 'u32', + XcmV4: 'Vec', + XcmErrorV4: 'XcmErrorV3' +}; diff --git a/packages/types/src/interfaces/xcm/v5.ts b/packages/types/src/interfaces/xcm/v5.ts new file mode 100644 index 0000000..7653b19 --- /dev/null +++ b/packages/types/src/interfaces/xcm/v5.ts @@ -0,0 +1,315 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { DefinitionsTypes } from '../../types/index.js'; + +export const v5: DefinitionsTypes = { + AssetIdV5: 'MultiLocationV5', + AssetInstanceV5: { + _enum: { + Undefined: 'Null', + Index: 'Compact', + Array4: '[u8;4]', + Array8: '[u8;8]', + Array16: '[u8;16]', + Array32: '[u8;32]' + } + }, + // Maps to xcmV5::Asset but we keep the prefix 'Multi' + // to keep consistency with the rest of the code base. + MultiAssetV5: { + id: 'AssetIdV5', + fun: 'FungibilityV5' + }, + MultiAssetsV5: 'Vec', + WildMultiAssetV5: { + _enum: { + All: 'Null', + AllOf: { + id: 'AssetIdV5', + fun: 'WildFungibilityV5' + }, + AllCounted: 'Compact', + AllOfCounted: { + id: 'AssetIdV5', + fun: 'WildFungibilityV5', + count: 'Compact' + } + } + }, + MultiAssetFilterV5: { + _enum: { + Definite: 'MultiAssetsV5', + Wild: 'WildMultiAssetV5' + } + }, + MultiAssetTransferFilterV5: { + _enum: { + Teleport: 'MultiAssetFilterV5', + ReserveDeposit: 'MultiAssetFilterV5', + ReserveWithdraw: 'MultiAssetFilterV5' + } + }, + FungibilityV5: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV5' + } + }, + UncheckedFungibilityV5: { + _enum: { + Fungible: 'Compact', + NonFungible: 'AssetInstanceV5' + } + }, + WildFungibilityV5: 'WildFungibilityV2', + JunctionV5: { + _enum: { + Teyrchain: 'Compact', + AccountId32: { + network: 'Option', + id: '[u8;32]' + }, + AccountIndex64: { + network: 'Option', + index: 'Compact' + }, + AccountKey20: { + network: 'Option', + key: '[u8;20]' + }, + PezpalletInstance: 'u8', + GeneralIndex: 'Compact', + GeneralKey: { + length: 'u8', + data: '[u8;32]' + }, + OnlyChild: 'Null', + Plurality: { + id: 'BodyIdV3', + part: 'BodyPartV3' + }, + GlobalConsensus: 'NetworkIdV5' + } + }, + NetworkIdV5: { + _enum: { + ByGenesis: '[u8;32]', + ByFork: { + blockNumber: 'u64', + blockHash: '[u8;32]' + }, + Pezkuwi: 'Null', + Dicle: 'Null', + Zagros: 'Null', + Ethereum: { + chainId: 'Compact' + }, + BitcoinCore: 'Null', + BitcoinCash: 'Null', + PezkuwiBulletin: 'Null' + } + }, + JunctionsV5: { + _enum: { + Here: 'Null', + X1: '[JunctionV5;1]', + X2: '[JunctionV5;2]', + X3: '[JunctionV5;3]', + X4: '[JunctionV5;4]', + X5: '[JunctionV5;5]', + X6: '[JunctionV5;6]', + X7: '[JunctionV5;7]', + X8: '[JunctionV5;8]' + } + }, + MultiLocationV5: { + parents: 'u8', + interior: 'JunctionsV5' + }, + InteriorMultiLocationV5: 'JunctionsV5', + XcmV5: 'Vec', + PezpalletInfoV5: 'PezpalletInfoV3', + ResponseV5: { + _enum: { + Null: 'Null', + Assets: 'MultiAssetsV5', + ExecutionResult: 'Option<(u32, XcmErrorV3)>', + Version: 'u32', + PezpalletsInfo: 'Vec', + DispatchResult: 'MaybeErrorCodeV3' + } + }, + QueryResponseInfoV5: { + destination: 'MultiLocationV5', + queryId: 'Compact', + maxWeight: 'WeightV2' + }, + InstructionV5: { + _enum: { + WithdrawAsset: 'MultiAssetsV5', + ReserveAssetDeposited: 'MultiAssetsV5', + ReceiveTeleportedAsset: 'MultiAssetsV5', + QueryResponse: { + queryId: 'Compact', + response: 'ResponseV5', + maxWeight: 'WeightV2', + querier: 'Option' + }, + TransferAsset: { + assets: 'MultiAssetsV5', + beneficiary: 'MultiLocationV5' + }, + TransferReserveAsset: { + assets: 'MultiAssetsV5', + dest: 'MultiLocationV5', + xcm: 'XcmV5' + }, + Transact: { + originKind: 'OriginKindV4', + requireWeightAtMost: 'WeightV2', + call: 'DoubleEncodedCall' + }, + HrmpNewChannelOpenRequest: { + sender: 'Compact', + maxMessageSize: 'Compact', + maxCapacity: 'Compact' + }, + HrmpChannelAccepted: { + recipient: 'Compact' + }, + HrmpChannelClosing: { + initiator: 'Compact', + sender: 'Compact', + recipient: 'Compact' + }, + ClearOrigin: 'Null', + DescendOrigin: 'InteriorMultiLocationV5', + ReportError: 'QueryResponseInfoV4', + DepositAsset: { + assets: 'MultiAssetFilterV5', + beneficiary: 'MultiLocationV5' + }, + DepositReserveAsset: { + assets: 'MultiAssetFilterV5', + dest: 'MultiLocationV5', + xcm: 'XcmV5' + }, + ExchangeAsset: { + give: 'MultiAssetFilterV5', + want: 'MultiAssetsV5', + maximal: 'bool' + }, + InitiateReserveWithdraw: { + assets: 'MultiAssetFilterV5', + reserve: 'MultiLocationV5', + xcm: 'XcmV5' + }, + InitiateTeleport: { + assets: 'MultiAssetFilterV5', + dest: 'MultiLocationV5', + xcm: 'XcmV5' + }, + ReportHolding: { + responseInfo: 'QueryResponseInfoV4', + assets: 'MultiAssetFilterV5' + }, + BuyExecution: { + fees: 'MultiAssetV4', + weightLimit: 'WeightLimitV3' + }, + RefundSurplus: 'Null', + SetErrorHandler: 'XcmV5', + SetAppendix: 'XcmV5', + ClearError: 'Null', + ClaimAsset: { + assets: 'MultiAssetsV5', + ticket: 'MultiLocationV5' + }, + Trap: 'Compact', + SubscribeVersion: { + queryId: 'Compact', + maxResponseWeight: 'WeightV2' + }, + UnsubscribeVersion: 'Null', + BurnAsset: 'MultiAssetsV5', + ExpectAsset: 'MultiAssetsV5', + ExpectOrigin: 'Option', + ExpectError: 'Option<(u32, XcmErrorV3)>', + ExpectTransactStatus: 'MaybeErrorCodeV3', + QueryPezpallet: { + moduleName: 'Vec', + responseInfo: 'QueryResponseInfoV4' + }, + ExpectPezpallet: { + index: 'Compact', + name: 'Vec', + moduleName: 'Vec', + crateMajor: 'Compact', + minCrateMinor: 'Compact' + }, + ReportTransactStatus: 'QueryResponseInfoV4', + ClearTransactStatus: 'Null', + UniversalOrigin: 'JunctionV5', + ExportMessage: { + network: 'NetworkIdV5', + destination: 'InteriorMultiLocationV5', + xcm: 'XcmV5' + }, + LockAsset: { + asset: 'MultiAssetV5', + unlocker: 'MultiLocationV5' + }, + UnlockAsset: { + asset: 'MultiAssetV5', + target: 'MultiLocationV5' + }, + NoteUnlockable: { + asset: 'MultiAssetV5', + owner: 'MultiLocationV5' + }, + RequestUnlock: { + asset: 'MultiAssetV5', + locker: 'MultiLocationV5' + }, + SetFeesMode: { + jitWithdraw: 'bool' + }, + SetTopic: '[u8;32]', + ClearTopic: 'Null', + AliasOrigin: 'MultiLocationV5', + UnpaidExecution: { + weightLimit: 'WeightLimitV3', + checkOrigin: 'Option' + }, + PayFees: { + asset: 'MultiAssetV5' + }, + InitiateTransfer: { + destination: 'MultiLocationV5', + remoteFees: 'Option', + preserveOrigin: 'bool', + assets: 'Vec', + remoteXcm: 'XcmV5' + }, + ExecuteWithOrigin: { + descendant_origin: 'Option', + xcm: 'XcmV5' + }, + SetHints: { + hints: 'Vec' + } + } + }, + HintV5: { + _enum: { + AssetClaimer: { + location: 'MultiLocationV5' + } + } + }, + XcmErrorV5: 'XcmErrorV3' +}; diff --git a/packages/types/src/interfaces/xcmPaymentApi/definitions.ts b/packages/types/src/interfaces/xcmPaymentApi/definitions.ts new file mode 100644 index 0000000..1b52e1b --- /dev/null +++ b/packages/types/src/interfaces/xcmPaymentApi/definitions.ts @@ -0,0 +1,25 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + XcmPaymentApiError: { + _enum: [ + 'Unimplemented', + 'VersionedConversionFailed', + 'WeightNotComputable', + 'UnhandledXcmVersion', + 'AssetNotFound' + ] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/xcmPaymentApi/index.ts b/packages/types/src/interfaces/xcmPaymentApi/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/xcmPaymentApi/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/xcmPaymentApi/runtime.ts b/packages/types/src/interfaces/xcmPaymentApi/runtime.ts new file mode 100644 index 0000000..238f433 --- /dev/null +++ b/packages/types/src/interfaces/xcmPaymentApi/runtime.ts @@ -0,0 +1,48 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + XcmPaymentApi: [ + { + methods: { + query_acceptable_payment_assets: { + description: 'The API to query acceptable payment assets', + params: [ + { + name: 'version', + type: 'u32' + } + ], + type: 'Result, XcmPaymentApiError>' + }, + query_weight_to_asset_fee: { + description: '', + params: [ + { + name: 'weight', + type: 'WeightV2' + }, + { + name: 'asset', + type: 'XcmVersionedAssetId' + } + ], + type: 'Result' + }, + query_xcm_weight: { + description: '', + params: [ + { + name: 'message', + type: 'XcmVersionedXcm' + } + ], + type: 'Result' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/xcmPaymentApi/types.ts b/packages/types/src/interfaces/xcmPaymentApi/types.ts new file mode 100644 index 0000000..3178de6 --- /dev/null +++ b/packages/types/src/interfaces/xcmPaymentApi/types.ts @@ -0,0 +1,16 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum } from '@pezkuwi/types-codec'; + +/** @name XcmPaymentApiError */ +export interface XcmPaymentApiError extends Enum { + readonly isUnimplemented: boolean; + readonly isVersionedConversionFailed: boolean; + readonly isWeightNotComputable: boolean; + readonly isUnhandledXcmVersion: boolean; + readonly isAssetNotFound: boolean; + readonly type: 'Unimplemented' | 'VersionedConversionFailed' | 'WeightNotComputable' | 'UnhandledXcmVersion' | 'AssetNotFound'; +} + +export type PHANTOM_XCMPAYMENTAPI = 'xcmPaymentApi'; diff --git a/packages/types/src/interfaces/xcmRuntimeApi/definitions.ts b/packages/types/src/interfaces/xcmRuntimeApi/definitions.ts new file mode 100644 index 0000000..5cb6a07 --- /dev/null +++ b/packages/types/src/interfaces/xcmRuntimeApi/definitions.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// order important in structs... :) +/* eslint-disable sort-keys */ + +import type { Definitions } from '../../types/index.js'; + +import { runtime } from './runtime.js'; + +export default { + rpc: {}, + runtime, + types: { + Error: { + _enum: ['Unsupported', 'VersionedConversionFailed'] + } + } +} as Definitions; diff --git a/packages/types/src/interfaces/xcmRuntimeApi/index.ts b/packages/types/src/interfaces/xcmRuntimeApi/index.ts new file mode 100644 index 0000000..7f1de78 --- /dev/null +++ b/packages/types/src/interfaces/xcmRuntimeApi/index.ts @@ -0,0 +1,4 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +export * from './types.js'; diff --git a/packages/types/src/interfaces/xcmRuntimeApi/runtime.ts b/packages/types/src/interfaces/xcmRuntimeApi/runtime.ts new file mode 100644 index 0000000..d7e6d9f --- /dev/null +++ b/packages/types/src/interfaces/xcmRuntimeApi/runtime.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { DefinitionsCall } from '../../types/index.js'; + +export const runtime: DefinitionsCall = { + LocationToAccountApi: [ + { + methods: { + convert_location: { + description: 'Converts `Location` to `AccountId`', + params: [ + { + name: 'location', + type: 'XcmVersionedLocation' + } + ], + type: 'Result' + } + }, + version: 1 + } + ] +}; diff --git a/packages/types/src/interfaces/xcmRuntimeApi/types.ts b/packages/types/src/interfaces/xcmRuntimeApi/types.ts new file mode 100644 index 0000000..cf14a9b --- /dev/null +++ b/packages/types/src/interfaces/xcmRuntimeApi/types.ts @@ -0,0 +1,13 @@ +// Auto-generated via `yarn polkadot-types-from-defs`, do not edit +/* eslint-disable */ + +import type { Enum } from '@pezkuwi/types-codec'; + +/** @name Error */ +export interface Error extends Enum { + readonly isUnsupported: boolean; + readonly isVersionedConversionFailed: boolean; + readonly type: 'Unsupported' | 'VersionedConversionFailed'; +} + +export type PHANTOM_XCMRUNTIMEAPI = 'xcmRuntimeApi'; diff --git a/packages/types/src/lookup.ts b/packages/types/src/lookup.ts new file mode 100644 index 0000000..dd0328b --- /dev/null +++ b/packages/types/src/lookup.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// augmented +export const __TYPES_LOOKUP = 'augmented'; diff --git a/packages/types/src/metadata/MagicNumber.spec.ts b/packages/types/src/metadata/MagicNumber.spec.ts new file mode 100644 index 0000000..797380a --- /dev/null +++ b/packages/types/src/metadata/MagicNumber.spec.ts @@ -0,0 +1,29 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; +import { MAGIC_NUMBER, MagicNumber } from './MagicNumber.js'; + +describe('MagicNumber', (): void => { + const registry = new TypeRegistry(); + + it('succeeds when the magic number matches', (): void => { + expect( + () => new MagicNumber(registry, MAGIC_NUMBER) + ).not.toThrow(); + }); + + it('succeeds when the magic number is empty', (): void => { + expect( + () => new MagicNumber(registry) + ).not.toThrow(); + }); + + it('fails when the magic number mismatches', (): void => { + expect( + () => new MagicNumber(registry, 0x12345678) + ).toThrow(/MagicNumber mismatch/); + }); +}); diff --git a/packages/types/src/metadata/MagicNumber.ts b/packages/types/src/metadata/MagicNumber.ts new file mode 100644 index 0000000..d50bfa4 --- /dev/null +++ b/packages/types/src/metadata/MagicNumber.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyNumber, Registry } from '@pezkuwi/types-codec/types'; + +import { U32 } from '@pezkuwi/types-codec'; + +export const MAGIC_NUMBER = 0x6174656d; // `meta`, reversed for Little Endian encoding + +export class MagicNumber extends U32 { + constructor (registry: Registry, value?: AnyNumber) { + super(registry, value); + + if (!this.isEmpty && !this.eq(MAGIC_NUMBER)) { + throw new Error(`MagicNumber mismatch: expected ${registry.createTypeUnsafe('u32', [MAGIC_NUMBER]).toHex()}, found ${this.toHex()}`); + } + } +} diff --git a/packages/types/src/metadata/Metadata.spec.ts b/packages/types/src/metadata/Metadata.spec.ts new file mode 100644 index 0000000..880d052 --- /dev/null +++ b/packages/types/src/metadata/Metadata.spec.ts @@ -0,0 +1,57 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { HexString } from '@pezkuwi/util/types'; + +import bizinikiwiV14 from '@pezkuwi/types-support/metadata/v14/bizinikiwi-hex'; +import dicleV14 from '@pezkuwi/types-support/metadata/v14/dicle-hex'; +import pezkuwiV14 from '@pezkuwi/types-support/metadata/v14/pezkuwi-hex'; +import bizinikiwi from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex'; +import dicle from '@pezkuwi/types-support/metadata/v15/dicle-hex'; +import pezkuwi from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex'; + +import { TypeRegistry } from '../create/index.js'; +import { Metadata } from './Metadata.js'; + +const allData: Record = { + dicle, + pezkuwi, + bizinikiwi +}; + +const allDataV14: Record = { + dicle: dicleV14, + pezkuwi: pezkuwiV14, + bizinikiwi: bizinikiwiV14 +}; + +for (const type of ['dicle', 'pezkuwi', 'bizinikiwi'] as const) { + describe(`${type}metadata`, (): void => { + const registry = new TypeRegistry(); + const opaqueMetadata = registry.createType('Option', registry.createType('Raw', allData[type]).toU8a()).unwrap(); + const metadata = new Metadata(registry, opaqueMetadata.toHex()); + + it('allows creation from hex', (): void => { + expect( + new Metadata(new TypeRegistry(), metadata.toHex()).toJSON() + ).toEqual(metadata.toJSON()); + }); + + it('has a sane toCallsOnly V14 only', (): void => { + const metadatav14 = new Metadata(new TypeRegistry(), allDataV14[type]); + const test = metadatav14.asCallsOnly; + + // it has a useful length + expect( + test.toU8a().length > 65536 + ).toBe(true); + + // it sets it to the correct version + expect( + test.version + ).toEqual(14); + }); + }); +} diff --git a/packages/types/src/metadata/Metadata.ts b/packages/types/src/metadata/Metadata.ts new file mode 100644 index 0000000..bdc0c3b --- /dev/null +++ b/packages/types/src/metadata/Metadata.ts @@ -0,0 +1,53 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; + +import { isString, isU8a, u8aToU8a } from '@pezkuwi/util'; + +import { MetadataVersioned } from './MetadataVersioned.js'; + +// magic + lowest supported version +const EMPTY_METADATA = new Uint8Array([0x6d, 0x65, 0x74, 0x61, 9]); + +// magic u32 preceding the version id +const VERSION_IDX = EMPTY_METADATA.length - 1; + +/** @internal */ +function decodeU8a (registry: Registry, u8a: Uint8Array): MetadataVersioned | Uint8Array { + if (u8a.length === 0) { + return EMPTY_METADATA; + } else if (u8a[VERSION_IDX] === 9) { + // This is an f-ing hack as a follow-up to another ugly hack + // https://github.com/pezkuwichain/pezkuwi-api/commit/a9211690be6b68ad6c6dad7852f1665cadcfa5b2 + // when we fail on V9, try to re-parse it as v10... + try { + return new MetadataVersioned(registry, u8a); + } catch { + u8a[VERSION_IDX] = 10; + } + } + + return u8a; +} + +/** + * @name Metadata + * @description + * The versioned runtime metadata as a decoded structure + */ +export class Metadata extends MetadataVersioned { + constructor (registry: Registry, value?: Uint8Array | HexString | Map | Record) { + // const timeStart = performance.now() + + super( + registry, + isU8a(value) || isString(value) + ? decodeU8a(registry, u8aToU8a(value)) + : value + ); + + // console.log('Metadata', `${(performance.now() - timeStart).toFixed(2)}ms`) + } +} diff --git a/packages/types/src/metadata/MetadataVersioned.ts b/packages/types/src/metadata/MetadataVersioned.ts new file mode 100644 index 0000000..c3e3845 --- /dev/null +++ b/packages/types/src/metadata/MetadataVersioned.ts @@ -0,0 +1,183 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { MetadataAll, MetadataLatest, MetadataV9, MetadataV10, MetadataV11, MetadataV12, MetadataV13, MetadataV14, MetadataV15, MetadataV16 } from '../interfaces/metadata/index.js'; +import type { Registry } from '../types/index.js'; +import type { MetaVersionAll, MetaVersionAsX } from './versions.js'; + +import { Struct } from '@pezkuwi/types-codec'; + +import { getUniqTypes, toCallsOnly } from './util/index.js'; +import { toV10 } from './v9/toV10.js'; +import { toV11 } from './v10/toV11.js'; +import { toV12 } from './v11/toV12.js'; +import { toV13 } from './v12/toV13.js'; +import { toV14 } from './v13/toV14.js'; +import { toV15 } from './v14/toV15.js'; +import { toV16 } from './v15/toV16.js'; +import { toLatest } from './v16/toLatest.js'; +import { MagicNumber } from './MagicNumber.js'; +import { LATEST_VERSION, TO_CALLS_VERSION } from './versions.js'; + +type MetaMapped = MetadataAll[MetaVersionAsX]; +type MetaVersions = Exclude | 'latest'; + +/** + * @name MetadataVersioned + * @description + * The versioned runtime metadata as a decoded structure + */ +export class MetadataVersioned extends Struct { + readonly #converted = new Map(); + + constructor (registry: Registry, value?: Uint8Array | HexString | Map | Record) { + // const timeStart = performance.now() + + super(registry, { + magicNumber: MagicNumber, + metadata: 'MetadataAll' + }, value); + + // console.log('MetadataVersioned', `${(performance.now() - timeStart).toFixed(2)}ms`) + } + + #assertVersion = (version: number): boolean => { + if (this.version > version) { + throw new Error(`Cannot convert metadata from version ${this.version} to ${version}`); + } + + return this.version === version; + }; + + #getVersion = (version: MetaVersions, fromPrev: (registry: Registry, input: F, metaVersion: number) => T): T => { + if (version !== 'latest' && this.#assertVersion(version)) { + const asCurr: MetaVersionAsX = `asV${version}`; + + return this.#metadata()[asCurr] as T; + } + + if (!this.#converted.has(version)) { + const asPrev: MetaVersionAsX = version === 'latest' + ? `asV${LATEST_VERSION}` + : `asV${(version - 1) as MetaVersionAll}`; + + this.#converted.set(version, fromPrev(this.registry, this[asPrev] as F, this.version)); + } + + return this.#converted.get(version) as T; + }; + + /** + * @description the metadata wrapped + */ + #metadata = (): MetadataAll => { + return this.getT('metadata'); + }; + + /** + * @description Returns the wrapped metadata as a limited calls-only (latest) version + */ + public get asCallsOnly (): MetadataVersioned { + return new MetadataVersioned(this.registry, { + magicNumber: this.magicNumber, + metadata: this.registry.createTypeUnsafe('MetadataAll', [toCallsOnly(this.registry, this.asLatest), TO_CALLS_VERSION]) + }); + } + + /** + * @description Returns the wrapped metadata as a V9 object + */ + public get asV9 (): MetadataV9 { + this.#assertVersion(9); + + return this.#metadata().asV9; + } + + /** + * @description Returns the wrapped values as a V10 object + */ + public get asV10 (): MetadataV10 { + return this.#getVersion(10, toV10); + } + + /** + * @description Returns the wrapped values as a V11 object + */ + public get asV11 (): MetadataV11 { + return this.#getVersion(11, toV11); + } + + /** + * @description Returns the wrapped values as a V12 object + */ + public get asV12 (): MetadataV12 { + return this.#getVersion(12, toV12); + } + + /** + * @description Returns the wrapped values as a V13 object + */ + public get asV13 (): MetadataV13 { + return this.#getVersion(13, toV13); + } + + /** + * @description Returns the wrapped values as a V14 object + */ + public get asV14 (): MetadataV14 { + return this.#getVersion(14, toV14); + } + + /** + * @description Returns the wrapped values as a V15 object + */ + public get asV15 (): MetadataV15 { + return this.#getVersion(15, toV15); + } + + /** + * @description Returns the wrapped values as a V16 object + */ + public get asV16 (): MetadataV16 { + return this.#getVersion(16, toV16); + } + + /** + * @description Returns the wrapped values as a latest version object + */ + public get asLatest (): MetadataLatest { + return this.#getVersion('latest', toLatest); + } + + /** + * @description The magicNumber for the Metadata (known constant) + */ + public get magicNumber (): MagicNumber { + return this.getT('magicNumber'); + } + + /** + * @description the metadata version this structure represents + */ + public get version (): MetaVersionAll { + return this.#metadata().index as MetaVersionAll; + } + + public getUniqTypes (throwError: boolean): string[] { + return getUniqTypes(this.registry, this.asLatest, throwError); + } + + /** + * @description Converts the Object to JSON, typically used for RPC transfers + */ + public override toJSON (): Record { + // HACK(y): ensure that we apply the aliases if we have not done so already, this is + // needed to ensure we have the correct overrides (which is only applied in toLatest) + // eslint-disable-next-line no-unused-expressions + this.asLatest; + + return super.toJSON(); + } +} diff --git a/packages/types/src/metadata/PortableRegistry/PortableRegistry.Range.spec.ts b/packages/types/src/metadata/PortableRegistry/PortableRegistry.Range.spec.ts new file mode 100644 index 0000000..97f9ef0 --- /dev/null +++ b/packages/types/src/metadata/PortableRegistry/PortableRegistry.Range.spec.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../../create/index.js'; +import { PortableRegistry } from './index.js'; + +const registry = new TypeRegistry(); +const types = [ + { + id: 0, + type: { + def: { + composite: { + fields: [ + { + name: 'start', + type: 1, + typeName: 'Idx' + }, + { + name: 'end', + type: 1, + typeName: 'Idx' + } + ] + } + }, + params: [ + { + name: 'Idx', + type: 1 + } + ], + path: ['Range'] + } + }, + { + id: 1, + type: { + def: { + primitive: 'U32' + } + } + } +]; + +describe('PortableRegistry/Range', (): void => { + it('decodes a Range type', (): void => { + expect( + // override here is fine, Structs will decode correctly + new PortableRegistry(registry, { types } as unknown as Uint8Array) + .getTypeDef(0) + .type + ).toEqual('Range'); + }); +}); diff --git a/packages/types/src/metadata/PortableRegistry/PortableRegistry.ts b/packages/types/src/metadata/PortableRegistry/PortableRegistry.ts new file mode 100644 index 0000000..e253a9e --- /dev/null +++ b/packages/types/src/metadata/PortableRegistry/PortableRegistry.ts @@ -0,0 +1,1095 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Option, Text, Type, u32, Vec } from '@pezkuwi/types-codec'; +import type { AnyString, LookupString, Registry } from '@pezkuwi/types-codec/types'; +import type { ILookup, TypeDef } from '@pezkuwi/types-create/types'; +import type { PortableType } from '../../interfaces/metadata/index.js'; +import type { SiField, SiLookupTypeId, SiType, SiTypeDefArray, SiTypeDefBitSequence, SiTypeDefCompact, SiTypeDefComposite, SiTypeDefSequence, SiTypeDefTuple, SiTypeDefVariant, SiTypeParameter, SiVariant } from '../../interfaces/scaleInfo/index.js'; + +import { sanitize, Struct } from '@pezkuwi/types-codec'; +import { getTypeDef, TypeDefInfo, withTypeString } from '@pezkuwi/types-create'; +import { assertUnreachable, isNumber, isString, logger, objectSpread, stringCamelCase, stringify, stringPascalCase } from '@pezkuwi/util'; + +const l = logger('PortableRegistry'); + +interface ExtractBase { + lookupIndex: number; + name: string; +} + +interface Extract extends ExtractBase { + lookupIndex: number; + name: string; + params: SiTypeParameter[]; +} + +interface TypeInfo { + lookups: Record; + names: Record; + params: TypeInfoParams; + types: Record; +} + +interface TypeInfoParams { + // known param definitions + PezframeSystemEventRecord: [event: SiTypeParameter, topic: SiTypeParameter] + PezspRuntimeUncheckedExtrinsic: [address: SiTypeParameter, call: SiTypeParameter, signature: SiTypeParameter, extra: SiTypeParameter]; + + // other type definitions + [key: string]: SiTypeParameter[]; +} + +// Just a placeholder for a type.unrwapOr() +const TYPE_UNWRAP = { toNumber: () => -1 }; + +// Alias the primitive enum with our known values +const PRIMITIVE_ALIAS: Record = { + Char: 'u32', // Rust char is 4-bytes + Str: 'Text' +}; + +// These are types where we have a specific decoding/encoding override + helpers +const PATHS_ALIAS = splitNamespace([ + // full matching on exact names... + // these are well-known types with additional encoding + 'sp_core::crypto::AccountId32', + 'sp_runtime::generic::era::Era', + 'sp_runtime::multiaddress::MultiAddress', + // ethereum overrides (Frontier, Moonbeam, Pezkuwi claims) + 'fp_account::AccountId20', + 'account::AccountId20', + 'pezkuwi_runtime_common::claims::EthereumAddress', + // weights 2 is a structure, however for 1.5. with a single field it + // should be flatenned (can appear in Compact extrinsics) + 'frame_support::weights::weight_v2::Weight', + 'sp_weights::weight_v2::Weight', + // wildcard matching in place... + // these have a specific encoding or logic, use a wildcard for {pallet, darwinia}_democracy + '*_democracy::vote::Vote', + '*_conviction_voting::vote::Vote', + '*_identity::types::Data', + // these are opaque Vec wrappers + 'sp_core::OpaqueMetadata', + 'sp_core::OpaquePeerId', + 'sp_core::offchain::OpaqueMultiaddr', + // shorten some well-known types + 'primitive_types::*', + 'sp_arithmetic::per_things::*', + // runtime + '*_runtime::RuntimeCall', + '*_runtime::RuntimeEvent', + // ink! + 'ink::env::types::*', + 'ink::primitives::types::*', + 'ink_env::types::*', + 'ink_primitives::types::*' +]); + +// Mappings for types that should be converted to set via BitVec +const PATHS_SET = splitNamespace([ + 'pallet_identity::types::BitFlags' +]); + +// These are the set namespaces for BitVec definitions (the last 2 appear in types as well) +const BITVEC_NS_LSB = ['bitvec::order::Lsb0', 'BitOrderLsb0']; +const BITVEC_NS_MSB = ['bitvec::order::Msb0', 'BitOrderMsb0']; +const BITVEC_NS = [...BITVEC_NS_LSB, ...BITVEC_NS_MSB]; + +// These we never use these as top-level names, they are wrappers +const WRAPPERS = ['BoundedBTreeMap', 'BoundedBTreeSet', 'BoundedVec', 'Box', 'BTreeMap', 'BTreeSet', 'Cow', 'Option', 'Range', 'RangeInclusive', 'Result', 'WeakBoundedVec', 'WrapperKeepOpaque', 'WrapperOpaque']; + +// These are reserved and/or conflicts with built-in Codec or JS definitions +const RESERVED = [ + // JS reserved words + 'entries', 'keys', 'new', 'size', + // exposed by all Codec objects + 'hash', 'registry' +]; + +// Remove these from all paths at index 1 +const PATH_RM_INDEX_1 = ['generic', 'misc', 'pallet', 'traits', 'types']; + +/** @internal Converts a Text[] into string[] (used as part of definitions) */ +function sanitizeDocs (docs: Text[]): string[] { + const count = docs.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + result[i] = docs[i].toString(); + } + + return result; +} + +/** @internal Split a namespace with :: into individual parts */ +function splitNamespace (values: string[]): string[][] { + const count = values.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + result[i] = values[i].split('::'); + } + + return result; +} + +/** @internal Match a namespace based on parts (alongside wildcards) */ +function matchParts (first: string[], second: (string | Text)[]): boolean { + return first.length === second.length && first.every((a, index) => { + const b = second[index].toString(); + + if ((a === '*') || (a === b)) { + return true; + } + + if (a.includes('*') && a.includes('_') && b.includes('_')) { + let suba = a.split('_'); + let subb = b.split('_'); + + // match initial *'s to multiples if we have a match for the other + if (suba[0] === '*') { + const indexOf = subb.indexOf(suba[1]); + + if (indexOf !== -1) { + suba = suba.slice(1); + subb = subb.slice(indexOf); + } + } + + // check for * matches at the end, adjust accordingly + if ((suba.length === 2) && (suba[1] === '*') && (suba[0] === subb[0])) { + return true; + } + + return matchParts(suba, subb); + } + + return false; + }); +} + +/** @internal check if the path matches the PATHS_ALIAS (with wildcards) */ +function getAliasPath ({ def, path }: SiType): string | null { + // specific logic for weights - we override when non-complex struct + // (as applied in Weight 1.5 where we also have `Compact<{ refTime: u64 }>) + if (['frame_support::weights::weight_v2::Weight', 'sp_weights::weight_v2::Weight'].includes(path.join('::'))) { + return !def.isComposite || def.asComposite.fields.length === 1 + ? 'WeightV1' + : null; + } + + // TODO We need to handle ink! Balance in some way + return path.length && PATHS_ALIAS.some((a) => matchParts(a, path)) + ? path[path.length - 1].toString() + : null; +} + +/** @internal Converts a type name into a JS-API compatible name */ +function extractNameFlat (portable: PortableType[], lookupIndex: number, params: SiTypeParameter[], path: AnyString[], isInternal = false): Extract | null { + const count = path.length; + + // if we have no path or determined as a wrapper, we just skip it + if (count === 0 || WRAPPERS.includes(path[count - 1].toString())) { + return null; + } + + const camels = new Array(count); + const lowers = new Array(count); + + // initially just create arrays of the camelCase and lowercase path + // parts - we will check these to extract the final values. While + // we have 2 loops here, we also don't do the same operation twice + for (let i = 0; i < count; i++) { + const c = stringPascalCase( + isInternal + ? path[i].replace('pallet_', '') + : path[i] + ); + const l = c.toLowerCase(); + + camels[i] = c; + lowers[i] = l; + } + + let name = ''; + + for (let i = 0; i < count; i++) { + const l = lowers[i]; + + // Remove ::{generic, misc, pallet, traits, types}:: + if (i !== 1 || !PATH_RM_INDEX_1.includes(l)) { + // sp_runtime::generic::digest::Digest -> sp_runtime::generic::Digest + // sp_runtime::multiaddress::MultiAddress -> sp_runtime::MultiAddress + if (l !== lowers[i + 1]) { + name += camels[i]; + } + } + } + + // do magic for RawOrigin lookup, e.g. pallet_collective::RawOrigin + if (camels[1] === 'RawOrigin' && count === 2 && params.length === 2 && params[1].type.isSome) { + const instanceType = portable[params[1].type.unwrap().toNumber()]; + + if (instanceType.type.path.length === 2) { + name = `${name}${instanceType.type.path[1].toString()}`; + } + } + + return { lookupIndex, name, params }; +} + +/** @internal Alias for extractNameFlat with PortableType as a last parameter */ +function extractName (portable: PortableType[], lookupIndex: number, { type: { params, path } }: PortableType): Extract | null { + return extractNameFlat(portable, lookupIndex, params, path); +} + +/** @internal Check for dupes from a specific index onwards */ +function nextDupeMatches (name: string, startAt: number, names: Extract[]): Extract[] { + const result = [names[startAt]]; + + for (let i = startAt + 1, count = names.length; i < count; i++) { + const v = names[i]; + + if (v.name === name) { + result.push(v); + } + } + + return result; +} + +/** @internal Checks to see if a type is a full duplicate (with all params matching) */ +function rewriteDupes (input: ExtractBase[], rewrite: Record): boolean { + const count = input.length; + + for (let i = 0; i < count; i++) { + const a = input[i]; + + for (let j = i + 1; j < count; j++) { + const b = input[j]; + + // if the indexes are not the same and the names match, we have a dupe + if (a.lookupIndex !== b.lookupIndex && a.name === b.name) { + return false; + } + } + } + + // add all the adjusted values to the rewite map + for (let i = 0; i < count; i++) { + const p = input[i]; + + rewrite[p.lookupIndex] = p.name; + } + + return true; +} + +/** @internal Find duplicates and adjust the names based on parameters */ +function removeDupeNames (lookup: PortableRegistry, portable: PortableType[], names: Extract[]): Extract[] { + const rewrite: Record = {}; + + return names + .map((original, startAt): Extract | null => { + const { lookupIndex, name, params } = original; + + if (!name) { + // the name is empty (this is not expected, but have a failsafe) + return null; + } else if (rewrite[lookupIndex]) { + // we have already rewritten this one, we can skip it + return original; + } + + // those where the name is matching starting from this index + const allSame = nextDupeMatches(name, startAt, names); + + // we only have one, so all ok + if (allSame.length === 1) { + return original; + } + + // are there param differences between matching names + const anyDiff = allSame.some((o) => + params.length !== o.params.length || + params.some((p, index) => + !p.name.eq(o.params[index].name) || + p.type.unwrapOr(TYPE_UNWRAP).toNumber() !== o.params[index].type.unwrapOr(TYPE_UNWRAP).toNumber() + ) + ); + + // everything matches, we can combine these + if (!anyDiff) { + return original; + } + + // TODO We probably want to attach all the indexes with differences, + // not just the first + // find the first parameter that yields differences + const paramIdx = params.findIndex(({ type }, index) => + allSame.every(({ params }, aIndex) => + params[index].type.isSome && ( + aIndex === 0 || + !params[index].type.eq(type) + ) + ) + ); + + // No param found that is different + if (paramIdx === -1) { + return original; + } + + // see if using the param type helps + const sameCount = allSame.length; + const adjusted = new Array(sameCount); + + // loop through all, specifically checking that index where the + // first param yields differences + for (let i = 0; i < sameCount; i++) { + const { lookupIndex, name, params } = allSame[i]; + const { def, path } = lookup.getSiType(params[paramIdx].type.unwrap()); + + // if it is not a primitive and it doesn't have a path, we really cannot + // do anything at this point + if (!def.isPrimitive && !path.length) { + return null; + } + + adjusted[i] = { + lookupIndex, + name: def.isPrimitive + ? `${name}${def.asPrimitive.toString()}` + : `${name}${path[path.length - 1].toString()}` + }; + } + + // check to see if the adjusted names have no issues + if (rewriteDupes(adjusted, rewrite)) { + return original; + } + + // TODO This is duplicated from the section just above... + // ... we certainly need a better solution here + // + // Last-ditch effort to use the full type path - ugly + // loop through all, specifically checking that index where the + // first param yields differences + for (let i = 0; i < sameCount; i++) { + const { lookupIndex, name, params } = allSame[i]; + const { def, path } = lookup.getSiType(params[paramIdx].type.unwrap()); + const flat = extractNameFlat(portable, lookupIndex, params, path, true); + + if (def.isPrimitive || !flat) { + return null; + } + + adjusted[i] = { + lookupIndex, + name: `${name}${flat.name}` + }; + } + + // check to see if the adjusted names have no issues + if (rewriteDupes(adjusted, rewrite)) { + return original; + } + + return null; + }) + .filter((n): n is Extract => !!n) + .map(({ lookupIndex, name, params }): Extract => ({ + lookupIndex, + name: rewrite[lookupIndex] || name, + params + })); +} + +/** @internal Detect on-chain types (AccountId/Signature) as set as the default */ +function registerTypes (lookup: PortableRegistry, lookups: Record, names: Record, params: TypeInfoParams): void { + // Register the types we extracted + lookup.registry.register(lookups); + + // Try and extract the AccountId/Address/Signature type from UncheckedExtrinsic + if (params.PezspRuntimeUncheckedExtrinsic) { + // Address, Call, Signature, Extra + const [addrParam,, sigParam] = params.PezspRuntimeUncheckedExtrinsic; + const siAddress = lookup.getSiType(addrParam.type.unwrap()); + const siSignature = lookup.getSiType(sigParam.type.unwrap()); + const nsSignature = siSignature.path.join('::'); + let nsAccountId = siAddress.path.join('::'); + const isMultiAddress = nsAccountId === 'sp_runtime::multiaddress::MultiAddress'; + + // With multiaddress, we check the first type param again + if (isMultiAddress) { + // AccountId, AccountIndex + const [idParam] = siAddress.params; + + nsAccountId = lookup.getSiType(idParam.type.unwrap()).path.join('::'); + } + + lookup.registry.register({ + // known: account::AccountId20, fp_account::AccountId20, primitive_types::H160 + AccountId: nsAccountId.endsWith('::AccountId20') || nsAccountId.endsWith('::H160') + ? 'AccountId20' + : 'AccountId32', + Address: isMultiAddress + ? 'MultiAddress' + : 'AccountId', + ExtrinsicSignature: ['sp_runtime::MultiSignature'].includes(nsSignature) + ? 'MultiSignature' + : names[sigParam.type.unwrap().toNumber()] || 'MultiSignature' + }); + } +} + +/** + * @internal Extracts aliases based on what we know the runtime config looks like in a + * Bizinikiwi chain. Specifically we want to have access to the Call and Event params + **/ +function extractAliases (params: TypeInfoParams, isContract?: boolean): Record { + const hasParams = Object.keys(params).some((k) => !k.startsWith('Pezpallet')); + const alias: Record = {}; + + if (params.PezspRuntimeUncheckedExtrinsic) { + // Address, Call, Signature, Extra + const [, { type }] = params.PezspRuntimeUncheckedExtrinsic; + + alias[type.unwrap().toNumber()] = 'Call'; + } else if (hasParams && !isContract) { + l.warn('Unable to determine runtime Call type, cannot inspect sp_runtime::generic::unchecked_extrinsic::UncheckedExtrinsic'); + } + + if (params.PezframeSystemEventRecord) { + // Event, Topic + const [{ type }] = params.PezframeSystemEventRecord; + + alias[type.unwrap().toNumber()] = 'Event'; + } else if (hasParams && !isContract) { + l.warn('Unable to determine runtime Event type, cannot inspect frame_system::EventRecord'); + } + + return alias; +} + +/** @internal Extracts all the intreresting type information for this registry */ +function extractTypeInfo (lookup: PortableRegistry, portable: PortableType[]): TypeInfo { + const nameInfo: Extract[] = []; + const types: Record = {}; + + for (let i = 0, count = portable.length; i < count; i++) { + const type = portable[i]; + const lookupIndex = type.id.toNumber(); + const extracted = extractName(portable, lookupIndex, portable[i]); + + if (extracted) { + nameInfo.push(extracted); + } + + types[lookupIndex] = type; + } + + const lookups: Record = {}; + const names: Record = {}; + const params = {} as TypeInfoParams; + const dedup = removeDupeNames(lookup, portable, nameInfo); + + for (let i = 0, count = dedup.length; i < count; i++) { + const { lookupIndex, name, params: p } = dedup[i]; + + names[lookupIndex] = name; + lookups[name] = lookup.registry.createLookupType(lookupIndex); + params[name] = p; + } + + return { lookups, names, params, types }; +} + +export class PortableRegistry extends Struct implements ILookup { + #alias: Record; + #lookups: Record; + #names: Record; + #params: TypeInfoParams; + #typeDefs: Record = {}; + #types: Record; + + constructor (registry: Registry, value?: Uint8Array, isContract?: boolean) { + // const timeStart = performance.now() + + super(registry, { + types: 'Vec' + }, value); + + const { lookups, names, params, types } = extractTypeInfo(this, this.types); + + this.#alias = extractAliases(params, isContract); + this.#lookups = lookups; + this.#names = names; + this.#params = params; + this.#types = types; + + // console.log('PortableRegistry', `${(performance.now() - timeStart).toFixed(2)}ms`) + } + + /** + * @description Returns all the available type names for this chain + **/ + public get names (): string[] { + return Object.values(this.#names).sort(); + } + + /** + * @description Returns all the available parameterized types for this chain + **/ + public get paramTypes (): TypeInfoParams { + return this.#params; + } + + /** + * @description The types of the registry + */ + public get types (): Vec { + return this.getT('types'); + } + + /** + * @description Register all available types into the registry (generally for internal usage) + */ + public register (): void { + registerTypes(this, this.#lookups, this.#names, this.#params); + } + + /** + * @description Returns the name for a specific lookup + */ + public getName (lookupId: SiLookupTypeId | LookupString | number): string | undefined { + return this.#names[this.#getLookupId(lookupId)]; + } + + /** + * @description Finds a specific type in the registry + */ + public getSiType (lookupId: SiLookupTypeId | LookupString | number): SiType { + // NOTE catch-22 - this may already be used as part of the constructor, so + // ensure that we have actually initialized it correctly + const found = (this.#types || this.types)[this.#getLookupId(lookupId)]; + + if (!found) { + throw new Error(`PortableRegistry: Unable to find type with lookupId ${lookupId.toString()}`); + } + + return found.type; + } + + /** + * @description Lookup the type definition for the index + */ + public getTypeDef (lookupId: SiLookupTypeId | LookupString | number): TypeDef { + const lookupIndex = this.#getLookupId(lookupId); + + if (!this.#typeDefs[lookupIndex]) { + const lookupName = this.#names[lookupIndex]; + const empty = { + info: TypeDefInfo.DoNotConstruct, + lookupIndex, + lookupName, + type: this.registry.createLookupType(lookupIndex) + }; + + // Set named items since we will get into circular lookups along the way + if (lookupName) { + this.#typeDefs[lookupIndex] = empty; + } + + const extracted = this.#extract(this.getSiType(lookupId), lookupIndex); + + // For non-named items, we only set this right at the end + if (!lookupName) { + this.#typeDefs[lookupIndex] = empty; + } + + Object.keys(extracted).forEach((k): void => { + if (k !== 'lookupName' || extracted[k]) { + // these are safe since we are looking through the keys as set + this.#typeDefs[lookupIndex][k as 'info'] = extracted[k as 'info']; + } + }); + + // don't set lookupName on lower-level, we want to always direct to the type + if (extracted.info === TypeDefInfo.Plain) { + this.#typeDefs[lookupIndex].lookupNameRoot = this.#typeDefs[lookupIndex].lookupName; + delete this.#typeDefs[lookupIndex].lookupName; + } + } + + return this.#typeDefs[lookupIndex]; + } + + /** + * @description For a specific field, perform adjustments to not have built-in conflicts + */ + public sanitizeField (name: Option): [string | null, string | null] { + let nameField: string | null = null; + let nameOrig: string | null = null; + + if (name.isSome) { + nameField = stringCamelCase(name.unwrap()); + + if (nameField.includes('#')) { + nameOrig = nameField; + nameField = nameOrig.replace(/#/g, '_'); + } else if (RESERVED.includes(nameField)) { + nameOrig = nameField; + nameField = `${nameField}_`; + } + } + + return [nameField, nameOrig]; + } + + /** @internal Creates a TypeDef based on an internal lookupId */ + #createSiDef (lookupId: SiLookupTypeId): TypeDef { + const typeDef = this.getTypeDef(lookupId); + const lookupIndex = lookupId.toNumber(); + + // Setup for a lookup on complex types + return [TypeDefInfo.DoNotConstruct, TypeDefInfo.Enum, TypeDefInfo.Struct].includes(typeDef.info) && typeDef.lookupName + ? { + docs: typeDef.docs, + info: TypeDefInfo.Si, + lookupIndex, + lookupName: this.#names[lookupIndex], + type: this.registry.createLookupType(lookupId) + } + : typeDef; + } + + /** @internal Converts a lookupId input to the actual lookup index */ + #getLookupId (lookupId: SiLookupTypeId | LookupString | number): number { + if (isString(lookupId)) { + if (!this.registry.isLookupType(lookupId)) { + throw new Error(`PortableRegistry: Expected a lookup string type, found ${lookupId as string}`); + } + + return parseInt(lookupId.replace('Lookup', ''), 10); + } else if (isNumber(lookupId)) { + return lookupId; + } + + return lookupId.toNumber(); + } + + /** @internal Converts a type into a TypeDef for Codec usage */ + #extract (type: SiType, lookupIndex: number): TypeDef { + const namespace = type.path.join('::'); + let typeDef: TypeDef; + const aliasType = this.#alias[lookupIndex] || getAliasPath(type); + + try { + if (aliasType) { + typeDef = this.#extractAliasPath(lookupIndex, aliasType); + } else { + switch (type.def.type) { + case 'Array': typeDef = this.#extractArray(lookupIndex, type.def.asArray); break; + case 'BitSequence': typeDef = this.#extractBitSequence(lookupIndex, type.def.asBitSequence); break; + case 'Compact': typeDef = this.#extractCompact(lookupIndex, type.def.asCompact); break; + case 'Composite': typeDef = this.#extractComposite(lookupIndex, type, type.def.asComposite); break; + case 'HistoricMetaCompat': typeDef = this.#extractHistoric(lookupIndex, type.def.asHistoricMetaCompat); break; + case 'Primitive': typeDef = this.#extractPrimitive(lookupIndex, type); break; + case 'Sequence': typeDef = this.#extractSequence(lookupIndex, type.def.asSequence); break; + case 'Tuple': typeDef = this.#extractTuple(lookupIndex, type.def.asTuple); break; + case 'Variant': typeDef = this.#extractVariant(lookupIndex, type, type.def.asVariant); break; + default: assertUnreachable(type.def.type); + } + } + } catch (error) { + throw new Error(`PortableRegistry: ${lookupIndex}${namespace ? ` (${namespace})` : ''}: Error extracting ${stringify(type)}: ${(error as Error).message}`); + } + + return objectSpread({ + docs: sanitizeDocs(type.docs), + namespace + }, typeDef); + } + + /** @internal Extracts a ScaleInfo Array into TypeDef.VecFixed */ + #extractArray (_: number, { len, type }: SiTypeDefArray): TypeDef { + const length = len.toNumber(); + + if (length > 2048) { + throw new Error('Only support for [Type; ], where length <= 2048'); + } + + return withTypeString(this.registry, { + info: TypeDefInfo.VecFixed, + length, + sub: this.#createSiDef(type) + }); + } + + /** @internal Extracts a ScaleInfo BitSequence into TypeDef.Plain */ + #extractBitSequence (_: number, { bitOrderType, bitStoreType }: SiTypeDefBitSequence): TypeDef { + // With the v3 of scale-info this swapped around, but obviously the decoder cannot determine + // the order. With that in-mind, we apply a detection for LSb0/Msb and set accordingly + const a = this.#createSiDef(bitOrderType); + const b = this.#createSiDef(bitStoreType); + const [bitOrder, bitStore] = BITVEC_NS.includes(a.namespace || '') + ? [a, b] + : [b, a]; + + if (!bitOrder.namespace || !BITVEC_NS.includes(bitOrder.namespace)) { + throw new Error(`Unexpected bitOrder found as ${bitOrder.namespace || ''}`); + } else if (bitStore.info !== TypeDefInfo.Plain || bitStore.type !== 'u8') { + throw new Error(`Only u8 bitStore is currently supported, found ${bitStore.type}`); + } + + const isLsb = BITVEC_NS_LSB.includes(bitOrder.namespace); + + if (!isLsb) { + // TODO To remove this limitation, we need to pass an extra info flag + // through to the TypeDef (Here we could potentially re-use something + // like index (???) to indicate and ensure we use it to pass to the + // BitVec constructor - which does handle this type) + // + // See https://github.com/pezkuwichain/pezkuwi-api/issues/5588 + // throw new Error(`Only LSB BitVec is currently supported, found ${bitOrder.namespace}`); + } + + return { + info: TypeDefInfo.Plain, + type: 'BitVec' + }; + } + + /** @internal Extracts a ScaleInfo Compact into TypeDef.Compact */ + #extractCompact (_: number, { type }: SiTypeDefCompact): TypeDef { + return withTypeString(this.registry, { + info: TypeDefInfo.Compact, + sub: this.#createSiDef(type) + }); + } + + /** @internal Extracts a ScaleInfo Composite into TypeDef.{BTree*, Range*, Wrapper*} */ + #extractComposite (lookupIndex: number, { params, path }: SiType, { fields }: SiTypeDefComposite): TypeDef { + if (path.length) { + const pathFirst = path[0].toString(); + const pathLast = path[path.length - 1].toString(); + + if (path.length === 1 && pathFirst === 'BTreeMap') { + if (params.length !== 2) { + throw new Error(`BTreeMap requires 2 parameters, found ${params.length}`); + } + + return withTypeString(this.registry, { + info: TypeDefInfo.BTreeMap, + sub: params.map(({ type }) => this.#createSiDef(type.unwrap())) + }); + } else if (path.length === 1 && pathFirst === 'BTreeSet') { + if (params.length !== 1) { + throw new Error(`BTreeSet requires 1 parameter, found ${params.length}`); + } + + return withTypeString(this.registry, { + info: TypeDefInfo.BTreeSet, + sub: this.#createSiDef(params[0].type.unwrap()) + }); + } else if (['Range', 'RangeInclusive'].includes(pathFirst)) { + if (params.length !== 1) { + throw new Error(`Range requires 1 parameter, found ${params.length}`); + } + + return withTypeString(this.registry, { + info: pathFirst === 'Range' + ? TypeDefInfo.Range + : TypeDefInfo.RangeInclusive, + sub: this.#createSiDef(params[0].type.unwrap()), + type: pathFirst + }); + } else if (['WrapperKeepOpaque', 'WrapperOpaque'].includes(pathLast)) { + if (params.length !== 1) { + throw new Error(`WrapperOpaque requires 1 parameter, found ${params.length}`); + } + + return withTypeString(this.registry, { + info: pathLast === 'WrapperKeepOpaque' + ? TypeDefInfo.WrapperKeepOpaque + : TypeDefInfo.WrapperOpaque, + sub: this.#createSiDef(params[0].type.unwrap()), + type: pathLast + }); + } + } + + return PATHS_SET.some((p) => matchParts(p, path)) + ? this.#extractCompositeSet(lookupIndex, params, fields) + : this.#extractFields(lookupIndex, fields); + } + + /** @internal Extracts a ScaleInfo CompositeSet into TypeDef.Set */ + #extractCompositeSet (_: number, params: SiTypeParameter[], fields: SiField[]): TypeDef { + if (params.length !== 1 || fields.length !== 1) { + throw new Error('Set handling expects param/field as single entries'); + } + + return withTypeString(this.registry, { + info: TypeDefInfo.Set, + length: this.registry.createTypeUnsafe(this.registry.createLookupType(fields[0].type), []).bitLength(), + sub: this.getSiType(params[0].type.unwrap()).def.asVariant.variants.map(({ index, name }): TypeDef => ({ + // This will be an issue > 2^53 - 1 ... don't have those (yet) + index: index.toNumber(), + info: TypeDefInfo.Plain, + name: name.toString(), + type: 'Null' + })) + }); + } + + /** @internal Extracts ScaleInfo enum/struct fields into TypeDef.{Struct, Tuple} */ + #extractFields (lookupIndex: number, fields: SiField[]): TypeDef { + let isStruct = true; + let isTuple = true; + const count = fields.length; + + for (let f = 0; f < count; f++) { + const { name } = fields[f]; + + isStruct = isStruct && name.isSome; + isTuple = isTuple && name.isNone; + } + + if (!isTuple && !isStruct) { + throw new Error('Invalid fields type detected, expected either Tuple (all unnamed) or Struct (all named)'); + } + + if (count === 0) { + return { + info: TypeDefInfo.Null, + type: 'Null' + }; + } else if (isTuple && count === 1) { + const typeDef = this.#createSiDef(fields[0].type); + + return objectSpread( + {}, + typeDef, + lookupIndex === -1 + ? null + : { + lookupIndex, + lookupName: this.#names[lookupIndex], + lookupNameRoot: typeDef.lookupName + }, + fields[0].typeName.isSome + ? { typeName: sanitize(fields[0].typeName.unwrap()) } + : null + ); + } + + const [sub, alias] = this.#extractFieldsAlias(fields); + + return withTypeString(this.registry, objectSpread( + { + info: isTuple // Tuple check first + ? TypeDefInfo.Tuple + : TypeDefInfo.Struct, + sub + }, + alias.size + ? { alias } + : null, + lookupIndex === -1 + ? null + : { + lookupIndex, + lookupName: this.#names[lookupIndex] + } + )); + } + + /** @internal Apply field aliassed (with no JS conflicts) */ + #extractFieldsAlias (fields: SiField[]): [TypeDef[], Map] { + const alias = new Map(); + const count = fields.length; + const sub = new Array(count); + + for (let i = 0; i < count; i++) { + const { docs, name, type, typeName } = fields[i]; + const typeDef = this.#createSiDef(type); + + if (name.isNone) { + sub[i] = typeDef; + } else { + const [nameField, nameOrig] = this.sanitizeField(name); + + if (nameField && nameOrig) { + alias.set(nameField, nameOrig); + } + + sub[i] = objectSpread( + { + docs: sanitizeDocs(docs), + name: nameField + }, + typeDef, + typeName.isSome + ? { typeName: sanitize(typeName.unwrap()) } + : null + ); + } + } + + return [sub, alias]; + } + + /** @internal Extracts an internal Historic (pre V14) type */ + #extractHistoric (_: number, type: Type): TypeDef { + return objectSpread({ + displayName: type.toString(), + isFromSi: true + }, getTypeDef(type)); + } + + /** @internal Extracts a ScaleInfo Primitive into TypeDef.Plain */ + #extractPrimitive (_: number, type: SiType): TypeDef { + const typeStr = type.def.asPrimitive.type.toString(); + + return { + info: TypeDefInfo.Plain, + type: PRIMITIVE_ALIAS[typeStr] || typeStr.toLowerCase() + }; + } + + /** @internal Applies an alias path onto the TypeDef */ + #extractAliasPath (_: number, type: string): TypeDef { + return { + info: TypeDefInfo.Plain, + type + }; + } + + /** @internal Extracts a ScaleInfo Sequence into TypeDef.Vec (with Bytes shortcut) */ + #extractSequence (lookupIndex: number, { type }: SiTypeDefSequence): TypeDef { + const sub = this.#createSiDef(type); + + if (sub.type === 'u8') { + return { + info: TypeDefInfo.Plain, + type: 'Bytes' + }; + } + + return withTypeString(this.registry, { + info: TypeDefInfo.Vec, + lookupIndex, + lookupName: this.#names[lookupIndex], + sub + }); + } + + /** @internal Extracts a ScaleInfo Tuple into TypeDef.Tuple */ + #extractTuple (lookupIndex: number, ids: SiTypeDefTuple): TypeDef { + if (ids.length === 0) { + return { + info: TypeDefInfo.Null, + type: 'Null' + }; + } else if (ids.length === 1) { + return this.getTypeDef(ids[0]); + } + + const sub = ids.map((t) => this.#createSiDef(t)); + + return withTypeString(this.registry, { + info: TypeDefInfo.Tuple, + lookupIndex, + lookupName: this.#names[lookupIndex], + sub + }); + } + + /** @internal Extracts a ScaleInfo Variant into TypeDef.{Option, Result, Enum} */ + #extractVariant (lookupIndex: number, { params, path }: SiType, { variants }: SiTypeDefVariant): TypeDef { + if (path.length) { + const specialVariant = path[0].toString(); + + if (specialVariant === 'Option') { + if (params.length !== 1) { + throw new Error(`Option requires 1 parameter, found ${params.length}`); + } + + // NOTE This is opt-in (unhandled), not by default + // if (sub.type === 'bool') { + // return withTypeString(this.registry, { + // info: TypeDefInfo.Plain, + // type: 'OptionBool' + // }); + // } + + return withTypeString(this.registry, { + info: TypeDefInfo.Option, + sub: this.#createSiDef(params[0].type.unwrap()) + }); + } else if (specialVariant === 'Result') { + if (params.length !== 2) { + throw new Error(`Result requires 2 parameters, found ${params.length}`); + } + + return withTypeString(this.registry, { + info: TypeDefInfo.Result, + sub: params.map(({ type }, index) => + objectSpread({ + name: ['Ok', 'Error'][index] + }, this.#createSiDef(type.unwrap())) + ) + }); + } + } + + if (variants.length === 0) { + return { + info: TypeDefInfo.Null, + type: 'Null' + }; + } + + return this.#extractVariantEnum(lookupIndex, variants); + } + + /** @internal Extracts a ScaleInfo Variant into TypeDef.Enum */ + #extractVariantEnum (lookupIndex: number, variants: SiVariant[]): TypeDef { + const sub: (TypeDef & { name: string })[] = []; + + // we may get entries out of order, arrange them first before creating with gaps filled + // NOTE: Since we mutate, use a copy of the array as an input + variants + .slice() + .sort((a, b) => a.index.cmp(b.index)) + .forEach(({ fields, index: bnIndex, name }) => { + const index = bnIndex.toNumber(); + + while (sub.length !== index) { + sub.push({ + index: sub.length, + info: TypeDefInfo.Null, + name: `__Unused${sub.length}`, + type: 'Null' + }); + } + + sub.push( + objectSpread(this.#extractFields(-1, fields), { + index, + name: name.toString() + }) + ); + }); + + return withTypeString(this.registry, { + info: TypeDefInfo.Enum, + lookupIndex, + lookupName: this.#names[lookupIndex], + sub + }); + } +} diff --git a/packages/types/src/metadata/PortableRegistry/index.ts b/packages/types/src/metadata/PortableRegistry/index.ts new file mode 100644 index 0000000..9c642e4 --- /dev/null +++ b/packages/types/src/metadata/PortableRegistry/index.ts @@ -0,0 +1,5 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { PortableRegistry } from './PortableRegistry.js'; +export { toV1 as convertSiV0toV1 } from './toV1.js'; diff --git a/packages/types/src/metadata/PortableRegistry/toV1.ts b/packages/types/src/metadata/PortableRegistry/toV1.ts new file mode 100644 index 0000000..f4029fc --- /dev/null +++ b/packages/types/src/metadata/PortableRegistry/toV1.ts @@ -0,0 +1,130 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PortableType, Si0Field, Si0LookupTypeId, Si0Path, Si0Type, Si0TypeDefArray, Si0TypeDefBitSequence, Si0TypeDefComposite, Si0TypeDefPrimitive, Si0TypeDefSequence, Si0TypeDefVariant, Si1Field, Si1TypeDef, SiTypeDef } from '../../interfaces/index.js'; +import type { Registry } from '../../types/index.js'; + +import { assertUnreachable } from '@pezkuwi/util'; + +function convertType (key: 'Compact' | 'Sequence'): (registry: Registry, si: Si0TypeDefSequence) => SiTypeDef { + return (registry: Registry, { type }: Si0TypeDefSequence) => + registry.createType('Si1TypeDef', { + [key]: { + type: type.toNumber() + } + }); +} + +function convertArray (registry: Registry, { len, type }: Si0TypeDefArray): Si1TypeDef { + return registry.createType('Si1TypeDef', { + Array: { + len, + type: type.toNumber() + } + }); +} + +function convertBitSequence (registry: Registry, { bitOrderType, bitStoreType }: Si0TypeDefBitSequence): Si1TypeDef { + return registry.createType('Si1TypeDef', { + BitSequence: { + bitOrderType: bitOrderType.toNumber(), + bitStoreType: bitStoreType.toNumber() + } + }); +} + +const convertCompact = convertType('Compact'); + +function convertComposite (registry: Registry, { fields }: Si0TypeDefComposite): Si1TypeDef { + return registry.createType('Si1TypeDef', { + Composite: { + fields: convertFields(registry, fields) + } + }); +} + +function convertFields (registry: Registry, fields: Si0Field[]): Si1Field[] { + return fields.map(({ docs, name, type, typeName }) => + registry.createType('Si1Field', { + docs, + name, + type: type.toNumber(), + typeName + }) + ); +} + +function convertPhantom (registry: Registry, path: Si0Path): Si1TypeDef { + console.warn(`Converting phantom type ${path.map((p) => p.toString()).join('::')} to empty tuple`); + + return registry.createType('Si1TypeDef', { + Tuple: [] + }); +} + +function convertPrimitive (registry: Registry, prim: Si0TypeDefPrimitive): Si1TypeDef { + return registry.createType('Si1TypeDef', { + Primitive: prim.toString() + }); +} + +const convertSequence = convertType('Sequence'); + +function convertTuple (registry: Registry, types: Si0LookupTypeId[]): Si1TypeDef { + return registry.createType('Si1TypeDef', { + Tuple: types.map((t) => t.toNumber()) + }); +} + +function convertVariant (registry: Registry, { variants }: Si0TypeDefVariant): Si1TypeDef { + return registry.createType('Si1TypeDef', { + Variant: { + variants: variants.map(({ discriminant, docs, fields, name }, index) => + registry.createType('Si1Variant', { + docs, + fields: convertFields(registry, fields), + index: discriminant.isSome + ? discriminant.unwrap().toNumber() + : index, + name + }) + ) + } + }); +} + +function convertDef (registry: Registry, { def, path }: Si0Type): Si1TypeDef { + let result: Si1TypeDef; + + switch (def.type) { + case 'Array': result = convertArray(registry, def.asArray); break; + case 'BitSequence': result = convertBitSequence(registry, def.asBitSequence); break; + case 'Compact': result = convertCompact(registry, def.asCompact); break; + case 'Composite': result = convertComposite(registry, def.asComposite); break; + case 'Phantom': result = convertPhantom(registry, path); break; + case 'Primitive': result = convertPrimitive(registry, def.asPrimitive); break; + case 'Sequence': result = convertSequence(registry, def.asSequence); break; + case 'Tuple': result = convertTuple(registry, def.asTuple); break; + case 'Variant': result = convertVariant(registry, def.asVariant); break; + default: assertUnreachable(def.type); + } + + return result; +} + +export function toV1 (registry: Registry, types: Si0Type[]): PortableType[] { + return types.map((t, index) => + registry.createType('PortableType', { + // offsets are +1 from v0 + id: index + 1, + type: { + def: convertDef(registry, t), + docs: [], + params: t.params.map((p) => registry.createType('Si1TypeParameter', { + type: p.toNumber() + })), + path: t.path.map((p) => p.toString()) + } + }) + ); +} diff --git a/packages/types/src/metadata/README.md b/packages/types/src/metadata/README.md new file mode 100644 index 0000000..9ac419b --- /dev/null +++ b/packages/types/src/metadata/README.md @@ -0,0 +1,10 @@ +# metadata update + +0. New branch :) +0. Start the node, typically via `cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev` ([types-support/src/metadata/README.md](../../../types-support/src/metadata/README.md) has more information for specific chains) +0. Retrieve the metadata `curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9933` +0. Copy into the latest version folder per node type in `types-support/src/metadata` eg. `types-support/src/metadata/v14/bizinikiwi-hex.json` +0. Re-build the interfaces `yarn build:interfaces` +0. Run Metadata tests, `yarn test:one packages/types/src/metadata` +0. All tests +0. Make PR diff --git a/packages/types/src/metadata/decorate/constants/index.spec.ts b/packages/types/src/metadata/decorate/constants/index.spec.ts new file mode 100644 index 0000000..0e86b11 --- /dev/null +++ b/packages/types/src/metadata/decorate/constants/index.spec.ts @@ -0,0 +1,44 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import type { HexString } from '@pezkuwi/util/types'; +import type { BlockNumber } from '../../../interfaces/index.js'; +import type { Constants } from '../types.js'; + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import rpcMetadataV10 from '@pezkuwi/types-support/metadata/v10/bizinikiwi-hex'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { decorateConstants } from '../index.js'; + +function init (meta: HexString): [consts: Constants, registry: TypeRegistry] { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, meta); + + registry.setMetadata(metadata); + + return [decorateConstants(registry, metadata.asLatest, metadata.version), registry]; +} + +describe('decorateConstants', (): void => { + it('should return constants with the correct type and value', (): void => { + const [consts] = init(rpcMetadata); + + expect((consts['democracy']['cooloffPeriod'] as unknown as BlockNumber).bitLength()).toBe(32); + // 3 second blocks, 28 days + expect((consts['democracy']['cooloffPeriod'] as unknown as BlockNumber).toNumber()).toEqual(28 * 24 * 60 * (60 / 3)); + }); + + // removed from session + it('correctly handles bytes (V10)', (): void => { + const [consts] = init(rpcMetadataV10); + + // 0x34 removes as the length prefix removed + expect( + consts['session']['dedupKeyPrefix'].toHex() + ).toEqual('0x3a73657373696f6e3a6b657973'); + }); +}); diff --git a/packages/types/src/metadata/decorate/constants/index.ts b/packages/types/src/metadata/decorate/constants/index.ts new file mode 100644 index 0000000..3a5be92 --- /dev/null +++ b/packages/types/src/metadata/decorate/constants/index.ts @@ -0,0 +1,39 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, PezpalletConstantMetadataLatest } from '../../../interfaces/index.js'; +import type { ConstantCodec, Constants } from '../types.js'; + +import { hexToU8a, lazyMethod, lazyMethods, stringCamelCase } from '@pezkuwi/util'; + +import { objectNameToCamel } from '../util.js'; + +/** @internal */ +export function decorateConstants (registry: Registry, { pallets }: MetadataLatest, _version: number): Constants { + const result: Constants = {}; + + for (let i = 0, count = pallets.length; i < count; i++) { + const { constants, name } = pallets[i]; + + if (!constants.isEmpty) { + lazyMethod(result, stringCamelCase(name), () => + lazyMethods( + {}, + constants, + (constant: PezpalletConstantMetadataLatest): ConstantCodec => { + const codec = registry.createTypeUnsafe(registry.createLookupType(constant.type), [hexToU8a(constant.value.toHex())]); + + // We are casting here since we are assigning to a read-only property + (codec as { meta: PezpalletConstantMetadataLatest }).meta = constant; + + return codec; + }, + objectNameToCamel + ) + ); + } + } + + return result; +} diff --git a/packages/types/src/metadata/decorate/errors/index.spec.ts b/packages/types/src/metadata/decorate/errors/index.spec.ts new file mode 100644 index 0000000..fe68f5d --- /dev/null +++ b/packages/types/src/metadata/decorate/errors/index.spec.ts @@ -0,0 +1,47 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { decorateErrors } from '../index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +const errors = decorateErrors(registry, metadata.asLatest, metadata.version); + +describe('decorateErrors', (): void => { + it('should return known errors', (): void => { + expect(errors['balances']['InsufficientBalance']).toBeDefined(); + expect(errors['system']['FailedToExtractRuntimeVersion']).toBeDefined(); + }); + + it('has the correct metadata for known errors', (): void => { + expect( + errors['proxy']['NotProxy'].meta.toJSON() + ).toEqual({ + args: [], + docs: ['Sender is not a proxy of the account to be proxied.'], + fields: [], + index: 2, + name: 'NotProxy' + }); + }); + + it('should check against a specific error', (): void => { + expect( + errors['system']['InvalidSpecName'].is( + registry.createType('DispatchErrorModule', { + error: 0, + index: 0 + }) + ) + ).toBe(true); + }); +}); diff --git a/packages/types/src/metadata/decorate/errors/index.ts b/packages/types/src/metadata/decorate/errors/index.ts new file mode 100644 index 0000000..f106e89 --- /dev/null +++ b/packages/types/src/metadata/decorate/errors/index.ts @@ -0,0 +1,58 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Text, u8 } from '@pezkuwi/types-codec'; +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { DispatchErrorModule, DispatchErrorModuleU8, DispatchErrorModuleU8a, MetadataLatest, SiField, SiVariant } from '../../../interfaces/index.js'; +import type { PortableRegistry } from '../../../metadata/index.js'; +import type { Errors, IsError } from '../types.js'; + +import { isCodec, isU8a, lazyMethod, objectSpread, stringCamelCase } from '@pezkuwi/util'; + +import { lazyVariants } from '../../../create/lazy.js'; +import { objectNameToString } from '../util.js'; + +interface ItemMeta { + args: string[]; + name: Text; + fields: SiField[]; + index: u8; + docs: Text[]; +} + +export function variantToMeta (lookup: PortableRegistry, variant: SiVariant): ItemMeta { + return objectSpread( + { args: variant.fields.map(({ type }) => lookup.getTypeDef(type).type) }, + variant + ); +} + +/** @internal */ +export function decorateErrors (registry: Registry, { lookup, pallets }: MetadataLatest, version: number): Errors { + const result: Errors = {}; + + for (let i = 0, count = pallets.length; i < count; i++) { + const { errors, index, name } = pallets[i]; + + if (errors.isSome) { + const sectionIndex = version >= 12 ? index.toNumber() : i; + + lazyMethod(result, stringCamelCase(name), () => + lazyVariants(lookup, errors.unwrap(), objectNameToString, (variant: SiVariant): IsError => ({ + // We sprinkle in isCodec & isU8a to ensure we are dealing with the correct objects + is: (errorMod: DispatchErrorModule | DispatchErrorModuleU8 | DispatchErrorModuleU8a) => + isCodec(errorMod) && + isCodec(errorMod.index) && + errorMod.index.eq(sectionIndex) && ( + isU8a(errorMod.error) + ? errorMod.error[0] === variant.index.toNumber() + : isCodec(errorMod.error) && errorMod.error.eq(variant.index) + ), + meta: registry.createTypeUnsafe('ErrorMetadataLatest', [variantToMeta(lookup, variant)]) + })) + ); + } + } + + return result; +} diff --git a/packages/types/src/metadata/decorate/events/index.spec.ts b/packages/types/src/metadata/decorate/events/index.spec.ts new file mode 100644 index 0000000..34f9eb2 --- /dev/null +++ b/packages/types/src/metadata/decorate/events/index.spec.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { decorateEvents } from '../index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, rpcMetadata); + +registry.setMetadata(metadata); + +const events = decorateEvents(registry, metadata.asLatest, metadata.version); + +describe('decorateEvents', (): void => { + it('should return known errors', (): void => { + expect(events['balances']['Transfer']).toBeDefined(); + expect(events['system']['CodeUpdated']).toBeDefined(); + }); + + it('has the correct metadata for known errors', (): void => { + expect( + events['staking']['Rewarded'].meta.toJSON() + ).toEqual({ + args: [ + 'AccountId32', + '{"_enum":{"Staked":"Null","Stash":"Null","Controller":"Null","Account":"AccountId32","None":"Null"}}', + 'u128' + ], + docs: [ + 'The nominator has been rewarded by this amount to this destination.' + ], + fields: [ + { docs: [], name: 'stash', type: 0, typeName: 'T::AccountId' }, + { docs: [], name: 'dest', type: 48, typeName: 'RewardDestination' }, + { docs: [], name: 'amount', type: 6, typeName: 'BalanceOf' } + ], + index: 1, + name: 'Rewarded' + }); + }); + + it('should check against a specific error', (): void => { + expect( + events['system']['ExtrinsicSuccess'].is(registry.createType('Event', { index: [0, 0] })) + ).toBe(true); + }); +}); diff --git a/packages/types/src/metadata/decorate/events/index.ts b/packages/types/src/metadata/decorate/events/index.ts new file mode 100644 index 0000000..58b9db5 --- /dev/null +++ b/packages/types/src/metadata/decorate/events/index.ts @@ -0,0 +1,42 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyTuple, Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, PezpalletMetadataLatest, SiVariant } from '../../../interfaces/index.js'; +import type { IEvent, IEventLike } from '../../../types/index.js'; +import type { Events, IsEvent } from '../types.js'; + +import { isCodec, isU8a, lazyMethod, stringCamelCase } from '@pezkuwi/util'; + +import { lazyVariants } from '../../../create/lazy.js'; +import { variantToMeta } from '../errors/index.js'; +import { objectNameToString } from '../util.js'; + +export function filterEventsSome ({ events }: PezpalletMetadataLatest): boolean { + return events.isSome; +} + +/** @internal */ +export function decorateEvents (registry: Registry, { lookup, pallets }: MetadataLatest, version: number): Events { + const result: Events = {}; + const filtered = pallets.filter(filterEventsSome); + + for (let i = 0, count = filtered.length; i < count; i++) { + const { events, index, name } = filtered[i]; + const sectionIndex = version >= 12 ? index.toNumber() : i; + + lazyMethod(result, stringCamelCase(name), () => + lazyVariants(lookup, events.unwrap(), objectNameToString, (variant: SiVariant): IsEvent => ({ + // We sprinkle in isCodec & isU8a to ensure we are dealing with the correct objects + is: (eventRecord: IEventLike): eventRecord is IEvent => + isCodec(eventRecord) && + isU8a(eventRecord.index) && + sectionIndex === eventRecord.index[0] && + variant.index.eq(eventRecord.index[1]), + meta: registry.createTypeUnsafe('EventMetadataLatest', [variantToMeta(lookup, variant)]) + })) + ); + } + + return result; +} diff --git a/packages/types/src/metadata/decorate/extrinsics/createUnchecked.ts b/packages/types/src/metadata/decorate/extrinsics/createUnchecked.ts new file mode 100644 index 0000000..727dcb2 --- /dev/null +++ b/packages/types/src/metadata/decorate/extrinsics/createUnchecked.ts @@ -0,0 +1,38 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, AnyTuple, Registry } from '@pezkuwi/types-codec/types'; +import type { Call, FunctionMetadataLatest } from '../../../interfaces/index.js'; +import type { CallFunction, IMethod } from '../../../types/index.js'; + +import { stringCamelCase } from '@pezkuwi/util'; + +function isTx (tx: IMethod, callIndex: Uint8Array): tx is IMethod { + return tx.callIndex[0] === callIndex[0] && tx.callIndex[1] === callIndex[1]; +} + +/** @internal */ +export function createUnchecked (registry: Registry, section: string, callIndex: Uint8Array, callMetadata: FunctionMetadataLatest): CallFunction { + const expectedArgs = callMetadata.fields; + const funcName = stringCamelCase(callMetadata.name); + + const extrinsicFn = (...args: unknown[]): Call => { + if (expectedArgs.length !== args.length) { + throw new Error(`Extrinsic ${section}.${funcName} expects ${expectedArgs.length} arguments, got ${args.length}.`); + } + + return registry.createTypeUnsafe('Call', [{ args, callIndex }, callMetadata]); + }; + + extrinsicFn.is = (tx: IMethod): tx is IMethod => + isTx(tx, callIndex); + + extrinsicFn.callIndex = callIndex; + extrinsicFn.meta = callMetadata; + extrinsicFn.method = funcName; + extrinsicFn.section = section; + extrinsicFn.toJSON = (): AnyJson => + callMetadata.toJSON(); + + return extrinsicFn as unknown as CallFunction; +} diff --git a/packages/types/src/metadata/decorate/extrinsics/index.spec.ts b/packages/types/src/metadata/decorate/extrinsics/index.spec.ts new file mode 100644 index 0000000..3c3fa7b --- /dev/null +++ b/packages/types/src/metadata/decorate/extrinsics/index.spec.ts @@ -0,0 +1,90 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import metadataStatic from '@pezkuwi/types-support/metadata/v13/bizinikiwi-hex'; +import { BN } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { decorateExtrinsics } from './index.js'; + +const keyring = createTestPairs({ type: 'ed25519' }, false); +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, metadataStatic); + +registry.setMetadata(metadata); +registry.register({ Address: 'IndicesLookupSource', LookupSource: 'IndicesLookupSource' }); + +const extrinsics = decorateExtrinsics(registry, metadata.asLatest, metadata.version); + +describe('extrinsics', (): void => { + it('encodes an actual transfer (actual data)', (): void => { + expect( + registry.createType('Extrinsic', + extrinsics['balances']['transfer'](keyring.bob.publicKey, 6969) + ).sign(keyring.alice, { + blockHash: '0xec7afaf1cca720ce88c1d1b689d81f0583cc15a97d621cf046dd9abf605ef22f', + genesisHash: '0xdcd1346701ca8396496e52aa2785b1748deb6db09551b72159dcb3e08991025b', + nonce: 0, + runtimeVersion: { + apis: [], + authoringVersion: new BN(123), + implName: 'test', + implVersion: new BN(123), + specName: 'test', + specVersion: new BN(123), + transactionVersion: new BN(123) + } + }).toHex() + ).toEqual( + '0x' + + '2d02' + // length + '84' + // signed flag + 'ffd172a74cda4c865912c32ba0a80a57ae69abae410e5ccb59dee84e2f4432db4f' + // who + '00' + // ed25519 + '4634f7b973084f983ef48e2afbd72a990f7d4dd9d86c39e645cb34d9a45466b6' + // sig1 + '263f0f2020363a6475f91e323a8b1bd43dedd97e78ec3c5d5b5197466305400e' + // sig2 + '000000' + // nonce, era, tip + '0600' + // balances.transferAllowDeath + 'ffd7568e5f0a7eda67a82691ff379ac4bba4f9c9b859fe779b5d46363b61ad2db9' + // to + 'e56c' // value + ); + }); +}); + +describe('decorateExtrinsics', (): void => { + it('should throw if an incorrect number of args is supplied', (): void => { + expect(() => extrinsics['balances']['setBalance']()).toThrow(/expects 3 arguments/); + }); + + it('should return a value if the storage function does not expect an argument', (): void => { + expect(() => extrinsics['balances']['setBalance']('5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF', 2, 3)).not.toThrow(); + }); + + it('should return properly-encoded transactions', (): void => { + expect( + registry.createType('Extrinsic', extrinsics['timestamp']['set'](32)).toU8a() + ).toEqual( + new Uint8Array([ + // length (encoded) + 4 << 2, + // version, no signature + 4, + // index + 3, 0, + // values, Compact + 32 << 2 + ]) + ); + }); + + it('has working .is', (): void => { + const tx = extrinsics['balances']['setBalance']('5C62W7ELLAAfix9LYrcx5smtcffbhvThkM5x7xfMeYXCtGwF', 2, 3); + + expect(extrinsics['balances']['setBalance'].is(tx)).toBe(true); + expect(extrinsics['balances']['transfer'].is(tx)).toBe(false); + }); +}); diff --git a/packages/types/src/metadata/decorate/extrinsics/index.ts b/packages/types/src/metadata/decorate/extrinsics/index.ts new file mode 100644 index 0000000..80cb187 --- /dev/null +++ b/packages/types/src/metadata/decorate/extrinsics/index.ts @@ -0,0 +1,66 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, PezpalletMetadataLatest, SiVariant } from '../../../interfaces/index.js'; +import type { PortableRegistry } from '../../../metadata/index.js'; +import type { CallFunction } from '../../../types/index.js'; +import type { Extrinsics } from '../types.js'; + +import { lazyMethod, objectSpread, stringCamelCase } from '@pezkuwi/util'; + +import { lazyVariants } from '../../../create/lazy.js'; +import { getSiName } from '../../util/index.js'; +import { objectNameToCamel } from '../util.js'; +import { createUnchecked } from './createUnchecked.js'; + +export function filterCallsSome ({ calls }: PezpalletMetadataLatest): boolean { + return calls.isSome; +} + +export function createCallFunction (registry: Registry, lookup: PortableRegistry, variant: SiVariant, sectionName: string, sectionIndex: number): CallFunction { + const { fields, index } = variant; + const count = fields.length; + const args = new Array>(count); + + for (let i = 0; i < count; i++) { + const { name, type, typeName } = fields[i]; + + args[i] = objectSpread( + { + name: stringCamelCase(name.unwrapOr(`param${i}`)), + type: getSiName(lookup, type) + }, + typeName.isSome + ? { typeName: typeName.unwrap() } + : null + ); + } + + return createUnchecked( + registry, + sectionName, + new Uint8Array([sectionIndex, index.toNumber()]), + registry.createTypeUnsafe('FunctionMetadataLatest', [objectSpread({ args }, variant)]) + ); +} + +/** @internal */ +export function decorateExtrinsics (registry: Registry, { lookup, pallets }: MetadataLatest, version: number): Extrinsics { + const result: Extrinsics = {}; + const filtered = pallets.filter(filterCallsSome); + + for (let i = 0, count = filtered.length; i < count; i++) { + const { calls, index, name } = filtered[i]; + const sectionName = stringCamelCase(name); + const sectionIndex = version >= 12 ? index.toNumber() : i; + + lazyMethod(result, sectionName, () => + lazyVariants(lookup, calls.unwrap(), objectNameToCamel, (variant: SiVariant) => + createCallFunction(registry, lookup, variant, sectionName, sectionIndex) + ) + ); + } + + return result; +} diff --git a/packages/types/src/metadata/decorate/index.spec.ts b/packages/types/src/metadata/decorate/index.spec.ts new file mode 100644 index 0000000..53aa47b --- /dev/null +++ b/packages/types/src/metadata/decorate/index.spec.ts @@ -0,0 +1,57 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { u32 } from '@pezkuwi/types-codec'; +import json from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { u8aToHex } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { Metadata } from '../Metadata.js'; +import { decorateConstants, decorateExtrinsics, decorateStorage } from './index.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, json); + +registry.setMetadata(metadata); + +describe('Decorated', () => { + it('should correctly get Alice\'s nonce storage key (u8a)', (): void => { + const query = decorateStorage(registry, metadata.asLatest, metadata.version); + + expect( + u8aToHex( + query['system']['account']('5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY') + ) + ).toEqual( + '0x410126aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + ); + }); + + it('should return properly-encoded transactions', (): void => { + const tx = decorateExtrinsics(registry, metadata.asLatest, metadata.version); + + expect( + registry.createType('Extrinsic', tx['timestamp']['set'](63)).toU8a() + ).toEqual( + new Uint8Array([ + // length (encoded) + 4 << 2, + // version, no signature + 4, + // index + 3, 0, + // values, Compact + 63 << 2 + ]) + ); + }); + + it('should return constants with the correct type and value', (): void => { + const consts = decorateConstants(registry, metadata.asLatest, metadata.version); + + expect(consts['democracy']['cooloffPeriod']).toBeInstanceOf(u32); // BlockNumber + expect(consts['democracy']['cooloffPeriod'].toHex()).toEqual('0x000c4e00'); + }); +}); diff --git a/packages/types/src/metadata/decorate/index.ts b/packages/types/src/metadata/decorate/index.ts new file mode 100644 index 0000000..bff8c58 --- /dev/null +++ b/packages/types/src/metadata/decorate/index.ts @@ -0,0 +1,35 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { DecoratedMeta } from './types.js'; + +import { Metadata } from '../Metadata.js'; +import { decorateConstants } from './constants/index.js'; +import { decorateErrors } from './errors/index.js'; +import { decorateEvents, filterEventsSome } from './events/index.js'; +import { decorateExtrinsics, filterCallsSome } from './extrinsics/index.js'; +import { decorateStorage } from './storage/index.js'; + +/** + * Expands the metadata by decoration into consts, query and tx sections + */ +export function expandMetadata (registry: Registry, metadata: Metadata): DecoratedMeta { + if (!(metadata instanceof Metadata)) { + throw new Error('You need to pass a valid Metadata instance to Decorated'); + } + + const latest = metadata.asLatest; + const version = metadata.version; + + return { + consts: decorateConstants(registry, latest, version), + errors: decorateErrors(registry, latest, version), + events: decorateEvents(registry, latest, version), + query: decorateStorage(registry, latest, version), + registry, + tx: decorateExtrinsics(registry, latest, version) + }; +} + +export { decorateConstants, decorateErrors, decorateEvents, decorateExtrinsics, decorateStorage, filterCallsSome, filterEventsSome }; diff --git a/packages/types/src/metadata/decorate/storage/bizinikiwi.spec.ts b/packages/types/src/metadata/decorate/storage/bizinikiwi.spec.ts new file mode 100644 index 0000000..e1846e6 --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/bizinikiwi.spec.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { compactAddLength, u8aToU8a } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { bizinikiwi } from './bizinikiwi.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, metadataStatic); + +registry.setMetadata(metadata); + +// console.log(JSON.stringify(registry.lookup.types)); + +describe('bizinikiwi', (): void => { + const code = bizinikiwi['code'](registry); + + it('creates a well-known :code key', (): void => { + expect( + code() + ).toEqual( + compactAddLength(u8aToU8a(':code')) + ); + }); + + it('has the correct metadata', (): void => { + expect( + code.meta.type.isPlain + ).toEqual(true); + }); +}); diff --git a/packages/types/src/metadata/decorate/storage/bizinikiwi.ts b/packages/types/src/metadata/decorate/storage/bizinikiwi.ts new file mode 100644 index 0000000..f7dacfa --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/bizinikiwi.ts @@ -0,0 +1,56 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { StorageEntry } from '../../../primitive/types.js'; +import type { ManualMetadata } from './util.js'; + +import { createRuntimeFunction } from './util.js'; + +type Creator = (registry: Registry) => StorageEntry; + +const prefix = 'Bizinikiwi'; +const section = 'bizinikiwi'; + +function createBizinikiwiFn (method: string, key: string, meta: ManualMetadata): Creator { + return createRuntimeFunction({ method, prefix, section }, key, meta); +} + +export const bizinikiwi: Record = { + changesTrieConfig: createBizinikiwiFn('changesTrieConfig', ':changes_trie', { + docs: 'Changes trie configuration is stored under this key.', + type: 'u32' + }), + childStorageKeyPrefix: createBizinikiwiFn('childStorageKeyPrefix', ':child_storage:', { + docs: 'Prefix of child storage keys.', + type: 'u32' + }), + code: createBizinikiwiFn('code', ':code', { + docs: 'Wasm code of the runtime.', + type: 'Bytes' + }), + defaultChildStorageKeyPrefix: createBizinikiwiFn('defaultChildStorageKeyPrefix', ':child_storage:default:', { + docs: 'Prefix of the default child storage keys in the top trie.', + type: 'u32' + }), + extrinsicIndex: createBizinikiwiFn('extrinsicIndex', ':extrinsic_index', { + docs: 'Current extrinsic index (u32) is stored under this key.', + type: 'u32' + }), + heapPages: createBizinikiwiFn('heapPages', ':heappages', { + docs: 'Number of wasm linear memory pages required for execution of the runtime.', + type: 'u64' + }), + intrablockEntropy: createBizinikiwiFn('intrablockEntropy', ':intrablock_entropy', { + docs: 'Current intra-block entropy (a universally unique `[u8; 32]` value) is stored here.', + type: '[u8; 32]' + }), + storageVersionStorageKeyPostfix: createBizinikiwiFn('storageVersionStorageKeyPostfix', ':__STORAGE_VERSION__:', { + docs: 'The storage key postfix that is used to store the [`StorageVersion`] per pallet.', + type: 'u16' + }), + transactionLevelKey: createBizinikiwiFn('transactionLevelKey', ':transaction_level:', { + docs: 'The key that holds the current number of active layers.', + type: 'u32' + }) +}; diff --git a/packages/types/src/metadata/decorate/storage/createFunction.spec.ts b/packages/types/src/metadata/decorate/storage/createFunction.spec.ts new file mode 100644 index 0000000..cbdf7fd --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/createFunction.spec.ts @@ -0,0 +1,179 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { u8aToHex } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { createFunction } from './createFunction.js'; + +describe('createFunction', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, { + magicNumber: 1635018093, + metadata: { + v14: { + lookup: { + types: [ + { + id: 0, + type: { + def: { HistoricMetaCompat: 'AccountId' } + } + }, + { + id: 1, + type: { + def: { HistoricMetaCompat: 'Bytes' } + } + }, + { + id: 2, + type: { + def: { HistoricMetaCompat: 'SessionKey5' } + } + }, + { + id: 3, + type: { + def: { Tuple: [1, 0] } + } + }, + { + id: 4, + type: { + def: { Tuple: [1, 0, 0] } + } + } + ] + } + } + } + }); + + registry.setMetadata(metadata); + + it('allows creating a known 1 Map key', (): void => { + const storageFn = createFunction(registry, { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + meta: { + type: { + asMap: { + hashers: [ + registry.createType('StorageHasher', 'Blake2_128Concat') + ], + key: 0, + value: 4 + }, + isMap: true + } + } as any, + method: 'Account', + prefix: 'System', + section: 'system' + }, {}); + + expect( + u8aToHex( + storageFn('DB2mp5nNhbFN86J9hxoAog8JALMhDXgwvWMxrRMLNUFMEY4') + ) + ).toEqual( + '0x' + + '4101' + + '26aa394eea5630e07c48ae0c9558cef7' + // twox 128 + 'b99d880ec681799c0cf30e8886371da9' + // twox 128 + '79c598d130209ab0dea15637a5b16be7' + // blake 128 + '1a7938fede32e1275281b3eee5708706d88444a6dc898a4dec463f1eb298463f' // AccountId + ); + expect( + storageFn.iterKey?.meta.type.asPlain.toNumber() + ).toEqual(0); + }); + + it('allows creating of known 2 Map keys (with Bytes)', (): void => { + const storageFn = createFunction(registry, { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + meta: { + type: { + asMap: { + hashers: [ + registry.createType('StorageHasher', 'Twox64Concat'), + registry.createType('StorageHasher', 'Blake2_256') + ], + key: 3, + value: 4 + }, + isMap: true + } + } as any, + method: 'NextKeys', + prefix: 'Session', + section: 'session' + }, {}); + + expect( + u8aToHex( + storageFn( + // hex, without length prefix + '0x3a73657373696f6e3a6b657973', + // address + 'DB2mp5nNhbFN86J9hxoAog8JALMhDXgwvWMxrRMLNUFMEY4' + ) + ) + ).toEqual( + '0x' + + '5901' + // length + 'cec5070d609dd3497f72bde07fc96ba0' + // twox 128 + '4c014e6bf8b8c2c011e7290b85696bb3' + // twox 128 + '9fe6329cc0b39e09' + // twox 64 + '343a73657373696f6e3a6b657973' + // twox 64 (concat, with length) + '5eb36b60f0fc4b9177116eba3e5cd57fea6289a57f5f5b9ffeb0475c66e7a521' // blake2 + ); + }); + + it('allows creating of 3 Map keys (with Bytes)', (): void => { + const storageFn = createFunction(registry, { + // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment + meta: { + type: { + asMap: { + hashers: [ + registry.createType('StorageHasher', 'Twox64Concat'), + registry.createType('StorageHasher', 'Blake2_256'), + registry.createType('StorageHasher', 'Blake2_256') + ], + key: 4, + value: 2 + }, + isMap: true + } + } as any, + method: 'NextKeys', + prefix: 'Session', + section: 'session' + }, {}); + + expect( + u8aToHex( + storageFn( + // hex, without length prefix + '0x3a73657373696f6e3a6b657973', + // addresses + 'DB2mp5nNhbFN86J9hxoAog8JALMhDXgwvWMxrRMLNUFMEY4', + 'DB2mp5nNhbFN86J9hxoAog8JALMhDXgwvWMxrRMLNUFMEY4' + ) + ) + ).toEqual( + '0x' + + 'd901' + // length + 'cec5070d609dd3497f72bde07fc96ba0' + // twox 128 + '4c014e6bf8b8c2c011e7290b85696bb3' + // twox 128 + '9fe6329cc0b39e09' + // twox 64 + '343a73657373696f6e3a6b657973' + // twox 64 (concat, with length) + '5eb36b60f0fc4b9177116eba3e5cd57fea6289a57f5f5b9ffeb0475c66e7a521' + // blake2 + '5eb36b60f0fc4b9177116eba3e5cd57fea6289a57f5f5b9ffeb0475c66e7a521' // blake2 + ); + }); +}); diff --git a/packages/types/src/metadata/decorate/storage/createFunction.ts b/packages/types/src/metadata/decorate/storage/createFunction.ts new file mode 100644 index 0000000..d1dcc47 --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/createFunction.ts @@ -0,0 +1,258 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ICompact, Inspect, INumber } from '@pezkuwi/types-codec/types'; +import type { StorageEntryMetadataLatest, StorageHasher } from '../../../interfaces/metadata/index.js'; +import type { StorageKey } from '../../../primitive/index.js'; +import type { StorageEntry, StorageEntryIterator } from '../../../primitive/types.js'; +import type { Registry } from '../../../types/index.js'; + +import { Raw } from '@pezkuwi/types-codec'; +import { compactAddLength, compactStripLength, isUndefined, objectSpread, stringCamelCase, u8aConcat, u8aToU8a } from '@pezkuwi/util'; +import { xxhashAsU8a } from '@pezkuwi/util-crypto'; + +import { getSiName } from '../../util/index.js'; +import { getHasher } from './getHasher.js'; + +export interface CreateItemOptions { + key?: Uint8Array | string; + skipHashing?: boolean; +} + +export interface CreateItemBase { + method: string; + prefix: string; +} + +export interface CreateItemFn extends CreateItemBase { + meta: StorageEntryMetadataLatest; + section: string; +} + +interface IterFn { + (): Raw; + meta: StorageEntryMetadataLatest; +} + +interface RawArgs { + args: unknown[]; + hashers: StorageHasher[]; + keys: ICompact[]; +} + +export const NO_RAW_ARGS: RawArgs = { + args: [], + hashers: [], + keys: [] +}; + +/** @internal */ +function filterDefined (a: unknown): boolean { + return !isUndefined(a); +} + +/** @internal */ +function assertArgs ({ method, section }: CreateItemFn, { args, keys }: RawArgs): void { + if (!Array.isArray(args)) { + throw new Error(`Call to ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs ${keys.length} arguments`); + } else if (args.filter(filterDefined).length !== keys.length) { + throw new Error(`Call to ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs ${keys.length} arguments, found [${args.join(', ')}]`); + } +} + +/** @internal */ +export function createKeyRawParts (registry: Registry, itemFn: CreateItemBase, { args, hashers, keys }: RawArgs): [Uint8Array[], Uint8Array[]] { + const count = keys.length; + const extra = new Array(count); + + for (let i = 0; i < count; i++) { + extra[i] = getHasher(hashers[i])( + registry.createTypeUnsafe(registry.createLookupType(keys[i]), [args[i]]).toU8a() + ); + } + + return [ + [ + xxhashAsU8a(itemFn.prefix, 128), + xxhashAsU8a(itemFn.method, 128) + ], + extra + ]; +} + +/** @internal */ +export function createKeyInspect (registry: Registry, itemFn: CreateItemFn, args: RawArgs): Inspect { + assertArgs(itemFn, args); + + const { meta } = itemFn; + const [prefix, extra] = createKeyRawParts(registry, itemFn, args); + + let types: string[] = []; + + if (meta.type.isMap) { + const { hashers, key } = meta.type.asMap; + + types = hashers.length === 1 + ? [`${hashers[0].type}(${getSiName(registry.lookup, key)})`] + : registry.lookup.getSiType(key).def.asTuple.map((k, i) => + `${hashers[i].type}(${getSiName(registry.lookup, k)})` + ); + } + + const names = ['module', 'method'].concat(...args.args.map((_, i) => types[i])); + + return { + inner: prefix + .concat(...extra) + .map((v, i) => ({ name: names[i], outer: [v] })) + }; +} + +/** @internal */ +export function createKeyRaw (registry: Registry, itemFn: CreateItemBase, args: RawArgs): Uint8Array { + const [prefix, extra] = createKeyRawParts(registry, itemFn, args); + + return u8aConcat( + ...prefix, + ...extra + ); +} + +/** @internal */ +function createKey (registry: Registry, itemFn: CreateItemFn, args: RawArgs): Uint8Array { + assertArgs(itemFn, args); + + // always add the length prefix (underlying it is Bytes) + return compactAddLength( + createKeyRaw(registry, itemFn, args) + ); +} + +/** @internal */ +function createStorageInspect (registry: Registry, itemFn: CreateItemFn, options: CreateItemOptions): (...args: unknown[]) => Inspect { + const { meta: { type } } = itemFn; + + return (...args: unknown[]): Inspect => { + if (type.isPlain) { + return options.skipHashing + ? { inner: [], name: 'wellKnown', outer: [u8aToU8a(options.key)] } + : createKeyInspect(registry, itemFn, NO_RAW_ARGS); + } + + const { hashers, key } = type.asMap; + + return hashers.length === 1 + ? createKeyInspect(registry, itemFn, { args, hashers, keys: [key] }) + : createKeyInspect(registry, itemFn, { args, hashers, keys: registry.lookup.getSiType(key).def.asTuple }); + }; +} + +/** @internal */ +function createStorageFn (registry: Registry, itemFn: CreateItemFn, options: CreateItemOptions): (...args: unknown[]) => Uint8Array { + const { meta: { type } } = itemFn; + let cacheKey: Uint8Array | null = null; + + // Can only have zero or one argument: + // - storage.system.account(address) + // - storage.timestamp.blockPeriod() + // For higher-map queries the params are passed in as an tuple, [key1, key2] + return (...args: unknown[]): Uint8Array => { + if (type.isPlain) { + if (!cacheKey) { + cacheKey = options.skipHashing + ? compactAddLength(u8aToU8a(options.key)) + : createKey(registry, itemFn, NO_RAW_ARGS); + } + + return cacheKey; + } + + const { hashers, key } = type.asMap; + + return hashers.length === 1 + ? createKey(registry, itemFn, { args, hashers, keys: [key] }) + : createKey(registry, itemFn, { args, hashers, keys: registry.lookup.getSiType(key).def.asTuple }); + }; +} + +/** @internal */ +function createWithMeta (registry: Registry, itemFn: CreateItemFn, options: CreateItemOptions): StorageEntry { + const { meta, method, prefix, section } = itemFn; + const storageFn = createStorageFn(registry, itemFn, options) as StorageEntry; + + storageFn.inspect = createStorageInspect(registry, itemFn, options); + storageFn.meta = meta; + storageFn.method = stringCamelCase(method); + storageFn.prefix = prefix; + storageFn.section = section; + + // explicitly add the actual method in the toJSON, this gets used to determine caching and without it + // instances (e.g. collective) will not work since it is only matched on param meta + storageFn.toJSON = (): any => objectSpread({ storage: { method, prefix, section } }, meta.toJSON()); + + return storageFn; +} + +/** @internal */ +function extendHeadMeta (registry: Registry, { meta: { docs, name, type }, section }: CreateItemFn, { method }: StorageEntry, iterFn: (...args: unknown[]) => Raw): StorageEntryIterator { + // metadata with a fallback value using the type of the key, the normal + // meta fallback only applies to actual entry values, create one for head + const meta = registry.createTypeUnsafe('StorageEntryMetadataLatest', [{ + docs, + fallback: registry.createTypeUnsafe('Bytes', []), + modifier: registry.createTypeUnsafe('StorageEntryModifierLatest', [1]), // required + name, + type: registry.createTypeUnsafe('StorageEntryTypeLatest', [type.asMap.key, 0]) + }]); + + (iterFn as IterFn).meta = meta; + + const fn = (...args: unknown[]) => + registry.createTypeUnsafe('StorageKey', [iterFn(...args), { method, section }]); + + fn.meta = meta; + + return fn; +} + +/** @internal */ +function extendPrefixedMap (registry: Registry, itemFn: CreateItemFn, storageFn: StorageEntry): StorageEntry { + const { meta: { type }, method, section } = itemFn; + + storageFn.iterKey = extendHeadMeta(registry, itemFn, storageFn, (...args: unknown[]): Raw => { + if (args.length && (type.isPlain || (args.length >= type.asMap.hashers.length))) { + throw new Error(`Iteration of ${stringCamelCase(section || 'unknown')}.${stringCamelCase(method || 'unknown')} needs arguments to be at least one less than the full arguments, found [${args.join(', ')}]`); + } + + if (args.length) { + if (type.isMap) { + const { hashers, key } = type.asMap; + const keysVec = hashers.length === 1 + ? [key] + : registry.lookup.getSiType(key).def.asTuple; + + return new Raw(registry, createKeyRaw(registry, itemFn, { args, hashers: hashers.slice(0, args.length), keys: keysVec.slice(0, args.length) })); + } + } + + return new Raw(registry, createKeyRaw(registry, itemFn, NO_RAW_ARGS)); + }); + + return storageFn; +} + +/** @internal */ +export function createFunction (registry: Registry, itemFn: CreateItemFn, options: CreateItemOptions): StorageEntry { + const { meta: { type } } = itemFn; + const storageFn = createWithMeta(registry, itemFn, options); + + if (type.isMap) { + extendPrefixedMap(registry, itemFn, storageFn); + } + + storageFn.keyPrefix = (...args: unknown[]): Uint8Array => + (storageFn.iterKey && storageFn.iterKey(...args)) || + compactStripLength(storageFn())[1]; + + return storageFn; +} diff --git a/packages/types/src/metadata/decorate/storage/getHasher.spec.ts b/packages/types/src/metadata/decorate/storage/getHasher.spec.ts new file mode 100644 index 0000000..527c8e1 --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/getHasher.spec.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { stringToU8a } from '@pezkuwi/util'; +import { xxhashAsU8a } from '@pezkuwi/util-crypto'; + +import { TypeRegistry } from '../../../create/index.js'; +import { getHasher } from './getHasher.js'; + +describe('getHasher', (): void => { + const registry = new TypeRegistry(); + + describe('Twox64Concat', (): void => { + it('matches the foo test from Rust', (): void => { + const hasher = getHasher(registry.createType('StorageHasher', 'Twox64Concat')); + const hash = hasher('foo'); + const xxhash = xxhashAsU8a('foo', 128); + + expect([ + hash.subarray(0, 8), + hash.subarray(8) + ]).toEqual([ + xxhash.subarray(0, 8), + stringToU8a('foo') + ]); + }); + }); +}); diff --git a/packages/types/src/metadata/decorate/storage/getHasher.ts b/packages/types/src/metadata/decorate/storage/getHasher.ts new file mode 100644 index 0000000..7d4841b --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/getHasher.ts @@ -0,0 +1,36 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { StorageHasher } from '../../../interfaces/index.js'; +import type { AllHashers } from '../../../interfaces/metadata/definitions.js'; + +import { u8aConcat, u8aToU8a } from '@pezkuwi/util'; +import { blake2AsU8a, xxhashAsU8a } from '@pezkuwi/util-crypto'; + +export type HasherInput = string | Buffer | Uint8Array; + +export type HasherFunction = (data: HasherInput) => Uint8Array; + +const DEFAULT_FN = (data: HasherInput): Uint8Array => xxhashAsU8a(data, 128); + +const HASHERS: Record = { + Blake2_128: (data: HasherInput) => // eslint-disable-line camelcase + blake2AsU8a(data, 128), + Blake2_128Concat: (data: HasherInput) => // eslint-disable-line camelcase + u8aConcat(blake2AsU8a(data, 128), u8aToU8a(data)), + Blake2_256: (data: HasherInput) => // eslint-disable-line camelcase + blake2AsU8a(data, 256), + Identity: (data: HasherInput) => + u8aToU8a(data), + Twox128: (data: HasherInput) => + xxhashAsU8a(data, 128), + Twox256: (data: HasherInput) => + xxhashAsU8a(data, 256), + Twox64Concat: (data: HasherInput) => + u8aConcat(xxhashAsU8a(data, 64), u8aToU8a(data)) +}; + +/** @internal */ +export function getHasher (hasher: StorageHasher): HasherFunction { + return HASHERS[hasher.type as 'Identity'] || DEFAULT_FN; +} diff --git a/packages/types/src/metadata/decorate/storage/getStorage.spec.ts b/packages/types/src/metadata/decorate/storage/getStorage.spec.ts new file mode 100644 index 0000000..65ac93d --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/getStorage.spec.ts @@ -0,0 +1,31 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import metadataStatic from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { compactAddLength, u8aToU8a } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../Metadata.js'; +import { getStorage } from './getStorage.js'; + +const registry = new TypeRegistry(); +const metadata = new Metadata(registry, metadataStatic); + +registry.setMetadata(metadata); + +describe('getSorage', (): void => { + const storage = getStorage(registry); + + it('should return well known keys', (): void => { + expect(typeof storage['bizinikiwi']).toBe('object'); + + expect(storage['bizinikiwi']['code']()).toEqual(compactAddLength(u8aToU8a(':code'))); + + expect(storage['bizinikiwi']['changesTrieConfig']).toBeTruthy(); + expect(storage['bizinikiwi']['childStorageKeyPrefix']).toBeTruthy(); + expect(storage['bizinikiwi']['extrinsicIndex']).toBeTruthy(); + expect(storage['bizinikiwi']['heapPages']).toBeTruthy(); + }); +}); diff --git a/packages/types/src/metadata/decorate/storage/getStorage.ts b/packages/types/src/metadata/decorate/storage/getStorage.ts new file mode 100644 index 0000000..1e0a561 --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/getStorage.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { StorageEntry } from '../../../primitive/types.js'; +import type { Storage } from '../types.js'; + +import { bizinikiwi } from './bizinikiwi.js'; + +/** @internal */ +export function getStorage (registry: Registry): Storage { + const storage: Record = {}; + const entries = Object.entries(bizinikiwi); + + for (let e = 0, count = entries.length; e < count; e++) { + storage[entries[e][0]] = entries[e][1](registry); + } + + return { bizinikiwi: storage }; +} diff --git a/packages/types/src/metadata/decorate/storage/index.spec.ts b/packages/types/src/metadata/decorate/storage/index.spec.ts new file mode 100644 index 0000000..3216d1d --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/index.spec.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { createTestPairs } from '@pezkuwi/keyring/testingPairs'; +import rpcMetadata from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import { u8aToHex } from '@pezkuwi/util'; +import { xxhashAsHex } from '@pezkuwi/util-crypto'; + +import { TypeRegistry } from '../../../create/index.js'; +import { Metadata } from '../../index.js'; +import { decorateStorage } from '../index.js'; + +const keyring = createTestPairs({ type: 'ed25519' }); + +describe('decorateStorage', (): void => { + const registry = new TypeRegistry(); + const metadata = new Metadata(registry, rpcMetadata); + + registry.setMetadata(metadata); + + const query = decorateStorage(registry, metadata.asLatest, metadata.version); + + it('should throw if the storage function expects an argument', (): void => { + expect(() => query['balances']['account']()).toThrow('Call to balances.account needs 1 arguments, found []'); + }); + + it('should throw if the storage function expects multiple arguments', (): void => { + expect(() => query['staking']['erasStakers']([1])).toThrow('Call to staking.erasStakers needs 2 arguments, found [1]'); + }); + + it('should throw if the storage function expects tuple arguments', (): void => { + expect(() => query['staking']['erasStakers'](1)).toThrow('Call to staking.erasStakers needs 2 arguments, found [1]'); + }); + + it('should return a value if the storage function does not expect an argument', (): void => { + expect(() => query['timestamp']['now']()).not.toThrow(); + }); + + it('should return a value if the storage function has the correct arguments', (): void => { + expect(() => query['staking']['erasStakers'](1, keyring.alice.address)).not.toThrow(); + }); + + it('should return the correct length-prefixed storage key', (): void => { + expect( + u8aToHex(query['system']['account'](keyring.alice.address)) + ).toEqual( + '0x' + + '4101' + // length + '26aa394eea5630e07c48ae0c9558cef7' + // System + 'b99d880ec681799c0cf30e8886371da9' + // account + 'de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + ); + }); + + it('should decorate the palletVersion entry', (): void => { + expect( + u8aToHex(query['system']['palletVersion']()) + ).toEqual( + '0x' + + '80' + // length + '26aa394eea5630e07c48ae0c9558cef7' + // System + xxhashAsHex(':__STORAGE_VERSION__:', 128).substring(2) + ); + }); +}); diff --git a/packages/types/src/metadata/decorate/storage/index.ts b/packages/types/src/metadata/decorate/storage/index.ts new file mode 100644 index 0000000..4c3441a --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/index.ts @@ -0,0 +1,50 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, StorageEntryMetadataLatest } from '../../../interfaces/index.js'; +import type { Storage } from '../types.js'; + +import { lazyMethod, lazyMethods, stringCamelCase } from '@pezkuwi/util'; + +import { objectNameToCamel } from '../util.js'; +import { createFunction, createKeyRaw, NO_RAW_ARGS } from './createFunction.js'; +import { getStorage } from './getStorage.js'; +import { createRuntimeFunction } from './util.js'; + +const VERSION_NAME = 'palletVersion'; +const VERSION_KEY = ':__STORAGE_VERSION__:'; +const VERSION_DOCS = { docs: 'Returns the current pallet version from storage', type: 'u16' }; + +/** @internal */ +export function decorateStorage (registry: Registry, { pallets }: MetadataLatest, _metaVersion: number): Storage { + const result: Storage = getStorage(registry); + + for (let i = 0, count = pallets.length; i < count; i++) { + const { name, storage } = pallets[i]; + + if (storage.isSome) { + const section = stringCamelCase(name); + const { items, prefix: _prefix } = storage.unwrap(); + const prefix = _prefix.toString(); + + lazyMethod(result, section, () => + lazyMethods( + { + palletVersion: createRuntimeFunction( + { method: VERSION_NAME, prefix, section }, + createKeyRaw(registry, { method: VERSION_KEY, prefix: name.toString() }, NO_RAW_ARGS), + VERSION_DOCS + )(registry) + }, + items, + (meta: StorageEntryMetadataLatest) => + createFunction(registry, { meta, method: meta.name.toString(), prefix, section }, {}), + objectNameToCamel + ) + ); + } + } + + return result; +} diff --git a/packages/types/src/metadata/decorate/storage/util.ts b/packages/types/src/metadata/decorate/storage/util.ts new file mode 100644 index 0000000..d266d31 --- /dev/null +++ b/packages/types/src/metadata/decorate/storage/util.ts @@ -0,0 +1,101 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { PortableType } from '../../../interfaces/index.js'; +import type { StorageEntry } from '../../../primitive/types.js'; +import type { Registry } from '../../../types/index.js'; + +import { getTypeDef } from '@pezkuwi/types-create'; + +import { createFunction } from './createFunction.js'; + +export interface ManualMetadata { + docs: string; + type: string; +} + +interface ManualDefinition { + method: string; + prefix: string; + section: string; +} + +function findSiPrimitive (registry: Registry, type: string): PortableType | undefined { + const prim = type.toLowerCase(); + + return registry.lookup.types.find((t) => + ( + t.type.def.isPrimitive && + t.type.def.asPrimitive.toString().toLowerCase() === prim + ) || ( + t.type.def.isHistoricMetaCompat && + t.type.def.asHistoricMetaCompat.toString().toLowerCase() === prim + ) + ); +} + +function findSiType (registry: Registry, type: string): PortableType | undefined { + let portable = findSiPrimitive(registry, type); + + // some types are either Sequence or Arrays, cater for these + // specifically (these all come from the base bizinikiwi known keys) + if (!portable && (type === 'Bytes' || type.startsWith('[u8;'))) { + const u8 = findSiPrimitive(registry, 'u8'); + + if (u8) { + if (type === 'Bytes') { + portable = registry.lookup.types.find((t) => + ( + t.type.def.isSequence && + t.type.def.asSequence.type.eq(u8.id) + ) || ( + t.type.def.isHistoricMetaCompat && + t.type.def.asHistoricMetaCompat.eq(type) + ) + ); + } else { + const td = getTypeDef(type); + + portable = registry.lookup.types.find((t) => + ( + t.type.def.isArray && + t.type.def.asArray.eq({ + len: td.length, + type: u8.id + }) + ) || ( + t.type.def.isHistoricMetaCompat && + t.type.def.asHistoricMetaCompat.eq(type) + ) + ); + } + } + } + + if (!portable) { + // Not fatal, however if this happens the storage key using this + // type will not return valid values, rather it will most probably + // be decoded incorrectly + console.warn(`Unable to map ${type} to a lookup index`); + } + + return portable; +} + +// Small helper function to factorize code on this page. +/** @internal */ +export function createRuntimeFunction ({ method, prefix, section }: ManualDefinition, key: Uint8Array | string, { docs, type }: ManualMetadata): (registry: Registry) => StorageEntry { + return (registry: Registry): StorageEntry => + createFunction(registry, { + meta: registry.createTypeUnsafe('StorageEntryMetadataLatest', [{ + docs: registry.createTypeUnsafe('Vec', [[docs]]), + modifier: registry.createTypeUnsafe('StorageEntryModifierLatest', ['Required']), + name: registry.createTypeUnsafe('Text', [method]), + toJSON: (): any => key, + type: registry.createTypeUnsafe('StorageEntryTypeLatest', [{ Plain: findSiType(registry, type)?.id || 0 }]) + }]), + method, + prefix, + section + }, { key, skipHashing: true }); +} diff --git a/packages/types/src/metadata/decorate/types.ts b/packages/types/src/metadata/decorate/types.ts new file mode 100644 index 0000000..ceaad25 --- /dev/null +++ b/packages/types/src/metadata/decorate/types.ts @@ -0,0 +1,52 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyTuple, Codec, Registry } from '@pezkuwi/types-codec/types'; +import type { DispatchErrorModule, DispatchErrorModuleU8, DispatchErrorModuleU8a, ErrorMetadataLatest, EventMetadataLatest, PezpalletConstantMetadataLatest } from '../../interfaces/index.js'; +import type { StorageEntry } from '../../primitive/types.js'; +import type { CallFunction, IEvent, IEventLike } from '../../types/index.js'; + +export interface ConstantCodec extends Codec { + readonly meta: PezpalletConstantMetadataLatest; +} + +export interface IsError { + readonly meta: ErrorMetadataLatest; + + is: (moduleError: DispatchErrorModule | DispatchErrorModuleU8 | DispatchErrorModuleU8a) => boolean; +} + +export interface IsEvent { + readonly meta: EventMetadataLatest; + + is: (event: IEventLike) => event is IEvent; +} + +export type ModuleConstants = Record; + +export type ModuleErrors = Record; + +export type ModuleEvents = Record>; + +export type ModuleExtrinsics = Record; + +export type ModuleStorage = Record + +export type Constants = Record; + +export type Errors = Record; + +export type Events = Record; + +export type Extrinsics = Record + +export type Storage = Record; + +export interface DecoratedMeta { + readonly consts: Constants; + readonly errors: Errors; + readonly events: Events; + readonly query: Storage; + readonly registry: Registry; + readonly tx: Extrinsics +} diff --git a/packages/types/src/metadata/decorate/util.ts b/packages/types/src/metadata/decorate/util.ts new file mode 100644 index 0000000..0a3cc86 --- /dev/null +++ b/packages/types/src/metadata/decorate/util.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Text } from '@pezkuwi/types-codec'; + +import { stringCamelCase } from '@pezkuwi/util'; + +type Name = string | Text; + +interface Named { + name: Name; +} + +function convert (fn: (n: Name) => string): (n: Named) => string { + return ({ name }: Named) => fn(name); +} + +export const objectNameToCamel = /*#__PURE__*/ convert(stringCamelCase); + +export const objectNameToString = /*#__PURE__*/ convert((n) => n.toString()); diff --git a/packages/types/src/metadata/index.ts b/packages/types/src/metadata/index.ts new file mode 100644 index 0000000..44fbe94 --- /dev/null +++ b/packages/types/src/metadata/index.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { decorateConstants, decorateExtrinsics, decorateStorage, expandMetadata } from './decorate/index.js'; +export { Metadata } from './Metadata.js'; +export { PortableRegistry } from './PortableRegistry/index.js'; diff --git a/packages/types/src/metadata/types.ts b/packages/types/src/metadata/types.ts new file mode 100644 index 0000000..455a0dd --- /dev/null +++ b/packages/types/src/metadata/types.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Vec } from '@pezkuwi/types-codec'; +import type { Codec } from '../types/index.js'; + +export interface MetadataInterface extends Codec { + pallets: Vec; +} diff --git a/packages/types/src/metadata/util/extractTypes.ts b/packages/types/src/metadata/util/extractTypes.ts new file mode 100644 index 0000000..52b992b --- /dev/null +++ b/packages/types/src/metadata/util/extractTypes.ts @@ -0,0 +1,64 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { TypeDef } from '@pezkuwi/types-create/types'; + +import { getTypeDef, TypeDefInfo } from '@pezkuwi/types-create'; + +type Extracted = string | Extracted[]; + +function extractSubSingle (_: string, { sub }: TypeDef): Extracted[] { + const { lookupName, type } = sub as unknown as TypeDef; + + return extractTypes([lookupName || type]); +} + +function extractSubArray (_: string, { sub }: TypeDef): Extracted[] { + return extractTypes((sub as TypeDef[]).map(({ lookupName, type }) => lookupName || type)); +} + +function unhandled (type: string, { info }: TypeDef): never { + throw new Error(`Unhandled: Unable to create and validate type from ${type} (info=${TypeDefInfo[info]})`); +} + +// we only handle the types with params here +const mapping: Record Extracted> = { + [TypeDefInfo.BTreeMap]: extractSubArray, + [TypeDefInfo.BTreeSet]: extractSubSingle, + [TypeDefInfo.Compact]: extractSubSingle, + [TypeDefInfo.DoNotConstruct]: unhandled, + [TypeDefInfo.Enum]: extractSubArray, + [TypeDefInfo.HashMap]: extractSubArray, + [TypeDefInfo.Int]: unhandled, + [TypeDefInfo.Linkage]: extractSubSingle, + [TypeDefInfo.Null]: unhandled, + [TypeDefInfo.Option]: extractSubSingle, + [TypeDefInfo.Plain]: (_: string, typeDef: TypeDef) => typeDef.lookupName || typeDef.type, + [TypeDefInfo.Range]: extractSubSingle, + [TypeDefInfo.RangeInclusive]: extractSubSingle, + [TypeDefInfo.Result]: extractSubArray, + [TypeDefInfo.Set]: extractSubArray, + [TypeDefInfo.Si]: unhandled, + [TypeDefInfo.Struct]: extractSubArray, + [TypeDefInfo.Tuple]: extractSubArray, + [TypeDefInfo.UInt]: unhandled, + [TypeDefInfo.Vec]: extractSubSingle, + [TypeDefInfo.VecFixed]: extractSubSingle, + [TypeDefInfo.WrapperKeepOpaque]: extractSubSingle, + [TypeDefInfo.WrapperOpaque]: extractSubSingle +}; + +/** @internal */ +export function extractTypes (types: string[]): Extracted[] { + const count = types.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + const type = types[i]; + const typeDef = getTypeDef(type); + + result[i] = mapping[typeDef.info](type, typeDef); + } + + return result; +} diff --git a/packages/types/src/metadata/util/flattenUniq.spec.ts b/packages/types/src/metadata/util/flattenUniq.spec.ts new file mode 100644 index 0000000..019c1bf --- /dev/null +++ b/packages/types/src/metadata/util/flattenUniq.spec.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { flattenUniq } from './index.js'; + +describe('flattenUniq', (): void => { + it('flattens nested arrays', (): void => { + expect( + flattenUniq(['a', ['b', ['c', 'd', ['e']]], [['f', 'g']]]) + ).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g']); + }); + + it('flattens nested arrays, removing duplicated', (): void => { + expect( + flattenUniq(['a', 'b', ['b', ['b', 'c', 'd', ['e'], 'f', 'g']], ['c', ['f', 'g']]]) + ).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g']); + }); +}); diff --git a/packages/types/src/metadata/util/flattenUniq.ts b/packages/types/src/metadata/util/flattenUniq.ts new file mode 100644 index 0000000..5db0bd7 --- /dev/null +++ b/packages/types/src/metadata/util/flattenUniq.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +type Types = string | Types[]; + +/** @internal */ +export function flattenUniq (list: Types[], result: string[] = []): string[] { + for (let i = 0, count = list.length; i < count; i++) { + const entry = list[i]; + + if (Array.isArray(entry)) { + flattenUniq(entry, result); + } else { + result.push(entry); + } + } + + return [...new Set(result)]; +} diff --git a/packages/types/src/metadata/util/getSiName.ts b/packages/types/src/metadata/util/getSiName.ts new file mode 100644 index 0000000..98b81d2 --- /dev/null +++ b/packages/types/src/metadata/util/getSiName.ts @@ -0,0 +1,11 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ILookup } from '@pezkuwi/types-create/types'; +import type { SiLookupTypeId } from '../../interfaces/index.js'; + +export function getSiName (lookup: ILookup, type: SiLookupTypeId): string { + const typeDef = lookup.getTypeDef(type); + + return typeDef.lookupName || typeDef.type; +} diff --git a/packages/types/src/metadata/util/getUniqTypes.ts b/packages/types/src/metadata/util/getUniqTypes.ts new file mode 100644 index 0000000..ebd01a2 --- /dev/null +++ b/packages/types/src/metadata/util/getUniqTypes.ts @@ -0,0 +1,67 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, SiLookupTypeId } from '../../interfaces/index.js'; +import type { PortableRegistry } from '../../metadata/index.js'; + +import { flattenUniq } from './flattenUniq.js'; +import { validateTypes } from './validateTypes.js'; + +/** @internal */ +function extractTypes (lookup: PortableRegistry, types: { type: SiLookupTypeId }[]): string[] { + return types.map(({ type }) => + lookup.getTypeDef(type).type + ); +} + +/** @internal */ +function extractFieldTypes (lookup: PortableRegistry, type: SiLookupTypeId): string[][] { + return lookup.getSiType(type).def.asVariant.variants.map(({ fields }) => + extractTypes(lookup, fields) + ); +} + +/** @internal */ +function getPezpalletNames ({ lookup, pallets }: MetadataLatest): string[][][] { + return pallets.reduce((all, { calls, constants, events, storage }) => { + all.push([extractTypes(lookup, constants)]); + + if (calls.isSome) { + all.push(extractFieldTypes(lookup, calls.unwrap().type)); + } + + if (events.isSome) { + all.push(extractFieldTypes(lookup, events.unwrap().type)); + } + + if (storage.isSome) { + all.push(storage.unwrap().items.map(({ type }): string[] => { + if (type.isPlain) { + return [lookup.getTypeDef(type.asPlain).type]; + } + + const { hashers, key, value } = type.asMap; + + return hashers.length === 1 + ? [ + lookup.getTypeDef(value).type, + lookup.getTypeDef(key).type + ] + : [ + lookup.getTypeDef(value).type, + ...lookup.getSiType(key).def.asTuple.map((t) => + lookup.getTypeDef(t).type + ) + ]; + })); + } + + return all; + }, []); +} + +/** @internal */ +export function getUniqTypes (registry: Registry, meta: MetadataLatest, throwError: boolean): string[] { + return validateTypes(registry, throwError, flattenUniq(getPezpalletNames(meta))); +} diff --git a/packages/types/src/metadata/util/index.ts b/packages/types/src/metadata/util/index.ts new file mode 100644 index 0000000..788fcf9 --- /dev/null +++ b/packages/types/src/metadata/util/index.ts @@ -0,0 +1,8 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export { flattenUniq } from './flattenUniq.js'; +export { getSiName } from './getSiName.js'; +export { getUniqTypes } from './getUniqTypes.js'; +export { toCallsOnly } from './toCallsOnly.js'; +export { validateTypes } from './validateTypes.js'; diff --git a/packages/types/src/metadata/util/testUtil.ts b/packages/types/src/metadata/util/testUtil.ts new file mode 100644 index 0000000..3a2e050 --- /dev/null +++ b/packages/types/src/metadata/util/testUtil.ts @@ -0,0 +1,217 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +/* global describe, it, expect */ + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { MetaVersionAll } from '../versions.js'; +import type { Check } from './types.js'; + +import fs from 'node:fs'; + +import { hexToU8a, stringCamelCase, stringify, u8aToHex } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { unwrapStorageSi, unwrapStorageType } from '../../util/index.js'; +import { Metadata } from '../Metadata.js'; +import { getUniqTypes } from './getUniqTypes.js'; + +interface MetadataJsonDef { + lookup: unknown; + + [key: string]: unknown; +} + +interface MetadataJson { + metadata: { + v9: MetadataJsonDef; + v10: MetadataJsonDef; + v11: MetadataJsonDef; + v12: MetadataJsonDef; + v13: MetadataJsonDef; + v14: MetadataJsonDef; + v15: MetadataJsonDef; + v16: MetadataJsonDef; + } +} + +function getJsonName (version: number, type: string, sub: 'json' | 'types'): URL { + return new URL(`../../../../types-support/src/metadata/v${version}/${type}-${sub}.json`, import.meta.url); +} + +function writeJson (json: unknown, version: number, type: string, sub: 'json' | 'types'): void { + fs.writeFileSync(getJsonName(version, type, sub), stringify(json, 2), { flag: 'w' }); +} + +function readJson (version: number, type: string, sub: 'json' | 'types'): T { + return JSON.parse( + fs.readFileSync(getJsonName(version, type, sub), 'utf-8') + ) as unknown as T; +} + +function handleMetadata (registry: Registry, version: MetaVersionAll, data: HexString): Metadata { + let metadata: Metadata; + + if (version > 15) { + const opaqueMetadata = registry.createType('Option', registry.createType('Raw', data).toU8a()).unwrap(); + + metadata = new Metadata(registry, opaqueMetadata.toHex()); + } else { + try { + metadata = new Metadata(registry, data); + } catch { + const opaqueMetadata = registry.createType('Option', registry.createType('Raw', data).toU8a()).unwrap(); + + metadata = new Metadata(registry, opaqueMetadata.toHex()); + } + } + + return metadata; +} + +/** @internal */ +export function decodeLatestMeta (registry: Registry, type: string, version: MetaVersionAll, { data }: Check): void { + const metadata = handleMetadata(registry, version, data); + + registry.setMetadata(metadata); + + it('decodes latest bizinikiwi properly', (): void => { + const json = metadata.toJSON() as unknown as MetadataJson; + + delete json.metadata[`v${metadata.version}`].lookup; + + expect(metadata.version).toBe(version); + + try { + expect(json).toEqual(readJson(version, type, 'json')); + } catch (error) { + if (process.env['GITHUB_REPOSITORY']) { + throw error; + } + + console.error(error); + writeJson(json, version, type, 'json'); + } + }); + + if (version >= 14) { + it('decodes latest types correctly', (): void => { + const json = metadata.asLatest.lookup.types.toJSON(); + + try { + expect(json).toEqual(readJson(version, type, 'types')); + } catch (error) { + if (process.env['GITHUB_REPOSITORY']) { + throw error; + } + + console.error(error); + writeJson(json, version, type, 'types'); + } + }); + } +} + +/** @internal */ +export function toLatest (registry: Registry, version: MetaVersionAll, { data }: Check, withThrow = true): void { + it(`converts v${version} to latest`, (): void => { + const metadata = handleMetadata(registry, version, data); + + registry.setMetadata(metadata); + + const latest = metadata.asLatest; + + if (metadata.version < 14) { + getUniqTypes(registry, latest, withThrow); + } + }); +} + +/** @internal */ +export function defaultValues (registry: Registry, { data, fails = [] }: Check, withThrow = true, withFallbackCheck = false, version: MetaVersionAll): void { + describe('storage with default values', (): void => { + const metadata = handleMetadata(registry, version, data); + const { pallets } = metadata.asLatest; + + pallets.filter(({ storage }) => storage.isSome).forEach(({ name, storage }): void => { + const sectionName = stringCamelCase(name); + + storage.unwrap().items.forEach(({ fallback, modifier, name, type }): void => { + const inner = unwrapStorageType(registry, type, modifier.isOptional); + const location = `${sectionName}.${stringCamelCase(name)}: ${inner}`; + + it(location, (): void => { + expect((): void => { + try { + const instance = registry.createTypeUnsafe( + registry.createLookupType(unwrapStorageSi(type)), + [hexToU8a(fallback.toHex())], + { isOptional: modifier.isOptional } + ); + + if (withFallbackCheck) { + const [hexType, hexOrig] = [u8aToHex(instance.toU8a()), u8aToHex(fallback.toU8a(true))]; + + if (hexType !== hexOrig) { + throw new Error(`Fallback does not match (${((hexOrig.length - 2) / 2) - ((hexType.length - 2) / 2)} bytes missing): ${hexType} !== ${hexOrig}`); + } + } + } catch (error) { + const message = `${location}:: ${(error as Error).message}`; + + if (withThrow && !fails.some((f) => location.includes(f))) { + throw new Error(message); + } else { + console.warn(message); + } + } + }).not.toThrow(); + }); + }); + }); + }); +} + +function serialize (registry: Registry, { data }: Check, version: MetaVersionAll): void { + const metadata = handleMetadata(registry, version, data); + + if (version < 15) { + it('serializes to hex in the same form as retrieved', (): void => { + expect(metadata.toHex()).toEqual(data); + }); + + // NOTE Assuming the first passes this is actually something that doesn't test + // anything new. If the first line in this function passed and the above values + // are equivalent, this would be as well. + it.skip('can construct from a re-serialized form', (): void => { + expect( + () => new Metadata(registry, metadata.toHex()) + ).not.toThrow(); + }); + + // as used in the extension + it('can construct from asCallsOnly.toHex()', (): void => { + expect( + () => new Metadata(registry, metadata.asCallsOnly.toHex()) + ).not.toThrow(); + }); + } +} + +export function testMeta (version: MetaVersionAll, matchers: Record, withFallback = true): void { + describe(`MetadataV${version}`, (): void => { + for (const [type, matcher] of Object.entries(matchers)) { + const registry = new TypeRegistry(); + + describe(type, (): void => { + serialize(registry, matcher, version); + decodeLatestMeta(registry, type, version, matcher); + toLatest(registry, version, matcher); + defaultValues(registry, matcher, true, withFallback, version); + }); + } + }); +} diff --git a/packages/types/src/metadata/util/toCallsOnly.spec.ts b/packages/types/src/metadata/util/toCallsOnly.spec.ts new file mode 100644 index 0000000..94bb7c2 --- /dev/null +++ b/packages/types/src/metadata/util/toCallsOnly.spec.ts @@ -0,0 +1,46 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import staticLatest from '@pezkuwi/types-support/metadata/static-bizinikiwi'; +import staticV13 from '@pezkuwi/types-support/metadata/v13/bizinikiwi-hex'; +import { stringify } from '@pezkuwi/util'; + +import { TypeRegistry } from '../../create/index.js'; +import { Metadata } from '../Metadata.js'; + +describe('toCallsOnly', (): void => { + const registry = new TypeRegistry(); + + it('creates a calls-only version of the latest', (): void => { + const stripped = new Metadata(registry, staticLatest).asCallsOnly; + + try { + expect(stripped).toBeDefined(); + } catch (error) { + console.error(stringify(stripped)); + + throw error; + } + }); + + it('creates a calls-only version of V13', (): void => { + const stripped = new Metadata(registry, staticV13).asCallsOnly; + + try { + expect(stripped).toBeDefined(); + } catch (error) { + console.error(stringify(stripped)); + + throw error; + } + }); + + it('can serialize from the input', (): void => { + const s1 = new Metadata(registry, staticLatest).asCallsOnly.toU8a(); + const s2 = new Metadata(registry, s1).asCallsOnly.toU8a(); + + expect(s1).toEqual(s2); + }); +}); diff --git a/packages/types/src/metadata/util/toCallsOnly.ts b/packages/types/src/metadata/util/toCallsOnly.ts new file mode 100644 index 0000000..be6cd52 --- /dev/null +++ b/packages/types/src/metadata/util/toCallsOnly.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Option, Text, u8 } from '@pezkuwi/types-codec'; +import type { AnyJson, Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, PezpalletCallMetadataLatest } from '../../interfaces/metadata/index.js'; + +import { objectSpread } from '@pezkuwi/util'; + +interface ModuleMetadataTrimmed { + calls: Option; + index: u8; + name: Text; +} + +function trimDocs (docs: Text[]): string[] { + const strings = docs.map((d) => d.toString().trim()); + const firstEmpty = strings.findIndex((d) => !d.length); + + return firstEmpty === -1 + ? strings + : strings.slice(0, firstEmpty); +} + +/** @internal */ +export function toCallsOnly (registry: Registry, { extrinsic, lookup, pallets }: MetadataLatest): AnyJson { + return registry.createTypeUnsafe('MetadataLatest', [{ + extrinsic, + lookup: { + types: lookup.types.map(({ id, type }) => + registry.createTypeUnsafe('PortableType', [{ + id, + type: objectSpread({}, type, { docs: trimDocs(type.docs) }) + }]) + ) + }, + pallets: pallets.map(({ calls, index, name }): ModuleMetadataTrimmed => ({ + calls: registry.createTypeUnsafe('Option', [calls.unwrapOr(null)]), + index, + name + })) + }]).toJSON(); +} diff --git a/packages/types/src/metadata/util/types.ts b/packages/types/src/metadata/util/types.ts new file mode 100644 index 0000000..446b37c --- /dev/null +++ b/packages/types/src/metadata/util/types.ts @@ -0,0 +1,9 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; + +export interface Check { + data: HexString; + fails?: string[]; +} diff --git a/packages/types/src/metadata/util/validateTypes.ts b/packages/types/src/metadata/util/validateTypes.ts new file mode 100644 index 0000000..8942a3a --- /dev/null +++ b/packages/types/src/metadata/util/validateTypes.ts @@ -0,0 +1,33 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; + +import { logger } from '@pezkuwi/util'; + +import { extractTypes } from './extractTypes.js'; +import { flattenUniq } from './flattenUniq.js'; + +const l = logger('metadata'); + +/** @internal */ +export function validateTypes (registry: Registry, throwError: boolean, types: string[]): string[] { + const missing = flattenUniq(extractTypes(types)) + .filter((type) => + !registry.hasType(type) && + !registry.isLookupType(type) + ) + .sort(); + + if (missing.length !== 0) { + const message = `Unknown types found, no types for ${missing.join(', ')}`; + + if (throwError) { + throw new Error(message); + } else { + l.warn(message); + } + } + + return types; +} diff --git a/packages/types/src/metadata/v10/Metadata.spec.ts b/packages/types/src/metadata/v10/Metadata.spec.ts new file mode 100644 index 0000000..b38971d --- /dev/null +++ b/packages/types/src/metadata/v10/Metadata.spec.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import bizinikiwiData from '@pezkuwi/types-support/metadata/v10/bizinikiwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(10, { + bizinikiwi: { + data: bizinikiwiData + } +}, false); diff --git a/packages/types/src/metadata/v10/toV11.ts b/packages/types/src/metadata/v10/toV11.ts new file mode 100644 index 0000000..024a8e2 --- /dev/null +++ b/packages/types/src/metadata/v10/toV11.ts @@ -0,0 +1,18 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataV10, MetadataV11 } from '../../interfaces/metadata/index.js'; + +/** @internal */ +export function toV11 (registry: Registry, { modules }: MetadataV10): MetadataV11 { + return registry.createTypeUnsafe('MetadataV11', [{ + // This is new in V11, pass V0 here - something non-existing, telling the API to use + // the fallback for this information (on-chain detection) + extrinsic: { + signedExtensions: [], + version: 0 + }, + modules + }]); +} diff --git a/packages/types/src/metadata/v11/Metadata.spec.ts b/packages/types/src/metadata/v11/Metadata.spec.ts new file mode 100644 index 0000000..331eeb9 --- /dev/null +++ b/packages/types/src/metadata/v11/Metadata.spec.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import bizinikiwiData from '@pezkuwi/types-support/metadata/v11/bizinikiwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(11, { + bizinikiwi: { + data: bizinikiwiData + } +}, false); diff --git a/packages/types/src/metadata/v11/toV12.ts b/packages/types/src/metadata/v11/toV12.ts new file mode 100644 index 0000000..32807fe --- /dev/null +++ b/packages/types/src/metadata/v11/toV12.ts @@ -0,0 +1,19 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataV11, MetadataV12, ModuleMetadataV12 } from '../../interfaces/metadata/index.js'; + +import { objectSpread } from '@pezkuwi/util'; + +/** + * @internal + **/ +export function toV12 (registry: Registry, { extrinsic, modules }: MetadataV11): MetadataV12 { + return registry.createTypeUnsafe('MetadataV12', [{ + extrinsic, + modules: modules.map((mod): ModuleMetadataV12 => + registry.createTypeUnsafe('ModuleMetadataV12', [objectSpread({}, mod, { index: 255 })]) + ) + }]); +} diff --git a/packages/types/src/metadata/v12/Metadata.spec.ts b/packages/types/src/metadata/v12/Metadata.spec.ts new file mode 100644 index 0000000..be28dd3 --- /dev/null +++ b/packages/types/src/metadata/v12/Metadata.spec.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import bizinikiwiData from '@pezkuwi/types-support/metadata/v12/bizinikiwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(12, { + bizinikiwi: { + data: bizinikiwiData + } +}); diff --git a/packages/types/src/metadata/v12/toV13.ts b/packages/types/src/metadata/v12/toV13.ts new file mode 100644 index 0000000..e9a6278 --- /dev/null +++ b/packages/types/src/metadata/v12/toV13.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataV12, MetadataV13 } from '../../interfaces/metadata/index.js'; + +/** + * @internal + **/ +export function toV13 (registry: Registry, v12: MetadataV12): MetadataV13 { + return registry.createTypeUnsafe('MetadataV13', [v12]); +} diff --git a/packages/types/src/metadata/v13/Metadata.spec.ts b/packages/types/src/metadata/v13/Metadata.spec.ts new file mode 100644 index 0000000..100080d --- /dev/null +++ b/packages/types/src/metadata/v13/Metadata.spec.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import bizinikiwiData from '@pezkuwi/types-support/metadata/v13/bizinikiwi-hex'; +import dicleData from '@pezkuwi/types-support/metadata/v13/dicle-hex'; +import pezkuwiData from '@pezkuwi/types-support/metadata/v13/pezkuwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(13, { + dicle: { + data: dicleData, + fails: [ + // RawSolution has 24 entries + 'SignedSubmissionOf' + ] + }, + pezkuwi: { + data: pezkuwiData + }, + bizinikiwi: { + data: bizinikiwiData + } +}); diff --git a/packages/types/src/metadata/v13/toV14.ts b/packages/types/src/metadata/v13/toV14.ts new file mode 100644 index 0000000..e8b5012 --- /dev/null +++ b/packages/types/src/metadata/v13/toV14.ts @@ -0,0 +1,352 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Text, Type } from '@pezkuwi/types-codec'; +import type { ErrorMetadataV13, EventMetadataV13, ExtrinsicMetadataV13, ExtrinsicMetadataV14, FunctionMetadataV13, MetadataV13, MetadataV14, ModuleConstantMetadataV13, ModuleMetadataV13, PezpalletCallMetadataV14, PezpalletConstantMetadataV14, PezpalletErrorMetadataV14, PezpalletEventMetadataV14, PezpalletMetadataV14, PezpalletStorageMetadataV14, StorageEntryMetadataV14, StorageEntryTypeV14, StorageHasherV13, StorageMetadataV13 } from '../../interfaces/metadata/index.js'; +import type { SiVariant } from '../../interfaces/scaleInfo/index.js'; +import type { OverrideModuleType, Registry } from '../../types/index.js'; + +import { stringCamelCase } from '@pezkuwi/util'; + +import { getAliasTypes } from '../../interfaces/alias.js'; +import { knownOrigins } from '../../interfaces/runtime/definitions.js'; + +interface MapDef { + hashers: StorageHasherV13[]; + isLinked: boolean; + isOptional: boolean; + keys: Type[]; + value: Type; +} + +export interface TypeSpec { + def: { + HistoricMetaCompat?: string; + Tuple?: number[]; + Variant?: { + variants: SiVariant[]; + } + }, + path?: string[]; +} + +const BOXES = [['<', '>'], ['<', ','], [',', '>'], ['(', ')'], ['(', ','], [',', ','], [',', ')']]; + +/** + * Creates a compatible type mapping + * @internal + **/ +function compatType (specs: TypeSpec[], _type: Text | string): number { + const type = _type.toString(); + const index = specs.findIndex(({ def }) => + def.HistoricMetaCompat === type + ); + + if (index !== -1) { + return index; + } + + return specs.push({ + def: { + HistoricMetaCompat: type + } + }) - 1; +} + +function compatTypes (specs: TypeSpec[], ...types: (Text | string)[]): void { + for (let i = 0, count = types.length; i < count; i++) { + compatType(specs, types[i]); + } +} + +function makeTupleType (specs: TypeSpec[], entries: number[]): number { + return specs.push({ + def: { + Tuple: entries + } + }) - 1; +} + +function makeVariantType (modName: Text, variantType: string, specs: TypeSpec[], variants: SiVariant[]): number { + return specs.push({ + def: { + Variant: { variants } + }, + path: [`pallet_${modName.toString()}`, 'pallet', variantType] + }) - 1; +} + +/** + * @internal + * generate & register the OriginCaller type + **/ +function registerOriginCaller (registry: Registry, modules: ModuleMetadataV13[], metaVersion: number): void { + registry.register({ + OriginCaller: { + _enum: modules + .map((mod, index): [string, number] => [ + mod.name.toString(), + metaVersion >= 12 + ? mod.index.toNumber() + : index + ]) + .sort((a, b) => a[1] - b[1]) + .reduce((result: Record, [name, index]): Record => { + for (let i = Object.keys(result).length; i < index; i++) { + result[`Empty${i}`] = 'Null'; + } + + result[name] = knownOrigins[name] || 'Null'; + + return result; + }, {}) + } + }); +} + +/** + * Find and apply the correct type override + * @internal + **/ +function setTypeOverride (sectionTypes: OverrideModuleType, types: Type[]): void { + types.forEach((type): void => { + const override = Object.keys(sectionTypes).find((aliased) => type.eq(aliased)); + + if (override) { + type.setOverride(sectionTypes[override]); + } else { + // FIXME: NOT happy with this approach, but gets over the initial hump cased by (Vec,BalanceOf) + const orig = type.toString(); + const alias = Object + .entries(sectionTypes) + .reduce((result: string, [src, dst]) => + BOXES.reduce((result, [a, z]) => + result.replace(`${a}${src}${z}`, `${a}${dst}${z}`), result), orig); + + if (orig !== alias) { + type.setOverride(alias); + } + } + }); +} + +/** + * Apply module-specific type overrides (always be done as part of toV14) + * @internal + **/ +function convertCalls (specs: TypeSpec[], registry: Registry, modName: Text, calls: FunctionMetadataV13[], sectionTypes: OverrideModuleType): PezpalletCallMetadataV14 { + const variants = calls.map(({ args, docs, name }, index): SiVariant => { + setTypeOverride(sectionTypes, args.map(({ type }) => type)); + + return registry.createTypeUnsafe('SiVariant', [{ + docs, + fields: args.map(({ name, type }) => + registry.createTypeUnsafe('SiField', [{ name, type: compatType(specs, type) }]) + ), + index, + name + }]); + }); + + return registry.createTypeUnsafe('PezpalletCallMetadataV14', [{ + type: makeVariantType(modName, 'Call', specs, variants) + }]); +} + +/** + * Apply module-specific type overrides (always be done as part of toV14) + * @internal + */ +function convertConstants (specs: TypeSpec[], registry: Registry, constants: ModuleConstantMetadataV13[], sectionTypes: OverrideModuleType): PezpalletConstantMetadataV14[] { + return constants.map(({ docs, name, type, value }): PezpalletConstantMetadataV14 => { + setTypeOverride(sectionTypes, [type]); + + return registry.createTypeUnsafe('PezpalletConstantMetadataV14', [{ + docs, + name, + type: compatType(specs, type), + value + }]); + }); +} + +/** + * Apply module-specific type overrides (always be done as part of toV14) + * @internal + */ +function convertErrors (specs: TypeSpec[], registry: Registry, modName: Text, errors: ErrorMetadataV13[], _sectionTypes: OverrideModuleType): PezpalletErrorMetadataV14 { + const variants = errors.map(({ docs, name }, index): SiVariant => + registry.createTypeUnsafe('SiVariant', [{ + docs, + fields: [], + index, + name + }]) + ); + + return registry.createTypeUnsafe('PezpalletErrorMetadataV14', [{ + type: makeVariantType(modName, 'Error', specs, variants) + }]); +} + +/** + * Apply module-specific type overrides (always be done as part of toV14) + * @internal + **/ +function convertEvents (specs: TypeSpec[], registry: Registry, modName: Text, events: EventMetadataV13[], sectionTypes: OverrideModuleType): PezpalletEventMetadataV14 { + const variants = events.map(({ args, docs, name }, index): SiVariant => { + setTypeOverride(sectionTypes, args); + + return registry.createTypeUnsafe('SiVariant', [{ + docs, + fields: args.map((t) => + registry.createTypeUnsafe('SiField', [{ type: compatType(specs, t) }]) + ), + index, + name + }]); + }); + + return registry.createTypeUnsafe('PezpalletEventMetadataV14', [{ + type: makeVariantType(modName, 'Event', specs, variants) + }]); +} + +function createMapEntry (specs: TypeSpec[], registry: Registry, sectionTypes: OverrideModuleType, { hashers, isLinked, isOptional, keys, value }: MapDef): StorageEntryTypeV14 { + setTypeOverride(sectionTypes, [value, ...(Array.isArray(keys) ? keys : [keys])]); + + return registry.createTypeUnsafe('StorageEntryTypeV14', [{ + Map: { + hashers, + key: hashers.length === 1 + ? compatType(specs, keys[0]) + : makeTupleType(specs, keys.map((t) => compatType(specs, t))), + value: isLinked + // For previous-generation linked-map support, the actual storage result + // is a Tuple with the value and the Linkage (Option appears in teh value-part only) + ? compatType(specs, `(${isOptional ? `Option<${value.toString()}>` : value.toString()}, Linkage<${keys[0].toString()}>)`) + : compatType(specs, value) + } + }]); +} + +/** + * Apply module-specific storage type overrides (always part of toV14) + * @internal + **/ +function convertStorage (specs: TypeSpec[], registry: Registry, { items, prefix }: StorageMetadataV13, sectionTypes: OverrideModuleType): PezpalletStorageMetadataV14 { + return registry.createTypeUnsafe('PezpalletStorageMetadataV14', [{ + items: items.map(({ docs, fallback, modifier, name, type }): StorageEntryMetadataV14 => { + let entryType: StorageEntryTypeV14; + + if (type.isPlain) { + const plain = type.asPlain; + + setTypeOverride(sectionTypes, [plain]); + + entryType = registry.createTypeUnsafe('StorageEntryTypeV14', [{ + Plain: compatType(specs, plain) + }]); + } else if (type.isMap) { + const map = type.asMap; + + entryType = createMapEntry(specs, registry, sectionTypes, { + hashers: [map.hasher], + isLinked: map.linked.isTrue, + isOptional: modifier.isOptional, + keys: [map.key], + value: map.value + }); + } else if (type.isDoubleMap) { + const dm = type.asDoubleMap; + + entryType = createMapEntry(specs, registry, sectionTypes, { + hashers: [dm.hasher, dm.key2Hasher], + isLinked: false, + isOptional: modifier.isOptional, + keys: [dm.key1, dm.key2], + value: dm.value + }); + } else { + const nm = type.asNMap; + + entryType = createMapEntry(specs, registry, sectionTypes, { + hashers: nm.hashers, + isLinked: false, + isOptional: modifier.isOptional, + keys: nm.keyVec, + value: nm.value + }); + } + + return registry.createTypeUnsafe('StorageEntryMetadataV14', [{ + docs, + fallback, + modifier, + name, + type: entryType + }]); + }), + prefix + }]); +} + +/** @internal */ +function convertExtrinsic (registry: Registry, { signedExtensions, version }: ExtrinsicMetadataV13): ExtrinsicMetadataV14 { + return registry.createTypeUnsafe('ExtrinsicMetadataV14', [{ + signedExtensions: signedExtensions.map((identifier) => ({ + identifier, + type: 0 // we don't map the fields at all + })), + type: 0, // Map to extrinsic like in v14? + version + }]); +} + +/** @internal */ +function createPezpallet (specs: TypeSpec[], registry: Registry, mod: ModuleMetadataV13, { calls, constants, errors, events, storage }: { calls: FunctionMetadataV13[] | null, constants: ModuleConstantMetadataV13[], errors: ErrorMetadataV13[] | null, events: EventMetadataV13[] | null, storage: StorageMetadataV13 | null }): PezpalletMetadataV14 { + const sectionTypes = getAliasTypes(registry, stringCamelCase(mod.name)); + + return registry.createTypeUnsafe('PezpalletMetadataV14', [{ + calls: calls && convertCalls(specs, registry, mod.name, calls, sectionTypes), + constants: convertConstants(specs, registry, constants, sectionTypes), + errors: errors && convertErrors(specs, registry, mod.name, errors, sectionTypes), + events: events && convertEvents(specs, registry, mod.name, events, sectionTypes), + index: mod.index, + name: mod.name, + storage: storage && convertStorage(specs, registry, storage, sectionTypes) + }]); +} + +/** + * Convert the Metadata to v14 + * @internal + **/ +export function toV14 (registry: Registry, v13: MetadataV13, metaVersion: number): MetadataV14 { + const specs: TypeSpec[] = []; + + // position 0 always has Null, additionally add internal defaults + compatTypes(specs, 'Null', 'u8', 'u16', 'u32', 'u64'); + registerOriginCaller(registry, v13.modules, metaVersion); + + const extrinsic = convertExtrinsic(registry, v13.extrinsic); + const pallets = v13.modules.map((mod) => + createPezpallet(specs, registry, mod, { + calls: mod.calls.unwrapOr(null), + constants: mod.constants, + errors: mod.errors.length ? mod.errors : null, + events: mod.events.unwrapOr(null), + storage: mod.storage.unwrapOr(null) + }) + ); + + return registry.createTypeUnsafe('MetadataV14', [{ + extrinsic, + lookup: { + types: specs.map((type, id) => + registry.createTypeUnsafe('PortableType', [{ id, type }]) + ) + }, + pallets + }]); +} diff --git a/packages/types/src/metadata/v14/Metadata.spec.ts b/packages/types/src/metadata/v14/Metadata.spec.ts new file mode 100644 index 0000000..496c6d7 --- /dev/null +++ b/packages/types/src/metadata/v14/Metadata.spec.ts @@ -0,0 +1,20 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import bizinikiwiData from '@pezkuwi/types-support/metadata/v14/bizinikiwi-hex'; +import dicleData from '@pezkuwi/types-support/metadata/v14/dicle-hex'; +import pezkuwiData from '@pezkuwi/types-support/metadata/v14/pezkuwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(14, { + dicle: { + data: dicleData + }, + pezkuwi: { + data: pezkuwiData + }, + bizinikiwi: { + data: bizinikiwiData + } +}); diff --git a/packages/types/src/metadata/v14/toV15.ts b/packages/types/src/metadata/v14/toV15.ts new file mode 100644 index 0000000..d4ad705 --- /dev/null +++ b/packages/types/src/metadata/v14/toV15.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { MetadataV14, MetadataV15 } from '../../interfaces/metadata/index.js'; +import type { Registry } from '../../types/index.js'; + +import { objectSpread } from '@pezkuwi/util'; + +/** + * Convert the Metadata to v15 + * @internal + **/ +export function toV15 (registry: Registry, v14: MetadataV14, _: number): MetadataV15 { + // V15 is mostly equivalent to v14 however it does add + // + // 1. The top-level apis entry - it is assumed that in usage we would + // just check for all-empty (like this would construct) + // 2. A docs param on the pallet itself + // 3. Additional extrinsic parameters + // + // A straight conversion with createTypeUndafe magic fills in details + + // We need the UncheckedExtrinsic to extract the types, at least for v14 + // which does have these details embedded (previous-gen won't populate) + const unchecked = v14.lookup.paramTypes.PezspRuntimeUncheckedExtrinsic; + + return registry.createTypeUnsafe('MetadataV15', [ + objectSpread({}, v14, { + extrinsic: registry.createTypeUnsafe('ExtrinsicMetadataV15', [ + objectSpread({}, v14.extrinsic, { + addressType: unchecked?.[0].type.unwrapOr(0), + callType: unchecked?.[1].type.unwrapOr(0), + extraType: unchecked?.[3].type.unwrapOr(0), + signatureType: unchecked?.[2].type.unwrapOr(0) + }) + ]), + outerEnums: registry.createTypeUnsafe('OuterEnums15', [{ + // FIXME We need to extract & add the errorType in here + // (these doesn't seem to be an esay way to detect & extract it) + callType: unchecked?.[1].type.unwrapOr(0), + eventType: v14.lookup.paramTypes.PezframeSystemEventRecord?.[0].type.unwrapOr(0) + }]) + }) + ]); +} diff --git a/packages/types/src/metadata/v15/Metadata.spec.ts b/packages/types/src/metadata/v15/Metadata.spec.ts new file mode 100644 index 0000000..5133fac --- /dev/null +++ b/packages/types/src/metadata/v15/Metadata.spec.ts @@ -0,0 +1,28 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import assetHubDicleData from '@pezkuwi/types-support/metadata/v15/asset-hub-dicle-hex'; +import assetHubPezkuwiData from '@pezkuwi/types-support/metadata/v15/asset-hub-pezkuwi-hex'; +import bizinikiwiData from '@pezkuwi/types-support/metadata/v15/bizinikiwi-hex'; +import dicleData from '@pezkuwi/types-support/metadata/v15/dicle-hex'; +import pezkuwiData from '@pezkuwi/types-support/metadata/v15/pezkuwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(15, { + 'asset-hub-dicle': { + data: assetHubDicleData + }, + 'asset-hub-pezkuwi': { + data: assetHubPezkuwiData + }, + dicle: { + data: dicleData + }, + pezkuwi: { + data: pezkuwiData + }, + bizinikiwi: { + data: bizinikiwiData + } +}); diff --git a/packages/types/src/metadata/v15/toV16.ts b/packages/types/src/metadata/v15/toV16.ts new file mode 100644 index 0000000..c5b8d60 --- /dev/null +++ b/packages/types/src/metadata/v15/toV16.ts @@ -0,0 +1,147 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { ExtrinsicMetadataV15, ExtrinsicMetadataV16, ItemDeprecationInfoV16, MetadataV15, MetadataV16, PezpalletAssociatedTypeMetadataV16, PezpalletCallMetadataV14, PezpalletCallMetadataV16, PezpalletConstantMetadataV14, PezpalletConstantMetadataV16, PezpalletErrorMetadataV14, PezpalletErrorMetadataV16, PezpalletEventMetadataV14, PezpalletEventMetadataV16, PezpalletMetadataV15, PezpalletMetadataV16, PezpalletStorageMetadataV14, PezpalletStorageMetadataV16, RuntimeApiMetadataV15, RuntimeApiMetadataV16, StorageEntryMetadataV16, TransactionExtensionMetadataV16 } from '../../interfaces/metadata/index.js'; +import type { Registry } from '../../types/index.js'; + +import { type Vec } from '@pezkuwi/types-codec'; +import { objectSpread } from '@pezkuwi/util'; + +function palletsFromV15 (registry: Registry, palletV15: PezpalletMetadataV15): PezpalletMetadataV16 { + const deprecationInfo: ItemDeprecationInfoV16 = registry.createTypeUnsafe('ItemDeprecationInfoV16', ['NotDeprecated']); + const associatedTypes: Vec = registry.createTypeUnsafe('Vec', [[]]); + const viewFunctions: Vec = registry.createTypeUnsafe('Vec', [[]]); + + return registry.createTypeUnsafe('PezpalletMetadataV16', [ + objectSpread({}, palletV15, { + associatedTypes, + calls: palletV15.calls.isSome ? convertCalls(registry, palletV15.calls.unwrap()) : null, + constants: convertConstants(registry, palletV15.constants), + deprecationInfo, + errors: palletV15.errors.isSome ? converErrors(registry, palletV15.errors.unwrap()) : null, + events: palletV15.events.isSome ? convertEvents(registry, palletV15.events.unwrap()) : null, + storage: palletV15.storage.isSome ? convertStorage(registry, palletV15.storage.unwrap()) : null, + viewFunctions + }) + ]); +} + +function convertStorage (registry: Registry, storage: PezpalletStorageMetadataV14): PezpalletStorageMetadataV16 { + const deprecationInfo: ItemDeprecationInfoV16 = registry.createTypeUnsafe('ItemDeprecationInfoV16', ['NotDeprecated']); + + const items: StorageEntryMetadataV16[] = storage.items.map((item) => + registry.createTypeUnsafe('StorageEntryMetadataV16', [ + objectSpread({}, item, { deprecationInfo }) + ]) + ); + + return registry.createTypeUnsafe('PezpalletStorageMetadataV16', [{ + items: registry.createTypeUnsafe('Vec', [items]), + prefix: storage.prefix + }]); +} + +function convertCalls (registry: Registry, calls: PezpalletCallMetadataV14): PezpalletCallMetadataV16 { + const deprecationInfo = registry.createTypeUnsafe('EnumDeprecationInfoV16', []); + + return registry.createTypeUnsafe('PezpalletCallMetadataV16', [{ + deprecationInfo, + type: calls.type + }]); +} + +function convertEvents (registry: Registry, events: PezpalletEventMetadataV14): PezpalletEventMetadataV16 { + const deprecationInfo = registry.createTypeUnsafe('EnumDeprecationInfoV16', []); + + return registry.createTypeUnsafe('PezpalletEventMetadataV16', [{ + deprecationInfo, + type: events.type + }]); +} + +function convertConstants (registry: Registry, constants: Vec): Vec { + const deprecationInfo: ItemDeprecationInfoV16 = registry.createTypeUnsafe('ItemDeprecationInfoV16', ['NotDeprecated']); + + return registry.createTypeUnsafe('Vec', [ + constants.map((constant) => registry.createTypeUnsafe('PezpalletConstantMetadataV16', [ + objectSpread({}, constant, { deprecationInfo }) + ]))] + ); +} + +function converErrors (registry: Registry, errors: PezpalletErrorMetadataV14): PezpalletErrorMetadataV16 { + const deprecationInfo = registry.createTypeUnsafe('EnumDeprecationInfoV16', []); + + return registry.createTypeUnsafe('PezpalletErrorMetadataV16', [{ + deprecationInfo, + type: errors.type + }]); +} + +function extrinsicFromV15 (registry: Registry, extrinsicV15: ExtrinsicMetadataV15): ExtrinsicMetadataV16 { + const transactionExtensions: TransactionExtensionMetadataV16[] = extrinsicV15.signedExtensions.map(({ additionalSigned, identifier, type }) => + registry.createTypeUnsafe('TransactionExtensionMetadataV16', [{ + identifier, + implict: additionalSigned, + type + }]) + ); + + const indexes = transactionExtensions.map((_, i) => + registry.createTypeUnsafe('Compact', [i]) + ); + + const transactionExtensionsByVersion = registry.createTypeUnsafe( + 'BTreeMap>>', + [new Map([[registry.createTypeUnsafe('u8', [extrinsicV15.version]), registry.createTypeUnsafe('Vec>', [indexes])]])] + ); + + return registry.createTypeUnsafe('ExtrinsicMetadataV16', [ + { + addressType: extrinsicV15.addressType, + callType: extrinsicV15.callType, + signatureType: extrinsicV15.signatureType, + transactionExtensions, + transactionExtensionsByVersion, + versions: [extrinsicV15.version] + } + ]); +} + +function apisFromV15 (registry: Registry, runtimeApiV15: RuntimeApiMetadataV15): RuntimeApiMetadataV16 { + const deprecationInfo = registry.createTypeUnsafe('ItemDeprecationInfoV16', ['NotDeprecated']); + + const methods = runtimeApiV15.methods.map((method) => + registry.createTypeUnsafe('RuntimeApiMethodMetadataV16', + [objectSpread({}, method, { deprecationInfo })] + ) + ); + + return registry.createTypeUnsafe('RuntimeApiMetadataV16', [ + objectSpread({}, runtimeApiV15, { + deprecationInfo, + methods, + version: registry.createTypeUnsafe('Compact', [0]) + }) + ]); +} + +/** + * Convert the Metadata to v16 + * @internal + **/ +export function toV16 (registry: Registry, v15: MetadataV15, _: number): MetadataV16 { + const pallets: PezpalletMetadataV16[] = v15.pallets.map((pallet) => { + return palletsFromV15(registry, pallet); + }); + const extrinsic: ExtrinsicMetadataV16 = extrinsicFromV15(registry, v15.extrinsic); + const apis: RuntimeApiMetadataV16[] = v15.apis.map((runtimeApi) => apisFromV15(registry, runtimeApi)); + + return registry.createTypeUnsafe('MetadataV16', [ + objectSpread({}, v15, { + apis, + extrinsic, + pallets + }) + ]); +} diff --git a/packages/types/src/metadata/v16/Metadata.spec.ts b/packages/types/src/metadata/v16/Metadata.spec.ts new file mode 100644 index 0000000..540d430 --- /dev/null +++ b/packages/types/src/metadata/v16/Metadata.spec.ts @@ -0,0 +1,30 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/* import assetHubDicleData from '@pezkuwi/types-support/metadata/v16/asset-hub-dicle-hex'; +import assetHubPezkuwiData from '@pezkuwi/types-support/metadata/v16/asset-hub-pezkuwi-hex'; +import dicleData from '@pezkuwi/types-support/metadata/v16/dicle-hex'; +import pezkuwiData from '@pezkuwi/types-support/metadata/v16/pezkuwi-hex';*/ +import bizinikiwiData from '@pezkuwi/types-support/metadata/v16/bizinikiwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +// TODO: Once MetadataV16 lands in an official release, pull the +// latest metadata for each chain and update the tests +testMeta(16, { +/* 'asset-hub-dicle': { + data: assetHubDicleData + }, + 'asset-hub-pezkuwi': { + data: assetHubPezkuwiData + }, + dicle: { + data: dicleData + }, + pezkuwi: { + data: pezkuwiData + },*/ + bizinikiwi: { + data: bizinikiwiData + } +}); diff --git a/packages/types/src/metadata/v16/toLatest.ts b/packages/types/src/metadata/v16/toLatest.ts new file mode 100644 index 0000000..0c4b20a --- /dev/null +++ b/packages/types/src/metadata/v16/toLatest.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataLatest, MetadataV16 } from '../../interfaces/metadata/index.js'; + +/** + * Convert the Metadata (which is an alias) to latest + * @internal + **/ +export function toLatest (_registry: Registry, v16: MetadataV16, _metaVersion: number): MetadataLatest { + return v16; +} diff --git a/packages/types/src/metadata/v9/Metadata.spec.ts b/packages/types/src/metadata/v9/Metadata.spec.ts new file mode 100644 index 0000000..06e6964 --- /dev/null +++ b/packages/types/src/metadata/v9/Metadata.spec.ts @@ -0,0 +1,12 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import bizinikiwiData from '@pezkuwi/types-support/metadata/v9/bizinikiwi-hex'; + +import { testMeta } from '../util/testUtil.js'; + +testMeta(9, { + bizinikiwi: { + data: bizinikiwiData + } +}, false); diff --git a/packages/types/src/metadata/v9/toV10.ts b/packages/types/src/metadata/v9/toV10.ts new file mode 100644 index 0000000..34e7da7 --- /dev/null +++ b/packages/types/src/metadata/v9/toV10.ts @@ -0,0 +1,62 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Registry } from '@pezkuwi/types-codec/types'; +import type { MetadataV9, MetadataV10, ModuleMetadataV9, ModuleMetadataV10, StorageEntryMetadataV9, StorageEntryTypeV9, StorageHasherV9, StorageHasherV10 } from '../../interfaces/metadata/index.js'; + +import { objectSpread } from '@pezkuwi/util'; + +// migrate a storage hasher type +// see https://github.com/pezkuwichain/bizinikiwi/pull/4462 +/** @internal */ +function createStorageHasher (registry: Registry, hasher: StorageHasherV9): StorageHasherV10 { + // Blake2_128_Concat has been added at index 2, so we increment all the + // indexes greater than 2 + if (hasher.toNumber() >= 2) { + return registry.createTypeUnsafe('StorageHasherV10', [hasher.toNumber() + 1]); + } + + return registry.createTypeUnsafe('StorageHasherV10', [hasher]); +} + +/** @internal */ +function createStorageType (registry: Registry, entryType: StorageEntryTypeV9): [any, number] { + if (entryType.isMap) { + return [objectSpread({}, entryType.asMap, { + hasher: createStorageHasher(registry, entryType.asMap.hasher) + }), 1]; + } + + if (entryType.isDoubleMap) { + return [objectSpread({}, entryType.asDoubleMap, { + hasher: createStorageHasher(registry, entryType.asDoubleMap.hasher), + key2Hasher: createStorageHasher(registry, entryType.asDoubleMap.key2Hasher) + }), 2]; + } + + return [entryType.asPlain, 0]; +} + +/** @internal */ +function convertModule (registry: Registry, mod: ModuleMetadataV9): ModuleMetadataV10 { + const storage = mod.storage.unwrapOr(null); + + return registry.createTypeUnsafe('ModuleMetadataV10', [objectSpread({}, mod, { + storage: storage + ? objectSpread({}, storage, { + items: storage.items.map((item: StorageEntryMetadataV9): any => + objectSpread({}, item, { + type: registry.createTypeUnsafe('StorageEntryTypeV10', createStorageType(registry, item.type)) + }) + ) + }) + : null + })]); +} + +/** @internal */ +export function toV10 (registry: Registry, { modules }: MetadataV9): MetadataV10 { + return registry.createTypeUnsafe('MetadataV10', [{ + modules: modules.map((mod) => convertModule(registry, mod)) + }]); +} diff --git a/packages/types/src/metadata/versions.ts b/packages/types/src/metadata/versions.ts new file mode 100644 index 0000000..3d402a2 --- /dev/null +++ b/packages/types/src/metadata/versions.ts @@ -0,0 +1,17 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Use these to generate all the Meta* types below via template keys +// NOTE: Keep from latest -> earliest, see the LATEST_VERSION 0 index +export const KNOWN_VERSIONS = [16, 15, 14, 13, 12, 11, 10, 9] as const; +export const LATEST_VERSION = KNOWN_VERSIONS[0]; + +// This is part of migration. The toCallsOnly would be usede for esxtensions, +// i.e. they need to be updated. To ensure that they are passed a known version +// we actually set this to a known-working version +// +// NOTE: This would only work on compatible types, i.e. v14 & v15 comply +export const TO_CALLS_VERSION = 14; // LATEST_VERSION; + +export type MetaVersionAll = typeof KNOWN_VERSIONS[number]; +export type MetaVersionAsX = `asV${MetaVersionAll}`; diff --git a/packages/types/src/mod.ts b/packages/types/src/mod.ts new file mode 100644 index 0000000..2ad77df --- /dev/null +++ b/packages/types/src/mod.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './index.js'; diff --git a/packages/types/src/packageDetect.ts b/packages/types/src/packageDetect.ts new file mode 100644 index 0000000..f8c11da --- /dev/null +++ b/packages/types/src/packageDetect.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2026 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev +// (packageInfo imports will be kept as-is, user-editable) + +import { packageInfo as codecInfo } from '@pezkuwi/types-codec/packageInfo'; +import { packageInfo as createInfo } from '@pezkuwi/types-create/packageInfo'; +import { detectPackage } from '@pezkuwi/util'; + +import { packageInfo } from './packageInfo.js'; + +detectPackage(packageInfo, null, [codecInfo, createInfo]); diff --git a/packages/types/src/packageInfo.ts b/packages/types/src/packageInfo.ts new file mode 100644 index 0000000..fd92bfc --- /dev/null +++ b/packages/types/src/packageInfo.ts @@ -0,0 +1,6 @@ +// Copyright 2017-2026 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// Do not edit, auto-generated by @pezkuwi/dev + +export const packageInfo = { name: '@pezkuwi/types', path: 'auto', type: 'auto', version: '16.5.4' }; diff --git a/packages/types/src/primitive/Data.spec.ts b/packages/types/src/primitive/Data.spec.ts new file mode 100644 index 0000000..c34491d --- /dev/null +++ b/packages/types/src/primitive/Data.spec.ts @@ -0,0 +1,45 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import { TypeRegistry } from '../create/index.js'; +import { Data } from './index.js'; + +const registry = new TypeRegistry(); + +describe('Data', (): void => { + it('encodes a normal None', (): void => { + expect( + new Data(registry).toHex() + ).toEqual('0x00'); + }); + + it('encodes a hashed value correctly', (): void => { + expect( + new Data(registry, { Keccak256: '0x0102030405060708091011121314151617181920212223242526272829303132' }).toHex() + ).toEqual('0x240102030405060708091011121314151617181920212223242526272829303132'); + }); + + it('encodes a Raw value correctly', (): void => { + expect( + new Data(registry, { Raw: '0x0102030405060708' }).toHex() + ).toEqual('0x090102030405060708'); + }); + + it('throws on a very long string (only 32 bytes)', (): void => { + expect( + () => new Data(registry, { Raw: 'this is some very long string that is added here that will fail' }) + ).toThrow('Data.Raw values are limited to a maximum length of 32 bytes'); + }); + + it('encodes a large value correctly (max 32)', (): void => { + expect( + // without the assert (and above test), add extra bytes to the end to check the encoding + new Data(registry, { Raw: '0x0102030405060708091011121314151617181920212223242526272829303132' }).toHex() + ).toEqual( + // first byte is 32 + 1 === 33 === 0x21 + '0x210102030405060708091011121314151617181920212223242526272829303132' + ); + }); +}); diff --git a/packages/types/src/primitive/Data.ts b/packages/types/src/primitive/Data.ts new file mode 100644 index 0000000..f094778 --- /dev/null +++ b/packages/types/src/primitive/Data.ts @@ -0,0 +1,142 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Bytes } from '@pezkuwi/types-codec'; +import type { IU8a, Registry } from '@pezkuwi/types-codec/types'; +import type { H256 } from '../interfaces/runtime/index.js'; + +import { Enum } from '@pezkuwi/types-codec'; +import { isString, isU8a, u8aToU8a } from '@pezkuwi/util'; + +/** @internal */ +function decodeDataU8a (registry: Registry, value: Uint8Array): [undefined | Uint8Array, number | undefined] { + const indicator = value[0]; + + if (!indicator) { + return [undefined, undefined]; + } else if (indicator >= 1 && indicator <= 33) { + const length = indicator - 1; + const data = value.subarray(1, length + 1); + + // in this case, we are passing a Raw back (since we have no length) + return [registry.createTypeUnsafe('Raw', [data]), 1]; + } else if (indicator >= 34 && indicator <= 37) { + return [value.subarray(1, 32 + 1), indicator - 32]; // 34 becomes 2 + } + + throw new Error(`Unable to decode Data, invalid indicator byte ${indicator}`); +} + +/** @internal */ +function decodeData (registry: Registry, value?: Record | Uint8Array | Enum | string): [any, number | undefined] { + if (isU8a(value) || isString(value)) { + return decodeDataU8a(registry, u8aToU8a(value)); + } else if (!value) { + return [undefined, undefined]; + } + + // assume we have an Enum or an object input, handle this via the normal Enum decoding + return [value, undefined]; +} + +/** + * @name Data + * @description + * A [[Data]] container with node, raw or hashed data + */ +export class Data extends Enum { + constructor (registry: Registry, value?: Record | Uint8Array | Enum | string) { + super(registry, { + None: 'Null', // 0 + Raw: 'Bytes', // 1 + // eslint-disable-next-line sort-keys + BlakeTwo256: 'H256', // 2 + Sha256: 'H256', // 3 + // eslint-disable-next-line sort-keys + Keccak256: 'H256', // 4 + ShaThree256: 'H256' // 5 + }, ...decodeData(registry, value)); + + if (this.isRaw && this.asRaw.length > 32) { + throw new Error('Data.Raw values are limited to a maximum length of 32 bytes'); + } + } + + public get asBlakeTwo256 (): H256 { + return this.value as H256; + } + + public get asKeccak256 (): H256 { + return this.value as H256; + } + + public get asRaw (): Bytes { + return this.value as Bytes; + } + + public get asSha256 (): H256 { + return this.value as H256; + } + + public get asShaThree256 (): H256 { + return this.value as H256; + } + + public get isBlakeTwo256 (): boolean { + return this.index === 2; + } + + public get isKeccak256 (): boolean { + return this.index === 4; + } + + public override get isNone (): boolean { + return this.index === 0; + } + + public get isRaw (): boolean { + return this.index === 1; + } + + public get isSha256 (): boolean { + return this.index === 3; + } + + public get isShaThree256 (): boolean { + return this.index === 5; + } + + /** + * @description The encoded length + */ + public override get encodedLength (): number { + return this.toU8a().length; + } + + /** + * @description Encodes the value as a Uint8Array as per the SCALE specifications + */ + public override toU8a (): Uint8Array { + if (this.index === 0) { + return new Uint8Array(1); + } else if (this.index === 1) { + // don't add the length, just the data + const data = this.value.toU8a(true); + const length = Math.min(data.length, 32); + const u8a = new Uint8Array(length + 1); + + u8a.set([length + 1], 0); + u8a.set(data.subarray(0, length), 1); + + return u8a; + } + + // otherwise we simply have a hash + const u8a = new Uint8Array(33); + + u8a.set([this.index + 32], 0); + u8a.set(this.value.toU8a(), 1); + + return u8a; + } +} diff --git a/packages/types/src/primitive/StorageKey.spec.ts b/packages/types/src/primitive/StorageKey.spec.ts new file mode 100644 index 0000000..11a1fbd --- /dev/null +++ b/packages/types/src/primitive/StorageKey.spec.ts @@ -0,0 +1,43 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/// + +import rpcDataV11 from '@pezkuwi/types-support/metadata/v11/bizinikiwi-hex'; + +import { TypeRegistry } from '../create/index.js'; +import { decorateStorage, Metadata } from '../metadata/index.js'; +import { StorageKey } from './index.js'; + +describe('StorageKey', (): void => { + const registry = new TypeRegistry(); + + describe('with MetadataV11', (): void => { + const metadata = new Metadata(registry, rpcDataV11); + + registry.setMetadata(metadata); + + const query = decorateStorage(registry, metadata.asLatest, metadata.version); + + it('should allow decoding of a DoubleMap key', (): void => { + const key = new StorageKey(registry, '0x5f3e4907f716ac89b6347d15ececedca8bde0a0ea8864605e3b68ed9cb2da01b66ccada06515787c10000000e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f'); + + key.setMeta(query['staking']['erasStakers'].meta); + + expect(key.toHuman()).toEqual([ + '16', + '5GNJqTPyNqANBkUVMN1LPPrxXnFouWXoe2wNSmmEoLctxiZY' + ]); + }); + + it('should allow decoding of a Map key', (): void => { + const key = new StorageKey(registry, '0x426e15054d267946093858132eb537f191ca57b0c4b20b29ae7e99d6201d680cc906f7710aa165d62c709012f807af8fc3f0d2abb0c51ca9a88d4ef24d1a092bf89dacf5ce63ea1d'); + + key.setMeta(query['society']['defenderVotes'].meta); + + expect(key.toHuman()).toEqual([ + '5D4yQHKfqCQYThhHmTfN1JEDi47uyDJc1xg9eZfAG1R7FC7J' + ]); + }); + }); +}); diff --git a/packages/types/src/primitive/StorageKey.ts b/packages/types/src/primitive/StorageKey.ts new file mode 100644 index 0000000..63a2591 --- /dev/null +++ b/packages/types/src/primitive/StorageKey.ts @@ -0,0 +1,251 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, AnyTuple, Codec } from '@pezkuwi/types-codec/types'; +import type { AllHashers } from '../interfaces/metadata/definitions.js'; +import type { StorageEntryMetadataLatest, StorageHasher } from '../interfaces/metadata/index.js'; +import type { SiLookupTypeId } from '../interfaces/scaleInfo/index.js'; +import type { IStorageKey, Registry } from '../types/index.js'; +import type { StorageEntry } from './types.js'; + +import { Bytes } from '@pezkuwi/types-codec'; +import { isFunction, isString, isU8a } from '@pezkuwi/util'; + +import { getSiName } from '../metadata/util/index.js'; +import { unwrapStorageType } from '../util/index.js'; + +interface Decoded { + key?: Uint8Array | string | undefined; + method?: string | undefined; + section?: string | undefined; +} + +interface StorageKeyExtra { + method: string; + section: string; +} + +// hasher type -> [initialHashLength, canDecodeKey] +const HASHER_MAP: Record = { + // opaque + Blake2_128: [16, false], // eslint-disable-line camelcase + Blake2_128Concat: [16, true], // eslint-disable-line camelcase + Blake2_256: [32, false], // eslint-disable-line camelcase + Identity: [0, true], + Twox128: [16, false], + Twox256: [32, false], + Twox64Concat: [8, true] +}; + +/** @internal */ +function decodeStorageKey (value?: string | Uint8Array | StorageKey | StorageEntry | [StorageEntry, unknown[]?]): Decoded { + if (isU8a(value) || !value || isString(value)) { + // let Bytes handle these inputs + return { key: value }; + } else if (value instanceof StorageKey) { + return { + key: value, + method: value.method, + section: value.section + }; + } else if (isFunction(value)) { + return { + key: value(), + method: value.method, + section: value.section + }; + } else if (Array.isArray(value)) { + const [fn, args = []] = value; + + if (!isFunction(fn)) { + throw new Error('Expected function input for key construction'); + } + + if (fn.meta && fn.meta.type.isMap) { + const map = fn.meta.type.asMap; + + if (!Array.isArray(args) || args.length !== map.hashers.length) { + throw new Error(`Expected an array of ${map.hashers.length} values as params to a Map query`); + } + } + + return { + key: fn(...args), + method: fn.method, + section: fn.section + }; + } + + throw new Error(`Unable to convert input ${value as string} to StorageKey`); +} + +/** @internal */ +function decodeHashers (registry: Registry, value: Uint8Array, hashers: [StorageHasher, SiLookupTypeId][]): A { + // the storage entry is xxhashAsU8a(prefix, 128) + xxhashAsU8a(method, 128), 256 bits total + let offset = 32; + const count = hashers.length; + const result = new Array(count); + + for (let i = 0; i < count; i++) { + const [hasher, type] = hashers[i]; + const [hashLen, canDecode] = HASHER_MAP[hasher.type as 'Identity']; + const decoded = canDecode + ? registry.createTypeUnsafe(getSiName(registry.lookup, type), [value.subarray(offset + hashLen)]) + : registry.createTypeUnsafe('Raw', [value.subarray(offset, offset + hashLen)]); + + offset += hashLen + (canDecode ? decoded.encodedLength : 0); + result[i] = decoded; + } + + return result as A; +} + +/** @internal */ +function decodeArgsFromMeta (registry: Registry, value: Uint8Array, meta?: StorageEntryMetadataLatest): A { + if (!meta || !meta.type.isMap) { + return [] as unknown as A; + } + + const { hashers, key } = meta.type.asMap; + const keys = hashers.length === 1 + ? [key] + : registry.lookup.getSiType(key).def.asTuple; + + return decodeHashers(registry, value, hashers.map((h, i) => [h, keys[i]])); +} + +/** @internal */ +function getMeta (value: StorageKey | StorageEntry | [StorageEntry, unknown[]?]): StorageEntryMetadataLatest | undefined { + if (value instanceof StorageKey) { + return value.meta; + } else if (isFunction(value)) { + return value.meta; + } else if (Array.isArray(value)) { + const [fn] = value; + + return fn.meta; + } + + return undefined; +} + +/** @internal */ +function getType (registry: Registry, value: StorageKey | StorageEntry | [StorageEntry, unknown[]?]): string { + if (value instanceof StorageKey) { + return value.outputType; + } else if (isFunction(value)) { + return unwrapStorageType(registry, value.meta.type); + } else if (Array.isArray(value)) { + const [fn] = value; + + if (fn.meta) { + return unwrapStorageType(registry, fn.meta.type); + } + } + + // If we have no type set, default to Raw + return 'Raw'; +} + +/** + * @name StorageKey + * @description + * A representation of a storage key (typically hashed) in the system. It can be + * constructed by passing in a raw key or a StorageEntry with (optional) arguments. + */ +export class StorageKey extends Bytes implements IStorageKey { + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore This is assigned via this.decodeArgsFromMeta() + #args: A; + #meta?: StorageEntryMetadataLatest | undefined; + #outputType: string; + #method?: string | undefined; + #section?: string | undefined; + + constructor (registry: Registry, value?: string | Uint8Array | StorageKey | StorageEntry | [StorageEntry, unknown[]?], override: Partial = {}) { + const { key, method, section } = decodeStorageKey(value); + + super(registry, key); + + this.#outputType = getType(registry, value as StorageKey); + + // decode the args (as applicable based on the key and the hashers, after all init) + this.setMeta(getMeta(value as StorageKey), override.section || section, override.method || method); + } + + /** + * @description Return the decoded arguments (applicable to map with decodable values) + */ + public get args (): A { + return this.#args; + } + + /** + * @description The metadata or `undefined` when not available + */ + public get meta (): StorageEntryMetadataLatest | undefined { + return this.#meta; + } + + /** + * @description The key method or `undefined` when not specified + */ + public get method (): string | undefined { + return this.#method; + } + + /** + * @description The output type + */ + public get outputType (): string { + return this.#outputType; + } + + /** + * @description The key section or `undefined` when not specified + */ + public get section (): string | undefined { + return this.#section; + } + + public is (key: IStorageKey): key is IStorageKey { + return key.section === this.section && key.method === this.method; + } + + /** + * @description Sets the meta for this key + */ + public setMeta (meta?: StorageEntryMetadataLatest, section?: string, method?: string): this { + this.#meta = meta; + this.#method = method || this.#method; + this.#section = section || this.#section; + + if (meta) { + this.#outputType = unwrapStorageType(this.registry, meta.type); + } + + try { + this.#args = decodeArgsFromMeta(this.registry, this.toU8a(true), meta); + } catch { + // ignore... + } + + return this; + } + + /** + * @description Returns the Human representation for this type + */ + public override toHuman (_isExtended?: boolean, disableAscii?: boolean): AnyJson { + return this.#args.length + ? this.#args.map((a) => a.toHuman(undefined, disableAscii)) + : super.toHuman(undefined, disableAscii); + } + + /** + * @description Returns the raw type for this + */ + public override toRawType (): string { + return 'StorageKey'; + } +} diff --git a/packages/types/src/primitive/index.ts b/packages/types/src/primitive/index.ts new file mode 100644 index 0000000..fe56210 --- /dev/null +++ b/packages/types/src/primitive/index.ts @@ -0,0 +1,13 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +/** + * @summary Type definitions that are used in the system + */ + +// all external +export { BitVec, Bool, bool, Bytes, F32, f32, F64, f64, I8, i8, I16, i16, I32, i32, I64, i64, I128, i128, I256, i256, ISize, isize, Null, OptionBool, Text, Type, U8, u8, U16, u16, U32, u32, U64, u64, U128, u128, U256, u256, USize, usize } from '@pezkuwi/types-codec'; + +// all local +export { Data } from './Data.js'; +export { StorageKey } from './StorageKey.js'; diff --git a/packages/types/src/primitive/types.ts b/packages/types/src/primitive/types.ts new file mode 100644 index 0000000..2b97d5f --- /dev/null +++ b/packages/types/src/primitive/types.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { StorageEntryMetadataLatest } from '../interfaces/metadata/index.js'; +import type { Codec, Inspect } from '../types/index.js'; + +export interface StorageEntryIterator { + (...args: unknown[]): Uint8Array & Codec; + meta: StorageEntryMetadataLatest; +} + +export interface StorageEntry { + (...args: unknown[]): Uint8Array; + iterKey?: StorageEntryIterator; + inspect: (...args: unknown[]) => Inspect; + keyPrefix: (...args: unknown[]) => Uint8Array; + meta: StorageEntryMetadataLatest; + method: string; + prefix: string; + section: string; + toJSON: () => any; +} diff --git a/packages/types/src/types/augmentLookup.ts b/packages/types/src/types/augmentLookup.ts new file mode 100644 index 0000000..41bf508 --- /dev/null +++ b/packages/types/src/types/augmentLookup.ts @@ -0,0 +1,23 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types-create/types/lookup'; + +import type { Vec } from '@pezkuwi/types-codec'; +import type { LookupString } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { PortableType } from '../interfaces/metadata/index.js'; +import type { SiLookupTypeId, SiType } from '../interfaces/scaleInfo/index.js'; + +declare module '@pezkuwi/types-create/types/lookup' { + interface ILookup { + readonly names: string[]; + readonly types: Vec; + + getName (lookupId: SiLookupTypeId | LookupString | number): string | undefined; + getSiType (lookupId: SiLookupTypeId | LookupString | number): SiType; + getTypeDef (lookupId: SiLookupTypeId | LookupString | number): TypeDef; + } +} diff --git a/packages/types/src/types/augmentRegistry.ts b/packages/types/src/types/augmentRegistry.ts new file mode 100644 index 0000000..2f3d890 --- /dev/null +++ b/packages/types/src/types/augmentRegistry.ts @@ -0,0 +1,53 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// import type lookup before we augment - in some environments +// this is required to allow for ambient/previous definitions +import '@pezkuwi/types-codec/types/registry'; +import '@pezkuwi/types-create/types/augmentRegistry'; + +import type { AnyString, Codec, CodecClass, LookupString } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { ExtDef } from '../extrinsic/signedExtensions/types.js'; +import type { MetadataLatest } from '../interfaces/metadata/index.js'; +import type { SiField, SiLookupTypeId } from '../interfaces/scaleInfo/index.js'; +import type { ChainProperties } from '../interfaces/system/index.js'; +import type { Metadata, PortableRegistry } from '../metadata/index.js'; +import type { CallFunction as CallFunctionExt } from './calls.js'; +import type { DetectCodec } from './detect.js'; +import type { CodecHasher, RegisteredTypes } from './registry.js'; + +declare module '@pezkuwi/types-codec/types/registry' { + interface RegistryError { + fields: SiField[]; + } + + interface Registry { + readonly firstCallIndex: Uint8Array; + readonly knownTypes: RegisteredTypes; + readonly metadata: MetadataLatest; + readonly unknownTypes: string[]; + readonly signedExtensions: string[]; + + findMetaCall (callIndex: Uint8Array): CallFunctionExt; + + clearCache (): void + + createLookupType (lookupId: SiLookupTypeId | number): LookupString; + + createClass (type: K): CodecClass>; + createType (type: K, ...params: unknown[]): DetectCodec; + + get (name: K, withUnknown?: boolean, knownTypeDef?: TypeDef): CodecClass> | undefined; + getChainProperties (): ChainProperties | undefined; + getDefinition (typeName: string): string | undefined; + getModuleInstances (specName: AnyString, moduleName: string): string[] | undefined; + + setKnownTypes (types: RegisteredTypes): void; + setChainProperties (properties?: ChainProperties): void; + setHasher (hasher?: CodecHasher | null): void; + setLookup (lookup: PortableRegistry): void; + setMetadata (metadata: Metadata, signedExtensions?: string[], userExtensions?: ExtDef): void; + setSignedExtensions (signedExtensions?: string[], userExtensions?: ExtDef): void; + } +} diff --git a/packages/types/src/types/calls.ts b/packages/types/src/types/calls.ts new file mode 100644 index 0000000..e418eb1 --- /dev/null +++ b/packages/types/src/types/calls.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyTuple, CallBase as CallBaseBase, CallFunction as CallFunctionBase, IMethod } from '@pezkuwi/types-codec/types'; +import type { FunctionMetadataLatest } from '../interfaces/metadata/index.js'; +import type { Call } from '../interfaces/runtime/index.js'; +import type { Registry } from './registry.js'; + +export interface CallBase extends CallBaseBase { + registry: Registry; +} + +export interface CallFunction extends CallFunctionBase { + (...args: any[]): Call & IMethod; +} diff --git a/packages/types/src/types/codec.ts b/packages/types/src/types/codec.ts new file mode 100644 index 0000000..c4b54cf --- /dev/null +++ b/packages/types/src/types/codec.ts @@ -0,0 +1,15 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec } from '@pezkuwi/types-codec/types'; + +export type { AnyFunction, AnyJson, AnyNumber, AnyString, AnyTuple, AnyU8a, ArgsDef, BareOpts, Codec, CodecClass, CodecTo, Inspect } from '@pezkuwi/types-codec/types'; + +// helper to extract keys from an array +export type ArrayElementType = T extends readonly (infer ElementType)[] + ? ElementType + : never; + +export type Callback = E extends Codec + ? (result: T, extra: E) => void | Promise + : (result: T) => void | Promise; diff --git a/packages/types/src/types/definitions.ts b/packages/types/src/types/definitions.ts new file mode 100644 index 0000000..ce7267b --- /dev/null +++ b/packages/types/src/types/definitions.ts @@ -0,0 +1,119 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { HexString } from '@pezkuwi/util/types'; + +export type DefinitionTypeType = string; + +export type DefinitionTypeEnum = { _fallback?: DefinitionTypeType } & ({ _enum: DefinitionTypeType[] } | { _enum: Record }); + +export interface DefinitionTypeSet { _fallback?: DefinitionTypeType, _set: Record } + +type DefinitionTypeStructExtra = { + _alias?: Record; + _fallback?: DefinitionTypeType; +} & Record; + +export type DefinitionTypeStruct = Record | DefinitionTypeStructExtra; + +export type DefinitionType = string | DefinitionTypeEnum | DefinitionTypeSet | DefinitionTypeStruct; + +export interface DefinitionRpcParam { + /** true if the parameter is a blockhash that is to be used in historic queries */ + isHistoric?: boolean; + /** true if this is an optional parameter (we forgo the use of Option types) */ + isOptional?: boolean; + /** The name of the parameter */ + name: string; + /** The type of the parameter */ + type: DefinitionTypeType; +} + +export interface DefinitionRpc { + /** Alias to a specific method (this allows replacements and renames) */ + alias?: string[]; + /** Alias to a section */ + aliasSection?: string; + /** A string describing a deprecated interface, along with to-use information */ + deprecated?: string; + /** The description for this RPC call */ + description: string; + /** The (optional) endpoint override. If not specified the section_method is used */ + endpoint?: string; + /** true if this needs a signed submission, e.g. when submitting extrinsics */ + isSigned?: boolean; + /** true if this is an RPC call that has been marked unsafe */ + isUnsafe?: boolean; + /** Don't log any errors if they occur (should be used sparingly for exceptions only) */ + noErrorLog?: boolean; + /** The applicable parameters for the call */ + params: DefinitionRpcParam[]; + /** The return type for the RPC call */ + type: DefinitionTypeType; +} + +export interface DefinitionRpcExt extends DefinitionRpc { + /** true if this is a method yielding a subscription */ + isSubscription: boolean; + /** The jsonrpc name for this method, typically section_method */ + jsonrpc: string; + /** The method name for this RPC */ + method: string; + /** Optional subscription information in the form [subscription name, subscribe method, unsubscribe method] */ + pubsub?: [subname: string, subscribe: string, unsubscribe: string]; + /** The section name for this RPC */ + section: string; +} + +export interface DefinitionCallParam { + /** The name for this parameter */ + name: string; + /** The return type for this parameter */ + type: DefinitionTypeType; +} + +export interface DefinitionCall { + /** The description of this runtime call (generally extracted from the Rust code as-is) */ + description: string; + /** The applicable call parameters */ + params: DefinitionCallParam[]; + /** The return type for this call */ + type: DefinitionTypeType; +} + +export interface DefinitionRpcSub extends DefinitionRpc { + /** Subscription information in the form [subscription name, subscribe method, unsubscribe method] */ + pubsub: [subname: string, subscribe: string, unsubscribe: string]; +} + +export type DefinitionsRpc = Record; + +export interface DefinitionsCallEntry { + /** The method that are available on this interface */ + methods: Record; + /** The version of the runtime api that this definition applies to */ + version: number; +} + +export type DefinitionsCall = Record; + +export interface DefinitionCallNamed extends DefinitionCall { + /** The method for this call (combined with section to form name) */ + method: string; + /** The actual name of the runtime call as exposed by the runtime itself */ + name: string; + /** The section for this call (combined with method to form name) */ + section: string; + /** The hash of this section (these map to what is available in state_getRuntimeVersion) */ + sectionHash: HexString; + /** The version of the runtime interface */ + version: number; +} + +export type DefinitionsTypes = Record; + +export interface Definitions { + rpc?: DefinitionsRpc; + runtime?: DefinitionsCall; + types: DefinitionsTypes; +} diff --git a/packages/types/src/types/detect.ts b/packages/types/src/types/detect.ts new file mode 100644 index 0000000..1f40d2a --- /dev/null +++ b/packages/types/src/types/detect.ts @@ -0,0 +1,148 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { InterfaceTypes } from '@pezkuwi/types/types'; +import type { bool, BTreeMap, BTreeSet, Bytes, CodecSet, Compact, Enum, HashMap, Linkage, Null, Option, OptionBool, Range, RangeInclusive, Result, Struct, u8, U8aFixed, Vec, VecFixed } from '@pezkuwi/types-codec'; +import type { Codec, ICompact, IEnum, IMap, IMethod, INumber, IOption, IResult, ISet, IStruct, ITuple, IU8a, IVec } from '@pezkuwi/types-codec/types'; + +export type DetectCodec = + // This is weird - it looks the wrong way around (i.e. T check should be done first), however + // it does work (as evident with checkTypes) and is problematic the other way around + K extends keyof InterfaceTypes + ? InterfaceTypes[K] + : T extends ICompact | IEnum | IMap | IMethod | INumber | IOption | IResult | ISet | IStruct | ITuple | IU8a | IVec + ? T + : __Codec<__Codecs<__Tokenize<__Sanitize>[0]>>; + +export type __Codec = + V[0] extends Codec + ? V[0] + : Codec; + +// trim leading and trailing spaces and unused portions, e.g `...;]` +export type __Sanitize = + K extends ` ${infer X}` | `${infer X} ` | ` ${infer X} ` + ? __Sanitize + : K extends `${infer A} ${infer B}` + ? __Sanitize<`${A}${B}`> + : K extends `${infer A};${string}]${infer B}` + ? __Sanitize<`${A}${B}`> + : K extends `${infer X};${string}]` + ? __Sanitize + : K; + +export type __Value = string | Record | __Value[]; + +export interface __MapWrapOne { + 'BTreeSet<': BTreeSet; + 'Compact<': C extends INumber ? Compact : Codec; + 'Linkage<': Linkage; + 'Option<': C extends bool ? OptionBool : Option; + 'Range<': C extends INumber ? Range : Codec; + 'RangeInclusive<': C extends INumber ? RangeInclusive : Codec; + 'Vec<': C extends u8 ? Bytes : Vec; + '[': C extends u8 ? U8aFixed : VecFixed; +} + +// FIXME We don't cater for Int< & UInt< here. These could be problematic, since it has +// a variable number of inner arguments, better would be to just strip them inside the sanitize +export interface __MapWrapTwo { + 'BTreeMap<': BTreeMap; + 'HashMap<': HashMap; + 'Result<': Result; +} + +export type __WrapOne = keyof __MapWrapOne; + +export type __WrapTwo = keyof __MapWrapTwo; + +export type __Wrap = __WrapOne | __WrapTwo; + +export type __ToTuple = + O[0] extends Codec + ? O[1] extends Codec + ? ITuple + : O[0] + : Null; + +export type __CodecsNext = + K extends __WrapOne + ? C extends [Codec, ...infer X] + ? [__MapWrapOne[K], ...X] + : Codec + : K extends __WrapTwo + ? C extends [Codec, Codec, ...infer X] + ? [__MapWrapTwo[K], ...X] + : Codec + : [ + // __CodecFirst + K extends keyof InterfaceTypes + ? InterfaceTypes[K] + : K extends unknown[] + ? __ToTuple<__Codecs> + : K extends Record + // __ToStruct> + ? K['_enum'] extends true + ? Enum + : K['_set'] extends true + ? CodecSet + : Struct + : Codec, + ...C + ]; + +export type __Codecs = + T extends [infer K, ...infer N] + ? __CodecsNext> + : []; + +export type __Combine = + I extends '' + ? V + : [...V, I]; + +export type __CombineInner = + I extends '' + ? [...V, X] + : [I, ...V, X]; + +// FIXME At this point enum/set/struct are empty, no field indicators, just type indicators +export type __TokenizeStruct = + __Tokenize>; + +export type __TokenizeTuple = + __Tokenize>; + +// NOTE For recursion limits, it is more optimal to use __Sanitize with conjunction with __Tokenize +// below, even while we do more matching (Number of characters iterated through is the most problematic) +export type __Tokenize = + K extends '' | '>' | ')' | '}' + ? [__Combine, ''] + : K extends `${__Wrap}${infer R}` + // __TokenizeWrapped + ? K extends `${infer X}${R}` + ? X extends '[' + ? __Tokenize, '[']> + : __Tokenize> + : never + : K extends `${',' | '>'}${infer R}` + ? __Tokenize> + : K extends `${')' | '}'}${infer R}` + ? [__Combine, R] + : K extends `(${infer R}` + ? __TokenizeTuple<__Tokenize, V, I> + : K extends `{${infer R}` + ? __TokenizeStruct<__Tokenize, V, I, R> + : K extends `${keyof InterfaceTypes}${',' | '>'}${infer R}` + // __TokenizeKnown + ? K extends `${infer X}${',' | '>'}${R}` + ? __Tokenize> + : never + : K extends `${infer C}${infer R}` + ? __Tokenize + : [__Combine, '']; diff --git a/packages/types/src/types/events.ts b/packages/types/src/types/events.ts new file mode 100644 index 0000000..bab7603 --- /dev/null +++ b/packages/types/src/types/events.ts @@ -0,0 +1,37 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Codec } from '@pezkuwi/types-codec/types'; +import type { TypeDef } from '@pezkuwi/types-create/types'; +import type { EventMetadataLatest } from '../interfaces/metadata/index.js'; +import type { Hash } from '../interfaces/runtime/index.js'; +import type { EventId, Phase } from '../interfaces/system/index.js'; + +export interface IEventRecord extends Codec { + readonly phase: Phase; + readonly event: IEvent; + readonly topics: Hash[]; +} + +export interface IEventData extends Codec { + readonly meta: EventMetadataLatest; + readonly method: string; + readonly names: string[] | null; + readonly section: string; + readonly typeDef: TypeDef[]; +} + +export interface IEventLike { + readonly index: unknown; + readonly method: unknown; + readonly section: unknown; +} + +export interface IEvent extends IEventLike, Codec { + readonly data: N extends Record + ? N & T & IEventData + : T & IEventData; + readonly index: EventId; + readonly method: string; + readonly section: string; +} diff --git a/packages/types/src/types/extrinsic.ts b/packages/types/src/types/extrinsic.ts new file mode 100644 index 0000000..3ae3783 --- /dev/null +++ b/packages/types/src/types/extrinsic.ts @@ -0,0 +1,262 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { AnyJson, AnyNumber, AnyTuple, AnyU8a, Codec } from '@pezkuwi/types-codec/types'; +import type { HexString } from '@pezkuwi/util/types'; +import type { ExtrinsicStatus } from '../interfaces/author/index.js'; +import type { EcdsaSignature, Ed25519Signature, Sr25519Signature } from '../interfaces/extrinsics/index.js'; +import type { Address, Call, H256, Hash } from '../interfaces/runtime/index.js'; +import type { DispatchError, DispatchInfo, EventRecord } from '../interfaces/system/index.js'; +import type { ICompact, IKeyringPair, IMethod, INumber, IRuntimeVersionBase } from './interfaces.js'; +import type { Registry } from './registry.js'; + +export interface ISubmittableResult { + readonly dispatchError?: DispatchError | undefined; + readonly dispatchInfo?: DispatchInfo | undefined; + readonly events: EventRecord[]; + readonly internalError?: Error | undefined; + readonly status: ExtrinsicStatus; + readonly isCompleted: boolean; + readonly isError: boolean; + readonly isFinalized: boolean; + readonly isInBlock: boolean; + readonly isWarning: boolean; + readonly txHash: Hash; + readonly txIndex?: number | undefined; + + filterRecords (section: string, method: string): EventRecord[]; + findRecord (section: string, method: string): EventRecord | undefined; + toHuman (isExtended?: boolean): AnyJson; +} + +export interface SignerPayloadJSON { + /** + * @description The ss-58 encoded address + */ + address: string; + + /** + * @description The id of the asset used to pay fees, in hex + */ + assetId?: HexString; + + /** + * @description The checkpoint hash of the block, in hex + */ + blockHash: HexString; + + /** + * @description The checkpoint block number, in hex + */ + blockNumber: HexString; + + /** + * @description The era for this transaction, in hex + */ + era: HexString; + + /** + * @description The genesis hash of the chain, in hex + */ + genesisHash: HexString; + + /** + * @description The metadataHash for the CheckMetadataHash SignedExtension, as hex + */ + metadataHash?: HexString; + + /** + * @description The encoded method (with arguments) in hex + */ + method: string; + + /** + * @description The mode for the CheckMetadataHash SignedExtension, in hex + */ + mode?: number; + + /** + * @description The nonce for this transaction, in hex + */ + nonce: HexString; + + /** + * @description The current spec version for the runtime + */ + specVersion: HexString; + + /** + * @description The tip for this transaction, in hex + */ + tip: HexString; + + /** + * @description The current transaction version for the runtime + */ + transactionVersion: HexString; + + /** + * @description The applicable signed extensions for this runtime + */ + signedExtensions: string[]; + + /** + * @description The version of the extrinsic we are dealing with + */ + version: number; + + /** + * @description Optional flag that enables the use of the `signedTransaction` field in + * `singAndSend`, `signAsync`, and `dryRun`. + */ + withSignedTransaction?: boolean; +} + +export interface SignerPayloadRawBase { + /** + * @description The hex-encoded data for this request + */ + data: string; + + /** + * @description The type of the contained data + */ + type?: 'bytes' | 'payload'; +} + +export interface SignerPayloadRaw extends SignerPayloadRawBase { + /** + * @description The ss-58 encoded address + */ + address: string; + + /** + * @description The type of the contained data + */ + type: 'bytes' | 'payload'; +} + +export interface ISignerPayload { + toPayload (): SignerPayloadJSON; + toRaw (): SignerPayloadRaw; +} + +export interface SignerResult { + /** + * @description The id for this request + */ + id: number; + + /** + * @description The resulting signature in hex + */ + signature: HexString; + + /** + * @description The payload constructed by the signer. This allows the + * inputted signed transaction to bypass `signAndSend` from adding the signature to the payload, + * and instead broadcasting the transaction directly. There is a small validation layer. Please refer + * to the implementation for more information. If the inputted signed transaction is not actually signed, it will fail with an error. + * + * This will also work for `signAsync`. The new payload will be added to the Extrinsic, and will be sent once the consumer calls `.send()`. + * + * NOTE: This is only implemented for `signPayload`, and will only work when the `withSignedTransaction` option is enabled as an option. + */ + signedTransaction?: HexString | Uint8Array; +} + +export interface Signer { + /** + * @description signs an extrinsic payload from a serialized form + */ + signPayload?: (payload: SignerPayloadJSON) => Promise; + + /** + * @description signs a raw payload, only the bytes data as supplied + */ + signRaw?: (raw: SignerPayloadRaw) => Promise; + + /** + * @description Receives an update for the extrinsic signed by a `signer.sign` + */ + update?: (id: number, status: H256 | ISubmittableResult) => void; +} + +export interface IExtrinsicEra extends Codec { + asImmortalEra: Codec; + asMortalEra: Codec; +} + +export interface SignatureOptions { + allowCallDataAlteration?: boolean; + blockHash: Uint8Array | string; + era?: IExtrinsicEra; + genesisHash: Uint8Array | string; + nonce: AnyNumber; + runtimeVersion: IRuntimeVersionBase; + signedExtensions?: string[]; + signer?: Signer; + tip?: AnyNumber; + assetId?: AnyNumber | object; + mode?: AnyNumber; + metadataHash?: Uint8Array | string; + withSignedTransaction?: boolean; +} + +interface ExtrinsicSignatureBase { + readonly isSigned: boolean; + readonly era: IExtrinsicEra; + readonly nonce: ICompact; + readonly signature: EcdsaSignature | Ed25519Signature | Sr25519Signature; + readonly signer: Address; + readonly tip: ICompact; +} + +export interface ExtrinsicPayloadValue { + blockHash: AnyU8a; + era: AnyU8a | IExtrinsicEra; + genesisHash: AnyU8a; + method: AnyU8a | IMethod; + nonce: AnyNumber; + specVersion: AnyNumber; + tip: AnyNumber; + transactionVersion: AnyNumber; + assetId?: HexString; + mode?: AnyNumber; + metadataHash?: AnyU8a; +} + +export interface IExtrinsicSignature extends ExtrinsicSignatureBase, Codec { + addSignature (signer: Address | Uint8Array | string, signature: Uint8Array | HexString, payload: Uint8Array | HexString): IExtrinsicSignature; + sign (method: Call, account: IKeyringPair, options: SignatureOptions): IExtrinsicSignature; + signFake (method: Call, address: Address | Uint8Array | string, options: SignatureOptions): IExtrinsicSignature; + + readonly registry: Registry; +} + +interface IExtrinsicSignable extends Codec { + addSignature (signer: Address | Uint8Array | string, signature: Uint8Array | HexString, payload: ExtrinsicPayloadValue | Uint8Array | HexString): T; + sign (account: IKeyringPair, options: SignatureOptions): T; + signFake (address: Address | Uint8Array | string, options: SignatureOptions): T; + + readonly registry: Registry; +} + +export interface IExtrinsicImpl extends IExtrinsicSignable { + readonly method: Call; + readonly signature: IExtrinsicSignature; + readonly version: number; +} + +export interface IExtrinsicV5Impl extends IExtrinsicSignable { + readonly method: Call; + readonly signature: IExtrinsicSignature; + readonly version: number; +} + +export interface IExtrinsic extends IExtrinsicSignable>, ExtrinsicSignatureBase, IMethod { + readonly length: number; + readonly method: IMethod; + readonly type: number; + readonly version: number; +} diff --git a/packages/types/src/types/index.ts b/packages/types/src/types/index.ts new file mode 100644 index 0000000..6f143d3 --- /dev/null +++ b/packages/types/src/types/index.ts @@ -0,0 +1,22 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +// augment our internal Lookup & Registry interfaces +import './augmentLookup.js'; +import './augmentRegistry.js'; + +// augmented exports +export * from '@pezkuwi/types/types/registry'; + +// used inside augmented definitions +export type { Observable } from 'rxjs'; + +// other exports +export * from '../create/types.js'; +export * from './calls.js'; +export * from './codec.js'; +export * from './definitions.js'; +export * from './detect.js'; +export * from './events.js'; +export * from './extrinsic.js'; +export * from './interfaces.js'; diff --git a/packages/types/src/types/interfaces.ts b/packages/types/src/types/interfaces.ts new file mode 100644 index 0000000..6a7385b --- /dev/null +++ b/packages/types/src/types/interfaces.ts @@ -0,0 +1,51 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { SignOptions } from '@pezkuwi/keyring/types'; +import type { AnyTuple, Codec, IMethod as IMethodBase, INumber, IText } from '@pezkuwi/types-codec/types'; +import type { FunctionMetadataLatest, StorageEntryMetadataLatest } from '../interfaces/metadata/index.js'; +import type { Registry } from './registry.js'; + +export type { ICompact, IEnum, IMap, INumber, IOption, IResult, ISet, IStruct, IText, ITuple, IU8a, IVec } from '@pezkuwi/types-codec/types'; + +export interface IMethod extends IMethodBase { + readonly registry: Registry; +} + +export interface IKeyringPair { + readonly address: string; + readonly addressRaw: Uint8Array; + readonly publicKey: Uint8Array; + + sign: (data: Uint8Array, options?: SignOptions) => Uint8Array; +} + +export interface IRuntimeVersionBase { + readonly apis: unknown[]; + readonly authoringVersion: unknown; + readonly implName: unknown; + readonly implVersion: unknown; + readonly specName: unknown; + readonly specVersion: unknown; + readonly transactionVersion: unknown; +} + +export interface IRuntimeVersion extends IRuntimeVersionBase { + readonly apis: Codec[]; + readonly authoringVersion: INumber; + readonly implName: IText; + readonly implVersion: INumber; + readonly specName: IText; + readonly specVersion: INumber; + readonly transactionVersion: INumber; +} + +export interface IStorageKey { + readonly args: A; + readonly meta: StorageEntryMetadataLatest | undefined; + readonly method: string | undefined; + readonly outputType: string; + readonly section: string | undefined; + + is: (key: IStorageKey) => key is IStorageKey; +} diff --git a/packages/types/src/types/registry.ts b/packages/types/src/types/registry.ts new file mode 100644 index 0000000..168770c --- /dev/null +++ b/packages/types/src/types/registry.ts @@ -0,0 +1,106 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { Observable } from 'rxjs'; +import type { BitVec, Bool, bool, Bytes, F32, f32, F64, f64, I8, i8, I16, i16, I32, i32, I64, i64, I128, i128, I256, i256, ISize, isize, Json, Null, OptionBool, Raw, Text, Type, U8, u8, U16, u16, U32, u32, U64, u64, U128, u128, U256, u256, USize, usize } from '@pezkuwi/types-codec'; +import type { RegistryTypes } from '@pezkuwi/types-codec/types'; +import type { BN } from '@pezkuwi/util'; +import type { HexString } from '@pezkuwi/util/types'; +import type { GenericExtrinsic, GenericExtrinsicEra, GenericExtrinsicPayload, GenericSignerPayload } from '../extrinsic/index.js'; +import type { ExtDef } from '../extrinsic/signedExtensions/types.js'; +import type { GenericCall } from '../generic/index.js'; +import type { HeaderPartial } from '../interfaces/runtime/index.js'; +import type { RuntimeVersionPartial } from '../interfaces/state/index.js'; +import type { Metadata, PortableRegistry } from '../metadata/index.js'; +import type { Data, StorageKey } from '../primitive/index.js'; +import type { DefinitionRpc, DefinitionRpcSub, DefinitionsCall } from './definitions.js'; + +export type { Registry, RegistryError, RegistryTypes } from '@pezkuwi/types-codec/types'; + +export interface InterfaceTypes { + // base codec + BitVec: BitVec, Bytes: Bytes, Json: Json, Null: Null, OptionBool: OptionBool, Raw: Raw, Text: Text, Type: Type, + // base codec - upper variants + Bool: Bool, F32: F32, F64: F64, I128: I128, I16: I16, I256: I256, I32: I32, I64: I64, I8: I8, ISize: ISize, U128: U128, U16: U16, U256: U256, U32: U32, U64: U64, U8: U8, USize: USize, + // base codec - lower variants + bool: bool, f32: f32, f64: f64, i128: i128, i16: i16, i256: i256, i32: i32, i64: i64, i8: i8, isize: isize, u128: u128, u16: u16, u256: u256, u32: u32, u64: u64, u8: u8, usize: usize, + // extrinsic + Extrinsic: GenericExtrinsic, ExtrinsicEra: GenericExtrinsicEra, ExtrinsicPayload: GenericExtrinsicPayload, SignerPayload: GenericSignerPayload, + // generic + Call: GenericCall, + // primitive + Data: Data, StorageKey: StorageKey, + // metadata + Metadata: Metadata, PortableRegistry: PortableRegistry, + // interfaces + HeaderPartial: HeaderPartial, RuntimeVersionPartial: RuntimeVersionPartial +} + +export type CodecHasher = (data: Uint8Array) => Uint8Array; + +export interface ChainUpgradeVersion { + apis: [HexString, number][]; + blockNumber: BN; + specVersion: BN; +} + +export interface ChainUpgrades { + genesisHash: Uint8Array; + network: string; + versions: ChainUpgradeVersion[]; +} + +export interface OverrideVersionedType { + // min (v >= min) and max (v <= max) + minmax: [number | undefined | null, number | undefined | null] | [number?, number?] | (number | undefined | null)[]; + types: RegistryTypes; +} + +export type OverrideModuleType = Record; +export type DeriveCustom = Record (...args: any[]) => Observable>>; + +export type AliasDefinition = Record; + +export interface OverrideBundleDefinition { + alias?: AliasDefinition; + derives?: DeriveCustom; + hasher?: (data: Uint8Array) => Uint8Array; + instances?: Record; + rpc?: Record>; + runtime?: DefinitionsCall; + signedExtensions?: ExtDef; + types?: OverrideVersionedType[]; +} + +export interface OverrideBundleType { + chain?: Record; + spec?: Record; +} + +export interface RegisteredTypes { + /** + * @description Specify the actual hasher override to use in the API. This generally should be done via the typesBundle + */ + hasher?: (data: Uint8Array) => Uint8Array; + /** + * @description Additional types used by runtime modules. This is necessary if the runtime modules + * uses types not available in the base Bizinikiwi runtime. + */ + types?: RegistryTypes; + /** + * @description Alias types, as received via the metadata, to a JS-specific type to avoid conflicts. For instance, you can rename the `Proposal` in the `treasury` module to `TreasuryProposal` as to not have conflicts with the one for democracy. + */ + typesAlias?: AliasDefinition; + /** + * @description A bundle of types related to chain & spec that is injected based on what the chain contains + */ + typesBundle?: OverrideBundleType; + /** + * @description Additional types that are injected based on the chain we are connecting to. There are keyed by the chain, i.e. `{ 'Zagros CC1': { ... } }` + */ + typesChain?: Record; + /** + * @description Additional types that are injected based on the type of node we are connecting to, as set via specName in the runtime version. There are keyed by the node, i.e. `{ 'edgeware': { ... } }` + */ + typesSpec?: Record; +} diff --git a/packages/types/src/util/index.ts b/packages/types/src/util/index.ts new file mode 100644 index 0000000..19d5696 --- /dev/null +++ b/packages/types/src/util/index.ts @@ -0,0 +1,4 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +export * from './storage.js'; diff --git a/packages/types/src/util/storage.ts b/packages/types/src/util/storage.ts new file mode 100644 index 0000000..ba6ce97 --- /dev/null +++ b/packages/types/src/util/storage.ts @@ -0,0 +1,24 @@ +// Copyright 2017-2025 @pezkuwi/types authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import type { StorageEntryTypeLatest } from '../interfaces/metadata/index.js'; +import type { SiLookupTypeId } from '../interfaces/scaleInfo/index.js'; +import type { InterfaceTypes, Registry } from '../types/index.js'; + +import { getSiName } from '../metadata/util/index.js'; + +/** @internal */ +export function unwrapStorageSi (type: StorageEntryTypeLatest): SiLookupTypeId { + return type.isPlain + ? type.asPlain + : type.asMap.value; +} + +/** @internal */ +export function unwrapStorageType (registry: Registry, type: StorageEntryTypeLatest, isOptional?: boolean): keyof InterfaceTypes { + const outputType = getSiName(registry.lookup, unwrapStorageSi(type)); + + return isOptional + ? `Option<${outputType}>` as unknown as keyof InterfaceTypes + : outputType as keyof InterfaceTypes; +} diff --git a/packages/types/tsconfig.build.json b/packages/types/tsconfig.build.json new file mode 100644 index 0000000..3fe7f4c --- /dev/null +++ b/packages/types/tsconfig.build.json @@ -0,0 +1,17 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src" + }, + "exclude": [ + "**/checkTypes.manual.ts", + "**/mod.ts", + "**/*.spec.ts" + ], + "references": [ + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" } + ] +} diff --git a/packages/types/tsconfig.spec.json b/packages/types/tsconfig.spec.json new file mode 100644 index 0000000..c9fd50f --- /dev/null +++ b/packages/types/tsconfig.spec.json @@ -0,0 +1,22 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "baseUrl": "..", + "outDir": "./build", + "rootDir": "./src", + "emitDeclarationOnly": false, + "resolveJsonModule": true, + "noEmit": true + }, + "include": [ + "**/checkTypes.manual.ts", + "**/*.spec.ts" + ], + "references": [ + { "path": "../types/tsconfig.build.json" }, + { "path": "../types-augment/tsconfig.build.json" }, + { "path": "../types-codec/tsconfig.build.json" }, + { "path": "../types-create/tsconfig.build.json" }, + { "path": "../types-support/tsconfig.build.json" } + ] +} diff --git a/pezkuwi-metadata.json b/pezkuwi-metadata.json new file mode 100644 index 0000000..ccf7ede --- /dev/null +++ b/pezkuwi-metadata.json @@ -0,0 +1 @@ +{"jsonrpc":"2.0","id":1,"result":"0x6d6574610e090d000c2870657a73705f636f72651863727970746f2c4163636f756e7449643332000004000401205b75383b2033325d0000040000032000000008000800000503000c083c70657a6672616d655f73797374656d2c4163636f756e74496e666f08144e6f6e636501102c4163636f756e74446174610114001401146e6f6e63651001144e6f6e6365000124636f6e73756d657273100120526566436f756e7400012470726f766964657273100120526566436f756e7400012c73756666696369656e7473100120526566436f756e740001106461746114012c4163636f756e74446174610000100000050500140c4870657a70616c6c65745f62616c616e6365731474797065732c4163636f756e7444617461041c42616c616e63650118001001106672656518011c42616c616e6365000120726573657276656418011c42616c616e636500011866726f7a656e18011c42616c616e6365000114666c6167731c01284578747261466c61677300001800000507001c0c4870657a70616c6c65745f62616c616e636573147479706573284578747261466c61677300000400180110753132380000200000050000240c4070657a6672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540128000c01186e6f726d616c2801045400012c6f7065726174696f6e616c280104540001246d616e6461746f7279280104540000280c3470657a73705f77656967687473247765696768745f76321857656967687400000801207265665f74696d652c010c75363400012870726f6f665f73697a652c010c75363400002c000006300030000005060034083c7072696d69746976655f74797065731048323536000004000401205b75383b2033325d00003800000208003c103470657a73705f72756e74696d651c67656e65726963186469676573741844696765737400000401106c6f677340013c5665633c4469676573744974656d3e000040000002440044103470657a73705f72756e74696d651c67656e6572696318646967657374284469676573744974656d0001142850726552756e74696d650800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e00060024436f6e73656e7375730800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000400105365616c0800480144436f6e73656e737573456e67696e654964000038011c5665633c75383e000500144f74686572040038011c5665633c75383e0000006452756e74696d65456e7669726f6e6d656e745570646174656400080000480000030400000008004c000002500050083c70657a6672616d655f73797374656d2c4576656e745265636f7264080445015404540134000c011470686173657107011450686173650001146576656e7454010445000118746f706963735d0301185665633c543e000054085070657a6b757769636861696e5f72756e74696d653052756e74696d654576656e740001ac1853797374656d040058017c70657a6672616d655f73797374656d3a3a4576656e743c52756e74696d653e0000001c496e6469636573040080018470657a70616c6c65745f696e64696365733a3a4576656e743c52756e74696d653e0003002042616c616e636573040084018870657a70616c6c65745f62616c616e6365733a3a4576656e743c52756e74696d653e00040028506172616d65746572730400ac019070657a70616c6c65745f706172616d65746572733a3a4576656e743c52756e74696d653e000600485472616e73616374696f6e5061796d656e740400cc01b470657a70616c6c65745f7472616e73616374696f6e5f7061796d656e743a3a4576656e743c52756e74696d653e002100204f6666656e6365730400d0016470657a70616c6c65745f6f6666656e6365733a3a4576656e7400070028486973746f726963616c0400d8018873657373696f6e5f686973746f726963616c3a3a4576656e743c52756e74696d653e0022001c53657373696f6e0400dc018470657a70616c6c65745f73657373696f6e3a3a4576656e743c52756e74696d653e0008001c5374616b696e670400e0018470657a70616c6c65745f7374616b696e673a3a4576656e743c52756e74696d653e0009001c4772616e6470610400fc016070657a70616c6c65745f6772616e6470613a3a4576656e74000a002c46617374556e7374616b6504000d01019870657a70616c6c65745f666173745f756e7374616b653a3a4576656e743c52756e74696d653e000f001c436f756e63696c04001d0101150170657a70616c6c65745f636f6c6c6563746976653a3a4576656e743c52756e74696d652c2070657a70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e00110020547265617375727904002101018870657a70616c6c65745f74726561737572793a3a4576656e743c52756e74696d653e00120040436f6e76696374696f6e566f74696e670400c90101ac70657a70616c6c65745f636f6e76696374696f6e5f766f74696e673a3a4576656e743c52756e74696d653e001400245265666572656e64610400d901018c70657a70616c6c65745f7265666572656e64613a3a4576656e743c52756e74696d653e0015002457686974656c6973740400ad06018c70657a70616c6c65745f77686974656c6973743a3a4576656e743c52756e74696d653e002c0018436c61696d730400bd060158636c61696d733a3a4576656e743c52756e74696d653e0013001c5574696c6974790400c106016070657a70616c6c65745f7574696c6974793a3a4576656e740018001c56657374696e670400c506018470657a70616c6c65745f76657374696e673a3a4576656e743c52756e74696d653e001c00245363686564756c65720400c906018c70657a70616c6c65745f7363686564756c65723a3a4576656e743c52756e74696d653e001d001450726f78790400d106017c70657a70616c6c65745f70726f78793a3a4576656e743c52756e74696d653e001e00204d756c74697369670400d906018870657a70616c6c65745f6d756c74697369673a3a4576656e743c52756e74696d653e001f0020507265696d6167650400dd06018870657a70616c6c65745f707265696d6167653a3a4576656e743c52756e74696d653e0020003450617261496e636c7573696f6e0400e106019074657972636861696e735f696e636c7573696f6e3a3a4576656e743c52756e74696d653e0035001450617261730400f106018074657972636861696e735f70617261733a3a4576656e743c52756e74696d653e0038001048726d700400f506017c74657972636861696e735f68726d703a3a4576656e743c52756e74696d653e003c0034506172617344697370757465730400f906018c74657972636861696e735f64697370757465733a3a4576656e743c52756e74696d653e003e00304d657373616765517565756504000507019c70657a70616c6c65745f6d6573736167655f71756575653a3a4576656e743c52756e74696d653e004000684f6e44656d616e6441737369676e6d656e7450726f766964657204000d07019074657972636861696e735f6f6e5f64656d616e643a3a4576656e743c52756e74696d653e0042002452656769737472617204001107017c70617261735f7265676973747261723a3a4576656e743c52756e74696d653e00460014536c6f7473040015070154736c6f74733a3a4576656e743c52756e74696d653e0047002041756374696f6e7304001907016061756374696f6e733a3a4576656e743c52756e74696d653e0048002443726f77646c6f616e04001d07016463726f77646c6f616e3a3a4576656e743c52756e74696d653e00490020436f726574696d65040021070160636f726574696d653a3a4576656e743c52756e74696d653e004a00504d756c7469426c6f636b4d6967726174696f6e7304002507019070657a70616c6c65745f6d6967726174696f6e733a3a4576656e743c52756e74696d653e0062002458636d50616c6c657404002907017470657a70616c6c65745f78636d3a3a4576656e743c52756e74696d653e0063003441737369676e6564536c6f747304003907017861737369676e65645f736c6f74733a3a4576656e743c52756e74696d653e00fb004056616c696461746f724d616e6167657204003d07018476616c696461746f725f6d616e616765723a3a4576656e743c52756e74696d653e00fc00485374617465547269654d6967726174696f6e0400410701b870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a4576656e743c52756e74696d653e00fe003456616c696461746f72506f6f6c04004d0701a070657a70616c6c65745f76616c696461746f725f706f6f6c3a3a4576656e743c52756e74696d653e005b002c526f6f7454657374696e6704006507019870657a70616c6c65745f726f6f745f74657374696e673a3a4576656e743c52756e74696d653e00f90034566f746572426167734c69737404006907010d0170657a70616c6c65745f626167735f6c6973743a3a4576656e743c52756e74696d652c2070657a70616c6c65745f626167735f6c6973743a3a496e7374616e6365313e006400105375646f04006d07017870657a70616c6c65745f7375646f3a3a4576656e743c52756e74696d653e00ff0000580c3c70657a6672616d655f73797374656d2470657a70616c6c6574144576656e740404540001204045787472696e7369635375636365737304013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00000490416e2065787472696e73696320636f6d706c65746564207375636365737366756c6c792e3c45787472696e7369634661696c656408013864697370617463685f6572726f7268013444697370617463684572726f7200013464697370617463685f696e666f5c014444697370617463684576656e74496e666f00010450416e2065787472696e736963206661696c65642e2c436f64655570646174656400020450603a636f6465602077617320757064617465642e284e65774163636f756e7404011c6163636f756e74000130543a3a4163636f756e7449640003046841206e6577206163636f756e742077617320637265617465642e344b696c6c65644163636f756e7404011c6163636f756e74000130543a3a4163636f756e74496400040458416e206163636f756e7420776173207265617065642e2052656d61726b656408011873656e646572000130543a3a4163636f756e7449640001106861736834011c543a3a48617368000504704f6e206f6e2d636861696e2072656d61726b2068617070656e65642e4455706772616465417574686f72697a6564080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c00060468416e20757067726164652077617320617574686f72697a65642e8052656a6563746564496e76616c6964417574686f72697a656455706772616465080124636f64655f6861736834011c543a3a486173680001146572726f7268013444697370617463684572726f720007041101416e20696e76616c696420617574686f72697a65642075706772616465207761732072656a6563746564207768696c6520747279696e6720746f206170706c792069742e047c4576656e7420666f72207468652053797374656d2070657a70616c6c65742e5c083c70657a6672616d655f73797374656d4444697370617463684576656e74496e666f00000c0118776569676874280118576569676874000114636c6173736001344469737061746368436c617373000120706179735f666565640110506179730000600c4070657a6672616d655f737570706f7274206469737061746368344469737061746368436c61737300010c184e6f726d616c0000002c4f7065726174696f6e616c000100244d616e6461746f727900020000640c4070657a6672616d655f737570706f727420646973706174636810506179730001080c596573000000084e6f0001000068083470657a73705f72756e74696d653444697370617463684572726f7200013c144f746865720000003043616e6e6f744c6f6f6b7570000100244261644f726967696e000200184d6f64756c6504006c012c4d6f64756c654572726f7200030044436f6e73756d657252656d61696e696e670004002c4e6f50726f76696465727300050040546f6f4d616e79436f6e73756d65727300060014546f6b656e0400700128546f6b656e4572726f720007002841726974686d65746963040074013c41726974686d657469634572726f72000800345472616e73616374696f6e616c04007801485472616e73616374696f6e616c4572726f7200090024457868617573746564000a0028436f7272757074696f6e000b002c556e617661696c61626c65000c0038526f6f744e6f74416c6c6f776564000d00105472696504007c0124547269654572726f72000e00006c083470657a73705f72756e74696d652c4d6f64756c654572726f720000080114696e64657808010875380001146572726f7248018c5b75383b204d41585f4d4f44554c455f4552524f525f454e434f4445445f53495a455d000070083470657a73705f72756e74696d6528546f6b656e4572726f720001284046756e6473556e617661696c61626c65000000304f6e6c7950726f76696465720001003042656c6f774d696e696d756d0002003043616e6e6f7443726561746500030030556e6b6e6f776e41737365740004001846726f7a656e0005002c556e737570706f727465640006004043616e6e6f74437265617465486f6c64000700344e6f74457870656e6461626c650008001c426c6f636b65640009000074084070657a73705f61726974686d657469633c41726974686d657469634572726f7200010c24556e646572666c6f77000000204f766572666c6f77000100384469766973696f6e42795a65726f0002000078083470657a73705f72756e74696d65485472616e73616374696f6e616c4572726f72000108304c696d6974526561636865640000001c4e6f4c61796572000100007c0c3470657a73705f72756e74696d653070726f76696e675f7472696524547269654572726f7200013840496e76616c69645374617465526f6f7400000048496e636f6d706c65746544617461626173650001005056616c75654174496e636f6d706c6574654b6579000200304465636f6465724572726f720003002c496e76616c696448617368000400304475706c69636174654b65790005003845787472616e656f75734e6f64650006003c45787472616e656f757356616c75650007005c45787472616e656f7573486173685265666572656e636500080054496e76616c69644368696c645265666572656e63650009003456616c75654d69736d61746368000a003c496e636f6d706c65746550726f6f66000b0030526f6f744d69736d61746368000c002c4465636f64654572726f72000d0000800c4470657a70616c6c65745f696e64696365732470657a70616c6c6574144576656e7404045400011034496e64657841737369676e656408010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e6465780000047441206163636f756e7420696e646578207761732061737369676e65642e28496e6465784672656564040114696e64657810013c543a3a4163636f756e74496e646578000104bc41206163636f756e7420696e64657820686173206265656e2066726565642075702028756e61737369676e6564292e2c496e64657846726f7a656e080114696e64657810013c543a3a4163636f756e74496e64657800010c77686f000130543a3a4163636f756e744964000204e841206163636f756e7420696e64657820686173206265656e2066726f7a656e20746f206974732063757272656e74206163636f756e742049442e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e744964000114696e64657810013c543a3a4163636f756e74496e64657800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000304e841206465706f73697420746f207265736572766520616e20696e64657820686173206265656e20706f6b65642f7265636f6e736964657265642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574840c4870657a70616c6c65745f62616c616e6365732470657a70616c6c6574144576656e740804540004490001781c456e646f77656408011c6163636f756e74000130543a3a4163636f756e744964000130667265655f62616c616e6365180128543a3a42616c616e6365000004b8416e206163636f756e74207761732063726561746564207769746820736f6d6520667265652062616c616e63652e20447573744c6f737408011c6163636f756e74000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650001083d01416e206163636f756e74207761732072656d6f7665642077686f73652062616c616e636520776173206e6f6e2d7a65726f206275742062656c6f77204578697374656e7469616c4465706f7369742c78726573756c74696e6720696e20616e206f75747269676874206c6f73732e205472616e736665720c011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650002044c5472616e73666572207375636365656465642e2842616c616e636553657408010c77686f000130543a3a4163636f756e74496400011066726565180128543a3a42616c616e636500030468412062616c616e6365207761732073657420627920726f6f742e20526573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000404e0536f6d652062616c616e63652077617320726573657276656420286d6f7665642066726f6d206672656520746f207265736572766564292e28556e726573657276656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000504e8536f6d652062616c616e63652077617320756e726573657276656420286d6f7665642066726f6d20726573657276656420746f2066726565292e4852657365727665526570617472696174656410011066726f6d000130543a3a4163636f756e744964000108746f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500014864657374696e6174696f6e5f7374617475738801185374617475730006084d01536f6d652062616c616e636520776173206d6f7665642066726f6d207468652072657365727665206f6620746865206669727374206163636f756e7420746f20746865207365636f6e64206163636f756e742ed846696e616c20617267756d656e7420696e64696361746573207468652064657374696e6174696f6e2062616c616e636520747970652e1c4465706f73697408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000704d8536f6d6520616d6f756e7420776173206465706f73697465642028652e672e20666f72207472616e73616374696f6e2066656573292e20576974686472617708010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650008041d01536f6d6520616d6f756e74207761732077697468647261776e2066726f6d20746865206163636f756e742028652e672e20666f72207472616e73616374696f6e2066656573292e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e63650009040101536f6d6520616d6f756e74207761732072656d6f7665642066726f6d20746865206163636f756e742028652e672e20666f72206d69736265686176696f72292e184d696e74656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000a049c536f6d6520616d6f756e7420776173206d696e74656420696e746f20616e206163636f756e742e304d696e746564437265646974040118616d6f756e74180128543a3a42616c616e6365000b04e0536f6d6520637265646974207761732062616c616e63656420616e6420616464656420746f2074686520546f74616c49737375616e63652e184275726e656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000c049c536f6d6520616d6f756e7420776173206275726e65642066726f6d20616e206163636f756e742e284275726e656444656274040118616d6f756e74180128543a3a42616c616e6365000d04cc536f6d65206465627420686173206265656e2064726f707065642066726f6d2074686520546f74616c2049737375616e63652e2453757370656e64656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000e041501536f6d6520616d6f756e74207761732073757370656e6465642066726f6d20616e206163636f756e74202869742063616e20626520726573746f726564206c61746572292e20526573746f72656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365000f04a4536f6d6520616d6f756e742077617320726573746f72656420696e746f20616e206163636f756e742e20557067726164656404010c77686f000130543a3a4163636f756e74496400100460416e206163636f756e74207761732075706772616465642e18497373756564040118616d6f756e74180128543a3a42616c616e63650011042d01546f74616c2069737375616e63652077617320696e637265617365642062792060616d6f756e74602c206372656174696e6720612063726564697420746f2062652062616c616e6365642e2452657363696e646564040118616d6f756e74180128543a3a42616c616e63650012042501546f74616c2069737375616e636520776173206465637265617365642062792060616d6f756e74602c206372656174696e672061206465627420746f2062652062616c616e6365642e184c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500130460536f6d652062616c616e636520776173206c6f636b65642e20556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500140468536f6d652062616c616e63652077617320756e6c6f636b65642e1846726f7a656e08010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500150460536f6d652062616c616e6365207761732066726f7a656e2e1854686177656408010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500160460536f6d652062616c616e636520776173207468617765642e4c546f74616c49737375616e6365466f7263656408010c6f6c64180128543a3a42616c616e636500010c6e6577180128543a3a42616c616e6365001704ac5468652060546f74616c49737375616e6365602077617320666f72636566756c6c79206368616e6765642e1048656c640c0118726561736f6e8c0150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e636500180480536f6d652062616c616e63652077617320706c61636564206f6e20686f6c642e284275726e656448656c640c0118726561736f6e8c0150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001904a048656c642062616c616e636520776173206275726e65642066726f6d20616e206163636f756e742e385472616e736665724f6e486f6c64100118726561736f6e8c0150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001a04150141207472616e73666572206f662060616d6f756e7460206f6e20686f6c642066726f6d2060736f757263656020746f206064657374602077617320696e697469617465642e3c5472616e73666572416e64486f6c64100118726561736f6e8c0150543a3a52756e74696d65486f6c64526561736f6e000118736f75726365000130543a3a4163636f756e74496400011064657374000130543a3a4163636f756e74496400012c7472616e73666572726564180128543a3a42616c616e6365001b04090154686520607472616e73666572726564602062616c616e636520697320706c61636564206f6e20686f6c642061742074686520606465737460206163636f756e742e2052656c65617365640c0118726561736f6e8c0150543a3a52756e74696d65486f6c64526561736f6e00010c77686f000130543a3a4163636f756e744964000118616d6f756e74180128543a3a42616c616e6365001c0490536f6d652062616c616e6365207761732072656c65617365642066726f6d20686f6c642e28556e65787065637465640400a80138556e65787065637465644b696e64001d04b0416e20756e65787065637465642f646566656e73697665206576656e7420776173207472696767657265642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657488144070657a6672616d655f737570706f72741874726169747318746f6b656e73106d6973633442616c616e63655374617475730001081046726565000000205265736572766564000100008c085070657a6b757769636861696e5f72756e74696d654452756e74696d65486f6c64526561736f6e0001181c53657373696f6e040090017470657a70616c6c65745f73657373696f6e3a3a486f6c64526561736f6e0008001c5374616b696e67040094017470657a70616c6c65745f7374616b696e673a3a486f6c64526561736f6e0009001c436f756e63696c04009801050170657a70616c6c65745f636f6c6c6563746976653a3a486f6c64526561736f6e3c70657a70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e00110020507265696d61676504009c017870657a70616c6c65745f707265696d6167653a3a486f6c64526561736f6e0020002458636d50616c6c65740400a0016470657a70616c6c65745f78636d3a3a486f6c64526561736f6e006300485374617465547269654d6967726174696f6e0400a401a870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e3a3a486f6c64526561736f6e00fe0000900c4470657a70616c6c65745f73657373696f6e2470657a70616c6c657428486f6c64526561736f6e000104104b6579730000000094104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c657428486f6c64526561736f6e0001041c5374616b696e6700000000980c5070657a70616c6c65745f636f6c6c6563746976652470657a70616c6c657428486f6c64526561736f6e0404490001044850726f706f73616c5375626d697373696f6e000000009c0c4870657a70616c6c65745f707265696d6167652470657a70616c6c657428486f6c64526561736f6e00010420507265696d61676500000000a00c3470657a70616c6c65745f78636d2470657a70616c6c657428486f6c64526561736f6e00010438417574686f72697a65416c69617300000000a40c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c657428486f6c64526561736f6e0001043c536c617368466f724d69677261746500000000a80c4870657a70616c6c65745f62616c616e6365732470657a70616c6c657438556e65787065637465644b696e640001083842616c616e636555706461746564000000544661696c6564546f4d75746174654163636f756e7400010000ac0c5070657a70616c6c65745f706172616d65746572732470657a70616c6c6574144576656e740404540001041c557064617465640c010c6b6579b001c43c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a4b65790464546865206b657920746861742077617320757064617465642e01246f6c645f76616c7565c001ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e047c546865206f6c642076616c7565206265666f726520746869732063616c6c2e01246e65775f76616c7565c001ec4f7074696f6e3c3c543a3a52756e74696d65506172616d657465727320617320416767726567617465644b657956616c75653e3a3a56616c75653e0478546865206e65772076616c756520616674657220746869732063616c6c2e000c504120506172616d6574657220776173207365742e00bc497320616c736f20656d6974746564207768656e207468652076616c756520776173206e6f74206368616e6765642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574b0085070657a6b757769636861696e5f72756e74696d655052756e74696d65506172616d65746572734b657900010420507265696d6167650400b401b1013c64796e616d69635f706172616d733a3a707265696d6167653a3a506172616d65746572732061732070657a6672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a4b657900000000b4105070657a6b757769636861696e5f72756e74696d653864796e616d69635f706172616d7320707265696d61676534506172616d65746572734b65790001082c426173654465706f7369740400b8012c426173654465706f7369740000002c427974654465706f7369740400bc012c427974654465706f73697400010000b8105070657a6b757769636861696e5f72756e74696d653864796e616d69635f706172616d7320707265696d6167652c426173654465706f73697400000000bc105070657a6b757769636861696e5f72756e74696d653864796e616d69635f706172616d7320707265696d6167652c427974654465706f73697400000000c004184f7074696f6e04045401c40108104e6f6e6500000010536f6d650400c40000010000c4085070657a6b757769636861696e5f72756e74696d655852756e74696d65506172616d657465727356616c756500010420507265696d6167650400c801b9013c64796e616d69635f706172616d733a3a707265696d6167653a3a506172616d65746572732061732070657a6672616d655f737570706f72743a3a7472616974733a3a0a64796e616d69635f706172616d733a3a416767726567617465644b657956616c75653e3a3a56616c756500000000c8105070657a6b757769636861696e5f72756e74696d653864796e616d69635f706172616d7320707265696d6167653c506172616d657465727356616c75650001082c426173654465706f736974040018011c42616c616e63650000002c427974654465706f736974040018011c42616c616e636500010000cc0c7470657a70616c6c65745f7472616e73616374696f6e5f7061796d656e742470657a70616c6c6574144576656e74040454000104485472616e73616374696f6e466565506169640c010c77686f000130543a3a4163636f756e74496400012861637475616c5f66656518013042616c616e63654f663c543e00010c74697018013042616c616e63654f663c543e000008590141207472616e73616374696f6e20666565206061637475616c5f666565602c206f662077686963682060746970602077617320616464656420746f20746865206d696e696d756d20696e636c7573696f6e206665652c5c686173206265656e2070616964206279206077686f602e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574d00c4870657a70616c6c65745f6f6666656e6365732470657a70616c6c6574144576656e740001041c4f6666656e63650801106b696e64d401104b696e6400012074696d65736c6f743801384f706171756554696d65536c6f7400000c5101546865726520697320616e206f6666656e6365207265706f72746564206f662074686520676976656e20606b696e64602068617070656e656420617420746865206073657373696f6e5f696e6465786020616e643501286b696e642d7370656369666963292074696d6520736c6f742e2054686973206576656e74206973206e6f74206465706f736974656420666f72206475706c696361746520736c61736865732e4c5c5b6b696e642c2074696d65736c6f745c5d2e04304576656e747320747970652ed4000003100000000800d8104470657a70616c6c65745f73657373696f6e28686973746f726963616c2470657a70616c6c6574144576656e7404045400010828526f6f7453746f726564040114696e64657810013053657373696f6e496e6465780000040501546865206d65726b6c6520726f6f74206f66207468652076616c696461746f7273206f662074686520736169642073657373696f6e20776572652073746f7265642c526f6f74735072756e656404011475705f746f10013053657373696f6e496e646578000104e0546865206d65726b6c6520726f6f7473206f6620757020746f20746869732073657373696f6e20696e6465782077657265207072756e6564048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574dc0c4470657a70616c6c65745f73657373696f6e2470657a70616c6c6574144576656e74040454000110284e657753657373696f6e04013473657373696f6e5f696e64657810013053657373696f6e496e64657800000839014e65772073657373696f6e206861732068617070656e65642e204e6f746520746861742074686520617267756d656e74206973207468652073657373696f6e20696e6465782c206e6f74207468659c626c6f636b206e756d626572206173207468652074797065206d6967687420737567676573742e244e6577517565756564000108490154686520604e657753657373696f6e60206576656e7420696e207468652063757272656e7420626c6f636b20616c736f20696d706c6965732061206e65772076616c696461746f722073657420746f2062651c7175657565642e4456616c696461746f7244697361626c656404012476616c696461746f72000138543a3a56616c696461746f7249640002047056616c696461746f7220686173206265656e2064697361626c65642e4856616c696461746f725265656e61626c656404012476616c696461746f72000138543a3a56616c696461746f7249640003047856616c696461746f7220686173206265656e2072652d656e61626c65642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574e0104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c6574144576656e7404045400014c1c457261506169640c01246572615f696e646578100120457261496e64657800014076616c696461746f725f7061796f757418013042616c616e63654f663c543e00012472656d61696e64657218013042616c616e63654f663c543e000008550154686520657261207061796f757420686173206265656e207365743b207468652066697273742062616c616e6365206973207468652076616c696461746f722d7061796f75743b20746865207365636f6e64206973c07468652072656d61696e6465722066726f6d20746865206d6178696d756d20616d6f756e74206f66207265776172642e2052657761726465640c01147374617368000130543a3a4163636f756e74496400011064657374e4017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000118616d6f756e7418013042616c616e63654f663c543e0001040d01546865206e6f6d696e61746f7220686173206265656e207265776172646564206279207468697320616d6f756e7420746f20746869732064657374696e6174696f6e2e1c536c61736865640801187374616b6572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0002041d0141207374616b6572202876616c696461746f72206f72206e6f6d696e61746f722920686173206265656e20736c61736865642062792074686520676976656e20616d6f756e742e34536c6173685265706f727465640c012476616c696461746f72000130543a3a4163636f756e7449640001206672616374696f6ee8011c50657262696c6c000124736c6173685f657261100120457261496e64657800030859014120736c61736820666f722074686520676976656e2076616c696461746f722c20666f722074686520676976656e2070657263656e74616765206f66207468656972207374616b652c2061742074686520676976656e54657261206173206265656e207265706f727465642e684f6c64536c617368696e675265706f727444697363617264656404013473657373696f6e5f696e64657810013053657373696f6e496e6465780004081901416e206f6c6420736c617368696e67207265706f72742066726f6d2061207072696f72206572612077617320646973636172646564206265636175736520697420636f756c64446e6f742062652070726f6365737365642e385374616b657273456c65637465640005048441206e657720736574206f66207374616b6572732077617320656c65637465642e18426f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000610d0416e206163636f756e742068617320626f6e646564207468697320616d6f756e742e205c5b73746173682c20616d6f756e745c5d004d014e4f54453a2054686973206576656e74206973206f6e6c7920656d6974746564207768656e2066756e64732061726520626f6e64656420766961206120646973706174636861626c652e204e6f7461626c792c210169742077696c6c206e6f7420626520656d697474656420666f72207374616b696e672072657761726473207768656e20746865792061726520616464656420746f207374616b652e20556e626f6e6465640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00070490416e206163636f756e742068617320756e626f6e646564207468697320616d6f756e742e2457697468647261776e0801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0008085901416e206163636f756e74206861732063616c6c6564206077697468647261775f756e626f6e6465646020616e642072656d6f76656420756e626f6e64696e67206368756e6b7320776f727468206042616c616e6365606466726f6d2074686520756e6c6f636b696e672071756575652e184b69636b65640801246e6f6d696e61746f72000130543a3a4163636f756e7449640001147374617368000130543a3a4163636f756e744964000904b441206e6f6d696e61746f7220686173206265656e206b69636b65642066726f6d20612076616c696461746f722e545374616b696e67456c656374696f6e4661696c6564000a04ac54686520656c656374696f6e206661696c65642e204e6f206e65772065726120697320706c616e6e65642e1c4368696c6c65640401147374617368000130543a3a4163636f756e744964000b042101416e206163636f756e74206861732073746f707065642070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e345061796f7574537461727465641001246572615f696e646578100120457261496e64657800013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400011070616765100110506167650001106e657874ec01304f7074696f6e3c506167653e000c045901412050616765206f66207374616b6572732072657761726473206172652067657474696e6720706169642e20606e6578746020697320604e6f6e656020696620616c6c2070616765732061726520636c61696d65642e4456616c696461746f7250726566735365740801147374617368000130543a3a4163636f756e7449640001147072656673f0013856616c696461746f725072656673000d0498412076616c696461746f72206861732073657420746865697220707265666572656e6365732e68536e617073686f74566f7465727353697a65457863656564656404011073697a6510010c753332000e0468566f746572732073697a65206c696d697420726561636865642e6c536e617073686f745461726765747353697a65457863656564656404011073697a6510010c753332000f046c546172676574732073697a65206c696d697420726561636865642e20466f7263654572610401106d6f6465f8011c466f7263696e670010047441206e657720666f72636520657261206d6f646520776173207365742e64436f6e74726f6c6c65724261746368446570726563617465640401206661696c7572657310010c753332001104a45265706f7274206f66206120636f6e74726f6c6c6572206261746368206465707265636174696f6e2e4043757272656e63794d696772617465640801147374617368000130543a3a4163636f756e744964000138666f7263655f776974686472617718013042616c616e63654f663c543e00120855015374616b696e672062616c616e6365206d696772617465642066726f6d206c6f636b7320746f20686f6c64732c207769746820616e792062616c616e6365207468617420636f756c64206e6f742062652068656c644c697320666f7263652077697468647261776e2e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574e4084470657a70616c6c65745f7374616b696e674452657761726444657374696e6174696f6e04244163636f756e74496401000114185374616b656400000014537461736800010028436f6e74726f6c6c65720002001c4163636f756e7404000001244163636f756e744964000300104e6f6e6500040000e80c4070657a73705f61726974686d65746963287065725f7468696e67731c50657262696c6c0000040010010c7533320000ec04184f7074696f6e04045401100108104e6f6e6500000010536f6d650400100000010000f0084470657a70616c6c65745f7374616b696e673856616c696461746f7250726566730000080128636f6d6d697373696f6ef4011c50657262696c6c00011c626c6f636b6564200110626f6f6c0000f4000006e800f8084470657a70616c6c65745f7374616b696e671c466f7263696e67000110284e6f74466f7263696e6700000020466f7263654e657700010024466f7263654e6f6e650002002c466f726365416c7761797300030000fc0c4470657a70616c6c65745f6772616e6470612470657a70616c6c6574144576656e7400010c384e6577417574686f726974696573040134617574686f726974795f73657401010134417574686f726974794c6973740000048c4e657720617574686f726974792073657420686173206265656e206170706c6965642e185061757365640001049843757272656e7420617574686f726974792073657420686173206265656e207061757365642e1c526573756d65640002049c43757272656e7420617574686f726974792073657420686173206265656e20726573756d65642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657401010000020501000501000004080901300009010c5c70657a73705f636f6e73656e7375735f6772616e6470610c617070185075626c69630000040004013c656432353531393a3a5075626c696300000d010c5870657a70616c6c65745f666173745f756e7374616b652470657a70616c6c6574144576656e7404045400011420556e7374616b65640801147374617368000130543a3a4163636f756e744964000118726573756c74110101384469737061746368526573756c740000045841207374616b65722077617320756e7374616b65642e1c536c61736865640801147374617368000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104190141207374616b65722077617320736c617368656420666f722072657175657374696e6720666173742d756e7374616b65207768696c7374206265696e67206578706f7365642e304261746368436865636b656404011065726173190101345665633c457261496e6465783e00020445014120626174636820776173207061727469616c6c7920636865636b656420666f722074686520676976656e20657261732c20627574207468652070726f6365737320646964206e6f742066696e6973682e34426174636846696e697368656404011073697a6510010c7533320003109c41206261746368206f66206120676976656e2073697a6520776173207465726d696e617465642e0055015468697320697320616c7761797320666f6c6c6f77732062792061206e756d626572206f662060556e7374616b656460206f722060536c617368656460206576656e74732c206d61726b696e672074686520656e64e86f66207468652062617463682e2041206e65772062617463682077696c6c20626520637265617465642075706f6e206e65787420626c6f636b2e34496e7465726e616c4572726f72000404e8416e20696e7465726e616c206572726f722068617070656e65642e204f7065726174696f6e732077696c6c20626520706175736564206e6f772e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657411010418526573756c74080454011501044501680108084f6b04001501000000000c457272040068000001000015010000040000190100000210001d010c5070657a70616c6c65745f636f6c6c6563746976652470657a70616c6c6574144576656e740804540004490001282050726f706f73656410011c6163636f756e74000130543a3a4163636f756e74496400013870726f706f73616c5f696e64657810013450726f706f73616c496e64657800013470726f706f73616c5f6861736834011c543a3a486173680001247468726573686f6c6410012c4d656d626572436f756e74000008490141206d6f74696f6e2028676976656e20686173682920686173206265656e2070726f706f7365642028627920676976656e206163636f756e742920776974682061207468726573686f6c642028676976656e3c604d656d626572436f756e7460292e14566f74656414011c6163636f756e74000130543a3a4163636f756e74496400013470726f706f73616c5f6861736834011c543a3a48617368000114766f746564200110626f6f6c00010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e74000108050141206d6f74696f6e2028676976656e20686173682920686173206265656e20766f746564206f6e20627920676976656e206163636f756e742c206c656176696e671501612074616c6c79202879657320766f74657320616e64206e6f20766f74657320676976656e20726573706563746976656c7920617320604d656d626572436f756e7460292e20417070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000204c041206d6f74696f6e2077617320617070726f76656420627920746865207265717569726564207468726573686f6c642e2c446973617070726f76656404013470726f706f73616c5f6861736834011c543a3a48617368000304d041206d6f74696f6e20776173206e6f7420617070726f76656420627920746865207265717569726564207468726573686f6c642e20457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c74110101384469737061746368526573756c74000404210141206d6f74696f6e207761732065786563757465643b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e384d656d626572457865637574656408013470726f706f73616c5f6861736834011c543a3a48617368000118726573756c74110101384469737061746368526573756c740005044901412073696e676c65206d656d6265722064696420736f6d6520616374696f6e3b20726573756c742077696c6c20626520604f6b602069662069742072657475726e656420776974686f7574206572726f722e18436c6f7365640c013470726f706f73616c5f6861736834011c543a3a4861736800010c79657310012c4d656d626572436f756e740001086e6f10012c4d656d626572436f756e740006045501412070726f706f73616c2077617320636c6f736564206265636175736520697473207468726573686f6c64207761732072656163686564206f7220616674657220697473206475726174696f6e207761732075702e184b696c6c656404013470726f706f73616c5f6861736834011c543a3a4861736800070458412070726f706f73616c20776173206b696c6c65642e4850726f706f73616c436f73744275726e656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000804b0536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c20776173206275726e65642e5050726f706f73616c436f737452656c656173656408013470726f706f73616c5f6861736834011c543a3a4861736800010c77686f000130543a3a4163636f756e744964000904b8536f6d6520636f737420666f722073746f72696e6720612070726f706f73616c207761732072656c65617365642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657421010c4870657a70616c6c65745f74726561737572792470657a70616c6c6574144576656e74080454000449000130205370656e64696e670401406275646765745f72656d61696e696e6718013c42616c616e63654f663c542c20493e000004e45765206861766520656e6465642061207370656e6420706572696f6420616e642077696c6c206e6f7720616c6c6f636174652066756e64732e1c417761726465640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000114617761726418013c42616c616e63654f663c542c20493e00011c6163636f756e74000130543a3a4163636f756e7449640001047c536f6d652066756e64732068617665206265656e20616c6c6f63617465642e144275726e7404012c6275726e745f66756e647318013c42616c616e63654f663c542c20493e00020488536f6d65206f66206f75722066756e64732068617665206265656e206275726e742e20526f6c6c6f766572040140726f6c6c6f7665725f62616c616e636518013c42616c616e63654f663c542c20493e0003042d015370656e64696e67206861732066696e69736865643b20746869732069732074686520616d6f756e74207468617420726f6c6c73206f76657220756e74696c206e657874207370656e642e1c4465706f73697404011476616c756518013c42616c616e63654f663c542c20493e0004047c536f6d652066756e64732068617665206265656e206465706f73697465642e345370656e64417070726f7665640c013870726f706f73616c5f696e64657810013450726f706f73616c496e646578000118616d6f756e7418013c42616c616e63654f663c542c20493e00012c62656e6566696369617279000130543a3a4163636f756e7449640005049c41206e6577207370656e642070726f706f73616c20686173206265656e20617070726f7665642e3c55706461746564496e61637469766508012c726561637469766174656418013c42616c616e63654f663c542c20493e00012c646561637469766174656418013c42616c616e63654f663c542c20493e000604d854686520696e6163746976652066756e6473206f66207468652070657a70616c6c65742068617665206265656e20757064617465642e4841737365745370656e64417070726f766564180114696e6465781001285370656e64496e64657800012861737365745f6b696e6425010130543a3a41737365744b696e64000118616d6f756e74180150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279c5010138543a3a42656e656669636961727900012876616c69645f66726f6d100150426c6f636b4e756d626572466f723c542c20493e0001246578706972655f6174100150426c6f636b4e756d626572466f723c542c20493e000704b441206e6577206173736574207370656e642070726f706f73616c20686173206265656e20617070726f7665642e4041737365745370656e64566f69646564040114696e6465781001285370656e64496e64657800080474416e20617070726f766564207370656e642077617320766f696465642e1050616964080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a49640009044c41207061796d656e742068617070656e65642e345061796d656e744661696c6564080114696e6465781001285370656e64496e6465780001287061796d656e745f69643001643c543a3a5061796d6173746572206173205061793e3a3a4964000a049041207061796d656e74206661696c656420616e642063616e20626520726574726965642e385370656e6450726f636573736564040114696e6465781001285370656e64496e646578000b084d0141207370656e64207761732070726f63657373656420616e642072656d6f7665642066726f6d207468652073746f726167652e204974206d696768742068617665206265656e207375636365737366756c6c797070616964206f72206974206d6179206861766520657870697265642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657425010c5870657a6b7577695f72756e74696d655f636f6d6d6f6e14696d706c735c56657273696f6e65644c6f63617461626c65417373657400010c0856330801206c6f636174696f6e2901014478636d3a3a76333a3a4c6f636174696f6e00012061737365745f69645101014078636d3a3a76333a3a417373657449640003000856340801206c6f636174696f6e5501014478636d3a3a76343a3a4c6f636174696f6e00012061737365745f69648901014078636d3a3a76343a3a417373657449640004000856350801206c6f636174696f6e8d01014478636d3a3a76353a3a4c6f636174696f6e00012061737365745f6964c101014078636d3a3a76353a3a41737365744964000500002901103870657a73746167696e675f78636d087633346d756c74696c6f636174696f6e344d756c74694c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f722d0101244a756e6374696f6e7300002d01100c78636d087633246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400310101204a756e6374696f6e0001000858320800310101204a756e6374696f6e0000310101204a756e6374696f6e0002000858330c00310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0003000858341000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0004000858351400310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0005000858361800310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0006000858371c00310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0007000858382000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e0000310101204a756e6374696f6e000800003101100c78636d087633206a756e6374696f6e204a756e6374696f6e0001282454657972636861696e04003501010c7533320000002c4163636f756e744964333208011c6e6574776f726b390101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b390101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b390101444f7074696f6e3c4e6574776f726b49643e00010c6b6579410101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040045010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696449010118426f64794964000110706172744d010120426f6479506172740008003c476c6f62616c436f6e73656e73757304003d0101244e6574776f726b49640009000035010000061000390104184f7074696f6e040454013d010108104e6f6e6500000010536f6d6504003d0100000100003d01100c78636d087633206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d0001001c50657a6b757769000200184b7573616d61000300185a6167726f730004003050657a6b757769636861696e00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e436173680009003c50657a6b75776942756c6c6574696e000a00004101000003140000000800450100000618004901100c78636d087633206a756e6374696f6e18426f6479496400012810556e69740000001c4d6f6e696b6572040048011c5b75383b20345d00010014496e64657804003501010c7533320002002445786563757469766500030024546563686e6963616c0004002c4c656769736c6174697665000500204a7564696369616c0006001c446566656e73650007003841646d696e697374726174696f6e000800205472656173757279000900004d01100c78636d087633206a756e6374696f6e20426f64795061727400011414566f6963650000001c4d656d62657273040114636f756e743501010c753332000100204672616374696f6e08010c6e6f6d3501010c75333200011464656e6f6d3501010c7533320002004441744c6561737450726f706f7274696f6e08010c6e6f6d3501010c75333200011464656e6f6d3501010c753332000300484d6f72655468616e50726f706f7274696f6e08010c6e6f6d3501010c75333200011464656e6f6d3501010c753332000400005101100c78636d087633286d756c746961737365741c4173736574496400010820436f6e63726574650400290101344d756c74694c6f636174696f6e00000020416273747261637404000401205b75383b2033325d000100005501103870657a73746167696e675f78636d087634206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72590101244a756e6374696f6e7300005901103870657a73746167696e675f78636d087634246a756e6374696f6e73244a756e6374696f6e73000124104865726500000008583104005d0101484172633c5b4a756e6374696f6e3b20315d3e00010008583204006d0101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400710101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400750101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400790101484172633c5b4a756e6374696f6e3b20355d3e00050008583604007d0101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400810101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400850101484172633c5b4a756e6374696f6e3b20385d3e000800005d01000003010000006101006101103870657a73746167696e675f78636d087634206a756e6374696f6e204a756e6374696f6e0001282454657972636861696e04003501010c7533320000002c4163636f756e744964333208011c6e6574776f726b650101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b650101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b650101444f7074696f6e3c4e6574776f726b49643e00010c6b6579410101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040045010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696449010118426f64794964000110706172744d010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400690101244e6574776f726b496400090000650104184f7074696f6e0404540169010108104e6f6e6500000010536f6d650400690100000100006901103870657a73746167696e675f78636d087634206a756e6374696f6e244e6574776f726b496400012c24427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d0001001c50657a6b757769000200184b7573616d61000300185a6167726f730004003050657a6b757769636861696e00050018576f636f636f00060020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e436173680009003c50657a6b75776942756c6c6574696e000a00006d01000003020000006101007101000003030000006101007501000003040000006101007901000003050000006101007d01000003060000006101008101000003070000006101008501000003080000006101008901103870657a73746167696e675f78636d0876341461737365741c4173736574496400000400550101204c6f636174696f6e00008d01103870657a73746167696e675f78636d087635206c6f636174696f6e204c6f636174696f6e000008011c706172656e74730801087538000120696e746572696f72910101244a756e6374696f6e7300009101103870657a73746167696e675f78636d087635246a756e6374696f6e73244a756e6374696f6e7300012410486572650000000858310400950101484172633c5b4a756e6374696f6e3b20315d3e0001000858320400a50101484172633c5b4a756e6374696f6e3b20325d3e0002000858330400a90101484172633c5b4a756e6374696f6e3b20335d3e0003000858340400ad0101484172633c5b4a756e6374696f6e3b20345d3e0004000858350400b10101484172633c5b4a756e6374696f6e3b20355d3e0005000858360400b50101484172633c5b4a756e6374696f6e3b20365d3e0006000858370400b90101484172633c5b4a756e6374696f6e3b20375d3e0007000858380400bd0101484172633c5b4a756e6374696f6e3b20385d3e000800009501000003010000009901009901103870657a73746167696e675f78636d087635206a756e6374696f6e204a756e6374696f6e0001282454657972636861696e04003501010c7533320000002c4163636f756e744964333208011c6e6574776f726b9d0101444f7074696f6e3c4e6574776f726b49643e00010869640401205b75383b2033325d000100384163636f756e74496e646578363408011c6e6574776f726b9d0101444f7074696f6e3c4e6574776f726b49643e000114696e6465782c010c753634000200304163636f756e744b6579323008011c6e6574776f726b9d0101444f7074696f6e3c4e6574776f726b49643e00010c6b6579410101205b75383b2032305d0003003850616c6c6574496e7374616e6365040008010875380004003047656e6572616c496e646578040045010110753132380005002847656e6572616c4b65790801186c656e6774680801087538000110646174610401205b75383b2033325d000600244f6e6c794368696c6400070024506c7572616c697479080108696449010118426f64794964000110706172744d010120426f6479506172740008003c476c6f62616c436f6e73656e7375730400a10101244e6574776f726b4964000900009d0104184f7074696f6e04045401a1010108104e6f6e6500000010536f6d650400a1010000010000a101103870657a73746167696e675f78636d087635206a756e6374696f6e244e6574776f726b496400012024427947656e6573697304000401205b75383b2033325d000000184279466f726b080130626c6f636b5f6e756d62657230010c753634000128626c6f636b5f686173680401205b75383b2033325d0001001c50657a6b757769000200184b7573616d6100030020457468657265756d040120636861696e5f69642c010c7536340007002c426974636f696e436f72650008002c426974636f696e436173680009003c50657a6b75776942756c6c6574696e000a0000a50100000302000000990100a90100000303000000990100ad0100000304000000990100b10100000305000000990100b50100000306000000990100b90100000307000000990100bd0100000308000000990100c101103870657a73746167696e675f78636d0876351461737365741c41737365744964000004008d0101204c6f636174696f6e0000c501080c78636d4456657273696f6e65644c6f636174696f6e00010c08563304002901014476333a3a4d756c74694c6f636174696f6e00030008563404005501013076343a3a4c6f636174696f6e00040008563504008d01013076353a3a4c6f636174696f6e00050000c9010c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e672470657a70616c6c6574144576656e740804540004490001142444656c6567617465640c00000130543a3a4163636f756e7449640000000130543a3a4163636f756e7449640000cd010134436c6173734f663c542c20493e0000041d01416e206163636f756e74206861732064656c65676174656420746865697220766f746520746f20616e6f74686572206163636f756e742e205c5b77686f2c207461726765745c5d2c556e64656c6567617465640800000130543a3a4163636f756e7449640000cd010134436c6173734f663c542c20493e000104f4416e205c5b6163636f756e745c5d206861732063616e63656c6c656420612070726576696f75732064656c65676174696f6e206f7065726174696f6e2e14566f7465640c010c77686f000130543a3a4163636f756e744964000110766f7465d10101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e000128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e00020450416e206163636f756e742068617320766f7465642c566f746552656d6f7665640c010c77686f000130543a3a4163636f756e744964000110766f7465d10101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e000128706f6c6c5f696e646578100144506f6c6c496e6465784f663c542c20493e0003045c4120766f746520686173206265656e2072656d6f76656430566f7465556e6c6f636b656408010c77686f000130543a3a4163636f756e744964000114636c617373cd010134436c6173734f663c542c20493e0004044501546865206c6f636b757020706572696f64206f66206120636f6e76696374696f6e20766f746520657870697265642c20616e64207468652066756e64732068617665206265656e20756e6c6f636b65642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574cd010000050400d1010c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652c4163636f756e74566f7465041c42616c616e63650118010c205374616e64617264080110766f7465d5010110566f746500011c62616c616e636518011c42616c616e63650000001453706c697408010c61796518011c42616c616e636500010c6e617918011c42616c616e63650001003053706c69744162737461696e0c010c61796518011c42616c616e636500010c6e617918011c42616c616e636500011c6162737461696e18011c42616c616e636500020000d5010c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746510566f74650000040008000000d9010c4c70657a70616c6c65745f7265666572656e64612470657a70616c6c6574144576656e74080454000449000140245375626d69747465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bcd01013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616cdd01014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e00048041207265666572656e64756d20686173206265656e207375626d69747465642e544465636973696f6e4465706f736974506c616365640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e010494546865206465636973696f6e206465706f73697420686173206265656e20706c616365642e5c4465636973696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e02049c546865206465636973696f6e206465706f73697420686173206265656e20726566756e6465642e384465706f736974536c617368656408010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e03046c41206465706f73697420686173206265656e20736c61736865642e3c4465636973696f6e53746172746564100114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e0114747261636bcd01013c547261636b49644f663c542c20493e04250154686520747261636b2028616e6420627920657874656e73696f6e2070726f706f73616c206469737061746368206f726967696e29206f662074686973207265666572656e64756d2e012070726f706f73616cdd01014c426f756e64656443616c6c4f663c542c20493e04805468652070726f706f73616c20666f7220746865207265666572656e64756d2e011474616c6c79a9060120543a3a54616c6c7904b85468652063757272656e742074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0404bc41207265666572656e64756d20686173206d6f76656420696e746f20746865206465636964696e672070686173652e38436f6e6669726d53746172746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e050038436f6e6669726d41626f72746564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e060024436f6e6669726d6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79a9060120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0704210141207265666572656e64756d2068617320656e6465642069747320636f6e6669726d6174696f6e20706861736520616e6420697320726561647920666f7220617070726f76616c2e20417070726f766564040114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e08040d0141207265666572656e64756d20686173206265656e20617070726f76656420616e64206974732070726f706f73616c20686173206265656e207363686564756c65642e2052656a6563746564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79a9060120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0904ac412070726f706f73616c20686173206265656e2072656a6563746564206279207265666572656e64756d2e2054696d65644f7574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79a9060120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0a04d841207265666572656e64756d20686173206265656e2074696d6564206f757420776974686f7574206265696e6720646563696465642e2443616e63656c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79a9060120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0b048041207265666572656e64756d20686173206265656e2063616e63656c6c65642e184b696c6c6564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e011474616c6c79a9060120543a3a54616c6c7904b05468652066696e616c2074616c6c79206f6620766f74657320696e2074686973207265666572656e64756d2e0c047441207265666572656e64756d20686173206265656e206b696c6c65642e645375626d697373696f6e4465706f736974526566756e6465640c0114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e010c77686f000130543a3a4163636f756e744964048c546865206163636f756e742077686f20706c6163656420746865206465706f7369742e0118616d6f756e7418013c42616c616e63654f663c542c20493e048454686520616d6f756e7420706c6163656420627920746865206163636f756e742e0d04a4546865207375626d697373696f6e206465706f73697420686173206265656e20726566756e6465642e2c4d65746164617461536574080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0e049c4d6574616461746120666f722061207265666572656e64756d20686173206265656e207365742e3c4d65746164617461436c6561726564080114696e64657810013c5265666572656e64756d496e6465780460496e646578206f6620746865207265666572656e64756d2e01106861736834011c543a3a486173680438507265696d61676520686173682e0f04ac4d6574616461746120666f722061207265666572656e64756d20686173206265656e20636c65617265642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574dd01104070657a6672616d655f737570706f72741874726169747324707265696d616765731c426f756e64656408045401e101044801a106010c184c656761637904011068617368340124483a3a4f757470757400000018496e6c696e650400a5060134426f756e646564496e6c696e65000100184c6f6f6b757008011068617368340124483a3a4f757470757400010c6c656e10010c75333200020000e101085070657a6b757769636861696e5f72756e74696d652c52756e74696d6543616c6c0001c41853797374656d0400e50101b90173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c53797374656d2c2052756e74696d653e00000010426162650400f50101b10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c426162652c2052756e74696d653e0001002454696d657374616d700400190201c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c54696d657374616d702c2052756e74696d653e0002001c496e646963657304001d0201bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c496e64696365732c2052756e74696d653e0003002042616c616e6365730400290201c10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c42616c616e6365732c2052756e74696d653e00040028506172616d65746572730400350201c90173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c506172616d65746572732c2052756e74696d653e0006001c53657373696f6e0400450201bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c53657373696f6e2c2052756e74696d653e0008001c5374616b696e670400610201bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5374616b696e672c2052756e74696d653e0009001c4772616e6470610400950201bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c4772616e6470612c2052756e74696d653e000a002c46617374556e7374616b650400c10201cd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c46617374556e7374616b652c2052756e74696d653e000f001c436f756e63696c0400c50201bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c436f756e63696c2c2052756e74696d653e0011002054726561737572790400c90201c10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c54726561737572792c2052756e74696d653e00120040436f6e76696374696f6e566f74696e670400cd0201e10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c436f6e76696374696f6e566f74696e672c2052756e74696d653e001400245265666572656e64610400d90201c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5265666572656e64612c2052756e74696d653e0015002457686974656c6973740400010301c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c57686974656c6973742c2052756e74696d653e002c0018436c61696d730400050301b90173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c436c61696d732c2052756e74696d653e0013001c5574696c6974790400250301bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5574696c6974792c2052756e74696d653e0018001c56657374696e6704002d0301bd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c56657374696e672c2052756e74696d653e001c00245363686564756c65720400350301c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5363686564756c65722c2052756e74696d653e001d001450726f78790400410301b50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c50726f78792c2052756e74696d653e001e00204d756c746973696704004d0301c10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c4d756c74697369672c2052756e74696d653e001f0020507265696d6167650400590301c10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c507265696d6167652c2052756e74696d653e00200034436f6e66696775726174696f6e0400610301d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c436f6e66696775726174696f6e2c2052756e74696d653e0033002c50617261735368617265640400850301cd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c50617261735368617265642c2052756e74696d653e0034003450617261496e636c7573696f6e0400890301d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c50617261496e636c7573696f6e2c2052756e74696d653e0035003050617261496e686572656e7404008d0301d10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c50617261496e686572656e742c2052756e74696d653e0036001450617261730400190401b50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c50617261732c2052756e74696d653e0038002c496e697469616c697a65720400210401cd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c496e697469616c697a65722c2052756e74696d653e0039001048726d700400250401b10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c48726d702c2052756e74696d653e003c00345061726173446973707574657304002d0401d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c506172617344697370757465732c2052756e74696d653e003e00345061726173536c617368696e670400310401d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5061726173536c617368696e672c2052756e74696d653e003f00304d65737361676551756575650400410401d10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c4d65737361676551756575652c2052756e74696d653e004000684f6e44656d616e6441737369676e6d656e7450726f766964657204004d0401090273656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c4f6e44656d616e6441737369676e6d656e7450726f76696465722c2052756e74696d653e004200245265676973747261720400510401c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5265676973747261722c2052756e74696d653e00460014536c6f74730400550401b50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c536c6f74732c2052756e74696d653e0047002041756374696f6e730400590401c10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c41756374696f6e732c2052756e74696d653e0048002443726f77646c6f616e0400610401c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c43726f77646c6f616e2c2052756e74696d653e00490020436f726574696d650400750401c10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c436f726574696d652c2052756e74696d653e004a00504d756c7469426c6f636b4d6967726174696f6e730400890401f10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c4d756c7469426c6f636b4d6967726174696f6e732c2052756e74696d653e0062002458636d50616c6c65740400b10401c50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c58636d50616c6c65742c2052756e74696d653e0063001442656566790400210601b50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c42656566792c2052756e74696d653e00f0004050617261735375646f577261707065720400590601e10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c50617261735375646f577261707065722c2052756e74696d653e00fa003441737369676e6564536c6f74730400610601d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c41737369676e6564536c6f74732c2052756e74696d653e00fb004056616c696461746f724d616e616765720400690601e10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c56616c696461746f724d616e616765722c2052756e74696d653e00fc00485374617465547269654d6967726174696f6e04006d0601e90173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5374617465547269654d6967726174696f6e2c2052756e74696d653e00fe003456616c696461746f72506f6f6c0400850601d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c56616c696461746f72506f6f6c2c2052756e74696d653e005b002c526f6f7454657374696e670400950601cd0173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c526f6f7454657374696e672c2052756e74696d653e00f90034566f746572426167734c6973740400990601d50173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c566f746572426167734c6973742c2052756e74696d653e006400105375646f04009d0601b10173656c663a3a70657a73705f6170695f68696464656e5f696e636c756465735f636f6e7374727563745f72756e74696d653a3a68696464656e5f696e636c7564653a3a0a64697370617463683a3a43616c6c61626c6543616c6c466f723c5375646f2c2052756e74696d653e00ff0000e5010c3c70657a6672616d655f73797374656d2470657a70616c6c65741043616c6c04045400012c1872656d61726b04011872656d61726b38011c5665633c75383e00000c684d616b6520736f6d65206f6e2d636861696e2072656d61726b2e008843616e20626520657865637574656420627920657665727920606f726967696e602e387365745f686561705f7061676573040114706167657330010c753634000104f853657420746865206e756d626572206f6620706167657320696e2074686520576562417373656d626c7920656e7669726f6e6d656e74277320686561702e207365745f636f6465040110636f646538011c5665633c75383e0002046453657420746865206e65772072756e74696d6520636f64652e5c7365745f636f64655f776974686f75745f636865636b73040110636f646538011c5665633c75383e000310190153657420746865206e65772072756e74696d6520636f646520776974686f757420646f696e6720616e7920636865636b73206f662074686520676976656e2060636f6465602e0051014e6f746520746861742072756e74696d652075706772616465732077696c6c206e6f742072756e20696620746869732069732063616c6c656420776974682061206e6f742d696e6372656173696e6720737065632076657273696f6e212c7365745f73746f726167650401146974656d73e90101345665633c4b657956616c75653e0004046853657420736f6d65206974656d73206f662073746f726167652e306b696c6c5f73746f726167650401106b657973f10101205665633c4b65793e000504744b696c6c20736f6d65206974656d732066726f6d2073746f726167652e2c6b696c6c5f70726566697808011870726566697838010c4b657900012c70657a5f7375626b65797310010c75333200061011014b696c6c20616c6c2073746f72616765206974656d7320776974682061206b657920746861742073746172747320776974682074686520676976656e207072656669782e0049012a2a4e4f54453a2a2a2057652072656c79206f6e2074686520526f6f74206f726967696e20746f2070726f7669646520757320746865206e756d626572206f662070657a5f7375626b65797320756e6465723d0174686520707265666978207765206172652072656d6f76696e6720746f2061636375726174656c792063616c63756c6174652074686520776569676874206f6620746869732066756e6374696f6e2e4472656d61726b5f776974685f6576656e7404011872656d61726b38011c5665633c75383e000704a44d616b6520736f6d65206f6e2d636861696e2072656d61726b20616e6420656d6974206576656e742e44617574686f72697a655f75706772616465040124636f64655f6861736834011c543a3a486173680009106101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e80617574686f72697a655f757067726164655f776974686f75745f636865636b73040124636f64655f6861736834011c543a3a48617368000a206101417574686f72697a6520616e207570677261646520746f206120676976656e2060636f64655f686173686020666f72207468652072756e74696d652e205468652072756e74696d652063616e20626520737570706c696564186c617465722e005d015741524e494e473a205468697320617574686f72697a657320616e207570677261646520746861742077696c6c2074616b6520706c61636520776974686f757420616e792073616665747920636865636b732c20666f7259016578616d706c652074686174207468652073706563206e616d652072656d61696e73207468652073616d6520616e642074686174207468652076657273696f6e206e756d62657220696e637265617365732e204e6f74f07265636f6d6d656e64656420666f72206e6f726d616c207573652e205573652060617574686f72697a655f757067726164656020696e73746561642e007c546869732063616c6c20726571756972657320526f6f74206f726967696e2e606170706c795f617574686f72697a65645f75706772616465040110636f646538011c5665633c75383e000b24550150726f766964652074686520707265696d616765202872756e74696d652062696e617279292060636f64656020666f7220616e2075706772616465207468617420686173206265656e20617574686f72697a65642e00490149662074686520617574686f72697a6174696f6e20726571756972656420612076657273696f6e20636865636b2c20746869732063616c6c2077696c6c20656e73757265207468652073706563206e616d65e872656d61696e7320756e6368616e67656420616e6420746861742074686520737065632076657273696f6e2068617320696e637265617365642e005901446570656e64696e67206f6e207468652072756e74696d65277320604f6e536574436f64656020636f6e66696775726174696f6e2c20746869732066756e6374696f6e206d6179206469726563746c79206170706c791101746865206e65772060636f64656020696e207468652073616d6520626c6f636b206f7220617474656d707420746f207363686564756c652074686520757067726164652e0060416c6c206f726967696e732061726520616c6c6f7765642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ee901000002ed0100ed0100000408383800f1010000023800f5010c3870657a70616c6c65745f626162652470657a70616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66f9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600001009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66f9010190426f783c45717569766f636174696f6e50726f6f663c486561646572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600012009015265706f727420617574686f726974792065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667905017468652065717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f660d01616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c306265207265706f727465642e0d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e48706c616e5f636f6e6669675f6368616e6765040118636f6e6669670d0201504e657874436f6e66696744657363726970746f720002105d01506c616e20616e2065706f636820636f6e666967206368616e67652e205468652065706f636820636f6e666967206368616e6765206973207265636f7264656420616e642077696c6c20626520656e6163746564206f6e5101746865206e6578742063616c6c20746f2060656e6163745f65706f63685f6368616e6765602e2054686520636f6e6669672077696c6c20626520616374697661746564206f6e652065706f63682061667465722e59014d756c7469706c652063616c6c7320746f2074686973206d6574686f642077696c6c207265706c61636520616e79206578697374696e6720706c616e6e656420636f6e666967206368616e6765207468617420686164546e6f74206265656e20656e6163746564207965742e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ef901085470657a73705f636f6e73656e7375735f736c6f74734445717569766f636174696f6e50726f6f66081848656164657201fd01084964010102001001206f6666656e646572010201084964000110736c6f7405020110536c6f7400013066697273745f686561646572fd0101184865616465720001347365636f6e645f686561646572fd0101184865616465720000fd01103470657a73705f72756e74696d651c67656e65726963186865616465721848656164657208184e756d62657201101048617368000014012c706172656e745f68617368340130486173683a3a4f75747075740001186e756d626572350101184e756d62657200012873746174655f726f6f74340130486173683a3a4f757470757400013c65787472696e736963735f726f6f74340130486173683a3a4f75747075740001186469676573743c0118446967657374000001020c5070657a73705f636f6e73656e7375735f626162650c617070185075626c69630000040004013c737232353531393a3a5075626c696300000502085470657a73705f636f6e73656e7375735f736c6f747310536c6f740000040030010c75363400000902083470657a73705f73657373696f6e3c4d656d6265727368697050726f6f6600000c011c73657373696f6e10013053657373696f6e496e646578000128747269655f6e6f646573f10101305665633c5665633c75383e3e00013c76616c696461746f725f636f756e7410013856616c696461746f72436f756e7400000d020c5070657a73705f636f6e73656e7375735f626162651c64696765737473504e657874436f6e66696744657363726970746f720001040856310801046311020128287536342c2075363429000134616c6c6f7765645f736c6f747315020130416c6c6f776564536c6f7473000100001102000004083030001502085070657a73705f636f6e73656e7375735f6261626530416c6c6f776564536c6f747300010c305072696d617279536c6f7473000000745072696d617279416e645365636f6e64617279506c61696e536c6f74730001006c5072696d617279416e645365636f6e64617279565246536c6f74730002000019020c4c70657a70616c6c65745f74696d657374616d702470657a70616c6c65741043616c6c0404540001040c73657404010c6e6f772c0124543a3a4d6f6d656e7400004c54536574207468652063757272656e742074696d652e005501546869732063616c6c2073686f756c6420626520696e766f6b65642065786163746c79206f6e63652070657220626c6f636b2e2049742077696c6c2070616e6963206174207468652066696e616c697a6174696f6ed470686173652c20696620746869732063616c6c206861736e2774206265656e20696e766f6b656420627920746861742074696d652e0041015468652074696d657374616d702073686f756c642062652067726561746572207468616e207468652070726576696f7573206f6e652062792074686520616d6f756e7420737065636966696564206279685b60436f6e6669673a3a4d696e696d756d506572696f64605d2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0051015468697320646973706174636820636c617373206973205f4d616e6461746f72795f20746f20656e73757265206974206765747320657865637574656420696e2074686520626c6f636b2e204265206177617265510174686174206368616e67696e672074686520636f6d706c6578697479206f6620746869732063616c6c20636f756c6420726573756c742065786861757374696e6720746865207265736f757263657320696e206184626c6f636b20746f206578656375746520616e79206f746865722063616c6c732e0034232320436f6d706c657869747931012d20604f2831296020284e6f7465207468617420696d706c656d656e746174696f6e73206f6620604f6e54696d657374616d7053657460206d75737420616c736f20626520604f283129602955012d20312073746f72616765207265616420616e6420312073746f72616765206d75746174696f6e2028636f64656320604f283129602062656361757365206f6620604469645570646174653a3a74616b656020696e402020606f6e5f66696e616c697a656029d42d2031206576656e742068616e646c657220606f6e5f74696d657374616d705f736574602e204d75737420626520604f283129602e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e1d020c4470657a70616c6c65745f696e64696365732470657a70616c6c65741043616c6c04045400011814636c61696d040114696e64657810013c543a3a4163636f756e74496e6465780000309841737369676e20616e2070726576696f75736c7920756e61737369676e656420696e6465782e00dc5061796d656e743a20604465706f736974602069732072657365727665642066726f6d207468652073656e646572206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00f02d2060696e646578603a2074686520696e64657820746f20626520636c61696d65642e2054686973206d757374206e6f7420626520696e207573652e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e207472616e7366657208010c6e6577210201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e6465780001305d0141737369676e20616e20696e64657820616c7265616479206f776e6564206279207468652073656e64657220746f20616e6f74686572206163636f756e742e205468652062616c616e6365207265736572766174696f6eb86973206566666563746976656c79207472616e7366657272656420746f20746865206e6577206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0025012d2060696e646578603a2074686520696e64657820746f2062652072652d61737369676e65642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e1066726565040114696e64657810013c543a3a4163636f756e74496e646578000230944672656520757020616e20696e646578206f776e6564206279207468652073656e6465722e005d015061796d656e743a20416e792070726576696f7573206465706f73697420706c6163656420666f722074686520696e64657820697320756e726573657276656420696e207468652073656e646572206163636f756e742e005501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d757374206f776e2074686520696e6465782e000d012d2060696e646578603a2074686520696e64657820746f2062652066726565642e2054686973206d757374206265206f776e6564206279207468652073656e6465722e0084456d6974732060496e646578467265656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e38666f7263655f7472616e736665720c010c6e6577210201504163636f756e7449644c6f6f6b75704f663c543e000114696e64657810013c543a3a4163636f756e74496e646578000118667265657a65200110626f6f6c0003345501466f72636520616e20696e64657820746f20616e206163636f756e742e205468697320646f65736e277420726571756972652061206465706f7369742e2049662074686520696e64657820697320616c7265616479e868656c642c207468656e20616e79206465706f736974206973207265696d62757273656420746f206974732063757272656e74206f776e65722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00a42d2060696e646578603a2074686520696e64657820746f206265202872652d2961737369676e65642e5d012d20606e6577603a20746865206e6577206f776e6572206f662074686520696e6465782e20546869732066756e6374696f6e2069732061206e6f2d6f7020696620697420697320657175616c20746f2073656e6465722e41012d2060667265657a65603a2069662073657420746f206074727565602c2077696c6c20667265657a652074686520696e64657820736f2069742063616e6e6f74206265207472616e736665727265642e0090456d6974732060496e64657841737369676e656460206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e18667265657a65040114696e64657810013c543a3a4163636f756e74496e6465780004304101467265657a6520616e20696e64657820736f2069742077696c6c20616c7761797320706f696e7420746f207468652073656e646572206163636f756e742e205468697320636f6e73756d657320746865206465706f7369742e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e00ac2d2060696e646578603a2074686520696e64657820746f2062652066726f7a656e20696e20706c6163652e0088456d6974732060496e64657846726f7a656e60206966207375636365737366756c2e0034232320436f6d706c6578697479242d20604f283129602e30706f6b655f6465706f736974040114696e64657810013c543a3a4163636f756e74496e6465780005289c506f6b6520746865206465706f73697420726573657276656420666f7220616e20696e6465782e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d757374206861766520616c6e6f6e2d66726f7a656e206163636f756e742060696e646578602e005901546865207472616e73616374696f6e20666565732069732077616976656420696620746865206465706f736974206973206368616e67656420616674657220706f6b696e672f7265636f6e73696465726174696f6e2e00fc2d2060696e646578603a2074686520696e6465782077686f7365206465706f73697420697320746f20626520706f6b65642f7265636f6e736964657265642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e21020c3470657a73705f72756e74696d65306d756c746961646472657373304d756c74694164647265737308244163636f756e7449640100304163636f756e74496e646578011501011408496404000001244163636f756e74496400000014496e6465780400250201304163636f756e74496e6465780001000c526177040038011c5665633c75383e0002002441646472657373333204000401205b75383b2033325d000300244164647265737332300400410101205b75383b2032305d00040000250200000615010029020c4870657a70616c6c65745f62616c616e6365732470657a70616c6c65741043616c6c080454000449000124507472616e736665725f616c6c6f775f646561746808011064657374210201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756545010128543a3a42616c616e636500001cd45472616e7366657220736f6d65206c697175696420667265652062616c616e636520746f20616e6f74686572206163636f756e742e003501607472616e736665725f616c6c6f775f6465617468602077696c6c207365742074686520604672656542616c616e636560206f66207468652073656e64657220616e642072656365697665722e11014966207468652073656e6465722773206163636f756e742069732062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c74b06f6620746865207472616e736665722c20746865206163636f756e742077696c6c206265207265617065642e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d75737420626520605369676e65646020627920746865207472616e736163746f722e38666f7263655f7472616e736665720c0118736f75726365210201504163636f756e7449644c6f6f6b75704f663c543e00011064657374210201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756545010128543a3a42616c616e6365000208610145786163746c7920617320607472616e736665725f616c6c6f775f6465617468602c2065786365707420746865206f726967696e206d75737420626520726f6f7420616e642074686520736f75726365206163636f756e74446d6179206265207370656369666965642e4c7472616e736665725f6b6565705f616c69766508011064657374210201504163636f756e7449644c6f6f6b75704f663c543e00011476616c756545010128543a3a42616c616e6365000318590153616d6520617320746865205b607472616e736665725f616c6c6f775f6465617468605d2063616c6c2c206275742077697468206120636865636b207468617420746865207472616e736665722077696c6c206e6f74606b696c6c20746865206f726967696e206163636f756e742e00e8393925206f66207468652074696d6520796f752077616e74205b607472616e736665725f616c6c6f775f6465617468605d20696e73746561642e00fc5b607472616e736665725f616c6c6f775f6465617468605d3a207374727563742e50657a70616c6c65742e68746d6c236d6574686f642e7472616e73666572307472616e736665725f616c6c08011064657374210201504163636f756e7449644c6f6f6b75704f663c543e0001286b6565705f616c697665200110626f6f6c00043c05015472616e736665722074686520656e74697265207472616e7366657261626c652062616c616e63652066726f6d207468652063616c6c6572206163636f756e742e0059014e4f54453a20546869732066756e6374696f6e206f6e6c7920617474656d70747320746f207472616e73666572205f7472616e7366657261626c655f2062616c616e6365732e2054686973206d65616e7320746861746101616e79206c6f636b65642c2072657365727665642c206f72206578697374656e7469616c206465706f7369747320287768656e20606b6565705f616c6976656020697320607472756560292c2077696c6c206e6f742062655d017472616e7366657272656420627920746869732066756e6374696f6e2e20546f20656e73757265207468617420746869732066756e6374696f6e20726573756c747320696e2061206b696c6c6564206163636f756e742c4501796f75206d69676874206e65656420746f207072657061726520746865206163636f756e742062792072656d6f76696e6720616e79207265666572656e636520636f756e746572732c2073746f72616765406465706f736974732c206574632e2e2e00c0546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205369676e65642e00a02d206064657374603a2054686520726563697069656e74206f6620746865207472616e736665722e59012d20606b6565705f616c697665603a204120626f6f6c65616e20746f2064657465726d696e652069662074686520607472616e736665725f616c6c60206f7065726174696f6e2073686f756c642073656e6420616c6c4d0120206f66207468652066756e647320746865206163636f756e74206861732c2063617573696e67207468652073656e646572206163636f756e7420746f206265206b696c6c6564202866616c7365292c206f72590120207472616e736665722065766572797468696e6720657863657074206174206c6561737420746865206578697374656e7469616c206465706f7369742c2077686963682077696c6c2067756172616e74656520746f9c20206b656570207468652073656e646572206163636f756e7420616c697665202874727565292e3c666f7263655f756e7265736572766508010c77686f210201504163636f756e7449644c6f6f6b75704f663c543e000118616d6f756e74180128543a3a42616c616e636500050cb0556e7265736572766520736f6d652062616c616e63652066726f6d2061207573657220627920666f7263652e006c43616e206f6e6c792062652063616c6c656420627920524f4f542e40757067726164655f6163636f756e747304010c77686f2d0201445665633c543a3a4163636f756e7449643e0006207055706772616465206120737065636966696564206163636f756e742e00742d20606f726967696e603a204d75737420626520605369676e6564602e902d206077686f603a20546865206163636f756e7420746f2062652075706772616465642e005501546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966206174206c6561737420616c6c2062757420313025206f6620746865206163636f756e7473206e656564656420746f410162652075706772616465642e20285765206c657420736f6d65206e6f74206861766520746f206265207570677261646564206a75737420696e206f7264657220746f20616c6c6f7720666f722074686558706f73736962696c697479206f6620636875726e292e44666f7263655f7365745f62616c616e636508010c77686f210201504163636f756e7449644c6f6f6b75704f663c543e0001206e65775f6672656545010128543a3a42616c616e636500080cac5365742074686520726567756c61722062616c616e6365206f66206120676976656e206163636f756e742e00b0546865206469737061746368206f726967696e20666f7220746869732063616c6c2069732060726f6f74602e6c666f7263655f61646a7573745f746f74616c5f69737375616e6365080124646972656374696f6e3102014c41646a7573746d656e74446972656374696f6e00011464656c746145010128543a3a42616c616e6365000914b841646a7573742074686520746f74616c2069737375616e636520696e20612073617475726174696e67207761792e00fc43616e206f6e6c792062652063616c6c656420627920726f6f7420616e6420616c77617973206e65656473206120706f736974697665206064656c7461602e002423204578616d706c65106275726e08011476616c756545010128543a3a42616c616e63650001286b6565705f616c697665200110626f6f6c000a1cfc4275726e2074686520737065636966696564206c697175696420667265652062616c616e63652066726f6d20746865206f726967696e206163636f756e742e002501496620746865206f726967696e2773206163636f756e7420656e64732075702062656c6f7720746865206578697374656e7469616c206465706f736974206173206120726573756c7409016f6620746865206275726e20616e6420606b6565705f616c697665602069732066616c73652c20746865206163636f756e742077696c6c206265207265617065642e005101556e6c696b652073656e64696e672066756e647320746f2061205f6275726e5f20616464726573732c207768696368206d6572656c79206d616b6573207468652066756e647320696e61636365737369626c652c21017468697320606275726e60206f7065726174696f6e2077696c6c2072656475636520746f74616c2069737375616e63652062792074686520616d6f756e74205f6275726e65645f2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e2d02000002000031020c4870657a70616c6c65745f62616c616e6365731474797065734c41646a7573746d656e74446972656374696f6e00010820496e6372656173650000002044656372656173650001000035020c5070657a70616c6c65745f706172616d65746572732470657a70616c6c65741043616c6c040454000104347365745f706172616d657465720401246b65795f76616c756539020150543a3a52756e74696d65506172616d657465727300001074536574207468652076616c7565206f66206120706172616d657465722e005501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265206041646d696e4f726967696e6020666f722074686520676976656e20606b6579602e2056616c7565732062658864656c657465642062792073657474696e67207468656d20746f20604e6f6e65602e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e3902085070657a6b757769636861696e5f72756e74696d654452756e74696d65506172616d657465727300010420507265696d61676504003d02019064796e616d69635f706172616d733a3a707265696d6167653a3a506172616d6574657273000000003d02105070657a6b757769636861696e5f72756e74696d653864796e616d69635f706172616d7320707265696d61676528506172616d65746572730001082c426173654465706f7369740800b8012c426173654465706f73697400004102013c4f7074696f6e3c42616c616e63653e0000002c427974654465706f7369740800bc012c427974654465706f73697400004102013c4f7074696f6e3c42616c616e63653e00010000410204184f7074696f6e04045401180108104e6f6e6500000010536f6d65040018000001000045020c4470657a70616c6c65745f73657373696f6e2470657a70616c6c65741043616c6c040454000108207365745f6b6579730801106b6579734902011c543a3a4b65797300011470726f6f6638011c5665633c75383e000024e453657473207468652073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c657220746f20606b657973602e1d01416c6c6f777320616e206163636f756e7420746f20736574206974732073657373696f6e206b6579207072696f7220746f206265636f6d696e6720612076616c696461746f722ec05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e00d0546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265207369676e65642e0034232320436f6d706c657869747959012d20604f283129602e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f662060543a3a4b6579733a3a6b65795f69647328296020776869636820697320202066697865642e2870757267655f6b657973000130c852656d6f76657320616e792073657373696f6e206b6579287329206f66207468652066756e6374696f6e2063616c6c65722e00c05468697320646f65736e27742074616b652065666665637420756e74696c20746865206e6578742073657373696f6e2e005501546865206469737061746368206f726967696e206f6620746869732066756e6374696f6e206d757374206265205369676e656420616e6420746865206163636f756e74206d757374206265206569746865722062655d01636f6e7665727469626c6520746f20612076616c696461746f72204944207573696e672074686520636861696e2773207479706963616c2061646472657373696e672073797374656d20287468697320757375616c6c7951016d65616e73206265696e67206120636f6e74726f6c6c6572206163636f756e7429206f72206469726563746c7920636f6e7665727469626c6520696e746f20612076616c696461746f722049442028776869636894757375616c6c79206d65616e73206265696e672061207374617368206163636f756e74292e0034232320436f6d706c65786974793d012d20604f2831296020696e206e756d626572206f66206b65792074797065732e2041637475616c20636f737420646570656e6473206f6e20746865206e756d626572206f66206c656e677468206f6698202060543a3a4b6579733a3a6b65795f6964732829602077686963682069732066697865642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e4902085070657a6b757769636861696e5f72756e74696d652c53657373696f6e4b657973000018011c6772616e647061090101d03c4772616e647061206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300011062616265010201c43c42616265206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c6963000138706172615f76616c696461746f724d0201e03c496e697469616c697a6572206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300013c706172615f61737369676e6d656e74510201f03c5061726153657373696f6e496e666f206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300014c617574686f726974795f646973636f76657279550201fc3c417574686f72697479446973636f76657279206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c69630001146265656679590201c83c4265656679206173202463726174653a3a426f756e64546f52756e74696d654170705075626c69633e3a3a5075626c696300004d02104870657a6b7577695f7072696d6974697665730876393476616c696461746f725f617070185075626c69630000040004013c737232353531393a3a5075626c696300005102104870657a6b7577695f7072696d6974697665730876393861737369676e6d656e745f617070185075626c69630000040004013c737232353531393a3a5075626c6963000055020c6470657a73705f617574686f726974795f646973636f766572790c617070185075626c69630000040004013c737232353531393a3a5075626c6963000059020c5470657a73705f636f6e73656e7375735f62656566793065636473615f63727970746f185075626c6963000004005d02013465636473613a3a5075626c696300005d020000032100000008006102104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c65741043616c6c04045400018010626f6e6408011476616c75654501013042616c616e63654f663c543e0001147061796565e4017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000040610154616b6520746865206f726967696e206163636f756e74206173206120737461736820616e64206c6f636b207570206076616c756560206f66206974732062616c616e63652e2060636f6e74726f6c6c6572602077696c6c80626520746865206163636f756e74207468617420636f6e74726f6c732069742e002d016076616c756560206d757374206265206d6f7265207468616e2074686520606d696e696d756d5f62616c616e636560207370656369666965642062792060543a3a43757272656e6379602e002101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20627920746865207374617368206163636f756e742e003c456d6974732060426f6e646564602e34232320436f6d706c6578697479d02d20496e646570656e64656e74206f662074686520617267756d656e74732e204d6f64657261746520636f6d706c65786974792e1c2d204f2831292e642d20546872656520657874726120444220656e74726965732e004d014e4f54453a2054776f206f66207468652073746f726167652077726974657320286053656c663a3a626f6e646564602c206053656c663a3a7061796565602920617265205f6e657665725f20636c65616e65645901756e6c6573732074686520606f726967696e602066616c6c732062656c6f77205f6578697374656e7469616c206465706f7369745f20286f7220657175616c20746f20302920616e6420676574732072656d6f76656420617320647573742e28626f6e645f65787472610401386d61785f6164646974696f6e616c4501013042616c616e63654f663c543e000138610141646420736f6d6520657874726120616d6f756e742074686174206861766520617070656172656420696e207468652073746173682060667265655f62616c616e63656020696e746f207468652062616c616e636520757030666f72207374616b696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e004d01557365207468697320696620746865726520617265206164646974696f6e616c2066756e647320696e20796f7572207374617368206163636f756e74207468617420796f75207769736820746f20626f6e642e5501556e6c696b65205b60626f6e64605d2853656c663a3a626f6e6429206f72205b60756e626f6e64605d2853656c663a3a756e626f6e642920746869732066756e6374696f6e20646f6573206e6f7420696d706f7365bc616e79206c696d69746174696f6e206f6e2074686520616d6f756e7420746861742063616e2062652061646465642e003c456d6974732060426f6e646564602e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e1c2d204f2831292e18756e626f6e6404011476616c75654501013042616c616e63654f663c543e00025451015363686564756c65206120706f7274696f6e206f662074686520737461736820746f20626520756e6c6f636b656420726561647920666f72207472616e73666572206f75742061667465722074686520626f6e64fc706572696f6420656e64732e2049662074686973206c656176657320616e20616d6f756e74206163746976656c7920626f6e646564206c657373207468616e21015b6061737365743a3a6578697374656e7469616c5f6465706f736974605d2c207468656e20697420697320696e6372656173656420746f207468652066756c6c20616d6f756e742e003d01546865207374617368206d6179206265206368696c6c656420696620746865206c656467657220746f74616c20616d6f756e742066616c6c7320746f203020616674657220756e626f6e64696e672e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0045014f6e63652074686520756e6c6f636b20706572696f6420697320646f6e652c20796f752063616e2063616c6c206077697468647261775f756e626f6e6465646020746f2061637475616c6c79206d6f7665bc7468652066756e6473206f7574206f66206d616e6167656d656e7420726561647920666f72207472616e736665722e0031014e6f206d6f7265207468616e2061206c696d69746564206e756d626572206f6620756e6c6f636b696e67206368756e6b73202873656520604d6178556e6c6f636b696e674368756e6b736029410163616e20636f2d657869737473206174207468652073616d652074696d652e20496620746865726520617265206e6f20756e6c6f636b696e67206368756e6b7320736c6f747320617661696c61626c6545015b6043616c6c3a3a77697468647261775f756e626f6e646564605d2069732063616c6c656420746f2072656d6f766520736f6d65206f6620746865206368756e6b732028696620706f737369626c65292e00390149662061207573657220656e636f756e74657273207468652060496e73756666696369656e74426f6e6460206572726f72207768656e2063616c6c696e6720746869732065787472696e7369632c1901746865792073686f756c642063616c6c20606368696c6c6020666972737420696e206f7264657220746f206672656520757020746865697220626f6e6465642066756e64732e0044456d6974732060556e626f6e646564602e009453656520616c736f205b6043616c6c3a3a77697468647261775f756e626f6e646564605d2e4477697468647261775f756e626f6e6465640401486e756d5f736c617368696e675f7370616e7310010c75333200035c290152656d6f766520616e7920756e6c6f636b6564206368756e6b732066726f6d207468652060756e6c6f636b696e67602071756575652066726f6d206f7572206d616e6167656d656e742e0055015468697320657373656e7469616c6c7920667265657320757020746861742062616c616e636520746f206265207573656420627920746865207374617368206163636f756e7420746f20646f2077686174657665722469742077616e74732e001501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722e0048456d697473206057697468647261776e602e006853656520616c736f205b6043616c6c3a3a756e626f6e64605d2e0034232320506172616d65746572730051012d20606e756d5f736c617368696e675f7370616e736020696e6469636174657320746865206e756d626572206f66206d6574616461746120736c617368696e67207370616e7320746f20636c656172207768656e5501746869732063616c6c20726573756c747320696e206120636f6d706c6574652072656d6f76616c206f6620616c6c2074686520646174612072656c6174656420746f20746865207374617368206163636f756e742e3d01496e207468697320636173652c2074686520606e756d5f736c617368696e675f7370616e7360206d757374206265206c6172676572206f7220657175616c20746f20746865206e756d626572206f665d01736c617368696e67207370616e73206173736f636961746564207769746820746865207374617368206163636f756e7420696e20746865205b60536c617368696e675370616e73605d2073746f7261676520747970652c25016f7468657277697365207468652063616c6c2077696c6c206661696c2e205468652063616c6c20776569676874206973206469726563746c792070726f706f7274696f6e616c20746f54606e756d5f736c617368696e675f7370616e73602e0034232320436f6d706c6578697479d84f285329207768657265205320697320746865206e756d626572206f6620736c617368696e67207370616e7320746f2072656d6f766509014e4f54453a2057656967687420616e6e6f746174696f6e20697320746865206b696c6c207363656e6172696f2c20776520726566756e64206f74686572776973652e2076616c69646174650401147072656673f0013856616c696461746f725072656673000414e44465636c617265207468652064657369726520746f2076616c696461746520666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e206e6f6d696e61746504011c74617267657473650201645665633c4163636f756e7449644c6f6f6b75704f663c543e3e0005280d014465636c617265207468652064657369726520746f206e6f6d696e6174652060746172676574736020666f7220746865206f726967696e20636f6e74726f6c6c65722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c65786974792d012d20546865207472616e73616374696f6e277320636f6d706c65786974792069732070726f706f7274696f6e616c20746f207468652073697a65206f662060746172676574736020284e29050177686963682069732063617070656420617420436f6d7061637441737369676e6d656e74733a3a4c494d49542028543a3a4d61784e6f6d696e6174696f6e73292ed42d20426f74682074686520726561647320616e642077726974657320666f6c6c6f7720612073696d696c6172207061747465726e2e146368696c6c000628c44465636c617265206e6f2064657369726520746f206569746865722076616c6964617465206f72206e6f6d696e6174652e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e502d20436f6e7461696e73206f6e6520726561642ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e247365745f70617965650401147061796565e4017c52657761726444657374696e6174696f6e3c543a3a4163636f756e7449643e000730b42852652d2973657420746865207061796d656e742074617267657420666f72206120636f6e74726f6c6c65722e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e0034232320436f6d706c6578697479182d204f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e242d2d2d2d2d2d2d2d2d387365745f636f6e74726f6c6c657200083845012852652d29736574732074686520636f6e74726f6c6c6572206f66206120737461736820746f2074686520737461736820697473656c662e20546869732066756e6374696f6e2070726576696f75736c794d01616363657074656420612060636f6e74726f6c6c65726020617267756d656e7420746f207365742074686520636f6e74726f6c6c657220746f20616e206163636f756e74206f74686572207468616e207468655901737461736820697473656c662e20546869732066756e6374696f6e616c69747920686173206e6f77206265656e2072656d6f7665642c206e6f77206f6e6c792073657474696e672074686520636f6e74726f6c6c65728c746f207468652073746173682c206966206974206973206e6f7420616c72656164792e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f206279207468652073746173682c206e6f742074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479104f283129e42d20496e646570656e64656e74206f662074686520617267756d656e74732e20496e7369676e69666963616e7420636f6d706c65786974792e942d20436f6e7461696e732061206c696d69746564206e756d626572206f662072656164732ec42d2057726974657320617265206c696d6974656420746f2074686520606f726967696e60206163636f756e74206b65792e4c7365745f76616c696461746f725f636f756e7404010c6e65773501010c75333200091890536574732074686520696465616c206e756d626572206f662076616c696461746f72732e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c6578697479104f28312960696e6372656173655f76616c696461746f725f636f756e740401286164646974696f6e616c3501010c753332000a1ce8496e6372656d656e74732074686520696465616c206e756d626572206f662076616c696461746f727320757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e547363616c655f76616c696461746f725f636f756e74040118666163746f726902011c50657263656e74000b1c11015363616c652075702074686520696465616c206e756d626572206f662076616c696461746f7273206279206120666163746f7220757020746f206d6178696d756d206f668c60456c656374696f6e50726f7669646572426173653a3a4d617857696e6e657273602e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320436f6d706c65786974799853616d65206173205b6053656c663a3a7365745f76616c696461746f725f636f756e74605d2e34666f7263655f6e6f5f65726173000c34ac466f72636520746865726520746f206265206e6f206e6577206572617320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e3901546875732074686520656c656374696f6e2070726f63657373206d6179206265206f6e676f696e67207768656e20746869732069732063616c6c65642e20496e2074686973206361736520746865dc656c656374696f6e2077696c6c20636f6e74696e756520756e74696c20746865206e65787420657261206973207472696767657265642e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f28312934666f7263655f6e65775f657261000d384901466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f6620746865206e6578742073657373696f6e2e20416674657220746869732c2069742077696c6c2062659c726573657420746f206e6f726d616c20286e6f6e2d666f7263656429206265686176696f75722e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e0034232320436f6d706c65786974793c2d204e6f20617267756d656e74732e382d205765696768743a204f283129447365745f696e76756c6e657261626c6573040134696e76756c6e657261626c65732d0201445665633c543a3a4163636f756e7449643e000e0cc8536574207468652076616c696461746f72732077686f2063616e6e6f7420626520736c61736865642028696620616e79292e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e34666f7263655f756e7374616b650801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c753332000f200901466f72636520612063757272656e74207374616b657220746f206265636f6d6520636f6d706c6574656c7920756e7374616b65642c20696d6d6564696174656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e50666f7263655f6e65775f6572615f616c776179730010240101466f72636520746865726520746f2062652061206e6577206572612061742074686520656e64206f662073657373696f6e7320696e646566696e6974656c792e0084546865206469737061746368206f726967696e206d75737420626520526f6f742e002423205761726e696e6700190154686520656c656374696f6e2070726f6365737320737461727473206d756c7469706c6520626c6f636b73206265666f72652074686520656e64206f6620746865206572612e4901496620746869732069732063616c6c6564206a757374206265666f72652061206e657720657261206973207472696767657265642c2074686520656c656374696f6e2070726f63657373206d6179206e6f748c6861766520656e6f75676820626c6f636b7320746f20676574206120726573756c742e5463616e63656c5f64656665727265645f736c61736808010c657261100120457261496e646578000134736c6173685f696e6469636573190101205665633c7533323e0011189443616e63656c20656e6163746d656e74206f66206120646566657272656420736c6173682e009843616e2062652063616c6c6564206279207468652060543a3a41646d696e4f726967696e602e000101506172616d65746572733a2065726120616e6420696e6469636573206f662074686520736c617368657320666f7220746861742065726120746f206b696c6c2ee454686579202a2a6d7573742a2a20626520736f7274656420696e20617363656e64696e67206f726465722c202a616e642a20756e697175652e387061796f75745f7374616b65727308013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780012341901506179206f7574206e6578742070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e206572612e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e00490154686520726577617264207061796f757420636f756c6420626520706167656420696e20636173652074686572652061726520746f6f206d616e79206e6f6d696e61746f7273206261636b696e67207468655d016076616c696461746f725f7374617368602e20546869732063616c6c2077696c6c207061796f757420756e7061696420706167657320696e20616e20617363656e64696e67206f726465722e20546f20636c61696d2061b4737065636966696320706167652c2075736520607061796f75745f7374616b6572735f62795f70616765602e6000f0496620616c6c2070616765732061726520636c61696d65642c2069742072657475726e7320616e206572726f722060496e76616c696450616765602e187265626f6e6404011476616c75654501013042616c616e63654f663c543e00131cdc5265626f6e64206120706f7274696f6e206f6620746865207374617368207363686564756c656420746f20626520756e6c6f636b65642e00d4546865206469737061746368206f726967696e206d757374206265207369676e65642062792074686520636f6e74726f6c6c65722e0034232320436f6d706c6578697479d02d2054696d6520636f6d706c65786974793a204f284c292c207768657265204c20697320756e6c6f636b696e67206368756e6b73882d20426f756e64656420627920604d6178556e6c6f636b696e674368756e6b73602e28726561705f73746173680801147374617368000130543a3a4163636f756e7449640001486e756d5f736c617368696e675f7370616e7310010c7533320014485d0152656d6f766520616c6c2064617461207374727563747572657320636f6e6365726e696e672061207374616b65722f7374617368206f6e636520697420697320617420612073746174652077686572652069742063616e0501626520636f6e736964657265642060647573746020696e20746865207374616b696e672073797374656d2e2054686520726571756972656d656e7473206172653a000501312e207468652060746f74616c5f62616c616e636560206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e1101322e206f722c2074686520606c65646765722e746f74616c60206f66207468652073746173682069732062656c6f77206578697374656e7469616c206465706f7369742e6101332e206f722c206578697374656e7469616c206465706f736974206973207a65726f20616e64206569746865722060746f74616c5f62616c616e636560206f7220606c65646765722e746f74616c60206973207a65726f2e00550154686520666f726d65722063616e2068617070656e20696e206361736573206c696b65206120736c6173683b20746865206c6174746572207768656e20612066756c6c7920756e626f6e646564206163636f756e7409016973207374696c6c20726563656976696e67207374616b696e67207265776172647320696e206052657761726444657374696e6174696f6e3a3a5374616b6564602e00310149742063616e2062652063616c6c656420627920616e796f6e652c206173206c6f6e672061732060737461736860206d65657473207468652061626f766520726571756972656d656e74732e00dc526566756e647320746865207472616e73616374696f6e20666565732075706f6e207375636365737366756c20657865637574696f6e2e0034232320506172616d65746572730045012d20606e756d5f736c617368696e675f7370616e73603a20526566657220746f20636f6d6d656e7473206f6e205b6043616c6c3a3a77697468647261775f756e626f6e646564605d20666f72206d6f72652064657461696c732e106b69636b04010c77686f650201645665633c4163636f756e7449644c6f6f6b75704f663c543e3e00152ce052656d6f76652074686520676976656e206e6f6d696e6174696f6e732066726f6d207468652063616c6c696e672076616c696461746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e005101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2062792074686520636f6e74726f6c6c65722c206e6f74207468652073746173682e004d012d206077686f603a2041206c697374206f66206e6f6d696e61746f72207374617368206163636f756e74732077686f20617265206e6f6d696e6174696e6720746869732076616c696461746f72207768696368c0202073686f756c64206e6f206c6f6e676572206265206e6f6d696e6174696e6720746869732076616c696461746f722e0055014e6f74653a204d616b696e6720746869732063616c6c206f6e6c79206d616b65732073656e736520696620796f7520666972737420736574207468652076616c696461746f7220707265666572656e63657320746f78626c6f636b20616e792066757274686572206e6f6d696e6174696f6e732e4c7365745f7374616b696e675f636f6e666967731c01486d696e5f6e6f6d696e61746f725f626f6e646d020158436f6e6669674f703c42616c616e63654f663c543e3e0001486d696e5f76616c696461746f725f626f6e646d020158436f6e6669674f703c42616c616e63654f663c543e3e00014c6d61785f6e6f6d696e61746f725f636f756e7471020134436f6e6669674f703c7533323e00014c6d61785f76616c696461746f725f636f756e7471020134436f6e6669674f703c7533323e00013c6368696c6c5f7468726573686f6c6475020144436f6e6669674f703c50657263656e743e0001386d696e5f636f6d6d697373696f6e79020144436f6e6669674f703c50657262696c6c3e0001486d61785f7374616b65645f7265776172647375020144436f6e6669674f703c50657263656e743e001644ac5570646174652074686520766172696f7573207374616b696e6720636f6e66696775726174696f6e73202e0025012a20606d696e5f6e6f6d696e61746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f2062652061206e6f6d696e61746f722e25012a20606d696e5f76616c696461746f725f626f6e64603a20546865206d696e696d756d2061637469766520626f6e64206e656564656420746f20626520612076616c696461746f722e55012a20606d61785f6e6f6d696e61746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e2062652061206e6f6d696e61746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e55012a20606d61785f76616c696461746f725f636f756e74603a20546865206d6178206e756d626572206f662075736572732077686f2063616e20626520612076616c696461746f72206174206f6e63652e205768656e98202073657420746f20604e6f6e65602c206e6f206c696d697420697320656e666f726365642e59012a20606368696c6c5f7468726573686f6c64603a2054686520726174696f206f6620606d61785f6e6f6d696e61746f725f636f756e7460206f7220606d61785f76616c696461746f725f636f756e74602077686963681901202073686f756c642062652066696c6c656420696e206f7264657220666f722074686520606368696c6c5f6f7468657260207472616e73616374696f6e20746f20776f726b2e61012a20606d696e5f636f6d6d697373696f6e603a20546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e550120205468697320697320636865636b6564206f6e6c792075706f6e2063616c6c696e67206076616c6964617465602e204578697374696e672076616c696461746f727320617265206e6f742061666665637465642e00c452756e74696d654f726967696e206d75737420626520526f6f7420746f2063616c6c20746869732066756e6374696f6e2e0035014e4f54453a204578697374696e67206e6f6d696e61746f727320616e642076616c696461746f72732077696c6c206e6f742062652061666665637465642062792074686973207570646174652e1101746f206b69636b2070656f706c6520756e64657220746865206e6577206c696d6974732c20606368696c6c5f6f74686572602073686f756c642062652063616c6c65642e2c6368696c6c5f6f746865720401147374617368000130543a3a4163636f756e74496400176841014465636c61726520612060636f6e74726f6c6c65726020746f2073746f702070617274696369706174696e672061732065697468657220612076616c696461746f72206f72206e6f6d696e61746f722e00d8456666656374732077696c6c2062652066656c742061742074686520626567696e6e696e67206f6620746865206e657874206572612e004101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2c206275742063616e2062652063616c6c656420627920616e796f6e652e0059014966207468652063616c6c6572206973207468652073616d652061732074686520636f6e74726f6c6c6572206265696e672074617267657465642c207468656e206e6f206675727468657220636865636b7320617265d8656e666f726365642c20616e6420746869732066756e6374696f6e2062656861766573206a757374206c696b6520606368696c6c602e005d014966207468652063616c6c657220697320646966666572656e74207468616e2074686520636f6e74726f6c6c6572206265696e672074617267657465642c2074686520666f6c6c6f77696e6720636f6e646974696f6e73306d757374206265206d65743a001d012a2060636f6e74726f6c6c657260206d7573742062656c6f6e6720746f2061206e6f6d696e61746f722077686f20686173206265636f6d65206e6f6e2d6465636f6461626c652c000c4f723a003d012a204120604368696c6c5468726573686f6c6460206d7573742062652073657420616e6420636865636b656420776869636820646566696e657320686f7720636c6f736520746f20746865206d6178550120206e6f6d696e61746f7273206f722076616c696461746f7273207765206d757374207265616368206265666f72652075736572732063616e207374617274206368696c6c696e67206f6e652d616e6f746865722e59012a204120604d61784e6f6d696e61746f72436f756e746020616e6420604d617856616c696461746f72436f756e7460206d75737420626520736574207768696368206973207573656420746f2064657465726d696e65902020686f7720636c6f73652077652061726520746f20746865207468726573686f6c642e5d012a204120604d696e4e6f6d696e61746f72426f6e646020616e6420604d696e56616c696461746f72426f6e6460206d7573742062652073657420616e6420636865636b65642c2077686963682064657465726d696e65735101202069662074686973206973206120706572736f6e20746861742073686f756c64206265206368696c6c6564206265636175736520746865792068617665206e6f74206d657420746865207468726573686f6c64402020626f6e642072657175697265642e005501546869732063616e2062652068656c7066756c20696620626f6e6420726571756972656d656e74732061726520757064617465642c20616e64207765206e65656420746f2072656d6f7665206f6c642075736572739877686f20646f206e6f74207361746973667920746865736520726571756972656d656e74732e68666f7263655f6170706c795f6d696e5f636f6d6d697373696f6e04013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400180c4501466f72636520612076616c696461746f7220746f2068617665206174206c6561737420746865206d696e696d756d20636f6d6d697373696f6e2e20546869732077696c6c206e6f74206166666563742061610176616c696461746f722077686f20616c726561647920686173206120636f6d6d697373696f6e2067726561746572207468616e206f7220657175616c20746f20746865206d696e696d756d2e20416e79206163636f756e743863616e2063616c6c20746869732e487365745f6d696e5f636f6d6d697373696f6e04010c6e6577e8011c50657262696c6c00191025015365747320746865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e207468617420656163682076616c696461746f7273206d757374206d61696e7461696e2e005901546869732063616c6c20686173206c6f7765722070726976696c65676520726571756972656d656e7473207468616e20607365745f7374616b696e675f636f6e6669676020616e642063616e2062652063616c6c6564cc6279207468652060543a3a41646d696e4f726967696e602e20526f6f742063616e20616c776179732063616c6c20746869732e587061796f75745f7374616b6572735f62795f706167650c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e6465780001107061676510011050616765001a443101506179206f757420612070616765206f6620746865207374616b65727320626568696e6420612076616c696461746f7220666f722074686520676976656e2065726120616e6420706167652e00e82d206076616c696461746f725f73746173686020697320746865207374617368206163636f756e74206f66207468652076616c696461746f722e31012d206065726160206d617920626520616e7920657261206265747765656e20605b63757272656e745f657261202d20686973746f72795f64657074683b2063757272656e745f6572615d602e31012d2060706167656020697320746865207061676520696e646578206f66206e6f6d696e61746f727320746f20706179206f757420776974682076616c7565206265747765656e203020616e64b02020606e756d5f6e6f6d696e61746f7273202f20543a3a4d61784578706f737572655061676553697a65602e005501546865206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e20416e79206163636f756e742063616e2063616c6c20746869732066756e6374696f6e2c206576656e206966746974206973206e6f74206f6e65206f6620746865207374616b6572732e003d01496620612076616c696461746f7220686173206d6f7265207468616e205b60436f6e6669673a3a4d61784578706f737572655061676553697a65605d206e6f6d696e61746f7273206261636b696e6729017468656d2c207468656e20746865206c697374206f66206e6f6d696e61746f72732069732070616765642c207769746820656163682070616765206265696e672063617070656420617455015b60436f6e6669673a3a4d61784578706f737572655061676553697a65602e5d20496620612076616c696461746f7220686173206d6f7265207468616e206f6e652070616765206f66206e6f6d696e61746f72732c49017468652063616c6c206e6565647320746f206265206d61646520666f72206561636820706167652073657061726174656c7920696e206f7264657220666f7220616c6c20746865206e6f6d696e61746f727355016261636b696e6720612076616c696461746f7220746f207265636569766520746865207265776172642e20546865206e6f6d696e61746f727320617265206e6f7420736f72746564206163726f73732070616765736101616e6420736f2069742073686f756c64206e6f7420626520617373756d6564207468652068696768657374207374616b657220776f756c64206265206f6e2074686520746f706d6f7374207061676520616e642076696365490176657273612e204966207265776172647320617265206e6f7420636c61696d656420696e205b60436f6e6669673a3a486973746f72794465707468605d20657261732c207468657920617265206c6f73742e307570646174655f7061796565040128636f6e74726f6c6c6572000130543a3a4163636f756e744964001b18e04d6967726174657320616e206163636f756e742773206052657761726444657374696e6174696f6e3a3a436f6e74726f6c6c65726020746fa46052657761726444657374696e6174696f6e3a3a4163636f756e7428636f6e74726f6c6c657229602e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e003101546869732077696c6c20776169766520746865207472616e73616374696f6e20666565206966207468652060706179656560206973207375636365737366756c6c79206d696772617465642e686465707265636174655f636f6e74726f6c6c65725f626174636804012c636f6e74726f6c6c6572737d0201f4426f756e6465645665633c543a3a4163636f756e7449642c20543a3a4d6178436f6e74726f6c6c657273496e4465707265636174696f6e42617463683e001c1c5d01557064617465732061206261746368206f6620636f6e74726f6c6c6572206163636f756e747320746f20746865697220636f72726573706f6e64696e67207374617368206163636f756e7420696620746865792061726561016e6f74207468652073616d652e2049676e6f72657320616e7920636f6e74726f6c6c6572206163636f756e7473207468617420646f206e6f742065786973742c20616e6420646f6573206e6f74206f706572617465206966b874686520737461736820616e6420636f6e74726f6c6c65722061726520616c7265616479207468652073616d652e005101456666656374732077696c6c2062652066656c7420696e7374616e746c792028617320736f6f6e20617320746869732066756e6374696f6e20697320636f6d706c65746564207375636365737366756c6c79292e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e38726573746f72655f6c65646765721001147374617368000130543a3a4163636f756e7449640001406d617962655f636f6e74726f6c6c6572810201504f7074696f6e3c543a3a4163636f756e7449643e00012c6d617962655f746f74616c410201504f7074696f6e3c42616c616e63654f663c543e3e00013c6d617962655f756e6c6f636b696e6785020115014f7074696f6e3c426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a0a4d6178556e6c6f636b696e674368756e6b733e3e001d2c0501526573746f72657320746865207374617465206f662061206c656467657220776869636820697320696e20616e20696e636f6e73697374656e742073746174652e00dc54686520726571756972656d656e747320746f20726573746f72652061206c6564676572206172652074686520666f6c6c6f77696e673a642a2054686520737461736820697320626f6e6465643b206f720d012a20546865207374617368206973206e6f7420626f6e64656420627574206974206861732061207374616b696e67206c6f636b206c65667420626568696e643b206f7225012a204966207468652073746173682068617320616e206173736f636961746564206c656467657220616e642069747320737461746520697320696e636f6e73697374656e743b206f721d012a20496620746865206c6564676572206973206e6f7420636f72727570746564202a6275742a20697473207374616b696e67206c6f636b206973206f7574206f662073796e632e00610154686520606d617962655f2a6020696e70757420706172616d65746572732077696c6c206f76657277726974652074686520636f72726573706f6e64696e67206461746120616e64206d65746164617461206f662074686559016c6564676572206173736f6369617465642077697468207468652073746173682e2049662074686520696e70757420706172616d657465727320617265206e6f74207365742c20746865206c65646765722077696c6c9062652072657365742076616c7565732066726f6d206f6e2d636861696e2073746174652e406d6967726174655f63757272656e63790401147374617368000130543a3a4163636f756e744964001e1cbc52656d6f76657320746865206c6567616379205374616b696e67206c6f636b7320696620746865792065786973742e005101546869732072656d6f76657320746865206c6567616379206c6f636b206f6e20746865207374616b652077697468205b60436f6e6669673a3a4f6c6443757272656e6379605d20616e64206372656174657320615501686f6c64206f6e206974206966206e65656465642e20496620616c6c207374616b652063616e6e6f742062652068656c642c207468652062657374206566666f7274206973206d61646520746f20686f6c6420617329016d75636820617320706f737369626c652e205468652072656d61696e696e67207374616b6520697320666f726365642077697468647261776e2066726f6d20746865206c65646765722e00c4546865206665652069732077616976656420696620746865206d6967726174696f6e206973207375636365737366756c2e306d616e75616c5f736c6173680c013c76616c696461746f725f7374617368000130543a3a4163636f756e74496400010c657261100120457261496e646578000138736c6173685f6672616374696f6ee8011c50657262696c6c0021541901546869732066756e6374696f6e20616c6c6f777320676f7665726e616e636520746f206d616e75616c6c7920736c61736820612076616c696461746f7220616e6420697320615c2a2a66616c6c6261636b206d656368616e69736d2a2a2e00b4546865206469737061746368206f726967696e206d7573742062652060543a3a41646d696e4f726967696e602e0034232320506172616d657465727309012d206076616c696461746f725f737461736860202d20546865207374617368206163636f756e74206f66207468652076616c696461746f7220746f20736c6173682efc2d206065726160202d205468652065726120696e207768696368207468652076616c696461746f722077617320696e2074686520616374697665207365742e49012d2060736c6173685f6672616374696f6e60202d205468652070657263656e74616765206f6620746865207374616b6520746f20736c6173682c2065787072657373656420617320612050657262696c6c2e002c2323204265686176696f72003d0154686520736c6173682077696c6c206265206170706c696564207573696e6720746865207374616e6461726420736c617368696e67206d656368616e6963732c2072657370656374696e672074686580636f6e666967757265642060536c61736844656665724475726174696f6e602e002c54686973206d65616e733a51012d204966207468652076616c696461746f722077617320616c726561647920736c61736865642062792061206869676865722070657263656e7461676520666f72207468652073616d65206572612c20746869739c2020736c6173682077696c6c2068617665206e6f206164646974696f6e616c206566666563742e51012d204966207468652076616c696461746f72207761732070726576696f75736c7920736c61736865642062792061206c6f7765722070657263656e746167652c206f6e6c792074686520646966666572656e636548202077696c6c206265206170706c6965642e3d012d2054686520736c6173682077696c6c2062652064656665727265642062792060536c61736844656665724475726174696f6e602065726173206265666f7265206265696e6720656e61637465642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e650200000221020069020c4070657a73705f61726974686d65746963287065725f7468696e67731c50657263656e7400000400080108753800006d02104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c657420436f6e6669674f700404540118010c104e6f6f700000000c5365740400180104540001001852656d6f7665000200007102104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c657420436f6e6669674f700404540110010c104e6f6f700000000c5365740400100104540001001852656d6f7665000200007502104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c657420436f6e6669674f70040454016902010c104e6f6f700000000c536574040069020104540001001852656d6f7665000200007902104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c657420436f6e6669674f7004045401e8010c104e6f6f700000000c5365740400e80104540001001852656d6f7665000200007d020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e0000810204184f7074696f6e04045401000108104e6f6e6500000010536f6d650400000000010000850204184f7074696f6e0404540189020108104e6f6e6500000010536f6d6504008902000001000089020c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018d02045300000400910201185665633c543e00008d02084470657a70616c6c65745f7374616b696e672c556e6c6f636b4368756e6b041c42616c616e636501180008011476616c75654501011c42616c616e636500010c65726135010120457261496e646578000091020000028d020095020c4470657a70616c6c65745f6772616e6470612470657a70616c6c65741043616c6c04045400010c4c7265706f72745f65717569766f636174696f6e08014865717569766f636174696f6e5f70726f6f66990201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e707265706f72745f65717569766f636174696f6e5f756e7369676e656408014865717569766f636174696f6e5f70726f6f66990201c8426f783c45717569766f636174696f6e50726f6f663c543a3a486173682c20426c6f636b4e756d626572466f723c543e3e3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e306e6f74655f7374616c6c656408011464656c6179100144426c6f636b4e756d626572466f723c543e00016c626573745f66696e616c697a65645f626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e0002303d014e6f74652074686174207468652063757272656e7420617574686f7269747920736574206f6620746865204752414e4450412066696e616c6974792067616467657420686173207374616c6c65642e006101546869732077696c6c2074726967676572206120666f7263656420617574686f7269747920736574206368616e67652061742074686520626567696e6e696e67206f6620746865206e6578742073657373696f6e2c20746f6101626520656e6163746564206064656c61796020626c6f636b7320616674657220746861742e20546865206064656c6179602073686f756c64206265206869676820656e6f75676820746f20736166656c7920617373756d654901746861742074686520626c6f636b207369676e616c6c696e672074686520666f72636564206368616e67652077696c6c206e6f742062652072652d6f7267656420652e672e203130303020626c6f636b732e5d0154686520626c6f636b2070726f64756374696f6e207261746520287768696368206d617920626520736c6f77656420646f776e2062656361757365206f662066696e616c697479206c616767696e67292073686f756c64510162652074616b656e20696e746f206163636f756e74207768656e2063686f6f73696e6720746865206064656c6179602e20546865204752414e44504120766f74657273206261736564206f6e20746865206e65775501617574686f726974792077696c6c20737461727420766f74696e67206f6e20746f70206f662060626573745f66696e616c697a65645f626c6f636b5f6e756d6265726020666f72206e65772066696e616c697a65644d01626c6f636b732e2060626573745f66696e616c697a65645f626c6f636b5f6e756d626572602073686f756c64206265207468652068696768657374206f6620746865206c61746573742066696e616c697a6564c4626c6f636b206f6620616c6c2076616c696461746f7273206f6620746865206e657720617574686f72697479207365742e00584f6e6c792063616c6c61626c6520627920726f6f742e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e9902085c70657a73705f636f6e73656e7375735f6772616e6470614445717569766f636174696f6e50726f6f660804480134044e0110000801187365745f6964300114536574496400013065717569766f636174696f6e9d02014845717569766f636174696f6e3c482c204e3e00009d02085c70657a73705f636f6e73656e7375735f6772616e6470613045717569766f636174696f6e0804480134044e011001081c507265766f74650400a10201890166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265766f74653c0a482c204e3e2c20417574686f726974795369676e61747572652c3e00000024507265636f6d6d69740400b50201910166696e616c6974795f6772616e6470613a3a45717569766f636174696f6e3c417574686f7269747949642c2066696e616c6974795f6772616e6470613a3a507265636f6d6d69740a3c482c204e3e2c20417574686f726974795369676e61747572652c3e00010000a102084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c084964010901045601a502045301a90200100130726f756e645f6e756d62657230010c7536340001206964656e746974790901010849640001146669727374b102011828562c2053290001187365636f6e64b102011828562c2053290000a502084066696e616c6974795f6772616e6470611c507265766f74650804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000a9020c5c70657a73705f636f6e73656e7375735f6772616e6470610c617070245369676e617475726500000400ad020148656432353531393a3a5369676e61747572650000ad02000003400000000800b10200000408a502a90200b502084066696e616c6974795f6772616e6470613045717569766f636174696f6e0c084964010901045601b902045301a90200100130726f756e645f6e756d62657230010c7536340001206964656e746974790901010849640001146669727374bd02011828562c2053290001187365636f6e64bd02011828562c2053290000b902084066696e616c6974795f6772616e64706124507265636f6d6d69740804480134044e01100008012c7461726765745f68617368340104480001347461726765745f6e756d6265721001044e0000bd0200000408b902a90200c1020c5870657a70616c6c65745f666173745f756e7374616b652470657a70616c6c65741043616c6c04045400010c5472656769737465725f666173745f756e7374616b65000068885265676973746572206f6e6573656c6620666f7220666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73003901546865207374617368206173736f636961746564207769746820746865206f726967696e206d7573742068617665206e6f206f6e676f696e6720756e6c6f636b696e67206368756e6b732e2049665d017375636365737366756c2c20746869732077696c6c2066756c6c7920756e626f6e6420616e64206368696c6c207468652073746173682e205468656e2c2069742077696c6c20656e71756575652074686520737461736880746f20626520636865636b656420696e206675727468657220626c6f636b732e0051014966206279207468652074696d6520746869732069732063616c6c65642c207468652073746173682069732061637475616c6c7920656c696769626c6520666f7220666173742d756e7374616b652c207468656e450174686579206172652067756172616e7465656420746f2072656d61696e20656c696769626c652c2062656361757365207468652063616c6c2077696c6c206368696c6c207468656d2061732077656c6c2e003d0149662074686520636865636b20776f726b732c2074686520656e74697265207374616b696e6720646174612069732072656d6f7665642c20692e652e207468652073746173682069732066756c6c7924756e7374616b65642e005d0149662074686520636865636b206661696c732c207468652073746173682072656d61696e73206368696c6c656420616e642077616974696e6720666f72206265696e6720756e626f6e64656420617320696e20776974686101746865206e6f726d616c207374616b696e672073797374656d2c206275742074686579206c6f73652070617274206f6620746865697220756e626f6e64696e67206368756e6b732064756520746f20636f6e73756d696e675874686520636861696e2773207265736f75726365732e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e2864657265676973746572000148a444657265676973746572206f6e6573656c662066726f6d2074686520666173742d756e7374616b652e00482323204469737061746368204f726967696e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265202a7369676e65642a2062792077686f65766572206973207065726d697474656420746f2063616c6cf0756e626f6e642066756e647320627920746865207374616b696e672073797374656d2e20536565205b60436f6e6669673a3a5374616b696e67605d2e002823232044657461696c73006101546869732069732075736566756c206966206f6e6520697320726567697374657265642c207468657920617265207374696c6c2077616974696e672c20616e642074686579206368616e6765207468656972206d696e642e0059014e6f7465207468617420746865206173736f636961746564207374617368206973207374696c6c2066756c6c7920756e626f6e64656420616e64206368696c6c6564206173206120636f6e73657175656e6365206f66410163616c6c696e67205b6050657a70616c6c65743a3a72656769737465725f666173745f756e7374616b65605d2e205468657265666f72652c20746869732073686f756c642070726f6261626c79206265d4666f6c6c6f77656420627920612063616c6c20746f20607265626f6e646020696e20746865207374616b696e672073797374656d2e00242323204576656e7473000901536f6d65206576656e74732066726f6d20746865207374616b696e6720616e642063757272656e63792073797374656d206d6967687420626520656d69747465642e1c636f6e74726f6c040134657261735f746f5f636865636b100120457261496e646578000234a0436f6e74726f6c20746865206f7065726174696f6e206f6620746869732070657a70616c6c65742e00482323204469737061746368204f726967696e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e002823232044657461696c7300410143616e2073657420746865206e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2c20616e6420706f74656e7469616c6c79206f746865722061646d696e20776f726b2e00242323204576656e747300a44e6f206576656e74732061726520656d69747465642066726f6d20746869732064697370617463682e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ec5020c5070657a70616c6c65745f636f6c6c6563746976652470657a70616c6c65741043616c6c0804540004490001202c7365745f6d656d626572730c012c6e65775f6d656d626572732d0201445665633c543a3a4163636f756e7449643e0001147072696d65810201504f7074696f6e3c543a3a4163636f756e7449643e0001246f6c645f636f756e7410012c4d656d626572436f756e74000060805365742074686520636f6c6c6563746976652773206d656d626572736869702e0045012d20606e65775f6d656d62657273603a20546865206e6577206d656d626572206c6973742e204265206e69636520746f2074686520636861696e20616e642070726f7669646520697420736f727465642ee02d20607072696d65603a20546865207072696d65206d656d6265722077686f736520766f74652073657473207468652064656661756c742e59012d20606f6c645f636f756e74603a2054686520757070657220626f756e6420666f72207468652070726576696f7573206e756d626572206f66206d656d6265727320696e2073746f726167652e205573656420666f7250202077656967687420657374696d6174696f6e2e00d4546865206469737061746368206f6620746869732063616c6c206d75737420626520605365744d656d626572734f726967696e602e0051014e4f54453a20446f6573206e6f7420656e666f7263652074686520657870656374656420604d61784d656d6265727360206c696d6974206f6e2074686520616d6f756e74206f66206d656d626572732c2062757421012020202020207468652077656967687420657374696d6174696f6e732072656c79206f6e20697420746f20657374696d61746520646973706174636861626c65207765696768742e002823205741524e494e473a006101546865206070657a70616c6c65742d636f6c6c656374697665602063616e20616c736f206265206d616e61676564206279206c6f676963206f757473696465206f66207468652070657a70616c6c6574207468726f756768c874686520696d706c656d656e746174696f6e206f6620746865207472616974205b604368616e67654d656d62657273605d2e5501416e792063616c6c20746f20607365745f6d656d6265727360206d757374206265206361726566756c207468617420746865206d656d6265722073657420646f65736e277420676574206f7574206f662073796e63a477697468206f74686572206c6f676963206d616e6167696e6720746865206d656d626572207365742e0038232320436f6d706c65786974793a502d20604f284d50202b204e29602077686572653ae020202d20604d60206f6c642d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429e020202d20604e60206e65772d6d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564299820202d206050602070726f706f73616c732d636f756e742028636f64652d626f756e646564291c6578656375746508012070726f706f73616ce101017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c753332000124f0446973706174636820612070726f706f73616c2066726f6d2061206d656d626572207573696e672074686520604d656d62657260206f726967696e2e00a84f726967696e206d7573742062652061206d656d626572206f662074686520636f6c6c6563746976652e0038232320436f6d706c65786974793a5c2d20604f2842202b204d202b205029602077686572653ad82d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429882d20604d60206d656d626572732d636f756e742028636f64652d626f756e64656429a82d2060506020636f6d706c6578697479206f66206469737061746368696e67206070726f706f73616c601c70726f706f73650c01247468726573686f6c643501012c4d656d626572436f756e7400012070726f706f73616ce101017c426f783c3c5420617320436f6e6669673c493e3e3a3a50726f706f73616c3e0001306c656e6774685f626f756e643501010c753332000238f84164642061206e65772070726f706f73616c20746f2065697468657220626520766f746564206f6e206f72206578656375746564206469726563746c792e00845265717569726573207468652073656e64657220746f206265206d656d6265722e004101607468726573686f6c64602064657465726d696e65732077686574686572206070726f706f73616c60206973206578656375746564206469726563746c792028607468726573686f6c64203c20326029546f722070757420757020666f7220766f74696e672e0034232320436f6d706c6578697479ac2d20604f2842202b204d202b2050312960206f7220604f2842202b204d202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c420202d206272616e6368696e6720697320696e666c75656e63656420627920607468726573686f6c64602077686572653af4202020202d20605031602069732070726f706f73616c20657865637574696f6e20636f6d706c65786974792028607468726573686f6c64203c20326029fc202020202d20605032602069732070726f706f73616c732d636f756e742028636f64652d626f756e646564292028607468726573686f6c64203e3d2032602910766f74650c012070726f706f73616c34011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800011c617070726f7665200110626f6f6c000324f041646420616e20617965206f72206e617920766f746520666f72207468652073656e64657220746f2074686520676976656e2070726f706f73616c2e008c5265717569726573207468652073656e64657220746f2062652061206d656d6265722e0049015472616e73616374696f6e20666565732077696c6c2062652077616976656420696620746865206d656d62657220697320766f74696e67206f6e20616e7920706172746963756c61722070726f706f73616c5101666f72207468652066697273742074696d6520616e64207468652063616c6c206973207375636365737366756c2e2053756273657175656e7420766f7465206368616e6765732077696c6c206368617267652061106665652e34232320436f6d706c657869747909012d20604f284d296020776865726520604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e646564294c646973617070726f76655f70726f706f73616c04013470726f706f73616c5f6861736834011c543a3a486173680005285901446973617070726f766520612070726f706f73616c2c20636c6f73652c20616e642072656d6f76652069742066726f6d207468652073797374656d2c207265676172646c657373206f66206974732063757272656e741873746174652e00884d7573742062652063616c6c65642062792074686520526f6f74206f726967696e2e002c506172616d65746572733a1d012a206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c6420626520646973617070726f7665642e0034232320436f6d706c6578697479ac4f285029207768657265205020697320746865206e756d626572206f66206d61782070726f706f73616c7314636c6f736510013470726f706f73616c5f6861736834011c543a3a48617368000114696e6465783501013450726f706f73616c496e64657800015470726f706f73616c5f7765696768745f626f756e642801185765696768740001306c656e6774685f626f756e643501010c7533320006604d01436c6f7365206120766f746520746861742069732065697468657220617070726f7665642c20646973617070726f766564206f722077686f736520766f74696e6720706572696f642068617320656e6465642e0055014d61792062652063616c6c656420627920616e79207369676e6564206163636f756e7420696e206f7264657220746f2066696e69736820766f74696e6720616e6420636c6f7365207468652070726f706f73616c2e00490149662063616c6c6564206265666f72652074686520656e64206f662074686520766f74696e6720706572696f642069742077696c6c206f6e6c7920636c6f73652074686520766f7465206966206974206973bc68617320656e6f75676820766f74657320746f20626520617070726f766564206f7220646973617070726f7665642e00490149662063616c6c65642061667465722074686520656e64206f662074686520766f74696e6720706572696f642061627374656e74696f6e732061726520636f756e7465642061732072656a656374696f6e732501756e6c6573732074686572652069732061207072696d65206d656d6265722073657420616e6420746865207072696d65206d656d626572206361737420616e20617070726f76616c2e00610149662074686520636c6f7365206f7065726174696f6e20636f6d706c65746573207375636365737366756c6c79207769746820646973617070726f76616c2c20746865207472616e73616374696f6e206665652077696c6c5d016265207761697665642e204f746865727769736520657865637574696f6e206f662074686520617070726f766564206f7065726174696f6e2077696c6c206265206368617267656420746f207468652063616c6c65722e0061012b206070726f706f73616c5f7765696768745f626f756e64603a20546865206d6178696d756d20616d6f756e74206f662077656967687420636f6e73756d656420627920657865637574696e672074686520636c6f7365642470726f706f73616c2e61012b20606c656e6774685f626f756e64603a2054686520757070657220626f756e6420666f7220746865206c656e677468206f66207468652070726f706f73616c20696e2073746f726167652e20436865636b65642076696135016073746f726167653a3a726561646020736f206974206973206073697a655f6f663a3a3c7533323e2829203d3d203460206c6172676572207468616e207468652070757265206c656e6774682e0034232320436f6d706c6578697479742d20604f2842202b204d202b205031202b20503229602077686572653ae020202d20604260206973206070726f706f73616c602073697a6520696e20627974657320286c656e6774682d6665652d626f756e64656429dc20202d20604d60206973206d656d626572732d636f756e742028636f64652d20616e6420676f7665726e616e63652d626f756e64656429c820202d20605031602069732074686520636f6d706c6578697479206f66206070726f706f73616c6020707265696d6167652ea420202d20605032602069732070726f706f73616c2d636f756e742028636f64652d626f756e64656429106b696c6c04013470726f706f73616c5f6861736834011c543a3a4861736800071c2501446973617070726f7665207468652070726f706f73616c20616e64206275726e2074686520636f73742068656c6420666f722073746f72696e6720746869732070726f706f73616c2e002c506172616d65746572733a942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602e09012d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c20746861742073686f756c64206265206b696c6c65642e004901456d69747320604b696c6c65646020616e64206050726f706f73616c436f73744275726e65646020696620616e7920636f7374207761732068656c6420666f72206120676976656e2070726f706f73616c2e5472656c656173655f70726f706f73616c5f636f737404013470726f706f73616c5f6861736834011c543a3a48617368000824490152656c656173652074686520636f73742068656c6420666f722073746f72696e6720612070726f706f73616c206f6e63652074686520676976656e2070726f706f73616c20697320636f6d706c657465642e0055014966207468657265206973206e6f206173736f63696174656420636f737420666f722074686520676976656e2070726f706f73616c2c20746869732063616c6c2077696c6c2068617665206e6f206566666563742e002c506172616d65746572733a9c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602eb02d206070726f706f73616c5f68617368603a205468652068617368206f66207468652070726f706f73616c2e000d01456d697473206050726f706f73616c436f737452656c65617365646020696620616e7920636f73742068656c6420666f72206120676976656e2070726f706f73616c2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ec9020c4870657a70616c6c65745f74726561737572792470657a70616c6c65741043616c6c0804540004490001182c7370656e645f6c6f63616c080118616d6f756e744501013c42616c616e63654f663c542c20493e00012c62656e6566696369617279210201504163636f756e7449644c6f6f6b75704f663c543e000344b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e0045014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c656173742060616d6f756e74602e002c2323232044657461696c7345014e4f54453a20466f72207265636f72642d6b656570696e6720707572706f7365732c207468652070726f706f736572206973206465656d656420746f206265206571756976616c656e7420746f207468653062656e65666963696172792e003823232320506172616d657465727341012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602ee82d206062656e6566696369617279603a205468652064657374696e6174696f6e206163636f756e7420666f7220746865207472616e736665722e00242323204576656e747300b4456d697473205b604576656e743a3a5370656e64417070726f766564605d206966207375636365737366756c2e3c72656d6f76655f617070726f76616c04012c70726f706f73616c5f69643501013450726f706f73616c496e6465780004542d01466f72636520612070726576696f75736c7920617070726f7665642070726f706f73616c20746f2062652072656d6f7665642066726f6d2074686520617070726f76616c2071756575652e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c7300c0546865206f726967696e616c206465706f7369742077696c6c206e6f206c6f6e6765722062652072657475726e65642e003823232320506172616d6574657273a02d206070726f706f73616c5f6964603a2054686520696e646578206f6620612070726f706f73616c003823232320436f6d706c6578697479ac2d204f2841292077686572652060416020697320746865206e756d626572206f6620617070726f76616c730028232323204572726f727345012d205b604572726f723a3a50726f706f73616c4e6f74417070726f766564605d3a20546865206070726f706f73616c5f69646020737570706c69656420776173206e6f7420666f756e6420696e2074686551012020617070726f76616c2071756575652c20692e652e2c207468652070726f706f73616c20686173206e6f74206265656e20617070726f7665642e205468697320636f756c6420616c736f206d65616e207468655901202070726f706f73616c20646f6573206e6f7420657869737420616c746f6765746865722c2074687573207468657265206973206e6f2077617920697420776f756c642068617665206265656e20617070726f766564542020696e2074686520666972737420706c6163652e147370656e6410012861737365745f6b696e6425010144426f783c543a3a41737365744b696e643e000118616d6f756e7445010150417373657442616c616e63654f663c542c20493e00012c62656e6566696369617279c5010178426f783c42656e65666963696172794c6f6f6b75704f663c542c20493e3e00012876616c69645f66726f6dec01704f7074696f6e3c426c6f636b4e756d626572466f723c542c20493e3e000568b850726f706f736520616e6420617070726f76652061207370656e64206f662074726561737572792066756e64732e00482323204469737061746368204f726967696e001d014d757374206265205b60436f6e6669673a3a5370656e644f726967696e605d207769746820746865206053756363657373602076616c7565206265696e67206174206c65617374550160616d6f756e7460206f66206061737365745f6b696e646020696e20746865206e61746976652061737365742e2054686520616d6f756e74206f66206061737365745f6b696e646020697320636f6e766572746564d4666f7220617373657274696f6e207573696e6720746865205b60436f6e6669673a3a42616c616e6365436f6e766572746572605d2e002823232044657461696c7300490143726561746520616e20617070726f766564207370656e6420666f72207472616e7366657272696e6720612073706563696669632060616d6f756e7460206f66206061737365745f6b696e646020746f2061610164657369676e617465642062656e65666963696172792e20546865207370656e64206d75737420626520636c61696d6564207573696e672074686520607061796f75746020646973706174636861626c652077697468696e74746865205b60436f6e6669673a3a5061796f7574506572696f64605d2e003823232320506172616d657465727315012d206061737365745f6b696e64603a20416e20696e64696361746f72206f662074686520737065636966696320617373657420636c61737320746f206265207370656e742e41012d2060616d6f756e74603a2054686520616d6f756e7420746f206265207472616e736665727265642066726f6d2074686520747265617375727920746f20746865206062656e6566696369617279602eb82d206062656e6566696369617279603a205468652062656e6566696369617279206f6620746865207370656e642e55012d206076616c69645f66726f6d603a2054686520626c6f636b206e756d6265722066726f6d20776869636820746865207370656e642063616e20626520636c61696d65642e2049742063616e20726566657220746f1901202074686520706173742069662074686520726573756c74696e67207370656e6420686173206e6f74207965742065787069726564206163636f7264696e6720746f20746865450120205b60436f6e6669673a3a5061796f7574506572696f64605d2e20496620604e6f6e65602c20746865207370656e642063616e20626520636c61696d656420696d6d6564696174656c792061667465722c2020617070726f76616c2e00242323204576656e747300c8456d697473205b604576656e743a3a41737365745370656e64417070726f766564605d206966207375636365737366756c2e187061796f7574040114696e6465781001285370656e64496e64657800064c38436c61696d2061207370656e642e00482323204469737061746368204f726967696e00384d757374206265207369676e6564002823232044657461696c730055015370656e6473206d75737420626520636c61696d65642077697468696e20736f6d652074656d706f72616c20626f756e64732e2041207370656e64206d617920626520636c61696d65642077697468696e206f6e65d45b60436f6e6669673a3a5061796f7574506572696f64605d2066726f6d20746865206076616c69645f66726f6d6020626c6f636b2e5501496e2063617365206f662061207061796f7574206661696c7572652c20746865207370656e6420737461747573206d75737420626520757064617465642077697468207468652060636865636b5f73746174757360dc646973706174636861626c65206265666f7265207265747279696e672077697468207468652063757272656e742066756e6374696f6e2e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e74730090456d697473205b604576656e743a3a50616964605d206966207375636365737366756c2e30636865636b5f737461747573040114696e6465781001285370656e64496e64657800074c2901436865636b2074686520737461747573206f6620746865207370656e6420616e642072656d6f76652069742066726f6d207468652073746f726167652069662070726f6365737365642e00482323204469737061746368204f726967696e003c4d757374206265207369676e65642e002823232044657461696c730001015468652073746174757320636865636b20697320612070726572657175697369746520666f72207265747279696e672061206661696c6564207061796f75742e490149662061207370656e64206861732065697468657220737563636565646564206f7220657870697265642c2069742069732072656d6f7665642066726f6d207468652073746f726167652062792074686973ec66756e6374696f6e2e20496e207375636820696e7374616e6365732c207472616e73616374696f6e20666565732061726520726566756e6465642e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300f8456d697473205b604576656e743a3a5061796d656e744661696c6564605d20696620746865207370656e64207061796f757420686173206661696c65642e0101456d697473205b604576656e743a3a5370656e6450726f636573736564605d20696620746865207370656e64207061796f75742068617320737563636565642e28766f69645f7370656e64040114696e6465781001285370656e64496e6465780008407c566f69642070726576696f75736c7920617070726f766564207370656e642e00482323204469737061746368204f726967696e00844d757374206265205b60436f6e6669673a3a52656a6563744f726967696e605d2e002823232044657461696c73001d0141207370656e6420766f6964206973206f6e6c7920706f737369626c6520696620746865207061796f757420686173206e6f74206265656e20617474656d70746564207965742e003823232320506172616d65746572736c2d2060696e646578603a20546865207370656e6420696e6465782e00242323204576656e747300c0456d697473205b604576656e743a3a41737365745370656e64566f69646564605d206966207375636365737366756c2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ecd020c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e672470657a70616c6c65741043616c6c08045400044900011810766f7465080128706f6c6c5f696e64657835010144506f6c6c496e6465784f663c542c20493e000110766f7465d10101704163636f756e74566f74653c42616c616e63654f663c542c20493e3e0000241901566f746520696e206120706f6c6c2e2049662060766f74652e69735f6179652829602c2074686520766f746520697320746f20656e616374207468652070726f706f73616c3bb86f7468657277697365206974206973206120766f746520746f206b65657020746865207374617475732071756f2e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00c82d2060706f6c6c5f696e646578603a2054686520696e646578206f662074686520706f6c6c20746f20766f746520666f722e842d2060766f7465603a2054686520766f746520636f6e66696775726174696f6e2e0015015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722068617320766f746564206f6e2e2064656c6567617465100114636c617373cd010134436c6173734f663c542c20493e000108746f210201504163636f756e7449644c6f6f6b75704f663c543e000128636f6e76696374696f6ed1020128436f6e76696374696f6e00011c62616c616e636518013c42616c616e63654f663c542c20493e00015c4d0144656c65676174652074686520766f74696e6720706f77657220287769746820736f6d6520676976656e20636f6e76696374696f6e29206f66207468652073656e64696e67206163636f756e7420666f72206168706172746963756c617220636c617373206f6620706f6c6c732e0055015468652062616c616e63652064656c656761746564206973206c6f636b656420666f72206173206c6f6e6720617320697427732064656c6567617465642c20616e64207468657265616674657220666f7220746865c874696d6520617070726f70726961746520666f722074686520636f6e76696374696f6e2773206c6f636b20706572696f642e005d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e696e67206163636f756e74206d757374206569746865723a7420202d2062652064656c65676174696e6720616c72656164793b206f72450120202d2068617665206e6f20766f74696e67206163746976697479202869662074686572652069732c207468656e2069742077696c6c206e65656420746f2062652072656d6f766564207468726f7567684c202020206072656d6f76655f766f746560292e0045012d2060746f603a20546865206163636f756e742077686f736520766f74696e6720746865206074617267657460206163636f756e74277320766f74696e6720706f7765722077696c6c20666f6c6c6f772e5d012d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2064656c65676174652e20546f2064656c6567617465206d756c7469706c6520636c61737365732c206d756c7469706c652063616c6c73802020746f20746869732066756e6374696f6e206172652072657175697265642e55012d2060636f6e76696374696f6e603a2054686520636f6e76696374696f6e20746861742077696c6c20626520617474616368656420746f207468652064656c65676174656420766f7465732e205768656e20746865410120206163636f756e7420697320756e64656c6567617465642c207468652066756e64732077696c6c206265206c6f636b656420666f722074686520636f72726573706f6e64696e6720706572696f642e61012d206062616c616e6365603a2054686520616d6f756e74206f6620746865206163636f756e7427732062616c616e636520746f206265207573656420696e2064656c65676174696e672e2054686973206d757374206e6f74b420206265206d6f7265207468616e20746865206163636f756e7427732063757272656e742062616c616e63652e0048456d697473206044656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e28756e64656c6567617465040114636c617373cd010134436c6173734f663c542c20493e0002384d01556e64656c65676174652074686520766f74696e6720706f776572206f66207468652073656e64696e67206163636f756e7420666f72206120706172746963756c617220636c617373206f6620706f6c6c732e005d01546f6b656e73206d617920626520756e6c6f636b656420666f6c6c6f77696e67206f6e636520616e20616d6f756e74206f662074696d6520636f6e73697374656e74207769746820746865206c6f636b20706572696f6409016f662074686520636f6e76696374696f6e2077697468207768696368207468652064656c65676174696f6e207761732069737375656420686173207061737365642e004501546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f20616e6420746865207369676e696e67206163636f756e74206d7573742062655463757272656e746c792064656c65676174696e672e00f02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f2072656d6f7665207468652064656c65676174696f6e2066726f6d2e0050456d6974732060556e64656c656761746564602e0025015765696768743a20604f28522960207768657265205220697320746865206e756d626572206f6620706f6c6c732074686520766f7465722064656c65676174696e6720746f206861734d012020766f746564206f6e2e2057656967687420697320696e697469616c6c792063686172676564206173206966206d6178696d756d20766f7465732c2062757420697320726566756e646564206c617465722e18756e6c6f636b080114636c617373cd010134436c6173734f663c542c20493e000118746172676574210201504163636f756e7449644c6f6f6b75704f663c543e0003245d0152656d6f766520746865206c6f636b20636175736564206279207072696f7220766f74696e672f64656c65676174696e672077686963682068617320657870697265642077697468696e206120706172746963756c617218636c6173732e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e00a02d2060636c617373603a2054686520636c617373206f6620706f6c6c7320746f20756e6c6f636b2eb82d2060746172676574603a20546865206163636f756e7420746f2072656d6f766520746865206c6f636b206f6e2e00bc5765696768743a20604f2852296020776974682052206e756d626572206f6620766f7465206f66207461726765742e2c72656d6f76655f766f7465080114636c617373d50201544f7074696f6e3c436c6173734f663c542c20493e3e000114696e646578100144506f6c6c496e6465784f663c542c20493e0004746452656d6f7665206120766f746520666f72206120706f6c6c2e000c49663a702d2074686520706f6c6c207761732063616e63656c6c65642c206f72642d2074686520706f6c6c206973206f6e676f696e672c206f72782d2074686520706f6c6c2068617320656e64656420737563682074686174fc20202d2074686520766f7465206f6620746865206163636f756e742077617320696e206f70706f736974696f6e20746f2074686520726573756c743b206f72d420202d20746865726520776173206e6f20636f6e76696374696f6e20746f20746865206163636f756e74277320766f74653b206f728420202d20746865206163636f756e74206d61646520612073706c697420766f74655d012e2e2e7468656e2074686520766f74652069732072656d6f76656420636c65616e6c7920616e64206120666f6c6c6f77696e672063616c6c20746f2060756e6c6f636b60206d617920726573756c7420696e206d6f72655866756e6473206265696e6720617661696c61626c652e009049662c20686f77657665722c2074686520706f6c6c2068617320656e64656420616e643aec2d2069742066696e697368656420636f72726573706f6e64696e6720746f2074686520766f7465206f6620746865206163636f756e742c20616e64dc2d20746865206163636f756e74206d6164652061207374616e6461726420766f7465207769746820636f6e76696374696f6e2c20616e64bc2d20746865206c6f636b20706572696f64206f662074686520636f6e76696374696f6e206973206e6f74206f76657259012e2e2e7468656e20746865206c6f636b2077696c6c206265206167677265676174656420696e746f20746865206f766572616c6c206163636f756e742773206c6f636b2c207768696368206d617920696e766f6c766559012a6f7665726c6f636b696e672a20287768657265207468652074776f206c6f636b732061726520636f6d62696e656420696e746f20612073696e676c65206c6f636b207468617420697320746865206d6178696d756de46f6620626f74682074686520616d6f756e74206c6f636b656420616e64207468652074696d65206973206974206c6f636b656420666f72292e004901546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2c20616e6420746865207369676e6572206d7573742068617665206120766f7465707265676973746572656420666f7220706f6c6c2060696e646578602e00dc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e55012d2060636c617373603a204f7074696f6e616c20706172616d657465722c20696620676976656e20697420696e646963617465732074686520636c617373206f662074686520706f6c6c2e20466f7220706f6c6c73f02020776869636820686176652066696e6973686564206f72206172652063616e63656c6c65642c2074686973206d7573742062652060536f6d65602e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e4472656d6f76655f6f746865725f766f74650c0118746172676574210201504163636f756e7449644c6f6f6b75704f663c543e000114636c617373cd010134436c6173734f663c542c20493e000114696e646578100144506f6c6c496e6465784f663c542c20493e0005406452656d6f7665206120766f746520666f72206120706f6c6c2e004d0149662074686520607461726765746020697320657175616c20746f20746865207369676e65722c207468656e20746869732066756e6374696f6e2069732065786163746c79206571756976616c656e7420746f2d016072656d6f76655f766f7465602e204966206e6f7420657175616c20746f20746865207369676e65722c207468656e2074686520766f7465206d757374206861766520657870697265642c250165697468657220626563617573652074686520706f6c6c207761732063616e63656c6c65642c20626563617573652074686520766f746572206c6f73742074686520706f6c6c206f7298626563617573652074686520636f6e76696374696f6e20706572696f64206973206f7665722e00c8546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205f5369676e65645f2e0061012d2060746172676574603a20546865206163636f756e74206f662074686520766f746520746f2062652072656d6f7665643b2074686973206163636f756e74206d757374206861766520766f74656420666f7220706f6c6c28202060696e646578602edc2d2060696e646578603a2054686520696e646578206f6620706f6c6c206f662074686520766f746520746f2062652072656d6f7665642e842d2060636c617373603a2054686520636c617373206f662074686520706f6c6c2e0045015765696768743a20604f2852202b206c6f6720522960207768657265205220697320746865206e756d626572206f6620706f6c6c7320746861742060746172676574602068617320766f746564206f6e2ed820205765696768742069732063616c63756c6174656420666f7220746865206d6178696d756d206e756d626572206f6620766f74652e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ed1020c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6728636f6e76696374696f6e28436f6e76696374696f6e00011c104e6f6e65000000204c6f636b65643178000100204c6f636b65643278000200204c6f636b65643378000300204c6f636b65643478000400204c6f636b65643578000500204c6f636b6564367800060000d50204184f7074696f6e04045401cd010108104e6f6e6500000010536f6d650400cd010000010000d9020c4c70657a70616c6c65745f7265666572656e64612470657a70616c6c65741043616c6c080454000449000124187375626d69740c013c70726f706f73616c5f6f726967696edd02015c426f783c50616c6c6574734f726967696e4f663c543e3e00012070726f706f73616cdd01014c426f756e64656443616c6c4f663c542c20493e000140656e6163746d656e745f6d6f6d656e74f9020188446973706174636854696d653c426c6f636b4e756d626572466f723c542c20493e3e000024b050726f706f73652061207265666572656e64756d206f6e20612070726976696c6567656420616374696f6e2e0059012d20606f726967696e603a206d75737420626520605375626d69744f726967696e6020616e6420746865206163636f756e74206d757374206861766520605375626d697373696f6e4465706f736974602066756e6473302020617661696c61626c652e2d012d206070726f706f73616c5f6f726967696e603a20546865206f726967696e2066726f6d207768696368207468652070726f706f73616c2073686f756c642062652065786563757465642e6c2d206070726f706f73616c603a205468652070726f706f73616c2e15012d2060656e6163746d656e745f6d6f6d656e74603a20546865206d6f6d656e742074686174207468652070726f706f73616c2073686f756c6420626520656e61637465642e0048456d69747320605375626d6974746564602e58706c6163655f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e646578000120ac506f737420746865204465636973696f6e204465706f73697420666f722061207265666572656e64756d2e0039012d20606f726967696e603a206d75737420626520605369676e65646020616e6420746865206163636f756e74206d75737420686176652066756e647320617661696c61626c6520666f7220746865a020207265666572656e64756d277320747261636b2773204465636973696f6e204465706f7369742e51012d2060696e646578603a2054686520696e646578206f6620746865207375626d6974746564207265666572656e64756d2077686f7365204465636973696f6e204465706f7369742069732079657420746f206265242020706f737465642e0078456d69747320604465636973696f6e4465706f736974506c61636564602e5c726566756e645f6465636973696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800021c2901526566756e6420746865204465636973696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e4d012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365204465636973696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0080456d69747320604465636973696f6e4465706f736974526566756e646564602e1863616e63656c040114696e64657810013c5265666572656e64756d496e6465780003187443616e63656c20616e206f6e676f696e67207265666572656e64756d2e009c2d20606f726967696e603a206d75737420626520746865206043616e63656c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0048456d697473206043616e63656c6c6564602e106b696c6c040114696e64657810013c5265666572656e64756d496e646578000418d043616e63656c20616e206f6e676f696e67207265666572656e64756d20616e6420736c61736820746865206465706f736974732e00942d20606f726967696e603a206d7573742062652074686520604b696c6c4f726967696e602edc2d2060696e646578603a2054686520696e646578206f6620746865207265666572656e64756d20746f2062652063616e63656c6c65642e0090456d69747320604b696c6c65646020616e6420604465706f736974536c6173686564602e406e756467655f7265666572656e64756d040114696e64657810013c5265666572656e64756d496e6465780005101d01416476616e63652061207265666572656e64756d206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602ea42d2060696e646578603a20746865207265666572656e64756d20746f20626520616476616e6365642e486f6e655f66657765725f6465636964696e67040114747261636bcd01013c547261636b49644f663c542c20493e0006240901416476616e6365206120747261636b206f6e746f20697473206e657874206c6f676963616c2073746174652e204f6e6c79207573656420696e7465726e616c6c792e006c2d20606f726967696e603a206d7573742062652060526f6f74602e902d2060747261636b603a2074686520747261636b20746f20626520616476616e6365642e005101416374696f6e206974656d20666f72207768656e207468657265206973206e6f77206f6e65206665776572207265666572656e64756d20696e20746865206465636964696e6720706861736520616e64207468651501604465636964696e67436f756e7460206973206e6f742079657420757064617465642e2054686973206d65616e7320746861742077652073686f756c64206569746865723a25012d20626567696e206465636964696e6720616e6f74686572207265666572656e64756d2028616e64206c6561766520604465636964696e67436f756e746020616c6f6e65293b206f72702d2064656372656d656e7420604465636964696e67436f756e74602e64726566756e645f7375626d697373696f6e5f6465706f736974040114696e64657810013c5265666572656e64756d496e64657800071c3101526566756e6420746865205375626d697373696f6e204465706f73697420666f72206120636c6f736564207265666572656e64756d206261636b20746f20746865206465706f7369746f722e009c2d20606f726967696e603a206d75737420626520605369676e656460206f722060526f6f74602e55012d2060696e646578603a2054686520696e646578206f66206120636c6f736564207265666572656e64756d2077686f7365205375626d697373696f6e204465706f73697420686173206e6f7420796574206265656e2c2020726566756e6465642e0088456d69747320605375626d697373696f6e4465706f736974526566756e646564602e307365745f6d65746164617461080114696e64657810013c5265666572656e64756d496e6465780001286d617962655f68617368fd02013c4f7074696f6e3c543a3a486173683e00081c98536574206f7220636c656172206d65746164617461206f662061207265666572656e64756d2e002c506172616d65746572733a45012d20606f726967696e603a204d75737420626520605369676e65646020627920612063726561746f72206f662061207265666572656e64756d206f7220627920616e796f6e6520746f20636c65617220619020206d65746164617461206f6620612066696e6973686564207265666572656e64756d2e0d012d2060696e646578603a202054686520696e646578206f662061207265666572656e64756d20746f20736574206f7220636c656172206d6574616461746120666f722e51012d20606d617962655f68617368603a205468652068617368206f6620616e206f6e2d636861696e2073746f72656420707265696d6167652e20604e6f6e656020746f20636c6561722061206d657461646174612e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732edd02085070657a6b757769636861696e5f72756e74696d65304f726967696e43616c6c65720001141873797374656d0400e102018070657a6672616d655f73797374656d3a3a4f726967696e3c52756e74696d653e0000001c436f756e63696c0400e50201190170657a70616c6c65745f636f6c6c6563746976653a3a4f726967696e3c52756e74696d652c2070657a70616c6c65745f636f6c6c6563746976653a3a496e7374616e6365313e0011001c4f726967696e730400e902018070657a70616c6c65745f637573746f6d5f6f726967696e733a3a4f726967696e002b004054657972636861696e734f726967696e0400ed02016474657972636861696e735f6f726967696e3a3a4f726967696e0032002458636d50616c6c65740400f502015470657a70616c6c65745f78636d3a3a4f726967696e00630000e1020c4070657a6672616d655f737570706f7274206469737061746368245261774f726967696e04244163636f756e7449640100011010526f6f74000000185369676e656404000001244163636f756e744964000100104e6f6e6500020028417574686f72697a656400030000e502085070657a70616c6c65745f636f6c6c656374697665245261774f726967696e08244163636f756e7449640100044900010c1c4d656d62657273080010012c4d656d626572436f756e74000010012c4d656d626572436f756e74000000184d656d62657204000001244163636f756e744964000100205f5068616e746f6d00020000e902145070657a6b757769636861696e5f72756e74696d6528676f7665726e616e63651c6f726967696e736070657a70616c6c65745f637573746f6d5f6f726967696e73184f726967696e00016c305374616b696e6741646d696e000000245472656173757265720001003c46656c6c6f777368697041646d696e0002003047656e6572616c41646d696e0003003041756374696f6e41646d696e000400284c6561736541646d696e0005004c5265666572656e64756d43616e63656c6c6572000600405265666572656e64756d4b696c6c65720007002c536d616c6c5469707065720008002442696754697070657200090030536d616c6c5370656e646572000a00344d656469756d5370656e646572000b00284269675370656e646572000c004457686974656c697374656443616c6c6572000d004c46656c6c6f7773686970496e69746961746573000e001c46656c6c6f7773000f004446656c6c6f7773686970457870657274730010004446656c6c6f77736869704d6173746572730011003846656c6c6f77736869703144616e0012003846656c6c6f77736869703244616e0013003846656c6c6f77736869703344616e0014003846656c6c6f77736869703444616e0015003846656c6c6f77736869703544616e0016003846656c6c6f77736869703644616e0017003846656c6c6f77736869703744616e0018003846656c6c6f77736869703844616e0019003846656c6c6f77736869703944616e001a0000ed02106870657a6b7577695f72756e74696d655f74657972636861696e73186f726967696e2470657a70616c6c6574184f726967696e0001042454657972636861696e0400f102011850617261496400000000f1020c7070657a6b7577695f74657972636861696e5f7072696d697469766573287072696d6974697665730849640000040010010c7533320000f5020c3470657a70616c6c65745f78636d2470657a70616c6c6574184f726967696e0001080c58636d04008d0101204c6f636174696f6e00000020526573706f6e736504008d0101204c6f636174696f6e00010000f902104070657a6672616d655f737570706f727418747261697473207363686564756c6530446973706174636854696d65042c426c6f636b4e756d62657201100108084174040010012c426c6f636b4e756d626572000000144166746572040010012c426c6f636b4e756d62657200010000fd0204184f7074696f6e04045401340108104e6f6e6500000010536f6d65040034000001000001030c4c70657a70616c6c65745f77686974656c6973742470657a70616c6c65741043616c6c0404540001103877686974656c6973745f63616c6c04012463616c6c5f6861736834011c543a3a486173680000005c72656d6f76655f77686974656c69737465645f63616c6c04012463616c6c5f6861736834011c543a3a486173680001006464697370617463685f77686974656c69737465645f63616c6c0c012463616c6c5f6861736834011c543a3a4861736800014063616c6c5f656e636f6465645f6c656e10010c75333200014c63616c6c5f7765696768745f7769746e6573732801185765696768740002009c64697370617463685f77686974656c69737465645f63616c6c5f776974685f707265696d61676504011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000300041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e0503105870657a6b7577695f72756e74696d655f636f6d6d6f6e18636c61696d732470657a70616c6c65741043616c6c04045400011414636c61696d08011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650903013845636473615369676e6174757265000060884d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a0501412063616c6c20746f20636c61696d206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653a943e2028636f6e666967757265642070726566697820737472696e672928616464726573732900a4616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ee057656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d696e745f636c61696d10010c77686f1103013c457468657265756d4164647265737300011476616c756518013042616c616e63654f663c543e00014076657374696e675f7363686564756c65150301dc4f7074696f6e3c2842616c616e63654f663c543e2c2042616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e293e00012473746174656d656e741d0301544f7074696f6e3c53746174656d656e744b696e643e00013c844d696e742061206e657720636c61696d20746f20636f6c6c65637420444f54732e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e002c506172616d65746572733af02d206077686f603a2054686520457468657265756d206164647265737320616c6c6f77656420746f20636f6c6c656374207468697320636c61696d2ecc2d206076616c7565603a20546865206e756d626572206f6620444f547320746861742077696c6c20626520636c61696d65642e09012d206076657374696e675f7363686564756c65603a20416e206f7074696f6e616c2076657374696e67207363686564756c6520666f7220746865736520444f54732e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732e1d01576520617373756d6520776f7273742063617365207468617420626f74682076657374696e6720616e642073746174656d656e74206973206265696e6720696e7365727465642e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e30636c61696d5f6174746573740c011064657374000130543a3a4163636f756e744964000148657468657265756d5f7369676e61747572650903013845636473615369676e617475726500012473746174656d656e7438011c5665633c75383e00026ce44d616b65206120636c61696d20746f20636f6c6c65637420796f757220444f5473206279207369676e696e6720612073746174656d656e742e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f4e6f6e655f2e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f2060636c61696d5f61747465737460206973206465656d65642076616c696420696620746865207369676e61747572652070726f7669646564206d6174636865737c746865206578706563746564207369676e6564206d657373616765206f663a00683e20457468657265756d205369676e6564204d6573736167653ac03e2028636f6e666967757265642070726566697820737472696e67292861646472657373292873746174656d656e7429004901616e6420606164647265737360206d6174636865732074686520606465737460206163636f756e743b20746865206073746174656d656e7460206d757374206d617463682074686174207768696368206973c06578706563746564206163636f7264696e6720746f20796f757220707572636861736520617272616e67656d656e742e002c506172616d65746572733ad82d206064657374603a205468652064657374696e6174696f6e206163636f756e7420746f207061796f75742074686520636c61696d2e5d012d2060657468657265756d5f7369676e6174757265603a20546865207369676e6174757265206f6620616e20657468657265756d207369676e6564206d657373616765206d61746368696e672074686520666f726d61744820206465736372696265642061626f76652e39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732efc57656967687420696e636c75646573206c6f67696320746f2076616c696461746520756e7369676e65642060636c61696d5f617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e1861747465737404012473746174656d656e7438011c5665633c75383e00034cf441747465737420746f20612073746174656d656e742c206e656564656420746f2066696e616c697a652074686520636c61696d732070726f636573732e0019015741524e494e473a20496e73656375726520756e6c65737320796f757220636861696e20696e636c75646573206050726576616c6964617465417474657374736020617320615c605472616e73616374696f6e457874656e73696f6e602e0050556e7369676e65642056616c69646174696f6e3a2901412063616c6c20746f20617474657374206973206465656d65642076616c6964206966207468652073656e6465722068617320612060507265636c61696d602072656769737465726564f4616e642070726f76696465732061206073746174656d656e746020776869636820697320657870656374656420666f7220746865206163636f756e742e002c506172616d65746572733a39012d206073746174656d656e74603a20546865206964656e74697479206f66207468652073746174656d656e74207768696368206973206265696e6720617474657374656420746f20696e207468653020207369676e61747572652e00203c7765696768743efc54686520776569676874206f6620746869732063616c6c20697320696e76617269616e74206f7665722074686520696e70757420706172616d65746572732ef057656967687420696e636c75646573206c6f67696320746f20646f207072652d76616c69646174696f6e206f6e2060617474657374602063616c6c2e0058546f74616c20436f6d706c65786974793a204f283129243c2f7765696768743e286d6f76655f636c61696d0c010c6f6c641103013c457468657265756d4164647265737300010c6e65771103013c457468657265756d416464726573730001386d617962655f707265636c61696d810201504f7074696f6e3c543a3a4163636f756e7449643e000400041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e09030c5870657a6b7577695f72756e74696d655f636f6d6d6f6e18636c61696d733845636473615369676e6174757265000004000d0301205b75383b2036355d00000d0300000341000000080011030c5870657a6b7577695f72756e74696d655f636f6d6d6f6e18636c61696d733c457468657265756d4164647265737300000400410101205b75383b2032305d0000150304184f7074696f6e0404540119030108104e6f6e6500000010536f6d6504001903000001000019030000040c181810001d0304184f7074696f6e0404540121030108104e6f6e6500000010536f6d6504002103000001000021030c5870657a6b7577695f72756e74696d655f636f6d6d6f6e18636c61696d733453746174656d656e744b696e640001081c526567756c617200000010536166740001000025030c4470657a70616c6c65745f7574696c6974792470657a70616c6c65741043616c6c04045400012014626174636804011463616c6c732903017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000487c53656e642061206261746368206f662064697370617463682063616c6c732e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973f8696e636c7564657320627970617373696e67206070657a6672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e005501546869732077696c6c2072657475726e20604f6b6020696e20616c6c2063697263756d7374616e6365732e20546f2064657465726d696e65207468652073756363657373206f66207468652062617463682c20616e31016576656e74206973206465706f73697465642e20496620612063616c6c206661696c656420616e64207468652062617463682077617320696e7465727275707465642c207468656e207468655501604261746368496e74657272757074656460206576656e74206973206465706f73697465642c20616c6f6e67207769746820746865206e756d626572206f66207375636365737366756c2063616c6c73206d6164654d01616e6420746865206572726f72206f6620746865206661696c65642063616c6c2e20496620616c6c2077657265207375636365737366756c2c207468656e2074686520604261746368436f6d706c65746564604c6576656e74206973206465706f73697465642e3461735f64657269766174697665080114696e646578cd01010c75313600011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000134dc53656e6420612063616c6c207468726f75676820616e20696e64657865642070736575646f6e796d206f66207468652073656e6465722e00550146696c7465722066726f6d206f726967696e206172652070617373656420616c6f6e672e205468652063616c6c2077696c6c2062652064697370617463686564207769746820616e206f726967696e207768696368bc757365207468652073616d652066696c74657220617320746865206f726967696e206f6620746869732063616c6c2e0045014e4f54453a20496620796f75206e65656420746f20656e73757265207468617420616e79206163636f756e742d62617365642066696c746572696e67206973206e6f7420686f6e6f7265642028692e652e61016265636175736520796f7520657870656374206070726f78796020746f2068617665206265656e2075736564207072696f7220696e207468652063616c6c20737461636b20616e6420796f7520646f206e6f742077616e7451017468652063616c6c207265737472696374696f6e7320746f206170706c7920746f20616e79207375622d6163636f756e7473292c207468656e20757365206061735f6d756c74695f7468726573686f6c645f316088696e20746865204d756c74697369672070657a70616c6c657420696e73746561642e00f44e4f54453a205072696f7220746f2076657273696f6e202a31322c2074686973207761732063616c6c6564206061735f6c696d697465645f737562602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2462617463685f616c6c04011463616c6c732903017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000234ec53656e642061206261746368206f662064697370617463682063616c6c7320616e642061746f6d6963616c6c792065786563757465207468656d2e21015468652077686f6c65207472616e73616374696f6e2077696c6c20726f6c6c6261636b20616e64206661696c20696620616e79206f66207468652063616c6c73206661696c65642e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e0055014966206f726967696e20697320726f6f74207468656e207468652063616c6c7320617265206469737061746368656420776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973f8696e636c7564657320627970617373696e67206070657a6672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c64697370617463685f617308012461735f6f726967696edd020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000318c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e0034232320436f6d706c65786974791c2d204f2831292e2c666f7263655f626174636804011463616c6c732903017c5665633c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0004347c53656e642061206261746368206f662064697370617463682063616c6c732ed4556e6c696b6520606261746368602c20697420616c6c6f7773206572726f727320616e6420776f6e277420696e746572727570742e00b04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e005d012d206063616c6c73603a205468652063616c6c7320746f20626520646973706174636865642066726f6d207468652073616d65206f726967696e2e20546865206e756d626572206f662063616c6c206d757374206e6f74390120206578636565642074686520636f6e7374616e743a2060626174636865645f63616c6c735f6c696d6974602028617661696c61626c6520696e20636f6e7374616e74206d65746164617461292e004d014966206f726967696e20697320726f6f74207468656e207468652063616c6c732061726520646973706174636820776974686f757420636865636b696e67206f726967696e2066696c7465722e202854686973f8696e636c7564657320627970617373696e67206070657a6672616d655f73797374656d3a3a436f6e6669673a3a4261736543616c6c46696c74657260292e0034232320436f6d706c6578697479d02d204f284329207768657265204320697320746865206e756d626572206f662063616c6c7320746f20626520626174636865642e2c776974685f77656967687408011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000518c4446973706174636820612066756e6374696f6e2063616c6c2077697468206120737065636966696564207765696768742e002d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b8526f6f74206f726967696e20746f20737065636966792074686520776569676874206f66207468652063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e1c69665f656c73650801106d61696ee101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00012066616c6c6261636be101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00065c1501446973706174636820612066616c6c6261636b2063616c6c20696e20746865206576656e7420746865206d61696e2063616c6c206661696c7320746f20657865637574652eb04d61792062652063616c6c65642066726f6d20616e79206f726967696e2065786365707420604e6f6e65602e00e4546869732066756e6374696f6e20666972737420617474656d70747320746f2064697370617463682074686520606d61696e602063616c6c2ed449662074686520606d61696e602063616c6c206661696c732c20746865206066616c6c6261636b6020697320617474656d7465642e15016966207468652066616c6c6261636b206973207375636365737366756c6c7920646973706174636865642c207468652077656967687473206f6620626f74682063616c6c73250161726520616363756d756c6174656420616e6420616e206576656e7420636f6e7461696e696e6720746865206d61696e2063616c6c206572726f72206973206465706f73697465642e00dc496e20746865206576656e74206f6620612066616c6c6261636b206661696c757265207468652077686f6c652063616c6c206661696c7368776974682074686520776569676874732072657475726e65642e0041012d20606d61696e603a20546865206d61696e2063616c6c20746f20626520646973706174636865642e205468697320697320746865207072696d61727920616374696f6e20746f20657865637574652e3d012d206066616c6c6261636b603a205468652066616c6c6261636b2063616c6c20746f206265206469737061746368656420696e20636173652074686520606d61696e602063616c6c206661696c732e00442323204469737061746368204c6f67696341012d20496620746865206f726967696e2069732060726f6f74602c20626f746820746865206d61696e20616e642066616c6c6261636b2063616c6c732061726520657865637574656420776974686f75747820206170706c79696e6720616e79206f726967696e2066696c746572732e49012d20496620746865206f726967696e206973206e6f742060726f6f74602c20746865206f726967696e2066696c746572206973206170706c69656420746f20626f74682074686520606d61696e6020616e644c20206066616c6c6261636b602063616c6c732e002c232320557365204361736559012d20536f6d6520757365206361736573206d6967687420696e766f6c7665207375626d697474696e672061206062617463686020747970652063616c6c20696e20656974686572206d61696e2c2066616c6c6261636b2820206f7220626f74682e5064697370617463685f61735f66616c6c69626c6508012461735f6f726967696edd020154426f783c543a3a50616c6c6574734f726967696e3e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000714c84469737061746368657320612066756e6374696f6e2063616c6c207769746820612070726f7669646564206f726967696e2e005d01416c6d6f7374207468652073616d65206173205b6050657a70616c6c65743a3a64697370617463685f6173605d2062757420666f72776172647320616e79206572726f72206f662074686520696e6e65722063616c6c2e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e2903000002e101002d030c4470657a70616c6c65745f76657374696e672470657a70616c6c65741043616c6c0404540001181076657374000024b8556e6c6f636b20616e79207665737465642066756e6473206f66207468652073656e646572206163636f756e742e005d01546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64207468652073656e646572206d75737420686176652066756e6473207374696c6c706c6f636b656420756e64657220746869732070657a70616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e28766573745f6f74686572040118746172676574210201504163636f756e7449644c6f6f6b75704f663c543e00012cb8556e6c6f636b20616e79207665737465642066756e6473206f662061206074617267657460206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0051012d2060746172676574603a20546865206163636f756e742077686f7365207665737465642066756e64732073686f756c6420626520756e6c6f636b65642e204d75737420686176652066756e6473207374696c6c706c6f636b656420756e64657220746869732070657a70616c6c65742e00d0456d69747320656974686572206056657374696e67436f6d706c6574656460206f72206056657374696e6755706461746564602e0034232320436f6d706c6578697479242d20604f283129602e3c7665737465645f7472616e73666572080118746172676574210201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65310301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00023464437265617465206120766573746564207472616e736665722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00cc2d2060746172676574603a20546865206163636f756e7420726563656976696e6720746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e54666f7263655f7665737465645f7472616e736665720c0118736f75726365210201504163636f756e7449644c6f6f6b75704f663c543e000118746172676574210201504163636f756e7449644c6f6f6b75704f663c543e0001207363686564756c65310301b056657374696e67496e666f3c42616c616e63654f663c543e2c20426c6f636b4e756d626572466f723c543e3e00033860466f726365206120766573746564207472616e736665722e00c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00e82d2060736f75726365603a20546865206163636f756e742077686f73652066756e64732073686f756c64206265207472616e736665727265642e11012d2060746172676574603a20546865206163636f756e7420746861742073686f756c64206265207472616e7366657272656420746865207665737465642066756e64732ef02d20607363686564756c65603a205468652076657374696e67207363686564756c6520617474616368656420746f20746865207472616e736665722e005c456d697473206056657374696e6743726561746564602e00fc4e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b2e0034232320436f6d706c6578697479242d20604f283129602e3c6d657267655f7363686564756c657308013c7363686564756c65315f696e64657810010c75333200013c7363686564756c65325f696e64657810010c7533320004545d014d657267652074776f2076657374696e67207363686564756c657320746f6765746865722c206372656174696e672061206e65772076657374696e67207363686564756c65207468617420756e6c6f636b73206f7665725501746865206869676865737420706f737369626c6520737461727420616e6420656e6420626c6f636b732e20496620626f7468207363686564756c6573206861766520616c7265616479207374617274656420746865590163757272656e7420626c6f636b2077696c6c206265207573656420617320746865207363686564756c652073746172743b207769746820746865206361766561742074686174206966206f6e65207363686564756c655d0169732066696e6973686564206279207468652063757272656e7420626c6f636b2c20746865206f746865722077696c6c206265207472656174656420617320746865206e6577206d6572676564207363686564756c652c2c756e6d6f6469666965642e00f84e4f54453a20496620607363686564756c65315f696e646578203d3d207363686564756c65325f696e6465786020746869732069732061206e6f2d6f702e41014e4f54453a20546869732077696c6c20756e6c6f636b20616c6c207363686564756c6573207468726f756768207468652063757272656e7420626c6f636b207072696f7220746f206d657267696e672e61014e4f54453a20496620626f7468207363686564756c6573206861766520656e646564206279207468652063757272656e7420626c6f636b2c206e6f206e6577207363686564756c652077696c6c206265206372656174656464616e6420626f74682077696c6c2062652072656d6f7665642e006c4d6572676564207363686564756c6520617474726962757465733a35012d20607374617274696e675f626c6f636b603a20604d4158287363686564756c65312e7374617274696e675f626c6f636b2c207363686564756c6564322e7374617274696e675f626c6f636b2c48202063757272656e745f626c6f636b29602e21012d2060656e64696e675f626c6f636b603a20604d4158287363686564756c65312e656e64696e675f626c6f636b2c207363686564756c65322e656e64696e675f626c6f636b29602e59012d20606c6f636b6564603a20607363686564756c65312e6c6f636b65645f61742863757272656e745f626c6f636b29202b207363686564756c65322e6c6f636b65645f61742863757272656e745f626c6f636b29602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e00e82d20607363686564756c65315f696e646578603a20696e646578206f6620746865206669727374207363686564756c6520746f206d657267652eec2d20607363686564756c65325f696e646578603a20696e646578206f6620746865207365636f6e64207363686564756c6520746f206d657267652e74666f7263655f72656d6f76655f76657374696e675f7363686564756c650801187461726765742102018c3c543a3a4c6f6f6b7570206173205374617469634c6f6f6b75703e3a3a536f757263650001387363686564756c655f696e64657810010c7533320005187c466f7263652072656d6f766520612076657374696e67207363686564756c6500c4546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f526f6f745f2e00c82d2060746172676574603a20416e206163636f756e7420746861742068617320612076657374696e67207363686564756c6515012d20607363686564756c655f696e646578603a205468652076657374696e67207363686564756c6520696e64657820746861742073686f756c642062652072656d6f766564041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e31030c4470657a70616c6c65745f76657374696e673076657374696e675f696e666f2c56657374696e67496e666f081c42616c616e636501182c426c6f636b4e756d6265720110000c01186c6f636b656418011c42616c616e63650001247065725f626c6f636b18011c42616c616e63650001387374617274696e675f626c6f636b10012c426c6f636b4e756d626572000035030c4c70657a70616c6c65745f7363686564756c65722470657a70616c6c65741043616c6c040454000128207363686564756c651001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963390301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00000470416e6f6e796d6f75736c79207363686564756c652061207461736b2e1863616e63656c0801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001049443616e63656c20616e20616e6f6e796d6f75736c79207363686564756c6564207461736b2e387363686564756c655f6e616d656414010869640401205461736b4e616d650001107768656e100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963390301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000204585363686564756c652061206e616d6564207461736b2e3063616e63656c5f6e616d656404010869640401205461736b4e616d650003047843616e63656c2061206e616d6564207363686564756c6564207461736b2e387363686564756c655f61667465721001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963390301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000404a8416e6f6e796d6f75736c79207363686564756c652061207461736b20616674657220612064656c61792e507363686564756c655f6e616d65645f616674657214010869640401205461736b4e616d650001146166746572100144426c6f636b4e756d626572466f723c543e0001386d617962655f706572696f646963390301ac4f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d626572466f723c543e3e3e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000504905363686564756c652061206e616d6564207461736b20616674657220612064656c61792e247365745f72657472790c01107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e00011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0006305901536574206120726574727920636f6e66696775726174696f6e20666f722061207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069742077696c6c5501626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c2069742473756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3c7365745f72657472795f6e616d65640c010869640401205461736b4e616d6500011c726574726965730801087538000118706572696f64100144426c6f636b4e756d626572466f723c543e0007305d01536574206120726574727920636f6e66696775726174696f6e20666f722061206e616d6564207461736b20736f20746861742c20696e206361736520697473207363686564756c65642072756e206661696c732c2069745d0177696c6c20626520726574726965642061667465722060706572696f646020626c6f636b732c20666f72206120746f74616c20616d6f756e74206f66206072657472696573602072657472696573206f7220756e74696c3069742073756363656564732e0055015461736b73207768696368206e65656420746f206265207363686564756c656420666f72206120726574727920617265207374696c6c207375626a65637420746f20776569676874206d65746572696e6720616e6451016167656e64612073706163652c2073616d65206173206120726567756c6172207461736b2e204966206120706572696f646963207461736b206661696c732c2069742077696c6c206265207363686564756c6564906e6f726d616c6c79207768696c6520746865207461736b206973207265747279696e672e0051015461736b73207363686564756c6564206173206120726573756c74206f66206120726574727920666f72206120706572696f646963207461736b2061726520756e6e616d65642c206e6f6e2d706572696f6469633d01636c6f6e6573206f6620746865206f726967696e616c207461736b2e20546865697220726574727920636f6e66696775726174696f6e2077696c6c20626520646572697665642066726f6d207468654d016f726967696e616c207461736b277320636f6e66696775726174696f6e2c206275742077696c6c20686176652061206c6f7765722076616c756520666f72206072656d61696e696e6760207468616e20746865646f726967696e616c2060746f74616c5f72657472696573602e3063616e63656c5f72657472790401107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e000804a852656d6f7665732074686520726574727920636f6e66696775726174696f6e206f662061207461736b2e4863616e63656c5f72657472795f6e616d656404010869640401205461736b4e616d65000904bc43616e63656c2074686520726574727920636f6e66696775726174696f6e206f662061206e616d6564207461736b2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e390304184f7074696f6e040454013d030108104e6f6e6500000010536f6d6504003d0300000100003d030000040810100041030c3c70657a70616c6c65745f70726f78792470657a70616c6c65741043616c6c04045400012c1470726f78790c01107265616c210201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065450301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000244d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f726973656420666f72207468726f75676830606164645f70726f7879602e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e246164645f70726f78790c012064656c6567617465210201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706549030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e0001244501526567697374657220612070726f7879206163636f756e7420666f72207468652073656e64657220746861742069732061626c6520746f206d616b652063616c6c73206f6e2069747320626568616c662e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a11012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f206d616b6520612070726f78792efc2d206070726f78795f74797065603a20546865207065726d697373696f6e7320616c6c6f77656420666f7220746869732070726f7879206163636f756e742e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e3072656d6f76655f70726f78790c012064656c6567617465210201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706549030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00021ca8556e726567697374657220612070726f7879206163636f756e7420666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a25012d206070726f7879603a20546865206163636f756e74207468617420746865206063616c6c65726020776f756c64206c696b6520746f2072656d6f766520617320612070726f78792e41012d206070726f78795f74797065603a20546865207065726d697373696f6e732063757272656e746c7920656e61626c656420666f72207468652072656d6f7665642070726f7879206163636f756e742e3872656d6f76655f70726f78696573000318b4556e726567697374657220616c6c2070726f7879206163636f756e747320666f72207468652073656e6465722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e005d015741524e494e473a2054686973206d61792062652063616c6c6564206f6e206163636f756e7473206372656174656420627920606372656174655f70757265602c20686f776576657220696620646f6e652c207468656e590174686520756e726573657276656420666565732077696c6c20626520696e61636365737369626c652e202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a2c6372656174655f707572650c012870726f78795f7479706549030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e000114696e646578cd01010c7531360004483901537061776e2061206672657368206e6577206163636f756e7420746861742069732067756172616e7465656420746f206265206f746865727769736520696e61636365737369626c652c20616e64fc696e697469616c697a65206974207769746820612070726f7879206f66206070726f78795f747970656020666f7220606f726967696e602073656e6465722e006c5265717569726573206120605369676e656460206f726967696e2e0051012d206070726f78795f74797065603a205468652074797065206f66207468652070726f78792074686174207468652073656e6465722077696c6c2062652072656769737465726564206173206f766572207468654d016e6577206163636f756e742e20546869732077696c6c20616c6d6f737420616c7761797320626520746865206d6f7374207065726d697373697665206050726f7879547970656020706f737369626c6520746f78616c6c6f7720666f72206d6178696d756d20666c65786962696c6974792e51012d2060696e646578603a204120646973616d626967756174696f6e20696e6465782c20696e206361736520746869732069732063616c6c6564206d756c7469706c652074696d657320696e207468652073616d655d017472616e73616374696f6e2028652e672e207769746820607574696c6974793a3a626174636860292e20556e6c65737320796f75277265207573696e67206062617463686020796f752070726f6261626c79206a7573744077616e7420746f20757365206030602e4d012d206064656c6179603a2054686520616e6e6f756e63656d656e7420706572696f64207265717569726564206f662074686520696e697469616c2070726f78792e2057696c6c2067656e6572616c6c79206265147a65726f2e0051014661696c73207769746820604475706c69636174656020696620746869732068617320616c7265616479206265656e2063616c6c656420696e2074686973207472616e73616374696f6e2c2066726f6d207468659873616d652073656e6465722c2077697468207468652073616d6520706172616d65746572732e00e44661696c732069662074686572652061726520696e73756666696369656e742066756e647320746f2070617920666f72206465706f7369742e246b696c6c5f7075726514011c737061776e6572210201504163636f756e7449644c6f6f6b75704f663c543e00012870726f78795f7479706549030130543a3a50726f787954797065000114696e646578cd01010c75313600011868656967687435010144426c6f636b4e756d626572466f723c543e0001246578745f696e6465783501010c753332000540a052656d6f76657320612070726576696f75736c7920737061776e656420707572652070726f78792e0049015741524e494e473a202a2a416c6c2061636365737320746f2074686973206163636f756e742077696c6c206265206c6f73742e2a2a20416e792066756e64732068656c6420696e2069742077696c6c20626534696e61636365737369626c652e0059015265717569726573206120605369676e656460206f726967696e2c20616e64207468652073656e646572206163636f756e74206d7573742068617665206265656e206372656174656420627920612063616c6c20746fb0606372656174655f7075726560207769746820636f72726573706f6e64696e6720706172616d65746572732e0055012d2060737061776e6572603a20546865206163636f756e742074686174206f726967696e616c6c792063616c6c656420606372656174655f707572656020746f206372656174652074686973206163636f756e742e55012d2060696e646578603a2054686520646973616d626967756174696f6e20696e646578206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e2050726f6261626c79206030602e09012d206070726f78795f74797065603a205468652070726f78792074797065206f726967696e616c6c792070617373656420746f20606372656174655f70757265602e45012d2060686569676874603a2054686520686569676874206f662074686520636861696e207768656e207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e51012d20606578745f696e646578603a205468652065787472696e73696320696e64657820696e207768696368207468652063616c6c20746f20606372656174655f7075726560207761732070726f6365737365642e0035014661696c73207769746820604e6f5065726d697373696f6e6020696e2063617365207468652063616c6c6572206973206e6f7420612070726576696f75736c7920637265617465642070757265f86163636f756e742077686f736520606372656174655f70757265602063616c6c2068617320636f72726573706f6e64696e6720706172616d65746572732e20616e6e6f756e63650801107265616c210201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e00063c05015075626c697368207468652068617368206f6620612070726f78792d63616c6c20746861742077696c6c206265206d61646520696e20746865206675747572652e005d0154686973206d7573742062652063616c6c656420736f6d65206e756d626572206f6620626c6f636b73206265666f72652074686520636f72726573706f6e64696e67206070726f78796020697320617474656d7074656425016966207468652064656c6179206173736f6369617465642077697468207468652070726f78792072656c6174696f6e736869702069732067726561746572207468616e207a65726f2e0011014e6f206d6f7265207468616e20604d617850656e64696e676020616e6e6f756e63656d656e7473206d6179206265206d61646520617420616e79206f6e652074696d652e000901546869732077696c6c2074616b652061206465706f736974206f662060416e6e6f756e63656d656e744465706f736974466163746f72602061732077656c6c206173190160416e6e6f756e63656d656e744465706f736974426173656020696620746865726520617265206e6f206f746865722070656e64696e6720616e6e6f756e63656d656e74732e002501546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e6420612070726f7879206f6620607265616c602e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656d6f76655f616e6e6f756e63656d656e740801107265616c210201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e0007287052656d6f7665206120676976656e20616e6e6f756e63656d656e742e0059014d61792062652063616c6c656420627920612070726f7879206163636f756e7420746f2072656d6f766520612063616c6c20746865792070726576696f75736c7920616e6e6f756e63656420616e642072657475726e30746865206465706f7369742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e15012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e4c72656a6563745f616e6e6f756e63656d656e7408012064656c6567617465210201504163636f756e7449644c6f6f6b75704f663c543e00012463616c6c5f6861736834013443616c6c486173684f663c543e000828b052656d6f76652074686520676976656e20616e6e6f756e63656d656e74206f6620612064656c65676174652e0061014d61792062652063616c6c6564206279206120746172676574202870726f7869656429206163636f756e7420746f2072656d6f766520612063616c6c2074686174206f6e65206f662074686569722064656c6567617465732501286064656c656761746560292068617320616e6e6f756e63656420746865792077616e7420746f20657865637574652e20546865206465706f7369742069732072657475726e65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733af42d206064656c6567617465603a20546865206163636f756e7420746861742070726576696f75736c7920616e6e6f756e636564207468652063616c6c2ebc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f206265206d6164652e3c70726f78795f616e6e6f756e63656410012064656c6567617465210201504163636f756e7449644c6f6f6b75704f663c543e0001107265616c210201504163636f756e7449644c6f6f6b75704f663c543e000140666f7263655f70726f78795f74797065450301504f7074696f6e3c543a3a50726f7879547970653e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e00092c4d0144697370617463682074686520676976656e206063616c6c602066726f6d20616e206163636f756e742074686174207468652073656e64657220697320617574686f72697a656420666f72207468726f75676830606164645f70726f7879602e00a852656d6f76657320616e7920636f72726573706f6e64696e6720616e6e6f756e63656d656e742873292e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e002c506172616d65746572733a0d012d20607265616c603a20546865206163636f756e742074686174207468652070726f78792077696c6c206d616b6520612063616c6c206f6e20626568616c66206f662e61012d2060666f7263655f70726f78795f74797065603a2053706563696679207468652065786163742070726f7879207479706520746f206265207573656420616e6420636865636b656420666f7220746869732063616c6c2ed02d206063616c6c603a205468652063616c6c20746f206265206d6164652062792074686520607265616c60206163636f756e742e30706f6b655f6465706f736974000a204901506f6b65202f2041646a757374206465706f73697473206d61646520666f722070726f7869657320616e6420616e6e6f756e63656d656e7473206261736564206f6e2063757272656e742076616c7565732e0d01546869732063616e2062652075736564206279206163636f756e747320746f20706f737369626c79206c6f776572207468656972206c6f636b656420616d6f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e450304184f7074696f6e0404540149030108104e6f6e6500000010536f6d650400490300000100004903085070657a6b757769636861696e5f72756e74696d652450726f7879547970650001180c416e790000002c4e6f6e5472616e7366657200010028476f7665726e616e63650002002c43616e63656c50726f78790003001c41756374696f6e000400404f6e44656d616e644f72646572696e67000500004d030c4870657a70616c6c65745f6d756c74697369672470657a70616c6c65741043616c6c0404540001145061735f6d756c74695f7468726573686f6c645f310801446f746865725f7369676e61746f726965732d0201445665633c543a3a4163636f756e7449643e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0000305101496d6d6564696174656c792064697370617463682061206d756c74692d7369676e61747572652063616c6c207573696e6720612073696e676c6520617070726f76616c2066726f6d207468652063616c6c65722e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e003d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f662074686501016d756c74692d7369676e61747572652c2062757420646f206e6f7420706172746963697061746520696e2074686520617070726f76616c2070726f636573732e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e00b8526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c742e0034232320436f6d706c657869747919014f285a202b204329207768657265205a20697320746865206c656e677468206f66207468652063616c6c20616e6420432069747320657865637574696f6e207765696768742e2061735f6d756c74691401247468726573686f6c64cd01010c7531360001446f746865725f7369676e61746f726965732d0201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74510301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0001286d61785f77656967687428011857656967687400019c5501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e00b049662074686572652061726520656e6f7567682c207468656e206469737061746368207468652063616c6c2e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2e882d206063616c6c603a205468652063616c6c20746f2062652065786563757465642e001d014e4f54453a20556e6c6573732074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2067656e6572616c6c792077616e7420746f20757365190160617070726f76655f61735f6d756c74696020696e73746561642c2073696e6365206974206f6e6c7920726571756972657320612068617368206f66207468652063616c6c2e005901526573756c74206973206571756976616c656e7420746f20746865206469737061746368656420726573756c7420696620607468726573686f6c64602069732065786163746c79206031602e204f746865727769736555016f6e20737563636573732c20726573756c7420697320604f6b6020616e642074686520726573756c742066726f6d2074686520696e746572696f722063616c6c2c206966206974207761732065786563757465642cdc6d617920626520666f756e6420696e20746865206465706f736974656420604d756c7469736967457865637574656460206576656e742e0034232320436f6d706c6578697479502d20604f2853202b205a202b2043616c6c29602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2e21012d204f6e652063616c6c20656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285a296020776865726520605a602069732074782d6c656e2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e6c2d2054686520776569676874206f6620746865206063616c6c602e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e40617070726f76655f61735f6d756c74691401247468726573686f6c64cd01010c7531360001446f746865725f7369676e61746f726965732d0201445665633c543a3a4163636f756e7449643e00013c6d617962655f74696d65706f696e74510301904f7074696f6e3c54696d65706f696e743c426c6f636b4e756d626572466f723c543e3e3e00012463616c6c5f686173680401205b75383b2033325d0001286d61785f7765696768742801185765696768740002785501526567697374657220617070726f76616c20666f72206120646973706174636820746f206265206d6164652066726f6d20612064657465726d696e697374696320636f6d706f73697465206163636f756e74206966f8617070726f766564206279206120746f74616c206f6620607468726573686f6c64202d203160206f6620606f746865725f7369676e61746f72696573602e002d015061796d656e743a20604465706f73697442617365602077696c6c20626520726573657276656420696620746869732069732074686520666972737420617070726f76616c2c20706c75733d01607468726573686f6c64602074696d657320604465706f736974466163746f72602e2049742069732072657475726e6564206f6e636520746869732064697370617463682068617070656e73206f723469732063616e63656c6c65642e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e59012d20606d617962655f74696d65706f696e74603a20496620746869732069732074686520666972737420617070726f76616c2c207468656e2074686973206d75737420626520604e6f6e65602e20496620697420697351016e6f742074686520666972737420617070726f76616c2c207468656e206974206d7573742062652060536f6d65602c2077697468207468652074696d65706f696e742028626c6f636b206e756d62657220616e64d47472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c207472616e73616374696f6e2ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0035014e4f54453a2049662074686973206973207468652066696e616c20617070726f76616c2c20796f752077696c6c2077616e7420746f20757365206061735f6d756c74696020696e73746561642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602ed42d20557020746f206f6e652062696e6172792073656172636820616e6420696e736572742028604f286c6f6753202b20532960292ef82d20492f4f3a2031207265616420604f285329602c20757020746f2031206d757461746520604f285329602e20557020746f206f6e652072656d6f76652e302d204f6e65206576656e742e4d012d2053746f726167653a20696e7365727473206f6e65206974656d2c2076616c75652073697a6520626f756e64656420627920604d61785369676e61746f72696573602c20776974682061206465706f7369741901202074616b656e20666f7220697473206c69666574696d65206f6620604465706f73697442617365202b207468726573686f6c64202a204465706f736974466163746f72602e3c63616e63656c5f61735f6d756c74691001247468726573686f6c64cd01010c7531360001446f746865725f7369676e61746f726965732d0201445665633c543a3a4163636f756e7449643e00012474696d65706f696e745503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e00012463616c6c5f686173680401205b75383b2033325d000354550143616e63656c2061207072652d6578697374696e672c206f6e2d676f696e67206d756c7469736967207472616e73616374696f6e2e20416e79206465706f7369742072657365727665642070726576696f75736c79c4666f722074686973206f7065726174696f6e2077696c6c20626520756e7265736572766564206f6e20737563636573732e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e0055012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c7320666f722074686973206469737061746368206265666f72652069742069732065786563757465642e41012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f2063616e20617070726f766520746869736c64697370617463682e204d6179206e6f7420626520656d7074792e5d012d206074696d65706f696e74603a205468652074696d65706f696e742028626c6f636b206e756d62657220616e64207472616e73616374696f6e20696e64657829206f662074686520666972737420617070726f76616c787472616e73616374696f6e20666f7220746869732064697370617463682ecc2d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c20746f2062652065786563757465642e0034232320436f6d706c6578697479242d20604f285329602ecc2d20557020746f206f6e652062616c616e63652d72657365727665206f7220756e72657365727665206f7065726174696f6e2e3d012d204f6e6520706173737468726f756768206f7065726174696f6e2c206f6e6520696e736572742c20626f746820604f285329602077686572652060536020697320746865206e756d626572206f66450120207369676e61746f726965732e206053602069732063617070656420627920604d61785369676e61746f72696573602c207769746820776569676874206265696e672070726f706f7274696f6e616c2ebc2d204f6e6520656e636f6465202620686173682c20626f7468206f6620636f6d706c657869747920604f285329602e302d204f6e65206576656e742e842d20492f4f3a2031207265616420604f285329602c206f6e652072656d6f76652e702d2053746f726167653a2072656d6f766573206f6e65206974656d2e30706f6b655f6465706f7369740c01247468726573686f6c64cd01010c7531360001446f746865725f7369676e61746f726965732d0201445665633c543a3a4163636f756e7449643e00012463616c6c5f686173680401205b75383b2033325d000434f4506f6b6520746865206465706f73697420726573657276656420666f7220616e206578697374696e67206d756c7469736967206f7065726174696f6e2e006101546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e64206d75737420626520746865206f726967696e616c206465706f7369746f72206f665c746865206d756c7469736967206f7065726174696f6e2e000101546865207472616e73616374696f6e206665652069732077616976656420696620746865206465706f73697420616d6f756e7420686173206368616e6765642e0019012d20607468726573686f6c64603a2054686520746f74616c206e756d626572206f6620617070726f76616c73206e656564656420666f722074686973206d756c74697369672e3d012d20606f746865725f7369676e61746f72696573603a20546865206163636f756e747320286f74686572207468616e207468652073656e646572292077686f206172652070617274206f66207468652c20206d756c74697369672e05012d206063616c6c5f68617368603a205468652068617368206f66207468652063616c6c2074686973206465706f73697420697320726573657276656420666f722e008c456d69747320604465706f736974506f6b656460206966207375636365737366756c2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e510304184f7074696f6e0404540155030108104e6f6e6500000010536f6d650400550300000100005503084870657a70616c6c65745f6d756c74697369672454696d65706f696e74042c426c6f636b4e756d62657201100008011868656967687410012c426c6f636b4e756d626572000114696e64657810010c753332000059030c4870657a70616c6c65745f707265696d6167652470657a70616c6c65741043616c6c040454000114346e6f74655f707265696d616765040114627974657338011c5665633c75383e000010745265676973746572206120707265696d616765206f6e2d636861696e2e00550149662074686520707265696d616765207761732070726576696f75736c79207265717565737465642c206e6f2066656573206f72206465706f73697473206172652074616b656e20666f722070726f766964696e67550174686520707265696d6167652e204f74686572776973652c2061206465706f7369742069732074616b656e2070726f706f7274696f6e616c20746f207468652073697a65206f662074686520707265696d6167652e3c756e6e6f74655f707265696d6167650401106861736834011c543a3a48617368000118dc436c65617220616e20756e72657175657374656420707265696d6167652066726f6d207468652072756e74696d652073746f726167652e00fc496620606c656e602069732070726f76696465642c207468656e2069742077696c6c2062652061206d7563682063686561706572206f7065726174696f6e2e0001012d206068617368603a205468652068617368206f662074686520707265696d61676520746f2062652072656d6f7665642066726f6d207468652073746f72652eb82d20606c656e603a20546865206c656e677468206f662074686520707265696d616765206f66206068617368602e40726571756573745f707265696d6167650401106861736834011c543a3a48617368000210410152657175657374206120707265696d6167652062652075706c6f6164656420746f2074686520636861696e20776974686f757420706179696e6720616e792066656573206f72206465706f736974732e00550149662074686520707265696d6167652072657175657374732068617320616c7265616479206265656e2070726f7669646564206f6e2d636861696e2c20776520756e7265736572766520616e79206465706f7369743901612075736572206d6179206861766520706169642c20616e642074616b652074686520636f6e74726f6c206f662074686520707265696d616765206f7574206f662074686569722068616e64732e48756e726571756573745f707265696d6167650401106861736834011c543a3a4861736800030cbc436c65617220612070726576696f75736c79206d616465207265717565737420666f72206120707265696d6167652e002d014e4f54453a2054484953204d555354204e4f542042452043414c4c4544204f4e20606861736860204d4f52452054494d4553205448414e2060726571756573745f707265696d616765602e38656e737572655f757064617465640401186861736865735d0301305665633c543a3a486173683e00040cbc456e737572652074686174207468652062756c6b206f66207072652d696d616765732069732075706772616465642e003d015468652063616c6c65722070617973206e6f20666565206966206174206c6561737420393025206f66207072652d696d616765732077657265207375636365737366756c6c7920757064617465642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e5d0300000234006103106870657a6b7577695f72756e74696d655f74657972636861696e7334636f6e66696775726174696f6e2470657a70616c6c65741043616c6c0404540001b87c7365745f76616c69646174696f6e5f757067726164655f636f6f6c646f776e04010c6e6577100144426c6f636b4e756d626572466f723c543e00000490536574207468652076616c69646174696f6e207570677261646520636f6f6c646f776e2e707365745f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e00010484536574207468652076616c69646174696f6e20757067726164652064656c61792e647365745f636f64655f726574656e74696f6e5f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000204d05365742074686520616363657074616e636520706572696f6420666f7220616e20696e636c756465642063616e6469646174652e447365745f6d61785f636f64655f73697a6504010c6e657710010c753332000304dc53657420746865206d61782076616c69646174696f6e20636f64652073697a6520666f7220696e636f6d696e672075706772616465732e407365745f6d61785f706f765f73697a6504010c6e657710010c753332000404c453657420746865206d617820504f5620626c6f636b2073697a6520666f7220696e636f6d696e672075706772616465732e587365745f6d61785f686561645f646174615f73697a6504010c6e657710010c7533320005049453657420746865206d6178206865616420646174612073697a6520666f722070617261732e487365745f636f726574696d655f636f72657304010c6e657710010c753332000610ac53657420746865206e756d626572206f6620636f726574696d6520657865637574696f6e20636f7265732e0051014e4f54453a2074686174207468697320636f6e66696775726174696f6e206973206d616e616765642062792074686520636f726574696d6520636861696e2e204f6e6c79206d616e75616c6c79206368616e6765b0746869732c20696620796f75207265616c6c79206b6e6f77207768617420796f752061726520646f696e6721707365745f67726f75705f726f746174696f6e5f6672657175656e637904010c6e6577100144426c6f636b4e756d626572466f723c543e000804d0536574207468652074657972636861696e2076616c696461746f722d67726f757020726f746174696f6e206672657175656e6379747365745f70617261735f617661696c6162696c6974795f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000904985365742074686520617661696c6162696c69747920706572696f6420666f722070617261732e607365745f7363686564756c696e675f6c6f6f6b616865616404010c6e657710010c753332000b04390153657420746865207363686564756c696e67206c6f6f6b61686561642c20696e206578706563746564206e756d626572206f6620626c6f636b73206174207065616b207468726f7567687075742e6c7365745f6d61785f76616c696461746f72735f7065725f636f726504010c6e6577ec012c4f7074696f6e3c7533323e000c04ec53657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2061737369676e20746f20616e7920636f72652e487365745f6d61785f76616c696461746f727304010c6e6577ec012c4f7074696f6e3c7533323e000d040d0153657420746865206d6178696d756d206e756d626572206f662076616c696461746f727320746f2075736520696e2074657972636861696e20636f6e73656e7375732e487365745f646973707574655f706572696f6404010c6e657710013053657373696f6e496e646578000e040d0153657420746865206469737075746520706572696f642c20696e206e756d626572206f662073657373696f6e7320746f206b65657020666f722064697370757465732eb47365745f646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6404010c6e6577100144426c6f636b4e756d626572466f723c543e000f04c853657420746865206469737075746520706f737420636f6e636c7573696f6e20616363657074616e636520706572696f642e447365745f6e6f5f73686f775f736c6f747304010c6e657710010c753332001208f853657420746865206e6f2073686f7720736c6f74732c20696e206e756d626572206f66206e756d626572206f6620636f6e73656e73757320736c6f74732e4c4d757374206265206174206c6561737420312e507365745f6e5f64656c61795f7472616e6368657304010c6e657710010c7533320013049c5365742074686520746f74616c206e756d626572206f662064656c6179207472616e636865732e787365745f7a65726f74685f64656c61795f7472616e6368655f776964746804010c6e657710010c7533320014048c53657420746865207a65726f74682064656c6179207472616e6368652077696474682e507365745f6e65656465645f617070726f76616c7304010c6e657710010c753332001504dc53657420746865206e756d626572206f662076616c696461746f7273206e656564656420746f20617070726f7665206120626c6f636b2e707365745f72656c61795f7672665f6d6f64756c6f5f73616d706c657304010c6e657710010c753332001604590153657420746865206e756d626572206f662073616d706c657320746f20646f206f6620746865206052656c61795652464d6f64756c6f6020617070726f76616c2061737369676e6d656e7420637269746572696f6e2e687365745f6d61785f7570776172645f71756575655f636f756e7404010c6e657710010c7533320017042d015365747320746865206d6178696d756d206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174206f6e63652e647365745f6d61785f7570776172645f71756575655f73697a6504010c6e657710010c7533320018084d015365747320746865206d6178696d756d20746f74616c2073697a65206f66206974656d7320746861742063616e2070726573656e7420696e206120757077617264206469737061746368207175657565206174146f6e63652e747365745f6d61785f646f776e776172645f6d6573736167655f73697a6504010c6e657710010c7533320019049c5365742074686520637269746963616c20646f776e77617264206d6573736167652073697a652e6c7365745f6d61785f7570776172645f6d6573736167655f73697a6504010c6e657710010c753332001b042d015365747320746865206d6178696d756d2073697a65206f6620616e20757077617264206d65737361676520746861742063616e2062652073656e7420627920612063616e6469646174652ea07365745f6d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c753332001c0405015365747320746865206d6178696d756d206e756d626572206f66206d65737361676573207468617420612063616e6469646174652063616e20636f6e7461696e2e647365745f68726d705f6f70656e5f726571756573745f74746c04010c6e657710010c753332001d0435015365747320746865206e756d626572206f662073657373696f6e7320616674657220776869636820616e2048524d50206f70656e206368616e6e656c207265717565737420657870697265732e5c7365745f68726d705f73656e6465725f6465706f73697404010c6e657718011c42616c616e6365001e045101536574732074686520616d6f756e74206f662066756e64732074686174207468652073656e6465722073686f756c642070726f7669646520666f72206f70656e696e6720616e2048524d50206368616e6e656c2e687365745f68726d705f726563697069656e745f6465706f73697404010c6e657718011c42616c616e6365001f086101536574732074686520616d6f756e74206f662066756e647320746861742074686520726563697069656e742073686f756c642070726f7669646520666f7220616363657074696e67206f70656e696e6720616e2048524d50206368616e6e656c2e747365745f68726d705f6368616e6e656c5f6d61785f636170616369747904010c6e657710010c7533320020041d015365747320746865206d6178696d756d206e756d626572206f66206d6573736167657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e7c7365745f68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6504010c6e657710010c75333200210451015365747320746865206d6178696d756d20746f74616c2073697a65206f66206d6573736167657320696e20627974657320616c6c6f77656420696e20616e2048524d50206368616e6e656c206174206f6e63652e9c7365745f68726d705f6d61785f74657972636861696e5f696e626f756e645f6368616e6e656c7304010c6e657710010c75333200220449015365747320746865206d6178696d756d206e756d626572206f6620696e626f756e642048524d50206368616e6e656c7320612074657972636861696e20697320616c6c6f77656420746f206163636570742e847365745f68726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6504010c6e657710010c7533320024043d015365747320746865206d6178696d756d2073697a65206f662061206d657373616765207468617420636f756c6420657665722062652070757420696e746f20616e2048524d50206368616e6e656c2ea07365745f68726d705f6d61785f74657972636861696e5f6f7574626f756e645f6368616e6e656c7304010c6e657710010c75333200250445015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206368616e6e656c7320612074657972636861696e20697320616c6c6f77656420746f206f70656e2e987365745f68726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746504010c6e657710010c75333200270435015365747320746865206d6178696d756d206e756d626572206f66206f7574626f756e642048524d50206d657373616765732063616e2062652073656e7420627920612063616e6469646174652e487365745f7076665f766f74696e675f74746c04010c6e657710013053657373696f6e496e646578002a04510153657420746865206e756d626572206f662073657373696f6e206368616e676573206166746572207768696368206120505646207072652d636865636b696e6720766f74696e672069732072656a65637465642e907365745f6d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617904010c6e6577100144426c6f636b4e756d626572466f723c543e002b1055015365747320746865206d696e696d756d2064656c6179206265747765656e20616e6e6f756e63696e6720746865207570677261646520626c6f636b20666f7220612074657972636861696e20756e74696c2074686554757067726164652074616b696e6720706c6163652e00390153656520746865206669656c6420646f63756d656e746174696f6e20666f7220696e666f726d6174696f6e20616e6420636f6e73747261696e747320666f7220746865206e65772076616c75652e707365745f6279706173735f636f6e73697374656e63795f636865636b04010c6e6577200110626f6f6c002c084d0153657474696e67207468697320746f20747275652077696c6c2064697361626c6520636f6e73697374656e637920636865636b7320666f722074686520636f6e66696775726174696f6e20736574746572732e4455736520776974682063617574696f6e2e607365745f6173796e635f6261636b696e675f706172616d7304010c6e6577650301484173796e634261636b696e67506172616d73002d04a053657420746865206173796e6368726f6e6f7573206261636b696e6720706172616d65746572732e4c7365745f6578656375746f725f706172616d7304010c6e6577690301384578656375746f72506172616d73002e047053657420505646206578656375746f7220706172616d65746572732e587365745f6f6e5f64656d616e645f626173655f66656504010c6e657718011c42616c616e6365002f04a453657420746865206f6e2064656d616e6420287061726174687265616473292062617365206665652e747365745f6f6e5f64656d616e645f6665655f766172696162696c69747904010c6e6577e8011c50657262696c6c003004c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e707365745f6f6e5f64656d616e645f71756575655f6d61785f73697a6504010c6e657710010c753332003104bc53657420746865206f6e2064656d616e642028706172617468726561647329207175657565206d61782073697a652e987365745f6f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6e04010c6e6577e8011c50657262696c6c003204c053657420746865206f6e2064656d616e6420287061726174687265616473292066656520766172696162696c6974792e647365745f6d696e696d756d5f6261636b696e675f766f74657304010c6e657710010c753332003404a053657420746865206d696e696d756d206261636b696e6720766f746573207468726573686f6c642e407365745f6e6f64655f66656174757265080114696e646578080108753800011476616c7565200110626f6f6c003504645365742f556e7365742061206e6f646520666561747572652e687365745f617070726f76616c5f766f74696e675f706172616d7304010c6e65777d030150417070726f76616c566f74696e67506172616d730036046c53657420617070726f76616c2d766f74696e672d706172616d732e507365745f7363686564756c65725f706172616d7304010c6e6577810301885363686564756c6572506172616d733c426c6f636b4e756d626572466f723c543e3e00370454536574207363686564756c65722d706172616d732e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e6503104870657a6b7577695f7072696d697469766573087639346173796e635f6261636b696e67484173796e634261636b696e67506172616d73000008014c6d61785f63616e6469646174655f646570746810010c753332000150616c6c6f7765645f616e6365737472795f6c656e10010c75333200006903104870657a6b7577695f7072696d6974697665730876393c6578656375746f725f706172616d73384578656375746f72506172616d73000004006d0301485665633c4578656375746f72506172616d3e00006d030000027103007103104870657a6b7577695f7072696d6974697665730876393c6578656375746f725f706172616d73344578656375746f72506172616d00011c384d61784d656d6f72795061676573040010010c7533320001003c537461636b4c6f676963616c4d6178040010010c75333200020038537461636b4e61746976654d6178040010010c75333200030050507265636865636b696e674d61784d656d6f7279040030010c753634000400385076665072657054696d656f757408007503012c507666507265704b696e64000030010c753634000500385076664578656354696d656f757408007903012c507666457865634b696e64000030010c753634000600445761736d45787442756c6b4d656d6f72790007000075030c4870657a6b7577695f7072696d6974697665730876392c507666507265704b696e6400010820507265636865636b0000001c507265706172650001000079030c4870657a6b7577695f7072696d6974697665730876392c507666457865634b696e640001081c4261636b696e6700000020417070726f76616c000100007d030c4870657a6b7577695f7072696d69746976657308763950417070726f76616c566f74696e67506172616d73000004016c6d61785f617070726f76616c5f636f616c657363655f636f756e7410010c753332000081030c4870657a6b7577695f7072696d6974697665730876393c5363686564756c6572506172616d73042c426c6f636b4e756d6265720110002c016067726f75705f726f746174696f6e5f6672657175656e637910012c426c6f636b4e756d62657200016470617261735f617661696c6162696c6974795f706572696f6410012c426c6f636b4e756d62657200015c6d61785f76616c696461746f72735f7065725f636f7265ec012c4f7074696f6e3c7533323e0001246c6f6f6b616865616410010c7533320001246e756d5f636f72657310010c7533320001646d61785f617661696c6162696c6974795f74696d656f75747310010c7533320001606f6e5f64656d616e645f71756575655f6d61785f73697a6510010c7533320001886f6e5f64656d616e645f7461726765745f71756575655f7574696c697a6174696f6ee8011c50657262696c6c0001646f6e5f64656d616e645f6665655f766172696162696c697479e8011c50657262696c6c0001486f6e5f64656d616e645f626173655f66656518011c42616c616e636500010c74746c10012c426c6f636b4e756d62657200008503106870657a6b7577695f72756e74696d655f74657972636861696e73187368617265642470657a70616c6c65741043616c6c040454000100041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e8903106870657a6b7577695f72756e74696d655f74657972636861696e7324696e636c7573696f6e2470657a70616c6c65741043616c6c040454000100041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e8d03106870657a6b7577695f72756e74696d655f74657972636861696e733870617261735f696e686572656e742470657a70616c6c65741043616c6c04045400010414656e746572040110646174619103019054657972636861696e73496e686572656e74446174613c486561646572466f723c543e3e0000043101456e7465722074686520706172617320696e686572656e742e20546869732077696c6c2070726f63657373206269746669656c647320616e64206261636b65642063616e646964617465732e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e91030c4870657a6b7577695f7072696d69746976657308763930496e686572656e7444617461040c48445201fd01001001246269746669656c647395030190556e636865636b65645369676e6564417661696c6162696c6974794269746669656c64730001446261636b65645f63616e64696461746573b103017c5665633c4261636b656443616e6469646174653c4844523a3a486173683e3e0001206469737075746573f50301604d756c74694469737075746553746174656d656e74536574000134706172656e745f686561646572fd01010c484452000095030000029903009903104870657a6b7577695f7072696d697469766573087639187369676e65643c556e636865636b65645369676e6564081c5061796c6f6164019d032c5265616c5061796c6f6164019d03000c011c7061796c6f61649d03011c5061796c6f616400013c76616c696461746f725f696e646578a903013856616c696461746f72496e6465780001247369676e6174757265ad03014856616c696461746f725369676e617475726500009d030c4870657a6b7577695f7072696d69746976657308763950417661696c6162696c6974794269746669656c6400000400a103017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e0000a10300000708a50300a5030c18626974766563146f72646572104c73623000000000a9030c4870657a6b7577695f7072696d6974697665730876393856616c696461746f72496e6465780000040010010c7533320000ad03104870657a6b7577695f7072696d6974697665730876393476616c696461746f725f617070245369676e617475726500000400ad020148737232353531393a3a5369676e61747572650000b103000002b50300b5030c4870657a6b7577695f7072696d6974697665730876393c4261636b656443616e6469646174650404480134000c012463616e646964617465b9030178436f6d6d697474656443616e6469646174655265636569707456323c483e00013876616c69646974795f766f746573ed0301605665633c56616c69646974794174746573746174696f6e3e00014476616c696461746f725f696e6469636573a103017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e0000b9030c4870657a6b7577695f7072696d6974697665730876396c436f6d6d697474656443616e64696461746552656365697074563204044801340008012864657363726970746f72bd03016043616e64696461746544657363726970746f7256323c483e00012c636f6d6d69746d656e7473cd03015043616e646964617465436f6d6d69746d656e74730000bd030c4870657a6b7577695f7072696d6974697665730876395443616e64696461746544657363726970746f72563204044801340030011c706172615f6964f102011850617261496400013072656c61795f706172656e743401044800011c76657273696f6ec103013c496e7465726e616c56657273696f6e000128636f72655f696e646578cd01010c75313600013473657373696f6e5f696e64657810013053657373696f6e496e646578000124726573657276656431c50301205b75383b2032355d0001787065727369737465645f76616c69646174696f6e5f646174615f6861736834011048617368000120706f765f6861736834011048617368000130657261737572655f726f6f7434011048617368000124726573657276656432ad0201205b75383b2036345d000124706172615f686561643401104861736800015076616c69646174696f6e5f636f64655f68617368c903014856616c69646174696f6e436f6465486173680000c1030c4870657a6b7577695f7072696d6974697665730876393c496e7465726e616c56657273696f6e0000040008010875380000c503000003190000000800c9030c7070657a6b7577695f74657972636861696e5f7072696d697469766573287072696d6974697665734856616c69646174696f6e436f64654861736800000400340110486173680000cd030c4870657a6b7577695f7072696d6974697665730876395043616e646964617465436f6d6d69746d656e747304044e01100018013c7570776172645f6d65737361676573d10301385570776172644d6573736167657300014c686f72697a6f6e74616c5f6d65737361676573d5030148486f72697a6f6e74616c4d6573736167657300014c6e65775f76616c69646174696f6e5f636f6465e10301584f7074696f6e3c56616c69646174696f6e436f64653e000124686561645f64617461e9030120486561644461746100016c70726f6365737365645f646f776e776172645f6d6573736167657310010c75333200013868726d705f77617465726d61726b1001044e0000d1030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540138045300000400f10101185665633c543e0000d5030c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401d903045300000400dd0301185665633c543e0000d903085c70657a6b7577695f636f72655f7072696d6974697665734c4f7574626f756e6448726d704d6573736167650408496401f10200080124726563697069656e74f102010849640001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000dd03000002d90300e10304184f7074696f6e04045401e5030108104e6f6e6500000010536f6d650400e5030000010000e5030c7070657a6b7577695f74657972636861696e5f7072696d697469766573287072696d6974697665733856616c69646174696f6e436f64650000040038011c5665633c75383e0000e9030c7070657a6b7577695f74657972636861696e5f7072696d697469766573287072696d6974697665732048656164446174610000040038011c5665633c75383e0000ed03000002f10300f1030c4870657a6b7577695f7072696d6974697665730876394c56616c69646974794174746573746174696f6e00010820496d706c696369740400ad03014856616c696461746f725369676e6174757265000100204578706c696369740400ad03014856616c696461746f725369676e617475726500020000f503000002f90300f9030c4870657a6b7577695f7072696d6974697665730876394c4469737075746553746174656d656e7453657400000c013863616e6469646174655f68617368fd03013443616e6469646174654861736800011c73657373696f6e10013053657373696f6e496e64657800012873746174656d656e7473010401ec5665633c284469737075746553746174656d656e742c2056616c696461746f72496e6465782c2056616c696461746f725369676e6174757265293e0000fd03085c70657a6b7577695f636f72655f7072696d6974697665733443616e6469646174654861736800000400340110486173680000010400000205040005040000040c0904a903ad030009040c4870657a6b7577695f7072696d697469766573087639404469737075746553746174656d656e740001081456616c696404000d04016456616c69644469737075746553746174656d656e744b696e640000001c496e76616c696404001504016c496e76616c69644469737075746553746174656d656e744b696e64000100000d040c4870657a6b7577695f7072696d6974697665730876396456616c69644469737075746553746174656d656e744b696e64000114204578706c696369740000003c4261636b696e675365636f6e646564040034011048617368000100304261636b696e6756616c696404003401104861736800020040417070726f76616c436865636b696e6700030088417070726f76616c436865636b696e674d756c7469706c6543616e646964617465730400110401485665633c43616e646964617465486173683e000400001104000002fd030015040c4870657a6b7577695f7072696d6974697665730876396c496e76616c69644469737075746553746174656d656e744b696e64000104204578706c69636974000000001904106870657a6b7577695f72756e74696d655f74657972636861696e731470617261732470657a70616c6c65741043616c6c04045400013058666f7263655f7365745f63757272656e745f636f646508011070617261f10201185061726149640001206e65775f636f6465e503013856616c69646174696f6e436f6465000004f8536574207468652073746f7261676520666f72207468652074657972636861696e2076616c69646174696f6e20636f646520696d6d6564696174656c792e58666f7263655f7365745f63757272656e745f6865616408011070617261f10201185061726149640001206e65775f68656164e903012048656164446174610001040101536574207468652073746f7261676520666f72207468652063757272656e742074657972636861696e2068656164206461746120696d6d6564696174656c792e6c666f7263655f7363686564756c655f636f64655f757067726164650c011070617261f10201185061726149640001206e65775f636f6465e503013856616c69646174696f6e436f646500014c72656c61795f706172656e745f6e756d626572100144426c6f636b4e756d626572466f723c543e0002042d015363686564756c6520616e207570677261646520617320696620697420776173207363686564756c656420696e2074686520676976656e2072656c617920706172656e7420626c6f636b2e4c666f7263655f6e6f74655f6e65775f6865616408011070617261f10201185061726149640001206e65775f68656164e903012048656164446174610003041d014e6f74652061206e657720626c6f636b206865616420666f7220706172612077697468696e2074686520636f6e74657874206f66207468652063757272656e7420626c6f636b2e48666f7263655f71756575655f616374696f6e04011070617261f102011850617261496400040cf850757420612074657972636861696e206469726563746c7920696e746f20746865206e6578742073657373696f6e277320616374696f6e2071756575652ef457652063616e277420717565756520697420616e7920736f6f6e6572207468616e207468697320776974686f757420676f696e6720696e746f2074686538696e697469616c697a65722e2e2e6c6164645f747275737465645f76616c69646174696f6e5f636f646504013c76616c69646174696f6e5f636f6465e503013856616c69646174696f6e436f6465000538a041646473207468652076616c69646174696f6e20636f646520746f207468652073746f726167652e00590154686520636f64652077696c6c206e6f7420626520616464656420696620697420697320616c72656164792070726573656e742e204164646974696f6e616c6c792c20696620505646207072652d636865636b696e67e069732072756e6e696e6720666f72207468617420636f64652c2069742077696c6c20626520696e7374616e746c792061636365707465642e0051014f74686572776973652c2074686520636f64652077696c6c20626520616464656420696e746f207468652073746f726167652e204e6f746520746861742074686520636f64652077696c6c2062652061646465646101696e746f2073746f726167652077697468207265666572656e636520636f756e7420302e205468697320697320746f206163636f756e74207468652066616374207468617420746865726520617265206e6f2075736572734d01666f72207468697320636f6465207965742e205468652063616c6c65722077696c6c206861766520746f206d616b6520737572652074686174207468697320636f6465206576656e7475616c6c79206765747349017573656420627920736f6d652074657972636861696e206f722072656d6f7665642066726f6d207468652073746f7261676520746f2061766f69642073746f72616765206c65616b732e20466f722074686549016c61747465722070726566657220746f20757365207468652060706f6b655f756e757365645f76616c69646174696f6e5f636f64656020646973706174636861626c6520746f207261772073746f72616765346d616e6970756c6174696f6e2e005101546869732066756e6374696f6e206973206d61696e6c79206d65616e7420746f206265207573656420666f7220757067726164696e672074657972636861696e73207468617420646f206e6f7420666f6c6c6f77090174686520676f2d6168656164207369676e616c207768696c652074686520505646207072652d636865636b696e67206665617475726520697320656e61626c65642e6c706f6b655f756e757365645f76616c69646174696f6e5f636f646504015076616c69646174696f6e5f636f64655f68617368c903014856616c69646174696f6e436f646548617368000614250152656d6f7665207468652076616c69646174696f6e20636f64652066726f6d207468652073746f726167652069666620746865207265666572656e636520636f756e7420697320302e0059015468697320697320626574746572207468616e2072656d6f76696e67207468652073746f72616765206469726563746c792c20626563617573652069742077696c6c206e6f742072656d6f76652074686520636f6465410174686174207761732073756464656e6c7920676f74207573656420627920736f6d652074657972636861696e207768696c65207468697320646973706174636861626c65207761732070656e64696e67306469737061746368696e672e6c696e636c7564655f7076665f636865636b5f73746174656d656e7408011073746d741d040144507666436865636b53746174656d656e740001247369676e6174757265ad03014856616c696461746f725369676e61747572650007085501496e636c7564657320612073746174656d656e7420666f72206120505646207072652d636865636b696e6720766f74652e20506f74656e7469616c6c792c2066696e616c697a65732074686520766f746520616e644101656e616374732074686520726573756c747320696620746861742077617320746865206c61737420766f7465206265666f726520616368696576696e67207468652073757065726d616a6f726974792e74666f7263655f7365745f6d6f73745f726563656e745f636f6e7465787408011070617261f102011850617261496400011c636f6e74657874100144426c6f636b4e756d626572466f723c543e0008040101536574207468652073746f7261676520666f72207468652063757272656e742074657972636861696e2068656164206461746120696d6d6564696174656c792e5c72656d6f76655f757067726164655f636f6f6c646f776e04011070617261f1020118506172614964000910ac52656d6f766520616e207570677261646520636f6f6c646f776e20666f7220612074657972636861696e2e00510154686520636f737420666f722072656d6f76696e672074686520636f6f6c646f776e206561726c69657220646570656e6473206f6e207468652074696d65206c65667420666f722074686520636f6f6c646f776e41016d756c7469706c696564206279205b60436f6e6669673a3a436f6f6c646f776e52656d6f76616c4d756c7469706c696572605d2e20546865207061696420746f6b656e7320617265206275726e65642e94617574686f72697a655f666f7263655f7365745f63757272656e745f636f64655f686173680c011070617261f10201185061726149640001346e65775f636f64655f68617368c903014856616c69646174696f6e436f64654861736800013076616c69645f706572696f64100144426c6f636b4e756d626572466f723c543e000a2c1d0153657473207468652073746f7261676520666f722074686520617574686f72697a65642063757272656e7420636f64652068617368206f66207468652074657972636861696e2e61014966206e6f74206170706c6965642c2069742077696c6c2062652072656d6f76656420617420746865206053797374656d3a3a626c6f636b5f6e756d6265722829202b2076616c69645f706572696f646020626c6f636b2e003d01546869732063616e2062652075736566756c2c207768656e2074726967676572696e67206050617261733a3a666f7263655f7365745f63757272656e745f636f646528706172612c20636f64652960310166726f6d206120646966666572656e7420636861696e207468616e20746865206f6e652077686572652074686520605061726173602070657a70616c6c6574206973206465706c6f7965642e005501546865206d61696e20707572706f736520697320746f2061766f6964207472616e7366657272696e672074686520656e746972652060636f646560205761736d20626c6f62206265747765656e20636861696e732e3101496e73746561642c20776520617574686f72697a652060636f64655f686173686020776974682060726f6f74602c2077686963682063616e206c61746572206265206170706c6965642062791d016050617261733a3a6170706c795f617574686f72697a65645f666f7263655f7365745f63757272656e745f636f646528706172612c20636f6465296020627920616e796f6e652e00dc417574686f72697a6174696f6e73206172652073746f72656420696e20616e202a2a6f76657277726974696e67206d616e6e65722a2a2e9c6170706c795f617574686f72697a65645f666f7263655f7365745f63757272656e745f636f646508011070617261f10201185061726149640001206e65775f636f6465e503013856616c69646174696f6e436f6465000b08f84170706c6965732074686520616c726561647920617574686f72697a65642063757272656e7420636f646520666f72207468652074657972636861696e2cf874726967676572696e67207468652073616d652066756e6374696f6e616c6974792061732060666f7263655f7365745f63757272656e745f636f6465602e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e1d040c4870657a6b7577695f7072696d69746976657308763944507666436865636b53746174656d656e740000100118616363657074200110626f6f6c00011c7375626a656374c903014856616c69646174696f6e436f64654861736800013473657373696f6e5f696e64657810013053657373696f6e496e64657800013c76616c696461746f725f696e646578a903013856616c696461746f72496e64657800002104106870657a6b7577695f72756e74696d655f74657972636861696e732c696e697469616c697a65722470657a70616c6c65741043616c6c04045400010434666f7263655f617070726f766504011475705f746f10012c426c6f636b4e756d62657200000c390149737375652061207369676e616c20746f2074686520636f6e73656e73757320656e67696e6520746f20666f726369626c79206163742061732074686f75676820616c6c2074657972636861696e5101626c6f636b7320696e20616c6c2072656c617920636861696e20626c6f636b7320757020746f20616e6420696e636c7564696e672074686520676976656e206e756d62657220696e207468652063757272656e74a0636861696e206172652076616c696420616e642073686f756c642062652066696e616c697a65642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e2504106870657a6b7577695f72756e74696d655f74657972636861696e731068726d702470657a70616c6c65741043616c6c04045400012c5868726d705f696e69745f6f70656e5f6368616e6e656c0c0124726563697069656e74f102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c7533320000284d01496e697469617465206f70656e696e672061206368616e6e656c2066726f6d20612074657972636861696e20746f206120676976656e20726563697069656e74207769746820676976656e206368616e6e656c2c706172616d65746572732e0059012d206070726f706f7365645f6d61785f636170616369747960202d2073706563696669657320686f77206d616e79206d657373616765732063616e20626520696e20746865206368616e6e656c206174206f6e63652e2d012d206070726f706f7365645f6d61785f6d6573736167655f73697a6560202d2073706563696669657320746865206d6178696d756d2073697a65206f6620746865206d657373616765732e0011015468657365206e756d62657273206172652061207375626a65637420746f207468652072656c61792d636861696e20636f6e66696775726174696f6e206c696d6974732e005101546865206368616e6e656c2063616e206265206f70656e6564206f6e6c792061667465722074686520726563697069656e7420636f6e6669726d7320697420616e64206f6e6c79206f6e20612073657373696f6e1c6368616e67652e6068726d705f6163636570745f6f70656e5f6368616e6e656c04011873656e646572f102011850617261496400010cf041636365707420612070656e64696e67206f70656e206368616e6e656c20726571756573742066726f6d2074686520676976656e2073656e6465722e00f4546865206368616e6e656c2077696c6c206265206f70656e6564206f6e6c79206f6e20746865206e6578742073657373696f6e20626f756e646172792e4868726d705f636c6f73655f6368616e6e656c0401286368616e6e656c5f69642904013448726d704368616e6e656c49640002105501496e69746961746520756e696c61746572616c20636c6f73696e67206f662061206368616e6e656c2e20546865206f726967696e206d75737420626520656974686572207468652073656e646572206f722074686598726563697069656e7420696e20746865206368616e6e656c206265696e6720636c6f7365642e00c054686520636c6f737572652063616e206f6e6c792068617070656e206f6e20612073657373696f6e206368616e67652e40666f7263655f636c65616e5f68726d700c011070617261f102011850617261496400012c6e756d5f696e626f756e6410010c7533320001306e756d5f6f7574626f756e6410010c75333200031c5d01546869732065787472696e7369632074726967676572732074686520636c65616e7570206f6620616c6c207468652048524d502073746f72616765206974656d73207468617420612070617261206d617920686176652e49014e6f726d616c6c7920746869732068617070656e73206f6e6365207065722073657373696f6e2c20627574207468697320616c6c6f777320796f7520746f20747269676765722074686520636c65616e757094696d6d6564696174656c7920666f7220612073706563696669632074657972636861696e2e0051014e756d626572206f6620696e626f756e6420616e64206f7574626f756e64206368616e6e656c7320666f7220607061726160206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e5c666f7263655f70726f636573735f68726d705f6f70656e0401206368616e6e656c7310010c753332000420a4466f7263652070726f636573732048524d50206f70656e206368616e6e656c2072657175657374732e0055014966207468657265206172652070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f66206f70656e696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e60666f7263655f70726f636573735f68726d705f636c6f73650401206368616e6e656c7310010c753332000520a8466f7263652070726f636573732048524d5020636c6f7365206368616e6e656c2072657175657374732e0059014966207468657265206172652070656e64696e672048524d5020636c6f7365206368616e6e656c2072657175657374732c20796f752063616e2075736520746869732066756e6374696f6e20746f2070726f6365737388616c6c206f662074686f736520726571756573747320696d6d6564696174656c792e000901546f74616c206e756d626572206f6620636c6f73696e67206368616e6e656c73206d7573742062652070726f7669646564206173207769746e65737320646174612e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6068726d705f63616e63656c5f6f70656e5f726571756573740801286368616e6e656c5f69642904013448726d704368616e6e656c49640001346f70656e5f726571756573747310010c7533320006205d01546869732063616e63656c7320612070656e64696e67206f70656e206368616e6e656c20726571756573742e2049742063616e2062652063616e63656c656420627920656974686572206f66207468652073656e64657219016f722074686520726563697069656e7420666f72207468617420726571756573742e20546865206f726967696e206d75737420626520656974686572206f662074686f73652e005d015468652063616e63656c6c6174696f6e2068617070656e7320696d6d6564696174656c792e204974206973206e6f7420706f737369626c6520746f2063616e63656c20746865207265717565737420696620697420697344616c72656164792061636365707465642e005901546f74616c206e756d626572206f66206f70656e2072657175657374732028692e652e206048726d704f70656e4368616e6e656c52657175657374734c6973746029206d7573742062652070726f7669646564206173347769746e65737320646174612e5c666f7263655f6f70656e5f68726d705f6368616e6e656c10011873656e646572f1020118506172614964000124726563697069656e74f10201185061726149640001306d61785f636170616369747910010c7533320001406d61785f6d6573736167655f73697a6510010c75333200072061014f70656e2061206368616e6e656c2066726f6d2061206073656e6465726020746f20612060726563697069656e74602060506172614964602e20416c74686f756768206f70656e656420627920676f7665726e616e63652c410174686520606d61785f63617061636974796020616e6420606d61785f6d6573736167655f73697a656020617265207374696c6c207375626a65637420746f207468652052656c617920436861696e277348636f6e66696775726564206c696d6974732e004d01457870656374656420757365206973207768656e206f6e652028616e64206f6e6c79206f6e6529206f66207468652060506172614964607320696e766f6c76656420696e20746865206368616e6e656c206973c0676f7665726e6564206279207468652073797374656d2c20652e672e20612073797374656d2074657972636861696e2e00904f726967696e206d7573742062652074686520604368616e6e656c4d616e61676572602e6065737461626c6973685f73797374656d5f6368616e6e656c08011873656e646572f1020118506172614964000124726563697069656e74f1020118506172614964000830510145737461626c69736820616e2048524d50206368616e6e656c206265747765656e2074776f2073797374656d20636861696e732e20496620746865206368616e6e656c20646f6573206e6f7420616c7265616479510165786973742c20746865207472616e73616374696f6e20666565732077696c6c20626520726566756e64656420746f207468652063616c6c65722e205468652073797374656d20646f6573206e6f742074616b6559016465706f7369747320666f72206368616e6e656c73206265747765656e2073797374656d20636861696e732c20616e64206175746f6d61746963616c6c79207365747320746865206d657373616765206e756d6265721901616e642073697a65206c696d69747320746f20746865206d6178696d756d20616c6c6f77656420627920746865206e6574776f726b277320636f6e66696775726174696f6e2e0028417267756d656e74733a00942d206073656e646572603a20412073797374656d20636861696e2c2060506172614964602ea02d2060726563697069656e74603a20412073797374656d20636861696e2c2060506172614964602e005501416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2c20627574205f626f74685f20696e70757473204d5553542062652073797374656d20636861696e732e204966c0746865206368616e6e656c20646f6573206e6f74206578697374207965742c207468657265206973206e6f206665652e54706f6b655f6368616e6e656c5f6465706f7369747308011873656e646572f1020118506172614964000124726563697069656e74f1020118506172614964000924510155706461746520746865206465706f736974732068656c6420666f7220616e2048524d50206368616e6e656c20746f20746865206c61746573742060436f6e66696775726174696f6e602e204368616e6e656c73b0776974682073797374656d20636861696e7320646f206e6f7420726571756972652061206465706f7369742e0028417267756d656e74733a00782d206073656e646572603a204120636861696e2c2060506172614964602e842d2060726563697069656e74603a204120636861696e2c2060506172614964602e00a4416e79207369676e6564206f726967696e2063616e2063616c6c20746869732066756e6374696f6e2e7465737461626c6973685f6368616e6e656c5f776974685f73797374656d04014c7461726765745f73797374656d5f636861696ef1020118506172614964000a1c390145737461626c6973682061206269646972656374696f6e616c2048524d50206368616e6e656c206265747765656e20612074657972636861696e20616e6420612073797374656d20636861696e2e0028417267756d656e74733a00c82d20607461726765745f73797374656d5f636861696e603a20412073797374656d20636861696e2c2060506172614964602e00b0546865206f726967696e206e6565647320746f206265207468652074657972636861696e206f726967696e2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e29040c7070657a6b7577695f74657972636861696e5f7072696d697469766573287072696d6974697665733448726d704368616e6e656c4964000008011873656e646572f10201084964000124726563697069656e74f1020108496400002d04106870657a6b7577695f72756e74696d655f74657972636861696e732064697370757465732470657a70616c6c65741043616c6c04045400010438666f7263655f756e667265657a65000000041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e3104146870657a6b7577695f72756e74696d655f74657972636861696e7320646973707574657320736c617368696e672470657a70616c6c65741043616c6c040454000104707265706f72745f646973707574655f6c6f73745f756e7369676e6564080134646973707574655f70726f6f6635040144426f783c4469737075746550726f6f663e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f66000000041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e3504104870657a6b7577695f7072696d69746976657308763920736c617368696e67304469737075746550726f6f66000010012474696d655f736c6f7439040140446973707574657354696d65536c6f740001106b696e643d040148446973707574654f6666656e63654b696e6400013c76616c696461746f725f696e646578a903013856616c696461746f72496e64657800013076616c696461746f725f69644d02012c56616c696461746f72496400003904104870657a6b7577695f7072696d69746976657308763920736c617368696e6740446973707574657354696d65536c6f74000008013473657373696f6e5f696e64657810013053657373696f6e496e64657800013863616e6469646174655f68617368fd03013443616e6469646174654861736800003d040c4870657a6b7577695f7072696d69746976657308763948446973707574654f6666656e63654b696e6400010c40466f72496e76616c69644261636b656400000030416761696e737456616c696400010048466f72496e76616c6964417070726f7665640002000041040c5c70657a70616c6c65745f6d6573736167655f71756575652470657a70616c6c65741043616c6c04045400010824726561705f706167650801386d6573736167655f6f726967696e450401484d6573736167654f726967696e4f663c543e000128706167655f696e64657810012450616765496e6465780000043d0152656d6f76652061207061676520776869636820686173206e6f206d6f7265206d657373616765732072656d61696e696e6720746f2062652070726f636573736564206f72206973207374616c652e48657865637574655f6f7665727765696768741001386d6573736167655f6f726967696e450401484d6573736167654f726967696e4f663c543e0001107061676510012450616765496e646578000114696e64657810011c543a3a53697a650001307765696768745f6c696d6974280118576569676874000134784578656375746520616e206f766572776569676874206d6573736167652e004d0154656d706f726172792070726f63657373696e67206572726f72732077696c6c2062652070726f706167617465642077686572656173207065726d616e656e74206572726f7273206172652074726561746564546173207375636365737320636f6e646974696f6e2e00742d20606f726967696e603a204d75737420626520605369676e6564602e35012d20606d6573736167655f6f726967696e603a20546865206f726967696e2066726f6d20776869636820746865206d65737361676520746f20626520657865637574656420617272697665642e3d012d206070616765603a20546865207061676520696e2074686520717565756520696e20776869636820746865206d65737361676520746f2062652065786563757465642069732073697474696e672e09012d2060696e646578603a2054686520696e64657820696e746f20746865207175657565206f6620746865206d65737361676520746f2062652065786563757465642e59012d20607765696768745f6c696d6974603a20546865206d6178696d756d20616d6f756e74206f662077656967687420616c6c6f77656420746f20626520636f6e73756d656420696e2074686520657865637574696f6e4420206f6620746865206d6573736167652e00f442656e63686d61726b20636f6d706c657869747920636f6e73696465726174696f6e733a204f28696e646578202b207765696768745f6c696d6974292e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e45040c6870657a6b7577695f72756e74696d655f74657972636861696e7324696e636c7573696f6e584167677265676174654d6573736167654f726967696e0001040c556d70040049040128556d70517565756549640000000049040c6870657a6b7577695f72756e74696d655f74657972636861696e7324696e636c7573696f6e28556d705175657565496400010410506172610400f1020118506172614964000000004d04106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e642470657a70616c6c65741043616c6c04045400010c5c706c6163655f6f726465725f616c6c6f775f64656174680801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f6964f102011850617261496400003c9443726561746520612073696e676c65206f6e2064656d616e6420636f7265206f726465722e490157696c6c20757365207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b20616e642077696c6c207265617020746865206163636f756e74206966206e65656465642e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646058706c6163655f6f726465725f6b6565705f616c6976650801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f6964f102011850617261496400013c610153616d6520617320746865205b60706c6163655f6f726465725f616c6c6f775f6465617468605d2853656c663a3a706c6163655f6f726465725f616c6c6f775f6465617468292063616c6c202c2062757420776974682061dc636865636b207468617420706c6163696e6720746865206f726465722077696c6c206e6f74207265617020746865206163636f756e742e002c506172616d65746572733a39012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c2066756e64732077696c6c2062652077697468647261776e2066726f6d2074686973206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d2062616c616e636520746f2077697468647261772066726f6d20746865206f726967696e20746f20706c61636520616e206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733ae42d2060496e73756666696369656e7442616c616e6365603a2066726f6d207468652043757272656e637920696d706c656d656e746174696f6e342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c616365646060706c6163655f6f726465725f776974685f637265646974730801286d61785f616d6f756e7418013042616c616e63654f663c543e00011c706172615f6964f1020118506172614964000244c843726561746520612073696e676c65206f6e2064656d616e6420636f7265206f72646572207769746820637265646974732e590157696c6c2063686172676520746865206f776e65722773206f6e2d64656d616e6420637265646974206163636f756e74207468652073706f7420707269636520666f72207468652063757272656e7420626c6f636b2e002c506172616d65746572733a45012d20606f726967696e603a205468652073656e646572206f66207468652063616c6c2c206f6e2d64656d616e6420637265646974732077696c6c2062652077697468647261776e2066726f6d20746869732820206163636f756e742e49012d20606d61785f616d6f756e74603a20546865206d6178696d756d206e756d626572206f66206372656469747320746f207370656e642066726f6d20746865206f726967696e20746f20706c61636520616e2020206f726465722e0d012d2060706172615f6964603a204120605061726149646020746865206f726967696e2077616e747320746f2070726f7669646520626c6f636b737061636520666f722e001c4572726f72733a5c2d2060496e73756666696369656e744372656469747360342d2060517565756546756c6c60802d206053706f7450726963654869676865725468616e4d6178416d6f756e7460001c4576656e74733a5c2d20604f6e44656d616e644f72646572506c6163656460041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e5104105870657a6b7577695f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722470657a70616c6c65741043616c6c0404540001242072656769737465720c01086964f102011850617261496400013067656e657369735f68656164e9030120486561644461746100013c76616c69646174696f6e5f636f6465e503013856616c69646174696f6e436f6465000050f852656769737465722068656164206461746120616e642076616c69646174696f6e20636f646520666f72206120726573657276656420506172612049642e0030232320417267756d656e7473c02d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e2d012d20606964603a2054686520706172612049442e204d757374206265206f776e65642f6d616e616765642062792074686520606f726967696e60207369676e696e67206163636f756e742e01012d206067656e657369735f68656164603a205468652067656e6573697320686561642064617461206f66207468652074657972636861696e2f7468726561642e25012d206076616c69646174696f6e5f636f6465603a2054686520696e697469616c2076616c69646174696f6e20636f6465206f66207468652074657972636861696e2f7468726561642e00402323204465706f736974732f466565730901546865206163636f756e74207769746820746865206f726967696e6174696e67207369676e6174757265206d75737420726573657276652061206465706f7369742e004d01546865206465706f73697420697320726571756972656420746f20636f7665722074686520636f737473206173736f63696174656420776974682073746f72696e67207468652067656e657369732068656164746461746120616e64207468652076616c69646174696f6e20636f64652e310154686973206163636f756e747320666f722074686520706f74656e7469616c20746f2073746f72652076616c69646174696f6e20636f6465206f6620612073697a6520757020746f20746865e8606d61785f636f64655f73697a65602c20617320646566696e656420696e2074686520636f6e66696775726174696f6e2070657a70616c6c6574001d01416e797468696e6720616c72656164792072657365727665642070726576696f75736c7920666f7220746869732070617261204944206973206163636f756e74656420666f722e00242323204576656e7473d454686520605265676973746572656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732e38666f7263655f726567697374657214010c77686f000130543a3a4163636f756e74496400011c6465706f73697418013042616c616e63654f663c543e0001086964f102011850617261496400013067656e657369735f68656164e9030120486561644461746100013c76616c69646174696f6e5f636f6465e503013856616c69646174696f6e436f6465000118dc466f7263652074686520726567697374726174696f6e206f6620612050617261204964206f6e207468652072656c617920636861696e2e00b8546869732066756e6374696f6e206d7573742062652063616c6c6564206279206120526f6f74206f726967696e2e001901546865206465706f7369742074616b656e2063616e2062652073706563696669656420666f72207468697320726567697374726174696f6e2e20416e79206050617261496460190163616e20626520726567697374657265642c20696e636c7564696e67207375622d3130303020494473207768696368206172652053797374656d2054657972636861696e732e28646572656769737465720401086964f1020118506172614964000210050144657265676973746572206120506172612049642c2066726565696e6720616c6c206461746120616e642072657475726e696e6720616e79206465706f7369742e0051015468652063616c6c6572206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e205468652070617261206d75737420626520616e506f6e2d64656d616e642074657972636861696e2e10737761700801086964f10201185061726149640001146f74686572f10201185061726149640003304101537761702061206c6561736520686f6c64696e672074657972636861696e207769746820616e6f746865722074657972636861696e2c20656974686572206f6e2d64656d616e64206f72206c6561736520686f6c64696e672e000101546865206f726967696e206d75737420626520526f6f742c2074686520607061726160206f776e65722c206f72207468652060706172616020697473656c662e00610154686520737761702077696c6c2068617070656e206f6e6c7920696620746865726520697320616c726561647920616e206f70706f7369746520737761702070656e64696e672e204966207468657265206973206e6f742c590174686520737761702077696c6c2062652073746f72656420696e207468652070656e64696e67207377617073206d61702c20726561647920666f722061206c6174657220636f6e6669726d61746f727920737761702e005d01546865206050617261496460732072656d61696e206d617070656420746f207468652073616d652068656164206461746120616e6420636f646520736f2065787465726e616c20636f64652063616e2072656c79206f6e3d01605061726149646020746f2062652061206c6f6e672d7465726d206964656e746966696572206f662061206e6f74696f6e616c202274657972636861696e222e20486f77657665722c20746865697235017363686564756c696e6720696e666f2028692e652e2077686574686572207468657927726520616e206f6e2d64656d616e642074657972636861696e206f72206c6561736520686f6c64696e67150174657972636861696e292c2061756374696f6e20696e666f726d6174696f6e20616e64207468652061756374696f6e206465706f736974206172652073776974636865642e2c72656d6f76655f6c6f636b04011070617261f10201185061726149640004100d0152656d6f76652061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c20616c6c6f7720746865206d616e61676572206f662061350170726576696f75736c79206c6f636b6564207061726120746f2064657265676973746572206f7220737761702061207061726120776974686f7574207573696e6720676f7665726e616e63652e00dc43616e206f6e6c792062652063616c6c65642062792074686520526f6f74206f726967696e206f72207468652074657972636861696e2e1c72657365727665000544945265736572766520612050617261204964206f6e207468652072656c617920636861696e2e004d01546869732066756e6374696f6e2077696c6c20726573657276652061206e6577205061726120496420746f206265206f776e65642f6d616e6167656420627920746865206f726967696e206163636f756e742e6101546865206f726967696e206163636f756e742069732061626c6520746f2072656769737465722068656164206461746120616e642076616c69646174696f6e20636f6465207573696e67206072656769737465726020746f510163726561746520616e206f6e2d64656d616e642074657972636861696e2e205573696e672074686520536c6f74732070657a70616c6c65742c20616e206f6e2d64656d616e642074657972636861696e2063616eb87468656e20626520757067726164656420746f2061206c6561736520686f6c64696e672074657972636861696e2e0030232320417267756d656e747355012d20606f726967696e603a204d7573742062652063616c6c6564206279206120605369676e656460206f726967696e2e204265636f6d657320746865206d616e616765722f6f776e6572206f6620746865206e6577282020706172612049442e00402323204465706f736974732f466565732101546865206f726967696e206d75737420726573657276652061206465706f736974206f662060506172614465706f7369746020666f722074686520726567697374726174696f6e2e00242323204576656e747359015468652060526573657276656460206576656e7420697320656d697474656420696e2063617365206f6620737563636573732c2077686963682070726f76696465732074686520494420726573657276656420666f72107573652e206164645f6c6f636b04011070617261f102011850617261496400061409014164642061206d616e61676572206c6f636b2066726f6d206120706172612e20546869732077696c6c2070726576656e7420746865206d616e61676572206f662061887061726120746f2064657265676973746572206f722073776170206120706172612e00490143616e2062652063616c6c656420627920526f6f742c207468652074657972636861696e2c206f72207468652074657972636861696e206d616e61676572206966207468652074657972636861696e20697324756e6c6f636b65642e547363686564756c655f636f64655f7570677261646508011070617261f10201185061726149640001206e65775f636f6465e503013856616c69646174696f6e436f646500072c745363686564756c6520612074657972636861696e20757067726164652e005501546869732077696c6c206b69636b206f6666206120636865636b206f6620606e65775f636f64656020627920616c6c2076616c696461746f72732e20416674657220746865206d616a6f72697479206f6620746865550176616c696461746f72732068617665207265706f72746564206f6e207468652076616c6964697479206f662074686520636f64652c2074686520636f64652077696c6c2065697468657220626520656e616374656455016f722074686520757067726164652077696c6c2062652072656a65637465642e2049662074686520636f64652077696c6c20626520656e61637465642c207468652063757272656e7420636f6465206f66207468655d0174657972636861696e2077696c6c206265206f7665727772697474656e206469726563746c792e2054686973206d65616e73207468617420616e7920506f562077696c6c20626520636865636b656420627920746869735d016e657720636f64652e205468652074657972636861696e20697473656c662077696c6c206e6f7420626520696e666f726d6564206578706c696369746c792074686174207468652076616c69646174696f6e20636f646530686173206368616e6765642e00490143616e2062652063616c6c656420627920526f6f742c207468652074657972636861696e2c206f72207468652074657972636861696e206d616e61676572206966207468652074657972636861696e20697324756e6c6f636b65642e407365745f63757272656e745f6865616408011070617261f10201185061726149640001206e65775f68656164e9030120486561644461746100081084536574207468652074657972636861696e27732063757272656e7420686561642e00490143616e2062652063616c6c656420627920526f6f742c207468652074657972636861696e2c206f72207468652074657972636861696e206d616e61676572206966207468652074657972636861696e20697324756e6c6f636b65642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e5504105870657a6b7577695f72756e74696d655f636f6d6d6f6e14736c6f74732470657a70616c6c65741043616c6c04045400010c2c666f7263655f6c6561736514011070617261f10201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e0000104d014a757374206120636f6e6e65637420696e746f2074686520606c656173655f6f7574602063616c6c2c20696e206361736520526f6f742077616e747320746f20666f72636520736f6d65206c6561736520746ffc68617070656e20696e646570656e64656e746c79206f6620616e79206f74686572206f6e2d636861696e206d656368616e69736d20746f207573652069742e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e40636c6561725f616c6c5f6c656173657304011070617261f102011850617261496400010c4d01436c65617220616c6c206c656173657320666f72206120506172612049642c20726566756e64696e6720616e79206465706f73697473206261636b20746f20746865206f726967696e616c206f776e6572732e00f8546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206d617463682060543a3a466f7263654f726967696e602e3c747269676765725f6f6e626f61726404011070617261f102011850617261496400021c250154727920746f206f6e626f61726420612074657972636861696e2074686174206861732061206c6561736520666f72207468652063757272656e74206c6561736520706572696f642e004501546869732066756e6374696f6e2063616e2062652075736566756c2069662074686572652077617320736f6d6520737461746520697373756520776974682061207061726120746861742073686f756c64390168617665206f6e626f61726465642c206275742077617320756e61626c6520746f2e204173206c6f6e67206173207468657920686176652061206c6561736520706572696f642c2077652063616e6c6c6574207468656d206f6e626f6172642066726f6d20686572652e00cc4f726967696e206d757374206265207369676e65642c206275742063616e2062652063616c6c656420627920616e796f6e652e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e5904105870657a6b7577695f72756e74696d655f636f6d6d6f6e2061756374696f6e732470657a70616c6c65741043616c6c04045400010c2c6e65775f61756374696f6e0801206475726174696f6e35010144426c6f636b4e756d626572466f723c543e0001486c656173655f706572696f645f696e646578350101404c65617365506572696f644f663c543e000014544372656174652061206e65772061756374696f6e2e005101546869732063616e206f6e6c792068617070656e207768656e2074686572652069736e277420616c726561647920616e2061756374696f6e20696e2070726f677265737320616e64206d6179206f6e6c79206265250163616c6c65642062792074686520726f6f74206f726967696e2e20416363657074732074686520606475726174696f6e60206f6620746869732061756374696f6e20616e64207468655901606c656173655f706572696f645f696e64657860206f662074686520696e697469616c206c6561736520706572696f64206f662074686520666f757220746861742061726520746f2062652061756374696f6e65642e0c626964140110706172615d04011850617261496400013461756374696f6e5f696e6465783501013041756374696f6e496e64657800012866697273745f736c6f74350101404c65617365506572696f644f663c543e0001246c6173745f736c6f74350101404c65617365506572696f644f663c543e000118616d6f756e744501013042616c616e63654f663c543e00014049014d616b652061206e6577206269642066726f6d20616e206163636f756e742028696e636c7564696e6720612074657972636861696e206163636f756e742920666f72206465706c6f79696e672061206e65772874657972636861696e2e0059014d756c7469706c652073696d756c74616e656f757320626964732066726f6d207468652073616d65206269646465722061726520616c6c6f776564206f6e6c79206173206c6f6e6720617320616c6c206163746976653d0162696473206f7665726c61702065616368206f746865722028692e652e20617265206d757475616c6c79206578636c7573697665292e20426964732063616e6e6f742062652072656461637465642e0055012d20607375626020697320746865207375622d6269646465722049442c20616c6c6f77696e6720666f72206d756c7469706c6520636f6d706574696e67206269647320746f206265206d6164652062792028616e647066756e64656420627929207468652073616d65206163636f756e742e4d012d206061756374696f6e5f696e646578602069732074686520696e646578206f66207468652061756374696f6e20746f20626964206f6e2e2053686f756c64206a757374206265207468652070726573656e746876616c7565206f66206041756374696f6e436f756e746572602e49012d206066697273745f736c6f746020697320746865206669727374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e41012d20606c6173745f736c6f746020697320746865206c617374206c6561736520706572696f6420696e646578206f66207468652072616e676520746f20626964206f6e2e20546869732069732074686509016162736f6c757465206c6561736520706572696f6420696e6465782076616c75652c206e6f7420616e2061756374696f6e2d7370656369666963206f66667365742e49012d2060616d6f756e74602069732074686520616d6f756e7420746f2062696420746f2062652068656c64206173206465706f73697420666f72207468652074657972636861696e2073686f756c6420746865c86269642077696e2e205468697320616d6f756e742069732068656c64207468726f7567686f7574207468652072616e67652e3863616e63656c5f61756374696f6e00020c7843616e63656c20616e20696e2d70726f67726573732061756374696f6e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e5d04000006f102006104105870657a6b7577695f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2470657a70616c6c65741043616c6c04045400012418637265617465180114696e6465785d04011850617261496400010c6361704501013042616c616e63654f663c543e00013066697273745f706572696f64350101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64350101404c65617365506572696f644f663c543e00010c656e6435010144426c6f636b4e756d626572466f723c543e00012076657269666965726504014c4f7074696f6e3c4d756c74695369676e65723e0000144d014372656174652061206e65772063726f77646c6f616e696e672063616d706169676e20666f7220612074657972636861696e20736c6f7420776974682074686520676976656e206c6561736520706572696f641872616e67652e005d0154686973206170706c6965732061206c6f636b20746f20796f75722074657972636861696e20636f6e66696775726174696f6e2c20656e737572696e6720746861742069742063616e6e6f74206265206368616e676564646279207468652074657972636861696e206d616e616765722e28636f6e747269627574650c0114696e6465785d04011850617261496400011476616c75654501013042616c616e63654f663c543e0001247369676e61747572656d0401584f7074696f6e3c4d756c74695369676e61747572653e0001085101436f6e7472696275746520746f20612063726f77642073616c652e20546869732077696c6c207472616e7366657220736f6d652062616c616e6365206f76657220746f2066756e6420612074657972636861696e5101736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e2068617320656e64656420616e64207468652066756e64732061726520756e757365642e20776974686472617708010c77686f000130543a3a4163636f756e744964000114696e6465785d040118506172614964000244c057697468647261772066756c6c2062616c616e6365206f66206120737065636966696320636f6e7472696275746f722e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e005d015468652066756e64206d7573742062652065697468657220696e2c206f7220726561647920666f722c207265746972656d656e742e20466f7220612066756e6420746f206265202a696e2a207265746972656d656e742c49017468656e20746865207265746972656d656e7420666c6167206d757374206265207365742e20466f7220612066756e6420746f20626520726561647920666f72207265746972656d656e742c207468656e3a9c2d206974206d757374206e6f7420616c726561647920626520696e207265746972656d656e743b4d012d2074686520616d6f756e74206f66207261697365642066756e6473206d75737420626520626967676572207468616e20746865205f667265655f2062616c616e6365206f6620746865206163636f756e743b342d20616e64206569746865723abc20202d2074686520626c6f636b206e756d626572206d757374206265206174206c656173742060656e64603b206f722d0120202d207468652063757272656e74206c6561736520706572696f64206d7573742062652067726561746572207468616e207468652066756e64277320606c6173745f706572696f64602e005501496e207468697320636173652c207468652066756e642773207265746972656d656e7420666c61672069732073657420616e64206974732060656e646020697320726573657420746f207468652063757272656e7434626c6f636b206e756d6265722e00f02d206077686f603a20546865206163636f756e742077686f736520636f6e747269627574696f6e2073686f756c642062652077697468647261776e2e19012d2060696e646578603a205468652074657972636861696e20746f2077686f73652063726f77646c6f616e2074686520636f6e747269627574696f6e20776173206d6164652e18726566756e64040114696e6465785d040118506172614964000314e04175746f6d61746963616c6c7920726566756e6420636f6e7472696275746f7273206f6620616e20656e6465642063726f77646c6f616e2e210144756520746f20776569676874207265737472696374696f6e732c20746869732066756e6374696f6e206d6179206e65656420746f2062652063616c6c6564206d756c7469706c65490174696d657320746f2066756c6c7920726566756e6420616c6c2075736572732e2057652077696c6c20726566756e64206052656d6f76654b6579734c696d69746020757365727320617420612074696d652e00c04f726967696e206d757374206265207369676e65642c206275742063616e20636f6d652066726f6d20616e796f6e652e20646973736f6c7665040114696e6465785d040118506172614964000404550152656d6f766520612066756e6420616674657220746865207265746972656d656e7420706572696f642068617320656e64656420616e6420616c6c2066756e64732068617665206265656e2072657475726e65642e1065646974180114696e6465785d04011850617261496400010c6361704501013042616c616e63654f663c543e00013066697273745f706572696f64350101404c65617365506572696f644f663c543e00012c6c6173745f706572696f64350101404c65617365506572696f644f663c543e00010c656e6435010144426c6f636b4e756d626572466f723c543e00012076657269666965726504014c4f7074696f6e3c4d756c74695369676e65723e00050cd0456469742074686520636f6e66696775726174696f6e20666f7220616e20696e2d70726f67726573732063726f77646c6f616e2e008843616e206f6e6c792062652063616c6c656420627920526f6f74206f726967696e2e206164645f6d656d6f080114696e646578f10201185061726149640001106d656d6f38011c5665633c75383e00060cec41646420616e206f7074696f6e616c206d656d6f20746f20616e206578697374696e672063726f77646c6f616e20636f6e747269627574696f6e2e002d014f726967696e206d757374206265205369676e65642c20616e64207468652075736572206d757374206861766520636f6e747269627574656420746f207468652063726f77646c6f616e2e10706f6b65040114696e646578f102011850617261496400070c74506f6b65207468652066756e6420696e746f20604e657752616973656000dc4f726967696e206d757374206265205369676e65642c20616e64207468652066756e6420686173206e6f6e2d7a65726f2072616973652e38636f6e747269627574655f616c6c080114696e6465785d0401185061726149640001247369676e61747572656d0401584f7074696f6e3c4d756c74695369676e61747572653e00080c6101436f6e7472696275746520796f757220656e746972652062616c616e636520746f20612063726f77642073616c652e20546869732077696c6c207472616e736665722074686520656e746972652062616c616e6365206f665101612075736572206f76657220746f2066756e6420612074657972636861696e20736c6f742e2049742077696c6c20626520776974686472617761626c65207768656e207468652063726f77646c6f616e206861737c656e64656420616e64207468652066756e64732061726520756e757365642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e650404184f7074696f6e0404540169040108104e6f6e6500000010536f6d650400690400000100006904083470657a73705f72756e74696d652c4d756c74695369676e65720001101c45643235353139040004013c656432353531393a3a5075626c69630000001c53723235353139040004013c737232353531393a3a5075626c696300010014456364736104005d02013465636473613a3a5075626c69630002000c45746804005d02014c65636473613a3a4b656363616b5075626c6963000300006d0404184f7074696f6e0404540171040108104e6f6e6500000010536f6d650400710400000100007104083470657a73705f72756e74696d65384d756c74695369676e61747572650001101c456432353531390400ad020148656432353531393a3a5369676e61747572650000001c537232353531390400ad020148737232353531393a3a5369676e617475726500010014456364736104000d03014065636473613a3a5369676e61747572650002000c45746804000d03015865636473613a3a4b656363616b5369676e6174757265000300007504106870657a6b7577695f72756e74696d655f74657972636861696e7320636f726574696d652470657a70616c6c65741043616c6c04045400011048726571756573745f636f72655f636f756e74040114636f756e74cd01010c7531360001185101526571756573742074686520636f6e66696775726174696f6e20746f206265207570646174656420776974682074686520737065636966696564206e756d626572206f6620636f7265732e205761726e696e673a510153696e63652074686973206f6e6c79207363686564756c6573206120636f6e66696775726174696f6e207570646174652c2069742074616b65732074776f2073657373696f6e7320746f20636f6d6520696e746f1c6566666563742e00982d20606f726967696e603a20526f6f74206f722074686520436f726574696d6520436861696e802d2060636f756e74603a20746f74616c206e756d626572206f6620636f72657348726571756573745f726576656e75655f61740401107768656e10012c426c6f636b4e756d62657200021061015265717565737420746f20636c61696d2074686520696e7374616e74616e656f757320636f726574696d652073616c657320726576656e7565207374617274696e672066726f6d2074686520626c6f636b206974207761735d016c61737420636c61696d656420756e74696c20616e6420757020746f2074686520626c6f636b207370656369666965642e2054686520636c61696d656420616d6f756e742076616c75652069732073656e74206261636b5101746f2074686520436f726574696d6520636861696e20696e206120606e6f746966795f726576656e756560206d6573736167652e204174207468652073616d652074696d652c2074686520616d6f756e742069738474656c65706f7274656420746f2074686520436f726574696d6520636861696e2e386372656469745f6163636f756e7408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0003002c61737369676e5f636f7265100110636f7265cd01013c42726f6b6572436f7265496e646578000114626567696e100144426c6f636b4e756d626572466f723c543e00012861737369676e6d656e747904018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e74ec01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e00042459015265636569766520696e737472756374696f6e732066726f6d20746865206045787465726e616c42726f6b65724f726967696e602c2064657461696c696e6720686f77206120737065636966696320636f72652069732c746f20626520757365642e002c506172616d65746572733a21012d606f726967696e603a20546865206045787465726e616c42726f6b65724f726967696e602c20617373756d656420746f2062652074686520636f726574696d6520636861696e2eac2d60636f7265603a2054686520636f726520746861742073686f756c64206265207363686564756c65642ed82d60626567696e603a20546865207374617274696e6720626c6f636b686569676874206f662074686520696e737472756374696f6e2ed42d6061737369676e6d656e74603a20486f772074686520626c6f636b73706163652073686f756c64206265207574696c697365642e59012d60656e645f68696e74603a20416e206f7074696f6e616c2068696e7420617320746f207768656e207468697320706172746963756c617220736574206f6620696e737472756374696f6e732077696c6c20656e642e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e79040000027d04007d0400000408810485040081040c4070657a70616c6c65745f62726f6b657248636f726574696d655f696e7465726661636538436f726541737369676e6d656e7400010c1049646c6500000010506f6f6c000100105461736b04001001185461736b49640002000085040c6870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d653050617274734f66353736303000000400cd01010c753136000089040c5070657a70616c6c65745f6d6967726174696f6e732470657a70616c6c65741043616c6c04045400011040666f7263655f7365745f637572736f72040118637572736f728d04014c4f7074696f6e3c437572736f724f663c543e3e0000145d01416c6c6f777320726f6f7420746f20736574206120637572736f7220746f20666f72636566756c6c792073746172742c2073746f70206f7220666f727761726420746865206d6967726174696f6e2070726f636573732e00490153686f756c64206e6f726d616c6c79206e6f74206265206e656564656420616e64206973206f6e6c7920696e20706c61636520617320656d657267656e6379206d6561737572652e204e6f74652074686174050172657374617274696e6720746865206d6967726174696f6e2070726f6365737320696e2074686973206d616e6e65722077696c6c206e6f742063616c6c207468652d015b604d6967726174696f6e53746174757348616e646c65723a3a73746172746564605d20686f6f6b206f7220656d697420616e2060557067726164655374617274656460206576656e742e5c666f7263655f7365745f6163746976655f637572736f720c0114696e64657810010c753332000130696e6e65725f637572736f729d0401584f7074696f6e3c526177437572736f724f663c543e3e000128737461727465645f6174ec01644f7074696f6e3c426c6f636b4e756d626572466f723c543e3e0001185901416c6c6f777320726f6f7420746f2073657420616e2061637469766520637572736f7220746f20666f72636566756c6c792073746172742f666f727761726420746865206d6967726174696f6e2070726f636573732e0045015468697320697320616e20656467652d636173652076657273696f6e206f66205b6053656c663a3a666f7263655f7365745f637572736f72605d207468617420616c6c6f777320746f2073657420746865610160737461727465645f6174602076616c756520746f20746865206e65787420626c6f636b206e756d6265722e204f7468657277697365207468697320776f756c64206e6f7420626520706f737369626c652c2073696e6365450160666f7263655f7365745f637572736f72602074616b657320616e206162736f6c75746520626c6f636b206e756d6265722e2053657474696e672060737461727465645f61746020746f20604e6f6e65600101696e646963617465732074686174207468652063757272656e7420626c6f636b206e756d62657220706c7573206f6e652073686f756c6420626520757365642e48666f7263655f6f6e626f6172645f6d626d73000210a0466f7263657320746865206f6e626f617264696e67206f6620746865206d6967726174696f6e732e005d01546869732070726f636573732068617070656e73206175746f6d61746963616c6c79206f6e20612072756e74696d6520757067726164652e20497420697320696e20706c61636520617320616e20656d657267656e6379fc6d6561737572656d656e742e2054686520637572736f72206e6565647320746f20626520604e6f6e656020666f72207468697320746f20737563636565642e38636c6561725f686973746f72696304012073656c6563746f72a10401a0486973746f726963436c65616e757053656c6563746f723c4964656e7469666965724f663c543e3e00031468436c65617273207468652060486973746f72696360207365742e000d01606d61705f637572736f7260206d7573742062652073657420746f20746865206c6173742076616c75652074686174207761732072657475726e6564206279207468655d0160486973746f726963436c656172656460206576656e742e205468652066697273742074696d6520604e6f6e65602063616e20626520757365642e20606c696d697460206d7573742062652063686f73656e20696e2061a877617920746861742077696c6c20726573756c7420696e20612073656e7369626c65207765696768742e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e8d0404184f7074696f6e0404540191040108104e6f6e6500000010536f6d650400910400000100009104085070657a70616c6c65745f6d6967726174696f6e733c4d6967726174696f6e437572736f720818437572736f720195042c426c6f636b4e756d6265720110010818416374697665040099040184416374697665437572736f723c437572736f722c20426c6f636b4e756d6265723e00000014537475636b0001000095040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e00009904085070657a70616c6c65745f6d6967726174696f6e7330416374697665437572736f720818437572736f720195042c426c6f636b4e756d6265720110000c0114696e64657810010c753332000130696e6e65725f637572736f729d0401384f7074696f6e3c437572736f723e000128737461727465645f617410012c426c6f636b4e756d62657200009d0404184f7074696f6e0404540195040108104e6f6e6500000010536f6d65040095040000010000a104085070657a70616c6c65745f6d6967726174696f6e735c486973746f726963436c65616e757053656c6563746f720408496401a50401082053706563696669630400a904011c5665633c49643e0000002057696c64636172640801146c696d6974ec012c4f7074696f6e3c7533323e00013c70726576696f75735f637572736f72ad04013c4f7074696f6e3c5665633c75383e3e00010000a5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a904000002a50400ad0404184f7074696f6e04045401380108104e6f6e6500000010536f6d650400380000010000b1040c3470657a70616c6c65745f78636d2470657a70616c6c65741043616c6c0404540001441073656e6408011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e00011c6d657373616765b5040154426f783c56657273696f6e656458636d3c28293e3e0000003c74656c65706f72745f61737365747310011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279c5010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473e5050150426f783c56657273696f6e65644173736574733e0001306665655f61737365745f6964e9050154426f783c56657273696f6e6564417373657449643e000144110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e001d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f74656c65706f72745f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f664d01696420606665655f61737365745f6964602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202054657972636861696e282e2e295d6020746f2073656e642066726f6d2074657972636861696e20746f2074657972636861696e2c206f7220605b54657972636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2074657972636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e45012d20606665655f61737365745f6964603a204964206f66207468652061737365742066726f6d2060617373657473602077686963682073686f756c64206265207573656420746f2070617920666565732e5c726573657276655f7472616e736665725f61737365747310011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279c5010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473e5050150426f783c56657273696f6e65644173736574733e0001306665655f61737365745f6964e9050154426f783c56657273696f6e6564417373657449643e0002745d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e003d012a2a546869732066756e6374696f6e20697320646570726563617465643a2055736520606c696d697465645f726573657276655f7472616e736665725f6173736574736020696e73746561642e2a2a005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f664d01696420606665655f61737365745f6964602e2054686520776569676874206c696d697420666f722066656573206973206e6f742070726f766964656420616e64207468757320697320756e6c696d697465642cb47769746820616c6c20666565732074616b656e206173206e65656465642066726f6d207468652061737365742e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202054657972636861696e282e2e295d6020746f2073656e642066726f6d2074657972636861696e20746f2074657972636861696e2c206f7220605b54657972636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2074657972636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e45012d20606665655f61737365745f6964603a204964206f66207468652061737365742066726f6d2060617373657473602077686963682073686f756c64206265207573656420746f2070617920666565732e1c6578656375746508011c6d657373616765ed0501b4426f783c56657273696f6e656458636d3c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e3e0001286d61785f776569676874280118576569676874000320d04578656375746520616e2058434d206d6573736167652066726f6d2061206c6f63616c2c207369676e65642c206f726967696e2e004d01416e206576656e74206973206465706f736974656420696e6469636174696e67207768657468657220606d73676020636f756c6420626520657865637574656420636f6d706c6574656c79206f72206f6e6c79287061727469616c6c792e005d014e6f206d6f7265207468616e20606d61785f776569676874602077696c6c206265207573656420696e2069747320617474656d7074656420657865637574696f6e2e2049662074686973206973206c657373207468616e4101746865206d6178696d756d20616d6f756e74206f6620776569676874207468617420746865206d65737361676520636f756c642074616b6520746f2062652065786563757465642c207468656e206e6f7c657865637574696f6e20617474656d70742077696c6c206265206d6164652e44666f7263655f78636d5f76657273696f6e0801206c6f636174696f6e8d010134426f783c4c6f636174696f6e3e00011c76657273696f6e10012858636d56657273696f6e00041849014578746f6c6c2074686174206120706172746963756c61722064657374696e6174696f6e2063616e20626520636f6d6d756e6963617465642077697468207468726f756768206120706172746963756c61723c76657273696f6e206f662058434d2e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed82d20606c6f636174696f6e603a205468652064657374696e6174696f6e2074686174206973206265696e67206465736372696265642e11012d206078636d5f76657273696f6e603a20546865206c61746573742076657273696f6e206f662058434d207468617420606c6f636174696f6e6020737570706f7274732e64666f7263655f64656661756c745f78636d5f76657273696f6e0401446d617962655f78636d5f76657273696f6eec01484f7074696f6e3c58636d56657273696f6e3e0005145901536574206120736166652058434d2076657273696f6e20287468652076657273696f6e20746861742058434d2073686f756c6420626520656e636f646564207769746820696620746865206d6f737420726563656e74b476657273696f6e20612064657374696e6174696f6e2063616e2061636365707420697320756e6b6e6f776e292e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e39012d20606d617962655f78636d5f76657273696f6e603a205468652064656661756c742058434d20656e636f64696e672076657273696f6e2c206f7220604e6f6e656020746f2064697361626c652e78666f7263655f7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ec5010158426f783c56657273696f6e65644c6f636174696f6e3e000610390141736b2061206c6f636174696f6e20746f206e6f7469667920757320726567617264696e672074686569722058434d2076657273696f6e20616e6420616e79206368616e67657320746f2069742e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e59012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f2077686963682077652073686f756c642073756273637269626520666f722058434d2076657273696f6e206e6f74696669636174696f6e732e80666f7263655f756e7375627363726962655f76657273696f6e5f6e6f746966790401206c6f636174696f6ec5010158426f783c56657273696f6e65644c6f636174696f6e3e0007184901526571756972652074686174206120706172746963756c61722064657374696e6174696f6e2073686f756c64206e6f206c6f6e676572206e6f7469667920757320726567617264696e6720616e792058434d4076657273696f6e206368616e6765732e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2e3d012d20606c6f636174696f6e603a20546865206c6f636174696f6e20746f207768696368207765206172652063757272656e746c79207375627363726962656420666f722058434d2076657273696f6ea820206e6f74696669636174696f6e73207768696368207765206e6f206c6f6e676572206465736972652e7c6c696d697465645f726573657276655f7472616e736665725f61737365747314011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279c5010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473e5050150426f783c56657273696f6e65644173736574733e0001306665655f61737365745f6964e9050154426f783c56657273696f6e6564417373657449643e0001307765696768745f6c696d69742105012c5765696768744c696d69740008745d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2c7864657374696e6174696f6e206f722072656d6f746520726573657276652e003d016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e20616e64206d6179206e6f742062652074656c65706f727461626c6520746f206064657374602e4d01202d2060617373657473602068617665206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5501202d20606173736574736020686176652064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e6101202d20606173736574736020686176652072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f7665610120202072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f20606465737460f4202020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f664d01696420606665655f61737365745f6964602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202054657972636861696e282e2e295d6020746f2073656e642066726f6d2074657972636861696e20746f2074657972636861696e2c206f7220605b54657972636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2074657972636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e45012d20606665655f61737365745f6964603a204964206f66207468652061737365742066726f6d2060617373657473602077686963682073686f756c64206265207573656420746f2070617920666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e5c6c696d697465645f74656c65706f72745f61737365747314011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279c5010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473e5050150426f783c56657273696f6e65644173736574733e0001306665655f61737365745f6964e9050154426f783c56657273696f6e6564417373657449643e0001307765696768745f6c696d69742105012c5765696768744c696d6974000944110154656c65706f727420736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f20736f6d652064657374696e6174696f6e20636861696e2e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f664d01696420606665655f61737365745f6964602c20757020746f20656e6f75676820746f2070617920666f7220607765696768745f6c696d697460206f66207765696768742e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202054657972636861696e282e2e295d6020746f2073656e642066726f6d2074657972636861696e20746f2074657972636861696e2c206f7220605b54657972636861696e282e2e295d6020746f2073656e642066726f6d54202072656c617920746f2074657972636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865682020666565206f6e207468652060646573746020636861696e2e45012d20606665655f61737365745f6964603a204964206f66207468652061737365742066726f6d2060617373657473602077686963682073686f756c64206265207573656420746f2070617920666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e40666f7263655f73757370656e73696f6e04012473757370656e646564200110626f6f6c000a10f4536574206f7220756e7365742074686520676c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e00dc2d20606f726967696e603a204d75737420626520616e206f726967696e207370656369666965642062792041646d696e4f726967696e2ed02d206073757370656e646564603a2060747275656020746f2073757370656e642c206066616c73656020746f20726573756d652e3c7472616e736665725f61737365747314011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e00012c62656e6566696369617279c5010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473e5050150426f783c56657273696f6e65644173736574733e0001306665655f61737365745f6964e9050154426f783c56657273696f6e6564417373657449643e0001307765696768745f6c696d69742105012c5765696768744c696d6974000b805d015472616e7366657220736f6d65206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207468726f756768207468656972206c6f63616c2cd064657374696e6174696f6e206f722072656d6f746520726573657276652c206f72207468726f7567682074656c65706f7274732e005101466565207061796d656e74206f6e207468652064657374696e6174696f6e2073696465206973206d6164652066726f6d2074686520617373657420696e2074686520606173736574736020766563746f72206f662101696420606665655f61737365745f696460202868656e636520726566657272656420746f20617320606665657360292c20757020746f20656e6f75676820746f2070617920666f724101607765696768745f6c696d697460206f66207765696768742e204966206d6f726520776569676874206973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865dc6f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e006101606173736574736020286578636c7564696e672060666565736029206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206f74686572776973652062652074656c65706f727461626c65b0746f206064657374602c206e6f206c696d69746174696f6e7320696d706f736564206f6e206066656573602e4d01202d20666f72206c6f63616c20726573657276653a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e20636861696e20616e644d01202020666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f442020206062656e6566696369617279602e6101202d20666f722064657374696e6174696f6e20726573657276653a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f2060646573746020636861696e5901202020746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64206465706f736974207468656d50202020746f206062656e6566696369617279602e5d01202d20666f722072656d6f746520726573657276653a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f207265736572766520636861696e20746f206d6f76652072657365727665735d0120202066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f746865722058434d20746f2060646573746020746f206d696e74d4202020616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e5101202d20666f722074656c65706f7274733a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746f206d696e742f74656c65706f7274b020202061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e2d012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c792062652060583228506172656e742c5501202054657972636861696e282e2e29296020746f2073656e642066726f6d2074657972636861696e20746f2074657972636861696e2c206f72206058312854657972636861696e282e2e29296020746f2073656e6468202066726f6d2072656c617920746f2074657972636861696e2e55012d206062656e6566696369617279603a20412062656e6566696369617279206c6f636174696f6e20666f72207468652061737365747320696e2074686520636f6e74657874206f66206064657374602e2057696c6c98202067656e6572616c6c7920626520616e20604163636f756e7449643332602076616c75652e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e45012d20606665655f61737365745f6964603a204964206f66207468652061737365742066726f6d2060617373657473602077686963682073686f756c64206265207573656420746f2070617920666565732e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e30636c61696d5f617373657473080118617373657473e5050150426f783c56657273696f6e65644173736574733e00012c62656e6566696369617279c5010158426f783c56657273696f6e65644c6f636174696f6e3e000c186101436c61696d73206173736574732074726170706564206f6e20746869732070657a70616c6c65742062656361757365206f66206c6566746f7665722061737365747320647572696e672058434d20657865637574696f6e2e00ac2d20606f726967696e603a20416e796f6e652063616e2063616c6c20746869732065787472696e7369632e5d012d2060617373657473603a20546865206578616374206173736574732074686174207765726520747261707065642e20557365207468652076657273696f6e20746f207370656369667920776861742076657273696f6e9877617320746865206c6174657374207768656e2074686579207765726520747261707065642e45012d206062656e6566696369617279603a20546865206c6f636174696f6e2f6163636f756e742077686572652074686520636c61696d6564206173736574732077696c6c206265206465706f73697465642e8c7472616e736665725f6173736574735f7573696e675f747970655f616e645f7468656e1c011064657374c5010158426f783c56657273696f6e65644c6f636174696f6e3e000118617373657473e5050150426f783c56657273696f6e65644173736574733e0001506173736574735f7472616e736665725f7479706519060144426f783c5472616e73666572547970653e00013872656d6f74655f666565735f6964e9050154426f783c56657273696f6e6564417373657449643e000148666565735f7472616e736665725f7479706519060144426f783c5472616e73666572547970653e000148637573746f6d5f78636d5f6f6e5f64657374b5040154426f783c56657273696f6e656458636d3c28293e3e0001307765696768745f6c696d69742105012c5765696768744c696d6974000dc055015472616e73666572206173736574732066726f6d20746865206c6f63616c20636861696e20746f207468652064657374696e6174696f6e20636861696e207573696e67206578706c69636974207472616e7366657268747970657320666f722061737365747320616e6420666565732e0059016061737365747360206d75737420686176652073616d652072657365727665206c6f636174696f6e206f72206d61792062652074656c65706f727461626c6520746f206064657374602e2043616c6c6572206d757374ec70726f766964652074686520606173736574735f7472616e736665725f747970656020746f206265207573656420666f722060617373657473603a5101202d20605472616e73666572547970653a3a4c6f63616c52657365727665603a207472616e736665722061737365747320746f20736f7665726569676e206163636f756e74206f662064657374696e6174696f6e4d01202020636861696e20616e6420666f72776172642061206e6f74696669636174696f6e2058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365646c20202061737365747320746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a44657374696e6174696f6e52657365727665603a206275726e206c6f63616c2061737365747320616e6420666f72776172642061206e6f74696669636174696f6e20746f590120202060646573746020636861696e20746f207769746864726177207468652072657365727665206173736574732066726f6d207468697320636861696e277320736f7665726569676e206163636f756e7420616e64842020206465706f736974207468656d20746f206062656e6566696369617279602e5901202d20605472616e73666572547970653a3a52656d6f746552657365727665287265736572766529603a206275726e206c6f63616c206173736574732c20666f72776172642058434d20746f206072657365727665606101202020636861696e20746f206d6f76652072657365727665732066726f6d207468697320636861696e277320534120746f2060646573746020636861696e27732053412c20616e6420666f727761726420616e6f74686572550120202058434d20746f2060646573746020746f206d696e7420616e64206465706f73697420726573657276652d62617365642061737365747320746f206062656e6566696369617279602e205479706963616c6c79942020207468652072656d6f746520607265736572766560206973204173736574204875622e4501202d20605472616e73666572547970653a3a54656c65706f7274603a206275726e206c6f63616c2061737365747320616e6420666f72776172642058434d20746f2060646573746020636861696e20746fe82020206d696e742f74656c65706f72742061737365747320616e64206465706f736974207468656d20746f206062656e6566696369617279602e0055014f6e207468652064657374696e6174696f6e20636861696e2c2061732077656c6c20617320616e7920696e7465726d65646961727920686f70732c2060427579457865637574696f6e60206973207573656420746f210162757920657865637574696f6e207573696e67207472616e73666572726564206061737365747360206964656e746966696564206279206072656d6f74655f666565735f6964602e59014d616b65207375726520656e6f756768206f662074686520737065636966696564206072656d6f74655f666565735f69646020617373657420697320696e636c7564656420696e2074686520676976656e206c69737461016f662060617373657473602e206072656d6f74655f666565735f6964602073686f756c6420626520656e6f75676820746f2070617920666f7220607765696768745f6c696d6974602e204966206d6f72652077656967687459016973206e6565646564207468616e20607765696768745f6c696d6974602c207468656e20746865206f7065726174696f6e2077696c6c206661696c20616e64207468652073656e7420617373657473206d6179206265206174207269736b2e0045016072656d6f74655f666565735f696460206d61792075736520646966666572656e74207472616e736665722074797065207468616e2072657374206f6620606173736574736020616e642063616e2062659c737065636966696564207468726f7567682060666565735f7472616e736665725f74797065602e0061015468652063616c6c6572206e6565647320746f207370656369667920776861742073686f756c642068617070656e20746f20746865207472616e7366657272656420617373657473206f6e6365207468657920726561636841017468652060646573746020636861696e2e205468697320697320646f6e65207468726f756768207468652060637573746f6d5f78636d5f6f6e5f646573746020706172616d657465722c207768696368fc636f6e7461696e732074686520696e737472756374696f6e7320746f2065786563757465206f6e2060646573746020617320612066696e616c20737465702e7c20205468697320697320757375616c6c792061732073696d706c652061733a510120206058636d28766563215b4465706f7369744173736574207b206173736574733a2057696c6428416c6c436f756e746564286173736574732e6c656e282929292c2062656e6566696369617279207d5d29602c3101202062757420636f756c6420626520736f6d657468696e67206d6f72652065786f746963206c696b652073656e64696e6720746865206061737365747360206576656e20667572746865722e0029012d20606f726967696e603a204d7573742062652063617061626c65206f66207769746864726177696e672074686520606173736574736020616e6420657865637574696e672058434d2e25012d206064657374603a2044657374696e6174696f6e20636f6e7465787420666f7220746865206173736574732e2057696c6c207479706963616c6c7920626520605b506172656e742c6101202054657972636861696e282e2e295d6020746f2073656e642066726f6d2074657972636861696e20746f2074657972636861696e2c206f7220605b54657972636861696e282e2e295d6020746f2073656e642066726f6d3d01202072656c617920746f2074657972636861696e2c206f72206028706172656e74733a20322c2028476c6f62616c436f6e73656e737573282e2e292c202e2e29296020746f2073656e642066726f6df4202074657972636861696e206163726f737320612062726964676520746f20616e6f746865722065636f73797374656d2064657374696e6174696f6e2e59012d2060617373657473603a205468652061737365747320746f2062652077697468647261776e2e20546869732073686f756c6420696e636c7564652074686520617373657473207573656420746f2070617920746865c82020666565206f6e20746865206064657374602028616e6420706f737369626c7920726573657276652920636861696e732e3d012d20606173736574735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e73666572207468652060617373657473602e21012d206072656d6f74655f666565735f6964603a204f6e65206f662074686520696e636c7564656420606173736574736020746f206265207573656420746f2070617920666565732e49012d2060666565735f7472616e736665725f74797065603a205468652058434d20605472616e736665725479706560207573656420746f207472616e736665722074686520606665657360206173736574732e59012d2060637573746f6d5f78636d5f6f6e5f64657374603a205468652058434d20746f206265206578656375746564206f6e2060646573746020636861696e20617320746865206c6173742073746570206f6620746865590120207472616e736665722c20776869636820616c736f2064657465726d696e657320776861742068617070656e7320746f2074686520617373657473206f6e207468652064657374696e6174696f6e20636861696e2e45012d20607765696768745f6c696d6974603a205468652072656d6f74652d7369646520776569676874206c696d69742c20696620616e792c20666f72207468652058434d206665652070757263686173652e506164645f617574686f72697a65645f616c69617308011c616c6961736572c5010158426f783c56657273696f6e65644c6f636174696f6e3e00011c657870697265731d06012c4f7074696f6e3c7536343e000e2c5d01417574686f72697a6520616e6f746865722060616c696173657260206c6f636174696f6e20746f20616c69617320696e746f20746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e29015468652060616c696173657260206973206f6e6c7920617574686f72697a656420756e74696c207468652070726f766964656420606578706972796020626c6f636b206e756d6265722e49015468652063616c6c2063616e20616c736f206265207573656420666f7220612070726576696f75736c7920617574686f72697a656420616c69617320696e206f7264657220746f207570646174652069747358606578706972796020626c6f636b206e756d6265722e005101557375616c6c792075736566756c20746f20616c6c6f7720796f7572206c6f63616c206163636f756e7420746f20626520616c696173656420696e746f2066726f6d20612072656d6f7465206c6f636174696f6ef4616c736f20756e64657220796f757220636f6e74726f6c20286c696b6520796f7572206163636f756e74206f6e20616e6f7468657220636861696e292e0051015741524e494e473a206d616b652073757265207468652063616c6c657220606f726967696e602028796f752920747275737473207468652060616c696173657260206c6f636174696f6e20746f2061637420696e590174686569722f796f7572206e616d652e204f6e636520617574686f72697a6564207573696e6720746869732063616c6c2c207468652060616c6961736572602063616e20667265656c7920696d706572736f6e617465d4606f726967696e6020696e2058434d2070726f6772616d73206578656375746564206f6e20746865206c6f63616c20636861696e2e5c72656d6f76655f617574686f72697a65645f616c69617304011c616c6961736572c5010158426f783c56657273696f6e65644c6f636174696f6e3e000f085d0152656d6f766520612070726576696f75736c7920617574686f72697a65642060616c6961736572602066726f6d20746865206c697374206f66206c6f636174696f6e7320746861742063616e20616c69617320696e746f90746865206c6f63616c20606f726967696e60206d616b696e6720746869732063616c6c2e7472656d6f76655f616c6c5f617574686f72697a65645f616c6961736573001008490152656d6f766520616c6c2070726576696f75736c7920617574686f72697a65642060616c6961736572607320746861742063616e20616c69617320696e746f20746865206c6f63616c20606f726967696e60446d616b696e6720746869732063616c6c2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732eb504080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856330400b904015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404002505015076343a3a58636d3c52756e74696d6543616c6c3e00040008563504006d05015076353a3a58636d3c52756e74696d6543616c6c3e00050000b9040c0c78636d0876330c58636d041043616c6c00000400bd0401585665633c496e737472756374696f6e3c43616c6c3e3e0000bd04000002c10400c1040c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400c504012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400c504012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400c504012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365dd040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572050501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473c504012c4d756c746941737365747300012c62656e6566696369617279290101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473c504012c4d756c746941737365747300011064657374290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64090501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c0d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04002d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400110501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473150501404d756c7469417373657446696c74657200012c62656e6566696369617279290101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473150501404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e000e003445786368616e676541737365740c011067697665150501404d756c7469417373657446696c74657200011077616e74c504012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473150501404d756c7469417373657446696c74657200011c72657365727665290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473150501404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f110501445175657279526573706f6e7365496e666f000118617373657473150501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573cd0401284d756c746941737365740001307765696768745f6c696d69742105012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400b904012458636d3c43616c6c3e0015002c536574417070656e6469780400b904012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473c504012c4d756c74694173736574730001187469636b6574290101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400c504012c4d756c7469417373657473001c002c45787065637441737365740400c504012c4d756c7469417373657473001d00304578706563744f726967696e0400050501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400e10401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400fd0401384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f110501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465783501010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f723501010c75333200013c6d696e5f63726174655f6d696e6f723501010c753332002200505265706f72745472616e736163745374617475730400110501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400310101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b3d0101244e6574776f726b496400012c64657374696e6174696f6e2d010154496e746572696f724d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e002600244c6f636b41737365740801146173736574cd0401284d756c74694173736574000120756e6c6f636b6572290101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574cd0401284d756c74694173736574000118746172676574290101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574cd0401284d756c746941737365740001146f776e6572290101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574cd0401284d756c746941737365740001186c6f636b6572290101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400290101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742105012c5765696768744c696d6974000130636865636b5f6f726967696e050501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000c504100c78636d087633286d756c746961737365742c4d756c746941737365747300000400c904013c5665633c4d756c746941737365743e0000c904000002cd0400cd04100c78636d087633286d756c74696173736574284d756c74694173736574000008010869645101011c4173736574496400010c66756ed104012c46756e676962696c6974790000d104100c78636d087633286d756c746961737365742c46756e676962696c6974790001082046756e6769626c65040045010110753132380000002c4e6f6e46756e6769626c650400d50401344173736574496e7374616e636500010000d504100c78636d087633286d756c74696173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400450101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400d904011c5b75383b20385d0003001c417272617931360400d401205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d00050000d904000003080000000800dd040c0c78636d08763320526573706f6e7365000118104e756c6c000000184173736574730400c504012c4d756c74694173736574730001003c457865637574696f6e526573756c740400e10401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f0400ed040198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400fd0401384d617962654572726f72436f646500050000e10404184f7074696f6e04045401e5040108104e6f6e6500000010536f6d650400e5040000010000e5040000040810e90400e904100c78636d08763318747261697473144572726f720001a0204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c650022004c556e68616e646c656458636d56657273696f6e002300485765696768744c696d69745265616368656404002801185765696768740024001c426172726965720025004c5765696768744e6f74436f6d70757461626c650026004445786365656473537461636b4c696d697400270000ed040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f104045300000400f90401185665633c543e0000f1040c0c78636d0876332850616c6c6574496e666f0000180114696e6465783501010c7533320001106e616d65f5040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65f5040180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f723501010c7533320001146d696e6f723501010c75333200011470617463683501010c7533320000f5040c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000f904000002f10400fd040c0c78636d087633384d617962654572726f72436f646500010c1c53756363657373000000144572726f7204000105018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e000100385472756e63617465644572726f7204000105018c426f756e6465645665633c75382c204d617844697370617463684572726f724c656e3e0002000001050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000050504184f7074696f6e0404540129010108104e6f6e6500000010536f6d6504002901000001000009050c0c78636d087633284f726967696e4b696e64000110184e617469766500000040536f7665726569676e4163636f756e74000100245375706572757365720002000c58636d000300000d050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000011050c0c78636d087633445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e290101344d756c74694c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400001505100c78636d087633286d756c74696173736574404d756c7469417373657446696c74657200010820446566696e6974650400c504012c4d756c74694173736574730000001057696c6404001905013857696c644d756c74694173736574000100001905100c78636d087633286d756c746961737365743857696c644d756c746941737365740001100c416c6c00000014416c6c4f6608010869645101011c4173736574496400010c66756e1d05013c57696c6446756e676962696c69747900010028416c6c436f756e74656404003501010c75333200020030416c6c4f66436f756e7465640c010869645101011c4173736574496400010c66756e1d05013c57696c6446756e676962696c697479000114636f756e743501010c753332000300001d05100c78636d087633286d756c746961737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c650001000021050c0c78636d0876332c5765696768744c696d697400010824556e6c696d697465640000001c4c696d6974656404002801185765696768740001000025050c3870657a73746167696e675f78636d0876340c58636d041043616c6c00000400290501585665633c496e737472756374696f6e3c43616c6c3e3e000029050000022d05002d050c3870657a73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040031050118417373657473000000545265736572766541737365744465706f7369746564040031050118417373657473000100585265636569766554656c65706f727465644173736574040031050118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736545050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572590501404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574733105011841737365747300012c62656e6566696369617279550101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574733105011841737365747300011064657374550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64090501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6c0d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040059010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f7204005d0501445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736105012c417373657446696c74657200012c62656e6566696369617279550101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736105012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e000e003445786368616e676541737365740c0110676976656105012c417373657446696c74657200011077616e743105011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736105012c417373657446696c74657200011c72657365727665550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736105012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f5d0501445175657279526573706f6e7365496e666f0001186173736574736105012c417373657446696c74657200120030427579457865637574696f6e080110666565733905011441737365740001307765696768745f6c696d69742105012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204002505012458636d3c43616c6c3e0015002c536574417070656e64697804002505012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473310501184173736574730001187469636b6574550101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040031050118417373657473001c002c4578706563744173736574040031050118417373657473001d00304578706563744f726967696e0400590501404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400e10401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400fd0401384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f5d0501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465783501010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f723501010c75333200013c6d696e5f63726174655f6d696e6f723501010c753332002200505265706f72745472616e7361637453746174757304005d0501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400610101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b690101244e6574776f726b496400012c64657374696e6174696f6e59010140496e746572696f724c6f636174696f6e00010c78636d2505011c58636d3c28293e002600244c6f636b41737365740801146173736574390501144173736574000120756e6c6f636b6572550101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574390501144173736574000118746172676574550101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365743905011441737365740001146f776e6572550101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365743905011441737365740001186c6f636b6572550101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400550101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742105012c5765696768744c696d6974000130636865636b5f6f726967696e590501404f7074696f6e3c4c6f636174696f6e3e002f00003105103870657a73746167696e675f78636d0876341461737365741841737365747300000400350501285665633c41737365743e000035050000023905003905103870657a73746167696e675f78636d087634146173736574144173736574000008010869648901011c4173736574496400010c66756e3d05012c46756e676962696c69747900003d05103870657a73746167696e675f78636d0876341461737365742c46756e676962696c6974790001082046756e6769626c65040045010110753132380000002c4e6f6e46756e6769626c650400410501344173736574496e7374616e6365000100004105103870657a73746167696e675f78636d087634146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400450101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400d904011c5b75383b20385d0003001c417272617931360400d401205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d0005000045050c3870657a73746167696e675f78636d08763420526573706f6e7365000118104e756c6c000000184173736574730400310501184173736574730001003c457865637574696f6e526573756c740400e10401504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f040049050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400fd0401384d617962654572726f72436f64650005000049050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454014d05045300000400550501185665633c543e00004d050c3870657a73746167696e675f78636d0876342850616c6c6574496e666f0000180114696e6465783501010c7533320001106e616d6551050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d6551050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f723501010c7533320001146d696e6f723501010c75333200011470617463683501010c753332000051050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000055050000024d0500590504184f7074696f6e0404540155010108104e6f6e6500000010536f6d650400550100000100005d050c3870657a73746167696e675f78636d087634445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e550101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f77656967687428011857656967687400006105103870657a73746167696e675f78636d0876341461737365742c417373657446696c74657200010820446566696e6974650400310501184173736574730000001057696c6404006505012457696c644173736574000100006505103870657a73746167696e675f78636d0876341461737365742457696c6441737365740001100c416c6c00000014416c6c4f6608010869648901011c4173736574496400010c66756e6905013c57696c6446756e676962696c69747900010028416c6c436f756e74656404003501010c75333200020030416c6c4f66436f756e7465640c010869648901011c4173736574496400010c66756e6905013c57696c6446756e676962696c697479000114636f756e743501010c753332000300006905103870657a73746167696e675f78636d0876341461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c65000100006d050c3870657a73746167696e675f78636d0876350c58636d041043616c6c00000400710501585665633c496e737472756374696f6e3c43616c6c3e3e0000710500000275050075050c3870657a73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d03457697468647261774173736574040079050118417373657473000000545265736572766541737365744465706f7369746564040079050118417373657473000100585265636569766554656c65706f727465644173736574040079050118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73658d050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572ad0501404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574737905011841737365747300012c62656e65666963696172798d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c011861737365747379050118417373657473000110646573748d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64090501284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874b10501384f7074696f6e3c5765696768743e00011063616c6c0d05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040091010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400b50501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473b905012c417373657446696c74657200012c62656e65666963696172798d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473b905012c417373657446696c746572000110646573748d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e000e003445786368616e676541737365740c011067697665b905012c417373657446696c74657200011077616e747905011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473b905012c417373657446696c74657200011c726573657276658d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473b905012c417373657446696c746572000110646573748d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fb50501445175657279526573706f6e7365496e666f000118617373657473b905012c417373657446696c74657200120030427579457865637574696f6e080110666565738105011441737365740001307765696768745f6c696d69742105012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204006d05012458636d3c43616c6c3e0015002c536574417070656e64697804006d05012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473790501184173736574730001187469636b65748d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040079050118417373657473001c002c4578706563744173736574040079050118417373657473001d00304578706563744f726967696e0400ad0501404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400910501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400fd0401384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fb50501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465783501010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f723501010c75333200013c6d696e5f63726174655f6d696e6f723501010c753332002200505265706f72745472616e736163745374617475730400b50501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400990101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726ba10101244e6574776f726b496400012c64657374696e6174696f6e91010140496e746572696f724c6f636174696f6e00010c78636d6d05011c58636d3c28293e002600244c6f636b41737365740801146173736574810501144173736574000120756e6c6f636b65728d0101204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365748105011441737365740001187461726765748d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365748105011441737365740001146f776e65728d0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365748105011441737365740001186c6f636b65728d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04008d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742105012c5765696768744c696d6974000130636865636b5f6f726967696ead0501404f7074696f6e3c4c6f636174696f6e3e002f001c50617946656573040114617373657481050114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e8d0101204c6f636174696f6e00012c72656d6f74655f66656573c505016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473cd0501e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636d6d05011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696ed50501604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636d6d05012458636d3c43616c6c3e0032002053657448696e747304011468696e7473d9050184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e003300007905103870657a73746167696e675f78636d08763514617373657418417373657473000004007d0501285665633c41737365743e00007d050000028105008105103870657a73746167696e675f78636d08763514617373657414417373657400000801086964c101011c4173736574496400010c66756e8505012c46756e676962696c69747900008505103870657a73746167696e675f78636d0876351461737365742c46756e676962696c6974790001082046756e6769626c65040045010110753132380000002c4e6f6e46756e6769626c650400890501344173736574496e7374616e6365000100008905103870657a73746167696e675f78636d087635146173736574344173736574496e7374616e636500011824556e646566696e656400000014496e6465780400450101107531323800010018417272617934040048011c5b75383b20345d000200184172726179380400d904011c5b75383b20385d0003001c417272617931360400d401205b75383b2031365d0004001c4172726179333204000401205b75383b2033325d000500008d050c3870657a73746167696e675f78636d08763520526573706f6e7365000118104e756c6c000000184173736574730400790501184173736574730001003c457865637574696f6e526573756c740400910501504f7074696f6e3c287533322c204572726f72293e0002001c56657273696f6e040010013873757065723a3a56657273696f6e0003002c50616c6c657473496e666f04009d050198426f756e6465645665633c50616c6c6574496e666f2c204d617850616c6c657473496e666f3e000400384469737061746368526573756c740400fd0401384d617962654572726f72436f646500050000910504184f7074696f6e0404540195050108104e6f6e6500000010536f6d65040095050000010000950500000408109905009905100c78636d08763518747261697473144572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170040030010c753634001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d69745265616368656404002801185765696768740025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d6974002800009d050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401a105045300000400a90501185665633c543e0000a1050c3870657a73746167696e675f78636d0876352850616c6c6574496e666f0000180114696e6465783501010c7533320001106e616d65a5050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e00012c6d6f64756c655f6e616d65a5050180426f756e6465645665633c75382c204d617850616c6c65744e616d654c656e3e0001146d616a6f723501010c7533320001146d696e6f723501010c75333200011470617463683501010c7533320000a5050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a905000002a10500ad0504184f7074696f6e040454018d010108104e6f6e6500000010536f6d6504008d010000010000b10504184f7074696f6e04045401280108104e6f6e6500000010536f6d650400280000010000b5050c3870657a73746167696e675f78636d087635445175657279526573706f6e7365496e666f00000c012c64657374696e6174696f6e8d0101204c6f636174696f6e00012071756572795f69642c011c517565727949640001286d61785f7765696768742801185765696768740000b905103870657a73746167696e675f78636d0876351461737365742c417373657446696c74657200010820446566696e6974650400790501184173736574730000001057696c640400bd05012457696c64417373657400010000bd05103870657a73746167696e675f78636d0876351461737365742457696c6441737365740001100c416c6c00000014416c6c4f660801086964c101011c4173736574496400010c66756ec105013c57696c6446756e676962696c69747900010028416c6c436f756e74656404003501010c75333200020030416c6c4f66436f756e7465640c01086964c101011c4173736574496400010c66756ec105013c57696c6446756e676962696c697479000114636f756e743501010c75333200030000c105103870657a73746167696e675f78636d0876351461737365743c57696c6446756e676962696c6974790001082046756e6769626c650000002c4e6f6e46756e6769626c6500010000c50504184f7074696f6e04045401c9050108104e6f6e6500000010536f6d650400c9050000010000c905103870657a73746167696e675f78636d0876351461737365744c41737365745472616e7366657246696c74657200010c2054656c65706f72740400b905012c417373657446696c74657200000038526573657276654465706f7369740400b905012c417373657446696c7465720001003c5265736572766557697468647261770400b905012c417373657446696c74657200020000cd050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c905045300000400d10501185665633c543e0000d105000002c90500d50504184f7074696f6e0404540191010108104e6f6e6500000010536f6d65040091010000010000d9050c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401dd05045300000400e10501185665633c543e0000dd050c3870657a73746167696e675f78636d0876351048696e74000104304173736574436c61696d65720401206c6f636174696f6e8d0101204c6f636174696f6e00000000e105000002dd0500e505080c78636d3c56657273696f6e656441737365747300010c0856330400c504013c76333a3a4d756c746941737365747300030008563404003105012876343a3a41737365747300040008563504007905012876353a3a41737365747300050000e905080c78636d4056657273696f6e65644173736574496400010c08563304005101012c76333a3a4173736574496400030008563404008901012c76343a3a417373657449640004000856350400c101012c76353a3a4173736574496400050000ed05080c78636d3056657273696f6e656458636d042c52756e74696d6543616c6c00010c0856330400f105015076333a3a58636d3c52756e74696d6543616c6c3e00030008563404000106015076343a3a58636d3c52756e74696d6543616c6c3e00040008563504000d06015076353a3a58636d3c52756e74696d6543616c6c3e00050000f1050c0c78636d0876330c58636d041043616c6c00000400f50501585665633c496e737472756374696f6e3c43616c6c3e3e0000f505000002f90500f9050c0c78636d0876332c496e737472756374696f6e041043616c6c0001c034576974686472617741737365740400c504012c4d756c7469417373657473000000545265736572766541737365744465706f73697465640400c504012c4d756c7469417373657473000100585265636569766554656c65706f7274656441737365740400c504012c4d756c7469417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e7365dd040120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572050501544f7074696f6e3c4d756c74694c6f636174696f6e3e000300345472616e736665724173736574080118617373657473c504012c4d756c746941737365747300012c62656e6566696369617279290101344d756c74694c6f636174696f6e000400505472616e736665725265736572766541737365740c0118617373657473c504012c4d756c746941737365747300011064657374290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64090501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cfd05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e04002d010154496e746572696f724d756c74694c6f636174696f6e000b002c5265706f72744572726f720400110501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473150501404d756c7469417373657446696c74657200012c62656e6566696369617279290101344d756c74694c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473150501404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e000e003445786368616e676541737365740c011067697665150501404d756c7469417373657446696c74657200011077616e74c504012c4d756c746941737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473150501404d756c7469417373657446696c74657200011c72657365727665290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473150501404d756c7469417373657446696c74657200011064657374290101344d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f110501445175657279526573706f6e7365496e666f000118617373657473150501404d756c7469417373657446696c74657200120030427579457865637574696f6e08011066656573cd0401284d756c746941737365740001307765696768745f6c696d69742105012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c65720400f105012458636d3c43616c6c3e0015002c536574417070656e6469780400f105012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473c504012c4d756c74694173736574730001187469636b6574290101344d756c74694c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e41737365740400c504012c4d756c7469417373657473001c002c45787065637441737365740400c504012c4d756c7469417373657473001d00304578706563744f726967696e0400050501544f7074696f6e3c4d756c74694c6f636174696f6e3e001e002c4578706563744572726f720400e10401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400fd0401384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f110501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465783501010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f723501010c75333200013c6d696e5f63726174655f6d696e6f723501010c753332002200505265706f72745472616e736163745374617475730400110501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400310101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b3d0101244e6574776f726b496400012c64657374696e6174696f6e2d010154496e746572696f724d756c74694c6f636174696f6e00010c78636db904011c58636d3c28293e002600244c6f636b41737365740801146173736574cd0401284d756c74694173736574000120756e6c6f636b6572290101344d756c74694c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574cd0401284d756c74694173736574000118746172676574290101344d756c74694c6f636174696f6e002800384e6f7465556e6c6f636b61626c650801146173736574cd0401284d756c746941737365740001146f776e6572290101344d756c74694c6f636174696f6e0029003452657175657374556e6c6f636b0801146173736574cd0401284d756c746941737365740001186c6f636b6572290101344d756c74694c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400290101344d756c74694c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742105012c5765696768744c696d6974000130636865636b5f6f726967696e050501544f7074696f6e3c4d756c74694c6f636174696f6e3e002f0000fd050c0c78636d38646f75626c655f656e636f64656434446f75626c65456e636f646564040454000004011c656e636f64656438011c5665633c75383e000001060c3870657a73746167696e675f78636d0876340c58636d041043616c6c00000400050601585665633c496e737472756374696f6e3c43616c6c3e3e0000050600000209060009060c3870657a73746167696e675f78636d0876342c496e737472756374696f6e041043616c6c0001c03457697468647261774173736574040031050118417373657473000000545265736572766541737365744465706f7369746564040031050118417373657473000100585265636569766554656c65706f727465644173736574040031050118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e736545050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572590501404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574733105011841737365747300012c62656e6566696369617279550101204c6f636174696f6e000400505472616e736665725265736572766541737365740c01186173736574733105011841737365747300011064657374550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64090501284f726967696e4b696e64000158726571756972655f7765696768745f61745f6d6f737428011857656967687400011063616c6cfd05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040059010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f7204005d0501445175657279526573706f6e7365496e666f000c00304465706f73697441737365740801186173736574736105012c417373657446696c74657200012c62656e6566696369617279550101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c01186173736574736105012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e000e003445786368616e676541737365740c0110676976656105012c417373657446696c74657200011077616e743105011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c01186173736574736105012c417373657446696c74657200011c72657365727665550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e00100040496e69746961746554656c65706f72740c01186173736574736105012c417373657446696c74657200011064657374550101204c6f636174696f6e00010c78636d2505011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666f5d0501445175657279526573706f6e7365496e666f0001186173736574736105012c417373657446696c74657200120030427579457865637574696f6e080110666565733905011441737365740001307765696768745f6c696d69742105012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000106012458636d3c43616c6c3e0015002c536574417070656e64697804000106012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473310501184173736574730001187469636b6574550101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040031050118417373657473001c002c4578706563744173736574040031050118417373657473001d00304578706563744f726967696e0400590501404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400e10401504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400fd0401384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666f5d0501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465783501010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f723501010c75333200013c6d696e5f63726174655f6d696e6f723501010c753332002200505265706f72745472616e7361637453746174757304005d0501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400610101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726b690101244e6574776f726b496400012c64657374696e6174696f6e59010140496e746572696f724c6f636174696f6e00010c78636d2505011c58636d3c28293e002600244c6f636b41737365740801146173736574390501144173736574000120756e6c6f636b6572550101204c6f636174696f6e0027002c556e6c6f636b41737365740801146173736574390501144173736574000118746172676574550101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365743905011441737365740001146f776e6572550101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365743905011441737365740001186c6f636b6572550101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e0400550101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742105012c5765696768744c696d6974000130636865636b5f6f726967696e590501404f7074696f6e3c4c6f636174696f6e3e002f00000d060c3870657a73746167696e675f78636d0876350c58636d041043616c6c00000400110601585665633c496e737472756374696f6e3c43616c6c3e3e0000110600000215060015060c3870657a73746167696e675f78636d0876352c496e737472756374696f6e041043616c6c0001d03457697468647261774173736574040079050118417373657473000000545265736572766541737365744465706f7369746564040079050118417373657473000100585265636569766554656c65706f727465644173736574040079050118417373657473000200345175657279526573706f6e736510012071756572795f69642c011c51756572794964000120726573706f6e73658d050120526573706f6e73650001286d61785f77656967687428011857656967687400011c71756572696572ad0501404f7074696f6e3c4c6f636174696f6e3e000300345472616e7366657241737365740801186173736574737905011841737365747300012c62656e65666963696172798d0101204c6f636174696f6e000400505472616e736665725265736572766541737365740c011861737365747379050118417373657473000110646573748d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e000500205472616e736163740c012c6f726967696e5f6b696e64090501284f726967696e4b696e6400014c66616c6c6261636b5f6d61785f776569676874b10501384f7074696f6e3c5765696768743e00011063616c6cfd05014c446f75626c65456e636f6465643c43616c6c3e0006006448726d704e65774368616e6e656c4f70656e526571756573740c011873656e6465723501010c7533320001406d61785f6d6573736167655f73697a653501010c7533320001306d61785f63617061636974793501010c7533320007004c48726d704368616e6e656c4163636570746564040124726563697069656e743501010c7533320008004848726d704368616e6e656c436c6f73696e670c0124696e69746961746f723501010c75333200011873656e6465723501010c753332000124726563697069656e743501010c7533320009002c436c6561724f726967696e000a003444657363656e644f726967696e040091010140496e746572696f724c6f636174696f6e000b002c5265706f72744572726f720400b50501445175657279526573706f6e7365496e666f000c00304465706f7369744173736574080118617373657473b905012c417373657446696c74657200012c62656e65666963696172798d0101204c6f636174696f6e000d004c4465706f7369745265736572766541737365740c0118617373657473b905012c417373657446696c746572000110646573748d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e000e003445786368616e676541737365740c011067697665b905012c417373657446696c74657200011077616e747905011841737365747300011c6d6178696d616c200110626f6f6c000f005c496e6974696174655265736572766557697468647261770c0118617373657473b905012c417373657446696c74657200011c726573657276658d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e00100040496e69746961746554656c65706f72740c0118617373657473b905012c417373657446696c746572000110646573748d0101204c6f636174696f6e00010c78636d6d05011c58636d3c28293e001100345265706f7274486f6c64696e67080134726573706f6e73655f696e666fb50501445175657279526573706f6e7365496e666f000118617373657473b905012c417373657446696c74657200120030427579457865637574696f6e080110666565738105011441737365740001307765696768745f6c696d69742105012c5765696768744c696d697400130034526566756e64537572706c75730014003c5365744572726f7248616e646c657204000d06012458636d3c43616c6c3e0015002c536574417070656e64697804000d06012458636d3c43616c6c3e00160028436c6561724572726f7200170028436c61696d4173736574080118617373657473790501184173736574730001187469636b65748d0101204c6f636174696f6e001800105472617004002c010c7536340019004053756273637269626556657273696f6e08012071756572795f69642c011c5175657279496400014c6d61785f726573706f6e73655f776569676874280118576569676874001a0048556e73756273637269626556657273696f6e001b00244275726e4173736574040079050118417373657473001c002c4578706563744173736574040079050118417373657473001d00304578706563744f726967696e0400ad0501404f7074696f6e3c4c6f636174696f6e3e001e002c4578706563744572726f720400910501504f7074696f6e3c287533322c204572726f72293e001f00504578706563745472616e736163745374617475730400fd0401384d617962654572726f72436f64650020002c517565727950616c6c657408012c6d6f64756c655f6e616d6538011c5665633c75383e000134726573706f6e73655f696e666fb50501445175657279526573706f6e7365496e666f0021003045787065637450616c6c6574140114696e6465783501010c7533320001106e616d6538011c5665633c75383e00012c6d6f64756c655f6e616d6538011c5665633c75383e00012c63726174655f6d616a6f723501010c75333200013c6d696e5f63726174655f6d696e6f723501010c753332002200505265706f72745472616e736163745374617475730400b50501445175657279526573706f6e7365496e666f0023004c436c6561725472616e736163745374617475730024003c556e6976657273616c4f726967696e0400990101204a756e6374696f6e002500344578706f72744d6573736167650c011c6e6574776f726ba10101244e6574776f726b496400012c64657374696e6174696f6e91010140496e746572696f724c6f636174696f6e00010c78636d6d05011c58636d3c28293e002600244c6f636b41737365740801146173736574810501144173736574000120756e6c6f636b65728d0101204c6f636174696f6e0027002c556e6c6f636b417373657408011461737365748105011441737365740001187461726765748d0101204c6f636174696f6e002800384e6f7465556e6c6f636b61626c6508011461737365748105011441737365740001146f776e65728d0101204c6f636174696f6e0029003452657175657374556e6c6f636b08011461737365748105011441737365740001186c6f636b65728d0101204c6f636174696f6e002a002c536574466565734d6f64650401306a69745f7769746864726177200110626f6f6c002b0020536574546f70696304000401205b75383b2033325d002c0028436c656172546f706963002d002c416c6961734f726967696e04008d0101204c6f636174696f6e002e003c556e70616964457865637574696f6e0801307765696768745f6c696d69742105012c5765696768744c696d6974000130636865636b5f6f726967696ead0501404f7074696f6e3c4c6f636174696f6e3e002f001c50617946656573040114617373657481050114417373657400300040496e6974696174655472616e7366657214012c64657374696e6174696f6e8d0101204c6f636174696f6e00012c72656d6f74655f66656573c505016c4f7074696f6e3c41737365745472616e7366657246696c7465723e00013c70726573657276655f6f726967696e200110626f6f6c000118617373657473cd0501e0426f756e6465645665633c41737365745472616e7366657246696c7465722c204d617841737365745472616e7366657246696c746572733e00012872656d6f74655f78636d6d05011c58636d3c28293e0031004445786563757465576974684f726967696e08014464657363656e64616e745f6f726967696ed50501604f7074696f6e3c496e746572696f724c6f636174696f6e3e00010c78636d0d06012458636d3c43616c6c3e0032002053657448696e747304011468696e7473d9050184426f756e6465645665633c48696e742c2048696e744e756d56617269616e74733e003300001906105c70657a73746167696e675f78636d5f6578656375746f72187472616974733861737365745f7472616e73666572305472616e73666572547970650001102054656c65706f7274000000304c6f63616c526573657276650001004844657374696e6174696f6e526573657276650002003452656d6f7465526573657276650400c501014456657273696f6e65644c6f636174696f6e000300001d0604184f7074696f6e04045401300108104e6f6e6500000010536f6d65040030000001000021060c3c70657a70616c6c65745f62656566792470657a70616c6c65741043616c6c04045400011c507265706f72745f646f75626c655f766f74696e6708014865717569766f636174696f6e5f70726f6f662506018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600001009015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e747265706f72745f646f75626c655f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f662506018d01426f783c446f75626c65566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949642c3c543a3a426565667949640a61732052756e74696d654170705075626c69633e3a3a5369676e61747572652c3e2c3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600012409015265706f727420766f7465722065717569766f636174696f6e2f6d69736265686176696f722e2054686973206d6574686f642077696c6c2076657269667920746865f465717569766f636174696f6e2070726f6f6620616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f66f8616761696e73742074686520657874726163746564206f6666656e6465722e20496620626f7468206172652076616c69642c20746865206f6666656e63654477696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e3c7365745f6e65775f67656e6573697304013c64656c61795f696e5f626c6f636b73100144426c6f636b4e756d626572466f723c543e0002105d01526573657420424545465920636f6e73656e7375732062792073657474696e672061206e65772042454546592067656e65736973206174206064656c61795f696e5f626c6f636b736020626c6f636b7320696e207468651c6675747572652e00b44e6f74653a206064656c61795f696e5f626c6f636b73602068617320746f206265206174206c6561737420312e487265706f72745f666f726b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66450601ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600030c3d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e6c7265706f72745f666f726b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66450601ad01426f783c466f726b566f74696e6750726f6f663c486561646572466f723c543e2c20543a3a426565667949642c3c543a3a416e63657374727948656c7065720a617320416e63657374727948656c7065723c486561646572466f723c543e3e3e3a3a50726f6f662c3e2c3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f660004203d015265706f727420666f726b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e687265706f72745f6675747572655f626c6f636b5f766f74696e6708014865717569766f636174696f6e5f70726f6f66550601e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f6600050c5d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e8c7265706f72745f6675747572655f626c6f636b5f766f74696e675f756e7369676e656408014865717569766f636174696f6e5f70726f6f66550601e8426f783c467574757265426c6f636b566f74696e6750726f6f663c426c6f636b4e756d626572466f723c543e2c20543a3a426565667949643e3e00013c6b65795f6f776e65725f70726f6f6609020140543a3a4b65794f776e657250726f6f660006205d015265706f72742066757475726520626c6f636b20766f74696e672065717569766f636174696f6e2e2054686973206d6574686f642077696c6c20766572696679207468652065717569766f636174696f6e2070726f6f662901616e642076616c69646174652074686520676976656e206b6579206f776e6572736869702070726f6f6620616761696e73742074686520657874726163746564206f6666656e6465722ec0496620626f7468206172652076616c69642c20746865206f6666656e63652077696c6c206265207265706f727465642e000d01546869732065787472696e736963206d7573742062652063616c6c656420756e7369676e656420616e642069742069732065787065637465642074686174206f6e6c791501626c6f636b20617574686f72732077696c6c2063616c6c206974202876616c69646174656420696e206056616c6964617465556e7369676e656460292c2061732073756368150169662074686520626c6f636b20617574686f7220697320646566696e65642069742077696c6c20626520646566696e6564206173207468652065717569766f636174696f6e247265706f727465722e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e2506085470657a73705f636f6e73656e7375735f626565667944446f75626c65566f74696e6750726f6f660c184e756d6265720110084964015902245369676e61747572650129060008011466697273742d060188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e0001187365636f6e642d060188566f74654d6573736167653c4e756d6265722c2049642c205369676e61747572653e000029060c5470657a73705f636f6e73656e7375735f62656566793065636473615f63727970746f245369676e6174757265000004000d03014065636473613a3a5369676e617475726500002d06085470657a73705f636f6e73656e7375735f62656566792c566f74654d6573736167650c184e756d6265720110084964015902245369676e6174757265012906000c0128636f6d6d69746d656e7431060148436f6d6d69746d656e743c4e756d6265723e00010869645902010849640001247369676e6174757265290601245369676e6174757265000031060c5470657a73705f636f6e73656e7375735f626565667928636f6d6d69746d656e7428436f6d6d69746d656e74043054426c6f636b4e756d6265720110000c011c7061796c6f61643506011c5061796c6f6164000130626c6f636b5f6e756d62657210013054426c6f636b4e756d62657200014076616c696461746f725f7365745f696430013856616c696461746f725365744964000035060c5470657a73705f636f6e73656e7375735f62656566791c7061796c6f61641c5061796c6f616400000400390601785665633c2842656566795061796c6f616449642c205665633c75383e293e000039060000023d06003d06000004084106380041060000030200000008004506085470657a73705f636f6e73656e7375735f62656566793c466f726b566f74696e6750726f6f660c1848656164657201fd0108496401590234416e63657374727950726f6f66014906000c0110766f74652d0601b8566f74654d6573736167653c4865616465723a3a4e756d6265722c2049642c2049643a3a5369676e61747572653e000138616e6365737472795f70726f6f6649060134416e63657374727950726f6f66000118686561646572fd01011848656164657200004906085070657a73705f6d6d725f7072696d69746976657334416e63657374727950726f6f66041048617368013400100128707265765f7065616b735d0301245665633c486173683e00013c707265765f6c6561665f636f756e7430010c7536340001286c6561665f636f756e743001244e6f6465496e6465780001146974656d734d0601405665633c287536342c2048617368293e00004d060000025106005106000004083034005506085470657a73705f636f6e73656e7375735f626565667958467574757265426c6f636b566f74696e6750726f6f6608184e756d626572011008496401590200040110766f74652d060198566f74654d6573736167653c4e756d6265722c2049642c2049643a3a5369676e61747572653e00005906105870657a6b7577695f72756e74696d655f636f6d6d6f6e4870617261735f7375646f5f777261707065722470657a70616c6c65741043616c6c040454000118747375646f5f7363686564756c655f706172615f696e697469616c697a650801086964f102011850617261496400011c67656e657369735d06013c5061726147656e65736973417267730000140d015363686564756c652061207061726120746f20626520696e697469616c697a656420617420746865207374617274206f6620746865206e6578742073657373696f6e2e004d01546869732073686f756c64206f6e6c79206265207573656420666f722054455354494e4720616e64206e6f74206f6e2050524f44554354494f4e20636861696e732e204974206175746f6d61746963616c6c79490161737369676e7320436f726574696d6520746f2074686520636861696e20616e6420696e6372656173657320746865206e756d626572206f6620636f7265732e20546875732c207468657265206973206e6f8072756e6e696e6720636f726574696d6520636861696e2072657175697265642e687375646f5f7363686564756c655f706172615f636c65616e75700401086964f102011850617261496400010409015363686564756c652061207061726120746f20626520636c65616e656420757020617420746865207374617274206f6620746865206e6578742073657373696f6e2e807375646f5f7363686564756c655f706172617468726561645f757067726164650401086964f10201185061726149640002041d01557067726164652061207061726174687265616420286f6e2d64656d616e642074657972636861696e2920746f2061206c6561736520686f6c64696e672074657972636861696e847375646f5f7363686564756c655f74657972636861696e5f646f776e67726164650401086964f1020118506172614964000304f4446f776e67726164652061206c6561736520686f6c64696e672074657972636861696e20746f20616e206f6e2d64656d616e642074657972636861696e5c7375646f5f71756575655f646f776e776172645f78636d0801086964f102011850617261496400010c78636db5040178426f783c78636d3a3a6f70617175653a3a56657273696f6e656458636d3e0004109853656e64206120646f776e776172642058434d20746f2074686520676976656e20706172612e00510154686520676976656e2074657972636861696e2073686f756c6420657869737420616e6420746865207061796c6f61642073686f756c64206e6f74206578636565642074686520707265636f6e66696775726564a073697a652060636f6e6669672e6d61785f646f776e776172645f6d6573736167655f73697a65602e6c7375646f5f65737461626c6973685f68726d705f6368616e6e656c10011873656e646572f1020118506172614964000124726563697069656e74f10201185061726149640001306d61785f636170616369747910010c7533320001406d61785f6d6573736167655f73697a6510010c7533320005100101466f72636566756c6c792065737461626c6973682061206368616e6e656c2066726f6d207468652073656e64657220746f2074686520726563697069656e742e00550154686973206973206571756976616c656e7420746f2073656e64696e6720616e206048726d703a3a68726d705f696e69745f6f70656e5f6368616e6e656c602065787472696e73696320666f6c6c6f776564206279846048726d703a3a68726d705f6163636570745f6f70656e5f6368616e6e656c602e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e5d060c6870657a6b7577695f72756e74696d655f74657972636861696e731470617261733c5061726147656e657369734172677300000c013067656e657369735f68656164e9030120486561644461746100013c76616c69646174696f6e5f636f6465e503013856616c69646174696f6e436f6465000124706172615f6b696e64200120506172614b696e6400006106105870657a6b7577695f72756e74696d655f636f6d6d6f6e3861737369676e65645f736c6f74732470657a70616c6c65741043616c6c0404540001146861737369676e5f7065726d5f74657972636861696e5f736c6f740401086964f1020118506172614964000004210141737369676e2061207065726d616e656e742074657972636861696e20736c6f7420616e6420696d6d6564696174656c79206372656174652061206c6561736520666f722069742e6861737369676e5f74656d705f74657972636861696e5f736c6f740801086964f10201185061726149640001486c656173655f706572696f645f737461727465060150536c6f744c65617365506572696f64537461727400010c390141737369676e20612074656d706f726172792074657972636861696e20736c6f742e205468652066756e6374696f6e20747269657320746f206372656174652061206c6561736520666f722069743901696d6d6564696174656c792069662060536c6f744c65617365506572696f6453746172743a3a43757272656e7460206973207370656369666965642c20616e6420696620746865206e756d62657239016f662063757272656e746c79206163746976652074656d706f7261727920736c6f74732069732062656c6f7720604d617854656d706f72617279536c6f745065724c65617365506572696f64602e5c756e61737369676e5f74657972636861696e5f736c6f740401086964f1020118506172614964000204c0556e61737369676e2061207065726d616e656e74206f722074656d706f726172792074657972636861696e20736c6f745c7365745f6d61785f7065726d616e656e745f736c6f7473040114736c6f747310010c753332000304b453657473207468652073746f726167652076616c7565205b604d61785065726d616e656e74536c6f7473605d2e5c7365745f6d61785f74656d706f726172795f736c6f7473040114736c6f747310010c753332000404b453657473207468652073746f726167652076616c7565205b604d617854656d706f72617279536c6f7473605d2e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e65060c5870657a6b7577695f72756e74696d655f636f6d6d6f6e3861737369676e65645f736c6f747350536c6f744c65617365506572696f6453746172740001081c43757272656e74000000104e657874000100006906105070657a6b757769636861696e5f72756e74696d654476616c696461746f725f6d616e616765722470657a70616c6c65741043616c6c0404540001084c72656769737465725f76616c696461746f727304012876616c696461746f72732d02014c5665633c543a3a56616c696461746f7249643e00000c78416464206e65772076616c696461746f727320746f20746865207365742e00ec546865206e65772076616c696461746f72732077696c6c206265206163746976652066726f6d2063757272656e742073657373696f6e202b20322e54646572656769737465725f76616c696461746f727304012876616c696461746f72732d02014c5665633c543a3a56616c696461746f7249643e00010c7c52656d6f76652076616c696461746f72732066726f6d20746865207365742e0011015468652072656d6f7665642076616c696461746f72732077696c6c2062652064656163746976617465642066726f6d2063757272656e742073657373696f6e202b20322e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e6d060c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c65741043616c6c04045400011858636f6e74726f6c5f6175746f5f6d6967726174696f6e0401306d617962655f636f6e6669677106015c4f7074696f6e3c4d6967726174696f6e4c696d6974733e00000c80436f6e74726f6c20746865206175746f6d61746963206d6967726174696f6e2e000d01546865206469737061746368206f726967696e206f6620746869732063616c6c206d757374206265205b60436f6e6669673a3a436f6e74726f6c4f726967696e605d2e40636f6e74696e75655f6d6967726174650c01186c696d6974737506013c4d6967726174696f6e4c696d69747300013c7265616c5f73697a655f757070657210010c7533320001307769746e6573735f7461736b790601404d6967726174696f6e5461736b3c543e000154b8436f6e74696e756520746865206d6967726174696f6e20666f722074686520676976656e20606c696d697473602e00ec546865206469737061746368206f726967696e206f6620746869732063616c6c2063616e20626520616e79207369676e6564206163636f756e742e005d0154686973207472616e73616374696f6e20686173204e4f204d4f4e455441525920494e43454e54495645532e2063616c6c696e672069742077696c6c206e6f742072657761726420616e796f6e652e20416c626569742cec55706f6e207375636365737366756c20657865637574696f6e2c20746865207472616e73616374696f6e206665652069732072657475726e65642e0041015468652028706f74656e7469616c6c79206f7665722d657374696d6174656429206f66207468652062797465206c656e677468206f6620616c6c2074686520646174612072656164206d757374206265590170726f766964656420666f722075702d66726f6e74206665652d7061796d656e7420616e64207765696768696e672e20496e20657373656e63652c207468652063616c6c65722069732067756172616e746565696e6749017468617420657865637574696e67207468652063757272656e7420604d6967726174696f6e5461736b6020776974682074686520676976656e20606c696d697473602077696c6c206e6f742065786365656494607265616c5f73697a655f757070657260206279746573206f66207265616420646174612e00450154686520607769746e6573735f7461736b60206973206d6572656c7920612068656c70657220746f2070726576656e74207468652063616c6c65722066726f6d206265696e6720736c6173686564206f725d0167656e6572616c6c7920747269676765722061206d6967726174696f6e2074686174207468657920646f206e6f7420696e74656e642e205468697320706172616d65746572206973206a7573742061206d6573736167653d0166726f6d2063616c6c65722c20736179696e67207468617420746865792062656c696576656420607769746e6573735f7461736b602077617320746865206c617374207374617465206f662074686559016d6967726174696f6e2c20616e642074686579206f6e6c79207769736820666f72207468656972207472616e73616374696f6e20746f20646f20616e797468696e672c206966207468697320617373756d7074696f6e1101686f6c64732e20496e206361736520607769746e6573735f7461736b6020646f6573206e6f74206d617463682c20746865207472616e73616374696f6e206661696c732e0039014261736564206f6e2074686520646f63756d656e746174696f6e206f66205b604d6967726174696f6e5461736b3a3a6d6967726174655f756e74696c5f65786861757374696f6e605d2c207468654d017265636f6d6d656e64656420776179206f6620646f696e67207468697320697320746f2070617373206120606c696d6974602074686174206f6e6c7920626f756e64732060636f756e74602c206173207468659c6073697a6560206c696d69742063616e20616c77617973206265206f7665727772697474656e2e486d6967726174655f637573746f6d5f746f700801106b657973f10101305665633c5665633c75383e3e0001307769746e6573735f73697a6510010c75333200021009014d69677261746520746865206c697374206f6620746f70206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e506d6967726174655f637573746f6d5f6368696c640c0110726f6f7438011c5665633c75383e0001286368696c645f6b657973f10101305665633c5665633c75383e3e000128746f74616c5f73697a6510010c75333200031811014d69677261746520746865206c697374206f66206368696c64206b65797320627920697465726174696e672065616368206f66207468656d206f6e65206279206f6e652e000d01416c6c206f662074686520676976656e206368696c64206b657973206d7573742062652070726573656e7420756e646572206f6e6520606368696c645f726f6f74602e0055015468697320646f6573206e6f74206166666563742074686520676c6f62616c206d6967726174696f6e2070726f6365737320747261636b657220285b604d6967726174696f6e50726f63657373605d292c20616e64fc73686f756c64206f6e6c79206265207573656420696e206361736520616e79206b65797320617265206c6566746f7665722064756520746f2061206275672e547365745f7369676e65645f6d61785f6c696d6974730401186c696d6974737506013c4d6967726174696f6e4c696d697473000404b853657420746865206d6178696d756d206c696d6974206f6620746865207369676e6564206d6967726174696f6e2e48666f7263655f7365745f70726f677265737308013070726f67726573735f746f707d06013450726f67726573734f663c543e00013870726f67726573735f6368696c647d06013450726f67726573734f663c543e000524c8466f72636566756c6c7920736574207468652070726f6772657373207468652072756e6e696e67206d6967726174696f6e2e005d0154686973206973206f6e6c792075736566756c20696e206f6e6520636173653a20746865206e657874206b657920746f206d69677261746520697320746f6f2062696720746f206265206d696772617465642077697468550161207369676e6564206163636f756e742c20696e20612074657972636861696e20636f6e746578742c20616e642077652073696d706c792077616e7420746f20736b69702069742e204120726561736f6e61626c6561016578616d706c65206f66207468697320776f756c6420626520603a636f64653a602c20776869636820697320626f7468207665727920657870656e7369766520746f206d6967726174652c20616e6420636f6d6d6f6e6c79a4757365642c20736f2070726f6261626c7920697420697320616c7265616479206d696772617465642e005d01496e206361736520796f75206d657373207468696e67732075702c20796f752063616e20616c736f2c20696e207072696e6369706c652c20757365207468697320746f20726573657420746865206d6967726174696f6e2070726f636573732e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e710604184f7074696f6e0404540175060108104e6f6e6500000010536f6d6504007506000001000075060c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c65743c4d6967726174696f6e4c696d697473000008011073697a6510010c7533320001106974656d10010c753332000079060c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c6574344d6967726174696f6e5461736b040454000014013070726f67726573735f746f707d06013450726f67726573734f663c543e00013870726f67726573735f6368696c647d06013450726f67726573734f663c543e00011073697a6510010c753332000124746f705f6974656d7310010c75333200012c6368696c645f6974656d7310010c75333200007d060c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c65742050726f677265737304244d61784b65794c656e00010c1c546f53746172740000001c4c6173744b6579040081060164426f756e6465645665633c75382c204d61784b65794c656e3e00010020436f6d706c6574650002000081060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000085060c6070657a70616c6c65745f76616c696461746f725f706f6f6c2470657a70616c6c65741043616c6c0404540001244c6a6f696e5f76616c696461746f725f706f6f6c04012063617465676f72798906015456616c696461746f72506f6f6c43617465676f72790000045c4a6f696e207468652076616c696461746f7220706f6f6c506c656176655f76616c696461746f725f706f6f6c000104604c65617665207468652076616c696461746f7220706f6f6c34666f7263655f6e65775f65726100020464466f726365206e65772065726120287375646f206f6e6c79293c7570646174655f63617465676f72790401306e65775f63617465676f72798906015456616c696461746f72506f6f6c43617465676f7279000304645570646174652076616c696461746f722063617465676f72794c7365745f706f6f6c5f706172616d65746572730401286572615f6c656e677468100144426c6f636b4e756d626572466f723c543e0004047c53657420706f6f6c20706172616d657465727320287375646f206f6e6c7929687570646174655f706572666f726d616e63655f6d65747269637310012476616c696461746f72000130543a3a4163636f756e74496400013c626c6f636b735f70726f647563656410010c753332000134626c6f636b735f6d697373656410010c7533320001286572615f706f696e747310010c753332000504c055706461746520706572666f726d616e6365206d657472696373202863616c6c656420627920636f6e73656e73757329487365745f6f7065726174696f6e5f6d6f64650401206e65775f6d6f6465910601344f7065726174696f6e4d6f6465000604c4536574206f7065726174696f6e206d6f64652028536861646f77206f722041637469766529202d207375646f206f6e6c79587265636f72645f6e706f735f76616c696461746f727304012876616c696461746f72732d0201445665633c543a3a4163636f756e7449643e00070429015265636f7264204e506f532076616c696461746f727320666f7220736861646f7720636f6d70617269736f6e202d2063616c6c656420627920636f6e73656e7375732f7374616b696e67507265636f72645f6572615f656e645f73746174730c01246572615f696e64657810010c75333200013c626c6f636b735f70726f647563656410010c753332000134626c6f636b735f6d697373656410010c753332000804b45265636f72642065726120656e64207374617469737469637320666f7220736861646f7720616e616c79736973041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e89060c6070657a70616c6c65745f76616c696461746f725f706f6f6c1474797065735456616c696461746f72506f6f6c43617465676f727900010c385374616b6556616c696461746f720801246d696e5f7374616b651801107531323800013c74727573745f7468726573686f6c6418011075313238000000585061726c69616d656e7461727956616c696461746f72000100384d6572697456616c696461746f720801347370656369616c5f74696b69738d06016c426f756e6465645665633c75382c20436f6e73745533323c353e3e00014c636f6d6d756e6974795f7468726573686f6c6410010c753332000200008d060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e000091060c6070657a70616c6c65745f76616c696461746f725f706f6f6c147479706573344f7065726174696f6e4d6f646500010818536861646f77000000184163746976650001000095060c5870657a70616c6c65745f726f6f745f74657374696e672470657a70616c6c65741043616c6c0404540001082866696c6c5f626c6f636b040114726174696fe8011c50657262696c6c00000405014120646973706174636820746861742077696c6c2066696c6c2074686520626c6f636b2077656967687420757020746f2074686520676976656e20726174696f2e44747269676765725f646566656e73697665000100041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e99060c4c70657a70616c6c65745f626167735f6c6973742470657a70616c6c65741043616c6c08045400044900010c1472656261670401286469736c6f6361746564210201504163636f756e7449644c6f6f6b75704f663c543e00002859014465636c617265207468617420736f6d6520606469736c6f636174656460206163636f756e74206861732c207468726f7567682072657761726473206f722070656e616c746965732c2073756666696369656e746c7951016368616e676564206974732073636f726520746861742069742073686f756c642070726f7065726c792066616c6c20696e746f206120646966666572656e7420626167207468616e206974732063757272656e74106f6e652e001d01416e796f6e652063616e2063616c6c20746869732066756e6374696f6e2061626f757420616e7920706f74656e7469616c6c79206469736c6f6361746564206163636f756e742e00490157696c6c20616c7761797320757064617465207468652073746f7265642073636f7265206f6620606469736c6f63617465646020746f2074686520636f72726563742073636f72652c206261736564206f6e406053636f726550726f7669646572602e00d4496620606469736c6f63617465646020646f6573206e6f74206578697374732c2069742072657475726e7320616e206572726f722e3c7075745f696e5f66726f6e745f6f6604011c6c696768746572210201504163636f756e7449644c6f6f6b75704f663c543e000128d04d6f7665207468652063616c6c65722773204964206469726563746c7920696e2066726f6e74206f6620606c696768746572602e005901546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f20616e642063616e206f6e6c792062652063616c6c656420627920746865204964206f663501746865206163636f756e7420676f696e6720696e2066726f6e74206f6620606c696768746572602e2046656520697320706179656420627920746865206f726967696e20756e64657220616c6c3863697263756d7374616e6365732e00384f6e6c7920776f726b732069663a00942d20626f7468206e6f646573206172652077697468696e207468652073616d65206261672cd02d20616e6420606f726967696e602068617320612067726561746572206053636f726560207468616e20606c696768746572602e547075745f696e5f66726f6e745f6f665f6f7468657208011c68656176696572210201504163636f756e7449644c6f6f6b75704f663c543e00011c6c696768746572210201504163636f756e7449644c6f6f6b75704f663c543e00020c1d0153616d65206173205b6050657a70616c6c65743a3a7075745f696e5f66726f6e745f6f66605d2c206275742069742063616e2062652063616c6c656420627920616e796f6e652e00c8466565206973207061696420627920746865206f726967696e20756e64657220616c6c2063697263756d7374616e6365732e041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732e9d060c3870657a70616c6c65745f7375646f2470657a70616c6c65741043616c6c040454000114107375646f04011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000004350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e547375646f5f756e636865636b65645f77656967687408011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e000118776569676874280118576569676874000114350141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c20776974682060526f6f7460206f726967696e2e2d01546869732066756e6374696f6e20646f6573206e6f7420636865636b2074686520776569676874206f66207468652063616c6c2c20616e6420696e737465616420616c6c6f777320746865b05375646f207573657220746f20737065636966792074686520776569676874206f66207468652063616c6c2e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e1c7365745f6b657904010c6e6577210201504163636f756e7449644c6f6f6b75704f663c543e0002085d0141757468656e74696361746573207468652063757272656e74207375646f206b657920616e6420736574732074686520676976656e204163636f756e7449642028606e6577602920617320746865206e6577207375646f106b65792e1c7375646f5f617308010c77686f210201504163636f756e7449644c6f6f6b75704f663c543e00011063616c6ce101017c426f783c3c5420617320436f6e6669673e3a3a52756e74696d6543616c6c3e0003104d0141757468656e7469636174657320746865207375646f206b657920616e64206469737061746368657320612066756e6374696f6e2063616c6c207769746820605369676e656460206f726967696e2066726f6d406120676976656e206163636f756e742e00cc546865206469737061746368206f726967696e20666f7220746869732063616c6c206d757374206265205f5369676e65645f2e2872656d6f76655f6b657900040c845065726d616e656e746c792072656d6f76657320746865207375646f206b65792e006c2a2a546869732063616e6e6f7420626520756e2d646f6e652e2a2a041901436f6e7461696e7320612076617269616e742070657220646973706174636861626c652065787472696e736963207468617420746869732070657a70616c6c6574206861732ea1060c3470657a73705f72756e74696d65187472616974732c426c616b6554776f32353600000000a5060c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000a9060c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e671474797065731454616c6c790814566f746573011814546f74616c00000c011061796573180114566f7465730001106e617973180114566f74657300011c737570706f7274180114566f7465730000ad060c4c70657a70616c6c65745f77686974656c6973742470657a70616c6c6574144576656e7404045400010c3c43616c6c57686974656c697374656404012463616c6c5f6861736834011c543a3a486173680000005857686974656c697374656443616c6c52656d6f76656404012463616c6c5f6861736834011c543a3a486173680001006457686974656c697374656443616c6c4469737061746368656408012463616c6c5f6861736834011c543a3a48617368000118726573756c74b10601684469737061746368526573756c7457697468506f7374496e666f000200048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574b1060418526573756c7408045401b506044501b9060108084f6b0400b506000000000c4572720400b9060000010000b5060c4070657a6672616d655f737570706f727420646973706174636840506f73744469737061746368496e666f000008013461637475616c5f776569676874b10501384f7074696f6e3c5765696768743e000120706179735f666565640110506179730000b906083470657a73705f72756e74696d656444697370617463684572726f7257697468506f7374496e666f0410496e666f01b50600080124706f73745f696e666fb5060110496e666f0001146572726f7268013444697370617463684572726f720000bd06105870657a6b7577695f72756e74696d655f636f6d6d6f6e18636c61696d732470657a70616c6c6574144576656e740404540001041c436c61696d65640c010c77686f000130543a3a4163636f756e744964000140657468657265756d5f616464726573731103013c457468657265756d41646472657373000118616d6f756e7418013042616c616e63654f663c543e00000468536f6d656f6e6520636c61696d656420736f6d6520444f54732e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574c1060c4470657a70616c6c65745f7574696c6974792470657a70616c6c6574144576656e74000120404261746368496e746572727570746564080114696e64657810010c7533320001146572726f7268013444697370617463684572726f7200000855014261746368206f66206469737061746368657320646964206e6f7420636f6d706c6574652066756c6c792e20496e646578206f66206669727374206661696c696e6720646973706174636820676976656e2c2061734877656c6c20617320746865206572726f722e384261746368436f6d706c65746564000104c84261746368206f66206469737061746368657320636f6d706c657465642066756c6c792077697468206e6f206572726f722e604261746368436f6d706c65746564576974684572726f7273000204b44261746368206f66206469737061746368657320636f6d706c657465642062757420686173206572726f72732e344974656d436f6d706c657465640003041d01412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206e6f206572726f722e284974656d4661696c65640401146572726f7268013444697370617463684572726f720004041101412073696e676c65206974656d2077697468696e2061204261746368206f6620646973706174636865732068617320636f6d706c657465642077697468206572726f722e30446973706174636865644173040118726573756c74110101384469737061746368526573756c7400050458412063616c6c2077617320646973706174636865642e444966456c73654d61696e53756363657373000604644d61696e2063616c6c2077617320646973706174636865642e504966456c736546616c6c6261636b43616c6c65640401286d61696e5f6572726f7268013444697370617463684572726f72000704845468652066616c6c6261636b2063616c6c2077617320646973706174636865642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574c5060c4470657a70616c6c65745f76657374696e672470657a70616c6c6574144576656e7404045400010c3856657374696e674372656174656408011c6163636f756e74000130543a3a4163636f756e7449640001387363686564756c655f696e64657810010c75333200000490412076657374696e67207363686564756c6520686173206265656e20637265617465642e3856657374696e675570646174656408011c6163636f756e74000130543a3a4163636f756e744964000120756e76657374656418013042616c616e63654f663c543e000108510154686520616d6f756e742076657374656420686173206265656e20757064617465642e205468697320636f756c6420696e6469636174652061206368616e676520696e2066756e647320617661696c61626c652e25015468652062616c616e636520676976656e2069732074686520616d6f756e74207768696368206973206c65667420756e7665737465642028616e642074687573206c6f636b6564292e4056657374696e67436f6d706c6574656404011c6163636f756e74000130543a3a4163636f756e7449640002049c416e205c5b6163636f756e745c5d20686173206265636f6d652066756c6c79207665737465642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574c9060c4c70657a70616c6c65745f7363686564756c65722470657a70616c6c6574144576656e74040454000128245363686564756c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c753332000004505363686564756c656420736f6d65207461736b2e2043616e63656c65640801107768656e100144426c6f636b4e756d626572466f723c543e000114696e64657810010c7533320001044c43616e63656c656420736f6d65207461736b2e28446973706174636865640c01107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e000118726573756c74110101384469737061746368526573756c74000204544469737061746368656420736f6d65207461736b2e2052657472795365741001107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e000118706572696f64100144426c6f636b4e756d626572466f723c543e00011c726574726965730801087538000304a0536574206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e38526574727943616e63656c6c65640801107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e000404ac43616e63656c206120726574727920636f6e66696775726174696f6e20666f7220736f6d65207461736b2e3c43616c6c556e617661696c61626c650801107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e00050429015468652063616c6c20666f72207468652070726f7669646564206861736820776173206e6f7420666f756e6420736f20746865207461736b20686173206265656e2061626f727465642e38506572696f6469634661696c65640801107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e0006043d0154686520676976656e207461736b2077617320756e61626c6520746f2062652072656e657765642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b2e2c52657472794661696c65640801107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e0007085d0154686520676976656e207461736b2077617320756e61626c6520746f20626520726574726965642073696e636520746865206167656e64612069732066756c6c206174207468617420626c6f636b206f722074686572659c776173206e6f7420656e6f7567682077656967687420746f2072657363686564756c652069742e545065726d616e656e746c794f7665727765696768740801107461736b3d0301785461736b416464726573733c426c6f636b4e756d626572466f723c543e3e0001086964cd0601404f7074696f6e3c5461736b4e616d653e000804f054686520676976656e207461736b2063616e206e657665722062652065786563757465642073696e6365206974206973206f7665727765696768742e404167656e6461496e636f6d706c6574650401107768656e100144426c6f636b4e756d626572466f723c543e000904844167656e646120697320696e636f6d706c6574652066726f6d20607768656e602e04304576656e747320747970652ecd0604184f7074696f6e04045401040108104e6f6e6500000010536f6d650400040000010000d1060c3c70657a70616c6c65745f70726f78792470657a70616c6c6574144576656e7404045400011c3450726f78794578656375746564040118726573756c74110101384469737061746368526573756c74000004bc412070726f78792077617320657865637574656420636f72726563746c792c20776974682074686520676976656e2e2c507572654372656174656418011070757265000130543a3a4163636f756e74496400010c77686f000130543a3a4163636f756e74496400012870726f78795f7479706549030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578cd01010c7531360001086174100144426c6f636b4e756d626572466f723c543e00013c65787472696e7369635f696e64657810010c753332000108dc412070757265206163636f756e7420686173206265656e2063726561746564206279206e65772070726f7879207769746820676976656e90646973616d626967756174696f6e20696e64657820616e642070726f787920747970652e28507572654b696c6c656410011070757265000130543a3a4163636f756e74496400011c737061776e6572000130543a3a4163636f756e74496400012870726f78795f7479706549030130543a3a50726f787954797065000150646973616d626967756174696f6e5f696e646578cd01010c7531360002049c4120707572652070726f787920776173206b696c6c65642062792069747320737061776e65722e24416e6e6f756e6365640c01107265616c000130543a3a4163636f756e74496400011470726f7879000130543a3a4163636f756e74496400012463616c6c5f6861736834013443616c6c486173684f663c543e000304e0416e20616e6e6f756e63656d656e742077617320706c6163656420746f206d616b6520612063616c6c20696e20746865206675747572652e2850726f7879416464656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706549030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00040448412070726f7879207761732061646465642e3050726f787952656d6f76656410012464656c656761746f72000130543a3a4163636f756e74496400012464656c656761746565000130543a3a4163636f756e74496400012870726f78795f7479706549030130543a3a50726f78795479706500011464656c6179100144426c6f636b4e756d626572466f723c543e00050450412070726f7879207761732072656d6f7665642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e7449640001106b696e64d506012c4465706f7369744b696e6400012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000604090141206465706f7369742073746f72656420666f722070726f78696573206f7220616e6e6f756e63656d656e74732077617320706f6b6564202f20757064617465642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574d506083c70657a70616c6c65745f70726f78792c4465706f7369744b696e640001081c50726f7869657300000034416e6e6f756e63656d656e747300010000d9060c4870657a70616c6c65745f6d756c74697369672470657a70616c6c6574144576656e740404540001142c4e65774d756c74697369670c0124617070726f76696e67000130543a3a4163636f756e7449640001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c486173680000048c41206e6577206d756c7469736967206f7065726174696f6e2068617320626567756e2e404d756c7469736967417070726f76616c100124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e745503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000104c841206d756c7469736967206f7065726174696f6e20686173206265656e20617070726f76656420627920736f6d656f6e652e404d756c74697369674578656375746564140124617070726f76696e67000130543a3a4163636f756e74496400012474696d65706f696e745503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000118726573756c74110101384469737061746368526573756c740002049c41206d756c7469736967206f7065726174696f6e20686173206265656e2065786563757465642e444d756c746973696743616e63656c6c656410012863616e63656c6c696e67000130543a3a4163636f756e74496400012474696d65706f696e745503017054696d65706f696e743c426c6f636b4e756d626572466f723c543e3e0001206d756c7469736967000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c48617368000304a041206d756c7469736967206f7065726174696f6e20686173206265656e2063616e63656c6c65642e304465706f736974506f6b656410010c77686f000130543a3a4163636f756e74496400012463616c6c5f6861736804012043616c6c4861736800012c6f6c645f6465706f73697418013042616c616e63654f663c543e00012c6e65775f6465706f73697418013042616c616e63654f663c543e000404f0546865206465706f73697420666f722061206d756c7469736967206f7065726174696f6e20686173206265656e20757064617465642f706f6b65642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574dd060c4870657a70616c6c65745f707265696d6167652470657a70616c6c6574144576656e7404045400010c144e6f7465640401106861736834011c543a3a48617368000004684120707265696d61676520686173206265656e206e6f7465642e245265717565737465640401106861736834011c543a3a48617368000104784120707265696d61676520686173206265656e207265717565737465642e1c436c65617265640401106861736834011c543a3a486173680002046c4120707265696d616765206861732062656e20636c65617265642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574e106106870657a6b7577695f72756e74696d655f74657972636861696e7324696e636c7573696f6e2470657a70616c6c6574144576656e740404540001103c43616e6469646174654261636b65641000e506016443616e646964617465526563656970743c543a3a486173683e0000e903012048656164446174610000e9060124436f7265496e6465780000ed06012847726f7570496e646578000004c0412063616e64696461746520776173206261636b65642e20605b63616e6469646174652c20686561645f646174615d604443616e646964617465496e636c756465641000e506016443616e646964617465526563656970743c543a3a486173683e0000e903012048656164446174610000e9060124436f7265496e6465780000ed06012847726f7570496e646578000104c8412063616e6469646174652077617320696e636c756465642e20605b63616e6469646174652c20686561645f646174615d604443616e64696461746554696d65644f75740c00e506016443616e646964617465526563656970743c543a3a486173683e0000e903012048656164446174610000e9060124436f7265496e646578000204bc412063616e6469646174652074696d6564206f75742e20605b63616e6469646174652c20686561645f646174615d60585570776172644d65737361676573526563656976656408011066726f6df1020118506172614964000114636f756e7410010c753332000304f8536f6d6520757077617264206d657373616765732068617665206265656e20726563656976656420616e642077696c6c2062652070726f6365737365642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574e5060c4870657a6b7577695f7072696d6974697665730876394843616e64696461746552656365697074563204044801340008012864657363726970746f72bd03016043616e64696461746544657363726970746f7256323c483e000140636f6d6d69746d656e74735f68617368340110486173680000e9060c4870657a6b7577695f7072696d69746976657308763924436f7265496e6465780000040010010c7533320000ed060c4870657a6b7577695f7072696d6974697665730876392847726f7570496e6465780000040010010c7533320000f106106870657a6b7577695f72756e74696d655f74657972636861696e731470617261732470657a70616c6c6574144576656e740404540001284843757272656e74436f6465557064617465640400f1020118506172614964000004cc43757272656e7420636f646520686173206265656e207570646174656420666f72206120506172612e2060706172615f6964604843757272656e7448656164557064617465640400f1020118506172614964000104cc43757272656e74206865616420686173206265656e207570646174656420666f72206120506172612e2060706172615f69646050436f6465557067726164655363686564756c65640400f1020118506172614964000204dc4120636f6465207570677261646520686173206265656e207363686564756c656420666f72206120506172612e2060706172615f696460304e6577486561644e6f7465640400f1020118506172614964000304bc41206e6577206865616420686173206265656e206e6f74656420666f72206120506172612e2060706172615f69646030416374696f6e5175657565640800f1020118506172614964000010013053657373696f6e496e646578000404f041207061726120686173206265656e2071756575656420746f20657865637574652070656e64696e6720616374696f6e732e2060706172615f6964603c507666436865636b537461727465640800c903014856616c69646174696f6e436f6465486173680000f1020118506172614964000508550154686520676976656e20706172612065697468657220696e69746961746564206f72207375627363726962656420746f20612050564620636865636b20666f722074686520676976656e2076616c69646174696f6e6c636f64652e2060636f64655f68617368602060706172615f69646040507666436865636b41636365707465640800c903014856616c69646174696f6e436f6465486173680000f1020118506172614964000608110154686520676976656e2076616c69646174696f6e20636f6465207761732061636365707465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f69646040507666436865636b52656a65637465640800c903014856616c69646174696f6e436f6465486173680000f1020118506172614964000708110154686520676976656e2076616c69646174696f6e20636f6465207761732072656a65637465642062792074686520505646207072652d636865636b696e6720766f74652e5460636f64655f68617368602060706172615f6964605855706772616465436f6f6c646f776e52656d6f76656404011c706172615f6964f102011850617261496404c45468652074657972636861696e20666f722077686963682074686520636f6f6c646f776e20676f742072656d6f7665642e080484546865207570677261646520636f6f6c646f776e207761732072656d6f7665642e38436f6465417574686f72697a65640c011c706172615f6964f10201185061726149640410506172610124636f64655f68617368c903014856616c69646174696f6e436f6465486173680454417574686f72697a656420636f646520686173682e01246578706972655f6174100144426c6f636b4e756d626572466f723c543e04e4426c6f636b20617420776869636820617574686f72697a6174696f6e206578706972657320616e642077696c6c2062652072656d6f7665642e0904bc41206e657720636f6465206861736820686173206265656e20617574686f72697a656420666f72206120506172612e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574f506106870657a6b7577695f72756e74696d655f74657972636861696e731068726d702470657a70616c6c6574144576656e7404045400011c504f70656e4368616e6e656c52657175657374656410011873656e646572f1020118506172614964000124726563697069656e74f102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000004704f70656e2048524d50206368616e6e656c207265717565737465642e4c4f70656e4368616e6e656c43616e63656c656408013062795f74657972636861696ef10201185061726149640001286368616e6e656c5f69642904013448726d704368616e6e656c49640001042901416e2048524d50206368616e6e656c20726571756573742073656e7420627920746865207265636569766572207761732063616e63656c6564206279206569746865722070617274792e4c4f70656e4368616e6e656c416363657074656408011873656e646572f1020118506172614964000124726563697069656e74f10201185061726149640002046c4f70656e2048524d50206368616e6e656c2061636365707465642e344368616e6e656c436c6f73656408013062795f74657972636861696ef10201185061726149640001286368616e6e656c5f69642904013448726d704368616e6e656c49640003045048524d50206368616e6e656c20636c6f7365642e5848726d704368616e6e656c466f7263654f70656e656410011873656e646572f1020118506172614964000124726563697069656e74f102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000404ac416e2048524d50206368616e6e656c20776173206f70656e65642076696120526f6f74206f726967696e2e5c48726d7053797374656d4368616e6e656c4f70656e656410011873656e646572f1020118506172614964000124726563697069656e74f102011850617261496400015470726f706f7365645f6d61785f636170616369747910010c75333200016470726f706f7365645f6d61785f6d6573736167655f73697a6510010c753332000504bc416e2048524d50206368616e6e656c20776173206f70656e6564207769746820612073797374656d20636861696e2e684f70656e4368616e6e656c4465706f736974735570646174656408011873656e646572f1020118506172614964000124726563697069656e74f1020118506172614964000604a0416e2048524d50206368616e6e656c2773206465706f73697473207765726520757064617465642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574f906106870657a6b7577695f72756e74696d655f74657972636861696e732064697370757465732470657a70616c6c6574144576656e7404045400010c4044697370757465496e697469617465640800fd03013443616e646964617465486173680000fd06013c446973707574654c6f636174696f6e000004090141206469737075746520686173206265656e20696e697469617465642e205c5b63616e64696461746520686173682c2064697370757465206c6f636174696f6e5c5d4044697370757465436f6e636c756465640800fd03013443616e6469646174654861736800000107013444697370757465526573756c74000108cc4120646973707574652068617320636f6e636c7564656420666f72206f7220616761696e737420612063616e6469646174652eb4605c5b706172612069642c2063616e64696461746520686173682c206469737075746520726573756c745c5d60185265766572740400100144426c6f636b4e756d626572466f723c543e000210fc4120646973707574652068617320636f6e636c7564656420776974682073757065726d616a6f7269747920616761696e737420612063616e6469646174652e0d01426c6f636b20617574686f72732073686f756c64206e6f206c6f6e676572206275696c64206f6e20746f70206f662074686973206865616420616e642073686f756c640101696e7374656164207265766572742074686520626c6f636b2061742074686520676976656e206865696768742e20546869732073686f756c6420626520746865fc6e756d626572206f6620746865206368696c64206f6620746865206c617374206b6e6f776e2076616c696420626c6f636b20696e2074686520636861696e2e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c6574fd060c6870657a6b7577695f72756e74696d655f74657972636861696e732064697370757465733c446973707574654c6f636174696f6e000108144c6f63616c0000001852656d6f74650001000001070c6870657a6b7577695f72756e74696d655f74657972636861696e732064697370757465733444697370757465526573756c740001081456616c69640000001c496e76616c69640001000005070c5c70657a70616c6c65745f6d6573736167655f71756575652470657a70616c6c6574144576656e740404540001104050726f63657373696e674661696c65640c010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e450401484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e01146572726f720907014c50726f636573734d6573736167654572726f721060546865206572726f722074686174206f636375727265642e00490154686973206572726f7220697320707265747479206f70617175652e204d6f72652066696e652d677261696e6564206572726f7273206e65656420746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e000455014d657373616765206469736361726465642064756520746f20616e206572726f7220696e2074686520604d65737361676550726f636573736f72602028757375616c6c79206120666f726d6174206572726f72292e2450726f63657373656410010869643401104832353604945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e450401484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e012c7765696768745f7573656428011857656967687404c0486f77206d7563682077656967687420776173207573656420746f2070726f6365737320746865206d6573736167652e011c73756363657373200110626f6f6c18885768657468657220746865206d657373616765207761732070726f6365737365642e0049014e6f74652074686174207468697320646f6573206e6f74206d65616e20746861742074686520756e6465726c79696e6720604d65737361676550726f636573736f72602077617320696e7465726e616c6c7941017375636365737366756c2e204974202a736f6c656c792a206d65616e73207468617420746865204d512070657a70616c6c65742077696c6c2074726561742074686973206173206120737563636573734d01636f6e646974696f6e20616e64206469736361726420746865206d6573736167652e20416e7920696e7465726e616c206572726f72206e6565647320746f20626520656d6974746564206173206576656e74736862792074686520604d65737361676550726f636573736f72602e0104544d6573736167652069732070726f6365737365642e484f766572776569676874456e71756575656410010869640401205b75383b2033325d04945468652060626c616b65325f323536602068617368206f6620746865206d6573736167652e01186f726967696e450401484d6573736167654f726967696e4f663c543e0464546865207175657565206f6620746865206d6573736167652e0128706167655f696e64657810012450616765496e64657804605468652070616765206f6620746865206d6573736167652e01346d6573736167655f696e64657810011c543a3a53697a6504a454686520696e646578206f6620746865206d6573736167652077697468696e2074686520706167652e02048c4d65737361676520706c6163656420696e206f7665727765696768742071756575652e28506167655265617065640801186f726967696e450401484d6573736167654f726967696e4f663c543e0458546865207175657565206f662074686520706167652e0114696e64657810012450616765496e646578045854686520696e646578206f662074686520706167652e03045454686973207061676520776173207265617065642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65740907104070657a6672616d655f737570706f727418747261697473206d657373616765734c50726f636573734d6573736167654572726f7200011824426164466f726d61740000001c436f72727570740001002c556e737570706f72746564000200284f7665727765696768740400280118576569676874000300145969656c6400040044537461636b4c696d697452656163686564000500000d07106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e642470657a70616c6c6574144576656e7404045400010c4c4f6e44656d616e644f72646572506c616365640c011c706172615f6964f102011850617261496400012873706f745f707269636518013042616c616e63654f663c543e0001286f7264657265645f6279000130543a3a4163636f756e7449640000040d01416e206f726465722077617320706c6163656420617420736f6d652073706f7420707269636520616d6f756e74206279206f726465726572206f7264657265645f62793053706f74507269636553657404012873706f745f707269636518013042616c616e63654f663c543e000104b85468652076616c7565206f66207468652073706f7420707269636520686173206c696b656c79206368616e6765643c4163636f756e74437265646974656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e00020474416e206163636f756e742077617320676976656e20637265646974732e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65741107105870657a6b7577695f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722470657a70616c6c6574144576656e74040454000110285265676973746572656408011c706172615f6964f102011850617261496400011c6d616e61676572000130543a3a4163636f756e7449640000003044657265676973746572656404011c706172615f6964f102011850617261496400010020526573657276656408011c706172615f6964f102011850617261496400010c77686f000130543a3a4163636f756e7449640002001c5377617070656408011c706172615f6964f10201185061726149640001206f746865725f6964f1020118506172614964000300048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65741507105870657a6b7577695f72756e74696d655f636f6d6d6f6e14736c6f74732470657a70616c6c6574144576656e74040454000108384e65774c65617365506572696f640401306c656173655f706572696f641001404c65617365506572696f644f663c543e0000049041206e657720605b6c656173655f706572696f645d6020697320626567696e6e696e672e184c656173656418011c706172615f6964f10201185061726149640001186c6561736572000130543a3a4163636f756e744964000130706572696f645f626567696e1001404c65617365506572696f644f663c543e000130706572696f645f636f756e741001404c65617365506572696f644f663c543e00013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e00010c35014120706172612068617320776f6e2074686520726967687420746f206120636f6e74696e756f757320736574206f66206c6561736520706572696f647320617320612074657972636861696e2e450146697273742062616c616e636520697320616e7920657874726120616d6f756e74207265736572766564206f6e20746f70206f662074686520706172612773206578697374696e67206465706f7369742eb05365636f6e642062616c616e63652069732074686520746f74616c20616d6f756e742072657365727665642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65741907105870657a6b7577695f72756e74696d655f636f6d6d6f6e2061756374696f6e732470657a70616c6c6574144576656e7404045400011c3841756374696f6e537461727465640c013461756374696f6e5f696e64657810013041756374696f6e496e6465780001306c656173655f706572696f641001404c65617365506572696f644f663c543e000118656e64696e67100144426c6f636b4e756d626572466f723c543e0000084901416e2061756374696f6e20737461727465642e2050726f76696465732069747320696e64657820616e642074686520626c6f636b206e756d6265722077686572652069742077696c6c20626567696e20746f1501636c6f736520616e6420746865206669727374206c6561736520706572696f64206f662074686520717561647275706c657420746861742069732061756374696f6e65642e3441756374696f6e436c6f73656404013461756374696f6e5f696e64657810013041756374696f6e496e646578000104b8416e2061756374696f6e20656e6465642e20416c6c2066756e6473206265636f6d6520756e72657365727665642e2052657365727665640c0118626964646572000130543a3a4163636f756e74496400013865787472615f726573657276656418013042616c616e63654f663c543e000130746f74616c5f616d6f756e7418013042616c616e63654f663c543e000208490146756e6473207765726520726573657276656420666f7220612077696e6e696e67206269642e2046697273742062616c616e63652069732074686520657874726120616d6f756e742072657365727665642e505365636f6e642069732074686520746f74616c2e28556e7265736572766564080118626964646572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000304290146756e6473207765726520756e72657365727665642073696e636520626964646572206973206e6f206c6f6e676572206163746976652e20605b6269646465722c20616d6f756e745d604852657365727665436f6e66697363617465640c011c706172615f6964f10201185061726149640001186c6561736572000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e0004085501536f6d656f6e6520617474656d7074656420746f206c65617365207468652073616d6520736c6f7420747769636520666f7220612074657972636861696e2e2054686520616d6f756e742069732068656c6420696eb87265736572766520627574206e6f2074657972636861696e20736c6f7420686173206265656e206c65617365642e2c4269644163636570746564140118626964646572000130543a3a4163636f756e74496400011c706172615f6964f1020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00012866697273745f736c6f741001404c65617365506572696f644f663c543e0001246c6173745f736c6f741001404c65617365506572696f644f663c543e000504c841206e65772062696420686173206265656e206163636570746564206173207468652063757272656e742077696e6e65722e3457696e6e696e674f666673657408013461756374696f6e5f696e64657810013041756374696f6e496e646578000130626c6f636b5f6e756d626572100144426c6f636b4e756d626572466f723c543e00060859015468652077696e6e696e67206f6666736574207761732063686f73656e20666f7220616e2061756374696f6e2e20546869732077696c6c206d617020696e746f20746865206057696e6e696e67602073746f72616765106d61702e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65741d07105870657a6b7577695f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2470657a70616c6c6574144576656e740404540001281c4372656174656404011c706172615f6964f10201185061726149640000048c4372656174652061206e65772063726f77646c6f616e696e672063616d706169676e2e2c436f6e74726962757465640c010c77686f000130543a3a4163636f756e74496400012866756e645f696e646578f1020118506172614964000118616d6f756e7418013042616c616e63654f663c543e00010470436f6e747269627574656420746f20612063726f77642073616c652e2057697468647265770c010c77686f000130543a3a4163636f756e74496400012866756e645f696e646578f1020118506172614964000118616d6f756e7418013042616c616e63654f663c543e0002049c57697468647265772066756c6c2062616c616e6365206f66206120636f6e7472696275746f722e445061727469616c6c79526566756e64656404011c706172615f6964f10201185061726149640003082d01546865206c6f616e7320696e20612066756e642068617665206265656e207061727469616c6c7920646973736f6c7665642c20692e652e2074686572652061726520736f6d65206c656674b46f766572206368696c64206b6579732074686174207374696c6c206e65656420746f206265206b696c6c65642e2c416c6c526566756e64656404011c706172615f6964f10201185061726149640004049c416c6c206c6f616e7320696e20612066756e642068617665206265656e20726566756e6465642e24446973736f6c76656404011c706172615f6964f10201185061726149640005044846756e6420697320646973736f6c7665642e3c48616e646c65426964526573756c7408011c706172615f6964f1020118506172614964000118726573756c74110101384469737061746368526573756c74000604010154686520726573756c74206f6620747279696e6720746f207375626d69742061206e65772062696420746f2074686520536c6f74732070657a70616c6c65742e1845646974656404011c706172615f6964f1020118506172614964000704c454686520636f6e66696775726174696f6e20746f20612063726f77646c6f616e20686173206265656e206564697465642e2c4d656d6f557064617465640c010c77686f000130543a3a4163636f756e74496400011c706172615f6964f10201185061726149640001106d656d6f38011c5665633c75383e0008046041206d656d6f20686173206265656e20757064617465642e3c4164646564546f4e6577526169736504011c706172615f6964f1020118506172614964000904a0412074657972636861696e20686173206265656e206d6f76656420746f20604e6577526169736560048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65742107106870657a6b7577695f72756e74696d655f74657972636861696e7320636f726574696d652470657a70616c6c6574144576656e7404045400010850526576656e7565496e666f5265717565737465640401107768656e100144426c6f636b4e756d626572466f723c543e00000421015468652062726f6b657220636861696e206861732061736b656420666f7220726576656e756520696e666f726d6174696f6e20666f72206120737065636966696320626c6f636b2e30436f726541737369676e6564040110636f7265e9060124436f7265496e646578000104ec4120636f7265206861732072656365697665642061206e65772061737369676e6d656e742066726f6d207468652062726f6b657220636861696e2e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657425070c5070657a70616c6c65745f6d6967726174696f6e732470657a70616c6c6574144576656e740404540001203855706772616465537461727465640401286d6967726174696f6e7310010c75333210d0546865206e756d626572206f66206d6967726174696f6e7320746861742074686973207570677261646520636f6e7461696e732e004101546869732063616e206265207573656420746f2064657369676e20612070726f677265737320696e64696361746f7220696e20636f6d62696e6174696f6e207769746820636f756e74696e6720746865cc604d6967726174696f6e436f6d706c657465646020616e6420604d6967726174696f6e536b697070656460206576656e74732e000c68412052756e74696d65207570677261646520737461727465642e00f849747320656e6420697320696e64696361746564206279206055706772616465436f6d706c6574656460206f722060557067726164654661696c6564602e4055706772616465436f6d706c6574656400010c985468652063757272656e742072756e74696d65207570677261646520636f6d706c657465642e001d015468697320696d706c696573207468617420616c6c206f6620697473206d6967726174696f6e7320636f6d706c65746564207375636365737366756c6c792061732077656c6c2e34557067726164654661696c656400020c5c52756e74696d652075706772616465206661696c65642e00e85468697320697320766572792062616420616e642077696c6c207265717569726520676f7665726e616e636520696e74657276656e74696f6e2e404d6967726174696f6e536b6970706564040114696e64657810010c75333204290154686520696e646578206f662074686520736b6970706564206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0304090141206d6967726174696f6e2077617320736b69707065642073696e63652069742077617320616c726561647920657865637574656420696e2074686520706173742e444d6967726174696f6e416476616e636564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e04045c41206d6967726174696f6e2070726f677265737365642e484d6967726174696f6e436f6d706c65746564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e05045841204d6967726174696f6e20636f6d706c657465642e3c4d6967726174696f6e4661696c6564080114696e64657810010c75333204090154686520696e646578206f6620746865206d6967726174696f6e2077697468696e20746865205b60436f6e6669673a3a4d6967726174696f6e73605d206c6973742e0110746f6f6b100144426c6f636b4e756d626572466f723c543e04d4546865206e756d626572206f6620626c6f636b7320746861742074686973206d6967726174696f6e20746f6f6b20736f206661722e060c4c41204d6967726174696f6e206661696c65642e004d015468697320696d706c6965732074686174207468652077686f6c652075706772616465206661696c656420616e6420676f7665726e616e636520696e74657276656e74696f6e2069732072657175697265642e3c486973746f726963436c656172656404012c6e6578745f637572736f72ad04013c4f7074696f6e3c5665633c75383e3e04e853686f756c642062652070617373656420746f2060636c6561725f686973746f7269636020696e206120737563636573736976652063616c6c2e0704c854686520736574206f6620686973746f726963616c206d6967726174696f6e7320686173206265656e20636c65617265642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657429070c3470657a70616c6c65745f78636d2470657a70616c6c6574144576656e7404045400017424417474656d7074656404011c6f7574636f6d652d07015078636d3a3a6c61746573743a3a4f7574636f6d65000004a8457865637574696f6e206f6620616e2058434d206d6573736167652077617320617474656d707465642e1053656e741001186f726967696e8d0101204c6f636174696f6e00012c64657374696e6174696f6e8d0101204c6f636174696f6e00011c6d6573736167656d05011c58636d3c28293e0001286d6573736167655f696404011c58636d4861736800010460416e2058434d206d657373616765207761732073656e742e2853656e644661696c65641001186f726967696e8d0101204c6f636174696f6e00012c64657374696e6174696f6e8d0101204c6f636174696f6e0001146572726f723507012453656e644572726f720001286d6573736167655f696404011c58636d4861736800020478416e2058434d206d657373616765206661696c656420746f2073656e642e3c50726f6365737358636d4572726f720c01186f726967696e8d0101204c6f636174696f6e0001146572726f729905012058636d4572726f720001286d6573736167655f696404011c58636d4861736800030484416e2058434d206d657373616765206661696c656420746f2070726f636573732e48556e6578706563746564526573706f6e73650801186f726967696e8d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400040c5901517565727920726573706f6e736520726563656976656420776869636820646f6573206e6f74206d61746368206120726567697374657265642071756572792e2054686973206d61792062652062656361757365206155016d61746368696e6720717565727920776173206e6576657220726567697374657265642c206974206d617920626520626563617573652069742069732061206475706c696361746520726573706f6e73652c206f727062656361757365207468652071756572792074696d6564206f75742e34526573706f6e7365526561647908012071756572795f696430011c51756572794964000120726573706f6e73658d050120526573706f6e73650005085d01517565727920726573706f6e736520686173206265656e20726563656976656420616e6420697320726561647920666f722074616b696e672077697468206074616b655f726573706f6e7365602e205468657265206973806e6f2072656769737465726564206e6f74696669636174696f6e2063616c6c2e204e6f7469666965640c012071756572795f696430011c5175657279496400013c70657a70616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380006085901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e20686173a86265656e206469737061746368656420616e64206578656375746564207375636365737366756c6c792e404e6f746966794f76657277656967687414012071756572795f696430011c5175657279496400013c70657a70616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800013461637475616c5f77656967687428011857656967687400014c6d61785f62756467657465645f77656967687428011857656967687400070c4901517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652072656769737465726564206e6f74696669636174696f6e5901636f756c64206e6f742062652064697370617463686564206265636175736520746865206469737061746368207765696768742069732067726561746572207468616e20746865206d6178696d756d20776569676874e46f726967696e616c6c7920627564676574656420627920746869732072756e74696d6520666f722074686520717565727920726573756c742e4c4e6f7469667944697370617463684572726f720c012071756572795f696430011c5175657279496400013c70657a70616c6c65745f696e646578080108753800012863616c6c5f696e64657808010875380008085501517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e2054686572652077617320612067656e6572616c206572726f722077697468886469737061746368696e6720746865206e6f74696669636174696f6e2063616c6c2e484e6f746966794465636f64654661696c65640c012071756572795f696430011c5175657279496400013c70657a70616c6c65745f696e646578080108753800012863616c6c5f696e646578080108753800090c5101517565727920726573706f6e736520686173206265656e20726563656976656420616e642071756572792069732072656d6f7665642e205468652064697370617463682077617320756e61626c6520746f20626559016465636f64656420696e746f2061206043616c6c603b2074686973206d696768742062652064756520746f2064697370617463682066756e6374696f6e20686176696e672061207369676e6174757265207768696368946973206e6f742060286f726967696e2c20517565727949642c20526573706f6e736529602e40496e76616c6964526573706f6e6465720c01186f726967696e8d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014465787065637465645f6c6f636174696f6ead0501404f7074696f6e3c4c6f636174696f6e3e000a0c5901457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206f726967696e206c6f636174696f6e206f662074686520726573706f6e736520646f657355016e6f74206d6174636820746861742065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5c496e76616c6964526573706f6e64657256657273696f6e0801186f726967696e8d0101204c6f636174696f6e00012071756572795f696430011c51756572794964000b1c5101457870656374656420717565727920726573706f6e736520686173206265656e2072656365697665642062757420746865206578706563746564206f726967696e206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e34526573706f6e736554616b656e04012071756572795f696430011c51756572794964000c04c8526563656976656420717565727920726573706f6e736520686173206265656e207265616420616e642072656d6f7665642e34417373657473547261707065640c011068617368340110483235360001186f726967696e8d0101204c6f636174696f6e000118617373657473e505013c56657273696f6e6564417373657473000d04b8536f6d65206173736574732068617665206265656e20706c6163656420696e20616e20617373657420747261702e5456657273696f6e4368616e67654e6f74696669656410012c64657374696e6174696f6e8d0101204c6f636174696f6e000118726573756c7410012858636d56657273696f6e000110636f7374790501184173736574730001286d6573736167655f696404011c58636d48617368000e0c2501416e2058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e206d65737361676520686173206265656e20617474656d7074656420746f2062652073656e742e00e054686520636f7374206f662073656e64696e672069742028626f726e652062792074686520636861696e2920697320696e636c756465642e5c537570706f7274656456657273696f6e4368616e6765640801206c6f636174696f6e8d0101204c6f636174696f6e00011c76657273696f6e10012858636d56657273696f6e000f08390154686520737570706f727465642076657273696f6e206f662061206c6f636174696f6e20686173206265656e206368616e6765642e2054686973206d69676874206265207468726f75676820616ec06175746f6d61746963206e6f74696669636174696f6e206f722061206d616e75616c20696e74657276656e74696f6e2e504e6f7469667954617267657453656e644661696c0c01206c6f636174696f6e8d0101204c6f636174696f6e00012071756572795f696430011c517565727949640001146572726f729905012058636d4572726f7200100859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f727c73656e64696e6720746865206e6f74696669636174696f6e20746f2069742e644e6f746966795461726765744d6967726174696f6e4661696c0801206c6f636174696f6ec501014456657273696f6e65644c6f636174696f6e00012071756572795f696430011c5175657279496400110859014120676976656e206c6f636174696f6e2077686963682068616420612076657273696f6e206368616e676520737562736372697074696f6e207761732064726f70706564206f77696e6720746f20616e206572726f72b46d6967726174696e6720746865206c6f636174696f6e20746f206f7572206e65772058434d20666f726d61742e54496e76616c69645175657269657256657273696f6e0801186f726967696e8d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400121c5501457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652065787065637465642071756572696572206c6f636174696f6e20706c6163656420696e4d0173746f7261676520627920746869732072756e74696d652070726576696f75736c792063616e6e6f74206265206465636f6465642e205468652071756572792072656d61696e7320726567697374657265642e0041015468697320697320756e6578706563746564202873696e63652061206c6f636174696f6e20706c6163656420696e2073746f7261676520696e20612070726576696f75736c7920657865637574696e674d0172756e74696d652073686f756c64206265207265616461626c65207072696f7220746f2071756572792074696d656f75742920616e642064616e6765726f75732073696e63652074686520706f737369626c79590176616c696420726573706f6e73652077696c6c2062652064726f707065642e204d616e75616c20676f7665726e616e636520696e74657276656e74696f6e2069732070726f6261626c7920676f696e6720746f2062651c6e65656465642e38496e76616c6964517565726965721001186f726967696e8d0101204c6f636174696f6e00012071756572795f696430011c5175657279496400014065787065637465645f717565726965728d0101204c6f636174696f6e0001506d617962655f61637475616c5f71756572696572ad0501404f7074696f6e3c4c6f636174696f6e3e00130c5d01457870656374656420717565727920726573706f6e736520686173206265656e20726563656976656420627574207468652071756572696572206c6f636174696f6e206f662074686520726573706f6e736520646f657351016e6f74206d61746368207468652065787065637465642e205468652071756572792072656d61696e73207265676973746572656420666f722061206c617465722c2076616c69642c20726573706f6e736520746f6c626520726563656976656420616e642061637465642075706f6e2e5056657273696f6e4e6f74696679537461727465640c012c64657374696e6174696f6e8d0101204c6f636174696f6e000110636f7374790501184173736574730001286d6573736167655f696404011c58636d486173680014085901412072656d6f746520686173207265717565737465642058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e2066726f6d20757320616e64207765206861766520686f6e6f7265642069742e1d01412076657273696f6e20696e666f726d6174696f6e206d6573736167652069732073656e7420746f207468656d20616e642069747320636f737420697320696e636c756465642e5856657273696f6e4e6f746966795265717565737465640c012c64657374696e6174696f6e8d0101204c6f636174696f6e000110636f7374790501184173736574730001286d6573736167655f696404011c58636d486173680015043d015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073656e642075732058434d2076657273696f6e206368616e6765206e6f74696669636174696f6e732e6056657273696f6e4e6f74696679556e7265717565737465640c012c64657374696e6174696f6e8d0101204c6f636174696f6e000110636f7374790501184173736574730001286d6573736167655f696404011c58636d4861736800160825015765206861766520726571756573746564207468617420612072656d6f746520636861696e2073746f70732073656e64696e672075732058434d2076657273696f6e206368616e6765386e6f74696669636174696f6e732e204665657350616964080118706179696e678d0101204c6f636174696f6e0001106665657379050118417373657473001704310146656573207765726520706169642066726f6d2061206c6f636174696f6e20666f7220616e206f7065726174696f6e20286f6674656e20666f72207573696e67206053656e6458636d60292e34417373657473436c61696d65640c011068617368340110483235360001186f726967696e8d0101204c6f636174696f6e000118617373657473e505013c56657273696f6e6564417373657473001804c0536f6d65206173736574732068617665206265656e20636c61696d65642066726f6d20616e20617373657420747261706056657273696f6e4d6967726174696f6e46696e697368656404011c76657273696f6e10012858636d56657273696f6e00190484412058434d2076657273696f6e206d6967726174696f6e2066696e69736865642e3c416c696173417574686f72697a65640c011c616c69617365728d0101204c6f636174696f6e0001187461726765748d0101204c6f636174696f6e0001186578706972791d06012c4f7074696f6e3c7536343e001a085d01416e2060616c696173657260206c6f636174696f6e2077617320617574686f72697a656420627920607461726765746020746f20616c6961732069742c20617574686f72697a6174696f6e2076616c696420756e74696c58606578706972796020626c6f636b206e756d6265722e64416c696173417574686f72697a6174696f6e52656d6f76656408011c616c69617365728d0101204c6f636174696f6e0001187461726765748d0101204c6f636174696f6e001b04cc60746172676574602072656d6f76656420616c69617320617574686f72697a6174696f6e20666f722060616c6961736572602e70416c6961736573417574686f72697a6174696f6e7352656d6f7665640401187461726765748d0101204c6f636174696f6e001c04a860746172676574602072656d6f76656420616c6c20616c69617320617574686f72697a6174696f6e732e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65742d07103870657a73746167696e675f78636d087635187472616974731c4f7574636f6d6500010c20436f6d706c6574650401107573656428011857656967687400000028496e636f6d706c657465080110757365642801185765696768740001146572726f7231070140496e737472756374696f6e4572726f72000100144572726f72040031070140496e737472756374696f6e4572726f72000200003107103870657a73746167696e675f78636d0876351874726169747340496e737472756374696f6e4572726f720000080114696e646578080140496e737472756374696f6e496e6465780001146572726f72990501144572726f7200003507100c78636d087633187472616974732453656e644572726f7200011c344e6f744170706c696361626c65000000245472616e73706f727400010028556e726f757461626c650002005844657374696e6174696f6e556e737570706f7274656400030054457863656564734d61784d65737361676553697a650004003c4d697373696e67417267756d656e740005001046656573000600003907105870657a6b7577695f72756e74696d655f636f6d6d6f6e3861737369676e65645f736c6f74732470657a70616c6c6574144576656e74040454000110545065726d616e656e74536c6f7441737369676e65640400f1020118506172614964000004cc412074657972636861696e207761732061737369676e65642061207065726d616e656e742074657972636861696e20736c6f745454656d706f72617279536c6f7441737369676e65640400f1020118506172614964000104cc412074657972636861696e207761732061737369676e656420612074656d706f726172792074657972636861696e20736c6f74604d61785065726d616e656e74536c6f74734368616e676564040114736c6f747310010c753332000204d8546865206d6178696d756d206e756d626572206f66207065726d616e656e7420736c6f747320686173206265656e206368616e676564604d617854656d706f72617279536c6f74734368616e676564040114736c6f747310010c753332000304d8546865206d6178696d756d206e756d626572206f662074656d706f7261727920736c6f747320686173206265656e206368616e676564048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65743d07105070657a6b757769636861696e5f72756e74696d654476616c696461746f725f6d616e616765722470657a70616c6c6574144576656e740404540001085056616c696461746f72735265676973746572656404002d02014c5665633c543a3a56616c696461746f7249643e000004944e65772076616c696461746f7273207765726520616464656420746f20746865207365742e5856616c696461746f727344657265676973746572656404002d02014c5665633c543a3a56616c696461746f7249643e0001049456616c696461746f727320776572652072656d6f7665642066726f6d20746865207365742e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657441070c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c6574144576656e74040454000110204d696772617465640c010c746f7010010c7533320001146368696c6410010c75333200011c636f6d70757465450701404d6967726174696f6e436f6d707574650000083901476976656e206e756d626572206f66206028746f702c206368696c642960206b6579732077657265206d6967726174656420726573706563746976656c792c20776974682074686520676976656e2860636f6d70757465602e1c536c617368656408010c77686f000130543a3a4163636f756e744964000118616d6f756e7418013042616c616e63654f663c543e000104b4536f6d65206163636f756e7420676f7420736c61736865642062792074686520676976656e20616d6f756e742e544175746f4d6967726174696f6e46696e697368656400020484546865206175746f206d6967726174696f6e207461736b2066696e69736865642e1848616c7465640401146572726f72490701204572726f723c543e000304ec4d6967726174696f6e20676f742068616c7465642064756520746f20616e206572726f72206f72206d6973732d636f6e66696775726174696f6e2e047c496e6e6572206576656e7473206f6620746869732070657a70616c6c65742e45070c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c6574404d6967726174696f6e436f6d70757465000108185369676e6564000000104175746f0001000049070c7870657a70616c6c65745f73746174655f747269655f6d6967726174696f6e2470657a70616c6c6574144572726f720404540001183c4d61785369676e65644c696d697473000004804d6178207369676e6564206c696d697473206e6f74207265737065637465642e284b6579546f6f4c6f6e6700011cb441206b657920776173206c6f6e676572207468616e2074686520636f6e66696775726564206d6178696d756d2e00110154686973206d65616e73207468617420746865206d6967726174696f6e2068616c746564206174207468652063757272656e74205b6050726f6772657373605d20616e64010163616e20626520726573756d656420776974682061206c6172676572205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652e21015265747279696e672077697468207468652073616d65205b6063726174653a3a436f6e6669673a3a4d61784b65794c656e605d2076616c75652077696c6c206e6f7420776f726b2e45015468652076616c75652073686f756c64206f6e6c7920626520696e6372656173656420746f2061766f696420612073746f72616765206d6967726174696f6e20666f72207468652063757272656e746c799073746f726564205b6063726174653a3a50726f67726573733a3a4c6173744b6579605d2e384e6f74456e6f75676846756e6473000204947375626d697474657220646f6573206e6f74206861766520656e6f7567682066756e64732e284261645769746e65737300030468426164207769746e65737320646174612070726f76696465642e645369676e65644d6967726174696f6e4e6f74416c6c6f77656400040425015369676e6564206d6967726174696f6e206973206e6f7420616c6c6f776564206265636175736520746865206d6178696d756d206c696d6974206973206e6f7420736574207965742e304261644368696c64526f6f7400050460426164206368696c6420726f6f742070726f76696465642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e4d070c6070657a70616c6c65745f76616c696461746f725f706f6f6c2470657a70616c6c6574144576656e7404045400012c4c56616c696461746f724a6f696e6564506f6f6c08012476616c696461746f72000130543a3a4163636f756e74496400012063617465676f72798906015456616c696461746f72506f6f6c43617465676f72790000046c412076616c696461746f72206a6f696e65642074686520706f6f6c4456616c696461746f724c656674506f6f6c04012476616c696461746f72000130543a3a4163636f756e74496400010464412076616c696461746f72206c6566742074686520706f6f6c344e6577457261537461727465640801246572615f696e64657810010c75333200013476616c696461746f725f7365745107016856616c696461746f725365743c543a3a4163636f756e7449643e000204984e65772065726120737461727465642077697468206e65772076616c696461746f722073657448506572666f726d616e63655570646174656408012476616c696461746f72000130543a3a4163636f756e74496400011c6d6574726963736107015056616c696461746f72506572666f726d616e63650003047456616c696461746f7220706572666f726d616e6365207570646174656454506f6f6c506172616d6574657273557064617465640801386d61785f76616c696461746f727310010c7533320001286572615f6c656e677468100144426c6f636b4e756d626572466f723c543e0004045c506f6f6c20706172616d657465727320757064617465643c43617465676f7279557064617465640c012476616c696461746f72000130543a3a4163636f756e7449640001306f6c645f63617465676f72798906015456616c696461746f72506f6f6c43617465676f72790001306e65775f63617465676f72798906015456616c696461746f72506f6f6c43617465676f72790005046856616c696461746f722063617465676f72792075706461746564504f7065726174696f6e4d6f64654368616e6765640c01206f6c645f6d6f6465910601344f7065726174696f6e4d6f64650001206e65775f6d6f6465910601344f7065726174696f6e4d6f646500012061745f626c6f636b100144426c6f636b4e756d626572466f723c543e000604584f7065726174696f6e206d6f6465206368616e67656460536861646f77436f6d70617269736f6e5265636f726465641001246572615f696e64657810010c7533320001346f7665726c61705f636f756e7410010c753332000140746e706f735f6f6e6c795f636f756e7410010c75333200013c6e706f735f6f6e6c795f636f756e7410010c75333200070498536861646f7720636f6d70617269736f6e20636f6d706c6574656420666f7220616e20657261584e706f7356616c696461746f72735265636f726465640801246572615f696e64657810010c75333200013c76616c696461746f725f636f756e7410010c7533320008049c4e506f532076616c696461746f7273207265636f7264656420666f7220636f6d70617269736f6e4c457261416e616c797369735265636f726465640c01246572615f696e64657810010c753332000144746e706f735f746f74616c5f7374616b65180110753132380001406e706f735f746f74616c5f7374616b65180110753132380009046845726120616e616c797369732064617461207265636f726465645c536861646f775374617469737469637355706461746564100134657261735f616e616c797a656410010c75333200013c6176675f6f7665726c61705f62707310010c753332000144746e706f735f6265747465725f6572617310010c7533320001406e706f735f6265747465725f6572617310010c753332000a047443756d756c617469766520737461746973746963732075706461746564048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657451070c6070657a70616c6c65745f76616c696461746f725f706f6f6c1474797065733056616c696461746f7253657404244163636f756e7449640100001001246572615f696e64657810010c7533320001407374616b655f76616c696461746f72735507018c426f756e6465645665633c4163636f756e7449642c20436f6e73745533323c31303e3e0001607061726c69616d656e746172795f76616c696461746f727359070188426f756e6465645665633c4163636f756e7449642c20436f6e73745533323c363e3e0001406d657269745f76616c696461746f72735d070188426f756e6465645665633c4163636f756e7449642c20436f6e73745533323c353e3e000055070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e000059070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e00005d070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e000061070c6070657a70616c6c65745f76616c696461746f725f706f6f6c1474797065735056616c696461746f72506572666f726d616e6365000014013c626c6f636b735f70726f647563656410010c753332000134626c6f636b735f6d697373656410010c7533320001286572615f706f696e747310010c75333200013c6c6173745f6163746976655f65726110010c75333200014072657075746174696f6e5f73636f72650801087538000065070c5870657a70616c6c65745f726f6f745f74657374696e672470657a70616c6c6574144576656e7404045400010444446566656e736976655465737443616c6c00000401014576656e742064697370617463686564207768656e2074686520747269676765725f646566656e736976652065787472696e7369632069732063616c6c65642e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c657469070c4c70657a70616c6c65745f626167735f6c6973742470657a70616c6c6574144576656e740804540004490001082052656261676765640c010c77686f000130543a3a4163636f756e74496400011066726f6d300120543a3a53636f7265000108746f300120543a3a53636f7265000004a44d6f76656420616e206163636f756e742066726f6d206f6e652062616720746f20616e6f746865722e3053636f72655570646174656408010c77686f000130543a3a4163636f756e7449640001246e65775f73636f7265300120543a3a53636f7265000104d855706461746564207468652073636f7265206f6620736f6d65206163636f756e7420746f2074686520676976656e20616d6f756e742e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65746d070c3870657a70616c6c65745f7375646f2470657a70616c6c6574144576656e7404045400011014537564696404012c7375646f5f726573756c74110101384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e00047041207375646f2063616c6c206a75737420746f6f6b20706c6163652e284b65794368616e67656408010c6f6c64810201504f7074696f6e3c543a3a4163636f756e7449643e04b4546865206f6c64207375646f206b657920286966206f6e65207761732070726576696f75736c7920736574292e010c6e6577000130543a3a4163636f756e7449640488546865206e6577207375646f206b657920286966206f6e652077617320736574292e010478546865207375646f206b657920686173206265656e20757064617465642e284b657952656d6f76656400020480546865206b657920776173207065726d616e656e746c792072656d6f7665642e285375646f4173446f6e6504012c7375646f5f726573756c74110101384469737061746368526573756c7404b454686520726573756c74206f66207468652063616c6c206d61646520627920746865207375646f20757365722e0304d441205b7375646f5f61735d2850657a70616c6c65743a3a7375646f5f6173292063616c6c206a75737420746f6f6b20706c6163652e048854686520604576656e746020656e756d206f6620746869732070657a70616c6c65747107083c70657a6672616d655f73797374656d14506861736500010c384170706c7945787472696e736963040010010c7533320000003046696e616c697a6174696f6e00010038496e697469616c697a6174696f6e0002000075070000023d03007907083c70657a6672616d655f73797374656d584c61737452756e74696d6555706772616465496e666f0000080130737065635f76657273696f6e3501014c636f6465633a3a436f6d706163743c7533323e000124737065635f6e616d657d070144436f773c277374617469632c207374723e00007d07040c436f770404540181070004008107000000810700000502008507083c70657a6672616d655f73797374656d60436f646555706772616465417574686f72697a6174696f6e0404540000080124636f64655f6861736834011c543a3a48617368000134636865636b5f76657273696f6e200110626f6f6c000089070c3c70657a6672616d655f73797374656d186c696d69747330426c6f636b5765696768747300000c0128626173655f626c6f636b2801185765696768740001246d61785f626c6f636b2801185765696768740001247065725f636c6173738d0701845065724469737061746368436c6173733c57656967687473506572436c6173733e00008d070c4070657a6672616d655f737570706f7274206469737061746368405065724469737061746368436c617373040454019107000c01186e6f726d616c910701045400012c6f7065726174696f6e616c91070104540001246d616e6461746f72799107010454000091070c3c70657a6672616d655f73797374656d186c696d6974733c57656967687473506572436c6173730000100138626173655f65787472696e7369632801185765696768740001346d61785f65787472696e736963b10501384f7074696f6e3c5765696768743e0001246d61785f746f74616cb10501384f7074696f6e3c5765696768743e0001207265736572766564b10501384f7074696f6e3c5765696768743e000095070c3c70657a6672616d655f73797374656d186c696d6974732c426c6f636b4c656e677468000004010c6d6178990701545065724469737061746368436c6173733c7533323e000099070c4070657a6672616d655f737570706f7274206469737061746368405065724469737061746368436c6173730404540110000c01186e6f726d616c1001045400012c6f7065726174696f6e616c100104540001246d616e6461746f72791001045400009d07083470657a73705f776569676874733c52756e74696d65446257656967687400000801107265616430010c753634000114777269746530010c7536340000a107083470657a73705f76657273696f6e3852756e74696d6556657273696f6e0000200124737065635f6e616d657d070144436f773c277374617469632c207374723e000124696d706c5f6e616d657d070144436f773c277374617469632c207374723e000144617574686f72696e675f76657273696f6e10010c753332000130737065635f76657273696f6e10010c753332000130696d706c5f76657273696f6e10010c75333200011061706973a507011c4170697356656300014c7472616e73616374696f6e5f76657273696f6e10010c75333200013873797374656d5f76657273696f6e08010875380000a507040c436f7704045401a907000400a907000000a907000002ad0700ad0700000408d9041000b1070c3c70657a6672616d655f73797374656d2470657a70616c6c6574144572726f720404540001243c496e76616c6964537065634e616d650000081101546865206e616d65206f662073706563696669636174696f6e20646f6573206e6f74206d61746368206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e685370656356657273696f6e4e65656473546f496e63726561736500010841015468652073706563696669636174696f6e2076657273696f6e206973206e6f7420616c6c6f77656420746f206465637265617365206265747765656e207468652063757272656e742072756e74696d6550616e6420746865206e65772072756e74696d652e744661696c6564546f4578747261637452756e74696d6556657273696f6e00020cec4661696c656420746f2065787472616374207468652072756e74696d652076657273696f6e2066726f6d20746865206e65772072756e74696d652e0009014569746865722063616c6c696e672060436f72655f76657273696f6e60206f72206465636f64696e67206052756e74696d6556657273696f6e60206661696c65642e4c4e6f6e44656661756c74436f6d706f73697465000304fc537569636964652063616c6c6564207768656e20746865206163636f756e7420686173206e6f6e2d64656661756c7420636f6d706f7369746520646174612e3c4e6f6e5a65726f526566436f756e74000404350154686572652069732061206e6f6e2d7a65726f207265666572656e636520636f756e742070726576656e74696e6720746865206163636f756e742066726f6d206265696e67207075726765642e3043616c6c46696c7465726564000504d0546865206f726967696e2066696c7465722070726576656e74207468652063616c6c20746f20626520646973706174636865642e6c4d756c7469426c6f636b4d6967726174696f6e734f6e676f696e67000604550141206d756c74692d626c6f636b206d6967726174696f6e206973206f6e676f696e6720616e642070726576656e7473207468652063757272656e7420636f64652066726f6d206265696e67207265706c616365642e444e6f7468696e67417574686f72697a6564000704584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a656400080494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e04784572726f7220666f72207468652053797374656d2070657a70616c6c6574b5070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e64656456656308045401b907045300000400bd0701185665633c543e0000b9070000040801023000bd07000002b90700c1070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540104045300000400c50701185665633c543e0000c5070000020400c90704184f7074696f6e04045401cd070108104e6f6e6500000010536f6d650400cd070000010000cd070c5070657a73705f636f6e73656e7375735f626162651c646967657374732450726544696765737400010c1c5072696d6172790400d10701405072696d617279507265446967657374000100385365636f6e64617279506c61696e0400d907015c5365636f6e64617279506c61696e507265446967657374000200305365636f6e646172795652460400dd0701545365636f6e6461727956524650726544696765737400030000d1070c5070657a73705f636f6e73656e7375735f626162651c64696765737473405072696d61727950726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7405020110536c6f740001347672665f7369676e6174757265d50701305672665369676e61747572650000d507102870657a73705f636f72651c737232353531390c767266305672665369676e617475726500000801287072655f6f75747075740401305672665072654f757470757400011470726f6f66ad02012056726650726f6f660000d9070c5070657a73705f636f6e73656e7375735f626162651c646967657374735c5365636f6e64617279506c61696e507265446967657374000008013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7405020110536c6f740000dd070c5070657a73705f636f6e73656e7375735f626162651c64696765737473545365636f6e6461727956524650726544696765737400000c013c617574686f726974795f696e64657810015473757065723a3a417574686f72697479496e646578000110736c6f7405020110536c6f740001347672665f7369676e6174757265d50701305672665369676e61747572650000e107085070657a73705f636f6e73656e7375735f62616265584261626545706f6368436f6e66696775726174696f6e00000801046311020128287536342c2075363429000134616c6c6f7765645f736c6f747315020130416c6c6f776564536c6f74730000e5070c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e907045300000400ed0701185665633c543e0000e90700000408301000ed07000002e90700f1070c3870657a70616c6c65745f626162652470657a70616c6c6574144572726f7204045400011060496e76616c696445717569766f636174696f6e50726f6f660000043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c69644b65794f776e65727368697050726f6f66000104310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400020415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0003048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ef5070000040c00182000f9070c4470657a70616c6c65745f696e64696365732470657a70616c6c6574144572726f720404540001142c4e6f7441737369676e65640000048c54686520696e64657820776173206e6f7420616c72656164792061737369676e65642e204e6f744f776e6572000104a454686520696e6465782069732061737369676e656420746f20616e6f74686572206163636f756e742e14496e5573650002047054686520696e64657820776173206e6f7420617661696c61626c652e2c4e6f745472616e73666572000304c854686520736f7572636520616e642064657374696e6174696f6e206163636f756e747320617265206964656e746963616c2e245065726d616e656e74000404d054686520696e646578206973207065726d616e656e7420616e64206d6179206e6f742062652066726565642f6368616e6765642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742efd070c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454010108045300000400090801185665633c543e000001080c4870657a70616c6c65745f62616c616e6365731474797065732c42616c616e63654c6f636b041c42616c616e63650118000c01086964d90401384c6f636b4964656e746966696572000118616d6f756e7418011c42616c616e636500011c726561736f6e730508011c526561736f6e73000005080c4870657a70616c6c65745f62616c616e6365731474797065731c526561736f6e7300010c0c466565000000104d6973630001000c416c6c0002000009080000020108000d080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011108045300000400150801185665633c543e000011080c4870657a70616c6c65745f62616c616e6365731474797065732c52657365727665446174610844526573657276654964656e74696669657201d9041c42616c616e63650118000801086964d9040144526573657276654964656e746966696572000118616d6f756e7418011c42616c616e63650000150800000211080019080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454011d08045300000400210801185665633c543e00001d08144070657a6672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e7408084964018c1c42616c616e636501180008010869648c01084964000118616d6f756e7418011c42616c616e6365000021080000021d080025080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454012908045300000400310801185665633c543e00002908144070657a6672616d655f737570706f72741874726169747318746f6b656e73106d697363204964416d6f756e7408084964012d081c42616c616e636501180008010869642d0801084964000118616d6f756e7418011c42616c616e636500002d08085070657a6b757769636861696e5f72756e74696d654c52756e74696d65467265657a65526561736f6e00010000310800000229080035080c4870657a70616c6c65745f62616c616e6365732470657a70616c6c6574144572726f720804540004490001303856657374696e6742616c616e63650000049c56657374696e672062616c616e636520746f6f206869676820746f2073656e642076616c75652e544c69717569646974795265737472696374696f6e73000104c84163636f756e74206c6971756964697479207265737472696374696f6e732070726576656e74207769746864726177616c2e4c496e73756666696369656e7442616c616e63650002047842616c616e636520746f6f206c6f7720746f2073656e642076616c75652e484578697374656e7469616c4465706f736974000304ec56616c756520746f6f206c6f7720746f20637265617465206163636f756e742064756520746f206578697374656e7469616c206465706f7369742e34457870656e646162696c697479000404905472616e736665722f7061796d656e7420776f756c64206b696c6c206163636f756e742e5c4578697374696e6756657374696e675363686564756c65000504cc412076657374696e67207363686564756c6520616c72656164792065786973747320666f722074686973206163636f756e742e2c446561644163636f756e740006048c42656e6566696369617279206163636f756e74206d757374207072652d65786973742e3c546f6f4d616e795265736572766573000704b84e756d626572206f66206e616d65642072657365727665732065786365656420604d61785265736572766573602e30546f6f4d616e79486f6c6473000804f84e756d626572206f6620686f6c647320657863656564206056617269616e74436f756e744f663c543a3a52756e74696d65486f6c64526561736f6e3e602e38546f6f4d616e79467265657a6573000904984e756d626572206f6620667265657a65732065786365656420604d6178467265657a6573602e4c49737375616e63654465616374697661746564000a0401015468652069737375616e63652063616e6e6f74206265206d6f6469666965642073696e636520697420697320616c72656164792064656163746976617465642e2444656c74615a65726f000b04645468652064656c74612063616e6e6f74206265207a65726f2e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e39080c4070657a73705f61726974686d657469632c66697865645f706f696e7424466978656455313238000004001801107531323800003d08087470657a70616c6c65745f7472616e73616374696f6e5f7061796d656e742052656c6561736573000108245631416e6369656e74000000085632000100004108104070657a6672616d655f737570706f7274187472616974731c73746f72616765184e6f44726f70040454014508000400450801045400004508184070657a6672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6524696d62616c616e636524496d62616c616e63650c04420118184f6e44726f7000384f70706f736974654f6e44726f700000040118616d6f756e7418010442000049080c3470657a73705f7374616b696e671c6f6666656e6365384f6666656e636544657461696c7308205265706f727465720100204f6666656e646572014d08000801206f6666656e6465724d0801204f6666656e6465720001247265706f72746572732d0201345665633c5265706f727465723e00004d080000040800150100510800000408d4380055080000040834100059080000025d08005d08000004080049020061080000026508006508000004081069080069080c3470657a73705f7374616b696e671c6f6666656e63653c4f6666656e6365536576657269747900000400e8011c50657262696c6c00006d08000004087108380071080c2870657a73705f636f72651863727970746f244b65795479706549640000040048011c5b75383b20345d000075080c4470657a70616c6c65745f73657373696f6e2470657a70616c6c6574144572726f7204045400011430496e76616c696450726f6f6600000460496e76616c6964206f776e6572736869702070726f6f662e5c4e6f4173736f63696174656456616c696461746f7249640001049c4e6f206173736f6369617465642076616c696461746f7220494420666f72206163636f756e742e344475706c6963617465644b65790002046452656769737465726564206475706c6963617465206b65792e184e6f4b657973000304a44e6f206b65797320617265206173736f63696174656420776974682074686973206163636f756e742e244e6f4163636f756e7400040419014b65792073657474696e67206163636f756e74206973206e6f74206c6976652c20736f206974277320696d706f737369626c6520746f206173736f6369617465206b6579732e04804572726f7220666f72207468652073657373696f6e2070657a70616c6c65742e7908084470657a70616c6c65745f7374616b696e67345374616b696e674c656467657204045400001401147374617368000130543a3a4163636f756e744964000114746f74616c4501013042616c616e63654f663c543e0001186163746976654501013042616c616e63654f663c543e000124756e6c6f636b696e67890201f0426f756e6465645665633c556e6c6f636b4368756e6b3c42616c616e63654f663c543e3e2c20543a3a4d6178556e6c6f636b696e674368756e6b733e0001586c65676163795f636c61696d65645f726577617264737d080194426f756e6465645665633c457261496e6465782c20543a3a486973746f727944657074683e00007d080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190101185665633c543e00008108084470657a70616c6c65745f7374616b696e672c4e6f6d696e6174696f6e7304045400000c011c74617267657473850801b4426f756e6465645665633c543a3a4163636f756e7449642c204d61784e6f6d696e6174696f6e734f663c543e3e0001307375626d69747465645f696e100120457261496e64657800012873757070726573736564200110626f6f6c000085080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e00008908084470657a70616c6c65745f7374616b696e6734416374697665457261496e666f0000080114696e646578100120457261496e64657800011473746172741d06012c4f7074696f6e3c7536343e00008d08000004081000009108083470657a73705f7374616b696e67204578706f7375726508244163636f756e74496401001c42616c616e63650118000c0114746f74616c4501011c42616c616e636500010c6f776e4501011c42616c616e63650001186f7468657273950801ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e000095080000029908009908083470657a73705f7374616b696e6748496e646976696475616c4578706f7375726508244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e74496400011476616c75654501011c42616c616e636500009d08083470657a73705f7374616b696e675450616765644578706f737572654d65746164617461041c42616c616e6365011800100114746f74616c4501011c42616c616e636500010c6f776e4501011c42616c616e636500013c6e6f6d696e61746f725f636f756e7410010c753332000128706167655f636f756e74100110506167650000a1080000040c10001000a508083470657a73705f7374616b696e67304578706f737572655061676508244163636f756e74496401001c42616c616e6365011800080128706167655f746f74616c4501011c42616c616e63650001186f7468657273950801ac5665633c496e646976696475616c4578706f737572653c4163636f756e7449642c2042616c616e63653e3e0000a908084470657a70616c6c65745f7374616b696e673c457261526577617264506f696e747304244163636f756e744964010000080114746f74616c10012c526577617264506f696e74000128696e646976696475616cad08018042547265654d61703c4163636f756e7449642c20526577617264506f696e743e0000ad08042042547265654d617008044b010004560110000400b108000000b108000002b50800b50800000408001000b908000002bd0800bd08084470657a70616c6c65745f7374616b696e6738556e6170706c696564536c61736808244163636f756e74496401001c42616c616e636501180014012476616c696461746f720001244163636f756e74496400010c6f776e18011c42616c616e63650001186f7468657273c10801645665633c284163636f756e7449642c2042616c616e6365293e0001247265706f72746572732d0201385665633c4163636f756e7449643e0001187061796f757418011c42616c616e63650000c108000002c50800c50800000408001800c90800000408e81800cd080c4470657a70616c6c65745f7374616b696e6720736c617368696e6734536c617368696e675370616e7300001001287370616e5f696e6465781001245370616e496e6465780001286c6173745f7374617274100120457261496e6465780001486c6173745f6e6f6e7a65726f5f736c617368100120457261496e6465780001147072696f72190101345665633c457261496e6465783e0000d1080c4470657a70616c6c65745f7374616b696e6720736c617368696e67285370616e5265636f7264041c42616c616e636501180008011c736c617368656418011c42616c616e6365000120706169645f6f757418011c42616c616e63650000d508104470657a70616c6c65745f7374616b696e672470657a70616c6c65742470657a70616c6c6574144572726f72040454000188344e6f74436f6e74726f6c6c6572000004644e6f74206120636f6e74726f6c6c6572206163636f756e742e204e6f745374617368000104504e6f742061207374617368206163636f756e742e34416c7265616479426f6e64656400020460537461736820697320616c726561647920626f6e6465642e34416c726561647950616972656400030474436f6e74726f6c6c657220697320616c7265616479207061697265642e30456d7074795461726765747300040460546172676574732063616e6e6f7420626520656d7074792e384475706c6963617465496e646578000504404475706c696361746520696e6465782e44496e76616c6964536c617368496e64657800060484536c617368207265636f726420696e646578206f7574206f6620626f756e64732e40496e73756666696369656e74426f6e6400070c590143616e6e6f74206861766520612076616c696461746f72206f72206e6f6d696e61746f7220726f6c652c20776974682076616c7565206c657373207468616e20746865206d696e696d756d20646566696e65642062793d01676f7665726e616e6365202873656520604d696e56616c696461746f72426f6e646020616e6420604d696e4e6f6d696e61746f72426f6e6460292e20496620756e626f6e64696e67206973207468651501696e74656e74696f6e2c20606368696c6c6020666972737420746f2072656d6f7665206f6e65277320726f6c652061732076616c696461746f722f6e6f6d696e61746f722e304e6f4d6f72654368756e6b730008049043616e206e6f74207363686564756c65206d6f726520756e6c6f636b206368756e6b732e344e6f556e6c6f636b4368756e6b000904a043616e206e6f74207265626f6e6420776974686f757420756e6c6f636b696e67206368756e6b732e3046756e646564546172676574000a04c8417474656d7074696e6720746f2074617267657420612073746173682074686174207374696c6c206861732066756e64732e48496e76616c6964457261546f526577617264000b0458496e76616c69642065726120746f207265776172642e68496e76616c69644e756d6265724f664e6f6d696e6174696f6e73000c0478496e76616c6964206e756d626572206f66206e6f6d696e6174696f6e732e484e6f74536f72746564416e64556e69717565000d04804974656d7320617265206e6f7420736f7274656420616e6420756e697175652e38416c7265616479436c61696d6564000e0409015265776172647320666f72207468697320657261206861766520616c7265616479206265656e20636c61696d656420666f7220746869732076616c696461746f722e2c496e76616c696450616765000f04844e6f206e6f6d696e61746f7273206578697374206f6e207468697320706167652e54496e636f7272656374486973746f72794465707468001004c0496e636f72726563742070726576696f757320686973746f727920646570746820696e7075742070726f76696465642e58496e636f7272656374536c617368696e675370616e73001104b0496e636f7272656374206e756d626572206f6620736c617368696e67207370616e732070726f76696465642e2042616453746174650012043901496e7465726e616c20737461746520686173206265636f6d6520736f6d65686f7720636f7272757074656420616e6420746865206f7065726174696f6e2063616e6e6f7420636f6e74696e75652e38546f6f4d616e795461726765747300130494546f6f206d616e79206e6f6d696e6174696f6e207461726765747320737570706c6965642e244261645461726765740014043d0141206e6f6d696e6174696f6e207461726765742077617320737570706c69656420746861742077617320626c6f636b6564206f72206f7468657277697365206e6f7420612076616c696461746f722e4043616e6e6f744368696c6c4f74686572001504550154686520757365722068617320656e6f75676820626f6e6420616e6420746875732063616e6e6f74206265206368696c6c656420666f72636566756c6c7920627920616e2065787465726e616c20706572736f6e2e44546f6f4d616e794e6f6d696e61746f72730016084d0154686572652061726520746f6f206d616e79206e6f6d696e61746f727320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865207374616b696e67b473657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e44546f6f4d616e7956616c696461746f7273001708550154686572652061726520746f6f206d616e792076616c696461746f722063616e6469646174657320696e207468652073797374656d2e20476f7665726e616e6365206e6565647320746f2061646a75737420746865d47374616b696e672073657474696e677320746f206b656570207468696e6773207361666520666f72207468652072756e74696d652e40436f6d6d697373696f6e546f6f4c6f77001804e0436f6d6d697373696f6e20697320746f6f206c6f772e204d757374206265206174206c6561737420604d696e436f6d6d697373696f6e602e2c426f756e644e6f744d657400190458536f6d6520626f756e64206973206e6f74206d65742e50436f6e74726f6c6c657244657072656361746564001a04010155736564207768656e20617474656d7074696e6720746f20757365206465707265636174656420636f6e74726f6c6c6572206163636f756e74206c6f6769632e4c43616e6e6f74526573746f72654c6564676572001b045843616e6e6f742072657365742061206c65646765722e6c52657761726444657374696e6174696f6e52657374726963746564001c04ac50726f7669646564207265776172642064657374696e6174696f6e206973206e6f7420616c6c6f7765642e384e6f74456e6f75676846756e6473001d049c4e6f7420656e6f7567682066756e647320617661696c61626c6520746f2077697468647261772e5c5669727475616c5374616b65724e6f74416c6c6f776564001e04a84f7065726174696f6e206e6f7420616c6c6f77656420666f72207669727475616c207374616b6572732e3c43616e6e6f74526561705374617368001f040101537461736820636f756c64206e6f7420626520726561706564206173206f746865722070657a70616c6c6574206d6967687420646570656e64206f6e2069742e3c416c72656164794d696772617465640020040901546865207374616b65206f662074686973206163636f756e7420697320616c7265616479206d6967726174656420746f206046756e6769626c656020686f6c64732e285265737472696374656400210859014163636f756e7420697320726573747269637465642066726f6d2070617274696369706174696f6e20696e207374616b696e672e2054686973206d61792068617070656e20696620746865206163636f756e74206973c47374616b696e6720696e20616e6f746865722077617920616c72656164792c20737563682061732076696120706f6f6c2e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ed908084470657a70616c6c65745f6772616e6470612c53746f726564537461746504044e01100110104c6976650000003050656e64696e6750617573650801307363686564756c65645f61741001044e00011464656c61791001044e000100185061757365640002003450656e64696e67526573756d650801307363686564756c65645f61741001044e00011464656c61791001044e00030000dd08084470657a70616c6c65745f6772616e6470614c53746f72656450656e64696e674368616e676508044e0110144c696d697400001001307363686564756c65645f61741001044e00011464656c61791001044e0001406e6578745f617574686f726974696573e108016c426f756e646564417574686f726974794c6973743c4c696d69743e000118666f72636564ec01244f7074696f6e3c4e3e0000e1080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454010501045300000400010101185665633c543e0000e5080c4470657a70616c6c65745f6772616e6470612470657a70616c6c6574144572726f7204045400011c2c50617573654661696c65640000080501417474656d707420746f207369676e616c204752414e445041207061757365207768656e2074686520617574686f72697479207365742069736e2774206c697665a42865697468657220706175736564206f7220616c72656164792070656e64696e67207061757365292e30526573756d654661696c65640001081101417474656d707420746f207369676e616c204752414e44504120726573756d65207768656e2074686520617574686f72697479207365742069736e277420706175736564a028656974686572206c697665206f7220616c72656164792070656e64696e6720726573756d65292e344368616e676550656e64696e67000204e8417474656d707420746f207369676e616c204752414e445041206368616e67652077697468206f6e6520616c72656164792070656e64696e672e1c546f6f536f6f6e000304bc43616e6e6f74207369676e616c20666f72636564206368616e676520736f20736f6f6e206166746572206c6173742e60496e76616c69644b65794f776e65727368697050726f6f66000404310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c696445717569766f636174696f6e50726f6f660005043101416e2065717569766f636174696f6e2070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ee9080c4c626f756e6465645f636f6c6c656374696f6e73407765616b5f626f756e6465645f766563385765616b426f756e646564566563080454015502045300000400ed0801185665633c543e0000ed08000002550200f1080c5870657a70616c6c65745f666173745f756e7374616b6514747970657338556e7374616b6552657175657374040454000008011c73746173686573f50801d8426f756e6465645665633c28543a3a4163636f756e7449642c2042616c616e63654f663c543e292c20543a3a426174636853697a653e00011c636865636b6564f9080190426f756e6465645665633c457261496e6465782c204d6178436865636b696e673c543e3e0000f5080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c508045300000400c10801185665633c543e0000f9080c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190101185665633c543e0000fd080c5870657a70616c6c65745f666173745f756e7374616b652470657a70616c6c6574144572726f72040454000118344e6f74436f6e74726f6c6c657200000cb85468652070726f766964656420436f6e74726f6c6c6572206163636f756e7420776173206e6f7420666f756e642e00c054686973206d65616e7320746861742074686520676976656e206163636f756e74206973206e6f7420626f6e6465642e34416c7265616479517565756564000104ac54686520626f6e646564206163636f756e742068617320616c7265616479206265656e207175657565642e384e6f7446756c6c79426f6e646564000204bc54686520626f6e646564206163636f756e74206861732061637469766520756e6c6f636b696e67206368756e6b732e244e6f74517565756564000304b45468652070726f766964656420756e2d7374616b6572206973206e6f7420696e2074686520605175657565602e2c416c72656164794865616400040405015468652070726f766964656420756e2d7374616b657220697320616c726561647920696e20486561642c20616e642063616e6e6f7420646572656769737465722e3843616c6c4e6f74416c6c6f77656400050429015468652063616c6c206973206e6f7420616c6c6f776564206174207468697320706f696e742062656361757365207468652070657a70616c6c6574206973206e6f74206163746976652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e01090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401340453000004005d0301185665633c543e00000509085070657a70616c6c65745f636f6c6c65637469766514566f74657308244163636f756e74496401002c426c6f636b4e756d626572011000140114696e64657810013450726f706f73616c496e6465780001247468726573686f6c6410012c4d656d626572436f756e74000110617965732d0201385665633c4163636f756e7449643e0001106e6179732d0201385665633c4163636f756e7449643e00010c656e6410012c426c6f636b4e756d626572000009090c5070657a70616c6c65745f636f6c6c6563746976652470657a70616c6c6574144572726f72080454000449000130244e6f744d656d6265720000045c4163636f756e74206973206e6f742061206d656d626572444475706c696361746550726f706f73616c0001047c4475706c69636174652070726f706f73616c73206e6f7420616c6c6f7765643c50726f706f73616c4d697373696e670002044c50726f706f73616c206d7573742065786973742857726f6e67496e646578000304404d69736d61746368656420696e646578344475706c6963617465566f7465000404584475706c696361746520766f74652069676e6f72656448416c7265616479496e697469616c697a6564000504804d656d626572732061726520616c726561647920696e697469616c697a65642120546f6f4561726c79000604010154686520636c6f73652063616c6c20776173206d61646520746f6f206561726c792c206265666f72652074686520656e64206f662074686520766f74696e672e40546f6f4d616e7950726f706f73616c73000704fc54686572652063616e206f6e6c792062652061206d6178696d756d206f6620604d617850726f706f73616c7360206163746976652070726f706f73616c732e4c57726f6e6750726f706f73616c576569676874000804d054686520676976656e2077656967687420626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e4c57726f6e6750726f706f73616c4c656e677468000904d054686520676976656e206c656e67746820626f756e6420666f72207468652070726f706f73616c2077617320746f6f206c6f772e545072696d654163636f756e744e6f744d656d626572000a04745072696d65206163636f756e74206973206e6f742061206d656d6265723850726f706f73616c416374697665000b046450726f706f73616c206973207374696c6c206163746976652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e0d09084870657a70616c6c65745f74726561737572792050726f706f73616c08244163636f756e74496401001c42616c616e636501180010012070726f706f7365720001244163636f756e74496400011476616c756518011c42616c616e636500012c62656e65666963696172790001244163636f756e744964000110626f6e6418011c42616c616e6365000011090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190101185665633c543e00001509084870657a70616c6c65745f74726561737572792c5370656e64537461747573142441737365744b696e6401250130417373657442616c616e636501182c42656e656669636961727901c5012c426c6f636b4e756d6265720110245061796d656e74496401300018012861737365745f6b696e642501012441737365744b696e64000118616d6f756e74180130417373657442616c616e636500012c62656e6566696369617279c501012c42656e656669636961727900012876616c69645f66726f6d10012c426c6f636b4e756d6265720001246578706972655f617410012c426c6f636b4e756d6265720001187374617475731909015c5061796d656e7453746174653c5061796d656e7449643e00001909084870657a70616c6c65745f7472656173757279305061796d656e745374617465040849640130010c1c50656e64696e6700000024417474656d7074656404010869643001084964000100184661696c6564000200001d090c4070657a73705f61726974686d65746963287065725f7468696e67731c5065726d696c6c0000040010010c75333200002109084070657a6672616d655f737570706f72742050616c6c6574496400000400d904011c5b75383b20385d000025090c4870657a70616c6c65745f74726561737572792470657a70616c6c6574144572726f7208045400044900012c30496e76616c6964496e646578000004ac4e6f2070726f706f73616c2c20626f756e7479206f72207370656e64206174207468617420696e6465782e40546f6f4d616e79417070726f76616c7300010480546f6f206d616e7920617070726f76616c7320696e207468652071756575652e58496e73756666696369656e745065726d697373696f6e0002084501546865207370656e64206f726967696e2069732076616c6964206275742074686520616d6f756e7420697420697320616c6c6f77656420746f207370656e64206973206c6f776572207468616e207468654c616d6f756e7420746f206265207370656e742e4c50726f706f73616c4e6f74417070726f7665640003047c50726f706f73616c20686173206e6f74206265656e20617070726f7665642e584661696c6564546f436f6e7665727442616c616e636500040451015468652062616c616e6365206f6620746865206173736574206b696e64206973206e6f7420636f6e7665727469626c6520746f207468652062616c616e6365206f6620746865206e61746976652061737365742e305370656e6445787069726564000504b0546865207370656e6420686173206578706972656420616e642063616e6e6f7420626520636c61696d65642e2c4561726c795061796f7574000604a4546865207370656e64206973206e6f742079657420656c696769626c6520666f72207061796f75742e40416c7265616479417474656d707465640007049c546865207061796d656e742068617320616c7265616479206265656e20617474656d707465642e2c5061796f75744572726f72000804cc54686572652077617320736f6d65206973737565207769746820746865206d656368616e69736d206f66207061796d656e742e304e6f74417474656d70746564000904a4546865207061796f757420776173206e6f742079657420617474656d707465642f636c61696d65642e30496e636f6e636c7573697665000a04c4546865207061796d656e7420686173206e656974686572206661696c6564206e6f7220737563636565646564207965742e04844572726f7220666f72207468652074726561737572792070657a70616c6c65742e29090000040800cd01002d090c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6710766f746518566f74696e67141c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f7465730001081c43617374696e670400310901c843617374696e673c42616c616e63652c20426c6f636b4e756d6265722c20506f6c6c496e6465782c204d6178566f7465733e0000002844656c65676174696e670400490901ac44656c65676174696e673c42616c616e63652c204163636f756e7449642c20426c6f636b4e756d6265723e0001000031090c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74651c43617374696e67101c42616c616e636501182c426c6f636b4e756d626572011024506f6c6c496e6465780110204d6178566f74657300000c0114766f746573350901dc426f756e6465645665633c28506f6c6c496e6465782c204163636f756e74566f74653c42616c616e63653e292c204d6178566f7465733e00012c64656c65676174696f6e734109015044656c65676174696f6e733c42616c616e63653e0001147072696f724509017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e000035090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540139090453000004003d0901185665633c543e000039090000040810d101003d0900000239090041090c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e671474797065732c44656c65676174696f6e73041c42616c616e6365011800080114766f74657318011c42616c616e636500011c6361706974616c18011c42616c616e6365000045090c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6710766f7465245072696f724c6f636b082c426c6f636b4e756d62657201101c42616c616e6365011800080010012c426c6f636b4e756d626572000018011c42616c616e6365000049090c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e6710766f74652844656c65676174696e670c1c42616c616e63650118244163636f756e74496401002c426c6f636b4e756d62657201100014011c62616c616e636518011c42616c616e63650001187461726765740001244163636f756e744964000128636f6e76696374696f6ed1020128436f6e76696374696f6e00012c64656c65676174696f6e734109015044656c65676174696f6e733c42616c616e63653e0001147072696f724509017c5072696f724c6f636b3c426c6f636b4e756d6265722c2042616c616e63653e00004d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015109045300000400550901185665633c543e0000510900000408cd011800550900000251090059090c6c70657a70616c6c65745f636f6e76696374696f6e5f766f74696e672470657a70616c6c6574144572726f72080454000449000130284e6f744f6e676f696e6700000450506f6c6c206973206e6f74206f6e676f696e672e204e6f74566f746572000104ac54686520676976656e206163636f756e7420646964206e6f7420766f7465206f6e2074686520706f6c6c2e304e6f5065726d697373696f6e000204c8546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e2e3c4e6f5065726d697373696f6e5965740003045901546865206163746f7220686173206e6f207065726d697373696f6e20746f20636f6e647563742074686520616374696f6e207269676874206e6f77206275742077696c6c20646f20696e20746865206675747572652e44416c726561647944656c65676174696e6700040488546865206163636f756e7420697320616c72656164792064656c65676174696e672e34416c7265616479566f74696e670005085501546865206163636f756e742063757272656e746c792068617320766f74657320617474616368656420746f20697420616e6420746865206f7065726174696f6e2063616e6e6f74207375636365656420756e74696ca07468657365206172652072656d6f766564207468726f756768206072656d6f76655f766f7465602e44496e73756666696369656e7446756e6473000604fc546f6f206869676820612062616c616e6365207761732070726f7669646564207468617420746865206163636f756e742063616e6e6f74206166666f72642e344e6f7444656c65676174696e67000704a0546865206163636f756e74206973206e6f742063757272656e746c792064656c65676174696e672e204e6f6e73656e73650008049444656c65676174696f6e20746f206f6e6573656c66206d616b6573206e6f2073656e73652e3c4d6178566f74657352656163686564000904804d6178696d756d206e756d626572206f6620766f74657320726561636865642e2c436c6173734e6565646564000a04390154686520636c617373206d75737420626520737570706c6965642073696e6365206974206973206e6f7420656173696c792064657465726d696e61626c652066726f6d207468652073746174652e20426164436c617373000b048454686520636c61737320494420737570706c69656420697320696e76616c69642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e5d090c4c70657a70616c6c65745f7265666572656e6461147479706573385265666572656e64756d496e666f201c547261636b496401cd013452756e74696d654f726967696e01dd02184d6f6d656e7401101043616c6c01dd011c42616c616e636501181454616c6c7901a906244163636f756e74496401003c5363686564756c6541646472657373013d0301181c4f6e676f696e6704006109018d015265666572656e64756d5374617475733c547261636b49642c2052756e74696d654f726967696e2c204d6f6d656e742c2043616c6c2c2042616c616e63652c2054616c6c792c0a4163636f756e7449642c205363686564756c65416464726573732c3e00000020417070726f7665640c001001184d6f6d656e7400006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001002052656a65637465640c001001184d6f6d656e7400006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0002002443616e63656c6c65640c001001184d6f6d656e7400006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0003002054696d65644f75740c001001184d6f6d656e7400006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e00006909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e000400184b696c6c656404001001184d6f6d656e740005000061090c4c70657a70616c6c65745f7265666572656e6461147479706573405265666572656e64756d537461747573201c547261636b496401cd013452756e74696d654f726967696e01dd02184d6f6d656e7401101043616c6c01dd011c42616c616e636501181454616c6c7901a906244163636f756e74496401003c5363686564756c6541646472657373013d03002c0114747261636bcd01011c547261636b49640001186f726967696edd02013452756e74696d654f726967696e00012070726f706f73616cdd01011043616c6c000124656e6163746d656e74f9020150446973706174636854696d653c4d6f6d656e743e0001247375626d69747465641001184d6f6d656e740001487375626d697373696f6e5f6465706f7369746509016c4465706f7369743c4163636f756e7449642c2042616c616e63653e0001406465636973696f6e5f6465706f7369746909018c4f7074696f6e3c4465706f7369743c4163636f756e7449642c2042616c616e63653e3e0001206465636964696e676d0901784f7074696f6e3c4465636964696e675374617475733c4d6f6d656e743e3e00011474616c6c79a906011454616c6c79000120696e5f7175657565200110626f6f6c000114616c61726d750901844f7074696f6e3c284d6f6d656e742c205363686564756c6541646472657373293e000065090c4c70657a70616c6c65745f7265666572656e64611474797065731c4465706f73697408244163636f756e74496401001c42616c616e636501180008010c77686f0001244163636f756e744964000118616d6f756e7418011c42616c616e63650000690904184f7074696f6e0404540165090108104e6f6e6500000010536f6d650400650900000100006d0904184f7074696f6e0404540171090108104e6f6e6500000010536f6d6504007109000001000071090c4c70657a70616c6c65745f7265666572656e6461147479706573384465636964696e67537461747573042c426c6f636b4e756d62657201100008011473696e636510012c426c6f636b4e756d626572000128636f6e6669726d696e67ec014c4f7074696f6e3c426c6f636b4e756d6265723e0000750904184f7074696f6e0404540179090108104e6f6e6500000010536f6d65040079090000010000790900000408103d03007d090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454018109045300000400850901185665633c543e0000810900000408101800850900000281090089090000028d09008d0900000408cd0191090091090c4c70657a70616c6c65745f7265666572656e646114747970657330547261636b44657461696c730c1c42616c616e63650118184d6f6d656e740110104e616d65018107002401106e616d65810701104e616d650001306d61785f6465636964696e6710010c7533320001406465636973696f6e5f6465706f73697418011c42616c616e6365000138707265706172655f706572696f641001184d6f6d656e7400013c6465636973696f6e5f706572696f641001184d6f6d656e74000138636f6e6669726d5f706572696f641001184d6f6d656e740001506d696e5f656e6163746d656e745f706572696f641001184d6f6d656e740001306d696e5f617070726f76616c95090114437572766500012c6d696e5f737570706f7274950901144375727665000095090c4c70657a70616c6c65745f7265666572656e646114747970657314437572766500010c404c696e65617244656372656173696e670c01186c656e677468e8011c50657262696c6c000114666c6f6f72e8011c50657262696c6c0001106365696ce8011c50657262696c6c000000445374657070656444656372656173696e67100114626567696ee8011c50657262696c6c00010c656e64e8011c50657262696c6c00011073746570e8011c50657262696c6c000118706572696f64e8011c50657262696c6c000100285265636970726f63616c0c0118666163746f72990901204669786564493634000120785f6f6666736574990901204669786564493634000120795f6f66667365749909012046697865644936340002000099090c4070657a73705f61726974686d657469632c66697865645f706f696e74204669786564493634000004009d09010c69363400009d090000050c00a1090c4c70657a70616c6c65745f7265666572656e64612470657a70616c6c6574144572726f72080454000449000138284e6f744f6e676f696e67000004685265666572656e64756d206973206e6f74206f6e676f696e672e284861734465706f736974000104b85265666572656e64756d2773206465636973696f6e206465706f73697420697320616c726561647920706169642e20426164547261636b0002049c54686520747261636b206964656e74696669657220676976656e2077617320696e76616c69642e1046756c6c000304310154686572652061726520616c726561647920612066756c6c20636f6d706c656d656e74206f66207265666572656e646120696e2070726f677265737320666f72207468697320747261636b2e285175657565456d70747900040480546865207175657565206f662074686520747261636b20697320656d7074792e344261645265666572656e64756d000504e4546865207265666572656e64756d20696e6465782070726f766964656420697320696e76616c696420696e207468697320636f6e746578742e2c4e6f7468696e67546f446f000604ac546865726520776173206e6f7468696e6720746f20646f20696e2074686520616476616e63656d656e742e1c4e6f547261636b000704a04e6f20747261636b2065786973747320666f72207468652070726f706f73616c206f726967696e2e28556e66696e69736865640008040101416e79206465706f7369742063616e6e6f7420626520726566756e64656420756e74696c20616674657220746865206465636973696f6e206973206f7665722e304e6f5065726d697373696f6e000904a8546865206465706f73697420726566756e646572206973206e6f7420746865206465706f7369746f722e244e6f4465706f736974000a04cc546865206465706f7369742063616e6e6f7420626520726566756e6465642073696e6365206e6f6e6520776173206d6164652e24426164537461747573000b04d0546865207265666572656e64756d2073746174757320697320696e76616c696420666f722074686973206f7065726174696f6e2e40507265696d6167654e6f744578697374000c047054686520707265696d61676520646f6573206e6f742065786973742e84507265696d61676553746f72656457697468446966666572656e744c656e677468000d04150154686520707265696d6167652069732073746f7265642077697468206120646966666572656e74206c656e677468207468616e20746865206f6e652070726f76696465642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ea5090c4c70657a70616c6c65745f77686974656c6973742470657a70616c6c6574144572726f720404540001144c556e617661696c61626c65507265496d616765000004c854686520707265696d616765206f66207468652063616c6c206861736820636f756c64206e6f74206265206c6f616465642e3c556e6465636f6461626c6543616c6c000104785468652063616c6c20636f756c64206e6f74206265206465636f6465642e60496e76616c696443616c6c5765696768745769746e657373000204ec54686520776569676874206f6620746865206465636f6465642063616c6c2077617320686967686572207468616e20746865207769746e6573732e5043616c6c49734e6f7457686974656c6973746564000304745468652063616c6c20776173206e6f742077686974656c69737465642e5843616c6c416c726561647957686974656c6973746564000404a05468652063616c6c2077617320616c72656164792077686974656c69737465643b204e6f2d4f702e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ea909105870657a6b7577695f72756e74696d655f636f6d6d6f6e18636c61696d732470657a70616c6c6574144572726f7204045400011860496e76616c6964457468657265756d5369676e61747572650000046c496e76616c696420457468657265756d207369676e61747572652e405369676e65724861734e6f436c61696d00010478457468657265756d206164647265737320686173206e6f20636c61696d2e4053656e6465724861734e6f436c61696d000204b04163636f756e742049442073656e64696e67207472616e73616374696f6e20686173206e6f20636c61696d2e30506f74556e646572666c6f77000308490154686572652773206e6f7420656e6f75676820696e2074686520706f7420746f20706179206f757420736f6d6520756e76657374656420616d6f756e742e2047656e6572616c6c7920696d706c6965732061306c6f676963206572726f722e40496e76616c696453746174656d656e740004049041206e65656465642073746174656d656e7420776173206e6f7420696e636c756465642e4c56657374656442616c616e6365457869737473000504a4546865206163636f756e7420616c7265616479206861732061207665737465642062616c616e63652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ead090c4470657a70616c6c65745f7574696c6974792470657a70616c6c6574144572726f7204045400010430546f6f4d616e7943616c6c730000045c546f6f206d616e792063616c6c7320626174636865642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742eb1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013103045300000400b50901185665633c543e0000b509000002310300b909084470657a70616c6c65745f76657374696e672052656c656173657300010808563000000008563100010000bd090c4470657a70616c6c65745f76657374696e672470657a70616c6c6574144572726f72040454000114284e6f7456657374696e6700000484546865206163636f756e7420676976656e206973206e6f742076657374696e672e5441744d617856657374696e675363686564756c65730001082501546865206163636f756e7420616c72656164792068617320604d617856657374696e675363686564756c65736020636f756e74206f66207363686564756c657320616e642074687573510163616e6e6f742061646420616e6f74686572206f6e652e20436f6e7369646572206d657267696e67206578697374696e67207363686564756c657320696e206f7264657220746f2061646420616e6f746865722e24416d6f756e744c6f770002040501416d6f756e74206265696e67207472616e7366657272656420697320746f6f206c6f7720746f2063726561746520612076657374696e67207363686564756c652e605363686564756c65496e6465784f75744f66426f756e6473000304d0416e20696e64657820776173206f7574206f6620626f756e6473206f66207468652076657374696e67207363686564756c65732e54496e76616c69645363686564756c65506172616d730004040d014661696c656420746f206372656174652061206e6577207363686564756c65206265636175736520736f6d6520706172616d657465722077617320696e76616c69642e04804572726f7220666f72207468652076657374696e672070657a70616c6c65742ec1090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401c509045300000400cd0901185665633c543e0000c50904184f7074696f6e04045401c9090108104e6f6e6500000010536f6d650400c9090000010000c909084c70657a70616c6c65745f7363686564756c6572245363686564756c656414104e616d6501041043616c6c01dd012c426c6f636b4e756d62657201103450616c6c6574734f726967696e01dd02244163636f756e7449640100001401206d617962655f6964cd0601304f7074696f6e3c4e616d653e0001207072696f726974790801487363686564756c653a3a5072696f7269747900011063616c6cdd01011043616c6c0001386d617962655f706572696f646963390301944f7074696f6e3c7363686564756c653a3a506572696f643c426c6f636b4e756d6265723e3e0001186f726967696edd02013450616c6c6574734f726967696e0000cd09000002c50900d109084c70657a70616c6c65745f7363686564756c65722c5265747279436f6e6669670418506572696f640110000c0134746f74616c5f72657472696573080108753800012472656d61696e696e670801087538000118706572696f64100118506572696f640000d5090c4c70657a70616c6c65745f7363686564756c65722470657a70616c6c6574144572726f72040454000114404661696c6564546f5363686564756c65000004644661696c656420746f207363686564756c6520612063616c6c204e6f74466f756e640001047c43616e6e6f742066696e6420746865207363686564756c65642063616c6c2e5c546172676574426c6f636b4e756d626572496e50617374000204a4476976656e2074617267657420626c6f636b206e756d62657220697320696e2074686520706173742e4852657363686564756c654e6f4368616e6765000304f052657363686564756c65206661696c6564206265636175736520697420646f6573206e6f74206368616e6765207363686564756c65642074696d652e144e616d6564000404d0417474656d707420746f207573652061206e6f6e2d6e616d65642066756e6374696f6e206f6e2061206e616d6564207461736b2e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ed90900000408dd091800dd090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401e109045300000400e50901185665633c543e0000e109083c70657a70616c6c65745f70726f78793c50726f7879446566696e6974696f6e0c244163636f756e74496401002450726f7879547970650149032c426c6f636b4e756d6265720110000c012064656c65676174650001244163636f756e74496400012870726f78795f747970654903012450726f78795479706500011464656c617910012c426c6f636b4e756d6265720000e509000002e10900e90900000408ed091800ed090c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401f109045300000400f50901185665633c543e0000f109083c70657a70616c6c65745f70726f787930416e6e6f756e63656d656e740c244163636f756e7449640100104861736801342c426c6f636b4e756d6265720110000c01107265616c0001244163636f756e74496400012463616c6c5f686173683401104861736800011868656967687410012c426c6f636b4e756d6265720000f509000002f10900f9090c3c70657a70616c6c65745f70726f78792470657a70616c6c6574144572726f720404540001201c546f6f4d616e79000004210154686572652061726520746f6f206d616e792070726f786965732072656769737465726564206f7220746f6f206d616e7920616e6e6f756e63656d656e74732070656e64696e672e204e6f74466f756e640001047450726f787920726567697374726174696f6e206e6f7420666f756e642e204e6f7450726f7879000204cc53656e646572206973206e6f7420612070726f7879206f6620746865206163636f756e7420746f2062652070726f786965642e2c556e70726f787961626c650003042101412063616c6c20776869636820697320696e636f6d70617469626c652077697468207468652070726f7879207479706527732066696c7465722077617320617474656d707465642e244475706c69636174650004046c4163636f756e7420697320616c726561647920612070726f78792e304e6f5065726d697373696f6e000504150143616c6c206d6179206e6f74206265206d6164652062792070726f78792062656361757365206974206d617920657363616c617465206974732070726976696c656765732e2c556e616e6e6f756e636564000604d0416e6e6f756e63656d656e742c206966206d61646520617420616c6c2c20776173206d61646520746f6f20726563656e746c792e2c4e6f53656c6650726f78790007046443616e6e6f74206164642073656c662061732070726f78792e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742efd0900000408000400010a084870657a70616c6c65745f6d756c7469736967204d756c7469736967102c426c6f636b4e756d62657201101c42616c616e63650118244163636f756e7449640100304d6178417070726f76616c7300001001107768656e5503015854696d65706f696e743c426c6f636b4e756d6265723e00011c6465706f73697418011c42616c616e63650001246465706f7369746f720001244163636f756e744964000124617070726f76616c73050a018c426f756e6465645665633c4163636f756e7449642c204d6178417070726f76616c733e0000050a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e0000090a0c4870657a70616c6c65745f6d756c74697369672470657a70616c6c6574144572726f72040454000138404d696e696d756d5468726573686f6c640000047c5468726573686f6c64206d7573742062652032206f7220677265617465722e3c416c7265616479417070726f766564000104ac43616c6c20697320616c726561647920617070726f7665642062792074686973207369676e61746f72792e444e6f417070726f76616c734e65656465640002049c43616c6c20646f65736e2774206e65656420616e7920286d6f72652920617070726f76616c732e44546f6f4665775369676e61746f72696573000304a854686572652061726520746f6f20666577207369676e61746f7269657320696e20746865206c6973742e48546f6f4d616e795369676e61746f72696573000404ac54686572652061726520746f6f206d616e79207369676e61746f7269657320696e20746865206c6973742e545369676e61746f726965734f75744f664f726465720005040d01546865207369676e61746f7269657320776572652070726f7669646564206f7574206f66206f726465723b20746865792073686f756c64206265206f7264657265642e4c53656e646572496e5369676e61746f726965730006040d015468652073656e6465722077617320636f6e7461696e656420696e20746865206f74686572207369676e61746f726965733b2069742073686f756c646e27742062652e204e6f74466f756e64000704a04d756c7469736967206f7065726174696f6e206e6f7420666f756e6420696e2073746f726167652e204e6f744f776e657200080851014f6e6c7920746865206163636f756e742074686174206f726967696e616c6c79206372656174656420746865206d756c74697369672069732061626c6520746f2063616e63656c206974206f722075706461746534697473206465706f736974732e2c4e6f54696d65706f696e740009041d014e6f2074696d65706f696e742077617320676976656e2c2079657420746865206d756c7469736967206f7065726174696f6e20697320616c726561647920756e6465727761792e3857726f6e6754696d65706f696e74000a042d014120646966666572656e742074696d65706f696e742077617320676976656e20746f20746865206d756c7469736967206f7065726174696f6e207468617420697320756e6465727761792e4c556e657870656374656454696d65706f696e74000b04f4412074696d65706f696e742077617320676976656e2c20796574206e6f206d756c7469736967206f7065726174696f6e20697320756e6465727761792e3c4d6178576569676874546f6f4c6f77000c04d0546865206d6178696d756d2077656967687420696e666f726d6174696f6e2070726f76696465642077617320746f6f206c6f772e34416c726561647953746f726564000d04a0546865206461746120746f2062652073746f72656420697320616c72656164792073746f7265642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e0d0a084870657a70616c6c65745f707265696d616765404f6c645265717565737453746174757308244163636f756e74496401001c42616c616e6365011801082c556e72657175657374656408011c6465706f736974c5080150284163636f756e7449642c2042616c616e63652900010c6c656e10010c753332000000245265717565737465640c011c6465706f736974110a01704f7074696f6e3c284163636f756e7449642c2042616c616e6365293e000114636f756e7410010c75333200010c6c656eec012c4f7074696f6e3c7533323e00010000110a04184f7074696f6e04045401c5080108104e6f6e6500000010536f6d650400c5080000010000150a084870657a70616c6c65745f707265696d616765345265717565737453746174757308244163636f756e7449640100185469636b657401190a01082c556e7265717565737465640801187469636b65741d0a014c284163636f756e7449642c205469636b65742900010c6c656e10010c753332000000245265717565737465640c01306d617962655f7469636b6574210a016c4f7074696f6e3c284163636f756e7449642c205469636b6574293e000114636f756e7410010c7533320001246d617962655f6c656eec012c4f7074696f6e3c7533323e00010000190a144070657a6672616d655f737570706f72741874726169747318746f6b656e732066756e6769626c6544486f6c64436f6e73696465726174696f6e1404410004460004520004440008467000000400180128463a3a42616c616e636500001d0a0000040800190a00210a04184f7074696f6e040454011d0a0108104e6f6e6500000010536f6d6504001d0a0000010000250a0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000290a0c4870657a70616c6c65745f707265696d6167652470657a70616c6c6574144572726f7204045400012018546f6f426967000004a0507265696d61676520697320746f6f206c6172676520746f2073746f7265206f6e2d636861696e2e30416c72656164794e6f746564000104a4507265696d6167652068617320616c7265616479206265656e206e6f746564206f6e2d636861696e2e344e6f74417574686f72697a6564000204c85468652075736572206973206e6f7420617574686f72697a656420746f20706572666f726d207468697320616374696f6e2e204e6f744e6f746564000304fc54686520707265696d6167652063616e6e6f742062652072656d6f7665642073696e636520697420686173206e6f7420796574206265656e206e6f7465642e2452657175657374656400040409014120707265696d616765206d6179206e6f742062652072656d6f766564207768656e20746865726520617265206f75747374616e64696e672072657175657374732e304e6f745265717565737465640005042d0154686520707265696d61676520726571756573742063616e6e6f742062652072656d6f7665642073696e6365206e6f206f75747374616e64696e672072657175657374732065786973742e1c546f6f4d616e7900060455014d6f7265207468616e20604d41585f484153485f555047524144455f42554c4b5f434f554e54602068617368657320776572652072657175657374656420746f206265207570677261646564206174206f6e63652e18546f6f466577000704e4546f6f206665772068617368657320776572652072657175657374656420746f2062652075706772616465642028692e652e207a65726f292e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e2d0a0c6870657a6b7577695f72756e74696d655f74657972636861696e7334636f6e66696775726174696f6e44486f7374436f6e66696775726174696f6e042c426c6f636b4e756d6265720110008c01346d61785f636f64655f73697a6510010c7533320001486d61785f686561645f646174615f73697a6510010c7533320001586d61785f7570776172645f71756575655f636f756e7410010c7533320001546d61785f7570776172645f71756575655f73697a6510010c75333200015c6d61785f7570776172645f6d6573736167655f73697a6510010c7533320001906d61785f7570776172645f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200018868726d705f6d61785f6d6573736167655f6e756d5f7065725f63616e64696461746510010c75333200016c76616c69646174696f6e5f757067726164655f636f6f6c646f776e10012c426c6f636b4e756d62657200016076616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001506173796e635f6261636b696e675f706172616d73650301484173796e634261636b696e67506172616d730001306d61785f706f765f73697a6510010c7533320001646d61785f646f776e776172645f6d6573736167655f73697a6510010c75333200019068726d705f6d61785f74657972636861696e5f6f7574626f756e645f6368616e6e656c7310010c75333200014c68726d705f73656e6465725f6465706f73697418011c42616c616e636500015868726d705f726563697069656e745f6465706f73697418011c42616c616e636500016468726d705f6368616e6e656c5f6d61785f636170616369747910010c75333200016c68726d705f6368616e6e656c5f6d61785f746f74616c5f73697a6510010c75333200018c68726d705f6d61785f74657972636861696e5f696e626f756e645f6368616e6e656c7310010c75333200017468726d705f6368616e6e656c5f6d61785f6d6573736167655f73697a6510010c75333200013c6578656375746f725f706172616d73690301384578656375746f72506172616d73000154636f64655f726574656e74696f6e5f706572696f6410012c426c6f636b4e756d6265720001386d61785f76616c696461746f7273ec012c4f7074696f6e3c7533323e000138646973707574655f706572696f6410013053657373696f6e496e6465780001a4646973707574655f706f73745f636f6e636c7573696f6e5f616363657074616e63655f706572696f6410012c426c6f636b4e756d6265720001346e6f5f73686f775f736c6f747310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c7533320001406e65656465645f617070726f76616c7310010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001387076665f766f74696e675f74746c10013053657373696f6e496e6465780001806d696e696d756d5f76616c69646174696f6e5f757067726164655f64656c617910012c426c6f636b4e756d6265720001546d696e696d756d5f6261636b696e675f766f74657310010c7533320001346e6f64655f6665617475726573a10301304e6f64654665617475726573000158617070726f76616c5f766f74696e675f706172616d737d030150417070726f76616c566f74696e67506172616d730001407363686564756c65725f706172616d73810301705363686564756c6572506172616d733c426c6f636b4e756d6265723e0000310a000002350a00350a00000408102d0a00390a106870657a6b7577695f72756e74696d655f74657972636861696e7334636f6e66696775726174696f6e2470657a70616c6c6574144572726f720404540001043c496e76616c69644e657756616c7565000004dc546865206e65772076616c756520666f72206120636f6e66696775726174696f6e20706172616d6574657220697320696e76616c69642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e3d0a000002a90300410a0000024d0200450a0c6870657a6b7577695f72756e74696d655f74657972636861696e731873686172656468416c6c6f77656452656c6179506172656e7473547261636b657208104861736801342c426c6f636b4e756d626572011000080118627566666572490a017c56656344657175653c52656c6179506172656e74496e666f3c486173683e3e0001346c61746573745f6e756d62657210012c426c6f636b4e756d6265720000490a0000024d0a004d0a0c6870657a6b7577695f72756e74696d655f74657972636861696e73187368617265643c52656c6179506172656e74496e666f0410486173680134000c013072656c61795f706172656e743401104861736800012873746174655f726f6f743401104861736800012c636c61696d5f7175657565510a01bc42547265654d61703c49642c2042547265654d61703c75382c2042547265655365743c436f7265496e6465783e3e3e0000510a042042547265654d617008044b01f102045601550a000400690a000000550a042042547265654d617008044b0108045601590a000400610a000000590a0420425472656553657404045401e9060004005d0a0000005d0a000002e90600610a000002650a00650a0000040808590a00690a0000026d0a006d0a00000408f102550a00710a000002750a00750a0c6870657a6b7577695f72756e74696d655f74657972636861696e7324696e636c7573696f6e7043616e64696461746550656e64696e67417661696c6162696c6974790804480134044e011000240110636f7265e9060124436f7265496e64657800011068617368fd03013443616e6469646174654861736800012864657363726970746f72bd03015843616e64696461746544657363726970746f723c483e00012c636f6d6d69746d656e7473cd03015043616e646964617465436f6d6d69746d656e7473000148617661696c6162696c6974795f766f746573a10301604269745665633c75382c204269744f726465724c7362303e00011c6261636b657273a10301604269745665633c75382c204269744f726465724c7362303e00014c72656c61795f706172656e745f6e756d6265721001044e0001406261636b65645f696e5f6e756d6265721001044e0001346261636b696e675f67726f7570ed06012847726f7570496e6465780000790a106870657a6b7577695f72756e74696d655f74657972636861696e7324696e636c7573696f6e2470657a70616c6c6574144572726f720404540001446456616c696461746f72496e6465784f75744f66426f756e64730000047856616c696461746f7220696e646578206f7574206f6620626f756e64732e50556e7363686564756c656443616e646964617465000104ac43616e646964617465207375626d6974746564206275742070617261206e6f74207363686564756c65642e404865616444617461546f6f4c61726765000204a448656164206461746120657863656564732074686520636f6e66696775726564206d6178696d756d2e505072656d6174757265436f64655570677261646500030464436f64652075706772616465207072656d61747572656c792e3c4e6577436f6465546f6f4c61726765000404604f757470757420636f646520697320746f6f206c6172676554446973616c6c6f77656452656c6179506172656e74000508ec5468652063616e64696461746527732072656c61792d706172656e7420776173206e6f7420616c6c6f7765642e204569746865722069742077617325016e6f7420726563656e7420656e6f756768206f72206974206469646e277420616476616e6365206261736564206f6e20746865206c6173742074657972636861696e20626c6f636b2e44496e76616c696441737369676e6d656e7400060815014661696c656420746f20636f6d707574652067726f757020696e64657820666f722074686520636f72653a206569746865722069742773206f7574206f6620626f756e6473e86f72207468652072656c617920706172656e7420646f65736e27742062656c6f6e6720746f207468652063757272656e742073657373696f6e2e44496e76616c696447726f7570496e6465780007049c496e76616c69642067726f757020696e64657820696e20636f72652061737369676e6d656e742e4c496e73756666696369656e744261636b696e6700080490496e73756666696369656e7420286e6f6e2d6d616a6f7269747929206261636b696e672e38496e76616c69644261636b696e67000904e4496e76616c69642028626164207369676e61747572652c20756e6b6e6f776e2076616c696461746f722c206574632e29206261636b696e672e6856616c69646174696f6e44617461486173684d69736d61746368000a04c45468652076616c69646174696f6e2064617461206861736820646f6573206e6f74206d617463682065787065637465642e80496e636f7272656374446f776e776172644d65737361676548616e646c696e67000b04d854686520646f776e77617264206d657373616765207175657565206973206e6f742070726f63657373656420636f72726563746c792e54496e76616c69645570776172644d65737361676573000c041d014174206c65617374206f6e6520757077617264206d6573736167652073656e7420646f6573206e6f7420706173732074686520616363657074616e63652063726974657269612e6048726d7057617465726d61726b4d697368616e646c696e67000d0411015468652063616e646964617465206469646e277420666f6c6c6f77207468652072756c6573206f662048524d502077617465726d61726b20616476616e63656d656e742e4c496e76616c69644f7574626f756e6448726d70000e04d45468652048524d50206d657373616765732073656e74206279207468652063616e646964617465206973206e6f742076616c69642e64496e76616c696456616c69646174696f6e436f646548617368000f04dc5468652076616c69646174696f6e20636f64652068617368206f66207468652063616e646964617465206973206e6f742076616c69642e4050617261486561644d69736d6174636800100855015468652060706172615f6865616460206861736820696e207468652063616e6469646174652064657363726970746f7220646f65736e2774206d61746368207468652068617368206f66207468652061637475616c7470617261206865616420696e2074686520636f6d6d69746d656e74732e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e7d0a0c4870657a6b7577695f7072696d6974697665730876394c536372617065644f6e436861696e566f7465730404480134000c011c73657373696f6e10013053657373696f6e496e6465780001806261636b696e675f76616c696461746f72735f7065725f63616e646964617465810a0125015665633c0a2843616e6469646174655265636569707456323c483e2c205665633c2856616c696461746f72496e6465782c2056616c69646974794174746573746174696f6e293e293e0001206469737075746573f50301604d756c74694469737075746553746174656d656e745365740000810a000002850a00850a00000408e506890a00890a0000028d0a008d0a00000408a903f10300910a106870657a6b7577695f72756e74696d655f74657972636861696e733870617261735f696e686572656e742470657a70616c6c6574144572726f7204045400011064546f6f4d616e79496e636c7573696f6e496e686572656e7473000004cc496e636c7573696f6e20696e686572656e742063616c6c6564206d6f7265207468616e206f6e63652070657220626c6f636b2e4c496e76616c6964506172656e7448656164657200010855015468652068617368206f6620746865207375626d697474656420706172656e742068656164657220646f65736e277420636f72726573706f6e6420746f2074686520736176656420626c6f636b2068617368206f662c74686520706172656e742e8c496e686572656e744461746146696c7465726564447572696e67457865637574696f6e0002083101496e686572656e742064617461207761732066696c746572656420647572696e6720657865637574696f6e2e20546869732073686f756c642068617665206f6e6c79206265656e20646f6e6540647572696e67206372656174696f6e2e50556e7363686564756c656443616e64696461746500030474546f6f206d616e792063616e6469646174657320737570706c6965642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e950a0000023d0a00990a042042547265654d617008044b01e9060456019d0a000400a50a0000009d0a000002a10a00a10a106870657a6b7577695f72756e74696d655f74657972636861696e73247363686564756c657218636f6d6d6f6e2841737369676e6d656e7400010810506f6f6c08011c706172615f6964f1020118506172614964000128636f72655f696e646578e9060124436f7265496e6465780000001042756c6b0400f102011850617261496400010000a50a000002a90a00a90a00000408e9069d0a00ad0a0c6870657a6b7577695f72756e74696d655f74657972636861696e731470617261735c507666436865636b416374697665566f74655374617465042c426c6f636b4e756d626572011000140130766f7465735f616363657074a10301604269745665633c75382c204269744f726465724c7362303e000130766f7465735f72656a656374a10301604269745665633c75382c204269744f726465724c7362303e00010c61676510013053657373696f6e496e646578000128637265617465645f617410012c426c6f636b4e756d626572000118636175736573b10a017c5665633c507666436865636b43617573653c426c6f636b4e756d6265723e3e0000b10a000002b50a00b50a0c6870657a6b7577695f72756e74696d655f74657972636861696e7314706172617334507666436865636b4361757365042c426c6f636b4e756d62657201100108284f6e626f617264696e670400f10201185061726149640000001c557067726164650c01086964f102011850617261496400012c696e636c756465645f617410012c426c6f636b4e756d626572000140757067726164655f7374726174656779b90a013c55706772616465537472617465677900010000b90a0c6870657a6b7577695f72756e74696d655f74657972636861696e731470617261733c55706772616465537472617465677900010840536574476f41686561645369676e616c000000504170706c7941744578706563746564426c6f636b00010000bd0a000002c90300c10a000002f10200c50a0c6870657a6b7577695f72756e74696d655f74657972636861696e7314706172617334506172614c6966656379636c6500011c284f6e626f617264696e6700000028506172617468726561640001002454657972636861696e0002004c557067726164696e675061726174687265616400030050446f776e67726164696e6754657972636861696e000400544f6666626f617264696e6750617261746872656164000500504f6666626f617264696e6754657972636861696e00060000c90a00000408f1021000cd0a0c6870657a6b7577695f72756e74696d655f74657972636861696e73147061726173405061726150617374436f64654d65746104044e011000080134757067726164655f74696d6573d10a01605665633c5265706c6163656d656e7454696d65733c4e3e3e00012c6c6173745f7072756e6564ec01244f7074696f6e3c4e3e0000d10a000002d50a00d50a0c6870657a6b7577695f72756e74696d655f74657972636861696e73147061726173405265706c6163656d656e7454696d657304044e01100008012c65787065637465645f61741001044e0001306163746976617465645f61741001044e0000d90a000002c90a00dd0a0c6870657a6b7577695f72756e74696d655f74657972636861696e731470617261736c417574686f72697a6564436f646548617368416e64457870697279040454011000080124636f64655f68617368c903014856616c69646174696f6e436f6465486173680001246578706972655f6174100104540000e10a0c4870657a6b7577695f7072696d6974697665730876393855706772616465476f41686561640001081441626f72740000001c476f416865616400010000e50a0c4870657a6b7577695f7072696d69746976657308763948557067726164655265737472696374696f6e0001041c50726573656e7400000000e90a106870657a6b7577695f72756e74696d655f74657972636861696e731470617261732470657a70616c6c6574144572726f72040454000140344e6f74526567697374657265640000049450617261206973206e6f74207265676973746572656420696e206f75722073797374656d2e3443616e6e6f744f6e626f6172640001041501506172612063616e6e6f74206265206f6e626f6172646564206265636175736520697420697320616c726561647920747261636b6564206279206f75722073797374656d2e3843616e6e6f744f6666626f6172640002049c506172612063616e6e6f74206265206f6666626f617264656420617420746869732074696d652e3443616e6e6f7455706772616465000304d4506172612063616e6e6f7420626520757067726164656420746f2061206c6561736520686f6c64696e672074657972636861696e2e3c43616e6e6f74446f776e6772616465000404d0506172612063616e6e6f7420626520646f776e67726164656420746f20616e206f6e2d64656d616e642074657972636861696e2e58507666436865636b53746174656d656e745374616c65000504b05468652073746174656d656e7420666f7220505646207072652d636865636b696e67206973207374616c652e5c507666436865636b53746174656d656e74467574757265000604ec5468652073746174656d656e7420666f7220505646207072652d636865636b696e6720697320666f722061206675747572652073657373696f6e2e84507666436865636b56616c696461746f72496e6465784f75744f66426f756e6473000704a4436c61696d65642076616c696461746f7220696e646578206973206f7574206f6620626f756e64732e60507666436865636b496e76616c69645369676e6174757265000804c8546865207369676e617475726520666f722074686520505646207072652d636865636b696e6720697320696e76616c69642e48507666436865636b446f75626c65566f7465000904b054686520676976656e2076616c696461746f7220616c7265616479206861732063617374206120766f74652e58507666436865636b5375626a656374496e76616c6964000a04f454686520676976656e2050564620646f6573206e6f7420657869737420617420746865206d6f6d656e74206f662070726f63657373206120766f74652e4443616e6e6f7455706772616465436f6465000b04cc54657972636861696e2063616e6e6f742063757272656e746c79207363686564756c65206120636f646520757067726164652e2c496e76616c6964436f6465000c0474496e76616c69642076616c69646174696f6e20636f64652073697a652e444e6f7468696e67417574686f72697a6564000d04584e6f207570677261646520617574686f72697a65642e30556e617574686f72697a6564000e0494546865207375626d697474656420636f6465206973206e6f7420617574686f72697a65642e48496e76616c6964426c6f636b4e756d626572000f0454496e76616c696420626c6f636b206e756d6265722e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742eed0a000002f10a00f10a0c6870657a6b7577695f72756e74696d655f74657972636861696e732c696e697469616c697a657254427566666572656453657373696f6e4368616e676500000c012876616c696461746f7273410a01405665633c56616c696461746f7249643e000118717565756564410a01405665633c56616c696461746f7249643e00013473657373696f6e5f696e64657810013053657373696f6e496e6465780000f50a000002f90a00f90a085c70657a6b7577695f636f72655f7072696d69746976657358496e626f756e64446f776e776172644d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d62657200010c6d736738013c446f776e776172644d6573736167650000fd0a0c6870657a6b7577695f72756e74696d655f74657972636861696e731068726d705848726d704f70656e4368616e6e656c526571756573740000180124636f6e6669726d6564200110626f6f6c0001105f61676510013053657373696f6e496e64657800013873656e6465725f6465706f73697418011c42616c616e63650001406d61785f6d6573736167655f73697a6510010c7533320001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320000010b000002290400050b0c6870657a6b7577695f72756e74696d655f74657972636861696e731068726d702c48726d704368616e6e656c00002001306d61785f636170616369747910010c7533320001386d61785f746f74616c5f73697a6510010c7533320001406d61785f6d6573736167655f73697a6510010c7533320001246d73675f636f756e7410010c753332000128746f74616c5f73697a6510010c7533320001206d71635f68656164fd0201304f7074696f6e3c486173683e00013873656e6465725f6465706f73697418011c42616c616e6365000144726563697069656e745f6465706f73697418011c42616c616e63650000090b0000020d0b000d0b085c70657a6b7577695f636f72655f7072696d69746976657348496e626f756e6448726d704d657373616765042c426c6f636b4e756d62657201100008011c73656e745f617410012c426c6f636b4e756d6265720001106461746138014c616c6c6f633a3a7665633a3a5665633c75383e0000110b000002150b00150b0000040810c10a00190b106870657a6b7577695f72756e74696d655f74657972636861696e731068726d702470657a70616c6c6574144572726f72040454000150544f70656e48726d704368616e6e656c546f53656c66000004c45468652073656e64657220747269656420746f206f70656e2061206368616e6e656c20746f207468656d73656c7665732e7c4f70656e48726d704368616e6e656c496e76616c6964526563697069656e740001048854686520726563697069656e74206973206e6f7420612076616c696420706172612e6c4f70656e48726d704368616e6e656c5a65726f43617061636974790002047c54686520726571756573746564206361706163697479206973207a65726f2e8c4f70656e48726d704368616e6e656c4361706163697479457863656564734c696d6974000304c05468652072657175657374656420636170616369747920657863656564732074686520676c6f62616c206c696d69742e784f70656e48726d704368616e6e656c5a65726f4d65737361676553697a65000404a054686520726571756573746564206d6178696d756d206d6573736167652073697a6520697320302e984f70656e48726d704368616e6e656c4d65737361676553697a65457863656564734c696d69740005042901546865206f70656e20726571756573742072657175657374656420746865206d6573736167652073697a65207468617420657863656564732074686520676c6f62616c206c696d69742e704f70656e48726d704368616e6e656c416c726561647945786973747300060468546865206368616e6e656c20616c7265616479206578697374737c4f70656e48726d704368616e6e656c416c7265616479526571756573746564000704d0546865726520697320616c72656164792061207265717565737420746f206f70656e207468652073616d65206368616e6e656c2e704f70656e48726d704368616e6e656c4c696d697445786365656465640008041d015468652073656e64657220616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f776564206f7574626f756e64206368616e6e656c732e7041636365707448726d704368616e6e656c446f65736e744578697374000904e0546865206368616e6e656c2066726f6d207468652073656e64657220746f20746865206f726967696e20646f65736e27742065786973742e8441636365707448726d704368616e6e656c416c7265616479436f6e6669726d6564000a0484546865206368616e6e656c20697320616c726561647920636f6e6669726d65642e7841636365707448726d704368616e6e656c4c696d69744578636565646564000b04250154686520726563697069656e7420616c72656164792068617320746865206d6178696d756d206e756d626572206f6620616c6c6f77656420696e626f756e64206368616e6e656c732e70436c6f736548726d704368616e6e656c556e617574686f72697a6564000c045501546865206f726967696e20747269657320746f20636c6f73652061206368616e6e656c207768657265206974206973206e656974686572207468652073656e646572206e6f722074686520726563697069656e742e6c436c6f736548726d704368616e6e656c446f65736e744578697374000d049c546865206368616e6e656c20746f20626520636c6f73656420646f65736e27742065786973742e7c436c6f736548726d704368616e6e656c416c7265616479556e646572776179000e04bc546865206368616e6e656c20636c6f7365207265717565737420697320616c7265616479207265717565737465642e8443616e63656c48726d704f70656e4368616e6e656c556e617574686f72697a6564000f045d0143616e63656c696e6720697320726571756573746564206279206e656974686572207468652073656e646572206e6f7220726563697069656e74206f6620746865206f70656e206368616e6e656c20726571756573742e684f70656e48726d704368616e6e656c446f65736e7445786973740010047c546865206f70656e207265717565737420646f65736e27742065786973742e7c4f70656e48726d704368616e6e656c416c7265616479436f6e6669726d65640011042d0143616e6e6f742063616e63656c20616e2048524d50206f70656e206368616e6e656c2072657175657374206265636175736520697420697320616c726561647920636f6e6669726d65642e3057726f6e675769746e6573730012048c5468652070726f7669646564207769746e65737320646174612069732077726f6e672e704368616e6e656c4372656174696f6e4e6f74417574686f72697a6564001304e8546865206368616e6e656c206265747765656e2074686573652074776f20636861696e732063616e6e6f7420626520617574686f72697a65642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e1d0b000002510200210b0c4870657a6b7577695f7072696d6974697665730876392c53657373696f6e496e666f00003401606163746976655f76616c696461746f725f696e64696365733d0a014c5665633c56616c696461746f72496e6465783e00012c72616e646f6d5f736565640401205b75383b2033325d000138646973707574655f706572696f6410013053657373696f6e496e64657800012876616c696461746f7273250b019c496e64657865645665633c56616c696461746f72496e6465782c2056616c696461746f7249643e000138646973636f766572795f6b657973ed0801645665633c417574686f72697479446973636f7665727949643e00013c61737369676e6d656e745f6b6579731d0b01445665633c41737369676e6d656e7449643e00014076616c696461746f725f67726f757073290b01ac496e64657865645665633c47726f7570496e6465782c205665633c56616c696461746f72496e6465783e3e00011c6e5f636f72657310010c7533320001687a65726f74685f64656c61795f7472616e6368655f776964746810010c75333200016072656c61795f7672665f6d6f64756c6f5f73616d706c657310010c7533320001406e5f64656c61795f7472616e6368657310010c7533320001346e6f5f73686f775f736c6f747310010c7533320001406e65656465645f617070726f76616c7310010c7533320000250b0c4870657a6b7577695f7072696d69746976657308763928496e646578656456656308044b01a9030456014d02000400410a01185665633c563e0000290b0c4870657a6b7577695f7072696d69746976657308763928496e646578656456656308044b01ed060456013d0a000400950a01185665633c563e00002d0b0000040810fd0300310b0c4870657a6b7577695f7072696d6974697665730876393044697370757465537461746504044e01100010013876616c696461746f72735f666f72a103017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00014876616c696461746f72735f616761696e7374a103017c4269745665633c75382c206269747665633a3a6f726465723a3a4c7362303e00011473746172741001044e000130636f6e636c756465645f6174ec01244f7074696f6e3c4e3e0000350b0420425472656553657404045401a9030004003d0a000000390b106870657a6b7577695f72756e74696d655f74657972636861696e732064697370757465732470657a70616c6c6574144572726f72040454000124744475706c69636174654469737075746553746174656d656e7453657473000004a84475706c696361746520646973707574652073746174656d656e7420736574732070726f76696465642e5c416e6369656e744469737075746553746174656d656e740001048c416e6369656e7420646973707574652073746174656d656e742070726f76696465642e6456616c696461746f72496e6465784f75744f66426f756e6473000204e856616c696461746f7220696e646578206f6e2073746174656d656e74206973206f7574206f6620626f756e647320666f722073657373696f6e2e40496e76616c69645369676e61747572650003047c496e76616c6964207369676e6174757265206f6e2073746174656d656e742e484475706c696361746553746174656d656e74000404cc56616c696461746f7220766f7465207375626d6974746564206d6f7265207468616e206f6e636520746f20646973707574652e4853696e676c65536964656444697370757465000504c441206469737075746520776865726520746865726520617265206f6e6c7920766f746573206f6e206f6e6520736964652e3c4d616c6963696f75734261636b65720006049c41206469737075746520766f74652066726f6d2061206d616c6963696f7573206261636b65722e4c4d697373696e674261636b696e67566f746573000704e04e6f206261636b696e6720766f74657320776572652070726f766964657320616c6f6e6720646973707574652073746174656d656e74732e48556e636f6e6669726d656444697370757465000804b0556e636f6e6669726d656420646973707574652073746174656d656e7420736574732070726f76696465642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e3d0b104870657a6b7577695f7072696d69746976657308763920736c617368696e673850656e64696e67536c617368657300000801106b657973410b019442547265654d61703c56616c696461746f72496e6465782c2056616c696461746f7249643e0001106b696e643d040148446973707574654f6666656e63654b696e640000410b042042547265654d617008044b01a9030456014d02000400450b000000450b000002490b00490b00000408a9034d02004d0b146870657a6b7577695f72756e74696d655f74657972636861696e7320646973707574657320736c617368696e672470657a70616c6c6574144572726f7204045400011860496e76616c69644b65794f776e65727368697050726f6f660000048c546865206b6579206f776e6572736869702070726f6f6620697320696e76616c69642e4c496e76616c696453657373696f6e496e646578000104a05468652073657373696f6e20696e64657820697320746f6f206f6c64206f7220696e76616c69642e50496e76616c696443616e64696461746548617368000204785468652063616e646964617465206861736820697320696e76616c69642e54496e76616c696456616c696461746f72496e64657800030801015468657265206973206e6f2070656e64696e6720736c61736820666f722074686520676976656e2076616c696461746f7220696e64657820616e642074696d6514736c6f742e6056616c696461746f72496e64657849644d69736d61746368000404d05468652076616c696461746f7220696e64657820646f6573206e6f74206d61746368207468652076616c696461746f722069642e5c4475706c6963617465536c617368696e675265706f72740005040d0154686520676976656e20736c617368696e67207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e510b085c70657a70616c6c65745f6d6573736167655f717565756524426f6f6b537461746504344d6573736167654f726967696e01450400180114626567696e10012450616765496e64657800010c656e6410012450616765496e646578000114636f756e7410012450616765496e64657800014072656164795f6e65696768626f757273550b01844f7074696f6e3c4e65696768626f7572733c4d6573736167654f726967696e3e3e0001346d6573736167655f636f756e7430010c75363400011073697a6530010c7536340000550b04184f7074696f6e04045401590b0108104e6f6e6500000010536f6d650400590b0000010000590b085c70657a70616c6c65745f6d6573736167655f7175657565284e65696768626f75727304344d6573736167654f726967696e0145040008011070726576450401344d6573736167654f726967696e0001106e657874450401344d6573736167654f726967696e00005d0b0000040845041000610b085c70657a70616c6c65745f6d6573736167655f71756575651050616765081053697a650110204865617053697a65000018012472656d61696e696e6710011053697a6500013872656d61696e696e675f73697a6510011053697a6500012c66697273745f696e64657810011053697a65000114666972737410011053697a650001106c61737410011053697a6500011068656170650b019c426f756e6465645665633c75382c20496e746f5533323c4865617053697a652c2053697a653e3e0000650b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401080453000004003801185665633c543e0000690b0c5c70657a70616c6c65745f6d6573736167655f71756575652470657a70616c6c6574144572726f720404540001242c4e6f745265617061626c65000008490150616765206973206e6f74207265617061626c65206265636175736520697420686173206974656d732072656d61696e696e6720746f2062652070726f63657373656420616e64206973206e6f74206f6c641c656e6f7567682e184e6f50616765000104845061676520746f2062652072656170656420646f6573206e6f742065786973742e244e6f4d657373616765000204a8546865207265666572656e636564206d65737361676520636f756c64206e6f7420626520666f756e642e40416c726561647950726f6365737365640003040101546865206d6573736167652077617320616c72656164792070726f63657373656420616e642063616e6e6f742062652070726f63657373656420616761696e2e18517565756564000404ac546865206d6573736167652069732071756575656420666f722066757475726520657865637574696f6e2e48496e73756666696369656e74576569676874000504190154686572652069732074656d706f726172696c79206e6f7420656e6f7567682077656967687420746f20636f6e74696e756520736572766963696e67206d657373616765732e6054656d706f726172696c79556e70726f6365737361626c65000610a854686973206d6573736167652069732074656d706f726172696c7920756e70726f6365737361626c652e00590153756368206572726f7273206172652065787065637465642c20627574206e6f742067756172616e746565642c20746f207265736f6c7665207468656d73656c766573206576656e7475616c6c79207468726f756768247265747279696e672e2c517565756550617573656400070cec5468652071756575652069732070617573656420616e64206e6f206d6573736167652063616e2062652065786563757465642066726f6d2069742e001d01546869732063616e206368616e676520617420616e792074696d6520616e64206d6179207265736f6c766520696e20746865206675747572652062792072652d747279696e672e4c526563757273697665446973616c6c6f7765640008043101416e6f746865722063616c6c20697320696e2070726f677265737320616e64206e6565647320746f2066696e697368206265666f726520746869732063616c6c2063616e2068617070656e2e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e6d0b106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e6414747970657344436f7265416666696e697479436f756e740000080128636f72655f696e646578e9060124436f7265496e646578000114636f756e7410010c7533320000710b106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e641474797065733c517565756553746174757354797065000010011c74726166666963390801244669786564553132380001286e6578745f696e646578750b01285175657565496e646578000138736d616c6c6573745f696e646578750b01285175657565496e64657800013466726565645f696e6469636573790b017442696e617279486561703c526576657273655175657565496e6465783e0000750b106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e64147479706573285175657565496e6465780000040010010c7533320000790b042842696e61727948656170040454017d0b000400810b0000007d0b106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e6414747970657344526576657273655175657565496e6465780000040010010c7533320000810b0000027d0b00850b042842696e6172794865617004045401890b0004008d0b000000890b106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e6414747970657334456e7175657565644f72646572000008011c706172615f6964f102011850617261496400010c696478750b01285175657565496e64657800008d0b000002890b00910b0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540118045300000400950b01185665633c543e0000950b0000021800990b106870657a6b7577695f72756e74696d655f74657972636861696e73246f6e5f64656d616e642470657a70616c6c6574144572726f7204045400010c24517565756546756c6c000004e4546865206f726465722071756575652069732066756c6c2c2060706c6163655f6f72646572602077696c6c206e6f7420636f6e74696e75652e7053706f7450726963654869676865725468616e4d6178416d6f756e740001084d015468652063757272656e742073706f7420707269636520697320686967686572207468616e20746865206d617820616d6f756e742073706563696669656420696e207468652060706c6163655f6f72646572606063616c6c2c206d616b696e6720697420696e76616c69642e4c496e73756666696369656e74437265646974730002041d01546865206163636f756e7420646f65736e2774206861766520656e6f756768206372656469747320746f207075726368617365206f6e2d64656d616e6420636f726574696d652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e9d0b0000040810e90600a10b0c6870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d65205363686564756c6504044e0110000c012c61737369676e6d656e74737904018c5665633c28436f726541737369676e6d656e742c2050617274734f663537363030293e000120656e645f68696e74ec01244f7074696f6e3c4e3e0001346e6578745f7363686564756c65ec01244f7074696f6e3c4e3e0000a50b0c6870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d6538436f726544657363726970746f7204044e0110000801147175657565a90b01684f7074696f6e3c517565756544657363726970746f723c4e3e3e00013063757272656e745f776f726bb10b01504f7074696f6e3c576f726b53746174653c4e3e3e0000a90b04184f7074696f6e04045401ad0b0108104e6f6e6500000010536f6d650400ad0b0000010000ad0b0c6870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d653c517565756544657363726970746f7204044e01100008011466697273741001044e0001106c6173741001044e0000b10b04184f7074696f6e04045401b50b0108104e6f6e6500000010536f6d650400b50b0000010000b50b0c6870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d6524576f726b537461746504044e01100010012c61737369676e6d656e7473b90b01985665633c28436f726541737369676e6d656e742c2041737369676e6d656e745374617465293e000120656e645f68696e74ec01244f7074696f6e3c4e3e00010c706f73cd01010c753136000110737465708504013050617274734f6635373630300000b90b000002bd0b00bd0b000004088104c10b00c10b0c6870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d653c41737369676e6d656e7453746174650000080114726174696f8504013050617274734f66353736303000012472656d61696e696e678504013050617274734f6635373630300000c50b106870657a6b7577695f72756e74696d655f74657972636861696e734461737369676e65725f636f726574696d652470657a70616c6c6574144572726f720404540001084041737369676e6d656e7473456d70747900000040446973616c6c6f776564496e73657274000108510161737369676e5f636f7265206973206f6e6c7920616c6c6f77656420746f20617070656e64206e65772061737369676e6d656e74732061742074686520656e64206f6620616c7265616479206578697374696e67786f6e6573206f722075706461746520746865206c61737420656e7472792e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ec90b0c5870657a6b7577695f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722050617261496e666f081c4163636f756e7401001c42616c616e63650118000c011c6d616e6167657200011c4163636f756e7400011c6465706f73697418011c42616c616e63650001186c6f636b6564cd0b01304f7074696f6e3c626f6f6c3e0000cd0b04184f7074696f6e04045401200108104e6f6e6500000010536f6d650400200000010000d10b105870657a6b7577695f72756e74696d655f636f6d6d6f6e3c70617261735f7265676973747261722470657a70616c6c6574144572726f72040454000138344e6f745265676973746572656400000464546865204944206973206e6f7420726567697374657265642e44416c7265616479526567697374657265640001047454686520494420697320616c726561647920726567697374657265642e204e6f744f776e65720002049c5468652063616c6c6572206973206e6f7420746865206f776e6572206f6620746869732049642e30436f6465546f6f4c617267650003045c496e76616c6964207061726120636f64652073697a652e404865616444617461546f6f4c6172676500040470496e76616c69642070617261206865616420646174612073697a652e304e6f7454657972636861696e0005046050617261206973206e6f7420612054657972636861696e2e344e6f7450617261746872656164000604bc50617261206973206e6f742061205061726174687265616420286f6e2d64656d616e642074657972636861696e292e4043616e6e6f74446572656769737465720007045843616e6e6f74206465726567697374657220706172613c43616e6e6f74446f776e67726164650008042d0143616e6e6f74207363686564756c6520646f776e6772616465206f66206c6561736520686f6c64696e672074657972636861696e20746f206f6e2d64656d616e642074657972636861696e3443616e6e6f7455706772616465000904250143616e6e6f74207363686564756c652075706772616465206f66206f6e2d64656d616e642074657972636861696e20746f206c6561736520686f6c64696e672074657972636861696e28506172614c6f636b6564000a08490150617261206973206c6f636b65642066726f6d206d616e6970756c6174696f6e20627920746865206d616e616765722e204d757374207573652074657972636861696e206f722072656c617920636861696e2c676f7665726e616e63652e2c4e6f745265736572766564000b04d054686520494420676976656e20666f7220726567697374726174696f6e20686173206e6f74206265656e2072657365727665642e2c496e76616c6964436f6465000c047c5468652076616c69646174696f6e20636f646520697320696e76616c69642e2843616e6e6f7453776170000d08510143616e6e6f7420706572666f726d20612074657972636861696e20736c6f74202f206c6966656379636c6520737761702e20436865636b207468617420746865207374617465206f6620626f74682070617261738461726520636f727265637420666f7220746865207377617020746f20776f726b2e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ed50b000002110a00d90b105870657a6b7577695f72756e74696d655f636f6d6d6f6e14736c6f74732470657a70616c6c6574144572726f7204045400010844506172614e6f744f6e626f617264696e670000048c5468652074657972636861696e204944206973206e6f74206f6e626f617264696e672e284c656173654572726f720001048854686572652077617320616e206572726f72207769746820746865206c656173652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742edd0b0000040800f10200e10b00000324000000e50b00e50b04184f7074696f6e04045401e90b0108104e6f6e6500000010536f6d650400e90b0000010000e90b0000040c00f1021800ed0b105870657a6b7577695f72756e74696d655f636f6d6d6f6e2061756374696f6e732470657a70616c6c6574144572726f7204045400011c4441756374696f6e496e50726f677265737300000490546869732061756374696f6e20697320616c726561647920696e2070726f67726573732e444c65617365506572696f64496e5061737400010480546865206c6561736520706572696f6420697320696e2074686520706173742e44506172614e6f74526567697374657265640002045850617261206973206e6f742072656769737465726564444e6f7443757272656e7441756374696f6e000304584e6f7420612063757272656e742061756374696f6e2e284e6f7441756374696f6e0004043c4e6f7420616e2061756374696f6e2e3041756374696f6e456e6465640005046841756374696f6e2068617320616c726561647920656e6465642e40416c72656164794c65617365644f7574000604d8546865207061726120697320616c7265616479206c6561736564206f757420666f722070617274206f6620746869732072616e67652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ef10b0c5870657a6b7577695f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2046756e64496e666f10244163636f756e74496401001c42616c616e636501182c426c6f636b4e756d62657201102c4c65617365506572696f640110002801246465706f7369746f720001244163636f756e74496400012076657269666965726504014c4f7074696f6e3c4d756c74695369676e65723e00011c6465706f73697418011c42616c616e636500011872616973656418011c42616c616e636500010c656e6410012c426c6f636b4e756d62657200010c63617018011c42616c616e63650001446c6173745f636f6e747269627574696f6ef50b01744c617374436f6e747269627574696f6e3c426c6f636b4e756d6265723e00013066697273745f706572696f6410012c4c65617365506572696f6400012c6c6173745f706572696f6410012c4c65617365506572696f6400012866756e645f696e64657810012446756e64496e6465780000f50b0c5870657a6b7577695f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e404c617374436f6e747269627574696f6e042c426c6f636b4e756d6265720110010c144e6576657200000024507265456e64696e67040010010c75333200010018456e64696e67040010012c426c6f636b4e756d62657200020000f90b105870657a6b7577695f72756e74696d655f636f6d6d6f6e2463726f77646c6f616e2470657a70616c6c6574144572726f7204045400015c444669727374506572696f64496e50617374000004f45468652063757272656e74206c6561736520706572696f64206973206d6f7265207468616e20746865206669727374206c6561736520706572696f642e644669727374506572696f64546f6f466172496e4675747572650001041101546865206669727374206c6561736520706572696f64206e6565647320746f206174206c65617374206265206c657373207468616e203320606d61785f76616c7565602e6c4c617374506572696f644265666f72654669727374506572696f64000204e84c617374206c6561736520706572696f64206d7573742062652067726561746572207468616e206669727374206c6561736520706572696f642e604c617374506572696f64546f6f466172496e4675747572650003042d01546865206c617374206c6561736520706572696f642063616e6e6f74206265206d6f7265207468616e203320706572696f64732061667465722074686520666972737420706572696f642e3c43616e6e6f74456e64496e5061737400040445015468652063616d706169676e20656e6473206265666f7265207468652063757272656e7420626c6f636b206e756d6265722e2054686520656e64206d75737420626520696e20746865206675747572652e44456e64546f6f466172496e467574757265000504c054686520656e64206461746520666f7220746869732063726f77646c6f616e206973206e6f742073656e7369626c652e204f766572666c6f770006045854686572652077617320616e206f766572666c6f772e50436f6e747269627574696f6e546f6f536d616c6c000704e854686520636f6e747269627574696f6e207761732062656c6f7720746865206d696e696d756d2c20604d696e436f6e747269627574696f6e602e34496e76616c69645061726149640008044c496e76616c69642066756e6420696e6465782e2c436170457863656564656400090490436f6e747269627574696f6e7320657863656564206d6178696d756d20616d6f756e742e58436f6e747269627574696f6e506572696f644f766572000a04a854686520636f6e747269627574696f6e20706572696f642068617320616c726561647920656e6465642e34496e76616c69644f726967696e000b048c546865206f726967696e206f6620746869732063616c6c20697320696e76616c69642e304e6f7454657972636861696e000c04c8546869732063726f77646c6f616e20646f6573206e6f7420636f72726573706f6e6420746f20612074657972636861696e2e2c4c65617365416374697665000d041501546869732074657972636861696e206c65617365206973207374696c6c2061637469766520616e64207265746972656d656e742063616e6e6f742079657420626567696e2e404269644f724c65617365416374697665000e043101546869732074657972636861696e277320626964206f72206c65617365206973207374696c6c2061637469766520616e642077697468647261772063616e6e6f742079657420626567696e2e3046756e644e6f74456e646564000f04805468652063726f77646c6f616e20686173206e6f742079657420656e6465642e3c4e6f436f6e747269627574696f6e73001004d0546865726520617265206e6f20636f6e747269627574696f6e732073746f72656420696e20746869732063726f77646c6f616e2e484e6f745265616479546f446973736f6c766500110855015468652063726f77646c6f616e206973206e6f7420726561647920746f20646973736f6c76652e20506f74656e7469616c6c79207374696c6c20686173206120736c6f74206f7220696e207265746972656d656e741c706572696f642e40496e76616c69645369676e617475726500120448496e76616c6964207369676e61747572652e304d656d6f546f6f4c617267650013047c5468652070726f7669646564206d656d6f20697320746f6f206c617267652e44416c7265616479496e4e65775261697365001404845468652066756e6420697320616c726561647920696e20604e65775261697365604856726644656c6179496e50726f6772657373001504b44e6f20636f6e747269627574696f6e7320616c6c6f77656420647572696e6720746865205652462064656c6179344e6f4c65617365506572696f640016042d0141206c6561736520706572696f6420686173206e6f742073746172746564207965742c2064756520746f20616e206f666673657420696e20746865207374617274696e6720626c6f636b2e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742efd0b106870657a6b7577695f72756e74696d655f74657972636861696e7320636f726574696d652470657a70616c6c6574144572726f7204045400010c244e6f7442726f6b6572000004290154686520706172616964206d616b696e67207468652063616c6c206973206e6f742074686520636f726574696d652062726f6b65726167652073797374656d2074657972636861696e2e58526571756573746564467574757265526576656e7565000108450152657175657374656420726576656e756520696e666f726d6174696f6e20607768656e6020706172616d657465722077617320696e20746865206675747572652066726f6d207468652063757272656e7434626c6f636b206865696768742e4c41737365745472616e736665724661696c6564000204bc4661696c656420746f207472616e736665722061737365747320746f2074686520636f726574696d6520636861696e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e010c0c5070657a70616c6c65745f6d6967726174696f6e732470657a70616c6c6574144572726f720404540001041c4f6e676f696e67000004e8546865206f7065726174696f6e2063616e6e6f7420636f6d706c6574652073696e636520736f6d65204d424d7320617265206f6e676f696e672e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e050c0c3470657a70616c6c65745f78636d2470657a70616c6c65742c5175657279537461747573042c426c6f636b4e756d6265720110010c1c50656e64696e67100124726573706f6e646572c501014456657273696f6e65644c6f636174696f6e00014c6d617962655f6d617463685f71756572696572090c01644f7074696f6e3c56657273696f6e65644c6f636174696f6e3e0001306d617962655f6e6f746966790d0c01404f7074696f6e3c2875382c207538293e00011c74696d656f757410012c426c6f636b4e756d6265720000003c56657273696f6e4e6f7469666965720801186f726967696ec501014456657273696f6e65644c6f636174696f6e00012469735f616374697665200110626f6f6c000100145265616479080120726573706f6e7365150c014456657273696f6e6564526573706f6e7365000108617410012c426c6f636b4e756d62657200020000090c04184f7074696f6e04045401c5010108104e6f6e6500000010536f6d650400c50100000100000d0c04184f7074696f6e04045401110c0108104e6f6e6500000010536f6d650400110c0000010000110c00000408080800150c080c78636d4456657273696f6e6564526573706f6e736500010c0856330400dd04013076333a3a526573706f6e736500030008563404004505013076343a3a526573706f6e736500040008563504008d05013076353a3a526573706f6e736500050000190c0000040810c501001d0c0000040c30281000210c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401250c045300000400290c01185665633c543e0000250c00000408c5011000290c000002250c002d0c0c3470657a70616c6c65745f78636d2470657a70616c6c65745456657273696f6e4d6967726174696f6e53746167650001105c4d696772617465537570706f7274656456657273696f6e0000005c4d69677261746556657273696f6e4e6f74696669657273000100504e6f7469667943757272656e74546172676574730400ad04013c4f7074696f6e3c5665633c75383e3e000200684d696772617465416e644e6f746966794f6c645461726765747300030000310c0000040c1000e90500350c0c3470657a70616c6c65745f78636d2470657a70616c6c65746852656d6f74654c6f636b656446756e6769626c655265636f72640848436f6e73756d65724964656e746966696572011501304d6178436f6e73756d6572730000100118616d6f756e74180110753132380001146f776e6572c501014456657273696f6e65644c6f636174696f6e0001186c6f636b6572c501014456657273696f6e65644c6f636174696f6e000124636f6e73756d657273390c01d0426f756e6465645665633c28436f6e73756d65724964656e7469666965722c2075313238292c204d6178436f6e73756d6572733e0000390c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454013d0c045300000400410c01185665633c543e00003d0c0000040815011800410c0000023d0c00450c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401490c0453000004004d0c01185665633c543e0000490c0000040818c501004d0c000002490c00510c083470657a70616c6c65745f78636d58417574686f72697a6564416c6961736573456e74727908185469636b657401550c0c4d415801590c00080120616c6961736572735d0c0178426f756e6465645665633c4f726967696e416c69617365722c204d41583e0001187469636b6574550c01185469636b65740000550c104070657a6672616d655f737570706f7274187472616974731c73746f726167652044697361626c656400000000590c0c3470657a70616c6c65745f78636d2470657a70616c6c6574504d6178417574686f72697a6564416c6961736573000000005d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401610c045300000400650c01185665633c543e0000610c0c4c78636d5f72756e74696d655f70657a6170697348617574686f72697a65645f616c6961736573344f726967696e416c696173657200000801206c6f636174696f6ec501014456657273696f6e65644c6f636174696f6e0001186578706972791d06012c4f7074696f6e3c7536343e0000650c000002610c00690c0c3470657a70616c6c65745f78636d2470657a70616c6c6574144572726f720404540001702c556e726561636861626c650000085d0154686520646573697265642064657374696e6174696f6e2077617320756e726561636861626c652c2067656e6572616c6c7920626563617573652074686572652069732061206e6f20776179206f6620726f7574696e6718746f2069742e2c53656e644661696c757265000108410154686572652077617320736f6d65206f746865722069737375652028692e652e206e6f7420746f20646f207769746820726f7574696e672920696e2073656e64696e6720746865206d6573736167652ec8506572686170732061206c61636b206f6620737061636520666f7220627566666572696e6720746865206d6573736167652e2046696c74657265640002049c546865206d65737361676520657865637574696f6e206661696c73207468652066696c7465722e48556e776569676861626c654d657373616765000304b4546865206d65737361676527732077656967687420636f756c64206e6f742062652064657465726d696e65642e6044657374696e6174696f6e4e6f74496e7665727469626c65000404dc5468652064657374696e6174696f6e20604c6f636174696f6e602070726f76696465642063616e6e6f7420626520696e7665727465642e14456d707479000504805468652061737365747320746f2062652073656e742061726520656d7074792e3843616e6e6f745265616e63686f720006043501436f756c64206e6f742072652d616e63686f72207468652061737365747320746f206465636c61726520746865206665657320666f72207468652064657374696e6174696f6e20636861696e2e34546f6f4d616e79417373657473000704c4546f6f206d616e79206173736574732068617665206265656e20617474656d7074656420666f72207472616e736665722e34496e76616c69644f726967696e000804784f726967696e20697320696e76616c696420666f722073656e64696e672e2842616456657273696f6e00090421015468652076657273696f6e206f6620746865206056657273696f6e6564602076616c75652075736564206973206e6f742061626c6520746f20626520696e7465727072657465642e2c4261644c6f636174696f6e000a08410154686520676976656e206c6f636174696f6e20636f756c64206e6f7420626520757365642028652e672e20626563617573652069742063616e6e6f742062652065787072657373656420696e2074686560646573697265642076657273696f6e206f662058434d292e384e6f537562736372697074696f6e000b04bc546865207265666572656e63656420737562736372697074696f6e20636f756c64206e6f7420626520666f756e642e44416c726561647953756273637269626564000c041101546865206c6f636174696f6e20697320696e76616c69642073696e636520697420616c726561647920686173206120737562736372697074696f6e2066726f6d2075732e5843616e6e6f74436865636b4f757454656c65706f7274000d042901436f756c64206e6f7420636865636b2d6f7574207468652061737365747320666f722074656c65706f72746174696f6e20746f207468652064657374696e6174696f6e20636861696e2e284c6f7742616c616e6365000e044101546865206f776e657220646f6573206e6f74206f776e2028616c6c29206f662074686520617373657420746861742074686579207769736820746f20646f20746865206f7065726174696f6e206f6e2e30546f6f4d616e794c6f636b73000f04c0546865206173736574206f776e65722068617320746f6f206d616e79206c6f636b73206f6e207468652061737365742e4c4163636f756e744e6f74536f7665726569676e001004310154686520676976656e206163636f756e74206973206e6f7420616e206964656e7469666961626c6520736f7665726569676e206163636f756e7420666f7220616e79206c6f636174696f6e2e28466565734e6f744d65740011042901546865206f7065726174696f6e207265717569726564206665657320746f20626520706169642077686963682074686520696e69746961746f7220636f756c64206e6f74206d6565742e304c6f636b4e6f74466f756e64001204f4412072656d6f7465206c6f636b20776974682074686520636f72726573706f6e64696e67206461746120636f756c64206e6f7420626520666f756e642e14496e557365001304490154686520756e6c6f636b206f7065726174696f6e2063616e6e6f742073756363656564206265636175736520746865726520617265207374696c6c20636f6e73756d657273206f6620746865206c6f636b2e68496e76616c69644173736574556e6b6e6f776e52657365727665001504f0496e76616c69642061737365742c207265736572766520636861696e20636f756c64206e6f742062652064657465726d696e656420666f722069742e78496e76616c69644173736574556e737570706f72746564526573657276650016044501496e76616c69642061737365742c20646f206e6f7420737570706f72742072656d6f7465206173736574207265736572766573207769746820646966666572656e7420666565732072657365727665732e3c546f6f4d616e7952657365727665730017044901546f6f206d616e7920617373657473207769746820646966666572656e742072657365727665206c6f636174696f6e732068617665206265656e20617474656d7074656420666f72207472616e736665722e604c6f63616c457865637574696f6e496e636f6d706c6574650018047c4c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652e60546f6f4d616e79417574686f72697a6564416c6961736573001904b8546f6f206d616e79206c6f636174696f6e7320617574686f72697a656420746f20616c696173206f726967696e2e3445787069726573496e50617374001a048c45787069727920626c6f636b206e756d62657220697320696e2074686520706173742e34416c6961734e6f74466f756e64001b04d054686520616c69617320746f2072656d6f766520617574686f72697a6174696f6e20666f7220776173206e6f7420666f756e642e844c6f63616c457865637574696f6e496e636f6d706c657465576974684572726f72080114696e646578080140496e737472756374696f6e496e6465780001146572726f726d0c0138457865637574696f6e4572726f72001c0835014c6f63616c2058434d20657865637574696f6e20696e636f6d706c6574652077697468207468652061637475616c2058434d206572726f7220616e642074686520696e646578206f662074686588696e737472756374696f6e20746861742063617573656420746865206572726f722e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e6d0c0c3470657a70616c6c65745f78636d186572726f727338457865637574696f6e4572726f720001a4204f766572666c6f7700000034556e696d706c656d656e74656400010060556e74727573746564526573657276654c6f636174696f6e00020064556e7472757374656454656c65706f72744c6f636174696f6e000300304c6f636174696f6e46756c6c000400544c6f636174696f6e4e6f74496e7665727469626c65000500244261644f726967696e0006003c496e76616c69644c6f636174696f6e0007003441737365744e6f74466f756e64000800544661696c6564546f5472616e7361637441737365740009003c4e6f74576974686472617761626c65000a00484c6f636174696f6e43616e6e6f74486f6c64000b0054457863656564734d61784d65737361676553697a65000c005844657374696e6174696f6e556e737570706f72746564000d00245472616e73706f7274000e0028556e726f757461626c65000f0030556e6b6e6f776e436c61696d001000384661696c6564546f4465636f6465001100404d6178576569676874496e76616c6964001200384e6f74486f6c64696e674665657300130030546f6f457870656e736976650014001054726170001500404578706563746174696f6e46616c73650016003850616c6c65744e6f74466f756e64001700304e616d654d69736d617463680018004c56657273696f6e496e636f6d70617469626c6500190050486f6c64696e67576f756c644f766572666c6f77001a002c4578706f72744572726f72001b00385265616e63686f724661696c6564001c00184e6f4465616c001d0028466565734e6f744d6574001e00244c6f636b4572726f72001f00304e6f5065726d697373696f6e00200028556e616e63686f726564002100384e6f744465706f73697461626c6500220034546f6f4d616e794173736574730023004c556e68616e646c656458636d56657273696f6e002400485765696768744c696d6974526561636865640025001c426172726965720026004c5765696768744e6f74436f6d70757461626c650027004445786365656473537461636b4c696d697400280000710c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e646564566563080454015902045300000400750c01185665633c543e0000750c000002590200790c0c3c70657a70616c6c65745f62656566792470657a70616c6c6574144572726f7204045400012060496e76616c69644b65794f776e65727368697050726f6f66000004310141206b6579206f776e6572736869702070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e60496e76616c6964446f75626c65566f74696e6750726f6f6600010431014120646f75626c6520766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e58496e76616c6964466f726b566f74696e6750726f6f6600020429014120666f726b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e74496e76616c6964467574757265426c6f636b566f74696e6750726f6f660003044901412066757475726520626c6f636b20766f74696e672070726f6f662070726f76696465642061732070617274206f6620616e2065717569766f636174696f6e207265706f727420697320696e76616c69642e7c496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e000404c05468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f6620697320696e76616c696494496e76616c696445717569766f636174696f6e50726f6f6653657373696f6e4d656d62657200050415015468652073657373696f6e206f66207468652065717569766f636174696f6e2070726f6f66206973206e6f7420696e20746865206d617070696e672028616e796d6f726529584475706c69636174654f6666656e63655265706f727400060415014120676976656e2065717569766f636174696f6e207265706f72742069732076616c69642062757420616c72656164792070726576696f75736c79207265706f727465642e50496e76616c6964436f6e66696775726174696f6e0007048c5375626d697474656420636f6e66696775726174696f6e20697320696e76616c69642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e7d0c0c5470657a73705f636f6e73656e7375735f62656566790c6d6d72444265656679417574686f726974795365740458417574686f72697479536574436f6d6d69746d656e740134000c0108696430015463726174653a3a56616c696461746f72536574496400010c6c656e10010c7533320001446b65797365745f636f6d6d69746d656e74340158417574686f72697479536574436f6d6d69746d656e740000810c105870657a6b7577695f72756e74696d655f636f6d6d6f6e4870617261735f7375646f5f777261707065722470657a70616c6c6574144572726f720404540001283c50617261446f65736e744578697374000004a8546865207370656369666965642074657972636861696e206973206e6f7420726567697374657265642e4450617261416c7265616479457869737473000104b8546865207370656369666965642074657972636861696e20697320616c726561647920726567697374657265642e54457863656564734d61784d65737361676553697a6500020841014120444d50206d65737361676520636f756c646e27742062652073656e742062656361757365206974206578636565647320746865206d6178696d756d2073697a6520616c6c6f77656420666f72206144646f776e77617264206d6573736167652e28556e726f757461626c6500030419014120444d50206d65737361676520636f756c646e27742062652073656e742062656361757365207468652064657374696e6174696f6e20697320756e726561636861626c652e38436f756c646e74436c65616e757000040480436f756c64206e6f74207363686564756c65207061726120636c65616e75702e344e6f74506172617468726561640005049c4e6f742061207061726174687265616420286f6e2d64656d616e642074657972636861696e292e304e6f7454657972636861696e000604784e6f742061206c6561736520686f6c64696e672074657972636861696e2e3443616e6e6f7455706772616465000704f843616e6e6f742075706772616465206f6e2d64656d616e642074657972636861696e20746f206c6561736520686f6c64696e672074657972636861696e2e3c43616e6e6f74446f776e6772616465000804d843616e6e6f7420646f776e6772616465206c6561736520686f6c64696e672074657972636861696e20746f206f6e2d64656d616e642e30546f6f4d616e79436f726573000904cc546865726520617265206d6f726520636f726573207468616e20737570706f72746564206279207468652072756e74696d652e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e850c0c5870657a6b7577695f72756e74696d655f636f6d6d6f6e3861737369676e65645f736c6f74735854657972636861696e54656d706f72617279536c6f7408244163636f756e74496401002c4c65617365506572696f6401100014011c6d616e616765720001244163636f756e744964000130706572696f645f626567696e10012c4c65617365506572696f64000130706572696f645f636f756e7410012c4c65617365506572696f640001286c6173745f6c65617365ec014c4f7074696f6e3c4c65617365506572696f643e00012c6c656173655f636f756e7410010c7533320000890c105870657a6b7577695f72756e74696d655f636f6d6d6f6e3861737369676e65645f736c6f74732470657a70616c6c6574144572726f720404540001243c50617261446f65736e744578697374000004a8546865207370656369666965642074657972636861696e206973206e6f7420726567697374657265642e344e6f74506172617468726561640001049c4e6f742061207061726174687265616420286f6e2d64656d616e642074657972636861696e292e3443616e6e6f7455706772616465000208cc43616e6e6f742075706772616465206f6e2d64656d616e642074657972636861696e20746f206c6561736520686f6c64696e672874657972636861696e2e3c43616e6e6f74446f776e6772616465000308ac43616e6e6f7420646f776e6772616465206c6561736520686f6c64696e672074657972636861696e20746f286f6e2d64656d616e642e4c536c6f74416c726561647941737369676e6564000404b45065726d616e656e74206f722054656d706f7261727920736c6f7420616c72656164792061737369676e65642e3c536c6f744e6f7441737369676e6564000504c85065726d616e656e74206f722054656d706f7261727920736c6f7420686173206e6f74206265656e2061737369676e65642e484f6e676f696e674c6561736545786973747300060480416e206f6e676f696e67206c6561736520616c7265616479206578697374732e644d61785065726d616e656e74536c6f74734578636565646564000700644d617854656d706f72617279536c6f74734578636565646564000800048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742e8d0c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e6465645665630804540110045300000400190101185665633c543e0000910c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e0000950c0c6070657a70616c6c65745f76616c696461746f725f706f6f6c14747970657340536861646f77436f6d70617269736f6e04244163636f756e7449640100001c01246572615f696e64657810010c7533320001346f7665726c61705f636f756e7410010c753332000128746e706f735f6f6e6c79990c018c426f756e6465645665633c4163636f756e7449642c20436f6e73745533323c32313e3e0001246e706f735f6f6e6c79990c018c426f756e6465645665633c4163636f756e7449642c20436f6e73745533323c32313e3e0001287374616b655f646966669d0c010c6933320001487061726c69616d656e746172795f646966669d0c010c6933320001286d657269745f646966669d0c010c6933320000990c0c4c626f756e6465645f636f6c6c656374696f6e732c626f756e6465645f76656328426f756e64656456656308045401000453000004002d0201185665633c543e00009d0c0000050b00a10c0c6070657a70616c6c65745f76616c696461746f725f706f6f6c14747970657340536861646f775374617469737469637300002c0134657261735f616e616c797a656410010c753332000134746f74616c5f6f7665726c617010010c753332000140746f74616c5f746e706f735f6f6e6c7910010c75333200013c746f74616c5f6e706f735f6f6e6c7910010c75333200013c6176675f6f7665726c61705f62707310010c753332000144746e706f735f6265747465725f6572617310010c7533320001406e706f735f6265747465725f6572617310010c753332000158746e706f735f70726f6a65637465645f626c6f636b7330010c7536340001486e706f735f61637475616c5f626c6f636b7330010c7536340001446869676865725f7374616b655f6572617310010c7533320001446869676865725f74727573745f6572617310010c7533320000a50c0c6070657a70616c6c65745f76616c696461746f725f706f6f6c1474797065732c457261416e616c7973697300002c01246572615f696e64657810010c7533320001447265636f726465645f61745f626c6f636b10010c753332000144746e706f735f746f74616c5f7374616b65180110753132380001406e706f735f746f74616c5f7374616b651801107531323800013c746e706f735f6176675f747275737410010c7533320001386e706f735f6176675f747275737410010c753332000144746e706f735f7374616b655f636f756e740801087538000164746e706f735f7061726c69616d656e746172795f636f756e740801087538000144746e706f735f6d657269745f636f756e74080108753800013c626c6f636b735f70726f647563656410010c753332000134626c6f636b735f6d697373656410010c7533320000a90c0c6070657a70616c6c65745f76616c696461746f725f706f6f6c1474797065735043617465676f7279446973747269627574696f6e00001801147374616b6508010875380001347061726c69616d656e7461727908010875380001146d6572697408010875380001307461726765745f7374616b6508010875380001507461726765745f7061726c69616d656e7461727908010875380001307461726765745f6d6572697408010875380000ad0c0c6070657a70616c6c65745f76616c696461746f725f706f6f6c2470657a70616c6c6574144572726f7204045400013834416c7265616479496e506f6f6c0000046456616c696461746f7220616c726561647920696e20706f6f6c244e6f74496e506f6f6c0001045456616c696461746f72206e6f7420696e20706f6f6c20506f6f6c46756c6c00020430506f6f6c2069732066756c6c44496e73756666696369656e745374616b6500030464496e73756666696369656e74207374616b6520616d6f756e7458496e73756666696369656e74547275737453636f726500040460496e73756666696369656e742074727573742073636f72654c4d697373696e67526571756972656454696b69000504544d697373696e672072657175697265642054696b6970496e73756666696369656e74436f6d6d756e697479537570706f7274000604704e6f7420656e6f75676820636f6d6d756e69747920737570706f7274544572615472616e736974696f6e546f6f4561726c7900070460457261207472616e736974696f6e20746f6f206561726c793c496e76616c696443617465676f727900080440496e76616c69642063617465676f72794c4e6f74456e6f75676856616c696461746f7273000904784e6f7420656e6f75676820656c696769626c652076616c696461746f72734c416c7265616479496e536861646f774d6f6465000a0458416c726561647920696e20736861646f77206d6f64654c416c7265616479496e4163746976654d6f6465000b0458416c726561647920696e20616374697665206d6f646550536861646f774d6f64654e6f74456e61626c6564000c045c536861646f77206d6f6465206e6f7420656e61626c6564404e6f436f6d70617269736f6e44617461000d04704e6f20636f6d70617269736f6e206461746120617661696c61626c65048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742eb10c0c4c70657a70616c6c65745f626167735f6c697374106c697374104e6f646508045400044900001401086964000130543a3a4163636f756e74496400011070726576810201504f7074696f6e3c543a3a4163636f756e7449643e0001106e657874810201504f7074696f6e3c543a3a4163636f756e7449643e0001246261675f7570706572300120543a3a53636f726500011473636f7265300120543a3a53636f72650000b50c0c4c70657a70616c6c65745f626167735f6c697374106c6973740c426167080454000449000008011068656164810201504f7074696f6e3c543a3a4163636f756e7449643e0001107461696c810201504f7074696f6e3c543a3a4163636f756e7449643e0000b90c0000023000bd0c0c4c70657a70616c6c65745f626167735f6c6973742470657a70616c6c6574144572726f72080454000449000108104c6973740400c10c01244c6973744572726f72000004b441206572726f7220696e20746865206c69737420696e7465726661636520696d706c656d656e746174696f6e2e184c6f636b6564000104e4436f756c64206e6f74207570646174652061206e6f64652c2062656361757365207468652070657a70616c6c6574206973206c6f636b65642e048c54686520604572726f726020656e756d206f6620746869732070657a70616c6c65742ec10c0c4c70657a70616c6c65745f626167735f6c697374106c697374244c6973744572726f72000114244475706c6963617465000000284e6f7448656176696572000100304e6f74496e53616d65426167000200304e6f64654e6f74466f756e64000300184c6f636b656400040000c50c0c3870657a70616c6c65745f7375646f2470657a70616c6c6574144572726f720404540001042c526571756972655375646f0000048053656e646572206d75737420626520746865205375646f206163636f756e742e04744572726f7220666f7220746865205375646f2070657a70616c6c65742ec90c103470657a73705f72756e74696d651c67656e657269634c756e636865636b65645f65787472696e73696348556e636865636b656445787472696e736963101c416464726573730121021043616c6c01e101245369676e617475726501710414457874726101cd0c00040038000000cd0c0000042cd10cd50cd90cdd0ce10ce50ced0cf10cf50cf90c010d00d10c103c70657a6672616d655f73797374656d28657874656e73696f6e7338617574686f72697a655f63616c6c34417574686f72697a6543616c6c04045400000000d50c103c70657a6672616d655f73797374656d28657874656e73696f6e7354636865636b5f6e6f6e5f7a65726f5f73656e64657248436865636b4e6f6e5a65726f53656e64657204045400000000d90c103c70657a6672616d655f73797374656d28657874656e73696f6e7348636865636b5f737065635f76657273696f6e40436865636b5370656356657273696f6e04045400000000dd0c103c70657a6672616d655f73797374656d28657874656e73696f6e7340636865636b5f74785f76657273696f6e38436865636b547856657273696f6e04045400000000e10c103c70657a6672616d655f73797374656d28657874656e73696f6e7334636865636b5f67656e6573697330436865636b47656e6573697304045400000000e50c103c70657a6672616d655f73797374656d28657874656e73696f6e733c636865636b5f6d6f7274616c69747938436865636b4d6f7274616c69747904045400000400e90c010c4572610000e90c103470657a73705f72756e74696d651c67656e657269630c6572610c4572610001010420496d6d6f7274616c0000001c4d6f7274616c31040008000001001c4d6f7274616c32040008000002001c4d6f7274616c33040008000003001c4d6f7274616c34040008000004001c4d6f7274616c35040008000005001c4d6f7274616c36040008000006001c4d6f7274616c37040008000007001c4d6f7274616c38040008000008001c4d6f7274616c3904000800000900204d6f7274616c313004000800000a00204d6f7274616c313104000800000b00204d6f7274616c313204000800000c00204d6f7274616c313304000800000d00204d6f7274616c313404000800000e00204d6f7274616c313504000800000f00204d6f7274616c313604000800001000204d6f7274616c313704000800001100204d6f7274616c313804000800001200204d6f7274616c313904000800001300204d6f7274616c323004000800001400204d6f7274616c323104000800001500204d6f7274616c323204000800001600204d6f7274616c323304000800001700204d6f7274616c323404000800001800204d6f7274616c323504000800001900204d6f7274616c323604000800001a00204d6f7274616c323704000800001b00204d6f7274616c323804000800001c00204d6f7274616c323904000800001d00204d6f7274616c333004000800001e00204d6f7274616c333104000800001f00204d6f7274616c333204000800002000204d6f7274616c333304000800002100204d6f7274616c333404000800002200204d6f7274616c333504000800002300204d6f7274616c333604000800002400204d6f7274616c333704000800002500204d6f7274616c333804000800002600204d6f7274616c333904000800002700204d6f7274616c343004000800002800204d6f7274616c343104000800002900204d6f7274616c343204000800002a00204d6f7274616c343304000800002b00204d6f7274616c343404000800002c00204d6f7274616c343504000800002d00204d6f7274616c343604000800002e00204d6f7274616c343704000800002f00204d6f7274616c343804000800003000204d6f7274616c343904000800003100204d6f7274616c353004000800003200204d6f7274616c353104000800003300204d6f7274616c353204000800003400204d6f7274616c353304000800003500204d6f7274616c353404000800003600204d6f7274616c353504000800003700204d6f7274616c353604000800003800204d6f7274616c353704000800003900204d6f7274616c353804000800003a00204d6f7274616c353904000800003b00204d6f7274616c363004000800003c00204d6f7274616c363104000800003d00204d6f7274616c363204000800003e00204d6f7274616c363304000800003f00204d6f7274616c363404000800004000204d6f7274616c363504000800004100204d6f7274616c363604000800004200204d6f7274616c363704000800004300204d6f7274616c363804000800004400204d6f7274616c363904000800004500204d6f7274616c373004000800004600204d6f7274616c373104000800004700204d6f7274616c373204000800004800204d6f7274616c373304000800004900204d6f7274616c373404000800004a00204d6f7274616c373504000800004b00204d6f7274616c373604000800004c00204d6f7274616c373704000800004d00204d6f7274616c373804000800004e00204d6f7274616c373904000800004f00204d6f7274616c383004000800005000204d6f7274616c383104000800005100204d6f7274616c383204000800005200204d6f7274616c383304000800005300204d6f7274616c383404000800005400204d6f7274616c383504000800005500204d6f7274616c383604000800005600204d6f7274616c383704000800005700204d6f7274616c383804000800005800204d6f7274616c383904000800005900204d6f7274616c393004000800005a00204d6f7274616c393104000800005b00204d6f7274616c393204000800005c00204d6f7274616c393304000800005d00204d6f7274616c393404000800005e00204d6f7274616c393504000800005f00204d6f7274616c393604000800006000204d6f7274616c393704000800006100204d6f7274616c393804000800006200204d6f7274616c393904000800006300244d6f7274616c31303004000800006400244d6f7274616c31303104000800006500244d6f7274616c31303204000800006600244d6f7274616c31303304000800006700244d6f7274616c31303404000800006800244d6f7274616c31303504000800006900244d6f7274616c31303604000800006a00244d6f7274616c31303704000800006b00244d6f7274616c31303804000800006c00244d6f7274616c31303904000800006d00244d6f7274616c31313004000800006e00244d6f7274616c31313104000800006f00244d6f7274616c31313204000800007000244d6f7274616c31313304000800007100244d6f7274616c31313404000800007200244d6f7274616c31313504000800007300244d6f7274616c31313604000800007400244d6f7274616c31313704000800007500244d6f7274616c31313804000800007600244d6f7274616c31313904000800007700244d6f7274616c31323004000800007800244d6f7274616c31323104000800007900244d6f7274616c31323204000800007a00244d6f7274616c31323304000800007b00244d6f7274616c31323404000800007c00244d6f7274616c31323504000800007d00244d6f7274616c31323604000800007e00244d6f7274616c31323704000800007f00244d6f7274616c31323804000800008000244d6f7274616c31323904000800008100244d6f7274616c31333004000800008200244d6f7274616c31333104000800008300244d6f7274616c31333204000800008400244d6f7274616c31333304000800008500244d6f7274616c31333404000800008600244d6f7274616c31333504000800008700244d6f7274616c31333604000800008800244d6f7274616c31333704000800008900244d6f7274616c31333804000800008a00244d6f7274616c31333904000800008b00244d6f7274616c31343004000800008c00244d6f7274616c31343104000800008d00244d6f7274616c31343204000800008e00244d6f7274616c31343304000800008f00244d6f7274616c31343404000800009000244d6f7274616c31343504000800009100244d6f7274616c31343604000800009200244d6f7274616c31343704000800009300244d6f7274616c31343804000800009400244d6f7274616c31343904000800009500244d6f7274616c31353004000800009600244d6f7274616c31353104000800009700244d6f7274616c31353204000800009800244d6f7274616c31353304000800009900244d6f7274616c31353404000800009a00244d6f7274616c31353504000800009b00244d6f7274616c31353604000800009c00244d6f7274616c31353704000800009d00244d6f7274616c31353804000800009e00244d6f7274616c31353904000800009f00244d6f7274616c3136300400080000a000244d6f7274616c3136310400080000a100244d6f7274616c3136320400080000a200244d6f7274616c3136330400080000a300244d6f7274616c3136340400080000a400244d6f7274616c3136350400080000a500244d6f7274616c3136360400080000a600244d6f7274616c3136370400080000a700244d6f7274616c3136380400080000a800244d6f7274616c3136390400080000a900244d6f7274616c3137300400080000aa00244d6f7274616c3137310400080000ab00244d6f7274616c3137320400080000ac00244d6f7274616c3137330400080000ad00244d6f7274616c3137340400080000ae00244d6f7274616c3137350400080000af00244d6f7274616c3137360400080000b000244d6f7274616c3137370400080000b100244d6f7274616c3137380400080000b200244d6f7274616c3137390400080000b300244d6f7274616c3138300400080000b400244d6f7274616c3138310400080000b500244d6f7274616c3138320400080000b600244d6f7274616c3138330400080000b700244d6f7274616c3138340400080000b800244d6f7274616c3138350400080000b900244d6f7274616c3138360400080000ba00244d6f7274616c3138370400080000bb00244d6f7274616c3138380400080000bc00244d6f7274616c3138390400080000bd00244d6f7274616c3139300400080000be00244d6f7274616c3139310400080000bf00244d6f7274616c3139320400080000c000244d6f7274616c3139330400080000c100244d6f7274616c3139340400080000c200244d6f7274616c3139350400080000c300244d6f7274616c3139360400080000c400244d6f7274616c3139370400080000c500244d6f7274616c3139380400080000c600244d6f7274616c3139390400080000c700244d6f7274616c3230300400080000c800244d6f7274616c3230310400080000c900244d6f7274616c3230320400080000ca00244d6f7274616c3230330400080000cb00244d6f7274616c3230340400080000cc00244d6f7274616c3230350400080000cd00244d6f7274616c3230360400080000ce00244d6f7274616c3230370400080000cf00244d6f7274616c3230380400080000d000244d6f7274616c3230390400080000d100244d6f7274616c3231300400080000d200244d6f7274616c3231310400080000d300244d6f7274616c3231320400080000d400244d6f7274616c3231330400080000d500244d6f7274616c3231340400080000d600244d6f7274616c3231350400080000d700244d6f7274616c3231360400080000d800244d6f7274616c3231370400080000d900244d6f7274616c3231380400080000da00244d6f7274616c3231390400080000db00244d6f7274616c3232300400080000dc00244d6f7274616c3232310400080000dd00244d6f7274616c3232320400080000de00244d6f7274616c3232330400080000df00244d6f7274616c3232340400080000e000244d6f7274616c3232350400080000e100244d6f7274616c3232360400080000e200244d6f7274616c3232370400080000e300244d6f7274616c3232380400080000e400244d6f7274616c3232390400080000e500244d6f7274616c3233300400080000e600244d6f7274616c3233310400080000e700244d6f7274616c3233320400080000e800244d6f7274616c3233330400080000e900244d6f7274616c3233340400080000ea00244d6f7274616c3233350400080000eb00244d6f7274616c3233360400080000ec00244d6f7274616c3233370400080000ed00244d6f7274616c3233380400080000ee00244d6f7274616c3233390400080000ef00244d6f7274616c3234300400080000f000244d6f7274616c3234310400080000f100244d6f7274616c3234320400080000f200244d6f7274616c3234330400080000f300244d6f7274616c3234340400080000f400244d6f7274616c3234350400080000f500244d6f7274616c3234360400080000f600244d6f7274616c3234370400080000f700244d6f7274616c3234380400080000f800244d6f7274616c3234390400080000f900244d6f7274616c3235300400080000fa00244d6f7274616c3235310400080000fb00244d6f7274616c3235320400080000fc00244d6f7274616c3235330400080000fd00244d6f7274616c3235340400080000fe00244d6f7274616c3235350400080000ff0000ed0c103c70657a6672616d655f73797374656d28657874656e73696f6e732c636865636b5f6e6f6e636528436865636b4e6f6e63650404540000040035010120543a3a4e6f6e63650000f10c103c70657a6672616d655f73797374656d28657874656e73696f6e7330636865636b5f7765696768742c436865636b57656967687404045400000000f50c087470657a70616c6c65745f7472616e73616374696f6e5f7061796d656e74604368617267655472616e73616374696f6e5061796d656e74040454000004004501013042616c616e63654f663c543e0000f90c088070657a6672616d655f6d657461646174615f686173685f657874656e73696f6e44436865636b4d657461646174614861736804045400000401106d6f6465fd0c01104d6f64650000fd0c088070657a6672616d655f6d657461646174615f686173685f657874656e73696f6e104d6f64650001082044697361626c65640000001c456e61626c656400010000010d103c70657a6672616d655f73797374656d28657874656e73696f6e73387765696768745f7265636c61696d345765696768745265636c61696d04045400000000050d085070657a6b757769636861696e5f72756e74696d651c52756e74696d6500000000f81853797374656d011853797374656d4c1c4163636f756e7401010402000c4101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008004e8205468652066756c6c206163636f756e7420696e666f726d6174696f6e20666f72206120706172746963756c6172206163636f756e742049442e3845787472696e736963436f756e74000010040004b820546f74616c2065787472696e7369637320636f756e7420666f72207468652063757272656e7420626c6f636b2e40496e686572656e74734170706c696564010020040004a4205768657468657220616c6c20696e686572656e74732068617665206265656e206170706c6965642e2c426c6f636b576569676874010024180000000000000488205468652063757272656e742077656967687420666f722074686520626c6f636b2e40416c6c45787472696e736963734c656e000010040004410120546f74616c206c656e6774682028696e2062797465732920666f7220616c6c2065787472696e736963732070757420746f6765746865722c20666f72207468652063757272656e7420626c6f636b2e24426c6f636b486173680101040510348000000000000000000000000000000000000000000000000000000000000000000498204d6170206f6620626c6f636b206e756d6265727320746f20626c6f636b206861736865732e3445787472696e736963446174610101040510380400043d012045787472696e73696373206461746120666f72207468652063757272656e7420626c6f636b20286d61707320616e2065787472696e736963277320696e64657820746f206974732064617461292e184e756d6265720100101000000000040901205468652063757272656e7420626c6f636b206e756d626572206265696e672070726f6365737365642e205365742062792060657865637574655f626c6f636b602e28506172656e744861736801003480000000000000000000000000000000000000000000000000000000000000000004702048617368206f66207468652070726576696f757320626c6f636b2e1844696765737401003c040004f020446967657374206f66207468652063757272656e7420626c6f636b2c20616c736f2070617274206f662074686520626c6f636b206865616465722e184576656e747301004c04001ca0204576656e7473206465706f736974656420666f72207468652063757272656e7420626c6f636b2e001d01204e4f54453a20546865206974656d20697320756e626f756e6420616e642073686f756c64207468657265666f7265206e657665722062652072656164206f6e20636861696e2ed020497420636f756c64206f746865727769736520696e666c6174652074686520506f562073697a65206f66206120626c6f636b2e002d01204576656e747320686176652061206c6172676520696e2d6d656d6f72792073697a652e20426f7820746865206576656e747320746f206e6f7420676f206f75742d6f662d6d656d6f7279fc206a75737420696e206361736520736f6d656f6e65207374696c6c207265616473207468656d2066726f6d2077697468696e207468652072756e74696d652e284576656e74436f756e74010010100000000004b820546865206e756d626572206f66206576656e747320696e2074686520604576656e74733c543e60206c6973742e2c4576656e74546f70696373010104023475070400282501204d617070696e67206265747765656e206120746f7069632028726570726573656e74656420627920543a3a486173682920616e64206120766563746f72206f6620696e646578657394206f66206576656e747320696e2074686520603c4576656e74733c543e3e60206c6973742e00510120416c6c20746f70696320766563746f727320686176652064657465726d696e69737469632073746f72616765206c6f636174696f6e7320646570656e64696e67206f6e2074686520746f7069632e2054686973450120616c6c6f7773206c696768742d636c69656e747320746f206c6576657261676520746865206368616e67657320747269652073746f7261676520747261636b696e67206d656368616e69736d20616e64e420696e2063617365206f66206368616e67657320666574636820746865206c697374206f66206576656e7473206f6620696e7465726573742e005901205468652076616c756520686173207468652074797065206028426c6f636b4e756d626572466f723c543e2c204576656e74496e646578296020626563617573652069662077652075736564206f6e6c79206a7573744d012074686520604576656e74496e64657860207468656e20696e20636173652069662074686520746f70696320686173207468652073616d6520636f6e74656e7473206f6e20746865206e65787420626c6f636b0101206e6f206e6f74696669636174696f6e2077696c6c20626520747269676765726564207468757320746865206576656e74206d69676874206265206c6f73742e484c61737452756e74696d65557067726164650000790704000455012053746f726573207468652060737065635f76657273696f6e6020616e642060737065635f6e616d6560206f66207768656e20746865206c6173742072756e74696d6520757067726164652068617070656e65642e545570677261646564546f553332526566436f756e740100200400044d012054727565206966207765206861766520757067726164656420736f207468617420607479706520526566436f756e74602069732060753332602e2046616c7365202864656661756c7429206966206e6f742e605570677261646564546f547269706c65526566436f756e740100200400085d012054727565206966207765206861766520757067726164656420736f2074686174204163636f756e74496e666f20636f6e7461696e73207468726565207479706573206f662060526566436f756e74602e2046616c736548202864656661756c7429206966206e6f742e38457865637574696f6e506861736500007107040004882054686520657865637574696f6e207068617365206f662074686520626c6f636b2e44417574686f72697a65645570677261646500008507040004b82060536f6d6560206966206120636f6465207570677261646520686173206265656e20617574686f72697a65642e6045787472696e7369635765696768745265636c61696d65640100280800001ca02054686520776569676874207265636c61696d656420666f72207468652065787472696e7369632e002101205468697320696e666f726d6174696f6e20697320617661696c61626c6520756e74696c2074686520656e64206f66207468652065787472696e73696320657865637574696f6e2e2101204d6f726520707265636973656c79207468697320696e666f726d6174696f6e2069732072656d6f76656420696e20606e6f74655f6170706c6965645f65787472696e736963602e007101204c6f67696320646f696e6720736f6d6520706f73742064697370617463682077656967687420726564756374696f6e206d7573742075706461746520746869732073746f7261676520746f2061766f6964206475706c69636174652c20726564756374696f6e2e01e50101581830426c6f636b576569676874738907f9010278586b000b00204aa9d10113ffffffffffffffffa2ca421600010b581d4f91580113a3703d0ad7a370bd010b0098f73e5d0113ffffffffffffffbf010000a2ca421600010b58a5a1fbcc0113a3703d0ad7a370fd010b00204aa9d10113ffffffffffffffff01070088526a74130000000000000040a2ca42160000000004d020426c6f636b20262065787472696e7369637320776569676874733a20626173652076616c75657320616e64206c696d6974732e2c426c6f636b4c656e67746895073000003c00000050000000500004a820546865206d6178696d756d206c656e677468206f66206120626c6f636b2028696e206279746573292e38426c6f636b48617368436f756e74101000100000045501204d6178696d756d206e756d626572206f6620626c6f636b206e756d62657220746f20626c6f636b2068617368206d617070696e677320746f206b65657020286f6c64657374207072756e6564206669727374292e2044625765696768749d074040787d010000000000e1f505000000000409012054686520776569676874206f662072756e74696d65206461746162617365206f7065726174696f6e73207468652072756e74696d652063616e20696e766f6b652e1c56657273696f6ea1078d043070657a6b757769636861696e4c7061726974792d70657a6b757769636861696e0000000061900f000000000050df6acb689907609b050000006ff52ee858e6c5bd0200000091b1c8b16328eb92020000009ffb505aa738d69c0100000037e397fc7c91f5e40200000040fe3ad401f8959a06000000d2bc9897eed08f1503000000f78b278be53f454c02000000bbb23bc4c75cbf550f00000049eaaf1b548a0cb00600000091d5df18b0d2cf5803000000ed99c5acb25eedf503000000cbca25e39f14238702000000687ad44ad37f03c201000000ab3c0572291feb8b01000000bc9d89904f5b923f0100000037c8bb1350a9a2a8040000002a5e924655399e6001000000fbc577b9d747efd6010000002609be83ac4468dc010000001a000000010484204765742074686520636861696e277320696e2d636f64652076657273696f6e2e2853533538507265666978cd01082a0014a8205468652064657369676e61746564205353353820707265666978206f66207468697320636861696e2e0039012054686973207265706c6163657320746865202273733538466f726d6174222070726f7065727479206465636c6172656420696e2074686520636861696e20737065632e20526561736f6e20697331012074686174207468652072756e74696d652073686f756c64206b6e6f772061626f7574207468652070726566697820696e206f7264657220746f206d616b6520757365206f662069742061737020616e206964656e746966696572206f662074686520636861696e2e01b107001042616265011042616265442845706f6368496e64657801003020000000000000000004542043757272656e742065706f636820696e6465782e2c417574686f7269746965730100b5070400046c2043757272656e742065706f636820617574686f7269746965732e2c47656e65736973536c6f740100050220000000000000000008f82054686520736c6f74206174207768696368207468652066697273742065706f63682061637475616c6c7920737461727465642e205468697320697320309020756e74696c2074686520666972737420626c6f636b206f662074686520636861696e2e2c43757272656e74536c6f740100050220000000000000000004542043757272656e7420736c6f74206e756d6265722e2852616e646f6d6e65737301000480000000000000000000000000000000000000000000000000000000000000000028b8205468652065706f63682072616e646f6d6e65737320666f7220746865202a63757272656e742a2065706f63682e002c20232053656375726974790005012054686973204d555354204e4f54206265207573656420666f722067616d626c696e672c2061732069742063616e20626520696e666c75656e6365642062792061f8206d616c6963696f75732076616c696461746f7220696e207468652073686f7274207465726d2e204974204d4159206265207573656420696e206d616e7915012063727970746f677261706869632070726f746f636f6c732c20686f77657665722c20736f206c6f6e67206173206f6e652072656d656d6265727320746861742074686973150120286c696b652065766572797468696e6720656c7365206f6e2d636861696e29206974206973207075626c69632e20466f72206578616d706c652c2069742063616e206265050120757365642077686572652061206e756d626572206973206e656564656420746861742063616e6e6f742068617665206265656e2063686f73656e20627920616e0d01206164766572736172792c20666f7220707572706f7365732073756368206173207075626c69632d636f696e207a65726f2d6b6e6f776c656467652070726f6f66732e6050656e64696e6745706f6368436f6e6669674368616e676500000d0204000461012050656e64696e672065706f636820636f6e66696775726174696f6e206368616e676520746861742077696c6c206265206170706c696564207768656e20746865206e6578742065706f636820697320656e61637465642e384e65787452616e646f6d6e657373010004800000000000000000000000000000000000000000000000000000000000000000045c204e6578742065706f63682072616e646f6d6e6573732e3c4e657874417574686f7269746965730100b50704000460204e6578742065706f636820617574686f7269746965732e305365676d656e74496e6465780100101000000000247c2052616e646f6d6e65737320756e64657220636f6e737472756374696f6e2e00f8205765206d616b6520612074726164652d6f6666206265747765656e2073746f7261676520616363657373657320616e64206c697374206c656e6774682e01012057652073746f72652074686520756e6465722d636f6e737472756374696f6e2072616e646f6d6e65737320696e207365676d656e7473206f6620757020746f942060554e4445525f434f4e535452554354494f4e5f5345474d454e545f4c454e475448602e00ec204f6e63652061207365676d656e7420726561636865732074686973206c656e6774682c20776520626567696e20746865206e657874206f6e652e090120576520726573657420616c6c207365676d656e747320616e642072657475726e20746f206030602061742074686520626567696e6e696e67206f662065766572791c2065706f63682e44556e646572436f6e737472756374696f6e0101040510c10704000415012054574f582d4e4f54453a20605365676d656e74496e6465786020697320616e20696e6372656173696e6720696e74656765722c20736f2074686973206973206f6b61792e2c496e697469616c697a65640000c90704000801012054656d706f726172792076616c75652028636c656172656420617420626c6f636b2066696e616c697a6174696f6e292077686963682069732060536f6d65601d01206966207065722d626c6f636b20696e697469616c697a6174696f6e2068617320616c7265616479206265656e2063616c6c656420666f722063757272656e7420626c6f636b2e4c417574686f7256726652616e646f6d6e6573730100cd0604001015012054686973206669656c642073686f756c6420616c7761797320626520706f70756c6174656420647572696e6720626c6f636b2070726f63657373696e6720756e6c6573731901207365636f6e6461727920706c61696e20736c6f74732061726520656e61626c65642028776869636820646f6e277420636f6e7461696e206120565246206f7574707574292e0049012049742069732073657420696e20606f6e5f66696e616c697a65602c206265666f72652069742077696c6c20636f6e7461696e207468652076616c75652066726f6d20746865206c61737420626c6f636b2e2845706f6368537461727401003d03200000000000000000145d012054686520626c6f636b206e756d62657273207768656e20746865206c61737420616e642063757272656e742065706f6368206861766520737461727465642c20726573706563746976656c7920604e2d316020616e641420604e602e4901204e4f54453a20576520747261636b207468697320697320696e206f7264657220746f20616e6e6f746174652074686520626c6f636b206e756d626572207768656e206120676976656e20706f6f6c206f66590120656e74726f7079207761732066697865642028692e652e20697420776173206b6e6f776e20746f20636861696e206f6273657276657273292e2053696e63652065706f6368732061726520646566696e656420696e590120736c6f74732c207768696368206d617920626520736b69707065642c2074686520626c6f636b206e756d62657273206d6179206e6f74206c696e6520757020776974682074686520736c6f74206e756d626572732e204c6174656e657373010010100000000014d820486f77206c617465207468652063757272656e7420626c6f636b20697320636f6d706172656420746f2069747320706172656e742e001501205468697320656e74727920697320706f70756c617465642061732070617274206f6620626c6f636b20657865637574696f6e20616e6420697320636c65616e65642075701101206f6e20626c6f636b2066696e616c697a6174696f6e2e205175657279696e6720746869732073746f7261676520656e747279206f757473696465206f6620626c6f636bb020657865637574696f6e20636f6e746578742073686f756c6420616c77617973207969656c64207a65726f2e2c45706f6368436f6e6669670000e10704000861012054686520636f6e66696775726174696f6e20666f72207468652063757272656e742065706f63682e2053686f756c64206e6576657220626520604e6f6e656020617320697420697320696e697469616c697a656420696e242067656e657369732e3c4e65787445706f6368436f6e6669670000e1070400082d012054686520636f6e66696775726174696f6e20666f7220746865206e6578742065706f63682c20604e6f6e65602069662074686520636f6e6669672077696c6c206e6f74206368616e6765e82028796f752063616e2066616c6c6261636b20746f206045706f6368436f6e6669676020696e737465616420696e20746861742063617365292e34536b697070656445706f6368730100e50704002029012041206c697374206f6620746865206c6173742031303020736b69707065642065706f63687320616e642074686520636f72726573706f6e64696e672073657373696f6e20696e64657870207768656e207468652065706f63682077617320736b69707065642e0031012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f663501206d75737420636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e656564206139012077617920746f2074696520746f6765746865722073657373696f6e7320616e642065706f636820696e64696365732c20692e652e207765206e65656420746f2076616c69646174652074686174290120612076616c696461746f722077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e64207768617420746865b0206163746976652065706f636820696e6465782077617320647572696e6720746861742073657373696f6e2e01f50100103445706f63684475726174696f6e302058020000000000000cec2054686520616d6f756e74206f662074696d652c20696e20736c6f74732c207468617420656163682065706f63682073686f756c64206c6173742e1901204e4f54453a2043757272656e746c79206974206973206e6f7420706f737369626c6520746f206368616e6765207468652065706f6368206475726174696f6e20616674657221012074686520636861696e2068617320737461727465642e20417474656d7074696e6720746f20646f20736f2077696c6c20627269636b20626c6f636b2070726f64756374696f6e2e444578706563746564426c6f636b54696d653020701700000000000014050120546865206578706563746564206176657261676520626c6f636b2074696d6520617420776869636820424142452073686f756c64206265206372656174696e67110120626c6f636b732e2053696e636520424142452069732070726f626162696c6973746963206974206973206e6f74207472697669616c20746f20666967757265206f75740501207768617420746865206578706563746564206176657261676520626c6f636b2074696d652073686f756c64206265206261736564206f6e2074686520736c6f740901206475726174696f6e20616e642074686520736563757269747920706172616d657465722060636020287768657265206031202d20636020726570726573656e7473a0207468652070726f626162696c697479206f66206120736c6f74206265696e6720656d707479292e384d6178417574686f7269746965731010a08601000488204d6178206e756d626572206f6620617574686f72697469657320616c6c6f776564344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e01f107012454696d657374616d70012454696d657374616d70080c4e6f7701003020000000000000000004a0205468652063757272656e742074696d6520666f72207468652063757272656e7420626c6f636b2e24446964557064617465010020040010d82057686574686572207468652074696d657374616d7020686173206265656e207570646174656420696e207468697320626c6f636b2e00550120546869732076616c7565206973207570646174656420746f206074727565602075706f6e207375636365737366756c207375626d697373696f6e206f6620612074696d657374616d702062792061206e6f64652e4501204974206973207468656e20636865636b65642061742074686520656e64206f66206561636820626c6f636b20657865637574696f6e20696e2074686520606f6e5f66696e616c697a656020686f6f6b2e0119020004344d696e696d756d506572696f643020b80b000000000000188c20546865206d696e696d756d20706572696f64206265747765656e20626c6f636b732e004d012042652061776172652074686174207468697320697320646966666572656e7420746f20746865202a65787065637465642a20706572696f6420746861742074686520626c6f636b2070726f64756374696f6e4901206170706172617475732070726f76696465732e20596f75722063686f73656e20636f6e73656e7375732073797374656d2077696c6c2067656e6572616c6c7920776f726b2077697468207468697320746f59012064657465726d696e6520612073656e7369626c6520626c6f636b2074696d652e20466f72206578616d706c652c20696e2074686520417572612070657a70616c6c65742069742077696c6c20626520646f75626c6584207468697320706572696f64206f6e2064656661756c742073657474696e67732e00021c496e6469636573011c496e646963657304204163636f756e74730001040210f5070400048820546865206c6f6f6b75702066726f6d20696e64657820746f206163636f756e742e011d020180041c4465706f736974184034a1aec600000000000000000000000004ac20546865206465706f736974206e656564656420666f7220726573657276696e6720616e20696e6465782e01f907032042616c616e636573012042616c616e6365731c34546f74616c49737375616e6365010018400000000000000000000000000000000004982054686520746f74616c20756e6974732069737375656420696e207468652073797374656d2e40496e61637469766549737375616e636501001840000000000000000000000000000000000409012054686520746f74616c20756e697473206f66206f75747374616e64696e672064656163746976617465642062616c616e636520696e207468652073797374656d2e1c4163636f756e74010104020014010100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080601501205468652042616c616e6365732070657a70616c6c6574206578616d706c65206f662073746f72696e67207468652062616c616e6365206f6620616e206163636f756e742e00282023204578616d706c650034206060606e6f636f6d70696c65bc2020696d706c2070657a70616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b25022020202074797065204163636f756e7453746f7265203d2053746f726167654d61705368696d3c53656c663a3a4163636f756e743c52756e74696d653e2c2070657a6672616d655f73797374656d3a3a50726f76696465723c52756e74696d653e2c204163636f756e7449642c2053656c663a3a4163636f756e74446174613c42616c616e63653e3e0c20207d102060606000210120596f752063616e20616c736f2073746f7265207468652062616c616e6365206f6620616e206163636f756e7420696e20746865206053797374656d602070657a70616c6c65742e00282023204578616d706c650034206060606e6f636f6d70696c65bc2020696d706c2070657a70616c6c65745f62616c616e6365733a3a436f6e66696720666f722052756e74696d65207b7420202074797065204163636f756e7453746f7265203d2053797374656d0c20207d1020606060005d0120427574207468697320636f6d657320776974682074726164656f6666732c2073746f72696e67206163636f756e742062616c616e63657320696e207468652073797374656d2070657a70616c6c65742073746f7265736901206070657a6672616d655f73797374656d60206461746120616c6f6e677369646520746865206163636f756e74206461746120636f6e747261727920746f2073746f72696e67206163636f756e742062616c616e63657320696e450120746865206042616c616e636573602070657a70616c6c65742c20776869636820757365732061206053746f726167654d61706020746f2073746f72652062616c616e6365732064617461206f6e6c792e4d01204e4f54453a2054686973206973206f6e6c79207573656420696e207468652063617365207468617420746869732070657a70616c6c6574206973207573656420746f2073746f72652062616c616e6365732e144c6f636b730101040200fd07040010b820416e79206c6971756964697479206c6f636b73206f6e20736f6d65206163636f756e742062616c616e6365732e2501204e4f54453a2053686f756c64206f6e6c79206265206163636573736564207768656e2073657474696e672c206368616e67696e6720616e642066726565696e672061206c6f636b2e00bd0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3230392f6020526573657276657301010402000d0804000ca4204e616d6564207265736572766573206f6e20736f6d65206163636f756e742062616c616e6365732e00c10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3230392f6014486f6c6473010104020019080400046c20486f6c6473206f6e206163636f756e742062616c616e6365732e1c467265657a6573010104020025080400048820467265657a65206c6f636b73206f6e206163636f756e742062616c616e6365732e012902018410484578697374656e7469616c4465706f736974184055a0fc0100000000000000000000000020410120546865206d696e696d756d20616d6f756e7420726571756972656420746f206b65657020616e206163636f756e74206f70656e2e204d5553542042452047524541544552205448414e205a45524f2100590120496620796f75202a7265616c6c792a206e65656420697420746f206265207a65726f2c20796f752063616e20656e61626c652074686520666561747572652060696e7365637572655f7a65726f5f65646020666f724d0120746869732070657a70616c6c65742e20486f77657665722c20796f7520646f20736f20617420796f7572206f776e207269736b3a20746869732077696c6c206f70656e2075702061206d616a6f7220446f534d0120766563746f722e20496e206361736520796f752068617665206d756c7469706c6520736f7572636573206f662070726f7669646572207265666572656e6365732c20796f75206d617920616c736f20676574b820756e6578706563746564206265686176696f757220696620796f7520736574207468697320746f207a65726f2e00f020426f74746f6d206c696e653a20446f20796f757273656c662061206661766f757220616e64206d616b65206974206174206c65617374206f6e6521204d61784c6f636b7310103200000010f420546865206d6178696d756d206e756d626572206f66206c6f636b7320746861742073686f756c64206578697374206f6e20616e206163636f756e742edc204e6f74207374726963746c7920656e666f726365642c20627574207573656420666f722077656967687420657374696d6174696f6e2e00bd0120557365206f66206c6f636b73206973206465707265636174656420696e206661766f7572206f6620667265657a65732e20536565206068747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3230392f602c4d617852657365727665731010320000000c0d0120546865206d6178696d756d206e756d626572206f66206e616d656420726573657276657320746861742063616e206578697374206f6e20616e206163636f756e742e00c10120557365206f66207265736572766573206973206465707265636174656420696e206661766f7572206f6620686f6c64732e20536565206068747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3230392f60284d6178467265657a657310100100000004610120546865206d6178696d756d206e756d626572206f6620696e646976696475616c20667265657a65206c6f636b7320746861742063616e206578697374206f6e20616e206163636f756e7420617420616e792074696d652e0135080428506172616d65746572730128506172616d65746572730428506172616d657465727300010402b0c40400044c2053746f72656420706172616d65746572732e01350201ac000006485472616e73616374696f6e5061796d656e7401485472616e73616374696f6e5061796d656e740c444e6578744665654d756c7469706c6965720100390840000064a7b3b6e00d0000000000000000003853746f7261676556657273696f6e01003d080400003c54785061796d656e744372656469740000410804000cf02054686520604f6e4368617267655472616e73616374696f6e602073746f726573207468652077697468647261776e2074782066656520686572652e00350120557365206077697468647261775f74786665656020616e64206072656d61696e696e675f74786665656020746f206163636573732066726f6d206f757473696465207468652063726174652e0001cc04604f7065726174696f6e616c4665654d756c7469706c696572080405545901204120666565206d756c7469706c69657220666f7220604f7065726174696f6e616c602065787472696e7369637320746f20636f6d7075746520227669727475616c207469702220746f20626f6f73742074686569722c20607072696f726974796000510120546869732076616c7565206973206d756c7469706c69656420627920746865206066696e616c5f6665656020746f206f627461696e206120227669727475616c20746970222074686174206973206c61746572f420616464656420746f20612074697020636f6d706f6e656e7420696e20726567756c617220607072696f72697479602063616c63756c6174696f6e732e4d01204974206d65616e732074686174206120604e6f726d616c60207472616e73616374696f6e2063616e2066726f6e742d72756e20612073696d696c61726c792d73697a656420604f7065726174696f6e616c6041012065787472696e736963202877697468206e6f20746970292c20627920696e636c7564696e672061207469702076616c75652067726561746572207468616e20746865207669727475616c207469702e003c20606060727573742c69676e6f726540202f2f20466f7220604e6f726d616c608c206c6574207072696f72697479203d207072696f726974795f63616c6328746970293b0054202f2f20466f7220604f7065726174696f6e616c601101206c6574207669727475616c5f746970203d2028696e636c7573696f6e5f666565202b2074697029202a204f7065726174696f6e616c4665654d756c7469706c6965723bc4206c6574207072696f72697479203d207072696f726974795f63616c6328746970202b207669727475616c5f746970293b1020606060005101204e6f746520746861742073696e636520776520757365206066696e616c5f6665656020746865206d756c7469706c696572206170706c69657320616c736f20746f2074686520726567756c61722060746970605d012073656e74207769746820746865207472616e73616374696f6e2e20536f2c206e6f74206f6e6c7920646f657320746865207472616e73616374696f6e206765742061207072696f726974792062756d702062617365646101206f6e207468652060696e636c7573696f6e5f666565602c2062757420776520616c736f20616d706c6966792074686520696d70616374206f662074697073206170706c69656420746f20604f7065726174696f6e616c6038207472616e73616374696f6e732e002128417574686f72736869700128417574686f72736869700418417574686f720000000400046420417574686f72206f662063757272656e7420626c6f636b2e0000000005204f6666656e63657301204f6666656e636573081c5265706f72747300010405344908040004490120546865207072696d61727920737472756374757265207468617420686f6c647320616c6c206f6666656e6365207265636f726473206b65796564206279207265706f7274206964656e746966696572732e58436f6e63757272656e745265706f727473496e646578010108050551085d030400042901204120766563746f72206f66207265706f727473206f66207468652073616d65206b696e6420746861742068617070656e6564206174207468652073616d652074696d6520736c6f742e0001d000000728486973746f726963616c0128486973746f726963616c0848486973746f726963616c53657373696f6e73000104051055080400045d01204d617070696e672066726f6d20686973746f726963616c2073657373696f6e20696e646963657320746f2073657373696f6e2d6461746120726f6f74206861736820616e642076616c696461746f7220636f756e742e2c53746f72656452616e676500003d03040004e4205468652072616e6765206f6620686973746f726963616c2073657373696f6e732077652073746f72652e205b66697273742c206c617374290001d80000221c53657373696f6e011c53657373696f6e1c2856616c696461746f727301002d020400047c205468652063757272656e7420736574206f662076616c696461746f72732e3043757272656e74496e646578010010100000000004782043757272656e7420696e646578206f66207468652073657373696f6e2e345175657565644368616e676564010020040008390120547275652069662074686520756e6465726c79696e672065636f6e6f6d6963206964656e746974696573206f7220776569676874696e6720626568696e64207468652076616c696461746f7273a420686173206368616e67656420696e20746865207175657565642076616c696461746f72207365742e285175657565644b657973010059080400083d012054686520717565756564206b65797320666f7220746865206e6578742073657373696f6e2e205768656e20746865206e6578742073657373696f6e20626567696e732c207468657365206b657973e02077696c6c206265207573656420746f2064657465726d696e65207468652076616c696461746f7227732073657373696f6e206b6579732e4844697361626c656456616c696461746f7273010061080400148020496e6469636573206f662064697361626c65642076616c696461746f72732e003d01205468652076656320697320616c77617973206b65707420736f7274656420736f20746861742077652063616e2066696e642077686574686572206120676976656e2076616c696461746f722069733d012064697361626c6564207573696e672062696e617279207365617263682e204974206765747320636c6561726564207768656e20606f6e5f73657373696f6e5f656e64696e67602072657475726e73642061206e657720736574206f66206964656e7469746965732e204e6578744b657973000104050049020400049c20546865206e6578742073657373696f6e206b65797320666f7220612076616c696461746f722e204b65794f776e6572000104056d0800040004090120546865206f776e6572206f662061206b65792e20546865206b65792069732074686520604b657954797065496460202b2074686520656e636f646564206b65792e01450201dc04284b65794465706f73697418400000000000000000000000000000000004a42054686520616d6f756e7420746f2062652068656c64207768656e2073657474696e67206b6579732e017508081c5374616b696e67011c5374616b696e67a83856616c696461746f72436f756e740100101000000000049c2054686520696465616c206e756d626572206f66206163746976652076616c696461746f72732e544d696e696d756d56616c696461746f72436f756e740100101000000000044101204d696e696d756d206e756d626572206f66207374616b696e67207061727469636970616e7473206265666f726520656d657267656e637920636f6e646974696f6e732061726520696d706f7365642e34496e76756c6e657261626c657301002d0204000c590120416e792076616c696461746f72732074686174206d6179206e6576657220626520736c6173686564206f7220666f726369626c79206b69636b65642e20497427732061205665632073696e636520746865792772654d01206561737920746f20696e697469616c697a6520616e642074686520706572666f726d616e636520686974206973206d696e696d616c2028776520657870656374206e6f206d6f7265207468616e20666f7572ac20696e76756c6e657261626c65732920616e64207265737472696374656420746f20746573746e6574732e18426f6e64656400010405000004000c0101204d61702066726f6d20616c6c206c6f636b65642022737461736822206163636f756e747320746f2074686520636f6e74726f6c6c6572206163636f756e742e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e404d696e4e6f6d696e61746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f662061206e6f6d696e61746f722e404d696e56616c696461746f72426f6e64010018400000000000000000000000000000000004210120546865206d696e696d756d2061637469766520626f6e6420746f206265636f6d6520616e64206d61696e7461696e2074686520726f6c65206f6620612076616c696461746f722e484d696e696d756d4163746976655374616b65010018400000000000000000000000000000000004110120546865206d696e696d756d20616374697665206e6f6d696e61746f72207374616b65206f6620746865206c617374207375636365737366756c20656c656374696f6e2e344d696e436f6d6d697373696f6e0100e810000000000ce820546865206d696e696d756d20616d6f756e74206f6620636f6d6d697373696f6e20746861742076616c696461746f72732063616e207365742e00802049662073657420746f206030602c206e6f206c696d6974206578697374732e184c6564676572000104020079080400104501204d61702066726f6d20616c6c2028756e6c6f636b6564292022636f6e74726f6c6c657222206163636f756e747320746f2074686520696e666f20726567617264696e6720746865207374616b696e672e007501204e6f74653a20416c6c2074686520726561647320616e64206d75746174696f6e7320746f20746869732073746f72616765202a4d5553542a20626520646f6e65207468726f75676820746865206d6574686f6473206578706f736564e8206279205b605374616b696e674c6564676572605d20746f20656e73757265206461746120616e64206c6f636b20636f6e73697374656e63792e1450617965650001040500e404000ce42057686572652074686520726577617264207061796d656e742073686f756c64206265206d6164652e204b657965642062792073746173682e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e2856616c696461746f72730101040500f00800000c450120546865206d61702066726f6d202877616e6e616265292076616c696461746f72207374617368206b657920746f2074686520707265666572656e636573206f6620746861742076616c696461746f722e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f7256616c696461746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d617856616c696461746f7273436f756e7400001004000c310120546865206d6178696d756d2076616c696461746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e284e6f6d696e61746f72730001040500810804004c750120546865206d61702066726f6d206e6f6d696e61746f72207374617368206b657920746f207468656972206e6f6d696e6174696f6e20707265666572656e6365732c206e616d656c79207468652076616c696461746f72732074686174582074686579207769736820746f20737570706f72742e003901204e6f7465207468617420746865206b657973206f6620746869732073746f72616765206d6170206d69676874206265636f6d65206e6f6e2d6465636f6461626c6520696e2063617365207468652d01206163636f756e742773205b604e6f6d696e6174696f6e7351756f74613a3a4d61784e6f6d696e6174696f6e73605d20636f6e66696775726174696f6e206973206465637265617365642e9020496e2074686973207261726520636173652c207468657365206e6f6d696e61746f7273650120617265207374696c6c206578697374656e7420696e2073746f726167652c207468656972206b657920697320636f727265637420616e64207265747269657661626c652028692e652e2060636f6e7461696e735f6b657960710120696e6469636174657320746861742074686579206578697374292c206275742074686569722076616c75652063616e6e6f74206265206465636f6465642e205468657265666f72652c20746865206e6f6e2d6465636f6461626c656d01206e6f6d696e61746f72732077696c6c206566666563746976656c79206e6f742d65786973742c20756e74696c20746865792072652d7375626d697420746865697220707265666572656e6365732073756368207468617420697401012069732077697468696e2074686520626f756e6473206f6620746865206e65776c79207365742060436f6e6669673a3a4d61784e6f6d696e6174696f6e73602e006101205468697320696d706c696573207468617420603a3a697465725f6b65797328292e636f756e7428296020616e6420603a3a6974657228292e636f756e74282960206d696768742072657475726e20646966666572656e746d012076616c75657320666f722074686973206d61702e204d6f72656f7665722c20746865206d61696e20603a3a636f756e7428296020697320616c69676e656420776974682074686520666f726d65722c206e616d656c79207468656c206e756d626572206f66206b65797320746861742065786973742e006d01204c6173746c792c20696620616e79206f6620746865206e6f6d696e61746f7273206265636f6d65206e6f6e2d6465636f6461626c652c20746865792063616e206265206368696c6c656420696d6d6564696174656c7920766961b8205b6043616c6c3a3a6368696c6c5f6f74686572605d20646973706174636861626c6520627920616e796f6e652e00d02054574f582d4e4f54453a20534146452073696e636520604163636f756e7449646020697320612073656375726520686173682e50436f756e746572466f724e6f6d696e61746f7273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170385669727475616c5374616b65727300010405001501040018c8205374616b6572732077686f73652066756e647320617265206d616e61676564206279206f746865722070616c6c6574732e006d0120546869732070657a70616c6c657420646f6573206e6f74206170706c7920616e79206c6f636b73206f6e207468656d2c207468657265666f7265207468657920617265206f6e6c79207669727475616c6c7920626f6e6465642e650120546865792061726520657870656374656420746f206265206b65796c657373206163636f756e747320616e642068656e63652073686f756c64206e6f7420626520616c6c6f77656420746f206d75746174652074686569726501206c6564676572206469726563746c792076696120746869732070657a70616c6c65742e20496e73746561642c207468657365206163636f756e747320617265206d616e61676564206279206f746865722070616c6c6574735d0120616e6420616363657373656420766961206c6f77206c6576656c20617069732e205765206b65657020747261636b206f66207468656d20746f20646f206d696e696d616c20696e7465677269747920636865636b732e60436f756e746572466f725669727475616c5374616b657273010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170484d61784e6f6d696e61746f7273436f756e7400001004000c310120546865206d6178696d756d206e6f6d696e61746f7220636f756e74206265666f72652077652073746f7020616c6c6f77696e67206e65772076616c696461746f727320746f206a6f696e2e00d0205768656e20746869732076616c7565206973206e6f74207365742c206e6f206c696d6974732061726520656e666f726365642e2843757272656e744572610000100400105c205468652063757272656e742065726120696e6465782e007101205468697320697320746865206c617465737420706c616e6e6564206572612c20646570656e64696e67206f6e20686f77207468652053657373696f6e2070657a70616c6c657420717565756573207468652076616c696461746f7280207365742c206974206d6967687420626520616374697665206f72206e6f742e2441637469766545726100008908040010d820546865206163746976652065726120696e666f726d6174696f6e2c20697420686f6c647320696e64657820616e642073746172742e0059012054686520616374697665206572612069732074686520657261206265696e672063757272656e746c792072657761726465642e2056616c696461746f7220736574206f66207468697320657261206d757374206265ac20657175616c20746f205b6053657373696f6e496e746572666163653a3a76616c696461746f7273605d2e5445726173537461727453657373696f6e496e6465780001040510100400105501205468652073657373696f6e20696e646578206174207768696368207468652065726120737461727420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e006101204e6f74653a205468697320747261636b7320746865207374617274696e672073657373696f6e2028692e652e2073657373696f6e20696e646578207768656e20657261207374617274206265696e672061637469766529f020666f7220746865206572617320696e20605b43757272656e74457261202d20484953544f52595f44455054482c2043757272656e744572615d602e2c457261735374616b65727301010805058d0891080c0000002078204578706f73757265206f662076616c696461746f72206174206572612e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e4c457261735374616b6572734f7665727669657700010805058d089d08040030b82053756d6d617279206f662076616c696461746f72206578706f73757265206174206120676976656e206572612e007101205468697320636f6e7461696e732074686520746f74616c207374616b6520696e20737570706f7274206f66207468652076616c696461746f7220616e64207468656972206f776e207374616b652e20496e206164646974696f6e2c75012069742063616e20616c736f206265207573656420746f2067657420746865206e756d626572206f66206e6f6d696e61746f7273206261636b696e6720746869732076616c696461746f7220616e6420746865206e756d626572206f666901206578706f73757265207061676573207468657920617265206469766964656420696e746f2e20546865207061676520636f756e742069732075736566756c20746f2064657465726d696e6520746865206e756d626572206f66ac207061676573206f6620726577617264732074686174206e6565647320746f20626520636c61696d65642e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742eac2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206f766572766965772069732072657475726e65642e48457261735374616b657273436c697070656401010805058d0891080c000000409820436c6970706564204578706f73757265206f662076616c696461746f72206174206572612e006501204e6f74653a205468697320697320646570726563617465642c2073686f756c64206265207573656420617320726561642d6f6e6c7920616e642077696c6c2062652072656d6f76656420696e20746865206675747572652e3101204e657720604578706f737572656073206172652073746f72656420696e2061207061676564206d616e6e657220696e2060457261735374616b65727350616765646020696e73746561642e00590120546869732069732073696d696c617220746f205b60457261735374616b657273605d20627574206e756d626572206f66206e6f6d696e61746f7273206578706f736564206973207265647563656420746f20746865a82060543a3a4d61784578706f737572655061676553697a65602062696767657374207374616b6572732e1d0120284e6f74653a20746865206669656c642060746f74616c6020616e6420606f776e60206f6620746865206578706f737572652072656d61696e7320756e6368616e676564292ef42054686973206973207573656420746f206c696d69742074686520692f6f20636f737420666f7220746865206e6f6d696e61746f72207061796f75742e005d012054686973206973206b657965642066697374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4101204966207374616b657273206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e20656d707479206578706f737572652069732072657475726e65642e002901204e6f74653a20446570726563617465642073696e6365207631342e205573652060457261496e666f6020696e737465616420746f20776f726b2077697468206578706f73757265732e40457261735374616b657273506167656400010c050505a108a508040018c020506167696e61746564206578706f73757265206f6620612076616c696461746f7220617420676976656e206572612e0071012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e2c207468656e207374617368206163636f756e7420616e642066696e616c6c79d42074686520706167652e2053686f756c64206f6e6c79206265206163636573736564207468726f7567682060457261496e666f602e00d4205468697320697320636c6561726564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e38436c61696d65645265776172647301010805058d081901040018dc20486973746f7279206f6620636c61696d656420706167656420726577617264732062792065726120616e642076616c696461746f722e0069012054686973206973206b657965642062792065726120616e642076616c696461746f72207374617368207768696368206d61707320746f2074686520736574206f66207061676520696e6465786573207768696368206861766538206265656e20636c61696d65642e00cc2049742069732072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e484572617356616c696461746f72507265667301010805058d08f00800001411012053696d696c617220746f2060457261735374616b657273602c207468697320686f6c64732074686520707265666572656e636573206f662076616c696461746f72732e0061012054686973206973206b65796564206669727374206279207468652065726120696e64657820746f20616c6c6f772062756c6b2064656c6574696f6e20616e64207468656e20746865207374617368206163636f756e742e00cc2049732069742072656d6f766564206166746572205b60436f6e6669673a3a486973746f72794465707468605d20657261732e4c4572617356616c696461746f7252657761726400010405101804000c2d012054686520746f74616c2076616c696461746f7220657261207061796f757420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e0021012045726173207468617420686176656e27742066696e697368656420796574206f7220686173206265656e2072656d6f76656420646f65736e27742068617665207265776172642e4045726173526577617264506f696e74730101040510a90814000000000008d0205265776172647320666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e250120496620726577617264206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207265776172642069732072657475726e65642e3845726173546f74616c5374616b6501010405101840000000000000000000000000000000000811012054686520746f74616c20616d6f756e74207374616b656420666f7220746865206c617374205b60436f6e6669673a3a486973746f72794465707468605d20657261732e1d0120496620746f74616c206861736e2774206265656e20736574206f7220686173206265656e2072656d6f766564207468656e2030207374616b652069732072657475726e65642e20466f7263654572610100f804000454204d6f6465206f662065726120666f7263696e672e404d61785374616b6564526577617264730000690204000c1901204d6178696d756d207374616b656420726577617264732c20692e652e207468652070657263656e74616765206f66207468652065726120696e666c6174696f6e20746861746c206973207573656420666f72207374616b6520726577617264732eac20536565205b457261207061796f75745d282e2f696e6465782e68746d6c236572612d7061796f7574292e4c536c6173685265776172644672616374696f6e0100e810000000000cf8205468652070657263656e74616765206f662074686520736c617368207468617420697320646973747269627574656420746f207265706f72746572732e00e4205468652072657374206f662074686520736c61736865642076616c75652069732068616e646c6564206279207468652060536c617368602e4c43616e63656c6564536c6173685061796f757401001840000000000000000000000000000000000815012054686520616d6f756e74206f662063757272656e637920676976656e20746f207265706f7274657273206f66206120736c617368206576656e7420776869636820776173ec2063616e63656c65642062792065787472616f7264696e6172792063697263756d7374616e6365732028652e672e20676f7665726e616e6365292e40556e6170706c696564536c61736865730101040510b908040004c420416c6c20756e6170706c69656420736c61736865732074686174206172652071756575656420666f72206c617465722e28426f6e646564457261730100750704001025012041206d617070696e672066726f6d207374696c6c2d626f6e646564206572617320746f207468652066697273742073657373696f6e20696e646578206f662074686174206572612e00c8204d75737420636f6e7461696e7320696e666f726d6174696f6e20666f72206572617320666f72207468652072616e67653abc20605b6163746976655f657261202d20626f756e64696e675f6475726174696f6e3b206163746976655f6572615d604c56616c696461746f72536c617368496e45726100010805058d08c908040008450120416c6c20736c617368696e67206576656e7473206f6e2076616c696461746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682070726f706f7274696f6e7020616e6420736c6173682076616c7565206f6620746865206572612e4c4e6f6d696e61746f72536c617368496e45726100010805058d0818040004610120416c6c20736c617368696e67206576656e7473206f6e206e6f6d696e61746f72732c206d61707065642062792065726120746f20746865206869676865737420736c6173682076616c7565206f6620746865206572612e34536c617368696e675370616e730001040500cd080400048c20536c617368696e67207370616e7320666f72207374617368206163636f756e74732e245370616e536c61736801010405b508d108800000000000000000000000000000000000000000000000000000000000000000083d01205265636f72647320696e666f726d6174696f6e2061626f757420746865206d6178696d756d20736c617368206f6620612073746173682077697468696e206120736c617368696e67207370616e2cb82061732077656c6c20617320686f77206d7563682072657761726420686173206265656e2070616964206f75742e5443757272656e74506c616e6e656453657373696f6e010010100000000010f420546865206c61737420706c616e6e65642073657373696f6e207363686564756c6564206279207468652073657373696f6e2070657a70616c6c65742e00ac2054686973206973206261736963616c6c7920696e2073796e632077697468207468652063616c6c20746fd0205b6070657a70616c6c65745f73657373696f6e3a3a53657373696f6e4d616e616765723a3a6e65775f73657373696f6e605d2e384368696c6c5468726573686f6c640000690204000c510120546865207468726573686f6c6420666f72207768656e2075736572732063616e2073746172742063616c6c696e6720606368696c6c5f6f746865726020666f72206f746865722076616c696461746f7273202f5901206e6f6d696e61746f72732e20546865207468726573686f6c6420697320636f6d706172656420746f207468652061637475616c206e756d626572206f662076616c696461746f7273202f206e6f6d696e61746f72732901202860436f756e74466f722a602920696e207468652073797374656d20636f6d706172656420746f2074686520636f6e66696775726564206d61782028604d61782a436f756e7460292e01610201e01c30486973746f72794465707468101054000000508c204e756d626572206f66206572617320746f206b65657020696e20686973746f72792e00e820466f6c6c6f77696e6720696e666f726d6174696f6e206973206b65707420666f72206572617320696e20605b63757272656e745f657261202d090120486973746f727944657074682c2063757272656e745f6572615d603a2060457261735374616b657273602c2060457261735374616b657273436c6970706564602c050120604572617356616c696461746f725072656673602c20604572617356616c696461746f72526577617264602c206045726173526577617264506f696e7473602c4501206045726173546f74616c5374616b65602c206045726173537461727453657373696f6e496e646578602c2060436c61696d656452657761726473602c2060457261735374616b6572735061676564602c5c2060457261735374616b6572734f76657276696577602e00e4204d757374206265206d6f7265207468616e20746865206e756d626572206f6620657261732064656c617965642062792073657373696f6e2ef820492e652e2061637469766520657261206d75737420616c7761797320626520696e20686973746f72792e20492e652e20606163746976655f657261203ec42063757272656e745f657261202d20686973746f72795f646570746860206d7573742062652067756172616e746565642e001d01204966206d6967726174696e6720616e206578697374696e672070657a70616c6c65742066726f6d2073746f726167652076616c756520746f20636f6e6669672076616c75652cec20746869732073686f756c642062652073657420746f2073616d652076616c7565206f72206772656174657220617320696e2073746f726167652e001501204e6f74653a2060486973746f727944657074686020697320757365642061732074686520757070657220626f756e6420666f72207468652060426f756e646564566563602d01206974656d20605374616b696e674c65646765722e6c65676163795f636c61696d65645f72657761726473602e2053657474696e6720746869732076616c7565206c6f776572207468616ed820746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865150120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e2061206d6967726174696f6e2ef020546865207465737420607265647563696e675f686973746f72795f64657074685f616272757074602073686f77732074686973206566666563742e3853657373696f6e735065724572611010060000000470204e756d626572206f662073657373696f6e7320706572206572612e3c426f6e64696e674475726174696f6e10101c00000004e4204e756d626572206f6620657261732074686174207374616b65642066756e6473206d7573742072656d61696e20626f6e64656420666f722e48536c61736844656665724475726174696f6e10101b000000100101204e756d626572206f662065726173207468617420736c6173686573206172652064656665727265642062792c20616674657220636f6d7075746174696f6e2e000d0120546869732073686f756c64206265206c657373207468616e2074686520626f6e64696e67206475726174696f6e2e2053657420746f203020696620736c617368657315012073686f756c64206265206170706c69656420696d6d6564696174656c792c20776974686f7574206f70706f7274756e69747920666f7220696e74657276656e74696f6e2e4c4d61784578706f737572655061676553697a651010400000002cb020546865206d6178696d756d2073697a65206f6620656163682060543a3a4578706f7375726550616765602e00290120416e20604578706f737572655061676560206973207765616b6c7920626f756e64656420746f2061206d6178696d756d206f6620604d61784578706f737572655061676553697a656030206e6f6d696e61746f72732e00210120466f72206f6c646572206e6f6e2d7061676564206578706f737572652c206120726577617264207061796f757420776173207265737472696374656420746f2074686520746f70210120604d61784578706f737572655061676553697a6560206e6f6d696e61746f72732e205468697320697320746f206c696d69742074686520692f6f20636f737420666f722074686548206e6f6d696e61746f72207061796f75742e005901204e6f74653a20604d61784578706f737572655061676553697a6560206973207573656420746f20626f756e642060436c61696d6564526577617264736020616e6420697320756e7361666520746f207265647563659020776974686f75742068616e646c696e6720697420696e2061206d6967726174696f6e2e3c4d617856616c696461746f725365741010e803000004210120546865206162736f6c757465206d6178696d756d206f662077696e6e65722076616c696461746f727320746869732070657a70616c6c65742073686f756c642072657475726e2e484d6178556e6c6f636b696e674368756e6b7310102000000028050120546865206d6178696d756d206e756d626572206f662060756e6c6f636b696e6760206368756e6b732061205b605374616b696e674c6564676572605d2063616e090120686176652e204566666563746976656c792064657465726d696e657320686f77206d616e7920756e6971756520657261732061207374616b6572206d61792062653820756e626f6e64696e6720696e2e00f8204e6f74653a20604d6178556e6c6f636b696e674368756e6b736020697320757365642061732074686520757070657220626f756e6420666f722074686501012060426f756e64656456656360206974656d20605374616b696e674c65646765722e756e6c6f636b696e67602e2053657474696e6720746869732076616c75650501206c6f776572207468616e20746865206578697374696e672076616c75652063616e206c65616420746f20696e636f6e73697374656e6369657320696e20746865090120605374616b696e674c65646765726020616e642077696c6c206e65656420746f2062652068616e646c65642070726f7065726c7920696e20612072756e74696d650501206d6967726174696f6e2e20546865207465737420607265647563696e675f6d61785f756e6c6f636b696e675f6368756e6b735f616272757074602073686f7773342074686973206566666563742e01d508091c4772616e647061011c4772616e6470611c1453746174650100d90804000490205374617465206f66207468652063757272656e7420617574686f72697479207365742e3450656e64696e674368616e67650000dd08040004c42050656e64696e67206368616e67653a20287369676e616c65642061742c207363686564756c6564206368616e6765292e284e657874466f72636564000010040004bc206e65787420626c6f636b206e756d6265722077686572652077652063616e20666f7263652061206368616e67652e1c5374616c6c656400003d030400049020607472756560206966207765206172652063757272656e746c79207374616c6c65642e3043757272656e745365744964010030200000000000000000085d0120546865206e756d626572206f66206368616e6765732028626f746820696e207465726d73206f66206b65797320616e6420756e6465726c79696e672065636f6e6f6d696320726573706f6e736962696c697469657329c420696e20746865202273657422206f66204772616e6470612076616c696461746f72732066726f6d2067656e657369732e30536574496453657373696f6e00010405301004002859012041206d617070696e672066726f6d206772616e6470612073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f20746965450120746f6765746865722073657373696f6e7320616e64204752414e44504120736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00b82054574f582d4e4f54453a2060536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e2c417574686f7269746965730100e10804000484205468652063757272656e74206c697374206f6620617574686f7269746965732e01950201fc0c384d6178417574686f7269746965731010a0860100045c204d617820417574686f72697469657320696e20757365344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01e5080a48417574686f72697479446973636f766572790148417574686f72697479446973636f7665727908104b6579730100e9080400048c204b657973206f66207468652063757272656e7420617574686f72697479207365742e204e6578744b6579730100e90804000480204b657973206f6620746865206e65787420617574686f72697479207365742e000000000c2c46617374556e7374616b65012c46617374556e7374616b651010486561640000f10804000cc0205468652063757272656e74202268656164206f662074686520717565756522206265696e6720756e7374616b65642e00290120546865206865616420696e20697473656c662063616e2062652061206261746368206f6620757020746f205b60436f6e6669673a3a426174636853697a65605d207374616b6572732e14517565756500010405001804000cc020546865206d6170206f6620616c6c206163636f756e74732077697368696e6720746f20626520756e7374616b65642e003901204b6565707320747261636b206f6620604163636f756e744964602077697368696e6720746f20756e7374616b6520616e64206974277320636f72726573706f6e64696e67206465706f7369742e3c436f756e746572466f725175657565010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d61704c45726173546f436865636b506572426c6f636b0100101000000000208c204e756d626572206f66206572617320746f20636865636b2070657220626c6f636b2e0041012049662073657420746f20302c20746869732070657a70616c6c657420646f6573206162736f6c7574656c79206e6f7468696e672e2043616e6e6f742062652073657420746f206d6f7265207468616e90205b60436f6e6669673a3a4d617845726173546f436865636b506572426c6f636b605d2e007101204261736564206f6e2074686520616d6f756e74206f662077656967687420617661696c61626c65206174205b6050657a70616c6c65743a3a6f6e5f69646c65605d2c20757020746f2074686973206d616e792065726173206172655d0120636865636b65642e2054686520636865636b696e6720697320726570726573656e746564206279207570646174696e67205b60556e7374616b65526571756573743a3a636865636b6564605d2c207768696368206973502073746f72656420696e205b6048656164605d2e01c102010d01041c4465706f73697418400010a5d4e80000000000000000000000086501204465706f73697420746f2074616b6520666f7220756e7374616b696e672c20746f206d616b6520737572652077652772652061626c6520746f20736c6173682074686520697420696e206f7264657220746f20636f766572c02074686520636f737473206f66207265736f7572636573206f6e20756e7375636365737366756c20756e7374616b652e01fd080f1c436f756e63696c011c436f756e63696c1c2450726f706f73616c7301000109040004902054686520686173686573206f6620746865206163746976652070726f706f73616c732e2850726f706f73616c4f660001040634e101040004cc2041637475616c2070726f706f73616c20666f72206120676976656e20686173682c20696620697427732063757272656e742e18436f73744f6600010406344d08040010090120436f6e73696465726174696f6e20636f7374206372656174656420666f72207075626c697368696e6720616e642073746f72696e6720612070726f706f73616c2e0071012044657465726d696e6564206279205b436f6e6669673a3a436f6e73696465726174696f6e5d20616e64206d6179206265206e6f742070726573656e7420666f72206365727461696e2070726f706f73616c732028652e672e2069660d01207468652070726f706f73616c20636f756e74206174207468652074696d65206f66206372656174696f6e207761732062656c6f77207468726573686f6c64204e292e18566f74696e6700010406340509040004b420566f746573206f6e206120676976656e2070726f706f73616c2c206966206974206973206f6e676f696e672e3450726f706f73616c436f756e74010010100000000004482050726f706f73616c7320736f206661722e1c4d656d6265727301002d020400043901205468652063757272656e74206d656d62657273206f662074686520636f6c6c6563746976652e20546869732069732073746f72656420736f7274656420286a7573742062792076616c7565292e145072696d65000000040004610120546865207072696d65206d656d62657220746861742068656c70732064657465726d696e65207468652064656661756c7420766f7465206265686176696f7220696e2063617365206f662061627374656e74696f6e732e01c502011d0104444d617850726f706f73616c576569676874283c070010a5d4e813ffffffffffffff7f04250120546865206d6178696d756d20776569676874206f6620612064697370617463682063616c6c20746861742063616e2062652070726f706f73656420616e642065786563757465642e01090911205472656173757279012054726561737572791c3450726f706f73616c436f756e74010010100000000010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e710120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3236373e20666f72206d6967726174696f6e20746f20607370656e64602e00a4204e756d626572206f662070726f706f73616c7320746861742068617665206265656e206d6164652e2450726f706f73616c7300010405100d09040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e710120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3236373e20666f72206d6967726174696f6e20746f20607370656e64602e007c2050726f706f73616c7320746861742068617665206265656e206d6164652e2c4465616374697661746564010018400000000000000000000000000000000004f02054686520616d6f756e7420776869636820686173206265656e207265706f7274656420617320696e61637469766520746f2043757272656e63792e24417070726f76616c7301001109040010410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e710120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3236373e20666f72206d6967726174696f6e20746f20607370656e64602e00f82050726f706f73616c20696e646963657320746861742068617665206265656e20617070726f76656420627574206e6f742079657420617761726465642e285370656e64436f756e74010010100000000004a42054686520636f756e74206f66207370656e647320746861742068617665206265656e206d6164652e185370656e647300010405101509040004d0205370656e647320746861742068617665206265656e20617070726f76656420616e64206265696e672070726f6365737365642e3c4c6173745370656e64506572696f64000010040004d42054686520626c6f636b6e756d62657220666f7220746865206c61737420747269676765726564207370656e6420706572696f642e01c902012101182c5370656e64506572696f64101080510100048820506572696f64206265747765656e2073756363657373697665207370656e64732e104275726e1d0910d00700000411012050657263656e74616765206f662073706172652066756e64732028696620616e7929207468617420617265206275726e7420706572207370656e6420706572696f642e2050616c6c6574496421092070792f74727372790425012054686520747265617375727927732070657a70616c6c65742069642c207573656420666f72206465726976696e672069747320736f7665726569676e206163636f756e742049442e304d6178417070726f76616c7310106400000018410120444550524543415445443a206173736f636961746564207769746820607370656e645f6c6f63616c602063616c6c20616e642077696c6c2062652072656d6f76656420696e204d617920323032352e710120526566657220746f203c68747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3236373e20666f72206d6967726174696f6e20746f20607370656e64602e00150120546865206d6178696d756d206e756d626572206f6620617070726f76616c7320746861742063616e207761697420696e20746865207370656e64696e672071756575652e005901204e4f54453a205468697320706172616d6574657220697320616c736f20757365642077697468696e2074686520426f756e746965732050657a70616c6c657420657874656e73696f6e20696620656e61626c65642e305061796f7574506572696f641010809706000419012054686520706572696f6420647572696e6720776869636820616e20617070726f766564207472656173757279207370656e642068617320746f20626520636c61696d65642e2c706f745f6163636f756e7400806d6f646c70792f7472737279000000000000000000000000000000000000000004ac204765747320746869732070657a70616c6c65742773206465726976656420706f74206163636f756e742e0125091240436f6e76696374696f6e566f74696e670140436f6e76696374696f6e566f74696e670824566f74696e67466f72010108050529092d09d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008750120416c6c20766f74696e6720666f72206120706172746963756c617220766f74657220696e206120706172746963756c617220766f74696e6720636c6173732e2057652073746f7265207468652062616c616e636520666f72207468659c206e756d626572206f6620766f74657320746861742077652068617665207265636f726465642e34436c6173734c6f636b73466f7201010405004d0904000c69012054686520766f74696e6720636c617373657320776869636820686176652061206e6f6e2d7a65726f206c6f636b20726571756972656d656e7420616e6420746865206c6f636b20616d6f756e747320776869636820746865796d0120726571756972652e205468652061637475616c20616d6f756e74206c6f636b6564206f6e20626568616c66206f6620746869732070657a70616c6c65742073686f756c6420616c7761797320626520746865206d6178696d756d38206f662074686973206c6973742e01cd0201c90108204d6178566f74657310100002000010f020546865206d6178696d756d206e756d626572206f6620636f6e63757272656e7420766f74657320616e206163636f756e74206d617920686176652e00550120416c736f207573656420746f20636f6d70757465207765696768742c20616e206f7665726c79206c617267652076616c75652063616e206c65616420746f2065787472696e736963732077697468206c61726765c02077656967687420657374696d6174696f6e3a20736565206064656c65676174656020666f7220696e7374616e63652e44566f74654c6f636b696e67506572696f641010c0890100109020546865206d696e696d756d20706572696f64206f6620766f7465206c6f636b696e672e0065012049742073686f756c64206265206e6f2073686f72746572207468616e20656e6163746d656e7420706572696f6420746f20656e73757265207468617420696e207468652063617365206f6620616e20617070726f76616c2c49012074686f7365207375636365737366756c20766f7465727320617265206c6f636b656420696e746f2074686520636f6e73657175656e636573207468617420746865697220766f74657320656e7461696c2e01590914245265666572656e646101245265666572656e6461143c5265666572656e64756d436f756e74010010100000000004310120546865206e6578742066726565207265666572656e64756d20696e6465782c20616b6120746865206e756d626572206f66207265666572656e6461207374617274656420736f206661722e445265666572656e64756d496e666f466f7200010402105d09040004b420496e666f726d6174696f6e20636f6e6365726e696e6720616e7920676976656e207265666572656e64756d2e28547261636b517565756501010405cd017d090400105d012054686520736f72746564206c697374206f66207265666572656e646120726561647920746f206265206465636964656420627574206e6f7420796574206265696e6720646563696465642c206f7264657265642062797c20636f6e76696374696f6e2d776569676874656420617070726f76616c732e00410120546869732073686f756c6420626520656d70747920696620604465636964696e67436f756e7460206973206c657373207468616e2060547261636b496e666f3a3a6d61785f6465636964696e67602e344465636964696e67436f756e7401010405cd0110100000000004c420546865206e756d626572206f66207265666572656e6461206265696e6720646563696465642063757272656e746c792e284d657461646174614f66000104021034040018050120546865206d6574616461746120697320612067656e6572616c20696e666f726d6174696f6e20636f6e6365726e696e6720746865207265666572656e64756d2e490120546865206048617368602072656665727320746f2074686520707265696d616765206f66207468652060507265696d61676573602070726f76696465722077686963682063616e2062652061204a534f4e882064756d70206f7220495046532068617368206f662061204a534f4e2066696c652e00750120436f6e73696465722061206761726261676520636f6c6c656374696f6e20666f722061206d65746164617461206f662066696e6973686564207265666572656e64756d7320746f2060756e7265717565737460202872656d6f76652944206c6172676520707265696d616765732e01d90201d90114445375626d697373696f6e4465706f7369741840ffe0f50500000000000000000000000004350120546865206d696e696d756d20616d6f756e7420746f20626520757365642061732061206465706f73697420666f722061207075626c6963207265666572656e64756d2070726f706f73616c2e244d617851756575656410106400000004e4204d6178696d756d2073697a65206f6620746865207265666572656e64756d20717565756520666f7220612073696e676c6520747261636b2e44556e6465636964696e6754696d656f757410108013030008550120546865206e756d626572206f6620626c6f636b73206166746572207375626d697373696f6e20746861742061207265666572656e64756d206d75737420626567696e206265696e6720646563696465642062792ee4204f6e63652074686973207061737365732c207468656e20616e796f6e65206d61792063616e63656c20746865207265666572656e64756d2e34416c61726d496e74657276616c1010010000000c5d01205175616e74697a6174696f6e206c6576656c20666f7220746865207265666572656e64756d2077616b657570207363686564756c65722e204120686967686572206e756d6265722077696c6c20726573756c7420696e5d012066657765722073746f726167652072656164732f777269746573206e656564656420666f7220736d616c6c657220766f746572732c2062757420616c736f20726573756c7420696e2064656c61797320746f207468655501206175746f6d61746963207265666572656e64756d20737461747573206368616e6765732e204578706c6963697420736572766963696e6720696e737472756374696f6e732061726520756e61666665637465642e18547261636b7389097d183c000064726f6f740000000000000000000000000000000000000000000100000080f8b9362a2f0100000000000000000050000000c800000078000000320000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d01006477686974656c69737465645f63616c6c6572000000000000006400000040ff7805511e000000000000000000003c000000c8000000280000001e00000002ec972510000000007b573c170000000042392f1200000000020e00840000000000d6e61f010000000039627902000000000a00647374616b696e675f61646d696e0000000000000000000000000a000000a07fbc82280f0000000000000000000050000000c8000000500000001e00000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0b0064747265617375726572000000000000000000000000000000000a00000020b3251a08030000000000000000000050000000c800000050000000320000000290d73e0d000000005743de13000000005443de13000000000000ca9a3b000000000065cd1d0c00646c656173655f61646d696e00000000000000000000000000000a000000a07fbc82280f0000000000000000000050000000c8000000500000001e00000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0d006466656c6c6f77736869705f61646d696e0000000000000000000a000000a07fbc82280f0000000000000000000050000000c8000000500000001e00000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff0e006467656e6572616c5f61646d696e0000000000000000000000000a000000a07fbc82280f0000000000000000000050000000c8000000500000001e0000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff0f006461756374696f6e5f61646d696e0000000000000000000000000a000000a07fbc82280f0000000000000000000050000000c8000000500000001e0000000290d73e0d000000005743de13000000005443de13000000000259a2f40200000000a3296b05000000002e6b4afdffffffff1400647265666572656e64756d5f63616e63656c6c65720000000000e803000040ff7805511e00000000000000000000500000008c000000500000001e00000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1500647265666572656e64756d5f6b696c6c65720000000000000000e803000040fc5c1b95970000000000000000000050000000c8000000500000001e00000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff1e0064736d616c6c5f74697070657200000000000000000000000000c8000000ffe0f5050000000000000000000000000a0000008c000000280000000a00000000499149150065cd1d00ca9a3b02f9ba1800000000002a4d3100000000006b59e7ffffffffff1f00646269675f74697070657200000000000000000000000000000064000000f6c99a3b000000000000000000000000280000008c000000780000001e00000000499149150065cd1d00ca9a3b02694f3f000000000035967d0000000000e534c1ffffffffff200064736d616c6c5f7370656e646572000000000000000000000000320000009ce30b5402000000000000000000000064000000c8000000640000003200000000c94330240065cd1d00ca9a3b025d6f780000000000e82eed00000000008c6889ffffffffff2100646d656469756d5f7370656e64657200000000000000000000003200000038c717a804000000000000000000000064000000c80000007800000032000000005b01f6300065cd1d00ca9a3b021161db0000000000bfd1aa010000000020972affffffffff2200646269675f7370656e646572000000000000000000000000000032000000708e2f5009000000000000000000000064000000c80000008c000000320000000000ca9a3b0065cd1d00ca9a3b02413cb00100000000755d34030000000045d165feffffffff0c482041206c697374206f6620747261636b732e005d01204e6f74653a2069662074686520747261636b73206172652064796e616d69632c207468652076616c756520696e2074686520737461746963206d65746164617461206d6967687420626520696e61636375726174652e01a109151c4f726967696e7300000000002b2457686974656c697374012457686974656c697374043c57686974656c697374656443616c6c0001040534150104000001010301ad060001a5092c18436c61696d730118436c61696d731418436c61696d730001040611031804000014546f74616c0100184000000000000000000000000000000000001c56657374696e670001040611031903040010782056657374696e67207363686564756c6520666f72206120636c61696d2e0d012046697273742062616c616e63652069732074686520746f74616c20616d6f756e7420746861742073686f756c642062652068656c6420666f722076657374696e672ee4205365636f6e642062616c616e636520697320686f77206d7563682073686f756c6420626520756e6c6f636b65642070657220626c6f636b2ecc2054686520626c6f636b206e756d626572206973207768656e207468652076657374696e672073686f756c642073746172742e1c5369676e696e670001040611032103040004c0205468652073746174656d656e74206b696e642074686174206d757374206265207369676e65642c20696620616e792e24507265636c61696d73000104060011030400042d01205072652d636c61696d656420457468657265756d206163636f756e74732c20627920746865204163636f756e74204944207468617420746865792061726520636c61696d656420746f2e01050301bd060418507265666978389894506179205459527320746f207468652050657a6b757769636861696e206163636f756e743a0001a909131c5574696c6974790001250301c106044c626174636865645f63616c6c735f6c696d69741010aa2a000004a820546865206c696d6974206f6e20746865206e756d626572206f6620626174636865642063616c6c732e01ad09181c56657374696e67011c56657374696e67081c56657374696e670001040200b109040004d820496e666f726d6174696f6e20726567617264696e67207468652076657374696e67206f66206120676976656e206163636f756e742e3853746f7261676556657273696f6e0100b90904000c882053746f726167652076657273696f6e206f66207468652070657a70616c6c65742e003101204e6577206e6574776f726b732073746172742077697468206c61746573742076657273696f6e2c2061732064657465726d696e6564206279207468652067656e65736973206275696c642e012d0301c50608444d696e5665737465645472616e73666572184034a1aec600000000000000000000000004e820546865206d696e696d756d20616d6f756e74207472616e7366657272656420746f2063616c6c20607665737465645f7472616e73666572602e4c4d617856657374696e675363686564756c657310101c0000000001bd091c245363686564756c657201245363686564756c6572103c496e636f6d706c65746553696e6365000010040004f420426c6f636b206e756d62657220617420776869636820746865206167656e646120626567616e20696e636f6d706c65746520657865637574696f6e2e184167656e64610101040510c1090400044d01204974656d7320746f2062652065786563757465642c20696e64657865642062792074686520626c6f636b206e756d626572207468617420746865792073686f756c64206265206578656375746564206f6e2e1c52657472696573000104023d03d109040004210120526574727920636f6e66696775726174696f6e7320666f72206974656d7320746f2062652065786563757465642c20696e6465786564206279207461736b20616464726573732e184c6f6f6b757000010405043d03040010f8204c6f6f6b75702066726f6d2061206e616d6520746f2074686520626c6f636b206e756d62657220616e6420696e646578206f6620746865207461736b2e00590120466f72207633202d3e207634207468652070726576696f75736c7920756e626f756e646564206964656e7469746965732061726520426c616b65322d3235362068617368656420746f20666f726d2074686520763430206964656e7469746965732e01350301c90608344d6178696d756d57656967687428400b00806e87740113cccccccccccccccc04290120546865206d6178696d756d207765696768742074686174206d6179206265207363686564756c65642070657220626c6f636b20666f7220616e7920646973706174636861626c65732e504d61785363686564756c6564506572426c6f636b101032000000141d0120546865206d6178696d756d206e756d626572206f66207363686564756c65642063616c6c7320696e2074686520717565756520666f7220612073696e676c6520626c6f636b2e0018204e4f54453a5101202b20446570656e64656e742070616c6c657473272062656e63686d61726b73206d696768742072657175697265206120686967686572206c696d697420666f72207468652073657474696e672e205365742061c420686967686572206c696d697420756e646572206072756e74696d652d62656e63686d61726b736020666561747572652e01d5091d1450726f7879011450726f7879081c50726f786965730101040500d9094400000000000000000000000000000000000845012054686520736574206f66206163636f756e742070726f786965732e204d61707320746865206163636f756e74207768696368206861732064656c65676174656420746f20746865206163636f756e7473210120776869636820617265206265696e672064656c65676174656420746f2c20746f67657468657220776974682074686520616d6f756e742068656c64206f6e206465706f7369742e34416e6e6f756e63656d656e74730101040500e90944000000000000000000000000000000000004ac2054686520616e6e6f756e63656d656e7473206d616465206279207468652070726f787920286b6579292e01410301d106184050726f78794465706f736974426173651840b07d3b870f000000000000000000000010110120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720612070726f78792e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069732501206073697a656f662842616c616e6365296020627974657320616e642077686f7365206b65792073697a65206973206073697a656f66284163636f756e74496429602062797465732e4850726f78794465706f736974466163746f72184034738e0600000000000000000000000014bc2054686520616d6f756e74206f662063757272656e6379206e6565646564207065722070726f78792061646465642e00350120546869732069732068656c6420666f7220616464696e6720333220627974657320706c757320616e20696e7374616e6365206f66206050726f78795479706560206d6f726520696e746f20616101207072652d6578697374696e672073746f726167652076616c75652e20546875732c207768656e20636f6e6669677572696e67206050726f78794465706f736974466163746f7260206f6e652073686f756c642074616b65f420696e746f206163636f756e7420603332202b2070726f78795f747970652e656e636f646528292e6c656e282960206279746573206f6620646174612e284d617850726f7869657310102000000004f020546865206d6178696d756d20616d6f756e74206f662070726f7869657320616c6c6f77656420666f7220612073696e676c65206163636f756e742e284d617850656e64696e6710102000000004450120546865206d6178696d756d20616d6f756e74206f662074696d652d64656c6179656420616e6e6f756e63656d656e747320746861742061726520616c6c6f77656420746f2062652070656e64696e672e5c416e6e6f756e63656d656e744465706f736974426173651840b07d3b870f000000000000000000000010310120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e6720616e20616e6e6f756e63656d656e742e00490120546869732069732068656c64207768656e2061206e65772073746f72616765206974656d20686f6c64696e672061206042616c616e636560206973206372656174656420287479706963616c6c7920313620206279746573292e64416e6e6f756e63656d656e744465706f736974466163746f72184068e61c0d00000000000000000000000010d42054686520616d6f756e74206f662063757272656e6379206e65656465642070657220616e6e6f756e63656d656e74206d6164652e00590120546869732069732068656c6420666f7220616464696e6720616e20604163636f756e744964602c2060486173686020616e642060426c6f636b4e756d6265726020287479706963616c6c79203638206279746573298c20696e746f2061207072652d6578697374696e672073746f726167652076616c75652e01f9091e204d756c746973696701204d756c746973696704244d756c7469736967730001080502fd09010a040004942054686520736574206f66206f70656e206d756c7469736967206f7065726174696f6e732e014d0301d9060c2c4465706f736974426173651840f07520970f000000000000000000000018590120546865206261736520616d6f756e74206f662063757272656e6379206e656564656420746f207265736572766520666f72206372656174696e672061206d756c746973696720657865637574696f6e206f7220746f842073746f726520612064697370617463682063616c6c20666f72206c617465722e00010120546869732069732068656c6420666f7220616e206164646974696f6e616c2073746f72616765206974656d2077686f73652076616c75652073697a652069733101206034202b2073697a656f662828426c6f636b4e756d6265722c2042616c616e63652c204163636f756e74496429296020627974657320616e642077686f7365206b65792073697a652069738020603332202b2073697a656f66284163636f756e74496429602062797465732e344465706f736974466163746f72184080965b060000000000000000000000000c55012054686520616d6f756e74206f662063757272656e6379206e65656465642070657220756e6974207468726573686f6c64207768656e206372656174696e672061206d756c746973696720657865637574696f6e2e00250120546869732069732068656c6420666f7220616464696e67203332206279746573206d6f726520696e746f2061207072652d6578697374696e672073746f726167652076616c75652e384d61785369676e61746f7269657310106400000004ec20546865206d6178696d756d20616d6f756e74206f66207369676e61746f7269657320616c6c6f77656420696e20746865206d756c74697369672e01090a1f20507265696d6167650120507265696d6167650c24537461747573466f7200010406340d0a0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e4052657175657374537461747573466f720001040634150a0400049020546865207265717565737420737461747573206f66206120676976656e20686173682e2c507265696d616765466f72000104065508250a04000001590301dd060001290a204054657972636861696e734f726967696e00000000003234436f6e66696775726174696f6e0134436f6e66696775726174696f6e0c30416374697665436f6e66696701002d0a410300003000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000064000000010000000100000000000000000000000000000002000000020000000200000000010000000100000001000000000100000000000000000000001027000080b2e60e80c3c901809698000000000000000000000000000500000004c8205468652061637469766520636f6e66696775726174696f6e20666f72207468652063757272656e742073657373696f6e2e3850656e64696e67436f6e666967730100310a04001c7c2050656e64696e6720636f6e66696775726174696f6e206368616e6765732e00590120546869732069732061206c697374206f6620636f6e66696775726174696f6e206368616e6765732c2065616368207769746820612073657373696f6e20696e6465782061742077686963682069742073686f756c6430206265206170706c6965642e00610120546865206c69737420697320736f7274656420617363656e64696e672062792073657373696f6e20696e6465782e20416c736f2c2074686973206c6973742063616e206f6e6c7920636f6e7461696e206174206d6f7374fc2032206974656d733a20666f7220746865206e6578742073657373696f6e20616e6420666f722074686520607363686564756c65645f73657373696f6e602e58427970617373436f6e73697374656e6379436865636b01002004000861012049662074686973206973207365742c207468656e2074686520636f6e66696775726174696f6e20736574746572732077696c6c206279706173732074686520636f6e73697374656e637920636865636b732e2054686973b4206973206d65616e7420746f2062652075736564206f6e6c7920617320746865206c617374207265736f72742e016103000001390a332c5061726173536861726564012c5061726173536861726564104c43757272656e7453657373696f6e496e6465780100101000000000046c205468652063757272656e742073657373696f6e20696e6465782e5841637469766556616c696461746f72496e646963657301003d0a040008090120416c6c207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2074657972636861696e20636f6e73656e7375732eb020496e64696365732061726520696e746f207468652062726f616465722076616c696461746f72207365742e4c41637469766556616c696461746f724b6579730100410a0400085501205468652074657972636861696e206174746573746174696f6e206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2074657972636861696e1d0120636f6e73656e7375732e20546869732073686f756c64206265207468652073616d65206c656e677468206173206041637469766556616c696461746f72496e6469636573602e4c416c6c6f77656452656c6179506172656e74730100450a140000000000046c20416c6c20616c6c6f7765642072656c61792d706172656e74732e018503000000343450617261496e636c7573696f6e013450617261496e636c7573696f6e0408563100010405f102710a04001461012043616e646964617465732070656e64696e6720617661696c6162696c6974792062792060506172614964602e205468657920666f726d206120636861696e207374617274696e672066726f6d20746865206c61746573746c20696e636c756465642068656164206f662074686520706172612e610120557365206120646966666572656e742070726566697820706f73742d6d6967726174696f6e20746f2076312c2073696e636520746865207630206050656e64696e67417661696c6162696c697479602073746f72616765710120776f756c64206f74686572776973652068617665207468652065786163742073616d652070726566697820776869636820636f756c6420636175736520756e646566696e6564206265686176696f7572207768656e20646f696e673c20746865206d6967726174696f6e2e01890301e1060001790a353050617261496e686572656e74013050617261496e686572656e740820496e636c7564656400001501040018ec20576865746865722074686520706172617320696e686572656e742077617320696e636c756465642077697468696e207468697320626c6f636b2e0069012054686520604f7074696f6e3c28293e60206973206566666563746976656c7920612060626f6f6c602c20627574206974206e6576657220686974732073746f7261676520696e2074686520604e6f6e65602076617269616e74bc2064756520746f207468652067756172616e74656573206f66204652414d4527732073746f7261676520415049732e004901204966207468697320697320604e6f6e65602061742074686520656e64206f662074686520626c6f636b2c2077652070616e696320616e642072656e6465722074686520626c6f636b20696e76616c69642e304f6e436861696e566f74657300007d0a04000445012053637261706564206f6e20636861696e206461746120666f722065787472616374696e67207265736f6c7665642064697370757465732061732077656c6c206173206261636b696e6720766f7465732e018d03000001910a3634506172615363686564756c65720134506172615363686564756c65720c3c56616c696461746f7247726f7570730100950a04001c6d0120416c6c207468652076616c696461746f722067726f7570732e204f6e6520666f72206561636820636f72652e20496e64696365732061726520696e746f206041637469766556616c696461746f727360202d206e6f742074686569012062726f6164657220736574206f662050657a6b7577692076616c696461746f72732c2062757420696e7374656164206a7573742074686520737562736574207573656420666f722074657972636861696e7320647572696e673820746869732073657373696f6e2e00490120426f756e643a20546865206e756d626572206f6620636f726573206973207468652073756d206f6620746865206e756d62657273206f662074657972636861696e7320616e6420706172617468726561646901206d756c7469706c65786572732e20526561736f6e61626c792c203130302d313030302e2054686520646f6d696e616e7420666163746f7220697320746865206e756d626572206f662076616c696461746f72733a20736166655020757070657220626f756e642061742031306b2e4453657373696f6e5374617274426c6f636b01001010000000001c69012054686520626c6f636b206e756d626572207768657265207468652073657373696f6e207374617274206f636375727265642e205573656420746f20747261636b20686f77206d616e792067726f757020726f746174696f6e733c2068617665206f636375727265642e005501204e6f7465207468617420696e2074686520636f6e74657874206f662074657972636861696e73206d6f64756c6573207468652073657373696f6e206368616e6765206973207369676e616c656420647572696e6761012074686520626c6f636b20616e6420656e61637465642061742074686520656e64206f662074686520626c6f636b20286174207468652066696e616c697a6174696f6e2073746167652c20746f206265206578616374292e5901205468757320666f7220616c6c20696e74656e747320616e6420707572706f7365732074686520656666656374206f66207468652073657373696f6e206368616e6765206973206f6273657276656420617420746865650120626c6f636b20666f6c6c6f77696e67207468652073657373696f6e206368616e67652c20626c6f636b206e756d626572206f66207768696368207765207361766520696e20746869732073746f726167652076616c75652e28436c61696d51756575650100990a0400085901204f6e6520656e74727920666f72206561636820617661696c6162696c69747920636f72652e20546865206056656344657175656020726570726573656e7473207468652061737369676e6d656e747320746f20626560207363686564756c6564206f6e207468617420636f72652e0000000037145061726173011450617261735840507666416374697665566f74654d617000010405c903ad0a040010b420416c6c2063757272656e746c792061637469766520505646207072652d636865636b696e6720766f7465732e002c20496e76617269616e743a7501202d20546865726520617265206e6f20505646207072652d636865636b696e6720766f74657320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e44507666416374697665566f74654c6973740100bd0a040004350120546865206c697374206f6620616c6c2063757272656e746c79206163746976652050564620766f7465732e20417578696c6961727920746f2060507666416374697665566f74654d6170602e2854657972636861696e730100c10a040010690120416c6c206c6561736520686f6c64696e672074657972636861696e732e204f72646572656420617363656e64696e672062792060506172614964602e204f6e2064656d616e642074657972636861696e7320617265206e6f742820696e636c756465642e00e820436f6e7369646572207573696e6720746865205b6054657972636861696e734361636865605d2074797065206f66206d6f64696679696e672e38506172614c6966656379636c657300010405f102c50a040004bc205468652063757272656e74206c6966656379636c65206f66206120616c6c206b6e6f776e2050617261204944732e14486561647300010405f102e903040004a02054686520686561642d64617461206f66206576657279207265676973746572656420706172612e444d6f7374526563656e74436f6e7465787400010405f1021004000429012054686520636f6e74657874202872656c61792d636861696e20626c6f636b206e756d62657229206f6620746865206d6f737420726563656e742074657972636861696e20686561642e3c43757272656e74436f64654861736800010405f102c90304000cb4205468652076616c69646174696f6e20636f64652068617368206f66206576657279206c69766520706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654861736800010405c90ac90304001061012041637475616c207061737420636f646520686173682c20696e646963617465642062792074686520706172612069642061732077656c6c2061732074686520626c6f636b206e756d6265722061742077686963682069744420626563616d65206f757464617465642e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e3050617374436f64654d65746101010405f102cd0a0800000c4901205061737420636f6465206f662074657972636861696e732e205468652074657972636861696e73207468656d73656c766573206d6179206e6f74206265207265676973746572656420616e796d6f72652c49012062757420776520616c736f206b65657020746865697220636f6465206f6e2d636861696e20666f72207468652073616d6520616d6f756e74206f662074696d65206173206f7574646174656420636f6465b020746f206b65657020697420617661696c61626c6520666f7220617070726f76616c20636865636b6572732e3c50617374436f64655072756e696e670100d90a04001869012057686963682070617261732068617665207061737420636f64652074686174206e65656473207072756e696e6720616e64207468652072656c61792d636861696e20626c6f636b2061742077686963682074686520636f6465690120776173207265706c616365642e204e6f746520746861742074686973206973207468652061637475616c20686569676874206f662074686520696e636c7564656420626c6f636b2c206e6f74207468652065787065637465643d01206865696768742061742077686963682074686520636f6465207570677261646520776f756c64206265206170706c6965642c20616c74686f7567682074686579206d617920626520657175616c2e6d01205468697320697320746f20656e737572652074686520656e7469726520616363657074616e636520706572696f6420697320636f76657265642c206e6f7420616e206f666673657420616363657074616e636520706572696f646d01207374617274696e672066726f6d207468652074696d65206174207768696368207468652074657972636861696e20706572636569766573206120636f6465207570677261646520617320686176696e67206f636375727265642e5501204d756c7469706c6520656e747269657320666f7220612073696e676c65207061726120617265207065726d69747465642e204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e48467574757265436f6465557067726164657300010405f102100400103d012054686520626c6f636b206e756d6265722061742077686963682074686520706c616e6e656420636f6465206368616e676520697320657870656374656420666f7220612074657972636861696e2e00650120546865206368616e67652077696c6c206265206170706c696564206166746572207468652066697273742070617261626c6f636b20666f72207468697320494420696e636c75646564207768696368206578656375746573190120696e2074686520636f6e74657874206f6620612072656c617920636861696e20626c6f636b20776974682061206e756d626572203e3d206065787065637465645f6174602e50467574757265436f6465557067726164657341740100d90a040020ac20546865206c697374206f66207570636f6d696e672066757475726520636f64652075706772616465732e006d012045616368206974656d20697320612070616972206f66207468652074657972636861696e20616e642074686520657870656374656420626c6f636b2061742077686963682074686520757067726164652073686f756c642062655101206170706c6965642e2054686520757067726164652077696c6c206265206170706c6965642061742074686520676976656e2072656c617920636861696e20626c6f636b2e20496e20636f6e747261737420746f7501205b60467574757265436f64655570677261646573605d207468697320636f646520757067726164652077696c6c206265206170706c696564207265676172646c657373207468652074657972636861696e206d616b696e6720616e79442070726f6772657373206f72206e6f742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e38467574757265436f64654861736800010405f102c90304000c9c205468652061637475616c2066757475726520636f64652068617368206f66206120706172612e00e420436f72726573706f6e64696e6720636f64652063616e206265207265747269657665642077697468205b60436f6465427948617368605d2e48417574686f72697a6564436f64654861736800010405f102dd0a0400046d012054686520636f6465206861736820617574686f72697a6174696f6e7320666f72206120706172612077686963682077696c6c2065787069726520606578706972655f6174602060426c6f636b4e756d626572466f723c543e602e5055706772616465476f41686561645369676e616c00010405f102e10a040028750120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e696361746520746f20612074657972636861696e206120676f2d6168656164207769746820696e2074686520757067726164652c2070726f6365647572652e00750120546869732076616c756520697320616273656e74207768656e20746865726520617265206e6f207570677261646573207363686564756c6564206f7220647572696e67207468652074696d65207468652072656c617920636861696e550120706572666f726d732074686520636865636b732e20497420697320736574206174207468652066697273742072656c61792d636861696e20626c6f636b207768656e2074686520636f72726573706f6e64696e6775012074657972636861696e2063616e207377697463682069747320757067726164652066756e6374696f6e2e20417320736f6f6e206173207468652074657972636861696e277320626c6f636b20697320696e636c756465642c20746865702076616c7565206765747320726573657420746f20604e6f6e65602e006501204e4f544520746861742074686973206669656c6420697320757365642062792074657972636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662074657972636861696e732e60557067726164655265737472696374696f6e5369676e616c00010405f102e50a040024690120546869732069732075736564206279207468652072656c61792d636861696e20746f20636f6d6d756e6963617465207468617420746865726520617265207265737472696374696f6e7320666f7220706572666f726d696e677c20616e207570677261646520666f7220746869732074657972636861696e2e0059012054686973206d617920626520612062656361757365207468652074657972636861696e20776169747320666f7220746865207570677261646520636f6f6c646f776e20746f206578706972652e20416e6f746865726d0120706f74656e7469616c207573652063617365206973207768656e2077652077616e7420746f20706572666f726d20736f6d65206d61696e74656e616e63652028737563682061732073746f72616765206d6967726174696f6e29e020776520636f756c6420726573747269637420757067726164657320746f206d616b65207468652070726f636573732073696d706c65722e006501204e4f544520746861742074686973206669656c6420697320757365642062792074657972636861696e7320766961206d65726b6c652073746f726167652070726f6f66732c207468657265666f7265206368616e67696e67c42074686520666f726d61742077696c6c2072657175697265206d6967726174696f6e206f662074657972636861696e732e4055706772616465436f6f6c646f776e730100d90a04000c510120546865206c697374206f662074657972636861696e73207468617420617265206177616974696e6720666f722074686569722075706772616465207265737472696374696f6e20746f20636f6f6c646f776e2e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e405570636f6d696e6755706772616465730100d90a0400189020546865206c697374206f66207570636f6d696e6720636f64652075706772616465732e0071012045616368206974656d20697320612070616972206f66207768696368207061726120706572666f726d73206120636f6465207570677261646520616e642061742077686963682072656c61792d636861696e20626c6f636b206974402069732065787065637465642061742e008c204f72646572656420617363656e64696e6720627920626c6f636b206e756d6265722e30416374696f6e7351756575650101040510c10a04000415012054686520616374696f6e7320746f20706572666f726d20647572696e6720746865207374617274206f6620612073706563696669632073657373696f6e20696e6465782e505570636f6d696e67506172617347656e6573697300010405f1025d06040010a0205570636f6d696e6720706172617320696e7374616e74696174696f6e20617267756d656e74732e006501204e4f5445207468617420616674657220505646207072652d636865636b696e6720697320656e61626c65642074686520706172612067656e65736973206172672077696c6c2068617665206974277320636f646520736574610120746f20656d7074792e20496e73746561642c2074686520636f64652077696c6c20626520736176656420696e746f207468652073746f726167652072696768742061776179207669612060436f6465427948617368602e38436f64654279486173685265667301010406c90310100000000004290120546865206e756d626572206f66207265666572656e6365206f6e207468652076616c69646174696f6e20636f646520696e205b60436f6465427948617368605d2073746f726167652e28436f646542794861736800010406c903e503040010902056616c69646174696f6e20636f64652073746f7265642062792069747320686173682e00310120546869732073746f7261676520697320636f6e73697374656e742077697468205b60467574757265436f646548617368605d2c205b6043757272656e74436f646548617368605d20616e6448205b6050617374436f646548617368605d2e01190401f1060440556e7369676e65645072696f726974793020ffffffffffffffff0001e90a382c496e697469616c697a6572012c496e697469616c697a65720838486173496e697469616c697a65640000150104002021012057686574686572207468652074657972636861696e73206d6f64756c65732068617665206265656e20696e697469616c697a65642077697468696e207468697320626c6f636b2e0025012053656d616e746963616c6c7920612060626f6f6c602c2062757420746869732067756172616e746565732069742073686f756c64206e65766572206869742074686520747269652c6901206173207468697320697320636c656172656420696e20606f6e5f66696e616c697a656020616e64204672616d65206f7074696d697a657320604e6f6e65602076616c75657320746f20626520656d7074792076616c7565732e00710120417320612060626f6f6c602c20607365742866616c7365296020616e64206072656d6f766528296020626f7468206c65616420746f20746865206e6578742060676574282960206265696e672066616c73652c20627574206f6e657501206f66207468656d2077726974657320746f20746865207472696520616e64206f6e6520646f6573206e6f742e205468697320636f6e667573696f6e206d616b657320604f7074696f6e3c28293e60206d6f7265207375697461626c659020666f72207468652073656d616e74696373206f662074686973207661726961626c652e58427566666572656453657373696f6e4368616e6765730100ed0a04001c682042756666657265642073657373696f6e206368616e6765732e005d01205479706963616c6c7920746869732077696c6c20626520656d707479206f72206f6e6520656c656d656e74206c6f6e672e2041706172742066726f6d20746861742074686973206974656d206e65766572206869747334207468652073746f726167652e00690120486f776576657220746869732069732061206056656360207265676172646c65737320746f2068616e646c6520766172696f757320656467652063617365732074686174206d6179206f636375722061742072756e74696d65c0207570677261646520626f756e646172696573206f7220696620676f7665726e616e636520696e74657276656e65732e012104000000390c446d70010c446d700c54446f776e776172644d65737361676551756575657301010405f102f50a040004d02054686520646f776e77617264206d657373616765732061646472657373656420666f722061206365727461696e20706172612e64446f776e776172644d6573736167655175657565486561647301010405f102348000000000000000000000000000000000000000000000000000000000000000001c25012041206d617070696e6720746861742073746f7265732074686520646f776e77617264206d657373616765207175657565204d5143206865616420666f72206561636820706172612e00902045616368206c696e6b20696e207468697320636861696e20686173206120666f726d3a78206028707265765f686561642c20422c2048284d2929602c207768657265e8202d2060707265765f68656164603a206973207468652070726576696f757320686561642068617368206f72207a65726f206966206e6f6e652e2101202d206042603a206973207468652072656c61792d636861696e20626c6f636b206e756d62657220696e2077686963682061206d6573736167652077617320617070656e6465642ed4202d206048284d29603a206973207468652068617368206f6620746865206d657373616765206265696e6720617070656e6465642e4444656c6976657279466565466163746f7201010405f102390840000064a7b3b6e00d000000000000000004c42054686520666163746f7220746f206d756c7469706c792074686520626173652064656c6976657279206665652062792e000000003a1048726d70011048726d70305c48726d704f70656e4368616e6e656c5265717565737473000104052904fd0a040018bc2054686520736574206f662070656e64696e672048524d50206f70656e206368616e6e656c2072657175657374732e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e6c48726d704f70656e4368616e6e656c52657175657374734c6973740100010b0400006c48726d704f70656e4368616e6e656c52657175657374436f756e7401010405f1021010000000000c65012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732061726520696e69746961746564206279206120676976656e2073656e64657220706172612e590120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732074686174206861730501206028582c205f296020617320746865206e756d626572206f66206048726d704f70656e4368616e6e656c52657175657374436f756e746020666f72206058602e7c48726d7041636365707465644368616e6e656c52657175657374436f756e7401010405f1021010000000000c71012054686973206d617070696e6720747261636b7320686f77206d616e79206f70656e206368616e6e656c2072657175657374732077657265206163636570746564206279206120676976656e20726563697069656e7420706172612e6d0120496e76617269616e743a206048726d704f70656e4368616e6e656c5265717565737473602073686f756c6420636f6e7461696e207468652073616d65206e756d626572206f66206974656d732060285f2c20582960207769746855012060636f6e6669726d6564602073657420746f20747275652c20617320746865206e756d626572206f66206048726d7041636365707465644368616e6e656c52657175657374436f756e746020666f72206058602e6048726d70436c6f73654368616e6e656c5265717565737473000104052904150104001c7101204120736574206f662070656e64696e672048524d5020636c6f7365206368616e6e656c20726571756573747320746861742061726520676f696e6720746f20626520636c6f73656420647572696e67207468652073657373696f6e2101206368616e67652e205573656420666f7220636865636b696e67206966206120676976656e206368616e6e656c206973207265676973746572656420666f7220636c6f737572652e00c02054686520736574206973206163636f6d70616e6965642062792061206c69737420666f7220697465726174696f6e2e002c20496e76617269616e743a3d01202d20546865726520617265206e6f206368616e6e656c7320746861742065786973747320696e206c69737420627574206e6f7420696e207468652073657420616e6420766963652076657273612e7048726d70436c6f73654368616e6e656c52657175657374734c6973740100010b0400003848726d7057617465726d61726b7300010405f10210040010b8205468652048524d502077617465726d61726b206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a5501202d2065616368207061726120605060207573656420686572652061732061206b65792073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612c20202073657373696f6e2e3048726d704368616e6e656c73000104052904050b04000cb42048524d50206368616e6e656c2064617461206173736f6369617465642077697468206561636820706172612e2c20496e76617269616e743a7501202d2065616368207061727469636970616e7420696e20746865206368616e6e656c2073686f756c642073617469736679206050617261733a3a69735f76616c69645f70617261285029602077697468696e20612073657373696f6e2e6048726d70496e67726573734368616e6e656c73496e64657801010405f102c10a040034710120496e67726573732f65677265737320696e646578657320616c6c6f7720746f2066696e6420616c6c207468652073656e6465727320616e642072656365697665727320676976656e20746865206f70706f7369746520736964652e1420492e652e0021012028612920696e677265737320696e64657820616c6c6f777320746f2066696e6420616c6c207468652073656e6465727320666f72206120676976656e20726563697069656e742e1d01202862292065677265737320696e64657820616c6c6f777320746f2066696e6420616c6c2074686520726563697069656e747320666f72206120676976656e2073656e6465722e003020496e76617269616e74733a5101202d20666f72206561636820696e677265737320696e64657820656e74727920666f72206050602065616368206974656d2060496020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028492c205029602e4d01202d20666f7220656163682065677265737320696e64657820656e74727920666f72206050602065616368206974656d2060456020696e2074686520696e6465782073686f756c642070726573656e7420696e782020206048726d704368616e6e656c7360206173206028502c204529602e0101202d2074686572652073686f756c64206265206e6f206f746865722064616e676c696e67206368616e6e656c7320696e206048726d704368616e6e656c73602e68202d2074686520766563746f72732061726520736f727465642e5c48726d704567726573734368616e6e656c73496e64657801010405f102c10a0400004c48726d704368616e6e656c436f6e74656e7473010104052904090b040008ac2053746f7261676520666f7220746865206d6573736167657320666f722065616368206368616e6e656c2e650120496e76617269616e743a2063616e6e6f74206265206e6f6e2d656d7074792069662074686520636f72726573706f6e64696e67206368616e6e656c20696e206048726d704368616e6e656c736020697320604e6f6e65602e4848726d704368616e6e656c4469676573747301010405f102110b0400186901204d61696e7461696e732061206d617070696e6720746861742063616e206265207573656420746f20616e7377657220746865207175657374696f6e3a20576861742070617261732073656e742061206d657373616765206174e42074686520676976656e20626c6f636b206e756d62657220666f72206120676976656e2072656365697665722e20496e76617269616e74733aa8202d2054686520696e6e657220605665633c5061726149643e60206973206e6576657220656d7074792ee8202d2054686520696e6e657220605665633c5061726149643e602063616e6e6f742073746f72652074776f2073616d652060506172614964602e6d01202d20546865206f7574657220766563746f7220697320736f7274656420617363656e64696e6720627920626c6f636b206e756d62657220616e642063616e6e6f742073746f72652074776f206974656d732077697468207468655420202073616d6520626c6f636b206e756d6265722e01250401f5060001190b3c3c5061726153657373696f6e496e666f013c5061726153657373696f6e496e666f145041737369676e6d656e744b657973556e7361666501001d0b04000ca42041737369676e6d656e74206b65797320666f72207468652063757272656e742073657373696f6e2e6d01204e6f7465207468617420746869732041504920697320707269766174652064756520746f206974206265696e672070726f6e6520746f20276f66662d62792d6f6e65272061742073657373696f6e20626f756e6461726965732eac205768656e20696e20646f7562742c20757365206053657373696f6e73602041504920696e73746561642e544561726c6965737453746f72656453657373696f6e010010100000000004010120546865206561726c696573742073657373696f6e20666f722077686963682070726576696f75732073657373696f6e20696e666f2069732073746f7265642e2053657373696f6e730001040610210b04000ca42053657373696f6e20696e666f726d6174696f6e20696e206120726f6c6c696e672077696e646f772e35012053686f756c64206861766520616e20656e74727920696e2072616e676520604561726c6965737453746f72656453657373696f6e2e2e3d43757272656e7453657373696f6e496e646578602e750120446f6573206e6f74206861766520616e7920656e7472696573206265666f7265207468652073657373696f6e20696e64657820696e207468652066697273742073657373696f6e206368616e6765206e6f74696669636174696f6e2e2c4163636f756e744b65797300010406102d020400047101205468652076616c696461746f72206163636f756e74206b657973206f66207468652076616c696461746f7273206163746976656c792070617274696369706174696e6720696e2074657972636861696e20636f6e73656e7375732e5453657373696f6e4578656375746f72506172616d7300010406106903040004c4204578656375746f7220706172616d657465722073657420666f72206120676976656e2073657373696f6e20696e646578000000003d345061726173446973707574657301345061726173446973707574657314444c6173745072756e656453657373696f6e000010040008010120546865206c617374207072756e65642073657373696f6e2c20696620616e792e20416c6c20646174612073746f7265642062792074686973206d6f64756c6554207265666572656e6365732073657373696f6e732e20446973707574657300010805022d0b310b040004050120416c6c206f6e676f696e67206f7220636f6e636c7564656420646973707574657320666f7220746865206c617374207365766572616c2073657373696f6e732e444261636b6572734f6e446973707574657300010805022d0b350b0400089c204261636b696e6720766f7465732073746f72656420666f72206561636820646973707574652e8c20546869732073746f72616765206973207573656420666f7220736c617368696e672e20496e636c7564656400010805022d0b10040008450120416c6c20696e636c7564656420626c6f636b73206f6e2074686520636861696e2c2061732077656c6c2061732074686520626c6f636b206e756d62657220696e207468697320636861696e207468617459012073686f756c64206265207265766572746564206261636b20746f206966207468652063616e64696461746520697320646973707574656420616e642064657465726d696e656420746f20626520696e76616c69642e1846726f7a656e0100ec040010110120576865746865722074686520636861696e2069732066726f7a656e2e2053746172747320617320604e6f6e65602e205768656e20746869732069732060536f6d65602c35012074686520636861696e2077696c6c206e6f742061636365707420616e79206e65772074657972636861696e20626c6f636b7320666f72206261636b696e67206f7220696e636c7573696f6e2c090120616e64206974732076616c756520696e6469636174657320746865206c6173742076616c696420626c6f636b206e756d62657220696e2074686520636861696e2ef82049742063616e206f6e6c7920626520736574206261636b20746f20604e6f6e656020627920676f7665726e616e636520696e74657276656e74696f6e2e012d0401f9060001390b3e345061726173536c617368696e6701345061726173536c617368696e670840556e6170706c696564536c617368657300010805022d0b3d0b040004902056616c696461746f72732070656e64696e67206469737075746520736c61736865732e4856616c696461746f72536574436f756e747300010405101004000484206056616c696461746f72536574436f756e7460207065722073657373696f6e2e0131040000014d0b3f304d657373616765517565756501304d65737361676551756575650c30426f6f6b5374617465466f72010104054504510b74000000000000000000000000000000000000000000000000000000000004cc2054686520696e646578206f662074686520666972737420616e64206c61737420286e6f6e2d656d707479292070616765732e2c536572766963654865616400004504040004bc20546865206f726967696e2061742077686963682077652073686f756c6420626567696e20736572766963696e672e14506167657300010805055d0b610b0400048820546865206d6170206f66207061676520696e646963657320746f2070616765732e01410401050710204865617053697a65101000800000143d01205468652073697a65206f662074686520706167653b207468697320696d706c69657320746865206d6178696d756d206d6573736167652073697a652077686963682063616e2062652073656e742e005901204120676f6f642076616c756520646570656e6473206f6e20746865206578706563746564206d6573736167652073697a65732c20746865697220776569676874732c207468652077656967687420746861742069735d0120617661696c61626c6520666f722070726f63657373696e67207468656d20616e6420746865206d6178696d616c206e6565646564206d6573736167652073697a652e20546865206d6178696d616c206d65737361676511012073697a6520697320736c696768746c79206c6f776572207468616e207468697320617320646566696e6564206279205b604d61784d6573736167654c656e4f66605d2e204d61785374616c651010600000000c5d0120546865206d6178696d756d206e756d626572206f66207374616c652070616765732028692e652e206f66206f766572776569676874206d657373616765732920616c6c6f776564206265666f72652063756c6c696e6751012063616e2068617070656e2e204f6e636520746865726520617265206d6f7265207374616c65207061676573207468616e20746869732c207468656e20686973746f726963616c207061676573206d6179206265fc2064726f707065642c206576656e206966207468657920636f6e7461696e20756e70726f636573736564206f766572776569676874206d657373616765732e3453657276696365576569676874b10540010700a0db215d1333333333333333331841012054686520616d6f756e74206f66207765696768742028696620616e79292077686963682073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f72a820736572766963696e6720656e717565756564206974656d7320606f6e5f696e697469616c697a65602e00fc2054686973206d6179206265206c65676974696d6174656c7920604e6f6e656020696e207468652063617365207468617420796f752077696c6c2063616c6c5d012060536572766963655175657565733a3a736572766963655f71756575657360206d616e75616c6c79206f7220736574205b6053656c663a3a49646c654d617853657276696365576569676874605d20746f2068617665542069742072756e20696e20606f6e5f69646c65602e5049646c654d617853657276696365576569676874b10540010700a0db215d133333333333333333145d0120546865206d6178696d756d20616d6f756e74206f66207765696768742028696620616e792920746f20626520757365642066726f6d2072656d61696e696e672077656967687420606f6e5f69646c656020776869636841012073686f756c642062652070726f766964656420746f20746865206d65737361676520717565756520666f7220736572766963696e6720656e717565756564206974656d7320606f6e5f69646c65602e3d012055736566756c20666f722074657972636861696e7320746f2070726f63657373206d65737361676573206174207468652073616d6520626c6f636b2074686579206172652072656365697665642e00290120496620604e6f6e65602c2069742077696c6c206e6f742063616c6c2060536572766963655175657565733a3a736572766963655f7175657565736020696e20606f6e5f69646c65602e01690b40684f6e44656d616e6441737369676e6d656e7450726f766964657201684f6e44656d616e6441737369676e6d656e7450726f76696465721838506172614964416666696e69747900010405f1026d0b04000c7101204d617073206120605061726149646020746f2060436f7265496e6465786020616e64206b6565707320747261636b206f6620686f77206d616e792061737369676e6d656e747320746865207363686564756c65722068617320696e5d012069742773206c6f6f6b61686561642e204b656570696e6720747261636b206f66207468697320616666696e6974792070726576656e747320706172616c6c656c20657865637574696f6e206f66207468652073616d659c206050617261496460206f6e2074776f206f72206d6f72652060436f7265496e6465786065732e2c51756575655374617475730100710b64000064a7b3b6e00d000000000000000000000000000000000004dc204f766572616c6c20737461747573206f662071756575652028626f74682066726565202b20616666696e69747920656e7472696573292c46726565456e74726965730100850b0400046101205072696f7269747920717565756520666f7220616c6c206f726465727320776869636820646f6e27742079657420286f72206e6f7420616e79206d6f726529206861766520616e7920636f726520616666696e6974792e3c416666696e697479456e747269657301010405e906850b040004490120517565756520656e74726965732074686174206172652063757272656e746c7920626f756e6420746f206120706172746963756c617220636f72652064756520746f20636f726520616666696e6974792e1c526576656e75650100910b040004fc204b6565707320747261636b206f6620616363756d756c6174656420726576656e75652066726f6d206f6e2064656d616e64206f726465722073616c65732e1c43726564697473010104020018400000000000000000000000000000000004b8204b6565707320747261636b206f662063726564697473206f776e65642062792065616368206163636f756e742e014d04010d070c4c5472616666696344656661756c7456616c7565390840000064a7b3b6e00d000000000000000004cc205468652064656661756c742076616c756520666f72207468652073706f742074726166666963206d756c7469706c6965722e504d6178486973746f726963616c526576656e75651010a000000008d420546865206d6178696d756d206e756d626572206f6620626c6f636b7320736f6d6520686973746f726963616c20726576656e75656020696e666f726d6174696f6e2073746f72656420666f722e2050616c6c6574496421092070792f6f6e646d6404b4204964656e74696669657220666f722074686520696e7465726e616c20726576656e75652062616c616e63652e01990b4268436f726574696d6541737369676e6d656e7450726f76696465720168436f726574696d6541737369676e6d656e7450726f76696465720834436f72655363686564756c6573000104049d0ba10b0400106c205363686564756c65642061737369676e6d656e7420736574732e006d012041737369676e6d656e7473206173206f662074686520676976656e20626c6f636b206e756d6265722e20546865792077696c6c20676f20696e746f207374617465206f6e63652074686520626c6f636b206e756d626572206973d020726561636865642028616e64207265706c6163652077686174657665722077617320696e207468657265206265666f7265292e3c436f726544657363726970746f727301010404e906a50b08000010a02041737369676e6d656e7473207768696368206172652063757272656e746c79206163746976652e00690120546865792077696c6c206265207069636b65642066726f6d206050656e64696e6741737369676e6d656e747360206f6e636520776520726561636820746865207363686564756c656420626c6f636b206e756d62657220696e58206050656e64696e6741737369676e6d656e7473602e00000001c50b442452656769737472617201245265676973747261720c2c50656e64696e675377617000010405f102f102040004642050656e64696e672073776170206f7065726174696f6e732e14506172617300010405f102c90b040010050120416d6f756e742068656c64206f6e206465706f73697420666f722065616368207061726120616e6420746865206f726967696e616c206465706f7369746f722e0071012054686520676976656e206163636f756e7420494420697320726573706f6e7369626c6520666f72207265676973746572696e672074686520636f646520616e6420696e697469616c206865616420646174612c20627574206d61795501206f6e6c7920646f20736f2069662069742069736e27742079657420726567697374657265642e2028416674657220746861742c206974277320757020746f20676f7665726e616e636520746f20646f20736f2e29384e657874467265655061726149640100f1021000000000046020546865206e65787420667265652060506172614964602e015104011107082c506172614465706f73697418400080ca3961240000000000000000000008d420546865206465706f73697420746f206265207061696420746f2072756e2061206f6e2d64656d616e642074657972636861696e2e3d0120546869732073686f756c6420696e636c7564652074686520636f737420666f722073746f72696e67207468652067656e65736973206865616420616e642076616c69646174696f6e20636f64652e48446174614465706f73697450657242797465184055a0fc0100000000000000000000000004c420546865206465706f73697420746f20626520706169642070657220627974652073746f726564206f6e20636861696e2e01d10b4614536c6f74730114536c6f747304184c656173657301010405f102d50b040040150120416d6f756e74732068656c64206f6e206465706f73697420666f7220656163682028706f737369626c792066757475726529206c65617365642074657972636861696e2e006101205468652061637475616c20616d6f756e74206c6f636b6564206f6e2069747320626568616c6620627920616e79206163636f756e7420617420616e792074696d6520697320746865206d6178696d756d206f66207468652901207365636f6e642076616c756573206f6620746865206974656d7320696e2074686973206c6973742077686f73652066697273742076616c756520697320746865206163636f756e742e00610120546865206669727374206974656d20696e20746865206c6973742069732074686520616d6f756e74206c6f636b656420666f72207468652063757272656e74204c6561736520506572696f642e20466f6c6c6f77696e67b0206974656d732061726520666f72207468652073756273657175656e74206c6561736520706572696f64732e006101205468652064656661756c742076616c75652028616e20656d707479206c6973742920696d706c6965732074686174207468652074657972636861696e206e6f206c6f6e6765722065786973747320286f72206e65766572c02065786973746564292061732066617220617320746869732070657a70616c6c657420697320636f6e6365726e65642e00510120496620612074657972636861696e20646f65736e2774206578697374202a7965742a20627574206973207363686564756c656420746f20657869737420696e20746865206675747572652c207468656e20697461012077696c6c206265206c6566742d7061646465642077697468206f6e65206f72206d6f726520604e6f6e65607320746f2064656e6f74652074686520666163742074686174206e6f7468696e672069732068656c64206f6e5d01206465706f73697420666f7220746865206e6f6e2d6578697374656e7420636861696e2063757272656e746c792c206275742069732068656c6420617420736f6d6520706f696e7420696e20746865206675747572652e00dc20497420697320696c6c6567616c20666f72206120604e6f6e65602076616c756520746f20747261696c20696e20746865206c6973742e015504011507082c4c65617365506572696f6410104038000004dc20546865206e756d626572206f6620626c6f636b73206f76657220776869636820612073696e676c6520706572696f64206c617374732e2c4c656173654f666673657410100000000004d420546865206e756d626572206f6620626c6f636b7320746f206f66667365742065616368206c6561736520706572696f642062792e01d90b472041756374696f6e73012041756374696f6e73103841756374696f6e436f756e7465720100101000000000048c204e756d626572206f662061756374696f6e73207374617274656420736f206661722e2c41756374696f6e496e666f00003d03040014f820496e666f726d6174696f6e2072656c6174696e6720746f207468652063757272656e742061756374696f6e2c206966207468657265206973206f6e652e00450120546865206669727374206974656d20696e20746865207475706c6520697320746865206c6561736520706572696f6420696e646578207468617420746865206669727374206f662074686520666f7572510120636f6e746967756f7573206c6561736520706572696f6473206f6e2061756374696f6e20697320666f722e20546865207365636f6e642069732074686520626c6f636b206e756d626572207768656e207468655d012061756374696f6e2077696c6c2022626567696e20746f20656e64222c20692e652e2074686520666972737420626c6f636b206f662074686520456e64696e6720506572696f64206f66207468652061756374696f6e2e3c5265736572766564416d6f756e747300010405dd0b18040008310120416d6f756e74732063757272656e746c7920726573657276656420696e20746865206163636f756e7473206f662074686520626964646572732063757272656e746c792077696e6e696e673820287375622d2972616e6765732e1c57696e6e696e670001040510e10b04000c6101205468652077696e6e696e67206269647320666f722065616368206f66207468652031302072616e67657320617420656163682073616d706c6520696e207468652066696e616c20456e64696e6720506572696f64206f664901207468652063757272656e742061756374696f6e2e20546865206d61702773206b65792069732074686520302d626173656420696e64657820696e746f207468652053616d706c652053697a652e205468651d012066697273742073616d706c65206f662074686520656e64696e6720706572696f6420697320303b20746865206c617374206973206053616d706c652053697a65202d2031602e0159040119071030456e64696e67506572696f64101040190100041d0120546865206e756d626572206f6620626c6f636b73206f76657220776869636820616e2061756374696f6e206d617920626520726574726f6163746976656c7920656e6465642e3053616d706c654c656e6774681010140000000cf020546865206c656e677468206f6620656163682073616d706c6520746f2074616b6520647572696e672074686520656e64696e6720706572696f642e00d42060456e64696e67506572696f6460202f206053616d706c654c656e67746860203d20546f74616c2023206f662053616d706c657338536c6f7452616e6765436f756e74101024000000004c4c65617365506572696f6473506572536c6f741010080000000001ed0b482443726f77646c6f616e012443726f77646c6f616e101446756e647300010405f102f10b0400046820496e666f206f6e20616c6c206f66207468652066756e64732e204e657752616973650100c10a0400085501205468652066756e64732074686174206861766520686164206164646974696f6e616c20636f6e747269627574696f6e7320647572696e6720746865206c61737420626c6f636b2e20546869732069732075736564150120696e206f7264657220746f2064657465726d696e652077686963682066756e64732073686f756c64207375626d6974206e6577206f72207570646174656420626964732e30456e64696e6773436f756e74010010100000000004290120546865206e756d626572206f662061756374696f6e732074686174206861766520656e746572656420696e746f20746865697220656e64696e6720706572696f6420736f206661722e344e65787446756e64496e646578010010100000000004a820547261636b657220666f7220746865206e65787420617661696c61626c652066756e6420696e646578016104011d070c2050616c6c6574496421092070792f6366756e64081901206050616c6c657449646020666f72207468652063726f77646c6f616e2070657a70616c6c65742e20416e20617070726f7072696174652076616c756520636f756c6420626564206050616c6c65744964282a622270792f6366756e642229603c4d696e436f6e747269627574696f6e184018e4764817000000000000000000000008610120546865206d696e696d756d20616d6f756e742074686174206d617920626520636f6e747269627574656420696e746f20612063726f77646c6f616e2e2053686f756c6420616c6d6f7374206365727461696e6c792062657c206174206c6561737420604578697374656e7469616c4465706f736974602e3c52656d6f76654b6579734c696d69741010e803000004e4204d6178206e756d626572206f662073746f72616765206b65797320746f2072656d6f7665207065722065787472696e7369632063616c6c2e01f90b4920436f726574696d6500017504012107082042726f6b657249641010ed03000004882054686520506172614964206f662074686520636f726574696d6520636861696e2e4442726f6b6572506f744c6f636174696f6e91018c0101006d6f646c70792f62726f6b65000000000000000000000000000000000000000004842054686520636f726574696d6520636861696e20706f74206c6f636174696f6e2e01fd0b4a504d756c7469426c6f636b4d6967726174696f6e7301504d756c7469426c6f636b4d6967726174696f6e730818437572736f720000910404000cd8205468652063757272656e746c7920616374697665206d6967726174696f6e20746f2072756e20616e642069747320637572736f722e00bc20604e6f6e656020696e646963617465732074686174206e6f206d6967726174696f6e2069732072756e6e696e672e20486973746f72696300010405a5041501040010b420536574206f6620616c6c207375636365737366756c6c79206578656375746564206d6967726174696f6e732e0071012054686973206973207573656420617320626c61636b6c6973742c20746f206e6f742072652d65786563757465206d6967726174696f6e7320746861742068617665206e6f74206265656e2072656d6f7665642066726f6d20746865310120636f646562617365207965742e20476f7665726e616e63652063616e20726567756c61726c7920636c6561722074686973206f7574207669612060636c6561725f686973746f726963602e0189040125070830437572736f724d61784c656e10100000010010a420546865206d6178696d616c206c656e677468206f6620616e20656e636f64656420637572736f722e006501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c20657665722068617665206120637572736f722077697468204d454c09012061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e404964656e7469666965724d61784c656e10100001000010b420546865206d6178696d616c206c656e677468206f6620616e20656e636f646564206964656e7469666965722e005501204120676f6f642064656661756c74206e6565647320746f2073656c656374656420737563682074686174206e6f206d6967726174696f6e2077696c6c2065766572206861766520616e206964656e7469666965722d012077697468204d454c2061626f76652074686973206c696d69742e205468697320697320737461746963616c6c7920636865636b656420696e2060696e746567726974795f74657374602e01010c622458636d50616c6c6574012458636d50616c6c65743c305175657279436f756e746572010030200000000000000000048820546865206c617465737420617661696c61626c6520717565727920696e6465782e1c517565726965730001040230050c0400045420546865206f6e676f696e6720717565726965732e28417373657454726170730101040634101000000000106820546865206578697374696e672061737365742074726170732e006101204b65792069732074686520626c616b6532203235362068617368206f6620286f726967696e2c2076657273696f6e65642060417373657473602920706169722e2056616c756520697320746865206e756d626572206f661d012074696d65732074686973207061697220686173206265656e20747261707065642028757375616c6c79206a75737420312069662069742065786973747320617420616c6c292e385361666558636d56657273696f6e00001004000861012044656661756c742076657273696f6e20746f20656e636f64652058434d207768656e206c61746573742076657273696f6e206f662064657374696e6174696f6e20697320756e6b6e6f776e2e20496620604e6f6e65602c3d01207468656e207468652064657374696e6174696f6e732077686f73652058434d2076657273696f6e20697320756e6b6e6f776e2061726520636f6e7369646572656420756e726561636861626c652e40537570706f7274656456657273696f6e0001080502190c10040004f020546865204c61746573742076657273696f6e732074686174207765206b6e6f7720766172696f7573206c6f636174696f6e7320737570706f72742e4056657273696f6e4e6f746966696572730001080502190c30040004050120416c6c206c6f636174696f6e7320746861742077652068617665207265717565737465642076657273696f6e206e6f74696669636174696f6e732066726f6d2e5056657273696f6e4e6f74696679546172676574730001080502190c1d0c04000871012054686520746172676574206c6f636174696f6e73207468617420617265207375627363726962656420746f206f75722076657273696f6e206368616e6765732c2061732077656c6c20617320746865206d6f737420726563656e7494206f66206f75722076657273696f6e7320776520696e666f726d6564207468656d206f662e5456657273696f6e446973636f7665727951756575650100210c04000c65012044657374696e6174696f6e732077686f7365206c61746573742058434d2076657273696f6e20776520776f756c64206c696b6520746f206b6e6f772e204475706c696361746573206e6f7420616c6c6f7765642c20616e6471012074686520607533326020636f756e74657220697320746865206e756d626572206f662074696d6573207468617420612073656e6420746f207468652064657374696e6174696f6e20686173206265656e20617474656d707465642c8c20776869636820697320757365642061732061207072696f726974697a6174696f6e2e4043757272656e744d6967726174696f6e00002d0c0400049c205468652063757272656e74206d6967726174696f6e27732073746167652c20696620616e792e5452656d6f74654c6f636b656446756e6769626c657300010c050202310c350c040004f02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e20612072656d6f746520636861696e2e3c4c6f636b656446756e6769626c65730001040200450c040004e02046756e6769626c6520617373657473207768696368207765206b6e6f7720617265206c6f636b6564206f6e207468697320636861696e2e5458636d457865637574696f6e53757370656e646564010020040004b420476c6f62616c2073757370656e73696f6e207374617465206f66207468652058434d206578656375746f722e3c53686f756c645265636f726458636d01002004001c59012057686574686572206f72206e6f7420696e636f6d696e672058434d732028626f7468206578656375746564206c6f63616c6c7920616e64207265636569766564292073686f756c64206265207265636f726465642ec4204f6e6c79206f6e652058434d2070726f6772616d2077696c6c206265207265636f7264656420617420612074696d652e29012054686973206973206d65616e7420746f206265207573656420696e2072756e74696d6520415049732c20616e64206974277320616476697365642069742073746179732066616c73650d0120666f7220616c6c206f74686572207573652063617365732c20736f20617320746f206e6f74206465677261646520726567756c617220706572666f726d616e63652e006501204f6e6c792072656c6576616e7420696620746869732070657a70616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e2c5265636f7264656458636d00006d050400184901204966205b6053686f756c645265636f726458636d605d2069732073657420746f20747275652c207468656e20746865206c6173742058434d2070726f6772616d206578656375746564206c6f63616c6c79542077696c6c2062652073746f72656420686572652e29012052756e74696d6520415049732063616e206665746368207468652058434d20746861742077617320657865637574656420627920616363657373696e6720746869732076616c75652e006501204f6e6c792072656c6576616e7420696620746869732070657a70616c6c6574206973206265696e67207573656420617320746865205b6078636d5f6578656375746f723a3a7472616974733a3a5265636f726458636d605dc820696d706c656d656e746174696f6e20696e207468652058434d206578656375746f7220636f6e66696775726174696f6e2e44417574686f72697a6564416c696173657300010402c501510c04000c6501204d6170206f6620617574686f72697a656420616c696173657273206f66206c6f63616c206f726967696e732e2045616368206c6f63616c206c6f636174696f6e2063616e20617574686f72697a652061206c697374206f665901206f74686572206c6f636174696f6e7320746f20616c69617320696e746f2069742e204561636820616c6961736572206973206f6e6c792076616c696420756e74696c2069747320696e6e65722060657870697279603820626c6f636b206e756d6265722e01b1040129071044556e6976657273616c4c6f636174696f6e91018c0109006408de7737c59c238890533af25896a2c20608d8b380bb01029acb392781063e0484205468697320636861696e277320556e6976657273616c204c6f636174696f6e2e504164766572746973656458636d56657273696f6e10100500000008250120546865206c617465737420737570706f727465642076657273696f6e2074686174207765206164766572746973652e2047656e6572616c6c79206a7573742073657420697420746f90206070657a70616c6c65745f78636d3a3a43757272656e7458636d56657273696f6e602e284d61784c6f636b65727310100800000004190120546865206d6178696d756d206e756d626572206f66206c6f63616c2058434d206c6f636b73207468617420612073696e676c65206163636f756e74206d617920686176652e584d617852656d6f74654c6f636b436f6e73756d65727310100000000004fc20546865206d6178696d756d206e756d626572206f6620636f6e73756d65727320612073696e676c652072656d6f7465206c6f636b206d617920686176652e01690c6314426565667901144265656679142c417574686f7269746965730100710c04000470205468652063757272656e7420617574686f726974696573207365743856616c696461746f7253657449640100302000000000000000000474205468652063757272656e742076616c696461746f72207365742069643c4e657874417574686f7269746965730100710c040004ec20417574686f72697469657320736574207363686564756c656420746f2062652075736564207769746820746865206e6578742073657373696f6e30536574496453657373696f6e00010405301004002851012041206d617070696e672066726f6d2042454546592073657420494420746f2074686520696e646578206f6620746865202a6d6f737420726563656e742a2073657373696f6e20666f722077686963682069747368206d656d62657273207765726520726573706f6e7369626c652e0045012054686973206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e2070726f6f66732e20416e2065717569766f636174696f6e2070726f6f66206d7573744d0120636f6e7461696e732061206b65792d6f776e6572736869702070726f6f6620666f72206120676976656e2073657373696f6e2c207468657265666f7265207765206e65656420612077617920746f207469653d0120746f6765746865722073657373696f6e7320616e6420424545465920736574206964732c20692e652e207765206e65656420746f2076616c6964617465207468617420612076616c696461746f7241012077617320746865206f776e6572206f66206120676976656e206b6579206f6e206120676976656e2073657373696f6e2c20616e642077686174207468652061637469766520736574204944207761735420647572696e6720746861742073657373696f6e2e00dc2054574f582d4e4f54453a206056616c696461746f72536574496460206973206e6f7420756e646572207573657220636f6e74726f6c2e3047656e65736973426c6f636b0100ec04000cdc20426c6f636b206e756d62657220776865726520424545465920636f6e73656e73757320697320656e61626c65642f737461727465642e6901204279206368616e67696e67207468697320287468726f7567682070726976696c6567656420607365745f6e65775f67656e65736973282960292c20424545465920636f6e73656e737573206973206566666563746976656c79ac207265737461727465642066726f6d20746865206e65776c792073657420626c6f636b206e756d6265722e012106000c384d6178417574686f7269746965731010a086010004d420546865206d6178696d756d206e756d626572206f6620617574686f72697469657320746861742063616e2062652061646465642e344d61784e6f6d696e61746f727310100000000004d420546865206d6178696d756d206e756d626572206f66206e6f6d696e61746f727320666f7220656163682076616c696461746f722e584d6178536574496453657373696f6e456e74726965733020a80000000000000018390120546865206d6178696d756d206e756d626572206f6620656e747269657320746f206b65657020696e207468652073657420696420746f2073657373696f6e20696e646578206d617070696e672e0031012053696e6365207468652060536574496453657373696f6e60206d6170206973206f6e6c79207573656420666f722076616c69646174696e672065717569766f636174696f6e73207468697329012076616c75652073686f756c642072656c61746520746f2074686520626f6e64696e67206475726174696f6e206f66207768617465766572207374616b696e672073797374656d2069733501206265696e6720757365642028696620616e79292e2049662065717569766f636174696f6e2068616e646c696e67206973206e6f7420656e61626c6564207468656e20746869732076616c7565342063616e206265207a65726f2e01790cf00c4d6d72010c4d6d720c20526f6f74486173680100348000000000000000000000000000000000000000000000000000000000000000000458204c6174657374204d4d5220526f6f7420686173682e384e756d6265724f664c656176657301003020000000000000000004b02043757272656e742073697a65206f6620746865204d4d5220286e756d626572206f66206c6561766573292e144e6f6465730001040630340400108020486173686573206f6620746865206e6f64657320696e20746865204d4d522e002d01204e6f7465207468697320636f6c6c656374696f6e206f6e6c7920636f6e7461696e73204d4d52207065616b732c2074686520696e6e6572206e6f6465732028616e64206c656176657329bc20617265207072756e656420616e64206f6e6c792073746f72656420696e20746865204f6666636861696e2044422e00000000f11c4d6d724c656166011c4d6d724c65616608404265656679417574686f72697469657301007d0cb0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004a02044657461696c73206f662063757272656e7420424545465920617574686f72697479207365742e5042656566794e657874417574686f72697469657301007d0cb000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c942044657461696c73206f66206e65787420424545465920617574686f72697479207365742e00510120546869732073746f7261676520656e747279206973207573656420617320636163686520666f722063616c6c7320746f20607570646174655f62656566795f6e6578745f617574686f726974795f736574602e00000000f24050617261735375646f5772617070657200015906000001810cfa3441737369676e6564536c6f7473013441737369676e6564536c6f74731c385065726d616e656e74536c6f747300010405f1023d030400041d012041737369676e6564207065726d616e656e7420736c6f74732c2077697468207468656972207374617274206c6561736520706572696f642c20616e64206475726174696f6e2e485065726d616e656e74536c6f74436f756e74010010100000000004c4204e756d626572206f662061737369676e65642028616e642061637469766529207065726d616e656e7420736c6f74732e3854656d706f72617279536c6f747300010405f102850c040004682041737369676e65642074656d706f7261727920736c6f74732e4854656d706f72617279536c6f74436f756e7401001010000000000490204e756d626572206f662061737369676e65642074656d706f7261727920736c6f74732e6041637469766554656d706f72617279536c6f74436f756e74010010100000000004fc204e756d626572206f66206163746976652074656d706f7261727920736c6f747320696e2063757272656e7420736c6f74206c6561736520706572696f642e444d617854656d706f72617279536c6f7473010010100000000004e42020546865206d6178206e756d626572206f662074656d706f7261727920736c6f747320746861742063616e2062652061737369676e65642e444d61785065726d616e656e74536c6f7473010010100000000004e020546865206d6178206e756d626572206f66207065726d616e656e7420736c6f747320746861742063616e2062652061737369676e65642e0161060139070c785065726d616e656e74536c6f744c65617365506572696f644c656e67746810106d01000004f820546865206e756d626572206f66206c6561736520706572696f64732061207065726d616e656e742074657972636861696e20736c6f74206c617374732e7854656d706f72617279536c6f744c65617365506572696f644c656e67746810100500000004f820546865206e756d626572206f66206c6561736520706572696f647320612074656d706f726172792074657972636861696e20736c6f74206c617374732e784d617854656d706f72617279536c6f745065724c65617365506572696f6410100500000004150120546865206d6178206e756d626572206f662074656d706f7261727920736c6f747320746f206265207363686564756c656420706572206c6561736520706572696f64732e01890cfb4056616c696461746f724d616e61676572014056616c696461746f724d616e61676572084856616c696461746f7273546f52657469726501002d0204000435012056616c696461746f727320746861742073686f756c6420626520726574697265642c20626563617573652074686569722054657972636861696e20776173206465726567697374657265642e3c56616c696461746f7273546f41646401002d02040004842056616c696461746f727320746861742073686f756c642062652061646465642e016906013d070000fc485374617465547269654d6967726174696f6e01485374617465547269654d6967726174696f6e0c404d6967726174696f6e50726f63657373010079063800000000000000000000000000001050204d6967726174696f6e2070726f67726573732e005d0120546869732073746f7265732074686520736e617073686f74206f6620746865206c617374206d69677261746564206b6579732e2049742063616e2062652073657420696e746f206d6f74696f6e20616e64206d6f7665e020666f727761726420627920616e79206f6620746865206d65616e732070726f766964656420627920746869732070657a70616c6c65742e284175746f4c696d6974730100710604000cd420546865206c696d69747320746861742061726520696d706f736564206f6e206175746f6d61746963206d6967726174696f6e732e00d42049662073657420746f204e6f6e652c207468656e206e6f206175746f6d61746963206d6967726174696f6e2068617070656e732e605369676e65644d6967726174696f6e4d61784c696d6974730000750604000ce020546865206d6178696d756d206c696d697473207468617420746865207369676e6564206d6967726174696f6e20636f756c64207573652e00b4204966206e6f74207365742c206e6f207369676e6564207375626d697373696f6e20697320616c6c6f7765642e016d0601410704244d61784b65794c656e10100002000054b4204d6178696d616c206e756d626572206f6620627974657320746861742061206b65792063616e20686176652e00b0204652414d4520697473656c6620646f6573206e6f74206c696d697420746865206b6579206c656e6774682e01012054686520636f6e63726574652076616c7565206d757374207468657265666f726520646570656e64206f6e20796f75722073746f726167652075736167652e65012041205b6070657a6672616d655f737570706f72743a3a73746f726167653a3a53746f726167654e4d6170605d20666f72206578616d706c652063616e206861766520616e20617262697472617279206e756d626572206f664501206b65797320776869636820617265207468656e2068617368656420616e6420636f6e636174656e617465642c20726573756c74696e6720696e206172626974726172696c79206c6f6e67206b6579732e0041012055736520746865202a7374617465206d6967726174696f6e205250432a20746f20726574726965766520746865206c656e677468206f6620746865206c6f6e67657374206b657920696e20796f757209012073746f726167653a203c68747470733a2f2f6769746875622e636f6d2f70657a6b757769636861696e2f70657a6b7577692d73646b2f6973737565732f3332323e00290120546865206d6967726174696f6e2077696c6c2068616c7420776974682061206048616c74656460206576656e7420696620746869732076616c756520697320746f6f20736d616c6c2e49012053696e6365207468657265206973206e6f207265616c2070656e616c74792066726f6d206f7665722d657374696d6174696e672c206974206973206164766973656420746f207573652061206c61726765802076616c75652e205468652064656661756c742069732035313220627974652e008020536f6d65206b6579206c656e6774687320666f72207265666572656e63653adc202d205b6070657a6672616d655f737570706f72743a3a73746f726167653a3a53746f7261676556616c7565605d3a2033322062797465d4202d205b6070657a6672616d655f737570706f72743a3a73746f726167653a3a53746f726167654d6170605d3a2036342062797465ec202d205b6070657a6672616d655f737570706f72743a3a73746f726167653a3a53746f72616765446f75626c654d6170605d3a2039362062797465004820466f72206d6f726520696e666f207365654901203c68747470733a2f2f7777772e736861776e74616272697a692e636f6d2f626c6f672f7375627374726174652f7175657279696e672d7375627374726174652d73746f726167652d7669612d7270632f3e014907fe3456616c696461746f72506f6f6c013456616c696461746f72506f6f6c402843757272656e74457261010010100000000004482043757272656e742065726120696e64657820457261537461727401001010000000000464205768656e2063757272656e742065726120737461727465644c43757272656e7456616c696461746f7253657400005107040004b02043757272656e742073656c65637465642076616c696461746f722073657420666f722074686973206572612c506f6f6c4d656d6265727300010402008906040004b02056616c696461746f7220706f6f6c206d656d6265727320616e642074686569722063617465676f7269657348506572666f726d616e63654d65747269637301010402006107440000000000000000000000000000000000049c20506572666f726d616e6365206d65747269637320666f7220656163682076616c696461746f724053656c656374696f6e486973746f727901010402008d0c040004a82056616c696461746f722073656c656374696f6e20686973746f727920286c617374203520657261732920506f6f6c53697a650100101000000000044820506f6f6c2073697a6520636f756e746572244572614c656e6774680100101000000000045420457261206c656e67746820696e20626c6f636b735043757272656e744f7065726174696f6e4d6f646501009106040004a82043757272656e74206f7065726174696f6e206d6f64652028536861646f77206f72204163746976652948536861646f7756616c696461746f7253657400005107040004210120544e506f532076616c696461746f722073656c656374696f6e2028736861646f77206d6f6465202d207768617420776f756c642068617665206265656e2073656c656374656429404e706f7356616c696461746f725365740100910c0400040d01204e506f532076616c696461746f722073657420666f7220636f6d70617269736f6e20287265636f726465642066726f6d2061637475616c20636f6e73656e73757329584c6174657374536861646f77436f6d70617269736f6e0000950c04000480204c617465737420736861646f7720636f6d70617269736f6e20726573756c745443756d756c6174697665536861646f7753746174730100a10cd00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004742043756d756c617469766520736861646f7720737461746973746963733c457261416e616c79736973446174610001040210a50c0400040501205065722d65726120616e616c79736973206461746120286b65657073206c617374203130206572617320666f722064657461696c656420616e616c79736973296c43617465676f7279446973747269627574696f6e486973746f72790001040210a90c040004b42043617465676f727920646973747269627574696f6e20686973746f727920286c6173742031302065726173293c536861646f774d6f646553696e63650000100400047420536861646f77206d6f64652061637469766174696f6e20626c6f636b018506014d070c344d617856616c696461746f72731010150000000494204d6178696d756d206e756d626572206f662076616c696461746f727320706572206572612c4d6178506f6f6c53697a651010e8030000047c204d6178696d756d2073697a65206f662076616c696461746f7220706f6f6c384d696e5374616b65416d6f756e74184000407a10f35a0000000000000000000004a8204d696e696d756d207374616b6520616d6f756e7420666f72207374616b652076616c696461746f727301ad0c5b2c526f6f7454657374696e67000195060165070000f934566f746572426167734c6973740134566f746572426167734c6973741c244c6973744e6f6465730001040500b10c04000c8020412073696e676c65206e6f64652c2077697468696e20736f6d65206261672e000501204e6f6465732073746f7265206c696e6b7320666f727761726420616e64206261636b2077697468696e207468656972207265737065637469766520626167732e4c436f756e746572466f724c6973744e6f646573010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d6170204c697374426167730001040530b50c04000c642041206261672073746f72656420696e2073746f726167652e0019012053746f7265732061206042616760207374727563742c2077686963682073746f726573206865616420616e64207461696c20706f696e7465727320746f20697473656c662e504e6578744e6f64654175746f5265626167676564000000040008050120506f696e74657220746861742072656d656d6265727320746865206e657874206e6f646520746861742077696c6c206265206175746f2d72656261676765642e0101205768656e20604e6f6e65602c20746865206e657874207363616e2077696c6c2073746172742066726f6d20746865206c697374206865616420616761696e2e104c6f636b0000150104001090204c6f636b20616c6c207570646174657320746f20746869732070657a70616c6c65742e00390120496620616e79206e6f646573206e65656473207570646174696e672c2072656d6f76616c206f72206164646974696f6e2064756520746f20612074656d706f72617279206c6f636b2c2074686574205b6043616c6c3a3a7265626167605d2063616e20626520757365642e3050656e64696e675265626167000104050015010400381d01204163636f756e74732074686174206661696c656420746f20626520696e73657274656420696e746f2074686520626167732d6c6973742064756520746f206c6f636b696e672e5901205468657365206163636f756e74732077696c6c2062652070726f6365737365642077697468207072696f7269747920696e20606f6e5f69646c6560206f722076696120607265626167602065787472696e7369632e004d01204e6f74653a20546869732073746f7261676520697320696e74656e74696f6e616c6c7920756e626f756e6465642e2054686520666f6c6c6f77696e6720666163746f7273206d616b6520626f756e64696e673420756e6e65636573736172793a510120312e205468652073746f726167652075736167652069732074656d706f72617279202d206163636f756e7473206172652070726f63657373656420616e642072656d6f76656420696e20606f6e5f69646c6560510120322e205468652070657a70616c6c6574206973206f6e6c79206c6f636b656420647572696e6720736e617073686f742067656e65726174696f6e2c207768696368206973207765696768742d6c696d697465646d0120332e2050726f63657373696e672068617070656e73206174206d756c7469706c65206163636f756e74732070657220626c6f636b2c20636c656172696e67206576656e206c61726765206261636b6c6f677320717569636b6c79410120342e20416e206172746966696369616c206c696d697420636f756c642062652065786861757374656420627920616e2061747461636b65722c2070726576656e74696e67206c65676974696d6174650101202020206175746f2d726562616767696e672066726f6d2070757474696e67206163636f756e747320696e2074686520636f727265637420706f736974696f6e00690120576520646f6e27742073746f7265207468652073636f72652068657265202d206974277320616c7761797320666574636865642066726f6d206053636f726550726f766964657260207768656e2070726f63657373696e672c690120656e737572696e672077652075736520746865206d6f73742075702d746f2d646174652073636f726520286163636f756e7473206d61792068617665206265656e20736c61736865642c2072657761726465642c206574632e74207768696c652077616974696e6720696e20746865207175657565292e58436f756e746572466f7250656e64696e675265626167010010100000000004ac436f756e74657220666f72207468652072656c6174656420636f756e7465642073746f72616765206d617001990601690708344261675468726573686f6c6473b90c45012800407a10f35a00000080f420e6b5000000406352bfc601000080c6a47e8d030000008d49fd1a07000080e03779c311000000c16ff2862300000082dfe40d47000000c52ebca2b10000008a5d78456301b0d020546865206c697374206f66207468726573686f6c64732073657061726174696e672074686520766172696f757320626167732e00490120496473206172652073657061726174656420696e746f20756e736f727465642062616773206163636f7264696e6720746f2074686569722073636f72652e205468697320737065636966696573207468656101207468726573686f6c64732073657061726174696e672074686520626167732e20416e20696427732062616720697320746865206c6172676573742062616720666f722077686963682074686520696427732073636f7265b8206973206c657373207468616e206f7220657175616c20746f20697473207570706572207468726573686f6c642e006501205768656e20696473206172652069746572617465642c2068696768657220626167732061726520697465726174656420636f6d706c6574656c79206265666f7265206c6f77657220626167732e2054686973206d65616e735901207468617420697465726174696f6e206973205f73656d692d736f727465645f3a20696473206f66206869676865722073636f72652074656e6420746f20636f6d65206265666f726520696473206f66206c6f7765722d012073636f72652c206275742070656572206964732077697468696e206120706172746963756c6172206261672061726520736f7274656420696e20696e73657274696f6e206f726465722e006820232045787072657373696e672074686520636f6e7374616e74004d01205468697320636f6e7374616e74206d75737420626520736f7274656420696e207374726963746c7920696e6372656173696e67206f726465722e204475706c6963617465206974656d7320617265206e6f742c207065726d69747465642e00410120546865726520697320616e20696d706c696564207570706572206c696d6974206f66206053636f72653a3a4d4158603b20746861742076616c756520646f6573206e6f74206e65656420746f2062652101207370656369666965642077697468696e20746865206261672e20466f7220616e792074776f207468726573686f6c64206c697374732c206966206f6e6520656e647320776974683101206053636f72653a3a4d4158602c20746865206f74686572206f6e6520646f6573206e6f742c20616e64207468657920617265206f746865727769736520657175616c2c207468652074776f7c206c697374732077696c6c20626568617665206964656e746963616c6c792e003820232043616c63756c6174696f6e005501204974206973207265636f6d6d656e64656420746f2067656e65726174652074686520736574206f66207468726573686f6c647320696e20612067656f6d6574726963207365726965732c2073756368207468617441012074686572652065786973747320736f6d6520636f6e7374616e7420726174696f2073756368207468617420607468726573686f6c645b6b202b20315d203d3d20287468726573686f6c645b6b5d202ad020636f6e7374616e745f726174696f292e6d6178287468726573686f6c645b6b5d202b2031296020666f7220616c6c20606b602e004101205468652068656c7065727320696e2074686520602f7574696c732f70657a6672616d652f70657a2d67656e65726174652d6261677360206d6f64756c652063616e2073696d706c6966792074686973342063616c63756c6174696f6e2e002c2023204578616d706c6573005101202d20496620604261675468726573686f6c64733a3a67657428292e69735f656d7074792829602c207468656e20616c6c20696473206172652070757420696e746f207468652073616d65206261672c20616e64b0202020697465726174696f6e206973207374726963746c7920696e20696e73657274696f6e206f726465722e6101202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d203634602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f11012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320657175616c20746f20322e6501202d20496620604261675468726573686f6c64733a3a67657428292e6c656e2829203d3d20323030602c20616e6420746865207468726573686f6c6473206172652064657465726d696e6564206163636f7264696e6720746f59012020207468652070726f63656475726520676976656e2061626f76652c207468656e2074686520636f6e7374616e7420726174696f20697320617070726f78696d6174656c7920657175616c20746f20312e3234382e6101202d20496620746865207468726573686f6c64206c69737420626567696e7320605b312c20322c20332c202e2e2e5d602c207468656e20616e20696420776974682073636f72652030206f7220312077696c6c2066616c6cf0202020696e746f2062616720302c20616e20696420776974682073636f726520322077696c6c2066616c6c20696e746f2062616720312c206574632e00302023204d6967726174696f6e00610120496e20746865206576656e7420746861742074686973206c6973742065766572206368616e6765732c206120636f7079206f6620746865206f6c642062616773206c697374206d7573742062652072657461696e65642e5d012057697468207468617420604c6973743a3a6d696772617465602063616e2062652063616c6c65642c2077686963682077696c6c20706572666f726d2074686520617070726f707269617465206d6967726174696f6e2e504d61784175746f5265626167506572426c6f636b10100a000000103501204d6178696d756d206e756d626572206f66206163636f756e74732074686174206d61792062652072652d626167676564206175746f6d61746963616c6c7920696e20606f6e5f69646c65602e00510120412076616c7565206f662060306020286f627461696e656420627920636f6e6669677572696e67206074797065204d61784175746f5265626167506572426c6f636b203d2028293b60292064697361626c6573342074686520666561747572652e01bd0c64105375646f01105375646f040c4b6579000000040004842054686520604163636f756e74496460206f6620746865207375646f206b65792e019d06016d070001c50cffc90c042c34417574686f72697a6543616c6cd10c150148436865636b4e6f6e5a65726f53656e646572d50c150140436865636b5370656356657273696f6ed90c1038436865636b547856657273696f6edd0c1030436865636b47656e65736973e10c3438436865636b4d6f7274616c697479e50c3428436865636b4e6f6e6365ed0c15012c436865636b576569676874f10c1501604368617267655472616e73616374696f6e5061796d656e74f50c150144436865636b4d6574616461746148617368f90ccd06345765696768745265636c61696d010d1501050d"} \ No newline at end of file diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..589737f --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,55 @@ +// Copyright 2017-2025 @pezkuwi/api authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import path from 'path'; + +import { createBundle } from '@pezkuwi/dev/config/rollup'; + +const pkgs = [ + '@pezkuwi/api', + '@pezkuwi/api-contract', + '@pezkuwi/types' +]; + +const external = [ + ...pkgs, + '@pezkuwi/keyring', + '@pezkuwi/util', + '@pezkuwi/util-crypto' +]; + +function expand (prefix, all) { + return all.map((p) => p ? `${prefix}-${p}` : prefix); +} + +const entries = [ + ...expand('api', ['augment', 'base', 'derive']), + ...expand('rpc', ['augment', 'core', 'provider']), + ...expand('types', [...expand('augment', ['', 'lookup', 'registry']), 'codec', 'create', 'helpers', 'known']) +].reduce((all, p) => ({ + ...all, + [`@pezkuwi/${p}`]: path.resolve(process.cwd(), `packages/${p}/build/bundle.js`) +}), { + // re-exported in @pezkuwi/util-crypto, map directly + '@pezkuwi/networks': '@pezkuwi/util-crypto', + // we point to a specific file for these (default augmentations) + '@pezkuwi/rpc-core/types/jsonrpc': path.resolve(process.cwd(), 'packages/rpc-core/build/types/jsonrpc.js'), + '@pezkuwi/types-codec/types/registry': path.resolve(process.cwd(), 'packages/types-codec/build/types/registry.js'), + '@pezkuwi/types-create/exports': path.resolve(process.cwd(), 'packages/types-create/build/exports.js') +}); + +const overrides = {}; + +export default pkgs.map((pkg) => { + const override = (overrides[pkg] || {}); + + return createBundle({ + external, + pkg, + ...override, + entries: { + ...entries, + ...(override.entries || {}) + } + }); +}); diff --git a/scripts/metadata-get.mjs b/scripts/metadata-get.mjs new file mode 100644 index 0000000..347d89e --- /dev/null +++ b/scripts/metadata-get.mjs @@ -0,0 +1,105 @@ +// Copyright 2017-2025 @pezkuwi/typegen authors & contributors +// SPDX-License-Identifier: Apache-2.0 + +import fs from 'node:fs'; + +import { fetch } from '@pezkuwi/x-fetch'; + +const PREAMBLE = '// Copyright 2017-2025 @pezkuwi/types-support authors & contributors\n// SPDX-License-Identifier: Apache-2.0\n\n/* eslint-disable */\n\n'; +const CMD = { + 'asset-hub-zagros': `${PREAMBLE}//To run a asset-hub-zagros node please refer to types-support/src/metadata/README.md\n\nexport default`, + 'asset-hub-pezkuwi': `${PREAMBLE}//To run a asset-hub-pezkuwi node please refer to types-support/src/metadata/README.md\n\nexport default`, + zagros: `${PREAMBLE}// cargo run --release -- purge-chain -y --chain zagros-dev && cargo run --release -- --chain zagros-dev --alice --force-authoring\n\nexport default`, + pezkuwi: `${PREAMBLE}// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev\n\nexport default`, + bizinikiwi: `${PREAMBLE}// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev\n\nexport default`, + 'bizinikiwi-contracts-node': `${PREAMBLE}// cargo run --release -- purge-chain -y --dev && cargo run --release -- --dev\n\nexport default` +}; + +// V15 +const META_VERSION_HEX = '0x10000000'; +const META_VERSION = 16; + +/** + * Parse the specName given any exceptions. + * + * @param {'pezkuwi' | 'zagros' | 'node' | 'statemint' | 'statemine'} specName + * @returns {'pezkuwi' | 'zagros' | 'bizinikiwi' | 'asset-hub-zagros' | 'asset-hub-pezkuwi'} + */ +const parseChainName = (specName) => { + switch (specName) { + case 'node': + return 'bizinikiwi'; + case 'statemine': + return 'asset-hub-zagros'; + case 'statemint': + return 'asset-hub-pezkuwi'; + default: + return specName; + } +}; + +/** + * Small CLI parser. + * + * This script accepts `--url` to specify the endpoint to query the metadata from. + * + * @returns {string} + */ +const getUrl = () => { + const [,, command, ...args] = process.argv; + + if (command === '--url') { + return args.join(' '); + } + + return 'http://127.0.0.1:9944'; +}; + +const main = async () => { + let requestId = 0; + + const chainUrl = getUrl(); + + /** + * + * @param {'rpc_methods' | 'state_getMetadata' | 'state_getRuntimeVersion' | 'state_call'} method + * @param {string[]} params + * @returns {Promise} + */ + async function get (method, params = []) { + const res = await fetch(chainUrl, { + body: JSON.stringify({ + id: ++requestId, + jsonrpc: '2.0', + method, + params + }), + headers: { + Accept: 'application/json', + 'Content-Type': 'application/json' + }, + method: 'POST' + }); + const body = await res.json(); + + return body.result; + } + + /** @type {[string[], string, { specName: 'pezkuwi' | 'zagros' | 'node' | 'statemine' | 'statemint'; specVersion: string; }]} */ + const [methods, metadata, version] = await Promise.all([ + get('rpc_methods'), + get('state_call', ['Metadata_metadata_at_version', META_VERSION_HEX]), + get('state_getRuntimeVersion') + ]); + const chain = parseChainName(version.specName); + const metaVer = parseInt(metadata.substring(20, 22), 16); + const path = `packages/types-support/src/metadata/v${META_VERSION}/${chain}`; + + fs.writeFileSync(`${path}-hex.ts`, `${CMD[chain]} '${metadata}';\n`); + fs.writeFileSync(`${path}-rpc.ts`, `${CMD[chain]} ${JSON.stringify(methods, null, 2)};\n`); + fs.writeFileSync(`${path}-ver.ts`, `${CMD[chain]} ${JSON.stringify(version, null, 2)};\n`); + + console.log(`Retrieved ${chain}/${version.specVersion}, metadata v${metaVer}`); +}; + +main().catch((err) => console.error(err)).finally(() => process.exit()); diff --git a/test-bundle.html b/test-bundle.html new file mode 100644 index 0000000..9092e32 --- /dev/null +++ b/test-bundle.html @@ -0,0 +1,62 @@ + + + + + Bundler tests + + + + + + + + + + + + + diff --git a/tsconfig.base.json b/tsconfig.base.json new file mode 100644 index 0000000..d4f25fb --- /dev/null +++ b/tsconfig.base.json @@ -0,0 +1,76 @@ +{ + "extends": "@pezkuwi/dev/config/tsconfig.json", + "compilerOptions": { + "composite": true, + "noUnusedLocals": true, + "paths": { + "@pezkuwi/api": ["api/src/index.ts"], + "@pezkuwi/api/base": ["api/src/base/index.ts"], + "@pezkuwi/api/packageInfo": ["api/src/packageInfo.ts"], + "@pezkuwi/api/promise/decorateMethod": ["api/src/promise/decorateMethod.ts"], + "@pezkuwi/api/submittable/*": ["api/src/submittable/*.ts"], + "@pezkuwi/api/types": ["api/src/types/index.ts"], + "@pezkuwi/api/types/*": ["api/src/types/*.ts"], + "@pezkuwi/api-augment": ["api-augment/src/index.ts"], + "@pezkuwi/api-augment/packageInfo": ["api-augment/src/packageInfo.ts"], + "@pezkuwi/api-base": ["api-base/src/index.ts"], + "@pezkuwi/api-base/packageInfo": ["api-base/src/packageInfo.ts"], + "@pezkuwi/api-base/types": ["api-base/src/types/index.ts"], + "@pezkuwi/api-base/types/*": ["api-base/src/types/*.ts"], + "@pezkuwi/api-contract": ["api-contract/src/index.ts"], + "@pezkuwi/api-contract/packageInfo": ["api-contract/src/packageInfo.ts"], + "@pezkuwi/api-derive": ["api-derive/src/index.ts"], + "@pezkuwi/api-derive/packageInfo": ["api-derive/src/packageInfo.ts"], + "@pezkuwi/api-derive/types": ["api-derive/src/types.ts"], + "@pezkuwi/rpc-augment": ["rpc-augment/src/index.ts"], + "@pezkuwi/rpc-augment/packageInfo": ["rpc-augment/src/packageInfo.ts"], + "@pezkuwi/rpc-core": ["rpc-core/src/index.ts"], + "@pezkuwi/rpc-core/packageInfo": ["rpc-core/src/packageInfo.ts"], + "@pezkuwi/rpc-core/types": ["rpc-core/src/types/index.ts"], + "@pezkuwi/rpc-core/types/*": ["rpc-core/src/types/*.ts"], + "@pezkuwi/rpc-provider": ["rpc-provider/src/index.ts"], + "@pezkuwi/rpc-provider/mock": ["rpc-provider/src/mock/index.ts"], + "@pezkuwi/rpc-provider/packageInfo": ["rpc-provider/src/packageInfo.ts"], + "@pezkuwi/rpc-provider/types": ["rpc-provider/src/types.ts"], + "@pezkuwi/typegen/*": ["typegen/src/*.ts"], + "@pezkuwi/types": ["types/src/index.ts"], + "@pezkuwi/types/codec": ["types/src/codec/index.ts"], + "@pezkuwi/types/create": ["types/src/create/index.ts"], + "@pezkuwi/types/extrinsic": ["types/src/extrinsic/index.ts"], + "@pezkuwi/types/extrinsic/*": ["types/src/extrinsic/*.ts"], + "@pezkuwi/types/generic": ["types/src/generic/index.ts"], + "@pezkuwi/types/interfaces": ["types/src/interfaces/index.ts"], + "@pezkuwi/types/interfaces/definitions": ["types/src/interfaces/definitions.ts"], + "@pezkuwi/types/interfaces/democracy/*": ["types/src/interfaces/democracy/*.ts"], + "@pezkuwi/types/interfaces/jsonrpc": ["types/src/interfaces/jsonrpc.ts"], + "@pezkuwi/types/interfaces/*": ["types/src/interfaces/*/index.ts"], + "@pezkuwi/types/lookup": ["types/src/lookup.ts"], + "@pezkuwi/types/metadata": ["types/src/metadata/index.ts"], + "@pezkuwi/types/metadata/*": ["types/src/metadata/*.ts"], + "@pezkuwi/types/packageInfo": ["types/src/packageInfo.ts"], + "@pezkuwi/types/primitive": ["types/src/primitive/index.ts"], + "@pezkuwi/types/primitive/*": ["types/src/primitive/*.ts"], + "@pezkuwi/types/types": ["types/src/types/index.ts"], + "@pezkuwi/types/types/*": ["types/src/types/*.ts"], + "@pezkuwi/types/util": ["types/src/util/index.ts"], + "@pezkuwi/types-augment": ["types-augment/src/index.ts"], + "@pezkuwi/types-augment/lookup/*": ["types-augment/src/lookup/*.ts"], + "@pezkuwi/types-augment/packageInfo": ["types-augment/src/packageInfo.ts"], + "@pezkuwi/types-codec": ["types-codec/src/index.ts"], + "@pezkuwi/types-codec/packageInfo": ["types-codec/src/packageInfo.ts"], + "@pezkuwi/types-codec/types": ["types-codec/src/types/index.ts"], + "@pezkuwi/types-codec/types/*": ["types-codec/src/types/*.ts"], + "@pezkuwi/types-create": ["types-create/src/index.ts"], + "@pezkuwi/types-create/exports": ["types-create/src/exports.ts"], + "@pezkuwi/types-create/packageInfo": ["types-create/src/packageInfo.ts"], + "@pezkuwi/types-create/types": ["types-create/src/types/index.ts"], + "@pezkuwi/types-create/types/*": ["types-create/src/types/*.ts"], + "@pezkuwi/types-known": ["types-known/src/index.ts"], + "@pezkuwi/types-known/packageInfo": ["types-known/src/packageInfo.ts"], + "@pezkuwi/types-support": ["types-support/src/index.ts"], + "@pezkuwi/types-support/json/*": ["types-support/src/json/*"], + "@pezkuwi/types-support/metadata/*": ["types-support/src/metadata/*.ts"], + "@pezkuwi/types-support/packageInfo": ["types-support/src/packageInfo.ts"] + } + } + } diff --git a/tsconfig.build.json b/tsconfig.build.json new file mode 100644 index 0000000..5b3f931 --- /dev/null +++ b/tsconfig.build.json @@ -0,0 +1,39 @@ +{ + "compilerOptions": { + "composite": true, + "noUnusedLocals": true + }, + "files": [], + "references": [ + { "path": "./packages/api/tsconfig.build.json" }, + { "path": "./packages/api/tsconfig.spec.json" }, + { "path": "./packages/api-augment/tsconfig.build.json" }, + { "path": "./packages/api-augment/tsconfig.assetHubZagros.json" }, + { "path": "./packages/api-augment/tsconfig.assetHubPezkuwi.json" }, + { "path": "./packages/api-augment/tsconfig.zagros.json" }, + { "path": "./packages/api-augment/tsconfig.pezkuwi.json" }, + { "path": "./packages/api-base/tsconfig.build.json" }, + { "path": "./packages/api-contract/tsconfig.build.json" }, + { "path": "./packages/api-contract/tsconfig.spec.json" }, + { "path": "./packages/api-derive/tsconfig.build.json" }, + { "path": "./packages/api-derive/tsconfig.spec.json" }, + { "path": "./packages/rpc-augment/tsconfig.build.json" }, + { "path": "./packages/rpc-core/tsconfig.build.json" }, + { "path": "./packages/rpc-core/tsconfig.spec.json" }, + { "path": "./packages/rpc-provider/tsconfig.build.json" }, + { "path": "./packages/rpc-provider/tsconfig.spec.json" }, + { "path": "./packages/typegen/tsconfig.build.json" }, + { "path": "./packages/typegen/tsconfig.scripts.json" }, + { "path": "./packages/typegen/tsconfig.spec.json" }, + { "path": "./packages/types/tsconfig.build.json" }, + { "path": "./packages/types/tsconfig.spec.json" }, + { "path": "./packages/types-augment/tsconfig.build.json" }, + { "path": "./packages/types-codec/tsconfig.build.json" }, + { "path": "./packages/types-codec/tsconfig.spec.json" }, + { "path": "./packages/types-create/tsconfig.build.json" }, + { "path": "./packages/types-create/tsconfig.spec.json" }, + { "path": "./packages/types-known/tsconfig.build.json" }, + { "path": "./packages/types-known/tsconfig.spec.json" }, + { "path": "./packages/types-support/tsconfig.build.json" } + ] +} diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 0000000..37f4083 --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,23 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "baseUrl": "./packages", + "composite": false, + "noUnusedLocals": true + }, + "include": [ + "packages/**/src/**/*", + "packages/**/scripts/**/*", + "scripts/*", + ".prettierrc.cjs", + "eslint.config.js", + "rollup.config.js" + ], + "exclude": [ + "**/node_modules/**/*", + // We exclude these since it creates some issues with the + // @typescript-eslint/dot-notation rules + "packages/api-augment/src/zagros/*.ts", + "packages/api-augment/src/pezkuwi/*.ts" + ] +} diff --git a/tsconfig.json b/tsconfig.json new file mode 100644 index 0000000..8dc318d --- /dev/null +++ b/tsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "baseUrl": "./packages", + "composite": false, + "resolveJsonModule": true, + "noUnusedLocals": true + }, + "include": [ + "packages/**/src/**/*", + "packages/**/scripts/**/*", + "scripts/*" + ], + "exclude": [ + "**/node_modules/**/*", + // these include the different-chain augmentations, which then overrides + // the bizinikiwi base. TS only allow single augmentations, so exclude here + "packages/api-augment/src/zagros/*.ts", + "packages/api-augment/src/pezkuwi/*.ts" + ] +} diff --git a/yarn.lock b/yarn.lock new file mode 100644 index 0000000..4e10089 --- /dev/null +++ b/yarn.lock @@ -0,0 +1,10509 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 8 + cacheKey: 10 + +"@asamuzakjp/css-color@npm:^3.2.0": + version: 3.2.0 + resolution: "@asamuzakjp/css-color@npm:3.2.0" + dependencies: + "@csstools/css-calc": "npm:^2.1.3" + "@csstools/css-color-parser": "npm:^3.0.9" + "@csstools/css-parser-algorithms": "npm:^3.0.4" + "@csstools/css-tokenizer": "npm:^3.0.3" + lru-cache: "npm:^10.4.3" + checksum: 10/870f661460173174fef8bfebea0799ba26566f3aa7b307e5adabb7aae84fed2da68e40080104ed0c83b43c5be632ee409e65396af13bfe948a3ef4c2c729ecd9 + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.27.1" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10/721b8a6e360a1fa0f1c9fe7351ae6c874828e119183688b533c477aa378f1010f37cc9afbfc4722c686d1f5cdd00da02eab4ba7278a0c504fa0d7a321dcd4fdf + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10/0ae29cc2005084abdae2966afdb86ed14d41c9c37db02c3693d5022fba9f5d59b011d039380b8e537c34daf117c549f52b452398f576e908fb9db3c7abbb3a00 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.27.1, @babel/helper-validator-identifier@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/helper-validator-identifier@npm:7.28.5" + checksum: 10/8e5d9b0133702cfacc7f368bf792f0f8ac0483794877c6dca5fcb73810ee138e27527701826fb58a40a004f3a5ec0a2f3c3dd5e326d262530b119918f3132ba7 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.0.0, @babel/parser@npm:^7.21.4": + version: 7.28.5 + resolution: "@babel/parser@npm:7.28.5" + dependencies: + "@babel/types": "npm:^7.28.5" + bin: + parser: ./bin/babel-parser.js + checksum: 10/8d9bfb437af6c97a7f6351840b9ac06b4529ba79d6d3def24d6c2996ab38ff7f1f9d301e868ca84a93a3050fadb3d09dbc5105b24634cd281671ac11eebe8df7 + languageName: node + linkType: hard + +"@babel/types@npm:^7.28.5": + version: 7.28.5 + resolution: "@babel/types@npm:7.28.5" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.28.5" + checksum: 10/4256bb9fb2298c4f9b320bde56e625b7091ea8d2433d98dcf524d4086150da0b6555aabd7d0725162670614a9ac5bf036d1134ca13dedc9707f988670f1362d7 + languageName: node + linkType: hard + +"@bizinikiwi/connect-extension-protocol@npm:^2.2.2": + version: 2.2.2 + resolution: "@bizinikiwi/connect-extension-protocol@npm:2.2.2" + checksum: 10/67cc8effc49e86802ddec12f28f254eab32a2d1ca138e73313458bbaa66e0d09f5e80d193ab7c8c949804c2bd3910db9a4ef7646c20b63866d7f67fdf20f8e0e + languageName: node + linkType: hard + +"@bizinikiwi/connect-known-chains@npm:^1.10.3": + version: 1.10.3 + resolution: "@bizinikiwi/connect-known-chains@npm:1.10.3" + checksum: 10/fc3661ababce5090067ce936ee5b377c37db021c680019ee809230551f9e6cdbb6c2aea3ad804bbc32b18a68847e33bde259f67d73ca88a9f3f1d13200efc309 + languageName: node + linkType: hard + +"@bizinikiwi/connect@npm:2.1.9": + version: 2.1.9 + resolution: "@bizinikiwi/connect@npm:2.1.9" + dependencies: + "@bizinikiwi/connect-extension-protocol": "npm:^2.2.2" + "@bizinikiwi/connect-known-chains": "npm:^1.10.3" + "@bizinikiwi/smoldot-discovery": "npm:^2.0.3" + smoldot: "npm:^2.0.34" + checksum: 10/e8c211e556fff0611b6b010d36b6ec3da303088b3e0d958aab72ffb19eb1ff469c31827e307965dc56a636617258085f1a2b64ebbfd60517dba39df52452015c + languageName: node + linkType: hard + +"@bizinikiwi/discovery@npm:^0.2.2": + version: 0.2.2 + resolution: "@bizinikiwi/discovery@npm:0.2.2" + checksum: 10/bde24be332f9012d716ae2abb4780fbbddda1f30f0f4e112275a015df2bf525808708c03c1aa9d6d27f3a5d53688d81847c3b3ea37218c1e25a282dd909f3349 + languageName: node + linkType: hard + +"@bizinikiwi/smoldot-discovery@npm:^2.0.3": + version: 2.0.3 + resolution: "@bizinikiwi/smoldot-discovery@npm:2.0.3" + dependencies: + "@bizinikiwi/discovery": "npm:^0.2.2" + checksum: 10/0a9f1ff86b1603c6d377aa9815b3448fbcb61ff48c2746ebd25788947c407896ebfe9453bbb00ef31c80d4f831c2c6e9791d6efec607d23f9ec885b9cd341e59 + languageName: node + linkType: hard + +"@csstools/color-helpers@npm:^5.1.0": + version: 5.1.0 + resolution: "@csstools/color-helpers@npm:5.1.0" + checksum: 10/0138b3d5ccbe77aeccf6721fd008a53523c70e932f0c82dca24a1277ca780447e1d8357da47512ebf96358476f8764de57002f3e491920d67e69202f5a74c383 + languageName: node + linkType: hard + +"@csstools/css-calc@npm:^2.1.3, @csstools/css-calc@npm:^2.1.4": + version: 2.1.4 + resolution: "@csstools/css-calc@npm:2.1.4" + peerDependencies: + "@csstools/css-parser-algorithms": ^3.0.5 + "@csstools/css-tokenizer": ^3.0.4 + checksum: 10/06975b650c0f44c60eeb7afdb3fd236f2dd607b2c622e0bc908d3f54de39eb84e0692833320d03dac04bd6c1ab0154aa3fa0dd442bd9e5f917cf14d8e2ba8d74 + languageName: node + linkType: hard + +"@csstools/css-color-parser@npm:^3.0.9": + version: 3.1.0 + resolution: "@csstools/css-color-parser@npm:3.1.0" + dependencies: + "@csstools/color-helpers": "npm:^5.1.0" + "@csstools/css-calc": "npm:^2.1.4" + peerDependencies: + "@csstools/css-parser-algorithms": ^3.0.5 + "@csstools/css-tokenizer": ^3.0.4 + checksum: 10/4741095fdc4501e8e7ada4ed14fbf9dbbe6fea9b989818790ebca15657c29c62defbebacf18592cde2aa638a1d098bbe86d742d2c84ba932fbc00fac51cb8805 + languageName: node + linkType: hard + +"@csstools/css-parser-algorithms@npm:^3.0.4": + version: 3.0.5 + resolution: "@csstools/css-parser-algorithms@npm:3.0.5" + peerDependencies: + "@csstools/css-tokenizer": ^3.0.4 + checksum: 10/e93083b5cb36a3c1e7a47ce10cf62961d05bd1e4c608bb3ee50186ff740157ab0ec16a3956f7b86251efd10703034d849693201eea858ae904848c68d2d46ada + languageName: node + linkType: hard + +"@csstools/css-tokenizer@npm:^3.0.3": + version: 3.0.4 + resolution: "@csstools/css-tokenizer@npm:3.0.4" + checksum: 10/eb6c84c086312f6bb8758dfe2c85addd7475b0927333c5e39a4d59fb210b9810f8c346972046f95e60a721329cffe98895abe451e51de753ad1ca7a8c24ec65f + languageName: node + linkType: hard + +"@dependents/detective-less@npm:^3.0.1": + version: 3.0.2 + resolution: "@dependents/detective-less@npm:3.0.2" + dependencies: + gonzales-pe: "npm:^4.3.0" + node-source-walk: "npm:^5.0.1" + checksum: 10/2c263ab64fcd1f76117bc35f2b29a150c64bd2b105c96a909a63ce2f2baf07efd93d9ae80e612161d003fb71fbe46598292375f5cc3f447a1b83cfb545dc8f8f + languageName: node + linkType: hard + +"@discoveryjs/json-ext@npm:^0.5.0": + version: 0.5.7 + resolution: "@discoveryjs/json-ext@npm:0.5.7" + checksum: 10/b95682a852448e8ef50d6f8e3b7ba288aab3fd98a2bafbe46881a3db0c6e7248a2debe9e1ee0d4137c521e4743ca5bbcb1c0765c9d7b3e0ef53231506fec42b4 + languageName: node + linkType: hard + +"@emnapi/core@npm:^1.4.3": + version: 1.8.1 + resolution: "@emnapi/core@npm:1.8.1" + dependencies: + "@emnapi/wasi-threads": "npm:1.1.0" + tslib: "npm:^2.4.0" + checksum: 10/904ea60c91fc7d8aeb4a8f2c433b8cfb47c50618f2b6f37429fc5093c857c6381c60628a5cfbc3a7b0d75b0a288f21d4ed2d4533e82f92c043801ef255fd6a5c + languageName: node + linkType: hard + +"@emnapi/runtime@npm:^1.4.3": + version: 1.8.1 + resolution: "@emnapi/runtime@npm:1.8.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10/26725e202d4baefdc4a6ba770f703dfc80825a27c27a08c22bac1e1ce6f8f75c47b4fe9424d9b63239463c33ef20b650f08d710da18dfa1164a95e5acb865dba + languageName: node + linkType: hard + +"@emnapi/wasi-threads@npm:1.1.0": + version: 1.1.0 + resolution: "@emnapi/wasi-threads@npm:1.1.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10/0d557e75262d2f4c95cb2a456ba0785ef61f919ce488c1d76e5e3acfd26e00c753ef928cd80068363e0c166ba8cc0141305daf0f81aad5afcd421f38f11e0f4e + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.1.2, @eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0": + version: 4.9.1 + resolution: "@eslint-community/eslint-utils@npm:4.9.1" + dependencies: + eslint-visitor-keys: "npm:^3.4.3" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: 10/863b5467868551c9ae34d03eefe634633d08f623fc7b19d860f8f26eb6f303c1a5934253124163bee96181e45ed22bf27473dccc295937c3078493a4a8c9eddd + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.11.0, @eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": + version: 4.12.2 + resolution: "@eslint-community/regexpp@npm:4.12.2" + checksum: 10/049b280fddf71dd325514e0a520024969431dc3a8b02fa77476e6820e9122f28ab4c9168c11821f91a27982d2453bcd7a66193356ea84e84fb7c8d793be1ba0c + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" + dependencies: + ajv: "npm:^6.12.4" + debug: "npm:^4.3.2" + espree: "npm:^9.6.0" + globals: "npm:^13.19.0" + ignore: "npm:^5.2.0" + import-fresh: "npm:^3.2.1" + js-yaml: "npm:^4.1.0" + minimatch: "npm:^3.1.2" + strip-json-comments: "npm:^3.1.1" + checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 + languageName: node + linkType: hard + +"@eslint/js@npm:8.57.1, @eslint/js@npm:^8.56.0": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10/7562b21be10c2adbfa4aa5bb2eccec2cb9ac649a3569560742202c8d1cb6c931ce634937a2f0f551e078403a1c1285d6c2c0aa345dafc986149665cd69fe8b59 + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10/524df31e61a85392a2433bf5d03164e03da26c03d009f27852e7dcfdafbc4a23f17f021dacf88e0a7a9fe04ca032017945d19b57a16e2676d9114c22a53a9d11 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10/e993950e346331e5a32eefb27948ecdee2a2c4ab3f072b8f566cd213ef485dd50a3ca497050608db91006f5479e43f91a439aef68d2a313bd3ded06909c7c5b3 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 + languageName: node + linkType: hard + +"@inquirer/external-editor@npm:^1.0.0": + version: 1.0.3 + resolution: "@inquirer/external-editor@npm:1.0.3" + dependencies: + chardet: "npm:^2.1.1" + iconv-lite: "npm:^0.7.0" + peerDependencies: + "@types/node": ">=18" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 10/c95d7237a885b32031715089f92820525731d4d3c2bd7afdb826307dc296cc2b39e7a644b0bb265441963348cca42e7785feb29c3aaf18fd2b63131769bf6587 + languageName: node + linkType: hard + +"@isaacs/balanced-match@npm:^4.0.1": + version: 4.0.1 + resolution: "@isaacs/balanced-match@npm:4.0.1" + checksum: 10/102fbc6d2c0d5edf8f6dbf2b3feb21695a21bc850f11bc47c4f06aa83bd8884fde3fe9d6d797d619901d96865fdcb4569ac2a54c937992c48885c5e3d9967fe8 + languageName: node + linkType: hard + +"@isaacs/brace-expansion@npm:^5.0.0": + version: 5.0.0 + resolution: "@isaacs/brace-expansion@npm:5.0.0" + dependencies: + "@isaacs/balanced-match": "npm:^4.0.1" + checksum: 10/cf3b7f206aff12128214a1df764ac8cdbc517c110db85249b945282407e3dfc5c6e66286383a7c9391a059fc8e6e6a8ca82262fc9d2590bd615376141fbebd2d + languageName: node + linkType: hard + +"@isaacs/fs-minipass@npm:^4.0.0": + version: 4.0.1 + resolution: "@isaacs/fs-minipass@npm:4.0.1" + dependencies: + minipass: "npm:^7.0.4" + checksum: 10/4412e9e6713c89c1e66d80bb0bb5a2a93192f10477623a27d08f228ba0316bb880affabc5bfe7f838f58a34d26c2c190da726e576cdfc18c49a72e89adabdcf5 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.5": + version: 0.3.13 + resolution: "@jridgewell/gen-mapping@npm:0.3.13" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + "@jridgewell/trace-mapping": "npm:^0.3.24" + checksum: 10/902f8261dcf450b4af7b93f9656918e02eec80a2169e155000cb2059f90113dd98f3ccf6efc6072cee1dd84cac48cade51da236972d942babc40e4c23da4d62a + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:^3.1.0": + version: 3.1.2 + resolution: "@jridgewell/resolve-uri@npm:3.1.2" + checksum: 10/97106439d750a409c22c8bff822d648f6a71f3aa9bc8e5129efdc36343cd3096ddc4eeb1c62d2fe48e9bdd4db37b05d4646a17114ecebd3bbcacfa2de51c3c1d + languageName: node + linkType: hard + +"@jridgewell/source-map@npm:^0.3.3": + version: 0.3.11 + resolution: "@jridgewell/source-map@npm:0.3.11" + dependencies: + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + checksum: 10/847f1177d3d133a0966ef61ca29abea0d79788a0652f90ee1893b3da968c190b7e31c3534cc53701179dd6b14601eef3d78644e727e05b1a08c68d281aedc4ba + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:^1.4.14, @jridgewell/sourcemap-codec@npm:^1.5.0, @jridgewell/sourcemap-codec@npm:^1.5.5": + version: 1.5.5 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.5" + checksum: 10/5d9d207b462c11e322d71911e55e21a4e2772f71ffe8d6f1221b8eb5ae6774458c1d242f897fb0814e8714ca9a6b498abfa74dfe4f434493342902b1a48b33a5 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25": + version: 0.3.31 + resolution: "@jridgewell/trace-mapping@npm:0.3.31" + dependencies: + "@jridgewell/resolve-uri": "npm:^3.1.0" + "@jridgewell/sourcemap-codec": "npm:^1.4.14" + checksum: 10/da0283270e691bdb5543806077548532791608e52386cfbbf3b9e8fb00457859d1bd01d512851161c886eb3a2f3ce6fd9bcf25db8edf3bddedd275bd4a88d606 + languageName: node + linkType: hard + +"@leichtgewicht/ip-codec@npm:^2.0.1": + version: 2.0.5 + resolution: "@leichtgewicht/ip-codec@npm:2.0.5" + checksum: 10/cb98c608392abe59457a14e00134e7dfa57c0c9b459871730cd4e907bb12b834cbd03e08ad8663fea9e486f260da7f1293ccd9af0376bf5524dd8536192f248c + languageName: node + linkType: hard + +"@napi-rs/wasm-runtime@npm:^0.2.11": + version: 0.2.12 + resolution: "@napi-rs/wasm-runtime@npm:0.2.12" + dependencies: + "@emnapi/core": "npm:^1.4.3" + "@emnapi/runtime": "npm:^1.4.3" + "@tybys/wasm-util": "npm:^0.10.0" + checksum: 10/5fd518182427980c28bc724adf06c5f32f9a8915763ef560b5f7d73607d30cd15ac86d0cbd2eb80d4cfab23fc80d0876d89ca36a9daadcb864bc00917c94187c + languageName: node + linkType: hard + +"@noble/curves@npm:^1.3.0, @noble/curves@npm:~1.9.2": + version: 1.9.7 + resolution: "@noble/curves@npm:1.9.7" + dependencies: + "@noble/hashes": "npm:1.8.0" + checksum: 10/3cfe2735ea94972988ca9e217e0ebb2044372a7160b2079bf885da789492a6291fc8bf76ca3d8bf8dee477847ee2d6fac267d1e6c4f555054059f5e8c4865d44 + languageName: node + linkType: hard + +"@noble/hashes@npm:1.8.0, @noble/hashes@npm:^1.3.3, @noble/hashes@npm:~1.8.0": + version: 1.8.0 + resolution: "@noble/hashes@npm:1.8.0" + checksum: 10/474b7f56bc6fb2d5b3a42132561e221b0ea4f91e590f4655312ca13667840896b34195e2b53b7f097ec080a1fdd3b58d902c2a8d0fbdf51d2e238b53808a177e + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": "npm:2.0.5" + run-parallel: "npm:^1.1.9" + checksum: 10/6ab2a9b8a1d67b067922c36f259e3b3dfd6b97b219c540877a4944549a4d49ea5ceba5663905ab5289682f1f3c15ff441d02f0447f620a42e1cb5e1937174d4b + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 10/012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": "npm:2.1.5" + fastq: "npm:^1.6.0" + checksum: 10/40033e33e96e97d77fba5a238e4bba4487b8284678906a9f616b5579ddaf868a18874c0054a75402c9fbaaa033a25ceae093af58c9c30278e35c23c9479e79b0 + languageName: node + linkType: hard + +"@nolyfill/is-core-module@npm:1.0.39": + version: 1.0.39 + resolution: "@nolyfill/is-core-module@npm:1.0.39" + checksum: 10/0d6e098b871eca71d875651288e1f0fa770a63478b0b50479c99dc760c64175a56b5b04f58d5581bbcc6b552b8191ab415eada093d8df9597ab3423c8cac1815 + languageName: node + linkType: hard + +"@npmcli/agent@npm:^4.0.0": + version: 4.0.0 + resolution: "@npmcli/agent@npm:4.0.0" + dependencies: + agent-base: "npm:^7.1.0" + http-proxy-agent: "npm:^7.0.0" + https-proxy-agent: "npm:^7.0.1" + lru-cache: "npm:^11.2.1" + socks-proxy-agent: "npm:^8.0.3" + checksum: 10/1a81573becc60515031accc696e6405e9b894e65c12b98ef4aeee03b5617c41948633159dbf6caf5dde5b47367eeb749bdc7b7dfb21960930a9060a935c6f636 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^5.0.0": + version: 5.0.0 + resolution: "@npmcli/fs@npm:5.0.0" + dependencies: + semver: "npm:^7.3.5" + checksum: 10/4935c7719d17830d0f9fa46c50be17b2a3c945cec61760f6d0909bce47677c42e1810ca673305890f9e84f008ec4d8e841182f371e42100a8159d15f22249208 + languageName: node + linkType: hard + +"@octokit/auth-token@npm:^3.0.0": + version: 3.0.4 + resolution: "@octokit/auth-token@npm:3.0.4" + checksum: 10/8e21e567e38ba307fa30497ad77801135e25c328ce8b363c1622a4afb408a7d3315d54082527b38ecd5b3a5449680d89cfca9cb10c516cacf3dfa01e4c8b7195 + languageName: node + linkType: hard + +"@octokit/core@npm:^4.2.1": + version: 4.2.4 + resolution: "@octokit/core@npm:4.2.4" + dependencies: + "@octokit/auth-token": "npm:^3.0.0" + "@octokit/graphql": "npm:^5.0.0" + "@octokit/request": "npm:^6.0.0" + "@octokit/request-error": "npm:^3.0.0" + "@octokit/types": "npm:^9.0.0" + before-after-hook: "npm:^2.2.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/53ba8f990ce2c0ea4583d8c142377770c3ac8fb9221b563d82dbca9d642f19be49607b9e9b472767075e4afa16c2203339680d75f3ebf5ad853af2646e8604ca + languageName: node + linkType: hard + +"@octokit/endpoint@npm:^7.0.0": + version: 7.0.6 + resolution: "@octokit/endpoint@npm:7.0.6" + dependencies: + "@octokit/types": "npm:^9.0.0" + is-plain-object: "npm:^5.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/e8b9cc09aa8306d63cb0e5b65ac5d29fc421522c92810a9d70bbfef997bc8750fc339f1f4f60e1604c22db77457ea493c51849b0d61cbfcb8655b0c4f2640e4b + languageName: node + linkType: hard + +"@octokit/graphql@npm:^5.0.0": + version: 5.0.6 + resolution: "@octokit/graphql@npm:5.0.6" + dependencies: + "@octokit/request": "npm:^6.0.0" + "@octokit/types": "npm:^9.0.0" + universal-user-agent: "npm:^6.0.0" + checksum: 10/6014690d184d7b2bfb56ab9be5ddbe4f5c77aa6031d71ec2caf5f56cbd32f4a5b0601049cef7dce1ca8010b89a9fc8bb07ce7833e6213c5bc77b7a564b1f40b9 + languageName: node + linkType: hard + +"@octokit/openapi-types@npm:^18.0.0": + version: 18.1.1 + resolution: "@octokit/openapi-types@npm:18.1.1" + checksum: 10/bd2920a238f74c6ccc1e2ee916bd3e17adeeef3bbb1726f821b8722dceaeff5ea2786b3170cc25dd51775cb9179d3cdf448a3526e70b8a1fc21cdd8aa52e5d4c + languageName: node + linkType: hard + +"@octokit/plugin-paginate-rest@npm:^6.1.2": + version: 6.1.2 + resolution: "@octokit/plugin-paginate-rest@npm:6.1.2" + dependencies: + "@octokit/tsconfig": "npm:^1.0.2" + "@octokit/types": "npm:^9.2.3" + peerDependencies: + "@octokit/core": ">=4" + checksum: 10/6d5b97fb44a3ed8ff25196b56ebe7bdac64f4023c165792f77938c77876934c01b46e79b83712e26cd3f2f9e36e0735bd3c292a37e8060a2b259f3a6456116dc + languageName: node + linkType: hard + +"@octokit/plugin-request-log@npm:^1.0.4": + version: 1.0.4 + resolution: "@octokit/plugin-request-log@npm:1.0.4" + peerDependencies: + "@octokit/core": ">=3" + checksum: 10/2086db00056aee0f8ebd79797b5b57149ae1014e757ea08985b71eec8c3d85dbb54533f4fd34b6b9ecaa760904ae6a7536be27d71e50a3782ab47809094bfc0c + languageName: node + linkType: hard + +"@octokit/plugin-rest-endpoint-methods@npm:^7.1.2": + version: 7.2.3 + resolution: "@octokit/plugin-rest-endpoint-methods@npm:7.2.3" + dependencies: + "@octokit/types": "npm:^10.0.0" + peerDependencies: + "@octokit/core": ">=3" + checksum: 10/59fb4e786ab85a5f3ad701e1b193dd3113833cfd1f2657cb06864e45b80a53a1f9ba6c3c66a855c4bf2593c539299fdfe51db639e3a87dc16ffa7602fe9bb999 + languageName: node + linkType: hard + +"@octokit/request-error@npm:^3.0.0": + version: 3.0.3 + resolution: "@octokit/request-error@npm:3.0.3" + dependencies: + "@octokit/types": "npm:^9.0.0" + deprecation: "npm:^2.0.0" + once: "npm:^1.4.0" + checksum: 10/5db0b514732686b627e6ed9ef1ccdbc10501f1b271a9b31f784783f01beee70083d7edcfeb35fbd7e569fa31fdd6762b1ff6b46101700d2d97e7e48e749520d0 + languageName: node + linkType: hard + +"@octokit/request@npm:^6.0.0": + version: 6.2.8 + resolution: "@octokit/request@npm:6.2.8" + dependencies: + "@octokit/endpoint": "npm:^7.0.0" + "@octokit/request-error": "npm:^3.0.0" + "@octokit/types": "npm:^9.0.0" + is-plain-object: "npm:^5.0.0" + node-fetch: "npm:^2.6.7" + universal-user-agent: "npm:^6.0.0" + checksum: 10/47188fa08d28e5e9e6a22f84058fc13f108cdcb68aea97686da4718d32d3ddda8fde8a5c9f189057e3d466560b67c2305a2e343d1eed9517b47a13f68cb329e7 + languageName: node + linkType: hard + +"@octokit/rest@npm:^19.0.5": + version: 19.0.13 + resolution: "@octokit/rest@npm:19.0.13" + dependencies: + "@octokit/core": "npm:^4.2.1" + "@octokit/plugin-paginate-rest": "npm:^6.1.2" + "@octokit/plugin-request-log": "npm:^1.0.4" + "@octokit/plugin-rest-endpoint-methods": "npm:^7.1.2" + checksum: 10/7fbee09a2f832be6802a026713aa93cbf82dcfc8103d68c585b23214caf0accfced6efe2c49169158d39875d5c5ad3994b83b02e26537b75687ac16d0572c212 + languageName: node + linkType: hard + +"@octokit/tsconfig@npm:^1.0.2": + version: 1.0.2 + resolution: "@octokit/tsconfig@npm:1.0.2" + checksum: 10/74d56f3e9f326a8dd63700e9a51a7c75487180629c7a68bbafee97c612fbf57af8347369bfa6610b9268a3e8b833c19c1e4beb03f26db9a9dce31f6f7a19b5b1 + languageName: node + linkType: hard + +"@octokit/types@npm:^10.0.0": + version: 10.0.0 + resolution: "@octokit/types@npm:10.0.0" + dependencies: + "@octokit/openapi-types": "npm:^18.0.0" + checksum: 10/6345e605d30c99639a0207cfc7bea5bf29d9007e93cdcd78be3f8218830a462a0f0fbb976f5c2d9ebe70ee2aa33d1b72243cdb955478581ee2cead059ac4f030 + languageName: node + linkType: hard + +"@octokit/types@npm:^9.0.0, @octokit/types@npm:^9.2.3": + version: 9.3.2 + resolution: "@octokit/types@npm:9.3.2" + dependencies: + "@octokit/openapi-types": "npm:^18.0.0" + checksum: 10/4bcd18850d5397e5835f5686be88ad95e5d7c23e7d53f898b82a8ca5fc1f6a7b53816ef6f9f3b7a06799c0b030d259bf2bd50a258a1656df2dc7f3e533e334f8 + languageName: node + linkType: hard + +"@pezkuwi/api-augment@npm:16.5.4, @pezkuwi/api-augment@workspace:packages/api-augment": + version: 0.0.0-use.local + resolution: "@pezkuwi/api-augment@workspace:packages/api-augment" + dependencies: + "@pezkuwi/api-base": "npm:16.5.4" + "@pezkuwi/rpc-augment": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-augment": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/api-base@npm:16.5.4, @pezkuwi/api-base@workspace:packages/api-base": + version: 0.0.0-use.local + resolution: "@pezkuwi/api-base@workspace:packages/api-base" + dependencies: + "@pezkuwi/rpc-core": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/api-contract@workspace:packages/api-contract": + version: 0.0.0-use.local + resolution: "@pezkuwi/api-contract@workspace:packages/api-contract" + dependencies: + "@pezkuwi/api": "npm:16.5.4" + "@pezkuwi/api-augment": "npm:16.5.4" + "@pezkuwi/keyring": "npm:^14.0.1" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/types-create": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/api-derive@npm:16.5.4, @pezkuwi/api-derive@workspace:packages/api-derive": + version: 0.0.0-use.local + resolution: "@pezkuwi/api-derive@workspace:packages/api-derive" + dependencies: + "@pezkuwi/api": "npm:16.5.4" + "@pezkuwi/api-augment": "npm:16.5.4" + "@pezkuwi/api-base": "npm:16.5.4" + "@pezkuwi/rpc-augment": "npm:16.5.4" + "@pezkuwi/rpc-core": "npm:16.5.4" + "@pezkuwi/rpc-provider": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/api@npm:16.5.4, @pezkuwi/api@workspace:packages/api": + version: 0.0.0-use.local + resolution: "@pezkuwi/api@workspace:packages/api" + dependencies: + "@pezkuwi/api-augment": "npm:16.5.4" + "@pezkuwi/api-base": "npm:16.5.4" + "@pezkuwi/api-derive": "npm:16.5.4" + "@pezkuwi/keyring": "npm:^14.0.1" + "@pezkuwi/rpc-augment": "npm:16.5.4" + "@pezkuwi/rpc-core": "npm:16.5.4" + "@pezkuwi/rpc-provider": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-augment": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/types-create": "npm:16.5.4" + "@pezkuwi/types-known": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + eventemitter3: "npm:^5.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/dev-test@npm:0.85.1": + version: 0.85.1 + resolution: "@pezkuwi/dev-test@npm:0.85.1" + dependencies: + jsdom: "npm:^24.0.0" + tslib: "npm:^2.7.0" + checksum: 10/98253c862a0db3f59b10d761a9eba6ca96cac39f9608674de0ab6d8ee6d76c9a25d92d5ea6c4a003c86d36ab9fcda18e7c10ffd6155256a0e8de25d3a53ab997 + languageName: node + linkType: hard + +"@pezkuwi/dev-ts@npm:0.85.1": + version: 0.85.1 + resolution: "@pezkuwi/dev-ts@npm:0.85.1" + dependencies: + json5: "npm:^2.2.3" + tslib: "npm:^2.7.0" + typescript: "npm:^5.5.4" + checksum: 10/badcf660f6c94ade4f4c56afff4c71f6bcee0790c5c666214a1dedbc686940e8784bd1d29d4a146c3666183212983f5aa0bfa744aa5b59acaedc6487cd88c327 + languageName: node + linkType: hard + +"@pezkuwi/dev@npm:0.85.1": + version: 0.85.1 + resolution: "@pezkuwi/dev@npm:0.85.1" + dependencies: + "@eslint/js": "npm:^8.56.0" + "@pezkuwi/dev-test": "npm:^0.83.3" + "@pezkuwi/dev-ts": "npm:^0.83.3" + "@rollup/plugin-alias": "npm:^5.1.1" + "@rollup/plugin-commonjs": "npm:^25.0.8" + "@rollup/plugin-dynamic-import-vars": "npm:^2.1.5" + "@rollup/plugin-inject": "npm:^5.0.5" + "@rollup/plugin-json": "npm:^6.1.0" + "@rollup/plugin-node-resolve": "npm:^15.3.1" + "@tsconfig/strictest": "npm:^2.0.2" + "@typescript-eslint/eslint-plugin": "npm:^6.19.1" + "@typescript-eslint/parser": "npm:^6.19.1" + eslint: "npm:^8.56.0" + eslint-config-standard: "npm:^17.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-import-resolver-typescript: "npm:^3.6.1" + eslint-plugin-deprecation: "npm:^2.0.0" + eslint-plugin-header: "npm:^3.1.1" + eslint-plugin-import: "npm:^2.29.1" + eslint-plugin-import-newlines: "npm:^1.3.4" + eslint-plugin-jest: "npm:^27.6.3" + eslint-plugin-n: "npm:^16.6.2" + eslint-plugin-promise: "npm:^6.1.1" + eslint-plugin-react: "npm:^7.33.2" + eslint-plugin-react-hooks: "npm:^4.6.0" + eslint-plugin-simple-import-sort: "npm:^10.0.0" + eslint-plugin-sort-destructure-keys: "npm:^1.5.0" + espree: "npm:^9.6.1" + gh-pages: "npm:^6.1.1" + gh-release: "npm:^7.0.2" + globals: "npm:^13.24.0" + json5: "npm:^2.2.3" + madge: "npm:^6.1.0" + rollup: "npm:^4.9.6" + rollup-plugin-cleanup: "npm:^3.2.1" + tslib: "npm:^2.7.0" + typescript: "npm:^5.5.4" + webpack: "npm:^5.89.0" + webpack-cli: "npm:^5.1.4" + webpack-dev-server: "npm:^4.15.1" + webpack-merge: "npm:^5.10.0" + webpack-subresource-integrity: "npm:^5.2.0-rc.1" + yargs: "npm:^17.7.2" + bin: + pezkuwi-ci-ghact-build: scripts/pezkuwi-ci-ghact-build.mjs + pezkuwi-ci-ghact-docs: scripts/pezkuwi-ci-ghact-docs.mjs + pezkuwi-ci-ghpages-force: scripts/pezkuwi-ci-ghpages-force.mjs + pezkuwi-dev-build-docs: scripts/pezkuwi-dev-build-docs.mjs + pezkuwi-dev-build-ts: scripts/pezkuwi-dev-build-ts.mjs + pezkuwi-dev-circular: scripts/pezkuwi-dev-circular.mjs + pezkuwi-dev-clean-build: scripts/pezkuwi-dev-clean-build.mjs + pezkuwi-dev-contrib: scripts/pezkuwi-dev-contrib.mjs + pezkuwi-dev-copy-dir: scripts/pezkuwi-dev-copy-dir.mjs + pezkuwi-dev-copy-to: scripts/pezkuwi-dev-copy-to.mjs + pezkuwi-dev-deno-map: scripts/pezkuwi-dev-deno-map.mjs + pezkuwi-dev-run-lint: scripts/pezkuwi-dev-run-lint.mjs + pezkuwi-dev-run-node-ts: scripts/pezkuwi-dev-run-node-ts.mjs + pezkuwi-dev-run-test: scripts/pezkuwi-dev-run-test.mjs + pezkuwi-dev-version: scripts/pezkuwi-dev-version.mjs + pezkuwi-dev-yarn-only: scripts/pezkuwi-dev-yarn-only.mjs + pezkuwi-exec-eslint: scripts/pezkuwi-exec-eslint.mjs + pezkuwi-exec-ghpages: scripts/pezkuwi-exec-ghpages.mjs + pezkuwi-exec-ghrelease: scripts/pezkuwi-exec-ghrelease.mjs + pezkuwi-exec-node-test: scripts/pezkuwi-exec-node-test.mjs + pezkuwi-exec-rollup: scripts/pezkuwi-exec-rollup.mjs + pezkuwi-exec-tsc: scripts/pezkuwi-exec-tsc.mjs + pezkuwi-exec-webpack: scripts/pezkuwi-exec-webpack.mjs + checksum: 10/c8187ee4ea3e88b3f15b9a2852a610008877fd5fb813bf2d449f6d660a6bf142387964d8c8ca1e02d5feb6370ba872443feddc4119e253c46b38d200a76a928d + languageName: node + linkType: hard + +"@pezkuwi/keyring@npm:^14.0.1": + version: 14.0.6 + resolution: "@pezkuwi/keyring@npm:14.0.6" + dependencies: + "@pezkuwi/util": "npm:14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.2" + tslib: "npm:^2.8.0" + peerDependencies: + "@pezkuwi/util": 14.0.1 + "@pezkuwi/util-crypto": ^14.0.2 + checksum: 10/5028370771818d89b909c0bbd4fbbb0f8139e3655d7d07192f29164035630dc8f023bae162b16402c9ceba733cd923da4339d508ec59a5309d7f4adcfff3d591 + languageName: node + linkType: hard + +"@pezkuwi/networks@npm:14.0.5, @pezkuwi/networks@npm:^14.0.1": + version: 14.0.5 + resolution: "@pezkuwi/networks@npm:14.0.5" + dependencies: + "@pezkuwi/util": "npm:14.0.5" + "@substrate/ss58-registry": "npm:^1.51.0" + tslib: "npm:^2.8.0" + checksum: 10/2d11606e87ee30e4cf58984d372e1c6f56ed01757fe5a4f23f2d346cdbf5c551cc845315a8bdaf8046222cdf739d5129cfffe7e293c685baffbf02a1075eefd0 + languageName: node + linkType: hard + +"@pezkuwi/rpc-augment@npm:16.5.4, @pezkuwi/rpc-augment@workspace:packages/rpc-augment": + version: 0.0.0-use.local + resolution: "@pezkuwi/rpc-augment@workspace:packages/rpc-augment" + dependencies: + "@pezkuwi/rpc-core": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/rpc-core@npm:16.5.4, @pezkuwi/rpc-core@workspace:packages/rpc-core": + version: 0.0.0-use.local + resolution: "@pezkuwi/rpc-core@workspace:packages/rpc-core" + dependencies: + "@pezkuwi/keyring": "npm:^14.0.1" + "@pezkuwi/rpc-augment": "npm:16.5.4" + "@pezkuwi/rpc-provider": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/rpc-provider@npm:16.5.4, @pezkuwi/rpc-provider@workspace:packages/rpc-provider": + version: 0.0.0-use.local + resolution: "@pezkuwi/rpc-provider@workspace:packages/rpc-provider" + dependencies: + "@bizinikiwi/connect": "npm:2.1.9" + "@pezkuwi/keyring": "npm:^14.0.1" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + "@pezkuwi/x-fetch": "npm:^14.0.1" + "@pezkuwi/x-global": "npm:^14.0.1" + "@pezkuwi/x-ws": "npm:^14.0.1" + eventemitter3: "npm:^5.0.1" + mock-socket: "npm:^9.3.1" + nock: "npm:^13.5.5" + tslib: "npm:^2.8.1" + dependenciesMeta: + "@bizinikiwi/connect": + optional: true + languageName: unknown + linkType: soft + +"@pezkuwi/typegen@npm:^16.5.4, @pezkuwi/typegen@workspace:packages/typegen": + version: 0.0.0-use.local + resolution: "@pezkuwi/typegen@workspace:packages/typegen" + dependencies: + "@pezkuwi/api": "npm:16.5.4" + "@pezkuwi/api-augment": "npm:16.5.4" + "@pezkuwi/api-derive": "npm:16.5.4" + "@pezkuwi/rpc-augment": "npm:16.5.4" + "@pezkuwi/rpc-provider": "npm:16.5.4" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-augment": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/types-create": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + "@pezkuwi/x-ws": "npm:^14.0.1" + "@types/yargs": "npm:^17.0.33" + comment-parser: "npm:^1.4.1" + handlebars: "npm:^4.7.8" + tslib: "npm:^2.8.1" + yargs: "npm:^17.7.2" + bin: + pezkuwi-types-chain-info: ./scripts/pezkuwi-types-chain-info.mjs + pezkuwi-types-from-chain: ./scripts/pezkuwi-types-from-chain.mjs + pezkuwi-types-from-defs: ./scripts/pezkuwi-types-from-defs.mjs + pezkuwi-types-internal-interfaces: ./scripts/pezkuwi-types-internal-interfaces.mjs + pezkuwi-types-internal-metadata: ./scripts/pezkuwi-types-internal-metadata.mjs + languageName: unknown + linkType: soft + +"@pezkuwi/types-augment@npm:16.5.4, @pezkuwi/types-augment@workspace:packages/types-augment": + version: 0.0.0-use.local + resolution: "@pezkuwi/types-augment@workspace:packages/types-augment" + dependencies: + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/types-codec@npm:16.5.4, @pezkuwi/types-codec@workspace:packages/types-codec": + version: 0.0.0-use.local + resolution: "@pezkuwi/types-codec@workspace:packages/types-codec" + dependencies: + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-augment": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + "@pezkuwi/x-bigint": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/types-create@npm:16.5.4, @pezkuwi/types-create@workspace:packages/types-create": + version: 0.0.0-use.local + resolution: "@pezkuwi/types-create@workspace:packages/types-create" + dependencies: + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/types-known@npm:16.5.4, @pezkuwi/types-known@workspace:packages/types-known": + version: 0.0.0-use.local + resolution: "@pezkuwi/types-known@workspace:packages/types-known" + dependencies: + "@pezkuwi/api": "npm:16.5.4" + "@pezkuwi/networks": "npm:^14.0.1" + "@pezkuwi/types": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/types-create": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/types-support@npm:16.5.4, @pezkuwi/types-support@workspace:packages/types-support": + version: 0.0.0-use.local + resolution: "@pezkuwi/types-support@workspace:packages/types-support" + dependencies: + "@pezkuwi/util": "npm:^14.0.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/types@npm:16.5.4, @pezkuwi/types@workspace:packages/types": + version: 0.0.0-use.local + resolution: "@pezkuwi/types@workspace:packages/types" + dependencies: + "@pezkuwi/keyring": "npm:^14.0.1" + "@pezkuwi/types-augment": "npm:16.5.4" + "@pezkuwi/types-codec": "npm:16.5.4" + "@pezkuwi/types-create": "npm:16.5.4" + "@pezkuwi/types-support": "npm:16.5.4" + "@pezkuwi/util": "npm:^14.0.1" + "@pezkuwi/util-crypto": "npm:^14.0.1" + rxjs: "npm:^7.8.1" + tslib: "npm:^2.8.1" + languageName: unknown + linkType: soft + +"@pezkuwi/util-crypto@npm:^14.0.1, @pezkuwi/util-crypto@npm:^14.0.2": + version: 14.0.5 + resolution: "@pezkuwi/util-crypto@npm:14.0.5" + dependencies: + "@noble/curves": "npm:^1.3.0" + "@noble/hashes": "npm:^1.3.3" + "@pezkuwi/networks": "npm:14.0.5" + "@pezkuwi/util": "npm:14.0.5" + "@pezkuwi/wasm-crypto": "npm:^7.5.3" + "@pezkuwi/wasm-util": "npm:^7.5.3" + "@pezkuwi/x-bigint": "npm:14.0.5" + "@pezkuwi/x-randomvalues": "npm:14.0.5" + "@scure/base": "npm:^1.1.7" + "@scure/sr25519": "npm:^0.2.0" + tslib: "npm:^2.8.0" + peerDependencies: + "@pezkuwi/util": 14.0.5 + checksum: 10/f86b117544798cd0fa6f5e14bd1d76b0fbc19390717cddd52b9bd3b590d819dd26ab04d469ad5af5ab697201cdd83122669ed2e536757b9091848b0dd8d2a45b + languageName: node + linkType: hard + +"@pezkuwi/util@npm:14.0.1": + version: 14.0.1 + resolution: "@pezkuwi/util@npm:14.0.1" + dependencies: + "@pezkuwi/x-bigint": "npm:14.0.1" + "@pezkuwi/x-global": "npm:14.0.1" + "@pezkuwi/x-textdecoder": "npm:14.0.1" + "@pezkuwi/x-textencoder": "npm:14.0.1" + "@types/bn.js": "npm:^5.1.6" + bn.js: "npm:^5.2.1" + tslib: "npm:^2.8.0" + checksum: 10/3077ace69ce058aea2ff55e81c943298ebb616316977fe2a618d534c26926cd53188ecaf927367845ba180dc6013102460e574335b4a27b1438527c967f83c4d + languageName: node + linkType: hard + +"@pezkuwi/util@npm:14.0.5, @pezkuwi/util@npm:^14.0.1": + version: 14.0.5 + resolution: "@pezkuwi/util@npm:14.0.5" + dependencies: + "@pezkuwi/x-bigint": "npm:14.0.5" + "@pezkuwi/x-global": "npm:14.0.5" + "@pezkuwi/x-textdecoder": "npm:14.0.5" + "@pezkuwi/x-textencoder": "npm:14.0.5" + "@types/bn.js": "npm:^5.1.6" + bn.js: "npm:^5.2.1" + tslib: "npm:^2.8.0" + checksum: 10/13a091b45928456f59484de923679a86b4088369366943145ad8b7f2272af128a419e40b1d9d7a03b2a5fbb30969919d6dc16c991feb120fd77a654a38a63ded + languageName: node + linkType: hard + +"@pezkuwi/wasm-bridge@npm:7.5.4": + version: 7.5.4 + resolution: "@pezkuwi/wasm-bridge@npm:7.5.4" + dependencies: + "@pezkuwi/wasm-util": "npm:7.5.3" + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + "@pezkuwi/x-randomvalues": "*" + checksum: 10/04ee72d6306175ac7d3612d06af1cbdbe3c6c504dd95deee05f46b3de818125420b62e047aeb62165a5783d2e43b50a11843e5ac58eeffad32bee539fd38d068 + languageName: node + linkType: hard + +"@pezkuwi/wasm-crypto-asmjs@npm:7.5.4": + version: 7.5.4 + resolution: "@pezkuwi/wasm-crypto-asmjs@npm:7.5.4" + dependencies: + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + checksum: 10/e6b7bf038f6dd87b26ee1e2dbe9545128c7ddc7473cddf64f836ab6d7f91b2974c9b8c6b26abb373f5bec7960f0686cda101d52c81ea1ffc19f17af00688e5fa + languageName: node + linkType: hard + +"@pezkuwi/wasm-crypto-init@npm:7.5.4": + version: 7.5.4 + resolution: "@pezkuwi/wasm-crypto-init@npm:7.5.4" + dependencies: + "@pezkuwi/wasm-bridge": "npm:7.5.4" + "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.4" + "@pezkuwi/wasm-crypto-wasm": "npm:7.5.4" + "@pezkuwi/wasm-util": "npm:7.5.4" + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + "@pezkuwi/x-randomvalues": "*" + checksum: 10/6a3c8526f8d1272c4c9ff5b6d38016bdeac0146885d0521955cbd92d5b82896f9084dd15680c679dea7fd9926c01f4f1489ef62f0723a3e3393d90a728a7dcfb + languageName: node + linkType: hard + +"@pezkuwi/wasm-crypto-wasm@npm:7.5.4": + version: 7.5.4 + resolution: "@pezkuwi/wasm-crypto-wasm@npm:7.5.4" + dependencies: + "@pezkuwi/wasm-util": "npm:7.5.4" + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + checksum: 10/682967e4eea14c1ce895ae49a6de28e5719b19801db744bfadcb05964ce849169e41fa2c779d0c1b0fb7c41fed463bd7030904af2a6f91c5d4815dacb44bf217 + languageName: node + linkType: hard + +"@pezkuwi/wasm-crypto@npm:^7.5.3": + version: 7.5.4 + resolution: "@pezkuwi/wasm-crypto@npm:7.5.4" + dependencies: + "@pezkuwi/wasm-bridge": "npm:7.5.4" + "@pezkuwi/wasm-crypto-asmjs": "npm:7.5.4" + "@pezkuwi/wasm-crypto-init": "npm:7.5.4" + "@pezkuwi/wasm-crypto-wasm": "npm:7.5.4" + "@pezkuwi/wasm-util": "npm:7.5.4" + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + "@pezkuwi/x-randomvalues": "*" + checksum: 10/56033fd9dbba804425378fd564079d81a13d03593bb0a74a3b814fd5ee6fccaffdcc3a44d278bbd34eb29c75b74c5c5ef8d787b0647d0a9240bac6e7dd19250c + languageName: node + linkType: hard + +"@pezkuwi/wasm-util@npm:7.5.3": + version: 7.5.3 + resolution: "@pezkuwi/wasm-util@npm:7.5.3" + dependencies: + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + checksum: 10/61e195ee2350837133565a82d20bea2924a9830b48f241c1bbbd367eedf86a123e358724a31da54db778f9ca0803642166dfeb01d6bbe61691c02a082c1c302e + languageName: node + linkType: hard + +"@pezkuwi/wasm-util@npm:7.5.4, @pezkuwi/wasm-util@npm:^7.5.3": + version: 7.5.4 + resolution: "@pezkuwi/wasm-util@npm:7.5.4" + dependencies: + tslib: "npm:^2.7.0" + peerDependencies: + "@pezkuwi/util": "*" + checksum: 10/fb4cdfafdf27cf6be95247fe58bd2fb22108e554ee1231ad6e202824ff0e8fb2fe80764679e6bb8f9f0a768feb163c6bd3339a20be26b6d0baae1bad5eef2ac5 + languageName: node + linkType: hard + +"@pezkuwi/x-bigint@npm:14.0.1": + version: 14.0.1 + resolution: "@pezkuwi/x-bigint@npm:14.0.1" + dependencies: + "@pezkuwi/x-global": "npm:14.0.1" + tslib: "npm:^2.8.0" + checksum: 10/bd47dfdab154720c6bc272bc7028b9c9d0f439ebd61dd019bed59900ab0adc4d721827d692a0710a1464eda1724f3bfed2a12b69ecbd1613aea851483f39ce60 + languageName: node + linkType: hard + +"@pezkuwi/x-bigint@npm:14.0.5, @pezkuwi/x-bigint@npm:^14.0.1": + version: 14.0.5 + resolution: "@pezkuwi/x-bigint@npm:14.0.5" + dependencies: + "@pezkuwi/x-global": "npm:14.0.5" + tslib: "npm:^2.8.0" + checksum: 10/d96f085883b12dc1596722ff85a4c9975f93fbf67c394592b779e7a8d3df32768f9d384159b247f06e3584db028b9affef0ff53d7084e3371540901efaa18c06 + languageName: node + linkType: hard + +"@pezkuwi/x-fetch@npm:^14.0.1": + version: 14.0.5 + resolution: "@pezkuwi/x-fetch@npm:14.0.5" + dependencies: + "@pezkuwi/x-global": "npm:14.0.5" + node-fetch: "npm:^3.3.2" + tslib: "npm:^2.8.0" + checksum: 10/8c532cc9183018a76b98fee5b0c2e346fe0ffdac2d3c5213b10fccfb3adbd2a2cd59b628fb1d9112fad2d05ec9c81b1fae71b72cb4a648292ba9c1df3531834f + languageName: node + linkType: hard + +"@pezkuwi/x-global@npm:14.0.1": + version: 14.0.1 + resolution: "@pezkuwi/x-global@npm:14.0.1" + dependencies: + tslib: "npm:^2.8.0" + checksum: 10/7ecfa21346d36c1cae7fd5b1a9f9c23456de92f4319835e7507085df17896bbe6a51d681ec2f20ad4dd0452aa72ad25128a4bf3bc73dac5b2e85a8d85b17acaf + languageName: node + linkType: hard + +"@pezkuwi/x-global@npm:14.0.5, @pezkuwi/x-global@npm:^14.0.1": + version: 14.0.5 + resolution: "@pezkuwi/x-global@npm:14.0.5" + dependencies: + tslib: "npm:^2.8.0" + checksum: 10/26900fd74047648ab40ca08de3f1534f31fe1e59f67675836b1b94a785f95adb99ee3fe5717a4eab9e43d229717154b507748d1209663d04cd878915c7f53182 + languageName: node + linkType: hard + +"@pezkuwi/x-randomvalues@npm:14.0.5": + version: 14.0.5 + resolution: "@pezkuwi/x-randomvalues@npm:14.0.5" + dependencies: + "@pezkuwi/x-global": "npm:14.0.5" + tslib: "npm:^2.8.0" + peerDependencies: + "@pezkuwi/util": 14.0.5 + "@pezkuwi/wasm-util": "*" + checksum: 10/9a811806153374d7b8a5d4bf3e6a766ad4de08d9d8d7f944698e6f75ee9eb3a64f851c4d67b574a2ae41025d22181af4a869fb864564d52c63e83f966684c1d2 + languageName: node + linkType: hard + +"@pezkuwi/x-textdecoder@npm:14.0.1": + version: 14.0.1 + resolution: "@pezkuwi/x-textdecoder@npm:14.0.1" + dependencies: + "@pezkuwi/x-global": "npm:14.0.1" + tslib: "npm:^2.8.0" + checksum: 10/9b864d44dde25b2ac5c3c2cb29c3b21b1cf8771dbc0bdbc31b341c1b3d8cd24002983545983148c4301834e6f41aac31f4d23951f1005e85f39cfcf4a3a8986e + languageName: node + linkType: hard + +"@pezkuwi/x-textdecoder@npm:14.0.5": + version: 14.0.5 + resolution: "@pezkuwi/x-textdecoder@npm:14.0.5" + dependencies: + "@pezkuwi/x-global": "npm:14.0.5" + tslib: "npm:^2.8.0" + checksum: 10/48e74787f6cf2e232014b0cd005c865958333af88273766887dd71a072deb6216c4c2d771c2515bfc7bcb3a6eb98ef947f0c289047bdea53f660cbef0fad1579 + languageName: node + linkType: hard + +"@pezkuwi/x-textencoder@npm:14.0.1": + version: 14.0.1 + resolution: "@pezkuwi/x-textencoder@npm:14.0.1" + dependencies: + "@pezkuwi/x-global": "npm:14.0.1" + tslib: "npm:^2.8.0" + checksum: 10/161c11f90aa0fe42d1f24145612e3c77960a3d0debd7425ce925ec75e1a8208df514dba36fb8e91231acde3375a20a0d8eef33362f86fc778df729a5288aad1f + languageName: node + linkType: hard + +"@pezkuwi/x-textencoder@npm:14.0.5": + version: 14.0.5 + resolution: "@pezkuwi/x-textencoder@npm:14.0.5" + dependencies: + "@pezkuwi/x-global": "npm:14.0.5" + tslib: "npm:^2.8.0" + checksum: 10/59687b490072b6921830c52dcf2586cfc53d5ca61f470dfaacba0c4a543c14c4bc7075ca9bf9254c9b85bf12efd2d37f44e21ae2335c78a821e78590a29b1c47 + languageName: node + linkType: hard + +"@pezkuwi/x-ws@npm:^14.0.1": + version: 14.0.5 + resolution: "@pezkuwi/x-ws@npm:14.0.5" + dependencies: + "@pezkuwi/x-global": "npm:14.0.5" + tslib: "npm:^2.8.0" + ws: "npm:^8.18.0" + checksum: 10/9170dfc424324638215a0da39eceea3c4a7595dae5a88d669f962cdc9689bf4be6e23c3de60ed3f3a2599df4ea6c87fcc4f9fff83fa290328d57f57fb9abd456 + languageName: node + linkType: hard + +"@rollup/plugin-alias@npm:^5.1.1": + version: 5.1.1 + resolution: "@rollup/plugin-alias@npm:5.1.1" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/1f1ab178aa2726c81e2ae1709f73b3688491f14655b97c54d43bea35ac3f783f8855d701d1e5eac234e3ffe89fef56ce975726b036a97049fefa9b514686e55c + languageName: node + linkType: hard + +"@rollup/plugin-commonjs@npm:^25.0.8": + version: 25.0.8 + resolution: "@rollup/plugin-commonjs@npm:25.0.8" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + commondir: "npm:^1.0.1" + estree-walker: "npm:^2.0.2" + glob: "npm:^8.0.3" + is-reference: "npm:1.2.1" + magic-string: "npm:^0.30.3" + peerDependencies: + rollup: ^2.68.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/2d6190450bdf2ca2c4ab71a35eb5bf245349ad7dab6fc84a3a4e65147fd694be816e3c31b575c9e55a70a2f82132b79092d1ee04358e6e504beb31a8c82178bb + languageName: node + linkType: hard + +"@rollup/plugin-dynamic-import-vars@npm:^2.1.5": + version: 2.1.5 + resolution: "@rollup/plugin-dynamic-import-vars@npm:2.1.5" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + astring: "npm:^1.8.5" + estree-walker: "npm:^2.0.2" + fast-glob: "npm:^3.2.12" + magic-string: "npm:^0.30.3" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/55e0fe0adc79e5f208b11479175607cd512743573dbdfee00fccf894304349d2e5a99edc6d269bbbbfbcae2a8fb7d5b7718fe8e517f79ca93003089a5c94b806 + languageName: node + linkType: hard + +"@rollup/plugin-inject@npm:^5.0.5": + version: 5.0.5 + resolution: "@rollup/plugin-inject@npm:5.0.5" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + estree-walker: "npm:^2.0.2" + magic-string: "npm:^0.30.3" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/1d0e68dff0a8785398a1b6a7dac0dc0a7f2ded22319c0b4c411053f34cbe237ca897d1fc97e5150fddbc3486480f21cbeeb69f0ae7f44ab1ae7307c164c7e704 + languageName: node + linkType: hard + +"@rollup/plugin-json@npm:^6.1.0": + version: 6.1.0 + resolution: "@rollup/plugin-json@npm:6.1.0" + dependencies: + "@rollup/pluginutils": "npm:^5.1.0" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/cc018d20c80242a2b8b44fae61a968049cf31bb8406218187cc7cda35747616594e79452dd65722e7da6dd825b392e90d4599d43cd4461a02fefa2865945164e + languageName: node + linkType: hard + +"@rollup/plugin-node-resolve@npm:^15.3.1": + version: 15.3.1 + resolution: "@rollup/plugin-node-resolve@npm:15.3.1" + dependencies: + "@rollup/pluginutils": "npm:^5.0.1" + "@types/resolve": "npm:1.20.2" + deepmerge: "npm:^4.2.2" + is-module: "npm:^1.0.0" + resolve: "npm:^1.22.1" + peerDependencies: + rollup: ^2.78.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/874494c0daca8fb0d633a237dd9df0d30609b374326e57508710f2b6d7ddaa93d203d8daa0257960b2b6723f56dfec1177573126f31ff9604700303b6f5fdbe3 + languageName: node + linkType: hard + +"@rollup/pluginutils@npm:^5.0.1, @rollup/pluginutils@npm:^5.1.0": + version: 5.3.0 + resolution: "@rollup/pluginutils@npm:5.3.0" + dependencies: + "@types/estree": "npm:^1.0.0" + estree-walker: "npm:^2.0.2" + picomatch: "npm:^4.0.2" + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 + peerDependenciesMeta: + rollup: + optional: true + checksum: 10/6c7dbab90e0ca5918a36875f745a0f30b47d5e0f45b42ed381ad8f7fed76b23e935766b66e3ae75375a42a80369569913abc8fd2529f4338471a1b2b4dfebaff + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.55.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-android-arm64@npm:4.55.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.55.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.55.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.55.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.55.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.55.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.55.1" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.55.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.55.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-loong64-gnu@npm:4.55.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-loong64-musl@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-loong64-musl@npm:4.55.1" + conditions: os=linux & cpu=loong64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-ppc64-gnu@npm:4.55.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-ppc64-musl@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-ppc64-musl@npm:4.55.1" + conditions: os=linux & cpu=ppc64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.55.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.55.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.55.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.55.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.55.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-openbsd-x64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-openbsd-x64@npm:4.55.1" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-openharmony-arm64@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-openharmony-arm64@npm:4.55.1" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.55.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.55.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-gnu@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-win32-x64-gnu@npm:4.55.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.55.1": + version: 4.55.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.55.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 10/17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + +"@scure/base@npm:^1.1.7": + version: 1.2.6 + resolution: "@scure/base@npm:1.2.6" + checksum: 10/c1a7bd5e0b0c8f94c36fbc220f4a67cc832b00e2d2065c7d8a404ed81ab1c94c5443def6d361a70fc382db3496e9487fb9941728f0584782b274c18a4bed4187 + languageName: node + linkType: hard + +"@scure/sr25519@npm:^0.2.0": + version: 0.2.0 + resolution: "@scure/sr25519@npm:0.2.0" + dependencies: + "@noble/curves": "npm:~1.9.2" + "@noble/hashes": "npm:~1.8.0" + checksum: 10/3c47b474811642b43fd8c96f7846c9d88c9a06eefa7d6360b6421ebdfb6cf582e1e8fdce9ae4708b088a0e323cd6519c883c3a33a284c2fad592414b02f19049 + languageName: node + linkType: hard + +"@sindresorhus/is@npm:^0.14.0": + version: 0.14.0 + resolution: "@sindresorhus/is@npm:0.14.0" + checksum: 10/789cd128f0b43e158e657c4505539c8997905fcb5c06d750b7df778cab2b6887bc1eb8878026a20d84524528786ef69fc3d12a964ae56a478a87bcfc7f8272f3 + languageName: node + linkType: hard + +"@substrate/ss58-registry@npm:^1.51.0": + version: 1.51.0 + resolution: "@substrate/ss58-registry@npm:1.51.0" + checksum: 10/34eb21292f543a8be7c62ad3bcdae89d61c8a51e35a0be4687b6b4e955b5180a90a7691a9e6779f7509f8dfcfdfa372d8278087a9668521b9c501adb85c915b6 + languageName: node + linkType: hard + +"@szmarczak/http-timer@npm:^1.1.2": + version: 1.1.2 + resolution: "@szmarczak/http-timer@npm:1.1.2" + dependencies: + defer-to-connect: "npm:^1.0.1" + checksum: 10/9b63853bd53bff72c4990ebc9cd3f625bbab757247099af172564da6649a27a1d41b1a70cd849dd65b2a078300029c1c80bf3079e6a91e285da7b259eb147146 + languageName: node + linkType: hard + +"@tsconfig/strictest@npm:^2.0.2": + version: 2.0.8 + resolution: "@tsconfig/strictest@npm:2.0.8" + checksum: 10/74c493af61886c2653df94635ecb79a0d9e61ecc0136475698cfa4adbb8957583497a1907de4ed9882557fd22d187985a4e4ab28290db236d7a0dd8264a6ba44 + languageName: node + linkType: hard + +"@tybys/wasm-util@npm:^0.10.0": + version: 0.10.1 + resolution: "@tybys/wasm-util@npm:0.10.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10/7fe0d239397aebb002ac4855d30c197c06a05ea8df8511350a3a5b1abeefe26167c60eda8a5508337571161e4c4b53d7c1342296123f9607af8705369de9fa7f + languageName: node + linkType: hard + +"@types/bn.js@npm:^5.1.6": + version: 5.2.0 + resolution: "@types/bn.js@npm:5.2.0" + dependencies: + "@types/node": "npm:*" + checksum: 10/06c93841f74e4a5e5b81b74427d56303b223c9af36389b4cd3c562bda93f43c425c7e241aee1b0b881dde57238dc2e07f21d30d412b206a7dae4435af4c054e8 + languageName: node + linkType: hard + +"@types/body-parser@npm:*": + version: 1.19.6 + resolution: "@types/body-parser@npm:1.19.6" + dependencies: + "@types/connect": "npm:*" + "@types/node": "npm:*" + checksum: 10/33041e88eae00af2cfa0827e951e5f1751eafab2a8b6fce06cd89ef368a988907996436b1325180edaeddd1c0c7d0d0d4c20a6c9ff294a91e0039a9db9e9b658 + languageName: node + linkType: hard + +"@types/bonjour@npm:^3.5.9": + version: 3.5.13 + resolution: "@types/bonjour@npm:3.5.13" + dependencies: + "@types/node": "npm:*" + checksum: 10/e827570e097bd7d625a673c9c208af2d1a22fa3885c0a1646533cf24394c839c3e5f60ac1bc60c0ddcc69c0615078c9fb2c01b42596c7c582d895d974f2409ee + languageName: node + linkType: hard + +"@types/connect-history-api-fallback@npm:^1.3.5": + version: 1.5.4 + resolution: "@types/connect-history-api-fallback@npm:1.5.4" + dependencies: + "@types/express-serve-static-core": "npm:*" + "@types/node": "npm:*" + checksum: 10/e1dee43b8570ffac02d2d47a2b4ba80d3ca0dd1840632dafb221da199e59dbe3778d3d7303c9e23c6b401f37c076935a5bc2aeae1c4e5feaefe1c371fe2073fd + languageName: node + linkType: hard + +"@types/connect@npm:*": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" + dependencies: + "@types/node": "npm:*" + checksum: 10/7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 + languageName: node + linkType: hard + +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: 10/e2889a124aaab0b89af1bab5959847c5bec09809209255de0e63b9f54c629a94781daa04adb66bffcdd742f5e25a17614fb933965093c0eea64aacda4309380e + languageName: node + linkType: hard + +"@types/eslint@npm:*": + version: 9.6.1 + resolution: "@types/eslint@npm:9.6.1" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10/719fcd255760168a43d0e306ef87548e1e15bffe361d5f4022b0f266575637acc0ecb85604ac97879ee8ae83c6a6d0613b0ed31d0209ddf22a0fe6d608fc56fe + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.8": + version: 1.0.8 + resolution: "@types/estree@npm:1.0.8" + checksum: 10/25a4c16a6752538ffde2826c2cc0c6491d90e69cd6187bef4a006dd2c3c45469f049e643d7e516c515f21484dc3d48fd5c870be158a5beb72f5baf3dc43e4099 + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:*, @types/express-serve-static-core@npm:^5.0.0": + version: 5.1.0 + resolution: "@types/express-serve-static-core@npm:5.1.0" + dependencies: + "@types/node": "npm:*" + "@types/qs": "npm:*" + "@types/range-parser": "npm:*" + "@types/send": "npm:*" + checksum: 10/c0b5b7ebc15b222f51e5705da2b8a5180335bf70927cc83c065784331aa9291984db1bfa4a14f5ba31b538dcb543561d9280046051fa4c9b7256eb971293e735 + languageName: node + linkType: hard + +"@types/express-serve-static-core@npm:^4.17.33": + version: 4.19.7 + resolution: "@types/express-serve-static-core@npm:4.19.7" + dependencies: + "@types/node": "npm:*" + "@types/qs": "npm:*" + "@types/range-parser": "npm:*" + "@types/send": "npm:*" + checksum: 10/a87830df965fb52eec6390accdba918a6f33f3d6cb96853be2cc2f74829a0bc09a29bddd9699127dbc17a170c7eebbe1294a9db9843b5a34dbc768f9ee844c01 + languageName: node + linkType: hard + +"@types/express@npm:*": + version: 5.0.6 + resolution: "@types/express@npm:5.0.6" + dependencies: + "@types/body-parser": "npm:*" + "@types/express-serve-static-core": "npm:^5.0.0" + "@types/serve-static": "npm:^2" + checksum: 10/da2cc3de1b1a4d7f20ed3fb6f0a8ee08e99feb3c2eb5a8d643db77017d8d0e70fee9e95da38a73f51bcdf5eda3bb6435073c0271dc04fb16fda92e55daf911fa + languageName: node + linkType: hard + +"@types/express@npm:^4.17.13": + version: 4.17.25 + resolution: "@types/express@npm:4.17.25" + dependencies: + "@types/body-parser": "npm:*" + "@types/express-serve-static-core": "npm:^4.17.33" + "@types/qs": "npm:*" + "@types/serve-static": "npm:^1" + checksum: 10/c309fdb79fb8569b5d8d8f11268d0160b271f8b38f0a82c20a0733e526baf033eb7a921cd51d54fe4333c616de9e31caf7d4f3ef73baaf212d61f23f460b0369 + languageName: node + linkType: hard + +"@types/http-errors@npm:*": + version: 2.0.5 + resolution: "@types/http-errors@npm:2.0.5" + checksum: 10/a88da669366bc483e8f3b3eb3d34ada5f8d13eeeef851b1204d77e2ba6fc42aba4566d877cca5c095204a3f4349b87fe397e3e21288837bdd945dd514120755b + languageName: node + linkType: hard + +"@types/http-proxy@npm:^1.17.8": + version: 1.17.17 + resolution: "@types/http-proxy@npm:1.17.17" + dependencies: + "@types/node": "npm:*" + checksum: 10/893e46e12be576baa471cf2fc13a4f0e413eaf30a5850de8fdbea3040e138ad4171234c59b986cf7137ff20a1582b254bf0c44cfd715d5ed772e1ab94dd75cd1 + languageName: node + linkType: hard + +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.15, @types/json-schema@npm:^7.0.9": + version: 7.0.15 + resolution: "@types/json-schema@npm:7.0.15" + checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: 10/4e5aed58cabb2bbf6f725da13421aa50a49abb6bc17bfab6c31b8774b073fa7b50d557c61f961a09a85f6056151190f8ac95f13f5b48136ba5841f7d4484ec56 + languageName: node + linkType: hard + +"@types/keyv@npm:^3.1.1": + version: 3.1.4 + resolution: "@types/keyv@npm:3.1.4" + dependencies: + "@types/node": "npm:*" + checksum: 10/e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d + languageName: node + linkType: hard + +"@types/mime@npm:^1": + version: 1.3.5 + resolution: "@types/mime@npm:1.3.5" + checksum: 10/e29a5f9c4776f5229d84e525b7cd7dd960b51c30a0fb9a028c0821790b82fca9f672dab56561e2acd9e8eed51d431bde52eafdfef30f643586c4162f1aecfc78 + languageName: node + linkType: hard + +"@types/node-forge@npm:^1.3.0": + version: 1.3.14 + resolution: "@types/node-forge@npm:1.3.14" + dependencies: + "@types/node": "npm:*" + checksum: 10/500ce72435285fca145837da079b49a09a5bdf8391b0effc3eb2455783dd81ab129e574a36e1a0374a4823d889d5328177ebfd6fe45b432c0c43d48d790fe39c + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 25.0.3 + resolution: "@types/node@npm:25.0.3" + dependencies: + undici-types: "npm:~7.16.0" + checksum: 10/5889b00f398eff4d4af28c3e5e97976f65c39a63fa3d7011f35cbf8640675fa6835e5dd47dce94d6ba48667711ddcd1f5c9bc5d93233e6a8e9ea1e502e8aa5a4 + languageName: node + linkType: hard + +"@types/node@npm:^22.10.5": + version: 22.19.3 + resolution: "@types/node@npm:22.19.3" + dependencies: + undici-types: "npm:~6.21.0" + checksum: 10/ffee06ce6d741fde98a40bc65a57394ed2283c521f57f9143d2356513181162bd4108809be6902a861d098b35e35569f61f14c64d3032e48a0289b74f917669a + languageName: node + linkType: hard + +"@types/qs@npm:*": + version: 6.14.0 + resolution: "@types/qs@npm:6.14.0" + checksum: 10/1909205514d22b3cbc7c2314e2bd8056d5f05dfb21cf4377f0730ee5e338ea19957c41735d5e4806c746176563f50005bbab602d8358432e25d900bdf4970826 + languageName: node + linkType: hard + +"@types/range-parser@npm:*": + version: 1.2.7 + resolution: "@types/range-parser@npm:1.2.7" + checksum: 10/95640233b689dfbd85b8c6ee268812a732cf36d5affead89e806fe30da9a430767af8ef2cd661024fd97e19d61f3dec75af2df5e80ec3bea000019ab7028629a + languageName: node + linkType: hard + +"@types/resolve@npm:1.20.2": + version: 1.20.2 + resolution: "@types/resolve@npm:1.20.2" + checksum: 10/1bff0d3875e7e1557b6c030c465beca9bf3b1173ebc6937cac547654b0af3bb3ff0f16470e9c4d7c5dc308ad9ac8627c38dbff24ef698b66673ff5bd4ead7f7e + languageName: node + linkType: hard + +"@types/responselike@npm:^1.0.0": + version: 1.0.3 + resolution: "@types/responselike@npm:1.0.3" + dependencies: + "@types/node": "npm:*" + checksum: 10/6ac4b35723429b11b117e813c7acc42c3af8b5554caaf1fc750404c1ae59f9b7376bc69b9e9e194a5a97357a597c2228b7173d317320f0360d617b6425212f58 + languageName: node + linkType: hard + +"@types/retry@npm:0.12.0": + version: 0.12.0 + resolution: "@types/retry@npm:0.12.0" + checksum: 10/bbd0b88f4b3eba7b7acfc55ed09c65ef6f2e1bcb4ec9b4dca82c66566934351534317d294a770a7cc6c0468d5573c5350abab6e37c65f8ef254443e1b028e44d + languageName: node + linkType: hard + +"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": + version: 7.7.1 + resolution: "@types/semver@npm:7.7.1" + checksum: 10/8f09e7e6ca3ded67d78ba7a8f7535c8d9cf8ced83c52e7f3ac3c281fe8c689c3fe475d199d94390dc04fc681d51f2358b430bb7b2e21c62de24f2bee2c719068 + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 1.2.1 + resolution: "@types/send@npm:1.2.1" + dependencies: + "@types/node": "npm:*" + checksum: 10/81ef5790037ba1d2d458392e4241501f0f8b4838cc8797e169e179e099410e12069ec68e8dbd39211cb097c4a9b1ff1682dbcea897ab4ce21dad93438b862d27 + languageName: node + linkType: hard + +"@types/send@npm:<1": + version: 0.17.6 + resolution: "@types/send@npm:0.17.6" + dependencies: + "@types/mime": "npm:^1" + "@types/node": "npm:*" + checksum: 10/4948ab32ab84a81a0073f8243dd48ee766bc80608d5391060360afd1249f83c08a7476f142669ac0b0b8831c89d909a88bcb392d1b39ee48b276a91b50f3d8d1 + languageName: node + linkType: hard + +"@types/serve-index@npm:^1.9.1": + version: 1.9.4 + resolution: "@types/serve-index@npm:1.9.4" + dependencies: + "@types/express": "npm:*" + checksum: 10/72727c88d54da5b13275ebfb75dcdc4aa12417bbe9da1939e017c4c5f0c906fae843aa4e0fbfe360e7ee9df2f3d388c21abfc488f77ce58693fb57809f8ded92 + languageName: node + linkType: hard + +"@types/serve-static@npm:^1, @types/serve-static@npm:^1.13.10": + version: 1.15.10 + resolution: "@types/serve-static@npm:1.15.10" + dependencies: + "@types/http-errors": "npm:*" + "@types/node": "npm:*" + "@types/send": "npm:<1" + checksum: 10/d9be72487540b9598e7d77260d533f241eb2e5db5181bb885ef2d6bc4592dad1c9e8c0e27f465d59478b2faf90edd2d535e834f20fbd9dd3c0928d43dc486404 + languageName: node + linkType: hard + +"@types/serve-static@npm:^2": + version: 2.2.0 + resolution: "@types/serve-static@npm:2.2.0" + dependencies: + "@types/http-errors": "npm:*" + "@types/node": "npm:*" + checksum: 10/f2bad1304c7d0d3b7221faff3e490c40129d3803f4fb1b2fb84f31f561071c5e6a4b876c41bbbe82d5645034eea936e946bcaaf993dac1093ce68b56effad6e0 + languageName: node + linkType: hard + +"@types/sockjs@npm:^0.3.33": + version: 0.3.36 + resolution: "@types/sockjs@npm:0.3.36" + dependencies: + "@types/node": "npm:*" + checksum: 10/b4b5381122465d80ea8b158537c00bc82317222d3fb31fd7229ff25b31fa89134abfbab969118da55622236bf3d8fee75759f3959908b5688991f492008f29bc + languageName: node + linkType: hard + +"@types/ws@npm:^8.5.5": + version: 8.18.1 + resolution: "@types/ws@npm:8.18.1" + dependencies: + "@types/node": "npm:*" + checksum: 10/1ce05e3174dcacf28dae0e9b854ef1c9a12da44c7ed73617ab6897c5cbe4fccbb155a20be5508ae9a7dde2f83bd80f5cf3baa386b934fc4b40889ec963e94f3a + languageName: node + linkType: hard + +"@types/yargs-parser@npm:*": + version: 21.0.3 + resolution: "@types/yargs-parser@npm:21.0.3" + checksum: 10/a794eb750e8ebc6273a51b12a0002de41343ffe46befef460bdbb57262d187fdf608bc6615b7b11c462c63c3ceb70abe2564c8dd8ee0f7628f38a314f74a9b9b + languageName: node + linkType: hard + +"@types/yargs@npm:^17.0.33": + version: 17.0.35 + resolution: "@types/yargs@npm:17.0.35" + dependencies: + "@types/yargs-parser": "npm:*" + checksum: 10/47bcd4476a4194ea11617ea71cba8a1eddf5505fc39c44336c1a08d452a0de4486aedbc13f47a017c8efbcb5a8aa358d976880663732ebcbc6dbcbbecadb0581 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:^6.19.1": + version: 6.21.0 + resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" + dependencies: + "@eslint-community/regexpp": "npm:^4.5.1" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/type-utils": "npm:6.21.0" + "@typescript-eslint/utils": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + debug: "npm:^4.3.4" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.4" + natural-compare: "npm:^1.4.0" + semver: "npm:^7.5.4" + ts-api-utils: "npm:^1.0.1" + peerDependencies: + "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/a57de0f630789330204cc1531f86cfc68b391cafb1ba67c8992133f1baa2a09d629df66e71260b040de4c9a3ff1252952037093c4128b0d56c4dbb37720b4c1d + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:^6.19.1": + version: 6.21.0 + resolution: "@typescript-eslint/parser@npm:6.21.0" + dependencies: + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + debug: "npm:^4.3.4" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/4d51cdbc170e72275efc5ef5fce48a81ec431e4edde8374f4d0213d8d370a06823e1a61ae31d502a5f1b0d1f48fc4d29a1b1b5c2dcf809d66d3872ccf6e46ac7 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + checksum: 10/e827770baa202223bc0387e2fd24f630690809e460435b7dc9af336c77322290a770d62bd5284260fa881c86074d6a9fd6c97b07382520b115f6786b8ed499da + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/scope-manager@npm:6.21.0" + dependencies: + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + checksum: 10/fe91ac52ca8e09356a71dc1a2f2c326480f3cccfec6b2b6d9154c1a90651ab8ea270b07c67df5678956c3bbf0bbe7113ab68f68f21b20912ea528b1214197395 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/type-utils@npm:6.21.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:6.21.0" + "@typescript-eslint/utils": "npm:6.21.0" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^1.0.1" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/d03fb3ee1caa71f3ce053505f1866268d7ed79ffb7fed18623f4a1253f5b8f2ffc92636d6fd08fcbaf5bd265a6de77bf192c53105131e4724643dfc910d705fc + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:4.33.0": + version: 4.33.0 + resolution: "@typescript-eslint/types@npm:4.33.0" + checksum: 10/c7ec55e6aef47ac49f712da52968c825552a23c59717f338f08c480e5336d592a689a324d21e2d370f48713a1302d7c78c14e6250bcea9b91f0b62ab6b2db3e1 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 10/24e8443177be84823242d6729d56af2c4b47bfc664dd411a1d730506abf2150d6c31bdefbbc6d97c8f91043e3a50e0c698239dcb145b79bb6b0c34469aaf6c45 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/types@npm:6.21.0" + checksum: 10/e26da86d6f36ca5b6ef6322619f8ec55aabcd7d43c840c977ae13ae2c964c3091fc92eb33730d8be08927c9de38466c5323e78bfb270a9ff1d3611fe821046c5 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.62.0, @typescript-eslint/typescript-estree@npm:^5.55.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + semver: "npm:^7.3.7" + tsutils: "npm:^3.21.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/06c975eb5f44b43bd19fadc2e1023c50cf87038fe4c0dd989d4331c67b3ff509b17fa60a3251896668ab4d7322bdc56162a9926971218d2e1a1874d2bef9a52e + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" + dependencies: + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/visitor-keys": "npm:6.21.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + minimatch: "npm:9.0.3" + semver: "npm:^7.5.4" + ts-api-utils: "npm:^1.0.1" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/b32fa35fca2a229e0f5f06793e5359ff9269f63e9705e858df95d55ca2cd7fdb5b3e75b284095a992c48c5fc46a1431a1a4b6747ede2dd08929dc1cbacc589b8 + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:^4.33.0": + version: 4.33.0 + resolution: "@typescript-eslint/typescript-estree@npm:4.33.0" + dependencies: + "@typescript-eslint/types": "npm:4.33.0" + "@typescript-eslint/visitor-keys": "npm:4.33.0" + debug: "npm:^4.3.1" + globby: "npm:^11.0.3" + is-glob: "npm:^4.0.1" + semver: "npm:^7.3.5" + tsutils: "npm:^3.21.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/e9409ec992d9d3c44efd53106bf63a6d5f6041e9dc359d54ea4b5f6787404cf44057cbd3090e9cc45ed4157dc631e398079f954490e50a4608cea1fbf9e69226 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:6.21.0, @typescript-eslint/utils@npm:^6.0.0": + version: 6.21.0 + resolution: "@typescript-eslint/utils@npm:6.21.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@types/json-schema": "npm:^7.0.12" + "@types/semver": "npm:^7.5.0" + "@typescript-eslint/scope-manager": "npm:6.21.0" + "@typescript-eslint/types": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:6.21.0" + semver: "npm:^7.5.4" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + checksum: 10/b404a2c55a425a79d054346ae123087d30c7ecf7ed7abcf680c47bf70c1de4fabadc63434f3f460b2fa63df76bc9e4a0b9fa2383bb8a9fcd62733fb5c4e4f3e3 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:^5.10.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@types/json-schema": "npm:^7.0.9" + "@types/semver": "npm:^7.3.12" + "@typescript-eslint/scope-manager": "npm:5.62.0" + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/typescript-estree": "npm:5.62.0" + eslint-scope: "npm:^5.1.1" + semver: "npm:^7.3.7" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/15ef13e43998a082b15f85db979f8d3ceb1f9ce4467b8016c267b1738d5e7cdb12aa90faf4b4e6dd6486c236cf9d33c463200465cf25ff997dbc0f12358550a1 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:4.33.0": + version: 4.33.0 + resolution: "@typescript-eslint/visitor-keys@npm:4.33.0" + dependencies: + "@typescript-eslint/types": "npm:4.33.0" + eslint-visitor-keys: "npm:^2.0.0" + checksum: 10/b28cd3f2c5cd919587d576e0cec8a95ea6c12a2e22dfec59ce70714efad4a7af4d467f9f964dd4ba1a4ad82d4a8c680a6d397e621b9be9d1df89b3a95380813f + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + eslint-visitor-keys: "npm:^3.3.0" + checksum: 10/dc613ab7569df9bbe0b2ca677635eb91839dfb2ca2c6fa47870a5da4f160db0b436f7ec0764362e756d4164e9445d49d5eb1ff0b87f4c058946ae9d8c92eb388 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:6.21.0": + version: 6.21.0 + resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" + dependencies: + "@typescript-eslint/types": "npm:6.21.0" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10/30422cdc1e2ffad203df40351a031254b272f9c6f2b7e02e9bfa39e3fc2c7b1c6130333b0057412968deda17a3a68a578a78929a8139c6acef44d9d841dc72e1 + languageName: node + linkType: hard + +"@ungap/structured-clone@npm:^1.2.0": + version: 1.3.0 + resolution: "@ungap/structured-clone@npm:1.3.0" + checksum: 10/80d6910946f2b1552a2406650051c91bbd1f24a6bf854354203d84fe2714b3e8ce4618f49cc3410494173a1c1e8e9777372fe68dce74bd45faf0a7a1a6ccf448 + languageName: node + linkType: hard + +"@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-android-arm64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-android-arm64@npm:1.11.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-arm64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.11.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-darwin-x64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-darwin-x64@npm:1.11.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-freebsd-x64@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.11.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@unrs/resolver-binding-linux-x64-musl@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.11.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@unrs/resolver-binding-wasm32-wasi@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.11.1" + dependencies: + "@napi-rs/wasm-runtime": "npm:^0.2.11" + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1": + version: 1.11.1 + resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/ast@npm:1.14.1" + dependencies: + "@webassemblyjs/helper-numbers": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + checksum: 10/f83e6abe38057f5d87c1fb356513a371a8b43c9b87657f2790741a66b1ef8ecf958d1391bc42f27c5fb33f58ab8286a38ea849fdd21f433cd4df1307424bab45 + languageName: node + linkType: hard + +"@webassemblyjs/floating-point-hex-parser@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/floating-point-hex-parser@npm:1.13.2" + checksum: 10/e866ec8433f4a70baa511df5e8f2ebcd6c24f4e2cc6274c7c5aabe2bcce3459ea4680e0f35d450e1f3602acf3913b6b8e4f15069c8cfd34ae8609fb9a7d01795 + languageName: node + linkType: hard + +"@webassemblyjs/helper-api-error@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-api-error@npm:1.13.2" + checksum: 10/48b5df7fd3095bb252f59a139fe2cbd999a62ac9b488123e9a0da3906ad8a2f2da7b2eb21d328c01a90da987380928706395c2897d1f3ed9e2125b6d75a920d0 + languageName: node + linkType: hard + +"@webassemblyjs/helper-buffer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-buffer@npm:1.14.1" + checksum: 10/9690afeafa5e765a34620aa6216e9d40f9126d4e37e9726a2594bf60cab6b211ef20ab6670fd3c4449dd4a3497e69e49b2b725c8da0fb213208c7f45f15f5d5b + languageName: node + linkType: hard + +"@webassemblyjs/helper-numbers@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-numbers@npm:1.13.2" + dependencies: + "@webassemblyjs/floating-point-hex-parser": "npm:1.13.2" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@xtuc/long": "npm:4.2.2" + checksum: 10/e4c7d0b09811e1cda8eec644a022b560b28f4e974f50195375ccd007df5ee48a922a6dcff5ac40b6a8ec850d56d0ea6419318eee49fec7819ede14e90417a6a4 + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-bytecode@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/helper-wasm-bytecode@npm:1.13.2" + checksum: 10/3edd191fff7296df1ef3b023bdbe6cb5ea668f6386fd197ccfce46015c6f2a8cc9763cfb86503a0b94973ad27996645afff2252ee39a236513833259a47af6ed + languageName: node + linkType: hard + +"@webassemblyjs/helper-wasm-section@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/helper-wasm-section@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + checksum: 10/6b73874f906532512371181d7088460f767966f26309e836060c5a8e4e4bfe6d523fb5f4c034b34aa22ebb1192815f95f0e264298769485c1f0980fdd63ae0ce + languageName: node + linkType: hard + +"@webassemblyjs/ieee754@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/ieee754@npm:1.13.2" + dependencies: + "@xtuc/ieee754": "npm:^1.2.0" + checksum: 10/d7e3520baa37a7309fa7db4d73d69fb869878853b1ebd4b168821bd03fcc4c0e1669c06231315b0039035d9a7a462e53de3ad982da4a426a4b0743b5888e8673 + languageName: node + linkType: hard + +"@webassemblyjs/leb128@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/leb128@npm:1.13.2" + dependencies: + "@xtuc/long": "npm:4.2.2" + checksum: 10/3a10542c86807061ec3230bac8ee732289c852b6bceb4b88ebd521a12fbcecec7c432848284b298154f28619e2746efbed19d6904aef06c49ef20a0b85f650cf + languageName: node + linkType: hard + +"@webassemblyjs/utf8@npm:1.13.2": + version: 1.13.2 + resolution: "@webassemblyjs/utf8@npm:1.13.2" + checksum: 10/27885e5d19f339501feb210867d69613f281eda695ac508f04d69fa3398133d05b6870969c0242b054dc05420ed1cc49a64dea4fe0588c18d211cddb0117cc54 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-edit@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-edit@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/helper-wasm-section": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-opt": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + "@webassemblyjs/wast-printer": "npm:1.14.1" + checksum: 10/c62c50eadcf80876713f8c9f24106b18cf208160ab842fcb92060fd78c37bf37e7fcf0b7cbf1afc05d230277c2ce0f3f728432082c472dd1293e184a95f9dbdd + languageName: node + linkType: hard + +"@webassemblyjs/wasm-gen@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-gen@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10/6085166b0987d3031355fe17a4f9ef0f412e08098d95454059aced2bd72a4c3df2bc099fa4d32d640551fc3eca1ac1a997b44432e46dc9d84642688e42c17ed4 + languageName: node + linkType: hard + +"@webassemblyjs/wasm-opt@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-opt@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-buffer": "npm:1.14.1" + "@webassemblyjs/wasm-gen": "npm:1.14.1" + "@webassemblyjs/wasm-parser": "npm:1.14.1" + checksum: 10/fa5d1ef8d2156e7390927f938f513b7fb4440dd6804b3d6c8622b7b1cf25a3abf1a5809f615896d4918e04b27b52bc3cbcf18faf2d563cb563ae0a9204a492db + languageName: node + linkType: hard + +"@webassemblyjs/wasm-parser@npm:1.14.1, @webassemblyjs/wasm-parser@npm:^1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wasm-parser@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@webassemblyjs/helper-api-error": "npm:1.13.2" + "@webassemblyjs/helper-wasm-bytecode": "npm:1.13.2" + "@webassemblyjs/ieee754": "npm:1.13.2" + "@webassemblyjs/leb128": "npm:1.13.2" + "@webassemblyjs/utf8": "npm:1.13.2" + checksum: 10/07d9805fda88a893c984ed93d5a772d20d671e9731358ab61c6c1af8e0e58d1c42fc230c18974dfddebc9d2dd7775d514ba4d445e70080b16478b4b16c39c7d9 + languageName: node + linkType: hard + +"@webassemblyjs/wast-printer@npm:1.14.1": + version: 1.14.1 + resolution: "@webassemblyjs/wast-printer@npm:1.14.1" + dependencies: + "@webassemblyjs/ast": "npm:1.14.1" + "@xtuc/long": "npm:4.2.2" + checksum: 10/cef09aad2fcd291bfcf9efdae2ea1e961a1ba0f925d1d9dcdd8c746d32fbaf431b6d26a0241699c0e39f82139018aa720b4ceb84ac6f4c78f13072747480db69 + languageName: node + linkType: hard + +"@webpack-cli/configtest@npm:^2.1.1": + version: 2.1.1 + resolution: "@webpack-cli/configtest@npm:2.1.1" + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + checksum: 10/9f9f9145c2d05471fc83d426db1df85cf49f329836b0c4b9f46b6948bed4b013464c00622b136d2a0a26993ce2306976682592245b08ee717500b1db45009a72 + languageName: node + linkType: hard + +"@webpack-cli/info@npm:^2.0.2": + version: 2.0.2 + resolution: "@webpack-cli/info@npm:2.0.2" + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + checksum: 10/8f9a178afca5c82e113aed1efa552d64ee5ae4fdff63fe747c096a981ec74f18a5d07bd6e89bbe6715c3e57d96eea024a410e58977169489fe1df044c10dd94e + languageName: node + linkType: hard + +"@webpack-cli/serve@npm:^2.0.5": + version: 2.0.5 + resolution: "@webpack-cli/serve@npm:2.0.5" + peerDependencies: + webpack: 5.x.x + webpack-cli: 5.x.x + peerDependenciesMeta: + webpack-dev-server: + optional: true + checksum: 10/20424e5c1e664e4d7ab11facee7033bb729f6acd86493138069532934c1299c1426da72942822dedb00caca8fc60cc8aec1626e610ee0e8a9679e3614f555860 + languageName: node + linkType: hard + +"@xtuc/ieee754@npm:^1.2.0": + version: 1.2.0 + resolution: "@xtuc/ieee754@npm:1.2.0" + checksum: 10/ab033b032927d77e2f9fa67accdf31b1ca7440974c21c9cfabc8349e10ca2817646171c4f23be98d0e31896d6c2c3462a074fe37752e523abc3e45c79254259c + languageName: node + linkType: hard + +"@xtuc/long@npm:4.2.2": + version: 4.2.2 + resolution: "@xtuc/long@npm:4.2.2" + checksum: 10/7217bae9fe240e0d804969e7b2af11cb04ec608837c78b56ca88831991b287e232a0b7fce8d548beaff42aaf0197ffa471d81be6ac4c4e53b0148025a2c076ec + languageName: node + linkType: hard + +"abbrev@npm:^4.0.0": + version: 4.0.0 + resolution: "abbrev@npm:4.0.0" + checksum: 10/e2f0c6a6708ad738b3e8f50233f4800de31ad41a6cdc50e0cbe51b76fed69fd0213516d92c15ce1a9985fca71a14606a9be22bf00f8475a58987b9bfb671c582 + languageName: node + linkType: hard + +"accepts@npm:~1.3.4, accepts@npm:~1.3.8": + version: 1.3.8 + resolution: "accepts@npm:1.3.8" + dependencies: + mime-types: "npm:~2.1.34" + negotiator: "npm:0.6.3" + checksum: 10/67eaaa90e2917c58418e7a9b89392002d2b1ccd69bcca4799135d0c632f3b082f23f4ae4ddeedbced5aa59bcc7bdf4699c69ebed4593696c922462b7bc5744d6 + languageName: node + linkType: hard + +"acorn-import-phases@npm:^1.0.3": + version: 1.0.4 + resolution: "acorn-import-phases@npm:1.0.4" + peerDependencies: + acorn: ^8.14.0 + checksum: 10/471050ac7d9b61909c837b426de9eeef2958997f6277ad7dea88d5894fd9b3245d8ed4a225c2ca44f814dbb20688009db7a80e525e8196fc9e98c5285b66161d + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10/d4371eaef7995530b5b5ca4183ff6f062ca17901a6d3f673c9ac011b01ede37e7a1f7f61f8f5cfe709e88054757bb8f3277dc4061087cdf4f2a1f90ccbcdb977 + languageName: node + linkType: hard + +"acorn@npm:^8.15.0, acorn@npm:^8.9.0": + version: 8.15.0 + resolution: "acorn@npm:8.15.0" + bin: + acorn: bin/acorn + checksum: 10/77f2de5051a631cf1729c090e5759148459cdb76b5f5c70f890503d629cf5052357b0ce783c0f976dd8a93c5150f59f6d18df1def3f502396a20f81282482fa4 + languageName: node + linkType: hard + +"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": + version: 7.1.4 + resolution: "agent-base@npm:7.1.4" + checksum: 10/79bef167247789f955aaba113bae74bf64aa1e1acca4b1d6bb444bdf91d82c3e07e9451ef6a6e2e35e8f71a6f97ce33e3d855a5328eb9fad1bc3cc4cfd031ed8 + languageName: node + linkType: hard + +"ajv-formats@npm:^2.1.1": + version: 2.1.1 + resolution: "ajv-formats@npm:2.1.1" + dependencies: + ajv: "npm:^8.0.0" + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + checksum: 10/70c263ded219bf277ffd9127f793b625f10a46113b2e901e150da41931fcfd7f5592da6d66862f4449bb157ffe65867c3294a7df1d661cc232c4163d5a1718ed + languageName: node + linkType: hard + +"ajv-keywords@npm:^5.1.0": + version: 5.1.0 + resolution: "ajv-keywords@npm:5.1.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + peerDependencies: + ajv: ^8.8.2 + checksum: 10/5021f96ab7ddd03a4005326bd06f45f448ebfbb0fe7018b1b70b6c28142fa68372bda2057359814b83fd0b2d4c8726c297f0a7557b15377be7b56ce5344533d8 + languageName: node + linkType: hard + +"ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10/48d6ad21138d12eb4d16d878d630079a2bda25a04e745c07846a4ad768319533031e28872a9b3c5790fa1ec41aabdf2abed30a56e5a03ebc2cf92184b8ee306c + languageName: node + linkType: hard + +"ajv@npm:^8.0.0, ajv@npm:^8.9.0": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" + dependencies: + fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" + json-schema-traverse: "npm:^1.0.0" + require-from-string: "npm:^2.0.2" + checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33 + languageName: node + linkType: hard + +"ansi-align@npm:^3.0.0": + version: 3.0.1 + resolution: "ansi-align@npm:3.0.1" + dependencies: + string-width: "npm:^4.1.0" + checksum: 10/4c7e8b6a10eaf18874ecee964b5db62ac86d0b9266ad4987b3a1efcb5d11a9e12c881ee40d14951833135a8966f10a3efe43f9c78286a6e632f53d85ad28b9c0 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: "npm:^0.21.3" + checksum: 10/8661034456193ffeda0c15c8c564a9636b0c04094b7f78bd01517929c17c504090a60f7a75f949f5af91289c264d3e1001d91492c1bd58efc8e100500ce04de2 + languageName: node + linkType: hard + +"ansi-html-community@npm:^0.0.8": + version: 0.0.8 + resolution: "ansi-html-community@npm:0.0.8" + bin: + ansi-html: bin/ansi-html + checksum: 10/08df3696720edacd001a8d53b197bb5728242c55484680117dab9f7633a6320e961a939bddd88ee5c71d4a64f3ddb49444d1c694bd0668adbb3f95ba114f2386 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 10/2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: "npm:^1.9.0" + checksum: 10/d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: "npm:^2.0.1" + checksum: 10/b4494dfbfc7e4591b4711a396bd27e540f8153914123dccb4cdbbcb514015ada63a3809f362b9d8d4f6b17a706f1d7bea3c6f974b15fa5ae76b5b502070889ff + languageName: node + linkType: hard + +"any-promise@npm:^1.1.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 10/6737469ba353b5becf29e4dc3680736b9caa06d300bda6548812a8fee63ae7d336d756f88572fa6b5219aed36698d808fa55f62af3e7e6845c7a1dc77d240edb + languageName: node + linkType: hard + +"anymatch@npm:~3.1.2": + version: 3.1.3 + resolution: "anymatch@npm:3.1.3" + dependencies: + normalize-path: "npm:^3.0.0" + picomatch: "npm:^2.0.4" + checksum: 10/3e044fd6d1d26545f235a9fe4d7a534e2029d8e59fa7fd9f2a6eb21230f6b5380ea1eaf55136e60cbf8e613544b3b766e7a6fa2102e2a3a117505466e3025dc2 + languageName: node + linkType: hard + +"app-module-path@npm:^2.2.0": + version: 2.2.0 + resolution: "app-module-path@npm:2.2.0" + checksum: 10/9ed8c6ce6247a6b5d556039f29b4610869237bbb5b8f3d905b22bd2d314c30efcc0fb70c2626d7461ecc52ec7edec9908f660d0938d2bea5b8cfc6868a28806f + languageName: node + linkType: hard + +"application-config-path@npm:^0.1.0": + version: 0.1.1 + resolution: "application-config-path@npm:0.1.1" + checksum: 10/380f4c49585511813526632c8366318f52941526dbb284a887e5af328caa76424a056795ab18f03f5009197f2dea0ef01a8a9812d85724f26d2f5cf9bf9bf1f9 + languageName: node + linkType: hard + +"application-config@npm:^2.0.0": + version: 2.0.0 + resolution: "application-config@npm:2.0.0" + dependencies: + application-config-path: "npm:^0.1.0" + load-json-file: "npm:^6.2.0" + write-json-file: "npm:^4.2.0" + checksum: 10/d1f8d2388cb7b97c792a9f795610cfe5869b976a950dff96070c0f28ac78421d074a5f74195f890dcd45437fa6e367a49acb5d796bd436d9f71b2bace6a2a741 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.1.0 + resolution: "aproba@npm:2.1.0" + checksum: 10/cb0e335ac398027d43bf4a139337363e161fa10a642291f7ad5068a2e24797be58270775047cba901a7c1ce945a05c7535b13f6457993517cd7dca40c9b00a00 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 10/18640244e641a417ec75a9bd38b0b2b6b95af5199aa241b131d4b2fb206f334d7ecc600bd194861610a5579084978bfcbb02baa399dbe442d56d0ae5e60dbaef + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + is-array-buffer: "npm:^3.0.5" + checksum: 10/0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + languageName: node + linkType: hard + +"array-flatten@npm:1.1.1": + version: 1.1.1 + resolution: "array-flatten@npm:1.1.1" + checksum: 10/e13c9d247241be82f8b4ec71d035ed7204baa82fae820d4db6948d30d3c4a9f2b3905eb2eec2b937d4aa3565200bd3a1c500480114cff649fa748747d2a50feb + languageName: node + linkType: hard + +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8, array-includes@npm:^3.1.9": + version: 3.1.9 + resolution: "array-includes@npm:3.1.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.24.0" + es-object-atoms: "npm:^1.1.1" + get-intrinsic: "npm:^1.3.0" + is-string: "npm:^1.1.1" + math-intrinsics: "npm:^1.1.0" + checksum: 10/8bfe9a58df74f326b4a76b04ee05c13d871759e888b4ee8f013145297cf5eb3c02cfa216067ebdaac5d74eb9763ac5cad77cdf2773b8ab475833701e032173aa + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 10/5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array.prototype.findlast@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/7dffcc665aa965718ad6de7e17ac50df0c5e38798c0a5bf9340cf24feb8594df6ec6f3fcbe714c1577728a1b18b5704b15669474b27bceeca91ef06ce2a23c31 + languageName: node + linkType: hard + +"array.prototype.findlastindex@npm:^1.2.6": + version: 1.2.6 + resolution: "array.prototype.findlastindex@npm:1.2.6" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.9" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + es-shim-unscopables: "npm:^1.1.0" + checksum: 10/5ddb6420e820bef6ddfdcc08ce780d0fd5e627e97457919c27e32359916de5a11ce12f7c55073555e503856618eaaa70845d6ca11dcba724766f38eb1c22f7a2 + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/f9b992fa0775d8f7c97abc91eb7f7b2f0ed8430dd9aeb9fdc2967ac4760cdd7fc2ef7ead6528fef40c7261e4d790e117808ce0d3e7e89e91514d4963a531cd01 + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/473534573aa4b37b1d80705d0ce642f5933cccf5617c9f3e8a56686e9815ba93d469138e86a1f25d2fe8af999c3d24f54d703ec1fc2db2e6778d46d0f4ac951e + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" + es-shim-unscopables: "npm:^1.0.2" + checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d + languageName: node + linkType: hard + +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" + dependencies: + array-buffer-byte-length: "npm:^1.0.1" + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + is-array-buffer: "npm:^3.0.4" + checksum: 10/4821ebdfe7d699f910c7f09bc9fa996f09b96b80bccb4f5dd4b59deae582f6ad6e505ecef6376f8beac1eda06df2dbc89b70e82835d104d6fcabd33c1aed1ae9 + languageName: node + linkType: hard + +"ast-module-types@npm:^2.7.1": + version: 2.7.1 + resolution: "ast-module-types@npm:2.7.1" + checksum: 10/f5ff6a8aec1ac93533bb5af6ab3921b7eb9f91032f6fdd7cb08e6917005649dc8d5dcdfc98016b7125450db6028da22ae6990275e0ecd6d1fcfe7f1cf5c83b8a + languageName: node + linkType: hard + +"ast-module-types@npm:^3.0.0": + version: 3.0.0 + resolution: "ast-module-types@npm:3.0.0" + checksum: 10/9cf2e1c566ff88347762ba177dbe8a8bd3e59f366052d45c0a3b1afde2db2228a1c56f05a6e4d7fbfa219de26ae64831a138ff7533269310b13bb9e3a0e84c9f + languageName: node + linkType: hard + +"ast-module-types@npm:^4.0.0": + version: 4.0.0 + resolution: "ast-module-types@npm:4.0.0" + checksum: 10/06cf93519ef353bb580d90d87f0a9501f39ef99f79784e5291e59e30764c07b383018c153ff4020e9d1409030e9affd438dfca76c28d38400ba729addba8a54a + languageName: node + linkType: hard + +"astring@npm:^1.8.5": + version: 1.9.0 + resolution: "astring@npm:1.9.0" + bin: + astring: bin/astring + checksum: 10/ee88f71d8534557b27993d6d035ae85d78488d8dbc6429cd8e8fdfcafec3c65928a3bdc518cf69767a1298d3361490559a4819cd4b314007edae1e94cf1f9e4c + languageName: node + linkType: hard + +"async-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-function@npm:1.0.0" + checksum: 10/1a09379937d846f0ce7614e75071c12826945d4e417db634156bf0e4673c495989302f52186dfa9767a1d9181794554717badd193ca2bbab046ef1da741d8efd + languageName: node + linkType: hard + +"async-generator-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-generator-function@npm:1.0.0" + checksum: 10/3d49e7acbeee9e84537f4cb0e0f91893df8eba976759875ae8ee9e3d3c82f6ecdebdb347c2fad9926b92596d93cdfc78ecc988bcdf407e40433e8e8e6fe5d78e + languageName: node + linkType: hard + +"async@npm:^3.2.0, async@npm:^3.2.4": + version: 3.2.6 + resolution: "async@npm:3.2.6" + checksum: 10/cb6e0561a3c01c4b56a799cc8bab6ea5fef45f069ab32500b6e19508db270ef2dffa55e5aed5865c5526e9907b1f8be61b27530823b411ffafb5e1538c86c368 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 10/3ce727cbc78f69d6a4722517a58ee926c8c21083633b1d3fdf66fd688f6c127a53a592141bd4866f9b63240a86e9d8e974b13919450bd17fa33c2d22c4558ad8 + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: "npm:^1.0.0" + checksum: 10/6c9da3a66caddd83c875010a1ca8ef11eac02ba15fb592dc9418b2b5e7b77b645fa7729380a92d9835c2f05f2ca1b6251f39b993e0feb3f1517c74fa1af02cab + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 10/9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 10/669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"baseline-browser-mapping@npm:^2.9.0": + version: 2.9.11 + resolution: "baseline-browser-mapping@npm:2.9.11" + bin: + baseline-browser-mapping: dist/cli.js + checksum: 10/d71fe6693f999ee0bf1fcd72b31c01390f2bfac40d179175817f24cdb11b19d14a102227a8fa28e0a4733a17c780458c17384c75f2227e45b0e8a0080caf6532 + languageName: node + linkType: hard + +"batch@npm:0.6.1": + version: 0.6.1 + resolution: "batch@npm:0.6.1" + checksum: 10/61f9934c7378a51dce61b915586191078ef7f1c3eca707fdd58b96ff2ff56d9e0af2bdab66b1462301a73c73374239e6542d9821c0af787f3209a23365d07e7f + languageName: node + linkType: hard + +"before-after-hook@npm:^2.2.0": + version: 2.2.3 + resolution: "before-after-hook@npm:2.2.3" + checksum: 10/e676f769dbc4abcf4b3317db2fd2badb4a92c0710e0a7da12cf14b59c3482d4febf835ad7de7874499060fd4e13adf0191628e504728b3c5bb4ec7a878c09940 + languageName: node + linkType: hard + +"binary-extensions@npm:^2.0.0": + version: 2.3.0 + resolution: "binary-extensions@npm:2.3.0" + checksum: 10/bcad01494e8a9283abf18c1b967af65ee79b0c6a9e6fcfafebfe91dbe6e0fc7272bafb73389e198b310516ae04f7ad17d79aacf6cb4c0d5d5202a7e2e52c7d98 + languageName: node + linkType: hard + +"bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: "npm:^5.5.0" + inherits: "npm:^2.0.4" + readable-stream: "npm:^3.4.0" + checksum: 10/b7904e66ed0bdfc813c06ea6c3e35eafecb104369dbf5356d0f416af90c1546de3b74e5b63506f0629acf5e16a6f87c3798f16233dcff086e9129383aa02ab55 + languageName: node + linkType: hard + +"bn.js@npm:^5.2.1": + version: 5.2.2 + resolution: "bn.js@npm:5.2.2" + checksum: 10/51ebb2df83b33e5d8581165206e260d5e9c873752954616e5bf3758952b84d7399a9c6d00852815a0aeefb1150a7f34451b62d4287342d457fa432eee869e83e + languageName: node + linkType: hard + +"body-parser@npm:~1.20.3": + version: 1.20.4 + resolution: "body-parser@npm:1.20.4" + dependencies: + bytes: "npm:~3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:~1.2.0" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + on-finished: "npm:~2.4.1" + qs: "npm:~6.14.0" + raw-body: "npm:~2.5.3" + type-is: "npm:~1.6.18" + unpipe: "npm:~1.0.0" + checksum: 10/ff67e28d3f426707be8697a75fdf8d564dc50c341b41f054264d8ab6e2924e519c7ce8acc9d0de05328fdc41e1d9f3f200aec9c1cfb1867d6b676a410d97c689 + languageName: node + linkType: hard + +"bonjour-service@npm:^1.0.11": + version: 1.3.0 + resolution: "bonjour-service@npm:1.3.0" + dependencies: + fast-deep-equal: "npm:^3.1.3" + multicast-dns: "npm:^7.2.5" + checksum: 10/63d516d88f15fa4b89e247e6ff7d81c21a3ef5ed035b0b043c2b38e0c839f54f4ce58fbf9b7668027bf538ac86de366939dbb55cca63930f74eeea1e278c9585 + languageName: node + linkType: hard + +"boxen@npm:^5.0.0": + version: 5.1.2 + resolution: "boxen@npm:5.1.2" + dependencies: + ansi-align: "npm:^3.0.0" + camelcase: "npm:^6.2.0" + chalk: "npm:^4.1.0" + cli-boxes: "npm:^2.2.1" + string-width: "npm:^4.2.2" + type-fest: "npm:^0.20.2" + widest-line: "npm:^3.1.0" + wrap-ansi: "npm:^7.0.0" + checksum: 10/bc3d3d88d77dc8cabb0811844acdbd4805e8ca8011222345330817737042bf6f86d93eb74a3f7e0cab634e64ef69db03cf52b480761ed90a965de0c8ff1bea8c + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.12 + resolution: "brace-expansion@npm:1.1.12" + dependencies: + balanced-match: "npm:^1.0.0" + concat-map: "npm:0.0.1" + checksum: 10/12cb6d6310629e3048cadb003e1aca4d8c9bb5c67c3c321bafdd7e7a50155de081f78ea3e0ed92ecc75a9015e784f301efc8132383132f4f7904ad1ac529c562 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.2 + resolution: "brace-expansion@npm:2.0.2" + dependencies: + balanced-match: "npm:^1.0.0" + checksum: 10/01dff195e3646bc4b0d27b63d9bab84d2ebc06121ff5013ad6e5356daa5a9d6b60fa26cf73c74797f2dc3fbec112af13578d51f75228c1112b26c790a87b0488 + languageName: node + linkType: hard + +"braces@npm:^3.0.3, braces@npm:~3.0.2": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10/fad11a0d4697a27162840b02b1fad249c1683cbc510cd5bf1a471f2f8085c046d41094308c577a50a03a579dd99d5a6b3724c4b5e8b14df2c4443844cfcda2c6 + languageName: node + linkType: hard + +"browserslist@npm:^4.28.1": + version: 4.28.1 + resolution: "browserslist@npm:4.28.1" + dependencies: + baseline-browser-mapping: "npm:^2.9.0" + caniuse-lite: "npm:^1.0.30001759" + electron-to-chromium: "npm:^1.5.263" + node-releases: "npm:^2.0.27" + update-browserslist-db: "npm:^1.2.0" + bin: + browserslist: cli.js + checksum: 10/64f2a97de4bce8473c0e5ae0af8d76d1ead07a5b05fc6bc87b848678bb9c3a91ae787b27aa98cdd33fc00779607e6c156000bed58fefb9cf8e4c5a183b994cdb + languageName: node + linkType: hard + +"buffer-from@npm:^1.0.0": + version: 1.1.2 + resolution: "buffer-from@npm:1.1.2" + checksum: 10/0448524a562b37d4d7ed9efd91685a5b77a50672c556ea254ac9a6d30e3403a517d8981f10e565db24e8339413b43c97ca2951f10e399c6125a0d8911f5679bb + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: "npm:^1.3.1" + ieee754: "npm:^1.1.13" + checksum: 10/997434d3c6e3b39e0be479a80288875f71cd1c07d75a3855e6f08ef848a3c966023f79534e22e415ff3a5112708ce06127277ab20e527146d55c84566405c7c6 + languageName: node + linkType: hard + +"builtin-modules@npm:^3.3.0": + version: 3.3.0 + resolution: "builtin-modules@npm:3.3.0" + checksum: 10/62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e + languageName: node + linkType: hard + +"builtins@npm:^5.0.1": + version: 5.1.0 + resolution: "builtins@npm:5.1.0" + dependencies: + semver: "npm:^7.0.0" + checksum: 10/60aa9969f69656bf6eab82cd74b23ab805f112ae46a54b912bccc1533875760f2d2ce95e0a7d13144e35ada9f0386f17ed4961908bc9434b5a5e21375b1902b2 + languageName: node + linkType: hard + +"bytes@npm:3.1.2, bytes@npm:~3.1.2": + version: 3.1.2 + resolution: "bytes@npm:3.1.2" + checksum: 10/a10abf2ba70c784471d6b4f58778c0beeb2b5d405148e66affa91f23a9f13d07603d0a0354667310ae1d6dc141474ffd44e2a074be0f6e2254edb8fc21445388 + languageName: node + linkType: hard + +"cacache@npm:^20.0.1": + version: 20.0.3 + resolution: "cacache@npm:20.0.3" + dependencies: + "@npmcli/fs": "npm:^5.0.0" + fs-minipass: "npm:^3.0.0" + glob: "npm:^13.0.0" + lru-cache: "npm:^11.1.0" + minipass: "npm:^7.0.3" + minipass-collect: "npm:^2.0.1" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + p-map: "npm:^7.0.2" + ssri: "npm:^13.0.0" + unique-filename: "npm:^5.0.0" + checksum: 10/388a0169970df9d051da30437f93f81b7e91efb570ad0ff2b8fde33279fbe726c1bc8e8e2b9c05053ffb4f563854c73db395e8712e3b62347a1bc4f7fb8899ff + languageName: node + linkType: hard + +"cacheable-request@npm:^6.0.0": + version: 6.1.0 + resolution: "cacheable-request@npm:6.1.0" + dependencies: + clone-response: "npm:^1.0.2" + get-stream: "npm:^5.1.0" + http-cache-semantics: "npm:^4.0.0" + keyv: "npm:^3.0.0" + lowercase-keys: "npm:^2.0.0" + normalize-url: "npm:^4.1.0" + responselike: "npm:^1.0.2" + checksum: 10/804f6c377ce6fef31c584babde31d55c69305569058ad95c24a41bb7b33d0ea188d388467a9da6cb340e95a3a1f8a94e1f3a709fef5eaf9c6b88e62448fa29be + languageName: node + linkType: hard + +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + checksum: 10/00482c1f6aa7cfb30fb1dbeb13873edf81cfac7c29ed67a5957d60635a56b2a4a480f1016ddbdb3395cc37900d46037fb965043a51c5c789ffeab4fc535d18b5 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: "npm:^1.0.0" + es-define-property: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.4" + set-function-length: "npm:^1.2.2" + checksum: 10/659b03c79bbfccf0cde3a79e7d52570724d7290209823e1ca5088f94b52192dc1836b82a324d0144612f816abb2f1734447438e38d9dafe0b3f82c2a1b9e3bce + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10/ef2b96e126ec0e58a7ff694db43f4d0d44f80e641370c21549ed911fecbdbc2df3ebc9bddad918d6bbdefeafb60bb3337902006d5176d72bcd2da74820991af7 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 10/072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camelcase@npm:^6.2.0": + version: 6.3.0 + resolution: "camelcase@npm:6.3.0" + checksum: 10/8c96818a9076434998511251dcb2761a94817ea17dbdc37f47ac080bd088fc62c7369429a19e2178b993497132c8cbcf5cc1f44ba963e76782ba469c0474938d + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001759": + version: 1.0.30001762 + resolution: "caniuse-lite@npm:1.0.30001762" + checksum: 10/d60a589180198ac759fa1775e521862f03503286cc9354144adcd88e76d275f03b2b6e9cab1c606790eee9d6af5cedbedb048ec652f5ff77a2b229992b7c4845 + languageName: node + linkType: hard + +"chalk@npm:^2.4.2": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: "npm:^3.2.1" + escape-string-regexp: "npm:^1.0.5" + supports-color: "npm:^5.3.0" + checksum: 10/3d1d103433166f6bfe82ac75724951b33769675252d8417317363ef9d54699b7c3b2d46671b772b893a8e50c3ece70c4b933c73c01e81bc60ea4df9b55afa303 + languageName: node + linkType: hard + +"chalk@npm:^3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/37f90b31fd655fb49c2bd8e2a68aebefddd64522655d001ef417e6f955def0ed9110a867ffc878a533f2dafea5f2032433a37c8a7614969baa7f8a1cd424ddfc + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10/cb3f3e594913d63b1814d7ca7c9bafbf895f75fbf93b92991980610dfd7b48500af4e3a5d4e3a8f337990a96b168d7eb84ee55efdce965e2ee8efc20f8c8f139 + languageName: node + linkType: hard + +"changelog-parser@npm:^3.0.0": + version: 3.0.1 + resolution: "changelog-parser@npm:3.0.1" + dependencies: + line-reader: "npm:^0.2.4" + remove-markdown: "npm:^0.5.0" + bin: + changelog-parser: bin/cli.js + checksum: 10/681c10f43aaa02eb4706a4b883d464fee499dc1dfee679fb9414155b1c3a935126b97d2d0092f07ff62cbe431cf5926a4636856446ff40338ecc20b235ed2692 + languageName: node + linkType: hard + +"chardet@npm:^2.1.1": + version: 2.1.1 + resolution: "chardet@npm:2.1.1" + checksum: 10/d56913b65e45c5c86f331988e2ef6264c131bfeadaae098ee719bf6610546c77740e37221ffec802dde56b5e4466613a4c754786f4da6b5f6c5477243454d324 + languageName: node + linkType: hard + +"chokidar@npm:^3.5.3": + version: 3.6.0 + resolution: "chokidar@npm:3.6.0" + dependencies: + anymatch: "npm:~3.1.2" + braces: "npm:~3.0.2" + fsevents: "npm:~2.3.2" + glob-parent: "npm:~5.1.2" + is-binary-path: "npm:~2.1.0" + is-glob: "npm:~4.0.1" + normalize-path: "npm:~3.0.0" + readdirp: "npm:~3.6.0" + dependenciesMeta: + fsevents: + optional: true + checksum: 10/c327fb07704443f8d15f7b4a7ce93b2f0bc0e6cea07ec28a7570aa22cd51fcf0379df589403976ea956c369f25aa82d84561947e227cd925902e1751371658df + languageName: node + linkType: hard + +"chownr@npm:^3.0.0": + version: 3.0.0 + resolution: "chownr@npm:3.0.0" + checksum: 10/b63cb1f73d171d140a2ed8154ee6566c8ab775d3196b0e03a2a94b5f6a0ce7777ee5685ca56849403c8d17bd457a6540672f9a60696a6137c7a409097495b82c + languageName: node + linkType: hard + +"chrome-trace-event@npm:^1.0.2": + version: 1.0.4 + resolution: "chrome-trace-event@npm:1.0.4" + checksum: 10/1762bed739774903bf5915fe3045c3120fc3c7f7d929d88e566447ea38944937a6370ccb687278318c43c24f837ad22dac780bed67c066336815557b8cf558c6 + languageName: node + linkType: hard + +"ci-info@npm:^2.0.0": + version: 2.0.0 + resolution: "ci-info@npm:2.0.0" + checksum: 10/3b374666a85ea3ca43fa49aa3a048d21c9b475c96eb13c133505d2324e7ae5efd6a454f41efe46a152269e9b6a00c9edbe63ec7fa1921957165aae16625acd67 + languageName: node + linkType: hard + +"cli-boxes@npm:^2.2.1": + version: 2.2.1 + resolution: "cli-boxes@npm:2.2.1" + checksum: 10/be79f8ec23a558b49e01311b39a1ea01243ecee30539c880cf14bf518a12e223ef40c57ead0cb44f509bffdffc5c129c746cd50d863ab879385370112af4f585 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: "npm:^3.1.0" + checksum: 10/2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-spinners@npm:^2.2.0, cli-spinners@npm:^2.5.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 10/a0a863f442df35ed7294424f5491fa1756bd8d2e4ff0c8736531d886cec0ece4d85e8663b77a5afaf1d296e3cbbebff92e2e99f52bbea89b667cbe789b994794 + languageName: node + linkType: hard + +"cli-width@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-width@npm:3.0.0" + checksum: 10/8730848b04fb189666ab037a35888d191c8f05b630b1d770b0b0e4c920b47bb5cc14bddf6b8ffe5bfc66cee97c8211d4d18e756c1ffcc75d7dbe7e1186cd7826 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: "npm:^4.2.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^7.0.0" + checksum: 10/eaa5561aeb3135c2cddf7a3b3f562fc4238ff3b3fc666869ef2adf264be0f372136702f16add9299087fb1907c2e4ec5dbfe83bd24bce815c70a80c6c1a2e950 + languageName: node + linkType: hard + +"clone-deep@npm:^4.0.1": + version: 4.0.1 + resolution: "clone-deep@npm:4.0.1" + dependencies: + is-plain-object: "npm:^2.0.4" + kind-of: "npm:^6.0.2" + shallow-clone: "npm:^3.0.0" + checksum: 10/770f912fe4e6f21873c8e8fbb1e99134db3b93da32df271d00589ea4a29dbe83a9808a322c93f3bcaf8584b8b4fa6fc269fc8032efbaa6728e0c9886c74467d2 + languageName: node + linkType: hard + +"clone-response@npm:^1.0.2": + version: 1.0.3 + resolution: "clone-response@npm:1.0.3" + dependencies: + mimic-response: "npm:^1.0.0" + checksum: 10/4e671cac39b11c60aa8ba0a450657194a5d6504df51bca3fac5b3bd0145c4f8e8464898f87c8406b83232e3bc5cca555f51c1f9c8ac023969ebfbf7f6bdabb2e + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: 10/d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: "npm:1.1.3" + checksum: 10/ffa319025045f2973919d155f25e7c00d08836b6b33ea2d205418c59bd63a665d713c52d9737a9e0fe467fb194b40fbef1d849bae80d674568ee220a31ef3d10 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: "npm:~1.1.4" + checksum: 10/fa00c91b4332b294de06b443923246bccebe9fab1b253f7fe1772d37b06a2269b4039a85e309abe1fe11b267b11c08d1d0473fda3badd6167f57313af2887a64 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 10/09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:^1.1.4, color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: 10/b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 10/4bcfe30eea1498fe1cabc852bbda6c9770f230ea0e4faf4611c5858b1b9e4dde3730ac485e65f54ca182f4c50b626c1bea7c8441ceda47367a54a818c248aa7a + languageName: node + linkType: hard + +"colorette@npm:^2.0.10, colorette@npm:^2.0.14": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10/0b8de48bfa5d10afc160b8eaa2b9938f34a892530b2f7d7897e0458d9535a066e3998b49da9d21161c78225b272df19ae3a64d6df28b4c9734c0e55bbd02406f + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: "npm:~1.0.0" + checksum: 10/2e969e637d05d09fa50b02d74c83a1186f6914aae89e6653b62595cc75a221464f884f55f231b8f4df7a49537fba60bdc0427acd2bf324c09a1dbb84837e36e4 + languageName: node + linkType: hard + +"commander@npm:^10.0.1": + version: 10.0.1 + resolution: "commander@npm:10.0.1" + checksum: 10/8799faa84a30da985802e661cc9856adfaee324d4b138413013ef7f087e8d7924b144c30a1f1405475f0909f467665cd9e1ce13270a2f41b141dab0b7a58f3fb + languageName: node + linkType: hard + +"commander@npm:^13.0.0": + version: 13.1.0 + resolution: "commander@npm:13.1.0" + checksum: 10/d3b4b79e6be8471ddadacbb8cd441fe82154d7da7393b50e76165a9e29ccdb74fa911a186437b9a211d0fc071db6051915c94fb8ef16d77511d898e9dbabc6af + languageName: node + linkType: hard + +"commander@npm:^2.16.0, commander@npm:^2.20.0, commander@npm:^2.20.3, commander@npm:^2.8.1": + version: 2.20.3 + resolution: "commander@npm:2.20.3" + checksum: 10/90c5b6898610cd075984c58c4f88418a4fb44af08c1b1415e9854c03171bec31b336b7f3e4cefe33de994b3f12b03c5e2d638da4316df83593b9e82554e7e95b + languageName: node + linkType: hard + +"commander@npm:^7.2.0": + version: 7.2.0 + resolution: "commander@npm:7.2.0" + checksum: 10/9973af10727ad4b44f26703bf3e9fdc323528660a7590efe3aa9ad5042b4584c0deed84ba443f61c9d6f02dade54a5a5d3c95e306a1e1630f8374ae6db16c06d + languageName: node + linkType: hard + +"commander@npm:^9.5.0": + version: 9.5.0 + resolution: "commander@npm:9.5.0" + checksum: 10/41c49b3d0f94a1fbeb0463c85b13f15aa15a9e0b4d5e10a49c0a1d58d4489b549d62262b052ae0aa6cfda53299bee487bfe337825df15e342114dde543f82906 + languageName: node + linkType: hard + +"comment-parser@npm:^1.4.1": + version: 1.4.1 + resolution: "comment-parser@npm:1.4.1" + checksum: 10/16a3260b5e77819ebd9c99b0b65c7d6723b1ff73487bac9ce2d8f016a2847dd689e8663b88e1fad1444bbea89847c42f785708ac86a2c55f614f7095249bbf6b + languageName: node + linkType: hard + +"commondir@npm:^1.0.1": + version: 1.0.1 + resolution: "commondir@npm:1.0.1" + checksum: 10/4620bc4936a4ef12ce7dfcd272bb23a99f2ad68889a4e4ad766c9f8ad21af982511934d6f7050d4a8bde90011b1c15d56e61a1b4576d9913efbf697a20172d6c + languageName: node + linkType: hard + +"compressible@npm:~2.0.18": + version: 2.0.18 + resolution: "compressible@npm:2.0.18" + dependencies: + mime-db: "npm:>= 1.43.0 < 2" + checksum: 10/58321a85b375d39230405654721353f709d0c1442129e9a17081771b816302a012471a9b8f4864c7dbe02eef7f2aaac3c614795197092262e94b409c9be108f0 + languageName: node + linkType: hard + +"compression@npm:^1.7.4": + version: 1.8.1 + resolution: "compression@npm:1.8.1" + dependencies: + bytes: "npm:3.1.2" + compressible: "npm:~2.0.18" + debug: "npm:2.6.9" + negotiator: "npm:~0.6.4" + on-headers: "npm:~1.1.0" + safe-buffer: "npm:5.2.1" + vary: "npm:~1.1.2" + checksum: 10/e7552bfbd780f2003c6fe8decb44561f5cc6bc82f0c61e81122caff5ec656f37824084f52155b1e8ef31d7656cecbec9a2499b7a68e92e20780ffb39b479abb7 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 10/9680699c8e2b3af0ae22592cb764acaf973f292a7b71b8a06720233011853a58e256c89216a10cbe889727532fd77f8bcd49a760cedfde271b8e006c20e079f2 + languageName: node + linkType: hard + +"configstore@npm:^5.0.1": + version: 5.0.1 + resolution: "configstore@npm:5.0.1" + dependencies: + dot-prop: "npm:^5.2.0" + graceful-fs: "npm:^4.1.2" + make-dir: "npm:^3.0.0" + unique-string: "npm:^2.0.0" + write-file-atomic: "npm:^3.0.0" + xdg-basedir: "npm:^4.0.0" + checksum: 10/60ef65d493b63f96e14b11ba7ec072fdbf3d40110a94fb7199d1c287761bdea5c5244e76b2596325f30c1b652213aa75de96ea20afd4a5f82065e61ea090988e + languageName: node + linkType: hard + +"connect-history-api-fallback@npm:^2.0.0": + version: 2.0.0 + resolution: "connect-history-api-fallback@npm:2.0.0" + checksum: 10/3b26bf4041fdb33deacdcb3af9ae11e9a0b413fb14c95844d74a460b55e407625b364955dcf965c654605cde9d24ad5dad423c489aa430825aab2035859aba0c + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 10/27b5fa302bc8e9ae9e98c03c66d76ca289ad0c61ce2fe20ab288d288bee875d217512d2edb2363fc83165e88f1c405180cf3f5413a46e51b4fe1a004840c6cdb + languageName: node + linkType: hard + +"content-disposition@npm:~0.5.4": + version: 0.5.4 + resolution: "content-disposition@npm:0.5.4" + dependencies: + safe-buffer: "npm:5.2.1" + checksum: 10/b7f4ce176e324f19324be69b05bf6f6e411160ac94bc523b782248129eb1ef3be006f6cff431aaea5e337fe5d176ce8830b8c2a1b721626ead8933f0cbe78720 + languageName: node + linkType: hard + +"content-type@npm:~1.0.4, content-type@npm:~1.0.5": + version: 1.0.5 + resolution: "content-type@npm:1.0.5" + checksum: 10/585847d98dc7fb8035c02ae2cb76c7a9bd7b25f84c447e5ed55c45c2175e83617c8813871b4ee22f368126af6b2b167df655829007b21aa10302873ea9c62662 + languageName: node + linkType: hard + +"cookie-signature@npm:~1.0.6": + version: 1.0.7 + resolution: "cookie-signature@npm:1.0.7" + checksum: 10/1a62808cd30d15fb43b70e19829b64d04b0802d8ef00275b57d152de4ae6a3208ca05c197b6668d104c4d9de389e53ccc2d3bc6bcaaffd9602461417d8c40710 + languageName: node + linkType: hard + +"cookie@npm:~0.7.1": + version: 0.7.2 + resolution: "cookie@npm:0.7.2" + checksum: 10/24b286c556420d4ba4e9bc09120c9d3db7d28ace2bd0f8ccee82422ce42322f73c8312441271e5eefafbead725980e5996cc02766dbb89a90ac7f5636ede608f + languageName: node + linkType: hard + +"core-util-is@npm:~1.0.0": + version: 1.0.3 + resolution: "core-util-is@npm:1.0.3" + checksum: 10/9de8597363a8e9b9952491ebe18167e3b36e7707569eed0ebf14f8bba773611376466ae34575bca8cfe3c767890c859c74056084738f09d4e4a6f902b2ad7d99 + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10/0d52657d7ae36eb130999dffff1168ec348687b48dd38e2ff59992ed916c88d328cf1d07ff4a4a10bc78de5e1c23f04b306d569e42f7a2293915c081e4dfee86 + languageName: node + linkType: hard + +"crypto-random-string@npm:^2.0.0": + version: 2.0.0 + resolution: "crypto-random-string@npm:2.0.0" + checksum: 10/0283879f55e7c16fdceacc181f87a0a65c53bc16ffe1d58b9d19a6277adcd71900d02bb2c4843dd55e78c51e30e89b0fec618a7f170ebcc95b33182c28f05fd6 + languageName: node + linkType: hard + +"cssstyle@npm:^4.0.1": + version: 4.6.0 + resolution: "cssstyle@npm:4.6.0" + dependencies: + "@asamuzakjp/css-color": "npm:^3.2.0" + rrweb-cssom: "npm:^0.8.0" + checksum: 10/1cb25c9d66b87adb165f978b75cdeb6f225d7e31ba30a8934666046a0be037e4e7200d359bfa79d4f1a4aef1083ea09633b81bcdb36a2f2ac888e8c73ea3a289 + languageName: node + linkType: hard + +"data-uri-to-buffer@npm:^4.0.0": + version: 4.0.1 + resolution: "data-uri-to-buffer@npm:4.0.1" + checksum: 10/0d0790b67ffec5302f204c2ccca4494f70b4e2d940fea3d36b09f0bb2b8539c2e86690429eb1f1dc4bcc9e4df0644193073e63d9ee48ac9fce79ec1506e4aa4c + languageName: node + linkType: hard + +"data-urls@npm:^5.0.0": + version: 5.0.0 + resolution: "data-urls@npm:5.0.0" + dependencies: + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + checksum: 10/5c40568c31b02641a70204ff233bc4e42d33717485d074244a98661e5f2a1e80e38fe05a5755dfaf2ee549f2ab509d6a3af2a85f4b2ad2c984e5d176695eaf46 + languageName: node + linkType: hard + +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.2" + checksum: 10/c10b155a4e93999d3a215d08c23eea95f865e1f510b2e7748fcae1882b776df1afe8c99f483ace7fc0e5a3193ab08da138abebc9829d12003746c5a338c4d644 + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.2" + checksum: 10/2a47055fcf1ab3ec41b00b6f738c6461a841391a643c9ed9befec1117c1765b4d492661d97fb7cc899200c328949dca6ff189d2c6537d96d60e8a02dfe3c95f7 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-data-view: "npm:^1.0.1" + checksum: 10/fa3bdfa0968bea6711ee50375094b39f561bce3f15f9e558df59de9c25f0bdd4cddc002d9c1d70ac7772ebd36854a7e22d1761e7302a934e6f1c2263bcf44aa2 + languageName: node + linkType: hard + +"debug@npm:2.6.9": + version: 2.6.9 + resolution: "debug@npm:2.6.9" + dependencies: + ms: "npm:2.0.0" + checksum: 10/e07005f2b40e04f1bd14a3dd20520e9c4f25f60224cb006ce9d6781732c917964e9ec029fc7f1a151083cd929025ad5133814d4dc624a9aaf020effe4914ed14 + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4, debug@npm:^4.4.0": + version: 4.4.3 + resolution: "debug@npm:4.4.3" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/9ada3434ea2993800bd9a1e320bd4aa7af69659fb51cca685d390949434bc0a8873c21ed7c9b852af6f2455a55c6d050aa3937d52b3c69f796dab666f762acad + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: "npm:^2.1.1" + checksum: 10/d86fd7be2b85462297ea16f1934dc219335e802f629ca9a69b63ed8ed041dda492389bb2ee039217c02e5b54792b1c51aa96ae954cf28634d363a2360c7a1639 + languageName: node + linkType: hard + +"decimal.js@npm:^10.4.3": + version: 10.6.0 + resolution: "decimal.js@npm:10.6.0" + checksum: 10/c0d45842d47c311d11b38ce7ccc911121953d4df3ebb1465d92b31970eb4f6738a065426a06094af59bee4b0d64e42e7c8984abd57b6767c64ea90cf90bb4a69 + languageName: node + linkType: hard + +"decompress-response@npm:^3.3.0": + version: 3.3.0 + resolution: "decompress-response@npm:3.3.0" + dependencies: + mimic-response: "npm:^1.0.0" + checksum: 10/952552ac3bd7de2fc18015086b09468645c9638d98a551305e485230ada278c039c91116e946d07894b39ee53c0f0d5b6473f25a224029344354513b412d7380 + languageName: node + linkType: hard + +"decompress-response@npm:^6.0.0": + version: 6.0.0 + resolution: "decompress-response@npm:6.0.0" + dependencies: + mimic-response: "npm:^3.1.0" + checksum: 10/d377cf47e02d805e283866c3f50d3d21578b779731e8c5072d6ce8c13cc31493db1c2f6784da9d1d5250822120cefa44f1deab112d5981015f2e17444b763812 + languageName: node + linkType: hard + +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 10/7be7e5a8d468d6b10e6a67c3de828f55001b6eb515d014f7aeb9066ce36bd5717161eb47d6a0f7bed8a9083935b465bc163ee2581c8b128d29bf61092fdf57a7 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: 10/ec12d074aef5ae5e81fa470b9317c313142c9e8e2afe3f8efa124db309720db96d1d222b82b84c834e5f87e7a614b44a4684b6683583118b87c833b3be40d4d8 + languageName: node + linkType: hard + +"deepmerge@npm:^4.2.2": + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 10/058d9e1b0ff1a154468bf3837aea436abcfea1ba1d165ddaaf48ca93765fdd01a30d33c36173da8fbbed951dd0a267602bc782fe288b0fc4b7e1e7091afc4529 + languageName: node + linkType: hard + +"default-gateway@npm:^6.0.3": + version: 6.0.3 + resolution: "default-gateway@npm:6.0.3" + dependencies: + execa: "npm:^5.0.0" + checksum: 10/126f8273ecac8ee9ff91ea778e8784f6cd732d77c3157e8c5bdd6ed03651b5291f71446d05bc02d04073b1e67583604db5394ea3cf992ede0088c70ea15b7378 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: "npm:^1.0.2" + checksum: 10/3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + languageName: node + linkType: hard + +"defer-to-connect@npm:^1.0.1": + version: 1.1.3 + resolution: "defer-to-connect@npm:1.1.3" + checksum: 10/9491b301dcfa04956f989481ba7a43c2231044206269eb4ab64a52d6639ee15b1252262a789eb4239fb46ab63e44d4e408641bae8e0793d640aee55398cb3930 + languageName: node + linkType: hard + +"define-data-property@npm:^1.0.1, define-data-property@npm:^1.1.4": + version: 1.1.4 + resolution: "define-data-property@npm:1.1.4" + dependencies: + es-define-property: "npm:^1.0.0" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.0.1" + checksum: 10/abdcb2505d80a53524ba871273e5da75e77e52af9e15b3aa65d8aad82b8a3a424dad7aee2cc0b71470ac7acf501e08defac362e8b6a73cdb4309f028061df4ae + languageName: node + linkType: hard + +"define-lazy-prop@npm:^2.0.0": + version: 2.0.0 + resolution: "define-lazy-prop@npm:2.0.0" + checksum: 10/0115fdb065e0490918ba271d7339c42453d209d4cb619dfe635870d906731eff3e1ade8028bb461ea27ce8264ec5e22c6980612d332895977e89c1bbc80fcee2 + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.2.1": + version: 1.2.1 + resolution: "define-properties@npm:1.2.1" + dependencies: + define-data-property: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.0" + object-keys: "npm:^1.1.1" + checksum: 10/b4ccd00597dd46cb2d4a379398f5b19fca84a16f3374e2249201992f36b30f6835949a9429669ee6b41b6e837205a163eadd745e472069e70dfc10f03e5fcc12 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 10/46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:~2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: 10/c0c8ff36079ce5ada64f46cc9d6fd47ebcf38241105b6e0c98f412e8ad91f084bcf906ff644cc3a4bd876ca27a62accb8b0fff72ea6ed1a414b89d8506f4a5ca + languageName: node + linkType: hard + +"depd@npm:~1.1.2": + version: 1.1.2 + resolution: "depd@npm:1.1.2" + checksum: 10/2ed6966fc14463a9e85451db330ab8ba041efed0b9a1a472dbfc6fbf2f82bab66491915f996b25d8517dddc36c8c74e24c30879b34877f3c4410733444a51d1d + languageName: node + linkType: hard + +"dependency-tree@npm:^9.0.0": + version: 9.0.0 + resolution: "dependency-tree@npm:9.0.0" + dependencies: + commander: "npm:^2.20.3" + debug: "npm:^4.3.1" + filing-cabinet: "npm:^3.0.1" + precinct: "npm:^9.0.0" + typescript: "npm:^4.0.0" + bin: + dependency-tree: bin/cli.js + checksum: 10/7ffc6009bf6eeea712cead1c18d57f87e2d9c0ca5a3327b12daf368de5350f85c613558ae4274e7b49b23010533746917d84ad75dd4fd4d731d61a2eaaf9e310 + languageName: node + linkType: hard + +"deprecation@npm:^2.0.0": + version: 2.3.1 + resolution: "deprecation@npm:2.3.1" + checksum: 10/f56a05e182c2c195071385455956b0c4106fe14e36245b00c689ceef8e8ab639235176a96977ba7c74afb173317fac2e0ec6ec7a1c6d1e6eaa401c586c714132 + languageName: node + linkType: hard + +"destroy@npm:1.2.0, destroy@npm:~1.2.0": + version: 1.2.0 + resolution: "destroy@npm:1.2.0" + checksum: 10/0acb300b7478a08b92d810ab229d5afe0d2f4399272045ab22affa0d99dbaf12637659411530a6fcd597a9bdac718fc94373a61a95b4651bbc7b83684a565e38 + languageName: node + linkType: hard + +"detect-indent@npm:^6.0.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: 10/ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d + languageName: node + linkType: hard + +"detect-node@npm:^2.0.4": + version: 2.1.0 + resolution: "detect-node@npm:2.1.0" + checksum: 10/832184ec458353e41533ac9c622f16c19f7c02d8b10c303dfd3a756f56be93e903616c0bb2d4226183c9351c15fc0b3dba41a17a2308262afabcfa3776e6ae6e + languageName: node + linkType: hard + +"detective-amd@npm:^3.1.0": + version: 3.1.2 + resolution: "detective-amd@npm:3.1.2" + dependencies: + ast-module-types: "npm:^3.0.0" + escodegen: "npm:^2.0.0" + get-amd-module-type: "npm:^3.0.0" + node-source-walk: "npm:^4.2.0" + bin: + detective-amd: bin/cli.js + checksum: 10/0b71555edad8e85c9a2ae85e2799d5faf2bdfe0de969587c9288ca76e717494678e34f444dffe32ffdd432e85ce50ca7017a5d0441a4855677a45a40c4590c74 + languageName: node + linkType: hard + +"detective-amd@npm:^4.0.1, detective-amd@npm:^4.1.0": + version: 4.2.0 + resolution: "detective-amd@npm:4.2.0" + dependencies: + ast-module-types: "npm:^4.0.0" + escodegen: "npm:^2.0.0" + get-amd-module-type: "npm:^4.1.0" + node-source-walk: "npm:^5.0.1" + bin: + detective-amd: bin/cli.js + checksum: 10/c1e829a3202045796105680c9fe90ac61f63b0ccecc12cc30c7204c9e7ec22a4e2c3e2357719b9346a4e3579eba778cdce9a050e642938e2a4c8b57b091278e4 + languageName: node + linkType: hard + +"detective-cjs@npm:^3.1.1": + version: 3.1.3 + resolution: "detective-cjs@npm:3.1.3" + dependencies: + ast-module-types: "npm:^3.0.0" + node-source-walk: "npm:^4.0.0" + checksum: 10/a691cb4afbbfea59d9aae0ee00752ec1a825a7ef18fc9178b53664975f162f3b537268590def009d9ce1cccfc5bc4f38cf775df08d0872aaacc05d96c72de85a + languageName: node + linkType: hard + +"detective-cjs@npm:^4.0.0, detective-cjs@npm:^4.1.0": + version: 4.1.0 + resolution: "detective-cjs@npm:4.1.0" + dependencies: + ast-module-types: "npm:^4.0.0" + node-source-walk: "npm:^5.0.1" + checksum: 10/17e40183959e9f377333a9fd03dcf4cbabf1b7a9f588882311066ecaaad68ad16765a7b63ffc096fc91d2a3c14ac044ed1823257c76105c9cb96dfc141a806e2 + languageName: node + linkType: hard + +"detective-es6@npm:^2.2.1": + version: 2.2.2 + resolution: "detective-es6@npm:2.2.2" + dependencies: + node-source-walk: "npm:^4.0.0" + checksum: 10/9ee9909c089f5dcd1f89eccd347d509197996280ba24e2e08742bbc5ca3eef655ff07b4edfd76b52d6b4376ba03b8ec17d621c9f9c4382a6ba233dc1b1d00d33 + languageName: node + linkType: hard + +"detective-es6@npm:^3.0.0, detective-es6@npm:^3.0.1": + version: 3.0.1 + resolution: "detective-es6@npm:3.0.1" + dependencies: + node-source-walk: "npm:^5.0.0" + checksum: 10/881a0c16b49504c212e61a521231ebbb4299a6102b178230959c74d2ca22d5f7538dfaf9518d01fb568ff93eadcf61d865d4428c9fed893dd4c91a7f29d515c5 + languageName: node + linkType: hard + +"detective-less@npm:^1.0.2": + version: 1.0.2 + resolution: "detective-less@npm:1.0.2" + dependencies: + debug: "npm:^4.0.0" + gonzales-pe: "npm:^4.2.3" + node-source-walk: "npm:^4.0.0" + checksum: 10/858936fbad87423bd5d7502ff5fafca023e7c99e4006ed01b31c12c4b5ff8697edce91419798479d857efec68ee8f022fcac64de5530db6a64012be600a2249e + languageName: node + linkType: hard + +"detective-postcss@npm:^4.0.0": + version: 4.0.0 + resolution: "detective-postcss@npm:4.0.0" + dependencies: + debug: "npm:^4.1.1" + is-url: "npm:^1.2.4" + postcss: "npm:^8.1.7" + postcss-values-parser: "npm:^2.0.1" + checksum: 10/9bd5d35554bf51f255db2640f14745f83c10352ba4c4f499096ee4f21547fd7fab501f3dc4017aa7d3bee3b1b455f1162a8067d1810c62d4b1806c96bd6c238e + languageName: node + linkType: hard + +"detective-postcss@npm:^6.1.0, detective-postcss@npm:^6.1.1": + version: 6.1.3 + resolution: "detective-postcss@npm:6.1.3" + dependencies: + is-url: "npm:^1.2.4" + postcss: "npm:^8.4.23" + postcss-values-parser: "npm:^6.0.2" + checksum: 10/ee6e07fed20ac93a6ba84736b9c586a942a4a6b2df173f963f95ea753380c99e4a606da22b8d9e8407c50e356f3d893a127eb68cf84c97233a209e9fbbadb026 + languageName: node + linkType: hard + +"detective-sass@npm:^3.0.1": + version: 3.0.2 + resolution: "detective-sass@npm:3.0.2" + dependencies: + gonzales-pe: "npm:^4.3.0" + node-source-walk: "npm:^4.0.0" + checksum: 10/7489e5ae7dbed2eba89855cea21ad32321e8e92bd9f2d3b925e7feec0dd9aa8b4b865296525275938e573a3be9759715490038103cbc970570a1c48c4f2fd23d + languageName: node + linkType: hard + +"detective-sass@npm:^4.0.1, detective-sass@npm:^4.1.1": + version: 4.1.3 + resolution: "detective-sass@npm:4.1.3" + dependencies: + gonzales-pe: "npm:^4.3.0" + node-source-walk: "npm:^5.0.1" + checksum: 10/91681e90037cc935f38b2867fab2aa5585848491b3a269dfb44b37721146ff83f57a540d964b15db22dc1f232623568bedfd13470ec7363e6111991d4d3fe573 + languageName: node + linkType: hard + +"detective-scss@npm:^2.0.1": + version: 2.0.2 + resolution: "detective-scss@npm:2.0.2" + dependencies: + gonzales-pe: "npm:^4.3.0" + node-source-walk: "npm:^4.0.0" + checksum: 10/515ff1b8946ec92baead48ef435efe1ea0f33ee1d98a7537dd700f1d06dd192f9ea0971c10343adcb08b561ab296d01c18a1f62d0b63163a8f4c09885a956e1a + languageName: node + linkType: hard + +"detective-scss@npm:^3.0.0, detective-scss@npm:^3.0.1": + version: 3.1.1 + resolution: "detective-scss@npm:3.1.1" + dependencies: + gonzales-pe: "npm:^4.3.0" + node-source-walk: "npm:^5.0.1" + checksum: 10/3d9c0468216c822c25572e700b9aba1e2e2797d336b6b84fd455d83ce849263324855008d1e58d6ccdf9c7a4f099e31277b99e885407cd19674e0bb10fc458cd + languageName: node + linkType: hard + +"detective-stylus@npm:^1.0.0": + version: 1.0.3 + resolution: "detective-stylus@npm:1.0.3" + checksum: 10/2723da93545f3a55a2a7eaa76b50712457af3c93c2b003e95d02f4c240d5e5206a5df99209a4f5b54128c11fc4270c2de1d7316b4f7d02b359483ae74f5a6637 + languageName: node + linkType: hard + +"detective-stylus@npm:^2.0.1": + version: 2.0.1 + resolution: "detective-stylus@npm:2.0.1" + checksum: 10/c701ba6df3e6b5346aa5dd37b8329a9069a20fd7d075933e2e3b819a75922a2adab809143591151e7337183d59c980e6bc64ad6e51ce96de864575221c1b9506 + languageName: node + linkType: hard + +"detective-stylus@npm:^3.0.0": + version: 3.0.0 + resolution: "detective-stylus@npm:3.0.0" + checksum: 10/e82eda490406d289f7b22050423ad69eb1c0f0d88414adaa292de4ab533be3c50d4cf512a9fefba426f3ad20789f0c0db3b0d32f70162112ca89034bbc5ca9d3 + languageName: node + linkType: hard + +"detective-typescript@npm:^7.0.0": + version: 7.0.2 + resolution: "detective-typescript@npm:7.0.2" + dependencies: + "@typescript-eslint/typescript-estree": "npm:^4.33.0" + ast-module-types: "npm:^2.7.1" + node-source-walk: "npm:^4.2.0" + typescript: "npm:^3.9.10" + checksum: 10/77703410baa242029dc5e7d02cca7a26278dea498ec1c3320f92efa08a85263affc3b102fc2b09952ece1d2c851a3808733d7bfa9ed11944a7c0f39920e33ec9 + languageName: node + linkType: hard + +"detective-typescript@npm:^9.0.0, detective-typescript@npm:^9.1.1": + version: 9.1.1 + resolution: "detective-typescript@npm:9.1.1" + dependencies: + "@typescript-eslint/typescript-estree": "npm:^5.55.0" + ast-module-types: "npm:^4.0.0" + node-source-walk: "npm:^5.0.1" + typescript: "npm:^4.9.5" + checksum: 10/5f50801f622740d4e9d724ce04518ceb81591215bf18c18c5d22f6f3948df49dfb0a8bbe3596dac47220a37028bc2879ccd7a968f265217c9855817bda4622f5 + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: "npm:^4.0.0" + checksum: 10/fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"dns-packet@npm:^5.2.2": + version: 5.6.1 + resolution: "dns-packet@npm:5.6.1" + dependencies: + "@leichtgewicht/ip-codec": "npm:^2.0.1" + checksum: 10/ef5496dd5a906e22ed262cbe1a6f5d532c0893c4f1884a7aa37d4d0d8b8376a2b43f749aab087c8bb1354d67b40444f7fca8de4017b161a4cea468543061aed3 + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10/555684f77e791b17173ea86e2eea45ef26c22219cb64670669c4f4bebd26dbc95cd90ec1f4159e9349a6bb9eb892ce4dde8cd0139e77bedd8bf4518238618474 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: "npm:^2.0.2" + checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48 + languageName: node + linkType: hard + +"dot-prop@npm:^5.2.0": + version: 5.3.0 + resolution: "dot-prop@npm:5.3.0" + dependencies: + is-obj: "npm:^2.0.0" + checksum: 10/33b2561617bd5c73cf9305368ba4638871c5dbf9c8100c8335acd2e2d590a81ec0e75c11cfaea5cc3cf8c2f668cad4beddb52c11856d0c9e666348eee1baf57a + languageName: node + linkType: hard + +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + gopd: "npm:^1.2.0" + checksum: 10/5add88a3d68d42d6e6130a0cac450b7c2edbe73364bbd2fc334564418569bea97c6943a8fcd70e27130bf32afc236f30982fc4905039b703f23e9e0433c29934 + languageName: node + linkType: hard + +"duplexer3@npm:^0.1.4": + version: 0.1.5 + resolution: "duplexer3@npm:0.1.5" + checksum: 10/e677cb4c48f031ca728601d6a20bf6aed4c629d69ef9643cb89c67583d673c4ec9317cc6427501f38bd8c368d3a18f173987cc02bd99d8cf8fe3d94259a22a20 + languageName: node + linkType: hard + +"duplexify@npm:^4.1.1": + version: 4.1.3 + resolution: "duplexify@npm:4.1.3" + dependencies: + end-of-stream: "npm:^1.4.1" + inherits: "npm:^2.0.3" + readable-stream: "npm:^3.1.1" + stream-shift: "npm:^1.0.2" + checksum: 10/b44b98ba0ffac3a658b4b1bf877219e996db288c5ae6f3dc55ca9b2cbef7df60c10eabfdd947f3d73a623eb9975a74a66d6d61e6f26bff90155315adb362aa77 + languageName: node + linkType: hard + +"ee-first@npm:1.1.1": + version: 1.1.1 + resolution: "ee-first@npm:1.1.1" + checksum: 10/1b4cac778d64ce3b582a7e26b218afe07e207a0f9bfe13cc7395a6d307849cfe361e65033c3251e00c27dd060cab43014c2d6b2647676135e18b77d2d05b3f4f + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.5.263": + version: 1.5.267 + resolution: "electron-to-chromium@npm:1.5.267" + checksum: 10/05e55e810cb6a3cda8d29dfdeec7ac0e59727a77a796a157f1a1d65edac16d45eed69ed5c99e354872ab16c48967c2d0a0600653051ae380a3b7a4d6210b1e60 + languageName: node + linkType: hard + +"email-addresses@npm:^5.0.0": + version: 5.0.0 + resolution: "email-addresses@npm:5.0.0" + checksum: 10/a7897e3b43893f1e9cc61f0e8c7cbe59c36c6cdd0b5ad7e4061f1976893260f496fd799fb78b2621e483a95fa6c7caec4a035ba320193d9540159dfcdb737004 + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: 10/c72d67a6821be15ec11997877c437491c313d924306b8da5d87d2a2bcc2cec9903cb5b04ee1a088460501d8e5b44f10df82fdc93c444101a7610b80c8b6938e1 + languageName: node + linkType: hard + +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10/abf5cd51b78082cf8af7be6785813c33b6df2068ce5191a40ca8b1afe6a86f9230af9a9ce694a5ce4665955e5c1120871826df9c128a642e09c58d592e2807fe + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: "npm:^0.6.2" + checksum: 10/bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.1": + version: 1.4.5 + resolution: "end-of-stream@npm:1.4.5" + dependencies: + once: "npm:^1.4.0" + checksum: 10/1e0cfa6e7f49887544e03314f9dfc56a8cb6dde910cbb445983ecc2ff426fc05946df9d75d8a21a3a64f2cecfe1bf88f773952029f46756b2ed64a24e95b1fb8 + languageName: node + linkType: hard + +"enhanced-resolve@npm:^5.17.4, enhanced-resolve@npm:^5.8.3": + version: 5.18.4 + resolution: "enhanced-resolve@npm:5.18.4" + dependencies: + graceful-fs: "npm:^4.2.4" + tapable: "npm:^2.2.0" + checksum: 10/dcd477cb694d9cc84109a03269c13d3da0851d50099fd3fa7c56b2867dd720d59c7f1431bd47c9cad2825ad52588bd71d3a68cf1e5ee0bc57551d8a3fab4e6f2 + languageName: node + linkType: hard + +"entities@npm:^6.0.0": + version: 6.0.1 + resolution: "entities@npm:6.0.1" + checksum: 10/62af1307202884349d2867f0aac5c60d8b57102ea0b0e768b16246099512c28e239254ad772d6834e7e14cb1b6f153fc3d0c031934e3183b086c86d3838d874a + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 10/65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"envinfo@npm:^7.7.3": + version: 7.21.0 + resolution: "envinfo@npm:7.21.0" + bin: + envinfo: dist/cli.js + checksum: 10/2469a72802ded4e43c007dcd1c5dd44d8049b7d18276874dcc3f3f14a54bc72806fa35e82760974ca1442d82f5f9df3651048204e72791f81bcdd5f07422a561 + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 10/1d20d825cdcce8d811bfbe86340f4755c02655a7feb2f13f8c880566d9d72a3f6c92c192a6867632e490d6da67b678271f46e01044996a6443e870331100dfdd + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.4 + resolution: "error-ex@npm:1.3.4" + dependencies: + is-arrayish: "npm:^0.2.1" + checksum: 10/ae3939fd4a55b1404e877df2080c6b59acc516d5b7f08a181040f78f38b4e2399633bfed2d9a21b91c803713fff7295ac70bebd8f3657ef352a95c2cd9aa2e4b + languageName: node + linkType: hard + +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0, es-abstract@npm:^1.24.1": + version: 1.24.1 + resolution: "es-abstract@npm:1.24.1" + dependencies: + array-buffer-byte-length: "npm:^1.0.2" + arraybuffer.prototype.slice: "npm:^1.0.4" + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + data-view-buffer: "npm:^1.0.2" + data-view-byte-length: "npm:^1.0.2" + data-view-byte-offset: "npm:^1.0.1" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + es-set-tostringtag: "npm:^2.1.0" + es-to-primitive: "npm:^1.3.0" + function.prototype.name: "npm:^1.1.8" + get-intrinsic: "npm:^1.3.0" + get-proto: "npm:^1.0.1" + get-symbol-description: "npm:^1.1.0" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + internal-slot: "npm:^1.1.0" + is-array-buffer: "npm:^3.0.5" + is-callable: "npm:^1.2.7" + is-data-view: "npm:^1.0.2" + is-negative-zero: "npm:^2.0.3" + is-regex: "npm:^1.2.1" + is-set: "npm:^2.0.3" + is-shared-array-buffer: "npm:^1.0.4" + is-string: "npm:^1.1.1" + is-typed-array: "npm:^1.1.15" + is-weakref: "npm:^1.1.1" + math-intrinsics: "npm:^1.1.0" + object-inspect: "npm:^1.13.4" + object-keys: "npm:^1.1.1" + object.assign: "npm:^4.1.7" + own-keys: "npm:^1.0.1" + regexp.prototype.flags: "npm:^1.5.4" + safe-array-concat: "npm:^1.1.3" + safe-push-apply: "npm:^1.0.0" + safe-regex-test: "npm:^1.1.0" + set-proto: "npm:^1.0.0" + stop-iteration-iterator: "npm:^1.1.0" + string.prototype.trim: "npm:^1.2.10" + string.prototype.trimend: "npm:^1.0.9" + string.prototype.trimstart: "npm:^1.0.8" + typed-array-buffer: "npm:^1.0.3" + typed-array-byte-length: "npm:^1.0.3" + typed-array-byte-offset: "npm:^1.0.4" + typed-array-length: "npm:^1.0.7" + unbox-primitive: "npm:^1.1.0" + which-typed-array: "npm:^1.1.19" + checksum: 10/c84cb69ebae36781309a3ed70ff40b4767a921d3b3518060fac4e08f14ede04491b68e9f318aedf186e349d4af4a40f5d0e4111e46513800e8368551fd09de8c + languageName: node + linkType: hard + +"es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 10/f8dc9e660d90919f11084db0a893128f3592b781ce967e4fccfb8f3106cb83e400a4032c559184ec52ee1dbd4b01e7776c7cd0b3327b1961b1a4a7008920fe78 + languageName: node + linkType: hard + +"es-errors@npm:^1.3.0": + version: 1.3.0 + resolution: "es-errors@npm:1.3.0" + checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 + languageName: node + linkType: hard + +"es-iterator-helpers@npm:^1.2.1": + version: 1.2.2 + resolution: "es-iterator-helpers@npm:1.2.2" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.24.1" + es-errors: "npm:^1.3.0" + es-set-tostringtag: "npm:^2.1.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.3.0" + globalthis: "npm:^1.0.4" + gopd: "npm:^1.2.0" + has-property-descriptors: "npm:^1.0.2" + has-proto: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + iterator.prototype: "npm:^1.1.5" + safe-array-concat: "npm:^1.1.3" + checksum: 10/17b5b2834c4f5719d6ce0e837a4d11c6ba4640bee28290d22ec4daf7106ec3d5fe0ff4f7e5dbaa2b4612e8335934360e964a8f08608d43f2889da106b25481ee + languageName: node + linkType: hard + +"es-module-lexer@npm:^2.0.0": + version: 2.0.0 + resolution: "es-module-lexer@npm:2.0.0" + checksum: 10/b075855289b5f40ee496f3d7525c5c501d029c3da15c22298a0030d625bf36d1da0768b26278f7f4bada2a602459b505888e20b77c414fba5da5619b0e84dbd1 + languageName: node + linkType: hard + +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: "npm:^1.3.0" + checksum: 10/54fe77de288451dae51c37bfbfe3ec86732dc3778f98f3eb3bdb4bf48063b2c0b8f9c93542656986149d08aa5be3204286e2276053d19582b76753f1a2728867 + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/86814bf8afbcd8966653f731415888019d4bc4aca6b6c354132a7a75bb87566751e320369654a101d23a91c87a85c79b178bcf40332839bd347aff437c4fb65f + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": + version: 1.1.0 + resolution: "es-shim-unscopables@npm:1.1.0" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/c351f586c30bbabc62355be49564b2435468b52c3532b8a1663672e3d10dc300197e69c247869dd173e56d86423ab95fc0c10b0939cdae597094e0fdca078cba + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" + dependencies: + is-callable: "npm:^1.2.7" + is-date-object: "npm:^1.0.5" + is-symbol: "npm:^1.0.4" + checksum: 10/17faf35c221aad59a16286cbf58ef6f080bf3c485dff202c490d074d8e74da07884e29b852c245d894eac84f73c58330ec956dfd6d02c0b449d75eb1012a3f9b + languageName: node + linkType: hard + +"escalade@npm:^3.1.1, escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10/9d7169e3965b2f9ae46971afa392f6e5a25545ea30f2e2dd99c9b0a95a3f52b5653681a84f5b2911a413ddad2d7a93d3514165072f349b5ffc59c75a899970d6 + languageName: node + linkType: hard + +"escape-goat@npm:^2.0.0": + version: 2.1.1 + resolution: "escape-goat@npm:2.1.1" + checksum: 10/ce05c70c20dd7007b60d2d644b625da5412325fdb57acf671ba06cb2ab3cd6789e2087026921a05b665b0a03fadee2955e7fc0b9a67da15a6551a980b260eba7 + languageName: node + linkType: hard + +"escape-html@npm:~1.0.3": + version: 1.0.3 + resolution: "escape-html@npm:1.0.3" + checksum: 10/6213ca9ae00d0ab8bccb6d8d4e0a98e76237b2410302cf7df70aaa6591d509a2a37ce8998008cbecae8fc8ffaadf3fb0229535e6a145f3ce0b211d060decbb24 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.2, escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10/6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 10/98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"escodegen@npm:^2.0.0": + version: 2.1.0 + resolution: "escodegen@npm:2.1.0" + dependencies: + esprima: "npm:^4.0.1" + estraverse: "npm:^5.2.0" + esutils: "npm:^2.0.2" + source-map: "npm:~0.6.1" + dependenciesMeta: + source-map: + optional: true + bin: + escodegen: bin/escodegen.js + esgenerate: bin/esgenerate.js + checksum: 10/47719a65b2888b4586e3fa93769068b275961c13089e90d5d01a96a6e8e95871b1c3893576814c8fbf08a4a31a496f37e7b2c937cf231270f4d81de012832c7c + languageName: node + linkType: hard + +"eslint-compat-utils@npm:^0.5.1": + version: 0.5.1 + resolution: "eslint-compat-utils@npm:0.5.1" + dependencies: + semver: "npm:^7.5.4" + peerDependencies: + eslint: ">=6.0.0" + checksum: 10/ac65ac1c6107cf19f63f5fc17cea361c9cb1336be7356f23dbb0fac10979974b4622e13e950be43cbf431801f2c07f7dab448573181ccf6edc0b86d5b5304511 + languageName: node + linkType: hard + +"eslint-config-standard@npm:^17.1.0": + version: 17.1.0 + resolution: "eslint-config-standard@npm:17.1.0" + peerDependencies: + eslint: ^8.0.1 + eslint-plugin-import: ^2.25.2 + eslint-plugin-n: "^15.0.0 || ^16.0.0 " + eslint-plugin-promise: ^6.0.0 + checksum: 10/1fb3f98a1badee85a8378e9a8df21ebfc3d6a0556fca309b7e9ddd60243cbeb2486e3d5706dafbf296b116b3b28b5aa3ff00536b2f3067092e98157074a95b1d + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: "npm:^3.2.7" + is-core-module: "npm:^2.13.0" + resolve: "npm:^1.22.4" + checksum: 10/d52e08e1d96cf630957272e4f2644dcfb531e49dcfd1edd2e07e43369eb2ec7a7d4423d417beee613201206ff2efa4eb9a582b5825ee28802fc7c71fcd53ca83 + languageName: node + linkType: hard + +"eslint-import-resolver-typescript@npm:^3.6.1": + version: 3.10.1 + resolution: "eslint-import-resolver-typescript@npm:3.10.1" + dependencies: + "@nolyfill/is-core-module": "npm:1.0.39" + debug: "npm:^4.4.0" + get-tsconfig: "npm:^4.10.0" + is-bun-module: "npm:^2.0.0" + stable-hash: "npm:^0.0.5" + tinyglobby: "npm:^0.2.13" + unrs-resolver: "npm:^1.6.2" + peerDependencies: + eslint: "*" + eslint-plugin-import: "*" + eslint-plugin-import-x: "*" + peerDependenciesMeta: + eslint-plugin-import: + optional: true + eslint-plugin-import-x: + optional: true + checksum: 10/b8d6a9b2045c70f043f722f78c9e65bc0283126f0ad92c8f07473f7647d77f7b1562f765a472f17e06b81897b407091c0ec9f2e4592b158c9fd92d0b0c33de89 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.12.1": + version: 2.12.1 + resolution: "eslint-module-utils@npm:2.12.1" + dependencies: + debug: "npm:^3.2.7" + peerDependenciesMeta: + eslint: + optional: true + checksum: 10/bd25d6610ec3abaa50e8f1beb0119541562bbb8dd02c035c7e887976fe1e0c5dd8175f4607ca8d86d1146df24d52a071bd3d1dd329f6902bd58df805a8ca16d3 + languageName: node + linkType: hard + +"eslint-plugin-deprecation@npm:^2.0.0": + version: 2.0.0 + resolution: "eslint-plugin-deprecation@npm:2.0.0" + dependencies: + "@typescript-eslint/utils": "npm:^6.0.0" + tslib: "npm:^2.3.1" + tsutils: "npm:^3.21.0" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: ^4.2.4 || ^5.0.0 + checksum: 10/810276afa258155a35c863bb2138ebd2132447c3ed219e360915b0e7b4c6e77e09ae2931583d200b1f23e19040a27ad81c0927538a46392334bb4c3c4a2038b4 + languageName: node + linkType: hard + +"eslint-plugin-es-x@npm:^7.5.0": + version: 7.8.0 + resolution: "eslint-plugin-es-x@npm:7.8.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.1.2" + "@eslint-community/regexpp": "npm:^4.11.0" + eslint-compat-utils: "npm:^0.5.1" + peerDependencies: + eslint: ">=8" + checksum: 10/1df8d52c4fadc06854ce801af05b05f2642aa2deb918fb7d37738596eabd70b7f21a22b150b78ec9104bac6a1b6b4fb796adea2364ede91b01d20964849ce5f7 + languageName: node + linkType: hard + +"eslint-plugin-header@npm:^3.1.1": + version: 3.1.1 + resolution: "eslint-plugin-header@npm:3.1.1" + peerDependencies: + eslint: ">=7.7.0" + checksum: 10/6fc7d6e7e2c386e2efa25fb467c0a290fea6330f80acfc6c8fcd3a8473c9023615571463ecd5240b818677660c5e78840fce501d70537802eaebe6bec7e76799 + languageName: node + linkType: hard + +"eslint-plugin-import-newlines@npm:^1.3.4": + version: 1.4.0 + resolution: "eslint-plugin-import-newlines@npm:1.4.0" + peerDependencies: + eslint: ">=6.0.0" + bin: + import-linter: lib/index.js + checksum: 10/66cbf205433e4f31afa0dcdce4f66a55fe33123bfda9ff265b93efcf201cccde382b225c3b5403c890dff558bf596874d0e398fe182b42eb109e9191b8851063 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:^2.29.1": + version: 2.32.0 + resolution: "eslint-plugin-import@npm:2.32.0" + dependencies: + "@rtsao/scc": "npm:^1.1.0" + array-includes: "npm:^3.1.9" + array.prototype.findlastindex: "npm:^1.2.6" + array.prototype.flat: "npm:^1.3.3" + array.prototype.flatmap: "npm:^1.3.3" + debug: "npm:^3.2.7" + doctrine: "npm:^2.1.0" + eslint-import-resolver-node: "npm:^0.3.9" + eslint-module-utils: "npm:^2.12.1" + hasown: "npm:^2.0.2" + is-core-module: "npm:^2.16.1" + is-glob: "npm:^4.0.3" + minimatch: "npm:^3.1.2" + object.fromentries: "npm:^2.0.8" + object.groupby: "npm:^1.0.3" + object.values: "npm:^1.2.1" + semver: "npm:^6.3.1" + string.prototype.trimend: "npm:^1.0.9" + tsconfig-paths: "npm:^3.15.0" + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 10/1bacf4967e9ebf99e12176a795f0d6d3a87d1c9a030c2207f27b267e10d96a1220be2647504c7fc13ab543cdf13ffef4b8f5620e0447032dba4ff0d3922f7c9e + languageName: node + linkType: hard + +"eslint-plugin-jest@npm:^27.6.3": + version: 27.9.0 + resolution: "eslint-plugin-jest@npm:27.9.0" + dependencies: + "@typescript-eslint/utils": "npm:^5.10.0" + peerDependencies: + "@typescript-eslint/eslint-plugin": ^5.0.0 || ^6.0.0 || ^7.0.0 + eslint: ^7.0.0 || ^8.0.0 + jest: "*" + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + jest: + optional: true + checksum: 10/bca54347280c06c56516faea76042134dd74355c2de6c23361ba0e8736ecc01c62b144eea7eda7570ea4f4ee511c583bb8dab00d7153a1bd1740eb77b0038fd4 + languageName: node + linkType: hard + +"eslint-plugin-n@npm:^16.6.2": + version: 16.6.2 + resolution: "eslint-plugin-n@npm:16.6.2" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + builtins: "npm:^5.0.1" + eslint-plugin-es-x: "npm:^7.5.0" + get-tsconfig: "npm:^4.7.0" + globals: "npm:^13.24.0" + ignore: "npm:^5.2.4" + is-builtin-module: "npm:^3.2.1" + is-core-module: "npm:^2.12.1" + minimatch: "npm:^3.1.2" + resolve: "npm:^1.22.2" + semver: "npm:^7.5.3" + peerDependencies: + eslint: ">=7.0.0" + checksum: 10/e0f600d03d3a3df57e9a811648b1b534a6d67c90ea9406340ddf3763c2b87cf5ef910b390f787ca5cb27c8d8ff36aad42d70209b54e2a1cb4cc2507ca417229a + languageName: node + linkType: hard + +"eslint-plugin-promise@npm:^6.1.1": + version: 6.6.0 + resolution: "eslint-plugin-promise@npm:6.6.0" + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 + checksum: 10/c2b5604efd7e1390c132fcbf06cb2f072c956ffa65c14a991cb74ba1e2327357797239cb5b9b292d5e4010301bb897bd85a6273d7873fb157edc46aa2d95cbd9 + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:^4.6.0": + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:^7.33.2": + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" + dependencies: + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" + array.prototype.flatmap: "npm:^1.3.3" + array.prototype.tosorted: "npm:^1.1.4" + doctrine: "npm:^2.1.0" + es-iterator-helpers: "npm:^1.2.1" + estraverse: "npm:^5.3.0" + hasown: "npm:^2.0.2" + jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" + minimatch: "npm:^3.1.2" + object.entries: "npm:^1.1.9" + object.fromentries: "npm:^2.0.8" + object.values: "npm:^1.2.1" + prop-types: "npm:^15.8.1" + resolve: "npm:^2.0.0-next.5" + semver: "npm:^6.3.1" + string.prototype.matchall: "npm:^4.0.12" + string.prototype.repeat: "npm:^1.0.0" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10/ee1bd4e0ec64f29109d5a625bb703d179c82e0159c86c3f1b52fc1209d2994625a137dae303c333fb308a2e38315e44066d5204998177e31974382f9fda25d5c + languageName: node + linkType: hard + +"eslint-plugin-simple-import-sort@npm:^10.0.0": + version: 10.0.0 + resolution: "eslint-plugin-simple-import-sort@npm:10.0.0" + peerDependencies: + eslint: ">=5.0.0" + checksum: 10/462187d3c137ba0986586a4759fe57c1c3fc1850750cb785f335b9b235346a1d96ebfcfb558847fc1a3b319718f2736178a66a61a0c184c86d48b21c1e0df26b + languageName: node + linkType: hard + +"eslint-plugin-sort-destructure-keys@npm:^1.5.0": + version: 1.6.0 + resolution: "eslint-plugin-sort-destructure-keys@npm:1.6.0" + dependencies: + natural-compare-lite: "npm:^1.4.0" + peerDependencies: + eslint: 3 - 9 + checksum: 10/621359cb223e2b4bf4256f2034a64af163c8f45c14178be29672a7c8b09e3e70575ff362088f4f3d022e8fd61f4ed1a56474ca866ec8fc476331e8723607960c + languageName: node + linkType: hard + +"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^4.1.1" + checksum: 10/c541ef384c92eb5c999b7d3443d80195fcafb3da335500946f6db76539b87d5826c8f2e1d23bf6afc3154ba8cd7c8e566f8dc00f1eea25fdf3afc8fb9c87b238 + languageName: node + linkType: hard + +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" + dependencies: + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^2.0.0": + version: 2.1.0 + resolution: "eslint-visitor-keys@npm:2.1.0" + checksum: 10/db4547eef5039122d518fa307e938ceb8589da5f6e8f5222efaf14dd62f748ce82e2d2becd3ff9412a50350b726bda95dbea8515a471074547daefa58aee8735 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": + version: 3.4.3 + resolution: "eslint-visitor-keys@npm:3.4.3" + checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b + languageName: node + linkType: hard + +"eslint@npm:^8.56.0": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@eslint-community/regexpp": "npm:^4.6.1" + "@eslint/eslintrc": "npm:^2.1.4" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@nodelib/fs.walk": "npm:^1.2.8" + "@ungap/structured-clone": "npm:^1.2.0" + ajv: "npm:^6.12.4" + chalk: "npm:^4.0.0" + cross-spawn: "npm:^7.0.2" + debug: "npm:^4.3.2" + doctrine: "npm:^3.0.0" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^7.2.2" + eslint-visitor-keys: "npm:^3.4.3" + espree: "npm:^9.6.1" + esquery: "npm:^1.4.2" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^6.0.1" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + globals: "npm:^13.19.0" + graphemer: "npm:^1.4.0" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + is-path-inside: "npm:^3.0.3" + js-yaml: "npm:^4.1.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + levn: "npm:^0.4.1" + lodash.merge: "npm:^4.6.2" + minimatch: "npm:^3.1.2" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + strip-ansi: "npm:^6.0.1" + text-table: "npm:^0.2.0" + bin: + eslint: bin/eslint.js + checksum: 10/5504fa24879afdd9f9929b2fbfc2ee9b9441a3d464efd9790fbda5f05738858530182029f13323add68d19fec749d3ab4a70320ded091ca4432b1e9cc4ed104c + languageName: node + linkType: hard + +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" + dependencies: + acorn: "npm:^8.9.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^3.4.1" + checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 + languageName: node + linkType: hard + +"esprima@npm:^4.0.0, esprima@npm:^4.0.1": + version: 4.0.1 + resolution: "esprima@npm:4.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10/f1d3c622ad992421362294f7acf866aa9409fbad4eb2e8fa230bd33944ce371d32279667b242d8b8907ec2b6ad7353a717f3c0e60e748873a34a7905174bc0eb + languageName: node + linkType: hard + +"esquery@npm:^1.4.2": + version: 1.7.0 + resolution: "esquery@npm:1.7.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10/4afaf3089367e1f5885caa116ef386dffd8bfd64da21fd3d0e56e938d2667cfb2e5400ab4a825aa70e799bb3741e5b5d63c0b94d86e2d4cf3095c9e64b2f5a15 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: "npm:^5.2.0" + checksum: 10/44ffcd89e714ea6b30143e7f119b104fc4d75e77ee913f34d59076b40ef2d21967f84e019f84e1fd0465b42cdbf725db449f232b5e47f29df29ed76194db8e16 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: 10/3f67ad02b6dbfaddd9ea459cf2b6ef4ecff9a6082a7af9d22e445b9abc082ad9ca47e1825557b293fcdae477f4714e561123e30bb6a5b2f184fb2bad4a9497eb + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 10/37cbe6e9a68014d34dbdc039f90d0baf72436809d02edffcc06ba3c2a12eb298048f877511353b130153e532aac8d68ba78430c0dd2f44806ebc7c014b01585e + languageName: node + linkType: hard + +"estree-walker@npm:^0.6.1": + version: 0.6.1 + resolution: "estree-walker@npm:0.6.1" + checksum: 10/b8da7815030c4e0b735f5f8af370af09525e052ee14e539cecabc24ad6da1782448778361417e7c438091a59e7ca9f4a0c11642f7da4f2ebf1ba7a150a590bcc + languageName: node + linkType: hard + +"estree-walker@npm:^2.0.2": + version: 2.0.2 + resolution: "estree-walker@npm:2.0.2" + checksum: 10/b02109c5d46bc2ed47de4990eef770f7457b1159a229f0999a09224d2b85ffeed2d7679cffcff90aeb4448e94b0168feb5265b209cdec29aad50a3d6e93d21e2 + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 10/b23acd24791db11d8f65be5ea58fd9a6ce2df5120ae2da65c16cfc5331ff59d5ac4ef50af66cd4bde238881503ec839928a0135b99a036a9cdfa22d17fd56cdb + languageName: node + linkType: hard + +"etag@npm:~1.8.1": + version: 1.8.1 + resolution: "etag@npm:1.8.1" + checksum: 10/571aeb3dbe0f2bbd4e4fadbdb44f325fc75335cd5f6f6b6a091e6a06a9f25ed5392f0863c5442acb0646787446e816f13cbfc6edce5b07658541dff573cab1ff + languageName: node + linkType: hard + +"eventemitter3@npm:^4.0.0": + version: 4.0.7 + resolution: "eventemitter3@npm:4.0.7" + checksum: 10/8030029382404942c01d0037079f1b1bc8fed524b5849c237b80549b01e2fc49709e1d0c557fa65ca4498fc9e24cff1475ef7b855121fcc15f9d61f93e282346 + languageName: node + linkType: hard + +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10/ac6423ec31124629c84c7077eed1e6987f6d66c31cf43c6fcbf6c87791d56317ce808d9ead483652436df171b526fc7220eccdc9f3225df334e81582c3cf7dd5 + languageName: node + linkType: hard + +"events@npm:^3.2.0": + version: 3.3.0 + resolution: "events@npm:3.3.0" + checksum: 10/a3d47e285e28d324d7180f1e493961a2bbb4cad6412090e4dec114f4db1f5b560c7696ee8e758f55e23913ede856e3689cd3aa9ae13c56b5d8314cd3b3ddd1be + languageName: node + linkType: hard + +"execa@npm:^5.0.0": + version: 5.1.1 + resolution: "execa@npm:5.1.1" + dependencies: + cross-spawn: "npm:^7.0.3" + get-stream: "npm:^6.0.0" + human-signals: "npm:^2.1.0" + is-stream: "npm:^2.0.0" + merge-stream: "npm:^2.0.0" + npm-run-path: "npm:^4.0.1" + onetime: "npm:^5.1.2" + signal-exit: "npm:^3.0.3" + strip-final-newline: "npm:^2.0.0" + checksum: 10/8ada91f2d70f7dff702c861c2c64f21dfdc1525628f3c0454fd6f02fce65f7b958616cbd2b99ca7fa4d474e461a3d363824e91b3eb881705231abbf387470597 + languageName: node + linkType: hard + +"exponential-backoff@npm:^3.1.1": + version: 3.1.3 + resolution: "exponential-backoff@npm:3.1.3" + checksum: 10/ca25962b4bbab943b7c4ed0b5228e263833a5063c65e1cdeac4be9afad350aae5466e8e619b5051f4f8d37b2144a2d6e8fcc771b6cc82934f7dade2f964f652c + languageName: node + linkType: hard + +"express@npm:^4.17.3": + version: 4.22.1 + resolution: "express@npm:4.22.1" + dependencies: + accepts: "npm:~1.3.8" + array-flatten: "npm:1.1.1" + body-parser: "npm:~1.20.3" + content-disposition: "npm:~0.5.4" + content-type: "npm:~1.0.4" + cookie: "npm:~0.7.1" + cookie-signature: "npm:~1.0.6" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + finalhandler: "npm:~1.3.1" + fresh: "npm:~0.5.2" + http-errors: "npm:~2.0.0" + merge-descriptors: "npm:1.0.3" + methods: "npm:~1.1.2" + on-finished: "npm:~2.4.1" + parseurl: "npm:~1.3.3" + path-to-regexp: "npm:~0.1.12" + proxy-addr: "npm:~2.0.7" + qs: "npm:~6.14.0" + range-parser: "npm:~1.2.1" + safe-buffer: "npm:5.2.1" + send: "npm:~0.19.0" + serve-static: "npm:~1.16.2" + setprototypeof: "npm:1.2.0" + statuses: "npm:~2.0.1" + type-is: "npm:~1.6.18" + utils-merge: "npm:1.0.1" + vary: "npm:~1.1.2" + checksum: 10/f33c1bd0c7d36e2a1f18de9cdc176469d32f68e20258d2941b8d296ab9a4fd9011872c246391bf87714f009fac5114c832ec5ac65cbee39421f1258801eb8470 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: 10/e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9": + version: 3.3.3 + resolution: "fast-glob@npm:3.3.3" + dependencies: + "@nodelib/fs.stat": "npm:^2.0.2" + "@nodelib/fs.walk": "npm:^1.2.3" + glob-parent: "npm:^5.1.2" + merge2: "npm:^1.3.0" + micromatch: "npm:^4.0.8" + checksum: 10/dcc6432b269762dd47381d8b8358bf964d8f4f60286ac6aa41c01ade70bda459ff2001b516690b96d5365f68a49242966112b5d5cc9cd82395fa8f9d017c90ad + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: 10/2c20055c1fa43c922428f16ca8bb29f2807de63e5c851f665f7ac9790176c01c3b40335257736b299764a8d383388dabc73c8083b8e1bc3d99f0a941444ec60e + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 10/eb7e220ecf2bab5159d157350b81d01f75726a4382f5a9266f42b9150c4523b9795f7f5d9fbbbeaeac09a441b2369f05ee02db48ea938584205530fe5693cfe1 + languageName: node + linkType: hard + +"fast-uri@npm:^3.0.1": + version: 3.1.0 + resolution: "fast-uri@npm:3.1.0" + checksum: 10/818b2c96dc913bcf8511d844c3d2420e2c70b325c0653633f51821e4e29013c2015387944435cd0ef5322c36c9beecc31e44f71b257aeb8e0b333c1d62bb17c2 + languageName: node + linkType: hard + +"fastest-levenshtein@npm:^1.0.12": + version: 1.0.16 + resolution: "fastest-levenshtein@npm:1.0.16" + checksum: 10/ee85d33b5cef592033f70e1c13ae8624055950b4eb832435099cd56aa313d7f251b873bedbc06a517adfaff7b31756d139535991e2406967438e03a1bf1b008e + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.20.1 + resolution: "fastq@npm:1.20.1" + dependencies: + reusify: "npm:^1.0.4" + checksum: 10/ab2fe3a7a108112e7752cfe7fc11683c21e595913a6a593ad0b4415f31dddbfc283775ab66f2c8ccea6ab7cfc116157cbddcfae9798d9de98d08fe0a2c3e97b2 + languageName: node + linkType: hard + +"faye-websocket@npm:^0.11.3": + version: 0.11.4 + resolution: "faye-websocket@npm:0.11.4" + dependencies: + websocket-driver: "npm:>=0.5.1" + checksum: 10/22433c14c60925e424332d2794463a8da1c04848539b5f8db5fced62a7a7c71a25335a4a8b37334e3a32318835e2b87b1733d008561964121c4a0bd55f0878c3 + languageName: node + linkType: hard + +"fdir@npm:^6.5.0": + version: 6.5.0 + resolution: "fdir@npm:6.5.0" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: 10/14ca1c9f0a0e8f4f2e9bf4e8551065a164a09545dae548c12a18d238b72e51e5a7b39bd8e5494b56463a0877672d0a6c1ef62c6fa0677db1b0c847773be939b1 + languageName: node + linkType: hard + +"fetch-blob@npm:^3.1.2, fetch-blob@npm:^3.1.4": + version: 3.2.0 + resolution: "fetch-blob@npm:3.2.0" + dependencies: + node-domexception: "npm:^1.0.0" + web-streams-polyfill: "npm:^3.0.3" + checksum: 10/5264ecceb5fdc19eb51d1d0359921f12730941e333019e673e71eb73921146dceabcb0b8f534582be4497312d656508a439ad0f5edeec2b29ab2e10c72a1f86b + languageName: node + linkType: hard + +"figures@npm:^3.0.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: "npm:^1.0.5" + checksum: 10/a3bf94e001be51d3770500789157f067218d4bc681a65e1f69d482de15120bcac822dceb1a7b3803f32e4e3a61a46df44f7f2c8ba95d6375e7491502e0dd3d97 + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: "npm:^3.0.4" + checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b + languageName: node + linkType: hard + +"filename-reserved-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "filename-reserved-regex@npm:2.0.0" + checksum: 10/9322b45726b86c45d0b4fe91be5c51e62b2e7e63db02c4a6ff3fd499bbc134d12fbf3c8b91979440ef45b3be834698ab9c3e66cb63b79fea4817e33da237d32a + languageName: node + linkType: hard + +"filenamify@npm:^4.3.0": + version: 4.3.0 + resolution: "filenamify@npm:4.3.0" + dependencies: + filename-reserved-regex: "npm:^2.0.0" + strip-outer: "npm:^1.0.1" + trim-repeated: "npm:^1.0.0" + checksum: 10/5b71a7ff8e958c8621957e6fbf7872024126d3b5da50f59b1634af3343ba1a69d4cc15cfe4ca4bbfa7c959ad4d98614ee51e6f1d9fa7326eef8ceda2da8cd74e + languageName: node + linkType: hard + +"filing-cabinet@npm:^3.0.1": + version: 3.3.1 + resolution: "filing-cabinet@npm:3.3.1" + dependencies: + app-module-path: "npm:^2.2.0" + commander: "npm:^2.20.3" + debug: "npm:^4.3.3" + enhanced-resolve: "npm:^5.8.3" + is-relative-path: "npm:^1.0.2" + module-definition: "npm:^3.3.1" + module-lookup-amd: "npm:^7.0.1" + resolve: "npm:^1.21.0" + resolve-dependency-path: "npm:^2.0.0" + sass-lookup: "npm:^3.0.0" + stylus-lookup: "npm:^3.0.1" + tsconfig-paths: "npm:^3.10.1" + typescript: "npm:^3.9.7" + bin: + filing-cabinet: bin/cli.js + checksum: 10/c4e71efffa1714e2fe862fa7741446a6307ce03a27f01faed3cc4969c9fc395dddd4d1e095569ce0bf6b6c95826f2665883465971f3346ba179f815b888e8151 + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10/a7095cb39e5bc32fada2aa7c7249d3f6b01bd1ce461a61b0adabacccabd9198500c6fb1f68a7c851a657e273fce2233ba869638897f3d7ed2e87a2d89b4436ea + languageName: node + linkType: hard + +"finalhandler@npm:~1.3.1": + version: 1.3.2 + resolution: "finalhandler@npm:1.3.2" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + on-finished: "npm:~2.4.1" + parseurl: "npm:~1.3.3" + statuses: "npm:~2.0.2" + unpipe: "npm:~1.0.0" + checksum: 10/6cb4f9f80eaeb5a0fac4fdbd27a65d39271f040a0034df16556d896bfd855fd42f09da886781b3102117ea8fceba97b903c1f8b08df1fb5740576d5e0f481eed + languageName: node + linkType: hard + +"find-cache-dir@npm:^3.3.1": + version: 3.3.2 + resolution: "find-cache-dir@npm:3.3.2" + dependencies: + commondir: "npm:^1.0.1" + make-dir: "npm:^3.0.2" + pkg-dir: "npm:^4.1.0" + checksum: 10/3907c2e0b15132704ed67083686cd3e68ab7d9ecc22e50ae9da20678245d488b01fa22c0e34c0544dc6edc4354c766f016c8c186a787be7c17f7cde8c5281e85 + languageName: node + linkType: hard + +"find-up@npm:^4.0.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: "npm:^5.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: "npm:^6.0.0" + path-exists: "npm:^4.0.0" + checksum: 10/07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" + dependencies: + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" + rimraf: "npm:^3.0.2" + checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 + languageName: node + linkType: hard + +"flat@npm:^5.0.2": + version: 5.0.2 + resolution: "flat@npm:5.0.2" + bin: + flat: cli.js + checksum: 10/72479e651c15eab53e25ce04c31bab18cfaac0556505cac19221dbbe85bbb9686bc76e4d397e89e5bf516ce667dcf818f8b07e585568edba55abc2bf1f698fb5 + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.3 + resolution: "flatted@npm:3.3.3" + checksum: 10/8c96c02fbeadcf4e8ffd0fa24983241e27698b0781295622591fc13585e2f226609d95e422bcf2ef044146ffacb6b68b1f20871454eddf75ab3caa6ee5f4a1fe + languageName: node + linkType: hard + +"flatten@npm:^1.0.2": + version: 1.0.3 + resolution: "flatten@npm:1.0.3" + checksum: 10/5c57379816f1692aaa79fbc6390e0a0644e5e8442c5783ed57c6d315468eddbc53a659eaa03c9bb1e771b0f4a9bd8dd8a2620286bf21fd6538a7857321fdfb20 + languageName: node + linkType: hard + +"follow-redirects@npm:^1.0.0": + version: 1.15.11 + resolution: "follow-redirects@npm:1.15.11" + peerDependenciesMeta: + debug: + optional: true + checksum: 10/07372fd74b98c78cf4d417d68d41fdaa0be4dcacafffb9e67b1e3cf090bc4771515e65020651528faab238f10f9b9c0d9707d6c1574a6c0387c5de1042cde9ba + languageName: node + linkType: hard + +"for-each@npm:^0.3.3, for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" + dependencies: + is-callable: "npm:^1.2.7" + checksum: 10/330cc2439f85c94f4609de3ee1d32c5693ae15cdd7fe3d112c4fd9efd4ce7143f2c64ef6c2c9e0cfdb0058437f33ef05b5bdae5b98fcc903fb2143fbaf0fea0f + languageName: node + linkType: hard + +"form-data@npm:^4.0.0": + version: 4.0.5 + resolution: "form-data@npm:4.0.5" + dependencies: + asynckit: "npm:^0.4.0" + combined-stream: "npm:^1.0.8" + es-set-tostringtag: "npm:^2.1.0" + hasown: "npm:^2.0.2" + mime-types: "npm:^2.1.12" + checksum: 10/52ecd6e927c8c4e215e68a7ad5e0f7c1031397439672fd9741654b4a94722c4182e74cc815b225dcb5be3f4180f36428f67c6dd39eaa98af0dcfdd26c00c19cd + languageName: node + linkType: hard + +"formdata-polyfill@npm:^4.0.10": + version: 4.0.10 + resolution: "formdata-polyfill@npm:4.0.10" + dependencies: + fetch-blob: "npm:^3.1.2" + checksum: 10/9b5001d2edef3c9449ac3f48bd4f8cc92e7d0f2e7c1a5c8ba555ad4e77535cc5cf621fabe49e97f304067037282dd9093b9160a3cb533e46420b446c4e6bc06f + languageName: node + linkType: hard + +"forwarded@npm:0.2.0": + version: 0.2.0 + resolution: "forwarded@npm:0.2.0" + checksum: 10/29ba9fd347117144e97cbb8852baae5e8b2acb7d1b591ef85695ed96f5b933b1804a7fac4a15dd09ca7ac7d0cdc104410e8102aae2dd3faa570a797ba07adb81 + languageName: node + linkType: hard + +"fresh@npm:~0.5.2": + version: 0.5.2 + resolution: "fresh@npm:0.5.2" + checksum: 10/64c88e489b5d08e2f29664eb3c79c705ff9a8eb15d3e597198ef76546d4ade295897a44abb0abd2700e7ef784b2e3cbf1161e4fbf16f59129193fd1030d16da1 + languageName: node + linkType: hard + +"fs-extra@npm:^11.1.1": + version: 11.3.3 + resolution: "fs-extra@npm:11.3.3" + dependencies: + graceful-fs: "npm:^4.2.0" + jsonfile: "npm:^6.0.1" + universalify: "npm:^2.0.0" + checksum: 10/daeaefafbebe8fa6efd2fb96fc926f2c952be5877811f00a6794f0d64e0128e3d0d93368cd328f8f063b45deacf385c40e3d931aa46014245431cd2f4f89c67a + languageName: node + linkType: hard + +"fs-minipass@npm:^3.0.0": + version: 3.0.3 + resolution: "fs-minipass@npm:3.0.3" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/af143246cf6884fe26fa281621d45cfe111d34b30535a475bfa38dafe343dadb466c047a924ffc7d6b7b18265df4110224ce3803806dbb07173bf2087b648d7f + languageName: node + linkType: hard + +"fs-monkey@npm:^1.0.4": + version: 1.1.0 + resolution: "fs-monkey@npm:1.1.0" + checksum: 10/1c6da5d07f6c91e31fd9bcd68909666e18fa243c7af6697e9d2ded16d4ee87cc9c2b67889b19f98211006c228d1915e1beb0678b4080778fb52539ef3e4eab6c + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 10/e703107c28e362d8d7b910bbcbfd371e640a3bb45ae157a362b5952c0030c0b6d4981140ec319b347bce7adc025dd7813da1ff908a945ac214d64f5402a51b96 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.3 + resolution: "fsevents@npm:2.3.3" + dependencies: + node-gyp: "npm:latest" + checksum: 10/4c1ade961ded57cdbfbb5cac5106ec17bc8bccd62e16343c569a0ceeca83b9dfef87550b4dc5cbb89642da412b20c5071f304c8c464b80415446e8e155a038c0 + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@npm%3A~2.3.2#optional!builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#optional!builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: "npm:latest" + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.2": + version: 1.1.2 + resolution: "function-bind@npm:1.1.2" + checksum: 10/185e20d20f10c8d661d59aac0f3b63b31132d492e1b11fcc2a93cb2c47257ebaee7407c38513efd2b35cafdf972d9beb2ea4593c1e0f3bf8f2744836928d7454 + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + functions-have-names: "npm:^1.2.3" + hasown: "npm:^2.0.2" + is-callable: "npm:^1.2.7" + checksum: 10/25b9e5bea936732a6f0c0c08db58cc0d609ac1ed458c6a07ead46b32e7b9bf3fe5887796c3f83d35994efbc4fdde81c08ac64135b2c399b8f2113968d44082bc + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.3": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: 10/0ddfd3ed1066a55984aaecebf5419fbd9344a5c38dd120ffb0739fac4496758dcf371297440528b115e4367fc46e3abc86a2cc0ff44612181b175ae967a11a05 + languageName: node + linkType: hard + +"gauge@npm:^v5.0.0": + version: 5.0.2 + resolution: "gauge@npm:5.0.2" + dependencies: + aproba: "npm:^1.0.3 || ^2.0.0" + color-support: "npm:^1.1.3" + console-control-strings: "npm:^1.1.0" + has-unicode: "npm:^2.0.1" + signal-exit: "npm:^4.0.1" + string-width: "npm:^4.2.3" + strip-ansi: "npm:^6.0.1" + wide-align: "npm:^1.1.5" + checksum: 10/7ed6930e03622e3651182d9312ea763e208e7e71bf126505a59a4424820af2715fdbc4f0655f92a092f3f1015c425094421c9d1a898dbe33cf6779d3e7e91e5c + languageName: node + linkType: hard + +"generator-function@npm:^2.0.0": + version: 2.0.1 + resolution: "generator-function@npm:2.0.1" + checksum: 10/eb7e7eb896c5433f3d40982b2ccacdb3dd990dd3499f14040e002b5d54572476513be8a2e6f9609f6e41ab29f2c4469307611ddbfc37ff4e46b765c326663805 + languageName: node + linkType: hard + +"get-amd-module-type@npm:^3.0.0": + version: 3.0.2 + resolution: "get-amd-module-type@npm:3.0.2" + dependencies: + ast-module-types: "npm:^3.0.0" + node-source-walk: "npm:^4.2.2" + checksum: 10/dd41d3d966677ee03b2f51ffe0e9cd1e37df4757ec490c31d67840042d6dc3173c019ec82d03ed12282338239589b3380dac6c59508b4f4ab802f28f1c9c8a8d + languageName: node + linkType: hard + +"get-amd-module-type@npm:^4.1.0": + version: 4.1.0 + resolution: "get-amd-module-type@npm:4.1.0" + dependencies: + ast-module-types: "npm:^4.0.0" + node-source-walk: "npm:^5.0.1" + checksum: 10/b12fe94eeee65df44010d7046f5435661d220b1f8132fbc11e525f2eab4ef2d9e6114c439e9905621f71449e5e43f588f21d29243a53bef36bcfcf5252481b6d + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: 10/b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": + version: 1.3.1 + resolution: "get-intrinsic@npm:1.3.1" + dependencies: + async-function: "npm:^1.0.0" + async-generator-function: "npm:^1.0.0" + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.1.1" + function-bind: "npm:^1.1.2" + generator-function: "npm:^2.0.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + hasown: "npm:^2.0.2" + math-intrinsics: "npm:^1.1.0" + checksum: 10/bb579dda84caa4a3a41611bdd483dade7f00f246f2a7992eb143c5861155290df3fdb48a8406efa3dfb0b434e2c8fafa4eebd469e409d0439247f85fc3fa2cc1 + languageName: node + linkType: hard + +"get-own-enumerable-property-symbols@npm:^3.0.0": + version: 3.0.2 + resolution: "get-own-enumerable-property-symbols@npm:3.0.2" + checksum: 10/8f0331f14159f939830884799f937343c8c0a2c330506094bc12cbee3665d88337fe97a4ea35c002cc2bdba0f5d9975ad7ec3abb925015cdf2a93e76d4759ede + languageName: node + linkType: hard + +"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: "npm:^1.0.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + +"get-stream@npm:^4.1.0": + version: 4.1.0 + resolution: "get-stream@npm:4.1.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10/12673e8aebc79767d187b203e5bfabb8266304037815d3bcc63b6f8c67c6d4ad0d98d4d4528bcdc1cbea68f1dd91bcbd87827aa3cdcfa9c5fa4a4644716d72c2 + languageName: node + linkType: hard + +"get-stream@npm:^5.1.0": + version: 5.2.0 + resolution: "get-stream@npm:5.2.0" + dependencies: + pump: "npm:^3.0.0" + checksum: 10/13a73148dca795e41421013da6e3ebff8ccb7fba4d2f023fd0c6da2c166ec4e789bec9774a73a7b49c08daf2cae552f8a3e914042ac23b5f59dd278cc8f9cbfb + languageName: node + linkType: hard + +"get-stream@npm:^6.0.0": + version: 6.0.1 + resolution: "get-stream@npm:6.0.1" + checksum: 10/781266d29725f35c59f1d214aedc92b0ae855800a980800e2923b3fbc4e56b3cb6e462c42e09a1cf1a00c64e056a78fa407cbe06c7c92b7e5cd49b4b85c2a497 + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.6" + checksum: 10/a353e3a9595a74720b40fb5bae3ba4a4f826e186e83814d93375182384265676f59e49998b9cdfac4a2225ce95a3d32a68f502a2c5619303987f1c183ab80494 + languageName: node + linkType: hard + +"get-tsconfig@npm:^4.10.0, get-tsconfig@npm:^4.7.0": + version: 4.13.0 + resolution: "get-tsconfig@npm:4.13.0" + dependencies: + resolve-pkg-maps: "npm:^1.0.0" + checksum: 10/3603c6da30e312636e4c20461e779114c9126601d1eca70ee4e36e3e3c00e3c21892d2d920027333afa2cc9e20998a436b14abe03a53cde40742581cb0e9ceb2 + languageName: node + linkType: hard + +"gh-pages@npm:^6.1.1": + version: 6.3.0 + resolution: "gh-pages@npm:6.3.0" + dependencies: + async: "npm:^3.2.4" + commander: "npm:^13.0.0" + email-addresses: "npm:^5.0.0" + filenamify: "npm:^4.3.0" + find-cache-dir: "npm:^3.3.1" + fs-extra: "npm:^11.1.1" + globby: "npm:^11.1.0" + bin: + gh-pages: bin/gh-pages.js + gh-pages-clean: bin/gh-pages-clean.js + checksum: 10/43b0cb353306419e270a7a7e62fa39dc202b63bf01690fb722728e196d6ab73efbead9f639f14d893a6c9d32bc8c5ae806bf0a30c6731a4071f200732403ff08 + languageName: node + linkType: hard + +"gh-release-assets@npm:^2.0.0": + version: 2.0.1 + resolution: "gh-release-assets@npm:2.0.1" + dependencies: + async: "npm:^3.2.0" + mime: "npm:^3.0.0" + progress-stream: "npm:^2.0.0" + pumpify: "npm:^2.0.1" + simple-get: "npm:^4.0.0" + util-extend: "npm:^1.0.1" + checksum: 10/542dbf68591a2ed7b5d3f1fcc6d3a8fedc76ec199008e04fab389463be6d24f6136e291b65d4d122885ce7318e97f8574269c10f4bb491a5b22d7a977cfd5b65 + languageName: node + linkType: hard + +"gh-release@npm:^7.0.2": + version: 7.0.2 + resolution: "gh-release@npm:7.0.2" + dependencies: + "@octokit/rest": "npm:^19.0.5" + changelog-parser: "npm:^3.0.0" + deep-extend: "npm:^0.6.0" + gauge: "npm:^v5.0.0" + gh-release-assets: "npm:^2.0.0" + ghauth: "npm:^5.0.0" + github-url-to-object: "npm:^4.0.4" + inquirer: "npm:^8.0.0" + shelljs: "npm:^0.8.4" + update-notifier: "npm:^5.0.0" + yargs: "npm:^17.0.0" + bin: + gh-release: bin/cli.js + checksum: 10/16978850378f3334516915757a4030a2b7fb98cd037906610366db7a4cc24ca6e09ae6575911491f13b0782af9c0c40b0e91361d3d8b6e25d27a7727ab7cdf69 + languageName: node + linkType: hard + +"ghauth@npm:^5.0.0": + version: 5.0.2 + resolution: "ghauth@npm:5.0.2" + dependencies: + application-config: "npm:^2.0.0" + node-fetch: "npm:^2.6.0" + ora: "npm:^4.0.5" + read: "npm:^1.0.7" + checksum: 10/03006808f69c0d1a17920e97ec9979c80d3ceac1e8dce63353de6f11cf0ce74726f7bb20d9898c5009d0918000ee0758a2e4b823a7fc7f1c87f6a0dfb7e44442 + languageName: node + linkType: hard + +"github-url-to-object@npm:^4.0.4": + version: 4.0.6 + resolution: "github-url-to-object@npm:4.0.6" + dependencies: + is-url: "npm:^1.1.0" + checksum: 10/479a973eee6546e255025d5fe97a919720069cbc16e890365f787415abc9c547e2132cb1f592872cc39dedff50d4266c97807c482102082423b5f33e4817b498 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2, glob-parent@npm:~5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: "npm:^4.0.1" + checksum: 10/32cd106ce8c0d83731966d31517adb766d02c3812de49c30cfe0675c7c0ae6630c11214c54a5ae67aca882cf738d27fd7768f21aa19118b9245950554be07247 + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10/c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob-to-regexp@npm:^0.4.1": + version: 0.4.1 + resolution: "glob-to-regexp@npm:0.4.1" + checksum: 10/9009529195a955c40d7b9690794aeff5ba665cc38f1519e111c58bb54366fd0c106bde80acf97ba4e533208eb53422c83b136611a54c5fefb1edd8dc267cb62e + languageName: node + linkType: hard + +"glob@npm:^13.0.0": + version: 13.0.0 + resolution: "glob@npm:13.0.0" + dependencies: + minimatch: "npm:^10.1.1" + minipass: "npm:^7.1.2" + path-scurry: "npm:^2.0.0" + checksum: 10/de390721d29ee1c9ea41e40ec2aa0de2cabafa68022e237dc4297665a5e4d650776f2573191984ea1640aba1bf0ea34eddef2d8cbfbfc2ad24b5fb0af41d8846 + languageName: node + linkType: hard + +"glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.6": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^3.1.1" + once: "npm:^1.3.0" + path-is-absolute: "npm:^1.0.0" + checksum: 10/59452a9202c81d4508a43b8af7082ca5c76452b9fcc4a9ab17655822e6ce9b21d4f8fbadabe4fe3faef448294cec249af305e2cd824b7e9aaf689240e5e96a7b + languageName: node + linkType: hard + +"glob@npm:^8.0.3": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: "npm:^1.0.0" + inflight: "npm:^1.0.4" + inherits: "npm:2" + minimatch: "npm:^5.0.1" + once: "npm:^1.3.0" + checksum: 10/9aab1c75eb087c35dbc41d1f742e51d0507aa2b14c910d96fb8287107a10a22f4bbdce26fc0a3da4c69a20f7b26d62f1640b346a4f6e6becfff47f335bb1dc5e + languageName: node + linkType: hard + +"global-dirs@npm:^3.0.0": + version: 3.0.1 + resolution: "global-dirs@npm:3.0.1" + dependencies: + ini: "npm:2.0.0" + checksum: 10/70147b80261601fd40ac02a104581432325c1c47329706acd773f3a6ce99bb36d1d996038c85ccacd482ad22258ec233c586b6a91535b1a116b89663d49d6438 + languageName: node + linkType: hard + +"globals@npm:^13.19.0, globals@npm:^13.24.0": + version: 13.24.0 + resolution: "globals@npm:13.24.0" + dependencies: + type-fest: "npm:^0.20.2" + checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e + languageName: node + linkType: hard + +"globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" + dependencies: + define-properties: "npm:^1.2.1" + gopd: "npm:^1.0.1" + checksum: 10/1f1fd078fb2f7296306ef9dd51019491044ccf17a59ed49d375b576ca108ff37e47f3d29aead7add40763574a992f16a5367dd1e2173b8634ef18556ab719ac4 + languageName: node + linkType: hard + +"globby@npm:^11.0.3, globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: "npm:^2.1.0" + dir-glob: "npm:^3.0.1" + fast-glob: "npm:^3.2.9" + ignore: "npm:^5.2.0" + merge2: "npm:^1.4.1" + slash: "npm:^3.0.0" + checksum: 10/288e95e310227bbe037076ea81b7c2598ccbc3122d87abc6dab39e1eec309aa14f0e366a98cdc45237ffcfcbad3db597778c0068217dcb1950fef6249104e1b1 + languageName: node + linkType: hard + +"gonzales-pe@npm:^4.2.3, gonzales-pe@npm:^4.3.0": + version: 4.3.0 + resolution: "gonzales-pe@npm:4.3.0" + dependencies: + minimist: "npm:^1.2.5" + bin: + gonzales: bin/gonzales.js + checksum: 10/d1676546bcaa4cb1c6c1fc5de5d62e85960665a13a4c489b02baeb58a10c53a249beef05ceaf21ea801813a559ff17d7b61158aa417211c135bcb8bdcb1701ca + languageName: node + linkType: hard + +"gopd@npm:^1.0.1, gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: 10/94e296d69f92dc1c0768fcfeecfb3855582ab59a7c75e969d5f96ce50c3d201fd86d5a2857c22565764d5bb8a816c7b1e58f133ec318cd56274da36c5e3fb1a1 + languageName: node + linkType: hard + +"got@npm:^9.6.0": + version: 9.6.0 + resolution: "got@npm:9.6.0" + dependencies: + "@sindresorhus/is": "npm:^0.14.0" + "@szmarczak/http-timer": "npm:^1.1.2" + cacheable-request: "npm:^6.0.0" + decompress-response: "npm:^3.3.0" + duplexer3: "npm:^0.1.4" + get-stream: "npm:^4.1.0" + lowercase-keys: "npm:^1.0.1" + mimic-response: "npm:^1.0.1" + p-cancelable: "npm:^1.0.0" + to-readable-stream: "npm:^1.0.0" + url-parse-lax: "npm:^3.0.0" + checksum: 10/fae3273b44392b6b1d88071d04ea984784e63dbf8ba3f70b04cb7edda53c7668ee17288ac46af507a9f2aa60c183c5ea1732339141d253dda3eb19f92985c771 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: 10/bf152d0ed1dc159239db1ba1f74fdbc40cb02f626770dcd5815c427ce0688c2635a06ed69af364396da4636d0408fcf7d4afdf7881724c3307e46aff30ca49e2 + languageName: node + linkType: hard + +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: 10/6dd60dba97007b21e3a829fab3f771803cc1292977fe610e240ea72afd67e5690ac9eeaafc4a99710e78962e5936ab5a460787c2a1180f1cb0ccfac37d29f897 + languageName: node + linkType: hard + +"handle-thing@npm:^2.0.0": + version: 2.0.1 + resolution: "handle-thing@npm:2.0.1" + checksum: 10/441ec98b07f26819c70c702f6c874088eebeb551b242fe8fae4eab325746b82bf84ae7a1f6419547698accb3941fa26806c5f5f93c50e19f90e499065a711d61 + languageName: node + linkType: hard + +"handlebars@npm:^4.7.8": + version: 4.7.8 + resolution: "handlebars@npm:4.7.8" + dependencies: + minimist: "npm:^1.2.5" + neo-async: "npm:^2.6.2" + source-map: "npm:^0.6.1" + uglify-js: "npm:^3.1.4" + wordwrap: "npm:^1.0.0" + dependenciesMeta: + uglify-js: + optional: true + bin: + handlebars: bin/handlebars + checksum: 10/bd528f4dd150adf67f3f857118ef0fa43ff79a153b1d943fa0a770f2599e38b25a7a0dbac1a3611a4ec86970fd2325a81310fb788b5c892308c9f8743bd02e11 + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.2": + version: 1.1.0 + resolution: "has-bigints@npm:1.1.0" + checksum: 10/90fb1b24d40d2472bcd1c8bd9dd479037ec240215869bdbff97b2be83acef57d28f7e96bdd003a21bed218d058b49097f4acc8821c05b1629cc5d48dd7bfcccd + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 10/4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 10/261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0, has-property-descriptors@npm:^1.0.2": + version: 1.0.2 + resolution: "has-property-descriptors@npm:1.0.2" + dependencies: + es-define-property: "npm:^1.0.0" + checksum: 10/2d8c9ab8cebb572e3362f7d06139a4592105983d4317e68f7adba320fe6ddfc8874581e0971e899e633fd5f72e262830edce36d5a0bc863dad17ad20572484b2 + languageName: node + linkType: hard + +"has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: "npm:^1.0.0" + checksum: 10/7eaed07728eaa28b77fadccabce53f30de467ff186a766872669a833ac2e87d8922b76a22cc58339d7e0277aefe98d6d00762113b27a97cdf65adcf958970935 + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: 10/959385c98696ebbca51e7534e0dc723ada325efa3475350951363cce216d27373e0259b63edb599f72eb94d6cde8577b4b2375f080b303947e560f85692834fa + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10/c74c5f5ceee3c8a5b8bc37719840dc3749f5b0306d818974141dda2471a1a2ca6c8e46b9d6ac222c5345df7a901c9b6f350b1e6d62763fec877e26609a401bfe + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 10/041b4293ad6bf391e21c5d85ed03f412506d6623786b801c4ab39e4e6ca54993f13201bceb544d92963f9e0024e6e7fbf0cb1d84c9d6b31cb9c79c8c990d13d8 + languageName: node + linkType: hard + +"has-yarn@npm:^2.1.0": + version: 2.1.0 + resolution: "has-yarn@npm:2.1.0" + checksum: 10/5eb1d0bb8518103d7da24532bdbc7124ffc6d367b5d3c10840b508116f2f1bcbcf10fd3ba843ff6e2e991bdf9969fd862d42b2ed58aade88343326c950b7e7f7 + languageName: node + linkType: hard + +"hasown@npm:^2.0.2": + version: 2.0.2 + resolution: "hasown@npm:2.0.2" + dependencies: + function-bind: "npm:^1.1.2" + checksum: 10/7898a9c1788b2862cf0f9c345a6bec77ba4a0c0983c7f19d610c382343d4f98fa260686b225dfb1f88393a66679d2ec58ee310c1d6868c081eda7918f32cc70a + languageName: node + linkType: hard + +"hpack.js@npm:^2.1.6": + version: 2.1.6 + resolution: "hpack.js@npm:2.1.6" + dependencies: + inherits: "npm:^2.0.1" + obuf: "npm:^1.0.0" + readable-stream: "npm:^2.0.1" + wbuf: "npm:^1.1.0" + checksum: 10/6910e4b9d943a78fd8e84ac42729fdab9bd406789d6204ad160af9dc5aa4750fc01f208249bf7116c11dc0678207a387b4ade24e4b628b95385b251ceeeb719c + languageName: node + linkType: hard + +"html-encoding-sniffer@npm:^4.0.0": + version: 4.0.0 + resolution: "html-encoding-sniffer@npm:4.0.0" + dependencies: + whatwg-encoding: "npm:^3.1.1" + checksum: 10/e86efd493293a5671b8239bd099d42128433bb3c7b0fdc7819282ef8e118a21f5dead0ad6f358e024a4e5c84f17ebb7a9b36075220fac0a6222b207248bede6f + languageName: node + linkType: hard + +"html-entities@npm:^2.3.2": + version: 2.6.0 + resolution: "html-entities@npm:2.6.0" + checksum: 10/06d4e7a3ba6243bba558af176e56f85e09894b26d911bc1ef7b2b9b3f18b46604360805b32636f080e954778e9a34313d1982479a05a5aa49791afd6a4229346 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1": + version: 4.2.0 + resolution: "http-cache-semantics@npm:4.2.0" + checksum: 10/4efd2dfcfeea9d5e88c84af450b9980be8a43c2c8179508b1c57c7b4421c855f3e8efe92fa53e0b3f4a43c85824ada930eabbc306d1b3beab750b6dcc5187693 + languageName: node + linkType: hard + +"http-deceiver@npm:^1.2.7": + version: 1.2.7 + resolution: "http-deceiver@npm:1.2.7" + checksum: 10/9ae293b0acbfad6ed45d52c1f85f58ab062465872fd9079c80d78c6527634002d73c2a9d8c0296cc12d178a0b689bb5291d9979aad3ce71ab17a7517588adbf7 + languageName: node + linkType: hard + +"http-errors@npm:~1.6.2": + version: 1.6.3 + resolution: "http-errors@npm:1.6.3" + dependencies: + depd: "npm:~1.1.2" + inherits: "npm:2.0.3" + setprototypeof: "npm:1.1.0" + statuses: "npm:>= 1.4.0 < 2" + checksum: 10/e48732657ea0b4a09853d2696a584fa59fa2a8c1ba692af7af3137b5491a997d7f9723f824e7e08eb6a87098532c09ce066966ddf0f9f3dd30905e52301acadb + languageName: node + linkType: hard + +"http-errors@npm:~2.0.0, http-errors@npm:~2.0.1": + version: 2.0.1 + resolution: "http-errors@npm:2.0.1" + dependencies: + depd: "npm:~2.0.0" + inherits: "npm:~2.0.4" + setprototypeof: "npm:~1.2.0" + statuses: "npm:~2.0.2" + toidentifier: "npm:~1.0.1" + checksum: 10/9fe31bc0edf36566c87048aed1d3d0cbe03552564adc3541626a0613f542d753fbcb13bdfcec0a3a530dbe1714bb566c89d46244616b66bddd26ac413b06a207 + languageName: node + linkType: hard + +"http-parser-js@npm:>=0.5.1": + version: 0.5.10 + resolution: "http-parser-js@npm:0.5.10" + checksum: 10/33c53b458cfdf7e43f1517f9bcb6bed1c614b1c7c5d65581a84304110eb9eb02a48f998c7504b8bee432ef4a8ec9318e7009406b506b28b5610fed516242b20a + languageName: node + linkType: hard + +"http-proxy-agent@npm:^7.0.0, http-proxy-agent@npm:^7.0.2": + version: 7.0.2 + resolution: "http-proxy-agent@npm:7.0.2" + dependencies: + agent-base: "npm:^7.1.0" + debug: "npm:^4.3.4" + checksum: 10/d062acfa0cb82beeb558f1043c6ba770ea892b5fb7b28654dbc70ea2aeea55226dd34c02a294f6c1ca179a5aa483c4ea641846821b182edbd9cc5d89b54c6848 + languageName: node + linkType: hard + +"http-proxy-middleware@npm:^2.0.3": + version: 2.0.9 + resolution: "http-proxy-middleware@npm:2.0.9" + dependencies: + "@types/http-proxy": "npm:^1.17.8" + http-proxy: "npm:^1.18.1" + is-glob: "npm:^4.0.1" + is-plain-obj: "npm:^3.0.0" + micromatch: "npm:^4.0.2" + peerDependencies: + "@types/express": ^4.17.13 + peerDependenciesMeta: + "@types/express": + optional: true + checksum: 10/4ece416a91d52e96f8136c5f4abfbf7ac2f39becbad21fa8b158a12d7e7d8f808287ff1ae342b903fd1f15f2249dee87fabc09e1f0e73106b83331c496d67660 + languageName: node + linkType: hard + +"http-proxy@npm:^1.18.1": + version: 1.18.1 + resolution: "http-proxy@npm:1.18.1" + dependencies: + eventemitter3: "npm:^4.0.0" + follow-redirects: "npm:^1.0.0" + requires-port: "npm:^1.0.0" + checksum: 10/2489e98aba70adbfd8b9d41ed1ff43528be4598c88616c558b109a09eaffe4bb35e551b6c75ac42ed7d948bb7530a22a2be6ef4f0cecacb5927be139f4274594 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^7.0.1, https-proxy-agent@npm:^7.0.5": + version: 7.0.6 + resolution: "https-proxy-agent@npm:7.0.6" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:4" + checksum: 10/784b628cbd55b25542a9d85033bdfd03d4eda630fb8b3c9477959367f3be95dc476ed2ecbb9836c359c7c698027fc7b45723a302324433590f45d6c1706e8c13 + languageName: node + linkType: hard + +"human-signals@npm:^2.1.0": + version: 2.1.0 + resolution: "human-signals@npm:2.1.0" + checksum: 10/df59be9e0af479036798a881d1f136c4a29e0b518d4abb863afbd11bf30efa3eeb1d0425fc65942dcc05ab3bf40205ea436b0ff389f2cd20b75b8643d539bf86 + languageName: node + linkType: hard + +"iconv-lite@npm:0.6.3, iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10/24e3292dd3dadaa81d065c6f8c41b274a47098150d444b96e5f53b4638a9a71482921ea6a91a1f59bb71d9796de25e04afd05919fa64c360347ba65d3766f10f + languageName: node + linkType: hard + +"iconv-lite@npm:^0.7.0": + version: 0.7.1 + resolution: "iconv-lite@npm:0.7.1" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3.0.0" + checksum: 10/bf9bfa10132b591d7b43cc2cc6700cd72d848b7943c3f38db05527d04c224eb44d1d92101f76d25eac7fabc67cb918320b93808b0be47e45cf7257df0a5ec54c + languageName: node + linkType: hard + +"iconv-lite@npm:~0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: "npm:>= 2.1.2 < 3" + checksum: 10/6d3a2dac6e5d1fb126d25645c25c3a1209f70cceecc68b8ef51ae0da3cdc078c151fade7524a30b12a3094926336831fca09c666ef55b37e2c69638b5d6bd2e3 + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 10/d9f2557a59036f16c282aaeb107832dc957a93d73397d89bbad4eb1130560560eb695060145e8e6b3b498b15ab95510226649a0b8f52ae06583575419fe10fc4 + languageName: node + linkType: hard + +"ignore@npm:^5.2.0, ignore@npm:^5.2.4": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10/cceb6a457000f8f6a50e1196429750d782afce5680dd878aa4221bd79972d68b3a55b4b1458fc682be978f4d3c6a249046aa0880637367216444ab7b014cfc98 + languageName: node + linkType: hard + +"import-fresh@npm:^3.2.1": + version: 3.3.1 + resolution: "import-fresh@npm:3.3.1" + dependencies: + parent-module: "npm:^1.0.0" + resolve-from: "npm:^4.0.0" + checksum: 10/a06b19461b4879cc654d46f8a6244eb55eb053437afd4cbb6613cad6be203811849ed3e4ea038783092879487299fda24af932b86bdfff67c9055ba3612b8c87 + languageName: node + linkType: hard + +"import-lazy@npm:^2.1.0": + version: 2.1.0 + resolution: "import-lazy@npm:2.1.0" + checksum: 10/05294f3b9dd4971d3a996f0d2f176410fb6745d491d6e73376429189f5c1c3d290548116b2960a7cf3e89c20cdf11431739d1d2d8c54b84061980795010e803a + languageName: node + linkType: hard + +"import-local@npm:^3.0.2": + version: 3.2.0 + resolution: "import-local@npm:3.2.0" + dependencies: + pkg-dir: "npm:^4.2.0" + resolve-cwd: "npm:^3.0.0" + bin: + import-local-fixture: fixtures/cli.js + checksum: 10/0b0b0b412b2521739fbb85eeed834a3c34de9bc67e670b3d0b86248fc460d990a7b116ad056c084b87a693ef73d1f17268d6a5be626bb43c998a8b1c8a230004 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 10/2d30b157a91fe1c1d7c6f653cbf263f039be6c5bfa959245a16d4ee191fc0f2af86c08545b6e6beeb041c56b574d2d5b9f95343d378ab49c0f37394d541e7fc8 + languageName: node + linkType: hard + +"indexes-of@npm:^1.0.1": + version: 1.0.1 + resolution: "indexes-of@npm:1.0.1" + checksum: 10/4f9799b1739a62f3e02d09f6f4162cf9673025282af7fa36e790146e7f4e216dad3e776a25b08536c093209c9fcb5ea7bd04b082d42686a45f58ff401d6da32e + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: "npm:^1.3.0" + wrappy: "npm:1" + checksum: 10/d2ebd65441a38c8336c223d1b80b921b9fa737e37ea466fd7e253cb000c64ae1f17fa59e68130ef5bda92cfd8d36b83d37dab0eb0a4558bcfec8e8cdfd2dcb67 + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.1, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 10/cd45e923bee15186c07fa4c89db0aace24824c482fb887b528304694b2aa6ff8a898da8657046a5dcf3e46cd6db6c61629551f9215f208d7c3f157cf9b290521 + languageName: node + linkType: hard + +"inherits@npm:2.0.3": + version: 2.0.3 + resolution: "inherits@npm:2.0.3" + checksum: 10/8771303d66c51be433b564427c16011a8e3fbc3449f1f11ea50efb30a4369495f1d0e89f0fc12bdec0bd7e49102ced5d137e031d39ea09821cb3c717fcf21e69 + languageName: node + linkType: hard + +"ini@npm:2.0.0": + version: 2.0.0 + resolution: "ini@npm:2.0.0" + checksum: 10/04e24ba05c4f6947e15560824e153b4610bceea2f5a3ab68651d221a4aab3c77d4e3e90a917ebc8bf5ad71a30a8575de56c39d6b4c4b1375a28016b9f3625f9d + languageName: node + linkType: hard + +"ini@npm:~1.3.0": + version: 1.3.8 + resolution: "ini@npm:1.3.8" + checksum: 10/314ae176e8d4deb3def56106da8002b462221c174ddb7ce0c49ee72c8cd1f9044f7b10cc555a7d8850982c3b9ca96fc212122749f5234bc2b6fb05fb942ed566 + languageName: node + linkType: hard + +"inquirer@npm:^8.0.0": + version: 8.2.7 + resolution: "inquirer@npm:8.2.7" + dependencies: + "@inquirer/external-editor": "npm:^1.0.0" + ansi-escapes: "npm:^4.2.1" + chalk: "npm:^4.1.1" + cli-cursor: "npm:^3.1.0" + cli-width: "npm:^3.0.0" + figures: "npm:^3.0.0" + lodash: "npm:^4.17.21" + mute-stream: "npm:0.0.8" + ora: "npm:^5.4.1" + run-async: "npm:^2.4.0" + rxjs: "npm:^7.5.5" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + through: "npm:^2.3.6" + wrap-ansi: "npm:^6.0.1" + checksum: 10/526fb5ca55a29decda9b67c7b2bd437730152104c6e7c5f0d7ade90af6dc999371e1602ce86eb4a39ee3d91993501cddec32e4fe3f599723f2b653b02b685e3b + languageName: node + linkType: hard + +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + hasown: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/1d5219273a3dab61b165eddf358815eefc463207db33c20fcfca54717da02e3f492003757721f972fd0bf21e4b426cab389c5427b99ceea4b8b670dc88ee6d4a + languageName: node + linkType: hard + +"interpret@npm:^1.0.0": + version: 1.4.0 + resolution: "interpret@npm:1.4.0" + checksum: 10/5beec568d3f60543d0f61f2c5969d44dffcb1a372fe5abcdb8013968114d4e4aaac06bc971a4c9f5bd52d150881d8ebad72a8c60686b1361f5f0522f39c0e1a3 + languageName: node + linkType: hard + +"interpret@npm:^3.1.1": + version: 3.1.1 + resolution: "interpret@npm:3.1.1" + checksum: 10/bc9e11126949c4e6ff49b0b819e923a9adc8e8bf3f9d4f2d782de6d5f592774f6fee4457c10bd08c6a2146b4baee460ccb242c99e5397defa9c846af0d00505a + languageName: node + linkType: hard + +"ip-address@npm:^10.0.1": + version: 10.1.0 + resolution: "ip-address@npm:10.1.0" + checksum: 10/a6979629d1ad9c1fb424bc25182203fad739b40225aebc55ec6243bbff5035faf7b9ed6efab3a097de6e713acbbfde944baacfa73e11852bb43989c45a68d79e + languageName: node + linkType: hard + +"ipaddr.js@npm:1.9.1": + version: 1.9.1 + resolution: "ipaddr.js@npm:1.9.1" + checksum: 10/864d0cced0c0832700e9621913a6429ccdc67f37c1bd78fb8c6789fff35c9d167cb329134acad2290497a53336813ab4798d2794fd675d5eb33b5fdf0982b9ca + languageName: node + linkType: hard + +"ipaddr.js@npm:^2.0.1": + version: 2.3.0 + resolution: "ipaddr.js@npm:2.3.0" + checksum: 10/be3d01bc2e20fc2dc5349b489ea40883954b816ce3e57aa48ad943d4e7c4ace501f28a7a15bde4b96b6b97d0fbb28d599ff2f87399f3cda7bd728889402eed3b + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/ef1095c55b963cd0dcf6f88a113e44a0aeca91e30d767c475e7d746d28d1195b10c5076b94491a7a0cd85020ca6a4923070021d74651d093dc909e9932cf689b + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: 10/73ced84fa35e59e2c57da2d01e12cd01479f381d7f122ce41dcbb713f09dbfc651315832cd2bf8accba7681a69e4d6f1e03941d94dd10040d415086360e7005e + languageName: node + linkType: hard + +"is-async-function@npm:^2.0.0": + version: 2.1.1 + resolution: "is-async-function@npm:2.1.1" + dependencies: + async-function: "npm:^1.0.0" + call-bound: "npm:^1.0.3" + get-proto: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/7c2ac7efdf671e03265e74a043bcb1c0a32e226bc2a42dfc5ec8644667df668bbe14b91c08e6c1414f392f8cf86cd1d489b3af97756e2c7a49dd1ba63fd40ca6 + languageName: node + linkType: hard + +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: "npm:^1.0.2" + checksum: 10/10cf327310d712fe227cfaa32d8b11814c214392b6ac18c827f157e1e85363cf9c8e2a22df526689bd5d25e53b58cc110894787afb54e138e7c504174dba15fd + languageName: node + linkType: hard + +"is-binary-path@npm:~2.1.0": + version: 2.1.0 + resolution: "is-binary-path@npm:2.1.0" + dependencies: + binary-extensions: "npm:^2.0.0" + checksum: 10/078e51b4f956c2c5fd2b26bb2672c3ccf7e1faff38e0ebdba45612265f4e3d9fc3127a1fa8370bbf09eab61339203c3d3b7af5662cbf8be4030f8fac37745b0e + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.2.1": + version: 1.2.2 + resolution: "is-boolean-object@npm:1.2.2" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/051fa95fdb99d7fbf653165a7e6b2cba5d2eb62f7ffa81e793a790f3fb5366c91c1b7b6af6820aa2937dd86c73aa3ca9d9ca98f500988457b1c59692c52ba911 + languageName: node + linkType: hard + +"is-builtin-module@npm:^3.2.1": + version: 3.2.1 + resolution: "is-builtin-module@npm:3.2.1" + dependencies: + builtin-modules: "npm:^3.3.0" + checksum: 10/e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 + languageName: node + linkType: hard + +"is-bun-module@npm:^2.0.0": + version: 2.0.0 + resolution: "is-bun-module@npm:2.0.0" + dependencies: + semver: "npm:^7.7.1" + checksum: 10/cded5a1a58368b847872d08617975d620ad94426d76a932f3e08d55b4574d199e0a62a4fb024fa2dc444200b71719eb0bffc5d3d1e1cc82e29b293bb8d66a990 + languageName: node + linkType: hard + +"is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 10/48a9297fb92c99e9df48706241a189da362bff3003354aea4048bd5f7b2eb0d823cd16d0a383cece3d76166ba16d85d9659165ac6fcce1ac12e6c649d66dbdb9 + languageName: node + linkType: hard + +"is-ci@npm:^2.0.0": + version: 2.0.0 + resolution: "is-ci@npm:2.0.0" + dependencies: + ci-info: "npm:^2.0.0" + bin: + is-ci: bin.js + checksum: 10/77b869057510f3efa439bbb36e9be429d53b3f51abd4776eeea79ab3b221337fe1753d1e50058a9e2c650d38246108beffb15ccfd443929d77748d8c0cc90144 + languageName: node + linkType: hard + +"is-core-module@npm:^2.12.1, is-core-module@npm:^2.13.0, is-core-module@npm:^2.16.1": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/452b2c2fb7f889cbbf7e54609ef92cf6c24637c568acc7e63d166812a0fb365ae8a504c333a29add8bdb1686704068caa7f4e4b639b650dde4f00a038b8941fb + languageName: node + linkType: hard + +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + is-typed-array: "npm:^1.1.13" + checksum: 10/357e9a48fa38f369fd6c4c3b632a3ab2b8adca14997db2e4b3fe94c4cd0a709af48e0fb61b02c64a90c0dd542fd489d49c2d03157b05ae6c07f5e4dec9e730a8 + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + has-tostringtag: "npm:^1.0.2" + checksum: 10/3a811b2c3176fb31abee1d23d3dc78b6c65fd9c07d591fcb67553cab9e7f272728c3dd077d2d738b53f9a2103255b0a6e8dfc9568a7805c56a78b2563e8d1dec + languageName: node + linkType: hard + +"is-docker@npm:^2.0.0, is-docker@npm:^2.1.1": + version: 2.2.1 + resolution: "is-docker@npm:2.2.1" + bin: + is-docker: cli.js + checksum: 10/3fef7ddbf0be25958e8991ad941901bf5922ab2753c46980b60b05c1bf9c9c2402d35e6dc32e4380b980ef5e1970a5d9d5e5aa2e02d77727c3b6b5e918474c56 + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: 10/df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10/0bfb145e9a1ba852ddde423b0926d2169ae5fe9e37882cde9e8f69031281a986308df4d982283e152396e88b86562ed2256cbaa5e6390fb840a4c25ab54b8a80 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 10/44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-generator-function@npm:^1.0.10": + version: 1.1.2 + resolution: "is-generator-function@npm:1.1.2" + dependencies: + call-bound: "npm:^1.0.4" + generator-function: "npm:^2.0.0" + get-proto: "npm:^1.0.1" + has-tostringtag: "npm:^1.0.2" + safe-regex-test: "npm:^1.1.0" + checksum: 10/cc50fa01034356bdfda26983c5457103240f201f4663c0de1257802714e40d36bcff7aee21091d37bbba4be962fa5c6475ce7ddbc0abfa86d6bef466e41e50a5 + languageName: node + linkType: hard + +"is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: "npm:^2.1.1" + checksum: 10/3ed74f2b0cdf4f401f38edb0442ddfde3092d79d7d35c9919c86641efdbcbb32e45aa3c0f70ce5eecc946896cd5a0f26e4188b9f2b881876f7cb6c505b82da11 + languageName: node + linkType: hard + +"is-installed-globally@npm:^0.4.0": + version: 0.4.0 + resolution: "is-installed-globally@npm:0.4.0" + dependencies: + global-dirs: "npm:^3.0.0" + is-path-inside: "npm:^3.0.2" + checksum: 10/5294d21c82cb9beedd693ce1dfb12117c4db36d6e35edc9dc6bf06cb300d23c96520d1bfb063386b054268ae3d7255c3f09393b52218cc26ace99b217bf37c93 + languageName: node + linkType: hard + +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 10/824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 + languageName: node + linkType: hard + +"is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: 10/8de7b41715b08bcb0e5edb0fb9384b80d2d5bcd10e142188f33247d19ff078abaf8e9b6f858e2302d8d05376a26a55cd23a3c9f8ab93292b02fcd2cc9e4e92bb + languageName: node + linkType: hard + +"is-module@npm:^1.0.0": + version: 1.0.0 + resolution: "is-module@npm:1.0.0" + checksum: 10/8cd5390730c7976fb4e8546dd0b38865ee6f7bacfa08dfbb2cc07219606755f0b01709d9361e01f13009bbbd8099fa2927a8ed665118a6105d66e40f1b838c3f + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: 10/8fe5cffd8d4fb2ec7b49d657e1691889778d037494c6f40f4d1a524cadd658b4b53ad7b6b73a59bcb4b143ae9a3d15829af864b2c0f9d65ac1e678c4c80f17e5 + languageName: node + linkType: hard + +"is-npm@npm:^5.0.0": + version: 5.0.0 + resolution: "is-npm@npm:5.0.0" + checksum: 10/9baff02b0c69a3d3c79b162cb2f9e67fb40ef6d172c16601b2e2471c21e9a4fa1fc9885a308d7bc6f3a3cd2a324c27fa0bf284c133c3349bb22571ab70d041cc + languageName: node + linkType: hard + +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/a5922fb8779ab1ea3b8a9c144522b3d0bea5d9f8f23f7a72470e61e1e4df47714e28e0154ac011998b709cce260c3c9447ad3cd24a96c2f2a0abfdb2cbdc76c8 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 10/6a6c3383f68afa1e05b286af866017c78f1226d43ac8cb064e115ff9ed85eb33f5c4f7216c96a71e4dfea289ef52c5da3aef5bbfade8ffe47a0465d70c0c8e86 + languageName: node + linkType: hard + +"is-obj@npm:^1.0.1": + version: 1.0.1 + resolution: "is-obj@npm:1.0.1" + checksum: 10/3ccf0efdea12951e0b9c784e2b00e77e87b2f8bd30b42a498548a8afcc11b3287342a2030c308e473e93a7a19c9ea7854c99a8832a476591c727df2a9c79796c + languageName: node + linkType: hard + +"is-obj@npm:^2.0.0": + version: 2.0.0 + resolution: "is-obj@npm:2.0.0" + checksum: 10/c9916ac8f4621962a42f5e80e7ffdb1d79a3fab7456ceaeea394cd9e0858d04f985a9ace45be44433bf605673c8be8810540fe4cc7f4266fc7526ced95af5a08 + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.2, is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: 10/abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^2.0.0": + version: 2.1.0 + resolution: "is-plain-obj@npm:2.1.0" + checksum: 10/cec9100678b0a9fe0248a81743041ed990c2d4c99f893d935545cfbc42876cbe86d207f3b895700c690ad2fa520e568c44afc1605044b535a7820c1d40e38daa + languageName: node + linkType: hard + +"is-plain-obj@npm:^3.0.0": + version: 3.0.0 + resolution: "is-plain-obj@npm:3.0.0" + checksum: 10/a6ebdf8e12ab73f33530641972a72a4b8aed6df04f762070d823808303e4f76d87d5ea5bd76f96a7bbe83d93f04ac7764429c29413bd9049853a69cb630fb21c + languageName: node + linkType: hard + +"is-plain-object@npm:^2.0.4": + version: 2.0.4 + resolution: "is-plain-object@npm:2.0.4" + dependencies: + isobject: "npm:^3.0.1" + checksum: 10/2a401140cfd86cabe25214956ae2cfee6fbd8186809555cd0e84574f88de7b17abacb2e477a6a658fa54c6083ecbda1e6ae404c7720244cd198903848fca70ca + languageName: node + linkType: hard + +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: 10/e32d27061eef62c0847d303125440a38660517e586f2f3db7c9d179ae5b6674ab0f469d519b2e25c147a1a3bc87156d0d5f4d8821e0ce4a9ee7fe1fcf11ce45c + languageName: node + linkType: hard + +"is-potential-custom-element-name@npm:^1.0.1": + version: 1.0.1 + resolution: "is-potential-custom-element-name@npm:1.0.1" + checksum: 10/ced7bbbb6433a5b684af581872afe0e1767e2d1146b2207ca0068a648fb5cab9d898495d1ac0583524faaf24ca98176a7d9876363097c2d14fee6dd324f3a1ab + languageName: node + linkType: hard + +"is-reference@npm:1.2.1": + version: 1.2.1 + resolution: "is-reference@npm:1.2.1" + dependencies: + "@types/estree": "npm:*" + checksum: 10/e7b48149f8abda2c10849ea51965904d6a714193d68942ad74e30522231045acf06cbfae5a4be2702fede5d232e61bf50b3183acdc056e6e3afe07fcf4f4b2bc + languageName: node + linkType: hard + +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + hasown: "npm:^2.0.2" + checksum: 10/c42b7efc5868a5c9a4d8e6d3e9816e8815c611b09535c00fead18a1138455c5cb5e1887f0023a467ad3f9c419d62ba4dc3d9ba8bafe55053914d6d6454a945d2 + languageName: node + linkType: hard + +"is-regexp@npm:^1.0.0": + version: 1.0.0 + resolution: "is-regexp@npm:1.0.0" + checksum: 10/be692828e24cba479ec33644326fa98959ec68ba77965e0291088c1a741feaea4919d79f8031708f85fd25e39de002b4520622b55460660b9c369e6f7187faef + languageName: node + linkType: hard + +"is-relative-path@npm:^1.0.2": + version: 1.0.2 + resolution: "is-relative-path@npm:1.0.2" + checksum: 10/6c2ccffd3c0a3e3990535d0571370883d558b825b51940085f3446ec338857f4552f44521dfec3e83b7e067de08c0b0369de290208a91200bcae2c569533e340 + languageName: node + linkType: hard + +"is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 10/5685df33f0a4a6098a98c72d94d67cad81b2bc72f1fb2091f3d9283c4a1c582123cd709145b02a9745f0ce6b41e3e43f1c944496d1d74d4ea43358be61308669 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10/0380d7c60cc692856871526ffcd38a8133818a2ee42d47bb8008248a0cd2121d8c8b5f66b6da3cac24bc5784553cacb6faaf678f66bc88c6615b42af2825230e + languageName: node + linkType: hard + +"is-stream@npm:^2.0.0": + version: 2.0.1 + resolution: "is-stream@npm:2.0.1" + checksum: 10/b8e05ccdf96ac330ea83c12450304d4a591f9958c11fd17bed240af8d5ffe08aedafa4c0f4cfccd4d28dc9d4d129daca1023633d5c11601a6cbc77521f6fae66 + languageName: node + linkType: hard + +"is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + has-tostringtag: "npm:^1.0.2" + checksum: 10/5277cb9e225a7cc8a368a72623b44a99f2cfa139659c6b203553540681ad4276bfc078420767aad0e73eef5f0bd07d4abf39a35d37ec216917879d11cebc1f8b + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + safe-regex-test: "npm:^1.1.0" + checksum: 10/db495c0d8cd0a7a66b4f4ef7fccee3ab5bd954cb63396e8ac4d32efe0e9b12fdfceb851d6c501216a71f4f21e5ff20fc2ee845a3d52d455e021c466ac5eb2db2 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: "npm:^1.1.16" + checksum: 10/e8cf60b9ea85667097a6ad68c209c9722cfe8c8edf04d6218366469e51944c5cc25bae45ffb845c23f811d262e4314d3b0168748eb16711aa34d12724cdf0735 + languageName: node + linkType: hard + +"is-typedarray@npm:^1.0.0": + version: 1.0.0 + resolution: "is-typedarray@npm:1.0.0" + checksum: 10/4b433bfb0f9026f079f4eb3fbaa4ed2de17c9995c3a0b5c800bec40799b4b2a8b4e051b1ada77749deb9ded4ae52fe2096973f3a93ff83df1a5a7184a669478c + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10/a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"is-url-superb@npm:^4.0.0": + version: 4.0.0 + resolution: "is-url-superb@npm:4.0.0" + checksum: 10/fd55e91c96349acb0d688f95fcb1ac67450e5db934976e3a8ff13ef446841e779a6f4d18b15f02331f05a3429c8fdaba2382ac1ab444059e86e9ffcde1ec8db0 + languageName: node + linkType: hard + +"is-url@npm:^1.1.0, is-url@npm:^1.2.4": + version: 1.2.4 + resolution: "is-url@npm:1.2.4" + checksum: 10/100e74b3b1feab87a43ef7653736e88d997eb7bd32e71fd3ebc413e58c1cbe56269699c776aaea84244b0567f2a7d68dfaa512a062293ed2f9fdecb394148432 + languageName: node + linkType: hard + +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: 10/a7b7e23206c542dcf2fa0abc483142731788771527e90e7e24f658c0833a0d91948a4f7b30d78f7a65255a48512e41a0288b778ba7fc396137515c12e201fd11 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1": + version: 1.1.1 + resolution: "is-weakref@npm:1.1.1" + dependencies: + call-bound: "npm:^1.0.3" + checksum: 10/543506fd8259038b371bb083aac25b16cb4fd8b12fc58053aa3d45ac28dfd001cd5c6dffbba7aeea4213c74732d46b6cb2cfb5b412eed11f2db524f3f97d09a0 + languageName: node + linkType: hard + +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: "npm:^1.0.3" + get-intrinsic: "npm:^1.2.6" + checksum: 10/1d5e1d0179beeed3661125a6faa2e59bfb48afda06fc70db807f178aa0ebebc3758fb6358d76b3d528090d5ef85148c345dcfbf90839592fe293e3e5e82f2134 + languageName: node + linkType: hard + +"is-wsl@npm:^2.2.0": + version: 2.2.0 + resolution: "is-wsl@npm:2.2.0" + dependencies: + is-docker: "npm:^2.0.0" + checksum: 10/20849846ae414997d290b75e16868e5261e86ff5047f104027026fd61d8b5a9b0b3ade16239f35e1a067b3c7cc02f70183cb661010ed16f4b6c7c93dad1b19d8 + languageName: node + linkType: hard + +"is-yarn-global@npm:^0.3.0": + version: 0.3.0 + resolution: "is-yarn-global@npm:0.3.0" + checksum: 10/bca013d65fee2862024c9fbb3ba13720ffca2fe750095174c1c80922fdda16402b5c233f5ac9e265bc12ecb5446e7b7f519a32d9541788f01d4d44e24d2bf481 + languageName: node + linkType: hard + +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: 10/1d8bc7911e13bb9f105b1b3e0b396c787a9e63046af0b8fe0ab1414488ab06b2b099b87a2d8a9e31d21c9a6fad773c7fc8b257c4880f2d957274479d28ca3414 + languageName: node + linkType: hard + +"isarray@npm:~1.0.0": + version: 1.0.0 + resolution: "isarray@npm:1.0.0" + checksum: 10/f032df8e02dce8ec565cf2eb605ea939bdccea528dbcf565cdf92bfa2da9110461159d86a537388ef1acef8815a330642d7885b29010e8f7eac967c9993b65ab + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 10/7c9f715c03aff08f35e98b1fadae1b9267b38f0615d501824f9743f3aab99ef10e303ce7db3f186763a0b70a19de5791ebfc854ff884d5a8c4d92211f642ec92 + languageName: node + linkType: hard + +"isexe@npm:^3.1.1": + version: 3.1.1 + resolution: "isexe@npm:3.1.1" + checksum: 10/7fe1931ee4e88eb5aa524cd3ceb8c882537bc3a81b02e438b240e47012eef49c86904d0f0e593ea7c3a9996d18d0f1f3be8d3eaa92333977b0c3a9d353d5563e + languageName: node + linkType: hard + +"isobject@npm:^3.0.1": + version: 3.0.1 + resolution: "isobject@npm:3.0.1" + checksum: 10/db85c4c970ce30693676487cca0e61da2ca34e8d4967c2e1309143ff910c207133a969f9e4ddb2dc6aba670aabce4e0e307146c310350b298e74a31f7d464703 + languageName: node + linkType: hard + +"iterator.prototype@npm:^1.1.5": + version: 1.1.5 + resolution: "iterator.prototype@npm:1.1.5" + dependencies: + define-data-property: "npm:^1.1.4" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + get-proto: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + set-function-name: "npm:^2.0.2" + checksum: 10/352bcf333f42189e65cc8cb2dcb94a5c47cf0a9110ce12aba788d405a980b5f5f3a06c79bf915377e1d480647169babd842ded0d898bed181bf6686e8e6823f6 + languageName: node + linkType: hard + +"jest-worker@npm:^27.4.5": + version: 27.5.1 + resolution: "jest-worker@npm:27.5.1" + dependencies: + "@types/node": "npm:*" + merge-stream: "npm:^2.0.0" + supports-color: "npm:^8.0.0" + checksum: 10/06c6e2a84591d9ede704d5022fc13791e8876e83397c89d481b0063332abbb64c0f01ef4ca7de520b35c7a1058556078d6bdc3631376f4e9ffb42316c1a8488e + languageName: node + linkType: hard + +"js-cleanup@npm:^1.2.0": + version: 1.2.0 + resolution: "js-cleanup@npm:1.2.0" + dependencies: + magic-string: "npm:^0.25.7" + perf-regexes: "npm:^1.0.1" + skip-regex: "npm:^1.0.2" + checksum: 10/c0c42ecda3342e64113a4fe4a072024038f47022f525a00badb3c11ffb0c0e8ada0fbf22074086ad2b3dc3f602f99a13fd6bd53fa2343b259f05e942b3cf1aa7 + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 10/af37d0d913fb56aec6dc0074c163cc71cd23c0b8aad5c2350747b6721d37ba118af35abdd8b33c47ec2800de07dedb16a527ca9c530ee004093e04958bd0cbf2 + languageName: node + linkType: hard + +"js-yaml@npm:^4.1.0": + version: 4.1.1 + resolution: "js-yaml@npm:4.1.1" + dependencies: + argparse: "npm:^2.0.1" + bin: + js-yaml: bin/js-yaml.js + checksum: 10/a52d0519f0f4ef5b4adc1cde466cb54c50d56e2b4a983b9d5c9c0f2f99462047007a6274d7e95617a21d3c91fde3ee6115536ed70991cd645ba8521058b78f77 + languageName: node + linkType: hard + +"jsdom@npm:^24.0.0": + version: 24.1.3 + resolution: "jsdom@npm:24.1.3" + dependencies: + cssstyle: "npm:^4.0.1" + data-urls: "npm:^5.0.0" + decimal.js: "npm:^10.4.3" + form-data: "npm:^4.0.0" + html-encoding-sniffer: "npm:^4.0.0" + http-proxy-agent: "npm:^7.0.2" + https-proxy-agent: "npm:^7.0.5" + is-potential-custom-element-name: "npm:^1.0.1" + nwsapi: "npm:^2.2.12" + parse5: "npm:^7.1.2" + rrweb-cssom: "npm:^0.7.1" + saxes: "npm:^6.0.0" + symbol-tree: "npm:^3.2.4" + tough-cookie: "npm:^4.1.4" + w3c-xmlserializer: "npm:^5.0.0" + webidl-conversions: "npm:^7.0.0" + whatwg-encoding: "npm:^3.1.1" + whatwg-mimetype: "npm:^4.0.0" + whatwg-url: "npm:^14.0.0" + ws: "npm:^8.18.0" + xml-name-validator: "npm:^5.0.0" + peerDependencies: + canvas: ^2.11.2 + peerDependenciesMeta: + canvas: + optional: true + checksum: 10/81e01d092a3620a9749e46572c26b21eb1fefc4e593f99e4acf3d4a803dfb091917e7b7096b3e62fab87e1d525a4030b803be1f5dbb5e7e61435d726f82f7457 + languageName: node + linkType: hard + +"json-buffer@npm:3.0.0": + version: 3.0.0 + resolution: "json-buffer@npm:3.0.0" + checksum: 10/6e364585600598c42f1cc85d1305569aeb1a6a13e7c67960f17b403f087e2700104ec8e49fc681ab6d6278ee4d132ac033f2625c22a9777ed9b83b403b40f23e + languageName: node + linkType: hard + +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10/82876154521b7b68ba71c4f969b91572d1beabadd87bd3a6b236f85fbc7dc4695089191ed60bb59f9340993c51b33d479f45b6ba9f3548beb519705281c32c3c + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 10/5f3a99009ed5f2a5a67d06e2f298cc97bc86d462034173308156f15b43a6e850be8511dc204b9b94566305da2947f7d90289657237d210351a39059ff9d666cf + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 10/7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-schema-traverse@npm:^1.0.0": + version: 1.0.0 + resolution: "json-schema-traverse@npm:1.0.0" + checksum: 10/02f2f466cdb0362558b2f1fd5e15cce82ef55d60cd7f8fa828cf35ba74330f8d767fcae5c5c2adb7851fa811766c694b9405810879bc4e1ddd78a7c0e03658ad + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: 10/12786c2e2f22c27439e6db0532ba321f1d0617c27ad8cb1c352a0e9249a50182fd1ba8b52a18899291604b0c32eafa8afd09e51203f19109a0537f68db2b652d + languageName: node + linkType: hard + +"json-stringify-safe@npm:^5.0.1": + version: 5.0.1 + resolution: "json-stringify-safe@npm:5.0.1" + checksum: 10/59169a081e4eeb6f9559ae1f938f656191c000e0512aa6df9f3c8b2437a4ab1823819c6b9fd1818a4e39593ccfd72e9a051fdd3e2d1e340ed913679e888ded8c + languageName: node + linkType: hard + +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: "npm:^1.2.0" + bin: + json5: lib/cli.js + checksum: 10/a78d812dbbd5642c4f637dd130954acfd231b074965871c3e28a5bbd571f099d623ecf9161f1960c4ddf68e0cc98dee8bebfdb94a71ad4551f85a1afc94b63f6 + languageName: node + linkType: hard + +"json5@npm:^2.2.3": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 10/1db67b853ff0de3534085d630691d3247de53a2ed1390ba0ddff681ea43e9b3e30ecbdb65c5e9aab49435e44059c23dbd6fee8ee619419ba37465bb0dd7135da + languageName: node + linkType: hard + +"jsonfile@npm:^6.0.1": + version: 6.2.0 + resolution: "jsonfile@npm:6.2.0" + dependencies: + graceful-fs: "npm:^4.1.6" + universalify: "npm:^2.0.0" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10/513aac94a6eff070767cafc8eb4424b35d523eec0fcd8019fe5b975f4de5b10a54640c8d5961491ddd8e6f562588cf62435c5ddaf83aaf0986cd2ee789e0d7b9 + languageName: node + linkType: hard + +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" + dependencies: + array-includes: "npm:^3.1.6" + array.prototype.flat: "npm:^1.3.1" + object.assign: "npm:^4.1.4" + object.values: "npm:^1.1.6" + checksum: 10/b61d44613687dfe4cc8ad4b4fbf3711bf26c60b8d5ed1f494d723e0808415c59b24a7c0ed8ab10736a40ff84eef38cbbfb68b395e05d31117b44ffc59d31edfc + languageName: node + linkType: hard + +"keyv@npm:^3.0.0": + version: 3.1.0 + resolution: "keyv@npm:3.1.0" + dependencies: + json-buffer: "npm:3.0.0" + checksum: 10/6de272b3f78975a9a0b12259953c09d5bbe9de9acfd845471ebd758928b523f70563462f0c16a866fe9b447ff5bdebda72c62bc23734eb72cd1fb8f1d7076843 + languageName: node + linkType: hard + +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10/167eb6ef64cc84b6fa0780ee50c9de456b422a1e18802209234f7c2cf7eae648c7741f32e50d7e24ccb22b24c13154070b01563d642755b156c357431a191e75 + languageName: node + linkType: hard + +"kind-of@npm:^6.0.2": + version: 6.0.3 + resolution: "kind-of@npm:6.0.3" + checksum: 10/5873d303fb36aad875b7538798867da2ae5c9e328d67194b0162a3659a627d22f742fc9c4ae95cd1704132a24b00cae5041fc00c0f6ef937dc17080dc4dbb962 + languageName: node + linkType: hard + +"latest-version@npm:^5.1.0": + version: 5.1.0 + resolution: "latest-version@npm:5.1.0" + dependencies: + package-json: "npm:^6.3.0" + checksum: 10/fbc72b071eb66c40f652441fd783a9cca62f08bf42433651937f078cd9ef94bf728ec7743992777826e4e89305aef24f234b515e6030503a2cbee7fc9bdc2c0f + languageName: node + linkType: hard + +"launch-editor@npm:^2.6.0": + version: 2.12.0 + resolution: "launch-editor@npm:2.12.0" + dependencies: + picocolors: "npm:^1.1.1" + shell-quote: "npm:^1.8.3" + checksum: 10/43d2b66c674d129f9a96bbae602808a0afa7e6bb6f38de5518479e33b1a542e9772b262304505c2aa363b0185424580b4011a9198082d306e2b419c6f12da5e2 + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: "npm:^1.2.1" + type-check: "npm:~0.4.0" + checksum: 10/2e4720ff79f21ae08d42374b0a5c2f664c5be8b6c8f565bb4e1315c96ed3a8acaa9de788ffed82d7f2378cf36958573de07ef92336cb5255ed74d08b8318c9ee + languageName: node + linkType: hard + +"line-reader@npm:^0.2.4": + version: 0.2.4 + resolution: "line-reader@npm:0.2.4" + checksum: 10/62ea55882df41938b5a5d93cfa4fdc06d263b206d7b97b0b9a1ddb10b0907debd36770931fd788c233ffcff724fd67ec15444f1f4c62e229fd8eb684991a6c62 + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 10/0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"load-json-file@npm:^6.2.0": + version: 6.2.0 + resolution: "load-json-file@npm:6.2.0" + dependencies: + graceful-fs: "npm:^4.1.15" + parse-json: "npm:^5.0.0" + strip-bom: "npm:^4.0.0" + type-fest: "npm:^0.6.0" + checksum: 10/4429e430ebb99375fc7cd936348e4f7ba729486080ced4272091c1e386a7f5f738ea3337d8ffd4b01c2f5bc3ddde92f2c780045b66838fe98bdb79f901884643 + languageName: node + linkType: hard + +"loader-runner@npm:^4.3.1": + version: 4.3.1 + resolution: "loader-runner@npm:4.3.1" + checksum: 10/d77127497c3f91fdba351e3e91156034e6e590e9f050b40df6c38ac16c54b5c903f7e2e141e09fefd046ee96b26fb50773c695ebc0aa205a4918683b124b04ba + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: "npm:^4.1.0" + checksum: 10/83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: "npm:^5.0.0" + checksum: 10/72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: 10/d0ea2dd0097e6201be083865d50c3fb54fbfbdb247d9cc5950e086c991f448b7ab0cdab0d57eacccb43473d3f2acd21e134db39f22dac2d6c9ba6bf26978e3d6 + languageName: node + linkType: hard + +"lodash@npm:^4.17.21": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: 10/c08619c038846ea6ac754abd6dd29d2568aa705feb69339e836dfa8d8b09abbb2f859371e86863eda41848221f9af43714491467b5b0299122431e202bb0c532 + languageName: node + linkType: hard + +"log-symbols@npm:^3.0.0": + version: 3.0.0 + resolution: "log-symbols@npm:3.0.0" + dependencies: + chalk: "npm:^2.4.2" + checksum: 10/f2322e1452d819050b11aad247660e1494f8b2219d40a964af91d5f9af1a90636f1b3d93f2952090e42af07cc5550aecabf6c1d8ec1181207e95cb66ba112361 + languageName: node + linkType: hard + +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10/fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: "npm:^3.0.0 || ^4.0.0" + bin: + loose-envify: cli.js + checksum: 10/6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "lowercase-keys@npm:1.0.1" + checksum: 10/12ba64572dc25ae9ee30d37a11f3a91aea046c1b6b905fdf8ac77e2f268f153ed36e60d39cb3bfa47a89f31d981dae9a8cc9915124a56fe51ff01ed6e8bb68fa + languageName: node + linkType: hard + +"lowercase-keys@npm:^2.0.0": + version: 2.0.0 + resolution: "lowercase-keys@npm:2.0.0" + checksum: 10/1c233d2da35056e8c49fae8097ee061b8c799b2f02e33c2bf32f9913c7de8fb481ab04dab7df35e94156c800f5f34e99acbf32b21781d87c3aa43ef7b748b79e + languageName: node + linkType: hard + +"lru-cache@npm:^10.4.3": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a + languageName: node + linkType: hard + +"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": + version: 11.2.4 + resolution: "lru-cache@npm:11.2.4" + checksum: 10/3b2da74c0b6653767f8164c38c4c4f4d7f0cc10c62bfa512663d94a830191ae6a5af742a8d88a8b30d5f9974652d3adae53931f32069139ad24fa2a18a199aca + languageName: node + linkType: hard + +"madge@npm:^6.1.0": + version: 6.1.0 + resolution: "madge@npm:6.1.0" + dependencies: + chalk: "npm:^4.1.1" + commander: "npm:^7.2.0" + commondir: "npm:^1.0.1" + debug: "npm:^4.3.1" + dependency-tree: "npm:^9.0.0" + detective-amd: "npm:^4.0.1" + detective-cjs: "npm:^4.0.0" + detective-es6: "npm:^3.0.0" + detective-less: "npm:^1.0.2" + detective-postcss: "npm:^6.1.0" + detective-sass: "npm:^4.0.1" + detective-scss: "npm:^3.0.0" + detective-stylus: "npm:^2.0.1" + detective-typescript: "npm:^9.0.0" + ora: "npm:^5.4.1" + pluralize: "npm:^8.0.0" + precinct: "npm:^8.1.0" + pretty-ms: "npm:^7.0.1" + rc: "npm:^1.2.7" + stream-to-array: "npm:^2.3.0" + ts-graphviz: "npm:^1.5.0" + walkdir: "npm:^0.4.1" + peerDependencies: + typescript: ^3.9.5 || ^4.9.5 || ^5 + peerDependenciesMeta: + typescript: + optional: true + bin: + madge: bin/cli.js + checksum: 10/80d3d549135e302109a5b98ab6cb088b44579779067365008368a042578bca0dfb1a76c697a1e9f63d5d2037724628e66b9dbd3efb0126555dd9d626a865d6d0 + languageName: node + linkType: hard + +"magic-string@npm:^0.25.7": + version: 0.25.9 + resolution: "magic-string@npm:0.25.9" + dependencies: + sourcemap-codec: "npm:^1.4.8" + checksum: 10/87a14b944bd169821cbd54b169a7ab6b0348fd44b5497266dc555dd70280744e9e88047da9dcb95675bdc23b1ce33f13398b0f70b3be7b858225ccb1d185ff51 + languageName: node + linkType: hard + +"magic-string@npm:^0.30.3": + version: 0.30.21 + resolution: "magic-string@npm:0.30.21" + dependencies: + "@jridgewell/sourcemap-codec": "npm:^1.5.5" + checksum: 10/57d5691f41ed40d962d8bd300148114f53db67fadbff336207db10a99f2bdf4a1be9cac3a68ee85dba575912ee1d4402e4396408196ec2d3afd043b076156221 + languageName: node + linkType: hard + +"make-dir@npm:^3.0.0, make-dir@npm:^3.0.2": + version: 3.1.0 + resolution: "make-dir@npm:3.1.0" + dependencies: + semver: "npm:^6.0.0" + checksum: 10/484200020ab5a1fdf12f393fe5f385fc8e4378824c940fba1729dcd198ae4ff24867bc7a5646331e50cead8abff5d9270c456314386e629acec6dff4b8016b78 + languageName: node + linkType: hard + +"make-fetch-happen@npm:^15.0.0": + version: 15.0.3 + resolution: "make-fetch-happen@npm:15.0.3" + dependencies: + "@npmcli/agent": "npm:^4.0.0" + cacache: "npm:^20.0.1" + http-cache-semantics: "npm:^4.1.1" + minipass: "npm:^7.0.2" + minipass-fetch: "npm:^5.0.0" + minipass-flush: "npm:^1.0.5" + minipass-pipeline: "npm:^1.2.4" + negotiator: "npm:^1.0.0" + proc-log: "npm:^6.0.0" + promise-retry: "npm:^2.0.1" + ssri: "npm:^13.0.0" + checksum: 10/78da4fc1df83cb596e2bae25aa0653b8a9c6cbdd6674a104894e03be3acfcd08c70b78f06ef6407fbd6b173f6a60672480d78641e693d05eb71c09c13ee35278 + languageName: node + linkType: hard + +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 10/11df2eda46d092a6035479632e1ec865b8134bdfc4bd9e571a656f4191525404f13a283a515938c3a8de934dbfd9c09674d9da9fa831e6eb7e22b50b197d2edd + languageName: node + linkType: hard + +"media-typer@npm:0.3.0": + version: 0.3.0 + resolution: "media-typer@npm:0.3.0" + checksum: 10/38e0984db39139604756903a01397e29e17dcb04207bb3e081412ce725ab17338ecc47220c1b186b6bbe79a658aad1b0d41142884f5a481f36290cdefbe6aa46 + languageName: node + linkType: hard + +"memfs@npm:^3.4.3": + version: 3.5.3 + resolution: "memfs@npm:3.5.3" + dependencies: + fs-monkey: "npm:^1.0.4" + checksum: 10/7c9cdb453a6b06e87f11e2dbe6c518fd3c1c1581b370ffa24f42f3fd5b1db8c2203f596e43321a0032963f3e9b66400f2c3cf043904ac496d6ae33eafd0878fe + languageName: node + linkType: hard + +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 10/52117adbe0313d5defa771c9993fe081e2d2df9b840597e966aadafde04ae8d0e3da46bac7ca4efc37d4d2b839436582659cd49c6a43eacb3fe3050896a105d1 + languageName: node + linkType: hard + +"merge-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "merge-stream@npm:2.0.0" + checksum: 10/6fa4dcc8d86629705cea944a4b88ef4cb0e07656ebf223fa287443256414283dd25d91c1cd84c77987f2aec5927af1a9db6085757cb43d90eb170ebf4b47f4f4 + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 10/7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"methods@npm:~1.1.2": + version: 1.1.2 + resolution: "methods@npm:1.1.2" + checksum: 10/a385dd974faa34b5dd021b2bbf78c722881bf6f003bfe6d391d7da3ea1ed625d1ff10ddd13c57531f628b3e785be38d3eed10ad03cebd90b76932413df9a1820 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.2, micromatch@npm:^4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10/6bf2a01672e7965eb9941d1f02044fad2bd12486b5553dc1116ff24c09a8723157601dc992e74c911d896175918448762df3b3fd0a6b61037dd1a9766ddfbf58 + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7 + languageName: node + linkType: hard + +"mime-db@npm:>= 1.43.0 < 2": + version: 1.54.0 + resolution: "mime-db@npm:1.54.0" + checksum: 10/9e7834be3d66ae7f10eaa69215732c6d389692b194f876198dca79b2b90cbf96688d9d5d05ef7987b20f749b769b11c01766564264ea5f919c88b32a29011311 + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: "npm:1.52.0" + checksum: 10/89aa9651b67644035de2784a6e665fc685d79aba61857e02b9c8758da874a754aed4a9aced9265f5ed1171fd934331e5516b84a7f0218031b6fa0270eca1e51a + languageName: node + linkType: hard + +"mime@npm:1.6.0": + version: 1.6.0 + resolution: "mime@npm:1.6.0" + bin: + mime: cli.js + checksum: 10/b7d98bb1e006c0e63e2c91b590fe1163b872abf8f7ef224d53dd31499c2197278a6d3d0864c45239b1a93d22feaf6f9477e9fc847eef945838150b8c02d03170 + languageName: node + linkType: hard + +"mime@npm:^3.0.0": + version: 3.0.0 + resolution: "mime@npm:3.0.0" + bin: + mime: cli.js + checksum: 10/b2d31580deb58be89adaa1877cbbf152b7604b980fd7ef8f08b9e96bfedf7d605d9c23a8ba62aa12c8580b910cd7c1d27b7331d0f40f7a14e17d5a0bbec3b49f + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: 10/d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": + version: 1.0.1 + resolution: "mimic-response@npm:1.0.1" + checksum: 10/034c78753b0e622bc03c983663b1cdf66d03861050e0c8606563d149bc2b02d63f62ce4d32be4ab50d0553ae0ffe647fc34d1f5281184c6e1e8cf4d85e8d9823 + languageName: node + linkType: hard + +"mimic-response@npm:^3.1.0": + version: 3.1.0 + resolution: "mimic-response@npm:3.1.0" + checksum: 10/7e719047612411fe071332a7498cf0448bbe43c485c0d780046c76633a771b223ff49bd00267be122cedebb897037fdb527df72335d0d0f74724604ca70b37ad + languageName: node + linkType: hard + +"minimalistic-assert@npm:^1.0.0": + version: 1.0.1 + resolution: "minimalistic-assert@npm:1.0.1" + checksum: 10/cc7974a9268fbf130fb055aff76700d7e2d8be5f761fb5c60318d0ed010d839ab3661a533ad29a5d37653133385204c503bfac995aaa4236f4e847461ea32ba7 + languageName: node + linkType: hard + +"minimatch@npm:9.0.3": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 + languageName: node + linkType: hard + +"minimatch@npm:^10.1.1": + version: 10.1.1 + resolution: "minimatch@npm:10.1.1" + dependencies: + "@isaacs/brace-expansion": "npm:^5.0.0" + checksum: 10/110f38921ea527022e90f7a5f43721838ac740d0a0c26881c03b57c261354fb9a0430e40b2c56dfcea2ef3c773768f27210d1106f1f2be19cde3eea93f26f45e + languageName: node + linkType: hard + +"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: "npm:^1.1.7" + checksum: 10/e0b25b04cd4ec6732830344e5739b13f8690f8a012d73445a4a19fbc623f5dd481ef7a5827fde25954cd6026fede7574cc54dc4643c99d6c6b653d6203f94634 + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: "npm:^2.0.1" + checksum: 10/126b36485b821daf96d33b5c821dac600cc1ab36c87e7a532594f9b1652b1fa89a1eebcaad4dff17c764dce1a7ac1531327f190fed5f97d8f6e5f889c116c429 + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 10/908491b6cc15a6c440ba5b22780a0ba89b9810e1aea684e253e43c4e3b8d56ec1dcdd7ea96dde119c29df59c936cde16062159eae4225c691e19c70b432b6e6f + languageName: node + linkType: hard + +"minipass-collect@npm:^2.0.1": + version: 2.0.1 + resolution: "minipass-collect@npm:2.0.1" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/b251bceea62090f67a6cced7a446a36f4cd61ee2d5cea9aee7fff79ba8030e416327a1c5aa2908dc22629d06214b46d88fdab8c51ac76bacbf5703851b5ad342 + languageName: node + linkType: hard + +"minipass-fetch@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass-fetch@npm:5.0.0" + dependencies: + encoding: "npm:^0.1.13" + minipass: "npm:^7.0.3" + minipass-sized: "npm:^1.0.3" + minizlib: "npm:^3.0.1" + dependenciesMeta: + encoding: + optional: true + checksum: 10/4fb7dca630a64e6970a8211dade505bfe260d0b8d60beb348dcdfb95fe35ef91d977b29963929c9017ae0805686aa3f413107dc6bc5deac9b9e26b0b41c3b86c + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: "npm:^3.0.0" + checksum: 10/40982d8d836a52b0f37049a0a7e5d0f089637298e6d9b45df9c115d4f0520682a78258905e5c8b180fb41b593b0a82cc1361d2c74b45f7ada66334f84d1ecfdd + languageName: node + linkType: hard + +"minipass@npm:^3.0.0": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: "npm:^4.0.0" + checksum: 10/a5c6ef069f70d9a524d3428af39f2b117ff8cd84172e19b754e7264a33df460873e6eb3d6e55758531580970de50ae950c496256bb4ad3691a2974cddff189f0 + languageName: node + linkType: hard + +"minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.2 + resolution: "minipass@npm:7.1.2" + checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950 + languageName: node + linkType: hard + +"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": + version: 3.1.0 + resolution: "minizlib@npm:3.1.0" + dependencies: + minipass: "npm:^7.1.2" + checksum: 10/f47365cc2cb7f078cbe7e046eb52655e2e7e97f8c0a9a674f4da60d94fb0624edfcec9b5db32e8ba5a99a5f036f595680ae6fe02a262beaa73026e505cc52f99 + languageName: node + linkType: hard + +"mock-socket@npm:^9.3.1": + version: 9.3.1 + resolution: "mock-socket@npm:9.3.1" + checksum: 10/c5c07568f2859db6926d79cb61580c07e67958b5cd6b52d1270fdfa17ae066d7f74a18a4208fc4386092eea4e1ee001aa23f015c88a1774265994e4fae34d18e + languageName: node + linkType: hard + +"module-definition@npm:^3.3.1": + version: 3.4.0 + resolution: "module-definition@npm:3.4.0" + dependencies: + ast-module-types: "npm:^3.0.0" + node-source-walk: "npm:^4.0.0" + bin: + module-definition: bin/cli.js + checksum: 10/5cbfd38aab1a9169b5c31924e208e430a87a1b1512ab9736a9a368d950e3cc8e2f5cf642e37fe74123e25402cae50bfb8fdf1f5f0fd3d4d9270df705a2360bfa + languageName: node + linkType: hard + +"module-definition@npm:^4.1.0": + version: 4.1.0 + resolution: "module-definition@npm:4.1.0" + dependencies: + ast-module-types: "npm:^4.0.0" + node-source-walk: "npm:^5.0.1" + bin: + module-definition: bin/cli.js + checksum: 10/d9b6397c9ba04b08bc035fd87a3652900530b9a5d6e5263f8a1e05c927dfc103fdffcecd7071a9fd6cd7813fc9feafbbe828f5277e5b706e5de82831153ef0fb + languageName: node + linkType: hard + +"module-lookup-amd@npm:^7.0.1": + version: 7.0.1 + resolution: "module-lookup-amd@npm:7.0.1" + dependencies: + commander: "npm:^2.8.1" + debug: "npm:^4.1.0" + glob: "npm:^7.1.6" + requirejs: "npm:^2.3.5" + requirejs-config-file: "npm:^4.0.0" + bin: + lookup-amd: bin/cli.js + checksum: 10/dadf8c602dd970e211136b22271231a853f76ec0b857a3bfa765e52a1f45f313a8e8bc7e1961f96bb1eced14e557cdbc798b37f5c17f0235cf29155617f4e7a9 + languageName: node + linkType: hard + +"ms@npm:2.0.0": + version: 2.0.0 + resolution: "ms@npm:2.0.0" + checksum: 10/0e6a22b8b746d2e0b65a430519934fefd41b6db0682e3477c10f60c76e947c4c0ad06f63ffdf1d78d335f83edee8c0aa928aa66a36c7cd95b69b26f468d527f4 + languageName: node + linkType: hard + +"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: 10/aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"multicast-dns@npm:^7.2.5": + version: 7.2.5 + resolution: "multicast-dns@npm:7.2.5" + dependencies: + dns-packet: "npm:^5.2.2" + thunky: "npm:^1.0.2" + bin: + multicast-dns: cli.js + checksum: 10/e9add8035fb7049ccbc87b1b069f05bb3b31e04fe057bf7d0116739d81295165afc2568291a4a962bee01a5074e475996816eed0f50c8110d652af5abb74f95a + languageName: node + linkType: hard + +"mute-stream@npm:0.0.8, mute-stream@npm:~0.0.4": + version: 0.0.8 + resolution: "mute-stream@npm:0.0.8" + checksum: 10/a2d2e79dde87e3424ffc8c334472c7f3d17b072137734ca46e6f221131f1b014201cc593b69a38062e974fb2394d3d1cb4349f80f012bbf8b8ac1b28033e515f + languageName: node + linkType: hard + +"nanoid@npm:^3.3.11": + version: 3.3.11 + resolution: "nanoid@npm:3.3.11" + bin: + nanoid: bin/nanoid.cjs + checksum: 10/73b5afe5975a307aaa3c95dfe3334c52cdf9ae71518176895229b8d65ab0d1c0417dd081426134eb7571c055720428ea5d57c645138161e7d10df80815527c48 + languageName: node + linkType: hard + +"napi-postinstall@npm:^0.3.0": + version: 0.3.4 + resolution: "napi-postinstall@npm:0.3.4" + bin: + napi-postinstall: lib/cli.js + checksum: 10/5541381508f9e1051ff3518701c7130ebac779abb3a1ffe9391fcc3cab4cc0569b0ba0952357db3f6b12909c3bb508359a7a60261ffd795feebbdab967175832 + languageName: node + linkType: hard + +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 10/5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 10/23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: 10/2723fb822a17ad55c93a588a4bc44d53b22855bf4be5499916ca0cab1e7165409d0b288ba2577d7b029f10ce18cf2ed8e703e5af31c984e1e2304277ef979837 + languageName: node + linkType: hard + +"negotiator@npm:^1.0.0": + version: 1.0.0 + resolution: "negotiator@npm:1.0.0" + checksum: 10/b5734e87295324fabf868e36fb97c84b7d7f3156ec5f4ee5bf6e488079c11054f818290fc33804cef7b1ee21f55eeb14caea83e7dafae6492a409b3e573153e5 + languageName: node + linkType: hard + +"negotiator@npm:~0.6.4": + version: 0.6.4 + resolution: "negotiator@npm:0.6.4" + checksum: 10/d98c04a136583afd055746168f1067d58ce4bfe6e4c73ca1d339567f81ea1f7e665b5bd1e81f4771c67b6c2ea89b21cb2adaea2b16058c7dc31317778f931dab + languageName: node + linkType: hard + +"neo-async@npm:^2.6.2": + version: 2.6.2 + resolution: "neo-async@npm:2.6.2" + checksum: 10/1a7948fea86f2b33ec766bc899c88796a51ba76a4afc9026764aedc6e7cde692a09067031e4a1bf6db4f978ccd99e7f5b6c03fe47ad9865c3d4f99050d67e002 + languageName: node + linkType: hard + +"nock@npm:^13.5.5": + version: 13.5.6 + resolution: "nock@npm:13.5.6" + dependencies: + debug: "npm:^4.1.0" + json-stringify-safe: "npm:^5.0.1" + propagate: "npm:^2.0.0" + checksum: 10/a57c265b75e5f7767e2f8baf058773cdbf357c31c5fea2761386ec03a008a657f9df921899fe2a9502773b47145b708863b32345aef529b3c45cba4019120f88 + languageName: node + linkType: hard + +"node-domexception@npm:^1.0.0": + version: 1.0.0 + resolution: "node-domexception@npm:1.0.0" + checksum: 10/e332522f242348c511640c25a6fc7da4f30e09e580c70c6b13cb0be83c78c3e71c8d4665af2527e869fc96848924a4316ae7ec9014c091e2156f41739d4fa233 + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.0, node-fetch@npm:^2.6.7": + version: 2.7.0 + resolution: "node-fetch@npm:2.7.0" + dependencies: + whatwg-url: "npm:^5.0.0" + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 10/b24f8a3dc937f388192e59bcf9d0857d7b6940a2496f328381641cb616efccc9866e89ec43f2ec956bbd6c3d3ee05524ce77fe7b29ccd34692b3a16f237d6676 + languageName: node + linkType: hard + +"node-fetch@npm:^3.3.2": + version: 3.3.2 + resolution: "node-fetch@npm:3.3.2" + dependencies: + data-uri-to-buffer: "npm:^4.0.0" + fetch-blob: "npm:^3.1.4" + formdata-polyfill: "npm:^4.0.10" + checksum: 10/24207ca8c81231c7c59151840e3fded461d67a31cf3e3b3968e12201a42f89ce4a0b5fb7079b1fa0a4655957b1ca9257553200f03a9f668b45ebad265ca5593d + languageName: node + linkType: hard + +"node-forge@npm:^1": + version: 1.3.3 + resolution: "node-forge@npm:1.3.3" + checksum: 10/f41c31b9296771a4b8c955d58417471712f54f324603a35f8e6cbac19d5e6eaaf5fd5fd14584dfedecbf46a05438ded6eee60a5f2f0822fc5061aaa073cfc75d + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 12.1.0 + resolution: "node-gyp@npm:12.1.0" + dependencies: + env-paths: "npm:^2.2.0" + exponential-backoff: "npm:^3.1.1" + graceful-fs: "npm:^4.2.6" + make-fetch-happen: "npm:^15.0.0" + nopt: "npm:^9.0.0" + proc-log: "npm:^6.0.0" + semver: "npm:^7.3.5" + tar: "npm:^7.5.2" + tinyglobby: "npm:^0.2.12" + which: "npm:^6.0.0" + bin: + node-gyp: bin/node-gyp.js + checksum: 10/d93079236cef1dd7fa4df683708d8708ad255c55865f6656664c8959e4d3963d908ac48e8f9f341705432e979dbbf502a40d68d65a17fe35956a5a05ba6c1cb4 + languageName: node + linkType: hard + +"node-releases@npm:^2.0.27": + version: 2.0.27 + resolution: "node-releases@npm:2.0.27" + checksum: 10/f6c78ddb392ae500719644afcbe68a9ea533242c02312eb6a34e8478506eb7482a3fb709c70235b01c32fe65625b68dfa9665113f816d87f163bc3819b62b106 + languageName: node + linkType: hard + +"node-source-walk@npm:^4.0.0, node-source-walk@npm:^4.2.0, node-source-walk@npm:^4.2.2": + version: 4.3.0 + resolution: "node-source-walk@npm:4.3.0" + dependencies: + "@babel/parser": "npm:^7.0.0" + checksum: 10/3145f4b907624b42bf7847d19937e33a1c3946b960ebcf5ac7eded9ba187ae00edec143946ef4a8f04835c31688f06e8341e0a7b4962a41d4d56bd5ab0a83ed5 + languageName: node + linkType: hard + +"node-source-walk@npm:^5.0.0, node-source-walk@npm:^5.0.1": + version: 5.0.2 + resolution: "node-source-walk@npm:5.0.2" + dependencies: + "@babel/parser": "npm:^7.21.4" + checksum: 10/cbb474a80a7c4576ed94bf4c999be889a85ad1177a0a80019714adece1f5ca70e6a5f728b6828afb4ea00ca524c3ea65fc24d7405b921b754bfb596553f78e7b + languageName: node + linkType: hard + +"nopt@npm:^9.0.0": + version: 9.0.0 + resolution: "nopt@npm:9.0.0" + dependencies: + abbrev: "npm:^4.0.0" + bin: + nopt: bin/nopt.js + checksum: 10/56a1ccd2ad711fb5115918e2c96828703cddbe12ba2c3bd00591758f6fa30e6f47dd905c59dbfcf9b773f3a293b45996609fb6789ae29d6bfcc3cf3a6f7d9fda + languageName: node + linkType: hard + +"normalize-path@npm:^3.0.0, normalize-path@npm:~3.0.0": + version: 3.0.0 + resolution: "normalize-path@npm:3.0.0" + checksum: 10/88eeb4da891e10b1318c4b2476b6e2ecbeb5ff97d946815ffea7794c31a89017c70d7f34b3c2ebf23ef4e9fc9fb99f7dffe36da22011b5b5c6ffa34f4873ec20 + languageName: node + linkType: hard + +"normalize-url@npm:^4.1.0": + version: 4.5.1 + resolution: "normalize-url@npm:4.5.1" + checksum: 10/20ced2845fcfaa46da74efc0aa39b7bed22f3db39e6e8b844261613082a36a2dcd468decad89fa9313b5464bebab4034f96bda7880e8fc468027fecf6a6fa254 + languageName: node + linkType: hard + +"npm-run-path@npm:^4.0.1": + version: 4.0.1 + resolution: "npm-run-path@npm:4.0.1" + dependencies: + path-key: "npm:^3.0.0" + checksum: 10/5374c0cea4b0bbfdfae62da7bbdf1e1558d338335f4cacf2515c282ff358ff27b2ecb91ffa5330a8b14390ac66a1e146e10700440c1ab868208430f56b5f4d23 + languageName: node + linkType: hard + +"nwsapi@npm:^2.2.12": + version: 2.2.23 + resolution: "nwsapi@npm:2.2.23" + checksum: 10/aa4a570039c33d70b51436d1bb533f3e2c33c488ccbe9b09285c46a6cee5ef266fd60103461085c6954ba52460786a8138f042958328c7c1b4763898eb3dadfa + languageName: node + linkType: hard + +"object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: 10/fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 10/aa13b1190ad3e366f6c83ad8a16ed37a19ed57d267385aa4bfdccda833d7b90465c057ff6c55d035a6b2e52c1a2295582b294217a0a3a1ae7abdd6877ef781fb + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: 10/3d81d02674115973df0b7117628ea4110d56042e5326413e4b4313f0bcdf7dd78d4a3acef2c831463fa3796a66762c49daef306f4a0ea1af44877d7086d73bde + languageName: node + linkType: hard + +"object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + has-symbols: "npm:^1.1.0" + object-keys: "npm:^1.1.1" + checksum: 10/3fe28cdd779f2a728a9a66bd688679ba231a2b16646cd1e46b528fe7c947494387dda4bc189eff3417f3717ef4f0a8f2439347cf9a9aa3cef722fbfd9f615587 + languageName: node + linkType: hard + +"object.entries@npm:^1.1.9": + version: 1.1.9 + resolution: "object.entries@npm:1.1.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.1.1" + checksum: 10/24163ab1e1e013796693fc5f5d349e8b3ac0b6a34a7edb6c17d3dd45c6a8854145780c57d302a82512c1582f63720f4b4779d6c1cfba12cbb1420b978802d8a3 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + es-object-atoms: "npm:^1.0.0" + checksum: 10/5b2e80f7af1778b885e3d06aeb335dcc86965e39464671adb7167ab06ac3b0f5dd2e637a90d8ebd7426d69c6f135a4753ba3dd7d0fe2a7030cf718dcb910fd92 + languageName: node + linkType: hard + +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.2" + checksum: 10/44cb86dd2c660434be65f7585c54b62f0425b0c96b5c948d2756be253ef06737da7e68d7106e35506ce4a44d16aa85a413d11c5034eb7ce5579ec28752eb42d0 + languageName: node + linkType: hard + +"object.values@npm:^1.1.6, object.values@npm:^1.2.1": + version: 1.2.1 + resolution: "object.values@npm:1.2.1" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/f5ec9eccdefeaaa834b089c525663436812a65ff13de7964a1c3a9110f32054f2d58aa476a645bb14f75a79f3fe1154fb3e7bfdae7ac1e80affe171b2ef74bce + languageName: node + linkType: hard + +"obuf@npm:^1.0.0, obuf@npm:^1.1.2": + version: 1.1.2 + resolution: "obuf@npm:1.1.2" + checksum: 10/53ff4ab3a13cc33ba6c856cf281f2965c0aec9720967af450e8fd06cfd50aceeefc791986a16bcefa14e7898b3ca9acdfcf15b9d9a1b9c7e1366581a8ad6e65e + languageName: node + linkType: hard + +"on-finished@npm:~2.4.1": + version: 2.4.1 + resolution: "on-finished@npm:2.4.1" + dependencies: + ee-first: "npm:1.1.1" + checksum: 10/8e81472c5028125c8c39044ac4ab8ba51a7cdc19a9fbd4710f5d524a74c6d8c9ded4dd0eed83f28d3d33ac1d7a6a439ba948ccb765ac6ce87f30450a26bfe2ea + languageName: node + linkType: hard + +"on-headers@npm:~1.1.0": + version: 1.1.0 + resolution: "on-headers@npm:1.1.0" + checksum: 10/98aa64629f986fb8cc4517dd8bede73c980e31208cba97f4442c330959f60ced3dc6214b83420491f5111fc7c4f4343abe2ea62c85f505cf041d67850f238776 + languageName: node + linkType: hard + +"once@npm:^1.3.0, once@npm:^1.3.1, once@npm:^1.4.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: "npm:1" + checksum: 10/cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0, onetime@npm:^5.1.2": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: "npm:^2.1.0" + checksum: 10/e9fd0695a01cf226652f0385bf16b7a24153dbbb2039f764c8ba6d2306a8506b0e4ce570de6ad99c7a6eb49520743afdb66edd95ee979c1a342554ed49a9aadd + languageName: node + linkType: hard + +"open@npm:^8.0.9": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10/acd81a1d19879c818acb3af2d2e8e9d81d17b5367561e623248133deb7dd3aefaed527531df2677d3e6aaf0199f84df57b6b2262babff8bf46ea0029aac536c9 + languageName: node + linkType: hard + +"optionator@npm:^0.9.3": + version: 0.9.4 + resolution: "optionator@npm:0.9.4" + dependencies: + deep-is: "npm:^0.1.3" + fast-levenshtein: "npm:^2.0.6" + levn: "npm:^0.4.1" + prelude-ls: "npm:^1.2.1" + type-check: "npm:^0.4.0" + word-wrap: "npm:^1.2.5" + checksum: 10/a8398559c60aef88d7f353a4f98dcdff6090a4e70f874c827302bf1213d9106a1c4d5fcb68dacb1feb3c30a04c4102f41047aa55d4c576b863d6fc876e001af6 + languageName: node + linkType: hard + +"ora@npm:^4.0.5": + version: 4.1.1 + resolution: "ora@npm:4.1.1" + dependencies: + chalk: "npm:^3.0.0" + cli-cursor: "npm:^3.1.0" + cli-spinners: "npm:^2.2.0" + is-interactive: "npm:^1.0.0" + log-symbols: "npm:^3.0.0" + mute-stream: "npm:0.0.8" + strip-ansi: "npm:^6.0.0" + wcwidth: "npm:^1.0.1" + checksum: 10/9fd0c5033f980e04a02c5e1158d629e22297fe44ab17202e4800911471c527af0440d789d154d3997163f5e4e60fbd6f2fbddb5b0657cfc5b4f1b13a055d7d45 + languageName: node + linkType: hard + +"ora@npm:^5.4.1": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: "npm:^4.1.0" + chalk: "npm:^4.1.0" + cli-cursor: "npm:^3.1.0" + cli-spinners: "npm:^2.5.0" + is-interactive: "npm:^1.0.0" + is-unicode-supported: "npm:^0.1.0" + log-symbols: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + wcwidth: "npm:^1.0.1" + checksum: 10/8d071828f40090a8e1c6e8f350c6eb065808e9ab2b3e57fa37e0d5ae78cb46dac00117c8f12c3c8b8da2923454afbd8265e08c10b69881170c5b269f451e7fef + languageName: node + linkType: hard + +"own-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "own-keys@npm:1.0.1" + dependencies: + get-intrinsic: "npm:^1.2.6" + object-keys: "npm:^1.1.1" + safe-push-apply: "npm:^1.0.0" + checksum: 10/ab4bb3b8636908554fc19bf899e225444195092864cb61503a0d048fdaf662b04be2605b636a4ffeaf6e8811f6fcfa8cbb210ec964c0eb1a41eb853e1d5d2f41 + languageName: node + linkType: hard + +"p-cancelable@npm:^1.0.0": + version: 1.1.0 + resolution: "p-cancelable@npm:1.1.0" + checksum: 10/2db3814fef6d9025787f30afaee4496a8857a28be3c5706432cbad76c688a6db1874308f48e364a42f5317f5e41e8e7b4f2ff5c8ff2256dbb6264bc361704ece + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: "npm:^2.0.0" + checksum: 10/84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: "npm:^0.1.0" + checksum: 10/7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: "npm:^2.2.0" + checksum: 10/513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: "npm:^3.0.2" + checksum: 10/1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^7.0.2": + version: 7.0.4 + resolution: "p-map@npm:7.0.4" + checksum: 10/ef48c3b2e488f31c693c9fcc0df0ef76518cf6426a495cf9486ebbb0fd7f31aef7f90e96f72e0070c0ff6e3177c9318f644b512e2c29e3feee8d7153fcb6782e + languageName: node + linkType: hard + +"p-retry@npm:^4.5.0": + version: 4.6.2 + resolution: "p-retry@npm:4.6.2" + dependencies: + "@types/retry": "npm:0.12.0" + retry: "npm:^0.13.1" + checksum: 10/45c270bfddaffb4a895cea16cb760dcc72bdecb6cb45fef1971fa6ea2e91ddeafddefe01e444ac73e33b1b3d5d29fb0dd18a7effb294262437221ddc03ce0f2e + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: 10/f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"package-json@npm:^6.3.0": + version: 6.5.0 + resolution: "package-json@npm:6.5.0" + dependencies: + got: "npm:^9.6.0" + registry-auth-token: "npm:^4.0.0" + registry-url: "npm:^5.0.0" + semver: "npm:^6.2.0" + checksum: 10/adb8e49f352ea0d71a4d351732c3870d57f21e6f3921d69a83dd9ef04b45cdb0a035495826fbe9fb2cb9a7e521484404b7d527c181133867b126588efa1996c6 + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: "npm:^3.0.0" + checksum: 10/6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": "npm:^7.0.0" + error-ex: "npm:^1.3.1" + json-parse-even-better-errors: "npm:^2.3.0" + lines-and-columns: "npm:^1.1.6" + checksum: 10/62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse-ms@npm:^2.1.0": + version: 2.1.0 + resolution: "parse-ms@npm:2.1.0" + checksum: 10/517eab80cdb9df6ae22a8fad944bfb4289482699bcde5211a1c127091dfea33c3dcb217246b188865fc32e998bcee815bfa4a863f41e3b2d0bcc69f34ef1a543 + languageName: node + linkType: hard + +"parse5@npm:^7.1.2": + version: 7.3.0 + resolution: "parse5@npm:7.3.0" + dependencies: + entities: "npm:^6.0.0" + checksum: 10/b0e48be20b820c655b138b86fa6fb3a790de6c891aa2aba536524f8027b4dca4fe538f11a0e5cf2f6f847d120dbb9e4822dcaeb933ff1e10850a2ef0154d1d88 + languageName: node + linkType: hard + +"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": + version: 1.3.3 + resolution: "parseurl@npm:1.3.3" + checksum: 10/407cee8e0a3a4c5cd472559bca8b6a45b82c124e9a4703302326e9ab60fc1081442ada4e02628efef1eb16197ddc7f8822f5a91fd7d7c86b51f530aedb17dfa2 + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 10/505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 10/060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.0.0, path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 10/55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 10/49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-scurry@npm:^2.0.0": + version: 2.0.1 + resolution: "path-scurry@npm:2.0.1" + dependencies: + lru-cache: "npm:^11.0.0" + minipass: "npm:^7.1.2" + checksum: 10/1e9c74e9ccf94d7c16056a5cb2dba9fa23eec1bc221ab15c44765486b9b9975b4cd9a4d55da15b96eadf67d5202e9a2f1cec9023fbb35fe7d9ccd0ff1891f88b + languageName: node + linkType: hard + +"path-to-regexp@npm:~0.1.12": + version: 0.1.12 + resolution: "path-to-regexp@npm:0.1.12" + checksum: 10/2e30f6a0144679c1f95c98e166b96e6acd1e72be9417830fefc8de7ac1992147eb9a4c7acaa59119fb1b3c34eec393b2129ef27e24b2054a3906fc4fb0d1398e + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 10/5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"perf-regexes@npm:^1.0.1": + version: 1.0.1 + resolution: "perf-regexes@npm:1.0.1" + checksum: 10/43008297d11f2af6cb989590e565060989272fd443fcf67d610bafec5387d3c9747aa5353530ff6598deee0b28f71fd5c5ebfa8a6d895efd38a5dec9fc02ab00 + languageName: node + linkType: hard + +"picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10/e1cf46bf84886c79055fdfa9dcb3e4711ad259949e3565154b004b260cd356c5d54b31a1437ce9782624bf766272fe6b0154f5f0c744fb7af5d454d2b60db045 + languageName: node + linkType: hard + +"picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 10/60c2595003b05e4535394d1da94850f5372c9427ca4413b71210f437f7b2ca091dbd611c45e8b37d10036fa8eade25c1b8951654f9d3973bfa66a2ff4d3b08bc + languageName: node + linkType: hard + +"picomatch@npm:^4.0.2, picomatch@npm:^4.0.3": + version: 4.0.3 + resolution: "picomatch@npm:4.0.3" + checksum: 10/57b99055f40b16798f2802916d9c17e9744e620a0db136554af01d19598b96e45e2f00014c91d1b8b13874b80caa8c295b3d589a3f72373ec4aaf54baa5962d5 + languageName: node + linkType: hard + +"pkg-dir@npm:^4.1.0, pkg-dir@npm:^4.2.0": + version: 4.2.0 + resolution: "pkg-dir@npm:4.2.0" + dependencies: + find-up: "npm:^4.0.0" + checksum: 10/9863e3f35132bf99ae1636d31ff1e1e3501251d480336edb1c211133c8d58906bed80f154a1d723652df1fda91e01c7442c2eeaf9dc83157c7ae89087e43c8d6 + languageName: node + linkType: hard + +"pluralize@npm:^8.0.0": + version: 8.0.0 + resolution: "pluralize@npm:8.0.0" + checksum: 10/17877fdfdb7ddb3639ce257ad73a7c51a30a966091e40f56ea9f2f545b5727ce548d4928f8cb3ce38e7dc0c5150407d318af6a4ed0ea5265d378473b4c2c61ec + languageName: node + linkType: hard + +"possible-typed-array-names@npm:^1.0.0": + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: 10/2f44137b8d3dd35f4a7ba7469eec1cd9cfbb46ec164b93a5bc1f4c3d68599c9910ee3b91da1d28b4560e9cc8414c3cd56fedc07259c67e52cc774476270d3302 + languageName: node + linkType: hard + +"postcss-values-parser@npm:^2.0.1": + version: 2.0.1 + resolution: "postcss-values-parser@npm:2.0.1" + dependencies: + flatten: "npm:^1.0.2" + indexes-of: "npm:^1.0.1" + uniq: "npm:^1.0.1" + checksum: 10/f69211656b90a9d2f5efb1ec4a9e5f076f968b0c1169bfddc16aa0dce2e3a2853d7875e4d8058652e9b65d084fab93bfee8da389f6a2145ac547ee9ab0a03456 + languageName: node + linkType: hard + +"postcss-values-parser@npm:^6.0.2": + version: 6.0.2 + resolution: "postcss-values-parser@npm:6.0.2" + dependencies: + color-name: "npm:^1.1.4" + is-url-superb: "npm:^4.0.0" + quote-unquote: "npm:^1.0.0" + peerDependencies: + postcss: ^8.2.9 + checksum: 10/ff2fa096896f1c33f7531e814b8d01e785bd99d672c1597d5c5d8c2409b30b8146be6565f6269c952d1f03d626f00ae3f1afb8308cc772c08b323abee23c9a42 + languageName: node + linkType: hard + +"postcss@npm:^8.1.7, postcss@npm:^8.4.23": + version: 8.5.6 + resolution: "postcss@npm:8.5.6" + dependencies: + nanoid: "npm:^3.3.11" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10/9e4fbe97574091e9736d0e82a591e29aa100a0bf60276a926308f8c57249698935f35c5d2f4e80de778d0cbb8dcffab4f383d85fd50c5649aca421c3df729b86 + languageName: node + linkType: hard + +"precinct@npm:^8.1.0": + version: 8.3.1 + resolution: "precinct@npm:8.3.1" + dependencies: + commander: "npm:^2.20.3" + debug: "npm:^4.3.3" + detective-amd: "npm:^3.1.0" + detective-cjs: "npm:^3.1.1" + detective-es6: "npm:^2.2.1" + detective-less: "npm:^1.0.2" + detective-postcss: "npm:^4.0.0" + detective-sass: "npm:^3.0.1" + detective-scss: "npm:^2.0.1" + detective-stylus: "npm:^1.0.0" + detective-typescript: "npm:^7.0.0" + module-definition: "npm:^3.3.1" + node-source-walk: "npm:^4.2.0" + bin: + precinct: bin/cli.js + checksum: 10/46ec2cd2e8af5386b1b0bf47fb264b288be39895dc6e33b9537d795d57c7b0a97f349c217edfa0bf584fef1031b4b0a5b30d1ad74fbe9833644adad6e325bc9e + languageName: node + linkType: hard + +"precinct@npm:^9.0.0": + version: 9.2.1 + resolution: "precinct@npm:9.2.1" + dependencies: + "@dependents/detective-less": "npm:^3.0.1" + commander: "npm:^9.5.0" + detective-amd: "npm:^4.1.0" + detective-cjs: "npm:^4.1.0" + detective-es6: "npm:^3.0.1" + detective-postcss: "npm:^6.1.1" + detective-sass: "npm:^4.1.1" + detective-scss: "npm:^3.0.1" + detective-stylus: "npm:^3.0.0" + detective-typescript: "npm:^9.1.1" + module-definition: "npm:^4.1.0" + node-source-walk: "npm:^5.0.1" + bin: + precinct: bin/cli.js + checksum: 10/f208d2e3c5d7c7b3834f70f761d0255680f76268d3835cd498006bc5dafa602aaecda0b2e68868ed679ec330fddaee0b662ba862d6eacd7282760dc0bc5f1b35 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: 10/0b9d2c76801ca652a7f64892dd37b7e3fab149a37d2424920099bf894acccc62abb4424af2155ab36dea8744843060a2d8ddc983518d0b1e22265a22324b72ed + languageName: node + linkType: hard + +"prepend-http@npm:^2.0.0": + version: 2.0.0 + resolution: "prepend-http@npm:2.0.0" + checksum: 10/7694a9525405447662c1ffd352fcb41b6410c705b739b6f4e3a3e21cf5fdede8377890088e8934436b8b17ba55365a615f153960f30877bf0d0392f9e93503ea + languageName: node + linkType: hard + +"pretty-ms@npm:^7.0.1": + version: 7.0.1 + resolution: "pretty-ms@npm:7.0.1" + dependencies: + parse-ms: "npm:^2.1.0" + checksum: 10/a39aac23cc7dae7a94c70518ab8b6c6db0894a7b84c81ee7abc8778c5ec8bae2d1e71ba991ff641732b38433724bfbdbb37bd3a00418637f797c072e06fe8b4c + languageName: node + linkType: hard + +"proc-log@npm:^6.0.0": + version: 6.1.0 + resolution: "proc-log@npm:6.1.0" + checksum: 10/9033f30f168ed5a0991b773d0c50ff88384c4738e9a0a67d341de36bf7293771eed648ab6a0562f62276da12fde91f3bbfc75ffff6e71ad49aafd74fc646be66 + languageName: node + linkType: hard + +"process-nextick-args@npm:~2.0.0": + version: 2.0.1 + resolution: "process-nextick-args@npm:2.0.1" + checksum: 10/1d38588e520dab7cea67cbbe2efdd86a10cc7a074c09657635e34f035277b59fbb57d09d8638346bf7090f8e8ebc070c96fa5fd183b777fff4f5edff5e9466cf + languageName: node + linkType: hard + +"progress-stream@npm:^2.0.0": + version: 2.0.0 + resolution: "progress-stream@npm:2.0.0" + dependencies: + speedometer: "npm:~1.0.0" + through2: "npm:~2.0.3" + checksum: 10/839f1009f9feb3d14cbb9bef16eebaecf9560af7b7f64003bfb42c4db1a8e52b32d6bb5a14299a38522046c26bac1bbad1a99eec6fb8fc42b1d4ed3f21f22a41 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: "npm:^2.0.2" + retry: "npm:^0.12.0" + checksum: 10/96e1a82453c6c96eef53a37a1d6134c9f2482f94068f98a59145d0986ca4e497bf110a410adf73857e588165eab3899f0ebcf7b3890c1b3ce802abc0d65967d4 + languageName: node + linkType: hard + +"prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: "npm:^1.4.0" + object-assign: "npm:^4.1.1" + react-is: "npm:^16.13.1" + checksum: 10/7d959caec002bc964c86cdc461ec93108b27337dabe6192fb97d69e16a0c799a03462713868b40749bfc1caf5f57ef80ac3e4ffad3effa636ee667582a75e2c0 + languageName: node + linkType: hard + +"propagate@npm:^2.0.0": + version: 2.0.1 + resolution: "propagate@npm:2.0.1" + checksum: 10/8c761c16e8232f82f6d015d3e01e8bd4109f47ad804f904d950f6fe319813b448ca112246b6bfdc182b400424b155b0b7c4525a9bb009e6fa950200157569c14 + languageName: node + linkType: hard + +"proxy-addr@npm:~2.0.7": + version: 2.0.7 + resolution: "proxy-addr@npm:2.0.7" + dependencies: + forwarded: "npm:0.2.0" + ipaddr.js: "npm:1.9.1" + checksum: 10/f24a0c80af0e75d31e3451398670d73406ec642914da11a2965b80b1898ca6f66a0e3e091a11a4327079b2b268795f6fa06691923fef91887215c3d0e8ea3f68 + languageName: node + linkType: hard + +"psl@npm:^1.1.33": + version: 1.15.0 + resolution: "psl@npm:1.15.0" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10/5e7467eb5196eb7900d156783d12907d445c0122f76c73203ce96b148a6ccf8c5450cc805887ffada38ff92d634afcf33720c24053cb01d5b6598d1c913c5caf + languageName: node + linkType: hard + +"pump@npm:^3.0.0": + version: 3.0.3 + resolution: "pump@npm:3.0.3" + dependencies: + end-of-stream: "npm:^1.1.0" + once: "npm:^1.3.1" + checksum: 10/52843fc933b838c0330f588388115a1b28ef2a5ffa7774709b142e35431e8ab0c2edec90de3fa34ebb72d59fef854f151eea7dfc211b6dcf586b384556bd2f39 + languageName: node + linkType: hard + +"pumpify@npm:^2.0.1": + version: 2.0.1 + resolution: "pumpify@npm:2.0.1" + dependencies: + duplexify: "npm:^4.1.1" + inherits: "npm:^2.0.3" + pump: "npm:^3.0.0" + checksum: 10/54bfdd04a30f459de5f1d1d022dc729e7257748900adf567a3b009f5aefe4a862ca91f3fb272f86c621eae631c4cc41f0efe5ee270752e2f9a90e7e63a9f8570 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0, punycode@npm:^2.1.1, punycode@npm:^2.3.1": + version: 2.3.1 + resolution: "punycode@npm:2.3.1" + checksum: 10/febdc4362bead22f9e2608ff0171713230b57aff9dddc1c273aa2a651fbd366f94b7d6a71d78342a7c0819906750351ca7f2edd26ea41b626d87d6a13d1bd059 + languageName: node + linkType: hard + +"pupa@npm:^2.1.1": + version: 2.1.1 + resolution: "pupa@npm:2.1.1" + dependencies: + escape-goat: "npm:^2.0.0" + checksum: 10/49529e50372ffdb0cccf0efa0f3b3cb0a2c77805d0d9cc2725bd2a0f6bb414631e61c93a38561b26be1259550b7bb6c2cb92315aa09c8bf93f3bdcb49f2b2fb7 + languageName: node + linkType: hard + +"qs@npm:~6.14.0": + version: 6.14.1 + resolution: "qs@npm:6.14.1" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10/34b5ab00a910df432d55180ef39c1d1375e550f098b5ec153b41787f1a6a6d7e5f9495593c3b112b77dbc6709d0ae18e55b82847a4c2bbbb0de1e8ccbb1794c5 + languageName: node + linkType: hard + +"querystringify@npm:^2.1.1": + version: 2.2.0 + resolution: "querystringify@npm:2.2.0" + checksum: 10/46ab16f252fd892fc29d6af60966d338cdfeea68a231e9457631ffd22d67cec1e00141e0a5236a2eb16c0d7d74175d9ec1d6f963660c6f2b1c2fc85b194c5680 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: 10/72900df0616e473e824202113c3df6abae59150dfb73ed13273503127235320e9c8ca4aaaaccfd58cf417c6ca92a6e68ee9a5c3182886ae949a768639b388a7b + languageName: node + linkType: hard + +"quote-unquote@npm:^1.0.0": + version: 1.0.0 + resolution: "quote-unquote@npm:1.0.0" + checksum: 10/955a2ead534f5b6a3f8d4dc5a4b95ac6468213d3fb11f8c1592a0a56345c45a3d14d5ca04d3de2bc9891493fcac38c03dfa91c48a6159aef50124e9c5afcea49 + languageName: node + linkType: hard + +"randombytes@npm:^2.1.0": + version: 2.1.0 + resolution: "randombytes@npm:2.1.0" + dependencies: + safe-buffer: "npm:^5.1.0" + checksum: 10/4efd1ad3d88db77c2d16588dc54c2b52fd2461e70fe5724611f38d283857094fe09040fa2c9776366803c3152cf133171b452ef717592b65631ce5dc3a2bdafc + languageName: node + linkType: hard + +"range-parser@npm:^1.2.1, range-parser@npm:~1.2.1": + version: 1.2.1 + resolution: "range-parser@npm:1.2.1" + checksum: 10/ce21ef2a2dd40506893157970dc76e835c78cf56437e26e19189c48d5291e7279314477b06ac38abd6a401b661a6840f7b03bd0b1249da9b691deeaa15872c26 + languageName: node + linkType: hard + +"raw-body@npm:~2.5.3": + version: 2.5.3 + resolution: "raw-body@npm:2.5.3" + dependencies: + bytes: "npm:~3.1.2" + http-errors: "npm:~2.0.1" + iconv-lite: "npm:~0.4.24" + unpipe: "npm:~1.0.0" + checksum: 10/f35759fe5a6548e7c529121ead1de4dd163f899749a5896c42e278479df2d9d7f98b5bb17312737c03617765e5a1433e586f717616e5cfbebc13b4738b820601 + languageName: node + linkType: hard + +"rc@npm:1.2.8, rc@npm:^1.2.7, rc@npm:^1.2.8": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: "npm:^0.6.0" + ini: "npm:~1.3.0" + minimist: "npm:^1.2.0" + strip-json-comments: "npm:~2.0.1" + bin: + rc: ./cli.js + checksum: 10/5c4d72ae7eec44357171585938c85ce066da8ca79146b5635baf3d55d74584c92575fa4e2c9eac03efbed3b46a0b2e7c30634c012b4b4fa40d654353d3c163eb + languageName: node + linkType: hard + +"react-is@npm:^16.13.1": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: 10/5aa564a1cde7d391ac980bedee21202fc90bdea3b399952117f54fb71a932af1e5902020144fb354b4690b2414a0c7aafe798eb617b76a3d441d956db7726fdf + languageName: node + linkType: hard + +"read@npm:^1.0.7": + version: 1.0.7 + resolution: "read@npm:1.0.7" + dependencies: + mute-stream: "npm:~0.0.4" + checksum: 10/2777c254e5732cac96f5d0a1c0f6b836c89ae23d8febd405b206f6f24d5de1873420f1a0795e0e3721066650d19adf802c7882c4027143ee0acf942a4f34f97b + languageName: node + linkType: hard + +"readable-stream@npm:^2.0.1, readable-stream@npm:~2.3.6": + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" + dependencies: + core-util-is: "npm:~1.0.0" + inherits: "npm:~2.0.3" + isarray: "npm:~1.0.0" + process-nextick-args: "npm:~2.0.0" + safe-buffer: "npm:~5.1.1" + string_decoder: "npm:~1.1.1" + util-deprecate: "npm:~1.0.1" + checksum: 10/8500dd3a90e391d6c5d889256d50ec6026c059fadee98ae9aa9b86757d60ac46fff24fafb7a39fa41d54cb39d8be56cc77be202ebd4cd8ffcf4cb226cbaa40d4 + languageName: node + linkType: hard + +"readable-stream@npm:^3.0.6, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: "npm:^2.0.3" + string_decoder: "npm:^1.1.1" + util-deprecate: "npm:^1.0.1" + checksum: 10/d9e3e53193adcdb79d8f10f2a1f6989bd4389f5936c6f8b870e77570853561c362bee69feca2bbb7b32368ce96a85504aa4cedf7cf80f36e6a9de30d64244048 + languageName: node + linkType: hard + +"readdirp@npm:~3.6.0": + version: 3.6.0 + resolution: "readdirp@npm:3.6.0" + dependencies: + picomatch: "npm:^2.2.1" + checksum: 10/196b30ef6ccf9b6e18c4e1724b7334f72a093d011a99f3b5920470f0b3406a51770867b3e1ae9711f227ef7a7065982f6ee2ce316746b2cb42c88efe44297fe7 + languageName: node + linkType: hard + +"rechoir@npm:^0.6.2": + version: 0.6.2 + resolution: "rechoir@npm:0.6.2" + dependencies: + resolve: "npm:^1.1.6" + checksum: 10/fe76bf9c21875ac16e235defedd7cbd34f333c02a92546142b7911a0f7c7059d2e16f441fe6fb9ae203f459c05a31b2bcf26202896d89e390eda7514d5d2702b + languageName: node + linkType: hard + +"rechoir@npm:^0.8.0": + version: 0.8.0 + resolution: "rechoir@npm:0.8.0" + dependencies: + resolve: "npm:^1.20.0" + checksum: 10/ad3caed8afdefbc33fbc30e6d22b86c35b3d51c2005546f4e79bcc03c074df804b3640ad18945e6bef9ed12caedc035655ec1082f64a5e94c849ff939dc0a788 + languageName: node + linkType: hard + +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.10 + resolution: "reflect.getprototypeof@npm:1.0.10" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.9" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.7" + get-proto: "npm:^1.0.1" + which-builtin-type: "npm:^1.2.1" + checksum: 10/80a4e2be716f4fe46a89a08ccad0863b47e8ce0f49616cab2d65dab0fbd53c6fdba0f52935fd41d37a2e4e22355c272004f920d63070de849f66eea7aeb4a081 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" + dependencies: + call-bind: "npm:^1.0.8" + define-properties: "npm:^1.2.1" + es-errors: "npm:^1.3.0" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + set-function-name: "npm:^2.0.2" + checksum: 10/8ab897ca445968e0b96f6237641510f3243e59c180ee2ee8d83889c52ff735dd1bf3657fcd36db053e35e1d823dd53f2565d0b8021ea282c9fe62401c6c3bd6d + languageName: node + linkType: hard + +"registry-auth-token@npm:^4.0.0": + version: 4.2.2 + resolution: "registry-auth-token@npm:4.2.2" + dependencies: + rc: "npm:1.2.8" + checksum: 10/00d1b1c69f09df52a0bfbaecee71f2ba094d8fd8d1abc325090655b2c6c8a69c969b31525086c10f95126c3452cd4a0c5c9a6832fb08bec5a32a4e224b790cf8 + languageName: node + linkType: hard + +"registry-url@npm:^5.0.0": + version: 5.1.0 + resolution: "registry-url@npm:5.1.0" + dependencies: + rc: "npm:^1.2.8" + checksum: 10/bcea86c84a0dbb66467b53187fadebfea79017cddfb4a45cf27530d7275e49082fe9f44301976eb0164c438e395684bcf3dae4819b36ff9d1640d8cc60c73df9 + languageName: node + linkType: hard + +"remove-markdown@npm:^0.5.0": + version: 0.5.5 + resolution: "remove-markdown@npm:0.5.5" + checksum: 10/0cb77c70ea64565ee9cfcb2f447782a02ef27885b8d131c027064f6313f9770da4ec837c53c9461cec7a13c4df50078b2544e89655bd6d4a98d50571df84c38f + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: 10/a72468e2589270d91f06c7d36ec97a88db53ae5d6fe3787fadc943f0b0276b10347f89b363b2a82285f650bdcc135ad4a257c61bdd4d00d6df1fa24875b0ddaf + languageName: node + linkType: hard + +"require-from-string@npm:^2.0.2": + version: 2.0.2 + resolution: "require-from-string@npm:2.0.2" + checksum: 10/839a3a890102a658f4cb3e7b2aa13a1f80a3a976b512020c3d1efc418491c48a886b6e481ea56afc6c4cb5eef678f23b2a4e70575e7534eccadf5e30ed2e56eb + languageName: node + linkType: hard + +"requirejs-config-file@npm:^4.0.0": + version: 4.0.0 + resolution: "requirejs-config-file@npm:4.0.0" + dependencies: + esprima: "npm:^4.0.0" + stringify-object: "npm:^3.2.1" + checksum: 10/9fc55813ca8627cc4d3704622702b6b119a222c97825fc61459727d5f9ef9435e4fd34ee03335dc119c66e834d7963fdfe43d9a4df99448d43219587c624ba4e + languageName: node + linkType: hard + +"requirejs@npm:^2.3.5": + version: 2.3.8 + resolution: "requirejs@npm:2.3.8" + bin: + r.js: bin/r.js + r_js: bin/r.js + checksum: 10/7ac26361aecd819abab6a88d0a09beb2e1bb402050bce2ae1c6d5826bfa932c1cc7ab523a8e9bb2cc60c961da4df4ffdaba7e46bae10b12147368f7957a8f280 + languageName: node + linkType: hard + +"requires-port@npm:^1.0.0": + version: 1.0.0 + resolution: "requires-port@npm:1.0.0" + checksum: 10/878880ee78ccdce372784f62f52a272048e2d0827c29ae31e7f99da18b62a2b9463ea03a75f277352f4697c100183debb0532371ad515a2d49d4bfe596dd4c20 + languageName: node + linkType: hard + +"resolve-cwd@npm:^3.0.0": + version: 3.0.0 + resolution: "resolve-cwd@npm:3.0.0" + dependencies: + resolve-from: "npm:^5.0.0" + checksum: 10/546e0816012d65778e580ad62b29e975a642989108d9a3c5beabfb2304192fa3c9f9146fbdfe213563c6ff51975ae41bac1d3c6e047dd9572c94863a057b4d81 + languageName: node + linkType: hard + +"resolve-dependency-path@npm:^2.0.0": + version: 2.0.0 + resolution: "resolve-dependency-path@npm:2.0.0" + checksum: 10/f7511412546276473bbe0182730baf9bda08a437425f817b1d944ecac4c0a137129c544bf60ca5928b1b89f7124855408c257a12e1b604ebbffeb997bbb81a65 + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: 10/91eb76ce83621eea7bbdd9b55121a5c1c4a39e54a9ce04a9ad4517f102f8b5131c2cf07622c738a6683991bf54f2ce178f5a42803ecbd527ddc5105f362cc9e3 + languageName: node + linkType: hard + +"resolve-from@npm:^5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 10/be18a5e4d76dd711778664829841cde690971d02b6cbae277735a09c1c28f407b99ef6ef3cd585a1e6546d4097b28df40ed32c4a287b9699dcf6d7f208495e23 + languageName: node + linkType: hard + +"resolve-pkg-maps@npm:^1.0.0": + version: 1.0.0 + resolution: "resolve-pkg-maps@npm:1.0.0" + checksum: 10/0763150adf303040c304009231314d1e84c6e5ebfa2d82b7d94e96a6e82bacd1dcc0b58ae257315f3c8adb89a91d8d0f12928241cba2df1680fbe6f60bf99b0e + languageName: node + linkType: hard + +"resolve@npm:^1.1.6, resolve@npm:^1.20.0, resolve@npm:^1.21.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2, resolve@npm:^1.22.4": + version: 1.22.11 + resolution: "resolve@npm:1.22.11" + dependencies: + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/e1b2e738884a08de03f97ee71494335eba8c2b0feb1de9ae065e82c48997f349f77a2b10e8817e147cf610bfabc4b1cb7891ee8eaf5bf80d4ad514a34c4fab0a + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.5": + version: 2.0.0-next.5 + resolution: "resolve@npm:2.0.0-next.5" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/2d6fd28699f901744368e6f2032b4268b4c7b9185fd8beb64f68c93ac6b22e52ae13560ceefc96241a665b985edf9ffd393ae26d2946a7d3a07b7007b7d51e79 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.21.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin, resolve@patch:resolve@npm%3A^1.22.2#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin": + version: 1.22.11 + resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/fd342cad25e52cd6f4f3d1716e189717f2522bfd6641109fe7aa372f32b5714a296ed7c238ddbe7ebb0c1ddfe0b7f71c9984171024c97cf1b2073e3e40ff71a8 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin": + version: 2.0.0-next.5 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#optional!builtin::version=2.0.0-next.5&hash=c3c19d" + dependencies: + is-core-module: "npm:^2.13.0" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10/05fa778de9d0347c8b889eb7a18f1f06bf0f801b0eb4610b4871a4b2f22e220900cf0ad525e94f990bb8d8921c07754ab2122c0c225ab4cdcea98f36e64fa4c2 + languageName: node + linkType: hard + +"responselike@npm:^1.0.2": + version: 1.0.2 + resolution: "responselike@npm:1.0.2" + dependencies: + lowercase-keys: "npm:^1.0.0" + checksum: 10/2e9e70f1dcca3da621a80ce71f2f9a9cad12c047145c6ece20df22f0743f051cf7c73505e109814915f23f9e34fb0d358e22827723ee3d56b623533cab8eafcd + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: "npm:^5.1.0" + signal-exit: "npm:^3.0.2" + checksum: 10/f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 10/1f914879f97e7ee931ad05fe3afa629bd55270fc6cf1c1e589b6a99fab96d15daad0fa1a52a00c729ec0078045fe3e399bd4fd0c93bcc906957bdc17f89cb8e6 + languageName: node + linkType: hard + +"retry@npm:^0.13.1": + version: 0.13.1 + resolution: "retry@npm:0.13.1" + checksum: 10/6125ec2e06d6e47e9201539c887defba4e47f63471db304c59e4b82fc63c8e89ca06a77e9d34939a9a42a76f00774b2f46c0d4a4cbb3e287268bd018ed69426d + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.1.0 + resolution: "reusify@npm:1.1.0" + checksum: 10/af47851b547e8a8dc89af144fceee17b80d5beaf5e6f57ed086432d79943434ff67ca526e92275be6f54b6189f6920a24eace75c2657eed32d02c400312b21ec + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: "npm:^7.1.3" + bin: + rimraf: bin.js + checksum: 10/063ffaccaaaca2cfd0ef3beafb12d6a03dd7ff1260d752d62a6077b5dfff6ae81bea571f655bb6b589d366930ec1bdd285d40d560c0dae9b12f125e54eb743d5 + languageName: node + linkType: hard + +"rollup-plugin-cleanup@npm:^3.2.1": + version: 3.2.1 + resolution: "rollup-plugin-cleanup@npm:3.2.1" + dependencies: + js-cleanup: "npm:^1.2.0" + rollup-pluginutils: "npm:^2.8.2" + peerDependencies: + rollup: ">=2.0" + checksum: 10/03fe39ead52374e018404e59018ac360f1ec54454f48a468466d0a37aa69358f162bb0554cb0bf911f25d8b9f542c1287a45662e0830a2eb3e320c615cc8cf61 + languageName: node + linkType: hard + +"rollup-pluginutils@npm:^2.8.2": + version: 2.8.2 + resolution: "rollup-pluginutils@npm:2.8.2" + dependencies: + estree-walker: "npm:^0.6.1" + checksum: 10/f3dc20a8731523aff43e07fa50ed84857e9dd3ab81e2cfb0351d517c46820e585bfbd1530a5dddec3ac14d61d41eb9bf50b38ded987e558292790331cc5b0628 + languageName: node + linkType: hard + +"rollup@npm:^4.9.6": + version: 4.55.1 + resolution: "rollup@npm:4.55.1" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.55.1" + "@rollup/rollup-android-arm64": "npm:4.55.1" + "@rollup/rollup-darwin-arm64": "npm:4.55.1" + "@rollup/rollup-darwin-x64": "npm:4.55.1" + "@rollup/rollup-freebsd-arm64": "npm:4.55.1" + "@rollup/rollup-freebsd-x64": "npm:4.55.1" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.55.1" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.55.1" + "@rollup/rollup-linux-arm64-gnu": "npm:4.55.1" + "@rollup/rollup-linux-arm64-musl": "npm:4.55.1" + "@rollup/rollup-linux-loong64-gnu": "npm:4.55.1" + "@rollup/rollup-linux-loong64-musl": "npm:4.55.1" + "@rollup/rollup-linux-ppc64-gnu": "npm:4.55.1" + "@rollup/rollup-linux-ppc64-musl": "npm:4.55.1" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.55.1" + "@rollup/rollup-linux-riscv64-musl": "npm:4.55.1" + "@rollup/rollup-linux-s390x-gnu": "npm:4.55.1" + "@rollup/rollup-linux-x64-gnu": "npm:4.55.1" + "@rollup/rollup-linux-x64-musl": "npm:4.55.1" + "@rollup/rollup-openbsd-x64": "npm:4.55.1" + "@rollup/rollup-openharmony-arm64": "npm:4.55.1" + "@rollup/rollup-win32-arm64-msvc": "npm:4.55.1" + "@rollup/rollup-win32-ia32-msvc": "npm:4.55.1" + "@rollup/rollup-win32-x64-gnu": "npm:4.55.1" + "@rollup/rollup-win32-x64-msvc": "npm:4.55.1" + "@types/estree": "npm:1.0.8" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loong64-gnu": + optional: true + "@rollup/rollup-linux-loong64-musl": + optional: true + "@rollup/rollup-linux-ppc64-gnu": + optional: true + "@rollup/rollup-linux-ppc64-musl": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-openbsd-x64": + optional: true + "@rollup/rollup-openharmony-arm64": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-gnu": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10/392a8bb68ce492d5f8f59d9420b448e76b2550152482a61688617c1c9c52f8f61162478cfe44f2c6a647e82b0a5e7d61e1ac1f2701ca4d48f4acd231df7bd84a + languageName: node + linkType: hard + +"root-workspace-0b6124@workspace:.": + version: 0.0.0-use.local + resolution: "root-workspace-0b6124@workspace:." + dependencies: + "@pezkuwi/dev": "npm:^0.85.1" + "@pezkuwi/dev-test": "npm:^0.85.1" + "@pezkuwi/dev-ts": "npm:^0.85.1" + "@pezkuwi/typegen": "npm:^16.5.4" + "@types/node": "npm:^22.10.5" + languageName: unknown + linkType: soft + +"rrweb-cssom@npm:^0.7.1": + version: 0.7.1 + resolution: "rrweb-cssom@npm:0.7.1" + checksum: 10/e80cf25c223a823921d7ab57c0ce78f5b7ebceab857b400cce99dd4913420ce679834bc5707e8ada47d062e21ad368108a9534c314dc8d72c20aa4a4fa0ed16a + languageName: node + linkType: hard + +"rrweb-cssom@npm:^0.8.0": + version: 0.8.0 + resolution: "rrweb-cssom@npm:0.8.0" + checksum: 10/07521ee36fb6569c17906afad1ac7ff8f099d49ade9249e190693ac36cdf27f88d9acf0cc66978935d5d0a23fca105643d7e9125b9a9d91ed9db9e02d31d7d80 + languageName: node + linkType: hard + +"run-async@npm:^2.4.0": + version: 2.4.1 + resolution: "run-async@npm:2.4.1" + checksum: 10/c79551224dafa26ecc281cb1efad3510c82c79116aaf681f8a931ce70fdf4ca880d58f97d3b930a38992c7aad7955a08e065b32ec194e1dd49d7790c874ece50 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: "npm:^1.2.2" + checksum: 10/cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rxjs@npm:^7.5.5, rxjs@npm:^7.8.1": + version: 7.8.2 + resolution: "rxjs@npm:7.8.2" + dependencies: + tslib: "npm:^2.1.0" + checksum: 10/03dff09191356b2b87d94fbc1e97c4e9eb3c09d4452399dddd451b09c2f1ba8d56925a40af114282d7bc0c6fe7514a2236ca09f903cf70e4bbf156650dddb49d + languageName: node + linkType: hard + +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + get-intrinsic: "npm:^1.2.6" + has-symbols: "npm:^1.1.0" + isarray: "npm:^2.0.5" + checksum: 10/fac4f40f20a3f7da024b54792fcc61059e814566dcbb04586bfefef4d3b942b2408933f25b7b3dd024affd3f2a6bbc916bef04807855e4f192413941369db864 + languageName: node + linkType: hard + +"safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.1.0, safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: 10/32872cd0ff68a3ddade7a7617b8f4c2ae8764d8b7d884c651b74457967a9e0e886267d3ecc781220629c44a865167b61c375d2da6c720c840ecd73f45d5d9451 + languageName: node + linkType: hard + +"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": + version: 5.1.2 + resolution: "safe-buffer@npm:5.1.2" + checksum: 10/7eb5b48f2ed9a594a4795677d5a150faa7eb54483b2318b568dc0c4fc94092a6cce5be02c7288a0500a156282f5276d5688bce7259299568d1053b2150ef374a + languageName: node + linkType: hard + +"safe-push-apply@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-push-apply@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + isarray: "npm:^2.0.5" + checksum: 10/2bd4e53b6694f7134b9cf93631480e7fafc8637165f0ee91d5a4af5e7f33d37de9562d1af5021178dd4217d0230cde8d6530fa28cfa1ebff9a431bf8fff124b4 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + is-regex: "npm:^1.2.1" + checksum: 10/ebdb61f305bf4756a5b023ad86067df5a11b26898573afe9e52a548a63c3bd594825d9b0e2dde2eb3c94e57e0e04ac9929d4107c394f7b8e56a4613bed46c69a + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: 10/7eaf7a0cf37cc27b42fb3ef6a9b1df6e93a1c6d98c6c6702b02fe262d5fcbd89db63320793b99b21cb5348097d0a53de81bd5f4e8b86e20cc9412e3f1cfb4e83 + languageName: node + linkType: hard + +"sass-lookup@npm:^3.0.0": + version: 3.0.0 + resolution: "sass-lookup@npm:3.0.0" + dependencies: + commander: "npm:^2.16.0" + bin: + sass-lookup: bin/cli.js + checksum: 10/010b6ae2ee42554ef567a433a1febb9979e91ea99bfacc514e886cf966adba76cd075126d4eac3d557377c30ce2477825bd3d9b59a326571f295c99373a342da + languageName: node + linkType: hard + +"saxes@npm:^6.0.0": + version: 6.0.0 + resolution: "saxes@npm:6.0.0" + dependencies: + xmlchars: "npm:^2.2.0" + checksum: 10/97b50daf6ca3a153e89842efa18a862e446248296622b7473c169c84c823ee8a16e4a43bac2f73f11fc8cb9168c73fbb0d73340f26552bac17970e9052367aa9 + languageName: node + linkType: hard + +"schema-utils@npm:^4.0.0, schema-utils@npm:^4.3.0, schema-utils@npm:^4.3.3": + version: 4.3.3 + resolution: "schema-utils@npm:4.3.3" + dependencies: + "@types/json-schema": "npm:^7.0.9" + ajv: "npm:^8.9.0" + ajv-formats: "npm:^2.1.1" + ajv-keywords: "npm:^5.1.0" + checksum: 10/dba77a46ad7ff0c906f7f09a1a61109e6cb56388f15a68070b93c47a691f516c6a3eb454f81a8cceb0a0e55b87f8b05770a02bfb1f4e0a3143b5887488b2f900 + languageName: node + linkType: hard + +"select-hose@npm:^2.0.0": + version: 2.0.0 + resolution: "select-hose@npm:2.0.0" + checksum: 10/08cdd629a394d20e9005e7956f0624307c702cf950cc0458953e9b87ea961d3b1b72ac02266bdb93ac1eec4fcf42b41db9cabe93aa2b7683d71513d133c44fb5 + languageName: node + linkType: hard + +"selfsigned@npm:^2.1.1": + version: 2.4.1 + resolution: "selfsigned@npm:2.4.1" + dependencies: + "@types/node-forge": "npm:^1.3.0" + node-forge: "npm:^1" + checksum: 10/52536623f1cfdeb2f8b9198377f2ce7931c677ea69421238d1dc1ea2983bbe258e56c19e7d1af87035cad7270f19b7e996eaab1212e724d887722502f68e17f2 + languageName: node + linkType: hard + +"semver-diff@npm:^3.1.1": + version: 3.1.1 + resolution: "semver-diff@npm:3.1.1" + dependencies: + semver: "npm:^6.3.0" + checksum: 10/8bbe5a5d7add2d5e51b72314a9215cd294d71f41cdc2bf6bd59ee76411f3610b576172896f1d191d0d7294cb9f2f847438d2ee158adacc0c224dca79052812fe + languageName: node + linkType: hard + +"semver@npm:^6.0.0, semver@npm:^6.2.0, semver@npm:^6.3.0, semver@npm:^6.3.1": + version: 6.3.1 + resolution: "semver@npm:6.3.1" + bin: + semver: bin/semver.js + checksum: 10/1ef3a85bd02a760c6ef76a45b8c1ce18226de40831e02a00bad78485390b98b6ccaa31046245fc63bba4a47a6a592b6c7eedc65cc47126e60489f9cc1ce3ed7e + languageName: node + linkType: hard + +"semver@npm:^7.0.0, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.7.1": + version: 7.7.3 + resolution: "semver@npm:7.7.3" + bin: + semver: bin/semver.js + checksum: 10/8dbc3168e057a38fc322af909c7f5617483c50caddba135439ff09a754b20bdd6482a5123ff543dad4affa488ecf46ec5fb56d61312ad20bb140199b88dfaea9 + languageName: node + linkType: hard + +"send@npm:~0.19.0, send@npm:~0.19.1": + version: 0.19.2 + resolution: "send@npm:0.19.2" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:~0.5.2" + http-errors: "npm:~2.0.1" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:~2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:~2.0.2" + checksum: 10/e932a592f62c58560b608a402d52333a8ae98a5ada076feb5db1d03adaa77c3ca32a7befa1c4fd6dedc186e88f342725b0cb4b3d86835eaf834688b259bef18d + languageName: node + linkType: hard + +"serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 10/445a420a6fa2eaee4b70cbd884d538e259ab278200a2ededd73253ada17d5d48e91fb1f4cd224a236ab62ea7ba0a70c6af29fc93b4f3d3078bf7da1c031fde58 + languageName: node + linkType: hard + +"serve-index@npm:^1.9.1": + version: 1.9.1 + resolution: "serve-index@npm:1.9.1" + dependencies: + accepts: "npm:~1.3.4" + batch: "npm:0.6.1" + debug: "npm:2.6.9" + escape-html: "npm:~1.0.3" + http-errors: "npm:~1.6.2" + mime-types: "npm:~2.1.17" + parseurl: "npm:~1.3.2" + checksum: 10/2adce2878d7e30f197e66f30e39f4a404d9ae39295c0c13849bb25e7cf976b93e883204739efd1510559588bed56f8101e32191cbe75f374c6e1e803852194cb + languageName: node + linkType: hard + +"serve-static@npm:~1.16.2": + version: 1.16.3 + resolution: "serve-static@npm:1.16.3" + dependencies: + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:~0.19.1" + checksum: 10/149d6718dd9e53166784d0a65535e21a7c01249d9c51f57224b786a7306354c6807e7811a9f6c143b45c863b1524721fca2f52b5c81a8b5194e3dde034a03b9c + languageName: node + linkType: hard + +"set-function-length@npm:^1.2.2": + version: 1.2.2 + resolution: "set-function-length@npm:1.2.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + function-bind: "npm:^1.1.2" + get-intrinsic: "npm:^1.2.4" + gopd: "npm:^1.0.1" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/505d62b8e088468917ca4e3f8f39d0e29f9a563b97dbebf92f4bd2c3172ccfb3c5b8e4566d5fcd00784a00433900e7cb8fbc404e2dbd8c3818ba05bb9d4a8a6d + languageName: node + linkType: hard + +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm:2.0.2" + dependencies: + define-data-property: "npm:^1.1.4" + es-errors: "npm:^1.3.0" + functions-have-names: "npm:^1.2.3" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/c7614154a53ebf8c0428a6c40a3b0b47dac30587c1a19703d1b75f003803f73cdfa6a93474a9ba678fa565ef5fbddc2fae79bca03b7d22ab5fd5163dbe571a74 + languageName: node + linkType: hard + +"set-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "set-proto@npm:1.0.0" + dependencies: + dunder-proto: "npm:^1.0.1" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + checksum: 10/b87f8187bca595ddc3c0721ece4635015fd9d7cb294e6dd2e394ce5186a71bbfa4dc8a35010958c65e43ad83cde09642660e61a952883c24fd6b45ead15f045c + languageName: node + linkType: hard + +"setprototypeof@npm:1.1.0": + version: 1.1.0 + resolution: "setprototypeof@npm:1.1.0" + checksum: 10/02d2564e02a260551bab3ec95358dcfde775fe61272b1b7c488de3676a4bb79f280b5668a324aebe0ec73f0d8ba408bc2d816a609ee5d93b1a7936b9d4ba1208 + languageName: node + linkType: hard + +"setprototypeof@npm:1.2.0, setprototypeof@npm:~1.2.0": + version: 1.2.0 + resolution: "setprototypeof@npm:1.2.0" + checksum: 10/fde1630422502fbbc19e6844346778f99d449986b2f9cdcceb8326730d2f3d9964dbcb03c02aaadaefffecd0f2c063315ebea8b3ad895914bf1afc1747fc172e + languageName: node + linkType: hard + +"shallow-clone@npm:^3.0.0": + version: 3.0.1 + resolution: "shallow-clone@npm:3.0.1" + dependencies: + kind-of: "npm:^6.0.2" + checksum: 10/e066bd540cfec5e1b0f78134853e0d892d1c8945fb9a926a579946052e7cb0c70ca4fc34f875a8083aa7910d751805d36ae64af250a6de6f3d28f9fa7be6c21b + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: "npm:^3.0.0" + checksum: 10/6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 10/1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"shell-quote@npm:^1.8.3": + version: 1.8.3 + resolution: "shell-quote@npm:1.8.3" + checksum: 10/5473e354637c2bd698911224129c9a8961697486cff1fb221f234d71c153fc377674029b0223d1d3c953a68d451d79366abfe53d1a0b46ee1f28eb9ade928f4c + languageName: node + linkType: hard + +"shelljs@npm:^0.8.4": + version: 0.8.5 + resolution: "shelljs@npm:0.8.5" + dependencies: + glob: "npm:^7.0.0" + interpret: "npm:^1.0.0" + rechoir: "npm:^0.6.2" + bin: + shjs: bin/shjs + checksum: 10/f2178274b97b44332bbe9ddb78161137054f55ecf701c7a99db9552cb5478fe279ad5f5131d8a7c2f0730e01ccf0c629d01094143f0541962ce1a3d0243d23f7 + languageName: node + linkType: hard + +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + checksum: 10/603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + checksum: 10/5771861f77feefe44f6195ed077a9e4f389acc188f895f570d56445e251b861754b547ea9ef73ecee4e01fdada6568bfe9020d2ec2dfc5571e9fa1bbc4a10615 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: "npm:^1.0.2" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.5" + object-inspect: "npm:^1.13.3" + side-channel-map: "npm:^1.0.1" + checksum: 10/a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + object-inspect: "npm:^1.13.3" + side-channel-list: "npm:^1.0.0" + side-channel-map: "npm:^1.0.1" + side-channel-weakmap: "npm:^1.0.2" + checksum: 10/7d53b9db292c6262f326b6ff3bc1611db84ece36c2c7dc0e937954c13c73185b0406c56589e2bb8d071d6fee468e14c39fb5d203ee39be66b7b8174f179afaba + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: 10/a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signal-exit@npm:^4.0.1": + version: 4.1.0 + resolution: "signal-exit@npm:4.1.0" + checksum: 10/c9fa63bbbd7431066174a48ba2dd9986dfd930c3a8b59de9c29d7b6854ec1c12a80d15310869ea5166d413b99f041bfa3dd80a7947bcd44ea8e6eb3ffeabfa1f + languageName: node + linkType: hard + +"simple-concat@npm:^1.0.0": + version: 1.0.1 + resolution: "simple-concat@npm:1.0.1" + checksum: 10/4d211042cc3d73a718c21ac6c4e7d7a0363e184be6a5ad25c8a1502e49df6d0a0253979e3d50dbdd3f60ef6c6c58d756b5d66ac1e05cda9cacd2e9fc59e3876a + languageName: node + linkType: hard + +"simple-get@npm:^4.0.0": + version: 4.0.1 + resolution: "simple-get@npm:4.0.1" + dependencies: + decompress-response: "npm:^6.0.0" + once: "npm:^1.3.1" + simple-concat: "npm:^1.0.0" + checksum: 10/93f1b32319782f78f2f2234e9ce34891b7ab6b990d19d8afefaa44423f5235ce2676aae42d6743fecac6c8dfff4b808d4c24fe5265be813d04769917a9a44f36 + languageName: node + linkType: hard + +"skip-regex@npm:^1.0.2": + version: 1.0.2 + resolution: "skip-regex@npm:1.0.2" + checksum: 10/a121a045860343da183c678d53b44c78283b018db71d60af8524ffef179fa028ef419629bb65198bfb9c09854123e7019cfd4c23be4e175254a50c7563b26e8e + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 10/94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: 10/927484aa0b1640fd9473cee3e0a0bcad6fce93fd7bbc18bac9ad0c33686f5d2e2c422fba24b5899c184524af01e11dd2bd051c2bf2b07e47aff8ca72cbfc60d2 + languageName: node + linkType: hard + +"smoldot@npm:^2.0.34": + version: 2.0.40 + resolution: "smoldot@npm:2.0.40" + dependencies: + ws: "npm:^8.8.1" + checksum: 10/dfbc47c4fd15d8276e8d981cf51e147c3596878effbb7282321aac503808438dbbd6a954975bd735a37848f3ed2bf35994e27f0925231af30efc517ae0942c30 + languageName: node + linkType: hard + +"sockjs@npm:^0.3.24": + version: 0.3.24 + resolution: "sockjs@npm:0.3.24" + dependencies: + faye-websocket: "npm:^0.11.3" + uuid: "npm:^8.3.2" + websocket-driver: "npm:^0.7.4" + checksum: 10/36312ec9772a0e536b69b72e9d1c76bd3d6ecf885c5d8fd6e59811485c916b8ce75f46ec57532f436975815ee14aa9a0e22ae3d9e5c0b18ea37b56d0aaaf439c + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^8.0.3": + version: 8.0.5 + resolution: "socks-proxy-agent@npm:8.0.5" + dependencies: + agent-base: "npm:^7.1.2" + debug: "npm:^4.3.4" + socks: "npm:^2.8.3" + checksum: 10/ee99e1dacab0985b52cbe5a75640be6e604135e9489ebdc3048635d186012fbaecc20fbbe04b177dee434c319ba20f09b3e7dfefb7d932466c0d707744eac05c + languageName: node + linkType: hard + +"socks@npm:^2.8.3": + version: 2.8.7 + resolution: "socks@npm:2.8.7" + dependencies: + ip-address: "npm:^10.0.1" + smart-buffer: "npm:^4.2.0" + checksum: 10/d19366c95908c19db154f329bbe94c2317d315dc933a7c2b5101e73f32a555c84fb199b62174e1490082a593a4933d8d5a9b297bde7d1419c14a11a965f51356 + languageName: node + linkType: hard + +"sort-keys@npm:^4.0.0": + version: 4.2.0 + resolution: "sort-keys@npm:4.2.0" + dependencies: + is-plain-obj: "npm:^2.0.0" + checksum: 10/cbc5adf02eae3f9e2ccbd94eafd6019d705fb217ffd77bc9ecd71b6e4aee617bac93dae91c580fb62f0deb9b0b53f105ba2ae89d253168adf16b7cb3e6cef25a + languageName: node + linkType: hard + +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3 + languageName: node + linkType: hard + +"source-map-support@npm:~0.5.20": + version: 0.5.21 + resolution: "source-map-support@npm:0.5.21" + dependencies: + buffer-from: "npm:^1.0.0" + source-map: "npm:^0.6.0" + checksum: 10/8317e12d84019b31e34b86d483dd41d6f832f389f7417faf8fc5c75a66a12d9686e47f589a0554a868b8482f037e23df9d040d29387eb16fa14cb85f091ba207 + languageName: node + linkType: hard + +"source-map@npm:^0.6.0, source-map@npm:^0.6.1, source-map@npm:~0.6.1": + version: 0.6.1 + resolution: "source-map@npm:0.6.1" + checksum: 10/59ef7462f1c29d502b3057e822cdbdae0b0e565302c4dd1a95e11e793d8d9d62006cdc10e0fd99163ca33ff2071360cf50ee13f90440806e7ed57d81cba2f7ff + languageName: node + linkType: hard + +"sourcemap-codec@npm:^1.4.8": + version: 1.4.8 + resolution: "sourcemap-codec@npm:1.4.8" + checksum: 10/6fc57a151e982b5c9468362690c6d062f3a0d4d8520beb68a82f319c79e7a4d7027eeb1e396de0ecc2cd19491e1d602b2d06fd444feac9b63dd43fea4c55a857 + languageName: node + linkType: hard + +"spdy-transport@npm:^3.0.0": + version: 3.0.0 + resolution: "spdy-transport@npm:3.0.0" + dependencies: + debug: "npm:^4.1.0" + detect-node: "npm:^2.0.4" + hpack.js: "npm:^2.1.6" + obuf: "npm:^1.1.2" + readable-stream: "npm:^3.0.6" + wbuf: "npm:^1.7.3" + checksum: 10/b93b606b209ca785456bd850b8925f21a76522ee5b46701235ecff3eba17686560c27575f91863842dc843a39772f6d2f5a8755df9eaff0924d20598df18828d + languageName: node + linkType: hard + +"spdy@npm:^4.0.2": + version: 4.0.2 + resolution: "spdy@npm:4.0.2" + dependencies: + debug: "npm:^4.1.0" + handle-thing: "npm:^2.0.0" + http-deceiver: "npm:^1.2.7" + select-hose: "npm:^2.0.0" + spdy-transport: "npm:^3.0.0" + checksum: 10/d29b89e48e7d762e505a2f83b1bc2c92268bd518f1b411864ab42a9e032e387d10467bbce0d8dbf8647bf4914a063aa1d303dff85e248f7a57f81a7b18ac34ef + languageName: node + linkType: hard + +"speedometer@npm:~1.0.0": + version: 1.0.0 + resolution: "speedometer@npm:1.0.0" + checksum: 10/6b322bbb0607c9994fba2a6ac189cf6caea4ce9f5067c1ccfc2848b55883f65d48292bfed4244ce855573ed7cdf0f69943ae6e507f7ec90eef232b64cdba6237 + languageName: node + linkType: hard + +"ssri@npm:^13.0.0": + version: 13.0.0 + resolution: "ssri@npm:13.0.0" + dependencies: + minipass: "npm:^7.0.3" + checksum: 10/fd59bfedf0659c1b83f6e15459162da021f08ec0f5834dd9163296f8b77ee82f9656aa1d415c3d3848484293e0e6aefdd482e863e52ddb53d520bb73da1eeec1 + languageName: node + linkType: hard + +"stable-hash@npm:^0.0.5": + version: 0.0.5 + resolution: "stable-hash@npm:0.0.5" + checksum: 10/9222ea2c558e37c4a576cb4e406966b9e6aa05b93f5c4f09ef4aaabe3577439b9b8fbff407b16840b63e2ae83de74290c7b1c2da7360d571e480e46a4aec0a56 + languageName: node + linkType: hard + +"statuses@npm:>= 1.4.0 < 2": + version: 1.5.0 + resolution: "statuses@npm:1.5.0" + checksum: 10/c469b9519de16a4bb19600205cffb39ee471a5f17b82589757ca7bd40a8d92ebb6ed9f98b5a540c5d302ccbc78f15dc03cc0280dd6e00df1335568a5d5758a5c + languageName: node + linkType: hard + +"statuses@npm:~2.0.1, statuses@npm:~2.0.2": + version: 2.0.2 + resolution: "statuses@npm:2.0.2" + checksum: 10/6927feb50c2a75b2a4caab2c565491f7a93ad3d8dbad7b1398d52359e9243a20e2ebe35e33726dee945125ef7a515e9097d8a1b910ba2bbd818265a2f6c39879 + languageName: node + linkType: hard + +"stop-iteration-iterator@npm:^1.1.0": + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" + dependencies: + es-errors: "npm:^1.3.0" + internal-slot: "npm:^1.1.0" + checksum: 10/ff36c4db171ee76c936ccfe9541946b77017f12703d4c446652017356816862d3aa029a64e7d4c4ceb484e00ed4a81789333896390d808458638f3a216aa1f41 + languageName: node + linkType: hard + +"stream-shift@npm:^1.0.2": + version: 1.0.3 + resolution: "stream-shift@npm:1.0.3" + checksum: 10/a24c0a3f66a8f9024bd1d579a533a53be283b4475d4e6b4b3211b964031447bdf6532dd1f3c2b0ad66752554391b7c62bd7ca4559193381f766534e723d50242 + languageName: node + linkType: hard + +"stream-to-array@npm:^2.3.0": + version: 2.3.0 + resolution: "stream-to-array@npm:2.3.0" + dependencies: + any-promise: "npm:^1.1.0" + checksum: 10/7feaf63b38399b850615e6ffcaa951e96e4c8f46745dbce4b553a94c5dc43966933813747014935a3ff97793e7f30a65270bde19f82b2932871a1879229a77cf + languageName: node + linkType: hard + +"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.2, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: "npm:^8.0.0" + is-fullwidth-code-point: "npm:^3.0.0" + strip-ansi: "npm:^6.0.1" + checksum: 10/e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.12": + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.3" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.6" + es-errors: "npm:^1.3.0" + es-object-atoms: "npm:^1.0.0" + get-intrinsic: "npm:^1.2.6" + gopd: "npm:^1.2.0" + has-symbols: "npm:^1.1.0" + internal-slot: "npm:^1.1.0" + regexp.prototype.flags: "npm:^1.5.3" + set-function-name: "npm:^2.0.2" + side-channel: "npm:^1.1.0" + checksum: 10/e4ab34b9e7639211e6c5e9759adb063028c5c5c4fc32ad967838b2bd1e5ce83a66ae8ec755d24a79302849f090b59194571b2c33471e86e7821b21c0f56df316 + languageName: node + linkType: hard + +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: "npm:^1.1.3" + es-abstract: "npm:^1.17.5" + checksum: 10/4b1bd91b75fa8fdf0541625184ebe80e445a465ce4253c19c3bccd633898005dadae0f74b85ae72662a53aafb8035bf48f8f5c0755aec09bc106a7f13959d05e + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-data-property: "npm:^1.1.4" + define-properties: "npm:^1.2.1" + es-abstract: "npm:^1.23.5" + es-object-atoms: "npm:^1.0.0" + has-property-descriptors: "npm:^1.0.2" + checksum: 10/47bb63cd2470a64bc5e2da1e570d369c016ccaa85c918c3a8bb4ab5965120f35e66d1f85ea544496fac84b9207a6b722adf007e6c548acd0813e5f8a82f9712a + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.2" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/140c73899b6747de9e499c7c2e7a83d549c47a26fa06045b69492be9cfb9e2a95187499a373983a08a115ecff8bc3bd7b0fb09b8ff72fb2172abe766849272ef + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: "npm:^1.0.7" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.0.0" + checksum: 10/160167dfbd68e6f7cb9f51a16074eebfce1571656fc31d40c3738ca9e30e35496f2c046fe57b6ad49f65f238a152be8c86fd9a2dd58682b5eba39dad995b3674 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: "npm:~5.2.0" + checksum: 10/54d23f4a6acae0e93f999a585e673be9e561b65cd4cca37714af1e893ab8cd8dfa52a9e4f58f48f87b4a44918d3a9254326cb80ed194bf2e4c226e2b21767e56 + languageName: node + linkType: hard + +"string_decoder@npm:~1.1.1": + version: 1.1.1 + resolution: "string_decoder@npm:1.1.1" + dependencies: + safe-buffer: "npm:~5.1.0" + checksum: 10/7c41c17ed4dea105231f6df208002ebddd732e8e9e2d619d133cecd8e0087ddfd9587d2feb3c8caf3213cbd841ada6d057f5142cae68a4e62d3540778d9819b4 + languageName: node + linkType: hard + +"stringify-object@npm:^3.2.1": + version: 3.3.0 + resolution: "stringify-object@npm:3.3.0" + dependencies: + get-own-enumerable-property-symbols: "npm:^3.0.0" + is-obj: "npm:^1.0.1" + is-regexp: "npm:^1.0.0" + checksum: 10/973782f09a3df3f39a2cf07dbf43fb9ba6cb32976f3616cd0f6c10e0a5c5415dd72b7b700e72920e8da2bf57c3001b8e37b5af7174bab9a748ce0416989e19b1 + languageName: node + linkType: hard + +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: "npm:^5.0.1" + checksum: 10/ae3b5436d34fadeb6096367626ce987057713c566e1e7768818797e00ac5d62023d0f198c4e681eae9e20701721980b26a64a8f5b91238869592a9c6800719a2 + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 10/8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-bom@npm:^4.0.0": + version: 4.0.0 + resolution: "strip-bom@npm:4.0.0" + checksum: 10/9dbcfbaf503c57c06af15fe2c8176fb1bf3af5ff65003851a102749f875a6dbe0ab3b30115eccf6e805e9d756830d3e40ec508b62b3f1ddf3761a20ebe29d3f3 + languageName: node + linkType: hard + +"strip-final-newline@npm:^2.0.0": + version: 2.0.0 + resolution: "strip-final-newline@npm:2.0.0" + checksum: 10/69412b5e25731e1938184b5d489c32e340605bb611d6140344abc3421b7f3c6f9984b21dff296dfcf056681b82caa3bb4cc996a965ce37bcfad663e92eae9c64 + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 10/492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: 10/1074ccb63270d32ca28edfb0a281c96b94dc679077828135141f27d52a5a398ef5e78bcf22809d23cadc2b81dfbe345eb5fd8699b385c8b1128907dec4a7d1e1 + languageName: node + linkType: hard + +"strip-outer@npm:^1.0.1": + version: 1.0.1 + resolution: "strip-outer@npm:1.0.1" + dependencies: + escape-string-regexp: "npm:^1.0.2" + checksum: 10/f8d65d33ca2b49aabc66bb41d689dda7b8b9959d320e3a40a2ef4d7079ff2f67ffb72db43f179f48dbf9495c2e33742863feab7a584d180fa62505439162c191 + languageName: node + linkType: hard + +"stylus-lookup@npm:^3.0.1": + version: 3.0.2 + resolution: "stylus-lookup@npm:3.0.2" + dependencies: + commander: "npm:^2.8.1" + debug: "npm:^4.1.0" + bin: + stylus-lookup: bin/cli.js + checksum: 10/94da8b81ef16f73eae0dc734b18165e6f84d41960bc85fb39d9b028f4b6d8c4c2983ce52492751a3eb2e8e65e3e1507adc6739cc3c7893754672546c6af22f62 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: "npm:^3.0.0" + checksum: 10/5f505c6fa3c6e05873b43af096ddeb22159831597649881aeb8572d6fe3b81e798cc10840d0c9735e0026b250368851b7f77b65e84f4e4daa820a4f69947f55b + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10/c8bb7afd564e3b26b50ca6ee47572c217526a1389fe018d00345856d4a9b08ffbd61fadaf283a87368d94c3dcdb8f5ffe2650a5a65863e21ad2730ca0f05210a + languageName: node + linkType: hard + +"supports-color@npm:^8.0.0": + version: 8.1.1 + resolution: "supports-color@npm:8.1.1" + dependencies: + has-flag: "npm:^4.0.0" + checksum: 10/157b534df88e39c5518c5e78c35580c1eca848d7dbaf31bbe06cdfc048e22c7ff1a9d046ae17b25691128f631a51d9ec373c1b740c12ae4f0de6e292037e4282 + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 10/a9dc19ae2220c952bd2231d08ddeecb1b0328b61e72071ff4000c8384e145cc07c1c0bdb3b5a1cb06e186a7b2790f1dee793418b332f6ddf320de25d9125be7e + languageName: node + linkType: hard + +"symbol-tree@npm:^3.2.4": + version: 3.2.4 + resolution: "symbol-tree@npm:3.2.4" + checksum: 10/c09a00aadf279d47d0c5c46ca3b6b2fbaeb45f0a184976d599637d412d3a70bbdc043ff33effe1206dea0e36e0ad226cb957112e7ce9a4bf2daedf7fa4f85c53 + languageName: node + linkType: hard + +"tapable@npm:^2.2.0, tapable@npm:^2.3.0": + version: 2.3.0 + resolution: "tapable@npm:2.3.0" + checksum: 10/496a841039960533bb6e44816a01fffc2a1eb428bb2051ecab9e87adf07f19e1f937566cbbbb09dceff31163c0ffd81baafcad84db900b601f0155dd0b37e9f2 + languageName: node + linkType: hard + +"tar@npm:^7.5.2": + version: 7.5.2 + resolution: "tar@npm:7.5.2" + dependencies: + "@isaacs/fs-minipass": "npm:^4.0.0" + chownr: "npm:^3.0.0" + minipass: "npm:^7.1.2" + minizlib: "npm:^3.1.0" + yallist: "npm:^5.0.0" + checksum: 10/dbad9c9a07863cd1bdf8801d563b3280aa7dd0f4a6cead779ff7516d148dc80b4c04639ba732d47f91f04002f57e8c3c6573a717d649daecaac74ce71daa7ad3 + languageName: node + linkType: hard + +"terser-webpack-plugin@npm:^5.3.16": + version: 5.3.16 + resolution: "terser-webpack-plugin@npm:5.3.16" + dependencies: + "@jridgewell/trace-mapping": "npm:^0.3.25" + jest-worker: "npm:^27.4.5" + schema-utils: "npm:^4.3.0" + serialize-javascript: "npm:^6.0.2" + terser: "npm:^5.31.1" + peerDependencies: + webpack: ^5.1.0 + peerDependenciesMeta: + "@swc/core": + optional: true + esbuild: + optional: true + uglify-js: + optional: true + checksum: 10/09dfbff602acfa114cdd174254b69a04adbc47856021ab351e37982202fd1ec85e0b62ffd5864c98beb8e96aef2f43da490b3448b4541db539c2cff6607394a6 + languageName: node + linkType: hard + +"terser@npm:^5.31.1": + version: 5.44.1 + resolution: "terser@npm:5.44.1" + dependencies: + "@jridgewell/source-map": "npm:^0.3.3" + acorn: "npm:^8.15.0" + commander: "npm:^2.20.0" + source-map-support: "npm:~0.5.20" + bin: + terser: bin/terser + checksum: 10/516ece205b7db778c4eddb287a556423cb776b7ca591b06270e558a76aa2d57c8d71d9c3c4410b276d3426beb03516fff7d96ff8b517e10730a72908810c6e33 + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: 10/4383b5baaeffa9bb4cda2ac33a4aa2e6d1f8aaf811848bf73513a9b88fd76372dc461f6fd6d2e9cb5100f48b473be32c6f95bd983509b7d92bb4d92c10747452 + languageName: node + linkType: hard + +"through2@npm:~2.0.3": + version: 2.0.5 + resolution: "through2@npm:2.0.5" + dependencies: + readable-stream: "npm:~2.3.6" + xtend: "npm:~4.0.1" + checksum: 10/cd71f7dcdc7a8204fea003a14a433ef99384b7d4e31f5497e1f9f622b3cf3be3691f908455f98723bdc80922a53af7fa10c3b7abbe51c6fd3d536dbc7850e2c4 + languageName: node + linkType: hard + +"through@npm:^2.3.6": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: 10/5da78346f70139a7d213b65a0106f3c398d6bc5301f9248b5275f420abc2c4b1e77c2abc72d218dedc28c41efb2e7c312cb76a7730d04f9c2d37d247da3f4198 + languageName: node + linkType: hard + +"thunky@npm:^1.0.2": + version: 1.1.0 + resolution: "thunky@npm:1.1.0" + checksum: 10/825e3bd07ab3c9fd6f753c457a60957c628cacba5dd0656fd93b037c445e2828b43cf0805a9f2b16b0c5f5a10fd561206271acddb568df4f867f0aea0eb2772f + languageName: node + linkType: hard + +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13": + version: 0.2.15 + resolution: "tinyglobby@npm:0.2.15" + dependencies: + fdir: "npm:^6.5.0" + picomatch: "npm:^4.0.3" + checksum: 10/d72bd826a8b0fa5fa3929e7fe5ba48fceb2ae495df3a231b6c5408cd7d8c00b58ab5a9c2a76ba56a62ee9b5e083626f1f33599734bed1ffc4b792406408f0ca2 + languageName: node + linkType: hard + +"to-readable-stream@npm:^1.0.0": + version: 1.0.0 + resolution: "to-readable-stream@npm:1.0.0" + checksum: 10/a99e23d49777d9d03686f03cc0bbbcb4648d991648990a98bc93b55cf91a2ae830c41b5efa36802f1c00a34bba93bd33b10346772fd3f49bcf1667a99c85f354 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: "npm:^7.0.0" + checksum: 10/10dda13571e1f5ad37546827e9b6d4252d2e0bc176c24a101252153ef435d83696e2557fe128c4678e4e78f5f01e83711c703eef9814eb12dab028580d45980a + languageName: node + linkType: hard + +"toidentifier@npm:~1.0.1": + version: 1.0.1 + resolution: "toidentifier@npm:1.0.1" + checksum: 10/952c29e2a85d7123239b5cfdd889a0dde47ab0497f0913d70588f19c53f7e0b5327c95f4651e413c74b785147f9637b17410ac8c846d5d4a20a5a33eb6dc3a45 + languageName: node + linkType: hard + +"tough-cookie@npm:^4.1.4": + version: 4.1.4 + resolution: "tough-cookie@npm:4.1.4" + dependencies: + psl: "npm:^1.1.33" + punycode: "npm:^2.1.1" + universalify: "npm:^0.2.0" + url-parse: "npm:^1.5.3" + checksum: 10/75663f4e2cd085f16af0b217e4218772adf0617fb3227171102618a54ce0187a164e505d61f773ed7d65988f8ff8a8f935d381f87da981752c1171b076b4afac + languageName: node + linkType: hard + +"tr46@npm:^5.1.0": + version: 5.1.1 + resolution: "tr46@npm:5.1.1" + dependencies: + punycode: "npm:^2.3.1" + checksum: 10/833a0e1044574da5790148fd17866d4ddaea89e022de50279967bcd6b28b4ce0d30d59eb3acf9702b60918975b3bad481400337e3a2e6326cffa5c77b874753d + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 10/8f1f5aa6cb232f9e1bdc86f485f916b7aa38caee8a778b378ffec0b70d9307873f253f5cbadbe2955ece2ac5c83d0dc14a77513166ccd0a0c7fe197e21396695 + languageName: node + linkType: hard + +"trim-repeated@npm:^1.0.0": + version: 1.0.0 + resolution: "trim-repeated@npm:1.0.0" + dependencies: + escape-string-regexp: "npm:^1.0.2" + checksum: 10/e25c235305b82c43f1d64a67a71226c406b00281755e4c2c4f3b1d0b09c687a535dd3c4483327f949f28bb89dc400a0bc5e5b749054f4b99f49ebfe48ba36496 + languageName: node + linkType: hard + +"ts-api-utils@npm:^1.0.1": + version: 1.4.3 + resolution: "ts-api-utils@npm:1.4.3" + peerDependencies: + typescript: ">=4.2.0" + checksum: 10/713c51e7392323305bd4867422ba130fbf70873ef6edbf80ea6d7e9c8f41eeeb13e40e8e7fe7cd321d74e4864777329797077268c9f570464303a1723f1eed39 + languageName: node + linkType: hard + +"ts-graphviz@npm:^1.5.0": + version: 1.8.2 + resolution: "ts-graphviz@npm:1.8.2" + checksum: 10/969b06332ca622c148f7b404569af1b972bbe7ee9ba1226350dd0d99bc92c1c95eb6bf9e69aafce51a6c2493a1342b25a8edd6883f27bd516778d401b2a3623f + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.10.1, tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": "npm:^0.0.29" + json5: "npm:^1.0.2" + minimist: "npm:^1.2.6" + strip-bom: "npm:^3.0.0" + checksum: 10/2041beaedc6c271fc3bedd12e0da0cc553e65d030d4ff26044b771fac5752d0460944c0b5e680f670c2868c95c664a256cec960ae528888db6ded83524e33a14 + languageName: node + linkType: hard + +"tslib@npm:^1.8.1": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: 10/7dbf34e6f55c6492637adb81b555af5e3b4f9cc6b998fb440dac82d3b42bdc91560a35a5fb75e20e24a076c651438234da6743d139e4feabf0783f3cdfe1dddb + languageName: node + linkType: hard + +"tslib@npm:^2.1.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.7.0, tslib@npm:^2.8.0, tslib@npm:^2.8.1": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10/3e2e043d5c2316461cb54e5c7fe02c30ef6dccb3384717ca22ae5c6b5bc95232a6241df19c622d9c73b809bea33b187f6dbc73030963e29950c2141bc32a79f7 + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: "npm:^1.8.1" + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 10/ea036bec1dd024e309939ffd49fda7a351c0e87a1b8eb049570dd119d447250e2c56e0e6c00554e8205760e7417793fdebff752a46e573fbe07d4f375502a5b2 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: "npm:^1.2.1" + checksum: 10/14687776479d048e3c1dbfe58a2409e00367810d6960c0f619b33793271ff2a27f81b52461f14a162f1f89a9b1d8da1b237fc7c99b0e1fdcec28ec63a86b1fec + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: 10/f4254070d9c3d83a6e573bcb95173008d73474ceadbbf620dd32d273940ca18734dff39c2b2480282df9afe5d1675ebed5499a00d791758748ea81f61a38961f + languageName: node + linkType: hard + +"type-fest@npm:^0.6.0": + version: 0.6.0 + resolution: "type-fest@npm:0.6.0" + checksum: 10/9ecbf4ba279402b14c1a0614b6761bbe95626fab11377291fecd7e32b196109551e0350dcec6af74d97ced1b000ba8060a23eca33157091e642b409c2054ba82 + languageName: node + linkType: hard + +"type-is@npm:~1.6.18": + version: 1.6.18 + resolution: "type-is@npm:1.6.18" + dependencies: + media-typer: "npm:0.3.0" + mime-types: "npm:~2.1.24" + checksum: 10/0bd9eeae5efd27d98fd63519f999908c009e148039d8e7179a074f105362d4fcc214c38b24f6cda79c87e563cbd12083a4691381ed28559220d4a10c2047bed4 + languageName: node + linkType: hard + +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" + dependencies: + call-bound: "npm:^1.0.3" + es-errors: "npm:^1.3.0" + is-typed-array: "npm:^1.1.14" + checksum: 10/3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 + languageName: node + linkType: hard + +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" + dependencies: + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.14" + checksum: 10/269dad101dda73e3110117a9b84db86f0b5c07dad3a9418116fd38d580cab7fc628a4fc167e29b6d7c39da2f53374b78e7cb578b3c5ec7a556689d985d193519 + languageName: node + linkType: hard + +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + for-each: "npm:^0.3.3" + gopd: "npm:^1.2.0" + has-proto: "npm:^1.2.0" + is-typed-array: "npm:^1.1.15" + reflect.getprototypeof: "npm:^1.0.9" + checksum: 10/c2869aa584cdae24ecfd282f20a0f556b13a49a9d5bca1713370bb3c89dff0ccbc5ceb45cb5b784c98f4579e5e3e2a07e438c3a5b8294583e2bd4abbd5104fb5 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" + dependencies: + call-bind: "npm:^1.0.7" + for-each: "npm:^0.3.3" + gopd: "npm:^1.0.1" + is-typed-array: "npm:^1.1.13" + possible-typed-array-names: "npm:^1.0.0" + reflect.getprototypeof: "npm:^1.0.6" + checksum: 10/d6b2f0e81161682d2726eb92b1dc2b0890890f9930f33f9bcf6fc7272895ce66bc368066d273e6677776de167608adc53fcf81f1be39a146d64b630edbf2081c + languageName: node + linkType: hard + +"typedarray-to-buffer@npm:^3.1.5": + version: 3.1.5 + resolution: "typedarray-to-buffer@npm:3.1.5" + dependencies: + is-typedarray: "npm:^1.0.0" + checksum: 10/7c850c3433fbdf4d04f04edfc751743b8f577828b8e1eb93b95a3bce782d156e267d83e20fb32b3b47813e69a69ab5e9b5342653332f7d21c7d1210661a7a72c + languageName: node + linkType: hard + +"typescript@npm:5.5.4": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/1689ccafef894825481fc3d856b4834ba3cc185a9c2878f3c76a9a1ef81af04194849840f3c69e7961e2312771471bb3b460ca92561e1d87599b26c37d0ffb6f + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A5.5.4#optional!builtin": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10/746fdd0865c5ce4f15e494c57ede03a9e12ede59cfdb40da3a281807853fe63b00ef1c912d7222143499aa82f18b8b472baa1830df8804746d09b55f6cf5b1cc + languageName: node + linkType: hard + +"uglify-js@npm:^3.1.4": + version: 3.19.3 + resolution: "uglify-js@npm:3.19.3" + bin: + uglifyjs: bin/uglifyjs + checksum: 10/6b9639c1985d24580b01bb0ab68e78de310d38eeba7db45bec7850ab4093d8ee464d80ccfaceda9c68d1c366efbee28573b52f95e69ac792354c145acd380b11 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" + dependencies: + call-bound: "npm:^1.0.3" + has-bigints: "npm:^1.0.2" + has-symbols: "npm:^1.1.0" + which-boxed-primitive: "npm:^1.1.1" + checksum: 10/fadb347020f66b2c8aeacf8b9a79826fa34cc5e5457af4eb0bbc4e79bd87fed0fa795949825df534320f7c13f199259516ad30abc55a6e7b91d8d996ca069e50 + languageName: node + linkType: hard + +"undici-types@npm:~6.21.0": + version: 6.21.0 + resolution: "undici-types@npm:6.21.0" + checksum: 10/ec8f41aa4359d50f9b59fa61fe3efce3477cc681908c8f84354d8567bb3701fafdddf36ef6bff307024d3feb42c837cf6f670314ba37fc8145e219560e473d14 + languageName: node + linkType: hard + +"undici-types@npm:~7.16.0": + version: 7.16.0 + resolution: "undici-types@npm:7.16.0" + checksum: 10/db43439f69c2d94cc29f75cbfe9de86df87061d6b0c577ebe9bb3255f49b22c50162a7d7eb413b0458b6510b8ca299ac7cff38c3a29fbd31af9f504bcf7fbc0d + languageName: node + linkType: hard + +"uniq@npm:^1.0.1": + version: 1.0.1 + resolution: "uniq@npm:1.0.1" + checksum: 10/8206535f83745ea83f9da7035f3b983fd6ed5e35b8ed7745441944e4065b616bc67cf0d0a23a86b40ee0074426f0607f0a138f9b78e124eb6a7a6a6966055709 + languageName: node + linkType: hard + +"unique-filename@npm:^5.0.0": + version: 5.0.0 + resolution: "unique-filename@npm:5.0.0" + dependencies: + unique-slug: "npm:^6.0.0" + checksum: 10/a5f67085caef74bdd2a6869a200ed5d68d171f5cc38435a836b5fd12cce4e4eb55e6a190298035c325053a5687ed7a3c96f0a91e82215fd14729769d9ac57d9b + languageName: node + linkType: hard + +"unique-slug@npm:^6.0.0": + version: 6.0.0 + resolution: "unique-slug@npm:6.0.0" + dependencies: + imurmurhash: "npm:^0.1.4" + checksum: 10/b78ed9d5b01ff465f80975f17387750ed3639909ac487fa82c4ae4326759f6de87c2131c0c39eca4c68cf06c537a8d104fba1dfc8a30308f99bc505345e1eba3 + languageName: node + linkType: hard + +"unique-string@npm:^2.0.0": + version: 2.0.0 + resolution: "unique-string@npm:2.0.0" + dependencies: + crypto-random-string: "npm:^2.0.0" + checksum: 10/107cae65b0b618296c2c663b8e52e4d1df129e9af04ab38d53b4f2189e96da93f599c85f4589b7ffaf1a11c9327cbb8a34f04c71b8d4950d3e385c2da2a93828 + languageName: node + linkType: hard + +"universal-user-agent@npm:^6.0.0": + version: 6.0.1 + resolution: "universal-user-agent@npm:6.0.1" + checksum: 10/fdc8e1ae48a05decfc7ded09b62071f571c7fe0bd793d700704c80cea316101d4eac15cc27ed2bb64f4ce166d2684777c3198b9ab16034f547abea0d3aa1c93c + languageName: node + linkType: hard + +"universalify@npm:^0.2.0": + version: 0.2.0 + resolution: "universalify@npm:0.2.0" + checksum: 10/e86134cb12919d177c2353196a4cc09981524ee87abf621f7bc8d249dbbbebaec5e7d1314b96061497981350df786e4c5128dbf442eba104d6e765bc260678b5 + languageName: node + linkType: hard + +"universalify@npm:^2.0.0": + version: 2.0.1 + resolution: "universalify@npm:2.0.1" + checksum: 10/ecd8469fe0db28e7de9e5289d32bd1b6ba8f7183db34f3bfc4ca53c49891c2d6aa05f3fb3936a81285a905cc509fb641a0c3fc131ec786167eff41236ae32e60 + languageName: node + linkType: hard + +"unpipe@npm:~1.0.0": + version: 1.0.0 + resolution: "unpipe@npm:1.0.0" + checksum: 10/4fa18d8d8d977c55cb09715385c203197105e10a6d220087ec819f50cb68870f02942244f1017565484237f1f8c5d3cd413631b1ae104d3096f24fdfde1b4aa2 + languageName: node + linkType: hard + +"unrs-resolver@npm:^1.6.2": + version: 1.11.1 + resolution: "unrs-resolver@npm:1.11.1" + dependencies: + "@unrs/resolver-binding-android-arm-eabi": "npm:1.11.1" + "@unrs/resolver-binding-android-arm64": "npm:1.11.1" + "@unrs/resolver-binding-darwin-arm64": "npm:1.11.1" + "@unrs/resolver-binding-darwin-x64": "npm:1.11.1" + "@unrs/resolver-binding-freebsd-x64": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-arm64-musl": "npm:1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-x64-gnu": "npm:1.11.1" + "@unrs/resolver-binding-linux-x64-musl": "npm:1.11.1" + "@unrs/resolver-binding-wasm32-wasi": "npm:1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.11.1" + "@unrs/resolver-binding-win32-x64-msvc": "npm:1.11.1" + napi-postinstall: "npm:^0.3.0" + dependenciesMeta: + "@unrs/resolver-binding-android-arm-eabi": + optional: true + "@unrs/resolver-binding-android-arm64": + optional: true + "@unrs/resolver-binding-darwin-arm64": + optional: true + "@unrs/resolver-binding-darwin-x64": + optional: true + "@unrs/resolver-binding-freebsd-x64": + optional: true + "@unrs/resolver-binding-linux-arm-gnueabihf": + optional: true + "@unrs/resolver-binding-linux-arm-musleabihf": + optional: true + "@unrs/resolver-binding-linux-arm64-gnu": + optional: true + "@unrs/resolver-binding-linux-arm64-musl": + optional: true + "@unrs/resolver-binding-linux-ppc64-gnu": + optional: true + "@unrs/resolver-binding-linux-riscv64-gnu": + optional: true + "@unrs/resolver-binding-linux-riscv64-musl": + optional: true + "@unrs/resolver-binding-linux-s390x-gnu": + optional: true + "@unrs/resolver-binding-linux-x64-gnu": + optional: true + "@unrs/resolver-binding-linux-x64-musl": + optional: true + "@unrs/resolver-binding-wasm32-wasi": + optional: true + "@unrs/resolver-binding-win32-arm64-msvc": + optional: true + "@unrs/resolver-binding-win32-ia32-msvc": + optional: true + "@unrs/resolver-binding-win32-x64-msvc": + optional: true + checksum: 10/4de653508cbaae47883a896bd5cdfef0e5e87b428d62620d16fd35cd534beaebf08ebf0cf2f8b4922aa947b2fe745180facf6cc3f39ba364f7ce0f974cb06a70 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.2.0": + version: 1.2.3 + resolution: "update-browserslist-db@npm:1.2.3" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10/059f774300efb4b084a49293143c511f3ae946d40397b5c30914e900cd5691a12b8e61b41dd54ed73d3b56c8204165a0333107dd784ccf8f8c81790bcc423175 + languageName: node + linkType: hard + +"update-notifier@npm:^5.0.0": + version: 5.1.0 + resolution: "update-notifier@npm:5.1.0" + dependencies: + boxen: "npm:^5.0.0" + chalk: "npm:^4.1.0" + configstore: "npm:^5.0.1" + has-yarn: "npm:^2.1.0" + import-lazy: "npm:^2.1.0" + is-ci: "npm:^2.0.0" + is-installed-globally: "npm:^0.4.0" + is-npm: "npm:^5.0.0" + is-yarn-global: "npm:^0.3.0" + latest-version: "npm:^5.1.0" + pupa: "npm:^2.1.1" + semver: "npm:^7.3.4" + semver-diff: "npm:^3.1.1" + xdg-basedir: "npm:^4.0.0" + checksum: 10/9df39e2d4f2e59ea788c719baaacf3d2bdde09d065f00319d52c0af255990e15f98ba40c115fb6246b6b2d5468685f36955ae0679c0b7fec834892fe7db4cab2 + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: "npm:^2.1.0" + checksum: 10/b271ca7e3d46b7160222e3afa3e531505161c9a4e097febae9664e4b59912f4cbe94861361a4175edac3a03fee99d91e44b6a58c17a634bc5a664b19fc76fbcb + languageName: node + linkType: hard + +"url-parse-lax@npm:^3.0.0": + version: 3.0.0 + resolution: "url-parse-lax@npm:3.0.0" + dependencies: + prepend-http: "npm:^2.0.0" + checksum: 10/1040e357750451173132228036aff1fd04abbd43eac1fb3e4fca7495a078bcb8d33cb765fe71ad7e473d9c94d98fd67adca63bd2716c815a2da066198dd37217 + languageName: node + linkType: hard + +"url-parse@npm:^1.5.3": + version: 1.5.10 + resolution: "url-parse@npm:1.5.10" + dependencies: + querystringify: "npm:^2.1.1" + requires-port: "npm:^1.0.0" + checksum: 10/c9e96bc8c5b34e9f05ddfeffc12f6aadecbb0d971b3cc26015b58d5b44676a99f50d5aeb1e5c9e61fa4d49961ae3ab1ae997369ed44da51b2f5ac010d188e6ad + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1, util-deprecate@npm:~1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 10/474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"util-extend@npm:^1.0.1": + version: 1.0.3 + resolution: "util-extend@npm:1.0.3" + checksum: 10/da57f399b331f40fe2cea5409b1f4939231433db9b52dac5593e4390a98b7b0d1318a0daefbcc48123fffe5026ef49f418b3e4df7a4cd7649a2583e559c608a5 + languageName: node + linkType: hard + +"utils-merge@npm:1.0.1": + version: 1.0.1 + resolution: "utils-merge@npm:1.0.1" + checksum: 10/5d6949693d58cb2e636a84f3ee1c6e7b2f9c16cb1d42d0ecb386d8c025c69e327205aa1c69e2868cc06a01e5e20681fbba55a4e0ed0cce913d60334024eae798 + languageName: node + linkType: hard + +"uuid@npm:^8.3.2": + version: 8.3.2 + resolution: "uuid@npm:8.3.2" + bin: + uuid: dist/bin/uuid + checksum: 10/9a5f7aa1d6f56dd1e8d5f2478f855f25c645e64e26e347a98e98d95781d5ed20062d6cca2eecb58ba7c84bc3910be95c0451ef4161906abaab44f9cb68ffbdd1 + languageName: node + linkType: hard + +"vary@npm:~1.1.2": + version: 1.1.2 + resolution: "vary@npm:1.1.2" + checksum: 10/31389debef15a480849b8331b220782230b9815a8e0dbb7b9a8369559aed2e9a7800cd904d4371ea74f4c3527db456dc8e7ac5befce5f0d289014dbdf47b2242 + languageName: node + linkType: hard + +"w3c-xmlserializer@npm:^5.0.0": + version: 5.0.0 + resolution: "w3c-xmlserializer@npm:5.0.0" + dependencies: + xml-name-validator: "npm:^5.0.0" + checksum: 10/d78f59e6b4f924aa53b6dfc56949959229cae7fe05ea9374eb38d11edcec01398b7f5d7a12576bd5acc57ff446abb5c9115cd83b9d882555015437cf858d42f0 + languageName: node + linkType: hard + +"walkdir@npm:^0.4.1": + version: 0.4.1 + resolution: "walkdir@npm:0.4.1" + checksum: 10/54cbe7afc5fb811a55748b0bfa077a9a4aa43f568eb5857db9785af9728e1ad8b1ecf6b9ce6f14b405c6124939a92522e36aaa0397f3f52a9a7a08496f2eebe1 + languageName: node + linkType: hard + +"watchpack@npm:^2.4.4": + version: 2.5.0 + resolution: "watchpack@npm:2.5.0" + dependencies: + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.1.2" + checksum: 10/6793335adecc06944430db1c9dbbb960d357019a3456fa2a5e38a96c0320a9d4444198f3d4a513c9b58306ddd89f2a1754f99056e4b71c512260436287c58361 + languageName: node + linkType: hard + +"wbuf@npm:^1.1.0, wbuf@npm:^1.7.3": + version: 1.7.3 + resolution: "wbuf@npm:1.7.3" + dependencies: + minimalistic-assert: "npm:^1.0.0" + checksum: 10/c18b51c4e1fb19705c94b93c0cf093ba014606abceee949399d56074ef1863bf4897a8d884be24e8d224d18c9ce411cf6924006d0a5430492729af51256e067a + languageName: node + linkType: hard + +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: "npm:^1.0.3" + checksum: 10/182ebac8ca0b96845fae6ef44afd4619df6987fe5cf552fdee8396d3daa1fb9b8ec5c6c69855acb7b3c1231571393bd1f0a4cdc4028d421575348f64bb0a8817 + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.0.3": + version: 3.3.3 + resolution: "web-streams-polyfill@npm:3.3.3" + checksum: 10/8e7e13501b3834094a50abe7c0b6456155a55d7571312b89570012ef47ec2a46d766934768c50aabad10a9c30dd764a407623e8bfcc74fcb58495c29130edea9 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: 10/b65b9f8d6854572a84a5c69615152b63371395f0c5dcd6729c45789052296df54314db2bc3e977df41705eacb8bc79c247cee139a63fa695192f95816ed528ad + languageName: node + linkType: hard + +"webidl-conversions@npm:^7.0.0": + version: 7.0.0 + resolution: "webidl-conversions@npm:7.0.0" + checksum: 10/4c4f65472c010eddbe648c11b977d048dd96956a625f7f8b9d64e1b30c3c1f23ea1acfd654648426ce5c743c2108a5a757c0592f02902cf7367adb7d14e67721 + languageName: node + linkType: hard + +"webpack-cli@npm:^5.1.4": + version: 5.1.4 + resolution: "webpack-cli@npm:5.1.4" + dependencies: + "@discoveryjs/json-ext": "npm:^0.5.0" + "@webpack-cli/configtest": "npm:^2.1.1" + "@webpack-cli/info": "npm:^2.0.2" + "@webpack-cli/serve": "npm:^2.0.5" + colorette: "npm:^2.0.14" + commander: "npm:^10.0.1" + cross-spawn: "npm:^7.0.3" + envinfo: "npm:^7.7.3" + fastest-levenshtein: "npm:^1.0.12" + import-local: "npm:^3.0.2" + interpret: "npm:^3.1.1" + rechoir: "npm:^0.8.0" + webpack-merge: "npm:^5.7.3" + peerDependencies: + webpack: 5.x.x + peerDependenciesMeta: + "@webpack-cli/generators": + optional: true + webpack-bundle-analyzer: + optional: true + webpack-dev-server: + optional: true + bin: + webpack-cli: bin/cli.js + checksum: 10/9ac3ae7c43b032051de2803d751bd3b44e1f226b931dcd56066a8e01b12734d49730903df9235e1eb1b67b2ee7451faf24a219c8f4a229c4f42c42e827eac44c + languageName: node + linkType: hard + +"webpack-dev-middleware@npm:^5.3.4": + version: 5.3.4 + resolution: "webpack-dev-middleware@npm:5.3.4" + dependencies: + colorette: "npm:^2.0.10" + memfs: "npm:^3.4.3" + mime-types: "npm:^2.1.31" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.0.0" + peerDependencies: + webpack: ^4.0.0 || ^5.0.0 + checksum: 10/3004374130f31c2910da39b80e24296009653bb11caa0b8449d962b67e003d7e73d01fbcfda9be1f1f04179f66a9c39f4caf7963df54303b430e39ba5a94f7c2 + languageName: node + linkType: hard + +"webpack-dev-server@npm:^4.15.1": + version: 4.15.2 + resolution: "webpack-dev-server@npm:4.15.2" + dependencies: + "@types/bonjour": "npm:^3.5.9" + "@types/connect-history-api-fallback": "npm:^1.3.5" + "@types/express": "npm:^4.17.13" + "@types/serve-index": "npm:^1.9.1" + "@types/serve-static": "npm:^1.13.10" + "@types/sockjs": "npm:^0.3.33" + "@types/ws": "npm:^8.5.5" + ansi-html-community: "npm:^0.0.8" + bonjour-service: "npm:^1.0.11" + chokidar: "npm:^3.5.3" + colorette: "npm:^2.0.10" + compression: "npm:^1.7.4" + connect-history-api-fallback: "npm:^2.0.0" + default-gateway: "npm:^6.0.3" + express: "npm:^4.17.3" + graceful-fs: "npm:^4.2.6" + html-entities: "npm:^2.3.2" + http-proxy-middleware: "npm:^2.0.3" + ipaddr.js: "npm:^2.0.1" + launch-editor: "npm:^2.6.0" + open: "npm:^8.0.9" + p-retry: "npm:^4.5.0" + rimraf: "npm:^3.0.2" + schema-utils: "npm:^4.0.0" + selfsigned: "npm:^2.1.1" + serve-index: "npm:^1.9.1" + sockjs: "npm:^0.3.24" + spdy: "npm:^4.0.2" + webpack-dev-middleware: "npm:^5.3.4" + ws: "npm:^8.13.0" + peerDependencies: + webpack: ^4.37.0 || ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + bin: + webpack-dev-server: bin/webpack-dev-server.js + checksum: 10/86ca4fb49d2a264243b2284c6027a9a91fd7d47737bbb4096e873be8a3f8493a9577b1535d7cc84de1ee991da7da97686c85788ccac547b0f5cf5c7686aacee9 + languageName: node + linkType: hard + +"webpack-merge@npm:^5.10.0, webpack-merge@npm:^5.7.3": + version: 5.10.0 + resolution: "webpack-merge@npm:5.10.0" + dependencies: + clone-deep: "npm:^4.0.1" + flat: "npm:^5.0.2" + wildcard: "npm:^2.0.0" + checksum: 10/fa46ab200f17d06c7cb49fc37ad91f15769753953c9724adac1061fa305a2a223cb37c3ed25a5f501580c91f11a0800990fe3814c70a77bf1aa5b3fca45a2ac6 + languageName: node + linkType: hard + +"webpack-sources@npm:^3.3.3": + version: 3.3.3 + resolution: "webpack-sources@npm:3.3.3" + checksum: 10/ec5d72607e8068467370abccbfff855c596c098baedbe9d198a557ccf198e8546a322836a6f74241492576adba06100286592993a62b63196832cdb53c8bae91 + languageName: node + linkType: hard + +"webpack-subresource-integrity@npm:^5.2.0-rc.1": + version: 5.2.0-rc.1 + resolution: "webpack-subresource-integrity@npm:5.2.0-rc.1" + peerDependencies: + html-webpack-plugin: ">= 5.0.0-beta.1 < 6" + webpack: ^5.12.0 + peerDependenciesMeta: + html-webpack-plugin: + optional: true + checksum: 10/a63e4e999812a753c70070457e6a2fb7e7ef1a05d8525a89796024fc56f26a0e56bd3e8f2b25e61f0ae969d627770a1fe326bebb58c296577d40c6a12aa4be37 + languageName: node + linkType: hard + +"webpack@npm:^5.89.0": + version: 5.104.1 + resolution: "webpack@npm:5.104.1" + dependencies: + "@types/eslint-scope": "npm:^3.7.7" + "@types/estree": "npm:^1.0.8" + "@types/json-schema": "npm:^7.0.15" + "@webassemblyjs/ast": "npm:^1.14.1" + "@webassemblyjs/wasm-edit": "npm:^1.14.1" + "@webassemblyjs/wasm-parser": "npm:^1.14.1" + acorn: "npm:^8.15.0" + acorn-import-phases: "npm:^1.0.3" + browserslist: "npm:^4.28.1" + chrome-trace-event: "npm:^1.0.2" + enhanced-resolve: "npm:^5.17.4" + es-module-lexer: "npm:^2.0.0" + eslint-scope: "npm:5.1.1" + events: "npm:^3.2.0" + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.2.11" + json-parse-even-better-errors: "npm:^2.3.1" + loader-runner: "npm:^4.3.1" + mime-types: "npm:^2.1.27" + neo-async: "npm:^2.6.2" + schema-utils: "npm:^4.3.3" + tapable: "npm:^2.3.0" + terser-webpack-plugin: "npm:^5.3.16" + watchpack: "npm:^2.4.4" + webpack-sources: "npm:^3.3.3" + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 10/c22b58fdf41d993971516154cb621d13b7b61dd744b7e2c6be972e9afcc9942694a8aaa322c07fba46448c69d663023ff53d0aeeb00eb0b125d83ace5ca8fa3c + languageName: node + linkType: hard + +"websocket-driver@npm:>=0.5.1, websocket-driver@npm:^0.7.4": + version: 0.7.4 + resolution: "websocket-driver@npm:0.7.4" + dependencies: + http-parser-js: "npm:>=0.5.1" + safe-buffer: "npm:>=5.1.0" + websocket-extensions: "npm:>=0.1.1" + checksum: 10/17197d265d5812b96c728e70fd6fe7d067471e121669768fe0c7100c939d997ddfc807d371a728556e24fc7238aa9d58e630ea4ff5fd4cfbb40f3d0a240ef32d + languageName: node + linkType: hard + +"websocket-extensions@npm:>=0.1.1": + version: 0.1.4 + resolution: "websocket-extensions@npm:0.1.4" + checksum: 10/b5399b487d277c78cdd2aef63764b67764aa9899431e3a2fa272c6ad7236a0fb4549b411d89afa76d5afd664c39d62fc19118582dc937e5bb17deb694f42a0d1 + languageName: node + linkType: hard + +"whatwg-encoding@npm:^3.1.1": + version: 3.1.1 + resolution: "whatwg-encoding@npm:3.1.1" + dependencies: + iconv-lite: "npm:0.6.3" + checksum: 10/bbef815eb67f91487c7f2ef96329743f5fd8357d7d62b1119237d25d41c7e452dff8197235b2d3c031365a17f61d3bb73ca49d0ed1582475aa4a670815e79534 + languageName: node + linkType: hard + +"whatwg-mimetype@npm:^4.0.0": + version: 4.0.0 + resolution: "whatwg-mimetype@npm:4.0.0" + checksum: 10/894a618e2d90bf444b6f309f3ceb6e58cf21b2beaa00c8b333696958c4076f0c7b30b9d33413c9ffff7c5832a0a0c8569e5bb347ef44beded72aeefd0acd62e8 + languageName: node + linkType: hard + +"whatwg-url@npm:^14.0.0": + version: 14.2.0 + resolution: "whatwg-url@npm:14.2.0" + dependencies: + tr46: "npm:^5.1.0" + webidl-conversions: "npm:^7.0.0" + checksum: 10/f0a95b0601c64f417c471536a2d828b4c16fe37c13662483a32f02f183ed0f441616609b0663fb791e524e8cd56d9a86dd7366b1fc5356048ccb09b576495e7c + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: "npm:~0.0.3" + webidl-conversions: "npm:^3.0.0" + checksum: 10/f95adbc1e80820828b45cc671d97da7cd5e4ef9deb426c31bcd5ab00dc7103042291613b3ef3caec0a2335ed09e0d5ed026c940755dbb6d404e2b27f940fdf07 + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: "npm:^1.1.0" + is-boolean-object: "npm:^1.2.1" + is-number-object: "npm:^1.1.1" + is-string: "npm:^1.1.1" + is-symbol: "npm:^1.1.1" + checksum: 10/a877c0667bc089518c83ad4d845cf8296b03efe3565c1de1940c646e00a2a1ae9ed8a185bcfa27cbf352de7906f0616d83b9d2f19ca500ee02a551fb5cf40740 + languageName: node + linkType: hard + +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" + dependencies: + call-bound: "npm:^1.0.2" + function.prototype.name: "npm:^1.1.6" + has-tostringtag: "npm:^1.0.2" + is-async-function: "npm:^2.0.0" + is-date-object: "npm:^1.1.0" + is-finalizationregistry: "npm:^1.1.0" + is-generator-function: "npm:^1.0.10" + is-regex: "npm:^1.2.1" + is-weakref: "npm:^1.0.2" + isarray: "npm:^2.0.5" + which-boxed-primitive: "npm:^1.1.0" + which-collection: "npm:^1.0.2" + which-typed-array: "npm:^1.1.16" + checksum: 10/22c81c5cb7a896c5171742cd30c90d992ff13fb1ea7693e6cf80af077791613fb3f89aa9b4b7f890bd47b6ce09c6322c409932359580a2a2a54057f7b52d1cbe + languageName: node + linkType: hard + +"which-collection@npm:^1.0.2": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: "npm:^2.0.3" + is-set: "npm:^2.0.3" + is-weakmap: "npm:^2.0.2" + is-weakset: "npm:^2.0.3" + checksum: 10/674bf659b9bcfe4055f08634b48a8588e879161b9fefed57e9ec4ff5601e4d50a05ccd76cf10f698ef5873784e5df3223336d56c7ce88e13bcf52ebe582fc8d7 + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19": + version: 1.1.19 + resolution: "which-typed-array@npm:1.1.19" + dependencies: + available-typed-arrays: "npm:^1.0.7" + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + for-each: "npm:^0.3.5" + get-proto: "npm:^1.0.1" + gopd: "npm:^1.2.0" + has-tostringtag: "npm:^1.0.2" + checksum: 10/12be30fb88567f9863186bee1777f11bea09dd59ed8b3ce4afa7dd5cade75e2f4cc56191a2da165113cc7cf79987ba021dac1e22b5b62aa7e5c56949f2469a68 + languageName: node + linkType: hard + +"which@npm:^2.0.1": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: ./bin/node-which + checksum: 10/4782f8a1d6b8fc12c65e968fea49f59752bf6302dc43036c3bf87da718a80710f61a062516e9764c70008b487929a73546125570acea95c5b5dcc8ac3052c70f + languageName: node + linkType: hard + +"which@npm:^6.0.0": + version: 6.0.0 + resolution: "which@npm:6.0.0" + dependencies: + isexe: "npm:^3.1.1" + bin: + node-which: bin/which.js + checksum: 10/df19b2cd8aac94b333fa29b42e8e371a21e634a742a3b156716f7752a5afe1d73fb5d8bce9b89326f453d96879e8fe626eb421e0117eb1a3ce9fd8c97f6b7db9 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: "npm:^1.0.2 || 2 || 3 || 4" + checksum: 10/d5f8027b9a8255a493a94e4ec1b74a27bff6679d5ffe29316a3215e4712945c84ef73ca4045c7e20ae7d0c72f5f57f296e04a4928e773d4276a2f1222e4c2e99 + languageName: node + linkType: hard + +"widest-line@npm:^3.1.0": + version: 3.1.0 + resolution: "widest-line@npm:3.1.0" + dependencies: + string-width: "npm:^4.0.0" + checksum: 10/03db6c9d0af9329c37d74378ff1d91972b12553c7d72a6f4e8525fe61563fa7adb0b9d6e8d546b7e059688712ea874edd5ded475999abdeedf708de9849310e0 + languageName: node + linkType: hard + +"wildcard@npm:^2.0.0": + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: 10/e0c60a12a219e4b12065d1199802d81c27b841ed6ad6d9d28240980c73ceec6f856771d575af367cbec2982d9ae7838759168b551776577f155044f5a5ba843c + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.5": + version: 1.2.5 + resolution: "word-wrap@npm:1.2.5" + checksum: 10/1ec6f6089f205f83037be10d0c4b34c9183b0b63fca0834a5b3cee55dd321429d73d40bb44c8fc8471b5203d6e8f8275717f49a8ff4b2b0ab41d7e1b563e0854 + languageName: node + linkType: hard + +"wordwrap@npm:^1.0.0": + version: 1.0.0 + resolution: "wordwrap@npm:1.0.0" + checksum: 10/497d40beb2bdb08e6d38754faa17ce20b0bf1306327f80cb777927edb23f461ee1f6bc659b3c3c93f26b08e1cf4b46acc5bae8fda1f0be3b5ab9a1a0211034cd + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.0.1": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/0d64f2d438e0b555e693b95aee7b2689a12c3be5ac458192a1ce28f542a6e9e59ddfecc37520910c2c88eb1f82a5411260566dba5064e8f9895e76e169e76187 + languageName: node + linkType: hard + +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: "npm:^4.0.0" + string-width: "npm:^4.1.0" + strip-ansi: "npm:^6.0.0" + checksum: 10/cebdaeca3a6880da410f75209e68cd05428580de5ad24535f22696d7d9cab134d1f8498599f344c3cf0fb37c1715807a183778d8c648d6cc0cb5ff2bb4236540 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 10/159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"write-file-atomic@npm:^3.0.0": + version: 3.0.3 + resolution: "write-file-atomic@npm:3.0.3" + dependencies: + imurmurhash: "npm:^0.1.4" + is-typedarray: "npm:^1.0.0" + signal-exit: "npm:^3.0.2" + typedarray-to-buffer: "npm:^3.1.5" + checksum: 10/0955ab94308b74d32bc252afe69d8b42ba4b8a28b8d79f399f3f405969f82623f981e35d13129a52aa2973450f342107c06d86047572637584e85a1c0c246bf3 + languageName: node + linkType: hard + +"write-json-file@npm:^4.2.0": + version: 4.3.0 + resolution: "write-json-file@npm:4.3.0" + dependencies: + detect-indent: "npm:^6.0.0" + graceful-fs: "npm:^4.1.15" + is-plain-obj: "npm:^2.0.0" + make-dir: "npm:^3.0.0" + sort-keys: "npm:^4.0.0" + write-file-atomic: "npm:^3.0.0" + checksum: 10/33908c591923dc273e6574e7c0e2df157acfcf498e3a87c5615ced006a465c4058877df6abce6fc1acd2844fa3cf4518ace4a34d5d82ab28bcf896317ba1db6f + languageName: node + linkType: hard + +"ws@npm:^8.13.0, ws@npm:^8.18.0, ws@npm:^8.8.1": + version: 8.19.0 + resolution: "ws@npm:8.19.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10/26e4901e93abaf73af9f26a93707c95b4845e91a7a347ec8c569e6e9be7f9df066f6c2b817b2d685544e208207898a750b78461e6e8d810c11a370771450c31b + languageName: node + linkType: hard + +"xdg-basedir@npm:^4.0.0": + version: 4.0.0 + resolution: "xdg-basedir@npm:4.0.0" + checksum: 10/0073d5b59a37224ed3a5ac0dd2ec1d36f09c49f0afd769008a6e9cd3cd666bd6317bd1c7ce2eab47e1de285a286bad11a9b038196413cd753b79770361855f3c + languageName: node + linkType: hard + +"xml-name-validator@npm:^5.0.0": + version: 5.0.0 + resolution: "xml-name-validator@npm:5.0.0" + checksum: 10/43f30f3f6786e406dd665acf08cd742d5f8a46486bd72517edb04b27d1bcd1599664c2a4a99fc3f1e56a3194bff588b12f178b7972bc45c8047bdc4c3ac8d4a1 + languageName: node + linkType: hard + +"xmlchars@npm:^2.2.0": + version: 2.2.0 + resolution: "xmlchars@npm:2.2.0" + checksum: 10/4ad5924974efd004a47cce6acf5c0269aee0e62f9a805a426db3337af7bcbd331099df174b024ace4fb18971b8a56de386d2e73a1c4b020e3abd63a4a9b917f1 + languageName: node + linkType: hard + +"xtend@npm:~4.0.1": + version: 4.0.2 + resolution: "xtend@npm:4.0.2" + checksum: 10/ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 10/5f1b5f95e3775de4514edbb142398a2c37849ccfaf04a015be5d75521e9629d3be29bd4432d23c57f37e5b61ade592fb0197022e9993f81a06a5afbdcda9346d + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 10/4cb02b42b8a93b5cf50caf5d8e9beb409400a8a4d85e83bb0685c1457e9ac0b7a00819e9f5991ac25ffabb56a78e2f017c1acc010b3a1babfe6de690ba531abd + languageName: node + linkType: hard + +"yallist@npm:^5.0.0": + version: 5.0.0 + resolution: "yallist@npm:5.0.0" + checksum: 10/1884d272d485845ad04759a255c71775db0fac56308764b4c77ea56a20d56679fad340213054c8c9c9c26fcfd4c4b2a90df993b7e0aaf3cdb73c618d1d1a802a + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: 10/9dc2c217ea3bf8d858041252d43e074f7166b53f3d010a8c711275e09cd3d62a002969a39858b92bbda2a6a63a585c7127014534a560b9c69ed2d923d113406e + languageName: node + linkType: hard + +"yargs@npm:^17.0.0, yargs@npm:^17.7.2": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10/abb3e37678d6e38ea85485ed86ebe0d1e3464c640d7d9069805ea0da12f69d5a32df8e5625e370f9c96dd1c2dc088ab2d0a4dd32af18222ef3c4224a19471576 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: 10/f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard